{"version":3,"file":"static/js/main.f164d8ee.js","mappings":"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UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,UACA,SACA,SACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAIW4B,EAAM5B,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW6B,EAAa7B,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW8B,EAAgB9B,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW+B,EAAS/B,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKWgC,EAAmBhC,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW5rH,EAAO4rH,EAAO,CAAC,UCrRfiC,EAAOjC,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,QACA,SAGWkC,EAAMlC,EAAO,CACxB,gBACA,aACA,WACA,qBACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,MACA,WACA,YACA,MACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,UACA,UACA,YACA,mBACA,cACA,kBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGWmC,EAASnC,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,eACA,cACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,UAGWz9C,EAAMy9C,EAAO,CACxB,aACA,SACA,cACA,YACA,gBCzWWoC,EAAgBnC,EAAK,6BACrBoC,EAAWpC,EAAK,yBAChBqC,EAAcrC,EAAK,iBACnBsC,EAAYtC,EAAK,8BACjBuC,EAAYvC,EAAK,kBACjBwC,EAAiBxC,EAC5B,6FAEWyC,EAAoBzC,EAAK,yBACzB0C,EAAkB1C,EAC7B,+DAEW2C,EAAe3C,EAAK,WACpB4C,EAAiB5C,EAAK,0NCSnC,MAAM6C,EAAY,CAChB1gI,QAAS,EACTmjF,UAAW,EACXnxE,KAAM,EACN2uH,aAAc,EACdC,gBAAiB,EACjBC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IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,IAAM,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,KAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,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CNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACN,OAAQ,GACR0hJ,KAAM,GACN,OAAQ,GACRzhJ,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,GACNC,KAAM,IAIEnC,GAAI1iK,MACR0iK,GAAI1iK,MAAMhuC,eAAevY,KAC3BipN,GAAI1iK,MAAMvmD,GAAK,CACbA,EAAE4B,WAAW,GACb5B,EAAE4B,WAAW,GACb5B,EAAE4B,WAAW,GACb5B,EAAE4B,WAAW,KAKnB,MAAMypN,EAAY,IAAI94M,WAAW,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IAGI+4M,EAAY,IAAI/4M,WAAW,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IACA,IACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IAGF02M,GAAIsC,WAAa,CACf5J,MAAO0J,EACPzJ,MAAO0J,GAGT,MAAMhC,EAAO,IAAI/2M,WAAW,CAC1B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,IACA,IACA,IACA,GACA,EACA,EACA,EACA,IAGIg4M,EAAO,IAAIh4M,WAAW,CAC1B,EACA,EACA,EA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A,IACA,IACA,GACA,IACA,IACA,IACA,GACA,IACA,IACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,GACA,KAEF2uM,EACA9D,GAAIkD,IACFlD,GAAI1iK,MAAM6iK,KACV,IAAI72M,WAAW,CACb,EACA,GACA,IACA,IACA,EACA,GACA,IACA,IACA,EACA,GACA,IACA,OAGJ02M,GAAIkD,IACFlD,GAAI1iK,MAAM6jK,KACV,IAAI73M,WAAW,CACby6M,GAAY,GACXA,GAAY,GAAM,IAClBA,GAAY,EAAK,IACP,IAAXA,EACAC,GAAY,GACXA,GAAY,GAAM,IAClBA,GAAY,EAAK,IACP,IAAXA,KAIR,CAEA,WAAO1D,CAAKh1C,GACV,MAAM24C,EAAY34C,EAAM3+J,OAAOxX,OAC/B,OAAO,IAAImU,WACT,CACE,EACA,EACA,EACA,EAEA,EACA,GAAO26M,EACP,EACA,EACA,EAEA,EACA,GAAOA,EACP,GACA,GACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EAEA,GAECvkN,OAAO,CAACukN,IACRvkN,OAAO4rK,EAAM3+J,QACbjN,OAAO,CAAC,EAAM,EAAM,IAE3B,CAEA,gBAAOijW,CAAUr3L,GACf,MAAM+kC,EAAa/kC,EAAM+kC,WACzB,OAAO,IAAI/mM,WAAW,CACpB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACAgiK,EAAMslC,aACN,EACA,GACA,EACA,EACA,EACA,EACCP,GAAc,EAAK,IACP,IAAbA,EACA,EACA,GAEJ,CAEA,WAAO2Q,CAAK11C,GACV,OAAO00C,GAAIkD,IACTlD,GAAI1iK,MAAM0jK,KACVhB,GAAI2iJ,UAAUr3L,GACd00C,GAAIkD,IAAIlD,GAAI1iK,MAAMgjK,KAAMN,GAAIM,KAAKh1C,IAErC,CAEA,UAAOywC,CAAIzwC,GACT,OAAO00C,GAAIkD,IAAIlD,GAAI1iK,MAAM,QAAS0iK,GAAI2iJ,UAAUr3L,GAClD,CAEA,UAAOi3L,CAAIj3L,GACT,OAAO00C,GAAIkD,IACTlD,GAAI1iK,MAAM,QACV0iK,GAAI2iJ,UAAUr3L,GACd00C,GAAIkD,IAAIlD,GAAI1iK,MAAMolT,KAAMp3L,EAAM3+J,QAElC,CAEA,WAAO60M,CAAKl2C,GACV,MAAmB,UAAfA,EAAM1xK,KACmB,QAAvB0xK,EAAMk0L,cAA0C,QAAhBl0L,EAAMulC,MACjCmP,GAAIkD,IAAIlD,GAAI1iK,MAAMkkK,KAAMxB,GAAI6C,KAAM7C,GAAIjE,IAAIzwC,IAExB,QAAvBA,EAAMk0L,aACDx/I,GAAIkD,IAAIlD,GAAI1iK,MAAMkkK,KAAMxB,GAAI6C,KAAM7C,GAAIuiJ,IAAIj3L,IAE5C00C,GAAIkD,IAAIlD,GAAI1iK,MAAMkkK,KAAMxB,GAAI6C,KAAM7C,GAAIgB,KAAK11C,IAE3C00C,GAAIkD,IAAIlD,GAAI1iK,MAAMkkK,KAAMxB,GAAI6C,KAAM7C,GAAIC,KAAK30C,GAEtD,CAEA,WAAO22C,CAAK32C,GACV,MAAM9yI,EAAK8yI,EAAM9yI,GACXhkB,EAAW82J,EAAM92J,SAAW82J,EAAM83C,UAClCnpM,EAAQqxJ,EAAMrxJ,MACd9E,EAASm2J,EAAMn2J,OACfkuM,EAAoB1rN,KAAKgrC,MAAMnuB,GAAYurM,GAAa,IACxDuD,EAAoB3rN,KAAKgrC,MAAMnuB,GAAYurM,GAAa,IAC9D,OAAOC,GAAIkD,IACTlD,GAAI1iK,MAAM2kK,KACV,IAAI34M,WAAW,CACb,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACCkvB,GAAM,GAAM,IACZA,GAAM,GAAM,IACZA,GAAM,EAAK,IACP,IAALA,EACA,EACA,EACA,EACA,EACA6qL,GAAqB,GACpBA,GAAqB,GAAM,IAC3BA,GAAqB,EAAK,IACP,IAApBA,EACAC,GAAqB,GACpBA,GAAqB,GAAM,IAC3BA,GAAqB,EAAK,IACP,IAApBA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACA,EACA,EACA,EACCrpM,GAAS,EAAK,IACP,IAARA,EACA,EACA,EACC9E,GAAU,EAAK,IACP,IAATA,EACA,EACA,IAGN,CAEA,WAAO0sM,CAAKv2C,EAAOk4C,GACjB,MAAMU,EAAwBlE,GAAIoB,KAAK91C,GACjC9yI,EAAK8yI,EAAM9yI,GACX2rL,EAA+BxsN,KAAKgrC,MACxC6gL,GAAuBzD,GAAa,IAEhCqE,EAA+BzsN,KAAKgrC,MACxC6gL,GAAuBzD,GAAa,IAEtC,OAAOC,GAAIkD,IACTlD,GAAI1iK,MAAMukK,KACV7B,GAAIkD,IACFlD,GAAI1iK,MAAMskK,KACV,IAAIt4M,WAAW,CACb,EACA,EACA,EACA,EACAkvB,GAAM,GACLA,GAAM,GAAM,IACZA,GAAM,EAAK,IACP,IAALA,KAGJwnL,GAAIkD,IACFlD,GAAI1iK,MAAMqkK,KACV,IAAIr4M,WAAW,CACb,EACA,EACA,EACA,EACA66M,GAAgC,GAC/BA,GAAgC,GAAM,IACtCA,GAAgC,EAAK,IACP,IAA/BA,EACAC,GAAgC,GAC/BA,GAAgC,GAAM,IACtCA,GAAgC,EAAK,IACP,IAA/BA,KAGJpE,GAAI+B,KACFz2C,EACA44C,EAAsB/uN,OACpB,GACA,GACA,EACA,GACA,EACA,GAEJ+uN,EAEJ,CAMA,WAAOpC,CAAKx2C,GAEV,OADAA,EAAM92J,SAAW82J,EAAM92J,UAAY,WAC5BwrM,GAAIkD,IAAIlD,GAAI1iK,MAAMwkK,KAAM9B,GAAIiC,KAAK32C,GAAQ00C,GAAIW,KAAKr1C,GAC3D,CAEA,WAAO02C,CAAK12C,GACV,MAAM9yI,EAAK8yI,EAAM9yI,GACjB,OAAOwnL,GAAIkD,IACTlD,GAAI1iK,MAAM0kK,KACV,IAAI14M,WAAW,CACb,EACA,EACA,EACA,EACAkvB,GAAM,GACLA,GAAM,GAAM,IACZA,GAAM,EAAK,IACP,IAALA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,IAGN,CAEA,WAAOupL,CAAKz2C,EAAOnvK,GACjB,MAAMs1M,EAAUnmC,EAAMmmC,SAAW,GAC3B5pM,EAAM4pM,EAAQt8M,OACdmvN,EAAW,GAAK,GAAKz8M,EACrB1O,EAAQ,IAAImQ,WAAWg7M,GAC7B,IAAIvtN,EACA26M,EACAl9L,EACAzX,EACA8qH,EACAw8F,EAmBJ,IAlBAloN,GAAU,EAAImoN,EACdnrN,EAAM2E,IACJ,CACiB,UAAfwtK,EAAM1xK,KAAmB,EAAO,EAChC,EACA,GACA,EACCiO,IAAQ,GAAM,IACdA,IAAQ,GAAM,IACdA,IAAQ,EAAK,IACR,IAANA,EACC1L,IAAW,GAAM,IACjBA,IAAW,GAAM,IACjBA,IAAW,EAAK,IACR,IAATA,GAEF,GAEGpF,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnB26M,EAASD,EAAQ16M,GACjByd,EAAWk9L,EAAOl9L,SAClBzX,EAAO20M,EAAO30M,KACd8qH,EAAQ6pF,EAAO7pF,MACfw8F,EAAM3S,EAAO2S,IACblrN,EAAM2E,IACJ,CACG0W,IAAa,GAAM,IACnBA,IAAa,GAAM,IACnBA,IAAa,EAAK,IACR,IAAXA,EACCzX,IAAS,GAAM,IACfA,IAAS,GAAM,IACfA,IAAS,EAAK,IACR,IAAPA,EACC8qH,EAAM08F,WAAa,EAAK18F,EAAM87F,UAC9B97F,EAAM+7F,cAAgB,EACpB/7F,EAAMg8F,eAAiB,EACvBh8F,EAAM28F,cAAgB,EACvB38F,EAAM48F,UACY,MAApB58F,EAAM68F,WACa,GAAnB78F,EAAM68F,WACLL,IAAQ,GAAM,IACdA,IAAQ,GAAM,IACdA,IAAQ,EAAK,IACR,IAANA,GAEF,GAAK,GAAKttN,GAGd,OAAOipN,GAAIkD,IAAIlD,GAAI1iK,MAAMykK,KAAM5oN,EACjC,CAEA,kBAAO64M,CAAYyR,GACZzD,GAAI1iK,OACP0iK,GAAIjnL,OAGN,MAAM4rL,EAAQ3E,GAAIe,KAAK0C,GAEvB,OADe8yH,GAAiBv2H,GAAIiD,KAAM0B,EAE5C,EAvlCI3E,GACU1iK,WAAK,EADf0iK,GAEWsC,gBAAU,EAFrBtC,GAGWuC,UAAI,EAHfvC,GAIWwC,UAAI,EAJfxC,GAKWyC,UAAI,EALfzC,GAMW0C,UAAI,EANf1C,GAOW2C,UAAI,EAPf3C,GAQW4C,UAAI,EARf5C,GASW6C,UAAI,EATf7C,GAUWiD,UAAI,EAVfjD,GAWWmD,UAAI,ECjBd,SAAS0B,GACduM,EACAtM,GAIA,MAAM39M,EAASiqN,EAAWtM,GAHXhjN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAIlB,OAHcA,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAGCnK,KAAKub,MAAM/L,GAAUA,CACtC,CAWO,SAAS69M,GACdoM,GAGA,OAAOvM,GAAoBuM,EAAU,IAAM,EA9Bf,IA4BdtvN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAGhB,CCMA,IChBIq0D,GDgBAkvJ,GAA+B,KAC/Bu9I,GAAqC,KAE1B,MAAMn9I,GAkBnBpkN,WAAAA,CACEktM,EACA5hM,EACAosM,GAQA,GANA,KAtBMxK,cAAQ,OACR5hM,YAAM,OACNosM,mBAAa,OACb2M,aAAuB,EAAK,KAC5BrJ,SAAqC,KAAI,KACzCC,SAAqC,KAAI,KACzC4L,WAA4B,KAAI,KAChC8B,aAA8B,KAAI,KAClC64I,oBAAqC,KAAI,KACzCC,mBAA6B,EAAK,KAClCC,mBAA6B,EAAK,KAClCC,sBAAgB,EAYtBluW,KAAKy5M,SAAWA,EAChBz5M,KAAK6X,OAASA,EACd7X,KAAKikN,cAAgBA,EACrBjkN,KAAK4wN,aAAc,EAEG,OAAlBL,GAAwB,CAC1B,MACMl+M,GADYowE,UAAUlwB,WAAa,IAChB9oD,MAAM,kBAC/B8mN,GAAgBl+M,EAAS0D,SAAS1D,EAAO,IAAM,CACjD,CACA,GAA4B,OAAxBy7V,GAA8B,CAChC,MAAMz7V,EAASowE,UAAUlwB,UAAU9oD,MAAM,kBACzCqkW,GAAsBz7V,EAAS0D,SAAS1D,EAAO,IAAM,CACvD,CACF,CAEAghI,OAAAA,GAEErzI,KAAK6X,OAAS7X,KAAKkuW,iBAAmBluW,KAAKunN,SAAWvnN,KAAKwnN,SAAW,IACxE,CAEAhK,cAAAA,CAAeqT,GACbj8K,GAAO6c,IAAI,0CACXzxD,KAAKunN,SAAWvnN,KAAKwnN,SAAWqJ,CAClC,CAEAs9I,kBAAAA,GACEv5T,GAAO6c,IAAI,uCACXzxD,KAAKiuW,mBAAoB,EACzBjuW,KAAKguW,mBAAoB,CAC3B,CAEA/wJ,gBAAAA,GACEroK,GAAO6c,IAAI,yCACXzxD,KAAK4wN,aAAc,EACnB5wN,KAAKkuW,sBAAmBptW,CAC1B,CAEAgwN,gBAAAA,CAAiBC,GAEf,IAAIC,GAAmB,EACvB,MAAMo9I,EAAWr9I,EAAa,GAAG3U,IAC3B6U,EAAWF,EAAa56M,QAAO,CAAC+6M,EAAQtU,KAC5C,IAAIR,EAAMQ,EAAOR,IACbprJ,EAAQorJ,EAAM8U,EAOlB,OANIlgK,GAAS,aAEXggK,GAAmB,EACnB5U,EAAMiyJ,GAAajyJ,EAAKgyJ,GACxBp9S,EAAQorJ,EAAM8U,GAEZlgK,EAAQ,EACHkgK,EAEF9U,CAAG,GACTgyJ,GAIH,OAHIp9I,GACFp8K,GAAOg0K,MAAM,yBAERqI,CACT,CAEA9S,KAAAA,CACEqH,EACA4B,EACA3B,EACA4B,EACAzJ,EACAE,EACAt7M,EACAi6V,GAEA,IAAI74I,EACAC,EACA3G,EACAtkM,EACA8kM,EACA86H,EACAlnH,EAAkB1T,EAClB2T,EAAkB3T,EAOtB,MAAM2X,EAAW/P,EAAWf,KAAO,EAC7B+Q,EAAWpO,EAAW3C,KAAO,EAC7BpkN,EAAS+mN,EAAWzK,QAAQt8M,OAC5BiuW,EAAqB9oJ,EAAW7I,QAAQt8M,OAAS,EACjDkuW,EAAsB/rW,GAASnC,EAAS,GAAMA,EAAS,EAO7D,KALKk1N,GAAY+4I,MACX94I,GAAY+4I,IAChBvuW,KAAK4wN,aACLpuN,EAEe,CACf,GAAIxC,KAAK4wN,YAAa,KAAA49I,EAAAC,EAAAC,EAAAC,EACpB,MAAM92V,EAAS7X,KAAKkuW,kBAElBr2V,GACCuvM,EAAWjiM,QAAUtN,EAAOsN,OAC3BiiM,EAAW/mM,SAAWxI,EAAOwI,SACR,OAArBmuV,EAAApnJ,EAAWrF,iBAAU,EAArBysJ,EAAwB,OAAwB,OAAtBC,EAAK52V,EAAOkqM,iBAAU,EAAjB0sJ,EAAoB,MACnD,OAAAC,EAAAtnJ,EAAWrF,iBAAX,EAAA2sJ,EAAwB,OAAwB,OAAtBC,EAAK92V,EAAOkqM,iBAAU,EAAjB4sJ,EAAoB,KAErD3uW,KAAKi9M,kBAET,MACEC,EAAcl9M,KAAKmxN,WACjB3L,EACA4B,EACAxJ,EACAE,GAIJ,MAAMmwJ,EAAoBjuW,KAAKiuW,kBAC/B,IACIW,EADAC,GAAsB,EAG1B,GAAIN,IACFM,EA+6BR,SAA2BlyJ,GACzB,IAAK,IAAI16M,EAAI,EAAGA,EAAI06M,EAAQt8M,OAAQ4B,IAClC,GAAI06M,EAAQ16M,GAAGf,IACb,OAAOe,EAGX,OAAQ,CACV,CAt7B6B6sW,CAAkB1nJ,EAAWzK,UAC7CsxJ,GAAqBjuW,KAAK6X,OAAO6wM,8BAEpC,GADA8vH,GAAc,EACVq2B,EAAqB,EAAG,CAC1Bj6T,GAAO0yD,KACJ,0BAAyBunQ,YAA6BxuW,6CAEzD,MAAM4wN,EAAWjxN,KAAK8wN,iBAAiB1J,EAAWzK,SAClDyK,EAAWzK,QAAUyK,EAAWzK,QAAQ14M,MAAM4qW,GAC9CznJ,EAAW1C,SAAWmqJ,EACtBt9I,IACGnK,EAAWzK,QAAQ,GAAGP,IAAM6U,GAC7B7J,EAAW7J,eACbqxJ,EAAmBr9I,CACrB,MAAmC,IAAxBs9I,IACTj6T,GAAO0yD,KACJ,2CAA0CjnG,mBAE7Cm4U,GAAc,GAKpB,GAAIx4U,KAAK4wN,YAAa,CACpB,GAAI09I,GAAsBC,EAAoB,CAK5C,MAAMt9I,EAAWjxN,KAAK8wN,iBAAiB1J,EAAWzK,SAG5C6U,GADJ68I,GAAa7oJ,EAAW7I,QAAQ,GAAGP,IAAK6U,GAAYA,GACX7J,EAAW7J,eACtD+T,GAAmBzuN,KAAK2qB,IAAI,EAAGgkM,GAC/BD,GAAmB1uN,KAAK2qB,IAAI,GAAIgkM,EAClC,CAGA,GAAI88I,GAwBF,GAtBK9oJ,EAAWjK,aACd3mK,GAAO0yD,KACL,2DAEF41G,EAAcl9M,KAAKmxN,WACjB3L,EACA4B,EACAxJ,EACAE,IAGJ+F,EAAQ7jN,KAAK0xN,WACXlM,EACA8L,EACAtxN,KAAKguW,kBACLlwJ,EACA0X,GACE+4I,GACA9R,IAAiB58H,GACftO,OACAzwN,GAEFytW,EAAoB,CACtB,MAAM98I,EAAmB5N,EAAQA,EAAM8N,OAAS9N,EAAMoN,SAAW,EAE5D7J,EAAW7J,iBACd3oK,GAAO0yD,KACL,2DAEF41G,EAAcl9M,KAAKmxN,WACjB3L,EACA4B,EACAxJ,EACAE,IAGJ8F,EAAQ5jN,KAAK4xN,WACXxK,EACAmK,EACA08I,EACAx8I,EAEJ,OACS88I,IACT3qJ,EAAQ5jN,KAAK4xN,WACXxK,EACAmK,EACA08I,EACA,IAGArqJ,IACFA,EAAMmrJ,cAAgBF,EACtBjrJ,EAAM40H,aAAsC,IAAxBq2B,EACpBjrJ,EAAMgrJ,iBAAmBA,EAE7B,CACF,CAsBA,OAnBI5uW,KAAK4wN,aAAe5wN,KAAKunN,UAAYvnN,KAAKwnN,WACxC/B,EAAS9I,QAAQt8M,SACnBq9M,EAAMsxJ,GACJvpJ,EACA7H,EACA59M,KAAKunN,SACLvnN,KAAKwnN,WAILH,EAAU1K,QAAQt8M,SACpBuY,EAAOq2V,GACL5nJ,EACAzJ,EACA59M,KAAKunN,YAKJ,CACL1D,QACAD,QACA1G,cACAs7H,cACA5/T,OACA8kM,MAEJ,CAEAyT,UAAAA,CACE3L,EACA4B,EACAxJ,EACAE,GAEA,MAAMsU,EAAe5M,EAAW7I,QAC1BoU,EAAe3J,EAAWzK,QAC1BsH,EAAgBjkN,KAAKikN,cACrB0K,EAAmB,CAAC,EACpBpH,EAAWvnN,KAAKunN,SACtB,IAEI2K,EACAC,EACA7D,EAJA+D,GAAiB9K,GAAYzJ,EAC7Br9M,EAAY,YAShB,GAJI4xN,IACFH,EAAUC,EAAUrgI,KAGlB0zH,EAAW3tM,QAAUu6M,EAAa/xN,OAAQ,CAM5C,OADAmlN,EAAW8I,UAAY9I,EAAWjK,WAC1BiK,EAAWklJ,cACjB,IAAK,MACCzmJ,EAAc+C,MAEhBvmN,EAAY,aACZ+kN,EAAWzJ,MAAQ,IACVkI,EAAcgD,MAEvBzB,EAAWzJ,MAAQ,OAErB,MAEF,IAAK,MACHyJ,EAAWzJ,MAAQ,OAGvB4S,EAAO9K,MAAQ,CACbngL,GAAI,QACJjjC,UAAWA,EACXs7M,MAAOyJ,EAAWzJ,MAClBmB,YAC8B,QAA5BsI,EAAWklJ,cAA0BzmJ,EAAc+C,KAC/C,IAAIxyM,WAAW,GACf02M,GAAIhO,YAAY,CAACsI,IACvBjwJ,SAAU,CACRumJ,aAAc0J,EAAW1J,eAGzBuW,IACF/D,EAAY9I,EAAWjI,eAClBgK,GAAY+G,IAAc/G,EAAS+G,UAKtC+D,GAAgB,EAHhBH,EAAUC,EACRC,EAAa,GAAGhW,IAAMv5M,KAAKub,MAAMkwM,EAAY1Q,GAKrD,CAEA,GAAIwJ,EAAWuB,KAAOvB,EAAW0C,KAAOiH,EAAa1wN,OAAQ,CAc3D,GAXA+mN,EAAWkH,UAAYlH,EAAW7J,eAClCoR,EAAO/K,MAAQ,CACblgL,GAAI,OACJjjC,UAAW,YACXs7M,MAAOqL,EAAWrL,MAClBmB,YAAagO,GAAIhO,YAAY,CAACkK,IAC9B7xJ,SAAU,CACRpwC,MAAOiiM,EAAWjiM,MAClB9E,OAAQ+mM,EAAW/mM,SAGnBgyM,EAEF,GADA/D,EAAYlH,EAAW7J,eAClBgK,GAAY+G,IAAc/G,EAAS+G,UAStC+D,GAAgB,MATiC,CACjD,MAAMpB,EAAWjxN,KAAK8wN,iBAAiBC,GACjCuB,EAAczvN,KAAKub,MAAMkwM,EAAY1Q,GAC3CuU,EAAUtvN,KAAK4qB,IACb0kM,EACAk8I,GAAat9I,EAAa,GAAGrU,IAAKuU,GAAYqB,GAEhDJ,EAAUrvN,KAAK4qB,IAAIykM,EAAmBjB,EAAWqB,EACnD,CAIFtyN,KAAKkuW,iBAAmB,CACtB/oV,MAAOiiM,EAAWjiM,MAClB9E,OAAQ+mM,EAAW/mM,OACnB0hM,WAAYqF,EAAWrF,WAE3B,CAEA,GAAI7+M,OAAO4pB,KAAK6hM,GAAQtuN,OAetB,OAdAL,KAAK4wN,aAAc,EACfyB,GACFryN,KAAKunN,SAAW,CACd+U,SAAUpK,EACV5D,UAAWA,GAEbtuN,KAAKwnN,SAAW,CACd8U,SAAUnK,EACV7D,UAAWA,IAGb4D,EAAU5D,OAAYxtN,EAGjB,CACL6tN,SACAuD,UACA5D,YAGN,CAEAsD,UAAAA,CACEp7C,EACAonC,EACAC,EACA4T,GAEA,MAAMmB,EAAoBp8C,EAAM+mC,eAC1BsV,EAAmCr8C,EAAMmmC,QACzCmW,EAAkC,GAClCtK,EAAYqK,EAAaxyN,OACzB6xN,EAAUlyN,KAAKunN,SACrB,IAGImL,EACAC,EAJAS,EAAapzN,KAAKozN,WAClB/rN,EAAS,EACTorN,EAAoBzyN,KAAK+tW,oBAGzB78I,EAAiBp7M,OAAOi9M,kBACxBC,EAAiBl9M,OAAOm9M,kBACxBE,GAAc,EAGlB,IAAKtV,GAA6B,OAAfuV,EAAqB,CACtC,MAAMhX,EAAMwB,EAAagV,EACnBrD,EACJsD,EAAa,GAAGzW,IAChBiyJ,GAAax7I,EAAa,GAAGnW,IAAKmW,EAAa,GAAGzW,KAElDmU,IACe,OAAf6C,GACAvwN,KAAKD,IAAIw5M,EAAMmT,EAAM6D,GAAc,KAGnCvV,GAAa,EAGbuV,EAAahX,EAAMmT,CAEvB,CAIA,MAAM2/I,EAAYh9I,EAAQoK,SAAW1J,EAAaV,EAAQ5D,UAC1D,IAAK,IAAIrsN,EAAI,EAAGA,EAAIumN,EAAWvmN,IAAK,CAClC,MAAM26M,EAASiW,EAAa5wN,GAC5B26M,EAAOR,IAAMiyJ,GAAazxJ,EAAOR,IAAM8yJ,EAAU97I,GACjDxW,EAAOF,IAAM2xJ,GAAazxJ,EAAOF,IAAMwyJ,EAAU97I,GAC7CxW,EAAOF,IAAMmW,EAAa5wN,EAAI,EAAIA,EAAI,EAAIA,GAAGy6M,MAC/CyW,GAAc,EAElB,CAGIA,GACFN,EAAaj+L,MAAK,SAAUxe,EAAGmgB,GAC7B,MAAM88L,EAAWj9M,EAAEsmM,IAAMnmL,EAAEmmL,IACrB4W,EAAWl9M,EAAEgmM,IAAM7lL,EAAE6lL,IAC3B,OAAOiX,GAAYC,CACrB,IAIFZ,EAAWG,EAAa,GAAGnW,IAC3BiW,EAAUE,EAAaA,EAAaxyN,OAAS,GAAGq8M,IAIhD,MAAMyyJ,EAAgBx8I,EAAUD,EAC1Ba,EAAwB47I,EAC1BtsW,KAAKub,MAAM+wV,GAAiB3mJ,EAAY,IACxCiK,GAAqBj8C,EAAM+mC,eAAiB,GAGhD,GAAIM,EAAY,CAEd,MAAM7sJ,EAAQ0hK,EAAWU,EACnBM,EAAY1iK,EAAQuiK,EACpB67I,EAAep+S,GAAS,EAC9B,IAAI0iK,GAAa07I,KACX17I,EACF9+K,GAAO0yD,KACJ,QAAO4oH,GACNl/J,GACA,UACOA,4CAAgD4sJ,EAAWxuL,QAClE,MAIJwlB,GAAO0yD,KACJ,QAAO4oH,IACLl/J,GACD,UACOA,mDAAuD4sJ,EAAWxuL,QACzE,OAKHggV,GACDh8I,GAAcP,EAAa,GAAGzW,KAC9BmU,IACA,CACAmC,EAAWU,EACX,MAAMO,EAAWd,EAAa,GAAGzW,IAAMprJ,EACvC,GAAI0iK,EACFb,EAAa,GAAGnW,IAAMgW,EACtBG,EAAa,GAAGzW,IAAMuX,OAEtB,IAAK,IAAI1xN,EAAI,EAAGA,EAAI4wN,EAAaxyN,UAC3BwyN,EAAa5wN,GAAGy6M,IAAMiX,GADa1xN,IAIvC4wN,EAAa5wN,GAAGy6M,KAAO1rJ,EACvB6hK,EAAa5wN,GAAGm6M,KAAOprJ,EAG3Bpc,GAAO6c,IACJ,oCAAmCy+J,GAClCyD,GACA,MACGzD,GACHwC,GACA,cACWxC,GAAoBl/J,GAAO,QAE5C,CAEJ,CAEA0hK,EAAW7vN,KAAK2qB,IAAI,EAAGklM,GAEvB,IAAIkB,EAAS,EACTC,EAAU,EACVw7I,EAAU38I,EACd,IAAK,IAAIzwN,EAAI,EAAGA,EAAIumN,EAAWvmN,IAAK,CAElC,MAAM26M,EAASiW,EAAa5wN,GACtB0qF,EAAQiwH,EAAOjwH,MACfqnI,EAAUrnI,EAAMtsF,OACtB,IAAI4zN,EAAY,EAChB,IAAK,IAAI/rN,EAAI,EAAGA,EAAI8rN,EAAS9rN,IAC3B+rN,GAAatnI,EAAMzkF,GAAGgN,KAAK7U,OAG7BwzN,GAAWI,EACXL,GAAUI,EACVpX,EAAOv8M,OAAS4zN,EAGZrX,EAAOF,IAAM2yJ,GACfzyJ,EAAOF,IAAM2yJ,EACbA,GAAY97I,EAAwB,EAAK,GAAK,GAE9C87I,EAAUzyJ,EAAOF,IAGnBwU,EAASruN,KAAK4qB,IAAImvL,EAAOR,IAAK8U,GAC9B8B,EAASnwN,KAAK2qB,IAAIovL,EAAOR,IAAK4W,EAChC,CACAL,EAAUE,EAAarK,EAAY,GAAG9L,IAItC,MAAMwX,EAAWL,EAAU,EAAID,EAAS,EACxC,IAAIjI,EACJ,IACEA,EAAO,IAAIn3M,WAAW0/M,GACtB,MAAOniL,GASP,YARA/xC,KAAKy5M,SAASjrJ,KAAK8lF,GAAOimE,MAAOjmE,GAAOimE,MAAO,CAC7Cz1M,KAAM63N,GAAWxI,UACjB1Z,QAASmiB,GAAaxI,kBACtBzZ,OAAO,EACPr/L,MAAOy2B,EACPsX,MAAO6qK,EACP/sM,OAAS,8BAA6B+sM,KAG1C,CACA,MAAMz/J,EAAO,IAAI7nB,SAAS++K,EAAK//K,QAC/B6oB,EAAK7mB,UAAU,EAAGsmL,GAClBvI,EAAK3iN,IAAIkiN,GAAI1iK,MAAMmjK,KAAM,GAEzB,IAAI2jJ,GAAqB,EACrBC,EAAcz5V,OAAOi9M,kBACrBy8I,EAAc15V,OAAOi9M,kBACrB08I,EAAc35V,OAAOm9M,kBACrBy8I,EAAc55V,OAAOm9M,kBACzB,IAAK,IAAIhxN,EAAI,EAAGA,EAAIumN,EAAWvmN,IAAK,CAClC,MAAMgpW,EAAcp4I,EAAa5wN,GAC3B0tW,EAAmB1E,EAAYt+Q,MACrC,IAcIijR,EAdAp7I,EAAkB,EAEtB,IAAK,IAAItsN,EAAI,EAAG8rN,EAAU27I,EAAiBtvW,OAAQ6H,EAAI8rN,EAAS9rN,IAAK,CACnE,MAAM8sB,EAAO26U,EAAiBznW,GACxBysN,EAAW3/L,EAAK9f,KAChB0/M,EAAc5/L,EAAK9f,KAAKw2B,WAC9B+oB,EAAK7mB,UAAUvmC,EAAQutN,GACvBvtN,GAAU,EACVskN,EAAK3iN,IAAI2rN,EAAUttN,GACnBA,GAAUutN,EACVJ,GAAmB,EAAII,CACzB,CAIA,GAAI3yN,EAAIumN,EAAY,EAClBiK,EAAoBI,EAAa5wN,EAAI,GAAGy6M,IAAMuuJ,EAAYvuJ,IAC1DkzJ,EAAW/8I,EAAa5wN,EAAI,GAAGm6M,IAAM6uJ,EAAY7uJ,QAC5C,CACL,MAAMvkM,EAAS7X,KAAK6X,OACdg9M,EACJ5yN,EAAI,EACAgpW,EAAYvuJ,IAAMmW,EAAa5wN,EAAI,GAAGy6M,IACtC6W,EAKN,GAJAq8I,EACE3tW,EAAI,EACAgpW,EAAY7uJ,IAAMyW,EAAa5wN,EAAI,GAAGm6M,IACtCmX,EACF17M,EAAOi9M,wBAAgD,OAAtB90N,KAAKk1N,aAAuB,CAM/D,MAAMF,EAAenyN,KAAKgrC,MAAMh2B,EAAOk9M,cAAgBnC,GACjDqC,GACHxD,EACGP,EAASO,EAAmBmB,EAC5B5yN,KAAKk1N,cAAgB+1I,EAAY7uJ,IACnC6Y,EAAkBD,GAGpBvC,EAAoBwC,EAAkBJ,EAClCpC,EAAoB,EACtBA,EAAoBoC,EAEpBy6I,GAAqB,EAEvB16T,GAAO6c,IACJ,sCACCwjK,EAAkB,6CAElBxC,EAAoB,oCAIxBA,EAAoBoC,CAExB,MACEpC,EAAoBoC,CAExB,CACA,MAAMP,EAAwBzxN,KAAKub,MACjC6sV,EAAY7uJ,IAAM6uJ,EAAYvuJ,KAEhC6yJ,EAAc1sW,KAAK4qB,IAAI8hV,EAAa98I,GACpCg9I,EAAc5sW,KAAK2qB,IAAIiiV,EAAah9I,GACpC+8I,EAAc3sW,KAAK4qB,IAAI+hV,EAAaI,GACpCF,EAAc7sW,KAAK2qB,IAAIkiV,EAAaE,GAEpC98I,EAAclyN,KACZ,IAAIivW,GACF5E,EAAY/pW,IACZuxN,EACA+B,EACAF,GAGN,CAEA,GAAIxB,EAAczyN,OAChB,GAAIkwN,IACF,GAAIA,GAAgB,GAAI,CAGtB,MAAMx9F,EAAQ+/F,EAAc,GAAG//F,MAC/BA,EAAM87F,UAAY,EAClB97F,EAAM48F,UAAY,CACpB,OACK,GAAIm+I,IAIP4B,EAAcF,EAAcC,EAAcF,GAC1Ch8I,EAAwBk8I,EAAc,MACb,IAAzB38I,EAAc,GAAGvD,IACjB,CACA36K,GAAO0yD,KACL,uGAEF,IAAIo1G,EAAMgW,EACV,IAAK,IAAIzwN,EAAI,EAAG8Q,EAAM+/M,EAAczyN,OAAQ4B,EAAI8Q,EAAK9Q,IAAK,CACxD,MAAM6tW,EAAUpzJ,EAAMoW,EAAc7wN,GAAGyd,SACjC08L,EAAMM,EAAMoW,EAAc7wN,GAAGstN,IACnC,GAAIttN,EAAI8Q,EAAM,EAAG,CACf,MAAMmjN,EAAU45I,EAAUh9I,EAAc7wN,EAAI,GAAGstN,IAC/CuD,EAAc7wN,GAAGyd,SAAWw2M,EAAU9Z,CACxC,MACE0W,EAAc7wN,GAAGyd,SAAWzd,EACxB6wN,EAAc7wN,EAAI,GAAGyd,SACrB6zM,EAENT,EAAc7wN,GAAGstN,IAAM,EACvB7S,EAAMozJ,CACR,CACF,CAIJr9I,EACE68I,IAAuB78I,EACnBc,EACAd,EACNzyN,KAAKozN,WAAaA,EAAaT,EAAUF,EACzCzyN,KAAK+tW,oBAAsBt7I,EAC3BzyN,KAAKiuW,mBAAoB,EACzB,MAQM/4V,EAAO,CACXigN,MATWjK,GAAIc,KACfx1C,EAAM6mC,iBACNqV,EACAh2M,GAAc,CAAC,EAAG85J,EAAO,CACvBmmC,QAASmW,KAMXsC,MAAOzJ,EACPsF,SAAUC,EAAS0B,EACnBjB,QAASqB,EAASP,GAAqBG,EACvCyC,SAAU3C,EAAWE,EACrB0C,OAASlC,EAAwBR,EACjC9tN,KAR6B,QAS7BywN,UAAU,EACVC,UAAU,EACVtgD,GAAI49C,EAAczyN,OAClBqkN,QAASluC,EAAMkuC,SAIjB,OAFAluC,EAAMmmC,QAAU,GAChBnmC,EAAMkuC,QAAU,EACTxvM,CACT,CAEA66V,kBAAAA,CAAmBv5L,GACjB,OAAQA,EAAMk0L,cACZ,IAAK,MACH,OAhvB4B,KAivB9B,IAAK,MACH,OAjvBsB,KAkvBxB,QACE,OArvBsB,KAuvB5B,CAEAh5I,UAAAA,CACEl7C,EACAonC,EACAC,EACAC,EACAyT,GAEA,MAAMhU,EAAyB/mC,EAAM+mC,eAI/BuY,EAAsBvY,GAHC/mC,EAAM+kC,WAC/B/kC,EAAM+kC,WACNgC,GAEEkV,EAA4BzyN,KAAK+vW,mBAAmBv5L,GACpDu/C,EAA8BtD,EAAoBqD,EAClD5D,EAAUlyN,KAAKunN,SACfyO,EACmB,QAAvBx/C,EAAMk0L,cAA0B1qW,KAAKikN,cAAc+C,KAC/C8L,EAAkC,GAClCk9I,OAAuClvW,IAApBywN,EAEzB,IAAIsB,EAAmCr8C,EAAMmmC,QACzCt1M,EAAiB2uN,EAAU,EAAI,EAC/Bd,EAAuBl1N,KAAKk1N,eAAiB,EAYjD,MAAM+6I,EAAmBryJ,EAAaL,EAChC2xJ,EAAYh9I,EAAQoK,SAAW/e,EAAkB2U,EAAQ5D,UAkB/D,GAjBAtuN,KAAKguW,kBAAoBnwJ,EACvBA,GACEgV,EAAaxyN,QACb60N,EAAe,IACbpX,GACAj7M,KAAKD,IAAIqtW,EAAmB/6I,GAAgB,KAC5CryN,KAAKD,IACHyrW,GAAax7I,EAAa,GAAGzW,IAAM8yJ,EAAUe,GAC3C/6I,GAEF,GAAKa,GAGblD,EAAatxN,SAAQ,SAAUq7M,GAC7BA,EAAOR,IAAMiyJ,GAAazxJ,EAAOR,IAAM8yJ,EAAUe,EACnD,KAEKpyJ,GAAcqX,EAAe,EAAG,CAOnC,GAHArC,EAAeA,EAAa/iM,QAAQ8sL,GAAWA,EAAOR,KAAO,KAGxDyW,EAAaxyN,OAChB,OAKA60N,EAFsB,IAApB3D,EAEa,EACNzT,IAAuBkyJ,EAEjBntW,KAAK2qB,IAAI,EAAGyiV,GAGZp9I,EAAa,GAAGzW,GAEnC,CAQA,GAA2B,QAAvB5lC,EAAMk0L,aAAwB,CAChC,MAAMz0I,EAAsBj2N,KAAK6X,OAAOo+M,oBACxC,IAAK,IAAIh0N,EAAI,EAAGi0N,EAAUhB,EAAcjzN,EAAI4wN,EAAaxyN,OAAQ4B,IAAK,CAEpE,MAAM26M,EAASiW,EAAa5wN,GACtBm6M,EAAMQ,EAAOR,IACbprJ,EAAQorJ,EAAM8Z,EACdx2M,EAAW7c,KAAKD,IAAK,IAAOouD,EAASusJ,GAG3C,GACEvsJ,IAAUilK,EAAsBF,GAChCi6I,EAEU,IAAN/tW,IACF2yC,GAAO0yD,KACJ,kBAAiB80G,EAAMmB,GAAgBnuL,QACtC,gCAC6BvsB,KAAKub,MACjC,IAAO4yC,EAASusJ,UAGrBv9M,KAAKk1N,aAAeA,EAAegB,EAAU9Z,QAS5C,GACHprJ,GAASilK,EAAsBF,GAC/Br2M,EA72BwB,KA82BxBswV,EACA,CACA,IAAI75I,EAAUtzN,KAAKub,MAAM4yC,EAAQ+kK,GAGjCG,EAAU9Z,EAAM+Z,EAAUJ,EACtBG,EAAU,IACZC,IACAD,GAAWH,GAEH,IAAN9zN,IACFjC,KAAKk1N,aAAeA,EAAegB,GAErCthL,GAAO0yD,KACJ,4BAA2B6uH,oBAC1BD,EAAU3Y,GACVnuL,QAAQ,cAAcvsB,KAAKub,MAC1B,IAAO4yC,EAASusJ,cAGrB,IAAK,IAAIr1M,EAAI,EAAGA,EAAIiuN,EAASjuN,IAAK,CAChC,MAAMkuN,EAAWvzN,KAAK2qB,IAAI0oM,EAAmB,GAC7C,IAAIP,EAAY5K,GAAIC,eAClBx0C,EAAMolC,eAAiBplC,EAAMulC,MAC7BvlC,EAAMslC,cAEH6Z,IACH/gL,GAAO6c,IACL,oGAEFkkK,EAAY/Y,EAAO5nL,KAAK24D,YAE1BklI,EAAajmJ,OAAO3qE,EAAG,EAAG,CACxB+yB,KAAM2gM,EACNvZ,IAAKga,IAEPF,GAAWH,EACX9zN,GACF,CACF,CACA26M,EAAOR,IAAM8Z,EACbA,GAAWH,CACb,CACF,CACA,IAEIpK,EAFAgI,EAA0B,KAC1BiC,EAAyB,KAEzB1B,EAAmB,EACnBi5I,EAAuBt6I,EAAaxyN,OACxC,KAAO8sW,KACLj5I,GAAYrB,EAAas6I,GAAcn4U,KAAK0W,WAE9C,IAAK,IAAIxjC,EAAI,EAAGouN,EAAYzD,EAAaxyN,OAAQ6H,EAAIouN,EAAWpuN,IAAK,CACnE,MAAMquN,EAAc1D,EAAa3qN,GAC3B8sB,EAAOuhM,EAAYvhM,KACzB,IAAIonL,EAAMma,EAAYna,IACtB,GAAgB,OAAZwZ,EAAkB,CAGD9C,EAAc5qN,EAAI,GAC1BwX,SAAW7c,KAAKub,OAAOg+L,EAAMwZ,GAAWE,EACrD,KAAO,CAOL,GANIjY,GAAqC,QAAvBrnC,EAAMk0L,eAEtBtuJ,EAAM8Y,GAGRvB,EAAWvX,IACP8X,EAAW,GAwBb,OArBAA,GAAY7sN,EACZ,IACEskN,EAAO,IAAIn3M,WAAW0/M,GACtB,MAAOniL,GASP,YARA/xC,KAAKy5M,SAASjrJ,KAAK8lF,GAAOimE,MAAOjmE,GAAOimE,MAAO,CAC7Cz1M,KAAM63N,GAAWxI,UACjB1Z,QAASmiB,GAAaxI,kBACtBzZ,OAAO,EACPr/L,MAAOy2B,EACPsX,MAAO6qK,EACP/sM,OAAS,8BAA6B+sM,KAG1C,CACA,IAAK8B,EAAS,CACC,IAAIppL,SAAS++K,EAAK//K,QAC1BgC,UAAU,EAAGsmL,GAClBvI,EAAK3iN,IAAIkiN,GAAI1iK,MAAMmjK,KAAM,EAC3B,CAKJ,CACAA,EAAK3iN,IAAIgsB,EAAM3tB,GACf,MAAMuvN,EAAU5hM,EAAK0W,WACrBrkC,GAAUuvN,EAIV9D,EAAclyN,KAAK,IAAIivW,IAAU,EAAMp9I,EAAmBmE,EAAS,IACnEhB,EAAUxZ,CACZ,CAGA,MAAMoM,EAAYsK,EAAczyN,OAChC,IAAKmoN,EACH,OAIF,MAAMC,EAAaqK,EAAcA,EAAczyN,OAAS,GACxDL,KAAKk1N,aAAeA,EAClBU,EAAWE,EAAcrN,EAAW/oM,SAGtC,MAAMssM,EAAOgK,EACT,IAAIxhN,WAAW,GACf02M,GAAIc,KACFx1C,EAAM6mC,iBACNsW,EAAYmC,EACZp5M,GAAc,CAAC,EAAG85J,EAAO,CAAEmmC,QAASmW,KAI1Ct8C,EAAMmmC,QAAU,GAChB,MAAMxoM,EAAQw/M,EAAYpW,EACpBv5M,EAAMkxN,EAAe3X,EAErByI,EAAY,CAChBmP,MAAOnJ,EACPoJ,MAAOzJ,EACPsF,SAAU98M,EACVw9M,OAAQ3tN,EACRqxN,SAAUlhN,EACVmhN,OAAQtxN,EACRc,KAR6B,QAS7BywN,UAAU,EACVC,UAAU,EACVtgD,GAAIszC,GAIN,OADAxoN,KAAKguW,mBAAoB,EAClBhoJ,CACT,CAEA8L,eAAAA,CACEt7C,EACAonC,EACAC,EACAgU,GAEA,MAAMtU,EAAyB/mC,EAAM+mC,eAI/BuY,EAAsBvY,GAHC/mC,EAAM+kC,WAC/B/kC,EAAM+kC,WACNgC,GAEE2X,EAA8Bl1N,KAAKk1N,aAEnC/C,EAAUnyN,KAAKwnN,SACf0oJ,EAAgC,IAAnB/9I,EAAQmK,SAAoBnK,EAAQ7D,UACjD+G,GACc,OAAjBH,EACGA,EACArD,EAAUwD,SAAW9X,GAAkB2yJ,EACvC56I,EAAiBzD,EAAUyD,OAAS/X,EAAiB2yJ,EAErD5zJ,EArhCoB,KAqhCIwZ,EAExBtN,EAAoB3lN,KAAKgnE,MAAMyrJ,EAASD,GAAY/Y,GAEpDwa,EAAsC/L,GAAIC,eAC9Cx0C,EAAMolC,eAAiBplC,EAAMulC,MAC7BvlC,EAAMslC,cAKR,GAFAlnK,GAAO0yD,KAAK,qCAEPwvH,EAIH,YAHAliL,GAAOihG,MACL,6GAKJ,MAAM8mE,EAAsB,GAC5B,IAAK,IAAI16M,EAAI,EAAGA,EAAIumN,EAAWvmN,IAAK,CAClC,MAAMs6M,EAAQ8Y,EAAWpzN,EAAIq6M,EAC7BK,EAAQ/7M,KAAK,CAAEo0B,KAAM8hM,EAAa1a,IAAKG,EAAOG,IAAKH,GACrD,CAGA,OAFA/lC,EAAMmmC,QAAUA,EAET38M,KAAK0xN,WAAWl7C,EAAOonC,EAAYC,GAAY,EACxD,EAGK,SAASwwJ,GAAajrW,EAAewE,GAC1C,IAAIP,EACJ,GAAkB,OAAdO,EACF,OAAOxE,EAaT,IAREiE,EAFEO,EAAYxE,GAEJ,WAGD,WAKJP,KAAKD,IAAIQ,EAAQwE,GAAa,YACnCxE,GAASiE,EAGX,OAAOjE,CACT,CAWO,SAAS4rW,GACdx4L,EACAonC,EACAsU,EACAC,GAEA,MAAM9xN,EAASm2K,EAAMmmC,QAAQt8M,OAC7B,IAAKA,EACH,OAEF,MAAMk9M,EAAiB/mC,EAAM+mC,eAC7B,IAAK,IAAI35M,EAAQ,EAAGA,EAAQvD,EAAQuD,IAAS,CAC3C,MAAMg5M,EAASpmC,EAAMmmC,QAAQ/4M,GAG7Bg5M,EAAOR,IACLiyJ,GACEzxJ,EAAOR,IAAO8V,EAAQoK,SAAW/e,EAAkB2U,EAAQ5D,UAC3D1Q,EAAaL,GACXA,EACNX,EAAOF,IACL2xJ,GACEzxJ,EAAOF,IAAOyV,EAAQmK,SAAW/e,EAAkB4U,EAAQ7D,UAC3D1Q,EAAaL,GACXA,CACR,CACA,MAAMZ,EAAUnmC,EAAMmmC,QAEtB,OADAnmC,EAAMmmC,QAAU,GACT,CACLA,UAEJ,CAEO,SAASsyJ,GACdz4L,EACAonC,EACAsU,GAEA,MAAM7xN,EAASm2K,EAAMmmC,QAAQt8M,OAC7B,IAAKA,EACH,OAGF,MAAMk9M,EAAiB/mC,EAAM+mC,eAC7B,IAAK,IAAI35M,EAAQ,EAAGA,EAAQvD,EAAQuD,IAAS,CAC3C,MAAMg5M,EAASpmC,EAAMmmC,QAAQ/4M,GAG7Bg5M,EAAOR,IACLiyJ,GACEzxJ,EAAOR,IAAO8V,EAAQoK,SAAW/e,EAAkB2U,EAAQ5D,UAC3D1Q,EAAaL,GACXA,CACR,CACA/mC,EAAMmmC,QAAQ/nL,MAAK,CAACxe,EAAGmgB,IAAMngB,EAAEgmM,IAAM7lL,EAAE6lL,MACvC,MAAMO,EAAUnmC,EAAMmmC,QAEtB,OADAnmC,EAAMmmC,QAAU,GACT,CACLA,UAEJ,CAWA,MAAMkzJ,GAMJtjW,WAAAA,CACE4jW,EACAzwV,EACAzX,EACAsnN,GACA,KAVKtnN,UAAI,OACJyX,cAAQ,OACR6vM,SAAG,OACHx8F,WAAK,EAQV/yH,KAAK0f,SAAWA,EAChB1f,KAAKiI,KAAOA,EACZjI,KAAKuvN,IAAMA,EACXvvN,KAAK+yH,MAAQ,CACX08F,UAAW,EACXX,aAAc,EACdC,cAAe,EACfa,WAAY,EACZf,UAAWshJ,EAAa,EAAI,EAC5BxgJ,UAAWwgJ,EAAa,EAAI,EAEhC,EEz8BF,SAASC,GACP55L,EACA1xK,GAEA,MAAM2lV,EAAc,MAAAj0K,OAAA,EAAAA,EAAOulC,MAC3B,GAAI0uI,GAAeA,EAAYpqV,OAAS,EACtC,OAAOoqV,EAET,GAAI3lV,IAASi8N,GAA6B,CACxC,GACkB,SAAhB0pH,GACgB,SAAhBA,GACgB,SAAhBA,EAEA,OAAOA,EAET,GAAoB,SAAhBA,GAA0C,SAAhBA,EAAwB,CAGpD,OAAOL,GAAuBK,GADG,EAEnC,CACA,MAAMp4U,EAAS,YAIf,OAHAuiC,GAAOn5B,KACJ,uBAAsBgvU,+CAAyDp4U,MAE3EA,CACT,CAIA,OADAuiC,GAAO0yD,KAAM,0BAAyBmjP,MAClB,SAAhBA,GAA0C,SAAhBA,EACrB,mBAEW,SAAhBA,EACK,gBAEF,aACT,CDtRA,IACEppR,GAAMz2B,KAAK02B,YAAYD,IAAI70C,KAAKoe,KAAK02B,YACvC,CAAE,MAAOvvB,IACP6C,GAAOg0K,MAAM,qDACbvnJ,GAAkB,MAAZg7Q,QAAY,EAAZA,GAActiS,KAAKsnB,GAC3B,CASA,MAAM62J,GAAyB,CAC7B,CAAEC,MZTJ,MASE5rN,WAAAA,CAAYktM,EAA2B5hM,GAAmB,KARlD6oV,cAAmC,KAAI,KACvC9iJ,WAAqB,EAAC,KACtB/lM,YAAM,OACNuvM,gBAAU,OACV5B,gBAAU,OACVC,cAAQ,OACR4qJ,cAAQ,EAGdrwW,KAAK6X,OAASA,CAChB,CAEO2lM,cAAAA,GAAkB,CAElBP,gBAAAA,CACLC,EACA5B,EACA6B,EACAwrJ,GAEA,MAAMvhJ,EAAcpnN,KAAKonN,WAAamhJ,GACpC,QACA,GAEI/iJ,EAAcxlN,KAAKwlN,WAAa+iJ,GACpC,QACA,GAEI+H,EAAgBtwW,KAAKqwW,SAAW9H,GACpC,OACA,GAMF,GAHAvoW,KAAKylN,SAAW8iJ,GAAW,MAAO,GAClCvoW,KAAK49M,WAAa,EAEF,MAAXV,IAAAA,EAAaxxK,WAChB,OAEF,MAAMivL,EAAWC,GAAiB1d,GAElC,GAAIyd,EAAS/W,MAAO,CAClB,MAAM,GAAElgL,EAAE,UAAE4qL,EAAS,MAAEvS,GAAU4e,EAAS/W,MAC1CwD,EAAW1jL,GAAKA,EAChB0jL,EAAWkH,UAAYgiJ,EAAahiJ,UAAYA,EAChDlH,EAAWrL,MAAQA,CACrB,CAEA,GAAI4e,EAAS9W,MAAO,CAClB,MAAM,GAAEngL,EAAE,UAAE4qL,EAAS,MAAEvS,GAAU4e,EAAS9W,MAC1C2B,EAAW9hL,GAAKA,EAChB8hL,EAAW8I,UAAYA,EACvB9I,EAAWzJ,MAAQA,CACrB,CAEAu0J,EAAa5sU,GAAKigL,GAAqB/qM,KACvCwuM,EAAWs7H,eAAiB,EAC5Bt7H,EAAW1nM,SAAW8lM,EAAW9lM,SAAWipV,CAC9C,CAEOE,eAAAA,GACL7oW,KAAK0gW,cAAgB,IACvB,CAEA,YAAOjjJ,CAAMvoM,GACX,OzC9BG,SAAqBA,GAC1B,MAAMlR,EAAMkR,EAAKw2B,WACjB,IAAK,IAAIzpC,EAAI,EAAGA,EAAI+B,GAAO,CACzB,MAAMiE,EAAOgzN,GAAW/lN,EAAMjT,GAC9B,GACEgG,EAAO,GACS,MAAhBiN,EAAKjT,EAAI,IACO,MAAhBiT,EAAKjT,EAAI,IACO,MAAhBiT,EAAKjT,EAAI,IACO,MAAhBiT,EAAKjT,EAAI,GAET,OAAO,EAETA,EAAIgG,EAAO,EAAIhG,EAAIgG,EAAOjE,CAC5B,CACA,OAAO,CACT,CyCcWusW,CAAYr7V,EACrB,CAEOijN,KAAAA,CAAMjjN,EAAkB0oM,GAC7B59M,KAAK49M,WAAaA,EAElB,IAAImT,EAAe77M,EACnB,MAAMkyM,EAAapnN,KAAKonN,WAClBC,EAAYrnN,KAAKqwW,SACvB,GAAIrwW,KAAK6X,OAAOwsV,YAAa,CAIvBrkW,KAAK0gW,gBACP3vI,EAAe0wH,GAAiBzhV,KAAK0gW,cAAexrV,IAEtD,MAAMs7V,EzCssBL,SAA2Bt7V,GAChC,MAAMu7V,EAAiC,CACrCC,MAAO,KACPz7V,UAAW,MAGP07V,EAAQ71I,GAAQ5lN,EAAM,CAAC,SAC7B,GAAIy7V,EAAMtwW,OAAS,EAEjB,OADAowW,EAAex7V,UAAYC,EACpBu7V,EAET,MAAMn2N,EAAOq2N,EAAMA,EAAMtwW,OAAS,GAIlC,OAFAowW,EAAeC,MAAQ9yB,GAAW1oU,EAAM,EAAGolI,EAAKzuG,WAAa,GAC7D4kU,EAAex7V,UAAY2oU,GAAW1oU,EAAMolI,EAAKzuG,WAAa,GACvD4kU,CACT,CyCttB4BG,CAAkB7/I,GACxC/wN,KAAK0gW,cAAgB8P,EAAcv7V,UACnCmyM,EAAWzK,QAAU6zJ,EAAcE,OAAS,IAAIl8V,UAClD,MACE4yM,EAAWzK,QAAUoU,EAGvB,MAAMtL,EAAWzlN,KAAK6wW,gBAAgBzpJ,EAAYxJ,GAGlD,OAFAyJ,EAAU1K,QAAU+kI,GAAa9jI,EAAYwJ,GAEtC,CACLA,aACA5B,WAAYxlN,KAAKwlN,WACjBC,WACA4B,UAAWrnN,KAAKqwW,SAEpB,CAEO7tW,KAAAA,GACL,MAAMo7M,EAAa59M,KAAK49M,WAClBwJ,EAAapnN,KAAKonN,WAClBC,EAAYrnN,KAAKqwW,SACvBjpJ,EAAWzK,QAAU38M,KAAK0gW,eAAiB,IAAIlsV,WAC/CxU,KAAK0gW,cAAgB,KAErB,MAAMj7I,EAAWzlN,KAAK6wW,gBAAgBzpJ,EAAYpnN,KAAK49M,YAGvD,OAFAyJ,EAAU1K,QAAU+kI,GAAa9jI,EAAYwJ,GAEtC,CACLA,aACA5B,WAAY+iJ,KACZ9iJ,WACA4B,UAAWkhJ,KAEf,CAEQsI,eAAAA,CACNzpJ,EACAxJ,GAEA,MAAM6H,EAAWzlN,KAAKylN,SACtB,GAAI2B,EAAWzK,QAAQt8M,OAAQ,CAC7B,MAAMywW,EAAQh2I,GAAQ1T,EAAWzK,QAAS,CAAC,SACvCm0J,GACFA,EAAMvvW,SAAS2T,IACb,MAAM67V,EzC8gCT,SAAmB77V,GACxB,MAAMy1B,EAAUz1B,EAAK,GACrB,IAAI87V,EAAsB,GACtB5tW,EAAgB,GAChBwvN,EAAoB,EACpBq+I,EAAgC,EAChChpG,EAA2B,EAC3BipG,EAAwB,EACxBxtU,EAAa,EACbr8B,EAAiB,EAErB,GAAgB,IAAZsjC,EAAe,CACjB,KAAsD,OAA/CowL,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,KAC5C2pW,GAAej2I,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IACtDA,GAAU,EAMZ,IAHA2pW,GAAej2I,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IACtDA,GAAU,EAE4C,OAA/C0zN,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,KAC5CjE,GAAS23N,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IAChDA,GAAU,EAGZjE,GAAS23N,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IAChDA,GAAU,EAEVurN,EAAYqI,GAAW/lN,EAAM,IAC7B+7V,EAAwBh2I,GAAW/lN,EAAM,IACzCg8V,EAAgBj2I,GAAW/lN,EAAM,IACjCwuB,EAAKu3L,GAAW/lN,EAAM,IACtB7N,EAAS,EACX,MAAO,GAAgB,IAAZsjC,EAAe,CACxBtjC,GAAU,EACVurN,EAAYqI,GAAW/lN,EAAM7N,GAC7BA,GAAU,EACV,MAAM8pW,EAAuBl2I,GAAW/lN,EAAM7N,GAC9CA,GAAU,EACV,MAAM+pW,EAAwBn2I,GAAW/lN,EAAM7N,GAe/C,IAdAA,GAAU,EACV4gQ,EAAmB,GAAK,GAAKkpG,EAAuBC,EAC/Cn7B,GAAqBhuE,KACxBA,EAAmBnyP,OAAOkqB,iBAC1B4U,GAAO0yD,KACL,qGAIJ4pQ,EAAgBj2I,GAAW/lN,EAAM7N,GACjCA,GAAU,EACVq8B,EAAKu3L,GAAW/lN,EAAM7N,GACtBA,GAAU,EAE4C,OAA/C0zN,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,KAC5C2pW,GAAej2I,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IACtDA,GAAU,EAMZ,IAHA2pW,GAAej2I,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IACtDA,GAAU,EAE4C,OAA/C0zN,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,KAC5CjE,GAAS23N,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IAChDA,GAAU,EAGZjE,GAAS23N,GAAQ7lN,EAAKy4E,SAAStmF,EAAQA,EAAS,IAChDA,GAAU,CACZ,CAGA,MAAO,CACL2pW,cACA5tW,QACAwvN,YACAq1C,mBACAgpG,wBACAC,gBACAxtU,KACAwzB,QAVchiD,EAAKy4E,SAAStmF,EAAQ6N,EAAKw2B,YAY7C,CyChmC2B2lU,CAAUn8V,GAC3B,GAAIk1V,GAAkBt/U,KAAKimV,EAASC,aAAc,CAChD,MAAM50J,EAAM86D,GAAgB65F,EAAS9oG,kBACjC8oG,EAAS9oG,iBAAoB8oG,EAASn+I,UACtChV,EACAmzJ,EAASE,sBAAyBF,EAASn+I,UAC/C,IAAIlzM,EACyB,aAA3BqxV,EAASG,cACLp7V,OAAOi9M,kBACPg+I,EAASG,cAAgBH,EAASn+I,UAEpClzM,GAAY,OACdA,EAAW5J,OAAOi9M,mBAEpB,MAAM77J,EAAU65S,EAAS75S,QACzBuuJ,EAAS9I,QAAQ/7M,KAAK,CACpBsU,KAAMgiD,EACNnkD,IAAKmkD,EAAQxrB,WACbgxK,IAAKN,EACLA,IAAKA,EACLt3M,KAAMkrV,GACNtwU,SAAUA,GAEd,IAGN,CACA,OAAO+lM,CACT,CAEAyjJ,cAAAA,CACEh0V,EACAsoU,EACA5/H,GAEA,OAAO9mK,QAAQuvB,OACb,IAAIr0D,MAAM,0DAEd,CAEAqhI,OAAAA,GAAW,GY9JU8qE,MCJvB,MAA4C5xM,WAAAA,GAAA,KAClC+kW,iBAA2B,EAAK,KAChCh2J,gBAAU,OACV6B,gBAAU,OACVwd,cAAQ,OACRzI,QAAoC,KAAI,KACxCq/I,gBAAU,OACV92H,YAA6B,IAAI,CAElCpnG,OAAAA,GAAW,CAEXmqE,cAAAA,CAAema,GACpB33N,KAAKkyN,QAAUyF,EACf33N,KAAKy6O,YAAc,IACrB,CAEO0zH,kBAAAA,GACLnuW,KAAKy6O,YAAc,IACrB,CAEOx9B,gBAAAA,CACLC,EACA5B,EACA6B,EACAiF,GAEApiN,KAAKs7M,WAAaA,EAClBt7M,KAAKm9M,WAAaA,EAClBn9M,KAAKwxW,oBtD+aF,SACLt0J,EACAkF,GAEA,IAAKlF,IAAgBkF,EACnB,OAAOlF,EAET,MAAMugI,EAAQr7H,EAAYq7H,MACtBA,GAASr7H,EAAYyiI,oBACT/pH,GAAQ5d,EAAa,CAAC,OAAQ,SACtC37M,SAASyrN,IACb,MAGMkyH,EAHOpkH,GAAQ9N,EAAM,CAAC,OAAQ,OAAQ,OAAQ,SAAS,GAGlCr/H,SAAS,GACpC,IAAI8jR,EAAW32I,GAAQokH,EAAe,CAAC,SACvC,MAAMwyB,EAAUD,EAASpxW,OAAS,EAC7BqxW,IACHD,EAAW32I,GAAQokH,EAAe,CAAC,UAErCuyB,EAASlwW,SAASg4F,IAEEuhI,GADK42I,EAAUn4Q,EAAI5L,SAAS,IAAM4L,EAAI5L,SAAS,IACvB,CAAC,SACjCpsF,SAAS+9U,IACjB,MAAMqyB,EAAOrwB,GAAUhC,GACvB,GAAIqyB,EAAM,CAER,MAAMC,EAAYD,EAAKhkR,SAAS,EAAG,IAC9BikR,EAAU5iM,MAAMz4I,GAAY,IAANA,MACzBqe,GAAO6c,IACJ,+BACCigT,EAAU,IAAM,wBACGpzB,GAAYszB,SAAiBtzB,GAChDb,MAGJk0B,EAAK3oW,IAAIy0U,EAAO,GAEpB,IACA,GACF,IAIN,OAAOvgI,CACT,CsD5d6B20J,CAAmB30J,EAAakF,IACzDpiN,KAAKsxW,iBAAkB,CACzB,CAEQE,mBAAAA,CAAoBt0J,GAC1B,IAAI,WAAE5B,EAAU,WAAE6B,GAAen9M,KACjC,GAAgB,MAAXk9M,IAAAA,EAAaxxK,WAGhB,OAFA1rC,KAAKuxW,gBAAazwW,OAClBd,KAAK26N,cAAW75N,GAGlB,MAAM65N,EAAY36N,KAAK26N,SAAWC,GAAiB1d,GAG/Cyd,EAAS9W,QACXvI,EAAa80J,GACXz1I,EAAS9W,MACTkd,KAIApG,EAAS/W,QACXzG,EAAaizJ,GACXz1I,EAAS/W,MACTmd,KAIJ,MAAMpS,EAAmB,CAAC,EACtBgM,EAAS9W,OAAS8W,EAAS/W,MAC7B+K,EAAOkM,WAAa,CAClBp6N,UAAW,YACXs7M,MAAOT,EAAa,IAAM6B,EAC1BD,cACAx5K,GAAI,QAEGi3L,EAAS9W,MAClB8K,EAAO9K,MAAQ,CACbpjN,UAAW,YACXs7M,MAAOT,EACP4B,cACAx5K,GAAI,SAEGi3L,EAAS/W,MAClB+K,EAAO/K,MAAQ,CACbnjN,UAAW,YACXs7M,MAAOoB,EACPD,cACAx5K,GAAI,QAGNkR,GAAO0yD,KACL,8EAGJtnG,KAAKuxW,WAAa5iJ,CACpB,CAEOxQ,KAAAA,CACLqH,EACA4B,EACA3B,EACA4B,EACAzJ,EACAE,GACe,IAAAg0J,EAAAC,EACf,IAAI,QAAE7/I,EAAO,YAAEuoB,GAAgBz6O,KAC/B,MAAMqS,EAAwB,CAC5BwxM,WAAO/iN,EACP8iN,WAAO9iN,EACP8X,KAAMyuM,EACN3J,IAAK+H,EACLvI,iBAAap8M,GAMVo2Q,GAAgBz8B,KACnBA,EAAcz6O,KAAKy6O,YAAc78B,GAAc,GAKjD,MAAM1oM,EAAOkyM,EAAWzK,QACxB,GAAS,MAAJznM,IAAAA,EAAM7U,OACT,OAAOgS,EAGT,MAAM6qM,EAA+B,CACnCgV,aAASpxN,EACTwtN,UAAW,GAEb,IAAIqM,EAAW36N,KAAK26N,SAKpB,GAJa,OAATm3I,EAACn3I,IAAAm3I,EAAUzxW,SACbL,KAAKwxW,oBAAoBt8V,GACzBylN,EAAW36N,KAAK26N,UAEL,OAATo3I,EAACp3I,KAAAo3I,EAAU1xW,OAGb,OADAu0C,GAAO0yD,KAAK,6DACLj1F,EAELrS,KAAKsxW,kBACPp0J,EAAYyR,OAAS3uN,KAAKuxW,WAC1BvxW,KAAKsxW,iBAAkB,GAGzB,MAAM5xV,EtDodH,SAAqBxK,EAAkBylN,GAC5C,IAAIq3I,EAAc,EACdC,EAAgB,EAChBC,EAAgB,EACpB,MAAM91I,EAAQtB,GAAQ5lN,EAAM,CAAC,OAAQ,SACrC,IAAK,IAAIjT,EAAI,EAAGA,EAAIm6N,EAAM/7N,OAAQ4B,IAAK,CACrC,MAAM8qN,EAAOqP,EAAMn6N,GAKb6qN,EAAOgO,GAAQ/N,EAAM,CAAC,SAAS,GAG/Bv2C,EAAQmkD,EADHM,GAAWnO,EAAM,IAE5B,IAAKt2C,EACH,SAEF,MAAM27L,EAAe37L,EAAMv/J,QACrB6qU,EAAY7mH,GAAWnO,EAAM,IAAiB,MAAZqlJ,OAAY,EAAZA,EAAcp/O,OACtD,IAAI2vN,EAAqC,MAAAyvB,OAAA,EAAAA,EAAczyV,SACvC,EAAZoiU,IAKAY,EAAiBznH,GAAWnO,EAHd,EAAZg1H,EAGgC,GAGA,IAItC,MAAMxzH,EAAY93C,EAAM83C,WAAa,IAC/B8jJ,EAAQt3I,GAAQ/N,EAAM,CAAC,SAC7B,IAAK,IAAI7kN,EAAI,EAAGA,EAAIkqW,EAAM/xW,OAAQ6H,IAChC8pW,EAAczwB,GAA8B6wB,EAAMlqW,KAC7C8pW,GAAetvB,IAElBsvB,EAActvB,EADMznH,GAAWm3I,EAAMlqW,GAAI,IAGvCsuK,EAAM1xK,OAASi8N,GACjBkxI,GAAiBD,EAAc1jJ,EACtB93C,EAAM1xK,OAASi8N,KACxBmxI,GAAiBF,EAAc1jJ,EAGrC,CACA,GAAsB,IAAlB2jJ,GAAyC,IAAlBC,EAAqB,CAE9C,IAAIG,EAAevgR,IACfwgR,EAAa,EACbC,EAAe,EACnB,MAAMC,EAAQ13I,GAAQ5lN,EAAM,CAAC,SAC7B,IAAK,IAAIjT,EAAI,EAAGA,EAAIuwW,EAAMnyW,OAAQ4B,IAAK,CACrC,MAAMu5N,EAAOH,GAAkBm3I,EAAMvwW,IACrC,GAAQ,MAAJu5N,GAAAA,EAAMF,WAAY,CACpB+2I,EAAexvW,KAAK4qB,IAClB4kV,EACA72I,EAAKO,yBAA2BP,EAAKlN,WAEvC,MAAMmkJ,EAAqBj3I,EAAKF,WAAWnlN,QACzC,CAACu8V,EAAK1mW,IAAQ0mW,EAAM1mW,EAAIyP,KAAKiE,UAAY,GACzC,GAEF4yV,EAAazvW,KAAK2qB,IAChB8kV,EACAG,EAAqBj3I,EAAKO,yBAA2BP,EAAKlN,WAE5DikJ,EAAeD,EAAaD,CAC9B,CACF,CACA,GAAIE,GAAgBr7F,GAAgBq7F,GAClC,OAAOA,CAEX,CACA,OAAIN,GAGGC,CACT,CsDpiBqBlxF,CAAY9rQ,EAAMylN,GAC7BtF,EtD6YH,SACLsF,EACAg4I,GAGA,OAAO73I,GAAQ63I,EAAM,CAAC,OAAQ,SAASx8V,QACrC,CAAC9D,EAAuB06M,KACtB,MAAMF,EAAOiO,GAAQ/N,EAAM,CAAC,SAAS,GAC/BpiL,EAAUkiL,EAAK,GACf14M,EAAQ2mN,GAAQ/N,EAAM,CAAC,SAAS52M,QACpC,CAAC9D,EAAuBy6M,KAEtB,MAAMppL,EAAKu3L,GAAWnO,EAAM,GACtBt2C,EAAQmkD,EAASj3L,GACvB,GAAI8yI,EAAO,CACT,IAAI8lD,EAAWrB,GAAWpO,EAAM,GAChC,GAAgB,IAAZliL,EAAe,CAIjB,GAAI2xL,IAAaiiH,GAIf,OAHA3pS,GAAO0yD,KACJ,oFAEIj1F,EAETiqN,GAAYiiH,GAAa,EACzBjiH,GAAYrB,GAAWpO,EAAM,EAC/B,CAEA,MAEM57J,EAAYqrK,GAFJ9lD,EAAM83C,WAAa,KAGjC,GACE4oD,GAAgBjmN,KACJ,OAAX5+C,GAAmB4+C,EAAY5+C,GAEhC,OAAO4+C,CAEX,CACA,OAAO5+C,CAAM,GAEf,MAEF,OACY,OAAV8B,GACA+iQ,GAAgB/iQ,KACJ,OAAX9B,GAAmB8B,EAAQ9B,GAErB8B,EAEF9B,CAAM,GAEf,KAEJ,CsDpcqB8pN,CAAYxB,EAAUzlN,GACjC09V,EAA0B,OAAbv9I,EAAoBzX,EAAayX,GA6ExD,SACEnD,EACAmD,EACAzX,EACAl+L,GAEA,GAAgB,OAAZwyM,EACF,OAAO,EAGT,MAAM2gJ,EAAchwW,KAAK2qB,IAAI9N,EAAU,GACjCuxC,EAAYokK,EAAWnD,EAAQoK,SAAWpK,EAAQ5D,UACxD,OAAOzrN,KAAKD,IAAIquD,EAAY2sJ,GAAci1J,CAC5C,CAxFMC,CAAiB5gJ,EAAS0gJ,EAAYh1J,EAAYl+L,IACjDw9L,EAAYoR,YAAc4D,EAAQ5D,WAAaxQ,KAEhDZ,EAAYgV,QAAU0gJ,EAAah1J,EAC/BsU,GAAiC,IAAtBA,EAAQ5D,WACrB15K,GAAO0yD,KACJ,yBAAuB41G,EAAYgV,QAAUA,EAAQoK,WAG1Dt8N,KAAKkyN,QAAUA,EAAU,CACvBoK,SAAUpf,EAAYgV,QACtB5D,UAAW,IAIf,MAAMr9J,EAAYu0J,EACdotJ,EAAa1gJ,EAAQoK,SAAWpK,EAAQ5D,UACvCmsB,EACCzqI,EAAU/+C,EAAYvxC,GtD2kBzB,SACLi7M,EACAg4I,EACA/0J,GAEAkd,GAAQ63I,EAAM,CAAC,OAAQ,SAASpxW,SAASwrN,IACvC+N,GAAQ/N,EAAM,CAAC,SAASxrN,SAASurN,IAE/B,MAAMppL,EAAKu3L,GAAWnO,EAAM,GACtBt2C,EAAQmkD,EAASj3L,GACvB,IAAK8yI,EACH,OAGF,MAAM83C,EAAY93C,EAAM83C,WAAa,IAErCwM,GAAQ/N,EAAM,CAAC,SAASxrN,SAASsrN,IAC/B,MAAMliL,EAAUkiL,EAAK,GACfxlN,EAASu2M,EAAa0Q,EAC5B,GAAIjnN,EAAQ,CACV,IAAIqnN,EAAsBuM,GAAWpO,EAAM,GAC3C,GAAgB,IAAZliL,EACF+jL,GAAuBrnN,EACvBqnN,EAAsB7rN,KAAK2qB,IAAIkhM,EAAqB,GACpDwM,GAAYrO,EAAM,EAAG6B,OAChB,CACLA,GAAuB7rN,KAAKqrC,IAAI,EAAG,IACnCwgL,GAAuBuM,GAAWpO,EAAM,GACxC6B,GAAuBrnN,EACvBqnN,EAAsB7rN,KAAK2qB,IAAIkhM,EAAqB,GACpD,MAAM8N,EAAQ35N,KAAKgrC,MAAM6gL,GAAuB6vH,GAAa,IACvD9hH,EAAQ55N,KAAKgrC,MAAM6gL,GAAuB6vH,GAAa,IAC7DrjH,GAAYrO,EAAM,EAAG2P,GACrBtB,GAAYrO,EAAM,EAAG4P,EACvB,CACF,IACA,GACF,GAEN,CsDjnBIF,CAAe5B,EAAUzlN,EAAMg9M,EAAQoK,SAAWpK,EAAQ5D,WAEtD5uM,EAAW,EACb1f,KAAKy6O,YAAczqI,GAEnBp7D,GAAO0yD,KAAK,wDACZtnG,KAAKmuW,sBAGP,MAAM54I,IAAaoF,EAAS9W,MACtB2R,IAAamF,EAAS/W,MAE5B,IAAI9+M,EAAY,GACZywN,IACFzwN,GAAQ,SAGN0wN,IACF1wN,GAAQ,SAGV,MAAM0xK,EAAsB,CAC1B2+C,MAAOjgN,EACP+7M,SAAUhgK,EACVokK,SAAUpkK,EACV0gK,OAAQ3hH,EACRslH,OAAQtlH,EACRlrG,OACAywN,WACAC,WACAtgD,GAAI,EACJwvC,QAAS,GAqBX,OAlBAryM,EAAOwxM,MAAuB,UAAfrtC,EAAM1xK,KAAmB0xK,OAAQ11K,EAChDuR,EAAOuxM,MAAuB,UAAfptC,EAAM1xK,KAAmB0xK,OAAQ11K,EAChDuR,EAAO6qM,YAAcA,EACrB7qM,EAAOqrM,IAAMsxJ,GACXvpJ,EACA7H,EACAsU,EACAA,GAGE7K,EAAU1K,QAAQt8M,SACpBgS,EAAOuG,KAAOq2V,GACZ5nJ,EACAzJ,EACAsU,IAIG7/M,CACT,ID/MA,CAAE8lN,MAAOnU,GAAW7F,MAAOwS,IAC3B,CAAEwH,ME7BJ,cAAyBqwI,GAIvBj8V,WAAAA,CAAYktM,EAAU5hM,GACpBy7G,QAAQ,KAJOmmF,cAAQ,OACR5hM,YAAM,EAIrB7X,KAAKy5M,SAAWA,EAChBz5M,KAAK6X,OAASA,CAChB,CAEAolM,gBAAAA,CACEC,EACA5B,EACA6B,EACAwrJ,GAEAr1O,MAAM2pF,iBAAiBC,EAAa5B,EAAY6B,EAAYwrJ,GAC5D3oW,KAAKo9M,YAAc,CACjB38M,UAAW,aACXqE,KAAM,QACN4+B,GAAI,EACJ+gL,KAAM,EACNpH,eAAgB,EAChBqtJ,aAAc,MACd/tJ,QAAS,GACTf,cAAeN,EACf57L,SAAUipV,EACVprJ,eAAgB,IAChBmH,QAAS,EAEb,CAGA,YAAOjH,CAAMvoM,GACX,IAAKA,EACH,OAAO,EAOT,MAAM6oM,EAAUJ,GAAezoM,EAAM,GACrC,IAAI7N,GAAgB,MAAP02M,OAAO,EAAPA,EAAS19M,SAAU,EAEhC,GAAIo9M,GAAgBvoM,EAAM7N,GACxB,OAAO,EAGT,IAAK,IAAIhH,EAAS6U,EAAK7U,OAAQgH,EAAShH,EAAQgH,IAC9C,GAAIgiW,GAAWn0V,EAAM7N,GAEnB,OADAutC,GAAO6c,IAAI,2BACJ,EAGX,OAAO,CACT,CAEAq3S,QAAAA,CAAS5zV,EAAM7N,GACb,OhBkIG,SAAkB6N,EAAkB7N,GACzC,OAZK,SAA2B6N,EAAkB7N,GAClD,OAAOA,EAAS,EAAI6N,EAAK7U,MAC3B,CAWI0yW,CAAkB79V,EAAM7N,IACxB8hW,GAAgBj0V,EAAM7N,IACtB0zM,GAAmB7lM,EAAM7N,IAAW6N,EAAK7U,OAASgH,CAEtD,CgBxIW2rW,CAAc99V,EAAM7N,EAC7B,CAEA80M,WAAAA,CAAY3lC,EAAOthK,EAAM7N,GACvBg0M,GACE7kC,EACAx2K,KAAKy5M,SACLvkM,EACA7N,EACAmvK,EAAMolC,eAER,MAAMsC,EAAQwrJ,GACZlzL,EACAthK,EACA7N,EACArH,KAAK0oW,QACL1oW,KAAKq8M,YAEP,GAAI6B,GAA2B,IAAlBA,EAAMiY,QACjB,OAAOjY,CAEX,GFnDqBC,MAAOwS,IAC5B,CAAEwH,MGhCJ,cAAyBqwI,GACvBvrJ,gBAAAA,CACEC,EACA5B,EACA6B,EACAwrJ,GAEAr1O,MAAM2pF,iBAAiBC,EAAa5B,EAAY6B,EAAYwrJ,GAC5D3oW,KAAKo9M,YAAc,CACjB38M,UAAW,aACXqE,KAAM,QACN4+B,GAAI,EACJ+gL,KAAM,EACNpH,eAAgB,EAChBqtJ,aAAc,MACd/tJ,QAAS,GACTf,cAAeN,EACf57L,SAAUipV,EACVprJ,eAAgB,IAChBmH,QAAS,EAEb,CAEA,YAAOjH,CAAMvoM,GACX,IAAKA,EACH,OAAO,EAOT,MAAM6oM,EAAUJ,GAAWzoM,EAAM,GACjC,IAAI7N,GAAgB,MAAP02M,OAAO,EAAPA,EAAS19M,SAAU,EAGhC,GACE09M,GACiB,KAAjB7oM,EAAK7N,IACgB,MAArB6N,EAAK7N,EAAS,SACYvG,IAA1Bk9M,GAAaD,IAEbssJ,GAAan1V,EAAM7N,IAAW,GAE9B,OAAO,EAGT,IAAK,IAAIhH,EAAS6U,EAAK7U,OAAQgH,EAAShH,EAAQgH,IAC9C,GAAIo2M,GAAgBvoM,EAAM7N,GAExB,OADAutC,GAAO6c,IAAI,iCACJ,EAGX,OAAO,CACT,CAEAq3S,QAAAA,CAAS5zV,EAAM7N,GACb,OhBuFG,SAAkB6N,EAAkB7N,GAGzC,OAAOwzM,GAAgB3lM,EAAM7N,IAFV,GAEmC6N,EAAK7U,OAASgH,CACtE,CgB3FWyhW,CAAmB5zV,EAAM7N,EAClC,CAEA80M,WAAAA,CAAY3lC,EAAOthK,EAAM7N,GACvB,GAAqB,OAAjBrH,KAAK0oW,QAGT,OAAOmB,GACLrzL,EACAthK,EACA7N,EACArH,KAAK0oW,QACL1oW,KAAKq8M,WAET,GHvCqB8B,MAAOwS,KAI5BuH,GAAUtrJ,OAAO,EAAG,EAAG,CAAEurJ,MAAOsyI,GAAYtsJ,MAAOwS,KAGtC,MAAMsiJ,GAenB1mW,WAAAA,CACEktM,EACAwK,EACApsM,EACAw8I,EACA3wH,GACA,KApBK+kD,OAAiB,EAAK,KACrBgxH,cAAQ,OACRwK,mBAAa,OACbpsM,YAAM,OACNw8I,YAAM,OACN3wH,QAAE,OACF8zL,aAAO,OACPxa,aAAO,OACPsF,eAAS,OACT7E,WAAK,OACLy1J,kBAAsD,KAAI,KAC1DC,oBAAc,OACdC,0BAAoB,EAS1BpzW,KAAKy5M,SAAWA,EAChBz5M,KAAKikN,cAAgBA,EACrBjkN,KAAK6X,OAASA,EACd7X,KAAKq0J,OAASA,EACdr0J,KAAK0jC,GAAKA,CACZ,CAEAjZ,SAAAA,CAAU0oV,GACRnzW,KAAKmzW,eAAiBA,EAClBnzW,KAAKsiN,WACPtiN,KAAKsiN,UAAUziL,OAEnB,CAEAj/B,IAAAA,CACEsU,EACAktM,EACAuhJ,EACA57U,GAEA,MAAM8vM,EAAQ8rI,EAAU3F,YACxBnmI,EAAMomI,aAAe58R,KAErB,IAAIgyS,EAAuB,IAAI7+V,WAAWU,GAC1C,MAAM,qBAAEk+V,EAAoB,eAAED,GAAmBnzW,KAC7C+nB,IACF/nB,KAAKozW,qBAAuBrrV,GAG9B,MAAM,WACJ81L,EAAU,cACV4Z,EAAa,YACbC,EAAW,mBACX5Z,EAAkB,WAClBF,EAAU,kBACV01J,GACEvrV,GAASqrV,GACP,WACJ93J,EAAU,WACV6B,EAAU,eACVo2J,EAAc,SACd7zV,EAAQ,gBACRqjO,GACEowH,EAEE31B,EA6VV,SACEtoU,EACAq3P,GAEA,IAAIinG,EAAiC,KAEnCt+V,EAAKw2B,WAAa,GACE,OAAT,MAAX6gO,OAAW,EAAXA,EAAarrQ,MACM,OAAnBqrQ,EAAYl3D,IACU,MAAtBk3D,EAAYp6M,SAEZqhT,EAAiBjnG,GAEnB,OAAOinG,CACT,CA3WoBC,CAAkBJ,EAAUjxJ,GAC5C,GAAIo7H,GAA8B,YAAnBA,EAAQrrR,OAAsB,CAC3C,MAAMmwJ,EAAYtiN,KAAK0zW,eAEvB,IAAIpxJ,EAAUtI,SAgCZ,OAbAh6M,KAAKkzW,kBAAoB5wJ,EACtB0+I,iBAAiBqS,EAAU71B,EAAQt8U,IAAI0qC,OAAQ4xS,EAAQnoI,GAAGzpK,QAC1D6zD,MAAMsjH,IAGL,MAAM1wM,EAASrS,KAAKY,KAClBmiN,EACA,KACA4gJ,GAGF,OADA3jW,KAAKkzW,kBAAoB,KAClB7gW,CAAM,IAEVrS,KAAKkzW,kBAhCU,CAGtB,IAAInwJ,EAAgBT,EAAUw+I,gBAC5BuS,EACA71B,EAAQt8U,IAAI0qC,OACZ4xS,EAAQnoI,GAAGzpK,QAOb,GAJqB+3T,EAAU53R,MAAQ,IAErCg3I,EAAgBT,EAAU9/M,UAEvBugN,EAEH,OADA8U,EAAMqmI,WAAa78R,KACZsyS,GAAYhQ,GAErB0P,EAAW,IAAI7+V,WAAWuuM,EAC5B,CAgBF,CAEA,MAAM6wJ,EAAc5zW,KAAK6zW,aAAap8I,EAAeC,GACrD,GAAIk8I,EAAa,CACf,MAAMt4V,EAAQtb,KAAK8zW,oBAAoBT,GACvC,GAAI/3V,EAUF,OATAs5B,GAAO0yD,KAAM,gBAAehsF,EAAMg4B,WAClCtzC,KAAKy5M,SAASjrJ,KAAK8lF,GAAOimE,MAAOjmE,GAAOimE,MAAO,CAC7Cz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa5gB,mBACtBrB,OAAO,EACPr/L,QACA6L,OAAQ7L,EAAMg4B,UAEhBukL,EAAMqmI,WAAa78R,KACZsyS,GAAYhQ,EAEvB,EAEIlsI,GAAiBC,GAAe47I,GAAqBM,IACvD5zW,KAAKi9M,iBACH8lC,EACAznC,EACA6B,EACAz9L,EACA0iM,IAIAqV,GAAiB67I,GAAqBM,IACxC5zW,KAAK+zW,sBAAsBR,GAGxB11J,GACH79M,KAAK6oW,kBAGP,MAAMx2V,EAASrS,KAAKg0W,SAClBX,EACA71B,EACA5/H,EACAE,EACA6lJ,GAEIrgS,EAAetjE,KAAKozW,qBAO1B,OALA9vS,EAAau6I,YAAa,EAC1Bv6I,EAAam0J,eAAgB,EAC7Bn0J,EAAao0J,aAAc,EAE3BG,EAAMqmI,WAAa78R,KACZhvD,CACT,CAGA7P,KAAAA,CACEmhW,GAEA,MAAM9rI,EAAQ8rI,EAAU3F,YACxBnmI,EAAMomI,aAAe58R,KAErB,MAAM,UAAEihJ,EAAS,qBAAE8wJ,EAAoB,kBAAEF,GAAsBlzW,KAE/D,GAAIkzW,EAGF,OAAOA,EAAkBzzQ,MAAK,IACrBz/F,KAAKwC,MAAMmhW,KAItB,MAAMsQ,EAAsC,IACtC,WAAEr2J,GAAew1J,EACvB,GAAI9wJ,EAAW,CAIb,MAAMS,EAAgBT,EAAU9/M,QAC5BugN,GAEFkxJ,EAAgBrzW,KACdZ,KAAKY,KAAKmiN,EAAe,KAAM4gJ,GAGrC,CAEA,MAAM,QAAEnsI,EAAO,QAAExa,GAAYh9M,KAC7B,IAAKw3N,IAAYxa,EAGf,OADA6a,EAAMqmI,WAAa78R,KACZ,CAACsyS,GAAYhQ,IAGtB,MAAMuQ,EAAuB18I,EAAQh1N,MAAMo7M,GAC3C,OAAI40F,GAAU0hE,GAELA,EAAqBz0Q,MAAMutQ,IAChChtW,KAAKm0W,WAAWF,EAAiBjH,EAAarJ,GACvCsQ,MAIXj0W,KAAKm0W,WAAWF,EAAiBC,EAAsBvQ,GAChDsQ,EACT,CAEQE,UAAAA,CACNF,EACAjH,EACArJ,GAEA,MAAM,WAAEn+I,EAAU,WAAE4B,EAAU,SAAE3B,EAAQ,UAAE4B,GAAc2lJ,GAClD,mBAAElvJ,EAAkB,WAAEF,GAAe59M,KAAKozW,qBAChDx+T,GAAO6c,IACJ,qCAAoCkyS,EAAUl1I,KAC7Ck1I,EAAU53R,MAAQ,EAAI,OAAS43R,EAAU53R,KAAO,eACrC43R,EAAUrhI,SAEzB,MAAM8xI,EAAcp0W,KAAKg9M,QAASmB,MAChCqH,EACA4B,EACA3B,EACA4B,EACAzJ,EACAE,GACA,EACA99M,KAAK0jC,IAEPuwU,EAAgBrzW,KAAK,CACnBwzW,cACAzQ,cAGFA,EAAU3F,YAAYE,WAAa78R,IACrC,CAEA0yS,qBAAAA,CAAsBR,GACpB,MAAM,QAAE/7I,EAAO,QAAExa,GAAYh9M,KACxBw3N,GAAYxa,IAGjBwa,EAAQha,eAAe+1J,GACvBv2J,EAAQQ,eAAe+1J,GACzB,CAEA1K,eAAAA,GACE,MAAM,QAAErxI,EAAO,QAAExa,GAAYh9M,KACxBw3N,GAAYxa,IAGjBwa,EAAQqxI,kBACR7rJ,EAAQmxJ,qBACV,CAEAlxJ,gBAAAA,CACE8lC,EACAznC,EACA6B,EACAwrJ,EACAvmJ,GAEA,MAAM,QAAEoV,EAAO,QAAExa,GAAYh9M,KACxBw3N,GAAYxa,IAGjBwa,EAAQva,iBACN8lC,EACAznC,EACA6B,EACAwrJ,GAEF3rJ,EAAQC,iBACN8lC,EACAznC,EACA6B,EACAiF,GAEJ,CAEA/uE,OAAAA,GACMrzI,KAAKw3N,UACPx3N,KAAKw3N,QAAQnkF,UACbrzI,KAAKw3N,aAAU12N,GAEbd,KAAKg9M,UACPh9M,KAAKg9M,QAAQ3pE,UACbrzI,KAAKg9M,aAAUl8M,EAEnB,CAEQkzW,QAAAA,CACN9+V,EACAsoU,EACA5/H,EACAE,EACA6lJ,GAEA,IAAItxV,EAiBJ,OAfEA,EADEmrU,GAA8B,eAAnBA,EAAQrrR,OACZnyD,KAAKq0W,kBACZn/V,EACAsoU,EACA5/H,EACAE,EACA6lJ,GAGO3jW,KAAKs0W,oBACZp/V,EACA0oM,EACAE,EACA6lJ,GAGGtxV,CACT,CAEQiiW,mBAAAA,CACNp/V,EACA0oM,EACAE,EACA6lJ,GAEA,MAAM,WAAEn+I,EAAU,WAAE4B,EAAU,SAAE3B,EAAQ,UAAE4B,GACxCrnN,KAAKw3N,QACLW,MAAMjjN,EAAM0oM,GAAY,GAAQ59M,KAAK6X,OAAOwsV,aAW9C,MAAO,CACL+P,YAXkBp0W,KAAKg9M,QAASmB,MAChCqH,EACA4B,EACA3B,EACA4B,EACAzJ,EACAE,GACA,EACA99M,KAAK0jC,IAILigU,YAEJ,CAEQ0Q,iBAAAA,CACNn/V,EACAq3P,EACA3uD,EACAE,EACA6lJ,GAEA,OAAQ3jW,KAAKw3N,QACV0xI,eAAeh0V,EAAMq3P,EAAa3uD,GAClCn+G,MAAMutQ,IAWE,CACLoH,YAXkBp0W,KAAKg9M,QAASmB,MAChC6uJ,EAAYxnJ,WACZwnJ,EAAY5lJ,WACZ4lJ,EAAYvnJ,SACZunJ,EAAY3lJ,UACZzJ,EACAE,GACA,EACA99M,KAAK0jC,IAILigU,eAGR,CAEQmQ,mBAAAA,CAAoB5+V,GAC1B,MAAM,OAAE2C,EAAM,SAAE4hM,EAAQ,cAAEwK,EAAa,OAAE5vD,GAAWr0J,KAEpD,IAAIi4N,EACJ,IAAK,IAAIh2N,EAAI,EAAG8Q,EAAMmlN,GAAU73N,OAAQ4B,EAAI8Q,EAAK9Q,IAAK,KAAAsyW,EACpD,GAAsB,OAAtBA,EAAIr8I,GAAUj2N,GAAGk2N,QAAbo8I,EAAoB92J,MAAMvoM,GAAO,CACnC+iN,EAAMC,GAAUj2N,GAChB,KACF,CACF,CACA,IAAKg2N,EACH,OAAO,IAAIjmN,MAAM,mDAGnB,MAAMwlN,EAAUx3N,KAAKw3N,QACfxa,EAAUh9M,KAAKg9M,QACfw3J,EAA8Bv8I,EAAI9Z,MAClCu1B,EAA8Bzb,EAAIE,MACnCnb,GAAaA,aAAmBw3J,IACnCx0W,KAAKg9M,QAAU,IAAIw3J,EAAQ/6J,EAAU5hM,EAAQosM,EAAe5vD,IAEzDmjE,GAAaA,aAAmBkc,IACnC1zO,KAAKw3N,QAAU,IAAIkc,EAAQj6B,EAAU5hM,EAAQosM,GAC7CjkN,KAAKy9M,MAAQi2B,EAAQj2B,MAEzB,CAEQo2J,YAAAA,CAAap8I,EAAwBC,GAG3C,OAAQ13N,KAAKw3N,UAAYx3N,KAAKg9M,SAAWya,GAAiBC,CAC5D,CAEQg8I,YAAAA,GACN,IAAIpxJ,EAAYtiN,KAAKsiN,UAIrB,OAHKA,IACHA,EAAYtiN,KAAKsiN,UAAY,IAAI9I,GAAUx5M,KAAK6X,SAE3CyqM,CACT,EAmBF,MAAMqxJ,GAAehQ,IAAS,CAC5ByQ,YAAa,CAAC,EACdzQ,cAGK,SAASnxD,GAAan8Q,GAC3B,MAAO,SAAUA,GAAKA,EAAEopE,gBAAgBguC,QAC1C,CAEO,MAAMgnO,GAOXloW,WAAAA,CACE+uM,EACA6B,EACA4lC,EACArjO,EACA6zV,GACA,KAZKj4J,gBAAU,OACV6B,gBAAU,OACV4lC,qBAAe,OACfrjO,cAAQ,OACR6zV,oBAAc,EASnBvzW,KAAKs7M,WAAaA,EAClBt7M,KAAKm9M,WAAaA,EAClBn9M,KAAK+iP,gBAAkBA,EACvB/iP,KAAK0f,SAAWA,EAChB1f,KAAKuzW,eAAiBA,GAAkB,IAC1C,EAGK,MAAMmB,GAQXnoW,WAAAA,CACEkrN,EACA5Z,EACAC,EACA4Z,EACA9Z,EACA01J,GACA,KAdK77I,mBAAa,OACb5Z,gBAAU,OACVC,wBAAkB,OAClB4Z,iBAAW,OACX9Z,gBAAU,OACV01J,uBAAiB,EAUtBtzW,KAAKy3N,cAAgBA,EACrBz3N,KAAK69M,WAAaA,EAClB79M,KAAK89M,mBAAqBA,EAC1B99M,KAAK03N,YAAcA,EACnB13N,KAAK49M,WAAaA,EAClB59M,KAAKszW,kBAAoBA,CAC3B,mCInhBF,IAAIphV,EAAMhvB,OAAO9B,UAAUoZ,eACvBrR,EAAS,IASb,SAASmrI,IAAU,CA4BnB,SAASC,EAAGlpI,EAAIuvD,EAAS45E,GACvBx0I,KAAKqL,GAAKA,EACVrL,KAAK46D,QAAUA,EACf56D,KAAKw0I,KAAOA,IAAQ,EActB,SAASruE,EAAY9S,EAASjqC,EAAO/d,EAAIuvD,EAAS45E,GAChD,GAAkB,oBAAPnpI,EACT,MAAM,IAAI4K,UAAU,mCAGtB,IAAIu2D,EAAW,IAAI+nE,EAAGlpI,EAAIuvD,GAAWvH,EAASmhF,GAC1CvgF,EAAM9qD,EAASA,EAASigB,EAAQA,EAMpC,OAJKiqC,EAAQ7M,QAAQyN,GACXZ,EAAQ7M,QAAQyN,GAAK5oD,GAC1BgoD,EAAQ7M,QAAQyN,GAAO,CAACZ,EAAQ7M,QAAQyN,GAAMuY,GADhBnZ,EAAQ7M,QAAQyN,GAAKrzD,KAAK4rE,IADlCnZ,EAAQ7M,QAAQyN,GAAOuY,EAAUnZ,EAAQohF,gBAI7DphF,EAUT,SAASqhF,EAAWrhF,EAASY,GACI,MAAzBZ,EAAQohF,aAAoBphF,EAAQ7M,QAAU,IAAI8tF,SAC5CjhF,EAAQ7M,QAAQyN,GAU9B,SAASf,IACPlzD,KAAKwmD,QAAU,IAAI8tF,EACnBt0I,KAAKy0I,aAAe,EAxElBvxI,OAAOoI,SACTgpI,EAAOlzI,UAAY8B,OAAOoI,OAAO,OAM5B,IAAIgpI,GAASniH,YAAWhpB,GAAS,IA2ExC+pD,EAAa9xD,UAAUuzI,WAAa,WAClC,IACI17F,EACA/tC,EAFA0pI,EAAQ,GAIZ,GAA0B,IAAtB50I,KAAKy0I,aAAoB,OAAOG,EAEpC,IAAK1pI,KAAS+tC,EAASj5C,KAAKwmD,QACtBt0B,EAAIpoB,KAAKmvC,EAAQ/tC,IAAO0pI,EAAMh0I,KAAKuI,EAAS+B,EAAKjH,MAAM,GAAKiH,GAGlE,OAAIhI,OAAOi3F,sBACFy6C,EAAMhqI,OAAO1H,OAAOi3F,sBAAsBlhD,IAG5C27F,CACT,EASA1hF,EAAa9xD,UAAUomE,UAAY,SAAmBp+C,GACpD,IAAI6qC,EAAM9qD,EAASA,EAASigB,EAAQA,EAChCqP,EAAWz4B,KAAKwmD,QAAQyN,GAE5B,IAAKx7B,EAAU,MAAO,GACtB,GAAIA,EAASptB,GAAI,MAAO,CAACotB,EAASptB,IAElC,IAAK,IAAIpJ,EAAI,EAAGgtB,EAAIwJ,EAASp4B,OAAQw0I,EAAK,IAAIhrI,MAAMolB,GAAIhtB,EAAIgtB,EAAGhtB,IAC7D4yI,EAAG5yI,GAAKw2B,EAASx2B,GAAGoJ,GAGtB,OAAOwpI,CACT,EASA3hF,EAAa9xD,UAAU0zI,cAAgB,SAAuB1rH,GAC5D,IAAI6qC,EAAM9qD,EAASA,EAASigB,EAAQA,EAChCo+C,EAAYxnE,KAAKwmD,QAAQyN,GAE7B,OAAKuT,EACDA,EAAUn8D,GAAW,EAClBm8D,EAAUnnE,OAFM,CAGzB,EASA6yD,EAAa9xD,UAAUotD,KAAO,SAAcplC,EAAO2rH,EAAIC,EAAIC,EAAIC,EAAIC,GACjE,IAAIlhF,EAAM9qD,EAASA,EAASigB,EAAQA,EAEpC,IAAKppB,KAAKwmD,QAAQyN,GAAM,OAAO,EAE/B,IAEIhnD,EACAhL,EAHAulE,EAAYxnE,KAAKwmD,QAAQyN,GACzBlhD,EAAM/F,UAAU3M,OAIpB,GAAImnE,EAAUn8D,GAAI,CAGhB,OAFIm8D,EAAUgtE,MAAMx0I,KAAKygD,eAAer3B,EAAOo+C,EAAUn8D,QAAIvK,GAAW,GAEhEiS,GACN,KAAK,EAAG,OAAOy0D,EAAUn8D,GAAGvB,KAAK09D,EAAU5M,UAAU,EACrD,KAAK,EAAG,OAAO4M,EAAUn8D,GAAGvB,KAAK09D,EAAU5M,QAASm6E,IAAK,EACzD,KAAK,EAAG,OAAOvtE,EAAUn8D,GAAGvB,KAAK09D,EAAU5M,QAASm6E,EAAIC,IAAK,EAC7D,KAAK,EAAG,OAAOxtE,EAAUn8D,GAAGvB,KAAK09D,EAAU5M,QAASm6E,EAAIC,EAAIC,IAAK,EACjE,KAAK,EAAG,OAAOztE,EAAUn8D,GAAGvB,KAAK09D,EAAU5M,QAASm6E,EAAIC,EAAIC,EAAIC,IAAK,EACrE,KAAK,EAAG,OAAO1tE,EAAUn8D,GAAGvB,KAAK09D,EAAU5M,QAASm6E,EAAIC,EAAIC,EAAIC,EAAIC,IAAK,EAG3E,IAAKlzI,EAAI,EAAGgL,EAAO,IAAIpD,MAAMkJ,EAAK,GAAI9Q,EAAI8Q,EAAK9Q,IAC7CgL,EAAKhL,EAAI,GAAK+K,UAAU/K,GAG1BulE,EAAUn8D,GAAGgC,MAAMm6D,EAAU5M,QAAS3tD,EAC1C,KAAS,CACL,IACI/E,EADA7H,EAASmnE,EAAUnnE,OAGvB,IAAK4B,EAAI,EAAGA,EAAI5B,EAAQ4B,IAGtB,OAFIulE,EAAUvlE,GAAGuyI,MAAMx0I,KAAKygD,eAAer3B,EAAOo+C,EAAUvlE,GAAGoJ,QAAIvK,GAAW,GAEtEiS,GACN,KAAK,EAAGy0D,EAAUvlE,GAAGoJ,GAAGvB,KAAK09D,EAAUvlE,GAAG24D,SAAU,MACpD,KAAK,EAAG4M,EAAUvlE,GAAGoJ,GAAGvB,KAAK09D,EAAUvlE,GAAG24D,QAASm6E,GAAK,MACxD,KAAK,EAAGvtE,EAAUvlE,GAAGoJ,GAAGvB,KAAK09D,EAAUvlE,GAAG24D,QAASm6E,EAAIC,GAAK,MAC5D,KAAK,EAAGxtE,EAAUvlE,GAAGoJ,GAAGvB,KAAK09D,EAAUvlE,GAAG24D,QAASm6E,EAAIC,EAAIC,GAAK,MAChE,QACE,IAAKhoI,EAAM,IAAK/E,EAAI,EAAG+E,EAAO,IAAIpD,MAAMkJ,EAAK,GAAI7K,EAAI6K,EAAK7K,IACxD+E,EAAK/E,EAAI,GAAK8E,UAAU9E,GAG1Bs/D,EAAUvlE,GAAGoJ,GAAGgC,MAAMm6D,EAAUvlE,GAAG24D,QAAS3tD,IAKpD,OAAO,CACT,EAWAimD,EAAa9xD,UAAU0lD,GAAK,SAAY19B,EAAO/d,EAAIuvD,GACjD,OAAOuL,EAAYnmE,KAAMopB,EAAO/d,EAAIuvD,GAAS,EAC/C,EAWA1H,EAAa9xD,UAAUozI,KAAO,SAAcprH,EAAO/d,EAAIuvD,GACrD,OAAOuL,EAAYnmE,KAAMopB,EAAO/d,EAAIuvD,GAAS,EAC/C,EAYA1H,EAAa9xD,UAAUq/C,eAAiB,SAAwBr3B,EAAO/d,EAAIuvD,EAAS45E,GAClF,IAAIvgF,EAAM9qD,EAASA,EAASigB,EAAQA,EAEpC,IAAKppB,KAAKwmD,QAAQyN,GAAM,OAAOj0D,KAC/B,IAAKqL,EAEH,OADAqpI,EAAW10I,KAAMi0D,GACVj0D,KAGT,IAAIwnE,EAAYxnE,KAAKwmD,QAAQyN,GAE7B,GAAIuT,EAAUn8D,GAEVm8D,EAAUn8D,KAAOA,GACfmpI,IAAQhtE,EAAUgtE,MAClB55E,GAAW4M,EAAU5M,UAAYA,GAEnC85E,EAAW10I,KAAMi0D,OAEd,CACL,IAAK,IAAIhyD,EAAI,EAAGg3C,EAAS,GAAI54C,EAASmnE,EAAUnnE,OAAQ4B,EAAI5B,EAAQ4B,KAEhEulE,EAAUvlE,GAAGoJ,KAAOA,GACnBmpI,IAAShtE,EAAUvlE,GAAGuyI,MACtB55E,GAAW4M,EAAUvlE,GAAG24D,UAAYA,IAErC3hB,EAAOr4C,KAAK4mE,EAAUvlE,IAOtBg3C,EAAO54C,OAAQL,KAAKwmD,QAAQyN,GAAyB,IAAlBhb,EAAO54C,OAAe44C,EAAO,GAAKA,EACpEy7F,EAAW10I,KAAMi0D,GAGxB,OAAOj0D,IACT,EASAkzD,EAAa9xD,UAAU67D,mBAAqB,SAA4B7zC,GACtE,IAAI6qC,EAUJ,OARI7qC,GACF6qC,EAAM9qD,EAASA,EAASigB,EAAQA,EAC5BppB,KAAKwmD,QAAQyN,IAAMygF,EAAW10I,KAAMi0D,KAExCj0D,KAAKwmD,QAAU,IAAI8tF,EACnBt0I,KAAKy0I,aAAe,GAGfz0I,IACT,EAKAkzD,EAAa9xD,UAAUq0F,IAAMviC,EAAa9xD,UAAUq/C,eACpDyS,EAAa9xD,UAAU+kE,YAAcjT,EAAa9xD,UAAU0lD,GAK5DoM,EAAakiF,SAAWjsI,EAKxB+pD,EAAaA,aAAeA,EAM1BpuB,EAAAluB,QAAiBs8C,6BCtTJ,MAAMyhT,GAgBnBpoW,WAAAA,CACE0zN,EACAv8L,EACAkxU,EACAC,GACA,KApBKv5V,MAAsB,KAAI,KACzB2kN,SAAG,OACHv8L,QAAE,OACF+1K,cAAQ,OACRqO,KAAwB,KAAI,KAC5B/7I,KAAoB,KAAI,KACxB+oS,eAAS,OACTC,cAAsC,KAAI,KAC1CjhI,YAAM,OAGNytH,WAAgC,KAAI,KACpCqT,wBAAkB,OAClBC,aAAO,EAQb,MAAMh9V,EAASooN,EAAIpoN,OACnB7X,KAAKigO,IAAMA,EACXjgO,KAAK0jC,GAAKA,EACV1jC,KAAK80W,YAAcj9V,EAAO+7N,aAC1B5zO,KAAK40W,mBAAqBA,EAC1B50W,KAAK60W,QAAUA,EAEf,MAAMp8I,EAAiBA,CAACC,EAAIxjN,MAC1BA,EAAOA,GAAQ,CAAC,GACX4yM,KAAO9nN,KAAK8nN,KACjB5yM,EAAKwuB,GAAK1jC,KAAK0jC,GACXg1L,IAAOpkF,GAAOimE,QAChBv6M,KAAKsb,MAAQpG,EAAKoG,OAEpBtb,KAAKigO,IAAI3lB,QAAQoe,EAAIxjN,EAAK,EAI5BlV,KAAKy5M,SAAW,IAAIvmJ,GACpBlzD,KAAKy5M,SAAS3yJ,GAAGwtF,GAAOsjF,eAAgBa,GACxCz4N,KAAKy5M,SAAS3yJ,GAAGwtF,GAAOimE,MAAOke,GAE/B,MAAMqM,EAAcoO,GAAer7N,EAAO6xU,2BAA6B,CACrE3kH,gBAAiBA,KAAM,GAEnBiwI,EAAmC,CACvChuJ,KAAM8d,EAAYC,gBAAgB,cAClC9d,IAAK6d,EAAYC,gBAAgB,2BACjC0oI,IACI3oI,EAAYC,gBAAgB,6BAIlC,GAAI/kO,KAAK80W,WAA+B,qBAAXl8M,OAAwB,CAEnD,GADwB/gJ,EAAOo9V,YC3EK,oBAA1BC,sBD4EW,CACnB,IACMr9V,EAAOo9V,YACTrgU,GAAO6c,IAAK,sBAAqB55C,EAAOo9V,mBAAmBvxU,MAC3D1jC,KAAK+0W,cCrDV,SAAoBhuV,GACzB,MAAMouV,EAAY,IAAIvqU,KAAKirD,IAAI9uE,EAAM6jB,KAAKjjB,SAAS2rC,MAAMA,KAGzD,MAAO,CACL2hJ,OAHa,IAAIrqK,KAAKguH,OAAOu8M,GAI7BA,YAEJ,CD6CiCC,CAAWv9V,EAAOo9V,cAEvCrgU,GAAO6c,IAAK,6BAA4B/tB,MACxC1jC,KAAK+0W,cC1EV,WACL,MAAM16S,EAAO,IAAIzvB,KAAK2xB,KACpB,CACG,wFAAuF24S,sBAAsB3nW,sBAEhH,CACEzI,KAAM,oBAGJowM,EAAYtqK,KAAKirD,IAAIm/G,gBAAgB36I,GAG3C,MAAO,CACL46I,OAHa,IAAIrqK,KAAKguH,OAAOs8C,GAI7BA,YAEJ,CD0DiCmgK,IAEvBr1W,KAAK8zO,OAAU1qN,GAAUppB,KAAK+zO,gBAAgB3qN,GAC9C,MAAM,OAAE6rL,GAAWj1M,KAAK+0W,cACxB9/J,EAAO7qL,iBAAiB,UAAWpqB,KAAK8zO,QACxC7+B,EAAOlxH,QAAW36D,IAChB,MAAM9N,EAAQ,IAAItJ,MACf,GAAEoX,EAAMkqB,aAAalqB,EAAM45B,YAAY55B,EAAM4qN,WAEhDn8N,EAAO+7N,cAAe,EACtBh/L,GAAO0yD,KAAM,aAAY5jE,qCACzB1jC,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWiE,YACjBnmB,QAASmiB,GAAaiE,mBACtBlmB,OAAO,EACPvxL,MAAO,gBACP9N,SACA,EAEJ25L,EAAOvM,YAAY,CACjBiwB,IAAK,OACL1U,cAAe+wJ,EACf3gN,OAAQ,GACR3wH,GAAIA,EACJ7rB,OAAQ+E,KAAKjW,UAAUkR,KAEzB,MAAOk6B,IACP6C,GAAO0yD,KACJ,qBAAoB5jE,oCACrBqO,IAEF/xC,KAAKs1W,cACLt1W,KAAKsb,MAAQ,KACbtb,KAAKuhW,WAAa,IAAI0R,GACpBjzW,KAAKy5M,SACLu7J,EACAn9V,EACA,GACA6rB,EAEJ,CACA,MACF,CACF,CAEA1jC,KAAKuhW,WAAa,IAAI0R,GACpBjzW,KAAKy5M,SACLu7J,EACAn9V,EACA,GACA6rB,EAEJ,CAEA4xU,WAAAA,GACE,GAAIt1W,KAAK+0W,cAAe,CACtB,MAAM,OAAE9/J,EAAM,UAAEC,GAAcl1M,KAAK+0W,cAC/B7/J,GAEFtqK,KAAKirD,IAAIo+I,gBAAgB/+B,GAE3BD,EAAO9zG,oBAAoB,UAAWnhG,KAAK8zO,QAC3C7+B,EAAOlxH,QAAU,KACjBkxH,EAAOk/B,YACPn0O,KAAK+0W,cAAgB,IACvB,CACF,CAEA1hO,OAAAA,GACE,GAAIrzI,KAAK+0W,cACP/0W,KAAKs1W,cACLt1W,KAAK8zO,YAAShzO,MACT,CACL,MAAMygW,EAAavhW,KAAKuhW,WACpBA,IACFA,EAAWluN,UACXrzI,KAAKuhW,WAAa,KAEtB,CACA,MAAM9nJ,EAAWz5M,KAAKy5M,SAClBA,GACFA,EAASx8I,qBAEXj9D,KAAK8nN,KAAO,KAEZ9nN,KAAKy5M,SAAW,KAEhBz5M,KAAKigO,IAAM,IACb,CAEAr/N,IAAAA,CACEsU,EACA6tO,EACAznC,EACA6B,EACA2K,EACA/7I,EACArsD,EACAo+L,EACA6lJ,EACAhsI,GACA,IAAA49I,EAAAC,EACA7R,EAAU3F,YAAY7pV,MAAQy2B,KAAK02B,YAAYD,MAC/C,MAAM,WAAEkgS,GAAevhW,KACjB49M,EAAa7xI,EAAOA,EAAK53D,MAAQ2zM,EAAK3zM,MAEtCiuM,EAAc0F,EAAK1F,YACnBgyB,EAAWp0O,KAAK8nN,KAEhB2P,IAAkB2c,GAAYtsB,EAAKxuC,KAAO86D,EAAS96D,IACnDo+C,IAAgB0c,GAAYuvH,EAAUrhI,QAAU8R,EAAS9R,OACzDmzI,EAASrhI,EAAWuvH,EAAUl1I,GAAM2lB,EAAS3lB,IAAiB,EAC9DinJ,EAAW11W,KAAK+rE,KAAO43R,EAAU53R,KAAO/rE,KAAK+rE,KAAKnoE,OAAS,EAC3DygW,EACO,IAAXoR,GACA9R,EAAUjgU,GAAK,GACfigU,EAAUjgU,MAAe,MAAR0wM,OAAQ,EAARA,EAAUvc,MAAMo/G,YAC7Bp5H,GACH6Z,IACW,IAAX+9I,GACa,IAAXA,IAA8B,IAAbC,GAAmBrR,GAAeqR,GAAY,IAC9Dr0S,EAAMz2B,KAAK02B,YAAYD,OAEzBq2J,GAAe+9I,GAAuC,IAA7B3tJ,EAAK+P,MAAMq/G,QAAQ/iU,SAC9C2zM,EAAK+P,MAAMq/G,QAAQ/iU,MAAQktD,IAEzB0K,IAAS2pS,GAAa73J,IACxB9xI,EAAK8rJ,MAAMq/G,QAAQ/iU,MAAQktD,GAE7B,MAAMiyS,IACJl/H,IAA4B,OAAhBmhI,EAAAztJ,EAAK5K,kBAAW,EAAhBq4J,EAAkB9sV,QAAQ,OAAL+sV,EAAKphI,EAASl3B,kBAAT,EAAAs4J,EAAsB/sV,MAExDV,EAAQ,IAAI2sV,GAChBj9I,EACA5Z,EACAC,EACA4Z,EACA9Z,EACA01J,GAEF,IAAKz1J,GAAc4Z,GAAiB67I,EAAmB,CACrD1+T,GAAO6c,IAAK,0BAAyBq2J,EAAKhjN,gDAAgD6+V,EAAUl1I,SAASk1I,EAAU53R,eAAe43R,EAAUrhI,aAAaqhI,EAAUjgU,8BACpJ+zL,2BACFC,0BACD7Z,kCACQC,0BACRF,iCACO01J,KACvB,MAAMz7V,EAAS,IAAI48V,GACjBn5J,EACA6B,EACA4lC,EACArjO,EACAi4M,GAEF33N,KAAK8zW,oBAAoBj8V,EAC3B,CAMA,GAJA7X,KAAK8nN,KAAOA,EACZ9nN,KAAK+rE,KAAOA,EAGR/rE,KAAK+0W,cAEP/0W,KAAK+0W,cAAc9/J,OAAOvM,YACxB,CACEiwB,IAAK,QACLzjN,OACAktM,cACAuhJ,YACA57U,SAEF7S,aAAgBo2B,YAAc,CAACp2B,GAAQ,SAEpC,GAAIqsV,EAAY,CACrB,MAAMoU,EAAiBpU,EAAW3gW,KAChCsU,EACAktM,EACAuhJ,EACA57U,GAEEyqR,GAAUmjE,IACZpU,EAAW94Q,OAAQ,EACnBktR,EACGl2Q,MAAMvqF,IACLlV,KAAK41W,uBAAuB1gW,EAAK,IAElC22K,OAAOvwK,IACNtb,KAAK61W,gBACHv6V,EACAqoV,EACA,kCACD,MAGLpC,EAAW94Q,OAAQ,EACnBzoF,KAAK41W,uBAAuBD,GAEhC,CACF,CAEAnzW,KAAAA,CAAMmhW,GACJA,EAAU3F,YAAY7pV,MAAQy2B,KAAK02B,YAAYD,MAC/C,MAAM,WAAEkgS,GAAevhW,KACvB,GAAIA,KAAK+0W,cAEP/0W,KAAK+0W,cAAc9/J,OAAOvM,YAAY,CACpCiwB,IAAK,QACLgrI,mBAEG,GAAIpC,EAAY,CACrB,IAAIoU,EAAiBpU,EAAW/+V,MAAMmhW,GACnBnxD,GAAUmjE,IACXpU,EAAW94Q,OACtB+pN,GAAUmjE,KACbA,EAAiB7+T,QAAQnD,QAAQgiU,IAEnCA,EACGl2Q,MAAMvqF,IACLlV,KAAK81W,kBAAkB5gW,EAAMyuV,EAAU,IAExC93K,OAAOvwK,IACNtb,KAAK61W,gBACHv6V,EACAqoV,EACA,mCACD,KAGL3jW,KAAK81W,kBACHH,EACAhS,EAGN,CACF,CAEQkS,eAAAA,CACNv6V,EACAqoV,EACAx8U,GAEKnnB,KAAKigO,MAGVjgO,KAAKsb,MAAQA,EACbtb,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa5gB,mBACtB2nJ,YACA77I,KAAM9nN,KAAK8nN,WAAQhnN,EACnB65M,OAAO,EACPr/L,QACAy2B,IAAKz2B,EACL6L,WAEJ,CAEQ2uV,iBAAAA,CACN1uS,EACAu8R,GAEAv8R,EAAQ7lE,SAAS8Q,IACfrS,KAAK41W,uBAAuBvjW,EAAO,IAErCrS,KAAK60W,QAAQlR,EACf,CAEQ5vH,eAAAA,CACN3qN,GAEA,MAAMlU,EAAOkU,EAAMlU,KACnB,GAAS,MAAJA,IAAAA,EAAMkU,MAIT,YAHAwrB,GAAO0yD,KACJ,oCAAkCpyF,EAAO,aAAe,SAI7D,MAAM+qN,EAAMjgO,KAAKigO,IACjB,GAAKjgO,KAAKigO,IAGV,OAAQ/qN,EAAKkU,OACX,IAAK,OAAQ,KAAA2sV,EACX,MAAM7gK,EAA8B,OAArB6gK,EAAG/1W,KAAK+0W,oBAAa,EAAlBgB,EAAoB7gK,UAClCA,GAEFtqK,KAAKirD,IAAIo+I,gBAAgB/+B,GAE3B,KACF,CAEA,IAAK,mBACHl1M,KAAK41W,uBAAuB1gW,EAAKA,MACjC,MAGF,IAAK,QACHlV,KAAK60W,QAAQ3/V,EAAKA,MAClB,MAIF,IAAK,YACC0/B,GAAO1/B,EAAKA,KAAK8gW,UACnBphU,GAAO1/B,EAAKA,KAAK8gW,SAAS9gW,EAAKA,KAAKo+B,SAEtC,MAEF,QACEp+B,EAAKA,KAAOA,EAAKA,MAAQ,CAAC,EAC1BA,EAAKA,KAAK4yM,KAAO9nN,KAAK8nN,KACtB5yM,EAAKA,KAAKwuB,GAAK1jC,KAAK0jC,GACpBu8L,EAAI3lB,QAAQplM,EAAKkU,MAA6BlU,EAAKA,MAIzD,CAEQ4+V,mBAAAA,CAAoBj8V,GAC1B,MAAM,WAAE0pV,GAAevhW,KACnBA,KAAK+0W,cACP/0W,KAAK+0W,cAAc9/J,OAAOvM,YAAY,CACpCiwB,IAAK,YACL9gN,WAEO0pV,GACTA,EAAW92U,UAAU5S,EAEzB,CAEQ+9V,sBAAAA,CAAuBvjW,GAC7BA,EAAOsxV,UAAU3F,YAAYh6V,IAAM4mC,KAAK02B,YAAYD,MACpDrhE,KAAK40W,mBAAmBviW,EAC1B,EEnaK,SAAS4jW,GACdC,EACAC,GAEA,GAAID,EAAW71W,SAAW81W,EAAW91W,OACnC,OAAO,EAET,IAAK,IAAI4B,EAAI,EAAGA,EAAIi0W,EAAW71W,OAAQ4B,IACrC,IACGm0W,GACCF,EAAWj0W,GAAG8qJ,MACdopN,EAAWl0W,GAAG8qJ,OAGhB,OAAO,EAGX,OAAO,CACT,CAEO,SAASqpN,GACdC,EACAC,EACAC,GAGA,MAAMC,EAAoBH,EAAO,uBACjC,OAAIG,IAAsBD,EACjBC,IAAsBF,EAAO,yBAIpCC,GAAoB,CAClB,WACA,OACA,kBACA,aACA,UACA,SACA,mBAEFvnM,MACCynM,GACCJ,EAAOI,KAAuBH,EAAOG,IAE3C,CAEO,SAASC,GACdtqG,EACA/kD,GAEA,OACEA,EAAUx7L,MAAM9a,gBAAkBq7P,EAAclhQ,KAAK6F,iBACnDs2M,EAAUswC,UACVtwC,EAAUswC,SAAS5mP,iBAChBq7P,EAAc7kC,MAAQ,IAAIx2N,cAEnC,CC6cA,MAAM4lW,GAGJpqW,WAAAA,CAAYqqW,GAAyB,KAFrB9mI,cAAQ,EAGtB,MAAM+mI,EAAWA,CACf3rW,EACAtH,EACAvD,KAGA,IADAuD,KAAkB,GACNvD,EAAS,EACnB,MAAM,IAAI09F,aACP,sBAAqB7yF,2CAA8CtH,yCAA6CvD,MAGrH,OAAOu2W,EAAWhzW,GAAOsH,EAAK,EAEhClL,KAAK8vO,SAAW,CACd,UAAIzvO,GACF,OAAOu2W,EAAWv2W,QAEpB2D,IAAIJ,GACKizW,EAAS,MAAOjzW,EAAOgzW,EAAWv2W,QAE3C8T,MAAMvQ,GACGizW,EAAS,QAASjzW,EAAOgzW,EAAWv2W,QAGjD,EC7hBa,MAAMy2W,GAQnBvqW,WAAAA,CAAYwqW,GAAsC,KAP1CznT,aAAO,OACPq/I,OAAgC,CACtCiV,MAAO,GACPC,MAAO,GACPgX,WAAY,IAIZ76N,KAAKsvD,QAAUynT,CACjB,CAEO3yW,MAAAA,CACLi3C,EACAv2C,EACAmtL,GAEA,MAAM0C,EAAQ30L,KAAK2uM,OAAO7pM,GAC1B6vL,EAAM/zL,KAAKy6C,GACU,IAAjBs5I,EAAMt0L,QAAiB4xL,GACzBjyL,KAAKg3W,YAAYlyW,EAErB,CAEOmyW,WAAAA,CAAY57T,EAA4Bv2C,GAC/B9E,KAAK2uM,OAAO7pM,GACpB4vC,QAAQ2G,GACdr7C,KAAKg3W,YAAYlyW,EACnB,CAEOoyW,aAAAA,CAAcpyW,GACnB,IAAIqyW,EACJ,MAAM/wS,EAAuB,IAAItvB,SAASnD,IACxCwjU,EAAUxjU,CAAO,IAEb0H,EAA6B,CACjC87T,UACAl1F,QAASA,OACTm1F,WAAYA,OACZl/L,QAASA,QAIX,OADAl4K,KAAKoE,OAAOi3C,EAAWv2C,GAChBshE,CACT,CAEO4wS,WAAAA,CAAYlyW,GACjB,MAAM6vL,EAAQ30L,KAAK2uM,OAAO7pM,GAC1B,GAAI6vL,EAAMt0L,OAAQ,CAChB,MAAMg7C,EAA6Bs5I,EAAM,GACzC,IAGEt5I,EAAU87T,UACV,MAAO77V,GACPs5B,GAAO0yD,KACJ,kDAAiDxiG,8BAAiCwW,KAErF+/B,EAAU68H,QAAQ58J,GAGlB,MAAMq6J,EAAK31K,KAAKsvD,QAAQxqD,GACjB,MAAF6wK,GAAAA,EAAI06E,UACPrwP,KAAKq3W,oBAAoBvyW,EAE7B,CACF,CACF,CAEOuyW,mBAAAA,CAAoBvyW,GACzB9E,KAAK2uM,OAAO7pM,GAAM0pB,QAClBxuB,KAAKg3W,YAAYlyW,EACnB,CAEO4H,OAAAA,CAAQ5H,GACb,OAAO9E,KAAK2uM,OAAO7pM,GAAM,EAC3B,EC7CF,MAAMwyW,GACJ,uDAwnCF,SAASC,GAAqB5yW,GAC5B,MAAM6yW,EAAiB7yW,EAAKiF,iBAAiB,UAC7C,GAAG3F,MAAM6F,KAAK0tW,GAAgBj2W,SAASq/B,IACrCj8B,EAAKhC,YAAYi+B,EAAO,GAE5B,CCznCA,MAAMs9N,GAA0B,CAC9B,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KAIN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,GACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAGN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,GACN,IAAM,KACN,IAAM,KACN,IAAM,IACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IAGN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,GACN,IAAM,GACN,IAAM,GACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,IACN,IAAM,KACN,IAAM,KACN,IAAM,KACN,IAAM,MAMFC,GAAkBtoP,GACtB9S,OAAOC,aAAak7P,GAAwBroP,IAASA,GAEjDwoP,GAAU,GACVC,GAAU,IAEVC,GAAa,CACjB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAc,CAClB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAa,CACjB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAEFC,GAAc,CAClB,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,EACN,GAAM,GACN,GAAM,GACN,GAAM,IAGFC,GAAmB,CACvB,QACA,QACA,OACA,OACA,MACA,SACA,UACA,QACA,eAYF,MAAM84G,GAAelrW,WAAAA,GAAA,KACZ0c,KAAsB,KAAI,KAC1B41O,aAAY,EAEnBptM,GAAAA,CAAIqtM,EAAwBzrN,GAC1B,GAAIrzC,KAAK6+P,cAAgBC,EAAU,CACjC,MAAM1oO,EAA2B,oBAARid,EAAqBA,IAAQA,EACtDuB,GAAO6c,IAAK,GAAEzxD,KAAKipB,SAAS61O,MAAa1oO,IAC3C,CACF,EAGF,MAAM2oO,GAAqB,SAAUC,GACnC,MAAMC,EAAqB,GAC3B,IAAK,IAAI/2P,EAAI,EAAGA,EAAI82P,EAAS3+P,OAAQ6H,IACnC+2P,EAASr+P,KAAKo+P,EAAS92P,GAAGqF,SAAS,KAGrC,OAAO0xP,CACT,EAUA,MAAMC,GAAS3yP,WAAAA,GAAA,KACN6gB,WAAqB,QAAO,KAC5B+xO,WAAqB,EAAK,KAC1BC,SAAmB,EAAK,KACxBnmP,WAAqB,QAAO,KAC5BomP,OAAiB,CAAK,CAE7Bx/N,KAAAA,GACE7/B,KAAKotB,WAAa,QAClBptB,KAAKm/P,WAAY,EACjBn/P,KAAKo/P,SAAU,EACfp/P,KAAKiZ,WAAa,QAClBjZ,KAAKq/P,OAAQ,CACf,CAEAC,SAAAA,CAAUt0P,GACR,MAAMu0P,EAAU,CACd,aACA,YACA,UACA,aACA,SAEF,IAAK,IAAIt9P,EAAI,EAAGA,EAAIs9P,EAAQl/P,OAAQ4B,IAAK,CACvC,MAAM8tB,EAAQwvO,EAAQt9P,GAClB+I,EAAOwP,eAAeuV,KACxB/vB,KAAK+vB,GAAS/kB,EAAO+kB,GAEzB,CACF,CAEAyvO,SAAAA,GACE,MACsB,UAApBx/P,KAAKotB,aACJptB,KAAKm/P,YACLn/P,KAAKo/P,SACc,UAApBp/P,KAAKiZ,aACJjZ,KAAKq/P,KAEV,CAEA/wK,MAAAA,CAAOtzE,GACL,OACEhb,KAAKotB,aAAepS,EAAMoS,YAC1BptB,KAAKm/P,YAAcnkP,EAAMmkP,WACzBn/P,KAAKo/P,UAAYpkP,EAAMokP,SACvBp/P,KAAKiZ,aAAe+B,EAAM/B,YAC1BjZ,KAAKq/P,QAAUrkP,EAAMqkP,KAEzB,CAEAn6P,IAAAA,CAAKu6P,GACHz/P,KAAKotB,WAAaqyO,EAAYryO,WAC9BptB,KAAKm/P,UAAYM,EAAYN,UAC7Bn/P,KAAKo/P,QAAUK,EAAYL,QAC3Bp/P,KAAKiZ,WAAawmP,EAAYxmP,WAC9BjZ,KAAKq/P,MAAQI,EAAYJ,KAC3B,CAEA9xP,QAAAA,GACE,MACE,SACAvN,KAAKotB,WACL,eACAptB,KAAKm/P,UACL,aACAn/P,KAAKo/P,QACL,gBACAp/P,KAAKiZ,WACL,WACAjZ,KAAKq/P,KAET,EAOF,MAAMK,GAAkBnzP,WAAAA,GAAA,KACtBwxP,MAAgB,IAAG,KACnB4B,SAAqB,IAAIT,EAAU,CAEnCr/N,KAAAA,GACE7/B,KAAK+9P,MAAQ,IACb/9P,KAAK2/P,SAAS9/N,OAChB,CAEA+/N,OAAAA,CAAQ7B,EAAe0B,GACrBz/P,KAAK+9P,MAAQA,EACb/9P,KAAK2/P,SAASz6P,KAAKu6P,EACrB,CAEAI,WAAAA,CAAYJ,GACVz/P,KAAK2/P,SAASz6P,KAAKu6P,EACrB,CAEAnxK,MAAAA,CAAOtzE,GACL,OAAOhb,KAAK+9P,QAAU/iP,EAAM+iP,OAAS/9P,KAAK2/P,SAASrxK,OAAOtzE,EAAM2kP,SAClE,CAEAz6P,IAAAA,CAAK46P,GACH9/P,KAAK+9P,MAAQ+B,EAAQ/B,MACrB/9P,KAAK2/P,SAASz6P,KAAK46P,EAAQH,SAC7B,CAEA1xL,OAAAA,GACE,MAAsB,MAAfjuE,KAAK+9P,OAAiB/9P,KAAK2/P,SAASH,WAC7C,EAOK,MAAMO,GAOXxzP,WAAAA,CAAYqoC,GAAwB,KAN7BgrD,MAA6B,GAAE,KAC/Bzc,IAAc,EAAC,KACf68K,aAAyB,IAAId,GAAU,KACvClB,aAA8B,KAAI,KACjCppN,YAAM,EAGZ,IAAK,IAAI3yC,EAAI,EAAGA,EAAIq8P,GAASr8P,IAC3BjC,KAAK4/F,MAAMh/F,KAAK,IAAI8+P,IAEtB1/P,KAAK40C,OAASA,CAChB,CAEA05C,MAAAA,CAAOtzE,GACL,IAAK,IAAI/Y,EAAI,EAAGA,EAAIq8P,GAASr8P,IAC3B,IAAKjC,KAAK4/F,MAAM39F,GAAGqsF,OAAOtzE,EAAM4kF,MAAM39F,IACpC,OAAO,EAGX,OAAO,CACT,CAEAiD,IAAAA,CAAK8V,GACH,IAAK,IAAI/Y,EAAI,EAAGA,EAAIq8P,GAASr8P,IAC3BjC,KAAK4/F,MAAM39F,GAAGiD,KAAK8V,EAAM4kF,MAAM39F,GAEnC,CAEAgsE,OAAAA,GACE,IAAIwoB,GAAQ,EACZ,IAAK,IAAIx0F,EAAI,EAAGA,EAAIq8P,GAASr8P,IAC3B,IAAKjC,KAAK4/F,MAAM39F,GAAGgsE,UAAW,CAC5BwoB,GAAQ,EACR,KACF,CAEF,OAAOA,CACT,CAKAypK,SAAAA,CAAUC,GACJngQ,KAAKmjF,MAAQg9K,IACfngQ,KAAKmjF,IAAMg9K,GAGTngQ,KAAKmjF,IAAM,GACbnjF,KAAK40C,OAAO6c,IAAI,EAEd,4BAA8BzxD,KAAKmjF,KAErCnjF,KAAKmjF,IAAM,GACFnjF,KAAKmjF,IAAMm7K,KACpBt+P,KAAK40C,OAAO6c,IAAI,EAEd,6BAA+BzxD,KAAKmjF,KAEtCnjF,KAAKmjF,IAAMm7K,GAEf,CAKA+B,UAAAA,CAAWC,GACT,MAAMC,EAASvgQ,KAAKmjF,IAAMm9K,EAC1B,GAAIA,EAAS,EACX,IAAK,IAAIr+P,EAAIjC,KAAKmjF,IAAM,EAAGlhF,EAAIs+P,EAAS,EAAGt+P,IACzCjC,KAAK4/F,MAAM39F,GAAG49P,YAAY7/P,KAAKggQ,cAGnChgQ,KAAKkgQ,UAAUK,EACjB,CAKAC,SAAAA,GACExgQ,KAAKqgQ,YAAY,GACjBrgQ,KAAK4/F,MAAM5/F,KAAKmjF,KAAKy8K,QAAQ,IAAK5/P,KAAKggQ,aACzC,CAEAS,UAAAA,CAAW5qP,GACLA,GAAQ,KAEV7V,KAAKwgQ,YAEP,MAAM31E,EAAOszE,GAAetoP,GACxB7V,KAAKmjF,KAAOm7K,GACdt+P,KAAK40C,OAAO6c,IAAI,GAEd,IACE,iBACA57C,EAAKtI,SAAS,IACd,KACAs9K,EACA,iBACA7qL,KAAKmjF,IACL,oBAINnjF,KAAK4/F,MAAM5/F,KAAKmjF,KAAKy8K,QAAQ/0E,EAAM7qL,KAAKggQ,cACxChgQ,KAAKqgQ,WAAW,GAClB,CAEAO,YAAAA,CAAaC,GACX,IAAI5+P,EACJ,IAAKA,EAAI4+P,EAAU5+P,EAAIq8P,GAASr8P,IAC9BjC,KAAK4/F,MAAM39F,GAAG49B,OAElB,CAEAlc,KAAAA,GACE3jB,KAAK4gQ,aAAa,GAClB5gQ,KAAKmjF,IAAM,EACXnjF,KAAKggQ,aAAangO,OACpB,CAEAihO,eAAAA,GACE9gQ,KAAK4gQ,aAAa5gQ,KAAKmjF,IACzB,CAEA49K,aAAAA,GACE,MAAMnhK,EAAkB,GACxB,IAAInJ,GAAQ,EACZ,IAAK,IAAIx0F,EAAI,EAAGA,EAAIq8P,GAASr8P,IAAK,CAChC,MAAM4oL,EAAO7qL,KAAK4/F,MAAM39F,GAAG87P,MACd,MAATlzE,IACFp0F,GAAQ,GAGVmJ,EAAMh/F,KAAKiqL,EACb,CACA,OAAIp0F,EACK,GAEAmJ,EAAM/4F,KAAK,GAEtB,CAEAo6P,YAAAA,CAAaj2P,GACXhL,KAAKggQ,aAAaV,UAAUt0P,GACXhL,KAAK4/F,MAAM5/F,KAAKmjF,KACxB08K,YAAY7/P,KAAKggQ,aAC5B,EAOK,MAAMkB,GAOX30P,WAAAA,CAAYqoC,GAAwB,KANpCkpN,KAAc,GAAE,KAChBqD,QAAkB9C,GAAW,KAC7B+C,aAA8B,KAAI,KAClCC,iBAAyC,KAAI,KAC7CzsN,YAAM,EAGJ,IAAK,IAAI3yC,EAAI,EAAGA,EAAIo8P,GAASp8P,IAC3BjC,KAAK89P,KAAKl9P,KAAK,IAAIm/P,GAAInrN,IAEzB50C,KAAK40C,OAASA,CAChB,CAEA/U,KAAAA,GACE,IAAK,IAAI59B,EAAI,EAAGA,EAAIo8P,GAASp8P,IAC3BjC,KAAK89P,KAAK77P,GAAG0hB,QAEf3jB,KAAKmhQ,QAAU9C,EACjB,CAEA/vK,MAAAA,CAAOtzE,GACL,IAAIuuL,GAAQ,EACZ,IAAK,IAAItnM,EAAI,EAAGA,EAAIo8P,GAASp8P,IAC3B,IAAKjC,KAAK89P,KAAK77P,GAAGqsF,OAAOtzE,EAAM8iP,KAAK77P,IAAK,CACvCsnM,GAAQ,EACR,KACF,CAEF,OAAOA,CACT,CAEArkM,IAAAA,CAAK8V,GACH,IAAK,IAAI/Y,EAAI,EAAGA,EAAIo8P,GAASp8P,IAC3BjC,KAAK89P,KAAK77P,GAAGiD,KAAK8V,EAAM8iP,KAAK77P,GAEjC,CAEAgsE,OAAAA,GACE,IAAIwoB,GAAQ,EACZ,IAAK,IAAIx0F,EAAI,EAAGA,EAAIo8P,GAASp8P,IAC3B,IAAKjC,KAAK89P,KAAK77P,GAAGgsE,UAAW,CAC3BwoB,GAAQ,EACR,KACF,CAEF,OAAOA,CACT,CAEA+pK,SAAAA,GACcxgQ,KAAK89P,KAAK99P,KAAKmhQ,SACvBX,WACN,CAEAM,eAAAA,GACc9gQ,KAAK89P,KAAK99P,KAAKmhQ,SACvBL,iBACN,CAKAL,UAAAA,CAAW51E,GACG7qL,KAAK89P,KAAK99P,KAAKmhQ,SACvBV,WAAW51E,EACjB,CAEA22E,MAAAA,CAAOx2P,GACOhL,KAAK89P,KAAK99P,KAAKmhQ,SACvBF,aAAaj2P,EACnB,CAEAq1P,UAAAA,CAAWC,GACGtgQ,KAAK89P,KAAK99P,KAAKmhQ,SACvBd,WAAWC,EACjB,CAEAJ,SAAAA,CAAUC,GACRngQ,KAAK40C,OAAO6c,IAAI,EAAmB,cAAgB0uM,GACvCngQ,KAAK89P,KAAK99P,KAAKmhQ,SACvBjB,UAAUC,EAChB,CAEAuB,MAAAA,CAAOC,GACL3hQ,KAAK40C,OAAO6c,IAAI,GAEd,IAAM,aAAe70C,KAAKjW,UAAUg7P,KAEtC,IAAIC,EAASD,EAAQhE,IAAM,EAM3B,GALI39P,KAAKohQ,cAAgBQ,EAAS5hQ,KAAKohQ,aAAe,IACpDQ,EAAS5hQ,KAAKohQ,aAAe,GAI3BphQ,KAAKohQ,cAAgBphQ,KAAKmhQ,UAAYS,EAAQ,CAEhD,IAAK,IAAI3/P,EAAI,EAAGA,EAAIo8P,GAASp8P,IAC3BjC,KAAK89P,KAAK77P,GAAG0hB,QAKf,MAAMk+O,EAAc7hQ,KAAKmhQ,QAAU,EAAInhQ,KAAKohQ,aAGtCC,EAAmBrhQ,KAAKqhQ,iBAC9B,GAAIA,EAAkB,CACpB,MAAMS,EAAeT,EAAiBvD,KAAK+D,GAAa7D,aAClD/0O,EAAOjpB,KAAK40C,OAAO3rB,KACzB,GAAqB,OAAjB64O,GAAkC,OAAT74O,GAAiB64O,EAAe74O,EAC3D,IAAK,IAAIhnB,EAAI,EAAGA,EAAIjC,KAAKohQ,aAAcn/P,IACrCjC,KAAK89P,KAAK8D,EAAS5hQ,KAAKohQ,aAAen/P,EAAI,GAAGiD,KAC5Cm8P,EAAiBvD,KAAK+D,EAAc5/P,GAI5C,CACF,CAEAjC,KAAKmhQ,QAAUS,EACf,MAAMjE,EAAM39P,KAAK89P,KAAK99P,KAAKmhQ,SAC3B,GAAuB,OAAnBQ,EAAQ9D,OAAiB,CAC3B,MAAMA,EAAS8D,EAAQ9D,OACjBkE,EAAUl/P,KAAK2qB,IAAIqwO,EAAS,EAAG,GACrCF,EAAIuC,UAAUyB,EAAQ9D,QACtB8D,EAAQrlP,MAAQqhP,EAAI/9J,MAAMmiK,GAASpC,SAASvyO,UAC9C,CACA,MAAMpiB,EAAoB,CACxBoiB,WAAYu0O,EAAQrlP,MACpB6iP,UAAWwC,EAAQxC,UACnBC,QAASuC,EAAQvC,QACjBnmP,WAAY,QACZomP,OAAO,GAETr/P,KAAKwhQ,OAAOx2P,EACd,CAKAg3P,UAAAA,CAAWC,GACTjiQ,KAAK40C,OAAO6c,IAAI,GAEd,IAAM,aAAe70C,KAAKjW,UAAUs7P,KAEtCjiQ,KAAKwgQ,YACLxgQ,KAAKwhQ,OAAOS,GACZjiQ,KAAKygQ,WAAW,GAClB,CAEAyB,aAAAA,CAAcC,GACZniQ,KAAKohQ,aAAee,CACtB,CAEAC,MAAAA,GACE,GAA0B,OAAtBpiQ,KAAKohQ,aAKP,YAJAphQ,KAAK40C,OAAO6c,IAAI,EAEd,wCAIJzxD,KAAK40C,OAAO6c,IAAI,GAAmB,IAAMzxD,KAAKsiQ,mBAC9C,MAAMT,EAAc7hQ,KAAKmhQ,QAAU,EAAInhQ,KAAKohQ,aACtCmB,EAASviQ,KAAK89P,KAAKlxL,OAAOi1L,EAAa,GAAG,GAChDU,EAAO5+O,QACP3jB,KAAK89P,KAAKlxL,OAAO5sE,KAAKmhQ,QAAS,EAAGoB,GAClCviQ,KAAK40C,OAAO6c,IAAI,EAAmB,aAErC,CAKA6wM,cAAAA,CAAeE,GACbA,EAAWA,IAAY,EACvB,MAAMC,EAAwB,GAC9B,IAAI7pP,EAAO,GACP8pP,GAAS,EACb,IAAK,IAAIzgQ,EAAI,EAAGA,EAAIo8P,GAASp8P,IAAK,CAChC,MAAM0gQ,EAAU3iQ,KAAK89P,KAAK77P,GAAG8+P,gBACzB4B,IACFD,EAAQzgQ,EAAI,EACRugQ,EACFC,EAAY7hQ,KAAK,OAAS8hQ,EAAQ,MAAQC,EAAU,KAEpDF,EAAY7hQ,KAAK+hQ,EAAQx/P,QAG/B,CAQA,OAPIs/P,EAAYpiQ,OAAS,IAErBuY,EADE4pP,EACK,IAAMC,EAAY57P,KAAK,OAAS,IAEhC47P,EAAY57P,KAAK,OAGrB+R,CACT,CAEAgqP,gBAAAA,GACE,OAAO5iQ,KAAK89P,IACd,EAYF,MAAM+E,GAaJt2P,WAAAA,CACEu2P,EACAC,EACAnuN,GACA,KAhBFouN,UAAI,OACJD,kBAAY,OACZjoP,UAAI,OACJmoP,aAAO,OACPC,qBAAe,OACfC,wBAAkB,OAClB9B,sBAAgB,OAChB+B,mBAAa,OACbC,iBAAW,OACXrF,kBAAY,OACZppN,YAAM,EAOJ50C,KAAKgjQ,KAAOF,EACZ9iQ,KAAK+iQ,aAAeA,EACpB/iQ,KAAK8a,KAAO,KACZ9a,KAAKijQ,QAAU,EACfjjQ,KAAKkjQ,gBAAkB,IAAIhC,GAActsN,GACzC50C,KAAKmjQ,mBAAqB,IAAIjC,GAActsN,GAC5C50C,KAAKqhQ,iBAAmB,IAAIH,GAActsN,GAC1C50C,KAAKojQ,cAAgBpjQ,KAAKkjQ,gBAAgBpF,KAAKO,IAC/Cr+P,KAAKqjQ,YAAcrjQ,KAAKkjQ,gBACxBljQ,KAAK8a,KAAO,KACZ9a,KAAKg+P,aAAe,KACpBh+P,KAAK40C,OAASA,CAChB,CAEA/U,KAAAA,GACE7/B,KAAK8a,KAAO,KACZ9a,KAAKkjQ,gBAAgBrjO,QACrB7/B,KAAKmjQ,mBAAmBtjO,QACxB7/B,KAAKqhQ,iBAAiBxhO,QACtB7/B,KAAK+iQ,aAAaljO,QAClB7/B,KAAKojQ,cAAgBpjQ,KAAKkjQ,gBAAgBpF,KAAKO,IAC/Cr+P,KAAKqjQ,YAAcrjQ,KAAKkjQ,gBACxBljQ,KAAK8a,KAAO,KACZ9a,KAAKg+P,aAAe,IACtB,CAEAsF,UAAAA,GACE,OAAOtjQ,KAAK+iQ,YACd,CAEAQ,UAAAA,CAAWC,GACTxjQ,KAAK+iQ,aAAeS,CACtB,CAEA9B,MAAAA,CAAOC,GACL3hQ,KAAKqjQ,YAAY3B,OAAOC,EAC1B,CAEAK,UAAAA,CAAWC,GACTjiQ,KAAKqjQ,YAAYrB,WAAWC,EAC9B,CAEAwB,OAAAA,CAAQC,GACFA,IAAY1jQ,KAAK8a,OAIrB9a,KAAK8a,KAAO4oP,EACZ1jQ,KAAK40C,OAAO6c,IAAI,GAAmB,IAAM,QAAUiyM,IACjC,gBAAd1jQ,KAAK8a,KACP9a,KAAKqjQ,YAAcrjQ,KAAKmjQ,oBAExBnjQ,KAAKqjQ,YAAcrjQ,KAAKkjQ,gBACxBljQ,KAAKqjQ,YAAYxjO,SAED,iBAAd7/B,KAAK8a,OACP9a,KAAKkjQ,gBAAgB9B,aAAe,KACpCphQ,KAAKmjQ,mBAAmB/B,aAAe,MAEzCphQ,KAAK8a,KAAO4oP,EACd,CAEAC,WAAAA,CAAY/jK,GACV,IAAK,IAAI39F,EAAI,EAAGA,EAAI29F,EAAMv/F,OAAQ4B,IAChCjC,KAAKqjQ,YAAY5C,WAAW7gK,EAAM39F,IAGpC,MAAM+2J,EACJh5J,KAAKqjQ,cAAgBrjQ,KAAKkjQ,gBAAkB,OAAS,WACvDljQ,KAAK40C,OAAO6c,IAEV,OAAMunG,EAAS,KAAOh5J,KAAKqjQ,YAAYf,gBAAe,KAEtC,kBAAdtiQ,KAAK8a,MAA0C,iBAAd9a,KAAK8a,OACxC9a,KAAK40C,OAAO6c,IAAI,GAEd,IAAM,cAAgBzxD,KAAKkjQ,gBAAgBZ,gBAAe,KAE5DtiQ,KAAK4jQ,mBAET,CAEAC,KAAAA,GAEE7jQ,KAAK40C,OAAO6c,IAAI,EAAmB,gCACnCzxD,KAAKyjQ,QAAQ,cACf,CAEAK,IAAAA,GAEE9jQ,KAAK40C,OAAO6c,IAAI,EAAmB,kBACjB,cAAdzxD,KAAK8a,OAIT9a,KAAKqjQ,YAAY7C,YACbxgQ,KAAKqjQ,cAAgBrjQ,KAAKkjQ,iBAC5BljQ,KAAK4jQ,mBAET,CAEAG,KAAAA,GACE,CAGFC,KAAAA,GACE,CAGFC,KAAAA,GAEEjkQ,KAAK40C,OAAO6c,IAAI,EAAmB,6BACnCzxD,KAAKqjQ,YAAYvC,kBACjB9gQ,KAAK4jQ,kBACP,CAEAM,IAAAA,CAAK/B,GAEHniQ,KAAK40C,OAAO6c,IAAI,EAAmB,MAAQ0wM,EAAS,eACpDniQ,KAAKqjQ,YAAcrjQ,KAAKkjQ,gBACxBljQ,KAAKyjQ,QAAQ,gBACbzjQ,KAAKqjQ,YAAYnB,cAAcC,EACjC,CAEAgC,KAAAA,GAEEnkQ,KAAK40C,OAAO6c,IAAI,EAAmB,kBACnCzxD,KAAKqjQ,YAAY7B,OAAO,CAAEnC,OAAO,GACnC,CAEA+E,KAAAA,GAEEpkQ,KAAK40C,OAAO6c,IAAI,EAAmB,kCACnCzxD,KAAKyjQ,QAAQ,gBACf,CAEAY,IAAAA,GAEErkQ,KAAK40C,OAAO6c,IAAI,EAAmB,MACnCzxD,KAAKyjQ,QAAQ,YACf,CAEAa,KAAAA,GAEEtkQ,KAAK40C,OAAO6c,IAAI,EAAmB,OACnCzxD,KAAKyjQ,QAAQ,YACf,CAEAc,KAAAA,GAEEvkQ,KAAK40C,OAAO6c,IAAI,EAAmB,gCACnCzxD,KAAKkjQ,gBAAgBrjO,QACrB7/B,KAAK4jQ,kBAAiB,EACxB,CAEAY,IAAAA,GAEExkQ,KAAK40C,OAAO6c,IAAI,EAAmB,wBACnCzxD,KAAKqjQ,YAAYjB,SACjBpiQ,KAAK4jQ,kBAAiB,EACxB,CAEAa,KAAAA,GAEEzkQ,KAAK40C,OAAO6c,IAAI,EAAmB,oCACnCzxD,KAAKmjQ,mBAAmBtjO,OAC1B,CAEA6kO,KAAAA,GAGE,GADA1kQ,KAAK40C,OAAO6c,IAAI,EAAmB,wBACjB,gBAAdzxD,KAAK8a,KAAwB,CAC/B,MAAM4jD,EAAM1+D,KAAKkjQ,gBACjBljQ,KAAKkjQ,gBAAkBljQ,KAAKmjQ,mBAC5BnjQ,KAAKmjQ,mBAAqBzkM,EAC1B1+D,KAAKqjQ,YAAcrjQ,KAAKmjQ,mBACxBnjQ,KAAK40C,OAAO6c,IAAI,GAEd,IAAM,SAAWzxD,KAAKkjQ,gBAAgBZ,kBAE1C,CACAtiQ,KAAK4jQ,kBAAiB,EACxB,CAEAe,IAAAA,CAAKC,GAEH5kQ,KAAK40C,OAAO6c,IAAI,EAAmB,MAAQmzM,EAAS,kBACpD5kQ,KAAKqjQ,YAAYhD,WAAWuE,EAC9B,CAEAC,QAAAA,CAAS73K,GAEP,MAAMhiF,EAA6B,CAAEq0P,OAAO,GAG5C,GAFAr0P,EAAOm0P,UAAYnyK,EAAa,IAAM,EACtChiF,EAAOo0P,QAAUpyK,GAAc,GAC1BhiF,EAAOo0P,QAaVp0P,EAAOoiB,WAAa,YAbD,CACnB,MAAM03O,EAAajiQ,KAAKgrC,MAAMm/C,EAAa,GAAK,GAC1Ch/D,EAAS,CACb,QACA,QACA,OACA,OACA,MACA,SACA,WAEFhjB,EAAOoiB,WAAaY,EAAO82O,EAC7B,CAGA9kQ,KAAK40C,OAAO6c,IAAuB,aAAa70C,KAAKjW,UAAUqE,IAC/DhL,KAAKqjQ,YAAY7B,OAAOx2P,EAC1B,CAEA44P,gBAAAA,GAA4C,IAA3BzuE,EAAiBnoL,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAChC,MAAMic,EAAOjpB,KAAK40C,OAAO3rB,KACZ,OAATA,GAIAjpB,KAAK+iQ,eACmB,OAAtB/iQ,KAAKg+P,cAA0Bh+P,KAAKkjQ,gBAAgBj1L,UAIjDjuE,KAAKkjQ,gBAAgB50K,OAAOtuF,KAAKqhQ,oBACpCrhQ,KAAK+iQ,aAAatF,OAChBz9P,KAAKg+P,aACL/0O,EACAjpB,KAAKqhQ,kBAEHlsE,GAAYn1L,KAAK+iQ,aAAagC,aAChC/kQ,KAAK+iQ,aAAagC,cAGpB/kQ,KAAKg+P,aAAeh+P,KAAKkjQ,gBAAgBj1L,UAAY,KAAOhlD,GAZ9DjpB,KAAKg+P,aAAe/0O,EAetBjpB,KAAKqhQ,iBAAiBn8P,KAAKlF,KAAKkjQ,iBAEpC,CAEA8B,cAAAA,CAAehzO,GACThyB,KAAK+iQ,eACF/iQ,KAAKkjQ,gBAAgBj1L,YACpBjuE,KAAK+iQ,aAAatF,QACpBz9P,KAAK+iQ,aAAatF,OAAOz9P,KAAKg+P,aAAehsO,EAAGhyB,KAAKkjQ,iBAGvDljQ,KAAKg+P,aAAehsO,GAG1B,EAoBF,MAAMizO,GAMJ14P,WAAAA,CAAYqvE,EAAuBspL,EAAoBC,GAAoB,KAL3EC,cAAQ,OACRC,eAA2B,EAAC,KAC5BC,WA2YO,CACLlvP,EAAG,KACHmgB,EAAG,MA7YsC,KAC3Cqe,YAAM,EAGJ,MAAMA,EAAU50C,KAAK40C,OAAS,IAAI6iU,GAClCz3W,KAAKolQ,SAAW,CACd,KACA,IAAIvC,GAAcjnL,EAAOspL,EAAMtwN,GAC/B,IAAIiuN,GAAcjnL,EAAQ,EAAGupL,EAAMvwN,GAEvC,CAEA0uN,UAAAA,CAAWiC,GACT,OAAQvlQ,KAAKolQ,SAASG,GAA2BjC,YACnD,CAEAC,UAAAA,CAAWgC,EAAiB/B,GACzBxjQ,KAAKolQ,SAASG,GAA2BhC,WAAWC,EACvD,CAKAgC,OAAAA,CAAQv8O,EAAqBw8O,GAC3BzlQ,KAAK40C,OAAO3rB,KAAOA,EACnB,IAAK,IAAIhnB,EAAI,EAAGA,EAAIwjQ,EAASplQ,OAAQ4B,GAAK,EAAG,CAC3C,MAAMmU,EAAkB,IAAdqvP,EAASxjQ,GACbs0B,EAAsB,IAAlBkvO,EAASxjQ,EAAI,GACvB,IAAIyjQ,GAAoB,EACpBC,EAA8B,KAElC,GAAU,IAANvvP,GAAiB,IAANmgB,EACb,SAEAv2B,KAAK40C,OAAO6c,IAAI,GAEd,IACE,IACAstM,GAAmB,CAAC0G,EAASxjQ,GAAIwjQ,EAASxjQ,EAAI,KAC9C,SACA88P,GAAmB,CAAC3oP,EAAGmgB,IACvB,MAIN,MAAM+uO,EAAatlQ,KAAKslQ,WAExB,GADsBlvP,GAAK,IAAQA,GAAK,GACrB,CAEjB,GAAIgwP,GAAehwP,EAAGmgB,EAAG+uO,GAAa,CACpCe,GAAW,KAAM,KAAMf,GACvBtlQ,KAAK40C,OAAO6c,IAEV,OACE,qBACAstM,GAAmB,CAAC3oP,EAAGmgB,IACvB,iBAEJ,QACF,CACA8vO,GAAWjwP,EAAGmgB,EAAGv2B,KAAKslQ,YAEtBI,EAAW1lQ,KAAK6lQ,SAASzvP,EAAGmgB,GAEvBmvO,IACHA,EAAW1lQ,KAAK8lQ,YAAY1vP,EAAGmgB,IAG5BmvO,IACHA,EAAW1lQ,KAAK+lQ,SAAS3vP,EAAGmgB,IAGzBmvO,IACHA,EAAW1lQ,KAAKgmQ,0BAA0B5vP,EAAGmgB,GAEjD,MACE8vO,GAAW,KAAM,KAAMf,GAEzB,IAAKI,IACHC,EAAa3lQ,KAAKimQ,WAAW7vP,EAAGmgB,GAC5BovO,GAAY,CACd,MAAMO,EAAWlmQ,KAAKqlQ,eACtB,GAAIa,GAAYA,EAAW,EAAG,CACZlmQ,KAAKolQ,SAASc,GACtBvC,YAAYgC,EACtB,MACE3lQ,KAAK40C,OAAO6c,IAAI,EAEd,mCAGN,CAEGi0M,GAAaC,GAChB3lQ,KAAK40C,OAAO6c,IAAI,GAEd,IACE,+BACAstM,GAAmB,CAAC3oP,EAAGmgB,IACvB,UACAwoO,GAAmB,CAAC0G,EAASxjQ,GAAIwjQ,EAASxjQ,EAAI,MAGtD,CACF,CAMA4jQ,QAAAA,CAASzvP,EAAWmgB,GAMlB,MAJS,KAANngB,GAAoB,KAANA,GAAoB,KAANA,GAAoB,KAANA,IAC3CmgB,GAAK,IACLA,GAAK,QACc,KAANngB,GAAoB,KAANA,IAAemgB,GAAK,IAAQA,GAAK,IAE5D,OAAO,EAGT,MAAMysO,EAAa,KAAN5sP,GAAoB,KAANA,GAAoB,KAANA,EAAa,EAAI,EACpDmvP,EAAUvlQ,KAAKolQ,SAASpC,GAyC9B,OAvCU,KAAN5sP,GAAoB,KAANA,GAAoB,KAANA,GAAoB,KAANA,EAClC,KAANmgB,EACFgvO,EAAQ1B,QACO,KAANttO,EACTgvO,EAAQzB,OACO,KAANvtO,EACTgvO,EAAQxB,QACO,KAANxtO,EACTgvO,EAAQvB,QACO,KAANztO,EACTgvO,EAAQtB,QACO,KAAN1tO,EACTgvO,EAAQrB,KAAK,GACE,KAAN3tO,EACTgvO,EAAQrB,KAAK,GACE,KAAN3tO,EACTgvO,EAAQrB,KAAK,GACE,KAAN3tO,EACTgvO,EAAQpB,QACO,KAAN5tO,EACTgvO,EAAQnB,QACO,KAAN7tO,EACTgvO,EAAQlB,OACO,KAAN9tO,EACTgvO,EAAQjB,QACO,KAAN/tO,EACTgvO,EAAQhB,QACO,KAANhuO,EACTgvO,EAAQf,OACO,KAANjuO,EACTgvO,EAAQd,QACO,KAANluO,GACTgvO,EAAQb,QAIVa,EAAQZ,KAAKpuO,EAAI,IAEnBv2B,KAAKqlQ,eAAiBrC,GACf,CACT,CAKA8C,WAAAA,CAAY1vP,EAAWmgB,GACrB,IAAIysO,EAAe,EAEnB,IAAW,KAAN5sP,GAAoB,KAANA,IAAemgB,GAAK,IAAQA,GAAK,GAAM,CAOxD,GALEysO,EADQ,KAAN5sP,EACK,EAEA,EAGL4sP,IAAShjQ,KAAKqlQ,eAKhB,OAJArlQ,KAAK40C,OAAO6c,IAAI,EAEd,uCAEK,EAET,MAAM8zM,EAAUvlQ,KAAKolQ,SAASpC,GAC9B,QAAKuC,IAGLA,EAAQV,SAAStuO,GACjBv2B,KAAK40C,OAAO6c,IAEV,OAAM,WAAastM,GAAmB,CAAC3oP,EAAGmgB,IAAM,OAE3C,EACT,CACA,OAAO,CACT,CAMAwvO,QAAAA,CAAS3vP,EAAWmgB,GAClB,IAAIonO,EAOJ,MAJIvnP,GAAK,IAAQA,GAAK,IAAUA,GAAK,IAAQA,GAAK,KAChDmgB,GAAK,IACLA,GAAK,SACc,KAANngB,GAAoB,KAANA,IAAemgB,GAAK,IAAQA,GAAK,IAE5D,OAAO,EAGT,MAAMysO,EAAiB5sP,GAAK,GAAO,EAAI,EAGrCunP,EADEpnO,GAAK,IAAQA,GAAK,GACL,IAATysO,EAAazE,GAAWnoP,GAAKqoP,GAAWroP,GAG/B,IAAT4sP,EAAaxE,GAAYpoP,GAAKsoP,GAAYtoP,GAElD,MAAMmvP,EAAUvlQ,KAAKolQ,SAASpC,GAC9B,QAAKuC,IAGLA,EAAQ7D,OAAO1hQ,KAAKsmQ,aAAa3I,EAAKpnO,IACtCv2B,KAAKqlQ,eAAiBrC,GACf,EACT,CAMAsD,YAAAA,CAAa3I,EAAa9nP,GACxB,IAAI2wP,EACJ,MAAM7E,EAAmB,CACvBrlP,MAAO,KACP8iP,SAAS,EACTvB,OAAQ,KACRsB,WAAW,EACXxB,IAAKA,GA2BP,OAvBE6I,EADE3wP,EAAO,GACEA,EAAO,GAEPA,EAAO,GAGpB8rP,EAAQxC,UAA+B,KAAP,EAAXqH,GACjBA,GAAY,GACd7E,EAAQrlP,MAAQ,CACd,QACA,QACA,OACA,OACA,MACA,SACA,UACA,SACAzZ,KAAKgrC,MAAM24N,EAAW,IACfA,GAAY,IACrB7E,EAAQvC,SAAU,EAClBuC,EAAQrlP,MAAQ,SAEhBqlP,EAAQ9D,OAA6C,EAApCh7P,KAAKgrC,OAAO24N,EAAW,IAAQ,GAE3C7E,CACT,CAMAsE,UAAAA,CAAW7vP,EAAWmgB,GACpB,IAAIkwO,EACAC,EAA6B,KAC7BC,EAA2B,KAS/B,GAPIvwP,GAAK,IACPqwP,EAAY,EACZE,EAAYvwP,EAAI,IAEhBqwP,EAAY,EACZE,EAAYvwP,GAEVuwP,GAAa,IAAQA,GAAa,GAAM,CAE1C,IAAIC,EAEFA,EADgB,KAAdD,EACQpwO,EAAI,GACS,KAAdowO,EACCpwO,EAAI,IAEJA,EAAI,IAGhBv2B,KAAK40C,OAAO6c,IAAI,GAEd,IACE,iBACA0sM,GAAeyI,GACf,gBACAH,IAEJC,EAAY,CAACE,QACJxwP,GAAK,IAAQA,GAAK,MAC3BswP,EAAkB,IAANnwO,EAAU,CAACngB,GAAK,CAACA,EAAGmgB,IAUlC,OARImwO,GACF1mQ,KAAK40C,OAAO6c,IAAI,GAEd,IACE,iBACAstM,GAAmB2H,GAAuB7/P,KAAK,OAG9C6/P,CACT,CAMAV,yBAAAA,CAA0B5vP,EAAWmgB,GAGnC,MAFqB,KAANngB,GAAoB,KAANA,IAAemgB,GAAK,IAAQA,GAAK,QACzC,KAANngB,GAAoB,KAANA,IAAemgB,GAAK,IAAQA,GAAK,IAE5D,OAAO,EAET,IAAI3yB,EACJ,MAAMq+P,EAA8B,CAAC,EAC3B,KAAN7rP,GAAoB,KAANA,GAChBxS,EAAQf,KAAKgrC,OAAOtX,EAAI,IAAQ,GAChC0rO,EAAQhpP,WAAa0lP,GAAiB/6P,GAClC2yB,EAAI,IAAM,IACZ0rO,EAAQhpP,WAAagpP,EAAQhpP,WAAa,UAE7B,KAANsd,EACT0rO,EAAQhpP,WAAa,eAErBgpP,EAAQ70O,WAAa,QACX,KAANmJ,IACF0rO,EAAQ9C,WAAY,IAGxB,MAAM6D,EAAiB5sP,GAAK,GAAO,EAAI,EAGvC,OAF+BpW,KAAKolQ,SAASpC,GACrChB,WAAWC,IACZ,CACT,CAKApiO,KAAAA,GACE,IAAK,IAAI59B,EAAI,EAAGA,EAAIiB,OAAO4pB,KAAK9sB,KAAKolQ,UAAU/kQ,OAAQ4B,IAAK,CAC1D,MAAMsjQ,EAAUvlQ,KAAKolQ,SAASnjQ,GAC1BsjQ,GACFA,EAAQ1lO,OAEZ,CACAwmO,GAAW,KAAM,KAAMrmQ,KAAKslQ,WAC9B,CAKAN,cAAAA,CAAehzO,GACb,IAAK,IAAI/vB,EAAI,EAAGA,EAAIjC,KAAKolQ,SAAS/kQ,OAAQ4B,IAAK,CAC7C,MAAMsjQ,EAAUvlQ,KAAKolQ,SAASnjQ,GAC1BsjQ,GACFA,EAAQP,eAAehzO,EAE3B,CACF,EAGF,SAASq0O,GACPjwP,EACAmgB,EACA+uO,GAEAA,EAAWlvP,EAAIA,EACfkvP,EAAW/uO,EAAIA,CACjB,CAEA,SAAS6vO,GAAehwP,EAAWmgB,EAAW+uO,GAC5C,OAAOA,EAAWlvP,IAAMA,GAAKkvP,EAAW/uO,IAAMA,CAChD,CC/3Ce,MAAMwwO,GAQnBx6P,WAAAA,CAAYy6P,EAAwC7jB,GAAmB,KAP/D6jB,wBAAkB,OAClBC,UAAqC,GAAE,KACvC9jB,eAAS,OACTlyL,UAA2B,KAAI,KAC/B++C,QAAyB,KAAI,KAC7BgpD,OAA+B,KAGrCh5J,KAAKgnQ,mBAAqBA,EAC1BhnQ,KAAKmjP,UAAYA,CACnB,CAEA4hB,WAAAA,GACyB,OAAnB/kQ,KAAKixD,YAITjxD,KAAKgnQ,mBAAmBE,QACtBlnQ,KAAKmjP,UACLnjP,KAAKixD,UACLjxD,KAAKgwG,QACLhwG,KAAKg5J,OACLh5J,KAAKinQ,WAEPjnQ,KAAKixD,UAAY,KACnB,CAEAwsM,MAAAA,CAAOxsM,EAAmB++C,EAAiBgpD,IAClB,OAAnBh5J,KAAKixD,WAAsBjxD,KAAKixD,UAAYA,KAC9CjxD,KAAKixD,UAAYA,GAGnBjxD,KAAKgwG,QAAUA,EACfhwG,KAAKg5J,OAASA,EACdh5J,KAAKgnQ,mBAAmBG,oBAAoBnnQ,KAAKmjP,UACnD,CAEAtjN,KAAAA,GACE7/B,KAAKinQ,UAAY,GACjBjnQ,KAAKixD,UAAY,IACnB,ECpBF,IAAAq3L,GAAgB,WACd,GAAgB,MAAZ+zF,IAAAA,GAAc/zF,OAChB,OAAO19M,KAAK09M,OAGd,MAAMovH,EAAoB,CAAC,GAAI,KAAM,MAG/BC,EAAoB,CACxB,QACA,SACA,MACA,OACA,SAIF,SAASC,EAAqBC,EAAYz0W,GACxC,GAAqB,kBAAVA,EACT,OAAO,EAGT,IAAKyG,MAAMiI,QAAQ+lW,GACjB,OAAO,EAGT,MAAMC,EAAU10W,EAAM2N,cAEtB,SAAK8mW,EAAQn0W,QAAQo0W,IACZA,CAIX,CASA,SAAS/9G,EAAiB32P,GACxB,OAAOw0W,EACLD,EACAv0W,EAEJ,CAEA,SAASg/H,EAAOxwH,GAA0D,QAAAw+L,EAAApjM,UAAA3M,OAA7Bm8D,EAA2B,IAAA3yD,MAAAumM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAA3B7zI,EAA2B6zI,EAAA,GAAArjM,UAAAqjM,GACtE,IAAIpuM,EAAI,EACR,KAAOA,EAAI+K,UAAU3M,OAAQ4B,IAAK,CAChC,MAAM+3P,EAAOhtP,UAAU/K,GACvB,IAAK,MAAMo0B,KAAK2jO,EACdpoP,EAAIykB,GAAK2jO,EAAK3jO,EAElB,CAEA,OAAOzkB,CACT,CAEA,SAAS02O,EAAOr3L,EAAmB++C,EAAiBp3F,GAClD,MAAM4vO,EAAMxoP,KACNi6P,EAAU,CAAE7iP,YAAY,GAS9BoxO,EAAI0R,cAAe,EAOnB,IAAIC,EAAM,GACNC,GAAe,EACfC,EAAappM,EACbqpM,EAAWtqJ,EACXuqJ,EAAQ3hP,EACR4hP,EAAU,KACVC,EAAuB,GACvBC,GAAe,EACfC,EAAyB,OACzBC,EAAwB,QACxBC,EAAY,GACZC,EAA4B,SAC5BC,EAAQ,GACRC,EAAoB,SAExB93P,OAAOiU,eACLqxO,EACA,KACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOoxP,GAETnxP,IAAK,SAAU5F,GACb+2P,EAAM,GAAK/2P,CACb,KAIJF,OAAOiU,eACLqxO,EACA,cACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOqxP,GAETpxP,IAAK,SAAU5F,GACbg3P,IAAiBh3P,CACnB,KAIJF,OAAOiU,eACLqxO,EACA,YACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOsxP,GAETrxP,IAAK,SAAU5F,GACb,GAAqB,kBAAVA,EACT,MAAM,IAAI6S,UAAU,uCAGtBokP,EAAaj3P,EACbpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,UACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOuxP,GAETtxP,IAAK,SAAU5F,GACb,GAAqB,kBAAVA,EACT,MAAM,IAAI6S,UAAU,qCAGtBqkP,EAAWl3P,EACXpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,OACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOwxP,GAETvxP,IAAK,SAAU5F,GACbm3P,EAAQ,GAAKn3P,EACbpD,KAAKk6P,cAAe,CACtB,KAKJh3P,OAAOiU,eACLqxO,EACA,SACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOyxP,GAETxxP,IAAK,SAAU5F,GACbo3P,EAAUp3P,EACVpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,WACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAO0xP,GAETzxP,IAAK,SAAU5F,GACb,MAAM63P,EA9Jd,SAA8B73P,GAC5B,OAAOw0W,EACLF,EACAt0W,EAEJ,CAyJwB83P,CAAqB93P,GAErC,IAAgB,IAAZ63P,EACF,MAAM,IAAI7mH,YACR,+CAIJqmH,EAAYQ,EACZj7P,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,cACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAO2xP,GAET1xP,IAAK,SAAU5F,GACbs3P,IAAiBt3P,EACjBpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,OACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAO4xP,GAET3xP,IAAK,SAAU5F,GACb,GAAqB,kBAAVA,GAAgC,SAAVA,EAC/B,MAAM,IAAIgxI,YACR,sDAIJumH,EAAQv3P,EACRpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,YACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAO6xP,GAET5xP,IAAK,SAAU5F,GACb,MAAM63P,EAAUlB,EAAiB32P,GACjC,IAAK63P,EACH,MAAM,IAAI7mH,YACR,+CAIJwmH,EAAaK,EACbj7P,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,WACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAO8xP,GAET7xP,IAAK,SAAU5F,GACb,GAAIA,EAAQ,GAAKA,EAAQ,IACvB,MAAM,IAAI4O,MAAM,uCAGlB6oP,EAAYz3P,EACZpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,gBACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAO+xP,GAET9xP,IAAK,SAAU5F,GACb,MAAM63P,EAAUlB,EAAiB32P,GACjC,IAAK63P,EACH,MAAM,IAAI7mH,YACR,+CAIJ0mH,EAAiBG,EACjBj7P,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,OACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOgyP,GAET/xP,IAAK,SAAU5F,GACb,GAAIA,EAAQ,GAAKA,EAAQ,IACvB,MAAM,IAAI4O,MAAM,mCAGlB+oP,EAAQ33P,EACRpD,KAAKk6P,cAAe,CACtB,KAIJh3P,OAAOiU,eACLqxO,EACA,QACApmH,EAAO,CAAC,EAAG63H,EAAS,CAClBlxP,IAAK,WACH,OAAOiyP,GAEThyP,IAAK,SAAU5F,GACb,MAAM63P,EAAUlB,EAAiB32P,GACjC,IAAK63P,EACH,MAAM,IAAI7mH,YACR,+CAIJ4mH,EAASC,EACTj7P,KAAKk6P,cAAe,CACtB,KASJ1R,EAAI2S,kBAAer6P,CACrB,CAYA,OANAwnP,EAAOlnP,UAAUg6P,aAAe,WAG9B,OADgBxwN,KAAaywN,OACfC,oBAAoB1wN,KAAM5qC,KAAK4Y,OAGxC0vO,CACT,CAvWgB,GClBhB,MAAMiT,GAEJ1mP,MAAAA,CAAOK,EAAoBpV,GACzB,IAAKoV,EACH,MAAO,GAGT,GAAoB,kBAATA,EACT,MAAM,IAAIlD,MAAM,iCAGlB,OAAOiuE,mBAAmBl/C,mBAAmB7rB,GAC/C,EAIK,SAASynP,GAAehpP,GAC7B,SAAS+oP,EAAe5pP,EAAGsjB,EAAGpH,EAAGE,GAC/B,OAAiB,MAAL,EAAJpc,GAA0B,IAAL,EAAJsjB,IAAmB,EAAJpH,GAASP,WAAWS,GAAK,EACnE,CAEA,MAAMkH,EAAIziB,EAAMlK,MAAM,uCACtB,OAAK2sB,EAID3H,WAAW2H,EAAE,IAAM,GAGdsmO,EAAetmO,EAAE,GAAIA,EAAE,GAAI,EAAGA,EAAE,IAGlCsmO,EAAetmO,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IATjC,IAUX,CAIA,MAAMslO,GAASnvP,WAAAA,GAAA,KACIgiB,OAAiCrrB,OAAOoI,OAAO,KAAK,CAGrEtC,GAAAA,CAAIb,EAAWkM,GACRrU,KAAK+I,IAAIZ,IAAY,KAANkM,IAClBrU,KAAKuuB,OAAOpmB,GAAKkM,EAErB,CAMAtL,GAAAA,CAAIZ,EAAW4zP,EAAYC,GACzB,OAAIA,EACKh8P,KAAKkyB,IAAI/pB,GAAKnI,KAAKuuB,OAAOpmB,GAAK4zP,EAAKC,GAGtCh8P,KAAKkyB,IAAI/pB,GAAKnI,KAAKuuB,OAAOpmB,GAAK4zP,CACxC,CAEA7pO,GAAAA,CAAI/pB,GACF,OAAOA,KAAKnI,KAAKuuB,MACnB,CAEA0tO,GAAAA,CAAI9zP,EAAWkM,EAAQ+B,GACrB,IAAK,IAAI6X,EAAI,EAAGA,EAAI7X,EAAE/V,SAAU4tB,EAC9B,GAAI5Z,IAAM+B,EAAE6X,GAAI,CACdjuB,KAAKgJ,IAAIb,EAAGkM,GACZ,KACF,CAEJ,CAEAqC,OAAAA,CAAQvO,EAAWkM,GACb,UAAUyW,KAAKzW,IAEjBrU,KAAKgJ,IAAIb,EAAG4N,SAAS1B,EAAG,IAE5B,CAEA6nP,OAAAA,CAAQ/zP,EAAWkM,GACjB,GAAI,2BAA2ByW,KAAKzW,GAAI,CACtC,MAAM6nP,EAAUztO,WAAWpa,GAC3B,GAAI6nP,GAAW,GAAKA,GAAW,IAE7B,OADAl8P,KAAKgJ,IAAIb,EAAG+zP,IACL,CAEX,CACA,OAAO,CACT,EAKF,SAASP,GACPhoP,EACAlN,EACAm1P,EACAC,GAEA,MAAMt2B,EAASs2B,EAAaloP,EAAMrJ,MAAMuxP,GAAc,CAACloP,GACvD,IAAK,MAAM1R,KAAKsjO,EAAQ,CACtB,GAAyB,kBAAdA,EAAOtjO,GAChB,SAGF,MAAM65P,EAAKv2B,EAAOtjO,GAAGqI,MAAMsxP,GAC3B,GAAkB,IAAdE,EAAGz7P,OACL,SAKFoG,EAFUq1P,EAAG,GACHA,EAAG,GAEf,CACF,CAEA,MAAMK,GAAW,IAAI7T,GAAO,EAAG,EAAG,IAG5B8T,GAAwC,WAA9BD,GAASE,MAAgC,SAAW,SAEpE,SAASC,GAAS3oP,EAAe60O,EAAaiT,GAE5C,MAAMc,EAAS5oP,EAEf,SAAS6oP,IACP,MAAMC,EAAKE,GAAehpP,GAC1B,GAAW,OAAP8oP,EACF,MAAM,IAAIzqP,MAAM,wBAA0BuqP,GAK5C,OADA5oP,EAAQA,EAAMtQ,QAAQ,iBAAkB,IACjCo5P,CACT,CAyFA,SAASG,IACPjpP,EAAQA,EAAMtQ,QAAQ,OAAQ,GAChC,CAMA,GAHAu5P,IACApU,EAAIv3L,UAAYurM,IAChBI,IAC0B,WAAtBjpP,EAAM1P,MAAM,EAAG,GAEjB,MAAM,IAAI+N,MACR,qEACEuqP,GAGN5oP,EAAQA,EAAM1P,MAAM,GACpB24P,IACApU,EAAIx4I,QAAUwsJ,IAGdI,IA1GA,SAA4BjpP,EAAe60O,GACzC,MAAMpjK,EAAW,IAAIs2K,GAErBC,GACEhoP,GACA,SAAUxL,EAAGkM,GACX,IAAI2uE,EACJ,OAAQ76E,GACN,IAAK,SAEH,IAAK,IAAIlG,EAAIw5P,EAAWp7P,OAAS,EAAG4B,GAAK,EAAGA,IAC1C,GAAIw5P,EAAWx5P,GAAGyhC,KAAOrvB,EAAG,CAC1B+wE,EAASp8E,IAAIb,EAAGszP,EAAWx5P,GAAG0yC,QAC9B,KACF,CAEF,MACF,IAAK,WACHywC,EAAS62K,IAAI9zP,EAAGkM,EAAG,CAAC,KAAM,OAC1B,MACF,IAAK,OACH2uE,EAAO3uE,EAAE/J,MAAM,KACf86E,EAAS1uE,QAAQvO,EAAG66E,EAAK,IACrBoC,EAAS82K,QAAQ/zP,EAAG66E,EAAK,KAC3BoC,EAASp8E,IAAI,eAAe,GAG9Bo8E,EAAS62K,IAAI9zP,EAAG66E,EAAK,GAAI,CAAC,SACN,IAAhBA,EAAK3iF,QACP+kF,EAAS62K,IAAI,YAAaj5K,EAAK,GAAI,CAAC,QAASo5K,GAAQ,QAGvD,MACF,IAAK,WACHp5K,EAAO3uE,EAAE/J,MAAM,KACf86E,EAAS82K,QAAQ/zP,EAAG66E,EAAK,IACL,IAAhBA,EAAK3iF,QACP+kF,EAAS62K,IAAI,gBAAiBj5K,EAAK,GAAI,CACrC,QACAo5K,GACA,MACA,YACA,aACA,SAIJ,MACF,IAAK,OACHh3K,EAAS82K,QAAQ/zP,EAAGkM,GACpB,MACF,IAAK,QACH+wE,EAAS62K,IAAI9zP,EAAGkM,EAAG,CAAC,QAAS+nP,GAAQ,MAAO,OAAQ,UAG1D,GACA,IACA,MAIF5T,EAAI7zM,OAASywC,EAASr8E,IAAI,SAAU,MACpCy/O,EAAIsU,SAAW13K,EAASr8E,IAAI,WAAY,IACxC,IAAIzE,EAAO8gF,EAASr8E,IAAI,OAAQ,QACnB,SAATzE,IAAsC,IAAnB63P,GAAS73P,OAE9BA,GAAQ,GAEVkkP,EAAIlkP,KAAOA,EACXkkP,EAAIuU,UAAY33K,EAASr8E,IAAI,YAAa,SAC1Cy/O,EAAIwU,YAAc53K,EAASr8E,IAAI,eAAe,GAC9Cy/O,EAAIvgP,KAAOm9E,EAASr8E,IAAI,OAAQ,KAChCy/O,EAAI6T,MAAQj3K,EAASr8E,IAAI,QAASqzP,IAClC,IAAI53P,EAAW4gF,EAASr8E,IAAI,WAAY,QACvB,SAAbvE,GAA6C,KAAtB23P,GAAS33P,WAElCA,EACgB,UAAdgkP,EAAI6T,OAAmC,SAAd7T,EAAI6T,MACzB,EACc,QAAd7T,EAAI6T,OAAiC,UAAd7T,EAAI6T,MACzB,IACA,IAEV7T,EAAIhkP,SAAWA,CACjB,CAuBAy4P,CAAmBtpP,EAAO60O,EAC5B,CAEO,SAAS0U,GAAcvpP,GAC5B,OAAOA,EAAMtQ,QAAQ,iBAAkB,KACzC,CAOO,MAAMm4P,GAAUjvP,WAAAA,GAAA,KACbwb,MAQO,UAAS,KAChB6jB,OAAiB,GAAE,KACnBktL,QAAyB,IAAIyiC,GAAe,KAC5CE,WAAuB,GAAE,KACzBjT,IAAqB,KAAI,KAC1B8U,WAAK,OACLoL,oBAAc,OACdnL,aAAO,EAEdx2P,KAAAA,CAAMmO,GACJ,MAAMnV,EAAQC,KAUd,SAASm9P,IACP,IAAIvxN,EAAiB7rC,EAAM6rC,OACvBu3C,EAAM,EAIV,IAFAv3C,EAASsxN,GAActxN,GAGrBu3C,EAAMv3C,EAAOvrC,QACG,OAAhBurC,EAAOu3C,IACS,OAAhBv3C,EAAOu3C,MAELA,EAGJ,MAAM7+E,EAAesnC,EAAO3nC,MAAM,EAAGk/E,GAWrC,MAToB,OAAhBv3C,EAAOu3C,MACPA,EAGgB,OAAhBv3C,EAAOu3C,MACPA,EAGJpjF,EAAM6rC,OAASA,EAAO3nC,MAAMk/E,GACrB7+E,CACT,CA/BI4Q,IAEFnV,EAAM6rC,QAAU7rC,EAAM+4N,QAAQjkN,OAAOK,EAAM,CAAEJ,QAAQ,KAiDvD,IACE,IAAIxQ,EAAe,GACnB,GAAoB,YAAhBvE,EAAMgoB,MAAqB,CAE7B,IAAK,UAAU+C,KAAK/qB,EAAM6rC,QACxB,OAAO5rC,KAGTsE,EAAO64P,IAGP,MAAM/mO,EAAI9xB,EAAKmF,MAAM,qCACrB,GAAM,MAAD2sB,IAAAA,EAAI,GACP,MAAM,IAAIpkB,MAAM,+BAGlBjS,EAAMgoB,MAAQ,QAChB,CAEA,IAAIq1O,GAAuB,EAC3B,KAAOr9P,EAAM6rC,QAAQ,CAEnB,IAAK,UAAU9gB,KAAK/qB,EAAM6rC,QACxB,OAAO5rC,KAST,OANKo9P,EAGHA,GAAuB,EAFvB94P,EAAO64P,IAKDp9P,EAAMgoB,OACZ,IAAK,SAEC,IAAI+C,KAAKxmB,GAnDnBq3P,GAoDoBr3P,GAlDlB,SAAU6D,EAAGkM,GAOX,GAEF,KA0CgB/P,IAEVvE,EAAMgoB,MAAQ,MAEhB,SACF,IAAK,OAEEzjB,IACHvE,EAAMgoB,MAAQ,MAGhB,SACF,IAAK,KAEH,GAAI,iBAAiB+C,KAAKxmB,GAAO,CAC/BvE,EAAMgoB,MAAQ,OACd,KACF,CAEA,IAAKzjB,EACH,SAMF,GAHAvE,EAAMyoP,IAAM,IAAIF,GAAO,EAAG,EAAG,IAC7BvoP,EAAMgoB,MAAQ,OAEe,IAAzBzjB,EAAKZ,QAAQ,UAAe,CAC9B3D,EAAMyoP,IAAI9kN,GAAKp/B,EACf,QACF,CAGF,IAAK,MAEH,IAAKvE,EAAMyoP,IAAK,CACdzoP,EAAMgoB,MAAQ,SACd,QACF,CACA,IACEu0O,GAASh4P,EAAMvE,EAAMyoP,IAAKzoP,EAAM07P,YAChC,MAAOl5P,IAEPxC,EAAMyoP,IAAM,KACZzoP,EAAMgoB,MAAQ,SACd,QACF,CACAhoB,EAAMgoB,MAAQ,UACd,SACF,IAAK,UACH,CACE,MAAMs1O,GAAwC,IAAzB/4P,EAAKZ,QAAQ,UAKlC,IAAKY,GAAS+4P,IAAiBD,GAAuB,GAAQ,CAExDr9P,EAAMu9P,OAASv9P,EAAMyoP,KACvBzoP,EAAMu9P,MAAMv9P,EAAMyoP,KAGpBzoP,EAAMyoP,IAAM,KACZzoP,EAAMgoB,MAAQ,KACd,QACF,CACA,GAAkB,OAAdhoB,EAAMyoP,IACR,SAGEzoP,EAAMyoP,IAAI5vO,OACZ7Y,EAAMyoP,IAAI5vO,MAAQ,MAEpB7Y,EAAMyoP,IAAI5vO,MAAQtU,CACpB,CACA,SACF,IAAK,SAEEA,IACHvE,EAAMgoB,MAAQ,MAGtB,EACA,MAAOxlB,IAEa,YAAhBxC,EAAMgoB,OAAuBhoB,EAAMyoP,KAAOzoP,EAAMu9P,OAClDv9P,EAAMu9P,MAAMv9P,EAAMyoP,KAGpBzoP,EAAMyoP,IAAM,KAGZzoP,EAAMgoB,MAAwB,YAAhBhoB,EAAMgoB,MAAsB,YAAc,QAC1D,CACA,OAAO/nB,IACT,CAEAwC,KAAAA,GACE,MAAMzC,EAAQC,KACd,IAWE,IAPID,EAAMyoP,KAAuB,WAAhBzoP,EAAMgoB,SACrBhoB,EAAM6rC,QAAU,OAChB7rC,EAAMgH,SAKY,YAAhBhH,EAAMgoB,OAAuC,cAAhBhoB,EAAMgoB,MACrC,MAAM,IAAI/V,MAAM,+BAElB,MAAOzP,IACHxC,EAAM2oQ,gBACR3oQ,EAAM2oQ,eAAenmQ,GAEzB,CAKA,OAJIxC,EAAMw9P,SACRx9P,EAAMw9P,UAGDv9P,IACT,ECveF,MAAM+3W,GAAa,mBAGbv2S,GAAa,SACjB4lM,EACAC,GAEA,IADA7iQ,EAAgBwI,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAEnB,OACEo6P,EAAYnjQ,MAAMO,EAAUA,EAAW6iQ,EAAahnQ,UAAYgnQ,CAEpE,EA4BMj+P,GAAO,SAAUwP,GACrB,IAAIo/V,EAAO,KACP/1W,EAAI2W,EAAKvY,OACb,KAAO4B,GACL+1W,EAAe,GAAPA,EAAap/V,EAAK/U,aAAa5B,GAGzC,OAAQ+1W,IAAS,GAAGzqW,UACtB,EAIO,SAAS0qW,GACdhnT,EACA++C,EACAp3F,GAEA,OAAOxP,GAAK6nD,EAAU1jD,YAAcnE,GAAK4mG,EAAQziG,YAAcnE,GAAKwP,EACtE,CA0BO,SAASs/V,GACd3wG,EACAr1C,EACAu1C,EACAnuF,EACAskC,EACA8pD,EACAC,GAEA,MAAM3+M,EAAS,IAAIwyM,GAGbqM,EAAWhvC,GAAe,IAAIrkN,WAAW+yP,IAC5CpkQ,OACAE,QAAQ00W,GAAY,MACpBztW,MAAM,MACHo9O,EAAiB,GACjBwoH,EAAYh+I,EjB5Eb,SACLoK,GAGA,OAAOvM,GAAoBuM,EArCC,IAqCgC,GAF5CtvN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAGrB,CiBwEMmjN,CAA2B+B,EAAQoK,SAAUpK,EAAQ5D,WACrD,EACJ,IAGIs5C,EAHAE,EAAU,YACVqwG,EAAqB,EACrBC,EAAoB,EAEpBlwG,GAAW,EAEfl/M,EAAOs0M,MAAQ,SAAU9U,GAEvB,MAAM4f,EAASX,EAAOnuF,GACtB,IAAI+uF,EAAYZ,EAAOhyB,SAGvB,MAAM4iI,GAAyBF,EAAqBjI,GAAa,IAWjE,GARU,MAAN9nG,GAAAA,EAAQE,WACgBxnQ,IAAtBs3W,EAEF/vG,EAAYZ,EAAOhyB,SAAW2yB,EAAOj0P,MA9DrB,SAAUszP,EAAgBnuF,EAAI2uF,GACpD,IAAIG,EAASX,EAAOnuF,GAChBivF,EAASd,EAAOW,EAAOG,QAI3B,IAAKA,IAAYA,EAAOD,KAAOF,EAAOE,IAGpC,OAFAb,EAAOhyB,SAAWgyB,EAAOe,mBAAqBJ,EAAOj0P,WACrDi0P,EAAOE,KAAM,GAMf,KAAa,OAAbgwG,EAAO/vG,IAAA+vG,EAAQhwG,KAAK,KAAAgwG,EAClB7wG,EAAOhyB,UAAY2yB,EAAOj0P,MAAQo0P,EAAOp0P,MACzCi0P,EAAOE,KAAM,EACbF,EAASG,EACTA,EAASd,EAAOW,EAAOG,OACzB,CAEAd,EAAOe,mBAAqBP,CAC9B,CA0CQQ,CAAgBhB,EAAQnuF,EAAI++L,IAG5BA,EAAuB,CACzB,IAAKnmJ,EAEH,YADA01C,EAAe,IAAI51P,MAAM,mCAI3Bq2P,EAAYgwG,EAAwB5wG,EAAOe,kBAC7C,CAEA,MAAM9oP,EAAW8oO,EAAIx4I,QAAUw4I,EAAIv3L,UAC7BA,EACJo9S,GACoD,KAAjD7lH,EAAIv3L,UAAYo3M,EAAY+vG,GAChB,IAAbx6J,GACE,IACN4qC,EAAIv3L,UAAYpuD,KAAK2qB,IAAIyjC,EAAW,GACpCu3L,EAAIx4I,QAAUntG,KAAK2qB,IAAIyjC,EAAYvxC,EAAU,GAG7C,MAAM9G,EAAO4vO,EAAI5vO,KAAKzV,OAGtBqlP,EAAI5vO,KAAOqnE,mBAAmBl/C,mBAAmBnoB,IAG5C4vO,EAAI9kN,KACP8kN,EAAI9kN,GAAKu0U,GAAczvH,EAAIv3L,UAAWu3L,EAAIx4I,QAASp3F,IAGjD4vO,EAAIx4I,QAAU,GAChB03I,EAAK9mP,KAAK4nP,IAIdx/L,EAAO0/M,eAAiB,SAAUptP,GAChCssP,EAAetsP,GAGjB0tC,EAAOu0M,QAAU,WACXqK,EACFD,EAAcC,GAGhBF,EAAShgB,IAIXmgB,EAAStmQ,SAAS+C,IAChB,GAAI4jQ,EAAU,CAEZ,GAAI1mM,GAAWl9D,EAAM,oBAAqB,CAExC4jQ,GAAW,EAEX5jQ,EACGL,MAAM,IACNqG,MAAM,KACN/I,SAAS+jG,IACJ9jC,GAAW8jC,EAAW,UACxBwiK,EAAUxiK,EAAUrhG,MAAM,GACjBu9D,GAAW8jC,EAAW,aAC/B6yQ,EAAqBpiW,SAASuvF,EAAUrhG,MAAM,IAChD,IAEJ,IAEEm0W,EAnLe,SAAUv9O,GACjC,IAAI4hI,EAAK1mP,SAAS8kH,EAAW52H,OAAO,IACpC,MAAM0kQ,EAAO5yP,SAAS8kH,EAAW52H,OAAO,GAAI,IACtC2kQ,EAAO7yP,SAAS8kH,EAAW52H,OAAO,GAAI,IACtC0gG,EACJk2B,EAAWx6H,OAAS,EAChB0V,SAAS8kH,EAAWxsG,UAAU,EAAGwsG,EAAWn3H,QAAQ,OACpD,EAEN,IACGwzQ,GAAgBza,KAChBya,GAAgBvO,KAChBuO,GAAgBtO,KAChBsO,GAAgBvyK,GAEjB,MAAM3yF,MAAO,oCAAmC6oH,KAOlD,OAJA4hI,GAAM,IAAOkM,EACblM,GAAM,IAAYmM,EAClBnM,GAAM,KAAiB93J,EAEhB83J,CACT,CA4J8B87G,CAAiBzwG,GAAW,IAChD,MAAOxsP,GACPssP,EAAetsP,CACjB,CAEA,MACF,CAAoB,KAAThX,IACT4jQ,GAAW,EAEf,CAEAl/M,EAAOjiD,MAAMzC,EAAO,KAAK,IAG3B0kD,EAAOxmD,OACT,CC9MO,MAAMg2W,GAAc,iBAGrBC,GAAa,8CAGbC,GAAkB,kCAElBC,GAAkE,CACtE76U,KAAM,QACNs+N,OAAQ,SACRx+N,MAAO,MACPzpB,MAAO,QACPnQ,IAAK,OAGA,SAAS40W,GACd1hT,EACAg7J,EACAw1C,EACAC,GAEA,MAAMvgM,EAAU0zJ,GAAQ,IAAItmN,WAAW0iD,GAAU,CAAC,SAClD,GAAuB,IAAnBkQ,EAAQ/mE,OAEV,YADAsnQ,EAAc,IAAI31P,MAAM,+BAI1B,MAAM6mW,EAAWzxS,EAAQ99D,KAAKqiN,GAASkN,GAAelN,KAEhDmtJ,ElBvBD,SACLx8I,EACAtM,GAIA,OAAOD,GAAoBuM,EAAUtM,EAAW,GAHhChjN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GACLA,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GAGhB,CkBgBmB+rW,CAAqB7mJ,EAAQoK,SAAU,EAAGpK,EAAQ5D,WAEnE,IACEuqJ,EAASt3W,SAASy3W,GAAStxG,EAM/B,SAAmBsxG,EAAcF,GAC/B,MACMG,GADS,IAAI/wR,WACGC,gBAAgB6wR,EAAM,YACtCE,EAAKD,EAAOhyR,qBAAqB,MAAM,GAC7C,IAAKiyR,EACH,MAAM,IAAIlnW,MAAM,gBAElB,MAAMmnW,EAAkB,CACtBjmB,UAAW,GACXkmB,aAAc,EACdC,oBAAqB,EACrBC,SAAU,GAENC,EAAmBr2W,OAAO4pB,KAAKqsV,GAAiBhjW,QACpD,CAAC9D,EAAQnR,KACPmR,EAAOnR,GAAOg4W,EAAGnvW,aAAc,OAAM7I,MAAUi4W,EAAgBj4W,GACxDmR,IAET,CAAC,GAGGlP,EAAwC,aAAjC+1W,EAAGnvW,aAAa,aAEvByvW,EAAgBC,GACpBC,GAAqBR,EAAI,UAAW,UAEhCS,EAAiBF,GACrBC,GAAqBR,EAAI,SAAU,WAE/BU,EAAcF,GAAqBR,EAAI,OAAQ,WAErD,MAAO,GAAG5vW,IACPQ,KAAK8vW,GAAcC,IAClB,MAAMC,EAAUC,GAAeF,EAAY12W,GAE3C,IAAK22W,IAAYD,EAAWzxO,aAAa,SACvC,OAAO,KAET,MAAMn3E,EAAY+oT,GAChBH,EAAW9vW,aAAa,SACxBwvW,GAEI75V,EAAWs6V,GAAcH,EAAW9vW,aAAa,OAAQwvW,GAC/D,IAAIvpQ,EAAUgqQ,GAAcH,EAAW9vW,aAAa,OAAQwvW,GAC5D,GAAkB,OAAdtoT,EACF,MAAMgpT,GAAsBJ,GAE9B,GAAgB,OAAZ7pQ,EAAkB,CACpB,GAAiB,OAAbtwF,EACF,MAAMu6V,GAAsBJ,GAE9B7pQ,EAAU/+C,EAAYvxC,CACxB,CACA,MAAM8oO,EAAM,IAAIF,GAAOr3L,EAAY6nT,EAAU9oQ,EAAU8oQ,EAAUgB,GACjEtxH,EAAI9kN,GAAKu0U,GAAczvH,EAAIv3L,UAAWu3L,EAAIx4I,QAASw4I,EAAI5vO,MAEvD,MAIM5N,EAuDZ,SACE2pC,EACA5kB,EACAypV,GAEA,MAAMU,EAAQ,oCACd,IAAIC,EAAc,KAClB,MAAMC,EAAkB,CACtB,eACA,YACA,QACA,kBACA,WACA,cASIC,EAAwB,MAAN1lU,GAAAA,EAAQyzF,aAAa,SACzCzzF,EAAO5qC,aAAa,SACpB,KAEAswW,GAAmBb,EAAch/V,eAAe6/V,KAClDF,EAAcX,EAAca,IAG9B,OAAOD,EAAgBjkW,QAAO,CAACnL,EAAQE,KACrC,MAAM9H,EACJk3W,GAAevqV,EAAOmqV,EAAOhvW,IAC7BovW,GAAe3lU,EAAQulU,EAAOhvW,IAC9BovW,GAAeH,EAAaD,EAAOhvW,GAIrC,OAHI9H,IACF4H,EAAOE,GAAQ9H,GAEV4H,CAAM,GACZ,CAAC,EACN,CA/FqBuvW,CAJAZ,EAAeE,EAAW9vW,aAAa,WACxCyvW,EAAcK,EAAW9vW,aAAa,UAGRyvW,IACtC,UAAEt7U,GAAclzB,EACtB,GAAIkzB,EAAW,CAEb,MAAM6+N,EAAY47G,GAAqBz6U,GACnC6+N,IACFvU,EAAIuU,UAAYA,GAElBvU,EAAI6T,MAAQn+N,CACd,CAGA,OAFAxhB,GAAc8rO,EAAKx9O,GAEZw9O,CAAG,IAEX14N,QAAQ04N,GAAgB,OAARA,GACrB,CAjFwCgyH,CAAUxB,EAAMF,MACpD,MAAOx9V,GACPqsP,EAAcrsP,EAChB,CACF,CA+EA,SAASo+V,GACPz4L,EACAw5L,EACAC,GAEA,MAAM71W,EAASo8K,EAAYh6F,qBAAqBwzR,GAAY,GAC5D,OAAI51W,EACK,GAAGZ,MAAM6F,KAAKjF,EAAO+E,iBAAiB8wW,IAExC,EACT,CAEA,SAASjB,GAAuBkB,GAG9B,OAAOA,EAAexkW,QAAO,CAACykW,EAAMh0W,KAClC,MAAM88B,EAAK98B,EAAQmD,aAAa,UAIhC,OAHI25B,IACFk3U,EAAKl3U,GAAM98B,GAENg0W,CAAI,GACV,CAAC,EACN,CAEA,SAASb,GAAenzW,EAASzD,GAC/B,MAAO,GAAGc,MAAM6F,KAAKlD,EAAQghF,YAAYzxE,QAAO,CAACtD,EAAKlO,EAAM1C,KAAM,IAAA44W,EAChE,MAAsB,OAAlBl2W,EAAK6iF,UAAqBvlF,EACrB4Q,EAAM,KAEX,OAAJgoW,EAAIl2W,EAAKijF,aAALizR,EAAiBx6W,OACZ05W,GAAep1W,EAAMxB,GACnBA,EACF0P,EAAMlO,EAAK8iF,YAAYtkF,OAAOE,QAAQ,OAAQ,KAEhDwP,EAAMlO,EAAK8iF,WAAW,GAC5B,GACL,CA4CA,SAAS6yR,GAAe1zW,EAASqrM,EAAI/mM,GACnC,OAAKtE,GAGEA,EAAQk0W,eAAe7oK,EAAI/mM,GAC9BtE,EAAQ0zW,eAAeroK,EAAI/mM,GAHtB,IAKX,CAEA,SAAS+uW,GAAsBt1W,GAC7B,OAAO,IAAIqN,MAAO,kCAAiCrN,IACrD,CAEA,SAASq1W,GAAce,EAAoBxB,GACzC,IAAKwB,EACH,OAAO,KAET,IAAInzQ,EAAyB+0J,GAAeo+G,GAQ5C,OAPgB,OAAZnzQ,IACE6wQ,GAAW3tV,KAAKiwV,GAClBnzQ,EAQN,SAAwCmzQ,EAAoBxB,GAC1D,MAAMnjV,EAAIqiV,GAAWjvW,KAAKuxW,GACpB3hJ,GAAiB,EAAPhjM,EAAE,KAAkB,EAAPA,EAAE,IAAUmjV,EAASH,aAClD,OACe,MAAL,EAAPhjV,EAAE,IACU,IAAL,EAAPA,EAAE,KACK,EAAPA,EAAE,IACHgjM,EAASmgJ,EAASrmB,SAEtB,CAjBgB8nB,CAA+BD,EAAoBxB,GACpDb,GAAgB5tV,KAAKiwV,KAC9BnzQ,EAiBN,SAAwBmzQ,EAAoBxB,GAC1C,MAAMnjV,EAAIsiV,GAAgBlvW,KAAKuxW,GACzB33W,EAAQ0S,OAAOsgB,EAAE,IAEvB,OADaA,EAAE,IAEb,IAAK,IACH,OAAe,KAARhzB,EACT,IAAK,IACH,OAAe,GAARA,EACT,IAAK,KACH,OAAe,IAARA,EACT,IAAK,IACH,OAAOA,EAAQm2W,EAASrmB,UAC1B,IAAK,IACH,OAAO9vV,EAAQm2W,EAASD,SAE5B,OAAOl2W,CACT,CAlCgB63W,CAAeF,EAAoBxB,KAG1C3xQ,CACT,CCsgBA,SAASszQ,GACP1kM,GAEA,OAAIA,EAAMo1K,iBAEN,8BAA8B9gU,KAAK0rJ,EAAMo1K,kBACzC,8BAA8B9gU,KAAK0rJ,EAAMo1K,iBAElC,WAIJ,WACT,CAEA,SAAS9iF,GACPC,EACAC,GAKA,QACID,GACFA,EAAW9gB,OAASizH,GAAuClyG,IAC3D0tG,GAA8B1tG,EAAeD,EAEjD,CCtvBA,MAAMzW,GAUJ/lP,WAAAA,CAAY0zN,GAAU,KATdA,SAAG,OACHsyB,sBAAgB,OAChBrM,gBAAU,OACVpf,WAAK,OACL0rB,sBAAgB,OAChBrN,WAAK,OACLsN,gBAAU,OACVW,sBAAgB,EAGtBpzP,KAAKigO,IAAMA,EACXjgO,KAAKuyP,iBAAmBz8O,OAAOi9M,kBAC/B/yN,KAAKkmP,YAAc,EACnBlmP,KAAK8mO,MAAQ,KACb9mO,KAAKwyP,iBAAmB,GACxBxyP,KAAKmlP,WAAQrkP,EACbd,KAAKyyP,WAAa,KAElBzyP,KAAKqgO,mBACP,CAEO86I,mBAAAA,CAAoB/nH,GACzBpzP,KAAKozP,iBAAmBA,CAC1B,CAEO//G,OAAAA,GACDrzI,KAAKigO,KACPjgO,KAAKo7W,qBAEHp7W,KAAKmlP,OACPnlP,KAAK2yP,cAEP3yP,KAAK8mO,MAAQ,KACb9mO,KAAKyyP,WAAa,KAElBzyP,KAAKigO,IAAMjgO,KAAKozP,iBAAmB,IACrC,CAEU/yB,iBAAAA,GACR,MAAM,IAAEJ,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOgrF,uBAAwBt/N,KAAK4yP,sBAAuB5yP,MAClEigO,EAAIn5K,GAAGwtF,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,MACtDigO,EAAIn5K,GAAGwtF,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACtDigO,EAAIn5K,GAAGwtF,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACpDigO,EAAIn5K,GAAGwtF,GAAO4oF,cAAel9N,KAAK6wP,eAAgB7wP,MAClDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,KACxD,CAEUo7W,kBAAAA,GACR,MAAM,IAAEn7I,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOgrF,uBAAwBt/N,KAAK4yP,sBAAuB5yP,MACnEigO,EAAIxqI,IAAI6+C,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,MACvDigO,EAAIxqI,IAAI6+C,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACvDigO,EAAIxqI,IAAI6+C,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACrDigO,EAAIxqI,IAAI6+C,GAAO4oF,cAAel9N,KAAK6wP,eAAgB7wP,MACnDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,KACzD,CAEU4yP,qBAAAA,CACRxpO,EACAlU,GAGA,MAAMotN,EAAQtiO,KAAKigO,IAAI4F,OAAO3wN,EAAK49O,cAC/B9yP,KAAK6yP,eAAevwB,IACtBtiO,KAAKwyP,iBAAiB5xP,KAAK,CACzB4lO,QAASlE,EAAMkE,QACfnmN,OAAQiiN,EAAMjiN,OACd8E,MAAOm9M,EAAMn9M,OAGnB,CAEUorO,gBAAAA,CACRnnO,EACAlU,GAEAlV,KAAK8mO,MAAQ5xN,EAAK4xN,iBAAiBisB,iBAAmB79O,EAAK4xN,MAAQ,KACnE9mO,KAAKyyP,WAAa,KACdzyP,KAAKmlP,OAASnlP,KAAKigO,IAAI4F,OAAOxlO,QAChCL,KAAKizP,kBAET,CAEU/Q,gBAAAA,CACR94N,EACAlU,GAEA,MAAM+qN,EAAMjgO,KAAKigO,IACjBjgO,KAAKwyP,iBAAmB,GACxBxyP,KAAKkmP,WAAahxO,EAAKgxO,WACnBjmB,EAAIpoN,OAAO66O,sBAAwBx9O,EAAK0uM,OAE1C5jN,KAAKgzP,cAET,CAEQxO,eAAAA,CACNp7N,EACAlU,GAEIlV,KAAKmlP,OAAS+xB,GAAgBl3Q,KAAKuyP,mBACrCvyP,KAAKizP,kBAET,CAIUpC,cAAAA,CACRznO,EACAlU,GAEYlV,KAAKigO,IACTpoN,OAAO66O,sBAAwBx9O,EAAK0uM,OAE1C5jN,KAAKgzP,cAET,CAEU/Q,gBAAAA,GACRjiP,KAAK2yP,aACP,CAEAM,gBAAAA,GACE,GAAIjzP,KAAK8mO,MAAO,CACd,GAAI9mO,KAAKyzP,aAAe,GAAKzzP,KAAKwzP,YAAc,EAE9C,YADAxzP,KAAKyyP,WAAa,MAGpB,MAAM5sB,EAAS7lO,KAAKigO,IAAI4F,OACxB,GAAIA,EAAOxlO,OAAQ,CACjB,MAAM4/N,EAAMjgO,KAAKigO,IACXo7I,EAAWr7W,KAAKmzP,YAAYttB,EAAOxlO,OAAS,GAC9Cg7W,IAAar7W,KAAKuyP,kBACpB39M,GAAO6c,IACJ,+BAA8B4pT,MAAax1I,EAAOw1I,GAAUh7V,WAAWwlN,EAAOw1I,GAAU70I,qBAAqBxmO,KAAKwzP,cAAcxzP,KAAKyzP,eAG1IxzB,EAAIsyB,iBAAmB8oH,EAErBp7I,EAAIsyB,iBAAmBvyP,KAAKuyP,kBAC5BvyP,KAAKozP,kBAILpzP,KAAKozP,iBAAiBnS,kBAExBjhP,KAAKuyP,iBAAmBtyB,EAAIsyB,gBAC9B,CACF,CACF,CAKAY,WAAAA,CAAYE,GACV,MAAMxtB,EAAS7lO,KAAKigO,IAAI4F,OACxB,IAAKA,EAAOxlO,OACV,OAAQ,EAGV,MAAMizP,EAAcztB,EAAO/1M,QACzB,CAACwyM,EAAO1+N,IAAU5D,KAAK6yP,eAAevwB,IAAU1+N,GAASyvP,IAI3D,OADArzP,KAAKyyP,WAAa,KACXH,GAAmBiB,uBACxBD,EACAtzP,KAAKwzP,WACLxzP,KAAKyzP,YAET,CAEAT,YAAAA,GACMhzP,KAAKmlP,QAITnlP,KAAKuyP,iBAAmBz8O,OAAOi9M,kBAC/BnoL,KAAK2wM,cAAcv7O,KAAKmlP,OACxBnlP,KAAKmlP,MAAQv6M,KAAK8wM,YAAY17O,KAAKizP,iBAAiBzmO,KAAKxsB,MAAO,KAChEA,KAAKizP,mBACP,CAEAN,WAAAA,GACE3yP,KAAKwyP,iBAAmB,GACxBxyP,KAAKkmP,YAAc,EACnBlmP,KAAKuyP,iBAAmBz8O,OAAOi9M,kBAC3B/yN,KAAKmlP,QACPv6M,KAAK2wM,cAAcv7O,KAAKmlP,OACxBnlP,KAAKmlP,WAAQrkP,EAEjB,CAEA4yP,aAAAA,GACE,GAAI1zP,KAAKyyP,WACP,OAAOzyP,KAAKyyP,WAEd,MAAM3rB,EAAQ9mO,KAAK8mO,MACb6sB,EAAa,CACjBxuO,MAAO,EACP9E,OAAQ,GAGV,GAAIymN,EAAO,CACT,MAAM2rB,EAAa3rB,EAAM8sB,wBACzBD,EAAWxuO,MAAQstO,EAAWttO,MAC9BwuO,EAAWtzO,OAASoyO,EAAWpyO,OAC1BszO,EAAWxuO,OAAUwuO,EAAWtzO,SAGnCszO,EAAWxuO,MACTstO,EAAW70N,MAAQ60N,EAAW30N,MAAQgpM,EAAM3hN,OAAS,EACvDwuO,EAAWtzO,OACToyO,EAAW50N,OAAS40N,EAAW90N,KAAOmpM,EAAMzmN,QAAU,EAE5D,CAEA,OADArgB,KAAKyyP,WAAakB,EACXA,CACT,CAEA,cAAIH,GACF,OAAOxzP,KAAK0zP,gBAAgBvuO,MAAQnlB,KAAK+zP,kBAC3C,CAEA,eAAIN,GACF,OAAOzzP,KAAK0zP,gBAAgBrzO,OAASrgB,KAAK+zP,kBAC5C,CAEA,sBAAIA,GACF,IAAIhyC,EAAa,EACjB,IAAK/hN,KAAKigO,IAAIpoN,OAAOyjW,uBACnB,IACEv5J,EAAan3K,KAAKkpN,iBAClB,MAAOvxP,IACP,CAIJ,OAAOw/M,CACT,CAEQ8wC,cAAAA,CAAevwB,GAErB,OADyBtiO,KAAKwyP,iBACLxjF,MAAMusM,GAE3Bj5I,EAAMkE,UAAY+0I,EAAgB/0I,SAClClE,EAAMn9M,QAAUo2V,EAAgBp2V,OAChCm9M,EAAMjiN,SAAWk7V,EAAgBl7V,QAGvC,CAEA,6BAAOkzO,CACL1tB,EACA1gN,EACA9E,GAEA,GAAW,MAANwlN,IAAAA,EAAQxlO,OACX,OAAQ,EAqBV,IAAIwzP,EAAgBhuB,EAAOxlO,OAAS,EAEpC,MAAMm7W,EAAa34W,KAAK2qB,IAAIrI,EAAO9E,GACnC,IAAK,IAAIpe,EAAI,EAAGA,EAAI4jO,EAAOxlO,OAAQ4B,GAAK,EAAG,CACzC,MAAMqgO,EAAQuD,EAAO5jO,GACrB,IACGqgO,EAAMn9M,OAASq2V,GAAcl5I,EAAMjiN,QAAUm7V,KArBhDh5H,EAsBsBlgB,IArBtB8e,EAqB6Bvb,EAAO5jO,EAAI,KAdtCugP,EAASr9N,QAAUi8N,EAAUj8N,OAC7Bq9N,EAASniO,SAAW+gO,EAAU/gO,QAc9B,CACAwzO,EAAgB5xP,EAChB,KACF,CACF,CA5B4Bw5W,IAC1Bj5H,EACApB,EA4BF,OAAOyS,CACT,EC3QF,MAAM6nH,GAAgB,QA0BtB,MAAM3rG,GA4BJxjQ,WAAAA,CAAY0zN,GAAU,KAzBLA,SAAG,OACHpoN,YAAM,OAKfivN,MAAiC,KAAI,KACrC60I,iBAAqD,KAAI,KACzDC,wBAEJ,CAAC,EAAC,KACEprG,4BAAsC,EAAC,KACvCqrG,iBAA6C,GAAE,KAC/CC,yBAEJ,CAAC,EAAC,KACEC,kBAAqChsG,GAAcisG,kBACvD,CAACjsG,GAAcisG,mBACf,GAAE,KAEEpzJ,MAA4Bh0K,GAAOg0K,MAAMp8L,KAAKooB,GAAQ8mU,IAAc,KACpEjqT,IAA0B7c,GAAO6c,IAAIjlC,KAAKooB,GAAQ8mU,IAAc,KAChEp0Q,KAA2B1yD,GAAO0yD,KAAK96E,KAAKooB,GAAQ8mU,IAAc,KAClEpgW,MAA4Bs5B,GAAOt5B,MAAMkR,KAAKooB,GAAQ8mU,IAAc,KA6apEO,iBAAoB7yV,IAC1B,MAAM,aAAEunP,EAAY,SAAEh2C,GAAavxM,EAC7B8yV,EAAc,IAAG9yV,EAAMtkB,iCAAiC6rQ,KAI9D,GAHA3wQ,KAAK4oN,MAAMszJ,GAGM,OAAbvhJ,EAAJ,CAIA,IAAK36N,KAAK27W,iBAAkB,CAC1B,IAAIQ,EAAaj5W,OAAO4pB,KACtB9sB,KAAK47W,yBAEFO,EAAW97W,SACd87W,EAAap/B,GAAuB/8U,KAAK6X,SAE3C,MAAM+/T,EAAaukC,EAChB7yW,IAAIwzU,IACJhtT,QAAQ3nB,KAAQA,IACnBnI,KAAK27W,iBAAmB37W,KAAKo8W,oBAAoBxkC,EACnD,CAEA53U,KAAK27W,iBAAiBl8Q,MAAM48Q,IAC1B,MAAM7qG,EAAYkrE,GAAiC2/B,GAEnD,IAAI5+B,EACA6+B,EAEJ,GAAqB,SAAjB3rG,EAAyB,CAC3B,GAAIa,IAAchE,GAAW+uE,SAI3B,YAHAv8U,KAAKsnG,KACF,wBAAuBl+E,EAAMtkB,qCAAqC6rQ,8BAAyCa,KAKhH,MAAMzxK,EAAOg7H,GAAQ,IAAIvmN,WAAWmmN,IACpC,IACE,MACMg3I,EAAOrwB,GADA9F,GAAa5+T,KAAK7V,MAAMg5F,GAAMu/O,OAE3C,IAAKqyB,EACH,MAAM,IAAI3/V,MACP,wDAGLyrU,EAAQk0B,EAAKhkR,SAAS,EAAG,IACzB2uR,EAAkB9uG,GAAW+uE,SAC7B,MAAOjhU,GAEP,YADAtb,KAAKsnG,KAAM,GAAE40Q,2BAAoC5gW,IAEnD,CACF,KAAO,CACL,GACEk2P,IAAchE,GAAWiE,UACzBD,IAAchE,GAAWgvE,UAKzB,YAHAx8U,KAAKsnG,KACF,wBAAuBl+E,EAAMtkB,qCAAqC6rQ,8BAAyCa,KAKhH,MAAM+qG,ExEswBP,SACL5hJ,GAEA,MAAMvzJ,EAA4C,GAClD,GAAIuzJ,aAAoBrvL,YAAa,CACnC,MAAMjrC,EAASs6N,EAASjvL,WACxB,IAAIrkC,EAAS,EACb,KAAOA,EAAS,GAAKhH,GAAQ,CAC3B,MACMykV,EAAOP,GADA,IAAI33S,SAAS+tL,EAAUtzN,IAEpC+/D,EAAQxmE,KAAKkkV,GACbz9U,GAAUy9U,EAAK78U,IACjB,CACF,CACA,OAAOm/D,CACT,CwErxB4Bo1S,CAAe7hJ,GAE7B8hJ,EAAYF,EAAYzsV,QAC3Bg1T,KACGA,EAAKjI,UACPD,GAA6BkI,EAAKjI,YAAcrrE,IAGhDirG,EAAUp8W,OAAS,GACrBL,KAAKsnG,KACF,GAAE40Q,oBAA6BO,EAAUp8W,6CAA6CmxQ,KAI3F,MAAMkrG,EAAWD,EAAU,GAE3B,IAAKC,EAeH,YAbyB,IAAvBH,EAAYl8W,QACZk8W,EAAYvtM,MACT81K,IAAqCA,EAAKjI,WAG7C78U,KAAKsnG,KAAM,GAAE40Q,8CAEbl8W,KAAKyxD,IACF,YAAWyqT,SAAmBK,EAC5BjzW,KAAKw7U,GAASlI,GAA6BkI,EAAKjI,YAChDh2U,KAAK,6CAOd,GADAy1W,EAAkB1/B,GAA6B8/B,EAAS7/B,UAC/B,IAArB6/B,EAAS/xU,SAAiB+xU,EAASxnW,KACrC,GAAIonW,IAAoB9uG,GAAWiE,SAAU,CAC3C,MAAMpqQ,EAASq1W,EAASxnW,KAAK7U,OAAS,GACtCo9U,EAAQi/B,EAASxnW,KAAKy4E,SAAStmF,EAAQA,EAAS,GAClD,MAAWi1W,IAAoB9uG,GAAWgvE,YACxCiB,EAAQN,GAAkBu/B,EAASxnW,MAGzC,CAEA,IAAKonW,IAAoB7+B,EAEvB,YADAz9U,KAAKyxD,IAAK,oBAAmByqT,qBAA8B1qG,KAI7D,MAAMmrG,EAAWr+B,GAAYb,IACvB,yBAAEq+B,EAAwB,iBAAED,GAAqB77W,KAEvD,IAAI48W,EAA2Bd,EAAyBa,GACxD,IAAK,IAAI16W,EAAI,EAAGA,EAAI45W,EAAiBx7W,OAAQ4B,IAAK,CAEhD,MAAM46W,EAAahB,EAAiB55W,GAC9BmgN,EAAcy6J,EAAWz6J,YAC/B,IAAKA,EAAYq7H,MACf,SAEF,MAAMq/B,EAAcx+B,GAAYl8H,EAAYq7H,OAC5C,GACEk/B,IAAaG,IAC4C,IAAzD16J,EAAYhpJ,IAAI/1D,QAAQ,KAAM,IAAIK,QAAQi5W,GAC1C,CAEA,GADAC,EAA2Bd,EAAyBgB,GAChD16J,EAAY0iI,KACd,aAEKg3B,EAAyBgB,GAChC16J,EAAY0iI,KAAO,IAAItwU,WAAWmmN,GAClCvY,EAAYq7H,MAAQA,EACpBm/B,EAA2Bd,EAAyBa,GAClDC,EAAyBn9Q,MAAK,IACrBz/F,KAAK+8W,uCACVF,EACAlsG,EACAh2C,EACA,+BAGNiiJ,EAAyB/wL,OAAOvwK,GAAUtb,KAAK8xC,YAAYx2B,KAC3D,KACF,CACF,CAEA,IAAKshW,EAA0B,CAC7B,GAAIN,IAAoB9qG,EAItB,YAHAxxQ,KAAKyxD,IACF,aAAYyqT,WAAoBI,uCAAqD9qG,KAK1ForG,EAA2Bd,EAAyBa,GAClD38W,KAAKg9W,6BAA6B,CAACV,IAAkB78Q,MACnDw9Q,IAA8B,IAA7B,UAAEzrG,EAAS,UAAET,GAAWksG,EAAK,IAAAC,EAC5Bl9W,KAAKm9W,mBAEL,MAAM/6J,EAAc,IAAI6e,GACtB,cACA07I,EACqC,OAD7BO,EACRpgC,GAA2BtrE,IAAU0rG,EAAI,IAI3C,OAFA96J,EAAY0iI,KAAO,IAAItwU,WAAWmmN,GAClCvY,EAAYq7H,MAAQA,EACbz9U,KAAKo9W,oBAAoB5rG,EAAWT,GAAWtxK,MAAK,KACzDz/F,KAAKm9W,mBACL,MAAME,EAAoBr9W,KAAKs9W,6BAA6B,CAC1Dl7J,cACAovD,YACAT,cAEF,OAAO/wQ,KAAK+8W,uCACVM,EACA1sG,EACAh2C,EACA,2BACD,GACD,IAIRiiJ,EAAyB/wL,OAAOvwK,GAAUtb,KAAK8xC,YAAYx2B,IAC7D,IApLF,CAqLE,EACH,KAEOiiW,gBAAmBn0V,IACzBppB,KAAKyxD,IAAK,IAAGroC,EAAMtkB,cAAc,EA3mBjC9E,KAAKigO,IAAMA,EACXjgO,KAAK6X,OAASooN,EAAIpoN,OAClB7X,KAAKqgO,mBACP,CAEOhtF,OAAAA,GACLrzI,KAAKugO,sBACLvgO,KAAKo0Q,kBAEL,MAAMv8P,EAAS7X,KAAK6X,OACpBA,EAAOw5P,gCAAkC,KACzCx5P,EAAOs5P,gBAAkBt5P,EAAO2lW,6BAA0B18W,EAC1D+W,EAAOmlU,WAAanlU,EAAOy5P,iBAAmB,CAAC,EAE/CtxQ,KAAKigO,IAAMjgO,KAAK6X,OAAS7X,KAAK87W,yBAA2B,KAEzD97W,KAAKi8W,iBAAmBj8W,KAAKu9W,gBAAkB,IACjD,CAEQl9I,iBAAAA,GACNrgO,KAAKigO,IAAIn5K,GAAGwtF,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACzDA,KAAKigO,IAAIn5K,GAAGwtF,GAAO0oF,eAAgBh9N,KAAKo0Q,gBAAiBp0Q,MACzDA,KAAKigO,IAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MAC7DA,KAAKigO,IAAIn5K,GAAGwtF,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,KAC7D,CAEQugO,mBAAAA,GACNvgO,KAAKigO,IAAIxqI,IAAI6+C,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MAC1DA,KAAKigO,IAAIxqI,IAAI6+C,GAAO0oF,eAAgBh9N,KAAKo0Q,gBAAiBp0Q,MAC1DA,KAAKigO,IAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MAC9DA,KAAKigO,IAAIxqI,IAAI6+C,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,KAC9D,CAEQuxQ,mBAAAA,CAAoBC,GAC1B,MAAM,WAAEwrE,EAAU,mBAAE9rE,GAAuBlxQ,KAAK6X,OAC1C4lW,EAAyBzgC,EAAWxrE,GAE1C,OAAIisG,EACKA,EAAuBC,WAI5BlsG,IAAchE,GAAWiE,UAAYP,EAChCA,OADT,CAGF,CAEQysG,0BAAAA,CAA2BnsG,GACjC,MAAM/oP,EAAMzoB,KAAKuxQ,oBAAoBC,GACrC,QAAY1wQ,IAAR2nB,EACF,MAAM,IAAIzW,MACP,oDAAmDw/P,MAGxD,OAAO/oP,CACT,CAEQm1V,uBAAAA,CAAwBpsG,GAC9B,MAAM,WAAEwrE,GAAeh9U,KAAK6X,OACtB4lW,EAAyBzgC,EAAWxrE,GAE1C,GAAIisG,EACF,OAAOA,EAAuBI,qBAE9B79W,KAAKyxD,IAAK,+CAA8C+/M,MAE5D,CAEQssG,sBAAAA,CACN7gC,GAEA,MAAMp3G,EAAS7lO,KAAKigO,IAAI4F,OAClBk4I,EAAcA,CAAC36W,EAA2BnB,EAAGmU,MAC/ChT,GAASgT,EAAE1S,QAAQN,KAAWnB,EAC5B0vQ,EAAc9rC,EACjBv8N,KAAKg5N,GAAUA,EAAMhnB,aACrBxrL,OAAOiuV,GACJnsG,EAAc/rC,EACjBv8N,KAAKg5N,GAAUA,EAAMnlB,aACrBrtL,OAAOiuV,GAKV,OAJIpsG,EAAYtxQ,OAASuxQ,EAAYvxQ,SAAW,GAC9CuxQ,EAAYhxQ,KAAK,eAGZ,IAAIk2C,SACT,CACEnD,EAIA0yB,KAEA,MAAM23S,EAAW7B,IACf,MAAM3qG,EAAY2qG,EAAW3tV,QAC7BxuB,KAAKi+W,oBAAoBzsG,EAAWG,EAAaC,GAC9CnyK,MAAMsxK,GAAcp9N,EAAQ,CAAE69N,YAAWT,gBACzCllF,OAAOvwK,IACF6gW,EAAW97W,OACb29W,EAAQ7B,GAER91S,EADS/qD,aAAiB4iW,GACnB5iW,EAGL,IAAI4iW,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAa42C,qBACtBl4P,QACAq/L,OAAO,GAETr/L,EAAMg4B,SAGZ,GACA,EAEN0qU,EAAQ/gC,EAAoB,GAGlC,CAEQrtE,2BAAAA,CACN4B,EACA2sG,GAEA,MAAM,gCAAE9sG,GAAoCrxQ,KAAK6X,OACjD,GAAiD,oBAApCw5P,EAAiD,CAC5D,IAAI+sG,EAAc,4DAA2D/sG,IAO7E,OALkC,OAAhCzB,IAC2B,UAA3BhlO,KAAKjjB,SAASuqC,WAEdksT,EAAc,iFAAgFz2V,SAASuqC,YAElGpb,QAAQuvB,OAAO,IAAIr0D,MAAMosW,GAClC,CAEA,OAAO/sG,EAAgCG,EAAW2sG,EACpD,CAEQF,mBAAAA,CACNzsG,EACAG,EACAC,GAGA,MAAMC,E5E1IH,SACLL,EACAG,EACAC,EACAN,GAEA,IAAI+sG,EACJ,OAAQ7sG,GACN,KAAKhE,GAAW+uE,SACd8hC,EAAgB,CAAC,OAAQ,QACzB,MACF,KAAK7wG,GAAWiE,SAChB,KAAKjE,GAAWgvE,UACd6hC,EAAgB,CAAC,QACjB,MACF,KAAK7wG,GAAW8uE,SACd+hC,EAAgB,CAAC,OAAQ,UACzB,MACF,QACE,MAAM,IAAIrsW,MAAO,uBAAsBw/P,KAE3C,OAQF,SACE6sG,EACA1sG,EACAC,EACAN,GAqBA,MAAO,CAnByC,CAC9C+sG,cAAeA,EACfC,gBAAiBhtG,EAAiBgtG,iBAAmB,WACrDC,sBAAuBjtG,EAAiBitG,uBAAyB,WACjEC,aAAcltG,EAAiBktG,cAAgB,CAC7CltG,EAAiBmtG,aAAe,aAElC1sG,kBAAmBJ,EAAYroQ,KAAKyyM,IAAK,CACvCljI,YAAc,sBAAqBkjI,KACnCk2D,WAAYX,EAAiBY,iBAAmB,GAChDwsG,iBAAkBptG,EAAiBqtG,uBAAyB,SAE9D3sG,kBAAmBJ,EAAYtoQ,KAAKyyM,IAAK,CACvCljI,YAAc,sBAAqBkjI,KACnCk2D,WAAYX,EAAiBa,iBAAmB,GAChDusG,iBAAkBptG,EAAiBstG,uBAAyB,UAKlE,CAlCSC,CACLR,EACA1sG,EACAC,EACAN,EAEJ,C4E+GkCwtG,CAC5BttG,EACAG,EACAC,EACA5xQ,KAAK6X,OAAOy5P,kBAERsqG,EACJ57W,KAAK47W,wBAAwBpqG,GAC/B,IAAIutG,EAAkB,MAAAnD,OAAA,EAAAA,EAAyBmD,gBAC/C,IAAKA,EAAiB,CACpB/+W,KAAKyxD,IACF,+BAA8B+/M,qCAA6C50P,KAAKjW,UAC/EkrQ,MAGJktG,EAAkB/+W,KAAK4vQ,4BACrB4B,EACAK,GAEF,MAAMmtG,EACHh/W,KAAK47W,wBAAwBpqG,GAAa,CACzCutG,mBAOJ,OALAA,EAAgBlzL,OAAOvwK,IACrBtb,KAAKyxD,IACF,0CAAyC+/M,OAAel2P,IAC1D,IAEIyjW,EAAgBt/Q,MAAM8yK,IAC3BvyQ,KAAKyxD,IACF,0BAAyB8gN,EAAqBf,uBAGjD,MAAMytG,EAAqBj/W,KAAKk/W,uBAAuB1tG,GAyBvD,OAvBAxxQ,KAAKyxD,IAAK,0BAAyB+/M,MACnCwtG,EAAwBjuG,UAAYwB,EACjCK,kBACAnzK,MAAMsxK,IACL/wQ,KAAKyxD,IAAK,2BAA0B+/M,MAC7BytG,EAAmBx/Q,MAAM0/Q,GAC1BA,EACKn/W,KAAKo/W,8BACVruG,EACAS,EACA2tG,GAGGpuG,OAIbiuG,EAAwBjuG,UAAUllF,OAAOvwK,IACvCtb,KAAKsb,MACF,oCAAmCk2P,QAAgBl2P,IACrD,IAGI0jW,EAAwBjuG,SAAS,GAE5C,CACA,OAAOguG,EAAgBt/Q,MAAK,IAAMm8Q,EAAwB7qG,WAC5D,CAEQusG,4BAAAA,CAA4B+B,GAQT,IARU,YACnCj9J,EAAW,UACXovD,EAAS,UACTT,GAKDsuG,EACCr/W,KAAKyxD,IACF,gCAA+B+/M,aAAqB8sE,GACnDl8H,EAAYq7H,OAAU,OAI1B,MAAM3qE,EAAmB/B,EAAUgC,gBAE7BusG,EAAiD,CACrDl9J,cACAovD,YACAT,YACA+B,mBACAysG,UAAW,kBAKb,OAFAv/W,KAAK67W,iBAAiBj7W,KAAK0+W,GAEpBA,CACT,CAEQE,eAAAA,CAAgBF,GACtB,MAAMl9J,EAAck9J,EAAuBl9J,YAC3C,GAAIA,EAAY0iI,KAAM,CACpB,MAAMu4B,EAAoBr9W,KAAKs9W,6BAC7BgC,GAEI7hC,EAAQz9U,KAAKy/W,eAAer9J,GAC5BjrI,EAAS,OACfn3E,KAAK87W,yBAAyBr+B,GAC5Bz9U,KAAK+8W,uCACHM,EACAlmS,EACAirI,EAAY0iI,KACZ,UAEN,MACE9kV,KAAKsnG,KAAM,2DAEbtnG,KAAK0/W,cAAcJ,EACrB,CAEQG,cAAAA,CAAer9J,GACrB,IAAKA,EACH,MAAM,IAAIpwM,MAAM,iDAElB,GAA0B,OAAtBowM,EAAYq7H,MACd,MAAM,IAAIzrU,MAAM,iBAElB,OAAOssU,GAAYl8H,EAAYq7H,MACjC,CAEQkiC,gBAAAA,CACNL,EACApqW,GACe,IAAA0qW,EACf,MAAM3sG,EAAaqsG,EAAuBxsG,iBAO1C,OANA9yQ,KAAKyxD,IACF,yBAAwBwhN,EAAWC,wBAAwBorE,IACxB,OAAlCshC,EAAAN,EAAuBl9J,kBAAW,EAAlCw9J,EAAoCniC,QAAU,8BAE9BvoU,EAAOA,EAAKw2B,WAAax2B,MAEtC+9P,EAAW3mO,OAAOp3B,EAC3B,CAEO2qW,qBAAAA,CAAsB/3J,GAC3B,MAAM8vH,EAAa10U,OAAO4pB,KAAKg7L,EAAKyvH,WAAa,CAAC,GASlD,OARKv3U,KAAK27W,mBACR37W,KAAKyxD,IACF,2CAA0Cq2J,EAAK2G,MAAM3G,EAAKhjN,SACzDgjN,EAAKwa,sBACUs1G,EAAW/wU,KAAK,SAEnC7G,KAAK27W,iBAAmB37W,KAAKo8W,oBAAoBxkC,IAE5C53U,KAAK27W,gBACd,CAEQS,mBAAAA,CACNxkC,GAEA,OAAO,IAAI9gS,SAAQ,CAACnD,EAAS0yB,KAC3B,MAAMy5S,EAAqB/iC,GAAuB/8U,KAAK6X,QACjDolU,EAAsBrF,EACzBtuU,IAAIozU,IACJ5sT,QACE1sB,KAAYA,IAAgD,IAAvC08W,EAAmBp8W,QAAQN,KAErD,OAAOpD,KAAKg9W,6BAA6B//B,GACtCx9O,MAAKsgR,IAAmB,IAAlB,UAAEvuG,GAAWuuG,EAClB,MAAM1D,EAAkBv/B,GAA2BtrE,GAC/C6qG,EACF1oU,EAAQ0oU,GAERh2S,EACE,IAAIr0D,MAAO,yCAAwCw/P,MAEvD,IAED3lF,MAAMxlH,EAAO,GAEpB,CAEO25S,OAAAA,CAAQ9qW,GACb,MAAMktM,EAAcltM,EAAK+qW,QAAQ79J,YAE3Bq7H,EAAQz9U,KAAKy/W,eAAer9J,GAC5B89J,EAAc,WAAUziC,cAAkBr7H,EAAY21H,sBAAsB31H,EAAYjwJ,eAAeiwJ,EAAYhpJ,OAEzHp5D,KAAKyxD,IAAK,4BAA2ByuT,KAErC,IAAItD,EAA2B58W,KAAK87W,yBAAyBr+B,GA+B7D,OA9BKm/B,IACHA,EAA2B58W,KAAK87W,yBAAyBr+B,GACvDz9U,KAAKmgX,0BAA0B/9J,GAAa3iH,MAC1C2gR,IAA8B,IAA7B,UAAE5uG,EAAS,UAAET,GAAWqvG,EAMvB,OALApgX,KAAKm9W,mBACLn9W,KAAKyxD,IACF,8BAA6Bv8C,EAAK4yM,KAAK2G,MAAMv5M,EAAK4yM,KAAKhjN,SAASoQ,EAAK4yM,KAAKwa,mBAAmB49I,KAGzFlgX,KAAKo9W,oBAAoB5rG,EAAWT,GAAWtxK,MAAK,KACzDz/F,KAAKm9W,mBACL,MAAME,EAAoBr9W,KAAKs9W,6BAA6B,CAC1D9rG,YACAT,YACA3uD,gBAGF,OAAOpiN,KAAK+8W,uCACVM,EAFa,OAIbj7J,EAAY0iI,KACZ,eACD,GACD,IAIR83B,EAAyB/wL,OAAOvwK,GAAUtb,KAAK8xC,YAAYx2B,MAGtDshW,CACT,CAEQO,gBAAAA,GACN,IAAKn9W,KAAKigO,IACR,MAAM,IAAIjuN,MAAM,gBAEpB,CAEQ8/B,WAAAA,CAAYx2B,GACbtb,KAAKigO,MAGVjgO,KAAKsb,MAAMA,EAAMg4B,SACbh4B,aAAiB4iW,GACnBl+W,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAOj/L,EAAMpG,MAErClV,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAai0C,mBACtBv1P,QACAq/L,OAAO,IAGb,CAEQwlK,yBAAAA,CACN/9J,GAEA,MAAMq7H,EAAQz9U,KAAKy/W,eAAer9J,GAC5Bk9J,EAAyBt/W,KAAK87W,yBAAyBr+B,GAC7D,IAAK6hC,EAAwB,CAC3B,MAAM9tG,EAAYkrE,GAChBt6H,EAAY21H,WAERkF,EAAsBzrE,EACxB,CAACA,GACDurE,GAAuB/8U,KAAK6X,QAChC,OAAO7X,KAAK89W,uBAAuB7gC,EACrC,CACA,OAAOqiC,CACT,CAEQtC,4BAAAA,CACN//B,GAKA,GAHKA,EAAoB58U,SACvB48U,EAAsBF,GAAuB/8U,KAAK6X,SAEjB,IAA/BolU,EAAoB58U,OACtB,MAAM,IAAI69W,GACR,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAayjJ,iCACtB1lK,OAAO,GAER,oDAAmD/9L,KAAKjW,UAAU,CACjEq2U,WAAYh9U,KAAK6X,OAAOmlU,gBAI9B,OAAOh9U,KAAK89W,uBAAuB7gC,EACrC,CAsMQmgC,mBAAAA,CACN5rG,EACAT,GAEA,MAAMp8E,EAAQ30L,KAAK+7W,kBAAkB93W,QAErCjE,KAAKyxD,IAAK,2BAA0B+/M,MAGpC,MAAM8uG,EAAsBxpU,QAAQ+sF,IAAI8wD,GAAOl1F,MAAK,KAClD,IAAKz/F,KAAK8mO,MACR,MAAM,IAAI90N,MACR,6DAGJ,OAAOhS,KAAK8mO,MAAMwsC,aAAavC,EAAU,IAG3C,OADA/wQ,KAAK+7W,kBAAkBn7W,KAAK0/W,GACrBA,EAAoB7gR,MAAK,KAC9Bz/F,KAAKyxD,IAAK,uBAAsB+/M,MAChC78E,EAAM/zL,KAAK0/W,GACXtgX,KAAK+7W,kBAAoB/7W,KAAK+7W,kBAAkBjsV,QAC7CuG,IAA4B,IAAtBs+J,EAAMjxL,QAAQ2yB,IACtB,GAEL,CAEQ0mV,sCAAAA,CACNniT,EACA+1M,EACAh2C,EACAxzM,GAKyC,IAAAo5V,EAAAC,EACzC,MAAMC,EACkB,OADGF,EACzBvgX,KAAK6X,OAAOmlU,aAA+B,OAArBwjC,EAAtBD,EAAyB3lT,EAAQ42M,iBAAX,EAAtBgvG,EAA6C7sG,gBAC/C,GAAI8sG,EACF,IACE,MAAMC,EACJD,EAAsB32W,KAAK9J,KAAKigO,IAAK0wC,EAAch2C,EAAU//J,GAC/D,IAAK8lT,EACH,MAAM,IAAI1uW,MACR,2DAGJ2+P,EAAe+vG,EAAe/vG,aAC9Bh2C,EAAW//J,EAAQwnJ,YAAY0iI,KAAO47B,EAAe/lJ,SACjD,IAAInmN,WAAWksW,EAAe/lJ,UAC9B,KACJ,MAAOr/M,GAAO,IAAAqlW,EAEd,GADA3gX,KAAKsnG,KAAKhsF,EAAMg4B,SACZ,OAAJqtU,EAAI3gX,KAAKigO,MAAL0gJ,EAAU9oW,OAAO+wM,MACnB,MAAMttM,CAEV,CAGF,GAAiB,OAAbq/M,EAEF,OADA36N,KAAKyxD,IAAK,qCAAoCtqC,oBACvC2vB,QAAQnD,QAAQinB,GAGzB,MAAM6iR,EAAQz9U,KAAKy/W,eAAe7kT,EAAQwnJ,aAC1CpiN,KAAKyxD,IACF,uCAAsCtqC,OAAYs2T,sBAA0B9sE,aAC3Eh2C,EAAWA,EAASjvL,WAAa,SAIrC,MAAMk1U,EAAgB,IAAI1tT,GAEpBu1I,EAAa7tI,EAAQimT,WAAcz3V,IACvC,MAAM6pP,EAAar4M,EAAQk4M,iBAC3B,IAAKG,EAEH,YADA2tG,EAAcpyT,KAAK,QAAS,IAAIx8C,MAAM,kBAGxC,MAAM,YAAE63C,EAAW,QAAEvW,GAAYlqB,EACjCppB,KAAKyxD,IACF,IAAG5H,iCAA2CopN,EAAWC,4BAA4B5/N,EAAQ5H,cAG9E,oBAAhBme,GACgB,oBAAhBA,EAEA7pD,KAAK8gX,aAAalmT,EAAStnB,GAASu4I,OAAOvwK,IACzCtb,KAAK8xC,YAAYx2B,GACjBslW,EAAcpyT,KAAK,QAASlzC,EAAM,IAEX,oBAAhBuuC,EACL+Q,EAAQ42M,YAAchE,GAAW+uE,WACnCv8U,KAAK2/W,iBAAiB/kT,EAASshR,GAAe,iBAC9Cl8U,KAAK0/W,cAAc9kT,IAGrB56D,KAAKsnG,KAAM,qCAAoCz9C,KACjD,EAGIk3T,EAAuBnmT,EAAQomT,qBACnC53V,IAGA,IADmBwxC,EAAQk4M,iBAGzB,YADA8tG,EAAcpyT,KAAK,QAAS,IAAIx8C,MAAM,kBAGxChS,KAAKihX,kBAAkBrmT,GACvB,MAAM2kT,EAAY3kT,EAAQ2kT,UAC1BqB,EAAcpyT,KAAK,YAAa+wT,GACd,YAAdA,IACFv/W,KAAKsnG,KAAM,GAAE1sC,EAAQ42M,6BAA6BisE,KAClDz9U,KAAKw/W,gBAAgB5kT,GACvB,EAGFA,EAAQk4M,iBAAiB1oP,iBAAiB,UAAWq+K,GACrD7tI,EAAQk4M,iBAAiB1oP,iBACvB,oBACA22V,GAGF,MAAMG,EAAmB,IAAIpqU,SAC3B,CAACnD,EAAiC0yB,KAChCu6S,EAAc95T,GAAG,QAASuf,GAE1Bu6S,EAAc95T,GAAG,aAAcy4T,IACzBA,EAAU/9S,WAAW,UACvB7tB,IACuB,sBAAd4rU,EACTl5S,EACE,IAAI63S,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAaukJ,oCACtBxmK,OAAO,GAET,iCAGmB,mBAAd4kK,EACTl5S,EACE,IAAI63S,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAawkJ,iCACtBzmK,OAAO,GAER,0BAAyB4kK,OAGP,YAAdA,EACTl5S,EAAO,IAAIr0D,MAAM,yCAEjBhS,KAAKsnG,KAAM,gCAA+Bi4Q,KAC5C,GACA,IAIN,OAAO3kT,EAAQk4M,iBACZa,gBAAgBhD,EAAch2C,GAC9Bl7H,MAAK,KAAM,IAAA4hR,EACVrhX,KAAKyxD,IACF,sCAA6D,OAA1B4vT,EAAEzmT,EAAQk4M,uBAAgB,EAAxBuuG,EAA0BnuG,qBAAqBuqE,IACtF,IAEF5xJ,OAAOvwK,IACN,MAAM,IAAI4iW,GACR,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAa62C,sBACtBn4P,QACAq/L,OAAO,GAER,yCAAwCr/L,IAC1C,IAEFmkF,MAAK,IAAMyhR,IACXr1L,OAAOvwK,IAGN,MAFAslW,EAAc3jT,qBACdj9D,KAAK0/W,cAAc9kT,GACbt/C,CAAK,IAEZmkF,MAAK,KACJmhR,EAAc3jT,qBACPrC,IAEb,CAEQqmT,iBAAAA,CAAkB3B,GACxBA,EAAuBxsG,iBAAiBwuG,YAAY//W,SAClD,CAAC6vD,EAAwBqsR,KACvBz9U,KAAKyxD,IACF,sBAAqBL,6BAAkCktR,GACtD,WAAYb,EACR,IAAIjpU,WAAWipU,EAAM7xS,OAAQ6xS,EAAM5xS,WAAY4xS,EAAM/xS,YACrD,IAAIl3B,WAAWipU,sBACDa,GAClB,IAAI9pU,WAAW8qW,EAAuBl9J,YAAYq7H,OAAS,aACnD6hC,EAAuBl9J,YAAYhpJ,OAE/CkmT,EAAuBC,UAAYnuT,CAAM,GAG/C,CAEQ8tT,sBAAAA,CACN1tG,GAEA,MAAM35P,EAAS7X,KAAK6X,OAEd0pW,EAAa,IAAIz3I,EADRjyN,EAAO2qN,QACQ3qN,GACxB4Q,EAAMzoB,KAAK49W,wBAAwBpsG,GACzC,OAAK/oP,GAGLzoB,KAAKyxD,IAAK,oCAAmC+/M,MACtC,IAAI16N,SAAQ,CAACnD,EAAS0yB,KAC3B,MAAMqkK,EAA+B,CACnCp2K,aAAc,cACd7rC,OAEIulU,EAAan2U,EAAO2pW,eAAevqW,QACnCk0N,EAAoC,CACxC6iH,aACA3qU,QAAS2qU,EAAWQ,cACpBhkH,SAAU,EACVn6K,WAAY,EACZo6K,cAAe,GAEXW,EAAkD,CACtDC,UAAWA,CAAC7pL,EAAUq2K,EAAOj9J,EAAS8wK,KACpC/3L,EAAQ6N,EAAStsC,KAAoB,EAEvCgjK,QAASA,CAAC12H,EAAUigU,EAAQ/1I,EAAgB7T,KAC1CxxJ,EACE,IAAI63S,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QACEmiB,GAAa8kJ,6CACf/mK,OAAO,EACP+wB,iBACAlqL,SAAQy9R,GAAA,CACNx2T,IAAKiiN,EAAcjiN,IACnBvT,UAAMpU,GACH0gD,IAGN,IAAGgwN,kCAA0C/oP,eAAiB+4B,EAAS1gB,SAAS0gB,EAAS5oC,SAE7F,EAEH4yN,UAAWA,CAAC3T,EAAOj9J,EAAS8wK,KAC1BrlK,EACE,IAAI63S,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QACEmiB,GAAa8kJ,6CACf/mK,OAAO,EACP+wB,iBACAlqL,SAAU,CACR/4B,IAAKiiN,EAAcjiN,IACnBvT,UAAMpU,IAGT,IAAG0wQ,qCAA6C/oP,MAEpD,EAEH82U,QAASA,CAAC1nI,EAAOj9J,EAAS8wK,KACxBrlK,EAAO,IAAIr0D,MAAM,WAAW,GAGhCuvW,EAAWpnU,KAAKuwL,EAAeS,EAAcC,EAAgB,KA7DtDt0L,QAAQnD,SA+DnB,CAEQyrU,6BAAAA,CACNruG,EACAS,EACAmwG,GAEA,OAAO,IAAI7qU,SAAQ,CAACnD,EAAS0yB,KAC3B0qM,EACG6wG,qBAAqBD,GACrBliR,MAAM7jF,IACL5b,KAAKyxD,IACF,wBACC71C,EAAU,UAAY,2BACf,MAAJ+lW,OAAI,EAAJA,EAAMj2U,mBAAmB8lO,MAEhC79N,EAAQo9N,EAAU,IAEnBllF,OAAOvwK,IACN+qD,EACE,IAAI63S,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QACEmiB,GAAailJ,4CACfvmW,QACAq/L,OAAO,GAETr/L,EAAMg4B,SAET,GACD,GAER,CAEQwtU,YAAAA,CACNlmT,EACAi5M,GAEA,OAAO7zQ,KAAK8hX,eAAelnT,EAAS,IAAIpmD,WAAWq/P,IAAap0K,MAC7DvqF,GACQlV,KAAK2/W,iBAAiB/kT,EAAS,IAAIpmD,WAAWU,IAAO22K,OACzDvwK,IACC,MAAM,IAAI4iW,GACR,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAamlJ,iCACtBzmW,QACAq/L,OAAO,GAETr/L,EAAMg4B,QACP,KAKX,CAEQ0uU,yBAAAA,CACNzuT,EACA0uT,GAOA,MAAMC,EAAYn/W,OAAOC,aAAaqK,MACpC,KACA,IAAI8rI,YAAY8oO,EAAiBr2U,SAEnC,IAAKs2U,EAAU9zT,SAAS,uBAMtB,OADAmF,EAAIY,iBAAiB,eAAgB,2BAC9B8tT,EAET,MAAME,GAAgB,IAAIj6R,WAAYC,gBACpC+5R,EACA,mBAGIrgU,EAAUsgU,EAAcv4W,iBAAiB,cAC/C,GAAIi4C,EAAQxhD,OAAS,EAAG,CACtB,IAAIo/D,EACJ,IAAK,IAAIx9D,EAAI,EAAG8Q,EAAM8uC,EAAQxhD,OAAQ4B,EAAI8Q,EAAK9Q,IAAK,KAAAmgX,EAAAC,EAClD5iT,EAAS5d,EAAQ5/C,GACjB,MAAMiJ,EAAO,OAAHk3W,EAAG3iT,EAAOhzD,cAAc,cAArB,EAAA21W,EAA8B36R,YACrCrkF,EAAQ,OAAHi/W,EAAG5iT,EAAOhzD,cAAc,eAArB,EAAA41W,EAA+B56R,YACzCv8E,GAAQ9H,GACVmwD,EAAIY,iBAAiBjpD,EAAM9H,EAE/B,CACF,CACA,MAAMk/W,EAAmBH,EAAc11W,cAAc,aAC/C81W,EAAgB,MAAAD,OAAA,EAAAA,EAAkB76R,YACxC,IAAK86R,EACH,MAAM,IAAIvwW,MAAO,0CAEnB,OAAOkqU,GAAeR,KAAK6mC,GAC7B,CAEQC,eAAAA,CACNjvT,EACA9qC,EACA4qP,EACA4uG,GAEA,MAAM9wG,EAAkBnxQ,KAAK6X,OAAOs5P,gBAEpC,OAAKA,EAMEr6N,QAAQnD,UACZ8rD,MAAK,KACJ,IAAK4zK,EAAajxD,YAChB,MAAM,IAAIpwM,MAAM,eAElB,OAAOm/P,EAAgBrnQ,KACrB9J,KAAKigO,IACL1sK,EACA9qC,EACA4qP,EACA4uG,EACD,IAEFp2L,OAAOvwK,IACN,IAAK+3P,EAAajxD,YAEhB,MAAM9mM,EAKR,OAFAi4C,EAAIjyB,KAAK,OAAQ7Y,GAAK,GAEf0oP,EAAgBrnQ,KACrB9J,KAAKigO,IACL1sK,EACA9qC,EACA4qP,EACA4uG,EACD,IAEFxiR,MAAMgjR,IAEAlvT,EAAIG,YACPH,EAAIjyB,KAAK,OAAQ7Y,GAAK,GAKxB,MAAO,CAAE8qC,MAAK0uT,iBAHgBQ,GAE1BR,EACmD,KA1CzD1uT,EAAIjyB,KAAK,OAAQ7Y,GAAK,GAEfquB,QAAQnD,QAAQ,CAAE4f,MAAK0uT,qBA0ClC,CAEQH,cAAAA,CACNzE,EACA4E,GAEA,MAAMS,EAAgB1iX,KAAK6X,OAAO6qW,cAAczrW,QAChD,OAAO,IAAI6/B,SAAQ,CAACnD,EAAS0yB,KAC3B,MAAM59C,EAAMzoB,KAAK29W,2BAA2BN,EAAkB7rG,WAC9DxxQ,KAAKyxD,IAAK,mCAAkChpC,KAC5C,MAAM8qC,EAAM,IAAIC,eAChBD,EAAIe,aAAe,cACnBf,EAAI2tC,mBAAqB,KACvB,IAAKlhG,KAAKigO,MAAQo9I,EAAkBvqG,iBAClC,OAAOzsM,EAAO,IAAIr0D,MAAM,kBAE1B,GAAuB,IAAnBuhD,EAAIG,WACN,GAAmB,MAAfH,EAAInC,OAAgB,CACtBpxD,KAAKwwQ,4BAA8B,EACnC,IAAIt7P,EAAOq+C,EAAI/R,SACfxhD,KAAKyxD,IACF,oBACCv8C,aAAgBo2B,YAAcp2B,EAAKw2B,WAAax2B,KAGpD,MAAMsoW,EAA0Bx9W,KAAK6X,OAAO2lW,wBAC5C,GAAIA,EACF,IACEtoW,EAAOsoW,EAAwB1zW,KAC7B9J,KAAKigO,IACL1sK,EACA9qC,EACA40V,GAEF,MAAO/hW,GACPtb,KAAKsb,MAAMA,EACb,CAEFq4B,EAAQz+B,EACV,KAAO,CACL,MAAM4gV,EAAc4sB,EAAct0B,WAC5BM,EAAcoH,EAAcA,EAAYpH,YAAc,EAE5D,GADA1uV,KAAKwwQ,8BAEHxwQ,KAAKwwQ,4BAA8Bk+E,GAClCn7R,EAAInC,QAAU,KAAOmC,EAAInC,OAAS,IAEnCiV,EACE,IAAI63S,GACF,CACEp5W,KAAM63N,GAAWi0C,iBACjBn2D,QAASmiB,GAAam3C,kCACtBp5D,OAAO,EACP+wB,eAAgBn4K,EAChB/R,SAAU,CACR/4B,MACAvT,UAAMpU,EACNggC,KAAMyyB,EAAInC,OACVx4C,KAAM26C,EAAIM,aAGb,+BAA8BprC,eAAiB8qC,EAAInC,WAAWmC,EAAIM,oBAGlE,CACL,MAAMmgN,EACJ06E,EAAc1uV,KAAKwwQ,4BAA8B,EACnDxwQ,KAAKsnG,KACF,6BAA4B0sK,mBAE/Bh0Q,KAAK8hX,eAAezE,EAAmB4E,GAAkBxiR,KACvD9rD,EACA0yB,EAEJ,CACF,CACF,EAGAg3S,EAAkBsF,YAClBtF,EAAkBsF,WAAWjvT,aAAeF,eAAeM,MAE3DupT,EAAkBsF,WAAW3+S,QAE/Bq5S,EAAkBsF,WAAapvT,EAE/BvzD,KAAKwiX,gBAAgBjvT,EAAK9qC,EAAK40V,EAAmB4E,GAAkBxiR,MAClEmjR,IAA+B,IAA9B,IAAErvT,EAAG,iBAAE0uT,GAAkBW,EACpBvF,EAAkB7rG,WAAahE,GAAWgvE,YAC5CylC,EAAmBjiX,KAAKgiX,0BACtBzuT,EACA0uT,IAGJ1uT,EAAIvS,KAAKihU,EAAiB,GAE7B,GAEL,CAEQtgI,eAAAA,CACNv4N,EACAlU,GAEA,IAAKlV,KAAK6X,OAAOu5P,WACf,OAGF,MAAMtqC,EAAQ5xN,EAAK4xN,MAGnB9mO,KAAK8mO,MAAQA,EAEbA,EAAM3lI,oBAAoB,YAAanhG,KAAKi8W,kBAC5Cn1I,EAAM3lI,oBAAoB,gBAAiBnhG,KAAKu9W,iBAChDz2I,EAAM18M,iBAAiB,YAAapqB,KAAKi8W,kBACzCn1I,EAAM18M,iBAAiB,gBAAiBpqB,KAAKu9W,gBAC/C,CAEQnpG,eAAAA,GACN,MAAMttC,EAAQ9mO,KAAK8mO,MACbutC,EAAgBr0Q,KAAK67W,iBACvB/0I,IACFA,EAAM3lI,oBAAoB,YAAanhG,KAAKi8W,kBAC5Cn1I,EAAM3lI,oBAAoB,gBAAiBnhG,KAAKu9W,iBAChDv9W,KAAK8mO,MAAQ,MAGf9mO,KAAKwwQ,4BAA8B,EACnCxwQ,KAAK+7W,kBAAoB,GACzB/7W,KAAK67W,iBAAmB,GACxB77W,KAAK87W,yBAA2B,CAAC,EACjC76I,GAASyjH,wBAGT,MAAMm+B,EAAkBxuG,EAAch0Q,OACtC0vQ,GAAcisG,kBAAoBllU,QAAQ+sF,IACxCwwI,EACG/qQ,KAAKg2W,GACJt/W,KAAK0/W,cAAcJ,KAEpB10W,OACM,MAALk8N,OAAK,EAALA,EAAOwsC,aAAa,MAAMznF,OAAOvwK,IAC/Btb,KAAKyxD,IAAK,+BAA8Bn2C,IAAQ,MAIrDmkF,MAAK,KACAojR,IACF7iX,KAAKyxD,IAAI,yDACT4iN,EAAch0Q,OAAS,EACzB,IAEDwrL,OAAOvwK,IACNtb,KAAKyxD,IAAK,kDAAiDn2C,IAAQ,GAEzE,CAEQ4uN,iBAAAA,GACNlqO,KAAK27W,iBAAmB,IAC1B,CAEQl2H,gBAAAA,CACNr8N,EAA6B05V,GAE7B,IADA,YAAEj4B,GAAiCi4B,EAEnC,GAAKj4B,GAAgB7qV,KAAK6X,OAAOu5P,aAG5BpxQ,KAAK27W,iBAAkB,CAC1B,MAAM/jC,EAAiCiT,EAAY10U,QACjD,CAAC02G,EAA6Bo+N,MAEqC,IAA/Dp+N,EAAQnpH,QAAQunV,EAAWlT,YAE3BlrN,EAAQjsH,KAAKqqV,EAAWlT,WAEnBlrN,IAET,IAEF7sH,KAAKyxD,IACF,0CAAyCmmR,EAAW/wU,KAAK,SAE5D7G,KAAK27W,iBAAmB37W,KAAKo8W,oBAAoBxkC,EACnD,CACF,CAEQ8nC,aAAAA,CACNJ,GAEA,MAAM,iBAAExsG,EAAgB,WAAE6vG,GAAerD,EACzC,GAAIxsG,EAAkB,CACpB9yQ,KAAKyxD,IACF,8CAA6CqhN,EAAiBI,aAE7DosG,EAAuBuB,aACzB/tG,EAAiB3xK,oBACf,UACAm+Q,EAAuBuB,YAEzBvB,EAAuBuB,gBAAa//W,GAElCw+W,EAAuB0B,uBACzBluG,EAAiB3xK,oBACf,oBACAm+Q,EAAuB0B,sBAEzB1B,EAAuB0B,0BAAuBlgX,GAG5C6hX,GAAcA,EAAWjvT,aAAeF,eAAeM,MACzD6uT,EAAW3+S,QAEbs7S,EAAuBxsG,iBACrBwsG,EAAuBl9J,YACvBk9J,EAAuBqD,gBACrB7hX,EACJ,MAAM8C,EAAQ5D,KAAK67W,iBAAiBn4W,QAAQ47W,GAI5C,OAHI17W,GAAS,GACX5D,KAAK67W,iBAAiBjvS,OAAOhpE,EAAO,GAE/BkvQ,EACJpxN,SACAmqI,OAAOvwK,IACNtb,KAAKyxD,IAAK,6BAA4Bn2C,IAAQ,IAE/CmkF,MAAK,IACGqzK,EAAiBwB,UAEzBzoF,OAAOvwK,IACNtb,KAAKyxD,IAAK,4BAA2Bn2C,IAAQ,GAEnD,CACF,EA3yCIy0P,GACUisG,uBAAiB,EA6yCjC,MAAMkC,WAAoBlsW,MAExBzF,WAAAA,CACE2I,EACAo+B,GAEAggF,MAAMhgF,GAAS,KALDp+B,UAAI,EAMlBA,EAAKoG,QAALpG,EAAKoG,MAAU,IAAItJ,MAAMshC,IACzBtzC,KAAKkV,KAAOA,EACZA,EAAK68B,IAAM78B,EAAKoG,KAClB,EC13CF,IAAYynW,GCAAC,GCDAC,IFCZ,SAAYF,GAIXA,EAAc,aAKdA,EAAW,UAKXA,EAAW,UAKXA,EAAY,WAKZA,EAAU,SAKVA,EAAa,YAKbA,EAAiB,gBAKjBA,EAAS,QAKTA,EAAW,SACX,CA7CD,CAAYA,KAAAA,GAAY,KCAxB,SAAYC,GAIXA,EAAU,SAKVA,EAAS,QAKTA,EAAY,WAKZA,EAAW,SACX,CApBD,CAAYA,KAAAA,GAAiB,KCD7B,SAAYC,GAIXA,EAAsB,qBAKtBA,EAAwB,uBAKxBA,EAAwB,uBAKxBA,EAAsB,oBACtB,CApBD,CAAYA,KAAAA,GAAe,KCGpB,MAAMC,GAAgC,CAC5C,CAACD,GAAgBE,QAAS,CAAC,KAAM,IAAK,KAAM,MAC5C,CAACF,GAAgBG,SAAU,CAAC,KAAM,KAAM,MAAO,MAAO,MAAO,MAC7D,CAACH,GAAgBI,SAAU,CAAC,MAAO,KAAM,KAAM,MAAO,KAAM,KAC5D,CAACJ,GAAgBK,QAAS,CAAC,KAAM,QCJ5B,MAAOC,GAMZh3W,WAAAA,CAAYnJ,EAAYsU,GAAqB,KAJ7CtU,WAAK,OAELsU,YAAM,EAGD7N,MAAMiI,QAAQ1O,KACjBA,EAAQA,EAAMkG,KAAK+K,GAAOA,aAAakvW,GAAUlvW,EAAI,IAAIkvW,GAAOlvW,MAGjE,KAAKjR,MAAQA,EACb,KAAKsU,OAASA,CACf,EChBK,MAAO8rW,GACZj3W,WAAAA,CAAmB4tN,GAAmB,KAAnBA,iBAAA,OAAAA,YAAAA,CAAuB,ECQrC,SAAUspJ,GAAWrqW,EAAgB+4E,EAAUrtF,EAAc4+W,GAClE,OAAO,IAAI1xW,MAAM,aAAaoH,MAjB/B,SAAgBhW,GACf,OAAIyG,MAAMiI,QAAQ1O,GACVwZ,KAAKjW,UAAUvD,GAEnBA,aAAiB21I,IACb,QAEJ31I,aAAiBm8B,IACb,QAEa,kBAAVn8B,EACHwZ,KAAKjW,UAAUvD,GAEhBL,OAAOK,EACf,CAG0CwvC,CAAOu/C,UAAYrtF,IAAQ,CAAE4+W,SACvE,CClBO,MAAMC,GAAY,YCAlB,MAAMC,GAAe,mBCEtB,SAAUC,GAAe1xR,EAAUrtF,EAAc4+W,GACtD,OAAOD,GAAW,YAAatxR,EAAKrtF,EAAM4+W,EAC3C,CCwBM,SAAUI,GAAsB1gX,GACrC,IAAkC,IAA9BkoC,YAAYC,OAAOnoC,GACtB,MAAMygX,GAAezgX,EC9BF,iBDgCpB,MAAO,IEtBqB2gX,EFsBJ3gX,EErBjB4gX,KAAKjhX,OAAOC,gBAAgB+gX,OAD9B,IAAuBA,CFuB7B,CGXM,SAAUE,GAAiB7gX,GAChC,GCvBK,SAAuBA,GAC5B,OAAOA,GAAS,iBAAmB,gBAAkBA,CACtD,CDqBK8gX,CAAa9gX,GAChB,MAAMygX,GAAezgX,EExBA,WF2BtB,OAAOA,EAAMmK,UACd,CGhBM,SAAU42W,GAAY/gX,EAAeghX,GAC1C,GAAIhhX,EAAQ,EACX,OAAQ+gX,IAAa/gX,EAAOghX,GAG7B,MAAMC,EAAexhX,KAAKqrC,IAAI,GAAIk2U,GAGlC,GAFsBvhX,KAAKD,IAAMQ,EAAQihX,EAAgB,EAAK,IAAOvuW,OAAOwuW,QAEzD,CAElB,MAAMC,EAAe1hX,KAAKgrC,MAAMzqC,EAAQihX,GACxC,OAAQE,EAAe,IAAM,EAAIA,EAAeA,EAAe,GAAKF,EAIpE,OAAOxhX,KAAKub,MAAMhb,EAAQihX,GAAgBA,CAE5C,CCSM,SAAUG,GAAiBphX,GAChC,MAAMqhX,EAAeN,GAAY/gX,EAAO,GACxC,GAAIP,KAAKgrC,MAAMhrC,KAAKD,IAAI6hX,IAAel3W,WAAWlN,OAAS,GAC1D,MAAMwjX,GAAezgX,ECzCA,WD2CtB,MAAMu/H,EAAc8hP,EAAal3W,WACjC,OAAOo1H,EAAYv0E,SAAS,KAAOu0E,EAAc,GAAGA,KACrD,CErBM,SAAU+hP,GAAen/W,GAC9B,MAAMnC,ECvBD,SAAsB+/H,GAC3B,OAAOA,EAAOg3F,aAAeh3F,EAAO51H,WAAWtJ,MAAM,GAAI,EAC1D,CDqBe0gX,CAAYp/W,GAC1B,IAA6D,IAAzD,yCAAyCulB,KAAK1nB,GACjD,MAAMygX,GAAezgX,EE3BF,SF6BpB,OAAOA,CACR,CGQM,SAAUwhX,GAAkBxhX,GACjC,cAAeA,GACd,IAAK,SACJ,IAAK8zQ,GAAgB9zQ,GACpB,MAAMygX,GAAezgX,EAAOugX,IAG7B,OAAI7tW,OAAO+uW,UAAUzhX,GACb6gX,GAAiB7gX,GAElBohX,GAAiBphX,GACzB,IAAK,SACJ,OCtBG,SAA0BA,GAC/B,GAAIwgX,GAAa94V,KAAK1nB,GACrB,MAAMygX,GAAezgX,EC9BD,UDiCrB,MAAO,IAAIA,EAAMC,QAAQ,MAAO,QAAQA,QAAQ,KAAM,SACvD,CDgBUyhX,CAAgB1hX,GACxB,IAAK,SACJ,OAAOshX,GAAethX,GACvB,IAAK,UACJ,OGnCG,SAA2BA,GAChC,GAAqB,mBAAVA,EACV,MAAMygX,GAAezgX,ECrBA,WDuBtB,OAAOA,EAAQ,KAAO,IACvB,CH8BU2hX,CAAiB3hX,GACzB,IAAK,SACJ,GAAIA,aAAiB22C,KACpB,OK/CE,SAAwB32C,GAC7B,MAAO,IAAI6gX,GAAiB7gX,EAAMy2C,UAAY,MAC/C,CL6CWmrU,CAAc5hX,GAEtB,GAAIA,aAAiBoR,WACpB,OAAOsvW,GAAsB1gX,GAE9B,GAAIA,aAAiBogX,GACpB,OAAOkB,GAAethX,GAExB,QAEC,MAAMygX,GAAezgX,EAAOugX,IAE/B,CM/CM,SAAUsB,GAAa7hX,GAC5B,IAA6C,IAAzC,yBAAyB0nB,KAAK1nB,GACjC,MAAMygX,GAAezgX,ECxBJ,OD0BlB,OAAOA,CACR,CEAM,SAAU8hX,GAAgBxtW,GAC/B,OAAc,MAAVA,EACI,GAGDxU,OAAOouB,QAAQ5Z,GACpBpO,KAAI67W,IAAiB,IAAfjkX,EAAKkC,GAAM+hX,EACjB,OAAc,IAAV/hX,EACI,IAAI6hX,GAAa/jX,KAGlB,IAAI+jX,GAAa/jX,MAAQ0jX,GAAkBxhX,IAAQ,IAE1DyD,KAAK,GACR,CCtBM,SAAUu+W,GAAchiX,GAC7B,OAAIA,aAAiBmgX,GACb,GAAGqB,GAAkBxhX,EAAMA,SAAS8hX,GAAgB9hX,EAAMsU,UAG1DktW,GAAkBxhX,EAE3B,CCqBM,SAAUiiX,GAAczK,GAA6F,IAA/C96W,EAAAkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAA2B,CAAEpH,YAAY,GACpH,GAAoB,kBAATg1W,EACV,MAAMiJ,GAAejJ,ECjDH,QDoDnB,MAAMtpV,EAAUspV,aAAgB7hO,IAAM6hO,EAAKtpV,UAAYpuB,OAAOouB,QAAQspV,GAChE0K,EAAqB,MAAAxlX,GAAAA,EAAS8F,WAAa,IAAM,GAEvD,OAAOiE,MAAM/G,KAAKwuB,GAChBhoB,KAAIi8W,IAAgB,IAAdrkX,EAAKuyB,GAAK8xV,EACZ9xV,aAAgB8vV,MAAW,IAC9B9vV,EAAO,IAAI8vV,GAAO9vV,IAEnB,IAAI/sB,EAASu+W,GAAa/jX,GAa1B,OAZmB,IAAfuyB,EAAKrwB,MACRsD,GAAUw+W,GAAgBzxV,EAAK/b,SAG/BhR,GAAU,IACNmD,MAAMiI,QAAQ2hB,EAAKrwB,OACtBsD,GEzCC,SAA6BtD,GAClC,MAAO,IAAIA,EAAMA,MAAMkG,IAAI87W,IAAev+W,KAAK,QAAQq+W,GAAgB9hX,EAAMsU,SAC9E,CFuCe8tW,CAAmB/xV,GAG7B/sB,GAAU0+W,GAAc3xV,IAGnB/sB,CAAM,IAEbG,KAAK,IAAIy+W,IACZ,CGvEA,MAAMG,GAAariX,GAAqBP,KAAKub,MAAMhb,GAO7CsiX,GAAatiX,GAAwD,IAAnCqiX,GAAUriX,EAAkB,KASvDuiX,GAAgD,CAI5D3vM,GAAIyvM,GAKJpwW,EAAGowW,GAKHvhL,GAAIwhL,GAKJthL,GAAIshL,GAKJE,IAAKF,GAKLG,IA5CiBC,CAAC1iX,EAAkBtD,KACzB,MAAPA,GAAAA,EAASujO,UACZjgO,ECGI,SAA4BqlB,EAAa2L,GAC9C,MAAMkpI,EAAK,IAAIznE,IAAIptE,GACb3lB,EAAO,IAAI+yF,IAAIzhE,GAErB,GAAIkpI,EAAG28J,SAAWn3T,EAAKm3T,OACtB,OAAOxxS,EAGR,MAAMs9V,EAASzoN,EAAG5qG,SAASpoD,MAAM,KAAKrG,MAAM,GACtC+hX,EAAWljX,EAAK4vD,SAASpoD,MAAM,KAAKrG,MAAM,GAAI,GAGpD,KAAO8hX,EAAO,KAAOC,EAAS,IAC7BD,EAAOv3V,QACPw3V,EAASx3V,QAIV,KAAOw3V,EAAS3lX,QACf2lX,EAASx3V,QACTu3V,EAAOrxU,QAAQ,MAGhB,OAAOqxU,EAAOl/W,KAAK,IACpB,CD3BUo/W,CAAkB7iX,EAAiBtD,EAAQujO,UAE7CtiM,mBAAmB39B,IA6C1B8iX,IAAKR,GAKL7vM,GAAI4vM,IExCC,SAAUU,GAAYv0W,EAA8B9R,GACzD,MAAMsnE,EAAgB,GAEtB,GAAW,MAAPx1D,GAA8B,kBAARA,EACzB,OAAOw1D,EAGR,MAAMt6C,EAAO5pB,OAAO4pB,KAAKlb,GAAKgjB,OACxBmtE,EAAarlF,GAAc,GAAIipW,GAAuB,MAAP7lX,OAAO,EAAPA,EAASiiG,YACxDjyE,EAAS,MAAAhwB,OAAA,EAAAA,EAASgwB,OAoCxB,OAlCAhD,EAAKvrB,SAAQL,IACZ,GAAI,MAAA4uB,GAAAA,EAAS5uB,GACZ,OAGD,IAAIkC,EAAQwO,EAAI1Q,GAEhB,MAAMwiF,EAAYqe,EAAW7gG,GACzBwiF,IACHtgF,EAAQsgF,EAAUtgF,EAAOtD,IAId,MAARoB,GAAyB,IAAVkC,GAKR,MAAPlC,GAAyB,IAAVkC,GC/CGA,IACF,kBAAVA,EACH8zQ,GAAgB9zQ,GAGR,MAATA,GAA2B,KAAVA,IAA0B,IAAVA,ED+ClC4pG,CAAQ5pG,KE3CclC,IACpB,OAARA,GAAwB,OAARA,GAAwB,OAARA,EF8C3BklX,CAAallX,IAAyB,kBAAVkC,IAC/BA,EAAQ,IAAIogX,GAAQpgX,IAGrBgkE,EAAQlmE,GAAckC,EAAY,IAG5BgkE,CACR,CGjDM,SAAUi/S,GAAWC,GAA2C,IAA/BxmX,EAAAkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAA6B,GACnE,OAAKs5W,ECLA,SAAuBljX,EAA+CtD,GAC3E,OAAOulX,GAAcjiX,EAAOtD,EAC7B,CDOQymX,CAAaJ,GAAYG,EAAMxmX,GAAU4c,GAAc,CAAE9W,YAAY,GAAS9F,IAH7E,EAIT,CENM,SAAU0mX,GAAkB3kU,EAAiCykU,EAAYxmX,GAC9E,OAAO4c,GAAcmlC,ECChB,SAAwBykU,GAA2C,IAA/BxmX,EAAAkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAA6B,GACtE,IAAKs5W,EACJ,MAAO,GAGR,MAAMh1V,EAAUpuB,OAAOouB,QAAQg1V,GACzBG,EAAYvjX,OAAOouB,QAAQ4xV,IAC/Bt4W,OAAO1H,OAAOouB,SAAQ,MAAAxxB,OAAA,EAAAA,EAAS4mX,kBAAmB,KAC9CC,EAASr1V,EAAQnb,QAAO,CAACoM,EAAKw7D,KAAS,IAAA6oS,EAC5C,MAAO1lX,EAAKkC,GAAS26E,EACfnC,GAAuD,OAA/CgrS,EAAAH,EAAUn0P,MAAKv0C,GAASA,EAAM,GAAG3vB,SAASltD,WAAK,EAA/C0lX,EAAkD,KAAyB3D,GAAgBG,QAGzG,OAFU,MAAV7gW,EAAIq5D,KAAJr5D,EAAIq5D,GAAW,IACfr5D,EAAIq5D,GAAO16E,GAAckC,EAClBmf,CAAG,GACR,IAEH,OAAOrf,OAAOouB,QAAQq1V,GACpBxwW,QAAO,CAACoM,EAAGskW,KAAoB,IAAjBjrS,EAAOx4E,GAAMyjX,EAE3B,OADAtkW,EAAIq5D,GAA4ByqS,GAAWjjX,EAAOtD,GAC3CyiB,CAAG,GACR,GACL,CDtB+BukW,CAAcR,EAAMxmX,GACnD,CEfA,MAAMinX,GAAQ,cAeR,SAAUC,GAAgBv+V,EAAa69V,EAAYxmX,GAIxD,MAAM4yC,ECND,SAAsB4zU,GAC3B,IAAKA,EACJ,MAAO,GAGR,MAAM5uW,EAAS2uW,GAAWC,EALat5W,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAA6B,IAOpE,MAAO,QAAiB+zB,mBAAmBrpB,IAC5C,CDFeuvW,CAAYX,EAAMxmX,GAChC,IAAK4yC,EACJ,OAAOjqB,EAGR,GAAIs+V,GAAMj8V,KAAKrC,GACd,OAAOA,EAAIplB,QAAQ0jX,GAAOr0U,GAG3B,MAAMw0U,EAAYz+V,EAAI2lC,SAAS,KAAO,IAAM,IAC5C,MAAO,GAAG3lC,IAAMy+V,IAAYx0U,GAC7B,CEwfA,SAASy0U,GACPx4J,EACAy4J,EACAC,EACAC,GAEK34J,GAGLzrN,OAAO4pB,KAAKs6V,GAAe7lX,SAASwlP,IAClC,MAAMwgI,EAAe54J,EAClB7+L,QAAQ0mJ,GAAUA,EAAMuwD,UAAYggB,IACpCz9O,KAAKktK,IACJ,MAAMgxM,EAAc9qW,GAAc,CAAC,EAAG85J,GAYtC,OAXAgxM,EAAY/sK,aAAU35M,EACtB0mX,EAAYz6N,MAAQ,IAAIo3E,GAASqjJ,EAAYz6N,OAC7Cy6N,EAAY/+V,IAAM++V,EAAYz6N,MAAMy6E,IAAMigJ,GACxCjxM,EAAM/tJ,IACN+tJ,EAAMzpB,MAAM,uBACZ,qBACAs6N,GAEFG,EAAYzgJ,QAAUygJ,EAAYz6N,MAAM,YACtCq6N,EAAcrgI,GAChBygI,EAAYz6N,MAAM,cAAgBu6N,EAC3BE,CAAW,IAEtB74J,EAAO/tN,QAAQ2mX,EAAa,GAEhC,CAEA,SAASE,GACPruT,EACAsuT,EACAC,EACAN,GAEA,MACEO,KAAMz6T,EACN06T,OAAQnwW,EACR,CAACiwW,GAAeG,GACdT,EACJ,IAAIU,EACAL,IACFK,EAA6B,MAAbD,OAAa,EAAbA,EAAgBJ,GAC5BK,IACF3uT,EAAM2uT,IAGV,MAAMt/V,EAAM,IAAImiB,KAAKirD,IAAIz8B,GAazB,OAZIjM,IAAS46T,IACXt/V,EAAI0kC,KAAOA,GAETz1C,GACFxU,OAAO4pB,KAAKpV,GACTkd,OACArzB,SAASL,IACJA,GACFunB,EAAIilT,aAAa1kU,IAAI9H,EAAKwW,EAAOxW,GACnC,IAGCunB,EAAI6qC,IACb,CC5kBA,MAAM00T,GAAwB,uBAE9B,MAAMpyH,GAcJrpP,WAAAA,CAAYsL,GAAmB,KAbvBg+O,cAAQ,OAGRC,oBAAc,OACdC,kBAAY,OACZ1lM,gBAAU,OACVx4C,OAAqC,KAAI,KACzCq1D,UAAmD,KAAI,KACxDtS,QAAgC,KAAI,KAEnC4nK,OAAgC,KAAI,KACrC3K,WAAK,EAGV73N,KAAK61P,SAAWh+O,GAASA,EAAOg+O,UAAmB,KACnD71P,KAAK63N,MAAQ,IAAIm/G,GACjBh3U,KAAKqwD,WAAa,CACpB,CAEAgjF,OAAAA,GACErzI,KAAKktE,UAAY,KACjBltE,KAAKioX,gBACLjoX,KAAKwiO,OAAS,KACdxiO,KAAK6X,OAAS,KACd7X,KAAK46D,QAAU,KACf56D,KAAK61P,SAAW,IAClB,CAEAoyH,aAAAA,GACE,MAAMzlJ,EAASxiO,KAAKwiO,OACpB53L,KAAKpnB,aAAaxjB,KAAK81P,gBACvBlrN,KAAKpnB,aAAaxjB,KAAK+1P,cACnBvzB,IACFA,EAAOthI,mBAAqB,KAC5BshI,EAAO2zB,WAAa,KACM,IAAtB3zB,EAAO9uK,aACT1zD,KAAK63N,MAAMj3H,SAAU,EACrB4hI,EAAOx+J,SAGb,CAEAA,KAAAA,GAAQ,IAAAkkT,EACNloX,KAAKioX,gBACD,OAAJC,EAAIloX,KAAKktE,YAALg7S,EAAgB3oB,SAClBv/V,KAAKktE,UAAUqyR,QACbv/V,KAAK63N,MACL73N,KAAK46D,QACL56D,KAAKwiO,OAGX,CAEAroL,IAAAA,CACEygB,EACA/iD,EACAq1D,GAEA,GAAIltE,KAAK63N,MAAMqsF,QAAQ/vS,MACrB,MAAM,IAAInC,MAAM,iCAElBhS,KAAK63N,MAAMqsF,QAAQ/vS,MAAQy2B,KAAK02B,YAAYD,MAC5CrhE,KAAK46D,QAAUA,EACf56D,KAAK6X,OAASA,EACd7X,KAAKktE,UAAYA,EACjBltE,KAAKi2P,cACP,CAEAA,YAAAA,GACE,MAAM,OAAEp+O,EAAM,QAAE+iD,GAAY56D,KAC5B,IAAK6X,IAAW+iD,EACd,OAEF,MAAMrH,EAAOvzD,KAAKwiO,OAAS,IAAI53L,KAAK4oB,eAE9BqkK,EAAQ73N,KAAK63N,MACnBA,EAAMqsF,QAAQ7pK,MAAQ,EACtBw9E,EAAM9nK,OAAS,EACf8nK,EAAMj3H,SAAU,EAChB,MAAMi1J,EAAW71P,KAAK61P,SAElBA,EACF/+M,QAAQnD,UACL8rD,MAAK,KACJ,GAAIz/F,KAAKwiO,SAAWjvK,IAAOvzD,KAAK63N,MAAMj3H,QACtC,OAAOi1J,EAAStiM,EAAKqH,EAAQnyC,IAAI,IAElCojK,OAAOvwK,IACN,GAAItb,KAAKwiO,SAAWjvK,IAAOvzD,KAAK63N,MAAMj3H,QAEtC,OADArtC,EAAIjyB,KAAK,MAAOs5B,EAAQnyC,KAAK,GACtBotO,EAAStiM,EAAKqH,EAAQnyC,IAAI,IAElCg3E,MAAK,KACAz/F,KAAKwiO,SAAWjvK,GAAOvzD,KAAK63N,MAAMj3H,SACtC5gG,KAAKmoX,eAAe50T,EAAKqH,EAAS/iD,EAAO,IAE1Cg0K,OAAOvwK,IAENtb,KAAKktE,UAAWgrG,QACd,CAAEp3I,KAAMyyB,EAAInC,OAAQx4C,KAAM0C,EAAMg4B,SAChCsnB,EACArH,EACAskK,EAEI,IAGV73N,KAAKmoX,eAAe50T,EAAKqH,EAAS/iD,EAEtC,CAEAswW,cAAAA,CACE50T,EACAqH,EACA/iD,GAEK07C,EAAIG,YACPH,EAAIjyB,KAAK,MAAOs5B,EAAQnyC,KAAK,GAG/B,MAAMo5B,EAAU+Y,EAAQ/Y,SAClB,qBAAE0sS,EAAoB,cAAEC,GAAkB32U,EAAOm2U,WACvD,GAAInsS,EACF,IAAK,MAAM4d,KAAU5d,EACnB0R,EAAIY,iBAAiBsL,EAAQ5d,EAAQ4d,IAIrC7E,EAAQ4/D,UACVjnE,EAAIY,iBACF,QACA,SAAWyG,EAAQkyK,WAAa,KAAOlyK,EAAQ4/D,SAAW,IAI9DjnE,EAAI2tC,mBAAqBlhG,KAAKk2P,iBAAiB1pO,KAAKxsB,MACpDuzD,EAAI4iM,WAAan2P,KAAK0uO,aAAaliN,KAAKxsB,MACxCuzD,EAAIe,aAAesG,EAAQtG,aAE3B1pB,KAAKpnB,aAAaxjB,KAAK81P,gBACvBj+O,EAAOwL,QACLkrU,GAAwBr3E,GAAgBq3E,GACpCA,EACAC,EACNxuV,KAAK81P,eAAiBlrN,KAAKnnB,WACzBzjB,KAAKyrO,YAAYj/M,KAAKxsB,MACtB6X,EAAOwL,SAETkwC,EAAIvS,MACN,CAEAk1M,gBAAAA,GACE,MAAM,QAAEt7L,EAAS4nK,OAAQjvK,EAAG,MAAEskK,GAAU73N,KACxC,IAAK46D,IAAYrH,EACf,OAEF,MAAMG,EAAaH,EAAIG,WACjB77C,EAAS7X,KAAK6X,OAGpB,IAAIggN,EAAMj3H,SAKNltC,GAAc,IACY,IAAxBmkK,EAAMqsF,QAAQ7pK,QAChBw9E,EAAMqsF,QAAQ7pK,MAAQx3I,KAAK2qB,IACzBod,KAAK02B,YAAYD,MACjBw2J,EAAMqsF,QAAQ/vS,OAGZ0D,EAAOwL,UAAYxL,EAAOm2U,WAAWQ,gBACvC5jT,KAAKpnB,aAAaxjB,KAAK81P,gBACvBj+O,EAAOwL,QAAUxL,EAAOm2U,WAAWQ,cACnCxuV,KAAK81P,eAAiBlrN,KAAKnnB,WACzBzjB,KAAKyrO,YAAYj/M,KAAKxsB,MACtB6X,EAAOm2U,WAAWQ,eACf32H,EAAMqsF,QAAQ7pK,MAAQw9E,EAAMqsF,QAAQ/vS,UAK1B,IAAfu/C,GAAkB,CACpB9oB,KAAKpnB,aAAaxjB,KAAK81P,gBACvBviM,EAAI2tC,mBAAqB,KACzB3tC,EAAI4iM,WAAa,KACjB,MAAM/kM,EAASmC,EAAInC,OAEbg3T,EACiB,SAArB70T,EAAIe,aAA0Bf,EAAImB,aAAe,KACnD,GAAItD,GAAU,KAAOA,EAAS,IAAK,CACjC,MAAMl8C,EAAsB,MAAfkzW,EAAAA,EAAmB70T,EAAI/R,SACpC,GAAY,MAARtsC,EAAc,CAChB2iN,EAAMqsF,QAAQlgT,IAAMnB,KAAK2qB,IACvBod,KAAK02B,YAAYD,MACjBw2J,EAAMqsF,QAAQ7pK,OAEhB,MAAMtnI,EACiB,gBAArBwgD,EAAIe,aACAp/C,EAAKw2B,WACLx2B,EAAK7U,OAIX,GAHAw3N,EAAM9nK,OAAS8nK,EAAMhoK,MAAQ98C,EAC7B8kN,EAAM00B,WACW,IAAd10B,EAAMhoK,OAAiBgoK,EAAMqsF,QAAQlgT,IAAM6zN,EAAMqsF,QAAQ7pK,QACvDr6I,KAAKktE,UACR,OAEF,MAAMuhK,EAAazuO,KAAKktE,UAAUuhK,WAIlC,GAHIA,GACFA,EAAW5W,EAAOj9J,EAAS1lD,EAAMq+C,IAE9BvzD,KAAKktE,UACR,OAEF,MAAMm7S,EAA2B,CAC/B5/V,IAAK8qC,EAAIutC,YACT5rF,KAAMA,EACN4rB,KAAMswB,GAIR,YADApxD,KAAKktE,UAAUm+J,UAAUg9I,EAAUxwJ,EAAOj9J,EAASrH,EAErD,CACF,CAGA,MAAMuiS,EAAcj+U,EAAOm2U,WAAWI,WAQlC+H,GAAYL,EAPGj+H,EAAMm+B,OAOgB,EALR,CAC/BvtO,IAAKmyC,EAAQnyC,IACbvT,UAAMpU,EACNggC,KAAMswB,IAGNpxD,KAAKg2P,MAAM8/F,IAEXlhT,GAAOt5B,MAAO,GAAE81C,mBAAwBwJ,EAAQnyC,OAChDzoB,KAAKktE,UAAWgrG,QACd,CAAEp3I,KAAMswB,EAAQx4C,KAAM26C,EAAIM,YAC1B+G,EACArH,EACAskK,GAGN,CAEJ,CAEA4T,WAAAA,GACE,IAAKzrO,KAAK6X,OAAQ,OAClB,MAAMi+U,EAAc91V,KAAK6X,OAAOm2U,WAAWG,aAE3C,GAAIgI,GAAYL,EADG91V,KAAK63N,MAAMm+B,OACW,GACvCh2P,KAAKg2P,MAAM8/F,OACN,KAAAwyB,EACL1zU,GAAO0yD,KAAM,yBAAwB,OAAFghR,EAAEtoX,KAAK46D,cAAL,EAAA0tT,EAAc7/V,OACnD,MAAMykD,EAAYltE,KAAKktE,UACnBA,IACFltE,KAAKioX,gBACL/6S,EAAUs+J,UACRxrO,KAAK63N,MACL73N,KAAK46D,QACL56D,KAAKwiO,QAGX,CACF,CAEAwzB,KAAAA,CAAM8/F,GACJ,MAAM,QAAEl7R,EAAO,MAAEi9J,GAAU73N,KAC3BA,KAAKqwD,WAAawlS,GAAcC,EAAaj+H,EAAMm+B,OACnDn+B,EAAMm+B,QACNphN,GAAO0yD,KACJ,GACCl2C,OAAS,eAAiBA,OAAS,2BACnB,MAAAwJ,OAAA,EAAAA,EAASnyC,iBAAiBovM,EAAMm+B,SAChD8/F,EAAYpH,kBACP1uV,KAAKqwD,gBAGdrwD,KAAKioX,gBACLjoX,KAAKwiO,OAAS,KAEd53L,KAAKpnB,aAAaxjB,KAAK+1P,cACvB/1P,KAAK+1P,aAAenrN,KAAKnnB,WACvBzjB,KAAKi2P,aAAazpO,KAAKxsB,MACvBA,KAAKqwD,WAET,CAEAq+K,YAAAA,CAAatlN,GACX,MAAMyuM,EAAQ73N,KAAK63N,MAEnBA,EAAM9nK,OAAS3mC,EAAM2mC,OACjB3mC,EAAMgtO,mBACRv+B,EAAMhoK,MAAQzmC,EAAMymC,MAExB,CAEA2/R,WAAAA,GACE,IAAIn9U,EAAwB,KAC5B,GACErS,KAAKwiO,QACLwlJ,GAAsBl9V,KAAK9qB,KAAKwiO,OAAO5uK,yBACvC,CACA,MAAMklR,EAAY94U,KAAKwiO,OAAO+lJ,kBAAkB,OAChDl2W,EAASymU,EAAYrqT,WAAWqqT,GAAa,IAC/C,CACA,OAAOzmU,CACT,CAEAk2W,iBAAAA,CAAkBr9W,GAChB,OACElL,KAAKwiO,QACL,IAAIz0M,OAAQ,IAAG7iB,qBAAyB,MAAM4f,KAC5C9qB,KAAKwiO,OAAO5uK,yBAGP5zD,KAAKwiO,OAAO+lJ,kBAAkBr9W,GAEhC,IACT,ECrTF,MAAMu9N,GAAY,qBAElB,MAAM+/I,GAYJj8W,WAAAA,CAAYsL,GAAwB,KAX5B4wW,gBAAU,OACV3yH,oBAAc,OACd92M,QAA0B,KAAI,KAC9BwC,SAA4B,KAAI,KAChCo1N,gBAAU,OACXh8M,QAAgC,KAAI,KACnC/iD,OAAqC,KAAI,KACzCq1D,UAAmD,KAAI,KACxD2qJ,WAAK,OACJ2K,OAA0B,KAGhCxiO,KAAKyoX,WAAa5wW,EAAO4wW,YAAcC,GACvC1oX,KAAK42Q,WAAa,IAAIhsO,KAAK+9U,gBAC3B3oX,KAAK63N,MAAQ,IAAIm/G,EACnB,CAEA3jM,OAAAA,GACErzI,KAAKwiO,OACHxiO,KAAKktE,UACLltE,KAAK46D,QACL56D,KAAK6X,OACL7X,KAAKg/C,QACH,KACJh/C,KAAKioX,gBACLjoX,KAAKwhD,SAAW,KAEhBxhD,KAAKyoX,WAAazoX,KAAK42Q,WAAa52Q,KAAK63N,MAAQ,IACnD,CAEAowJ,aAAAA,GACMjoX,KAAK42Q,aAAe52Q,KAAK63N,MAAMqsF,QAAQlgT,MACzChE,KAAK63N,MAAMj3H,SAAU,EACrB5gG,KAAK42Q,WAAW5yM,QAEpB,CAEAA,KAAAA,GAAc,IAAAkkT,EACZloX,KAAKioX,gBACD,OAAJC,EAAIloX,KAAKktE,YAALg7S,EAAgB3oB,SAClBv/V,KAAKktE,UAAUqyR,QACbv/V,KAAK63N,MACL73N,KAAK46D,QACL56D,KAAKwhD,SAGX,CAEArH,IAAAA,CACEygB,EACA/iD,EACAq1D,GAEA,MAAM2qJ,EAAQ73N,KAAK63N,MACnB,GAAIA,EAAMqsF,QAAQ/vS,MAChB,MAAM,IAAInC,MAAM,iCAElB6lN,EAAMqsF,QAAQ/vS,MAAQy2B,KAAK02B,YAAYD,MAEvC,MAAMunT,EA+KV,SAA8BhuT,EAAwBulC,GACpD,MAAMyoR,EAAkB,CACtBz2T,OAAQ,MACRr3C,KAAM,OACNq4B,YAAa,cACbgtD,SACAt+C,QAAS,IAAIjX,KAAK0zD,QAAQ5hF,GAAc,CAAC,EAAGk+C,EAAQ/Y,WAGlD+Y,EAAQ4/D,UACVouP,EAAW/mU,QAAQ74C,IACjB,QACA,SAAW4xD,EAAQkyK,WAAa,IAAM/pO,OAAO63D,EAAQ4/D,SAAW,IAIpE,OAAOouP,CACT,CAhMuBC,CAAqBjuT,EAAS56D,KAAK42Q,WAAWz2K,QAC3DsuI,EACJvhK,EAAUuhK,WACN4mF,EAAyC,gBAAzBz6P,EAAQtG,aACxBw0T,EAASzzD,EAAgB,aAAe,UACxC,qBAAEk5B,EAAoB,cAAEC,GAAkB32U,EAAOm2U,WAEvDhuV,KAAK46D,QAAUA,EACf56D,KAAK6X,OAASA,EACd7X,KAAKktE,UAAYA,EACjBltE,KAAKg/C,QAAUh/C,KAAKyoX,WAAW7tT,EAASguT,GACxCh+U,KAAKpnB,aAAaxjB,KAAK81P,gBACvBj+O,EAAOwL,QACLkrU,GAAwBr3E,GAAgBq3E,GACpCA,EACAC,EACNxuV,KAAK81P,eAAiBlrN,KAAKnnB,YAAW,KACpCzjB,KAAKioX,gBACL/6S,EAAUs+J,UAAU3T,EAAOj9J,EAAS56D,KAAKwhD,SAAS,GACjD3pC,EAAOwL,SAEVunB,KACGkzD,MAAM99F,KAAKg/C,SACXygD,MAAMj+C,IACLxhD,KAAKwhD,SAAWxhD,KAAKwiO,OAAShhL,EAE9B,MAAM64F,EAAQx3I,KAAK2qB,IAAIod,KAAK02B,YAAYD,MAAOw2J,EAAMqsF,QAAQ/vS,OAY7D,GAVAy2B,KAAKpnB,aAAaxjB,KAAK81P,gBACvBj+O,EAAOwL,QAAUmrU,EACjBxuV,KAAK81P,eAAiBlrN,KAAKnnB,YACzB,KACEzjB,KAAKioX,gBACL/6S,EAAUs+J,UAAU3T,EAAOj9J,EAAS56D,KAAKwhD,SAAS,GAEpDgtS,GAAiBn0M,EAAQw9E,EAAMqsF,QAAQ/vS,SAGpCqtC,EAASk/C,GAAI,CAChB,MAAM,OAAEtvC,EAAM,WAAEyC,GAAerS,EAC/B,MAAM,IAAIunU,GACRl1T,GAAc,8BACdzC,EACA5P,EAEJ,CAKA,OAJAq2K,EAAMqsF,QAAQ7pK,MAAQA,EAEtBw9E,EAAMhoK,MAyJd,SAA0BhO,GACxB,MAAMmnU,EAAennU,EAAQ94C,IAAI,iBACjC,GAAIigX,EAAc,CAChB,MAAMC,EAVV,SAA4BC,GAC1B,MAAM72W,EAASo2N,GAAUj/N,KAAK0/W,GAC9B,GAAI72W,EACF,OAAO0D,SAAS1D,EAAO,IAAM0D,SAAS1D,EAAO,IAAM,CAEvD,CAK4B82W,CAAmBH,GAC3C,GAAI9xG,GAAgB+xG,GAClB,OAAOA,CAEX,CACA,MAAMG,EAAgBvnU,EAAQ94C,IAAI,kBAClC,GAAIqgX,EACF,OAAOrzW,SAASqzW,EAEpB,CArKsBC,CAAiB7nU,EAASK,UAAYg2K,EAAMhoK,MAEtD4+K,GAAcyoC,GAAgBr/P,EAAOunV,eAChCp/V,KAAKspX,kBACV9nU,EACAq2K,EACAj9J,EACA/iD,EAAOunV,cACP3wH,GAIA4mF,EACK7zQ,EAAS+9C,cAEW,SAAzB3kC,EAAQtG,aACH9S,EAASu+C,OAEXv+C,EAAS5oC,MAAM,IAEvB6mF,MAAM8pR,IACL,MAAM/nU,EAAWxhD,KAAKwhD,SACtB,IAAKA,EACH,MAAM,IAAIxvC,MAAM,oBAElB44B,KAAKpnB,aAAaxjB,KAAK81P,gBACvBj+B,EAAMqsF,QAAQlgT,IAAMnB,KAAK2qB,IACvBod,KAAK02B,YAAYD,MACjBw2J,EAAMqsF,QAAQ7pK,OAEhB,MAAMxqF,EAAQ05T,EAAaT,GACvBj5T,IACFgoK,EAAM9nK,OAAS8nK,EAAMhoK,MAAQA,GAG/B,MAAMumS,EAAiC,CACrC3tU,IAAK+4B,EAAS/4B,IACdvT,KAAMq0W,EACNzoV,KAAM0gB,EAAS4P,QAGbq9K,IAAeyoC,GAAgBr/P,EAAOunV,gBACxC3wH,EAAW5W,EAAOj9J,EAAS2uT,EAAc/nU,GAG3C0rB,EAAUm+J,UAAU+qH,EAAgBv+H,EAAOj9J,EAASpZ,EAAS,IAE9DqqI,OAAOvwK,IAEN,GADAsvB,KAAKpnB,aAAaxjB,KAAK81P,gBACnBj+B,EAAMj3H,QACR,OAIF,MAAM9/D,EAAgBxlB,GAAYA,EAAMwlB,MAAV,EACxBloB,EAAgB0C,EAAeA,EAAMg4B,QAAb,KAC9B45B,EAAUgrG,QACR,CAAEp3I,OAAMloB,QACRgiD,EACAt/C,EAAQA,EAAMm/L,QAAU,KACxBod,EACD,GAEP,CAEA23H,WAAAA,GACE,IAAIn9U,EAAwB,KAC5B,GAAIrS,KAAKwhD,SAAU,CACjB,MAAMs3R,EAAY94U,KAAKwhD,SAASK,QAAQ94C,IAAI,OAC5CsJ,EAASymU,EAAYrqT,WAAWqqT,GAAa,IAC/C,CACA,OAAOzmU,CACT,CAEAk2W,iBAAAA,CAAkBr9W,GAChB,OAAOlL,KAAKwhD,SAAWxhD,KAAKwhD,SAASK,QAAQ94C,IAAImC,GAAQ,IAC3D,CAEQo+W,iBAAAA,CACN9nU,EACAq2K,EACAj9J,GAGsB,IAFtBwkS,EAAqBpyV,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EACxByhO,EAA2CzhO,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAE3C,MAAM0oX,EAAa,IAAIrhB,GACjBrkR,EAAUtiC,EAASuH,KAAwB0gU,YAE3CC,EAAOA,IACJ5lS,EACJj1B,OACA4wC,MAAMvqF,IACL,GAAIA,EAAKksC,KAKP,OAJIooU,EAAWnhB,YACb55H,EAAW5W,EAAOj9J,EAAS4uT,EAAWhnX,QAASg/C,GAG1C1K,QAAQnD,QAAQ,IAAIrI,YAAY,IAEzC,MAAMskB,EAAoB16C,EAAK9R,MACzB2P,EAAM68C,EAAMvvD,OAelB,OAdAw3N,EAAM9nK,QAAUh9C,EACZA,EAAMqsV,GAAiBoqB,EAAWnhB,YAGpCmhB,EAAW5oX,KAAKgvD,GACZ45T,EAAWnhB,YAAcjJ,GAE3B3wH,EAAW5W,EAAOj9J,EAAS4uT,EAAWhnX,QAASg/C,IAKjDitL,EAAW5W,EAAOj9J,EAAShL,EAAOpO,GAE7BkoU,GAAM,IAEd79L,OAAM,IAEE/0I,QAAQuvB,WAIrB,OAAOqjT,GACT,EA2CF,SAAShB,GAAW9tT,EAAwBguT,GAC1C,OAAO,IAAIh+U,KAAKoM,QAAQ4jB,EAAQnyC,IAAKmgW,EACvC,CAEA,MAAMG,WAAmB/2W,MAGvBzF,WAAAA,CAAY+mC,EAAiBxS,EAAc25K,GACzCnnF,MAAMhgF,GAAS,KAHVxS,UAAI,OACJ25K,aAAO,EAGZz6M,KAAK8gC,KAAOA,EACZ9gC,KAAKy6M,QAAUA,CACjB,ECzTF,MAAMkvK,GAAkB,KAWlBrgH,GAAsB,CAC1B7L,MAAAA,CACEjnF,EACAvlH,EACA++C,EACA0tJ,GAEA,MAAMrrP,EAAmB,GACzB,IAAIsrP,EAEAnV,EACAoV,EACAC,EACAjlP,EACJ,MAAMwvO,EAAOx9M,KAAK09M,QAAU19M,KAAK29M,aAEjC,IAAK,IAAIz2N,EAAI,EAAGA,EAAI4rO,EAAcI,KAAKz9P,OAAQyxB,IAM7C,GALA6rO,EAAMD,EAAcI,KAAKhsO,GACzB8rO,GAAY,EACZC,EAAS,EACTjlP,EAAO,IAEF+kP,EAAI1vL,UAAW,KAAA27S,EAClB,IAAK,IAAI18U,EAAI,EAAGA,EAAIywN,EAAI/9J,MAAMv/F,OAAQ6sC,IAChCy8U,GAAgB7+V,KAAK6yO,EAAI/9J,MAAM1yD,GAAG6wN,QAAUH,EAC9CC,KAEAjlP,GAAQ+kP,EAAI/9J,MAAM1yD,GAAG6wN,MACrBH,GAAY,GAIhBD,EAAIK,aAAe/sM,EAGfA,IAAc++C,IAChBA,GAAW,MAGT6tJ,GAAU,GACZA,IAEAA,IAGF,MAAMi8G,EAAU58G,GAActkP,EAAKzV,QAC7BugC,EAAKu0U,GAAchnT,EAAW++C,EAAS8pQ,GAGnC,MAALtjM,GAAW,OAANozM,EAALpzM,EAAOkxE,OAAPkiI,EAAal9G,WAAWhpO,KAC3B8kN,EAAM,IAAIJ,EAAIn3L,EAAW++C,EAAS8pQ,GAClCtxH,EAAI9kN,GAAKA,EACT8kN,EAAIlkP,KAAOwtB,EAAI,EACf02N,EAAI6T,MAAQ,OAIZ7T,EAAIhkP,SAAW,GAAK3B,KAAK4qB,IAAI,GAAoC,GAAhC5qB,KAAKgrC,MAAgB,EAATgwN,EAAc,KAC3DxrP,EAAOzR,KAAK4nP,GAEhB,CAeF,OAbIhyE,GAASnkK,EAAOhS,SAElBgS,EAAOuiB,MAAK,CAACi1V,EAAMC,IACC,SAAdD,EAAKvlX,MAAiC,SAAdwlX,EAAKxlX,KACxB,EAELulX,EAAKvlX,KAAO,GAAKwlX,EAAKxlX,KAAO,EACxBwlX,EAAKxlX,KAAOulX,EAAKvlX,KAEnBulX,EAAKvlX,KAAOwlX,EAAKxlX,OAE1B+N,EAAO9Q,SAASinP,GAAQinG,GAAcj5K,EAAOgyE,MAExCn2O,CACT,GCkPWkiQ,GAA2B0qE,GAAAA,GAAA,CACtCj9F,eAAe,EACfrF,eAAgB,EAChB+H,uBAAmB5jP,EACnB8nN,OAAO,EACPyrC,mBAAmB,EACnB3B,sBAAsB,EACtB4oH,wBAAwB,EACxB5xB,0BAA0B,EAC1BzqG,wBAAyB,EACzBJ,gBAAiB,GACjBkrI,iBAAkBj4R,IAClBk4R,0BAA2Bl4R,IAC3B8sJ,cAAe,IACf7pB,cAAe,GACfulB,yBAA0B,EAC1BO,YAAa,GACbD,cAAe,EACf3C,uBAAwB,IACxBgF,sBAAuB,EACvBwC,4BAA6B3tJ,IAC7BkrJ,sBAAkBl8O,EAClB0+O,4BAAwB1+O,EACxBwxV,wBAAyB,EACzB5gG,sBAAsB,EAItBN,qBAAsB,KACtBtS,mBAAoB,IACpBlL,cAAc,EACdqhI,WAAY,KACZh7J,mBAAmB,EACnB6jC,gBAAYh9O,EACZ09O,mBAAmB,EACnBgW,2BAA4B,IAC5BY,8BAA+B,GAC/BtD,oBAAqB,EACrBtvB,OAAQozB,GAERznB,aAASrtO,EACT+oO,aAAS/oO,EACT+0P,cAAU/0P,EACVqwQ,qBAAiBrwQ,EACjB08W,6BAAyB18W,EACzB2zQ,cC1VF,MAgBEloQ,WAAAA,CAAY09W,GAAU,KAfZhqJ,SAAG,OACLiqJ,iBAA2B,EAAC,KAC5Br/H,qBAA+B,EAAC,KAChCs/H,gBAA0B,EAAC,KAC3Br/H,gBAA0B,EAAC,KAC3Bs/H,iBAA2B,GAAE,KAC7BzwB,mBAAgD,KAAI,KACpD0wB,WAAkD,KAAI,KACtDllI,OAAiB,EAAC,KAClBlJ,YAA+B,KAAI,KACnCquI,YAA2B,KAAI,KAC/B99H,iBAA2B,EAAC,KAE7BY,iBAAW,EAiLlB,KAIQnC,mBAAqB,KAC3B,MAAQhP,YAAan0B,EAAMwiK,YAAav+S,EAAI,IAAEk0J,GAAQjgO,MAChD,iBAAEogP,EAAgB,MAAEtZ,GAAU7G,EACpC,IAAKnY,IAASgf,EACZ,OAGF,MAAMzlK,EAAMC,YAAYD,MAClBw2J,EAAqB9rJ,EAAOA,EAAK8rJ,MAAQ/P,EAAK+P,MAC9Cn4M,EAAWqsD,EAAOA,EAAKrsD,SAAWooM,EAAKpoM,SACvC6qW,EAAclpT,EAAMw2J,EAAMqsF,QAAQ/vS,MAClC83O,EAAehsB,EAAIgsB,aAEzB,GACEp0B,EAAMj3H,SACLi3H,EAAM9nK,QAAU8nK,EAAM9nK,SAAW8nK,EAAMhoK,OACxCi4J,EAAKwa,OAAS2pB,EAKd,OAHAjsP,KAAKolP,kBAELplP,KAAK8qP,gBAAkB,GAKzB,IACG1K,GACDtZ,EAAM0S,SACL1S,EAAM4S,eACN5S,EAAMpzK,WAEP,OAGF,MAAM4+K,EAAarS,EAAIk4H,sBACvB,GAAmB,OAAf7lH,EACF,OAGF,MAAMk4I,EAAexqX,KAAKotP,YAAY8rG,kBAChCx/G,EAAe72O,KAAKD,IAAIkkO,EAAM4S,cAEpC,GACE6wI,GACA1nX,KAAK2qB,IAAIg9V,EAAsB9qW,GAA2B,EAAfg6N,GAApB,KAEvB,OAIF,MAAMqS,EAAwBzZ,EAAWv/N,IAAM2mO,EACzCu/G,EAAOphI,EAAMqsF,QAAQ7pK,MACvBw9E,EAAMqsF,QAAQ7pK,MAAQw9E,EAAMqsF,QAAQ/vS,OACnC,EACCs2W,EAAkB5yJ,EAAM9nK,QAAUkpS,GAAQ,EAC1C1sG,EAAqBvsP,KAAK0qX,gBAC1B7kJ,EAAS5F,EAAI4F,OACbvD,EAAQuD,EAAO/d,EAAKwa,OACpBp9J,EACJ2yJ,EAAMhoK,OACNhtD,KAAK2qB,IAAIqqM,EAAM9nK,OAAQltD,KAAKub,MAAOsB,EAAW4iN,EAAMoxH,eAAkB,IACxE,IAAIi3B,EAAgBF,EAAkBF,EAActxB,EAAOsxB,EACvDI,EAAgB,GAAKF,IACvBE,EAAgB9nX,KAAK4qB,IAAI88V,EAA6B,EAAf1yJ,EAAM9nK,OAAcw8L,IAE7D,MAAMZ,EAAW8+H,EACG,IAAf5yJ,EAAM9nK,OAAiB46T,EACxB,EAEE7+H,EAAkBH,GACnBzmL,EAAc2yJ,EAAM9nK,QAAU47L,EAChB,EAAdzmL,EAAmBqnL,EAAai+H,EAAe,IAEpD,GAAI1+H,GAAmBC,EACrB,OAGF,MAAM6+H,EAAMj/H,EAAsB,EAAXA,EAAeY,EACtC,IACItO,EADA+N,EAAmCl2O,OAAOi9M,kBAG9C,IACEkrB,EAAgBn2B,EAAKwa,MAAQ,EAC7B2b,EAAgBgO,EAChBhO,IACA,CAGA,MAAMiO,EAAmBrmB,EAAOoY,GAAew1G,WAO/C,GANAznG,EAA2BhsP,KAAK6qX,kBAC9BL,EAAe,IACfI,EACAlrW,EAAWwsO,GACVrmB,EAAOoY,GAAexjC,SAErBuxC,EAA2BD,EAC7B,KAEJ,CAGA,GAAIC,GAA4BF,EAC9B,OAIF,GAAIE,EAAsC,GAAXtsO,EAC7B,OAEFugN,EAAIge,cAAgBhe,EAAI+d,cAAgBC,EACpCwsI,EAEFzqX,KAAKotP,YAAYxwC,OACf2tK,EAAc1nX,KAAK4qB,IAAI+8V,EAAcvxB,GACrCphI,EAAM9nK,QAIR/vD,KAAKotP,YAAY4rG,WAAWuxB,GAE9B,MAAMO,EAAuBjlJ,EAAOoY,GAAew1G,WAEjDzzV,KAAK0qX,gBAAkB1qX,KAAKigO,IAAIpoN,OAAO61O,qBACvCo9H,GAEA9qX,KAAK+qX,eAAeD,GAGtB9qX,KAAKolP,aACLxwM,GAAO0yD,KAAM,kBAAiBwgH,EAAK2G,KACjC1iJ,EAAO,SAAWA,EAAKnoE,MAAQ,eACpBkkN,EAAKwa,4DACOypB,EAAsB38N,QAAQ,yDACT08N,EAAgB18N,QAAQ,6DACpB48N,EAAyB58N,QACvE,8BAEsB,EAAP6pU,oCAEf/hF,GAAgB3qB,GAA2B,EAAbA,EAAiB,yCAEP,EAAvBvsP,KAAK0qX,iDACHzsI,OAA0C,EAAvB6sI,SAC1C7qJ,EAAI3lB,QAAQhmE,GAAO2qF,4BAA6B,CAAEnX,OAAM/7I,OAAM8rJ,SAAQ,EAjUtE73N,KAAKigO,IAAMgqJ,EACXjqX,KAAKotP,YAAcptP,KAAKgrX,gBACxBhrX,KAAKqgO,mBACP,CAEO0qJ,cAAAA,CAAet/H,GAChBA,IACF72M,GAAO6c,IAAK,0BAAyBg6L,KACrCzrP,KAAKigO,IAAIpoN,OAAO4zO,uBAAyBA,GAE3CzrP,KAAKmqX,gBAAkB,EACvBnqX,KAAKotP,YAAcptP,KAAKgrX,eAC1B,CAEQA,aAAAA,GACN,MAAMnzW,EAAS7X,KAAKigO,IAAIpoN,OACxB,OAAO,IAAI+xO,GACT/xO,EAAO2zO,eACP3zO,EAAO0zO,eACP1zO,EAAO4zO,uBAEX,CAEUprB,iBAAAA,GACR,MAAM,IAAEJ,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOyqF,aAAc/+N,KAAKiuO,cAAejuO,MAChDigO,EAAIn5K,GAAGwtF,GAAO4qF,YAAal/N,KAAKsxO,aAActxO,MAC9CigO,EAAIn5K,GAAGwtF,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,MAClDigO,EAAIn5K,GAAGwtF,GAAOspF,gBAAiB59N,KAAKirX,iBAAkBjrX,MACtDigO,EAAIn5K,GAAGwtF,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MAChDigO,EAAIn5K,GAAGwtF,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACpDigO,EAAIn5K,GAAGwtF,GAAO42O,uBAAwBlrX,KAAKmrX,sBAAuBnrX,MAClEigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACrC,CAEUugO,mBAAAA,GACR,MAAM,IAAEN,GAAQjgO,KACXigO,IAGLA,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOyqF,aAAc/+N,KAAKiuO,cAAejuO,MACjDigO,EAAIxqI,IAAI6+C,GAAO4qF,YAAal/N,KAAKsxO,aAActxO,MAC/CigO,EAAIxqI,IAAI6+C,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,MACnDigO,EAAIxqI,IAAI6+C,GAAOspF,gBAAiB59N,KAAKirX,iBAAkBjrX,MACvDigO,EAAIxqI,IAAI6+C,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MACjDigO,EAAIxqI,IAAI6+C,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACrDigO,EAAIxqI,IAAI6+C,GAAO42O,uBAAwBlrX,KAAKmrX,sBAAuBnrX,MACnEigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACtC,CAEOqzI,OAAAA,GACLrzI,KAAKugO,sBACLvgO,KAAKolP,aAELplP,KAAKigO,IAAMjgO,KAAKirP,mBAAqB,KACrCjrP,KAAKi8O,YAAcj8O,KAAKsqX,YAAc,IACxC,CAEUpgJ,iBAAAA,CACR9gN,EACAlU,GAEAlV,KAAK6qP,qBAAuB,EAC5B7qP,KAAKmqX,gBAAkB,EACvBnqX,KAAKkqX,iBAAmB,EACxBlqX,KAAKi8O,YAAcj8O,KAAKsqX,YAAc,KACtCtqX,KAAKwkP,kBACLxkP,KAAKolP,YACP,CAEQZ,eAAAA,GACFxkP,KAAK6qP,qBAAuB,GAAK7qP,KAAKi8O,cACxCj8O,KAAK6qP,oBAAsB7qP,KAAKi8O,YAAY3Z,OAE9CtiO,KAAK8qP,gBAAkB,EACvB9qP,KAAKmrX,wBACLnrX,KAAKqqX,WAAa,KAClBrqX,KAAK25V,mBAAqB,IAC5B,CAEQwxB,qBAAAA,GACNnrX,KAAKmqX,gBAAkB,EACvBnqX,KAAKoqX,iBAAmB,EAC1B,CAEUn8I,aAAAA,CAAc7kN,EAA4BlU,GAClD,MAAM4yM,EAAO5yM,EAAK4yM,KAClB,IAAI9nN,KAAKorX,eAAetjK,GAAxB,CAGuB,IAAAujK,EAAvB,IAAKvjK,EAAKypB,YACRvxO,KAAKi8O,YAAcn0B,EACnB9nN,KAAKsqX,YAAuB,OAAZe,EAAGn2W,EAAK62D,MAAIs/S,EAAI,KAElCrrX,KAAKolP,aACLplP,KAAKmlP,MAAQv6M,KAAK8wM,YAAY17O,KAAKirP,mBAAoB,IANvD,CAOF,CAEUggI,gBAAAA,CACR7hW,EACAlU,GAEAlV,KAAKolP,YACP,CAEUltE,OAAAA,CAAQ9uJ,EAAqBlU,GACrC,IAAIA,EAAKylM,MAGT,OAAQzlM,EAAKulM,SACX,KAAKmiB,GAAao0B,uBAClB,KAAKp0B,GAAai1B,oBAEhB7xP,KAAK6qP,qBAAuB,EAC5B7qP,KAAKmqX,gBAAkB,EACvB,MACF,KAAKvtJ,GAAagS,kBAAmB,CACnC,MAAM9mB,EAAO5yM,EAAK4yM,MACZ,YAAEm0B,EAAaquI,YAAav+S,GAAS/rE,KAC3C,GACE8nN,GACAm0B,GACAn0B,EAAK2G,KAAOwtB,EAAYxtB,IACxB3G,EAAKwa,QAAU2Z,EAAY3Z,MAC3B,CACA,MAAMjhK,EAAMC,YAAYD,MAClBw2J,EAAqB9rJ,EAAOA,EAAK8rJ,MAAQ/P,EAAK+P,MAC9C0yJ,EAAclpT,EAAMw2J,EAAMqsF,QAAQ/vS,MAClC8kV,EAAOphI,EAAMqsF,QAAQ7pK,MACvBw9E,EAAMqsF,QAAQ7pK,MAAQw9E,EAAMqsF,QAAQ/vS,OACnC,EAEL,GADwB0jN,EAAM9nK,QAAUkpS,GAAQ,EAC3B,CACnB,MAAMuxB,EAAexqX,KAAKotP,YAAY8rG,kBACtCl5V,KAAKotP,YAAYxwC,OACf2tK,EAAc1nX,KAAK4qB,IAAI+8V,EAAcvxB,GACrCphI,EAAM9nK,OAEV,MACE/vD,KAAKotP,YAAY4rG,WAAWuxB,EAEhC,CACA,KACF,EAEJ,CAEQM,iBAAAA,CACNS,EACAC,EACAC,EACAC,GAIA,OAFoBH,EAAqBE,EAAeD,GAChCE,EAAWzrX,KAAKkqX,iBAAmB,EAE7D,CAEU5nI,aAAAA,CAAcl5N,EAA4BlU,GAClD,MAAM2C,EAAS7X,KAAKigO,IAAIpoN,QAClB,QAAEqsS,GAAYhvS,EAAK2iN,MACnB6zJ,EAAgBxnE,EAAQlgT,IAAMkgT,EAAQ/vS,MACxC+iQ,GAAgBw0G,KAClB1rX,KAAKkqX,iBAAmBwB,EAAgB,KAEtCx2W,EAAKulM,QAAQgpB,KACfzjO,KAAKotP,YAAY9gN,OAAOz0B,EAAOyzO,gBAAiBzzO,EAAOwzO,iBAEvDrrP,KAAKotP,YAAY9gN,OAAOz0B,EAAO2zO,eAAgB3zO,EAAO0zO,eAE1D,CAwJUja,YAAAA,CACRloN,EAAyB4gT,GAEzB,IADA,KAAEliH,EAAI,KAAE/7I,GAAsBi+P,EAE9B,MAAMnyG,EAAQ9rJ,EAAOA,EAAK8rJ,MAAQ/P,EAAK+P,MAIvC,GAHI/P,EAAKhjN,OAAS+6N,IAChB7/N,KAAKotP,YAAY4rG,WAAWnhI,EAAMqsF,QAAQ7pK,MAAQw9E,EAAMqsF,QAAQ/vS,QAE9DnU,KAAKorX,eAAetjK,GAAxB,CAYA,GARA9nN,KAAKolP,aAEDt9B,EAAKwa,QAAUtiO,KAAK8qP,iBACtB9qP,KAAK8qP,gBAAkB,GAEzB9qP,KAAKmqX,gBAAkB,EAGnBnqX,KAAKigO,IAAIpoN,OAAOs0O,sBAAuB,CACzC,MAAMzsO,EAAWqsD,EAAOA,EAAKrsD,SAAWooM,EAAKpoM,SACvC4iN,EAAQtiO,KAAKigO,IAAI4F,OAAO/d,EAAKwa,OAC7B8pB,GACH9pB,EAAMvyK,OAASuyK,EAAMvyK,OAAO1G,MAAQ,GAAKwuK,EAAM9nK,OAC5Cs8L,GACH/pB,EAAMvyK,OAASuyK,EAAMvyK,OAAOrwC,SAAW,GAAKA,EAC/C4iN,EAAMvyK,OAAS,CAAE1G,MAAO+iM,EAAa1sO,SAAU2sO,GAC/C/pB,EAAMupB,YAAchpP,KAAKub,MAAO,EAAIguO,EAAeC,EACrD,CACA,GAAIvkC,EAAKypB,YAAa,CACpB,MAAMo6I,EAAqC,CACzC9zJ,QACA/P,OACA/7I,OACAroC,GAAIokL,EAAKhjN,MAEX9E,KAAK0xO,eAAep9F,GAAO6qF,cAAewsJ,GAC1C7jK,EAAKypB,aAAc,CACrB,MAEEvxO,KAAK6qP,oBAAsB/iC,EAAKwa,KA/BlC,CAiCF,CAEUoP,cAAAA,CACRtoN,EACAlU,GAEA,MAAM,KAAE4yM,EAAI,KAAE/7I,GAAS72D,EACjB2iN,EAAQ,MAAA9rJ,GAAAA,EAAM8rJ,MAAM9nK,OAASgc,EAAK8rJ,MAAQ/P,EAAK+P,MAErD,GAAIA,EAAMj3H,QACR,OAEF,GAAI5gG,KAAKorX,eAAetjK,GACtB,OAKF,MAAM8jK,EACJ/zJ,EAAMq/G,QAAQlzU,IACd6zN,EAAMqsF,QAAQ/vS,MACdtR,KAAK4qB,IACHoqM,EAAMqsF,QAAQ7pK,MAAQw9E,EAAMqsF,QAAQ/vS,MACpCnU,KAAKotP,YAAY8rG,mBAErBl5V,KAAKotP,YAAYxwC,OAAOgvK,EAAc/zJ,EAAM9nK,QAC5C8nK,EAAM00B,WAAavsP,KAAK0qX,gBACpB5iK,EAAKypB,YACPvxO,KAAKwsP,iBAAmBo/H,EAAe,IAEvC5rX,KAAKwsP,iBAAmB,CAE5B,CAEQ4+H,cAAAA,CAAetjK,GAErB,OAAOA,EAAKhjN,OAAS+6N,IAAsC,gBAAZ/X,EAAK2G,EACtD,CAEO22B,UAAAA,GACDplP,KAAKmlP,OAAS,IAChBv6M,KAAK2wM,cAAcv7O,KAAKmlP,OACxBnlP,KAAKmlP,OAAS,EAElB,CAEA,kBAAW0mI,GACT,MAAM,aAAEj/H,EAAY,aAAEX,GAAiBjsP,KAAKigO,IACtCssB,EAAavsP,KAAK0qX,gBAClBoB,EAAgB9rX,KAAKigO,IAAIpoN,OAAO81O,mBAChCo+H,EAAe/rX,KAAKgsX,cACxBz/H,EACAN,EACAW,EACA,EACAk/H,EACA,EACA,GAEF,GAAIC,GAAgB,EAClB,OAAOA,EAET,MAAM7lI,EAAalmP,KAAKigO,IAAIimB,WACtB+lI,EAAUppX,KAAK4qB,IAAI5qB,KAAK2qB,IAAI04N,EAAY+F,GAAeW,GAI7D,OAHAh4M,GAAO0yD,KACJ,kFAAiF4+I,gBAAyB+lI,KAEtGA,CACT,CAEA,mBAAW9+H,GACT,OAAIntP,KAAKoqX,kBACC,EAEHpqX,KAAK8qP,cACd,CAGA,iBAAW9M,GACT,MAAMmP,EAAkBntP,KAAKmtP,gBAEvB++H,EADclsX,KAAKotP,YACO5C,cAC1B2hI,EAAkBnsX,KAAK6qP,qBAAuB,EAEpD,IACuB,IAArBsC,KACE++H,IACCC,GACDnsX,KAAKoqX,mBAAqBpqX,KAAKosX,mBAEjC,OAAOj/H,EAIT,MAAME,EACJ6+H,GAAeC,EACXnsX,KAAKqsX,sBACLrsX,KAAK6rX,eAGX,IAAyB,IAArB1+H,EAAwB,CAC1B,MAAMtnB,EAAS7lO,KAAKigO,IAAI4F,OACxB,GACEA,EAAOxlO,OAASwC,KAAK2qB,IAAI2/N,EAAiBE,IAC1CxnB,EAAOsnB,GAAiB5H,WAAa1f,EAAOwnB,GAAkB9H,UAE9D,OAAO4H,CAEX,CAMA,OAHAntP,KAAK8qP,eAAiBuC,EACtBrtP,KAAKoqX,iBAAmBpqX,KAAKosX,kBAEtB/+H,CACT,CAEQ++H,eAAAA,GACN,MAAQ,GAAEpsX,KAAK0qX,mBAAmB1qX,KAAKssX,qBAAqBl9V,QAAQ,IACtE,CAEQi9V,mBAAAA,GACN,MAAM,YAAEpwI,EAAW,YAAEquI,EAAW,IAAErqJ,GAAQjgO,MACpC,aAAE4sP,EAAY,OAAE/0O,EAAM,aAAEo0O,GAAiBhsB,EACzCysB,EAAsB49H,EACxBA,EAAY5qW,SACZu8N,EACEA,EAAYv8N,SACZ,EACA6tO,EAAQvtP,KAAK0qX,gBAEb3+H,EAAwB/rP,KAAKssX,qBAEnC,IAAIx/H,EAAWj1O,EAAO41O,mBAClBV,EAAal1O,EAAO61O,qBAGxB,GAAI3B,EAAuB,CACzB,MAAMwgI,EAAYvsX,KAAKgsX,cACrBz+H,EACAtB,EACAW,EACAb,EACA,EACAe,EACAC,GAEF,GAAIw/H,GAAa,EACf,OAAOA,CAEX,CAEA,IAAI5+H,EAAqBjB,EACrB7pP,KAAK4qB,IAAIi/N,EAAqB70O,EAAO81O,oBACrC91O,EAAO81O,mBAEX,IAAK5B,EAAuB,CAE1B,MAAMS,EAAmBxsP,KAAKwsP,iBAC9B,GAAIA,EAAkB,CASpBmB,GAHwBjB,EACpB7pP,KAAK4qB,IAAIi/N,EAAqB70O,EAAO+1O,iBACrC/1O,EAAO+1O,iBAC4BpB,EACvC53M,GAAOn5B,KACJ,2BAA0B5Y,KAAKub,MAC9B,IAAOouO,iDACuC3pP,KAAKub,MACnD,IAAOuvO,SAIXb,EAAWC,EAAa,CAC1B,CACF,CACA,MAAMS,EAAYxtP,KAAKgsX,cACrBz+H,EACAtB,EACAW,EACAb,EACA4B,EACAb,EACAC,GAOF,GALAn4M,GAAOn5B,KACJ,SACCswO,EAAwB,uBAAyB,4CACxByB,KAEzBA,GAAa,EACf,OAAOA,EAGT,MAAMg/H,EAAWvsJ,EAAI4F,OAAOomB,GACtB9L,EAAYlgB,EAAI4F,OAAO5F,EAAIulB,WACjC,OAAI,MAAAgnI,OAAA,EAAAA,EAAUhmJ,UAAU,MAAA2Z,OAAA,EAAAA,EAAW3Z,SAC1BylB,EAGFhsB,EAAIulB,SACb,CAEQ8mI,kBAAAA,GACN,MAAMrsJ,EAAMjgO,KAAKigO,IACX6G,EAAQ7G,EAAI6G,MAClB,IAAKA,EACH,OAAOh1I,IAIT,MAAM4nJ,EACJ5S,GAAgC,IAAvBA,EAAM4S,aAAqB72O,KAAKD,IAAIkkO,EAAM4S,cAAgB,EAC/DpH,EAAarS,EAAIk4H,sBACvB,OAAQ7lH,EAAaA,EAAWv/N,IAAM,GAAK2mO,CAC7C,CAEQgxI,aAAAA,GACN,OAAO1qX,KAAKotP,YAAY5C,cACpBxqP,KAAKotP,YAAY5D,cACjBxpP,KAAKigO,IAAIpoN,OAAO4zO,sBACtB,CAEQugI,aAAAA,CACNr/H,EACAV,EACAW,EACAb,EACA4B,EACAb,EACAC,GACQ,IAAAwoG,EACR,MAAM1oG,EAA2Bd,EAAwB4B,EACnD9C,EAAsB7qP,KAAK6qP,oBAC3B4hI,GACqB,IAAzB5hI,EAA6B7qP,KAAKigO,IAAIimB,WAAa2E,GAC/C,YAAE5O,EAAW,YAAEquI,GAAgBtqX,MAC/B,OAAE6lO,EAAM,eAAE6mJ,EAAc,UAAElnI,EAAS,OAAE3tO,GAAW7X,KAAKigO,IAC3D,GAAsB,IAAlB4F,EAAOxlO,OACT,OAAO,EAET,MAAMiiO,EAA2BuD,EAAO4mJ,GAClChpJ,IAAc,MAALnB,GAAA,OAAKizH,EAALjzH,EAAO7nB,WAAP86I,EAAgB9xH,MACzB0mJ,GAAgC,IAAf3kI,IAA6C,IAAzBqF,EAC3C,IAAI8hI,EACA/yB,EAA4C,MAC5CC,GAAwB,MAALv3H,OAAK,EAALA,EAAO4wH,YAAa,EAE3C,MAAM,gBAAE4G,EAAe,gBAAEoB,GAAoBrjV,EACvC8hV,EACJ35V,KAAK25V,qBACJ35V,KAAK25V,mBrGrdL,SAA+B+yB,GACpC,OAAOA,EAAev2W,QACpB,CAACwjV,EAAwCnjL,KACvC,IAAIo2M,EAAajzB,EAAmBp0H,OAAO/uD,EAAMuwD,SAC5C6lJ,IACHA,EAAajzB,EAAmBp0H,OAAO/uD,EAAMuwD,SAAW,CACtDpY,OAAQ,GACRy2C,SAAU,CAAE,EAAG,GACfynH,YAAY,EACZC,eAAe,IAGnBF,EAAWj+J,OAAO/tN,KAAK41K,GACvB,MAAMu2M,EAAcv2M,EAAM4uF,UAAY,IAWtC,OAVAwnH,EAAWxnH,SAAS2nH,IACjBH,EAAWxnH,SAAS2nH,IAAgB,GAAK,EAC5CH,EAAWC,WAAaD,EAAWC,YAAcr2M,EAAMv/J,QACvD21W,EAAWE,cAAgBF,EAAWE,eAAiBt2M,EAAM2wD,WACzDylJ,EAAWC,aACblzB,EAAmBqzB,iBAAkB,GAEnCJ,EAAWE,gBACbnzB,EAAmBszB,oBAAqB,GAEnCtzB,CAAkB,GAE3B,CACEqzB,iBAAiB,EACjBC,oBAAoB,EACpB1nJ,OAAQ,CAAC,GAGf,CqGqbiC2nJ,CAAsBR,IACnD,GAAIvC,EAAgB,CAClB,IAA6B,IAAzBnqX,KAAKmqX,eACP,OAAOnqX,KAAKmqX,eAEd,MAAME,EACJrqX,KAAKqqX,aACJrqX,KAAKqqX,WrG1bP,SACLxkJ,EACA8zH,EACA1tG,EACAW,GAEA,OAAO/mB,EACJ5hO,MAAMgoP,EAAcW,EAAe,GACnCz2O,QAAO,CAACg3W,EAAqC7qJ,KAC5C,IAAKA,EAAM0nH,SACT,OAAOmjC,EAET,MAAMvmJ,EAActE,EAAMsE,YAC1B,IAAIwmJ,EAAOD,EAAM7qJ,EAAM0nH,UAClBojC,IACHD,EAAM7qJ,EAAM0nH,UAAYojC,EAAO,CAC7BC,WAAYv7R,IACZ1vE,UAAW0vE,IACXw7R,aAAcx7R,IACdy7R,SAAU,EACVC,YAAa,CAAEC,IAAK,GACpBroH,SAAU,CAAE,EAAK,GACjB4nH,iBAAkBpmJ,EAClBmf,cAAe,IAGnBqnI,EAAKC,WAAaxqX,KAAK4qB,IAAI2/V,EAAKC,WAAY/qJ,EAAMkE,SAClD,MAAMknJ,EAAsB7qX,KAAK4qB,IAAI60M,EAAMjiN,OAAQiiN,EAAMn9M,OA6BzD,OA5BAioW,EAAKhrW,UAAYvf,KAAK4qB,IAAI2/V,EAAKhrW,UAAWsrW,GAC1CN,EAAKE,aAAezqX,KAAK4qB,IAAI2/V,EAAKE,aAAchrJ,EAAM4wH,WACtDk6B,EAAKG,SAAW1qX,KAAK2qB,IAAI4/V,EAAKG,SAAUjrJ,EAAMq9F,OAC9CytD,EAAKrnI,eAAiBzjB,EAAMyjB,cAC5BqnI,EAAKI,YAAYlrJ,EAAMqxH,aACpBy5B,EAAKI,YAAYlrJ,EAAMqxH,aAAe,GAAK,EACrB/sH,GACvBA,EAAYrlO,SAASwlP,IACnB,IAAKA,EACH,OAEF,MAAM4mI,EAAah0B,EAAmBp0H,OAAOwhB,GACxC4mI,IAILP,EAAKJ,gBACHI,EAAKJ,iBAAmBrzB,EAAmBqzB,gBACvCW,EAAWd,WACXc,EAAWb,gBACTnzB,EAAmBqzB,kBAClBrzB,EAAmBszB,mBAC5B/pX,OAAO4pB,KAAK6gW,EAAWvoH,UAAU7jQ,SAAS6jQ,IACxCgoH,EAAKhoH,SAASA,IACXgoH,EAAKhoH,SAASA,IAAa,GAAKuoH,EAAWvoH,SAASA,EAAS,IAChE,IAGC+nH,CAAK,GACX,CAAC,EACR,CqGgY2BS,CACjB/nJ,EACA8zH,EACA1tG,EACAW,IAEEihI,ErGzoBL,SACLxD,EACAzwB,EACAjtG,EACAmtG,EACAoB,GAEA,MAAM4yB,EAAY5qX,OAAO4pB,KAAKu9V,GACxBrwB,EAAqB,MAAAF,OAAA,EAAAA,EAAiB10F,SACtC20F,EAAuB,MAAAD,OAAA,EAAAA,EAAiBx+I,WACxCyyK,EAAe/zB,GAAuD,IAAjCjkV,SAASikV,GAEpD,IAAIg0B,GAAY,EACZC,GAAuB,EACvB7rW,EAAY0vE,IACZw7R,EAAex7R,IACfu7R,EAAav7R,IACbo8R,EAAgB,EAChBV,EAAiC,GAErC,MAAM,UAAEryB,EAAS,mBAAEC,GAAuBH,GACxCrB,EACAsB,GAGF,IAAK,IAAIj5V,EAAI6rX,EAAUztX,OAAQ4B,KAAO,CACpC,MAAMmrX,EAAO/C,EAAWyD,EAAU7rX,IAClC+rX,EAAYZ,EAAKhoH,SAAS,GAAK,EAC/BhjP,EAAYvf,KAAK4qB,IAAIrL,EAAWgrW,EAAKhrW,WACrCkrW,EAAezqX,KAAK4qB,IAAI6/V,EAAcF,EAAKE,cAC3CD,EAAaxqX,KAAK4qB,IAAI4/V,EAAYD,EAAKC,YACvC,MAAMc,EAAsB/yB,EAAmBtrU,QAC5Ck0I,GAAUopN,EAAKI,YAAYxpN,GAAS,IAEnCmqN,EAAoB9tX,OAAS,IAC/B4tX,GAAuB,EACvBT,EAAcW,EAElB,CACA/rW,EAAY80P,GAAgB90P,GAAaA,EAAY,EACrDkrW,EAAep2G,GAAgBo2G,GAAgBA,EAAe,EAC9D,MAAMnzV,EAAYt3B,KAAK2qB,IAAI,KAAMpL,GAC3BgsW,EAAevrX,KAAK2qB,IAAI,GAAI8/V,GAwGlC,OAvGAD,EAAan2G,GAAgBm2G,GAAcA,EAAa1gI,EACxDA,EAAY9pP,KAAK2qB,IAAI6/V,EAAY1gI,GAE5BshI,IACHr0B,OAAoB94V,EACpB0sX,EAAc,IAkGT,CACLxjC,SAjGe8jC,EAAU33W,QACzB,CAACqD,EAA8Bi/N,KAE7B,MAAM41I,EAAgBhE,EAAW5xI,GACjC,GAAIA,IAAcj/N,EAChB,OAAOA,EAET,GAAI60W,EAAchB,WAAa1gI,EAK7B,OAJA6uG,GACE/iH,EACC,kBAAiB41I,EAAchB,oCAAoC1gI,KAE/DnzO,EAET,IAAK60W,EAAcrB,gBAKjB,OAJAxxB,GACE/iH,EACC,yDAEIj/N,EAET,GACEugV,GACAthH,EAAU/0O,QAAQq2V,EAAqB1rU,UAAU,EAAG,IAAM,IAAM,EAMhE,OAJAmtU,GACE/iH,EACC,2BAA0BshH,gBAEtBvgV,EAET,GAAIwgV,IAAuB+zB,GACzB,IAAKM,EAAcjpH,SAAS40F,GAO1B,OANAwB,GACE/iH,EACC,sBAAqBuhH,4CAA6D92V,OAAO4pB,KACxFuhW,EAAcjpH,cAGX5rP,OAEJ,KACHugV,GAAwBg0B,IAC1BC,GACgC,IAAhCK,EAAcjpH,SAAS,GAMvB,OAJAo2F,GACE/iH,EACC,yCAEIj/N,EAET,OAAI60W,EAAcjsW,UAAY+X,GAC5BqhU,GACE/iH,EACC,qBAAoB41I,EAAcjsW,0BAA0B+X,KAExD3gB,GAEL60W,EAAcf,aAAec,GAC/B5yB,GACE/iH,EACC,oBAAmB41I,EAAcf,6BAA6Bc,KAE1D50W,GAEJg0W,EAAYx+M,MAAMhL,GAAUqqN,EAAcb,YAAYxpN,GAAS,IAShEqqN,EAAcd,SAAWW,GAC3B1yB,GACE/iH,EACC,gBAAe41I,EAAcd,8BAA8BW,KAEvD10W,GAIPA,IACCuwU,GAAkCtxG,IACjCsxG,GAAkCvwU,IAClC60W,EAActoI,cAAgBskI,EAAW7wW,GAAUusO,eAE9CvsO,GAET00W,EAAgBG,EAAcd,SACvB90I,IAzBL+iH,GACE/iH,EACC,mCAAkC77N,KAAKjW,UACtC6mX,YAGGh0W,EAmBO,QAElB1Y,GAIA0sX,cACAryB,YACAmyB,eACAD,aAEJ,CqGgfwBiB,CAChBjE,EACAzwB,EACAjtG,EACAmtG,EACAoB,IAEI,SAAElR,EAAQ,YAAEwjC,EAAW,aAAEF,EAAY,WAAED,EAAU,UAAElyB,GACvD0yB,EACFlB,EAAkB3iC,EAClB4P,EAAoBuB,EAChBqyB,EAAYA,EAAYntX,OAAS,GACjCmtX,EAAY,GAChB3zB,EAAmByzB,EACnB3gI,EAAY9pP,KAAK2qB,IAAIm/N,EAAW0gI,GAChCz4U,GAAO6c,IAAK,2BAA0B70C,KAAKjW,UAAUknX,KACvD,MACElB,EAAkB,MAAArqJ,OAAA,EAAAA,EAAO0nH,SACzB4P,EAAoB,MAAAt3H,OAAA,EAAAA,EAAOqxH,WAG7B,MAAMjnG,EAAsB49H,EACxBA,EAAY5qW,SACZu8N,EACEA,EAAYv8N,SACZ,EAEA6uW,EAAkBvuX,KAAKotP,YAAY8rG,kBAAoB,IACvDs1B,EAA0B,GAChC,IAAK,IAAIvsX,EAAI2qP,EAAc3qP,GAAKgqP,EAAchqP,IAAK,KAAAwsX,EACjD,MAAMhwI,EAAY5Y,EAAO5jO,GACnBysX,EAAWzsX,EAAIwqX,EACrB,IAAKhuI,EACH,SAEF,GAEE5mO,EAAO82W,uBACNlwI,EAAU20G,kBACV30G,EAAU00G,iBACX,CACA,MAAMkH,EAAoB53Q,UAAU43Q,kBAIS,oBAApC,MAAAA,OAAA,EAAAA,EAAmBW,eAC1BtB,GACEj7G,EACAk7G,EACAC,EACAC,EACAltG,EACAmtG,IAGFr7G,EAAU00G,iBAAmBiH,GAC3B37G,EACAk7G,EACAU,GAEF57G,EAAU00G,iBAAiB1zP,MAAMu7P,IAC/B,IAAKh7V,KAAKigO,IACR,OAEFwe,EAAU20G,gBAAkB4H,EAC5B,MAAMn1H,EAAS7lO,KAAKigO,IAAI4F,OAClBjiO,EAAQiiO,EAAOniO,QAAQ+6O,GACzBu8G,EAAa1/U,MACfs5B,GAAO0yD,KACJ,gDACC0zP,EAAa1/U,oBACA1X,KAASgZ,KAAKjW,UAAUq0V,MAE/BA,EAAa5B,YACvBxkT,GAAO0yD,KACJ,qEAAoE1jG,KAASgZ,KAAKjW,UACjFq0V,MAGAp3V,GAAS,GAAKiiO,EAAOxlO,OAAS,IAChCu0C,GAAO6c,IAAK,oCAAmC7tD,KAC/C5D,KAAKigO,IAAIgnB,YAAYrjP,IAEzB,KAGF66O,EAAU20G,gBAAkB+F,EAEhC,CAIA,GACGwzB,GAAmBluI,EAAUurG,WAAa2iC,GAC1C/yB,GAAqBn7G,EAAUk1G,aAAeiG,GAC9C80B,GAAY70B,EAAmBp7G,EAAUy0G,YACxCw7B,GACA70B,EAAmB,GACnBA,EAAmBp7G,EAAUy0G,WAC9Bz0G,EAAU20G,kBACR,OAADq7B,EAAChwI,EAAU20G,gBAAgBkG,uBAA1Bm1B,EAAgD,GAAGj1B,QACtD,CACAg1B,EAAc5tX,KAAKqB,GACnB,QACF,CAEA,MAAMyqO,EAAe+R,EAAUhkC,QACzBuyC,GACHs9H,EACG,MAAA59I,OAAA,EAAAA,EAAcktG,WACF,MAAZltG,OAAY,EAAZA,EAAchE,wBAA0BgkB,EAE9C,IAAIO,EAUFA,EAHGyhI,EAGU3hI,EAAaJ,EAFbG,EAAWH,EAM1B,MAAMnmB,EACJkmB,GACAX,GAA+C,EAAtBW,GACF,IAAvBiB,EACI9nB,EAAO5jO,GAAGyxV,eACV7tH,EAAO5jO,GAAGwxV,WACVvmG,EAAwBltP,KAAK6qX,kBACjC0D,EACAthI,EACAzmB,EAAUwmB,OACOlsP,IAAjB4rO,GAgBF,GAXEugB,GAAczmB,IAEbvkO,IAAM4oP,GACoB,IAAxBpM,EAAU8G,WAA+C,IAA5B9G,EAAUsH,iBAIzCmH,GAAiBqhI,IACfr3G,GAAgBhqB,IAChBzpB,IAASzjO,KAAKwsP,kBACfU,EAAgBL,GACU,CAC5B,MAAMM,EAAkBntP,KAAKmtP,gBAoC7B,OAlCElrP,IAAMujP,IACgB,IAArB2H,GAA0BA,IAAoB3H,IAE3CgpI,EAAcnuX,QAChBu0C,GAAOihG,MACJ,0BAAyB24O,EAAc3nX,KACtC,WACM+lP,sCACN/mB,EAAO2oJ,EAAc,IAAIvoJ,WACtBJ,EAAO2oJ,EAAc,IAAI76B,oCAC5BrxH,EAAM2D,WACH2zH,KAGThlT,GAAOn5B,KACJ,0BAAyBgxW,MAAuBxqX,gBAAgBY,KAAKub,MACpE6uO,eACYpqP,KAAKub,MACjB6uO,EAAazmB,WACL+nJ,EAAgBn/V,QACxB,kBACe49N,EAAY59N,QAC3B,uBACoBy9N,EAAiBz9N,QACrC,oBACiB89N,EAAc99N,QAC/B,qBACkB+6V,cAA2BwC,gBAA8B/yB,mBAAmCp0G,MAGhH2kI,IACFnqX,KAAKmqX,eAAiBloX,GAGjBA,CACT,CACF,CAEA,OAAQ,CACV,CAEA,iBAAW+7O,CAAcoD,GACvB,MAAM,aAAEwL,EAAY,aAAEX,GAAiBjsP,KAAKigO,IACtC78N,EAAQP,KAAK4qB,IAAI5qB,KAAK2qB,IAAI4zN,EAAW6K,GAAeW,GACtD5sP,KAAK8qP,iBAAmB1nP,IAC1BpD,KAAKoqX,iBAAmB,GACxBpqX,KAAK8qP,eAAiB1nP,EAE1B,GD5fAsxQ,iB5D7Ua,MA4CbnoQ,WAAAA,CAAY0zN,GA3CZ,KACQxlB,QAA+B,KACvC,KACQ4zC,WAA4B,KACpC,KACQugI,oBAAc,EACtB,KACQpnT,eAAS,OAETy4J,SAAG,EAEX,KACOwuB,0BAAoC,EAE3C,KACQC,wBAAkC,EAE1C,KACO5nB,MAAiC,KAExC,KACO6nB,YAAkC,KAEzC,KACQkgI,mBAA2C,KAAI,KAE/CC,kBAAY,EAEpB,KACOC,aAAe,CACpBlrK,MAAO,EACPD,MAAO,EACPiX,WAAY,GACb,KAEMlM,OAAmB,CAAC,EAAC,KACrBqgC,cAA0B,CAAC,EAAC,KAC5BC,kBAAY,OAETx9L,SAAG,OACH61C,UAAI,OACJhsF,WAAK,OA4IP0zW,gBAAmB5lW,IACpBppB,KAAKigO,KAGVjgO,KAAKigO,IAAIyhI,gBAAgB,EAC1B,KACOutB,kBAAqB7lW,IACtBppB,KAAKigO,KAGVjgO,KAAKigO,IAAI0hI,iBAAiB,EAgvB5B,KACQxyG,mBAAqB,KAC3B,MAAM,MAAEroB,EAAK,YAAE6nB,GAAgB3uP,KAC/BA,KAAKyxD,IAAI,uBACLq1K,IACFA,EAAM3lI,oBAAoB,UAAWnhG,KAAKkvX,iBAC1ClvX,KAAKgwP,6BACLhwP,KAAKigO,IAAI3lB,QAAQhmE,GAAOwoF,eAAgB,CACtCgK,QACA6nB,YAAaA,KAIbA,GAEFA,EAAYxtJ,oBAAoB,aAAcnhG,KAAKmvP,oBAErDnvP,KAAKovP,oBAAoB,EAC1B,KAEOC,oBAAsB,KAC5BrvP,KAAKyxD,IAAI,sBAAsB,EAChC,KAEO69L,oBAAsB,KAC5BtvP,KAAKyxD,IAAI,qBAAqB,EAC/B,KAEOy9T,gBAAkB,KACxB,MAAM,SAAEC,EAAQ,WAAE9gI,GAAeruP,KAC7BmvX,IAAa9gI,GACfz5M,GAAOt5B,MACJ,0DAAyD+yO,OAAgB8gI,KAE9E,EAr6BAnvX,KAAKigO,IAAMA,EACX,MAAM+2H,EAAY,sB5D3Ef,IAA8Bp2T,E4D4EjC5gC,KAAK8uX,c5D5E4BluV,E4D6E/BsyM,GAAejT,EAAIpoN,OAAO6xU,0B5D3EZ,qBAAT9+S,MAAwBhK,IAAYgK,KAAam7S,oB4D6ExD/lV,KAAKyxD,IAAM7c,GAAO6c,IAAIjlC,KAAKooB,GAAQoiT,GACnCh3V,KAAKsnG,KAAO1yD,GAAO0yD,KAAK96E,KAAKooB,GAAQoiT,GACrCh3V,KAAKsb,MAAQs5B,GAAOt5B,MAAMkR,KAAKooB,GAAQoiT,GACvCh3V,KAAKovX,oBACLpvX,KAAKqgO,mBACP,CAEOgvJ,cAAAA,GACL,OACErvX,KAAKsvX,uBAAuBjvX,OAAS,GACrC6C,OAAO4pB,KAAK9sB,KAAKgvP,eAAe3uP,OAAS,CAE7C,CAEOgzI,OAAAA,GACLrzI,KAAKugO,sBACLvgO,KAAKy6M,QAAU,KACfz6M,KAAK6uX,mBAAqB,KAE1B7uX,KAAKigO,IAAM,IACb,CAEUI,iBAAAA,GACR,MAAM,IAAEJ,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,MACtDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACtDigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACtDigO,EAAIn5K,GAAGwtF,GAAO2oF,aAAcj9N,KAAK2wP,cAAe3wP,MAChDigO,EAAIn5K,GAAGwtF,GAAO8oF,iBAAkBp9N,KAAKixP,kBAAmBjxP,MACxDigO,EAAIn5K,GAAGwtF,GAAO4oF,cAAel9N,KAAK6wP,eAAgB7wP,MAClDigO,EAAIn5K,GAAGwtF,GAAOgpF,WAAYt9N,KAAKkxP,YAAalxP,MAC5CigO,EAAIn5K,GAAGwtF,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MACtDigO,EAAIn5K,GAAGwtF,GAAO0pF,cAAeh+N,KAAKyxP,eAAgBzxP,MAClDigO,EAAIn5K,GAAGwtF,GAAO29E,YAAajyN,KAAKsjP,aAActjP,MAC9CigO,EAAIn5K,GAAGwtF,GAAO8qF,aAAcp/N,KAAKuvX,cAAevvX,KAClD,CAEUugO,mBAAAA,GACR,MAAM,IAAEN,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,MACvDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACvDigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACvDigO,EAAIxqI,IAAI6+C,GAAO2oF,aAAcj9N,KAAK2wP,cAAe3wP,MACjDigO,EAAIxqI,IAAI6+C,GAAO8oF,iBAAkBp9N,KAAKixP,kBAAmBjxP,MACzDigO,EAAIxqI,IAAI6+C,GAAO4oF,cAAel9N,KAAK6wP,eAAgB7wP,MACnDigO,EAAIxqI,IAAI6+C,GAAOgpF,WAAYt9N,KAAKkxP,YAAalxP,MAC7CigO,EAAIxqI,IAAI6+C,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MACvDigO,EAAIxqI,IAAI6+C,GAAO0pF,cAAeh+N,KAAKyxP,eAAgBzxP,MACnDigO,EAAIxqI,IAAI6+C,GAAO29E,YAAajyN,KAAKsjP,aAActjP,MAC/CigO,EAAIxqI,IAAI6+C,GAAO8qF,aAAcp/N,KAAKuvX,cAAevvX,KACnD,CAEQovX,iBAAAA,GACNpvX,KAAKivP,aAAe,CAAC,EACrBjvP,KAAK4uX,eAAiB,IAAI9X,GAAqB92W,KAAKivP,cACpDjvP,KAAKwnE,UAAY,CACfq8I,MAAO,GACPD,MAAO,GACPiX,WAAY,IAEd76N,KAAK+uX,aAAe,CAClBlrK,MAAO,EACPD,MAAO,EACPiX,WAAY,GAEd76N,KAAK6uX,mBAAqB,IAC5B,CAEQ3kJ,iBAAAA,GACNlqO,KAAKyuP,0BAA4BzuP,KAAK0uP,wBAA0B,EAChE1uP,KAAKy6M,QAAU,IACjB,CAEUynC,gBAAAA,CACR94N,EACAlU,GAMA,IAAIo7O,EAAsB,GACrBp7O,EAAK2uM,QAAU3uM,EAAK0uM,QAAW1uM,EAAKwoO,YACvC4S,EAAc,GAEhBtwP,KAAKyuP,0BAA4BzuP,KAAK0uP,wBAA0B4B,EAChEtwP,KAAKyxD,IAAK,GAAEzxD,KAAKyuP,0DACnB,CAEU8B,gBAAAA,CACRnnO,EACAlU,GAEA,MAAM4xN,EAAS9mO,KAAK8mO,MAAQ5xN,EAAK4xN,MAC3BhC,EAAcoO,GAAelzO,KAAK8uX,cAExC,GAAIhoJ,GAAShC,EAAa,KAAA0qJ,EACxB,MAAMnvP,EAAMrgI,KAAK2uP,YAAc,IAAI7pB,EACnC9kO,KAAKyxD,IAAK,yBAAwB,OAAF+9T,EAAEnvP,EAAG9zH,kBAAH,EAAAijX,EAAgBtkX,QAElDm1H,EAAGj2G,iBAAiB,aAAcpqB,KAAKmvP,oBACvC9uH,EAAGj2G,iBAAiB,cAAepqB,KAAKsvP,qBACxCjvH,EAAGj2G,iBAAiB,cAAepqB,KAAKqvP,qBACpCrvP,KAAK8uX,eACPzuP,EAAGj2G,iBAAiB,iBAAkBpqB,KAAKivX,mBAC3C5uP,EAAGj2G,iBAAiB,eAAgBpqB,KAAKgvX,kBAI3C,MAAMS,EAAazvX,KAAKquP,WAAazjN,KAAKirD,IAAIm/G,gBAAgB30E,GAE9D,GAAIrgI,KAAK8uX,aACP,IACEhoJ,EAAMp9I,gBAAgB,OAEtB,MAAMgmS,EAAO9kV,KAAam7S,mBAC1Bj/G,EAAM6oJ,sBACJ7oJ,EAAM6oJ,uBAA0BD,GAAOrvP,aAAcqvP,EACvDnY,GAAqBzwI,GA88B/B,SAAmBA,EAAyBr+M,GAC1C,MAAMmY,EAASgK,KAAKlpC,SAASC,cAAc,UAC3Ci/B,EAAO97B,KAAO,YACd87B,EAAOuxD,IAAM1pE,EACbq+M,EAAMjlO,YAAY++B,EACpB,CAl9BUgvV,CAAU9oJ,EAAO2oJ,GACjB3oJ,EAAM3sL,OACN,MAAO7+B,GACPwrN,EAAM30I,IAAMs9R,CACd,MAEA3oJ,EAAM30I,IAAMs9R,EAEd3oJ,EAAM18M,iBAAiB,UAAWpqB,KAAKkvX,gBACzC,CACF,CAcUjtI,gBAAAA,GACR,MAAM,MAAEnb,EAAK,YAAE6nB,EAAW,WAAEN,GAAeruP,KAC3C,GAAI2uP,EAAa,CAEf,GADA3uP,KAAKyxD,IAAI,0BACsB,SAA3Bk9L,EAAYj7L,WACd,IAKEi7L,EAAY6B,cACZ,MAAOz+M,IACP/xC,KAAKsnG,KACF,qBAAoBv1D,GAAIuB,oCAE7B,CAGFtzC,KAAK2wP,gBACLhC,EAAYxtJ,oBAAoB,aAAcnhG,KAAKmvP,oBACnDR,EAAYxtJ,oBAAoB,cAAenhG,KAAKsvP,qBACpDX,EAAYxtJ,oBAAoB,cAAenhG,KAAKqvP,qBAChDrvP,KAAK8uX,eACPngI,EAAYxtJ,oBACV,iBACAnhG,KAAKivX,mBAEPtgI,EAAYxtJ,oBAAoB,eAAgBnhG,KAAKgvX,kBAKnDloJ,IACFA,EAAM3lI,oBAAoB,UAAWnhG,KAAKkvX,iBACtC7gI,GACFzjN,KAAKirD,IAAIo+I,gBAAgBoa,GAKvBruP,KAAKmvX,WAAa9gI,GACpBvnB,EAAMp9I,gBAAgB,OAClB1pF,KAAK8uX,cACPvX,GAAqBzwI,GAEvBA,EAAM3sL,QAENn6C,KAAKsnG,KACH,iEAKNtnG,KAAK2uP,YAAc,KACnB3uP,KAAK8mO,MAAQ,KACb9mO,KAAKquP,WAAa,KAClBruP,KAAKyuP,0BAA4BzuP,KAAK0uP,wBACtC1uP,KAAKgvP,cAAgB,CAAC,EACtBhvP,KAAK2uN,OAAS,CAAC,CACjB,CAEA3uN,KAAKigO,IAAI3lB,QAAQhmE,GAAO0oF,oBAAgBl8N,EAC1C,CAEU6vP,aAAAA,GACR3wP,KAAKsvX,uBAAuB/tX,SAASuD,IACnC9E,KAAK6vX,YAAY/qX,EAAK,IAExB9E,KAAKovX,oBACLpvX,KAAKigO,IAAI0hI,iBACX,CAEQkuB,WAAAA,CAAY/qX,GAClB,MAAM6wK,EAAK31K,KAAKivP,aAAanqP,GAC7B,IACU,IAAAgrX,EAAR,GAAIn6M,EACF31K,KAAK+vX,sBAAsBjrX,GAG3B9E,KAAKivP,aAAanqP,QAAQhE,EACtB,OAAJgvX,EAAI9vX,KAAK2uP,cAALmhI,EAAkBE,cAAc3vX,QAClCL,KAAK2uP,YAAYiC,mBAAmBj7E,GAGxC,MAAO5jI,IACP/xC,KAAKsnG,KAAM,iBAAgBxiG,IAAQitC,GACrC,CACF,CAEU8+M,cAAAA,CACRznO,EACAlU,GAEA,MAAM+6W,EAAoBjwX,KAAKsvX,uBAAuBjvX,OAChD6vX,EAAahtX,OAAO4pB,KAAK5X,GAgD/B,GA/CAg7W,EAAW3uX,SAAS4hP,IAClB,GAAI8sI,EAAmB,CAErB,MAAMz5M,EAAQx2K,KAAK2uN,OAAOw0B,GAC1B,GAAI3sE,GAA4C,oBAA5BA,EAAM5qI,OAAOukV,WAA2B,KAAAC,EAC1D,MAAM,GAAE1sV,EAAE,MAAEq4K,EAAK,WAAEqnC,EAAU,UAAE3iP,EAAS,SAAE80D,GACxCrgD,EAAKiuO,GACDktI,EAAmB7lC,GACvBh0K,EAAMulC,MACNvlC,EAAM4sE,YAEFktI,EAAe,MAAAD,OAAA,EAAAA,EAAkBhtX,QACrCi0W,GACA,MAEF,IAAIiZ,EAAa/lC,GAA0BzuI,EAAOqnC,GAClD,MAAMotI,EAAsB,OAAbJ,EAAGG,QAAU,EAAVH,EAAY/sX,QAC5Bi0W,GACA,MAEF,GAAIiZ,GAAcD,IAAiBE,EAAW,CACd,UAA1BrtI,EAAUl/O,MAAM,EAAG,KACrBssX,EAAanmC,GACXmmC,EACAvwX,KAAK8uX,eAGT,MAAMh+H,EAAY,GAAErwP,YAAoB8vX,IACxCvwX,KAAKywX,iBAAiBttI,EAAW2N,GACjC9wP,KAAKyxD,IAAK,mBAAkB4+T,QAAuBE,KACnDvwX,KAAK2uN,OAAOw0B,GAAa,CACvBv3M,OAAQ4qI,EAAM5qI,OACdmwK,QACAt7M,YACA2iP,aACA7tL,WACA7xB,KAEJ,CACF,CACF,MAEE1jC,KAAKgvP,cAAc7L,GAAajuO,EAAKiuO,EACvC,IAIE8sI,EACF,OAGF,MAAMxhI,EAA4B5rP,KAAK2qB,IACrCxtB,KAAKyuP,0BAA4B,EACjC,GAEEzuP,KAAKyuP,4BAA8BA,IACrCzuP,KAAKyxD,IACF,GAAEg9L,mCAA2DyhI,EAAWrpX,KACvE,QAGJ7G,KAAKyuP,0BAA4BA,GAE/BzuP,KAAK2uP,aAA+C,SAAhC3uP,KAAK2uP,YAAYj7L,YACvC1zD,KAAKovP,oBAET,CAEUqhI,gBAAAA,CAAiB3rX,EAAMgsP,GAC/B,MAAM,eAAE89H,GAAmB5uX,KACrBq7C,EAA6B,CACjC87T,QAASA,KACP,MAAMxhM,EAAK31K,KAAKivP,aAAanqP,GACzB6wK,IACF31K,KAAKyxD,IAAK,YAAW3sD,0BAA6BgsP,KAClDn7E,EAAGw6M,WAAWr/H,IAEhB89H,EAAevX,oBAAoBvyW,EAAK,EAE1Cm9Q,QAASA,OACTm1F,WAAYA,OACZl/L,QAAU58J,IACRtb,KAAKsnG,KAAM,oBAAmBxiG,sBAA0BwW,EAAM,GAIlEszW,EAAexqX,OAAOi3C,EAAWv2C,IAAQ9E,KAAKgvP,cAAclqP,GAC9D,CAEUmsP,iBAAAA,CACR7nO,EACAsnW,GAEA,MAAM,IAAEzwJ,EAAG,eAAE2uJ,EAAc,OAAEjgK,GAAW3uN,MAClC,KAAEkV,EAAI,KAAEpQ,EAAI,KAAEgjN,EAAI,KAAE/7I,EAAI,UAAE43R,GAAc+sB,EACxCC,EAAahtB,EAAUxsB,UAAUryU,GAEjC8rX,EAAuBhmV,KAAK02B,YAAYD,MAC9CsvT,EAAWx8W,MAAQy8W,EACnB,MAAMC,EAAgB/oK,EAAK+P,MAAMs/G,UAC3B25C,EAAgB/kT,EAAOA,EAAK8rJ,MAAMs/G,UAAY,KACxB,IAAxB05C,EAAc18W,QAChB08W,EAAc18W,MAAQy8W,GAEpBE,GAAyC,IAAxBA,EAAc38W,QACjC28W,EAAc38W,MAAQy8W,GAQxB,MAAMprK,EAAamJ,EAAO9K,MAC1B,IAAIktK,GAAuB,EACd,UAATjsX,GAA8C,gBAA1B,MAAA0gN,OAAA,EAAAA,EAAY/kN,aAClCswX,GACG/wX,KAAK6uX,oBACW,IAAjBlrB,EAAUjgU,IACV1jC,KAAK6uX,mBAAmBpgK,KAAOk1I,EAAUl1I,GAC3CzuN,KAAK6uX,mBAAqBlrB,GAG5B,MAAMv0F,EAAYtnD,EAAK3zM,MACjBknC,EAA6B,CACjC87T,QAASA,KAEP,GADAwZ,EAAW1yB,aAAerzT,KAAK02B,YAAYD,MACvC0vT,EAAsB,CACxB,MAAMp7M,EAAK31K,KAAKivP,aAAanqP,GAC7B,GAAI6wK,EAAI,CACN,MAAM3kH,EAAQo+M,EAAYz5F,EAAG85E,gBACzB5sP,KAAKD,IAAIouD,IAAU,KACrBhxD,KAAKyxD,IACF,kDAAiD29M,aAAqBp+M,UAAc82J,EAAK2G,OAE5F94C,EAAG85E,gBAAkB2f,EAEzB,CACF,CACApvQ,KAAKgxX,eAAe97W,EAAMpQ,EAAK,EAEjCm9Q,QAASA,OAGTm1F,WAAYA,KAEV,MAAMpzW,EAAM4mC,KAAK02B,YAAYD,MAC7BsvT,EAAWzyB,WAAayyB,EAAW3sX,IAAMA,EACb,IAAxB6sX,EAAcx2O,QAChBw2O,EAAcx2O,MAAQr2I,GAEpB8sX,GAAyC,IAAxBA,EAAcz2O,QACjCy2O,EAAcz2O,MAAQr2I,GAGxB,MAAM,aAAEirP,GAAiBjvP,KACnB0vO,EAAa,CAAC,EACpB,IAAK,MAAM5qO,KAAQmqP,EACjBvf,EAAW5qO,GAAQstO,GAAa0rH,YAAY7uG,EAAanqP,IAE3D9E,KAAK+uX,aAAajqX,GAAQ,EACb,UAATA,GAA6B,UAATA,EACtB9E,KAAK+uX,aAAal0J,WAAa,GAE/B76N,KAAK+uX,aAAalrK,MAAQ,EAC1B7jN,KAAK+uX,aAAanrK,MAAQ,GAE5B5jN,KAAKigO,IAAI3lB,QAAQhmE,GAAO+oF,gBAAiB,CACvCv4N,OACAgjN,OACA/7I,OACA43R,YACA9+V,OAAQijN,EAAKhjN,KACb4qO,cACA,EAEJx3D,QAAU58J,IAER,MAAM8N,EAAmB,CACvBtkB,KAAM63N,GAAWniB,YACjB31M,OAAQijN,EAAKhjN,KACb21M,QAASmiB,GAAai1B,oBACtBo/H,iBAAkBnsX,EAClBgjN,OACA/7I,OACA43R,YACAroV,QACAy2B,IAAKz2B,EACLq/L,OAAO,GAGT,GAAKr/L,EAAuBwlB,OAASi9D,aAAamzR,mBAGhD9nW,EAAMqxL,QAAUmiB,GAAasnB,sBACxB,CACL,MAAMitI,IAAqBnxX,KAAK+uX,aAAajqX,GAC7CskB,EAAMqxL,QAAUmiB,GAAai1B,oBAI7B7xP,KAAKsnG,KACF,UAAS6pR,KAAoBlxJ,EAAIpoN,OAAOi6O,mDAAmDhtP,mBAE1FqsX,GAAoBlxJ,EAAIpoN,OAAOi6O,sBACjC1oO,EAAMuxL,OAAQ,EAElB,CACAslB,EAAI3lB,QAAQhmE,GAAOimE,MAAOnxL,EAAM,GAGpCwlW,EAAexqX,OAAOi3C,EAAWv2C,IAAQ9E,KAAKgvP,cAAclqP,GAC9D,CAEUqsP,gBAAAA,CACR/nO,EACAlU,GAEA,MAAM,eAAE05W,GAAmB5uX,KACrBoxX,EAAkBtsX,IAAsB,CAC5CqyW,QAASn3W,KAAKqxX,eAAe7kW,KAC3BxsB,KACA8E,EACAoQ,EAAKo9M,YACLp9M,EAAKusO,WAEPwgC,QAASA,OAGTm1F,WAAYA,KAEVp3W,KAAKigO,IAAI3lB,QAAQhmE,GAAOkpF,eAAgB,CAAE14N,QAAO,EAEnDozK,QAAU58J,IACRtb,KAAKsnG,KAAM,yBAAwBxiG,iBAAqBwW,EAAM,IAI9DpG,EAAKpQ,KACP8pX,EAAexqX,OAAOgtX,EAAel8W,EAAKpQ,MAAOoQ,EAAKpQ,MAEtD9E,KAAKsvX,uBAAuB/tX,SAASuD,IACnC8pX,EAAexqX,OAAOgtX,EAAetsX,GAAOA,EAAK,GAGvD,CAEUw+O,YAAAA,CAAal6N,EAA2BlU,GAChD,MAAM,KAAE4yM,EAAI,KAAE/7I,GAAS72D,EACjBo8W,EAA6C,GAC7Cj6C,EAAoBtrQ,EACtBA,EAAKsrQ,kBACLvvH,EAAKuvH,kBACLA,EAAkBt2G,IACpBuwJ,EAAkB1wX,KAAK,eAEnBy2U,EAAkBt2G,KACpBuwJ,EAAkB1wX,KAAK,SAErBy2U,EAAkBt2G,KACpBuwJ,EAAkB1wX,KAAK,UAmBM,IAA7B0wX,EAAkBjxX,QACpBL,KAAKsnG,KACF,oEAAmEwgH,EAAKhjN,eAAegjN,EAAKwa,aAAaxa,EAAK2G,MAInHzuN,KAAKuxX,cArBeC,KAClB,MAAMnwT,EAAMz2B,KAAK02B,YAAYD,MAC7BymJ,EAAK+P,MAAMs/G,UAAUnzU,IAAMq9D,EACvB0K,IACFA,EAAK8rJ,MAAMs/G,UAAUnzU,IAAMq9D,GAE7B,MAAMw2J,EAAQ9rJ,EAAOA,EAAK8rJ,MAAQ/P,EAAK+P,MACvC73N,KAAKigO,IAAI3lB,QAAQhmE,GAAO6qF,cAAe,CACrCrX,OACA/7I,OACA8rJ,QACAn0L,GAAIokL,EAAKhjN,MACT,GAS2BwsX,EACjC,CAEQ/B,aAAAA,CAAcnmW,EAA4BlU,GAChDlV,KAAKyxX,aACP,CAIUvgI,WAAAA,CAAY9nO,EAA0BlU,GAChClV,KAAKsvX,uBAAuBn5W,QAAO,CAACoM,EAAKzd,KACrD,MAAM6wK,EAAK31K,KAAKivP,aAAanqP,GAQ7B,OAPI6wK,GAAQzgK,EAAKpQ,MAAQoQ,EAAKpQ,OAASA,IACrC6wK,EAAG+7M,QAAS,EACP/7M,EAAG8jE,QACN9jE,EAAG8jE,OAAQ,EACXz5O,KAAKyxD,IAAK,GAAE3sD,4BAGTyd,KAAWozJ,IAAMA,EAAG8jE,MAAM,IAChC,KAGDz5O,KAAKyxD,IAAK,sCACVzxD,KAAKuxX,cAAa,KAChBvxX,KAAKsvX,uBAAuB/tX,SAASuD,IACnC,MAAM6wK,EAAK31K,KAAKivP,aAAanqP,GACzB6wK,IACFA,EAAG+7M,QAAS,EACd,IAEF,MAAM,YAAE/iI,GAAgB3uP,KACnB2uP,GAA0C,SAA3BA,EAAYj7L,YAQhC1zD,KAAKyxD,IAAK,qCAEVk9L,EAAY6B,eATN7B,GACF3uP,KAAKyxD,IACF,qEAAoEk9L,EAAYj7L,aAO9D,IAG/B,CAEU+9L,cAAAA,CACRroO,EAA2BuoW,GAE3B,IADA,QAAEl3K,GAA2Bk3K,EAExBl3K,EAAQ+oB,UAAUnjO,SAGvBL,KAAKy6M,QAAUA,EAEXz6M,KAAKsvX,uBAAuBjvX,OAC9BL,KAAKuxX,aAAavxX,KAAKgwP,2BAA2BxjO,KAAKxsB,OAEvDA,KAAKgwP,6BAET,CAEAyhI,WAAAA,GACE,MAAM,IAAExxJ,EAAG,QAAExlB,EAAO,MAAEqsB,GAAU9mO,KAChC,IAAK8mO,GAAqB,OAAZrsB,EACZ,OAIF,IAD0Bz6M,KAAKsvX,uBACRjvX,OACrB,OAGF,MAAMwX,EAA8BooN,EAAIpoN,OAClC8hC,EAAcmtL,EAAMntL,YACpB00S,EAAiB5zI,EAAQqgI,oBAGzBivC,EACJtvK,EAAQgpB,MAAwC,OAAhC5rN,EAAOu5O,qBACnBv5O,EAAOu5O,qBACPv5O,EAAOkyW,iBAEb,GAAI7yG,GAAgB6yG,IAAqBA,EAAmB,EAAG,CAC7D,MAAM6H,EAAsB/uX,KAAK2qB,IAAIu8V,EAAkB17B,GACjD/8F,EACJzuP,KAAKgrC,MAAM8L,EAAc00S,GAAkBA,EAC3CujC,EAEF5xX,KAAK6xX,gBACHl4U,EACA00S,EACA/8F,EAEJ,CAEA,GACE4lB,GAAgBr/P,EAAOmyW,4BACvBnyW,EAAOmyW,0BAA4B,EACnC,CACA,MAAM8H,EAAoBjvX,KAAK2qB,IAC7B3V,EAAOgnO,gBACPhnO,EAAOmyW,2BAGH+H,EAAuBlvX,KAAK2qB,IAAIskW,EAAmBzjC,GACnD2jC,EACJnvX,KAAKgrC,MAAM8L,EAAc00S,GAAkBA,EAC3C0jC,EAEF/xX,KAAKiyX,iBACHt4U,EACA00S,EACA2jC,EAEJ,CACF,CAEAH,eAAAA,CACEl4U,EACA00S,EACA/8F,GAEA,MAAM,QAAE72C,EAAO,aAAEw0C,GAAiBjvP,KACRA,KAAKsvX,uBAEb/tX,SAASuD,IACzB,MAAM6wK,EAAKs5E,EAAanqP,GACxB,GAAI6wK,EAAI,CACN,MAAMm6D,EAAWsC,GAAa0rH,YAAYnoL,GAE1C,GACEm6D,EAASzvO,OAAS,GAClBixP,EAA2BxhB,EAAS37N,MAAM,GAC1C,CAMA,GALAnU,KAAKigO,IAAI3lB,QAAQhmE,GAAO49O,oBAAqB,CAC3Cj/I,UAAWqe,IAIF,MAAP72C,GAAAA,EAASgpB,KACXzjO,KAAKigO,IAAI3lB,QAAQhmE,GAAOqrF,yBAA0B,CAChDsT,UAAWqe,SAER,GACL37E,EAAG8jE,OACH3J,EAAS9rO,IAAI8rO,EAASzvO,OAAS,GAAKs5C,EAA+B,EAAjB00S,EAKlD,YAHAruV,KAAKyxD,IACF,gBAAe3sD,sDAKpB9E,KAAKigO,IAAI3lB,QAAQhmE,GAAOipF,gBAAiB,CACvCjL,YAAa,EACbmvB,UAAW6P,EACXxsP,QAEJ,CACF,IAEJ,CAEAmtX,gBAAAA,CACEt4U,EACA00S,EACA2jC,GAEA,MAAM,aAAE/iI,GAAiBjvP,KACCA,KAAKsvX,uBAEb/tX,SAASuD,IACzB,MAAM6wK,EAAKs5E,EAAanqP,GACxB,GAAI6wK,EAAI,CACN,MAAMm6D,EAAWsC,GAAa0rH,YAAYnoL,GACpCw8M,EAAoBriJ,EAASzvO,OAEnC,GAAI8xX,EAAoB,EACtB,OAEF,MAAMn/I,EAAclD,EAAS37N,MAAMg+W,EAAoB,GACjDl/I,EAAYnD,EAAS9rO,IAAImuX,EAAoB,GAEnD,GACEH,EAA4Bh/I,GAC3Br5L,GAAeq5L,GAAer5L,GAAes5L,EAE9C,OACK,GAAIt9D,EAAG8jE,OAAS9/L,EAAcs5L,EAAY,EAAIo7G,EAInD,YAHAruV,KAAKyxD,IACF,gBAAe3sD,uDAKpB9E,KAAKigO,IAAI3lB,QAAQhmE,GAAOipF,gBAAiB,CACvCjL,YAAa0gB,EACbyO,UAAW3vJ,IACXhtF,QAEJ,IAEJ,CAOQkrP,0BAAAA,GACN,IACGhwP,KAAKy6M,UACLz6M,KAAK8mO,QACL9mO,KAAK2uP,aAC0B,SAAhC3uP,KAAK2uP,YAAYj7L,WAEjB,OAEF,MAAM,QAAE+mJ,EAAO,IAAEwlB,EAAG,MAAE6G,EAAK,YAAE6nB,GAAgB3uP,KACvCoyX,EAAgB33K,EAAQ+oB,UAAU,GAAGrvN,MAAQsmM,EAAQspB,cACrDsuJ,EAAgBvrJ,EAAMpnN,SACtB4yW,EAAap7G,GAAgBvoB,EAAYjvO,UAC3CivO,EAAYjvO,SACZ,EAEA+6L,EAAQgpB,MAAQxD,EAAIpoN,OAAO65O,sBAE7B/C,EAAYjvO,SAAWoyE,IACvB9xF,KAAKuyX,oBAAoB93K,KAExB23K,EAAgBE,GAAcF,EAAgBC,IAC9Cn7G,GAAgBm7G,MAMjBryX,KAAKyxD,IAAK,qCAAoC2gU,EAAchjW,QAAQ,MACpEu/N,EAAYjvO,SAAW0yW,EAE3B,CAEAG,mBAAAA,CAAoB7lJ,GAClB,MAAMiiB,EAAc3uP,KAAK2uP,YACnBnrB,EAAYkJ,EAAalJ,UAE/B,GADYA,EAAUnjO,QACXqsO,EAAajJ,MAAQ,MAAAkrB,GAAAA,EAAa6jI,qBAAsB,CACjE,MAAMr+W,EAAQtR,KAAK2qB,IAAI,EAAGg2M,EAAU,GAAGrvN,OACjCnQ,EAAMnB,KAAK2qB,IAAIrZ,EAAOA,EAAQu4N,EAAa3I,eACjD/jO,KAAKyxD,IACF,mCAAkCk9L,EAAYjvO,uCAAuCvL,KAASnQ,MAEjG2qP,EAAY6jI,qBAAqBr+W,EAAOnQ,EAC1C,CACF,CAEUorP,kBAAAA,GACR,MAAM,0BAAEX,EAAyB,eAAEmgI,EAAc,cAAE5/H,GAAkBhvP,KAM/DywP,EAAqBvtP,OAAO4pB,KAAKkiO,GAAe3uP,OACtD,GACEowP,KACEhC,GACuB,IAAvBgC,GACA,eAAgBzB,GAClB,CAEAhvP,KAAK0wP,oBAAoB1B,GACzBhvP,KAAKgvP,cAAgB,CAAC,EAEtB,MAAM1/L,EAAUtvD,KAAKsvX,uBACrB,GAAIhgU,EAAQjvD,OACVL,KAAKigO,IAAI3lB,QAAQhmE,GAAO6oF,eAAgB,CAAExO,OAAQ3uN,KAAK2uN,SACvDr/J,EAAQ/tD,SAASuD,IACf8pX,EAAe5X,YAAYlyW,EAAK,QAE7B,CACL,MAAMwW,EAAQ,IAAItJ,MAChB,qDAEFhS,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa61J,iCACtB93K,OAAO,EACPr/L,QACA6L,OAAQ7L,EAAMg4B,SAElB,CACF,CACF,CAEUo9M,mBAAAA,CAAoB/hC,GAC5B,MAAM,aAAEsgC,EAAY,YAAEN,GAAgB3uP,KACtC,IAAK2uP,EACH,MAAM38O,MAAM,wDAEd,IAAK,MAAMmxO,KAAax0B,EACtB,IAAKsgC,EAAa9L,GAAY,KAAAuvI,EAC5B,MAAMl8M,EAAQm4C,EAAOw0B,GACrB,IAAK3sE,EACH,MAAMxkK,MACH,kCAAiCmxO,6BAItC,IAAIpnC,GACkC,KAApC,OAAA22K,EAAAl8M,EAAM4sE,iBAAN,EAAAsvI,EAAkBhvX,QAAQ,MACtB8yK,EAAM4sE,WACN5sE,EAAMulC,MACRA,GAC4B,UAA1BonC,EAAUl/O,MAAM,EAAG,KACrB83M,EAAQquI,GAAuBruI,EAAO/7M,KAAK8uX,eAG/C,MAAMh+H,EAAY,GAAEt6E,EAAM/1K,oBAAoBs7M,IAC9C/7M,KAAKyxD,IAAK,yBAAwBq/L,MAClC,IACE,MAAMn7E,EAAMs5E,EAAa9L,GACvBwL,EAAYoC,gBAAgBD,GACxB6hI,EAASxvI,EACfnjP,KAAK4yX,kBAAkBD,EAAQ,cAAe3yX,KAAK6yX,kBACnD7yX,KAAK4yX,kBAAkBD,EAAQ,YAAa3yX,KAAKuvP,gBACjDvvP,KAAK4yX,kBAAkBD,EAAQ,QAAS3yX,KAAKkwP,kBAEzClwP,KAAK8uX,cACP9uX,KAAK4yX,kBACHD,EACA,kBACA,CAAC7tX,EAAwBskB,KAEvB,MAAM0pW,EAAgB1pW,EAAM0pW,cACX,MAAbA,GAAAA,EAAezyX,QACjBL,KAAKigO,IAAI3lB,QAAQhmE,GAAOkpF,eAAgB,CACtC14N,KAAMq+O,GAEV,IAKNnjP,KAAK2uN,OAAOw0B,GAAa,CACvBv3M,OAAQ+pI,EACRomC,MAAOA,EACPt7M,UAAW+1K,EAAM/1K,UACjB2iP,WAAY5sE,EAAM4sE,WAClB7tL,SAAUihH,EAAMjhH,SAChB7xB,GAAI8yI,EAAM9yI,IAEZ,MAAOqO,IACP/xC,KAAKsb,MAAO,2CAA0Cy2B,GAAIuB,WAC1DtzC,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAao0B,uBACtBr2C,OAAO,EACPr/L,MAAOy2B,GACPk/U,iBAAkB9tI,EAClB2N,SAAUA,GAEd,CACF,CAEJ,CAuCA,YAAYq+H,GAA+B,IAAA4D,EAAAC,EACzC,MAAMlsJ,GAAkB,OAAVisJ,EAAA/yX,KAAK8mO,QAAL,OAAUksJ,EAAVD,EAAYtmX,oBAAF,EAAVumX,EAAAlpX,KAAAipX,EAA4B,YAAa/yX,KAAK8mO,MAC5D,OAAY,MAALA,OAAK,EAALA,EAAO30I,GAChB,CAEQ0gS,gBAAAA,CAAiB/tX,GACvB,MAAM,eAAE8pX,GAAmB5uX,KACT4uX,EAAeliX,QAAQ5H,GAC/Bm9Q,SACZ,CAEQ1yB,cAAAA,CAAezqP,GAAwB,IAAAmuX,EAC7C,GAAqC,YAAjC,OAAAA,EAAAjzX,KAAK2uP,kBAAL,EAAAskI,EAAkBv/T,YAEpB,YADA1zD,KAAK6vX,YAAY/qX,GAGnB,MAAM,eAAE8pX,GAAmB5uX,KACT4uX,EAAeliX,QAAQ5H,GAC/BsyW,aACVwX,EAAevX,oBAAoBvyW,EACrC,CAEQorP,gBAAAA,CAAiBprP,EAAwBskB,GAAc,IAAA8pW,EAC7D,MAAM53W,EAAQ,IAAItJ,MACf,GAAElN,iDAAoE,OAAlBouX,EAAElzX,KAAK2uP,kBAAW,EAAhBukI,EAAkBx/T,cAE3E1zD,KAAKsb,MAAO,GAAEA,IAAS8N,GAGvBppB,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAauzB,uBACtB8gI,iBAAkBnsX,EAClBwW,QACAq/L,OAAO,IAGT,MAAMt/J,EAAYr7C,KAAK4uX,eAAeliX,QAAQ5H,GAC1Cu2C,GACFA,EAAU68H,QAAQ58J,EAEtB,CAGQ+1W,cAAAA,CACNvsX,EACAwtN,EACAmvB,GAEA,MAAM,MAAE3a,EAAK,YAAE6nB,EAAW,eAAEigI,EAAc,aAAE3/H,GAAiBjvP,KACvD21K,EAAKs5E,EAAanqP,GACxB,IAAKgiO,IAAU6nB,IAAgBh5E,EAK7B,OAJA31K,KAAKsnG,KACF,iCAAgCxiG,8CAEnC8pX,EAAevX,oBAAoBvyW,GAGrC,MAAMutX,EAAgBn7G,GAAgBpwC,EAAMpnN,UACxConN,EAAMpnN,SACNoyE,IACEwgS,EAAap7G,GAAgBvoB,EAAYjvO,UAC3CivO,EAAYjvO,SACZoyE,IACEogK,EAAcrvP,KAAK2qB,IAAI,EAAG8kM,GAC1B6/B,EAAYtvP,KAAK4qB,IAAIg0N,EAAW4wI,EAAeC,GACjDngI,EAAYD,KAAiBv8E,EAAG+7M,QAAU/7M,EAAG8jE,QAC/C9jE,EAAG8jE,OAAQ,EACXz5O,KAAKyxD,IACF,aAAYygM,KAAeC,eAAuBrtP,kBAErD6wK,EAAGj0H,OAAOwwM,EAAaC,IAGvBy8H,EAAevX,oBAAoBvyW,EAEvC,CAGQksX,cAAAA,CAAe97W,EAAkBpQ,GACvC,MAAM6wK,EAAK31K,KAAKivP,aAAanqP,GAC7B,GAAK6wK,EASLA,EAAG8jE,OAAQ,EACX9jE,EAAGi8E,aAAa18O,QATd,IAAKlV,KAAKgvP,cAAclqP,GACtB,MAAM,IAAIkN,MACP,+BAA8BlN,wCAQvC,CAKQysX,YAAAA,CACNC,GAEA,IADAliU,EAAgCtiD,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGhN,KAAKsvX,uBAExC,IAAKhgU,EAAQjvD,OAGX,OAFAL,KAAKyxD,IAAI,iEACT3a,QAAQnD,UAAU8rD,KAAK+xR,GAGzB,MAAM,eAAE5C,GAAmB5uX,KAGrBmzX,EAAqB7jU,EAAQhmD,KAAKxE,GACtC8pX,EAAe1X,cAAcpyW,KAE/BgyC,QAAQ+sF,IAAIsvP,GAAoB1zR,MAAK,KAEnC+xR,IACAliU,EAAQ/tD,SAASuD,IACf,MAAM6wK,EAAK31K,KAAKivP,aAAanqP,GAItB,MAAF6wK,GAAAA,EAAI06E,UACPu+H,EAAevX,oBAAoBvyW,EACrC,GACA,GAEN,CAEQwqX,oBAAAA,GACN,OAAOpsX,OAAO4pB,KAAK9sB,KAAKivP,aAC1B,CAEQ2jI,iBAAAA,CACN9tX,EACAskB,EACA/d,GAEA,MAAMugC,EAAS5rC,KAAKivP,aAAanqP,GACjC,IAAK8mC,EACH,OAEF,MAAM4gC,EAAWnhE,EAAGmhB,KAAKxsB,KAAM8E,GAC/B9E,KAAKwnE,UAAU1iE,GAAMlE,KAAK,CAAEwoB,QAAOojD,aACnC5gC,EAAOxhB,iBAAiBhB,EAAOojD,EACjC,CAEQujT,qBAAAA,CAAsBjrX,GAC5B,MAAM8mC,EAAS5rC,KAAKivP,aAAanqP,GAC5B8mC,GAGL5rC,KAAKwnE,UAAU1iE,GAAMvD,SAAS0tB,IAC5B2c,EAAOu1D,oBAAoBlyE,EAAE7F,MAAO6F,EAAEu9C,SAAS,GAEnD,G4DhyBAmoM,mBAAoBriB,GACpB8gI,gB1G1Ua,MAQb7mX,WAAAA,CAAY0zN,GAAU,KAPLA,SAAG,OACZozJ,cAAwB,EAAC,KACzBC,oBAA2C,CAAC,EAAC,KAC7C7hU,SAAG,OACH61C,UAAI,OACJhsF,WAAK,EAGXtb,KAAKigO,IAAMA,EACXjgO,KAAKyxD,IAAM7c,GAAO6c,IAAIjlC,KAAKooB,GAAS,WACpC50C,KAAKsnG,KAAO1yD,GAAO0yD,KAAK96E,KAAKooB,GAAS,cACtC50C,KAAKsb,MAAQs5B,GAAOt5B,MAAMkR,KAAKooB,GAAS,YACxC50C,KAAKqgO,mBACP,CAEQA,iBAAAA,GACN,MAAMJ,EAAMjgO,KAAKigO,IACjBA,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACnCigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAO0pF,cAAeh+N,KAAKyxP,eAAgBzxP,KACpD,CAEQugO,mBAAAA,GACN,MAAMN,EAAMjgO,KAAKigO,IACZA,IAGLA,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACpCigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKuzX,WAAYvzX,MACvCigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAO0pF,cAAeh+N,KAAKyxP,eAAgBzxP,MACrD,CAEAqzI,OAAAA,GACErzI,KAAKugO,sBAELvgO,KAAKigO,IAAM,KACXjgO,KAAKszX,oBAAsB,CAAC,CAC9B,CAEAv3I,SAAAA,CAAUY,GAA8B,CAExCX,QAAAA,GACEh8O,KAAKqzX,cAAgB,CACvB,CAEQG,oBAAAA,CAAqB1rK,GAC3B,OAAW,MAAJA,OAAI,EAAJA,EAAMhjN,QAAS+6N,GAClB/X,EAAKwa,MACLtiO,KAAKigO,IAAIulB,SACf,CAEQtb,iBAAAA,GACNlqO,KAAKqzX,cAAgB,EACrBrzX,KAAKszX,oBAAsB,CAAC,CAC9B,CAEQ7hI,cAAAA,GACNzxP,KAAKqzX,cAAgB,CACvB,CAEQn7M,OAAAA,CAAQ9uJ,EAAqBlU,GAAiB,IAAAu+W,EAAAC,EACpD,GAAIx+W,EAAKylM,MACP,OAEF,MAAMslB,EAAMjgO,KAAKigO,IACXrlK,EAAU1lD,EAAK0lD,QAErB,OAAQ1lD,EAAKulM,SACX,KAAKmiB,GAAa+R,gBAClB,KAAK/R,GAAagS,kBAClB,KAAKhS,GAAawS,eAClB,KAAKxS,GAAayS,iBAEhB,YADAn6N,EAAKwjV,YAAc14V,KAAK2zX,2BAA2Bz+W,IAErD,KAAK0nN,GAAa5gB,mBAEhB,GAAI,OAAJy3K,EAAIv+W,EAAK4yM,OAAL2rK,EAAWh6V,IAKb,YAJAvkB,EAAKwjV,YAAc,CACjBt/U,OAAQy9U,GACR9jO,MAAO+jO,KAKb,KAAKl6H,GAAa4jI,SAClB,KAAK5jI,GAAaliB,mBAIhB,OAFAxlM,EAAKwjV,YAAc14V,KAAK2zX,2BAA2Bz+W,QACnDA,EAAKwjV,YAAYt/U,OAASy9U,IAG5B,KAAKj6H,GAAaoQ,kBAClB,KAAKpQ,GAAa2yH,oBAChB,KAAAqkC,EAAAC,EAEE,MAAMrtI,EACJtxO,EAAKrQ,SAAWg7N,GACX3qN,EAAKotN,MACNrC,EAAIulB,UAERtwO,EAAKulM,UAAYmiB,GAAaoQ,mBAChB,OAAb4mJ,EAAC1+W,EAAK0lD,UAAL,OAAYi5T,EAAZD,EAAclnJ,eAAdmnJ,EAA4BpwJ,KAE9BvuN,EAAKwjV,YAAc14V,KAAK8zX,+BACtB5+W,EACAsxO,IAIFtxO,EAAK+uO,YAAa,EAClB/uO,EAAKwjV,YAAc14V,KAAK+zX,qBAAqB7+W,EAAMsxO,GAEvD,CACA,OACF,KAAK5pB,GAAa6Q,iBAClB,KAAK7Q,GAAa4Q,mBAOhB,YAN8B,kBAAnB,MAAA5yK,OAAA,EAAAA,EAAS0nK,SAClBptN,EAAKwjV,YAAc14V,KAAK8zX,+BACtB5+W,EACA0lD,EAAQ0nK,SAId,KAAK1F,GAAa+Q,uBAClB,KAAK/Q,GAAa8Q,yBAClB,KAAK9Q,GAAayyH,oBAClB,KAAKzyH,GAAawyH,4BAChB,GAAIx0R,EAAS,CACX,MAAM0nK,EAAQrC,EAAI4F,OAAO5F,EAAIulB,WAC7B,GACEljB,IACE1nK,EAAQ91D,OAAS86N,IACjB0C,EAAMsxH,cAAch5R,EAAQmsK,UAC3BnsK,EAAQ91D,OAAS86N,IAChB0C,EAAMwxH,iBAAiBl5R,EAAQmsK,UAYnC,OARA7xN,EAAKwjV,YAAc14V,KAAK8zX,+BACtB5+W,EACA+qN,EAAIulB,WAENtwO,EAAKwjV,YAAYt/U,OACfy9U,QACF3hV,EAAKwjV,YAAY3lO,MACf+jO,GAGN,CACA,OACF,KAAKl6H,GAAaukJ,oCAChB,CACE,MAAM7+I,EAAQrC,EAAI4F,OAAO5F,EAAIulB,WACvBwuI,EAA2B,MAAL1xJ,OAAK,EAALA,EAAOv1E,MAAM,cACrCinO,EACF9+W,EAAKwjV,YAAc,CACjBt/U,OAAQy9U,GACR9jO,MAAO+jO,GACPm9B,UAAWD,GAGbh0X,KAAKk0X,eAAeh/W,EAExB,CACA,OACF,KAAK0nN,GAAao0B,uBAClB,KAAKp0B,GAAaxI,kBAClB,KAAKwI,GAAai1B,oBAKhB,YAJA38O,EAAKwjV,YAAc14V,KAAK+zX,qBACtB7+W,EACU,OADNw+W,EACJx+W,EAAKotN,OAAKoxJ,EAAIzzJ,EAAIulB,YAGtB,KAAK5oB,GAAaiE,mBAClB,KAAKjE,GAAauzB,uBAClB,KAAKvzB,GAAasnB,kBAClB,KAAKtnB,GAAa2pB,mBAClB,KAAK3pB,GAAa4d,qBAClB,KAAK5d,GAAa+d,sBAClB,KAAK/d,GAAake,sBAKhB,YAJA5lO,EAAKwjV,YAAc,CACjBt/U,OAAQy9U,GACR9jO,MAAO+jO,KAKT5hV,EAAKpQ,OAAS63N,GAAWi0C,kBAC3B5wQ,KAAKk0X,eAAeh/W,EAExB,CAEQg/W,cAAAA,CAAeh/W,GACrB,MAAMsxO,EAAaxmP,KAAKwzX,qBAAqBt+W,EAAK4yM,MAElD5yM,EAAK+uO,YAAa,EAClB/uO,EAAKwjV,YAAc14V,KAAK+zX,qBAAqB7+W,EAAMsxO,EACrD,CAEQstI,8BAAAA,CACN5+W,EACAsxO,GAEA,MACMsvG,EAAcH,GADR31V,KAAKigO,IACsBpoN,OAAOq2U,mBAAoBh5U,GAC5Dq4C,EAAavtD,KAAKqzX,gBAOxB,GANcl9B,GACZL,EACAvoS,EACAmoS,GAAexgV,GACfA,EAAKssC,UAGL,MAAO,CACLpoC,OAAQy9U,GACR9jO,MAAO+jO,GACPhB,cACAvoS,cAGJ,MAAMmrS,EAAc14V,KAAK+zX,qBAAqB7+W,EAAMsxO,GAKpD,OAJIsvG,IACF4C,EAAY5C,YAAcA,EAC1B4C,EAAYnrS,WAAaA,GAEpBmrS,CACT,CAEQi7B,0BAAAA,CAA2Bz+W,GACjC,MAAM+qN,EAAMjgO,KAAKigO,IAGXk0J,EAAoBn0X,KAAKwzX,qBAAqBt+W,EAAK4yM,MACnDwa,EAAQrC,EAAI4F,OAAOsuJ,IACnB,eAAEh1B,EAAc,cAAEujB,GAAkBziJ,EAAIpoN,OACxCi+U,EAAcH,GAClBzgV,EAAKulM,QAAQj5I,WAAW,OAASkhT,EAAgBvjB,EACjDjqV,GAEIk/W,EAAiBn0J,EAAI4F,OAAO1vN,QAChC,CAACoM,EAAK+/M,IAAU//M,EAAM+/M,EAAMyjB,eAC5B,GAGF,GAAIzjB,EAAO,CACLptN,EAAKulM,UAAYmiB,GAAa4jI,UAChCl+H,EAAMyjB,gBAQR,GANcowG,GACZL,EACAs+B,EACA1+B,GAAexgV,GACfA,EAAKssC,UAGL,MAAO,CACLpoC,OAAQy9U,GACR9jO,MAAO+jO,GACPhB,cACAvoS,WAAY6mU,EAGlB,CAGA,MAAM17B,EAAc14V,KAAK+zX,qBAAqB7+W,EAAMi/W,GAMpD,OAJIr+B,IACF4C,EAAY5C,YAAcA,EAC1B4C,EAAYnrS,WAAa6mU,GAEpB17B,CACT,CAEQq7B,oBAAAA,CACN7+W,EACAsxO,GAEA,MAAMvmB,EAAMjgO,KAAKigO,IACE,OAAfumB,QAAsC1lP,IAAf0lP,IACzBA,EAAavmB,EAAIulB,WAEnB,MAAMljB,EAAQtiO,KAAKigO,IAAI4F,OAAO2gB,GAC9B,GAAIlkB,EAAO,KAAA+xJ,EAAAC,EACT,MAAMztI,EAAe3xO,EAAKulM,QAC1B6nB,EAAMijB,YACFsB,IAAiBjqB,GAAai1B,qBAChCvvB,EAAMyjB,gBAGR,IAAI3E,GAAa,EACjB,MAAM,OAAEvb,EAAM,UAAE2f,EAAS,aAAEyG,EAAY,aAAEW,GAAiB3sB,EACrDA,EAAImgB,mBACPngB,EAAIulB,WAAa,GAEnB,MAAM+uI,EAAyB,OAAZF,EAAGn/W,EAAK4yM,WAAI,EAATusK,EAAWvvX,KAQ3B0vX,GALHD,IAAkB10J,IACjBgnB,IAAiBjqB,GAAa5gB,oBACL,UAA1B9mM,EAAK+7W,mBACHpqI,IAAiBjqB,GAAao0B,wBAC7BnK,IAAiBjqB,GAAai1B,uBAGlChsB,EAAO72D,MAAKi6J,IAAA,IAAC,WAAE3tH,GAAY2tH,EAAA,OAAK3mG,EAAMhnB,aAAeA,CAAU,IAM3Dm5K,EAHsB,UAA1Bv/W,EAAK+7W,mBACJpqI,IAAiBjqB,GAAao0B,wBAC7BnK,IAAiBjqB,GAAai1B,sBAGhChsB,EAAO72D,MACLw6J,IAAA,IAAC,SAAEwgB,EAAQ,WAAE1uI,GAAYkuH,EAAA,OACvBlnG,EAAM0nH,WAAaA,GAAY1nH,EAAMhnB,aAAeA,CACxD,KACMx2M,KAAM4vX,EAAmB3tJ,QAAS4tJ,GAC5B,OADkDL,EAC9Dp/W,EAAK0lD,SAAO05T,EAAI,CAAC,EACnB,IAAK,IAAIryX,EAAI4jO,EAAOxlO,OAAQ4B,KAAO,CACjC,MAAMw2O,GAAax2O,EAAIujP,GAAa3f,EAAOxlO,OAC3C,GACEo4O,IAAc+M,GACd/M,GAAawT,GACbxT,GAAamU,GACmB,IAAhC/mB,EAAO4S,GAAW8M,UAClB,KAAAqvI,EAAAC,EACA,MAAMC,EAAiBjvJ,EAAO4S,GAE9B,GACEoO,IAAiBjqB,GAAa4jI,UAC9B+zB,IAAkB10J,IAClB3qN,EAAK4yM,KACL,CACA,MAAM4kB,EAAe7G,EAAO4S,GAAWh+B,QACvC,GAAIiyB,EAAc,CAChB,MAAMqoJ,EAAgB38I,GACpBljO,EAAK4yM,KACL4kB,EAAalJ,UACbtuN,EAAK4yM,KAAK3zM,OAEZ,GAAiB,MAAb4gX,GAAAA,EAAet7V,IACjB,QAEJ,MACK,IACJi7V,IAAsB90J,IACrBk1J,EAAelhC,cAAc+gC,IAC9BD,IAAsB90J,IACrBk1J,EAAehhC,iBAAiB6gC,GAGlC,SACK,GACJJ,IAAkB10J,IACA,OADuB+0J,EACxCtyJ,EAAMsE,cAANguJ,EAAmB5lN,MAAM+3D,GACvB+tJ,EAAelhC,cAAc7sH,MAEhCwtJ,IAAkB10J,IACG,OADuBg1J,EAC3CvyJ,EAAMyxH,iBAAN8gC,EAAsB7lN,MAAM+3D,GAC1B+tJ,EAAehhC,iBAAiB/sH,MAEnCytJ,GACClyJ,EAAMhnB,aAAew5K,EAAex5K,aACpCk5K,GACAlyJ,EAAMhnB,aAAew5K,EAAex5K,YACrCm5K,GACCnyJ,EAAM0nH,WAAa8qC,EAAe9qC,SAGpC,QACF,CACA5oG,EAAY3I,EACZ,KACF,CACF,CACA,GAAI2I,GAAa,GAAKnhB,EAAIulB,YAAcpE,EAGtC,OAFAlsO,EAAK+uO,YAAa,EAClBjkP,KAAKqzX,cAAgB,EACd,CACLj6W,OAAQy9U,GACR9jO,MAAO+jO,GACP94G,cAAeoD,EAGrB,CAGA,MAAO,CACLhoO,OAAQy9U,GACR9jO,MAAO+jO,GAEX,CAEOy8B,UAAAA,CAAWnqW,EAAqBlU,GAAiB,IAAA8/W,EACtD,OAAQ,OAARA,EAAQ9/W,EAAKwjV,kBAAL,EAAAs8B,EAAkB57W,QACxB,KAAKy9U,GACH,MACF,KAAKA,GACH72V,KAAKi1X,0BAA0B//W,GAE5BA,EAAKwjV,YAAYlhT,UAClBtiC,EAAKulM,UAAYmiB,GAAa4jI,SAGrB,gCAAgC11U,KAAK5V,EAAKoG,MAAMg4B,WACzDtzC,KAAKsnG,KACF,4BAA2BpyF,EAAK+7W,wFAEnCjxX,KAAKigO,IAAI42C,qBALT3hQ,EAAKylM,OAAQ,EAafzlM,EAAKylM,OACP36M,KAAKigO,IAAI+b,UAGb,CAEQi5I,yBAAAA,CAA0B//W,GAChC,MAAM+qN,EAAMjgO,KAAKigO,IACXy4H,EAAcxjV,EAAKwjV,YACzB,IAAKA,EACH,OAEF,MAAM,MAAE3lO,EAAK,UAAEkhQ,EAAS,cAAEj2I,GAAkB06G,EAE5C,OAAQ3lO,GACN,KAAK+jO,GACH92V,KAAKk1X,YAAYhgX,EAAM8oO,GACvB,MACF,KAAK84G,GACCm9B,IACFh0J,EAAIk1J,aAAe1iC,GAAWA,GAAW/uV,QAAQuwX,GAAa,GAC9Dv7B,EAAYlhT,UAAW,GAEzBx3C,KAAKsnG,KACF,0CAAyC24H,EAAIk1J,0BAK/Cz8B,EAAYlhT,UACfx3C,KAAKk1X,YAAYhgX,EAAM8oO,EAE3B,CAEQk3I,WAAAA,CAAYhgX,EAAiBsxO,QAChB1lP,IAAf0lP,GAA4BtxO,EAAKwjV,cACnC14V,KAAKsnG,KAAM,sBAAqBk/I,WAAoBtxO,EAAKulM,WACzDz6M,KAAKigO,IAAI+d,cAAgBwI,EACzBtxO,EAAKwjV,YAAYlhT,UAAW,EAE5Bx3C,KAAKigO,IAAIge,cAAgBj+O,KAAKigO,IAAI+d,cAEtC,G0GlIA42B,cExXF,MAWEroQ,WAAAA,CAAY0zN,GAAU,KAVdA,SAAG,OACHm0B,iCAA2C,EAAK,KAChDjP,WAAK,OACLre,MAAiC,KAAI,KACrC8tB,cAAQ,OACRG,kBAA4B,EAAC,KAC7BE,kBAA4B,EACpC,KACQ7B,sBAAgB,EAGtBpzP,KAAKigO,IAAMA,EAEXjgO,KAAKqgO,mBACP,CAEO86I,mBAAAA,CAAoB/nH,GACzBpzP,KAAKozP,iBAAmBA,CAC1B,CAEU/yB,iBAAAA,GACRrgO,KAAKigO,IAAIn5K,GAAGwtF,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,KAC7D,CAEUugO,mBAAAA,GACRvgO,KAAKigO,IAAIxqI,IAAI6+C,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,KAC9D,CAEAqzI,OAAAA,GACMrzI,KAAKmlP,OACP5J,cAAcv7O,KAAKmlP,OAGrBnlP,KAAKugO,sBACLvgO,KAAKo0P,iCAAkC,EACvCp0P,KAAK8mO,MAAQ,IACf,CAEUypB,gBAAAA,CACRnnO,EACAlU,GAEA,MAAM2C,EAAS7X,KAAKigO,IAAIpoN,OACxB,GAAIA,EAAOw8O,kBAAmB,CAC5B,MAAMvtB,EACJ5xN,EAAK4xN,iBAAiBl8L,KAAKmoN,iBAAmB79O,EAAK4xN,MAAQ,KAC7D9mO,KAAK8mO,MAAQA,EACTA,GAAkD,oBAAlCA,EAAMwtB,0BACxBt0P,KAAKo0P,iCAAkC,GAGzCxpN,KAAK2wM,cAAcv7O,KAAKmlP,OACxBnlP,KAAKmlP,MAAQv6M,KAAK8wM,YAChB17O,KAAKu0P,iBAAiB/nO,KAAKxsB,MAC3B6X,EAAO28O,2BAEX,CACF,CAEAC,QAAAA,CACE7wC,EACA8wC,EACAC,GAEA,MAAMh7M,EAAc2nB,YAAYD,MAChC,GAAIqzL,EAAe,CACjB,GAAI10P,KAAK40P,SAAU,CACjB,MAAMC,EAAgBl7M,EAAc35C,KAAK40P,SACnCE,EAAiBH,EAAgB30P,KAAK+0P,kBACtCC,EAAiBN,EAAgB10P,KAAKi1P,kBACtCC,EAAc,IAAOJ,EAAkBD,EACvC50B,EAAMjgO,KAAKigO,IAMjB,GALAA,EAAI3lB,QAAQhmE,GAAO+qF,SAAU,CAC3By1B,eAAgBA,EAChBE,eAAgBA,EAChBG,mBAAoBR,IAElBO,EAAa,GAGbJ,EACA70B,EAAIpoN,OAAOu9O,8BAAgCJ,EAC3C,CACA,IAAIrS,EAAe1iB,EAAI0iB,aACvB/tM,GAAO0yD,KACL,mEACEq7I,GAGFA,EAAe,KACY,IAA1B1iB,EAAIsyB,kBACHtyB,EAAIsyB,kBAAoB5P,KAE1BA,GAA8B,EAC9B1iB,EAAI3lB,QAAQhmE,GAAOgrF,uBAAwB,CACzCgD,MAAOqgB,EACPmQ,aAAc7yB,EAAI0iB,eAEpB1iB,EAAIsyB,iBAAmB5P,EACvB3iP,KAAKozP,iBAAiBnS,kBAE1B,CAEJ,CACAjhP,KAAK40P,SAAWj7M,EAChB35C,KAAK+0P,kBAAoBJ,EACzB30P,KAAKi1P,kBAAoBP,CAC3B,CACF,CAEAH,gBAAAA,GACE,MAAM3wC,EAAQ5jN,KAAK8mO,MACnB,GAAIljB,EACF,GAAI5jN,KAAKo0P,gCAAiC,CACxC,MAAMiB,EAAuBzxC,EAAM0wC,0BACnCt0P,KAAKy0P,SACH7wC,EACAyxC,EAAqBC,iBACrBD,EAAqBE,mBAEzB,MAEEv1P,KAAKy0P,SACH7wC,EACCA,EAAc4xC,wBACd5xC,EAAc6xC,wBAIvB,GFuPA3gC,wBAAwB,EACxBmB,oBAAqB,EACrBvN,8BAA8B,EAC9B2iC,gBAAiB,EACjBC,gBAAiB,EACjBC,eAAgB,EAChBC,eAAgB,EAChBC,uBAAwB,IACxB2pI,0BAA2B,IAC3B3nI,mBAAoB,IACpBC,qBAAsB,GACtBvB,uBAAuB,EACvBwB,mBAAoB,EACpBC,gBAAiB,EACjBinB,eAAgB,EAChBzD,YAAY,EACZF,wBAAoBpwQ,EACpBk8U,WAAY,CAAC,EACb1rE,iBAAkB,CAAC,EACnBD,gCACIzB,GAEJ7xB,eAAe,EACfsmH,aAAa,EACb1S,gBAAgB,EAChB20B,UAAMxlX,EACN+vV,6BAA6B,EAC7BJ,wBAAwB,EACxBC,uBAAuB,EACvBi+B,sBAAsB,EAEtBnN,eAAgB,CACdvqW,QA/FoC,CACtCs3U,qBAAsB,IACtBC,cAAe,IACfL,aAAc,KACdC,WAAY,OA6FZs0B,cAAe,CACbzrW,QAAS,CACPs3U,qBAAsB,IACtBC,cAAe,IACfL,aAAc,CACZO,YAAa,EACbC,aAAc,IACdC,gBAAiB,IACjBoH,QAAS,UAEX5H,WAAY,CACVM,YAAa,EACbC,aAAc,IACdC,gBAAiB,IACjBoH,QAAS,YAIf/H,mBAAoB,CAClBh3U,QAAS,CACPs3U,qBAAsBz8P,IACtB08P,cAAe,IACfL,aAAc,CACZO,YAAa,EACbC,aAAc,EACdC,gBAAiB,GAEnBR,WAAY,CACVM,YAAa,EACbC,aAAc,IACdC,gBAAiB,OAIvBV,mBAAoB,CAClBj3U,QAAS,CACPs3U,qBAAsB,IACtBC,cAAe,IACfL,aAAc,CACZO,YAAa,EACbC,aAAc,EACdC,gBAAiB,GAEnBR,WAAY,CACVM,YAAa,EACbC,aAAc,IACdC,gBAAiB,OAIvBuQ,eAAgB,CACdloV,QAAS,CACPs3U,qBAAsB,IACtBC,cAAe,KACfL,aAAc,CACZO,YAAa,EACbC,aAAc,EACdC,gBAAiB,GAEnBR,WAAY,CACVM,YAAa,EACbC,aAAc,IACdC,gBAAiB,OAIvBymC,2BAA4B,CAC1Bp+W,QACI,CACEs3U,qBAAsB,IACtBC,cAAe,IACfL,aAAc,CACZO,YAAa,EACbC,aAAc,EACdC,gBAAiB,GAEnBR,WAAY,CACVM,YAAa,EACbC,aAAc,IACdC,gBAAiB,OAQ3BhkH,uBAAwB,IACxBD,wBAAyB,EACzBE,0BAA2B,IAC3BC,+BAAgC,KAChCC,oBAAqB,IACrBC,qBAAsB,EACtBC,uBAAwB,IACxBC,4BAA6B,KAC7BqD,mBAAoB,IACpByV,oBAAqB,EACrB7U,sBAAuB,IACvBX,2BAA4B,MAqBrB,CACLs7B,WAAYR,GACZyC,cAAc,EACdupH,aAAa,EACb5qH,sBAAsB,EACtBX,wBAAyB,UACzBE,+BAAgC,KAChCC,wBAAyB,UACzBC,+BAAgC,KAChCE,wBAAyB,aACzBC,+BAAgC,GAChCE,wBAAyB,aACzBC,+BAAgC,GAChCY,0BAA0B,IA/BT,IACnB0J,yB9DpeK,cACGusF,GAOR/0V,WAAAA,CACE0zN,EACA6Y,EACAo9B,GAEA5iJ,MACE2sG,EACA6Y,EACAo9B,EACA,+BACAr2C,IACA,KAfIkvC,gBAA0B,EAAC,KAC3BD,eAAqC,GAAE,KACvCymH,YAAmC,KAczCv1X,KAAKuwV,oBACP,CAEUjwH,mBAAAA,GACRtgO,KAAKwwV,uBACLl9N,MAAMgtG,sBACNtgO,KAAKu1X,YAAc,IACrB,CAEQhlC,kBAAAA,GACN,MAAM,IAAEtwH,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACpDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACtDigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MAChDigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACnCigO,EAAIn5K,GAAGwtF,GAAOkqF,wBAAyBx+N,KAAKsvQ,wBAAyBtvQ,MACrEigO,EAAIn5K,GAAGwtF,GAAOmqF,sBAAuBz+N,KAAKuvQ,sBAAuBvvQ,MACjEigO,EAAIn5K,GAAGwtF,GAAOqqF,sBAAuB3+N,KAAKmuQ,sBAAuBnuQ,MACjEigO,EAAIn5K,GAAGwtF,GAAOsqF,wBAAyB5+N,KAAKmvQ,wBAAyBnvQ,MACrEigO,EAAIn5K,GAAGwtF,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MACtDigO,EAAIn5K,GAAGwtF,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,KACpD,CAEQwwV,oBAAAA,GACN,MAAM,IAAEvwH,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACrDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACvDigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MACjDigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACpCigO,EAAIxqI,IAAI6+C,GAAOkqF,wBAAyBx+N,KAAKsvQ,wBAAyBtvQ,MACtEigO,EAAIxqI,IAAI6+C,GAAOmqF,sBAAuBz+N,KAAKuvQ,sBAAuBvvQ,MAClEigO,EAAIxqI,IAAI6+C,GAAOqqF,sBAAuB3+N,KAAKmuQ,sBAAuBnuQ,MAClEigO,EAAIxqI,IAAI6+C,GAAOsqF,wBAAyB5+N,KAAKmvQ,wBAAyBnvQ,MACtEigO,EAAIxqI,IAAI6+C,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MACvDigO,EAAIxqI,IAAI6+C,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,KACrD,CAEA+7O,SAAAA,CAAUY,GACR38O,KAAKg8O,WACLh8O,KAAK+nB,MAAQ8zN,GAEb77O,KAAK07O,YAtEa,KAwElB17O,KAAK08O,iBACH18O,KAAK28O,cACL38O,KAAKq5O,gBACHsD,EAEJ38O,KAAKo7O,MACP,CAEAlR,iBAAAA,GACElqO,KAAKu1X,YAAc,KACnBv1X,KAAK84O,gBAAgBlH,oBACvB,CAEAqQ,gBAAAA,GACEjiP,KAAK8uQ,eAAiB,GACtBx7I,MAAM2uH,kBACR,CAEAK,aAAAA,CAAcl5N,EAA4BlU,GACxClV,KAAKu1X,YAAcrgX,EAAKulM,OAC1B,CAEA00D,uBAAAA,CACE/lP,EACAlU,GAEA,MAAM,KAAE4yM,EAAI,QAAElsM,GAAY1G,EAG1B,GAFAlV,KAAKq4O,aAAevwB,EACpB9nN,KAAK+nB,MAAQ8zN,IACRjgO,EACH,OAGF,MAAMk0N,EAAW9vO,KAAK8uQ,eAAe9uQ,KAAK+uQ,gBAC1C,IAAKj/B,EACH,OAKF,IAAII,EACJ,MAAMk/B,EAAYtnD,EAAK3zM,MACvB,IAAK,IAAIlS,EAAI,EAAGA,EAAI6tO,EAASzvO,OAAQ4B,IACnC,GAAImtQ,GAAat/B,EAAS7tO,GAAGkS,OAASi7P,GAAat/B,EAAS7tO,GAAG+B,IAAK,CAClEksO,EAAYJ,EAAS7tO,GACrB,KACF,CAGF,MAAMotQ,EAAUvnD,EAAK3zM,MAAQ2zM,EAAKpoM,SAC9BwwN,EACFA,EAAUlsO,IAAMqrQ,GAEhBn/B,EAAY,CACV/7N,MAAOi7P,EACPprQ,IAAKqrQ,GAEPv/B,EAASlvO,KAAKsvO,IAEhBlwO,KAAK84O,gBAAgBmkH,aAAan1I,GAClC9nN,KAAKkjW,qBAAqBp7I,EAAM,KAClC,CAEAqpC,gBAAAA,CAAiB/nO,EAA+BlU,GAC9C,MAAM,YAAEo9M,EAAW,UAAEmvB,GAAcvsO,EACnC,GAAoB,IAAhBo9M,GAAqBmvB,IAAc3rO,OAAOi9M,kBAAmB,CAC/D,MAAMyiK,EAAqB/zI,EAAY,EACvC,GAAI+zI,GAAsB,EACxB,OAEFtgX,EAAKsgX,mBAAqB3yX,KAAK2qB,IAAI,EAAGgoW,GACtCx1X,KAAK8uQ,eAAevtQ,SAASuuO,IAC3B,IAAK,IAAI7tO,EAAI,EAAGA,EAAI6tO,EAASzvO,QAC3B,GAAIyvO,EAAS7tO,GAAG+B,KAAOwxX,EACrB1lJ,EAASthN,YADX,CAGO,KAAIshN,EAAS7tO,GAAGkS,MAAQqhX,GAG7B,MAFA1lJ,EAAS7tO,GAAGkS,MAAQqhX,EAItBvzX,GADA,CAEF,IAEFjC,KAAK84O,gBAAgBwkH,uBACnBhrI,EACAkjK,EACA31J,GAEJ,CACF,CAEA6R,cAAAA,CAAetoN,EAA6BlU,GAC6B,IAAA69W,EAAlE/yX,KAAKy8O,gBAAkBvnO,EAAK4yM,KAAKhjN,OAAS+6N,IACzC,OAAJkzJ,EAAI/yX,KAAK8mO,QAALisJ,EAAYjjJ,SAASzvO,SACvBL,KAAKy8O,gBAAiB,EAG5B,CAGAvkE,OAAAA,CAAQ9uJ,EAAqBlU,GAC3B,MAAM4yM,EAAO5yM,EAAK4yM,MAEV,MAAJA,OAAI,EAAJA,EAAMhjN,QAAS+6N,KACb3qN,EAAKulM,UAAYmiB,GAAa4jI,UAChCxgW,KAAK84O,gBAAgBmkH,aAAan1I,GAAM,GAEtC9nN,KAAKi8O,aACPj8O,KAAKi8O,YAAY+7F,gBAEfh4U,KAAK+nB,QAAU8zN,KACjB77O,KAAK+nB,MAAQ8zN,IAGnB,CAGAyzB,uBAAAA,CACElmP,EAAqCqsW,GAErC,IADA,eAAEvnH,GAA2CunH,EAEzCz1X,KAAK6lO,QAAUowI,GAAyBj2W,KAAK6lO,OAAQqoC,GACvDluQ,KAAK6lO,OAASqoC,EAAe5kQ,KAC1BosX,GAAkB,IAAItyJ,GAAMsyJ,MAIjC11X,KAAK8uQ,eAAiB,GACtB9uQ,KAAK6lO,OAASqoC,EAAe5kQ,KAAKosX,IAChC,MAAMpzJ,EAAQ,IAAIc,GAAMsyJ,GAExB,OADA11X,KAAK8uQ,eAAexsC,EAAM5+L,IAAM,GACzB4+L,CAAK,IAEdtiO,KAAK84O,gBAAgBwkH,uBACnB,EACAxnV,OAAOi9M,kBACP8M,IAEF7/N,KAAKq4O,aAAe,KACpBr4O,KAAKq8O,YAAc,KACrB,CAEAkzB,qBAAAA,CACEnmP,EACAlU,GACA,IAAAquV,EAGA,GAFAvjW,KAAK+uQ,eAAiB75P,EAAKwuB,GAEtB,OAAD6/T,EAACvjW,KAAK6lO,UAAL09H,EAAaljW,SAAmC,IAAzBL,KAAK+uQ,eAE/B,YADA/uQ,KAAKu7O,gBAKP,MAAMkxB,EAAezsQ,KAAK6lO,OAAO7lO,KAAK+uQ,gBACtB,MAAZtC,GAAAA,EAAchyD,QAChBz6M,KAAKq8O,YAAcr8O,KAAK21X,sBAExB31X,KAAKq8O,YAAc,KAEjBowB,GACFzsQ,KAAK07O,YA1OW,IA4OpB,CAGAyyB,qBAAAA,CACE/kP,EACAlU,GACA,IAAA0gX,EACA,MAAM,eAAE7mH,EAAc,OAAElpC,GAAW7lO,MAC3By6M,QAAS86B,EAAY7xM,GAAIs4L,GAAY9mN,EAC7C,IAAK2wN,EAEH,YADA7lO,KAAKsnG,KAAM,kDAAiD00H,KAG9D,MAAMxlD,EAAeqvD,EAAO7J,GAC5B,GAAIA,GAAW6J,EAAOxlO,SAAWm2K,EAC/B,OAEFx2K,KAAKyxD,IACF,kBAAiBuqK,aAAmBuZ,EAAW3R,WAC9C2R,EAAWhS,SAEXgS,EAAWolG,WACN,SAAQplG,EAAWolG,cAAcplG,EAAWslG,iBAC7C,eACOtlG,EAAWxR,iBAE1B/jO,KAAKq8O,YAAcr8O,KAAK21X,sBACxB,IAAIh/I,EAAU,EACd,GAAIpB,EAAW9R,MAAqB,OAAjBmyJ,EAAIp/M,EAAMikC,UAANm7K,EAAenyJ,KAAM,CAC1C,MAAM8xJ,EAAcv1X,KAAKu1X,YACzB,GAAIhgJ,EAAWykG,oBAAsBu7C,EACnC,OAEF,MAAMM,EAA2BN,EAAY/xJ,UAAU,GAUhD,IAAAq+H,EATP,GAAKrrL,EAAMikC,QAUTk8B,EAAU32O,KAAK6mW,eACbtxH,EACA/+D,EAAMikC,QACc,OADPonJ,EACb7hW,KAAKu+O,sBAAe,EAApBsjH,EAAsBpnJ,SAER,IAAZk8B,GAAiBk/I,IAEnBl/I,EAAUk/I,EAAyB1hX,MACnCihV,GAAW7/G,EAAYoB,SAjBrBpB,EAAWqC,oBAAsB29I,EAAY39I,oBAC/C2mH,GAAwBhpH,EAAYggJ,GACpC5+I,EAAUpB,EAAW/R,UAAU,GAAGrvN,OACzB0hX,IAETl/I,EAAUk/I,EAAyB1hX,MACnCihV,GAAW7/G,EAAYoB,GAc7B,CAIA,GAHAngE,EAAMikC,QAAU86B,EAChBv1O,KAAKu+O,gBAAkB/nE,EAEnBwlD,IAAY+yC,IAIX/uQ,KAAK69O,qBAAuB79O,KAAKu1X,aAAgBhgJ,EAAW9R,MAC/DzjO,KAAKmnW,iBAAiBnnW,KAAKu1X,aAAehgJ,EAAYoB,GAIxD32O,KAAKo7O,OAIH7F,EAAW9R,OACVzjO,KAAKi8O,aACNj8O,KAAK8mO,OACL9mO,KAAK+nB,QAAU8zN,IACf,CACkBzD,GAChB,KACA7C,EAAW/R,UACXxjO,KAAK8mO,MAAMntL,YACX,KAGA35C,KAAKsnG,KAAK,+CACVkvE,EAAMikC,aAAU35M,EAEpB,CACF,CAEAyhW,2BAAAA,CAA4B+B,GAC1B,MAAM,KAAEx8I,EAAI,QAAE5wJ,GAAYotS,EACpB/3F,EAAczkD,EAAK1F,YACnB6d,EAAMjgO,KAAKigO,IAEjB,IAAIjgO,KAAKqiW,mBAAmBv6I,IAK1B5wJ,GACAA,EAAQxrB,WAAa,GACrB,MAAA6gO,GAAAA,EAAarrQ,KACbqrQ,EAAYl3D,IACW,YAAvBk3D,EAAYp6M,OACZ,CACA,MAAMlB,EAAYqQ,YAAYD,MAE9BrhE,KAAKsiN,UACF/M,QACC,IAAI/gM,WAAW0iD,GACfq1M,EAAYrrQ,IAAI0qC,OAChB2gO,EAAYl3D,GAAGzpK,QAEhBigJ,OAAO95I,IASN,MARAkuL,EAAI3lB,QAAQhmE,GAAOimE,MAAO,CACxBz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAaliB,mBACtBC,OAAO,EACPr/L,MAAOy2B,EACP5qB,OAAQ4qB,EAAIuB,QACZw0K,SAEI/1K,CAAG,IAEV0tD,MAAMsjH,IACL,MAAM/yG,EAAU1uC,YAAYD,MAC5B4+J,EAAI3lB,QAAQhmE,GAAOsjF,eAAgB,CACjC9P,OACA5wJ,QAAS6rJ,EACT8U,MAAO,CACLC,OAAQ7mK,EACR8mK,SAAU/nH,IAEZ,IAEH67E,OAAO95I,IACN/xC,KAAKsnG,KAAM,GAAEv1D,EAAI7mC,SAAS6mC,EAAIuB,WAC9BtzC,KAAK+nB,MAAQ8zN,EAAU,GAE7B,CACF,CAEAD,MAAAA,GACE,GAAK57O,KAAK8mO,OAKV,GAAI9mO,KAAK+nB,QAAU8zN,GAAY,CAC7B,MAAM,eAAEkzB,EAAc,OAAElpC,GAAW7lO,KAC7Bw2K,EAAc,MAANqvD,OAAM,EAANA,EAASkpC,GACvB,IAAKv4F,IAAUqvD,EAAOxlO,SAAWm2K,EAAMikC,QACrC,OAEF,MAAM,OAAE5iM,GAAW7X,KACb25C,EAAc35C,KAAKulW,kBACnB9yH,EAAeL,GAAaK,aAChCzyO,KAAK8uQ,eAAe9uQ,KAAK+uQ,iBAAmB,GAC5Cp1N,EACA9hC,EAAOk9M,gBAED/wN,IAAKk+V,EAAkBnvV,IAAKggO,GAAcN,EAE5C6lB,EAAiBt4P,KAAK2iW,iBAC1B3iW,KAAK8mO,MACLjH,IAEIw4B,EAAe7hF,EAAMikC,QAK3B,GAAIs4B,EAHF/yO,KAAK0lW,mBAAmB,MAAAptG,OAAA,EAAAA,EAAgBvlP,KACxCslP,EAAayiF,oBAGb,OAEF,MAAMt3G,EAAY60B,EAAa70B,UACzBwb,EAAUxb,EAAUnjO,OACpB2D,EAAMq0P,EAAa2iF,KAEzB,IAAIliF,EAA6B,KACjC,MAAMzgB,EAAer4O,KAAKq4O,aAC1B,GAAI6pH,EAAmBl+V,EAAK,CAC1B,MAAMs4O,EAAYzkO,EAAOogO,uBACnB69I,EACJ5zB,EAAmBl+V,EAAMs4O,EAAY,EAAIA,EAC3Cwc,EAAY1gB,GACVC,EACA7U,EACA3gO,KAAK2qB,IAAIg2M,EAAU,GAAGrvN,MAAO+tV,GAC7B4zB,IAGCh9H,GACDzgB,GACAA,EAAalkO,MAAQqvN,EAAU,GAAGrvN,QAElC2kP,EAAYt1B,EAAU,GAE1B,MACEs1B,EAAYt1B,EAAUwb,EAAU,GAElC,IAAK8Z,EACH,OAGF,GADAA,EAAY94P,KAAKgmW,0BAA0BltG,GACtB,gBAAjBA,EAAUrqC,GAAsB,CAElC,MACMqZ,EAAWtE,EADAs1B,EAAUrqC,GAAK4pC,EAAaz0B,QACP,GAEpCkE,GACAA,EAASxuD,KAAOw/E,EAAUx/E,IAC1Bt5K,KAAK84O,gBAAgBzH,SAASvJ,KAAcwH,KAE5CwpB,EAAYhxB,EAEhB,CAEE9nO,KAAK84O,gBAAgBzH,SAASynB,KAAexpB,IAG7CtvO,KAAKiiW,aAAanpG,EAAWtiF,EAAO0rL,EAExC,OA/EEliW,KAAK+nB,MAAQ8zN,EAgFjB,CAEU6pH,kBAAAA,CAAmBqwB,GAC3B,MAAMx9H,EAAkBjlI,MAAMoyO,qBAC9B,OAAKqwB,EAGElzX,KAAK2qB,IAAI+qO,EAAiBw9H,GAFxBx9H,CAGX,CAEU0pG,YAAAA,CACRn6I,EACAwa,EACA4/H,GAEAliW,KAAKi8O,YAAcn0B,EACH,gBAAZA,EAAK2G,GACPzuN,KAAKgjW,iBAAiBl7I,EAAMwa,IAE5BtiO,KAAK69O,oBAAqB,EAC1BvqH,MAAM2uO,aAAan6I,EAAMwa,EAAO4/H,GAEpC,CAEA,yBAAIyzB,GACF,OAAO,IAAIhf,GACT32W,KAAK8uQ,eAAe9uQ,KAAK+uQ,iBAAmB,GAEhD,G8DKAiG,wBG/eF,cAAsC+hF,GAcpCxqV,WAAAA,CAAY0zN,GACV3sG,MAAM2sG,EAAK,+BAA+B,KAdpC6G,MAAiC,KAAI,KACrCnY,OAA0B,GAAE,KAC5BqnK,SAA0C,KAAI,KAC9CC,cAAiC,GAAE,KACnCj6J,SAAmB,EAAC,KACpBywC,aAAqC,KAAI,KACzCypH,oBAA8B,EAAI,KAClCroH,oBAA8B,EAAC,KAC/BsoH,qBAAmC,IAAMn2X,KAAKo2X,gBAAgB,GAAE,KAChEpoH,qBAA+B,EAAK,KACpCC,yBAAmC,EAAC,KACpCooH,kBAA4B,EAAI,KAyfhCC,oBAAsB,KAK5B,GAJKt2X,KAAKguQ,qBACRpjO,KAAK2wM,cAAcv7O,KAAKiuQ,0BAGrBjuQ,KAAK8mO,QAAU9mO,KAAKigO,IAAIpoN,OAAOwzP,yBAClC,OAGF,IAAIhkD,EAA8B,KAClC,MAAMsH,EAAS2+C,GAAqBttQ,KAAK8mO,MAAMkhB,YAC/C,IAAK,IAAI/lP,EAAI,EAAGA,EAAI0sN,EAAOtuN,OAAQ4B,IACjC,GAAuB,WAAnB0sN,EAAO1sN,GAAG6Y,KAEZusM,EAAYsH,EAAO1sN,QACd,GAAuB,YAAnB0sN,EAAO1sN,GAAG6Y,KAAoB,CACvCusM,EAAYsH,EAAO1sN,GACnB,KACF,CAIF,MAAM+5N,EAAUh8N,KAAKu2X,sBAAsBlvK,GACvCrnN,KAAKosQ,gBAAkBpwC,GACzBh8N,KAAKw2X,iBAAiBx6J,EACxB,EA9gBAh8N,KAAKqgO,mBACP,CAEOhtF,OAAAA,GACLrzI,KAAKugO,sBACLvgO,KAAK2uN,OAAOtuN,OAAS,EACrBL,KAAKi2X,cAAc51X,OAAS,EAC5BL,KAAKysQ,aAAe,KACpBzsQ,KAAKs2X,oBAAsBt2X,KAAKm2X,qBAAuB,KACvD7iQ,MAAM+f,SACR,CAEA,mBAAW64H,GACT,OAAOlsQ,KAAKq2X,gBACd,CAEA,mBAAWnqH,CAAgB9oQ,GACzBpD,KAAKq2X,iBAAmBjzX,EACpBpD,KAAKg8N,SAAW,GAClBh8N,KAAKy2X,kBAET,CAEQp2J,iBAAAA,GACN,MAAM,IAAEJ,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACpDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACtDigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACtDigO,EAAIn5K,GAAGwtF,GAAOwpF,cAAe99N,KAAKoqO,eAAgBpqO,MAClDigO,EAAIn5K,GAAGwtF,GAAOspF,gBAAiB59N,KAAKirX,iBAAkBjrX,MACtDigO,EAAIn5K,GAAGwtF,GAAOqqF,sBAAuB3+N,KAAKmuQ,sBAAuBnuQ,MACjEigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACrC,CAEQugO,mBAAAA,GACN,MAAM,IAAEN,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACrDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACvDigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACvDigO,EAAIxqI,IAAI6+C,GAAOwpF,cAAe99N,KAAKoqO,eAAgBpqO,MACnDigO,EAAIxqI,IAAI6+C,GAAOspF,gBAAiB59N,KAAKirX,iBAAkBjrX,MACvDigO,EAAIxqI,IAAI6+C,GAAOqqF,sBAAuB3+N,KAAKmuQ,sBAAuBnuQ,MAClEigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACtC,CAGU2hP,eAAAA,CACRv4N,EACAlU,GAEAlV,KAAK8mO,MAAQ5xN,EAAK4xN,MACb9mO,KAAK8mO,QAIN9mO,KAAK6tQ,oBAAsB,IAC7B7tQ,KAAKosQ,cAAgBpsQ,KAAK6tQ,mBAC1B7tQ,KAAK6tQ,oBAAsB,GAG7B7tQ,KAAKguQ,sBACHhuQ,KAAK8mO,MAAMkhB,YAAc,aAAchoP,KAAK8mO,MAAMkhB,YAEhDhoP,KAAKguQ,oBACPhuQ,KAAKo2X,gBAAgB,KAErBp2X,KAAK8mO,MAAMkhB,WAAW59N,iBACpB,SACApqB,KAAKm2X,sBAGX,CAEQC,eAAAA,CAAgB/yW,GACtBunB,KAAK2wM,cAAcv7O,KAAKiuQ,yBACxBjuQ,KAAKiuQ,wBAA0BrjO,KAAK8wM,YAClC17O,KAAKs2X,oBACLjzW,EAEJ,CAEU4+N,gBAAAA,GACR,IAAKjiP,KAAK8mO,MACR,OAGFl8L,KAAK2wM,cAAcv7O,KAAKiuQ,yBACnBjuQ,KAAKguQ,qBACRhuQ,KAAK8mO,MAAMkhB,WAAW7mJ,oBACpB,SACAnhG,KAAKm2X,sBAILn2X,KAAKg8N,SAAW,IAClBh8N,KAAK6tQ,mBAAqB7tQ,KAAKg8N,SAGdsxC,GAAqBttQ,KAAK8mO,MAAMkhB,YAExCzmP,SAASi1K,IAClBixE,GAAiBjxE,EAAM,IAGzBx2K,KAAKosQ,eAAiB,EACtBpsQ,KAAK8mO,MAAQ,IACf,CAEUoD,iBAAAA,GACRlqO,KAAK2uN,OAAS,GACd3uN,KAAKg2X,SAAW,KAChBh2X,KAAKi2X,cAAgB,GACrBj2X,KAAKg8N,SAAW,EAChBh8N,KAAKysQ,aAAe,KACpBzsQ,KAAKk2X,oBAAqB,CAC5B,CAGUh0I,gBAAAA,CACR94N,EACAlU,GAEAlV,KAAK2uN,OAASz5M,EAAKg5P,cACrB,CAEUC,qBAAAA,CACR/kP,EACAlU,GAEA,MAAM,GAAEwuB,EAAE,QAAEqjM,EAAO,QAAEtsB,GAAYvlM,EAC3BwhX,EAAqB12X,KAAKi2X,cAAcvyV,GAE9C,IAAKgzV,GAAsBA,EAAmB3vJ,UAAYA,EAIxD,YAHA/mO,KAAKsnG,KACF,0BAAyB5jE,eAAgBqjM,+BAAqC,MAAA2vJ,OAAA,EAAAA,EAAoB3vJ,WAKvG,MAAMmQ,EAAaw/I,EAAmBj8K,QACtCi8K,EAAmBj8K,QAAUvlM,EAAKulM,QAClCz6M,KAAKyxD,IACF,kBAAiB/tB,MAAOgzV,EAAmBxrX,cAAcwrX,EAAmBnvJ,cAAcR,aAAmBtsB,EAAQmpB,WAAWnpB,EAAQ8oB,UAGvI7/L,IAAO1jC,KAAKg8N,SACdh8N,KAAK23V,eAAej0T,EAAIxuB,EAAMgiO,EAElC,CAEU9M,cAAAA,CACRhhN,EACAlU,GAEAlV,KAAKk1X,YAAYhgX,EAAKotN,MACxB,CAEU2oJ,gBAAAA,CACR7hW,EACAlU,GAEAlV,KAAKk1X,YAAYhgX,EAAKotN,MACxB,CAEQ4yJ,WAAAA,CAAY1uI,GAClB,MAAM/H,EAAYz+O,KAAKigO,IAAI4F,OAAO2gB,GAClC,IAAK/H,EACH,OAEF,MAAMs1G,EAAiBt1G,EAAUs1G,gBAAkB,KAC7C4iC,EAAgB32X,KAAKg2X,SAC3B,IAAIvpH,EAAezsQ,KAAKysQ,aACxB,IACGsnF,IACY,MAAb4iC,OAAa,EAAbA,EAAet2X,WAAW,MAAA0zV,OAAA,EAAAA,EAAgB1zV,SAC5B,MAAd0zV,GAAAA,EAAgB/kL,MAAM+3D,IAAiD,KAArC,MAAA4vJ,OAAA,EAAAA,EAAejzX,QAAQqjO,MACzD,CACA/mO,KAAKg2X,SAAWjiC,EAChB/zV,KAAKg8N,SAAW,EAChBh8N,KAAKysQ,aAAe,KAEpB,MAAMyB,EAAiBluQ,KAAK2uN,OAAO7+L,QAChC0mJ,IACEu9K,IAA6D,IAA3CA,EAAerwV,QAAQ8yK,EAAMuwD,WAEpD,GAAImnC,EAAe7tQ,OAGfL,KAAKk2X,qBACJhoH,EAAel/F,MAAMwH,GAAUA,EAAMv/J,YAEtCjX,KAAKk2X,oBAAqB,GAG5BhoH,EAAe3sQ,SAAQ,CAACi1K,EAAOv0K,KAC7Bu0K,EAAM9yI,GAAKzhC,CAAC,SAET,IAAKwqQ,IAAiBzsQ,KAAKi2X,cAAc51X,OAE9C,OAEFL,KAAKi2X,cAAgB/nH,EAGrB,MAAM0oH,EAAqB52X,KAAKigO,IAAIpoN,OAAO++W,mBAC3C,IAAKnqH,GAAgBmqH,EAAoB,CACvC52X,KAAKk2X,oBAAqB,EAC1B,MAAMW,EAAan7B,GACjBk7B,EACA1oH,GAEF,GAAI2oH,GAAc,EAChBpqH,EAAeyB,EAAe2oH,OACzB,CACL,MAAMC,EAAWp7B,GAAmBk7B,EAAoB52X,KAAK2uN,QAC7D89C,EAAezsQ,KAAK2uN,OAAOmoK,EAC7B,CACF,CAGA,IAAI96J,EAAUh8N,KAAK+2X,YAAYtqH,IACd,IAAbzwC,GAAkBywC,IACpBzwC,EAAUh8N,KAAK+2X,YAAY,OAI7B,MAAMC,EAAmD,CACvD9oH,kBAEFluQ,KAAKyxD,IACF,6BACCy8M,EAAe7tQ,6BACoB,MAAd0zV,OAAc,EAAdA,EAAgBltV,KAAK,kBAE9C7G,KAAKigO,IAAI3lB,QAAQhmE,GAAOkqF,wBAAyBw4J,IAEhC,IAAbh7J,IAAoC,IAAlBh8N,KAAKg8N,SACzBh8N,KAAKw2X,iBAAiBx6J,QAEfh8N,KAAK03V,qBAAqBjrF,IAEnCzsQ,KAAKw2X,iBAAiBx2X,KAAKg8N,QAE/B,CAEQ+6J,WAAAA,CAAYtqH,GAClB,MAAM99C,EAAS3uN,KAAKi2X,cACdgB,EAAgBj3X,KAAKk2X,mBAC3B,IAAK,IAAIj0X,EAAI,EAAGA,EAAI0sN,EAAOtuN,OAAQ4B,IAAK,CACtC,MAAMu0K,EAAQm4C,EAAO1sN,GACrB,KACGg1X,GAAkBzgN,EAAMv/J,WACvBggX,GAAkBxqH,MAIjBA,GAAgBmvF,GAAcplL,EAAOi2F,IACxC,OAAOxqQ,CAEX,CACA,GAAIwqQ,EAAc,CAChB,IAAK,IAAIxqQ,EAAI,EAAGA,EAAI0sN,EAAOtuN,OAAQ4B,IAAK,CACtC,MAAMu0K,EAAQm4C,EAAO1sN,GACrB,GACEm0W,GAAyB3pG,EAAa1/G,MAAOypB,EAAMzpB,MAAO,CACxD,WACA,iBACA,oBAGF,OAAO9qJ,CAEX,CACA,IAAK,IAAIA,EAAI,EAAGA,EAAI0sN,EAAOtuN,OAAQ4B,IAAK,CACtC,MAAMu0K,EAAQm4C,EAAO1sN,GACrB,GACEm0W,GAAyB3pG,EAAa1/G,MAAOypB,EAAMzpB,MAAO,CACxD,aAGF,OAAO9qJ,CAEX,CACF,CACA,OAAQ,CACV,CAEQs0X,qBAAAA,CAAsBlvK,GAC5B,GAAIA,EAAW,CACb,MAAMsH,EAAS3uN,KAAKi2X,cACpB,IAAK,IAAIh0X,EAAI,EAAGA,EAAI0sN,EAAOtuN,OAAQ4B,IAAK,CAEtC,GAAIy0W,GADU/nJ,EAAO1sN,GACoBolN,GACvC,OAAOplN,CAEX,CACF,CACA,OAAQ,CACV,CAEUi2K,OAAAA,CAAQ9uJ,EAAqBlU,IACjCA,EAAKylM,OAAUzlM,EAAK0lD,UAKtB1lD,EAAK0lD,QAAQ91D,OAAS86N,IACtB1qN,EAAK0lD,QAAQl3B,KAAO1jC,KAAKg8N,SACvBh8N,KAAKg2X,WAA6D,IAAjDh2X,KAAKg2X,SAAStyX,QAAQwR,EAAK0lD,QAAQmsK,UAEtD/mO,KAAKy4V,WAAWvjV,GAEpB,CAEA,qBAAIgiX,GACF,OAAOl3X,KAAK2uN,MACd,CAGA,kBAAIu/C,GACF,OAAOluQ,KAAKi2X,aACd,CAGA,iBAAI7pH,GACF,OAAOpsQ,KAAKg8N,OACd,CAEA,iBAAIowC,CAAcpV,GAChBh3P,KAAKk2X,oBAAqB,EAC1Bl2X,KAAKw2X,iBAAiBx/H,EACxB,CAEOmgI,iBAAAA,CACLC,GAGA,GADAp3X,KAAKigO,IAAIpoN,OAAO++W,mBAAqBQ,EACjCA,EAAgB,CAClB,MAAMF,EAAoBl3X,KAAKk3X,kBAE/B,GADAl3X,KAAKk2X,oBAAqB,EACtBgB,EAAkB72X,OAAQ,CAE5B,MAAMosQ,EAAezsQ,KAAKysQ,aAC1B,GAAIA,GAAgBmvF,GAAcw7B,EAAgB3qH,GAChD,OAAOA,EAGT,MAAMoqH,EAAan7B,GACjB07B,EACAp3X,KAAKi2X,eAEP,GAAIY,GAAc,EAAG,CACnB,MAAMrgN,EAAQx2K,KAAKi2X,cAAcY,GAEjC,OADA72X,KAAKw2X,iBAAiBK,GACfrgN,EACF,GAAIi2F,EAGT,OAAO,KACF,CAEL,MAAMqqH,EAAWp7B,GACf07B,EACAF,GAEF,GAAIJ,GAAY,EACd,OAAOI,EAAkBJ,EAE7B,CACF,CACF,CACA,OAAO,IACT,CAEU3/B,YAAAA,CAAaI,GACrBjkO,MAAM6jO,eACN,MAAM1qF,EAAezsQ,KAAKysQ,aAC1B,GAAIzsQ,KAAKw3V,mBAAmB/qF,IAAiBA,EAAc,CACzD,MAAM/oO,EAAK+oO,EAAa/oO,GAClBqjM,EAAU0lC,EAAa1lC,QAC7B,IAAIt+M,EAAMgkP,EAAahkP,IACvB,GAAI8uU,EACF,IACE9uU,EAAM8uU,EAAiBvE,cAAcvqU,GACrC,MAAOnN,GACPtb,KAAKsnG,KACF,6DAA4DhsF,IAEjE,CAEFtb,KAAKyxD,IAAK,oCAAmC/tB,KAC7C1jC,KAAKigO,IAAI3lB,QAAQhmE,GAAOoqF,uBAAwB,CAC9Cj2M,MACAib,KACAqjM,UACA+mH,mBAAoByJ,GAAoB,MAE5C,CACF,CAOQk/B,gBAAAA,GACN,MAAM,MAAE3vJ,GAAU9mO,KAClB,IAAK8mO,EACH,OAGF,MAAMkhB,EAAaslB,GAAqBxmC,EAAMkhB,YACxCykB,EAAezsQ,KAAKysQ,aAC1B,IAAI+B,EAgBJ,GAfI/B,IACF+B,EAAYxmB,EAAWl4N,QAAQu3L,GAC7BqvJ,GAA8BjqG,EAAcplD,KAC5C,GACGmnD,GACHxuQ,KAAKsnG,KACF,gDAA+CmlK,EAAavhQ,uBAAuBuhQ,EAAallC,UAIvG,GAAGtjO,MAAM6F,KAAKk+O,GAAYzmP,SAASi1K,IACd,aAAfA,EAAM17J,MAAuB07J,IAAUg4F,IACzCh4F,EAAM17J,KAAO,WACf,IAEE0zP,EAAW,CACb,MAAM1zP,EAAO9a,KAAKksQ,gBAAkB,UAAY,SAC5CsC,EAAU1zP,OAASA,IACrB0zP,EAAU1zP,KAAOA,EAErB,CACF,CAMQ07W,gBAAAA,CAAiBx/H,GACvB,MAAMroC,EAAS3uN,KAAKi2X,cAMpB,IAAKj2X,KAAK8mO,MAER,YADA9mO,KAAK6tQ,mBAAqB7W,GAK5B,GAAIA,GAAS,GAAKA,GAASroC,EAAOtuN,SAAW62Q,GAAgBlgB,GAE3D,YADAh3P,KAAKsnG,KAAM,8BAA6B0vJ,KAK1Ch3P,KAAKolP,aAELplP,KAAKk2X,oBAAqB,EAC1B,MAAMmB,EAAYr3X,KAAKysQ,aACjBj2F,EAA8Bm4C,EAAOqoC,IAAU,KAIrD,GAHAh3P,KAAKg8N,QAAUg7B,EACfh3P,KAAKysQ,aAAej2F,EACpBx2K,KAAKy2X,oBACAjgN,EAGH,YADAx2K,KAAKigO,IAAI3lB,QAAQhmE,GAAOmqF,sBAAuB,CAAE/6L,GAAIszN,IAGvD,MAAMsgI,IAAgB9gN,EAAMikC,UAAYjkC,EAAMikC,QAAQgpB,KACtD,GAAIuzB,IAAUh3P,KAAKg8N,SAAWxlD,IAAU6gN,GAAaC,EACnD,OAEFt3X,KAAKyxD,IACF,+BAA8BulM,KAC5BxgF,EACI,KAAIA,EAAMtrK,cAAcsrK,EAAM+wD,cAAc/wD,EAAMuwD,UACnD,KAER,MAAM,GAAErjM,EAAE,QAAEqjM,EAAU,GAAE,KAAE77N,EAAI,KAAEpG,EAAI,IAAE2jB,GAAQ+tJ,EAC9Cx2K,KAAKigO,IAAI3lB,QAAQhmE,GAAOmqF,sBAAuB,CAC7C/6L,KACAqjM,UACA77N,OACApG,OACA2jB,QAEF,MAAM8uU,EAAmBv3V,KAAKo3V,aAC5B5gL,EAAM/tJ,IACG,MAAT4uW,OAAS,EAATA,EAAW58K,QACXjkC,EAAMikC,SAERz6M,KAAKm3V,aAAaI,EACpB,GHjBAvwF,mBrDxdK,MA0BLz6P,WAAAA,CAAY0zN,GAAU,KAzBdA,SAAG,OACH6G,MAAiC,KAAI,KACrCjvN,YAAM,OACNw6D,SAAmB,EAAI,KACvBi3L,UAAI,OACJthB,WAA+B,GAAE,KACjCr5B,OAA+B,GAAE,KACjCuD,QAA+B,GAAE,KACjCq3C,iBAA8D,GAAE,KAChEC,eAA4C,CAAC,EAAC,KAC9CC,wBAAkE,CAAC,EAAC,KACpEE,mBAAa,OACbC,mBAAa,OACb2tH,QAAkB,EAAG,KACrB1tH,QAAkB,EAAG,KACrBgxE,eAAyB,EAAG,KAC5BtyE,QAAkB,EAAG,KACrBd,OAwsBD,CACLhyB,SAAU,EACV+yB,mBAAoB,EACpB,EAAG,CACDr0P,MAAO,EACPo0P,QAAS,EACTD,KAAK,IA9sB2B,KAC5BoB,wBAAkB,EAQxB1pQ,KAAKigO,IAAMA,EACXjgO,KAAK6X,OAASooN,EAAIpoN,OAClB7X,KAAKspQ,KAAOrpC,EAAIpoN,OAAOiyP,WAEvB9pQ,KAAK0pQ,mBAAqB,CACxBT,WAAY,CACVp9O,MAAO7rB,KAAK6X,OAAOkyP,wBACnBC,aAAchqQ,KAAK6X,OAAOoyP,gCAE5Bf,WAAY,CACVr9O,MAAO7rB,KAAK6X,OAAOqyP,wBACnBF,aAAchqQ,KAAK6X,OAAOsyP,gCAE5BC,WAAY,CACVv+O,MAAO7rB,KAAK6X,OAAOwyP,wBACnBL,aAAchqQ,KAAK6X,OAAOyyP,gCAE5BC,WAAY,CACV1+O,MAAO7rB,KAAK6X,OAAO2yP,wBACnBR,aAAchqQ,KAAK6X,OAAO4yP,iCAI9BxqC,EAAIn5K,GAAGwtF,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,MACtDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACtDigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,MACtDigO,EAAIn5K,GAAGwtF,GAAOkqF,wBAAyBx+N,KAAKsvQ,wBAAyBtvQ,MACrEigO,EAAIn5K,GAAGwtF,GAAOyqF,aAAc/+N,KAAKiuO,cAAejuO,MAChDigO,EAAIn5K,GAAGwtF,GAAO4qF,YAAal/N,KAAKsxO,aAActxO,MAC9CigO,EAAIn5K,GAAGwtF,GAAO0iF,sBAAuBh3N,KAAK6sQ,sBAAuB7sQ,MACjEigO,EAAIn5K,GAAGwtF,GAAOsjF,eAAgB53N,KAAK4sQ,gBAAiB5sQ,MACpDigO,EAAIn5K,GAAGwtF,GAAOi+E,eAAgBvyN,KAAKm4P,eAAgBn4P,MACnDigO,EAAIn5K,GAAGwtF,GAAOkjP,wBAAyBx3X,KAAKy3X,wBAAyBz3X,MACrEigO,EAAIn5K,GAAGwtF,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,KACxD,CAEOqzI,OAAAA,GACL,MAAM,IAAE4sF,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOuoF,gBAAiB78N,KAAKuwP,iBAAkBvwP,MACvDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACvDigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,MACvDigO,EAAIxqI,IAAI6+C,GAAOkqF,wBAAyBx+N,KAAKsvQ,wBAAyBtvQ,MACtEigO,EAAIxqI,IAAI6+C,GAAOyqF,aAAc/+N,KAAKiuO,cAAejuO,MACjDigO,EAAIxqI,IAAI6+C,GAAO4qF,YAAal/N,KAAKsxO,aAActxO,MAC/CigO,EAAIxqI,IAAI6+C,GAAO0iF,sBAAuBh3N,KAAK6sQ,sBAAuB7sQ,MAClEigO,EAAIxqI,IAAI6+C,GAAOsjF,eAAgB53N,KAAK4sQ,gBAAiB5sQ,MACrDigO,EAAIxqI,IAAI6+C,GAAOi+E,eAAgBvyN,KAAKm4P,eAAgBn4P,MACpDigO,EAAIxqI,IAAI6+C,GAAOkjP,wBAAyBx3X,KAAKy3X,wBAAyBz3X,MACtEigO,EAAIxqI,IAAI6+C,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MAEvDA,KAAKigO,IAAMjgO,KAAK6X,OAAS,KACzB7X,KAAK2pQ,cAAgB3pQ,KAAK4pQ,mBAAgB9oQ,CAC5C,CAEQ42X,iBAAAA,GACN,GACE13X,KAAK6X,OAAO6yP,wBACV1qQ,KAAK2pQ,gBAAkB3pQ,KAAK4pQ,eAC9B,CACA,MAAMe,EAAW,IAAI5D,GAAa/mQ,KAAM,cAClC6qQ,EAAW,IAAI9D,GAAa/mQ,KAAM,cAClC8qQ,EAAW,IAAI/D,GAAa/mQ,KAAM,cAClC+qQ,EAAW,IAAIhE,GAAa/mQ,KAAM,cACxCA,KAAK2pQ,cAAgB,IAAI1E,GAAa,EAAG0F,EAAUE,GACnD7qQ,KAAK4pQ,cAAgB,IAAI3E,GAAa,EAAG6F,EAAUC,EACrD,CACF,CAEO7D,OAAAA,CACL/jB,EACAlyL,EACA++C,EACAgpD,EACAiuG,GAGA,IAAIz9G,GAAS,EACb,IAAK,IAAIvnJ,EAAIglQ,EAAU5mQ,OAAQ4B,KAAO,CACpC,MAAMkpQ,EAAWlE,EAAUhlQ,GACrBmpQ,GAymBUJ,EAxmBdG,EAAS,GAwmBiBr0D,EAvmB1Bq0D,EAAS,GAumB6BF,EAtmBtCh6M,EAsmBkDi6M,EArmBlDl7J,EAsmBCntG,KAAK4qB,IAAIqpL,EAAIo0D,GAAMroQ,KAAK2qB,IAAIw9O,EAAIC,IApmBnC,GAAIG,GAAW,IACbD,EAAS,GAAKtoQ,KAAK4qB,IAAI09O,EAAS,GAAIl6M,GACpCk6M,EAAS,GAAKtoQ,KAAK2qB,IAAI29O,EAAS,GAAIn7J,GACpCw5C,GAAS,EACL4hH,GAAWp7J,EAAU/+C,GAAa,IACpC,MAGN,CA2lBJ,IAAsB+5M,EAAYl0D,EAAYm0D,EAAYC,EAtlBtD,GAJK1hH,GACHy9G,EAAUrmQ,KAAK,CAACqwD,EAAW++C,IAGzBhwG,KAAK6X,OAAOwzP,yBAA0B,CACxC,MAAM70F,EAAQx2K,KAAKwpQ,eAAermB,GAClCnjP,KAAKspQ,KAAK7L,OAAOjnF,EAAOvlH,EAAW++C,EAASgpD,EAC9C,KAAO,CACL,MAAM0uF,EAAO1nP,KAAKspQ,KAAK7L,OAAO,KAAMxsM,EAAW++C,EAASgpD,GACxDh5J,KAAKigO,IAAI3lB,QAAQhmE,GAAOuqF,YAAa,CACnC/5N,KAAM,WACN4iP,OACAlxE,MAAO2sE,GAEX,CACF,CAGQgV,cAAAA,CACN/uO,EAA4BuuW,GAE5B,IADA,KAAE7vK,EAAI,GAAEpkL,EAAE,QAAEwuL,EAAO,UAAE5D,GAA6BqpK,EAElD,MAAM,iBAAEpuH,GAAqBvpQ,KAClB,SAAP0jC,IACF1jC,KAAKkyN,QAAQpK,EAAKxuC,IAAM,CAAEgjD,SAAUpK,EAAS5D,cAK3Ci7C,EAAiBlpQ,SACnBL,KAAKupQ,iBAAmB,GACxBA,EAAiBhoQ,SAASumN,IACxB9nN,KAAKsxO,aAAah9F,GAAO4qF,YAAapX,EAAuB,IAGnE,CAEQwjD,gBAAAA,CAAiBz/O,EAAe8rO,GACtC,MAAM,MAAE7wB,GAAU9mO,KAClB,GAAI8mO,EACF,IAAK,IAAI7kO,EAAI,EAAGA,EAAI6kO,EAAMkhB,WAAW3nP,OAAQ4B,IAAK,CAChD,MAAMolN,EAAYyf,EAAMkhB,WAAW/lP,GACnC,GACE6mQ,GAAqBzhD,EAAW,CAC9Bn8M,KAAM2gB,EACN07M,KAAMowB,EACN5qG,MAAO,CAAC,IAGV,OAAOs6D,CAEX,CAEF,OAAO,IACT,CAEO8/C,mBAAAA,CAAoBhkB,GACrBnjP,KAAK6X,OAAOwzP,yBACdrrQ,KAAKurQ,kBAAkBpoB,GAEvBnjP,KAAKwrQ,qBAAqBroB,EAE9B,CAEQooB,iBAAAA,CAAkBpoB,GACxB,GAAInjP,KAAKwpQ,eAAermB,GACtB,OAEF,MAAM,mBAAEumB,EAAkB,eAAEF,EAAc,MAAE1iC,GAAU9mO,MAChD,MAAE6rB,EAAK,aAAEm+O,GAAiBN,EAAmBvmB,GAE7CuoB,EAAgB1rQ,KAAKsrQ,iBAAiBz/O,EAAOm+O,GACnD,GAAK0B,EAQHlC,EAAermB,GAAauoB,EAC5BjkB,GAAiB+hB,EAAermB,IAChCiE,GAAkBoiB,EAAermB,GAAYrc,OAV3B,CAClB,MAAMzf,EAAYrnN,KAAK2rQ,gBAAgB,WAAY9/O,EAAOm+O,GACtD3iD,IAEFA,EAAU87B,IAAa,EACvBqmB,EAAermB,GAAa97B,EAEhC,CAKF,CAEQmkD,oBAAAA,CAAqBroB,GAC3B,GAAInjP,KAAKypQ,wBAAwBtmB,GAC/B,OAGF,MAAMyoB,EAAmC5rQ,KAAK0pQ,mBAAmBvmB,GACjE,IAAKyoB,EACH,OAEF,MACMp1F,EAAQ,CACZ2jF,IAAKhX,EACLt3N,MAHY+/O,EAAgB//O,MAI5Bo8N,KAAM,WACNhxO,UAAS20P,EAAgB9kC,SAAU8kC,EAAgB9kC,MAAM7vN,QACzD40P,eAAgBD,EAAgB9kC,OAElC9mO,KAAKypQ,wBAAwBtmB,GAAa3sE,EAC1Cx2K,KAAKigO,IAAI3lB,QAAQhmE,GAAOwqF,6BAA8B,CAAEnQ,OAAQ,CAACn4C,IACnE,CAEQm1F,eAAAA,CACN1jB,EACAp8N,EACA07M,GAEA,MAAMT,EAAQ9mO,KAAK8mO,MACnB,GAAKA,EAGL,OAAOA,EAAMohB,aAAaD,EAAMp8N,EAAO07M,EACzC,CAEQgpB,gBAAAA,CACNnnO,EACAlU,GAEAlV,KAAK8mO,MAAQ5xN,EAAK4xN,MAClB9mO,KAAK8rQ,cACP,CAEQ7pB,gBAAAA,GACN,MAAM,eAAEunB,GAAmBxpQ,KAC3BkD,OAAO4pB,KAAK08O,GAAgBjoQ,SAAS4hP,IACnCsE,GAAiB+hB,EAAermB,WACzBqmB,EAAermB,EAAU,IAElCnjP,KAAKypQ,wBAA0B,CAAC,CAClC,CAEQv/B,iBAAAA,GAENlqO,KAAKu3X,QAAU,EACfv3X,KAAK6pQ,QAAU,EACf7pQ,KAAK66U,eAAiB,EAEtB76U,KAAKuoQ,QAAU,EACfvoQ,KAAKynQ,OAgdA,CACLhyB,SAAU,EACV+yB,mBAAoB,EACpB,EAAG,CACDr0P,MAAO,EACPo0P,QAAS,EACTD,KAAK,IApdPtoQ,KAAK8rQ,eACL9rQ,KAAK2uN,OAAS,GACd3uN,KAAKwpQ,eAAiB,CAAC,EACvBxpQ,KAAKypQ,wBAA0B,CAAC,EAChCzpQ,KAAKgoP,WAAa,GAClBhoP,KAAKupQ,iBAAmB,GACxBvpQ,KAAKkyN,QAAU,GACXlyN,KAAK2pQ,eAAiB3pQ,KAAK4pQ,gBAC7B5pQ,KAAK2pQ,cAAc9pO,QACnB7/B,KAAK4pQ,cAAc/pO,QAEvB,CAEQisO,YAAAA,GAEN,MAAM,MAAEhlC,GAAU9mO,KAClB,IAAK8mO,EACH,OAEF,MAAMkhB,EAAalhB,EAAMkhB,WACzB,GAAIA,EACF,IAAK,IAAI/lP,EAAI,EAAGA,EAAI+lP,EAAW3nP,OAAQ4B,IACrCwlP,GAAiBO,EAAW/lP,GAGlC,CAEQqtQ,uBAAAA,CACNlmP,EACAlU,GAEA,MAAMy5M,EAA+Bz5M,EAAKg5P,gBAAkB,GACtD0pH,EAAWjpK,EAAO3/C,MAAMwH,GAAUA,EAAMi1K,YAAc+sB,KAC5D,GAAIx4W,KAAK6X,OAAOk0P,cAAiB6rH,GAAY53X,KAAK6X,OAAOy9W,YAAc,CAErE,GADwBrf,GAAyBj2W,KAAK2uN,OAAQA,GAG5D,YADA3uN,KAAK2uN,OAASA,GAMhB,GAHA3uN,KAAKgoP,WAAa,GAClBhoP,KAAK2uN,OAASA,EAEV3uN,KAAK6X,OAAOwzP,yBAA0B,CACxC,MAAMvkC,EAAQ9mO,KAAK8mO,MACbmlC,EAA2CnlC,EAC7CwmC,GAAqBxmC,EAAMkhB,YAC3B,KAuCJ,GArCAhoP,KAAK2uN,OAAOptN,SAAQ,CAACi1K,EAAO5yK,KAE1B,IAAIyjN,EACJ,GAAI4kD,EAAa,CACf,IAAIlD,EAA+B,KACnC,IAAK,IAAI9mQ,EAAI,EAAGA,EAAIgqQ,EAAY5rQ,OAAQ4B,IACtC,GACEgqQ,EAAYhqQ,IACZ6mQ,GAAqBmD,EAAYhqQ,GAAIu0K,GACrC,CACAuyF,EAAakD,EAAYhqQ,GACzBgqQ,EAAYhqQ,GAAK,KACjB,KACF,CAEE8mQ,IACF1hD,EAAY0hD,EAEhB,CACA,GAAI1hD,EACFogC,GAAiBpgC,OACZ,CACL,MAAMwwK,EAAgB3c,GAAuC1kM,GAC7D6wC,EAAYrnN,KAAK2rQ,gBACfksH,EACArhN,EAAMtrK,KACNsrK,EAAM+wD,MAEJlgB,IACFA,EAAUvsM,KAAO,WAErB,CACIusM,GACFrnN,KAAKgoP,WAAWpnP,KAAKymN,EACvB,IAGa,MAAX4kD,GAAAA,EAAa5rQ,OAAQ,CACvB,MAAMy3X,EAAmB7rH,EACtBn8O,QAAQkC,GAAY,OAANA,IACd1oB,KAAK0oB,GAAOA,EAAgBnG,QAC3BisW,EAAiBz3X,QACnBu0C,GAAO0yD,KACJ,kDAAiDwwR,EAAiBjxX,KACjE,sFAIR,CACF,MAAO,GAAI7G,KAAK2uN,OAAOtuN,OAAQ,CAE7B,MAAM8rQ,EAAansQ,KAAK2uN,OAAOrlN,KAAKktK,IAC3B,CACL3qJ,MAAO2qJ,EAAMtrK,KACb+8O,KAAMzxE,EAAM1xK,KAAKiM,cACjBkG,QAASu/J,EAAMv/J,QACfm1P,cAAe51F,MAGnBx2K,KAAKigO,IAAI3lB,QAAQhmE,GAAOwqF,6BAA8B,CACpDnQ,OAAQw9C,GAEZ,CACF,CACF,CAEQ1mB,gBAAAA,CACNr8N,EACAlU,GAEIlV,KAAK6X,OAAO6yP,sBAAwBx1P,EAAKo3N,UAC3Cp3N,EAAKo3N,SAAS/qO,SAAS8qQ,IACrB,MAAMC,EAAkB,wBAAwB9iQ,KAC9C6iQ,EAAcrlC,YAEhB,IAAKslC,EACH,OAEF,MAAMnpB,EAAa,YAAWmpB,EAAgB,KACxCV,EACJ5rQ,KAAK0pQ,mBAAmBvmB,GACrByoB,IAGLA,EAAgB//O,MAAQwgP,EAAcnhQ,KAClCmhQ,EAAc9kC,OAEhBqkC,EAAgB5B,aAAeqC,EAAc9kC,MAE/CqkC,EAAgB9kC,MAAQulC,EAAa,GAG3C,CAEQ0rH,sBAAAA,CAAuBjwK,GAC7B,MAAMwa,EAAQtiO,KAAKigO,IAAI4F,OAAO/d,EAAKwa,OACnC,OAAO,MAAAA,OAAA,EAAAA,EAAOv1E,MAAM,kBACtB,CAEQkhF,aAAAA,CAAc7kN,EAA4BlU,GAEhD,GAAIlV,KAAKqyE,SAAWn9D,EAAK4yM,KAAKhjN,OAAS+6N,GAAwB,KAAAm4J,EAAA3M,EAC7D,MAAM,cAAE1hH,EAAa,cAAEC,EAAa,OAAEC,GAAW7pQ,MAC3C,GAAEs5K,EAAE,GAAEm1C,GAAOv5M,EAAK4yM,KAClBwtI,EAA4B,OAAnB0iC,EAAY,OAAZ3M,EAAGn2W,EAAK62D,WAAI,EAATs/S,EAAWznX,OAAKo0X,GAAK,EACnCruH,GAAiBC,IAEjBn7C,IAAOo7C,EAAS,GACfp7C,IAAOo7C,GAAUyrF,IAAct1V,KAAK66U,cAAgB,GACrDvhK,IAAOt5K,KAAKu3X,UAEZ5tH,EAAc9pO,QACd+pO,EAAc/pO,SAGlB7/B,KAAKu3X,OAASj+M,EACdt5K,KAAK6pQ,OAASp7C,EACdzuN,KAAK66U,cAAgBya,CACvB,CACF,CAEQhkH,YAAAA,CACNloN,EACAlU,GAEA,MAAM,KAAE4yM,EAAI,QAAE5wJ,GAAYhiD,EAC1B,GAAI4yM,EAAKhjN,OAAS+6N,GAEhB,GAAI3oK,EAAQxrB,WAAY,CACtB,MAAM6gO,EAAczkD,EAAK1F,YAEnB61K,EAAY,UAAW/iX,EAE7B,GAAmB,MAAfq3P,IAAwBA,EAAYntB,WAAa64I,EAAW,CAC9D,MAAMC,EAAqBl4X,KAAK2uN,OAAO7G,EAAKwa,OACtCmlC,EAASznQ,KAAKynQ,OACfA,EAAO3/C,EAAKxuC,MACfmuF,EAAO3/C,EAAKxuC,IAAM,CAChBnlK,MAAO2zM,EAAK3zM,MACZo0P,OAAQvoQ,KAAKuoQ,OACbD,KAAK,GAEPtoQ,KAAKuoQ,OAASzgD,EAAKxuC,IAGnB4+M,GACAA,EAAmBzsC,YAAc+sB,GAEjCx4W,KAAKm4X,YAAYrwK,EAAM5wJ,GAEvBl3D,KAAKwsQ,WAAWt3P,EAEpB,CACF,MAEElV,KAAKigO,IAAI3lB,QAAQhmE,GAAOsqF,wBAAyB,CAC/ChjN,SAAS,EACTksM,OACAxsM,MAAO,IAAItJ,MAAM,2BAIzB,CAEQmmX,WAAAA,CAAYrwK,EAAgB5wJ,GAClC,MAAM+oK,EAAMjgO,KAAKigO,IACjB24I,GACE1hT,EACAl3D,KAAKkyN,QAAQpK,EAAKxuC,KACjBouE,IACC1nP,KAAKo4X,YAAY1wI,EAAM5/B,EAAKwa,OAC5BrC,EAAI3lB,QAAQhmE,GAAOsqF,wBAAyB,CAC1ChjN,SAAS,EACTksM,KAAMA,GACN,IAEHxsM,IACCs5B,GAAO6c,IAAK,0BAAyBn2C,KACrC2kN,EAAI3lB,QAAQhmE,GAAOsqF,wBAAyB,CAC1ChjN,SAAS,EACTksM,KAAMA,EACNxsM,SACA,GAGR,CAEQkxP,UAAAA,CAAWt3P,GAA0C,IAAAqgW,EAC3D,MAAM,KAAEztJ,EAAI,QAAE5wJ,GAAYhiD,GAEpB,QAAEg9M,EAAO,iBAAEq3C,GAAqBvpQ,KAChCq4X,EAAUnmK,EAAQ7xN,OAAS,EACjC,IAAK6xN,EAAQpK,EAAKxuC,MAAoB,IAAb++M,EAEvB,YADA9uH,EAAiB3oQ,KAAKsU,GAIxB,MAAM+qN,EAAMjgO,KAAKigO,IAKjBi4I,GAHsB,OAAA3C,EAAAztJ,EAAK5K,cAALq4J,EAAkBrgW,KACpCusU,GAAiB35H,EAAK5K,YAAYhoM,KAAM,IAAIV,WAAW0iD,IACvDA,EAGFl3D,KAAKkyN,QAAQpK,EAAKxuC,IAClBt5K,KAAKynQ,OACL3/C,EAAKxuC,GACLwuC,EAAK3zM,OACJuzO,IACC1nP,KAAKo4X,YAAY1wI,EAAM5/B,EAAKwa,OAC5BrC,EAAI3lB,QAAQhmE,GAAOsqF,wBAAyB,CAC1ChjN,SAAS,EACTksM,KAAMA,GACN,IAEHxsM,IACC,MAAMg9W,EACc,mCAAlBh9W,EAAMg4B,QACJglV,EACF/uH,EAAiB3oQ,KAAKsU,GAEtBlV,KAAKu4X,iBAAiBzwK,EAAM5wJ,GAG9BtiB,GAAO6c,IAAK,4BAA2Bn2C,KACnCg9W,GAAkBD,EAAUvwK,EAAKxuC,IAGrC2mD,EAAI3lB,QAAQhmE,GAAOsqF,wBAAyB,CAC1ChjN,SAAS,EACTksM,KAAMA,EACNxsM,SACA,GAGR,CAEQi9W,gBAAAA,CAAiBzwK,EAAgB5wJ,GAEvC,MAAMghU,EAAqBl4X,KAAK2uN,OAAO7G,EAAKwa,OACvC41J,EAAmBzsC,WACtBmtB,GACE1hT,EACAl3D,KAAKkyN,QAAQpK,EAAKxuC,KAClB,KACE4+M,EAAmBzsC,UAAY+sB,GAC/Bx4W,KAAKm4X,YAAYrwK,EAAM5wJ,EAAQ,IAEjC,KACEghU,EAAmBzsC,UAAY,MAAM,GAI7C,CAEQ2sC,WAAAA,CAAY1wI,EAAgB8wI,GAClC,MAAMv4J,EAAMjgO,KAAKigO,IACjB,GAAIjgO,KAAK6X,OAAOwzP,yBAA0B,CACxC,MAAMhkD,EAAYrnN,KAAKgoP,WAAWwwI,GAKlC,IAAKnxK,GAAgC,aAAnBA,EAAUvsM,KAC1B,OAEF4sO,EAAKnmP,SAASinP,GAAQinG,GAAcpoI,EAAWmhC,IACjD,KAAO,CACL,MAAMikB,EAAezsQ,KAAK2uN,OAAO6pK,GACjC,IAAK/rH,EACH,OAEF,MAAMj2F,EAAQi2F,EAAax1P,QAAU,UAAY,YAAcuhX,EAC/Dv4J,EAAI3lB,QAAQhmE,GAAOuqF,YAAa,CAAE/5N,KAAM,YAAa4iP,OAAMlxE,SAC7D,CACF,CAEQo2F,eAAAA,CACNxjP,EACAlU,GAEA,MAAM,KAAE4yM,GAAS5yM,EACb4yM,EAAKhjN,OAAS+6N,IAChB7/N,KAAKsxO,aAAah9F,GAAO4qF,YAAahqN,EAE1C,CAEQuiX,uBAAAA,GACNz3X,KAAK2uN,OAAS,GACd3uN,KAAKwpQ,eAAiB,CAAC,CACzB,CAEQqD,qBAAAA,CACNzjP,EACAlU,GAEAlV,KAAK03X,oBACL,MAAM,cAAE/tH,EAAa,cAAEC,GAAkB5pQ,KACzC,IAAKA,KAAKqyE,UAAYs3L,IAAkBC,EACtC,OAEF,MAAM,KAAE9hD,EAAI,QAAEnL,GAAYznM,EAC1B,GACE4yM,EAAKhjN,OAAS+6N,IACwB,SAAtC7/N,KAAK+3X,uBAAuBjwK,GAM9B,IAAK,IAAI7lN,EAAI,EAAGA,EAAI06M,EAAQt8M,OAAQ4B,IAAK,CACvC,MAAM6qQ,EAAUnwD,EAAQ16M,GAAGonD,MAC3B,GAAIyjN,EAAS,CACX,MAAMC,EAAU/sQ,KAAKgtQ,kBAAkBF,GACvCnD,EAAcnE,QAAQ7oD,EAAQ16M,GAAGm6M,IAAK2wD,EAAQ,IAC9CnD,EAAcpE,QAAQ7oD,EAAQ16M,GAAGm6M,IAAK2wD,EAAQ,GAChD,CACF,CACF,CAEA5b,gBAAAA,CACE/nO,EAA6BqvW,GAE7B,IADA,YAAEnmK,EAAW,UAAEmvB,EAAS,mBAAE+zI,EAAkB,KAAE1wX,GAA0B2zX,EAExE,MAAM,MAAE3xJ,GAAU9mO,KAClB,GAAK8mO,KAASA,EAAMntL,YAAc8nM,GAAlC,CAKA,IAAK38O,GAAiB,UAATA,EAAkB,CAC7B,MAAM,eAAE0kQ,GAAmBxpQ,KAC3BkD,OAAO4pB,KAAK08O,GAAgBjoQ,SAAS4hP,GACnCwsG,GAAkBnmF,EAAermB,GAAY7wB,EAAamvB,IAE9D,CACA,GAAIzhP,KAAK6X,OAAOwzP,0BAEM,IAAhB/4C,QAA4CxxN,IAAvB00X,EAAkC,CACzD,MAAM,WAAExtI,GAAehoP,KACvBkD,OAAO4pB,KAAKk7N,GAAYzmP,SAAS4hP,GAC/BwsG,GACE3nG,EAAW7E,GACX7wB,EACAkjK,IAGN,CApBF,CAsBF,CAEQxoH,iBAAAA,CAAkB1gL,GACxB,MAAM2gL,EAA4B,CAAC,GAAI,IACjCnnQ,EAAuB,GAAfwmF,EAAU,GACxB,IAAI9nF,EAAW,EAEf,IAAK,IAAI0D,EAAI,EAAGA,EAAIpC,EAAOoC,IAAK,CAC9B,MAAMglQ,EAAU5gL,EAAU9nF,KACpB2oQ,EAAU,IAAO7gL,EAAU9nF,KAC3B4oQ,EAAU,IAAO9gL,EAAU9nF,KACjC,GAAgB,IAAZ2oQ,GAA6B,IAAZC,EACnB,SAGF,GADqC,KAApB,EAAOF,GACX,CACX,MAAMG,EAAS,EAAOH,EAEpB,IAA4BG,GAC5B,IAA4BA,IAG5BJ,EAAcI,GAAQzsQ,KAAKusQ,GAC3BF,EAAcI,GAAQzsQ,KAAKwsQ,GAE/B,CACF,CACA,OAAOH,CACT,GqD5NAgI,sBI/dF,cACUqsF,GAeR/0V,WAAAA,CACE0zN,EACA6Y,EACAo9B,GAEA5iJ,MACE2sG,EACA6Y,EACAo9B,EACA,4BACAr2C,IACA,KAvBI8jB,YAAiC,KAAI,KACrCsU,cAAwB,EAAC,KACzBC,gBAA0B,EAAC,KAC3BwgI,cAAsC,KAAI,KAC1CC,eAAuC,KAAI,KAC3C38J,SAAmB,EAAC,KACpB48J,YAAwC,KAAI,KAC5CrD,YAAmC,KAAI,KACvCsD,UAAoB,EAAK,KACzBC,eAAyB,EAAK,KAC9BC,sBAAgD,KActD/4X,KAAKuwV,oBACP,CAEUjwH,mBAAAA,GACRtgO,KAAKwwV,uBACLl9N,MAAMgtG,sBACNtgO,KAAKu1X,YAAc,KACnBv1X,KAAK04X,cAAgB,KACrB14X,KAAK24X,eAAiB,IACxB,CAEQpoC,kBAAAA,GACN,MAAM,IAAEtwH,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACpDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACtDigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MAChDigO,EAAIn5K,GAAGwtF,GAAO6pF,qBAAsBn+N,KAAKo5P,qBAAsBp5P,MAC/DigO,EAAIn5K,GAAGwtF,GAAO8pF,sBAAuBp+N,KAAKwjP,sBAAuBxjP,MACjEigO,EAAIn5K,GAAGwtF,GAAOiqF,mBAAoBv+N,KAAK42P,mBAAoB52P,MAC3DigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACnCigO,EAAIn5K,GAAGwtF,GAAO2oF,aAAcj9N,KAAK2wP,cAAe3wP,MAChDigO,EAAIn5K,GAAGwtF,GAAO6oF,eAAgBn9N,KAAK4jP,gBAAiB5jP,MACpDigO,EAAIn5K,GAAGwtF,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MACtDigO,EAAIn5K,GAAGwtF,GAAOkpF,eAAgBx9N,KAAKskP,gBAAiBtkP,MACpDigO,EAAIn5K,GAAGwtF,GAAOi+E,eAAgBvyN,KAAKm4P,eAAgBn4P,MACnDigO,EAAIn5K,GAAGwtF,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,KACpD,CAEQwwV,oBAAAA,GACN,MAAM,IAAEvwH,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACrDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACvDigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MACjDigO,EAAIxqI,IAAI6+C,GAAO6pF,qBAAsBn+N,KAAKo5P,qBAAsBp5P,MAChEigO,EAAIxqI,IAAI6+C,GAAO8pF,sBAAuBp+N,KAAKwjP,sBAAuBxjP,MAClEigO,EAAIxqI,IAAI6+C,GAAOiqF,mBAAoBv+N,KAAK42P,mBAAoB52P,MAC5DigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACpCigO,EAAIxqI,IAAI6+C,GAAO2oF,aAAcj9N,KAAK2wP,cAAe3wP,MACjDigO,EAAIxqI,IAAI6+C,GAAO6oF,eAAgBn9N,KAAK4jP,gBAAiB5jP,MACrDigO,EAAIxqI,IAAI6+C,GAAOipF,gBAAiBv9N,KAAKmxP,iBAAkBnxP,MACvDigO,EAAIxqI,IAAI6+C,GAAOkpF,eAAgBx9N,KAAKskP,gBAAiBtkP,MACrDigO,EAAIxqI,IAAI6+C,GAAOi+E,eAAgBvyN,KAAKm4P,eAAgBn4P,MACpDigO,EAAIxqI,IAAI6+C,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,KACrD,CAGAm4P,cAAAA,CACE/uO,EAA4B+iT,GAE5B,IADA,KAAErkH,EAAI,GAAEpkL,EAAE,QAAEwuL,EAAO,UAAE5D,GAA6B69G,EAIlD,GAAW,SAAPzoS,EAAe,CACjB,MAAM41I,EAAKwuC,EAAKxuC,GAChBt5K,KAAKkyN,QAAQpK,EAAKxuC,IAAM,CAAEgjD,SAAUpK,EAAS5D,aAC7CtuN,KAAKyxD,IAAK,mBAAkB6nH,sBAAuB44C,KACnDlyN,KAAKi4P,aAAe3+E,EAEhBt5K,KAAK+nB,QAAU8zN,IACjB77O,KAAKo7O,MAET,CACF,CAEAW,SAAAA,CAAUY,GACR,IAAK38O,KAAK6lO,OAGR,OAFA7lO,KAAK28O,cAAgBA,OACrB38O,KAAK+nB,MAAQ8zN,IAGf,MAAMxC,EAAkBr5O,KAAKq5O,gBAC7Br5O,KAAKg8O,WACLh8O,KAAK07O,YA/Ga,KAgHdrC,EAAkB,IAAwB,IAAnBsD,GACzB38O,KAAKyxD,IACF,gDAA+C4nL,EAAgBjqN,QAC9D,MAGJutN,EAAgBtD,EAChBr5O,KAAK+nB,MAAQ8zN,KAEb77O,KAAKy8O,gBAAiB,EACtBz8O,KAAK+nB,MAAQ8zN,IAEf77O,KAAK08O,iBACH18O,KAAK28O,cACL38O,KAAKq5O,gBACHsD,EAEJ38O,KAAKo7O,MACP,CAEAQ,MAAAA,GACE,OAAQ57O,KAAK+nB,OACX,KAAK8zN,GACH77O,KAAKg5X,aACL,MACF,KAAKn9I,GAAqB,KAAAo9I,EACxB,MAAM,OAAEpzJ,EAAM,QAAE7J,GAAYh8N,KACtBy6M,EAAgB,MAANorB,GAAA,OAAMozJ,EAANpzJ,EAAS7J,SAAH,EAANi9J,EAAmBx+K,QACnC,GAAIA,EAAS,CACX,GAAIz6M,KAAKknW,iBAAiBzsJ,GACxB,MAEFz6M,KAAK+nB,MAAQ8zN,EACf,CACA,KACF,CACA,KAAKA,GAAkC,KAAAk3I,EACrC,MAAM1xT,EAAMC,YAAYD,MAClB+8K,EAAYp+O,KAAKo+O,UAEvB,IAAKA,GAAa/8K,GAAO+8K,GAAuB,OAAd20I,EAAI/yX,KAAK8mO,QAALisJ,EAAY55I,QAAS,CACzD,MAAM,OAAEtT,EAAM,QAAE7J,GAAYh8N,KAC5BA,KAAKyxD,IAAI,gDACTzxD,KAAKynW,yBAA8B,MAAN5hI,OAAM,EAANA,EAAS7J,KAAY,MAClDh8N,KAAK+nB,MAAQ8zN,EACf,CACA,KACF,CACA,KAAKA,GAAwB,CAE3B,MAAM+8I,EAAc54X,KAAK44X,YACzB,GAAIA,EAAa,CACf,MAAM,KAAE9wK,EAAI,KAAE/7I,EAAI,MAAE9gE,EAAK,SAAEg4D,GAAa21T,EACxC,QAA8B93X,IAA1Bd,KAAKkyN,QAAQpK,EAAKxuC,IAAmB,CACvCt5K,KAAK44X,YAAc,KACnB54X,KAAKk4P,gBAAkB,EACvBl4P,KAAK+nB,MAAQ8zN,GACb,MACM3mO,EAAuB,CAC3B4yM,OACA/7I,OACA7U,QAJcjsD,EAAMzI,QAKpBkpO,eAAgB,MAElB1rO,KAAKsiW,4BAA4BptV,GAC7B+tD,GACFqwD,MAAMivO,4BAA4BrtV,QAE/B,GAAIlV,KAAKi4P,eAAiBj4P,KAAKk4P,eAEpCl4P,KAAKyxD,IACF,wBAAuBq2J,EAAKxuC,wCAAwCt5K,KAAKi4P,gBAE5Ej4P,KAAKk5P,2BACA,CAEL,MAAM/1K,EAAMnjF,KAAKulW,kBACXjzH,EAAaF,GAAaE,WAC9BtyO,KAAKq8O,YACLl5J,EACAnjF,KAAK6X,OAAOk9M,eAEoBwjB,GAChCjG,EAAWtuO,IACXhE,KAAK6X,OAAOogO,uBACZnwB,GAE8B,IAC9B9nN,KAAKyxD,IACF,wBAAuBq2J,EAAKxuC,SAASwuC,EAAK3zM,+CAA+Cm+N,EAAWtuO,iBAEvGhE,KAAKk5P,uBAET,CACF,MACEl5P,KAAK+nB,MAAQ8zN,EAEjB,EAGF77O,KAAKwhW,WACP,CAEAtoG,oBAAAA,GACE,MAAM0/H,EAAc54X,KAAK44X,YACrBA,IACF54X,KAAK84O,gBAAgBvI,eAAeqoJ,EAAY9wK,MAChD9nN,KAAK44X,YAAc,KACnB54X,KAAKk4P,gBAAkB,EACvBl4P,KAAK+nB,MAAQ8zN,GAEjB,CAEUkmH,iBAAAA,GACR/hW,KAAKk5P,uBACL5lI,MAAMyuO,mBACR,CAEUP,SAAAA,GACR,MAAM,MAAE16H,GAAU9mO,KACR,MAAL8mO,GAAAA,EAAOpzK,aAKZ1zD,KAAKq5O,gBAAkBvS,EAAMntL,YAC/B,CAEQq/U,UAAAA,GACN,MAAM,IAAE/4J,EAAG,OAAE4F,EAAM,MAAEiB,EAAK,QAAE9K,GAAYh8N,KAClC6X,EAASooN,EAAIpoN,OAQnB,IACG7X,KAAKm3U,YACJrwG,IAAU9mO,KAAK69O,qBAAuBhmO,EAAO2mO,oBACxC,MAAN3Y,IAAAA,EAAS7J,GAEV,OAGF,MAAMyiB,EAAY5Y,EAAO7J,GAEnBq8B,EAAe5Z,EAAUhkC,QAC/B,IACG49C,GACAA,EAAa50B,MAAQzjO,KAAKu+O,kBAAoBE,GAC/Cz+O,KAAKknW,iBAAiB7uG,GAGtB,YADAr4P,KAAK+nB,MAAQ8zN,IAIf,MAAMypH,EAAatlW,KAAKq8O,YAAcr8O,KAAKq8O,YAAcr8O,KAAK8mO,MAC1D9mO,KAAK84X,eAAiBxzB,IACxBtlW,KAAK84X,eAAgB,EACrB94X,KAAK4nW,mBACHtC,EACAvkI,GACAlB,KAIJ,MAAMyS,EAAatyO,KAAK2iW,iBACtB2C,EACAzlI,IAEF,GAAmB,OAAfyS,EACF,OAGF,IAAKtyO,KAAK24X,gBAAkB34X,KAAKk8O,aAAa5J,EAAY+lB,GAGxD,OAFAp4B,EAAI3lB,QAAQhmE,GAAOgpF,WAAY,CAAEx4N,KAAM,eACvC9E,KAAK+nB,MAAQ8zN,IAIf,MAAMyc,EAAiBt4P,KAAK2iW,iBAC1B3iW,KAAK2jP,YAAc3jP,KAAK2jP,YAAc3jP,KAAK8mO,MAC3CjH,IAEIkT,EAAYT,EAAWv/N,IACvB2rO,EAAY1+O,KAAK0lW,mBAAmB,MAAAptG,OAAA,EAAAA,EAAgBvlP,KAEpDywN,EAAY60B,EAAa70B,UACzBrvN,EAAQqvN,EAAU,GAAGrvN,MACrB+kX,EAAel5X,KAAKulW,kBACpBrD,EAAmBliW,KAAK64X,SAAWK,EAAe5mJ,EAAWtuO,IAEnE,GAAIhE,KAAK24X,gBAAkB7xJ,EAAO,CAChC,MAAM3jJ,EAAM+1S,EAER7gI,EAAajjB,UAAYjyJ,EAAMhvE,IAE7Bm+N,EAAWtuO,IAAMmQ,GAASm+N,EAAWI,aACvC1yO,KAAKyxD,IACH,yEAEFq1K,EAAMntL,YAAcxlC,EAAQ,IAGlC,CAGA,GACE4+N,GAAa2L,IACZ1+O,KAAK24X,gBACNz2B,EAAmB1+H,EAAUA,EAAUnjO,OAAS,GAAG8T,MAEnD,OAGF,IAAI2zM,EAAO9nN,KAAK6lW,gBAAgB3D,EAAkB7pG,GAC9C8gI,GAAQ,EAYZ,GAVIrxK,GAAQ9nN,KAAKimW,cAAcn+I,EAAMo6I,KACnCi3B,IAAUrxK,EAAKruL,IACfquL,EAAO9nN,KAAKmmW,2BACVr+I,EACAuwC,EACA/lB,EACAzS,GACA6e,KAGC52B,EAEH,YADA9nN,KAAK84X,eAAgB,GAKvB,MAAMM,EACJ9gI,GACAxwC,EAAK3zM,MAAQmkP,EAAet0P,IAAMq0P,EAAav0B,eACjD,GACEs1J,IAEgB,MAAd9gI,IAAAA,EAAgBvlP,MAAOu/N,EAAWv/N,IACpC,CAEA,MAAMsmX,EAAWr5X,KAAKs8V,gBAAgBx0I,EAAK3zM,MAAO0rN,IAClD,GAAiB,OAAbw5J,EACF,OAKF,GAFAF,IAAAA,IACIE,EAAS5/V,OAAU2/V,GAA4C,IAAvB9gI,EAAevlP,KAExDqmX,IAAsBD,GACtBA,GAAS7mJ,EAAWI,WAAaJ,EAAWI,UAAY2mJ,EAASr1X,IAElE,MAEJ,CAEAhE,KAAKiiW,aAAan6I,EAAM22B,EAAWyjH,EACrC,CAEUwD,kBAAAA,CAAmBqwB,GAC3B,MAAMx9H,EAAkBjlI,MAAMoyO,qBAC9B,OAAKqwB,EAGElzX,KAAK4qB,IACV5qB,KAAK2qB,IAAI+qO,EAAiBw9H,GAC1B/1X,KAAK6X,OAAOinO,oBAJLyZ,CAMX,CAEAtW,gBAAAA,GACEjiP,KAAK2jP,YAAc,KACnB3jP,KAAK84X,cAAgB94X,KAAK64X,UAAW,EACrCvlQ,MAAM2uH,kBACR,CAEAmX,oBAAAA,CACEhwO,EAAkCkwW,GAElC,IADA,YAAEltJ,GAAqCktJ,EAGvCt5X,KAAKyhW,kBACLzhW,KAAK6lO,OAASuG,EAAY9iO,KAAKosX,GAAkB,IAAItyJ,GAAMsyJ,IAC7D,CAEAlyI,qBAAAA,CACEp6N,EACAlU,GAGA,MAAMwoO,IAAaxoO,EAAKuT,IACxBzoB,KAAKg8N,QAAU9mN,EAAKwuB,GACpB,MAAM,YAAEu4M,GAAgBj8O,KAEpBi8O,IACFA,EAAY+7F,gBACZh4U,KAAK+nW,sBAAsB9rH,EAAY9nO,QAEzCnU,KAAK+hW,oBAEArkH,EAIH19O,KAAK07O,YApaW,KAiahB17O,KAAKyhW,kBAOH/jH,GACF19O,KAAK24X,eAAiBzjX,EAEtBlV,KAAK+nB,MAAQ8zN,GACb77O,KAAKu5X,mBAAmBrkX,KAExBlV,KAAK24X,eAAiB,KACtB34X,KAAK04X,cAAgBxjX,EACrBlV,KAAK+nB,MAAQ8zN,IAEf77O,KAAKo7O,MACP,CAEAlR,iBAAAA,GACElqO,KAAK84O,gBAAgBlH,qBACrB5xO,KAAK28O,cAAgB38O,KAAKq5O,gBAAkB,EAC5Cr5O,KAAK84X,cAAgB94X,KAAK64X,UAAW,EACrC74X,KAAK6lO,OACH7lO,KAAKu1X,YACLv1X,KAAK44X,YACL54X,KAAK04X,cACL14X,KAAK+4X,sBACL/4X,KAAK24X,eACH,KACJ34X,KAAK69O,oBAAqB,EAC1B79O,KAAKg8N,QAAUh8N,KAAKi4P,aAAej4P,KAAKk4P,gBAAkB,CAC5D,CAEA5V,aAAAA,CAAcl5N,EAA4BlU,GACxClV,KAAKu1X,YAAcrgX,EAAKulM,QACW,OAA/Bz6M,KAAK+4X,wBACP/4X,KAAKigO,IAAI3lB,QAAQhmE,GAAOiqF,mBAAoBv+N,KAAK+4X,uBACjD/4X,KAAK+4X,sBAAwB,KAEjC,CAEAniI,kBAAAA,CAAmBxtO,EAAkClU,GAAuB,IAAA0gX,EAC1E,GAAwB,MAApB51X,KAAKu1X,YAEP,YADAv1X,KAAK+4X,sBAAwB7jX,GAG/B,MAAM,OAAE2wN,GAAW7lO,MACXy6M,QAAS86B,EAAY7xM,GAAIs4L,GAAY9mN,EAC7C,IAAK2wN,EAEH,YADA7lO,KAAKsnG,KAAM,+CAA8C00H,KAG3Dh8N,KAAKyxD,IACF,eAAcuqK,aAAmBuZ,EAAW3R,WAC3C2R,EAAWhS,SAEXgS,EAAWolG,WACN,SAAQplG,EAAWolG,cAAcplG,EAAWslG,iBAC7C,eACOtlG,EAAWxR,iBAG1B,MAAMvtD,EAAQqvD,EAAO7J,GACrB,IAAI2a,EAAU,EACd,GAAIpB,EAAW9R,MAAqB,OAAjBmyJ,EAAIp/M,EAAMikC,UAANm7K,EAAenyJ,KAAM,CAC1CzjO,KAAK+iW,gBAAgBxtH,GACrB,MAAMggJ,EAAcv1X,KAAKu1X,YACzB,GAAIhgJ,EAAWykG,oBAAsBu7C,EACnC,OAWK,IAAA1zB,EATP,IACGrrL,EAAMikC,SACP86B,EAAWqC,oBACX29I,EAAY39I,mBAIZ2mH,GAAwBhpH,EAAYggJ,GACpC5+I,EAAUpB,EAAW/R,UAAU,GAAGrvN,WAElCwiO,EAAU32O,KAAK6mW,eACbtxH,EACA/+D,EAAMikC,QACc,OADPonJ,EACb7hW,KAAKu+O,sBAAe,EAApBsjH,EAAsBpnJ,QAG5B,CACAjkC,EAAMikC,QAAU86B,EAChBv1O,KAAKu+O,gBAAkB/nE,EAGlBx2K,KAAK69O,qBAAuB79O,KAAKu1X,aAAgBhgJ,EAAW9R,MAC/DzjO,KAAKmnW,iBAAiBnnW,KAAKu1X,aAAehgJ,EAAYoB,GAItD32O,KAAK+nB,QAAU8zN,IACd77O,KAAKknW,iBAAiB3xH,KAEvBv1O,KAAK+nB,MAAQ8zN,IAIf77O,KAAKo7O,MACP,CAEAknH,2BAAAA,CAA4BptV,GAAsB,IAAAqgW,EAChD,MAAM,KAAEztJ,EAAI,KAAE/7I,EAAI,QAAE7U,GAAYhiD,GAC1B,OAAE2C,EAAM,QAAEmkN,EAAO,OAAE6J,GAAW7lO,KACpC,IAAK6lO,EAIH,YAHA7lO,KAAKsnG,KACF,yEAAwEwgH,EAAK2G,eAAe3G,EAAKwa,8BAKtG,MAAM9rD,EAAQqvD,EAAO7J,GACrB,IAAKxlD,EAEH,YADAx2K,KAAKsnG,KAAK,sDAGZ,MAAMmzG,EAAUjkC,EAAMikC,QACtB,IAAKA,EAGH,OAFAz6M,KAAKsnG,KAAK,gEACVtnG,KAAK+nW,sBAAsBjgJ,EAAK3zM,OAGlC,MAAMmnM,EACJzjM,EAAO6sO,mBAAqBluE,EAAM8kC,YAAc,YAElD,IAAIimJ,EAAavhW,KAAKuhW,WACjBA,IACHA,EAAavhW,KAAKuhW,WAAa,IAAIoT,GACjC30W,KAAKigO,IACLJ,GACA7/N,KAAKw5X,wBAAwBhtW,KAAKxsB,MAClCA,KAAK4kW,uBAAuBp4U,KAAKxsB,QAMrC,MAAMkyN,EAAUlyN,KAAKkyN,QAAQpK,EAAKxuC,IAC5BypE,EAAkC,OAAnBwyH,EAAGztJ,EAAK5K,kBAAW,EAAhBq4J,EAAkBrgW,KAC1C,QAAgBpU,IAAZoxN,EAAuB,CAGzB,MAAMpU,GAAqB,EACrBw3I,EAAYvpR,EAAOA,EAAKnoE,OAAS,EACjCktO,GAAyB,IAAfwkH,EACVqO,EAAY,IAAI5F,GACpBj2I,EAAKwa,MACLxa,EAAK2G,GACL3G,EAAK+P,MAAMo/G,WACX//Q,EAAQxrB,WACR4pT,EACAxkH,GAEFywH,EAAW3gW,KACTs2D,EACA6rL,EACAznC,EACA,GACAwM,EACA/7I,EACA0uI,EAAQspB,cACRjmB,EACA6lJ,EACAzxI,EAEJ,KAAO,CACLlyN,KAAKyxD,IACF,4BAA2Bq2J,EAAKxuC,wDAAwDwuC,EAAK2G,UAAUhU,EAAQmpB,YAAYnpB,EAAQ8oB,gBAAgBvH,KAEtJ,MAAM,MAAE/wN,GAAWjL,KAAK44X,YAAc54X,KAAK44X,aAAe,CACxD9wK,OACA/7I,OACA9gE,MAAO,IAAIk9V,GACXllS,UAAU,GAEZh4D,EAAMrK,KAAK,IAAI4T,WAAW0iD,IAC1Bl3D,KAAKk4P,eAAiBl4P,KAAKi4P,aAC3Bj4P,KAAK+nB,MAAQ8zN,EACf,CACF,CAEU0mH,2BAAAA,CAA4B+B,GAChCtkW,KAAK44X,YACP54X,KAAK44X,YAAY31T,UAAW,EAG9BqwD,MAAMivO,4BAA4B+B,EACpC,CAEA3zG,aAAAA,GAEE3wP,KAAKq8O,YAAcr8O,KAAK2jP,YAAc,KACtC3jP,KAAKy8O,gBAAiB,CACxB,CAEAmH,eAAAA,CAAgBx6N,EAA8BlU,GAC5C,MAAMswM,EAAatwM,EAAKy5M,OAAO9K,MAC3B2B,IACFxlN,KAAKq8O,YAAc72B,EAAW55K,QAAU,MAEtC12B,EAAKy5M,OAAO/K,QACd5jN,KAAK2jP,YAAczuO,EAAKy5M,OAAO/K,MAAMh4K,QAAU,KAEnD,CAEA8lM,cAAAA,CAAetoN,EAA6BlU,GAC1C,MAAM,KAAE4yM,EAAI,KAAE/7I,GAAS72D,EACvB,GAAI4yM,EAAKhjN,OAAS+6N,GAYlB,GAAI7/N,KAAKqiW,mBAAmBv6I,GAG1B9nN,KAAKsnG,KACF,YAAWwgH,EAAK2G,KAAK1iJ,EAAO,OAASA,EAAKnoE,MAAQ,eACjDkkN,EAAKwa,qDAELtiO,KAAK+nB,uBAEL/nB,KAAK24X,eAAiB34X,KAAK24X,eAAeztX,KAAO,eATvD,CAcA,GAAgB,gBAAZ48M,EAAK2G,GAAsB,CAC7BzuN,KAAKq4O,aAAevwB,EACpB,MAAMtxC,EAAQx2K,KAAK24X,eACfniN,IACFx2K,KAAK04X,cAAgBliN,EACrBx2K,KAAK24X,eAAiB,KACtB34X,KAAKigO,IAAI3lB,QAAQhmE,GAAO+pF,qBAAoB4gH,GAAO,GAAAzoK,IAEvD,CACAx2K,KAAKkjW,qBAAqBp7I,EAAM/7I,EAVhC,MAxBE,IAAK/rE,KAAKy8O,gBAAkB30B,EAAKhjN,OAAS+6N,GAAwB,CAChE,MAAMylI,EAAatlW,KAAK2jP,aAAe3jP,KAAK8mO,MAC5C,GAAIw+H,EAAY,CACalzH,GAAa0rH,YAAYwH,GAC7BjlW,SACrBL,KAAKy8O,gBAAiB,EAE1B,CACF,CA2BJ,CAEQvkE,OAAAA,CAAQ9uJ,EAAqBlU,GAAiB,IAAA0+W,EACpD,GAAI1+W,EAAKylM,MACP36M,KAAK+nB,MAAQ8zN,QAGf,OAAQ3mO,EAAKulM,SACX,KAAKmiB,GAAa4jI,SAClB,KAAK5jI,GAAa5gB,mBAClB,KAAK4gB,GAAaliB,mBAClB,KAAKkiB,GAAa+R,gBAClB,KAAK/R,GAAagS,kBAClB,KAAKhS,GAAawS,eAClB,KAAKxS,GAAayS,iBAChBrvO,KAAKqnW,yBAAyBxnI,GAAyB3qN,GACvD,MACF,KAAK0nN,GAAa+Q,uBAClB,KAAK/Q,GAAa8Q,yBAClB,KAAK9Q,GAAa2yH,oBAGbr6U,EAAK+uO,YACNjkP,KAAK+nB,QAAU8zN,KACf,OAAA+3I,EAAA1+W,EAAK0lD,cAAL,EAAAg5T,EAAc9uX,QAAS86N,KAEvB5/N,KAAK+nB,MAAQ8zN,IAEf,MACF,KAAKjf,GAAai1B,oBAClB,KAAKj1B,GAAasnB,kBAChB,IAAKhvO,EAAKrQ,QAA0B,UAAhBqQ,EAAKrQ,OACvB,OAEF,GAAIqQ,EAAKulM,UAAYmiB,GAAai1B,oBAEhC,YADA7xP,KAAK+hW,oBAGH/hW,KAAK2nW,2BAA2BzyV,KAClClV,KAAK04X,cAAgB,KACrBplQ,MAAMwtH,gBAAgB,EAAGhrO,OAAOi9M,kBAAmB,UAErD,MACF,KAAK6J,GAAaiE,mBAChB7gO,KAAKkoW,mBAAmBhzV,GAK9B,CAEQi8O,gBAAAA,CACN/nO,EAA6BqwW,GAE7B,IADA,KAAE30X,GAA0B20X,EAExB30X,IAASi8N,KACX/gO,KAAK64X,UAAW,EAEpB,CAEQv0I,eAAAA,CACNl7N,EAA4BswW,GAE5B,IADA,KAAE50X,GAAyB40X,EAE3B,GAAI50X,IAASi8N,GAA6B,CACxC/gO,KAAK64X,UAAW,EAChB74X,KAAK84X,eAAgB,EACjB94X,KAAK+nB,QAAU8zN,KACjB77O,KAAK+nB,MAAQ8zN,IAEf,MAAMQ,EAAcr8O,KAAKq8O,aAAer8O,KAAK8mO,MACzCuV,IACFr8O,KAAK4nW,mBAAmBvrH,EAAav3O,EAAM+6N,IAC3C7/N,KAAKo7O,OAET,CACF,CAEQo+I,uBAAAA,CAAwB7jB,GAAkC,IAAAgkB,EAChE,MAAMj2V,EAAK,SACL,IAAEu8L,GAAQjgO,MACV,YAAEo0W,EAAW,UAAEzQ,GAAcgS,EAE7B/6S,EAAU56D,KAAK6kW,kBAAkBlB,GACvC,IAAK/oS,EAEH,YADA56D,KAAK8nW,wBAAwBnE,GAG/B,MAAM,KAAE77I,EAAI,KAAE/7I,EAAI,MAAEu2J,GAAU1nK,GACxB,QAAE6/I,GAAY6nB,GACd,MAAEze,EAAK,KAAEjrM,EAAI,IAAE8kM,EAAG,YAAER,GAAgBk3J,EAI1C,IAAIp0W,KAAKqiW,mBAAmBv6I,IAAUrN,EAAtC,CAUA,GALAz6M,KAAK+nB,MAAQ8zN,GACT77O,KAAK24X,gBAAkB90K,GACzB7jN,KAAK45X,oBAAoB55X,KAAK24X,gBAGjB,MAAXz7K,GAAAA,EAAayR,OAAQ,CACvB,MAAMkrK,EAAc/xK,EAAK5K,aAAe4K,EACxC9nN,KAAK85X,mBACHx3J,EACAplB,EAAYyR,OACZkrK,EACAl2B,GAEF1jI,EAAI3lB,QAAQhmE,GAAOk+E,0BAA2B,CAC5C1K,KAAM+xK,EACNn2V,KACAirL,OAAQzR,EAAYyR,QAGxB,CACA,GAAI9K,EAAO,CACT,MAAM,SAAEoN,EAAQ,OAAEU,EAAM,SAAE0D,EAAQ,OAAEC,GAAWzR,EAC3C93I,IACFA,EAAKsrQ,kBAAkBt2G,IAA+B,CACpD9P,WACAU,SACA0D,WACAC,WAGJxN,EAAKqwH,wBACHp3G,GACA9P,EACAU,EACA0D,EACAC,GAEFt1N,KAAKglW,mBAAmBnhJ,EAAOiE,EAAM/7I,EAAM43R,EAC7C,CAEA,GAAO,MAAHjmJ,GAAA,OAAGi8K,EAAHj8K,EAAKf,UAALg9K,EAAct5X,OAAQ,CACxB,MAAM05X,EAAsCr9W,GAC1C,CACEgnB,KACAokL,OACArN,WAEFiD,GAEFuiB,EAAI3lB,QAAQhmE,GAAOyiF,sBAAuBgjK,EAC5C,CACA,GAAInhX,EAAM,CACR,MAAMohX,EAAuCt9W,GAC3C,CACEgnB,KACAokL,OACArN,WAEF7hM,GAEFqnN,EAAI3lB,QAAQhmE,GAAO0iF,sBAAuBgjK,EAC5C,CA/DA,MAFEh6X,KAAK84O,gBAAgBvI,eAAezoB,EAkExC,CAEQgyK,kBAAAA,CACNn3I,EACAh0B,EACA7G,EACA67I,GAEA,GAAI3jW,KAAK+nB,QAAU8zN,GACjB,OAGEltB,EAAO/K,cACF+K,EAAO/K,MAIhB,MAAMptC,EAAQm4C,EAAO9K,MACrB,IAAKrtC,EACH,OAGFA,EAAM9yI,GAAK,QAEX,MAAMu2V,EAAqBt3I,EAAarnC,WACxCt7M,KAAKyxD,IACF,gCAA+B+kH,EAAM/1K,oCAAoCw5X,KAAsBzjN,EAAMulC,UAGpGk+K,GAA+D,IAAzCA,EAAmB3vX,MAAM,KAAKjK,SACtDm2K,EAAM4sE,WAAa62I,GAErBj6X,KAAKigO,IAAI3lB,QAAQhmE,GAAO4oF,cAAevO,GACvC,MAAMzR,EAAc1mC,EAAM0mC,YAC1B,GAAe,MAAXA,GAAAA,EAAaxxK,WAAY,CAC3B,MAAMmkN,EAA+B,CACnC/qP,KAAM,QACNgjN,OACA/7I,KAAM,KACN43R,YACA9+V,OAAQijN,EAAKhjN,KACboQ,KAAMgoM,GAERl9M,KAAKigO,IAAI3lB,QAAQhmE,GAAO8oF,iBAAkByyB,EAC5C,CAEA7vP,KAAKk8V,eACP,CAEU+F,YAAAA,CACRn6I,EACAtxC,EACA0rL,GAGA,MAAM/lH,EAAYn8O,KAAK84O,gBAAgBzH,SAASvpB,GAQ9C,IAAAoyK,EAJF,GAHAl6X,KAAKi8O,YAAcn0B,EAIjB9nN,KAAK24X,gBACLx8I,IAAc7M,IACd6M,IAAc7M,GAEd,GAAgB,gBAAZxnB,EAAK2G,GACPzuN,KAAKgjW,iBAAiBl7I,EAAMtxC,QACvB,GAAiB,OAAb0jN,EAAA1jN,EAAMikC,UAANy/K,EAAez2J,OAASzjO,KAAKkyN,QAAQpK,EAAKxuC,IAAK,CACxDt5K,KAAKyxD,IACF,+CAA8Cq2J,EAAKxuC,mDAAmDwuC,EAAK2G,eAAezuN,KAAKg8N,WAElIh8N,KAAK+nB,MAAQ8zN,GACb,MAAM05I,EAAcv1X,KAAKu1X,YAEvBA,GACAA,EAAY/xJ,UAAU,GAAGrvN,QAAUqiK,EAAMikC,QAAQ+oB,UAAU,GAAGrvN,OAE9DoqV,GAAwB/nL,EAAMikC,QAAS86K,EAE3C,MACEv1X,KAAK69O,oBAAqB,EAC1BvqH,MAAM2uO,aAAan6I,EAAMtxC,EAAO0rL,QAGlCliW,KAAKyiW,qBAAqB36I,EAE9B,CAEQyxK,kBAAAA,CAAmBZ,GACzB,GAAI34X,KAAK8mO,OAAS9mO,KAAK04X,cAAe,CACpC,MAAM,KAAExtX,EAAI,KAAEq8N,EAAI,UAAEmkH,EAAS,gBAAEE,EAAe,WAAEtwI,EAAU,SAAE8pD,GAC1DplQ,KAAK04X,cAEJ98B,GACC,CAAE1wV,OAAMq8N,OAAMmkH,YAAWE,kBAAiBtwI,aAAY8pD,YACtDuzH,EACA38B,MAGFh8V,KAAKyxD,IAAI,8CACT6hE,MAAMwtH,gBAAgB,EAAGhrO,OAAOi9M,kBAAmB,SACnD/yN,KAAK04X,cAAgB,KAEzB,CACF,CAEQkB,mBAAAA,CAAoBjB,GAC1B,MAAM,IAAE14J,GAAQjgO,KAChBA,KAAKu5X,mBAAmBZ,GACxB34X,KAAK04X,cAAgBC,EACrB34X,KAAK24X,eAAiB,KACtB14J,EAAI3lB,QAAQhmE,GAAO+pF,qBAAoB4gH,GAAA,GAAO05C,GAChD,GJlcAzjH,qBKtfF,cAAmC6hF,GAQjCxqV,WAAAA,CAAY0zN,GACV3sG,MAAM2sG,EAAK,4BAA4B,KARjCtR,OAA0B,GAAE,KAC5BqnK,SAA0C,KAAI,KAC9CC,cAAiC,GAAE,KACnCj6J,SAAmB,EAAC,KACpBywC,aAAqC,KAAI,KACzCypH,oBAA8B,EAIpCl2X,KAAKqgO,mBACP,CAEQA,iBAAAA,GACN,MAAM,IAAEJ,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACtDigO,EAAIn5K,GAAGwtF,GAAOwpF,cAAe99N,KAAKoqO,eAAgBpqO,MAClDigO,EAAIn5K,GAAGwtF,GAAOspF,gBAAiB59N,KAAKirX,iBAAkBjrX,MACtDigO,EAAIn5K,GAAGwtF,GAAOiqF,mBAAoBv+N,KAAK42P,mBAAoB52P,MAC3DigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACrC,CAEQugO,mBAAAA,GACN,MAAM,IAAEN,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACvDigO,EAAIxqI,IAAI6+C,GAAOwpF,cAAe99N,KAAKoqO,eAAgBpqO,MACnDigO,EAAIxqI,IAAI6+C,GAAOspF,gBAAiB59N,KAAKirX,iBAAkBjrX,MACvDigO,EAAIxqI,IAAI6+C,GAAOiqF,mBAAoBv+N,KAAK42P,mBAAoB52P,MAC5DigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACtC,CAEOqzI,OAAAA,GACLrzI,KAAKugO,sBACLvgO,KAAK2uN,OAAOtuN,OAAS,EACrBL,KAAKi2X,cAAc51X,OAAS,EAC5BL,KAAKysQ,aAAe,KACpBn5I,MAAM+f,SACR,CAEU62F,iBAAAA,GACRlqO,KAAK2uN,OAAS,GACd3uN,KAAKi2X,cAAgB,GACrBj2X,KAAKg2X,SAAW,KAChBh2X,KAAKysQ,aAAe,KACpBzsQ,KAAKg8N,SAAW,EAChBh8N,KAAKk2X,oBAAqB,CAC5B,CAEUh0I,gBAAAA,CACR94N,EACAlU,GAEAlV,KAAK2uN,OAASz5M,EAAKk3N,aAAe,EACpC,CAEUwqB,kBAAAA,CACRxtO,EACAlU,GAEA,MAAM,GAAEwuB,EAAE,QAAEqjM,EAAO,QAAEtsB,GAAYvlM,EAC3BwhX,EAAqB12X,KAAKi2X,cAAcvyV,GAE9C,IAAKgzV,GAAsBA,EAAmB3vJ,UAAYA,EAIxD,YAHA/mO,KAAKsnG,KACF,uBAAsB5jE,eAAgBqjM,+BAAqC,MAAA2vJ,OAAA,EAAAA,EAAoB3vJ,WAKpG,MAAMmQ,EAAaw/I,EAAmBj8K,QACtCi8K,EAAmBj8K,QAAUvlM,EAAKulM,QAClCz6M,KAAKyxD,IACF,eAAc/tB,MAAOgzV,EAAmBxrX,cAAcwrX,EAAmBnvJ,cAAcR,aAAmBtsB,EAAQmpB,WAAWnpB,EAAQ8oB,UAGpI7/L,IAAO1jC,KAAKg8N,SACdh8N,KAAK23V,eAAej0T,EAAIxuB,EAAMgiO,EAElC,CAEU9M,cAAAA,CACRhhN,EACAlU,GAEAlV,KAAKk1X,YAAYhgX,EAAKotN,MACxB,CAEU2oJ,gBAAAA,CACR7hW,EACAlU,GAEAlV,KAAKk1X,YAAYhgX,EAAKotN,MACxB,CAEQ4yJ,WAAAA,CAAY1uI,GAClB,MAAM/H,EAAYz+O,KAAKigO,IAAI4F,OAAO2gB,GAClC,IAAK/H,EACH,OAEF,MAAM7X,EAAc6X,EAAU7X,aAAe,KACvC+vJ,EAAgB32X,KAAKg2X,SAC3B,IAAIvpH,EAAezsQ,KAAKysQ,aACxB,IACG7lC,IACY,MAAb+vJ,OAAa,EAAbA,EAAet2X,WAAW,MAAAumO,OAAA,EAAAA,EAAavmO,SAC5B,MAAXumO,GAAAA,EAAa53D,MAAM+3D,IAAiD,KAArC,MAAA4vJ,OAAA,EAAAA,EAAejzX,QAAQqjO,MACtD,CACA/mO,KAAKg2X,SAAWpvJ,EAChB5mO,KAAKg8N,SAAW,EAChBh8N,KAAKysQ,aAAe,KAEpB,MAAMrgC,EAAcpsO,KAAK2uN,OAAO7+L,QAC7B0mJ,IACEowD,IAAuD,IAAxCA,EAAYljO,QAAQ8yK,EAAMuwD,WAE9C,GAAIqF,EAAY/rO,OAGZL,KAAKk2X,qBACJ9pJ,EAAYp9D,MAAMwH,GAAUA,EAAMv/J,YAEnCjX,KAAKk2X,oBAAqB,GAG5B9pJ,EAAY7qO,SAAQ,CAACi1K,EAAOv0K,KAC1Bu0K,EAAM9yI,GAAKzhC,CAAC,SAET,IAAKwqQ,IAAiBzsQ,KAAKi2X,cAAc51X,OAE9C,OAEFL,KAAKi2X,cAAgB7pJ,EAGrB,MAAM0tH,EAAkB95V,KAAKigO,IAAIpoN,OAAOiiV,gBACxC,IAAKrtF,GAAgBqtF,EAAiB,CACpC,MAAM+8B,EAAan7B,GACjB5B,EACA1tH,EACA4vH,IAEF,GAAI66B,GAAc,EAChBpqH,EAAergC,EAAYyqJ,OACtB,CACL,MAAMC,EAAWp7B,GAAmB5B,EAAiB95V,KAAK2uN,QAC1D89C,EAAezsQ,KAAK2uN,OAAOmoK,EAC7B,CACF,CAGA,IAAI96J,EAAUh8N,KAAK+2X,YAAYtqH,IACd,IAAbzwC,GAAkBywC,IACpBzwC,EAAUh8N,KAAK+2X,YAAY,OAI7B,MAAMoD,EAA6C,CAAE/tJ,eACrDpsO,KAAKyxD,IACF,0BACC26K,EAAY/rO,sCAC6B,MAAXumO,OAAW,EAAXA,EAAa//N,KAAK,QAEpD7G,KAAKigO,IAAI3lB,QAAQhmE,GAAO6pF,qBAAsBg8J,GAE9C,MAAMC,EAAkBp6X,KAAKg8N,QAC7B,IAAiB,IAAbA,IAAuC,IAArBo+J,EACpBp6X,KAAKq6X,cAAcr+J,QACd,GAAIoQ,EAAY/rO,SAA+B,IAArB+5X,EAAwB,KAAAE,EACvD,MAAMh/W,EAAQ,IAAItJ,MACf,0DAAsE,OAAfsoX,EAAEt6X,KAAKg2X,eAAQ,EAAbsE,EAAezzX,KACvE,qBACgBulO,EAAY/rO,UAEhCL,KAAKsnG,KAAKhsF,EAAMg4B,SAEhBtzC,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa+Q,uBACtBhzB,OAAO,EACPr/L,SAEJ,OACStb,KAAK03V,qBAAqBjrF,IAEnCzsQ,KAAKq6X,cAAcr6X,KAAKg8N,QAE5B,CAEU9jD,OAAAA,CAAQ9uJ,EAAqBlU,IACjCA,EAAKylM,OAAUzlM,EAAK0lD,UAKtB1lD,EAAK0lD,QAAQ91D,OAAS86N,IACtB1qN,EAAK0lD,QAAQl3B,KAAO1jC,KAAKg8N,SACvBh8N,KAAKg2X,WAA6D,IAAjDh2X,KAAKg2X,SAAStyX,QAAQwR,EAAK0lD,QAAQmsK,WAEtD/mO,KAAKi3V,kBAAoB,EACzBj3V,KAAKy4V,WAAWvjV,IAEpB,CAEA,kBAAIw3W,GACF,OAAO1sX,KAAK2uN,MACd,CAEA,eAAIyd,GACF,OAAOpsO,KAAKi2X,aACd,CAEA,cAAIzwK,GACF,OAAOxlN,KAAKg8N,OACd,CAEA,cAAIxW,CAAWwxC,GAEbh3P,KAAKk2X,oBAAqB,EAC1Bl2X,KAAKq6X,cAAcrjI,EACrB,CAEOujI,cAAAA,CACLC,GAEA,MAAMv6J,EAAMjgO,KAAKigO,IAEjB,GADAA,EAAIpoN,OAAOiiV,gBAAkB0gC,EACzBA,EAAa,CACf,MAAM9N,EAAiB1sX,KAAK0sX,eAE5B,GADA1sX,KAAKk2X,oBAAqB,EACtBxJ,EAAersX,OAAQ,CAEzB,MAAMosQ,EAAezsQ,KAAKysQ,aAC1B,GACEA,GACAmvF,GAAc4+B,EAAa/tH,EAAcuvF,IAEzC,OAAOvvF,EAGT,MAAMoqH,EAAan7B,GACjB8+B,EACAx6X,KAAKi2X,cACLj6B,IAEF,GAAI66B,GAAc,EAAG,CACnB,MAAMrgN,EAAQx2K,KAAKi2X,cAAcY,GAEjC,OADA72X,KAAKq6X,cAAcxD,GACZrgN,EACF,GAAIi2F,EAAc,CAEvB,IAAIsxD,EAAc99F,EAAIulB,WACD,IAAjBu4E,IACFA,EAAc99F,EAAI4rJ,gBAEpB,MAAM4O,EzGyFT,SACLztN,EACA64D,EACA6mJ,EACA3uD,EACA49B,GAKA,MAAMh5G,EAAe9c,EAAOk4F,GAYtB28D,EATW70J,EAAO1vN,QACtB,CAACwkX,EAAyCr4J,EAAO1+N,KAC/C,MAAMw1D,EAAMkpK,EAAMlpK,IAGlB,OAFmBuhU,EAAWvhU,KAASuhU,EAAWvhU,GAAO,KAC9Cx4D,KAAKgD,GACT+2X,CAAU,GAEnB,CAAC,GAEyBh4I,EAAavpL,KACrCshU,EAAWr6X,OAAS,IACtB09T,EAAcl7T,KAAK2qB,IAAIngB,MAAMxK,KAAM63X,IAGrC,MAAM9gC,EAAoBj3G,EAAagxG,WACjCkG,EAAmBl3G,EAAauwG,UAChC0nC,EAAoBj4I,EAAaqnG,SAAS37T,UAAU,EAAG,GACvDwsW,EAAgB5+B,GACpBp2H,EACAk4F,GACCz7F,IACC,GACEA,EAAMqxH,aAAeiG,GACrBt3H,EAAM4wH,YAAc2G,GACpBv3H,EAAM0nH,SAAS37T,UAAU,EAAG,KAAOusW,EAEnC,OAAO,EAET,MAAMh0J,EAActE,EAAMsE,YACpBjY,EAAS+9J,EAAe58V,QAC3B0mJ,IACEowD,IAAuD,IAAxCA,EAAYljO,QAAQ8yK,EAAMuwD,WAE9C,OAAO20H,GAAmB1uL,EAAQ2hD,EAAQgtI,IAAmB,CAAC,IAGlE,OAAIk/B,GAAiB,EACZA,EAEF5+B,GAAoBp2H,EAAQk4F,GAAcz7F,IAC/C,MAAMsE,EAActE,EAAMsE,YACpBjY,EAAS+9J,EAAe58V,QAC3B0mJ,IACEowD,IAAuD,IAAxCA,EAAYljO,QAAQ8yK,EAAMuwD,WAE9C,OAAO20H,GAAmB1uL,EAAQ2hD,EAAQgtI,IAAmB,CAAC,GAElE,CyGrJ8Bm/B,CAClBN,EACAv6J,EAAI4F,OACJ6mJ,EACA3uD,EACAi+B,IAEF,IAAqB,IAAjBy+B,EAEF,OAAO,KAGTx6J,EAAIge,cAAgBw8I,CACtB,CACA,GAAID,EAAYp1H,UAAYo1H,EAAYl/K,WAAY,CAGlD,MAAMy/K,EAA+Br/B,GACnC8+B,EACA9N,GAEF,GAAIqO,GAAgC,EAClC,OAAOrO,EAAeqO,EAE1B,CACF,CACF,CACA,OAAO,IACT,CAEQV,aAAAA,CAAcrjI,GACpB,MAAMroC,EAAS3uN,KAAKi2X,cAGpB,GAAIj/H,EAAQ,GAAKA,GAASroC,EAAOtuN,OAE/B,YADAL,KAAKsnG,KAAM,2BAA0B0vJ,KAKvCh3P,KAAKolP,aAELplP,KAAKk2X,oBAAqB,EAC1B,MAAMmB,EAAYr3X,KAAKysQ,aACjBj2F,EAAQm4C,EAAOqoC,GACfsgI,EAAc9gN,EAAMikC,UAAYjkC,EAAMikC,QAAQgpB,KACpD,GAAIuzB,IAAUh3P,KAAKg8N,SAAWxlD,IAAU6gN,GAAaC,EACnD,OASF,GAPAt3X,KAAKyxD,IACF,4BAA2BulM,MAAUxgF,EAAMtrK,cAAcsrK,EAAM+wD,cAAc/wD,EAAMuwD,oBAAoBvwD,EAAM4uF,YAEhHplQ,KAAKg8N,QAAUg7B,EACfh3P,KAAKysQ,aAAej2F,EACpBx2K,KAAKigO,IAAI3lB,QAAQhmE,GAAO8pF,sBAAqB6gH,GAAO,GAAAzoK,IAEhD8gN,EACF,OAEF,MAAM//B,EAAmBv3V,KAAKo3V,aAC5B5gL,EAAM/tJ,IACG,MAAT4uW,OAAS,EAATA,EAAW58K,QACXjkC,EAAMikC,SAERz6M,KAAKm3V,aAAaI,EACpB,CAEQw/B,WAAAA,CAAYtqH,GAClB,MAAMrgC,EAAcpsO,KAAKi2X,cACzB,IAAK,IAAIh0X,EAAI,EAAGA,EAAImqO,EAAY/rO,OAAQ4B,IAAK,CAC3C,MAAMu0K,EAAQ41D,EAAYnqO,GAC1B,KAAIjC,KAAKk2X,oBAAuB1/M,EAAMv/J,YAInCw1P,GACDmvF,GAAcnvF,EAAcj2F,EAAOwlL,KAEnC,OAAO/5V,CAEX,CACA,GAAIwqQ,EAAc,CAChB,MAAM,KAAEvhQ,EAAI,KAAEq8N,EAAI,UAAEmkH,EAAS,gBAAEE,EAAe,WAAEtwI,EAAU,SAAE8pD,GAC1DqH,EACF,IAAK,IAAIxqQ,EAAI,EAAGA,EAAImqO,EAAY/rO,OAAQ4B,IAAK,CAE3C,GACE25V,GACE,CAAE1wV,OAAMq8N,OAAMmkH,YAAWE,kBAAiBtwI,aAAY8pD,YAH5Ch5B,EAAYnqO,GAKtB+5V,IAGF,OAAO/5V,CAEX,CACA,IAAK,IAAIA,EAAI,EAAGA,EAAImqO,EAAY/rO,OAAQ4B,IAAK,CAC3C,MAAMu0K,EAAQ41D,EAAYnqO,GAC1B,GACEm0W,GAAyB3pG,EAAa1/G,MAAOypB,EAAMzpB,MAAO,CACxD,WACA,iBACA,oBAGF,OAAO9qJ,CAEX,CACA,IAAK,IAAIA,EAAI,EAAGA,EAAImqO,EAAY/rO,OAAQ4B,IAAK,CAC3C,MAAMu0K,EAAQ41D,EAAYnqO,GAC1B,GACEm0W,GAAyB3pG,EAAa1/G,MAAOypB,EAAMzpB,MAAO,CACxD,aAGF,OAAO9qJ,CAEX,CACF,CACA,OAAQ,CACV,CAEUk1V,YAAAA,CAAaI,GACrB,MAAM/xI,EAAaxlN,KAAKysQ,aACxB,GAAIzsQ,KAAKw3V,mBAAmBhyI,IAAeA,EAAY,CACrDlyF,MAAM6jO,eACN,MAAMzzT,EAAK8hL,EAAW9hL,GAChBqjM,EAAUvhB,EAAWuhB,QAC3B,IAAIt+M,EAAM+8L,EAAW/8L,IACrB,GAAI8uU,EACF,IACE9uU,EAAM8uU,EAAiBvE,cAAcvqU,GACrC,MAAOnN,GACPtb,KAAKsnG,KACF,6DAA4DhsF,IAEjE,CAGFtb,KAAKyxD,IACF,gCAA+B/tB,MAAO8hL,EAAWt6M,cAAcs6M,EAAW+hB,cAAcR,KAE3F/mO,KAAKolP,aACLplP,KAAKigO,IAAI3lB,QAAQhmE,GAAOgqF,oBAAqB,CAC3C71M,MACAib,KACAqjM,UACA+mH,mBAAoByJ,GAAoB,MAE5C,CACF,GLiGApiF,cAAiCpF,GACjCirH,eMnfa,MAcbzuX,WAAAA,CAAY0zN,GAAU,KAbdA,SAAG,OACHpoN,YAAM,OACNivN,WAAK,OACLm0J,SAAG,OACHC,SAAG,OACHC,YAAsB,EAAK,KAC3BC,iBAAW,OACXxgG,aAAuB,EAAK,KAC5BygG,SAAmB,EAAK,KACxBlkD,WAAqB,EAAI,KACzB3nF,iBAAW,EAAiB,KAC5B7L,iBAAW,OAwEX23I,UAAY,KACdt7X,KAAK46R,cACP56R,KAAKq7X,SAAU,GAGjBr7X,KAAKm3U,WAAY,CAAI,EACtB,KAEOokD,UAAY,KACbv7X,KAAK46R,cACR56R,KAAK46R,aAAc,GAGrB56R,KAAKm3U,WAAY,CAAK,EA4DxB,KAGQqkD,kBAAqB5gU,IAC3B,IACE56D,KAAKqN,MAAMutD,EAAS,CAClB6gU,GAAI1Y,GAAe54I,SACnBuxJ,IAAK17X,KAAK46R,cAEZ,MAAOt/Q,GACPs5B,GAAO0yD,KAAK,yCAA0ChsF,EACxD,GAGF,KAGQqgX,kBAAqB/gU,IAC3B,IACE,MAAMw2E,EAAWx2E,EAAQktJ,KACnBwa,EAAQtiO,KAAKigO,IAAI4F,OAAOz0F,EAASkxF,OACjCm5J,EAAKz7X,KAAK47X,cAAcxqP,GACxBl8H,EAAa,CACjBG,EAAuB,IAApB+7H,EAAS1xH,SACZ+7W,MAIAA,IAAO1Y,GAAejhJ,OACtB25J,IAAO1Y,GAAelhJ,OACtB45J,GAAM1Y,GAAe8Y,QAErB3mX,EAAK8gK,GAAKssD,EAAMkE,QAAU,IAC1BtxN,EAAK2gK,GAAK71K,KAAK87X,gBAAgBL,GAAM,IACrCvmX,EAAKgvL,GAAKlkM,KAAK+7X,gBAAgBN,IAGjCz7X,KAAKqN,MAAMutD,EAAS1lD,GACpB,MAAOoG,GACPs5B,GAAO0yD,KAAK,wCAAyChsF,EACvD,GAtLAtb,KAAKigO,IAAMA,EACX,MAAMpoN,EAAU7X,KAAK6X,OAASooN,EAAIpoN,QAC5B,KAAEyuW,GAASzuW,EAEL,MAARyuW,IACFzuW,EAAOgyN,QAAU7pO,KAAKg8X,uBACtBnkX,EAAOs2N,QAAUnuO,KAAKi8X,uBAEtBj8X,KAAKi7X,IAAM3U,EAAKpzG,WC7ChB,WACL,IACC,OAAOvjO,OAAOusV,aAEf,MAAO5gX,GACN,IACC,MAAMmN,EAAMotE,IAAIm/G,gBAAgB,IAAIz4I,MAC9BpQ,EAAO1jC,EAAIlb,WAEjB,OADAsoF,IAAIo+I,gBAAgBxrN,GACb0jC,EAAKloD,MAAMkoD,EAAKw/B,YAAY,KAAO,GAE3C,MAAOrwE,GACN,IAAI45E,GAAK,IAAIn7C,MAAOF,UACpB,MAAMsS,EAAO,uCAAuC9oD,QAAQ,SAAU6pC,IACrE,MAAMpb,GAAKojE,EAAqB,GAAhBryF,KAAK+iF,UAAiB,GAAK,EAE3C,OADAsP,EAAKryF,KAAKgrC,MAAMqnD,EAAK,KACR,KAALhoD,EAAWpb,EAAS,EAAJA,EAAU,GAAMvkB,SAAS,GAAG,IAErD,OAAO4+C,GAGV,CDwBmCA,GAC7BnsD,KAAKk7X,IAAM5U,EAAK6V,UAChBn8X,KAAKm7X,YAAiC,IAApB7U,EAAK6U,WACvBn7X,KAAKo7X,YAAc9U,EAAK8U,YACxBp7X,KAAKqgO,oBAET,CAEQA,iBAAAA,GACN,MAAMJ,EAAMjgO,KAAKigO,IACjBA,EAAIn5K,GAAGwtF,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACpDigO,EAAIn5K,GAAGwtF,GAAO0oF,eAAgBh9N,KAAKo0Q,gBAAiBp0Q,MACpDigO,EAAIn5K,GAAGwtF,GAAO6oF,eAAgBn9N,KAAK4jP,gBAAiB5jP,KACtD,CAEQugO,mBAAAA,GACN,MAAMN,EAAMjgO,KAAKigO,IACjBA,EAAIxqI,IAAI6+C,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACrDigO,EAAIxqI,IAAI6+C,GAAO0oF,eAAgBh9N,KAAKo0Q,gBAAiBp0Q,MACrDigO,EAAIxqI,IAAI6+C,GAAO6oF,eAAgBn9N,KAAK4jP,gBAAiB5jP,KACvD,CAEAqzI,OAAAA,GACErzI,KAAKugO,sBACLvgO,KAAKo0Q,kBAGLp0Q,KAAKigO,IAAMjgO,KAAK6X,OAAS7X,KAAKwvP,YAAcxvP,KAAK2jP,YAAc,KAE/D3jP,KAAKs7X,UAAYt7X,KAAKu7X,UAAY,IACpC,CAEQ55I,eAAAA,CACNv4N,EACAlU,GAEAlV,KAAK8mO,MAAQ5xN,EAAK4xN,MAClB9mO,KAAK8mO,MAAM18M,iBAAiB,UAAWpqB,KAAKs7X,WAC5Ct7X,KAAK8mO,MAAM18M,iBAAiB,UAAWpqB,KAAKu7X,UAC9C,CAEQnnH,eAAAA,GACDp0Q,KAAK8mO,QAIV9mO,KAAK8mO,MAAM3lI,oBAAoB,UAAWnhG,KAAKs7X,WAC/Ct7X,KAAK8mO,MAAM3lI,oBAAoB,UAAWnhG,KAAKu7X,WAG/Cv7X,KAAK8mO,MAAQ,KACf,CAEQ8c,eAAAA,CACNx6N,EACAlU,GACA,IAAAknX,EAAAC,EACAr8X,KAAKwvP,YAAc,OAAH4sI,EAAGlnX,EAAKy5M,OAAO9K,YAAZ,EAAAu4K,EAAmBxwV,OACtC5rC,KAAK2jP,YAAc,OAAH04I,EAAGnnX,EAAKy5M,OAAO/K,YAAZ,EAAAy4K,EAAmBzwV,MACxC,CAqBQ0wV,UAAAA,GAAmB,IAAAvJ,EACzB,MAAO,CACL1+W,EAAG,EACH21K,GAAIg5L,GAAoBuZ,IACxBtB,IAAKj7X,KAAKi7X,IACVC,IAAKl7X,KAAKk7X,IACV3gW,GAAc,OAAZw4V,EAAE/yX,KAAK8mO,YAAK,EAAVisJ,EAAYr5I,aAChBksI,IAAK5lX,KAAKigO,IAAIu8J,kBAAoB,IAEtC,CAKQnvX,KAAAA,CAAMutD,GAAyC,IAAjB1lD,EAAUlI,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAElD0P,GAAcxH,EAAMlV,KAAKs8X,cAEzB,MAAMG,EACJvnX,EAAKumX,KAAO1Y,GAAe2Z,MAC3BxnX,EAAKumX,KAAO1Y,GAAejhJ,OAC3B5sN,EAAKumX,KAAO1Y,GAAe8Y,MAEzB77X,KAAKq7X,SAAWoB,IAClBvnX,EAAKynX,IAAK,EACVznX,EAAKwmX,IAAK,EACV17X,KAAKq7X,SAAU,GAGF,MAAXnmX,EAAKwmX,KACPxmX,EAAKwmX,GAAK17X,KAAKm3U,WAKjB,MAAM,YAAEikD,GAAgBp7X,KACpBo7X,IACFlmX,EAAOhS,OAAO4pB,KAAK5X,GAAMiB,QAAO,CAACoM,EAAKrhB,KACpCk6X,EAAYhtU,SAASltD,KAASqhB,EAAIrhB,GAAOgU,EAAKhU,IACvCqhB,IACN,CAAC,IAGFviB,KAAKm7X,YACFvgU,EAAQ/Y,UACX+Y,EAAQ/Y,QAAU,CAAC,GAGrB2kU,GAAkB5rT,EAAQ/Y,QAAS3sC,IAEnC0lD,EAAQnyC,IAAMu+V,GAAgBpsT,EAAQnyC,IAAKvT,EAE/C,CAgDQ0mX,aAAAA,CAAcxqP,GACpB,MAAM,KAAEtsI,GAASssI,EAEjB,MAAa,aAATtsI,EACKi+W,GAAe6Z,WAGJ,gBAAhBxrP,EAASq9E,GACJs0J,GAAe2Z,KAGX,UAAT53X,EACKi+W,GAAelhJ,MAGX,SAAT/8N,EACG9E,KAAKigO,IAAImM,YAAY/rO,OAInB0iX,GAAejhJ,MAHbihJ,GAAe8Y,WAF1B,CASF,CAKQC,eAAAA,CAAgBh3X,GACtB,IACI+gO,EADAW,EAAkB,EAEtB,MAAMvG,EAAMjgO,KAAKigO,IAEjB,GAAIn7N,IAASi+W,GAAelhJ,MAC1BgE,EAAS5F,EAAImM,gBACR,CACL,MAAM5+M,EAAMyyM,EAAI2sB,aACV75O,EAAMya,GAAO,EAAIA,EAAM,EAAIyyM,EAAI4F,OAAOxlO,OAC5CwlO,EAAS5F,EAAI4F,OAAO5hO,MAAM,EAAG8O,EAC/B,CAEA,IAAK,MAAMuvN,KAASuD,EACdvD,EAAMkE,QAAUA,IAClBA,EAAUlE,EAAMkE,SAIpB,OAAOA,EAAU,EAAIA,EAAUj+H,GACjC,CAKQwzR,eAAAA,CAAgBj3X,GACtB,MAAMgiO,EAAQ9mO,KAAKigO,IAAI6G,MACjBl7L,EACJ9mC,IAASi+W,GAAelhJ,MAAQ7hO,KAAKwvP,YAAcxvP,KAAK2jP,YAE1D,IAAK/3M,IAAWk7L,EACd,OAAOv+H,IAST,OAAkB,IANL6pI,GAAaE,WACxB1mM,EACAk7L,EAAMntL,YACN35C,KAAK6X,OAAOk9M,eAGFhiN,GACd,CAKQipX,oBAAAA,GACN,MAAM,QAAEnyJ,GAAY7pO,KAAK6X,OACnBxK,EAAQrN,KAAKw7X,kBACbqB,EAAOhzJ,GAAY7pO,KAAK6X,OAAO2qN,OAErC,OAAO,MAGLj2N,WAAAA,CAAYsL,GAAmB,KAFvB2qN,YAAM,EAGZxiO,KAAKwiO,OAAS,IAAIq6J,EAAKhlX,EACzB,CAEA,SAAIggN,GACF,OAAO73N,KAAKwiO,OAAO3K,KACrB,CAEA,WAAIj9J,GACF,OAAO56D,KAAKwiO,OAAO5nK,OACrB,CAEAy4E,OAAAA,GACErzI,KAAKwiO,OAAOnvF,SACd,CAEArvE,KAAAA,GACEhkE,KAAKwiO,OAAOx+J,OACd,CAEA7pB,IAAAA,CACEygB,EACA/iD,EACAq1D,GAEA7/D,EAAMutD,GACN56D,KAAKwiO,OAAOroL,KAAKygB,EAAS/iD,EAAQq1D,EACpC,EAEJ,CAKQ+uT,oBAAAA,GACN,MAAM,QAAE9tJ,GAAYnuO,KAAK6X,OACnBxK,EAAQrN,KAAK27X,kBACbkB,EAAO1uJ,GAAYnuO,KAAK6X,OAAO2qN,OAErC,OAAO,MAGLj2N,WAAAA,CAAYsL,GAAmB,KAFvB2qN,YAAM,EAGZxiO,KAAKwiO,OAAS,IAAIq6J,EAAKhlX,EACzB,CAEA,SAAIggN,GACF,OAAO73N,KAAKwiO,OAAO3K,KACrB,CAEA,WAAIj9J,GACF,OAAO56D,KAAKwiO,OAAO5nK,OACrB,CAEAy4E,OAAAA,GACErzI,KAAKwiO,OAAOnvF,SACd,CAEArvE,KAAAA,GACEhkE,KAAKwiO,OAAOx+J,OACd,CAEA7pB,IAAAA,CACEygB,EACA/iD,EACAq1D,GAEA7/D,EAAMutD,GACN56D,KAAKwiO,OAAOroL,KAAKygB,EAAS/iD,EAAQq1D,EACpC,EAEJ,GN+IA4vT,0BJjea,MAiBbvwX,WAAAA,CAAY0zN,GAAU,KAhBLA,SAAG,OACZxuK,SAAG,OACH+wK,OAAuC,KAAI,KAC3CppK,IAAqB,KAAI,KACzBiyR,UAAoB,IAAG,KACvB0xC,gBAAmC,KAAI,KACvCC,WAAqB,IAAG,KACxBC,aAAuB,EAAC,KACxBjkD,QAAkB,EAAC,KACnB/sB,SAAmB,EAAK,KACxB55O,SAAmB,EAAI,KACvBwzJ,OAAyB,KAAI,KAC7BuG,YAAsC,KAAI,KAC1C8hC,eAAyC,KAAI,KAC7CgvH,kBAAqD,CAAC,EAG5Dl9X,KAAKigO,IAAMA,EACXjgO,KAAKyxD,IAAM7c,GAAO6c,IAAIjlC,KAAKooB,GAAS,uBACpC50C,KAAKqgO,mBACP,CAEQA,iBAAAA,GACN,MAAMJ,EAAMjgO,KAAKigO,IACjBA,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,MACtDigO,EAAIn5K,GAAGwtF,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACtDigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACrC,CAEQugO,mBAAAA,GACN,MAAMN,EAAMjgO,KAAKigO,IACZA,IAGLA,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,MACvDigO,EAAIxqI,IAAI6+C,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACvDigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACtC,CAEA+7O,SAAAA,GAGE,GAFA/7O,KAAKisT,SAAU,EACfjsT,KAAKwjB,eACDxjB,KAAKqyE,SAAWryE,KAAKo5D,IAAK,CAC5B,GAAIp5D,KAAKg5U,QAAS,CAChB,MAAMmkD,EAAwB,IAAlBn9X,KAAKg9X,YAAqB17T,YAAYD,MAAQrhE,KAAKg5U,SAC/D,GAAImkD,EAAM,EAER,YADAn9X,KAAKymM,gBAAgBzmM,KAAKo5D,IAAK+jU,EAGnC,CACAn9X,KAAKo9X,qBAAqBp9X,KAAKo5D,IACjC,CACF,CAEA4iL,QAAAA,GACEh8O,KAAKisT,SAAU,EACXjsT,KAAKwiO,SACPxiO,KAAKwiO,OAAOnvF,UACZrzI,KAAKwiO,OAAS,MAEhBxiO,KAAKwjB,cACP,CAEAA,YAAAA,IAC4B,IAAtBxjB,KAAKi9X,cACPryV,KAAKpnB,aAAaxjB,KAAKi9X,aACvBj9X,KAAKi9X,aAAe,EAExB,CAEA5pP,OAAAA,GACErzI,KAAKugO,sBACLvgO,KAAKg8O,WAELh8O,KAAKigO,IAAM,KACXjgO,KAAK6lO,OAAS7lO,KAAKosO,YAAcpsO,KAAKkuQ,eAAiB,IACzD,CAEAjnB,WAAAA,CAAYo2I,GACV,MAAMx3J,EAAS7lO,KAAK6lO,OAChBA,IACF7lO,KAAK6lO,OAASA,EAAO/1M,QAAQwyM,GAAUA,IAAU+6J,IAErD,CAEQnzJ,iBAAAA,GACNlqO,KAAKg8O,WACLh8O,KAAKqyE,SAAU,EACfryE,KAAKg9X,WAAa,IAClBh9X,KAAKg5U,QAAU,EACfh5U,KAAKo5D,IAAM,KACXp5D,KAAKqrV,UAAY,IACjBrrV,KAAK6lO,OAAS7lO,KAAKosO,YAAcpsO,KAAKkuQ,eAAiB,IACzD,CAEQzoB,gBAAAA,CACNr8N,EACAlU,GAEA,MAAM,gBAAE01U,GAAoB11U,EACJ,OAApB01U,IAGJ5qV,KAAKqrV,UAAYT,EAAgBS,UACjCrrV,KAAKo5D,IAAMwxR,EAAgBxxR,IACvBp5D,KAAKisT,SACPjsT,KAAK+7O,YAET,CAEQmG,gBAAAA,CACN94N,EACAlU,GAEAlV,KAAKosO,YAAcl3N,EAAKk3N,YACxBpsO,KAAKkuQ,eAAiBh5P,EAAKg5P,cAC7B,CAEQh2F,OAAAA,CAAQ9uJ,EAAqBlU,GACnC,MAAM,YAAEwjV,GAAgBxjV,EACxB,IACa,MAAXwjV,OAAW,EAAXA,EAAat/U,UAAWy9U,IACxB6B,EAAY3lO,QAAU+jO,GACtB,CACA,MAAMjxH,EAAS7lO,KAAK6lO,OACpB,IAAIk3J,EAAkB/8X,KAAK+8X,gBACvBO,EAAet9X,KAAKqrV,UACxB,GAAIn2U,EAAK0lD,QAAS,CAChB,MAAM,QAAEmsK,EAAO,UAAEskH,EAAS,KAAEvmV,GAASoQ,EAAK0lD,QACtCmsK,GAAWlB,EACby3J,EAAet9X,KAAKu9X,qBAAqBx2J,EAASjiO,EAAMw4X,GAC/CjyC,IACTiyC,EAAejyC,EAEnB,CACMiyC,KAAgBt9X,KAAKk9X,oBACzBl9X,KAAKk9X,kBAAkBI,GAAgBh8T,YAAYD,QAEhD07T,GAAmBl3J,IAEtBk3J,EAAkBl3J,EAAO1vN,QAAO,CAACqnX,EAAUl7J,MACE,IAAvCk7J,EAAS95X,QAAQ4+N,EAAM+oH,YACzBmyC,EAAS58X,KAAK0hO,EAAM+oH,WAEfmyC,IACN,KAEDT,GAAmBA,EAAgB18X,OAAS,IAC9CL,KAAKy9X,sBAAsBV,GAC3BrkC,EAAYlhT,SAAWx3C,KAAKqrV,YAAciyC,GAEvC5kC,EAAYlhT,UACf5C,GAAO0yD,KACJ,qBAAoBpyF,EAAKulM,aACxBvlM,EAAKoG,MAAMg4B,gDAC4BgqV,aACvCz3J,EAASA,EAAOxlO,OAASwlO,iBACXjpN,KAAKjW,UACnBo2X,iBACcngX,KAAKjW,UAAU3G,KAAKk9X,qBAG1C,CACF,CAEOQ,kBAAAA,CAAmB73J,GAExB7lO,KAAK6lO,OAASA,EACd,IAAI83J,EAAgB39X,KAAK49X,oBAAoB59X,KAAKqrV,WAClD,GAA6B,IAAzBsyC,EAAct9X,OAAc,CAC9B,MAAMgrV,EAAYxlH,EAAO,GAAGwlH,UAC5BrrV,KAAKyxD,IACF,8BAA6BzxD,KAAKqrV,0CAA0CA,MAE/EsyC,EAAgB39X,KAAK49X,oBAAoBvyC,GACzCrrV,KAAKqrV,UAAYA,CACnB,CAMA,OALIsyC,EAAct9X,SAAWwlO,EAAOxlO,QAClCL,KAAKyxD,IACF,SAAQksU,EAAct9X,UAAUwlO,EAAOxlO,6BAA6BL,KAAKqrV,cAGvEsyC,CACT,CAEQC,mBAAAA,CAAoBvyC,GAC1B,OAAoB,OAAhBrrV,KAAK6lO,OACA,GAEF7lO,KAAK6lO,OAAO/1M,QAAQwyM,GAAU+oH,IAAc/oH,EAAM+oH,WAC3D,CAEQoyC,qBAAAA,CAAsBV,GAE5B,IAAIl3J,EADJ7lO,KAAK+8X,gBAAkBA,EAIvB,MAAMG,EAAoBl9X,KAAKk9X,kBACzB77T,EAAMC,YAAYD,MACxBn+D,OAAO4pB,KAAKowW,GAAmB37X,SAAS8pV,IAClChqR,EAAM67T,EAAkB7xC,GA7ME,YA8MrB6xC,EAAkB7xC,EAC3B,IAEF,IAAK,IAAIppV,EAAI,EAAGA,EAAI86X,EAAgB18X,OAAQ4B,IAAK,CAC/C,MAAMopV,EAAY0xC,EAAgB96X,GAClC,GAAIopV,KAAa6xC,EACf,SAEF,GAAI7xC,IAAcrrV,KAAKqrV,UACrB,OAEF,MAAMwyC,EAAgB79X,KAAKigO,IAAIge,cACzB6/I,EAAuB99X,KAAKigO,IAAI4F,OAAOg4J,GAE7C,GADAh4J,EAAS7lO,KAAK49X,oBAAoBvyC,GAC9BxlH,EAAOxlO,OAAS,EAAG,CACrBL,KAAKyxD,IAAK,uBAAsB45R,MAChCrrV,KAAKqrV,UAAYA,EACjBoK,GAA6B5vH,GAC7B7lO,KAAKigO,IAAI3lB,QAAQhmE,GAAO4pF,eAAgB,CAAE2H,WAE1C,MAAMk4J,EAAmB/9X,KAAKigO,IAAI4F,OAAOg4J,GACrCC,GAAiBC,GAAoB/9X,KAAK6lO,SAE1Ck4J,EAAiBhxO,MAAM,uBACrB+wO,EAAc/wO,MAAM,sBACtBgxO,EAAiBv3J,UAAYs3J,EAAct3J,SAE3CxmO,KAAKyxD,IACF,yCAAwCqsU,EAAct3J,cAAcu3J,EAAiBv3J,WAG1FxmO,KAAKigO,IAAIge,cAAgB4/I,GAE3B,KACF,CACF,CACF,CAEQN,oBAAAA,CACNx2J,EACAjiO,EACAk5X,GAEA,MAAMn4J,EAAS7lO,KAAK49X,oBAAoBI,GAAgBpzX,OACtD5K,KAAK6lO,QAAU,IAEjB,IAAK,IAAI5jO,EAAI,EAAGA,EAAI4jO,EAAOxlO,OAAQ4B,IACjC,GACG6C,IAAS86N,IACRiG,EAAO5jO,GAAG2xV,cAAc7sH,IACzBjiO,IAAS86N,IACRiG,EAAO5jO,GAAG6xV,iBAAiB/sH,GAE7B,OAAOlB,EAAO5jO,GAAGopV,UAGrB,OAAO2yC,CACT,CAEQC,aAAAA,CAAcC,GACpB,MAAMr4J,EAAS7lO,KAAK6lO,OACpB,IAAKA,EACH,OAEF,MAAMs4J,EAA6C,CAAC,EAC9CC,EAAgD,CAAC,EACvDF,EAAc38X,SAAS88X,IACrB,MACE1nD,GAAI2wC,EACJ,UAAWgX,EACX,kBAAmBjX,GACjBgX,EACJ,GAAIx4J,EAAO72D,MAAMszD,GAAUA,EAAM+oH,YAAci8B,IAC7C,OAEF,MAAMiX,EAAiBv+X,KAAK49X,oBAAoBU,GAAQh1X,KACrDk1X,IACC,MAAMx2S,EAAa,IAAIm8I,GAASq6J,EAAUzxO,OAC1C/kE,EAAW,cAAgBs/R,EAC3B,MAAMmX,EACJz2S,EAAW65I,OAAU,GAAE75I,EAAW65I,eAAeylJ,IAC7CoX,EACJ12S,EAAWg+J,WAAc,GAAEh+J,EAAWg+J,mBAAmBshI,IACvDmX,IACFN,EAAmBn2S,EAAW65I,OAAS48J,EACvCz2S,EAAW65I,MAAQ48J,GAEjBC,IACFN,EAAsBp2S,EAAWg+J,WAAa04I,EAC9C12S,EAAWg+J,UAAY04I,GAEzB,MAAMj2W,EAAMg/V,GACV+W,EAAUplU,IACV4uB,EAAW,qBACX,mBACAq/R,GAEIsX,EAAc,IAAIv7J,GAAM,CAC5Br2E,MAAO/kE,EACPszH,WAAYkjL,EAAUljL,WACtBkrB,QAASg4J,EAAUh4J,QACnBnmN,OAAQm+W,EAAUn+W,OAClBnV,KAAMszX,EAAUtzX,KAChBud,MACA00L,WAAYqhL,EAAUrhL,WACtBh4L,MAAOq5W,EAAUr5W,QAEnB,GAAIq5W,EAAU53J,YACZ,IAAK,IAAI3kO,EAAI,EAAGA,EAAIu8X,EAAU53J,YAAYvmO,OAAQ4B,IAChD08X,EAAYrqJ,WACV,QACC,GAAEkqJ,EAAU53J,YAAY3kO,YAAYqlX,KAI3C,GAAIkX,EAAUzqC,eACZ,IAAK,IAAI9xV,EAAI,EAAGA,EAAIu8X,EAAUzqC,eAAe1zV,OAAQ4B,IACnD08X,EAAYrqJ,WACV,OACC,GAAEkqJ,EAAUzqC,eAAe9xV,YAAYqlX,KAI9C,OAAOqX,CAAW,IAGtB94J,EAAOjlO,QAAQ29X,GACfpX,GACEnnX,KAAKosO,YACL+xJ,EACA9W,EACAC,GAEFH,GACEnnX,KAAKkuQ,eACLkwH,EACA/W,EACAC,EACD,GAEL,CAEQ8V,oBAAAA,CAAqBhkU,GAC3B,MAAMvhD,EAAS7X,KAAKigO,IAAIpoN,OAClBiyN,EAASjyN,EAAO2qN,OAMtB,IAAI/5M,EALAzoB,KAAKwiO,QACPxiO,KAAKwiO,OAAOnvF,UAEdrzI,KAAKwiO,OAAS,IAAIsH,EAAOjyN,GAGzB,IACE4Q,EAAM,IAAImiB,KAAKirD,IAAIz8B,GACnB,MAAO99C,GAGP,OAFAtb,KAAKqyE,SAAU,OACfryE,KAAKyxD,IAAK,0CAAyC2H,IAErD,CACA,GAAqB,UAAjB3wC,EAAIypC,SAAsB,CAC5B,MAAM0sU,EAC4D,GAA/D5+X,KAAKigO,IAAIu8J,mBAAqB3kX,EAAO4zO,wBACxChjO,EAAIilT,aAAa1kU,IAAI,eAAgBhJ,KAAKqrV,WAC1C5iU,EAAIilT,aAAa1kU,IAAI,kBAAmB,GAAK41X,EAC/C,CACA,MAAMhkU,EAAyB,CAC7BtG,aAAc,OACd7rC,IAAKA,EAAI6qC,MAGL06R,EAAan2U,EAAOw9W,2BAA2Bp+W,QAC/Cw3U,EACJT,EAAWI,YAAcJ,EAAWG,cAAgB,CAAC,EACjDhjH,EAAoC,CACxC6iH,aACA3qU,QAAS2qU,EAAWQ,cACpBhkH,SAAUikH,EAAyBC,aAAe,EAClDr+R,WAAYo+R,EAAyBE,cAAgB,EACrDlkH,cAAegkH,EAAyBG,iBAAmB,GAGvD1hR,EAA4C,CAChDm+J,UAAWA,CACT7pL,EACAq2K,EACAj9J,EACA8wK,KAEA1rO,KAAKyxD,IAAK,8BAA6BhpC,MACvC,MAAMo2W,EAAer9U,EAAStsC,KAC9B,GAA6B,IAAzB2pX,EAAa5mV,QAEf,YADAj4C,KAAKyxD,IAAK,oBAAmBotU,EAAa5mV,0BAG5Cj4C,KAAKg5U,QAAU13Q,YAAYD,MAC3BrhE,KAAKg9X,WAAa6B,EAAaC,IAC/B,MACE,aAAcC,EACd,iBAAkBb,EAClB,mBAAoBnB,GAClB8B,EACJ,GAAIE,EACF,IACE/+X,KAAKo5D,IAAM,IAAIxuB,KAAKirD,IAAIkpS,EAAWt2W,GAAK6qC,KACxC,MAAOh4C,GAKP,OAJAtb,KAAKqyE,SAAU,OACfryE,KAAKyxD,IACF,iDAAgDstU,IAGrD,CAEF/+X,KAAKymM,gBAAgBzmM,KAAKo5D,KAAOwB,EAAQnyC,KACrCy1W,GACFl+X,KAAKi+X,cAAcC,GAGrB,MAAMc,EAAiD,CACrDC,iBAAkBJ,EAClBp2W,IAAKA,EAAIlb,YAEXvN,KAAKigO,IAAI3lB,QAAQhmE,GAAO4qP,yBAA0BF,GAE9CjC,GACF/8X,KAAKy9X,sBAAsBV,EAC7B,EAGF7kN,QAASA,CACP58J,EACAs/C,EACA8wK,EACA7T,KAMA,GAJA73N,KAAKyxD,IACF,oCAAmCn2C,EAAMwlB,QAAQxlB,EAAM1C,SAASgiD,EAAQnyC,QAE3EzoB,KAAKg8O,WACc,MAAf1gO,EAAMwlB,KAGR,OAFA9gC,KAAKqyE,SAAU,OACfryE,KAAKyxD,IAAK,qBAAoBmJ,EAAQnyC,2BAGxC,IAAI00W,EAAwB,IAAlBn9X,KAAKg9X,WACf,GAAmB,MAAf1hX,EAAMwlB,KAWV9gC,KAAKymM,gBAAgBzmM,KAAKo5D,KAAOwB,EAAQnyC,IAAK00W,OAX9C,CACE,MAAM36J,EAASxiO,KAAKwiO,OACpB,GAAyC,oBAA9B,MAAAA,OAAA,EAAAA,EAAQ+lJ,mBAAkC,CACnD,MAAMxiS,EAAay8I,EAAO+lJ,kBAAkB,eACxCxiS,IACFo3S,EAA+B,IAAzB1uW,WAAWs3D,GAErB,CACA/lF,KAAKyxD,IAAK,qBAAoBmJ,EAAQnyC,mBAExC,CACkD,EAGpD+iN,UAAWA,CACT3T,EACAj9J,EACA8wK,KAEA1rO,KAAKyxD,IAAK,sCAAqCmJ,EAAQnyC,QACvDzoB,KAAKymM,gBAAgBzmM,KAAKo5D,KAAOwB,EAAQnyC,IAAI,GAIjDzoB,KAAKyxD,IAAK,iCAAgChpC,KAC1CzoB,KAAKwiO,OAAOroL,KAAKygB,EAASuwK,EAAcj+J,EAC1C,CAEQu5H,eAAAA,CAAgBrtI,GAAqD,IAAxC+lU,EAAanyX,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAqB,IAAlBhN,KAAKg9X,WACxDh9X,KAAKwjB,eACLxjB,KAAKi9X,YAAcryV,KAAKnnB,YAAW,KAAM,IAAAk9V,EACvC,MAAM75I,EAAgB,OAAX65I,EAAG3gX,KAAKigO,UAAG,EAAR0gJ,EAAU75I,OACpBA,GAAUA,EAAM2S,MAIpBz5O,KAAKymM,gBAAgBrtI,EAAuB,IAAlBp5D,KAAKg9X,YAH7Bh9X,KAAKo9X,qBAAqBhkU,EAGqB,GAChD+lU,EACL,KImHF,SAASC,GAAQxtX,GACf,OAAIA,GAAsB,kBAARA,EACZ/H,MAAMiI,QAAQF,GACTA,EAAItI,IAAI81X,IAEVl8X,OAAO4pB,KAAKlb,GAAKuE,QAAO,CAAC9D,EAAQnR,KACtCmR,EAAOnR,GAAOk+X,GAAQxtX,EAAI1Q,IACnBmR,IACN,CAAC,GAECT,CACT,CAKO,SAASytX,GAAoBxnX,GAClC,MAAMynX,EAAgBznX,EAAO2qN,OAC7B,GAAI88J,IAAkB9W,IAAe8W,IAAkB1pI,GAErDhhN,GAAO6c,IACL,yEAEF55C,EAAOwsV,aAAc,MAChB,EFtpBF,WACL,GAEEz5T,KAAKkzD,OACLlzD,KAAK+9U,iBACL/9U,KAAK20V,gBACL30V,KAAKoM,QAEL,IAEE,OADA,IAAIpM,KAAK20V,eAAe,CAAC,IAClB,EACP,MAAOh9X,IACP,CAGJ,OAAO,CACT,EEuoBmCi9X,KAE7B3nX,EAAO2qN,OAASgmJ,GAChB3wW,EAAOwsV,aAAc,EACrBxsV,EAAOoiM,mBAAoB,EAC3BrlK,GAAO6c,IAAI,8DAEf,CACF,CQ9oBA,IAAIyrL,GAEW,MAAM6H,WAAwBgyG,GAY3CxqV,WAAAA,CACE0zN,EACA68J,GAEAxpQ,MAAM2sG,EAAK,sBAAsB,KAf3BolB,QAAmB,GAAE,KACrBY,aAAuB,EAAC,KACxBw5I,eAAyB,EAAC,KAC1Bv4I,iBAAW,OACXvE,aAA6B,KAAI,KACjCsC,mBAA6B,EAAC,KAC9BC,kBAA4B,EAAC,KAC7Bw6I,cAAQ,OAETC,sBAAgB,EAOrB3/X,KAAK0/X,SAAW5C,EAChB98X,KAAKuwV,oBACP,CAEQA,kBAAAA,GACN,MAAM,IAAEtwH,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,MACtDigO,EAAIn5K,GAAGwtF,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MAChDigO,EAAIn5K,GAAGwtF,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACpDigO,EAAIn5K,GAAGwtF,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,MAClDigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACrC,CAEQwwV,oBAAAA,GACN,MAAM,IAAEvwH,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOopF,gBAAiB19N,KAAKylP,iBAAkBzlP,MACvDigO,EAAIxqI,IAAI6+C,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MACjDigO,EAAIxqI,IAAI6+C,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACrDigO,EAAIxqI,IAAI6+C,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,MACnDigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,KACtC,CAEOqzI,OAAAA,GACLrzI,KAAKwwV,uBACLxwV,KAAK0/X,SAAW,KAChB1/X,KAAK4/X,cACLtsQ,MAAM+f,SACR,CAEO2oG,QAAAA,GACUh8O,KAAKqlP,QAGb9jP,SAAS+gO,IACdA,EAAMijB,UAAY,EAClBjjB,EAAMyjB,cAAgB,CAAC,IAGzBzyH,MAAM0oH,UACR,CAEQ4jJ,WAAAA,GACN5/X,KAAKknP,iBAAcpmP,EACnBd,KAAKklP,kBAAoB,EACzBllP,KAAKilP,mBAAqB,EAC1BjlP,KAAK2iP,aAAe,KACpB3iP,KAAKqlP,QAAU,GACfrlP,KAAKy/X,eAAiB,CACxB,CAEQv1J,iBAAAA,CACN9gN,EACAlU,GAEAlV,KAAK4/X,aACP,CAEUn6I,gBAAAA,CACRr8N,EACAlU,GAEA,MAAMw0U,EAA2B1pV,KAAKigO,IAAIpoN,OAAO6xU,yBAC3C7jH,EAAkB,GAClBg6J,EAAyC,CAAC,EAC1CC,EAAgD,CAAC,EACvD,IAAIC,GAAkB,EAClBl6I,GAAkB,EAClBC,GAAkB,EAEtB5wO,EAAK2wN,OAAOtkO,SAASy+X,IAA6B,IAAAC,EAAAC,EAChD,MAAMl4S,EAAag4S,EAAYjzO,MAI/B,IAAI,WAAEuuD,EAAU,WAAE6B,GAAe6iL,GACU,KAA7B,OAAVC,EAAA3kL,QAAU,EAAV2kL,EAAYv8X,QAAQ,iBACtBw5O,KAAAA,GAAoB,kBAAkBpyN,KAAK23D,UAAUlwB,YACjD2qL,KACF8iJ,EAAY1kL,WAAaA,OAAax6M,IAItCw6M,IACF0kL,EAAY1kL,WAAaA,EAAa8uI,GACpC9uI,EACAouI,IAIgC,KAAhC,OAAAw2C,EAAA/iL,QAAA,EAAA+iL,EAAYx8X,QAAQ,WACtBy5M,EAAa6iL,EAAY7iL,W/H0D1B,SAA6BpB,GAGlC,MAAMkqB,EAASlqB,EAAMzxM,MAAM,KAC3B,IAAK,IAAIrI,EAAI,EAAGA,EAAIgkO,EAAO5lO,OAAQ4B,IAAK,CACtC,MAAM0jO,EAAUM,EAAOhkO,GAAGqI,MAAM,KAChC,GAAIq7N,EAAQtlO,OAAS,EAAG,CACtB,IAAIgS,EAASszN,EAAQn3M,QAAU,IAC/Bnc,GAAU0D,SAAS4vN,EAAQn3M,SAAmBjhB,SAAS,IACvD8E,IACE,MAAQ0D,SAAS4vN,EAAQn3M,SAAmBjhB,SAAS,KACrDtJ,OAAO,GACTgiO,EAAOhkO,GAAKoQ,CACd,CACF,CACA,OAAO4zN,EAAOp/N,KAAK,IACrB,C+H1E8C6+N,CAAoBvoB,IAI5D,MAAM,MAAEh4L,EAAK,OAAE9E,EAAM,cAAEgmN,GAAkB25J,EAIzC,GAHAD,IAAAA,KAAuB56W,IAAS9E,IAChCwlO,IAAAA,IAAsB1oC,GACtB2oC,IAAAA,IAAsBxqC,GAEP,MAAb+qB,GAAAA,EAAehmO,QACdi7M,IACEmuI,GACCnuI,EACA,QACAouI,IAEHvsI,IACEssI,GACCtsI,EACA,QACAusI,GAGJ,OAGF,MAAM,OACJjjH,EACA,aAAc05J,EACd,aAAcC,EACd,aAAcC,EAAO,WACrBC,EACA,cAAeC,GACbv4S,EAEEskQ,EAAY,GADa,GAAE+zC,GAAW,SACAL,EAAYx5J,WAAW85J,KAAcH,KAAa15J,KAAU85J,KAAeH,IAEvH,GAAKP,EAAavzC,GAKX,GACLuzC,EAAavzC,GAAUlzR,MAAQ4mU,EAAYv3W,KAC1Cu3W,EAAYjzO,MAAM,cAUnB8yO,EAAavzC,GAAUh4G,WAAW,QAAStsJ,EAAW65I,OACtDg+J,EAAavzC,GAAUh4G,WAAW,OAAQtsJ,EAAWg+J,eAVrD,CAGA,MAAMw6I,EAAgBV,EAAmBxzC,IAAa,EACtD0zC,EAAYjzO,MAAM,cAAgB,IAAIljJ,MAAM22X,EAAe,GAAG35X,KAAK,KACnE,MAAMy7N,EAAQ,IAAIc,GAAM48J,GACxBH,EAAavzC,GAAYhqH,EACzBuD,EAAOjlO,KAAK0hO,EACd,KAhB6B,CAC3B,MAAMA,EAAQ,IAAIc,GAAM48J,GACxBH,EAAavzC,GAAYhqH,EACzBw9J,EAAmBxzC,GAAY,EAC/BzmH,EAAOjlO,KAAK0hO,GAed,IAGFtiO,KAAKygY,0BACH56J,EACA3wN,EACA6qX,EACAl6I,EACAC,EAEJ,CAEQ26I,yBAAAA,CACNC,EACAxrX,EACA6qX,EACAl6I,EACAC,GAEA,IAAI1Z,EAA+B,GAC/B8hC,EAAkC,GAClCroC,EAAS66J,EAUb,IAPKX,GAAmBl6I,IAAoBC,IAC1CjgB,EAASA,EAAO/1M,QACd6wW,IAAA,IAAC,WAAExjL,EAAU,WAAEw2I,EAAU,MAAExuU,EAAK,OAAE9E,GAAQsgX,EAAA,SACrCxjL,MAAiBh4L,IAAS9E,KvH9KhC,SAAsBjd,GAC3B,QAASA,GAASsvV,GAAiBhvV,QAAQN,IAAU,CACvD,CuH4KmDw9X,CAAajtC,EAC1D,KAGoB,IAAlB9tH,EAAOxlO,OAwBT,YAtBAy2C,QAAQnD,UAAU8rD,MAAK,KACrB,GAAIz/F,KAAKigO,IAAK,CACR/qN,EAAK2wN,OAAOxlO,QACdL,KAAKsnG,KACF,gDAA+C1qF,KAAKjW,UACnDuO,EAAK2wN,OAAO,GAAG94E,UAIrB,MAAMzxI,EAAQ,IAAItJ,MAChB,qDAEFhS,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAaupB,mCACtBxrC,OAAO,EACPlyL,IAAKvT,EAAKuT,IACVnN,QACA6L,OAAQ7L,EAAMg4B,SAElB,KAKJ,GAAIp+B,EAAKk3N,YAAa,CACpB,MAAM,yBAAEs9G,GAA6B1pV,KAAKigO,IAAIpoN,OAC9Cu0N,EAAcl3N,EAAKk3N,YAAYt8M,QAC5B0mJ,IACEA,EAAM8kC,YACPmuI,GACEjzK,EAAM8kC,WACN,QACAouI,KAINm3C,GAAsBz0J,EACxB,CAEIl3N,EAAKm3N,YACP6hC,EAAiBh5P,EAAKm3N,UACtBw0J,GAAsB3yH,IAGxB,MAAM4yH,EAAiBj7J,EAAO5hO,MAAM,GAEpC4hO,EAAOjxM,MAAK,CAACxe,EAAGmgB,KACd,GAAIngB,EAAE22I,MAAM,gBAAkBx2H,EAAEw2H,MAAM,cACpC,OAAQ32I,EAAE22I,MAAM,eAAiB,KAAOx2H,EAAEw2H,MAAM,eAAiB,IAC7D,GACC,EAGP,GAAIgzO,GAAmB3pX,EAAEiK,SAAWkW,EAAElW,OACpC,OAAOjK,EAAEiK,OAASkW,EAAElW,OAEtB,GAAIjK,EAAE88U,YAAc38T,EAAE28T,UACpB,OAAO98U,EAAE88U,UAAY38T,EAAE28T,UAEzB,GAAI98U,EAAEu9U,aAAep9T,EAAEo9T,WACrB,OACEjB,GAAiBhvV,QAAQ0S,EAAEu9U,YAC3BjB,GAAiBhvV,QAAQ6yB,EAAEo9T,YAG/B,GAAIv9U,EAAE+mM,aAAe5mL,EAAE4mL,WAAY,CACjC,MAAM4jL,EAASj3C,GAA0B1zU,EAAE+mM,YACrC6jL,EAASl3C,GAA0BvzT,EAAE4mL,YAC3C,GAAI4jL,IAAWC,EACb,OAAOA,EAASD,CAEpB,CACA,GAAI3qX,EAAEgjD,MAAQ7iC,EAAE6iC,KAAOhjD,EAAE4zU,WAAazzT,EAAEyzT,SAAU,CAChD,MAAM+2C,EAASh3C,GAAkC3zU,EAAE4zU,UAC7Cg3C,EAASj3C,GAAkCxzT,EAAEyzT,UACnD,GAAI+2C,IAAWC,EACb,OAAOA,EAASD,CAEpB,CACA,OAAI3qX,EAAEs9U,iBAAmBn9T,EAAEm9T,eAClBt9U,EAAEs9U,eAAiBn9T,EAAEm9T,eAEvB,CAAC,IAGV,IAAIutC,EAAuBH,EAAe,GAC1C,GAAI9gY,KAAK0/X,WACP75J,EAAS7lO,KAAK0/X,SAAShC,mBAAmB73J,GACtCA,EAAOxlO,SAAWygY,EAAezgY,QACnC,IAAK,IAAI4B,EAAI,EAAGA,EAAI6+X,EAAezgY,OAAQ4B,IACzC,GAAI6+X,EAAe7+X,GAAGopV,YAAcxlH,EAAO,GAAGwlH,UAAW,CACvD41C,EAAuBH,EAAe7+X,GACtC,KACF,CAKNjC,KAAKqlP,QAAUxf,EAGf,IAAK,IAAI5jO,EAAI,EAAGA,EAAI4jO,EAAOxlO,OAAQ4B,IACjC,GAAI4jO,EAAO5jO,KAAOg/X,EAAsB,KAAAC,EACtClhY,KAAKimP,YAAchkP,EACnB,MAAMk/X,EAAoBF,EAAqBz6J,QACzCg2J,EAAoBx8X,KAAKigO,IAAIu8J,kBAKnC,GAJAx8X,KAAKyxD,IACF,oBAAmBo0K,EAAOxlO,yCAAyC8gY,UAGlBrgY,KAA7B,OAAnBogY,EAAI,KAACjhK,IAAIq1C,iBAAU,EAAnB4rH,EAAqBz1I,wBAAsC,CAC7D,MAAM21I,EAAqBv+X,KAAK4qB,IAC9B0zW,EACAnhY,KAAKigO,IAAIpoN,OAAOu9W,2BAGhBgM,EAAqB5E,GACrBA,IAAsBjoH,GAAiB9oB,yBAEvCzrP,KAAKigO,IAAIu8J,kBAAoB4E,EAEjC,CACA,KACF,CAKF,MAAMzjJ,EAAYmI,IAAoBD,EAChCw7I,EAA4B,CAChCx7J,SACAuG,cACA8hC,iBACApoC,YAAa5wN,EAAK4wN,YAClB+kH,YAAa31U,EAAK21U,YAClB3kG,WAAYlmP,KAAKimP,YACjBpuB,MAAO3iN,EAAK2iN,MACZhU,MAAOiiC,EACPliC,MAAOiiC,EACPnI,UAAWC,GAAavR,EAAYp9D,MAAMh9I,KAAQA,EAAEvJ,OAEtDzoB,KAAKigO,IAAI3lB,QAAQhmE,GAAOqpF,gBAAiB0jK,IAGrCrhY,KAAKigO,IAAIpoN,OAAOmqO,eAAiBhiP,KAAKigO,IAAIie,iBAC5Cl+O,KAAKigO,IAAI8b,UAAU/7O,KAAKigO,IAAIpoN,OAAO8kO,cAEvC,CAEA,UAAI9W,GACF,OAA4B,IAAxB7lO,KAAKqlP,QAAQhlP,OACR,KAEFL,KAAKqlP,OACd,CAEA,SAAI/iB,GACF,OAAOtiO,KAAKilP,iBACd,CAEA,SAAI3iB,CAAM+jB,GACR,MAAMxgB,EAAS7lO,KAAKqlP,QACpB,GAAsB,IAAlBxf,EAAOxlO,OACT,OAGF,GAAIgmP,EAAW,GAAKA,GAAYxgB,EAAOxlO,OAAQ,CAE7C,MAAMib,EAAQ,IAAItJ,MAAM,qBAClB2oM,EAAQ0rC,EAAW,EASzB,GARArmP,KAAKigO,IAAI3lB,QAAQhmE,GAAOimE,MAAO,CAC7Bz1M,KAAM63N,GAAWiE,YACjBnmB,QAASmiB,GAAa2pB,mBACtBjkB,MAAO+jB,EACP1rC,QACAr/L,QACA6L,OAAQ7L,EAAMg4B,UAEZqnK,EACF,OAEF0rC,EAAWxjP,KAAK4qB,IAAI44N,EAAUxgB,EAAOxlO,OAAS,EAChD,CAEA,MAAMihY,EAAiBthY,KAAKilP,kBACtBpO,EAAY72O,KAAK2iP,aACjB4+I,EAAgB1qJ,EAAYA,EAAU9pF,MAAM,mBAAgBjsJ,EAC5DwhO,EAAQuD,EAAOwgB,GACfglG,EAAY/oH,EAAMv1E,MAAM,cAI9B,GAHA/sJ,KAAKilP,kBAAoBoB,EACzBrmP,KAAK2iP,aAAergB,EAGlBg/J,IAAmBj7I,GACnB/jB,EAAM7nB,SACNo8B,GACA0qJ,IAAkBl2C,EAElB,OAGFrrV,KAAKyxD,IACF,sBAAqB40L,MACpB/jB,EAAMjiN,OAASiiN,EAAMjiN,OAAS,KAAO,KACpCiiN,EAAMqxH,WAAarxH,EAAMqxH,WAAa,IAAM,KAC7CrxH,EAAM0nH,SAAW1nH,EAAM0nH,SAAW,IAAM,MACtC1nH,EAAMkE,WACR6kH,EAAY,iBAAmBA,EAAY,iBAC9Bi2C,IACbC,EAAgB,iBAAmBA,EAAgB,MAIvD,MAAMC,EAAyC,CAC7Cl/J,MAAO+jB,EACPt5F,MAAOu1E,EAAMv1E,MACb0tD,QAAS6nB,EAAM7nB,QACf+rB,QAASlE,EAAMkE,QACfktH,eAAgBpxH,EAAMoxH,eACtBD,WAAYnxH,EAAMmxH,WAClB5nG,YAAavpB,EAAMupB,YACnB1mO,MAAOm9M,EAAMn9M,MACb9E,OAAQiiN,EAAMjiN,OACd2pU,SAAU1nH,EAAM0nH,SAChB1uI,WAAYgnB,EAAMhnB,WAClB6B,WAAYmlB,EAAMnlB,WAClBypB,YAAatE,EAAMsE,YACnBmtH,eAAgBzxH,EAAMyxH,eACtBhkS,OAAQuyK,EAAMvyK,OACdw1L,UAAWjjB,EAAMijB,UACjBQ,cAAezjB,EAAMyjB,cACrB76O,KAAMo3N,EAAMp3N,KACZw4B,GAAI4+L,EAAM5+L,GACV01B,IAAKkpK,EAAMlpK,IACX3wC,IAAK65M,EAAM75M,IACX45M,MAAO,EACPkS,cAAejS,EAAMiS,cACrBC,aAAclS,EAAMkS,cAGtBx0O,KAAKigO,IAAI3lB,QAAQhmE,GAAOspF,gBAAiB4jK,GAEzC,MAAM90J,EAAepK,EAAM7nB,QAC3B,IAAKiyB,GAAgBA,EAAajJ,KAAM,CAEtC,MAAM8zH,EAAmBv3V,KAAKo3V,aAC5B90H,EAAMlpK,IACN,MAAAy9K,OAAA,EAAAA,EAAWp8B,QACXiyB,GAEF1sO,KAAKm3V,aAAaI,EACpB,CACF,CAEA,eAAIzgF,GACF,OAAO92Q,KAAKklP,gBACd,CAEA,eAAI4xB,CAAYzwB,GACdrmP,KAAKklP,iBAAmBmB,OACCvlP,IAArBd,KAAKknP,cACPlnP,KAAKknP,YAAcb,IAGH,IAAdA,IACFrmP,KAAKsiO,MAAQ+jB,EAEjB,CAEA,cAAIH,GACF,OAAOlmP,KAAKimP,WACd,CAEA,cAAIC,CAAWG,GACbrmP,KAAKimP,YAAcI,CACrB,CAEA,cAAIvI,GAEF,QAAyBh9O,IAArBd,KAAKknP,YAA2B,CAClC,MAAMC,EAAmBnnP,KAAKigO,IAAIpoN,OAAOimO,WACzC,YAAyBh9O,IAArBqmP,EACKA,EAEFnnP,KAAKigO,IAAI4rJ,cAClB,CACA,OAAO7rX,KAAKknP,WACd,CAEA,cAAIpJ,CAAWuI,GACbrmP,KAAKknP,YAAcb,CACrB,CAEUnuE,OAAAA,CAAQ9uJ,EAAqBlU,IACjCA,EAAKylM,OAAUzlM,EAAK0lD,SAKtB1lD,EAAK0lD,QAAQ91D,OAAS86N,IACtB1qN,EAAK0lD,QAAQ0nK,QAAUtiO,KAAKsiO,OAE5BtiO,KAAKy4V,WAAWvjV,EAEpB,CAGUw8N,cAAAA,CACRtoN,EAA2Bq4W,GAE3B,IADA,KAAE35K,GAAwB25K,EAE1B,QAAa3gY,IAATgnN,GAAsBA,EAAKhjN,OAAS+6N,GAAwB,CAC9D,MAAMx7B,EAAKyjB,EAAKuvH,kBAChB,IAAKn0U,OAAO4pB,KAAKu3K,GAAIr1B,MAAMlqK,KAAWu/L,EAAGv/L,KACvC,OAEF,MAAMw9N,EAAQtiO,KAAKqlP,QAAQv9B,EAAKwa,OACvB,MAALA,GAAAA,EAAOijB,YACTvlP,KAAKyxD,IACF,kCAAiC6wK,EAAMijB,8BAE1CjjB,EAAMijB,UAAY,EAEtB,CACF,CAEUjD,aAAAA,CAAcl5N,EAA4BlU,GAAuB,IAAAwsX,EACzE,MAAM,MAAEp/J,EAAK,QAAE7nB,GAAYvlM,EACrBstO,EAAWxiP,KAAKqlP,QAAQ/iB,GAEf,IAAAq/J,EAAf,IAAKn/I,EAKH,OAJAxiP,KAAKsnG,KAAM,uBAAsBg7H,UAC7B,OAAJq/J,EAAIzsX,EAAK44U,qBAAL6zC,EAAyB5uC,OAC3Bt4I,EAAQu/H,mBAAoB,IAM5B13G,IAAUtiO,KAAKilP,mBAEc,IAA3BzC,EAASuD,gBACXvD,EAAS+C,UAAY,GAEvBvlP,KAAK23V,eAAer1H,EAAOptN,EAAMstO,EAAS/nC,UACjC,OAAJinL,EAAIxsX,EAAK44U,qBAAL4zC,EAAyB3uC,OAElCt4I,EAAQu/H,mBAAoB,EAEhC,CAEUmd,YAAAA,CAAaI,GACrBjkO,MAAM6jO,eACN,MAAMlyG,EAAoBjlP,KAAKilP,kBACzBtC,EAAe3iP,KAAK2iP,aAE1B,GAAIA,GAAgB3iP,KAAKw3V,mBAAmB70G,GAAe,CACzD,IAAIl6N,EAAMk6N,EAAavpL,IACvB,GAAIm+R,EACF,IACE9uU,EAAM8uU,EAAiBvE,cAAcvqU,GACrC,MAAOnN,GACPtb,KAAKsnG,KACF,6DAA4DhsF,IAEjE,CAGF,MAAM+vU,EAAY1oG,EAAa51F,MAAM,cACrC/sJ,KAAKyxD,IACF,uBAAsBwzL,SACKnkP,KAA1B,MAAAy2V,OAAA,EAAAA,EAAkBzE,KACd,UACAyE,EAAiBzE,IACjB,SACAyE,EAAiBxrR,KACjB,UACEs/Q,EAAY,YAAcA,EAAY,MAAM5iU,KAKtDzoB,KAAKolP,aACLplP,KAAKigO,IAAI3lB,QAAQhmE,GAAOwpF,cAAe,CACrCr1M,MACA65M,MAAO2iB,EACPomG,UAAW1oG,EAAa51F,MAAM,cAC9BrpH,GAAI,EACJoqT,mBAAoByJ,GAAoB,MAE5C,CACF,CAEA,iBAAIt5G,GACF,OAA+B,IAA3Bj+O,KAAKklP,iBACAllP,KAAKklP,iBAELllP,KAAKigO,IAAI+d,aAEpB,CAEA,iBAAIC,CAAcmD,GAChBphP,KAAKsiO,MAAQ8e,GACkB,IAA3BphP,KAAKklP,mBACPllP,KAAKigO,IAAI+d,cAAgBoD,EAE7B,CAEA6F,WAAAA,CAAYT,GAAoB,IAAAo7I,EAC9B,MAAM/7J,EAAS7lO,KAAKqlP,QAAQv1N,QAAO,CAACwyM,EAAO1+N,IACrCA,IAAU4iP,IAGVxmP,KAAK0/X,UACP1/X,KAAK0/X,SAASz4I,YAAY3kB,GAExBA,IAAUtiO,KAAK2iP,eACjB3iP,KAAK2iP,aAAe,KACpB3iP,KAAKilP,mBAAqB,EACtB3iB,EAAM7nB,SACR6nB,EAAM7nB,QAAQ+oB,UAAUjiO,SAAS2tB,GAAOA,EAAEozM,OAAS,MAGhD,KAETmzH,GAA6B5vH,GAC7B7lO,KAAKqlP,QAAUxf,EACX7lO,KAAKilP,mBAAqB,GAAsB,OAArB28I,EAAI5hY,KAAK2iP,eAALi/I,EAAmBnnL,UACpDz6M,KAAKilP,kBAAoBjlP,KAAK2iP,aAAaloC,QAAQ+oB,UAAU,GAAGlB,OAElEtiO,KAAKigO,IAAI3lB,QAAQhmE,GAAO4pF,eAAgB,CAAE2H,UAC5C,CAEQ2e,eAAAA,CACNp7N,EAA4By4W,GAE5B,IADA,OAAEh8J,GAA2Bg8J,EAE7B7hY,KAAKqlP,QAAUxf,CACjB,CAEOi8J,mBAAAA,GACL,MAAM,iBAAEvvI,EAAgB,aAAE3F,EAAY,aAAEuoI,GAAiBn1X,KAAKigO,IAC1DjgO,KAAKy/X,gBAAkB7yI,IACzB5sP,KAAKy/X,cAAgB7yI,EACrB5sP,KAAKigO,IAAI3lB,QAAQhmE,GAAO42O,uBAAwB,CAC9C34H,mBACA1sB,OAAQ7lO,KAAK6lO,OACb+mB,eACAX,aAAcjsP,KAAKigO,IAAIgsB,aACvBkpI,iBAGN,EAGF,SAAS0L,GAAsBlyK,GAC7B,MAAM4W,EAAS,CAAC,EAChB5W,EAAOptN,SAASi1K,IACd,MAAMuwD,EAAUvwD,EAAMuwD,SAAW,GACjCvwD,EAAM9yI,GAAK6hM,EAAOwB,GAAWxB,EAAOwB,IAAY,EAChDxB,EAAOwB,IAAU,GAErB,CC1pBe,MAAMgI,GAKnBxiO,WAAAA,CAAYsL,GAAmB,KAJdA,YAAM,OAChBkqX,gBAAuD,CAAC,EAAC,KACzD5sH,cAAsC,KAG3Cn1Q,KAAK6X,OAASA,CAChB,CAEAmsD,KAAAA,CAAMl/D,GACJ,IAAK,MAAMs0D,KAAOp5D,KAAK+hY,gBAAiB,CACtC,MAAMv/J,EAASxiO,KAAK+hY,gBAAgB3oU,GAAKopK,OACzC,GAAIA,EAAQ,KAAAw/J,EACV,GAAIl9X,GAAQA,KAAuB,OAAnBk9X,EAAKx/J,EAAO5nK,cAAO,EAAdonU,EAAgBl6K,KAAKhjN,MACxC,OAEF09N,EAAOx+J,OACT,CACF,CACF,CAEA89R,MAAAA,GACE,IAAK,MAAM1oS,KAAOp5D,KAAK+hY,gBAAiB,CACtC,MAAM9hB,EAAUjgX,KAAK+hY,gBAAgB3oU,IAGnC6mT,EAAQX,wBACRW,EAAQ79J,YAAYyiI,4BAEb7kV,KAAK+hY,gBAAgB3oU,EAEhC,CACF,CAEAi6E,OAAAA,GACErzI,KAAK8hW,SACL,IAAK,MAAM1oS,KAAOp5D,KAAK+hY,gBAAiB,CACtC,MAAMv/J,EAASxiO,KAAK+hY,gBAAgB3oU,GAAKopK,OACrCA,GACFA,EAAOnvF,SAEX,CACArzI,KAAK+hY,gBAAkB,CAAC,CAC1B,CAEAE,kBAAAA,CACEn6K,GAKW,IAJXrN,EAAqBztM,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG4vN,GAAawS,eACrC9zN,EAAYtO,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EACZ4qO,EAAoB1+N,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EACpB0gD,EAAuEx0C,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAEvE,OAAO,IAAIk+V,GAAU,CACnBl6V,KAAM63N,GAAWoQ,cACjBtyB,UACAE,OAAO,EACPmN,OACAtmK,WACAlmC,QACAowN,kBAEJ,CAEAo4H,SAAAA,CACEo+B,EACA7nD,GAEA,GAAIr6U,KAAKm1Q,eAAiBn1Q,KAAK6X,OAAOu5P,WAAY,CAEhD,MAAM,GAAE3iD,EAAE,GAAEn1C,GAAO4oN,EACnB,IAAK,IAAIjgY,EAAI,EAAGA,EAAIo4U,EAAmBh6U,OAAQ4B,IAAK,CAClD,MAAM6lN,EAAOuyH,EAAmBp4U,GAChC,GACEq3K,GAAMwuC,EAAKxuC,KACH,gBAAPm1C,GAAoC,gBAAZ3G,EAAK2G,IAAwBA,EAAK3G,EAAK2G,IAChE,CACAzuN,KAAKm1Q,cACF0qG,sBAAsB/3J,GACtBroH,MAAM48Q,IACLv0J,EAAKgwH,aAAaukC,EAAgB,IAEtC,KACF,CACF,CACF,CACF,CAEAliU,IAAAA,CAAK2tK,GACH,OACGA,EAAK1F,aACN0F,EAAKs3B,WACLp/O,KAAKm1Q,eACLn1Q,KAAK6X,OAAOu5P,WAGLpxQ,KAAKm1Q,cACT0qG,sBAAsB/3J,GACtBroH,MAAM48Q,GACEr8W,KAAKi2P,aAAanuC,EAAMu0J,KAI9Br8W,KAAKi2P,aAAanuC,EAC3B,CAEAmuC,YAAAA,CACEnuC,EACAu0J,GACwB,IAAA8lB,EAAAC,EACpB/lB,GACFv0J,EAAKgwH,aAAaukC,GAEpB,MAAMj6J,EAAc0F,EAAK1F,YACzB,IAAKA,EAAa,CAChB,MAAM9mM,EAAQ,IAAItJ,MAChBqqW,EACK,gEAA+DA,IAChE,uDAEN,OAAOvlU,QAAQuvB,OACbrmE,KAAKiiY,mBAAmBn6K,EAAM8U,GAAawS,eAAgB9zN,GAE/D,CACA,MAAM89C,EAAMgpJ,EAAYhpJ,IACxB,IAAKA,EACH,OAAOtiB,QAAQuvB,OACbrmE,KAAKiiY,mBACHn6K,EACA8U,GAAawS,eACb,IAAIp9N,MAAO,qBAAoBonD,QAIrC,IAAI6mT,EAAUjgX,KAAK+hY,gBAAgB3oU,GAEnC,GAAW,OAAX+oU,EAAIliB,IAAAkiB,EAAS//K,YAAYlhN,IAEvB,OADAkhN,EAAYlhN,IAAM++W,EAAQ79J,YAAYlhN,IAC/B41C,QAAQnD,QAAQ,CAAEm0K,OAAMm4J,YAGJ,IAAAoiB,EAA7B,GAAW,OAAXD,EAAIniB,IAAAmiB,EAASE,eACX,OAAQ,OAARD,EAAQpiB,EAAQX,6BAAR,EAAA+iB,EAAgC9iB,WACtC,UAAKz+W,EACL,IAAK,iBACL,IAAK,SACL,IAAK,mBACH,OAAOm/W,EAAQqiB,eAAe7iS,MAAMskQ,IAElC3hJ,EAAYlhN,IAAM6iW,EAAckc,QAAQ79J,YAAYlhN,IAC7C,CAAE4mN,OAAMm4J,cAevB,OAPAA,EAAUjgX,KAAK+hY,gBAAgB3oU,GAAO,CACpCgpJ,cACAkgL,eAAgB,KAChB9/J,OAAQ,KACR88I,uBAAwB,MAGlBl9J,EAAYjwJ,QAClB,IAAK,cACL,IAAK,aACL,IAAK,kBACL,IAAK,iBACH,MAA8B,aAA1BiwJ,EAAY21H,UAEP/3U,KAAKuiY,YAAYtiB,EAASn4J,GAE5B9nN,KAAKwiY,WAAWviB,EAASn4J,GAClC,IAAK,UACH,OAAO9nN,KAAKuiY,YAAYtiB,EAASn4J,GACnC,QACE,OAAOhxK,QAAQuvB,OACbrmE,KAAKiiY,mBACHn6K,EACA8U,GAAawS,eACb,IAAIp9N,MACD,0CAAyCowM,EAAYjwJ,aAKlE,CAEAqwU,UAAAA,CAAWviB,EAAwBn4J,GACjC,MAAMi8I,EAA+B,CAAEj8I,OAAMm4J,WAC7C,GAAIjgX,KAAKm1Q,eAAiBn1Q,KAAK6X,OAAOu5P,WAAY,CAChD,MAAMwrG,EACJ58W,KAAKm1Q,cAAc6qG,QAAQjc,GAC7B,GAAI6Y,EACF,OAAQqD,EAAQqiB,eAAiB1lB,EAAyBn9Q,MACvD49Q,IACC4C,EAAQX,uBAAyBjC,EAC1BtZ,MAERl4K,OAAOvwK,IAGR,MADA2kW,EAAQqiB,eAAiB,KACnBhnX,CAAK,GAGjB,CACA,OAAOw7B,QAAQnD,QAAQowT,EACzB,CAEAw+B,WAAAA,CAAYtiB,EAAwBn4J,GAClC,MAAMjwM,EAAS7X,KAAK6X,OAEdq+P,EAAY,IAAIpsC,EADPjyN,EAAO2qN,QACO3qN,GAG7B,OAFAiwM,EAAKouD,UAAY+pG,EAAQz9I,OAAS0zC,EAE1B+pG,EAAQqiB,eAAiB,IAAIxrV,SAAQ,CAACnD,EAAS0yB,KACrD,MAAMqkK,EAAkC,CACtCu1I,UACAn4J,OACAxzJ,aAAc,cACd7rC,IAAKw3V,EAAQ79J,YAAYhpJ,KAMrB40R,EAAan2U,EAAO6qW,cAAczrW,QAClCk0N,EAAoC,CACxC6iH,aACA3qU,QAAS2qU,EAAWQ,cACpBhkH,SAAU,EACVn6K,WAAY,EACZo6K,cAAe,GAGXW,EAAqD,CACzDC,UAAWA,CACT7pL,EACAq2K,EACAj9J,EACA8wK,KAEA,MAAM,KAAE5jB,EAAI,QAAEm4J,EAASx3V,IAAK2wC,GAAQwB,EACpC,IAAKktJ,EAAK1F,aAAe69J,IAAYjgX,KAAK+hY,gBAAgB3oU,GACxD,OAAOiN,EACLrmE,KAAKiiY,mBACHn6K,EACA8U,GAAawS,eACb,IAAIp9N,MAAM,gDACV05N,IAKNu0I,EAAQ79J,YAAYlhN,IAAM4mN,EAAK1F,YAAYlhN,IAAM,IAAIsT,WACnDgtC,EAAStsC,MAIX4yM,EAAKouD,UAAY,KACjB+pG,EAAQz9I,OAAS,KACjB7uL,EAAQ,CAAEm0K,OAAMm4J,WAAU,EAG5B/nM,QAASA,CACP12H,EACAoZ,EACA8wK,EACA7T,KAEA73N,KAAKq/V,YAAYzkS,GACjByL,EACErmE,KAAKiiY,mBACHn6K,EACA8U,GAAawS,eACb,IAAIp9N,MACD,cAAawvC,EAAS1gB,oBAAoB0gB,EAAS5oC,QAEtD8yN,EAAcuzG,GAAA,CACZx2T,IAAKiiN,EAAcjiN,IAAKvT,UAAMpU,GAAc0gD,IAEjD,EAGHgqL,UAAWA,CACT3T,EACAj9J,EACA8wK,KAEA1rO,KAAKq/V,YAAYzkS,GACjByL,EACErmE,KAAKiiY,mBACHn6K,EACA8U,GAAayS,iBACb,IAAIr9N,MAAM,yBACV05N,GAEH,EAGH6zH,QAASA,CACP1nI,EACAj9J,EACA8wK,KAEA1rO,KAAKq/V,YAAYzkS,GACjByL,EACErmE,KAAKiiY,mBACHn6K,EACA8U,GAAa4iI,iBACb,IAAIxtV,MAAM,uBACV05N,GAEH,GAILwqC,EAAU/7N,KAAKuwL,EAAeS,EAAcC,EAAgB,GAEhE,CAEQi0H,WAAAA,CAAYzkS,GAClB,MAAM,KAAEktJ,EAAI,QAAEm4J,EAASx3V,IAAK2wC,GAAQwB,EAC9B4nK,EAASy9I,EAAQz9I,OACnB1a,EAAKouD,YAAc1zC,IACrB1a,EAAKouD,UAAY,KACjB+pG,EAAQz9I,OAAS,aAEZxiO,KAAK+hY,gBAAgB3oU,GACxBopK,GACFA,EAAOnvF,SAEX,ECnWF,SAASovP,KACP,OAAO73V,KAAKyrO,cAAiBzrO,KAAa0rO,kBAC5C,CAEO,SAASosH,KAEd,IADoBxvJ,KAElB,OAAO,EAKT,MAAM+b,EAAewzI,KACrB,OACGxzI,GACAA,EAAa7tP,WACmC,oBAAxC6tP,EAAa7tP,UAAUwwP,cACW,oBAAlC3C,EAAa7tP,UAAUsgD,MAEpC,CCPe,MAAMm3L,GAWnBtsO,WAAAA,CAAYsL,EAAQivN,EAAOgS,EAAiB7Y,GAAK,KAVzCpoN,YAAM,OACNivN,MAAiC,KAAI,KACrCgS,qBAAe,OACf7Y,SAAG,OACH8Y,WAAqB,EAAC,KACtBC,eAAyB,EAAK,KAC9BC,QAAyB,KAAI,KAC7BC,OAAiB,EAAK,KACtBC,SAAmB,EAGzBn5O,KAAK6X,OAASA,EACd7X,KAAK8mO,MAAQA,EACb9mO,KAAK84O,gBAAkBA,EACvB94O,KAAKigO,IAAMA,CACb,CAEO5sF,OAAAA,GACLrzI,KAAK8mO,MAAQ,KAEb9mO,KAAKigO,IAAMjgO,KAAK84O,gBAAkB,IACpC,CAQOM,IAAAA,CAAKC,EAAyBspJ,GACnC,MAAM,OAAE9qX,EAAM,MAAEivN,EAAK,QAAEmS,GAAYj5O,KACnC,GAAc,OAAV8mO,EACF,OAEF,MAAM,YAAEntL,EAAW,QAAEw/L,GAAYrS,EAC3BwS,EAASt5O,KAAKm5O,UAAYA,EAC1BI,GAAav5O,KAAKm5O,SAAWA,EAKnC,GAHAn5O,KAAKm5O,QAAUA,EAGXx/L,IAAgB0/L,EAAiB,CAKnC,GAJAr5O,KAAKk5O,OAAQ,EACRC,IACHn5O,KAAK+4O,WAAa,GAEJ,OAAZE,EAAkB,CAEpB,GAAIj5O,KAAKg5O,cAAe,CACtB,MAAMoB,EAAkBxvM,KAAK02B,YAAYD,MAAQ43K,EACjDrkM,GAAO0yD,KACJ,+BAA8B3tD,YAAsB92C,KAAKub,MACxDg8N,QAGJp6O,KAAKg5O,eAAgB,CACvB,CACAh5O,KAAKi5O,QAAU,IACjB,CACA,MACF,CAGA,GAAIM,GAAaD,EAEf,YADAt5O,KAAKi5O,QAAU,MAKjB,GACGnS,EAAM0S,SAAWL,GAClBrS,EAAM2S,OACiB,IAAvB3S,EAAM4S,eACLtH,GAAa0rH,YAAYh3H,GAAOzmO,OAGjC,YADAL,KAAK+4O,WAAa,GAIpB,MAAMzG,EAAaF,GAAaE,WAAWxL,EAAOntL,EAAa,GACzD+4L,EAAYJ,EAAWI,WAAa,EAE1C,GAAIyG,EAAS,CAEX,MAAMQ,EAAkBrH,EAAWv/N,IAzFP,EA2FtB6mO,GACHlH,GACAiwJ,GAAcA,EAAWxuX,OAASwlC,GAClC+4L,EAAY/4L,EA9Fa,IA+FvB35C,KAAK84O,gBAAgB/H,mBAAmBp3L,GAC7C,GAAIggM,GAAmBC,EACrB,OAGF55O,KAAKk5O,OAAQ,CACf,CAIA,IAAKl5O,KAAKk5O,OAA0B,OAAjBl5O,KAAKi5O,QAAkB,KAAAs8G,EAGxC,KADmBjjH,EAAWv/N,IAAM,KAChB2/N,EAClB,OAGF,MAAMmH,EACJh3O,KAAK2qB,IAAIklN,EAAWJ,EAAWn+N,OAAS,GAAKwlC,EAKzC2oL,EAAQtiO,KAAKigO,IAAI4F,OACnB7lO,KAAKigO,IAAI4F,OAAO7lO,KAAKigO,IAAI0iB,cACzB,KAEEigJ,GADc,MAALtgK,GAAc,OAATizH,EAALjzH,EAAO7nB,cAAF,EAAL86I,EAAgB9xH,MAEM,EAAjCnB,EAAO7nB,QAASqpB,eA3HQ,EA6HtB++J,EAAe7iY,KAAK84O,gBAAgB/H,mBAAmBp3L,GAC7D,GAAIkgM,EAAY,IAAMA,GAAa+oJ,GAAmBC,GAIpD,YAHK/7J,EAAM0S,QACTx5O,KAAK85O,mBAAmB+oJ,GAI9B,CAGA,MAAM9oJ,EAAOnvM,KAAK02B,YAAYD,MAC9B,GAAgB,OAAZ43K,EAEF,YADAj5O,KAAKi5O,QAAUc,GAIjB,MAAMC,EAAkBD,EAAOd,EAC/B,IAAKE,GAAWa,GA/IqB,MAiJnCh6O,KAAKi6O,aAAa3H,IACbtyO,KAAK8mO,OACR,OAIJ,MAAMoT,EAAoB9H,GAAaE,WACrCxL,EACAntL,EACA9hC,EAAOk9M,eAET/0N,KAAKm6O,mBAAmBD,EAAmBF,EAC7C,CAQQG,kBAAAA,CACN7H,EACA+H,GAEA,MAAM,OAAExiO,EAAM,gBAAEihO,EAAe,MAAEhS,GAAU9mO,KAC3C,GAAc,OAAV8mO,EACF,OAEF,MAAMntL,EAAcmtL,EAAMntL,YAEpBm3L,EAAUgI,EAAgB/H,mBAAmBp3L,GACnD,GAAIm3L,EAAS,CAMX,GAHmB9wO,KAAK85O,mBAAmBhJ,KAGxB9wO,KAAK8mO,MACtB,MAEJ,EAOGwL,EAAWv/N,IAAM8E,EAAOk9M,eACtBud,EAAWI,WACVJ,EAAWI,UAAY/4L,EAAc9hC,EAAOk9M,gBAChDslB,EAAsD,IAAlCxiO,EAAOyiO,2BAE3B1lM,GAAO0yD,KAAK,6CAIZtnG,KAAKi5O,QAAU,KACfj5O,KAAKu6O,kBAET,CAOQN,YAAAA,CAAa3H,GACnB,MAAM,IAAErS,EAAG,MAAE6G,EAAK,cAAEkS,GAAkBh5O,KACtC,IAAKg5O,GAAiBlS,EAAO,CAE3B9mO,KAAKg5O,eAAgB,EACrB,MAAM19N,EAAQ,IAAItJ,MACf,yBACC80N,EAAMntL,kCACe/8B,KAAKjW,UAAU2rO,OAExC19L,GAAO0yD,KAAKhsF,EAAMg4B,SAClB2sL,EAAI3lB,QAAQhmE,GAAOimE,MAAO,CACxBz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa4d,qBACtB7/B,OAAO,EACPr/L,QACAswB,OAAQ0mM,EAAWv/N,KAEvB,CACF,CAOQ+mO,kBAAAA,CAAmBhJ,GACzB,MAAM,OAAEj5N,EAAM,IAAEooN,EAAG,MAAE6G,GAAU9mO,KAC/B,GAAc,OAAV8mO,EACF,OAAO,EAIT,MAAMntL,EAAcmtL,EAAMntL,YACpB24L,EAAaF,GAAaE,WAAWxL,EAAOntL,EAAa,GACzDsX,EACJtX,EAAc24L,EAAWn+N,MAAQm+N,EAAWn+N,MAAQm+N,EAAWI,UACjE,GAAIzhL,EAAW,CACb,MAAM6xU,EAAgBxwJ,EAAWv/N,KAAO8E,EAAOk9M,cACzCguK,EACJzwJ,EAAWv/N,IAAM,GAAKu/N,EAAWv/N,IAAM,GAAK+zN,EAAMpzK,WAAa,EAC3DsvU,EAAY/xU,EAAYtX,EAC9B,GAAIqpV,EAAY,IAAMF,GAAiBC,GAAU,CAE/C,GAAIC,EAAYnrX,EAAOk9M,cAAe,CACpC,MAAM,gBAAE+jB,GAAoB94O,KAC5B,IAAIijY,GAAW,EACf,GAAoB,IAAhBtpV,EAAmB,CACrB,MAAMupV,EAAYpqJ,EAAgBwjH,gBAChC,EACAz8H,IAEEqjK,GAAajyU,EAAYiyU,EAAUl/X,MACrCi/X,GAAW,EAEf,CACA,IAAKA,EAAU,CACb,MAAME,EACJryJ,GACAgI,EAAgBwjH,gBACd3iT,EACAkmL,IAEJ,GAAIsjK,EAAkB,CACpB,IAAIC,GAAa,EACbjgT,EAAMggT,EAAiBn/X,IAC3B,KAAOm/E,EAAMlyB,GAAW,CACtB,MAAMoyU,EAAcvqJ,EAAgB/H,mBAAmB5tJ,GACvD,IAAIkgT,EAEG,CACLD,GAAa,EACb,KACF,CAJEjgT,GAAOkgT,EAAY3jX,QAKvB,CACA,GAAI0jX,EACF,OAAO,CAEX,CACF,CACF,CACA,MAAM1oJ,EAAa73O,KAAK2qB,IACtByjC,EAlS6B,IAmS7BtX,EApSmC,IA4SrC,GANA/E,GAAO0yD,KACJ,6CAA4C3tD,QAAkB+gM,KAEjE16O,KAAKk5O,OAAQ,EACbl5O,KAAKi5O,QAAU,KACfnS,EAAMntL,YAAc+gM,EAChB5J,IAAYA,EAAQr3M,IAAK,CAC3B,MAAMne,EAAQ,IAAItJ,MACf,mDAAkD2nC,QAAkB+gM,KAEvEza,EAAI3lB,QAAQhmE,GAAOimE,MAAO,CACxBz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa+d,sBACtBhgC,OAAO,EACPr/L,QACA6L,OAAQ7L,EAAMg4B,QACdw0K,KAAMgpB,GAEV,CACA,OAAO4J,CACT,CACF,CACA,OAAO,CACT,CAMQH,eAAAA,GACN,MAAM,OAAE1iO,EAAM,IAAEooN,EAAG,MAAE6G,EAAK,WAAEiS,GAAe/4O,KAC3C,GAAc,OAAV8mO,EACF,OAEF,MAAMntL,EAAcmtL,EAAMntL,YAG1B,GAFA35C,KAAK+4O,aAEDA,EAAalhO,EAAO+iO,cAAe,CACrC,MAAMF,EAAa/gM,GAAeo/L,EAAa,GAAKlhO,EAAOgjO,YAErDv/N,EAAQ,IAAItJ,MACf,8BAA6B2nC,QAAkB+gM,KAElD9lM,GAAO0yD,KAAKhsF,EAAMg4B,SAClBwzL,EAAMntL,YAAc+gM,EACpBza,EAAI3lB,QAAQhmE,GAAOimE,MAAO,CACxBz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAake,sBACtBx/N,QACAq/L,OAAO,GAEX,KAAO,CACL,MAAMr/L,EAAQ,IAAItJ,MACf,yDAAwD2nC,WAAqB9hC,EAAO+iO,wBAEvFhmM,GAAOt5B,MAAMA,EAAMg4B,SACnB2sL,EAAI3lB,QAAQhmE,GAAOimE,MAAO,CACxBz1M,KAAM63N,GAAWniB,YACjBC,QAASmiB,GAAa4d,qBACtBl/N,QACAq/L,OAAO,GAEX,CACF,EC1Ua,MAAM0iC,WACXikH,GAkBR/0V,WAAAA,CACE0zN,EACA6Y,EACAo9B,GAEA5iJ,MACE2sG,EACA6Y,EACAo9B,EACA,sBACAr2C,IACA,KA1BI0d,gBAA0B,EAAK,KAC/BE,cAAsC,KAAI,KAC1Cnb,OAAiB,EAAC,KAClBghK,iBAA2B,EAAK,KAChC5lJ,UAAoB,EAAK,KACzBC,WAAqB,EAAK,KAC1B6C,YAA+B,KAAI,KACnC+iJ,WAAmC,KAAI,KACvC1hJ,UAAkC,KAAI,KACtCR,aAAuB,EAAC,KACxBmiJ,gBAA0B,EAAK,KAC/B3gC,kBAAqC,KAAI,KACzCxgH,kBAA4B,EAAK,KACjCsB,YAA0B,KAchC3jP,KAAKuwV,oBACP,CAEQA,kBAAAA,GACN,MAAM,IAAEtwH,GAAQjgO,KAChBigO,EAAIn5K,GAAGwtF,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACpDigO,EAAIn5K,GAAGwtF,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACtDigO,EAAIn5K,GAAGwtF,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACxDigO,EAAIn5K,GAAGwtF,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACtDigO,EAAIn5K,GAAGwtF,GAAOwpF,cAAe99N,KAAKoqO,eAAgBpqO,MAClDigO,EAAIn5K,GAAGwtF,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MAChDigO,EAAIn5K,GACFwtF,GAAO2qF,4BACPj/N,KAAKqkP,2BACLrkP,MAEFigO,EAAIn5K,GAAGwtF,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACnCigO,EAAIn5K,GAAGwtF,GAAO8pF,sBAAuBp+N,KAAKwjP,sBAAuBxjP,MACjEigO,EAAIn5K,GAAGwtF,GAAO+pF,qBAAsBr+N,KAAK0jP,qBAAsB1jP,MAC/DigO,EAAIn5K,GAAGwtF,GAAO6oF,eAAgBn9N,KAAK4jP,gBAAiB5jP,MACpDigO,EAAIn5K,GAAGwtF,GAAOkpF,eAAgBx9N,KAAKskP,gBAAiBtkP,MACpDigO,EAAIn5K,GAAGwtF,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACpDigO,EAAIn5K,GAAGwtF,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,KACpD,CAEUwwV,oBAAAA,GACR,MAAM,IAAEvwH,GAAQjgO,KAChBigO,EAAIxqI,IAAI6+C,GAAOwoF,eAAgB98N,KAAK2hP,gBAAiB3hP,MACrDigO,EAAIxqI,IAAI6+C,GAAOyoF,gBAAiB/8N,KAAKiiP,iBAAkBjiP,MACvDigO,EAAIxqI,IAAI6+C,GAAOmpF,iBAAkBz9N,KAAKkqO,kBAAmBlqO,MACzDigO,EAAIxqI,IAAI6+C,GAAOqpF,gBAAiB39N,KAAKkiP,iBAAkBliP,MACvDigO,EAAIxqI,IAAI6+C,GAAOypF,aAAc/9N,KAAKsiP,cAAetiP,MACjDigO,EAAIxqI,IACF6+C,GAAO2qF,4BACPj/N,KAAKqkP,2BACLrkP,MAEFigO,EAAIxqI,IAAI6+C,GAAOimE,MAAOv6M,KAAKk4K,QAASl4K,MACpCigO,EAAIxqI,IAAI6+C,GAAO8pF,sBAAuBp+N,KAAKwjP,sBAAuBxjP,MAClEigO,EAAIxqI,IAAI6+C,GAAO+pF,qBAAsBr+N,KAAK0jP,qBAAsB1jP,MAChEigO,EAAIxqI,IAAI6+C,GAAO6oF,eAAgBn9N,KAAK4jP,gBAAiB5jP,MACrDigO,EAAIxqI,IAAI6+C,GAAOkpF,eAAgBx9N,KAAKskP,gBAAiBtkP,MACrDigO,EAAIxqI,IAAI6+C,GAAO4pF,eAAgBl+N,KAAKwkP,gBAAiBxkP,MACrDigO,EAAIxqI,IAAI6+C,GAAO6qF,cAAen/N,KAAK0xO,eAAgB1xO,KACrD,CAEUsgO,mBAAAA,GACRtgO,KAAKwwV,uBACLl9N,MAAMgtG,qBACR,CAEOyb,SAAAA,CAAUY,GACf,GAAI38O,KAAK6lO,OAAQ,CACf,MAAM,gBAAEwT,EAAe,IAAEpZ,GAAQjgO,KAIjC,GAHAA,KAAKg8O,WACLh8O,KAAK07O,YAxFW,KAyFhB17O,KAAKsiO,OAAS,GACTtiO,KAAK69O,mBAAoB,CAE5B,IAAIC,EAAa7d,EAAI6d,YACD,IAAhBA,IACE7d,EAAIpoN,OAAOkmO,eAAiB/9O,KAAK6lO,OAAOxlO,OAAS,GAEnDy9O,EAAa,EACb99O,KAAKuxO,aAAc,GAEnBuM,EAAa7d,EAAI4rJ,gBAKrB5rJ,EAAIge,cAAgBH,EACpB99O,KAAKsiO,MAAQrC,EAAIulB,UACjBxlP,KAAKy8O,gBAAiB,CACxB,CAEIpD,EAAkB,IAAwB,IAAnBsD,IACzB38O,KAAKyxD,IACF,gDAA+C4nL,EAAgBjqN,QAC9D,MAGJutN,EAAgBtD,GAElBr5O,KAAK+nB,MAAQ8zN,GACb77O,KAAK08O,iBACH18O,KAAK28O,cACL38O,KAAKq5O,gBACHsD,EACJ38O,KAAKo7O,MACP,MACEp7O,KAAKsjY,iBAAkB,EACvBtjY,KAAK+nB,MAAQ8zN,EAEjB,CAEOG,QAAAA,GACLh8O,KAAKsjY,iBAAkB,EACvBhwQ,MAAM0oH,UACR,CAEUJ,MAAAA,GACR,OAAQ57O,KAAK+nB,OACX,KAAK8zN,GAAqB,CACxB,MAAM,OAAEhW,EAAM,MAAEvD,GAAUtiO,KACpB2iP,EAAqB,MAAN9c,OAAM,EAANA,EAASvD,GACxB7nB,EAAU,MAAAkoC,OAAA,EAAAA,EAAcloC,QAC9B,GACEA,KACEA,EAAQgpB,MAAQzjO,KAAKu+O,kBAAoBoE,GAC3C,CACA,GAAI3iP,KAAKknW,iBAAiBzsJ,GACxB,MAEFz6M,KAAK+nB,MAAQ8zN,GACb,MACK,GAAI77O,KAAKigO,IAAIge,gBAAkBj+O,KAAKsiO,MAAO,CAChDtiO,KAAK+nB,MAAQ8zN,GACb,KACF,CACA,KACF,CACA,KAAKA,GACH,KAAAk3I,EACE,MAAM1xT,EAAMz2B,KAAK02B,YAAYD,MACvB+8K,EAAYp+O,KAAKo+O,UAEvB,IAAKA,GAAa/8K,GAAO+8K,GAAuB,OAAd20I,EAAI/yX,KAAK8mO,QAALisJ,EAAY55I,QAAS,CACzD,MAAM,OAAEtT,EAAM,MAAEvD,GAAUtiO,KACpB2iP,EAAqB,MAAN9c,OAAM,EAANA,EAASvD,GAC9BtiO,KAAKynW,wBAAwB9kH,GAAgB,MAC7C3iP,KAAK+nB,MAAQ8zN,EACf,CACF,EAKA77O,KAAK+nB,QAAU8zN,IACjB77O,KAAKg5X,aAEPh5X,KAAKwhW,WACP,CAEUA,SAAAA,GACRluO,MAAMkuO,YACNxhW,KAAKyjY,cACLzjY,KAAK0jY,sBACP,CAEQ1K,UAAAA,GACN,MAAM,IAAE/4J,EAAG,gBAAEse,EAAe,OAAE1Y,EAAM,MAAEiB,GAAU9mO,KAKhD,GACsB,OAApBu+O,IACEzX,IAAU9mO,KAAK69O,qBAAuB5d,EAAIpoN,OAAO2mO,mBAEnD,OAIF,GAAIx+O,KAAK09O,UAAY19O,KAAK29O,UACxB,OAGF,MAAMrb,EAAQtiO,KAAKm3U,UAAYl3G,EAAIge,cAAgBhe,EAAIulB,UACvD,GAAW,MAAN3f,IAAAA,EAASvD,GACZ,OAGF,MAAMmc,EAAY5Y,EAAOvD,GAInBgQ,EAAatyO,KAAK2jY,uBACxB,GAAmB,OAAfrxJ,EACF,OAGF,MAAMqF,EAAc33O,KAAK4hW,kBACzB,GAAIjqH,GAAe33O,KAAKk8O,aAAa5J,EAAYqF,GAAc,CAC7D,MAAMziO,EAAsB,CAAC,EAO7B,OANIlV,KAAK09O,WACPxoO,EAAKpQ,KAAO,SAGd9E,KAAKigO,IAAI3lB,QAAQhmE,GAAOgpF,WAAYpoN,QACpClV,KAAK+nB,MAAQ8zN,GAEf,CACA,IAAK77O,KAAKm3U,UACR,OAIEl3G,EAAIulB,YAAcljB,IAA8B,IAArBrC,EAAI62C,aACjC92Q,KAAKyxD,IAAK,qBAAoB6wK,gBAAoBtiO,KAAKsiO,SAEzDtiO,KAAKsiO,MAAQrC,EAAIge,cAAgB3b,EAEjC,MAAMoK,EAAe+R,EAAUhkC,QAI/B,IACGiyB,GACD1sO,KAAK+nB,QAAU8zN,IACdnP,EAAajJ,MAAQzjO,KAAKu+O,kBAAoBE,EAI/C,OAFAz+O,KAAKsiO,MAAQA,OACbtiO,KAAK+nB,MAAQ8zN,IAIf,MAAM9I,EAAYT,EAAWv/N,IAGvB2rO,EAAY1+O,KAAK0lW,mBAAmBjnH,EAAUg1G,YAGpD,GAAI1gH,GAAa2L,EACf,OAIA1+O,KAAK6iW,mBACL7iW,KAAK6iW,kBAAkB1uV,MAAQm+N,EAAWtuO,MAE1ChE,KAAK6iW,kBAAoB,MAE3B,MAAMX,EAAmBliW,KAAK6iW,kBAC1B7iW,KAAK6iW,kBAAkB1uV,MACvBm+N,EAAWtuO,IACf,IAAI8jN,EAAO9nN,KAAK6lW,gBAAgB3D,EAAkBx1H,GAElD,GACE1sO,KAAKwjY,iBACJxjY,KAAKq4O,cACNvwB,GACY,gBAAZA,EAAK2G,IACLzuN,KAAK84O,gBAAgBzH,SAASvpB,KAAUwnB,GACxC,KAAAs0J,EACA,MACMzuJ,GADqC,OAAvByuJ,EAAC5jY,KAAK6iW,mBAAiB+gC,EAAI97K,GAAM2G,GACvBie,EAAa9I,QACrCigK,EAAgBn3J,EAAalJ,UAAU2R,EAAU,GACnD0uJ,GAAiB/7K,EAAKxuC,KAAOuqN,EAAcvqN,KAC7CwuC,EAAO+7K,EACP7jY,KAAK84O,gBAAgBvI,eAAeszJ,SAE7B7jY,KAAK6iW,mBAAqBvwH,EAAWv/N,MAC9C/S,KAAK6iW,kBAAoB,MAG3B,GAAI/6I,GAAQ9nN,KAAKimW,cAAcn+I,EAAMo6I,GAAmB,CAEtD,IADiBp6I,EAAKruL,IACP,CAEb,MAAM30B,EACJ9E,KAAK29O,YAAc39O,KAAK09O,SACpB3c,GACAA,GACAsb,GACHv3O,IAASi8N,GACN/gO,KAAK2jP,YACL3jP,KAAKq8O,cAAgBr8O,KAAK8mO,MAC5BuV,GACFr8O,KAAK4nW,mBAAmBvrH,EAAav3O,EAAM+6N,GAE/C,CACA/X,EAAO9nN,KAAKmmW,2BACVr+I,EACA4kB,EACA4F,EACAzS,GACA6e,EAEJ,CACK52B,KAGDA,EAAK5K,aAAgB4K,EAAK5K,YAAYhoM,MAASlV,KAAKuxO,cACtDzpB,EAAOA,EAAK5K,aAGdl9M,KAAKiiW,aAAan6I,EAAM22B,EAAWyjH,GACrC,CAEUD,YAAAA,CACRn6I,EACAwa,EACA4/H,GAGA,MAAM/lH,EAAYn8O,KAAK84O,gBAAgBzH,SAASvpB,GAChD9nN,KAAKi8O,YAAcn0B,EAEjBq0B,IAAc7M,IACd6M,IAAc7M,GAEE,gBAAZxnB,EAAK2G,GACPzuN,KAAKgjW,iBAAiBl7I,EAAMwa,GACnBtiO,KAAKuxO,aACdvxO,KAAKyxD,IACF,YAAWq2J,EAAK2G,eAAe3G,EAAKwa,sEAEvCtiO,KAAK8jY,qBAAqBh8K,EAAMwa,KAEhCtiO,KAAK69O,oBAAqB,EAC1BvqH,MAAM2uO,aAAan6I,EAAMwa,EAAO4/H,IAGlCliW,KAAKyiW,qBAAqB36I,EAE9B,CAEQ6nB,eAAAA,CAAgBnrO,GACtB,OAAOxE,KAAK84O,gBAAgBnJ,gBAC1BnrO,EACAq7N,GAEJ,CAEQygB,qBAAAA,CAAsBx4B,GAC5B,OAAIA,EAEK9nN,KAAK2vO,gBAAgB7nB,EAAK9jN,IAAM,IAElC,IACT,CAQO08O,oBAAAA,GACL1gP,KAAK+jY,mBACL/jY,KAAK8gP,gBAAgB,EAAGhrO,OAAOi9M,kBACjC,CAQOkuB,eAAAA,GACL,MAAM,OAAEpb,EAAM,MAAEiB,GAAU9mO,KAE1B,GAAS,MAAL8mO,GAAAA,EAAOpzK,WAAY,CACrB,IAAIwtL,EACJ,MAAMX,EAAqBvgP,KAAKs8V,gBAAgBx1H,EAAMntL,aAClD4mM,GAAsBA,EAAmBpsO,MAAQ,GAGnDnU,KAAK8gP,gBAAgB,EAAGP,EAAmBpsO,MAAQ,GAErD,MAAMu4N,EAAe1sO,KAAK4hW,kBAC1B,GAAgB,MAAZl1H,GAAAA,EAAcjJ,KAAM,CACtB,MAAM6O,EAAatyO,KAAK2jY,uBAExB,IAAKrxJ,GAAcA,EAAWv/N,IAAoC,EAA9B25N,EAAa5I,eAC/C,MAEJ,CACA,IAAKgD,EAAM0S,QAAU3T,EAAQ,CAE3B,MACMub,EAAYvb,EADE7lO,KAAKigO,IAAIge,eAEvBoD,EAAerhP,KAAKqhP,aAExBH,EADEG,GAAgBrhP,KAAKi8O,YAEpBj8O,KAAKi8O,YAAYv8N,SAAW0hO,EAAUqyG,YACpC,IAAOpyG,GACV,EAEW,CAEjB,MACEH,EAAa,EAIf,MAAMI,EAAethP,KAAK2vO,gBAAgB7I,EAAMntL,YAAcunM,GAC9D,GAAII,EAAc,CAEhB,MAAMC,EAAmBvhP,KAAKsgP,sBAAsBgB,GACpD,GAAIC,EAAkB,CAEpBvhP,KAAK+jY,mBAEL,MAAMC,EAAWziJ,EAAiBtM,YAC9BsM,EAAiBtM,YACjBsM,EAAiBptO,MACfixV,EAAe7jH,EAAiB7hO,SAChC8hO,EAAW3+O,KAAK2qB,IACpB8zN,EAAat9O,IACbggY,EACEnhY,KAAK4qB,IACH5qB,KAAK2qB,IACH43U,EAAeplW,KAAK6X,OAAOogO,uBAC3BmtH,GAAgBplW,KAAKwjY,eAAiB,GAAM,OAE9Cp+B,GAAgBplW,KAAKwjY,eAAiB,IAAO,OAGnDxjY,KAAK8gP,gBAAgBU,EAAU1rO,OAAOi9M,kBACxC,CACF,CACF,CACF,CAEQgxK,gBAAAA,GACN,MAAM9nJ,EAAcj8O,KAAKi8O,YAOzB,OANAj8O,KAAKi8O,YAAc,KACnBj8O,KAAK6iW,kBAAoB,KACrB5mH,IACFA,EAAY+7F,gBACZh4U,KAAK84O,gBAAgBvI,eAAe0L,IAE9Bj8O,KAAK+nB,OACX,KAAK8zN,GACL,KAAKA,GACL,KAAKA,GACL,KAAKA,GACL,KAAKA,GACH77O,KAAK+nB,MAAQ8zN,GAGjB77O,KAAK08O,iBAAmB18O,KAAKulW,iBAC/B,CAEUzkH,eAAAA,CAAgBxuB,EAAqBmvB,GAC7CnuH,MAAMwtH,gBACJxuB,EACAmvB,EACAzhP,KAAK09O,SAAW,QAAU,KAE9B,CAEUiE,eAAAA,CACRv4N,EACAlU,GAEAo+G,MAAMquH,gBAAgBv4N,EAAOlU,GAC7B,MAAM4xN,EAAQ5xN,EAAK4xN,MACnB9mO,KAAKujY,WAAavjY,KAAKikY,eAAez3W,KAAKxsB,MAC3CA,KAAK6hP,UAAY7hP,KAAK8hP,cAAct1N,KAAKxsB,MACzC8mO,EAAM18M,iBAAiB,UAAWpqB,KAAKujY,YACvCz8J,EAAM18M,iBAAiB,SAAUpqB,KAAK6hP,WACtC7hP,KAAKy9O,cAAgB,IAAI5E,GACvB74O,KAAK6X,OACLivN,EACA9mO,KAAK84O,gBACL94O,KAAKigO,IAET,CAEUgiB,gBAAAA,GACR,MAAM,MAAEnb,GAAU9mO,KACd8mO,GAAS9mO,KAAKujY,YAAcvjY,KAAK6hP,YACnC/a,EAAM3lI,oBAAoB,UAAWnhG,KAAKujY,YAC1Cz8J,EAAM3lI,oBAAoB,SAAUnhG,KAAK6hP,WACzC7hP,KAAKujY,WAAavjY,KAAK6hP,UAAY,KACnC7hP,KAAK2jP,YAAc,MAErB3jP,KAAKwgP,YAAc,KACfxgP,KAAKy9O,gBACPz9O,KAAKy9O,cAAcpqG,UACnBrzI,KAAKy9O,cAAgB,MAEvBnqH,MAAM2uH,kBACR,CAEQgiJ,cAAAA,GAENjkY,KAAKo7O,MACP,CAEQ0G,aAAAA,GACN,MAAMhb,EAAQ9mO,KAAK8mO,MACbntL,EAAcmtL,EAAQA,EAAMntL,YAAc,KAC5Cu9N,GAAgBv9N,IAClB35C,KAAKyxD,IAAK,mBAAmB9X,EAAuBvqB,QAAQ,MAI9D,MAAMkjN,EAAatyO,KAAK2jY,uBACL,OAAfrxJ,GAA0C,IAAnBA,EAAWv/N,IAUtC/S,KAAKo7O,OATHp7O,KAAKsnG,KACF,gDACCgrI,EAAaA,EAAWv/N,IAAM,WAQtC,CAEQm3N,iBAAAA,GAENlqO,KAAKyxD,IAAI,wBACTzxD,KAAKigO,IAAI3lB,QAAQhmE,GAAO2oF,kBAAcn8N,GACtCd,KAAK84O,gBAAgBlH,qBACrB5xO,KAAKwjY,gBAAiB,EACtBxjY,KAAK28O,cAAgB38O,KAAKq5O,gBAAkBr5O,KAAKqhP,aAAe,EAChErhP,KAAK6lO,OACH7lO,KAAKwgP,YACLxgP,KAAK6iW,kBACL7iW,KAAKu+O,gBACH,KACJv+O,KAAK09O,SAAW19O,KAAK29O,UAAY39O,KAAK69O,oBAAqB,CAC7D,CAEQqE,gBAAAA,CACN94N,EACAlU,GAGA,IAAIitO,GAAM,EACNC,GAAQ,EACZltO,EAAK2wN,OAAOtkO,SAAS+gO,IACnB,MAAMvmB,EAAQumB,EAAMhnB,WAChBS,IACFomC,EAAMA,IAAuC,IAAhCpmC,EAAMr4M,QAAQ,aAC3B0+O,EAAQA,IAAyC,IAAhCrmC,EAAMr4M,QAAQ,aACjC,IAEF1D,KAAKqiP,iBAAmBF,GAAOC,IF9iB5B,WAAwC,IAAA8hJ,EAC7C,MAAMj1I,EAAewzI,KACrB,MAEE,oBADoB,MAAZxzI,GAAD,OAAai1I,EAAZj1I,EAAc7tP,gBAAF,EAAb8iY,EAAmD/T,WAG9D,CEwiB6CgU,GACrCnkY,KAAKqiP,kBACPriP,KAAKyxD,IACH,0EAIJzxD,KAAK6lO,OAAS3wN,EAAK2wN,OACnB7lO,KAAK69O,oBAAqB,CAC5B,CAEQzT,cAAAA,CAAehhN,EAA6BlU,GAClD,MAAM,OAAE2wN,GAAW7lO,KACnB,IAAK6lO,GAAU7lO,KAAK+nB,QAAU8zN,GAC5B,OAEF,MAAMvZ,EAAQuD,EAAO3wN,EAAKotN,SAEvBA,EAAM7nB,SACN6nB,EAAM7nB,QAAQgpB,MAAQzjO,KAAKu+O,kBAAoBjc,GAChDtiO,KAAKknW,iBAAiB5kI,EAAM7nB,YAE5Bz6M,KAAK+nB,MAAQ8zN,GAEjB,CAEQyG,aAAAA,CAAcl5N,EAA4BlU,GAAuB,IAAAkvX,EACvE,MAAM,OAAEv+J,GAAW7lO,KACbuiP,EAAartO,EAAKotN,MAClBiT,EAAargO,EAAKulM,QAClB/6L,EAAW61N,EAAWxR,cAE5B,IAAK8B,EAEH,YADA7lO,KAAKsnG,KAAM,yCAAwCi7I,KAGrDviP,KAAKyxD,IACF,SAAQ8wL,aAAsBhN,EAAW3R,WAAW2R,EAAWhS,SAC9DgS,EAAWolG,WACN,SAAQplG,EAAWolG,cAAcplG,EAAWslG,iBAC7C,WACGtlG,EAAW5R,YAAY4R,EAAWjS,mBAAmB5jN,KAGhE,MAAM8iO,EAAW3c,EAAO0c,GAClBtG,EAAcj8O,KAAKi8O,aAEvBA,GACCj8O,KAAK+nB,QAAU8zN,IACd77O,KAAK+nB,QAAU8zN,IAEbI,EAAY3Z,QAAUptN,EAAKotN,OAAS2Z,EAAYzZ,QAClDxiO,KAAK+jY,mBAIT,IAAIptJ,EAAU,EACd,GAAIpB,EAAW9R,MAAwB,OAApB2gK,EAAI5hJ,EAAS/nC,UAAT2pL,EAAkB3gK,KAAM,KAAAo+H,EAE7C,GADA7hW,KAAK+iW,gBAAgBxtH,GACjBA,EAAWykG,kBACb,OAEFrjG,EAAU32O,KAAK6mW,eACbtxH,EACAiN,EAAS/nC,QACW,OADJonJ,EAChB7hW,KAAKu+O,sBAAe,EAApBsjH,EAAsBpnJ,QAE1B,CAWA,GATA+nC,EAAS/nC,QAAU86B,EACnBv1O,KAAKu+O,gBAAkBiE,EAEvBxiP,KAAKigO,IAAI3lB,QAAQhmE,GAAO0pF,cAAe,CACrCvjB,QAAS86B,EACTjT,MAAOigB,IAILviP,KAAK+nB,QAAU8zN,GAAqB,CACtC,GAAI77O,KAAKknW,iBAAiB3xH,GAExB,OAEFv1O,KAAK+nB,MAAQ8zN,EACf,CAEK77O,KAAK69O,mBAECtI,EAAW9R,MACpBzjO,KAAK2mW,sBAAsBpxH,GAF3Bv1O,KAAKmnW,iBAAiB5xH,EAAYoB,GAMpC32O,KAAKo7O,MACP,CAEUknH,2BAAAA,CAA4BptV,GAAsB,IAAAqgW,EAC1D,MAAM,KAAEztJ,EAAI,KAAE/7I,EAAI,QAAE7U,GAAYhiD,GAC1B,OAAE2wN,GAAW7lO,KACnB,IAAK6lO,EAIH,YAHA7lO,KAAKsnG,KACF,mEAAkEwgH,EAAK2G,eAAe3G,EAAKwa,8BAIhG,MAAMqgB,EAAe9c,EAAO/d,EAAKwa,OAC3B7nB,EAAUkoC,EAAaloC,QAC7B,IAAKA,EAKH,OAJAz6M,KAAKsnG,KACF,qBAAoBwgH,EAAK2G,eAAe3G,EAAKwa,6CAEhDtiO,KAAK84O,gBAAgBvI,eAAezoB,GAGtC,MAAM3K,EAAawlC,EAAaxlC,WAG1BW,EAAqBrD,EAAQ26B,WAAa36B,EAAQgpB,KAClDsf,EAAkC,OAAnBwyH,EAAGztJ,EAAK5K,kBAAW,EAAhBq4J,EAAkBrgW,KACpComM,EAAat7M,KAAKgjP,eAAeL,GAIjC4+G,EAAcvhW,KAAKuhW,WACvBvhW,KAAKuhW,YACL,IAAIoT,GACF30W,KAAKigO,IACLJ,GACA7/N,KAAKw5X,wBAAwBhtW,KAAKxsB,MAClCA,KAAK4kW,uBAAuBp4U,KAAKxsB,OAE/Bs1V,EAAYvpR,EAAOA,EAAKnoE,OAAS,EACjCktO,GAAyB,IAAfwkH,EACVqO,EAAY,IAAI5F,GACpBj2I,EAAKwa,MACLxa,EAAK2G,GACL3G,EAAK+P,MAAMo/G,WACX//Q,EAAQxrB,WACR4pT,EACAxkH,GAEI5e,EAAUlyN,KAAKkyN,QAAQpK,EAAKxuC,IAElCioL,EAAW3gW,KACTs2D,EACA6rL,EACAznC,EACA6B,EACA2K,EACA/7I,EACA0uI,EAAQspB,cACRjmB,EACA6lJ,EACAzxI,EAEJ,CAEQsxB,qBAAAA,CACNp6N,EACAlU,GAGA,MAAMuuO,EAAezjP,KAAK09O,SAK1B,MAJmBxoO,EAAKuT,IAIT,CACb,GAAIzoB,KAAKq8O,cAAgBr8O,KAAK8mO,MAAO,CACnC9mO,KAAKyxD,IACH,iFAEFzxD,KAAKq8O,YAAcr8O,KAAK8mO,MACxB,MAAMmV,EAAcj8O,KAAKi8O,YAErBA,IACFj8O,KAAKyxD,IAAI,4DACTwqL,EAAY+7F,gBACZh4U,KAAK84O,gBAAgBvI,eAAe0L,IAGtCj8O,KAAKyhW,kBAELzhW,KAAK+hW,mBACP,MAAW/hW,KAAK29O,WAEd39O,KAAKyhW,kBAEP,MAAMxhI,EAAMjgO,KAAKigO,IAEbwjB,IACFxjB,EAAI3lB,QAAQhmE,GAAOipF,gBAAiB,CAClCjL,YAAa,EACbmvB,UAAW3rO,OAAOi9M,kBAClBjuN,KAAM,OAER9E,KAAK84O,gBAAgBlH,sBAEvB3R,EAAI3lB,QAAQhmE,GAAO+pF,qBAAsBnpN,EAC3C,CACF,CAEQwuO,oBAAAA,CACNt6N,EACAlU,GAEA,MAAM8mN,EAAU9mN,EAAKwuB,GACfg6M,IAAa19O,KAAKigO,IAAImM,YAAYpQ,GAASvzM,IACjD,GAAIi1N,EAAU,CACZ,MAAMiG,EAAc3jP,KAAK2jP,YAErBA,GAAe3jP,KAAKq8O,cAAgBsH,IACtC3jP,KAAKyxD,IACH,sFAEFzxD,KAAKq8O,YAAcsH,EAEvB,CACA3jP,KAAK09O,SAAWA,EAChB19O,KAAKo7O,MACP,CAEQwI,eAAAA,CACNx6N,EACAlU,GAEA,MAAMy5M,EAASz5M,EAAKy5M,OACpB,IAAIk1B,EACA34O,EACAutK,GAAY,EAChB,IAAK,MAAM3zK,KAAQ6pN,EAAQ,CACzB,MAAMn4C,EAAQm4C,EAAO7pN,GACrB,GAAiB,SAAb0xK,EAAM9yI,IAIR,GAHAx4B,EAAOpG,EACP++O,EAAartE,EAEA,UAAT1xK,EAAkB,CACpB,MAAMsiN,EAAauH,EAAO7pN,GACtBsiN,IACFpnN,KAAK2jP,YAAcv8B,EAAWx7K,OAElC,OAEA6sI,GAAY,CAEhB,CACIA,GAAaorE,GACf7jP,KAAKyxD,IACF,8BAA6BvmD,gDAEhClL,KAAKq8O,YAAcwH,EAAWj4M,QAE9B5rC,KAAKq8O,YAAcr8O,KAAK8mO,KAE5B,CAEQ4K,cAAAA,CAAetoN,EAA6BlU,GAClD,MAAM,KAAE4yM,EAAI,KAAE/7I,GAAS72D,EACvB,GAAI4yM,GAAQA,EAAKhjN,OAAS+6N,GACxB,OAEF,GAAI7/N,KAAKqiW,mBAAmBv6I,GAW1B,OARA9nN,KAAKsnG,KACF,YAAWwgH,EAAK2G,KAAK1iJ,EAAO,OAASA,EAAKnoE,MAAQ,eACjDkkN,EAAKwa,qDACyCtiO,KAAK+nB,cAEnD/nB,KAAK+nB,QAAU8zN,KACjB77O,KAAK+nB,MAAQ8zN,KAIjB,MAAMhkB,EAAQ9rJ,EAAOA,EAAK8rJ,MAAQ/P,EAAK+P,MACvC73N,KAAKqhP,aAAex+O,KAAKub,MACtB,EAAIy5M,EAAMhoK,OAAUgoK,EAAMs/G,UAAUnzU,IAAM6zN,EAAMqsF,QAAQ7pK,QAE3C,gBAAZytE,EAAK2G,KACPzuN,KAAKq4O,aAAevwB,GAEtB9nN,KAAKkjW,qBAAqBp7I,EAAM/7I,EAClC,CAEQmsG,OAAAA,CAAQ9uJ,EAAqBlU,GAAiB,IAAA0+W,EACpD,GAAI1+W,EAAKylM,MACP36M,KAAK+nB,MAAQ8zN,QAGf,OAAQ3mO,EAAKulM,SACX,KAAKmiB,GAAa4jI,SAClB,KAAK5jI,GAAa5gB,mBAClB,KAAK4gB,GAAaliB,mBAClB,KAAKkiB,GAAa+R,gBAClB,KAAK/R,GAAagS,kBAClB,KAAKhS,GAAawS,eAClB,KAAKxS,GAAayS,iBAChBrvO,KAAKqnW,yBAAyBxnI,GAAwB3qN,GACtD,MACF,KAAK0nN,GAAa6Q,iBAClB,KAAK7Q,GAAa4Q,mBAClB,KAAK5Q,GAAa2yH,oBAGbr6U,EAAK+uO,YACNjkP,KAAK+nB,QAAU8zN,KACf,OAAA+3I,EAAA1+W,EAAK0lD,cAAL,EAAAg5T,EAAc9uX,QAAS86N,KAEvB5/N,KAAK+nB,MAAQ8zN,IAEf,MACF,KAAKjf,GAAai1B,oBAClB,KAAKj1B,GAAasnB,kBAChB,IAAKhvO,EAAKrQ,QAA0B,SAAhBqQ,EAAKrQ,OACvB,OAEF,GAAIqQ,EAAKulM,UAAYmiB,GAAai1B,oBAEhC,YADA7xP,KAAK+hW,oBAGH/hW,KAAK2nW,2BAA2BzyV,IAClClV,KAAK8gP,gBAAgB,EAAGhrO,OAAOi9M,mBAEjC,MACF,KAAK6J,GAAaiE,mBAChB7gO,KAAKkoW,mBAAmBhzV,GAK9B,CAGQuuX,WAAAA,GACN,MAAM,MAAE38J,EAAK,cAAE2W,GAAkBz9O,KACjC,GAAK8mO,GAAU2W,GAAkB3W,EAAMpzK,WAAvC,CAKA,GAAI1zD,KAAKy8O,iBAAmBrK,GAAa0rH,YAAYh3H,GAAOzmO,OAAQ,CAElE,MAAMsiY,EAAa3iY,KAAK+nB,QAAU8zN,GAAa77O,KAAKi8O,YAAc,KAClEwB,EAAcrE,KAAKp5O,KAAKq5O,gBAAiBspJ,EAC3C,CAEA3iY,KAAKq5O,gBAAkBvS,EAAMntL,WAR7B,CASF,CAEQ0qM,0BAAAA,GACNrkP,KAAK+nB,MAAQ8zN,GAGR77O,KAAKy8O,iBACRz8O,KAAK69O,oBAAqB,EAC1B79O,KAAK08O,iBAAmB18O,KAAK28O,eAE/B38O,KAAKk8V,eACP,CAEQ53G,eAAAA,CACNl7N,EAA4Bi7W,GAE5B,IADA,KAAEv/X,GAAyBu/X,EAE3B,GACEv/X,IAASi8N,IACR/gO,KAAK29O,YAAc39O,KAAK09O,SACzB,CACA,MAAMrB,GACHv3O,IAASi8N,GACN/gO,KAAK2jP,YACL3jP,KAAKq8O,cAAgBr8O,KAAK8mO,MAChC9mO,KAAK4nW,mBAAmBvrH,EAAav3O,EAAM+6N,IAC3C7/N,KAAKo7O,MACP,CACF,CAEQoJ,eAAAA,CACNp7N,EACAlU,GAEIlV,KAAKsiO,OAAS,GAAKtiO,KAAKi8O,cAC1Bj8O,KAAKsiO,MAAQtiO,KAAKi8O,YAAY3Z,OAEhCtiO,KAAK6lO,OAAS3wN,EAAK2wN,MACrB,CAEO4e,cAAAA,GACLzkP,KAAKu9O,gBAAkBv9O,KAAKu9O,cAC9B,CAKUimH,cAAAA,GACR,MAAM,MAAE18H,GAAU9mO,KAClB,IAAK8mO,EACH,OAEF,MAAMntL,EAAcmtL,EAAMntL,YAC1B,IAAIgjM,EAAgB38O,KAAK28O,cAGzB,GAAIA,GAAiB,GAAKhjM,EAAcgjM,EAAe,CACrD,GAAI7V,EAAMqS,QAIR,YAHAn5O,KAAKyxD,IACF,qBAAoBkrL,yBAAqChjM,KAI9D,MAAMm2L,EAAWsC,GAAa0rH,YAAYh3H,GAEpC91K,GADc8+K,EAASzvO,OAASyvO,EAAS37N,MAAM,GAAK,GAC9BwoO,EAE1B3rL,EAAQ,IACPA,EAAQhxD,KAAK6X,OAAOk9M,eACnB/jK,EAAQhxD,KAAK6X,OAAOogO,0BAEtBj4O,KAAKyxD,IAAK,+BAA8BT,2BACxC2rL,GAAiB3rL,EACjBhxD,KAAK28O,cAAgBA,GAEvB38O,KAAKyxD,IACF,iCAAgCkrL,uBAAmChjM,KAEtEmtL,EAAMntL,YAAcgjM,CACtB,CACF,CAEQqG,cAAAA,CAAeL,GACrB,IAAIrnC,EAAat7M,KAAK6X,OAAO6sO,mBAAqB/B,EAAarnC,WAU/D,OATIt7M,KAAKu9O,gBAAkBjiC,IACzBt7M,KAAKyxD,IAAI,wBAEP6pJ,GADuC,IAArCA,EAAW53M,QAAQ,aACR,YAEA,aAIV43M,CACT,CAEQwoL,oBAAAA,CAAqBh8K,EAAgBwa,GAC3Cxa,EAAKypB,aAAc,EACnBvxO,KAAKoiW,YAAYt6I,EAAMwa,GAAO7iI,MAAMvqF,IAClC,MAAM,IAAE+qN,GAAQjgO,KAChB,IAAKkV,GAAQlV,KAAKqiW,mBAAmBv6I,GACnC,OAEFwa,EAAMyjB,cAAgB,EACtB/lP,KAAK+nB,MAAQ8zN,GACb77O,KAAK69O,oBAAqB,EAC1B79O,KAAKuxO,aAAc,EACnB,MAAM1Z,EAAQ/P,EAAK+P,MAEnBA,EAAMq/G,QAAQ/iU,MACZ0jN,EAAMq/G,QAAQlzU,IACd6zN,EAAMs/G,UAAUhjU,MAChB0jN,EAAMs/G,UAAUnzU,IACd4mC,KAAK02B,YAAYD,MACrB4+J,EAAI3lB,QAAQhmE,GAAO4qF,YAAahqN,GAChC4yM,EAAKypB,aAAc,CAAK,GAE5B,CAEQioJ,uBAAAA,CAAwB7jB,GAAkC,IAAAgkB,EAChE,MAAMj2V,EAAK,QACL,IAAEu8L,GAAQjgO,MACV,YAAEo0W,EAAW,UAAEzQ,GAAcgS,EAE7B/6S,EAAU56D,KAAK6kW,kBAAkBlB,GACvC,IAAK/oS,EAEH,YADA56D,KAAK8nW,wBAAwBnE,GAG/B,MAAM,KAAE77I,EAAI,KAAE/7I,EAAI,MAAEu2J,GAAU1nK,GACxB,MAAEgpJ,EAAK,KAAEhrM,EAAI,IAAE8kM,EAAG,YAAER,GAAgBk3J,GACpC,QAAE35J,GAAY6nB,EAEdze,EAAQ7jN,KAAK09O,cAAW58O,EAAYszW,EAAYvwJ,MAItD,GAAI7jN,KAAKqiW,mBAAmBv6I,GAC1B9nN,KAAK84O,gBAAgBvI,eAAezoB,OADtC,CAOA,GAFA9nN,KAAK+nB,MAAQ8zN,GAET3+B,EAAa,CACf,GAAe,MAAXA,GAAAA,EAAayR,OAAQ,CACvB,MAAMkrK,EAAc/xK,EAAK5K,aAAe4K,EACxC9nN,KAAK85X,mBACHx3J,EACAplB,EAAYyR,OACZkrK,EACAl2B,GAEF1jI,EAAI3lB,QAAQhmE,GAAOk+E,0BAA2B,CAC5C1K,KAAM+xK,EACNn2V,KACAirL,OAAQzR,EAAYyR,QAExB,CAGA,MAAMuD,EAAUhV,EAAYgV,QACtB5D,EAAYpR,EAAYoR,UAC1B4oD,GAAgBhlD,KAClBlyN,KAAKkyN,QAAQpK,EAAKxuC,IAAM,CAAEgjD,SAAUpK,EAAS5D,aAC7C2R,EAAI3lB,QAAQhmE,GAAOi+E,eAAgB,CAAEzK,OAAMpkL,KAAIwuL,UAAS5D,cAE5D,CAGA,GAAI1K,GAASnJ,GAAuB,gBAAZqN,EAAK2G,GAAsB,CACjD,MAAMqZ,EAAWrtB,EAAQ+oB,UAAU1b,EAAK2G,GAAK,EAAIhU,EAAQmpB,SACnD0gK,EAAkBx8K,EAAK2G,KAAOhU,EAAQmpB,QACtC2gK,GAA0Bz8J,GAAYhgB,EAAKxuC,GAAKwuD,EAASxuD,GAC/D,IAAgC,IAA5B86L,EAAY57B,YAAuB,CACrC,MAAM,SAAEvnH,EAAQ,OAAEU,EAAM,SAAE0D,EAAQ,OAAEC,GAAW1R,EAC/C,GAAI73I,EACFA,EAAKsrQ,kBAAkBzzH,EAAM9+M,MAAQ,CACnCmsN,WACAU,SACA0D,WACAC,eAWF,GAPE1R,EAAMmrJ,eACNnrJ,EAAM40H,aACW,IAAjBmrB,EAAUjgU,KACT6gW,IAEDvkY,KAAKwjY,gBAAiB,GAEpB5/K,EAAMc,SAAWd,EAAM40H,YAAa,CAGtC,MAAMlmG,EAAatyO,KAAK2jY,uBAClBzhC,GACH5vH,EAAaA,EAAWtuO,IAAMhE,KAAKulW,mBACpCvlW,KAAK6X,OAAOk9M,cACR9jK,EAAY2yJ,EAAMgrJ,iBACpBhrJ,EAAMgrJ,iBACN39I,EACJ,IACGqzK,GACDpiC,EAAmBjxS,EAAYjxD,KAAK6X,OAAOk9M,gBAC1CwvK,EAGD,YADAvkY,KAAKwkY,UAAU18K,GAENy8K,IAETz8K,EAAKruL,KAAM,GAGbquL,EAAKqwH,wBACHv0H,EAAM9+M,KACNgjN,EAAK3zM,MACLw9M,EACA7J,EAAK3zM,MACLmhN,GACA,EAEJ,MAAWgvK,GAAmBrzK,ED1oCN,IC4oCtBnJ,EAAKruL,KAAM,GAGfquL,EAAKqwH,wBACHv0H,EAAM9+M,KACNmsN,EACAU,EACA0D,EACAC,GAEEt1N,KAAK6iW,oBACP7iW,KAAK6iW,kBAAoB/6I,GAE3B9nN,KAAKglW,mBACHphJ,EACAkE,EACA/7I,EACA43R,EACA2gC,GAAmBC,EAEvB,KAAO,KAAID,IAAmBC,EAK5B,YADAvkY,KAAKwkY,UAAU18K,GAFfA,EAAKruL,KAAM,CAIb,CACF,CAEA,GAAIoqL,EAAO,CACT,MAAM,SAAEoN,EAAQ,OAAEU,EAAM,SAAE0D,EAAQ,OAAEC,GAAWzR,EAC3C93I,IACFA,EAAKsrQ,kBAAkBt2G,IAA+B,CACpD9P,WACAU,SACA0D,WACAC,WAGJxN,EAAKqwH,wBACHp3G,GACA9P,EACAU,EACA0D,EACAC,GAEFt1N,KAAKglW,mBAAmBnhJ,EAAOiE,EAAM/7I,EAAM43R,EAC7C,CAEA,GAAIlpJ,GAAc,MAAHiD,GAAY,OAATi8K,EAAHj8K,EAAKf,UAALg9K,EAAct5X,OAAQ,CACnC,MAAM05X,EAAsC,CAC1Cr2V,KACAokL,OACArN,UACAkC,QAASe,EAAIf,SAEfsjB,EAAI3lB,QAAQhmE,GAAOyiF,sBAAuBgjK,EAC5C,CACA,GAAIt/K,GAAW7hM,EAAM,CACnB,MAAMohX,EAAuC,CAC3Ct2V,KACAokL,OACArN,UACAkC,QAAS/jM,EAAK+jM,SAEhBsjB,EAAI3lB,QAAQhmE,GAAO0iF,sBAAuBgjK,EAC5C,CAtJA,CAuJF,CAEQF,kBAAAA,CACNn3I,EACAh0B,EACA7G,EACA67I,GAEA,GAAI3jW,KAAK+nB,QAAU8zN,GACjB,OAGF77O,KAAK29O,YAAchvB,EAAO9K,QAAU8K,EAAO/K,MAGvC5jN,KAAK09O,WAAa19O,KAAK29O,kBAClBhvB,EAAO9K,MAGhB,MAAM,MAAEA,EAAK,MAAED,EAAK,WAAEiX,GAAelM,EACrC,GAAI9K,EAAO,CACT,IAAIvI,EAAaqnC,EAAarnC,WAC9B,MAAMzoD,EAAKpwE,UAAUlwB,UAAUxhD,cAC/B,GAAI/Q,KAAKqiP,iBAAkB,CACrB/mC,IAEAA,GADuC,IAArCA,EAAW53M,QAAQ,aACR,YAEA,aAMjB,MAAM+gY,EAAgB5gL,EAAMtuJ,SAE1BkvU,GACA,iBAAkBA,GACoB,KAArCA,EAAc3oL,cAAgB,KACJ,IAA3BjpD,EAAGnvJ,QAAQ,aAEX43M,EAAa,YAEjB,CAGEA,IACqC,IAArCA,EAAW53M,QAAQ,eACQ,IAA3BmvJ,EAAGnvJ,QAAQ,YACS,eAApBmgN,EAAMpjN,YAGN66M,EAAa,YACbt7M,KAAKyxD,IAAK,iCAAgC6pJ,MAExCqnC,EAAarnC,YAAcqnC,EAAarnC,aAAeA,GACzDt7M,KAAKyxD,IACF,kCAAiCkxL,EAAarnC,oBAAoBA,MAGvEuI,EAAMu/B,WAAa9nC,EACnBuI,EAAMngL,GAAK,OACX1jC,KAAKyxD,IACF,gCACCoyJ,EAAMpjN,6CAC4B66M,GAAc,MAChDqnC,EAAarnC,YAAc,MACzBuI,EAAM9H,SAEd,CACI6H,IACFA,EAAMw/B,WAAaT,EAAaxlC,WAChCyG,EAAMlgL,GAAK,OACX1jC,KAAKyxD,IACF,gCACCmyJ,EAAMnjN,oCACmBkiP,EAAaxlC,YAAc,MACpDyG,EAAM7H,WAIR8e,GACF76N,KAAKyxD,IACF,qCAAoCopK,EAAWp6N,oCAAoCkiP,EAAa1c,UAAUpL,EAAW9e,UAG1H/7M,KAAKigO,IAAI3lB,QAAQhmE,GAAO4oF,cAAevO,GAEvCzrN,OAAO4pB,KAAK6hM,GAAQptN,SAAS4hP,IAC3B,MACMjmC,EADQyR,EAAOw0B,GACKjmC,YACX,MAAXA,GAAAA,EAAaxxK,YACf1rC,KAAKigO,IAAI3lB,QAAQhmE,GAAO8oF,iBAAkB,CACxCt4N,KAAMq+O,EACNjuO,KAAMgoM,EACN4K,OACA/7I,KAAM,KACN43R,YACA9+V,OAAQijN,EAAKhjN,MAEjB,IAGF9E,KAAKk8V,eACP,CAEOynC,oBAAAA,GACL,OAAO3jY,KAAK2iW,iBACV3iW,KAAKq8O,YAAcr8O,KAAKq8O,YAAcr8O,KAAK8mO,MAC3CjH,GAEJ,CAEQ2kK,SAAAA,CAAU18K,GAChB9nN,KAAKwjY,gBAAiB,EAEtBxjY,KAAK6iW,kBAAoB/6I,EACzB9nN,KAAKyhW,kBACLzhW,KAAKmlW,eAAer9I,GACpB9nN,KAAK84O,gBAAgBvI,eAAezoB,GACpC9nN,KAAKq4O,aAAe,KACpBr4O,KAAK08O,iBAAmB50B,EAAK3zM,MAC7BnU,KAAK+nB,MAAQ8zN,EACf,CAEQ6nJ,oBAAAA,GACN,MAAM9/K,EAAQ5jN,KAAK8mO,MACnB,IAAIyZ,EAAsC,KAC1C,GAAI38B,GAASA,EAAMlwJ,WAAa,IAAuB,IAAlBkwJ,EAAMu1B,QAAmB,CAC5D,MAAMx/L,EAAciqK,EAAMjqK,YAkB1B,GAVIy4L,GAAaC,WAAWzuB,EAAOjqK,GACjC4mM,EAAqBvgP,KAAKs8V,gBAAgB3iT,GACjCy4L,GAAaC,WAAWzuB,EAAOjqK,EAAc,MAMtD4mM,EAAqBvgP,KAAKs8V,gBAAgB3iT,EAAc,KAEtD4mM,EAAoB,CACtBvgP,KAAK6iW,kBAAoB,KACzB,MAAMriH,EAAcxgP,KAAKwgP,YACnBkkJ,EAAmBnkJ,EAAmBje,MAEzCke,GACDD,EAAmB9xB,KAAO+xB,EAAY/xB,IACtC+xB,EAAYle,QAAUoiK,IAEtB1kY,KAAKwgP,YAAcD,EACnBvgP,KAAKigO,IAAI3lB,QAAQhmE,GAAO8qF,aAAc,CAAEtX,KAAMy4B,IACzCC,GAAeA,EAAYle,QAAUoiK,GACxC1kY,KAAKigO,IAAI3lB,QAAQhmE,GAAOupF,eAAgB,CACtCyE,MAAOoiK,IAIf,CACF,CACF,CAEA,aAAItjJ,GACF,MAAMt5B,EAAO9nN,KAAKuhP,iBAClB,OAAIz5B,EACKA,EAAKwa,OAEN,CACV,CAEA,eAAIiV,GACF,MAAMzQ,EAAQ9mO,KAAK8mO,MACnB,OAAIA,EACK9mO,KAAKwgP,aAAexgP,KAAKs8V,gBAAgBx1H,EAAMntL,aAEjD,IACT,CAEA,0BAAIgrV,GACF,MAAM79J,EAAQ9mO,KAAK8mO,MACnB,GAAIA,EAAO,CACT,MAAMntL,EAAcmtL,EAAMntL,YACpBmuK,EAAO9nN,KAAKu3O,YAClB,GACEzvB,GACAovD,GAAgBv9N,IAChBu9N,GAAgBpvD,EAAKma,iBACrB,CACA,MAAM2iK,EACH98K,EAAKma,gBAA0D,KAA5BtoL,EAAcmuK,EAAK3zM,OACzD,OAAO,IAAI4lC,KAAK6qV,EAClB,CACF,CACA,OAAO,IACT,CAEA,gBAAIjiJ,GACF,MAAM76B,EAAO9nN,KAAKu3O,YAClB,OAAIzvB,EACKA,EAAKwa,OAEN,CACV,CAEA,oBAAIif,GACF,MAAMz5B,EAAO9nN,KAAKu3O,YAClB,OAAIzvB,EACK9nN,KAAKsgP,sBAAsBx4B,GAE7B,IACT,CAEA,kBAAIo2B,GACF,OAAOl+O,KAAKsjY,eACd,ECv4Ca,MAAMjuH,GAoCnB,kBAAW1qO,GACT,MAAO,QACT,CAKA,qBAAO+3V,GACL,OAAOA,IACT,CAKA,kBAAO75P,GACL,OH1EG,WACL,IAAK65P,KACH,OAAO,EAGT,MAAM/zI,EAAczb,KACpB,MAC0C,oBAAtB,MAAXyb,OAAW,EAAXA,EAAa5pB,mBACnB,CAAC,wBAAyB,gBAAiB,iBAAiB/1D,MAC1D61N,GACCl2I,EAAY5pB,gBACV8kH,GAAiBg7C,EAAyB,aAG9C,CAAC,YAAa,QAAQ71N,MAAM81N,GAC1Bn2I,EAAY5pB,gBACV8kH,GAAiBi7C,EAAwB,YAInD,CGsDWj8P,EACT,CAKA,qBAAOqqG,GACL,OAAOA,IACT,CAEA,iBAAW5+F,GACT,OAAOA,EACT,CAEA,qBAAWqoF,GACT,OAAOA,EACT,CAEA,uBAAWC,GACT,OAAOA,EACT,CAKA,wBAAWi5C,GACT,OAAKR,GAAIO,cAIFP,GAAIO,cAHFrB,EAIX,CAKA,wBAAWsB,CAAcD,GACvBP,GAAIO,cAAgBA,CACtB,CAMArpQ,WAAAA,GAAiD,IAArC+oQ,EAA8BtoQ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EA5F9C,KAGgB6K,YAAM,EAEtB,KAGgBy9P,gBAAU,OAElBK,oBAAc,OACdD,wBAAkB,OAClBu2C,SAAmB,EAAK,KACxB84E,SAA4B,IAAI7xU,GAAc,KAC9CsiN,mBAA6B,EAAC,KAC9BwvH,cAA2B,KAAI,KAC/BvwH,mBAAa,OACbC,sBAAgB,OAChBC,wBAAkB,OAClBswH,uBAAiB,OACjBxvH,qBAAe,OACfriB,sBAAgB,OAChB8hB,0BAAoB,OACpBF,6BAAuB,OACvBG,mBAAa,OACb6lH,oBAAc,OACd1qH,OAAkC,KAAI,KACtC7nP,IAAqB,KAAI,KACzBy8W,yBAAmB,ErJzBtB,SAAoBztH,EAAgC/zO,GAEzD,GACsB,kBAAZ84C,UAAwC,IAAhBi7L,GACT,kBAAhBA,EACP,CACAD,GACEC,EAGA,QACA,MACA,OACA,OACA,SAIF,IACEF,GAAe9lN,IACZ,2BAA0B/tB,+BAE7B,MAAOnhC,IACPg1Q,GAAiBD,EACnB,CACF,MACEC,GAAiBD,EAErB,CqJ8DIF,CAAW9B,EAAW1sD,QAAS,EAAO,gBACtC,MAAM/wM,EAAU7X,KAAK6X,Ob4ZlB,SACL+9P,EACAN,GAEA,IACGA,EAAWr4B,uBACVq4B,EAAW71B,+BACZ61B,EAAWt4B,kBAAoBs4B,EAAW91B,wBAE3C,MAAM,IAAIxtO,MACR,qIAIJ,QAC6ClR,IAA3Cw0Q,EAAW71B,mCAC2B3+O,IAArCw0Q,EAAWr4B,uBACVq4B,EAAW71B,6BACT61B,EAAWr4B,uBAEf,MAAM,IAAIjrO,MACR,qGAIJ,QACwClR,IAAtCw0Q,EAAW91B,8BACsB1+O,IAAhCw0Q,EAAWt4B,kBACVs4B,EAAW91B,wBAA0B81B,EAAWt4B,kBAElD,MAAM,IAAIhrO,MACR,2FAIJ,MAAMmzX,EAAe/F,GAAQxpH,GAIvBwvH,EAAqB,CACzB,UACA,WACA,aACA,mBA4CF,MAjD+B,CAAC,WAAY,QAAS,QAO9B7jY,SAASuD,IAC9B,MAAMujI,EAAc,GAAW,UAATvjI,EAAmB,WAAaA,cAChDugY,OAA0CvkY,IAA3Bw0Q,EAAWjtI,GAC1Bi9P,EAAmB,GACzBF,EAAmB7jY,SAAS05P,IAC1B,MAAMsqI,EAAqB,GAAEzgY,WAAcm2P,IACrC73P,EAAQkyQ,EAAWiwH,GACzB,QAAczkY,IAAVsC,GAAuBiiY,EAAc,CACvCC,EAAO1kY,KAAK2kY,GACZ,MAAMngT,EAAyB+/S,EAAa98P,GAAYpxH,QAExD,OADAq+P,EAAWjtI,GAAc,CAAEpxH,QAASmuE,GAC5B61K,GACN,IAAK,UACH71K,EAASopQ,cAAgBprV,EACzBgiF,EAASmpQ,qBAAuBnrV,EAChC,MACF,IAAK,WACHgiF,EAASgpQ,WAAYM,YAActrV,EACnCgiF,EAAS+oQ,aAAcO,YAActrV,EACrC,MACF,IAAK,aACHgiF,EAASgpQ,WAAYO,aAAevrV,EACpCgiF,EAAS+oQ,aAAcQ,aAAevrV,EACtC,MACF,IAAK,kBACHgiF,EAASgpQ,WAAYQ,gBAAkBxrV,EACvCgiF,EAAS+oQ,aAAcS,gBAAkBxrV,EAG/C,KAEEkiY,EAAOjlY,QACTu0C,GAAO0yD,KACJ,mBAAkBg+R,EAAOz+X,KACxB,4CACoCwhI,OAAgBzrH,KAAKjW,UACzD2uQ,EAAWjtI,MAGjB,IAGF42M,GAAAA,GACK,GAAAkmD,GACA7vH,EAEP,CavfkCkwH,CAAYnwH,GAAIQ,cAAeP,GAC7Dt1Q,KAAKs1Q,WAAaA,EAEdz9P,EAAOwsV,aACTg7B,GAAoBxnX,GAItB,MACE48P,cAAegxH,EACf/wH,iBAAkBgxH,EAClB/wH,mBAAoBgxH,EACpBvS,gBAAiBwS,EACjBhxH,cAAeixH,GACbhuX,EACEu7W,EAAkB,IAAIwS,EAAsB5lY,MAC5Cy0Q,EAAiBz0Q,KAAKy0Q,cAAgB,IAAIgxH,EAAoBzlY,MAC9D00Q,EAAoB10Q,KAAK00Q,iBAC7B,IAAIgxH,EAAuB1lY,MACvB20Q,EAAsB30Q,KAAK20Q,mBAC/B,IAAIgxH,EAAyB3lY,MAEzB40Q,EAAgB,IAAIixH,EAAoB7lY,MACxCg2Q,EAAiB,IAAI/sC,GAAejpO,MACpCm2Q,EAAqB,IAAIruB,GAAmB9nP,MAE5C8lY,EAAkCjuX,EAAOilX,0BAEzClyC,EAAkBk7C,EACpB,IAAIA,EAAgC9lY,MACpC,KACEy1Q,EAAmBz1Q,KAAKy1Q,gBAAkB,IAAI1wB,GAClD/kP,KACA4qV,GAGI9xG,EAAkB,IAAItJ,GAAgBxvO,MACtCk2Q,EAAY,IAAInnC,GAAU/uO,KAAK6X,QAC/Bu7O,EAAoBpzP,KAAKozP,iBAAmB,IAAI/V,GACpDr9O,KACA84O,EACAo9B,GAIFvB,EAAmBwmG,oBAAoB/nH,GAEvCwhB,EAAcumG,oBAAoB/nH,GAElC,MAAMsiB,EAA4C,CAChDM,EACAP,EACAriB,GAEEw3F,GACFl1E,EAAmB9oM,OAAO,EAAG,EAAGg+Q,GAGlC5qV,KAAK01Q,mBAAqBA,EAC1B,MAAMC,EAAiC,CACrClB,EACAC,EACAC,EACAC,EACAuB,EACAr9B,GAGF94O,KAAKk1Q,qBAAuBl1Q,KAAK+lY,iBAC/BluX,EAAOq9P,qBACPQ,GAEF,MAAMswH,EAA6BnuX,EAAOo9P,sBACtC+wH,GACFtwH,EAAmB90Q,KACjB,IAAIolY,EAA2BhmY,KAAM84O,EAAiBo9B,IAI1Dl2Q,KAAKg1Q,wBAA0Bh1Q,KAAK+lY,iBAClCluX,EAAOm9P,wBACPU,GAEF,MAAMuwH,EAAgCpuX,EAAOk9P,yBACzCkxH,GACFvwH,EAAmB90Q,KACjB,IAAIqlY,EAA8BjmY,KAAM84O,EAAiBo9B,IAG7Dl2Q,KAAK+lY,iBAAiBluX,EAAOmvP,mBAAoB2O,GACjDO,EAAUf,cAAgBn1Q,KAAKm1Q,cAAgBn1Q,KAAK+lY,iBAClDluX,EAAOs9P,cACPQ,GAEF31Q,KAAKg7X,eAAiBh7X,KAAK+lY,iBACzBluX,EAAOmjX,eACPrlH,GAEF31Q,KAAKilY,kBAAoBjlY,KAAK+lY,iBAC5Bz0C,GACA37E,GAGF31Q,KAAK21Q,eAAiBA,EAItBD,EAAmB90Q,KAAKwyX,GACxB,MAAMG,EAAaH,EAAgBG,WACT,oBAAfA,GACTvzX,KAAK8mD,GAAGwtF,GAAOimE,MAAOg5K,EAAYH,EAEtC,CAEA2S,gBAAAA,CAAiBG,EAAiBtuX,GAChC,GAAIsuX,EAAiB,CACnB,MAAMC,EAAqB,IAAID,EAAgBlmY,MAI/C,OAHI4X,GACFA,EAAWhX,KAAKulY,GAEXA,CACT,CACA,OAAO,IACT,CAGAr/U,EAAAA,CACE19B,EACAojD,GAEA,IADA5R,EAAgB5tD,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGhN,KAEnBA,KAAK+kY,SAASj+U,GAAG19B,EAAOojD,EAAU5R,EACpC,CAEA45E,IAAAA,CACEprH,EACAojD,GAEA,IADA5R,EAAgB5tD,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGhN,KAEnBA,KAAK+kY,SAASvwP,KAAKprH,EAAOojD,EAAU5R,EACtC,CAEAqC,kBAAAA,CAAiD7zC,GAC/CppB,KAAK+kY,SAAS9nU,mBAAmB7zC,EACnC,CAEAqsE,GAAAA,CACErsE,EACAojD,GAGA,IAFA5R,EAAgB5tD,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGhN,KACnBw0I,EAA0BxnI,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAE1Bd,KAAK+kY,SAAStvS,IAAIrsE,EAAOojD,EAAU5R,EAAS45E,EAC9C,CAEAhtE,SAAAA,CAAwCp+C,GACtC,OAAOppB,KAAK+kY,SAASv9T,UAAUp+C,EACjC,CAEAolC,IAAAA,CACEplC,EACAle,EACAk7X,GAEA,OAAOpmY,KAAK+kY,SAASv2U,KAAKplC,EAAOle,EAAMk7X,EACzC,CAEA9rL,OAAAA,CACElxL,EACAg9W,GAEA,GAAIpmY,KAAK6X,OAAO+wM,MACd,OAAO5oN,KAAKwuD,KAAKplC,EAAOA,EAAOg9W,GAE/B,IACE,OAAOpmY,KAAKwuD,KAAKplC,EAAOA,EAAOg9W,GAC/B,MAAO9qX,GAUP,GATAs5B,GAAOt5B,MACL,mDACE8N,EACA,qBACA9N,EAAMg4B,QACN,2BACFh4B,IAGGtb,KAAKklY,oBAAqB,CAC7BllY,KAAKklY,qBAAsB,EAC3B,MAAMvqL,EAAQvxL,IAAUkrH,GAAOimE,MAC/Bv6M,KAAKs6M,QAAQhmE,GAAOimE,MAAO,CACzBz1M,KAAM63N,GAAWiE,YACjBnmB,QAASmiB,GAAaiE,mBACtBlmB,QACAvxL,QACA9N,UAEFtb,KAAKklY,qBAAsB,CAC7B,CACF,CAEF,OAAO,CACT,CAEApwP,aAAAA,CAA4C1rH,GAC1C,OAAOppB,KAAK+kY,SAASjwP,cAAc1rH,EACrC,CAKAiqH,OAAAA,GACEz+F,GAAO6c,IAAI,WACXzxD,KAAKs6M,QAAQhmE,GAAOirF,gBAAYz+N,GAChCd,KAAKy2Q,cACLz2Q,KAAKi9D,qBACLj9D,KAAKw1Q,mBAAqB,EAC1Bx1Q,KAAKyoB,IAAM,KAEXzoB,KAAK01Q,mBAAmBn0Q,SAASskB,GAAcA,EAAUwtH,YACzDrzI,KAAK01Q,mBAAmBr1Q,OAAS,EAEjCL,KAAK21Q,eAAep0Q,SAASskB,GAAcA,EAAUwtH,YACrDrzI,KAAK21Q,eAAet1Q,OAAS,EAE7B,MAAMwX,EAAS7X,KAAK6X,OACpBA,EAAOg+O,SAAWh+O,EAAO4wW,gBAAa3nX,EAEtCd,KAAKs1Q,WAAa,IACpB,CAKAoB,WAAAA,CAAY5vC,GACVlyL,GAAO6c,IAAI,eACXzxD,KAAKswQ,OAASxpC,EACd9mO,KAAKs6M,QAAQhmE,GAAOuoF,gBAAiB,CAAEiK,MAAOA,GAChD,CAKA2vC,WAAAA,GACE7hO,GAAO6c,IAAI,eACXzxD,KAAKs6M,QAAQhmE,GAAOyoF,qBAAiBj8N,GACrCd,KAAKswQ,OAAS,IAChB,CAKAqG,UAAAA,CAAWluP,GACTzoB,KAAKg8O,WACL,MAAMlV,EAAQ9mO,KAAK8mO,MACbu/J,EAAermY,KAAKyoB,IACpB69W,EAAiBtmY,KAAKyoB,IAAM6uT,GAAA/kI,iBAChC3nK,KAAKjjB,SAAS2rC,KACd7qC,EACA,CACEiqL,iBAAiB,IAGrB1yM,KAAKw1Q,mBAAqB,EAC1Bx1Q,KAAKglY,cAAgB,KACrBpwV,GAAO6c,IAAK,cAAa60U,KAEvBx/J,GACAu/J,IACCA,IAAiBC,GAAiBtmY,KAAK00Q,iBAAiB26G,oBAEzDrvX,KAAKy2Q,cACLz2Q,KAAK02Q,YAAY5vC,IAGnB9mO,KAAKs6M,QAAQhmE,GAAOmpF,iBAAkB,CAAEh1M,IAAKA,GAC/C,CASAszN,SAAAA,GAAsC,IAA5BY,EAAqB3vO,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,IAAI,EACjC4nC,GAAO6c,IAAK,aAAYkrL,MACxB38O,KAAKisT,SAAU,EACfjsT,KAAK2hW,kBACL,IAAK,IAAI1/V,EAAI,EAAGA,EAAIjC,KAAK01Q,mBAAmBr1Q,SAC1CL,KAAK01Q,mBAAmBzzQ,GAAG85O,UAAUY,GAChC38O,KAAKisT,SAAYjsT,KAAK01Q,oBAFuBzzQ,KAMtD,CAKA+5O,QAAAA,GACEpnM,GAAO6c,IAAI,YACXzxD,KAAKisT,SAAU,EACf,IAAK,IAAIhqT,EAAI,EAAGA,EAAIjC,KAAK01Q,mBAAmBr1Q,SAC1CL,KAAK01Q,mBAAmBzzQ,GAAG+5O,YACvBh8O,KAAKisT,SAAYjsT,KAAK01Q,oBAFwBzzQ,KAMtD,CAKA0/V,eAAAA,GACE/sT,GAAO6c,IAAK,oBACZzxD,KAAK01Q,mBAAmBn0Q,SAASq1Q,IAC3BA,EAAW+qF,iBACb/qF,EAAW+qF,iBACb,GAEJ,CAMAD,cAAAA,GACE9sT,GAAO6c,IAAK,mBACZzxD,KAAK01Q,mBAAmBn0Q,SAASq1Q,IAC3BA,EAAW8qF,gBACb9qF,EAAW8qF,gBACb,GAEJ,CAKAj9G,cAAAA,GACE7vM,GAAO6c,IAAI,kBACXzxD,KAAKozP,iBAAiB3O,gBACxB,CAQAoyB,iBAAAA,GACEjiO,GAAO6c,IAAI,qBACX,MAAMq1K,EAAQ9mO,KAAKswQ,OACnBtwQ,KAAKy2Q,cACD3vC,GACF9mO,KAAK02Q,YAAY5vC,EAErB,CAEAmgB,WAAAA,CAAYT,GACVxmP,KAAKy1Q,gBAAgBxuB,YAAYT,EACnC,CAKA,UAAI3gB,GACF,MAAMA,EAAS7lO,KAAKy1Q,gBAAgB5vC,OACpC,OAAOA,GAAkB,EAC3B,CAKA,gBAAI8c,GACF,OAAO3iP,KAAKozP,iBAAiBzQ,YAC/B,CAKA,gBAAIA,CAAa0D,GACfzxM,GAAO6c,IAAK,oBAAmB40L,KAC/BrmP,KAAKy1Q,gBAAgBqB,YAAczwB,EACnCrmP,KAAKozP,iBAAiB1S,sBACxB,CAKA,aAAIU,GACF,OAAOphP,KAAKozP,iBAAiBhS,SAC/B,CAQA,aAAIA,CAAUiF,GACZzxM,GAAO6c,IAAK,iBAAgB40L,KAC5BrmP,KAAKy1Q,gBAAgBqB,YAAczwB,EACnCrmP,KAAKozP,iBAAiBnS,iBACxB,CAKA,aAAIuE,GACF,OAAOxlP,KAAKy1Q,gBAAgBnzC,KAC9B,CAQA,aAAIkjB,CAAUa,GACZzxM,GAAO6c,IAAK,iBAAgB40L,KAC5BrmP,KAAKy1Q,gBAAgBqB,YAAczwB,CACrC,CAKA,iBAAIpI,GACF,OAAOj+O,KAAKy1Q,gBAAgBx3B,aAC9B,CAMA,iBAAIA,CAAc3b,GAChBtiO,KAAKy1Q,gBAAgBx3B,cAAgB3b,CACvC,CAMA,cAAI4jB,GACF,OAAOrjP,KAAK2qB,IAAIxtB,KAAKy1Q,gBAAgBvvB,WAAYlmP,KAAKisP,aACxD,CAKA,cAAI/F,CAAWG,GACbzxM,GAAO6c,IAAK,kBAAiB40L,KAC7BrmP,KAAKy1Q,gBAAgBvvB,WAAaG,CACpC,CAQA,cAAIvI,GACF,MAAMA,EAAa99O,KAAKy1Q,gBAAgB33B,WACxC,OAAoB,IAAhBA,GAAqB99O,KAAKy0Q,cAActnB,iBAAmB,EACtDntP,KAAKy0Q,cAActnB,gBAErBrP,CACT,CAQA,cAAIA,CAAWuI,GACbzxM,GAAO6c,IAAK,kBAAiB40L,MAEX,IAAdA,IACFA,EAAWxjP,KAAK2qB,IAAI64N,EAAUrmP,KAAKisP,eAGrCjsP,KAAKy1Q,gBAAgB33B,WAAauI,CACpC,CAMA,wBAAIqM,GACF,OAAO1yP,KAAK6X,OAAO66O,oBACrB,CAKA,wBAAIA,CAAqBqkB,GACvB,MAAMC,IAA4BD,EAE9BC,IAA4Bh3Q,KAAK6X,OAAO66O,uBACtCskB,EACFh3Q,KAAK20Q,mBAAmB3hB,gBAExBhzP,KAAK20Q,mBAAmBhiB,cACxB3yP,KAAKuyP,kBAAoB,EACzBvyP,KAAKozP,iBAAiBnS,mBAGxBjhP,KAAK6X,OAAO66O,qBAAuBskB,EAEvC,CAKA,oBAAIzkB,GACF,OAAOvyP,KAAKw1Q,iBACd,CAKA,qBAAIgnH,GACF,MAAM,YAAEpvI,GAAgBptP,KAAKy0Q,cAC7B,OAAKrnB,EAGEA,EAAY5D,cAFVjhJ,GAGX,CAEA,qBAAIi0R,CAAkB/wI,GACpBzrP,KAAKy0Q,cAAcs2G,eAAet/H,EACpC,CAMA,gBAAI++H,GACF,MAAM,YAAEp9H,GAAgBptP,KAAKy0Q,cAC7B,OAAKrnB,EAGEA,EAAY8rG,kBAFV3wP,GAGX,CAKA,oBAAIgqJ,CAAiBlM,GACfrmP,KAAKw1Q,oBAAsBnvB,IAC7BzxM,GAAO6c,IAAK,wBAAuB40L,KACnCrmP,KAAKw1Q,kBAAoBnvB,EACzBrmP,KAAKy1Q,gBAAgBqsH,sBAEzB,CAEA,gBAAI3M,GACF,OAAOn1X,KAAKglY,aACd,CAEA,gBAAI7P,CAAa/xX,I5HvpBZ,SAAqBA,GAC1B,OAAOqvV,GAAW/uV,QAAQN,IAAU,CACtC,E4HspBQmjY,CAAYnjY,IAAUpD,KAAKglY,gBAAkB5hY,IAC/CpD,KAAKglY,cAAgB5hY,EACrBpD,KAAKy1Q,gBAAgBqsH,sBAEzB,CAKA,oBAAI1hJ,GACF,OAA6C,IAAtCpgP,KAAKy1Q,gBAAgBqB,WAC9B,CAKA,eAAIA,GACF,OAAO92Q,KAAKy1Q,gBAAgBqB,WAC9B,CAKA,gBAAI7qB,GACF,MAAM,OACJpmB,EACAhuN,QAAQ,eAAEg9P,IACR70Q,KACJ,IAAK6lO,EAAQ,OAAO,EAEpB,MAAM9yN,EAAM8yN,EAAOxlO,OACnB,IAAK,IAAI4B,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACvB,GAAI4jO,EAAO5jO,GAAGwxV,YAAc5+E,EAC1B,OAAO5yQ,EAIX,OAAO,CACT,CAKA,gBAAI2qP,GACF,MAAM,OAAE/mB,EAAM,iBAAE0sB,EAAgB,aAAE4iI,GAAiBn1X,KAEnD,IAAI4sP,EAOJ,GALEA,GADwB,IAAtB2F,GAA2B,MAAA1sB,GAAAA,EAAQxlO,OACtBwlO,EAAOxlO,OAAS,EAEhBkyP,EAGb4iI,EACF,IAAK,IAAIlzX,EAAI2qP,EAAc3qP,KAAO,CAChC,MAAMgyX,EAAYpuJ,EAAO5jO,GAAG8qJ,MAAM,cAClC,GAAIknO,GAAaA,GAAakB,EAC5B,OAAOlzX,CAEX,CAGF,OAAO2qP,CACT,CAEA,kBAAIi/H,GACF,OAAO7rX,KAAKy0Q,cAAco3G,cAC5B,CAKA,iBAAI7tI,GACF,OAAOh+O,KAAKy0Q,cAAcz2B,aAC5B,CASA,iBAAIA,CAAcoD,GAChBphP,KAAKy0Q,cAAcz2B,cAAgBoD,CACrC,CAKA,eAAWolJ,GACT,OAAOxmY,KAAKozP,iBAAiBuxI,sBAC/B,CAEA,yBAAWxsC,GACT,OAAOn4V,KAAKozP,iBAAiBuwI,sBAC/B,CAMOpJ,cAAAA,CACLC,GACsB,IAAAiM,EACtB,OAAO,OAAPA,EAAOzmY,KAAKk1Q,2BAAL,EAAAuxH,EAA2BlM,eAAeC,EACnD,CAKOrD,iBAAAA,CACLC,GACsB,IAAAsP,EAEtB,OAD4B,OAA5BA,EAAI,KAAC1xH,0BAAL0xH,EAA8BvP,kBAAkBC,GACzC,IACT,CAKA,kBAAI1K,GACF,MAAMx3G,EAAuBl1Q,KAAKk1Q,qBAClC,OAAOA,EAAuBA,EAAqBw3G,eAAiB,EACtE,CAKA,eAAItgJ,GACF,MAAM8oC,EAAuBl1Q,KAAKk1Q,qBAClC,OAAOA,EAAuBA,EAAqB9oC,YAAc,EACnE,CAKA,cAAI5mB,GACF,MAAM0vD,EAAuBl1Q,KAAKk1Q,qBAClC,OAAOA,EAAuBA,EAAqB1vD,YAAc,CACnE,CAKA,cAAIA,CAAWyxD,GACb,MAAM/B,EAAuBl1Q,KAAKk1Q,qBAC9BA,IACFA,EAAqB1vD,WAAayxD,EAEtC,CAKA,qBAAIigH,GACF,MAAMliH,EAA0Bh1Q,KAAKg1Q,wBACrC,OAAOA,EACHA,EAAwBkiH,kBACxB,EACN,CAKA,kBAAIhpH,GACF,MAAM8G,EAA0Bh1Q,KAAKg1Q,wBACrC,OAAOA,EACHA,EAAwB9G,eACxB,EACN,CAKA,iBAAI9B,GACF,MAAM4I,EAA0Bh1Q,KAAKg1Q,wBACrC,OAAOA,EAA0BA,EAAwB5I,eAAiB,CAC5E,CAEA,SAAItlC,GACF,OAAO9mO,KAAKswQ,MACd,CAKA,iBAAIlE,CAAcsC,GAChB,MAAMsG,EAA0Bh1Q,KAAKg1Q,wBACjCA,IACFA,EAAwB5I,cAAgBsC,EAE5C,CAKA,mBAAIxC,GACF,MAAM8I,EAA0Bh1Q,KAAKg1Q,wBACrC,QAAOA,GACHA,EAAwB9I,eAE9B,CAKA,mBAAIA,CAAgB9oQ,GAClB,MAAM4xQ,EAA0Bh1Q,KAAKg1Q,wBACjCA,IACFA,EAAwB9I,gBAAkB9oQ,EAE9C,CAKA,kBAAIuuV,GACF,OAAO3xV,KAAK6X,OAAO85U,cACrB,CAKA,kBAAIA,CAAe72U,GACjB9a,KAAK6X,OAAO85U,eAAiB72U,CAC/B,CAMA,oBAAI4kO,GACF,OAAO1/O,KAAKilY,kBAAkBvlJ,gBAChC,CAMA,WAAIxuK,GACF,OAAOlxE,KAAKilY,kBAAkB/zT,OAChC,CAOA,cAAIquK,GACF,OAAOv/O,KAAKilY,kBAAkB1lJ,UAChC,CAKA,iBAAIxC,GACF,OAAO/8O,KAAKilY,kBAAkBloJ,aAChC,CAKA,SAAI7H,GACF,OAAOl1O,KAAKilY,kBAAkB/vJ,KAChC,CAKA,kBAAIgJ,GACF,OAAOl+O,KAAKozP,iBAAiBlV,cAC/B,EAl6BmBm3B,GACJO,mBAAa,EC9C9B,MAoBA,GApBkBv5P,IAAc,IAAb,IAAE81E,GAAK91E,EACxB,MAAMsqX,GAAW9uM,EAAAA,EAAAA,QAAO,MAgBxB,OAdAL,EAAAA,EAAAA,YAAU,KACR,GAAI69E,GAAAA,cAAmB,CACrB,MAAMp1C,EAAM,IAAIo1C,GAAI,CAClBv3B,WAAY,EACZe,gBAAiB,IAEnB5e,EAAI02C,WAAWxkL,GACf8tI,EAAIy2C,YAAYiwH,EAASj6X,SACzBuzN,EAAIn5K,GAAGuuN,GAAAA,OAAW13C,iBAAiB,KACjCgpK,EAASj6X,QAAQs0O,MAAM,GAE3B,IACC,CAAC7uJ,KAEGtrE,EAAAA,GAAAA,KAAA,SAAO7a,IAAK26X,EAAUz9G,UAAQ,EAAC/jQ,MAAM,QAAS,EC4zBhD,SAASyhX,GAAW7hY,GACzB,OAAO4tU,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,YAAY,KAAO,OAAO,OAAS,eAAe,YAAc,IAAI,cAAgB,QAAQ,eAAiB,SAAS,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,qQAAqQ,MAAQ,IAAI,CAAC,IAAM,UAAU,KAAO,CAAC,OAAS,8CAA8C,MAAQ,MAAziBA,CAAgjB5tU,EACzjB,CC5vBA,MAkmDA,GAlmDc8hY,KAAO,IAADn1L,EAAAo1L,EAAAC,EAAAC,EAClB,MAAOC,EAAmBC,IAAwBpvM,EAAAA,EAAAA,WAAS,IACpDqvM,EAAiBC,IAAsBtvM,EAAAA,EAAAA,WAAS,GAEjDuvM,IADexvM,EAAAA,EAAAA,QAAO,OACVA,EAAAA,EAAAA,QAAO,QAClBumG,EAAYkpG,IAAiBxvM,EAAAA,EAAAA,UAAS,IACtCxmC,EAAUi2O,IAAezvM,EAAAA,EAAAA,WAAS,IAClC0vM,EAAWC,IAAgB3vM,EAAAA,EAAAA,WAAS,IACpC4vM,EAAgBC,IAAqB7vM,EAAAA,EAAAA,WAAS,IAC9C8vM,EAAkBC,IAAuB/vM,EAAAA,EAAAA,WAAS,IACnD,SAAEgwM,EAAQ,UAAEC,GAAcl4D,IAAa9nT,GAAUA,EAAMi3D,QACtDgpT,EAAgBC,IAAqBnwM,EAAAA,EAAAA,WAAS,IAE9CowM,KADWrwM,EAAAA,EAAAA,QAAO,OACJC,EAAAA,EAAAA,UAAS,CAC5B,CAAEjsK,MAAO,8CAA+CuqJ,IAAK+xN,IAC7D,CAAEt8W,MAAO,6CAA8CuqJ,IAAKgyN,IAC5D,CAAEv8W,MAAO,8BAA+BuqJ,IAAKiyN,IAC7C,CAAEx8W,MAAO,qCAAsCuqJ,IAAKkyN,IACpD,CAAEz8W,MAAO,qCAAsCuqJ,IAAKmyN,IACpD,CACE18W,MAAO,oDACPuqJ,IAAKoyN,IAEP,CAAE38W,MAAO,2CAA4CuqJ,IAAKqyN,IAC1D,CACE58W,MAAO,qDACPuqJ,IAAKsyN,IAEP,CAAE78W,MAAO,wCAAyCuqJ,IAAKuyN,IACvD,CAAE98W,MAAO,6CAA8CuqJ,IAAKwyN,IAC5D,CAAE/8W,MAAO,4CAA6CuqJ,IAAKyyN,IAC3D,CAAEh9W,MAAO,6BAA8BuqJ,IAAK0yN,IAC5C,CACEj9W,MAAO,yDACPuqJ,IAAK2yN,IAEP,CACEl9W,MAAO,4BACPuqJ,IAAK4yN,QAGF5jT,EAAU6jT,IAAenxM,EAAAA,EAAAA,UAAS,CACvCs+F,UAAU,EACVmB,UAAU,EACVD,QAAQ,EACRE,cAAe,IACfY,SAAU,WACV7B,cACQ,QAAN7kF,EAAAhvK,cAAM,IAAAgvK,OAAA,EAANA,EAAQw3L,aAAc,IAClB,GACM,QAANpC,EAAApkW,cAAM,IAAAokW,OAAA,EAANA,EAAQoC,aAAc,IACtB,KACM,QAANnC,EAAArkW,cAAM,IAAAqkW,OAAA,EAANA,EAAQmC,aAAc,KACtB,GACM,QAANlC,EAAAtkW,cAAM,IAAAskW,OAAA,EAANA,EAAQkC,aAAc,KACtB,IACA,EACN9xG,YAAcxzR,IACZ0jY,EAAc1jY,EAAM,IA+BlB8lT,EAAaA,KAKjBu+E,GAAkB,EAAM,GAG1BzwM,EAAAA,EAAAA,YAAU,KACR,MAAM2xM,EAAeA,KACnB5B,EAAY7kW,OAAOwmW,YAAc,IAAI,EAMvC,OAJAC,IAGAzmW,OAAOtY,iBAAiB,SAAU++W,GAC3B,KACLzmW,OAAOy+D,oBAAoB,SAAUgoS,EAAa,CACnD,GACA,KAEH3xM,EAAAA,EAAAA,YAAU,KAAO,IAAD4xM,EAAAC,EAAAC,EAAAC,EACdN,EAAY,CACV7yG,UAAU,EACVmB,UAAU,EACVD,QAAQ,EACRE,cAAe,IACfY,SAAU,WACV7B,cACQ,QAAN6yG,EAAA1mW,cAAM,IAAA0mW,OAAA,EAANA,EAAQF,aAAc,IAClB,GACM,QAANG,EAAA3mW,cAAM,IAAA2mW,OAAA,EAANA,EAAQH,aAAc,IACtB,KACM,QAANI,EAAA5mW,cAAM,IAAA4mW,OAAA,EAANA,EAAQJ,aAAc,KACtB,GACM,QAANK,EAAA7mW,cAAM,IAAA6mW,OAAA,EAANA,EAAQL,aAAc,KACtB,IACA,EACN9xG,YAAcxzR,IACZ0jY,EAAc1jY,EAAM,GAEtB,GACD,CAAC8+B,OAAOwmW,aAqJX,OAdA1xM,EAAAA,EAAAA,YAAU,QAYP,KAGD3wK,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACEwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,4BAA2BvO,SAAA,EACxCwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,mFAAkFvO,SAAA,EAC7FiiY,IACAzgX,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0HAAyHvO,SAAA,EACtI6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,0FACvBsT,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,2FACvBsT,EAAAA,GAAAA,KAACijN,GAAM,QAGXtjN,EAAAA,GAAAA,MAAA,WAASjT,UAAU,GAAGm2X,OAzFHhxK,IACzBwuK,GAAqB,EAAK,EAwF4BliY,SAAA,EAC9C6hB,EAAAA,GAAAA,KAAA,UACEigN,MAAM,qBACN6iK,OAAQC,GACR75W,MAAO,CACL1P,OAAQ4mX,EAAoB,OAAS,UAGzCpgX,EAAAA,GAAAA,KAAA,UACEigN,MAAM,sBACN6iK,OAAQE,GACR95W,MAAO,CACL1P,OAAQ4mX,EAAoB,OAAS,UAGzCpgX,EAAAA,GAAAA,KAAA,OACEsrE,IACG80S,EAA+C6C,GAA3BC,GAEvB9tI,IAAI,aACJ1oP,UAAU,iCACVwc,MAAO,CACL1P,OAAQ4mX,EAAoB,OAAS,aAI3CzgX,EAAAA,GAAAA,MAAA,OACEjT,UAAU,wNAGVwc,MAAO,CACLlgB,OAAQ,IACR7K,SAAA,EAiCFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,QAAOvO,SAAA,EACpB6hB,EAAAA,GAAAA,KAAA,QACEq8I,QAASA,IAAM+kO,GAAkB,GACjC10X,UAAU,wBACV+/C,KAAK,IAAGtuD,UAER6hB,EAAAA,GAAAA,KAACmjX,GAAAA,EAAa,CAACzsX,SAAS,aAE1BsJ,EAAAA,GAAAA,KAAA,UAEAA,EAAAA,GAAAA,KAAA,KACEtT,UAAU,6HACV2vJ,QAASA,IAAM+kO,GAAkB,GAAMjjY,SACxC,sBAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,uCAE5B6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kBACdy0X,IACCnhX,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iIACV2vJ,QAASwmJ,EAAW1kT,UAEpBwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAW,2IACX2vJ,QAAU3gK,GAAMA,EAAEwgK,kBAAkB/9J,SAAA,EAEpC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wDAAuDvO,UACpE6hB,EAAAA,GAAAA,KAAA,OACEq8I,QAASwmJ,EACTn2S,UAAU,gJAA+IvO,UAEzJ6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK83S,GACL12X,UAAU,oBACV0oP,IAAI,yBAIVp1O,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,GAAEvO,UAef6hB,EAAAA,GAAAA,KAACqjX,GAAS,CAAC/3S,IAzUzB,kHA8VI3rE,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iCAAgCvO,SAAA,EA+C7CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4BAA2BvO,SAAA,EACxC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,4BAC1B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,2NAsBhCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iBAAgBvO,SAAA,EAC7BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,YAAWvO,SAAA,EACxB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKg4S,GAAOluI,IAAI,QAEvBz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,kBACJ6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,4PAOhC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAEjBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,YAAWvO,SAAA,EACxB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKi4S,GAAOnuI,IAAI,QAEvBz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,mBACJ6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,qVAShC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAEjBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,YAAWvO,SAAA,EACxB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKk4S,GAAOpuI,IAAI,QAEvBz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,oBACJ6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,mWAShC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oCAmLnBsT,EAAAA,GAAAA,KAAA,OACEtT,UAAW,oFACXwc,MAAO,CACLu6W,gBAAiB,OAAOC,MACxBC,eAAgB,QAChBC,mBAAoB,SACpBC,iBAAkB,aAClB1lY,UAkEFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8CAA6CvO,SAAA,EAC1D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,oCAAmCvO,SAAC,sCAGlD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,2BAA0BvO,SAAC,oQAOxCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2CAA0CvO,SAAA,EACvDwhB,EAAAA,GAAAA,MAACykT,GAAI,CACH3tK,GAAG,iEACH1zI,OAAO,SACPrW,UAAU,+JAA8JvO,SAAA,EAExK6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,0BAAyBvO,SAAC,mBAC1CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAACkvT,GAAM,CAACxiU,UAAU,4CAA6C,IAAI,cAIvEiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzCwhB,EAAAA,GAAAA,MAACykT,GAAI,CACH3tK,GAAG,qCACH1zI,OAAO,SACPrW,UAAU,8JAA6JvO,SAAA,EAEvK6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,0BAAyBvO,SAAC,uBAG1CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAACosT,GAAW,CAAC1/T,UAAU,yCAA0C,IAAI,mBAIzEsT,EAAAA,GAAAA,KAACokT,GAAI,CAAC3tK,GAAG,aAAa/pJ,UAAU,mGAAkGvO,SAAC,6CAqF3IwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,4BAC1B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAiBsP,GAAG,qBAAoB7d,SAAC,mcAWxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qBAAoBvO,UACjCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mBAAkBvO,SAAA,EAC/B6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,CAACx2R,IAAKq7X,KAAejiT,EAAU7xE,UAAU,YAAWvO,SACxDkjY,EAAW5+X,KAAI,CAACmqB,EAAMxxB,KACrBukB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yCAAwCvO,SAAA,EACrD6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK1+D,EAAK2iJ,IACV6lF,IAAI,aACJ1oP,UAAU,8BAEZsT,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAEyuB,EAAK5H,gBAKvChF,EAAAA,GAAAA,KAAA,UACE,aAAW,WAEXtT,UAAU,cACVwF,SAAyB,IAAfqlR,EACVl7H,QAASA,KAAA,IAAAynO,EAAA,OAAe,OAATtD,QAAS,IAATA,GAAkB,QAATsD,EAATtD,EAAW36X,eAAO,IAAAi+X,OAAT,EAATA,EAAoBloG,WAAW,EAACz9R,UAE/C6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,oVACFgQ,KAAqB,IAAf+4Q,EAAmB,qBAAuB,eAItDv3Q,EAAAA,GAAAA,KAAA,UACE,aAAW,OAEXtT,UAAU,cACVwF,SAAyB,KAAfqlR,EACVl7H,QAASA,KAAA,IAAA0nO,EAAA,OAAe,OAATvD,QAAS,IAATA,GAAkB,QAATuD,EAATvD,EAAW36X,eAAO,IAAAk+X,OAAT,EAATA,EAAoBloG,WAAW,EAAC19R,UAE/C6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,4VACFgQ,KAAqB,KAAf+4Q,EAAoB,qBAAuB,oBAO3D53Q,EAAAA,GAAAA,MAAA,OACEjT,UAAW,2IAA2IvO,SAAA,EAOtJ6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sBAAqBvO,SAAC,qBACpC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,qEAAoEvO,SAAC,oMAKnF6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,sDAAqDvO,SAAC,iMAMnE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qDAAoDvO,UACjE6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,kCACH1zI,OAAO,SACPrW,UAAU,6GAA4GvO,SACvH,wBAIH6hB,EAAAA,GAAAA,KAAA,OAEEsrE,IA56BQ,2DA66BR8pK,IAAI,GACJ1oP,UAAU,wCAEZsT,EAAAA,GAAAA,KAAA,OACEsrE,IAAK04S,GACLt3X,UAAU,qDAIdiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mIAAkIvO,SAAA,EAC/I6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,wDACV4+E,IAAK24S,GACL7uI,IAAI,MAENz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gFAA+EvO,SAAA,EAC5F6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK44S,GACLx3X,UAAU,+BACV0oP,IAAI,MAENz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0DAAyDvO,SAAA,EACtE6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,aAEH/pJ,UAAU,yLAAwLvO,SACnM,mBAYDwhB,EAAAA,GAAAA,MAAA,OAAAxhB,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,sCAG3BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iCAAgCvO,SAAA,EAC7C6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAACgvT,GAAU,CAAC5tU,KAAM,QAIpB4e,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAACmvT,GAAU,CAAC/tU,KAAM,QAGpB4e,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAACivT,GAAW,CAAC7tU,KAAM,QAGrB4e,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAAC+/W,GAAS,CAAC3+X,KAAM,uBAkB7Bue,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iIAAgIvO,SAAA,EAC7I6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK64S,GACL/uI,IAAI,GACJ1oP,UAAU,uDAEZsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sBAAqBvO,SAAC,gEAGpCwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,sDAAqDvO,SAAA,CAAC,qEAEjE6hB,EAAAA,GAAAA,KAAA,SAAM,6GAIRA,EAAAA,GAAAA,KAAA,OACEsrE,IAAK84S,GACLhvI,IAAI,GACJ1oP,UAAU,mCAEZsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qDAAoDvO,UACjE6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,sDACH1zI,OAAO,SACPrW,UAAU,6GAA4GvO,SACvH,oCA2FL6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wBAAuBvO,UACpC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,eAc5B6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,GAAEvO,UACf6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAK+4S,GAAejvI,IAAI,QAG/Bz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uBAAsBvO,SAAA,EACnCwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,YAAWvO,SAAA,CAAC,4CACkB,QAE5C6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,sFAI9BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kEAAiEvO,SAAA,EAC9EwhB,EAAAA,GAAAA,MAAA,UACEjT,UAAU,eACV2vJ,QAriCYz6E,UAExB/lD,OAAOpB,KADO,uDACK,SAAS,EAoiChB8oI,aAAcA,IAAMu9N,GAAkB,GACtC7gO,aAAcA,IAAM6gO,GAAkB,GAAO3iY,SAAA,EAE7C6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,wRACFgQ,KAAMqiX,EAAiB,QAAU,cAE/B,kBAGRlhX,EAAAA,GAAAA,MAAA,UACEjT,UAAU,eACV2vJ,QAtiCUz6E,UAEtB/lD,OAAOpB,KADO,kEACK,SAAS,EAqiChB8oI,aAAcA,IAAMq9N,GAAa,GACjC3gO,aAAcA,IAAM2gO,GAAa,GAAOziY,SAAA,EAExC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,wRACFgQ,KAAMmiX,EAAY,QAAU,cAE1B,4BAGRhhX,EAAAA,GAAAA,MAAA,UACEjT,UAAU,eACV2vJ,QAviCSz6E,UAErB/lD,OAAOpB,KADO,2DACK,SAAS,EAsiChB8oI,aAAcA,IAAMy9N,GAAoB,GACxC/gO,aAAcA,IAAM+gO,GAAoB,GAAO7iY,SAAA,EAE/C6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,wRACFgQ,KAAMuiX,EAAmB,QAAU,cAEjC,wBAKV/gX,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,sDACH1zI,OAAO,SAEPrW,UAAU,uGAAsGvO,SACjH,+BAGD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uCAGjBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCACfsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCACfsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,oBAC1BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKg5S,GAAOlvI,IAAI,QAEvBz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,gBACJwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,SAC3B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAcsP,GAAG,mBAAkB7d,UAC9C6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,+HACL//C,UAAU,0BAAyBvO,UAEnC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6zDACFgQ,KAAK,sBAOfwB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,mPASPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKi5S,GAAOnvI,IAAI,QAEvBz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,qBACJwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,SAC3B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAcsP,GAAG,mBAAkB7d,UAC9C6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,0IACL//C,UAAU,0BAAyBvO,UAEnC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6zDACFgQ,KAAK,sBAMfwB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,oNASPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKk5S,GAAOpvI,IAAI,QAEvBz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,mBACJwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,SAC3B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAcsP,GAAG,mBAAkB7d,UAC9C6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,sDACL//C,UAAU,0BAAyBvO,UAEnC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6zDACFgQ,KAAK,sBAMfwB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,uUAaXwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCACfsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCACfsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,cAC1BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKm5S,GAAUrvI,IAAI,QAE1Bz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,gBACJ6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,yBAC3B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,UACxB6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,2HACL//C,UAAU,0BAAyBvO,UAEnC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6zDACFgQ,KAAK,mBAKbwB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,sfAcPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKo5S,GAAUtvI,IAAI,QAE1Bz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,gBACJ6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,iEAG3B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,UACxB6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,2HACL//C,UAAU,0BAAyBvO,UAEnC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6zDACFgQ,KAAK,mBAKbwB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,uoBAgBPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKq5S,GAAUvvI,IAAI,QAE1Bz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAI,eACJ6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,SAAC,qCAC3B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,cAAavO,UACxB6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,yHACL//C,UAAU,0BAAyBvO,UAEnC6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6zDACFgQ,KAAK,mBAKbwB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,0VAqDd,kZCn4CP,GAlRc6hY,KACZ,MAAOI,EAAmBC,IAAwBpvM,EAAAA,EAAAA,WAAS,IACpDkwM,EAAgBC,IAAqBnwM,EAAAA,EAAAA,WAAS,IAmB9CkqF,EAAWypH,KADD5zM,EAAAA,EAAAA,QAAO,OACUC,EAAAA,EAAAA,WAAS,IAqB3C,OACEjxK,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACEwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,kCAAiCvO,SAAA,EAC5CiiY,IACAzgX,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0HAAyHvO,SAAA,EACtI6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,0FACvBsT,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,2FACvBsT,EAAAA,GAAAA,KAACijN,GAAM,QAGXtjN,EAAAA,GAAAA,MAAA,WAASjT,UAAU,kBAAiBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,UAAQigN,MAAM,qBAAqB6iK,OAAQC,MAC3C/iX,EAAAA,GAAAA,KAAA,UAAQigN,MAAM,sBAAsB6iK,OAAQ+B,MAC5C7kX,EAAAA,GAAAA,KAAA,OACEsrE,IAAK23S,GACL7tI,IAAI,aACJ1oP,UAAU,gBACVm2X,OA3CiBhxK,IACzBwuK,GAAqB,EAAK,EA2ClBn3W,MAAO,CAAE3K,QAAS6hX,EAAoB,QAAU,cAGpDzgX,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iCAAgCvO,SAAA,EAC7CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uBAAsBvO,SAAC,0CAGrC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,qBAAoBvO,SAAC,mbAWpCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uBAAsBvO,SAAA,EACnCwhB,EAAAA,GAAAA,MAAA,WAASjT,UAAU,GAAEvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,0FACvBsT,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,2FAEvBsT,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKw5S,GAAYp4X,UAAU,kBAAkB0oP,IAAI,SAGxDp1O,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAGjBsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4FAA2FvO,UACxGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gEAA+DvO,SAAA,EAC5E6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,qBAAoBvO,SAAC,+BAMnCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kCAAiCvO,SAAA,EAe9C6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAKy5S,GACLr4X,UAAU,yCAIZsT,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,oFAAmFvO,UAE7F6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qIAAoIvO,UACjJ6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6HAA4HvO,SAAC,4HAmCtJwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0BAAyBvO,SAAA,EACtC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,6BAA4BvO,SAAC,mCAI3CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kBAAiBvO,SAAA,EAC9BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,EACtD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mBAAkBvO,SAAC,gCACjC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,qDAAoDvO,SAAC,+GAKpEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iCAAgCvO,SAAA,EAC7C6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAACgvT,GAAU,CAAC5tU,KAAM,QAIpB4e,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAACmvT,GAAU,CAAC/tU,KAAM,QAGpB4e,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAACivT,GAAW,CAAC7tU,KAAM,QAGrB4e,EAAAA,GAAAA,KAAA,KACEysC,KAAMsiR,GACNhsT,OAAO,SACPyhQ,IAAI,sBACJ93Q,UAAU,0CAAyCvO,UAEnD6hB,EAAAA,GAAAA,KAAC+/W,GAAS,CAAC3+X,KAAM,WAGrB4e,EAAAA,GAAAA,KAAA,OAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK05S,GACL5vI,IAAI,GACJ1oP,UAAU,iCAwDrB,ECvBP,GAhQcszX,KAEVhgX,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACEwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,2DAA0DvO,SAAA,EACvEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1C6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK64S,GACL/uI,IAAI,GACJ1oP,UAAU,uDAEZsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,UAC1B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,oeAU9B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,YAAWvO,SAAC,gDAGzB6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,sDACH1zI,OAAO,SAEPrW,UAAU,uGAAsGvO,SACjH,kCAKH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8BAA6BvO,UAC1C6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAK25S,GAAkB7vI,IAAI,QAElCz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+BAA8BvO,SAAA,EAC3C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,SAAC,kCAC1B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iBAAgBvO,SAAC,slBAW9B6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,YAAWvO,SAAC,gEAGzB6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,sDACH1zI,OAAO,SAEPrW,UAAU,uGAAsGvO,SACjH,kCAmJH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wBAAuBvO,UACpC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAK45S,GAAa9vI,IAAI,QAG7Bz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gIAA+HvO,SAAA,EAM5I6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sBAAqBvO,SAAC,iEAGpCwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,sDAAqDvO,SAAA,CAAC,qEAEjE6hB,EAAAA,GAAAA,KAAA,SAAM,6GAIRA,EAAAA,GAAAA,KAAA,OACEsrE,IAAK84S,GACLhvI,IAAI,GACJ1oP,UAAU,mCAEZiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qDAAoDvO,SAAA,EACjE6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,sDACH1zI,OAAO,SACPrW,UAAU,6GAA4GvO,SACvH,+BAGDwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,uCAAsCvO,SAAA,CAAC,sCACd,KACpCwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CACNtiT,OAAO,SACP0zI,GAAG,oCACH/pJ,UAAU,uDAAsDvO,SAAA,CACjE,aACY,OACH,4BAId6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAK65S,GAAe/vI,IAAI,GAAG1oP,UAAU,oCC5PpD,GAVc8I,IAAkB,IAAjB,UAAC9I,GAAU8I,EACxB,OACEmK,EAAAA,GAAAA,MAAA,OAAKjT,UAAW,mDAAmDA,GAAwB,aAAavO,SAAA,EACtG6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,2CAA0CvO,SAAC,2DACxD6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,eAAe/pJ,UAAU,sIAAqIvO,SAAC,2BACvK,EC0FV,GAzFcqX,IAAyB,IAAxB,MAAEjZ,EAAK,QAAEwD,GAASyV,EAC/B,MAAMgpT,EAAWR,MACVonE,IAAen0M,EAAAA,EAAAA,UAAS,CAC7B,CAAEjsK,MAAO,aAAcqgX,QAAQ,GAC/B,CAAErgX,MAAO,QAASqgX,QAAQ,GAC1B,CAAErgX,MAAO,gBAAiBqgX,QAAQ,GAClC,CAAErgX,MAAO,UAAWqgX,QAAQ,GAC5B,CAAErgX,MAAO,WAAYqgX,QAAQ,GAC7B,CAAErgX,MAAO,aAAcqgX,QAAQ,GAC/B,CAAErgX,MAAO,SAAUqgX,QAAQ,MAEtB39W,EAAQ49W,IAAar0M,EAAAA,EAAAA,UAAS,GAuCrC,OAHAN,EAAAA,EAAAA,YAAU,KACJp0L,GAAO+oY,GAAW/oY,EAAM,GAC3B,CAACA,KAEFojB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+GAA8GvO,SAAA,EAC3H6hB,EAAAA,GAAAA,KAAA,MACEtT,UAAU,gGACV,cAAY,UAASvO,SAET,OAAXinY,QAAW,IAAXA,OAAW,EAAXA,EAAa3iY,KAAI,CAAC+nM,EAAUpvM,KAEzB4kB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAeqT,KAAK,MAAK5hB,UACrC6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,IACL4vG,QAAU3gK,GA7CH6pY,EAAChjX,EAAOjB,KAG3B,OAFAq0D,QAAQ/qB,IAAItpC,GACZiB,EAAMi2J,iBACEl3J,GACN,KAAK,EACHk9S,EAAS,2BACT,MACF,KAAK,EACHA,EAAS,sBACT,MACF,KAAK,EACHA,EAAS,8BACT,MACF,KAAK,EACHA,EAAS,yBACT,MACF,KAAK,EACHA,EAAS,0BACT,MACF,KAAK,EACHA,EAAS,4BACT,MACF,KAAK,EACHA,EAAS,wBACT,MACF,QACEA,EAAS,iBAEb,EAiB4B+mE,CAAa7pY,EAAGN,GAChC,eAAcssB,IAAWtsB,EAAI,OAAS,GACtCsR,UAAW,iDACTgb,IAAWtsB,EAAI,aAAe,IAC7B+C,SAEO,OAARqsM,QAAQ,IAARA,GAAAA,EAAU66L,QAGV1lX,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACW,OAARqsM,QAAQ,IAARA,OAAQ,EAARA,EAAUxlL,OACXhF,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,uDAAsDvO,SAAC,mBAJjE,OAARqsM,QAAQ,IAARA,OAAQ,EAARA,EAAUxlL,SAVU5pB,QAwBhC4kB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mBAAkBvO,SAC9B4B,IAAoBigB,EAAAA,GAAAA,KAACwlX,GAAQ,CAAC94X,UAAU,iBAEvC,8RCrCV,GArDkB8I,IAAe,IAADiwX,EAAAC,EAAAC,EAAA,IAAb,KAAE/4W,GAAMpX,EACzB,OACEmK,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yDAAwDvO,SAAA,EACrE6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,kMACvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,MAAKvO,SAAA,EAClB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mFAAkFvO,UAC/F6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAS,OAAJ1+D,QAAI,IAAJA,GAAoB,QAAhB64W,EAAJ74W,EAAMg5W,sBAAc,IAAAH,OAAhB,EAAJA,EAAsB7jX,IAC3BlV,UAAU,4FAGdiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2EAA0EvO,SAAA,EACvFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8CAA6CvO,SACpD,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAMi5W,YAEJ,OAAJj5W,QAAI,IAAJA,GAAsB,QAAlB84W,EAAJ94W,EAAMk5W,wBAAgB,IAAAJ,OAAlB,EAAJA,EAAwBjjY,KAAI,CAACmqB,EAAMxxB,KAClC4kB,EAAAA,GAAAA,KAAA,OAEE+tJ,wBAAyB,CACvB2W,OAAQ93J,GAGVlgB,UAAU,iIALLtR,SAcT4kB,EAAAA,GAAAA,KAAA,KACEysC,KACE,gBACqB,eAAf,OAAJ7/B,QAAI,IAAJA,OAAI,EAAJA,EAAM49K,UAA2B,aAAe,YAC1C,OAAJ59K,QAAI,IAAJA,OAAI,EAAJA,EAAMm5W,WAAe,OAAJn5W,QAAI,IAAJA,OAAI,EAAJA,EAAM0mO,QAAW,OAAJ1mO,QAAI,IAAJA,GAAe,QAAX+4W,EAAJ/4W,EAAMi5W,iBAAS,IAAAF,OAAX,EAAJA,EAC9BliY,MAAM,KACPzD,KAAK,KACLkK,iBAAmB,KAExBwC,UAAU,oLAAmLvO,SAEzK,eAAf,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM49K,UAA2B,gBAAkB,oBAK5DxqL,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,qMACnB,ECnBV,GA7BkB8I,IAAe,IAAd,KAAEoX,GAAMpX,EACzB,OACEmK,EAAAA,GAAAA,MAAC0lT,GAAO,CACN34T,UAAU,wFACV+pJ,GAAQ,OAAJ7pI,QAAI,IAAJA,OAAI,EAAJA,EAAMo5W,KAAK7nY,SAAA,EAEfwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,MAAKvO,SAAA,EAClB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yEAAwEvO,UACrF6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAS,OAAJ1+D,QAAI,IAAJA,OAAI,EAAJA,EAAM2iJ,IACX7iK,UAAU,uGAGdsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yFAAwFvO,UACrGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,YAAWvO,SAAA,EACxB6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8CAA6CvO,SACpD,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAMm2K,SAET/iL,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,yCAAwCvO,SAC9C,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM4wG,gBAKfx9G,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,0IACf,ECrBd,GAJwB8I,IAAqB,IAApB,KAAEoX,EAAI,KAAE3uB,GAAMuX,EACrC,MAAgB,UAATvX,GAAmB+hB,EAAAA,GAAAA,KAACimX,GAAS,CAACr5W,KAAMA,KAAW5M,EAAAA,GAAAA,KAACkmX,GAAS,CAACt5W,KAAMA,GAAQ,ECgBjF,GAnBqBpX,IAAe,IAAd,KAAEoX,GAAMpX,EAC1B,OACImK,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACvC6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,8DAA6DvO,UACxE6hB,EAAAA,GAAAA,KAAA,OACIsrE,IAAS,OAAJ1+D,QAAI,IAAJA,OAAI,EAAJA,EAAM2iJ,IACX7iK,UAAU,+CAGlBsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,qEAAoEvO,SACzE,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAMm2K,SAEX/iL,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,0DAAyDvO,SAC7D,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM4wG,SAET,WCmBEp2G,GAAIA,GAAA,QAAA6D,EAAA9kB,UAAA3M,OAA+B2xB,EAAAnoB,MAAAioB,EAAA,EAAAA,EAAA,KAAAvvB,EAAA,EAAAA,EAAAuvB,EAAAvvB,IAAAyvB,EAAAzvB,EAAA,GAAAyK,UAAAzK,GAQtB,MAElByP,MAAA,8BACqBic,GAC7B+D,EAAK3xB,OAAS,IAAM2xB,EAAK1oB,KAAI,SAAA2kB,GAAA,UAASA,EAAA,OAAMpnB,KAAK,KAAO,iECvC3CirB,GAAQ7D,GAAA,QACdA,KAAWA,EAAMs1E,GAAA,UAKXvxE,GAAY/D,GAAA,IAAA6D,EAAA,QACtB7D,IAAA,SAawBA,GAAA,IACxBA,GAA0B,iBAAVA,EAAoB,OAAO,MAC1C6D,EAAQ5uB,OAAOq9B,eAAetS,GAAA,GACtB,OAAV6D,EAAA,SACI,IAEFE,EACL9uB,OAAOsX,eAAe1Q,KAAKgoB,EAAO,gBAAkBA,EAAMvlB,YAAA,OAEvDylB,IAAS9uB,QAGG,mBAAR8uB,GACPy7G,SAASlgI,SAASzD,KAAKkoB,KAAUyuK,EAAA,CA1B7B,CAEUxyK,IACdpkB,MAAMiI,QAAQmc,MACZA,EAAMm2B,QAAA,QAAAtyB,EACN7D,EAAM1hB,mBAAA,IAAAulB,OAAA,EAANA,EAAoBsyB,MACtBp1B,GAAMf,IACN5Z,GAAM4Z,GAAA,CA0DR,SAAgBhsB,GAAKgsB,EAAU6D,EAAWE,QAAA,IAAAA,IAAAA,GAAA,GAAiB,IACtDguG,GAAY/xG,IACb+D,EAAiB9uB,OAAO4pB,KAAOkgX,IAAS/+W,GAAK1sB,SAAQ,SAAAgB,GACjDyvB,GAAiC,iBAARzvB,GAAkBuvB,EAAKvvB,EAAK0rB,EAAI1rB,GAAM0rB,EAAA,IAGrEA,EAAI1sB,SAAQ,SAACywB,EAAYzvB,GAAA,OAAeuvB,EAAKvvB,EAAOyvB,EAAO/D,EAAA,aAK7C+xG,GAAY/xG,GAAA,IAErB6D,EAAgC7D,EAAMs1E,IAAA,OACrCzxE,EACJA,EAAM7vB,EAAQ,EACb6vB,EAAM7vB,EAAQ,EACb6vB,EAAM7vB,EACR4H,MAAMiI,QAAQmc,GAAA,EAEde,GAAMf,GAAA,EAEN5Z,GAAM4Z,GAAA,aAMMoE,GAAIpE,EAAY6D,GAAA,WACxBkuG,GAAY/xG,GAChBA,EAAMiE,IAAIJ,GACV5uB,OAAO9B,UAAUoZ,eAAe1Q,KAAKmkB,EAAO6D,EAAA,UAIhC1b,GAAI6X,EAA2B6D,GAAA,WAEvCkuG,GAAY/xG,GAA0BA,EAAMllB,IAAI+oB,GAAQ7D,EAAM6D,EAAA,CAItE,SAAgB5C,GAAIjB,EAAY6D,EAA6BE,GAAA,IACtDzvB,EAAIy9H,GAAY/xG,GAAA,IAClB1rB,EAAoB0rB,EAAMjlB,IAAI8oB,EAAgBE,GAAA,IACzCzvB,EACR0rB,EAAM49B,IAAI75B,GACJ/D,EAAM6D,GAAkBE,CAAA,UAIhBkb,GAAGjf,EAAQ6D,GAAA,OAEtB7D,IAAM6D,EACI,IAAN7D,GAAW,EAAIA,GAAM,EAAI6D,EAEzB7D,GAAMA,GAAK6D,GAAMA,CAAA,UAKV9C,GAAMf,GAAA,OACd62E,IAAU72E,aAAkB8qH,GAAA,UAIpB1kI,GAAM4Z,GAAA,OACd+e,IAAU/e,aAAkBsR,GAAA,UAGpBlJ,GAAOpI,GAAA,OACfA,EAAM+xG,GAAS/xG,EAAM+D,CAAA,UAIb/C,GAAYhB,GAAA,GACvBpkB,MAAMiI,QAAQmc,GAAO,OAAOpkB,MAAMzI,UAAU6C,MAAM6F,KAAKmkB,GAAA,IACrD6D,EAAcm7W,GAA0Bh/W,UACvC6D,EAAYyxE,IAAA,QACfvxE,EAAOg7W,GAAQl7W,GACVvvB,EAAI,EAAGA,EAAIyvB,EAAK3xB,OAAQkC,IAAK,KAC/BN,EAAW+vB,EAAKzvB,GAChBy9H,EAAOluG,EAAY7vB,IAAA,IACrB+9H,EAAK7hE,WACR6hE,EAAK7hE,UAAA,EACL6hE,EAAKn7F,cAAA,IAKFm7F,EAAKj3H,KAAOi3H,EAAKh3H,OACpB8oB,EAAY7vB,GAAO,CAClB4iC,cAAA,EACAs5B,UAAA,EACA/mD,WAAY4oH,EAAK5oH,WACjBhU,MAAO6qB,EAAKhsB,IAAA,QAGRiB,OAAOoI,OAAOpI,OAAOq9B,eAAetS,GAAO6D,EAAA,UAWnCzc,GAAU4Y,EAAU1rB,GAAA,gBAAAA,IAAAA,GAAA,GAC/B8F,GAAS4lB,IAAQ6D,GAAQ7D,KAAS+D,GAAY/D,KAC9C+xG,GAAY/xG,GAAO,IACtBA,EAAIjlB,IAAMilB,EAAI49B,IAAM59B,EAAItK,MAAQsK,EAAIg4B,OAASnzC,IAE9C5P,OAAOshI,OAAOv2G,GACV1rB,GAAMN,GAAKgsB,GAAK,SAACA,EAAK6D,GAAA,OAAUzc,GAAOyc,GAAA,EAAO,QALa7D,CAAA,CAShE,SAASnb,KACRmb,GAAI,YAGW5lB,GAAS4lB,GAAA,OACb,MAAPA,GAA8B,iBAARA,GAEnB/qB,OAAOqhI,SAASt2G,EAAA,UCxKRsI,GACfzE,GAAA,IAEME,EAASk7W,GAAQp7W,GAAA,OAClBE,GACJ/D,GAAI,GAAI6D,GAGFE,CAAA,UAGQoE,GACfnI,EACA6D,GAEKo7W,GAAQj/W,KAAYi/W,GAAQj/W,GAAa6D,EAAA,CClC/C,SAAgBisB,KAAA,OAERqgJ,EAAA,UAkBQl2L,GACf+lB,EACA6D,GAEIA,IACHyE,GAAU,WACVtI,EAAMoE,EAAW,GACjBpE,EAAMe,EAAkB,GACxBf,EAAM5Z,EAAiByd,EAAA,UAITwuG,GAAYryG,GAC3Bm3E,GAAWn3E,GACXA,EAAMoI,EAAQ90B,QAAQojD,IAEtB12B,EAAMoI,EAAU,cAGD+uE,GAAWn3E,GACtBA,IAAUmwK,KACbA,GAAenwK,EAAMgB,EAAA,UAIPuf,GAAWvgB,GAAA,OAClBmwK,GArCD,CACN/nK,EAAS,GACTpH,EAmCkCmvK,GAlClCtrL,EAkCgDmb,EA/BhDmI,GAAA,EACA2nB,EAAoB,GAiCtB,SAAS4G,GAAY12B,GAAA,IACd6D,EAAoB7D,EAAMs1E,IAAA,IAE/BzxE,EAAM7vB,GAAA,IACN6vB,EAAM7vB,EAEN6vB,EAAM5pB,IACF4pB,EAAMwuG,GAAA,CAAW,UC9DPr6B,GAAcn0E,EAAavvB,GAC1CA,EAAMw7C,EAAqBx7C,EAAM8zB,EAAQh2B,OAAA,IACnC4B,EAAYM,EAAM8zB,EAAS,GAC3B2pG,OAAA,IAAaluG,GAAwBA,IAAW7vB,EAAA,OACjDM,EAAMuQ,EAAOsyF,GACjB7uE,GAAU,OAAOouB,EAAiBpiD,EAAOuvB,EAAQkuG,GAC9CA,GACC/9H,EAAUshG,IAAa0C,IAC1Bq6B,GAAY/9H,GACZ0rB,GAAI,IAED+D,GAAYF,KAEfA,EAASiyB,GAASxhD,EAAOuvB,GACpBvvB,EAAM0sB,GAAS7mB,GAAY7F,EAAOuvB,IAEpCvvB,EAAM8vB,GACTkE,GAAU,WAAWwtB,EACpB9hD,EAAUshG,IAAavxE,EACvBF,EACAvvB,EAAM8vB,EACN9vB,EAAMysB,IAKR8C,EAASiyB,GAASxhD,EAAON,EAAW,IAErCq+H,GAAY/9H,GACRA,EAAM8vB,GACT9vB,EAAM8R,EAAgB9R,EAAM8vB,EAAU9vB,EAAMysB,GAEtC8C,IAAWsiE,GAAUtiE,OAAA,CAAS,CAGtC,SAASiyB,GAAS91B,EAAuB6D,EAAYE,GAAA,GAEhD3pB,GAASypB,GAAQ,OAAOA,EAAA,IAEtBvvB,EAAoBuvB,EAAMyxE,IAAA,IAE3BhhG,EAAA,OACJN,GACC6vB,GACA,SAAC7vB,EAAK+9H,GAAA,OACL+c,GAAiB9uH,EAAW1rB,EAAOuvB,EAAO7vB,EAAK+9H,EAAYhuG,EAAA,OAGtDF,EAAA,GAGJvvB,EAAMw6I,IAAW9uH,EAAW,OAAO6D,EAAA,IAElCvvB,EAAM0jG,EAAA,OACV79F,GAAY6lB,EAAW1rB,EAAMyvB,GAAA,GACtBzvB,EAAMyvB,EAAA,IAGTzvB,EAAMohG,EAAY,CACtBphG,EAAMohG,GAAA,EACNphG,EAAMw6I,EAAOh/F,IAAA,IACPiiF,EAAA,IAELz9H,EAAMN,GAAA,IAAiCM,EAAMN,EACzCM,EAAMy9H,EAAQ/wG,GAAY1sB,EAAM4F,GACjC5F,EAAMy9H,EAKN3tG,EAAa2tG,EACb5pH,GAAA,EAAQ,IACR7T,EAAMN,IACTowB,EAAa,IAAIkN,IAAIygG,GACrBA,EAAOr8G,QACPvN,GAAA,GAEDnU,GAAKowB,GAAY,SAACP,EAAK7vB,GAAA,OACtB86I,GAAiB9uH,EAAW1rB,EAAOy9H,EAAQluG,EAAK7vB,EAAY+vB,EAAM5b,EAAA,IAGnEhO,GAAY6lB,EAAW+xG,GAAA,GAEnBhuG,GAAQ/D,EAAUoE,GACrBkE,GAAU,WAAWquB,EACpBriD,EACAyvB,EACA/D,EAAUoE,EACVpE,EAAUe,EAAA,QAINzsB,EAAMy9H,CAAA,CAGd,SAAS+c,GACRx6I,EACAN,EACA+9H,EACA5pH,EACA82B,EACAle,EACA3a,GAAA,GAGIyd,GAAQob,GAAa,KASlB7W,EAAM0tB,GAASxhD,EAAW2qC,EAP/Ble,GACA/sB,GAAA,IACAA,EAAaA,IACZowB,GAAKpwB,EAA8CmhG,EAAYhtF,GAC7D4Y,EAAUpkB,OAAOwL,QAAA,GACjB,GAGJ8Y,GAAI8wG,EAAc5pH,EAAMigB,IAGpBvE,GAAQuE,GAEL,OADN9zB,EAAU6zB,GAAA,CAAiB,MAElB/hB,GACV2rH,EAAan0E,IAAI3e,GAAA,GAGdlb,GAAYkb,KAAgB7kC,GAAS6kC,GAAa,KAChD3qC,EAAUuQ,EAAOgxF,GAAevhG,EAAUw7C,EAAqB,EAAG,OAQvEgG,GAASxhD,EAAW2qC,GAEfjrC,GAAgBA,EAAY86I,EAAO9tH,GACvC7mB,GAAY7F,EAAW2qC,EAAA,EAI1B,SAAS9kC,GAAY6lB,EAAmB6D,EAAYE,QAAA,IAAAA,IAAAA,GAAA,IAE9C/D,EAAMgB,GAAWhB,EAAMnb,EAAOgxF,GAAe71E,EAAMmI,GACvD/gB,GAAOyc,EAAOE,EAAA,CCqEhB,SAAS1pB,GAAK2lB,EAAgB6D,GAAA,IACvBE,EAAQ/D,EAAMs1E,IAAA,OACLvxE,EAAQqE,GAAOrE,GAAS/D,GACzB6D,EAAA,CAcf,SAAS6xE,GACR11E,EACA6D,GAAA,GAGMA,KAAQ7D,EAAA,QACV+D,EAAQ9uB,OAAOq9B,eAAetS,GAC3B+D,GAAO,KACPzvB,EAAOW,OAAOkvB,yBAAyBJ,EAAOF,GAAA,GAChDvvB,EAAM,OAAOA,EACjByvB,EAAQ9uB,OAAOq9B,eAAevO,EAAA,WAKhB7pB,GAAY8lB,GACtBA,EAAMg4E,IACVh4E,EAAMg4E,GAAA,EACFh4E,EAAMgB,GACT9mB,GAAY8lB,EAAMgB,GAAA,UAKLg1E,GAAYh2E,GACtBA,EAAM+xG,IACV/xG,EAAM+xG,EAAQ/wG,GAAYhB,EAAM+D,GAAA,CCtDlC,SAAgB4yB,GACf32B,EACA6D,EACAE,GAAA,IAGMzvB,EAAiBysB,GAAM8C,GAC1ByE,GAAU,UAAUsnE,EAAU/rE,EAAOE,GACrC3d,GAAMyd,GACNyE,GAAU,UAAU+9D,EAAUxiE,EAAOE,GACrC/D,EAAMm3E,EAAA,SDvLTn3E,EACA6D,GAAA,IAEME,EAAUnoB,MAAMiI,QAAQmc,GACxB1rB,EAAoB,CACzBN,EAAO+vB,EAAA,EAAkC,EAEzC+qH,EAAQjrH,EAASA,EAAOirH,EAASh/F,KAEjCkoD,GAAA,EAEAtC,GAAA,EAEAP,EAAW,CAAC,EAEZn0E,EAAS6C,EAETE,EAAO/D,EAEP9lB,EAAQ,KAER63H,EAAO,KAEP93H,EAAS,KACTs1F,GAAA,GASGv7F,EAAYM,EACZy9H,EAA2CuC,GAC3CvwG,IACH/vB,EAAS,CAACM,GACVy9H,EAAQl5E,IAAA,IAAAz0B,EAGe2mH,MAAMm0P,UAAUlrY,EAAQ+9H,GAAzC5pH,EAAAic,EAAA+6W,OAAQl+W,EAAAmD,EAAAq4Q,MAAA,OACfnoS,EAAM4F,EAAS+mB,EACf3sB,EAAM2F,EAAUkO,EACT8Y,CAAA,CC4IE,CACW4C,EAAOE,GACxBuE,GAAU,OAAO2zJ,EAAgBp4J,EAAOE,GAAA,OAE7BA,EAASA,EAAO+qH,EAASh/F,MACjC1nB,EAAQz1B,KAAK2B,GACZA,CAAA,UC9NQ6gG,GAAQ7gG,GAAA,OAClBuvB,GAAQvvB,IAAQ0rB,GAAI,GAAI1rB,GAI9B,SAAS0rB,EAAY6D,GAAA,IACfE,GAAYF,GAAQ,OAAOA,EAAA,IAE5BvvB,EADE8vB,EAAgCP,EAAMyxE,IAEtCr2D,EAAW8yF,GAAYluG,GAAA,GACzBO,EAAO,KAERA,EAAM4zE,IACN5zE,EAAMpwB,EAAQ,IAAMs0B,GAAU,OAAO49D,EAAY9hE,IAElD,OAAOA,EAAML,EAEdK,EAAMsxE,GAAA,EACNphG,EAAOuhG,GAAWhyE,EAAOob,GACzB7a,EAAMsxE,GAAA,CAAa,MAEnBphG,EAAOuhG,GAAWhyE,EAAOob,GAAA,OAG1BjrC,GAAKM,GAAM,SAACuvB,EAAKE,GACZK,GAASjc,GAAIic,EAAML,EAAOF,KAASE,GACvC9C,GAAI3sB,EAAMuvB,EAAK7D,EAAY+D,GAAA,QAGrBkb,EAA4B,IAAI3N,IAAIh9B,GAAQA,CAAA,CAxBpD,CAHoBA,EAAA,CA8BpB,SAASuhG,GAAW71E,EAAY6D,GAAA,OAEvBA,GAAA,cAEC,IAAIinH,IAAI9qH,GAAA,cAGRpkB,MAAM/G,KAAKmrB,GAAA,OAEbgB,GAAYhB,EAAA,UClCJ4vE,KAAA,SA8EN7rE,EACR/D,EACA6D,GAAA,IAEIE,EAAOhD,EAAYf,GAAA,OACnB+D,EACHA,EAAK5a,WAAa0a,EAElB9C,EAAYf,GAAQ+D,EAAO,CAC1B6S,cAAA,EACAztB,WAAA0a,EACA/oB,IAAA,eACO+oB,EAAQ9xB,KAAKujG,IAAA,OAGZg/B,GAAYx5H,IAAI+oB,EAAO7D,EAAA,EAE/BjlB,IAAA,SAAe8oB,GAAA,IACRE,EAAQhyB,KAAKujG,IAGnBg/B,GAAYv5H,IAAIgpB,EAAO/D,EAAM6D,EAAA,GAIzBE,CAAA,UAICzvB,EAAiB0rB,GAAA,IAKpB,IAAI6D,EAAI7D,EAAO5tB,OAAS,EAAGyxB,GAAK,EAAGA,IAAK,KACtCE,EAAkB/D,EAAO6D,GAAGyxE,IAAA,IAC7BvxE,EAAMi0E,EAAA,OACFj0E,EAAM/vB,GAAA,OAERmU,EAAgB4b,IAAQ7pB,GAAY6pB,GAAA,aAGpCguG,EAAiBhuG,IAAQ7pB,GAAY6pB,GAAA,WA6DrCguG,EAAiB/xG,GAAA,QAClB6D,EAAiB7D,EAAjB+D,EAAOA,EAAU/D,EAAV9lB,EAIR5F,EAAOyqY,GAAQh7W,GACZ/vB,EAAIM,EAAKlC,OAAS,EAAG4B,GAAK,EAAGA,IAAK,KACpC+9H,EAAWz9H,EAAKN,GAAA,GAClB+9H,IAAQz8B,GAAA,KACNntF,EAAY0b,EAAMkuG,GAAA,YAEpB5pH,IAA4Bic,GAAIP,EAAOkuG,GAAA,SACnC,IAKD9wG,EAAQ8C,EAAOguG,GACfhxG,EAAoBE,GAASA,EAAMq0E,IAAA,GACrCv0E,EAAQA,EAAMgD,IAAU5b,GAAa82B,GAAGhe,EAAO9Y,GAAA,QAC3C,MAOJ/B,IAAgByd,EAAMyxE,IAAA,OACrBhhG,EAAKlC,SAAW2sY,GAAQl7W,GAAOzxB,QAAUgU,EAAc,EAAI,YAG1D+B,EAAgB6X,GAAA,IACjB6D,EAAU7D,EAAV9lB,EAAA,GACH2pB,EAAOzxB,SAAW4tB,EAAM+D,EAAM3xB,OAAQ,OAAO,MAS3C2xB,EAAa9uB,OAAOkvB,yBACzBN,EACAA,EAAOzxB,OAAS,MAGb2xB,IAAeA,EAAWjpB,IAAK,OAAO,MAErC,IAAIxG,EAAI,EAAGA,EAAIuvB,EAAOzxB,OAAQkC,IAAA,IAC7BuvB,EAAOtX,eAAejY,GAAI,OAAO,UAGhC,CAU0C,IAxK5CysB,EAAoD,CAAC,EA2K3DoH,GAAW,MAAO,CACjB8zJ,EAAA,SA5MAj8J,EACA6D,GAAA,IAEMvvB,EAAUsH,MAAMiI,QAAQmc,GACxBhsB,EAAA,SA1BiBgsB,EAAkB6D,GAAA,GACrC7D,EAAS,SACN1rB,EAAYsH,MAAMioB,EAAKzxB,QACpB4B,EAAI,EAAGA,EAAI6vB,EAAKzxB,OAAQ4B,IAChCiB,OAAOiU,eAAe5U,EAAO,GAAKN,EAAG+vB,EAAc/vB,GAAA,IAAG,OAChDM,CAAA,KAEDy9H,EAAcitQ,GAA0Bn7W,UACvCkuG,EAAYz8B,IAAA,QACblxE,EAAO26W,GAAQhtQ,GACZ5pH,EAAI,EAAGA,EAAIic,EAAKhyB,OAAQ+V,IAAK,KAC/B8Y,EAAWmD,EAAKjc,GACtB4pH,EAAY9wG,GAAO8C,EAClB9C,EACAjB,KAAa+xG,EAAY9wG,GAAK9X,WAAA,QAGzBlU,OAAOoI,OAAOpI,OAAOq9B,eAAezO,GAAOkuG,EAAA,CAS7C,CAAuBz9H,EAAS0rB,GAEhC+xG,EAAwC,CAC7C/9H,EAAOM,EAAA,EAAgC,EACvCw6I,EAAQjrH,EAASA,EAAOirH,EAASh/F,KACjCkoD,GAAA,EACAtC,GAAA,EACAP,EAAW,CAAC,EACZn0E,EAAS6C,EAETE,EAAO/D,EAEP9lB,EAAQlG,EACR+9H,EAAO,KACPM,GAAA,EACA9iC,GAAA,GAAW,OAGZt6F,OAAOiU,eAAelV,EAAOshG,GAAa,CACzCngG,MAAO48H,EAEP7hE,UAAA,IAEMl8D,CAAA,EAkLP0iD,EAAA,SAvPA12B,EACA+D,EACAguG,GAEKA,EASJluG,GAAQE,IACPA,EAAOuxE,IAA0Bw5C,IAAW9uH,GAE7C1rB,EAAiB0rB,EAAMoI,IAXnBpI,EAAMoE,GAAA,SAwHHpE,EAAuB6D,GAAA,GAC1BA,GAA4B,iBAAXA,EAAA,KAChBE,EAA8BF,EAAOyxE,IAAA,GACtCvxE,EAAA,KACEzvB,EAAmCyvB,EAAnCA,EAAOguG,EAA4BhuG,EAA5B7pB,EAAQ+mB,EAAoB8C,EAApBoxE,EAAWl2D,EAASlb,EAAT/vB,EAAA,OAC7BirC,EAKHjrC,GAAK+9H,GAAQ,SAAAluG,GACPA,IAAgByxE,UAAA,IAEhBhhG,EAAcuvB,IAAuBO,GAAI9vB,EAAOuvB,GAGzC5C,EAAU4C,IAErB7D,EAAuB+xG,EAAOluG,KAJ9B5C,EAAU4C,IAAA,EACV3pB,GAAY6pB,IAAA,IAOd/vB,GAAKM,GAAO,SAAA0rB,QAAA,IAEP+xG,EAAO/xG,IAAuBoE,GAAI2tG,EAAQ/xG,KAC7CiB,EAAUjB,IAAA,EACV9lB,GAAY6pB,GAAA,SAGR,GAAI,IAAAkb,EAA8B,IACpC92B,EAAgB4b,KACnB7pB,GAAY6pB,GACZ9C,EAAU7uB,QAAA,GAGP2/H,EAAO3/H,OAASkC,EAAMlC,OAAA,IACpB,IAAI2uB,EAAIgxG,EAAO3/H,OAAQ2uB,EAAIzsB,EAAMlC,OAAQ2uB,IAAKE,EAAUF,IAAA,OAAK,IAE7D,IAAI3a,EAAI9R,EAAMlC,OAAQgU,EAAI2rH,EAAO3/H,OAAQgU,IAAK6a,EAAU7a,IAAA,EAAK,QAI7DgiB,EAAMxzB,KAAK4qB,IAAIuyG,EAAO3/H,OAAQkC,EAAMlC,QAEjC4uB,EAAI,EAAGA,EAAIoH,EAAKpH,IAEnB+wG,EAAOxlH,eAAeyU,KAC1BC,EAAUD,IAAA,QAAK,IAEZC,EAAUD,IAAkBhB,EAAuB+xG,EAAO/wG,GAAA,IAzKrD,CACchB,EAAMoI,EAAS,IAGvC9zB,EAAiB0rB,EAAMoI,GAAA,EA+OxB89D,EAAA,SAboBlmE,GAAA,WACbA,EAAMhsB,EACV+9H,EAAiB/xG,GACjB7X,EAAgB6X,EAAA,aC9OLqmE,KAAA,SA6PN/xF,EAAoB0rB,GAAA,IACvB+D,GAAY/D,GAAM,OAAOA,EAAA,GAC1BpkB,MAAMiI,QAAQmc,GAAM,OAAOA,EAAI3kB,IAAI/G,GAAA,GACnCysB,GAAMf,GACT,OAAO,IAAI8qH,IACVlvI,MAAM/G,KAAKmrB,EAAIqD,WAAWhoB,KAAI,SAAA2kB,GAAA,MAAY,CAAAA,EAAC,GAAG1rB,EAAA0rB,EAAA,YAE5C5Z,GAAM4Z,GAAM,OAAO,IAAIsR,IAAI11B,MAAM/G,KAAKmrB,GAAK3kB,IAAI/G,IAAA,IAC7CuvB,EAAS5uB,OAAOoI,OAAOpI,OAAOq9B,eAAetS,IAAA,IAC9C,IAAMhsB,KAAOgsB,EAAK6D,EAAO7vB,GAAOM,EAAoB0rB,EAAIhsB,IAAA,OACzDowB,GAAIpE,EAAKm2B,MAAYtyB,EAAOsyB,IAAan2B,EAAIm2B,KAC1CtyB,CAAA,UAGC5C,EAA2BjB,GAAA,OAC/B6D,GAAQ7D,GACJ1rB,EAAoB0rB,GACdA,CAAA,KA5QTif,EAAM,MA+QZ9W,GAAW,UAAW,CACrB6pG,EAAA,SAlGyBnuG,EAAUE,GAAA,OACnCA,EAAQzwB,SAAQ,SAAAywB,GAAA,QACR/vB,EAAY+vB,EAAZjL,KAAMsL,EAAML,EAANq7W,GAETn+W,EAAY4C,EACP9C,EAAI,EAAGA,EAAI/sB,EAAK5B,OAAS,EAAG2uB,IAAK,KACnC3a,EAAa2rH,GAAY9wG,GAC3BmH,EAAIp0B,EAAK+sB,GACI,iBAANqH,GAA+B,iBAANA,IACnCA,EAAI,GAAKA,GAAA,IAKRhiB,GAAA,IAAkCA,GAC5B,cAANgiB,GAA2B,gBAANA,GAEtBpI,GAAI,IACe,mBAATiB,GAA6B,cAANmH,GAAmBpI,GAAI,IAErC,iBADpBiB,EAAO9Y,GAAI8Y,EAAMmH,KACapI,GAAI,GAAIhsB,EAAK4E,KAAK,UAG3CooB,EAAO+wG,GAAY9wG,GACnB7Z,EAAQ9S,EAAoByvB,EAAM5uB,OAClC0P,EAAM7Q,EAAKA,EAAK5B,OAAS,UACvBgyB,GAAA,IAzMM,iBA2MJpD,GAAA,cAECC,EAAKlmB,IAAI8J,EAAKuC,GAAA,OAGrB4Y,GAAI,mBAMIiB,EAAKpc,GAAOuC,EAAA,KAElB63B,EAAA,OACIje,GAAA,aAES,MAARnc,EACJoc,EAAKtuB,KAAKyU,GACV6Z,EAAK09C,OAAO95D,EAAY,EAAGuC,GAAA,cAEvB6Z,EAAKlmB,IAAI8J,EAAKuC,GAAA,cAEd6Z,EAAK28B,IAAIx2C,GAAA,eAER6Z,EAAKpc,GAAOuC,EAAA,IAjOX,gBAoOH4Z,GAAA,cAECC,EAAK09C,OAAO95D,EAAY,iBAExBoc,EAAK+2B,OAAOnzC,GAAA,cAEZoc,EAAK+2B,OAAOj0B,EAAM5uB,OAAA,sBAEX8rB,EAAKpc,GAAA,QAGrBmb,GAAI,GAAIoE,GAAA,IAIJP,CAAA,EA6BP8yB,EAAA,SA7QA32B,EACA6D,EACAE,EACAzvB,GAAA,OAEQ0rB,EAAMhsB,GAAA,qCAgFdgsB,EACA6D,EACAE,EACAzvB,GAAA,IAEOy9H,EAAgB/xG,EAAhB+D,EAAOhD,EAASf,EAAT+xG,EACd/9H,GAAKgsB,EAAMm1E,GAAY,SAACn1E,EAAKhsB,GAAA,IACtBoS,EAAY+B,GAAI4pH,EAAO/xG,GACvBoI,EAAQjgB,GAAI4Y,EAAQf,GACpBgB,EAAMhtB,EAAyBowB,GAAI2tG,EAAO/xG,GAnGlC,UAmGmDif,EAjGpD,YAkGT74B,IAAcgiB,GApGJ,YAoGapH,EAAA,KACrB5Z,EAAOyc,EAASlnB,OAAOqjB,GAC7B+D,EAAQpxB,KApGK,WAoGAquB,EAAgB,CAACo+W,GAAAp+W,EAAIlI,KAAA1R,GAAQ,CAACg4X,GAAAp+W,EAAIlI,KAAA1R,EAAMjS,MAAAizB,IACrD9zB,EAAe3B,KACdquB,IAAOie,EACJ,CAACmgW,GAvGQ,SAuGItmX,KAAA1R,GAvGJ,WAwGT4Z,EACA,CAACo+W,GAAIngW,EAAKnmB,KAAA1R,EAAMjS,MAAO8rB,EAAwB7a,IAC/C,CAACg5X,GA5GS,UA4GItmX,KAAA1R,EAAMjS,MAAO8rB,EAAwB7a,IAAA,KAlG1C,CAKX4Z,EACA6D,EACAE,EACAzvB,GAAA,8BAgBH0rB,EACA6D,EACAE,EACAzvB,GAAA,IAEKN,EAAoBgsB,EAApB+D,EAAOguG,EAAa/xG,EAAbm1E,EACR/wE,EAAQpE,EAAM+xG,EAAA,GAGd3tG,EAAMhyB,OAAS4B,EAAM5B,OAAQ,KAAA+V,EAEd,CAACic,EAAOpwB,GAAxBA,EAAAmU,EAAA,GAAOic,EAAAjc,EAAA,OAAA4Y,EACoB,CAACzsB,EAAgByvB,GAA5CA,EAAAhD,EAAA,GAASzsB,EAAAysB,EAAA,OAIP,IAAI3a,EAAI,EAAGA,EAAIpS,EAAM5B,OAAQgU,IAAA,GAC7B2rH,EAAU3rH,IAAMge,EAAMhe,KAAOpS,EAAMoS,GAAI,KACpCgiB,EAAOvE,EAASlnB,OAAO,CAACyJ,IAC9B2d,EAAQpxB,KAAK,CACZysY,GAtDY,UAuDZtmX,KAAAsP,EAGAjzB,MAAO8rB,EAAwBmD,EAAMhe,MAEtC9R,EAAe3B,KAAK,CACnBysY,GA7DY,UA8DZtmX,KAAAsP,EACAjzB,MAAO8rB,EAAwBjtB,EAAMoS,KAAA,KAMnC,IAAI4a,EAAIhtB,EAAM5B,OAAQ4uB,EAAIoD,EAAMhyB,OAAQ4uB,IAAK,KAC3C5Z,EAAOyc,EAASlnB,OAAO,CAACqkB,IAC9B+C,EAAQpxB,KAAK,CACZysY,GAAIngW,EACJnmB,KAAA1R,EAGAjS,MAAO8rB,EAAwBmD,EAAMpD,KAAA,CAGnChtB,EAAM5B,OAASgyB,EAAMhyB,QACxBkC,EAAe3B,KAAK,CACnBysY,GAjFa,UAkFbtmX,KAAM+K,EAASlnB,OAAO,CAAC,WACvBxH,MAAOnB,EAAM5B,QAAA,CAjEZ,CAI2B4tB,EAAO6D,EAAUE,EAASzvB,GAAA,uBA4FxD0rB,EACA6D,EACAE,EACAzvB,GAAA,IAEKN,EAAgBgsB,EAAhB+D,EAAOguG,EAAS/xG,EAAT+xG,EAER3tG,EAAI,EACRpwB,EAAMV,SAAQ,SAAC0sB,GAAA,IACT+xG,EAAO9tG,IAAIjE,GAAQ,KACjBhsB,EAAO6vB,EAASlnB,OAAO,CAACynB,IAC9BL,EAAQpxB,KAAK,CACZysY,GA5HW,SA6HXtmX,KAAA9kB,EACAmB,MAAA6qB,IAED1rB,EAAemyC,QAAQ,CACtB24V,GAAIngW,EACJnmB,KAAA9kB,EACAmB,MAAA6qB,GAAA,CAGFoE,GAAA,IAEDA,EAAI,EACJ2tG,EAAOz+H,SAAQ,SAAC0sB,GAAA,IACVhsB,EAAMiwB,IAAIjE,GAAQ,KAChB+xG,EAAOluG,EAASlnB,OAAO,CAACynB,IAC9BL,EAAQpxB,KAAK,CACZysY,GAAIngW,EACJnmB,KAAAi5G,EACA58H,MAAA6qB,IAED1rB,EAAemyC,QAAQ,CACtB24V,GAlJW,SAmJXtmX,KAAAi5G,EACA58H,MAAA6qB,GAAA,CAGFoE,GAAA,IAnIuD,CAGpDpE,EACD6D,EACAE,EACAzvB,GAAA,EAuPHwhD,EAAA,SArHA91B,EACA6D,EACAE,EACAzvB,GAEAyvB,EAAQpxB,KAAK,CACZysY,GApKc,UAqKdtmX,KAAM,GACN3jB,MAAO0uB,IAAgBsiE,QAAA,EAAsBtiE,IAE9CvvB,EAAe3B,KAAK,CACnBysY,GAzKc,UA0KdtmX,KAAM,GACN3jB,MAAO6qB,GAAA,IC1FF,IAAAs0E,GPnFJ67F,GQpBE/pG,GACa,oBAAX7zD,QAAiD,iBAAhBA,OAAO,KACnCskE,GAAwB,oBAARi0C,IAChB/rG,GAAwB,oBAARzN,IAChBslB,GACK,oBAAVm0F,YAAA,IACAA,MAAMm0P,WACM,oBAAZxoQ,QAKKvwC,GAAmBC,GAC7B7zD,OAAOuiG,IAAI,mBAAAxgC,GAAA,IACR,oBAAkBA,IAUXn+C,GAA2BiwC,GACrC7zD,OAAOuiG,IAAI,mBACV,qBAESx/B,GAA6BlP,GACvC7zD,OAAOuiG,IAAI,eACV,iBVAE09D,IUIa,oBAAVjgK,QAAyBA,OAAOE,SVJhB,GAAAx9B,OAAO9B,UAAUmL,aA4B7BygY,GACO,oBAAZroQ,SAA2BA,QAAQqmE,QACvCrmE,QAAQqmE,aAAA,IACD9nM,OAAOi3F,sBACd,SAAAlsE,GAAA,OACA/qB,OAAOq7F,oBAAoBtwE,GAAKrjB,OAC/B1H,OAAOi3F,sBAAsBlsE,GAAA,EAEH/qB,OAAOq7F,oBAEzB0uS,GACZ/pY,OAAOioM,2BACP,SAAmCl9K,GAAA,IAE5B6D,EAAW,CAAC,EAAD,OACjBk7W,GAAQ/+W,GAAQ1sB,SAAQ,SAAAywB,GACvBF,EAAIE,GAAO9uB,OAAOkvB,yBAAyBnE,EAAQ+D,EAAA,IAE7CF,CAAA,ECnEHo7W,GA4BF,CAAC,EGyDQ3qQ,GAAwC,CACpDx5H,IAAA,SAAIklB,EAAO6D,GAAA,GACNA,IAASyxE,GAAa,OAAOt1E,EAAA,IAE3B1rB,EAAS8zB,GAAOpI,GAAA,IACjBoE,GAAI9vB,EAAQuvB,GAAA,OAwInB,SAA2B7D,EAAmB6D,EAAaE,GAAA,IAAAzvB,EACpDN,EAAO0hG,GAAuB7xE,EAAQE,GAAA,OACrC/vB,EACJ,UAAWA,EACVA,EAAKmB,MAAA,QAAAb,EAGLN,EAAK8G,WAAA,IAAAxG,OAAA,EAALA,EAAUuH,KAAKmkB,EAAM9lB,QAAA,CACtB,CARJ,CAtI4B8lB,EAAO1rB,EAAQuvB,GAAA,IAEnC7vB,EAAQM,EAAOuvB,GAAA,OACjB7D,EAAM01E,IAAe3xE,GAAY/vB,GAC7BA,EAIJA,IAAUqG,GAAK2lB,EAAM+D,EAAOF,IAC/BmyE,GAAYh2E,GACJA,EAAM+xG,EAAOluG,GAAe8yB,GACnC32B,EAAM8uH,EAAOjqI,EACb7Q,EACAgsB,IAGKhsB,CAAA,EAERiwB,IAAA,SAAIjE,EAAO6D,GAAA,OACHA,KAAQuE,GAAOpI,EAAA,EAEvB+8K,QAAA,SAAQ/8K,GAAA,OACA02G,QAAQqmE,QAAQ30K,GAAOpI,GAAA,EAE/BjlB,IAAA,SACCilB,EACA6D,EACAE,GAAA,IAEMzvB,EAAOohG,GAAuBttE,GAAOpI,GAAQ6D,GAAA,GAC/C,MAAAvvB,OAAA,EAAAA,EAAMyG,IAAA,OAGTzG,EAAKyG,IAAIc,KAAKmkB,EAAM9lB,EAAQ6pB,IAAA,EACrB,IAEH/D,EAAMg4E,EAAW,KAGfhkG,EAAUqG,GAAK+tB,GAAOpI,GAAQ6D,GAE9BkuG,EAAiC,MAAA/9H,OAAA,EAAAA,EAAUshG,IAAA,GAC7Cy8B,GAAgBA,EAAahuG,IAAUA,EAAA,OAC1C/D,EAAM+xG,EAAOluG,GAAQE,EACrB/D,EAAMm1E,EAAUtxE,IAAA,GAAQ,EACjB,GAEJob,GAAGlb,EAAO/vB,UAAA,IAAa+vB,GAAuBK,GAAIpE,EAAM+D,EAAOF,IAClE,OAAO,EACRmyE,GAAYh2E,GACZ9lB,GAAY8lB,EAAA,QAIXA,EAAM+xG,EAAOluG,KAAUE,SAAA,IAEtBA,GAAuBF,KAAQ7D,EAAM+xG,IAEtClqH,OAAOE,MAAMgc,IAAUlc,OAAOE,MAAMiY,EAAM+xG,EAAOluG,MAKnD7D,EAAM+xG,EAAOluG,GAAQE,EACrB/D,EAAMm1E,EAAUtxE,IAAA,IAAQ,CAJhB,EAOTw7W,eAAA,SAAer/W,EAAO6D,GAAA,gBAEjBxpB,GAAK2lB,EAAM+D,EAAOF,IAAuBA,KAAQ7D,EAAM+D,GAC1D/D,EAAMm1E,EAAUtxE,IAAA,EAChBmyE,GAAYh2E,GACZ9lB,GAAY8lB,WAGLA,EAAMm1E,EAAUtxE,GAGpB7D,EAAM+xG,UAAc/xG,EAAM+xG,EAAMluG,IAAA,CAC7B,EAIRM,yBAAA,SAAyBnE,EAAO6D,GAAA,IACzBE,EAAQqE,GAAOpI,GACf1rB,EAAOoiI,QAAQvyG,yBAAyBJ,EAAOF,GAAA,OAChDvvB,EACE,CACN47D,UAAA,EACAt5B,aAAA,IAAc5W,EAAMhsB,GAA2C,WAAT6vB,EACtD1a,WAAY7U,EAAK6U,WACjBhU,MAAO4uB,EAAMF,IALIvvB,CAAA,EAQnB4U,eAAA,WACC8W,GAAI,KAELsS,eAAA,SAAetS,GAAA,OACP/qB,OAAOq9B,eAAetS,EAAM+D,EAAA,EAEpCsyG,eAAA,WACCr2G,GAAI,MAQA64B,GAA8C,CAAC,EACrD7kD,GAAKsgI,IAAa,SAACt0G,EAAK6D,GAEvBg1B,GAAW74B,GAAO,kBACjBjhB,UAAU,GAAKA,UAAU,GAAG,GACrB8kB,EAAGzkB,MAAMrN,KAAMgN,UAAA,KAGxB85C,GAAWwmV,eAAiB,SAASx7W,EAAOE,GAAA,OAGpC80B,GAAW99C,IAAKc,KAAK9J,KAAM8xB,EAAOE,OAAA,EAAM,EAEhD80B,GAAW99C,IAAM,SAAS8oB,EAAOE,EAAMzvB,GAAA,OAE/BggI,GAAYv5H,IAAKc,KAAK9J,KAAM8xB,EAAM,GAAIE,EAAMzvB,EAAOuvB,EAAM,SCpMpDy7W,GAAb,oBAAAhrY,EAKauvB,GAAA,IAAAvvB,EAAA,UAAA6iG,EAJWvgD,GAAA,KAAAi/C,GAAA,EAEA,KAAA0pS,QA4BH,SAAC17W,EAAW7vB,EAAc+9H,GAAA,GAEzB,mBAATluG,GAAyC,mBAAX7vB,EAAuB,KACzDowB,EAAcpwB,EACpBA,EAAS6vB,EAAA,IAEH1b,EAAO7T,EAAA,OACN,SAEN0rB,GAAA,IAAA6D,EAAA,cAAA7D,IAAAA,EAAOoE,GAAA,QAAAL,EAAAhlB,UAAA3M,OACJkC,EAAAsH,MAAAmoB,EAAA,EAAAA,EAAA,KAAAguG,EAAA,EAAAA,EAAAhuG,EAAAguG,IAAAz9H,EAAAy9H,EAAA,GAAAhzH,UAAAgzH,GAAA,OAEI5pH,EAAKo3X,QAAQv/W,GAAM,SAACA,GAAA,IAAA+D,EAAA,OAAAA,EAAmB/vB,GAAO6H,KAAAuD,MAAA2kB,EAAA,CAAKF,EAAM7D,GAAArjB,OAAUrI,GAAA,SAQxE2sB,EAAA,GAJkB,mBAAXjtB,GAAuBgsB,GAAI,YAClC+xG,GAAwD,mBAAlBA,GACzC/xG,GAAI,GAKD+D,GAAYF,GAAO,KAChBob,EAAQsB,GAAWjsC,GACnBysB,EAAQ41B,GAAYriD,EAAMuvB,OAAA,GAC5Bzd,GAAA,EAAW,IAEd6a,EAASjtB,EAAO+sB,GAChB3a,GAAA,CAAW,SAGPA,EAAUisH,GAAYpzF,GACrBk4D,GAAWl4D,EAAA,OAEM,oBAAZ4J,SAA2B5nB,aAAkB4nB,QAChD5nB,EAAOuwE,MACb,SAAAxxE,GAAA,OACC/lB,GAAkBglC,EAAO8yF,GAClB/5B,GAAch4E,EAAQif,EAAA,IAE9B,SAAAjf,GAAA,MACCqyG,GAAYpzF,GACNjf,CAAA,KAIT/lB,GAAkBglC,EAAO8yF,GAClB/5B,GAAc/2E,EAAQge,GAAA,CACvB,IAAKpb,GAAwB,iBAATA,EAAmB,cAC7C5C,EAASjtB,EAAO6vB,MACU5C,EAAS4C,GAC/B5C,IAAWklE,KAASllE,OAAA,GACpB3sB,EAAKuhG,GAAazuF,GAAO6Z,GAAA,GACzB8wG,EAAe,KACZ3pG,EAAa,GACbpH,EAAc,GACpBsH,GAAU,WAAWwtB,EAA4BjyB,EAAM5C,EAAQmH,EAAGpH,GAClE+wG,EAAc3pG,EAAGpH,EAAA,QAEXC,CAAA,CACDjB,GAAI,GAAI6D,EAAA,OAAA27W,mBAG0B,SAACx/W,EAAW6D,GAAA,GAEjC,mBAAT7D,EAAA,OACH,SAAC6D,GAAA,QAAAE,EAAAhlB,UAAA3M,OAAe4B,EAAA4H,MAAAmoB,EAAA,EAAAA,EAAA,KAAAguG,EAAA,EAAAA,EAAAhuG,EAAAguG,IAAA/9H,EAAA+9H,EAAA,GAAAhzH,UAAAgzH,GAAA,OACtBz9H,EAAKkrY,mBAAmB37W,GAAO,SAACA,GAAA,OAAe7D,EAAA5gB,WAAA,GAAKykB,GAAAlnB,OAAU3I,GAAA,SAG5D+vB,EAAkB/vB,EAChB+9H,EAASz9H,EAAKirY,QAAQv/W,EAAM6D,GAAQ,SAAC7D,EAAY6D,GACtDE,EAAU/D,EACVhsB,EAAiB6vB,CAAA,UAGK,oBAAZglB,SAA2BkpF,aAAkBlpF,QAChDkpF,EAAOvgC,MAAK,SAAAxxE,GAAA,MAAa,CAACA,EAAW+D,EAAU/vB,EAAA,IAEhD,CAAC+9H,EAAQhuG,EAAU/vB,EAAA,EAzGQ,kBAAvB,MAAA6vB,OAAA,EAAAA,EAAQ47W,aAClB1tY,KAAK2tY,cAAc77W,EAAQ47W,YACM,kBAAvB,MAAA57W,OAAA,EAAAA,EAAQ87W,aAClB5tY,KAAK6tY,cAAc/7W,EAAQ87W,WAAA,KAAA3rY,EAAAM,EAAAnB,UAAA,OAAAa,EAyG7B6rY,YAAA,SAAiCvrY,GAC3ByvB,GAAYzvB,IAAO0rB,GAAI,GACxB6D,GAAQvvB,KAAOA,EAAO6gG,GAAQ7gG,IAAA,IAC5BN,EAAQusC,GAAWxuC,MACnBggI,EAAQp7E,GAAY5kD,KAAMuC,OAAA,GAAM,OACtCy9H,EAAMz8B,IAAa/F,GAAA,EACnB4H,GAAWnjG,GACJ+9H,CAAA,EAAA/9H,EAGR8rY,YAAA,SACCj8W,EACAE,GAAA,IAOe/vB,GALW6vB,GAAUA,EAAcyxE,KAK3Cw5C,EAAA,OACP70I,GAAkBjG,EAAO+vB,GAClBi0E,QAAA,EAAyBhkG,EAAA,EAAAA,EAQjC4rY,cAAA,SAAc5/W,GAAA,KACR61E,EAAc71E,CAAA,EAAAhsB,EASpB0rY,cAAA,SAAc77W,GACTA,IAAU+yB,IACb52B,GAAI,SAEAm3E,EAActzE,CAAA,EAAA7vB,EAGpB+rY,aAAA,SAAkC//W,EAAS+D,GAAA,IAGtCzvB,EAAA,IACCA,EAAIyvB,EAAQ3xB,OAAS,EAAGkC,GAAK,EAAGA,IAAK,KACnCN,EAAQ+vB,EAAQzvB,GAAA,GACI,IAAtBN,EAAM8kB,KAAK1mB,QAA6B,YAAb4B,EAAMorY,GAAkB,CACtDp/W,EAAOhsB,EAAMmB,MAAA,OAMXb,GAAK,IACRyvB,EAAUA,EAAQ/tB,MAAM1B,EAAI,QAGvBy9H,EAAmBzpG,GAAU,WAAW0pG,EAAA,OAC1CnuG,GAAQ7D,GAEJ+xG,EAAiB/xG,EAAM+D,GAGxBhyB,KAAKwtY,QAAQv/W,GAAM,SAACA,GAAA,OAC1B+xG,EAAiB/xG,EAAO+D,EAAA,KAAAzvB,CAAA,CAxL3B,GIZM0rY,GAAQ,IAAIV,GAqBLliY,GAAoB4iY,GAAMT,QAO1BU,GAA0CD,GAAMR,mBAAmBjhX,KAC/EyhX,IAuBYE,IAfgBF,GAAMJ,cAAcrhX,KAAKyhX,IAQzBA,GAAMN,cAAcnhX,KAAKyhX,IAO1BA,GAAMD,aAAaxhX,KAAKyhX,KAMzBA,GAAMH,YAAYthX,KAAKyhX,IAUvBA,GAAMF,YAAYvhX,KAAKyhX,IAAA,YE1FlD,SAASzjM,GAAQxqE,GAGf,OAAOwqE,GAAU,mBAAqBhqK,QAAU,iBAAmBA,OAAOE,SAAW,SAAUs/F,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBx/F,QAAUw/F,EAAEzzH,cAAgBi0B,QAAUw/F,IAAMx/F,OAAOp/B,UAAY,gBAAkB4+H,CACpH,EAAGwqE,GAAQxqE,EACb,CCNA,SAASouQ,GAAcp8W,GACrB,IAAI/vB,ECFN,SAAqB+vB,EAAGF,GACtB,GAAI,UAAY04K,GAAQx4K,KAAOA,EAAG,OAAOA,EACzC,IAAIzvB,EAAIyvB,EAAEwO,OAAO6/H,aACjB,QAAI,IAAW99J,EAAG,CAChB,IAAIN,EAAIM,EAAEuH,KAAKkoB,EAAGF,GAAK,WACvB,GAAI,UAAY04K,GAAQvoM,GAAI,OAAOA,EACnC,MAAM,IAAIgU,UAAU,+CACtB,CACA,OAAQ,WAAa6b,EAAI/uB,OAAS+S,QAAQkc,EAC5C,CDPUquI,CAAYruI,EAAG,UACvB,MAAO,UAAYw4K,GAAQvoM,GAAKA,EAAIA,EAAI,EAC1C,CEJA,SAAS,GAAgBM,EAAGuvB,EAAGE,GAC7B,OAAQF,EAAIs8W,GAAct8W,MAAOvvB,EAAIW,OAAOiU,eAAe5U,EAAGuvB,EAAG,CAC/D1uB,MAAO4uB,EACP5a,YAAY,EACZytB,cAAc,EACds5B,UAAU,IACP57D,EAAEuvB,GAAKE,EAAGzvB,CACjB,CCPA,SAAS,GAAQA,EAAGuvB,GAClB,IAAIE,EAAI9uB,OAAO4pB,KAAKvqB,GACpB,GAAIW,OAAOi3F,sBAAuB,CAChC,IAAI6lC,EAAI98H,OAAOi3F,sBAAsB53F,GACrCuvB,IAAMkuG,EAAIA,EAAElwG,QAAO,SAAUgC,GAC3B,OAAO5uB,OAAOkvB,yBAAyB7vB,EAAGuvB,GAAG1a,UAC/C,KAAK4a,EAAEpxB,KAAKyM,MAAM2kB,EAAGguG,EACvB,CACA,OAAOhuG,CACT,CACA,SAAS,GAAezvB,GACtB,IAAK,IAAIuvB,EAAI,EAAGA,EAAI9kB,UAAU3M,OAAQyxB,IAAK,CACzC,IAAIE,EAAI,MAAQhlB,UAAU8kB,GAAK9kB,UAAU8kB,GAAK,CAAC,EAC/CA,EAAI,EAAI,GAAQ5uB,OAAO8uB,IAAI,GAAIzwB,SAAQ,SAAUuwB,GAC/C,GAAevvB,EAAGuvB,EAAGE,EAAEF,GACzB,IAAK5uB,OAAOioM,0BAA4BjoM,OAAOkoM,iBAAiB7oM,EAAGW,OAAOioM,0BAA0Bn5K,IAAM,GAAQ9uB,OAAO8uB,IAAIzwB,SAAQ,SAAUuwB,GAC7I5uB,OAAOiU,eAAe5U,EAAGuvB,EAAG5uB,OAAOkvB,yBAAyBJ,EAAGF,GACjE,GACF,CACA,OAAOvvB,CACT,CCZA,SAAS8rY,GAAuBvtW,GAC9B,MAAO,yBAA2BA,EAAO,4CAA8CA,EAAhF,iFACT,CAGA,IAAIwtW,GACuB,oBAAX9tW,QAAyBA,OAAO+tW,YAAc,eAS1DtiH,GAAe,WACjB,OAAOppR,KAAK+iF,SAASr4E,SAAS,IAAI8gB,UAAU,GAAG/jB,MAAM,IAAIzD,KAAK,IAChE,EAEI2nY,GAAc,CAChB9R,KAAM,eAAiBzwG,KACvBwiH,QAAS,kBAAoBxiH,KAC7ByiH,qBAAsB,WACpB,MAAO,+BAAiCziH,IAC1C,GAOF,SAASn7P,GAAclf,GACrB,GAAmB,kBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAI2gT,EAAQ3gT,EAE4B,OAAjC1O,OAAOq9B,eAAegyR,IAC3BA,EAAQrvT,OAAOq9B,eAAegyR,GAGhC,OAAOrvT,OAAOq9B,eAAe3uB,KAAS2gT,CACxC,CAuFA,SAASo8E,GAAYC,EAASC,EAAgBC,GAC5C,IAAIr3X,EAEJ,GAA8B,oBAAnBo3X,GAAqD,oBAAbC,GAA+C,oBAAbA,GAAmD,oBAAjB9hY,UAAU,GAC/H,MAAM,IAAIgF,MAA8Cq8X,GAAuB,IAQjF,GAL8B,oBAAnBQ,GAAqD,qBAAbC,IACjDA,EAAWD,EACXA,OAAiB/tY,GAGK,qBAAbguY,EAA0B,CACnC,GAAwB,oBAAbA,EACT,MAAM,IAAI98X,MAA8Cq8X,GAAuB,IAGjF,OAAOS,EAASH,GAATG,CAAsBF,EAASC,EACxC,CAEA,GAAuB,oBAAZD,EACT,MAAM,IAAI58X,MAA8Cq8X,GAAuB,IAGjF,IAAIU,EAAiBH,EACjBtrU,EAAeurU,EACfG,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiB/qY,QAErC,CAQA,SAASotO,IACP,GAAI69J,EACF,MAAM,IAAIl9X,MAA8Cq8X,GAAuB,IAGjF,OAAO/qU,CACT,CA0BA,SAASktQ,EAAUhkQ,GACjB,GAAwB,oBAAbA,EACT,MAAM,IAAIx6D,MAA8Cq8X,GAAuB,IAGjF,GAAIa,EACF,MAAM,IAAIl9X,MAA8Cq8X,GAAuB,IAGjF,IAAI59D,GAAe,EAGnB,OAFA0+D,IACAF,EAAcruY,KAAK4rE,GACZ,WACL,GAAKikQ,EAAL,CAIA,GAAIy+D,EACF,MAAM,IAAIl9X,MAA8Cq8X,GAAuB,IAGjF59D,GAAe,EACf0+D,IACA,IAAIvrY,EAAQqrY,EAAcvrY,QAAQ8oE,GAClCyiU,EAAcriU,OAAOhpE,EAAO,GAC5BorY,EAAmB,IAVnB,CAWF,CACF,CA4BA,SAAS75M,EAAS/7K,GAChB,IAAK0X,GAAc1X,GACjB,MAAM,IAAIpH,MAA8Cq8X,GAAuB,IAGjF,GAA2B,qBAAhBj1X,EAAOtU,KAChB,MAAM,IAAIkN,MAA8Cq8X,GAAuB,IAGjF,GAAIa,EACF,MAAM,IAAIl9X,MAA8Cq8X,GAAuB,IAGjF,IACEa,GAAgB,EAChB5rU,EAAeyrU,EAAezrU,EAAclqD,EAC9C,CAAE,QACA81X,GAAgB,CAClB,CAIA,IAFA,IAAI1nU,EAAYwnU,EAAmBC,EAE1BhtY,EAAI,EAAGA,EAAIulE,EAAUnnE,OAAQ4B,IAAK,EAEzCuqE,EADehF,EAAUvlE,KAE3B,CAEA,OAAOmX,CACT,CA4EA,OAHA+7K,EAAS,CACPrwL,KAAM0pY,GAAY9R,QAEbjlX,EAAQ,CACb09K,SAAUA,EACVq7I,UAAWA,EACXn/F,SAAUA,EACV+9J,eAnEF,SAAwBC,GACtB,GAA2B,oBAAhBA,EACT,MAAM,IAAIr9X,MAA8Cq8X,GAAuB,KAGjFU,EAAiBM,EAKjBl6M,EAAS,CACPrwL,KAAM0pY,GAAYC,SAEtB,IAuDSH,IA9CT,WACE,IAAIjyX,EAEAizX,EAAiB9+D,EACrB,OAAOn0T,EAAO,CASZm0T,UAAW,SAAmB/2H,GAC5B,GAAwB,kBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAIznM,MAA8Cq8X,GAAuB,KAGjF,SAASkB,IACH91L,EAASr0M,MACXq0M,EAASr0M,KAAKisO,IAElB,CAIA,OAFAk+J,IAEO,CACLr/D,YAFgBo/D,EAAeC,GAInC,IACMjB,IAAgB,WACtB,OAAOtuY,IACT,EAAGqc,CACL,EAaqC5E,CACvC,CAsHA,SAAS+3X,GAAgBC,GAIvB,IAHA,IAAIC,EAAcxsY,OAAO4pB,KAAK2iX,GAC1BE,EAAgB,CAAC,EAEZ1tY,EAAI,EAAGA,EAAIytY,EAAYrvY,OAAQ4B,IAAK,CAC3C,IAAIf,EAAMwuY,EAAYztY,GAElBouC,EAMyB,oBAAlBo/V,EAASvuY,KAClByuY,EAAczuY,GAAOuuY,EAASvuY,GAElC,CAEA,IASI0uY,EATAC,EAAmB3sY,OAAO4pB,KAAK6iX,GAWnC,KAjEF,SAA4BF,GAC1BvsY,OAAO4pB,KAAK2iX,GAAUluY,SAAQ,SAAUL,GACtC,IAAI0tY,EAAUa,EAASvuY,GAKvB,GAA4B,qBAJT0tY,OAAQ9tY,EAAW,CACpCgE,KAAM0pY,GAAY9R,OAIlB,MAAM,IAAI1qX,MAA8Cq8X,GAAuB,KAGjF,GAEO,qBAFIO,OAAQ9tY,EAAW,CAC5BgE,KAAM0pY,GAAYE,yBAElB,MAAM,IAAI18X,MAA8Cq8X,GAAuB,IAEnF,GACF,CAiDIyB,CAAmBH,EACrB,CAAE,MAAOptY,IACPqtY,EAAsBrtY,EACxB,CAEA,OAAO,SAAqBwlB,EAAO3O,GAKjC,QAJc,IAAV2O,IACFA,EAAQ,CAAC,GAGP6nX,EACF,MAAMA,EAcR,IAX2C,IAQvCG,GAAa,EACbprJ,EAAY,CAAC,EAERzyO,EAAK,EAAGA,EAAK29X,EAAiBxvY,OAAQ6R,IAAM,CACnD,IAAIhF,EAAO2iY,EAAiB39X,GACxB08X,EAAUe,EAAcziY,GACxB8iY,EAAsBjoX,EAAM7a,GAC5B+iY,EAAkBrB,EAAQoB,EAAqB52X,GAEnD,GAA+B,qBAApB62X,EAAiC,CACzB72X,GAAUA,EAAOtU,KAClC,MAAM,IAAIkN,MAA8Cq8X,GAAuB,IACjF,CAEA1pJ,EAAUz3O,GAAQ+iY,EAClBF,EAAaA,GAAcE,IAAoBD,CACjD,CAGA,OADAD,EAAaA,GAAcF,EAAiBxvY,SAAW6C,OAAO4pB,KAAK/E,GAAO1nB,QACtDskP,EAAY58N,CAClC,CACF,CA8DA,SAASyR,KACP,IAAK,IAAIzsB,EAAOC,UAAU3M,OAAQ+/B,EAAQ,IAAIv2B,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAChFkzB,EAAMlzB,GAAQF,UAAUE,GAG1B,OAAqB,IAAjBkzB,EAAM//B,OACD,SAAUkL,GACf,OAAOA,CACT,EAGmB,IAAjB60B,EAAM//B,OACD+/B,EAAM,GAGRA,EAAMjqB,QAAO,SAAUC,EAAGmgB,GAC/B,OAAO,WACL,OAAOngB,EAAEmgB,EAAElpB,WAAM,EAAQL,WAC3B,CACF,GACF,CAmBA,SAASkjY,KACP,IAAK,IAAInjY,EAAOC,UAAU3M,OAAQ8vY,EAAc,IAAItmY,MAAMkD,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IACtFijY,EAAYjjY,GAAQF,UAAUE,GAGhC,OAAO,SAAUyhY,GACf,OAAO,WACL,IAAIt/D,EAAQs/D,EAAYthY,WAAM,EAAQL,WAElCojY,EAAY,WACd,MAAM,IAAIp+X,MAA8Cq8X,GAAuB,IACjF,EAEIgC,EAAgB,CAClBh/J,SAAUg+F,EAAMh+F,SAChBl8C,SAAU,WACR,OAAOi7M,EAAU/iY,WAAM,EAAQL,UACjC,GAEEunC,EAAQ47V,EAAY7mY,KAAI,SAAUqB,GACpC,OAAOA,EAAW0lY,EACpB,IAEA,OADAD,EAAY52W,GAAQnsB,WAAM,EAAQknC,EAAtB/a,CAA6B61S,EAAMl6I,UACxC+V,GAAcA,GAAc,CAAC,EAAGmkI,GAAQ,CAAC,EAAG,CACjDl6I,SAAUi7M,GAEd,CACF,CACF,CC3rBA,SAASE,GAAsBC,GAqB7B,OAlBiB,SAAoBl0X,GACnC,IAAI84K,EAAW94K,EAAK84K,SAChBk8C,EAAWh1N,EAAKg1N,SACpB,OAAO,SAAUjsO,GACf,OAAO,SAAUgU,GAGf,MAAsB,oBAAXA,EAEFA,EAAO+7K,EAAUk8C,EAAUk/J,GAI7BnrY,EAAKgU,EACd,CACF,CACF,CAGF,CAEA,IAAIo3X,GAAQF,KAGZE,GAAMC,kBAAoBH,GAC1B,u1ECqMaI,GACO,qBAAXhuW,QACNA,OAAeiuW,qCACXjuW,OAAeiuW,qCAChB,WACE,GAAyB,IAArB3jY,UAAU3M,OACd,MAA4B,kBAAjB2M,UAAU,GAAwBwsB,GACtCA,GAAQnsB,MAAM,KAAML,UAAA,EASf,qBAAX01B,QAA2BA,OAAekuW,8BAC5CluW,OAAekuW,6BC3OP,SAAA9/W,GAAuB1tB,GACpC,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,OAAO,EAExD,IAAImvT,EAAQrvT,OAAOq9B,eAAen9B,GAClC,GAAc,OAAVmvT,EAAgB,OAAO,EAG3B,IADA,IAAIs+E,EAAYt+E,EAC4B,OAArCrvT,OAAOq9B,eAAeswW,IAC3BA,EAAY3tY,OAAOq9B,eAAeswW,GAGpC,OAAOt+E,IAAUs+E,CAAA,CCwJZ,IAAMC,GAAmB,SAC9Bz8X,GAEA,OAAOA,GAAiD,oBAApCA,EAA0B5K,KAAU,ECqFnD,SAAAsnY,GAAsBjsY,EAAcksY,GACzC,SAAAC,QAAA,IAAAhkY,EAAA,GAAAiF,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAjF,EAAAiF,GAAAlF,UAAAkF,GACE,GAAI8+X,EAAe,CACjB,IAAIE,EAAWF,EAAA3jY,WAAA,EAAiBJ,GAChC,IAAKikY,EACH,MAAM,IAAIl/X,MAAM,0CAGlB,OAAOm/X,GAAAA,GAAA,CACLrsY,KAAAA,EACAoyD,QAASg6U,EAASh6U,SACd,SAAUg6U,GAAY,CAAE36N,KAAM26N,EAAS36N,OACvC,UAAW26N,GAAY,CAAE51X,MAAO41X,EAAS51X,QAGjD,MAAO,CAAExW,KAAAA,EAAMoyD,QAASjqD,EAAK,IAU/B,OAPAgkY,EAAc1jY,SAAW,WAAM,SAAGzI,CAAH,EAE/BmsY,EAAcnsY,KAAOA,EAErBmsY,EAAcxnY,MAAQ,SAAC2P,GACrB,OAAAA,EAAOtU,OAASA,CAAhB,EAEKmsY,CAAA,CC9PF,IAAAG,GAAA,SAAAl8T,GAIL,SAAAk8T,QAAA,IAAAnkY,EAAA,GAAAiF,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAjF,EAAAiF,GAAAlF,UAAAkF,GAAA,IAAAnS,EAAAm1E,EAAA7nE,MAAA,KACWJ,IAAA,YACT/J,OAAOohI,eAAevkI,EAAMqxY,EAAgBhwY,YAAA,CA8BH,OAlCnCiwY,GAAAD,EAAAl8T,GAIsChyE,OAAAiU,eAAAi6X,EAGlC5wW,OAAOutD,QAAA,KAH2B,WAI5C,OAAOqjT,CAAA,kCAUTA,EAAAhwY,UAAAwJ,OAAA,mBAAAyL,EAAA,GAAAnE,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAmE,EAAAnE,GAAAlF,UAAAkF,GACE,OAAOgjE,EAAA9zE,UAAMwJ,OAAOyC,MAAMrN,KAAMqW,EAAA,EAWlC+6X,EAAAhwY,UAAAZ,QAAA,mBAAA6V,EAAA,GAAAnE,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAmE,EAAAnE,GAAAlF,UAAAkF,GACE,OAAmB,IAAfmE,EAAIhW,QAAgBwJ,MAAMiI,QAAQuE,EAAI,IACjC,IAAI+6X,EAAA5kX,KAAAnf,MAAA+jY,EAAAE,GAAA,SAAmBj7X,EAAI,GAAGzL,OAAO5K,SAEvC,IAAIoxY,EAAA5kX,KAAAnf,MAAA+jY,EAAAE,GAAA,SAAmBj7X,EAAIzL,OAAO5K,QAAA,EAAAoxY,CAAA,CApCtC,CAEGvnY,OAyCH0nY,GAAA,SAAAr8T,GAIL,SAAAq8T,QAAA,IAAAtkY,EAAA,GAAAiF,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAjF,EAAAiF,GAAAlF,UAAAkF,GAAA,IAAAnS,EAAAm1E,EAAA7nE,MAAA,KACWJ,IAAA,YACT/J,OAAOohI,eAAevkI,EAAMwxY,EAAcnwY,YAAA,CA8BH,OAlCjCiwY,GAAAE,EAAAr8T,GAIoChyE,OAAAiU,eAAAo6X,EAGhC/wW,OAAOutD,QAAA,KAHyB,WAI1C,OAAOwjT,CAAA,kCAUTA,EAAAnwY,UAAAwJ,OAAA,mBAAAyL,EAAA,GAAAnE,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAmE,EAAAnE,GAAAlF,UAAAkF,GACE,OAAOgjE,EAAA9zE,UAAMwJ,OAAOyC,MAAMrN,KAAMqW,EAAA,EAWlCk7X,EAAAnwY,UAAAZ,QAAA,mBAAA6V,EAAA,GAAAnE,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAmE,EAAAnE,GAAAlF,UAAAkF,GACE,OAAmB,IAAfmE,EAAIhW,QAAgBwJ,MAAMiI,QAAQuE,EAAI,IACjC,IAAIk7X,EAAA/kX,KAAAnf,MAAAkkY,EAAAD,GAAA,SAAiBj7X,EAAI,GAAGzL,OAAO5K,SAErC,IAAIuxY,EAAA/kX,KAAAnf,MAAAkkY,EAAAD,GAAA,SAAiBj7X,EAAIzL,OAAO5K,QAAA,EAAAuxY,CAAA,CApCpC,CAEG1nY,OAsCH,SAAA2nY,GAA4B5iX,GACjC,OAAO6iX,GAAY7iX,GAAO8iX,GAAgB9iX,GAAK,WAAM,IAAMA,CAAA,CChEtD,SAAA+iX,KAGL,OAAO,SAAqC7xY,GAC1C,OAgBG,SASLA,QAAA,IAAAA,IAAAA,EAAA,IAGE,IAAA8xY,EAIE9xY,EAAA0wY,MAJFA,OAAA,IAAAoB,GAAQA,EAMNC,GAFA/xY,EAAAgyY,eAAAhyY,EAAAiyY,kBAAAjyY,EAAAkyY,mBAEkB,IAAIZ,IAEtBZ,KA7EN,SAAmBpoY,GACjB,MAAoB,mBAANA,CAAM,CA6EdiwT,CAAUm4E,GAGZqB,EAAgBjxY,KACdqxY,GAAgBxB,kBAAkBD,EAAMD,gBAH1CsB,EAAgBjxY,KAAKqxY,KAQrB5hW,EAuCJ,OAAOwhW,CAAA,CArFEK,CAAqBpyY,EAAA,ECuFzB,SAAAqyY,GAKLryY,GACA,IAUIsyY,EAVEC,EAA8BV,KAE9BC,EAMF9xY,GAAW,CAAC,EALd8rM,EAAAgmM,EAAAhD,QAAAA,OAAA,IAAAhjM,OAAU,EAAAA,EACVJ,EAAAomM,EAAAjnY,WAAAA,OAAA,IAAA6gM,EAAa6mM,IAAA7mM,EACb8mM,EAAAV,EAAAW,SAAAA,OAAA,IAAAD,GAAWA,EACXE,EAAAZ,EAAA/C,eAAAA,OAAA,IAAA2D,OAAiB,EAAAA,EACjBC,EAAAb,EAAAc,UAAAA,OAAA,IAAAD,OAAY,EAAAA,EAKd,GAAuB,oBAAZ7D,EACTwD,EAAcxD,MAAA,KACL99W,GAAc89W,GAGvB,MAAM,IAAI58X,MACR,4HAHFogY,EAAc5C,GAAgBZ,GAOhC,IAAI+D,EAAkBhoY,EACS,oBAApBgoY,IACTA,EAAkBA,EAAgBN,IAiBpC,IAAMO,EAAoC1C,GAAA7iY,WAAA,EAAmBslY,GAEzDE,EAAeC,GAEfP,IACFM,EAAenC,GAAoBS,GAAA,CAEjCt7P,OAAO,GACiB,kBAAb08P,GAAyBA,KAIxC,IAAMQ,EAAmB,IAAIxB,GAAcqB,GACvCI,EAA4BD,EAUhC,OARIlpY,MAAMiI,QAAQ4gY,GAChBM,EAAA1B,GAAA,CAAkBsB,GAAuBF,GACX,oBAAdA,IAChBM,EAAiBN,EAAUK,IAKtBpE,GAAYyD,EAAavD,EAFPgE,EAAAxlY,WAAA,EAAgB2lY,GAEO,CCxF3C,SAAAC,GACLC,GAMA,IAEIC,EAFEC,EAAmC,CAAC,EACpCC,EAAwD,GAExDv1U,EAAU,CACdw1U,QAAA,SACEC,EACA3E,GAmBA,IAAM9pY,EAC2B,kBAAxByuY,EACHA,EACAA,EAAoBzuY,KAC1B,IAAKA,EACH,MAAM,IAAIkN,MACR,gEAGJ,GAAIlN,KAAQsuY,EACV,MAAM,IAAIphY,MACR,iFAIJ,OADAohY,EAAWtuY,GAAQ8pY,EACZ9wU,CAAA,EAET01U,WAAA,SACE5sU,EACAgoU,GAUA,OADAyE,EAAezyY,KAAK,CAAEgmE,QAAAA,EAASgoU,QAAAA,IACxB9wU,CAAA,EAET21U,eAAA,SAAe7E,GAOb,OADAuE,EAAqBvE,EACd9wU,CAAA,GAIX,OADAo1U,EAAgBp1U,GACT,CAACs1U,EAAYC,EAAgBF,EAAA,CCyE/B,SAAAO,GAKL5zY,GAEQ,IAAAoL,EAASpL,EAAAoL,KACjB,IAAKA,EACH,MAAM,IAAI8G,MAAM,+CAclB,IAqEI2hY,EArEEC,EAC2B,mBAAxB9zY,EAAQ8zY,aACX9zY,EAAQ8zY,aACRpC,GAAgB1xY,EAAQ8zY,cAExBnE,EAAW3vY,EAAQ2vY,UAAY,CAAC,EAEhCoE,EAAe3wY,OAAO4pB,KAAK2iX,GAE3BqE,EAAuD,CAAC,EACxDC,EAAuD,CAAC,EACxDC,EAA2C,CAAC,EAuBlD,SAAAC,IAWQ,IAAArC,EAK6B,oBAA1B9xY,EAAQo0Y,cACXjB,GAA8BnzY,EAAQo0Y,eACtC,CAACp0Y,EAAQo0Y,eANbtoM,EAAAgmM,EAAA,GAAAsC,OAAA,IAAAtoM,EAAgB,CAAC,EAADA,EAChBJ,EAAAomM,EAAA,GAAAyB,OAAA,IAAA7nM,EAAiB,GAAAA,EACjB8mM,EAAAV,EAAA,GAAAuB,OAAA,IAAAb,OAAqB,EAAAA,EAMjB6B,EAAoBhD,GAAAA,GAAA,GAAK+C,GAAkBH,GAEjD,OCxIG,SACLH,EACAQ,EAGAf,EACAF,QADA,IAAAE,IAAAA,EAAA,IAcI,IAMAgB,EANAzC,EAC8B,oBAAzBwC,EACHnB,GAA8BmB,GAC9B,CAACA,EAAsBf,EAAgBF,GAHxCC,EAAAxB,EAAA,GAAY0C,EAAA1C,EAAA,GAAqB2C,EAAA3C,EAAA,GAOtC,GAvKF,SAA4BxpY,GAC1B,MAAoB,oBAANA,CAAM,CAsKhBosY,CAAgBZ,GAClBS,EAAkB,WAAM,OAAA7C,GAAgBoC,IAAhB,MACnB,CACL,IAAMa,EAAqBjD,GAAgBoC,GAC3CS,EAAkB,WAAM,OAAAI,CAAA,EAG1B,SAAA7F,EAAiB7mX,EAA2B3O,QAA3B,IAAA2O,IAAAA,EAAQssX,KACvB,IAAIK,EAAApD,GAAA,CACF8B,EAAWh6X,EAAOtU,OACfwvY,EACAxkX,QAAO,SAAC8hX,GAAgB,OAAAhrU,EAAdgrU,EAAAhrU,SAAsBxtD,EAAR,IACxB9P,KAAI,SAACsoY,GAAgB,OAAdA,EAAAhD,OAAc,KAM1B,OAJiD,IAA7C8F,EAAa5kX,QAAO,SAAC6kX,GAAO,QAAEA,CAAF,IAAMt0Y,SACpCq0Y,EAAe,CAACH,IAGXG,EAAav+X,QAAO,SAACyuO,EAAegwJ,GACzC,GAAIA,EAAa,CAKb,IAWMviY,EAfR,GAAIwiY,GAAQjwJ,GAOV,YAAe,KAFTvyO,EAASuiY,EADDhwJ,EACoBxrO,IAGzBwrO,EAGFvyO,EAAA,GACGyiY,GAAYlwJ,GAmBtB,OAAOmwJ,GAAgBnwJ,GAAe,SAACowJ,GACrC,OAAOJ,EAAYI,EAAO57X,EAAA,IAf5B,QAAe,KAFT/G,EAASuiY,EAAYhwJ,EAAsBxrO,IAEvB,CACxB,GAAsB,OAAlBwrO,EACF,OAAOA,EAET,MAAM5yO,MACJ,qEAIJ,OAAOK,EAWX,OAAOuyO,CAAA,GACN78N,EAAA,CAKL,OAFA6mX,EAAQyF,gBAAkBA,EAEnBzF,CAAA,CD+CEqG,CAAcrB,GAAc,SAAC91U,GAClC,IAAK,IAAI58D,KAAOizY,EACdr2U,EAAQw1U,QAAQpyY,EAAKizY,EAAkBjzY,IAEzC,IAAc,IAAAgR,EAAA,EAAAgjY,EAAA7B,EAAAnhY,EAAAgjY,EAAA70Y,OAAA6R,IAAgB,CAA9B,IAASkkB,EAAA8+W,EAAAhjY,GACP4rD,EAAQ01U,WAAWp9W,EAAEwwC,QAASxwC,EAAEw4W,SAE9BuE,GACFr1U,EAAQ21U,eAAeN,EAAA,IAO7B,OA1DAU,EAAatyY,SAAQ,SAAC4zY,GACpB,IAGIP,EACAQ,EAJEC,EAA0B5F,EAAS0F,GACnCrwY,EAAeoG,EAnDb,IAmDmBiqY,EAKvB,YAAaE,GACfT,EAAcS,EAAwBzG,QACtCwG,EAAkBC,EAAwBC,SAE1CV,EAAcS,EAGhBvB,EAAwBqB,GAAeP,EACvCb,EAAwBjvY,GAAQ8vY,EAChCZ,EAAemB,GAAeC,EAC1BrE,GAAajsY,EAAMswY,GACnBrE,GAAajsY,EAAA,IAwCZ,CACLoG,KAAAA,EACA0jY,QAAA,SAAQ7mX,EAAO3O,GAGb,OAFKu6X,IAAUA,EAAWM,KAEnBN,EAAS5rX,EAAO3O,EAAA,EAEzBm6R,QAASygG,EACTU,aAAcZ,EACdO,gBAAA,WAGE,OAFKV,IAAUA,EAAWM,KAEnBN,EAASU,iBAAA,GEvXtB,IAOWkB,GAAS,SAACttY,QAAA,IAAAA,IAAAA,EAAA,IAInB,IAHA,IAAIy7B,EAAK,GAELzhC,EAAIgG,EACDhG,KAELyhC,GAZF,mEAYqC,GAAhB7gC,KAAK+iF,SAAiB,GAE3C,OAAOliD,CAAA,ECqCH8xW,GAAiD,CACrD,OACA,UACA,QACA,QAGFC,GAME,SACkBv+U,EACAq/G,GADA,KAAAr/G,QAAAA,EACA,KAAAq/G,KAAAA,CAAA,EAIpBm/N,GAME,SACkBx+U,EACAq/G,GADA,KAAAr/G,QAAAA,EACA,KAAAq/G,KAAAA,CAAA,EAUPo/N,GAAqB,SAACvyY,GACjC,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,CAE/C,IADA,IAAMwyY,EAA+B,CAAC,EACf1jY,EAAA,EAAA2jY,EAAAL,GAAAtjY,EAAA2jY,EAAAx1Y,OAAA6R,IAAkB,CAAzC,IAAW3K,EAAAsuY,EAAA3jY,GACsB,kBAApB9O,EAAMmE,KACfquY,EAAYruY,GAAYnE,EAAMmE,IAIlC,OAAOquY,EAGT,MAAO,CAAEtiW,QAASvwC,OAAOK,GAAA,EA8Wd0yY,GAAoB,WAC/B,SAAAC,EAKEC,EACAC,EAKAn2Y,GAOA,IAAMo2Y,EAIFnF,GACFiF,EAAa,cACb,SACE9+U,EACAqH,EACAhzD,EACAgrK,GACI,OACJr/G,QAAAA,EACAq/G,KAAM4/N,GAAAhF,GAAA,GACC56N,GAAgB,CAAC,GADlB,CAEJhrK,IAAAA,EACAgzD,UAAAA,EACA63U,cAAe,cANb,IAWFnkN,EACJ8+M,GACEiF,EAAa,YACb,SAACz3U,EAAmBhzD,EAAegrK,GAAwB,OACzDr/G,aAAS,EACTq/G,KAAM4/N,GAAAhF,GAAA,GACC56N,GAAgB,CAAC,GADlB,CAEJhrK,IAAAA,EACAgzD,UAAAA,EACA63U,cAAe,YANwC,IAWzD92S,EACJyxS,GACEiF,EAAa,aACb,SACE16X,EACAijD,EACAhzD,EACA2rD,EACAq/G,GACI,OACJr/G,QAAAA,EACA57C,OAASxb,GAAWA,EAAQ+jX,gBAAmB8xB,IAC7Cr6X,GAAS,YAEXi7J,KAAM4/N,GAAAhF,GAAA,GACC56N,GAAgB,CAAC,GADlB,CAEJhrK,IAAAA,EACAgzD,UAAAA,EACA83U,oBAAqBn/U,EACrBk/U,cAAe,WACfx1S,QAAyB,gBAAhB,MAAAtlF,OAAA,EAAAA,EAAOpQ,MAChB2wE,UAA2B,oBAAhB,MAAAvgE,OAAA,EAAAA,EAAOpQ,QAZhB,IAmBJorY,EACuB,qBAApB3tB,gBACHA,gBAAA,WACA,SAAAj/E,IACE,KAAAvpM,OAAS,CACPS,SAAS,EACTx2E,iBAAA,WAAmB,EACnBqzJ,cAAA,WACE,OAAO,GAETz8E,QAAA,WAAU,EACVG,oBAAA,WAAsB,EACtBh6E,YAAQ,EACRovX,eAAA,WAAiB,GAOX,OALR7sG,EAAAtoS,UAAA4iE,MAAA,WACM3zB,CAIE,EAAAq5P,CAAA,CAlBV,GA6IN,OAAOxmS,OAAOD,QAnHd,SACEsI,GAEA,OAAO,SAAC4pL,EAAUk8C,EAAU6+E,GAC1B,IAKIsmF,EALEj4U,GAAY,MAAAz+D,OAAA,EAAAA,EAAS22Y,aACvB32Y,EAAQ22Y,YAAYlrY,GACpBgqY,KAEEmB,EAAkB,IAAIJ,EAI5B,SAAAtyU,EAAe78C,GACbqvX,EAAcrvX,EACduvX,EAAgB1yU,OAAA,CAGlB,IAAM2yU,EAAW,WAAkB,OAAAC,GAAA,sHAmJ3C,SAAoBxzY,GAClB,OACY,OAAVA,GACiB,kBAAVA,GACe,oBAAfA,EAAMq8F,IAAS,CAnJVo3S,CADAC,EAAkB,OAAArpW,EAAA,MAAA3tC,OAAA,EAAAA,EAAS+7E,gBAAT,EAAApuC,EAAA3jC,KAAAhK,EAAqByL,EAAK,CAAE8lO,SAAAA,EAAU6+E,MAAAA,KAExC,GAAM4mF,GADtB,aACFA,EAAkBlF,EAAA7sU,wBAGpB,IAAwB,IAApB+xU,GAA6BJ,EAAgBv2S,OAAOS,QAEtD,KAAM,CACJ11F,KAAM,iBACNooC,QAAS,sDAuBC,OAlBRyjW,EAAiB,IAAIjgW,SAAe,SAACiH,EAAGsoB,GAC5C,OAAAqwU,EAAgBv2S,OAAO/1E,iBAAiB,SAAS,WAC/C,OAAAi8C,EAAO,CACLn7D,KAAM,aACNooC,QAASkjW,GAAe,WAF1B,GADF,IAOFrhN,EACElD,EACE1zH,EACAhzD,EACA,OAAAmgS,EAAA,MAAA5rS,OAAA,EAAAA,EAASk3Y,qBAAT,EAAAtrG,EAAA5hS,KAAAhK,EACE,CAAEy+D,UAAAA,EAAWhzD,IAAAA,GACb,CAAE8lO,SAAAA,EAAU6+E,MAAAA,MAIJ,GAAMp5Q,QAAQmgW,KAAK,CAC/BF,EACAjgW,QAAQnD,QACNsiW,EAAe1qY,EAAK,CAClB4pL,SAAAA,EACAk8C,SAAAA,EACA6+E,MAAAA,EACA3xP,UAAAA,EACA4hC,OAAQu2S,EAAgBv2S,OACxBn8B,MAAAA,EACAkzU,gBAAkB,SAChB9zY,EACAmzK,GAEA,OAAO,IAAIk/N,GAAgBryY,EAAOmzK,EAAA,EAEpC4gO,iBAAmB,SAAC/zY,EAAgBmzK,GAClC,OAAO,IAAIm/N,GAAgBtyY,EAAOmzK,EAAA,KAGtC92E,MAAK,SAACptF,GACN,GAAIA,aAAkBojY,GACpB,MAAMpjY,EAER,OAAIA,aAAkBqjY,GACbQ,EAAU7jY,EAAO6kD,QAASqH,EAAWhzD,EAAK8G,EAAOkkK,MAEnD2/N,EAAU7jY,EAAeksD,EAAWhzD,EAAA,qBA3B/C6rY,EAAcxF,EAAA7sU,sCA+BdqyU,EACEC,aAAe5B,GACXn2S,EAAS,KAAM/gC,EAAWhzD,EAAK8rY,EAAIngV,QAASmgV,EAAI9gO,MAChDj3E,EAAS+3S,EAAY94U,EAAWhzD,gBAgBxC,OAREzL,IACCA,EAAQw3Y,4BACTh4S,EAAS71F,MAAM2tY,IACdA,EAAoB7gO,KAAK16F,WAG1Bs5G,EAASiiN,GAEJ,CAAP,EAAOA,SAAA,CArFQ,GAuFjB,OAAOl0Y,OAAOD,OAAO0zY,EAAyB,CAC5C3yU,MAAAA,EACAzF,UAAAA,EACAhzD,IAAAA,EACAgsY,OAAA,WACE,OAAOZ,EAAQl3S,KAAU+3S,GAAA,OAY/B,CACEvlN,QAAAA,EACA3yF,SAAAA,EACA42S,UAAAA,EACAF,WAAAA,GAAA,CAMN,OAFAD,EAAiB0B,UAAY,WAAM,OAAA1B,CAAA,EAE5BA,CAAA,CAlPwB,GAmQ1B,SAAAyB,GACLp+X,GAEA,GAAIA,EAAOm9J,MAAQn9J,EAAOm9J,KAAK8/N,kBAC7B,MAAMj9X,EAAO89C,QAEf,GAAI99C,EAAOkC,MACT,MAAMlC,EAAOkC,MAEf,OAAOlC,EAAO89C,OAAA,CC7sBhB,IAAMrtC,GAAU,SAAC+8C,EAAuBxtD,GACtC,OAAI03X,GAAiBlqU,GACZA,EAAQn9D,MAAM2P,GAEdwtD,EAAQxtD,EAAA,EAaZ,SAAAs+X,SAAA,IAAA7wU,EAAA,GAAA30D,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA20D,EAAA30D,GAAAlF,UAAAkF,GAGL,OAAO,SAACkH,GACN,OAAOytD,EAASmoG,MAAK,SAACpoG,GAAY,OAAA/8C,GAAQ+8C,EAASxtD,EAAjB,GAAiB,EAahD,SAAAu+X,SAAA,IAAA9wU,EAAA,GAAA30D,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA20D,EAAA30D,GAAAlF,UAAAkF,GAGL,OAAO,SAACkH,GACN,OAAOytD,EAASrnC,OAAM,SAAConC,GAAY,OAAA/8C,GAAQ+8C,EAASxtD,EAAjB,GAAiB,EAUjD,SAAAw+X,GACLx+X,EACAy+X,GAEA,IAAKz+X,IAAWA,EAAOm9J,KAAM,OAAO,EAEpC,IAAMuhO,EAAqD,kBAA1B1+X,EAAOm9J,KAAKh4G,UACvCw5U,EACJF,EAAYn0Y,QAAQ0V,EAAOm9J,KAAK6/N,gBAAkB,EAEpD,OAAO0B,GAAqBC,CAAA,CAG9B,SAAAC,GAA2B5hY,GACzB,MACkB,oBAATA,EAAE,IACT,YAAaA,EAAE,IACf,cAAeA,EAAE,IACjB,aAAcA,EAAE,GAwCb,SAAA82T,SAAA,IAAA+qE,EAAA,GAAA/lY,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA+lY,EAAA/lY,GAAAlF,UAAAkF,GAGL,OAA2B,IAAvB+lY,EAAY53Y,OACP,SAAC+Y,GAAgB,OAAAw+X,GAA2Bx+X,EAAQ,CAAC,WAApC,EAGrB4+X,GAAkBC,GAIhB,SACL7+X,GAGA,IAAMytD,EAA8CoxU,EAAY3uY,KAC9D,SAAC4uY,GAAe,OAAAA,EAAWjmN,OAAX,IAKlB,OAFwBylN,GAAArqY,WAAA,EAAWw5D,EAE5BsxU,CAAgB/+X,EAAA,EAbhB8zT,KAAY+qE,EAAY,GAaR,CA0CpB,SAAAG,SAAA,IAAAH,EAAA,GAAA/lY,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA+lY,EAAA/lY,GAAAlF,UAAAkF,GAGL,OAA2B,IAAvB+lY,EAAY53Y,OACP,SAAC+Y,GAAgB,OAAAw+X,GAA2Bx+X,EAAQ,CAAC,YAApC,EAGrB4+X,GAAkBC,GAIhB,SACL7+X,GAGA,IAAMytD,EAA8CoxU,EAAY3uY,KAC9D,SAAC4uY,GAAe,OAAAA,EAAW54S,QAAX,IAKlB,OAFwBo4S,GAAArqY,WAAA,EAAWw5D,EAE5BsxU,CAAgB/+X,EAAA,EAbhBg/X,KAAaH,EAAY,GAaT,CA+CpB,SAAAI,SAAA,IAAAJ,EAAA,GAAA/lY,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA+lY,EAAA/lY,GAAAlF,UAAAkF,GAGL,IAAMomY,EAAU,SAACl/X,GACf,OAAOA,GAAUA,EAAOm9J,MAAQn9J,EAAOm9J,KAAK8/N,iBAAA,EAG9C,OAA2B,IAAvB4B,EAAY53Y,QAQX23Y,GAAkBC,GAPd,SAAC7+X,GAGN,OAFwBu+X,GAAQS,GAAA/qY,WAAA,EAAc4qY,GAAcK,EAErDH,CAAgB/+X,EAAA,EAKlBi/X,KAAsBJ,EAAY,GAQlB,CA0CpB,SAAAM,SAAA,IAAAN,EAAA,GAAA/lY,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA+lY,EAAA/lY,GAAAlF,UAAAkF,GAGL,OAA2B,IAAvB+lY,EAAY53Y,OACP,SAAC+Y,GAAgB,OAAAw+X,GAA2Bx+X,EAAQ,CAAC,aAApC,EAGrB4+X,GAAkBC,GAIhB,SACL7+X,GAGA,IAAMytD,EAA8CoxU,EAAY3uY,KAC9D,SAAC4uY,GAAe,OAAAA,EAAWhC,SAAX,IAKlB,OAFwBwB,GAAArqY,WAAA,EAAWw5D,EAE5BsxU,CAAgB/+X,EAAA,EAbhBm/X,KAAcN,EAAY,GAaV,CAiDpB,SAAAO,SAAA,IAAAP,EAAA,GAAA/lY,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAA+lY,EAAA/lY,GAAAlF,UAAAkF,GAGL,OAA2B,IAAvB+lY,EAAY53Y,OACP,SAAC+Y,GACN,OAAAw+X,GAA2Bx+X,EAAQ,CAAC,UAAW,YAAa,YAA5D,EAGC4+X,GAAkBC,GAIhB,SACL7+X,GAKA,IAFA,IAAMytD,EAA8C,GAE3B30D,EAAA,EAAAumY,EAAAR,EAAA/lY,EAAAumY,EAAAp4Y,OAAA6R,IAAa,CAAtC,IAAWgmY,EAAAO,EAAAvmY,GACT20D,EAASjmE,KACPs3Y,EAAWjmN,QACXimN,EAAW54S,SACX44S,EAAWhC,WAMf,OAFwBwB,GAAArqY,WAAA,EAAWw5D,EAE5BsxU,CAAgB/+X,EAAA,EAnBhBo/X,KAAqBP,EAAY,GAmBjB,CC7VR/0Y,OAAAD,OCxBZ,ID8BDy1Y,GAAM,qBA8Me3H,GACtB2H,GAAA,QAM4B3H,GAAgB2H,GAAA,cAKnB3H,GACzB2H,GAAA,WExSE,IAWHtyU,GAXSuyU,GAAmB,gBAEnBC,GACX,WACA,gBAAC1hV,SAA+C,OAC9CA,QAAAA,EACAq/G,MAAAq7N,EAAA,GAAMA,EAAG+G,KAAmB,EAAA/G,GAFkB,CAAhD,EAyBIiH,IAhBsB,oBAAnBjtN,gBACHA,eAAep/J,KACK,qBAAXkW,OACHA,OACkB,qBAAX+qD,EAAAA,EACPA,EAAAA,EACAkQ,YAUiB,SAACt6E,GAC5B,OAAO,SAAC0sT,GACNtsT,WAAWssT,EAAQ1sT,EAAA,IAOH,qBAAXqf,QAA0BA,OAAOwxP,sBACpCxxP,OAAOwxP,sBACP2kH,GAAqB,IClB3BC,KCtBA,IAAIC,GAAY,YAgFT,IAAIC,GAAuB,SAA8B5iY,EAAGmgB,GACjE,OAAOngB,IAAMmgB,CACf,EAqBO,SAAS0iX,GAAentY,EAAMotY,GACnC,IAAIC,EAAoD,kBAA3BD,EAAsCA,EAAyB,CAC1FE,cAAeF,GAEbG,EAAwBF,EAAgBC,cACxCA,OAA0C,IAA1BC,EAAmCL,GAAuBK,EAC1EC,EAAwBH,EAAgBljT,QACxCA,OAAoC,IAA1BqjT,EAAmC,EAAIA,EACjDC,EAAsBJ,EAAgBI,oBACtC9wP,EA7BC,SAAkC2wP,GACvC,OAAO,SAAoCj0Y,EAAMC,GAC/C,GAAa,OAATD,GAA0B,OAATC,GAAiBD,EAAK9E,SAAW+E,EAAK/E,OACzD,OAAO,EAMT,IAFA,IAAIA,EAAS8E,EAAK9E,OAET4B,EAAI,EAAGA,EAAI5B,EAAQ4B,IAC1B,IAAKm3Y,EAAcj0Y,EAAKlD,GAAImD,EAAKnD,IAC/B,OAAO,EAIX,OAAO,CACT,CACF,CAYmBu3Y,CAAyBJ,GACtCnuY,EAAoB,IAAZgrF,EA/Gd,SAA8B3H,GAC5B,IAAIvQ,EACJ,MAAO,CACLh1E,IAAK,SAAa7H,GAChB,OAAI68E,GAASuQ,EAAOvQ,EAAM78E,IAAKA,GACtB68E,EAAM36E,MAGR21Y,EACT,EACAj4V,IAAK,SAAa5/C,EAAKkC,GACrB26E,EAAQ,CACN78E,IAAKA,EACLkC,MAAOA,EAEX,EACAq2Y,WAAY,WACV,OAAO17T,EAAQ,CAACA,GAAS,EAC3B,EACAp6D,MAAO,WACLo6D,OAAQj9E,CACV,EAEJ,CAwF8B44Y,CAAqBjxP,GAtFnD,SAAwBxyD,EAAS3H,GAC/B,IAAIh9D,EAAU,GAEd,SAASvoB,EAAI7H,GACX,IAAIy4Y,EAAaroX,EAAQq8F,WAAU,SAAU5vC,GAC3C,OAAOuQ,EAAOptF,EAAK68E,EAAM78E,IAC3B,IAEA,GAAIy4Y,GAAc,EAAG,CACnB,IAAI57T,EAAQzsD,EAAQqoX,GAOpB,OALIA,EAAa,IACfroX,EAAQs7C,OAAO+sU,EAAY,GAC3BroX,EAAQojB,QAAQqpC,IAGXA,EAAM36E,KACf,CAGA,OAAO21Y,EACT,CAwBA,MAAO,CACLhwY,IAAKA,EACL+3C,IAxBF,SAAa5/C,EAAKkC,GACZ2F,EAAI7H,KAAS63Y,KAEfznX,EAAQojB,QAAQ,CACdxzC,IAAKA,EACLkC,MAAOA,IAGLkuB,EAAQjxB,OAAS41F,GACnB3kE,EAAQ2sC,MAGd,EAaEw7U,WAXF,WACE,OAAOnoX,CACT,EAUE3N,MARF,WACE2N,EAAU,EACZ,EAQF,CAmCiEsoX,CAAe3jT,EAASwyD,GAEvF,SAASoxP,IACP,IAAIz2Y,EAAQ6H,EAAMlC,IAAIiE,WAEtB,GAAI5J,IAAU21Y,GAAW,CAIvB,GAFA31Y,EAAQ0I,EAAKuB,MAAM,KAAML,WAErBusY,EAAqB,CACvB,IACIO,EADU7uY,EAAMwuY,aACQnnR,MAAK,SAAUv0C,GACzC,OAAOw7T,EAAoBx7T,EAAM36E,MAAOA,EAC1C,IAEI02Y,IACF12Y,EAAQ02Y,EAAc12Y,MAE1B,CAEA6H,EAAM61C,IAAI9zC,UAAW5J,EACvB,CAEA,OAAOA,CACT,CAMA,OAJAy2Y,EAASE,WAAa,WACpB,OAAO9uY,EAAM0Y,OACf,EAEOk2X,CACT,CChIO,SAASG,GAAsB5uY,GACpC,IAAK,IAAI2B,EAAOC,UAAU3M,OAAQ45Y,EAAyB,IAAIpwY,MAAMkD,EAAO,EAAIA,EAAO,EAAI,GAAIG,EAAO,EAAGA,EAAOH,EAAMG,IACpH+sY,EAAuB/sY,EAAO,GAAKF,UAAUE,GAiF/C,OA9EqB,WACnB,IAAK,IAAImzB,EAAQrzB,UAAU3M,OAAQ+/B,EAAQ,IAAIv2B,MAAMw2B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACrFF,EAAME,GAAStzB,UAAUszB,GAG3B,IAEI45W,EAFAC,EAAkB,EAOlBC,EAAwB,CAC1BC,oBAAgBv5Y,GAGdw5Y,EAAal6W,EAAM69B,MAQvB,GAN0B,kBAAfq8U,IACTF,EAAwBE,EAExBA,EAAal6W,EAAM69B,OAGK,oBAAfq8U,EACT,MAAM,IAAItoY,MAAM,qFAAuFsoY,EAAa,KAKtH,IACIC,EADwBH,EACuBC,eAC/CA,OAA4C,IAA3BE,EAAoCN,EAAyBM,EAM9EC,EAAsB3wY,MAAMiI,QAAQuoY,GAAkBA,EAAiB,CAACA,GACxErpN,EA3DR,SAAyB5wJ,GACvB,IAAI4wJ,EAAennL,MAAMiI,QAAQsuB,EAAM,IAAMA,EAAM,GAAKA,EAExD,IAAK4wJ,EAAaxxJ,OAAM,SAAUqX,GAChC,MAAsB,oBAARA,CAChB,IAAI,CACF,IAAI4jW,EAAkBzpN,EAAa1nL,KAAI,SAAUutC,GAC/C,MAAsB,oBAARA,EAAqB,aAAeA,EAAI3rC,MAAQ,WAAa,YAAc2rC,CAC3F,IAAGhwC,KAAK,MACR,MAAM,IAAImL,MAAM,kGAAoGyoY,EAAkB,IACxI,CAEA,OAAOzpN,CACT,CA8CuB0pN,CAAgBt6W,GAC/Bu6W,EAAqBvvY,EAAQiC,WAAM,EAAQ,CAAC,WAG9C,OAFA8sY,IAEOG,EAAWjtY,MAAM,KAAML,UAChC,GAAGpC,OAAO4vY,IAEN3vY,EAAWO,GAAQ,WAIrB,IAHA,IAAIsM,EAAS,GACTrX,EAAS2wL,EAAa3wL,OAEjB4B,EAAI,EAAGA,EAAI5B,EAAQ4B,IAG1ByV,EAAO9W,KAAKowL,EAAa/uL,GAAGoL,MAAM,KAAML,YAK1C,OADAktY,EAAcS,EAAmBttY,MAAM,KAAMqK,EAE/C,IAeA,OAdAxU,OAAOD,OAAO4H,EAAU,CACtByvY,WAAYA,EACZK,mBAAoBA,EACpB3pN,aAAcA,EACd5hC,WAAY,WACV,OAAO8qP,CACT,EACAU,eAAgB,WACd,OAAOT,CACT,EACAU,oBAAqB,WACnB,OAAOV,EAAkB,CAC3B,IAEKtvY,CACT,CAIF,CACO,ICtEKiwY,GAAAC,GDsEDC,GAAgChB,GAAsBf,ijECtErD8B,GAAAD,KAAAA,GAAA,KACV,cAAgB,gBAChBC,GAAA,QAAU,UACVA,GAAA,UAAY,YACZA,GAAA,SAAW,WChCN,SAAAE,GACL7mX,EACA3L,GAEA,IAAK2L,EACH,OAAO3L,EAET,IAAKA,EACH,OAAO2L,EAGT,GCVK,SAAuB3L,GAC5B,OAAO,IAAIsF,OAAO,WAAWjD,KAAKrC,EAAA,CDS9ByyX,CAAczyX,GAChB,OAAOA,EAGT,IAAM9iB,EAAYyuB,EAAKqtC,SAAS,OAASh5C,EAAI+4C,WAAW,KAAO,IAAM,GAIrE,OAHAptC,EAnB2B,SAAC3L,GAAgB,OAAAA,EAAIplB,QAAQ,MAAO,GAAnB,CAmBrC83Y,CAAqB/mX,GAGrB,GAAGA,EAAOzuB,GAFjB8iB,EAnB0B,SAACA,GAAgB,OAAAA,EAAIplB,QAAQ,MAAO,GAAnB,CAmBrC+3Y,CAAoB3yX,GAEG,CEnBxB,IAAM4yX,GAAU,SAAChlY,GAAwB,SAAGzL,OAAAyC,MAAH,GAAagJ,EAAb,ECFhD,IAAMya,GAAqCwqX,GAGpC,SAAAC,GAAmCC,EAAa3pM,GACrD,GACE2pM,IAAW3pM,KAER/gL,GAAc0qX,IAAW1qX,GAAc+gL,IACvChoM,MAAMiI,QAAQ0pY,IAAW3xY,MAAMiI,QAAQ+/L,IAG1C,OAAOA,EAOT,IALA,IAAM4pM,EAAUv4Y,OAAO4pB,KAAK+kL,GACtB6pM,EAAUx4Y,OAAO4pB,KAAK0uX,GAExBG,EAAeF,EAAQp7Y,SAAWq7Y,EAAQr7Y,OACxCu7Y,EAAgB/xY,MAAMiI,QAAQ+/L,GAAU,GAAK,CAAC,EAClC4iB,EAAA,EAAAonL,EAAAJ,EAAAhnL,EAAAonL,EAAAx7Y,OAAAo0N,IAAS,CAA3B,IAAWvzN,EAAA26Y,EAAApnL,GACTmnL,EAAS16Y,GAAOq6Y,GAA0BC,EAAOt6Y,GAAM2wM,EAAO3wM,IAC1Dy6Y,IAAcA,EAAeH,EAAOt6Y,KAAS06Y,EAAS16Y,IAE5D,OAAOy6Y,EAAeH,EAASI,CAAA,CCcjC,IAAME,GAA+B,mBAAA7uY,EAAA,GAAAwnN,EAAA,EAAAA,EAAAznN,UAAA3M,OAAAo0N,IAAAxnN,EAAAwnN,GAAAznN,UAAAynN,GAAa,OAAA32H,MAAAzwF,WAAA,EAASJ,EAAT,EAE5C8uY,GAAwB,SAACv6V,GAC7B,OAAAA,EAAS4P,QAAU,KAAO5P,EAAS4P,QAAU,GAA7C,EAEI4qV,GAA2B,SAACn6V,GACnB,+BAAyB/2B,KAAK+2B,EAAQ94C,IAAI,iBAAmB,GAA7D,EAmDf,SAAAkzY,GAAwBrqY,GACtB,IAAKsqY,GAActqY,GACjB,OAAOA,EAGT,IADA,IAAM1M,EAA4BisY,GAAA,GAAKv/X,GAClB6iN,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAAQpsB,GAAfuvN,EAAA0nL,EAAA97Y,OAAAo0N,IAAsB,CAAhC,IAAA2nL,EAAAD,EAAA1nL,GAACtsN,EAAAi0Y,EAAA,QACA,IADGA,EAAA,WACel3Y,EAAKiD,GAEnC,OAAOjD,CAAA,CCxGF,IAAAm3Y,GACL,SACkBj5Y,EACAmzK,QAAA,IAAAA,IAAAA,OAAA,GADA,KAAAnzK,MAAAA,EACA,KAAAmzK,KAAAA,CAAA,ECoEpB,ICiIY+lO,GAAAC,GClMCjyX,GAA0BymX,GAAa,kBACvCyL,GAA8BzL,GAAa,oBAC3C0L,GAA2B1L,GAAa,iBACxC2L,GAA4B3L,GAAa,kBAElDn2G,IAAc,EAkBX,SAAA+hH,GACLxnN,EACAynN,GAiDA,OAAOA,EACHA,EAAcznN,EAAU,CAAE7qK,QAAAA,GAASkyX,YAAAA,GAAaE,UAAAA,GAAWD,SAAAA,KAxC/D,WACE,IAAMI,EAAc,WAAM,OAAA1nN,EAAS7qK,KAAT,EAEpBwyX,EAAe,WAAM,OAAA3nN,EAASsnN,KAAT,EACrBM,EAAgB,WAAM,OAAA5nN,EAASunN,KAAT,EACtBjzX,EAAyB,WACW,YAApCiZ,OAAOhhC,SAASgoB,gBAClBmzX,IAL0B1nN,EAASqnN,KAOnC,EA2BJ,OAvBK5hH,IACmB,qBAAXl4P,QAA0BA,OAAOtY,mBAE1CsY,OAAOtY,iBACL,mBACAX,GACA,GAEFiZ,OAAOtY,iBAAiB,QAASyyX,GAAa,GAG9Cn6W,OAAOtY,iBAAiB,SAAU0yX,GAAc,GAChDp6W,OAAOtY,iBAAiB,UAAW2yX,GAAe,GAClDniH,IAAc,GAGE,WAClBl4P,OAAOy+D,oBAAoB,QAAS07S,GACpCn6W,OAAOy+D,oBAAoB,mBAAoB13E,GAC/CiZ,OAAOy+D,oBAAoB,SAAU27S,GACrCp6W,OAAOy+D,oBAAoB,UAAW47S,GACtCniH,IAAc,EAET,CAKLoiH,EAAA,CD+iBC,SAAAC,GACL16Y,GAEA,OAAOA,EAAEuC,OAASw3Y,GAAe5pW,KAAA,CAwF5B,SAAAwqW,GACL/iL,EAGA9nN,EACAiJ,EACA6hY,EACA5mO,EACA6mO,GAEA,OAgBF,SAAuBprX,GACrB,MAAoB,oBAANA,CAAM,CAjBhBuhH,CAAW4mF,GACNA,EACL9nN,EACAiJ,EACA6hY,EACA5mO,GAECjtK,IAAI+zY,IACJ/zY,IAAI8zY,GAELvzY,MAAMiI,QAAQqoN,GACTA,EAAY7wN,IAAI+zY,IAAsB/zY,IAAI8zY,GAE5C,GAOF,SAAAC,GACLljL,GAEA,MAA8B,kBAAhBA,EAA2B,CAAEr1N,KAAMq1N,GAAgBA,CAAA,CE7vB5D,SAAAmjL,GAAyBjpY,GAC9B,OAAY,MAALA,CAAK,EFuMFkoY,GAAAD,KAAAA,GAAA,KACV,MAAQ,QACRC,GAAA,SAAW,WGrKN,IAAMgB,GAAqB/8W,OAAO,gBAC5Bg9W,GAAgB,SAACjyY,GAC5B,MAAmC,oBAA5BA,EAAIgyY,GAAX,ECgHF,SAAAE,GAAkCC,GAChC,OAAOA,CAAA,CA6fF,SAAAC,GACLvkY,EAGAtU,EACA84Y,EACAC,GAEA,OAAOX,GACLU,EAAoBxkY,EAAOm9J,KAAKhrK,IAAIuyY,cAAch5Y,GAClDyzY,GAAYn/X,GAAUA,EAAO89C,aAAU,EACvCmhV,GAAoBj/X,GAAUA,EAAO89C,aAAU,EAC/C99C,EAAOm9J,KAAKhrK,IAAIwyY,aAChB,kBAAmB3kY,EAAOm9J,KAAOn9J,EAAOm9J,KAAKynO,mBAAgB,EAC7DH,EAAA,CCrnBJ,SAAAI,GACEl2X,EACAm2X,EACA5xW,GAEA,IAAM6xW,EAAWp2X,EAAMm2X,GACnBC,GACF7xW,EAAO6xW,EAAA,CAcJ,SAAAC,GACL16W,GApEF,IAAA+J,EAyEE,OAAQ,OAAAA,EAAA,QAAS/J,EAAKA,EAAGn4B,IAAI8yY,cAAgB36W,EAAG26W,eAAxC5wW,EAA0D/J,EAAG66B,SAAA,CAGvE,SAAA+/U,GACEv2X,EACA2b,EAGA4I,GAEA,IAAM6xW,EAAWp2X,EAAMq2X,GAAoB16W,IACvCy6W,GACF7xW,EAAO6xW,EAAA,CAIX,IAAMvK,GAAe,CAAC,EAEf,SAAA2K,GAAoB9pL,OACzB+pL,EAAA/pL,EAAA+pL,YACAC,EAAAhqL,EAAAgqL,WACAC,EAAAjqL,EAAAiqL,cACAvC,EAAA1nL,EAAA75J,QACuB+jV,EAAAxC,EAAAyB,oBACrBgB,EAAAzC,EAAAyC,OACAC,EAAA1C,EAAA0C,uBACAC,EAAA3C,EAAA2C,mBAEFjB,EAAAppL,EAAAopL,cACAhmY,EAAA48M,EAAA58M,OAYMknY,EAAgBC,GAAgBR,EAAA,kBAChCS,EAAavL,GAAY,CAC7BxoY,KAASszY,EAAA,WACT5K,aAAAA,GACAnE,SAAU,CACRyP,kBAAmB,CACjBtQ,QAAA,SACEoG,EACAvgL,UAEOugL,EAFMvgL,EAAAv9J,QAAAgnV,cAEA,EAEf5I,QAASsD,MAEXuG,mBAAoB,CAClBvQ,QAAA,SACEoG,EACAvgL,OACE0nL,EAAA1nL,EAAAv9J,QAAWgnV,EAAA/B,EAAA+B,cAAekB,EAAAjD,EAAAiD,QAK5BnB,GAA4BjJ,EAAOkJ,GAAe,SAACC,GACjDA,EAASjpY,KAAO84X,GAAamQ,EAASjpY,KAAakqY,EAAQx0Y,SAAA,KAG/D0qY,QAASsD,OAKb1E,cAAA,SAAcp2U,GACZA,EACGw1U,QAAQmL,EAAWxsN,SAAS,SAAC+iN,EAAOvgL,OApJ7ChnL,EAoJ+C8oI,EAAAk+C,EAAAl+C,KAAchrK,EAAAkpN,EAAAl+C,KAAAhrK,IAC7C8zY,EAAY7B,GAAcjyY,IAC5BA,EAAIilU,WAAa6uE,KAEnB,MAAArK,EAAAvnW,EAAMliC,EAAI2yY,iBAAVlJ,EAAAvnW,GAA6B,CAC3B2jB,OAAQ0pV,GAAYwE,cACpBxB,aAAcvyY,EAAIuyY,gBAItBG,GAA4BjJ,EAAOzpY,EAAI2yY,eAAe,SAACC,GACrDA,EAAS/sV,OAAS0pV,GAAY7oN,QAE9BksN,EAAS5/U,UACP8gV,GAAalB,EAAS5/U,UAElB4/U,EAAS5/U,UAETg4G,EAAKh4G,eACc,IAArBhzD,EAAIwyY,eACNI,EAASJ,aAAexyY,EAAIwyY,cAE9BI,EAASoB,iBAAmBhpO,EAAKgpO,gBAAA,OAGpCjM,QAAQmL,EAAWvI,WAAW,SAAClB,EAAOvgL,OAAEl+C,EAAAk+C,EAAAl+C,KAAMr/G,EAAAu9J,EAAAv9J,QAC7C+mV,GACEjJ,EACAz+N,EAAKhrK,IAAI2yY,eACT,SAACC,GAjLb,IAAA1wW,EAkLc,GACE0wW,EAAS5/U,YAAcg4G,EAAKh4G,WAC3Bi/U,GAAcjnO,EAAKhrK,KAFtB,CAKQ,IAAAwsB,EAAU4mX,EAChBpoO,EAAKhrK,IAAIuyY,cAAA/lX,MAIX,GAFAomX,EAAS/sV,OAAS0pV,GAAY5E,UAE1Bn+W,EACF,QAAsB,IAAlBomX,EAASjpY,KAAoB,CACvB,IAAAsqY,EACNjpO,EAAAkpO,mBAD0BC,EAC1BnpO,EAAAhrK,IAD+Bo0Y,EAC/BppO,EAAAynO,cAD8C4B,EAC9CrpO,EAAAh4G,UAKE8pJ,EAAUqpL,GACZyM,EAASjpY,MACT,SAAC2qY,GAEC,OAAO9nX,EAAM8nX,EAAmB3oV,EAAS,CACvC3rD,IAAKm0Y,EAAI3B,aACTC,cAAA2B,EACAF,mBAAAD,EACAjhV,UAAAqhV,GAAA,IAINzB,EAASjpY,KAAOmzM,OAGhB81L,EAASjpY,KAAOgiD,OAIlBinV,EAASjpY,KACP,OAAAu4B,EAAAkxW,EAAYpoO,EAAKhrK,IAAIuyY,cAAcgC,oBAAnCryW,EACI8tW,GACEwE,GAAQ5B,EAASjpY,MlD3LjC,SA0BiB8c,GAAA,OACnBF,GAAQE,IAAQ/D,GAAI,GAAI+D,GACtBA,EAAMuxE,IAAavxE,CAAA,CkDgKCu3H,CAAS40P,EAASjpY,MAClBipY,EAASjpY,KACbgiD,GAEFA,SAGDinV,EAAS7iY,MAChB6iY,EAASsB,mBAAqBlpO,EAAKkpO,kBA7C3B,CA6C2B,OAIxCnM,QACCmL,EAAWn/S,UACX,SAAC01S,EAAOvgL,OAAE0nL,EAAA1nL,EAAAl+C,KAAQ16F,EAAAsgU,EAAAtgU,UAAWtwE,EAAA4wY,EAAA5wY,IAAKgzD,EAAA49U,EAAA59U,UAAajjD,EAAAm5M,EAAAn5M,MAAO47C,EAAAu9J,EAAAv9J,QACpD+mV,GACEjJ,EACAzpY,EAAI2yY,eACJ,SAACC,GACC,GAAItiU,OAEG,CAEL,GAAIsiU,EAAS5/U,YAAcA,EAAW,OACtC4/U,EAAS/sV,OAAS0pV,GAAYx7S,SAC9B6+S,EAAS7iY,MAAS,MAAA47C,EAAAA,EAAW57C,EAAA,OAMtCk4X,WAAWsL,GAAoB,SAAC9J,EAAO57X,GAEtC,IADQ,IAAAq6H,EAAYorQ,EAAuBzlY,GAAAq6H,QAChBghF,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAAQmiH,GAAfghF,EAAA0nL,EAAA97Y,OAAAo0N,IAAyB,CAAzC,IAAA2nL,EAAAD,EAAA1nL,GAACvzN,EAAAk7Y,EAAA,GAAKr+T,EAAAq+T,EAAA,IAGb,MAAAr+T,OAAA,EAAAA,EAAO3sB,UAAW0pV,GAAY5E,YAC9B,MAAAn4T,OAAA,EAAAA,EAAO3sB,UAAW0pV,GAAYx7S,WAE9B01S,EAAM9zY,GAAO68E,GAAA,OAMnBiiU,EAAgBtM,GAAY,CAChCxoY,KAASszY,EAAA,aACT5K,aAAAA,GACAnE,SAAU,CACRwQ,qBAAsB,CACpBrR,QAAA,SAAQoG,EAAOvgL,OACP30K,EAAWs+V,GADF3pL,EAAAv9J,SAEXpX,KAAYk1V,UACPA,EAAMl1V,EAAA,EAGjBw1V,QAASsD,OAGb1E,cAAA,SAAcp2U,GACZA,EACGw1U,QACCoL,EAAczsN,SACd,SAAC+iN,EAAOvgL,OAAEl+C,EAAAk+C,EAAAl+C,KAAM4lO,EAAA1nL,EAAAl+C,KAAQh4G,EAAA49U,EAAA59U,UAAWhzD,EAAA4wY,EAAA5wY,IAAKg0Y,EAAApD,EAAAoD,iBACjCh0Y,EAAIirK,QAETw+N,EAAMoJ,GAAoB7nO,IAAS,CACjCh4G,UAAAA,EACAnN,OAAQ0pV,GAAY7oN,QACpB6rN,aAAcvyY,EAAIuyY,aAClByB,iBAAAA,GAAA,IAILjM,QAAQoL,EAAcxI,WAAW,SAAClB,EAAOvgL,OAAEv9J,EAAAu9J,EAAAv9J,QAASq/G,EAAAk+C,EAAAl+C,KAC9CA,EAAKhrK,IAAIirK,OAEd8nO,GAA+BtJ,EAAOz+N,GAAM,SAAC4nO,GACvCA,EAAS5/U,YAAcg4G,EAAKh4G,YAChC4/U,EAAS/sV,OAAS0pV,GAAY5E,UAC9BiI,EAASjpY,KAAOgiD,EAChBinV,EAASsB,mBAAqBlpO,EAAKkpO,mBAAA,OAGtCnM,QAAQoL,EAAcp/S,UAAU,SAAC01S,EAAOvgL,OAAEv9J,EAAAu9J,EAAAv9J,QAAS57C,EAAAm5M,EAAAn5M,MAAOi7J,EAAAk+C,EAAAl+C,KACpDA,EAAKhrK,IAAIirK,OAEd8nO,GAA+BtJ,EAAOz+N,GAAM,SAAC4nO,GACvCA,EAAS5/U,YAAcg4G,EAAKh4G,YAEhC4/U,EAAS/sV,OAAS0pV,GAAYx7S,SAC9B6+S,EAAS7iY,MAAS,MAAA47C,EAAAA,EAAW57C,EAAA,OAGhCk4X,WAAWsL,GAAoB,SAAC9J,EAAO57X,GAEtC,IADQ,IAAA8mY,EAAcrB,EAAuBzlY,GAAA8mY,UAClBzrL,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAAQ4uX,GAAfzrL,EAAA0nL,EAAA97Y,OAAAo0N,IAA2B,CAA3C,IAAA2nL,EAAAD,EAAA1nL,GAACvzN,EAAAk7Y,EAAA,GAAKr+T,EAAAq+T,EAAA,IAGZ,MAAAr+T,OAAA,EAAAA,EAAO3sB,UAAW0pV,GAAY5E,YAC7B,MAAAn4T,OAAA,EAAAA,EAAO3sB,UAAW0pV,GAAYx7S,UAEhCp+F,KAAQ,MAAA68E,OAAA,EAAAA,EAAOxf,aAEfy2U,EAAM9zY,GAAO68E,GAAA,OAOnBoiU,EAAoBzM,GAAY,CACpCxoY,KAASszY,EAAA,gBACT5K,aAAAA,GACAnE,SAAU,CACR2Q,iBAAkB,CAChBxR,QAAA,SACEoG,EACA57X,GAOA,IAxVV,IAAAq0B,EAAAi+P,EAAAkmG,EAAAhmM,EAsVgB6oB,EAAkCr7M,EAAO89C,QAAvCgnV,EAAAzpL,EAAAypL,cAAemC,EAAA5rL,EAAA4rL,aAEYlE,EAAA,EAAAC,EAAAl5Y,OAAOqrB,OAAOymX,GAAdmH,EAAAC,EAAA/7Y,OAAA87Y,IACjC,IADF,IAAWmE,EAAAlE,EAAAD,GACqBoE,EAAA,EAAAC,EAAAt9Y,OAAOqrB,OAAO+xX,GAAdC,EAAAC,EAAAngZ,OAAAkgZ,IAAqC,CAAnE,IAAWE,EAAAD,EAAAD,GACHG,EAAUD,EAAgB/8Y,QAAQw6Y,IACvB,IAAbwC,GACFD,EAAgB7zU,OAAO8zU,EAAS,GAKtC,IAA2B,IAAAC,EAAA,EAAAC,EAAAP,EAAAM,EAAAC,EAAAvgZ,OAAAsgZ,IAAc,CAA9B,IAAAE,EAAAD,EAAAD,GAAE77Y,EAAA+7Y,EAAA/7Y,KAAM4+B,EAAAm9W,EAAAn9W,GACXo9W,EAAsB,OAAAl1M,GAAA8/F,EAAA,OAAAj+P,EAAAunW,EAAAlwY,IAAA2oC,EAAAunW,EAAAlwY,GAAgB,CAAC,GAAjB8sY,EAC1BluW,GAAM,0BADoBkoK,EAAA8/F,EAAAkmG,GAEtB,GACoBkP,EAAkB1yV,SAAS8vV,IAEnD4C,EAAkBlgZ,KAAKs9Y,GAAA,EAI7B5I,QAASsD,OAMb1E,cAAA,SAAcp2U,GACZA,EACGw1U,QACC2L,EAAW1rG,QAAQ2rG,mBACnB,SAAClK,EAAOvgL,GACN,QADmBypL,EAAAzpL,EAAAv9J,QAAAgnV,cACgB/B,EAAA,EAAAC,EAAAl5Y,OAAOqrB,OAAOymX,GAAdmH,EAAAC,EAAA/7Y,OAAA87Y,IACjC,IADF,IAAWmE,EAAAlE,EAAAD,GACqBoE,EAAA,EAAAC,EAAAt9Y,OAAOqrB,OACnC+xX,GAD4BC,EAAAC,EAAAngZ,OAAAkgZ,IAE3B,CAFH,IAAWE,EAAAD,EAAAD,GAGHG,EAAUD,EAAgB/8Y,QAAQw6Y,IACvB,IAAbwC,GACFD,EAAgB7zU,OAAO8zU,EAAS,OAMzClN,WAAWsL,GAAoB,SAAC9J,EAAO57X,GAEtC,IApYV,IAAAq0B,EAAAi+P,EAAAkmG,EAAAhmM,EAmYkBm1M,EAAalC,EAAuBzlY,GAAA2nY,SACTtsL,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAAQyvX,GAAftsL,EAAA0nL,EAAA97Y,OAAAo0N,IACjC,IADS,IAAA2nL,EAAAD,EAAA1nL,GAAC3vN,EAAAs3Y,EAAA,GAAM4E,EAAA5E,EAAA,GACcmE,EAAA,EAAAC,EAAAt9Y,OAAOouB,QAAQ0vX,GAAfT,EAAAC,EAAAngZ,OAAAkgZ,IAI5B,IAJS,IAAAI,EAAAH,EAAAD,GAAC78W,EAAAi9W,EAAA,GAAIM,EAAAN,EAAA,GACRG,EAAsB,OAAAl1M,GAAA8/F,EAAA,OAAAj+P,EAAAunW,EAAAlwY,IAAA2oC,EAAAunW,EAAAlwY,GAAgB,CAAC,GAAjB8sY,EAC1BluW,GAAM,0BADoBkoK,EAAA8/F,EAAAkmG,GAEtB,GACsBiP,EAAA,EAAAK,EAAAD,EAAAJ,EAAAK,EAAA7gZ,OAAAwgZ,IAAW,CAAvC,IAAW3C,EAAAgD,EAAAL,GAEPC,EAAkB1yV,SAAS8vV,IAE3B4C,EAAkBlgZ,KAAKs9Y,GAAA,IAMhC1K,WACCkE,GAAQyJ,GAAY1C,GAAa2C,GAAoB3C,KACrD,SAACzJ,EAAO57X,GACN,IAAMinY,EAAe1C,GACnBvkY,EACA,eACAulY,EACAd,GAEMK,EAAkB9kY,EAAOm9J,KAAKhrK,IAAA2yY,cAEtCiC,EAAkBzL,aAAa0L,iBAC7BpL,EACAmL,EAAkB5sG,QAAQ6sG,iBAAiB,CACzClC,cAAAA,EACAmC,aAAAA,IAAA,OASRgB,EAAoB3N,GAAY,CACpCxoY,KAASszY,EAAA,iBACT5K,aAAAA,GACAnE,SAAU,CACR6R,0BAAA,SACEjsY,EACAe,GAOA,EAGFmrY,uBAAA,SACElsY,EACAe,GACA,EAGForY,2BAAA,SACEnsY,EACAe,GACA,KAMAqrY,EAA6B/N,GAAY,CAC7CxoY,KAASszY,EAAA,yBACT5K,aAAAA,GACAnE,SAAU,CACRiS,qBAAsB,CACpB9S,QAAA,SAAQ7mX,EAAO3O,GACb,OAAO40X,GAAajmX,EAAO3O,EAAO89C,QAAA,EAEpCo+U,QAASsD,SAKT+I,EAAcjO,GAAY,CAC9BxoY,KAASszY,EAAA,UACT5K,aAAczC,GAAA,CACZyQ,OCpdwB,qBAAdn/T,gBAEW,IAArBA,UAAU6zQ,QAEV7zQ,UAAU6zQ,ODidVl1T,QErdoB,qBAAb1/B,UAIyB,WAA7BA,SAASgoB,gBFkdZm4X,sBAAsB,GACnBhqY,GAEL43X,SAAU,CACRoS,qBAAA,SAAqB95X,EAAO0sM,OAAEv9J,EAAAu9J,EAAAv9J,QAC5BnvC,EAAM85X,qBAC2B,aAA/B95X,EAAM85X,sBAAuCjD,IAAW1nV,GACpD,UACA,GAGVg9U,cAAe,SAACp2U,GACdA,EACGw1U,QAAQmJ,IAAU,SAAC10X,GAClBA,EAAM65X,QAAS,KAEhBtO,QAAQoJ,IAAW,SAAC30X,GACnBA,EAAM65X,QAAS,KAEhBtO,QAAQhpX,IAAS,SAACvC,GACjBA,EAAMqZ,SAAU,KAEjBkyW,QAAQkJ,IAAa,SAACz0X,GACrBA,EAAMqZ,SAAU,KAIjBoyW,WAAWsL,GAAoB,SAAC9J,GAAW,OAAA7D,GAAA,GAAK6D,EAAL,GAAK,IAIjD8M,EAAkBtS,GAEtB,CACA/7P,QAASwrQ,EAAWrQ,QACpBsR,UAAWF,EAAcpR,QACzBmS,SAAUZ,EAAkBvR,QAC5BmT,cAAeN,EAA2B7S,QAC1C/2X,OAAQ8pY,EAAY/S,UAkBtB,MAAO,CAAEA,QAf+B,SAAC7mX,EAAO3O,GAC9C,OAAA0oY,EAAgB/C,EAAct1Y,MAAM2P,QAAU,EAAY2O,EAAO3O,EAAjE,EAcgBm6R,QAZF4iG,GAAAhF,GAAAA,GAAAA,GAAAA,GAAAA,GAAAA,GAAA,GACXwQ,EAAYpuG,SACZ0rG,EAAW1rG,SACX8tG,EAAkB9tG,SAClBkuG,EAA2BluG,SAC3BysG,EAAczsG,SACd4sG,EAAkB5sG,SANP,CAQdyuG,0BAA2BhC,EAAczsG,QAAQ0sG,qBACjDlB,cAAAA,IAGgB,CGteb,IAAMkD,GAA4BzhX,OAAOuiG,IAAI,kBA2D9Cm/Q,GAAsC,CAC1C9wV,OAAQ0pV,GAAYwE,eAIhB6C,GAAuCpN,GAC3CmN,IACA,WAAM,IAEFE,GAA0CrN,GAC9CmN,IACA,WAAM,IAGD,SAAAG,GAGL5tL,OACA6tL,EAAA7tL,EAAA6tL,mBACA9D,EAAA/pL,EAAA+pL,YAOM+D,EAAqB,SAACx6X,GAAqB,OAAAo6X,EAAA,EAC3CK,EAAwB,SAACz6X,GAAqB,OAAAq6X,EAAA,EAEpD,MAAO,CAAEK,mBAyBT,SACE3E,EACA4E,GAEA,OAAQ,SAACC,GACP,IAAMC,EAAiBN,EAAmB,CACxCK,UAAAA,EACAD,mBAAAA,EACA5E,aAAAA,IAKI+E,EACJF,IAAcV,GAAYM,EAJA,SAACx6X,GAzKnC,IAAA0lB,EAAAi+P,EAAAkmG,EA0KQ,cAAAA,EAAA,OAAAlmG,EAAA,OAAAj+P,EAAAq1W,EAAoB/6X,SAApB,EAAA0lB,EAA4BgmG,cAA5B,EAAAi4J,EAAsCk3G,IAAtChR,EACAuQ,EAAA,EAIF,OAAOnH,GAAe6H,EAA0BE,EAAA,GAzCvBC,sBA6C7B,WACE,OAAQ,SAACt/W,GApLb,IAAA+J,EAqLUw1W,EAEFA,EADgB,kBAAPv/W,EACI,OAAA+J,EAAA2wW,GAAoB16W,IAApB+J,EAA2Bw0W,GAE3Bv+W,EAUf,OAAOs3W,GAJLiI,IAAehB,GACXO,EALyB,SAACz6X,GA3LtC,IAAAm7X,EAAAx3G,EAAAkmG,EA4LQ,cAAAA,EAAA,OAAAlmG,EAAA,OAAAw3G,EAAAJ,EAAoB/6X,SAApB,EAAAm7X,EAA4BhD,gBAA5B,EAAAx0G,EAAwCu3G,IAAxCrR,EACAwQ,EAAA,EAMiDW,EAAA,GA7DHI,oBAiEpD,SACEp7X,EACA3nB,GAQA,IAjNJ,IAAAqtC,EA+MU21W,EAAWr7X,EAAMy2X,GACjB6E,EAAe,IAAI9jX,IACPk1L,EAAA,EAAA0nL,EAAA/7Y,EAAKkJ,IAAI+zY,IAAT5oL,EAAA0nL,EAAA97Y,OAAAo0N,IAAgC,CAAlD,IAAWv0N,EAAAi8Y,EAAA1nL,GACHssL,EAAWqC,EAASrC,SAAS7gZ,EAAI4E,MACvC,GAAKi8Y,EAWL,IAPA,IAOyB3E,EAAA,EAAAkH,EANtB,OAAA71W,OAAW,IAAXvtC,EAAIwjC,GAEDq9W,EAAS7gZ,EAAIwjC,IAEb23W,GAAQn4Y,OAAOqrB,OAAOwyX,KAJzBtzW,EAIwC,GAElB2uW,EAAAkH,EAAAjjZ,OAAA+7Y,IAAyB,CAAlD,IAAWmH,EAAAD,EAAAlH,GACTiH,EAAax3V,IAAI03V,IAIrB,OAAOlI,GACLxxY,MAAM/G,KAAKugZ,EAAa90X,UAAUjlB,KAAI,SAAC40Y,GACrC,IAAMsF,EAAgBJ,EAAS3vQ,QAAQyqQ,GACvC,OAAOsF,EACH,CACE,CACEtF,cAAAA,EACAJ,aAAc0F,EAAc1F,aAC5BC,aAAcyF,EAAczF,eAGhC,SAtGV,SAAAgF,EACE5E,GAEA,OAAOhN,GAAAA,GAAA,GACFgN,GhBtEF,SAA+B/sV,GACpC,MAAO,CACLA,OAAAA,EACAqyV,gBAAiBryV,IAAW0pV,GAAYwE,cACxC99H,UAAWpwN,IAAW0pV,GAAY7oN,QAClCyxN,UAAWtyV,IAAW0pV,GAAY5E,UAClC5tT,QAASl3B,IAAW0pV,GAAYx7S,SAAA,CgBiE3BqkT,CAAsBxF,EAAS/sV,QAAA,CAItC,SAAA0xV,EAA6Bc,GAW3B,OAVcA,EAAUpF,EAUjB,CAkFC,CC1OZ,IAAMvzY,GAA0CrC,QAC5C,IAAIA,aACJ,EAESi7Y,GAAqD,SAACpvL,OACjEqpL,EAAArpL,EAAAqpL,aACA6E,EAAAluL,EAAAkuL,UAEI73Y,EAAa,GAEXwH,EAAS,MAAArH,QAAA,EAAAA,GAAOlC,IAAI45Y,GAE1B,GAAsB,kBAAXrwY,EACTxH,EAAawH,MACR,CACL,IAAMwxY,EAAclnY,KAAKjW,UAAUg8Y,GAAW,SAACzhZ,EAAKkC,GAClD,OAAA2gZ,GAAc3gZ,GACVF,OAAO4pB,KAAK1pB,GACTwxB,OACAze,QAAY,SAACoM,EAAKm+H,GAEjB,OADAn+H,EAAIm+H,GAAQt9I,EAAcs9I,GACnBn+H,CAAA,GACN,CAAC,GACNnf,CAPJ,IASE2gZ,GAAcpB,KAChB,MAAA13Y,IAAAA,GAAOjC,IAAI25Y,EAAWmB,IAExBh5Y,EAAag5Y,EAGf,OAAUhG,EAAA,IAAgBhzY,EAAA,KCiMrB,SAAAk5Y,SAAA,IAAAz0P,EAAA,GAAAklE,EAAA,EAAAA,EAAAznN,UAAA3M,OAAAo0N,IAAAllE,EAAAklE,GAAAznN,UAAAynN,GAGL,OAAO,SAAuB30N,GAC5B,IAAM++Y,EAAyB5F,IAAe,SAAC7/X,GAxOnD,IAAAq0B,EAAAi+P,EAyOM,cAAAA,EAAA5rS,EAAQ++Y,6BAAR,EAAAnzG,EAAA5hS,KAAAhK,EAAiCsZ,EAAQ,CACvColY,YAAc,OAAA/wW,EAAA3tC,EAAQ0+Y,aAAR/wW,EAAuB,WAInCw2W,EAA4D9N,GAAAhF,GAAA,CAChEqN,YAAa,MACb0F,kBAAmB,GACnBC,2BAA2B,EAC3BC,gBAAgB,EAChBC,oBAAoB,GACjBvkZ,GAN6D,CAOhE++Y,uBAAAA,EACAyD,mBAAA,SAAmBgC,GACjB,IAAIC,EAA0BV,GAC9B,GAAI,uBAAwBS,EAAa5B,mBAAoB,CAC3D,IAAM8B,EACJF,EAAa5B,mBAAmBJ,mBAClCiC,EAA0B,SAACE,GACzB,IAAMC,EAAgBF,EAAYC,GAClC,MAA6B,kBAAlBC,EAEFA,EAIAb,GAA0B1N,GAAAhF,GAAA,GAC5BsT,GAD4B,CAE/B9B,UAAW+B,IAAA,OAIR5kZ,EAAQwiZ,qBACjBiC,EAA0BzkZ,EAAQwiZ,oBAGpC,OAAOiC,EAAwBD,EAAA,EAEjCK,SAAArT,GAAA,GAAexxY,EAAQ6kZ,UAAY,MAG/B/pV,EAA2C,CAC/CgjV,oBAAqB,CAAC,EACtB1vE,MAAA,SAAM7iU,GAEJA,GAAA,EAEFuzY,OAAQrJ,KACRsJ,uBAAAA,EACAC,mBAAoB7F,IAClB,SAAC7/X,GAAW,OAAkC,MAAlCylY,EAAuBzlY,EAAvB,KAIV6lC,EAAM,CACV2lW,gBA+BF,SACE19M,GAOA,IALA,IAAM29M,EAAqB39M,EAAOnnJ,UAAU,CAC1CrN,MAAO,SAACtqC,GAAO,OAAA+tY,GAAAhF,GAAA,GAAK/oY,GAAL,CAAQtD,KAAMw3Y,GAAe5pW,OAA7B,EACfoyW,SAAU,SAAC18Y,GAAO,OAAA+tY,GAAAhF,GAAA,GAAK/oY,GAAL,CAAQtD,KAAMw3Y,GAAewI,UAA7B,IAGqBrwL,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAC9CuzX,GADuCpwL,EAAA0nL,EAAA97Y,OAAAo0N,IAEtC,CAFQ,IAAA2nL,EAAAD,EAAA1nL,GAACqpL,EAAA1B,EAAA,GAAcrgF,EAAAqgF,EAAA,GAGxB,GACGl1M,EAAO69M,oBACRjH,KAAgBljV,EAAQgjV,qBAF1B,CAgBAhjV,EAAQgjV,oBAAoBE,GAAgB/hF,EAC5C,IAAgB,IAAAwkF,EAAA,EAAAyE,EAAAC,EAAA1E,EAAAyE,EAAA3kZ,OAAAkgZ,IAAoB,CAAzByE,EAAAzE,GACP2E,eAAepH,EAAc/hF,KAInC,OAAO98Q,CAAA,EA/DPkmW,iBAAA,SAAiB1wL,OAAE2wL,EAAA3wL,EAAA2wL,YAAarlW,EAAA00K,EAAA10K,UAC9B,GAAIqlW,EACF,IAAiB,IAAAjJ,EAAA,EAAAkJ,EAAAD,EAAAjJ,EAAAkJ,EAAAhlZ,OAAA87Y,IAAa,CAA9B,IAAWmJ,EAAAD,EAAAlJ,GACJ8H,EAAoBU,SAAUv2V,SAASk3V,IACxCrB,EAAoBU,SAAmB/jZ,KAAK0kZ,GAIpD,GAAIvlW,EACF,IAAgD,IAAAq8V,EAAA,EAAAmE,EAAAr9Y,OAAOouB,QACrDyuB,GAD8Cq8V,EAAAmE,EAAAlgZ,OAAA+7Y,IAE7C,CAFQ,IAAAoE,EAAAD,EAAAnE,GAAC0B,EAAA0C,EAAA,GAAc+E,EAAA/E,EAAA,GAGS,oBAAtB+E,EACTA,EAAkB3qV,EAAQgjV,oBAAoBE,IAE9C56Y,OAAOD,OACL23D,EAAQgjV,oBAAoBE,IAAiB,CAAC,EAC9CyH,GAKR,OAAOtmW,CAAA,GAILgmW,EAAqB11P,EAAQjmJ,KAAI,SAAC8sB,GACtC,OAAAA,EAAE6N,KAAKgb,EAAYglW,EAA4BrpV,EAA/C,IAuCF,OAAO3b,EAAI2lW,gBAAgB,CAAE7kW,UAAWjgD,EAAQigD,WAAA,ECrT7C,IClCHqmB,GDoCSo/U,GAAsD,SAAC/wL,OAClE+pL,EAAA/pL,EAAA+pL,YACAv/V,EAAAw1K,EAAAx1K,IACA2b,EAAA65J,EAAA75J,QACA6qV,EAAAhxL,EAAAgxL,cAEMtJ,EAAgDl9V,EAAIymW,gBAAlDxG,EAAA/C,EAAA+C,kBAAmBqC,EAAApF,EAAAoF,uBAE3B,SAAAoE,EAAyCzH,GACvC,IAAM6D,EAAgB0D,EAAcG,qBAAqB1H,GACzD,QAAS6D,IA5Cb,SAAuBnwY,GAGrB,IAAK,IAAIzJ,KAAKyJ,EAEZ,OAAO,EAET,OAAO,EAqCsBi0Y,CAAc9D,EAAA,CAG3C,IAAM+D,EAAoD,CAAC,EA2C3D,SAAAC,EACE7H,EACAJ,EACAkI,EACAnuY,GA5GJ,IAAA41B,EA8GUi1W,EAAqB9nV,EAAQgjV,oBACjCE,GAEIoG,EACJ,OAAAz2W,EAAA,MAAAi1W,OAAA,EAAAA,EAAoBwB,mBAApBz2W,EAAyC51B,EAAOqsY,kBAElD,GAAIA,IAAsBpyT,IAA1B,CAQA,IAAMm0T,EAAyBpjZ,KAAK2qB,IAClC,EACA3qB,KAAK4qB,IAAIy2X,EAhFiC,cAmF5C,IAAKyB,EAAgCzH,GAAgB,CACnD,IAAMgI,EAAiBJ,EAAuB5H,GAC1CgI,GACF1iY,aAAa0iY,GAEfJ,EAAuB5H,GAAiBz6X,YAAW,WAC5CkiY,EAAgCzH,IACnC8H,EAAI7wN,SAAS+pN,EAAkB,CAAEhB,cAAAA,YAE5B4H,EAAwB5H,EAAA,GACL,IAAzB+H,IAAyB,CAIhC,OAhF8C,SAC5C7sY,EACA+sY,EACAC,GAlEJ,IAAA34W,EAoEI,GAAI8zW,EAAuB93Y,MAAM2P,GAAS,CACxC,IAAM2O,EAAQo+X,EAAM90K,WAAWmtK,GAG/BuH,EAFQ7H,EAAkB9kY,EAAO89C,QAAAgnV,cAI/B,OAAAzwW,EAAA1lB,EAAM0rH,QAAQyqQ,SAAd,EAAAzwW,EAA8BqwW,aAC9BqI,EACAp+X,EAAMlQ,QAIV,GAAIonC,EAAIvP,KAAKqvW,cAAct1Y,MAAM2P,GAC/B,IAA6B,IAAAq7M,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAAQw0X,GAAfrxL,EAAA0nL,EAAA97Y,OAAAo0N,IAAwC,CAA1D,IAAA2nL,EAAAD,EAAA1nL,GAACvzN,EAAAk7Y,EAAA,GAAK/4X,EAAA+4X,EAAA,GACX/4X,GAASG,aAAaH,UACnByiY,EAAuB5kZ,GAIlC,GAAI05D,EAAQkkV,mBAAmB1lY,GAC7B,CAAM2O,EAAQo+X,EAAM90K,WAAWmtK,GAE/B,IAFA,IACQ/qQ,EAAY74E,EAAQikV,uBAAuBzlY,GAAAq6H,QACT8sQ,EAAA,EAAAC,EAAAt9Y,OAAOouB,QAAQmiH,GAAf8sQ,EAAAC,EAAAngZ,OAAAkgZ,IAAyB,CAAxD,IAAAI,EAAAH,EAAAD,GAACrC,EAAAyC,EAAA,GAAe0F,EAAA1F,EAAA,GAIzBoF,EACE7H,EACA,MAAAmI,OAAA,EAAAA,EAAYvI,aACZqI,EACAp+X,EAAMlQ,QAVqB,CAUrB,CA6CP,EElIIyuY,GAAyD,SAAC7xL,OACrE+pL,EAAA/pL,EAAA+pL,YACA5jV,EAAA65J,EAAA75J,QACWgjV,EAAAnpL,EAAA75J,QAAAgjV,oBACXc,EAAAjqL,EAAAiqL,cACAz/V,EAAAw1K,EAAAx1K,IACA4+V,EAAAppL,EAAAopL,cACA0I,EAAA9xL,EAAA8xL,aAEQrH,EAAsBjgW,EAAIymW,gBAAAxG,kBAC5BsH,EAAwBC,GAC5BC,GAAYhI,GACZiI,GAAoBjI,IA+BtB,SAAAkI,EACExmZ,EACA+lZ,GAEA,IAAMvC,EAAYuC,EAAM90K,WAClBtpN,EAAQ67X,EAAUpF,GAElB6E,EAAepkW,EAAIvP,KAAKyzW,oBAAoBS,EAAWxjZ,GAE7Dw6D,EAAQszQ,OAAM,WAEZ,IAnEN,IAAAzgS,EAmEsCgnL,EAAA,EAAAoyL,EADZh9Y,MAAM/G,KAAKugZ,EAAa90X,UACZkmM,EAAAoyL,EAAAxmZ,OAAAo0N,IAAa,CAAhC,IAAAypL,EAAA2I,EAAApyL,GAAAypL,cACLsF,EAAgBz7X,EAAM0rH,QAAQyqQ,GAC9B4I,EAAuB,OAAAr5W,EAAA1lB,EAAMg6X,cAAc7D,IAApBzwW,EAAsC,CAAC,EAEhE+1W,IAC+C,IAA7CtgZ,OAAO4pB,KAAKg6X,GAAsBzmZ,OACpC8lZ,EAAMhxN,SACJ+pN,EAAkB,CAChBhB,cAAAA,KAGKsF,EAAcpyV,SAAW0pV,GAAYwE,eAC9C6G,EAAMhxN,SAASoxN,EAAa/C,EAAetF,KAAA,IAOrD,OA1D8C,SAAC9kY,EAAQ+sY,GACjDK,EAAsBptY,IACxBwtY,EACEjJ,GACEvkY,EACA,kBACAwkY,EACAC,GAEFsI,GAIAlnW,EAAIvP,KAAKk3W,eAAen9Y,MAAM2P,IAChCwtY,EACE1J,GACE9jY,EAAO89C,aACP,OACA,OACA,OACA,EACA2mV,GAEFsI,EAAA,CAmCC,EC3EIY,GAA8C,SAACtyL,OAC1D+pL,EAAA/pL,EAAA+pL,YACAC,EAAAhqL,EAAAgqL,WACAx/V,EAAAw1K,EAAAx1K,IACAsnW,EAAA9xL,EAAA8xL,aACAd,EAAAhxL,EAAAgxL,cAEMuB,EAID,CAAC,EA6BN,SAAAC,EACExyL,EACAuxL,OADE9H,EAAAzpL,EAAAypL,cAIIsF,EADQwC,EAAI30K,WAAWmtK,GACD/qQ,QAAQyqQ,GAC9B6D,EAAgB0D,EAAcG,qBAAqB1H,GAEzD,GAAKsF,GAAiBA,EAAcpyV,SAAW0pV,GAAYwE,cAA3D,CAGA,IAAM4H,EAAwBC,EAA0BpF,GACxD,GAAKjsY,OAAO84E,SAASs4T,GAArB,CAEA,IAAME,EAAcJ,EAAa9I,IAE7B,MAAAkJ,OAAA,EAAAA,EAAa/jY,WACfG,aAAa4jY,EAAY/jY,SACzB+jY,EAAY/jY,aAAU,GAGxB,IAAMgkY,EAAoBttW,KAAKsnB,MAAQ6lV,EAEjCI,EAAgDN,EACpD9I,GACE,CACFmJ,kBAAAA,EACAE,gBAAiBL,EACjB7jY,QAASI,YAAW,WAClB6jY,EAAiBjkY,aAAU,EAC3B2iY,EAAI7wN,SAASoxN,EAAa/C,EAAetF,GAAA,GACxCgJ,GAnB8C,CAH3C,CAsBH,CAIP,SAAAM,EACE/yL,EACAuxL,OADE9H,EAAAzpL,EAAAypL,cAIIsF,EADQwC,EAAI30K,WAAWmtK,GACD/qQ,QAAQyqQ,GAC9B6D,EAAgB0D,EAAcG,qBAAqB1H,GAEzD,GAAKsF,GAAiBA,EAAcpyV,SAAW0pV,GAAYwE,cAA3D,CAIA,IAAM4H,EAAwBC,EAA0BpF,GAExD,GAAKjsY,OAAO84E,SAASs4T,GAArB,CAKA,IAAME,EAAcJ,EAAa9I,GAC3BmJ,EAAoBttW,KAAKsnB,MAAQ6lV,IAElCE,GAAeC,EAAoBD,EAAYC,oBAClDJ,EAAc,CAAE/I,cAAAA,GAAiB8H,QARjCyB,EAAkBvJ,GAQe,CAIrC,SAAAuJ,EAA2BvmZ,GACzB,IAAMwmZ,EAAeV,EAAa9lZ,IAC9B,MAAAwmZ,OAAA,EAAAA,EAAcrkY,UAChBG,aAAakkY,EAAarkY,gBAErB2jY,EAAa9lZ,EAAA,CAStB,SAAAimZ,EAAmCQ,QAAA,IAAAA,IAAAA,EAAA,IACjC,IAAIT,EAAwBpxY,OAAOi9M,kBACnC,IAAK,IAAI7xN,KAAOymZ,EACRA,EAAYzmZ,GAAKqmZ,kBACrBL,EAAwBrkZ,KAAK4qB,IAC3Bk6X,EAAYzmZ,GAAKqmZ,gBACjBL,IAKN,OAAOA,CAAA,CAET,OApH8C,SAAC9tY,EAAQ+sY,IAEnDlnW,EAAIymW,gBAAgBpE,0BAA0B73Y,MAAM2P,IACpD6lC,EAAIymW,gBAAgBnE,uBAAuB93Y,MAAM2P,KAEjDouY,EAAsBpuY,EAAO89C,QAASivV,IAItC1H,EAAWxsN,QAAQxoL,MAAM2P,IACxBqlY,EAAWn/S,SAAS71F,MAAM2P,IAAWA,EAAOm9J,KAAK16F,YAElD2rU,EAAsBpuY,EAAOm9J,KAAKhrK,IAAK46Y,IAIvC1H,EAAWvI,UAAUzsY,MAAM2P,IAC1BqlY,EAAWn/S,SAAS71F,MAAM2P,KAAYA,EAAOm9J,KAAK16F,YAEnDorU,EAAc7tY,EAAOm9J,KAAKhrK,IAAK46Y,GAG7BlnW,EAAIvP,KAAKqvW,cAAct1Y,MAAM2P,IA2EnC,WACE,IAAkB,IAAAq7M,EAAA,EAAA0nL,EAAAj5Y,OAAO4pB,KAAKk6X,GAAZvyL,EAAA0nL,EAAA97Y,OAAAo0N,IAA2B,CAC3CgzL,EADStL,EAAA1nL,IACS,CA5ElBmzL,EAAA,CA6FG,ECiCHC,GAAqB,IAAI71Y,MAC7B,oDAKW81Y,GAAqD,SAACrzL,OACjEx1K,EAAAw1K,EAAAx1K,IACAu/V,EAAA/pL,EAAA+pL,YACA5jV,EAAA65J,EAAA75J,QACA6jV,EAAAhqL,EAAAgqL,WACAC,EAAAjqL,EAAAiqL,cAGMqJ,GAFNtzL,EAAAgxL,cAEqBjN,GAAmBiG,IAClCuJ,EAAkBxP,GAAmBkG,GACrCuJ,EAAmBC,GAAYzJ,EAAYC,GAM3CyJ,EAA+C,CAAC,EAoEtD,SAAAC,EACEtK,EACAC,EACAG,EACAiI,EACA5nV,GAEA,IAAMmkV,EAAqB9nV,EAAQgjV,oBAAoBE,GACjDuK,EAAoB,MAAA3F,OAAA,EAAAA,EAAoB2F,kBAC9C,GAAKA,EAAL,CAEA,IAAIC,EAAY,CAAC,EAEXC,EAAoB,IAAIzxW,SAAc,SAACnD,GAC3C20W,EAAUC,kBAAoB50W,CAAA,IAE1B60W,EAGF1xW,QAAQmgW,KAAK,CACf,IAAIngW,SAA0C,SAACnD,GAC7C20W,EAAUG,cAAgB90W,CAAA,IAE5B40W,EAAkB9oT,MAAK,WACrB,MAAMooT,EAAA,MAKVW,EAAgB38N,OAAM,WAAM,IAC5Bs8N,EAAajK,GAAiBoK,EAC9B,IAAMz9Y,EAAYo0C,EAAIc,UAAU+9V,GAAsBzmG,OACpDqrG,EAAmB59Y,OAASw3Y,GAAe5pW,MACvCqrW,EACAG,GAGAhuF,EAAQi2F,EAAMhxN,UAAS,SAACp3I,EAAG2qW,EAAIC,GAAU,OAAAA,CAAA,IACzCC,EAAezS,GAAAhF,GAAA,GAChBgV,GADgB,CAEnB0C,cAAe,WAAM,OAAAh+Y,EAASs7Y,EAAM90K,WAAf,EACrB9yK,UAAAA,EACA2xP,MAAAA,EACA44F,iBAAmBpG,EAAmB59Y,OAASw3Y,GAAe5pW,MAC1D,SAACq2W,GACC,OAAA5C,EAAMhxN,SACJl2I,EAAIvP,KAAKs5W,gBACPlL,EACAC,EACAgL,GAJJ,OAOF,EAEJP,gBAAAA,EACAD,kBAAAA,IAGIU,EAAiBZ,EAAkBtK,EAAc6K,GAEvD9xW,QAAQnD,QAAQs1W,GAAgBp9N,OAAM,SAACtpL,GACrC,GAAIA,IAAMslZ,GACV,MAAMtlZ,CAAA,GArDsB,CAqDtB,CAIV,OApI8C,SAC5C6W,EACA+sY,EACA+C,GAEA,IAAMppW,EAmDR,SAAqB1mC,GACnB,OAAI2uY,EAAa3uY,GAAgBA,EAAOm9J,KAAKhrK,IAAI2yY,cAC7C8J,EAAgB5uY,GAAgBA,EAAOm9J,KAAKh4G,UAC5Ctf,EAAIymW,gBAAgBxG,kBAAkBz1Y,MAAM2P,GACvCA,EAAO89C,QAAQgnV,cACpBj/V,EAAIymW,gBAAgBzF,qBAAqBx2Y,MAAM2P,GAC1CglY,GAAoBhlY,EAAO89C,SAC7B,GA1DUnY,CAAY3lC,GAE7B,GAAIqlY,EAAWxsN,QAAQxoL,MAAM2P,GAAS,CACpC,IAAM+vY,EAAWD,EAAY1K,GAAa/qQ,QAAQ3zF,GAC5C/3B,EAAQo+X,EAAM90K,WAAWmtK,GAAa/qQ,QAAQ3zF,IAC/CqpW,GAAYphY,GACfqgY,EACEhvY,EAAOm9J,KAAKhrK,IAAIuyY,aAChB1kY,EAAOm9J,KAAKhrK,IAAIwyY,aAChBj+V,EACAqmW,EACA/sY,EAAOm9J,KAAKh4G,gBAAA,GAGPmgV,EAAczsN,QAAQxoL,MAAM2P,GAAS,EACxC2O,EAAQo+X,EAAM90K,WAAWmtK,GAAa0B,UAAUpgW,KAEpDsoW,EACEhvY,EAAOm9J,KAAKhrK,IAAIuyY,aAChB1kY,EAAOm9J,KAAKhrK,IAAIwyY,aAChBj+V,EACAqmW,EACA/sY,EAAOm9J,KAAKh4G,gBAAA,GAGP0pV,EAAiB7uY,GAAS,EAE/B,OADEkvY,EAAYH,EAAaroW,SAC3B,EAAAwoW,EAAWG,iBACbH,EAAUG,cAAc,CACtBvzY,KAAMkE,EAAO89C,QACbq/G,KAAMn9J,EAAOm9J,KAAKynO,uBAEbsK,EAAUG,oBAAA,GAGnBxpW,EAAIymW,gBAAgBxG,kBAAkBz1Y,MAAM2P,IAC5C6lC,EAAIymW,gBAAgBzF,qBAAqBx2Y,MAAM2P,GAC/C,EACMkvY,EAAYH,EAAaroW,aAEtBqoW,EAAaroW,GACpBwoW,EAAUC,0BAAA,GAEHtpW,EAAIvP,KAAKqvW,cAAct1Y,MAAM2P,GACtC,IAAoC,IAAAq7M,EAAA,EAAA0nL,EAAAj5Y,OAAOouB,QAAQ62X,GAAf1zL,EAAA0nL,EAAA97Y,OAAAo0N,IAA8B,CAAvD,IAAA2nL,EAAAD,EAAA1nL,GAAC20L,EAAAhN,EAAA,GAAUkM,EAAAlM,EAAA,UACb+L,EAAaiB,GACpBd,EAAUC,oBAAA,CAiFT,EC9HIc,GAAqD,SAAC50L,OACjEx1K,EAAAw1K,EAAAx1K,IACA2b,EAAA65J,EAAA75J,QACA6jV,EAAAhqL,EAAAgqL,WACAC,EAAAjqL,EAAAiqL,cAEM4K,EAAiBC,GAAU9K,EAAYC,GACvC8K,EAAkBC,GAAWhL,EAAYC,GACzCgL,EAAoBC,GAAYlL,EAAYC,GAM5CyJ,EAA+C,CAAC,EAoEtD,OAlE8C,SAAC/uY,EAAQ+sY,GA3NzD,IAAA14W,EAAAi+P,EAAAkmG,EA4NI,GAAI0X,EAAelwY,GAAS,CACpB,IAAAq7M,EAGFr7M,EAAOm9J,KAFTh4G,EAAAk2J,EAAAl2J,UACA49U,EAAA1nL,EAAAlpN,IAAOq+Y,EAAAzN,EAAA2B,aAAc+L,EAAA1N,EAAA4B,aAEjB2E,EAAqB9nV,EAAQgjV,oBAAoBgM,GACjDE,EAAiB,MAAApH,OAAA,EAAAA,EAAoBoH,eAC3C,GAAIA,EAAgB,CAClB,IAAMC,EAAY,CAAC,EACbC,EACJ,IAAKlzW,SAGH,SAACnD,EAAS0yB,GACV0jV,EAAUp2W,QAAUA,EACpBo2W,EAAU1jV,OAASA,CAAA,IAIvB2jV,EAAen+N,OAAM,WAAM,IAC3Bs8N,EAAa5pV,GAAawrV,EAC1B,IAAME,EAAYhrW,EAAIc,UAAU6pW,GAAsBvyG,OACpDqrG,EAAmB59Y,OAASw3Y,GAAe5pW,MACvCm3W,EACAtrV,GAGA2xP,EAAQi2F,EAAMhxN,UAAS,SAACp3I,EAAG2qW,EAAIC,GAAU,OAAAA,CAAA,IACzCC,EAAezS,GAAAhF,GAAA,GAChBgV,GADgB,CAEnB0C,cAAe,WAAM,OAAAoB,EAAS9D,EAAM90K,WAAf,EACrB9yK,UAAAA,EACA2xP,MAAAA,EACA44F,iBAAmBpG,EAAmB59Y,OAASw3Y,GAAe5pW,MAC1D,SAACq2W,GACC,OAAA5C,EAAMhxN,SACJl2I,EAAIvP,KAAKs5W,gBACPY,EACAC,EACAd,GAJJ,OAOF,EACJiB,eAAAA,IAEFF,EAAeD,EAAcjB,SAAA,GAEtBc,EAAkBtwY,GAAS,CAC9B,IAAAgjY,EAA+BhjY,EAAOm9J,KAAzBynO,GAAXz/U,EAAA69U,EAAA79U,UAAW69U,EAAA4B,eACnB,OAAAvwW,EAAA06W,EAAa5pV,KAAb9wB,EAAyBkG,QAAQ,CAC/Bz+B,KAAMkE,EAAO89C,QACbq/G,KAAMynO,WAEDmK,EAAa5pV,QAAA,GACXirV,EAAgBpwY,GAAS,CAC5B,IAAAmnY,EAAkDnnY,EAAOm9J,KAA5C8/N,GAAX93U,EAAAgiV,EAAAhiV,UAAWgiV,EAAAlK,mBAAmB2H,EAAAuC,EAAAvC,cACtC,OAAApM,EAAAuW,EAAa5pV,KAAbqzU,EAAyBvrU,OAAO,CAC9B/qD,MAAO,OAAAowR,EAAAtyR,EAAO89C,SAAPw0O,EAAkBtyR,EAAOkC,MAChC4uY,kBAAmB7T,EACnB9/N,KAAMynO,WAEDmK,EAAa5pV,GAAA,CAIjB,EC3RI4rV,GAA+C,SAAC11L,OAC3Dx1K,EAAAw1K,EAAAx1K,IACW2/V,EAAAnqL,EAAA75J,QAAAgkV,OACXnqL,EAAA+pL,YAEA,OAAO,SAACplY,EAAQ+sY,GACVlnW,EAAIvP,KAAKqvW,cAAct1Y,MAAM2P,IAE/B+sY,EAAMhxN,SAASl2I,EAAIymW,gBAAgB7D,qBAAqBjD,GAkBhD,GLfRwL,GACsB,oBAAnBx+N,eACHA,eAAep/J,KACK,qBAAXkW,OACHA,OACkB,qBAAX+qD,EAAAA,EACPA,EAAAA,EACAkQ,YAGN,SAACxrD,GACE,OAAAi0B,KAAYA,GAAUtvB,QAAQnD,YAAY8rD,KAAKttD,GAAI05I,OAAM,SAAC95I,GACzD,OAAAtuB,YAAW,WACT,MAAMsuB,CAAA,GACL,EAFH,GADD,EAMIs4W,GAET,SAAC51L,OAAEx1K,EAAAw1K,EAAAx1K,IAAKw/V,EAAAhqL,EAAAgqL,WAAYgH,EAAAhxL,EAAAgxL,cAChB6E,EAAyBrrW,EAAIu/V,YAAA,iBAE/B+L,EACF,KAEEC,GAAiB,EAEfrO,EACJl9V,EAAIymW,gBADEpE,EAAAnF,EAAAmF,0BAA2BC,EAAApF,EAAAoF,uBAwDnC,OAAO,SAACnoY,EAAQ+sY,GAhGlB,IAAA14W,EAAAi+P,EAwGI,GAPK6+G,IAEHA,EAAwB3tY,KAAK7V,MAC3B6V,KAAKjW,UAAU8+Y,EAAcG,wBAI7B3mW,EAAIvP,KAAKqvW,cAAct1Y,MAAM2P,GAE/B,OADAmxY,EAAwB9E,EAAcG,qBAAuB,CAAC,EACvD,EAAC,GAAM,GAKhB,GAAI3mW,EAAIymW,gBAAgBlE,2BAA2B/3Y,MAAM2P,GAAS,CAC1D,IAAAq7M,EAA+Br7M,EAAO89C,QAApCgnV,EAAAzpL,EAAAypL,cAAe3/U,EAAAk2J,EAAAl2J,UAGvB,MAAO,EAAC,KADJ,OAAA9wB,EAAAg4W,EAAcG,qBAAqB1H,SAAnC,EAAAzwW,EAAoD8wB,KAK1D,IAAMksV,EA1E4B,SAClCC,EACAtxY,GA/CJ,IAAAq0B,EAAAi+P,EAAAkmG,EAAAhmM,EAAAJ,EAAA8mM,EAAAE,EAAAC,EAAAvgY,EAiDI,GAAIovY,EAA0B73Y,MAAM2P,GAAS,CACrC,IAAAq7M,EAAwCr7M,EAAO89C,QAA7CgnV,EAAAzpL,EAAAypL,cAAe3/U,EAAAk2J,EAAAl2J,UAAWz+D,EAAA20N,EAAA30N,QAKlC,OAHI,OAAA2tC,EAAA,MAAAi9W,OAAA,EAAAA,EAAexM,SAAf,EAAAzwW,EAAgC8wB,MAClCmsV,EAAaxM,GAAgB3/U,GAAaz+D,IAErC,EAET,GAAIyhZ,EAAuB93Y,MAAM2P,GAAS,CAClC,IAAA+iY,EAA+B/iY,EAAO89C,QAI5C,OAJQgnV,EAAA/B,EAAA+B,cAAe3/U,EAAA49U,EAAA59U,UACnBmsV,EAAaxM,WACRwM,EAAaxM,GAAgB3/U,IAE/B,EAET,GAAItf,EAAIymW,gBAAgBxG,kBAAkBz1Y,MAAM2P,GAE9C,cADOsxY,EAAatxY,EAAO89C,QAAQgnV,gBAC5B,EAET,GAAIO,EAAWxsN,QAAQxoL,MAAM2P,GAAS,CAElC,IAAAgjY,EACEhjY,EAAAm9J,KADMhrK,EAAA6wY,EAAA7wY,IAEV,GAFegzD,EAAA69U,EAAA79U,UAEXhzD,EAAIilU,UAKN,OAJM2tE,EAAY,OAAAvM,EAAA8Y,EAAAh/G,EAAangS,EAAI2yY,gBAAjBtM,EAAA8Y,EAAAh/G,GAAoC,CAAC,GAC9CntO,GACP,OAAAitI,EAAA,OAAAI,EAAArgM,EAAIo/Y,qBAAJ/+M,EAA2BuyM,EAAS5/U,IAApCitI,EAAkD,CAAC,GAE9C,EAGX,GAAIizM,EAAWn/S,SAAS71F,MAAM2P,GAAS,CAEnC,IAGM+kY,EAHNoC,EACEnnY,EAAAm9J,KADM16F,EAAA0kU,EAAA1kU,UAEV,GAFqBtwE,EAAAg1Y,EAAAh1Y,IAAKgzD,EAAAgiV,EAAAhiV,UAEtBsd,GAAatwE,EAAIilU,UAKnB,OAJM2tE,EAAY,OAAA3L,EAAAkY,EAAApY,EAAa/mY,EAAI2yY,gBAAjB1L,EAAAkY,EAAApY,GAAoC,CAAC,GAC9C/zU,GACP,OAAArsD,EAAA,OAAAugY,EAAAlnY,EAAIo/Y,qBAAJlY,EAA2B0L,EAAS5/U,IAApCrsD,EAAkD,CAAC,GAE9C,EAIX,OAAO,EA0BW04Y,CAChBnF,EAAcG,qBACdxsY,GAGF,GAAIqxY,EAAW,CACRD,IACHJ,IAAmB,WAEjB,IAAMS,EAAsCjuY,KAAK7V,MAC/C6V,KAAKjW,UAAU8+Y,EAAcG,uBAGtBxG,EAAW0L,GAClBP,GACA,WAAM,OAAAM,CAAA,IAFC,GAMT1E,EAAM/gZ,KAAK65C,EAAIymW,gBAAgBhE,qBAAqBtC,IAEpDmL,EAAwBM,EACxBL,GAAiB,KAEnBA,GAAiB,GAGnB,IAAMO,KACF,OAAAr/G,EAAAtyR,EAAOtU,WAAP,EAAA4mS,EAAalqO,WAAW8oV,IACtBU,EACJvM,EAAWn/S,SAAS71F,MAAM2P,IAC1BA,EAAOm9J,KAAK16F,aACVziE,EAAOm9J,KAAKhrK,IAAIilU,UAKpB,MAAO,EAFJu6E,IAA8BC,GAEH,GAGhC,MAAO,EAAC,GAAM,KMxIX,SAAAC,GAILt3Y,GACQ,IAAA6qY,EAA0C7qY,EAAA6qY,YAA7BC,EAA6B9qY,EAAA8qY,WAAjBx/V,EAAiBtrC,EAAAsrC,IAAZ2b,EAAYjnD,EAAAinD,QAC1CgkV,EAAWhkV,EAAAgkV,OAEbrrG,EAAU,CACdqzG,eAAgBsE,GAEX1M,EAAA,oBAWD2M,EAA4C,CAChDhB,GACA3E,GACAc,GACAS,GACAe,GACAuB,IA8EF,MAAO,CAAE1+Y,WAvEL,SAACw7Y,GACH,IAAIiF,GAAc,EAMZC,EAAclV,GAAAhF,GAAA,GACdx9X,GADc,CAMlB8xY,cAV2C,CAC3CG,qBAAsB,CAAC,GAUvBW,aAAAA,IAGI9tX,EAAW0yX,EAAgB7hZ,KAAI,SAACwrD,GAAU,OAAAA,EAAMu2V,EAAN,IAE1CC,EAAwBjB,GAA2BgB,GACnDE,ECrEqD,SAAC92L,OAC9D+pL,EAAA/pL,EAAA+pL,YACA5jV,EAAA65J,EAAA75J,QACA3b,EAAAw1K,EAAAx1K,IACAsnW,EAAA9xL,EAAA8xL,aACAd,EAAAhxL,EAAAgxL,cAEQvG,EAAsBjgW,EAAIymW,gBAAAxG,kBAWlC,SAAAsM,EACExF,EACAlhZ,GAEA,IAAMijB,EAAQi+X,EAAI30K,WAAWmtK,GACvB/qQ,EAAU1rH,EAAM0rH,QAChBsuQ,EAAgB0D,EAAcG,qBAEpChrV,EAAQszQ,OAAM,WACZ,IAA4B,IAAAz5G,EAAA,EAAA0nL,EAAAj5Y,OAAO4pB,KAAKi1X,GAAZttL,EAAA0nL,EAAA97Y,OAAAo0N,IAA4B,CAAxD,IAAWypL,EAAA/B,EAAA1nL,GACH+uL,EAAgB/vQ,EAAQyqQ,GACxB4I,EAAuB/E,EAAc7D,GAEtC4I,GAAyBtD,IAG5BtgZ,OAAOqrB,OAAOu4X,GAAsB93O,MAClC,SAAC/9E,GAAQ,OAAc,IAAdA,EAAInsF,EAAJ,KAEV5B,OAAOqrB,OAAOu4X,GAAsBtnX,OACnC,SAACyxD,GAAQ,YAAc,IAAdA,EAAInsF,EAAJ,KAETijB,EAAMlQ,OAAO/S,MAGkC,IAA7C5B,OAAO4pB,KAAKg6X,GAAsBzmZ,OACpC2lZ,EAAI7wN,SACF+pN,EAAkB,CAChBhB,cAAAA,KAGKsF,EAAcpyV,SAAW0pV,GAAYwE,eAC9C0G,EAAI7wN,SAASoxN,EAAa/C,EAAetF,KAAA,IAOnD,OAhD8C,SAAC9kY,EAAQ+sY,GACjD77X,GAAQ7gB,MAAM2P,IAChBoyY,EAAoBrF,EAAO,kBAEzB1J,GAAShzY,MAAM2P,IACjBoyY,EAAoBrF,EAAO,sBA2CxB,CDYuBsF,CAAwBJ,GAEpD,OAAO,SAACjmZ,GACN,OAAO,SAACgU,GACDgyY,IACHA,GAAc,EAEdjF,EAAMhxN,SAASl2I,EAAIymW,gBAAgB7D,qBAAqBjD,KAG1D,IAUI1+T,EAVEwrU,EAAgBvV,GAAAhF,GAAA,GAAKgV,GAAL,CAAY/gZ,KAAAA,IAE5B8jZ,EAAc/C,EAAM90K,WAEpB5c,EAA0C62L,EAC9ClyY,EACAsyY,EACAxC,GAHKyC,EAAAl3L,EAAA,GAAsBm3L,EAAAn3L,EAAA,GAc7B,GALEv0I,EADEyrU,EACIvmZ,EAAKgU,GAELwyY,EAGFzF,EAAM90K,WAAWmtK,KAIrB+M,EAAoBnyY,EAAQsyY,EAAexC,GAzEtB,SAAC9vY,GAC5B,QACIA,GACqB,kBAAhBA,EAAOtU,MACdsU,EAAOtU,KAAK08D,WAAcg9U,EAAA,KAwEpBqN,CAAqBzyY,IACrBwhD,EAAQkkV,mBAAmB1lY,IAI3B,IAAoB,IAAA+iY,EAAA,EAAA2P,EAAArzX,EAAA0jX,EAAA2P,EAAAzrZ,OAAA87Y,IAAU,EAC5BjpQ,EADO44Q,EAAA3P,IACC/iY,EAAQsyY,EAAexC,GAKrC,OAAOhpU,CAAA,IAKQqzN,QAAAA,GAErB,SAAAgzG,EACE/C,EAIAtF,EACA6N,GAEA,YAFA,IAAAA,IAAAA,EAAA,IAEOtN,EAAWtN,GAAA,CAChBrsY,KAAM,QACNg5Y,aAAc0F,EAAc1F,aAC5BC,aAAcyF,EAAczF,aAC5BvtE,WAAW,EACXw7E,cAAc,EACd9N,cAAAA,GACG6N,GAAA,EE5IF,SAAAE,GACLriY,OAAA,IAAA3c,EAAA,GAAAwnN,EAAA,EAAAA,EAAAznN,UAAA3M,OAAAo0N,IAAAxnN,EAAAwnN,EAAA,GAAAznN,UAAAynN,GAGAvxN,OAAOD,OAAAoK,MAAPnK,OAAAouY,GAAA,CAAc1nX,GAAW3c,GAAA,CCwDpB,IAAMi/Y,GAAiC1rX,SA0YjC2rX,GAAa,WAA2B,OACnDjhZ,KAAMghZ,GACNjoX,KAAA,SACEgb,EACAw1K,EAUA75J,OATEwxV,EAAA33L,EAAA23L,UAEA5N,GADA/pL,EAAAkwL,SACAlwL,EAAA+pL,aACA8D,EAAA7tL,EAAA6tL,mBACA4B,EAAAzvL,EAAAyvL,kBACAC,EAAA1vL,EAAA0vL,0BACAC,EAAA3vL,EAAA2vL,eACAC,EAAA5vL,EAAA4vL,mBAIFgI,KAIA,IAAMxO,EAAgC,SAAC39Y,GAWrC,OAAOA,CAAA,EAGTgD,OAAOD,OAAOg8C,EAAK,CACjBu/V,YAAAA,EACAz+V,UAAW,CAAC,EACZ2lW,gBAAiB,CACfjJ,SAAAA,GACAC,UAAAA,GACApyX,QAAAA,GACAkyX,YAAAA,IAEF9sW,KAAM,CAAC,IAGH,IAAAysW,EjBjSH,SAIL1nL,GAJK,IAAA10N,EAAA,KAKLy+Y,EAAA/pL,EAAA+pL,YACA4N,EAAA33L,EAAA23L,UACWxO,EAAAnpL,EAAA75J,QAAAgjV,oBACX0E,EAAA7tL,EAAA6tL,mBACArjW,EAAAw1K,EAAAx1K,IACA4+V,EAAAppL,EAAAopL,cAwHMyO,EAIF,SACFC,EACAC,GASG,OAAA5V,GAAA72Y,EAAA,CAVHwsZ,EACAC,IASG,SAVHjhZ,EACAkpN,iCACEt0H,EAAAs0H,EAAAt0H,OACAn8B,EAAAywJ,EAAAzwJ,MACAkzU,EAAAziL,EAAAyiL,gBACAC,EAAA1iL,EAAA0iL,iBACAhiN,EAAAs/B,EAAAt/B,SACAk8C,EAAA5c,EAAA4c,SACA6+E,EAAAz7F,EAAAy7F,yDAGIwyF,EAAqB9E,EAAoBryY,EAAIuyY,6DAG7C2O,EAIOhP,GACPprY,OAAA,EACEq6Y,EAAe,CACnBvsT,OAAAA,EACAn8B,MAAAA,EACAmxH,SAAAA,EACAk8C,SAAAA,EACA6+E,MAAAA,EACAn7Q,SAAUxpC,EAAIuyY,aACdh5Y,KAAMyG,EAAIzG,KACVuiO,OACe,UAAb97N,EAAIzG,KAAmB6nZ,EAAcphZ,EAAK8lO,UAAc,IAGtDu7K,EACS,UAAbrhZ,EAAIzG,KAAmByG,EAAIgyY,SAAsB,IAEjDlrY,EAASu6Y,WADP,oBAEOlK,EAAmBhwW,MACnB,GAAM05W,EACb1J,EAAmBhwW,MAAMnnC,EAAIwyY,cAC7B2O,EACAhK,EAAmBmK,eAJZ,oBACTx6Y,EAASq5L,EAAA3mI,OAML29U,EAAmB+J,oBACrBA,EAAoB/J,EAAmB+J,gCAGhC,SAAM/J,EAAmBoK,QAChCvhZ,EAAIwyY,aACJ2O,EACAhK,EAAmBmK,cACnB,SAACE,GACC,OAAAX,EAAUW,EAAKL,EAAchK,EAAmBmK,aAAhD,YALJx6Y,EAASq5L,EAAA3mI,wBAyCX,GAAI1yD,EAAOiJ,MAAO,MAAM,IAAI+gY,GAAahqY,EAAOiJ,MAAOjJ,EAAOkkK,MAG5D,OADKgqO,EAAApJ,EACL,GAAMsV,EAAkBp6Y,EAAO6C,KAAM7C,EAAOkkK,KAAMhrK,EAAIwyY,sBADxD,MAAO,CAAP,EAAOwC,EAAAlzY,WAAA,GACLq+L,EAAA3mI,QAAsD47U,EAAA,CAEpDlB,mBAAoB1lW,KAAKsnB,MACzB28U,cAAe3rY,EAAOkkK,MAAAoqO,EACrBhI,KAAmB,gCAIpBqU,EAAeC,aACS5Q,IAAxB,aACE6Q,EAIOzP,GAGTiF,EAAmBhwW,OACnBgwW,EAAmBwK,yBAEnBA,EAAyBxK,EAAmBwK,yCAI1C,+BADK1M,EAAAtJ,EACL,GAAMgW,EACJF,EAAa5pZ,MACb4pZ,EAAaz2O,KACbhrK,EAAIwyY,uBAJR,MAAO,CAAP,EAAOyC,EAAAnzY,WAAA,GACLq+L,EAAA3mI,QAGM87U,EAAA,CAEJ7C,cAAegP,EAAaz2O,MAAAsqO,EAAOlI,KAAmB,EAAAkI,gCAG1DmM,EAAeG,iBAenB,MAFE3wU,QAAQlhE,MAAM0xY,GAEVA,0BAhIL,EAoIL,SAAAL,EACEphZ,EACAwc,GAhfJ,IAAA0lB,EAAAi+P,EAAAkmG,EAAAhmM,EAkfUwhN,EAAe,OAAA1hH,EAAA,OAAAj+P,EAAA1lB,EAAMy2X,SAAN,EAAA/wW,EAAoBgmG,cAApB,EAAAi4J,EAA8BngS,EAAI2yY,eACjDmP,EACJ,OAAAzb,EAAA7pX,EAAMy2X,SAAN,EAAA5M,EAAoB/5X,OAAOssY,0BAEvBmJ,EAAe,MAAAF,OAAA,EAAAA,EAAc3N,mBAC7B8N,EACJ,OAAA3hN,EAAArgM,EAAIygZ,cAAJpgN,EAAqBrgM,EAAIilU,WAAa68E,EAExC,QAAIE,KAGe,IAAfA,IACCz3Y,OAAO,IAAIikC,MAAUjkC,OAAOw3Y,IAAiB,KAAQC,EAGnD,CAGT,IAAM9O,EAAa3I,GAId0I,EAAA,gBAA4B8N,EAAiB,CAChDtV,eAAA,iBACE,OAAAviL,EAAA,CAAS8qL,iBAAkBxlW,KAAKsnB,QAAQs3U,KAAmB,EAAAlkL,CAAA,EAE7D54I,UAAA,SAAU2xU,EAAgB/4L,OA5gB9BhnL,EAAAi+P,EAAAkmG,EA6gBY7pX,GAAQspN,EADY5c,EAAA4c,YAGpB+7K,EACJ,OAAA1hH,EAAA,OAAAj+P,EAAA1lB,EAAMy2X,SAAN,EAAA/wW,EAAoBgmG,cAApB,EAAAi4J,EAA8B8hH,EAAetP,eACzCoP,EAAe,MAAAF,OAAA,EAAAA,EAAc3N,mBAC7BgO,EAAaD,EAAezP,aAC5B2P,EAAc,MAAAN,OAAA,EAAAA,EAAcrP,aAC5B2E,EACJ9E,EAAoB4P,EAAe1P,cAKrC,QAAIN,GAAcgQ,IAKW,aAAzB,MAAAJ,OAAA,EAAAA,EAAch8V,YAKdu7V,EAAca,EAAgBzlY,OAKhCk1X,GAAkByF,MAClB,OAAA9Q,EAAA,MAAA8Q,OAAA,EAAAA,EAAoBsJ,mBAApB,EAAApa,EAAA9nY,KAAA44Y,EAAmC,CACjC+K,WAAAA,EACAC,YAAAA,EACAC,cAAeP,EACfrlY,MAAAA,QAOAulY,EAKG,EAEThW,4BAA4B,IAGxBoH,EAAgB5I,GAIjB0I,EAAA,mBAA+B8N,EAAiB,CACnDtV,eAAA,iBACE,OAAAviL,EAAA,CAAS8qL,iBAAkBxlW,KAAKsnB,QAAQs3U,KAAmB,EAAAlkL,CAAA,IAiD/D,SAAAm5L,EAAyB9P,GACvB,OAAO,SAAC1kY,GAvnBZ,IAAAq0B,EAAAi+P,EAwnBM,cAAAA,EAAA,OAAAj+P,EAAA,MAAAr0B,OAAA,EAAAA,EAAQm9J,WAAR,EAAA9oI,EAAcliC,UAAd,EAAAmgS,EAAmBoyG,gBAAiBA,CAAA,EAkBxC,MAAO,CACLW,WAAAA,EACAC,cAAAA,EACAmP,SA7DA,SACE/P,EACAvyY,EACAzL,GAEF,gBAACq1L,EAAwCk8C,GACvC,IAAMk+C,EAbU,SAACzvR,GACnB,gBAAWA,CAAX,CAYgBguZ,CAAYhuZ,IAAYA,EAAQyvR,MACxC91L,EAZQ,SAChB35F,GAC+C,sBAAiBA,CAAjB,CAU9BiuZ,CAAUjuZ,IAAYA,EAAQkuZ,YAEvCC,EAAc,SAACC,GAClB,YADkB,IAAAA,IAAAA,GAAA,GAClBjvW,EAAIc,UAAU+9V,GAA6CqQ,SAC1D5iZ,EACA,CAAEygZ,aAAckC,GAFjB,EAIGE,EACJnvW,EAAIc,UAAU+9V,GACdzmG,OAAO9rS,EADP0zC,CACYoyL,KAEd,GAAIk+C,EACFp6F,EAAS84N,UAAA,GACAx0T,EAAQ,CACjB,IAAM40T,EAAkB,MAAAD,OAAA,EAAAA,EAAkB3O,mBAC1C,IAAK4O,EAEH,YADAl5N,EAAS84N,MAIRn4Y,OAAO,IAAIikC,MAAUjkC,OAAO,IAAIikC,KAAKs0W,KAAqB,KAC3D50T,GAEA07F,EAAS84N,UAIX94N,EAAS84N,GAAY,IA7BzB,EAyDAjF,gBA1XA,SAAClL,EAAc7wY,EAAM87Y,EAAcuF,GACnC,YADmC,IAAAA,IAAAA,GAAA,GACnC,SAACn5N,EAAUk8C,WAwBLlpN,EArBEm7C,EAFqBrkB,EAAIc,UAAU+9V,GAEDzmG,OAAOpqS,EAA1By1Y,CAEnBrxK,KAGEviJ,EAAuB,CACzBswT,QAAS,GACTmP,eAAgB,GAChBC,KAAM,WACJ,OAAAr5N,EACEl2I,EAAIvP,KAAK++W,eACP3Q,EACA7wY,EACA6hF,EAAIy/T,eACJD,GALJ,GASJ,GAAIhrV,EAAalS,SAAW0pV,GAAYwE,cACtC,OAAOxwT,EAGT,GAAI,SAAUxrB,EACZ,GAAImuU,GAAYnuU,EAAapuD,MAAO,CAC5B,IAAAknY,EAAmC3O,GACvCnqU,EAAapuD,KACb6zY,GAFK3lZ,EAAAg5Y,EAAA,GAAOgD,EAAAhD,EAAA,GAASmS,EAAAnS,EAAA,IAIvB3nL,EAAA3lI,EAAIswT,SAAQx+Y,KAAAyM,MAAAonN,EAAQ2qL,IACpBjD,EAAArtT,EAAIy/T,gBAAe3tZ,KAAAyM,MAAA8uY,EAAQoS,GAC3BpmY,EAAW/kB,OAEX+kB,EAAW4gY,EAAazlV,EAAapuD,MACrC45E,EAAIswT,QAAQx+Y,KAAK,CAAEysY,GAAI,UAAWtmX,KAAM,GAAI3jB,MAAO+kB,IACnD2mE,EAAIy/T,eAAe3tZ,KAAK,CACtBysY,GAAI,UACJtmX,KAAM,GACN3jB,MAAOkgE,EAAapuD,OAS1B,OAJAigL,EACEl2I,EAAIvP,KAAK++W,eAAe3Q,EAAc7wY,EAAM6hF,EAAIswT,QAASkP,IAGpDx/T,CAAA,CAjDT,EA0XA4/T,gBArUA,SAAC5Q,EAAc7wY,EAAM7J,GAAU,gBAAC+xL,SAC9B,OAAOA,EAEHl2I,EAAIc,UAAU+9V,GAIdqQ,SAASlhZ,IAAAwnN,EAAA,CACT+7G,WAAW,EACXw7E,cAAc,IACbzO,IAAqB,WAAO,OAC3BroY,KAAM9R,EADqB,EACrB,KAXiB,EAsU/BqrZ,eAjaA,SAAC3Q,EAAc7wY,EAAMmyY,EAASkP,GAAmB,gBAACn5N,EAAUk8C,GAC1D,IAAMqxK,EAAqB9E,EAAoBE,GAEzCI,EAAgBoE,EAAmB,CACvCK,UAAW11Y,EACXy1Y,mBAAAA,EACA5E,aAAAA,IAOF,GAJA3oN,EACEl2I,EAAIymW,gBAAgBvG,mBAAmB,CAAEjB,cAAAA,EAAekB,QAAAA,KAGrDkP,EAAL,CAIA,IAAMnmY,EAAW82B,EAAIc,UAAU+9V,GAAczmG,OAAOpqS,EAAnCgyC,CAEfoyL,KAGIgvK,EAAenD,GACnBwF,EAAmBiM,aACnBxmY,EAASjT,UACT,EACAjI,EACA,CAAC,EACD4wY,GAGF1oN,EACEl2I,EAAIymW,gBAAgBtF,iBAAiB,CAAElC,cAAAA,EAAemC,aAAAA,KAAA,CAhCT,EAkajDuO,uBAtBF,SAIEpe,EAAcsN,GACd,MAAO,CACL+Q,aAAclX,GAAQzqE,GAAUsjE,GAAQod,EAAgB9P,IACxDgR,eAAgBnX,GACdY,GAAY/H,GACZod,EAAgB9P,IAElBiR,cAAepX,GAAQS,GAAW5H,GAAQod,EAAgB9P,IAAA,EAW5D,CiB/IIkR,CAAY,CACd5C,UAAAA,EACA5N,YAAAA,EACA5jV,QAAAA,EACA3b,IAAAA,EACAqjW,mBAAAA,EACAzE,cAAAA,IAbAY,EAAAtC,EAAAsC,WACAC,EAAAvC,EAAAuC,cACA+P,EAAAtS,EAAAsS,eACAzF,EAAA7M,EAAA6M,gBACA0F,EAAAvS,EAAAuS,gBACAb,EAAA1R,EAAA0R,SACAe,EAAAzS,EAAAyS,uBAUIxS,EAAqCmC,GAAW,CACpD3jV,QAAAA,EACA6jV,WAAAA,EACAC,cAAAA,EACAF,YAAAA,EACAX,cAAAA,EACAhmY,OAAQ,CACNusY,eAAAA,EACAC,mBAAAA,EACAF,0BAAAA,EACAD,kBAAAA,EACA1F,YAAAA,KAXI5P,EAAAwN,EAAAxN,QAAkBqgB,EAAA7S,EAAA7oG,QAe1B04G,GAAWhtW,EAAIvP,KAAM,CACnB++W,eAAAA,EACAzF,gBAAAA,EACA0F,gBAAAA,EACAb,SAAAA,EACA9O,cAAekQ,EAAalQ,gBAE9BkN,GAAWhtW,EAAIymW,gBAAiBuJ,GAE1B,IAAA1O,EAA6C0K,GAAgB,CACjEzM,YAAAA,EACA5jV,QAAAA,EACA6jV,WAAAA,EACAC,cAAAA,EACAz/V,IAAAA,EACA4+V,cAAAA,IANMlzY,EAAA41Y,EAAA51Y,WAAqBukZ,EAAA3O,EAAAhtG,QAQ7B04G,GAAWhtW,EAAIvP,KAAMw/W,GAErBjD,GAAWhtW,EAAK,CAAE2vV,QAAAA,EAAyBjkY,WAAAA,IAErC,IAAA61Y,EACJ6B,GAAe,CACbC,mBAAAA,EACA9D,YAAAA,IAHIiE,EAAAjC,EAAAiC,mBAAoBO,EAAAxC,EAAAwC,sBAAuBG,EAAA3C,EAAA2C,oBAMnD8I,GAAWhtW,EAAIvP,KAAM,CAAEyzW,oBAAAA,IAEjB,IAAAxC,ElB5XH,SAAuBlsL,OAC5B6tL,EAAA7tL,EAAA6tL,mBACA7D,EAAAhqL,EAAAgqL,WACAC,EAAAjqL,EAAAiqL,cACAz/V,EAAAw1K,EAAAx1K,IACA2b,EAAA65J,EAAA75J,QAQMu0V,EAGF,IAAIp2Q,IACFq2Q,EAGF,IAAIr2Q,IAEFojQ,EAIFl9V,EAAIymW,gBAHNnE,EAAApF,EAAAoF,uBACAtB,EAAA9D,EAAA8D,qBACAqB,EAAAnF,EAAAmF,0BAEF,MAAO,CACL+N,mBAuGF,SACEvR,EACA4E,GAEA,IAAMuL,EACJ,SACE1iZ,EACAkpN,OAAA0nL,OAAA,IAAA1nL,EAKI,CAAC,EAADA,EAJF2nL,EAAAD,EAAA3rE,UAAAA,OAAA,IAAA4rE,GAAYA,EACZ4P,EAAA7P,EAAA6P,aACArB,EAAAxO,EAAAwO,oBACsBiC,EAAAzQ,EAArBoB,IAGL,gBAACpoN,EAAUk8C,SA5UjB5jM,EA6UcywW,EAAgBoE,EAAmB,CACvCK,UAAWp3Y,EACXm3Y,mBAAAA,EACA5E,aAAAA,IAGItN,EAAQiO,IAAAhqL,EAAA,CACZ3vN,KAAM,QACN0rU,UAAAA,EACAw7E,aAAAA,EACArB,oBAAAA,EACA7M,aAAAA,EACAC,aAAcxyY,EACd2yY,cAAAA,IACCX,IAAqBqP,EAAA,IAElB/hZ,EACJo0C,EAAIc,UAAU+9V,GACdzmG,OAAO9rS,GAEH+jZ,EAAcn6N,EAASq7M,GACvB+e,EAAa1kZ,EAASwmO,KAE5Bm+K,EAAkBr6N,GAEV,IAAA52H,EAAqB+wV,EAAA/wV,UAAVyF,EAAUsrV,EAAAtrV,MAEvByrV,EAAuBF,EAAWhxV,YAAcA,EAEhDmxV,EAAe,OAAAjiX,EAAA0hX,EAAepmZ,IAAIosL,SAAnB,EAAA1nJ,EAA+BywW,GAC9CyR,EAAkB,WAAM,OAAA9kZ,EAASwmO,IAAT,EAExBu+K,EAA8C1sZ,OAAOD,OACzD2pZ,EAGI0C,EAAY7vT,KAAKkwT,GACjBF,IAAyBC,EAGzB54W,QAAQnD,QAAQ47W,GAGhBz4W,QAAQ+sF,IAAI,CAAC6rR,EAAcJ,IAAc7vT,KAAKkwT,GAClD,CACEpkZ,IAAAA,EACAgzD,UAAAA,EACAosV,oBAAAA,EACAzM,cAAAA,EACAl6U,MAAAA,EACMuzU,OAAA,WAAS,OAAAX,GAAA,+EACE,SAAMgZ,UAErB,IAFMv9Y,EAASoiN,EAAA1vJ,QAEJujB,QACT,MAAMj2E,EAAOiJ,MAGf,MAAO,CAAP,EAAOjJ,EAAO6C,YAAA,EAEhB26Y,QAAS,WACP,OAAA16N,EACE84N,EAAY1iZ,EAAK,CAAEilU,WAAW,EAAOw7E,cAAc,IADrD,EAGF97E,YAAA,WACMM,GACFr7I,EACEosN,EAAuB,CACrBrD,cAAAA,EACA3/U,UAAAA,IAAA,EAIR+iV,0BAAA,SAA0BxhZ,GACxB8vZ,EAAajF,oBAAsB7qZ,EACnCq1L,EACEmsN,EAA0B,CACxBxD,aAAAA,EACAv/U,UAAAA,EACA2/U,cAAAA,EACAp+Y,QAAAA,IAAA,IAOV,IAAK4vZ,IAAiBD,IAAyB7C,EAAc,CAC3D,IAAMkD,EAAUX,EAAepmZ,IAAIosL,IAAa,CAAC,EACjD26N,EAAQ5R,GAAiB0R,EACzBT,EAAenmZ,IAAImsL,EAAU26N,GAE7BF,EAAanwT,MAAK,kBACTqwT,EAAQ5R,GACVh7Y,OAAO4pB,KAAKgjY,GAASzvZ,QACxB8uZ,EAAelpW,OAAOkvI,EAAA,IAK5B,OAAOy6N,CAAA,CApGT,EAsGF,OAAO3B,CAAA,EA1NP8B,sBA6NF,SACEjS,GAEA,OAAO,SAACvyY,EAAKkpN,OAAA0nL,OAAA,IAAA1nL,EAAkC,CAAC,EAADA,EAAhC2nL,EAAAD,EAAA3lO,MAAAA,OAAA,IAAA4lO,GAAQA,EAAMiC,EAAAlC,EAAAkC,cAC3B,gBAAClpN,EAAUk8C,GACT,IAAMm/J,EAAQkO,EAAc,CAC1B55Y,KAAM,WACNg5Y,aAAAA,EACAC,aAAcxyY,EACdirK,MAAAA,EACA6nO,cAAAA,IAEIiR,EAAcn6N,EAASq7M,GAC7Bgf,EAAkBr6N,GACV,IAAA52H,EAA6B+wV,EAAA/wV,UAAlByF,EAAkBsrV,EAAAtrV,MAAXuzU,EAAW+X,EAAA/X,OAC/ByY,EAAqBV,EACxB/X,SACA93S,MAAK,SAACvqF,GAAU,OAAEA,KAAAA,EAAF,IAChB22K,OAAM,SAACvwK,GAAW,OAAEA,MAAAA,EAAF,IAEfukB,EAAQ,WACZs1J,EAAS8qN,EAAqB,CAAE1hV,UAAAA,EAAW8/U,cAAAA,IAAA,EAGvCvvT,EAAM5rF,OAAOD,OAAO+sZ,EAAoB,CAC5CzkZ,IAAK+jZ,EAAY/jZ,IACjBgzD,UAAAA,EACAyF,MAAAA,EACAuzU,OAAAA,EACArnE,YAAarwS,EACbA,MAAAA,IAGIqrR,EAAUkkG,EAAiBrmZ,IAAIosL,IAAa,CAAC,EAqBnD,OApBAi6N,EAAiBpmZ,IAAImsL,EAAU+1H,GAC/BA,EAAQ3sP,GAAauwB,EACrBA,EAAI2Q,MAAK,kBACAyrN,EAAQ3sP,GACVr7D,OAAO4pB,KAAKo+R,GAAS7qT,QACxB+uZ,EAAiBnpW,OAAOkvI,EAAA,IAGxBkpN,IACFnzF,EAAQmzF,GAAiBvvT,EACzBA,EAAI2Q,MAAK,WACHyrN,EAAQmzF,KAAmBvvT,WACtBo8N,EAAQmzF,GACVn7Y,OAAO4pB,KAAKo+R,GAAS7qT,QACxB+uZ,EAAiBnpW,OAAOkvI,GAAA,KAMzBrmG,CAAA,CAlDT,CAkDS,EAlRXmhU,qBAqCF,SAA8BnS,EAAsB6E,GAClD,OAAO,SAACxtN,GA/PZ,IAAA1nJ,EAgQYi1W,EAAqB9nV,EAAQgjV,oBAAoBE,GACjDI,EAAgBoE,EAAmB,CACvCK,UAAAA,EACAD,mBAAAA,EACA5E,aAAAA,IAEF,OAAO,OAAArwW,EAAA0hX,EAAepmZ,IAAIosL,SAAnB,EAAA1nJ,EAA+BywW,EAAA,GA5CxCgS,wBAkDF,SAKEC,EACAC,GAEA,OAAO,SAACj7N,GApRZ,IAAA1nJ,EAqRM,OAAO,OAAAA,EAAA2hX,EAAiBrmZ,IAAIosL,SAArB,EAAA1nJ,EAAiC2iX,EAAA,GA1D1CC,uBAgEF,WACE,OAAO,SAACl7N,GACN,OAAAjyL,OAAOqrB,OAAO4gY,EAAepmZ,IAAIosL,IAAa,CAAC,GAAGrlK,OAAOwtX,GAAzD,CAAyD,EAjE3DgT,yBAoEF,WACE,OAAO,SAACn7N,GACN,OAAAjyL,OAAOqrB,OAAO6gY,EAAiBrmZ,IAAIosL,IAAa,CAAC,GAAGrlK,OAAOwtX,GAA3D,CAA2D,EArE7DiT,4BAcF,WAOI,IAAMC,EAAU,SACdn8Y,GAEA,OAAAxK,MAAM/G,KAAKuR,EAAEka,UAAUoE,SAAQ,SAAC89X,GAC9B,OAAAA,EAAkBvtZ,OAAOqrB,OAAOkiY,GAAmB,EAAnD,GADF,EAGF,OAAOnf,GAAAA,GAAA,GAAIkf,EAAQrB,IAAoBqB,EAAQpB,IAAmBt/X,OAChEwtX,GAAA,EA3BJoT,eAIF,WACE,MAAM,IAAI1+Y,MACR,8PAiEJ,SAAAw9Y,EAA2Br6N,GAkB0C,CAoLxD,CkBqFPw7N,CAAc,CAChBlS,WAAAA,EACAC,cAAAA,EACAz/V,IAAAA,EACAqjW,mBAAAA,EACA1nV,QAAAA,IAbAy0V,EAAA1O,EAAA0O,mBACAU,EAAApP,EAAAoP,sBACAG,EAAAvP,EAAAuP,wBACAI,EAAA3P,EAAA2P,yBACAD,EAAA1P,EAAA0P,uBACAJ,EAAAtP,EAAAsP,qBACAM,EAAA5P,EAAA4P,4BACAG,EAAA/P,EAAA+P,eAkBF,OATAzE,GAAWhtW,EAAIvP,KAAM,CACnB6gX,4BAAAA,EACAK,2BAA4BF,EAC5BR,wBAAAA,EACAI,yBAAAA,EACAL,qBAAAA,EACAI,uBAAAA,IAGK,CACLnlZ,KAAMghZ,GACNhH,eAAA,SAAepH,EAAc/hF,GAnlBnC,IAAAtuR,EAolBcojX,EAAS5xW,EAOf,OAAAxR,EAAAojX,EAAO9wW,WAAP+9V,KAAArwW,EAAAqwW,GAAmC,CAAC,GAChCb,GAAkBlhF,GACpBkwF,GACE4E,EAAO9wW,UAAU+9V,GACjB,CACE5yY,KAAM4yY,EACNzmG,OAAQorG,EAAmB3E,EAAc/hF,GACzCoyF,SAAUkB,EAAmBvR,EAAc/hF,IAE7C6yF,EAAuBnQ,EAAYX,IrBmCxC,SACLv7Y,GAEA,OAAOA,EAAEuC,OAASw3Y,GAAewI,QAAA,CqBpChBgM,CAAqB/0F,IAC9BkwF,GACE4E,EAAO9wW,UAAU+9V,GACjB,CACE5yY,KAAM4yY,EACNzmG,OAAQ2rG,IACRmL,SAAU4B,EAAsBjS,IAElC8Q,EAAuBlQ,EAAeZ,GAAA,IAlKG,MCzcJqO,6jBCC1C,SAAA4E,GACLpO,EACAn8Y,EACAk8Y,EACA5E,GAEA,IAAMkT,GAAWr5N,EAAAA,EAAAA,UACf,WAAO,OACLgrN,UAAAA,EACA73Y,WACsB,iBAAb63Y,EACHn8Y,EAAU,CAAEm8Y,UAAAA,EAAWD,mBAAAA,EAAoB5E,aAAAA,IAC3C6E,EALD,GAOP,CAACA,EAAWn8Y,EAAWk8Y,EAAoB5E,IAEvCmT,GAAQp5N,EAAAA,EAAAA,QAAOm5N,GAOrB,OANAx5N,EAAAA,EAAAA,YAAU,WACJy5N,EAAMvkZ,QAAQ5B,aAAekmZ,EAASlmZ,aACxCmmZ,EAAMvkZ,QAAUskZ,EAAA,GAEjB,CAACA,IAEGC,EAAMvkZ,QAAQ5B,aAAekmZ,EAASlmZ,WACzCmmZ,EAAMvkZ,QAAQi2Y,UACdA,CAAA,CC7BC,IAAMuO,GAAsB1wX,SCG5B,SAAA2wX,GAAkC/tZ,GACvC,IAAM6tZ,GAAQG,EAAAA,EAAAA,QAAOhuZ,GAOrB,OANAiuZ,EAAAA,EAAAA,YAAU,WACH9/E,GAAa0/E,EAAMvkZ,QAAStJ,KAC/B6tZ,EAAMvkZ,QAAUtJ,EAAA,GAEjB,CAACA,IAEGmuU,GAAa0/E,EAAMvkZ,QAAStJ,GAAS6tZ,EAAMvkZ,QAAUtJ,CAAA,ChBP9D,IToMYk5Y,GSpMNrxY,GAA0CrC,QAC5C,IAAIA,aACJ,EAESi7Y,GAAqD,SAACjS,OACjEkM,EAAAlM,EAAAkM,aACA6E,EAAA/Q,EAAA+Q,UAEI73Y,EAAa,GAEXwH,EAAS,MAAArH,QAAA,EAAAA,GAAOlC,IAAI45Y,GAE1B,GAAsB,kBAAXrwY,EACTxH,EAAawH,MACR,CACL,IAAMwxY,EAAclnY,KAAKjW,UAAUg8Y,GAAW,SAACzhZ,EAAKkC,GAClD,OAAA0tB,GAAc1tB,GACVF,OAAO4pB,KAAK1pB,GACTwxB,OACAze,QAAY,SAACoM,EAAKm+H,GAEjB,OADAn+H,EAAIm+H,GAAQt9I,EAAcs9I,GACnBn+H,CAAA,GACN,CAAC,GACNnf,CAPJ,IASE0tB,GAAc6xX,KAChB,MAAA13Y,IAAAA,GAAOjC,IAAI25Y,EAAWmB,IAExBh5Y,EAAag5Y,EAGf,OAAUhG,EAAA,IAAgBhzY,EAAA,KiBwBf65T,GACO,qBAAXjiS,QACLA,OAAOhhC,UACPghC,OAAOhhC,SAASC,cACd+1L,EAAAA,gBACA45N,EAAAA,UA8dAC,GAAgE,SAACnpZ,GAAM,OAAAA,CAAA,EAQvEopZ,GAA4D,SAChEh4Y,GAEA,OAAIA,EAASiqY,gBACJtN,GAAAhF,GAAA,GACF33X,GADE,CAELiqY,iBAAiB,EACjBgO,YAAY,EACZjwI,eAA6B,IAAlBhoQ,EAAStE,KACpBk8C,OAAQ0pV,GAAY7oN,UAGjBz4K,CAAA,ECljBF,SAAA4K,GAAoBvR,GACzB,OAAOA,EAAIxP,QAAQwP,EAAI,GAAIA,EAAI,GAAGitB,cAAA,CPK7B,SAAAmsX,GACLriY,OAAA,IAAA3c,EAAA,GAAAiF,EAAA,EAAAA,EAAAlF,UAAA3M,OAAA6R,IAAAjF,EAAAiF,EAAA,GAAAlF,UAAAkF,GAGAhP,OAAOD,OAAAoK,MAAPnK,OAAAouY,GAAA,CAAc1nX,GAAW3c,GAAA,EpB8LpB,SAAKsvY,GACVA,EAAA,MAAQ,QACRA,EAAA,SAAW,WAFN,CAAKD,KAAAA,GAAA,K4B/KL,IAAMoV,GAAuClxX,SCnBpD,IAAMmxX,GAA4B3N,GAChCmI,KDoH8B,SAACva,OAAAhmM,OAAA,IAAAgmM,EAMJ,CAAC,EAADA,EAL3BpmM,EAAAI,EAAAsiI,MAAAA,OAAA,IAAA1iI,EAAQomN,EAAAA,wBAAApmN,EACR8mM,EAAA1mM,EAAA0lI,YAAAA,OAAA,IAAAghE,EAAcuf,GAAAvf,EACdE,EAAA5mM,EAAAikI,YAAAA,OAAA,IAAA2iE,EAAcsf,GAAAtf,EACdC,EAAA7mM,EAAAulI,SAAAA,OAAA,IAAAshE,EAAWsf,GAAAtf,EACXh+K,EAAA7oB,EAAAomN,8BAAAA,OAAA,IAAAv9L,GAAgCA,EAC6B,OAC7DvpN,KAAMwmZ,GACNztX,KAAA,SAAKgb,EAAK2yV,EAAwBh3U,OAAtB0nV,EAAA1Q,EAAA0Q,mBACJuO,EAAS5xW,EAOT2sJ,EFwbH,SAA6DgmM,OAClE3yV,EAAA2yV,EAAA3yV,IACA2sJ,EAAAgmM,EAAAqgB,cACE/jF,EAAAtiI,EAAAsiI,MACAoD,EAAA1lI,EAAA0lI,YACAzB,EAAAjkI,EAAAikI,YACAsB,EAAAvlI,EAAAulI,SACA6gF,EAAApmN,EAAAomN,8BAEF1P,EAAA1Q,EAAA0Q,mBACA1nV,EAAAg3U,EAAAh3U,QAOMs3V,EAGMF,EAAgC,SAAC7/W,GAAO,OAAAA,GAAA,EAAOm/W,EAAAA,UAE3D,MAAO,CAAEa,gBAsET,SAAyBjnZ,GACvB,IAAMknZ,EAAkD,SACtD7mZ,EACAqmY,OAAAhmM,OAAA,IAAAgmM,EAMI,CAAC,EAADA,EALFyS,EAAAz4M,EAAAy4M,mBACAD,EAAAx4M,EAAAw4M,eACAD,EAAAv4M,EAAAu4M,0BACA34M,EAAAI,EAAAmnJ,KAAAA,OAAA,IAAAvnJ,GAAOA,EACP8mM,EAAA1mM,EAAA27M,gBAAAA,OAAA,IAAAjV,EAAkB,EAAAA,EAGZ6b,EAAalvW,EAAIc,UAAU70C,GAAAijZ,SAI7Bh5N,EAAWm8I,IACX+gF,EAAYtB,GAChBh+D,EAAOkvD,GAAY12Y,EAMnBs4Y,GACAjpV,EAAQgjV,oBAAoB1yY,GAC5BA,GAEIonZ,EAA4BnB,GAAsB,CACtD9M,mBAAAA,EACAD,eAAAA,EACAmD,gBAAAA,IAGIgL,GAA4BC,EAAAA,EAAAA,SAAO,GAEnCC,GAAaD,EAAAA,EAAAA,UAEfhgB,EAA+BigB,EAAW/lZ,SAAW,CAAC,EAApDwxY,EAAA1L,EAAA0L,cAAe3/U,EAAAi0U,EAAAj0U,UAIjBm0V,GAA+B,EACnC,GAAIxU,GAAiB3/U,EAAW,CAE9B,IAAMo0V,EAAgBx9N,EACpBl2I,EAAIymW,gBAAgBlE,2BAA2B,CAC7CtD,cAAAA,EACA3/U,UAAAA,KAaJm0V,IAAiCC,EAGnC,IAAMC,GACHF,GAAgCH,EAA0B7lZ,QA2D7D,OAzDAwlZ,GAA2B,WACzBK,EAA0B7lZ,QAAUgmZ,CAAA,IAGtCR,GAA2B,WACrBU,IACFH,EAAW/lZ,aAAU,KAEtB,CAACkmZ,IAEJV,GAA2B,WA3uBjC,IAAAzkX,EA4uBcolX,EAAcJ,EAAW/lZ,QAS/B,GAAI2lZ,IAAcpQ,GAGhB,OAFA,MAAA4Q,GAAAA,EAAa3iF,mBACbuiF,EAAW/lZ,aAAU,GAIvB,IAAMomZ,EAA0B,OAAArlX,EAAAglX,EAAW/lZ,cAAX,EAAA+gC,EAAoBk9W,oBAEpD,GAAKkI,GAAeA,EAAYtnZ,MAAQ8mZ,EAU7BC,IAA8BQ,GACvCD,EAAYvR,0BAA0BgR,OAXW,CACjD,MAAAO,GAAAA,EAAa3iF,cACb,IAAM9pQ,EAAU+uH,EACdg5N,EAASkE,EAAW,CAClB1H,oBAAqB2H,EACrBtG,aAAc7H,KAIlBsO,EAAW/lZ,QAAU05D,EAEiB,GAEvC,CACD+uH,EACAg5N,EACAhK,EACAkO,EACAC,EACAM,KAGFtB,EAAAA,EAAAA,YAAU,WACR,OAAO,WApxBf,IAAA7jX,EAqxBU,OAAAA,EAAAglX,EAAW/lZ,UAAX+gC,EAAoByiS,cACpBuiF,EAAW/lZ,aAAU,KAEtB,KAEIqmZ,EAAAA,EAAAA,UACL,WAAO,OAILlD,QAAS,WA/xBnB,IAAApiX,EAgyBY,IAAKglX,EAAW/lZ,QACd,MAAM,IAAIsF,MACR,yDAEJ,OAAO,OAAAy7B,EAAAglX,EAAW/lZ,cAAX,EAAA+gC,EAAoBoiX,SAAA,EATxB,GAYP,KAIEmD,EAA0D,SAACphB,OAAAhmM,OAAA,IAAAgmM,EAI7D,CAAC,EAADA,EAHFyS,EAAAz4M,EAAAy4M,mBACAD,EAAAx4M,EAAAw4M,eACA54M,EAAAI,EAAA27M,gBAAAA,OAAA,IAAA/7M,EAAkB,EAAAA,EAEV2iN,EAAalvW,EAAIc,UAAU70C,GAAAijZ,SAI7Bh5N,EAAWm8I,IAEXghE,GAAgBx6M,EAAAA,EAAAA,UAAco5N,IAA7B3lZ,EAAA+mY,EAAA,GAAK2gB,EAAA3gB,EAAA,GACNmgB,GAAaD,EAAAA,EAAAA,UAEbF,EAA4BnB,GAAsB,CACtD9M,mBAAAA,EACAD,eAAAA,EACAmD,gBAAAA,IAGF2K,GAA2B,WA/zBjC,IAAAzkX,EAAAi+P,EAg0BconH,EAA0B,OAAArlX,EAAAglX,EAAW/lZ,cAAX,EAAA+gC,EAAoBk9W,oBAEhD2H,IAA8BQ,IAChC,OAAApnH,EAAA+mH,EAAW/lZ,UAAXg/R,EAAoB41G,0BAClBgR,GAAA,GAGH,CAACA,IAEJ,IAAMY,GAAyBV,EAAAA,EAAAA,QAAOF,GACtCJ,GAA2B,WACzBgB,EAAuBxmZ,QAAU4lZ,CAAA,GAChC,CAACA,IAEJ,IAAMh4M,GAAU/iB,EAAAA,EAAAA,cACd,SAAUw1N,EAAUoG,GAClB,IAAI/sV,EAeJ,YAhBkB,IAAA+sV,IAAAA,GAAA,GAGlBjlF,GAAM,WAl1BhB,IAAAzgS,EAm1BY,OAAAA,EAAAglX,EAAW/lZ,UAAX+gC,EAAoByiS,cAEpBuiF,EAAW/lZ,QAAU05D,EAAU+uH,EAC7Bg5N,EAASpB,EAAK,CACZpC,oBAAqBuI,EAAuBxmZ,QAC5Cs/Y,cAAemH,KAInBF,EAAOlG,EAAA,IAGF3mV,CAAA,GAET,CAAC+uH,EAAUg5N,IAiBb,OAbAmD,EAAAA,EAAAA,YAAU,WACR,OAAO,WAt2Bf,IAAA7jX,EAu2BU,OAAAA,EAAA,MAAAglX,OAAA,EAAAA,EAAY/lZ,UAAZ+gC,EAAqByiS,aAAA,IAEtB,KAGHohF,EAAAA,EAAAA,YAAU,WACJ/lZ,IAAQ2lZ,IAAwBuB,EAAW/lZ,SAC7C4tM,EAAQ/uM,GAAK,KAEd,CAACA,EAAK+uM,KAEFy4M,EAAAA,EAAAA,UAAQ,WAAM,OAACz4M,EAAS/uM,EAAV,GAAyB,CAAC+uM,EAAS/uM,GAAA,EAGpD6nZ,EAAoC,SACxC7nZ,EACAqmY,OAAAhmM,OAAA,IAAAgmM,EAAqC,CAAC,EAADA,EAAnCpmM,EAAAI,EAAAmnJ,KAAAA,OAAA,IAAAvnJ,GAAOA,EAAO6nN,EAAAznN,EAAAynN,iBAERh8G,EAAWp4P,EAAIc,UAAU70C,GAAAmsS,OAI3Bg7G,EAAYtB,GAChBh+D,EAAOkvD,GAAY12Y,EACnB+2Y,EACA1nV,EAAQgjV,oBAAoB1yY,GAC5BA,GAKIooZ,GAAYd,EAAAA,EAAAA,UAEZe,GAA0DR,EAAAA,EAAAA,UAC9D,WACE,OAAA/X,GACE,CACE3jG,EAAOg7G,GACP,SAACt0W,EAAiBqxG,GAAoB,OAAAA,CAAA,EACtC,SAACrxG,GAAoB,OAAAs0W,CAAA,GAEvBmB,EANF,GAQF,CAACn8G,EAAQg7G,IAGL5lZ,GAAoDsmZ,EAAAA,EAAAA,UACxD,WACE,OAAAM,EACIrY,GAAe,CAACuY,GAAsBF,GACtCE,CAFJ,GAGF,CAACA,EAAqBF,IAGlB/vV,EAAeusQ,GACnB,SAAC9nT,GACC,OAAAtb,EAAcsb,EAAOurY,EAAU5mZ,QAA/B,GACF+mZ,IAGIpkF,EAAQ8B,IACRuiF,EAAeH,EACnBlkF,EAAMh+F,WACNiiL,EAAU5mZ,SAMZ,OAJAi4T,IAA0B,WACxB2uF,EAAU5mZ,QAAUgnZ,CAAA,GACnB,CAACA,IAEGpwV,CAAA,EAGT,MAAO,CACL8vV,cAAAA,EACAhB,qBAAAA,EACAY,yBAAAA,EACAW,aAAA,SAAa7zZ,GACL,IAAA8xY,EAAiBohB,EAAyBlzZ,GAAzCw6M,EAAAs3L,EAAA,GAASrmY,EAAAqmY,EAAA,GACVgiB,EAAoBR,EAAc7nZ,EAAK4qY,GAAAhF,GAAA,GACxCrxY,GADwC,CAE3CizV,KAAMxnV,IAAQ2lZ,MAGVz1Y,GAAOs3Y,EAAAA,EAAAA,UAAQ,WAAO,OAAEc,QAAStoZ,EAAX,GAAmB,CAACA,IAChD,OAAOwnZ,EAAAA,EAAAA,UACL,WAAM,OAACz4M,EAASs5M,EAAmBn4Y,EAA7B,GACN,CAAC6+L,EAASs5M,EAAmBn4Y,GAAA,EAGjCq4Y,SAAA,SAASvoZ,EAAKzL,GACZ,IAAMi0Z,EAA2B3B,EAAqB7mZ,EAAKzL,GACrD8zZ,EAAoBR,EAAc7nZ,EAAK4lY,GAAA,CAC3CkiB,iBACE9nZ,IAAQ02Y,KAAa,MAAAniZ,OAAA,EAAAA,EAASizV,WAC1B,EACAy+D,IACH1xZ,IAGGoV,EACN0+Y,EAAA1+Y,KADYk8C,EACZwiW,EAAAxiW,OADoBowN,EACpBoyI,EAAApyI,UAD+BkiI,EAC/BkQ,EAAAlQ,UAD0Cp7T,EAC1CsrU,EAAAtrU,QADmDhtE,EACnDs4Y,EAAAt4Y,MAGF,OAFAy8K,EAAAA,EAAAA,eAAc,CAAE7iL,KAAAA,EAAMk8C,OAAAA,EAAQowN,UAAAA,EAAWkiI,UAAAA,EAAWp7T,QAAAA,EAAShtE,MAAAA,KAEtDy3Y,EAAAA,EAAAA,UACL,WAAO,OAAA5hB,GAAAA,GAAA,GAAKyiB,GAAsBG,EAA3B,GACP,CAACH,EAAmBG,GAAA,IAvXFC,kBA6X1B,SAA2B9oZ,GACzB,OAAO,SAAC0mY,OAAAhmM,OAAA,IAAAgmM,EAGJ,CAAC,EAADA,EAFFpmM,EAAAI,EAAAynN,iBAAAA,OAAA,IAAA7nN,EAAmB+lN,GAAA/lN,EACnB6yM,EAAAzyM,EAAAyyM,cAEM/L,EAAuBrzV,EAAIc,UAAU70C,GAAnCmsS,EAAAi7F,EAAAj7F,OAAQ82G,EAAA7b,EAAA6b,SAIVh5N,EAAWm8I,IACXkhE,GAAwB16M,EAAAA,EAAAA,YAAvB1xH,EAAAosU,EAAA,GAASyhB,EAAAzhB,EAAA,IAEhB8e,EAAAA,EAAAA,YACE,WAAM,mBACC,MAAAlrV,OAAA,EAAAA,EAAS76D,IAAI8yY,gBAChB,MAAAj4U,GAAAA,EAASvmC,OAAA,CAFP,GAKN,CAACumC,IAGH,IAAM8tV,GAAkB38N,EAAAA,EAAAA,cACtB,SAAUhsL,GACR,IAAMorY,EAAUxhN,EAASg5N,EAAS5iZ,EAAK,CAAE8yY,cAAAA,KAEzC,OADA4V,EAAWtd,GACJA,CAAA,GAET,CAACxhN,EAAUg5N,EAAU9P,IAGf9/U,GAAc6H,GAAW,CAAC,GAAD7H,UAC3B41V,GAAmBpB,EAAAA,EAAAA,UACvB,WACE,OAAA/X,GACE,CAAC3jG,EAAO,CAAEgnG,cAAAA,EAAe9/U,UAAW,MAAA6H,OAAA,EAAAA,EAAS7H,aAC7C80V,EAFF,GAIF,CAACh8G,EAAQjxO,EAASitV,EAAkBhV,IAGhC/6U,EAAeusQ,EAAYskF,EAAkBV,IAC7C1V,EACa,MAAjBM,EAAwB,MAAAj4U,OAAA,EAAAA,EAAS76D,IAAIwyY,kBAAe,EAChDl+W,GAAQ03J,EAAAA,EAAAA,cAAY,WACxB22I,GAAM,WACA9nQ,GACF6tV,OAAW,GAET5V,GACFlpN,EACEl2I,EAAIymW,gBAAgBzF,qBAAqB,CACvC1hV,UAAAA,EACA8/U,cAAAA,IAAA,MAKP,CAAClpN,EAAUkpN,EAAej4U,EAAS7H,IAGpCu/U,EAOEx6U,EAAAw6U,aANF5oY,EAMEouD,EAAApuD,KALFk8C,EAKEkS,EAAAlS,OAJFowN,EAIEl+M,EAAAk+M,UAHFkiI,EAGEpgV,EAAAogV,UAFFp7T,EAEEhlB,EAAAglB,QADFhtE,EACEgoD,EAAAhoD,OACJy8K,EAAAA,EAAAA,eAAc,CACZ+lN,aAAAA,EACA5oY,KAAAA,EACAk8C,OAAAA,EACAowN,UAAAA,EACAkiI,UAAAA,EACAp7T,QAAAA,EACAhtE,MAAAA,IAGF,IAAM4mE,GAAa6wU,EAAAA,EAAAA,UACjB,WAAO,OAAA5c,GAAAhF,GAAA,GAAK7tU,GAAL,CAAmBy6U,aAAAA,EAAcl+W,MAAAA,GAAjC,GACP,CAACyjC,EAAcy6U,EAAcl+W,IAG/B,OAAOkzX,EAAAA,EAAAA,UACL,WAAM,OAACmB,EAAiBhyU,EAAlB,GACN,CAACgyU,EAAiBhyU,GAAA,GAldqBkyU,YAmD7C,SACEtW,EACAl8S,GAEA,IAAMuzF,EAAWm8I,IACX+iF,EAAuBlD,GAAsBvvT,GAEnD,OAAO21F,EAAAA,EAAAA,cACL,SAAChsL,EAAUzL,GACT,OAAAq1L,EACGl2I,EAAIvP,KAAKm+W,SAAkC/P,EAAcvyY,EAAK4lY,GAAAA,GAAA,GAC1DkjB,GACAv0Z,IAHP,GAMF,CAACg+Y,EAAc3oN,EAAUk/N,GAAA,GAhE7B,SAAAb,EACElwV,EACA8rF,EACAuzP,GAKA,IAAI,MAAAvzP,OAAA,EAAAA,EAAY0uP,eAAgBx6U,EAAamgV,gBAAiB,CACpD,IAAA3F,EAAiB1uP,EAAA0uP,aACnB4E,EAAqB9nV,EAAQgjV,oBAAoBE,GAErDwE,EAAmB,CACjBK,UAAWvzP,EAAW2uP,aACtB2E,mBAAAA,EACA5E,aAAAA,MAEFwE,EAAmB,CACjBK,UAAAA,EACAD,mBAAAA,EACA5E,aAAAA,MAGF1uP,OAAa,GAIjB,IAAIl6I,EAAOouD,EAAaogV,UAAYpgV,EAAapuD,KAAO,MAAAk6I,OAAA,EAAAA,EAAYl6I,UACvD,IAATA,IAAoBA,EAAOouD,EAAapuD,MAE5C,IAAMo/Y,OAAmB,IAATp/Y,EAGVu8Y,EAAanuV,EAAak+M,UAE1BA,GAAa8yI,GAAW7C,EAExB/N,EAAYpgV,EAAaogV,WAAc+N,GAAc6C,EAE3D,OAAOne,GAAAhF,GAAA,GACF7tU,GADE,CAELpuD,KAAAA,EACAq/Y,YAAajxV,EAAapuD,KAC1Bu8Y,WAAAA,EACAjwI,UAAAA,EACAkiI,UAAAA,GAAA,CAmaoB,CEh6BsC8Q,CAAW,CACrEv1W,IAAAA,EACAgzW,cAAe,CACb/jF,MAAAA,EACAoD,YAAAA,EACAzB,YAAAA,EACAsB,SAAAA,EACA6gF,8BAAAA,GAEF1P,mBAAAA,EACA1nV,QAAAA,IAVMu3V,EAAAvmN,EAAAumN,gBAAiB6B,EAAApoN,EAAAooN,kBAAmBI,EAAAxoN,EAAAwoN,YAe5C,OAHAnI,GAAW4E,EAAQ,CAAEuD,YAAAA,IACrBnI,GAAWrxV,EAAS,CAAEszQ,MAAAA,IAEf,CACLg3E,eAAA,SAAepH,EAAc/hF,GAC3B,G5BqeD,SACLx5T,GAEA,OAAOA,EAAEuC,OAASw3Y,GAAe5pW,KAAA,C4BxevBuqW,CAAkBlhF,GAAa,CAC3B,IAAA61E,EAMFugB,EAAgBrU,GALlBgW,EAAAliB,EAAAkiB,SACAH,EAAA/hB,EAAA+hB,aACAX,EAAAphB,EAAAohB,yBACAI,EAAAxhB,EAAAwhB,cACAhB,EAAAxgB,EAAAwgB,qBAEFnG,GAAW4E,EAAO9wW,UAAU+9V,GAAe,CACzCgW,SAAAA,EACAH,aAAAA,EACAX,yBAAAA,EACAI,cAAAA,EACAhB,qBAAAA,IAEAnzW,EAAY,MAAM76B,GAAW05X,GAAA,SAAwBgW,EACrD70W,EAAY,UAAU76B,GAAW05X,GAAA,SACjC6V,OAAA,G5B0dL,SACLpxZ,GAEA,OAAOA,EAAEuC,OAASw3Y,GAAewI,QAAA,C4B5dhBgM,CAAqB/0F,GAAa,CAC3C,IAAM04F,EAAcT,EAAkBlW,GACtCmO,GAAW4E,EAAO9wW,UAAU+9V,GAAe,CACzC2W,YAAAA,IAEAx1W,EAAY,MAAM76B,GAAW05X,GAAA,YAA2B2W,EAAA,IAlDL,CCzH7DC,ICGK,MAAMC,GAAWtkX,oCACXukX,GAAmBvkX,6BACnBwkX,GAAgB,CAC3BC,MAAO,oBACPC,YAAa,0BACbC,OAAQ,oBACRC,WAAY,wBACZC,WAAY,qCACZC,gBAAiB,4BACjBC,gBAAiB,6BACjBC,YAAa,yBACbC,kBAAmB,qCACnBC,eAAgB,4BAChBC,mBAAoB,+BACpBC,4BAA6B,sCAC7BC,cAAe,+CACfC,iBAAkB,2BAClBC,cAAe,oCACfC,uBAAwB,mCACxBC,uBAAwB,mCACxBC,8BAA+B,mCAC/BC,oBAAqB,kCACrBC,cAAe,4BACfC,wBAAyB,iCACzBC,oBAAqB,qCACrBC,cAAe,+BACfC,cAAe,yBACfC,oBAAqB,sCACrBC,sBAAuB,sCACvBC,cAAe,mCACfC,sBAAuB,kCACvBC,oBAAqB,+BACrBC,sBAAuB,sCACvBC,YAAa,yBACbC,oBAAqB,gCACrBC,6BAA8B,wCAC9BC,cAAe,4BACfC,aAAc,2BACdC,eAAgB,6BAChBC,eAAgB,8BAChBC,qBAAsB,mCACtBC,eAAgB,8BAChBC,qBAAsB,mCACtBC,eAAgB,qCAChBC,qBAAsB,0CACtBC,cAAe,6BACfC,oBAAqB,kCACrBC,iBAAkB,gCAClBC,uBAAwB,qCACxBC,oBAAqB,mCACrBC,mBAAoB,kCACpBC,kBAAoBC,GAClB,oCAAsCA,EACxCC,yBAA0B,uCAC1BC,mBAAoB,kCACpBC,0BAA2B,uCAC3BC,qBAAsB,6BACtBC,yBAA0B,qCAC1BC,wBAAyB,qCACzBC,uBAAwB,8BACxBC,iBAAkB,8CAClBC,4BAA6B,kBAC7BC,+BAAgC,kBAChCC,uBAAwB,uBACxBC,mCAAoC,uCACpCC,0BAA2B,yCAC3BC,wBAAyB,2CACzBC,wBAAyB,qCACzBC,sBAAuB,yCACvBC,mBAAoB,mCACpBC,iBAAkB,4BAClBC,eAAgB,wCAChBC,eAAgB,wCAChBC,wBAAyB,mCACzBC,kBAAmB,gCACnBC,qBAAsB,+BACtBC,cAAe,sBACfC,eAAgB,6BAChBC,qBAAsB,+BACtBC,oBAAqB,8BACrBC,gBAAiB,qBACjBC,oBAAqB,6BACrBC,kBAAmB,yBACnBC,qBAAsB,+BACtBC,kBAAmB,uBACnBC,iBAAkB,4BAClBC,eAAgB,gCAChBC,cAAe,wBACfC,eAAgB,mCAChBC,qBAAsB,+BACtBC,oBAAqB,8BACrBC,yBAA0B,gCAC1BC,eAAgB,8BAChBC,gBAAiB,yBACjBC,8BAA+B,oCAC/BC,eAAgB,oCAChBC,qBAAsB,6BACtBC,mBAAoB,yBACpBC,sBAAuB,+BACvBC,eAAgB,2CAChBC,qBAAsB,4CACtBC,2BAA4B,yCAC5BC,4BAA6B,wCAC7BC,gCACE,8CACFC,8BAA+B,6CAC/BC,8BAA+B,0CAC/BC,2BAA4B,6CAC5BC,yBAA0B,mCAC1BC,yBAA0B,gCAC1BC,0BACE,wDACFC,yBAA0B,6CAC1BC,oBAAqB,mBACrBC,oBAAqB,qBACrBC,4BAA6B,iDAC7BC,6BACE,kDACFC,+BACE,mDACFC,0BAA2B,iCAC3BC,2BAA4B,kCAC5BC,2BAA4B,sCAC5BC,oCAAqC,uCACrCC,wBAAyB,kCACzBC,oBAAqB,mCAErBC,gBAAiB,oCACjBC,oBAAsBC,GACpB,GAAG5H,kDAAwD4H,IAC7DC,cAAe,GAAG7H,wCAClB8H,uBAAwB,GAAG9H,kCAC3B+H,uBAAwB,sCACxBC,oBAAqB,2BACrBC,oBAAqB,iCACrBC,qBAAsB,gCACtBC,wBAAyB,gCACzBC,2BAA4B,mCAC5BC,0BAA2B,6BAC3BC,0BAA2B,+CAC3BC,0BAA2B,gDCrJd,SAAS1wY,GAAKnhB,EAAI40F,GAC/B,OAAO,WACL,OAAO50F,EAAGgC,MAAM4yF,EAASjzF,UAC3B,CACF,CCAA,MAAOO,SAAQA,IAAIrK,OAAO9B,WACpB,eAACm/B,IAAkBr9B,OAEnBi6Z,GAAS,CAAClyZ,GAASmyZ,IACrB,MAAMvqZ,EAAMtF,GAASzD,KAAKszZ,GAC1B,OAAOnyZ,EAAM4H,KAAS5H,EAAM4H,GAAOA,EAAI5O,MAAM,GAAI,GAAG8M,cAAc,EAFvD,CAGZ7N,OAAOoI,OAAO,OAEX+xZ,GAAcv4Z,IAClBA,EAAOA,EAAKiM,cACJqsZ,GAAUD,GAAOC,KAAWt4Z,GAGhCw4Z,GAAax4Z,GAAQs4Z,UAAgBA,IAAUt4Z,GAS/C,QAACgN,IAAWjI,MASZ0rI,GAAc+nR,GAAW,aAqB/B,MAAMjoG,GAAgBgoG,GAAW,eA2BjC,MAAM7rG,GAAW8rG,GAAW,UAQtB/pR,GAAa+pR,GAAW,YASxBvkG,GAAWukG,GAAW,UAStBhoR,GAAY8nR,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/CtsY,GAAiBlC,IACrB,GAAoB,WAAhBuuY,GAAOvuY,GACT,OAAO,EAGT,MAAMxtB,EAAYm/B,GAAe3R,GACjC,OAAsB,OAAdxtB,GAAsBA,IAAc8B,OAAO9B,WAAkD,OAArC8B,OAAOq9B,eAAen/B,OAA0Bo/B,OAAOC,eAAe7R,MAAU4R,OAAOE,YAAY9R,EAAI,EAUnK+qE,GAAS0jU,GAAW,QASpBE,GAASF,GAAW,QASpBG,GAASH,GAAW,QASpBI,GAAaJ,GAAW,YAsCxBK,GAAoBL,GAAW,oBAE9BM,GAAkBC,GAAWC,GAAYC,IAAa,CAAC,iBAAkB,UAAW,WAAY,WAAWx0Z,IAAI+zZ,IA2BtH,SAAS97Z,GAAQqQ,EAAKvG,GAA+B,IAM/CpJ,EACAgtB,GAPoB,WAAC8uY,GAAa,GAAM/wZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAAR4E,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLE,GAAQF,GAEV,IAAK3P,EAAI,EAAGgtB,EAAIrd,EAAIvR,OAAQ4B,EAAIgtB,EAAGhtB,IACjCoJ,EAAGvB,KAAK,KAAM8H,EAAI3P,GAAIA,EAAG2P,OAEtB,CAEL,MAAMkb,EAAOixY,EAAa76Z,OAAOq7F,oBAAoB3sF,GAAO1O,OAAO4pB,KAAKlb,GAClEmB,EAAM+Z,EAAKzsB,OACjB,IAAIa,EAEJ,IAAKe,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBf,EAAM4rB,EAAK7qB,GACXoJ,EAAGvB,KAAK,KAAM8H,EAAI1Q,GAAMA,EAAK0Q,EAEjC,CACF,CAEA,SAASg8G,GAAQh8G,EAAK1Q,GACpBA,EAAMA,EAAI6P,cACV,MAAM+b,EAAO5pB,OAAO4pB,KAAKlb,GACzB,IACI1E,EADAjL,EAAI6qB,EAAKzsB,OAEb,KAAO4B,KAAM,GAEX,GADAiL,EAAO4f,EAAK7qB,GACRf,IAAQgM,EAAK6D,cACf,OAAO7D,EAGX,OAAO,IACT,CAEA,MAAM8wZ,GAEsB,qBAAfrgU,WAAmCA,WACvB,qBAAT/yD,KAAuBA,KAA0B,qBAAXlI,OAAyBA,OAAS+qD,OAGlFwwU,GAAoBrjW,IAAa26E,GAAY36E,IAAYA,IAAYojW,GAoD3E,MA8HM3pG,GAAe,CAACr8K,GAEbolR,GACEplR,GAAcolR,aAAiBplR,EAHrB,CAKI,qBAAfxjI,YAA8B+rB,GAAe/rB,aA2CjD0pZ,GAAab,GAAW,mBAWxB7iZ,GAAiB,CAAC6B,IAAA,IAAC,eAAC7B,GAAe6B,EAAA,MAAK,CAACzK,EAAKkR,IAAStI,EAAe1Q,KAAK8H,EAAKkR,EAAK,EAApE,CAAsE5f,OAAO9B,WAS9Fg4T,GAAWikG,GAAW,UAEtBc,GAAoBA,CAACvsZ,EAAKg9X,KAC9B,MAAMr3E,EAAcr0T,OAAOioM,0BAA0Bv5L,GAC/CwsZ,EAAqB,CAAC,EAE5B78Z,GAAQg2T,GAAa,CAACt7P,EAAY/wD,KAChC,IAAI4jF,GAC2C,KAA1CA,EAAM8/S,EAAQ3yU,EAAY/wD,EAAM0G,MACnCwsZ,EAAmBlzZ,GAAQ4jF,GAAO7yB,EACpC,IAGF/4D,OAAOkoM,iBAAiBx5L,EAAKwsZ,EAAmB,EAsD5CC,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,SACAD,SACAG,YAAaH,GAAQA,GAAMv+X,cAAgBw+X,IAwB7C,MA+BMG,GAAYpB,GAAW,iBAQvBqB,IAAkBC,GAkBE,oBAAjB34U,aAlBsC44U,GAmB7CrrR,GAAWyqR,GAAQt1N,aAlBfi2N,GACK34U,aAGF44U,GAAuB,EAAEr5Z,EAAO2nE,KACrC8wV,GAAQ5zY,iBAAiB,WAAW3S,IAAoB,IAAnB,OAACmpB,EAAM,KAAE1rB,GAAKuC,EAC7CmpB,IAAWo9X,IAAW9oZ,IAAS3P,GACjC2nE,EAAU7sE,QAAU6sE,EAAU1+C,OAAV0+C,EACtB,IACC,GAEK/6B,IACN+6B,EAAUtsE,KAAKuxC,GACf6rX,GAAQt1N,YAAYnjM,EAAO,IAAI,GATL,CAW3B,SAAS1C,KAAK+iF,WAAY,IAAOzzC,GAAO1uB,WAAW0uB,IAhBlC,IAAEwsX,GAAuBC,GAsB/C,MAAMC,GAAiC,qBAAnBjzO,eAClBA,eAAep/J,KAAKwxY,IAAgC,qBAAZ3tX,SAA2BA,QAAQw0B,UAAY65V,GAIzF,IACE5sZ,WACAujT,iBACA3sQ,SAlpBF,SAAkB95B,GAChB,OAAe,OAARA,IAAiB2mH,GAAY3mH,IAA4B,OAApBA,EAAIriB,cAAyBgpI,GAAY3mH,EAAIriB,cACpFgnI,GAAW3kH,EAAIriB,YAAYm8C,WAAa95B,EAAIriB,YAAYm8C,SAAS95B,EACxE,EAgpBEkwY,WApgBkB1B,IAClB,IAAIn1K,EACJ,OAAOm1K,IACgB,oBAAbl+T,UAA2Bk+T,aAAiBl+T,UAClDq0C,GAAW6pR,EAAMh5Z,UACY,cAA1B6jP,EAAOk1K,GAAOC,KAEL,WAATn1K,GAAqB10G,GAAW6pR,EAAM7vZ,WAAkC,sBAArB6vZ,EAAM7vZ,YAG/D,EA2fD2wF,kBA9nBF,SAA2BtvE,GACzB,IAAIvc,EAMJ,OAJEA,EAD0B,qBAAhBi5B,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAO3c,GAElBA,GAASA,EAAIgd,QAAYypR,GAAczmS,EAAIgd,QAEhDv5B,CACT,EAunBEm/S,YACAuH,YACAV,UA9kBgB+kG,IAAmB,IAAVA,IAA4B,IAAVA,EA+kB3C9nR,YACAxkH,cAAa,GACb6sY,oBACAC,aACAC,WAAU,GACVC,aACAvoR,eACA57C,OAAM,GACN4jU,UACAC,UACApkG,YACA7lL,WAAU,GACVwrR,SA9hBgBnwY,GAAQ0mH,GAAS1mH,IAAQ2kH,GAAW3kH,EAAI82C,MA+hBxDg4V,qBACArpG,gBACAopG,cACAl8Z,WACAw2B,MAhaF,SAASA,IACP,MAAM,SAACinY,GAAYf,GAAiBj+Z,OAASA,MAAQ,CAAC,EAChDqS,EAAS,CAAC,EACV4sZ,EAAcA,CAACrwY,EAAK1tB,KACxB,MAAMg+Z,EAAYF,GAAYpxS,GAAQv7G,EAAQnR,IAAQA,EAClD4vB,GAAcze,EAAO6sZ,KAAepuY,GAAclC,GACpDvc,EAAO6sZ,GAAannY,EAAM1lB,EAAO6sZ,GAAYtwY,GACpCkC,GAAclC,GACvBvc,EAAO6sZ,GAAannY,EAAM,CAAC,EAAGnJ,GACrB9c,GAAQ8c,GACjBvc,EAAO6sZ,GAAatwY,EAAI3qB,QAExBoO,EAAO6sZ,GAAatwY,CACtB,EAGF,IAAK,IAAI3sB,EAAI,EAAGgtB,EAAIjiB,UAAU3M,OAAQ4B,EAAIgtB,EAAGhtB,IAC3C+K,UAAU/K,IAAMV,GAAQyL,UAAU/K,GAAIg9Z,GAExC,OAAO5sZ,CACT,EA6YE+vH,OAjYa,SAAChsH,EAAGmgB,EAAG0pE,GAA8B,IAArB,WAAC89T,GAAW/wZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPAzL,GAAQg1B,GAAG,CAAC3H,EAAK1tB,KACX++F,GAAWszC,GAAW3kH,GACxBxY,EAAElV,GAAOsrB,GAAKoC,EAAKqxE,GAEnB7pF,EAAElV,GAAO0tB,CACX,GACC,CAACmvY,eACG3nZ,CACT,EAyXEjT,KA7fY0P,GAAQA,EAAI1P,KACxB0P,EAAI1P,OAAS0P,EAAIxP,QAAQ,qCAAsC,IA6f/D87Z,SAjXgBr1R,IACc,QAA1BA,EAAQjmI,WAAW,KACrBimI,EAAUA,EAAQ7lI,MAAM,IAEnB6lI,GA8WPkwL,SAlWeA,CAACztT,EAAa6yZ,EAAkBr6Z,EAAOwyT,KACtDhrT,EAAYnL,UAAY8B,OAAOoI,OAAO8zZ,EAAiBh+Z,UAAWm2T,GAClEhrT,EAAYnL,UAAUmL,YAAcA,EACpCrJ,OAAOiU,eAAe5K,EAAa,QAAS,CAC1CnJ,MAAOg8Z,EAAiBh+Z,YAE1B2D,GAAS7B,OAAOD,OAAOsJ,EAAYnL,UAAW2D,EAAM,EA6VpDs6Z,aAjVmBA,CAACC,EAAWC,EAASzvY,EAAQ0vY,KAChD,IAAIz6Z,EACA9C,EACA6gB,EACJ,MAAM0mI,EAAS,CAAC,EAIhB,GAFA+1Q,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAx6Z,EAAQ7B,OAAOq7F,oBAAoB+gU,GACnCr9Z,EAAI8C,EAAM1E,OACH4B,KAAM,GACX6gB,EAAO/d,EAAM9C,GACPu9Z,IAAcA,EAAW18Y,EAAMw8Y,EAAWC,IAAc/1Q,EAAO1mI,KACnEy8Y,EAAQz8Y,GAAQw8Y,EAAUx8Y,GAC1B0mI,EAAO1mI,IAAQ,GAGnBw8Y,GAAuB,IAAXxvY,GAAoByQ,GAAe++X,EACjD,OAASA,KAAexvY,GAAUA,EAAOwvY,EAAWC,KAAaD,IAAcp8Z,OAAO9B,WAEtF,OAAOm+Z,CAAO,EA2TdpC,OAAM,GACNE,cACA57V,SAjTeA,CAAC5uD,EAAKw0P,EAAc7iQ,KACnCqO,EAAM9P,OAAO8P,SACI/R,IAAb0D,GAA0BA,EAAWqO,EAAIxS,UAC3CmE,EAAWqO,EAAIxS,QAEjBmE,GAAY6iQ,EAAahnQ,OACzB,MAAMsS,EAAYE,EAAInP,QAAQ2jQ,EAAc7iQ,GAC5C,OAAsB,IAAfmO,GAAoBA,IAAcnO,CAAQ,EA2SjD4uR,QAhSegqI,IACf,IAAKA,EAAO,OAAO,KACnB,GAAItrZ,GAAQsrZ,GAAQ,OAAOA,EAC3B,IAAIn7Z,EAAIm7Z,EAAM/8Z,OACd,IAAK04T,GAAS92T,GAAI,OAAO,KACzB,MAAMoU,EAAM,IAAIxM,MAAM5H,GACtB,KAAOA,KAAM,GACXoU,EAAIpU,GAAKm7Z,EAAMn7Z,GAEjB,OAAOoU,CAAG,EAwRVopZ,aA7PmBA,CAAC7tZ,EAAKvG,KACzB,MAEMq1B,GAFY9uB,GAAOA,EAAI4uB,OAAOE,WAET52B,KAAK8H,GAEhC,IAAIS,EAEJ,MAAQA,EAASquB,EAASt7B,UAAYiN,EAAO+uC,MAAM,CACjD,MAAMs+W,EAAOrtZ,EAAOjP,MACpBiI,EAAGvB,KAAK8H,EAAK8tZ,EAAK,GAAIA,EAAK,GAC7B,GAoPAC,SAzOeA,CAACC,EAAQ/sZ,KACxB,IAAIgX,EACJ,MAAMxT,EAAM,GAEZ,KAAwC,QAAhCwT,EAAU+1Y,EAAOp2Z,KAAKqJ,KAC5BwD,EAAIzV,KAAKipB,GAGX,OAAOxT,CAAG,EAkOV6nZ,cACA1jZ,eAAc,GACdqlZ,WAAYrlZ,GACZ2jZ,qBACA2B,cAzLqBluZ,IACrBusZ,GAAkBvsZ,GAAK,CAACqqD,EAAY/wD,KAElC,GAAIqoI,GAAW3hI,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUlO,QAAQwH,GAC/D,OAAO,EAGT,MAAM9H,EAAQwO,EAAI1G,GAEbqoI,GAAWnwI,KAEhB64D,EAAW7kD,YAAa,EAEpB,aAAc6kD,EAChBA,EAAWkC,UAAW,EAInBlC,EAAWjzD,MACdizD,EAAWjzD,IAAM,KACf,MAAMgJ,MAAM,qCAAwC9G,EAAO,IAAK,GAEpE,GACA,EAmKF60Z,YAhKkBA,CAACC,EAAer6Z,KAClC,MAAMiM,EAAM,CAAC,EAEPimQ,EAAUxhQ,IACdA,EAAI9U,SAAQ6B,IACVwO,EAAIxO,IAAS,CAAI,GACjB,EAKJ,OAFA0O,GAAQkuZ,GAAiBnoJ,EAAOmoJ,GAAiBnoJ,EAAO90Q,OAAOi9Z,GAAe11Z,MAAM3E,IAE7EiM,CAAG,EAsJVquZ,YAlOkBptZ,GACXA,EAAI9B,cAAc1N,QAAQ,yBAC/B,SAAkB+yB,EAAGnlB,EAAIC,GACvB,OAAOD,EAAG6uB,cAAgB5uB,CAC5B,IA+NFkzD,KApJWA,OAqJX87V,eAnJqBA,CAAC98Z,EAAOg0B,IACb,MAATh0B,GAAiB0S,OAAO84E,SAASxrF,GAASA,GAASA,EAAQg0B,EAmJlEw2F,WACAngC,OAAQuwU,GACRC,oBACAM,YACA4B,eA1IqB,WAAgD,IAA/Cl4Z,EAAI+E,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAAIozZ,EAAQpzZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAGuxZ,GAASC,YACjD3rZ,EAAM,GACV,MAAM,OAACxS,GAAU+/Z,EACjB,KAAOn4Z,KACL4K,GAAOutZ,EAASv9Z,KAAK+iF,SAAWvlF,EAAO,GAGzC,OAAOwS,CACT,EAmIEwtZ,oBA1HF,SAA6BjD,GAC3B,SAAUA,GAAS7pR,GAAW6pR,EAAMh5Z,SAAyC,aAA9Bg5Z,EAAM58X,OAAOC,cAA+B28X,EAAM58X,OAAOE,UAC1G,EAyHE4/X,aAvHoB1uZ,IACpB,MAAM+yE,EAAQ,IAAI96E,MAAM,IAElBi/I,EAAQA,CAACloH,EAAQ3+B,KAErB,GAAIqzI,GAAS10G,GAAS,CACpB,GAAI+jD,EAAMjhF,QAAQk9B,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxB+jD,EAAM1iF,GAAK2+B,EACX,MAAMhX,EAAS9X,GAAQ8uB,GAAU,GAAK,CAAC,EASvC,OAPAr/B,GAAQq/B,GAAQ,CAACx9B,EAAOlC,KACtB,MAAMq/Z,EAAez3Q,EAAM1lJ,EAAOnB,EAAI,IACrCszI,GAAYgrR,KAAkB32Y,EAAO1oB,GAAOq/Z,EAAa,IAG5D57U,EAAM1iF,QAAKnB,EAEJ8oB,CACT,CACF,CAEA,OAAOgX,CAAM,EAGf,OAAOkoH,EAAMl3I,EAAK,EAAE,EA4FpB6sZ,aACA5nB,WAxFkBumB,GAClBA,IAAU9nR,GAAS8nR,IAAU7pR,GAAW6pR,KAAW7pR,GAAW6pR,EAAM39T,OAAS8zC,GAAW6pR,EAAMvxO,OAwF9F7lG,aAAc04U,GACdG,SCvuBF,SAAS2B,GAAWltX,EAASxS,EAAMjpB,EAAQmnC,EAASwC,GAClDxvC,MAAMlI,KAAK9J,MAEPgS,MAAMyuZ,kBACRzuZ,MAAMyuZ,kBAAkBzga,KAAMA,KAAKuM,aAEnCvM,KAAK2kF,OAAS,IAAI3yE,OAAS2yE,MAG7B3kF,KAAKszC,QAAUA,EACftzC,KAAKkL,KAAO,aACZ41B,IAAS9gC,KAAK8gC,KAAOA,GACrBjpB,IAAW7X,KAAK6X,OAASA,GACzBmnC,IAAYh/C,KAAKg/C,QAAUA,GACvBwC,IACFxhD,KAAKwhD,SAAWA,EAChBxhD,KAAKoxD,OAAS5P,EAAS4P,OAAS5P,EAAS4P,OAAS,KAEtD,CAEAsvW,GAAM1mG,SAASwmG,GAAYxuZ,MAAO,CAChCw1C,OAAQ,WACN,MAAO,CAELlU,QAAStzC,KAAKszC,QACdpoC,KAAMlL,KAAKkL,KAEXivN,YAAan6N,KAAKm6N,YAClBtxM,OAAQ7oB,KAAK6oB,OAEb83Y,SAAU3ga,KAAK2ga,SACfC,WAAY5ga,KAAK4ga,WACjBC,aAAc7ga,KAAK6ga,aACnBl8U,MAAO3kF,KAAK2kF,MAEZ9sE,OAAQ6oZ,GAAMJ,aAAatga,KAAK6X,QAChCipB,KAAM9gC,KAAK8gC,KACXswB,OAAQpxD,KAAKoxD,OAEjB,IAGF,MAAMhwD,GAAYo/Z,GAAWp/Z,UACvBm2T,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAh2T,SAAQu/B,IACRy2R,GAAYz2R,GAAQ,CAAC19B,MAAO09B,EAAK,IAGnC59B,OAAOkoM,iBAAiBo1N,GAAYjpG,IACpCr0T,OAAOiU,eAAe/V,GAAW,eAAgB,CAACgC,OAAO,IAGzDo9Z,GAAW19Z,KAAO,CAACwY,EAAOwlB,EAAMjpB,EAAQmnC,EAASwC,EAAUi1O,KACzD,MAAMqqI,EAAa59Z,OAAOoI,OAAOlK,IAgBjC,OAdAs/Z,GAAMrB,aAAa/jZ,EAAOwlZ,GAAY,SAAgBlvZ,GACpD,OAAOA,IAAQI,MAAM5Q,SACvB,IAAG0hB,GACe,iBAATA,IAGT09Y,GAAW12Z,KAAKg3Z,EAAYxlZ,EAAMg4B,QAASxS,EAAMjpB,EAAQmnC,EAASwC,GAElEs/W,EAAWp9C,MAAQpoW,EAEnBwlZ,EAAW51Z,KAAOoQ,EAAMpQ,KAExBurR,GAAevzR,OAAOD,OAAO69Z,EAAYrqI,GAElCqqI,CAAU,EAGnB,YCxFA,SAASC,GAAY3D,GACnB,OAAOsD,GAAM5vY,cAAcssY,IAAUsD,GAAM5uZ,QAAQsrZ,EACrD,CASA,SAAS4D,GAAe9/Z,GACtB,OAAOw/Z,GAAMj/V,SAASvgE,EAAK,MAAQA,EAAI+C,MAAM,GAAI,GAAK/C,CACxD,CAWA,SAAS+/Z,GAAUl6Y,EAAM7lB,EAAKi8E,GAC5B,OAAKp2D,EACEA,EAAKnc,OAAO1J,GAAKoI,KAAI,SAAc/D,EAAOtD,GAG/C,OADAsD,EAAQy7Z,GAAez7Z,IACf43E,GAAQl7E,EAAI,IAAMsD,EAAQ,IAAMA,CAC1C,IAAGsB,KAAKs2E,EAAO,IAAM,IALHj8E,CAMpB,CAaA,MAAMgga,GAAaR,GAAMrB,aAAaqB,GAAO,CAAC,EAAG,MAAM,SAAgB59Y,GACrE,MAAO,WAAWgI,KAAKhI,EACzB,IA8JA,SArIA,SAAoBlR,EAAKkuF,EAAUhgG,GACjC,IAAK4ga,GAAMprR,SAAS1jI,GAClB,MAAM,IAAIqE,UAAU,4BAItB6pF,EAAWA,GAAY,IAAyBZ,SAYhD,MAAMiiU,GATNrha,EAAU4ga,GAAMrB,aAAav/Z,EAAS,CACpCqha,YAAY,EACZhkV,MAAM,EACNqqN,SAAS,IACR,GAAO,SAAiBx6H,EAAQpsI,GAEjC,OAAQ8/X,GAAMnrR,YAAY30G,EAAOosI,GACnC,KAE2Bm0P,WAErBC,EAAUtha,EAAQsha,SAAWC,EAC7BlkV,EAAOr9E,EAAQq9E,KACfqqN,EAAU1nS,EAAQ0nS,QAElB85H,GADQxha,EAAQy8D,MAAwB,qBAATA,MAAwBA,OACpCmkW,GAAML,oBAAoBvgU,GAEnD,IAAK4gU,GAAMntR,WAAW6tR,GACpB,MAAM,IAAInrZ,UAAU,8BAGtB,SAASsrZ,EAAan+Z,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAIs9Z,GAAM/mU,OAAOv2F,GACf,OAAOA,EAAMqgF,cAGf,IAAK69U,GAAWZ,GAAMlD,OAAOp6Z,GAC3B,MAAM,IAAIo9Z,GAAW,gDAGvB,OAAIE,GAAMrrG,cAAcjyT,IAAUs9Z,GAAMrsG,aAAajxT,GAC5Ck+Z,GAA2B,oBAAT/kW,KAAsB,IAAIA,KAAK,CAACn5D,IAAUioC,OAAOvoC,KAAKM,GAG1EA,CACT,CAYA,SAASi+Z,EAAej+Z,EAAOlC,EAAK6lB,GAClC,IAAI1Q,EAAMjT,EAEV,GAAIA,IAAU2jB,GAAyB,kBAAV3jB,EAC3B,GAAIs9Z,GAAMj/V,SAASvgE,EAAK,MAEtBA,EAAMiga,EAAajga,EAAMA,EAAI+C,MAAM,GAAI,GAEvCb,EAAQwZ,KAAKjW,UAAUvD,QAClB,GACJs9Z,GAAM5uZ,QAAQ1O,IAnGvB,SAAqBiT,GACnB,OAAOqqZ,GAAM5uZ,QAAQuE,KAASA,EAAI24J,KAAK+xP,GACzC,CAiGiCS,CAAYp+Z,KACnCs9Z,GAAMjD,WAAWr6Z,IAAUs9Z,GAAMj/V,SAASvgE,EAAK,SAAWmV,EAAMqqZ,GAAMttI,QAAQhwR,IAYhF,OATAlC,EAAM8/Z,GAAe9/Z,GAErBmV,EAAI9U,SAAQ,SAAc8iM,EAAIzgM,IAC1B88Z,GAAMnrR,YAAY8uD,IAAc,OAAPA,GAAgBvkG,EAAS17F,QAEtC,IAAZojS,EAAmBy5H,GAAU,CAAC//Z,GAAM0C,EAAOu5E,GAAqB,OAAZqqN,EAAmBtmS,EAAMA,EAAM,KACnFqga,EAAal9N,GAEjB,KACO,EAIX,QAAI08N,GAAY39Z,KAIhB08F,EAAS17F,OAAO68Z,GAAUl6Y,EAAM7lB,EAAKi8E,GAAOokV,EAAan+Z,KAElD,EACT,CAEA,MAAMuhF,EAAQ,GAER88U,EAAiBv+Z,OAAOD,OAAOi+Z,GAAY,CAC/CG,iBACAE,eACAR,iBAyBF,IAAKL,GAAMprR,SAAS1jI,GAClB,MAAM,IAAIqE,UAAU,0BAKtB,OA5BA,SAAS6+C,EAAM1xD,EAAO2jB,GACpB,IAAI25Y,GAAMnrR,YAAYnyI,GAAtB,CAEA,IAA8B,IAA1BuhF,EAAMjhF,QAAQN,GAChB,MAAM4O,MAAM,kCAAoC+U,EAAKlgB,KAAK,MAG5D89E,EAAM/jF,KAAKwC,GAEXs9Z,GAAMn/Z,QAAQ6B,GAAO,SAAcihM,EAAInjM,IAKtB,OAJEw/Z,GAAMnrR,YAAY8uD,IAAc,OAAPA,IAAgB+8N,EAAQt3Z,KAChEg2F,EAAUukG,EAAIq8N,GAAMlvG,SAAStwT,GAAOA,EAAIiC,OAASjC,EAAK6lB,EAAM06Y,KAI5D3sW,EAAMuvI,EAAIt9K,EAAOA,EAAKnc,OAAO1J,GAAO,CAACA,GAEzC,IAEAyjF,EAAM1mB,KAlB8B,CAmBtC,CAMAnJ,CAAMljD,GAECkuF,CACT,EC5MA,SAASpsF,GAAOb,GACd,MAAM6uZ,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAO3gY,mBAAmBluB,GAAKxP,QAAQ,oBAAoB,SAAkBoG,GAC3E,OAAOi4Z,EAAQj4Z,EACjB,GACF,CAUA,SAASk4Z,GAAqBjqZ,EAAQ5X,GACpCE,KAAK4ha,OAAS,GAEdlqZ,GAAUmqZ,GAAWnqZ,EAAQ1X,KAAMF,EACrC,CAEA,MAAMsB,GAAYuga,GAAqBvga,UAEvCA,GAAUgD,OAAS,SAAgB8G,EAAM9H,GACvCpD,KAAK4ha,OAAOhha,KAAK,CAACsK,EAAM9H,GAC1B,EAEAhC,GAAUmM,SAAW,SAAkBu0Z,GACrC,MAAMC,EAAUD,EAAU,SAAS1+Z,GACjC,OAAO0+Z,EAAQh4Z,KAAK9J,KAAMoD,EAAOsQ,GACnC,EAAIA,GAEJ,OAAO1T,KAAK4ha,OAAOt4Z,KAAI,SAAco2Z,GACnC,OAAOqC,EAAQrC,EAAK,IAAM,IAAMqC,EAAQrC,EAAK,GAC/C,GAAG,IAAI74Z,KAAK,IACd,EAEA,YC5CA,SAAS6M,GAAOkb,GACd,OAAOmS,mBAAmBnS,GACxBvrB,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAAS2+Z,GAASv5Y,EAAK/Q,EAAQ5X,GAE5C,IAAK4X,EACH,OAAO+Q,EAGT,MAAMs5Y,EAAUjia,GAAWA,EAAQ4T,QAAUA,GAEvCuuZ,EAAcnia,GAAWA,EAAQ0G,UAEvC,IAAI07Z,EAUJ,GAPEA,EADED,EACiBA,EAAYvqZ,EAAQ5X,GAEpB4ga,GAAMhD,kBAAkBhmZ,GACzCA,EAAOnK,WACP,IAAIo0Z,GAAqBjqZ,EAAQ5X,GAASyN,SAASw0Z,GAGnDG,EAAkB,CACpB,MAAMC,EAAgB15Y,EAAI/kB,QAAQ,MAEX,IAAnBy+Z,IACF15Y,EAAMA,EAAIxkB,MAAM,EAAGk+Z,IAErB15Y,KAA8B,IAAtBA,EAAI/kB,QAAQ,KAAc,IAAM,KAAOw+Z,CACjD,CAEA,OAAOz5Y,CACT,CCQA,SAlEA,MACElc,WAAAA,GACEvM,KAAKy4B,SAAW,EAClB,CAUA2pY,GAAAA,CAAIlsB,EAAW52S,EAAUx/F,GAOvB,OANAE,KAAKy4B,SAAS73B,KAAK,CACjBs1Y,YACA52S,WACA+iU,cAAavia,GAAUA,EAAQuia,YAC/BC,QAASxia,EAAUA,EAAQwia,QAAU,OAEhCtia,KAAKy4B,SAASp4B,OAAS,CAChC,CASAkia,KAAAA,CAAM7+X,GACA1jC,KAAKy4B,SAASiL,KAChB1jC,KAAKy4B,SAASiL,GAAM,KAExB,CAOA/f,KAAAA,GACM3jB,KAAKy4B,WACPz4B,KAAKy4B,SAAW,GAEpB,CAYAl3B,OAAAA,CAAQ8J,GACNq1Z,GAAMn/Z,QAAQvB,KAAKy4B,UAAU,SAAwB3lB,GACzC,OAANA,GACFzH,EAAGyH,EAEP,GACF,GCjEF,IACE0vZ,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACEzyX,WAAW,EACX7pB,QAAS,CACPg5E,gBCJsC,qBAApBA,gBAAkCA,gBAAkBuiU,GDKtEziU,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxD3iC,KGP2B,qBAATA,KAAuBA,KAAO,MHSlDomW,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAXlgY,QAA8C,qBAAbhhC,SAExDmha,GAAkC,kBAAdpgV,WAA0BA,gBAAa3hF,EAmB3Dgia,GAAwBF,MAC1BC,IAAc,CAAC,cAAe,eAAgB,MAAMn/Z,QAAQm/Z,GAAWE,SAAW,GAWhFC,GAE2B,qBAAtBC,mBAEPr4X,gBAAgBq4X,mBACc,oBAAvBr4X,KAAK8kQ,cAIVuqB,GAAS2oG,IAAiBlgY,OAAO/a,SAAS2rC,MAAQ,mBCvCxD,OACKotW,KACAh+U,ICyFL,SA9CA,SAAwBod,GACtB,SAASojU,EAAUn8Y,EAAM3jB,EAAOwmB,EAAQhmB,GACtC,IAAIsH,EAAO6b,EAAKnjB,KAEhB,GAAa,cAATsH,EAAsB,OAAO,EAEjC,MAAMi4Z,EAAertZ,OAAO84E,UAAU1jF,GAChCk4Z,EAASx/Z,GAASmjB,EAAK1mB,OAG7B,GAFA6K,GAAQA,GAAQw1Z,GAAM5uZ,QAAQ8X,GAAUA,EAAOvpB,OAAS6K,EAEpDk4Z,EAOF,OANI1C,GAAMb,WAAWj2Y,EAAQ1e,GAC3B0e,EAAO1e,GAAQ,CAAC0e,EAAO1e,GAAO9H,GAE9BwmB,EAAO1e,GAAQ9H,GAGT+/Z,EAGLv5Y,EAAO1e,IAAUw1Z,GAAMprR,SAAS1rH,EAAO1e,MAC1C0e,EAAO1e,GAAQ,IASjB,OANeg4Z,EAAUn8Y,EAAM3jB,EAAOwmB,EAAO1e,GAAOtH,IAEtC88Z,GAAM5uZ,QAAQ8X,EAAO1e,MACjC0e,EAAO1e,GA/Cb,SAAuBmL,GACrB,MAAMzE,EAAM,CAAC,EACPkb,EAAO5pB,OAAO4pB,KAAKzW,GACzB,IAAIpU,EACJ,MAAM8Q,EAAM+Z,EAAKzsB,OACjB,IAAIa,EACJ,IAAKe,EAAI,EAAGA,EAAI8Q,EAAK9Q,IACnBf,EAAM4rB,EAAK7qB,GACX2P,EAAI1Q,GAAOmV,EAAInV,GAEjB,OAAO0Q,CACT,CAoCqByxZ,CAAcz5Y,EAAO1e,MAG9Bi4Z,CACV,CAEA,GAAIzC,GAAM5B,WAAWh/T,IAAa4gU,GAAMntR,WAAWzzC,EAASxuE,SAAU,CACpE,MAAM1f,EAAM,CAAC,EAMb,OAJA8uZ,GAAMjB,aAAa3/T,GAAU,CAAC50F,EAAM9H,KAClC8/Z,EA1EN,SAAuBh4Z,GAKrB,OAAOw1Z,GAAMf,SAAS,gBAAiBz0Z,GAAM5B,KAAIG,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgB65Z,CAAcp4Z,GAAO9H,EAAOwO,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAMuqP,GAAW,CAEfonK,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0BxuZ,EAAM2sC,GACjD,MAAMg3B,EAAch3B,EAAQ8hX,kBAAoB,GAC1CC,EAAqB/qV,EAAYn1E,QAAQ,qBAAuB,EAChEmga,EAAkBnD,GAAMprR,SAASpgI,GAEnC2uZ,GAAmBnD,GAAMxC,WAAWhpZ,KACtCA,EAAO,IAAIgqF,SAAShqF,IAKtB,GAFmBwrZ,GAAM5B,WAAW5pZ,GAGlC,OAAO0uZ,EAAqBhnZ,KAAKjW,UAAUm9Z,GAAe5uZ,IAASA,EAGrE,GAAIwrZ,GAAMrrG,cAAcngT,IACtBwrZ,GAAMh4W,SAASxzC,IACfwrZ,GAAM3B,SAAS7pZ,IACfwrZ,GAAMnD,OAAOroZ,IACbwrZ,GAAMlD,OAAOtoZ,IACbwrZ,GAAM/C,iBAAiBzoZ,GAEvB,OAAOA,EAET,GAAIwrZ,GAAMxiU,kBAAkBhpF,GAC1B,OAAOA,EAAK02B,OAEd,GAAI80X,GAAMhD,kBAAkBxoZ,GAE1B,OADA2sC,EAAQkiX,eAAe,mDAAmD,GACnE7uZ,EAAK3H,WAGd,IAAIkwZ,EAEJ,GAAIoG,EAAiB,CACnB,GAAIhrV,EAAYn1E,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0BwR,EAAMpV,GAC7C,OAAO+ha,GAAW3sZ,EAAM,IAAIwtE,GAASt8D,QAAQg5E,gBAAmBl8F,OAAOD,OAAO,CAC5Em+Z,QAAS,SAASh+Z,EAAOlC,EAAK6lB,EAAMi9Y,GAClC,OAAIthV,GAASxyC,QAAUwwX,GAAMh4W,SAAStlD,IACpCpD,KAAKoE,OAAOlD,EAAKkC,EAAMmK,SAAS,YACzB,GAGFy2Z,EAAQ3C,eAAeh0Z,MAAMrN,KAAMgN,UAC5C,GACClN,GACL,CD4Demka,CAAiB/uZ,EAAMlV,KAAKkka,gBAAgB32Z,WAGrD,IAAKkwZ,EAAaiD,GAAMjD,WAAWvoZ,KAAU2jE,EAAYn1E,QAAQ,wBAA0B,EAAG,CAC5F,MAAMyga,EAAYnka,KAAK03C,KAAO13C,KAAK03C,IAAIwnD,SAEvC,OAAO2iU,GACLpE,EAAa,CAAC,UAAWvoZ,GAAQA,EACjCivZ,GAAa,IAAIA,EACjBnka,KAAKkka,eAET,CACF,CAEA,OAAIL,GAAmBD,GACrB/hX,EAAQkiX,eAAe,oBAAoB,GAxEjD,SAAyBK,EAAUp7W,EAAQ84W,GACzC,GAAIpB,GAAMlvG,SAAS4yG,GACjB,IAEE,OADCp7W,GAAUpsC,KAAK7V,OAAOq9Z,GAChB1D,GAAMv9Z,KAAKiha,EACpB,CAAE,MAAO7ha,IACP,GAAe,gBAAXA,GAAE2I,KACJ,MAAM3I,EAEV,CAGF,OAAQu/Z,GAAWllZ,KAAKjW,WAAWy9Z,EACrC,CA4DaC,CAAgBnvZ,IAGlBA,CACT,GAEAu3Y,kBAAmB,CAAC,SAA2Bv3Y,GAC7C,MAAMquZ,EAAevja,KAAKuja,cAAgBpnK,GAASonK,aAC7Cd,EAAoBc,GAAgBA,EAAad,kBACjD6B,EAAsC,SAAtBtka,KAAKs0D,aAE3B,GAAIosW,GAAM7C,WAAW3oZ,IAASwrZ,GAAM/C,iBAAiBzoZ,GACnD,OAAOA,EAGT,GAAIA,GAAQwrZ,GAAMlvG,SAASt8S,KAAWutZ,IAAsBzia,KAAKs0D,cAAiBgwW,GAAgB,CAChG,MACMC,IADoBhB,GAAgBA,EAAaf,oBACP8B,EAEhD,IACE,OAAO1nZ,KAAK7V,MAAMmO,EACpB,CAAE,MAAO3S,IACP,GAAIgia,EAAmB,CACrB,GAAe,gBAAXhia,GAAE2I,KACJ,MAAMs1Z,GAAW19Z,KAAKP,GAAGi+Z,GAAWgE,iBAAkBxka,KAAM,KAAMA,KAAKwhD,UAEzE,MAAMj/C,EACR,CACF,CACF,CAEA,OAAO2S,CACT,GAMAmO,QAAS,EAETohZ,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBltX,IAAK,CACHwnD,SAAUxc,GAASt8D,QAAQ84E,SAC3B3iC,KAAMmmB,GAASt8D,QAAQm2C,MAGzBsoW,eAAgB,SAAwBzzW,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAvP,QAAS,CACP1oC,OAAQ,CACN,OAAU,oCACV,oBAAgBrY,KAKtB4/Z,GAAMn/Z,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAW4wD,IAChEgqM,GAASt6M,QAAQsQ,GAAU,CAAC,CAAC,IAG/B,YE1JM2yW,GAAoBpE,GAAMX,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtBgF,GAAavkY,OAAO,aAE1B,SAASwkY,GAAgBvlW,GACvB,OAAOA,GAAU18D,OAAO08D,GAAQt8D,OAAO4N,aACzC,CAEA,SAASqtF,GAAeh7F,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFs9Z,GAAM5uZ,QAAQ1O,GAASA,EAAMkG,IAAI80F,IAAkBr7F,OAAOK,EACnE,CAgBA,SAAS6ha,GAAiBrqW,EAASx3D,EAAOq8D,EAAQ3vC,EAAQo1Y,GACxD,OAAIxE,GAAMntR,WAAWzjH,GACZA,EAAOhmB,KAAK9J,KAAMoD,EAAOq8D,IAG9BylW,IACF9ha,EAAQq8D,GAGLihW,GAAMlvG,SAASpuT,GAEhBs9Z,GAAMlvG,SAAS1hS,IACiB,IAA3B1sB,EAAMM,QAAQosB,GAGnB4wY,GAAMtnG,SAAStpS,GACVA,EAAOhF,KAAK1nB,QADrB,OANA,EASF,CAsBA,MAAM+ha,GACJ54Z,WAAAA,CAAYs1C,GACVA,GAAW7hD,KAAKgJ,IAAI64C,EACtB,CAEA74C,GAAAA,CAAIy2D,EAAQ2lW,EAAgBC,GAC1B,MAAMz6X,EAAO5qC,KAEb,SAAS+7F,EAAUo3B,EAAQmyS,EAASC,GAClC,MAAMC,EAAUR,GAAgBM,GAEhC,IAAKE,EACH,MAAM,IAAIxzZ,MAAM,0CAGlB,MAAM9Q,EAAMw/Z,GAAM9yS,QAAQhjF,EAAM46X,KAE5Btka,QAAqBJ,IAAd8pC,EAAK1pC,KAAmC,IAAbqka,QAAmCzka,IAAbyka,IAAwC,IAAd36X,EAAK1pC,MACzF0pC,EAAK1pC,GAAOoka,GAAWlnU,GAAe+0B,GAE1C,CAEA,MAAMsyS,EAAaA,CAAC5jX,EAAS0jX,IAC3B7E,GAAMn/Z,QAAQsgD,GAAS,CAACsxE,EAAQmyS,IAAYvpU,EAAUo3B,EAAQmyS,EAASC,KAEzE,GAAI7E,GAAM5vY,cAAc2uC,IAAWA,aAAkBz/D,KAAKuM,YACxDk5Z,EAAWhmW,EAAQ2lW,QACd,GAAG1E,GAAMlvG,SAAS/xP,KAAYA,EAASA,EAAOt8D,UArEtB,iCAAiC2nB,KAqEmB20C,EArEVt8D,QAsEvEsia,ED1EN,CAAelxW,IACb,MAAM9rD,EAAS,CAAC,EAChB,IAAIvH,EACA0tB,EACA3sB,EAsBJ,OApBAsyD,GAAcA,EAAWjqD,MAAM,MAAM/I,SAAQ,SAAgB+C,GAC3DrC,EAAIqC,EAAKZ,QAAQ,KACjBxC,EAAMoD,EAAK+pB,UAAU,EAAGpsB,GAAGkB,OAAO4N,cAClC6d,EAAMtqB,EAAK+pB,UAAUpsB,EAAI,GAAGkB,QAEvBjC,GAAQuH,EAAOvH,IAAQ4ja,GAAkB5ja,KAIlC,eAARA,EACEuH,EAAOvH,GACTuH,EAAOvH,GAAKN,KAAKguB,GAEjBnmB,EAAOvH,GAAO,CAAC0tB,GAGjBnmB,EAAOvH,GAAOuH,EAAOvH,GAAOuH,EAAOvH,GAAO,KAAO0tB,EAAMA,EAE3D,IAEOnmB,CACR,EC+CgB+hD,CAAaiV,GAAS2lW,QAC5B,GAAI1E,GAAM5C,UAAUr+V,GACzB,IAAK,MAAOv+D,EAAKkC,KAAUq8D,EAAOnuC,UAChCyqE,EAAU34F,EAAOlC,EAAKmka,QAGd,MAAV5lW,GAAkBs8B,EAAUqpU,EAAgB3lW,EAAQ4lW,GAGtD,OAAOrla,IACT,CAEA+I,GAAAA,CAAI02D,EAAQzW,GAGV,GAFAyW,EAASulW,GAAgBvlW,GAEb,CACV,MAAMv+D,EAAMw/Z,GAAM9yS,QAAQ5tH,KAAMy/D,GAEhC,GAAIv+D,EAAK,CACP,MAAMkC,EAAQpD,KAAKkB,GAEnB,IAAK8nD,EACH,OAAO5lD,EAGT,IAAe,IAAX4lD,EACF,OA5GV,SAAqBn2C,GACnB,MAAM65G,EAASxpH,OAAOoI,OAAO,MACvBo6Z,EAAW,mCACjB,IAAIj8Z,EAEJ,KAAQA,EAAQi8Z,EAASl8Z,KAAKqJ,IAC5B65G,EAAOjjH,EAAM,IAAMA,EAAM,GAG3B,OAAOijH,CACT,CAkGiBi5S,CAAYvia,GAGrB,GAAIs9Z,GAAMntR,WAAWvqF,GACnB,OAAOA,EAAOl/C,KAAK9J,KAAMoD,EAAOlC,GAGlC,GAAIw/Z,GAAMtnG,SAASpwQ,GACjB,OAAOA,EAAOx/C,KAAKpG,GAGrB,MAAM,IAAI6S,UAAU,yCACtB,CACF,CACF,CAEAic,GAAAA,CAAIutC,EAAQmH,GAGV,GAFAnH,EAASulW,GAAgBvlW,GAEb,CACV,MAAMv+D,EAAMw/Z,GAAM9yS,QAAQ5tH,KAAMy/D,GAEhC,SAAUv+D,QAAqBJ,IAAdd,KAAKkB,IAAwB0lE,IAAWq+V,GAAiBjla,EAAMA,KAAKkB,GAAMA,EAAK0lE,GAClG,CAEA,OAAO,CACT,CAEA3gB,OAAOwZ,EAAQmH,GACb,MAAMh8B,EAAO5qC,KACb,IAAI4la,GAAU,EAEd,SAASC,EAAaP,GAGpB,GAFAA,EAAUN,GAAgBM,GAEb,CACX,MAAMpka,EAAMw/Z,GAAM9yS,QAAQhjF,EAAM06X,IAE5Bpka,GAAS0lE,IAAWq+V,GAAiBr6X,EAAMA,EAAK1pC,GAAMA,EAAK0lE,YACtDh8B,EAAK1pC,GAEZ0ka,GAAU,EAEd,CACF,CAQA,OANIlF,GAAM5uZ,QAAQ2tD,GAChBA,EAAOl+D,QAAQska,GAEfA,EAAapmW,GAGRmmW,CACT,CAEAjiZ,KAAAA,CAAMijD,GACJ,MAAM95C,EAAO5pB,OAAO4pB,KAAK9sB,MACzB,IAAIiC,EAAI6qB,EAAKzsB,OACTula,GAAU,EAEd,KAAO3ja,KAAK,CACV,MAAMf,EAAM4rB,EAAK7qB,GACb2kE,IAAWq+V,GAAiBjla,EAAMA,KAAKkB,GAAMA,EAAK0lE,GAAS,YACtD5mE,KAAKkB,GACZ0ka,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAE,SAAAA,CAAUlzX,GACR,MAAMhI,EAAO5qC,KACP6hD,EAAU,CAAC,EAsBjB,OApBA6+W,GAAMn/Z,QAAQvB,MAAM,CAACoD,EAAOq8D,KAC1B,MAAMv+D,EAAMw/Z,GAAM9yS,QAAQ/rE,EAAS4d,GAEnC,GAAIv+D,EAGF,OAFA0pC,EAAK1pC,GAAOk9F,GAAeh7F,eACpBwnC,EAAK60B,GAId,MAAMsmW,EAAanzX,EA9JzB,SAAsB6sB,GACpB,OAAOA,EAAOt8D,OACX4N,cAAc1N,QAAQ,mBAAmB,CAACmrC,EAAGq8I,EAAMh4K,IAC3Cg4K,EAAK/qJ,cAAgBjtB,GAElC,CAyJkCmzZ,CAAavmW,GAAU18D,OAAO08D,GAAQt8D,OAE9D4ia,IAAetmW,UACV70B,EAAK60B,GAGd70B,EAAKm7X,GAAc3nU,GAAeh7F,GAElCy+C,EAAQkkX,IAAc,CAAI,IAGrB/la,IACT,CAEA4K,MAAAA,GAAmB,QAAAmC,EAAAC,UAAA3M,OAAT4la,EAAO,IAAAp8Z,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAP+4Z,EAAO/4Z,GAAAF,UAAAE,GACf,OAAOlN,KAAKuM,YAAY3B,OAAO5K,QAASima,EAC1C,CAEAz+W,MAAAA,CAAO0+W,GACL,MAAMt0Z,EAAM1O,OAAOoI,OAAO,MAM1B,OAJAo1Z,GAAMn/Z,QAAQvB,MAAM,CAACoD,EAAOq8D,KACjB,MAATr8D,IAA2B,IAAVA,IAAoBwO,EAAI6tD,GAAUymW,GAAaxF,GAAM5uZ,QAAQ1O,GAASA,EAAMyD,KAAK,MAAQzD,EAAM,IAG3GwO,CACT,CAEA,CAAC4uB,OAAOE,YACN,OAAOx9B,OAAOouB,QAAQtxB,KAAKwnD,UAAUhnB,OAAOE,WAC9C,CAEAnzB,QAAAA,GACE,OAAOrK,OAAOouB,QAAQtxB,KAAKwnD,UAAUl+C,KAAI+S,IAAA,IAAEojD,EAAQr8D,GAAMiZ,EAAA,OAAKojD,EAAS,KAAOr8D,CAAK,IAAEyD,KAAK,KAC5F,CAEA,IAAK25B,OAAOC,eACV,MAAO,cACT,CAEA,WAAO39B,CAAKs6Z,GACV,OAAOA,aAAiBp9Z,KAAOo9Z,EAAQ,IAAIp9Z,KAAKo9Z,EAClD,CAEA,aAAOxyZ,CAAOyvI,GACZ,MAAM4O,EAAW,IAAIjpJ,KAAKq6I,GAAO,QAAAh6G,EAAArzB,UAAA3M,OADX4la,EAAO,IAAAp8Z,MAAAw2B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAP2lY,EAAO3lY,EAAA,GAAAtzB,UAAAszB,GAK7B,OAFA2lY,EAAQ1ka,SAASqoB,GAAWq/H,EAASjgJ,IAAI4gB,KAElCq/H,CACT,CAEA,eAAOk9Q,CAAS1mW,GACd,MAIM2mW,GAJYpma,KAAK+ka,IAAe/ka,KAAK+ka,IAAc,CACvDqB,UAAW,CAAC,IAGcA,UACtBhla,EAAYpB,KAAKoB,UAEvB,SAASila,EAAef,GACtB,MAAME,EAAUR,GAAgBM,GAE3Bc,EAAUZ,MAtNrB,SAAwB5zZ,EAAK6tD,GAC3B,MAAM6mW,EAAe5F,GAAMT,YAAY,IAAMxgW,GAE7C,CAAC,MAAO,MAAO,OAAOl+D,SAAQikF,IAC5BtiF,OAAOiU,eAAevF,EAAK4zE,EAAa8gV,EAAc,CACpDlja,MAAO,SAASmja,EAAMxZ,EAAMyZ,GAC1B,OAAOxma,KAAKwlF,GAAY17E,KAAK9J,KAAMy/D,EAAQ8mW,EAAMxZ,EAAMyZ,EACzD,EACA3hY,cAAc,GACd,GAEN,CA4MQ4hY,CAAerla,EAAWkka,GAC1Bc,EAAUZ,IAAW,EAEzB,CAIA,OAFA9E,GAAM5uZ,QAAQ2tD,GAAUA,EAAOl+D,QAAQ8ka,GAAkBA,EAAe5mW,GAEjEz/D,IACT,EAGFmla,GAAagB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGzF,GAAMvC,kBAAkBgH,GAAa/ja,WAAW,CAAAqW,EAAUvW,KAAQ,IAAjB,MAACkC,GAAMqU,EAClDwzI,EAAS/pJ,EAAI,GAAG4+B,cAAgB5+B,EAAI+C,MAAM,GAC9C,MAAO,CACL8E,IAAKA,IAAM3F,EACX4F,GAAAA,CAAI09Z,GACF1ma,KAAKirJ,GAAUy7Q,CACjB,EACD,IAGHhG,GAAMZ,cAAcqF,IAEpB,YC/Re,SAASwB,GAAcC,EAAKplX,GACzC,MAAM3pC,EAAS7X,MAAQm8P,GACjBvhM,EAAUpZ,GAAY3pC,EACtBgqC,EAAUsjX,GAAaria,KAAK83D,EAAQ/Y,SAC1C,IAAI3sC,EAAO0lD,EAAQ1lD,KAQnB,OANAwrZ,GAAMn/Z,QAAQqla,GAAK,SAAmBv7Z,GACpC6J,EAAO7J,EAAGvB,KAAK+N,EAAQ3C,EAAM2sC,EAAQikX,YAAatkX,EAAWA,EAAS4P,YAAStwD,EACjF,IAEA+gD,EAAQikX,YAED5wZ,CACT,CCzBe,SAAS2xZ,GAASzja,GAC/B,SAAUA,IAASA,EAAM0ja,WAC3B,CCUA,SAASC,GAAczzX,EAASz7B,EAAQmnC,GAEtCwhX,GAAW12Z,KAAK9J,KAAiB,MAAXszC,EAAkB,WAAaA,EAASktX,GAAWwG,aAAcnvZ,EAAQmnC,GAC/Fh/C,KAAKkL,KAAO,eACd,CAEAw1Z,GAAM1mG,SAAS+sG,GAAevG,GAAY,CACxCsG,YAAY,IAGd,YCXe,SAASG,GAAOtzX,EAAS0yB,EAAQ7kB,GAC9C,MAAMqjX,EAAiBrjX,EAAS3pC,OAAOgtZ,eAClCrjX,EAAS4P,QAAWyzW,IAAkBA,EAAerjX,EAAS4P,QAGjEiV,EAAO,IAAIm6V,GACT,mCAAqCh/W,EAAS4P,OAC9C,CAACovW,GAAW0G,gBAAiB1G,GAAWgE,kBAAkB3ha,KAAKgrC,MAAM2T,EAAS4P,OAAS,KAAO,GAC9F5P,EAAS3pC,OACT2pC,EAASxC,QACTwC,IAPF7N,EAAQ6N,EAUZ,CC4BA,SA9CA,SAAqB2lX,EAAc15Y,GACjC05Y,EAAeA,GAAgB,GAC/B,MAAM99W,EAAQ,IAAIx/C,MAAMs9Z,GAClBC,EAAa,IAAIv9Z,MAAMs9Z,GAC7B,IAEIE,EAFAr9Z,EAAO,EACPqzL,EAAO,EAKX,OAFA5vK,OAAc3sB,IAAR2sB,EAAoBA,EAAM,IAEzB,SAAc65Y,GACnB,MAAMjmW,EAAMtnB,KAAKsnB,MAEXkmW,EAAYH,EAAW/pO,GAExBgqO,IACHA,EAAgBhmW,GAGlBhY,EAAMr/C,GAAQs9Z,EACdF,EAAWp9Z,GAAQq3D,EAEnB,IAAIp/D,EAAIo7L,EACJmqO,EAAa,EAEjB,KAAOvla,IAAM+H,GACXw9Z,GAAcn+W,EAAMpnD,KACpBA,GAAQkla,EASV,GANAn9Z,GAAQA,EAAO,GAAKm9Z,EAEhBn9Z,IAASqzL,IACXA,GAAQA,EAAO,GAAK8pO,GAGlB9lW,EAAMgmW,EAAgB55Y,EACxB,OAGF,MAAMg6Y,EAASF,GAAalmW,EAAMkmW,EAElC,OAAOE,EAAS5ka,KAAKub,MAAmB,IAAbopZ,EAAoBC,QAAU3ma,CAC3D,CACF,ECTA,SArCA,SAAkBuK,EAAIq8Z,GACpB,IAEI75Q,EACAs3F,EAHA7/I,EAAY,EACZs2K,EAAY,IAAO8rJ,EAIvB,MAAMC,EAAS,SAAC16Z,GAA2B,IAArBo0D,EAAGr0D,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG+sC,KAAKsnB,MAC/BikC,EAAYjkC,EACZwsF,EAAW,KACPs3F,IACF3hO,aAAa2hO,GACbA,EAAQ,MAEV95O,EAAGgC,MAAM,KAAMJ,EACjB,EAoBA,MAAO,CAlBW,WAChB,MAAMo0D,EAAMtnB,KAAKsnB,MACXomW,EAASpmW,EAAMikC,EAAU,QAAAv4F,EAAAC,UAAA3M,OAFX4M,EAAI,IAAApD,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,GAAAF,UAAAE,GAGnBu6Z,GAAU7rJ,EACb+rJ,EAAO16Z,EAAMo0D,IAEbwsF,EAAW5gJ,EACNk4O,IACHA,EAAQ1hO,YAAW,KACjB0hO,EAAQ,KACRwiL,EAAO95Q,EAAS,GACf+tH,EAAY6rJ,IAGrB,EAEcjla,IAAMqrJ,GAAY85Q,EAAO95Q,GAGzC,ECrCa+5Q,GAAuB,SAACp7V,EAAUq7V,GAA+B,IAAbH,EAAI16Z,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAClE86Z,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAOp9H,IAASroS,IACd,MAAMwtD,EAASxtD,EAAEwtD,OACXF,EAAQttD,EAAE6zP,iBAAmB7zP,EAAEstD,WAAQ/uD,EACvCmna,EAAgBl4W,EAAS+3W,EACzBt1E,EAAOu1E,EAAaE,GAG1BH,EAAgB/3W,EAchByc,EAZa,CACXzc,SACAF,QACAC,SAAUD,EAASE,EAASF,OAAS/uD,EACrCuoD,MAAO4+W,EACPz1E,KAAMA,QAAc1xV,EACpBona,UAAW11E,GAAQ3iS,GAVLE,GAAUF,GAUeA,EAAQE,GAAUyiS,OAAO1xV,EAChEsoB,MAAO7mB,EACP6zP,iBAA2B,MAATvmM,EAClB,CAACg4W,EAAmB,WAAa,WAAW,GAGhC,GACbH,EACL,EAEaS,GAAyBA,CAACt4W,EAAOu4W,KAC5C,MAAMhyK,EAA4B,MAATvmM,EAEzB,MAAO,CAAEE,GAAWq4W,EAAU,GAAG,CAC/BhyK,mBACAvmM,QACAE,WACEq4W,EAAU,GAAG,EAGNC,GAAkBh9Z,GAAO,mBAAA0B,EAAAC,UAAA3M,OAAI4M,EAAI,IAAApD,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,GAAAF,UAAAE,GAAA,OAAKwzZ,GAAM7B,MAAK,IAAMxzZ,KAAM4B,IAAM,ECtChF,GAAey1E,GAASogV,sBAIrB,WACC,MAAMwF,EAAO5lV,GAASD,WAAa,kBAAkB33D,KAAK43D,GAASD,UAAUlwB,WACvEg2W,EAAiB7ma,SAASC,cAAc,KAC9C,IAAI6ma,EAQJ,SAASC,EAAWhgZ,GAClB,IAAI6qC,EAAO7qC,EAWX,OATI6/Y,IAEFC,EAAe3ma,aAAa,OAAQ0xD,GACpCA,EAAOi1W,EAAej1W,MAGxBi1W,EAAe3ma,aAAa,OAAQ0xD,GAG7B,CACLA,KAAMi1W,EAAej1W,KACrBpB,SAAUq2W,EAAer2W,SAAWq2W,EAAer2W,SAAS7uD,QAAQ,KAAM,IAAM,GAChF8pD,KAAMo7W,EAAep7W,KACrB1pD,OAAQ8ka,EAAe9ka,OAAS8ka,EAAe9ka,OAAOJ,QAAQ,MAAO,IAAM,GAC3E+F,KAAMm/Z,EAAen/Z,KAAOm/Z,EAAen/Z,KAAK/F,QAAQ,KAAM,IAAM,GACpE2rD,SAAUu5W,EAAev5W,SACzB6B,KAAM03W,EAAe13W,KACrB6B,SAAiD,MAAtC61W,EAAe71W,SAASvkC,OAAO,GACxCo6Y,EAAe71W,SACf,IAAM61W,EAAe71W,SAE3B,CAUA,OARA81W,EAAYC,EAAW/lY,OAAO/a,SAAS2rC,MAQhC,SAAyBo1W,GAC9B,MAAMjga,EAAUi4Z,GAAMlvG,SAASk3G,GAAeD,EAAWC,GAAcA,EACvE,OAAQjga,EAAOypD,WAAas2W,EAAUt2W,UAClCzpD,EAAO0kD,OAASq7W,EAAUr7W,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,EC9DJ,GAAeu1B,GAASogV,sBAGtB,CACEz0X,KAAAA,CAAMnjC,EAAM9H,EAAO4tC,EAASjqB,EAAM+7C,EAAQ+2B,GACxC,MAAMsB,EAAS,CAACjwF,EAAO,IAAM61B,mBAAmB39B,IAEhDs9Z,GAAM3nG,SAAS/nR,IAAYmqD,EAAOv6F,KAAK,WAAa,IAAIm5C,KAAK/I,GAAS23X,eAEtEjI,GAAMlvG,SAASzqS,IAASo0E,EAAOv6F,KAAK,QAAUmmB,GAE9C25Y,GAAMlvG,SAAS1uP,IAAWq4B,EAAOv6F,KAAK,UAAYkiE,IAEvC,IAAX+2B,GAAmBsB,EAAOv6F,KAAK,UAE/Bc,SAASy5F,OAASA,EAAOt0F,KAAK,KAChC,EAEAgoD,IAAAA,CAAK3jD,GACH,MAAMzB,EAAQ/H,SAASy5F,OAAO1xF,MAAM,IAAIskB,OAAO,aAAe7iB,EAAO,cACrE,OAAQzB,EAAQw2E,mBAAmBx2E,EAAM,IAAM,IACjD,EAEAi4C,MAAAA,CAAOx2C,GACLlL,KAAKquC,MAAMnjC,EAAM,GAAI6uC,KAAKsnB,MAAQ,MACpC,GAMF,CACEhzB,KAAAA,GAAS,EACTwgB,KAAIA,IACK,KAETnN,MAAAA,GAAU,GCxBC,SAASknX,GAAcp2N,EAASq2N,GAC7C,OAAIr2N,ICPS,SAAuB/pL,GAIpC,MAAO,8BAA8BqC,KAAKrC,EAC5C,CDEkBqgZ,CAAcD,GENjB,SAAqBr2N,EAASC,GAC3C,OAAOA,EACHD,EAAQnvM,QAAQ,SAAU,IAAM,IAAMovM,EAAYpvM,QAAQ,OAAQ,IAClEmvM,CACN,CFGWu2N,CAAYv2N,EAASq2N,GAEvBA,CACT,CGfA,MAAMG,GAAmB5L,GAAUA,aAAiB+H,GAAe,IAAK/H,GAAUA,EAWnE,SAAS53B,GAAYyjC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMrxZ,EAAS,CAAC,EAEhB,SAASsxZ,EAAev/Y,EAAQgX,EAAQo+X,GACtC,OAAI0B,GAAM5vY,cAAclH,IAAW82Y,GAAM5vY,cAAc8P,GAC9C8/X,GAAM3oY,MAAMjuB,KAAK,CAACk1Z,YAAWp1Y,EAAQgX,GACnC8/X,GAAM5vY,cAAc8P,GACtB8/X,GAAM3oY,MAAM,CAAC,EAAG6I,GACd8/X,GAAM5uZ,QAAQ8uB,GAChBA,EAAO38B,QAET28B,CACT,CAGA,SAASwoY,EAAoBhzZ,EAAGmgB,EAAGyoY,GACjC,OAAK0B,GAAMnrR,YAAYh/G,GAEXmqY,GAAMnrR,YAAYn/H,QAAvB,EACE+yZ,OAAeroa,EAAWsV,EAAG4oZ,GAF7BmK,EAAe/yZ,EAAGmgB,EAAGyoY,EAIhC,CAGA,SAASqK,EAAiBjzZ,EAAGmgB,GAC3B,IAAKmqY,GAAMnrR,YAAYh/G,GACrB,OAAO4yY,OAAeroa,EAAWy1B,EAErC,CAGA,SAAS+yY,EAAiBlzZ,EAAGmgB,GAC3B,OAAKmqY,GAAMnrR,YAAYh/G,GAEXmqY,GAAMnrR,YAAYn/H,QAAvB,EACE+yZ,OAAeroa,EAAWsV,GAF1B+yZ,OAAeroa,EAAWy1B,EAIrC,CAGA,SAASgzY,EAAgBnzZ,EAAGmgB,EAAGzT,GAC7B,OAAIA,KAAQomZ,EACHC,EAAe/yZ,EAAGmgB,GAChBzT,KAAQmmZ,EACVE,OAAeroa,EAAWsV,QAD5B,CAGT,CAEA,MAAMozZ,EAAW,CACf/gZ,IAAK4gZ,EACLl3W,OAAQk3W,EACRn0Z,KAAMm0Z,EACN72N,QAAS82N,EACT5F,iBAAkB4F,EAClB7c,kBAAmB6c,EACnBG,iBAAkBH,EAClBjmZ,QAASimZ,EACTI,eAAgBJ,EAChBj1W,gBAAiBi1W,EACjBK,cAAeL,EACf7F,QAAS6F,EACTh1W,aAAcg1W,EACd7E,eAAgB6E,EAChB5E,eAAgB4E,EAChBM,iBAAkBN,EAClBO,mBAAoBP,EACpBQ,WAAYR,EACZ3E,iBAAkB2E,EAClB1E,cAAe0E,EACfS,eAAgBT,EAChBh4N,UAAWg4N,EACXU,UAAWV,EACXW,WAAYX,EACZY,YAAaZ,EACba,WAAYb,EACZc,iBAAkBd,EAClBzE,eAAgB0E,EAChB1nX,QAASA,CAACzrC,EAAGmgB,IAAM6yY,EAAoBJ,GAAgB5yZ,GAAI4yZ,GAAgBzyY,IAAI,IASjF,OANAmqY,GAAMn/Z,QAAQ2B,OAAO4pB,KAAK5pB,OAAOD,OAAO,CAAC,EAAGgma,EAASC,KAAW,SAA4BpmZ,GAC1F,MAAMiV,EAAQyxY,EAAS1mZ,IAASsmZ,EAC1B/xX,EAActf,EAAMkxY,EAAQnmZ,GAAOomZ,EAAQpmZ,GAAOA,GACvD49Y,GAAMnrR,YAAYl+F,IAAgBtf,IAAUwxY,IAAqB1xZ,EAAOiL,GAAQu0B,EACnF,IAEOx/B,CACT,CChGA,SAAgBA,IACd,MAAM6hE,EAAY8rT,GAAY,CAAC,EAAG3tX,GAElC,IAaIghE,GAbA,KAAC3jE,EAAI,cAAEy0Z,EAAa,eAAEjF,EAAc,eAAED,EAAc,QAAE5iX,EAAO,KAAEm9B,GAAQtF,EAe3E,GAbAA,EAAU73B,QAAUA,EAAUsjX,GAAaria,KAAK++C,GAEhD63B,EAAUjxD,IAAMu5Y,GAAS4G,GAAclvV,EAAU84H,QAAS94H,EAAUjxD,KAAM5Q,EAAOH,OAAQG,EAAO4xZ,kBAG5FzqV,GACFn9B,EAAQ74C,IAAI,gBAAiB,SAC3Bg7W,MAAMhlS,EAAKre,UAAY,IAAM,KAAOqe,EAAKp2D,SAAWwqE,SAASryD,mBAAmBi+C,EAAKp2D,WAAa,MAMlG83Y,GAAM5B,WAAW5pZ,GACnB,GAAIwtE,GAASogV,uBAAyBpgV,GAASsgV,+BAC7CnhX,EAAQkiX,oBAAejja,QAClB,IAAiD,KAA5C+3E,EAAch3B,EAAQ8hX,kBAA6B,CAE7D,MAAO7+Z,KAAS4nH,GAAU7zC,EAAcA,EAAYvuE,MAAM,KAAKhB,KAAI/D,GAASA,EAAMpC,SAAQ2sB,OAAOyyB,SAAW,GAC5GV,EAAQkiX,eAAe,CAACj/Z,GAAQ,yBAA0B4nH,GAAQ7lH,KAAK,MACzE,CAOF,GAAI67E,GAASogV,wBACX6G,GAAiBjJ,GAAMntR,WAAWo2R,KAAmBA,EAAgBA,EAAcjwV,IAE/EiwV,IAAoC,IAAlBA,GAA2BU,GAAgB3wV,EAAUjxD,MAAO,CAEhF,MAAM6hZ,EAAY5F,GAAkBD,GAAkBzpU,GAAQnsC,KAAK41W,GAE/D6F,GACFzoX,EAAQ74C,IAAI07Z,EAAgB4F,EAEhC,CAGF,OAAO5wV,CACR,EC1CD,GAFwD,qBAAnBlmB,gBAEG,SAAU37C,GAChD,OAAO,IAAIi/B,SAAQ,SAA4BnD,EAAS0yB,GACtD,MAAMozL,EAAU8wK,GAAc1yZ,GAC9B,IAAI2yZ,EAAc/wK,EAAQvkP,KAC1B,MAAMu1Z,EAAiBtF,GAAaria,KAAK22P,EAAQ53M,SAASikX,YAC1D,IACI4E,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAACx2W,EAAY,iBAAEs1W,EAAgB,mBAAEC,GAAsBpwK,EAK3D,SAASr4M,IACPypX,GAAeA,IACfC,GAAiBA,IAEjBrxK,EAAQywK,aAAezwK,EAAQywK,YAAYh6F,YAAYw6F,GAEvDjxK,EAAQt5J,QAAUs5J,EAAQt5J,OAAOgB,oBAAoB,QAASupU,EAChE,CAEA,IAAI1rX,EAAU,IAAIwU,eAOlB,SAASu3W,IACP,IAAK/rX,EACH,OAGF,MAAMygC,EAAkB0lV,GAAaria,KACnC,0BAA2Bk8C,GAAWA,EAAQ4U,yBAahDqzW,IAAO,SAAkB7ja,GACvBuwC,EAAQvwC,GACRg+C,GACF,IAAG,SAAiBrP,GAClBs0B,EAAOt0B,GACPqP,GACF,GAfiB,CACflsC,KAHoBo/C,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCtV,EAAQwC,SAA/BxC,EAAQ0V,aAGRtD,OAAQpS,EAAQoS,OAChByC,WAAY7U,EAAQ6U,WACpBhS,QAAS49B,EACT5nE,SACAmnC,YAYFA,EAAU,IACZ,CAlCAA,EAAQ1d,KAAKm4N,EAAQtnM,OAAOryB,cAAe25N,EAAQhxO,KAAK,GAGxDu2B,EAAQ37B,QAAUo2O,EAAQp2O,QAiCtB,cAAe27B,EAEjBA,EAAQ+rX,UAAYA,EAGpB/rX,EAAQkiD,mBAAqB,WACtBliD,GAAkC,IAAvBA,EAAQ0U,aAQD,IAAnB1U,EAAQoS,QAAkBpS,EAAQ8hD,aAAwD,IAAzC9hD,EAAQ8hD,YAAYp9F,QAAQ,WAKjF+f,WAAWsnZ,EACb,EAIF/rX,EAAQgiD,QAAU,WACXhiD,IAILqnB,EAAO,IAAIm6V,GAAW,kBAAmBA,GAAWwK,aAAcnzZ,EAAQmnC,IAG1EA,EAAU,KACZ,EAGAA,EAAQ+kC,QAAU,WAGhB1d,EAAO,IAAIm6V,GAAW,gBAAiBA,GAAWyK,YAAapzZ,EAAQmnC,IAGvEA,EAAU,IACZ,EAGAA,EAAQ+hD,UAAY,WAClB,IAAImqU,EAAsBzxK,EAAQp2O,QAAU,cAAgBo2O,EAAQp2O,QAAU,cAAgB,mBAC9F,MAAMkgZ,EAAe9pK,EAAQ8pK,cAAgBC,GACzC/pK,EAAQyxK,sBACVA,EAAsBzxK,EAAQyxK,qBAEhC7kW,EAAO,IAAIm6V,GACT0K,EACA3H,EAAab,oBAAsBlC,GAAW2K,UAAY3K,GAAWwK,aACrEnzZ,EACAmnC,IAGFA,EAAU,IACZ,OAGgBl+C,IAAhB0pa,GAA6BC,EAAe1G,eAAe,MAGvD,qBAAsB/kX,GACxB0hX,GAAMn/Z,QAAQkpa,EAAejjX,UAAU,SAA0B54B,EAAK1tB,GACpE89C,EAAQmV,iBAAiBjzD,EAAK0tB,EAChC,IAIG8xY,GAAMnrR,YAAYkkH,EAAQplM,mBAC7BrV,EAAQqV,kBAAoBolM,EAAQplM,iBAIlCC,GAAiC,SAAjBA,IAClBtV,EAAQsV,aAAemlM,EAAQnlM,cAI7Bu1W,KACAe,EAAmBE,GAAiBlD,GAAqBiC,GAAoB,GAC/E7qX,EAAQ50B,iBAAiB,WAAYwgZ,IAInChB,GAAoB5qX,EAAQgV,UAC5B22W,EAAiBE,GAAejD,GAAqBgC,GAEvD5qX,EAAQgV,OAAO5pC,iBAAiB,WAAYugZ,GAE5C3rX,EAAQgV,OAAO5pC,iBAAiB,UAAWygZ,KAGzCpxK,EAAQywK,aAAezwK,EAAQt5J,UAGjCuqU,EAAa57Q,IACN9vG,IAGLqnB,GAAQyoF,GAAUA,EAAOhqJ,KAAO,IAAIiia,GAAc,KAAMlvZ,EAAQmnC,GAAW8vG,GAC3E9vG,EAAQglB,QACRhlB,EAAU,KAAI,EAGhBy6M,EAAQywK,aAAezwK,EAAQywK,YAAY15F,UAAUk6F,GACjDjxK,EAAQt5J,SACVs5J,EAAQt5J,OAAOS,QAAU8pU,IAAejxK,EAAQt5J,OAAO/1E,iBAAiB,QAASsgZ,KAIrF,MAAMx4W,ECvLK,SAAuBzpC,GACpC,MAAMhf,EAAQ,4BAA4BD,KAAKif,GAC/C,OAAOhf,GAASA,EAAM,IAAM,EAC9B,CDoLqB2ha,CAAc3xK,EAAQhxO,KAEnCypC,IAAsD,IAA1CwwB,GAASigV,UAAUj/Z,QAAQwuD,GACzCmU,EAAO,IAAIm6V,GAAW,wBAA0BtuW,EAAW,IAAKsuW,GAAW0G,gBAAiBrvZ,IAM9FmnC,EAAQgC,KAAKwpX,GAAe,KAC9B,GACF,EErJA,GA3CuBa,CAACC,EAASjoZ,KAC/B,MAAM,OAAChjB,GAAWira,EAAUA,EAAUA,EAAQx7Y,OAAOyyB,SAAW,GAEhE,GAAIl/B,GAAWhjB,EAAQ,CACrB,IAEIugG,EAFAg2K,EAAa,IAAI+xG,gBAIrB,MAAM3nR,EAAU,SAAU75E,GACxB,IAAKy5E,EAAS,CACZA,GAAU,EACVsvO,IACA,MAAMn+R,EAAM5qB,aAAkBnV,MAAQmV,EAASnnB,KAAKmnB,OACpDyvP,EAAW5yM,MAAMjyB,aAAeyuX,GAAazuX,EAAM,IAAIg1X,GAAch1X,aAAe//B,MAAQ+/B,EAAIuB,QAAUvB,GAC5G,CACF,EAEA,IAAIozM,EAAQ9hO,GAAWI,YAAW,KAChC0hO,EAAQ,KACRnkJ,EAAQ,IAAIw/T,GAAW,WAAWn9Y,mBAA0Bm9Y,GAAW2K,WAAW,GACjF9nZ,GAEH,MAAM6sT,EAAcA,KACdo7F,IACFnmL,GAAS3hO,aAAa2hO,GACtBA,EAAQ,KACRmmL,EAAQ/pa,SAAQ4+F,IACdA,EAAO+vO,YAAc/vO,EAAO+vO,YAAYlvO,GAAWb,EAAOgB,oBAAoB,QAASH,EAAQ,IAEjGsqU,EAAU,KACZ,EAGFA,EAAQ/pa,SAAS4+F,GAAWA,EAAO/1E,iBAAiB,QAAS42E,KAE7D,MAAM,OAACb,GAAUy2K,EAIjB,OAFAz2K,EAAO+vO,YAAc,IAAMwwF,GAAM7B,KAAK3uF,GAE/B/vO,CACT,GC3CWorU,GAAc,UAAW37W,EAAO47W,GAC3C,IAAIz4Z,EAAM68C,EAAMlkB,WAEhB,IAAK8/X,GAAaz4Z,EAAMy4Z,EAEtB,kBADM57W,GAIR,IACI5rD,EADAm/E,EAAM,EAGV,KAAOA,EAAMpwE,GACX/O,EAAMm/E,EAAMqoV,QACN57W,EAAM3rD,MAAMk/E,EAAKn/E,GACvBm/E,EAAMn/E,CAEV,EAQMyna,GAAahjV,gBAAiB3zE,GAClC,GAAIA,EAAO0rB,OAAOkrY,eAEhB,kBADO52Z,GAIT,MAAMgvE,EAAShvE,EAAO20W,YACtB,IACE,OAAS,CACP,MAAM,KAACroU,EAAI,MAAEh+C,SAAe0gF,EAAOj1B,OACnC,GAAIzN,EACF,YAEIh+C,CACR,CACF,CAAE,cACM0gF,EAAOgrE,QACf,CACF,EAEa68Q,GAAcA,CAAC72Z,EAAQ02Z,EAAW/8L,EAAYm9L,KACzD,MAAMlrY,EA3BiB+nD,gBAAiB9xB,EAAU60W,GAClD,UAAW,MAAM57W,KAAS67W,GAAW90W,SAC5B40W,GAAY37W,EAAO47W,EAE9B,CAuBmBK,CAAU/2Z,EAAQ02Z,GAEnC,IACIpqX,EADAiI,EAAQ,EAERyiX,EAAavpa,IACV6+C,IACHA,GAAO,EACPwqX,GAAYA,EAASrpa,GACvB,EAGF,OAAO,IAAIg9X,eAAe,CACxB,UAAMwsC,CAAKn1J,GACT,IACE,MAAM,KAACx1N,EAAI,MAAEh+C,SAAes9B,EAASt7B,OAErC,GAAIg8C,EAGF,OAFD0qX,SACCl1J,EAAWtC,QAIb,IAAIvhQ,EAAM3P,EAAMsoC,WAChB,GAAI+iM,EAAY,CACd,IAAI2d,EAAc/iM,GAASt2C,EAC3B07N,EAAW2d,EACb,CACAwqB,EAAWo1J,QAAQ,IAAIx3Z,WAAWpR,GACpC,CAAE,MAAO2uC,IAEP,MADA+5X,EAAU/5X,IACJA,EACR,CACF,EACA+8G,OAAO3nI,IACL2kZ,EAAU3kZ,GACHuZ,EAASz7B,WAEjB,CACDm6V,cAAe,GACf,EC3EE6sE,GAAoC,oBAAVnuU,OAA2C,oBAAZ9mD,SAA8C,oBAAb4sB,SAC1FsoW,GAA4BD,IAA8C,oBAAnB1sC,eAGvD4sC,GAAaF,KAA4C,oBAAhBx1Z,aACzCqrZ,GAA0C,IAAIrrZ,YAAjC5D,GAAQivZ,GAAQpuZ,OAAOb,IACtC41E,SAAe,IAAIj0E,iBAAiB,IAAIovD,SAAS/wD,GAAK0sF,gBADtD,IAAEuiU,GAIN,MAAMh3Y,GAAO,SAACzf,GACZ,IAAI,QAAA0B,EAAAC,UAAA3M,OADe4M,EAAI,IAAApD,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,EAAA,GAAAF,UAAAE,GAErB,QAAS7B,KAAM4B,EACjB,CAAE,MAAO1K,IACP,OAAO,CACT,CACF,EAEM6pa,GAAwBF,IAA6BphZ,IAAK,KAC9D,IAAIuhZ,GAAiB,EAErB,MAAMC,EAAiB,IAAIt1X,QAAQ0rC,GAASu3O,OAAQ,CAClDlxQ,KAAM,IAAIw2U,eACVptU,OAAQ,OACR,UAAIo6W,GAEF,OADAF,GAAiB,EACV,MACT,IACCxqX,QAAQ3vB,IAAI,gBAEf,OAAOm6Y,IAAmBC,CAAc,IAKpCE,GAAyBN,IAC7BphZ,IAAK,IAAM41Y,GAAM/C,iBAAiB,IAAI/5V,SAAS,IAAI7a,QAG/C0jX,GAAY,CAChB33Z,OAAQ03Z,IAA0B,CAAEtsV,GAAQA,EAAIn3B,OAG7B,IAAEm3B,GAAvB+rV,KAAuB/rV,GAOpB,IAAItc,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAUriE,SAAQuD,KAC3D2na,GAAU3na,KAAU2na,GAAU3na,GAAQ47Z,GAAMntR,WAAWrzD,GAAIp7E,IAAUo7E,GAAQA,EAAIp7E,KAChF,CAACi5C,EAAGlmC,KACF,MAAM,IAAI2oZ,GAAW,kBAAkB17Z,sBAA0B07Z,GAAWkM,gBAAiB70Z,EAAO,EACpG,KAIR,MA8BM80Z,GAAoBlkV,MAAO5mC,EAASkH,KACxC,MAAM1oD,EAASqga,GAAMR,eAAer+W,EAAQwnU,oBAE5C,OAAiB,MAAVhpX,EAjCaooF,WACpB,GAAY,MAAR1/B,EACF,OAAO,EAGT,GAAG23W,GAAMlD,OAAOz0W,GACd,OAAOA,EAAK9gD,KAGd,GAAGy4Z,GAAML,oBAAoBt3W,GAAO,CAClC,MAAM6jX,EAAW,IAAI51X,QAAQ0rC,GAASu3O,OAAQ,CAC5C9nQ,OAAQ,OACRpJ,SAEF,aAAc6jX,EAASrtU,eAAe7zD,UACxC,CAEA,OAAGg1X,GAAMxiU,kBAAkBn1C,IAAS23W,GAAMrrG,cAActsQ,GAC/CA,EAAKrd,YAGXg1X,GAAMhD,kBAAkB30W,KACzBA,GAAc,IAGb23W,GAAMlvG,SAASzoQ,UACFojX,GAAWpjX,IAAOrd,gBADlC,EAEA,EAMwBmhY,CAAc9jX,GAAQ1oD,CAAM,EAGtD,GAAe4ra,IAAoB,OAACxjV,IAClC,IAAI,IACFhgE,EAAG,OACH0pC,EAAM,KACNj9C,EAAI,OACJirF,EAAM,YACN+pU,EAAW,QACX7mZ,EAAO,mBACPwmZ,EAAkB,iBAClBD,EAAgB,aAChBt1W,EAAY,QACZzS,EAAO,gBACPwS,EAAkB,cAAa,aAC/By4W,GACEvC,GAAc1yZ,GAElBy8C,EAAeA,GAAgBA,EAAe,IAAIvjD,cAAgB,OAElE,IAEIiuC,EAFA+tX,EAAiB1B,GAAe,CAAClrU,EAAQ+pU,GAAeA,EAAY8C,iBAAkB3pZ,GAI1F,MAAM6sT,EAAc68F,GAAkBA,EAAe78F,aAAe,MAChE68F,EAAe78F,aAClB,GAED,IAAI+8F,EAEJ,IACE,GACErD,GAAoBwC,IAAoC,QAAXj6W,GAA+B,SAAXA,GACG,KAAnE86W,QAA6BN,GAAkB9qX,EAAS3sC,IACzD,CACA,IAMIg4Z,EANAN,EAAW,IAAI51X,QAAQvuB,EAAK,CAC9B0pC,OAAQ,OACRpJ,KAAM7zC,EACNq3Z,OAAQ,SASV,GAJI7L,GAAM5B,WAAW5pZ,KAAUg4Z,EAAoBN,EAAS/qX,QAAQ94C,IAAI,kBACtE84C,EAAQkiX,eAAemJ,GAGrBN,EAAS7jX,KAAM,CACjB,MAAO0lL,EAAYjsO,GAAS2la,GAC1B8E,EACArF,GAAqBS,GAAeuB,KAGtC10Z,EAAOy2Z,GAAYiB,EAAS7jX,KA1GT,MA0GmC0lL,EAAYjsO,EACpE,CACF,CAEKk+Z,GAAMlvG,SAASn9P,KAClBA,EAAkBA,EAAkB,UAAY,QAKlD,MAAM84W,EAAyB,gBAAiBn2X,QAAQ51C,UACxD49C,EAAU,IAAIhI,QAAQvuB,EAAK,IACtBqkZ,EACH3sU,OAAQ4sU,EACR56W,OAAQA,EAAOryB,cACf+hB,QAASA,EAAQikX,YAAYt+W,SAC7BuB,KAAM7zC,EACNq3Z,OAAQ,OACRp5X,YAAag6X,EAAyB94W,OAAkBvzD,IAG1D,IAAI0gD,QAAiBs8C,MAAM9+C,GAE3B,MAAMouX,EAAmBZ,KAA4C,WAAjBl4W,GAA8C,aAAjBA,GAEjF,GAAIk4W,KAA2B3C,GAAuBuD,GAAoBl9F,GAAe,CACvF,MAAMpwU,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAWyB,SAAQuhB,IAC1ChjB,EAAQgjB,GAAQ0+B,EAAS1+B,EAAK,IAGhC,MAAMuqZ,EAAwB3M,GAAMR,eAAe1+W,EAASK,QAAQ94C,IAAI,oBAEjE0lO,EAAYjsO,GAASqna,GAAsB1B,GAChDkF,EACAzF,GAAqBS,GAAewB,IAAqB,KACtD,GAELroX,EAAW,IAAIoiB,SACb+nW,GAAYnqX,EAASuH,KAlJF,MAkJ4B0lL,GAAY,KACzDjsO,GAASA,IACT0tU,GAAeA,GAAa,IAE9BpwU,EAEJ,CAEAw0D,EAAeA,GAAgB,OAE/B,IAAIi1T,QAAqBkjD,GAAU/L,GAAM9yS,QAAQ6+S,GAAWn4W,IAAiB,QAAQ9S,EAAU3pC,GAI/F,OAFCu1Z,GAAoBl9F,GAAeA,UAEvB,IAAIp5R,SAAQ,CAACnD,EAAS0yB,KACjC4gW,GAAOtzX,EAAS0yB,EAAQ,CACtBnxD,KAAMq0W,EACN1nU,QAASsjX,GAAaria,KAAK0+C,EAASK,SACpCuP,OAAQ5P,EAAS4P,OACjByC,WAAYrS,EAASqS,WACrBh8C,SACAmnC,WACA,GAEN,CAAE,MAAOjN,IAGP,GAFAm+R,GAAeA,IAEXn+R,IAAoB,cAAbA,GAAI7mC,MAAwB,SAAS4f,KAAKinB,GAAIuB,SACvD,MAAMpwC,OAAOD,OACX,IAAIu9Z,GAAW,gBAAiBA,GAAWyK,YAAapzZ,EAAQmnC,GAChE,CACE0kU,MAAO3xU,GAAI2xU,OAAS3xU,KAK1B,MAAMyuX,GAAW19Z,KAAKivC,GAAKA,IAAOA,GAAIjR,KAAMjpB,EAAQmnC,EACtD,CACD,GC5NKsuX,GAAgB,CACpBp+W,KCNF,KDOEqE,IAAKg6W,GACLzvU,MAAO0vU,IAGT9M,GAAMn/Z,QAAQ+ra,IAAe,CAACjia,EAAIjI,KAChC,GAAIiI,EAAI,CACN,IACEnI,OAAOiU,eAAe9L,EAAI,OAAQ,CAACjI,SACrC,CAAE,MAAOb,IACP,CAEFW,OAAOiU,eAAe9L,EAAI,cAAe,CAACjI,SAC5C,KAGF,MAAMqqa,GAAgBtmZ,GAAW,KAAKA,IAEhCumZ,GAAoBjK,GAAY/C,GAAMntR,WAAWkwR,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACekK,IACXA,EAAWjN,GAAM5uZ,QAAQ67Z,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACtta,GAAUsta,EACjB,IAAIC,EACAnK,EAEJ,MAAMoK,EAAkB,CAAC,EAEzB,IAAK,IAAI5ra,EAAI,EAAGA,EAAI5B,EAAQ4B,IAAK,CAE/B,IAAIyhC,EAIJ,GALAkqY,EAAgBD,EAAS1ra,GAGzBwha,EAAUmK,GAELF,GAAiBE,KACpBnK,EAAU6J,IAAe5pY,EAAK3gC,OAAO6qa,IAAgB78Z,oBAErCjQ,IAAZ2ia,GACF,MAAM,IAAIjD,GAAW,oBAAoB98X,MAI7C,GAAI+/X,EACF,MAGFoK,EAAgBnqY,GAAM,IAAMzhC,GAAKwha,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMqK,EAAU5qa,OAAOouB,QAAQu8Y,GAC5Bvka,KAAI+S,IAAA,IAAEqnB,EAAI3b,GAAM1L,EAAA,MAAK,WAAWqnB,OACpB,IAAV3b,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAIiH,EAAI3uB,EACLyta,EAAQzta,OAAS,EAAI,YAAcyta,EAAQxka,IAAImka,IAAc5ma,KAAK,MAAQ,IAAM4ma,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAItN,GACR,wDAA0DxxY,EAC1D,kBAEJ,CAEA,OAAOy0Y,CAAO,EE3DlB,SAASsK,GAA6Bl2Z,GAKpC,GAJIA,EAAOqyZ,aACTryZ,EAAOqyZ,YAAY8D,mBAGjBn2Z,EAAOsoF,QAAUtoF,EAAOsoF,OAAOS,QACjC,MAAM,IAAImmU,GAAc,KAAMlvZ,EAElC,CASe,SAASo2Z,GAAgBp2Z,GACtCk2Z,GAA6Bl2Z,GAE7BA,EAAOgqC,QAAUsjX,GAAaria,KAAK+U,EAAOgqC,SAG1ChqC,EAAO3C,KAAOyxZ,GAAc78Z,KAC1B+N,EACAA,EAAO6rZ,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAShga,QAAQmU,EAAOs6C,SAC1Ct6C,EAAOgqC,QAAQkiX,eAAe,qCAAqC,GAKrE,OAFgB4J,GAAoB91Z,EAAO4rZ,SAAWtnK,GAASsnK,QAExDA,CAAQ5rZ,GAAQ4nF,MAAK,SAA6Bj+C,GAYvD,OAXAusX,GAA6Bl2Z,GAG7B2pC,EAAStsC,KAAOyxZ,GAAc78Z,KAC5B+N,EACAA,EAAO40Y,kBACPjrW,GAGFA,EAASK,QAAUsjX,GAAaria,KAAK0+C,EAASK,SAEvCL,CACT,IAAG,SAA4Br6B,GAe7B,OAdK0/Y,GAAS1/Y,KACZ4mZ,GAA6Bl2Z,GAGzBsP,GAAUA,EAAOq6B,WACnBr6B,EAAOq6B,SAAStsC,KAAOyxZ,GAAc78Z,KACnC+N,EACAA,EAAO40Y,kBACPtlY,EAAOq6B,UAETr6B,EAAOq6B,SAASK,QAAUsjX,GAAaria,KAAKqkB,EAAOq6B,SAASK,WAIzD/K,QAAQuvB,OAAOl/C,EACxB,GACF,CChFO,MAAM8wB,GAAU,QCKjBi2X,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU3sa,SAAQ,CAACuD,EAAM7C,KAC7Eisa,GAAWppa,GAAQ,SAAmBs4Z,GACpC,cAAcA,IAAUt4Z,GAAQ,KAAO7C,EAAI,EAAI,KAAO,KAAO6C,CAC/D,CAAC,IAGH,MAAMqpa,GAAqB,CAAC,EAW5BD,GAAW3K,aAAe,SAAsBr8Y,EAAWyjB,EAAS2I,GAClE,SAAS86X,EAAc90U,EAAK+qC,GAC1B,MAAO,uCAAoD/qC,EAAM,IAAO+qC,GAAQ/wF,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAAClwC,EAAOk2F,EAAKtU,KAClB,IAAkB,IAAd99D,EACF,MAAM,IAAIs5Y,GACR4N,EAAc90U,EAAK,qBAAuB3uD,EAAU,OAASA,EAAU,KACvE61X,GAAW6N,gBAef,OAXI1jY,IAAYwjY,GAAmB70U,KACjC60U,GAAmB70U,IAAO,EAE1B9c,QAAQ8qB,KACN8mU,EACE90U,EACA,+BAAiC3uD,EAAU,8CAK1CzjB,GAAYA,EAAU9jB,EAAOk2F,EAAKtU,EAAY,CAEzD,EAmCA,UACEspV,cAxBF,SAAuBxua,EAASyua,EAAQC,GACtC,GAAuB,kBAAZ1ua,EACT,MAAM,IAAI0ga,GAAW,4BAA6BA,GAAWiO,sBAE/D,MAAM3hZ,EAAO5pB,OAAO4pB,KAAKhtB,GACzB,IAAImC,EAAI6qB,EAAKzsB,OACb,KAAO4B,KAAM,GAAG,CACd,MAAMq3F,EAAMxsE,EAAK7qB,GACXilB,EAAYqnZ,EAAOj1U,GACzB,GAAIpyE,EAAJ,CACE,MAAM9jB,EAAQtD,EAAQw5F,GAChBjnF,OAAmBvR,IAAVsC,GAAuB8jB,EAAU9jB,EAAOk2F,EAAKx5F,GAC5D,IAAe,IAAXuS,EACF,MAAM,IAAImuZ,GAAW,UAAYlnU,EAAM,YAAcjnF,EAAQmuZ,GAAWiO,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAIhO,GAAW,kBAAoBlnU,EAAKknU,GAAWkO,eAE7D,CACF,EAIER,eC9EIA,GAAahnZ,GAAUgnZ,WAS7B,MAAMS,GACJpia,WAAAA,CAAYqia,GACV5ua,KAAKm8P,SAAWyyK,EAChB5ua,KAAK6ua,aAAe,CAClB7vX,QAAS,IAAI8vX,GACbttX,SAAU,IAAIstX,GAElB,CAUA,aAAM9vX,CAAQ+vX,EAAal3Z,GACzB,IACE,aAAa7X,KAAK4sa,SAASmC,EAAal3Z,EAC1C,CAAE,MAAOk6B,IACP,GAAIA,cAAe//B,MAAO,CACxB,IAAIg9Z,EAEJh9Z,MAAMyuZ,kBAAoBzuZ,MAAMyuZ,kBAAkBuO,EAAQ,CAAC,GAAMA,EAAQ,IAAIh9Z,MAG7E,MAAM2yE,EAAQqqV,EAAMrqV,MAAQqqV,EAAMrqV,MAAMthF,QAAQ,QAAS,IAAM,GAC/D,IACO0uC,GAAI4yC,MAGEA,IAAU5hF,OAAOgvC,GAAI4yC,OAAOljB,SAASkjB,EAAMthF,QAAQ,YAAa,OACzE0uC,GAAI4yC,OAAS,KAAOA,GAHpB5yC,GAAI4yC,MAAQA,CAKhB,CAAE,MAAOpiF,IACP,CAEJ,CAEA,MAAMwvC,EACR,CACF,CAEA66X,QAAAA,CAASmC,EAAal3Z,GAGO,kBAAhBk3Z,GACTl3Z,EAASA,GAAU,CAAC,GACb4Q,IAAMsmZ,EAEbl3Z,EAASk3Z,GAAe,CAAC,EAG3Bl3Z,EAAS2tX,GAAYxlY,KAAKm8P,SAAUtkP,GAEpC,MAAM,aAAC0rZ,EAAY,iBAAEkG,EAAgB,QAAE5nX,GAAWhqC,OAE7B/W,IAAjByia,GACFr8Y,GAAUonZ,cAAc/K,EAAc,CACpCf,kBAAmB0L,GAAW3K,aAAa2K,GAAWe,SACtDxM,kBAAmByL,GAAW3K,aAAa2K,GAAWe,SACtDvM,oBAAqBwL,GAAW3K,aAAa2K,GAAWe,WACvD,GAGmB,MAApBxF,IACE/I,GAAMntR,WAAWk2R,GACnB5xZ,EAAO4xZ,iBAAmB,CACxBjja,UAAWija,GAGbviZ,GAAUonZ,cAAc7E,EAAkB,CACxC/1Z,OAAQw6Z,GAAWgB,SACnB1oa,UAAW0na,GAAWgB,WACrB,IAKPr3Z,EAAOs6C,QAAUt6C,EAAOs6C,QAAUnyD,KAAKm8P,SAAShqM,QAAU,OAAOphD,cAGjE,IAAIo+Z,EAAiBttX,GAAW6+W,GAAM3oY,MACpC8pB,EAAQ1oC,OACR0oC,EAAQhqC,EAAOs6C,SAGjBtQ,GAAW6+W,GAAMn/Z,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjD4wD,WACQtQ,EAAQsQ,EAAO,IAI1Bt6C,EAAOgqC,QAAUsjX,GAAav6Z,OAAOuka,EAAgBttX,GAGrD,MAAMutX,EAA0B,GAChC,IAAIC,GAAiC,EACrCrva,KAAK6ua,aAAa7vX,QAAQz9C,SAAQ,SAAoC+ta,GACjC,oBAAxBA,EAAYhN,UAA0D,IAAhCgN,EAAYhN,QAAQzqZ,KAIrEw3Z,EAAiCA,GAAkCC,EAAYjN,YAE/E+M,EAAwB16X,QAAQ46X,EAAYp5B,UAAWo5B,EAAYhwU,UACrE,IAEA,MAAMiwU,EAA2B,GAKjC,IAAInpW,EAJJpmE,KAAK6ua,aAAartX,SAASjgD,SAAQ,SAAkC+ta,GACnEC,EAAyB3ua,KAAK0ua,EAAYp5B,UAAWo5B,EAAYhwU,SACnE,IAGA,IACIvsF,EADA9Q,EAAI,EAGR,IAAKota,EAAgC,CACnC,MAAM96X,EAAQ,CAAC05X,GAAgBzhZ,KAAKxsB,WAAOc,GAO3C,IANAyzC,EAAMG,QAAQrnC,MAAMknC,EAAO66X,GAC3B76X,EAAM3zC,KAAKyM,MAAMknC,EAAOg7X,GACxBx8Z,EAAMwhC,EAAMl0C,OAEZ+lE,EAAUtvB,QAAQnD,QAAQ97B,GAEnB5V,EAAI8Q,GACTqzD,EAAUA,EAAQq5B,KAAKlrD,EAAMtyC,KAAMsyC,EAAMtyC,MAG3C,OAAOmkE,CACT,CAEArzD,EAAMq8Z,EAAwB/ua,OAE9B,IAAIq5E,EAAY7hE,EAIhB,IAFA5V,EAAI,EAEGA,EAAI8Q,GAAK,CACd,MAAMo7S,EAAcihH,EAAwBnta,KACtCuta,EAAaJ,EAAwBnta,KAC3C,IACEy3E,EAAYy0O,EAAYz0O,EAC1B,CAAE,MAAOp+D,GACPk0Z,EAAW1la,KAAK9J,KAAMsb,GACtB,KACF,CACF,CAEA,IACE8qD,EAAU6nW,GAAgBnka,KAAK9J,KAAM05E,EACvC,CAAE,MAAOp+D,GACP,OAAOw7B,QAAQuvB,OAAO/qD,EACxB,CAKA,IAHArZ,EAAI,EACJ8Q,EAAMw8Z,EAAyBlva,OAExB4B,EAAI8Q,GACTqzD,EAAUA,EAAQq5B,KAAK8vU,EAAyBtta,KAAMsta,EAAyBtta,MAGjF,OAAOmkE,CACT,CAEAqpW,MAAAA,CAAO53Z,GAGL,OAAOmqZ,GADU4G,IADjB/wZ,EAAS2tX,GAAYxlY,KAAKm8P,SAAUtkP,IACE26L,QAAS36L,EAAO4Q,KAC5B5Q,EAAOH,OAAQG,EAAO4xZ,iBAClD,EAIF/I,GAAMn/Z,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B4wD,GAE/Ew8W,GAAMvta,UAAU+wD,GAAU,SAAS1pC,EAAK5Q,GACtC,OAAO7X,KAAKg/C,QAAQwmV,GAAY3tX,GAAU,CAAC,EAAG,CAC5Cs6C,SACA1pC,MACAvT,MAAO2C,GAAU,CAAC,GAAG3C,OAEzB,CACF,IAEAwrZ,GAAMn/Z,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B4wD,GAGrE,SAASu9W,EAAmBC,GAC1B,OAAO,SAAoBlnZ,EAAKvT,EAAM2C,GACpC,OAAO7X,KAAKg/C,QAAQwmV,GAAY3tX,GAAU,CAAC,EAAG,CAC5Cs6C,SACAtQ,QAAS8tX,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLlnZ,MACAvT,SAEJ,CACF,CAEAy5Z,GAAMvta,UAAU+wD,GAAUu9W,IAE1Bf,GAAMvta,UAAU+wD,EAAS,QAAUu9W,GAAmB,EACxD,IAEA,YCxNA,MAAME,GACJrja,WAAAA,CAAYsja,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAI55Z,UAAU,gCAGtB,IAAIqoC,EAEJt+C,KAAKomE,QAAU,IAAItvB,SAAQ,SAAyBnD,GAClD2K,EAAiB3K,CACnB,IAEA,MAAMpuC,EAAQvF,KAGdA,KAAKomE,QAAQq5B,MAAKqvD,IAChB,IAAKvpJ,EAAMuqa,WAAY,OAEvB,IAAI7ta,EAAIsD,EAAMuqa,WAAWzva,OAEzB,KAAO4B,KAAM,GACXsD,EAAMuqa,WAAW7ta,GAAG6sJ,GAEtBvpJ,EAAMuqa,WAAa,IAAI,IAIzB9va,KAAKomE,QAAQq5B,KAAOswU,IAClB,IAAIC,EAEJ,MAAM5pW,EAAU,IAAItvB,SAAQnD,IAC1BpuC,EAAMirU,UAAU78R,GAChBq8X,EAAWr8X,CAAO,IACjB8rD,KAAKswU,GAMR,OAJA3pW,EAAQ0oF,OAAS,WACfvpJ,EAAM2qU,YAAY8/F,EACpB,EAEO5pW,CAAO,EAGhBypW,GAAS,SAAgBv8X,EAASz7B,EAAQmnC,GACpCz5C,EAAM4hB,SAKV5hB,EAAM4hB,OAAS,IAAI4/Y,GAAczzX,EAASz7B,EAAQmnC,GAClDV,EAAe/4C,EAAM4hB,QACvB,GACF,CAKA6mZ,gBAAAA,GACE,GAAIhua,KAAKmnB,OACP,MAAMnnB,KAAKmnB,MAEf,CAMAqpT,SAAAA,CAAUhkQ,GACJxsE,KAAKmnB,OACPqlD,EAASxsE,KAAKmnB,QAIZnnB,KAAK8va,WACP9va,KAAK8va,WAAWlva,KAAK4rE,GAErBxsE,KAAK8va,WAAa,CAACtjW,EAEvB,CAMA0jQ,WAAAA,CAAY1jQ,GACV,IAAKxsE,KAAK8va,WACR,OAEF,MAAMlsa,EAAQ5D,KAAK8va,WAAWpsa,QAAQ8oE,IACvB,IAAX5oE,GACF5D,KAAK8va,WAAWljW,OAAOhpE,EAAO,EAElC,CAEAopa,aAAAA,GACE,MAAMp2J,EAAa,IAAI+xG,gBAEjB3kT,EAASjyB,IACb6kO,EAAW5yM,MAAMjyB,EAAI,EAOvB,OAJA/xC,KAAKwwU,UAAUxsQ,GAEf4yM,EAAWz2K,OAAO+vO,YAAc,IAAMlwU,KAAKkwU,YAAYlsQ,GAEhD4yM,EAAWz2K,MACpB,CAMA,aAAOv/D,GACL,IAAIkuH,EACJ,MAAMvpJ,EAAQ,IAAIqqa,IAAY,SAAkB1iY,GAC9C4hH,EAAS5hH,CACX,IACA,MAAO,CACL3nC,QACAupJ,SAEJ,EAGF,YCtIA,MAAMh/E,GAAiB,CACrBmgW,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZ3tO,GAAI,IACJ4tO,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXrlC,SAAU,IACVslC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjC3wa,OAAOouB,QAAQw+C,IAAgBvuE,SAAQ8a,IAAkB,IAAhBnb,EAAKkC,GAAMiZ,EAClDyzD,GAAe1sE,GAASlC,CAAG,IAG7B,YCxBA,MAAM4ya,GAnBN,SAASC,EAAen+J,GACtB,MAAMh7M,EAAU,IAAI+zW,GAAM/4J,GACpB1yO,EAAW1W,GAAKmiZ,GAAMvta,UAAU49C,QAAS4b,GAa/C,OAVA8lW,GAAMt+R,OAAOl/F,EAAUyrY,GAAMvta,UAAWw5D,EAAS,CAACmjW,YAAY,IAG9D2C,GAAMt+R,OAAOl/F,EAAU03B,EAAS,KAAM,CAACmjW,YAAY,IAGnD76X,EAAS53B,OAAS,SAAgBsja,GAChC,OAAOmF,EAAevuC,GAAY5vH,EAAeg5J,GACnD,EAEO1rY,CACT,CAGc6wY,CAAe53K,IAG7B23K,GAAMnF,MAAQA,GAGdmF,GAAM/M,cAAgBA,GACtB+M,GAAMlE,YAAcA,GACpBkE,GAAMjN,SAAWA,GACjBiN,GAAM77X,QAAUA,GAChB67X,GAAMjS,WAAaA,GAGnBiS,GAAMtT,WAAaA,GAGnBsT,GAAME,OAASF,GAAM/M,cAGrB+M,GAAMjwS,IAAM,SAAao4L,GACvB,OAAOnlR,QAAQ+sF,IAAIo4L,EACrB,EAEA63G,GAAMG,OC9CS,SAAgBxta,GAC7B,OAAO,SAAc4P,GACnB,OAAO5P,EAAS4G,MAAM,KAAMgJ,EAC9B,CACF,ED6CAy9Z,GAAMI,aE7DS,SAAsBh9W,GACnC,OAAOwpW,GAAMprR,SAASp+E,KAAsC,IAAzBA,EAAQg9W,YAC7C,EF8DAJ,GAAMtuC,YAAcA,GAEpBsuC,GAAM3O,aAAeA,GAErB2O,GAAMK,WAAa/W,GAAS0G,GAAepD,GAAMxC,WAAWd,GAAS,IAAIl+T,SAASk+T,GAASA,GAE3F0W,GAAMM,WAAazG,GAEnBmG,GAAMhkW,eAAiBA,GAEvBgkW,GAAM78Z,QAAU68Z,GAGhB,YGxFA,IAAIvxa,GAAE,CAAC2S,KAAK,IAAI8c,GAAEA,GAAG,iBAAiB0Q,SAAS1Q,EAAEA,EAAEvlB,cAAc,YAAYi2B,OAAO2xY,UAAUnxa,OAAOD,QAAQ+uB,GAAGtwB,SAASsI,MAAMnI,YAAYH,SAASC,cAAc,UAAU,CAACwtI,UAAU,IAAIzrG,GAAG,aAAahjC,WAAWsxB,GAAGzvB,GAAgD0sB,GAAE,oEAAoE7Y,GAAE,qBAAqB6X,GAAE,OAAO+xG,GAAEA,CAACz9H,EAAEyvB,KAAK,IAAIF,EAAE,GAAG7C,EAAE,GAAG7Y,EAAE,GAAG,IAAI,IAAI6X,KAAK1rB,EAAE,CAAC,IAAI2qC,EAAE3qC,EAAE0rB,GAAG,KAAKA,EAAE,GAAG,KAAKA,EAAE,GAAG6D,EAAE7D,EAAE,IAAIif,EAAE,IAAIje,GAAG,KAAKhB,EAAE,GAAG+xG,GAAE9yF,EAAEjf,GAAGA,EAAE,IAAI+xG,GAAE9yF,EAAE,KAAKjf,EAAE,GAAG,GAAG+D,GAAG,IAAI,iBAAiBkb,EAAEje,GAAG+wG,GAAE9yF,EAAElb,EAAEA,EAAE3uB,QAAQ,YAAWd,GAAG0rB,EAAE5qB,QAAQ,mBAAkB2uB,GAAG,IAAIlH,KAAKkH,GAAGA,EAAE3uB,QAAQ,KAAKd,GAAGA,EAAEA,EAAE,IAAIyvB,EAAEA,MAAI/D,GAAG,MAAMif,IAAIjf,EAAE,MAAMnD,KAAKmD,GAAGA,EAAEA,EAAE5qB,QAAQ,SAAS,OAAO0N,cAAcqF,GAAG4pH,GAAE3pG,EAAE2pG,GAAE3pG,EAAEpI,EAAEif,GAAGjf,EAAE,IAAIif,EAAE,IAAI,CAAC,OAAOpb,GAAGE,GAAG5b,EAAE4b,EAAE,IAAI5b,EAAE,IAAIA,GAAG6Y,CAAC,EAAEie,GAAE,CAAC,EAAEle,GAAEzsB,IAAI,GAAG,iBAAiBA,EAAE,CAAC,IAAIyvB,EAAE,GAAG,IAAI,IAAIF,KAAKvvB,EAAEyvB,GAAGF,EAAE9C,GAAEzsB,EAAEuvB,IAAI,OAAOE,CAAC,CAAC,OAAOzvB,CAAC,EAA8uB,SAAS8vB,GAAE9vB,GAAG,IAAIuvB,EAAE9xB,MAAM,CAAC,EAAEivB,EAAE1sB,EAAEuH,KAAKvH,EAAEuvB,EAAEuE,GAAG9zB,EAAE,MAAzxBN,EAACM,EAAEyvB,EAAEF,EAAE7vB,EAAEo0B,KAAK,IAAIhE,EAAErD,GAAEzsB,GAAG8S,EAAE63B,GAAE7a,KAAK6a,GAAE7a,GAAG,CAAC9vB,IAAI,IAAIyvB,EAAE,EAAEF,EAAE,GAAG,KAAKE,EAAEzvB,EAAElC,QAAQyxB,EAAE,IAAIA,EAAEvvB,EAAEsB,WAAWmuB,OAAO,EAAE,MAAM,KAAKF,CAAE,EAA9E,CAAgFO,IAAI,IAAI6a,GAAE73B,GAAG,CAAC,IAAI2c,EAAEK,IAAI9vB,EAAEA,EAAE,CAACA,IAAI,IAAIyvB,EAAEF,EAAEkuG,EAAE,CAAC,CAAC,GAAG,KAAKhuG,EAAE/C,GAAEzlB,KAAKjH,EAAEc,QAAQ+S,GAAE,MAAM4b,EAAE,GAAGguG,EAAExxG,QAAQwD,EAAE,IAAIF,EAAEE,EAAE,GAAG3uB,QAAQ4qB,GAAE,KAAK9qB,OAAO68H,EAAEtrF,QAAQsrF,EAAE,GAAGluG,GAAGkuG,EAAE,GAAGluG,IAAI,CAAC,IAAIkuG,EAAE,GAAGhuG,EAAE,IAAIA,EAAE,GAAG3uB,QAAQ4qB,GAAE,KAAK9qB,OAAO,OAAO68H,EAAE,EAAG,EAAxL,CAA0Lz9H,GAAG2qC,GAAE73B,GAAG2qH,GAAE3pG,EAAE,CAAC,CAAC,cAAchhB,GAAG2c,GAAGA,EAAEF,EAAE,GAAG,IAAIzc,EAAE,CAAC,IAAI6Z,EAAE4C,GAAGob,GAAEozF,EAAEpzF,GAAEozF,EAAE,KAAK,OAAOxuG,IAAIob,GAAEozF,EAAEpzF,GAAE73B,IAAI,EAAE9S,EAAEyvB,EAAEF,EAAE7C,KAAKA,EAAE+C,EAAE9c,KAAK8c,EAAE9c,KAAK7R,QAAQ4rB,EAAE1sB,IAAI,IAAIyvB,EAAE9c,KAAKxR,QAAQnB,KAAKyvB,EAAE9c,KAAK4c,EAAEvvB,EAAEyvB,EAAE9c,KAAK8c,EAAE9c,KAAK3S,EAAG,EAA/F,CAAiG2qC,GAAE73B,GAAG2c,EAAE/vB,EAAEitB,GAAG7Z,CAAC,EAA0QpT,CAAEgtB,EAAEylB,QAAQzlB,EAAEvc,IAApR2jB,EAAC9zB,EAAEyvB,EAAEF,IAAIvvB,EAAE4T,QAAO,CAAC5T,EAAE0sB,EAAE7Y,KAAK,IAAI6X,EAAE+D,EAAE5b,GAAG,GAAG6X,GAAGA,EAAEnkB,KAAK,CAAC,IAAIvH,EAAE0rB,EAAE6D,GAAGE,EAAEzvB,GAAGA,EAAEwC,OAAOxC,EAAEwC,MAAMwO,WAAW,MAAMuX,KAAKvoB,IAAIA,EAAE0rB,EAAE+D,EAAE,IAAIA,EAAEzvB,GAAG,iBAAiBA,EAAEA,EAAEwC,MAAM,GAAGi7H,GAAEz9H,EAAE,KAAI,IAAKA,EAAE,GAAGA,CAAC,CAAC,OAAOA,EAAE0sB,GAAG,MAAMhB,EAAE,GAAGA,EAAE,GAAE,IAA4EoI,CAAEpH,EAAE,GAAGhrB,MAAM6F,KAAKkD,UAAU,GAAG8kB,EAAEuE,GAAGpH,EAAE9Y,QAAO,CAAC5T,EAAEyvB,IAAI9uB,OAAOD,OAAOV,EAAEyvB,GAAGA,EAAEloB,KAAKkoB,EAAEF,EAAEuE,GAAGrE,IAAG,CAAC,GAAG/C,EAAE+C,GAAEF,EAAElI,QAAQkI,EAAEwuG,EAAExuG,EAAEkuG,EAAEluG,EAAE3pB,EAAE,CAAakqB,GAAE7F,KAAK,CAAC8zG,EAAE,IAAtB,IAAIjrH,GAAE6Z,GAAEoxG,GAAkBxtH,GAAEuf,GAAE7F,KAAK,CAACrkB,EAAE,IAA0C,SAASD,GAAE3F,EAAEyvB,GAAG,IAAIF,EAAE9xB,MAAM,CAAC,EAAE,OAAO,WAAW,IAAIivB,EAAEjiB,UAAU,SAASoJ,EAAE6X,EAAE+xG,GAAG,IAAI9yF,EAAEhqC,OAAOD,OAAO,CAAC,EAAEgrB,GAAGe,EAAEke,EAAE35B,WAAW6C,EAAE7C,UAAUue,EAAEuE,EAAEnzB,OAAOD,OAAO,CAAC0U,MAAMuX,IAAGA,MAAKge,GAAGpb,EAAEkuG,EAAE,UAAUl1G,KAAKkE,GAAGke,EAAE35B,UAAU8e,GAAEhlB,MAAMykB,EAAE7C,IAAID,EAAE,IAAIA,EAAE,IAAIgD,IAAIkb,EAAElhC,IAAIg0H,GAAG,IAAI/9H,EAAEM,EAAE,OAAOA,EAAE,KAAKN,EAAEirC,EAAEzmB,IAAIlkB,SAAS2qC,EAAEzmB,IAAI65G,IAAGr+H,EAAE,IAAIq+H,GAAEpzF,GAAG73B,GAAEpT,EAAEirC,EAAE,CAAC,OAAOlb,EAAEA,EAAE5b,GAAGA,CAAC,CAAC,CCuBzpE,IAKak+E,GAAewuN,CAC1BvgT,EACAyvB,IANAzvB,IAEyB,mBAAlBA,EAKK8xF,CAAW9xF,GAAiBA,EAAcyvB,GAAOzvB,EC/BlD67L,GAAA,MACX,IAAI77L,EAAQ,EACZ,MAAO,OACKA,GAAOgL,UAEpB,EALY,GAOAgpB,GAAA,MAEX,IAAIh0B,EAEJ,MAAO,KACL,QAA2B,IAAvBA,UAA2CmgC,OAAW,IAAa,CACrE,IAAM1Q,EAAa6gH,WAAW,oCAC9BtwI,GAAsByvB,GAAcA,EAAWnI,OAAA,CAEjD,OAAOtnB,CACT,CACD,EAXY,GC2CPoiD,GAAgB,IAAIo0F,IAIpB9Y,GAAoB19H,IACxB,GAAIoiD,GAAczyB,IAAI3vB,GACpB,OAGF,IAAMyvB,EAAUvO,YAAW,KACzBkhC,GAAcsB,OAAO1jD,GACrB8vB,GAAS,CACPvtB,KAAM,EACNwva,QAAS/xa,GAEb,GAbwC,KAexCoiD,GAAc37C,IAAIzG,EAASyvB,EAC7B,EASa3d,GAAUu6X,CAACrsY,EAAcyvB,KACpC,OAAQA,EAAOltB,MACb,KAAK,EACH,MAAO,IACFvC,EACHgya,OAAQ,CAACviZ,EAAO+iR,SAAUxyS,EAAMgya,QAAQtwa,MAAM,EA/ElC,KAkFhB,KAAK,EAEH,OAAI+tB,EAAO+iR,MAAMrxQ,IAjBOnhC,KAC5B,IAAMyvB,EAAU2yB,GAAc57C,IAAIxG,GAC9ByvB,GACFxO,aAAawO,EAEjB,EAaQk4J,CAAqBl4J,EAAO+iR,MAAMrxQ,IAG7B,IACFnhC,EACHgya,OAAQhya,EAAMgya,OAAOjra,KAAKwoB,GACxBA,EAAE4R,KAAO1R,EAAO+iR,MAAMrxQ,GAAK,IAAK5R,KAAME,EAAO+iR,OAAUjjR,KAI7D,KAAK,EACH,IAAQijR,MAAA/0K,GAAUhuG,EAClB,OAAOzvB,EAAMgya,OAAOjiT,MAAMxgG,GAAMA,EAAE4R,KAAOs8F,EAAMt8F,KAC3CrvB,GAAQ9R,EAAO,CAAEuC,KAAM,EAAyBiwS,MAAA/0K,IAChD3rH,GAAQ9R,EAAO,CAAEuC,KAAM,EAAsBiwS,MAAA/0K,IAEnD,KAAK,EACH,IAAQs0S,QAAAtlZ,GAAYgD,EAGpB,OAAIhD,EACFixG,GAAiBjxG,GAEjBzsB,EAAMgya,OAAOhza,SAASuwB,IACpBmuG,GAAiBnuG,EAAM4R,GACzB,IAGK,IACFnhC,EACHgya,OAAQhya,EAAMgya,OAAOjra,KAAKwoB,GACxBA,EAAE4R,KAAO1U,QAAuB,IAAZA,EAChB,IACK8C,EACH0iZ,SAAS,GAEX1iZ,KAGV,KAAK,EACH,YAAuB,IAAnBE,EAAOsiZ,QACF,IACF/xa,EACHgya,OAAQ,IAGL,IACFhya,EACHgya,OAAQhya,EAAMgya,OAAOzkZ,QAAQgC,GAAMA,EAAE4R,KAAO1R,EAAOsiZ,WAGvD,KAAK,EACH,MAAO,IACF/xa,EACHkya,SAAUziZ,EAAO/I,MAGrB,KAAK,EACH,IAAM7S,EAAO4b,EAAO/I,MAAQ1mB,EAAMkya,UAAY,GAE9C,MAAO,IACFlya,EACHkya,cAAU,EACVF,OAAQhya,EAAMgya,OAAOjra,KAAKwoB,IAAA,IACrBA,EACH4iZ,cAAe5iZ,EAAE4iZ,cAAgBt+Z,OAGzC,EAGI2mI,GAA2C,GAE7C92C,GAAqB,CAAEsuU,OAAQ,GAAIE,cAAU,GAEpCpiZ,GAAY9vB,IACvB0jG,GAAc5xF,GAAQ4xF,GAAa1jG,GACnCw6I,GAAUx7I,SAASywB,IACjBA,EAASi0E,GACX,GACF,EAEalD,GAET,CACF4xU,MAAO,IACPr5Z,MAAO,IACPM,QAAS,IACTsoS,QAAS,IACTsW,OAAQ,KC/IJ1nT,GACHvQ,GACD,CAACyvB,EAASguG,KACR,IAAMhxG,EArBU,SAClBzsB,GAAA,IACAyvB,EAAAhlB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAkB,QAClBgzH,EAAAhzH,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAAA,MACW,CACX8za,UAAW76X,KAAKsnB,MAChBmzW,SAAS,EACT1va,KAAAktB,EACA6iZ,UAAW,CACTjuZ,KAAM,SACN,YAAa,UAEf0sB,QAAA/wC,EACAmya,cAAe,KACZ10S,EACHt8F,IAAI,MAAAs8F,OAAA,EAAAA,EAAMt8F,KAAM06J,KAClB,CAKkB77F,CAAYvwE,EAASzvB,EAAMy9H,GACzC,OAAA3tG,GAAS,CAAEvtB,KAAA,EAA+BiwS,MAAA/lR,IACnCA,EAAM0U,EACf,EAEIzV,GAAQ8mR,CAACxyS,EAAkByvB,IAC/Blf,GAAc,QAAdA,CAAuBvQ,EAASyvB,GAElC/D,GAAM3S,MAAQxI,GAAc,SAC5Bmb,GAAMrS,QAAU9I,GAAc,WAC9Bmb,GAAMi2R,QAAUpxS,GAAc,WAC9Bmb,GAAMusS,OAAS1nT,GAAc,UAE7Bmb,GAAMqgS,QAAW/rT,IACf8vB,GAAS,CACPvtB,KAAA,EACAwva,QAAA/xa,GAEJ,EAEA0rB,GAAMyzB,OAAUn/C,GACd8vB,GAAS,CAAEvtB,KAAA,EAA+Bwva,QAAA/xa,IAE5C0rB,GAAMm4C,QAAU,CACd7jE,EACAyvB,EAKAguG,KAEA,IAAMhxG,EAAKf,GAAMi2R,QAAQlyR,EAAKkyR,QAAS,IAAKlkL,KAAS,MAAAA,OAAA,EAAAA,EAAMkkL,UAE3D,OAAA3hT,EACGk9F,MAAMrpF,IACL6X,GAAMrS,QAAQ04E,GAAatiE,EAAKpW,QAASxF,GAAI,CAC3CstB,GAAA1U,KACGgxG,KACA,MAAAA,OAAA,EAAAA,EAAMpkH,UAEJxF,KAERy1K,OAAOz1K,IACN6X,GAAM3S,MAAMg5E,GAAatiE,EAAK1W,MAAOlF,GAAI,CACvCstB,GAAA1U,KACGgxG,KACA,MAAAA,OAAA,EAAAA,EAAM1kH,OAEb,IAEK/Y,CACT,ECpFA,IAAMk+L,GAAeq0O,CAACvya,EAAiByvB,KACrCK,GAAS,CACPvtB,KAAA,EACAiwS,MAAO,CAAErxQ,GAAInhC,EAAS8d,OAAA2R,IAE1B,EACM6iH,GAAakgS,KACjB1iZ,GAAS,CACPvtB,KAAA,EACAmkB,KAAM8wB,KAAKsnB,OAEf,EAEayiC,GAAcvhG,IACzB,IAAQgya,OAAAviZ,EAAQyiZ,SAAAz0S,GFiKM,WAAmD,IAAlDz9H,EAAAyK,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAoC,CAAC,GACrDglB,EAAOguG,IAAY93H,EAAAA,EAAAA,UAAgB+9F,KAC1C7R,EAAAA,EAAAA,YAAU,KACR2oD,GAAUn8I,KAAKo/H,GACR,KACL,IAAM5pH,EAAQ2mI,GAAUr5I,QAAQs8H,GAC5B5pH,GAAS,GACX2mI,GAAUnwE,OAAOx2D,EAAO,EAE5B,IACC,CAAC4b,IAEJ,IAAMhD,EAAegD,EAAMuiZ,OAAOjra,KAAK8M,IAhMzC,IAAA0b,EAAAob,EAgMgD,UACzC3qC,KACAA,EAAa6T,EAAEtR,SACfsR,EACHsJ,SACEtJ,EAAEsJ,WACF,OAAAoS,EAAAvvB,EAAa6T,EAAEtR,YAAf,EAAAgtB,EAAsBpS,YACtB,MAAAnd,OAAA,EAAAA,EAAcmd,WACdqjF,GAAgB3sF,EAAEtR,MACpBirB,MAAO,IACFxtB,EAAawtB,SACb,OAAAmd,EAAA3qC,EAAa6T,EAAEtR,YAAf,EAAAooC,EAAsBnd,SACtB3Z,EAAE2Z,OAER,IAED,MAAO,IACFiC,EACHuiZ,OAAQvlZ,EAEZ,CEjM+B20E,CAASphG,IAEtC4xF,EAAAA,EAAAA,YAAU,KACR,GAAI6rC,EACF,OAGF,IAAMluG,EAAMioB,KAAKsnB,MACXn0B,EAAWlb,EAAO1oB,KAAKrH,IAC3B,GAAIA,EAAEyd,WAAa,IACjB,OAGF,IAAMrK,GACHpT,EAAEyd,UAAY,GAAKzd,EAAEyya,eAAiB5iZ,EAAM7vB,EAAE2ya,WAEjD,KAAIv/Z,EAAe,GAMnB,OAAOoO,YAAW,IAAMwK,GAAMqgS,QAAQrsT,EAAEyhC,KAAKruB,GALvCpT,EAAEuya,SACJvmZ,GAAMqgS,QAAQrsT,EAAEyhC,GAKtB,IAEA,MAAO,KACLwJ,EAAS3rC,SAASU,GAAYA,GAAWuhB,aAAavhB,IACxD,CACF,GAAG,CAAC+vB,EAAQguG,IAEZ,IAAMhxG,GAAWo1B,EAAAA,EAAAA,cAAY,KACvB47E,GACF3tG,GAAS,CAAEvtB,KAAA,EAA4BmkB,KAAM8wB,KAAKsnB,OAEtD,GAAG,CAAC2+D,IAEE5pH,GAAkBguC,EAAAA,EAAAA,cACtB,CACEtyB,EACAob,KAMA,IAAQ8nY,aAAA/ya,GAAe,EAAOgza,OAAA5/Z,EAAS,EAAG6/Z,gBAAA7+Y,GAAoB6W,GAAQ,CAAC,EAEjEozF,EAAiBtuG,EAAOlC,QAC3BsG,IACEA,EAAE5xB,UAAY6xB,MACZvE,EAAMttB,UAAY6xB,IAAoBD,EAAE/V,SAEzC4jF,EAAaq8B,EAAe3S,WAAWv3F,GAAMA,EAAEsN,KAAO5R,EAAM4R,KAC5Dt7B,EAAek4H,EAAexwG,QAClC,CAACsG,EAAOgtE,IAAMA,EAAIa,GAAc7tE,EAAMo+Y,UACtCn0a,OAOF,OALeigI,EACZxwG,QAAQsG,GAAMA,EAAEo+Y,UAChBvwa,SAAUhC,EAAe,CAACmG,EAAe,GAAK,CAAC,EAAGA,IAClD+N,QAAO,CAACigB,EAAKgtE,IAAMhtE,GAAOgtE,EAAE/iF,QAAU,GAAKhL,GAAQ,EAGxD,GACA,CAAC2c,IAGH,MAAO,CACLuiZ,OAAAviZ,EACAyG,SAAU,CACRq8Y,aAAAr0O,GACAs0O,WAAAlgS,GACAsgS,SAAAnmZ,EACAy5O,gBAAAryP,GAGN,EC7FM6uK,GAAkB98K,EAAA;;;;;;;;GAUlB2lB,GAAqB3lB,EAAA;;;;;;;;GAUrBi9K,GAAsBj9K,EAAA;;;;;;;;GAef41C,GAAYsnI,GAAO,MAAM;;;;;gBAKrB9iL,GAAMA,EAAEsW,SAAW;;;;eAIrBosK;;;;;;;iBAOEn3J;;;;;kBAKEvrB,GAAMA,EAAEuW,WAAa;;;;;;;;iBAQvBssK;;;;EChEXJ,GAASxqB,EAAA;;;;;;;EAcF8jC,GAAa/Z,GAAO,MAAM;;;;;;kBAMpBhiL,GAAMA,EAAEuW,WAAa;wBACfvW,GAAMA,EAAEsW,SAAW;eAC7BmsK;ECtBTE,GAAkBtgI,EAAA;;;;;;;;GAUlB8/H,GAAqB9/H,EAAA;;;;;;;;;;;;;;GAqBdpW,GAAgBi2I,GAAO,MAAM;;;;;gBAKzBliL,GAAMA,EAAEsW,SAAW;;;;eAIrBqsK;;;;;;iBAMER;;;;;;oBAMIniL,GAAMA,EAAEuW,WAAa;;;;;;EC9CpCwsK,GAAgB9nF,GAAO,MAAM;;EAI7BsnF,GAAmBtnF,GAAO,MAAM;;;;;;;EAShCJ,GAAQ2nF,EAAA;;;;;;;;GAUDJ,GAAsBnnF,GAAO,MAAM;;;;;eAKjCJ;;EAUFr5C,GAER1nC,IAAe,IAAZ04R,MAAAxyS,GAAM8Z,GACJrC,KAAAgY,EAAMltB,KAAAk7H,EAAMo1S,UAAApmZ,GAAczsB,EAClC,YAAa,IAATyvB,EACkB,iBAATA,EACF3pB,EAAAA,cAACs8K,GAAA,KAAqB3yJ,GAEtBA,EAIE,UAATguG,EACK,KAIP33H,EAAAA,cAACy8K,GAAA,KACCz8K,EAAAA,cAACi2L,GAAA,IAAetvK,IACN,YAATgxG,GACC33H,EAAAA,cAACi9K,GAAA,KACW,UAATtlD,EACC33H,EAAAA,cAAC01C,GAAA,IAAc/uB,IAEf3mB,EAAAA,cAACmmC,GAAA,IAAkBxf,KAM/B,ECrEM02J,GAAkBnjL,GAAmB,mCACF,IAAVA,6FAIzBqiL,GAAiBriL,GAAmB,iGAEC,IAAVA,oCAM3BiiL,GAAe3/H,GAAO,MAAM;;;;;;;;;;;;EAc5BujI,GAAUvjI,GAAO,MAAM;;;;;;;EAqChBg5C,GAA0C5uE,EAAAA,MACrDxX,IAA0C,IAAvCs9R,MAAAxyS,EAAOiC,SAAAwtB,EAAUjC,MAAAiwG,EAAOh7H,SAAAgqB,GAASvX,EAC5BrB,EAAsC7T,EAAM8d,OApB5Bg1Z,EACxB9ya,EACAyvB,KAGA,IAAMhD,EADMzsB,EAAS6rD,SAAS,OACT,GAAK,GAEnBh4C,EAAO0b,GAAQyE,KAClB,CA5CkB,kCACC,mCA4CnB,CAACmvJ,GAAe12J,GAAS41J,GAAc51J,IAE3C,MAAO,CACL+5J,UAAW/2J,EACP,GAAG1pB,GAAU8N,iDACb,GAAG9N,GAAUwpB,+CAErB,EAKQ+zJ,CACEtjL,EAAMiC,UAAYwtB,GAAY,aAC9BzvB,EAAMiya,SAER,CAAEjla,QAAS,GAETuiB,EAAO7C,EAAAA,cAAC80B,GAAA,CAAUgxP,MAAOxyS,IACzB2qC,EACJje,EAAAA,cAACm5J,GAAA,IAAY7lL,EAAMsya,WAChBvgV,GAAa/xF,EAAM+wC,QAAS/wC,IAIjC,OACE0sB,EAAAA,cAACu1J,GAAA,CACCjxK,UAAWhR,EAAMgR,UACjBwc,MAAO,IACF3Z,KACA4pH,KACAz9H,EAAMwtB,QAGU,mBAAbf,EACNA,EAAS,CACPhV,KAAA8X,EACAwhB,QAAApG,IAGFje,EAAAA,cAAAA,EAAAA,SAAA,KACG6C,EACAob,GAKX,KV7G4yD,SAAW3qC,EAAEyvB,EAAEF,EAAE7C,GAAG+wG,GAAE3pG,EAAErE,EAAE3c,GAAE9S,EAAE2sB,GAAE4C,EAAEwuG,GAAErxG,CAAC,CWYn1D83J,CAAY73J,EAAAA,eAEZ,IAAMg3J,GAAe30J,IAMI,IALvBmS,GAAAnhC,EACAgR,UAAAye,EACAjC,MAAAiwG,EACAs1S,eAAAtmZ,EACAhqB,SAAAoR,GACFmb,EACQO,EAAY5C,EAAAA,aACfge,IACC,GAAIA,EAAI,CACN,IAAMjrC,EAAe6ya,KACnB,IAAMz/Z,EAAS63B,EAAG0mN,wBAAwBvzO,OAC1C2O,EAAezsB,EAAI8S,EACrB,EACApT,IACA,IAAI+nS,iBAAiB/nS,GAAckvR,QAAQjkP,EAAI,CAC7Cu+P,SAAS,EACTF,WAAW,EACXC,eAAe,GAChB,IAGL,CAACjpS,EAAIysB,IAGP,OACEE,EAAAA,cAAC,OAAIljB,IAAK8lB,EAAKve,UAAWye,EAAWjC,MAAOiwG,GACzC5pH,EAGP,EA+BMmvK,GAAc0C,EAAA;;;;;EASP5B,GAAkC4iJ,IAQzC,IAPJ+rG,aAAAzya,EACAiC,SAAAwtB,EAAW,aACXujZ,aAAAv1S,EACAi1S,OAAAjmZ,EACAhqB,SAAAoR,EACAo/Z,eAAA1jZ,EACA2jZ,mBAAAvoY,GACF+7R,GACUsrG,OAAAtya,EAAQw2B,SAAApjB,GAAayuF,GAAWk8B,GAExC,OACE9wG,EAAAA,cAAC,OACCa,MAAO,CACLvrB,SAAU,QACVqL,OAAQ,KACR8tB,IAlBe,GAmBfG,KAnBe,GAoBfF,MApBe,GAqBfC,OArBe,GAsBfqxR,cAAe,UACZp9R,GAELve,UAAW25B,EACXk9H,aAAc/0J,EAAS0/Z,WACvBjuQ,aAAczxJ,EAAS8/Z,UAEtBlza,EAAOqH,KAAK+sB,IACX,IAAMiqG,EAAgBjqG,EAAE7xB,UAAYwtB,EAM9B5pB,EAxEWsta,EACvBnza,EACAyvB,KAEA,IAAMguG,EAAMz9H,EAAS6rD,SAAS,OACxBp/B,EAAqCgxG,EAAM,CAAEriG,IAAK,GAAM,CAAEE,OAAQ,GAClEznB,EAAuC7T,EAAS6rD,SAAS,UAC3D,CACEtxB,eAAgB,UAElBv6B,EAAS6rD,SAAS,SAClB,CACEtxB,eAAgB,YAElB,CAAC,EACL,MAAO,CACLgB,KAAM,EACNF,MAAO,EACPxY,QAAS,OACT5gB,SAAU,WACV+gB,WAAYgR,UACR,EACA,yCACJR,UAAW,cAAc/D,GAAUguG,EAAM,GAAK,WAC3ChxG,KACA5Y,EAEP,EA6C8B+xK,CAAiB7nD,EALxBjrH,EAASozP,gBAAgBpyO,EAAG,CACzC2+Y,aAAAzya,EACA0ya,OAAAjmZ,EACAkmZ,gBAAiBljZ,KAInB,OACE9C,EAAAA,cAACg3J,GAAA,CACCxiJ,GAAIrN,EAAEqN,GACNxiC,IAAKm1B,EAAEqN,GACP4xY,eAAgBjga,EAASy/Z,aACzBvha,UAAW8iB,EAAEm+Y,QAAUjvP,GAAc,GACrCx1J,MAAO3nB,GAEK,WAAXiuB,EAAEvxB,KACDwvF,GAAaj+D,EAAEid,QAASjd,GACtBjgB,EACFA,EAASigB,GAETnH,EAAAA,cAAC2uE,GAAA,CAASk3M,MAAO1+Q,EAAG7xB,SAAU87H,IAItC,IAGN,EChIOq1S,GAAQ1nZ,GCPf,MA4FA,GA5F2BxF,IACzB,MAAMkyE,EAAiC,qBAAXj4D,OACtBn9B,EAAQo1F,EAAe38C,aAAaixQ,QAAQ,eAAiB,KAC7D2mH,EAAyBtiY,IAC7ByhQ,GAAMz5R,MAAMg4B,EAAS,CACnB5P,GAAI,gBACJhkB,SAAU,IACVqQ,MAAO,CACL6I,OAAQ,oBACRX,QAAS,OACThf,WAAY,UACZqD,MAAO,WAET84Z,UAAW,CACTt8Z,UAAW,UACXD,QAAS,YAEX,EAGEqqB,EAAW4wY,GAAMxoa,OAAO,CAC5BknM,QAAS/pL,EACTo5B,QAAS,CACPg0X,cAAel7U,GAAgBp1F,EAAQ,UAAUA,IAAU,GAC3D,eAAgB,sBAiEpB,OA5DA29B,EAAS2rY,aAAartX,SAAS4gX,KAC5B5gX,IAEGA,EAAStsC,KAAKssC,SAASs0X,YAAc,KACrCt0X,EAAStsC,KAAKssC,SAASs0X,WAAa,MAEpC93X,aAAar6B,QACb+e,OAAO/a,SAAS2rC,KAAO,WAGlB9R,EAAStsC,QAEjBoG,IAEC,GAAKA,EAAMkmC,SAgBJ,GAA8B,MAA1BlmC,EAAMkmC,SAAS4P,OAAgB,CAIxCwkX,EADE,sDAEJ,MAAO,GAAIt6Z,EAAMkmC,SAAS4P,QAAU,KAAO91C,EAAMkmC,SAAS4P,OAAS,IAAK,CAEtE,MAAM2kX,EAAc,iBAAiBz6Z,EAAMkmC,SAAS4P,mCACpDwkX,EAAsBG,EACxB,MACEz6Z,EAAMkmC,UACNlmC,EAAMkmC,SAAS4P,QAAU,KACzB91C,EAAMkmC,SAAS4P,OAAS,MAGxBorB,QAAQlhE,MACN,mCACAA,EAAMkmC,SAAS4P,QAEjBpT,aAAar6B,QACb+e,OAAO/a,SAAS2rC,KAAO,gBAlCvBwgX,GACG/qa,IAAI,iCACJ02F,MAAMu2U,IAILJ,EADE,uJACiC,IAEpC/pP,OAAOtpL,IAINqza,EADE,sDACiC,IA4BzC,OAAO9+X,QAAQuvB,OAAO/qD,EAAM,IAIzB4nB,CAAQ,EAuBX+yY,GAAkB55Z,IAAkC,IAAjC,QAAEgnN,EAAO,eAAE6yM,GAAgB75Z,EAClD,OhGwEK,SAAwBoxB,GAAxB,IAAA1tC,EAAA,UAAwB,IAAA0tC,IAAAA,EAAA,QAAAi+P,EAAAj+P,EAC7B41L,EAD6BqoE,EAAAroE,QAE7B5O,EAF6Bi3E,EAAAwqI,eAE7BA,OAAA,IAAAzhN,EAAiB,SAACrsN,GAAM,OAAAA,CAAA,EAAAqsN,EACxB0nL,EAH6BzwG,EAAAyqI,QAG7BA,OAAA,IAAAh6B,EAAUL,GAAAK,EACVstB,EAJ6B/9H,EAAA+9H,iBAK7BrtB,EAL6B1wG,EAAA0qI,kBAK7BA,OAAA,IAAAh6B,EAAoBJ,GAAAI,EACpBmE,EAN6B70G,EAAA2qI,gBAM7BA,OAAA,IAAA91B,EAAkB,mBAAAA,EAClB+1B,EAP6B5qI,EAAA4qI,aAQpBC,EARoB7qI,EAAAroR,QASZmzZ,EATY9qI,EAAA+qI,gBAUbC,EAVahrI,EAAAm5H,eAW1B8R,EAAAC,GAX0BlrI,EAW1B,CAVH,UACA,iBACA,UACA,mBACA,oBACA,kBACA,eACA,UACA,kBACA,mBAcA,MALqB,qBAAV5tM,OAAyBq4U,IAAYr6B,IAC9Ct/T,QAAQ8qB,KACN,6HAGG,SAAO/7F,EAAK0zC,GAAQ,OAAA23V,GAAA72Y,EAAA,gJAoBtB,OAnBKogG,EAAoDlhD,EAAAkhD,OAA5CkxI,EAA4CpyL,EAAAoyL,SAAlC6+E,EAAkCjxQ,EAAAixQ,MAA3Bn7Q,EAA2BkK,EAAAlK,SAAjBsyL,EAAiBpoL,EAAAooL,OAATviO,EAASm6C,EAAAn6C,KAG1D2jB,GAOEy6X,EAAc,iBAAP33Y,EAAkB,CAAEkd,IAAKld,GAAQA,GAAxCkd,IANFgsM,EAMEyuL,EAAArhW,QANFA,OAAA,IAAA4yK,EAAU,IAAIn2H,QAAQq4U,EAAiB90X,SAAA4yK,EACvC0nL,EAKE+G,EAAAxrY,OALFA,OAAA,IAAAykY,OAAS,EAAAA,EACTC,EAIE8G,EAAAuzB,gBAJFA,OAAA,IAAAr6B,EAAkB,MAAAo6B,EAAAA,EAA0B,OAAAp6B,EAC5CmE,EAGE2C,EAAA2hB,eAHFA,OAAA,IAAAtkB,EAAiB,MAAAm2B,EAAAA,EAAwB36B,GAAAwE,EACzCC,EAEE0C,EAAA7/X,QAFFA,OAAA,IAAAm9X,EAAU+1B,EAAA/1B,EACPhkV,EAAAo6W,GACD1zB,EADC,CANH,MACA,UACA,SACA,kBACA,iBACA,YAGErrY,EAAsBs5X,GAAAgF,GAAAhF,GAAA,GACrBwlC,GADqB,CAExBx2U,OAAAA,IACG3jC,GAGL3a,EAAU,IAAIy8C,QAAQ29S,GAAep6V,IACrC8+V,EAAA9oY,EACG,GAAMq+Z,EAAer0X,EAAS,CAC7BwvL,SAAAA,EACA6+E,MAAAA,EACAn7Q,SAAAA,EACAsyL,OAAAA,EACAviO,KAAAA,YANJ67Y,EAAO9+V,QACJg/V,EAAA97U,QAMMljB,EAGHg1X,EAAgB,SAAC9tX,GACrB,MAAgB,kBAATA,IACNmzV,GAAcnzV,IACbl/C,MAAMiI,QAAQi3C,IACS,oBAAhBA,EAAKvB,OAHd,GAKG3vC,EAAOgqC,QAAQ3vB,IAAI,iBAAmB2kZ,EAAch/Z,EAAOkxC,OAC9DlxC,EAAOgqC,QAAQ74C,IAAI,eAAgBqta,GAGjCQ,EAAch/Z,EAAOkxC,OAASqtX,EAAkBv+Z,EAAOgqC,WACzDhqC,EAAOkxC,KAAOnsC,KAAKjW,UAAUkR,EAAOkxC,KAAMutX,IAGxC5+Z,IACIsB,GAAWyP,EAAI/kB,QAAQ,KAAO,IAAM,IACpCgvC,EAAQ+2X,EACVA,EAAiB/xZ,GACjB,IAAI0nF,gBAAgB68S,GAAevkY,IACvC+Q,GAAOzP,EAAU05B,GAGnBjqB,EAAMwyX,GAAS53K,EAAS56M,GAElBu2B,EAAU,IAAIhI,QAAQvuB,EAAK5Q,GAC3Bi/Z,EAAe,IAAI9/X,QAAQvuB,EAAK5Q,GACtC0+J,EAAO,CAAEv3H,QAAS83X,GAGhBC,GAAW,EACXC,EACE3zZ,GACAI,YAAW,WACTszZ,GAAW,EACX93X,EAAI+kB,OAAA,GACH3gD,oBAEM,iCAAM8yZ,EAAQn3X,kBAAzBwC,EAAWq/V,EAAA97U,oBAEX,kBAAO,CAAP,EAAO,CACLzpD,MAAO,CACL81C,OAAQ2lX,EAAW,gBAAkB,cACrCz7Z,MAAOvY,OAAOk0a,IAEhB1gQ,KAAAA,kBAGEygQ,GAAWxzZ,aAAawzZ,cAExBE,EAAgB11X,EAASriC,QAE/Bo3J,EAAK/0H,SAAW01X,EAGZxiX,EAAuB,oBAGzB,iCAAM5d,QAAQ+sF,IAAI,CAChBszS,EAAe31X,EAAUi1X,GAAiBh3U,MACxC,SAAC3tE,GAAO,OAAAslZ,EAAatlZ,CAAb,IACR,SAACvvB,GAAO,OAAA80a,EAAsB90a,CAAtB,IAIV20a,EAAct+Z,OAAO6mF,MACnB,SAAC3tE,GAAO,OAAA4iC,EAAe5iC,CAAf,IACR,WAAM,cAGV,GAZA+uX,EAAA97U,OAYIsyW,EAAqB,MAAMA,sBAE/B,kBAAO,CAAP,EAAO,CACL/7Z,MAAO,CACL81C,OAAQ,gBACRkmX,eAAgB91X,EAAS4P,OACzBl8C,KAAMw/C,EACNp5C,MAAOvY,OAAOw0a,IAEhBhhQ,KAAAA,YAIJ,MAAO,CAAP,EAAOsuP,EAAerjX,EAAU41X,GAC5B,CACElia,KAAMkia,EACN7gQ,KAAAA,GAEF,CACEj7J,MAAO,CACL81C,OAAQ5P,EAAS4P,OACjBl8C,KAAMkia,GAER7gQ,KAAAA,UAzHmB,EA6H3B,SAAA4gQ,EACE31X,EACAi1X,GACA,OAAA7/B,GAAA,+EACA,MAA+B,oBAApB6/B,EACF,CAAP,EAAOA,EAAgBj1X,KAGD,iBAApBi1X,IACFA,EAAkBL,EAAkB50X,EAASK,SAAW,OAAS,QAG3C,SAApB40X,EAAA,MACW,GAAMj1X,EAAS5oC,gBAC5B,MAAO,CAAP,GADMA,EAAO67M,EAAA1vJ,QACD1kE,OAASuc,KAAK7V,MAAM6R,GAAQ,aAG1C,MAAO,CAAP,EAAO4oC,EAAS5oC,cAAA,EgG9OX4+Z,CAAe,CACpBn0M,UACA6yM,eAAgBA,GAAc,CAAMr0X,GAAYA,IAChD,EAGE+zX,GAAyBtiY,IAC7ByhQ,GAAMz5R,MAAMg4B,EAAS,CACnB5P,GAAI,gBACJhkB,SAAU,IACVqQ,MAAO,CACL6I,OAAQ,oBACRX,QAAS,OACThf,WAAY,UACZqD,MAAO,WAET84Z,UAAW,CACTt8Z,UAAW,UACXD,QAAS,YAEX,EAIS4+Z,GACV5/Z,GACD4wE,eAAOx7E,EAAMgyC,GAA4B,IAADy4X,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAAtBprB,EAAY7/Y,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAChC,MAAMo/Y,EAAY6pB,GAAgBp+Z,GAClC,IAAIxF,QAAe+5Y,EAAUn/Y,EAAMgyC,EAAK4tW,EAAaqrB,WACrD,MAAMA,OACuBp3a,IAA3B+rZ,EAAaqrB,WAA0BrrB,EAAaqrB,UAEtD,IACG7la,GACAA,EAAOiJ,QACmB,gBAAxBjJ,EAAOiJ,MAAM81C,QACY,kBAAxB/+C,EAAOiJ,MAAM81C,QAEjB0iX,GACG/qa,IAAI,iCACJ02F,MAAMu2U,IAEL,MAAMlsX,EACJ,uJACF8rX,GAAsB9rX,GACtBouX,GAAatC,GAAsB9rX,EAAa,IAEjD+hI,OAAOtpL,IAEN,MAAM41a,EACJ,sDACFvC,GAAsBuC,GACtBD,GAAatC,GAAsBuC,EAAa,SAE/C,IACO,QAAXT,EAAArla,EAAO6C,YAAI,IAAAwia,OAAA,EAAXA,EAAa11X,aAAc,MAAkB,QAAX21X,EAAAtla,EAAO6C,YAAI,IAAAyia,OAAA,EAAXA,EAAa31X,YAAa,MACtD,OAAN3vC,QAAM,IAANA,GAAa,QAAPula,EAANvla,EAAQiJ,aAAK,IAAAs8Z,OAAP,EAANA,EAAexmX,SAAU,MAAa,OAAN/+C,QAAM,IAANA,GAAa,QAAPwla,EAANxla,EAAQiJ,aAAK,IAAAu8Z,OAAP,EAANA,EAAezmX,QAAS,IACzD,CAAC,IAADgnX,EAAAC,EAEA,MAAMtC,EAAc,kBACP,QAAXqC,EAAA/la,EAAO6C,YAAI,IAAAkja,OAAA,EAAXA,EAAap2X,cAA0B,QAAhBq2X,EAAIhma,EAAOiJ,aAAK,IAAA+8Z,OAAA,EAAZA,EAAcjnX,oCAE3CwkX,GAAsBG,EACxB,MAAO,IACO,QAAX+B,EAAAzla,EAAO6C,YAAI,IAAA4ia,OAAA,EAAXA,EAAa91X,aAAc,MAAkB,QAAX+1X,EAAA1la,EAAO6C,YAAI,IAAA6ia,OAAA,EAAXA,EAAa/1X,YAAa,MAChD,QAAZg2X,EAAA3la,EAAOiJ,aAAK,IAAA08Z,OAAA,EAAZA,EAAc5mX,SAAU,MAAmB,QAAZ6mX,EAAA5la,EAAOiJ,aAAK,IAAA28Z,OAAA,EAAZA,EAAc7mX,QAAS,IACvD,CAAC,IAADknX,EAAAC,EACA/7V,QAAQlhE,MACN,oCACW,QAAXg9Z,EAAAjma,EAAO6C,YAAI,IAAAoja,OAAA,EAAXA,EAAat2X,cAA0B,QAAhBu2X,EAAIlma,EAAOiJ,aAAK,IAAAi9Z,OAAA,EAAZA,EAAcnnX,SAE3CpT,aAAar6B,QACb+e,OAAO/a,SAAS2rC,KAAO,SACzB,CAEA,OAAOjhD,CACT,ECrLWmma,GAAiB7mB,GAAU,CACtCnT,YAAa,YACb4N,UAAWqrB,GAAoB,CAAEp0M,QAASsxL,KAC1C50W,UAAY+d,IAAO,CACjB26W,gBAAiB36W,EAAQprB,MAAM,CAC7BA,MAAOr2B,IAAA,IAAC,MAAE20E,EAAK,KAAEi9G,GAAM5xL,EAAA,MAAM,CAC3BoM,IAAKosY,GAAcwE,kBACnBlnW,OAAQ,MACRz6C,OAAQ,CAAEs5E,QAAOi9G,QAClB,IAEHyqO,mBAAoB56W,EAAQprB,MAAM,CAChCA,MAAO,WAAa,MAAM,CACxBjqB,IAAKosY,GAAcyE,qBAAuB,KAD7BtsZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAEhBmlD,OAAQ,MACT,SAKM,wBAAEwmX,GAAuB,2BAAEC,IACtCJ,GCjBF,GAjBsB,CACpBK,uBACE,qEACFC,kBACE,+DACFC,2BACE,+DACFC,sBACE,kEACFC,oBACE,gEACFC,uBACE,2DACFC,oBACE,uEC6HJ,GApGctyC,KACZ,MAAM,KAAE3xX,EAAI,UAAEssQ,GAAcm3J,GAAwB,CAClD3nV,MAAO,GACPi9G,KAAM,KAGDmrO,EAAiBC,IADPx0G,MAC6B/sI,EAAAA,EAAAA,UAAS,CACrD,CACE1hB,IAAKkjQ,GACL1vO,MAAO,6BACPvlE,KAAM,qPAER,CACE+xC,IAAKmjQ,GACL3vO,MAAO,gCACPvlE,KAAM,gQAER,CACE+xC,IAAKojQ,GACL5vO,MAAO,mBACPvlE,KAAM,0RAER,CACE+xC,IAAKqjQ,GACL7vO,MAAO,4BACPvlE,KAAM,uPAGHq1S,EAAYC,IAAiB7hP,EAAAA,EAAAA,UAAS,IAW7C,OATAN,EAAAA,EAAAA,YAAU,KAAO,IAADoiP,EACd,MACMjoY,EADMjP,OAAO/a,SAAS2rC,KACVhpD,MAAM,KACKqnC,EAAMA,EAAMjuC,QAAQ,cAAgB,GAC1B,IAADm2a,EAAAC,EAAH,KAA3B,OAAJ5ka,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,OAAV,EAAJA,EAAgB9D,aAClB6D,EAAkB,OAAJzka,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,GAAM,QAANC,EAAdD,EAAgB3ka,YAAI,IAAA4ka,OAAhB,EAAJA,EAAsB5ka,KACtC,KAIAsR,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oEAAmEvO,UAChF6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK4nV,GAAclB,uBACnB58K,IAAI,kBACJ1oP,UAAU,oCAKhBsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4EAA2EvO,SAAC,wBAG1FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2EAA0EvO,SAAA,EACvF6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,+IACtBiuQ,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,cAAavO,UAC1B6hB,EAAAA,GAAAA,KAACijN,GAAM,MAGT4vM,EAAWpwa,KAAI,CAACmqB,EAAMxxB,KAElB4kB,EAAAA,GAAAA,KAACsnQ,GAAAA,GAAI,CAAAnpR,UACH6hB,EAAAA,GAAAA,KAACmzZ,GAAe,CACdvmZ,KAAM,IACDA,EACH49K,SAAU,aAEZvsM,KAAK,WANE7C,SAanBukB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,gJACvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gDAA+CvO,SAAA,EAC5D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mEAAkEvO,SAAC,wDAGjFwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,mEAAkEvO,SAAA,CAAC,+MAIxD,WAG1B6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2HAA0HvO,SACtIo0a,EAAgB9va,KAAI,CAACmqB,EAAMxxB,KAC1B4kB,EAAAA,GAAAA,KAACozZ,GAAY,CAACxmZ,KAAMA,GAAWxxB,QAGnC4kB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,4JAErB,EC1HG2ma,oBAAYvoB,GAAU,CACjCnT,YAAa,OACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,KAEX50W,UAAY+d,IAAO,CACjBq8W,WAAYr8W,EAAQprB,MAAM,CACxBA,MAAOr2B,IAAA,IAAC,MAAE20E,EAAK,KAAEi9G,GAAM5xL,EAAA,MAAM,CAC3BoM,IAAKosY,GAAc0E,cACnBpnW,OAAQ,MACRz6C,OAAQ,CAAEs5E,QAAOi9G,QAClB,IAEHmsO,cAAet8W,EAAQprB,MAAM,CAC3BA,MAAO,WAAa,MAAM,CACxBjqB,IAAKosY,GAAc8E,gBAAkB,KADxB3sZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAEhBmlD,OAAQ,MACT,UAKM,mBAAEkoX,GAAkB,sBAAEC,IAA0BJ,GC+F7D,GA3FcrzC,KACZ,MAAM,KAAE3xX,EAAI,UAAEssQ,GAAc64J,GAAmB,CAC7CrpV,MAAO,GACPi9G,KAAM,KAGDmrO,EAAiBC,IADPx0G,MAC6B/sI,EAAAA,EAAAA,UAAS,CACrD,CACE1hB,IAAKkjQ,GACL1vO,MAAO,6BACPvlE,KAAM,qPAER,CACE+xC,IAAKmjQ,GACL3vO,MAAO,gCACPvlE,KAAM,gQAER,CACE+xC,IAAKojQ,GACL5vO,MAAO,mBACPvlE,KAAM,0RAER,CACE+xC,IAAKqjQ,GACL7vO,MAAO,4BACPvlE,KAAM,uPAGHk2S,EAAOC,IAAY1iP,EAAAA,EAAAA,UAAS,IAUnC,OARAN,EAAAA,EAAAA,YAAU,KAAO,IAADoiP,EACd,MACMjoY,EADMjP,OAAO/a,SAAS2rC,KACVhpD,MAAM,KACKqnC,EAAMA,EAAMjuC,QAAQ,cAAgB,GAC1B,IAADm2a,EAAAC,EAAH,KAA3B,OAAJ5ka,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,OAAV,EAAJA,EAAgB9D,aAClB0E,EAAa,OAAJtla,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,GAAM,QAANC,EAAdD,EAAgB3ka,YAAI,IAAA4ka,OAAhB,EAAJA,EAAsB5ka,KACjC,KAGAsR,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpC6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2DAA0DvO,UACvE6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK4nV,GAAcjB,kBACnB78K,IAAI,kBACJ1oP,UAAU,oCAIhBsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4EAA2EvO,SAAC,mBAG1FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2EAA0EvO,SAAA,EACvF6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,+IACtBiuQ,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,cAAavO,UAC1B6hB,EAAAA,GAAAA,KAACijN,GAAM,MAGTywM,EAAMjxa,KAAI,CAACmqB,EAAMxxB,KAEb4kB,EAAAA,GAAAA,KAACsnQ,GAAAA,GAAI,CAAAnpR,UACH6hB,EAAAA,GAAAA,KAACmzZ,GAAe,CAACvmZ,KAAMA,EAAM3uB,KAAK,WADzB7C,SAOnBukB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,gJACvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gDAA+CvO,SAAA,EAC5D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mEAAkEvO,SAAC,6DAGjFwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,mEAAkEvO,SAAA,CAAC,gHAEnC,WAI/C6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2HAA0HvO,SACtIo0a,EAAgB9va,KAAI,CAACmqB,EAAMxxB,KAC1B4kB,EAAAA,GAAAA,KAACozZ,GAAY,CAACxmZ,KAAMA,GAAWxxB,QAGnC4kB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,4JAErB,MC9FV,MACA,GAAe,IAA0B,2DCAzC,MACA,GAAe,IAA0B,4DCf5Bkna,GAA4BrxZ,IACvCA,EAAMi2J,iBACN,MAAM6M,EAAkB9iK,EAAM0pH,cAAc4nS,uBACZ,UAA5BxuP,EAAgBpiK,UAC2B,aAAzCoiK,EAAgBniL,aAAa,SAC/BmiL,EAAgBtqL,aAAa,OAAQ,QACrCwnB,EAAM0pH,cAAc3D,UAAY,YAAYwrS,mCAE5CzuP,EAAgBtqL,aAAa,OAAQ,YACrCwnB,EAAM0pH,cAAc3D,UAAY,YAAYyrS,kCAEhD,EAIWC,GAAgBlyZ,GAEzB,8DACgBmC,KAAKnC,GAIZmyZ,GAAmBn6W,GACR,yBACD71C,KAAK61C,GAKrB,SAASo6W,GAAuB33a,GAErC,MADqB,wCACD0nB,KAAK1nB,EAC3B,CAEO,MAAM43a,GAAoB53a,GACxB,QAAQ0nB,KAAK1nB,GAGT63a,GAAkB,IAAIltZ,OAAO,WAC7BmtZ,GAAkB,IAAIntZ,OAAO,WAC7BotZ,GAAe,IAAIptZ,OAAO,QAC1BqtZ,GAAe,IAAIrtZ,OAAO,UAC1BstZ,GAAsB,IAAIttZ,OAAO,0BAEjCutZ,GAAoB1yZ,IAE/B,MAAM2yZ,EAAmBN,GAAgBnwZ,KAAKlC,GACxC4yZ,EAAmBN,GAAgBpwZ,KAAKlC,GACxC6yZ,EAAgBN,GAAarwZ,KAAKlC,GAClC8yZ,EAAgBN,GAAatwZ,KAAKlC,GAClC+yZ,EAAqBN,GAAoBvwZ,KAAKlC,GAGpD,OACE2yZ,GACAC,GACAC,GACAC,GACAC,CAAkB,EAGc,IAAI5tZ,OACtC,OAAO,CACLqtZ,GAAax6Y,OACbq6Y,GAAgBr6Y,OAChBu6Y,GAAav6Y,OACby6Y,GAAoBz6Y,QACpB/5B,KAAK,eAkBF,SAAS+0a,GAAoBC,EAAgBC,GAClD,OAAOj5a,KAAKgnE,KAAKgyW,EAAiBC,EACpC,CAEO,MAAMC,GAAoBtzV,UAC/B,MAAMvlD,EAAW84Y,KACjB,IAAK,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACF,MAAMx8V,QAAYh9C,EAASl7B,KACzB2sZ,GAAWE,GAAc4G,yBACzB,CACEkhB,IAAK,IAI2B,IAADC,EAAnC,GAAgC,IAAhB,QAAZX,EAAA/7V,EAAI1+B,gBAAQ,IAAAy6X,OAAA,EAAZA,EAAcnG,YAChB,MAAM,IAAI9ja,OACI,QAAZ4qa,EAAA18V,EAAI1+B,gBAAQ,IAAAo7X,OAAA,EAAZA,EAActpY,UAAW,qCAI7B,IAAIupY,EAAwB,QAAfX,EAAGh8V,EAAI1+B,gBAAQ,IAAA06X,GAAM,QAANC,EAAZD,EAAchna,YAAI,IAAAina,GAAgB,QAAhBC,EAAlBD,EAAoBW,sBAAc,IAAAV,OAAtB,EAAZA,EAAoC9xa,MAAM,KAAK,GAC3Dyya,EAA8B,QAAfV,EAAGn8V,EAAI1+B,gBAAQ,IAAA66X,GAAM,QAANC,EAAZD,EAAcnna,YAAI,IAAAona,GAAc,QAAdC,EAAlBD,EAAoBU,oBAAY,IAAAT,OAApB,EAAZA,EAAkCjya,MAAM,KAAK,GAC/D2ya,EAAuB,QAAfT,EAAGt8V,EAAI1+B,gBAAQ,IAAAg7X,GAAM,QAANC,EAAZD,EAActna,YAAI,IAAAuna,GAAU,QAAVC,EAAlBD,EAAoBQ,gBAAQ,IAAAP,OAAhB,EAAZA,EAA8Bpya,MAAM,KAAK,GACxD2ya,EAAWnna,OAAOmna,GAAU7tZ,QAAQ,IAEpC8tZ,eAAe9tH,QAAQ,qBAAsBytH,GAC7CK,eAAe9tH,QAAQ,mBAAoB2tH,GAC3CG,eAAe9tH,QAAQ,eAAgB6tH,EACzC,CAAE,MAAO16a,IACPi6E,QAAQlhE,MAAM/Y,GAChB,GAGW46a,GAAyBC,IAAS,IAADC,EAC5C,QAAWv8a,GAAPs8a,EACF,MAAM,IAAIpra,MAAM,+BAKlB,IAAIsra,EAA+B,QAAdD,EAAGt6a,OAAOq6a,UAAI,IAAAC,OAAA,EAAXA,EAAah6a,QAAQ,WAAY,IAGrDi6a,EAAkBhza,MAAM,KAAKjK,OAAS,IACxCi9a,EACEA,EAAkBhza,MAAM,KAAK,GAAK,IAAMgza,EAAkBhza,MAAM,KAAK,IAOzE,OAJqBsS,KAAK7V,MAAMm2a,eAAejuH,QAAQ,uBAExBquH,GAEdluZ,QAAQ,EAAE,EAIhBmuZ,GAA+BH,IAAS,IAADI,EAClD,QAAW18a,GAAPs8a,EACF,MAAM,IAAIpra,MAAM,+BAKlB,IAAIsra,EAA+B,QAAdE,EAAGz6a,OAAOq6a,UAAI,IAAAI,OAAA,EAAXA,EAAan6a,QAAQ,WAAY,IAGrDi6a,EAAkBhza,MAAM,KAAKjK,OAAS,IACxCi9a,EACEA,EAAkBhza,MAAM,KAAK,GAAK,IAAMgza,EAAkBhza,MAAM,KAAK,IAOzE,OAJqBsS,KAAK7V,MAAMm2a,eAAejuH,QAAQ,uBAExBquH,CAEf,EAGLG,GAA6BL,IAAS,IAADM,EAChD,QAAW58a,GAAPs8a,EACF,MAAM,IAAIpra,MAAM,+BAKlB,IAAIsra,EAA+B,QAAdI,EAAG36a,OAAOq6a,UAAI,IAAAM,OAAA,EAAXA,EAAar6a,QAAQ,WAAY,IAGrDi6a,EAAkBhza,MAAM,KAAKjK,OAAS,IACxCi9a,EACEA,EAAkBhza,MAAM,KAAK,GAAK,IAAMgza,EAAkBhza,MAAM,KAAK,IAGzE,MAAMqza,EAAe/ga,KAAK7V,MAAMm2a,eAAejuH,QAAQ,uBACjD2uH,EAAgBhha,KAAK7V,MAAMm2a,eAAejuH,QAAQ,qBAKxD,OAHiBn5S,OAAQ6na,EAAeC,EAAiBN,EAGxC,EAGNO,GAAkBA,IACtBjha,KAAK7V,MAAMm2a,eAAejuH,QAAQ,iBAG9B6uH,GAA0BC,IAAW,IAADC,EAE/C,IAAIC,EAAsB,QAARD,EADlBD,EAAQh7a,OAAOg7a,UACW,IAAAC,OAAA,EAALA,EAAO36a,QAAQ,WAAY,IAQhD,OALI46a,EAAe3za,MAAM,KAAKjK,OAAS,IACrC49a,EACEA,EAAe3za,MAAM,KAAK,GAAK,IAAM2za,EAAe3za,MAAM,KAAK,IAG5D2za,CAAc,EAShB,SAASC,GAAqBr1Z,GAEnC,MACMs1Z,EADoBroa,OAAO+S,GAAQuG,QAAQ,GACV7hB,WAKvC,OAFsBkhB,WAAW0vZ,EAGnC,CChOO,MAAMC,GAAczsB,GAAU,CACnCnT,YAAa,cACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB8iW,SAAU,CAAC,iBACX5kW,UAAY+d,IAAO,CACjBugX,sBAAuBvgX,EAAQprB,MAAM,CACnCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcc,iBACnBxjW,OAAQ,UAGZmsX,0BAA2BxgX,EAAQgnV,SAAS,CAC1CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAce,cACnBzjW,OAAQ,QACRpJ,KAAMmO,MAGVqnX,iBAAkBzgX,EAAQgnV,SAAS,CACjCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcW,mBACnBrjW,OAAQ,OACRpJ,KAAMmO,MAGVsnX,+BAAgC1gX,EAAQgnV,SAAS,CAC/CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAca,cACnBvjW,OAAQ,QACRpJ,KAAMmO,MAGVunX,8BAA+B3gX,EAAQgnV,SAAS,CAC9CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcgB,uBACnB1jW,OAAQ,QACRpJ,KAAM,CACJ21X,SAAUxnX,OAIhBynX,8BAA+B7gX,EAAQgnV,SAAS,CAC9CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAciB,uBACnB3jW,OAAQ,QACRpJ,KAAMmO,MAGV0nX,0BAA2B9gX,EAAQgnV,SAAS,CAC1CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAckB,8BACnB5jW,OAAQ,QACRpJ,KAAMmO,MAGV2nX,yBAA0B/gX,EAAQprB,MAAM,CACtCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcmB,oBACnB7jW,OAAQ,UAGZ2sX,mBAAoBhhX,EAAQprB,MAAM,CAChCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcoB,cACnB9jW,OAAQ,UAGZ4sX,4BAA6BjhX,EAAQgnV,SAAS,CAC5CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcsB,oBACnBhkW,OAAQ,QACRpJ,KAAMmO,MAGV8nX,sBAAuBlhX,EAAQgnV,SAAS,CACtCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcuB,cACnBjkW,OAAQ,QACRpJ,KAAM,CACJ3oD,KAAM82D,OAIZ+nX,4BAA6BnhX,EAAQprB,MAAM,CACzCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcqB,wBACnB/jW,OAAQ,UAGZ+sX,2BAA4BphX,EAAQprB,MAAM,CACxCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAc6D,uBACnBvmW,OAAQ,UAGZgtX,+BAAgCrhX,EAAQprB,MAAM,CAC5CA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAc8D,mCACnBxmW,OAAQ,UAGZitX,eAAgBthX,EAAQgnV,SAAS,CAC/BpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcmE,mBACnB7mW,OAAQ,OACRpJ,KAAM,CACJs2X,SAAUnoX,EAAQmoX,SAClBt4Z,KAAMmwC,EAAQnwC,UAIpBu4Z,oBAAqBxhX,EAAQgnV,SAAS,CACpCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcoE,iBACnB9mW,OAAQ,OACRpJ,KAAM,CACJw2X,OAAQroX,OAIdsoX,qBAAsB1hX,EAAQgnV,SAAS,CACrCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAc6H,uBACnBvqW,OAAQ,YAMZstX,cAAe3hX,EAAQgnV,SAAS,CAC9BpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcO,gBACnBjjW,OAAQ,WAMZutX,WAAY5hX,EAAQgnV,SAAS,CAC3BpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcQ,YACnBljW,OAAQ,QACRpJ,KAAM,CACJ42X,IAAKzoX,EAAQyoX,IACb/2Z,SAAUsuC,EAAQtuC,cAIxBg3Z,kBAAmB9hX,EAAQprB,MAAM,CAC/BA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcgI,qBACnB1qW,OAAQ,QAEVw8V,aAAc,CAAC,mBAEjBkxB,qBAAsB/hX,EAAQgnV,SAAS,CACrCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAciI,wBACnB3qW,OAAQ,OACRpJ,KAAMmO,IAER4oX,gBAAiB,CAAC,mBAEpBC,wBAAyBjiX,EAAQgnV,SAAS,CACxCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAckI,2BACnB5qW,OAAQ,OACRpJ,KAAMmO,IAER4oX,gBAAiB,CAAC,wBAKX,8BACXE,GAA6B,kCAC7BC,GAAiC,qCACjCC,GAAoC,4BACpCC,GAA2B,0CAC3BC,GAAyC,yCACzCC,GAAwC,yCACxCC,GAAwC,qCACxCC,GAAoC,iCACpCC,GAAgC,2BAChCC,GAA0B,uCAC1BC,GAAsC,iCACtCC,GAAgC,oCAChCC,GAAmC,mCACnCC,GAAkC,uCAClCC,GAAsC,uCACtCC,GAAsC,0BACtCC,GAAyB,+BACzBC,GAA8B,gCAC9BC,GAA+B,yBAC/BC,GAAwB,sBACxBC,GAAqB,0BACrBC,GAAyB,gCACzBC,GAA+B,mCAC/BC,IACEnD,GC7EJ,GAxIsB/ha,IAef,IAADmla,EAAAC,EAAA,IAfiB,UACrBC,EAAS,MACT93O,EAAK,SACL+3O,EAAQ,KACRC,EAAI,SACJvwO,EAAQ,UACRwwO,EAAS,MACTviJ,EAAK,UACLwiJ,EAAS,UACTC,EAAS,MACThE,EAAK,KACLiE,EAAI,uBACJC,EAAsB,QACtBC,GAAU,EAAK,OACfC,EAAS,IACV9la,EACC,MAAM+la,EAAeP,EAAY,KAAW,OAALj4O,QAAK,IAALA,OAAK,EAALA,EAAOt/L,MAAM,KAAKzD,KAAK,MAG9D,IACEq4a,GACEhqa,KAAMmta,EAAc,WAAE5wB,EAAU,UAAE/N,EAAS,QAAEp7T,IAC7Cw4V,KAEwE,IAADwB,EAAAC,GAAtE9wB,GAAc/N,GAAqD,IAA1B,QAAd89B,EAAAa,SAAc,IAAAb,GAAU,QAAVC,EAAdD,EAAgBhgY,gBAAQ,IAAAigY,OAAV,EAAdA,EAA0B3L,aACxDuM,EAA+B,QAAjBC,EAAGD,SAAc,IAAAC,GAAU,QAAVC,EAAdD,EAAgB9gY,gBAAQ,IAAA+gY,OAAV,EAAdA,EAA0Brta,KAC3Cmta,EAAiBA,EAAe/4a,KAAKmqB,GAASA,EAAK+uZ,cAEnDH,EAAiB,GAOnB,IAAII,GAAgB,EASpB,OAPIJ,EAAej0X,SAAS+zX,KAC1BM,GAAgB,IAGlBjrP,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkBiwH,GAA4B,GAClE,KAEDr4Z,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAI,GACDqkR,EAIG,IAHa,aAAbtwO,EACE+wO,EACAP,EAAY,IAAMC,EAAY,IAAMC,IAG5C7+Q,QAvBgBw/Q,KACdf,GACFM,GAA0BA,GAAuB,EACnD,EAoBuBj9a,UAErBwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAWmua,EAAUruG,cAAcruU,SAAA,EACtC6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAWmua,EAAUpuG,eACrBvjT,MAAO,CACLu6W,gBAAiB,QAAQhrG,OAE3BpnH,QAASzgK,IAAiB,IAAhB,OAAEmS,GAAQnS,EAElBmS,EAAOmG,MAAM3K,QAAU,MAAM,EAC7BpgB,SAEQ,UAAT48a,GACC/6Z,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oBAAmBvO,UAChC6hB,EAAAA,GAAAA,KAAA,OAAKsrE,68JAAqB8pK,IAAI,iBAEpB,OAAVqjC,GACFz4Q,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,KAEA3iX,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKmtM,EAAO/rR,UAAU,0CAG/BsT,EAAAA,GAAAA,KAAA,MAAI+iL,MAAOA,EAAOr2L,UAAWmua,EAAUnuG,eAAevuU,UFwI7B6N,EEvIL+2L,EFuIUhmD,EEvIH,IFwI1B,OAAH/wI,QAAG,IAAHA,OAAG,EAAHA,EAAKxS,QAASujJ,GACN,OAAH/wI,QAAG,IAAHA,OAAG,EAAHA,EAAKwb,UAAU,EAAGu1H,EAAY,IAAK,MAErC/wI,KEzIA4va,IACC57Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,wFAAuFvO,SAAC,qBAIxGy9a,IACCd,GACD5D,GACuB,QAAvBA,EAAMhta,gBACJ8V,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,yEAAwEvO,SAAC,UAI3Fy9a,IACCd,GACD5D,GACuB,QAAvBA,EAAMhta,gBACJ8V,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,2FAA0FvO,SACvGk5a,GACCf,GAAsBY,EAAMzza,MAAM,KAAK,KADxC4za,WAKCpoa,OAAOioa,EAAMzza,MAAM,KAAK,IAAI8kB,QAAQ,GACpC,IACA2uZ,EAAMzza,MAAM,KAAK,GACjB,OAcPq3a,IACC96Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,iEAAgEvO,SAAC,gBAIvE,6BAAV4kM,IAAwC/iL,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,KAC7B,2BAAV5/L,IAAsC/iL,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,KACzB,aAAbn4L,IACCxqL,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+DAA8DvO,SAAC,qBFqFpF,IAA0B6N,EAAK+wI,CEhF3B,EC/HX,GALsBvnI,IAA0B,IAAzB,SAACsma,EAAQ,QAAEC,GAAQvma,EACxC,OAAOwK,EAAAA,GAAAA,KAAA,UAAQtT,UAAWova,EAAS39a,SAAE49a,GAAiB,ECqCxD,GApCgBC,KAEZh8Z,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCAA+BvO,UAC5CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kCAAiCvO,SAAA,EAC9C6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,0BAAyBvO,SAAC,4CAGvC6hB,EAAAA,GAAAA,KAACokT,GAAI,CAAC3tK,GAAG,eAAct4J,UACrB6hB,EAAAA,GAAAA,KAACi8Z,GAAa,CACZH,SAAS,uUAmBTC,QAAQ,iFClCpB,SAHA,SAAyBh8a,GACvB,MAA0B,kBAAZA,CAChB,ECmBA,SARA,SAA0Bu3J,EAAa7/H,EAAYna,GACjD,YAAoBrjB,IAAhBq9J,GAA6B4kR,GAAgB5kR,GACxC7/H,GAEF5hB,EAAAA,GAAAA,GAAS,CAAC,EAAG4hB,EAAY,CAC9Bna,YAAYzH,EAAAA,GAAAA,GAAS,CAAC,EAAG4hB,EAAWna,WAAYA,IAEpD,ECNA,SAVA,SAA8Bkb,GAA0B,IAAlB2jZ,EAAWh2a,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAClD,QAAelM,IAAXu+B,EACF,MAAO,CAAC,EAEV,MAAMhtB,EAAS,CAAC,EAIhB,OAHAnP,OAAO4pB,KAAKuS,GAAQvP,QAAOhN,GAAQA,EAAKrZ,MAAM,aAAuC,oBAAjB41B,EAAOvc,KAAyBkga,EAAY50X,SAAStrC,KAAOvhB,SAAQuhB,IACtIzQ,EAAOyQ,GAAQuc,EAAOvc,EAAK,IAEtBzQ,CACT,ECCA,SAVA,SAA2BgtB,GACzB,QAAev+B,IAAXu+B,EACF,MAAO,CAAC,EAEV,MAAMhtB,EAAS,CAAC,EAIhB,OAHAnP,OAAO4pB,KAAKuS,GAAQvP,QAAOhN,KAAUA,EAAKrZ,MAAM,aAAuC,oBAAjB41B,EAAOvc,MAAuBvhB,SAAQuhB,IAC1GzQ,EAAOyQ,GAAQuc,EAAOvc,EAAK,IAEtBzQ,CACT,ECqDA,SApDA,SAAwB4wa,GACtB,MAAM,aACJC,EAAY,gBACZC,EAAe,kBACfC,EAAiB,uBACjBC,EAAsB,UACtB9va,GACE0va,EACJ,IAAKC,EAAc,CAGjB,MAAMI,GAAgB58Z,EAAAA,GAAAA,GAAwB,MAAnBy8Z,OAA0B,EAASA,EAAgB5va,UAAWA,EAAqC,MAA1B8va,OAAiC,EAASA,EAAuB9va,UAAgC,MAArB6va,OAA4B,EAASA,EAAkB7va,WACjOgwa,GAAc7ma,EAAAA,GAAAA,GAAS,CAAC,EAAsB,MAAnByma,OAA0B,EAASA,EAAgBpzZ,MAAiC,MAA1BszZ,OAAiC,EAASA,EAAuBtzZ,MAA4B,MAArBqzZ,OAA4B,EAASA,EAAkBrzZ,OACpNhrB,GAAQ2X,EAAAA,GAAAA,GAAS,CAAC,EAAGyma,EAAiBE,EAAwBD,GAOpE,OANIE,EAAcjjb,OAAS,IACzB0E,EAAMwO,UAAY+va,GAEhBpgb,OAAO4pB,KAAKy2Z,GAAaljb,OAAS,IACpC0E,EAAMgrB,MAAQwzZ,GAET,CACLx+a,QACAy+a,iBAAa1ib,EAEjB,CAKA,MAAM2ib,EAAgBC,IAAqBhna,EAAAA,GAAAA,GAAS,CAAC,EAAG2ma,EAAwBD,IAC1EO,EAAsCC,GAAkBR,GACxDS,EAAiCD,GAAkBP,GACnDS,EAAoBZ,EAAaO,GAMjCH,GAAgB58Z,EAAAA,GAAAA,GAA0B,MAArBo9Z,OAA4B,EAASA,EAAkBvwa,UAA8B,MAAnB4va,OAA0B,EAASA,EAAgB5va,UAAWA,EAAqC,MAA1B8va,OAAiC,EAASA,EAAuB9va,UAAgC,MAArB6va,OAA4B,EAASA,EAAkB7va,WACnSgwa,GAAc7ma,EAAAA,GAAAA,GAAS,CAAC,EAAwB,MAArBona,OAA4B,EAASA,EAAkB/zZ,MAA0B,MAAnBozZ,OAA0B,EAASA,EAAgBpzZ,MAAiC,MAA1BszZ,OAAiC,EAASA,EAAuBtzZ,MAA4B,MAArBqzZ,OAA4B,EAASA,EAAkBrzZ,OAClRhrB,GAAQ2X,EAAAA,GAAAA,GAAS,CAAC,EAAGona,EAAmBX,EAAiBU,EAAgCF,GAO/F,OANIL,EAAcjjb,OAAS,IACzB0E,EAAMwO,UAAY+va,GAEhBpgb,OAAO4pB,KAAKy2Z,GAAaljb,OAAS,IACpC0E,EAAMgrB,MAAQwzZ,GAET,CACLx+a,QACAy+a,YAAaM,EAAkB93a,IAEnC,EC1DA,SANA,SAA+B+3a,EAAgB5/Z,EAAY6/Z,GACzD,MAA8B,oBAAnBD,EACFA,EAAe5/Z,EAAY6/Z,GAE7BD,CACT,ECLMrra,GAAY,CAAC,cAAe,oBAAqB,aAAc,0BAmCrE,SAtBA,SAAsBuqa,GACpB,IAAIgB,EACJ,MAAM,YACF9lR,EAAW,kBACXilR,EAAiB,WACjBj/Z,EAAU,uBACV+/Z,GAAyB,GACvBjB,EACJzmX,GAAOvhD,EAAAA,GAAAA,GAA8Bgoa,EAAYvqa,IAC7Cyra,EAA0BD,EAAyB,CAAC,EAAIE,GAAsBhB,EAAmBj/Z,IAErGpf,MAAOwM,EAAW,YAClBiya,GACEa,IAAe3na,EAAAA,GAAAA,GAAS,CAAC,EAAG8/C,EAAM,CACpC4mX,kBAAmBe,KAEfn4a,GAAMg3B,EAAAA,GAAAA,GAAWwgZ,EAAwC,MAA3BW,OAAkC,EAASA,EAAwBn4a,IAA6D,OAAvDi4a,EAAwBhB,EAAWE,sBAA2B,EAASc,EAAsBj4a,KAI1M,OAHcs4a,GAAiBnmR,GAAazhJ,EAAAA,GAAAA,GAAS,CAAC,EAAGnL,EAAa,CACpEvF,QACEmY,EAEN,kBC7BA,MAAMoga,GAAqB,CAAC,QAAS,SAAU,WAAY,UAAW,SAAU,aAAc,kBAAmB,kBAAmB,oDAAoD19a,KAAK,KAwC7L,SAAS29a,GAAmB5/a,GAC1B,MAAM6/a,EAAkB,GAClBC,EAAkB,GAgBxB,OAfA76a,MAAM/G,KAAK8B,EAAKgF,iBAAiB26a,KAAqBhjb,SAAQ,CAACoD,EAAM1C,KACnE,MAAM0ib,EA3CV,SAAqBhgb,GACnB,MAAMigb,EAAe7ua,SAASpR,EAAKoF,aAAa,aAAe,GAAI,IACnE,OAAK+L,OAAOE,MAAM4ua,GAYW,SAAzBjgb,EAAKmiL,kBAAiD,UAAlBniL,EAAK6iF,UAA0C,UAAlB7iF,EAAK6iF,UAA0C,YAAlB7iF,EAAK6iF,WAA6D,OAAlC7iF,EAAKoF,aAAa,YAC3I,EAEFpF,EAAKynK,SAdHw4Q,CAeX,CAyByBC,CAAYlgb,IACX,IAAlBggb,GAXR,SAAyChgb,GACvC,QAAIA,EAAKoU,UAA6B,UAAjBpU,EAAKmlB,SAAqC,WAAdnlB,EAAKG,MAfxD,SAA4BH,GAC1B,GAAqB,UAAjBA,EAAKmlB,SAAqC,UAAdnlB,EAAKG,KACnC,OAAO,EAET,IAAKH,EAAKuG,KACR,OAAO,EAET,MAAM45a,EAAWj6a,GAAYlG,EAAKwlB,cAAc1d,cAAc,sBAAsB5B,KACpF,IAAIk6a,EAASD,EAAS,UAAUngb,EAAKuG,kBAIrC,OAHK65a,IACHA,EAASD,EAAS,UAAUngb,EAAKuG,WAE5B65a,IAAWpgb,CACpB,CAE6Eqgb,CAAmBrgb,GAIhG,CAMgCsgb,CAAgCtgb,KAGvC,IAAjBggb,EACFF,EAAgB7jb,KAAK+D,GAErB+/a,EAAgB9jb,KAAK,CACnBskb,cAAejjb,EACfmqK,SAAUu4Q,EACVhgb,KAAMA,IAEV,IAEK+/a,EAAgB9vZ,MAAK,CAACxe,EAAGmgB,IAAMngB,EAAEg2J,WAAa71I,EAAE61I,SAAWh2J,EAAE8ua,cAAgB3uZ,EAAE2uZ,cAAgB9ua,EAAEg2J,SAAW71I,EAAE61I,WAAU9iK,KAAI8M,GAAKA,EAAEzR,OAAMiG,OAAO65a,EACzJ,CACA,SAASU,KACP,OAAO,CACT,CAoQA,SA/PA,SAAmBpgb,GACjB,MAAM,SACJC,EAAQ,iBACRogb,GAAmB,EAAK,oBACxBC,GAAsB,EAAK,oBAC3BC,GAAsB,EAAK,YAC3BC,EAAcf,GAAkB,UAChC5hY,EAAYuiY,GAAgB,KAC5B7jZ,GACEv8B,EACEygb,EAAyB/5a,EAAAA,QAAa,GACtCg6a,EAAgBh6a,EAAAA,OAAa,MAC7Bi6a,EAAcj6a,EAAAA,OAAa,MAC3Bk6a,EAAgBl6a,EAAAA,OAAa,MAC7Bm6a,EAAwBn6a,EAAAA,OAAa,MAGrCo6a,EAAYp6a,EAAAA,QAAa,GACzBq6a,EAAUr6a,EAAAA,OAAa,MAEvB64R,GAAYthQ,EAAAA,GAAAA,GAAWh+B,EAASgH,IAAK85a,GACrCC,EAAct6a,EAAAA,OAAa,MACjCA,EAAAA,WAAgB,KAET61B,GAASwkZ,EAAQp5a,UAGtBm5a,EAAUn5a,SAAW04a,EAAgB,GACpC,CAACA,EAAkB9jZ,IACtB71B,EAAAA,WAAgB,KAEd,IAAK61B,IAASwkZ,EAAQp5a,QACpB,OAEF,MAAMwd,GAAMC,EAAAA,GAAAA,GAAc27Z,EAAQp5a,SAYlC,OAXKo5a,EAAQp5a,QAAQo4I,SAAS56H,EAAI6pJ,iBAC3B+xQ,EAAQp5a,QAAQ07H,aAAa,aAIhC09S,EAAQp5a,QAAQ9K,aAAa,WAAY,MAEvCikb,EAAUn5a,SACZo5a,EAAQp5a,QAAQkN,SAGb,KAEA0ra,IAKCK,EAAcj5a,SAAWi5a,EAAcj5a,QAAQkN,QACjD4ra,EAAuB94a,SAAU,EACjCi5a,EAAcj5a,QAAQkN,SAExB+ra,EAAcj5a,QAAU,KAC1B,CACD,GAIA,CAAC40B,IACJ71B,EAAAA,WAAgB,KAEd,IAAK61B,IAASwkZ,EAAQp5a,QACpB,OAEF,MAAMwd,GAAMC,EAAAA,GAAAA,GAAc27Z,EAAQp5a,SAC5Bs5a,EAAYlpQ,IAChBipQ,EAAYr5a,QAAUowK,GAClBuoQ,GAAwBziY,KAAmC,QAApBk6H,EAAY57K,KAMnDgpB,EAAI6pJ,gBAAkB+xQ,EAAQp5a,SAAWowK,EAAY8D,WAGvD4kQ,EAAuB94a,SAAU,EAC7Bg5a,EAAYh5a,SACdg5a,EAAYh5a,QAAQkN,QAExB,EAEIqsa,EAAUA,KACd,MAAMpmX,EAAcimX,EAAQp5a,QAI5B,GAAoB,OAAhBmzD,EACF,OAEF,IAAK31C,EAAIg8Z,aAAetjY,KAAe4iY,EAAuB94a,QAE5D,YADA84a,EAAuB94a,SAAU,GAKnC,GAAImzD,EAAYilF,SAAS56H,EAAI6pJ,eAC3B,OAIF,GAAIsxQ,GAAuBn7Z,EAAI6pJ,gBAAkB0xQ,EAAc/4a,SAAWwd,EAAI6pJ,gBAAkB2xQ,EAAYh5a,QAC1G,OAIF,GAAIwd,EAAI6pJ,gBAAkB6xQ,EAAsBl5a,QAC9Ck5a,EAAsBl5a,QAAU,UAC3B,GAAsC,OAAlCk5a,EAAsBl5a,QAC/B,OAEF,IAAKm5a,EAAUn5a,QACb,OAEF,IAAIy5a,EAAW,GAOf,GANIj8Z,EAAI6pJ,gBAAkB0xQ,EAAc/4a,SAAWwd,EAAI6pJ,gBAAkB2xQ,EAAYh5a,UACnFy5a,EAAWZ,EAAYO,EAAQp5a,UAK7By5a,EAAS9lb,OAAS,EAAG,CACvB,IAAI+lb,EAAsBC,EAC1B,MAAMC,EAAa/jY,SAAyD,OAA/C6jY,EAAuBL,EAAYr5a,cAAmB,EAAS05a,EAAqBxlQ,WAA8G,SAA/C,OAAhDylQ,EAAwBN,EAAYr5a,cAAmB,EAAS25a,EAAsBnlb,MAChNqlb,EAAYJ,EAAS,GACrBK,EAAgBL,EAASA,EAAS9lb,OAAS,GACxB,kBAAdkmb,GAAmD,kBAAlBC,IACtCF,EACFE,EAAc5sa,QAEd2sa,EAAU3sa,QAIhB,MACEimD,EAAYjmD,OACd,EAEFsQ,EAAIE,iBAAiB,UAAW67Z,GAChC/7Z,EAAIE,iBAAiB,UAAW47Z,GAAW,GAQ3C,MAAMz7U,EAAWmxI,aAAY,KACvBxxN,EAAI6pJ,eAA+C,SAA9B7pJ,EAAI6pJ,cAAcjqJ,SACzCm8Z,GACF,GACC,IACH,MAAO,KACL1qM,cAAchxI,GACdrgF,EAAIi3E,oBAAoB,UAAW8kV,GACnC/7Z,EAAIi3E,oBAAoB,UAAW6kV,GAAW,EAAK,CACpD,GACA,CAACZ,EAAkBC,EAAqBC,EAAqB1iY,EAAWthB,EAAMikZ,IACjF,MAWMkB,EAAsBr9Z,IACI,OAA1Bu8Z,EAAcj5a,UAChBi5a,EAAcj5a,QAAU0c,EAAM43J,eAEhC6kQ,EAAUn5a,SAAU,CAAI,EAE1B,OAAoB8Z,EAAAA,GAAAA,MAAM/a,EAAAA,SAAgB,CACxCzG,SAAU,EAAc6hB,EAAAA,GAAAA,KAAK,MAAO,CAClCulJ,SAAU9qI,EAAO,GAAK,EACtBhX,QAASm8Z,EACTz6a,IAAKy5a,EACL,cAAe,kBACAh6a,EAAAA,aAAmBzG,EAAU,CAC5CgH,IAAKs4R,EACLh6Q,QAzBYlB,IACgB,OAA1Bu8Z,EAAcj5a,UAChBi5a,EAAcj5a,QAAU0c,EAAM43J,eAEhC6kQ,EAAUn5a,SAAU,EACpBk5a,EAAsBl5a,QAAU0c,EAAMQ,OACtC,MAAM88Z,EAAuB1hb,EAASD,MAAMulB,QACxCo8Z,GACFA,EAAqBt9Z,EACvB,KAiBiBvC,EAAAA,GAAAA,KAAK,MAAO,CAC3BulJ,SAAU9qI,EAAO,GAAK,EACtBhX,QAASm8Z,EACTz6a,IAAK05a,EACL,cAAe,kBAGrB,8BCrLA,SApE4Bj6a,EAAAA,YAAiB,SAAgB1G,EAAO4hb,GAClE,MAAM,SACJ3hb,EAAQ,UACRvE,EAAS,cACTmmb,GAAgB,GACd7hb,GACG8hb,EAAWC,GAAgBr7a,EAAAA,SAAe,MAE3C64R,GAAYthQ,EAAAA,GAAAA,GAAyBv3B,EAAAA,eAAqBzG,GAAYA,EAASgH,IAAM,KAAM26a,GAejG,IAdA5jZ,EAAAA,GAAAA,IAAkB,KACX6jZ,GACHE,EA3BN,SAAsBrmb,GACpB,MAA4B,oBAAdA,EAA2BA,IAAcA,CACzD,CAyBmBgyS,CAAahyS,IAAciB,SAASqnD,KACnD,GACC,CAACtoD,EAAWmmb,KACf7jZ,EAAAA,GAAAA,IAAkB,KAChB,GAAI8jZ,IAAcD,EAEhB,OADA9jZ,EAAAA,GAAAA,GAAO6jZ,EAAcE,GACd,MACL/jZ,EAAAA,GAAAA,GAAO6jZ,EAAc,KAAK,CAGd,GACf,CAACA,EAAcE,EAAWD,IACzBA,EAAe,CACjB,GAAkBn7a,EAAAA,eAAqBzG,GAAW,CAChD,MAAMonB,EAAW,CACfpgB,IAAKs4R,GAEP,OAAoB74R,EAAAA,aAAmBzG,EAAUonB,EACnD,CACA,OAAoBvF,EAAAA,GAAAA,KAAKpb,EAAAA,SAAgB,CACvCzG,SAAUA,GAEd,CACA,OAAoB6hB,EAAAA,GAAAA,KAAKpb,EAAAA,SAAgB,CACvCzG,SAAU6hb,EAAyBl8G,EAAAA,aAAsB3lU,EAAU6hb,GAAaA,GAEpF,+BC5DA,SAAS1uK,GAAgBnmP,EAAGzvB,GAC1B,OAAO41Q,GAAkBj1Q,OAAOohI,eAAiBphI,OAAOohI,eAAe93G,OAAS,SAAUwF,EAAGzvB,GAC3F,OAAOyvB,EAAEG,UAAY5vB,EAAGyvB,CAC1B,EAAGmmP,GAAgBnmP,EAAGzvB,EACxB,CCJA,UACY,ECAZ,GAAekJ,EAAAA,cAAoB,MCD5B,ICSIs7a,GAAY,YACZC,GAAS,SACTC,GAAW,WACXC,GAAU,UACVC,GAAU,UA6FjBC,GAA0B,SAAU/qJ,GAGtC,SAAS+qJ,EAAWrib,EAAO61D,GACzB,IAAI76D,EAEJA,EAAQs8R,EAAiBvyR,KAAK9J,KAAM+E,EAAO61D,IAAY56D,KACvD,IAGIqnb,EADA73J,EAFc50N,MAEuBk4N,WAAa/tR,EAAM0qR,MAAQ1qR,EAAMyqR,OAuB1E,OArBAzvR,EAAMunb,aAAe,KAEjBvib,EAAMkqR,GACJO,GACF63J,EAAgBL,GAChBjnb,EAAMunb,aAAeL,IAErBI,EAAgBH,GAIhBG,EADEtib,EAAM+qR,eAAiB/qR,EAAMgrR,aACfg3J,GAEAC,GAIpBjnb,EAAMgoB,MAAQ,CACZqpC,OAAQi2X,GAEVtnb,EAAMwnb,aAAe,KACdxnb,CACT,EC1IF,SAAwBiyB,EAAGguG,GACzBhuG,EAAE5wB,UAAY8B,OAAOoI,OAAO00H,EAAE5+H,WAAY4wB,EAAE5wB,UAAUmL,YAAcylB,EAAG,GAAeA,EAAGguG,EAC3F,CDwGEwnT,CAAeJ,EAAY/qJ,GAkC3B+qJ,EAAWtrS,yBAA2B,SAAkCz/H,EAAMqgR,GAG5E,OAFargR,EAAK4yQ,IAEJyN,EAAUtrO,SAAW21X,GAC1B,CACL31X,OAAQ41X,IAIL,IACT,EAkBA,IAAI7lb,EAASimb,EAAWhmb,UAkPxB,OAhPAD,EAAOwkK,kBAAoB,WACzB3lK,KAAKynb,cAAa,EAAMznb,KAAKsnb,aAC/B,EAEAnmb,EAAOykK,mBAAqB,SAA4BC,GACtD,IAAI6hR,EAAa,KAEjB,GAAI7hR,IAAc7lK,KAAK+E,MAAO,CAC5B,IAAIqsD,EAASpxD,KAAK+nB,MAAMqpC,OAEpBpxD,KAAK+E,MAAMkqR,GACT79N,IAAW61X,IAAY71X,IAAW81X,KACpCQ,EAAaT,IAGX71X,IAAW61X,IAAY71X,IAAW81X,KACpCQ,EAAaP,GAGnB,CAEAnnb,KAAKynb,cAAa,EAAOC,EAC3B,EAEAvmb,EAAOo+L,qBAAuB,WAC5Bv/L,KAAK2nb,oBACP,EAEAxmb,EAAOymb,YAAc,WACnB,IACIl4J,EAAMD,EAAOD,EADbnsQ,EAAUrjB,KAAK+E,MAAMse,QAWzB,OATAqsQ,EAAOD,EAAQD,EAASnsQ,EAET,MAAXA,GAAsC,kBAAZA,IAC5BqsQ,EAAOrsQ,EAAQqsQ,KACfD,EAAQpsQ,EAAQosQ,MAEhBD,OAA4B1uR,IAAnBuiB,EAAQmsQ,OAAuBnsQ,EAAQmsQ,OAASC,GAGpD,CACLC,KAAMA,EACND,MAAOA,EACPD,OAAQA,EAEZ,EAEAruR,EAAOsmb,aAAe,SAAsBI,EAAUH,GAKpD,QAJiB,IAAbG,IACFA,GAAW,GAGM,OAAfH,EAIF,GAFA1nb,KAAK2nb,qBAEDD,IAAeT,GAAU,CAC3B,GAAIjnb,KAAK+E,MAAM+qR,eAAiB9vR,KAAK+E,MAAMgrR,aAAc,CACvD,IAAIprR,EAAO3E,KAAK+E,MAAM+ib,QAAU9nb,KAAK+E,MAAM+ib,QAAQp7a,QAAUi+T,EAAAA,YAAqB3qU,MAI9E2E,GDzOW,SAAqBA,GACrCA,EAAKqjL,SACd,CCuOoB+/P,CAAYpjb,EACxB,CAEA3E,KAAKgob,aAAaH,EACpB,MACE7nb,KAAKiob,mBAEEjob,KAAK+E,MAAM+qR,eAAiB9vR,KAAK+nB,MAAMqpC,SAAW41X,IAC3Dhnb,KAAKmhK,SAAS,CACZ/vG,OAAQ21X,IAGd,EAEA5lb,EAAO6mb,aAAe,SAAsBH,GAC1C,IAAI13M,EAASnwO,KAETyvR,EAAQzvR,KAAK+E,MAAM0qR,MACnBy4J,EAAYlob,KAAK46D,QAAU56D,KAAK46D,QAAQk4N,WAAa+0J,EAErDpwa,EAAQzX,KAAK+E,MAAM+ib,QAAU,CAACI,GAAa,CAACv9G,EAAAA,YAAqB3qU,MAAOkob,GACxEC,EAAY1wa,EAAM,GAClB2wa,EAAiB3wa,EAAM,GAEvB4wa,EAAWrob,KAAK4nb,cAChBU,EAAeJ,EAAYG,EAAS74J,OAAS64J,EAAS54J,OAGrDo4J,IAAap4J,GAAS53Q,GACzB7X,KAAKuob,aAAa,CAChBn3X,OAAQ81X,KACP,WACD/2M,EAAOprO,MAAMyjb,UAAUL,EACzB,KAIFnob,KAAK+E,MAAM0jb,QAAQN,EAAWC,GAC9Bpob,KAAKuob,aAAa,CAChBn3X,OAAQ61X,KACP,WACD92M,EAAOprO,MAAM2jb,WAAWP,EAAWC,GAEnCj4M,EAAOw4M,gBAAgBL,GAAc,WACnCn4M,EAAOo4M,aAAa,CAClBn3X,OAAQ81X,KACP,WACD/2M,EAAOprO,MAAMyjb,UAAUL,EAAWC,EACpC,GACF,GACF,IACF,EAEAjnb,EAAO8mb,YAAc,WACnB,IAAIx3M,EAASzwO,KAET0vR,EAAO1vR,KAAK+E,MAAM2qR,KAClB24J,EAAWrob,KAAK4nb,cAChBO,EAAYnob,KAAK+E,MAAM+ib,aAAUhnb,EAAY6pU,EAAAA,YAAqB3qU,MAEjE0vR,IAAQ73Q,IASb7X,KAAK+E,MAAM6jb,OAAOT,GAClBnob,KAAKuob,aAAa,CAChBn3X,OAAQ+1X,KACP,WACD12M,EAAO1rO,MAAM8jb,UAAUV,GAEvB13M,EAAOk4M,gBAAgBN,EAAS34J,MAAM,WACpCj/C,EAAO83M,aAAa,CAClBn3X,OAAQ41X,KACP,WACDv2M,EAAO1rO,MAAMsuR,SAAS80J,EACxB,GACF,GACF,KArBEnob,KAAKuob,aAAa,CAChBn3X,OAAQ41X,KACP,WACDv2M,EAAO1rO,MAAMsuR,SAAS80J,EACxB,GAkBJ,EAEAhnb,EAAOwmb,mBAAqB,WACA,OAAtB3nb,KAAKunb,eACPvnb,KAAKunb,aAAaz4R,SAClB9uJ,KAAKunb,aAAe,KAExB,EAEApmb,EAAOonb,aAAe,SAAsB5jM,EAAWl+O,GAIrDA,EAAWzG,KAAK8ob,gBAAgBrib,GAChCzG,KAAKmhK,SAASwjF,EAAWl+O,EAC3B,EAEAtF,EAAO2nb,gBAAkB,SAAyBrib,GAChD,IAAIwqO,EAASjxO,KAETqZ,GAAS,EAcb,OAZArZ,KAAKunb,aAAe,SAAUn+Z,GACxB/P,IACFA,GAAS,EACT43N,EAAOs2M,aAAe,KACtB9gb,EAAS2iB,GAEb,EAEAppB,KAAKunb,aAAaz4R,OAAS,WACzBz1I,GAAS,CACX,EAEOrZ,KAAKunb,YACd,EAEApmb,EAAOwnb,gBAAkB,SAAyBtla,EAAS6vH,GACzDlzI,KAAK8ob,gBAAgB51S,GACrB,IAAIvuI,EAAO3E,KAAK+E,MAAM+ib,QAAU9nb,KAAK+E,MAAM+ib,QAAQp7a,QAAUi+T,EAAAA,YAAqB3qU,MAC9E+ob,EAA0C,MAAX1la,IAAoBrjB,KAAK+E,MAAMikb,eAElE,GAAKrkb,IAAQokb,EAAb,CAKA,GAAI/ob,KAAK+E,MAAMikb,eAAgB,CAC7B,IAAIz3Z,EAAQvxB,KAAK+E,MAAM+ib,QAAU,CAAC9nb,KAAKunb,cAAgB,CAAC5ib,EAAM3E,KAAKunb,cAC/DY,EAAY52Z,EAAM,GAClB03Z,EAAoB13Z,EAAM,GAE9BvxB,KAAK+E,MAAMikb,eAAeb,EAAWc,EACvC,CAEe,MAAX5la,GACFI,WAAWzjB,KAAKunb,aAAclka,EAXhC,MAFEI,WAAWzjB,KAAKunb,aAAc,EAelC,EAEApmb,EAAOmhC,OAAS,WACd,IAAI8uB,EAASpxD,KAAK+nB,MAAMqpC,OAExB,GAAIA,IAAW21X,GACb,OAAO,KAGT,IAAIrrK,EAAc17Q,KAAK+E,MACnBC,EAAW02Q,EAAY12Q,SAgBvBkkb,GAfMxtK,EAAYuT,GACFvT,EAAYqU,aACXrU,EAAYoU,cACnBpU,EAAY8T,OACb9T,EAAY+T,MACb/T,EAAYgU,KACThU,EAAYr4P,QACLq4P,EAAYstK,eACnBttK,EAAY+sK,QACT/sK,EAAYgtK,WACbhtK,EAAY8sK,UACf9sK,EAAYktK,OACTltK,EAAYmtK,UACbntK,EAAY2X,SACb3X,EAAYosK,SACV7sa,EAAAA,GAAAA,GAA8BygQ,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,aAEjP,OAGEjwQ,EAAAA,cAAoB09a,GAAuBv9a,SAAU,CACnDxI,MAAO,MACc,oBAAb4B,EAA0BA,EAASosD,EAAQ83X,GAAcz9a,EAAAA,aAAmBA,EAAAA,SAAe6pB,KAAKtwB,GAAWkkb,GAEzH,EAEO9B,CACT,CAlT8B,CAkT5B37a,EAAAA,WA+LF,SAAS24D,KAAQ,CA7LjBgjX,GAAW1rS,YAAcytS,GACzB/B,GAAWlvZ,UA0LP,CAAC,EAILkvZ,GAAWtva,aAAe,CACxBm3Q,IAAI,EACJc,cAAc,EACdD,eAAe,EACfN,QAAQ,EACRC,OAAO,EACPC,MAAM,EACN+4J,QAASrkX,GACTskX,WAAYtkX,GACZokX,UAAWpkX,GACXwkX,OAAQxkX,GACRykX,UAAWzkX,GACXivN,SAAUjvN,IAEZgjX,GAAWL,UAAYA,GACvBK,GAAWJ,OAASA,GACpBI,GAAWH,SAAWA,GACtBG,GAAWF,QAAUA,GACrBE,GAAWD,QAAUA,GACrB,4BE1mBe,SAASh1G,KACtB,MAAMx6T,EAAQyxa,GAAejma,GAAAA,GAK7B,OAAOxL,EAAMuL,GAAAA,IAAavL,CAC5B,CCbO,MAAM0xa,GAAS1kb,GAAQA,EAAKqjL,UAC5B,SAASshQ,GAAmBvkb,EAAOjF,GACxC,IAAIypb,EAAuBC,EAC3B,MAAM,QACJnma,EAAO,OACPhE,EAAM,MACN0Q,EAAQ,CAAC,GACPhrB,EACJ,MAAO,CACL2a,SAAgE,OAArD6pa,EAAwBx5Z,EAAM05Z,oBAA8BF,EAA2C,kBAAZlma,EAAuBA,EAAUA,EAAQvjB,EAAQgb,OAAS,EAChKuE,OAAoE,OAA3Dmqa,EAAwBz5Z,EAAM25Z,0BAAoCF,EAA0C,kBAAXnqa,EAAsBA,EAAOvf,EAAQgb,MAAQuE,EACvJwB,MAAOkP,EAAM45Z,gBAEjB,iBCTA,MAAMjxa,GAAY,CAAC,iBAAkB,SAAU,WAAY,SAAU,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,UAAW,uBASlK1N,GAAS,CACb4+a,SAAU,CACRr6a,QAAS,GAEXs6a,QAAS,CACPt6a,QAAS,IAQP4+Q,GAAoB1iR,EAAAA,YAAiB,SAAc1G,EAAOiH,GAC9D,MAAM2L,EAAQw6T,KACRokG,EAAiB,CACrB9mJ,MAAO93Q,EAAMgK,YAAYjC,SAASM,eAClC0vQ,KAAM/3Q,EAAMgK,YAAYjC,SAASO,gBAE7B,eACF+oa,EAAc,OACdx5J,GAAS,EAAI,SACbxqR,EAAQ,OACRqa,EACA4vQ,GAAI66J,EAAM,QACVrB,EAAO,UACPD,EAAS,WACTE,EAAU,OACVE,EAAM,SACNv1J,EAAQ,UACRw1J,EAAS,MACT94Z,EAAK,QACL1M,EAAUkzZ,EAAc,oBAExBwT,EAAsB3C,IACpBrib,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IAEzCova,EAAUr8a,EAAAA,OAAa,MACvB64R,GAAYthQ,EAAAA,GAAAA,GAAW8kZ,EAAS9ib,EAASgH,IAAKA,GAC9Cg+a,EAA+Bvjb,GAAYwjb,IAC/C,GAAIxjb,EAAU,CACZ,MAAM9B,EAAOmjb,EAAQp7a,aAGI5L,IAArBmpb,EACFxjb,EAAS9B,GAET8B,EAAS9B,EAAMslb,EAEnB,GAEIC,EAAiBF,EAA6BtB,GAC9CjoI,EAAcupI,GAA6B,CAACrlb,EAAMwlb,KACtDd,GAAO1kb,GAEP,MAAMylb,EAAkBd,GAAmB,CACzCv5Z,QACA1M,UACAhE,UACC,CACDvE,KAAM,UAERnW,EAAKorB,MAAMs6Z,iBAAmB1ya,EAAMgK,YAAYrW,OAAO,UAAW8+a,GAClEzlb,EAAKorB,MAAMxK,WAAa5N,EAAMgK,YAAYrW,OAAO,UAAW8+a,GACxD3B,GACFA,EAAQ9jb,EAAMwlb,EAChB,IAEIG,EAAgBN,EAA6BxB,GAC7C+B,EAAgBP,EAA6BnB,GAC7C2B,EAAaR,GAA6Brlb,IAC9C,MAAMylb,EAAkBd,GAAmB,CACzCv5Z,QACA1M,UACAhE,UACC,CACDvE,KAAM,SAERnW,EAAKorB,MAAMs6Z,iBAAmB1ya,EAAMgK,YAAYrW,OAAO,UAAW8+a,GAClEzlb,EAAKorB,MAAMxK,WAAa5N,EAAMgK,YAAYrW,OAAO,UAAW8+a,GACxDxB,GACFA,EAAOjkb,EACT,IAEI8lb,EAAeT,EAA6B32J,GAOlD,OAAoBxsQ,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACrD8yQ,OAAQA,EACRP,GAAI66J,EACJhC,QAAkCA,EAClCW,QAAShoI,EACT+nI,UAAW8B,EACX5B,WAAYwB,EACZtB,OAAQ4B,EACRn3J,SAAUo3J,EACV5B,UAAW0B,EACXvB,eAhB2B5jb,IACvB4jb,GAEFA,EAAelB,EAAQp7a,QAAStH,EAClC,EAaAie,QAASA,GACRrI,EAAO,CACRhW,SAAUA,CAAC+iB,EAAOmha,IACIz9a,EAAAA,aAAmBzG,GAAU0X,EAAAA,GAAAA,GAAS,CACxDqT,OAAOrT,EAAAA,GAAAA,GAAS,CACdnN,QAAS,EACTktB,WAAsB,WAAV1U,GAAuB+ha,OAAoBhpb,EAAX,UAC3CkK,GAAO+c,GAAQgI,EAAO/qB,EAASD,MAAMgrB,OACxC/jB,IAAKs4R,GACJ4kJ,MAGT,IA4EA,sBC1MO,SAASwB,GAAwB7ma,GACtC,OAAOC,EAAAA,GAAAA,IAAqB,cAAeD,EAC7C,EACwBE,EAAAA,GAAAA,GAAuB,cAAe,CAAC,OAAQ,cAAvE,MCDMrL,GAAY,CAAC,WAAY,YAAa,YAAa,aAAc,kBAAmB,YAAa,OAAQ,YAAa,QAAS,sBAAuB,sBAoBtJiya,IAAe1ma,EAAAA,GAAAA,IAAO,MAAO,CACjC/Y,KAAM,cACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,KAAMuf,EAAW8tQ,WAAajnR,EAAOinR,UAAU,GAP7ChuQ,EASlBxM,IAAA,IAAC,WACF0M,GACD1M,EAAA,OAAKiF,EAAAA,GAAAA,GAAS,CACblY,SAAU,QACV4gB,QAAS,OACT2X,WAAY,SACZD,eAAgB,SAChBc,MAAO,EACPC,OAAQ,EACRF,IAAK,EACLG,KAAM,EACNzD,gBAAiB,qBACjBuwZ,wBAAyB,eACxBzma,EAAW8tQ,WAAa,CACzB53P,gBAAiB,eACjB,IA2IF,GA1I8B5uB,EAAAA,YAAiB,SAAkBma,EAAS5Z,GACxE,IAAI6+a,EAAiBxua,EAAMyua,EAC3B,MAAM/lb,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,iBAEF,SACFlG,EAAQ,UACRuO,EAAS,UACTsS,EAAY,MAAK,WACjBjO,EAAa,CAAC,EAAC,gBACfmza,EAAkB,CAAC,EAAC,UACpB94J,GAAY,EAAK,KACjB3wP,EAAI,UACJsB,EAAY,CAAC,EAAC,MACdvc,EAAQ,CAAC,EAAC,oBACV0ja,EAAsB57J,GAAI,mBAC1Bs7J,GACE1kb,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCyL,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrC8gB,YACAosQ,cAEI7rQ,EA3DkBjC,KACxB,MAAM,QACJiC,EAAO,UACP6rQ,GACE9tQ,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,OAAQqtR,GAAa,cAE9B,OAAO3rQ,EAAAA,GAAAA,GAAeD,EAAOqka,GAAyBtka,EAAQ,EAmD9CG,CAAkBpC,GAC5B6ma,EAAsD,OAArCH,EAAkBjoZ,EAAUh+B,MAAgBimb,EAAkBE,EAAgBnmb,KACrG,OAAoBiiB,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACrDuyQ,GAAI3tP,EACJje,QAASoma,GACRzua,EAAO,CACRhW,UAAuB6hB,EAAAA,GAAAA,KAAK8ja,IAAcjua,EAAAA,GAAAA,GAAS,CACjD,eAAe,GACdsua,EAAe,CAChBvka,GAAmF,OAA9EpK,EAAqC,OAA7Byua,EAAczka,EAAMzhB,MAAgBkmb,EAAclza,EAAWqza,MAAgB5ua,EAAOwJ,EACjGtS,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,EAA4B,MAAjBy3a,OAAwB,EAASA,EAAcz3a,WACxF4Q,YAAYzH,EAAAA,GAAAA,GAAS,CAAC,EAAGyH,EAA6B,MAAjB6ma,OAAwB,EAASA,EAAc7ma,YACpFiC,QAASA,EACTpa,IAAKA,EACLhH,SAAUA,OAGhB,4CCxFe,SAASkmb,GAAiBhha,GAEvC,MAAMiha,EAAgBjha,EAAIm+D,gBAAgB+jN,YAC1C,OAAOvpS,KAAKD,IAAI8/B,OAAOwmW,WAAaiiD,EACtC,CCGO,SAASC,GAAWxkb,EAASsvS,GAC9BA,EACFtvS,EAAQhF,aAAa,cAAe,QAEpCgF,EAAQ8iF,gBAAgB,cAE5B,CACA,SAAS2hW,GAAgBzkb,GACvB,OAAOmP,UAASysB,EAAAA,GAAAA,GAAY57B,GAASozQ,iBAAiBpzQ,GAASi0B,aAAc,KAAO,CACtF,CAUA,SAASywZ,GAAmB7qb,EAAW8qb,EAAcr5M,EAAgBs5M,EAAmBt1I,GACtF,MAAMv5J,EAAY,CAAC4uS,EAAcr5M,KAAmBs5M,GACpD,GAAGjqb,QAAQuI,KAAKrJ,EAAUuE,UAAU4B,IAClC,MAAM6kb,GAAuD,IAAhC9uS,EAAUj5I,QAAQkD,GACzC8kb,GAbV,SAAwC9kb,GAItC,MACM+kb,GAAqE,IADjD,CAAC,WAAY,SAAU,QAAS,OAAQ,MAAO,OAAQ,WAAY,UAAW,MAAO,WAAY,QAAS,OAAQ,SAAU,SACzGjob,QAAQkD,EAAQkjB,SACvD8ha,EAAoC,UAApBhlb,EAAQkjB,SAAwD,WAAjCljB,EAAQmD,aAAa,QAC1E,OAAO4hb,GAAsBC,CAC/B,CAKmCC,CAA+Bjlb,GAC1D6kb,GAAwBC,GAC1BN,GAAWxkb,EAASsvS,EACtB,GAEJ,CACA,SAAS41I,GAAYvnX,EAAO99D,GAC1B,IAAIooB,GAAO,EAQX,OAPA01C,EAAMyqG,MAAK,CAACv7I,EAAM7vB,MACZ6C,EAASgtB,KACX5E,EAAMjrB,GACC,KAIJirB,CACT,CACA,SAASk9Z,GAAgBzuQ,EAAev4K,GACtC,MAAMinb,EAAe,GACfvrb,EAAY68K,EAAc78K,UAChC,IAAKsE,EAAMknb,kBAAmB,CAC5B,GAnDJ,SAAuBxrb,GACrB,MAAMypB,GAAMC,EAAAA,GAAAA,GAAc1pB,GAC1B,OAAIypB,EAAI6+B,OAAStoD,GACR+hC,EAAAA,GAAAA,GAAY/hC,GAAWyoY,WAAah/W,EAAIm+D,gBAAgB+jN,YAE1D3rS,EAAUi2S,aAAej2S,EAAU4rS,YAC5C,CA6CQ6/I,CAAczrb,GAAY,CAE5B,MAAM0rb,EAAgBjB,IAAiB/ga,EAAAA,GAAAA,GAAc1pB,IACrDurb,EAAaprb,KAAK,CAChBwC,MAAO3C,EAAUsvB,MAAM8K,aACvBtzB,SAAU,gBACV88L,GAAI5jM,IAGNA,EAAUsvB,MAAM8K,aAAe,GAAGwwZ,GAAgB5qb,GAAa0rb,MAG/D,MAAMxjb,GAAgBwhB,EAAAA,GAAAA,GAAc1pB,GAAWmJ,iBAAiB,cAChE,GAAGrI,QAAQuI,KAAKnB,GAAe/B,IAC7Bolb,EAAaprb,KAAK,CAChBwC,MAAOwD,EAAQmpB,MAAM8K,aACrBtzB,SAAU,gBACV88L,GAAIz9L,IAENA,EAAQmpB,MAAM8K,aAAe,GAAGwwZ,GAAgBzkb,GAAWulb,KAAiB,GAEhF,CACA,IAAIC,EACJ,GAAI3rb,EAAUiC,sBAAsBsmI,iBAClCojT,GAAkBjia,EAAAA,GAAAA,GAAc1pB,GAAWsoD,SACtC,CAGL,MAAMlkD,EAASpE,EAAUs5Q,cACnBsyK,GAAkB7pZ,EAAAA,GAAAA,GAAY/hC,GACpC2rb,EAAkE,UAArC,MAAVvnb,OAAiB,EAASA,EAAO2iF,WAA+E,WAAvD6kW,EAAgBryK,iBAAiBn1Q,GAAQsoT,UAAyBtoT,EAASpE,CACzJ,CAIAurb,EAAaprb,KAAK,CAChBwC,MAAOgpb,EAAgBr8Z,MAAMwM,SAC7Bh1B,SAAU,WACV88L,GAAI+nP,GACH,CACDhpb,MAAOgpb,EAAgBr8Z,MAAMmvP,UAC7B33Q,SAAU,aACV88L,GAAI+nP,GACH,CACDhpb,MAAOgpb,EAAgBr8Z,MAAMo9R,UAC7B5lT,SAAU,aACV88L,GAAI+nP,IAENA,EAAgBr8Z,MAAMwM,SAAW,QACnC,CAcA,MAbgB+vZ,KACdN,EAAazqb,SAAQ8a,IAIf,IAJgB,MACpBjZ,EAAK,GACLihM,EAAE,SACF98L,GACD8U,EACKjZ,EACFihM,EAAGt0K,MAAM6lJ,YAAYruK,EAAUnE,GAE/BihM,EAAGt0K,MAAMkmR,eAAe1uS,EAC1B,GACA,CAGN,CCrGA,MAAMglb,GAAiB,IDsHhB,MACLhgb,WAAAA,GACEvM,KAAKwsb,gBAAa,EAClBxsb,KAAKysb,YAAS,EACdzsb,KAAKysb,OAAS,GACdzsb,KAAKwsb,WAAa,EACpB,CACA3gY,GAAAA,CAAIzqC,EAAO3gB,GACT,IAAIisb,EAAa1sb,KAAKysb,OAAO/ob,QAAQ0d,GACrC,IAAoB,IAAhBsra,EACF,OAAOA,EAETA,EAAa1sb,KAAKysb,OAAOpsb,OACzBL,KAAKysb,OAAO7rb,KAAKwgB,GAGbA,EAAMura,UACRvB,GAAWhqa,EAAMura,UAAU,GAE7B,MAAMC,EAnCV,SAA2Bnsb,GACzB,MAAMmsb,EAAiB,GAMvB,MALA,GAAGrrb,QAAQuI,KAAKrJ,EAAUuE,UAAU4B,IACU,SAAxCA,EAAQmD,aAAa,gBACvB6ib,EAAehsb,KAAKgG,EACtB,IAEKgmb,CACT,CA2B2BC,CAAkBpsb,GACzC6qb,GAAmB7qb,EAAW2gB,EAAM0ra,MAAO1ra,EAAMura,SAAUC,GAAgB,GAC3E,MAAMG,EAAiBjB,GAAY9rb,KAAKwsb,YAAY/4Z,GAAQA,EAAKhzB,YAAcA,IAC/E,OAAwB,IAApBssb,GACF/sb,KAAKwsb,WAAWO,GAAgBN,OAAO7rb,KAAKwgB,GACrCsra,IAET1sb,KAAKwsb,WAAW5rb,KAAK,CACnB6rb,OAAQ,CAACrra,GACT3gB,YACA6rb,QAAS,KACTM,mBAEKF,EACT,CACAI,KAAAA,CAAM1ra,EAAOrc,GACX,MAAMgob,EAAiBjB,GAAY9rb,KAAKwsb,YAAY/4Z,IAAwC,IAAhCA,EAAKg5Z,OAAO/ob,QAAQ0d,KAC1Ek8J,EAAgBt9K,KAAKwsb,WAAWO,GACjCzvQ,EAAcgvQ,UACjBhvQ,EAAcgvQ,QAAUP,GAAgBzuQ,EAAev4K,GAE3D,CACA28C,MAAAA,CAAOtgC,GAA+B,IAAxB4ra,IAAehgb,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,KAAAA,UAAA,GAC3B,MAAM0/a,EAAa1sb,KAAKysb,OAAO/ob,QAAQ0d,GACvC,IAAoB,IAAhBsra,EACF,OAAOA,EAET,MAAMK,EAAiBjB,GAAY9rb,KAAKwsb,YAAY/4Z,IAAwC,IAAhCA,EAAKg5Z,OAAO/ob,QAAQ0d,KAC1Ek8J,EAAgBt9K,KAAKwsb,WAAWO,GAKtC,GAJAzvQ,EAAcmvQ,OAAO7/W,OAAO0wG,EAAcmvQ,OAAO/ob,QAAQ0d,GAAQ,GACjEphB,KAAKysb,OAAO7/W,OAAO8/W,EAAY,GAGK,IAAhCpvQ,EAAcmvQ,OAAOpsb,OAEnBi9K,EAAcgvQ,SAChBhvQ,EAAcgvQ,UAEZlra,EAAMura,UAERvB,GAAWhqa,EAAMura,SAAUK,GAE7B1B,GAAmBhuQ,EAAc78K,UAAW2gB,EAAM0ra,MAAO1ra,EAAMura,SAAUrvQ,EAAcsvQ,gBAAgB,GACvG5sb,KAAKwsb,WAAW5/W,OAAOmgX,EAAgB,OAClC,CAEL,MAAME,EAAU3vQ,EAAcmvQ,OAAOnvQ,EAAcmvQ,OAAOpsb,OAAS,GAI/D4sb,EAAQN,UACVvB,GAAW6B,EAAQN,UAAU,EAEjC,CACA,OAAOD,CACT,CACAQ,UAAAA,CAAW9ra,GACT,OAAOphB,KAAKysb,OAAOpsb,OAAS,GAAKL,KAAKysb,OAAOzsb,KAAKysb,OAAOpsb,OAAS,KAAO+gB,CAC3E,GCjBF,SAvKA,SAAkB6ha,GAChB,MAAM,UACJxib,EAAS,qBACT0sb,GAAuB,EAAK,kBAC5BlB,GAAoB,EAAK,QAEzBmB,EAAUb,GAAc,qBACxBc,GAAuB,EAAK,kBAC5BC,EAAiB,mBACjBC,EAAkB,SAClBvob,EAAQ,QACRwob,EAAO,KACPlsZ,EAAI,QACJwkZ,GACE7C,EAGE7ha,EAAQ3V,EAAAA,OAAa,CAAC,GACtBgib,EAAehib,EAAAA,OAAa,MAC5Bkhb,EAAWlhb,EAAAA,OAAa,MACxB64R,GAAYthQ,EAAAA,GAAAA,GAAW2pZ,EAAU7G,IAChC4H,EAAQC,GAAalib,EAAAA,UAAgB61B,GACtCssZ,EAvCR,SAA0B5ob,GACxB,QAAOA,GAAWA,EAASD,MAAMyV,eAAe,KAClD,CAqCwBqza,CAAiB7ob,GACvC,IAAI8ob,GAAiB,EACa,UAA9B7K,EAAW,iBAA4D,IAA9BA,EAAW,iBACtD6K,GAAiB,GAEnB,MACMC,EAAWA,KACf3sa,EAAM1U,QAAQigb,SAAWA,EAASjgb,QAClC0U,EAAM1U,QAAQogb,MAAQW,EAAa/gb,QAC5B0U,EAAM1U,SAETshb,EAAgBA,KACpBZ,EAAQN,MAAMiB,IAAY,CACxB9B,sBAIEU,EAASjgb,UACXigb,EAASjgb,QAAQs7K,UAAY,EAC/B,EAEIimQ,GAAaC,EAAAA,GAAAA,IAAiB,KAClC,MAAMC,EAhEV,SAAsB1tb,GACpB,MAA4B,oBAAdA,EAA2BA,IAAcA,CACzD,CA8D8BgyS,CAAahyS,KAjBpB0pB,EAAAA,GAAAA,GAAcsja,EAAa/gb,SAiBgBq8C,KAC9DqkY,EAAQvhY,IAAIkiY,IAAYI,GAGpBxB,EAASjgb,SACXshb,GACF,IAEId,EAAazhb,EAAAA,aAAkB,IAAM2hb,EAAQF,WAAWa,MAAa,CAACX,IACtEgB,GAAkBF,EAAAA,GAAAA,IAAiBvpb,IACvC8ob,EAAa/gb,QAAU/H,EAClBA,IAGD28B,GAAQ4rZ,IACVc,IACSrB,EAASjgb,SAClB0+a,GAAWuB,EAASjgb,QAASohb,GAC/B,IAEIO,EAAc5ib,EAAAA,aAAkB,KACpC2hb,EAAQ1rY,OAAOqsY,IAAYD,EAAe,GACzC,CAACA,EAAgBV,IACpB3hb,EAAAA,WAAgB,IACP,KACL4ib,GAAa,GAEd,CAACA,IACJ5ib,EAAAA,WAAgB,KACV61B,EACF2sZ,IACUL,GAAkBP,GAC5BgB,GACF,GACC,CAAC/sZ,EAAM+sZ,EAAaT,EAAeP,EAAsBY,IAC5D,MAAMK,EAAsBC,GAAiBnla,IAC3C,IAAIola,EACiD,OAApDA,EAAwBD,EAAc/lR,YAAsBgmR,EAAsB1kb,KAAKykb,EAAenla,GAQrF,WAAdA,EAAMloB,KAAoC,MAAhBkoB,EAAMk6J,OAEnC4pQ,MAGIC,IAEH/ja,EAAM25I,kBACFyqR,GACFA,EAAQpka,EAAO,kBAEnB,EAEIqla,EAA4BF,GAAiBnla,IACjD,IAAIsla,EAC+C,OAAlDA,EAAwBH,EAAcrrR,UAAoBwrR,EAAsB5kb,KAAKykb,EAAenla,GACjGA,EAAMQ,SAAWR,EAAM0pH,eAGvB06S,GACFA,EAAQpka,EAAO,gBACjB,EA8CF,MAAO,CACLula,aA7CmB,WAAwB,IAAvBJ,EAAavhb,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACrC,MAAM4hb,EAAqBlL,GAAqBT,UAGzC2L,EAAmBtB,yBACnBsB,EAAmBrB,mBAC1B,MAAMsB,GAAwBnya,EAAAA,GAAAA,GAAS,CAAC,EAAGkya,EAAoBL,GAC/D,OAAO7xa,EAAAA,GAAAA,GAAS,CACdkK,KAAM,gBACLioa,EAAuB,CACxBrmR,UAAW8lR,EAAoBO,GAC/B7ib,IAAKs4R,GAET,EAiCEwqJ,iBAhCuB,WACvB,MAAMD,EAD+B7hb,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEzC,OAAO0P,EAAAA,GAAAA,GAAS,CACd,eAAe,GACdmya,EAAuB,CACxB3rR,QAASurR,EAA0BI,GACnCvtZ,QAEJ,EAyBEgoZ,mBAxByBA,KAgBlB,CACLb,SAAStoZ,EAAAA,GAAAA,IAhBSsgR,KAClBktI,GAAU,GACNL,GACFA,GACF,GAYwD,MAAZtob,OAAmB,EAASA,EAASD,MAAM0jb,SACvFp1J,UAAUlzP,EAAAA,GAAAA,IAXSsqZ,KACnBkD,GAAU,GACNJ,GACFA,IAEEF,GACFgB,GACF,GAI0D,MAAZrpb,OAAmB,EAASA,EAASD,MAAMsuR,YAO3FyyJ,QAASxhJ,EACTyqJ,UAAWX,EACXlB,aACAQ,SACAE,gBAEJ,EC/LO,SAASoB,GAAqBnra,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,EACqBE,EAAAA,GAAAA,GAAuB,WAAY,CAAC,OAAQ,SAAU,aAA3E,MCDMrL,GAAY,CAAC,oBAAqB,gBAAiB,UAAW,YAAa,uBAAwB,WAAY,YAAa,YAAa,aAAc,kBAAmB,mBAAoB,sBAAuB,uBAAwB,gBAAiB,sBAAuB,oBAAqB,eAAgB,cAAe,kBAAmB,UAAW,oBAAqB,qBAAsB,OAAQ,YAAa,QAAS,SA6Bhbu2a,IAAYhra,EAAAA,GAAAA,IAAO,MAAO,CAC9B/Y,KAAM,WACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,MAAOuf,EAAWmd,MAAQnd,EAAWupa,QAAU1ib,EAAOwoR,OAAO,GAP9DvvQ,EASfsN,IAAA,IAAC,MACF5Z,EAAK,WACLwM,GACDoN,EAAA,OAAK7U,EAAAA,GAAAA,GAAS,CACblY,SAAU,QACVqL,QAAS8H,EAAMmK,MAAQnK,GAAO9H,OAAOuR,MACrCwc,MAAO,EACPC,OAAQ,EACRF,IAAK,EACLG,KAAM,IACJ3Z,EAAWmd,MAAQnd,EAAWupa,QAAU,CAC1CjxZ,WAAY,UACZ,IACIyyZ,IAAgBjra,EAAAA,GAAAA,IAAOkra,GAAU,CACrCjkb,KAAM,WACN2Y,KAAM,WACNK,kBAAmBA,CAACnf,EAAOiG,IAClBA,EAAOovS,UAJIn2R,CAMnB,CACDpU,QAAS,IAgBLu/a,GAAqB3jb,EAAAA,YAAiB,SAAema,EAAS5Z,GAClE,IAAIqQ,EAAMyua,EAAarza,EAAO43a,EAAiBxE,EAAiByE,EAChE,MAAMvqb,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BtM,KAAM,WACNnG,MAAO6gB,KAEH,kBACF2pa,EAAoBL,GAAa,cACjCM,EAAa,UACbj8a,EAAS,qBACT85a,GAAuB,EAAK,SAC5Brob,EAAQ,UACRvE,EAAS,UACTolB,EAAS,WACTjO,EAAa,CAAC,EAAC,gBACfmza,EAAkB,CAAC,EAAC,iBACpB3F,GAAmB,EAAK,oBACxBC,GAAsB,EAAK,qBAC3B8H,GAAuB,EAAK,cAC5BvG,GAAgB,EAAK,oBACrBtB,GAAsB,EAAK,kBAC3B2G,GAAoB,EAAK,aACzBwD,GAAe,EAAK,YACpBC,GAAc,EAAK,gBACnBC,EAAe,KACfruZ,EAAI,UACJsB,EAAS,MACTvc,GAEEthB,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCk3a,GAAoBlza,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CAC5Csob,uBACAjI,mBACAC,sBACA8H,uBACAvG,gBACAtB,sBACA2G,oBACAwD,eACAC,iBAEI,aACJf,EAAY,iBACZG,EAAgB,mBAChBxF,EAAkB,UAClByF,EAAS,WACT7B,EAAU,OACVQ,EAAM,cACNE,GACEiC,IAASnza,EAAAA,GAAAA,GAAS,CAAC,EAAGkza,EAAmB,CAC3C9J,QAAS95a,KAELmY,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAGkza,EAAmB,CACjDlC,WAEItna,EAjHkBjC,KACxB,MAAM,KACJmd,EAAI,OACJosZ,EAAM,QACNtna,GACEjC,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,QAAS08B,GAAQosZ,GAAU,UAClCtzI,SAAU,CAAC,aAEb,OAAO9zR,EAAAA,GAAAA,GAAeD,EAAO2oa,GAAsB5oa,EAAQ,EAuG3CG,CAAkBpC,GAC5B+ka,EAAa,CAAC,EAMpB,QALgCpob,IAA5BkE,EAASD,MAAMqnK,WACjB88Q,EAAW98Q,SAAW,MAIpBwhR,EAAe,CACjB,MAAM,QACJnF,EAAO,SACPp1J,GACEi2J,IACJJ,EAAWT,QAAUA,EACrBS,EAAW71J,SAAWA,CACxB,CACA,MAAMy8J,EAAmH,OAAvGzza,EAA8D,OAAtDyua,EAAuB,MAATzka,OAAgB,EAASA,EAAMzhB,MAAgBkmb,EAAclza,EAAWqza,MAAgB5ua,EAAO4ya,GACjIc,EAAwI,OAAxHt4a,EAAuE,OAA9D43a,EAA2B,MAAThpa,OAAgB,EAASA,EAAM+zR,UAAoBi1I,EAAkBz3a,EAAWu3a,UAAoB13a,EAAQ83a,EACvJvE,EAAmF,OAAlEH,EAA+B,MAAbjoZ,OAAoB,EAASA,EAAUh+B,MAAgBimb,EAAkBE,EAAgBnmb,KAC5Horb,EAA+F,OAA1EV,EAAmC,MAAb1sZ,OAAoB,EAASA,EAAUw3Q,UAAoBk1I,EAAsBvE,EAAgB3wI,SAC5I61I,EAAYC,GAAa,CAC7B/xR,YAAa2xR,EACb1M,kBAAmB4H,EACnB3H,uBAAwBroa,EACxBkoa,aAAcyL,EACdxL,gBAAiB,CACfn3a,MACAya,GAAIZ,GAEN1B,aACA5Q,WAAWmT,EAAAA,GAAAA,GAAKnT,EAA4B,MAAjBy3a,OAAwB,EAASA,EAAcz3a,UAAsB,MAAX6S,OAAkB,EAASA,EAAQxhB,MAAOuf,EAAWmd,MAAQnd,EAAWupa,SAAsB,MAAXtna,OAAkB,EAASA,EAAQotQ,WAEvM28J,EAAgBD,GAAa,CACjC/xR,YAAa4xR,EACb3M,kBAAmB4M,EACnB7M,gBAAiBqM,EACjBtM,aAAcqL,GACLO,GAAiBpya,EAAAA,GAAAA,GAAS,CAAC,EAAG6xa,EAAe,CAClDrrR,QAAS3gK,IACHotb,GACFA,EAAgBptb,GAEG,MAAjBgsb,GAAyBA,EAAcrrR,SACzCqrR,EAAcrrR,QAAQ3gK,EACxB,KAINgR,WAAWmT,EAAAA,GAAAA,GAA0B,MAArBspa,OAA4B,EAASA,EAAkBz8a,UAA4B,MAAjBi8a,OAAwB,EAASA,EAAcj8a,UAAsB,MAAX6S,OAAkB,EAASA,EAAQg0R,UAC/Kj2R,eAEF,OAAKura,GAAgBpuZ,GAAUssZ,IAAiBF,GAG5B7ma,EAAAA,GAAAA,KAAKy2H,GAAQ,CAC/BtxI,IAAK+ib,EACLtub,UAAWA,EACXmmb,cAAeA,EACf5hb,UAAuBwhB,EAAAA,GAAAA,MAAMspa,GAAUpza,EAAAA,GAAAA,GAAS,CAAC,EAAGuza,EAAW,CAC7Djrb,SAAU,EAAEyqb,GAAgBF,GAAiC1oa,EAAAA,GAAAA,KAAKkpa,GAAcrza,EAAAA,GAAAA,GAAS,CAAC,EAAGyza,IAAkB,MAAmBtpa,EAAAA,GAAAA,KAAKupa,GAAW,CAChJ/K,oBAAqBA,EACrBD,iBAAkBA,EAClBE,oBAAqBA,EACrB1iY,UAAWsqY,EACX5rZ,KAAMA,EACNt8B,SAAuByG,EAAAA,aAAmBzG,EAAUkkb,WAbjD,IAiBX,IAsLA,sBC/XA,MASA,GATwBmH,IACtB,IAAIC,EAMJ,OAJEA,EADED,EAAY,EACD,QAAUA,GAAa,EAEvB,IAAMxtb,KAAK4uD,IAAI4+X,EAAY,GAAK,GAEvCC,EAAa,KAAKlha,QAAQ,EAAE,ECN/B,SAASmha,GAAqB1sa,GACnC,OAAOC,EAAAA,GAAAA,IAAqB,WAAYD,EAC1C,EACqBE,EAAAA,GAAAA,GAAuB,WAAY,CAAC,OAAQ,UAAW,WAAY,YAAa,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,aAAc,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,gBAAnc,MCDMrL,GAAY,CAAC,YAAa,YAAa,YAAa,SAAU,WA0B9D83a,IAAYvsa,EAAAA,GAAAA,IAAO,MAAO,CAC9B/Y,KAAM,WACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAOmZ,EAAW0O,UAAW1O,EAAWssa,QAAUzlb,EAAO0lb,QAAgC,cAAvBvsa,EAAW0O,SAA2B7nB,EAAO,YAAYmZ,EAAWksa,aAAa,GAP1Jpsa,EASf5H,IAGG,IAHF,MACF1E,EAAK,WACLwM,GACD9H,EACC,IAAIs0a,EACJ,OAAOj0a,EAAAA,GAAAA,GAAS,CACd2d,iBAAkB1iB,EAAMmK,MAAQnK,GAAOkD,QAAQ5B,WAAWC,MAC1DoD,OAAQ3E,EAAMmK,MAAQnK,GAAOkD,QAAQjC,KAAKC,QAC1C0M,WAAY5N,EAAMgK,YAAYrW,OAAO,gBACnC6Y,EAAWssa,QAAU,CACvBh7Z,aAAc9d,EAAMie,MAAMH,cACF,aAAvBtR,EAAW0O,SAA0B,CACtC+F,OAAQ,cAAcjhB,EAAMmK,MAAQnK,GAAOkD,QAAQ7B,WAC3B,cAAvBmL,EAAW0O,UAA2BnW,EAAAA,GAAAA,GAAS,CAChDqhB,WAAYpmB,EAAMmK,MAAQnK,GAAO2K,QAAQ6B,EAAWksa,aAClD14a,EAAMmK,MAA+B,SAAvBnK,EAAMkD,QAAQC,MAAmB,CACjDwvX,gBAAiB,oBAAmBp9W,EAAAA,GAAAA,IAAM,OAAQ0ja,GAAgBzsa,EAAWksa,iBAAgBnja,EAAAA,GAAAA,IAAM,OAAQ0ja,GAAgBzsa,EAAWksa,gBACrI14a,EAAMmK,MAAQ,CACfwoX,gBAAiE,OAA/CqmD,EAAuBh5a,EAAMmK,KAAK+ua,eAAoB,EAASF,EAAqBxsa,EAAWksa,aAChH,IAwFL,GAtF2B5kb,EAAAA,YAAiB,SAAema,EAAS5Z,GAClE,MAAMjH,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,cAEF,UACFqI,EAAS,UACTsS,EAAY,MAAK,UACjBwqa,EAAY,EAAC,OACbI,GAAS,EAAK,QACd59Z,EAAU,aACR9tB,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCyL,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrC8gB,YACAwqa,YACAI,SACA59Z,YAEIzM,EA7DkBjC,KACxB,MAAM,OACJssa,EAAM,UACNJ,EAAS,QACTx9Z,EAAO,QACPzM,GACEjC,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,OAAQiuB,GAAU49Z,GAAU,UAAuB,cAAZ59Z,GAA2B,YAAYw9Z,MAEvF,OAAO/pa,EAAAA,GAAAA,GAAeD,EAAOkqa,GAAsBnqa,EAAQ,EAmD3CG,CAAkBpC,GAQlC,OAAoB0C,EAAAA,GAAAA,KAAK2pa,IAAW9za,EAAAA,GAAAA,GAAS,CAC3C+J,GAAIZ,EACJ1B,WAAYA,EACZ5Q,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,GAC9BvH,IAAKA,GACJgP,GACL,IC3FO,SAAS81a,GAAsBjta,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,CACA,MACA,IADsBE,EAAAA,GAAAA,GAAuB,YAAa,CAAC,OAAQ,cAAe,aAAc,YAAa,QAAS,mBAAoB,kBAAmB,kBAAmB,eAAgB,eAAgB,eAAgB,eAAgB,eAAgB,iBAAkB,oBCAlR,SAJmCtY,EAAAA,cAAoB,CAAC,GCGlDiN,GAAY,CAAC,mBAAoB,kBAAmB,oBAAqB,gBAAiB,WAAY,YAAa,uBAAwB,aAAc,YAAa,WAAY,kBAAmB,UAAW,UAAW,OAAQ,iBAAkB,aAAc,SAAU,sBAAuB,qBAAsB,mBAiB1Tq4a,IAAiB9sa,EAAAA,GAAAA,IAAOkra,GAAU,CACtCjkb,KAAM,YACN2Y,KAAM,WACNmta,UAAWA,CAACjsb,EAAOiG,IAAWA,EAAOovS,UAHhBn2R,CAIpB,CAEDpU,QAAS,IAiBLohb,IAAahta,EAAAA,GAAAA,IAAOmra,GAAO,CAC/Blkb,KAAM,YACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAOpG,MAH5Bqf,CAIhB,CACD,eAAgB,CAEdzf,SAAU,yBAGR0sb,IAAkBjta,EAAAA,GAAAA,IAAO,MAAO,CACpC/Y,KAAM,YACN2Y,KAAM,YACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOvK,UAAWuK,EAAO,UAASoZ,EAAAA,GAAAA,GAAWD,EAAWy8I,WAAW,GAPvD38I,EASrB5H,IAAA,IAAC,WACF8H,GACD9H,EAAA,OAAKK,EAAAA,GAAAA,GAAS,CACb2D,OAAQ,OACR,eAAgB,CACdA,OAAQ,QAGViZ,QAAS,GACc,UAAtBnV,EAAWy8I,QAAsB,CAClCx7I,QAAS,OACT0X,eAAgB,SAChBC,WAAY,UACW,SAAtB5Y,EAAWy8I,QAAqB,CACjCusJ,UAAW,OACXjuC,UAAW,SACXhhP,UAAW,SACX,WAAY,CACV4rG,QAAS,KACT1kH,QAAS,eACT+ra,cAAe,SACf9wa,OAAQ,OACR8E,MAAO,MAET,IACIisa,IAAcnta,EAAAA,GAAAA,IAAOota,GAAO,CAChCnmb,KAAM,YACN2Y,KAAM,QACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOkO,MAAOlO,EAAO,eAAcoZ,EAAAA,GAAAA,GAAWD,EAAWy8I,WAAY51J,EAAO,cAAaoZ,EAAAA,GAAAA,GAAWrhB,OAAOohB,EAAW2V,cAAe3V,EAAWmta,WAAatmb,EAAOumb,eAAgBpta,EAAWqta,YAAcxmb,EAAOymb,gBAAgB,GAP5Nxta,EASjBxM,IAAA,IAAC,MACFE,EAAK,WACLwM,GACD1M,EAAA,OAAKiF,EAAAA,GAAAA,GAAS,CACbsb,OAAQ,GACRxzB,SAAU,WACV2oT,UAAW,OAEX,eAAgB,CACdA,UAAW,UACXpvR,UAAW,SAEU,UAAtB5Z,EAAWy8I,QAAsB,CAClCx7I,QAAS,OACTwX,cAAe,SACfzC,UAAW,qBACY,SAAtBhW,EAAWy8I,QAAqB,CACjCx7I,QAAS,eACT+ra,cAAe,SACfjzZ,UAAW,SACT/Z,EAAW2V,UAAY,CACzBA,SAAU,qBACe,OAAxB3V,EAAW2V,UAAqB,CACjCA,SAAqC,OAA3BniB,EAAMuK,YAAY8S,KAAgBnyB,KAAK2qB,IAAI7V,EAAMuK,YAAYqM,OAAOwE,GAAI,KAAO,OAAOpb,EAAMuK,YAAYqM,OAAOwE,KAAKpb,EAAMuK,YAAY8S,eAChJ,CAAC,KAAK08Z,GAAcC,mBAAoB,CACtC,CAACh6a,EAAMuK,YAAYiT,KAAKtyB,KAAK2qB,IAAI7V,EAAMuK,YAAYqM,OAAOwE,GAAI,KAAO,KAAU,CAC7E+G,SAAU,uBAGb3V,EAAW2V,UAAoC,OAAxB3V,EAAW2V,UAAqB,CACxDA,SAAU,GAAGniB,EAAMuK,YAAYqM,OAAOpK,EAAW2V,YAAYniB,EAAMuK,YAAY8S,OAC/E,CAAC,KAAK08Z,GAAcC,mBAAoB,CACtC,CAACh6a,EAAMuK,YAAYiT,KAAKxd,EAAMuK,YAAYqM,OAAOpK,EAAW2V,UAAY,KAAU,CAChFA,SAAU,uBAGb3V,EAAWmta,WAAa,CACzBnsa,MAAO,qBACNhB,EAAWqta,YAAc,CAC1Bx5Z,OAAQ,EACR7S,MAAO,OACP2U,SAAU,OACVzZ,OAAQ,OACR8Z,UAAW,OACX1E,aAAc,EACd,CAAC,KAAKi8Z,GAAcC,mBAAoB,CACtC35Z,OAAQ,EACR8B,SAAU,SAEZ,IA8PF,GAzP4BruB,EAAAA,YAAiB,SAAgBma,EAAS5Z,GACpE,MAAMjH,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,cAEFyM,EAAQw6T,KACRy/G,EAA4B,CAChCniK,MAAO93Q,EAAMgK,YAAYjC,SAASM,eAClC0vQ,KAAM/3Q,EAAMgK,YAAYjC,SAASO,gBAG/B,mBAAoB4xa,EACpB,kBAAmBC,EAAkB,kBACrCvC,EAAiB,cACjBC,EAAa,SACbxqb,EAAQ,UACRuO,EAAS,qBACT45a,GAAuB,EAAK,WAC5BqE,GAAa,EAAK,UAClBF,GAAY,EAAK,SACjBx3Z,EAAW,KAAI,gBACf61Z,EAAe,QACfzsR,EAAO,QACPsqR,EAAO,KACPlsZ,EAAI,eACJywZ,EAAiBV,GAAK,WACtBW,EAAa,CAAC,EAAC,OACfpxR,EAAS,QAAO,oBAChBmpR,EAAsB57J,GAAI,mBAC1Bs7J,EAAqBmI,EAAyB,gBAC9CK,GACEltb,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCyL,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrCoob,uBACAqE,aACAF,YACAx3Z,WACA8mI,WAEIx6I,EAlKkBjC,KACxB,MAAM,QACJiC,EAAO,OACPw6I,EAAM,SACN9mI,EAAQ,UACRw3Z,EAAS,WACTE,GACErta,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,QACPnE,UAAW,CAAC,YAAa,UAAS2jB,EAAAA,GAAAA,GAAWw8I,MAC7C1nJ,MAAO,CAAC,QAAS,eAAckL,EAAAA,GAAAA,GAAWw8I,KAAW,cAAax8I,EAAAA,GAAAA,GAAWrhB,OAAO+2B,MAAcw3Z,GAAa,iBAAkBE,GAAc,oBAEjJ,OAAOlra,EAAAA,GAAAA,GAAeD,EAAOyqa,GAAuB1qa,EAAQ,EAqJ5CG,CAAkBpC,GAC5B+ta,EAAgBzmb,EAAAA,SAuBhB0mb,GAAiB9uZ,EAAAA,GAAAA,GAAMyuZ,GACvBM,EAAqB3mb,EAAAA,SAAc,KAChC,CACL4mb,QAASF,KAEV,CAACA,IACJ,OAAoBtra,EAAAA,GAAAA,KAAKoqa,IAAYv0a,EAAAA,GAAAA,GAAS,CAC5CnJ,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,GAC9B85a,sBAAsB,EACtBz1a,WAAY,CACVu3a,SAAU4B,IAEZhG,gBAAiB,CACf3wI,UAAU19R,EAAAA,GAAAA,GAAS,CACjB+sa,qBACAhja,GAAI8oa,GACHC,IAELrC,qBAAsBA,EACtBK,QAASA,EACTlsZ,KAAMA,EACNt1B,IAAKA,EACLk3J,QAvC0B95I,IACtB85I,GACFA,EAAQ95I,GAIL8oa,EAAcxlb,UAGnBwlb,EAAcxlb,QAAU,KACpBijb,GACFA,EAAgBvma,GAEdoka,GACFA,EAAQpka,EAAO,iBACjB,EAyBAjF,WAAYA,GACXnJ,EAAO,CACRhW,UAAuB6hB,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACxD8yQ,QAAQ,EACRP,GAAI3tP,EACJje,QAASoma,EACT7ia,KAAM,gBACLqra,EAAiB,CAClBjtb,UAAuB6hB,EAAAA,GAAAA,KAAKqqa,GAAiB,CAC3C39a,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQ3lB,WACxBypK,YAvDkB9gJ,IAGtB8oa,EAAcxlb,QAAU0c,EAAMQ,SAAWR,EAAM0pH,aAAa,EAqDxD3uH,WAAYA,EACZnf,UAAuB6hB,EAAAA,GAAAA,KAAKuqa,IAAa10a,EAAAA,GAAAA,GAAS,CAChD+J,GAAIsra,EACJ1B,UAAW,GACXzpa,KAAM,SACN,mBAAoBira,EACpB,kBAAmBM,GAClBH,EAAY,CACbz+a,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQlN,MAAO84a,EAAWz+a,WAC1C4Q,WAAYA,EACZnf,UAAuB6hB,EAAAA,GAAAA,KAAKyra,GAAc1mb,SAAU,CAClDxI,MAAOgvb,EACPptb,SAAUA,cAMtB,oBC1Qe,SAASkT,GAAcR,GACpC,MAAM,MACJC,EAAK,KACLzM,EAAI,MACJnG,GACE2S,EACJ,OAAKC,GAAUA,EAAMC,YAAeD,EAAMC,WAAW1M,IAAUyM,EAAMC,WAAW1M,GAAM4M,cAG/EC,EAAAA,GAAAA,GAAaJ,EAAMC,WAAW1M,GAAM4M,aAAc/S,GAFhDA,CAGX,CCQA,SAASwtb,GAAiB7/Y,EAAO8/Y,EAAgB3/S,EAAY4/S,EAAeC,GAC1E,MAAOjpb,EAAOkpb,GAAYlnb,EAAAA,UAAe,IACnCinb,GAAS7/S,EACJA,EAAWngG,GAAO7oB,QAEvB4oa,EACKA,EAAc//Y,GAAO7oB,QAKvB2oa,IAwBT,OAtBAzvZ,EAAAA,GAAAA,IAAkB,KAChB,IAAI1pB,GAAS,EACb,IAAKw5H,EACH,OAEF,MAAM+/S,EAAY//S,EAAWngG,GACvBmgZ,EAAcA,KAIdx5a,GACFs5a,EAASC,EAAU/oa,QACrB,EAKF,OAHAgpa,IAEAD,EAAUzsX,YAAY0sX,GACf,KACLx5a,GAAS,EACTu5a,EAAUnyY,eAAeoyY,EAAY,CACtC,GACA,CAACngZ,EAAOmgG,IACJppI,CACT,CAGA,MAAMqpb,GAAiCrnb,EAAiC,qBACxE,SAASsnb,GAAiBrgZ,EAAO8/Y,EAAgB3/S,EAAY4/S,EAAeC,GAC1E,MAAMM,EAAqBvnb,EAAAA,aAAkB,IAAM+mb,GAAgB,CAACA,IAC9DS,EAAoBxnb,EAAAA,SAAc,KACtC,GAAIinb,GAAS7/S,EACX,MAAO,IAAMA,EAAWngG,GAAO7oB,QAEjC,GAAsB,OAAlB4oa,EAAwB,CAC1B,MAAM,QACJ5oa,GACE4oa,EAAc//Y,GAClB,MAAO,IAAM7oB,CACf,CACA,OAAOmpa,CAAkB,GACxB,CAACA,EAAoBtgZ,EAAO+/Y,EAAeC,EAAO7/S,KAC9C4iD,EAAa+6I,GAAa/kU,EAAAA,SAAc,KAC7C,GAAmB,OAAfonI,EACF,MAAO,CAACmgT,EAAoB,IAAM,QAEpC,MAAM33F,EAAiBxoN,EAAWngG,GAClC,MAAO,CAAC,IAAM2oT,EAAexxU,QAASkmT,IAEpCsrB,EAAel1R,YAAY4pQ,GACpB,KACLsrB,EAAe56S,eAAesvR,EAAO,GAEvC,GACD,CAACijH,EAAoBngT,EAAYngG,IAEpC,OADcogZ,GAA+BtiH,EAAW/6I,EAAaw9P,EAEvE,CACe,SAASC,GAAcC,GAA0B,IAAdrzb,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC3D,MAAM2K,EAAQw6T,KAKRihH,EAAsC,qBAAX1wZ,QAAuD,qBAAtBA,OAAOmwG,YACnE,eACJ2/S,GAAiB,EAAK,WACtB3/S,GAAaugT,EAAoB1wZ,OAAOmwG,WAAa,MAAI,cACzD4/S,EAAgB,KAAI,MACpBC,GAAQ,GACNx6a,GAAc,CAChBhN,KAAM,mBACNnG,MAAOjF,EACP6X,UAOF,IAAI+6B,EAA8B,oBAAfygZ,EAA4BA,EAAWx7a,GAASw7a,EACnEzgZ,EAAQA,EAAMrvC,QAAQ,eAAgB,IAYtC,YATuEvC,IAAnCgyb,GAA+CC,GAAmBR,IAC5D7/Y,EAAO8/Y,EAAgB3/S,EAAY4/S,EAAeC,EAS9F,OCjEA,GA9Ccr2a,IAAmC,IAAlC,OAAE+0C,EAAM,WAAEiiY,EAAU,KAAEz6a,GAAMyD,EACzC,MACMm1a,EAAa0B,GADL/gH,KACyBjwT,YAAYiT,KAAK,OAClDutZ,EAAcA,KAClB2Q,GAAW,EAAM,EAEnB,OACExsa,EAAAA,GAAAA,KAACysa,GAAM,CACLx5Z,SAAU03Z,EACVlwZ,KAAM8vB,EACNo8X,QAAS9K,EACT,kBAAgB,0BAAyB19a,UAEzCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+GAA8GvO,SAAA,EAC3H6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAAA,OAAKsrE,ynIAAsB8pK,IAAI,OAAO1oP,UAAU,yBAElDsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,mBAI1D6hB,EAAAA,GAAAA,KAAA,OAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+DAA8DvO,SACxE4T,OAGLiO,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2EAA0EvO,UACvF6hB,EAAAA,GAAAA,KAAA,OACEq8I,QAASw/Q,EACTnva,UAAU,oIAAmIvO,UAE7I6hB,EAAAA,GAAAA,KAAA,OACEsrE,iXACA5+E,UAAU,qBACV0oP,IAAI,4BAOL,ECoBb,GArEe5/O,IASR,IATS,KACdvX,EAAI,SACJyub,EAAQ,KACRr+a,EAAI,QACJgta,EAAO,QACPsR,EAAO,WACPC,EAAU,WACVhiC,EAAU,iBACViiC,GACDr3a,EACC,MAAOs3a,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAC/D,OACEtxK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACGkQ,GAAQA,EAAK7U,QACZmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kLAAiLvO,SACzL,OAAJkQ,QAAI,IAAJA,OAAI,EAAJA,EAAM5L,KAAI,CAACsqb,EAAQhwb,KAEhBijB,EAAAA,GAAAA,KAACgta,GAAa,CAEZv0J,MAAOs0J,EAAOx9Q,IACd0rQ,UAAW8R,EAAOE,QAClB/R,UAAW6R,EAAO/mD,KAClBs1C,OAAQyR,EAAOz5L,IACf0nL,UAAW,gBAAgB+R,EAAOG,cAClC7ob,KAAK,GACL0+L,MAAOgqP,EAAOhqP,MACd83O,UAAWhuG,GACXqqG,MAAO6V,EAAO7V,MACdiE,KAAM4R,EAAO5R,KACbE,QAASA,EACTP,SAAiC,gBAAvBiS,EAAOI,YACjB/R,uBAAwBA,GAbb,OAAN2R,QAAM,IAANA,OAAM,EAANA,EAAQ/mD,WAkBrBhmX,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,GACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAASwwR,EACTngb,UAAU,yLAAwLvO,SACnM,cAGC,WAIR6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2FAA0FvO,UACrGysZ,IAAeywB,GAAUr7Z,EAAAA,GAAAA,KAACg8Z,GAAO,KAAMh8Z,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAAE,eAG9CysZ,GACC5qY,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,2FAA0F5xU,UACnG6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEP,MACJjjN,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,gGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,MAGhC,ECYP,GAtEe5la,IASR,IATS,KACdvX,EAAI,SACJyub,EAAQ,KACRr+a,EAAI,QACJgta,EAAO,QACPsR,EAAO,WACPC,EAAU,WACVhiC,EAAU,iBACViiC,GACDr3a,EACC,MAAOs3a,EAAoB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAC9D,OACEtxK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACGkQ,GAAQA,EAAK7U,QACZmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACCw3E,QAAQ/qB,IAAI,OAAQv8C,IACnB2R,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kLAAiLvO,SACzL,OAAJkQ,QAAI,IAAJA,OAAI,EAAJA,EAAM5L,KAAI,CAACsqb,EAAQhwb,KAEhBijB,EAAAA,GAAAA,KAACgta,GAAa,CAEZv0J,MAAOs0J,EAAOx9Q,IACd0rQ,UAAW8R,EAAOE,QAClB/R,UAAW6R,EAAO/mD,KAClBs1C,OAAQyR,EAAOz5L,IACf0nL,UAAW,gBAAgB+R,EAAOG,cAClC7ob,KAAK,GACL0+L,MAAOgqP,EAAOhqP,MACd83O,UAAWhuG,GACXqqG,MAAO6V,EAAO7V,MACdiE,KAAM4R,EAAO5R,KACbE,QAASA,EACTP,SAAiC,gBAAvBiS,EAAOI,YACjB/R,uBAAwBA,GAbb,OAAN2R,QAAM,IAANA,OAAM,EAANA,EAAQ/mD,WAkBrBhmX,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,GACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAASwwR,EACTngb,UAAU,yLAAwLvO,SACnM,cAGC,WAIR6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2FAA0FvO,SACtGk9a,GAAUr7Z,EAAAA,GAAAA,KAACg8Z,GAAO,KAAMh8Z,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAAE,cAG9BysZ,GACC5qY,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,2FAA0F5xU,UACnG6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEP,MACJjjN,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,gGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,MAGhC,ECCP,GA1EkB5la,IASX,IATY,KACjBvX,EAAI,SACJyub,EAAQ,KACRr+a,EAAI,QACJgta,EAAO,QACPsR,EAAO,WACPC,EAAU,WACVhiC,EAAU,iBACViiC,GACDr3a,EACC,MAAOs3a,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAC/D,OACEtxK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACGysZ,GACC5qY,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,kFAAiF5xU,UAC1F6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEP,KACH50N,GAAQA,EAAK7U,QACZmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kLAAiLvO,SACzL,OAAJkQ,QAAI,IAAJA,OAAI,EAAJA,EAAM5L,KAAI,CAACsqb,EAAQhwb,KAEhBijB,EAAAA,GAAAA,KAACgta,GAAa,CAEZv0J,MAAOs0J,EAAOx9Q,IACd0rQ,UAAW8R,EAAOE,QAClB/R,UAAW6R,EAAO/mD,KAClBs1C,OAAQyR,EAAOz5L,IACf0nL,UAAW,gBAAgB+R,EAAOG,cAClC7ob,KAAK,GACL0+L,MAAOgqP,EAAOhqP,MACd83O,UAAWhuG,GACXqqG,MAAO6V,EAAO7V,MACdiE,KAAM4R,EAAO5R,KACbE,QAASA,EACTP,SAAiC,gBAAvBiS,EAAOI,YACjB/R,uBAAwBA,GAbb,OAAN2R,QAAM,IAANA,OAAM,EAANA,EAAQ/mD,WAkBrBhmX,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,GACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAASwwR,EACTngb,UAAU,yLAAwLvO,SACnM,cAGC,WAIR6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2FAA0FvO,UACrGysZ,IAAeywB,GAAUr7Z,EAAAA,GAAAA,KAACg8Z,GAAO,KAAMh8Z,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAAE,eAG9CysZ,GACC5qY,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,2FAA0F5xU,UACnG6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEP,MACJjjN,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,gGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,MAGhC,ECDP,GArEgB5la,IAST,IATU,KACfvX,EAAI,SACJyub,EAAQ,KACRr+a,EAAI,QACJgta,EAAO,QACPsR,EAAO,WACPC,EAAU,WACVhiC,EAAU,iBACViiC,GACDr3a,EACC,MAAOs3a,EAAoB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAC9D,OACEtxK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACGkQ,GAAQA,EAAK7U,QACZmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kLAAiLvO,SACzL,OAAJkQ,QAAI,IAAJA,OAAI,EAAJA,EAAM5L,KAAI,CAACsqb,EAAQhwb,KAEhBijB,EAAAA,GAAAA,KAACgta,GAAa,CAEZv0J,MAAOs0J,EAAOx9Q,IACd0rQ,UAAW8R,EAAOE,QAClB/R,UAAW6R,EAAO/mD,KAClBs1C,OAAQyR,EAAOz5L,IACf0nL,UAAW,gBAAgB+R,EAAOG,cAClC7ob,KAAK,GACL0+L,MAAOgqP,EAAOhqP,MACd83O,UAAWhuG,GACXqqG,MAAO6V,EAAO7V,MACdiE,KAAM4R,EAAO5R,KACbE,QAASA,EACTP,SAAiC,gBAAvBiS,EAAOI,YACjB/R,uBAAwBA,GAbb,OAAN2R,QAAM,IAANA,OAAM,EAANA,EAAQ/mD,WAkBrBhmX,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,GACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAASwwR,EACTngb,UAAU,yLAAwLvO,SACnM,cAGC,WAIR6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2FAA0FvO,SACtGk9a,GAAUr7Z,EAAAA,GAAAA,KAACg8Z,GAAO,KAAMh8Z,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAAE,cAG9BysZ,GACC5qY,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,2FAA0F5xU,UACnG6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEP,MACJjjN,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,gGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,MAGhC,EC3DMiS,GAAmBviC,GAAU,CACxCnT,YAAa,cACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB9B,UAAY+d,IAAO,CACjBq2X,2BAA4Br2X,EAAQprB,MAAM,CACxCA,MAAOj7B,IAAA,IAAC,YACN28a,EAAc,GAAE,KAChBnmP,EAAO,EAAC,MACRj9G,EAAQ,IAAI,UACZqjW,EAAY,IACb58a,EAAA,MAAM,CACLgR,IACEosY,GAAc8F,qBACd,gBACAy5B,EACA,SACAnmP,EACA,UACAj9G,EACA,cACAqjW,EACFliY,OAAQ,MACT,IAGHmiY,kBAAmBx2X,EAAQprB,MAAM,CAC/BA,MAAO,WAAa,MAAM,CACxBjqB,IAAKosY,GAAc+E,oBAAsB,KAD5B5sZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAEhBmlD,OAAQ,MACT,IAiBHoiY,yBAA0Bz2X,EAAQprB,MAAM,CACtCA,MAAOnhB,IAAA,IAAC,YAAE6ia,EAAc,GAAE,KAAEnmP,EAAO,EAAC,MAAEj9G,EAAQ,IAAI,QAAEjD,EAAU,IAAIx8D,EAAA,MAAM,CACtE9I,IACEosY,GAAc+F,mBACd,gBACAw5B,EACA,SACAnmP,EACA,UACAj9G,EACA,YACAjD,EACF57B,OAAQ,MACT,IAEHqiY,4BAA6B12X,EAAQprB,MAAM,CACzCA,MAAOu2R,IAAA,IAAC,YAAEmrH,EAAc,GAAE,KAAEnmP,EAAO,EAAC,MAAEj9G,EAAQ,IAAI,QAAEjD,EAAU,IAAIk7O,EAAA,MAAM,CACtExgT,IACEosY,GAAcgG,sBACd,gBACAu5B,EACA,SACAnmP,EACA,UACAj9G,EACA,YACAjD,EACF57B,OAAQ,MACT,IAEHsiY,gBAAiB32X,EAAQprB,MAAM,CAC7BA,MAAO,WAAa,MAAM,CACxBjqB,IAAKosY,GAAcgF,kBAAoB,KAD1B7sZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAEhBmlD,OAAQ,MACT,IAEHuiY,mBAAoB52X,EAAQprB,MAAM,CAChCA,MAAO,WAAa,MAAM,CACxBjqB,IAAKosY,GAAciF,qBAAuB,KAD7B9sZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAEhBmlD,OAAQ,MACT,SAKM,mCACXwiY,GAAkC,iCAClCC,GAAgC,oCAChCC,GAAmC,0BACnCC,GAAyB,wBACzBC,GAAuB,2BACvBC,IAGEd,GC6LJ,GA/RcrtD,KACZ,MAAOouD,EAAiBC,IAAsBp9P,EAAAA,EAAAA,UAAS,KAChD07P,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChC27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,IAEtC41I,EAAcI,GAAmBR,KAClC+nH,EAAgB3nH,EAAa3kU,IAAI,YAEjC2qb,EAAmBA,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,GAGvCC,EAAWC,IAAgB19P,EAAAA,EAAAA,UAASu9P,GAAiB,cAEtD,KAAEngb,EAAI,WAAEu8Y,EAAU,QAAEnpU,EAAO,UAAEo7T,EAAS,QAAEmM,GAC5C8kC,GACE,CACE1mP,KAAMulP,EACNxiW,MAdQ,EAeRqjW,UAAWkB,EACXnB,YAAa,MAIZqB,EAAYC,IAAgB59P,EAAAA,EAAAA,UAAS,CAC1Cp0J,GAAI,EACJxiC,IAAK,YACLgK,KAAM,cACN2a,WACEgB,EAAAA,GAAAA,KAAC8ua,GAAS,CACRnC,QAASA,EACTC,WAAYA,EACZhiC,WAAYA,EACZiiC,iBAAkBA,EAClBx+a,KAAM+/a,MAIPxjC,GAA0C,GAA5Bv8Y,EAAKssC,SAASs0X,aAC/BxtV,GAAU,GAyJZ,OAhHAkvG,EAAAA,EAAAA,YAAU,KACR49P,EAAkB,OAAJlgb,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAAStsC,KAAK0gb,WAAWnC,YAE7C,IAAIoC,EAAqB,OAAJ3gb,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAAStsC,KAAKA,KAAK5L,KAAKmqB,IAAI,IAAAqia,EAAA,MAAM,CAC3D37L,IAAK1mO,EAAK0mO,IACV0yI,KAAkB,QAAdipD,EAAEria,EAAKm5W,eAAO,IAAAkpD,EAAAA,EAAIria,EAAKsia,MAC3B3/Q,IAAK3iJ,EAAKuia,UAAUvta,IACpBmhL,MAAOn2K,EAAKi5W,UACZroQ,KAAMx6H,MAAMiI,QAAQ2hB,EAAKk5W,kBACrBl5W,EAAKk5W,iBAAiB9lY,KAAK,KAC3B4sB,EAAKk5W,iBACTonD,YAAatga,EAAK49K,SAClByiP,QAASrga,EAAKwia,aACdlY,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXnC,YAAavga,EAAKuga,YACnB,IAUD,OAREkB,EADE1B,EAAU,EACQ4C,GAA0B,IACzCA,KACAP,GAGcA,GAGbN,GACN,IAAK,UACHG,EAAa,CACXx0b,IAAK,UACLgK,KAAM,YACN2a,WACEgB,EAAAA,GAAAA,KAACwva,GAAO,CACNnhb,KACEs+a,EAAU,EACN,IAAIyB,KAAoBY,GACxBA,EAENrC,QAASA,EACTC,WAAgB,OAAJv+a,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAAStsC,KAAK0gb,WAAWnC,WAC3ChiC,WAAYA,EACZiiC,iBAAkBA,MAIxB,MACF,IAAK,SACHgC,EAAa,CACXx0b,IAAK,SACLgK,KAAM,UAEN2a,WACEgB,EAAAA,GAAAA,KAACyva,GAAM,CACLphb,KACEs+a,EAAU,EACN,IAAIyB,KAAoBY,GACxBA,EAENrC,QAASA,EACTC,WAAgB,OAAJv+a,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAAStsC,KAAK0gb,WAAWnC,WAC3ChiC,WAAYA,EACZiiC,iBAAkBA,MAIxB,MACF,IAAK,SACHgC,EAAa,CACXx0b,IAAK,SACLgK,KAAM,UAEN2a,WACEgB,EAAAA,GAAAA,KAAC0va,GAAM,CACLrhb,KACEs+a,EAAU,EACN,IAAIyB,KAAoBY,GACxBA,EAENrC,QAASA,EACTC,WAAgB,OAAJv+a,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAAStsC,KAAK0gb,WAAWnC,WAC3ChiC,WAAYA,EACZiiC,iBAAkBA,MAIxB,MACF,QACEgC,EAAa,CACXx0b,IAAK,YACLgK,KAAM,cAEN2a,WACEgB,EAAAA,GAAAA,KAAC8ua,GAAS,CACRzgb,KACEs+a,EAAU,EACN,IAAIyB,KAAoBY,GACxBA,EAENrC,QAASA,EACTC,WAAgB,OAAJv+a,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAAStsC,KAAK0gb,WAAWnC,WAC3ChiC,WAAYA,EACZiiC,iBAAkBA,MAK5B,GACC,CAACx+a,KACJsiL,EAAAA,EAAAA,YAAU,KACR29P,EAAW,EAAE,GAEZ,CAACI,KAEF/ua,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mGACVwc,MAAO,CACLu6W,gBAAiB,QAAQyvC,GAAcf,0BACvCxuC,eAAgB,QAChBC,mBAAoB,SACpBC,iBAAkB,aAClB1lY,UAEFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uGAAsGvO,SAAA,EACnH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sEAAqEvO,SAAC,+BAGpF6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6EAA4EvO,SAAC,2OAYlGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4CAA2CvO,SAAA,EACxD6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CACV,cAAY,eACZl2X,UAAU,uMAEZsT,EAAAA,GAAAA,KAAC4iX,GAAW,CACV,cAAY,eACZl2X,UAAU,uMAEZiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mHAAkHvO,SAAA,EAC/H6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,oEAAmEvO,SAAC,cAGlF6hB,EAAAA,GAAAA,KAAA,MACED,KAAK,sBACLrT,UAAU,4VAgBAvO,SAEA,OAATyuU,SAAS,IAATA,QAAS,EAATA,GAAWnqU,KAAI,CAACktb,EAAM5yb,KAEnBijB,EAAAA,GAAAA,KAAA,MAEEtT,UAAW,uCACTkib,EAAWv0b,MAAQs1b,EAAKt1b,IAAM,kBAAoB,IAEpDgiK,QAASA,IAtNCszR,KACxBhB,EAAagB,EAAKt1b,KACdwsU,EAAax7S,IAAI,cACnBw7S,EAAaznR,OAAO,YACpB6nR,EAAgBJ,GAClB,EAiN6B+oH,CAAiBD,GAAMxxb,SAErCwxb,EAAKtrb,MANDsrb,EAAKt1b,aAepBslB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4KAA2KvO,SAAA,EACxL6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4GAA2GvO,UACxH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,SAAKywb,EAAWvqb,SAEjBo9E,IACCzhE,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6CAA4CvO,UACzD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,0BAAyBvO,SAAC,2BAG1Cywb,EAAW5va,kBAGZ,EC1RV,GAfqBxJ,IAA4B,IAA3B,MAAEutL,EAAK,WAAE8sP,GAAYr6a,EACzC,OACEmK,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0EAAyEvO,SAAA,EACtF6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8DAA6DvO,SACxE4kM,IAEF8sP,IACC7va,EAAAA,GAAAA,KAACokT,GAAI,CAAC3tK,GAAIo5R,EAAYnjb,UAAU,6BAA4BvO,SAAC,eAI3D,24BCoMV,GA7LoBqX,IAQb,IAADmla,EAAAC,EAAAkV,EAAA,IARe,KACnBlja,EAAI,GACJiQ,EAAE,UACFm+Y,EAAS,SACTxwO,EAAQ,KACRvsM,EAAI,MACJi5a,EAAK,uBACLkE,GACD5la,EACC,MAAMu6a,EAAgB/U,EAAY,IAAMn+Y,EAAK,KAAU,OAAJjQ,QAAI,IAAJA,OAAI,EAAJA,EAAMm5W,SACnD+0C,EACJluZ,EAAKkuZ,UACW,eAAhBluZ,EAAKoja,SACgB,gBAArBpja,EAAKuga,YAEP,IACE9U,GACEhqa,KAAMmta,EAAc,WAAE5wB,EAAU,UAAE/N,EAAS,QAAEp7T,IAC7Cw4V,KAEwE,IAADwB,EAAAC,GAAtE9wB,GAAc/N,GAAqD,IAA1B,QAAd89B,EAAAa,SAAc,IAAAb,GAAU,QAAVC,EAAdD,EAAgBhgY,gBAAQ,IAAAigY,OAAV,EAAdA,EAA0B3L,aACxDuM,EAA+B,QAAjBC,EAAGD,SAAc,IAAAC,GAAU,QAAVC,EAAdD,EAAgB9gY,gBAAQ,IAAA+gY,OAAV,EAAdA,EAA0Brta,KAC3Cmta,EAAiBA,EAAe/4a,KAAKmqB,GAASA,EAAK+uZ,cAEnDH,EAAiB,GAOnB,IAAII,GAAgB,EAEhBJ,EAAej0X,SAAS36B,EAAK0mO,OAC/BsoL,GAAgB,GAElB,MAAMqU,EAAe,CACnBC,GACAC,GACAC,GACAC,GACAC,IAiDF,OAJA3/P,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkBiwH,GAA4B,GAClE,KAGDr4Z,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAI,IACO,SAATx4J,GAAmB2uB,EAAKm5W,UAAY+0C,EAAW,IAAMiV,EAAgB,KAEvE1zR,QArEgBw/Q,KACdf,GACFM,GAA0BA,GAAuB,EACnD,EAkEuBj9a,UAErBwhB,EAAAA,GAAAA,MAAA,OAEEjT,UAAW,+FAA+FvO,SAAA,EAE1GwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAW,8BACF,WAAPmwB,EACI,4DACA,wCACgC1+B,SAAA,CAErCyuB,EAAKuia,YACJnva,EAAAA,GAAAA,KAAA,OACEtT,UAAU,4CACV4+E,IAAK1+D,EAAKuia,UACV99Q,QAASzgK,IAAwB,IAAvB,cAAEq7H,GAAer7H,EACzBq7H,EAAc/uD,QAAU,KACxB+uD,EAAc/iH,MAAM3K,QAAU,MAAM,KAwBxCqO,EAAKuia,WA/FMvia,IACfA,EAAKoja,QACc,mBAAjBpja,EAAKoja,SACPr6W,QAAQ/qB,IAAI,QAASh+B,IACd5M,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKilW,GAAe7jb,UAAU,oBAChB,mBAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKklW,GAAY9jb,UAAU,mBACb,aAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKmlW,GAAc/jb,UAAU,mBACf,WAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKolW,GAAahkb,UAAU,mBACd,gBAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKqlW,GAAiBjkb,UAAU,mBAClB,cAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKslW,GAAelkb,UAAU,mBAChB,YAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKulW,GAASnkb,UAAU,mBACV,UAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKwlW,GAAOpkb,UAAU,mBACR,aAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKylW,GAAUrkb,UAAU,mBACX,UAAjBkgB,EAAKoja,SACPhwa,EAAAA,GAAAA,KAAA,OAAKsrE,IAAK0lW,GAAOtkb,UAAU,mBAG3Boua,GACL96Z,EAAAA,GAAAA,KAAA,OACEsrE,IAAK2kW,EAAaj0b,KAAKgrC,MAAMhrC,KAAK+iF,SAAWkxW,EAAaz2b,SAC1DkT,UAAU,mBAEV,KAICoua,GACL96Z,EAAAA,GAAAA,KAAA,OACEsrE,IAAK2kW,EAAaj0b,KAAKgrC,MAAMhrC,KAAK+iF,SAAWkxW,EAAaz2b,SAC1DkT,UAAU,mBAEV,KAwDoBqqS,CAAYnqR,OAElC5M,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mCAAkCvO,UAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wBAAuBvO,SACzB,SAATF,EAAsB,OAAJ2uB,QAAI,IAAJA,OAAI,EAAJA,EAAMoja,QAAU,QAGvCrwa,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iCAAgCvO,SAAA,CAC5C28a,GACC96Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,wDAAuDvO,SAAC,oBAIxE,GAEDyuB,EAAKsqZ,OACgC,GAApCjoa,OAAO2d,EAAKsqZ,MAAMzza,MAAM,KAAK,KACO,QAApCvH,OAAO0wB,EAAKsqZ,OAAOhta,gBAClB4wa,IACAc,IACC57Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,yEAAwEvO,SACrFk5a,GACCf,GAAsB1pZ,EAAKsqZ,MAAMzza,MAAM,KAAK,KAD7C4za,YAKiC,QAD5ByY,EACJ7gb,OAAO2d,EAAKsqZ,MAAMzza,MAAM,KAAK,WAAG,IAAAqsb,OAAA,EAAhCA,EAAkCvna,QAAQ,IAC1C,aAGLqE,EAAKsqZ,OAC8B,GAApCjoa,OAAO2d,EAAKsqZ,MAAMzza,MAAM,KAAK,KACO,QAApCvH,OAAO0wB,EAAKsqZ,OAAOhta,iBAClB4wa,IACAc,IACC57Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,yEAAwEvO,SAAC,SAK5Fy9a,IACC57Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,wFAAuFvO,SAAC,yBAjFnG,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,KAuFR,ECzMLo0Z,GAAiB,CACrBvhK,aAAc,IACdyC,eAAgB,EAChB77M,MAAM,EACNm6M,QAAQ,EACR8B,cAAc,EACdhD,UAAU,EACV8B,eAAe,EAEfU,WAAY,CACV,CACEllQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,QAwXtB,GAlXcswG,KAAO,IAADkxD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClB,MAAOjF,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAE/D,IACE5iL,KAAM2jb,EACNpnC,WAAYqnC,EACZp1C,UAAWq1C,EACXzwW,QAAS0wW,GACPnE,GAAoC,CACtCT,YAAa,GACbrmW,QAAS,MACTkgH,KAAM,EACNj9G,MAAO,MAGP97E,KAAM+jb,EACNxnC,WAAYynC,EACZx1C,UAAWy1C,EACX7wW,QAAS8wW,GACPvE,GAAoC,CACtCT,YAAa,GACbrmW,QAAS,WACTkgH,KAAM,EACNj9G,MAAO,MAIP97E,KAAMmkb,EACN5nC,WAAY6nC,EACZ51C,UAAW61C,EACXjxW,QAASkxW,GACP3E,GAAoC,CACtCT,YAAa,GACbrmW,QAAS,SACTkgH,KAAM,EACNj9G,MAAO,MAIP97E,KAAMukb,EACNhoC,WAAYioC,EACZh2C,UAAWi2C,EACXrxW,QAASsxW,GACP/E,GAAoC,CACtCT,YAAa,GACbrmW,QAAS,YACTkgH,KAAM,EACNj9G,MAAO,MAIP97E,KAAM2kb,EACNpoC,WAAYqoC,EACZp2C,UAAWq2C,EACXzxW,QAAS0xW,GACPnF,GAAoC,CACtCT,YAAa,GACbrmW,QAAS,KACTkgH,KAAM,EACNj9G,MAAO,KAET,GACE8nW,GACAI,GACAI,GACAI,GACAI,EAEA,OACEjza,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4CAA2CvO,UACxD6hB,EAAAA,GAAAA,KAACijN,GAAM,MAKb,GACEsvN,GACsC,IAA1B,QAAZrB,EAAAkB,SAAY,IAAAlB,GAAU,QAAVC,EAAZD,EAAcv2Y,gBAAQ,IAAAw2Y,OAAV,EAAZA,EAAwBliB,aACxBkjB,GACiC,IAA1B,QAAPf,EAAAY,SAAO,IAAAZ,GAAU,QAAVC,EAAPD,EAASz2Y,gBAAQ,IAAA02Y,OAAV,EAAPA,EAAmBpiB,YAEnB,OACEjvZ,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,0DAAyDvO,UACtE6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,2BAIT,IAAIi1b,EAAuB,GACvBd,GAA2D,IAA1B,QAAZhB,EAAAc,SAAY,IAAAd,GAAU,QAAVC,EAAZD,EAAc32Y,gBAAQ,IAAA42Y,OAAV,EAAZA,EAAwBtiB,cAC/CmjB,EAAeA,EAAaz3Y,SAAStsC,KAAKA,KAC1C+kb,EAAuBhB,EAAa3vb,KAAKmqB,IAAI,IAAAyma,EAAA,MAAM,IAC9Czma,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhBkE,EAAEzma,EAAKuia,iBAAS,IAAAkE,OAAA,EAAdA,EAAgBzxa,IAC5B,KAGH,IAAI0xa,EAAwB,GACyC,IAADC,EAAAC,EAAhEV,GAA6D,IAA1B,QAAbtB,EAAAoB,SAAa,IAAApB,GAAU,QAAVC,EAAbD,EAAe72Y,gBAAQ,IAAA82Y,OAAV,EAAbA,EAAyBxiB,cACjD2jB,EAA6B,QAAhBW,EAAGX,SAAa,IAAAW,OAAA,EAAbA,EAAe54Y,SAAStsC,KAAKA,KAC7Cilb,EAAqC,QAAhBE,EAAGZ,SAAa,IAAAY,OAAA,EAAbA,EAAe/wb,KAAKmqB,IAAI,IAAA6ma,EAAA,MAAM,IACjD7ma,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhBsE,EAAE7ma,EAAKuia,iBAAS,IAAAsE,OAAA,EAAdA,EAAgB7xa,IAC5B,KAGH,IAAI8xa,EAAqB,GACsC,IAADC,EAAAC,EAA1DlB,GAAuD,IAA1B,QAAVhB,EAAAc,SAAU,IAAAd,GAAU,QAAVC,EAAVD,EAAY/2Y,gBAAQ,IAAAg3Y,OAAV,EAAVA,EAAsB1iB,cAC3CujB,EAAuB,QAAbmB,EAAGnB,SAAU,IAAAmB,OAAA,EAAVA,EAAYh5Y,SAAStsC,KAAKA,KACvCqlb,EAA+B,QAAbE,EAAGpB,SAAU,IAAAoB,OAAA,EAAVA,EAAYnxb,KAAKmqB,IAAI,IAAAina,EAAA,MAAM,IAC3Cjna,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhB0E,EAAEjna,EAAKuia,iBAAS,IAAA0E,OAAA,EAAdA,EAAgBjya,IAC5B,KAGH,IAAIkya,EAAiB,GACkC,IAADC,EAAAC,EAAlDd,GAA+C,IAA1B,QAANtB,EAAAoB,SAAM,IAAApB,GAAU,QAAVC,EAAND,EAAQj3Y,gBAAQ,IAAAk3Y,OAAV,EAANA,EAAkB5iB,cACnC+jB,EAAe,QAATe,EAAGf,SAAM,IAAAe,OAAA,EAANA,EAAQp5Y,SAAStsC,KAAKA,KAC/Bylb,EAAuB,QAATE,EAAGhB,SAAM,IAAAgB,OAAA,EAANA,EAAQvxb,KAAKmqB,IAAI,IAAAqna,EAAA,MAAM,IACnCrna,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhB8E,EAAErna,EAAKuia,iBAAS,IAAA8E,OAAA,EAAdA,EAAgBrya,IAC5B,KAGH,IAAIsya,EAAkB,GACmC,IAADC,EAAAC,EAApDlC,GAAiD,IAA1B,QAAPJ,EAAAE,SAAO,IAAAF,GAAU,QAAVC,EAAPD,EAASn3Y,gBAAQ,IAAAo3Y,OAAV,EAAPA,EAAmB9iB,cACrC+iB,EAAiB,QAAVmC,EAAGnC,SAAO,IAAAmC,OAAA,EAAPA,EAASx5Y,SAAStsC,KAAKA,KACjC6lb,EAAyB,QAAVE,EAAGpC,SAAO,IAAAoC,OAAA,EAAPA,EAAS3xb,KAAKmqB,IAAI,IAAAyna,EAAA,MAAM,IACrCzna,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhBkF,EAAEzna,EAAKuia,iBAAS,IAAAkF,OAAA,EAAdA,EAAgBzya,IAC5B,KASH,OACEjC,EAAAA,GAAAA,MAAA,OACE,cAAY,2BACZjT,UAAU,gCAA+BvO,SAAA,EAEzC6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CACV,cAAY,eACZl2X,UAAU,uMAEZsT,EAAAA,GAAAA,KAAC4iX,GAAW,CACV,cAAY,eACZl2X,UAAU,uMAEZsT,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACL6hB,EAAAA,GAAAA,KAAA,OACItT,UAAU,mGACVwc,MAAO,CACLu6W,gBAAiB,QAAQyvC,GAAcb,2BACvC1uC,eAAgB,QAChBC,mBAAoB,SACpBC,iBAAkB,aAClB1lY,UAQF6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oFAAmFvO,UAChG6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4JAA2JvO,SAAC,sBAU/K+1b,EAAgB16b,OAAS,IACxBmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,OACN8sP,WACEqE,EAAgB16b,OAAS,EAAI,8BAAgC,QAGjEwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4EAA2EvO,UACxF6hB,EAAAA,GAAAA,KAAA,OAAK,cAAY,cAActT,UAAU,YAAWvO,UAClDwhB,EAAAA,GAAAA,MAACg8Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SAAA,CACrD,IACA+1b,EAAgBzxb,KAAI,CAAC4L,EAAMtR,KAExBijB,EAAAA,GAAAA,KAACu0a,GAAW,CAEV3na,KAAMve,EACNwuB,GAAG,MACH5+B,KAAK,OACL+8a,UAAU,yBACVI,uBAAwBA,GALnBr+a,eAepBu2b,EAAsB95b,OAAS,IAC9BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,yBACN8sP,WACEyD,EAAsB95b,OAAS,EAC3B,oCACA,QAGRwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8EAA6EvO,UAC1F6hB,EAAAA,GAAAA,KAAA,OACE,cAAY,cACZtT,UAAU,oCAAmCvO,UAE7C6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SACrDm1b,EAAsB7wb,KAAI,CAAC4L,EAAMtR,KAE9BijB,EAAAA,GAAAA,KAACu0a,GAAW,CAEV3na,KAAMve,EACNwuB,GAAG,YACH5+B,KAAK,OACL+8a,UAAU,yBACVI,uBAAwBA,GALnBr+a,cAgBpB22b,EAAmBl6b,OAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,UACN8sP,WACE6D,EAAmBl6b,OAAS,EACxB,iCACA,QAGRwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8EAA6EvO,UAC1F6hB,EAAAA,GAAAA,KAAA,OACE,cAAY,cACZtT,UAAU,oCAAmCvO,UAE7C6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SACrDu1b,EAAmBjxb,KAAI,CAAC4L,EAAMtR,KAE3BijB,EAAAA,GAAAA,KAACu0a,GAAW,CAEV3na,KAAMve,EACNwuB,GAAG,SACH5+B,KAAK,OACL+8a,UAAU,yBACVI,uBAAwBA,GALnBr+a,cAgBpBq2b,EAAqB55b,OAAS,IAC7BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,YACN8sP,WACEuD,EAAqB55b,OAAS,EAC1B,mCACA,QAGRwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8EAA6EvO,UAC1F6hB,EAAAA,GAAAA,KAAA,OACE,cAAY,cACZtT,UAAU,oCAAmCvO,UAE7C6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SACrDi1b,EAAqB3wb,KAAI,CAAC4L,EAAMtR,KAE7BijB,EAAAA,GAAAA,KAACu0a,GAAW,CAEV3na,KAAMve,EACNwuB,GAAG,WACH5+B,KAAK,OACL+8a,UAAU,yBACVI,uBAAwBA,GALnBr+a,cAgBpB+2b,EAAet6b,OAAS,IACvBmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,MACN8sP,WACEiE,EAAet6b,OAAS,EAAI,6BAA+B,QAG/DwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8EAA6EvO,UAC1F6hB,EAAAA,GAAAA,KAAA,OACE,cAAY,cACZtT,UAAU,oCAAmCvO,UAE7C6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SACrD21b,EAAerxb,KAAI,CAAC4L,EAAMtR,KAEvBijB,EAAAA,GAAAA,KAACu0a,GAAW,CAEV3na,KAAMve,EACNwuB,GAAG,KACH5+B,KAAK,OACL+8a,UAAU,yBACVI,uBAAwBA,GALnBr+a,eAcrBijB,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,oGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,MAG7B,EC5OV,GAlIuBoZ,KAAO,IAADC,EAAAC,EAC3B,MAAO5H,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GACzDutI,EAAWR,KAEX22H,EADS11H,KACa01H,cACrBhI,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChC2jQ,EAASC,IAAc5jQ,EAAAA,EAAAA,UAAS,KAChC27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,GAG7C,IAAI,KAAE5iL,EAAI,WAAEu8Y,EAAU,UAAE/N,EAAS,QAAEp7T,GACjCusW,GAAoC,CAClCT,YAAa,GACbrmW,QAASytW,EACTvtP,KAAMulP,EACNxiW,MAPU,IAuCd,OA3BAwmG,EAAAA,EAAAA,YAAU,KAAO,IAADmkQ,EAAA/hB,EACd,IAAIgiB,EAAe,GACgC,IAAD/hB,EAAAC,EAA9Cp2B,GAA2C,IAA1B,QAAJi4C,EAAAzmb,SAAI,IAAAymb,GAAU,QAAV/hB,EAAJ+hB,EAAMn6Y,gBAAQ,IAAAo4X,OAAV,EAAJA,EAAgB9D,cAC/Bsf,EACExZ,GAAiC,QAAd/B,EAAC3ka,EAAKssC,gBAAQ,IAAAq4X,GAAM,QAANC,EAAbD,EAAe3ka,YAAI,IAAA4ka,OAAN,EAAbA,EAAqB8b,WAAWiG,WAhB5C,IAkBV3mb,EAAOA,EAAKssC,SAAStsC,KAAKA,KAC1B0mb,EAAe1mb,EAAK5L,KAAKmqB,IAAI,IAAAyma,EAAA,MAAM,IAC9Bzma,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhBkE,EAAEzma,EAAKuia,iBAAS,IAAAkE,OAAA,EAAdA,EAAgBzxa,IAC5B,IAIG+qa,EAAU,GACZh3W,QAAQ/qB,IAAI,SAAU+hY,EAASoI,GAE/BF,GAAYI,GAAa,IAAIA,KAAaF,MAE1CF,GAAW,IAAM,IAAIE,KAEzB,GACC,CAACnqC,EAAYv8Y,IAEXu8Y,IAAenpU,GAAyC,IAA1B,QAAJgzW,EAAApmb,SAAI,IAAAomb,GAAU,QAAVC,EAAJD,EAAM95Y,gBAAQ,IAAA+5Y,OAAV,EAAJA,EAAgBzlB,aAS7CtvZ,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yBAAwBvO,UACrCwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,GAAU,GACzB9xT,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAGVwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,YAAWvO,SAAA,EACxB6hB,EAAAA,GAAAA,KAACs0a,GAAY,CAACvxP,MAAO,GAAG4xP,kBACxB30a,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8EAA6EvO,UAC1FwhB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OACE,cAAY,cACZtT,UAAU,yFAAwFvO,SAE1F,OAAPy2b,QAAO,IAAPA,OAAO,EAAPA,EAASnyb,KAAK4L,IAEX2R,EAAAA,GAAAA,KAACu0a,GAAW,CAEV3na,KAAMve,EACNwuB,GAAI83Z,EACJ12b,KAAK,OACL+8a,UAAU,yBACVI,uBAAwBA,GALnB/sa,EAAKilP,UAUlBtzO,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,GACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAvFSwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAuF9B/hb,UAAU,yLAAwLvO,SACnM,cAGC,eAKXysZ,GACC5qY,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,2FAA0F5xU,UACnG6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEP,MACJjjN,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,oGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,QA1EjCp7Z,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,0DAAyDvO,UACtE6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,0BA4ED,g1GC/BV,GA1JsBqX,IAOf,IAPgB,MACrButL,EAAK,MACLm0O,EAAK,KACLj5a,EAAI,WACJuub,EAAU,YACV4I,EAAW,SACXC,GACD7/a,EACC,MAGMgpT,EAAWR,KACXl9S,EAAW88S,KAEjB,IAAIw5G,EAAsB,OAALF,QAAK,IAALA,OAAK,EAALA,EAAO16a,QAAQ,WAAY,IAQhD,OALI46a,EAAe3za,MAAM,KAAKjK,OAAS,IACrC49a,EACEA,EAAe3za,MAAM,KAAK,GAAK,IAAM2za,EAAe3za,MAAM,KAAK,KAIjEkc,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,6DAA4DvO,SAAC,eAG1EwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAKgqW,GACL5ob,UAAU,qDACV0oP,IAAI,eAENz1O,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,sBAAqBvO,SAAA,CAAEi5a,EAAe,cACtDz3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAgBvO,SAAA,CAC7Bi5a,GACCC,GAAqBf,GAAsBc,IAAkB,IAAI,OAC9D,KACLz3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,6BAA4BvO,SAAA,CAAC,UACxC,IACFi5a,GACCC,GACET,GAA0BQ,IACzB,IAAI,iBAiBfz3Z,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2CAA0CvO,SAAA,EACvDwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,2BAA0BvO,SAAA,CAAC,6CACK64a,MAAqB,KAAK,QAEvEr3Z,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,OAAMvO,SAAA,CAAC,+EAER,UAGbk3b,GACC11a,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKiqW,GAAW7ob,UAAU,cAAc0oP,IAAI,MACjDp1O,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iJACVwc,MAAO,CACLlgB,OAAQ,IACR7K,UAEFwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,6HACV2vJ,QAASA,IACPmiK,EAAS,eAAe19S,EAAS+qC,WAAY,CAC3CrvD,SAAS,IAEZ2B,SAAA,EAEDwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL9R,UAAU,OACVkoT,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6aACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,oBAEH,oCAMZmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,2GACV2vJ,QAAS+4R,EAAYj3b,SAEX,YAATF,EAAqB,sBAAwB,aAEhD0hB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,iKACV2vJ,QApHUw/Q,KAClB2Q,EAAW,SAAS,EAmHSrub,SAAA,EAErBwhB,EAAAA,GAAAA,MAAA,OACEi1S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,SAAA,EAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,ydACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,iJACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,oJACFgQ,KAAK,oBAEH,sBAKX,EC3EP,GAvEahJ,IAAsC,IAArC,MAAEutL,EAAK,WAAEypP,EAAU,SAAE6I,GAAU7/a,EAC3C,MAGMgpT,EAAWR,KACXl9S,EAAW88S,KAEjB,OACE59S,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SACGk3b,GACC11a,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKiqW,GAAW7ob,UAAU,cAAc0oP,IAAI,MACjDp1O,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iJACVwc,MAAO,CACLlgB,OAAQ,IACR7K,UAEFwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,6HACV2vJ,QAASA,IACPmiK,EAAS,eAAe19S,EAAS+qC,WAAY,CAC3CrvD,SAAS,IAEZ2B,SAAA,EAEDwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL9R,UAAU,OACVkoT,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6aACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,oBAEH,oCAMZmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,MACEtT,UAAU,4BACVqhK,wBAAyB,CAAE2W,OAAQqe,MAErC/iL,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLo+J,QA3DUw/Q,KAClB2Q,EAAW,UAAU,EA2Db9/a,UAAU,iGAAgGvO,SAC3G,yBAKJ,ECgFP,GA/IgBqX,IAAwE,IAAvE,MAAEutL,EAAK,MAAEm0O,EAAK,KAAEse,EAAO,QAAO,WAAEhJ,EAAU,UAAEiJ,EAAS,SAAGJ,GAAS7/a,EAChF,MAGMgpT,EAAWR,KACXl9S,EAAW88S,KAEjB,IAAIw5G,EAAsB,OAALF,QAAK,IAALA,OAAK,EAALA,EAAO16a,QAAQ,WAAY,IAQhD,OALI46a,EAAe3za,MAAM,KAAKjK,OAAS,IACrC49a,EACEA,EAAe3za,MAAM,KAAK,GAAK,IAAM2za,EAAe3za,MAAM,KAAK,IAG5Dgyb,GACL91a,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,kIAAiIvO,SAAA,EAE3I6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mBACVkoT,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,2FACFgQ,KAAK,mBAEH,8CAIRmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,MACEtT,UAAU,4BACVqhK,wBAAyB,CAAE2W,OAAQqe,MAErC/iL,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+EAA8EvO,SAAC,2BAG5FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAKgqW,GACL5ob,UAAU,qDACV0oP,IAAI,eAENz1O,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,sBAAqBvO,SAAA,CAAEi5a,EAAe,cACtDz3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAgBvO,SAAA,CAC7Bi5a,GACCC,GAAqBf,GAAsBc,IAAkB,IAAI,OAC9D,KACLz3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,6BAA4BvO,SAAA,CAAC,UACxC,IACFi5a,GACCC,GACET,GAA0BQ,IACzB,IAAI,iBAKfz3Z,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2CAA0CvO,SAAA,EACvDwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,2BAA0BvO,SAAA,CAAC,6CACK64a,MAAqB,KAAK,QAEvEr3Z,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,OAAMvO,SAAA,CAAC,+EAER,UAGbk3b,GACC11a,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKiqW,GAAW7ob,UAAU,cAAc0oP,IAAI,MACjDp1O,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iJACVwc,MAAO,CACLlgB,OAAQ,IACR7K,UAEFwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,6HACV2vJ,QAASA,IACPmiK,EAAS,eAAe19S,EAAS+qC,WAAY,CAC3CrvD,SAAS,IAEZ2B,SAAA,EAEDwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL9R,UAAU,OACVkoT,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6aACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,oBAEH,oCAMZmB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLo+J,QAvHYw/Q,KAClB2Q,EAAW,UAAU,EAuHf9/a,UAAU,4GAA2GvO,SAAA,EAErH6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,84BACFgQ,KAAK,YAG6B,qBAK7C,EClHH,GAjCmBhJ,IAAkC,IAAjC,MAAEutL,EAAK,MAAEm0O,EAAK,UAAEue,GAAWjgb,EAC7C,OACEwK,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UAMEwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,kIAAiIvO,SAAA,EAE3I6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mBACVkoT,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,2FACFgQ,KAAK,mBAGRi3a,EACG,4CACA,oDAEL,EC1BP,GAXkBjgb,IAAyB,IAAxB,KAACvX,EAAI,WAAEuub,GAAWh3a,EAInC,OAAOmK,EAAAA,GAAAA,MAAA,UAAQ1hB,KAAK,SAASyO,UAAU,kIAAiIvO,SAAA,EACxK6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mBAAmBkoT,MAAM,6BAA6Bt2S,MAAM,KAAK9E,OAAO,KAAK4F,QAAQ,YAAYZ,KAAK,OAAMrgB,UACvH6hB,EAAAA,GAAAA,KAAA,QAAMxR,EAAE,2FAA2FgQ,KAAK,mBACtG,gDAC8C,EC8RtD,GA9RoBhJ,IAcb,IAdc,MACnButL,EAAK,MACLm0O,EAAK,SACLme,EAAQ,KACRp3b,EAAI,WACJuub,EAAU,YACV4I,EAAW,mBACXM,EAAqB,EAAC,cACtBC,EAAa,OACbC,EAAM,KACNza,EAAI,cACJ0a,GAAgB,EAAK,QACrBC,GAAU,EAAK,UACfn7K,GAAY,GACbnlQ,EAEC,MAAOugb,EAAcC,IAAmB/kQ,EAAAA,EAAAA,WAAS,GAC3CutI,EAAWR,KACXl9S,EAAW88S,MAYjBjtI,EAAAA,EAAAA,YAAU,KACR,MAAMslQ,EAAeA,KACnBD,GAAgB,EAAM,EAKxB,OAFAn7b,SAAS0oB,iBAAiB,QAAS0ya,GAE5B,IAAMp7b,SAASy/F,oBAAoB,QAAS27V,EAAa,GAC/D,IAEH,IAAI7e,EAAsB,OAALF,QAAK,IAALA,OAAK,EAALA,EAAO16a,QAAQ,WAAY,IAQhD,OALI46a,EAAe3za,MAAM,KAAKjK,OAAS,IACrC49a,EACEA,EAAe3za,MAAM,KAAK,GAAK,IAAM2za,EAAe3za,MAAM,KAAK,KAIjEkc,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG4kM,IACC/iL,EAAAA,GAAAA,KAAA,MACEtT,UAAU,+DACVqhK,wBAAyB,CAAE2W,OAAQqe,MAIvCpjL,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,SAAQvO,SAAA,EACrB6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uEAAsEvO,SAAC,qBAGpFwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,gHACV2vJ,QA3CiB3gK,IACvBA,EAAEwgK,kBACF85R,GAAiB13b,IAAUA,GAAK,EAyCDH,SAAA,EAEzB6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,2DAA0DvO,SACpEy3b,EAAOF,MAEV11a,EAAAA,GAAAA,KAAA,OAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,4eACFgQ,KAAK,cAIVu3a,IACC/1a,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oFAAmFvO,SAC/Fy3b,EAAOnzb,KAAI,CAACmqB,EAAM7vB,KAEfijB,EAAAA,GAAAA,KAAA,KAEEtT,UAAU,yFACV2vJ,QAASA,IAAMs5R,EAAc54b,GAAOoB,SAEnCyuB,GAJI7vB,aAalB49Q,IACCh7P,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,EACtD6hB,EAAAA,GAAAA,KAACijN,GAAM,IAAI,QAIb03C,IACCm7K,GACCn2a,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,8IAA6IvO,SAAA,EAEvJ6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mBACVkoT,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,2FACFgQ,KAAK,mBAEH,mDAGNq3a,GACFl2a,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,8IAA6IvO,SAAA,EAEvJ6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mBACVkoT,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,2FACFgQ,KAAK,mBAEH,gDAGRwB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,2GACV2vJ,QAAS+4R,EACTljb,UAAQ,EAAA/T,SACT,qBAKHwhB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG,KACD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,6DAA4DvO,SAAC,eAG1EwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAKgqW,GACL5ob,UAAU,qDACV0oP,IAAI,eAENz1O,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,sBAAqBvO,SAAA,CAClCi5a,EAAe,SAAO,QAEzBz3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAgBvO,SAAA,CAC7Bi5a,GACCC,GACEf,GAAsBc,IACrB,IAAI,OACJ,KACLz3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,6BAA4BvO,SAAA,CAAC,UACxC,IACFi5a,GACCC,GACET,GAA0BQ,IACzB,IAAI,iBAKfz3Z,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2CAA0CvO,SAAA,EACvDwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,2BAA0BvO,SAAA,CAAC,4CACI,IACzC64a,MAAqB,KAAK,QAE7Br3Z,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,OAAMvO,SAAA,CAAC,+EAEA,UAGrBk3b,GACC11a,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKiqW,GAAW7ob,UAAU,cAAc0oP,IAAI,MACjDp1O,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iJACVwc,MAAO,CACLlgB,OAAQ,IACR7K,UAEFwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,6HACV2vJ,QAASA,IACPmiK,EAAS,eAAe19S,EAAS+qC,WAAY,CAC3CrvD,SAAS,IAEZ2B,SAAA,EAEDwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL9R,UAAU,OACVkoT,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6aACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,oBAEH,oCAOZmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,2GACV2vJ,QAAS+4R,EAAYj3b,SACtB,yBAGDwhB,EAAAA,GAAAA,MAAA,UACE1hB,KAAK,SACLyO,UAAU,+JACV2vJ,QArOIw/Q,KAClB2Q,EAAW,SAAS,EAoOerub,SAAA,EAErBwhB,EAAAA,GAAAA,MAAA,OACEi1S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,SAAA,EAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,ydACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,iJACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,oJACFgQ,KAAK,oBAEH,0BAOjB,ECjNP,GAlEuBhJ,IAOhB,IAPiB,MACtButL,EAAK,MACLm0O,EAAK,SACLme,EAAQ,KACRG,EAAO,QAAO,WACdhJ,EAAU,UACViJ,GACDjgb,EACC,MAGMgpT,EAAWR,KACXl9S,EAAW88S,KAEjB,OAAO63H,GACLz1a,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,+DACVwF,UAAQ,EAAA/T,SACT,eAGCk3b,GACF11a,EAAAA,GAAAA,MAAA,UACA1hB,KAAK,SACLyO,UAAU,oGACV2vJ,QAASA,IACPmiK,EAAS,eAAe19S,EAAS+qC,WAAY,CAC3CrvD,SAAS,IAEZ2B,SAAA,EAEDwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL9R,UAAU,OACVkoT,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,6aACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,kPACFgQ,KAAK,oBAEH,gCAINwB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLo+J,QAlDgBw/Q,KAClB2Q,EAAW,UAAU,EAkDnB9/a,UAAU,qGAAoGvO,SAC/G,aAGF,ECqCH,GAhGiBqX,IAiBV,IAjBW,KAChBvX,EAAI,KACJi4b,EAAI,MACJnzP,EAAK,MACLm0O,EAAK,KACLse,EAAI,WACJhJ,EAAU,UACViJ,EAAS,YACTL,EAAW,mBACXM,EAAkB,cAClBC,EAAa,OACbC,EAAM,KACNza,EAAI,cACJ0a,EAAa,QACbC,EAAO,eACPK,EAAc,UACdx7K,GAAY,GACbnlQ,EACC,MAAMqma,EAAengb,IACnB8wb,EAAW9wb,EAAE,EAET25b,GAAYl+Y,aAAaixQ,QAAQ,eACvC,OACEzoS,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kBAAiBvO,SAAA,CACpB,WAATF,IACC+hB,EAAAA,GAAAA,KAACo2a,GAAa,CACZn4b,KAAMi4b,EACNnzP,MAAOA,EACPm0O,MAAOA,EACPme,SAAUA,EACV7I,WAAY3Q,EACZuZ,YAAaA,IAGP,gBAATn3b,IACC+hB,EAAAA,GAAAA,KAACq2a,GAAW,CACVp4b,KAAMi4b,EACNnzP,MAAOA,EACPm0O,MAAOA,EACPme,SAAUA,EACV7I,WAAY3Q,EACZuZ,YAAaA,EACbM,mBAAoBA,EACpBC,cAAeA,EACfC,OAAQA,EACRza,KAAMA,EACN0a,cAAeA,EACfC,QAASA,EACTn7K,UAAWA,IAGL,SAAT18Q,IACC+hB,EAAAA,GAAAA,KAACs2a,GAAI,CAACvzP,MAAOA,EAAOsyP,SAAUA,EAAU7I,WAAY3Q,IAE5C,YAAT59a,IACC+hB,EAAAA,GAAAA,KAACu2a,GAAO,CACNrf,MAAOA,EACPme,SAAUA,EACVG,KAAMA,EACNzyP,MAAOA,EACPypP,WAAY3Q,EACZ4Z,UAAWA,IAGL,YAATx3b,IACC+hB,EAAAA,GAAAA,KAACw2a,GAAU,CACTtf,MAAOA,EACPme,SAAUA,EACVtyP,MAAOA,EACPypP,WAAY3Q,EACZ4Z,UAAWA,IAGL,cAATx3b,IACC+hB,EAAAA,GAAAA,KAACy2a,GAAS,CACRx4b,KAAMi4b,EACNnzP,MAAOA,EACPm0O,MAAOA,EACPme,SAAUA,EACV7I,WAAY3Q,IAGN,mBAAT59a,IACC+hB,EAAAA,GAAAA,KAAC02a,GAAc,CACbxf,MAAOA,EACPme,SAAUA,EACVG,KAAMA,EACNzyP,MAAOA,EACPypP,WAAY3Q,EACZ4Z,UAAWA,MAGX,ECnDV,GAhDsBv3b,IACpB,MAAM,KACJu8B,EAAI,QACJksZ,EAAO,SACPgQ,GAAW,EAAI,SACfh5b,EAAW,SAAQ,SACnBQ,GACED,GAEG04b,EAAQC,IAAa5lQ,EAAAA,EAAAA,UAASx2J,GAErC,IAAKm8Z,EACH,OAAO,KAYT,IAAIE,EACF,2HAMF,MALgB,OAAZn5b,IACFm5b,EACE,sFAIF92a,EAAAA,GAAAA,KAAA,OACEtT,UAAU,qFACV2vJ,QAnBewmJ,KACb8zI,IACoB,mBAAXhQ,GACTA,IAEFkQ,GAAU,GACZ,EAasB14b,UAEpB6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,6CAA6Coqb,IACxDz6R,QAAU3gK,GAAMA,EAAEwgK,kBAAkB/9J,SAEnCyG,EAAAA,aAAmBzG,EAAU,IACzBD,OAGH,0mbCwCV,GAzFcsX,IAUP,IAVQ,KACbilB,EAAI,QACJksZ,EAAO,SACPgQ,EAAQ,QACR3G,EAAO,QACPvjZ,EAAO,UACPowW,GAAY,EAAI,WAChBk6C,EAAa,KAAI,cACjBC,GAAgB,EAAK,iBACrBC,GACDzhb,EACC,OACEwK,EAAAA,GAAAA,KAACk3a,GAAY,CAACz8Z,KAAMA,EAAMksZ,QAASA,EAASgQ,SAAUA,EAASx4b,UAC7DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+DAA8DvO,SAAA,CAC1E64b,IACCh3a,EAAAA,GAAAA,KAAA,OACEq8I,QAAS46R,EACTvqb,UAAU,wKAAuKvO,UAEjL6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK83S,GACL12X,UAAU,oBACV0oP,IAAI,uBAIVp1O,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,+CAA8CvO,SAC7C,GAAb0+Y,GACC78X,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAAgCvO,UAC7C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,6BACV4+E,IAAK6rW,GACL/hM,IAAI,iBAGO,WAAbynJ,GACF78X,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAAgCvO,UAC7C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,6BACV4+E,igEACA8pK,IAAI,kBAIRp1O,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAAgCvO,UAC7C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,6BACV4+E,IAAK8rW,GACLhiM,IAAI,mBAKE,GAAbynJ,IACC78X,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oDAAmDvO,SAC7D6xb,IAGS,WAAbnzC,IACC78X,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oDAAmDvO,SAC7D6xb,IAGS,SAAbnzC,GAAwBmzC,IACvBhwa,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oDAAmDvO,SAC7D6xb,KAGLhwa,EAAAA,GAAAA,KAAA,KACEtT,UAAW,+BACTmwY,EAAY,UAAY,WACvB1+Y,SAEFsuC,KAEHzsB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAClC6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAW,wGACXzO,KAAK,SACLo+J,QAASsqR,EAAQxob,SAEhB44b,UAIM,iBC5FNlxU,GAA2B,CACtC,CACEhpF,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,yBACA+M,SAAA,YAAYimb,UACV,CACF,6DACA,eAAa,8CACMC,cACjB,MACF,CAEFz6Z,GAAA,cACAy/F,OAAA,OACEj4H,KAAM,aACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,6CACV,gEAEFC,cAAA,KACa,CACYz6Z,GACvB,OACFy/F,OAAA,KACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,KACI,CACVz6Z,GACA,eACFy/F,OAAA,MACAj4H,KAAA,MAAa+M,SACX,SACFimb,UAAA,CACAE,SAAA,6CACF,gEAEED,cAAM,MACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACFC,UAAA,6CACAC,KAAA,qEACF,mEACA,gBACE,+DACA,cAAU,6CACV,cAAQ,6CACRC,OAAA,6CACE,+DACA,mEACFC,OAAA,8CACaL,cACC,IACC,CACLz6Z,GACR,aAAuBy/F,OACvB,OAAiBj4H,KACjB,aAAe+M,SACf,YAAeimb,UACf,CACAE,SAAA,6CACA,2DACAI,OAAA,8CAEFL,cAAA,KAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,QACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACAC,UAAa,6CACX,sBAAY,6CACZG,OAAA,8CAEFL,cAAA,KAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CACCz6Z,GACZ,UAAay/F,OACb,MAAuBj4H,KACvB,UACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,kBAAYx4B,KACV,kBAAA+M,SACA,YACFkrH,OAAA,MACAg7T,cAAa,EAAAD,UACX,IACF,CAEFx6Z,GAAA,aACAx4B,KAAA,OACE+M,SAAM,mBACNkrH,OAAA,MACAg7T,cAAQ,EACRD,UAAA,CAAY,GACV,CAEFx6Z,GAAA,aACAy/F,OAAA,MAAaj4H,KACX,aACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACE,CACIz6Z,GACV,QACFy/F,OAAA,QACAj4H,KAAA,WACA+M,SAAA,SACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAQ,MACI,CACVz6Z,GACA,kBACFy/F,OAAA,MACAj4H,KAAA,kBACA+M,SAAA,WAAiB,QACjBimb,UAAA,CACFE,SAAA,6CACA,2DACE,sBAAM,6CACN,eAAU,6CACVK,KAAQ,8CACIN,cACV,KACA,CAEFz6Z,GAAA,SAAay/F,OACX,SACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,mEACEE,SAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,aACAy/F,OAAA,OAAaj4H,KACX,WAAY+M,SACZ,YACFimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,iBACAy/F,OAAA,MACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CACGz6Z,GACf,UAAuBy/F,OACvB,MAAgBj4H,KAChB,UACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,IACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,MACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,cAAa,6CACX,sBAAuB,8CAEzBD,cAAA,KAEF,CACAz6Z,GAAA,WACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACF,mEACA,cAAc,8CAEhBD,cAAA,MACA,CAEEz6Z,GAAA,iBACAy/F,OAAQ,OACRj4H,KAAA,iBAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,KACd,CAEFz6Z,GAAA,iBACAy/F,OAAA,OACEj4H,KAAM,iBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CAEAz6Z,GAAA,WACFy/F,OAAA,QACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,MAAYj4H,KACZ,OAAe+M,SACf,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,QACAy/F,OAAA,QAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,KACe,CAEjBz6Z,GAAA,oBACFy/F,OAAA,OACAj4H,KAAA,oBACE+M,SAAM,mBACNimb,UAAU,CACV9pa,KAAQ,8CACI+pa,cACV,KACA,CAEFz6Z,GAAA,YAAay/F,OACX,KACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,kBAAAy/F,OACA,MACFj4H,KAAA,YACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,MACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACF,4DACaC,cACC,KACd,CAEFz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,WACFy/F,OAAA,MACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,yBACAy/F,OAAA,OAAaj4H,KACX,0BACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEQ,QACF,uEACAC,QACF,uEACA1yZ,OAAA,iDAEEkyZ,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,MACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,GACFC,cAAA,KAEF,CACAz6Z,GAAA,kBACEy/F,OAAM,MACNj4H,KAAA,kBACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,eACAy/F,OAAA,MACFj4H,KAAA,eACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,eACAy/F,OAAA,KAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,SAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,gBACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DAEFC,cAAa,MACC,CAEdz6Z,GAAA,aACAy/F,OAAA,MACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,OAAaj4H,KACX,eACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,QAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACA,sBAAU,8CAEZD,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,YAAYimb,UACV,GAAAC,cACA,MACF,CAEAz6Z,GAAA,mBACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,SACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,UACFy/F,OAAA,OACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,kBACFy/F,OAAA,OACAj4H,KAAA,kBAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,MAAYj4H,KACV,YAAA+M,SACA,YACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,MACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACEU,MAAA,QAEFT,cAAA,KACa,CAEbz6Z,GAAA,SACAy/F,OAAA,MACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,mBACAy/F,OAAA,QAAaj4H,KACX,mBACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,WAAYy/F,OACV,OAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,gBACA,gEAEFD,cAAA,KACQ,CAENz6Z,GAAA,cACAy/F,OAAA,MAAYj4H,KACV,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,sBAAuB,8CAEzBD,cAAA,KAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAW,OAAA,gDAEFV,cAAa,MACC,CAEdz6Z,GAAA,QACAy/F,OAAA,QACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,8CACID,cACV,KACF,CAEAz6Z,GAAA,WACFy/F,OAAA,OACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACF,CACaz6Z,GACX,aACFy/F,OAAA,QACAj4H,KAAA,aACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,+CAAYy/F,OACV,MAAAj4H,KACA,iCACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFU,OAAA,6CACA,cAAiB,6CACnB1qa,KAAA,8CAEE+pa,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,UACAy/F,OAAA,OACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,4DACaC,cACC,MACd,CAEFz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,WACN+M,SAAU,SACVimb,UAAQ,GACRC,cAAY,IACV,CAEFz6Z,GAAA,eACAy/F,OAAA,MAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,UAAAy/F,OACA,OACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACFW,OAAA,gDAEFV,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,MACRj4H,KAAA,YAAY+M,SACV,SAAAimb,UACA,CACFE,SAAA,6CACAC,UAAa,6CACX,iCACF,2DACA,cAAiB,6CACnBE,OAAA,6CACA,mEACEQ,OAAM,6CACNC,KAAA,6CACAH,OAAQ,+CACIV,cACV,MACA,CAEFz6Z,GAAA,uBAAay/F,OACX,OAAYj4H,KACZ,uBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAC,UAAA,6CACE,cAAM,6CACN,sBAAU,8CAEVF,cAAY,KACV,CAEFz6Z,GAAA,SACAy/F,OAAA,QAAaj4H,KACX,SAAY+M,SACZ,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,gCACAy/F,OAAA,OAAYj4H,KACV,gCAAA+M,SACA,SACFimb,UAAA,CACAE,SAAA,6CACEhqa,KAAA,6CACF,mEACA,cAAiB,6CACnB,6DAEE+pa,cAAM,MACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,SAAAj4H,KACA,iBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,6CACZK,OAAA,8CAEFJ,cAAA,KAEF,CACEz6Z,GAAA,oBACAy/F,OAAA,MACAj4H,KAAA,cACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,YACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,SACNimb,UAAU,CACV,eAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,sBACAy/F,OAAA,OACFj4H,KAAA,wBACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,WAAU,QAAAimb,UACV,CACA,sBAAQ,8CAEVC,cAAA,KAEF,CACEz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,cACA+M,SAAA,YAAYimb,UACV,CACA,mEACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,QACAy/F,OAAA,MACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAA,KACa,CAEbz6Z,GAAA,gBACAy/F,OAAA,SACFj4H,KAAA,gBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,MACF,CAEAz6Z,GAAA,MACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,SACNimb,UAAU,CACV,aAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,aAAay/F,OACX,OAAYj4H,KACZ,aACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,6CACAC,UAAA,6CACE,gBACA,+DACA,kBAAQ,6CACRG,OAAA,6CACE,oEAEFL,cAAA,KACa,CAEbz6Z,GAAA,8BACAy/F,OAAA,QACFj4H,KAAA,wBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,YAAay/F,OACX,MAAYj4H,KACZ,MAAa+M,SACb,WAAiB,QAAAimb,UACjB,CACAE,SAAA,6CACA,gBACA,+DACAI,OAAA,8CACQL,cACE,KACZ,CAEFz6Z,GAAA,aACAy/F,OAAA,OACEj4H,KAAM,aACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,kBAAYy/F,OACZ,MAAaj4H,KACb,kBAAe+M,SACf,mBACFimb,UAAA,CACAe,MAAA,+CACFb,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,QAAAj4H,KACA,QACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,2DACAE,SAAA,8CACcD,cACJ,MACe,CACRz6Z,GACf,OACFy/F,OAAA,OACAj4H,KAAA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNtjb,KAAA,6CACAujb,UAAQ,6CACR,gBAAY,6CACV,mEACA,2DACF,4DACA,sBAAa,6CACXE,OAAA,8CAEFJ,cAAA,KAEF,CACAz6Z,GAAA,UACEy/F,OAAM,UACNj4H,KAAA,kBACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACAG,OAAA,6CACF,mEACAzjb,KAAA,6CACEujb,UAAA,6CACF,6DACA,eAAiB,6CACnB,oEAEEF,cAAM,KACI,CAEVz6Z,GAAA,YAAYy/F,OACV,MACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,mEACAK,OAAA,8CAEFJ,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,4DAEFD,cAAA,IACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,SACRj4H,KAAA,aAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,8CACaD,cACX,KACF,CAEFz6Z,GAAA,eACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,6DAEFD,cAAa,KACY,CAEzBz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,MAAaj4H,KACX,QAAY+M,SACZ,mBACFimb,UAAA,CACAgB,MAAA,8BAEFf,cAAA,IACQ,CAENz6Z,GAAA,WACAy/F,OAAA,MAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,MACF,CAEFz6Z,GAAA,mBACAy/F,OAAA,MACEj4H,KAAM,6BACN+M,SAAU,mBACVimb,UAAQ,CACRiB,OAAA,8CAEAhB,cAAA,MACa,CAEbz6Z,GAAA,WACAy/F,OAAA,SACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNkB,QACA,sEACYjB,cACV,MACF,CACaz6Z,GACX,YAAYy/F,OACZ,MAAaj4H,KACb,MAAiB+M,SACjB,WAAmB,QAAAimb,UACnB,CACA,sBAAuB,8CAEzBC,cAAA,KAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,4DACaD,cACC,MACd,CAEFz6Z,GAAA,QACAy/F,OAAA,QACEj4H,KAAM,QACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,WAAYy/F,OACZ,OAAiBj4H,KACjB,WACF+M,SAAA,YACAimb,UAAA,CACFmB,QAAA,4DAEElB,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFI,OAAA,8CAEFL,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,YAAAimb,UACA,CACF,6DACaC,cACF,MACG,CAEdz6Z,GAAA,UACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACV,eAAQ,6CACR,sBAAY,8CAEZC,cAAA,MACa,CAEbz6Z,GAAA,WACAy/F,OAAA,MACFj4H,KAAA,WACA+M,SAAA,SACEimb,UAAM,CACN,eAAU,6CACV,gBAAQ,6CACRE,SAAY,8CACVD,cACA,IACF,CACaz6Z,GACX,SAAey/F,OACf,OACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEC,UAAM,6CACNiB,KAAA,6CACAC,KAAQ,qCACR,gBAAY,yBACVV,OAAA,gDAEFV,cAAA,GACa,CACCz6Z,GACZ,MAAQy/F,OACR,MAAaj4H,KACb,MAAiB+M,SACjB,mBAAuBimb,UACvB,CACAE,SAAA,8CACuBD,cACb,KACZ,CAEFz6Z,GAAA,WACAy/F,OAAA,MACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,KACa,CACCz6Z,GACZ,aAAUy/F,OACV,OAAuBj4H,KACvB,OAAQ+M,SACR,WAAa,QAAAimb,UACb,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACAz6Z,GAAA,UACEy/F,OAAM,OACNj4H,KAAA,UACA+M,SAAQ,YACRimb,UAAA,CACES,QAAA,QACAD,QACF,wEACaP,cACX,KACU,CAEZz6Z,GAAA,QACFy/F,OAAA,OACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,KACI,CACVz6Z,GACA,gBACFy/F,OAAA,OACAj4H,KAAA,gBAAa+M,SACX,WAAY,QAAAimb,UACZ,GACFC,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAa,MACC,CAEdz6Z,GAAA,UACFy/F,OAAA,SACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,cAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,QAAYy/F,OACZ,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,YAAaimb,UACX,CACF,mEACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,MAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,KACF,CAEXz6Z,GAAA,oBACFy/F,OAAA,OACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVsB,OAAQ,6CACIrB,cACV,KACA,CAEFz6Z,GAAA,SAAay/F,OACX,OACFj4H,KAAA,SACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,oBAAAy/F,OACA,MACFj4H,KAAA,oBACA+M,SAAA,YAAaimb,UACX,CACFiB,OAAA,8CAEFhB,cAAA,MACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,6CACX,cAAW,8CAEbD,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACAuB,MAAA,8CAEFtB,cAAa,MACY,CAEzBz6Z,GAAA,UACFy/F,OAAA,KACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,IACI,CACVz6Z,GACA,iBACFy/F,OAAA,OACAj4H,KAAA,iBAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFE,SAAA,6CACAhqa,KAAA,8CAEF+pa,cAAA,MACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,KAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,OACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACEwB,OACF,wEACavB,cACA,MACb,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,2DACA,oEAEFD,cAAa,MACC,CAEdz6Z,GAAA,UACAy/F,OAAA,MACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,CACN,gBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,WAAay/F,OACX,OACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,cAAAy/F,OACA,OACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACAwB,OACF,uEACA,cAAiB,6CACnBtB,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,OACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,GAAgBC,cAChB,KACY,CAEdz6Z,GAAA,wBACFy/F,OAAA,MACAj4H,KAAA,wBACE+M,SAAM,YACNimb,UAAU,CACViB,OAAQ,8CACIhB,cACV,MACA,CAEFz6Z,GAAA,cAAay/F,OACX,WAAYj4H,KACZ,YAAa+M,SACL,YAAAimb,UACA,CACR,6DAEFC,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,WACNj4H,KAAA,WACA+M,SAAQ,YACRimb,UAAA,CACE,2DACAE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,YACFy/F,OAAA,SACAj4H,KAAA,oBACE+M,SAAM,mBACNimb,UAAU,CACVe,MAAQ,gDACId,cACV,MACA,CAEFz6Z,GAAA,QAAay/F,OACX,OACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEG,OAAM,6CACN,cAAU,6CACV,sBAAQ,8CACIJ,cACV,MACA,CAEFz6Z,GAAA,WAAay/F,OACX,MACFj4H,KAAA,WACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,sBAAM,6CACN,cAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,aAAay/F,OACX,QAAWj4H,KACX,aACF+M,SAAA,mBACAimb,UAAA,CACFW,OAAA,gDAEEV,cAAM,KACI,CAEVz6Z,GAAA,aAAYy/F,OACV,OAAAj4H,KACA,aACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,MAAYj4H,KACV,4BAAA+M,SACA,YACFimb,UAAA,CACAiB,OAAA,8CAEFhB,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACFW,OAAA,gDACaV,cACX,MACF,CAEFz6Z,GAAA,UACAy/F,OAAA,UACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,SAAYy/F,OACZ,QACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEI,OAAM,8CAENL,cAAQ,KACI,CACVz6Z,GACA,QACFy/F,OAAA,MACAj4H,KAAA,QAAa+M,SACX,mBACFimb,UAAA,CACAE,SAAA,6CACFI,OAAA,8CAEEL,cAAM,MACI,CAEVz6Z,GAAA,WAAYy/F,OACV,UACFj4H,KAAA,WACA+M,SAAA,SAAaimb,UACX,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,eACAy/F,OAAA,OACAj4H,KAAA,eACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFuB,KAAA,8CAEAxB,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,MACAj4H,KAAA,WACA+M,SAAA,YAAYimb,UACV,CACAa,OAAA,6CACFX,SAAA,6CACA,gBACE,gEAEFD,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACA,cAAa,8CAEbD,cAAA,KAEF,CACAz6Z,GAAA,cACEy/F,OAAM,SACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACFW,OAAA,6CACA,gBACE,gEAEFZ,cAAA,KAEF,CACEz6Z,GAAA,SACAy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,YAAYimb,UACV,CACFW,OAAA,+CACA,eAAa,8CACCV,cACZ,KACe,CAEjBz6Z,GAAA,oBACFy/F,OAAA,OACAj4H,KAAA,oBACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,eAAay/F,OACX,MACFj4H,KAAA,MACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEI,OAAM,8CAENL,cAAQ,KACI,CACVz6Z,GACA,cACFy/F,OAAA,OACAj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,IACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAG,UAAa,8CACCF,cACJ,KACV,CAEFz6Z,GAAA,eACAy/F,OAAA,MACEj4H,KAAM,cACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAA,MACa,CAEbz6Z,GAAA,UACAy/F,OAAA,MACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,UACAy/F,OAAA,MAAaj4H,KACX,UACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,SAAAj4H,KACA,SACF+M,SAAA,SACAimb,UAAA,CACEE,SAAA,8CACeD,cACf,MACF,CAEFz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFC,UAAA,6CACA,sBAAiB,6CACnB,4DACAjqa,KAAA,6CACE,sBAAM,6CACN6X,OAAU,gDACV2zZ,SAAQ,6CACRrB,OAAA,6CACEG,QACA,uEACF,4DACaP,cACD,IACK,CAEjBz6Z,GAAA,gBACAy/F,OAAA,MACFj4H,KAAA,gBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVyB,MAAQ,6CACR,sBAAY,6CACV,+DACArB,OAAA,8CAEFL,cAAc,IAEhB,CACAz6Z,GAAA,OACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACE,2DAEFC,cAAa,MACD,CAEZz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,OACFy/F,OAAA,MACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,iBACAy/F,OAAA,WAAaj4H,KACX,iBAAe+M,SACf,YACFimb,UAAA,CACA,sBAAiB,6CACnBE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,qBAAYy/F,OACV,WAAAj4H,KACA,iBACF+M,SAAA,YACAimb,UAAA,CACEE,SAAS,8CAEXD,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,YACAj4H,KAAA,YACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,6CACF,mEACAS,OAAA,gDACcV,cACF,MACK,CAEjBz6Z,GAAA,cACAy/F,OAAA,QACFj4H,KAAA,aACA+M,SAAA,YACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,aAAay/F,OACX,SAAYj4H,KACZ,SAAuB+M,SACvB,YACFimb,UAAA,CACAE,SAAA,6CACFG,OAAA,6CACAoB,KAAA,6CACE,kBAAM,6CACN,eAAU,6CACVnB,OAAQ,8CACIL,cACV,KACA,CAEFz6Z,GAAA,cAAay/F,OACX,MACFj4H,KAAA,cACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,iBAAAy/F,OACA,MACFj4H,KAAA,iBACA+M,SAAA,YAAaimb,UACX,CACFuB,MAAA,8CAEFtB,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,kBAAU,6CACZC,UAAA,6CACA,gBAAiB,6CACnB,mEACA,gBACE,+DACAsB,KAAA,6CACAvra,KAAQ,6CACR,cAAY,6CACV,2DACA,4DACFoqa,OAAA,8CACaL,cACD,KACZ,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,YACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,MACAj4H,KAAA,iBACF+M,SAAA,SACAimb,UAAA,CACEE,SAAM,6CACNI,OAAU,8CAEVL,cAAY,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,OAAaj4H,KACX,gBAAY+M,SACZ,WAAU,QACZimb,UAAA,CACAE,SAAA,6CACFG,OAAA,6CACAC,OAAA,8CAEEL,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,MACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAU,6CACZI,OAAA,8CAEFL,cAAA,MACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,OACRj4H,KAAA,aAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,6CACd,6DAEFD,cAAA,KACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,QACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,8CACCD,cACJ,MACV,CAEFz6Z,GAAA,MACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,CACR,eAAY,6CACVE,SAAA,8CAEFD,cAAa,MACD,CACEz6Z,GACZ,WACFy/F,OAAA,MACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,wBAAYy/F,OACV,MAAAj4H,KACA,kBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,kBAAe,6CACjBC,UAAA,6CACA,gBACF,+DACA,2DACEG,OAAM,6CACNK,OAAU,gDAEVV,cAAY,KACV,CAEFz6Z,GAAA,eACAy/F,OAAA,MAAaj4H,KACX,eAAY+M,SACZ,WAAU,QAAAimb,UACV,CACFE,SAAA,6CACAhqa,KAAA,6CACF,mEACA,2DACE,eAAM,6CACN,sBAAU,8CAEV+pa,cAAY,KACV,CAEFz6Z,GAAA,SAAay/F,OACX,MAAUj4H,KACV,SACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,WAAYy/F,OACV,MACFj4H,KAAA,WACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,MAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,MACC,CAEdz6Z,GAAA,eACAy/F,OAAA,MACFj4H,KAAA,eACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,KACV,CAEFz6Z,GAAA,kBACAy/F,OAAA,OACAj4H,KAAA,kBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,MACAj4H,KAAA,eAAa+M,SACX,YACFimb,UAAA,CACA,cAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACAz6Z,GAAA,YACEy/F,OAAM,QACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CAEbz6Z,GAAA,SACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,8CACID,cACV,IACF,CACaz6Z,GACX,WACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN0B,SAAU,OACVC,KAAQ,+BACR1B,UAAY,6CACV,mEACFgB,QAAA,gEACA,gBACE,mEACF,gCACAE,KAAA,qCACFP,KAAA,6CACA,4DACE5qa,KAAM,6CACN,cAAU,6CACVyqa,OAAQ,gDACIV,cACV,GACA,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,UAAAy/F,OACA,OACFj4H,KAAA,UACA+M,SAAA,WAAc,QACdimb,UAAA,CACFW,OAAA,gDAEEV,cAAM,KACI,CAEVz6Z,GAAA,gBAAYy/F,OACV,OAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACaD,cACb,KACgB,CACRz6Z,GACR,cAAuBy/F,OACvB,QAAUj4H,KACV,cAAY+M,SACZ,WAAU,QAAAimb,UACV,CACAK,OAAA,6CACF,oEAEFJ,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,MACRj4H,KAAA,SAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,KACa,CACCz6Z,GACZ,iBAASy/F,OACT,MAAuBj4H,KACvB,iBAAmB+M,SACnB,WAAU,QACZimb,UAAA,CACAE,SAAA,6CACF,6DACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,MACa,CAEbz6Z,GAAA,QACAy/F,OAAA,MACFj4H,KAAA,MACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,UACAy/F,OAAA,OAAaj4H,KACX,UACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,gBAAYy/F,OACV,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,eACAy/F,OAAA,OACEj4H,KAAM,eACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVC,UAAA,6CACF,oEACaF,cACC,KACW,CAEzBz6Z,GAAA,aACAy/F,OAAA,OACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVC,UAAQ,6CACRE,OAAA,8CAEAJ,cAAA,MACa,CAEbz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVC,UAAQ,6CACR,sBAAY,6CACV,4DACF,2DACA,sBAAa,8CACCF,cACF,MACF,CACWz6Z,GACnB,UAAgBy/F,OAChB,OACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YACF+M,SAAA,mBACAimb,UAAA,CACE8B,OAAA,eAEF7B,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACA,eAAa,8CAEbD,cAAA,KAEF,CACAz6Z,GAAA,0BACEy/F,OAAM,MACNj4H,KAAA,0BACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CACCz6Z,GACZ,oBAAmBy/F,OACnB,MAAaj4H,KACb,oBAAiB+M,SACjB,mBAAuBimb,UACvB,CACAE,SAAQ,8CACAD,cACR,MACe,CACCz6Z,GAChB,YACFy/F,OAAA,OACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CAEZz6Z,GAAA,eACAy/F,OAAA,QAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAU,6CACZC,UAAA,6CACA,sBAAiB,6CACnB,2DACAQ,OAAA,gDAEEV,cAAU,MACF,CACIz6Z,GACV,eAAAy/F,OACA,MACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,GAAYC,cACF,IACA,CAEZz6Z,GAAA,cACFy/F,OAAA,OACAj4H,KAAA,OACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,kBAAY,6CACV6B,YAAA,6CACAC,MAAA,6CACFpB,OAAA,6CACAI,MACE,8EACA,aAAU,6CACZiB,UAAA,6CACA7B,KAAA,qEACF8B,KAAA,6CACAC,MAAA,6CACEC,MAAM,6CACNV,SAAU,6CACV,oBAAQ,6CACRW,QAAA,6CACE,2DACAd,MAAA,6CACFE,KAAA,6CACAa,MAAA,8CACcrC,cACZ,KACgB,CAElBz6Z,GAAA,WACFy/F,OAAA,OACAj4H,KAAA,WACE+M,SAAM,YACNimb,UAAU,GACVC,cAAQ,GACI,CACVz6Z,GACA,MACFy/F,OAAA,MACAj4H,KAAA,MAAa+M,SACX,SAAYimb,UACZ,GACFC,cAAA,IAEF,CACAz6Z,GAAA,WACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,IACA,CAEFz6Z,GAAA,QAAay/F,OACX,OAAgBj4H,KAChB,OACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,IACc,CAEhBz6Z,GAAA,WACAy/F,OAAA,MACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,WACAy/F,OAAA,MAAaj4H,KACX,WAAY+M,SACZ,WAAmB,QAAAimb,UACnB,GAAaC,cACb,IACe,CACLz6Z,GACV,SACFy/F,OAAA,MACAj4H,KAAA,MACF+M,SAAA,SACAimb,UAAA,GACEC,cAAM,GACI,CAEVz6Z,GAAA,UAAYy/F,OACV,MAAAj4H,KACA,gBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,8CACJC,cACR,MACe,CACCz6Z,GAChB,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,SACAimb,UAAA,CACEuC,SACA,sEAEAtC,cAAY,MACV,CAEFz6Z,GAAA,UAAay/F,OACX,OACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,mBACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,KACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACA,sBAAiB,6CACnB,4DAEED,cAAM,KACI,CAEVz6Z,GAAA,YAAYy/F,OACV,QAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACX,MACF,CAEFz6Z,GAAA,eACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,YACVimb,UAAQ,CACR,sBAAY,6CACVE,SAAA,6CACAS,OAAA,gDAEFV,cAAa,KACY,CAEzBz6Z,GAAA,UACFx4B,KAAA,UACA+M,SAAA,mBACEkrH,OAAM,MACNg7T,cAAU,KACVD,UAAQ,IACI,CAEZx6Z,GAAA,YACAy/F,OAAA,OAAaj4H,KACX,YACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,kBACAy/F,OAAQ,MACRj4H,KAAA,aAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,IACa,CAEbz6Z,GAAA,kBACAy/F,OAAA,MACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,eAAAy/F,OACA,MACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,GACFC,cAAA,KAEF,CACAz6Z,GAAA,cACEy/F,OAAM,OACNj4H,KAAA,cACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,UACFy/F,OAAA,OACAj4H,KAAA,UACF+M,SAAA,YACAimb,UAAA,CACE,cAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,MACAj4H,KAAA,eAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAQ,8CACKD,cACb,IACW,CACMz6Z,GACjB,cAAoBy/F,OACpB,MAAQj4H,KACR,cAAQ+M,SACR,WAAgB,QAAAimb,UACR,GAAAC,cACR,KACU,CAEZz6Z,GAAA,gBACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,eAAay/F,OACX,OACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,aAAAy/F,OACA,OACFj4H,KAAA,aACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,gBACAy/F,OAAQ,QACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACF,mEACAE,SAAA,8CAEAD,cAAA,KAEF,CACAz6Z,GAAA,UACEy/F,OAAM,QACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACDz6Z,GACV,YACFy/F,OAAA,MACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,UAAYy/F,OACV,OAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,MAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,IACC,CACKz6Z,GACjB,aACFy/F,OAAA,MACAj4H,KAAA,aACF+M,SAAA,SACAimb,UAAA,CACEqB,KAAM,qCACNmB,WAAU,6CACVlC,OAAQ,6CACRJ,SAAY,8CACVD,cACA,IACF,CACaz6Z,GACX,oBACFy/F,OAAA,MACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACE,eAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,kBACFy/F,OAAA,MACAj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,cAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,mBACAy/F,OAAA,KAAaj4H,KACX,mBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,QAAAj4H,KACA,cACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,6CACF,4DAEFD,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,QACRj4H,KAAA,UAAY+M,SACV,YAAAimb,UACA,CACFyC,WAAA,8CACaxC,cACC,MACd,CAEFz6Z,GAAA,YACAy/F,OAAA,MACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,eACFy/F,OAAA,MACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAM,gDAENV,cAAQ,MACI,CACVz6Z,GACA,aACFy/F,OAAA,QACAj4H,KAAA,aAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAW,OAAA,8CACF,oEAEFV,cAAA,MACA,CAEEz6Z,GAAA,kBACAy/F,OAAQ,MACRj4H,KAAA,kBAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,MACC,CAEfz6Z,GAAA,sBACAy/F,OAAA,OACFj4H,KAAA,sBACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,kCACAy/F,OAAA,OAAaj4H,KACX,UAAY+M,SACZ,WAAa,QAAAimb,UACb,CACAE,SAAA,6CACA,sBAAe,8CAEjBD,cAAA,MAEF,CACAz6Z,GAAA,0BACEy/F,OAAM,OACNj4H,KAAA,0BACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,mEACF,4DAEAD,cAAA,MAEF,CACEz6Z,GAAA,kBACAy/F,OAAA,QACAj4H,KAAA,kBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,2DACA,sBAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,cACEy/F,OAAM,MACNj4H,KAAA,cACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CACCz6Z,GACZ,aACFy/F,OAAA,MACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,IACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,mEACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,OACEy/F,OAAM,MACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,SACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,iBACAy/F,OAAA,OAAaj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,WAAAy/F,OACA,OACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,CACAgB,MACA,0FACA0B,IAAA,oFAEFzC,cAAA,MAEF,CACAz6Z,GAAA,cACEy/F,OAAM,cACNj4H,KAAA,cACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACc,CAEhBz6Z,GAAA,cACAy/F,OAAA,QACEj4H,KAAM,cACN+M,SAAU,mBACVimb,UAAQ,CACR2C,QACE,qEACAC,UACF,uEACAC,KAAA,uEACE,UACA,wEACe5C,cACN,MACC,CACDz6Z,GACT,OAAcy/F,OACd,OAAaj4H,KACb,OAAQ+M,SACA,mBAAAimb,UACC,CACTE,SAAS,8CACGD,cACZ,KACW,CACIz6Z,GACf,WAASy/F,OACT,MAAQj4H,KACR,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,mEACEI,OAAM,8CAENL,cAAQ,KACI,CAEZz6Z,GAAA,mBACAy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,KACI,CAEZz6Z,GAAA,YACAy/F,OAAA,MACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,OACAj4H,KAAA,eACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEK,KAAM,8CAENN,cAAQ,KACI,CACVz6Z,GACA,SACFy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,cAAM,6CACN,eAAU,6CACV,sBAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,SACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,6CACV,cAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,UACAy/F,OAAA,OACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,CACNW,OAAU,gDAEVV,cAAY,KACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,YACEimb,UAAM,CACNW,OAAU,+CACV,WAAQ,6CACRT,SAAY,6CACVc,MACA,qEACF,4DACA,cAAa,6CACX,sBAAuB,8CAEzBf,cAAA,IAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,YAAYimb,UACV,CACFE,SAAA,6CACA,eAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,QACNj4H,KAAA,eACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACE,aAAM,8CAENC,cAAQ,KACI,CACVz6Z,GACA,YACFy/F,OAAA,SACAj4H,KAAA,YAAa+M,SACX,mBACFimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,WAAYy/F,OACV,MAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACuBD,cACvB,MACF,CAEFz6Z,GAAA,iBACAy/F,OAAA,QACEj4H,KAAM,iBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,4DAEFD,cAAA,KACc,CAEhBz6Z,GAAA,UACAy/F,OAAA,OACEj4H,KAAM,UACN+M,SAAU,YACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,QAAay/F,OACX,QAAuBj4H,KACvB,QAAY+M,SACZ,WAAU,QACZimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,kBAAYy/F,OACV,MAAAj4H,KACA,kBACF+M,SAAA,SACAimb,UAAU,CACVE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,UAAY+M,SACV,SAAAimb,UACA,GACFC,cAAA,MACc,CAEhBz6Z,GAAA,aACAy/F,OAAA,QACEj4H,KAAM,aACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,4DAEFD,cAAA,MACc,CAEhBz6Z,GAAA,QACAy/F,OAAA,QACEj4H,KAAM,sBACN+M,SAAU,mBACVimb,UAAQ,CACR,gBAAY,8CACVC,cACA,MACF,CAEAz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,GACI,CACVz6Z,GACA,kBACFy/F,OAAA,MACAj4H,KAAA,YACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACEI,OAAM,6CACN,sBAAU,6CACV,cAAQ,6CACRD,OAAA,6CACE,4DACAD,KAAA,sEAEFH,cAAa,KACC,CAEdz6Z,GAAA,MACFy/F,OAAA,MACAj4H,KAAA,MACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRkB,KAAA,6CACEf,OAAA,6CACFC,OAAA,6CACAH,UAAa,6CACX,gBAAe,6CACjB,mEACA2C,OAAA,6CACFlC,OAAA,6CACA,4DACE1qa,KAAM,6CACN,cAAU,6CACV,sBAAQ,6CACR,kBAAY,6CACV,+DACAkqa,KAAA,qEACF6B,UAAA,6CACApB,OAAA,6CACEa,SAAA,6CACFqB,QAAA,6CACA,oBAAiB,6CACnBvB,OACA,uEACED,MAAM,6CACNe,MAAA,6CACA,gBAAQ,6CACR,aAAY,6CACVb,KAAA,6CACAuB,MAAA,2CACF,gBACA,gEAEF/C,cAAA,IACA,CAEEz6Z,GAAA,gBACAy/F,OAAQ,QACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACAE,KAAA,qEACEE,OAAA,6CACF,2DACA,kBAAiB,6CACnB2B,UAAA,6CACAP,SAAA,6CACE,sBAAM,8CAENzB,cAAQ,IACI,CACVz6Z,GACA,kBACFy/F,OAAA,OACAj4H,KAAA,kBAAa+M,SACX,YACFimb,UAAA,CACAE,SAAA,6CACF,mEACA,4DACE,cAAM,6CACNhqa,KAAA,8CAEA+pa,cAAY,IACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,UACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAC,UAAA,6CACE,sBAAM,6CACNkB,KAAA,qCACA4B,YAAQ,aACIhD,cACV,KACA,CAEFz6Z,GAAA,kBAAay/F,OACX,OAAuBj4H,KACvB,kBACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,6CACA6B,YAAA,6CACE1B,OAAM,6CACN,gBAAU,6CACVD,KAAQ,qEACRD,UAAY,6CACV,mEACAS,OAAA,6CACFkC,OAAA,6CACAxC,OAAA,6CACE,cAAY,6CACd4C,UAAA,6CACA,kBAAiB,6CACnBjB,UAAA,6CACA1B,KAAA,6CACE,kBAAM,6CACNkB,KAAA,6CACAZ,OAAQ,6CACRqB,KAAA,6CACEC,MAAA,6CACAT,SAAA,6CACFyB,MAAA,6CACAJ,QAAA,6CACA,oBAAiB,6CACnBK,QAAA,6CACAhC,KAAA,6CACEG,MAAM,6CACN8B,KAAA,6CACAf,MAAQ,6CACR,aAAY,6CACVU,MAAA,2CACA,4DACF,4DACA,gBACE,+DACFlC,KAAA,8CAEFb,cAAA,IACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAc,8CAEhBD,cAAA,KACA,CAEEz6Z,GAAA,gBACAy/F,OAAQ,MACRj4H,KAAA,gBAAY+M,SACV,mBACFimb,UAAA,CACA,sBAAa,6CACXE,SAAQ,6CACR,eAAc,6CACdoD,KAAA,yCAEFrD,cAAA,MAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,MACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CAEbz6Z,GAAA,SACAy/F,OAAA,SACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,cACAy/F,OAAA,OAAaj4H,KACX,OAAY+M,SACZ,YACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,8BACAy/F,OAAA,QAAYj4H,KACV,8BAAA+M,SACA,SACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,aACEy/F,OAAM,OACNj4H,KAAA,aACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,eACAy/F,OAAA,MACFj4H,KAAA,eACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,QACFy/F,OAAA,QACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,6CACN,sBAAU,6CACV,cAAQ,6CACRE,SAAY,6CACVG,OAAA,6CACAF,UAAA,6CACFS,OAAA,8CACaX,cACX,MACF,CAEFz6Z,GAAA,cACAy/F,OAAA,OACEj4H,KAAM,cACN+M,SAAU,mBACVimb,UAAQ,CACR,cAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,OACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,eAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,aAAU+M,SACV,mBACFimb,UAAA,CACAuD,SAAA,YACFrD,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,cAAAy/F,OACA,SACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,SAAY+M,SACV,YACFimb,UAAA,CACA,gBAAa,qBAEbC,cAAA,MAEF,CACAz6Z,GAAA,cACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAC,UAAA,8CAEFF,cAAa,MACC,CAEdz6Z,GAAA,WACAy/F,OAAA,QACFj4H,KAAA,QACA+M,SAAA,SACEimb,UAAM,CACN,sBAAU,6CACVoB,KAAQ,6CACRlB,SAAY,6CACV,4DAEFD,cAAA,MACa,CACCz6Z,GACZ,QAAuBy/F,OACvB,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,eACAy/F,OAAA,OAAYj4H,KACV,eAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEI,OAAA,8CACeL,cACf,KACF,CAEFz6Z,GAAA,cACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,mBACFy/F,OAAA,MACAj4H,KAAA,mBACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,SACAimb,UAAA,CACA,mBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,gBACAy/F,OAAA,QAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACA,eAAa,8CACCC,cACZ,KACe,CAEjBz6Z,GAAA,QACFy/F,OAAA,QACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVwD,MAAQ,6CACRtD,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,eACFy/F,OAAA,OACAj4H,KAAA,SACF+M,SAAA,SACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,UACAy/F,OAAA,MAAaj4H,KACX,UACF+M,SAAA,mBACAimb,UAAA,CACF,2DACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,SAAAy/F,OACA,SACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,iBACAy/F,OAAQ,OACRj4H,KAAA,iBAAY+M,SACV,mBAAAimb,UACA,CACF,mEACAE,SAAA,8CACcD,cACZ,KACF,CAEFz6Z,GAAA,gBACAy/F,OAAA,MACEj4H,KAAM,gBACN+M,SAAU,YACVimb,UAAQ,CACRuD,SAAY,aACVtD,cACA,MACF,CACaz6Z,GACX,YAASy/F,OACT,OACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACF,4DAEED,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACaD,cACL,KACG,CAEbz6Z,GAAA,UACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRC,UAAY,6CACV,mEACA,4DACF,2DACA,sBAAa,8CAEbF,cAAA,KAEF,CACAz6Z,GAAA,eACEy/F,OAAM,MACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAuB,KAAA,8CAEFxB,cAAa,KACC,CACWz6Z,GACvB,iBACFy/F,OAAA,OACAj4H,KAAA,iBACF+M,SAAA,SACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,gBAAYy/F,OACV,OAAAj4H,KACA,gBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,SACAj4H,KAAA,gBACA+M,SAAA,SAAYimb,UACV,CACAW,OAAA,gDAEFV,cAAa,KACC,CAEdz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,UAAYy/F,OACZ,UACFj4H,KAAA,UACA+M,SAAA,YACFimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,eAAAy/F,OACA,MACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,cAAe,+CACCC,cAChB,MACF,CAEFz6Z,GAAA,iBACAy/F,OAAA,UACEj4H,KAAM,iBACN+M,SAAU,mBACVimb,UAAQ,CACR,cAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,MACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACE,cAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,OACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,gBACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACD,KACZ,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,SACVimb,UAAQ,CACRE,SAAY,6CACV,4DACFI,OAAA,8CACaL,cACD,KACE,CACAz6Z,GACZ,WAASy/F,OACT,MAAgBj4H,KAChB,WAAe+M,SACf,mBACFimb,UAAA,CACAwB,OACF,uEACAzzZ,OAAA,iDAEEkyZ,cAAU,IACF,CACIz6Z,GACV,YACFy/F,OAAA,OACAj4H,KAAA,YAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OACF+M,SAAA,mBACAimb,UAAA,CACEc,KAAA,8CAEFb,cAAA,KAEF,CACEz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,cACA+M,SAAA,WAAY,QAAAimb,UACV,CACAc,KAAA,6CACF,yCACab,cACX,KACF,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRc,KAAA,8CACEb,cACA,MACF,CACaz6Z,GACX,uBAAYy/F,OACZ,MACFj4H,KAAA,kBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEG,OAAM,6CACNC,OAAU,6CACV,cAAQ,6CACR,kBAAY,8CACVL,cACA,KACF,CACaz6Z,GACX,aACFy/F,OAAA,MACAj4H,KAAA,aACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,eAAYy/F,OACV,OAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACAz6Z,GAAA,SACEy/F,OAAM,MACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACF,CAEAz6Z,GAAA,iBACFy/F,OAAA,QACAj4H,KAAA,iBACE+M,SAAM,mBACNimb,UAAU,CACV0C,IAAA,mFACYzC,cACV,KACA,CAEFz6Z,GAAA,cAAay/F,OACX,QACFj4H,KAAA,cACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,kBAAM,6CACN,cAAU,6CACV,sBAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,WACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,YACAimb,UAAA,CACE,sBAAM,6CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,kBACAy/F,OAAA,MACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,YAAYy/F,OACZ,OACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEG,OAAM,6CACNF,UAAU,6CACVG,OAAQ,6CACR,sBAAY,6CACV,gBACA,+DACF,4DACA,cAAa,6CACXmB,KAAA,6CACF,2DACA,kBAAiB,6CACnBrB,KAAA,qEACA,mEACE,oBAAM,6CACNI,QACA,wEACYP,cACV,IACA,CAEFz6Z,GAAA,YACAy/F,OAAA,QACFj4H,KAAA,YACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,WAAYy/F,OACZ,OAAUj4H,KACV,WAAuB+M,SACvB,WAAe,QAAAimb,UACf,CACA,sBAAgB,8CAElBC,cAAA,KAEF,CACAz6Z,GAAA,4BACEy/F,OAAM,SACNj4H,KAAA,4BACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,gBAAQy/F,OACR,MAAUj4H,KACV,gBAAU+M,SACV,WAAa,QAAAimb,UACb,CACA,sBAAuB,8CACbC,cACA,MACM,CACRz6Z,GACR,oBAAey/F,OACf,OAAuBj4H,KACvB,oBAAmB+M,SACnB,WAAmB,QAAAimb,UACX,CACRE,SAAA,8CACUD,cACE,MACD,CACUz6Z,GACrB,UAAUy/F,OACV,KAASj4H,KACT,UAAS+M,SACT,YAAiBimb,UACjB,CACAyD,QAAQ,4DACCxD,cACT,MACF,CAEFz6Z,GAAA,SACAy/F,OAAA,SACEj4H,KAAM,SACN+M,SAAU,YACVimb,UAAQ,CACRW,OAAA,gDACEV,cACA,MACF,CACaz6Z,GACX,gBAAYy/F,OACZ,OAAQj4H,KACR,gBAAU+M,SACV,YAAeimb,UACf,CACAE,SAAA,8CACYD,cACZ,KACF,CAEFz6Z,GAAA,OACAy/F,OAAA,MACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,oBAAay/F,OACX,MAAYj4H,KACZ,oBAAuB+M,SACvB,WAAgB,QAAAimb,UAChB,CACA,sBAAQ,8CAEVC,cAAA,MAEF,CACEz6Z,GAAA,kBACAy/F,OAAA,SACAj4H,KAAA,kBACA+M,SAAA,YAAYimb,UACV,CACAQ,QACF,wEACaP,cACC,MACC,CACUz6Z,GACvB,SAAQy/F,OACR,MACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAW,OAAA,gDAEEV,cAAU,MACF,CACIz6Z,GACV,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAU,6CACVI,OAAA,8CACQL,cACK,IACU,CACbz6Z,GACV,WAAUy/F,OACV,OAAUj4H,KACV,WAAe+M,SACf,WAAa,QAAAimb,UACb,CACA,sBAAa,6CACbE,SAAQ,8CACWD,cACX,MACE,CACFz6Z,GACR,oCAASy/F,OACT,MAAYj4H,KACZ,qCAAS+M,SACT,WAAW,QAAAimb,UACX,CACA,cAAW,8CACHC,cACC,MACD,CACCz6Z,GACT,SAAcy/F,OACd,MAASj4H,KACT,aAAgB+M,SAChB,WAAgB,QAAAimb,UAChB,CACAE,SAAQ,8CAEVD,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACC,KACW,CAEzBz6Z,GAAA,aACFy/F,OAAA,OACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,iBAAuBy/F,OACvB,OAAYj4H,KACZ,gBAAgB+M,SACR,YACVimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,aACAy/F,OAAA,MAAYj4H,KACV,aAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,oBACEy/F,OAAM,QACNj4H,KAAA,oBACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACAuB,KAAA,6CACFpB,OAAA,6CACA,cAAa,6CACX,sBAAuB,8CAEzBJ,cAAA,KAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,8CACaD,cACX,MACF,CAEFz6Z,GAAA,QACAy/F,OAAA,OACEj4H,KAAM,QACN+M,SAAU,SACVimb,UAAQ,CACRE,SAAY,6CACV,4DAEFD,cAAa,KACY,CAEzBz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRI,OAAA,6CACE,4DAEFL,cAAA,KACa,CAEbz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,mBACA+M,SAAA,YACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,oBACAy/F,OAAA,MAAaj4H,KACX,oBAAY+M,SACZ,YACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,MAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACyBD,cACvB,MACe,CACHz6Z,GACZ,YAAUy/F,OACV,QAAaj4H,KACb,YACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,MAAAj4H,KACA,iBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,oEAEFD,cAAA,KACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,MACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,6CACX,cAAY,6CACZS,OAAA,gDAEFV,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,QACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CACaz6Z,GACX,OAAYy/F,OACZ,OAAYj4H,KACZ,OACF+M,SAAA,YACAimb,UAAA,CACFW,OAAA,gDAEEV,cAAM,MACI,CAEVz6Z,GAAA,0BAAYy/F,OACV,MAAAj4H,KACA,oBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,OACAj4H,KAAA,aACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,8CACaD,cACX,MACF,CAEFz6Z,GAAA,cACAy/F,OAAA,MACEj4H,KAAM,kBACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,YAAYy/F,OACZ,QACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,KACI,CAEZz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAuB+M,SACf,mBAAAimb,UACR,CACA,sBAAe,6CACjBkD,UAAA,6CACAhD,SAAA,6CACF,2DACAS,OAAA,gDAEEV,cAAU,KACF,CACIz6Z,GACV,8BAAAy/F,OACA,QACFj4H,KAAA,8BACA+M,SAAA,WAAc,QACdimb,UAAA,CACFE,SAAA,6CACA,mEACE,cAAM,6CACN,eAAU,6CACVhqa,KAAQ,8CACI+pa,cACV,KACA,CAEFz6Z,GAAA,eAAay/F,OACX,OAAYj4H,KACZ,eACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,YAAYy/F,OACV,MAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,OACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAc,KAEhB,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACE0C,IAAA,gFAEFzC,cAAa,MACS,CAEtBz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,cACFy/F,OAAA,SACAj4H,KAAA,cACF+M,SAAA,YACAimb,UAAA,CACE,eAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,CAAS,WAAAimb,UACT,CACFG,UAAA,8CAEFF,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,SAAY+M,SACV,mBACFimb,UAAA,CACA0D,OAAA,QACEjD,QACA,uEACFD,QACA,wEAEFP,cAAA,MACQ,CAENz6Z,GAAA,4BACAy/F,OAAA,OAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEI,OAAA,6CACAH,UAAA,6CACF,gBACA,+DACF,2DACA,+DACE,eAAM,6CACN,sBAAU,6CACVC,KAAQ,sEACIH,cACV,KACA,CAEFz6Z,GAAA,oBAAay/F,OACX,QACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,4BAAAy/F,OACA,MACFj4H,KAAA,sCACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,eACAy/F,OAAA,MACAj4H,KAAA,eACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,aACAy/F,OAAA,MACEj4H,KAAM,aACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,MAAaj4H,KACX,UACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,IACA,CAEEz6Z,GAAA,gBACAy/F,OAAQ,MACRj4H,KAAA,QAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,MACG,CAEjBz6Z,GAAA,oBACFy/F,OAAA,OACAj4H,KAAA,oBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,eAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,qBACFy/F,OAAA,MACAj4H,KAAA,gBACF+M,SAAA,SACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,kBAAYy/F,OACV,SAAAj4H,KACA,kBACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CACaD,cACb,KACgB,CACDz6Z,GACf,YACFy/F,OAAA,MACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACEiD,YAAM,WAENhD,cAAQ,KACI,CACVz6Z,GACA,cACFy/F,OAAA,OACAj4H,KAAA,cAAa+M,SACX,WAAY,QAAAimb,UACJ,CACVE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBACFimb,UAAA,CACAW,OAAA,gDAEFV,cAAA,MACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,YAAAimb,UACA,GACFC,cAAA,KACa,CAEbz6Z,GAAA,cACAy/F,OAAA,OACFj4H,KAAA,cACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,6CACVyD,QAAQ,+CACRvD,SAAY,8CAEZD,cAAA,KACa,CAEbz6Z,GAAA,SACAy/F,OAAA,OACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,KACF,CACIz6Z,GACV,SACFy/F,OAAA,OACAj4H,KAAA,aAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFoB,KAAA,6CACAuC,MAAA,6CACFlD,QACA,uEACED,QACA,uEACA,sBAAQ,6CACRgD,MAAA,8CAEAvD,cAAA,IACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,eACAy/F,OAAA,MAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACX,KACF,CAEFz6Z,GAAA,YACAy/F,OAAA,MACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAA,MACa,CAEbz6Z,GAAA,SACAy/F,OAAA,OACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,UAAay/F,OACX,QACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEI,OAAM,6CACNF,KAAA,qEACA,gBACA,+DACE,4DACFC,OAAA,8CACaJ,cACC,MACW,CAEzBz6Z,GAAA,UACFy/F,OAAA,QACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CAEZD,cAAA,MACa,CACCz6Z,GACZ,eAAgBy/F,OAChB,MACFj4H,KAAA,aACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,OACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,sBAAU,8CAEZC,cAAA,KAEF,CACEz6Z,GAAA,YACAy/F,OAAA,QACAj4H,KAAA,YACA+M,SAAA,WAAY,QAAAimb,UACV,CACAY,OAAA,8CAEFX,cAAa,MACC,CAEdz6Z,GAAA,YACAy/F,OAAA,MACFj4H,KAAA,YACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,SAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,CACF4D,UACA,sEAEE3D,cAAU,MACF,CACIz6Z,GACV,aAAAy/F,OACA,QACFj4H,KAAA,eACA+M,SAAA,YAAaimb,UACH,CACR9pa,KAAA,8CAEF+pa,cAAA,KAEF,CACEz6Z,GAAA,YACAy/F,OAAA,QACAj4H,KAAA,YACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DAEFC,cAAa,MACH,CAEVz6Z,GAAA,4BACFy/F,OAAA,QACAj4H,KAAA,4BACE+M,SAAM,YACNimb,UAAU,CACVW,OAAQ,gDACIV,cACV,KACA,CAEFz6Z,GAAA,SAAay/F,OACX,MAAYj4H,KACZ,kBAAU+M,SACV,WAAU,QAAAimb,UACV,CACA,sBAAmB,8CAErBC,cAAA,MAEF,CACEz6Z,GAAA,eACAy/F,OAAA,QACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAW,OAAA,gDAEFV,cAAc,MAEhB,CACAz6Z,GAAA,gBACEy/F,OAAM,MACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,SACAy/F,OAAA,SACFj4H,KAAA,SACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,6CACV,eAAQ,6CACR,sBAAY,6CACVhqa,KAAA,6CACAura,KAAA,6CACF,4DAEAxB,cAAA,KAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,OACAj4H,KAAA,UACA+M,SAAA,YAAYimb,UACV,CACAW,OAAA,gDAEFV,cAAa,MACJ,CAETz6Z,GAAA,aACFy/F,OAAA,OACAj4H,KAAA,aACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,kBAAay/F,OACX,MAAYj4H,KACZ,kBAAmB+M,SACnB,WAAe,QAAAimb,UACf,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,OACRj4H,KAAA,gBAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAuB,8CAEzBD,cAAA,MAEF,CACAz6Z,GAAA,mBACEy/F,OAAM,MACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,IACa,CACCz6Z,GACZ,cAAey/F,OACf,OACFj4H,KAAA,cACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,0BAAAy/F,OACA,MACFj4H,KAAA,0BACA+M,SAAA,YAAaimb,UACX,CACA,cAAU,8CACGC,cACH,MACa,CACNz6Z,GACjB,kBAAgBy/F,OAChB,MAAej4H,KACf,UAAQ+M,SACR,SAAeimb,UACf,CACAE,SAAQ,6CACR,sBAAuB,8CACFD,cACV,MACb,CAEFz6Z,GAAA,wBACAy/F,OAAA,UACEj4H,KAAM,wBACN+M,SAAU,YACVimb,UAAQ,CACR,2BAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,kBAAYy/F,OACZ,OACFj4H,KAAA,kBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,QAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACAO,QACF,wEAEER,cAAM,KACI,CAEVz6Z,GAAA,WAAYy/F,OACV,OACFj4H,KAAA,WACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,SACRj4H,KAAA,SAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACX,MACF,CAEFz6Z,GAAA,YACAy/F,OAAA,UACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,OACAj4H,KAAA,SACF+M,SAAA,SACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,6CACVS,OAAQ,gDACIV,cACV,MACF,CACaz6Z,GACX,mBACFy/F,OAAA,MACAj4H,KAAA,yBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,eAAay/F,OACX,QACFj4H,KAAA,eACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,6CACN,sBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,YAAay/F,OACX,MACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,aACAy/F,OAAA,MAAYj4H,KACV,aAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAc,8CAEhBC,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACX,MACF,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,mEACF,4DACaD,cACA,MACb,CAEFz6Z,GAAA,YACAy/F,OAAA,MACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,4DACA,mEACF,6DACaD,cACD,KACZ,CAEFz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,6CACVO,QACA,uEACFD,QACA,wEACcP,cACF,MACZ,CAEFz6Z,GAAA,sBACAy/F,OAAA,MACEj4H,KAAM,sBACN+M,SAAU,mBACVimb,UAAQ,CACR,eAAY,6CACVE,SAAA,8CAEFD,cAAA,KACa,CACYz6Z,GACvB,UACFy/F,OAAA,MACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,gCAAYy/F,OACV,OAAAj4H,KACA,mBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,4DACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,KACC,CAEdz6Z,GAAA,eACFy/F,OAAA,MACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,UAAay/F,OACX,OAAYj4H,KACZ,UACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,mEACE,cAAM,6CACNuB,KAAA,8CAEAxB,cAAY,KACV,CAEFz6Z,GAAA,iBACAy/F,OAAA,MAAaj4H,KACX,oBAAY+M,SACZ,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,MACAj4H,KAAA,gBACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CACaz6Z,GACX,YACFy/F,OAAA,KACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACE6D,UAAM,6CACN3D,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,WAAay/F,OACX,MAAYj4H,KACZ,WAAQ+M,SACR,WAAU,QAAAimb,UACV,CACAE,SAAA,6CACFC,UAAA,6CACA,sBAAiB,6CACnBQ,OAAA,gDAEEV,cAAM,KACI,CAEVz6Z,GAAA,YAAYy/F,OACV,MAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,6CACdE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,eACAy/F,OAAQ,OACRj4H,KAAA,eAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,cAAY,8CAEdD,cAAA,IAEF,CACAz6Z,GAAA,6BACEy/F,OAAM,MACNj4H,KAAA,6BACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,4DAEFD,cAAa,MACC,CACFz6Z,GACV,MACFy/F,OAAA,MACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,6CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,4BAAay/F,OACX,MACFj4H,KAAA,MACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,WACFy/F,OAAA,MACAj4H,KAAA,MAAa+M,SACX,mBACFimb,UAAA,CACAE,SAAA,6CACFE,KAAA,qEACA,oEAEEH,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,OACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,KACd,CAEFz6Z,GAAA,SACAy/F,OAAA,MACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,WACAy/F,OAAA,MAAaj4H,KACX,WAAY+M,SACZ,mBACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,KACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,MAAYj4H,KACV,kBAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,MACC,CACWz6Z,GACvB,aAAey/F,OACf,SACFj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,YAAAy/F,OACA,QACFj4H,KAAA,YACA+M,SAAA,WAAc,QACdimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,MACRj4H,KAAA,YAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAU,8CAEZD,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,QACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,2DACA,sBAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,oEAEFD,cAAa,KACC,CAEdz6Z,GAAA,gBACFy/F,OAAA,QACAj4H,KAAA,gBACE+M,SAAM,YACNimb,UAAU,CACVG,UAAQ,8CACIF,cACV,MACF,CACaz6Z,GACX,WACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,UACAy/F,OAAA,MAAaj4H,KACX,UAAY+M,SACZ,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,MAAYj4H,KACV,mBAAA+M,SACA,YACFimb,UAAA,CACAE,SAAA,6CACEI,OAAA,6CACA,cAAa,6CACbmB,KAAA,8CACexB,cACL,MACZ,CAEFz6Z,GAAA,QACAy/F,OAAA,QACEj4H,KAAM,kBACN+M,SAAU,mBACVimb,UAAQ,CACR,cAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,sBAAYy/F,OACZ,MAAuBj4H,KACvB,eAAe+M,SACf,YAAgBimb,UACR,CACVE,SAAA,6CACAC,UAAA,6CACF,oEAEEF,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEG,UAAA,6CACFD,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,OACRj4H,KAAA,YAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,oEAEFD,cAAa,MACC,CAEdz6Z,GAAA,iBACFy/F,OAAA,QACAj4H,KAAA,iBACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,iBAAay/F,OACX,QACFj4H,KAAA,iBACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,SAAaimb,UACX,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,SACAy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,SAAYimb,UACV,CACFE,SAAA,6CACA,sBAAa,6CACX,4DAEFD,cAAA,KAEF,CACEz6Z,GAAA,kBACAy/F,OAAA,QACAj4H,KAAA,kBACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,4DACaC,cACE,MACf,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,6DACA,4DACF,mEACA,cAAa,6CACX,cAAU,8CACCD,cACA,MACb,CAEFz6Z,GAAA,OACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,WAAU,QAAAimb,UACV,CACAwB,OACA,wEACmBvB,cACnB,MACuB,CAEzBz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,uBACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,OACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACAS,OAAA,gDAEFV,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACAG,UAAa,8CAEbF,cAAA,KAEF,CACAz6Z,GAAA,WACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACAE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,OACFy/F,OAAA,OACAj4H,KAAA,OACE+M,SAAM,SACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,KACF,CAEAz6Z,GAAA,WACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,SACAy/F,OAAA,MACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,6CACR,cAAY,8CAEZD,cAAA,MACa,CAEbz6Z,GAAA,SACAy/F,OAAA,MACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNW,OAAU,gDAEVV,cAAY,MACV,CAEFz6Z,GAAA,WACAy/F,OAAA,MAAaj4H,KACX,WAAY+M,SACZ,YACFimb,UAAA,CACAE,SAAA,6CACF,gEAEED,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,QACFj4H,KAAA,kBACA+M,SAAA,WAAc,QACdimb,UAAA,CACFE,SAAA,6CACAC,UAAA,6CACE2C,OAAM,8CAEN7C,cAAQ,MACI,CAEZz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,eAAAy/F,OACA,KACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACAI,OAAA,6CACF,4DACA,oEAEEL,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,MACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACA,eAAiB,6CACnB,4DAEED,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,OAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAU,6CACZ,4DAEFD,cAAA,MACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,MACRj4H,KAAA,aAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACA,sBAAiB,6CACnBhqa,KAAA,6CACA,4DACE,cAAM,8CAEN+pa,cAAQ,MACI,CACVz6Z,GACA,iBACFy/F,OAAA,MACAj4H,KAAA,iBAAa+M,SACX,mBAAuBimb,UACvB,CACA,sBAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,MACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CAEAz6Z,GAAA,cACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,MACI,CACVz6Z,GACA,aACFy/F,OAAA,MACAj4H,KAAA,aAAa+M,SACH,mBAAAimb,UACC,CACTE,SAAA,8CACWD,cACX,MACS,CAEXz6Z,GAAA,UACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,SACAimb,UAAA,CACE,cAAM,6CACNgC,MAAA,6CACA9B,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,YACAy/F,OAAA,QACFj4H,KAAA,YACA+M,SAAA,YACEimb,UAAM,CACNW,OAAU,+CACV,sBAAQ,8CACIV,cACV,MACA,CAEFz6Z,GAAA,QAAay/F,OACX,OACFj4H,KAAA,QACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,cAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,QAAaj4H,KACX,QAAY+M,SACZ,YACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,MAAYj4H,KACV,eAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEuB,KAAA,8CAEFxB,cAAA,MAEF,CACAz6Z,GAAA,aACEy/F,OAAM,MACNj4H,KAAA,aACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACAI,OAAA,8CAEFL,cAAa,KACC,CACFz6Z,GACV,sBAAQy/F,OACR,QAAiBj4H,KACjB,sBAAgB+M,SAChB,WAAU,QACZimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,yBACAy/F,OAAA,QAAYj4H,KACV,yBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,MACF,CAEFz6Z,GAAA,OACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,MACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNyD,QACA,oFACYxD,cACV,MACA,CAEFz6Z,GAAA,SAAay/F,OACX,MACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACAI,OAAA,6CACF,gBACA,+DACE,eAAM,6CACN,sBAAU,6CACVO,OAAQ,6CACR,cAAY,8CACVZ,cACA,KACF,CACaz6Z,GACX,SACFy/F,OAAA,OACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACE8D,MAAM,uCACN,cAAU,8CAEV7D,cAAY,MACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,WACF+M,SAAA,YACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,gBAAYy/F,OACV,QACFj4H,KAAA,gBACA+M,SAAA,YAAaimb,UACH,CACV6D,UAAA,8CAEF5D,cAAA,KACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,SACRj4H,KAAA,SAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,6CACA,cAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACFgC,KAAA,6CACAtB,OAAA,6CACE,sBAAU,6CACZ,2DACAD,OAAA,gDAEFV,cAAA,KACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,MAAA+M,SACA,YACFimb,UAAA,GACAC,cAAa,MACY,CAEzBz6Z,GAAA,uBACFy/F,OAAA,MACAj4H,KAAA,uBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,WAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,6CACN,eAAU,6CACVhqa,KAAQ,6CACR,sBAAY,6CACVmqa,OAAA,8CAEFJ,cAAA,KACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,6CACVG,UAAQ,6CACRD,SAAY,8CAEZD,cAAA,MACa,CACCz6Z,GACZ,gBAAgBy/F,OAChB,MAAuBj4H,KACvB,gBAAQ+M,SACA,YAAAimb,UACR,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,YACFimb,UAAA,CACAE,SAAA,6CACEuB,KAAA,8CAEFxB,cAAA,MAEF,CACEz6Z,GAAA,kBACAy/F,OAAA,QACAj4H,KAAA,kBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACC,MACd,CAEFz6Z,GAAA,QACAy/F,OAAA,MACEj4H,KAAM,QACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,6DAEFD,cAAA,MACa,CAEbz6Z,GAAA,qBACAy/F,OAAA,OACFj4H,KAAA,eACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,eAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,iBAAay/F,OACX,OAAYj4H,KACZ,eACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,aAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,2DACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,OAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,6CACd,4DAEFD,cAAA,MACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,OACRj4H,KAAA,cAAY+M,SACV,YACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,MACF,CACaz6Z,GACX,WAAYy/F,OACZ,OACFj4H,KAAA,OACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,eACAy/F,OAAA,QAAaj4H,KACX,gBACF+M,SAAA,YACAimb,UAAA,CACF,2DACA,oEAEEC,cAAU,KACF,CACIz6Z,GACV,YAAAy/F,OACA,MACFj4H,KAAA,YACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,8CAEdD,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,YACRimb,UAAA,CACEG,UAAA,6CACFD,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,eACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVI,OAAA,8CAEFL,cAAA,KACa,CAEbz6Z,GAAA,gBACAy/F,OAAA,OACFj4H,KAAA,gBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,6CACRS,OAAA,gDACEV,cACA,MACF,CACaz6Z,GACX,kBACFy/F,OAAA,MACAj4H,KAAA,kBACF+M,SAAA,SACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,aACAy/F,OAAA,OAAaj4H,KACX,OAAY+M,SACZ,mBAAuBimb,UACvB,CACFwB,OACA,wEAEFvB,cAAA,IACQ,CAENz6Z,GAAA,SACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,6CACZS,OAAA,gDAEFV,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,MACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,IACF,CACaz6Z,GACX,gBAAYy/F,OACZ,QAAuBj4H,KACvB,gBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAhqa,KAAA,8CAEE+pa,cAAU,KACF,CACIz6Z,GACV,MAAAy/F,OACA,MACFj4H,KAAA,MACA+M,SAAA,SACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,MAAAj4H,KACA,gBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAuB,8CAEzBC,cAAA,KAEF,CACEz6Z,GAAA,UACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,6DAEFC,cAAa,KACC,CAEdz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRI,OAAA,8CACEL,cACA,KACF,CACaz6Z,GACX,OAAYy/F,OACZ,OAAuBj4H,KACvB,OACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACgBD,cAChB,MACgB,CAElBz6Z,GAAA,OACFy/F,OAAA,OACAj4H,KAAA,OACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,WAAYy/F,OACZ,MAAWj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACF,mEACA,2DACE,eAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,WACFy/F,OAAA,MACAj4H,KAAA,cAAa+M,SACX,WAAgB,QAAAimb,UAChB,CACF,mEACAE,SAAA,6CACF,4DAEED,cAAM,KACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,MAAAj4H,KACA,iBACF+M,SAAA,mBACAimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CACIz6Z,GAChB,gBACFy/F,OAAA,MACAj4H,KAAA,gBACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,UAAYy/F,OACV,MAAAj4H,KACA,UACF+M,SAAA,SACAimb,UAAA,CACAE,SAAA,6CACF,4DAEED,cAAM,KACI,CAEVz6Z,GAAA,mBAAYy/F,OACV,MAAAj4H,KACA,mBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,cACAy/F,OAAA,MACAj4H,KAAA,cACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CACaz6Z,GACX,mBAAYy/F,OACZ,MAAuBj4H,KACvB,oBAAe+M,SACP,mBACVimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,cACFy/F,OAAA,MACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACVG,UAAQ,6CACRE,OAAA,6CACEO,OAAA,6CACF,mEACAsB,KAAA,6CACED,UAAA,6CACFI,QAAA,6CACAc,MAAA,6CACF,2DACAjD,SAAA,6CACEuB,KAAM,8CAENxB,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,OACAj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,IACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SAAA+M,SACA,YACFimb,UAAA,CACAW,OAAA,gDACeV,cACD,MACd,CAEFz6Z,GAAA,cACAy/F,OAAA,SACEj4H,KAAM,cACN+M,SAAU,YACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,SAAYy/F,OACZ,KAAaj4H,KACb,SAAuB+M,SACvB,WAAU,QACZimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,eACAy/F,OAAA,MAAYj4H,KACV,eAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACyBD,cACX,MACd,CAEFz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVM,QACA,wEAEFP,cAAa,MACC,CAEdz6Z,GAAA,WACAy/F,OAAA,MACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACN,eAAU,6CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,SAAay/F,OACX,MAAYj4H,KACZ,SACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,mBACEy/F,OAAM,MACNj4H,KAAA,aACA+M,SAAQ,mBACRimb,UAAA,CACEyB,KAAA,8CAEFxB,cAAA,KACa,CAEbz6Z,GAAA,YACAy/F,OAAA,MACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVI,OAAQ,6CACR,kBAAY,8CACVL,cACA,KACF,CACaz6Z,GACX,eAAYy/F,OACZ,MAAQj4H,KACR,eACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,aAAAy/F,OACA,OACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACF,oEAEFD,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,8CAEAD,cAAA,KAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,YAAYimb,UACV,CACA,4DAEFC,cAAc,MAEhB,CACAz6Z,GAAA,YACEy/F,OAAM,OACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,MACA,CAEFz6Z,GAAA,aAAay/F,OACX,OACFj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,QACFy/F,OAAA,MACAj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,gBACFy/F,OAAA,QACAj4H,KAAA,gBAAa+M,SACX,WAAY,QACdimb,UAAA,CACAK,OAAA,8CAEFJ,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,MAAYj4H,KACV,WAAA+M,SACA,YACFimb,UAAA,CACA,eAAc,8CAEhBC,cAAA,MACA,CAEEz6Z,GAAA,qBACAy/F,OAAQ,MACRj4H,KAAA,qBAAY+M,SACV,mBAAAimb,UACA,CACF,4DACAE,SAAA,6CACE,sBAAY,8CAEdD,cAAA,MAEF,CACAz6Z,GAAA,oBACEy/F,OAAM,QACNj4H,KAAA,oBACA+M,SAAQ,SACRimb,UAAA,CAAY,EAAAC,cACV,MACA,CAEFz6Z,GAAA,UAAay/F,OACX,OAAYj4H,KACZ,UAAe+M,SACf,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,iBACAy/F,OAAA,KAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,MACF,CAEFz6Z,GAAA,OACAy/F,OAAA,MACEj4H,KAAM,OACN+M,SAAU,SACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,QAAay/F,OACX,QACFj4H,KAAA,QACA+M,SAAA,SACFimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,gBAAAy/F,OACA,OACFj4H,KAAA,gBACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACF,4DAEFD,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,KACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,MACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACC,CACFz6Z,GACV,mBAAey/F,OACf,MACFj4H,KAAA,mBACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,IACQ,CAENz6Z,GAAA,gBACAy/F,OAAA,OAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAe,6CACjB,4DAEFD,cAAA,MACA,CAEEz6Z,GAAA,wBACAy/F,OAAQ,MACRj4H,KAAA,wBAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACC,KACU,CAEzBz6Z,GAAA,mBACFy/F,OAAA,OACAj4H,KAAA,cACE+M,SAAM,YACNimb,UAAU,GACVC,cAAQ,KACI,CACVz6Z,GACA,qCACFy/F,OAAA,OACAj4H,KAAA,gBAAa+M,SACX,WAAa,QAAAimb,UACb,CACFE,SAAA,6CACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,QAAYj4H,KACV,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,2DACF,oEAEFD,cAAA,MACA,CAEEz6Z,GAAA,kBACAy/F,OAAQ,MACRj4H,KAAA,kBAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,KACW,CAEzBz6Z,GAAA,WACFy/F,OAAA,QACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRuB,KAAA,6CACEX,KAAA,8CAEFb,cAAa,MACC,CAEdz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRI,OAAA,8CAEAL,cAAA,KACa,CAEbz6Z,GAAA,QACAy/F,OAAA,MACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,QACFy/F,OAAA,MACAj4H,KAAA,QAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,MACW,CAEzBz6Z,GAAA,mBACAy/F,OAAA,QACFj4H,KAAA,mBACA+M,SAAA,SACEimb,UAAM,CACNE,SAAU,6CACVC,UAAQ,6CACR,sBAAY,6CACV,4DACA,2DACFQ,OAAA,gDACaV,cACX,MACF,CAEFz6Z,GAAA,SACAy/F,OAAA,QACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,WAAYy/F,OACZ,OAAiBj4H,KACjB,WAAgB+M,SAChB,mBAAuBimb,UACvB,CACA,sBAAe,8CAEjBC,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,KACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,mEACFE,SAAA,8CAEAD,cAAA,KAEF,CACEz6Z,GAAA,aACAy/F,OAAA,KACAj4H,KAAA,KACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,2DACA,sBAAa,8CAEbD,cAAA,KAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACAG,UAAA,6CACFD,SAAA,6CACAG,OAAA,6CACA,cAAiB,8CAEnBJ,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACF,KACZ,CAEFz6Z,GAAA,oBACAy/F,OAAA,MACEj4H,KAAM,oBACN+M,SAAU,mBACVimb,UAAQ,CACRiB,OAAA,8CACEhB,cACA,KACF,CACaz6Z,GACX,cACFy/F,OAAA,OACAj4H,KAAA,cACF+M,SAAA,YACAimb,UAAA,CACE8C,OAAM,8CAEN7C,cAAQ,KACI,CACVz6Z,GACA,QACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,mBAAuBimb,UACvB,CACF2D,MAAA,6CACAzD,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,kBACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA6D,QAAA,8CAEF9D,cAAa,MACC,CAEdz6Z,GAAA,gBACFy/F,OAAA,QACAj4H,KAAA,gBACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,6CACR9pa,KAAA,8CACE+pa,cACA,KACF,CACaz6Z,GACX,sBAAYy/F,OACZ,SAAuBj4H,KACvB,sBACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,UAAYy/F,OACV,OAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,CACE,cAAU,6CACZ,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,YAAY+M,SACV,mBACFimb,UAAA,CACA,eAAa,8CACCC,cACZ,MACF,CAEFz6Z,GAAA,cACAy/F,OAAA,MACEj4H,KAAM,cACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,WAAa,QAAAimb,UACb,CAAU,EACZC,cAAA,IAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,YACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CACCz6Z,GACZ,kBACFy/F,OAAA,OACAj4H,KAAA,kBACF+M,SAAA,YACAimb,UAAA,CACEE,SAAM,6CACNI,OAAU,6CACV,sBAAQ,8CACIL,cACV,KACA,CAEFz6Z,GAAA,YAAay/F,OACX,MAAYj4H,KACZ,YAAU+M,SACV,WAAgB,QAAAimb,UAChB,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,cAAa,6CACX,sBAAY,6CACZG,OAAA,8CAEFJ,cAAA,MAEF,CACAz6Z,GAAA,aACEy/F,OAAM,OACNj4H,KAAA,aACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,MACA,CAEFz6Z,GAAA,UAAay/F,OACX,MAAYj4H,KACZ,UACF+M,SAAA,YACAimb,UAAA,CACF,oEAEEC,cAAM,KACI,CAEVz6Z,GAAA,kBAAYy/F,OACV,MAAAj4H,KACA,kBACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CACuBD,cACf,MACQ,CAElBz6Z,GAAA,UACAy/F,OAAA,MACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,aACAy/F,OAAA,MAAaj4H,KACX,gBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAW,OAAA,8CAEEZ,cAAU,KACF,CACIz6Z,GACV,QAAAy/F,OACA,MACFj4H,KAAA,QACA+M,SAAA,WAAc,QACdimb,UAAA,CACFY,OAAA,6CACAV,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,iBAAAy/F,OACA,MACFj4H,KAAA,iBACA+M,SAAA,WAAc,QACdimb,UAAA,CACFE,SAAA,6CACAI,OAAA,6CACEH,UAAM,6CACN,eAAU,6CACV,cAAQ,6CACR,sBAAY,8CACVF,cACA,MACF,CACaz6Z,GACX,WACFy/F,OAAA,MACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,6CACVM,QACA,wEACEP,cACA,IACF,CACaz6Z,GACX,UACFy/F,OAAA,MACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,CACEgE,QAAM,8CAEN/D,cAAQ,MACI,CAEZz6Z,GAAA,eACAy/F,OAAA,MAAaj4H,KACX,eAAe+M,SACf,CAAS,kBAAAimb,UACT,GACFC,cAAA,KAEF,CACAz6Z,GAAA,cACEy/F,OAAM,QACNj4H,KAAA,cACA+M,SAAQ,SACRimb,UAAA,CACE,4DAEFC,cAAa,MACD,CAEZz6Z,GAAA,aACAy/F,OAAA,MACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,oBAAay/F,OACX,QAAYj4H,KACZ,oBAAe+M,SACf,mBACFimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,IACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,GACFC,cAAA,KAEF,CACAz6Z,GAAA,mBACEy/F,OAAM,MACNj4H,KAAA,mBACA+M,SAAQ,YACRimb,UAAA,CAAY,EAAAC,cACV,KACA,CAEFz6Z,GAAA,iBAAay/F,OACX,MAAYj4H,KACZ,QACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,IACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,OACRj4H,KAAA,WAAY+M,SACV,mBACFimb,UAAA,CACA4D,UACE,sEAEF3D,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,OACNj4H,KAAA,YACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACA+D,SAAA,8CAEFhE,cAAa,MACC,CAEdz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,MACI,CACVz6Z,GACA,WACFy/F,OAAA,QACAj4H,KAAA,iBAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,IACC,CAEdz6Z,GAAA,UACFy/F,OAAA,QACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,eAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,UACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,gBAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CACFz6Z,GACV,iBAAiBy/F,OACjB,MAAgBj4H,KAChB,UAAuB+M,SACvB,WAAU,QAAAimb,UACV,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,gBACAy/F,OAAA,OAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACA,eAAa,6CACXE,SAAS,8CAEXD,cAAA,MAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACF,mEACA,cAAa,6CACXS,OAAA,gDAEFV,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,SAAYimb,UACV,CACFE,SAAA,6CACAwB,SAAA,6CACEvB,UAAA,6CACF,6DACA,sBAAiB,6CACnB,gBACA,+DACE,eAAM,6CACN,sBAAU,6CACV8B,UAAQ,6CACR5B,OAAA,6CACE,+DACF,2DACAsD,MAAA,6CACEhD,OAAA,gDAEFV,cAAA,KAEF,CACAz6Z,GAAA,yBACEy/F,OAAM,OACNj4H,KAAA,yBACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,6CACF,4DACA,sBAAa,8CACCD,cACJ,KACE,CACaz6Z,GACvB,aAAey/F,OACf,MACFj4H,KAAA,aACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,6CACEG,OAAM,6CACN,gBAAU,6CACV,eAAQ,6CACR,cAAY,6CACVF,UAAA,6CACF,mEACA8B,UAAa,6CACb,kBAAiB,6CACnB0B,MAAA,6CACAhD,OAAA,gDAEEV,cAAU,KACF,CACIz6Z,GACV,eAAAy/F,OACA,OACFj4H,KAAA,eACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,4BACAy/F,OAAA,MAAYj4H,KACV,4BAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,MACgB,CACRz6Z,GACR,iBAAuBy/F,OACvB,OACFj4H,KAAA,iBACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,iBAAAy/F,OACA,QACFj4H,KAAA,WACA+M,SAAA,SAAaimb,UACX,CACAE,SAAA,6CACA,kBAAY,6CACd,2DACA,sBAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,mEACAG,OAAA,6CACF,2DACA,iBACE,qEACA,cAAU,8CAEVJ,cAAY,MACV,CAEFz6Z,GAAA,UAAay/F,OACX,MAAYj4H,KACZ,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAI,OAAA,8CAEEL,cAAU,KACF,CACIz6Z,GACV,aAAAy/F,OACA,OACFj4H,KAAA,WACA+M,SAAA,YAAaimb,UACX,CACAE,SAAA,6CACF,2DACA,sBAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,qBACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,6CACZuB,KAAA,6CACF,4DACA,sBAAiB,6CACnB,4DAEExB,cAAM,MACI,CAEVz6Z,GAAA,aAAYy/F,OACV,SAAAj4H,KACA,aACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,8CAEdC,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,KACNj4H,KAAA,aACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,QACFy/F,OAAA,QACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,gBAAYy/F,OACZ,MAAej4H,KACf,gBACF+M,SAAA,mBACAimb,UAAA,CACF,2DACA,6DAEEC,cAAU,KACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,IAEF,CACAz6Z,GAAA,aACEy/F,OAAM,QACNj4H,KAAA,aACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,iBACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,SACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,KACF,CAEAz6Z,GAAA,UACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACV,aAAQ,8CACIC,cACV,MACF,CACaz6Z,GACX,oBAAYy/F,OACZ,QACFj4H,KAAA,oBACA+M,SAAA,SACFimb,UAAA,CACA,4DAEEC,cAAU,MACF,CACIz6Z,GACV,SACFy/F,OAAA,SACAj4H,KAAA,SAAa+M,SACX,WAAe,QAAAimb,UACf,CACF,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,UAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,gBACA,gEAEFD,cAAA,KAEF,CACEz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,cACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACC,MACW,CAEzBz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,YACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,MACF,CACaz6Z,GACX,QAAay/F,OACb,OACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,mBAAM,mDACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,MAAaj4H,KACX,QAAY+M,SACZ,YACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,SACAy/F,OAAA,OAAYj4H,KACV,aAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CACCC,cACZ,KACU,CAEZz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CAEZD,cAAA,KACa,CAEbz6Z,GAAA,qBACAy/F,OAAA,OACFj4H,KAAA,qBACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,KACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,QAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACuBD,cACb,MACZ,CAEFz6Z,GAAA,YACAy/F,OAAA,SACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACR,eAAY,6CACVE,SAAA,8CAEFD,cAAA,KACc,CAEhBz6Z,GAAA,WACAy/F,OAAA,QACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,aAAYy/F,OACZ,OACFj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,SACFimb,UAAA,CACA,sBAAiB,6CACnBE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,mBAAYy/F,OACV,QAAAj4H,KACA,mBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,eACAy/F,OAAA,OACAj4H,KAAA,eACA+M,SAAA,YAAYimb,UACV,CACAW,OAAA,gDAEFV,cAAa,MACI,CAEjBz6Z,GAAA,MACFy/F,OAAA,MACAj4H,KAAA,MACE+M,SAAM,mBACNimb,UAAU,CACVkE,IAAA,oEACYjE,cACV,KACA,CAEFz6Z,GAAA,kBAAay/F,OACX,KAAYj4H,KACZ,OACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,IACI,CAEVz6Z,GAAA,WAAYy/F,OACV,MAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEG,UAAA,8CAEFF,cAAA,KAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRG,OAAA,6CACE,4DAEFJ,cAAA,KACa,CAEbz6Z,GAAA,SACAy/F,OAAA,OACFj4H,KAAA,SACA+M,SAAA,YACEimb,UAAM,CACN,aAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,OAAaj4H,KACX,gBAAuB+M,SACvB,WAAe,QAAAimb,UACf,CACFE,SAAA,6CACA,gBACF,gEAEED,cAAM,KACI,CAEVz6Z,GAAA,UAAYy/F,OACV,QAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAuB,8CACXC,cACZ,MACF,CAEFz6Z,GAAA,aACAy/F,OAAA,MACEj4H,KAAM,aACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CAEAz6Z,GAAA,mBACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,YACNimb,UAAU,CACVW,OAAQ,+CACIV,cACV,KACA,CAEFz6Z,GAAA,SAAay/F,OACX,OACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEC,UAAM,6CACN,cAAU,6CACV,sBAAQ,8CACIF,cACV,MACA,CAEFz6Z,GAAA,wBACAy/F,OAAA,KACFj4H,KAAA,uBACA+M,SAAA,YACEimb,UAAM,CACN,cAAU,6CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,UAAYy/F,OACZ,OACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,4DAEEC,cAAU,MACF,CACIz6Z,GACV,SAAAy/F,OACA,MACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACF,oEAEAC,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,MACAj4H,KAAA,eACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,4DAEAD,cAAA,KAEF,CACEz6Z,GAAA,kBACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,SAAYimb,UACV,CACF,4DACaC,cACC,MACd,CAEFz6Z,GAAA,MACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,SAAay/F,OACb,MAAUj4H,KACV,SAAU+M,SACV,mBAAuBimb,UACf,CACRE,SAAA,6CACAuB,KAAA,8CACSxB,cACT,MACY,CAEdz6Z,GAAA,aACAy/F,OAAA,QACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,uBAAAy/F,OACA,MACFj4H,KAAA,uBACA+M,SAAA,WAAc,QACdimb,UAAA,CACFE,SAAA,6CACA,4DAEED,cAAU,MACF,CACIz6Z,GACV,4BACFy/F,OAAA,OACAj4H,KAAA,8BAAa+M,SACX,WAAU,QACZimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,qBACAy/F,OAAA,OACAj4H,KAAA,qBACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,6DACaC,cACX,MACF,CAEFz6Z,GAAA,MACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,CACR,eAAY,6CACVG,UAAA,8CAEFF,cAAA,KACa,CAEbz6Z,GAAA,SACAy/F,OAAA,MACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVI,OAAQ,6CACR,eAAY,6CACVmB,KAAA,8CAEFxB,cAAA,KACa,CAEbz6Z,GAAA,MACAy/F,OAAA,MACFj4H,KAAA,MACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,UACAy/F,OAAA,KAAaj4H,KACX,UAAY+M,SACZ,WAAW,QACbimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,iBACAy/F,OAAA,OACAj4H,KAAA,iBACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACK,CAElBz6Z,GAAA,WACAy/F,OAAA,MACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,mBACFy/F,OAAA,SACAj4H,KAAA,aAAa+M,SACX,YACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,QACAy/F,OAAA,MAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEI,OAAA,8CAEFL,cAAA,KAEF,CACEz6Z,GAAA,mBACAy/F,OAAA,MACAj4H,KAAA,mBACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,oEAEFC,cAAa,MACH,CAEVz6Z,GAAA,mBACFy/F,OAAA,OACAj4H,KAAA,mBACE+M,SAAM,YACNimb,UAAU,GACVC,cAAQ,MACI,CACVz6Z,GACA,qBACFy/F,OAAA,MACAj4H,KAAA,qBAAa+M,SACX,YAAYimb,UACZ,CACA,4DACFmE,KAAA,6CACAjE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACAW,OAAA,gDACcV,cACZ,MACF,CAEFz6Z,GAAA,kBACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRuD,SAAY,cACVtD,cACA,MACF,CACaz6Z,GACX,UAAYy/F,OACZ,UACFj4H,KAAA,UACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,iBACFy/F,OAAA,OACAj4H,KAAA,iBAAa+M,SACX,WAAY,QACdimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACA4C,OAAA,6CACE,eAAe,6CACjB,4DAEF7C,cAAA,MACA,CAEEz6Z,GAAA,wBACAy/F,OAAQ,MACRj4H,KAAA,4BAAY+M,SACV,YAAAimb,UACA,CACFiB,OAAA,8CAEAhB,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,4DACA4C,OAAA,8CACc7C,cACZ,MACF,CAEFz6Z,GAAA,UACAy/F,OAAA,QACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVG,OAAA,6CACAF,UAAA,6CACF,mEACA,eAAa,6CACX,sBAAY,8CAEdF,cAAA,MAEF,CACAz6Z,GAAA,qBACEy/F,OAAM,MACNj4H,KAAA,qBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACN,iBAAU,YACVQ,QACA,uEACEC,QACF,uEACA2D,OACE,oEACFC,SACA,uEACFV,MAAA,8CAEE1D,cAAM,MACI,CAEVz6Z,GAAA,oBAAYy/F,OACV,MAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACX,MACY,CAEdz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,gBACFy/F,OAAA,OACAj4H,KAAA,gBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,cAAAy/F,OACA,MACFj4H,KAAA,cACA+M,SAAA,SAAaimb,UACX,GACFC,cAAA,KAEF,CACAz6Z,GAAA,QACEy/F,OAAM,MACNj4H,KAAA,YACA+M,SAAQ,YACRimb,UAAA,CACE,mEACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,aACFy/F,OAAA,MACAj4H,KAAA,aACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CAEAz6Z,GAAA,qBACFy/F,OAAA,MACAj4H,KAAA,qBACE+M,SAAM,SACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACF,CACaz6Z,GACX,aACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,oBACFy/F,OAAA,OACAj4H,KAAA,oBAAa+M,SACX,YAAYimb,UACZ,CACF,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,KACa,CACCz6Z,GACZ,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNiB,QAAU,gEACVR,OAAQ,+CACR,eAAY,8CACVV,cACA,MACF,CACaz6Z,GACX,cACFy/F,OAAA,SACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,UACFy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,MACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,sBAAuB,6CACvBE,SAAA,6CACFoE,QAAA,8CAEFrE,cAAA,KACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,OACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,UACAy/F,OAAA,OACEj4H,KAAM,kBACN+M,SAAU,YACVimb,UAAQ,CACRuC,SACE,sEAEFtC,cAAc,MAEhB,CACAz6Z,GAAA,YACEy/F,OAAM,QACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,4DACF,4DACaD,cACC,MACG,CAEjBz6Z,GAAA,QACFy/F,OAAA,QACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,OAAYj4H,KACZ,OAAe+M,SACf,mBACFimb,UAAA,CACAE,SAAA,6CACF,gBACA,+DACE,sBAAM,6CACNS,OAAU,gDAEVV,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,KACa,CACCz6Z,GACZ,cAAQy/F,OACR,UACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,qCAAAy/F,OACA,WACFj4H,KAAA,qCACA+M,SAAA,YAAaimb,UACX,CACAE,SAAU,8CAEZD,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,MACAj4H,KAAA,WACA+M,SAAA,SAAYimb,UACV,CACAE,SAAA,6CACF,oEAEAD,cAAA,KAEF,CACEz6Z,GAAA,QACAy/F,OAAA,MACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACA8B,OAAA,cAEF7B,cAAa,KACC,CAEdz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,QACAy/F,OAAA,MACFj4H,KAAA,QACA+M,SAAA,SACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,SACFy/F,OAAA,MACAj4H,KAAA,oBAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,6CACA,kBAAgB,6CAChBC,UAAA,6CACA,gBACF,+DACA,sBAAiB,6CACnB,2DACA,2DACEE,OAAM,6CACNC,OAAU,8CAEVL,cAAY,IACV,CAEFz6Z,GAAA,YACAy/F,OAAA,OAAaj4H,KACX,YACF+M,SAAA,mBACAimb,UAAA,CACFW,OAAA,gDAEEV,cAAM,MACI,CAEVz6Z,GAAA,cAAYy/F,OACV,MAAAj4H,KACA,cACF+M,SAAA,mBACAimb,UAAA,CACE,iEAEFC,cAAA,MAEF,CACEz6Z,GAAA,mBACAy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,SAAYimb,UACV,GAAAC,cACA,IACF,CACaz6Z,GACX,UAAuBy/F,OACvB,MACFj4H,KAAA,mBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,eAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,QAAaj4H,KACX,QAAY+M,SACZ,WAAe,QAAAimb,UACf,CACFE,SAAA,6CACAG,OAAA,6CACFC,OAAA,6CACA,6DAEEL,cAAU,MACF,CACIz6Z,GACV,SAAAy/F,OACA,MACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACAW,OAAA,+CACYV,cACF,KACK,CAEjBz6Z,GAAA,gBACFy/F,OAAA,SACAj4H,KAAA,gBACE+M,SAAM,mBACNimb,UAAU,CACVW,OAAQ,+CACIV,cACV,KACA,CAEFz6Z,GAAA,aAAay/F,OACX,QACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,eACFy/F,OAAA,OACAj4H,KAAA,eAAa+M,SACX,YACFimb,UAAA,CACA,kBAAiB,6CACnBE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,MAAYy/F,OACV,MACFj4H,KAAA,MACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,4DACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,SAAYj4H,KACV,kBAAA+M,SACA,mBACFimb,UAAA,CACA,kBAAa,8CACFC,cACG,MACd,CAEFz6Z,GAAA,uBACAy/F,OAAA,MACEj4H,KAAM,iBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,4BACFy/F,OAAA,SACAj4H,KAAA,6BACF+M,SAAA,YACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,gBACFy/F,OAAA,MACAj4H,KAAA,gBAAa+M,SACX,SAAYimb,UACZ,CACFG,UAAA,8CAEFF,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,OACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACF,2DACaC,cACX,MACQ,CAEVz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,aACFy/F,OAAA,MACAj4H,KAAA,YAAa+M,SACX,WAAe,QAAAimb,UACf,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,KACa,CAEbz6Z,GAAA,kBACAy/F,OAAA,MACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,CACNW,OAAU,gDAEVV,cAAY,MACV,CAEFz6Z,GAAA,aACAy/F,OAAA,QACAj4H,KAAA,aACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAM,gDAENV,cAAQ,KACI,CACVz6Z,GACA,aACFy/F,OAAA,OACAj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,eACFy/F,OAAA,OACAj4H,KAAA,eAAa+M,SACX,SACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,OAAYj4H,KACV,WACF+M,SAAA,mBACAimb,UAAA,CACE8B,OAAA,cACA5B,SAAU,8CAEZD,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,+DACFE,KAAA,qEACAE,OAAA,8CAEAL,cAAA,KAEF,CACAz6Z,GAAA,kBACEy/F,OAAM,MACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEW,OAAA,gDAEFV,cAAA,KACa,CACCz6Z,GACZ,kBAAey/F,OACf,OAAuBj4H,KACvB,kBACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,KACI,CAEVz6Z,GAAA,eAAYy/F,OACV,MAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,6CACF,2DACA,mEACEhqa,KAAM,6CACNura,KAAA,6CACA,eAAQ,8CACIxB,cACV,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNuB,KAAA,8CAEAxB,cAAY,KACV,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,6CACE,eAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,mBACFy/F,OAAA,MACAj4H,KAAA,mBAAa+M,SACX,WAAY,QACdimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACF,MACZ,CAEFz6Z,GAAA,SACAy/F,OAAA,MACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRW,OAAA,gDACEV,cACA,MACF,CACaz6Z,GACX,WAAUy/F,OACV,OACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,QAAYj4H,KACV,YAAA+M,SACA,SACFimb,UAAA,CACAE,SAAA,6CACEM,QACA,wEACaP,cACb,KACe,CAEjBz6Z,GAAA,YACAy/F,OAAA,OACFj4H,KAAA,YACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,cAAay/F,OACX,KAAYj4H,KACZ,QAAuB+M,SACvB,WAAW,QACbimb,UAAA,CACAE,SAAA,6CACF,gBACA,+DACE,kBAAM,6CACNmC,QAAU,8CAEVpC,cAAY,KACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,2DACEE,KAAM,qEACNiC,QAAU,6CACVgB,KAAQ,8CACIpD,cACV,MACA,CAEFz6Z,GAAA,aACAy/F,OAAA,QACFj4H,KAAA,aACA+M,SAAA,YACEimb,UAAM,CACNG,UAAU,8CAEVF,cAAY,MACV,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEI,OAAM,6CACNK,OAAU,gDAEVV,cAAY,KACV,CAEFz6Z,GAAA,QACAy/F,OAAA,QAAaj4H,KACX,QACF+M,SAAA,mBACAimb,UAAA,CACFgD,MAAA,4CAEE/C,cAAM,MACI,CAEVz6Z,GAAA,UAAYy/F,OACV,MAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,KACW,CAEzBz6Z,GAAA,WACFy/F,OAAA,OACAj4H,KAAA,WACE+M,SAAM,YACNimb,UAAU,CACV,sBAAQ,6CACR,mBAAY,oDACVC,cACA,KACF,CAEAz6Z,GAAA,2BACFy/F,OAAA,MACAj4H,KAAA,qBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,cAAY,8CAEZD,cAAA,MACc,CAEhBz6Z,GAAA,UACAy/F,OAAA,QACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CAEAz6Z,GAAA,OACFy/F,OAAA,OACAj4H,KAAA,OACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRG,OAAA,6CACE,mEACA,4DAEFJ,cAAa,MACE,CAEfz6Z,GAAA,gBACFy/F,OAAA,MACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACV,eAAQ,8CACIC,cACV,MACF,CACaz6Z,GACX,YAAYy/F,OACZ,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,6CACN,eAAU,6CACV,cAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,OACAy/F,OAAA,MACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,KACF,CACIz6Z,GACV,kBAAAy/F,OACA,MACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,OACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CAEAD,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,OACAj4H,KAAA,QACA+M,SAAA,SAAYimb,UACV,CACA,oEAEFC,cAAa,MACC,CAEdz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,+BACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,6CACVG,UAAQ,6CACR,eAAY,6CACV8B,UAAA,8CAEFhC,cAAA,KACc,CAEhBz6Z,GAAA,OACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,4DAEFD,cAAa,MACC,CAEdz6Z,GAAA,gBACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,YACFy/F,OAAA,MACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNE,KAAA,qEACAE,OAAQ,8CACIL,cACV,KACA,CAEFz6Z,GAAA,QAAay/F,OACX,QAAYj4H,KACZ,QACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,eACAy/F,OAAQ,MACRj4H,KAAA,eAAY+M,SACV,mBAAAimb,UACA,CACF,oEACaC,cACX,MACY,CAEdz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRI,OAAA,8CACEL,cACA,KACF,CACaz6Z,GACX,UAAYy/F,OACZ,OAAuBj4H,KACvB,UAAe+M,SACf,WAAU,QACZimb,UAAA,CACA,sBAAiB,6CACnB,4DAEEC,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,SACFj4H,KAAA,sBACA+M,SAAA,YAAaimb,UACX,CACAE,SAAA,8CACaD,cACb,MACuB,CACNz6Z,GACjB,MAAgBy/F,OAChB,MAAuBj4H,KACvB,MAAa+M,SACb,WAAU,QAAAimb,UACV,CACA,sBAAe,8CACNC,cACC,MACZ,CAEFz6Z,GAAA,OACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,MACa,CACCz6Z,GACZ,oBAAgBy/F,OAChB,OACFj4H,KAAA,oBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,iBACFy/F,OAAA,OACAj4H,KAAA,eAAa+M,SACX,WAAY,QAAAimb,UACZ,CACA,sBAAiB,8CACDC,cAChB,MACa,CACUz6Z,GACvB,WAAay/F,OACb,MAAmBj4H,KACnB,WAAS+M,SACT,WAAU,QACZimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,qBACAy/F,OAAA,MAAYj4H,KACV,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACAsB,OACF,uEACA,sBAAiB,6CACnBzzZ,OAAA,iDAEEkyZ,cAAM,IACI,CAEVz6Z,GAAA,YAAYy/F,OACV,OAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,4DAEFD,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACEC,UAAA,6CACF,2DACA,sBAAiB,8CAEnBF,cAAA,MACQ,CAENz6Z,GAAA,SACAy/F,OAAA,OAAYj4H,KACV,cACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,6CACAC,UAAA,6CACA,cAAe,6CACf,sBAAuB,8CAEzBF,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,MACAj4H,KAAA,YACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DAEFC,cAAa,MACC,CACWz6Z,GACvB,aAAUy/F,OACV,OAAej4H,KACf,aAAkB+M,SAClB,WAAe,QACjBimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,MACF,CACaz6Z,GACX,oBAAYy/F,OACZ,MACFj4H,KAAA,oBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,mDAEEC,cAAU,IACF,CACIz6Z,GACV,kBACFy/F,OAAA,MACAj4H,KAAA,kBAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,6CACF,6DACAqE,MAAA,6CACF,4DACA,mEACEzB,OAAM,6CACN3C,UAAU,6CACVz9R,OAAQ,6CACR29R,OAAA,6CACEmE,MAAA,6CACA,2DACFtua,KAAA,6CACA,sBAAa,8CACC+pa,cACZ,MACQ,CACQz6Z,GAChB,qBAAuBy/F,OACvB,MACFj4H,KAAA,qBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAQ,QACE,uEACAC,QACA,uEACA1yZ,OAAA,iDACEkyZ,cACA,MACF,CACaz6Z,GACX,iBACFy/F,OAAA,MACAj4H,KAAA,iBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,kBACFy/F,OAAA,MACAj4H,KAAA,kBAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,MAAA+M,SACA,mBACFimb,UAAA,CACAQ,QAAA,QACcP,cACZ,MACF,CAEFz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,SACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OAAe+M,SACf,SACFimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DAEFC,cAAa,KACC,CAEdz6Z,GAAA,UACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,YACNimb,UAAU,CACV,cAAQ,6CACR,eAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,eAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,eAAay/F,OACX,OAAYj4H,KACZ,UACF+M,SAAA,mBACAimb,UAAA,CACFQ,QACA,wEAEEP,cAAU,KACF,CACIz6Z,GACV,YAAAy/F,OACA,OACFj4H,KAAA,YACA+M,SAAA,WAAa,QAAAimb,UACX,GACFC,cAAA,KAEF,CACAz6Z,GAAA,YACEy/F,OAAM,QACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACI,CAEjBz6Z,GAAA,cACFy/F,OAAA,MACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,aAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,WACFy/F,OAAA,MACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,gBAAU,6CACV,sBAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,SAAay/F,OACX,SAAYj4H,KACZ,SACF+M,SAAA,SACAimb,UAAA,CACF8B,OAAA,iBAEE7B,cAAM,MACI,CAEVz6Z,GAAA,MAAYy/F,OACV,MAAAj4H,KACA,MACF+M,SAAA,mBACAimb,UAAA,CACEwB,OACA,wEAEFvB,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,SAAYimb,UACV,CACFE,SAAA,6CACA,cAAa,8CAEbD,cAAA,KAEF,CACAz6Z,GAAA,kBACEy/F,OAAM,MACNj4H,KAAA,kBACA+M,SAAQ,mBACRimb,UAAA,CACEjyZ,OAAA,gDACAyyZ,QACF,uEACAC,QACE,wEACoBR,cACpB,KACF,CAEFz6Z,GAAA,YACAy/F,OAAA,QACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,KACa,CAEbz6Z,GAAA,aACAy/F,OAAA,QACFj4H,KAAA,aACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,MACAy/F,OAAA,MAAaj4H,KACX,MACF+M,SAAA,YACAimb,UAAA,CACFG,UAAA,6CACA,4DACEsE,OAAM,6CACN,sBAAU,8CAEVxE,cAAY,KACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,WAAY+M,SACZ,YACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,QAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACA,eAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,OACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACA,gEAEFC,cAAa,MACY,CAEzBz6Z,GAAA,YACFy/F,OAAA,OACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,6CACRc,KAAA,6CACEZ,SAAA,6CACA,4DAEFD,cAAa,MACC,CAEdz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,OACE+M,SAAM,mBACNimb,UAAU,CACVwB,OACA,uEACEmC,MAAA,6CACA51Z,OAAA,iDAEFkyZ,cAAa,MACK,CAElBz6Z,GAAA,OACAy/F,OAAA,MACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNqB,KAAA,sCAEApB,cAAY,KACV,CAEFz6Z,GAAA,MACAy/F,OAAA,MAAaj4H,KACX,MACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACX,KACF,CAEFz6Z,GAAA,SACAy/F,OAAA,OACEj4H,KAAM,iBACN+M,SAAU,YACVimb,UAAQ,CACR,cAAY,6CACVE,SAAA,6CACF,mEACAS,OAAA,+CACyBV,cACX,MACd,CAEFz6Z,GAAA,SACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,6CACVG,UAAA,6CACAE,OAAA,8CAEFJ,cAAa,MACC,CAEdz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,MACF,CACaz6Z,GACX,QACFy/F,OAAA,MACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACE8C,OAAM,8CAEN7C,cAAQ,MACI,CACVz6Z,GACA,MACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACJ,mBACTimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,cACAy/F,OAAA,MAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,eAAY,6CACd,iCACA,cAAiB,6CACnBwE,MAAA,8CAEEzE,cAAM,MACI,CAEVz6Z,GAAA,gBAAYy/F,OACV,SAAAj4H,KACA,gBACF+M,SAAA,SACAimb,UAAA,CACEE,SAAA,6CACF,kCAEFD,cAAA,MACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,MACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACF2E,YAAA,6CACA,sBAAa,8CAEb1E,cAAA,MAEF,CACAz6Z,GAAA,SACEy/F,OAAM,MACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,MACA,CAEFz6Z,GAAA,QAAay/F,OACX,MAAYj4H,KACZ,QAAU+M,SACV,WAAe,QACjBimb,UAAA,GACAC,cAAA,IAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,4DACaC,cACX,MACF,CAEFz6Z,GAAA,aACAy/F,OAAA,OACEj4H,KAAM,aACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAA,KACa,CACCz6Z,GACZ,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,YAAYy/F,OACV,OAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,CACEM,OAAA,8CAEFL,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFG,OAAA,6CACAC,OAAA,8CAEAL,cAAA,KAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACF,+DACAI,OAAA,8CAEAL,cAAA,KAEF,CACAz6Z,GAAA,MACEy/F,OAAM,OACNj4H,KAAA,MACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,KAAay/F,OACb,MAAej4H,KACf,KACF+M,SAAA,mBACAimb,UAAA,CACFwB,OACA,wEAEEvB,cAAU,MACF,CACIz6Z,GACV,WACFy/F,OAAA,OACAj4H,KAAA,WAAa+M,SACX,YAAeimb,UACf,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,SAAYj4H,KACV,WAAA+M,SACA,YACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,OACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACA,gEAEFC,cAAa,MACC,CAEdz6Z,GAAA,gBACFy/F,OAAA,OACAj4H,KAAA,gBACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,KACI,CACVz6Z,GACA,MACFy/F,OAAA,MACAj4H,KAAA,MAAa+M,SACX,mBACFimb,UAAA,CACAW,OAAA,+CAEFV,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,8CAEdD,cAAA,MAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,OACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACI,CAEjBz6Z,GAAA,eACFy/F,OAAA,MACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,KACI,CACVz6Z,GACA,iBACFy/F,OAAA,MACAj4H,KAAA,iBAAa+M,SACX,SACFimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,aACAy/F,OAAA,WACAj4H,KAAA,aACA+M,SAAA,YAAYimb,UACV,CACA,oEAEFC,cAAa,MACC,CAEdz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,eAAAy/F,OACA,MACFj4H,KAAA,eACA+M,SAAA,WAAc,QACdimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,YAAAy/F,OACA,QACFj4H,KAAA,YACA+M,SAAA,YAAaimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,QACAj4H,KAAA,YACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAc,MAEhB,CACAz6Z,GAAA,eACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,YACRimb,UAAA,CACE,2DACAE,SAAA,8CAEFD,cAAa,MACI,CAEjBz6Z,GAAA,aACFy/F,OAAA,OACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,KACI,CACVz6Z,GACA,UACFy/F,OAAA,OACAj4H,KAAA,UAAa+M,SACX,YAAgBimb,UAChB,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,MACRj4H,KAAA,SAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACAuB,KAAA,8CACcxB,cACF,MACM,CAElBz6Z,GAAA,QACAy/F,OAAA,QACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,CACN,aAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACF,4DAEAC,cAAA,KAEF,CACEz6Z,GAAA,aACAy/F,OAAA,MACAj4H,KAAA,aACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,2DACA,eAAa,6CACX,sBAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CAEAz6Z,GAAA,UACFy/F,OAAA,UACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRhqa,KAAA,8CAEA+pa,cAAA,MACa,CAEbz6Z,GAAA,YACAy/F,OAAA,OACFj4H,KAAA,SACA+M,SAAA,SACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,YACAy/F,OAAA,OAAaj4H,KACX,YAAY+M,SACZ,WAAU,QACZimb,UAAA,CACAE,SAAA,6CACF,mEACA,4DACE,cAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,QACFy/F,OAAA,MACAj4H,KAAA,QAAa+M,SACX,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YACF+M,SAAA,mBACAimb,UAAA,CACA,sBAAiB,6CACnBE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,aAAYy/F,OACV,SACFj4H,KAAA,aACA+M,SAAA,SAAaimb,UACX,CACA,cACA,iEACF,oEAEFC,cAAA,MACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,MACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACFyE,OAAA,6CACA,sBAAa,8CAEbxE,cAAA,MAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,MACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACA,CAEFz6Z,GAAA,SAAay/F,OACX,OACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAQ,QACE,uEACA,sBAAU,6CACVN,SAAQ,6CACR,eAAY,6CACV,mEACFnyZ,OAAA,iDACakyZ,cACC,KACd,CAEFz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,WACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CAEAz6Z,GAAA,aACFy/F,OAAA,QACAj4H,KAAA,aACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,SAAay/F,OACX,MAAYj4H,KACZ,SAAU+M,SACV,SAAgBimb,UAChB,GACFC,cAAA,KAEF,CACAz6Z,GAAA,OACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAa,MACD,CAEZz6Z,GAAA,SACFy/F,OAAA,SACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,KACA,CAEFz6Z,GAAA,wBAAay/F,OACX,MAAYj4H,KACZ,wBAAgB+M,SAChB,WAAU,QACZimb,UAAA,CACAE,SAAA,6CACFG,OAAA,6CACAkE,MAAA,6CACE,gBAAM,6CACN,sBAAU,6CACVzB,OAAQ,6CACR,eAAY,6CACV3C,UAAA,6CACA,2DACF,oEACaF,cACC,KACF,CACGz6Z,GACb,eAAuBy/F,OACvB,OAAgBj4H,KAChB,eACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,MACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACF,oEACaC,cACC,KACd,CAEFz6Z,GAAA,SACAy/F,OAAA,OACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,cAAkBy/F,OAClB,KAAWj4H,KACX,cAAW+M,SACX,WAAU,QAAAimb,UACV,CACAE,SAAS,8CAEXD,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,OACAj4H,KAAA,YACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,oEAEFC,cAAc,MAEhB,CACAz6Z,GAAA,uBACEy/F,OAAM,MACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACc,CAEhBz6Z,GAAA,UACAy/F,OAAA,KACEj4H,KAAM,KACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,gBACFy/F,OAAA,MACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,aACAy/F,OAAA,QACAj4H,KAAA,aACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,aAAay/F,OACX,MAAuBj4H,KACvB,aACF+M,SAAA,mBACAimb,UAAA,CACF,6DAEEC,cAAM,MACI,CAEVz6Z,GAAA,WAAYy/F,OACV,QAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,mEACA,kBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,QAAYj4H,KACV,kBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,MACAy/F,OAAA,MACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACY,CAEzBz6Z,GAAA,qBACFy/F,OAAA,OACAj4H,KAAA,qBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACF,CACaz6Z,GACX,QACFy/F,OAAA,QACAj4H,KAAA,cACF+M,SAAA,YACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,yBACFy/F,OAAA,OACAj4H,KAAA,yBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAiB,OAAA,8CAEEhB,cAAU,MACF,CACIz6Z,GACV,YAAAy/F,OACA,MACFj4H,KAAA,YACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACAE,KAAA,sEAEFH,cAAA,IAEF,CACAz6Z,GAAA,OACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,QACAy/F,OAAA,MACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,6CACV,eAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,QAAay/F,OACX,QACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,eAAAy/F,OACA,KACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CAEbz6Z,GAAA,iBACAy/F,OAAA,OACFj4H,KAAA,iBACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,gBAAay/F,OACX,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,eAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,QACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,WAAY,QAAAimb,UACZ,GAAgBC,cAChB,MACF,CAEFz6Z,GAAA,WACAy/F,OAAA,MACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,mEACA,2DACF,6DACaD,cACC,IACd,CAEFz6Z,GAAA,kBACAy/F,OAAA,QACEj4H,KAAM,kBACN+M,SAAU,YACVimb,UAAQ,CACRW,OAAA,gDACEV,cACA,KACF,CACaz6Z,GACX,OAAYy/F,OACZ,OAAiBj4H,KACjB,aAAuB+M,SACvB,WAAU,QACZimb,UAAA,CACAK,OAAA,6CACFuE,UAAA,8CAEE3E,cAAM,KACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,OAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,6CACF,+DACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,UAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,YAAaimb,UACX,CACFuE,MAAA,6CACArE,SAAA,6CACF,mEACAC,UAAA,6CACE,cAAM,6CACN,eAAU,8CAEVF,cAAY,MACV,CAEFz6Z,GAAA,UAAay/F,OACX,OACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,WACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,KACW,CAEzBz6Z,GAAA,UACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,eAAay/F,OACX,OACFj4H,KAAA,eACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,4DACEK,OAAM,6CACNe,KAAA,6CACA,cAAQ,6CACR,sBAAY,8CACVnB,cACA,MACF,CACaz6Z,GACX,UACFy/F,OAAA,OACAj4H,KAAA,UACF+M,SAAA,YACAimb,UAAA,CACEE,SAAM,6CACN,eAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,cACAy/F,OAAA,OACFj4H,KAAA,cACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV4C,OAAQ,6CACR,sBAAY,6CACV,4DACA,4DAEF7C,cAAa,KACC,CACOz6Z,GACnB,OAAay/F,OACb,MAAiBj4H,KACjB,OAAuB+M,SACvB,WAAe,QAAAimb,UACf,GAAeC,cACL,KACA,CAEZz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,gBAAay/F,OACX,MACFj4H,KAAA,gBACA+M,SAAA,YACFimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,OAAYj4H,KACV,kBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAc,MAEhB,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,WAAgBy/F,OAChB,MACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,eAAM,6CACN,kBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,SACAy/F,OAAA,OAAaj4H,KACX,OAAY+M,SACZ,YAAUimb,UACV,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,MACAj4H,KAAA,gBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACD,CAEZz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR8C,MAAA,4CACE/C,cACA,MACF,CACaz6Z,GACX,WACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACE,eAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,WAAY,QAAAimb,UACZ,GACFC,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,QACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,KACQ,CAErBz6Z,GAAA,mBACAy/F,OAAA,OACFj4H,KAAA,qBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVI,OAAQ,8CACIL,cACV,KACA,CAEFz6Z,GAAA,WAAay/F,OACX,MAAgBj4H,KAChB,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAI,OAAA,6CACE,eAAM,8CAENL,cAAQ,KACI,CACVz6Z,GACA,QACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,SACFimb,UAAA,CACAE,SAAA,6CACF2E,SACA,sEAEE5E,cAAU,MACF,CACIz6Z,GACV,WAAAy/F,OACA,MACFj4H,KAAA,WACA+M,SAAA,SAAaimb,UACX,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACX,MACF,CAEFz6Z,GAAA,qBACAy/F,OAAA,SACEj4H,KAAM,qBACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CAEZC,cAAA,MACa,CAEbz6Z,GAAA,cACAy/F,OAAA,OACFj4H,KAAA,cACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,cACAy/F,OAAA,MAAaj4H,KACX,cACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,YAAAy/F,OACA,MACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACAgD,UAAA,8CAEFjD,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,YACRimb,UAAA,CACE,4DAEFC,cAAA,MACa,CAEbz6Z,GAAA,QACAy/F,OAAA,MACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,kBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,MAAaj4H,KACX,QACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,OACRj4H,KAAA,qBAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,KACa,CAEbz6Z,GAAA,aACAy/F,OAAA,OACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,CACN8E,QAAU,6CACVxD,OAAQ,wDACRpB,SAAY,6CACV,2DACA,oEAEFD,cAAa,MACC,CAEdz6Z,GAAA,8BACFy/F,OAAA,OACAj4H,KAAA,wBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,QACFy/F,OAAA,MACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,OACAj4H,KAAA,eAAa+M,SACX,WAAU,QAAAimb,UACV,CACFE,SAAA,6CACA,sBAAiB,6CACnB,6DAEED,cAAM,KACI,CAEVz6Z,GAAA,kBAAYy/F,OACV,OAAAj4H,KACA,kBACF+M,SAAA,mBACAimb,UAAA,CACEY,OAAA,8CACmBX,cACX,MACE,CAEZz6Z,GAAA,wBACFy/F,OAAA,MACAj4H,KAAA,wBACE+M,SAAM,YACNimb,UAAU,CACVY,OAAQ,8CACIX,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,cACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,aAAAy/F,OACA,OACFj4H,KAAA,aACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,mEACAK,OAAA,6CACFH,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,KAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,sBAAe,8CACQD,cACf,KACA,CAEVz6Z,GAAA,uBACAy/F,OAAA,MACFj4H,KAAA,uBACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,6CACVwE,MAAQ,6CACRrE,OAAA,6CACEe,KAAA,8CACAjB,UAAA,6CACF,mEACAoE,MAAA,6CACE,cAAY,6CACZrua,KAAA,6CACF+ra,UAAA,6CACA,eAAiB,6CACnB,oEAEEhC,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MACFj4H,KAAA,SACA+M,SAAA,YAAaimb,UACX,CACA,sBAAgB,6CAClB,6DAEFC,cAAA,KACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,OACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,cAAa,6CACX,6DAEFD,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,UACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,2DACFiC,UAAA,6CACAR,KAAA,6CACEO,MAAA,6CACFpB,OAAA,6CACA,kBAAiB,6CACnBC,OAAA,6CACA,+DACEN,KAAM,6CACNmB,SAAU,6CACV,oBAAQ,6CACRqB,QAAA,6CACE,0DACAjC,KAAA,6CACFH,OAAA,gDACaV,cACD,MACZ,CAEFz6Z,GAAA,YACAy/F,OAAA,MACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,QACAj4H,KAAA,eACF+M,SAAA,YACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,YACAy/F,OAAA,MAAaj4H,KACX,YAAY+M,SACZ,WAAW,QACbimb,UAAA,CACAE,SAAA,6CACFI,OAAA,8CAEEL,cAAM,KACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACAC,UAAA,6CACF,2DACAG,OAAA,6CACFF,KAAA,sEAEEH,cAAM,IACI,CAEVz6Z,GAAA,UAAYy/F,OACV,OAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACiBD,cACjB,MACW,CAEbz6Z,GAAA,OACFy/F,OAAA,MACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACV,cAAQ,8CACIC,cACV,KACA,CAEFz6Z,GAAA,uBAAay/F,OACX,OAAYj4H,KACZ,uBAAe+M,SACP,YAAAimb,UACR,CACA,sBAAQ,8CAEVC,cAAA,MAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,OACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACFW,OAAA,8CACA,WAAa,8CAEbV,cAAA,MAEF,CACAz6Z,GAAA,mBACEy/F,OAAM,OACNj4H,KAAA,mBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CACCz6Z,GACZ,oBAAUy/F,OACV,MACFj4H,KAAA,oBACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,aACAy/F,OAAA,MAAYj4H,KACV,aAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,SACEy/F,OAAM,MACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAuE,OAAA,8CAEFxE,cAAc,IAEhB,CACAz6Z,GAAA,OACEy/F,OAAM,OACNj4H,KAAA,OACA+M,SAAQ,YACRimb,UAAA,CACE,oEAEFC,cAAa,MACY,CAEzBz6Z,GAAA,aACAy/F,OAAA,KACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,6CACR,sBAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,QAAYy/F,OACZ,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACFW,OAAA,8CACAL,OAAA,8CAEFL,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,6CACX,aAAY,6CACZgB,MACA,qFAEFf,cAAA,KAEF,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,eACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNW,OAAU,+CAEVV,cAAY,KACV,CAEFz6Z,GAAA,oBACAy/F,OAAA,QAAaj4H,KACX,oBAAY+M,SACZ,mBAAuBimb,UACvB,CACA,sBAAe,8CAEjBC,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,6DAEAD,cAAA,KAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACC,MACd,CAEFz6Z,GAAA,UACAy/F,OAAA,OACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,eACFy/F,OAAA,OACAj4H,KAAA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNI,OAAU,6CACV,cAAQ,6CACR,sBAAY,8CAEZL,cAAA,KACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,6CACRgD,UAAY,8CACVjD,cACA,MACF,CACaz6Z,GACX,oBAAuBy/F,OACvB,MAAaj4H,KACb,oBAAgB+M,SAChB,WAAa,QACfimb,UAAA,CACAE,SAAA,6CACF4C,OAAA,6CACA,oEAEE7C,cAAU,KACF,CACIz6Z,GACV,sBAAAy/F,OACA,MACFj4H,KAAA,MACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACF,oEAEFD,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,OACRj4H,KAAA,WAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,OACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,4DACA,oEAEFD,cAAa,KACC,CACJz6Z,GACR,kBACFy/F,OAAA,MACAj4H,KAAA,kBACF+M,SAAA,YACAimb,UAAA,CACE,cAAM,6CACNuE,MAAA,6CACA7hS,OAAQ,6CACRogS,OAAA,8CACE7C,cACA,MACF,CAEAz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,iBAAay/F,OACX,MACFj4H,KAAA,iBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,QAAAy/F,OACA,MACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAU,6CACZ,4DACA,sBAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,OAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,4DAEFD,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,WACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,WACAy/F,OAAA,QACEj4H,KAAM,WACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAM,8CACNT,SAAU,6CACV,cAAQ,6CACR,sBAAY,8CAEZD,cAAA,MACa,CAEbz6Z,GAAA,wBACAy/F,OAAA,MACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,QAAaj4H,KACX,gBACF+M,SAAA,mBACAimb,UAAA,CACFW,OAAA,+CACAT,SAAA,6CACEhqa,KAAM,8CAEN+pa,cAAQ,MACI,CACVz6Z,GACA,WACFy/F,OAAA,MACAj4H,KAAA,WAAa+M,SACX,mBACFimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,iBACAy/F,OAAA,OACAj4H,KAAA,iBACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,MACF,CACaz6Z,GACX,YACFy/F,OAAA,OACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,cAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,OAAaj4H,KACX,OAAY+M,SACZ,YAAUimb,UACV,CACAyD,QACF,mEACAtD,UAAA,6CACFD,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,cAAe,8CAEjBD,cAAA,KAEF,CACEz6Z,GAAA,eACAy/F,OAAA,SACAj4H,KAAA,eACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CACCz6Z,GACb,aAAey/F,OACf,OACFj4H,KAAA,WACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,eACFy/F,OAAA,MACAj4H,KAAA,eAAa+M,SACX,WAAY,QAAAimb,UACZ,CACA9pa,KAAA,8CAEF+pa,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CAEbz6Z,GAAA,OACAy/F,OAAA,MACFj4H,KAAA,2BACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,6CACR,cAAY,8CACVD,cACA,MACF,CAEAz6Z,GAAA,iBACFy/F,OAAA,OACAj4H,KAAA,iBACE+M,SAAM,YACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,WACAy/F,OAAA,QACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,cACAy/F,OAAA,KAAaj4H,KACX,cACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACAI,OAAA,8CACSL,cACT,KACuB,CACbz6Z,GACV,UAAay/F,OACb,KAAUj4H,KACV,UAAU+M,SACV,CAAS,kBAAAimb,UACT,CACAE,SAAQ,6CACR,sBAAuB,6CACzBgD,UAAA,8CAEFjD,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,OACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFW,OAAA,+CACaV,cACA,KACA,CAEbz6Z,GAAA,iBACAy/F,OAAA,MACFj4H,KAAA,iBACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,KAAaj4H,KACX,cACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,YAAYy/F,OACV,MAAAj4H,KACA,YACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,MACd,CAEFz6Z,GAAA,gBACAy/F,OAAA,MACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,6DAEFD,cAAA,MACa,CAEbz6Z,GAAA,gBACAy/F,OAAA,MACFj4H,KAAA,gBACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,kBACFy/F,OAAA,MACAj4H,KAAA,kBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,cAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,4BACAy/F,OAAA,OACAj4H,KAAA,eACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,MACI,CAEVz6Z,GAAA,aAAYy/F,OACV,OAAAj4H,KACA,aACF+M,SAAA,YACAimb,UAAA,CACE,sBAAe,8CAEjBC,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,QACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,oEACaC,cACX,MACgB,CAElBz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,QAAay/F,OACX,OAAYj4H,KACZ,mBACF+M,SAAA,mBACAimb,UAAA,CACFmC,MAAA,6CACA,mEACEC,MAAM,8CAENnC,cAAQ,KACI,CACVz6Z,GACA,UACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,WAAW,QACbimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,cACAy/F,OAAA,QAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACA,kBAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,OAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAY,8CAEdD,cAAA,MAEF,CACEz6Z,GAAA,mBACAy/F,OAAA,QACAj4H,KAAA,mBACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CACaz6Z,GACX,mBAAYy/F,OACZ,QACFj4H,KAAA,mBACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,eAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,gBACFy/F,OAAA,MACAj4H,KAAA,iBAAa+M,SACX,WAAY,QAAAimb,UACZ,GAAiBC,cACjB,KACF,CAEFz6Z,GAAA,iCACAy/F,OAAA,OACEj4H,KAAM,kBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVG,OAAA,6CACF,4DACaJ,cACD,MACZ,CAEFz6Z,GAAA,mBACAy/F,OAAA,MACEj4H,KAAM,mBACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,OAAaj4H,KACX,gBACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,IACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,OACRj4H,KAAA,cAAY+M,SACV,mBACFimb,UAAA,CACA,sBAAa,8CACCC,cACZ,MACF,CAEFz6Z,GAAA,gBACAy/F,OAAA,MACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,WAAUy/F,OACV,MAAWj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,UAAYy/F,OACV,MAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,CACE,aAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACFyD,QAAA,4DACaxD,cACC,KACd,CAEFz6Z,GAAA,SACAy/F,OAAA,MACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRY,OAAA,6CACEV,SAAA,8CAEFD,cAAa,MACE,CACGz6Z,GAChB,YAAUy/F,OACV,KACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,QACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,WAAY,QACdimb,UAAA,CACA,cAAiB,6CACnB,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,kBAAYy/F,OACV,MAAAj4H,KACA,kBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFI,OAAA,6CACA,sBAAiB,6CACnBS,MAAA,gDAEEd,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAA,gDAEFV,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,MACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACE,6DAEFC,cAAA,MACa,CACYz6Z,GACvB,YAAQy/F,OACR,MAAYj4H,KACZ,qBACF+M,SAAA,YACAimb,UAAA,CACFY,OAAA,8CAEEX,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEmB,QAAA,gEACSlB,cACC,MACZ,CAEFz6Z,GAAA,QACAy/F,OAAA,OACEj4H,KAAM,QACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,KACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,mBACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,YACFimb,UAAA,CACA9pa,KAAA,8CAEF+pa,cAAA,KACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACAG,OAAA,6CACF,mEACA,4DAEEJ,cAAU,MACF,CACIz6Z,GACV,QACFy/F,OAAA,MACAj4H,KAAA,MAAa+M,SACX,YAAeimb,UACf,CACAyE,OAAA,8CAEFxE,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CACYz6Z,GACvB,WAAay/F,OACb,QACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAwB,OACE,uEACAmC,MAAA,8CAEA1D,cAAY,KACV,CAEFz6Z,GAAA,UACAy/F,OAAA,MAAaj4H,KACX,UACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,4DAEED,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,OACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,IACC,CAEdz6Z,GAAA,UACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,WAAay/F,OACX,MAAYj4H,KACZ,WAAgB+M,SAChB,YAAoBimb,UACpB,CACAE,SAAS,8CAEXD,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACAI,OAAA,8CACcL,cACZ,KACF,CAEFz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,aACAy/F,OAAA,OAAaj4H,KACX,OAAe+M,SACf,mBACFimb,UAAA,CACAW,OAAA,gDAEFV,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,SAAYj4H,KACV,WAAA+M,SACA,YACFimb,UAAA,CACA,cAAc,8CAEhBC,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,OACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,CACFiC,UAAA,6CACAE,MAAA,8CAEFlC,cAAA,KACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,OACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACF,oEACaC,cACX,MACF,CAEFz6Z,GAAA,eACAy/F,OAAA,MACEj4H,KAAM,eACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,KACa,CACCz6Z,GACZ,mBACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACE0B,SAAM,6CACNxra,KAAA,8CAEA+pa,cAAY,KACV,CAEFz6Z,GAAA,mBACAy/F,OAAA,MACAj4H,KAAA,mBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,cAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,YACAy/F,OAAA,MAAaj4H,KACX,YACF+M,SAAA,mBACAimb,UAAA,CACF+E,SAAA,4CAEE9E,cAAM,KACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,sBACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAA,+CACUV,cACA,KACZ,CAEFz6Z,GAAA,oBACAy/F,OAAA,MACEj4H,KAAM,oBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVuB,KAAA,8CAEFxB,cAAA,MACa,CACCz6Z,GACZ,WAAmBy/F,OACnB,MACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,MACI,CAEZz6Z,GAAA,gBACAy/F,OAAA,MAAaj4H,KACX,gBACF+M,SAAA,mBACAimb,UAAA,CACFK,OAAA,6CACA,oEAEEJ,cAAU,MACF,CACIz6Z,GACV,SAAAy/F,OACA,OACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE4C,OAAA,8CAEF7C,cAAA,MAEF,CACAz6Z,GAAA,MACEy/F,OAAM,MACNj4H,KAAA,MACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,WACFy/F,OAAA,KACAj4H,KAAA,KACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,cAAay/F,OACX,OAAuBj4H,KACvB,cACF+M,SAAA,YACAimb,UAAA,CACF,mEACA2E,YAAA,6CACEzE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,oBACFy/F,OAAA,QACAj4H,KAAA,oBACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,QACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,WAAU,QACZimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,OAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,cAAY,6CACZ,sBAAuB,8CAEzBD,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACC,MACd,CAEFz6Z,GAAA,sBACAy/F,OAAA,OACEj4H,KAAM,sBACN+M,SAAU,YACVimb,UAAQ,CACR,mBAAY,eACVC,cACA,MACF,CAEAz6Z,GAAA,OACFy/F,OAAA,MACAj4H,KAAA,OACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACF,CAEAz6Z,GAAA,iBACFy/F,OAAA,OACAj4H,KAAA,iBACE+M,SAAM,YACNimb,UAAU,CACV,cAAQ,8CACIC,cACV,KACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEuC,SACA,sEAEAtC,cAAY,MACV,CAEFz6Z,GAAA,OACAy/F,OAAA,MACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,WAAYy/F,OACV,MAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,6CACZE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,eACAy/F,OAAA,OACAj4H,KAAA,eACA+M,SAAA,YAAYimb,UACV,CACFE,SAAA,6CACA,sBAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,mBACEy/F,OAAM,MACNj4H,KAAA,mBACA+M,SAAQ,mBACRimb,UAAA,CACEiB,OAAA,8CAEFhB,cAAa,MACC,CAEdz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,MACF,CACaz6Z,GACX,OAAey/F,OACf,OACFj4H,KAAA,gBACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,IACQ,CAENz6Z,GAAA,iBACAy/F,OAAA,MAAYj4H,KACV,iBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,MACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,KACd,CAEFz6Z,GAAA,MACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,KACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OAAY+M,SACJ,YACVimb,UAAA,CACAW,OAAA,+CAEFV,cAAA,KACQ,CAENz6Z,GAAA,gBACAy/F,OAAA,MAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAkE,IAAA,2CACEhE,SAAA,6CACF,4DAEFD,cAAA,MACA,CAEEz6Z,GAAA,eACAy/F,OAAQ,MACRj4H,KAAA,eAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CAEAD,cAAA,MAEF,CACEz6Z,GAAA,iBACAy/F,OAAA,MACAj4H,KAAA,iBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,4DACA,cAAa,6CACX,sBAAe,8CAEjBD,cAAA,MAEF,CACEz6Z,GAAA,eACAy/F,OAAA,MACAj4H,KAAA,eACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,MACF,CACaz6Z,GACX,iBAAey/F,OACf,MAAgBj4H,KAChB,iBACF+M,SAAA,YACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,gBAAY+M,SACV,SAAAimb,UACA,CACFE,SAAA,6CACA,sBAAc,8CAEhBD,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,OACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACF,gEACaC,cACC,MACJ,CAEVz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,KACI,CAEZz6Z,GAAA,aACAy/F,OAAA,UAAaj4H,KACX,aACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,6BAAYy/F,OACV,OAAAj4H,KACA,uBACF+M,SAAA,mBACAimb,UAAA,CACEgF,MAAA,+CACA9E,SAAA,8CACgBD,cAChB,MACF,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVC,UAAA,8CAEFF,cAAA,MACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,6CACV,eAAQ,6CACR,sBAAY,8CACVD,cACA,IACF,CACaz6Z,GACX,kBAAuBy/F,OACvB,MACFj4H,KAAA,kBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAmB,QAAA,+DACEjB,SAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,WAAay/F,OACX,OAAej4H,KACf,OACF+M,SAAA,YACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,6CACAI,OAAA,6CACE,cAAU,6CACVD,OAAA,6CACFD,KAAA,sEAEFH,cAAA,KACA,CAEEz6Z,GAAA,kBACAy/F,OAAQ,SACRj4H,KAAA,kBAAY+M,SACV,mBAAAimb,UACA,CACF,oEAEAC,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,oEAEFC,cAAa,MACA,CACYz6Z,GACvB,WAAYy/F,OACZ,QAAgBj4H,KAChB,WAAuB+M,SACvB,WAAU,QACZimb,UAAA,CACA,cAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,aACAy/F,OAAA,OAAYj4H,KACV,aACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,4DAEFD,cAAA,KACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACX,MACF,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,YACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,IACc,CAEhBz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,QACN+M,SAAU,YACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,QAAaj4H,KACX,6BACF+M,SAAA,mBACAimb,UAAA,CACF,6DAEEC,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFuD,QAAA,iEACA,sBAAiB,8CAEnBxD,cAAA,KACQ,CAENz6Z,GAAA,mBACAy/F,OAAA,QAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACF,MACD,CACQz6Z,GACjB,MAAuBy/F,OACvB,MAAUj4H,KACV,MAAgB+M,SAChB,WAAa,QAAAimb,UACb,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,OACAj4H,KAAA,gBACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CAEAz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,QAAay/F,OACX,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,oBACEy/F,OAAM,MACNj4H,KAAA,oBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAhqa,KAAA,8CAEF+pa,cAAa,MACC,CAEdz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRG,OAAA,6CACE,mEACA,4DAEFJ,cAAa,MACY,CAEzBz6Z,GAAA,qBACFy/F,OAAA,MACAj4H,KAAA,qBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRE,KAAA,sEACEH,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,MACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAM,+CAENV,cAAQ,KACI,CACVz6Z,GACA,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,uBAAYy/F,OACV,OAAAj4H,KACA,uBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,eACAy/F,OAAA,OACAj4H,KAAA,eACA+M,SAAA,WAAY,QAAAimb,UACV,CACAoD,QAAA,8CAEFnD,cAAa,MACC,CAEdz6Z,GAAA,aACAy/F,OAAA,OACFj4H,KAAA,aACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,mBACAy/F,OAAQ,MACRj4H,KAAA,mBAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,8CACCD,cACZ,KACmB,CAErBz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRI,OAAA,8CACEL,cACA,KACF,CACaz6Z,GACX,YACFy/F,OAAA,OACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,OACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACFG,OAAA,6CACA,mEACE,eAAM,8CAENJ,cAAQ,KACI,CACVz6Z,GACA,YACFy/F,OAAA,OACAj4H,KAAA,YAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,MAAYy/F,OACV,MACFj4H,KAAA,eACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,MACAy/F,OAAQ,MACRj4H,KAAA,MAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,MACa,CAEbz6Z,GAAA,MACAy/F,OAAA,MACFj4H,KAAA,MACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,UACAy/F,OAAA,KAAaj4H,KACX,UAAY+M,SACJ,mBACVimb,UAAA,CACA,sBAAiB,6CACnBK,OAAA,6CACAF,UAAA,6CACE,sBAAM,6CACND,SAAU,6CACV,cAAQ,6CACR,eAAY,6CACV,2DACF,2DACaD,cACC,MACd,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,KACF,CACaz6Z,GACX,QAAuBy/F,OACvB,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,KACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAK,OAAA,6CACEH,SAAA,6CACF,2DACA,eAAiB,6CACnB,mEACAC,UAAA,6CACE,sBAAM,8CAENF,cAAQ,MACI,CACVz6Z,GACA,WACFy/F,OAAA,OACAj4H,KAAA,WAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACF,mEACA,4DAEED,cAAU,MACF,CACIz6Z,GACV,gBACFy/F,OAAA,OACAj4H,KAAA,WAAa+M,SACX,WAAY,QACdimb,UAAA,CACA,2DAEFC,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACAsE,QAAA,8CAEArE,cAAA,MAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,QACNj4H,KAAA,iBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAE,KAAA,qEACFE,OAAA,6CACA,sBAAa,6CACX,cAAY,8CAEdL,cAAA,KAEF,CACAz6Z,GAAA,YACEy/F,OAAM,OACNj4H,KAAA,YACA+M,SAAQ,YACRimb,UAAA,CAAY,EAAAC,cACV,KACA,CAEFz6Z,GAAA,UACAy/F,OAAA,MACFj4H,KAAA,UACA+M,SAAA,SACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,cACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,mBAAuBimb,UACvB,CACAW,OAAA,+CAEFV,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACAC,UAAa,6CACX,sBAAU,6CACZ,4DAEFF,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,MACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,GACFC,cAAA,KACa,CACDz6Z,GACV,WACFy/F,OAAA,MACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,WAAY+M,SACZ,YACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,MAAA+M,SACA,SACFimb,UAAA,CACAE,SAAA,6CACE,aAAY,6CACZE,KAAA,sEAEFH,cAAA,IAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAa,MACF,CACGz6Z,GACZ,aAAuBy/F,OACvB,OAAaj4H,KACb,OAAe+M,SACf,WAAgB,QAClBimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,cACA+M,SAAA,SAAYimb,UACV,CACAE,SAAA,6CACFK,KAAA,8CAEAN,cAAA,KAEF,CACEz6Z,GAAA,aACAy/F,OAAA,OACAj4H,KAAA,aACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DAEFC,cAAc,MAEhB,CACAz6Z,GAAA,UACEy/F,OAAM,OACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAwE,MAAA,6CACFlB,MAAA,6CACA,cAAa,6CACX,eAAY,6CACdtta,KAAA,6CACA,sBAAiB,6CACnByqa,OAAA,gDAEEV,cAAM,KACI,CAEVz6Z,GAAA,SAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACUD,cACF,KACO,CAEjBz6Z,GAAA,aACAy/F,OAAA,MACFj4H,KAAA,YACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,UAAay/F,OACX,QAAYj4H,KACZ,UACF+M,SAAA,mBACAimb,UAAA,CACF,4DAEEC,cAAM,MACI,CAEVz6Z,GAAA,MAAYy/F,OACV,MAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,KACF,CACaz6Z,GACvB,iBAAgBy/F,OAChB,MACFj4H,KAAA,iBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAQ,QACE,wEAEAP,cAAQ,KACI,CACVz6Z,GACA,SACFy/F,OAAA,OACAj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,MAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,MACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,CACF,mEACA,eAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,mEACF,4DACaD,cACX,MACF,CAEFz6Z,GAAA,WACAy/F,OAAA,KACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CAEZC,cAAA,IACa,CAEbz6Z,GAAA,aACAy/F,OAAA,OACFj4H,KAAA,aACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,UACAy/F,OAAA,OAAaj4H,KACX,UAAY+M,SACZ,SAAgBimb,UAChB,CACFE,SAAA,6CACA,eAAiB,6CACnBqD,SAAA,YACA,oEAEEtD,cAAU,KACF,CACIz6Z,GACV,kBACFy/F,OAAA,OACAj4H,KAAA,YAAa+M,SACX,YACFimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,KACI,CAEVz6Z,GAAA,eAAYy/F,OACV,OAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,YACAy/F,OAAA,MACAj4H,KAAA,YACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,6CACF,oEACaD,cACC,MACH,CAEXz6Z,GAAA,OACFy/F,OAAA,OACAj4H,KAAA,OACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRG,OAAA,6CACEF,UAAA,6CACA,4DACF,mEACA,cAAa,8CAEbF,cAAA,KAEF,CACAz6Z,GAAA,kBACEy/F,OAAM,MACNj4H,KAAA,kBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACc,CAEhBz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,OACN+M,SAAU,mBACVimb,UAAQ,CACRuC,SACE,sEAEFtC,cAAA,IACa,CAEbz6Z,GAAA,gBACAy/F,OAAA,OACFj4H,KAAA,gBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVqB,MAAQ,8CACItB,cACV,MACA,CAEFz6Z,GAAA,kBAAay/F,OACX,MAAYj4H,KACZ,kBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAE,KAAA,qEACEE,OAAM,8CAENL,cAAQ,KACI,CACVz6Z,GACA,cACFy/F,OAAA,OACAj4H,KAAA,cAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,iBACAy/F,OAAA,MACAj4H,KAAA,QACA+M,SAAA,YAAYimb,UACV,CACFE,SAAA,6CACAI,OAAA,6CACE,sBAAY,8CAEdL,cAAA,KAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,OACNj4H,KAAA,iBACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACF,mEACA,eAAa,6CACXC,UAAA,6CACA,2DACFjqa,KAAA,6CACA,sBAAiB,8CAEnB+pa,cAAA,KACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACA2D,MAAA,6CACA51Z,OAAA,iDAEFkyZ,cAAA,KACQ,CAENz6Z,GAAA,aACAy/F,OAAA,KAAYj4H,KACV,eAAA+M,SACA,YACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,MACEy/F,OAAM,MACNj4H,KAAA,MACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACA,mEACF,4DACaD,cACC,MACd,CAEFz6Z,GAAA,gBACAy/F,OAAA,MACEj4H,KAAM,cACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,SAAYy/F,OACZ,KACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,eAAM,6CACN,sBAAU,6CACVC,UAAQ,6CACR,cAAY,8CACVF,cACA,KACF,CACaz6Z,GACX,SAAYy/F,OACZ,MACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAW,OAAA,8CACET,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,cACFy/F,OAAA,MACAj4H,KAAA,cAAa+M,SACX,mBACFimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,UACAy/F,OAAA,OACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,8CACaD,cACX,KACF,CAEFz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,eACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,aACAy/F,OAAA,MAAaj4H,KACX,aACF+M,SAAA,mBACAimb,UAAA,CACFW,OAAA,gDAEEV,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,OAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,sBAAmB,8CAErBD,cAAA,KAEF,CACEz6Z,GAAA,aACAy/F,OAAA,QACAj4H,KAAA,aACA+M,SAAA,YAAYimb,UACV,CACAK,OAAA,8CAEFJ,cAAc,MAEhB,CACAz6Z,GAAA,oBACEy/F,OAAM,MACNj4H,KAAA,oBACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACc,CAEhBz6Z,GAAA,UACAy/F,OAAA,OACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,oBAAWy/F,OACX,OAAUj4H,KACV,cAAY+M,SACZ,WAAe,QAAAimb,UACf,CACF,mEACAE,SAAA,6CACFc,MACA,oFAEEf,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,MACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,CACFG,UAAA,8CAEFF,cAAA,KACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,mBAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,cAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,OACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CACCz6Z,GACZ,cAAuBy/F,OACvB,MACFj4H,KAAA,cACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,cAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,sBAAU,6CACZ,mEACA,cAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,QACAy/F,OAAA,MAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAuD,QACF,yEACA,eAAa,8CACYxD,cACb,MACE,CAEdz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,UAAYy/F,OACZ,OACFj4H,KAAA,UACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACEQ,QACA,wEACUP,cACF,KACK,CACUz6Z,GACvB,SAASy/F,OACT,MAAej4H,KACf,SAAQ+M,SACR,WAAa,QAAAimb,UACb,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,YAAYimb,UACV,CACFE,SAAA,8CACaD,cACX,MACgB,CAElBz6Z,GAAA,aACFy/F,OAAA,QACAj4H,KAAA,aACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,WAAYy/F,OACZ,OAAej4H,KACf,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,+DACEI,OAAM,8CAENL,cAAQ,KACI,CACVz6Z,GACA,OACFy/F,OAAA,MACAj4H,KAAA,OAAa+M,SACX,WAAe,QAAAimb,UACf,CACAE,SAAQ,8CACCD,cACC,MACS,CACTz6Z,GACV,aAAmBy/F,OACnB,QAAQj4H,KACR,aAAY+M,SACZ,mBAAqBimb,UACrB,CACAE,SAAA,8CACQD,cACE,KACZ,CAEFz6Z,GAAA,SACAy/F,OAAA,KACEj4H,KAAM,QACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CAEZz6Z,GAAA,WACAy/F,OAAA,MAAaj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,4DAEED,cAAU,MACF,CACIz6Z,GACV,eAAAy/F,OACA,MACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,cAAU,6CACZG,UAAA,8CAEFF,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,MACRj4H,KAAA,SAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,6CACA,eAAa,6CACX,sBAAY,8CACCD,cACb,MACU,CAEZz6Z,GAAA,eACAy/F,OAAA,OACFj4H,KAAA,eACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,6CACR,cAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,OACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,qBACFy/F,OAAA,OACAj4H,KAAA,qBAAa+M,SACX,WAAe,QACjBimb,UAAA,CACAE,SAAA,6CACF,mEACAuB,KAAA,6CACE,eAAM,6CACN,sBAAU,8CAEVxB,cAAY,KACV,CAEFz6Z,GAAA,cAAay/F,OACX,MACFj4H,KAAA,cACA+M,SAAA,YACFimb,UAAA,CACA,2DAEEC,cAAU,MACF,CACIz6Z,GACV,gBAAAy/F,OACA,MACFj4H,KAAA,gBACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,eAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,kBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAQ,QACF,wEACaP,cACC,KACd,CAEFz6Z,GAAA,SACAy/F,OAAA,MACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CAEAz6Z,GAAA,MACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRE,KAAA,sEACEH,cACA,KACF,CACaz6Z,GACX,iBACFy/F,OAAA,MACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,KACI,CACVz6Z,GACA,aACFy/F,OAAA,SACAj4H,KAAA,aAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFE,SAAA,6CACA,eAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,2DAEFD,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,OACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACAnyZ,OAAA,iDACckyZ,cACZ,KACuB,CAEzBz6Z,GAAA,cACFy/F,OAAA,OACAj4H,KAAA,cACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,iBAAay/F,OACX,SACFj4H,KAAA,iBACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,eAAM,6CACN,cAAU,6CACVW,OAAQ,8CACIZ,cACV,MACA,CAEFz6Z,GAAA,gBAAay/F,OACX,OAAUj4H,KACV,gBACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,cAAc,6CACd,sBAAS,8CAEXD,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,WACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,oEACaC,cACC,KACd,CAEFz6Z,GAAA,aACAy/F,OAAA,QACEj4H,KAAM,aACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,cACFy/F,OAAA,MACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,MACFy/F,OAAA,MACAj4H,KAAA,MAAa+M,SACX,mBACFimb,UAAA,CACAW,OAAA,gDAEFV,cAAA,MACQ,CAENz6Z,GAAA,eACAy/F,OAAA,OAAYj4H,KACV,eAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,KACC,CAEdz6Z,GAAA,WACAy/F,OAAA,MACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OAAY+M,SACZ,mBACFimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,SACAy/F,OAAA,QACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFyB,MAAA,8CACa1B,cACX,KACF,CAEFz6Z,GAAA,MACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,cACAy/F,OAAA,UAAaj4H,KACX,cAAY+M,SACZ,WAAU,QAAAimb,UACV,CACAuD,SAAA,YAEFtD,cAAA,MAEF,CACEz6Z,GAAA,iBACAy/F,OAAA,OACAj4H,KAAA,iBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,2DACA,sBAAa,8CACCD,cACZ,MACa,CAEfz6Z,GAAA,WACFy/F,OAAA,UACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,CACVc,KAAQ,8CACIb,cACV,MACA,CAEFz6Z,GAAA,iBAAay/F,OACX,MAAYj4H,KACZ,iBAAU+M,SACV,mBACFimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,oBACAy/F,OAAA,OACAj4H,KAAA,kBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAG,UAAA,8CAEFF,cAAa,KACC,CAEdz6Z,GAAA,WACAy/F,OAAA,MACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QAAay/F,OACX,QACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,UAAAy/F,OACA,MACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,sBAAgB,6CAChBiF,IAAA,6CACFtE,OAAA,+CACA,yBAAiB,6CACnB,wDAEEV,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,sBAAS,8CACCC,cACA,MACZ,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACR,cAAY,6CACVE,SAAA,6CACA,oEAEFD,cAAa,MACC,CAEdz6Z,GAAA,UACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SAAA+M,SACA,mBACFimb,UAAA,CACA,cAAa,+CACCC,cACZ,MACuB,CAEzBz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,WAAay/F,OACX,MAAYj4H,KACZ,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,iBAAAy/F,OACA,OACFj4H,KAAA,iBACA+M,SAAA,WAAa,QAAAimb,UACX,GAAuBC,cACX,KACd,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,MACa,CAEbz6Z,GAAA,cACAy/F,OAAA,MACFj4H,KAAA,cACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,aAAUy/F,OACV,OAAYj4H,KACZ,YAAe+M,SACf,YACFimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,WAAYy/F,OACV,OAAAj4H,KACA,WACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFE,KAAA,sEAEFH,cAAA,MACA,CAEEz6Z,GAAA,eACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACD,MACE,CAEdz6Z,GAAA,eACAy/F,OAAA,OACFj4H,KAAA,eACA+M,SAAA,YACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,OACAj4H,KAAA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,YACAy/F,OAAA,QACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNE,KAAA,sEAEAH,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,YACFimb,UAAA,CACA,cAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,qBACAy/F,OAAA,OAAYj4H,KACV,qBACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,6CACA,sBAAa,6CACb,cAAY,8CAEdD,cAAA,MAEF,CACEz6Z,GAAA,WACAy/F,OAAA,WACAj4H,KAAA,WACA+M,SAAA,YAAYimb,UACV,CACA,4DAEFC,cAAa,MACC,CAEdz6Z,GAAA,0BACAy/F,OAAA,MACFj4H,KAAA,0BACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,aAAay/F,OACX,OACFj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,4DAEEC,cAAU,MACF,CACIz6Z,GACV,WACFy/F,OAAA,QACAj4H,KAAA,WAAa+M,SACX,WAAY,QACdimb,UAAA,GACAC,cAAA,KAEF,CACEz6Z,GAAA,UACAy/F,OAAA,UACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,2DACF,oEACaC,cACH,MACV,CAEFz6Z,GAAA,YACAy/F,OAAA,MACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,4DAEFD,cAAa,KACC,CAEdz6Z,GAAA,YACFy/F,OAAA,QACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,eAAY,6CACV,2DACA,oEAEFD,cAAa,KACC,CACWz6Z,GACvB,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,YACAimb,UAAA,CACEE,SAAM,6CACNS,OAAU,gDAEVV,cAAY,MACV,CAEFz6Z,GAAA,kBAAay/F,OACX,QACFj4H,KAAA,gBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,SAAAy/F,OACA,SACFj4H,KAAA,SACA+M,SAAA,YAAaimb,UACX,CACFW,OAAA,gDAEFV,cAAA,KACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,UAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,6CACX,4DACF,mEACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,MAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEI,OAAA,8CAEFL,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,SACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CACCz6Z,GACZ,QAAuBy/F,OACvB,MACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,eAAAy/F,OACA,OACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACAI,OAAA,8CAEFL,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,MAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,SACEy/F,OAAM,SACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAG,OAAA,6CACF,mEACA,eAAa,8CAEbJ,cAAA,MAEF,CACAz6Z,GAAA,8CACEy/F,OAAM,SACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACAE,SAAA,6CACF,6DAEAD,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,SAAYimb,UACV,CACAW,OAAA,+CAEFV,cAAa,MACC,CAEdz6Z,GAAA,kBACAy/F,OAAA,OACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,MACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,eACFy/F,OAAA,QACAj4H,KAAA,eAAa+M,SACX,WAAY,QAAAimb,UACZ,CACF,2DAEFC,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAc,8CAEhBD,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,mBACFimb,UAAA,CACAgB,MACE,sEAEFf,cAAA,KAEF,CACEz6Z,GAAA,YACAy/F,OAAA,QACAj4H,KAAA,YACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACY,CAEzBz6Z,GAAA,UACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,6CACR,cAAY,6CACV,oEAEFD,cAAA,MACa,CAEbz6Z,GAAA,wBACAy/F,OAAA,OACFj4H,KAAA,wBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,cACAy/F,OAAA,SAAaj4H,KACX,cAAS+M,SACT,mBAAuBimb,UACd,CACX8B,OAAA,iBAEF7B,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,MACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,8CAEbD,cAAA,KAEF,CACAz6Z,GAAA,WACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CACCz6Z,GACZ,iBACFy/F,OAAA,SACAj4H,KAAA,iBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,QACAy/F,OAAA,QAAaj4H,KACX,QAAY+M,SACZ,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACAI,OAAA,8CAEFL,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,SAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,QACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACA,0DACFE,SAAA,8CAEAD,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,mEACA,cAAa,8CACCD,cACF,MACK,CAEjBz6Z,GAAA,kBACFy/F,OAAA,QACAj4H,KAAA,kBACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CAEAz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVW,OAAQ,+CACR,gBAAY,6CACV,yDAEFV,cAAA,IACc,CAEhBz6Z,GAAA,cACAy/F,OAAA,OACEj4H,KAAM,cACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAA,KACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,MAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,SAAAimb,UACA,CACF,mEACAE,SAAA,6CACEoC,MAAA,8CAEFrC,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,OACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACG,CAEhBz6Z,GAAA,SACFy/F,OAAA,KACAj4H,KAAA,SACE+M,SAAM,SACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,OAAYj4H,KACV,WAAA+M,SACA,SACFimb,UAAA,CACAE,SAAA,8CACYD,cACE,MACd,CAEFz6Z,GAAA,oBACAy/F,OAAA,QACEj4H,KAAM,oBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,gBACFy/F,OAAA,MACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNI,OAAU,8CAEVL,cAAY,IACV,CAEFz6Z,GAAA,2BACAy/F,OAAA,MAAaj4H,KACX,2BAAe+M,SACf,mBACFimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,cACAy/F,OAAA,MACAj4H,KAAA,aACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFI,OAAA,8CACaL,cACC,KACF,CACaz6Z,GACvB,WACFy/F,OAAA,MACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,QAAYy/F,OACV,QAAAj4H,KACA,kBACF+M,SAAA,YACAimb,UAAA,CACEE,SAAU,6CACZ,4DAEFD,cAAA,KACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,cAAa,6CACX,sBAAgB,8CAElBD,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACF,oEACaC,cACD,MACZ,CAEFz6Z,GAAA,UACAy/F,OAAA,QACEj4H,KAAM,UACN+M,SAAU,SACVimb,UAAQ,CACRE,SAAY,6CACVS,OAAA,gDAEFV,cAAA,MACa,CAEbz6Z,GAAA,IACAy/F,OAAA,IACFj4H,KAAA,IACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,UAAAy/F,OACA,MACFj4H,KAAA,UACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,KACd,CAEFz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,kBAAay/F,OACX,OACFj4H,KAAA,kBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,4DACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,aACAy/F,OAAA,QAAaj4H,KACX,aAAY+M,SACZ,WAAU,QAAAimb,UACV,CACA,cAAe,6CACjBG,UAAA,6CACA,sBAAiB,6CACnB,mEACAD,SAAA,6CACEU,OAAM,6CACNP,OAAU,8CAEVJ,cAAY,MACV,CAEFz6Z,GAAA,QAAay/F,OACX,MACFj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,MAAYj4H,KACV,2BACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,MACAy/F,OAAA,MACAj4H,KAAA,mBACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,6CACFC,UAAA,6CACA,sBAAa,6CACX,cAAU,8CAEZF,cAAA,MAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,MACNj4H,KAAA,iBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,cACFy/F,OAAA,OACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNhqa,KAAA,6CACA,sBAAQ,8CACI+pa,cACV,MACA,CAEFz6Z,GAAA,UAAay/F,OACX,OAAYj4H,KACZ,UACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,kBAAYy/F,OACV,MAAAj4H,KACA,gBACF+M,SAAA,YACAimb,UAAA,CACA,cAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,WACAy/F,OAAA,OAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,kBACFy/F,OAAA,MACAj4H,KAAA,kBACE+M,SAAM,mBACNimb,UAAU,CACV,eAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,OAAYj4H,KACZ,aACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,mEACE,cAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,uBACFy/F,OAAA,MACAj4H,KAAA,uBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,YACFy/F,OAAA,MACAj4H,KAAA,YAAa+M,SACX,WAAU,QACZimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACAI,OAAA,8CAEAL,cAAA,KAEF,CACAz6Z,GAAA,wBACEy/F,OAAM,MACNj4H,KAAA,kBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,4DACFG,OAAA,6CACA,cAAa,6CACXC,OAAA,8CAEFL,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACA,CAEFz6Z,GAAA,eAAay/F,OACX,MACFj4H,KAAA,eACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,iBAAAy/F,OACA,QACFj4H,KAAA,iBACA+M,SAAA,WAAa,QAAAimb,UACX,CACFiD,YAAA,YACA,sBAAiB,8CAEnBhD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACAW,OAAA,gDACcV,cACJ,KACV,CAEFz6Z,GAAA,gBACAy/F,OAAA,QACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,mEACA,4DAEFD,cAAa,MACC,CAEdz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,6CACVG,UAAQ,6CACRD,SAAY,6CACV,4DAEFD,cAAA,MACa,CAEbz6Z,GAAA,QACAy/F,OAAA,QACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,aAAay/F,OACX,OACFj4H,KAAA,aACA+M,SAAA,YACFimb,UAAA,CACA,4DAEEC,cAAU,MACF,CACIz6Z,GACV,SAAAy/F,OACA,KACFj4H,KAAA,SACA+M,SAAA,YAAaimb,UACX,CACA,eAAQ,6CACV,8DAEFC,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,SACRj4H,KAAA,WAAY+M,SACV,SAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,KACW,CAEzBz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,MACI,CACVz6Z,GACA,gBACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,WAAU,QAAAimb,UACV,CACFE,SAAA,6CACAI,OAAA,6CACF,oEAEEL,cAAM,MACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFE,KAAA,qEACAE,OAAA,6CACF,mEACA,gEAEEL,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,MACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACA,gBAAU,6BAEZC,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,QACFy/F,OAAA,QACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACVQ,QACA,uEACEmD,MAAA,8CAEF1D,cAAA,MACa,CAEbz6Z,GAAA,YACAy/F,OAAA,MACFj4H,KAAA,YACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVuD,QAAQ,2DACR,sBAAY,8CAEZxD,cAAA,MACa,CACYz6Z,GACvB,SAAey/F,OACf,SACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEE,KAAM,qEACN,sBAAU,6CACV,cAAQ,6CACR,kBAAY,8CAEZH,cAAA,MACa,CACCz6Z,GACZ,eACFy/F,OAAA,OACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,cAAU,6CACVS,OAAQ,+CACIV,cACV,IACA,CAEFz6Z,GAAA,mBAAay/F,OACX,MACFj4H,KAAA,mBACA+M,SAAA,YACFimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,oBAAAy/F,OACA,MACFj4H,KAAA,MACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACA,+DACFE,KAAA,qEACAE,OAAA,6CACF,gBACA,gEAEEL,cAAU,KACF,CACIz6Z,GACV,kBAAAy/F,OACA,MACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACF,4DAEFD,cAAA,KACA,CAEEz6Z,GAAA,eACAy/F,OAAQ,MACRj4H,KAAA,eAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,KAEF,CACAz6Z,GAAA,uBACEy/F,OAAM,MACNj4H,KAAA,iBACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,6CACAhqa,KAAA,6CACFoqa,OAAA,8CACaL,cACC,KACd,CAEFz6Z,GAAA,SACAy/F,OAAA,SACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,gBAAay/F,OACX,QACFj4H,KAAA,gBACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA,4DACEG,UAAM,6CACN,sBAAU,6CACVD,SAAQ,6CACR,sBAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,QACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,SACFy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEmB,KAAM,sCAENpB,cAAQ,MACI,CACVz6Z,GACA,WACFy/F,OAAA,SACAj4H,KAAA,WAAa+M,SACX,mBAAuBimb,UACvB,CACF,gEAEFC,cAAA,MACA,CAEEz6Z,GAAA,iBACAy/F,OAAQ,OACRj4H,KAAA,iBAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,KACF,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,UACN+M,SAAU,YACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,cAAU,6CACV,sBAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,UAAay/F,OACX,MACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,eAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,cACFy/F,OAAA,SACAj4H,KAAA,cACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,iBAAAy/F,OACA,MACFj4H,KAAA,iBACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,IAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,oEAEAD,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,MACAj4H,KAAA,+BACA+M,SAAA,WAAY,QAAAimb,UACV,CACAkF,UAAA,8CAEFjF,cAAc,KAEhB,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,YACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACF,mEACA,cAAa,6CACX,eAAU,6CACZhqa,KAAA,6CACA,sBAAiB,8CAEnB+pa,cAAA,MACQ,CAENz6Z,GAAA,uBACAy/F,OAAA,MAAYj4H,KACV,uBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CACSD,cACK,MACG,CAEjBz6Z,GAAA,UACFy/F,OAAA,SACAj4H,KAAA,UACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,6CACR,eAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,aACFy/F,OAAA,OACAj4H,KAAA,aACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,OACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,6CACAwB,SAAA,6CACF,mEACA,cAAiB,6CACnBxra,KAAA,8CAEE+pa,cAAM,MACI,CAEVz6Z,GAAA,cAAYy/F,OACV,MAAAj4H,KACA,MACF+M,SAAA,YACAimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,mBACAy/F,OAAA,OAAYj4H,KACV,mBACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,cACAy/F,OAAA,MAAYj4H,KACV,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,2DACF,6DAEFD,cAAA,KACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,mBAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,6CACA,sBAAa,6CACX,4DAEFD,cAAA,KAEF,CACEz6Z,GAAA,eACAy/F,OAAA,OACAj4H,KAAA,eACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAc,MAEhB,CACAz6Z,GAAA,eACEy/F,OAAM,MACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CAEbz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNiC,UAAU,8CAEVhC,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,SAAaj4H,KACX,SAAS+M,SACT,SACFimb,UAAA,CACAE,SAAA,6CACFC,UAAA,6CACA,mEACE,eAAM,6CACN,cAAU,6CACV,sBAAQ,8CACIF,cACV,MACA,CAEFz6Z,GAAA,OAAay/F,OACX,OAAYj4H,KACZ,OACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,6CACA,+DACEE,KAAM,qEACNE,OAAU,8CAEVL,cAAY,MACV,CAEFz6Z,GAAA,QAAay/F,OACX,QAAYj4H,KACZ,kBAAgB+M,SAChB,mBACFimb,UAAA,CACAE,SAAA,6CACFC,UAAA,6CACAE,OAAA,6CACEQ,OAAM,6CACN,sBAAU,6CACV,eAAQ,6CACR,sBAAY,6CACV,4DAEFZ,cAAA,KACa,CACAz6Z,GACX,aAAYy/F,OACZ,MACFj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,KACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,MAAYj4H,KACV,WACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,MACF,CACKz6Z,GACf,iBAAUy/F,OACV,MACFj4H,KAAA,MACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,6CACE,sBAAM,6CACNS,OAAU,gDAEVV,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,OAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,+DACE,cAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,cACAy/F,OAAA,OAAaj4H,KACX,WACF+M,SAAA,YACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,YAAAimb,UACA,GACFC,cAAA,MACa,CAEbz6Z,GAAA,aACAy/F,OAAA,MACFj4H,KAAA,aACA+M,SAAA,YACEimb,UAAM,CACNsE,QAAU,6CACV,sBAAQ,6CACR,cAAY,6CACVpE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,WACFy/F,OAAA,WACAj4H,KAAA,WACF+M,SAAA,YACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,aACFy/F,OAAA,MACAj4H,KAAA,WAAa+M,SACX,WAAY,QACdimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,KACQ,CAENz6Z,GAAA,eACAy/F,OAAA,MAAYj4H,KACV,eACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACA,sBAAc,6CACdI,OAAA,8CAEFL,cAAA,KACQ,CAENz6Z,GAAA,kBACAy/F,OAAA,MAAYj4H,KACV,kBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEI,OAAA,8CAEFL,cAAA,MAEF,CACEz6Z,GAAA,MACAy/F,OAAA,MACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACC,CACDz6Z,GACX,SACFy/F,OAAA,OACAj4H,KAAA,eACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,cACFy/F,OAAA,QACAj4H,KAAA,cAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,QAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,oEAEFD,cAAA,MACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,QACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACF,oEAEAC,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,cACFy/F,OAAA,OACAj4H,KAAA,cACE+M,SAAM,YACNimb,UAAU,CACVW,OAAQ,gDACIV,cACV,KACA,CAEFz6Z,GAAA,uBACAy/F,OAAA,MACFj4H,KAAA,uBACA+M,SAAA,YACEimb,UAAM,CACNiB,OAAU,8CAEVhB,cAAY,MACV,CAEFz6Z,GAAA,YACAy/F,OAAA,SAAaj4H,KACX,YACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,6CACA,4DAEED,cAAU,MACF,CACIz6Z,GACV,cAAAy/F,OACA,OACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAQ,6CACV,+DACA,cAAiB,6CACnBI,OAAA,8CAEEL,cAAM,IACI,CAEVz6Z,GAAA,YAAYy/F,OACV,OAAAj4H,KACA,YACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,8CACUD,cACV,MACe,CAEjBz6Z,GAAA,gBACFy/F,OAAA,OACAj4H,KAAA,kBACE+M,SAAM,YACNimb,UAAU,CACVuC,SACA,sEACEtC,cACA,KACF,CACaz6Z,GACX,YAAYy/F,OACZ,OACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEI,OAAM,6CACN,cAAU,6CACVH,UAAQ,6CACR,sBAAY,8CACVF,cACA,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,aACFy/F,OAAA,QACAj4H,KAAA,aAAa+M,SACX,YAAYimb,UACZ,CACF,iEAEFC,cAAA,KACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,SAAY+M,SACV,mBAAAimb,UACA,CACF,4DACaC,cACC,MACd,CAEFz6Z,GAAA,kBACAy/F,OAAA,MACEj4H,KAAM,kBACN+M,SAAU,YACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,UACFy/F,OAAA,OACAj4H,KAAA,UAAa+M,SACX,WAAY,QACdimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,KACQ,CAENz6Z,GAAA,QACAy/F,OAAA,KAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,SAAY+M,SACV,SAAAimb,UACA,CACFjyZ,OAAA,iDACakyZ,cACC,KACW,CAEzBz6Z,GAAA,eACFy/F,OAAA,QACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,6CACRE,SAAY,6CACV,6DAEFD,cAAA,KACa,CACCz6Z,GACZ,cACFy/F,OAAA,MACAj4H,KAAA,MACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,IACI,CAEVz6Z,GAAA,SAAYy/F,OACV,SAAAj4H,KACA,SACF+M,SAAA,SACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,OACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFhqa,KAAA,8CACa+pa,cACC,MACF,CACaz6Z,GACvB,WACFy/F,OAAA,OACAj4H,KAAA,WACF+M,SAAA,mBACAimb,UAAA,CACEQ,QACA,wEAEAP,cAAY,KACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SAAY+M,SACZ,mBACFimb,UAAA,CACAE,SAAA,6CACFI,OAAA,8CAEEL,cAAM,KACI,CAEVz6Z,GAAA,oBAAYy/F,OACV,MAAAj4H,KACA,oBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,QACAy/F,OAAA,MACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFI,OAAA,6CACA4C,UAAa,6CACbvC,OAAA,+CAEFV,cAAA,MACQ,CAENz6Z,GAAA,QACAy/F,OAAA,QAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,KAEF,CACAz6Z,GAAA,YACEy/F,OAAM,WACNj4H,KAAA,YACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACYz6Z,GACvB,iBAAUy/F,OACV,MAAaj4H,KACb,iBAAuB+M,SACvB,YAAYimb,UACZ,CACAE,SAAA,8CACeD,cACf,MACF,CAEFz6Z,GAAA,cACAy/F,OAAA,MACEj4H,KAAM,cACN+M,SAAU,SACVimb,UAAQ,CACRW,OAAA,+CACEV,cACA,KACF,CACaz6Z,GACX,aACFy/F,OAAA,OACAj4H,KAAA,aACF+M,SAAA,YACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,gBACFy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,cAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,SAAUimb,UACV,CACAE,SAAA,6CACAgF,UAAA,8CACuBjF,cACV,KACU,CAEzBz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,iBACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,MACI,CACVz6Z,GACA,UACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,UACAy/F,OAAA,OACAj4H,KAAA,UACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACG,CAEhBz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,aAAay/F,OACX,SACFj4H,KAAA,aACA+M,SAAA,YACFimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,aAAAy/F,OACA,QACFj4H,KAAA,WACA+M,SAAA,SAAaimb,UACX,CACAG,UAAQ,6CACRD,SAAU,6CACV,sBAAuB,8CAEzBD,cAAA,KAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,SACNj4H,KAAA,kBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAc,MAEhB,CACAz6Z,GAAA,kBACEy/F,OAAM,OACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACY,CAEzBz6Z,GAAA,UACFy/F,OAAA,KACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,KACI,CACVz6Z,GACA,gBACFy/F,OAAA,MACAj4H,KAAA,UAAa+M,SACX,WAAU,QACZimb,UAAA,GACAC,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,SAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACC,CACCz6Z,GACb,SAAuBy/F,OACvB,QACFj4H,KAAA,SACA+M,SAAA,WAAiB,QACnBimb,UAAA,GACAC,cAAA,MACQ,CAENz6Z,GAAA,gBACAy/F,OAAA,OAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,4CACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFjyZ,OAAA,gDACAyyZ,QACE,wEAEFP,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,6CACF,6DACaD,cACX,KACF,CAEFz6Z,GAAA,iBACAy/F,OAAA,OACEj4H,KAAM,iBACN+M,SAAU,YACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAa,KACC,CACEz6Z,GACd,iBACFy/F,OAAA,OACAj4H,KAAA,iBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNE,KAAA,qEACAqD,QAAQ,4DACIxD,cACV,IACA,CAEFz6Z,GAAA,SAAay/F,OACX,SACFj4H,KAAA,SACA+M,SAAA,YACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,MACFj4H,KAAA,cACA+M,SAAA,WAAc,QACdimb,UAAA,CACFmB,QAAA,gEAEElB,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MACFj4H,KAAA,QACA+M,SAAA,SAAaimb,UACX,CACAE,SAAQ,8CAEVD,cAAA,KAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACI,CAEjBz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,aAAay/F,OACX,OAAYj4H,KACZ,OAAS+M,SACT,CAAS,kBAAAimb,UACT,CACA,sBAAgB,8CACRC,cACR,MACU,CAEZz6Z,GAAA,qBACFy/F,OAAA,MACAj4H,KAAA,qBACE+M,SAAM,YACNimb,UAAU,CACV2B,MAAQ,6CACRzB,SAAY,6CACVI,OAAA,8CAEFL,cAAA,KACa,CAEbz6Z,GAAA,UACAy/F,OAAA,OACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,eAAQ,6CACR,cAAY,6CACVhqa,KAAA,6CACA,oEAEF+pa,cAAa,KACC,CAEdz6Z,GAAA,oBACFy/F,OAAA,cACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,gBAAay/F,OACX,MACFj4H,KAAA,gBACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,6CACEhqa,KAAM,6CACN,cAAU,8CAEV+pa,cAAY,KACV,CAEFz6Z,GAAA,cACAy/F,OAAA,QACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,OACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,YACFimb,UAAA,CACAyD,QAAA,4DAEFxD,cAAA,KACQ,CAENz6Z,GAAA,SACAy/F,OAAA,MAAYj4H,KACV,SAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,GACC,CAEdz6Z,GAAA,WACFy/F,OAAA,OACAj4H,KAAA,WACE+M,SAAM,YACNimb,UAAU,CACVW,OAAQ,+CACIV,cACV,KACA,CAEFz6Z,GAAA,YAAay/F,OACX,MACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA8C,OAAA,6CACE5C,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,kBACFy/F,OAAA,MACAj4H,KAAA,kBAAa+M,SACX,YACFimb,UAAA,CACAW,OAAA,+CAEFV,cAAA,KACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UAAA+M,SACA,SACFimb,UAAA,CACAW,OAAA,+CACyBV,cACvB,MACF,CAEFz6Z,GAAA,SACAy/F,OAAA,OACEj4H,KAAM,SACN+M,SAAU,mBACVimb,UAAQ,CACRW,OAAA,gDACEV,cACA,MACF,CACaz6Z,GACX,SAAYy/F,OACZ,OAAuBj4H,KACvB,SACF+M,SAAA,mBACAimb,UAAA,CACFW,OAAA,+CAEEV,cAAM,KACI,CAEVz6Z,GAAA,UAAYy/F,OACV,QAAAj4H,KACA,iBACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAA,+CAEFV,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,QACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACAG,OAAA,8CAEAJ,cAAA,MAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,SACNj4H,KAAA,kBACA+M,SAAQ,YACRimb,UAAA,CACE,oEAEFC,cAAa,KACC,CACIz6Z,GAChB,YAAYy/F,OACZ,OACFj4H,KAAA,YACA+M,SAAA,SACFimb,UAAA,GACAC,cAAA,KACQ,CAENz6Z,GAAA,aACAy/F,OAAA,QAAYj4H,KACV,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,OACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,oBACE+M,SAAM,mBACNimb,UAAU,CACV,aAAQ,8CACIC,cACV,MACF,CACaz6Z,GACX,YAAYy/F,OACZ,OACFj4H,KAAA,YACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAwB,OACE,uEACAtB,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,sBACAy/F,OAAA,OAAaj4H,KACX,sBAAY+M,SACZ,YAAUimb,UACV,CACAE,SAAA,8CACuBD,cACvB,MACF,CAEFz6Z,GAAA,cACAy/F,OAAA,MACEj4H,KAAM,cACN+M,SAAU,SACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,gBACFy/F,OAAA,QACAj4H,KAAA,gBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,6CACN9pa,KAAA,8CAEA+pa,cAAY,MACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,YACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,cAAYy/F,OACV,OAAAj4H,KACA,cACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,6CACZE,SAAS,8CAEXD,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,MACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFE,KAAA,sEACaH,cACC,MACJ,CAEVz6Z,GAAA,kBACAy/F,OAAA,OACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,oBACAy/F,OAAA,MAAaj4H,KACX,sBACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,cAAYy/F,OACV,OACFj4H,KAAA,cACA+M,SAAA,WAAa,QAAAimb,UACX,CACAW,OAAA,gDAEFV,cAAA,MAEF,CACAz6Z,GAAA,SACEy/F,OAAM,KACNj4H,KAAA,SACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAa,MACC,CACWz6Z,GACvB,2BAAgBy/F,OAChB,OAAaj4H,KACb,yCAAe+M,SACP,mBAAAimb,UACR,CACFmF,WAAA,8CAEFlF,cAAA,MACA,CAEEz6Z,GAAA,aACAy/F,OAAQ,QACRj4H,KAAA,aAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACF,MACC,CAEZz6Z,GAAA,aACFy/F,OAAA,MACAj4H,KAAA,aACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,kBAAY,8CAEZD,cAAA,MACa,CAEbz6Z,GAAA,SACAy/F,OAAA,MACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACN,eAAU,6CACVE,SAAQ,8CACID,cACV,KACF,CACaz6Z,GACX,YAAYy/F,OACZ,SAAuBj4H,KACvB,YACF+M,SAAA,mBACAimb,UAAA,CACF,6DAEEC,cAAM,MACI,CAEVz6Z,GAAA,cAAYy/F,OACV,QAAAj4H,KACA,QACF+M,SAAA,YACAimb,UAAA,CACEE,SAAA,6CACFC,UAAA,6CACAE,OAAA,6CACF,6DAEEJ,cAAM,KACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,SAAAj4H,KACA,iBACF+M,SAAA,mBACAimb,UAAA,CACE,cAAY,8CACIC,cAChB,MACa,CAEfz6Z,GAAA,oBACAy/F,OAAA,MACFj4H,KAAA,oBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,aACAy/F,OAAA,SAAaj4H,KACX,aAAU+M,SACV,WAAY,QACdimb,UAAA,CACAK,OAAA,8CAEFJ,cAAA,MACQ,CAENz6Z,GAAA,QACAy/F,OAAA,QAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,kBACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,eAAa,8CAEbD,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEG,UAAA,6CACA,oEAEFF,cAAc,MAEhB,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAhqa,KAAA,6CACFyqa,OAAA,gDACaV,cACD,MACZ,CAEFz6Z,GAAA,QACAy/F,OAAA,QACEj4H,KAAM,mBACN+M,SAAU,YACVimb,UAAQ,CACR,sBAAY,6CACV,6DACA,6DAEFC,cAAa,MACC,CAEdz6Z,GAAA,YACAy/F,OAAA,YACFj4H,KAAA,YACA+M,SAAA,YACEimb,UAAM,CACN,sBAAU,6CACVE,SAAQ,8CACID,cACV,MACF,CACaz6Z,GACX,cACFy/F,OAAA,MACAj4H,KAAA,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,YACFy/F,OAAA,MACAj4H,KAAA,YAAa+M,SACX,mBACFimb,UAAA,CACAE,SAAA,6CACF,4DACA,4DAEED,cAAU,MACF,CACIz6Z,GACV,aAAAy/F,OACA,OACFj4H,KAAA,gBACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,6CACA,kBAAiB,6CACnB,4DACAC,UAAA,6CACE,cAAM,6CACN,sBAAU,6CACVE,OAAQ,8CACIJ,cACV,MACA,CAEFz6Z,GAAA,gBAAay/F,OACX,SAAuBj4H,KACvB,gBAAY+M,SACZ,CAAS,kBACXimb,UAAA,CACAE,SAAA,6CACF,6DACA,4DAEED,cAAU,KACF,CACIz6Z,GACV,eAAAy/F,OACA,QACFj4H,KAAA,mBACA+M,SAAA,WAAa,QAAAimb,UACX,CACFK,OAAA,8CAEFJ,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,MACRj4H,KAAA,QAAY+M,SACV,mBAAAimb,UACA,CACF4B,SAAA,6CACAxB,KAAA,qEACEF,SAAA,8CAEFD,cAAA,KAEF,CACAz6Z,GAAA,oBACEy/F,OAAM,UACNj4H,KAAA,oBACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,6CACAwB,SAAA,6CACFrB,OAAA,6CACA,sBAAa,6CACX,4DACF,2DACA,sBAAiB,8CAEnBJ,cAAA,KACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,eAAY,8CAEdD,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,OACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,oEAEFC,cAAa,KACC,CAEdz6Z,GAAA,aACFy/F,OAAA,MACAj4H,KAAA,aACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,YAAay/F,OACX,QAAYj4H,KACZ,YAAuB+M,SACvB,mBAAuBimb,UACvB,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,mBACAy/F,OAAQ,MACRj4H,KAAA,mBAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACAC,UAAa,6CACX,sBAAuB,6CACzB,4DACAE,OAAA,6CACF,2DACA,oEAEEJ,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,OACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACA2E,SACF,qEAEF5E,cAAA,IACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,YAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,KACW,CAEzBz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,CACV,cAAQ,+CACIC,cACV,MACA,CAEFz6Z,GAAA,cACAy/F,OAAA,OACFj4H,KAAA,cACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,OAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,QAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,GACFC,cAAA,KAEF,CACAz6Z,GAAA,gBACEy/F,OAAM,MACNj4H,KAAA,gBACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACF,CACaz6Z,GACX,UACFy/F,OAAA,MACAj4H,KAAA,UACF+M,SAAA,SACAimb,UAAA,GACEC,cAAM,IACI,CAEVz6Z,GAAA,aAAYy/F,OACV,SAAAj4H,KACA,aACF+M,SAAA,YACAimb,UAAA,CACE0B,SAAA,8CAEFzB,cAAA,MAEF,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,eACA+M,SAAQ,mBACRimb,UAAA,CACEW,OAAA,+CAEFV,cAAA,MACa,CACCz6Z,GACZ,iBAAmBy/F,OACnB,QACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAG,UAAA,6CACE,sBAAM,6CACN,eAAU,8CAEVF,cAAY,KACV,CAEFz6Z,GAAA,QACAy/F,OAAA,QAAaj4H,KACX,QACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,mEACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,QACAy/F,OAAA,QAAYj4H,KACV,QAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACA,kBAAiB,6CACnBI,OAAA,8CAEEL,cAAM,KACI,CAEVz6Z,GAAA,QAAYy/F,OACV,OAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,cACAy/F,OAAA,OACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,UACAy/F,OAAA,QACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,UAAAy/F,OACA,OACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,QACAj4H,KAAA,gBACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,8CACaD,cACC,KACI,CAElBz6Z,GAAA,SACAy/F,OAAA,OACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNQ,QACA,wEACYP,cACV,KACA,CAEFz6Z,GAAA,qBAAay/F,OACX,SAAYj4H,KACZ,qBAAuB+M,SACvB,WAAe,QACjBimb,UAAA,CACA2D,MAAA,6CACF51Z,OAAA,gDACAyyZ,QACE,wEAEAP,cAAQ,KACI,CACVz6Z,GACA,qBACFy/F,OAAA,SACAj4H,KAAA,qBAAa+M,SACX,WAAY,QACdimb,UAAA,CACAQ,QACF,uEACAzyZ,OAAA,iDAEEkyZ,cAAU,MACF,CACIz6Z,GACV,qBAAAy/F,OACA,SACFj4H,KAAA,qBACA+M,SAAA,WAAa,QAAAimb,UACX,CACAQ,QACA,wEACgBP,cAChB,KACF,CAEFz6Z,GAAA,sBACAy/F,OAAA,UACEj4H,KAAM,sBACN+M,SAAU,mBACVimb,UAAQ,CACRwB,OACE,wEAEFvB,cAAa,MACG,CAEhBz6Z,GAAA,iBACFy/F,OAAA,OACAj4H,KAAA,iBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,eAAY,8CACVD,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,SACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,mBACFy/F,OAAA,MACAj4H,KAAA,aAAa+M,SACX,WAAW,QACbimb,UAAA,CACAmB,QAAA,gEAEFlB,cAAA,KACQ,CAENz6Z,GAAA,YACAy/F,OAAA,MAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACA0B,SAAA,8CAEAzB,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CACCz6Z,GACZ,MACFy/F,OAAA,MACAj4H,KAAA,MACF+M,SAAA,mBACAimb,UAAA,CACE0C,IAAM,iBAENzC,cAAQ,IACI,CACVz6Z,GACA,SACFy/F,OAAA,OACAj4H,KAAA,SAAa+M,SACX,mBACFimb,UAAA,CACA0C,IAAA,kFAEFzC,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,GACAC,cAAa,MACC,CAEdz6Z,GAAA,OACAy/F,OAAA,OACFj4H,KAAA,OACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,YACAy/F,OAAA,MAAaj4H,KACX,YAAY+M,SACZ,YACFimb,UAAA,CACAqB,KAAA,sCAEFpB,cAAA,KACQ,CAENz6Z,GAAA,oBACAy/F,OAAA,SAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACA8C,OAAA,8CACc7C,cACF,MACZ,CAEFz6Z,GAAA,YACAy/F,OAAA,OACEj4H,KAAM,YACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,KACa,CAEbz6Z,GAAA,YACAy/F,OAAA,OACFj4H,KAAA,YACA+M,SAAA,YACEimb,UAAM,CACN,aAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,aAAay/F,OACX,OAAYj4H,KACZ,OAAgB+M,SAChB,SAAeimb,UACf,CAAU,EACZC,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACAG,OAAA,6CACF,+DACAF,UAAa,6CACXG,OAAA,6CACF,gBACA,+DACF,4DACA,2DACE,sBAAM,6CACNF,KAAA,qEACAU,KAAQ,6CACRH,OAAA,gDACEV,cACA,KACF,CACaz6Z,GACX,WAAYy/F,OACZ,QAAej4H,KACf,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,YAAYy/F,OACV,MAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACFuB,KAAA,8CAEFxB,cAAA,KACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACEuB,KAAA,6CACF,2DACA,sBAAiB,8CAEnBxB,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,QAAYj4H,KACV,gBAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,gBAAY,eAEdD,cAAA,KAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,iBACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF,6DACaD,cACD,KACZ,CAEFz6Z,GAAA,WACAy/F,OAAA,QACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,oEAEFD,cAAA,KACc,CAEhBz6Z,GAAA,QACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,+DACA,oEAEFD,cAAa,KACC,CAEdz6Z,GAAA,WACFy/F,OAAA,OACAj4H,KAAA,kBACE+M,SAAM,mBACNimb,UAAU,CACVQ,QACA,uEACE0D,IAAA,2CACAY,QAAA,6CACF,4DACA,sBAAc,8CAEhB7E,cAAA,MACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,MACH,CAEXz6Z,GAAA,oBACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRqE,MAAA,6CACEzB,OAAA,6CACA,4DACFpgS,OAAA,6CACA,sBAAc,8CAEhBu9R,cAAA,MACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,SAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA4C,OAAA,8CAEA7C,cAAA,KAEF,CACAz6Z,GAAA,UACEy/F,OAAM,MACNj4H,KAAA,UACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACA,CAEFz6Z,GAAA,cAAay/F,OACX,QAAYj4H,KACZ,QAAe+M,SACf,mBACFimb,UAAA,CACA,sBAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,aAAA+M,SACA,mBACFimb,UAAA,CACAW,OAAA,8CACE,cAAQ,8CAEVV,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,OACAj4H,KAAA,WACA+M,SAAA,YAAYimb,UACV,CACAE,SAAA,8CAEFD,cAAc,MAEhB,CACAz6Z,GAAA,eACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CAEbz6Z,GAAA,MACAy/F,OAAA,MACFj4H,KAAA,MACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,OAAaj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,WAAY+M,SACV,SAAAimb,UACA,CACFK,OAAA,6CACA,sBAAa,6CACXH,SAAA,6CACF,4DACA,sBAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACE,2DACA,sBAAO,6CACP,eAAU,6CACVhqa,KAAA,6CACAyqa,OAAA,gDAEFV,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,QACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACAY,OAAA,8CAEFX,cAAa,KACY,CAEzBz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,UAAay/F,OACX,MAAej4H,KACf,UAAY+M,SACZ,mBACFimb,UAAA,CACAE,SAAA,6CACFE,KAAA,qEACA,4DAEEH,cAAU,KACF,CACIz6Z,GACV,SACFy/F,OAAA,MACAj4H,KAAA,kBAAa+M,SACX,WAAY,QACdimb,UAAA,CACAE,SAAA,6CACF,6DACA,mEACE,eAAM,6CACNuB,KAAA,6CACA,cAAQ,8CACIxB,cACV,KACA,CAEFz6Z,GAAA,QACAy/F,OAAA,OACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,KACF,CACIz6Z,GACV,6CAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,QACRj4H,KAAA,SAAY+M,SACV,mBAAAimb,UACA,CACF,oEACaC,cACC,KACd,CAEFz6Z,GAAA,eACAy/F,OAAA,OACEj4H,KAAM,QACN+M,SAAU,YACVimb,UAAQ,CACRQ,QACE,wEAEFP,cAAA,KACa,CACCz6Z,GACZ,WACFy/F,OAAA,OACAj4H,KAAA,kBACF+M,SAAA,YACAimb,UAAA,CACEe,MAAM,QAENd,cAAQ,KACI,CACVz6Z,GACA,cACFy/F,OAAA,OACAj4H,KAAA,cACA+M,SAAA,SACFimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,cAAAy/F,OACA,OACFj4H,KAAA,cACA+M,SAAA,YAAaimb,UACX,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,OACRj4H,KAAA,OAAY+M,SACV,mBAAAimb,UACA,CACF,2DACAK,OAAA,8CACcJ,cACZ,MACuB,CAEzBz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,mBACNimb,UAAU,GACVC,cAAQ,IACI,CAEZz6Z,GAAA,QACAy/F,OAAA,OAAaj4H,KACX,QAAY+M,SACZ,mBACFimb,UAAA,CACA,cAAiB,6CACnBE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,SAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACA,sBAAQ,6CACV,4DACAhqa,KAAA,6CACF,4DAEE+pa,cAAM,MACI,CAEVz6Z,GAAA,YAAYy/F,OACV,QAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF,gEAEFD,cAAA,MACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,MACRj4H,KAAA,YAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,kBAAY,6CACdI,OAAA,6CACA,gBACF,+DACAH,UAAA,6CACE,cAAM,6CACN,eAAU,6CACVC,KAAQ,sEACIH,cACV,IACA,CAEFz6Z,GAAA,QAAay/F,OACX,MAAYj4H,KACZ,QACF+M,SAAA,SACAimb,UAAA,CACF,mEACAwE,MAAA,8CAEEvE,cAAU,MACF,CACIz6Z,GACV,mBAAAy/F,OACA,MACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAQ,6CACV,oEAEFD,cAAA,IACA,CAEEz6Z,GAAA,YACAy/F,OAAQ,OACRj4H,KAAA,YAAY+M,SACV,SACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,QACNj4H,KAAA,YACA+M,SAAQ,mBACRimb,UAAA,CACEoC,MAAA,8CAEFnC,cAAa,KACC,CACWz6Z,GACvB,aACFy/F,OAAA,QACAj4H,KAAA,aACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,KACI,CAEVz6Z,GAAA,cAAYy/F,OACV,QACFj4H,KAAA,gBACA+M,SAAA,WAAa,QAAAimb,UACX,GACFC,cAAA,IAEF,CACAz6Z,GAAA,qBACEy/F,OAAM,MACNj4H,KAAA,qBACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,MACa,CAEbz6Z,GAAA,uBACAy/F,OAAA,QACFj4H,KAAA,2BACA+M,SAAA,YACEimb,UAAM,CACN,cAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,oBACAy/F,OAAA,MAAaj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,KACI,CAEVz6Z,GAAA,iBAAYy/F,OACV,MAAAj4H,KACA,UACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,aAAYy/F,OACV,OAAAj4H,KACA,aACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KACa,CACCz6Z,GACZ,YACFy/F,OAAA,OACAj4H,KAAA,YACF+M,SAAA,mBACAimb,UAAA,GACEC,cAAM,IACI,CAEVz6Z,GAAA,cAAYy/F,OACV,QAAAj4H,KACA,cACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACAG,OAAA,6CACAU,MAAA,gDAEFd,cAAA,MAEF,CACAz6Z,GAAA,aACEy/F,OAAM,MACNj4H,KAAA,iBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,UACAy/F,OAAA,MACFj4H,KAAA,UACA+M,SAAA,YACEimb,UAAM,GACNC,cAAU,KACF,CACIz6Z,GACV,0BAAAy/F,OACA,IACFj4H,KAAA,oBACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,gBACAy/F,OAAQ,QACRj4H,KAAA,gBAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACE,cAAU,8CAEZD,cAAA,MAEF,CACEz6Z,GAAA,UACAy/F,OAAA,MACAj4H,KAAA,UACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CACWz6Z,GACvB,aAAgBy/F,OAChB,OAAuBj4H,KACvB,OACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,SAAYy/F,OACV,MAAAj4H,KACA,SACF+M,SAAA,mBACAimb,UAAA,CACE,eAAY,8CAEdC,cAAA,MAEF,CACAz6Z,GAAA,YACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CAEbz6Z,GAAA,UACAy/F,OAAA,QACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,WAAay/F,OACX,MACFj4H,KAAA,WACA+M,SAAA,YACFimb,UAAA,CACAgB,MACE,uFAEAf,cAAQ,MACI,CACVz6Z,GACA,mBACFy/F,OAAA,MACAj4H,KAAA,mBAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACA,eAAa,8CAEbD,cAAA,KAEF,CACAz6Z,GAAA,aACEy/F,OAAM,MACNj4H,KAAA,aACA+M,SAAQ,mBACRimb,UAAA,CACE,oEAEFC,cAAA,KACa,CACCz6Z,GACZ,SAAUy/F,OACV,MAAuBj4H,KACvB,SACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,KACF,CACIz6Z,GACV,OAAAy/F,OACA,OACFj4H,KAAA,OACA+M,SAAA,YAAaimb,UACX,CACAK,OAAA,6CACAuE,UAAA,6CACFzE,UAAA,6CACA,sBAAiB,6CACnB,4DAEEF,cAAM,MACI,CAEVz6Z,GAAA,UAAYy/F,OACV,OACFj4H,KAAA,UACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,cACAy/F,OAAQ,MACRj4H,KAAA,cAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACC,MACd,CAEFz6Z,GAAA,MACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,CACRK,OAAA,6CACE,oEAEFJ,cAAA,KACa,CAEbz6Z,GAAA,eACAy/F,OAAA,OACFj4H,KAAA,eACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,sBAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,QAAay/F,OACX,MACFj4H,KAAA,QACA+M,SAAA,YACFimb,UAAA,CACA,oEAEEC,cAAU,MACF,CACIz6Z,GACV,QAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACA9pa,KAAA,8CAEF+pa,cAAA,KAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,QACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFhqa,KAAA,6CACA,cAAa,6CACX,sBAAS,8CAEX+pa,cAAA,MAEF,CACEz6Z,GAAA,gBACAy/F,OAAA,QACAj4H,KAAA,gBACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,mEACFE,SAAA,6CACAG,OAAA,8CAEAJ,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACC,CACGz6Z,GACf,QACFy/F,OAAA,QACAj4H,KAAA,UACF+M,SAAA,mBACAimb,UAAA,CACEK,OAAM,8CAENJ,cAAQ,MACI,CACVz6Z,GACA,eACFy/F,OAAA,OACAj4H,KAAA,OAAa+M,SACX,YACFimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UAAA+M,SACA,mBACFimb,UAAA,CACA,aAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,cACEy/F,OAAM,QACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACE,mEACAE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,UACAy/F,OAAA,QACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,WACAy/F,OAAA,OAAaj4H,KACX,WACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,OAAAy/F,OACA,MACFj4H,KAAA,OACA+M,SAAA,WAAa,QAAAimb,UACX,GAAYC,cACZ,IACF,CAEFz6Z,GAAA,UACAy/F,OAAA,UACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,OACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACEiD,YAAM,YAENhD,cAAQ,KACI,CACVz6Z,GACA,SACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFE,SAAA,8CAEFD,cAAA,KACA,CAEEz6Z,GAAA,qBACAy/F,OAAQ,MACRj4H,KAAA,eAAY+M,SACV,mBAAAimb,UACA,CACF,mEACAM,OAAA,6CACE2C,YAAY,WAEdhD,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,MACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DAEFC,cAAa,MACY,CACTz6Z,GACd,aACFy/F,OAAA,OACAj4H,KAAA,OACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAM,8CAENC,cAAQ,MACI,CACVz6Z,GACA,QACFy/F,OAAA,MACAj4H,KAAA,QAAa+M,SACX,WAAY,QAAAimb,UACZ,CACAE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,MACAy/F,OAAA,MACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACAC,UAAa,8CACCF,cACZ,KACF,CAEFz6Z,GAAA,gBACAy/F,OAAA,QACEj4H,KAAM,QACN+M,SAAU,mBACVimb,UAAQ,CACR,eAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,mBAAUy/F,OACV,MAAiBj4H,KACjB,mBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,gBAAAy/F,OACA,SACFj4H,KAAA,gBACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,SACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,YACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRI,OAAA,6CACE,4DAEFL,cAAA,MACc,CAEhBz6Z,GAAA,UACAy/F,OAAA,MACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACVuB,KAAA,6CACFtB,UAAA,6CACA,gBACE,+DACAG,OAAA,6CACA,sBAAS,6CACX,4DACA,cAAiB,6CACnB,2DACA,+DACEF,KAAM,qEACN,sBAAU,8CAEVH,cAAY,IACV,CAEFz6Z,GAAA,aACAy/F,OAAA,OAAaj4H,KACX,eACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAuB,KAAA,6CACE,sBAAM,8CAENxB,cAAQ,MACI,CAEZz6Z,GAAA,SACAy/F,OAAA,IAAaj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,MACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACAE,SAAA,6CACFC,UAAA,8CAEEF,cAAM,MACI,CAEVz6Z,GAAA,qBAAYy/F,OACV,OACFj4H,KAAA,qBACA+M,SAAA,WAAa,QAAAimb,UACX,CACFE,SAAA,6CACA,sBAAiB,8CAEnBD,cAAA,KACQ,CAENz6Z,GAAA,WACAy/F,OAAA,QAAYj4H,KACV,WAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,6CACEuC,WAAY,8CAEdxC,cAAA,MAEF,CACEz6Z,GAAA,SACAy/F,OAAA,MACAj4H,KAAA,SACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACC,CAEdz6Z,GAAA,iBACAy/F,OAAA,MACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,6CACR,sBAAY,8CACVD,cACA,KACF,CAEAz6Z,GAAA,WACFy/F,OAAA,MACAj4H,KAAA,WACE+M,SAAM,YACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,YAAay/F,OACX,QAAYj4H,KACZ,YACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACA,oEAEED,cAAU,MACF,CACIz6Z,GACV,mBAAAy/F,OACA,MACFj4H,KAAA,mBACA+M,SAAA,WAAc,QACdimb,UAAA,CACF,6DAEEC,cAAM,MACI,CAEVz6Z,GAAA,wBAAYy/F,OACV,MACFj4H,KAAA,wBACA+M,SAAA,WAAa,QAAAimb,UACX,CACA8D,MAAA,wCAEF7D,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,MACAj4H,KAAA,aACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,KACC,CACGz6Z,GACf,aACFy/F,OAAA,OACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,sBAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OACF+M,SAAA,mBACAimb,UAAA,CACFqB,KAAA,qCACA,gBACE,+DACAlB,UAAU,6CACVqC,WAAQ,6CACRtC,SAAY,6CACV,4DACF,oEACaD,cACC,KACF,CAEZz6Z,GAAA,+BACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRgD,UAAY,6CACV/C,UAAA,6CACA,mEACF,4DACA,cAAc,6CACd,sBAAiB,8CAEnBF,cAAA,MACQ,CAENz6Z,GAAA,OACAy/F,OAAA,OAAYj4H,KACV,OACF+M,SAAA,mBACAimb,UAAA,GAAaC,cACC,KACd,CAEFz6Z,GAAA,mBACAy/F,OAAA,OACEj4H,KAAM,mBACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,MACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,cAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,QACAy/F,OAAA,MACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,KACI,CACVz6Z,GACA,wBACFy/F,OAAA,MACAj4H,KAAA,wBAAa+M,SACX,YAAgBimb,UAChB,CACAiB,OAAA,8CAEFhB,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,QACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAa,MACI,CACFz6Z,GACb,UAAuBy/F,OACvB,MAAuBj4H,KACvB,UAAY+M,SACZ,WAAU,QAAAimb,UACV,CAAU,EACZC,cAAA,IAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,MACNj4H,KAAA,iBACA+M,SAAQ,mBACRimb,UAAA,CACEG,UAAA,8CAEFF,cAAA,MACc,CAEhBz6Z,GAAA,cACAy/F,OAAA,MACEj4H,KAAM,iBACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,gBACFy/F,OAAA,OACAj4H,KAAA,gBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,8CAEND,cAAQ,KACI,CAEZz6Z,GAAA,QACAy/F,OAAA,MAAaj4H,KACX,QAAY+M,SACZ,WAAa,QAAAimb,UACb,CACAE,SAAA,6CACF,oEAEFD,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,SACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACF,mEACAE,SAAA,6CACEoC,MAAA,8CAEFrC,cAAA,MAEF,CACEz6Z,GAAA,aACAy/F,OAAA,OACAj4H,KAAA,aACA+M,SAAA,WAAY,QAAAimb,UACV,CACA,4DACF9pa,KAAA,8CACa+pa,cACC,MACJ,CAEVz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,YACA+M,SAAA,YACEimb,UAAM,CACN,sBAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,oBACAy/F,OAAA,OAAaj4H,KACX,oBACF+M,SAAA,mBACAimb,UAAA,CACF,oEAEEC,cAAM,KACI,CAEVz6Z,GAAA,cAAYy/F,OACV,OACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACF,2DACAE,SAAA,8CAEFD,cAAA,MACQ,CAENz6Z,GAAA,YACAy/F,OAAA,KAAYj4H,KACV,YAAA+M,SACA,mBACFimb,UAAA,CACA,sBAAa,8CAEbC,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,MACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,MACA,CAEFz6Z,GAAA,eAAay/F,OACX,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACEG,OAAM,6CACNoC,WAAU,6CACV,sBAAQ,6CACR,aAAY,8CACVxC,cACA,MACF,CACaz6Z,GACX,eACFy/F,OAAA,MACAj4H,KAAA,eACF+M,SAAA,mBACAimb,UAAA,CACEY,OAAM,6CACNkC,OAAU,8CAEV7C,cAAY,KACV,CAEFz6Z,GAAA,eACAy/F,OAAA,OAAaj4H,KACX,eAAY+M,SACZ,SAAuBimb,UACvB,CACFE,SAAA,6CACA,cAAiB,6CACnB,oEAEED,cAAM,MACI,CAEVz6Z,GAAA,QAAYy/F,OACV,MAAAj4H,KACA,QACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,6CACZE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,WACAy/F,OAAA,MACAj4H,KAAA,WACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,8CAEFD,cAAc,KAEhB,CACAz6Z,GAAA,QACEy/F,OAAM,MACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACA,CAEFz6Z,GAAA,aAAay/F,OACX,QAAYj4H,KACZ,aACF+M,SAAA,YACAimb,UAAA,CACFY,OAAA,6CACA,4DAEEX,cAAU,MACF,CACIz6Z,GACV,WAAAy/F,OACA,MACFj4H,KAAA,WACA+M,SAAA,WAAa,QAAAimb,UACX,GAAYC,cACZ,MACU,CACKz6Z,GACf,iBACFy/F,OAAA,MACAj4H,KAAA,iBACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACNG,OAAU,6CACV,cAAQ,8CACIJ,cACV,MACA,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACFj4H,KAAA,gBACA+M,SAAA,SACEimb,UAAM,CACN,eAAU,8CAEVC,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,OAAaj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,8CACaD,cACX,MACuB,CAEzBz6Z,GAAA,cACFy/F,OAAA,KACAj4H,KAAA,cACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,WAAay/F,OACX,OACFj4H,KAAA,WACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,8CAEED,cAAU,KACF,CACIz6Z,GACV,QAAAy/F,OACA,QACFj4H,KAAA,QACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,YACRimb,UAAA,CACE,mEACAoF,KAAA,+BACF,2DACAlF,SAAA,8CACyBD,cACV,MACD,CAEdz6Z,GAAA,mBACAy/F,OAAA,KACFj4H,KAAA,mBACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,YAAAy/F,OACA,OACFj4H,KAAA,YACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACF,4DACA,cAAiB,8CAEnBD,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,OAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACFE,SAAA,6CACA,sBAAa,6CACXkF,KAAA,gCAEFnF,cAAA,KAEF,CACAz6Z,GAAA,QACEy/F,OAAM,MACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,YACFy/F,OAAA,OACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,MACA,CAEFz6Z,GAAA,WACAy/F,OAAA,OACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVC,UAAQ,6CACR2D,MAAA,uCACE,2DACAnD,OAAA,gDAEFV,cAAa,MACC,CACFz6Z,GACV,SACFy/F,OAAA,QACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACE,cAAM,8CAENC,cAAQ,KACI,CACVz6Z,GACA,YACFy/F,OAAA,OACAj4H,KAAA,YAAa+M,SACX,WAAY,QAAAimb,UACJ,GAAAC,cACE,MACa,CAEzBz6Z,GAAA,gBACAy/F,OAAA,MACFj4H,KAAA,gBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,cAAay/F,OACX,MACFj4H,KAAA,cACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAY,OAAA,6CACEV,SAAM,8CAEND,cAAQ,KACI,CAEZz6Z,GAAA,UACAy/F,OAAA,QAAaj4H,KACX,QACF+M,SAAA,mBACAimb,UAAA,CACF,+DACAK,OAAA,6CACEe,KAAM,6CACNjB,UAAU,6CACV,sBAAQ,6CACRD,SAAY,6CACV4C,OAAA,6CACA,2DACF,4DACA,sBAAa,8CACA7C,cACF,MACX,CAEFz6Z,GAAA,eACAy/F,OAAA,aACEj4H,KAAM,cACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,SAAYy/F,OACZ,OAAWj4H,KACX,SACF+M,SAAA,mBACAimb,UAAA,CACFW,OAAA,+CAEEV,cAAM,MACI,CAEVz6Z,GAAA,MAAYy/F,OACV,MAAAj4H,KACA,MACF+M,SAAA,YACAimb,UAAA,CACE,sBAAY,8CACJC,cACR,MACe,CAEjBz6Z,GAAA,WACAy/F,OAAA,MACFj4H,KAAA,WACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,KACF,CACIz6Z,GACV,SAAAy/F,OACA,MACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,8CAEFD,cAAA,MAEF,CACAz6Z,GAAA,MACEy/F,OAAM,OACNj4H,KAAA,MACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,KACY,CAEzBz6Z,GAAA,SACFy/F,OAAA,MACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACViD,YAAQ,UACR3C,OAAA,6CACE,2DACA,oEAEFL,cAAa,KACC,CACOz6Z,GACnB,UAAQy/F,OACR,MAAUj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACF,mEACA8E,QAAA,8CAEE7E,cAAU,MACF,CACIz6Z,GACV,WAAAy/F,OACA,SACFj4H,KAAA,kBACA+M,SAAA,YAAaimb,UACX,CACA,sBAAe,6CACjBE,SAAA,6CACAU,OAAA,6CACF,6DAEEX,cAAM,MACI,CAEVz6Z,GAAA,eAAYy/F,OACV,OAAAj4H,KACA,eACF+M,SAAA,mBACAimb,UAAA,CACE,cAAY,6CACdE,SAAA,6CACA4C,OAAA,6CACF,4DACA,oEAEE7C,cAAU,MACF,CACIz6Z,GACV,cACFy/F,OAAA,QACAj4H,KAAA,QAAa+M,SACX,WAAY,QAAAimb,UACJ,GAAAC,cACE,KACZ,CAEFz6Z,GAAA,WACAy/F,OAAA,MACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,CACR,sBAAY,8CACVC,cACA,MACF,CAEAz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,QACE+M,SAAM,SACNimb,UAAU,CACV,sBAAQ,6CACRE,SAAY,8CACVD,cACA,KACF,CACaz6Z,GACX,WAAgBy/F,OAChB,MAAaj4H,KACb,gBAAuB+M,SACvB,WAAY,QAAAimb,UACZ,CACFE,SAAA,6CACAmB,KAAA,sCAEFpB,cAAA,KACQ,CAENz6Z,GAAA,aACAy/F,OAAA,QAAYj4H,KACV,aAAA+M,SACA,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,KAEF,CACAz6Z,GAAA,WACEy/F,OAAM,OACNj4H,KAAA,WACA+M,SAAQ,mBACRimb,UAAA,CACEK,OAAA,8CAEFJ,cAAA,MACa,CACCz6Z,GACZ,iBACFy/F,OAAA,MACAj4H,KAAA,iBACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAM,+CACN,cAAU,8CAEVV,cAAY,MACV,CAEFz6Z,GAAA,eACAy/F,OAAA,OAAaj4H,KACX,eACF+M,SAAA,SACAimb,UAAA,GACFC,cAAA,KACA,CAEEz6Z,GAAA,OACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBAAAimb,UACA,CACFqB,KAAA,sCACapB,cACC,KACd,CAEFz6Z,GAAA,gBACAy/F,OAAA,OACEj4H,KAAM,gBACN+M,SAAU,mBACVimb,UAAQ,CACR,eAAY,6CACVW,OAAA,gDAEFV,cAAa,MACY,CAEzBz6Z,GAAA,QACFy/F,OAAA,MACAj4H,KAAA,YACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRC,UAAY,6CACVgB,QAAA,gEAEFlB,cAAA,MACa,CACCz6Z,GACZ,eAAey/F,OACf,OACFj4H,KAAA,OACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,kBAAM,8CAEND,cAAQ,MACI,CACVz6Z,GACA,cACFy/F,OAAA,QACAj4H,KAAA,cAAa+M,SACX,WAAY,QAAAimb,UACZ,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,QACAy/F,OAAQ,QACRj4H,KAAA,QAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,8CAEAD,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,QACNj4H,KAAA,QACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,MACa,CAEbz6Z,GAAA,SACAy/F,OAAA,SACFj4H,KAAA,SACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACV,cAAQ,8CACID,cACV,MACA,CAEFz6Z,GAAA,YAAay/F,OACX,MAAYj4H,KACZ,eACF+M,SAAA,SACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,mBAAYy/F,OACV,OAAAj4H,KACA,mBACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAa,8CAEfC,cAAA,MAEF,CACEz6Z,GAAA,cACAy/F,OAAA,MACAj4H,KAAA,MACA+M,SAAA,SAAYimb,UACV,CACFE,SAAA,6CACAG,OAAA,6CACEF,UAAA,6CACA2C,OAAA,6CACA,eAAe,6CACf,sBAAgB,6CAChB,cAAQ,6CACR,0DACF,2DACA,gBACF,+DACAnC,OAAA,gDAEEV,cAAU,KACF,CACIz6Z,GACV,UAAAy/F,OACA,MACFj4H,KAAA,UACA+M,SAAA,YAAaimb,UACX,GACFC,cAAA,MAEF,CACAz6Z,GAAA,OACEy/F,OAAM,OACNj4H,KAAA,UACA+M,SAAQ,SACRimb,UAAA,CACEE,SAAA,8CAEFD,cAAa,MACC,CAEdz6Z,GAAA,qBACAy/F,OAAA,QACFj4H,KAAA,qBACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,qBACAy/F,OAAA,QAAaj4H,KACX,qBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,6CACAhqa,KAAA,8CAEE+pa,cAAU,MACF,CACIz6Z,GACV,qBAAAy/F,OACA,QACFj4H,KAAA,qBACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAA,6CACA,sBAAuB,8CACRD,cACP,KACV,CAEFz6Z,GAAA,qBACAy/F,OAAA,OACEj4H,KAAM,qBACN+M,SAAU,SACVimb,UAAQ,CACRE,SAAY,8CAEZD,cAAA,KACa,CAEbz6Z,GAAA,cACAy/F,OAAA,OACFj4H,KAAA,cACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,8CAEVD,cAAY,KACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACEG,UAAA,6CACAD,SAAA,6CACA,sBAAgB,6CAClB,6DAEFD,cAAA,KACA,CAEEz6Z,GAAA,SACAy/F,OAAQ,OACRj4H,KAAA,SAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,8CACcD,cACZ,MACe,CAEjBz6Z,GAAA,eACFy/F,OAAA,OACAj4H,KAAA,eACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACR,sBAAY,6CACV,2DACF4E,QAAA,6CACA,kBAAa,6CACX,eAAY,8CAEd7E,cAAA,KAEF,CACEz6Z,GAAA,kBACAy/F,OAAA,MACAj4H,KAAA,cACA+M,SAAA,WAAY,QAAAimb,UACV,GAAAC,cACA,KACF,CACaz6Z,GACX,QACFy/F,OAAA,QACAj4H,KAAA,QACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,eAAU,8CAEVD,cAAY,MACV,CAEFz6Z,GAAA,OACAy/F,OAAA,OAAaj4H,KACX,OACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,8BAAYy/F,OACV,MACFj4H,KAAA,wBACA+M,SAAA,WAAa,QAAAimb,UACX,CACAuD,SAAA,aACuBtD,cACvB,MACe,CAEjBz6Z,GAAA,QACAy/F,OAAA,QACFj4H,KAAA,QACA+M,SAAA,mBACEimb,UAAM,CACNE,SAAU,6CACVE,KAAQ,sEACIH,cACV,MACF,CACaz6Z,GACX,eAAYy/F,OACZ,OAAmBj4H,KACnB,eAAQ+M,SACR,WAAU,QACZimb,UAAA,CACAE,SAAA,6CACF,oEAEED,cAAM,KACI,CAEVz6Z,GAAA,WAAYy/F,OACV,KAAAj4H,KACA,KACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CACaD,cACH,MACA,CACaz6Z,GACvB,OAAgBy/F,OAChB,OAAuBj4H,KACvB,OACF+M,SAAA,YACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACAQ,QACF,wEAEEP,cAAM,KACI,CAEVz6Z,GAAA,aAAYy/F,OACV,QAAAj4H,KACA,aACF+M,SAAA,mBACAimb,UAAA,CACE,sBAAY,8CAEdC,cAAA,MAEF,CACEz6Z,GAAA,OACAy/F,OAAA,OACAj4H,KAAA,OACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACF4E,QAAA,6CACA,cAAc,8CAEhB7E,cAAA,KACA,CAEEz6Z,GAAA,iBACAy/F,OAAQ,MACRj4H,KAAA,iBAAY+M,SACV,mBACFimb,UAAA,CACA,cAAa,+CACCC,cACZ,MACU,CAEZz6Z,GAAA,SACFy/F,OAAA,SACAj4H,KAAA,SACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,8CACID,cACV,KACA,CAEFz6Z,GAAA,eAAay/F,OACX,OAAYj4H,KACZ,eAAmB+M,SACnB,YAAeimb,UACf,CACF,mEACA,cAAiB,8CAEnBC,cAAA,MACQ,CAENz6Z,GAAA,gBACAy/F,OAAA,MAAYj4H,KACV,gBACF+M,SAAA,mBACAimb,UAAA,CACA,sBAAiB,6CACnB,4DACAE,SAAA,8CAEED,cAAU,MACF,CACIz6Z,GACV,aACFy/F,OAAA,KACAj4H,KAAA,aACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACAE,SAAA,6CACE,sBAAM,6CACNG,OAAU,6CACV,cAAQ,8CACIJ,cACV,MACF,CACaz6Z,GACX,cAAWy/F,OACX,MAAuBj4H,KACvB,cAAe+M,SACf,WAAY,QACdimb,UAAA,CACAE,SAAA,8CAEFD,cAAA,KACQ,CAENz6Z,GAAA,MACAy/F,OAAA,MAAYj4H,KACV,MACF+M,SAAA,YACAimb,UAAA,CACE,6DAEFC,cAAA,MAEF,CACEz6Z,GAAA,YACAy/F,OAAA,MACAj4H,KAAA,YACA+M,SAAA,WAAY,QAAAimb,UACV,CACAG,UAAA,6CACF,6DACaF,cACX,MACF,CAEFz6Z,GAAA,QACAy/F,OAAA,MACEj4H,KAAM,MACN+M,SAAU,mBACVimb,UAAQ,CACRE,SAAY,6CACV,gEAEFD,cAAa,MACC,CAEdz6Z,GAAA,gBACFy/F,OAAA,MACAj4H,KAAA,gBACE+M,SAAM,mBACNimb,UAAU,CACVE,SAAQ,6CACRuB,KAAA,6CACEtB,UAAA,6CACA,mEACF,gBACA,+DACEG,OAAA,6CACApqa,KAAA,6CACA,cAAU,6CACZ,2DACA,kBAAiB,6CACnBmqa,OAAA,6CACA,4DACED,KAAM,sEAENH,cAAQ,KACI,CACVz6Z,GACA,YACFy/F,OAAA,MACAj4H,KAAA,YAAa+M,SACX,WAAY,QAAAimb,UACZ,CACF0E,MAAA,8CAEFzE,cAAA,KACA,CAEEz6Z,GAAA,eACAy/F,OAAQ,OACRj4H,KAAA,YAAY+M,SACV,mBAAAimb,UACA,CACFE,SAAA,6CACAI,OAAA,8CAEAL,cAAA,MAEF,CACAz6Z,GAAA,oBACEy/F,OAAM,MACNj4H,KAAA,oBACA+M,SAAQ,YACRimb,UAAA,CACEE,SAAA,6CACAyB,MAAA,6CACF,2DACA,kBAAa,8CAEb1B,cAAA,KAEF,CACAz6Z,GAAA,iBACEy/F,OAAM,MACNj4H,KAAA,iBACA+M,SAAQ,mBACRimb,UAAA,CACEE,SAAA,6CACA,6DAEFD,cAAa,MACC,CAEdz6Z,GAAA,iBACAy/F,OAAA,QACFj4H,KAAA,iBACA+M,SAAA,mBACEimb,UAAM,CACNK,OAAU,6CACV,sBAAQ,8CACIJ,cACV,MACA,CAEFz6Z,GAAA,kBAAay/F,OACX,MAAYj4H,KACZ,kBACF+M,SAAA,mBACAimb,UAAA,CACFE,SAAA,8CAEED,cAAM,MACI,CAEVz6Z,GAAA,OAAYy/F,OACV,OAAAj4H,KACA,OACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,8CAEFD,cAAA,KAEF,CACEz6Z,GAAA,MACAy/F,OAAA,MACAj4H,KAAA,MACA+M,SAAA,WAAY,QAAAimb,UACV,CACAE,SAAA,6CACFS,OAAA,+CACA,sBAAa,8CAEbV,cAAA,MAEF,CACAz6Z,GAAA,QACEy/F,OAAM,MACNj4H,KAAA,QACA+M,SAAQ,mBACRimb,UAAA,CAAY,EAAAC,cACV,KACF,CACaz6Z,GACX,iBACFy/F,OAAA,MACAj4H,KAAA,iBACF+M,SAAA,mBACAimb,UAAA,CACEW,OAAM,+CAENV,cAAQ,KACI,CAEZz6Z,GAAA,YACAy/F,OAAA,MAAaj4H,KACX,YACF+M,SAAA,SACAimb,UAAA,GACFC,cAAA,MACA,CAEEz6Z,GAAA,UACAy/F,OAAQ,MACRj4H,KAAA,UAAY+M,SACV,mBACFimb,UAAA,GACAC,cAAa,KACC,CAEdz6Z,GAAA,wBACAy/F,OAAA,MACFj4H,KAAA,kBACA+M,SAAA,mBACEimb,UAAM,CACNiC,UAAU,6CACVV,MAAQ,8CACItB,cACV,MACA,CAEFz6Z,GAAA,UAAay/F,OACX,MAAYj4H,KACZ,QAAmB+M,SACnB,WAAe,QAAAimb,UACf,CACFE,SAAA,8CAEFD,cAAA,MACA,CAEEz6Z,GAAA,WACAy/F,OAAQ,MACRj4H,KAAA,WAAY+M,SACV,mBACFimb,UAAA,CACAE,SAAA,6CACEC,UAAA,6CACF,mEACA,cAAiB,8CAEnBF,cAAA,MACQ,CAENz6Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAA,6CACF0C,UAAA,kDACA,cAAiB,6CACnB,mEACAjC,OAAA,+CAEEV,cAAU,KACF,CACIz6Z,GACV,WAAAy/F,OACA,KACFj4H,KAAA,SACA+M,SAAA,WAAa,QAAAimb,UACX,CACAE,SAAU,8CACKD,cACF,MACU,CAEzBz6Z,GAAA,UACFy/F,OAAA,MACAj4H,KAAA,UACE+M,SAAM,mBACNimb,UAAU,CACV,sBAAQ,8CACIC,cACV,KACA,CAEFz6Z,GAAA,eAAay/F,OACX,MACFj4H,KAAA,eACA+M,SAAA,WAAiB,QACnBimb,UAAA,CACA8C,OAAA,8CAEE7C,cAAU,MACF,CACIz6Z,GACV,UACFy/F,OAAA,MACAj4H,KAAA,SAAa+M,SACX,WAAoB,QACtBimb,UAAA,CACAE,SAAA,6CACFI,OAAA,8CAEEL,cAAM,MACI,CAEVz6Z,GAAA,YAAYy/F,OACV,OAAAj4H,KACA,YACF+M,SAAA,SACAimb,UAAA,CACE8C,OAAA,8CAEF7C,cAAA,MAEF,CACEz6Z,GAAA,QACAy/F,OAAA,MACAj4H,KAAA,QACA+M,SAAA,YAAYimb,UACV,CACF,oEACaC,cACX,MACF,CAEFz6Z,GAAA,WACAy/F,OAAA,OACEj4H,KAAM,UACN+M,SAAU,mBACVimb,UAAQ,CACRkD,UAAY,8CACVjD,cACA,MACF,CACaz6Z,GACX,SACFy/F,OAAA,SACAj4H,KAAA,SACF+M,SAAA,mBACAimb,UAAA,CACEE,SAAM,6CACN,cAAU,6CACV,gBAAQ,6CACR,sBAAY,6CACVhqa,KAAA,6CACA,mEACFyqa,OAAA,+CACaV,cACX,MACF,CAEFz6Z,GAAA,WACAy/F,OAAA,MACEj4H,KAAM,WACN+M,SAAU,mBACVimb,UAAQ,GACRC,cAAY,MACV,CAEFz6Z,GAAA,SACAy/F,OAAA,MAAaj4H,KACX,SACF+M,SAAA,mBACAkmb,cAAA,KACFD,UAAA,CACAE,SAAA,6CACE4B,OAAM,eAEE,CACIt8Z,GACV,SACFy/F,OAAA,SACAj4H,KAAA,SAAa+M,SACX,WAAU,QACZkmb,cAAA,IACAD,UAAA,CACFE,SAAA,6CACAC,UAAA,6CACE,sBAAM,6CACN,eAAU,6CACV,sBAAQ,+CAEN,CAEF36Z,GAAA,UACAy/F,OAAA,MAAaj4H,KACX,kBAAuB+M,SACvB,WAAY,QAAAkmb,cACZ,KACFD,UAAA,CACAE,SAAA,6CACF,qEAEQ,CAEN16Z,GAAA,UACAy/F,OAAA,MAAYj4H,KACV,UAAA+M,SACA,mBACFkmb,cAAA,IACAD,UAAA,CACAW,OAAA,iDAEF,CAEEn7Z,GAAA,cACAy/F,OAAQ,MACRj4H,KAAA,MAAY+M,SACV,mBACFkmb,cAAA,EACAD,UAAA,CACEE,SAAA,+CAGJ,CACA16Z,GAAA,eACEx4B,KAAM,QACNi4H,OAAA,QACAg7T,cAAQ,KACRlmb,SAAA,WAAY,QAAAimb,UACV,IACA,CAEFx6Z,GAAA,eAAax4B,KACX,UAAYi4H,OACZ,MACFg7T,cAAA,KACAlmb,SAAA,WAAiB,QACnBimb,UAAA,IACA,CAEEx6Z,GAAA,eACAx4B,KAAA,MACAi4H,OAAA,MAAYg7T,cACV,KAAAlmb,SACA,mBACFimb,UAAA,IACa,CAEbx6Z,GAAA,UACAy/F,OAAA,IACFj4H,KAAA,UACA+M,SAAA,mBACEimb,UAAM,GACNC,cAAU,MACF,CACIz6Z,GACV,2BAAAx4B,KACA,4BACF+M,SAAA,mBACAkrH,OAAA,MAAag7T,cACC,IAAAD,UACZ,CACFE,SAAA,+CAGF,CACE16Z,GAAA,cACAx4B,KAAA,YACA+M,SAAQ,YACRkrH,OAAA,QAAYg7T,cACV,KAAAD,UACA,CACFE,SAAA,+CAEc,CAEd16Z,GAAA,OACFx4B,KAAA,SACA+M,SAAA,mBACEkrH,OAAM,OACNg7T,cAAU,KACVD,UAAQ,CACR,sBAAY,6CACVK,OAAA,6CACAH,SAAA,+CAEW,CACC16Z,GACZ,QAAUx4B,KACV,QAAa+M,SACb,WAAU,QACZkrH,OAAA,QACAg7T,cAAA,IACFD,UAAA,CACAE,SAAA,6CACE,kBAAM,6CACNC,UAAU,6CACV,sBAAQ,6CACR,gBACE,+DACA,2DACFG,OAAA,+CAEc,CAEd96Z,GAAA,UACFx4B,KAAA,UACA+M,SAAA,mBACEkrH,OAAM,OACNg7T,cAAU,KACVD,UAAQ,CACRE,SAAY,+CAEZ,CACa16Z,GACX,QACFx4B,KAAA,QACAi4H,OAAA,QACFg7T,cAAA,KACAlmb,SAAA,mBACEimb,UAAM,IACI,CAEVx6Z,GAAA,OAAYx4B,KACV,YACFi4H,OAAA,OACAg7T,cAAa,KAAAlmb,SACX,YACFimb,UAAA,CACA9pa,KAAA,+CAEF,CAEEsP,GAAA,kBACAx4B,KAAA,kBACA+M,SAAA,WAAY,QAAAkrH,OACV,QACFg7T,cAAA,KACAD,UAAA,CACEE,SAAU,6CACZ,4DACA,sBAAiB,6CACnBhqa,KAAA,6CACA,6DAEY,CAEVsP,GAAA,SAAYx4B,KACV,SACF+M,SAAA,mBACAkrH,OAAA,MAAag7T,cACC,KACdD,UAAA,IAEF,CACAx6Z,GAAA,UACEx4B,KAAM,QACN+M,SAAU,mBACVkrH,OAAQ,IACRg7T,cAAY,KAAAD,UACV,KAIYqF,GACZ,CAAe,CAEjB7/Z,GAAA,SACFx4B,KAAA,SACA+M,SAAA,mBACEurb,aAAM,SACNC,UAAU,UACF,CACI//Z,GACV,MACFx4B,KAAA,UACA+M,SAAA,WAAa,QAAAyrb,QACX,MAAYF,aACZ,MACFC,UAAA,OAEF,CACA//Z,GAAA,SACEx4B,KAAM,SACN+M,SAAU,mBACVwrb,UAAQ,SACRC,QAAA,WAAYF,aACV,eACA,CAEF9/Z,GAAA,cACAx4B,KAAA,UACF+M,SAAA,mBACAwrb,UAAA,QACEC,QAAM,IACNF,aAAU,iBACF,CACI9/Z,GACV,UAAAx4B,KACA,UACF+M,SAAA,mBACAurb,aAAa,UAAAC,UACX,OACF,CAEF//Z,GAAA,OACAx4B,KAAA,OACE+M,SAAM,mBACNurb,aAAU,OACVC,UAAQ,QACI,CAEZ//Z,GAAA,gBACAx4B,KAAA,gBAAa+M,SACX,WAAY,QACdyrb,QAAA,KACAF,aAAA,WACFC,UAAA,WACA,CAEE//Z,GAAA,QACAx4B,KAAA,QACA+M,SAAA,WAAY,QAAAyrb,QACV,GAAAF,aACA,QACFC,UAAA,SACa,CAEb//Z,GAAA,WACAx4B,KAAA,WACF+M,SAAA,SACAurb,aAAA,WACEC,UAAM,QACI,CAEV//Z,GAAA,OAAYx4B,KACV,OACF+M,SAAA,mBACAurb,aAAa,OAAAC,UACX,OACFC,QAAA,MAEF,CACAhga,GAAA,WACEx4B,KAAM,WACN+M,SAAU,mBACVyrb,QAAQ,UACRF,aAAY,OAAAC,UACV,YACF,CACa//Z,GACX,SAAax4B,KACb,SAAY+M,SACZ,mBACFwrb,UAAA,MACAC,QAAA,GACFF,aAAA,oBACA,CAEE9/Z,GAAA,WACAx4B,KAAA,WACA+M,SAAA,WAAY,QAAAwrb,UACV,WAAAC,QACA,EACFF,aAAA,YACa,CAEb9/Z,GAAA,WACAx4B,KAAA,WACF+M,SAAA,mBACAurb,aAAA,WACEC,UAAM,YACI,CAEV//Z,GAAA,OAAYx4B,KACV,OAAA+M,SACA,mBACFyrb,QAAA,KACAF,aAAa,OAAAC,UACX,QACF,CAEF//Z,GAAA,QACAx4B,KAAA,QACE+M,SAAM,mBACNyrb,QAAA,MACAF,aAAQ,WACRC,UAAA,SACE,CAEF//Z,GAAA,WACAx4B,KAAA,WACA+M,SAAA,WAAiB,QACnByrb,QAAA,IACAF,aAAA,WACEC,UAAM,YACI,CAEV//Z,GAAA,UAAYx4B,KACV,UAAA+M,SACA,mBACFyrb,QAAA,MACAF,aAAc,UACdC,UAAA,WAEF,CACE//Z,GAAA,SACAx4B,KAAA,SACA+M,SAAQ,mBACRurb,aAAY,SAAAC,UACV,UACF,CACa//Z,GACX,UACFx4B,KAAA,UACA+M,SAAA,WAAiB,QACnBurb,aAAA,UACAC,UAAA,WACQ,CAEN//Z,GAAA,QACAx4B,KAAA,QAAY+M,SACV,mBAAAwrb,UACA,MACFD,aAAA,QACAE,QAAA,KAEF,CACAhga,GAAA,UACEx4B,KAAM,UACN+M,SAAU,mBACVwrb,UAAQ,OACRD,aAAY,WACV,CAEF9/Z,GAAA,MACAx4B,KAAA,MAAa+M,SACX,WAAY,QACdurb,aAAA,iBACAC,UAAA,MACFC,QAAA,OACA,CAEEhga,GAAA,gBACAx4B,KAAA,gBACA+M,SAAA,WAAY,QAAAyrb,QACV,IAAAF,aACA,OACFC,UAAA,SACa,CACD//Z,GACV,YACFx4B,KAAA,kBACA+M,SAAA,WAAiB,QACnByrb,QAAA,MACAF,aAAA,cACEC,UAAM,aACI,CAEV//Z,GAAA,eAAYx4B,KACV,OACF+M,SAAA,YACAyrb,QAAA,QAAaF,aACC,OAAAC,UACZ,QACF,CAEF//Z,GAAA,YACAx4B,KAAA,YACE+M,SAAM,mBACNurb,aAAU,qBACVC,UAAQ,aACI,CAEZ//Z,GAAA,SACAx4B,KAAA,SAAa+M,SACX,WAAY,QAAAwrb,UACZ,SACFD,aAAA,UAEF,CACA9/Z,GAAA,QACEx4B,KAAM,QACN+M,SAAU,mBACVyrb,QAAQ,MACRF,aAAY,QAAAC,UACV,SACA,CAEF//Z,GAAA,WAAax4B,KACX,WAAY+M,SACJ,mBAAAyrb,QACR,KACFF,aAAA,WACAC,UAAA,YAEF,CACE//Z,GAAA,QACAx4B,KAAA,QACA+M,SAAQ,mBACRyrb,QAAA,IAAYF,aACV,QACFC,UAAA,SACa,CAEb//Z,GAAA,SACAx4B,KAAA,aACF+M,SAAA,mBACAwrb,UAAA,SACEC,QAAM,IACNF,aAAU,YACF,CACI9/Z,GACV,WAAAx4B,KACA,UACF+M,SAAA,mBACAwrb,UAAA,WAAaD,aACA,WACb,CAEF9/Z,GAAA,OACAx4B,KAAA,OACE+M,SAAM,mBACNurb,aAAU,eACVC,UAAQ,QACI,CAEZ//Z,GAAA,WACAx4B,KAAA,WAAa+M,SACX,WAAY,QACdurb,aAAA,WACAC,UAAA,OAEF,CACE//Z,GAAA,OACAx4B,KAAA,OACA+M,SAAQ,mBACRyrb,QAAA,KAAYF,aACV,OAAAC,UACA,QACF,CACa//Z,GACX,OACFx4B,KAAA,eACA+M,SAAA,WAAiB,QACnByrb,QAAA,IACAF,aAAA,WACEC,UAAM,QACI,CAEV//Z,GAAA,SAAYx4B,KACV,aAAA+M,SACA,mBACFwrb,UAAA,SACAD,aAAa,gBACC,CAEd9/Z,GAAA,OACFx4B,KAAA,OACA+M,SAAA,mBACEwrb,UAAM,OACNC,QAAA,MACAF,aAAQ,QACI,CACV9/Z,GACA,OACFx4B,KAAA,OACA+M,SAAA,WAAa,QAAAyrb,QACX,KACFF,aAAA,WACAC,UAAA,QAEF,CACE//Z,GAAA,sBACAx4B,KAAA,kBACA+M,SAAQ,mBACRwrb,UAAA,MAAYC,QACV,GACFF,aAAA,eACa,CACF9/Z,GACT,WAAYx4B,KACZ,WACF+M,SAAA,mBACAurb,aAAA,WACFC,UAAA,YACA,CAEE//Z,GAAA,SACAx4B,KAAA,SACA+M,SAAA,WAAY,QAAAyrb,QACV,IAAAF,aACA,SACFC,UAAA,UACa,CACC//Z,GACZ,YAAgBx4B,KAChB,YAAe+M,SACP,mBAAAwrb,UACR,OACFC,QAAA,MACAF,aAAA,eAEF,CACE9/Z,GAAA,sBACAx4B,KAAA,WACA+M,SAAQ,mBACRwrb,UAAA,WAAYC,QACV,GAAAF,aACA,YACF,CACa9/Z,GACX,SACFx4B,KAAA,SACA+M,SAAA,WAAiB,QACnBurb,aAAA,OACAC,UAAA,SACEC,QAAM,OACI,CAEVhga,GAAA,QAAYx4B,KACV,QACF+M,SAAA,mBACAurb,aAAa,QAAAC,UACX,SACQ,CAEV//Z,GAAA,MACAx4B,KAAA,MACF+M,SAAA,mBACAurb,aAAA,MACEC,UAAM,OACI,CAEV//Z,GAAA,SAAYx4B,KACV,SAAA+M,SACA,mBACFyrb,QAAA,MACAF,aAAa,SAAAC,UACX,UACF,CAEF//Z,GAAA,UACAx4B,KAAA,UACE+M,SAAM,mBACNurb,aAAU,MACVC,UAAQ,SACRC,QAAA,IACE,CAEFhga,GAAA,YAAax4B,KACX,YACF+M,SAAA,mBACAwrb,UAAA,YACFC,QAAA,MACAF,aAAA,OACQ,CAEN9/Z,GAAA,eACAx4B,KAAA,eAAY+M,SACV,mBAAAwrb,UACA,WACFC,QAAA,MACAF,aAAc,YAEhB,CACA9/Z,GAAA,MACEx4B,KAAM,aACN+M,SAAU,SACVwrb,UAAQ,MACRD,aAAY,UACV,CAEF9/Z,GAAA,aAAax4B,KACX,aACF+M,SAAA,mBACAurb,aAAA,SACFC,UAAA,UACA,CAEE//Z,GAAA,kBACAx4B,KAAA,kBACA+M,SAAA,WAAY,QAAAyrb,QACV,KAAAF,aACA,cACFC,UAAA,SACa,CACD//Z,GACV,YACFx4B,KAAA,YACA+M,SAAA,WAAiB,QACnBwrb,UAAA,YACAC,QAAA,KACEF,aAAM,aACI,CAEV9/Z,GAAA,cAAYx4B,KACV,cACF+M,SAAA,mBACAurb,aAAa,cAAAC,UACX,MACFC,QAAA,KAEF,CACAhga,GAAA,WACEx4B,KAAM,WACN+M,SAAU,mBACVurb,aAAQ,WACRC,UAAA,OACE,CAEF//Z,GAAA,QAAax4B,KACX,QACF+M,SAAA,mBACAurb,aAAA,QACFC,UAAA,QACAC,QAAA,KACQ,CAENhga,GAAA,SACAx4B,KAAA,eAAY+M,SACV,mBAAAyrb,QACA,IACFF,aAAA,OACAC,UAAA,QACY,CAEZ//Z,GAAA,gBACFx4B,KAAA,gBACA+M,SAAA,mBACEwrb,UAAM,gBACND,aAAU,OACVE,QAAQ,IACI,CACVhga,GACA,mBACFx4B,KAAA,mBACA+M,SAAA,WAAa,QAAAwrb,UACX,SACFC,QAAA,IACAF,aAAA,oBAEF,CACE9/Z,GAAA,OACAx4B,KAAA,OACA+M,SAAQ,mBACRurb,aAAY,OAAAC,UACV,OAAAC,QACA,WACF,CACahga,GACX,UACFx4B,KAAA,UACA+M,SAAA,WAAiB,QACnBwrb,UAAA,UACAD,aAAA,WACQ,CAEN9/Z,GAAA,YACAx4B,KAAA,aAAY+M,SACV,mBAAAyrb,QACA,IACFF,aAAA,aACa,CACC9/Z,GACZ,MACFx4B,KAAA,eACA+M,SAAA,WAAiB,QACnBwrb,UAAA,MACAD,aAAA,OACQ,CAEN9/Z,GAAA,WACAx4B,KAAA,WAAY+M,SACV,mBACFurb,aAAA,WACAC,UAAA,YACyB,CAEzB//Z,GAAA,QACFx4B,KAAA,QACA+M,SAAA,mBACEwrb,UAAM,QACNC,QAAA,KACAF,aAAQ,SACI,CAEZ9/Z,GAAA,SACAx4B,KAAA,SACA+M,SAAA,WAAiB,QACnBurb,aAAA,iBACAC,UAAA,UACQ,CAEN//Z,GAAA,UACAx4B,KAAA,kBAAY+M,SACV,mBAAAwrb,UACA,UACFC,QAAA,KACAF,aAAa,KACC,CAEd9/Z,GAAA,eACFx4B,KAAA,eACA+M,SAAA,mBACEurb,aAAM,eACNC,UAAU,QACF,CACI//Z,GACV,QAAAx4B,KACA,QACF+M,SAAA,mBACAurb,aAAa,MAAAC,UACX,OAAuBC,QACvB,MACF,CAEFhga,GAAA,WACAx4B,KAAA,WACE+M,SAAM,mBACNurb,aAAU,MACVC,UAAQ,WACRC,QAAA,MACE,CAEFhga,GAAA,QACAx4B,KAAA,QAAa+M,SACX,WAAc,QAChBurb,aAAA,QACAC,UAAA,QACFC,QAAA,IACA,CAEEhga,GAAA,aACAx4B,KAAA,aACA+M,SAAA,WAAY,QAAAwrb,UACV,QACA,CAEF//Z,GAAA,gBAAax4B,KACX,gBAAU+M,SACV,WAAY,QACdyrb,QAAA,MACAF,aAAA,WACFC,UAAA,iBACA,CAEE//Z,GAAA,eACAx4B,KAAA,eACA+M,SAAA,WAAY,QAAAyrb,QACV,GACFF,aAAA,cACAC,UAAA,UACc,CAEd//Z,GAAA,qBACFx4B,KAAA,qBACA+M,SAAA,mBACEwrb,UAAM,MACNC,QAAA,GACAF,aAAQ,gBACI,CAEZ9/Z,GAAA,UACAx4B,KAAA,UAAa+M,SACX,WAAY,QACdwrb,UAAA,UACAC,QAAA,KACFF,aAAA,iBACA,CAEE9/Z,GAAA,eACAx4B,KAAA,eACA+M,SAAA,WAAY,QAAAyrb,QACV,IAAAF,aACA,mBACFC,UAAA,UACa,CACY//Z,GACvB,UACFx4B,KAAA,+BACA+M,SAAA,WAAiB,QACnBwrb,UAAA,UACAC,QAAA,GACEF,aAAM,WACI,CAEV9/Z,GAAA,aAAYx4B,KACV,aAAA+M,SACA,mBACFwrb,UAAA,SACAC,QAAA,IAAaF,aACC,OACd,CAEF9/Z,GAAA,QACAx4B,KAAA,QACE+M,SAAM,mBACNwrb,UAAU,QACVC,QAAQ,IACRF,aAAY,QACV,CAEF9/Z,GAAA,mBACAx4B,KAAA,mBAAa+M,SACX,mBAAuByrb,QACvB,GACFF,aAAA,mBACAC,UAAA,eAEF,CACE//Z,GAAA,QACAx4B,KAAA,QACA+M,SAAQ,mBACRwrb,UAAA,QAAYC,QACV,GAAAF,aACA,OACF,CACa9/Z,GACX,UAAYx4B,KACZ,UACF+M,SAAA,mBACAyrb,QAAA,IACFF,aAAA,UACAC,UAAA,WACQ,CAEN//Z,GAAA,OACAx4B,KAAA,OAAY+M,SACV,mBAAAyrb,QACA,IACFF,aAAA,qBACAC,UAAA,QACyB,CAEzB//Z,GAAA,SACFx4B,KAAA,eACA+M,SAAA,mBACEwrb,UAAM,SACNC,QAAA,GACAF,aAAQ,OACI,CAEZ9/Z,GAAA,QACAx4B,KAAA,QAAa+M,SACX,WAAY,QACdyrb,QAAA,GACAF,aAAA,gBACFC,UAAA,SACA,CAEE//Z,GAAA,OACAx4B,KAAA,aACA+M,SAAA,WAAY,QAAAwrb,UACV,OAAAC,QACA,IACFF,aAAA,OACa,CAEb9/Z,GAAA,QACAx4B,KAAA,QACF+M,SAAA,mBACAyrb,QAAA,GACEF,aAAM,QACNC,UAAU,SACF,CACI//Z,GACV,QAAAx4B,KACA,QACF+M,SAAA,mBACAyrb,QAAA,IAAaF,aACX,QACFC,UAAA,SAEF,CACA//Z,GAAA,aACEx4B,KAAM,YACN+M,SAAU,mBACVwrb,UAAQ,OACRC,QAAA,GAAYF,aACV,aACA,CAEF9/Z,GAAA,SAAax4B,KACX,SACF+M,SAAA,mBACAyrb,QAAA,IACFF,aAAA,UACAC,UAAA,UACQ,CAEN//Z,GAAA,YACAx4B,KAAA,gBAAY+M,SACV,mBAAAyrb,QACA,GACFF,aAAA,YACAC,UAAA,aACc,CAEd//Z,GAAA,SACFx4B,KAAA,SACA+M,SAAA,mBACEwrb,UAAM,SACNC,QAAA,IACAF,aAAQ,OACI,CACV9/Z,GACA,cACFx4B,KAAA,cACA+M,SAAA,WAAa,QAAAwrb,UACX,UAAYC,QACZ,IACFF,aAAA,OAEF,CACA9/Z,GAAA,WACEx4B,KAAM,WACN+M,SAAU,mBACVyrb,QAAQ,GACRF,aAAY,WAAAC,UACV,MACA,CAEF//Z,GAAA,OAAax4B,KACX,OAAgB+M,SAChB,WAAY,QACdwrb,UAAA,OACAC,QAAA,KACFF,aAAA,QACA,CAEE9/Z,GAAA,MACAx4B,KAAA,UACA+M,SAAA,WAAY,QAAAwrb,UACV,MAAAC,QACA,GACFF,aAAA,OACa,CAEb9/Z,GAAA,QACAx4B,KAAA,QACF+M,SAAA,mBACAyrb,QAAA,IACEF,aAAM,cACNC,UAAU,SACF,CACI//Z,GACV,cACFx4B,KAAA,cACA+M,SAAA,WAAa,QAAAyrb,QACX,IAAYF,aACZ,gBAAaC,UACb,WACgB,CAElB//Z,GAAA,OACFx4B,KAAA,OACA+M,SAAA,mBACEwrb,UAAM,OACNC,QAAA,EACAF,aAAQ,OACI,CACV9/Z,GACA,SACFx4B,KAAA,SACA+M,SAAA,WAAa,QAAAyrb,QACX,KACFF,aAAA,SACAC,UAAA,UAEF,CACE//Z,GAAA,QACAx4B,KAAA,QACA+M,SAAQ,mBACRwrb,UAAA,QAAYC,QACV,IAAAF,aACA,SACF,CACa9/Z,GACX,YACFx4B,KAAA,UACA+M,SAAA,WAAiB,QACnByrb,QAAA,GACAF,aAAA,YACEC,UAAM,WACI,CAEV//Z,GAAA,MAAYx4B,KACV,cAAA+M,SACA,mBACFwrb,UAAA,MACAC,QAAA,GAAaF,aACD,OACZ,CAEF9/Z,GAAA,MACAx4B,KAAA,MACE+M,SAAM,mBACNwrb,UAAU,MACVC,QAAQ,GACRF,aAAY,OACV,CAEF9/Z,GAAA,UACAx4B,KAAA,UAAa+M,SACX,WAAY,QACdwrb,UAAA,UACAC,QAAA,IACFF,aAAA,OACA,CAEE9/Z,GAAA,YACAx4B,KAAA,YACA+M,SAAA,YAAYyrb,QACV,IAAAF,aACA,YACFC,UAAA,aACa,CACC//Z,GACZ,YACFx4B,KAAA,kBACA+M,SAAA,WAAiB,QACnBwrb,UAAA,SACAC,QAAA,KACEF,aAAM,QACI,CAEV9/Z,GAAA,eAAYx4B,KACV,eAAA+M,SACA,mBACFwrb,UAAA,YACAC,QAAA,KAAaF,aACX,SACuB,CAEzB9/Z,GAAA,eACFx4B,KAAA,eACA+M,SAAA,mBACEwrb,UAAM,YACNC,QAAA,KACAF,aAAQ,QACI,CACV9/Z,GACA,OACFx4B,KAAA,OACA+M,SAAA,WAAa,QAAAwrb,UACX,OAAYC,QACZ,KAAQF,aACE,OACZ,CAEF9/Z,GAAA,QACAx4B,KAAA,QACE+M,SAAM,mBACNyrb,QAAA,KACAF,aAAQ,6CACRC,UAAA,SACE,CAEF//Z,GAAA,YAAax4B,KACX,YAAuB+M,SACvB,WAAiB,QAAAyrb,QACjB,KACFF,aAAA,YACAC,UAAA,UAEF,CACE//Z,GAAA,SACAx4B,KAAA,SACA+M,SAAQ,mBACRyrb,QAAA,IAAYF,aACV,SACFC,UAAA,UACa,CACY//Z,GACvB,SACFx4B,KAAA,SACA+M,SAAA,WAAiB,QACnBwrb,UAAA,SACAC,QAAA,KACEF,aAAM,UACI,CAEV9/Z,GAAA,YAAYx4B,KACV,YAAA+M,SACA,YACFwrb,UAAA,OACAC,QAAA,KAAaF,aACC,QACd,CAEF9/Z,GAAA,kBACAx4B,KAAA,kBACE+M,SAAM,mBACNwrb,UAAU,SACVC,QAAQ,KACRF,aAAY,QACV,CAEF9/Z,GAAA,SACAx4B,KAAA,SAAa+M,SACX,WAAY,QAAAwrb,UACZ,SAAgBD,aAChB,OACF,CAEF9/Z,GAAA,OACAx4B,KAAA,aACE+M,SAAM,mBACNwrb,UAAU,OACVC,QAAQ,IACRF,aAAY,QACV,CAEF9/Z,GAAA,aAAax4B,KACX,aAAY+M,SACZ,WAAmB,QAAAwrb,UACnB,OAAgBC,QAChB,IAAaF,aACb,QACuB,CAEzB9/Z,GAAA,MACAx4B,KAAA,MACF+M,SAAA,mBACAwrb,UAAA,MACEC,QAAM,MACNF,aAAU,OACF,CACI9/Z,GACV,aAAAx4B,KACA,OACF+M,SAAA,mBACAwrb,UAAA,OAAaC,QACX,KAAYF,aACZ,QACe,CAEjB9/Z,GAAA,UACFx4B,KAAA,UACA+M,SAAA,mBACEwrb,UAAM,UACND,aAAU,OACF,CACI9/Z,GACV,SAAAx4B,KACA,SACF+M,SAAA,mBACAwrb,UAAA,SAAaC,QACX,IACFF,aAAA,UAEF,CACA9/Z,GAAA,UACEx4B,KAAM,UACN+M,SAAU,mBACVwrb,UAAQ,UACRC,QAAA,KAAYF,aACV,OACA,CAEF9/Z,GAAA,QAAax4B,KACX,QAAY+M,SACJ,mBAAAwrb,UACR,QACFC,QAAA,IACAF,aAAA,OAEF,CACE9/Z,GAAA,MACAx4B,KAAA,eACA+M,SAAQ,mBACRwrb,UAAA,MAAYC,QACV,MACFF,aAAA,OACa,CACC9/Z,GACZ,YAAYx4B,KACZ,YAAU+M,SACV,mBAAuBwrb,UACvB,YAAgBC,QAChB,KAAeF,aACf,YACF,CAEF9/Z,GAAA,OACAx4B,KAAA,OACE+M,SAAM,mBACNwrb,UAAU,OACVC,QAAQ,KACRF,aAAY,QACV,CAEF9/Z,GAAA,QACAx4B,KAAA,QAAa+M,SACX,WAAY,QAAAwrb,UACZ,QACFC,QAAA,IACAF,aAAA,OAEF,CACE9/Z,GAAA,UACAx4B,KAAA,UACA+M,SAAQ,mBACRwrb,UAAA,UAAYD,aACV,MACA,CAEF9/Z,GAAA,UAAax4B,KACX,UACF+M,SAAA,mBACAwrb,UAAA,UACFC,QAAA,QACAF,aAAA,OACQ,CAEN9/Z,GAAA,UACAx4B,KAAA,cAAY+M,SACV,mBAAAwrb,UACA,MACFC,QAAA,QACAF,aAAa,OACC,CAEd9/Z,GAAA,UACFx4B,KAAA,aACA+M,SAAA,mBACEwrb,UAAM,UACNC,QAAA,MACAF,aAAQ,OACI,CACV9/Z,GACA,UACFx4B,KAAA,UACA+M,SAAA,WAAa,QAAAwrb,UACX,UACFC,QAAA,IACAF,aAAA,OAEF,CACE9/Z,GAAA,WACAx4B,KAAA,WACA+M,SAAQ,mBACRwrb,UAAA,WAAYC,QACV,MACA,CAEFhga,GAAA,WAAax4B,KACX,WAAY+M,SACZ,WAAa,QAAAwrb,UACb,MAAuBC,QACvB,IAAgBF,aACN,OACK,CAEjB9/Z,GAAA,QACAx4B,KAAA,cACF+M,SAAA,YACAwrb,UAAA,QACEC,QAAM,KACNF,aAAU,OACF,CACI9/Z,GACV,kBAAAx4B,KACA,iBACF+M,SAAA,mBACAwrb,UAAA,iBAAaC,QACX,MACY,CAEdhga,GAAA,QACFx4B,KAAA,QACA+M,SAAA,mBACEwrb,UAAM,QACNC,QAAA,MACAF,aAAQ,SACI,CAEZ9/Z,GAAA,QACAx4B,KAAA,QAAa+M,SACX,WAAY,QACdwrb,UAAA,QACAC,QAAA,GACFF,aAAA,SACA,CAEE9/Z,GAAA,WACAx4B,KAAA,mBACA+M,SAAA,WAAY,QAAAwrb,UACV,WAAAC,QACA,KACFF,aAAA,SACa,CAEb9/Z,GAAA,OACAx4B,KAAA,OACF+M,SAAA,mBACAwrb,UAAA,QACQ,CAEN//Z,GAAA,QACAx4B,KAAA,cAAY+M,SACV,mBAAAwrb,UACA,QACFC,QAAA,IACAF,aAAa,OACC,CAEd9/Z,GAAA,UACAx4B,KAAA,UACF+M,SAAA,mBACAwrb,UAAA,UACEC,QAAM,KACNF,aAAU,OACF,CACI9/Z,GACV,OAAAx4B,KACA,OACF+M,SAAA,mBACAwrb,UAAA,OAAaC,QACX,KACFF,aAAA,OAEF,CACA9/Z,GAAA,SACEx4B,KAAM,eACN+M,SAAU,mBACVwrb,UAAQ,UACI,CACV//Z,GACA,OACFx4B,KAAA,OACA+M,SAAA,WAAc,QACdwrb,UAAA,OACFC,QAAA,QACA,CAEEhga,GAAA,QACAx4B,KAAA,QACA+M,SAAA,WAAY,QAAAwrb,UACV,QAAAC,QACA,YACF,CAEAhga,GAAA,QACFx4B,KAAA,QACA+M,SAAA,mBACEwrb,UAAM,QACNC,QAAA,IACAF,aAAQ,WACI,CAEZ9/Z,GAAA,aACAx4B,KAAA,aACA+M,SAAA,WAAiB,QACnBwrb,UAAA,aACAC,QAAA,OACQ,CAENhga,GAAA,QACAx4B,KAAA,QAAY+M,SACV,mBACFwrb,UAAA,QACAC,QAAA,MACc,CAEdhga,GAAA,MACFx4B,KAAA,MACA+M,SAAA,mBACEwrb,UAAM,MACND,aAAU,OACF,CACI9/Z,GACV,MAAAx4B,KACA,MACF+M,SAAA,mBACAwrb,UAAA,MAAaC,QACX,QAKFC,GAAM,EAENjga,GAAA,WACAx4B,KAAA,WAAY+M,SACV,aACA,CAEFyrB,GAAA,QAAax4B,KACX,QAAa+M,SACb,oBACgB,CAElByrB,GAAA,SACFx4B,KAAA,WACA+M,SAAA,oBACQ,CAENyrB,GAAA,WACAx4B,KAAA,WAAY+M,SACV,oBACF,CACayrB,GACX,SACFx4B,KAAA,SACA+M,SAAA,WAAiB,SAEnB,CACEyrB,GAAA,WACAx4B,KAAA,kBACA+M,SAAQ,aACI,CACVyrB,GACA,UACFx4B,KAAA,UACA+M,SAAA,WAAa,SACC,CACWyrB,GACvB,UACFx4B,KAAA,UACA+M,SAAA,WAAiB,SAEnB,CACEyrB,GAAA,SACAx4B,KAAA,gBACA+M,SAAQ,oBACI,CACVyrB,GACA,MACFx4B,KAAA,eACA+M,SAAA,WAAa,SACC,CACOyrB,GACnB,UACFx4B,KAAA,iBACA+M,SAAA,WAAiB,SAEnB,CACEyrB,GAAA,MACAx4B,KAAA,aACA+M,SAAQ,oBACI,CACVyrB,GACA,UACFx4B,KAAA,UACA+M,SAAA,WAAa,SACC,CAEdyrB,GAAA,SACFx4B,KAAA,SACA+M,SAAA,oBACQ,CAENyrB,GAAA,QACAx4B,KAAA,QAAY+M,SACV,oBACA,CAEFyrB,GAAA,UAAax4B,KACX,UACF+M,SAAA,oBAEF,CACAyrB,GAAA,OACEx4B,KAAM,cACN+M,SAAU,oBACF,CACIyrB,GACV,SAAAx4B,KACA,SACF+M,SAAA,oBACc,CAEhByrB,GAAA,OACAx4B,KAAA,OACE+M,SAAM,oBACI,CAEVyrB,GAAA,eAAYx4B,KACV,eAAA+M,SACA,oBACF,CACayrB,GACX,SACFx4B,KAAA,SACA+M,SAAA,WAAiB,SAEnB,CACEyrB,GAAA,UACAx4B,KAAA,UACA+M,SAAQ,oBACI,CACVyrB,GACA,QACFx4B,KAAA,QACA+M,SAAA,WAAa,SACC,CAEdyrB,GAAA,iBACFx4B,KAAA,iBACA+M,SAAA,oBACQ,CAENyrB,GAAA,QACAx4B,KAAA,QAAY+M,SACV,oBACA,CAEFyrB,GAAA,SAAax4B,KACX,SACF+M,SAAA,oBAEF,CACAyrB,GAAA,SACEx4B,KAAM,SACN+M,SAAU,UACF,CACIyrB,GACV,eAAAx4B,KACA,eACF+M,SAAA,oBACa,CACFyrB,GACT,kBAAUx4B,KACV,gBACF+M,SAAA,oBAEF,CACAyrB,GAAA,SACEx4B,KAAM,SACN+M,SAAU,oBACF,CACIyrB,GACV,QAAAx4B,KACA,QACF+M,SAAA,oBACa,CACAyrB,GACX,SACFx4B,KAAA,SACA+M,SAAA,WAAiB,SAEnB,CACEyrB,GAAA,WACAx4B,KAAA,WACA+M,SAAQ,oBACI,CACVyrB,GACA,SACFx4B,KAAA,SACA+M,SAAA,WAAa,SACA,CAEbyrB,GAAA,eACFx4B,KAAA,QACA+M,SAAA,oBACQ,CAENyrB,GAAA,WACAx4B,KAAA,UAAY+M,SACV,oBACA,CAEFyrB,GAAA,QAAax4B,KACX,QACF+M,SAAA,oBAEF,CACAyrB,GAAA,QACEx4B,KAAM,QACN+M,SAAU,qBCruqBD2rb,GAAe/wb,GACnBA,EACJvI,MAAM,KACNhB,KAAI,CAACyiE,EAAMnoE,IACI,IAAVA,EACKmoE,EAAKh7D,cAEPg7D,EAAK59C,OAAO,GAAGpd,cAAgBg7D,EAAK9nE,MAAM,KAElD4C,KAAK,KAoCGg9b,GAAgBhxb,IACbA,EAAIpJ,MAAM,gBAAkB,IAEvCH,KACEquM,GAASA,EAAKxpL,OAAO,GAAG2R,cAAgB63K,EAAKtpL,UAAU,GAAGtd,gBAE5DlK,KAAK,IC7CGi9b,GAAyC,CACtDC,mBAAoBA,IAAM,iCAC1BC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,iCACtBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,gBAAiBA,IAAM,iCACvBC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,+BACrBC,cAAeA,IAAM,iCACrBC,aAAcA,IAAM,iCACpBC,iBAAkBA,IAAM,iCACxBC,aAAcA,IAAM,iCACpBC,YAAaA,IAAM,iCACnBC,eAAgBA,IAAM,iCACtBC,aAAcA,IAAM,iCACpBC,iBAAkBA,IAAM,iCACxBC,gBAAiBA,IAAM,iCACvBC,mBAAoBA,IAAM,iCAC1BC,aAAcA,IAAM,iCACpBC,gBAAiBA,IAAM,+BACvBC,aAAcA,IAAM,iCACpBC,gBAAiBA,IAAM,iCACvBC,uBAAwBA,IAAM,iCAC9BC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,+BACrBC,aAAcA,IAAM,iCACpBC,cAAeA,IAAM,iCACrBC,aAAcA,IAAM,+BACpBC,iBAAkBA,IAAM,iCACxBC,cAAeA,IAAM,iCACrBC,cAAeA,IAAM,iCACrBC,eAAgBA,IAAM,iCACtBC,kBAAmBA,IAAM,iCACzBC,oBAAqBA,IAAM,iCAC3BC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,+BACrBC,aAAcA,IAAM,+BACpBC,gBAAiBA,IAAM,iCACvBC,eAAgBA,IAAM,iCACtBC,aAAcA,IAAM,iCACpBC,iBAAkBA,IAAM,iCACxBC,eAAgBA,IAAM,iCACtBC,cAAeA,IAAM,+BACrBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,iCACrBC,iBAAkBA,IAAM,iCACxBC,cAAeA,IAAM,iCACrBC,oBAAqBA,IAAM,iCAC3BC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,iBAAkBA,IAAM,iCACxBC,aAAcA,IAAM,iCACpBC,iBAAkBA,IAAM,iCACxBC,eAAgBA,IAAM,iCACtBC,eAAgBA,IAAM,iCACtBC,iBAAkBA,IAAM,iCACxBC,mBAAoBA,IAAM,iCAC1BC,qBAAsBA,IAAM,iCAC5BC,aAAcA,IAAM,iCACpBC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,+BACtBC,gBAAiBA,IAAM,iCACvBC,cAAeA,IAAM,iCACrBC,gBAAiBA,IAAM,+BACvBC,cAAeA,IAAM,iCACrBC,iBAAkBA,IAAM,+BACxBC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,iCACrBC,iBAAkBA,IAAM,iCACxBC,aAAcA,IAAM,iCACpBC,iBAAkBA,IAAM,iCACxBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,aAAcA,IAAM,iCACpBC,cAAeA,IAAM,iCACrBC,eAAgBA,IAAM,iCACtBC,YAAaA,IAAM,iCACnBC,eAAgBA,IAAM,iCACtBC,cAAeA,IAAM,iCACrBC,WAAYA,IAAM,iCAClBC,aAAcA,IAAM,iCACpBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,cAAeA,IAAM,iCACrBC,YAAaA,IAAM,iCACnBC,gBAAiBA,IAAM,iCACvBC,eAAgBA,IAAM,iCACtBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,wBAAyBA,IAAM,iCAC/BC,kBAAmBA,IAAM,iCACzBC,cAAeA,IAAM,iCACrBC,yBAA0BA,IAAM,iCAChCC,gBAAiBA,IAAM,iCACvBC,kBAAmBA,IAAM,iCACzBC,mBAAoBA,IAAM,iCAC1BC,oBAAqBA,IAAM,iCAC3BC,gBAAiBA,IAAM,iCACvBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,iCACtBC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,iCACtBC,WAAYA,IAAM,iCAClBC,gBAAiBA,IAAM,iCACvBC,eAAgBA,IAAM,iCACtBC,iBAAkBA,IAAM,iCACxBC,gBAAiBA,IAAM,iCACvBC,sBAAuBA,IAAM,iCAC7BC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,iCACrBC,WAAYA,IAAM,iCAClBC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,iCACtBC,WAAYA,IAAM,iCAClBC,uBAAwBA,IAAM,iCAC9BC,mBAAoBA,IAAM,iCAC1BC,iBAAkBA,IAAM,iCACxBC,iBAAkBA,IAAM,iCACxBC,eAAgBA,IAAM,iCACtBC,cAAeA,IAAM,iCACrBC,cAAeA,IAAM,iCACrBC,kBAAmBA,IAAM,iCACzBC,gBAAiBA,IAAM,iCACvBC,aAAcA,IAAM,iCACpBC,oBAAqBA,IAAM,iCAC3BC,mBAAoBA,IAAM,iCAC1BC,iBAAkBA,IAAM,iCACxBC,WAAYA,IAAM,iCAClBC,aAAcA,IAAM,iCACpBC,YAAaA,IAAM,iCACnBC,eAAgBA,IAAM,iCACtBC,eAAgBA,IAAM,+BACtBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,+BACpBC,WAAYA,IAAM,iCAClBC,sBAAuBA,IAAM,iCAC7BC,eAAgBA,IAAM,iCACtBC,YAAaA,IAAM,iCACnBC,gBAAiBA,IAAM,iCACvBC,cAAeA,IAAM,iCACrBC,gBAAiBA,IAAM,iCACvBC,aAAcA,IAAM,iCACpBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,mBAAoBA,IAAM,iCAC1BC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,kCAGPC,GAAwC,CACrDC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,+BACpBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,gCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,6BAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,OAAQA,IAAM,iCACdC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,+BACpBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,cAAeA,IAAM,iCACrBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,eAAgBA,IAAM,iCACtBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,iCACpBC,UAAWA,IAAM,iCACjBC,OAAQA,IAAM,iCACdC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,+BACnBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,+BACfC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,+BAChBC,aAAcA,IAAM,iCACpBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,6BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,OAAQA,IAAM,iCACdC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,+BAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,+BACfC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,OAAQA,IAAM,iCACdC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,6BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,6BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,OAAQA,IAAM,+BACdC,cAAeA,IAAM,+BACrBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,+BACjBC,QAASA,IAAM,+BACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,+BACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,cAAeA,IAAM,iCACrBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,6BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,6BACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,+BACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,+BACjBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,+BACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,iCACpBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,aAAcA,IAAM,iCACpBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,+BACpBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,gCACjBC,QAASA,IAAM,iCACfC,iBAAkBA,IAAM,iCACxBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,+BAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,+BAChBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,aAAcA,IAAM,+BACpBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,eAAgBA,IAAM,iCACtBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,iCACpBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,WAAYA,IAAM,+BAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,gCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,6BAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,+BACpBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,6BAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,+BACnBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,+BACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,+BACrBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,6BAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,iCACpBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,6BAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,6BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,aAAcA,IAAM,iCACpBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,6BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,6BACjBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,6BAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,gBAAiBA,IAAM,iCACvBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,6BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,QAASA,IAAM,iCACfC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,6BACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,6BACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,iCACpBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,+BACnBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,cAAeA,IAAM,iCACrBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,6BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,eAAgBA,IAAM,iCACtBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,QAASA,IAAM,+BACfC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,aAAcA,IAAM,+BACpBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,+BACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,YAAaA,IAAM,iCACnBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,+BAClBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,+BAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,iBAAkBA,IAAM,iCACxBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,+BACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,+BACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,gBAAiBA,IAAM,iCACvBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,+BAChBC,UAAWA,IAAM,6BACjBC,UAAWA,IAAM,iCACjBC,WAAYA,IAAM,iCAClBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,+BACjBC,QAASA,IAAM,iCACfC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,iCAChBC,UAAWA,IAAM,iCACjBC,SAAUA,IAAM,iCAChBC,SAAUA,IAAM,kCAGHC,GAAyC,CACtDC,oBAAqBA,IAAM,iCAC3BC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,iCACtBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,kBAAmBA,IAAM,iCACzBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,WAAYA,IAAM,iCAClBC,aAAcA,IAAM,iCACpBC,cAAeA,IAAM,iCACrBC,cAAeA,IAAM,iCACrBC,aAAcA,IAAM,iCACpBC,eAAgBA,IAAM,iCACtBC,eAAgBA,IAAM,iCACtBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,YAAaA,IAAM,iCACnBC,cAAeA,IAAM,iCACrBC,YAAaA,IAAM,iCACnBC,oBAAqBA,IAAM,iCAC3BC,UAAWA,IAAM,iCACjBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,iCACpBC,cAAeA,IAAM,iCACrBC,kBAAmBA,IAAM,iCACzBC,aAAcA,IAAM,iCACpBC,cAAeA,IAAM,iCACrBC,UAAWA,IAAM,iCACjBC,aAAcA,IAAM,6BACpBC,aAAcA,IAAM,iCACpBC,cAAeA,IAAM,iCACrBC,eAAgBA,IAAM,iCACtBC,cAAeA,IAAM,iCACrBC,YAAaA,IAAM,iCACnBC,aAAcA,IAAM,kCC7hEPC,IAAc17f,EAAAA,EAAAA,aACzB,CAAAk9T,EAEEj9T,KACwB,IAFxB,KAAE/D,EAAA,MAAMqU,EAAA,UAAO/I,EAAA,QAAWsf,EAAA,SAASgP,EAAA,SAAU0zB,EAAA,KAAUzwD,GAAKmkU,EAG5D,MAAOy+L,EAAeC,IAAoB7vU,EAAAA,EAAAA,UACxC,MAsFF,OAnFAN,EAAAA,EAAAA,YAAU,KACS/uG,WACf,IAAIm/a,EACJ,IAAKryc,EACH,OAAK1zB,OACL8le,GACEzwf,EAAAA,GAAAA,KAACskT,GAAAA,EAAA,CACCxvT,MACA/D,OACAqU,QACA/I,YACAsuB,cAPkB,KAaxB,OAAQ/8B,GACN,IAAK,QACH8igB,EACEp6D,GACE,QAASj4Y,EAA4B4tE,OAAOrjG,iBAEhD,MACF,IAAK,UACH8ne,EACE9jE,GACE,UAAUD,GAAatuY,EAASrqD,UAElC44b,GAAwB,UAAUD,GAAatuY,EAAS7xB,OAC1D,MACF,IAAK,SACHkke,EACE1C,GAAuB,SAASrhE,GAAatuY,EAASrqD,UACtDg6f,GAAuB,SAASrhE,GAAatuY,EAAS7xB,OACxD,MACF,QACE,MAAM,IAAI1xB,MAAM,gBAAgBlN,KAGpC,GAAI8igB,EACF,IACE,MAAQ3wf,QAAS4wf,SAAuBD,IACxCD,GACEzwf,EAAAA,GAAAA,KAAC2wf,EAAA,CACC77f,MACA/D,OACAqU,QACA/I,YACAsf,YAGN,CAAE,MAAOvX,GACHumB,GACF8le,GACEzwf,EAAAA,GAAAA,KAACskT,GAAAA,EAAA,CACCxvT,MACA/D,OACAqU,QACA/I,YACAsuB,aAIR,MAEIA,GACF8le,GACEzwf,EAAAA,GAAAA,KAACskT,GAAAA,EAAA,CACCxvT,MACA/D,OACAqU,QACA/I,YACAsuB,aAIR,EAGFime,EAAU,GACT,CAAC97f,EAAK/D,EAAMqU,EAAO/I,EAAWsf,EAASgP,IAEnC6le,CAAA,ICzHEK,IAAYC,EAAAA,EAAAA,aACvB,CAAAx+L,EAWEx9T,KACG,IAXH,OACEm3H,EAAA,KACAl7H,EAAA,UACAsL,EAAA,QACAsf,EAAU,aACVvW,EAAA,QACA2rf,EAAA,QACAC,EAAA,SACArme,GACF2nS,EAGA,MAAMj0Q,ECNe99C,KAQS,IARR,OACxB0rH,EAAA,QACA8kY,EAAA,QACAC,GACFzwf,EAKE,OAAI0rH,EACKzW,GAAO4F,MACX/sH,GAAUA,EAAM49H,OAAOpyH,gBAAkBoyH,EAAOpyH,gBAE1Ck3f,GAAWC,EACbx7Y,GAAO4F,MACX/sH,GACCA,EAAM24b,UAAUgqE,IAAUn3f,gBAAkBk3f,EAAQl3f,qBAHnD,CAMA,EDbYo3f,CAAUhlY,EAAS,CAAEA,UAAW,CAAE8kY,UAASC,YAC5D,OACEE,EAAAA,GAAAA,KAACX,GAAA,CACC3igB,KAAK,QACLywD,WACAhiD,YACA+I,QACAulB,WACA71B,MACA/D,OACA4qB,WACF,IAKNk1e,GAAU/gf,YAAc,aE9BGqhf,EAAAA,EAAAA,aACzB,CAAAr+L,EAEEh+T,KACG,IAFH,QAAEk8f,EAAA,QAASxkE,EAAA,KAASz7b,EAAA,UAAMsL,EAAA,QAAWsf,EAAU,aAAQvW,EAAA,SAAOulB,GAASmoS,EAGvE,MAAMz0Q,EDyBiBhkC,KAMS,IANR,QAC1B22e,EAAA,QACAxkE,GACFnya,EAIE,GAAI22e,EAOF,OANmB3kE,GAASjxU,MACzBg2Y,GACCA,EAAI5ke,GAAG3yB,gBAAkB6yb,GAAYskE,IACrCI,EAAIp9f,KAAK6F,gBAAkBm3f,EAAQn3f,eACnCu3f,EAAI7kE,WAAW1yb,gBAAkBm3f,EAAQn3f,gBAK/C,GAAI2yb,EAEF,OADmBH,GAASjxU,MAAMg2Y,GAAQA,EAAI5kE,UAAYA,GAIrD,EC/CY6kE,CAAYL,EAAU,CAAEA,WAAY,CAAExkE,YACvD,OACE8kE,EAAAA,GAAAA,KAACf,GAAA,CACC3igB,KAAK,UACLywD,WACAttD,OACAsL,YACAsf,UACAvW,QACAtQ,MACA61B,YACF,IAKM7a,YAAc,cCrBnB,IAAMyhf,IAAaC,EAAAA,EAAAA,aACxB,CAAAx9L,EAAmEl/T,KAAQ,IAA1E,GAAE03B,EAAA,KAAIx4B,EAAA,KAAMjD,EAAA,UAAMsL,EAAA,QAAWsf,EAAU,aAAQvW,EAAA,SAAOulB,GAASqpS,EAC9D,MAAM31Q,EFPgBl5C,KAIS,IAJR,OACzBssf,GACFtsf,EAGE,MAAMusf,EAAYjlE,GAAQrxU,MACvB9jF,GACCA,EAAE9K,GAAG3yB,gBAAkB6yb,GAAY+kE,IACnCn6d,EAAEtjC,KAAK6F,gBAAkB43f,EAAO53f,gBAEpC,OAAO63f,CAAA,EEHYC,CAAW,CAAEF,OAAQjle,GAAMx4B,IAE5C,OACE49f,EAAAA,GAAAA,KAACrB,GAAA,CACClyc,WACAzwD,KAAK,SACLmD,OACAsL,YACAsf,UACAvW,QACAtQ,MACA61B,YACF,IAKN4me,GAAWzhf,YAAc,u7FClCZ+hf,GAAa,CACxB,CACEl9e,MAAO,WACP7R,KAAM,YAER,CACE6R,MAAO,iBACP7R,KAAM,kBAER,CACE6R,MAAO,eACP7R,KAAM,SAER,CACE6R,MAAO,UACP7R,KAAM,WAER,CACE6R,MAAO,WACP7R,KAAM,mBAER,CACE6R,MAAO,QACP7R,KAAM,SAER,CACE6R,MAAO,WACP7R,KAAM,UAER,CACE6R,MAAO,WACP7R,KAAM,YAER,CACE6R,MAAO,SACP7R,KAAM,UAGR,CACE6R,MAAO,UACP7R,KAAM,WAER,CACE6R,MAAO,UACP7R,KAAM,WAER,CACE6R,MAAO,SACP7R,KAAM,iBAER,CACE6R,MAAO,WACP7R,KAAM,UAER,CACE6R,MAAO,MACP7R,KAAM,gBAER,CACE6R,MAAO,UACP7R,KAAM,kBAER,CACE6R,MAAO,MACP7R,KAAM,cAGR,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,QACP7R,KAAM,SAER,CACE6R,MAAO,UACP7R,KAAM,WAER,CACE6R,MAAO,OACP7R,KAAM,eAER,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,OACP7R,KAAM,QAER,CACE6R,MAAO,eACP7R,KAAM,gBAER,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,UACP7R,KAAM,WAER,CACE6R,MAAO,QACP7R,KAAM,SAER,CACE6R,MAAO,QACP7R,KAAM,SAER,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,eACP7R,KAAM,gBAER,CACE6R,MAAO,kBACP7R,KAAM,iBAER,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,QACP7R,KAAM,SAER,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,WACP7R,KAAM,YAER,CACE6R,MAAO,SACP7R,KAAM,UAER,CACE6R,MAAO,WACP7R,KAAM,WAER,CACE6R,MAAO,QACP7R,KAAM,SAER,CACE6R,MAAO,QACP7R,KAAM,0BCvJH,SAASgvf,GAAgCnlf,GAC9C,OAAOC,EAAAA,GAAAA,IAAqB,sBAAuBD,EACrD,EACgCE,EAAAA,GAAAA,GAAuB,sBAAuB,CAAC,OAAQ,cAAe,gBAAiB,eAAgB,iBAAkB,MAAO,SAAU,oBAAqB,sBAAuB,wBAAtN,MCDMrL,GAAY,CAAC,YAAa,QAAS,gBAAiB,OAAQ,QAAS,YAAa,QAAS,WACjG,IACEi9Z,GACAszF,GACAC,GACAC,GAJEprd,GAAI/rB,GAAKA,EAgBb,MAAMo3e,GAAO,GACPC,IAAyBl8f,EAAAA,GAAAA,IAAUwoa,KAAOA,GAAK53X,EAAC;;;;;;;;IAShDurd,IAAuBn8f,EAAAA,GAAAA,IAAU87f,KAAQA,GAAMlrd,EAAC;;;;;;;;;;;;;;;IA8BhDwrd,IAAuBtlf,EAAAA,GAAAA,IAAO,OAAQ,CAC1C/Y,KAAM,sBACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAOmZ,EAAW0O,SAAU7nB,EAAO,SAAQoZ,EAAAA,GAAAA,GAAWD,EAAW7H,UAAU,GAPvE2H,EAS1B5H,IAAA,IAAC,WACF8H,EAAU,MACVxM,GACD0E,EAAA,OAAKK,EAAAA,GAAAA,GAAS,CACb0I,QAAS,gBACe,gBAAvBjB,EAAW0O,SAA6B,CACzCtN,WAAY5N,EAAMgK,YAAYrW,OAAO,cACf,YAArB6Y,EAAW7H,OAAuB,CACnCA,OAAQ3E,EAAMmK,MAAQnK,GAAOkD,QAAQsJ,EAAW7H,OAAO5B,MACvD,IAAEjD,IAAA,IAAC,WACH0M,GACD1M,EAAA,MAA4B,kBAAvB0M,EAAW0O,UAA+B/lB,EAAAA,GAAAA,IAAIo8f,KAAQA,GAAMnrd,EAAC;mBAChD;OACXsrd,GAAuB,IACzBG,IAAsBvlf,EAAAA,GAAAA,IAAO,MAAO,CACxC/Y,KAAM,sBACN2Y,KAAM,MACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAO07H,KAHnBziH,CAIzB,CACDmB,QAAS,UAELqkf,IAAyBxlf,EAAAA,GAAAA,IAAO,SAAU,CAC9C/Y,KAAM,sBACN2Y,KAAM,SACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAO0+f,OAAQ1+f,EAAO,UAASoZ,EAAAA,GAAAA,GAAWD,EAAW0O,YAAa1O,EAAWwlf,eAAiB3+f,EAAO4+f,oBAAoB,GAPtG3lf,EAS5BsN,IAAA,IAAC,WACFpN,EAAU,MACVxM,GACD4Z,EAAA,OAAK7U,EAAAA,GAAAA,GAAS,CACbs2T,OAAQ,gBACgB,gBAAvB7uT,EAAW0O,SAA6B,CACzCtN,WAAY5N,EAAMgK,YAAYrW,OAAO,sBACb,kBAAvB6Y,EAAW0O,SAA+B,CAE3C1iB,gBAAiB,cACjBC,iBAAkB,GAClB,IAAE64T,IAAA,IAAC,WACH9kT,GACD8kT,EAAA,MAA4B,kBAAvB9kT,EAAW0O,UAAgC1O,EAAWwlf,gBAAiB78f,EAAAA,GAAAA,IAAIq8f,KAAQA,GAAMprd,EAAC;mBAC7E;OACXurd,GAAqB,IASvBO,GAAgCp+f,EAAAA,YAAiB,SAA0Bma,EAAS5Z,GACxF,MAAMjH,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,yBAEF,UACFqI,EAAS,MACT+I,EAAQ,UAAS,cACjBqtf,GAAgB,EAAK,KACrB1hgB,EAAO,GAAE,MACT8nB,EAAK,UACL+5e,EAAY,IAAG,MACf1mgB,EAAQ,EAAC,QACTyvB,EAAU,iBACR9tB,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCyL,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrCuX,QACAqtf,gBACA1hgB,OACA6hgB,YACA1mgB,QACAyvB,YAEIzM,EArGkBjC,KACxB,MAAM,QACJiC,EAAO,QACPyM,EAAO,MACPvW,EAAK,cACLqtf,GACExlf,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,OAAQiuB,EAAS,SAAQzO,EAAAA,GAAAA,GAAW9H,MAC3CoqH,IAAK,CAAC,OACNgjY,OAAQ,CAAC,SAAU,UAAStlf,EAAAA,GAAAA,GAAWyO,KAAY82e,GAAiB,wBAEtE,OAAOrjf,EAAAA,GAAAA,GAAeD,EAAO2if,GAAiC5if,EAAQ,EAyFtDG,CAAkBpC,GAC5B4lf,EAAc,CAAC,EACfC,EAAY,CAAC,EACb/5E,EAAY,CAAC,EACnB,GAAgB,gBAAZp9Z,EAA2B,CAC7B,MAAMo3e,EAAgB,EAAIpngB,KAAKojS,KAAOmjO,GAAOU,GAAa,GAC1DC,EAAY55f,gBAAkB85f,EAAc76e,QAAQ,GACpD6ga,EAAU,iBAAmBptb,KAAKub,MAAMhb,GACxC2mgB,EAAY35f,iBAAmB,KAAK,IAAMhN,GAAS,IAAM6mgB,GAAe76e,QAAQ,OAChF46e,EAAUj0e,UAAY,gBACxB,CACA,OAAoBlP,EAAAA,GAAAA,KAAK0if,IAAsB7sf,EAAAA,GAAAA,GAAS,CACtDnJ,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,GAC9Bwc,OAAOrT,EAAAA,GAAAA,GAAS,CACdyI,MAAOld,EACPoY,OAAQpY,GACP+hgB,EAAWj6e,GACd5L,WAAYA,EACZnY,IAAKA,EACL4a,KAAM,eACLqpa,EAAWj1a,EAAO,CACnBhW,UAAuB6hB,EAAAA,GAAAA,KAAK2if,GAAqB,CAC/Cj2f,UAAW6S,EAAQsgH,IACnBviH,WAAYA,EACZ8B,QAAS,cACTjhB,UAAuB6hB,EAAAA,GAAAA,KAAK4if,GAAwB,CAClDl2f,UAAW6S,EAAQsjf,OACnB35e,MAAOg6e,EACP5lf,WAAYA,EACZ+lf,GAAId,GACJe,GAAIf,GACJt3e,GAAIs3e,GAAOU,GAAa,EACxBzkf,KAAM,OACN9U,YAAau5f,QAIrB,IAiEA,MCzBA,GAnNyBztf,IAA6B,IAA5B,QAAEmxa,EAAO,UAAE48E,GAAW/tf,EAC9C,MAAOguf,EAAeC,IAAoBxyU,EAAAA,EAAAA,UAAS,KAC5CyyU,EAAWC,IAAgB1yU,EAAAA,EAAAA,UAAS,KACpC8kQ,EAAcC,IAAmB/kQ,EAAAA,EAAAA,WAAS,IAC1C2yU,EAAcC,IAAmB5yU,EAAAA,EAAAA,UAAS,OAE1C6yU,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C+yU,EAAcC,IAAmBhzU,EAAAA,EAAAA,UAAS,KAC1CizU,EAAcC,IAAmBlzU,EAAAA,EAAAA,WAAS,IAE1CmzU,GAAsB,UAAEzpP,IAC7B8/J,MAwBF9pP,EAAAA,EAAAA,YAAU,KACR,MAAMslQ,EAAeA,KACnBD,GAAgB,EAAM,EAKxB,OAFAn7b,SAAS0oB,iBAAiB,QAAS0ya,GAE5B,IAAMp7b,SAASy/F,oBAAoB,QAAS27V,EAAa,GAC/D,IAoCH,OACEt2a,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iKAAgKvO,SAAC,aAIhL6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6JAA4JvO,UACzKwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+OAA8OvO,SAAA,EAC3P6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8DAA6DvO,UAC1E6hB,EAAAA,GAAAA,KAAA,OACEq8I,QAASsqR,EACTj6a,UAAU,qIAAoIvO,UAE9I6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK83S,GACL12X,UAAU,oBACV0oP,IAAI,yBAKVz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iEAAgEvO,SAAA,EAC7E6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,iFAAgFvO,SAAC,sBAG/F6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oFAAmFvO,SAAC,iEAKjGwhB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wCAAuCvO,UACpD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,0DAAyDvO,UACtE6hB,EAAAA,GAAAA,KAAA,SACEtT,UAAW,4IACXzO,KAAK,OACLoG,KAAK,gBACLm5J,YAAY,uBACZ9iI,UAAQ,EACR6hI,SAAW7gK,GAAM+ngB,EAAiB/ngB,EAAEqnB,OAAOxmB,cAKjDojB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wGAAuGvO,SAAA,EACpHwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,uIACV2vJ,QAxGS3gK,IACvBA,EAAEwgK,kBACF85R,GAAiB13b,IAAUA,GAAK,EAsGOH,SAAA,EAEzB6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+CAA8CvO,SACxDylgB,GAAgB,iBAEnB5jf,EAAAA,GAAAA,KAAA,OAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL0K,MAAO,CAAEzT,MAAO,WAChBm/S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,4eACFgQ,KAAK,cAIVu3a,IACC/1a,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gIAA+HvO,SAC3I+jgB,GAAWz/f,KAAI,CAACmqB,EAAM7vB,KAEnB4iB,EAAAA,GAAAA,MAAA,OAEEjT,UAAU,oGACV2vJ,QAASA,IAAMwnW,EAAoB,OAAJj3e,QAAI,IAAJA,OAAI,EAAJA,EAAMzZ,MAAMhV,SAAA,EAE3C6hB,EAAAA,GAAAA,KAAC4hf,GAAU,CAACv9f,KAAU,OAAJuoB,QAAI,IAAJA,OAAI,EAAJA,EAAMzZ,KAAM6Y,QAAQ,aACtChM,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qFAAoFvO,SAC7F,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM5H,UANJjoB,WAcjBijB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uDAAsDvO,UACnE6hB,EAAAA,GAAAA,KAAA,SACEtT,UAAW,sIACXzO,KAAK,OACLoG,KAAK,QACLm5J,YAAY,oBACZjB,SAAW7gK,GAAMiogB,EAAajogB,EAAEqnB,OAAOxmB,eAI7CyjB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qDAAoDvO,UACjE6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAnIKz6E,UACnB,IAAK4hb,EAGH,OAFAO,EAAgB,mCAChBI,GAAgB,GAIlB,IAAIjid,EAAO,CAAEmid,SAAUb,GACnBE,IAAWxhd,EAAO,IAAKA,EAAMl9B,MAAO0+e,IAEpCE,IAAc1hd,EAAO,IAAKA,EAAM/uC,KAAMywf,UAEpCQ,EAAqBlid,GACxB02C,MAAMvf,IAAS,IAADirb,EAAAC,EAAAC,EAAAC,EAE8BC,EAAAC,EAA3C,GAAwC,KAAjC,OAAHtrb,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAU,QAAVC,EAATD,EAAW3pd,gBAAQ,IAAA4pd,OAAhB,EAAHA,EAAqBt1F,YACvB80F,EAAmB,OAAH1qb,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAU,QAAVC,EAATD,EAAW/pd,gBAAQ,IAAAgqd,OAAhB,EAAHA,EAAqBl4d,SACrC03d,GAAgB,GAhDtBx9E,IACA48E,GAAU,GACVI,EAAa,IACbE,EAAgB,IAChBJ,EAAiB,SA8CN,GAAwC,KAAjC,OAAHpqb,QAAG,IAAHA,GAAS,QAANmrb,EAAHnrb,EAAKhrE,YAAI,IAAAm2f,GAAU,QAAVC,EAATD,EAAW7pd,gBAAQ,IAAA8pd,OAAhB,EAAHA,EAAqBx1F,YAAkB,CAAC,IAAD21F,EAAAC,EAChDd,EAAmB,OAAH1qb,QAAG,IAAHA,GAAS,QAANurb,EAAHvrb,EAAKhrE,YAAI,IAAAu2f,GAAU,QAAVC,EAATD,EAAWjqd,gBAAQ,IAAAkqd,OAAhB,EAAHA,EAAqBp4d,SACrC03d,GAAgB,EAClB,MACEJ,EAAgB,0BAChBI,GAAgB,EAClB,IAEDn/U,OAAOvwK,IACNsvf,EAAgB,sBAChBI,GAAgB,EAAM,GACtB,EAsGUz3f,UAAU,8LACVwF,SAAUyoQ,EAAUx8Q,SAEnBw8Q,GACC36P,EAAAA,GAAAA,KAACgjf,GAAgB,CACf95e,MAAO,CACL5K,MAAO,OACP9E,OAAQ,OACR/D,MAAO,aAIX,qBAQbquf,IACC9jf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,KAAMihB,QAAQood,GACdn9E,QA7Kao+E,KACnBhB,EAAgB,IAChBI,EAAgB,IAChBF,EAAgB,GAAG,EA2Kbx3d,QAASq3d,EACT9zE,QAASg0E,EACTnnH,UAAWqnH,MAGd,ECzFP,GAxH2B1uf,IAMpB,IANqB,YAC1Bwvf,EAAW,SACXC,EAAQ,OACRC,EAAM,QACNC,EAAU,OAAM,iBAChBC,GACD5vf,EACC,MAAO6vf,EAAkBC,IAAuBr0U,EAAAA,EAAAA,WAAS,IAClDs0U,EAAqBC,IAA0Bv0U,EAAAA,EAAAA,UAAS,IAc/D,OAPAN,EAAAA,EAAAA,YAAU,KAAO,IAAD80U,EACdD,EACEJ,IAAoD,QAAjBK,EAAGT,EAAY,UAAE,IAAAS,OAAA,EAAdA,EAAgBpB,UACvD,GAEA,CAACW,KAGFrlf,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACGkngB,IAAoBrlf,EAAAA,GAAAA,KAAC0lf,GAAgB,CAAC/+E,QAbfg/E,KAC1BL,GAAoB,EAAM,KAaxBtlf,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gKAA+JvO,SAAC,aAI/K6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4JAA2JvO,UACxK6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qRAAoRvO,UACjSwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iEAAgEvO,SAAA,EAC7EwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yEAAwEvO,SAAA,EACrF6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,0FAAyFvO,SAAC,wBAGvG6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASA,KACPipW,GAAoB,EAAK,EAE3B54f,UAAU,iIAAgIvO,SAC3I,mBAIH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uIAAsIvO,SAClJ6mgB,EAAYxrgB,OAAS,EACpBwrgB,EAAYvigB,KAAI,CAAC2+f,EAAShmgB,KAAO,IAADwqgB,EAC9B,OACE5lf,EAAAA,GAAAA,KAAA,OAEEq8I,QAASA,KACPmpW,EAA8B,OAAPpE,QAAO,IAAPA,OAAO,EAAPA,EAASiD,SAAS,EAE3C33f,UAAU,iHAAgHvO,UAG1HwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sDAAqDvO,SAAA,EAClE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kIAAiIvO,UAC1H,OAAnBongB,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBr7f,iBAAwB,OAAPk3f,QAAO,IAAPA,GAAiB,QAAVwE,EAAPxE,EAASiD,gBAAQ,IAAAuB,OAAV,EAAPA,EAAmB17f,gBACxD8V,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,2DAEhBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,6DAIpBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,wDAAuDvO,SAC7D,OAAPijgB,QAAO,IAAPA,GAAAA,EAASjuf,MACR6M,EAAAA,GAAAA,KAAC4hf,GAAU,CACTxggB,KAAK,KACLiD,KAAM,GAAU,OAAP+8f,QAAO,IAAPA,OAAO,EAAPA,EAASjuf,OAClB6Y,QAAQ,aAGVhM,EAAAA,GAAAA,KAAA,OACEsrE,IAAKu6a,GACLn5f,UAAU,yBAIhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,EACtD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,4BAA2BvO,SACrC,GAAU,OAAPijgB,QAAO,IAAPA,GAAAA,EAASp8e,MAAe,OAAPo8e,QAAO,IAAPA,OAAO,EAAPA,EAASp8e,MAAQ,SAExChF,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,kDAAiDvO,SAC3D,GAAU,OAAPijgB,QAAO,IAAPA,GAAAA,EAASiD,SAAkB,OAAPjD,QAAO,IAAPA,OAAO,EAAPA,EAASiD,SAAW,cAnCtC,OAAPjD,QAAO,IAAPA,OAAO,EAAPA,EAASiD,SAwCV,KAIVrkf,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wEAAuEvO,SAAC,uBAK3FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uFAAsFvO,SAAA,EACnG6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAAS4oW,EACTv4f,UAAU,yFAAwFvO,SACnG,YAGD6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASA,IAAM6oW,EAAOK,GACtB74f,UAAU,mGAAkGvO,SAE3GgngB,gBAMV,ECuQP,GAjXoB3vf,IAYb,IAZc,KACnBilB,EAAI,QACJksZ,EAAO,SACPgQ,EAAQ,iBACRmvE,EAAgB,OAChBC,GAAS,EAAI,YACbC,GAAc,EAAK,QACnB3oN,GAAU,EAAK,iBACf4oN,EAAgB,yBAChBC,EAAwB,eACxB/vE,GAAiB,EAAK,SACtBgwE,EAAW,GACZ3wf,EACC,MAAMgpT,EAAWR,MACVooM,EAAkBC,IAAuBp1U,EAAAA,EAAAA,UAAS,SAClD67P,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,IACxDq1U,EAAcC,IAAmBt1U,EAAAA,EAAAA,WAAS,IAE1Cu1U,EAAmBC,IAAwBx1U,EAAAA,EAAAA,UAAS,KACpDy1U,EAAWC,IAAgB11U,EAAAA,EAAAA,WAAS,IACpC6yU,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C21U,EAAcC,IAAmB51U,EAAAA,EAAAA,WAAS,IAC1C61U,EAAwBC,IAA6B91U,EAAAA,EAAAA,WAAS,IAC9Do0U,EAAkBC,IAAuBr0U,EAAAA,EAAAA,WAAS,IAmCzDN,EAAAA,EAAAA,YAAU,KACJm1U,GAA+C,mBAApBA,GAC7BA,EAAiBM,EACnB,GACC,CAACA,IAEJ,MAAMY,EAAexsF,MAErB7pP,EAAAA,EAAAA,YAAU,KAAO,IAADs2U,EAAAC,EAAAC,EACdV,EAAiC,OAAZO,QAAY,IAAZA,GAAkB,QAANC,EAAZD,EAAc34f,YAAI,IAAA44f,GAAU,QAAVC,EAAlBD,EAAoBtsd,gBAAQ,IAAAusd,GAAM,QAANC,EAA5BD,EAA8B74f,YAAI,IAAA84f,OAAtB,EAAZA,EAAoCC,YAAY,GACpE,CAACJ,IAkCJ,OACEhnf,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SACGuogB,IAAcI,GACb9mf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,KAAMise,EACNj6d,QAASq3d,EACT9sE,eAAe,EACfn6C,UAAW+pH,EACXjwE,UAAU,EACVhQ,QAjFkB0gF,KACxBV,GAAa,GACbrB,GAAoB,EAAK,EAgFnBruE,iBAhEaqwE,KACnBX,GAAa,GACb5C,EAAgB,IAChB8C,GAAgB,EAAK,EA8Df9vE,WAAY,eAEZ+vE,IAA2BJ,GAC7B1mf,EAAAA,GAAAA,KAACunf,GAAkB,CACjBvC,YAAawB,EACbvB,SAhEmBuC,KACzBT,GAA0B,EAAM,EAgE1B7B,OAjDsBb,IAE5B4B,EAAiB5B,EAAS,EAgDpBc,QAAQ,SAERE,IAAqBqB,GACvB1mf,EAAAA,GAAAA,KAAC0lf,GAAgB,CACfnC,UAxFaxuf,IACfA,GACFgyf,GAA0B,EAC5B,EAsFMpgF,QAlFoBg/E,KAC1BL,GAAoB,EAAM,KAoFtB3lf,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,6CACNy6a,WAAYA,KACVpR,GAAuB,EAAM,KAGjCp7Z,EAAAA,GAAAA,KAACk3a,GAAY,CAACz8Z,KAAMA,EAAMksZ,QAASA,EAASgQ,SAAUA,EAASx4b,UAC7DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gDAA+CvO,SAAA,EAC5D6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,wCACV2vJ,QAASsqR,EAAQxob,UAEjBwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACE1B,MAAM,KACN9E,OAAO,KACPiuf,GAAG,KACHjpf,KAAK,QACLrV,YAAY,SAEd6W,EAAAA,GAAAA,KAAA,QACExR,EAAE,+DACF29T,OAAO,QACP1iU,cAAc,MACdC,YAAY,IACZwrb,cAAc,QACdC,eAAe,gBAIrBn1a,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,qDAAoDvO,SAAC,gCAWlEwhB,EAAAA,GAAAA,MAAA,OACE08I,QAASA,IAAMgqW,EAAoB,QACnC35f,UAAW,0FACW,QAApB05f,EACI,kCACA,oCACYjogB,SAAA,EAElB6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iDACV4+E,isJACA8pK,IAAI,UAENz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4CAA2CvO,SAAA,EACxDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oEAAmEvO,SAAA,EAChFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kEAAiEvO,SAAA,CAC7Eg4b,GACC,cAAc9e,GACZf,GAAsB6vF,YAEzBhwE,IACCx2a,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,4BAA2BvO,SAAA,CAAC,IAEzCk5a,GACCT,GAA0BuvF,IACzB,IAAI,UAIVhwE,GAAkB,YAEjBA,GACA,OAAO9e,GACLf,GAAsB6vF,aAExBhwE,IACAx2a,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,4BAA2BvO,SAAA,CAAC,IAEzCk5a,GACCT,GAA0BuvF,IACzB,IAAI,cAKbxmf,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,uEAAsEvO,SAAA,CAAC,QAC5E64a,KAAkB,kBAE1Bh3Z,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,6CAA4CvO,SAAC,iEAI5D6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,0FACW,QAApB05f,EACI,mBACA,oBACHjogB,UAEH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,6DACW,QAApB05f,EAA6B,eAAiB,eAMxDzmf,EAAAA,GAAAA,MAAA,OACE08I,QAASA,IAAMgqW,EAAoB,OACnC35f,UAAW,4EACW,OAApB05f,EACI,kCACA,oCACYjogB,SAAA,EAElB6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,iDACV4+E,i0IACA8pK,IAAI,SAENz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4CAA2CvO,SAAA,EACxDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oEAAmEvO,SAAA,EAChFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kEAAiEvO,SAAA,CAC7Eg4b,GAAkB,cAAcgwE,iBAE/BhwE,GAAkB,QAAQgwE,YAE9Bnmf,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,6CAA4CvO,SAAC,qDAI5D6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,0FACW,OAApB05f,EACI,mBACA,oBACHjogB,UAEH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,6DACW,OAApB05f,EAA4B,eAAiB,eAOvDzmf,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLyO,UAAU,qEACV0tB,QAASkse,EACT/pW,SAAW7gK,GAAM6qgB,EAAgB7qgB,EAAEqnB,OAAOqX,YAE5Cza,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,uDAAsDvO,SAAA,CACnE,IAAI,aACM,KACX6hB,EAAAA,GAAAA,KAAA,KACEysC,KAAK,8BACL1pC,OAAO,SACPrW,UAAU,6CAA4CvO,SACvD,kCAOLwhB,EAAAA,GAAAA,MAAA,UACEjT,UAAW,8JACXzO,KAAK,SACLo+J,QAxOY3gK,IAMd,IAADgsgB,EAAAC,EAAAC,GALTjyb,QAAQ/qB,IAAI,iBAAkBw7c,GACL,SAArBA,IAEEL,GAAWC,GAAgB3oN,GAGb,OAAZ2pN,QAAY,IAAZA,GAAkB,QAANU,EAAZV,EAAc34f,YAAI,IAAAq5f,GAAU,QAAVC,EAAlBD,EAAoB/sd,gBAAQ,IAAAgtd,GAAM,QAANC,EAA5BD,EAA8Bt5f,YAAI,IAAAu5f,OAAtB,EAAZA,EAAoCR,YAAY5tgB,QAAS,GAC3DutgB,GAA0B,GAC1BJ,GAAa,KAGbE,GAAgB,GAChB9C,EACE,6KAEF4C,GAAa,GACbI,GAA0B,IAZ5Bd,EAAiBvqgB,GAiBnBuqgB,EAAiBvqgB,EACnB,EAmNYwW,SAAU8zf,GAAe3oN,IAAYipN,EAAanogB,SAAA,CAEjD4ngB,GAAUC,IAAgB3oN,IACzBr9R,EAAAA,GAAAA,KAAA,OACEtT,UAAU,OACV4R,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,irBACFgQ,KAAK,QACL2tT,OAAO,QACPziU,YAAY,UAIjBq8f,GAAUC,IAAgB3oN,GAAW,gBACrC0oN,IAAWC,IAAgB3oN,GAAW,eACrC0oN,IAAW1oN,IAAY84I,GAAkB,eACzC4vE,IAAW1oN,GAAW84I,GAAkB,UACzC94I,IACC19R,EAAAA,GAAAA,MAAA,OACE,cAAY,OACZjT,UAAU,gFACV0S,QAAQ,cACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,+WACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,glBACFgQ,KAAK,sBAMZunf,IACC/lf,EAAAA,GAAAA,KAAA,UACEtT,UAAU,2JACV2vJ,QAASA,IAAMmiK,EAAS,SAASrgU,SAClC,8BAQV,ECrWP,GA3BaqX,IAAkB,IAAjB,QAAE6mJ,GAAS7mJ,EACvB,OACEwK,EAAAA,GAAAA,KAAA,OACEq8I,QAASA,EACT3vJ,UAAU,qLAYbvO,UAEG6hB,EAAAA,GAAAA,KAAA,OACEsrE,yqBACA5+E,UAAU,oBACV0oP,IAAI,mBAEF,01GCdGyyQ,GAAa/8G,GAAU,CAClCnT,YAAa,QACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB9B,UAAY+d,IAAO,CACjB6wc,kBAAmB7wc,EAAQgnV,SAAS,CAClCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcqE,eACnB/mW,OAAQ,OACRpJ,KAAMmO,MAGV03c,kBAAmB9wc,EAAQgnV,SAAS,CAClCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcsE,eACnBhnW,OAAQ,OACRpJ,KAAMmO,WAMD,6BAAE23c,GAA4B,6BAAEC,IAC3CJ,GC9BIK,GAAiB,CACrB,CACErre,GAAI,WACJsre,WAAY,yBAEd,CACEtre,GAAI,WACJsre,WAAY,8BAEd,CACEtre,GAAI,WACJsre,WAAY,2BAEd,CACEtre,GAAI,WACJsre,WAAY,iDAEd,CACEtre,GAAI,WACJsre,WAAY,oDAEd,CACEtre,GAAI,WACJsre,WAAY,sCAEd,CACEtre,GAAI,WACJsre,WAAY,0BAEd,CACEtre,GAAI,WACJsre,WAAY,SAsWhB,GAlW0B3yf,IAAqD,IAAD4yf,EAAA,IAAnD,kBAAEC,EAAiB,WAAEC,EAAU,YAAEt2b,GAAax8D,EACvE,MAAO+yf,EAAiBC,IAAoBv3U,EAAAA,EAAAA,WAAS,IAC9Cw3U,EAAmBC,IAAsBz3U,EAAAA,EAAAA,WAAS,IAClD03U,EAAeC,IAAkB33U,EAAAA,EAAAA,WAAS,IAC1C43U,EAAgBC,IAAmB73U,EAAAA,EAAAA,WAAS,IAC5C83U,EAAYC,IAAiB/3U,EAAAA,EAAAA,UAAS,IACvCg4U,GAAUj4U,EAAAA,EAAAA,UAKhB,IAAIiwM,EAAW9pV,aAAaixQ,QAAQ,YAEpC64E,EAAWlrX,KAAK7V,MAAM+gY,GACtB,IAAIx6L,EAAiB,QAAX2hU,EAAGnnI,SAAQ,IAAAmnI,OAAA,EAARA,EAAUvre,GAEvB,MAAOqse,EAAsBC,GAC3BnB,MACKoB,EAAsBC,GAC3BpB,MAEA55f,KAAMi7f,EACN3uP,UAAW4uP,EACX1sH,UAAW2sH,EACX/nb,QAASgob,GACPN,GAEF96f,KAAMq7f,EACN/uP,UAAWgvP,EACX9sH,UAAW+sH,EACXnob,QAASoob,GACPR,EACES,EAAqBpugB,IACzBstgB,EAActtgB,EAAEqnB,OAAOxmB,OACvBusgB,GAAgB,EAAK,EA+EvB,OA7CAn4U,EAAAA,EAAAA,YAAU,KAAO,IAADo5U,EAAAC,EACdr0b,QAAQ/qB,IAAI,gBAAiB4+c,EAAwBC,GAEnDD,GACAF,GAC4C,KAA3B,OAAjBA,QAAiB,IAAjBA,GAA2B,QAAVS,EAAjBT,EAAmB3ud,gBAAQ,IAAAovd,OAAV,EAAjBA,EAA6B96F,aAE7Bt5V,QAAQ/qB,IAAI0+c,GACZd,GAAiB,IAEjBgB,GAC4C,KAA3B,OAAjBF,QAAiB,IAAjBA,GAA2B,QAAVU,EAAjBV,EAAmB3ud,gBAAQ,IAAAqvd,OAAV,EAAjBA,EAA6B/6F,aAE7By5F,GAAmB,GACnBF,GAAiB,GACjBI,GAAe,IACNa,IACTjB,GAAiB,GACjBE,GAAmB,GACnBE,GAAe,GACjB,GACC,CAACU,EAAmBG,EAAsBD,KAE7C74U,EAAAA,EAAAA,YAAU,KAAO,IAADs5U,EAAAC,EACdv0b,QAAQ/qB,IAAI,gBAAiBg/c,EAAwBC,GAEnDD,GACAF,GAC4C,KAA3B,OAAjBA,QAAiB,IAAjBA,GAA2B,QAAVO,EAAjBP,EAAmB/ud,gBAAQ,IAAAsvd,OAAV,EAAjBA,EAA6Bh7F,aAE7Bt5V,QAAQ/qB,IAAI8+c,GACZlB,GAAiB,IAEjBoB,GAC4C,KAA3B,OAAjBF,QAAiB,IAAjBA,GAA2B,QAAVQ,EAAjBR,EAAmB/ud,gBAAQ,IAAAuvd,OAAV,EAAjBA,EAA6Bj7F,aAE7By5F,GAAmB,GACnBF,GAAiB,GACjBI,GAAe,IACNiB,IACTrB,GAAiB,GACjBE,GAAmB,GACnBE,GAAe,GACjB,GACC,CAACc,EAAmBG,EAAsBD,KAE3C5pf,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACM6hB,EAAAA,GAAAA,KAACk3a,GAAY,CAACz8Z,KAAMA,IAAI4te,EAAmB1hF,QAASA,IAAI0hF,EAAmB1xE,UAAU,EAAKx4b,UAC9FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,6GACV2vJ,QAASgsW,EAAkBlqgB,UAE3B6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,+DACF29T,OAAO,QACP1iU,cAAc,MACdC,YAAY,IACZwrb,cAAc,QACdC,eAAe,cAIlBwzE,IACChpf,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2EAA0EvO,SAAA,EACvF6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK8rW,GACLhiM,IAAI,gBACJ1oP,UAAU,iEAEZsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yEAAwEvO,SAAC,iCAGvF6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,kFAAiFvO,SAAC,qDAGlG6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASgsW,EACT37f,UAAU,iIAAgIvO,SAC3I,eAKJsqgB,IACC9of,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qFAAoFvO,SAAA,EACjG6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK6+a,GACL/0Q,IAAI,gBACJ1oP,UAAU,iEAEZsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yEAAwEvO,SAAC,2DAGvF6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,kFAAiFvO,SAAC,qFAIlG6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASgsW,EACT37f,UAAU,iIAAgIvO,SAC3I,gBAKHwqgB,IACCF,IACAF,GACC5of,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2EAA0EvO,SAAA,EACvF6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK8+a,GACLh1Q,IAAI,gBACJ1oP,UAAU,iEAEZsT,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yEAAwEvO,SAAC,wCAGvF6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,kFAAiFvO,SAAC,6EAIlG6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASgsW,EACT37f,UAAU,iIAAgIvO,SAC3I,gBAKHwhB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oDASfsT,EAAAA,GAAAA,KAAA,OACEtT,UAAW,oBAAoBvO,UAE/BwhB,EAAAA,GAAAA,MAAA,QAAM0qf,SArLG3ugB,IAMvB,GALAA,EAAE88K,iBAEFkwV,GAAmB,GACnBF,GAAiB,GACjBI,GAAe,GACA,OAAX52b,QAAW,IAAXA,GAAAA,EAAazqB,SAAS,YAAyB,OAAXyqB,QAAW,IAAXA,GAAAA,EAAazqB,SAAS,WAAY,CAAC,IAAD+id,EAExE,MAAMj6c,EAAU,CACdk6c,UAAWjC,EACXS,aACAyB,WAAY/jU,EACZgkU,aAAoB,OAAPxB,QAAO,IAAPA,GAAgB,QAATqB,EAAPrB,EAASpjgB,eAAO,IAAAykgB,OAAT,EAAPA,EAAkB/tgB,QAAS,GACxCmugB,mBAAoBvzd,aAAaixQ,QAAQ,YAAc,OAAS,SAGlEghN,EAAqB/4c,EACvB,KAAO,CAAC,IAADs6c,EAEL,MAAMt6c,EAAU,CACdilU,UAAWgzI,EACXt2b,YAAaA,EACb+2b,aACAyB,WAAY/jU,EACZgkU,aAAoB,OAAPxB,QAAO,IAAPA,GAAgB,QAAT0B,EAAP1B,EAASpjgB,eAAO,IAAA8kgB,OAAT,EAAPA,EAAkBpugB,QAAS,GACxCmugB,mBAAoBvzd,aAAaixQ,QAAQ,YAAc,OAAS,SAGlE8gN,EAAqB74c,EACvB,GAwJ8ClyD,SAAA,EAC9B6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yBAAwBvO,UACrC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,2BAA0BvO,SAAC,oBAEzCg5C,aAAaixQ,QAAQ,cACrBzoS,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uBAAsBvO,SAAA,EACnCwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1C6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,aACRl+f,UAAU,4BAA2BvO,SACtC,gBAGD6hB,EAAAA,GAAAA,KAAA,SACEtT,UAAU,uHACV8wJ,YAAY,OACZv/J,KAAK,OACLoG,KAAK,aACLw4B,GAAG,mBAGPld,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1C6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,YACRl+f,UAAU,4BAA2BvO,SACtC,eAGD6hB,EAAAA,GAAAA,KAAA,SACEtT,UAAU,uHACV8wJ,YAAY,MACZv/J,KAAK,OACLoG,KAAK,YACLw4B,GAAG,qBAITld,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,2BAA0BvO,SAAA,EACvC6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,WACRl+f,UAAU,4BAA2BvO,SACtC,cAGD6hB,EAAAA,GAAAA,KAAA,SACEtT,UAAU,uHACV8wJ,YAAY,uBACZv/J,KAAK,OACLoG,KAAK,WACLw4B,GAAG,oBAKX7c,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8CAA6CvO,SAAC,wBAG5D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAAgCvO,SAC9B,OAAd+pgB,SAAc,IAAdA,QAAc,EAAdA,GAAgBzlgB,KAAI,CAACoogB,EAAYpqc,KAE9B9gD,EAAAA,GAAAA,MAAA,OACEjT,WACU,IAAR+zD,EAAY,GAAK,mCADR,kBAEOtiE,SAAA,EAGlB6hB,EAAAA,GAAAA,KAAA,SAEE/hB,KAAK,QACL4+B,GAAI,SAAS4jC,IACbp8D,KAAK,SACLk4J,SAAUutW,EACVvtgB,MAAOsugB,EAAW1C,WAClBzte,UAAQ,GANH+lC,GAAgB,OAAVoqc,QAAU,IAAVA,OAAU,EAAVA,EAAYhue,MAQzB7c,EAAAA,GAAAA,KAAA,SACEtT,UAAU,4DACVk+f,QAAS,SAASnqc,IAAMtiE,SAEb,OAAV0sgB,QAAU,IAAVA,OAAU,EAAVA,EAAY1C,cAEfnof,EAAAA,GAAAA,KAAA,WAjBKygD,GAAgB,OAAVoqc,QAAU,IAAVA,OAAU,EAAVA,EAAYhue,UAsB/Bld,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,EACtD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,oCAAmCvO,SAAC,oCAGlD6hB,EAAAA,GAAAA,KAAA,YACE7a,IAAK8jgB,EACLzrW,YAAY,0CACZy5F,KAAM,EACNvqP,UAAU,2KAIdiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oNAAmNvO,SAAA,EAChO6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASgsW,EACT37f,UAAU,uBAAsBvO,SACjC,YAGD6hB,EAAAA,GAAAA,KAAA,UACE9N,SAAU22f,EAAiB,GAAK,WAEhCn8f,UAAW,uBACTm8f,EACI,2DACA,8BACF1qgB,SACL,oCAkBhB,EClYM2sgB,GAAYhgH,GAAU,CACjCnT,YAAa,OACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB9B,UAAY+d,IAAO,CACjB8zc,mBAAoB9zc,EAAQprB,MAAM,CAChCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAc2E,eACnBrnW,OAAQ,UAGZ0/c,uBAAwB/zc,EAAQprB,MAAM,CACpCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAc6E,oBACnBvnW,OAAQ,UAGZ2/c,sBAAuBh0c,EAAQgnV,SAAS,CACtCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAckF,kBACnB5nW,OAAQ,OACRpJ,KAAM,CACJgpd,aAAc76c,EAAQm6I,SACtB8wO,OAAQjrX,EAAQirX,OAChB6vF,aAAc96c,EAAQ86c,aACtBC,aAAoB,OAAP/6c,QAAO,IAAPA,OAAO,EAAPA,EAAS+6c,cAAe,UAI3CC,sBAAuBp0c,EAAQgnV,SAAS,CACtCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcmF,iBACnB7nW,OAAQ,SACRpJ,KAAM,CACJopd,WAAYj7c,EAAQxzB,QAI1B0ue,kBAAmBt0c,EAAQprB,MAAM,CAC/BA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAc4E,qBACnBtnW,OAAQ,QAEV06V,aAAc,CAAEqrB,WAAW,UAKpB,2BACXm6F,GAA0B,+BAC1BC,GAA8B,0BAC9BC,GAAyB,+BACzBC,GAA8B,iCAC9BC,GAAgC,iCAChCC,IACEf,GC7DSgB,GAAahhH,GAAU,CAChCnT,YAAa,aACb4N,UAAWqrB,GAAoB,CAC3Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EAClC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAMrD,OALAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACAs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAGpCs8C,CAAO,IAGtB9B,UAAY+d,IAAO,CACf80c,oBAAqB90c,EAAQgnV,SAAS,CAClCpyW,MAAQwkB,IAAO,CACXzuC,IAAKksY,GAAWE,GAAc2D,4BAC9BrmW,OAAQ,OACRpJ,KAAMmO,MAGd27c,wBAAyB/0c,EAAQgnV,SAAS,CACtCpyW,MAAQwkB,IAAO,CACXzuC,IAAKksY,GAAWE,GAAc4D,+BAC9BtmW,OAAQ,OACRpJ,KAAMmO,MAGd47c,uBAAwBh1c,EAAQgnV,SAAS,CACrCpyW,MAAQwkB,IAAO,CACXzuC,IAAKksY,GAAWE,GAAcsH,wBAC9BhqW,OAAQ,OACRpJ,KAAMmO,WAOT,+BACT67c,GAA8B,mCAC9BC,GAAkC,kCAClCC,IACAN,8BCrBJ,MA8eA,GA9ec9rI,KAAO,IAADqsI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClB,MAAMpuM,EAAWR,KACXntT,EAASouT,MACT,aAAE01H,EAAY,KAAE/na,GAAS/b,GACzB,KAAExC,EAAI,UAAEssQ,EAAS,QAAEquI,GAAYmlC,GAA2Bvha,IACzDigf,GAAkBlyP,UAAWmyP,IAClClB,MAEKmB,EAAeC,IAAkB/7U,EAAAA,EAAAA,WAAS,IAC1Cg8U,EAAeC,IAAoBj8U,EAAAA,EAAAA,UAAS,CAAC,IAK7Ck8U,EAAgBC,IAAmBn8U,EAAAA,EAAAA,WAAS,IAiD5C67P,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,IAgB/DN,EAAAA,EAAAA,YAAU,KACJtiL,GAAqC,IAA7BA,EAAKssC,SAASs0X,WACxBi+F,EAAiB7+f,EAAKssC,SAAStsC,MACtBA,GACTmwT,EAAS,0BACX,GACC,CAACnwT,IACJ,MAkCOg/f,EAAcC,IAAmBr8U,EAAAA,EAAAA,WAAS,IAC1Cs8U,EAAaC,IAAkBv8U,EAAAA,EAAAA,WAAS,IACxC4kQ,EAAe43E,IAAoBx8U,EAAAA,EAAAA,WAAS,IAC5Cy8U,EAAeC,IAAoB18U,EAAAA,EAAAA,UAAS,SAC5C28U,EAAcC,IAAmB58U,EAAAA,EAAAA,WAAS,IAC1C68U,EAAmBC,IAAwB98U,EAAAA,EAAAA,WAAS,IAEpD+8U,EAAgBC,GAAiB/B,MACjCgC,EAAgBC,GACrBhC,MAEFx7U,EAAAA,EAAAA,YAAU,KAAO,IAADqiP,EAmBZ77X,aAAaixQ,QAAQ,gBACS,IAA1B,OAAJ/5S,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,OAAV,EAAJA,EAAgB/D,aAnBlBrtV,iBACE,IAAK,IAADmxV,EAAAq7F,EAAA1J,EAAAC,EACF,MAAMtrb,QAAY20b,EAAe,CAC/BryF,WAAgB,OAAJtta,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,GAAM,QAANq7F,EAAdr7F,EAAgB1ka,YAAI,IAAA+/f,OAAhB,EAAJA,EAAsB96Q,IAClC+6Q,OAAO,IAGkC,IAAD7J,EAAAC,EAA1C,GAAuC,IAAhC,OAAHprb,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAU,QAAVC,EAATD,EAAW/pd,gBAAQ,IAAAgqd,OAAhB,EAAHA,EAAqB11F,aAEJ,OAAH51V,QAAG,IAAHA,GAAS,QAANmrb,EAAHnrb,EAAKhrE,YAAI,IAAAm2f,GAAU,QAAVC,EAATD,EAAW7pd,gBAAQ,IAAA8pd,OAAhB,EAAHA,EAAqBp2f,OAGnCw/f,GAAgB,EAGtB,CAAE,MAAOnygB,IAAI,CACf,CAKE4ygB,EACF,GACC,CAACjggB,IAEJ,MAkCMkggB,EAAeA,KAAO,IAADC,EAAAC,EACzB5B,EAAe,CACbriU,SAAU,YACV8wO,OAAY,OAAJjta,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,OAAhB,EAAJA,EAAsBn7Q,IAC9B63Q,aAA+B,OAAjBuC,EAAyB,MAAQ,SAE9C90a,MAAMvf,IAAS,IAADurb,EAAAC,EACblvb,QAAQ/qB,IAAIyuB,EAAIhrE,MACuB,IAAhC,OAAHgrE,QAAG,IAAHA,GAAS,QAANurb,EAAHvrb,EAAKhrE,YAAI,IAAAu2f,GAAU,QAAVC,EAATD,EAAWjqd,gBAAQ,IAAAkqd,OAAhB,EAAHA,EAAqB51F,cACvBw+F,GAAiB,GACjBiB,IACF,IAED1pV,OAAO95I,IACNyqC,QAAQ/qB,IAAI1f,EAAI,GAChB,EAGAyje,EAAetK,IACU,IAADuK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAA5B,GAAqB,OAAjBvB,EACFlvM,EACE,+CAAmD,OAAJnwT,QAAI,IAAJA,GAAc,QAAVuggB,EAAJvggB,EAAMssC,gBAAQ,IAAAi0d,GAAM,QAANC,EAAdD,EAAgBvggB,YAAI,IAAAwggB,OAAhB,EAAJA,EAAsBhpI,oBAAwB,OAAJx3X,QAAI,IAAJA,GAAc,QAAVyggB,EAAJzggB,EAAMssC,gBAAQ,IAAAm0d,GAAM,QAANC,EAAdD,EAAgBzggB,YAAI,IAAA0ggB,OAAhB,EAAJA,EAAsB1/E,uBAA2B,OAAJhhb,QAAI,IAAJA,GAAc,QAAV2ggB,EAAJ3ggB,EAAMssC,gBAAQ,IAAAq0d,GAAM,QAANC,EAAdD,EAAgB3ggB,YAAI,IAAA4ggB,OAAhB,EAAJA,EAAsB37Q,YAEzJ,GAAqB,QAAjBo6Q,EAAyB,CAAC,IAADwB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClC/wM,EACE,sDACM,OAAJnwT,QAAI,IAAJA,GAAc,QAAV6ggB,EAAJ7ggB,EAAMssC,gBAAQ,IAAAu0d,GAAM,QAANC,EAAdD,EAAgB7ggB,YAAI,IAAA8ggB,OAAhB,EAAJA,EAAsBtpI,oBACb6wC,GACL,OAAJroa,QAAI,IAAJA,GAAc,QAAV+ggB,EAAJ/ggB,EAAMssC,gBAAQ,IAAAy0d,GAAM,QAANC,EAAdD,EAAgB/ggB,YAAI,IAAAghgB,OAAhB,EAAJA,EAAsBhgF,wBACL,OAAJhhb,QAAI,IAAJA,GAAc,QAAVihgB,EAAJjhgB,EAAMssC,gBAAQ,IAAA20d,GAAM,QAANC,EAAdD,EAAgBjhgB,YAAI,IAAAkhgB,OAAhB,EAAJA,EAAsBj8Q,gBAAgB+wQ,IAEzD,IAKA0G,GAEE18f,KAAMmhgB,EACN70P,UAAW80P,EACXzmH,QAAS0lH,EACT7xH,UAAW6yH,IAEXjE,MAGJ96U,EAAAA,EAAAA,YAAU,KAAO,IAADg/U,EACd,GAAID,GAAgE,IAA1B,OAAhBF,QAAgB,IAAhBA,GAA0B,QAAVG,EAAhBH,EAAkB70d,gBAAQ,IAAAg1d,OAAV,EAAhBA,EAA4B1gG,YAAiB,CAAC,IAAD2gG,EAAAC,EAAAC,EAAAC,EACrE,MAAMC,EAA2B,OAAhBR,QAAgB,IAAhBA,GAA0B,QAAVI,EAAhBJ,EAAkB70d,gBAAQ,IAAAi1d,GAAM,QAANC,EAA1BD,EAA4BvhgB,YAAI,IAAAwhgB,OAAhB,EAAhBA,EAAkCptgB,KAChDmqB,GAAa,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM0uZ,SAEN,OAAR00F,QAAQ,IAARA,GAAAA,EAAUzod,SAAa,OAAJl5C,QAAI,IAAJA,GAAc,QAAVyhgB,EAAJzhgB,EAAMssC,gBAAQ,IAAAm1d,GAAM,QAANC,EAAdD,EAAgBzhgB,YAAI,IAAA0hgB,OAAhB,EAAJA,EAAsBz8Q,MAC3Cm6Q,GAAiB,EAErB,IACC,CAACgC,EAAmBphgB,KAEvBsiL,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkB2iN,GAAoB,GAC1D,IAEH,IAAIkF,EAAc,OAWlB,OAViB,OAAbhD,QAAa,IAAbA,GAAAA,EAAe59E,WAAyC,IAAf,OAAb49E,QAAa,IAAbA,OAAa,EAAbA,EAAe59E,aAC7C4gF,EAAc,UAEZp6E,IACFo6E,EAAc,aAEZrC,IACFqC,EAAc,YAIdtwf,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gBAAevO,SAAA,CAC3BkvgB,IACCrtf,EAAAA,GAAAA,KAACkwf,GAAW,CACVz1e,KAAM4ye,EACN1mF,QA/GawpF,KACnB7C,GAAgB,EAAM,EA+GhBvH,OAAQwH,EACRvH,YAAanwE,EACbx4I,QAASyvN,EACThH,iBA/G0BsK,IAChCzC,EAAiByC,EAAS,EA+GpBnK,iBA5GsB5B,IAEP,OAAjBqJ,EAEEH,EACFgB,IAIAI,IAKsB,QAAjBjB,IAEHH,EACFgB,IAIAI,EAAYtK,GAEhB,EAsFM6B,yBAA0ByI,EAC1BxI,SAAuB,OAAb8G,QAAa,IAAbA,OAAa,EAAbA,EAAe59E,aAG7Brva,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4DAA2DvO,UACxEwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,EAAS,4BACxB9xT,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAwBVwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,CACvEw8Q,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEwB,KAA3B,OAAJ50N,QAAI,IAAJA,GAAc,QAAVg+f,EAAJh+f,EAAMssC,gBAAQ,IAAA0xd,OAAV,EAAJA,EAAgBp9F,aACe,KAA7B,OAAJ5ga,QAAI,IAAJA,GAAc,QAAVi+f,EAAJj+f,EAAMssC,gBAAQ,IAAA2xd,GAAM,QAANC,EAAdD,EAAgBj+f,YAAI,IAAAk+f,OAAhB,EAAJA,EAAsB/ygB,QACtB,WAEAmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wFAAuFvO,SAAA,EAQpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mCAAkCvO,UAC/C6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAkB,OAAb2hb,QAAa,IAAbA,GAA6B,QAAhBT,EAAbS,EAAernI,sBAAc,IAAA4mI,OAAhB,EAAbA,EAA+B5qf,IACpCwzO,IAAkB,OAAb63Q,QAAa,IAAbA,GAA6B,QAAhBR,EAAbQ,EAAernI,sBAAc,IAAA6mI,OAAhB,EAAbA,EAA+B3yG,SACpCzoP,QAAS77J,IAAwB,IAAvB,cAAEy2H,GAAez2H,EACzBy2H,EAAc/uD,QAAU,KACxB+uD,EAAc/iH,MAAM3K,QAAU,MAAM,EAEtC7R,UAAU,uDAIhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iFAAgFvO,SAAA,EAC7F6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,UAChD,OAAb8ugB,QAAa,IAAbA,OAAa,EAAbA,EAAepnI,YAAa,MAE/BlmX,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uDAAsDvO,SAAC,eAGrE6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+CAA8CvO,SAC/C,OAAZw2b,QAAY,IAAZA,OAAY,EAAZA,EAAczqb,oBAInByV,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gCAA+BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uDAAsDvO,SAAC,iBAGpEkQ,IACc,OAAb4+f,QAAa,IAAbA,GAA8B,QAAjBP,EAAbO,EAAeoD,uBAAe,IAAA3D,OAAjB,EAAbA,EAAgCjqgB,KAAI,CAAC6tgB,EAAYvzgB,KAC/CijB,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,0HACVwc,MAAO,CACLqnf,UAAW,cAEbxiW,wBAAyB,CACvB2W,OAAQ7iD,KAAAA,SAAmByuY,KANxBvzgB,UAiBbijB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mDAAkDvO,UAC/D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kCAAiCvO,SAChC,OAAb8vgB,QAAa,IAAbA,GAAAA,EAAetzP,WAA+B,OAAlBwzP,QAAkB,IAAlBA,GAAAA,EAAoBxzP,WAC/C36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6CAA4CvO,UACzD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGTtjN,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG,KACD6hB,EAAAA,GAAAA,KAACwwf,GAAQ,CACPvygB,KAAMgygB,EACNx6E,UAAWq4E,EACX53E,KAAK,UACLnzP,MAAM,qBACNm0O,MAAO,KAAkB,OAAb+1F,QAAa,IAAbA,OAAa,EAAbA,EAAe59E,YAC3B7C,WAAa9wb,IA9TfkmF,WAClB,GAAU,YAANlmF,EAAiB,CAAC,IAAD4ogB,EAAAC,EACnB,IAAIkM,EAAQt5d,aAAaixQ,QAAQ,YACjC,IAAKqoN,EAAO,OAMZ,GAJAA,EAAQ16f,KAAK7V,MAAMuwgB,IAEPA,EAAM5ze,GAER,OAEV,MAAMw8C,QAAY60b,EAAe,CAC/BvyF,WAAYsxF,EAAc35Q,IAC1Bo9Q,aAAc,cAGuB,IAAhC,OAAHr3b,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAU,QAAVC,EAATD,EAAW3pd,gBAAQ,IAAA4pd,OAAhB,EAAHA,EAAqBt1F,cACvB4+F,GAAgB,GAChBE,GAAqB,GAEzB,CACU,YAANrygB,GACF0/a,GAAuB,GAIf,WAAN1/a,IACF4xgB,GAAgB,GAChBE,GAAe,GAGjB,EAgSsB3xF,CACEngb,EACa,OAAbuxgB,QAAa,IAAbA,GAAAA,EAAeziU,SACF,OAAbyiU,QAAa,IAAbA,GAAAA,EAAe35Q,IAChB,EAEH8hM,YAAaA,KACXk4E,GAAgB,GAChBE,GAAe,EAAM,KAGzBxtf,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,4GACNy6a,WAAYA,KACVpR,GAAuB,EAAM,kBAqC/Cp7Z,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2DAwBhBqggB,GACC/sf,EAAAA,GAAAA,KAAC2wf,GAAiB,CAChBtI,kBAxduBuI,KAC7B5D,GAAgBD,EAAc,EAwdxBzE,WAAgB,OAAJj6f,QAAI,IAAJA,GAAc,QAAVs+f,EAAJt+f,EAAMssC,gBAAQ,IAAAgyd,GAAM,QAANC,EAAdD,EAAgBt+f,YAAI,IAAAu+f,OAAhB,EAAJA,EAAsBt5Q,IAClCthL,YAAa,eAGfhyD,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,MAEE,ECtgBJsuD,GAAiB,CACrBvhK,aAAc,IACdyC,eAAgB,EAChB77M,MAAM,EACNm6M,QAAQ,EACR8B,cAAc,EACdhD,UAAU,EACV8B,eAAe,EAEfU,WAAY,CACV,CACEllQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,QA8LtB,GAxLcswG,KAAO,IAAD6wI,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClB,IACE/igB,KAAMgjgB,EACNzmH,WAAY0mH,EACZz0H,UAAW00H,EACX9vb,QAAS+vb,GACPzjF,GAAiC,CACnCR,YAAa,GACbrmW,QAAS,WACTkgH,KAAM,EACNj9G,MAAO,MAGP97E,KAAMojgB,EACN7mH,WAAY8mH,EACZ70H,UAAW80H,EACXlwb,QAASmwb,GACP7jF,GAAiC,CACnCR,YAAa,GACbrmW,QAAS,QACTkgH,KAAM,EACNj9G,MAAO,KAET,MAAO2iW,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAE/D,GAAIqgV,GAAsBI,EACxB,OACE1xf,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4CAA2CvO,UACxD6hB,EAAAA,GAAAA,KAACijN,GAAM,MAKb,GACE2uS,GACmC,IAA1B,QAATf,EAAAY,SAAS,IAAAZ,GAAU,QAAVC,EAATD,EAAWl2d,gBAAQ,IAAAm2d,OAAV,EAATA,EAAqB7hG,aACrBuiG,GACsC,IAA1B,QAAZT,EAAAM,SAAY,IAAAN,GAAU,QAAVC,EAAZD,EAAcp2d,gBAAQ,IAAAq2d,OAAV,EAAZA,EAAwB/hG,YAExB,OACEjvZ,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,0DAAyDvO,UACtE6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,2BAIT,IAAI0zgB,EAAoB,GACpBF,GAAqD,IAA1B,QAATV,EAAAQ,SAAS,IAAAR,GAAU,QAAVC,EAATD,EAAWt2d,gBAAQ,IAAAu2d,OAAV,EAATA,EAAqBjiG,cACzCwiG,EAAYA,EAAU92d,SAAStsC,KAAKA,KACpCwjgB,EAAoBJ,EAAUhvgB,KAAKmqB,IAAI,IAAAyma,EAAA,MAAM,IACxCzma,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhBkE,EAAEzma,EAAKuia,iBAAS,IAAAkE,OAAA,EAAdA,EAAgBzxa,IAC5B,KAGH,IAAIkwf,EAAuB,GAkB3B,OAjBIP,GAA2D,IAA1B,QAAZJ,EAAAE,SAAY,IAAAF,GAAU,QAAVC,EAAZD,EAAcx2d,gBAAQ,IAAAy2d,OAAV,EAAZA,EAAwBniG,cAC/CoiG,EAAeA,EAAa12d,SAAStsC,KAAKA,KAC1CyjgB,EAAuBT,EAAa5ugB,KAAKmqB,IAAI,IAAA6ma,EAAA,MAAM,IAC9C7ma,EACHoja,QAASpja,EAAKi5W,UACdqxC,MAAOtqZ,EAAKyia,UAAY,GAAGzia,EAAKyia,gBAAkB,OAClDlU,KAAMvuZ,EAAK0ia,WACXH,UAAyB,QAAhBsE,EAAE7ma,EAAKuia,iBAAS,IAAAsE,OAAA,EAAdA,EAAgB7xa,IAC5B,MAUDjC,EAAAA,GAAAA,MAAA,OACE,cAAY,wBACZjT,UAAU,6BAA4BvO,SAAA,EAEtC6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CACV,cAAY,eACZl2X,UAAU,uMAEZsT,EAAAA,GAAAA,KAAC4iX,GAAW,CACV,cAAY,eACZl2X,UAAU,uMAEZsT,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACL6hB,EAAAA,GAAAA,KAAA,OACItT,UAAU,mGACVwc,MAAO,CACLu6W,gBAAiB,QAAQyvC,GAAcd,wBACvCzuC,eAAgB,QAChBC,mBAAoB,SACpBC,iBAAkB,aAClB1lY,UAQFwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uGAAsGvO,SAAA,EACnH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sEAAqEvO,SAAC,uBAGpF6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6EAA4EvO,SAAC,yFAWlG6hB,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,mBACN8sP,WACEiiF,EAAqBt4gB,OAAS,EAC1B,gCACA,QAGRwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4EAA2EvO,UACxF6hB,EAAAA,GAAAA,KAAA,OAAK,cAAY,cAActT,UAAU,YAAWvO,UAClDwhB,EAAAA,GAAAA,MAACg8Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SAAA,CACrD,IACA2zgB,EAAqBrvgB,KAAK4L,IAEvB2R,EAAAA,GAAAA,KAACu0a,GAAW,CACV3na,KAAMve,EACNwuB,GAAG,WACH5+B,KAAK,OACL+8a,UAAU,sBACVI,uBAAwBA,cASpCp7Z,EAAAA,GAAAA,KAACs0a,GAAY,CACXvxP,MAAM,gBACN8sP,WACEgiF,EAAkBr4gB,OAAS,EAAI,6BAA+B,QAGlEmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8EAA6EvO,SAAA,EAC1F6hB,EAAAA,GAAAA,KAAA,OACE,cAAY,cACZtT,UAAU,oCAAmCvO,UAE7C6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,IAAKs1J,GAAgBvkb,UAAU,mBAAkBvO,SACrD0zgB,EAAkBpvgB,KAAK4L,IAEpB2R,EAAAA,GAAAA,KAACu0a,GAAW,CACV3na,KAAMve,EACNwuB,GAAG,QACH5+B,KAAK,OACL+8a,UAAU,sBACVI,uBAAwBA,WAMlCp7Z,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,iGACNy6a,WAAYA,KACVpR,GAAuB,EAAM,SAI/B,8IC5EV,GA5Hcp7C,KAEVrgX,EAAAA,GAAAA,MAAA,OACE,cAAY,0BACZjT,UAAU,+BAA8BvO,SAAA,EAExC6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mGACVwc,MAAO,CACLu6W,gBAAiB,QAAQyvC,GAAcZ,yBACvCn0a,UAEF6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oFAAmFvO,UAChG6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4JAA2JvO,SAAC,uBAMhL6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,kJACvBsT,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,iJAEvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kJAAiJvO,SAAA,EAC9JwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yGAAwGvO,SAAA,EACrH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,oLACVwc,MAAO,CACLu6W,gBAAiB,OAAOsuI,UAG5B/xf,EAAAA,GAAAA,KAAA,OACEsrE,IAAKymb,GACL38Q,IAAI,mBACJ1oP,UAAU,wCAGdiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wHAAuHvO,SAAA,EACpI6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qBAAoBvO,UACjCwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,6GAA4GvO,SAAA,EACxH6hB,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,wBACN6hB,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,oBACN6hB,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,8BAGV6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iGAAgGvO,UAC7G6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,6LAiBTwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mJAAkJvO,SAAA,EAC/JwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4GAA2GvO,SAAA,EACxH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qBAAoBvO,UACjC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,6GAA4GvO,SAAC,4BAI7H6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iGAAgGvO,UAC7G6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAG,0MAgBPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yGAAwGvO,SAAA,EACrH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,oLACVwc,MAAO,CACLu6W,gBAAiB,OAAOuuI,UAG5Bhyf,EAAAA,GAAAA,KAAA,OACEsrE,IAAK0mb,GACL58Q,IAAI,mBACJ1oP,UAAU,sTC/GrB,gFAtBgB8I,IAA4C,IAA3C,OAAE+0C,EAAM,WAAEiiY,EAAU,QAAEwD,EAAO,KAAEj+a,GAAMyD,EAClD,MAAMqma,EAAcA,KAChB2Q,GAAW,EAAM,EAErB,OACIxsa,EAAAA,GAAAA,KAACysa,GAAM,CACHx5Z,SAAU,KACVwH,KAAM8vB,EACNo8X,QAAS9K,EACT,kBAAgB,0BAAyB19a,UAEzC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAChDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4BAA2BvO,SAAA,EACtC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,6BAA4BvO,SAAE6xb,KAC5Chwa,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,kBAAiBvO,SAAE4T,KAChCiO,EAAAA,GAAAA,KAAA,UAAQ/hB,KAAK,SAASo+J,QAASw/Q,EAAanva,UAAU,4EAA2EvO,SAAC,kBAGrI,GCoCZ8yb,GAAiB,CACrBvhK,aAAc,EACdyC,eAAgB,EAChB77M,MAAM,EACNi8M,cAAc,EACdhD,UAAU,EACV8B,eAAe,GAqsBjB,GA9oBc2uG,KAAO,IAADsvI,EAAA2C,EAAA5F,EAAA6F,EAAAC,EAAA7F,EAAAC,EAAA6F,EAAAzF,EAAAC,EAAAyF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClB,MAAM,YAAEC,EAAW,eAAEC,GAAmB9zM,MAClC,KAAE5wT,EAAI,UAAEssQ,EAAS,QAAEquI,GAAY+oB,GAA2B+gG,IACzDjG,GAAkBlyP,UAAWmyP,IAClClB,KACIptM,EAAWR,KAEXg1M,GAAqBhiV,EAAAA,EAAAA,QAAO,OAC3BiiV,EAAyBC,IAA8BjiV,EAAAA,EAAAA,UAAS,IAEvEN,EAAAA,EAAAA,YAAU,KACR,MAAMwiV,EAAwBA,KAC5B,IAAKH,EAAmBntgB,QACtB,OAGF,MAAMjM,EAAYo5gB,EAAmBntgB,QACrC,IAAIutgB,EAAmB,IAEnBx5gB,EAAU2rS,aAAe,MAC3B6tO,EAAmBx5gB,EAAU2rS,aAG/B,MAAM8tO,EACHz5gB,EAAU2rS,YAAc6tO,EAAoB,IAC/CF,EAA2BG,EAAsB,EAGnD,IAAI14P,EAQJ,OAJAw4P,IAEAt3e,OAAOtY,iBAAiB,SAAU4vf,GAE3B,IACEt3e,OAAOy+D,oBAAoB,SAAU64a,EAC7C,GACA,CAAC9kgB,IAEJ,MAAOilgB,EAAWC,IAAgBtiV,EAAAA,EAAAA,UAAS,CACzC,CACE1hB,IAAKikW,GACLzwU,MAAO,8BAET,CACExzB,IAAK,8DACLwzB,MAAO,8BAET,CACExzB,IAAKkkW,GACL1wU,MAAO,iCAIJ6yP,EAAQ89E,IAAaziV,EAAAA,EAAAA,UAAS,CACnC,CACE1hB,IAAKokW,GACL5wU,MAAO,0BACPvwL,QAAQ,GAEV,CACE+8J,IAAKqkW,GACL7wU,MAAO,yBACPvwL,QAAQ,MAILqhgB,EAAqBC,IAA0B7iV,EAAAA,EAAAA,UAAS,CAAC,IAsFzDx2J,EAAMs5e,IAAW9iV,EAAAA,EAAAA,WAAS,IAC1B67P,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,IA4DxD87U,EAAeC,IAAkB/7U,EAAAA,EAAAA,WAAS,IAMjDN,EAAAA,EAAAA,YAAU,KAIRq4N,GAAS,GACR,CAAC8pH,IAEJ,MAAOzF,EAAcC,IAAmBr8U,EAAAA,EAAAA,WAAS,IAC1Cs8U,EAAaC,IAAkBv8U,EAAAA,EAAAA,WAAS,IACxC4kQ,EAAe43E,IAAoBx8U,EAAAA,EAAAA,WAAS,IAC5Cy8U,EAAeC,IAAoB18U,EAAAA,EAAAA,UAAS,SAC5C28U,EAAcC,IAAmB58U,EAAAA,EAAAA,WAAS,IAC1CykQ,EAAoBs+E,KAAwB/iV,EAAAA,EAAAA,UAAS,IAErD+8U,GAAgBC,IAAiB/B,MAGxCv7U,EAAAA,EAAAA,YAAU,KAAO,IAADqiP,EAqBZ77X,aAAaixQ,QAAQ,gBACS,IAA1B,OAAJ/5S,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,OAAV,EAAJA,EAAgB/D,aArBlBrtV,iBACE,IAAK,IAADmxV,EAAAq7F,EAAA6F,EAAA3P,EAAAC,EAAAG,EAAAC,EACF,MAAMtrb,QAAY20b,GAAe,CAC/BryF,WAAgB,OAAJtta,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,GAAM,QAANq7F,EAAdr7F,EAAgB1ka,YAAI,IAAA+/f,OAAhB,EAAJA,EAAsB96Q,IAClCl3O,QAAsC,QAA/B63f,EAAEC,GAAUx+E,UAAmB,IAAAu+E,OAAA,EAA7BA,EAA+B3gR,IACxC+6Q,OAAO,IAGT,GACqC,IAAhC,OAAHh1b,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAU,QAAVC,EAATD,EAAW3pd,gBAAQ,IAAA4pd,OAAhB,EAAHA,EAAqBt1F,aACc,IAAhC,OAAH51V,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAU,QAAVC,EAATD,EAAW/pd,gBAAQ,IAAAgqd,OAAhB,EAAHA,EAAqB11F,YACrB,CAAC,IAADu1F,EAAAC,EAEA,MAAM3uE,EAAa,OAAHz8W,QAAG,IAAHA,GAAS,QAANmrb,EAAHnrb,EAAKhrE,YAAI,IAAAm2f,GAAU,QAAVC,EAATD,EAAW7pd,gBAAQ,IAAA8pd,OAAhB,EAAHA,EAAqBp2f,KAErCw/f,EAAgB/3E,EAClB,CACF,CAAE,MAAOp6b,IAAI,CACf,CAKE4ygB,EACF,GACC,CAACjggB,EAAMqnb,IAEV,MAkCM64E,GAAeA,KAAO,IAADC,EAAAC,EACzB5B,EAAe,CACbriU,SAAU,YACV8wO,OAAY,OAAJjta,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,OAAhB,EAAJA,EAAsBn7Q,IAC9B63Q,aAA+B,OAAjBuC,EAAyB,MAAQ,OAC/CtC,YAAa8I,GAAUx+E,GAAoBpiM,MAE1C16J,MAAMvf,IAAS,IAADurb,EAAAC,EACblvb,QAAQ/qB,IAAIyuB,EAAIhrE,MACuB,IAAhC,OAAHgrE,QAAG,IAAHA,GAAS,QAANurb,EAAHvrb,EAAKhrE,YAAI,IAAAu2f,GAAU,QAAVC,EAATD,EAAWjqd,gBAAQ,IAAAkqd,OAAhB,EAAHA,EAAqB51F,cACvBw+F,GAAiB,GACjBiB,KACF,IAED1pV,OAAO95I,IACNyqC,QAAQ/qB,IAAI1f,EAAI,GAChB,EAGAyje,GAAetK,IACU,IAADuK,EAAAC,EAAAsF,EAAArF,EAAAC,EAA5B,GAAqB,OAAjBrB,EACFlvM,EACE,+CAAmD,OAAJnwT,QAAI,IAAJA,GAAc,QAAVuggB,EAAJvggB,EAAMssC,gBAAQ,IAAAi0d,GAAM,QAANC,EAAdD,EAAgBvggB,YAAI,IAAAwggB,OAAhB,EAAJA,EAAsBhpI,oBAAiD,QAAxCsuI,EAAWD,GAAUx+E,UAAmB,IAAAy+E,OAAA,EAA7BA,EAA+B9kF,uBAA2B,OAAJhhb,QAAI,IAAJA,GAAc,QAAVyggB,EAAJzggB,EAAMssC,gBAAQ,IAAAm0d,GAAM,QAANC,EAAdD,EAAgBzggB,YAAI,IAAA0ggB,OAAhB,EAAJA,EAAsBz7Q,eAAe4gR,GAAUx+E,GAAoBpiM,YAE/M,GAAqB,QAAjBo6Q,EAAyB,CAAC,IAADsB,EAAAC,EAAAmF,EAAAlF,EAAAC,EAClC3wM,EACE,sDACM,OAAJnwT,QAAI,IAAJA,GAAc,QAAV2ggB,EAAJ3ggB,EAAMssC,gBAAQ,IAAAq0d,GAAM,QAANC,EAAdD,EAAgB3ggB,YAAI,IAAA4ggB,OAAhB,EAAJA,EAAsBppI,oBACb6wC,GACoB,QADO09F,EACpCF,GAAUx+E,UAAmB,IAAA0+E,OAAA,EAA7BA,EAA+B/kF,wBACd,OAAJhhb,QAAI,IAAJA,GAAc,QAAV6ggB,EAAJ7ggB,EAAMssC,gBAAQ,IAAAu0d,GAAM,QAANC,EAAdD,EAAgB7ggB,YAAI,IAAA8ggB,OAAhB,EAAJA,EAAsB77Q,eACnC4gR,GAAUx+E,GAAoBpiM,gBACnB+wQ,IAEjB,IAWA0G,IAEE18f,KAAMmhgB,GACN70P,UAAW80P,GACXzmH,QAAS0lH,GACT7xH,UAAW6yH,KAEXjE,MAEJ96U,EAAAA,EAAAA,YAAU,KAAO,IAADg/U,EACd,GAAID,IAAgE,IAA1B,OAAhBF,SAAgB,IAAhBA,IAA0B,QAAVG,EAAhBH,GAAkB70d,gBAAQ,IAAAg1d,OAAV,EAAhBA,EAA4B1gG,YAAiB,CAAC,IAAD2gG,EAAAC,EACrE,IAAIwE,EAA4B,OAAhB7E,SAAgB,IAAhBA,IAA0B,QAAVI,EAAhBJ,GAAkB70d,gBAAQ,IAAAi1d,GAAM,QAANC,EAA1BD,EAA4BvhgB,YAAI,IAAAwhgB,OAAhB,EAAhBA,EAAkCpkZ,MAAM7+F,IAAU,IAADwif,EAAAC,EAC/D,OACM,OAAJzif,QAAI,IAAJA,OAAI,EAAJA,EAAM0uZ,UAAc,OAAJjta,QAAI,IAAJA,GAAc,QAAV+ggB,EAAJ/ggB,EAAMssC,gBAAQ,IAAAy0d,GAAM,QAANC,EAAdD,EAAgB/ggB,YAAI,IAAAghgB,OAAhB,EAAJA,EAAsB/7Q,OAClC,OAAJ1mO,QAAI,IAAJA,OAAI,EAAJA,EAAM0nf,eAAgBJ,GAAUx+E,GAAoBpiM,GAAG,IAMzDm6Q,IADE4G,EAKN,IACC,CAAC5E,GAAmBphgB,EAAMqnb,KAE7B/kQ,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkB2iN,IAAoB,GAC1D,IAQK,OAAJ18f,QAAI,IAAJA,GAAAA,EAAMssC,UAAyC,IAA7BtsC,EAAKssC,SAASs0X,YAClCzwG,EAAS,2BAGX,IAAI01M,GAAY,GACsB,IAADpE,GAAAC,GAAH,IAA1B,OAAJ1hgB,QAAI,IAAJA,GAAc,QAAVihgB,EAAJjhgB,EAAMssC,gBAAQ,IAAA20d,OAAV,EAAJA,EAAgBrgG,cAClBilG,GAAgB,OAAJ7lgB,QAAI,IAAJA,GAAc,QAAVyhgB,GAAJzhgB,EAAMssC,gBAAQ,IAAAm1d,IAAM,QAANC,GAAdD,GAAgBzhgB,YAAI,IAAA0hgB,QAAhB,EAAJA,GAAsBmE,UAAU92gB,SAG9C,OAAIu9Q,GAEA36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6CAA4CvO,UACzD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAMXtjN,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gBAAevO,SAAA,CAC3BkvgB,IACCrtf,EAAAA,GAAAA,KAACkwf,GAAW,CACVz1e,KAAM4ye,EACN1mF,QA1IawpF,KACnB7C,GAAgB,EAAM,EA0IhBvH,OAAQwH,EACRvH,YAAanwE,EACbx4I,QAASyvN,EACThH,iBA1I0BsK,IAChCzC,EAAiByC,EAAS,EA0IpBnK,iBAvIsB5B,IAEP,OAAjBqJ,EAEEH,EACFgB,KAIAI,KAKsB,QAAjBjB,IAEHH,EACFgB,KAIAI,GAAYtK,GAEhB,EAiHM6B,yBAA0ByI,GAC1BxI,SAAuC,QAA/B8L,EAAEiC,GAAUx+E,UAAmB,IAAAu8E,OAAA,EAA7BA,EAA+B5iF,aAG7Crva,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4DAA2DvO,UACxEwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,EAAS,2BACxB9xT,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAwBV6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,UACnG6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAS,OAAJj9E,QAAI,IAAJA,GAAc,QAAVg+f,EAAJh+f,EAAMssC,gBAAQ,IAAA0xd,GAAM,QAAN6F,EAAd7F,EAAgBh+f,YAAI,IAAA6jgB,GAAgB,QAAhBC,EAApBD,EAAsBtsI,sBAAc,IAAAusI,OAAhC,EAAJA,EAAsCvwf,IAC3CwzO,IAAS,OAAJ/mP,QAAI,IAAJA,GAAc,QAAVi+f,EAAJj+f,EAAMssC,gBAAQ,IAAA2xd,GAAM,QAANC,EAAdD,EAAgBj+f,YAAI,IAAAk+f,GAAgB,QAAhB6F,EAApB7F,EAAsB3mI,sBAAc,IAAAwsI,OAAhC,EAAJA,EAAsCt4G,SAC3CzoP,QAAS77J,IAAwB,IAAvB,cAAEy2H,GAAez2H,EACzBy2H,EAAc/uD,QAAU,KACxB+uD,EAAc/iH,MAAM3K,QAAU,MAAM,EAEtC7R,UAAU,oCAIhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,gJACvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sHAAqHvO,SAAA,EAClIwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uBAAsBvO,SAAA,EAEnC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4BAA2BvO,SAClC,OAAJkQ,QAAI,IAAJA,GAAc,QAAVs+f,EAAJt+f,EAAMssC,gBAAQ,IAAAgyd,GAAM,QAANC,EAAdD,EAAgBt+f,YAAI,IAAAu+f,OAAhB,EAAJA,EAAsB/mI,aAEzB7lX,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mCAAkCvO,SAAC,iBAC5C,OAAJkQ,QAAI,IAAJA,GAAc,QAAVgkgB,EAAJhkgB,EAAMssC,gBAAQ,IAAA03d,GAAM,QAANC,EAAdD,EAAgBhkgB,YAAI,IAAAikgB,GAAiB,QAAjBC,EAApBD,EAAsBjC,uBAAe,IAAAkC,OAAjC,EAAJA,EAAuC9vgB,KAAI,CAACmqB,EAAMxxB,KACjD4kB,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,gIACVqhK,wBAAyB,CACvB2W,OAAQ7iD,KAAAA,SAAmBj1G,KAHxBxxB,SAiBXukB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sGAAqGvO,SAAA,EAElH6hB,EAAAA,GAAAA,KAACwwf,GAAQ,CACPvygB,KA9HM,cA+HN43b,cAAeA,EAEfC,SAAS,EACTn7K,UAAkC,QAAzB63P,EAAEvE,GAActzP,iBAAS,IAAA63P,GAAAA,EAClCt8E,KAAK,UACLnzP,MAAM,gBACNm0O,MAAO,IAAiC,QAAjCu7F,EAAIyB,GAAUx+E,UAAmB,IAAA+8E,OAAA,EAA7BA,EAA+BpjF,YAC1ClU,KAAM7E,GACyB,QADJo8F,EACzBwB,GAAUx+E,UAAmB,IAAAg9E,OAAA,EAA7BA,EAA+BrjF,WAEjC7C,WAAa9wb,IAAO,IAAD64gB,EAAAC,EAAAC,EAAAC,EArWX74F,CAACngb,IAIT,YAANA,GACF0/a,GAAuB,GAIf,WAAN1/a,IACF4xgB,GAAgB,GAChBE,GAAe,GAIjB,EAuVY3xF,CACEngb,EACI,OAAJ2S,QAAI,IAAJA,GAAc,QAAVkmgB,EAAJlmgB,EAAMssC,gBAAQ,IAAA45d,GAAM,QAANC,EAAdD,EAAgBlmgB,YAAI,IAAAmmgB,GAApBA,EAAsBhqU,SAClB,OAAJn8L,QAAI,IAAJA,GAAc,QAAVomgB,EAAJpmgB,EAAMssC,gBAAQ,IAAA85d,GAAM,QAANC,EAAdD,EAAgBpmgB,YAAI,IAAAqmgB,GAApBA,EAAsBphR,IACvB,EAEH8hM,YAAaA,KACXk4E,GAAgB,GAChBE,GAAe,EAAM,EAEvB93E,mBAAoBA,EACpBC,cAAgBl1X,GAAQuzc,GAAqBvzc,GAC7Cm1X,OAAQs+E,GAAUzxgB,KAAKmqB,GAASA,EAAK+nf,eAEvC30f,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,4GACNy6a,WAAYA,KACVpR,GAAuB,EAAM,WAKrCz7Z,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,SAAC,YACtD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sEAAqEvO,SACxE,QADwEw0gB,EACjFuB,UAAS,IAAAvB,OAAA,EAATA,EAAWlwgB,KAAI,CAACmqB,EAAMxxB,KAAC,IAAAi4b,EAAA,OACtB1za,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,wCACTtR,IAAMs6b,EACF,aACA,yBACF9oa,EAAKgof,WAAa,cAAgB,oBAEtCv4W,QAASA,IAAM23W,GAAqB54gB,GAAG+C,UAEvC6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAmB,QAAhB+nW,EAAEzma,EAAKuia,iBAAS,IAAAkE,OAAA,EAAdA,EAAgBzxa,IACrBwzO,IAAKxoO,EAAK+nf,UACVjogB,UAAU,2CANPtR,IASP4kB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,mBAAkBvO,SAAM,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM+nf,cAhBV/nf,EAAK0mO,IAiB9B,UAIZ3zO,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,SAAC,iBACtD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,aAAavH,IAAK6tgB,EAAmB70gB,UAClD6hB,EAAAA,GAAAA,KAAC60f,GAAAA,EAAW,IACN5jF,GACJvhK,aAAcujP,EACdvmgB,UAAU,mBAAkBvO,SAE3B+1gB,GAAUx+E,GAAoBo/E,gBAAgBrygB,KAAKmqB,IAEhD5M,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,iCAAgCvO,UAE1C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,6BACV4+E,IAAK1+D,EAAKhL,IACVwzO,IAAI,MANDxoO,EAAK0mO,YAapB3zO,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,QAAOvO,SAAA,EACpB6hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLo+J,QAASA,IAAM03W,GAAQ,GACvBrngB,UAAU,2GAA0GvO,SACrH,gCAGD6hB,EAAAA,GAAAA,KAAC29P,GAAO,CACNpzN,OAAQ9vB,EACR1oB,KAAK,gGACLi+a,QAAQ,6BACRxD,WAAYA,IAAMunF,GAAQ,YAIhC/zf,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,2JAEzBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gEAA+DvO,SAAA,EAC5EwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kBAAiBvO,SAAA,EAC9B6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,SAAC,iDAGjE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,wDAAuDvO,SAAC,yPAOvE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uDAAsDvO,SAClEm1gB,EAAU7wgB,KAAI,CAACmqB,EAAMxxB,KACpB4kB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCAA+BvO,UAC5C6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK1+D,EAAK2iJ,IACV6lF,IAAKxoO,EAAKm2K,MACVr2L,UAAU,gCAJsCtR,WAU1D4kB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCAYdqggB,GACC/sf,EAAAA,GAAAA,KAAC2wf,GAAiB,CAChBtI,kBAzauBuI,KAC7B5D,GAAgBD,EAAc,EAyaxBzE,WAAgB,OAAJj6f,QAAI,IAAJA,GAAc,QAAVukgB,EAAJvkgB,EAAMssC,gBAAQ,IAAAi4d,GAAM,QAANC,EAAdD,EAAgBvkgB,YAAI,IAAAwkgB,OAAhB,EAAJA,EAAsBv/Q,IAClCthL,YAAa,eAGfhyD,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,MAEE,EC9NV,GAjgBc3C,KAAO,IAADqsI,EAAAC,EAAAC,EAAAwI,EAAAC,EAAAC,EAAAtI,EAAAC,EAClB,MAAMpuM,EAAWR,KACXntT,EAASouT,MACT,aAAE01H,EAAY,KAAE/na,GAAS/b,GACzB,KAAExC,EAAI,UAAEssQ,EAAS,QAAEquI,GAAYilC,GAA0Brha,IACxDigf,GAAkBlyP,UAAWmyP,IAClClB,MAEKmB,EAAeC,IAAkB/7U,EAAAA,EAAAA,WAAS,IAC1CikV,EAAcC,IAAmBlkV,EAAAA,EAAAA,UAAS,CAAC,IAC3Ck8U,EAAgBC,IAAmBn8U,EAAAA,EAAAA,WAAS,IAqD5C67P,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,IAgB/DN,EAAAA,EAAAA,YAAU,KACJtiL,GAAqC,IAA7BA,EAAKssC,SAASs0X,WACxBkmG,EAAgB9mgB,EAAKssC,SAAStsC,MACrBA,GACTmwT,EAAS,wBACX,GACC,CAACnwT,IACJ,MAkCOg/f,EAAcC,IAAmBr8U,EAAAA,EAAAA,WAAS,IAC1Cs8U,EAAaC,IAAkBv8U,EAAAA,EAAAA,WAAS,IACxC4kQ,EAAe43E,IAAoBx8U,EAAAA,EAAAA,WAAS,IAC5Cy8U,EAAeC,IAAoB18U,EAAAA,EAAAA,UAAS,SAC5C28U,EAAcC,IAAmB58U,EAAAA,EAAAA,WAAS,IAC1C68U,EAAmBC,IAAwB98U,EAAAA,EAAAA,WAAS,IAEpD+8U,EAAgBC,GAAiB/B,MACjCgC,EAAgBC,GACrBhC,MAEFx7U,EAAAA,EAAAA,YAAU,KAAO,IAADqiP,EAmBZ77X,aAAaixQ,QAAQ,gBACS,IAA1B,OAAJ/5S,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,OAAV,EAAJA,EAAgB/D,aAnBlBrtV,iBACE,IAAK,IAADmxV,EAAAq7F,EAAA1J,EAAAC,EACF,MAAMtrb,QAAY20b,EAAe,CAC/BryF,WAAgB,OAAJtta,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,GAAM,QAANq7F,EAAdr7F,EAAgB1ka,YAAI,IAAA+/f,OAAhB,EAAJA,EAAsB96Q,IAClC+6Q,OAAO,IAGkC,IAAD7J,EAAAC,EAA1C,GAAuC,IAAhC,OAAHprb,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAU,QAAVC,EAATD,EAAW/pd,gBAAQ,IAAAgqd,OAAhB,EAAHA,EAAqB11F,aAEJ,OAAH51V,QAAG,IAAHA,GAAS,QAANmrb,EAAHnrb,EAAKhrE,YAAI,IAAAm2f,GAAU,QAAVC,EAATD,EAAW7pd,gBAAQ,IAAA8pd,OAAhB,EAAHA,EAAqBp2f,OAGnCw/f,GAAgB,EAGtB,CAAE,MAAOnygB,IAAI,CACf,CAKE4ygB,EACF,GACC,CAACjggB,IAEJ,MAkCMkggB,EAAeA,KAAO,IAADC,EAAAC,EACzB5B,EAAe,CACbriU,SAAU,WACV8wO,OAAY,OAAJjta,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,OAAhB,EAAJA,EAAsBn7Q,IAC9B63Q,aAA+B,OAAjBuC,EAAyB,MAAQ,SAE9C90a,MAAMvf,IAAS,IAADurb,EAAAC,EACblvb,QAAQ/qB,IAAIyuB,EAAIhrE,MACuB,IAAhC,OAAHgrE,QAAG,IAAHA,GAAS,QAANurb,EAAHvrb,EAAKhrE,YAAI,IAAAu2f,GAAU,QAAVC,EAATD,EAAWjqd,gBAAQ,IAAAkqd,OAAhB,EAAHA,EAAqB51F,cACvBw+F,GAAiB,GACjBiB,IACF,IAED1pV,OAAO95I,IACNyqC,QAAQ/qB,IAAI1f,EAAI,GAChB,EAGAyje,EAAetK,IACU,IAADuK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAA5B,GAAqB,OAAjBvB,EACFlvM,EACE,8CAAkD,OAAJnwT,QAAI,IAAJA,GAAc,QAAVuggB,EAAJvggB,EAAMssC,gBAAQ,IAAAi0d,GAAM,QAANC,EAAdD,EAAgBvggB,YAAI,IAAAwggB,OAAhB,EAAJA,EAAsBhpI,oBAAwB,OAAJx3X,QAAI,IAAJA,GAAc,QAAVyggB,EAAJzggB,EAAMssC,gBAAQ,IAAAm0d,GAAM,QAANC,EAAdD,EAAgBzggB,YAAI,IAAA0ggB,OAAhB,EAAJA,EAAsB1/E,uBAA2B,OAAJhhb,QAAI,IAAJA,GAAc,QAAV2ggB,EAAJ3ggB,EAAMssC,gBAAQ,IAAAq0d,GAAM,QAANC,EAAdD,EAAgB3ggB,YAAI,IAAA4ggB,OAAhB,EAAJA,EAAsB37Q,YAExJ,GAAqB,QAAjBo6Q,EAAyB,CAAC,IAADwB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClC/wM,EACE,qDACM,OAAJnwT,QAAI,IAAJA,GAAc,QAAV6ggB,EAAJ7ggB,EAAMssC,gBAAQ,IAAAu0d,GAAM,QAANC,EAAdD,EAAgB7ggB,YAAI,IAAA8ggB,OAAhB,EAAJA,EAAsBtpI,oBACb6wC,GACL,OAAJroa,QAAI,IAAJA,GAAc,QAAV+ggB,EAAJ/ggB,EAAMssC,gBAAQ,IAAAy0d,GAAM,QAANC,EAAdD,EAAgB/ggB,YAAI,IAAAghgB,OAAhB,EAAJA,EAAsBhgF,wBACL,OAAJhhb,QAAI,IAAJA,GAAc,QAAVihgB,EAAJjhgB,EAAMssC,gBAAQ,IAAA20d,GAAM,QAANC,EAAdD,EAAgBjhgB,YAAI,IAAAkhgB,OAAhB,EAAJA,EAAsBj8Q,gBAAgB+wQ,IAEzD,IAKA0G,GAEE18f,KAAMmhgB,EACN70P,UAAW80P,EACXzmH,QAAS0lH,EACT7xH,UAAW6yH,IAEXjE,MAGJ96U,EAAAA,EAAAA,YAAU,KAAO,IAADg/U,EACd,GAAID,GAAgE,IAA1B,OAAhBF,QAAgB,IAAhBA,GAA0B,QAAVG,EAAhBH,EAAkB70d,gBAAQ,IAAAg1d,OAAV,EAAhBA,EAA4B1gG,YAAiB,CAAC,IAAD2gG,EAAAC,EAAAC,EAAAC,EACrE,MAAMC,EAA2B,OAAhBR,QAAgB,IAAhBA,GAA0B,QAAVI,EAAhBJ,EAAkB70d,gBAAQ,IAAAi1d,GAAM,QAANC,EAA1BD,EAA4BvhgB,YAAI,IAAAwhgB,OAAhB,EAAhBA,EAAkCptgB,KAChDmqB,GAAa,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM0uZ,SAEN,OAAR00F,QAAQ,IAARA,GAAAA,EAAUzod,SAAa,OAAJl5C,QAAI,IAAJA,GAAc,QAAVyhgB,EAAJzhgB,EAAMssC,gBAAQ,IAAAm1d,GAAM,QAANC,EAAdD,EAAgBzhgB,YAAI,IAAA0hgB,OAAhB,EAAJA,EAAsBz8Q,MAC3Cm6Q,GAAiB,EAErB,IACC,CAACgC,EAAmBphgB,KAEvBsiL,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkB2iN,GAAoB,GAC1D,IAEH,IAAIkF,EAAc,OAWlB,OAVgB,OAAZiF,QAAY,IAAZA,GAAAA,EAAc7lF,WAAwC,IAAf,OAAZ6lF,QAAY,IAAZA,OAAY,EAAZA,EAAc7lF,aAC3C4gF,EAAc,UAEZp6E,IACFo6E,EAAc,aAEZrC,IACFqC,EAAc,YAIdtwf,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gBAAevO,SAAA,CAC3BkvgB,IACCrtf,EAAAA,GAAAA,KAACkwf,GAAW,CACVz1e,KAAM4ye,EACN1mF,QA/GawpF,KACnB7C,GAAgB,EAAM,EA+GhBvH,OAAQwH,EACRvH,YAAanwE,EACbx4I,QAASyvN,EACThH,iBA/G0BsK,IAChCzC,EAAiByC,EAAS,EA+GpBnK,iBA5GsB5B,IAEP,OAAjBqJ,EAEEH,EACFgB,IAIAI,IAKsB,QAAjBjB,IAEHH,EACFgB,IAIAI,EAAYtK,GAEhB,EAsFM6B,yBAA0ByI,EAC1BxI,SAAsB,OAAZ+O,QAAY,IAAZA,OAAY,EAAZA,EAAc7lF,aAG5Brva,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4DAA2DvO,UACxEwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IACPmiK,EACE,kCAA8C,OAAZ02M,QAAY,IAAZA,OAAY,EAAZA,EAAc1nF,aAGpD9gb,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAwBVwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,CACvEw8Q,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEwB,KAA3B,OAAJ50N,QAAI,IAAJA,GAAc,QAAVg+f,EAAJh+f,EAAMssC,gBAAQ,IAAA0xd,OAAV,EAAJA,EAAgBp9F,aACe,KAA7B,OAAJ5ga,QAAI,IAAJA,GAAc,QAAVi+f,EAAJj+f,EAAMssC,gBAAQ,IAAA2xd,GAAM,QAANC,EAAdD,EAAgBj+f,YAAI,IAAAk+f,OAAhB,EAAJA,EAAsB/ygB,QACtB,WAEAmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wFAAuFvO,SAAA,EAQpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mCAAkCvO,UAC/C6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAiB,OAAZ4pb,QAAY,IAAZA,GAA4B,QAAhBH,EAAZG,EAActvI,sBAAc,IAAAmvI,OAAhB,EAAZA,EAA8Bnzf,IACnCwzO,IAAiB,OAAZ8/Q,QAAY,IAAZA,GAA4B,QAAhBF,EAAZE,EAActvI,sBAAc,IAAAovI,OAAhB,EAAZA,EAA8Bl7G,SACnCzoP,QAAS77J,IAAwB,IAAvB,cAAEy2H,GAAez2H,EACzBy2H,EAAc/uD,QAAU,KACxB+uD,EAAc/iH,MAAM3K,QAAU,MAAM,EAEtC7R,UAAU,uDAIhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iFAAgFvO,SAAA,EAC7F6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,UACjD,OAAZ+2gB,QAAY,IAAZA,OAAY,EAAZA,EAAcrvI,YAAa,MAE9BlmX,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uDAAsDvO,SAAC,eAGrE6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+CAA8CvO,SAC/C,OAAZw2b,QAAY,IAAZA,OAAY,EAAZA,EAAczqb,oBAInByV,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gCAA+BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uDAAsDvO,SAAC,iBAGpEkQ,IACa,OAAZ6mgB,QAAY,IAAZA,GAA6B,QAAjBD,EAAZC,EAAc7E,uBAAe,IAAA4E,OAAjB,EAAZA,EAA+BxygB,KAAI,CAAC6tgB,EAAYvzgB,KAC9CijB,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,0HACVwc,MAAO,CACLqnf,UAAW,cAEbxiW,wBAAyB,CACvB2W,OAAQ7iD,KAAAA,SAAmByuY,KANxBvzgB,UAiBbijB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mDAAkDvO,UAC/DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kCAAiCvO,SAAA,CAChC,OAAb8vgB,QAAa,IAAbA,GAAAA,EAAetzP,WAAawzP,EAAmBxzP,WAC9C36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6CAA4CvO,UACzD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGTtjN,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG,KACD6hB,EAAAA,GAAAA,KAACwwf,GAAQ,CACPvygB,KAAMgygB,EACN/5E,KAAK,UACLnzP,MAAM,oBACNm0O,MAAO,KAAiB,OAAZg+F,QAAY,IAAZA,OAAY,EAAZA,EAAc7lF,YAC1B7C,WAAa9wb,IAjUfkmF,WAClB,GAAU,YAANlmF,EAAiB,CAAC,IAAD4ogB,EAAAC,EACnB,IAAIkM,EAAQt5d,aAAaixQ,QAAQ,YACjC,IAAKqoN,EAAO,OAMZ,GAJAA,EAAQ16f,KAAK7V,MAAMuwgB,IAEPA,EAAM5ze,GAER,OAEV,MAAMw8C,QAAY60b,EAAe,CAC/BvyF,WAAYu5F,EAAa5hR,IACzBo9Q,aAAc,aAGuB,IAAhC,OAAHr3b,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAU,QAAVC,EAATD,EAAW3pd,gBAAQ,IAAA4pd,OAAhB,EAAHA,EAAqBt1F,cACvB4+F,GAAgB,GAChBE,GAAqB,GAEzB,CACU,YAANrygB,GACF0/a,GAAuB,GAIf,WAAN1/a,IACF4xgB,GAAgB,GAChBE,GAAe,GAGjB,EAmSsB3xF,CACEngb,EACY,OAAZw5gB,QAAY,IAAZA,GAAAA,EAAc1qU,SACF,OAAZ0qU,QAAY,IAAZA,GAAAA,EAAc5hR,IACf,EAEH8hM,YAAaA,KACXk4E,GAAgB,GAChBE,GAAe,EAAM,QAK7Bxtf,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,4GACNy6a,WAAYA,KACVpR,GAAuB,EAAM,gBAkC3Cp7Z,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sDAAqDvO,UAClE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yCAKhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gCAA+BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAACs0a,GAAY,CAACvxP,MAAO,wBACrB/iL,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4EAA2EvO,UAExF6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sEAAqEvO,SAjcxE,CACpB,CACE0+B,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,GAEZ,CACEj+Y,GAAI,EACJmzZ,QAAS,qBACTlV,UAAU,IA2Zar4a,KAAK4L,IAEhB2R,EAAAA,GAAAA,KAACu0a,GAAW,CACV3na,KAAMve,EACNwuB,GAAI,WACJm+Y,UAAW,qCAyBxB+xF,GACC/sf,EAAAA,GAAAA,KAAC2wf,GAAiB,CAChBtI,kBAteuBuI,KAC7B5D,GAAgBD,EAAc,EAsexBzE,WAAgB,OAAJj6f,QAAI,IAAJA,GAAc,QAAVs+f,EAAJt+f,EAAMssC,gBAAQ,IAAAgyd,GAAM,QAANC,EAAdD,EAAgBt+f,YAAI,IAAAu+f,OAAhB,EAAJA,EAAsBt5Q,IAClCthL,YAAa,cAGfhyD,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,MAEE,ECpBV,GA1ec3C,KAAO,IAADqsI,EAAAC,EAAAC,EAAA6I,EAAAC,EAAAC,EAAA3I,EAAAC,EAClB,MAAMpuM,EAAWR,KACXntT,EAASouT,MACT,aAAE01H,EAAY,KAAE/na,GAAS/b,GACzB,KAAExC,EAAI,UAAEssQ,EAAS,QAAEquI,GAAYklC,GAAwBtha,IACtDugf,EAAgBC,IAAmBn8U,EAAAA,EAAAA,WAAS,IAM5C87U,EAAeC,IAAkB/7U,EAAAA,EAAAA,WAAS,IAE1C47U,GAAkBlyP,UAAWmyP,IAClClB,MAEK2J,EAAYC,IAAiBvkV,EAAAA,EAAAA,UAAS,CAAC,IAiDvC67P,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,IAgB/DN,EAAAA,EAAAA,YAAU,KACJtiL,GAAqC,IAA7BA,EAAKssC,SAASs0X,WACxBumG,EAAcnngB,EAAKssC,SAAStsC,MACnBA,GACTmwT,EAAS,uBACX,GACC,CAACnwT,IACJ,MAkCOg/f,EAAcC,IAAmBr8U,EAAAA,EAAAA,WAAS,IAC1Cs8U,EAAaC,IAAkBv8U,EAAAA,EAAAA,WAAS,IACxC4kQ,EAAe43E,IAAoBx8U,EAAAA,EAAAA,WAAS,IAC5Cy8U,EAAeC,IAAoB18U,EAAAA,EAAAA,UAAS,SAC5C28U,EAAcC,IAAmB58U,EAAAA,EAAAA,WAAS,IAC1C68U,EAAmBC,IAAwB98U,EAAAA,EAAAA,WAAS,IAEpD+8U,EAAgBC,GAAiB/B,MACjCgC,EAAgBC,GACrBhC,MAEFx7U,EAAAA,EAAAA,YAAU,KAAO,IAADqiP,EAmBZ77X,aAAaixQ,QAAQ,gBACS,IAA1B,OAAJ/5S,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,OAAV,EAAJA,EAAgB/D,aAnBlBrtV,iBACE,IAAK,IAADmxV,EAAAq7F,EAAA1J,EAAAC,EACF,MAAMtrb,QAAY20b,EAAe,CAC/BryF,WAAgB,OAAJtta,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,GAAM,QAANq7F,EAAdr7F,EAAgB1ka,YAAI,IAAA+/f,OAAhB,EAAJA,EAAsB96Q,IAClC+6Q,OAAO,IAGkC,IAAD7J,EAAAC,EAA1C,GAAuC,IAAhC,OAAHprb,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAU,QAAVC,EAATD,EAAW/pd,gBAAQ,IAAAgqd,OAAhB,EAAHA,EAAqB11F,aAEJ,OAAH51V,QAAG,IAAHA,GAAS,QAANmrb,EAAHnrb,EAAKhrE,YAAI,IAAAm2f,GAAU,QAAVC,EAATD,EAAW7pd,gBAAQ,IAAA8pd,OAAhB,EAAHA,EAAqBp2f,OAGnCw/f,GAAgB,EAGtB,CAAE,MAAOnygB,IAAI,CACf,CAKE4ygB,EACF,GACC,CAACjggB,IAEJ,MAkCMkggB,EAAeA,KAAO,IAADC,EAAAC,EACzB5B,EAAe,CACbriU,SAAU,SACV8wO,OAAY,OAAJjta,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,OAAhB,EAAJA,EAAsBn7Q,IAC9B63Q,aAA+B,OAAjBuC,EAAyB,MAAQ,SAE9C90a,MAAMvf,IAAS,IAADurb,EAAAC,EACblvb,QAAQ/qB,IAAIyuB,EAAIhrE,MACuB,IAAhC,OAAHgrE,QAAG,IAAHA,GAAS,QAANurb,EAAHvrb,EAAKhrE,YAAI,IAAAu2f,GAAU,QAAVC,EAATD,EAAWjqd,gBAAQ,IAAAkqd,OAAhB,EAAHA,EAAqB51F,cACvBw+F,GAAiB,GACjBiB,IACF,IAED1pV,OAAO95I,IACNyqC,QAAQ/qB,IAAI1f,EAAI,GAChB,EAGAyje,EAAetK,IACU,IAADuK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAA5B,GAAqB,OAAjBvB,EACFlvM,EACE,4CAAgD,OAAJnwT,QAAI,IAAJA,GAAc,QAAVuggB,EAAJvggB,EAAMssC,gBAAQ,IAAAi0d,GAAM,QAANC,EAAdD,EAAgBvggB,YAAI,IAAAwggB,OAAhB,EAAJA,EAAsBhpI,oBAAwB,OAAJx3X,QAAI,IAAJA,GAAc,QAAVyggB,EAAJzggB,EAAMssC,gBAAQ,IAAAm0d,GAAM,QAANC,EAAdD,EAAgBzggB,YAAI,IAAA0ggB,OAAhB,EAAJA,EAAsB1/E,uBAA2B,OAAJhhb,QAAI,IAAJA,GAAc,QAAV2ggB,EAAJ3ggB,EAAMssC,gBAAQ,IAAAq0d,GAAM,QAANC,EAAdD,EAAgB3ggB,YAAI,IAAA4ggB,OAAhB,EAAJA,EAAsB37Q,YAEtJ,GAAqB,QAAjBo6Q,EAAyB,CAAC,IAADwB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClC/wM,EACE,mDACM,OAAJnwT,QAAI,IAAJA,GAAc,QAAV6ggB,EAAJ7ggB,EAAMssC,gBAAQ,IAAAu0d,GAAM,QAANC,EAAdD,EAAgB7ggB,YAAI,IAAA8ggB,OAAhB,EAAJA,EAAsBtpI,oBACb6wC,GACL,OAAJroa,QAAI,IAAJA,GAAc,QAAV+ggB,EAAJ/ggB,EAAMssC,gBAAQ,IAAAy0d,GAAM,QAANC,EAAdD,EAAgB/ggB,YAAI,IAAAghgB,OAAhB,EAAJA,EAAsBhgF,wBACL,OAAJhhb,QAAI,IAAJA,GAAc,QAAVihgB,EAAJjhgB,EAAMssC,gBAAQ,IAAA20d,GAAM,QAANC,EAAdD,EAAgBjhgB,YAAI,IAAAkhgB,OAAhB,EAAJA,EAAsBj8Q,gBAAgB+wQ,IAEzD,IAKA0G,GAEE18f,KAAMmhgB,EACN70P,UAAW80P,EACXzmH,QAAS0lH,EACT7xH,UAAW6yH,IAEXjE,MAGJ96U,EAAAA,EAAAA,YAAU,KAAO,IAADg/U,EACd,GAAID,GAAgE,IAA1B,OAAhBF,QAAgB,IAAhBA,GAA0B,QAAVG,EAAhBH,EAAkB70d,gBAAQ,IAAAg1d,OAAV,EAAhBA,EAA4B1gG,YAAiB,CAAC,IAAD2gG,EAAAC,EAAAC,EAAAC,EACrE,MAAMC,EAA2B,OAAhBR,QAAgB,IAAhBA,GAA0B,QAAVI,EAAhBJ,EAAkB70d,gBAAQ,IAAAi1d,GAAM,QAANC,EAA1BD,EAA4BvhgB,YAAI,IAAAwhgB,OAAhB,EAAhBA,EAAkCptgB,KAChDmqB,GAAa,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM0uZ,SAEN,OAAR00F,QAAQ,IAARA,GAAAA,EAAUzod,SAAa,OAAJl5C,QAAI,IAAJA,GAAc,QAAVyhgB,EAAJzhgB,EAAMssC,gBAAQ,IAAAm1d,GAAM,QAANC,EAAdD,EAAgBzhgB,YAAI,IAAA0hgB,OAAhB,EAAJA,EAAsBz8Q,MAC3Cm6Q,GAAiB,EAErB,IACC,CAACgC,EAAmBphgB,KACvBsiL,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkB2iN,GAAoB,GAC1D,IACH,IAAIkF,EAAc,OAWlB,OAVc,OAAVsF,QAAU,IAAVA,GAAAA,EAAYlmF,WAAsC,IAAf,OAAVkmF,QAAU,IAAVA,OAAU,EAAVA,EAAYlmF,aACvC4gF,EAAc,UAEZp6E,IACFo6E,EAAc,aAEZrC,IACFqC,EAAc,YAIdtwf,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gBAAevO,SAAA,CAC3BkvgB,IACCrtf,EAAAA,GAAAA,KAACkwf,GAAW,CACVz1e,KAAM4ye,EACN1mF,QA7GawpF,KACnB7C,GAAgB,EAAM,EA6GhBvH,OAAQwH,EACRvH,YAAanwE,EACbx4I,QAASyvN,EACThH,iBA7G0BsK,IAChCzC,EAAiByC,EAAS,EA6GpBnK,iBA1GsB5B,IAEP,OAAjBqJ,EAEEH,EACFgB,IAIAI,IAKsB,QAAjBjB,IAEHH,EACFgB,IAIAI,EAAYtK,GAEhB,EAoFM6B,yBAA0ByI,EAC1BxI,SAAoB,OAAVoP,QAAU,IAAVA,OAAU,EAAVA,EAAYlmF,aAG1Brva,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4DAA2DvO,UACxEwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,GAAU,GACzB9xT,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAwBVwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,CACvEw8Q,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uBAAsBvO,UACnC6hB,EAAAA,GAAAA,KAACijN,GAAM,MAEwB,KAA3B,OAAJ50N,QAAI,IAAJA,GAAc,QAAVg+f,EAAJh+f,EAAMssC,gBAAQ,IAAA0xd,OAAV,EAAJA,EAAgBp9F,aACe,KAA7B,OAAJ5ga,QAAI,IAAJA,GAAc,QAAVi+f,EAAJj+f,EAAMssC,gBAAQ,IAAA2xd,GAAM,QAANC,EAAdD,EAAgBj+f,YAAI,IAAAk+f,OAAhB,EAAJA,EAAsB/ygB,QACtB,WAEAmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wFAAuFvO,SAAA,EAQpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mCAAkCvO,UAC/C6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAe,OAAViqb,QAAU,IAAVA,GAA0B,QAAhBH,EAAVG,EAAY3vI,sBAAc,IAAAwvI,OAAhB,EAAVA,EAA4Bxzf,IACjCwzO,IAAe,OAAVmgR,QAAU,IAAVA,GAA0B,QAAhBF,EAAVE,EAAY3vI,sBAAc,IAAAyvI,OAAhB,EAAVA,EAA4Bv7G,SACjCzoP,QAAS77J,IAAwB,IAAvB,cAAEy2H,GAAez2H,EACzBy2H,EAAc/uD,QAAU,KACxB+uD,EAAc/iH,MAAM3K,QAAU,MAAM,EAEtC7R,UAAU,uDAIhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iFAAgFvO,SAAA,EAC7F6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,UACnD,OAAVo3gB,QAAU,IAAVA,OAAU,EAAVA,EAAY1vI,YAAa,MAE5BlmX,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6BAA4BvO,SAAA,EACzC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uDAAsDvO,SAAC,eAGrE6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+CAA8CvO,SAC/C,OAAZw2b,QAAY,IAAZA,OAAY,EAAZA,EAAczqb,oBAInByV,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gCAA+BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,uDAAsDvO,SAAC,iBAGpEkQ,IACW,OAAVkngB,QAAU,IAAVA,GAA2B,QAAjBD,EAAVC,EAAYlF,uBAAe,IAAAiF,OAAjB,EAAVA,EAA6B7ygB,KAAI,CAAC6tgB,EAAYvzgB,KAC5CijB,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,0HACVwc,MAAO,CACLqnf,UAAW,cAEbxiW,wBAAyB,CACvB2W,OAAQ7iD,KAAAA,SAAmByuY,KANxBvzgB,UAiBbijB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,mDAAkDvO,UAC/D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kCAAiCvO,SAChC,OAAb8vgB,QAAa,IAAbA,GAAAA,EAAetzP,WAA+B,OAAlBwzP,QAAkB,IAAlBA,GAAAA,EAAoBxzP,WAC/C36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6CAA4CvO,UACzD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGTtjN,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG,KACD6hB,EAAAA,GAAAA,KAACwwf,GAAQ,CACPvygB,KAAMgygB,EACNx6E,UAAWq4E,EACX53E,KAAK,UACLnzP,MAAM,kBACNm0O,MAAO,KAAe,OAAVq+F,QAAU,IAAVA,OAAU,EAAVA,EAAYlmF,YACxB7C,WAAa9wb,IA5TfkmF,WAClB,GAAU,YAANlmF,EAAiB,CAAC,IAAD4ogB,EAAAC,EACnB,IAAIkM,EAAQt5d,aAAaixQ,QAAQ,YACjC,IAAKqoN,EAAO,OAMZ,GAJAA,EAAQ16f,KAAK7V,MAAMuwgB,IAEPA,EAAM5ze,GAER,OAEV,MAAMw8C,QAAY60b,EAAe,CAC/BvyF,WAAY45F,EAAWjiR,IACvBo9Q,aAAc,WAGuB,IAAhC,OAAHr3b,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAU,QAAVC,EAATD,EAAW3pd,gBAAQ,IAAA4pd,OAAhB,EAAHA,EAAqBt1F,cACvB4+F,GAAgB,GAChBE,GAAqB,GAEzB,CACU,YAANrygB,GACF0/a,GAAuB,GAIf,WAAN1/a,IACF4xgB,GAAgB,GAChBE,GAAe,GAGjB,EA8RsB3xF,CAAYngb,EAAa,OAAV65gB,QAAU,IAAVA,GAAAA,EAAY/qU,SAAoB,OAAV+qU,QAAU,IAAVA,GAAAA,EAAYjiR,IAAI,EAEvD8hM,YAAaA,KACXk4E,GAAgB,GAChBE,GAAe,EAAM,KAGzBxtf,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,4GACNy6a,WAAYA,KACVpR,GAAuB,EAAM,kBAqC/Cp7Z,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2DAwBhBqggB,GACC/sf,EAAAA,GAAAA,KAAC2wf,GAAiB,CAChBtI,kBA7cuBuI,KAC7B5D,GAAgBD,EAAc,EA6cxBzE,WAAgB,OAAJj6f,QAAI,IAAJA,GAAc,QAAVs+f,EAAJt+f,EAAMssC,gBAAQ,IAAAgyd,GAAM,QAANC,EAAdD,EAAgBt+f,YAAI,IAAAu+f,OAAhB,EAAJA,EAAsBt5Q,IAClCthL,YAAa,YAGfhyD,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,MAEE,0EC1cJsuD,gFAAiB,CACrBvhK,aAAc,EACdyC,eAAgB,EAChB77M,MAAM,EACNi8M,cAAc,EACdhD,UAAU,EACV8B,eAAe,IA2pBjB,GA1mBc2uG,KAAO,IAADsvI,EAAA2C,EAAA5F,EAAA6F,EAAAC,EAAA7F,EAAAC,EAAA6F,EAAAzF,EAAAC,EAAAyF,EAAAC,EAAAC,EAAAC,EAAAC,EAAA8B,EAAAC,EAAAiB,EAAAC,EAAA/C,EAAA8B,EAAAC,EAClB,MAAMl2M,EAAWR,KACXntT,EAASouT,MACT,UAAE02M,EAAS,OAAEC,GAAW/kgB,GACxB,KAAExC,EAAI,UAAEssQ,EAAS,QAAEquI,GAAYyqB,GAAsBmiG,IACpD/I,GAAkBlyP,UAAWmyP,IAClClB,KAEIoH,GAAqBhiV,EAAAA,EAAAA,QAAO,OAC3BiiV,EAAyBC,IAA8BjiV,EAAAA,EAAAA,UAAS,IAEvEN,EAAAA,EAAAA,YAAU,KACR,MAAMwiV,EAAwBA,KAC5B,IAAKH,EAAmBntgB,QACtB,OAGF,MAAMjM,EAAYo5gB,EAAmBntgB,QACrC,IAAIutgB,EAAmB,IAEnBx5gB,EAAU2rS,aAAe,MAC3B6tO,EAAmBx5gB,EAAU2rS,aAG/B,MAAM8tO,EACHz5gB,EAAU2rS,YAAc6tO,EAAoB,IAC/CF,EAA2BG,EAAsB,EAGnD,IAAI14P,EAQJ,OAJAw4P,IAEAt3e,OAAOtY,iBAAiB,SAAU4vf,GAE3B,IACEt3e,OAAOy+D,oBAAoB,SAAU64a,EAC7C,GACA,CAAC9kgB,IAEJ,MAAOilgB,EAAWC,IAAgBtiV,EAAAA,EAAAA,UAAS,CACzC,CACE1hB,IAAKikW,GACLzwU,MAAO,8BAET,CACExzB,IAAK,8DACLwzB,MAAO,8BAET,CACExzB,IAAKkkW,GACL1wU,MAAO,iCAIJ6yP,EAAQ89E,IAAaziV,EAAAA,EAAAA,UAAS,CACnC,CACE1hB,IAAKsmW,GACL9yU,MAAO,gBACPvwL,QAAQ,MA4ELioB,EAAMs5e,IAAW9iV,EAAAA,EAAAA,WAAS,IAC1B67P,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,IAgCxD87U,EAAeC,IAAkB/7U,EAAAA,EAAAA,WAAS,IAM1Co8U,EAAcC,IAAmBr8U,EAAAA,EAAAA,WAAS,IAC1Cs8U,EAAaC,IAAkBv8U,EAAAA,EAAAA,WAAS,IACxC4kQ,EAAe43E,IAAoBx8U,EAAAA,EAAAA,WAAS,IAC5Cy8U,EAAeC,IAAoB18U,EAAAA,EAAAA,UAAS,SAC5C28U,EAAcC,KAAmB58U,EAAAA,EAAAA,WAAS,IAC1CykQ,GAAoBs+E,KAAwB/iV,EAAAA,EAAAA,UAAS,IAErD+8U,GAAgBC,IAAiB/B,MAExCv7U,EAAAA,EAAAA,YAAU,KAAO,IAADqiP,EAqBZ77X,aAAaixQ,QAAQ,gBACS,IAA1B,OAAJ/5S,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,OAAV,EAAJA,EAAgB/D,aArBlBrtV,iBACE,IAAK,IAADmxV,EAAAq7F,EAAA6F,EAAA3P,EAAAC,EAAAG,EAAAC,EACF,MAAMtrb,QAAY20b,GAAe,CAC/BryF,WAAgB,OAAJtta,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,GAAM,QAANq7F,EAAdr7F,EAAgB1ka,YAAI,IAAA+/f,OAAhB,EAAJA,EAAsB96Q,IAClCl3O,QAAsC,QAA/B63f,EAAEC,GAAUx+E,WAAmB,IAAAu+E,OAAA,EAA7BA,EAA+B3gR,IACxC+6Q,OAAO,IAGT,GACqC,IAAhC,OAAHh1b,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAU,QAAVC,EAATD,EAAW3pd,gBAAQ,IAAA4pd,OAAhB,EAAHA,EAAqBt1F,aACc,IAAhC,OAAH51V,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAU,QAAVC,EAATD,EAAW/pd,gBAAQ,IAAAgqd,OAAhB,EAAHA,EAAqB11F,YACrB,CAAC,IAADu1F,EAAAC,EAEA,MAAM3uE,EAAa,OAAHz8W,QAAG,IAAHA,GAAS,QAANmrb,EAAHnrb,EAAKhrE,YAAI,IAAAm2f,GAAU,QAAVC,EAATD,EAAW7pd,gBAAQ,IAAA8pd,OAAhB,EAAHA,EAAqBp2f,KAErCw/f,GAAgB/3E,EAClB,CACF,CAAE,MAAOp6b,IAAI,CACf,CAKE4ygB,EACF,GACC,CAACjggB,EAAMqnb,KAEV,MAkCM64E,GAAeA,KAAO,IAADC,EAAAC,EACzB5B,EAAe,CACbriU,SAAU,OACV8wO,OAAY,OAAJjta,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,OAAhB,EAAJA,EAAsBn7Q,IAC9B63Q,aAAgC,QAAlBuC,EAA0B,MAAQ,OAChDtC,YAAa8I,GAAUx+E,IAAoBpiM,MAE1C16J,MAAMvf,IAAS,IAADurb,EAAAC,EACblvb,QAAQ/qB,IAAIyuB,EAAIhrE,MACwB,KAAjC,OAAHgrE,QAAG,IAAHA,GAAS,QAANurb,EAAHvrb,EAAKhrE,YAAI,IAAAu2f,GAAU,QAAVC,EAATD,EAAWjqd,gBAAQ,IAAAkqd,OAAhB,EAAHA,EAAqB51F,cACvBw+F,GAAiB,GACjBiB,KACF,IAED1pV,OAAO95I,IACNyqC,QAAQ/qB,IAAI1f,EAAI,GAChB,EAGAyje,GAAetK,IACU,IAADuK,EAAAC,EAAAsF,EAAArF,EAAAC,EAA5B,GAAqB,OAAjBrB,EACFlvM,EACE,0CAA8C,OAAJnwT,QAAI,IAAJA,GAAc,QAAVuggB,EAAJvggB,EAAMssC,gBAAQ,IAAAi0d,GAAM,QAANC,EAAdD,EAAgBvggB,YAAI,IAAAwggB,OAAhB,EAAJA,EAAsBhpI,oBAAiD,QAAxCsuI,EAAWD,GAAUx+E,WAAmB,IAAAy+E,OAAA,EAA7BA,EAA+B9kF,uBAA2B,OAAJhhb,QAAI,IAAJA,GAAc,QAAVyggB,EAAJzggB,EAAMssC,gBAAQ,IAAAm0d,GAAM,QAANC,EAAdD,EAAgBzggB,YAAI,IAAA0ggB,OAAhB,EAAJA,EAAsBz7Q,eAAe4gR,GAAUx+E,IAAoBpiM,YAE1M,GAAqB,QAAjBo6Q,EAAyB,CAAC,IAADsB,EAAAC,EAAAmF,EAAAlF,EAAAC,EAClC3wM,EACE,iDACM,OAAJnwT,QAAI,IAAJA,GAAc,QAAV2ggB,EAAJ3ggB,EAAMssC,gBAAQ,IAAAq0d,GAAM,QAANC,EAAdD,EAAgB3ggB,YAAI,IAAA4ggB,OAAhB,EAAJA,EAAsBppI,oBACb6wC,GACoB,QADO09F,EACpCF,GAAUx+E,WAAmB,IAAA0+E,OAAA,EAA7BA,EAA+B/kF,wBACd,OAAJhhb,QAAI,IAAJA,GAAc,QAAV6ggB,EAAJ7ggB,EAAMssC,gBAAQ,IAAAu0d,GAAM,QAANC,EAAdD,EAAgB7ggB,YAAI,IAAA8ggB,OAAhB,EAAJA,EAAsB77Q,eACnC4gR,GAAUx+E,IAAoBpiM,gBACnB+wQ,IAEjB,IAKA0G,IAEE18f,KAAMmhgB,GACN70P,UAAW80P,GACXzmH,QAAS0lH,GACT7xH,UAAW6yH,KAEXjE,MAGJ96U,EAAAA,EAAAA,YAAU,KAAO,IAADg/U,EACd,GAAID,IAAgE,IAA1B,OAAhBF,SAAgB,IAAhBA,IAA0B,QAAVG,EAAhBH,GAAkB70d,gBAAQ,IAAAg1d,OAAV,EAAhBA,EAA4B1gG,YAAiB,CAAC,IAAD2gG,EAAAC,EACrE,IAAIwE,EAA4B,OAAhB7E,SAAgB,IAAhBA,IAA0B,QAAVI,EAAhBJ,GAAkB70d,gBAAQ,IAAAi1d,GAAM,QAANC,EAA1BD,EAA4BvhgB,YAAI,IAAAwhgB,OAAhB,EAAhBA,EAAkCpkZ,MAAM7+F,IAAU,IAADwif,EAAAC,EAC/D,OACM,OAAJzif,QAAI,IAAJA,OAAI,EAAJA,EAAM0uZ,UAAc,OAAJjta,QAAI,IAAJA,GAAc,QAAV+ggB,EAAJ/ggB,EAAMssC,gBAAQ,IAAAy0d,GAAM,QAANC,EAAdD,EAAgB/ggB,YAAI,IAAAghgB,OAAhB,EAAJA,EAAsB/7Q,OAClC,OAAJ1mO,QAAI,IAAJA,OAAI,EAAJA,EAAM0nf,eAAgBJ,GAAUx+E,IAAoBpiM,GAAG,IAMzDm6Q,IADE4G,EAKN,IACC,CAAC5E,GAAmBphgB,EAAMqnb,MAC7B/kQ,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkB2iN,IAAoB,GAC1D,IASK,OAAJ18f,QAAI,IAAJA,GAAAA,EAAMssC,UAAyC,IAA7BtsC,EAAKssC,SAASs0X,YAClCzwG,EAAS,sBAIX,IAAI01M,GAAY,GAEsB,IAADpE,GAAAC,GAAH,IAA1B,OAAJ1hgB,QAAI,IAAJA,GAAc,QAAVihgB,EAAJjhgB,EAAMssC,gBAAQ,IAAA20d,OAAV,EAAJA,EAAgBrgG,cAClBilG,GAAgB,OAAJ7lgB,QAAI,IAAJA,GAAc,QAAVyhgB,GAAJzhgB,EAAMssC,gBAAQ,IAAAm1d,IAAM,QAANC,GAAdD,GAAgBzhgB,YAAI,IAAA0hgB,QAAhB,EAAJA,GAAsBmE,UAAU92gB,SAG9C,OAAIu9Q,GAEA36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6CAA4CvO,UACzD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAMXtjN,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gBAAevO,SAAA,CAC3BkvgB,IACCrtf,EAAAA,GAAAA,KAACkwf,GAAW,CACVz1e,KAAM4ye,EACN1mF,QAvIawpF,KACnB7C,GAAgB,EAAM,EAuIhBvH,OAAQwH,EACRvH,YAAanwE,EACbx4I,QAASyvN,EACThH,iBAvI0BsK,IAChCzC,EAAiByC,EAAS,EAuIpBnK,iBApIsB5B,IAEN,QAAlBqJ,EAEEH,EACFgB,KAIAI,KAKuB,SAAlBjB,IAEHH,EACFgB,KAIAI,GAAYtK,GAEhB,EA8GM6B,yBAA0ByI,GAC1BxI,SAAuC,QAA/B8L,EAAEiC,GAAUx+E,WAAmB,IAAAu8E,OAAA,EAA7BA,EAA+B5iF,aAG7Crva,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4DAA2DvO,UACxEwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,GAAU,GACzB9xT,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAwBV6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iGAAgGvO,UAC7GwhB,EAAAA,GAAAA,MAACstQ,GAAAA,GAAI,CAAA9uR,SAAA,CACF,KACD6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAS,OAAJj9E,QAAI,IAAJA,GAAc,QAAVg+f,EAAJh+f,EAAMssC,gBAAQ,IAAA0xd,GAAM,QAAN6F,EAAd7F,EAAgBh+f,YAAI,IAAA6jgB,GAAgB,QAAhBC,EAApBD,EAAsBtsI,sBAAc,IAAAusI,OAAhC,EAAJA,EAAsCvwf,IAC3CwzO,IAAS,OAAJ/mP,QAAI,IAAJA,GAAc,QAAVi+f,EAAJj+f,EAAMssC,gBAAQ,IAAA2xd,GAAM,QAANC,EAAdD,EAAgBj+f,YAAI,IAAAk+f,GAAgB,QAAhB6F,EAApB7F,EAAsB3mI,sBAAc,IAAAwsI,OAAhC,EAAJA,EAAsCt4G,SAC3CzoP,QAAS77J,IAAwB,IAAvB,cAAEy2H,GAAez2H,EACzBy2H,EAAc/uD,QAAU,KACxB+uD,EAAc/iH,MAAM3K,QAAU,MAAM,EAEtC7R,UAAU,qCAIhBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,gJACvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qHAAoHvO,SAAA,EACjIwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uBAAsBvO,SAAA,EAEnC6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4BAA2BvO,SAClC,OAAJkQ,QAAI,IAAJA,GAAc,QAAVs+f,EAAJt+f,EAAMssC,gBAAQ,IAAAgyd,GAAM,QAANC,EAAdD,EAAgBt+f,YAAI,IAAAu+f,OAAhB,EAAJA,EAAsB/mI,aAEzB7lX,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mCAAkCvO,SAAC,iBAE5C,OAAJkQ,QAAI,IAAJA,GAAc,QAAVgkgB,EAAJhkgB,EAAMssC,gBAAQ,IAAA03d,GAAM,QAANC,EAAdD,EAAgBhkgB,YAAI,IAAAikgB,GAAiB,QAAjBC,EAApBD,EAAsBjC,uBAAe,IAAAkC,OAAjC,EAAJA,EAAuC9vgB,KAAI,CAACmqB,EAAMxxB,KACjD4kB,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,gIACVqhK,wBAAyB,CACvB2W,OAAQ7iD,KAAAA,SAAmBj1G,KAHxBxxB,SAcXukB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sGAAqGvO,SAAA,EAElH6hB,EAAAA,GAAAA,KAACwwf,GAAQ,CACPvygB,KAhIM,cAiIN43b,cAAeA,EAEfC,SAAS,EACTn7K,UAAkC,QAAzB63P,EAAEvE,GAActzP,iBAAS,IAAA63P,GAAAA,EAClCt8E,KAAK,UACLnzP,MAAM,WAENm0O,MAAO,IAAiC,QAAjCu7F,EAAIyB,GAAUx+E,WAAmB,IAAA+8E,OAAA,EAA7BA,EAA+BpjF,YAC1ClU,KAAM7E,GACA,OAAJjoa,QAAI,IAAJA,GAAc,QAAVkmgB,EAAJlmgB,EAAMssC,gBAAQ,IAAA45d,GAAM,QAANC,EAAdD,EAAgBlmgB,YAAI,IAAAmmgB,GAAW,QAAXiB,EAApBjB,EAAsBN,iBAAS,IAAAuB,GAAK,QAALC,EAA/BD,EAAkC,UAAE,IAAAC,OAAhC,EAAJA,EAAsCrmF,WAExC7C,WAAa9wb,IA9SJA,KAIT,YAANA,GACF0/a,GAAuB,GAIf,WAAN1/a,IACF4xgB,GAAgB,GAChBE,GAAe,GACjB,EAoSY3xF,CAAYngb,EAAE,EAKhB05b,YAAaA,KAEXk4E,GAAgB,GAChBE,GAAe,EAAM,EAKvB93E,mBAAoBA,GACpBC,cAAgBl1X,GAAQuzc,GAAqBvzc,GAC7Cm1X,OAAQs+E,GAAUzxgB,KAAKmqB,GAASA,EAAK+nf,eAEvC30f,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,0GACNy6a,WAAYA,KACVpR,GAAuB,EAAM,WAKrCz7Z,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,SAAC,YACtD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sEAAqEvO,SACxE,QADwEw0gB,EACjFuB,UAAS,IAAAvB,OAAA,EAATA,EAAWlwgB,KAAI,CAACmqB,EAAMxxB,KAAC,IAAAi4b,EAAA,OACtB1za,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAW,wCACTtR,IAAMs6b,GACF,aACA,yBACF9oa,EAAKgof,WAAa,cAAgB,oBAEtCv4W,QAASA,IAAM23W,GAAqB54gB,GAAG+C,UAEvC6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAmB,QAAhB+nW,EAAEzma,EAAKuia,iBAAS,IAAAkE,OAAA,EAAdA,EAAgBzxa,IACrBwzO,IAAKxoO,EAAK+nf,UACVjogB,UAAU,2CANPtR,IASP4kB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,mBAAkBvO,SAAM,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM+nf,cAhBVv5gB,EAiBzB,UAIZukB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,SAAC,iBACtD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,aAAavH,IAAK6tgB,EAAmB70gB,UAClD6hB,EAAAA,GAAAA,KAAC60f,GAAAA,EAAW,IACN5jF,GACJvhK,aAAcujP,EACdvmgB,UAAU,mBAAkBvO,SAE3B+1gB,GAAUx+E,IAAoBo/E,gBAAgBrygB,KAAKmqB,IAEhD5M,EAAAA,GAAAA,KAAA,OAEEtT,UAAU,iCAAgCvO,UAE1C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,6BACV4+E,IAAK1+D,EAAKhL,IACVwzO,IAAI,MANDxoO,EAAK0mO,YAapB3zO,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,QAAOvO,SAAA,EACpB6hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLo+J,QAASA,IAAM03W,GAAQ,GACvBrngB,UAAU,gIAA+HvO,SAC1I,mCAGD6hB,EAAAA,GAAAA,KAAC29P,GAAO,CACNpzN,OAAQ9vB,EACR1oB,KAAK,yFACLi+a,QAAQ,gCACRxD,WAAYA,IAAMunF,GAAQ,YAIhC/zf,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,2JAEzBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gEAA+DvO,SAAA,EAC5EwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kBAAiBvO,SAAA,EAC9B6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,SAAC,4CAGjE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,wDAAuDvO,SAAC,sPAMrE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yDAAwDvO,SAAC,+BAGvE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,wDAAuDvO,SAAC,wNAMrE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yDAAwDvO,SAAC,kCAGvE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,wDAAuDvO,SAAC,gLAMvE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uDAAsDvO,SAClEm1gB,EAAU7wgB,KAAI,CAACmqB,EAAMxxB,KACpB4kB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,gCAA+BvO,UAC5C6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK1+D,EAAK2iJ,IACV6lF,IAAKxoO,EAAKm2K,MACVr2L,UAAU,gCAJsCtR,WAU1D4kB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iCAIfsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qGAQdqggB,GACC/sf,EAAAA,GAAAA,KAAC2wf,GAAiB,CAChBtI,kBAnbuBuI,KAC7B5D,GAAgBD,EAAc,EAmbxBzE,WAAgB,OAAJj6f,QAAI,IAAJA,GAAc,QAAVomgB,EAAJpmgB,EAAMssC,gBAAQ,IAAA85d,GAAM,QAANC,EAAdD,EAAgBpmgB,YAAI,IAAAqmgB,OAAhB,EAAJA,EAAsBphR,IAClCthL,YAAa,UAGfhyD,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,MAEE,ECxtBGmzI,GAAuBA,CAAC73gB,EAAMssgB,EAAWj1I,IAE1CygJ,WAAiB93gB,EAAO,IAAMssgB,EAAY,IAAMj1I,EAI/C0gJ,GAAuBA,CAACzL,EAAWj1I,IAEpCygJ,iBAAiBxL,EAAY,IAAMj1I,ECwZ/C,GAvZsB9/W,IAA2C,IAADmla,EAAAC,EAAA,IAAzC,OAAEq7F,EAAM,KAAEh4gB,EAAI,mBAAEi4gB,GAAoB1ggB,EA2CzD,MAAM+oE,EAAW,CACfmxM,aAAcwmP,EAAqB,EAAI,IACvC/jP,eAAgB,EAChB77M,MAAM,EACNi8M,cAAc,EACdhD,UAAU,EACV8B,eAAe,EAEfU,WAAY,CACV,CACEllQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAcwmP,EAAqB,EAAI,MAG3C,CACErpf,WAAY,IACZ0xD,SAAU,CACRmxM,aAAcwmP,EAAqB,EAAI,OAG3C,CACErpf,WAAY,IACZ0xD,SAAU,CACRmxM,aAAcwmP,EAAqB,EAAI,MAG3C,CACErpf,WAAY,IACZ0xD,SAAU,CACRmxM,aAAmC,MAiG3C,MAAMymP,EAnBN,WACE,IAAI1mW,EAAO,GAeX,MAbY,SAARxxK,IAEFwxK,EAAO,+BAGG,WAARxxK,IACFwxK,EAAO,wCAGG,YAARxxK,IACFwxK,EAAO,+BAGFA,CACT,CAEiB2mW,GAGjB,IACE/9F,GACEhqa,KAAMmta,EAAc,WAAE5wB,EAAU,UAAE/N,EAAS,QAAEp7T,IAC7Cw4V,KAEwE,IAADwB,EAAAC,GAAtE9wB,GAAc/N,GAAqD,IAA1B,QAAd89B,EAAAa,SAAc,IAAAb,GAAU,QAAVC,EAAdD,EAAgBhgY,gBAAQ,IAAAigY,OAAV,EAAdA,EAA0B3L,aACxDuM,EAA+B,QAAjBC,EAAGD,SAAc,IAAAC,GAAU,QAAVC,EAAdD,EAAgB9gY,gBAAQ,IAAA+gY,OAAV,EAAdA,EAA0Brta,KAC3Cmta,EAAiBA,EAAe/4a,KAAKmqB,GAASA,EAAK+uZ,cAEnDH,EAAiB,GAGnB,MAAMsa,EAAWj5Z,GACR2+Y,EAAej0X,SAAS1qB,GAKjC,OAHA8zJ,EAAAA,EAAAA,YAAU,KACRx5I,aAAaixQ,QAAQ,gBAAkBiwH,GAA4B,GAClE,KAEDr4Z,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,KACU,aAAT19R,GAAgC,YAATA,IAAuBsgF,KACtC,UAATtgF,GAnHQ,CACfyxR,aAAc,EACdyC,eAAgB,EAChB77M,MAAM,EACNi8M,cAAc,EACdhD,UAAU,EACV8B,eAAe,EAEfU,WAAY,CACV,CACEllQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,SAsFJ,YAATzxR,GAhFQ,CACfyxR,aAAc,KACdyC,eAAgB,EAChB77M,MAAM,EACNi8M,cAAc,EACdhD,UAAU,EACV8B,eAAe,EAEfU,WAAY,CACV,CACEllQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,OAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,IAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,MAmDlBhjR,UAAW,qBACA,YAATzO,EAAqB,kBAAoB,IACxCE,SAEF83gB,EAAOxzgB,KACN,CAACwvR,EAAOl1R,KAAW,IAADs5gB,EAAAC,EAAAC,EAAAC,EAAAC,EAChB,IAAIhnW,EAAO0mW,EACPO,EAAQ,GAEZ,OAAQz4gB,GACN,IAAK,QAEHwxK,GACSumW,GAAqB/jP,EAAMvzB,QAASuzB,EAAM0kP,aACnD,MACF,IAAK,UACHlnW,GAAcwiH,EAAM2kP,cACpBF,EAAa,OAALzkP,QAAK,IAALA,OAAK,EAALA,EAAO4kP,iBACf,MACF,IAAK,WACHH,EAAQzkP,EAAMk9J,UAEI,QAAlBknF,EAAIpkP,EAAMznF,gBAAQ,IAAA6rU,GAAdA,EAAgB9ud,SAAS,QAE3BkoH,GAEEqmW,GACE,YACA7jP,EAAMvzB,QACNuzB,EAAM0kP,aAEV1kP,EAAM14R,KAAO,aACU,QAAlB+8gB,EAAIrkP,EAAMznF,gBAAQ,IAAA8rU,GAAdA,EAAgB/ud,SAAS,QAElCkoH,GAEEqmW,GACE,YACA7jP,EAAMvzB,QACNuzB,EAAM0kP,aAEV1kP,EAAM14R,KAAO,aAEC,QAAdg9gB,EAAAtkP,EAAMznF,gBAAQ,IAAA+rU,GAAdA,EAAgBhvd,SAAS,OACX,QADgBivd,EAC9BvkP,EAAMznF,gBAAQ,IAAAgsU,GAAdA,EAAgBjvd,SAAS,OAGzBkoH,GAEEqmW,GACE,WACA7jP,EAAMvzB,QACNuzB,EAAM0kP,aAEV1kP,EAAM14R,KAAO,YACU,QAAlBk9gB,EAAIxkP,EAAMznF,gBAAQ,IAAAisU,GAAdA,EAAgBlvd,SAAS,SAElCkoH,GAEEqmW,GACE,mBACA7jP,EAAMvzB,QACNuzB,EAAM0kP,aAEV1kP,EAAM14R,KAAO,cAEf,MACF,QAEEk2K,GAEEqmW,GACE,mBACA7jP,EAAMvzB,QACNuzB,EAAM3+B,KAEV2+B,EAAM14R,KAAO,mBAGjB,OACEymB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qBAAoBvO,UAEjCwhB,EAAAA,GAAAA,MAAA,OAAAxhB,SAAA,CACY,YAATF,IACC0hB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACokT,GAAI,CAAC3tK,GAAIgZ,EAAKtxK,UACbwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,+EACVwc,MAAO,CACLu6W,gBAAiB,QACfizI,GAASzkP,EAAMk9J,WAAal9J,EAAM6kP,eAEpC34gB,SAAA,EAEI,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAO14R,QACNymB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,OAAMvO,SAAO,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAO14R,OAEvB,UAAT0E,IACC+hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,aAAYvO,UAC1B6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yiBACFgQ,KAAK,oBAOjBwB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,eAAcvO,SAAO,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAOlvF,QACnC+yP,EAAQ7jK,EAAM3+B,OACbtzO,EAAAA,GAAAA,KAAA,UAAQtT,UAAU,0BAAyBvO,SAAC,qBAI5C23b,EAAQ7jK,EAAM3+B,OACd3zO,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG,IACuB,UAAlB,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAO8kP,eACN/2f,EAAAA,GAAAA,KAAA,UAAQtT,UAAU,WAAUvO,SAAC,SAEP,UAAlB,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAO8kP,eAA+B,OAAL9kP,QAAK,IAALA,OAAK,EAALA,EAAOilJ,SACvCv3Z,EAAAA,GAAAA,MAAA,UAAQjT,UAAU,WAAUvO,SAAA,CACpB,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAOilJ,MAAM,KAAG,IAChBG,GACCf,GAA2B,OAALrkJ,QAAK,IAALA,OAAK,EAALA,EAAOilJ,QAC5B,IAAI,UAIa,aAAlB,OAALjlJ,QAAK,IAALA,OAAK,EAALA,EAAO8kP,eACNp3f,EAAAA,GAAAA,MAAA,UAAQjT,UAAU,mCAAkCvO,SAAA,EAClD6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,smCACFgQ,KAAK,YAEH,0BAQR,YAATvgB,IACC+hB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACEwhB,EAAAA,GAAAA,MAACykT,GAAI,CAAC3tK,GAAIgZ,EAAKtxK,SAAA,EACb6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAKorb,EACLthR,IAAI,GACJ1oP,UAAU,6BACV2kK,QAASzgK,IAAwB,IAAvB,cAAEq7H,GAAer7H,EACzBq7H,EAAc/uD,QAAU,KACxB+uD,EAAc3gD,IACZ,0EAA0E,KAGhFtrE,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,kEAAiEvO,SACtE,OAAL8zR,QAAK,IAALA,OAAK,EAALA,EAAO+kP,uBA3FqBj6gB,EAiGnC,KA8BL,yDCvZAk6gB,GAAqBnsH,GAAU,CAC1CnT,YAAa,gBACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB9B,UAAY+d,IAAO,CACjBigd,oBAAqBjgd,EAAQprB,MAAM,CACjCA,MAAOj7B,IAAA,IAAC,UAAE25f,EAAY,GAAE,YAAEh9E,EAAc,GAAE,KAAEnmP,EAAK,EAAC,MAACj9G,EAAM,KAAOv5E,EAAA,MAAM,CACpEgR,IACEosY,GAAcyC,eACd,kBACA85G,EACA,WACAh9E,EACA,SACAnmP,EACA,UACAj9G,EACF7+B,OAAQ,MACT,IAEH6rd,yBAA0Blgd,EAAQprB,MAAM,CACtCA,MAAQhP,IAAE,CACRjb,IAAKosY,GAAc0C,qBAAuB,IAAI7zX,IAC9CyuB,OAAQ,UAGZ8rd,aAAcngd,EAAQprB,MAAM,CAC1BA,MAAOnhB,IAAA,IAAC,UAAE6/e,EAAY,GAAE,YAAEh9E,EAAc,GAAE,KAAEnmP,EAAK,EAAC,MAACj9G,EAAM,KAAMz/D,EAAA,MAAM,CACnE9I,IACEosY,GAAcqC,eACd,kBACAk6G,EACA,WACAh9E,EACA,SACAnmP,EACA,UACAj9G,EACF7+B,OAAQ,MACT,IAEH+rd,kBAAmBpgd,EAAQprB,MAAM,CAC/BA,MAAQhP,IAAE,CACRjb,IAAKosY,GAAcsC,qBAAuB,IAAIzzX,IAC9CyuB,OAAQ,UAGZgsd,aAAcrgd,EAAQprB,MAAM,CAC1BA,MAAOu2R,IAAA,IAAC,UAAEmoM,EAAY,GAAE,YAAEh9E,EAAc,GAAE,KAAEnmP,EAAK,EAAC,MAACj9G,EAAM,KAAOi4O,EAAA,MAAM,CACpExgT,IACEosY,GAAcuC,eACd,kBACAg6G,EACA,WACAh9E,EACA,SACAnmP,EACA,UACAj9G,EACF7+B,OAAQ,MACT,IAEHisd,kBAAmBtgd,EAAQprB,MAAM,CAC/BA,MAAQhP,IAAE,CACRjb,IAAKosY,GAAcwC,qBAAuB,IAAI3zX,IAC9CyuB,OAAQ,UAGZksd,YAAavgd,EAAQprB,MAAM,CACzBA,MAAO82R,IAAA,IAAC,UAAE4nM,EAAY,GAAE,YAAEh9E,EAAc,GAAE,KAAEnmP,EAAK,EAAC,MAACj9G,EAAM,KAAOw4O,EAAA,MAAM,CACpE/gT,IACEosY,GAAc2C,cACd,kBACA45G,EACA,WACAh9E,EACA,SACAnmP,EACA,UACAj9G,EACF7+B,OAAQ,MACT,IAEHmsd,iBAAkBxgd,EAAQprB,MAAM,CAC9BA,MAAQhP,IAAE,CACRjb,IAAKosY,GAAc4C,oBAAsB,IAAI/zX,IAC7CyuB,OAAQ,UAGZosd,eAAgBzgd,EAAQprB,MAAM,CAC5BA,MAAOs3R,IAAA,IAAC,UAAEonM,EAAY,GAAE,YAAEh9E,EAAc,GAAE,KAAEnmP,EAAK,EAAC,MAACj9G,EAAM,KAAOg5O,EAAA,MAAM,CACpEvhT,IACEosY,GAAc6C,iBACd,kBACA05G,EACA,WACAh9E,EACA,SACAnmP,EACA,UACAj9G,EACF7+B,OAAQ,MACT,IAEHqsd,oBAAqB1gd,EAAQprB,MAAM,CACjCA,MAAQhP,IAAE,CACRjb,IAAKosY,GAAc8C,uBAAyB,IAAIj0X,IAChDyuB,OAAQ,UAGZssd,mBAAoB3gd,EAAQprB,MAAM,CAChCA,MAAOw4R,IAAA,IAAC,YAAEkpH,EAAc,IAAIlpH,EAAA,MAAM,CAChCziT,IAAKosY,GAAc+C,oBAAsB,gBAAkBw8B,EAC3DjiY,OAAQ,MACT,IAEHusd,iBAAkB5gd,EAAQprB,MAAM,CAC9BA,MAAQhP,IAAE,CACRjb,IAAKosY,GAAcgD,mBAAqB,IAAIn0X,IAC5CyuB,OAAQ,UAGZwsd,iBAAkB7gd,EAAQprB,MAAM,CAC9BA,MAAO,WAAe,MAAM,CAC1BjqB,IAAKosY,GAAcoD,mBAAqB,eADzBjrZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAElBmlD,OAAQ,MACT,IAEHysd,mBAAoB9gd,EAAQprB,MAAM,CAChCA,MAAOA,CAACu7J,EAAMj9G,KAAK,CACjBvoE,IAAKosY,GAAcsD,qBACnBhmW,OAAQ,UAGZ0sd,sBAAuB/gd,EAAQprB,MAAM,CACnCA,MAAOA,CAACx9B,EAAMm8L,KAAQ,CACpB5oL,IACEosY,GAAcwD,wBACd,WACAnjZ,EAAKo4L,OACL,cACAp4L,EAAKinX,UACL,aACAjnX,EAAKm8L,SACPl/I,OAAQ,UAGZ2sd,uBAAwBhhd,EAAQprB,MAAM,CACpCA,MAAO,WAAuB,MAAM,CAClCjqB,IACEosY,GAAcuD,yBACd,YAHUprZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,IAKb,eAL0BA,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,GAO5BqxD,OAAQ,MACT,IAEH4sd,uBAAwBjhd,EAAQprB,MAAM,CACpCA,MAAQmmC,IAAW,CACjBpwD,IACEosY,GAAcqD,0BACd,gBACAr/U,EACF1mB,OAAQ,UAGZ6sd,oBAAqBlhd,EAAQgnV,SAAS,CACpCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcyD,uBACnBnmW,OAAQ,OACRpJ,KAAMmO,MAGV+nd,qBAAsBnhd,EAAQprB,MAAM,CAClCA,MAAOy5R,IAAA,IAAC,YAAEioH,EAAc,IAAIjoH,EAAA,MAAM,CAChC1jT,IAAKosY,GAAcuE,wBAA0B,WAAag7B,EAC1DjiY,OAAQ,MACT,IAEH+sd,uBAAwBphd,EAAQprB,MAAM,CACpCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAc2G,0BACnBrpW,OAAQ,eAMH,4BACXgtd,GAA2B,iCAC3BC,GAAgC,qBAChCC,GAAoB,0BACpBC,GAAyB,qBACzBC,GAAoB,0BACpBC,GAAyB,oBACzBC,GAAmB,yBACnBC,GAAwB,uBACxBC,GAAsB,4BACtBC,GAA2B,2BAC3BC,GAA0B,yBAC1BC,GAAwB,yBACxBC,GAAwB,2BACxBC,GAA0B,+BAC1BC,GAA8B,8BAC9BC,GAA6B,+BAC7BC,GAA8B,+BAC9BC,GAA8B,6BAC9BC,GAA4B,+BAC5BC,IACExC,GC0NJ,QAxacj3I,KAAO,IAAD05I,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAClB,MAAMv7M,EAAWR,MAEVonE,IAAen0M,EAAAA,EAAAA,UAAS,CAC7B,CAAE5sL,KAAM,SAAU2hY,KAAM,UACxB,CAAE3hY,KAAM,mBAAoB2hY,KAAM,oBAClC,CAAE3hY,KAAM,YAAa2hY,KAAM,aAC3B,CAAE3hY,KAAM,YAAa2hY,KAAM,aAC3B,CAAE3hY,KAAM,WAAY2hY,KAAM,YAC1B,CAAE3hY,KAAM,QAAS2hY,KAAM,SACvB,CAAE3hY,KAAM,WAAY2hY,KAAM,eA0CrBg0I,EAAsBC,IAA2BhpV,EAAAA,EAAAA,UAAS,KAC1DipV,EAAuBC,GAC5BZ,MAEF5oV,EAAAA,EAAAA,YAAU,MACR/uG,iBAAiC,IAAD0ib,EAAA8V,EAC9B,MAAM/gc,QAAY6gc,IAClB,GAAqC,IAA9B,OAAH7gc,QAAG,IAAHA,GAAS,QAANirb,EAAHjrb,EAAKhrE,YAAI,IAAAi2f,GAAQ,QAAR8V,EAAT9V,EAAW94f,cAAM,IAAA4ugB,OAAd,EAAHA,EAAmBnrG,YAAiB,CAAC,IAADy1F,EAAA2V,EACtC,IAAIhsgB,EAAU,OAAHgrE,QAAG,IAAHA,GAAS,QAANqrb,EAAHrrb,EAAKhrE,YAAI,IAAAq2f,GAAQ,QAAR2V,EAAT3V,EAAWl5f,cAAM,IAAA6ugB,OAAd,EAAHA,EAAmBhsgB,KAE9BA,EAAOA,EAAK5L,KAAKmqB,GAAa,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAM0mO,MAChCjlP,EAAOA,EAAK5L,KAAKmqB,IACf,IAAIhL,GAAU,OAAJgL,QAAI,IAAJA,OAAI,EAAJA,EAAMiqf,mBAAoByD,GACpC,MAAO,IACF1tf,EACHiqf,iBAAkBj1f,EACnB,IAEHq4f,EAAwB5rgB,EAC1B,CACF,CAEAksgB,EAAgB,GACf,IAGH,IACElsgB,KAAMmsgB,EAAQ,GACd5vH,WAAY6vH,EACZ59H,UAAW69H,EACXj5b,QAASk5b,EACTlmgB,MAAOmmgB,GACL9B,GAAuB,CACzBvrF,YAAa,MAKbl/a,KAAMwsgB,EAAkB,GACxBjwH,WAAYkwH,EACZj+H,UAAWk+H,EACXt5b,QAASu5b,EACTvmgB,MAAOwmgB,GACL3B,GAA+B,UAIjCjrgB,KAAM6sgB,EAAiB,GACvBtwH,WAAYuwH,EACZt+H,UAAWu+H,EACX35b,QAAS45b,EACT5mgB,MAAO6mgB,GACLpC,GAAyB,IA+D1B,IAADqC,EAAAC,GA5DEd,GAAiD,IAA1B,QAALhB,EAAAc,SAAK,IAAAd,GAAU,QAAVC,EAALD,EAAO/+d,gBAAQ,IAAAg/d,OAAV,EAALA,EAAiB1qG,cACrCurG,EAAQA,EAAM7/d,SAAStsC,KAAK40H,QAE5Bu3Y,EAAQA,EAAM/3gB,KAAI,CAACmqB,EAAM6zC,KAAS,IAADg7c,EAAAC,EAC/B,MAAM34U,EAAQn2K,EAAK+uf,YACnB,IAAI5E,EAAc,OAWlB,MAT4B,QAA1Bnqf,EAAKgvf,mBACqB,WAA1Bhvf,EAAKgvf,oBAEL7E,EAAc,QAEc,gBAA1Bnqf,EAAKgvf,oBACP7E,EAAc,WAGT,IACFnqf,EACH8xO,SAAqB,QAAZ+8Q,EAAA7uf,EAAK8xO,eAAO,IAAA+8Q,OAAA,EAAZA,EAAc7E,iBAA6B,QAAhB8E,EAAI9uf,EAAK8xO,eAAO,IAAAg9Q,OAAA,EAAZA,EAAcpoR,KACtDvwD,QACAg0U,cACA7/F,MAAO,KAAOtqZ,EAAKsqZ,OAAS,GAC5Br6Y,GAAIjQ,EAAK0mO,IACV,KAKD8nR,GAA4D,IAA1B,QAAdxB,EAAAsB,SAAc,IAAAtB,GAAU,QAAVC,EAAdD,EAAgBj/d,gBAAQ,IAAAk/d,OAAV,EAAdA,EAA0B5qG,cAChDisG,EAAiBA,EAAevge,SAAStsC,KAEzC6sgB,EAAiBA,EAAez4gB,KAAI,CAACmqB,EAAM6zC,KAAS,IAADo7c,EAAAC,EACjD,MAAM/4U,EAAQn2K,EAAK+uf,YACnB,IAAI5E,EAAc,OAWlB,MAT4B,QAA1Bnqf,EAAKgvf,mBACqB,WAA1Bhvf,EAAKgvf,oBAEL7E,EAAc,QAEc,gBAA1Bnqf,EAAKgvf,oBACP7E,EAAc,WAGT,IACFnqf,EACH8xO,SAAqB,QAAZm9Q,EAAAjvf,EAAK8xO,eAAO,IAAAm9Q,OAAA,EAAZA,EAAcjF,iBAA6B,QAAhBkF,EAAIlvf,EAAK8xO,eAAO,IAAAo9Q,OAAA,EAAZA,EAAcxoR,KACtDvwD,QACAg0U,cACA7/F,MAAO,KAAOtqZ,EAAKsqZ,OAAS,GAC5Br6Y,GAAIjQ,EAAK0mO,IACV,KAMHynR,IACCC,GACsC,IAAxB,QAAflB,EAAAe,SAAe,IAAAf,GAAQ,QAARC,EAAfD,EAAiBtugB,cAAM,IAAAuugB,OAAR,EAAfA,EAAyB9qG,eAEzB4rG,EAAiC,QAAlBU,EAAGV,SAAe,IAAAU,GAAQ,QAARC,EAAfD,EAAiB/vgB,cAAM,IAAAgwgB,OAAR,EAAfA,EAAyBntgB,KAE3CwsgB,EAAkBA,EAAgBp4gB,KAAKmqB,IAC9B,IACE,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMmvf,YACTr9Q,QAAS9xO,EAAK29e,UAAUqM,eAAiBhqf,EAAKmvf,YAAYr9Q,YAI9Dm8Q,EAAkBA,EAAgBp4gB,KAAI,CAACmqB,EAAM6zC,KAC3C,MAAMsiI,EAAQn2K,EAAK+uf,YACnB,IAAI5E,EAAc,OAWlB,MAT4B,QAA1Bnqf,EAAKgvf,mBACqB,WAA1Bhvf,EAAKgvf,oBAEL7E,EAAc,QAEc,gBAA1Bnqf,EAAKgvf,oBACP7E,EAAc,WAGT,IACFnqf,EACHm2K,QACAg0U,cACA7/F,MAAO,KAAOtqZ,EAAKsqZ,OAAS,GAC5Br6Y,GAAIjQ,EAAK0mO,IACV,KAYL,MAWM0oR,EAAmB71e,IACvBq4R,EACE,iDAAiDtkS,mBAAmBiM,KACrE,EAGG81e,GAAiBjrV,EAAAA,EAAAA,QAAO,MAE9B,OACErxK,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uCAAsCvO,SAAA,EACnD6hB,EAAAA,GAAAA,KAACitQ,GAAAA,GAAI,CAAA9uR,UACH6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,mGACVwc,MAAO,CACLu6W,gBAAiB,QAAQyvC,GAAchB,gCACvC/za,UAEF6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oFAAmFvO,UAChG6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,2DAA0DvO,SAAC,gDAM/EwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACvB6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,gJACvBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8CAA6CvO,SAAC,wBAG5DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kCAAiCvO,SAAA,EAC9C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,2CACV4R,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BACNv4J,QAASA,KAAO,IAAD6/W,EACbF,EAA8B,OAAdC,QAAc,IAAdA,GAAuB,QAATC,EAAdD,EAAgBp2gB,eAAO,IAAAq2gB,OAAT,EAAdA,EAAyB3/gB,MAAM,EAC/C4B,UAEF6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,qyBACFgQ,KAAK,eAGTwB,EAAAA,GAAAA,KAAA,SACEtT,UAAU,uKACVzO,KAAK,OACLoG,KAAK,cACLw4B,GAAG,cACH2gI,YAAY,SACZr4J,IAAK82gB,EACLt6W,UAAYjmK,IACa,IAADyghB,EAAT,SAATzghB,EAAErB,KACJ2hhB,EAA8B,OAAdC,QAAc,IAAdA,GAAuB,QAATE,EAAdF,EAAgBp2gB,eAAO,IAAAs2gB,OAAT,EAAdA,EAAyB5/gB,MAC3C,WAKRyjB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,6BAA4BvO,SAAC,qDAG1C6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,eAAcvO,UAC3B6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,6BAA4BvO,SAC5B,OAAXinY,QAAW,IAAXA,OAAW,EAAXA,EAAa3iY,KAAI,CAAC+nM,EAAUpvM,IACN,UAAjBovM,EAASw7L,MAEThmX,EAAAA,GAAAA,KAAA,MAAA7hB,UACEwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CAAC5uK,GAAY,OAAR+zC,QAAQ,IAARA,OAAQ,EAARA,EAAUw7L,KAAMt5X,UAAU,YAAWvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,wBACV4R,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,iPACFgQ,KAAK,YAGA,OAARgsL,QAAQ,IAARA,OAAQ,EAARA,EAAUnmM,MACXsb,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,0CAAyCvO,SAAA,CACtD,IAAI,cAjBF/C,IA0BX4kB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAY,OAAR+zC,QAAQ,IAARA,OAAQ,EAARA,EAAUw7L,KAAMt5X,UAAU,YAAWvO,SACvC,OAARqsM,QAAQ,IAARA,OAAQ,EAARA,EAAUnmM,QAFNjJ,YAUlB2/gB,IACEC,GACDH,EAAgBrhhB,OAAS,IACvBmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4CAA2CvO,SAAA,EACxD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,SAAC,cAGtD6hB,EAAAA,GAAAA,KAACo8f,GAAa,CACZnG,OAAQ4E,EACR58gB,KAAK,gBAIZ68gB,IACC96f,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kFAAiFvO,UAC9F6hB,EAAAA,GAAAA,KAACijN,GAAM,MAIVm4S,IAAqBC,GAAkBH,EAAe1hhB,OAAS,IAC9DmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4CAA2CvO,SAAA,EACxD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,SAAC,wCAGtD6hB,EAAAA,GAAAA,KAACo8f,GAAa,CACZnG,OAAQiF,EACRj9gB,KAAK,gBAIVk9gB,IACCn7f,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kFAAiFvO,UAC9F6hB,EAAAA,GAAAA,KAACijN,GAAM,OASXjjN,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,2JAEzBiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,WAAUvO,SAAA,EACrBg8gB,EAAoBx/P,WAAaq/P,EAAqBxghB,OAAS,IAC/DmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yDAAwDvO,SAAA,EACrE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mCAAkCvO,SAAC,uBAG/Cg8gB,EAAoBx/P,WACpBq/P,EAAqBxghB,OAAS,IAC5BwmB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,sCACH/pJ,UAAW,sCAAsCvO,SAClD,iBAKP6hB,EAAAA,GAAAA,KAACo8f,GAAa,CACZnG,OAAQ+D,EACR/7gB,KAAK,eAIVk8gB,EAAoBx/P,YACnB36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sEAAqEvO,UAClF6hB,EAAAA,GAAAA,KAACijN,GAAM,MAIVy3S,IAAmBC,GAAgBH,EAAMhhhB,OAAS,IACjDmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1CwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yDAAwDvO,SAAA,EACrE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mCAAkCvO,SAAC,oBAGjD6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,mCACH/pJ,UAAW,sCAAsCvO,SAClD,iBAIH6hB,EAAAA,GAAAA,KAACo8f,GAAa,CAACnG,OAAQuE,EAAOv8gB,KAAK,aAGtCw8gB,IACCz6f,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uDAAsDvO,UACnE6hB,EAAAA,GAAAA,KAACijN,GAAM,WAIT,mqECpQV,GA5KqBztN,IAAe,IAAd,KAAEnH,GAAMmH,EAC5B,MAAM,GACJqnB,EAAE,KACF5+B,EAAI,MACJ8kM,EAAK,YACLi0U,EAAW,YACXqF,EAAW,UACXjyd,EAAS,SACTtpC,EAAQ,MACRo2Z,EAAK,OACLolG,GACEjugB,GAEGkugB,EAAeC,IAAoBvrV,EAAAA,EAAAA,UAAS,uBAGnDN,EAAAA,EAAAA,YAAU,KAiCR,MAAMjtF,EAAWmxI,aAhCjB,WACE,MAAM4nS,EAAgB,IAAIvpe,KAAKkX,GACzBtX,EAAc,IAAII,KAExB,GAAIupe,GAAiB3pe,EACnB,OAAO0pe,EAAiB,sBAI1B,IAAIryd,EACFnuD,KAAKD,IAAI0ghB,EAAczpe,UAAYF,EAAYE,WAAa,IAG1D8tD,EAAO9kG,KAAKgrC,MAAMmjB,EAAQ,OAC9BA,GAAgB,MAAP22C,EAGT,IAAIhD,EAAQ9hG,KAAKgrC,MAAMmjB,EAAQ,MAAQ,GACvCA,GAAiB,KAAR2zC,EAGT,IAAIc,EAAU5iG,KAAKgrC,MAAMmjB,EAAQ,IAAM,GAInC42C,GAHJ52C,GAAmB,GAAVy0C,GAGa,GAEtB49a,EACE,GAAG17a,OAAUhD,OAAWc,MAAY5iG,KAAKgrC,MAAM+5D,MAEnD,GAEiD,KAEjD,MAAO,IAAM2zI,cAAchxI,EAAS,GACnC,IAEH,IAAIg5a,EAAW,MAEP,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACjBm1d,EAAW,MACE,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMiM,cAAcq9C,SAAS,OACtCm1d,EAAW,aACE,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMiM,cAAcq9C,SAAS,MACtCm1d,EAAW,KACE,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMiM,cAAcq9C,SAAS,WACtCm1d,EAAW,SAGb,IAAIC,EAAY,YAUhB,OARQ,OAAJ1+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACjBo1d,EAAY,aACC,OAAJ1+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACxBo1d,EAAY,YACC,OAAJ1+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,SACxBo1d,EAAY,eAIZ38f,EAAAA,GAAAA,KAACokT,GAAI,CAAC3tK,GAAI,oCAAoC55H,IAAK1+B,UACjDwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,4GAGVvO,SAAA,EAEA6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,oDACV4+E,IAAKgxb,EACLlnR,IAAI,cACJ/jF,QAASzgK,IAAwB,IAAvB,cAAEq7H,GAAer7H,EACzBq7H,EAAc/uD,QAAU,KACxB+uD,EAAc3gD,IAAMsxb,EAAO,KAG/B58f,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kGAAiGvO,UAC9GwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,6EAA4EvO,SAAA,EACzF6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,mKAAkKvO,SAC/Ko+gB,KAEH58f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oBAAmBvO,SAAA,EAChCwhB,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,gKAA+JvO,SAAA,CAC5Ku+gB,EAAS,aAEZ18f,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,0GAAyGvO,SACnH4kM,KAEHpjL,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,2FAA0FvO,SAAA,CAAC,aAC3F64gB,MAEbr3f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sDAAqDvO,SAAA,EAClEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,CACrD,KACD6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,w2CACFgQ,KAAK,kBAKXwB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oEAAmEvO,SAC7Ek+gB,QAGL18f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qDAAoDvO,SAAA,EACjEwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,KAAG68f,SAAS,yBAAwB1+gB,UAClC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,87DACFgQ,KAAK,QACLrV,YAAY,WAGhB6W,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,mBAAkB1+B,UAC7B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,SAASgF,KAAK,kBAK5CwB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oEAAmEvO,SAC7Ew+gB,QAGLh9f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kDAAiDvO,SAAA,EAC9D6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKwxb,GAAWpwgB,UAAU,oBAAoB0oP,IAAI,KAC7C,GAAT8hL,GAAal3Z,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oFAAmFvO,SAAC,UAASwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,oFAAmFvO,SAAA,CAAC,IACrN+4a,EAAM,KAAG,KACXv3Z,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAgBvO,SAAA,CAC7Bm4a,GAAsBY,GAAO,6BAQvC,8DChCX,GAzIkB1ha,IAAe,IAAd,KAAEnH,GAAMmH,EACzB,MAAM,GACJqnB,EAAE,KACF5+B,EAAI,MACJ8kM,EAAK,YACLi0U,EAAW,YACXqF,EAAW,MAEXnlG,EAAK,OACLolG,EAAM,WACNS,GAAa,GACX1ugB,EAEJ,IAAIqugB,EAAW,aAEP,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACjBm1d,EAAW,MACE,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACxBm1d,EAAW,aACE,OAAJz+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,SACxBm1d,EAAW,OAGb,IAAIC,EAAY,YAehB,OAbQ,OAAJ1+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACjBo1d,EAAY,aACC,OAAJ1+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,OACxBo1d,EAAY,YACC,OAAJ1+gB,QAAI,IAAJA,GAAAA,EAAMspD,SAAS,SACxBo1d,EAAY,eASZ38f,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAI,oCAAoC55H,IACxCnwB,UAAW,oCACTqwgB,EAAa,kCAAoC,qBAC/CA,EAAa,GAAK,yCAAyC5+gB,UAE/DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,GAAEvO,SAAA,EACfwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAW,+FAGXvO,SAAA,EAEA6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,+EACV4+E,IAAKgxb,EACLjrW,QAASzgK,IAAwB,IAAvB,cAAEq7H,GAAer7H,EACzBq7H,EAAc/uD,QAAU,KACxB+uD,EAAc3gD,IAAM0xb,EAAK,EAE3B5nR,IAAI,iBAENz1O,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,yIAAwIvO,SAAA,CACrJu+gB,EAAS,gBAGd/8f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qHAAoHvO,SAAA,EACjI6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,iDAAgDvO,SAC1D4kM,KAEHpjL,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,gFAA+EvO,SAAA,CAAC,aAChF64gB,EAAY,qBAEzBr3f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sDAAqDvO,SAAA,EAClEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,CACrD,KACD6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,w2CACFgQ,KAAK,kBAKXwB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oEAAmEvO,SAC7Ek+gB,QAGL18f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qDAAoDvO,SAAA,EACjEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0CAAyCvO,SAAA,CACrD,KACDwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,KAAG68f,SAAS,yBAAwB1+gB,UAClC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,87DACFgQ,KAAK,QACLrV,YAAY,WAGhB6W,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,mBAAkB1+B,UAC7B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,SAASgF,KAAK,qBAM9CwB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oEAAmEvO,SAC7Ew+gB,QAGLh9f,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kDAAiDvO,SAAA,EAC9D6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKwxb,GAAWpwgB,UAAU,oBAAoB0oP,IAAI,KAC7C,GAAT8hL,GAAal3Z,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,oFAAmFvO,SAAC,UAASwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,oFAAmFvO,SAAA,CACrN+4a,EAAM,SAAO,KACdv3Z,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,wBAAuBvO,SAAA,CACjCm4a,GAAsBY,GAAO,wBAMnC,ECrGX,oBA3CuB1ha,IAA4B,IAA3B,QAAEvc,EAAO,SAAEsjK,GAAU/mJ,EAC3C,MAAOohb,EAAQC,IAAa5lQ,EAAAA,EAAAA,WAAS,IAC9BgsV,EAAgBC,IAAqBjsV,EAAAA,EAAAA,UAASh4L,EAAQ,IAY7D,OACE0mB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wBAAuBvO,SAAA,EACpCwhB,EAAAA,GAAAA,MAAA,UACEjT,UAAU,4NACV2vJ,QAdiB8gX,KACrBtmF,GAAWD,EAAO,EAaUz4b,SAAA,CAEvB8+gB,GACDj9f,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,WAAUvO,SAAC,cAG5By4b,IACC52a,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kFAAiFvO,SAC7FlF,EAAQwJ,KAAI,CAACmqB,EAAM7vB,KAClBijB,EAAAA,GAAAA,KAAA,OAEEtT,UAAW,4EACCzT,EAAQO,OAAa,IAEjC6iK,QAASA,IAxBIzvI,KACvBswf,EAAkBtwf,GAClBiqa,GAAU,GACVt6R,EAAS3vI,EAAK,EAqBWwwf,CAAgBxwf,GAAMzuB,SAEpCyuB,GANI7vB,SAWT,GC5BGsghB,GAAcvyH,GAAU,CACnCnT,YAAa,SACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB8iW,SAAU,CAAC,gBACX5kW,UAAY+d,IAAO,CACjBqmd,cAAermd,EAAQprB,MAAM,CAC3BA,MAAOj7B,IAAA,IAAC,YAAE28a,EAAc,GAAE,KAAEnmP,EAAO,GAAGx2L,EAAA,MAAM,CAC1CgR,IACEosY,GAAcoF,eACd,gBACAm6B,EACA,SACAnmP,EACA,YACF97I,OAAQ,MACT,IAEHiyd,SAAUtmd,EAAQprB,MAAM,CACtBA,MAAOnhB,IAAA,IAAC,QAAE8yf,GAAS9yf,EAAA,MAAM,CACvB9I,IAAKosY,GAAcqF,cAAgB,IAAMmqH,EACzClyd,OAAQ,MACT,IAEHmyd,oBAAqBxmd,EAAQprB,MAAM,CACjCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcsF,eACnBhoW,OAAQ,UAGZoyd,mBAAoBzmd,EAAQprB,MAAM,CAChCA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcuF,qBACnBjoW,OAAQ,UAGZqyd,kBAAmB1md,EAAQprB,MAAM,CAC/BA,MAAOA,KAAA,CACLjqB,IAAKosY,GAAcwF,oBAAsB,qBACzCloW,OAAQ,QAEVw8V,aAAc,CAAC,kBAEjB81H,0BAA2B3md,EAAQgnV,SAAS,CAC1CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcyF,yBACnBnoW,OAAQ,OACRpJ,KAAMmO,IAER4oX,gBAAiB,CAAC,uBAKX,sBACX4kG,GAAqB,iBACrBC,GAAgB,4BAChBC,GAA2B,2BAC3BC,GAA0B,0BAC1BC,GAAyB,8BACzBC,GAA6B,qCAC7BC,IACEd,GCpFJ,IAAI3+gB,GAAM,iFAAqFw1H,GAAS,mJAAuJkqZ,GAAa,cAA6B,SAASC,GAAWp8f,EAAK0hV,EAAKhqO,EAAI2kZ,GAAmL,GAAxJ,IAAnBn4gB,UAAU3M,QAA0B,kBAAPyoB,GAAkB,KAAKgC,KAAKhC,KAAO0hV,EAAK1hV,EAAKA,OAAKhoB,IAAUgoB,EAAKA,GAAa,IAAPA,EAASA,EAAK,IAAIixB,gBAA0BA,OAAOjxB,EAAK,IAAIixB,KAAKjxB,IAAS9S,MAAM8S,GAAO,MAAM7S,UAAU,gBAAiE,IAAImvgB,GAArD56K,EAAKznW,OAAOsihB,GAAM76K,IAAOA,GAAM66K,GAAe,UAAsBphhB,MAAM,EAAE,GAAkB,SAAZmhhB,GAAgC,SAAZA,IAAoB56K,EAAKA,EAAKvmW,MAAM,GAAGu8H,GAAI,EAAoB,SAAZ4kZ,IAAoBD,GAAI,IAAM,IAAIpne,EAAE,WAAa,OAAOyiF,EAAI,SAAS,KAAK,EAAMorE,EAAG,WAAa,OAAO9iL,EAAKi1B,IAAI,SAAS,EAAM+lD,EAAE,WAAa,OAAOh7E,EAAKi1B,IAAI,QAAQ,EAAMwiW,EAAG,WAAa,OAAOz3X,EAAKi1B,IAAI,UAAU,EAAM11C,EAAE,WAAa,OAAOygB,EAAKi1B,IAAI,aAAa,EAAMune,EAAG,WAAa,OAAOx8f,EAAKi1B,IAAI,UAAU,EAAMwne,EAAG,WAAa,OAAOz8f,EAAKi1B,IAAI,YAAY,EAAMwtJ,EAAG,WAAa,OAAOziL,EAAKi1B,IAAI,YAAY,EAAMyne,EAAG,WAAa,OAAO18f,EAAKi1B,IAAI,iBAAiB,EAAMyiW,EAAG,WAAa,OAAOhgR,EAAI,EAAE13G,EAAKm8E,mBAAmB,EAAMwgb,EAAG,WAAa,OAAO/hb,GAAQ56E,EAAK,EAAqDiqG,EAAM,CAAC19G,EAAE,WAAa,OAAOu2L,GAAI,EAAE5tB,GAAG,WAAc,OAAO1nK,GAAIs1L,IAAK,EAAE85U,IAAI,WAAe,OAAOC,GAAKC,SAAS9hb,IAAI,EAAE+hb,IAAI,WAAe,OAAOC,GAAW,CAACz9gB,EAAEA,IAAI+tB,EAAEmqX,IAAKlrY,EAAEu2L,IAAK7tJ,EAAEA,IAAI63D,QAAQ+va,GAAKC,SAAS9hb,KAAKjkF,OAAM,GAAM,EAAEkmgB,KAAK,WAAgB,OAAOJ,GAAKC,SAAS9hb,IAAI,EAAE,EAAEkib,KAAK,WAAgB,OAAOF,GAAW,CAACz9gB,EAAEA,IAAI+tB,EAAEmqX,IAAKlrY,EAAEu2L,IAAK7tJ,EAAEA,IAAI63D,QAAQ+va,GAAKC,SAAS9hb,IAAI,IAAI,EAAE1tE,EAAE,WAAa,OAAOmqX,IAAK,CAAC,EAAE0lI,GAAG,WAAc,OAAO3vgB,GAAIiqY,IAAK,EAAE,EAAE2lI,IAAI,WAAe,OAAOP,GAAKtiX,WAAWk9O,IAAK,EAAE4lI,KAAK,WAAgB,OAAOR,GAAKtiX,WAAWk9O,IAAK,GAAG,EAAE6lI,GAAG,WAAc,OAAOrjhB,OAAOsF,KAAKpE,MAAM,EAAE,EAAEoihB,KAAK,WAAgB,OAAO/vgB,GAAIjO,IAAI,EAAE,EAAEyK,EAAE,WAAa,OAAOwygB,IAAK,IAAI,EAAE,EAAEl4e,GAAG,WAAc,OAAO92B,GAAIgvgB,IAAK,IAAI,GAAG,EAAElxb,EAAE,WAAa,OAAOkxb,GAAI,EAAEgB,GAAG,WAAc,OAAOhwgB,GAAIgvgB,IAAK,EAAEvhe,EAAE,WAAa,OAAOwhe,GAAI,EAAEgB,GAAG,WAAc,OAAOjwgB,GAAIivgB,IAAK,EAAEv2f,EAAE,WAAa,OAAOu8K,GAAI,EAAEi7U,GAAG,WAAc,OAAOlwgB,GAAIi1L,IAAK,EAAEt8K,EAAE,WAAa,OAAO3Y,GAAIkvgB,IAAK,EAAE,EAAEphe,EAAE,WAAa,OAAO9tC,GAAIzT,KAAKgrC,MAAM23e,IAAK,IAAI,EAAExzf,EAAE,WAAa,OAAOszf,IAAK,GAAGK,GAAKc,UAAU,GAAGd,GAAKc,UAAU,EAAE,EAAEvtK,GAAG,WAAc,OAAOosK,IAAK,GAAGK,GAAKc,UAAU,GAAGd,GAAKc,UAAU,EAAE,EAAEnyb,EAAE,WAAa,OAAOgxb,IAAK,GAAGK,GAAKc,UAAU,GAAGd,GAAKc,UAAU,EAAE,EAAEpqb,GAAG,WAAc,OAAOipb,IAAK,GAAGK,GAAKc,UAAU,GAAGd,GAAKc,UAAU,EAAE,EAAEhmV,EAAE,WAAa,OAAO0kV,EAAI,MAAM3kZ,EAAI,MAAMr7B,GAAer8E,EAAK,EAAEk3G,EAAE,WAAa,OAAOwgR,IAAK,EAAE,IAAI,KAAKlqY,GAAkC,IAA9BzT,KAAKgrC,MAAMhrC,KAAKD,IAAI49Y,KAAM,IAAQ39Y,KAAKD,IAAI49Y,KAAM,GAAG,EAAE,EAAEnqX,EAAE,WAAa,OAAOmqX,IAAK,EAAE,IAAI,KAAKlqY,GAAIzT,KAAKgrC,MAAMhrC,KAAKD,IAAI49Y,KAAM,IAAI,GAAG,IAAIlqY,GAAIzT,KAAKgrC,MAAMhrC,KAAKD,IAAI49Y,KAAM,IAAI,EAAE,EAAE77V,EAAE,WAAa,MAAM,CAAC,KAAK,KAAK,KAAK,MAAMinJ,IAAK,GAAG,EAAE,GAAGA,IAAK,IAAIA,IAAK,IAAI,IAAIA,IAAK,GAAG,EAAEv3G,EAAE,WAAa,OAAOoxb,GAAI,EAAEiB,GAAG,WAAc,OAAOpwgB,GAAImvgB,IAAK,EAAE7ge,EAAE,WAAa,OAAnrD+he,GAAa79f,EAAirD,GAAG,OAAO0hV,EAAKnnW,QAAQkC,IAAM,SAASkE,GAAO,OAAGA,KAASspH,EAAcA,EAAMtpH,KAAgBA,EAAMxF,MAAM,EAAEwF,EAAMpJ,OAAO,EAAE,GAAE,CAAQ,IAAIglhB,GAAM,CAACpugB,QAAQ,2BAA2BukE,UAAU,SAASorc,gBAAgB,aAAaC,WAAW,cAAcC,SAAS,eAAeC,SAAS,qBAAqBC,UAAU,UAAUC,WAAW,aAAaC,SAAS,eAAeC,QAAQ,aAAaC,QAAQ,WAAWC,YAAY,yBAAyBC,eAAe,+BAA+BC,oBAAoB,+BAA0C5B,GAAK,CAACC,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,SAAS,SAAS,UAAU,YAAY,WAAW,SAAS,YAAYviX,WAAW,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,UAAU,WAAW,QAAQ,QAAQ,MAAM,OAAO,OAAO,SAAS,YAAY,UAAU,WAAW,YAAYojX,UAAU,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAWnwgB,GAAI,SAAasY,GAAK,IAAI7b,EAAI/F,UAAU3M,OAAO,QAAkBS,IAAfkM,UAAU,GAAeA,UAAU,GAAG,EAAE,OAAOjK,OAAO6rB,GAAKnZ,SAAS1C,EAAI,IAAI,EAAM+ygB,GAAW,SAAoBzpgB,GAAM,IAAIhU,EAAEgU,EAAKhU,EAAE+tB,EAAE/Z,EAAK+Z,EAAE/gB,EAAEgH,EAAKhH,EAAE0oC,EAAE1hC,EAAK0hC,EAAE63D,EAAQv5F,EAAKu5F,QAAQ4xa,EAAWnrgB,EAAY,MAAEorgB,OAAoB,IAAbD,GAA0BA,EAAeh4Z,EAAM,IAAIz1E,KAASw1E,EAAU,IAAIx1E,KAAKw1E,EAAU9mB,QAAQ8mB,EAAUxxE,EAAE,UAAU,GAAG,IAAI0xE,EAAS,IAAI11E,KAAK01E,EAAShnB,QAAQgnB,EAAS1xE,EAAE,UAAU,GAAklB,OAAtbyxE,EAAMzxE,EAAE,gBAA6b11C,GAA/fmnH,EAAMzxE,EAAE,aAAsgB3nB,GAAvkBo5F,EAAMzxE,EAAE,YAA8kB1oC,EAAUoygB,EAAO,MAAM,QAA1Sl4Z,EAAUxxE,EAAE,gBAA8T11C,GAAhZknH,EAAUxxE,EAAE,aAAuZ3nB,GAAxem5F,EAAUxxE,EAAE,YAA+e1oC,EAAUoygB,EAAO,MAAM,YAA3Lh4Z,EAAS1xE,EAAE,gBAAmN11C,GAAjSonH,EAAS1xE,EAAE,aAAwS3nB,GAArXq5F,EAAS1xE,EAAE,YAA4X1oC,EAAUoygB,EAAO,MAAM,WAAkB7xa,CAAO,EAAMlS,GAAQ,SAAiB56E,GAAM,IAAI4+f,EAAe,IAAI3te,KAAKjxB,EAAK45E,cAAc55E,EAAK26E,WAAW36E,EAAK8wB,WAAW8te,EAAej/a,QAAQi/a,EAAe9te,WAAW8te,EAAevjb,SAAS,GAAG,EAAE,GAAG,IAAIwjb,EAAc,IAAI5te,KAAK2te,EAAehlb,cAAc,EAAE,GAAGilb,EAAcl/a,QAAQk/a,EAAc/te,WAAW+te,EAAcxjb,SAAS,GAAG,EAAE,GAAG,IAAIyjb,EAAGF,EAAezib,oBAAoB0ib,EAAc1ib,oBAAoByib,EAAe7+a,SAAS6+a,EAAejjb,WAAWmjb,GAAI,IAAIC,GAAUH,EAAeC,GAAa,OAAY,OAAO,EAAE9khB,KAAKgrC,MAAMg6e,EAAS,EAAMlB,GAAa,SAAsB79f,GAAM,IAAIg/f,EAAIh/f,EAAKq7E,SAA2B,OAAT,IAAN2jb,IAASA,EAAI,GAASA,CAAG,EAAa3ib,GAAe,SAAwBr8E,GAAM,OAAO/lB,OAAO+lB,GAAMrf,MAAMsxH,KAAW,CAAC,KAAK98D,MAAM56D,QAAQ4hhB,GAAa,IAAI5hhB,QAAQ,aAAa,MAAM,ECsB78L,MA+MA,GA/MY0khB,KAAO,IAADC,EAAAC,EAChB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,GAAInmP,KAAMulP,KAEnDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAtzF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EACR,IAAI7+d,EAAY,aACE,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAQd,MAAMrQ,EAAc,IAAII,KAElBgve,EAAgB,IAAIhve,KAAKtmB,EAAKw9B,WAEpC,OADAurB,QAAQ/qB,IAAIs3d,EAAepve,GACpB,IACFlmB,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAUqiC,EAAY,SACtB+zX,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAnJY,CACpB,MACA,oBACA,aACA,cAgJQsjK,SAxJkBimX,IAC1Bf,EAAkBe,EAAc,UA2JZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECPP,GA5MmBukhB,KAAO,IAADvB,EAAAC,EACvB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,MAAOnmP,KAAMulP,KAEtDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5MkB2khB,KAAO,IAAD3B,EAAAC,EACtB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,YAAanmP,KAAMulP,KAE5Dh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5Me4khB,KAAO,IAAD5B,EAAAC,EACnB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,SAAUnmP,KAAMulP,KAEzDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5MmB6khB,KAAO,IAAD7B,EAAAC,EACvB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,QAASnmP,KAAMulP,KAExDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5Mc8khB,KAAO,IAAD9B,EAAAC,EAClB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,QAASnmP,KAAMulP,KAExDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5MiB+khB,KAAO,IAAD/B,EAAAC,EACrB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,UAAWnmP,KAAMulP,KAE1Dh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5MkBglhB,KAAO,IAADhC,EAAAC,EACtB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,QAASnmP,KAAMulP,KAExDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5MkBilhB,KAAO,IAADjC,EAAAC,EACtB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,YAAanmP,KAAMulP,KAE5Dh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,ECIP,GA5MeklhB,KAAO,IAADlC,EAAAC,EACnB,MAAOz0F,EAAS2B,IAAcr9P,EAAAA,EAAAA,UAAS,IAChCowV,EAAeC,IAAoBrwV,EAAAA,EAAAA,UAAS,KAC5C27P,EAAY2B,IAAiBt9P,EAAAA,EAAAA,UAAS,OACtCxvG,EAAS8/b,IAActwV,EAAAA,EAAAA,WAAS,IAChCuwV,EAAgBC,IAAqBxwV,EAAAA,EAAAA,UAAS,QAcnD5iL,KAAMqzgB,EAAiB,WACvB92H,EAAU,UACV/N,EACAp7T,QAASkgc,GACP9D,GAAsB,CAAEtwF,YAAa,SAAUnmP,KAAMulP,KAEzDh8P,EAAAA,EAAAA,YAAU,KACR,IACGi6N,GACD/N,GAC0C,IAA1C6kI,EAAkB/me,SAASs0X,WAC3B,CAAC,IAAD2yG,EAAAC,EACAlsc,QAAQ/qB,IAAI,gBAAiBy2d,GAC7B9yF,EAAwC,QAA3BqzF,EAACF,EAAkB/me,gBAAQ,IAAAine,GAAM,QAANC,EAA1BD,EAA4BvzgB,YAAI,IAAAwzgB,OAAN,EAA1BA,EAAkC9yF,WAAWnC,YAC3D,MAAMk1F,EAAsBJ,EAAkB/me,SAAStsC,KAAKA,KAAK5L,KAC9DmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACR,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,IAIHd,EADE30F,EAAU,EACM01F,GAAmB,IAChCA,KACAP,GAGY,IAAM,IAAIA,GAE/B,IACC,CAACl3H,EAAY/N,EAAW6kI,IA2D3B,IAAIY,EAAoBjB,EAkBxB,MAhBsB,qBAAlBG,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,UAGpB,cAAlBi6d,IACFc,EAAoBA,EAAkBr5f,QAAQ2D,GAC5CA,EAAKq1f,UAAU/3gB,cAAcq9C,SAAS,WAKxC5nC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,0CAAyCvO,SAAC,qBAGxD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACuigB,GAAc,CACbtphB,QAhJY,CACpB,MACA,oBACA,aACA,cA6IQsjK,SArJkBimX,IAC1Bf,EAAkBe,EAAc,UAwJZ,QAAjBrB,EAAAmB,SAAiB,IAAAnB,OAAA,EAAjBA,EAAmB3nhB,QAAS,IAC3BmmB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uFAAsFvO,SAClGmkhB,EAAkB7/gB,KAAI,CAACmqB,EAAM6zC,KAC5BzgD,EAAAA,GAAAA,KAACyigB,GAAS,CAAgBp0gB,KAAMue,GAAZ,OAAJA,QAAI,IAAJA,OAAI,EAAJA,EAAMiQ,SAI1B7c,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sBAAqBvO,UAChCysZ,GAAcgiC,GAAcA,EAAaD,IACzC3sa,EAAAA,GAAAA,KAAA,UACEq8I,QAnGWwwR,KACvByB,GAAYG,GAAgBA,EAAc,GAAE,EAmGhC/hb,UAAU,yLAAwLvO,SACnM,mBAORysZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGT2nL,KACE03H,GAAkD,IAAZ,QAAjBlB,EAAAkB,SAAiB,IAAAlB,OAAA,EAAjBA,EAAmB5nhB,WACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4DAA2DvO,SAAA,EACxE6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,uCAAsCvO,SAAC,iBACpD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,+BAA8BvO,SAAC,2DAG5C6hB,EAAAA,GAAAA,KAACokT,GAAI,CACH3tK,GAAG,eACH/pJ,UAAU,sIAAqIvO,SAChJ,8BAKN,EC8LP,QAtXesvI,KAAO,IAAD61Y,EAAAC,EACnB,MAAM/kN,EAAWR,KAEjB,IACE3vT,KAAMm1gB,EAAU,WAChB54H,EACA/N,UAAW4mI,EAAe,QAC1Bhic,GACEu8b,MAECpzH,GAAc64H,GAAqD,GAAlCD,EAAW7oe,SAASs0X,WACxDu0G,EAAaA,EAAW7oe,SAAStsC,KAAKA,KAAK5L,KAAKmqB,IAAU,IAADm1f,EAAAC,EAAAW,EAAAC,EACvD,IAAIz/d,EAAY,aAahB,OAZkB,QAAlB4+d,EAAIn1f,EAAKq1f,iBAAS,IAAAF,GAAdA,EAAgBx6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlB6+d,EAAIp1f,EAAKq1f,iBAAS,IAAAD,GAAdA,EAAgBz6d,SAAS,SAC3BpE,EAAY,OAEI,QAAlBw/d,EAAI/1f,EAAKq1f,iBAAS,IAAAU,GAAdA,EAAgBp7d,SAAS,QAC3BpE,EAAY,MAEI,QAAlBy/d,EAAIh2f,EAAKq1f,iBAAS,IAAAW,GAAdA,EAAgBr7d,SAAS,WAC3BpE,EAAY,SAEP,IACFv2B,EACHiQ,GAAIjQ,EAAK0mO,IACTr1P,KAAMklD,EACN4/I,MAAOn2K,EAAKvoB,KACZ2ygB,YAAapqf,EAAKu1f,eAAenL,YACjCqF,YAAagC,GAAWzxf,EAAKw9B,UAAW,0BACxCA,UAAWx9B,EAAKw9B,UAChBtpC,SAAU8L,EAAKi2f,UACf3rG,MAAOtqZ,EAAKyia,UACZitF,OAAQ1vf,EAAKw1f,YACd,KAGHoB,EAAa,GACb/hc,GAAU,GAGZ,MAiGMiic,EAAe,CACnB,CACE7mf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,MACLgK,KAAM,MACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACkhgB,GAAG,KAEjB,CACErkf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,cACLgK,KAAM,gBACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAAC0igB,GAAU,KAExB,CACE7lf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,YACLgK,KAAM,YACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAAC8igB,GAAS,KAEvB,CACEjmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,SACLgK,KAAM,SACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAAC+igB,GAAM,KAEpB,CACElmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,cACLgK,KAAM,gBACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACgjgB,GAAU,KAExB,CACEnmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,QACLgK,KAAM,QACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACijgB,GAAK,KAEnB,CACEpmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,WACLgK,KAAM,WACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACkjgB,GAAQ,KAEtB,CACErmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,aACLgK,KAAM,aACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACmjgB,GAAS,KAEvB,CACEtmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,SACLgK,KAAM,SACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACqjgB,GAAM,KAEpB,CACExmf,GAAI,EACJ8mf,SAAU,EACVtphB,IAAK,YACLgK,KAAM,YACNlG,SAAU,KACV6gB,WAAWgB,EAAAA,GAAAA,KAACojgB,GAAS,OAwCnB,UAAEQ,GAAc3kN,MAEf2vH,EAAYC,IAAgB59P,EAAAA,EAAAA,WAAS,KAC1C,MAAM4yV,EAAMH,EAAaj4Z,MAAMo4Z,GAAQA,EAAIxphB,MAAQuphB,IACnD,OAAOC,GAAYH,EAAa,EAAE,IAGpC,OACE/jgB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,GAAEvO,SAAA,EACf6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yBAAwBvO,UACrCwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,GAAU,GACzB9xT,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAGRysZ,GAAc44H,GAAcA,EAAWhqhB,OAAS,IAChDmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mCAAkCvO,SAAA,EAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sDAAqDvO,SAAC,oBAGpE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAAC27Q,GAAAA,EAAM,CAnMfjM,aAAc,KACdyC,eAAgB,EAChB77M,MAAM,EACNm6M,QAAQ,EACR8B,cAAc,EAEdlB,eAAe,EACfX,UAAU,EACVK,QAAS,UAETgB,WAAY,CACV,CACEllQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,MAGlB,CACE7iQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,OAGlB,CACE7iQ,WAAY,KACZ0xD,SAAU,CACRmxM,aAAc,OAGlB,CACE7iQ,WAAY,IACZ0xD,SAAU,CACRmxM,aAAc,KAqKVH,UAAoB,QAAV+zP,EAAAE,SAAU,IAAAF,OAAA,EAAVA,EAAY9phB,QAAS,EAC/BkT,UAAU,mBAAkBvO,SAE3BqlhB,EAAW/ghB,KAAI,CAACmqB,EAAM7vB,KACdijB,EAAAA,GAAAA,KAAC8jgB,GAAY,CAAaz1gB,KAAMue,GAAb7vB,YAMnC6tZ,IACC5qY,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAACijN,GAAM,OAGXtjN,EAAAA,GAAAA,MAAA,OACEjT,UAAW,8BACT82gB,IAAwB,QAAVD,EAAAC,SAAU,IAAAD,OAAA,EAAVA,EAAY/phB,QAAS,EAAI,YAAc,8GAC4C2E,SAAA,EAEnGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mGAAkGvO,SAAA,EAC/G6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,sFAAqFvO,SAAC,cAGpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kCACfsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kBAAiBvO,UAC9B6hB,EAAAA,GAAAA,KAAA,MACE,cAAY,UACZtT,UAAU,qVAgBFvO,SAEK,OAAZulhB,QAAY,IAAZA,OAAY,EAAZA,EAAcjhhB,KAAI,CAACktb,EAAM5yb,KAEtBijB,EAAAA,GAAAA,KAAA,MACED,KAAK,MAELrT,UAAW,wEACTkib,EAAWv0b,MAAQs1b,EAAKt1b,IAAM,kBAAoB,IAEpDgiK,QAASA,KACPwyR,EAAac,GAnIZpqD,EAAChjX,EAAOjB,KAC3B,OAAQA,GACN,KAAK,EACHk9S,EAAS,yCACT,MACF,KAAK,EACHA,EAAS,iDACT,MACF,KAAK,EACHA,EAAS,+CACT,MACF,KAAK,EACHA,EAAS,4CACT,MACF,KAAK,EACHA,EAAS,iDACT,MACF,KAAK,EACHA,EAAS,2CACT,MACF,KAAK,EACHA,EAAS,8CACT,MACF,KAAK,EACHA,EAAS,gDACT,MACF,KAAK,EACHA,EAAS,4CACT,MACF,KAAK,EACHA,EAAS,+CAIb,EAkGkB+mE,CAAaoqD,EAAKt1b,IAAK0C,EAAM,EAC7BoB,SAEDwxb,EAAKtrb,MATDsrb,EAAKt1b,eAiBtB2lB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,uKAAsKvO,SAClLywb,EAAW5va,iBAGZ,GC/XV,GATqB9gB,IACjB,MAAM,UAAEwO,EAAS,KAAEqF,EAAI,KAAE9T,EAAI,SAAEiU,EAAQ,QAAEmqJ,GAAYn+J,EACrD,OACIyhB,EAAAA,GAAAA,MAAA,UAAQjT,UAAW,GAAGA,wHAAiIzO,KAAMA,EAAMo+J,QAASA,EAASnqJ,SAAUA,EAAS/T,SAAA,EACrM6hB,EAAAA,GAAAA,KAAA,OAAKsrE,yxCAAiB8pK,IAAI,GAAG1oP,UAAU,uBAAsB,IAAEqF,IACzD,ECGX5R,GAAQ,CACZ,CAAE6kB,MAAO,wBAAyBvoB,QAAS23a,IAC3C,CAAEpvZ,MAAO,wBAAyBvoB,QAAS43a,IAC3C,CAAErvZ,MAAO,qBAAsBvoB,QAAS63a,IACxC,CAAEtvZ,MAAO,wBAAyBvoB,QAAS83a,IAC3C,CAAEvvZ,MAAO,gCAAiCvoB,QAAS+3a,KA0BrD,GAvBmBt2a,IAEfyhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,sBAAqBvO,SAAA,EAClC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,wCAAuCvO,SAAC,gCAGpDgC,GAAMsC,KAAI,CAAC7H,EAAMmC,KAChB,MAAMsqY,EACJnpY,EAAM3B,OAAS2B,EAAM3B,MAAMqG,MAAMhI,EAAK6B,SAClC,SACAyB,EAAM3B,MAAM/C,OAAS,EACrB,cACA,GACN,OACEwmB,EAAAA,GAAAA,KAAA,KAAGtT,UAAW,GAAG26X,qCAAsClpY,SACpDvD,EAAKoqB,OADqDjoB,EAEzD,kBCpCRs/B,GAAW84Y,GAAkBrnB,IACtBi2H,GAAY90I,GACvB,cACArtT,MAAApsE,EAAA5E,KAAqD,IAA9C,MAAEkR,EAAK,SAAEC,GAAUvM,GAAE,gBAAE66X,GAAiBz/X,EAC7C,IAAK,IAADmia,EACF,MAAM1ka,QAAaguB,GAASl7B,KAAK6sZ,GAAcC,MAAO,CACpDnsY,QACAC,WACAiigB,UAAW,MACXlgf,QAASmgf,KAGX,GAAQ,OAAJ51gB,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,OAAV,EAAJA,EAAgB9D,YAAkB,CAAC,IAAD+D,EAAAC,EAAAu7F,EAAAC,EAAAyV,EAAAtV,EAAAC,EAAAsV,EAAArV,EAAAC,EAAAqV,EAAApV,EAAAC,EAAAoV,EAAAnV,EAAAC,EAAAmV,EAAAlV,EAAAC,EAAAkV,EAAAjV,EAAAC,EAAAiV,EAAA1U,EAAAC,EAAA0U,EAAApY,EAAA6F,EAAAC,EAAA7F,EAAAC,EAAA6F,EAAAzF,EAAAC,EAAA8X,EAAArS,EAAAC,EAAAC,EAAAgC,EAAAC,EAAAiB,EAAAhB,EAAAC,EAAAiQ,EAAA/R,EAAAC,EAAA+R,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAEtDxue,aAAaoxQ,QAAQ,cAAmB,OAAJl6S,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,GAAM,QAANC,EAAdD,EAAgB3ka,YAAI,IAAA4ka,OAAhB,EAAJA,EAAsB2yG,aAC1D,IAAI3kJ,EAAW,KACL,OAAJ5yX,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,GAAM,QAANyV,EAApBzV,EAAsBoX,YAAI,IAAA3B,OAAtB,EAAJA,EAA4B5wR,MAAO,CACrCz2N,GAAQ,OAAJxuB,QAAI,IAAJA,GAAc,QAAVuggB,EAAJvggB,EAAMssC,gBAAQ,IAAAi0d,GAAM,QAANC,EAAdD,EAAgBvggB,YAAI,IAAAwggB,GAAM,QAANsV,EAApBtV,EAAsBgX,YAAI,IAAA1B,OAAtB,EAAJA,EAA4B7wR,SAE1B,OAAJjlP,QAAI,IAAJA,GAAc,QAAVyggB,EAAJzggB,EAAMssC,gBAAQ,IAAAm0d,GAAM,QAANC,EAAdD,EAAgBzggB,YAAI,IAAA0ggB,GAAM,QAANqV,EAApBrV,EAAsB8W,YAAI,IAAAzB,OAAtB,EAAJA,EAA4BtigB,QAAS,CACvCA,MAAW,OAAJzT,QAAI,IAAJA,GAAc,QAAV2ggB,EAAJ3ggB,EAAMssC,gBAAQ,IAAAq0d,GAAM,QAANC,EAAdD,EAAgB3ggB,YAAI,IAAA4ggB,GAAM,QAANoV,EAApBpV,EAAsB4W,YAAI,IAAAxB,OAAtB,EAAJA,EAA4BvigB,WAE7B,OAAJzT,QAAI,IAAJA,GAAc,QAAV6ggB,EAAJ7ggB,EAAMssC,gBAAQ,IAAAu0d,GAAM,QAANC,EAAdD,EAAgB7ggB,YAAI,IAAA8ggB,GAAM,QAANmV,EAApBnV,EAAsB0W,YAAI,IAAAvB,OAAtB,EAAJA,EAA4BwB,YAAa,CAC3CA,UAAe,OAAJz3gB,QAAI,IAAJA,GAAc,QAAV+ggB,EAAJ/ggB,EAAMssC,gBAAQ,IAAAy0d,GAAM,QAANC,EAAdD,EAAgB/ggB,YAAI,IAAAghgB,GAAM,QAANkV,EAApBlV,EAAsBwW,YAAI,IAAAtB,OAAtB,EAAJA,EAA4BuB,eAEjC,OAAJz3gB,QAAI,IAAJA,GAAc,QAAVihgB,EAAJjhgB,EAAMssC,gBAAQ,IAAA20d,GAAM,QAANC,EAAdD,EAAgBjhgB,YAAI,IAAAkhgB,GAAM,QAANiV,EAApBjV,EAAsBsW,YAAI,IAAArB,OAAtB,EAAJA,EAA4BuB,WAAY,CAC1CA,SAAc,OAAJ13gB,QAAI,IAAJA,GAAc,QAAVyhgB,EAAJzhgB,EAAMssC,gBAAQ,IAAAm1d,GAAM,QAANC,EAAdD,EAAgBzhgB,YAAI,IAAA0hgB,GAAM,QAAN0U,EAApB1U,EAAsB8V,YAAI,IAAApB,OAAtB,EAAJA,EAA4BsB,cAEhC,OAAJ13gB,QAAI,IAAJA,GAAc,QAAVg+f,EAAJh+f,EAAMssC,gBAAQ,IAAA0xd,GAAM,QAAN6F,EAAd7F,EAAgBh+f,YAAI,IAAA6jgB,GAAM,QAANC,EAApBD,EAAsB2T,YAAI,IAAA1T,OAAtB,EAAJA,EAA4B6T,WAAY,CAC1CA,SAAc,OAAJ33gB,QAAI,IAAJA,GAAc,QAAVi+f,EAAJj+f,EAAMssC,gBAAQ,IAAA2xd,GAAM,QAANC,EAAdD,EAAgBj+f,YAAI,IAAAk+f,GAAM,QAAN6F,EAApB7F,EAAsBsZ,YAAI,IAAAzT,OAAtB,EAAJA,EAA4B4T,cAEhC,OAAJ33gB,QAAI,IAAJA,GAAc,QAAVs+f,EAAJt+f,EAAMssC,gBAAQ,IAAAgyd,GAAM,QAANC,EAAdD,EAAgBt+f,YAAI,IAAAu+f,GAAM,QAAN8X,EAApB9X,EAAsBiZ,YAAI,IAAAnB,OAAtB,EAAJA,EAA4BuB,SAAU,CACxCA,OAAY,OAAJ53gB,QAAI,IAAJA,GAAc,QAAVgkgB,EAAJhkgB,EAAMssC,gBAAQ,IAAA03d,GAAM,QAANC,EAAdD,EAAgBhkgB,YAAI,IAAAikgB,GAAM,QAANC,EAApBD,EAAsBuT,YAAI,IAAAtT,OAAtB,EAAJA,EAA4B0T,YAE9B,OAAJ53gB,QAAI,IAAJA,GAAc,QAAVkmgB,EAAJlmgB,EAAMssC,gBAAQ,IAAA45d,GAAM,QAANC,EAAdD,EAAgBlmgB,YAAI,IAAAmmgB,GAAM,QAANiB,EAApBjB,EAAsBqR,YAAI,IAAApQ,OAAtB,EAAJA,EAA4ByQ,MAAO,CACrCA,IAAS,OAAJ73gB,QAAI,IAAJA,GAAc,QAAVomgB,EAAJpmgB,EAAMssC,gBAAQ,IAAA85d,GAAM,QAANC,EAAdD,EAAgBpmgB,YAAI,IAAAqmgB,GAAM,QAANiQ,EAApBjQ,EAAsBmR,YAAI,IAAAlB,OAAtB,EAAJA,EAA4BuB,SAE3B,OAAJ73gB,QAAI,IAAJA,GAAc,QAAVukgB,EAAJvkgB,EAAMssC,gBAAQ,IAAAi4d,GAAM,QAANC,EAAdD,EAAgBvkgB,YAAI,IAAAwkgB,GAAM,QAAN+R,EAApB/R,EAAsBgT,YAAI,IAAAjB,OAAtB,EAAJA,EAA4BuB,aAAc,CAC5CA,WAAgB,OAAJ93gB,QAAI,IAAJA,GAAc,QAAVw2gB,EAAJx2gB,EAAMssC,gBAAQ,IAAAkqe,GAAM,QAANC,GAAdD,EAAgBx2gB,YAAI,IAAAy2gB,IAAM,QAANC,GAApBD,GAAsBe,YAAI,IAAAd,QAAtB,EAAJA,GAA4BoB,gBAElC,OAAJ93gB,QAAI,IAAJA,GAAc,QAAV22gB,GAAJ32gB,EAAMssC,gBAAQ,IAAAqqe,IAAM,QAANC,GAAdD,GAAgB32gB,YAAI,IAAA42gB,IAAM,QAANC,GAApBD,GAAsBY,YAAI,IAAAX,QAAtB,EAAJA,GAA4BkB,aAAc,CAC5CA,WAAgB,OAAJ/3gB,QAAI,IAAJA,GAAc,QAAV82gB,GAAJ92gB,EAAMssC,gBAAQ,IAAAwqe,IAAM,QAANC,GAAdD,GAAgB92gB,YAAI,IAAA+2gB,IAAM,QAANC,GAApBD,GAAsBS,YAAI,IAAAR,QAAtB,EAAJA,GAA4Be,gBAElC,OAAJ/3gB,QAAI,IAAJA,GAAc,QAAVi3gB,GAAJj3gB,EAAMssC,gBAAQ,IAAA2qe,IAAM,QAANC,GAAdD,GAAgBj3gB,YAAI,IAAAk3gB,IAAM,QAANC,GAApBD,GAAsBM,YAAI,IAAAL,QAAtB,EAAJA,GAA4Ba,QAAS,CACvCA,MAAW,OAAJh4gB,QAAI,IAAJA,GAAc,QAAVo3gB,GAAJp3gB,EAAMssC,gBAAQ,IAAA8qe,IAAM,QAANC,GAAdD,GAAgBp3gB,YAAI,IAAAq3gB,IAAM,QAANC,GAApBD,GAAsBG,YAAI,IAAAF,QAAtB,EAAJA,GAA4BU,QAKvC,OAFAlve,aAAaoxQ,QAAQ,WAAYxyS,KAAKjW,UAAUmhY,IAChD9pV,aAAaoxQ,QAAQ,QAASzmS,GACnB,OAAJzT,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,QACf,CACE,OAAO01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,IACP,OAAIA,GAAMkmC,UAAYlmC,GAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,GAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,GAAMg4B,QAEjC,KAIS65e,GAAcr3I,GACzB,oBACArtT,MAAAl3D,EAAA03S,KAAkD,IAA3C,aAAEmkN,GAAc77f,GAAE,gBAAE2lX,GAAiBjuE,EAC1C,IAAK,IAADokN,EACF,MAAMn4gB,QAAaguB,GAASl7B,KAAK6sZ,GAAcE,YAAa,CAC1Dq4H,iBAEF,GAAQ,OAAJl4gB,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAVm4gB,EAAJn4gB,EAAMssC,gBAAQ,IAAA6re,OAAV,EAAJA,EAAgBv3G,YAAkB,CAAC,IAADw3G,EAAAC,EAAAC,EAAAC,EAAAxe,EAAAye,EAAAC,EAAAC,EAEtD5ve,aAAaoxQ,QAAQ,cAAmB,OAAJl6S,QAAI,IAAJA,GAAc,QAAVo4gB,EAAJp4gB,EAAMssC,gBAAQ,IAAA8re,GAAM,QAANC,EAAdD,EAAgBp4gB,YAAI,IAAAq4gB,OAAhB,EAAJA,EAAsBd,aAiC1D,IAAI3kJ,EAAe,OAAJ5yX,QAAI,IAAJA,GAAc,QAAVs4gB,EAAJt4gB,EAAMssC,gBAAQ,IAAAgse,GAAM,QAANC,EAAdD,EAAgBt4gB,YAAI,IAAAu4gB,OAAhB,EAAJA,EAAsBf,KAOrC,OANA5kJ,EAAW,IACNA,EACHpkW,GAAY,QAAVure,EAAEnnI,SAAQ,IAAAmnI,OAAA,EAARA,EAAU90Q,KAEhBn8M,aAAaoxQ,QAAQ,WAAYxyS,KAAKjW,UAAUmhY,IAChD9pV,aAAaoxQ,QAAQ,QAAa,OAAJl6S,QAAI,IAAJA,GAAc,QAAVw4gB,EAAJx4gB,EAAMssC,gBAAQ,IAAAkse,GAAM,QAANC,EAAdD,EAAgBx4gB,YAAI,IAAAy4gB,GAAM,QAANC,EAApBD,EAAsBjB,YAAI,IAAAkB,OAAtB,EAAJA,EAA4BjlgB,OAC/C,OAAJzT,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,QACf,CACE,OAAO01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,GACP,OAAIA,EAAMkmC,UAAYlmC,EAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,EAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,EAAMg4B,QAEjC,KAISu6e,GAAe/3I,GAC1B,iBACArtT,MAAA+gP,EAAAQ,KAAwE,IAAjE,KAAE9+T,EAAI,MAAEyd,EAAK,SAAEC,EAAQ,YAAEklgB,GAAatkN,GAAE,gBAAE0tE,GAAiBltE,EAChE,IAAK,IAAD+jN,EACF,MAAM74gB,QAAaguB,GAASl7B,KAAK6sZ,GAAcG,OAAQ,CACrD9pZ,OACAyd,QACAC,WACAklgB,gBAEuD,IAADE,EAAAC,EAAxD,OAAQ,OAAJ/4gB,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAV64gB,EAAJ74gB,EAAMssC,gBAAQ,IAAAuse,OAAV,EAAJA,EAAgBj4G,aACpC93X,aAAaoxQ,QAAQ,QAAa,OAAJl6S,QAAI,IAAJA,GAAc,QAAV84gB,EAAJ94gB,EAAMssC,gBAAQ,IAAAwse,GAAM,QAANC,EAAdD,EAAgB94gB,YAAI,IAAA+4gB,OAAhB,EAAJA,EAAsBtlgB,OACzC,OAAJzT,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,UAEN01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,GACP,OAAIA,EAAMkmC,UAAYlmC,EAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,EAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,EAAMg4B,QAEjC,KAIS46e,GAAap4I,GACxB,eACArtT,MAAAyiP,EAAAiB,KAAgD,IAAzC,MAAExjT,EAAK,IAAEg3Z,GAAKz0G,GAAE,gBAAEgsE,GAAiB/qE,EACxC,IAAK,IAADgiN,EACF,MAAMpngB,EAAOi3B,aAAaixQ,QAAQ,YAC9B4lG,GAAcS,kBACdT,GAAcI,WACZ//Y,QAAaguB,GAASl7B,KAAK+e,EAAM,CAAE4B,QAAOg3Z,QAChD,GAAQ,OAAJzqa,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAVi5gB,EAAJj5gB,EAAMssC,gBAAQ,IAAA2se,OAAV,EAAJA,EAAgBr4G,YAAkB,CAAC,IAADs4G,EAAAC,EAAAC,EAAAC,EAEfC,EAAAC,EAAvC,GADAzwe,aAAa0we,WAAW,SAChB,OAAJx5gB,QAAI,IAAJA,GAAc,QAAVk5gB,EAAJl5gB,EAAMssC,gBAAQ,IAAA4se,GAAM,QAANC,EAAdD,EAAgBl5gB,YAAI,IAAAm5gB,GAApBA,EAAsB5B,YACxBzue,aAAaoxQ,QACX,cACI,OAAJl6S,QAAI,IAAJA,GAAc,QAAVs5gB,EAAJt5gB,EAAMssC,gBAAQ,IAAAgte,GAAM,QAANC,EAAdD,EAAgBt5gB,YAAI,IAAAu5gB,OAAhB,EAAJA,EAAsBhC,aAG1B,GAAQ,OAAJv3gB,QAAI,IAAJA,GAAc,QAAVo5gB,EAAJp5gB,EAAMssC,gBAAQ,IAAA8se,GAAM,QAANC,EAAdD,EAAgBp5gB,YAAI,IAAAq5gB,GAApBA,EAAsB7B,KAAM,CAAC,IAADiC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAC9B,IAAIlqJ,EAAW,KACL,OAAJ5yX,QAAI,IAAJA,GAAc,QAAVy5gB,EAAJz5gB,EAAMssC,gBAAQ,IAAAmte,GAAM,QAANC,EAAdD,EAAgBz5gB,YAAI,IAAA05gB,GAAM,QAANC,EAApBD,EAAsBlC,YAAI,IAAAmC,OAAtB,EAAJA,EAA4B10R,MAAO,CACrCz2N,GAAQ,OAAJxuB,QAAI,IAAJA,GAAc,QAAV45gB,EAAJ55gB,EAAMssC,gBAAQ,IAAAste,GAAM,QAANC,EAAdD,EAAgB55gB,YAAI,IAAA65gB,GAAM,QAANC,EAApBD,EAAsBrC,YAAI,IAAAsC,OAAtB,EAAJA,EAA4B70R,SAE1B,OAAJjlP,QAAI,IAAJA,GAAc,QAAV+5gB,EAAJ/5gB,EAAMssC,gBAAQ,IAAAyte,GAAM,QAANC,EAAdD,EAAgB/5gB,YAAI,IAAAg6gB,GAAM,QAANC,EAApBD,EAAsBxC,YAAI,IAAAyC,OAAtB,EAAJA,EAA4BxmgB,QAAS,CACvCA,MAAW,OAAJzT,QAAI,IAAJA,GAAc,QAAVk6gB,EAAJl6gB,EAAMssC,gBAAQ,IAAA4te,GAAM,QAANC,EAAdD,EAAgBl6gB,YAAI,IAAAm6gB,GAAM,QAANC,EAApBD,EAAsB3C,YAAI,IAAA4C,OAAtB,EAAJA,EAA4B3mgB,WAE7B,OAAJzT,QAAI,IAAJA,GAAc,QAAVq6gB,EAAJr6gB,EAAMssC,gBAAQ,IAAA+te,GAAM,QAANC,EAAdD,EAAgBr6gB,YAAI,IAAAs6gB,GAAM,QAANC,EAApBD,EAAsB9C,YAAI,IAAA+C,OAAtB,EAAJA,EAA4B9C,YAAa,CAC3CA,UAAe,OAAJz3gB,QAAI,IAAJA,GAAc,QAAVw6gB,EAAJx6gB,EAAMssC,gBAAQ,IAAAkue,GAAM,QAANC,EAAdD,EAAgBx6gB,YAAI,IAAAy6gB,GAAM,QAANC,EAApBD,EAAsBjD,YAAI,IAAAkD,OAAtB,EAAJA,EAA4BjD,eAEjC,OAAJz3gB,QAAI,IAAJA,GAAc,QAAV26gB,EAAJ36gB,EAAMssC,gBAAQ,IAAAque,GAAM,QAANC,EAAdD,EAAgB36gB,YAAI,IAAA46gB,GAAM,QAANC,EAApBD,EAAsBpD,YAAI,IAAAqD,OAAtB,EAAJA,EAA4BnD,WAAY,CAC1CA,SAAc,OAAJ13gB,QAAI,IAAJA,GAAc,QAAV86gB,EAAJ96gB,EAAMssC,gBAAQ,IAAAwue,GAAM,QAANC,EAAdD,EAAgB96gB,YAAI,IAAA+6gB,GAAM,QAANC,EAApBD,EAAsBvD,YAAI,IAAAwD,OAAtB,EAAJA,EAA4BtD,cAEhC,OAAJ13gB,QAAI,IAAJA,GAAc,QAAVi7gB,EAAJj7gB,EAAMssC,gBAAQ,IAAA2ue,GAAM,QAANC,EAAdD,EAAgBj7gB,YAAI,IAAAk7gB,GAAM,QAANC,EAApBD,EAAsB1D,YAAI,IAAA2D,OAAtB,EAAJA,EAA4BxD,WAAY,CAC1CA,SAAc,OAAJ33gB,QAAI,IAAJA,GAAc,QAAVo7gB,EAAJp7gB,EAAMssC,gBAAQ,IAAA8ue,GAAM,QAANC,EAAdD,EAAgBp7gB,YAAI,IAAAq7gB,GAAM,QAANC,EAApBD,EAAsB7D,YAAI,IAAA8D,OAAtB,EAAJA,EAA4B3D,cAEhC,OAAJ33gB,QAAI,IAAJA,GAAc,QAAVu7gB,EAAJv7gB,EAAMssC,gBAAQ,IAAAive,GAAM,QAANC,EAAdD,EAAgBv7gB,YAAI,IAAAw7gB,GAAM,QAANC,EAApBD,EAAsBhE,YAAI,IAAAiE,OAAtB,EAAJA,EAA4B7D,SAAU,CACxCA,OAAY,OAAJ53gB,QAAI,IAAJA,GAAc,QAAV07gB,EAAJ17gB,EAAMssC,gBAAQ,IAAAove,GAAM,QAANC,EAAdD,EAAgB17gB,YAAI,IAAA27gB,GAAM,QAANC,EAApBD,EAAsBnE,YAAI,IAAAoE,OAAtB,EAAJA,EAA4BhE,YAE9B,OAAJ53gB,QAAI,IAAJA,GAAc,QAAV67gB,EAAJ77gB,EAAMssC,gBAAQ,IAAAuve,GAAM,QAANC,EAAdD,EAAgB77gB,YAAI,IAAA87gB,GAAM,QAANC,EAApBD,EAAsBtE,YAAI,IAAAuE,OAAtB,EAAJA,EAA4BlE,MAAO,CACrCA,IAAS,OAAJ73gB,QAAI,IAAJA,GAAc,QAAVg8gB,EAAJh8gB,EAAMssC,gBAAQ,IAAA0ve,GAAM,QAANC,EAAdD,EAAgBh8gB,YAAI,IAAAi8gB,GAAM,QAANC,EAApBD,EAAsBzE,YAAI,IAAA0E,OAAtB,EAAJA,EAA4BrE,SAE3B,OAAJ73gB,QAAI,IAAJA,GAAc,QAAVm8gB,GAAJn8gB,EAAMssC,gBAAQ,IAAA6ve,IAAM,QAANC,GAAdD,GAAgBn8gB,YAAI,IAAAo8gB,IAAM,QAANC,GAApBD,GAAsB5E,YAAI,IAAA6E,QAAtB,EAAJA,GAA4BvE,aAAc,CAC5CA,WAAgB,OAAJ93gB,QAAI,IAAJA,GAAc,QAAVs8gB,GAAJt8gB,EAAMssC,gBAAQ,IAAAgwe,IAAM,QAANC,GAAdD,GAAgBt8gB,YAAI,IAAAu8gB,IAAM,QAANC,GAApBD,GAAsB/E,YAAI,IAAAgF,QAAtB,EAAJA,GAA4B1E,gBAElC,OAAJ93gB,QAAI,IAAJA,GAAc,QAAVy8gB,GAAJz8gB,EAAMssC,gBAAQ,IAAAmwe,IAAM,QAANC,GAAdD,GAAgBz8gB,YAAI,IAAA08gB,IAAM,QAANC,GAApBD,GAAsBlF,YAAI,IAAAmF,QAAtB,EAAJA,GAA4B5E,aAAc,CAC5CA,WAAgB,OAAJ/3gB,QAAI,IAAJA,GAAc,QAAV48gB,GAAJ58gB,EAAMssC,gBAAQ,IAAAswe,IAAM,QAANC,GAAdD,GAAgB58gB,YAAI,IAAA68gB,IAAM,QAANC,GAApBD,GAAsBrF,YAAI,IAAAsF,QAAtB,EAAJA,GAA4B/E,aAG5Cjve,aAAaoxQ,QAAQ,WAAYxyS,KAAKjW,UAAUmhY,GAClD,CACA,OAAW,OAAJ5yX,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,QACf,CACE,OAAO01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,IACP,OAAIA,GAAMkmC,UAAYlmC,GAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,GAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,GAAMg4B,QAEjC,KAIS2+e,GAAiBn8I,GAC5B,eACArtT,MAAA6wS,EAAAG,KAA2C,IAApC,MAAE9wW,GAAO2wW,GAAE,gBAAE4d,GAAiBzd,EACnC,IAAK,IAADy4J,EACF,MAAMh9gB,QAAaguB,GAASl7B,KAAK6sZ,GAAcM,gBAAiB,CAC9DxsY,UAEF,OAAQ,OAAJzT,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAVg9gB,EAAJh9gB,EAAMssC,gBAAQ,IAAA0we,OAAV,EAAJA,EAAgBp8G,aACpC93X,aAAaoxQ,QAAQ,WAAYzmS,GACtB,OAAJzT,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,UAEN01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,GACP,OAAIA,EAAMkmC,UAAYlmC,EAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,EAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,EAAMg4B,QAEjC,KAyBS6+e,GAAgBr8I,GAC3B,cACArtT,MAAAixS,EAAAjE,KAAkE,IAA3D,mBAAE28J,EAAkB,SAAExpgB,GAAU8wW,GAAE,gBAAEwd,GAAiBzhB,EAC1D,IAAK,IAAD48J,EACF,MAAMn9gB,QAAaguB,GAASl7B,KAAK6sZ,GAAcU,eAAgB,CAC7D68H,qBACAxpgB,aAEF,OAAQ,OAAJ1T,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAVm9gB,EAAJn9gB,EAAMssC,gBAAQ,IAAA6we,OAAV,EAAJA,EAAgBv8G,aACpC93X,aAAa0we,WAAW,YACb,OAAJx5gB,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,UAEN01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,GACP,OAAIA,EAAMkmC,UAAYlmC,EAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,EAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,EAAMg4B,QAEjC,KAISg/e,GAA2Bx8I,GACtC,iCACArtT,MAAAkpS,EAAAgG,KAAwD,IAAjD,mBAAEy6J,GAAoBzgK,GAAE,gBAAEulB,GAAiBvf,EAChD,IAAK,IAAD46J,EACF,MAAMr9gB,QAAaguB,GAASl7B,KAC1B6sZ,GAAcY,4BACd,CAAE28H,uBAEJ,OAAQ,OAAJl9gB,QAAI,IAAJA,GAAAA,EAAMssC,UAA2C,KAA3B,OAAJtsC,QAAI,IAAJA,GAAc,QAAVq9gB,EAAJr9gB,EAAMssC,gBAAQ,IAAA+we,OAAV,EAAJA,EAAgBz8G,YACzB,OAAJ5ga,QAAI,IAAJA,OAAI,EAAJA,EAAMssC,SAEN01V,EAAgBhiY,EAAKssC,SAEhC,CAAE,MAAOlmC,GACP,OAAIA,EAAMkmC,UAAYlmC,EAAMkmC,SAAStsC,KAAKo+B,QACjC4jW,EAAgB57X,EAAMkmC,SAAStsC,KAAKo+B,SAEpC4jW,EAAgB57X,EAAMg4B,QAEjC,KCtSEy0V,GAAY/pV,aAAaixQ,QAAQ,eACnCjxQ,aAAaixQ,QAAQ,eACrB,KAiBSujO,GAAgB9+I,GAAY,CACvCxoY,KAAM,WACN0oY,aAfmB,CACnB1vF,SAAS,EACT4jF,SALe9pV,aAAaixQ,QAAQ,YAClCryS,KAAK7V,MAAMi3C,aAAaixQ,QAAQ,aAChC,KAIF84E,aACAzsX,MAAO,KACPM,SAAS,EACT62gB,WAAY,KACZC,kBAAkB,EAClBC,kBAAkB,GAQlBljJ,SAAU,CACRmjJ,OAAS7qgB,IACPi2B,aAAa0we,WAAW,eACxB1we,aAAa0we,WAAW,YACxB1we,aAAa0we,WAAW,SACxB3mgB,EAAMm8R,SAAU,EAChBn8R,EAAM+/W,SAAW,KACjB//W,EAAMggX,UAAY,KAClBhgX,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,IAAI,EAEzBI,eAAgBA,CAAC9qgB,EAAK1L,KAAmB,IAAjB,QAAE66C,GAAS76C,EACD,IAADy2gB,EACAC,EADN,QAAd,OAAP77d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,SACA,OAAP4jB,QAAO,IAAPA,GAAiB,QAAV47d,EAAP57d,EAAS1V,gBAAQ,IAAAsxe,GAAjBA,EAAmB59gB,OACrB6S,EAAM+/W,SAAkB,OAAP5wU,QAAO,IAAPA,GAAiB,QAAV67d,EAAP77d,EAAS1V,gBAAQ,IAAAuxe,OAAV,EAAPA,EAAmB79gB,MAGtC6S,EAAM+/W,SAAW,IACnB,EAEFkrJ,cAAgBjrgB,IACdA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,IAAI,GAG3Bv+I,cAAgBp2U,IACdA,EACGw1U,QAAQs3I,GAAU34V,SAAUlqK,IAC3BA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQs3I,GAAU10I,WAAW,CAACnuX,EAAKtQ,KAAmB,IAADw7gB,EAAAC,EAAA,IAAhB,QAAEh8d,GAASz/C,EAC/CsQ,EAAMm8R,SAAU,EAChBn8R,EAAM+/W,SAAkB,OAAP5wU,QAAO,IAAPA,GAAa,QAAN+7d,EAAP/7d,EAAShiD,YAAI,IAAA+9gB,OAAN,EAAPA,EAAevG,KAChC3kgB,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QAC5BvrB,EAAMggX,UAAmB,OAAP7wU,QAAO,IAAPA,GAAa,QAANg8d,EAAPh8d,EAAShiD,YAAI,IAAAg+gB,OAAN,EAAPA,EAAezG,WAAW,IAE7Cn5I,QAAQs3I,GAAUtrb,UAAU,CAACv3E,EAAKwJ,KAAmB,IAAjB,QAAE2lC,GAAS3lC,EAC9CxJ,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQ65I,GAAYl7V,SAAUlqK,IAC7BA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQ65I,GAAYj3I,WAAW,CAACnuX,EAAKkhT,KAAmB,IAADkqN,EAAAC,EAAA,IAAhB,QAAEl8d,GAAS+xQ,EACjDlhT,EAAMm8R,SAAU,EAChBn8R,EAAM+/W,SAAkB,OAAP5wU,QAAO,IAAPA,GAAa,QAANi8d,EAAPj8d,EAAShiD,YAAI,IAAAi+gB,OAAN,EAAPA,EAAezG,KAChC3kgB,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QAC5BvrB,EAAMggX,UAAmB,OAAP7wU,QAAO,IAAPA,GAAa,QAANk8d,EAAPl8d,EAAShiD,YAAI,IAAAk+gB,OAAN,EAAPA,EAAe3G,WAAW,IAE7Cn5I,QAAQ65I,GAAY7tb,UAAU,CAACv3E,EAAKyhT,KAAmB,IAAjB,QAAEtyQ,GAASsyQ,EAChDzhT,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQu6I,GAAa57V,SAAUlqK,IAC9BA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQu6I,GAAa33I,WAAW,CAACnuX,EAAKiiT,KAAmB,IAAjB,QAAE9yQ,GAAS8yQ,EAClDjiT,EAAMm8R,SAAU,EAChBn8R,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,OAAO,IAEpCggW,QAAQu6I,GAAavub,UAAU,CAACv3E,EAAKmjT,KAAmB,IAAjB,QAAEh0Q,GAASg0Q,EACjDnjT,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQ46I,GAAWj8V,SAAUlqK,IAC5BA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,KACnB1qgB,EAAMnM,SAAU,CAAK,IAEtB03X,QAAQ46I,GAAWh4I,WAAW,CAACnuX,EAAKokT,KAAmB,IAADknN,EAAAC,EAAA,IAAhB,QAAEp8d,GAASi1Q,EAEf,IAADonN,EAGPC,GAJzBzrgB,EAAMm8R,SAAU,EACL,OAAPhtP,QAAO,IAAPA,GAAa,QAANm8d,EAAPn8d,EAAShiD,YAAI,IAAAm+gB,GAAbA,EAAe5G,eACjB1kgB,EAAMggX,UAAmB,OAAP7wU,QAAO,IAAPA,GAAa,QAANq8d,EAAPr8d,EAAShiD,YAAI,IAAAq+gB,OAAN,EAAPA,EAAe9G,aAExB,OAAPv1d,QAAO,IAAPA,GAAa,QAANo8d,EAAPp8d,EAAShiD,YAAI,IAAAo+gB,GAAbA,EAAe5G,OACjB3kgB,EAAM+/W,SAAkB,OAAP5wU,QAAO,IAAPA,GAAa,QAANs8d,EAAPt8d,EAAShiD,YAAI,IAAAs+gB,OAAN,EAAPA,EAAe9G,MAElC3kgB,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,OAAO,IAEpCggW,QAAQ46I,GAAW5ub,UAAU,CAACv3E,EAAKuxW,KAAmB,IAAjB,QAAEpiU,GAASoiU,EAC/CvxW,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQ2+I,GAAehgW,SAAUlqK,IAChCA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,KACnB1qgB,EAAMnM,SAAU,CAAK,IAEtB03X,QAAQ2+I,GAAe/7I,WAAW,CAACnuX,EAAK0xW,KAAmB,IAAjB,QAAEviU,GAASuiU,EACpD1xW,EAAMm8R,SAAU,EAChBn8R,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,OAAO,IAEpCggW,QAAQ2+I,GAAe3yb,UAAU,CAACv3E,EAAK2xW,KAAmB,IAAjB,QAAExiU,GAASwiU,EACnD3xW,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,IAAI,IAExBn/I,QAAQ6+I,GAAclgW,SAAUlqK,IAC/BA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,KACnB1qgB,EAAMnM,SAAU,EAChBmM,EAAM4qgB,kBAAmB,CAAK,IAE/Br/I,QAAQ6+I,GAAcj8I,WAAW,CAACnuX,EAAK0tW,KAAmB,IAAjB,QAAEv+T,GAASu+T,EACnD1tW,EAAMm8R,SAAU,EAChBn8R,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QAC5BvrB,EAAM4qgB,kBAAmB,CAAI,IAE9Br/I,QAAQ6+I,GAAc7yb,UAAU,CAACv3E,EAAK4pW,KAAmB,IAAjB,QAAEz6T,GAASy6T,EAClD5pW,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,KACnB1qgB,EAAM4qgB,kBAAmB,CAAK,IAE/Br/I,QAAQg/I,GAAyBrgW,SAAUlqK,IAC1CA,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAQ,KACdyM,EAAM0qgB,WAAa,KACnB1qgB,EAAMnM,SAAU,EAChBmM,EAAM2qgB,kBAAmB,CAAK,IAE/Bp/I,QAAQg/I,GAAyBp8I,WAAW,CAACnuX,EAAK4vW,KAAmB,IAAjB,QAAEzgU,GAASygU,EAC9D5vW,EAAMm8R,SAAU,EAChBn8R,EAAMnM,SAAU,EAChBmM,EAAM0qgB,WAAoB,OAAPv7d,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QAC5BvrB,EAAM2qgB,kBAAmB,CAAI,IAE9Bp/I,QAAQg/I,GAAyBhzb,UAAU,CAACv3E,EAAK0wW,KAAmB,IAAjB,QAAEvhU,GAASuhU,EAC7D1wW,EAAMm8R,SAAU,EAChBn8R,EAAMzM,MAAe,OAAP47C,QAAO,IAAPA,OAAO,EAAPA,EAAS5jB,QACvBvrB,EAAM0qgB,WAAa,KACnB1qgB,EAAM2qgB,kBAAmB,CAAK,GAC9B,KAIK,OAAEE,GAAM,eAAEC,GAAc,cAAEG,IAAkBR,GAAcj/O,QAEvE,GAAei/O,GAAqB,QC+SpC,GAndeiB,KACb,MAAOC,EAAYC,IAAiB77V,EAAAA,EAAAA,UAAS,SACtCh4F,EAAU8zb,IAAe97V,EAAAA,EAAAA,UAAS,CACvC5sL,KAAM,GACNyd,MAAO,GACPC,SAAU,MAELirgB,EAAYC,IAAiBh8V,EAAAA,EAAAA,UAAS,CAC3C5sL,KAAM,GACNyd,MAAO,GACPC,SAAU,MAGL+hf,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C+yU,EAAcC,IAAmBhzU,EAAAA,EAAAA,UAAS,KAC1CizU,EAAcC,IAAmBlzU,EAAAA,EAAAA,WAAS,IAC1Ci8V,EAAgBC,IAAqBl8V,EAAAA,EAAAA,UAAS,OAE9CxmC,EAAUi2O,IAAezvM,EAAAA,EAAAA,WAAS,IAClCm8V,EAAYC,IAAiBp8V,EAAAA,EAAAA,UAAS,CAC3Cq8V,OAAO,EACPn5b,SAAS,EACTo5b,YAAY,IAIRC,EAAwBjrgB,IAC5B,MAAM,KAAEle,EAAI,QAAE+1B,GAAY7X,EAAMQ,OAChCsqgB,GAAeI,IAAc,IACxBA,EACH,CAACpphB,GAAO+1B,KACP,GAGLu2J,EAAAA,EAAAA,YAAU,KACR,MAAM2xM,EAAeA,KACnB5B,EAAY7kW,OAAOwmW,YAAc,IAAI,EAMvC,OAJAC,IAGAzmW,OAAOtY,iBAAiB,SAAU++W,GAC3B,KACLzmW,OAAOy+D,oBAAoB,SAAUgoS,EAAa,CACnD,GACA,IAGH,MAiBMrrO,EAAc16J,GAAqB,KAAVA,EAqBzBmxhB,EAAqBhyhB,IACzB,MAAM,KAAE2I,EAAI,MAAE9H,GAAUb,EAAEqnB,OAC1BgqgB,EAAY,IACP9zb,EACH,CAAC50F,GAAO9H,GACR,GAiBE,QAAE8gT,EAAO,SAAE4jF,EAAQ,UAAEC,EAAS,MAAEzsX,EAAK,QAAEM,EAAO,WAAE62gB,GACpD5iN,IAAa9nT,GAAUA,EAAMi3D,OACzBm2G,EAAWm8I,KACXjM,EAAWR,MAEjBrtI,EAAAA,EAAAA,YAAU,KACJl8K,IACFsvf,EAAgBtvf,GAChB0vf,GAAgB,IAEdljI,GAAYC,GACd1iE,EAAS,OAGPzpT,GAAW62gB,IACb7nB,EAAgB6nB,GAChB3nB,EAAgB,oBAChBE,GAAgB,GAChBgpB,EAAkB,cAYpB,GACC,CAAC3uN,EAAUyiE,EAAUC,EAAWzsX,EAAOM,EAAS62gB,IAGnD,MASM+B,EAAapxhB,IACjB,IAAIstW,GAAQ,EACZ,MAAM+jL,EAAarxhB,EAAMD,OAuBzB,OAtBK26J,EAAW22X,GAKLz5G,GAAiB53a,EAAMD,QAChC2whB,EAAc,IACTD,EACH3ohB,KAAM,sCAEC6va,GAAuB33a,EAAMD,QACtC2whB,EAAc,IACTD,EACH3ohB,KAAM,kDAGR4ohB,EAAc,IACTD,EACH3ohB,KAAM,KAERwlW,GAAQ,GAnBRojL,EAAc,IACTD,EACH3ohB,KAAM,qBAmBHwlW,CAAK,EAIRgkL,EAActxhB,IAClB,IAAIstW,GAAQ,EACZ,MAAM+jL,EAAarxhB,EAAMD,OAkBzB,OAjBK26J,EAAW22X,GAKJ55G,GAAa45G,IAMvBX,EAAc,IACTD,EACHlrgB,MAAO,KAET+nV,GAAQ,GATRojL,EAAc,IACTD,EACHlrgB,MAAO,0BAPTmrgB,EAAc,IACTD,EACHlrgB,MAAO,sBAcJ+nV,CAAK,EAIRikL,EAAiBvxhB,IACrB,IAAIstW,GAAQ,EACZ,MAAM+jL,EAAarxhB,EAAMD,OAoBzB,OAnBK26J,EAAW22X,IAadX,EAAc,IACTD,EACHjrgB,SAAU,KAEZ8nV,GAAQ,GAhBRojL,EAAc,IACTD,EACHjrgB,SAAU,yBAgBP8nV,CAAK,EAGd,OACElqV,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CACFx+T,UAAW,+DACT+9I,EAAW,sCAAwC,MACjDtsJ,UAEJwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,mCAAkCvO,SAAA,EAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wDAAuDvO,SAAC,yBAItEwhB,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAiB29f,SAnGnB3ugB,IACpBA,EAAE88K,iBA/DAm1W,EAAU10b,EAAS50F,OACnBwphB,EAAW50b,EAASn3E,QACpBgsgB,EAAc70b,EAASl3E,YA+DvBk3E,EAASn3E,MAAQm3E,EAASn3E,MAAM5X,cAChC+uF,EAASgub,YAAcmG,EAAWG,WAClCj/V,EAAS04V,GAAa/tb,IACxB,EA6F8D96F,SAAA,EACtDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,OACRl+f,UAAU,uCAAsCvO,SACjD,UAGDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,OACLoG,KAAK,OACLqI,UAAW,gJACTsghB,EAAW3ohB,KAAO,gBAAkB,IAEtCw4B,GAAG,OACHtgC,MAAO08F,EAAS50F,KAChBk4J,SAAUmxX,EACVhqgB,OAAShoB,GAAMiyhB,EAAUjyhB,EAAEqnB,OAAOxmB,SAEnCywhB,EAAW3ohB,OACV2b,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SAAE6uhB,EAAW3ohB,cAKvDsb,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,QACRl+f,UAAU,uCAAsCvO,SACjD,WAGDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,QACLoG,KAAK,QACL,cAAY,QACZqI,UAAW,gJACTsghB,EAAWlrgB,MAAQ,gBAAkB,IAEvC+a,GAAG,QACHtgC,MAAO08F,EAASn3E,MAChBy6I,SAAUmxX,EACVhqgB,OAAShoB,GAAMmyhB,EAAWnyhB,EAAEqnB,OAAOxmB,SAEpCywhB,EAAWlrgB,QACV9B,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SAAE6uhB,EAAWlrgB,eAKvDnC,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,WACRl+f,UAAU,uCAAsCvO,SACjD,cAGDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qBAAoBvO,SAAA,EACjC6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,WACL,cAAY,WACZqI,UAAW,0JACTsghB,EAAWjrgB,SAAW,gBAAkB,IAE1C8a,GAAG,WACHtgC,MAAO08F,EAASl3E,SAChBgsgB,QAASL,EACThqgB,OAAShoB,GAAMoyhB,EAAcpyhB,EAAEqnB,OAAOxmB,UAExCyjB,EAAAA,GAAAA,KAAA,QACE,cAAY,qBACZtT,UAAU,6EACV2vJ,QAAU3gK,GAAMk4a,GAAyBl4a,GAAGyC,UAE5C6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKyoV,GAAQ3+K,IAAI,6BAG1Bp1O,EAAAA,GAAAA,KAACgugB,GAAS,CAACzxhB,MAAO08F,EAASl3E,WAC1BirgB,EAAWjrgB,WACV/B,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SACjC6uhB,EAAWjrgB,eAIlBpC,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uBAAsBvO,SAAA,EACnCwhB,EAAAA,GAAAA,MAAA,SAAOjT,UAAU,8BAA6BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,QACLqI,UAAU,4EACV0tB,QAASgzf,EAAWE,MACpB/wX,SAAUixX,KAEZ7tgB,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,yBAAwBvO,SAAA,CAAC,+BACV,KAC7BwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CACN5uK,GAAG,mBACH/pJ,UAAU,4BAA2BvO,SAAA,CACtC,qBACoB,OACX,MACN,KACJ6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,kBACH/pJ,UAAU,4BAA2BvO,SACtC,mBAES,WAIdwhB,EAAAA,GAAAA,MAAA,SAAOjT,UAAU,8BAA6BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,UACLqI,UAAU,4EACV0tB,QAASgzf,EAAWj5b,QACpBooE,SAAUixX,KAEZxtgB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,yBAAwBvO,SAAC,0EAK3CwhB,EAAAA,GAAAA,MAAA,SAAOjT,UAAU,8BAA6BvO,SAAA,EAC5C6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,aACLqI,UAAU,4EACV0tB,QAASgzf,EAAWG,WACpBhxX,SAAUixX,KAEZxtgB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,yBAAwBvO,SAAC,qEAM7C6hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,oFACVwF,WAhSR+mF,EAAS50F,OACR8va,GAAiBl7U,EAAS50F,QAC1B6va,GAAuBj7U,EAAS50F,OACjC2va,GAAa/6U,EAASn3E,QACtB2yZ,GAAiBx7U,EAASl3E,WAC1BqrgB,EAAWE,OACXF,EAAWj5b,UA0RyBkpN,EAAQl/S,SAEnCk/S,GACC19R,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,6CACVkoT,MAAM,6BACNp2S,KAAK,OACLY,QAAQ,YAAWjhB,SAAA,EAEnB6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAU,aACV22f,GAAG,KACHC,GAAG,KACHr4e,EAAE,KACFkhT,OAAO,eACPziU,YAAY,OAEdsW,EAAAA,GAAAA,KAAA,QACEtT,UAAU,aACV8R,KAAK,eACLhQ,EAAE,uHAEA,mBAIR,0BAKNwR,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4BAA2BvO,UACxC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,sBAAqBvO,SAAC,UAGxC6hB,EAAAA,GAAAA,KAACiugB,GAAW,CACVhwhB,KAAK,SACL8T,KAAK,uBACLrF,UAAU,UAGZiT,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,2BAA0BvO,SAAA,CAAC,2BACb,KACzB6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,UACH/pJ,UAAU,0CAAyCvO,SACpD,gBAKH6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,4DAA2DvO,UACtE6hB,EAAAA,GAAAA,KAAA,UAAQq8I,QAnXO6xX,KACvBpB,GAAeqB,GACM,SAAnBA,EAA4B,UAAY,SAE1Ctyf,OAAOg/H,SAAS,CACd/jI,IAAK,EACLs3f,SAAU,UACV,EA4WwCjwhB,SAChB,YAAf0uhB,EACC,uBAEA7sgB,EAAAA,GAAAA,KAAA,KACEysC,KAAM,6CAAuDtuD,SAC9D,8BAQV2lgB,IACC9jf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,KAAMihB,QAAQood,GACdn9E,QAvZao+E,KACfb,IACF1lM,EAAS,qBACTuuN,EAAY,CACV1ohB,KAAM,GACNyd,MAAO,GACPC,SAAU,MAGdusK,EAAS69V,MAETpoB,EAAgB,IAChBI,GAAgB,GAChBF,EAAgB,IAChBkpB,EAAkB,KAAK,EA0YjB1gf,QAASq3d,EACT9zE,QAASg0E,EACTnnH,UAAWqnH,EACXntE,WAAYm2F,EACZv2F,UAAWutE,MAGd,kBC/dP,SAJiCt/f,EAAAA,gBCL1B,SAASyphB,GAAoBrxgB,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,CACA,MAGMsxgB,GAAa,CAAC,QAAQ,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,IAUrE,IAToBpxgB,EAAAA,GAAAA,GAAuB,UAAW,CAAC,OAAQ,YAAa,OAAQ,kBAJnE,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAMpCza,KAAIosB,GAAW,cAAcA,SALtB,CAAC,iBAAkB,SAAU,cAAe,OAOjDpsB,KAAI6Q,GAAa,gBAAgBA,SANjC,CAAC,SAAU,eAAgB,QAQhC7Q,KAAI8rhB,GAAQ,WAAWA,SAE7BD,GAAW7rhB,KAAIrB,GAAQ,WAAWA,SAAYkthB,GAAW7rhB,KAAIrB,GAAQ,WAAWA,SAAYkthB,GAAW7rhB,KAAIrB,GAAQ,WAAWA,SAAYkthB,GAAW7rhB,KAAIrB,GAAQ,WAAWA,SAAYkthB,GAAW7rhB,KAAIrB,GAAQ,WAAWA,QCHvNyQ,GAAY,CAAC,YAAa,UAAW,gBAAiB,YAAa,YAAa,YAAa,OAAQ,aAAc,UAAW,OAAQ,gBAc5I,SAAS8iQ,GAAU5sP,GACjB,MAAM7nB,EAAQ0nB,WAAWG,GACzB,MAAO,GAAG7nB,IAAQhE,OAAO6rB,GAAKvrB,QAAQN,OAAOgE,GAAQ,KAAO,MAC9D,CAmGA,SAASsuhB,GAA8B9jgB,GAGpC,IAHqC,YACtCrP,EAAW,OACXqM,GACDgD,EACK+jgB,EAAa,GACjBpyhB,OAAO4pB,KAAKyB,GAAQhtB,SAAQL,IACP,KAAfo0hB,GAGgB,IAAhB/mgB,EAAOrtB,KACTo0hB,EAAap0hB,EACf,IAEF,MAAMq0hB,EAA8BryhB,OAAO4pB,KAAK5K,GAAa0S,MAAK,CAACxe,EAAGmgB,IAC7DrU,EAAY9L,GAAK8L,EAAYqU,KAEtC,OAAOg/f,EAA4BtxhB,MAAM,EAAGsxhB,EAA4B7xhB,QAAQ4xhB,GAClF,CA2HA,MAAME,IAAWvxgB,EAAAA,GAAAA,IAAO,MAAO,CAC7B/Y,KAAM,UACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,GACE,UACJtE,EAAS,UACT0Z,EAAS,KACTsZ,EAAI,QACJiC,EAAO,KACP0/f,EAAI,aACJK,EAAY,YACZvzgB,GACEiC,EACJ,IAAIuxgB,EAAgB,GAGhBj1hB,IACFi1hB,EA9CC,SAA8BhggB,EAASxT,GAA0B,IAAblX,EAAMgC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEnE,IAAK0oB,GAAWA,GAAW,EACzB,MAAO,GAGT,GAAuB,kBAAZA,IAAyB5f,OAAOE,MAAMF,OAAO4f,KAAgC,kBAAZA,EAC1E,MAAO,CAAC1qB,EAAO,cAAcjI,OAAO2yB,OAGtC,MAAMgggB,EAAgB,GAOtB,OANAxzgB,EAAY3gB,SAAQmyB,IAClB,MAAMtwB,EAAQsyB,EAAQhC,GAClB5d,OAAO1S,GAAS,GAClBsyhB,EAAc90hB,KAAKoK,EAAO,WAAW0oB,KAAc3wB,OAAOK,MAC5D,IAEKsyhB,CACT,CA4BsBC,CAAqBjggB,EAASxT,EAAalX,IAE7D,MAAM4qhB,EAAoB,GAO1B,OANA1zgB,EAAY3gB,SAAQmyB,IAClB,MAAMtwB,EAAQ+gB,EAAWuP,GACrBtwB,GACFwyhB,EAAkBh1hB,KAAKoK,EAAO,QAAQ0oB,KAAc3wB,OAAOK,MAC7D,IAEK,CAAC4H,EAAOpG,KAAMnE,GAAauK,EAAOvK,UAAWgzB,GAAQzoB,EAAOyoB,KAAMgigB,GAAgBzqhB,EAAOyqhB,gBAAiBC,EAA6B,QAAdv7gB,GAAuBnP,EAAO,gBAAgBjI,OAAOoX,MAAwB,SAATi7gB,GAAmBpqhB,EAAO,WAAWjI,OAAOqyhB,SAAaQ,EAAkB,GA7BlQ3xgB,EA+Bd+lT,IAAA,IAAC,WACF7lT,GACD6lT,EAAA,OAAKttT,EAAAA,GAAAA,GAAS,CACbshB,UAAW,cACV7Z,EAAW1jB,WAAa,CACzB2kB,QAAS,OACTyX,SAAU,OACV1X,MAAO,QACNhB,EAAWsP,MAAQ,CACpBuE,OAAQ,GACP7T,EAAWsxgB,cAAgB,CAC5Bv7f,SAAU,GACW,SAApB/V,EAAWixgB,MAAmB,CAC/Bv4f,SAAU1Y,EAAWixgB,MACrB,IArNK,SAA0B39gB,GAG9B,IAH+B,MAChCE,EAAK,WACLwM,GACD1M,EACC,MAAMo+gB,GAAkB3hgB,EAAAA,GAAAA,IAAwB,CAC9C3F,OAAQpK,EAAWhK,UACnB+H,YAAavK,EAAMuK,YAAYqM,SAEjC,OAAO8E,EAAAA,GAAAA,IAAkB,CACvB1b,SACCk+gB,GAAiBvigB,IAClB,MAAM5sB,EAAS,CACbk2B,cAAetJ,GAOjB,OALoC,IAAhCA,EAAU5vB,QAAQ,YACpBgD,EAAO,QAAQovhB,GAAYrigB,QAAU,CACnCqG,SAAU,SAGPpzB,CAAM,GAEjB,IAyBO,SAAuBuiU,GAG3B,IAH4B,MAC7BtxT,EAAK,WACLwM,GACD8kT,EACC,MAAM,UACJxoU,EAAS,WACTs1hB,GACE5xgB,EACJ,IAAInZ,EAAS,CAAC,EACd,GAAIvK,GAA4B,IAAfs1hB,EAAkB,CACjC,MAAMC,GAAmB9hgB,EAAAA,GAAAA,IAAwB,CAC/C3F,OAAQwngB,EACR7zgB,YAAavK,EAAMuK,YAAYqM,SAEjC,IAAI0ngB,EAC4B,kBAArBD,IACTC,EAA0BZ,GAA+B,CACvDnzgB,YAAavK,EAAMuK,YAAYqM,OAC/BA,OAAQyngB,KAGZhrhB,GAASqoB,EAAAA,GAAAA,IAAkB,CACzB1b,SACCq+gB,GAAkB,CAAC1igB,EAAWI,KAC/B,IAAIwigB,EACJ,MAAM5+f,EAAe3f,EAAM+d,QAAQpC,GACnC,MAAqB,QAAjBgE,EACK,CACLsE,UAAW,IAAI4/O,GAAUlkP,KACzB,CAAC,QAAQw+f,GAAYrigB,QAAS,CAC5BmH,WAAY4gP,GAAUlkP,KAI6B,OAApD4+f,EAAwBD,IAAoCC,EAAsB9ne,SAAS16B,GACvF,CAAC,EAEH,CACLkI,UAAW,EACX,CAAC,QAAQk6f,GAAYrigB,QAAS,CAC5BmH,WAAY,GAEf,GAEL,CACA,OAAO5vB,CACT,IACO,SAA0Bw+T,GAG9B,IAH+B,MAChC7xT,EAAK,WACLwM,GACDqlT,EACC,MAAM,UACJ/oU,EAAS,cACT01hB,GACEhygB,EACJ,IAAInZ,EAAS,CAAC,EACd,GAAIvK,GAA+B,IAAlB01hB,EAAqB,CACpC,MAAMC,GAAsBligB,EAAAA,GAAAA,IAAwB,CAClD3F,OAAQ4ngB,EACRj0gB,YAAavK,EAAMuK,YAAYqM,SAEjC,IAAI0ngB,EAC+B,kBAAxBG,IACTH,EAA0BZ,GAA+B,CACvDnzgB,YAAavK,EAAMuK,YAAYqM,OAC/BA,OAAQ6ngB,KAGZprhB,GAASqoB,EAAAA,GAAAA,IAAkB,CACzB1b,SACCy+gB,GAAqB,CAAC9igB,EAAWI,KAClC,IAAI2igB,EACJ,MAAM/+f,EAAe3f,EAAM+d,QAAQpC,GACnC,MAAqB,QAAjBgE,EACK,CACLnS,MAAO,eAAeq2P,GAAUlkP,MAChCyE,WAAY,IAAIy/O,GAAUlkP,KAC1B,CAAC,QAAQw+f,GAAYrigB,QAAS,CAC5BsH,YAAaygP,GAAUlkP,KAI6B,OAArD++f,EAAyBJ,IAAoCI,EAAuBjoe,SAAS16B,GACzF,CAAC,EAEH,CACLvO,MAAO,OACP4W,WAAY,EACZ,CAAC,QAAQ+5f,GAAYrigB,QAAS,CAC5BsH,YAAa,GAEhB,GAEL,CACA,OAAO/vB,CACT,IAnNO,SAAqBqR,GAGzB,IACGpU,GAJuB,MAC3B0P,EAAK,WACLwM,GACD9H,EAEC,OAAO1E,EAAMuK,YAAY4K,KAAK3W,QAAO,CAACyW,EAAc8G,KAElD,IAAI1oB,EAAS,CAAC,EAId,GAHImZ,EAAWuP,KACbzrB,EAAOkc,EAAWuP,KAEfzrB,EACH,OAAO2kB,EAET,IAAa,IAAT3kB,EAEF+C,EAAS,CACP2xB,UAAW,EACXvuB,SAAU,EACV0rB,SAAU,aAEP,GAAa,SAAT7xB,EACT+C,EAAS,CACP2xB,UAAW,OACXvuB,SAAU,EACVE,WAAY,EACZwrB,SAAU,OACV3U,MAAO,YAEJ,CACL,MAAMmxgB,GAA0BpigB,EAAAA,GAAAA,IAAwB,CACtD3F,OAAQpK,EAAWjW,QACnBgU,YAAavK,EAAMuK,YAAYqM,SAE3BgogB,EAAiD,kBAA5BD,EAAuCA,EAAwB5igB,GAAc4igB,EACxG,QAAoBx1hB,IAAhBy1hB,GAA6C,OAAhBA,EAC/B,OAAO3pgB,EAGT,MAAMzH,EAAWtiB,KAAKub,MAAMnW,EAAOsuhB,EAAc,KAAQ,IAA3C,IACd,IAAIpwgB,EAAO,CAAC,EACZ,GAAIhC,EAAW1jB,WAAa0jB,EAAWsP,MAAqC,IAA7BtP,EAAWgygB,cAAqB,CAC7E,MAAM7+f,EAAe3f,EAAM+d,QAAQvR,EAAWgygB,eAC9C,GAAqB,QAAjB7+f,EAAwB,CAC1B,MAAMg6Z,EAAY,QAAQnsa,OAAWq2P,GAAUlkP,MAC/CnR,EAAO,CACLwW,UAAW20Z,EACXx3Z,SAAUw3Z,EAEd,CACF,CAIAtmb,GAAS0R,EAAAA,GAAAA,GAAS,CAChBigB,UAAWxX,EACX/W,SAAU,EACV0rB,SAAU3U,GACTgB,EACL,CAQA,OAL6C,IAAzCxO,EAAMuK,YAAYqM,OAAOmF,GAC3BxwB,OAAOD,OAAO2pB,EAAc5hB,GAE5B4hB,EAAajV,EAAMuK,YAAYG,GAAGqR,IAAe1oB,EAE5C4hB,CAAY,GAClB,CAAC,EACN,IA2OA,MAAMrG,GAAoBpC,IACxB,MAAM,QACJiC,EAAO,UACP3lB,EAAS,UACT0Z,EAAS,KACTsZ,EAAI,QACJiC,EAAO,KACP0/f,EAAI,aACJK,EAAY,YACZvzgB,GACEiC,EACJ,IAAIqygB,EAAiB,GAGjB/1hB,IACF+1hB,EAnCG,SAA+B9ggB,EAASxT,GAE7C,IAAKwT,GAAWA,GAAW,EACzB,MAAO,GAGT,GAAuB,kBAAZA,IAAyB5f,OAAOE,MAAMF,OAAO4f,KAAgC,kBAAZA,EAC1E,MAAO,CAAC,cAAc3yB,OAAO2yB,MAG/B,MAAMtP,EAAU,GAQhB,OAPAlE,EAAY3gB,SAAQmyB,IAClB,MAAMtwB,EAAQsyB,EAAQhC,GACtB,GAAI5d,OAAO1S,GAAS,EAAG,CACrB,MAAMmQ,EAAY,WAAWmgB,KAAc3wB,OAAOK,KAClDgjB,EAAQxlB,KAAK2S,EACf,KAEK6S,CACT,CAgBqBqwgB,CAAsB/ggB,EAASxT,IAElD,MAAMw0gB,EAAqB,GAC3Bx0gB,EAAY3gB,SAAQmyB,IAClB,MAAMtwB,EAAQ+gB,EAAWuP,GACrBtwB,GACFszhB,EAAmB91hB,KAAK,QAAQ8yB,KAAc3wB,OAAOK,KACvD,IAEF,MAAMijB,EAAQ,CACZzhB,KAAM,CAAC,OAAQnE,GAAa,YAAagzB,GAAQ,OAAQgigB,GAAgB,kBAAmBe,EAA8B,QAAdr8gB,GAAuB,gBAAgBpX,OAAOoX,KAAuB,SAATi7gB,GAAmB,WAAWryhB,OAAOqyhB,QAAYsB,IAE3N,OAAOpwgB,EAAAA,GAAAA,GAAeD,EAAO6ugB,GAAqB9ugB,EAAQ,EAEtDuwgB,GAAoBlrhB,EAAAA,YAAiB,SAAcma,EAAS5Z,GAChE,MAAM4qhB,GAAap/gB,EAAAA,GAAAA,GAAgB,CACjCzS,MAAO6gB,EACP1a,KAAM,aAEF,YACJgX,GACEiwT,KACEptU,GAAQw5B,EAAAA,GAAAA,GAAaq4f,IACrB,UACFrjhB,EACArF,QAAS2ohB,EACTV,cAAeW,EAAiB,UAChCjxgB,EAAY,MAAK,UACjBplB,GAAY,EAAK,UACjB0Z,EAAY,MAAK,KACjBsZ,GAAO,EACPsigB,WAAYgB,EAAc,QAC1BrhgB,EAAU,EAAC,KACX0/f,EAAO,OAAM,aACbK,GAAe,GACb1whB,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCq9gB,EAAagB,GAAkBrhgB,EAC/ByggB,EAAgBW,GAAqBphgB,EACrCshgB,EAAiBvrhB,EAAAA,WAAiBwrhB,IAGlC/ohB,EAAUzN,EAAYo2hB,GAAe,GAAKG,EAC1C/8f,EAAoB,CAAC,EACrBi9f,GAAgBx6gB,EAAAA,GAAAA,GAAS,CAAC,EAAG1B,GACnCkH,EAAY4K,KAAKvrB,SAAQmyB,IACE,MAArB1Y,EAAM0Y,KACRuG,EAAkBvG,GAAc1Y,EAAM0Y,UAC/BwjgB,EAAcxjgB,GACvB,IAEF,MAAMvP,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrCmJ,UACAzN,YACA0Z,YACAsZ,OACAsigB,aACAI,gBACAf,OACAK,eACA//f,WACCuE,EAAmB,CACpB/X,YAAaA,EAAY4K,OAErB1G,EAAUG,GAAkBpC,GAClC,OAAoB0C,EAAAA,GAAAA,KAAKowgB,GAAYrrhB,SAAU,CAC7CxI,MAAO8K,EACPlJ,UAAuB6hB,EAAAA,GAAAA,KAAK2ugB,IAAU94gB,EAAAA,GAAAA,GAAS,CAC7CyH,WAAYA,EACZ5Q,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,GAC9BkT,GAAIZ,EACJ7Z,IAAKA,GACJkrhB,KAEP,IA+IA,YCljBMC,GAA0B1rhB,EAAAA,gBAczB,MAAM2rhB,GAASA,KACpB,MAAMh0hB,EAAQqI,EAAAA,WAAiB0rhB,IAC/B,OAAgB,MAAT/zhB,GAAgBA,CAAa,kBCXtC,SAJiCqI,EAAAA,cAAoB,CAAC,GCL/C,SAAS4rhB,GAAoBxzgB,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,EACoBE,EAAAA,GAAAA,GAAuB,UAAW,CAAC,OAAQ,UAAW,QAAS,cAAnF,MCDMrL,GAAY,CAAC,WAAY,YAAa,YAAa,QAAS,iBAAkB,aAuB9E4+gB,IAAWrzgB,EAAAA,GAAAA,IAAO,KAAM,CAC5B/Y,KAAM,UACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,MAAOuf,EAAWozgB,gBAAkBvshB,EAAOitB,QAAS9T,EAAWqzgB,OAASxshB,EAAOwshB,MAAOrzgB,EAAWszgB,WAAazshB,EAAOyshB,UAAU,GAPjIxzgB,EASd5H,IAAA,IAAC,WACF8H,GACD9H,EAAA,OAAKK,EAAAA,GAAAA,GAAS,CACbyiQ,UAAW,OACXnnP,OAAQ,EACRC,QAAS,EACTzzB,SAAU,aACR2f,EAAWozgB,gBAAkB,CAC/B38f,WAAY,EACZE,cAAe,GACd3W,EAAWszgB,WAAa,CACzB78f,WAAY,GACZ,IA+EF,GA9E0BnvB,EAAAA,YAAiB,SAAcma,EAAS5Z,GAChE,MAAMjH,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,aAEF,SACFlG,EAAQ,UACRuO,EAAS,UACTsS,EAAY,KAAI,MAChB2xgB,GAAQ,EAAK,eACbD,GAAiB,EAAK,UACtBE,GACE1yhB,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCkiD,EAAUnvD,EAAAA,SAAc,KAAM,CAClC+rhB,WACE,CAACA,IACCrzgB,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrC8gB,YACA2xgB,QACAD,mBAEInxgB,EAxDkBjC,KACxB,MAAM,QACJiC,EAAO,eACPmxgB,EAAc,MACdC,EAAK,UACLC,GACEtzgB,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,QAAS2yhB,GAAkB,UAAWC,GAAS,QAASC,GAAa,cAE9E,OAAOnxgB,EAAAA,GAAAA,GAAeD,EAAOgxgB,GAAqBjxgB,EAAQ,EA8C1CG,CAAkBpC,GAClC,OAAoB0C,EAAAA,GAAAA,KAAK6wgB,GAAY9rhB,SAAU,CAC7CxI,MAAOw3D,EACP51D,UAAuBwhB,EAAAA,GAAAA,MAAM8wgB,IAAU56gB,EAAAA,GAAAA,GAAS,CAC9C+J,GAAIZ,EACJtS,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,GAC9BvH,IAAKA,EACLmY,WAAYA,GACXnJ,EAAO,CACRhW,SAAU,CAACyyhB,EAAWzyhB,OAG5B,IClFA,sBCGA,MAAM0T,GAAY,CAAC,UAAW,YAAa,gBAAiB,WAAY,YAAa,yBAA0B,kBAAmB,YAAa,WAU/I,SAASi/gB,GAASxze,EAAM1wB,EAAMmkgB,GAC5B,OAAIzze,IAAS1wB,EACJ0wB,EAAKzjD,WAEV+yB,GAAQA,EAAK5mB,mBACR4mB,EAAK5mB,mBAEP+qhB,EAAkB,KAAOzze,EAAKzjD,UACvC,CACA,SAASm3hB,GAAa1ze,EAAM1wB,EAAMmkgB,GAChC,OAAIzze,IAAS1wB,EACJmkgB,EAAkBzze,EAAKzjD,WAAayjD,EAAKmxH,UAE9C7hJ,GAAQA,EAAKinZ,uBACRjnZ,EAAKinZ,uBAEPk9G,EAAkB,KAAOzze,EAAKmxH,SACvC,CACA,SAASwiX,GAAoBC,EAAWC,GACtC,QAAqBl3hB,IAAjBk3hB,EACF,OAAO,EAET,IAAIp/gB,EAAOm/gB,EAAUn8O,UAMrB,YALa96S,IAAT8X,IAEFA,EAAOm/gB,EAAUtwc,aAEnB7uE,EAAOA,EAAKzV,OAAO4N,cACC,IAAhB6H,EAAKvY,SAGL23hB,EAAaC,UACRr/gB,EAAK,KAAOo/gB,EAAalrgB,KAAK,GAEa,IAA7ClU,EAAKlV,QAAQs0hB,EAAalrgB,KAAKjmB,KAAK,KAC7C,CACA,SAASqxhB,GAAU/ze,EAAMg0e,EAAcP,EAAiBQ,EAAwBC,EAAmBL,GACjG,IAAIM,GAAc,EACdP,EAAYM,EAAkBl0e,EAAMg0e,IAAcA,GAAeP,GACrE,KAAOG,GAAW,CAEhB,GAAIA,IAAc5ze,EAAKzjD,WAAY,CACjC,GAAI43hB,EACF,OAAO,EAETA,GAAc,CAChB,CAGA,MAAMC,GAAoBH,IAAiCL,EAAUh/gB,UAAwD,SAA5Cg/gB,EAAUhuhB,aAAa,kBACxG,GAAKguhB,EAAU3vZ,aAAa,aAAgB0vZ,GAAoBC,EAAWC,KAAiBO,EAK1F,OADAR,EAAUn+gB,SACH,EAHPm+gB,EAAYM,EAAkBl0e,EAAM4ze,EAAWH,EAKnD,CACA,OAAO,CACT,CAQA,MA0MA,GA1M8BnshB,EAAAA,YAAiB,SAAkB1G,EAAOiH,GACtE,MAAM,QAGFunS,EAAO,UACP/mI,GAAY,EAAK,cACjBgsX,GAAgB,EAAK,SACrBxzhB,EAAQ,UACRuO,EAAS,uBACT6khB,GAAyB,EAAK,gBAC9BR,GAAkB,EAAK,UACvBpvX,EAAS,QACT31I,EAAU,gBACR9tB,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCkkR,EAAUnxR,EAAAA,OAAa,MACvBgthB,EAAkBhthB,EAAAA,OAAa,CACnCqhB,KAAM,GACNmrgB,WAAW,EACXS,oBAAoB,EACpB9jS,SAAU,QAEZ7xN,EAAAA,GAAAA,IAAkB,KACZypI,GACFowH,EAAQlwR,QAAQkN,OAClB,GACC,CAAC4yJ,IACJ/gK,EAAAA,oBAA0B8nS,GAAS,KAAM,CACvColP,wBAAyBA,CAACC,EAAgBv8gB,KAEpC,IAFsC,UAC1ClC,GACDkC,EAGC,MAAMw8gB,GAAmBj8P,EAAQlwR,QAAQqjB,MAAM5K,MAC/C,GAAIyzgB,EAAiBvsP,aAAezP,EAAQlwR,QAAQ2/R,cAAgBwsP,EAAiB,CACnF,MAAM1sG,EAAgB,GAAGjB,IAAiB/ga,EAAAA,GAAAA,GAAcyugB,QACxDh8P,EAAQlwR,QAAQqjB,MAAoB,QAAd5V,EAAsB,cAAgB,gBAAkBgya,EAC9EvvJ,EAAQlwR,QAAQqjB,MAAM5K,MAAQ,eAAegna,IAC/C,CACA,OAAOvvJ,EAAQlwR,OAAO,KAEtB,IACJ,MAkDM43R,GAAYthQ,EAAAA,GAAAA,GAAW45P,EAAS5wR,GAOtC,IAAI8shB,GAAmB,EAIvBrthB,EAAAA,SAAelK,QAAQyD,GAAU,CAACsiF,EAAO1jF,KACpB6H,EAAAA,eAAqB67E,IAenCA,EAAMviF,MAAMgU,WACC,iBAAZ8Z,GAA8By0D,EAAMviF,MAAMyU,WAEd,IAArBs/gB,KADTA,EAAkBl1hB,GAKlBk1hB,IAAoBl1hB,IAAU0jF,EAAMviF,MAAMgU,UAAYuuE,EAAMviF,MAAMg0hB,sBAAwBzxc,EAAMxiF,KAAKi0hB,wBACvGD,GAAmB,EACfA,GAAmB9zhB,EAAS3E,SAE9By4hB,GAAmB,KAzBjBA,IAAoBl1hB,IACtBk1hB,GAAmB,EACfA,GAAmB9zhB,EAAS3E,SAE9By4hB,GAAmB,GAuBzB,IAEF,MAAMv0d,EAAQ94D,EAAAA,SAAenC,IAAItE,GAAU,CAACsiF,EAAO1jF,KACjD,GAAIA,IAAUk1hB,EAAiB,CAC7B,MAAME,EAAgB,CAAC,EAOvB,OANIR,IACFQ,EAAcxsX,WAAY,QAEC1rK,IAAzBwmF,EAAMviF,MAAMqnK,UAAsC,iBAAZv5I,IACxCmmgB,EAAc5sX,SAAW,GAEP3gK,EAAAA,aAAmB67E,EAAO0xc,EAChD,CACA,OAAO1xc,CAAK,IAEd,OAAoBzgE,EAAAA,GAAAA,KAAKoygB,IAAMv8gB,EAAAA,GAAAA,GAAS,CACtCkK,KAAM,OACN5a,IAAKs4R,EACL/wR,UAAWA,EACXi1J,UA7GoBp/I,IACpB,MAAM+6B,EAAOy4O,EAAQlwR,QACfxL,EAAMkoB,EAAMloB,IAOZi3hB,GAAehugB,EAAAA,GAAAA,GAAcg6B,GAAM4vH,cACzC,GAAY,cAAR7yK,EAEFkoB,EAAMi2J,iBACN64W,GAAU/ze,EAAMg0e,EAAcP,EAAiBQ,EAAwBT,SAClE,GAAY,YAARz2hB,EACTkoB,EAAMi2J,iBACN64W,GAAU/ze,EAAMg0e,EAAcP,EAAiBQ,EAAwBP,SAClE,GAAY,SAAR32hB,EACTkoB,EAAMi2J,iBACN64W,GAAU/ze,EAAM,KAAMyze,EAAiBQ,EAAwBT,SAC1D,GAAY,QAARz2hB,EACTkoB,EAAMi2J,iBACN64W,GAAU/ze,EAAM,KAAMyze,EAAiBQ,EAAwBP,SAC1D,GAAmB,IAAf32hB,EAAIb,OAAc,CAC3B,MAAM64hB,EAAWT,EAAgB/rhB,QAC3By0E,EAAWjgF,EAAI6P,cACfoohB,EAAW73d,YAAYD,MACzB63d,EAASpsgB,KAAKzsB,OAAS,IAErB84hB,EAAWD,EAAStkS,SAAW,KACjCskS,EAASpsgB,KAAO,GAChBosgB,EAASjB,WAAY,EACrBiB,EAASR,oBAAqB,GACrBQ,EAASjB,WAAa92c,IAAa+3c,EAASpsgB,KAAK,KAC1DosgB,EAASjB,WAAY,IAGzBiB,EAAStkS,SAAWukS,EACpBD,EAASpsgB,KAAKlsB,KAAKugF,GACnB,MAAMi4c,EAAqBjB,IAAiBe,EAASjB,WAAaH,GAAoBK,EAAce,GAChGA,EAASR,qBAAuBU,GAAsBlB,GAAU/ze,EAAMg0e,GAAc,EAAOC,EAAwBT,GAAUuB,IAC/H9vgB,EAAMi2J,iBAEN65W,EAASR,oBAAqB,CAElC,CACIlwX,GACFA,EAAUp/I,EACZ,EA8DAgjJ,SAAUI,EAAY,GAAK,GAC1BxxJ,EAAO,CACRhW,SAAUu/D,IAEd,4CCzOA,MAAM7rD,GAAY,CAAC,iBAAkB,SAAU,WAAY,SAAU,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,UAAW,uBAUxK,SAAS2ghB,GAASj2hB,GAChB,MAAO,SAASA,MAAUA,GAAS,IACrC,CACA,MAAM4H,GAAS,CACb4+a,SAAU,CACRr6a,QAAS,EACTwmB,UAAWsjgB,GAAS,IAEtBxvG,QAAS,CACPt6a,QAAS,EACTwmB,UAAW,SAQTujgB,GAAmC,qBAAd72c,WAA6B,0CAA0C33D,KAAK23D,UAAUlwB,YAAc,2BAA2BznC,KAAK23D,UAAUlwB,WAOnKgne,GAAoB9thB,EAAAA,YAAiB,SAAc1G,EAAOiH,GAC9D,MAAM,eACFg9a,EAAc,OACdx5J,GAAS,EAAI,SACbxqR,EAAQ,OACRqa,EACA4vQ,GAAI66J,EAAM,QACVrB,EAAO,UACPD,EAAS,WACTE,EAAU,OACVE,EAAM,SACNv1J,EAAQ,UACRw1J,EAAS,MACT94Z,EAAK,QACL1M,EAAU,OAAM,oBAEhB0ma,EAAsB3C,IACpBrib,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCysO,GAAQnhN,EAAAA,GAAAA,KACRw1f,EAAc/thB,EAAAA,SACdkM,EAAQw6T,KACR21G,EAAUr8a,EAAAA,OAAa,MACvB64R,GAAYthQ,EAAAA,GAAAA,GAAW8kZ,EAAS9ib,EAASgH,IAAKA,GAC9Cg+a,EAA+Bvjb,GAAYwjb,IAC/C,GAAIxjb,EAAU,CACZ,MAAM9B,EAAOmjb,EAAQp7a,aAGI5L,IAArBmpb,EACFxjb,EAAS9B,GAET8B,EAAS9B,EAAMslb,EAEnB,GAEIC,EAAiBF,EAA6BtB,GAC9CjoI,EAAcupI,GAA6B,CAACrlb,EAAMwlb,KACtDd,GAAO1kb,GAEP,MACE+a,SAAU+pa,EAAkB,MAC5B5oa,EACAxB,OAAQqqa,GACNJ,GAAmB,CACrBv5Z,QACA1M,UACAhE,UACC,CACDvE,KAAM,UAER,IAAI4E,EACY,SAAZ2D,GACF3D,EAAW/H,EAAMgK,YAAYvB,sBAAsBzb,EAAK0nS,cACxDmtP,EAAY9shB,QAAUgT,GAEtBA,EAAW+pa,EAEb9kb,EAAKorB,MAAMxK,WAAa,CAAC5N,EAAMgK,YAAYrW,OAAO,UAAW,CAC3DoU,WACAmB,UACElJ,EAAMgK,YAAYrW,OAAO,YAAa,CACxCoU,SAAU45gB,GAAc55gB,EAAsB,KAAXA,EACnCmB,QACAxB,OAAQqqa,KACN7ib,KAAK,KACL4hb,GACFA,EAAQ9jb,EAAMwlb,EAChB,IAEIG,EAAgBN,EAA6BxB,GAC7C+B,EAAgBP,EAA6BnB,GAC7C2B,EAAaR,GAA6Brlb,IAC9C,MACE+a,SAAU+pa,EAAkB,MAC5B5oa,EACAxB,OAAQqqa,GACNJ,GAAmB,CACrBv5Z,QACA1M,UACAhE,UACC,CACDvE,KAAM,SAER,IAAI4E,EACY,SAAZ2D,GACF3D,EAAW/H,EAAMgK,YAAYvB,sBAAsBzb,EAAK0nS,cACxDmtP,EAAY9shB,QAAUgT,GAEtBA,EAAW+pa,EAEb9kb,EAAKorB,MAAMxK,WAAa,CAAC5N,EAAMgK,YAAYrW,OAAO,UAAW,CAC3DoU,WACAmB,UACElJ,EAAMgK,YAAYrW,OAAO,YAAa,CACxCoU,SAAU45gB,GAAc55gB,EAAsB,KAAXA,EACnCmB,MAAOy4gB,GAAcz4gB,EAAQA,GAAoB,KAAXnB,EACtCL,OAAQqqa,KACN7ib,KAAK,KACTlC,EAAKorB,MAAMxgB,QAAU,EACrB5K,EAAKorB,MAAMgG,UAAYsjgB,GAAS,KAC5BzwG,GACFA,EAAOjkb,EACT,IAEI8lb,EAAeT,EAA6B32J,GAUlD,OAAoBxsQ,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACrD8yQ,OAAQA,EACRP,GAAI66J,EACJhC,QAASA,EACTW,QAAShoI,EACT+nI,UAAW8B,EACX5B,WAAYwB,EACZtB,OAAQ4B,EACRn3J,SAAUo3J,EACV5B,UAAW0B,EACXvB,eAnB2B5jb,IACX,SAAZie,GACF8hO,EAAMhxO,MAAMqlhB,EAAY9shB,SAAW,EAAGtH,GAEpC4jb,GAEFA,EAAelB,EAAQp7a,QAAStH,EAClC,EAaAie,QAAqB,SAAZA,EAAqB,KAAOA,GACpCrI,EAAO,CACRhW,SAAUA,CAAC+iB,EAAOmha,IACIz9a,EAAAA,aAAmBzG,GAAU0X,EAAAA,GAAAA,GAAS,CACxDqT,OAAOrT,EAAAA,GAAAA,GAAS,CACdnN,QAAS,EACTwmB,UAAWsjgB,GAAS,KACpB58f,WAAsB,WAAV1U,GAAuB+ha,OAAoBhpb,EAAX,UAC3CkK,GAAO+c,GAAQgI,EAAO/qB,EAASD,MAAMgrB,OACxC/jB,IAAKs4R,GACJ4kJ,MAGT,IA2EAqwG,GAAKE,gBAAiB,EACtB,YC5PO,SAASC,GAAuB71gB,GACrC,OAAOC,EAAAA,GAAAA,IAAqB,aAAcD,EAC5C,EACuBE,EAAAA,GAAAA,GAAuB,aAAc,CAAC,OAAQ,UAArE,MCDMrL,GAAY,CAAC,cACjB8Z,GAAa,CAAC,SAAU,WAAY,eAAgB,iBAAkB,kBAAmB,WAAY,YAAa,YAAa,YAAa,kBAAmB,OAAQ,aAAc,QAAS,YAAa,kBAAmB,sBAAuB,qBAAsB,kBAAmB,qBAC9RhC,GAAa,CAAC,aAuBT,SAASmpgB,GAAajsP,EAAM5wC,GACjC,IAAIz1P,EAAS,EAQb,MAPwB,kBAAby1P,EACTz1P,EAASy1P,EACa,WAAbA,EACTz1P,EAASqmS,EAAKrtR,OAAS,EACD,WAAby8O,IACTz1P,EAASqmS,EAAKrtR,QAEThZ,CACT,CACO,SAASuyhB,GAAclsP,EAAMinC,GAClC,IAAIttU,EAAS,EAQb,MAP0B,kBAAfstU,EACTttU,EAASstU,EACe,WAAfA,EACTttU,EAASqmS,EAAKvoR,MAAQ,EACE,UAAfwvT,IACTttU,EAASqmS,EAAKvoR,OAET9d,CACT,CACA,SAASwyhB,GAAwBC,GAC/B,MAAO,CAACA,EAAgBnlN,WAAYmlN,EAAgBh9R,UAAUxzP,KAAI2kB,GAAkB,kBAANA,EAAiB,GAAGA,MAAQA,IAAGpnB,KAAK,IACpH,CACA,SAASkzhB,GAAgBC,GACvB,MAA2B,oBAAbA,EAA0BA,IAAaA,CACvD,CACA,MAUaC,IAAch2gB,EAAAA,GAAAA,IAAOmra,GAAO,CACvClkb,KAAM,aACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAOpG,MAHpBqf,CAIxB,CAAC,GACSi2gB,IAAej2gB,EAAAA,GAAAA,IAAOk2gB,GAAW,CAC5CjvhB,KAAM,aACN2Y,KAAM,QACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAOkO,OAHnB+K,CAIzB,CACDzf,SAAU,WACV2oT,UAAW,OACXjuC,UAAW,SAGXhlP,SAAU,GACV9X,UAAW,GACX0X,SAAU,oBACVK,UAAW,oBAEXb,QAAS,IAicX,GA/b6B7tB,EAAAA,YAAiB,SAAiBma,EAAS5Z,GACtE,IAAIouhB,EAAkBtvG,EAAauvG,EACnC,MAAMt1hB,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,gBAEF,OACFkO,EAAM,SACN4ghB,EAAQ,aACRM,EAAe,CACbx9R,SAAU,MACV63E,WAAY,QACb,eACD4lN,EAAc,gBACdC,EAAkB,WAAU,SAC5Bx1hB,EAAQ,UACRuO,EACA9S,UAAWg6hB,EAAa,UACxBpqG,EAAY,EAAC,gBACbqqG,EAAkB,GAAE,KACpBp5f,EACA0wZ,WAAY2oG,EAAiB,CAAC,EAAC,MAC/Bt0gB,EAAK,UACLuc,EAAS,gBACTk3f,EAAkB,CAChBh9R,SAAU,MACV63E,WAAY,QACb,oBACDo1G,EAAsBwvG,GACtB9vG,mBAAoBmxG,EAAyB,OAC7C3oG,iBAAiB,WACfvJ,GACE,CAAC,EAAC,kBACNuD,GAAoB,GAClBlnb,EACJktb,GAAkBh3a,EAAAA,GAAAA,GAA8BlW,EAAMktb,gBAAiBv5a,IACvEsC,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAOytB,IACzCqogB,EAA8F,OAApET,EAAgC,MAAbx3f,OAAoB,EAASA,EAAU1pB,OAAiBkhhB,EAAmBO,EACxHG,EAAWrvhB,EAAAA,SACXsvhB,GAAiB/3f,EAAAA,GAAAA,GAAW83f,EAAUD,EAAuB7uhB,KAC7DmY,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrCu1hB,eACAE,kBACAnqG,YACAqqG,kBACAG,yBACAf,kBACA/vG,sBACAN,mBAAoBmxG,EACpB3oG,oBAEI7ra,EAnFkBjC,KACxB,MAAM,QACJiC,GACEjC,EAKJ,OAAOmC,EAAAA,GAAAA,GAJO,CACZ1hB,KAAM,CAAC,QACPsU,MAAO,CAAC,UAEmBwghB,GAAwBtzgB,EAAQ,EA2E7CG,CAAkBpC,GAI5B62gB,EAAkBvvhB,EAAAA,aAAkB,KACxC,GAAwB,mBAApB+uhB,EAMF,OAAOD,EAET,MAAMU,EAAmBlB,GAAgBC,GAInCkB,GADgBD,GAAkD,IAA9BA,EAAiBryZ,SAAiBqyZ,GAAmB9wgB,EAAAA,GAAAA,GAAc2wgB,EAASpuhB,SAASq8C,MAC9F6qM,wBAOjC,MAAO,CACLj2N,IAAKu9f,EAAWv9f,IAAMg8f,GAAauB,EAAYZ,EAAax9R,UAC5Dh/N,KAAMo9f,EAAWp9f,KAAO87f,GAAcsB,EAAYZ,EAAa3lN,YAChE,GACA,CAACqlN,EAAUM,EAAa3lN,WAAY2lN,EAAax9R,SAAUy9R,EAAgBC,IAGxEW,EAAqB1vhB,EAAAA,aAAkB2vhB,IACpC,CACLt+R,SAAU68R,GAAayB,EAAUtB,EAAgBh9R,UACjD63E,WAAYilN,GAAcwB,EAAUtB,EAAgBnlN,eAErD,CAACmlN,EAAgBnlN,WAAYmlN,EAAgBh9R,WAC1Cu+R,EAAsB5vhB,EAAAA,aAAkB7E,IAC5C,MAAMw0hB,EAAW,CACfj2gB,MAAOve,EAAQg/R,YACfvlR,OAAQzZ,EAAQ2qR,cAIZ+pQ,EAAsBH,EAAmBC,GAC/C,GAAwB,SAApBZ,EACF,MAAO,CACL78f,IAAK,KACLG,KAAM,KACNg8f,gBAAiBD,GAAwByB,IAK7C,MAAM/zW,EAAeyzW,IAGrB,IAAIr9f,EAAM4pJ,EAAa5pJ,IAAM29f,EAAoBx+R,SAC7Ch/N,EAAOypJ,EAAazpJ,KAAOw9f,EAAoB3mN,WACnD,MAAM92S,EAASF,EAAMy9f,EAAS/6gB,OACxBud,EAAQE,EAAOs9f,EAASj2gB,MAGxBkna,GAAkB7pZ,EAAAA,GAAAA,GAAYu3f,GAAgBC,IAG9CuB,EAAkBlvG,EAAgBn5J,YAAcwnQ,EAChDc,EAAiBnvG,EAAgBnjD,WAAawxJ,EAGpD,GAAwB,OAApBA,GAA4B/8f,EAAM+8f,EAAiB,CACrD,MAAMpvb,EAAO3tE,EAAM+8f,EACnB/8f,GAAO2tE,EACPgwb,EAAoBx+R,UAAYxxJ,CAClC,MAAO,GAAwB,OAApBovb,GAA4B78f,EAAS09f,EAAiB,CAC/D,MAAMjwb,EAAOztE,EAAS09f,EACtB59f,GAAO2tE,EACPgwb,EAAoBx+R,UAAYxxJ,CAClC,CAQA,GAAwB,OAApBovb,GAA4B58f,EAAO48f,EAAiB,CACtD,MAAMpvb,EAAOxtE,EAAO48f,EACpB58f,GAAQwtE,EACRgwb,EAAoB3mN,YAAcrpO,CACpC,MAAO,GAAI1tE,EAAQ49f,EAAgB,CACjC,MAAMlwb,EAAO1tE,EAAQ49f,EACrB19f,GAAQwtE,EACRgwb,EAAoB3mN,YAAcrpO,CACpC,CACA,MAAO,CACL3tE,IAAK,GAAG96B,KAAKub,MAAMuf,OACnBG,KAAM,GAAGj7B,KAAKub,MAAM0f,OACpBg8f,gBAAiBD,GAAwByB,GAC1C,GACA,CAACtB,EAAUQ,EAAiBQ,EAAiBG,EAAoBT,KAC7De,EAAcC,GAAmBjwhB,EAAAA,SAAe61B,GACjDq6f,EAAuBlwhB,EAAAA,aAAkB,KAC7C,MAAM7E,EAAUk0hB,EAASpuhB,QACzB,IAAK9F,EACH,OAEF,MAAMg1hB,EAAcP,EAAoBz0hB,GAChB,OAApBg1hB,EAAYj+f,MACd/2B,EAAQmpB,MAAM4N,IAAMi+f,EAAYj+f,KAET,OAArBi+f,EAAY99f,OACdl3B,EAAQmpB,MAAM+N,KAAO89f,EAAY99f,MAEnCl3B,EAAQmpB,MAAM+pgB,gBAAkB8B,EAAY9B,gBAC5C4B,GAAgB,EAAK,GACpB,CAACL,IACJ5vhB,EAAAA,WAAgB,KACVwgb,GACFvpZ,OAAOtY,iBAAiB,SAAUuxgB,GAE7B,IAAMj5f,OAAOy+D,oBAAoB,SAAUw6b,KACjD,CAAC3B,EAAU/tG,EAAmB0vG,IAUjClwhB,EAAAA,WAAgB,KACV61B,GACFq6f,GACF,IAEFlwhB,EAAAA,oBAA0B2N,GAAQ,IAAMkoB,EAAO,CAC7Cu6f,eAAgBA,KACdF,GAAsB,GAEtB,MAAM,CAACr6f,EAAMq6f,IACjBlwhB,EAAAA,WAAgB,KACd,IAAK61B,EACH,OAEF,MAAM6nW,GAAe2yJ,EAAAA,GAAAA,IAAS,KAC5BH,GAAsB,IAElBtvG,GAAkB7pZ,EAAAA,GAAAA,GAAYw3f,GAEpC,OADA3tG,EAAgBjia,iBAAiB,SAAU++W,GACpC,KACLA,EAAaxlX,QACb0oa,EAAgBlrV,oBAAoB,SAAUgoS,EAAa,CAC5D,GACA,CAAC6wJ,EAAU14f,EAAMq6f,IACpB,IAAIlyG,EAAqBmxG,EACM,SAA3BA,GAAsC7wG,EAAoB0vG,iBAC5DhwG,OAAqB3ob,GAMvB,MAAML,EAAYg6hB,IAAkBT,GAAW7vgB,EAAAA,GAAAA,GAAc4vgB,GAAgBC,IAAWjxe,UAAOjoD,GACzFgvb,EAAkE,OAAtDhF,EAAuB,MAATzka,OAAgB,EAASA,EAAMzhB,MAAgBkmb,EAAcmvG,GACvF8B,EAAqE,OAAxD1B,EAAwB,MAATh0gB,OAAgB,EAASA,EAAMnN,OAAiBmhhB,EAAeH,GAC3F8B,EAAa9rG,GAAa,CAC9B/xR,YAAa49X,EACb34G,mBAAmB1ma,EAAAA,GAAAA,GAAS,CAAC,EAAGm+gB,EAAwB,CACtD9qgB,MAAO0rgB,EAAeZ,EAAuB9qgB,OAAQrT,EAAAA,GAAAA,GAAS,CAAC,EAAGm+gB,EAAuB9qgB,MAAO,CAC9FxgB,QAAS,MAGb4za,gBAAiB,CACfkN,YACArkb,IAAK+uhB,GAEP52gB,aACA5Q,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQlN,MAAiC,MAA1B2hhB,OAAiC,EAASA,EAAuBtnhB,aAE5F0ohB,EAAgB/rG,GAAa,CAC/B/xR,YAAa2xR,EACb1M,mBAAiC,MAAbxgZ,OAAoB,EAASA,EAAUh+B,OAAS,CAAC,EACrEy+a,uBAAwBroa,EACxBmoa,gBAAiB,CACfn3a,MACA42B,UAAW,CACTw3Q,SAAU,CACRnoB,WAAW,IAGfxxR,YACA6gC,QAEFnd,aACA5Q,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,MAG9BqvB,UAAWs5f,GACTD,EACJhsG,GAAYh1a,EAAAA,GAAAA,GAA8BghhB,EAAezrgB,IAC3D,OAAoB3J,EAAAA,GAAAA,KAAKipa,GAAUpza,EAAAA,GAAAA,GAAS,CAAC,EAAGuza,GAAYlN,GAAgB+M,IAAa,CACvFltZ,UAAWs5f,EACXjwG,qBACC,CACDjnb,UAAuB6hB,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACxD8yQ,QAAQ,EACRP,GAAI3tP,EACJonZ,WAtFmBwB,CAACtjb,EAASujb,KAC3BzB,GACFA,EAAW9hb,EAASujb,GAEtBwxG,GAAsB,EAmFpBtoQ,SAjFiBo3J,KACnBixG,GAAgB,EAAM,EAiFpBr4gB,QAASoma,GACRwI,EAAiB,CAClBjtb,UAAuB6hB,EAAAA,GAAAA,KAAKk1gB,GAAWr/gB,EAAAA,GAAAA,GAAS,CAAC,EAAGs/gB,EAAY,CAC9Dh3hB,SAAUA,UAIlB,mBCpWO,SAASm3hB,GAAoBt4gB,GAClC,OAAOC,EAAAA,GAAAA,IAAqB,UAAWD,EACzC,EACoBE,EAAAA,GAAAA,GAAuB,UAAW,CAAC,OAAQ,QAAS,SAAxE,MCDMrL,GAAY,CAAC,cACjB8Z,GAAa,CAAC,YAAa,WAAY,YAAa,uBAAwB,gBAAiB,UAAW,OAAQ,aAAc,iBAAkB,qBAAsB,kBAAmB,UAAW,QAAS,aAezM4pgB,GAAa,CACjBt/R,SAAU,MACV63E,WAAY,SAER0nN,GAAa,CACjBv/R,SAAU,MACV63E,WAAY,QAaR2nN,IAAWr4gB,EAAAA,GAAAA,IAAOs4gB,GAAS,CAC/BnxgB,kBAAmBtI,IAAQM,EAAAA,GAAAA,GAAsBN,IAAkB,YAATA,EAC1D5X,KAAM,UACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAOpG,MAJ9Bqf,CAKd,CAAC,GACSu4gB,IAAYv4gB,EAAAA,GAAAA,IAAOi2gB,GAAc,CAC5ChvhB,KAAM,UACN2Y,KAAM,QACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAOkO,OAHtB+K,CAItB,CAIDkW,UAAW,oBAEXsigB,wBAAyB,UAErBC,IAAez4gB,EAAAA,GAAAA,IAAO04gB,GAAU,CACpCzxhB,KAAM,UACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,IAAWA,EAAOm5C,MAH1BlgC,CAIlB,CAEDqV,QAAS,IAmPX,GAjP0B7tB,EAAAA,YAAiB,SAAcma,EAAS5Z,GAChE,IAAIquhB,EAAcD,EAClB,MAAMr1hB,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,aAEF,UACFshK,GAAY,EAAI,SAChBxnK,EAAQ,UACRuO,EAAS,qBACTqphB,GAAuB,EAAK,cAC5BC,EAAgB,CAAC,EAAC,QAClBrvG,EAAO,KACPlsZ,EAAI,WACJ0wZ,EAAa,CAAC,EAAC,eACf8qG,EAAc,mBACdrzG,EAAqB,OACrBwI,iBAAiB,WACfvJ,GACE,CAAC,EAAC,QACN71Z,EAAU,eAAc,MACxBxM,EAAQ,CAAC,EAAC,UACVuc,EAAY,CAAC,GACX79B,EACJktb,GAAkBh3a,EAAAA,GAAAA,GAA8BlW,EAAMktb,gBAAiBv5a,IACvEsC,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAOytB,IACzCuqgB,EAAQ3F,KACRjzgB,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrCynK,YACAowX,uBACAC,gBACAn0G,aACAsJ,aACAvI,qBACAwI,kBACAp/Z,YAEIzM,EA1EkBjC,KACxB,MAAM,QACJiC,GACEjC,EAMJ,OAAOmC,EAAAA,GAAAA,GALO,CACZ1hB,KAAM,CAAC,QACPsU,MAAO,CAAC,SACRirC,KAAM,CAAC,SAEoBg4e,GAAqB/1gB,EAAQ,EAiE1CG,CAAkBpC,GAC5Bq0gB,EAAgBhsX,IAAcowX,GAAwBt7f,EACtD07f,EAAqBvxhB,EAAAA,OAAa,MAyBxC,IAAIqthB,GAAmB,EAIvBrthB,EAAAA,SAAenC,IAAItE,GAAU,CAACsiF,EAAO1jF,KAChB6H,EAAAA,eAAqB67E,KAQnCA,EAAMviF,MAAMgU,WACC,iBAAZ8Z,GAA8By0D,EAAMviF,MAAMyU,WAEd,IAArBs/gB,KADTA,EAAkBl1hB,GAItB,IAEF,MAAMm4hB,EAA4C,OAA/B1B,EAAeh0gB,EAAMnN,OAAiBmhhB,EAAemC,GAClES,EAAiE,OAAvC7C,EAAmBx3f,EAAU1pB,OAAiBkhhB,EAAmBpoG,EAC3FhH,EAAgBkF,GAAa,CACjC/xR,YAAa93I,EAAMzhB,KACnBw+a,kBAAmBxgZ,EAAUh+B,KAC7Buf,aACA5Q,UAAW,CAAC6S,EAAQxhB,KAAM2O,KAEtB2phB,EAAiBhtG,GAAa,CAClC/xR,YAAa49X,EACb34G,kBAAmB65G,EACnB94gB,aACA5Q,UAAW6S,EAAQlN,QAErB,OAAoB2N,EAAAA,GAAAA,KAAKy1gB,IAAU5/gB,EAAAA,GAAAA,GAAS,CAC1C8wa,QAASA,EACT8sG,aAAc,CACZx9R,SAAU,SACV63E,WAAYooN,EAAQ,QAAU,QAEhCjD,gBAAiBiD,EAAQX,GAAaC,GACtCh2gB,MAAO,CACLnN,MAAO6ihB,EACPn3hB,KAAMyhB,EAAMzhB,MAEdg+B,UAAW,CACTh+B,KAAMomb,EACN9xa,MAAOgkhB,GAET57f,KAAMA,EACNt1B,IAAKA,EACLy9a,mBAAoBA,EACpBwI,iBAAiBv1a,EAAAA,GAAAA,GAAS,CACxBgsa,WA9EmBwB,CAACtjb,EAASujb,KAC3B6yG,EAAmBtwhB,SACrBswhB,EAAmBtwhB,QAAQishB,wBAAwB/xhB,EAAS,CAC1DuT,UAAW4ihB,EAAQ,MAAQ,QAG3Br0G,GACFA,EAAW9hb,EAASujb,EACtB,GAuEG8H,GACH9ta,WAAYA,GACXnJ,EAAO,CACRoL,QAAS02gB,EACT93hB,UAAuB6hB,EAAAA,GAAAA,KAAK61gB,IAAchghB,EAAAA,GAAAA,GAAS,CACjD8rJ,UA1EsBp/I,IACN,QAAdA,EAAMloB,MACRkoB,EAAMi2J,iBACFmuQ,GACFA,EAAQpka,EAAO,cAEnB,EAqEEmqR,QAASypP,EACTxwX,UAAWA,KAAmC,IAArBssX,GAA0B8D,GACnDpE,cAAeA,EACf3lgB,QAASA,GACRgqgB,EAAe,CAChBtphB,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQ+9B,KAAM04e,EAActphB,WAC5CvO,SAAUA,OAGhB,4kGCnMM0T,GAAY,CAAC,iBAAkB,SAAU,WAAY,YAAa,YAAa,SAAU,KAAM,UAAW,YAAa,aAAc,SAAU,WAAY,YAAa,QAAS,UAAW,uBA8D3L,SAASykhB,GAAkBhjhB,EAAWxV,EAAM81hB,GAHnD,IAA0B2C,EAKxB,MAAMrngB,EAhDR,SAA2B5b,EAAWxV,EAAMwpb,GAC1C,MAAMzgJ,EAAO/oS,EAAKivP,wBACZypS,EAAgBlvG,GAAqBA,EAAkBv6L,wBACvDy4L,GAAkB7pZ,EAAAA,GAAAA,GAAY79B,GACpC,IAAIoxB,EACJ,GAAIpxB,EAAK24hB,cACPvngB,EAAYpxB,EAAK24hB,kBACZ,CACL,MAAMC,EAAgBlxG,EAAgBryK,iBAAiBr1Q,GACvDoxB,EAAYwngB,EAAc/rQ,iBAAiB,sBAAwB+rQ,EAAc/rQ,iBAAiB,YACpG,CACA,IAAIgsQ,EAAU,EACVC,EAAU,EACd,GAAI1ngB,GAA2B,SAAdA,GAA6C,kBAAdA,EAAwB,CACtE,MAAM2ngB,EAAkB3ngB,EAAUzrB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGA,MAAM,KACpEkzhB,EAAUznhB,SAAS2nhB,EAAgB,GAAI,IACvCD,EAAU1nhB,SAAS2nhB,EAAgB,GAAI,GACzC,CACA,MAAkB,SAAdvjhB,EACEkjhB,EACK,cAAcA,EAAcz/f,MAAQ4/f,EAAU9vP,EAAK5vQ,UAErD,cAAcuuZ,EAAgBnjD,WAAas0J,EAAU9vP,EAAK5vQ,UAEjD,UAAd3jB,EACEkjhB,EACK,eAAe3vP,EAAK9vQ,MAAQy/f,EAAcv/f,KAAO0/f,OAEnD,eAAe9vP,EAAK5vQ,KAAO4vQ,EAAKvoR,MAAQq4gB,OAE/B,OAAdrjhB,EACEkjhB,EACK,cAAcA,EAAcx/f,OAAS4/f,EAAU/vP,EAAK/vQ,SAEtD,cAAc0uZ,EAAgBn5J,YAAcuqQ,EAAU/vP,EAAK/vQ,SAIhE0/f,EACK,eAAe3vP,EAAK/vQ,IAAM0/f,EAAc1/f,IAAM+vQ,EAAKrtR,OAASo9gB,OAE9D,eAAe/vP,EAAK/vQ,IAAM+vQ,EAAKrtR,OAASo9gB,MACjD,CAMoBE,CAAkBxjhB,EAAWxV,EAJX,oBADZy4hB,EAImB3C,GAHM2C,IAAsBA,GAKnErngB,IACFpxB,EAAKorB,MAAM6tgB,gBAAkB7ngB,EAC7BpxB,EAAKorB,MAAMgG,UAAYA,EAE3B,CAMA,MAAM89P,GAAqBpoR,EAAAA,YAAiB,SAAe1G,EAAOiH,GAChE,MAAM2L,EAAQw6T,KACR0rN,EAAgB,CACpBpuQ,MAAO93Q,EAAMgK,YAAYtC,OAAOE,QAChCmwQ,KAAM/3Q,EAAMgK,YAAYtC,OAAOI,OAE3B82Z,EAAiB,CACrB9mJ,MAAO93Q,EAAMgK,YAAYjC,SAASM,eAClC0vQ,KAAM/3Q,EAAMgK,YAAYjC,SAASO,gBAE7B,eACF+oa,EAAc,OACdx5J,GAAS,EAAI,SACbxqR,EACAvE,UAAWg6hB,EAAa,UACxBtghB,EAAY,OACZkF,OAAQy+gB,EAAaD,EACrB5uQ,GAAI66J,EAAM,QACVrB,EAAO,UACPD,EAAS,WACTE,EAAU,OACVE,EAAM,SACNv1J,EAAQ,UACRw1J,EAAS,MACT94Z,EAAK,QACL1M,EAAUkzZ,EAAc,oBAExBwT,EAAsB3C,IACpBrib,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCqlhB,EAActyhB,EAAAA,OAAa,MAC3B64R,GAAYthQ,EAAAA,GAAAA,GAAWh+B,EAASgH,IAAK+xhB,EAAa/xhB,GAClDg+a,EAA+Bvjb,GAAY0jb,IAC3C1jb,SAEkB3F,IAAhBqpb,EACF1jb,EAASs3hB,EAAYrxhB,SAErBjG,EAASs3hB,EAAYrxhB,QAASy9a,GAElC,EAEI1pI,EAAcupI,GAA6B,CAACrlb,EAAMwlb,KACtDgzG,GAAkBhjhB,EAAWxV,EAAM81hB,GACnCpxG,GAAO1kb,GACH8jb,GACFA,EAAQ9jb,EAAMwlb,EAChB,IAEID,EAAiBF,GAA6B,CAACrlb,EAAMwlb,KACzD,MAAMC,EAAkBd,GAAmB,CACzCjma,UACA0M,QACA1Q,OAAQy+gB,GACP,CACDhjhB,KAAM,UAERnW,EAAKorB,MAAMs6Z,iBAAmB1ya,EAAMgK,YAAYrW,OAAO,qBAAqBoR,EAAAA,GAAAA,GAAS,CAAC,EAAG0ta,IACzFzlb,EAAKorB,MAAMxK,WAAa5N,EAAMgK,YAAYrW,OAAO,aAAaoR,EAAAA,GAAAA,GAAS,CAAC,EAAG0ta,IAC3Ezlb,EAAKorB,MAAM6tgB,gBAAkB,OAC7Bj5hB,EAAKorB,MAAMgG,UAAY,OACnB2yZ,GACFA,EAAW/jb,EAAMwlb,EACnB,IAEIG,EAAgBN,EAA6BxB,GAC7C+B,EAAgBP,EAA6BnB,GAC7C2B,EAAaR,GAA6Brlb,IAC9C,MAAMylb,EAAkBd,GAAmB,CACzCjma,UACA0M,QACA1Q,OAAQy+gB,GACP,CACDhjhB,KAAM,SAERnW,EAAKorB,MAAMs6Z,iBAAmB1ya,EAAMgK,YAAYrW,OAAO,oBAAqB8+a,GAC5Ezlb,EAAKorB,MAAMxK,WAAa5N,EAAMgK,YAAYrW,OAAO,YAAa8+a,GAC9D+yG,GAAkBhjhB,EAAWxV,EAAM81hB,GAC/B7xG,GACFA,EAAOjkb,EACT,IAEI8lb,EAAeT,GAA6Brlb,IAEhDA,EAAKorB,MAAMs6Z,iBAAmB,GAC9B1lb,EAAKorB,MAAMxK,WAAa,GACpB8tQ,GACFA,EAAS1uR,EACX,IAQIk3hB,EAAiBpwhB,EAAAA,aAAkB,KACnCsyhB,EAAYrxhB,SACdywhB,GAAkBhjhB,EAAW4jhB,EAAYrxhB,QAAS+thB,EACpD,GACC,CAACtghB,EAAWsghB,IAyBf,OAxBAhvhB,EAAAA,WAAgB,KAEd,GAAIq+a,GAAwB,SAAd3va,GAAsC,UAAdA,EACpC,OAEF,MAAMgvX,GAAe2yJ,EAAAA,GAAAA,IAAS,KACxBiC,EAAYrxhB,SACdywhB,GAAkBhjhB,EAAW4jhB,EAAYrxhB,QAAS+thB,EACpD,IAEIpuG,GAAkB7pZ,EAAAA,GAAAA,GAAYu7f,EAAYrxhB,SAEhD,OADA2/a,EAAgBjia,iBAAiB,SAAU++W,GACpC,KACLA,EAAaxlX,QACb0oa,EAAgBlrV,oBAAoB,SAAUgoS,EAAa,CAC5D,GACA,CAAChvX,EAAW2va,EAAQ2wG,IACvBhvhB,EAAAA,WAAgB,KACTq+a,GAGH+xG,GACF,GACC,CAAC/xG,EAAQ+xG,KACQh1gB,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACrDora,QAASi2G,EACTt1G,QAAShoI,EACT+nI,UAAW8B,EACX5B,WAAYwB,EACZtB,OAAQ4B,EACRn3J,SAAUo3J,EACV5B,UAAW0B,EACXvB,eA3C2B5jb,IACvB4jb,GAEFA,EAAe+0G,EAAYrxhB,QAAStH,EACtC,EAwCAoqR,OAAQA,EACRP,GAAI66J,EACJzma,QAASA,GACRrI,EAAO,CACRhW,SAAUA,CAAC+iB,EAAOmha,IACIz9a,EAAAA,aAAmBzG,GAAU0X,EAAAA,GAAAA,GAAS,CACxD1Q,IAAKs4R,EACLv0Q,OAAOrT,EAAAA,GAAAA,GAAS,CACd+f,WAAsB,WAAV1U,GAAuB+ha,OAAoBhpb,EAAX,UAC3CivB,EAAO/qB,EAASD,MAAMgrB,QACxBm5Z,MAGT,IAuGA,MCvUO,SAAS80G,GAAsBn6gB,GACpC,OAAOC,EAAAA,GAAAA,IAAqB,YAAaD,EAC3C,EACsBE,EAAAA,GAAAA,GAAuB,YAAa,CAAC,OAAQ,SAAU,QAAS,kBAAmB,mBAAoB,iBAAkB,oBAAqB,wBAAyB,yBAA0B,uBAAwB,0BAA2B,UAA1Q,MCDMrL,GAAY,CAAC,iBACjB8Z,GAAa,CAAC,SAAU,gBAAiB,WAAY,YAAa,YAAa,eAAgB,aAAc,UAAW,OAAQ,aAAc,aAAc,sBAAuB,qBAAsB,WAgBrMtO,GAAoBA,CAACnf,EAAOiG,KAChC,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,MAA8B,cAAvBuf,EAAW0O,SAAkD,eAAvB1O,EAAW0O,UAA6B7nB,EAAOizhB,OAAQjzhB,EAAOoW,MAAM,EAgB5H88gB,IAAaj6gB,EAAAA,GAAAA,IAAOmra,GAAO,CAC/Blkb,KAAM,YACN2Y,KAAM,OACNK,sBAHiBD,EAIhB5H,IAAA,IAAC,MACF1E,GACD0E,EAAA,MAAM,CACLxM,QAAS8H,EAAMmK,MAAQnK,GAAO9H,OAAOsR,OACtC,IACKg9gB,IAAmBl6gB,EAAAA,GAAAA,IAAO,MAAO,CACrCmH,kBAAmBhI,GAAAA,EACnBlY,KAAM,YACN2Y,KAAM,SACNoM,sBAAsB,EACtB/L,sBALuBD,CAMtB,CACD9V,KAAM,aAEFiwhB,IAAcn6gB,EAAAA,GAAAA,IAAOota,GAAO,CAChCnmb,KAAM,YACN2Y,KAAM,QACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOkO,MAAOlO,EAAO,eAAcoZ,EAAAA,GAAAA,GAAWD,EAAWk6gB,WAAmC,cAAvBl6gB,EAAW0O,SAA2B7nB,EAAO,qBAAoBoZ,EAAAA,GAAAA,GAAWD,EAAWk6gB,WAAW,GAP/Jp6gB,EASjBxM,IAAA,IAAC,MACFE,EAAK,WACLwM,GACD1M,EAAA,OAAKiF,EAAAA,GAAAA,GAAS,CACbywS,UAAW,OACX/nS,QAAS,OACTwX,cAAe,SACfvc,OAAQ,OACRlS,KAAM,WACN0B,QAAS8H,EAAMmK,MAAQnK,GAAO9H,OAAOsR,OAErCs7gB,wBAAyB,QAEzBj4hB,SAAU,QACVm5B,IAAK,EAILrE,QAAS,GACc,SAAtBnV,EAAWk6gB,QAAqB,CACjCvggB,KAAM,GACiB,QAAtB3Z,EAAWk6gB,QAAoB,CAChC1ggB,IAAK,EACLG,KAAM,EACNF,MAAO,EACPvd,OAAQ,OACR8Z,UAAW,QACY,UAAtBhW,EAAWk6gB,QAAsB,CAClCzggB,MAAO,GACgB,WAAtBzZ,EAAWk6gB,QAAuB,CACnC1ggB,IAAK,OACLG,KAAM,EACND,OAAQ,EACRD,MAAO,EACPvd,OAAQ,OACR8Z,UAAW,QACY,SAAtBhW,EAAWk6gB,QAA4C,cAAvBl6gB,EAAW0O,SAA2B,CACvEiG,YAAa,cAAcnhB,EAAMmK,MAAQnK,GAAOkD,QAAQ7B,WACjC,QAAtBmL,EAAWk6gB,QAA2C,cAAvBl6gB,EAAW0O,SAA2B,CACtEkG,aAAc,cAAcphB,EAAMmK,MAAQnK,GAAOkD,QAAQ7B,WAClC,UAAtBmL,EAAWk6gB,QAA6C,cAAvBl6gB,EAAW0O,SAA2B,CACxEmG,WAAY,cAAcrhB,EAAMmK,MAAQnK,GAAOkD,QAAQ7B,WAChC,WAAtBmL,EAAWk6gB,QAA8C,cAAvBl6gB,EAAW0O,SAA2B,CACzEgG,UAAW,cAAclhB,EAAMmK,MAAQnK,GAAOkD,QAAQ7B,WACtD,IACIslhB,GAAoB,CACxBxggB,KAAM,QACNF,MAAO,OACPD,IAAK,OACLE,OAAQ,MAeV,MA2LA,GA3L4BpyB,EAAAA,YAAiB,SAAgBma,EAAS5Z,GACpE,MAAMjH,GAAQyS,EAAAA,GAAAA,GAAgB,CAC5BzS,MAAO6gB,EACP1a,KAAM,cAEFyM,EAAQw6T,KACR4qN,EAAQ3F,KACRxlG,EAA4B,CAChCniK,MAAO93Q,EAAMgK,YAAYjC,SAASM,eAClC0vQ,KAAM/3Q,EAAMgK,YAAYjC,SAASO,gBAG/Bo+gB,OAAQE,EAAa,OAAM,cAC3B/uG,EAAa,SACbxqb,EAAQ,UACRuO,EAAS,UACT88a,EAAY,GAAE,aACdZ,GAAe,EACf+uG,YACEhvG,cAAeivG,GACb,CAAC,EAAC,QACNjxG,EAAO,KACPlsZ,GAAO,EAAK,WACZ0wZ,EAAa,CAAC,EAAC,WACf0sG,EAAU,oBAEV30G,EAAsBl2J,GAAK,mBAC3B41J,EAAqBmI,EAAyB,QAC9C/+Z,EAAU,aACR9tB,EACJy5hB,GAAavjhB,EAAAA,GAAAA,GAA8BlW,EAAMy5hB,WAAY9lhB,IAC7DsC,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAOytB,IAKzC+uP,EAAU91Q,EAAAA,QAAa,GAC7BA,EAAAA,WAAgB,KACd81Q,EAAQ70Q,SAAU,CAAI,GACrB,IACH,MAAMiyhB,EAlDD,SAAkBptgB,EAEtB8sgB,GAAQ,IAFe,UACxBlkhB,GACDoX,EACC,MAAqB,QAAdpX,GANF,SAAsBkkhB,GAC3B,OAA8C,IAAvC,CAAC,OAAQ,SAAS36hB,QAAQ26hB,EACnC,CAIgCO,CAAaP,GAAUC,GAAkBD,GAAUA,CACnF,CA8C0BQ,CAAU,CAChC1khB,UAAW4ihB,EAAQ,MAAQ,OAC1BwB,GACGF,EAASE,EACTp6gB,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrCs5hB,SACAhuG,YACA/uZ,OACAzO,WACC7X,GACGoL,EA3JkBjC,KACxB,MAAM,QACJiC,EAAO,OACPi4gB,EAAM,QACNxrgB,GACE1O,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,QACPq5hB,OAAQ,EAAc,cAAZprgB,GAAuC,eAAZA,IAA6B,UAClEzR,MAAO,CAAC,SACRlI,MAAO,CAAC,QAAS,eAAckL,EAAAA,GAAAA,GAAWi6gB,KAAuB,cAAZxrgB,GAA2B,qBAAoBzO,EAAAA,GAAAA,GAAWi6gB,OAEjH,OAAO/3gB,EAAAA,GAAAA,GAAeD,EAAO23gB,GAAuB53gB,EAAQ,EA+I5CG,CAAkBpC,GAC5BhD,GAAsB0F,EAAAA,GAAAA,KAAKu3gB,IAAa1hhB,EAAAA,GAAAA,GAAS,CACrD2za,UAAuB,cAAZx9Z,EAA0Bw9Z,EAAY,EACjDI,QAAQ,GACPuB,EAAY,CACbz+a,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQlN,MAAO84a,EAAWz+a,WAC1C4Q,WAAYA,EACZnf,SAAUA,KAEZ,GAAgB,cAAZ6tB,EACF,OAAoBhM,EAAAA,GAAAA,KAAKs3gB,IAAkBzhhB,EAAAA,GAAAA,GAAS,CAClDnJ,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAMwhB,EAAQ63gB,OAAQ1qhB,GAC9C4Q,WAAYA,EACZnY,IAAKA,GACJgP,EAAO,CACRhW,SAAUmc,KAGd,MAAM29gB,GAA6Bj4gB,EAAAA,GAAAA,KAAKkja,GAAqBrta,EAAAA,GAAAA,GAAS,CACpEuyQ,GAAI3tP,EACJnnB,UAAWmkhB,GAAkBK,GAC7Bt7gB,QAASoma,EACTj6J,OAAQjO,EAAQ70Q,SACfgyhB,EAAY,CACb15hB,SAAUmc,KAEZ,MAAgB,eAAZ0R,GACkBhM,EAAAA,GAAAA,KAAKs3gB,IAAkBzhhB,EAAAA,GAAAA,GAAS,CAClDnJ,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAMwhB,EAAQ63gB,OAAQ1qhB,GAC9C4Q,WAAYA,EACZnY,IAAKA,GACJgP,EAAO,CACRhW,SAAU85hB,MAKMj4gB,EAAAA,GAAAA,KAAKq3gB,IAAYxhhB,EAAAA,GAAAA,GAAS,CAC5C8ya,eAAe9ya,EAAAA,GAAAA,GAAS,CAAC,EAAG8ya,EAAeivG,EAAmB,CAC5Dh1G,uBAEFl2a,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAMwhB,EAAQhF,MAAO7N,GAC7C+tB,KAAMA,EACNnd,WAAYA,EACZqpa,QAASA,EACTiC,aAAcA,EACdzjb,IAAKA,GACJgP,EAAOwjhB,EAAY,CACpBx5hB,SAAU85hB,IAEd,IC3NaC,GAAmBptI,GAAU,CACtCnT,YAAa,mBACb4N,UAAWqrB,GAAoB,CAC3Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EAClC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAMrD,OALAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACAs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAGpCs8C,CAAO,IAGtB9B,UAAY+d,IAAO,CACfkhe,uBAAwBlhe,EAAQprB,MAAM,CAClCA,MAAOA,KAAA,CACHjqB,IAAKosY,GAAc+D,0BACnBzmW,OAAQ,UAGhB8se,sBAAuBnhe,EAAQprB,MAAM,CACjCA,MAAOj7B,IAAA,IAAC,eAACynhB,GAAeznhB,EAAA,MAAM,CAC1BgR,IAAKosY,GAAcgE,wBACnB1mW,OAAQ,MACRz6C,OAAQ,CAACwnhB,kBACZ,IAELC,yBAA0Brhe,EAAQgnV,SAAS,CACvCpyW,MAAQwkB,IAAO,CACXzuC,IAAKosY,GAAckE,sBACnB5mW,OAAQ,QACRpJ,KAAM,CAACmO,oBAMV,+BACTkoe,GAA8B,8BAC9BC,GAA6B,oCAC7BC,IACAP,GC9CEQ,GAAmBljhB,IAAiC,IAADmjhB,EAAAC,EAAA,IAA/B,QAAEjyG,EAAO,cAAEkyG,GAAerjhB,EAClD,MAAOsjhB,EAA6BC,GAClCN,MAEF9nW,EAAAA,EAAAA,YAAU,KACRmoW,GAA6B,GAC5B,IAKH,OACEn5gB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mFAAkFvO,SAAA,EAC/FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gDAA+CvO,SAAA,EAC5D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gEAA+DvO,SAAC,mBAG9E6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,uBAAsBt4J,UAChC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,4EAA2EvO,SAAC,kBAKhG6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAU,gDACV2vJ,QAlBwB28X,KAC9BryG,GAAS,EAiB8Bxob,UAEjC6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,+DACF29T,OAAO,eACP1iU,cAAc,MACdC,YAAY,IACZwrb,cAAc,QACdC,eAAe,kBAKvBn1a,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yCAAwCvO,UACrD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAMvO,SACC,OAAlB06hB,EACG,gCACa,OAAbA,QAAa,IAAbA,GACY,QADCF,EAAbE,EACIz7hB,MAAM,UAAE,IAAAu7hB,GACC,QADDC,EADZD,EAEIvvb,iBAAS,IAAAwvb,OAFA,EAAbA,EAGIn2hB,KAAK+6L,IACLx9K,EAAAA,GAAAA,KAAA,KAAGysC,KAAM,oBAAsB,OAAF+wI,QAAE,IAAFA,OAAE,EAAFA,EAAI81D,MAAMn1P,UACrC6hB,EAAAA,GAAAA,KAAA,MAEEtT,UAAU,+JAA8JvO,UASxKwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,EAChD6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,0EACVqhK,wBAAyB,CACvB2W,OAAQ7iD,KAAAA,SAAqB,OAAF27D,QAAE,IAAFA,OAAE,EAAFA,EAAIuF,WAGnC/iL,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,0BAAyBvO,UACtC6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,sCAAqCvO,SAC7C,OAAFq/L,QAAE,IAAFA,OAAE,EAAFA,EAAI/wJ,aAGTzsB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wCAAuCvO,SACjD,OAAFq/L,QAAE,IAAFA,OAAE,EAAFA,EAAI/+F,gBAvBF,OAAF++F,QAAE,IAAFA,OAAE,EAAFA,EAAI81D,eA+BxB,EAkGP,GA/F6B1iP,IAMtB,IANuB,SAC5BuihB,EAAQ,QACRxsG,EAAO,cACPkyG,EAAa,SACbpuY,EAAQ,OACRkxE,GACD/qN,EACC,MAAM6pB,EAAOihB,QAAQy3e,GACf6F,EAA0BA,KAC9BryG,GAAS,EAEX,OACEhna,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACIssJ,IACAzqI,EAAAA,GAAAA,KAAC47J,GAAI,CACH/+I,GAAG,eACH7gB,GAAI,CACF,uBAAwB,CAAEwX,gBAAiB,oBAE7C2/f,SAAUA,EACV8C,eAAgB,CACd5jhB,MAAO,yBAET2jhB,cAAe,CACbh3gB,UAAW,OAEbyb,KAAMA,EACN0wZ,WAAY,CACV3B,UAAW,EACXxta,GAAI,CACF0Z,SAAU,UACVjB,GAAI,IACJhB,GAAI,EACJF,QAAS,UACT,oBAAqB,CACnBQ,WAAY,GAEd,WAAY,CACVkvG,QAAS,KACTtlI,SAAU,WACVm5B,IAAK,EACLC,MAAO,mBACPzY,MAAO,GACP9E,OAAQ,GACR+E,QAAS,CAAE2N,GAAI,OAAQE,GAAI,SAC3Bq3W,gBAAiB,8LACjBv0W,UAAW,mBACXlmB,OAAQ,IAGZkgB,MAAO,CACL5K,MAAO,OACP2U,SAAU,UAGdwggB,aAAc,CAAEx9R,SAAU,SAAU63E,WAAY,SAChDmlN,gBAAiB,CAAEh9R,SAAU,MAAO63E,WAAY,QAAS3vU,SAExDw9N,GACC37M,EAAAA,GAAAA,KAACijN,GAAM,KAEPjjN,EAAAA,GAAAA,KAAC04gB,GAAgB,CACf/xG,QAASqyG,EACTH,cAAeA,MAMtBpuY,IACCzqI,EAAAA,GAAAA,KAACi5gB,GAAM,CACLzB,OAAQ,QACR/8f,KAAMA,EACNksZ,QAASqyG,EACTh9gB,GAAI,CACFuC,QAAS,CAAE2N,GAAI,QAASG,GAAI,QAC5B,qBAAsB,CACpB8K,UAAW,aACX7Y,MAAO,OACP2U,SAAU,QACVO,gBAAiB,UACjB0lgB,eAAgB,eAElB/6hB,UAEF6hB,EAAAA,GAAAA,KAAC04gB,GAAgB,CACf/xG,QAASqyG,EACTH,cAAeA,QAIpB,ECnJP,MACA,GAAe,IAA0B,qEC5CnCM,GAAe98hB,OAAOoI,OAAO,MACnC00hB,GAAmB,KAAI,IACvBA,GAAoB,MAAI,IACxBA,GAAmB,KAAI,IACvBA,GAAmB,KAAI,IACvBA,GAAsB,QAAI,IAC1BA,GAAsB,QAAI,IAC1BA,GAAmB,KAAI,IACvB,MAAMC,GAAuB/8hB,OAAOoI,OAAO,MAC3CpI,OAAO4pB,KAAKkzgB,IAAcz+hB,SAASL,IAC/B++hB,GAAqBD,GAAa9+hB,IAAQA,CAAG,IAEjD,MAAMg/hB,GAAe,CAAEp7hB,KAAM,QAASoQ,KAAM,gBCXtCirhB,GAAiC,oBAAT5je,MACT,qBAATA,MACqC,6BAAzCr5D,OAAO9B,UAAUmM,SAASzD,KAAKyyD,MACjC6je,GAA+C,oBAAhB90f,YAE/BC,GAAU35B,GACyB,oBAAvB05B,YAAYC,OACpBD,YAAYC,OAAO35B,GACnBA,GAAOA,EAAIg6B,kBAAkBN,YAEjC+0f,GAAeA,CAAAhkhB,EAAiBikhB,EAAgB75hB,KAAa,IAA7C,KAAE3B,EAAI,KAAEoQ,GAAMmH,EAChC,OAAI8jhB,IAAkBjrhB,aAAgBqnD,KAC9B+je,EACO75hB,EAASyO,GAGTqrhB,GAAmBrrhB,EAAMzO,GAG/B25hB,KACJlrhB,aAAgBo2B,aAAeC,GAAOr2B,IACnCorhB,EACO75hB,EAASyO,GAGTqrhB,GAAmB,IAAIhke,KAAK,CAACrnD,IAAQzO,GAI7CA,EAASu5hB,GAAal7hB,IAASoQ,GAAQ,IAAI,EAEhDqrhB,GAAqBA,CAACrrhB,EAAMzO,KAC9B,MAAM+5hB,EAAa,IAAI38c,WAKvB,OAJA28c,EAAWx8c,OAAS,WAChB,MAAM8lD,EAAU02Z,EAAWnuhB,OAAO/H,MAAM,KAAK,GAC7C7D,EAAS,KAAOqjI,GAAW,IAC/B,EACO02Z,EAAWC,cAAcvrhB,EAAK,EAEzC,SAASk+Q,GAAQl+Q,GACb,OAAIA,aAAgBV,WACTU,EAEFA,aAAgBo2B,YACd,IAAI92B,WAAWU,GAGf,IAAIV,WAAWU,EAAK02B,OAAQ12B,EAAK22B,WAAY32B,EAAKw2B,WAEjE,CACA,IAAIg1f,GClDJ,MAAM9gc,GAAQ,mEAERzH,GAA+B,qBAAf3jF,WAA6B,GAAK,IAAIA,WAAW,KACvE,IAAK,IAAIvS,EAAI,EAAGA,EAAI29F,GAAc39F,IAC9Bk2F,GAAOyH,GAAM/7F,WAAW5B,IAAMA,EAE3B,MCLDm+hB,GAA+C,oBAAhB90f,YACxBq1f,GAAeA,CAACC,EAAeC,KACxC,GAA6B,kBAAlBD,EACP,MAAO,CACH97hB,KAAM,UACNoQ,KAAM4rhB,GAAUF,EAAeC,IAGvC,MAAM/7hB,EAAO87hB,EAAczygB,OAAO,GAClC,GAAa,MAATrpB,EACA,MAAO,CACHA,KAAM,UACNoQ,KAAM6rhB,GAAmBH,EAAcvygB,UAAU,GAAIwygB,IAI7D,OADmBZ,GAAqBn7hB,GAIjC87hB,EAAcvgiB,OAAS,EACxB,CACEyE,KAAMm7hB,GAAqBn7hB,GAC3BoQ,KAAM0rhB,EAAcvygB,UAAU,IAEhC,CACEvpB,KAAMm7hB,GAAqBn7hB,IARxBo7hB,EASN,EAEHa,GAAqBA,CAAC7rhB,EAAM2rhB,KAC9B,GAAIT,GAAuB,CACvB,MAAMrrhB,EDTSy7B,KACnB,IAA8DvuC,EAAU++hB,EAAUC,EAAUC,EAAUC,EAAlGt0f,EAA+B,IAAhB2D,EAAOnwC,OAAe0S,EAAMy9B,EAAOnwC,OAAWg2B,EAAI,EACnC,MAA9Bma,EAAOA,EAAOnwC,OAAS,KACvBwsC,IACkC,MAA9B2D,EAAOA,EAAOnwC,OAAS,IACvBwsC,KAGR,MAAMu0f,EAAc,IAAI91f,YAAYuB,GAAewc,EAAQ,IAAI70C,WAAW4shB,GAC1E,IAAKn/hB,EAAI,EAAGA,EAAI8Q,EAAK9Q,GAAK,EACtB++hB,EAAW7oc,GAAO3nD,EAAO3sC,WAAW5B,IACpCg/hB,EAAW9oc,GAAO3nD,EAAO3sC,WAAW5B,EAAI,IACxCi/hB,EAAW/oc,GAAO3nD,EAAO3sC,WAAW5B,EAAI,IACxCk/hB,EAAWhpc,GAAO3nD,EAAO3sC,WAAW5B,EAAI,IACxConD,EAAMhzB,KAAQ2qgB,GAAY,EAAMC,GAAY,EAC5C53e,EAAMhzB,MAAoB,GAAX4qgB,IAAkB,EAAMC,GAAY,EACnD73e,EAAMhzB,MAAoB,EAAX6qgB,IAAiB,EAAiB,GAAXC,EAE1C,OAAOC,CAAW,ECTEvshB,CAAOK,GACvB,OAAO4rhB,GAAU/rhB,EAAS8rhB,EAC9B,CAEI,MAAO,CAAErwf,QAAQ,EAAMt7B,OAC3B,EAEE4rhB,GAAYA,CAAC5rhB,EAAM2rhB,IAEZ,SADDA,EAEI3rhB,aAAgBqnD,KAETrnD,EAIA,IAAIqnD,KAAK,CAACrnD,IAIjBA,aAAgBo2B,YAETp2B,EAIAA,EAAK02B,OCvDtBy1f,GAAYt+hB,OAAOC,aAAa,IA4B/B,SAASs+hB,KACZ,OAAO,IAAIC,gBAAgB,CACvBxrgB,SAAAA,CAAUyrgB,EAAQ5qR,IHmBnB,SAA8B4qR,EAAQ/6hB,GACrC05hB,IAAkBqB,EAAOtshB,gBAAgBqnD,KAClCile,EAAOtshB,KAAKqqF,cAAcE,KAAK2zL,IAAS3zL,KAAKh5F,GAE/C25hB,KACJoB,EAAOtshB,gBAAgBo2B,aAAeC,GAAOi2f,EAAOtshB,OAC9CzO,EAAS2sR,GAAQouQ,EAAOtshB,OAEnCmrhB,GAAamB,GAAQ,GAAQ3thB,IACpB6shB,KACDA,GAAe,IAAIjqhB,aAEvBhQ,EAASi6hB,GAAahthB,OAAOG,GAAS,GAE9C,CGhCY4thB,CAAqBD,GAASZ,IAC1B,MAAMc,EAAgBd,EAAcvgiB,OACpC,IAAIo/D,EAEJ,GAAIiie,EAAgB,IAChBjie,EAAS,IAAIjrD,WAAW,GACxB,IAAIo4B,SAAS6yB,EAAO7zB,QAAQ2B,SAAS,EAAGm0f,QAEvC,GAAIA,EAAgB,MAAO,CAC5Bjie,EAAS,IAAIjrD,WAAW,GACxB,MAAMigD,EAAO,IAAI7nB,SAAS6yB,EAAO7zB,QACjC6oB,EAAKlnB,SAAS,EAAG,KACjBknB,EAAKkte,UAAU,EAAGD,EACtB,KACK,CACDjie,EAAS,IAAIjrD,WAAW,GACxB,MAAMigD,EAAO,IAAI7nB,SAAS6yB,EAAO7zB,QACjC6oB,EAAKlnB,SAAS,EAAG,KACjBknB,EAAKmte,aAAa,EAAGxpZ,OAAOspZ,GAChC,CAEIF,EAAOtshB,MAA+B,kBAAhBsshB,EAAOtshB,OAC7BuqD,EAAO,IAAM,KAEjBm3M,EAAWo1J,QAAQvsW,GACnBm3M,EAAWo1J,QAAQ40H,EAAc,GAEzC,GAER,CACA,IAAIiB,GACJ,SAASvshB,GAAY8yV,GACjB,OAAOA,EAAOjyV,QAAO,CAACoM,EAAKqtC,IAAUrtC,EAAMqtC,EAAMvvD,QAAQ,EAC7D,CACA,SAASyhiB,GAAa15L,EAAQngW,GAC1B,GAAImgW,EAAO,GAAG/nW,SAAW4H,EACrB,OAAOmgW,EAAO55U,QAElB,MAAMod,EAAS,IAAIp3B,WAAWvM,GAC9B,IAAIC,EAAI,EACR,IAAK,IAAIjG,EAAI,EAAGA,EAAIgG,EAAMhG,IACtB2pC,EAAO3pC,GAAKmmW,EAAO,GAAGlgW,KAClBA,IAAMkgW,EAAO,GAAG/nW,SAChB+nW,EAAO55U,QACPtmB,EAAI,GAMZ,OAHIkgW,EAAO/nW,QAAU6H,EAAIkgW,EAAO,GAAG/nW,SAC/B+nW,EAAO,GAAKA,EAAO,GAAGnkW,MAAMiE,IAEzB0jC,CACX,CC/EO,SAASm2f,GAAQnwhB,GACtB,GAAIA,EAAK,OAWX,SAAeA,GACb,IAAK,IAAI1Q,KAAO6giB,GAAQ3giB,UACtBwQ,EAAI1Q,GAAO6giB,GAAQ3giB,UAAUF,GAE/B,OAAO0Q,CACT,CAhBkB00D,CAAM10D,EACxB,CA0BAmwhB,GAAQ3giB,UAAU0lD,GAClBi7e,GAAQ3giB,UAAUgpB,iBAAmB,SAAShB,EAAO/d,GAInD,OAHArL,KAAKgiiB,WAAahiiB,KAAKgiiB,YAAc,CAAC,GACrChiiB,KAAKgiiB,WAAW,IAAM54gB,GAASppB,KAAKgiiB,WAAW,IAAM54gB,IAAU,IAC7DxoB,KAAKyK,GACDrL,IACT,EAYA+hiB,GAAQ3giB,UAAUozI,KAAO,SAASprH,EAAO/d,GACvC,SAASy7C,IACP9mD,KAAKy1F,IAAIrsE,EAAO09B,GAChBz7C,EAAGgC,MAAMrN,KAAMgN,UACjB,CAIA,OAFA85C,EAAGz7C,GAAKA,EACRrL,KAAK8mD,GAAG19B,EAAO09B,GACR9mD,IACT,EAYA+hiB,GAAQ3giB,UAAUq0F,IAClBssc,GAAQ3giB,UAAUq/C,eAClBshf,GAAQ3giB,UAAU67D,mBAClB8ke,GAAQ3giB,UAAU+/F,oBAAsB,SAAS/3E,EAAO/d,GAItD,GAHArL,KAAKgiiB,WAAahiiB,KAAKgiiB,YAAc,CAAC,EAGlC,GAAKh1hB,UAAU3M,OAEjB,OADAL,KAAKgiiB,WAAa,CAAC,EACZhiiB,KAIT,IAUImyC,EAVA+6B,EAAYltE,KAAKgiiB,WAAW,IAAM54gB,GACtC,IAAK8jD,EAAW,OAAOltE,KAGvB,GAAI,GAAKgN,UAAU3M,OAEjB,cADOL,KAAKgiiB,WAAW,IAAM54gB,GACtBppB,KAKT,IAAK,IAAIiC,EAAI,EAAGA,EAAIirE,EAAU7sE,OAAQ4B,IAEpC,IADAkwC,EAAK+6B,EAAUjrE,MACJoJ,GAAM8mC,EAAG9mC,KAAOA,EAAI,CAC7B6hE,EAAUN,OAAO3qE,EAAG,GACpB,KACF,CASF,OAJyB,IAArBirE,EAAU7sE,eACLL,KAAKgiiB,WAAW,IAAM54gB,GAGxBppB,IACT,EAUA+hiB,GAAQ3giB,UAAUotD,KAAO,SAASplC,GAChCppB,KAAKgiiB,WAAahiiB,KAAKgiiB,YAAc,CAAC,EAKtC,IAHA,IAAI/0hB,EAAO,IAAIpD,MAAMmD,UAAU3M,OAAS,GACpC6sE,EAAYltE,KAAKgiiB,WAAW,IAAM54gB,GAE7BnnB,EAAI,EAAGA,EAAI+K,UAAU3M,OAAQ4B,IACpCgL,EAAKhL,EAAI,GAAK+K,UAAU/K,GAG1B,GAAIirE,EAEG,CAAIjrE,EAAI,EAAb,IAAK,IAAW8Q,GADhBm6D,EAAYA,EAAUjpE,MAAM,IACI5D,OAAQ4B,EAAI8Q,IAAO9Q,EACjDirE,EAAUjrE,GAAGoL,MAAMrN,KAAMiN,EADK5M,CAKlC,OAAOL,IACT,EAGA+hiB,GAAQ3giB,UAAU6giB,aAAeF,GAAQ3giB,UAAUotD,KAUnDuze,GAAQ3giB,UAAUomE,UAAY,SAASp+C,GAErC,OADAppB,KAAKgiiB,WAAahiiB,KAAKgiiB,YAAc,CAAC,EAC/BhiiB,KAAKgiiB,WAAW,IAAM54gB,IAAU,EACzC,EAUA24gB,GAAQ3giB,UAAU8giB,aAAe,SAAS94gB,GACxC,QAAUppB,KAAKwnE,UAAUp+C,GAAO/oB,MAClC,ECxKO,MAAMwkE,GACqC,oBAAZ/tB,SAAqD,oBAApBA,QAAQnD,QAE/DxB,GAAO2E,QAAQnD,UAAU8rD,KAAKttD,GAG/B,CAACA,EAAIgwf,IAAiBA,EAAahwf,EAAI,GAGzCiwf,GACW,qBAATx3f,KACAA,KAEgB,qBAAXlI,OACLA,OAGA+qG,SAAS,cAATA,GChBR,SAAS40Z,GAAKzwhB,GAAc,QAAA7E,EAAAC,UAAA3M,OAAN0wI,EAAI,IAAAlnI,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJ6jI,EAAI7jI,EAAA,GAAAF,UAAAE,GAC7B,OAAO6jI,EAAK56H,QAAO,CAACoM,EAAKpa,KACjByJ,EAAI4I,eAAerS,KACnBoa,EAAIpa,GAAKyJ,EAAIzJ,IAEVoa,IACR,CAAC,EACR,CAEA,MAAM+/gB,GAAqB3kc,GAAWl6E,WAChC8+gB,GAAuB5kc,GAAWn6E,aACjC,SAASg/gB,GAAsB5whB,EAAKozE,GACnCA,EAAKy9c,iBACL7whB,EAAIuwhB,aAAeG,GAAmB91gB,KAAKmxE,IAC3C/rF,EAAI8whB,eAAiBH,GAAqB/1gB,KAAKmxE,MAG/C/rF,EAAIuwhB,aAAexkc,GAAWl6E,WAAW+I,KAAKmxE,IAC9C/rF,EAAI8whB,eAAiB/kc,GAAWn6E,aAAagJ,KAAKmxE,IAE1D,CAkCO,SAASsuL,KACZ,OAAQlyO,KAAKsnB,MAAM9zD,SAAS,IAAI8gB,UAAU,GACtCxrB,KAAK+iF,SAASr4E,SAAS,IAAI8gB,UAAU,EAAG,EAChD,CCtDO,MAAMs0gB,WAAuB3whB,MAChCzF,WAAAA,CAAY4a,EAAQgzM,EAAav/J,GAC7B04D,MAAMnsG,GACNnnB,KAAKm6N,YAAcA,EACnBn6N,KAAK46D,QAAUA,EACf56D,KAAK8E,KAAO,gBAChB,EAEG,MAAM89hB,WAAkBb,GAO3Bx1hB,WAAAA,CAAYy4E,GACRsuC,QACAtzH,KAAKm+D,UAAW,EAChBqke,GAAsBxiiB,KAAMglF,GAC5BhlF,KAAKglF,KAAOA,EACZhlF,KAAK0yC,MAAQsyC,EAAKtyC,MAClB1yC,KAAK6iiB,OAAS79c,EAAK69c,OACnB7iiB,KAAKsgiB,gBAAkBt7c,EAAK89c,WAChC,CAUA5qX,OAAAA,CAAQ/wJ,EAAQgzM,EAAav/J,GAEzB,OADA04D,MAAM2ua,aAAa,QAAS,IAAIU,GAAex7gB,EAAQgzM,EAAav/J,IAC7D56D,IACX,CAIAshC,IAAAA,GAGI,OAFAthC,KAAK0zD,WAAa,UAClB1zD,KAAK+iiB,SACE/iiB,IACX,CAIAs0Q,KAAAA,GAKI,MAJwB,YAApBt0Q,KAAK0zD,YAAgD,SAApB1zD,KAAK0zD,aACtC1zD,KAAKgjiB,UACLhjiB,KAAKwtb,WAEFxtb,IACX,CAMAghD,IAAAA,CAAKiif,GACuB,SAApBjjiB,KAAK0zD,YACL1zD,KAAKquC,MAAM40f,EAKnB,CAMAC,MAAAA,GACIljiB,KAAK0zD,WAAa,OAClB1zD,KAAKm+D,UAAW,EAChBm1D,MAAM2ua,aAAa,OACvB,CAOAkB,MAAAA,CAAOjuhB,GACH,MAAMsshB,EAASb,GAAazrhB,EAAMlV,KAAK6iiB,OAAOhC,YAC9C7giB,KAAKojiB,SAAS5B,EAClB,CAMA4B,QAAAA,CAAS5B,GACLlua,MAAM2ua,aAAa,SAAUT,EACjC,CAMAh0G,OAAAA,CAAQ/yO,GACJz6M,KAAK0zD,WAAa,SAClB4/D,MAAM2ua,aAAa,QAASxnV,EAChC,CAMAomC,KAAAA,CAAM0hC,GAAW,CACjB8gR,SAAAA,CAAU90H,GAAoB,IAAZ77X,EAAK1lC,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACvB,OAAQuha,EACJ,MACAvua,KAAKsjiB,YACLtjiB,KAAKujiB,QACLvjiB,KAAKglF,KAAKj+D,KACV/mB,KAAKwjiB,OAAO9wf,EACpB,CACA4wf,SAAAA,GACI,MAAMt0e,EAAWhvD,KAAKglF,KAAKh2B,SAC3B,OAAkC,IAA3BA,EAAStrD,QAAQ,KAAcsrD,EAAW,IAAMA,EAAW,GACtE,CACAu0e,KAAAA,GACI,OAAIvjiB,KAAKglF,KAAKn0B,OACR7wD,KAAKglF,KAAK6U,QAAU/jF,OAA0B,MAAnB9V,KAAKglF,KAAKn0B,QACjC7wD,KAAKglF,KAAK6U,QAAqC,KAA3B/jF,OAAO9V,KAAKglF,KAAKn0B,OACpC,IAAM7wD,KAAKglF,KAAKn0B,KAGhB,EAEf,CACA2ye,MAAAA,CAAO9wf,GACH,MAAM+wf,EClIP,SAAgB7xhB,GACnB,IAAIiB,EAAM,GACV,IAAK,IAAI5Q,KAAK2P,EACNA,EAAI4I,eAAevY,KACf4Q,EAAIxS,SACJwS,GAAO,KACXA,GAAOkuB,mBAAmB9+B,GAAK,IAAM8+B,mBAAmBnvB,EAAI3P,KAGpE,OAAO4Q,CACX,CDwH6Ba,CAAOg/B,GAC5B,OAAO+wf,EAAapjiB,OAAS,IAAMojiB,EAAe,EACtD,EEzIG,MAAMC,WAAgBd,GACzBr2hB,WAAAA,GACI+mH,SAAStmH,WACThN,KAAK2jiB,UAAW,CACpB,CACA,QAAIz4hB,GACA,MAAO,SACX,CAOA63hB,MAAAA,GACI/iiB,KAAK4jiB,OACT,CAOA/iT,KAAAA,CAAM0hC,GACFviR,KAAK0zD,WAAa,UAClB,MAAMmtL,EAAQA,KACV7gP,KAAK0zD,WAAa,SAClB6uN,GAAS,EAEb,GAAIviR,KAAK2jiB,WAAa3jiB,KAAKm+D,SAAU,CACjC,IAAItO,EAAQ,EACR7vD,KAAK2jiB,WACL9ze,IACA7vD,KAAKw0I,KAAK,gBAAgB,aACpB3kF,GAASgxL,GACf,KAEC7gP,KAAKm+D,WACNtO,IACA7vD,KAAKw0I,KAAK,SAAS,aACb3kF,GAASgxL,GACf,IAER,MAEIA,GAER,CAMA+iT,KAAAA,GACI5jiB,KAAK2jiB,UAAW,EAChB3jiB,KAAK6jiB,SACL7jiB,KAAKiiiB,aAAa,OACtB,CAMAkB,MAAAA,CAAOjuhB,GN/CW4uhB,EAACC,EAAgBlD,KACnC,MAAMmD,EAAiBD,EAAez5hB,MAAM+2hB,IACtC4B,EAAU,GAChB,IAAK,IAAIhhiB,EAAI,EAAGA,EAAI+hiB,EAAe3jiB,OAAQ4B,IAAK,CAC5C,MAAMgiiB,EAAgBtD,GAAaqD,EAAe/hiB,GAAI4+hB,GAEtD,GADAoC,EAAQriiB,KAAKqjiB,GACc,UAAvBA,EAAcn/hB,KACd,KAER,CACA,OAAOm+hB,CAAO,EMoDVa,CAAc5uhB,EAAMlV,KAAK6iiB,OAAOhC,YAAYt/hB,SAd1BigiB,IAMd,GAJI,YAAcxhiB,KAAK0zD,YAA8B,SAAhB8te,EAAO18hB,MACxC9E,KAAKkjiB,SAGL,UAAY1B,EAAO18hB,KAEnB,OADA9E,KAAKwtb,QAAQ,CAAErzN,YAAa,oCACrB,EAGXn6N,KAAKojiB,SAAS5B,EAAO,IAKrB,WAAaxhiB,KAAK0zD,aAElB1zD,KAAK2jiB,UAAW,EAChB3jiB,KAAKiiiB,aAAa,gBACd,SAAWjiiB,KAAK0zD,YAChB1zD,KAAK4jiB,QAKjB,CAMAZ,OAAAA,GACI,MAAM1uR,EAAQA,KACVt0Q,KAAKquC,MAAM,CAAC,CAAEvpC,KAAM,UAAW,EAE/B,SAAW9E,KAAK0zD,WAChB4gN,IAKAt0Q,KAAKw0I,KAAK,OAAQ8/H,EAE1B,CAOAjmO,KAAAA,CAAM40f,GACFjjiB,KAAKm+D,UAAW,ENnHF+le,EAACjB,EAASx8hB,KAE5B,MAAMpG,EAAS4iiB,EAAQ5iiB,OACjB2jiB,EAAiB,IAAIn6hB,MAAMxJ,GACjC,IAAIyF,EAAQ,EACZm9hB,EAAQ1hiB,SAAQ,CAACigiB,EAAQv/hB,KAErBo+hB,GAAamB,GAAQ,GAAQZ,IACzBoD,EAAe/hiB,GAAK2+hB,IACd96hB,IAAUzF,GACZoG,EAASu9hB,EAAen9hB,KAAKw6hB,IACjC,GACF,GACJ,EMuGE6C,CAAcjB,GAAU/thB,IACpBlV,KAAKmkiB,QAAQjvhB,GAAM,KACflV,KAAKm+D,UAAW,EAChBn+D,KAAKiiiB,aAAa,QAAQ,GAC5B,GAEV,CAMA7oe,GAAAA,GACI,MAAMm1W,EAASvua,KAAKglF,KAAK6U,OAAS,QAAU,OACtCnnD,EAAQ1yC,KAAK0yC,OAAS,CAAC,EAQ7B,OANI,IAAU1yC,KAAKglF,KAAKo/c,oBACpB1xf,EAAM1yC,KAAKglF,KAAKq/c,gBAAkBp4Q,MAEjCjsR,KAAKsgiB,gBAAmB5tf,EAAMuoV,MAC/BvoV,EAAM2kD,IAAM,GAETr3F,KAAKqjiB,UAAU90H,EAAQ77X,EAClC,EC9IJ,IAAItvC,IAAQ,EACZ,IACIA,GAAkC,qBAAnBowD,gBACX,oBAAqB,IAAIA,cACjC,CACA,MAAOzhB,IAEH,CAEG,MAAMuyf,GAAUlhiB,GCLvB,SAASqzF,KAAU,CACZ,MAAM8tc,WAAgBb,GAOzBn3hB,WAAAA,CAAYy4E,GAER,GADAsuC,MAAMtuC,GACkB,qBAAbr9D,SAA0B,CACjC,MAAM68gB,EAAQ,WAAa78gB,SAASuqC,SACpC,IAAIrB,EAAOlpC,SAASkpC,KAEfA,IACDA,EAAO2ze,EAAQ,MAAQ,MAE3BxkiB,KAAK0/K,GACoB,qBAAb/3J,UACJq9D,EAAKh2B,WAAarnC,SAASqnC,UAC3B6B,IAASm0B,EAAKn0B,IAC1B,CACJ,CAQAsze,OAAAA,CAAQjvhB,EAAM7J,GACV,MAAMq7C,EAAM1mD,KAAKg/C,QAAQ,CACrBmT,OAAQ,OACRj9C,KAAMA,IAEVwxC,EAAII,GAAG,UAAWz7C,GAClBq7C,EAAII,GAAG,SAAS,CAAC29e,EAAW7pe,KACxB56D,KAAKk4K,QAAQ,iBAAkBusX,EAAW7pe,EAAQ,GAE1D,CAMAipe,MAAAA,GACI,MAAMn9e,EAAM1mD,KAAKg/C,UACjB0H,EAAII,GAAG,OAAQ9mD,KAAKmjiB,OAAO32gB,KAAKxsB,OAChC0mD,EAAII,GAAG,SAAS,CAAC29e,EAAW7pe,KACxB56D,KAAKk4K,QAAQ,iBAAkBusX,EAAW7pe,EAAQ,IAEtD56D,KAAK0kiB,QAAUh+e,CACnB,EAEG,MAAM1P,WAAgB+qf,GAOzBx1hB,WAAAA,CAAYo4hB,EAAevre,EAAK4rB,GAC5BsuC,QACAtzH,KAAK2kiB,cAAgBA,EACrBnC,GAAsBxiiB,KAAMglF,GAC5BhlF,KAAK4kiB,MAAQ5/c,EACbhlF,KAAK6kiB,QAAU7/c,EAAK7yB,QAAU,MAC9BnyD,KAAKohO,KAAOhoK,EACZp5D,KAAK27b,WAAQ76b,IAAckkF,EAAK9vE,KAAO8vE,EAAK9vE,KAAO,KACnDlV,KAAK8kiB,SACT,CAMAA,OAAAA,GACI,IAAIr3f,EACJ,MAAMu3C,EAAOq9c,GAAKriiB,KAAK4kiB,MAAO,QAAS,MAAO,MAAO,aAAc,OAAQ,KAAM,UAAW,qBAAsB,aAClH5/c,EAAK+/c,UAAY/kiB,KAAK4kiB,MAAMllX,GAC5B,MAAMnsH,EAAOvzD,KAAKk0Q,KAAOl0Q,KAAK2kiB,cAAc3/c,GAC5C,IACIzxB,EAAIjyB,KAAKthC,KAAK6kiB,QAAS7kiB,KAAKohO,MAAM,GAClC,IACI,GAAIphO,KAAK4kiB,MAAMI,aAAc,CAEzBzxe,EAAI0xe,uBAAyB1xe,EAAI0xe,uBAAsB,GACvD,IAAK,IAAIhjiB,KAAKjC,KAAK4kiB,MAAMI,aACjBhliB,KAAK4kiB,MAAMI,aAAaxqhB,eAAevY,IACvCsxD,EAAIY,iBAAiBlyD,EAAGjC,KAAK4kiB,MAAMI,aAAa/iiB,GAG5D,CACJ,CACA,MAAOM,IAAK,CACZ,GAAI,SAAWvC,KAAK6kiB,QAChB,IACItxe,EAAIY,iBAAiB,eAAgB,2BACzC,CACA,MAAO5xD,IAAK,CAEhB,IACIgxD,EAAIY,iBAAiB,SAAU,MACnC,CACA,MAAO5xD,IAAK,CACoB,QAA/BkrC,EAAKztC,KAAK4kiB,MAAMM,iBAA8B,IAAPz3f,GAAyBA,EAAG03f,WAAW5xe,GAE3E,oBAAqBA,IACrBA,EAAIc,gBAAkBr0D,KAAK4kiB,MAAMvwe,iBAEjCr0D,KAAK4kiB,MAAM9uS,iBACXviM,EAAIlwC,QAAUrjB,KAAK4kiB,MAAM9uS,gBAE7BviM,EAAI2tC,mBAAqB,KACrB,IAAIzzD,EACmB,IAAnB8lB,EAAIG,aAC4B,QAA/BjmB,EAAKztC,KAAK4kiB,MAAMM,iBAA8B,IAAPz3f,GAAyBA,EAAG23f,aAEpE7xe,EAAIg1T,kBAAkB,gBAEtB,IAAMh1T,EAAIG,aAEV,MAAQH,EAAInC,QAAU,OAASmC,EAAInC,OACnCpxD,KAAKqliB,UAKLrliB,KAAKmiiB,cAAa,KACdniiB,KAAKsliB,SAA+B,kBAAf/xe,EAAInC,OAAsBmC,EAAInC,OAAS,EAAE,GAC/D,GACP,EAEJmC,EAAIvS,KAAKhhD,KAAK27b,MAClB,CACA,MAAOp5b,IAOH,YAHAvC,KAAKmiiB,cAAa,KACdniiB,KAAKsliB,SAAS/iiB,GAAE,GACjB,EAEP,CACwB,qBAAbb,WACP1B,KAAKyhG,OAASzqD,GAAQuuf,gBACtBvuf,GAAQ21O,SAAS3sR,KAAKyhG,QAAUzhG,KAExC,CAMAsliB,QAAAA,CAASvzf,GACL/xC,KAAKiiiB,aAAa,QAASlwf,EAAK/xC,KAAKk0Q,MACrCl0Q,KAAKwliB,UAAS,EAClB,CAMAA,QAAAA,CAASC,GACL,GAAI,qBAAuBzliB,KAAKk0Q,MAAQ,OAASl0Q,KAAKk0Q,KAAtD,CAIA,GADAl0Q,KAAKk0Q,KAAKhzK,mBAAqBzK,GAC3Bgvc,EACA,IACIzliB,KAAKk0Q,KAAKlwM,OACd,CACA,MAAOzhE,IAAK,CAEQ,qBAAbb,iBACAs1C,GAAQ21O,SAAS3sR,KAAKyhG,QAEjCzhG,KAAKk0Q,KAAO,IAXZ,CAYJ,CAMAmxR,OAAAA,GACI,MAAMnwhB,EAAOlV,KAAKk0Q,KAAKx/M,aACV,OAATx/C,IACAlV,KAAKiiiB,aAAa,OAAQ/shB,GAC1BlV,KAAKiiiB,aAAa,WAClBjiiB,KAAKwliB,WAEb,CAMAxhe,KAAAA,GACIhkE,KAAKwliB,UACT,EASJ,GAPAxuf,GAAQuuf,cAAgB,EACxBvuf,GAAQ21O,SAAW,CAAC,EAMI,qBAAbjrR,SAEP,GAA2B,oBAAhBo3J,YAEPA,YAAY,WAAY4sY,SAEvB,GAAgC,oBAArBt7gB,iBAAiC,CAE7CA,iBADyB,eAAgB,GAAa,WAAa,SAChCs7gB,IAAe,EACtD,CAEJ,SAASA,KACL,IAAK,IAAIzjiB,KAAK+0C,GAAQ21O,SACd31O,GAAQ21O,SAASnyQ,eAAevY,IAChC+0C,GAAQ21O,SAAS1qR,GAAG+hE,OAGhC,CACA,MAAM2he,GAAW,WACb,MAAMpye,EAAMqye,GAAW,CACnBb,SAAS,IAEb,OAAOxxe,GAA4B,OAArBA,EAAIe,YACtB,CALiB,GAwBjB,SAASsxe,GAAW5gd,GAChB,MAAM+/c,EAAU//c,EAAK+/c,QAErB,IACI,GAAI,qBAAuBvxe,kBAAoBuxe,GAAWT,IACtD,OAAO,IAAI9we,cAEnB,CACA,MAAOjxD,IAAK,CACZ,IAAKwiiB,EACD,IACI,OAAO,IAAIpnc,GAAW,CAAC,UAAU/yF,OAAO,UAAU/D,KAAK,OAAM,oBACjE,CACA,MAAOtE,IAAK,CAEpB,CCzQA,MAAMsjiB,GAAqC,qBAAdpjd,WACI,kBAAtBA,UAAUsgV,SACmB,gBAApCtgV,UAAUsgV,QAAQhyZ,cACf,MAAM+0hB,WAAelD,GACxB,QAAI13hB,GACA,MAAO,WACX,CACA63hB,MAAAA,GACI,MAAM3pe,EAAMp5D,KAAKo5D,MACXupW,EAAY3ia,KAAKglF,KAAK29U,UAEtB39U,EAAO6gd,GACP,CAAC,EACDxD,GAAKriiB,KAAKglF,KAAM,QAAS,oBAAqB,MAAO,MAAO,aAAc,OAAQ,KAAM,UAAW,qBAAsB,eAAgB,kBAAmB,SAAU,aAAc,SAAU,uBAChMhlF,KAAKglF,KAAKggd,eACVhgd,EAAKnjC,QAAU7hD,KAAKglF,KAAKggd,cAE7B,IACIhliB,KAAK+liB,GAAK/liB,KAAKgmiB,aAAa5se,EAAKupW,EAAW39U,EAChD,CACA,MAAOjzC,IACH,OAAO/xC,KAAKiiiB,aAAa,QAASlwf,GACtC,CACA/xC,KAAK+liB,GAAGlF,WAAa7giB,KAAK6iiB,OAAOhC,WACjC7giB,KAAKimiB,mBACT,CAMAA,iBAAAA,GACIjmiB,KAAK+liB,GAAGG,OAAS,KACTlmiB,KAAKglF,KAAKmhd,WACVnmiB,KAAK+liB,GAAGK,QAAQC,QAEpBrmiB,KAAKkjiB,QAAQ,EAEjBljiB,KAAK+liB,GAAGO,QAAWC,GAAevmiB,KAAKwtb,QAAQ,CAC3CrzN,YAAa,8BACbv/J,QAAS2re,IAEbvmiB,KAAK+liB,GAAGt9V,UAAaiwB,GAAO14N,KAAKmjiB,OAAOzqU,EAAGxjN,MAC3ClV,KAAK+liB,GAAGhid,QAAWxhF,GAAMvC,KAAKk4K,QAAQ,kBAAmB31K,EAC7D,CACA8rC,KAAAA,CAAM40f,GACFjjiB,KAAKm+D,UAAW,EAGhB,IAAK,IAAIl8D,EAAI,EAAGA,EAAIghiB,EAAQ5iiB,OAAQ4B,IAAK,CACrC,MAAMu/hB,EAASyB,EAAQhhiB,GACjBukiB,EAAavkiB,IAAMghiB,EAAQ5iiB,OAAS,EAC1CggiB,GAAamB,EAAQxhiB,KAAKsgiB,gBAAiBprhB,IAIvC,IACIlV,KAAKmkiB,QAAQ3C,EAAQtshB,EACzB,CACA,MAAO3S,IACP,CACIikiB,GAGA3he,IAAS,KACL7kE,KAAKm+D,UAAW,EAChBn+D,KAAKiiiB,aAAa,QAAQ,GAC3BjiiB,KAAKmiiB,aACZ,GAER,CACJ,CACAa,OAAAA,GAC2B,qBAAZhjiB,KAAK+liB,KACZ/liB,KAAK+liB,GAAGhid,QAAU,OAClB/jF,KAAK+liB,GAAGzxR,QACRt0Q,KAAK+liB,GAAK,KAElB,CAMA3se,GAAAA,GACI,MAAMm1W,EAASvua,KAAKglF,KAAK6U,OAAS,MAAQ,KACpCnnD,EAAQ1yC,KAAK0yC,OAAS,CAAC,EAS7B,OAPI1yC,KAAKglF,KAAKo/c,oBACV1xf,EAAM1yC,KAAKglF,KAAKq/c,gBAAkBp4Q,MAGjCjsR,KAAKsgiB,iBACN5tf,EAAM2kD,IAAM,GAETr3F,KAAKqjiB,UAAU90H,EAAQ77X,EAClC,EAEJ,MAAM+zf,GAAgB9oc,GAAW+oc,WAAa/oc,GAAWgpc,aCpGlD,MAAMC,GAAa,CACtBC,UD6GG,cAAiBf,GACpBE,YAAAA,CAAa5se,EAAKupW,EAAW39U,GACzB,OAAQ6gd,GAIF,IAAIY,GAAcrte,EAAKupW,EAAW39U,GAHlC29U,EACI,IAAI8jI,GAAcrte,EAAKupW,GACvB,IAAI8jI,GAAcrte,EAEhC,CACA+qe,OAAAA,CAAQ2C,EAAS5xhB,GACblV,KAAK+liB,GAAG/kf,KAAK9rC,EACjB,GCtHA6xhB,aCMG,cAAiBnE,GACpB,QAAI13hB,GACA,MAAO,cACX,CACA63hB,MAAAA,GACI,IAEI/iiB,KAAKgniB,WAAa,IAAIC,aAAajniB,KAAKqjiB,UAAU,SAAUrjiB,KAAKglF,KAAKkid,iBAAiBlniB,KAAKkL,MAChG,CACA,MAAO6mC,IACH,OAAO/xC,KAAKiiiB,aAAa,QAASlwf,GACtC,CACA/xC,KAAKgniB,WAAWG,OACX1nc,MAAK,KACNz/F,KAAKwtb,SAAS,IAEb3hQ,OAAO95I,IACR/xC,KAAKk4K,QAAQ,qBAAsBnmI,EAAI,IAG3C/xC,KAAKgniB,WAAWI,MAAM3nc,MAAK,KACvBz/F,KAAKgniB,WAAWK,4BAA4B5nc,MAAM3qF,IAC9C,MAAMwyhB,EXqDf,SAAmCC,EAAY1G,GAC7CgB,KACDA,GAAe,IAAIrnU,aAEvB,MAAM4tI,EAAS,GACf,IAAIrgV,EAAQ,EACRy/gB,GAAkB,EAClBj/e,GAAW,EACf,OAAO,IAAIg5e,gBAAgB,CACvBxrgB,SAAAA,CAAU65B,EAAOgnN,GAEb,IADAwxF,EAAOxnW,KAAKgvD,KACC,CACT,GAAc,IAAV7nC,EAAqC,CACrC,GAAIzS,GAAY8yV,GAAU,EACtB,MAEJ,MAAM3oS,EAASqie,GAAa15L,EAAQ,GACpC7/S,EAAkC,OAAV,IAAZkX,EAAO,IACnB+ne,EAA6B,IAAZ/ne,EAAO,GAEpB13C,EADAy/gB,EAAiB,IACT,EAEgB,MAAnBA,EACG,EAGA,CAEhB,MACK,GAAc,IAAVz/gB,EAAiD,CACtD,GAAIzS,GAAY8yV,GAAU,EACtB,MAEJ,MAAMq/L,EAAc3F,GAAa15L,EAAQ,GACzCo/L,EAAiB,IAAI56f,SAAS66f,EAAY77f,OAAQ67f,EAAY57f,WAAY47f,EAAYpniB,QAAQqniB,UAAU,GACxG3/gB,EAAQ,CACZ,MACK,GAAc,IAAVA,EAAiD,CACtD,GAAIzS,GAAY8yV,GAAU,EACtB,MAEJ,MAAMq/L,EAAc3F,GAAa15L,EAAQ,GACnC3zS,EAAO,IAAI7nB,SAAS66f,EAAY77f,OAAQ67f,EAAY57f,WAAY47f,EAAYpniB,QAC5E4tB,EAAIwmC,EAAKzmB,UAAU,GACzB,GAAI/f,EAAIprB,KAAKqrC,IAAI,EAAG,IAAW,EAAG,CAE9B0oO,EAAWo1J,QAAQk0H,IACnB,KACJ,CACAsH,EAAiBv5gB,EAAIprB,KAAKqrC,IAAI,EAAG,IAAMumB,EAAKzmB,UAAU,GACtDjmB,EAAQ,CACZ,KACK,CACD,GAAIzS,GAAY8yV,GAAUo/L,EACtB,MAEJ,MAAMtyhB,EAAO4shB,GAAa15L,EAAQo/L,GAClC5wR,EAAWo1J,QAAQ20H,GAAap4e,EAAWrzC,EAAO2shB,GAAahthB,OAAOK,GAAO2rhB,IAC7E94gB,EAAQ,CACZ,CACA,GAAuB,IAAnBy/gB,GAAwBA,EAAiBD,EAAY,CACrD3wR,EAAWo1J,QAAQk0H,IACnB,KACJ,CACJ,CACJ,GAER,CWxHsCyH,CAA0B7xhB,OAAOkqB,iBAAkBhgC,KAAK6iiB,OAAOhC,YAC/E/8c,EAAShvE,EAAOgwD,SAAS8ie,YAAYN,GAAe79K,YACpDo+K,EAAgBvG,KACtBuG,EAAc/ie,SAASgje,OAAOhzhB,EAAOqpD,UACrCn+D,KAAK+niB,QAAUF,EAAc1pe,SAAS6pe,YACtC,MAAMn5e,EAAOA,KACTi1B,EACKj1B,OACA4wC,MAAKpjF,IAAqB,IAApB,KAAE+kC,EAAI,MAAEh+C,GAAOiZ,EAClB+kC,IAGJphD,KAAKojiB,SAAShgiB,GACdyrD,IAAM,IAELg9H,OAAO95I,OACV,EAEN8c,IACA,MAAM2ye,EAAS,CAAE18hB,KAAM,QACnB9E,KAAK0yC,MAAMuoV,MACXumK,EAAOtshB,KAAO,WAAWlV,KAAK0yC,MAAMuoV,SAExCj7X,KAAK+niB,QAAQ15f,MAAMmzf,GAAQ/hc,MAAK,IAAMz/F,KAAKkjiB,UAAS,GACtD,GAEV,CACA70f,KAAAA,CAAM40f,GACFjjiB,KAAKm+D,UAAW,EAChB,IAAK,IAAIl8D,EAAI,EAAGA,EAAIghiB,EAAQ5iiB,OAAQ4B,IAAK,CACrC,MAAMu/hB,EAASyB,EAAQhhiB,GACjBukiB,EAAavkiB,IAAMghiB,EAAQ5iiB,OAAS,EAC1CL,KAAK+niB,QAAQ15f,MAAMmzf,GAAQ/hc,MAAK,KACxB+mc,GACA3he,IAAS,KACL7kE,KAAKm+D,UAAW,EAChBn+D,KAAKiiiB,aAAa,QAAQ,GAC3BjiiB,KAAKmiiB,aACZ,GAER,CACJ,CACAa,OAAAA,GACI,IAAIv1f,EACuB,QAA1BA,EAAKztC,KAAKgniB,kBAA+B,IAAPv5f,GAAyBA,EAAG6mO,OACnE,GDxEA2zR,QF8OG,cAAkB1D,GACrBh4hB,WAAAA,CAAYy4E,GACRsuC,MAAMtuC,GACN,MAAM89c,EAAc99c,GAAQA,EAAK89c,YACjC9iiB,KAAKsgiB,eAAiBqF,KAAY7C,CACtC,CACA9jf,OAAAA,GAAmB,IAAXgmC,EAAIh4E,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEZ,OADA9J,OAAOD,OAAO+hF,EAAM,CAAE06F,GAAI1/K,KAAK0/K,IAAM1/K,KAAKglF,MACnC,IAAIhuC,GAAQ4uf,GAAY5liB,KAAKo5D,MAAO4rB,EAC/C,II1OEl3D,GAAK,sPACL6jB,GAAQ,CACV,SAAU,WAAY,YAAa,WAAY,OAAQ,WAAY,OAAQ,OAAQ,WAAY,OAAQ,YAAa,OAAQ,QAAS,UAElI,SAAS5qC,GAAM8L,GAClB,GAAIA,EAAIxS,OAAS,IACb,KAAM,eAEV,MAAM8xF,EAAMt/E,EAAK0jB,EAAI1jB,EAAInP,QAAQ,KAAMnB,EAAIsQ,EAAInP,QAAQ,MAC7C,GAAN6yB,IAAiB,GAANh0B,IACXsQ,EAAMA,EAAIwb,UAAU,EAAGkI,GAAK1jB,EAAIwb,UAAUkI,EAAGh0B,GAAGc,QAAQ,KAAM,KAAOwP,EAAIwb,UAAU9rB,EAAGsQ,EAAIxS,SAE9F,IAAI+1B,EAAItI,GAAGtkB,KAAKqJ,GAAO,IAAKumD,EAAM,CAAC,EAAGn3D,EAAI,GAC1C,KAAOA,KACHm3D,EAAIznB,GAAM1vC,IAAMm0B,EAAEn0B,IAAM,GAU5B,OARU,GAANs0B,IAAiB,GAANh0B,IACX62D,EAAIx4B,OAASuxD,EACb/4B,EAAIjM,KAAOiM,EAAIjM,KAAK9+B,UAAU,EAAG+qC,EAAIjM,KAAK9sD,OAAS,GAAGgD,QAAQ,KAAM,KACpE+1D,EAAI8ue,UAAY9ue,EAAI8ue,UAAU7kiB,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,KAAM,KAC9E+1D,EAAI+ue,SAAU,GAElB/ue,EAAIgve,UAIR,SAAmBx2hB,EAAKmV,GACpB,MAAMshhB,EAAO,WAAYzzZ,EAAQ7tH,EAAK1jB,QAAQgliB,EAAM,KAAK/9hB,MAAM,KACvC,KAApByc,EAAK9iB,MAAM,EAAG,IAA6B,IAAhB8iB,EAAK1mB,QAChCu0I,EAAMhoE,OAAO,EAAG,GAEE,KAAlB7lD,EAAK9iB,OAAO,IACZ2wI,EAAMhoE,OAAOgoE,EAAMv0I,OAAS,EAAG,GAEnC,OAAOu0I,CACX,CAboBwzZ,CAAUhve,EAAKA,EAAU,MACzCA,EAAIkve,SAaR,SAAkBlve,EAAK1mB,GACnB,MAAMx9B,EAAO,CAAC,EAMd,OALAw9B,EAAMrvC,QAAQ,6BAA6B,SAAUkliB,EAAIC,EAAIC,GACrDD,IACAtzhB,EAAKszhB,GAAMC,EAEnB,IACOvzhB,CACX,CArBmBozhB,CAASlve,EAAKA,EAAW,OACjCA,CACX,CCrCA,MAAMsve,GAAiD,oBAArBt+gB,kBACC,oBAAxB+2E,oBACLwnc,GAA0B,GAC5BD,IAGAt+gB,iBAAiB,WAAW,KACxBu+gB,GAAwBpniB,SAASirE,GAAaA,KAAW,IAC1D,GAyBA,MAAMo8d,WAA6B7G,GAOtCx1hB,WAAAA,CAAY6sD,EAAK4rB,GAiBb,GAhBAsuC,QACAtzH,KAAK6giB,WX7BoB,cW8BzB7giB,KAAK6oiB,YAAc,GACnB7oiB,KAAK8oiB,eAAiB,EACtB9oiB,KAAK+oiB,eAAiB,EACtB/oiB,KAAKgpiB,cAAgB,EACrBhpiB,KAAKipiB,aAAe,EAKpBjpiB,KAAKkpiB,iBAAmBp3c,IACpB14B,GAAO,kBAAoBA,IAC3B4rB,EAAO5rB,EACPA,EAAM,MAENA,EAAK,CACL,MAAM+ve,EAAYpiiB,GAAMqyD,GACxB4rB,EAAKh2B,SAAWm6e,EAAUh8e,KAC1B63B,EAAK6U,OACsB,UAAvBsvc,EAAUj3e,UAA+C,QAAvBi3e,EAAUj3e,SAChD8yB,EAAKn0B,KAAOs4e,EAAUt4e,KAClBs4e,EAAUz2f,QACVsyC,EAAKtyC,MAAQy2f,EAAUz2f,MAC/B,MACSsyC,EAAK73B,OACV63B,EAAKh2B,SAAWjoD,GAAMi+E,EAAK73B,MAAMA,MAErCq1e,GAAsBxiiB,KAAMglF,GAC5BhlF,KAAK65F,OACD,MAAQ7U,EAAK6U,OACP7U,EAAK6U,OACe,qBAAblyE,UAA4B,WAAaA,SAASuqC,SAC/D8yB,EAAKh2B,WAAag2B,EAAKn0B,OAEvBm0B,EAAKn0B,KAAO7wD,KAAK65F,OAAS,MAAQ,MAEtC75F,KAAKgvD,SACDg2B,EAAKh2B,WACoB,qBAAbrnC,SAA2BA,SAASqnC,SAAW,aAC/DhvD,KAAK6wD,KACDm0B,EAAKn0B,OACoB,qBAAblpC,UAA4BA,SAASkpC,KACvClpC,SAASkpC,KACT7wD,KAAK65F,OACD,MACA,MAClB75F,KAAK4miB,WAAa,GAClB5miB,KAAKopiB,kBAAoB,CAAC,EAC1Bpkd,EAAK4hd,WAAWrliB,SAASywB,IACrB,MAAMq3gB,EAAgBr3gB,EAAE5wB,UAAU8J,KAClClL,KAAK4miB,WAAWhmiB,KAAKyoiB,GACrBrpiB,KAAKopiB,kBAAkBC,GAAiBr3gB,CAAC,IAE7ChyB,KAAKglF,KAAO9hF,OAAOD,OAAO,CACtB8jB,KAAM,aACN47D,OAAO,EACPtuB,iBAAiB,EACjBi1e,SAAS,EACTjF,eAAgB,IAChBkF,iBAAiB,EACjBC,kBAAkB,EAClBC,oBAAoB,EACpBC,kBAAmB,CACf9tR,UAAW,MAEfsrR,iBAAkB,CAAC,EACnByC,qBAAqB,GACtB3kd,GACHhlF,KAAKglF,KAAKj+D,KACN/mB,KAAKglF,KAAKj+D,KAAK1jB,QAAQ,MAAO,KACzBrD,KAAKglF,KAAKwkd,iBAAmB,IAAM,IACb,kBAApBxpiB,KAAKglF,KAAKtyC,QACjB1yC,KAAKglF,KAAKtyC,MRhGf,SAAgBuuC,GACnB,IAAI2od,EAAM,CAAC,EACPhhZ,EAAQ3nE,EAAG32E,MAAM,KACrB,IAAK,IAAIrI,EAAI,EAAGgtB,EAAI25H,EAAMvoJ,OAAQ4B,EAAIgtB,EAAGhtB,IAAK,CAC1C,IAAIy9Z,EAAO92Q,EAAM3mJ,GAAGqI,MAAM,KAC1Bs/hB,EAAI3pd,mBAAmBy/U,EAAK,KAAOz/U,mBAAmBy/U,EAAK,GAC/D,CACA,OAAOkqI,CACX,CQwF8B/0hB,CAAO7U,KAAKglF,KAAKtyC,QAEnCg2f,KACI1oiB,KAAKglF,KAAK2kd,sBAIV3piB,KAAK6piB,2BAA6B,KAC1B7piB,KAAKsxM,YAELtxM,KAAKsxM,UAAUr0I,qBACfj9D,KAAKsxM,UAAUgjE,QACnB,EAEJlqP,iBAAiB,eAAgBpqB,KAAK6piB,4BAA4B,IAEhD,cAAlB7piB,KAAKgvD,WACLhvD,KAAK8piB,sBAAwB,KACzB9piB,KAAK+piB,SAAS,kBAAmB,CAC7B5vU,YAAa,2BACf,EAENwuU,GAAwB/niB,KAAKZ,KAAK8piB,yBAGtC9piB,KAAKglF,KAAK3wB,kBACVr0D,KAAKgqiB,gBAAaC,GAEtBjqiB,KAAKkqiB,OACT,CAQAC,eAAAA,CAAgBj/hB,GACZ,MAAMwnC,EAAQxvC,OAAOD,OAAO,CAAC,EAAGjD,KAAKglF,KAAKtyC,OAE1CA,EAAM03f,IbPU,EaShB13f,EAAM4+J,UAAYpmM,EAEdlL,KAAK0jC,KACLgP,EAAMuoV,IAAMj7X,KAAK0jC,IACrB,MAAMshD,EAAO9hF,OAAOD,OAAO,CAAC,EAAGjD,KAAKglF,KAAM,CACtCtyC,QACAmwf,OAAQ7iiB,KACRgvD,SAAUhvD,KAAKgvD,SACf6qC,OAAQ75F,KAAK65F,OACbhpC,KAAM7wD,KAAK6wD,MACZ7wD,KAAKglF,KAAKkid,iBAAiBh8hB,IAC9B,OAAO,IAAIlL,KAAKopiB,kBAAkBl+hB,GAAM85E,EAC5C,CAMAkld,KAAAA,GACI,GAA+B,IAA3BlqiB,KAAK4miB,WAAWvmiB,OAKhB,YAHAL,KAAKmiiB,cAAa,KACdniiB,KAAKiiiB,aAAa,QAAS,0BAA0B,GACtD,GAGP,MAAMoH,EAAgBrpiB,KAAKglF,KAAKukd,iBAC5BX,GAAqByB,wBACqB,IAA1CrqiB,KAAK4miB,WAAWljiB,QAAQ,aACtB,YACA1D,KAAK4miB,WAAW,GACtB5miB,KAAK0zD,WAAa,UAClB,MAAM49I,EAAYtxM,KAAKmqiB,gBAAgBd,GACvC/3V,EAAUhwK,OACVthC,KAAKsqiB,aAAah5V,EACtB,CAMAg5V,YAAAA,CAAah5V,GACLtxM,KAAKsxM,WACLtxM,KAAKsxM,UAAUr0I,qBAGnBj9D,KAAKsxM,UAAYA,EAEjBA,EACKxqJ,GAAG,QAAS9mD,KAAKuqiB,SAAS/9gB,KAAKxsB,OAC/B8mD,GAAG,SAAU9mD,KAAKwqiB,UAAUh+gB,KAAKxsB,OACjC8mD,GAAG,QAAS9mD,KAAKsliB,SAAS94gB,KAAKxsB,OAC/B8mD,GAAG,SAAU3/B,GAAWnnB,KAAK+piB,SAAS,kBAAmB5ihB,IAClE,CAMA+7gB,MAAAA,GACIljiB,KAAK0zD,WAAa,OAClBk1e,GAAqByB,sBACjB,cAAgBrqiB,KAAKsxM,UAAUpmM,KACnClL,KAAKiiiB,aAAa,QAClBjiiB,KAAKwC,OACT,CAMAgoiB,SAAAA,CAAUhJ,GACN,GAAI,YAAcxhiB,KAAK0zD,YACnB,SAAW1zD,KAAK0zD,YAChB,YAAc1zD,KAAK0zD,WAInB,OAHA1zD,KAAKiiiB,aAAa,SAAUT,GAE5BxhiB,KAAKiiiB,aAAa,aACVT,EAAO18hB,MACX,IAAK,OACD9E,KAAKyqiB,YAAY7thB,KAAK7V,MAAMy6hB,EAAOtshB,OACnC,MACJ,IAAK,OACDlV,KAAK0qiB,YAAY,QACjB1qiB,KAAKiiiB,aAAa,QAClBjiiB,KAAKiiiB,aAAa,QAClBjiiB,KAAK2qiB,oBACL,MACJ,IAAK,QACD,MAAM54f,EAAM,IAAI//B,MAAM,gBAEtB+/B,EAAIjR,KAAO0ggB,EAAOtshB,KAClBlV,KAAKsliB,SAASvzf,GACd,MACJ,IAAK,UACD/xC,KAAKiiiB,aAAa,OAAQT,EAAOtshB,MACjClV,KAAKiiiB,aAAa,UAAWT,EAAOtshB,MAMpD,CAOAu1hB,WAAAA,CAAYv1hB,GACRlV,KAAKiiiB,aAAa,YAAa/shB,GAC/BlV,KAAK0jC,GAAKxuB,EAAK+lX,IACfj7X,KAAKsxM,UAAU5+J,MAAMuoV,IAAM/lX,EAAK+lX,IAChCj7X,KAAK+oiB,cAAgB7zhB,EAAK01hB,aAC1B5qiB,KAAKgpiB,aAAe9zhB,EAAK21hB,YACzB7qiB,KAAKipiB,YAAc/zhB,EAAKqyhB,WACxBvniB,KAAKkjiB,SAED,WAAaljiB,KAAK0zD,YAEtB1zD,KAAK2qiB,mBACT,CAMAA,iBAAAA,GACI3qiB,KAAK0iiB,eAAe1iiB,KAAK8qiB,mBACzB,MAAMjqhB,EAAQ7gB,KAAK+oiB,cAAgB/oiB,KAAKgpiB,aACxChpiB,KAAKkpiB,iBAAmBnvf,KAAKsnB,MAAQxgD,EACrC7gB,KAAK8qiB,kBAAoB9qiB,KAAKmiiB,cAAa,KACvCniiB,KAAK+piB,SAAS,eAAe,GAC9BlphB,GACC7gB,KAAKglF,KAAKmhd,WACVnmiB,KAAK8qiB,kBAAkBzE,OAE/B,CAMAkE,QAAAA,GACIvqiB,KAAK6oiB,YAAYj8d,OAAO,EAAG5sE,KAAK8oiB,gBAIhC9oiB,KAAK8oiB,eAAiB,EAClB,IAAM9oiB,KAAK6oiB,YAAYxoiB,OACvBL,KAAKiiiB,aAAa,SAGlBjiiB,KAAKwC,OAEb,CAMAA,KAAAA,GACI,GAAI,WAAaxC,KAAK0zD,YAClB1zD,KAAKsxM,UAAUnzI,WACdn+D,KAAK+qiB,WACN/qiB,KAAK6oiB,YAAYxoiB,OAAQ,CACzB,MAAM4iiB,EAAUjjiB,KAAKgriB,sBACrBhriB,KAAKsxM,UAAUtwJ,KAAKiif,GAGpBjjiB,KAAK8oiB,eAAiB7F,EAAQ5iiB,OAC9BL,KAAKiiiB,aAAa,QACtB,CACJ,CAOA+I,mBAAAA,GAII,KAH+BhriB,KAAKipiB,aACR,YAAxBjpiB,KAAKsxM,UAAUpmM,MACflL,KAAK6oiB,YAAYxoiB,OAAS,GAE1B,OAAOL,KAAK6oiB,YAEhB,IAAIz/U,EAAc,EAClB,IAAK,IAAInnN,EAAI,EAAGA,EAAIjC,KAAK6oiB,YAAYxoiB,OAAQ4B,IAAK,CAC9C,MAAMiT,EAAOlV,KAAK6oiB,YAAY5miB,GAAGiT,KAIjC,GAHIA,IACAk0M,GVxUO,kBADIx3M,EUyUesD,GVlU1C,SAAoBrC,GAChB,IAAIq6B,EAAI,EAAG7sC,EAAS,EACpB,IAAK,IAAI4B,EAAI,EAAGgtB,EAAIpc,EAAIxS,OAAQ4B,EAAIgtB,EAAGhtB,IACnCirC,EAAIr6B,EAAIhP,WAAW5B,GACfirC,EAAI,IACJ7sC,GAAU,EAEL6sC,EAAI,KACT7sC,GAAU,EAEL6sC,EAAI,OAAUA,GAAK,MACxB7sC,GAAU,GAGV4B,IACA5B,GAAU,GAGlB,OAAOA,CACX,CAxBe4qiB,CAAWr5hB,GAGf/O,KAAKgnE,KAPQ,MAOFj4D,EAAI85B,YAAc95B,EAAI3J,QUsU5BhG,EAAI,GAAKmnN,EAAcppN,KAAKipiB,YAC5B,OAAOjpiB,KAAK6oiB,YAAY5kiB,MAAM,EAAGhC,GAErCmnN,GAAe,CACnB,CV/UD,IAAoBx3M,EUgVnB,OAAO5R,KAAK6oiB,WAChB,CAUcqC,eAAAA,GACV,IAAKlriB,KAAKkpiB,iBACN,OAAO,EACX,MAAMiC,EAAapxf,KAAKsnB,MAAQrhE,KAAKkpiB,iBAOrC,OANIiC,IACAnriB,KAAKkpiB,iBAAmB,EACxBrke,IAAS,KACL7kE,KAAK+piB,SAAS,eAAe,GAC9B/piB,KAAKmiiB,eAELgJ,CACX,CASA98f,KAAAA,CAAMgF,EAAKvzC,EAASuL,GAEhB,OADArL,KAAK0qiB,YAAY,UAAWr3f,EAAKvzC,EAASuL,GACnCrL,IACX,CASAghD,IAAAA,CAAK3N,EAAKvzC,EAASuL,GAEf,OADArL,KAAK0qiB,YAAY,UAAWr3f,EAAKvzC,EAASuL,GACnCrL,IACX,CAUA0qiB,WAAAA,CAAY5liB,EAAMoQ,EAAMpV,EAASuL,GAS7B,GARI,oBAAsB6J,IACtB7J,EAAK6J,EACLA,OAAOpU,GAEP,oBAAsBhB,IACtBuL,EAAKvL,EACLA,EAAU,MAEV,YAAcE,KAAK0zD,YAAc,WAAa1zD,KAAK0zD,WACnD,QAEJ5zD,EAAUA,GAAW,CAAC,GACdsriB,UAAW,IAAUtriB,EAAQsriB,SACrC,MAAM5J,EAAS,CACX18hB,KAAMA,EACNoQ,KAAMA,EACNpV,QAASA,GAEbE,KAAKiiiB,aAAa,eAAgBT,GAClCxhiB,KAAK6oiB,YAAYjoiB,KAAK4giB,GAClBn2hB,GACArL,KAAKw0I,KAAK,QAASnpI,GACvBrL,KAAKwC,OACT,CAIA8xQ,KAAAA,GACI,MAAMA,EAAQA,KACVt0Q,KAAK+piB,SAAS,gBACd/piB,KAAKsxM,UAAUgjE,OAAO,EAEpB+2R,EAAkBA,KACpBrriB,KAAKy1F,IAAI,UAAW41c,GACpBrriB,KAAKy1F,IAAI,eAAgB41c,GACzB/2R,GAAO,EAELg3R,EAAiBA,KAEnBtriB,KAAKw0I,KAAK,UAAW62Z,GACrBrriB,KAAKw0I,KAAK,eAAgB62Z,EAAgB,EAqB9C,MAnBI,YAAcrriB,KAAK0zD,YAAc,SAAW1zD,KAAK0zD,aACjD1zD,KAAK0zD,WAAa,UACd1zD,KAAK6oiB,YAAYxoiB,OACjBL,KAAKw0I,KAAK,SAAS,KACXx0I,KAAK+qiB,UACLO,IAGAh3R,GACJ,IAGCt0Q,KAAK+qiB,UACVO,IAGAh3R,KAGDt0Q,IACX,CAMAsliB,QAAAA,CAASvzf,GAEL,GADA62f,GAAqByB,uBAAwB,EACzCrqiB,KAAKglF,KAAKumd,kBACVvriB,KAAK4miB,WAAWvmiB,OAAS,GACL,YAApBL,KAAK0zD,WAEL,OADA1zD,KAAK4miB,WAAWp4gB,QACTxuB,KAAKkqiB,QAEhBlqiB,KAAKiiiB,aAAa,QAASlwf,GAC3B/xC,KAAK+piB,SAAS,kBAAmBh4f,EACrC,CAMAg4f,QAAAA,CAAS5ihB,EAAQgzM,GACb,GAAI,YAAcn6N,KAAK0zD,YACnB,SAAW1zD,KAAK0zD,YAChB,YAAc1zD,KAAK0zD,WAAY,CAS/B,GAPA1zD,KAAK0iiB,eAAe1iiB,KAAK8qiB,mBAEzB9qiB,KAAKsxM,UAAUr0I,mBAAmB,SAElCj9D,KAAKsxM,UAAUgjE,QAEft0Q,KAAKsxM,UAAUr0I,qBACXyre,KACI1oiB,KAAK6piB,4BACL1oc,oBAAoB,eAAgBnhG,KAAK6piB,4BAA4B,GAErE7piB,KAAK8piB,uBAAuB,CAC5B,MAAM7niB,EAAI0miB,GAAwBjliB,QAAQ1D,KAAK8piB,wBACpC,IAAP7niB,GACA0miB,GAAwB/7d,OAAO3qE,EAAG,EAE1C,CAGJjC,KAAK0zD,WAAa,SAElB1zD,KAAK0jC,GAAK,KAEV1jC,KAAKiiiB,aAAa,QAAS96gB,EAAQgzM,GAGnCn6N,KAAK6oiB,YAAc,GACnB7oiB,KAAK8oiB,eAAiB,CAC1B,CACJ,EAEJF,GAAqB12e,SbhYG,EawZjB,MAAMs5e,WAA0B5C,GACnCr8hB,WAAAA,GACI+mH,SAAStmH,WACThN,KAAKyriB,UAAY,EACrB,CACAvI,MAAAA,GAEI,GADA5va,MAAM4va,SACF,SAAWljiB,KAAK0zD,YAAc1zD,KAAKglF,KAAKskd,QACxC,IAAK,IAAIrniB,EAAI,EAAGA,EAAIjC,KAAKyriB,UAAUpriB,OAAQ4B,IACvCjC,KAAK0riB,OAAO1riB,KAAKyriB,UAAUxpiB,GAGvC,CAOAypiB,MAAAA,CAAOxgiB,GACH,IAAIomM,EAAYtxM,KAAKmqiB,gBAAgBj/hB,GACjC09D,GAAS,EACbgge,GAAqByB,uBAAwB,EAC7C,MAAMsB,EAAkBA,KAChB/ie,IAEJ0oI,EAAUtwJ,KAAK,CAAC,CAAEl8C,KAAM,OAAQoQ,KAAM,WACtCo8L,EAAU98D,KAAK,UAAWnhG,IACtB,IAAIu1B,EAEJ,GAAI,SAAWv1B,EAAIvuC,MAAQ,UAAYuuC,EAAIn+B,KAAM,CAG7C,GAFAlV,KAAK+qiB,WAAY,EACjB/qiB,KAAKiiiB,aAAa,YAAa3wV,IAC1BA,EACD,OACJs3V,GAAqByB,sBACjB,cAAgB/4V,EAAUpmM,KAC9BlL,KAAKsxM,UAAUuvC,OAAM,KACbj4K,GAEA,WAAa5oE,KAAK0zD,aAEtBuV,IACAjpE,KAAKsqiB,aAAah5V,GAClBA,EAAUtwJ,KAAK,CAAC,CAAEl8C,KAAM,aACxB9E,KAAKiiiB,aAAa,UAAW3wV,GAC7BA,EAAY,KACZtxM,KAAK+qiB,WAAY,EACjB/qiB,KAAKwC,QAAO,GAEpB,KACK,CACD,MAAMuvC,EAAM,IAAI//B,MAAM,eAEtB+/B,EAAIu/J,UAAYA,EAAUpmM,KAC1BlL,KAAKiiiB,aAAa,eAAgBlwf,EACtC,KACF,EAEN,SAAS65f,IACDhje,IAGJA,GAAS,EACTK,IACAqoI,EAAUgjE,QACVhjE,EAAY,KAChB,CAEA,MAAMvtH,EAAWhyC,IACb,MAAMz2B,EAAQ,IAAItJ,MAAM,gBAAkB+/B,GAE1Cz2B,EAAMg2L,UAAYA,EAAUpmM,KAC5B0giB,IACA5riB,KAAKiiiB,aAAa,eAAgB3mhB,EAAM,EAE5C,SAASuwhB,IACL9nd,EAAQ,mBACZ,CAEA,SAASuid,IACLvid,EAAQ,gBACZ,CAEA,SAAS+nd,EAAUxuY,GACXg0C,GAAah0C,EAAGpyJ,OAASomM,EAAUpmM,MACnC0giB,GAER,CAEA,MAAM3ie,EAAUA,KACZqoI,EAAU7wJ,eAAe,OAAQkrf,GACjCr6V,EAAU7wJ,eAAe,QAASsjC,GAClCutH,EAAU7wJ,eAAe,QAASorf,GAClC7riB,KAAKy1F,IAAI,QAAS6wc,GAClBtmiB,KAAKy1F,IAAI,YAAaq2c,EAAU,EAEpCx6V,EAAU98D,KAAK,OAAQm3Z,GACvBr6V,EAAU98D,KAAK,QAASzwD,GACxButH,EAAU98D,KAAK,QAASq3Z,GACxB7riB,KAAKw0I,KAAK,QAAS8xZ,GACnBtmiB,KAAKw0I,KAAK,YAAas3Z,IACyB,IAA5C9riB,KAAKyriB,UAAU/niB,QAAQ,iBACd,iBAATwH,EAEAlL,KAAKmiiB,cAAa,KACTv5d,GACD0oI,EAAUhwK,MACd,GACD,KAGHgwK,EAAUhwK,MAElB,CACAmpgB,WAAAA,CAAYv1hB,GACRlV,KAAKyriB,UAAYzriB,KAAK+riB,gBAAgB72hB,EAAK82hB,UAC3C14a,MAAMm3a,YAAYv1hB,EACtB,CAOA62hB,eAAAA,CAAgBC,GACZ,MAAMC,EAAmB,GACzB,IAAK,IAAIhqiB,EAAI,EAAGA,EAAI+piB,EAAS3riB,OAAQ4B,KAC5BjC,KAAK4miB,WAAWljiB,QAAQsoiB,EAAS/piB,KAClCgqiB,EAAiBrriB,KAAKoriB,EAAS/piB,IAEvC,OAAOgqiB,CACX,EAqBG,MAAMC,WAAeV,GACxBj/hB,WAAAA,CAAY6sD,GACR,MAAM4mE,EAAmB,kBAAR5mE,EAAmBA,EADnBpsD,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,IAEhBgzH,EAAE4ma,YACF5ma,EAAE4ma,YAAyC,kBAApB5ma,EAAE4ma,WAAW,MACrC5ma,EAAE4ma,YAAc5ma,EAAE4ma,YAAc,CAAC,UAAW,YAAa,iBACpDt9hB,KAAK+/hB,GAAkB8C,GAAmB9C,KAC1Cv5gB,QAAQkC,KAAQA,KAEzBshG,MAAMl6D,EAAK4mE,EACf,ECrtBJ,MAAMoga,GAA+C,oBAAhB90f,YAM/B/9B,GAAWrK,OAAO9B,UAAUmM,SAC5B4yhB,GAAiC,oBAAT5je,MACT,qBAATA,MACoB,6BAAxBhvD,GAASzD,KAAKyyD,MAChB6ve,GAAiC,oBAATz2N,MACT,qBAATA,MACoB,6BAAxBpoU,GAASzD,KAAK6rU,MAMf,SAASptR,GAAS32C,GACrB,OAASwuhB,KAA0BxuhB,aAAe05B,aAlBtC15B,IACyB,oBAAvB05B,YAAYC,OACpBD,YAAYC,OAAO35B,GACnBA,EAAIg6B,kBAAkBN,YAeqCC,CAAO35B,KACnEuuhB,IAAkBvuhB,aAAe2qD,MACjC6ve,IAAkBx6hB,aAAe+jU,IAC1C,CACO,SAAS02N,GAAUz6hB,EAAK41C,GAC3B,IAAK51C,GAAsB,kBAARA,EACf,OAAO,EAEX,GAAI/H,MAAMiI,QAAQF,GAAM,CACpB,IAAK,IAAI3P,EAAI,EAAGgtB,EAAIrd,EAAIvR,OAAQ4B,EAAIgtB,EAAGhtB,IACnC,GAAIoqiB,GAAUz6hB,EAAI3P,IACd,OAAO,EAGf,OAAO,CACX,CACA,GAAIsmD,GAAS32C,GACT,OAAO,EAEX,GAAIA,EAAI41C,QACkB,oBAAf51C,EAAI41C,QACU,IAArBx6C,UAAU3M,OACV,OAAOgsiB,GAAUz6hB,EAAI41C,UAAU,GAEnC,IAAK,MAAMtmD,KAAO0Q,EACd,GAAI1O,OAAO9B,UAAUoZ,eAAe1Q,KAAK8H,EAAK1Q,IAAQmriB,GAAUz6hB,EAAI1Q,IAChE,OAAO,EAGf,OAAO,CACX,CCzCO,SAASoriB,GAAkB9K,GAC9B,MAAMlye,EAAU,GACVi9e,EAAa/K,EAAOtshB,KACpBs3hB,EAAOhL,EAGb,OAFAgL,EAAKt3hB,KAAOu3hB,GAAmBF,EAAYj9e,GAC3Ck9e,EAAKE,YAAcp9e,EAAQjvD,OACpB,CAAEmhiB,OAAQgL,EAAMl9e,QAASA,EACpC,CACA,SAASm9e,GAAmBv3hB,EAAMo6C,GAC9B,IAAKp6C,EACD,OAAOA,EACX,GAAIqzC,GAASrzC,GAAO,CAChB,MAAMmvJ,EAAc,CAAEsoY,cAAc,EAAM75c,IAAKxjC,EAAQjvD,QAEvD,OADAivD,EAAQ1uD,KAAKsU,GACNmvJ,CACX,CACK,GAAIx6J,MAAMiI,QAAQoD,GAAO,CAC1B,MAAMmzM,EAAU,IAAIx+M,MAAMqL,EAAK7U,QAC/B,IAAK,IAAI4B,EAAI,EAAGA,EAAIiT,EAAK7U,OAAQ4B,IAC7BomN,EAAQpmN,GAAKwqiB,GAAmBv3hB,EAAKjT,GAAIqtD,GAE7C,OAAO+4J,CACX,CACK,GAAoB,kBAATnzM,KAAuBA,aAAgB6kC,MAAO,CAC1D,MAAMsuK,EAAU,CAAC,EACjB,IAAK,MAAMnnN,KAAOgU,EACVhS,OAAO9B,UAAUoZ,eAAe1Q,KAAKoL,EAAMhU,KAC3CmnN,EAAQnnN,GAAOuriB,GAAmBv3hB,EAAKhU,GAAMouD,IAGrD,OAAO+4J,CACX,CACA,OAAOnzM,CACX,CASO,SAAS03hB,GAAkBpL,EAAQlye,GAGtC,OAFAkye,EAAOtshB,KAAO23hB,GAAmBrL,EAAOtshB,KAAMo6C,UACvCkye,EAAOkL,YACPlL,CACX,CACA,SAASqL,GAAmB33hB,EAAMo6C,GAC9B,IAAKp6C,EACD,OAAOA,EACX,GAAIA,IAA8B,IAAtBA,EAAKy3hB,aAAuB,CAIpC,GAHyC,kBAAbz3hB,EAAK49E,KAC7B59E,EAAK49E,KAAO,GACZ59E,EAAK49E,IAAMxjC,EAAQjvD,OAEnB,OAAOivD,EAAQp6C,EAAK49E,KAGpB,MAAM,IAAI9gF,MAAM,sBAExB,CACK,GAAInI,MAAMiI,QAAQoD,GACnB,IAAK,IAAIjT,EAAI,EAAGA,EAAIiT,EAAK7U,OAAQ4B,IAC7BiT,EAAKjT,GAAK4qiB,GAAmB33hB,EAAKjT,GAAIqtD,QAGzC,GAAoB,kBAATp6C,EACZ,IAAK,MAAMhU,KAAOgU,EACVhS,OAAO9B,UAAUoZ,eAAe1Q,KAAKoL,EAAMhU,KAC3CgU,EAAKhU,GAAO2riB,GAAmB33hB,EAAKhU,GAAMouD,IAItD,OAAOp6C,CACX,CC5EA,MAAM43hB,GAAkB,CACpB,UACA,gBACA,aACA,gBACA,cACA,kBAOS56e,GAAW,EACjB,IAAI66e,IACX,SAAWA,GACPA,EAAWA,EAAoB,QAAI,GAAK,UACxCA,EAAWA,EAAuB,WAAI,GAAK,aAC3CA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAgB,IAAI,GAAK,MACpCA,EAAWA,EAA0B,cAAI,GAAK,gBAC9CA,EAAWA,EAAyB,aAAI,GAAK,eAC7CA,EAAWA,EAAuB,WAAI,GAAK,YAC9C,CARD,CAQGA,KAAeA,GAAa,CAAC,IAIzB,MAAMC,GAMTzgiB,WAAAA,CAAY0giB,GACRjtiB,KAAKitiB,SAAWA,CACpB,CAOAv5hB,MAAAA,CAAO9B,GACH,OAAIA,EAAI9M,OAASioiB,GAAWG,OAASt7hB,EAAI9M,OAASioiB,GAAWI,MACrDd,GAAUz6hB,GAWX,CAAC5R,KAAKotiB,eAAex7hB,IAVb5R,KAAKqtiB,eAAe,CACvBvoiB,KAAM8M,EAAI9M,OAASioiB,GAAWG,MACxBH,GAAWO,aACXP,GAAWQ,WACjBC,IAAK57hB,EAAI47hB,IACTt4hB,KAAMtD,EAAIsD,KACVwuB,GAAI9xB,EAAI8xB,IAKxB,CAIA0pgB,cAAAA,CAAex7hB,GAEX,IAAIiB,EAAM,GAAKjB,EAAI9M,KAmBnB,OAjBI8M,EAAI9M,OAASioiB,GAAWO,cACxB17hB,EAAI9M,OAASioiB,GAAWQ,aACxB16hB,GAAOjB,EAAI86hB,YAAc,KAIzB96hB,EAAI47hB,KAAO,MAAQ57hB,EAAI47hB,MACvB36hB,GAAOjB,EAAI47hB,IAAM,KAGjB,MAAQ57hB,EAAI8xB,KACZ7wB,GAAOjB,EAAI8xB,IAGX,MAAQ9xB,EAAIsD,OACZrC,GAAO+J,KAAKjW,UAAUiL,EAAIsD,KAAMlV,KAAKitiB,WAElCp6hB,CACX,CAMAw6hB,cAAAA,CAAez7hB,GACX,MAAM67hB,EAAiBnB,GAAkB16hB,GACnC46hB,EAAOxsiB,KAAKotiB,eAAeK,EAAejM,QAC1Clye,EAAUm+e,EAAen+e,QAE/B,OADAA,EAAQ5a,QAAQ83f,GACTl9e,CACX,EAGJ,SAASgmF,GAASlyI,GACd,MAAiD,oBAA1CF,OAAO9B,UAAUmM,SAASzD,KAAK1G,EAC1C,CAMO,MAAMsqiB,WAAgB3L,GAMzBx1hB,WAAAA,CAAYohiB,GACRr6a,QACAtzH,KAAK2tiB,QAAUA,CACnB,CAMA9hf,GAAAA,CAAIj6C,GACA,IAAI4vhB,EACJ,GAAmB,kBAAR5vhB,EAAkB,CACzB,GAAI5R,KAAK4tiB,cACL,MAAM,IAAI57hB,MAAM,mDAEpBwvhB,EAASxhiB,KAAK6tiB,aAAaj8hB,GAC3B,MAAMk8hB,EAAgBtM,EAAO18hB,OAASioiB,GAAWO,aAC7CQ,GAAiBtM,EAAO18hB,OAASioiB,GAAWQ,YAC5C/L,EAAO18hB,KAAOgpiB,EAAgBf,GAAWG,MAAQH,GAAWI,IAE5DntiB,KAAK4tiB,cAAgB,IAAIG,GAAoBvM,GAElB,IAAvBA,EAAOkL,aACPp5a,MAAM2ua,aAAa,UAAWT,IAKlClua,MAAM2ua,aAAa,UAAWT,EAEtC,KACK,KAAIj5e,GAAS32C,KAAQA,EAAI4+B,OAe1B,MAAM,IAAIx+B,MAAM,iBAAmBJ,GAbnC,IAAK5R,KAAK4tiB,cACN,MAAM,IAAI57hB,MAAM,oDAGhBwvhB,EAASxhiB,KAAK4tiB,cAAcI,eAAep8hB,GACvC4vhB,IAEAxhiB,KAAK4tiB,cAAgB,KACrBt6a,MAAM2ua,aAAa,UAAWT,GAM1C,CACJ,CAOAqM,YAAAA,CAAah7hB,GACT,IAAI5Q,EAAI,EAER,MAAMo0B,EAAI,CACNvxB,KAAMgR,OAAOjD,EAAIsb,OAAO,KAE5B,QAA2BrtB,IAAvBisiB,GAAW12gB,EAAEvxB,MACb,MAAM,IAAIkN,MAAM,uBAAyBqkB,EAAEvxB,MAG/C,GAAIuxB,EAAEvxB,OAASioiB,GAAWO,cACtBj3gB,EAAEvxB,OAASioiB,GAAWQ,WAAY,CAClC,MAAMp5hB,EAAQlS,EAAI,EAClB,KAA2B,MAApB4Q,EAAIsb,SAASlsB,IAAcA,GAAK4Q,EAAIxS,SAC3C,MAAMu5D,EAAM/mD,EAAIwb,UAAUla,EAAOlS,GACjC,GAAI23D,GAAO9jD,OAAO8jD,IAA0B,MAAlB/mD,EAAIsb,OAAOlsB,GACjC,MAAM,IAAI+P,MAAM,uBAEpBqkB,EAAEq2gB,YAAc52hB,OAAO8jD,EAC3B,CAEA,GAAI,MAAQ/mD,EAAIsb,OAAOlsB,EAAI,GAAI,CAC3B,MAAMkS,EAAQlS,EAAI,EAClB,OAASA,GAAG,CAER,GAAI,MADM4Q,EAAIsb,OAAOlsB,GAEjB,MACJ,GAAIA,IAAM4Q,EAAIxS,OACV,KACR,CACAg2B,EAAEm3gB,IAAM36hB,EAAIwb,UAAUla,EAAOlS,EACjC,MAEIo0B,EAAEm3gB,IAAM,IAGZ,MAAMpoiB,EAAOyN,EAAIsb,OAAOlsB,EAAI,GAC5B,GAAI,KAAOmD,GAAQ0Q,OAAO1Q,IAASA,EAAM,CACrC,MAAM+O,EAAQlS,EAAI,EAClB,OAASA,GAAG,CACR,MAAMirC,EAAIr6B,EAAIsb,OAAOlsB,GACrB,GAAI,MAAQirC,GAAKp3B,OAAOo3B,IAAMA,EAAG,GAC3BjrC,EACF,KACJ,CACA,GAAIA,IAAM4Q,EAAIxS,OACV,KACR,CACAg2B,EAAEqN,GAAK5tB,OAAOjD,EAAIwb,UAAUla,EAAOlS,EAAI,GAC3C,CAEA,GAAI4Q,EAAIsb,SAASlsB,GAAI,CACjB,MAAMi1D,EAAUl3D,KAAKiuiB,SAASp7hB,EAAI/O,OAAO7B,IACzC,IAAIyriB,GAAQQ,eAAe73gB,EAAEvxB,KAAMoyD,GAI/B,MAAM,IAAIllD,MAAM,mBAHhBqkB,EAAEnhB,KAAOgiD,CAKjB,CACA,OAAO7gC,CACX,CACA43gB,QAAAA,CAASp7hB,GACL,IACI,OAAO+J,KAAK7V,MAAM8L,EAAK7S,KAAK2tiB,QAChC,CACA,MAAOpriB,IACH,OAAO,CACX,CACJ,CACA,qBAAO2riB,CAAeppiB,EAAMoyD,GACxB,OAAQpyD,GACJ,KAAKioiB,GAAWoB,QACZ,OAAO74Z,GAASp+E,GACpB,KAAK61e,GAAWqB,WACZ,YAAmBttiB,IAAZo2D,EACX,KAAK61e,GAAWsB,cACZ,MAA0B,kBAAZn3e,GAAwBo+E,GAASp+E,GACnD,KAAK61e,GAAWG,MAChB,KAAKH,GAAWO,aACZ,OAAQzjiB,MAAMiI,QAAQolD,KACK,kBAAfA,EAAQ,IACW,kBAAfA,EAAQ,KAC6B,IAAzC41e,GAAgBppiB,QAAQwzD,EAAQ,KAChD,KAAK61e,GAAWI,IAChB,KAAKJ,GAAWQ,WACZ,OAAO1jiB,MAAMiI,QAAQolD,GAEjC,CAIAm8E,OAAAA,GACQrzI,KAAK4tiB,gBACL5tiB,KAAK4tiB,cAAcU,yBACnBtuiB,KAAK4tiB,cAAgB,KAE7B,EAUJ,MAAMG,GACFxhiB,WAAAA,CAAYi1hB,GACRxhiB,KAAKwhiB,OAASA,EACdxhiB,KAAKsvD,QAAU,GACftvD,KAAKuuiB,UAAY/M,CACrB,CASAwM,cAAAA,CAAeQ,GAEX,GADAxuiB,KAAKsvD,QAAQ1uD,KAAK4tiB,GACdxuiB,KAAKsvD,QAAQjvD,SAAWL,KAAKuuiB,UAAU7B,YAAa,CAEpD,MAAMlL,EAASoL,GAAkB5siB,KAAKuuiB,UAAWvuiB,KAAKsvD,SAEtD,OADAtvD,KAAKsuiB,yBACE9M,CACX,CACA,OAAO,IACX,CAIA8M,sBAAAA,GACItuiB,KAAKuuiB,UAAY,KACjBvuiB,KAAKsvD,QAAU,EACnB,ECrTG,SAASxI,GAAGl1C,EAAK8mN,EAAIrtN,GAExB,OADAuG,EAAIk1C,GAAG4xK,EAAIrtN,GACJ,WACHuG,EAAI6jF,IAAIijI,EAAIrtN,EAChB,CACJ,CCEA,MAAMyhiB,GAAkB5piB,OAAOshI,OAAO,CAClCiqa,QAAS,EACTC,cAAe,EACfp8Q,WAAY,EACZq8Q,cAAe,EAEfh5Z,YAAa,EACbl1F,eAAgB,IA0Bb,MAAMyrf,WAAenK,GAIxBx1hB,WAAAA,CAAYqiiB,EAAIpB,EAAKxod,GACjBsuC,QAeAtzH,KAAK6uiB,WAAY,EAKjB7uiB,KAAK8uiB,WAAY,EAIjB9uiB,KAAK+uiB,cAAgB,GAIrB/uiB,KAAKgviB,WAAa,GAOlBhviB,KAAKiviB,OAAS,GAKdjviB,KAAKkviB,UAAY,EACjBlviB,KAAKq+E,IAAM,EAwBXr+E,KAAKmviB,KAAO,CAAC,EACbnviB,KAAK+yH,MAAQ,CAAC,EACd/yH,KAAK4uiB,GAAKA,EACV5uiB,KAAKwtiB,IAAMA,EACPxod,GAAQA,EAAKhG,OACbh/E,KAAKg/E,KAAOgG,EAAKhG,MAErBh/E,KAAK4kiB,MAAQ1hiB,OAAOD,OAAO,CAAC,EAAG+hF,GAC3BhlF,KAAK4uiB,GAAGQ,cACRpviB,KAAKshC,MACb,CAeA,gBAAI+tgB,GACA,OAAQrviB,KAAK6uiB,SACjB,CAMAS,SAAAA,GACI,GAAItviB,KAAKuviB,KACL,OACJ,MAAMX,EAAK5uiB,KAAK4uiB,GAChB5uiB,KAAKuviB,KAAO,CACRzof,GAAG8nf,EAAI,OAAQ5uiB,KAAKkmiB,OAAO15gB,KAAKxsB,OAChC8mD,GAAG8nf,EAAI,SAAU5uiB,KAAKwviB,SAAShjhB,KAAKxsB,OACpC8mD,GAAG8nf,EAAI,QAAS5uiB,KAAK+jF,QAAQv3D,KAAKxsB,OAClC8mD,GAAG8nf,EAAI,QAAS5uiB,KAAKsmiB,QAAQ95gB,KAAKxsB,OAE1C,CAkBA,UAAIqZ,GACA,QAASrZ,KAAKuviB,IAClB,CAWAd,OAAAA,GACI,OAAIzuiB,KAAK6uiB,YAET7uiB,KAAKsviB,YACAtviB,KAAK4uiB,GAAkB,eACxB5uiB,KAAK4uiB,GAAGttgB,OACR,SAAWthC,KAAK4uiB,GAAGa,aACnBzviB,KAAKkmiB,UALElmiB,IAOf,CAIAshC,IAAAA,GACI,OAAOthC,KAAKyuiB,SAChB,CAgBAztf,IAAAA,GAAc,QAAAj0C,EAAAC,UAAA3M,OAAN4M,EAAI,IAAApD,MAAAkD,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAJD,EAAIC,GAAAF,UAAAE,GAGR,OAFAD,EAAKynC,QAAQ,WACb10C,KAAKwuD,KAAKnhD,MAAMrN,KAAMiN,GACfjN,IACX,CAkBAwuD,IAAAA,CAAKkqK,GACD,IAAIjrL,EAAIi+P,EAAIkmG,EACZ,GAAIk7J,GAAgBtyhB,eAAek+M,GAC/B,MAAM,IAAI1mN,MAAM,IAAM0mN,EAAGnrN,WAAa,8BACzC,QAAA8yB,EAAArzB,UAAA3M,OAJO4M,EAAI,IAAApD,MAAAw2B,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJrzB,EAAIqzB,EAAA,GAAAtzB,UAAAszB,GAMZ,GADArzB,EAAKynC,QAAQgkL,GACT14N,KAAK4kiB,MAAM8K,UAAY1viB,KAAK+yH,MAAM48a,YAAc3viB,KAAK+yH,MAAM68a,SAE3D,OADA5viB,KAAK6viB,YAAY5iiB,GACVjN,KAEX,MAAMwhiB,EAAS,CACX18hB,KAAMioiB,GAAWG,MACjBh4hB,KAAMjI,EAEVu0hB,QAAiB,CAAC,GAGlB,GAFAA,EAAO1hiB,QAAQsriB,UAAmC,IAAxBpriB,KAAK+yH,MAAMq4a,SAEjC,oBAAsBn+hB,EAAKA,EAAK5M,OAAS,GAAI,CAC7C,MAAMqjC,EAAK1jC,KAAKq+E,MACVyxd,EAAM7iiB,EAAKgxD,MACjBj+D,KAAK+viB,qBAAqBrsgB,EAAIosgB,GAC9BtO,EAAO99f,GAAKA,CAChB,CACA,MAAMssgB,EAAyG,QAAlFtkQ,EAA+B,QAAzBj+P,EAAKztC,KAAK4uiB,GAAGpsd,cAA2B,IAAP/0C,OAAgB,EAASA,EAAG6jK,iBAA8B,IAAPo6F,OAAgB,EAASA,EAAGvtO,SAC7I8xe,EAAcjwiB,KAAK6uiB,aAAyC,QAAzBj9J,EAAK5xY,KAAK4uiB,GAAGpsd,cAA2B,IAAPovT,OAAgB,EAASA,EAAGs5J,mBAYtG,OAXsBlriB,KAAK+yH,MAAM68a,WAAaI,IAGrCC,GACLjwiB,KAAKkwiB,wBAAwB1O,GAC7BxhiB,KAAKwhiB,OAAOA,IAGZxhiB,KAAKgviB,WAAWpuiB,KAAK4giB,IAEzBxhiB,KAAK+yH,MAAQ,CAAC,EACP/yH,IACX,CAIA+viB,oBAAAA,CAAqBrsgB,EAAIosgB,GAAK,IACtBrigB,EADsB1tC,EAAA,KAE1B,MAAMsjB,EAAwC,QAA7BoqB,EAAKztC,KAAK+yH,MAAM1vG,eAA4B,IAAPoqB,EAAgBA,EAAKztC,KAAK4kiB,MAAMuL,WACtF,QAAgBrviB,IAAZuiB,EAEA,YADArjB,KAAKmviB,KAAKzrgB,GAAMosgB,GAIpB,MAAM3qT,EAAQnlP,KAAK4uiB,GAAGzM,cAAa,YACxBniiB,KAAKmviB,KAAKzrgB,GACjB,IAAK,IAAIzhC,EAAI,EAAGA,EAAIjC,KAAKgviB,WAAW3uiB,OAAQ4B,IACpCjC,KAAKgviB,WAAW/siB,GAAGyhC,KAAOA,GAC1B1jC,KAAKgviB,WAAWpie,OAAO3qE,EAAG,GAGlC6tiB,EAAIhmiB,KAAK9J,KAAM,IAAIgS,MAAM,2BAA2B,GACrDqR,GACGhY,EAAK,WAEPtL,EAAK6uiB,GAAGlM,eAAev9S,GAAO,QAAAn1C,EAAAhjM,UAAA3M,OAFnB4M,EAAI,IAAApD,MAAAmmM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJhjM,EAAIgjM,GAAAjjM,UAAAijM,GAGf6/V,EAAIziiB,MAAMtN,EAAMkN,EACpB,EACA5B,EAAG+kiB,WAAY,EACfpwiB,KAAKmviB,KAAKzrgB,GAAMr4B,CACpB,CAiBAgliB,WAAAA,CAAY33U,GAAa,QAAAtoB,EAAApjM,UAAA3M,OAAN4M,EAAI,IAAApD,MAAAumM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJpjM,EAAIojM,EAAA,GAAArjM,UAAAqjM,GACnB,OAAO,IAAIv5J,SAAQ,CAACnD,EAAS0yB,KACzB,MAAMh7D,EAAKA,CAACk7Z,EAAMxZ,IACPwZ,EAAOlgW,EAAOkgW,GAAQ5yX,EAAQo5W,GAEzC1hZ,EAAG+kiB,WAAY,EACfnjiB,EAAKrM,KAAKyK,GACVrL,KAAKwuD,KAAKkqK,KAAOzrN,EAAK,GAE9B,CAMA4iiB,WAAAA,CAAY5iiB,GAAM,IAAAkjO,EAAA,KACd,IAAI2/T,EACiC,oBAA1B7iiB,EAAKA,EAAK5M,OAAS,KAC1ByviB,EAAM7iiB,EAAKgxD,OAEf,MAAMuje,EAAS,CACX99f,GAAI1jC,KAAKkviB,YACToB,SAAU,EACVr+W,SAAS,EACThlL,OACA8lH,MAAO7vH,OAAOD,OAAO,CAAE0siB,WAAW,GAAQ3viB,KAAK+yH,QAEnD9lH,EAAKrM,MAAK,SAACmxC,GACP,GAAIyvf,IAAWrxT,EAAK8+T,OAAO,GAEvB,OAGJ,GADyB,OAARl9f,EAETyvf,EAAO8O,SAAWngU,EAAKy0T,MAAM8K,UAC7Bv/T,EAAK8+T,OAAOzghB,QACRshhB,GACAA,EAAI/9f,SAMZ,GADAo+L,EAAK8+T,OAAOzghB,QACRshhB,EAAK,SAAAr/V,EAAAzjM,UAAA3M,OAhBEkwiB,EAAY,IAAA1miB,MAAA4mM,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAZ6/V,EAAY7/V,EAAA,GAAA1jM,UAAA0jM,GAiBnBo/V,EAAI,QAASS,EACjB,CAGJ,OADA/O,EAAOvvW,SAAU,EACVk+C,EAAKqgU,aAChB,IACAxwiB,KAAKiviB,OAAOruiB,KAAK4giB,GACjBxhiB,KAAKwwiB,aACT,CAOAA,WAAAA,GAA2B,IAAfjhR,EAAKviR,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,IAAAA,UAAA,GACb,IAAKhN,KAAK6uiB,WAAoC,IAAvB7uiB,KAAKiviB,OAAO5uiB,OAC/B,OAEJ,MAAMmhiB,EAASxhiB,KAAKiviB,OAAO,GACvBzN,EAAOvvW,UAAYs9F,IAGvBiyQ,EAAOvvW,SAAU,EACjBuvW,EAAO8O,WACPtwiB,KAAK+yH,MAAQyua,EAAOzua,MACpB/yH,KAAKwuD,KAAKnhD,MAAMrN,KAAMwhiB,EAAOv0hB,MACjC,CAOAu0hB,MAAAA,CAAOA,GACHA,EAAOgM,IAAMxtiB,KAAKwtiB,IAClBxtiB,KAAK4uiB,GAAG9H,QAAQtF,EACpB,CAMA0E,MAAAA,GAC4B,mBAAblmiB,KAAKg/E,KACZh/E,KAAKg/E,MAAM9pE,IACPlV,KAAKywiB,mBAAmBv7hB,EAAK,IAIjClV,KAAKywiB,mBAAmBzwiB,KAAKg/E,KAErC,CAOAyxd,kBAAAA,CAAmBv7hB,GACflV,KAAKwhiB,OAAO,CACR18hB,KAAMioiB,GAAWoB,QACjBj5hB,KAAMlV,KAAK0wiB,KACLxtiB,OAAOD,OAAO,CAAEwhN,IAAKzkN,KAAK0wiB,KAAMrpiB,OAAQrH,KAAK2wiB,aAAez7hB,GAC5DA,GAEd,CAOA6uE,OAAAA,CAAQhyC,GACC/xC,KAAK6uiB,WACN7uiB,KAAKiiiB,aAAa,gBAAiBlwf,EAE3C,CAQAu0f,OAAAA,CAAQn/gB,EAAQgzM,GACZn6N,KAAK6uiB,WAAY,SACV7uiB,KAAK0jC,GACZ1jC,KAAKiiiB,aAAa,aAAc96gB,EAAQgzM,GACxCn6N,KAAK4wiB,YACT,CAOAA,UAAAA,GACI1tiB,OAAO4pB,KAAK9sB,KAAKmviB,MAAM5tiB,SAASmiC,IAE5B,IADmB1jC,KAAKgviB,WAAWhgY,MAAMwyX,GAAWz+hB,OAAOy+hB,EAAO99f,MAAQA,IACzD,CAEb,MAAMosgB,EAAM9viB,KAAKmviB,KAAKzrgB,UACf1jC,KAAKmviB,KAAKzrgB,GACbosgB,EAAIM,WACJN,EAAIhmiB,KAAK9J,KAAM,IAAIgS,MAAM,gCAEjC,IAER,CAOAw9hB,QAAAA,CAAShO,GAEL,GADsBA,EAAOgM,MAAQxtiB,KAAKwtiB,IAG1C,OAAQhM,EAAO18hB,MACX,KAAKioiB,GAAWoB,QACR3M,EAAOtshB,MAAQsshB,EAAOtshB,KAAK+lX,IAC3Bj7X,KAAK6wiB,UAAUrP,EAAOtshB,KAAK+lX,IAAKumK,EAAOtshB,KAAKuvM,KAG5CzkN,KAAKiiiB,aAAa,gBAAiB,IAAIjwhB,MAAM,8LAEjD,MACJ,KAAK+6hB,GAAWG,MAChB,KAAKH,GAAWO,aACZttiB,KAAK8wiB,QAAQtP,GACb,MACJ,KAAKuL,GAAWI,IAChB,KAAKJ,GAAWQ,WACZvtiB,KAAK+wiB,MAAMvP,GACX,MACJ,KAAKuL,GAAWqB,WACZpuiB,KAAKgxiB,eACL,MACJ,KAAKjE,GAAWsB,cACZruiB,KAAKqzI,UACL,MAAMthG,EAAM,IAAI//B,MAAMwvhB,EAAOtshB,KAAKo+B,SAElCvB,EAAI78B,KAAOsshB,EAAOtshB,KAAKA,KACvBlV,KAAKiiiB,aAAa,gBAAiBlwf,GAG/C,CAOA++f,OAAAA,CAAQtP,GACJ,MAAMv0hB,EAAOu0hB,EAAOtshB,MAAQ,GACxB,MAAQsshB,EAAO99f,IACfz2B,EAAKrM,KAAKZ,KAAK8viB,IAAItO,EAAO99f,KAE1B1jC,KAAK6uiB,UACL7uiB,KAAK8jE,UAAU72D,GAGfjN,KAAK+uiB,cAAcnuiB,KAAKsC,OAAOshI,OAAOv3H,GAE9C,CACA62D,SAAAA,CAAU72D,GACN,GAAIjN,KAAKixiB,eAAiBjxiB,KAAKixiB,cAAc5wiB,OAAQ,CACjD,MAAMmnE,EAAYxnE,KAAKixiB,cAAchtiB,QACrC,IAAK,MAAMuoE,KAAYhF,EACnBgF,EAASn/D,MAAMrN,KAAMiN,EAE7B,CACAqmH,MAAM9kE,KAAKnhD,MAAMrN,KAAMiN,GACnBjN,KAAK0wiB,MAAQzjiB,EAAK5M,QAA2C,kBAA1B4M,EAAKA,EAAK5M,OAAS,KACtDL,KAAK2wiB,YAAc1jiB,EAAKA,EAAK5M,OAAS,GAE9C,CAMAyviB,GAAAA,CAAIpsgB,GACA,MAAMkH,EAAO5qC,KACb,IAAI+kE,GAAO,EACX,OAAO,WAEH,IAAIA,EAAJ,CAEAA,GAAO,EAAK,QAAA6rI,EAAA5jM,UAAA3M,OAJI4M,EAAI,IAAApD,MAAA+mM,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ5jM,EAAI4jM,GAAA7jM,UAAA6jM,GAKpBjmK,EAAK42f,OAAO,CACR18hB,KAAMioiB,GAAWI,IACjBzpgB,GAAIA,EACJxuB,KAAMjI,GALA,CAOd,CACJ,CAOA8jiB,KAAAA,CAAMvP,GACF,MAAMsO,EAAM9viB,KAAKmviB,KAAK3N,EAAO99f,IACV,oBAARosgB,WAGJ9viB,KAAKmviB,KAAK3N,EAAO99f,IAEpBosgB,EAAIM,WACJ5O,EAAOtshB,KAAKw/B,QAAQ,MAGxBo7f,EAAIziiB,MAAMrN,KAAMwhiB,EAAOtshB,MAC3B,CAMA27hB,SAAAA,CAAUntgB,EAAI+gL,GACVzkN,KAAK0jC,GAAKA,EACV1jC,KAAK8uiB,UAAYrqV,GAAOzkN,KAAK0wiB,OAASjsV,EACtCzkN,KAAK0wiB,KAAOjsV,EACZzkN,KAAK6uiB,WAAY,EACjB7uiB,KAAKkxiB,eACLlxiB,KAAKiiiB,aAAa,WAClBjiiB,KAAKwwiB,aAAY,EACrB,CAMAU,YAAAA,GACIlxiB,KAAK+uiB,cAAcxtiB,SAAS0L,GAASjN,KAAK8jE,UAAU72D,KACpDjN,KAAK+uiB,cAAgB,GACrB/uiB,KAAKgviB,WAAWztiB,SAASigiB,IACrBxhiB,KAAKkwiB,wBAAwB1O,GAC7BxhiB,KAAKwhiB,OAAOA,EAAO,IAEvBxhiB,KAAKgviB,WAAa,EACtB,CAMAgC,YAAAA,GACIhxiB,KAAKqzI,UACLrzI,KAAKsmiB,QAAQ,uBACjB,CAQAjzZ,OAAAA,GACQrzI,KAAKuviB,OAELvviB,KAAKuviB,KAAKhuiB,SAAS4viB,GAAeA,MAClCnxiB,KAAKuviB,UAAOzuiB,GAEhBd,KAAK4uiB,GAAa,SAAE5uiB,KACxB,CAiBAsyR,UAAAA,GAUI,OATItyR,KAAK6uiB,WACL7uiB,KAAKwhiB,OAAO,CAAE18hB,KAAMioiB,GAAWqB,aAGnCpuiB,KAAKqzI,UACDrzI,KAAK6uiB,WAEL7uiB,KAAKsmiB,QAAQ,wBAEVtmiB,IACX,CAMAs0Q,KAAAA,GACI,OAAOt0Q,KAAKsyR,YAChB,CAUA84Q,QAAAA,CAASA,GAEL,OADApriB,KAAK+yH,MAAMq4a,SAAWA,EACfpriB,IACX,CAUA,YAAI4viB,GAEA,OADA5viB,KAAK+yH,MAAM68a,UAAW,EACf5viB,IACX,CAcAqjB,OAAAA,CAAQA,GAEJ,OADArjB,KAAK+yH,MAAM1vG,QAAUA,EACdrjB,IACX,CAYAoxiB,KAAAA,CAAM5ke,GAGF,OAFAxsE,KAAKixiB,cAAgBjxiB,KAAKixiB,eAAiB,GAC3CjxiB,KAAKixiB,cAAcrwiB,KAAK4rE,GACjBxsE,IACX,CAYAqxiB,UAAAA,CAAW7ke,GAGP,OAFAxsE,KAAKixiB,cAAgBjxiB,KAAKixiB,eAAiB,GAC3CjxiB,KAAKixiB,cAAcv8f,QAAQ83B,GACpBxsE,IACX,CAmBAsxiB,MAAAA,CAAO9ke,GACH,IAAKxsE,KAAKixiB,cACN,OAAOjxiB,KAEX,GAAIwsE,EAAU,CACV,MAAMhF,EAAYxnE,KAAKixiB,cACvB,IAAK,IAAIhviB,EAAI,EAAGA,EAAIulE,EAAUnnE,OAAQ4B,IAClC,GAAIuqE,IAAahF,EAAUvlE,GAEvB,OADAulE,EAAUoF,OAAO3qE,EAAG,GACbjC,IAGnB,MAEIA,KAAKixiB,cAAgB,GAEzB,OAAOjxiB,IACX,CAKAuxiB,YAAAA,GACI,OAAOvxiB,KAAKixiB,eAAiB,EACjC,CAcAO,aAAAA,CAAchle,GAGV,OAFAxsE,KAAKyxiB,sBAAwBzxiB,KAAKyxiB,uBAAyB,GAC3DzxiB,KAAKyxiB,sBAAsB7wiB,KAAK4rE,GACzBxsE,IACX,CAcA0xiB,kBAAAA,CAAmBlle,GAGf,OAFAxsE,KAAKyxiB,sBAAwBzxiB,KAAKyxiB,uBAAyB,GAC3DzxiB,KAAKyxiB,sBAAsB/8f,QAAQ83B,GAC5BxsE,IACX,CAmBA2xiB,cAAAA,CAAenle,GACX,IAAKxsE,KAAKyxiB,sBACN,OAAOzxiB,KAEX,GAAIwsE,EAAU,CACV,MAAMhF,EAAYxnE,KAAKyxiB,sBACvB,IAAK,IAAIxviB,EAAI,EAAGA,EAAIulE,EAAUnnE,OAAQ4B,IAClC,GAAIuqE,IAAahF,EAAUvlE,GAEvB,OADAulE,EAAUoF,OAAO3qE,EAAG,GACbjC,IAGnB,MAEIA,KAAKyxiB,sBAAwB,GAEjC,OAAOzxiB,IACX,CAKA4xiB,oBAAAA,GACI,OAAO5xiB,KAAKyxiB,uBAAyB,EACzC,CAQAvB,uBAAAA,CAAwB1O,GACpB,GAAIxhiB,KAAKyxiB,uBAAyBzxiB,KAAKyxiB,sBAAsBpxiB,OAAQ,CACjE,MAAMmnE,EAAYxnE,KAAKyxiB,sBAAsBxtiB,QAC7C,IAAK,MAAMuoE,KAAYhF,EACnBgF,EAASn/D,MAAMrN,KAAMwhiB,EAAOtshB,KAEpC,CACJ,ECr2BG,SAAS28hB,GAAQ7sd,GACpBA,EAAOA,GAAQ,CAAC,EAChBhlF,KAAKqgI,GAAKr7C,EAAKv3D,KAAO,IACtBztB,KAAKwtB,IAAMw3D,EAAKx3D,KAAO,IACvBxtB,KAAK8xiB,OAAS9sd,EAAK8sd,QAAU,EAC7B9xiB,KAAK+xiB,OAAS/sd,EAAK+sd,OAAS,GAAK/sd,EAAK+sd,QAAU,EAAI/sd,EAAK+sd,OAAS,EAClE/xiB,KAAKgyiB,SAAW,CACpB,CAOAH,GAAQzwiB,UAAUse,SAAW,WACzB,IAAI2gH,EAAKrgI,KAAKqgI,GAAKx9H,KAAKqrC,IAAIluC,KAAK8xiB,OAAQ9xiB,KAAKgyiB,YAC9C,GAAIhyiB,KAAK+xiB,OAAQ,CACb,IAAIE,EAAOpviB,KAAK+iF,SACZssd,EAAYrviB,KAAKgrC,MAAMokgB,EAAOjyiB,KAAK+xiB,OAAS1xa,GAChDA,EAAoC,IAAN,EAAxBx9H,KAAKgrC,MAAa,GAAPokgB,IAAuB5xa,EAAK6xa,EAAY7xa,EAAK6xa,CAClE,CACA,OAAgC,EAAzBrviB,KAAK4qB,IAAI4yG,EAAIrgI,KAAKwtB,IAC7B,EAMAqkhB,GAAQzwiB,UAAUy+B,MAAQ,WACtB7/B,KAAKgyiB,SAAW,CACpB,EAMAH,GAAQzwiB,UAAU+wiB,OAAS,SAAU1khB,GACjCztB,KAAKqgI,GAAK5yG,CACd,EAMAokhB,GAAQzwiB,UAAUgxiB,OAAS,SAAU5khB,GACjCxtB,KAAKwtB,IAAMA,CACf,EAMAqkhB,GAAQzwiB,UAAUixiB,UAAY,SAAUN,GACpC/xiB,KAAK+xiB,OAASA,CAClB,EC3DO,MAAMO,WAAgBvQ,GACzBx1hB,WAAAA,CAAY6sD,EAAK4rB,GACb,IAAIv3C,EACJ6lF,QACAtzH,KAAKuyiB,KAAO,CAAC,EACbvyiB,KAAKuviB,KAAO,GACRn2e,GAAO,kBAAoBA,IAC3B4rB,EAAO5rB,EACPA,OAAMt4D,IAEVkkF,EAAOA,GAAQ,CAAC,GACXj+D,KAAOi+D,EAAKj+D,MAAQ,aACzB/mB,KAAKglF,KAAOA,EACZw9c,GAAsBxiiB,KAAMglF,GAC5BhlF,KAAKwyiB,cAAmC,IAAtBxtd,EAAKwtd,cACvBxyiB,KAAKyyiB,qBAAqBztd,EAAKytd,sBAAwB3gd,KACvD9xF,KAAK0yiB,kBAAkB1td,EAAK0td,mBAAqB,KACjD1yiB,KAAK2yiB,qBAAqB3td,EAAK2td,sBAAwB,KACvD3yiB,KAAK4yiB,oBAAwD,QAAnCnlgB,EAAKu3C,EAAK4td,2BAAwC,IAAPnlgB,EAAgBA,EAAK,IAC1FztC,KAAKg2V,QAAU,IAAI67M,GAAQ,CACvBpkhB,IAAKztB,KAAK0yiB,oBACVllhB,IAAKxtB,KAAK2yiB,uBACVZ,OAAQ/xiB,KAAK4yiB,wBAEjB5yiB,KAAKqjB,QAAQ,MAAQ2hE,EAAK3hE,QAAU,IAAQ2hE,EAAK3hE,SACjDrjB,KAAKyviB,YAAc,SACnBzviB,KAAKo5D,IAAMA,EACX,MAAMy5e,EAAU7td,EAAKh8B,QAAUA,EAC/BhpD,KAAK8ha,QAAU,IAAI+wI,EAAQ7F,QAC3BhtiB,KAAK84N,QAAU,IAAI+5U,EAAQnF,QAC3B1tiB,KAAKoviB,cAAoC,IAArBpqd,EAAK8td,YACrB9yiB,KAAKoviB,cACLpviB,KAAKshC,MACb,CACAkxgB,YAAAA,CAAan+hB,GACT,OAAKrH,UAAU3M,QAEfL,KAAK+yiB,gBAAkB1+hB,EAClBA,IACDrU,KAAKgziB,eAAgB,GAElBhziB,MALIA,KAAK+yiB,aAMpB,CACAN,oBAAAA,CAAqBp+hB,GACjB,YAAUvT,IAANuT,EACOrU,KAAKiziB,uBAChBjziB,KAAKiziB,sBAAwB5+hB,EACtBrU,KACX,CACA0yiB,iBAAAA,CAAkBr+hB,GACd,IAAIo5B,EACJ,YAAU3sC,IAANuT,EACOrU,KAAKkziB,oBAChBlziB,KAAKkziB,mBAAqB7+hB,EACF,QAAvBo5B,EAAKztC,KAAKg2V,eAA4B,IAAPvoT,GAAyBA,EAAG0kgB,OAAO99hB,GAC5DrU,KACX,CACA4yiB,mBAAAA,CAAoBv+hB,GAChB,IAAIo5B,EACJ,YAAU3sC,IAANuT,EACOrU,KAAKmziB,sBAChBnziB,KAAKmziB,qBAAuB9+hB,EACJ,QAAvBo5B,EAAKztC,KAAKg2V,eAA4B,IAAPvoT,GAAyBA,EAAG4kgB,UAAUh+hB,GAC/DrU,KACX,CACA2yiB,oBAAAA,CAAqBt+hB,GACjB,IAAIo5B,EACJ,YAAU3sC,IAANuT,EACOrU,KAAKoziB,uBAChBpziB,KAAKoziB,sBAAwB/+hB,EACL,QAAvBo5B,EAAKztC,KAAKg2V,eAA4B,IAAPvoT,GAAyBA,EAAG2kgB,OAAO/9hB,GAC5DrU,KACX,CACAqjB,OAAAA,CAAQhP,GACJ,OAAKrH,UAAU3M,QAEfL,KAAKqziB,SAAWh/hB,EACTrU,MAFIA,KAAKqziB,QAGpB,CAOAC,oBAAAA,IAEStziB,KAAKuziB,eACNvziB,KAAK+yiB,eACqB,IAA1B/yiB,KAAKg2V,QAAQg8M,UAEbhyiB,KAAKwziB,WAEb,CAQAlygB,IAAAA,CAAKj2B,GACD,IAAKrL,KAAKyviB,YAAY/riB,QAAQ,QAC1B,OAAO1D,KACXA,KAAKwiF,OAAS,IAAIixd,GAAOzziB,KAAKo5D,IAAKp5D,KAAKglF,MACxC,MAAM69c,EAAS7iiB,KAAKwiF,OACd53C,EAAO5qC,KACbA,KAAKyviB,YAAc,UACnBzviB,KAAKgziB,eAAgB,EAErB,MAAMU,EAAiB5sf,GAAG+7e,EAAQ,QAAQ,WACtCj4f,EAAKs7f,SACL76hB,GAAMA,GACV,IACM6sK,EAAWnmI,IACb/xC,KAAKipE,UACLjpE,KAAKyviB,YAAc,SACnBzviB,KAAKiiiB,aAAa,QAASlwf,GACvB1mC,EACAA,EAAG0mC,GAIH/xC,KAAKsziB,sBACT,EAGEK,EAAW7sf,GAAG+7e,EAAQ,QAAS3qX,GACrC,IAAI,IAAUl4K,KAAKqziB,SAAU,CACzB,MAAMhwhB,EAAUrjB,KAAKqziB,SAEfluT,EAAQnlP,KAAKmiiB,cAAa,KAC5BuR,IACAx7X,EAAQ,IAAIlmK,MAAM,YAClB6whB,EAAOvuR,OAAO,GACfjxP,GACCrjB,KAAKglF,KAAKmhd,WACVhhT,EAAMkhT,QAEVrmiB,KAAKuviB,KAAK3uiB,MAAK,KACXZ,KAAK0iiB,eAAev9S,EAAM,GAElC,CAGA,OAFAnlP,KAAKuviB,KAAK3uiB,KAAK8yiB,GACf1ziB,KAAKuviB,KAAK3uiB,KAAK+yiB,GACR3ziB,IACX,CAOAyuiB,OAAAA,CAAQpjiB,GACJ,OAAOrL,KAAKshC,KAAKj2B,EACrB,CAMA66hB,MAAAA,GAEIlmiB,KAAKipE,UAELjpE,KAAKyviB,YAAc,OACnBzviB,KAAKiiiB,aAAa,QAElB,MAAMY,EAAS7iiB,KAAKwiF,OACpBxiF,KAAKuviB,KAAK3uiB,KAAKkmD,GAAG+7e,EAAQ,OAAQ7iiB,KAAK4ziB,OAAOpnhB,KAAKxsB,OAAQ8mD,GAAG+7e,EAAQ,OAAQ7iiB,KAAK6ziB,OAAOrnhB,KAAKxsB,OAAQ8mD,GAAG+7e,EAAQ,QAAS7iiB,KAAK+jF,QAAQv3D,KAAKxsB,OAAQ8mD,GAAG+7e,EAAQ,QAAS7iiB,KAAKsmiB,QAAQ95gB,KAAKxsB,OAE3L8mD,GAAG9mD,KAAK84N,QAAS,UAAW94N,KAAK8ziB,UAAUtnhB,KAAKxsB,OACpD,CAMA4ziB,MAAAA,GACI5ziB,KAAKiiiB,aAAa,OACtB,CAMA4R,MAAAA,CAAO3+hB,GACH,IACIlV,KAAK84N,QAAQjtK,IAAI32C,EACrB,CACA,MAAO3S,IACHvC,KAAKsmiB,QAAQ,cAAe/jiB,GAChC,CACJ,CAMAuxiB,SAAAA,CAAUtS,GAEN38d,IAAS,KACL7kE,KAAKiiiB,aAAa,SAAUT,EAAO,GACpCxhiB,KAAKmiiB,aACZ,CAMAp+c,OAAAA,CAAQhyC,GACJ/xC,KAAKiiiB,aAAa,QAASlwf,EAC/B,CAOA8wf,MAAAA,CAAO2K,EAAKxod,GACR,IAAI69c,EAAS7iiB,KAAKuyiB,KAAK/E,GAQvB,OAPK3K,EAII7iiB,KAAKoviB,eAAiBvM,EAAOxphB,QAClCwphB,EAAO4L,WAJP5L,EAAS,IAAIqJ,GAAOlsiB,KAAMwtiB,EAAKxod,GAC/BhlF,KAAKuyiB,KAAK/E,GAAO3K,GAKdA,CACX,CAOAt/O,QAAAA,CAASs/O,GACL,MAAM0P,EAAOrviB,OAAO4pB,KAAK9sB,KAAKuyiB,MAC9B,IAAK,MAAM/E,KAAO+E,EAAM,CAEpB,GADevyiB,KAAKuyiB,KAAK/E,GACdn0hB,OACP,MAER,CACArZ,KAAK+ziB,QACT,CAOAjN,OAAAA,CAAQtF,GACJ,MAAMwC,EAAiBhkiB,KAAK8ha,QAAQpuZ,OAAO8thB,GAC3C,IAAK,IAAIv/hB,EAAI,EAAGA,EAAI+hiB,EAAe3jiB,OAAQ4B,IACvCjC,KAAKwiF,OAAOn0C,MAAM21f,EAAe/hiB,GAAIu/hB,EAAO1hiB,QAEpD,CAMAmpE,OAAAA,GACIjpE,KAAKuviB,KAAKhuiB,SAAS4viB,GAAeA,MAClCnxiB,KAAKuviB,KAAKlviB,OAAS,EACnBL,KAAK84N,QAAQzlF,SACjB,CAMA0ga,MAAAA,GACI/ziB,KAAKgziB,eAAgB,EACrBhziB,KAAKuziB,eAAgB,EACrBvziB,KAAKsmiB,QAAQ,eACjB,CAMAh0Q,UAAAA,GACI,OAAOtyR,KAAK+ziB,QAChB,CAUAzN,OAAAA,CAAQn/gB,EAAQgzM,GACZ,IAAI1sL,EACJztC,KAAKipE,UACkB,QAAtBx7B,EAAKztC,KAAKwiF,cAA2B,IAAP/0C,GAAyBA,EAAG6mO,QAC3Dt0Q,KAAKg2V,QAAQn2T,QACb7/B,KAAKyviB,YAAc,SACnBzviB,KAAKiiiB,aAAa,QAAS96gB,EAAQgzM,GAC/Bn6N,KAAK+yiB,gBAAkB/yiB,KAAKgziB,eAC5BhziB,KAAKwziB,WAEb,CAMAA,SAAAA,GACI,GAAIxziB,KAAKuziB,eAAiBvziB,KAAKgziB,cAC3B,OAAOhziB,KACX,MAAM4qC,EAAO5qC,KACb,GAAIA,KAAKg2V,QAAQg8M,UAAYhyiB,KAAKiziB,sBAC9BjziB,KAAKg2V,QAAQn2T,QACb7/B,KAAKiiiB,aAAa,oBAClBjiiB,KAAKuziB,eAAgB,MAEpB,CACD,MAAM1yhB,EAAQ7gB,KAAKg2V,QAAQt2U,WAC3B1f,KAAKuziB,eAAgB,EACrB,MAAMpuT,EAAQnlP,KAAKmiiB,cAAa,KACxBv3f,EAAKoogB,gBAEThziB,KAAKiiiB,aAAa,oBAAqBr3f,EAAKorT,QAAQg8M,UAEhDpngB,EAAKoogB,eAETpogB,EAAKtJ,MAAMyQ,IACHA,GACAnH,EAAK2ogB,eAAgB,EACrB3ogB,EAAK4ogB,YACLxziB,KAAKiiiB,aAAa,kBAAmBlwf,IAGrCnH,EAAKopgB,aACT,IACF,GACHnzhB,GACC7gB,KAAKglF,KAAKmhd,WACVhhT,EAAMkhT,QAEVrmiB,KAAKuviB,KAAK3uiB,MAAK,KACXZ,KAAK0iiB,eAAev9S,EAAM,GAElC,CACJ,CAMA6uT,WAAAA,GACI,MAAMh2L,EAAUh+W,KAAKg2V,QAAQg8M,SAC7BhyiB,KAAKuziB,eAAgB,EACrBvziB,KAAKg2V,QAAQn2T,QACb7/B,KAAKiiiB,aAAa,YAAajkL,EACnC,ECvWJ,MAAM/yW,GAAQ,CAAC,EACf,SAASktF,GAAO/+B,EAAK4rB,GACE,kBAAR5rB,IACP4rB,EAAO5rB,EACPA,OAAMt4D,GAGV,MAAM2H,ECHH,SAAa2wD,GAAqB,IAAhBryC,EAAI/Z,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,GAAIiniB,EAAGjniB,UAAA3M,OAAA,EAAA2M,UAAA,QAAAlM,EAC/B8Q,EAAMwnD,EAEV66e,EAAMA,GAA4B,qBAAbtshB,UAA4BA,SAC7C,MAAQyxC,IACRA,EAAM66e,EAAI/hf,SAAW,KAAO+hf,EAAI9mf,MAEjB,kBAARiM,IACH,MAAQA,EAAIjrC,OAAO,KAEfirC,EADA,MAAQA,EAAIjrC,OAAO,GACb8lhB,EAAI/hf,SAAWkH,EAGf66e,EAAI9mf,KAAOiM,GAGpB,sBAAsBtuC,KAAKsuC,KAExBA,EADA,qBAAuB66e,EACjBA,EAAI/hf,SAAW,KAAOkH,EAGtB,WAAaA,GAI3BxnD,EAAM7K,GAAMqyD,IAGXxnD,EAAIi/C,OACD,cAAc/lC,KAAKlZ,EAAIsgD,UACvBtgD,EAAIi/C,KAAO,KAEN,eAAe/lC,KAAKlZ,EAAIsgD,YAC7BtgD,EAAIi/C,KAAO,QAGnBj/C,EAAImV,KAAOnV,EAAImV,MAAQ,IACvB,MACMomC,GADkC,IAA3Bv7C,EAAIu7C,KAAKzpD,QAAQ,KACV,IAAMkO,EAAIu7C,KAAO,IAAMv7C,EAAIu7C,KAS/C,OAPAv7C,EAAI8xB,GAAK9xB,EAAIsgD,SAAW,MAAQ/E,EAAO,IAAMv7C,EAAIi/C,KAAO9pC,EAExDnV,EAAI0hD,KACA1hD,EAAIsgD,SACA,MACA/E,GACC8mf,GAAOA,EAAIpjf,OAASj/C,EAAIi/C,KAAO,GAAK,IAAMj/C,EAAIi/C,MAChDj/C,CACX,CD7CmB6W,CAAI2wC,GADnB4rB,EAAOA,GAAQ,CAAC,GACaj+D,MAAQ,cAC/B6Z,EAASn4B,EAAOm4B,OAChB8C,EAAKj7B,EAAOi7B,GACZ3c,EAAOte,EAAOse,KACdmthB,EAAgBjpiB,GAAMy4B,IAAO3c,KAAQ9b,GAAMy4B,GAAU,KAK3D,IAAIkrgB,EAaJ,OAjBsB5pd,EAAKmvd,UACvBnvd,EAAK,0BACL,IAAUA,EAAKovd,WACfF,EAGAtF,EAAK,IAAI0D,GAAQ1xgB,EAAQokD,IAGpB/5E,GAAMy4B,KACPz4B,GAAMy4B,GAAM,IAAI4ugB,GAAQ1xgB,EAAQokD,IAEpC4pd,EAAK3jiB,GAAMy4B,IAEXj7B,EAAOiqC,QAAUsyC,EAAKtyC,QACtBsyC,EAAKtyC,MAAQjqC,EAAO6/hB,UAEjBsG,EAAG/L,OAAOp6hB,EAAOse,KAAMi+D,EAClC,CAGA9hF,OAAOD,OAAOk1F,GAAQ,CAClBm6c,QAAO,GACPpG,OAAM,GACN0C,GAAIz2c,GACJs2c,QAASt2c,KE3Cb,MACA,IACE+jS,WAFmC,qBAAXvsV,QAA0BA,OAAOusV,YAAcvsV,OAAOusV,WAAW1vW,KAAKmjB,SCGhG,IAAIokD,GACJ,MAAMC,GAAQ,IAAIx/E,WAAW,IACd,SAASugF,KAEtB,IAAKhB,KAEHA,GAAoC,qBAAXpkD,QAA0BA,OAAOokD,iBAAmBpkD,OAAOokD,gBAAgBvnE,KAAKmjB,SAEpGokD,IACH,MAAM,IAAI/hF,MAAM,4GAIpB,OAAO+hF,GAAgBC,GACzB,CCXA,MAAM3B,GAAY,GAElB,IAAK,IAAIpwF,EAAI,EAAGA,EAAI,MAAOA,EACzBowF,GAAUzxF,MAAMqB,EAAI,KAAOsL,SAAS,IAAItJ,MAAM,IAGzC,SAASowiB,GAAgBh+hB,GAAiB,IAAZhP,EAAM2F,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,EAG5C,OAAOqlF,GAAUh8E,EAAIhP,EAAS,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAM,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAM,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAM,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAMgrF,GAAUh8E,EAAIhP,EAAS,IAAM,IAAMgrF,GAAUh8E,EAAIhP,EAAS,KAAOgrF,GAAUh8E,EAAIhP,EAAS,KAAOgrF,GAAUh8E,EAAIhP,EAAS,KAAOgrF,GAAUh8E,EAAIhP,EAAS,KAAOgrF,GAAUh8E,EAAIhP,EAAS,KAAOgrF,GAAUh8E,EAAIhP,EAAS,IAChf,CCYA,SAxBA,SAAYvH,EAAS85D,EAAKvyD,GACxB,GAAIitiB,GAAOp4K,aAAetiU,IAAQ95D,EAChC,OAAOw0iB,GAAOp4K,aAIhB,MAAMpmS,GADNh2F,EAAUA,GAAW,CAAC,GACD8lF,SAAW9lF,EAAQi1F,KAAOA,MAK/C,GAHAe,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBl8B,EAAK,CACPvyD,EAASA,GAAU,EAEnB,IAAK,IAAIpF,EAAI,EAAGA,EAAI,KAAMA,EACxB23D,EAAIvyD,EAASpF,GAAK6zF,EAAK7zF,GAGzB,OAAO23D,CACT,CAEA,OAAOy6e,GAAgBv+c,EACzB,ECtBMy+c,IAAmB3rQ,EAAAA,EAAAA,iBAEZ4rQ,GAAoBn4hB,IAAmB,IAAlB,SAAErX,GAAUqX,EAC5C,MAAOo4hB,EAAWC,IAAgB58W,EAAAA,EAAAA,UAAS,MACrC68W,GAAe98W,EAAAA,EAAAA,QAAO,MACtB+8W,GAAgB/8W,EAAAA,EAAAA,QAAO,OAEtBo4W,EAAa4E,IAAkB/8W,EAAAA,EAAAA,UAAS,MACzCg9W,EAAazkgB,8BAEnBmnJ,EAAAA,EAAAA,YAAU,KACR,MAAMjyL,EAAQy4C,aAAaixQ,QAAQ,eAGnC,OAFAylP,EAAanviB,GAEN,KAAO,IAADwviB,EAAAC,EAES,QAApBD,EAAAJ,EAAajoiB,eAAO,IAAAqoiB,GAApBA,EAAsBziR,aACD,QAArB0iR,EAAAJ,EAAcloiB,eAAO,IAAAsoiB,GAArBA,EAAuB1iR,YAAY,CACpC,GACA,KAGH96F,EAAAA,EAAAA,YAAU,KACR,IAAKi9W,EAAW,CACd,MAAMz9H,EAAYvzZ,YAAW,KAC3B,MAAMwxhB,EAAYrG,GAAGkG,EAAY,CAC/BlO,WAAY,CAAC,eAGfqO,EAAUnuf,GAAG,WAAW,KACtB01B,QAAQ/qB,IAAI,yCACZojf,GAAe,EAAK,IAGtB,MAAMvnW,EAAS4nW,KACfD,EAAUzmf,KAAK,sBAAuB,CACpC8+I,OAAQA,EACR6nW,SAAU,UAGZF,EAAUnuf,GAAG,cAAc,KACzB01B,QAAQ/qB,IAAI,+BACZojf,GAAe,EAAM,IAGvBF,EAAajoiB,QAAUuoiB,CAAS,GAC/B,KAEH,MAAO,KAAO,IAADG,EACX5xhB,aAAawzZ,GACO,QAApBo+H,EAAAT,EAAajoiB,eAAO,IAAA0oiB,GAApBA,EAAsB9iR,YAAY,CAEtC,IACC,CAACmiR,KAGJj9W,EAAAA,EAAAA,YAAU,KACR,GAAIi9W,EAAW,CACb,MAAMz9H,EAAYvzZ,YAAW,KAC3B,MAAMqkX,EAAWlrX,KAAK7V,MAAMi3C,aAAaixQ,QAAQ,aAC3C3hH,EAAiB,OAARw6L,QAAQ,IAARA,OAAQ,EAARA,EAAUpkW,GAEnBuxgB,EAAYrG,GAAGkG,EAAY,CAC/B91d,KAAM,CAAEuB,cAAe,UAAUk0d,IAAa7thB,KAAM,QACpDgghB,WAAY,CAAC,eAGfqO,EAAUnuf,GAAG,WAAW,KACtB01B,QAAQ/qB,IAAI,uCACZojf,GAAe,EAAK,IAGtBI,EAAUzmf,KAAK,sBAAuB,CACpC8+I,OAAQA,EACR6nW,SAAU,WAGZF,EAAUnuf,GAAG,uBAAwB5xC,IACnCsnE,QAAQ/qB,IAAI,qBAAsBv8C,EAAK,IAGzC+/hB,EAAUnuf,GAAG,cAAc,KACzB01B,QAAQ/qB,IAAI,6BACZojf,GAAe,EAAM,IAGvBI,EAAUnuf,GAAG,iBAAkBxrC,IAC7BkhE,QAAQlhE,MAAM,2BAA4BA,EAAM,IAGlDs5hB,EAAcloiB,QAAUuoiB,CAAS,GAChC,KAEH,MAAO,KAAO,IAADI,EACX7xhB,aAAawzZ,GACQ,QAArBq+H,EAAAT,EAAcloiB,eAAO,IAAA2oiB,GAArBA,EAAuB/iR,YAAY,CAEvC,IACC,CAACmiR,IAYJ,OACE5thB,EAAAA,GAAAA,KAAC0thB,GAAiB3oiB,SAAQ,CACxBxI,MAAO,CACLy/hB,OAAQ4R,EAAYG,EAAcloiB,QAAUioiB,EAAajoiB,QACzD4oiB,SAbY/viB,IACJ,IAADgwiB,EAEJC,EAFHjwiB,EACkB,QAApBgwiB,EAAAZ,EAAajoiB,eAAO,IAAA6oiB,GAApBA,EAAsBjjR,aAED,QAArBkjR,EAAAZ,EAAcloiB,eAAO,IAAA8oiB,GAArBA,EAAuBljR,aAEzBoiR,EAAanviB,EAAM,GAQfP,SAEDA,GACyB,EAKnBywiB,GAAeA,KACnBxpiB,EAAAA,EAAAA,YAAWsoiB,ICm5BpB,GAr+BmBmB,KAAO,IAAD97H,EAAAq7F,EAAA0gC,EAAAtgC,EAAAC,EAAAsgC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACvB,MAAM,KAAErhiB,EAAI,UAAEssQ,EAAS,MAAElmQ,EAAK,QAAEu0Y,GAAYuvI,GAC1C,CAAEt5hB,MAAO,GACT,CAAEq+Y,2BAA2B,KAG7BjvY,KAAMshiB,EACNh1R,UAAWi1R,EACX5mJ,QAAS6mJ,GACP12H,GACF,CAAEl6a,MAAO,GACT,CAAEq+Y,2BAA2B,KAExBrc,EAAU6uK,IAAe7+W,EAAAA,EAAAA,UAAS,CAAC,GAEpC3C,EAAWm8I,MACVslO,EAAYC,IAAiB/+W,EAAAA,EAAAA,UAAS,KACtCg/W,EAAeC,IAAoBj/W,EAAAA,EAAAA,UAAS,KAC5Ck/W,EAAcC,IAAmBn/W,EAAAA,EAAAA,WAAS,GAC3Co/W,GAAYr/W,EAAAA,EAAAA,QAAO,OAClBs/W,EAAYC,IAAiBt/W,EAAAA,EAAAA,WAAS,GACvCutI,EAAWR,KACXl9S,EAAW88S,MACV+iE,EAAWC,IAAgB3vM,EAAAA,EAAAA,WAAS,IACnC5iL,KAAMmiiB,EAAWxnJ,QAASynJ,GAChC/kC,MACMr9f,KAAMqiiB,EAAU1nJ,QAAS2nJ,GAAgBnlC,MACzCn9f,KAAMuiiB,EAAU5nJ,QAAS6nJ,GAC/BllC,KAEF,IAAImlC,GAAwB,EAE5B,MAAM,SAAErC,EAAQ,OAAEzS,GAAW4S,KAqB7B,IAlBAj+W,EAAAA,EAAAA,YAAU,KACRk/W,GAAoB,GACnB,CAAC/uhB,KAGJ6vK,EAAAA,EAAAA,YAAU,KACRukP,IAAmB,GAClB,CAACp0Z,IAGA6uhB,GAAwD,MAAhB,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBx0f,cAC5ChE,aAAar6B,QACbu5Z,eAAe9tH,QAAQ,kBAAkB,GACzCiW,EAAS,eAAe19S,EAAS+qC,WAAY,CAC3CrvD,SAAS,MAIL,OAAJ6R,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,GAAM,QAANq7F,EAAdr7F,EAAgB1ka,YAAI,IAAA+/f,GAAe,QAAf0gC,EAApB1gC,EAAsByqB,qBAAa,IAAAiW,OAA/B,EAAJA,EAAqCt1iB,QAAS,EAAG,CAAC,IAADw5a,EAAAC,GAC/B,OAAJ5ka,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,GAAM,QAANC,EAAdD,EAAgB3ka,YAAI,IAAA4ka,OAAhB,EAAJA,EAAsB4lH,eAC5Bp2hB,KAAKsuiB,IACS,IAAb,OAALA,QAAK,IAALA,OAAK,EAALA,EAAOC,WACTF,GAAwB,EAC1B,GAEJ,CAEA,MAsBOG,EAAuBC,IAA4BjgX,EAAAA,EAAAA,WAAS,IACnEN,EAAAA,EAAAA,YAAU,KACR,MAAMwgX,EAAsB5uhB,IAC1B6thB,GAAgB,GAEdC,EAAUxqiB,UACTwqiB,EAAUxqiB,QAAQo4I,SAAS17H,EAAMQ,SACnB,KAAfgthB,GAEAK,GAAgB,EAClB,EAKF,OAFAv1iB,SAAS0oB,iBAAiB,QAAS4thB,GAE5B,KACLt2iB,SAASy/F,oBAAoB,QAAS62c,EAAmB,CAC1D,GACA,CAACpB,IACJ,MAQM,SAAElkf,IAAa+xQ,MACrBjtI,EAAAA,EAAAA,YAAU,KACRugX,GAAyB,EAAM,GAC9B,CAACrlf,KACJ,MAAOulf,GAAQC,KAAapgX,EAAAA,EAAAA,UAAS,CAAEqgX,UAAU,EAAO9wiB,OAAQ,IAC1D+wiB,IAAYvgX,EAAAA,EAAAA,QAAO,OAYzBL,EAAAA,EAAAA,YAAU,KACR,IAAI/3H,EAAS24e,GAAU1riB,QAAQknP,wBAC/B,MAAMykT,EAAoBA,KAZPjxY,IAAckxY,EAalB74e,EAAO9hC,IAbW26gB,EAaN74e,EAAOp/C,OAX9BqiB,OAAOuwP,YAAc,GACvBilR,GAAU,CAAEC,UAAU,EAAM9wiB,OAAQixiB,IAEpCJ,GAAU,CAAEC,UAAU,EAAO9wiB,OAAQ,GAQE,EAKzC,OAFAq7B,OAAOtY,iBAAiB,SAAUiuhB,GAE3B,KACL31gB,OAAOy+D,oBAAoB,SAAUk3c,EAAkB,CACxD,GACA,IAGH,MAAOre,GAAUue,KAAezgX,EAAAA,EAAAA,UAAS,MACnCx2J,GAAOihB,QAAQy3e,IAIf3rG,GAAcA,KAClBkqH,GAAY,KAAK,GAgFZC,GAAcC,KAAmB3gX,EAAAA,EAAAA,UAAS,OAEjDN,EAAAA,EAAAA,YAAU,KACRq4N,GAAS,GACR,CAAC2oJ,KAEJ,MAAOE,GAAgBC,KAAqB7gX,EAAAA,EAAAA,WAAS,IAyB9C8gX,GAAcC,IAAmBptiB,EAAAA,UAAe,GAoBjDqtiB,GAAarwd,eAjBaA,WAC9B,MAAMq/S,EAAWlrX,KAAK7V,MAAMi3C,aAAaixQ,QAAQ,aAC3C3hH,EAAiB,OAARw6L,QAAQ,IAARA,OAAQ,EAARA,EAAUpkW,GASzB,OANAm/f,EAAOr0e,KAAK,yBAA0B,CACpC8+I,OAAQA,EACR6nW,SAAU,WAIL,KACLtS,EAAOptc,IAAI,yBAAyB,CACrC,EAKKsjd,GACN5jX,EAASy9V,MACT0iB,EAAS,MACTjwO,EAAS,IAAI,EA8Df,OAjDA7tI,EAAAA,EAAAA,YAAU,KAER,GAAKqrW,EA0BL,OArBArmd,QAAQ/qB,IAAI,oCAAqCoxe,GAGjDA,EAAO/7e,GAAG,8BAA+B5xC,IACvCsnE,QAAQ/qB,IAAI,+BAAgCv8C,GACpC,OAAJA,QAAI,IAAJA,GAAAA,EAAMuG,OACRi7hB,IAEA3hQ,GAAM,mCAAoC,CACxC/6R,KAAM,eACN+V,MAAO,CACL6L,UAAW,OACXnG,aAAc,OACdxc,WAAY,UACZqD,MAAO,UAGb,IAIK,KACLumhB,EAAOptc,IAAI,6BAA6B,EA1BxCjZ,QAAQ/qB,IAAI,8CA2Bb,GACA,CAACoxe,KAEJrrW,EAAAA,EAAAA,YAAU,KACRm/W,EAAY/5hB,KAAK7V,MAAMi3C,aAAaixQ,QAAQ,aAAa,GACxD,CAACjxQ,aAAaixQ,QAAQ,eACzBz3H,EAAAA,EAAAA,YAAU,KACJx5I,aAAaixQ,QAAQ,mBACvBla,GAAMz5R,MAAM,kDAAmD,CAC7DooB,GAAI,kBAEN2hS,EAAS,iBAEX,MAAM96N,EAAWmxI,aAAY,KAC3B47T,GAAkB,GACjB,KACH,MAAO,IAAM/7T,cAAchxI,EAAS,GACnC,KAGD/jF,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EAEE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CACFx+T,UAAW,UACG,KAAZm/C,IAA+B,cAAZA,GACf,WACA,yCAEJulf,GAAOE,SAAW,kBAAoB,kEAExCnsiB,IAAKosiB,GAAUpziB,UAEf6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,mCAAkCvO,UAC/CwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,oBAAmBvO,SAAA,EAChC6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,aAAYvO,UACzB6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,IAAGt4J,UACb6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK6md,GACLzliB,UAAU,2BACV0oP,IAAI,yBAIVz1O,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,2DAA0DvO,SAAA,EACvE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAAA/sU,UACFwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,4CAA2CvO,SAAA,EACvD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,eACH/pJ,UAAU,qGAAoGvO,SAC/G,mBAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,aACH/pJ,UAAU,qGAAoGvO,SAC/G,cAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,WACH/pJ,UAAU,qGAAoGvO,SAC/G,eAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,aACH/pJ,UAAU,qGAAoGvO,SAC/G,iBAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,QACH/pJ,UAAU,qGAAoGvO,SAC/G,YAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,eACH/pJ,UAAU,qGAAoGvO,SAC/G,iBAMPwhB,EAAAA,GAAAA,MAACurT,GAAG,CAAA/sU,SAAA,EACFwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,4CAA2CvO,SAAA,EAoCvD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,iBAAgBvO,UAqB5BwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CACN5uK,GAAG,iEACH1zI,OAAO,SACPrW,UAAU,8NACV62J,aAAcA,IAAMq9N,GAAa,GACjC3gO,aAAcA,IAAM2gO,GAAa,GAAOziY,SAAA,EAExC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,kBAG/F6hB,EAAAA,GAAAA,KAACkvT,GAAM,CAACxiU,UAAU,uCAClBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,eAanG6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,YAAWvO,UACvBwhB,EAAAA,GAAAA,MAAA,UACEjT,UAAW,+BACTiliB,GAAe,iBAAmB,IAEpCt1Y,QAlRU95I,IAI1BqvhB,GAHGD,GAGa,KAFApvhB,EAAM0pH,cAGxB,EA8QkB,gBAAe0la,GAAe,oBAAiB13iB,EAC/C,gBAAc,OACd,gBAAe03iB,GAAe,YAAS13iB,EAAUkE,SAAA,EAEjD6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,2vCACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,QACfzob,UAAU,6BAGbokiB,IACC9whB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,0GAElBsT,EAAAA,GAAAA,KAACoyhB,GAAoB,CACnBjf,SAAUwe,GACVhrH,QApSM0rH,KAC1BP,IAAkB,GAClBF,GAAgB,KAAK,EAmSD/Y,cAAmB,OAAJxqhB,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,GAAM,QAANC,EAAdD,EAAgBnggB,YAAI,IAAAoggB,OAAhB,EAAJA,EAAsBoqB,cACrCl9T,OAAQg/C,EACRlwH,SAAUonZ,WAIhB7xhB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAMvO,UAClBwhB,EAAAA,GAAAA,MAACykT,GAAI,CACH3tK,GAAG,QACH,cAAY,qBACZ/pJ,UAAU,WAAUvO,SAAA,EAEpB6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACL9R,UAAU,SAAQvO,UAElB6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,23FACFgQ,KAAK,eACL9R,UAAU,6BAGJ,OAAT8jiB,QAAS,IAATA,GAAmB,QAAVzB,EAATyB,EAAW71f,gBAAQ,IAAAo0f,GAAnBA,EAAqB1giB,MACpB2R,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,8IAA6IvO,SACjJ,OAATqyiB,QAAS,IAATA,GAAmB,QAAVxB,EAATwB,EAAW71f,gBAAQ,IAAAq0f,OAAV,EAATA,EAAqB3giB,QAGxB2R,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,UAIN3iX,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mCAAkCvO,UAC9C6hB,EAAAA,GAAAA,KAAA,OACEtT,WACgD,QAA5B,OAAlBijiB,QAAkB,IAAlBA,GAA4B,QAAVV,EAAlBU,EAAoBh1f,gBAAQ,IAAAs0f,GAAM,QAANC,EAA5BD,EAA8B5giB,YAAI,IAAA6giB,OAAhB,EAAlBA,EAAoC7oB,OAChC,mBACA,IAHK,uHAKXhqX,QAlbC95I,IACnBmvhB,GAAYnvhB,EAAM0pH,cAAc,EAkbd,gBAAexxG,GAAO,oBAAiBxgC,EACvC,gBAAc,OACd,gBAAewgC,GAAO,YAASxgC,EAAUkE,SAExCyxiB,GACC5vhB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,GAAEvO,UACf6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKgnd,OAEoC,QAA5B,OAAlB3C,QAAkB,IAAlBA,GAA4B,QAAVR,EAAlBQ,EAAoBh1f,gBAAQ,IAAAw0f,GAAM,QAANC,EAA5BD,EAA8B9giB,YAAI,IAAA+giB,OAAhB,EAAlBA,EAAoC/oB,OACtC,GAC0B,QAAhB,OAARplJ,QAAQ,IAARA,OAAQ,EAARA,EAAU6kJ,iBACc7rhB,KAAhB,OAARgnY,QAAQ,IAARA,OAAQ,EAARA,EAAU6kJ,WACN,GACQ,OAAR7kJ,QAAQ,IAARA,GAAmB,QAAXouK,EAARpuK,EAAU6kJ,iBAAS,IAAAupB,OAAX,EAARA,EAAqB/nhB,OAAO,GAAG2R,gBAEZ,QAAf,OAARgoW,QAAQ,IAARA,OAAQ,EAARA,EAAU8kJ,gBACa9rhB,KAAf,OAARgnY,QAAQ,IAARA,OAAQ,EAARA,EAAU8kJ,UACN,GACQ,OAAR9kJ,QAAQ,IAARA,GAAkB,QAAVquK,EAARruK,EAAU8kJ,gBAAQ,IAAAupB,OAAV,EAARA,EAAoBhohB,OAAO,GAAG2R,iBAGpCjZ,EAAAA,GAAAA,KAAA,OACEtT,UAAU,0DACV4+E,IAAuB,OAAlBqkd,QAAkB,IAAlBA,GAA4B,QAAVJ,EAAlBI,EAAoBh1f,gBAAQ,IAAA40f,GAAM,QAANC,EAA5BD,EAA8BlhiB,YAAI,IAAAmhiB,OAAhB,EAAlBA,EAAoCnpB,gBAMnDrmgB,EAAAA,GAAAA,KAAC47J,GAAI,CACHu3W,SAAUA,GACVt2f,GAAG,eACHpC,KAAMA,GACNksZ,QAASa,GACTnrR,QAASmrR,GACTpC,mBAAmB,EACnB+F,WAAY,CACV3B,UAAW,EACXxta,GAAI,CACF0Z,SAAU,UACVjB,GAAI,IACJjB,gBAAiB,OACjBzB,OAAQ,oBACRnD,aAAc,OACdtQ,MAAO,QACP8S,QAAS,YACTkC,UAAW,YAGf2/f,gBAAiB,CAAEnlN,WAAY,QAAS73E,SAAU,OAClDw9R,aAAc,CAAE3lN,WAAY,QAAS73E,SAAU,UAAW93P,UAE1DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gBAAevO,SAAA,EAC5BwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnBwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,wCAAuCvO,SAAA,CAC1C,OAAR8iY,QAAQ,IAARA,OAAQ,EAARA,EAAU6kJ,UAAU,IAAU,OAAR7kJ,QAAQ,IAARA,OAAQ,EAARA,EAAU8kJ,aAEnC/lgB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,wEAAuEvO,SACzE,OAAR8iY,QAAQ,IAARA,OAAQ,EAARA,EAAUn/W,YAGfnC,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,qDAAoDvO,SAAA,EAChE6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,MACH/pJ,UAAU,2EAA0EvO,SACrF,kBAYH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,UACH/pJ,UAAU,2EAA0EvO,SACrF,cAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,2BACH/pJ,UAAU,2EAA0EvO,SACrF,4BAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAAS41Y,GACTvliB,UAAU,6FAA4FvO,SACvG,8BAUb6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,0DAAyDvO,UACtE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,UAASvO,UACtBwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,wCAAuCvO,SAAA,EAgCnD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAMvO,UAClBwhB,EAAAA,GAAAA,MAACykT,GAAI,CACH3tK,GAAG,QACH,cAAY,qBACZ/pJ,UAAU,WAAUvO,SAAA,EAEpB6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,23FACFgQ,KAAK,mBAGC,OAATgyhB,QAAS,IAATA,GAAmB,QAAVf,EAATe,EAAW71f,gBAAQ,IAAA80f,GAAnBA,EAAqBphiB,MACpB2R,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,8IAA6IvO,SACjJ,OAATqyiB,QAAS,IAATA,GAAmB,QAAVd,EAATc,EAAW71f,gBAAQ,IAAA+0f,OAAV,EAATA,EAAqBrhiB,QAGxB2R,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,UAKN3iX,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAMvO,UAClBwhB,EAAAA,GAAAA,MAAA,UACE08I,QApoBIk2Y,KACtBrB,GAA0BD,GAC1BV,GAAc,EAAM,EAmoBF,cAAY,YACZ7jiB,UAAW,mIACTukiB,EAAwB,SAAW,IAClC9yiB,SAAA,EAEH6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qCAChBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,wDAShCsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAW,YAAWukiB,EAAwB,OAAS,IAAK9yiB,UAC/DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wCAAuCvO,SAAA,EACpDwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,iEAAgEvO,SAAA,EAC5E6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,eACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,mBAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,aACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,cAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,WACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,eAaH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,eACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,YAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UAuBEwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CACN5uK,GAAG,iEACH1zI,OAAO,SACPs5I,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,qNACV62J,aAAcA,IAAMq9N,GAAa,GACjC3gO,aAAcA,IAAM2gO,GAAa,GAAOziY,SAAA,EAExC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,kBAG/F6hB,EAAAA,GAAAA,KAACkvT,GAAM,CAACxiU,UAAU,uCAClBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,eAcnG6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,MACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,kBAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,UACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,cAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,aAAa/pJ,UAAU,4BAA2BvO,SAAC,iBAIjE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,gCAA+BvO,UAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,QAAQ/pJ,UAAU,4BAA2BvO,SAAC,YAI5D6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACEwhB,EAAAA,GAAAA,MAAA,UACE,gBAAegyhB,GAAe,oBAAiB13iB,EAC/C,gBAAc,OACd,gBAAe03iB,GAAe,YAAS13iB,EACvCoiK,QAzoBoB95I,IAC3BovhB,IAIHG,IAAkB,GAClBF,GAAgB,QAJhBE,IAAkB,GAClBF,GAAgBrvhB,EAAM0pH,eAIxB,EAmoBYv/H,UAAU,sDAAqDvO,SAAA,CAChE,gBAEE2yiB,IACC9whB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+GAItBsT,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,UAAQq8I,QAAS41Y,GAAYvliB,UAAU,2BAA0BvO,SAAC,mBAKtE6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,oHAiF1B,EClqBP,GA5VoB8liB,KAClB,MAAM,SAAE3mf,GAAa+xQ,KACfY,EAAWR,MACVizO,EAAuBC,IAA4BjgX,EAAAA,EAAAA,WAAS,IAC5D0vM,EAAWC,IAAgB3vM,EAAAA,EAAAA,WAAS,IAM3CN,EAAAA,EAAAA,YAAU,KACRugX,GAAyB,EAAM,GAC9B,CAAC1yO,IACJ,MAAO4yO,EAAQC,IAAapgX,EAAAA,EAAAA,UAAS,CAAEqgX,UAAU,EAAO9wiB,OAAQ,IAC1D+wiB,GAAYvgX,EAAAA,EAAAA,QAAO,MAoCzB,OAxBAL,EAAAA,EAAAA,YAAU,KACJx5I,aAAaixQ,QAAQ,mBACvBla,GAAMz5R,MAAM,kDAAmD,CAC7DooB,GAAI,kBAEN2hS,EAAS,iBAEX,IAAI5lQ,EAAS24e,EAAU1riB,QAAQknP,wBAC/B,MAAMykT,EAAoBA,KAlBPjxY,IAAckxY,EAmBlB74e,EAAO9hC,IAnBW26gB,EAmBN74e,EAAOp/C,OAjB9BqiB,OAAOuwP,YAAc,GACvBilR,EAAU,CAAEC,UAAU,EAAM9wiB,OAAQixiB,IAEpCJ,EAAU,CAAEC,UAAU,EAAO9wiB,OAAQ,GAcE,EAKzC,OAFAq7B,OAAOtY,iBAAiB,SAAUiuhB,GAE3B,KACL31gB,OAAOy+D,oBAAoB,SAAUk3c,EAAkB,CACxD,GACA,KAGH7gX,EAAAA,EAAAA,YAAU,KACRukP,IAAmB,GAClB,CAACrpX,KAIFlsC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CACFx+T,UAAW,UACG,KAAZm/C,GAA+B,cAAZA,EACf,WACA,uCAEJulf,EAAOE,SAAW,kBAAoB,mFAExCnsiB,IAAKosiB,EAAUpziB,UAEf6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,mCAAkCvO,UAC/CwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,oCAAmCvO,SAAA,EAChDwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,+BAA8BvO,SAAA,EAC3C6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,IAAGt4J,UACb6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK6md,GACLzliB,UAAU,+BACV0oP,IAAI,uBAGRz1O,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,iEAAgEvO,SAAA,EAC5E6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,iBAAgBvO,UAC5B6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,eACH/pJ,UAAU,qGAAoGvO,SAC/G,mBAKH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yBAAwBvO,UACpC6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,aACH/pJ,UAAU,qGAAoGvO,SAC/G,iBAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yBAAwBvO,UACpC6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,QACH/pJ,UAAU,qGAAoGvO,SAC/G,kBAeP6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,kBAAiBvO,UAC9BwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,4CAA2CvO,SAAA,EASvD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yBAAwBvO,UACpC6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,UACH/pJ,UAAU,qGAAoGvO,SAC/G,eAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yBAAwBvO,UACpC6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAI,6CACJ/pJ,UAAU,qGAAoGvO,SAC/G,wBAoBH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yBAAwBvO,UAsBpCwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CACN5uK,GAAG,iEACH1zI,OAAO,SACPs5I,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,8NACV62J,aAAcA,IAAMq9N,GAAa,GACjC3gO,aAAcA,IAAM2gO,GAAa,GAAOziY,SAAA,EAExC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,kBAG/F6hB,EAAAA,GAAAA,KAACkvT,GAAM,CAACxiU,UAAU,uCAClBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,oBAevG6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,0DAAyDvO,UACtE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,UAASvO,UACtB6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wCAAuCvO,UAQnD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAMvO,UAClBwhB,EAAAA,GAAAA,MAAA,UACE08I,QA/MIk2Y,KACtBrB,GAA0BD,EAAsB,EA+M9B,cAAY,YACZvkiB,UAAW,mIACTukiB,EAAwB,SAAW,IAClC9yiB,SAAA,EAEH6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qCAChBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,uDAShCsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAW,YAAWukiB,EAAwB,OAAS,IAAK9yiB,UAC/DwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,wCAAuCvO,SAAA,EACpDwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,iEAAgEvO,SAAA,EAC5E6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,eACH/pJ,UAAU,2BACV2vJ,QAASA,IAAM60Y,GAAyB,GAAO/yiB,SAChD,mBAIH6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,aACH4F,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,2BAA0BvO,SACrC,iBAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,yBAAwBvO,UACpC6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,QAAQ/pJ,UAAU,2BAA0BvO,SAAC,YAqC3D6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,UAAU/pJ,UAAU,2BAA0BvO,SAAC,eAI7D6hB,EAAAA,GAAAA,KAAA,MAAA7hB,UACE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAI,6CACJ/pJ,UAAU,2BAA0BvO,SACrC,wBAIH6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,OAAMvO,UAsBlBwhB,EAAAA,GAAAA,MAAC0lT,GAAO,CACN5uK,GAAG,iEACH1zI,OAAO,SACPs5I,QAASA,IAAM60Y,GAAyB,GACxCxkiB,UAAU,sNACV62J,aAAcA,IAAMq9N,GAAa,GACjC3gO,aAAcA,IAAM2gO,GAAa,GAAOziY,SAAA,EAExC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,kBAG/F6hB,EAAAA,GAAAA,KAACkvT,GAAM,CAACxiU,UAAU,uCAClBsT,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,+EAA8EvO,SAAC,kBAMrG6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,qHAG1B,ECzUP,GAXcszX,KACZ,MAAM,SAAEiB,EAAQ,UAAEC,GAAcl4D,IAAa9nT,GAAUA,EAAMi3D,OAC7D,OAIG8oT,GAAYC,GAAalhX,EAAAA,GAAAA,KAAC6uhB,GAAU,KAAK7uhB,EAAAA,GAAAA,KAACwyhB,GAAW,GAAE,ECoM5D,GAnNcxyK,KACZ,MAAOyyK,EAAeC,IAAoBzhX,EAAAA,EAAAA,UAAS,SAEnD,OACEjxK,EAAAA,GAAAA,KAAC8vgB,GAAI,CAACl2hB,WAAS,EAACgzB,MAAI,EAACV,GAAI,GAAIxf,UAAU,UAASvO,UAC9C6hB,EAAAA,GAAAA,KAAC8vgB,GAAI,CAACl2hB,WAAS,EAACgzB,MAAI,EAACV,GAAI,GAAIxf,UAAU,kCAAiCvO,UACtEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8GAA6GvO,SAAA,EAC1HwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yEAAwEvO,SAAA,EACrF6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,kBACH,cAAY,eACZ/pJ,UAAU,mDAAkDvO,SAC7D,oBAGD6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,mBACH,cAAY,aACZ/pJ,UAAU,mDAAkDvO,SAC7D,2BAWHwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iFAAgFvO,SAAA,EAmB7F6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,yDACH1zI,OAAO,SACPrW,UAAU,mCACVq2L,MAAM,WACN,cAAY,WAAU5kM,UAEtBwhB,EAAAA,GAAAA,MAAA,OACEi1S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YAAWjhB,SAAA,EAEnB6hB,EAAAA,GAAAA,KAAA,KAAG68f,SAAS,uBAAsB1+gB,UAChC6hB,EAAAA,GAAAA,KAAA,QACE2yhB,SAAS,UACTC,SAAS,UACTpkiB,EAAE,mrCACFgQ,KAAK,oBAGTwB,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,iBAAgB1+B,UAC3B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,KAAKgF,KAAK,2BAK1CwB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,gDACH1zI,OAAO,SACPrW,UAAU,mCACVq2L,MAAM,UACN,cAAY,UAAS5kM,UAErB6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YAAWjhB,UAEnB6hB,EAAAA,GAAAA,KAAA,QACE2yhB,SAAS,UACTC,SAAS,UACTpkiB,EAAE,qoBACFgQ,KAAK,sBAIXwB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,gCACH1zI,OAAO,SACPrW,UAAU,mCACVq2L,MAAM,UACN,cAAY,UAAS5kM,UAErB6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,yBACVkoT,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,oNACFgQ,KAAK,eAIXwB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,iCACH1zI,OAAO,SACPrW,UAAU,mCACVq2L,MAAM,WACN,cAAY,WAAU5kM,UAEtB6hB,EAAAA,GAAAA,KAAA,OACE1B,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,UAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,8EACF29T,OAAQsmO,EACR/oiB,YAAY,IACZwrb,cAAc,QACdC,eAAe,QACfjuR,YAAaA,IAAMwrY,EAAiB,WACpCG,WAAYA,IAAMH,EAAiB,gBAIzC1yhB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,0DACH1zI,OAAO,SACPrW,UAAU,mCACVq2L,MAAM,WACN,cAAY,WAAU5kM,UAEtBwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,yBACV4R,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,KAAG68f,SAAS,sBAAqB1+gB,UAC/B6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,qsFACFgQ,KAAK,aAGTwB,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,gBAAe1+B,UAC1B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,KAAKgF,KAAK,oBAK1CwB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,0CACH1zI,OAAO,SACPrW,UAAU,mCACVq2L,MAAM,SACN,cAAY,SAAQ5kM,UAEpBwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,yBACV4R,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElCwhB,EAAAA,GAAAA,MAAA,KAAGk9f,SAAS,sBAAqB1+gB,SAAA,EAC/B6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,8fACFgQ,KAAK,WAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yTACFgQ,KAAK,cAGTwB,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,gBAAe1+B,UAC1B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,KAAKgF,KAAK,4BAQ3C,kBCvNI,SAASs0hB,KACtB,MAAOC,EAAaC,IAAkB/hX,EAAAA,EAAAA,WAAS,GACzCnwK,EAAW88S,MACVnzK,EAAUi2O,IAAezvM,EAAAA,EAAAA,WAAS,IAEzCN,EAAAA,EAAAA,YAAU,KACRqiX,GAAex/c,EAAAA,GAAAA,WAAU,iBACzB,MAAM8uS,EAAeA,KACnB5B,EAAY7kW,OAAOwmW,YAAc,IAAI,EAMvC,OAJAC,IAGAzmW,OAAOtY,iBAAiB,SAAU++W,GAC3B,KACLzmW,OAAOy+D,oBAAoB,SAAUgoS,EAAa,CACnD,GACA,IACH,MAAM2wK,EAAeA,KACnBD,GAAe,IACft/c,EAAAA,GAAAA,WAAU,eAAgB,OAAQ,CAAExzE,KAAM,IAAK0yE,OAAQ,SAAW,EAGpE,OADAjd,QAAQ/qB,IAAI9pC,GAEViyhB,GACsB,mBAAtBjyhB,EAAS+qC,UACa,qBAAtB/qC,EAAS+qC,UACa,oBAAtB/qC,EAAS+qC,SAEF,MAGP7rC,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SACGssJ,GACCzqI,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yDAAwDvO,UACrEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+GAA8GvO,SAAA,EAC3H6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,iEAAgEvO,UAC5EwhB,EAAAA,GAAAA,MAAA,QAAMuJ,MAAO,CAAE3K,QAAS,cAAe2X,WAAY,UAAW/3B,SAAA,EAC5DwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElCwhB,EAAAA,GAAAA,MAAA,KAAG,YAAU,yBAAwBxhB,SAAA,EACnC6hB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,+qBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,oNACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,gaACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,sgBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,mmBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,mNACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,imBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,gQACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACEtX,QAAQ,MACR,YAAU,UACV,YAAU,UACV8F,EAAE,+SACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,wmIACFgQ,KAAK,gBAGTwB,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,mBAAkB1+B,UAC7B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,KAAKgF,KAAK,iBAGlC,OAEL,0BAGLmB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,wDAAuDvO,SAAA,CAAC,0JAGhD,KACnB6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,iBACH/pJ,UAAU,4BAA2BvO,SACtC,kBAGA,OACD6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,kBACH/pJ,UAAU,4BAA2BvO,SACtC,mBAES,QAGZ6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wCAAuCvO,UAIpD6hB,EAAAA,GAAAA,KAAA,UACE6c,GAAG,qBACHnwB,UAAU,4GACV2vJ,QAAS42Y,EAAa90iB,SACvB,oBAqBP6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iHAAgHvO,UAC7HwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gDAA+CvO,SAAA,EAC5D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,iEAAgEvO,UAC5EwhB,EAAAA,GAAAA,MAAA,QAAMuJ,MAAO,CAAE3K,QAAS,cAAe2X,WAAY,UAAW/3B,SAAA,EAC5DwhB,EAAAA,GAAAA,MAAA,OACErB,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElCwhB,EAAAA,GAAAA,MAAA,KAAG,YAAU,yBAAwBxhB,SAAA,EACnC6hB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,+qBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,oNACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,gaACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,sgBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,mmBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,mNACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,imBACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,gQACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACEtX,QAAQ,MACR,YAAU,UACV,YAAU,UACV8F,EAAE,+SACFgQ,KAAK,aAEPwB,EAAAA,GAAAA,KAAA,QACE,YAAU,UACV,YAAU,UACVxR,EAAE,wmIACFgQ,KAAK,gBAGTwB,EAAAA,GAAAA,KAAA,QAAA7hB,UACE6hB,EAAAA,GAAAA,KAAA,YAAU6c,GAAG,mBAAkB1+B,UAC7B6hB,EAAAA,GAAAA,KAAA,QAAM1B,MAAM,KAAK9E,OAAO,KAAKgF,KAAK,iBAGlC,OAEL,0BAGLmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+BAA8BvO,SAAA,EAC3C6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,aAAYvO,UACzBwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,mDAAkDvO,SAAA,CAAC,0JAGjC,KAC7B6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,iBACH/pJ,UAAU,4BAA2BvO,SACtC,kBAGA,OACD6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,kBACH/pJ,UAAU,4BAA2BvO,SACtC,mBAES,UAId6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2CAA0CvO,UAIvD6hB,EAAAA,GAAAA,KAAA,UACE6c,GAAG,qBACHnwB,UAAU,4GACV2vJ,QAAS42Y,EAAa90iB,SACvB,uBAUjB,CCpRA,MAkCA,GAlCc6hY,KACKhiE,KAAjB,MACM,SAAEnyQ,GAAa+xQ,MAEdprT,EAAQ0giB,IAAajiX,EAAAA,EAAAA,UAAS,IAQrC,OANAN,EAAAA,EAAAA,YAAU,KACR,GAAI9kI,EAAU,CACZ,IAAIr8C,EAAMq8C,EAASpoD,MAAM,KACzByviB,EAAU1jiB,EAAI+3C,SAAS,eAAiB,cAAgB,GAC1D,IACC,CAACsE,KAEFlsC,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACmzhB,GAAM,KACPnzhB,EAAAA,GAAAA,KAAC8vgB,GAAI,CAACl2hB,WAAS,EAACgzB,MAAI,EAACV,GAAI,GAAIxf,UAAU,eAAcvO,UACnDwhB,EAAAA,GAAAA,MAACmwgB,GAAI,CACHl2hB,WAAS,EACTgzB,MAAI,EACJT,GAAI,GACJC,GAAI,GACJC,GAAI,GACJ3f,UAAU,GACVsP,GAAI,CAAEsC,MAAO,QAASoX,SAAU,UAAWv3B,SAAA,EAE3C6hB,EAAAA,GAAAA,KAACuiT,GAAM,KACPviT,EAAAA,GAAAA,KAAC8yhB,GAAc,UAGnB9yhB,EAAAA,GAAAA,KAACozhB,GAAM,MACN,kCC9CP,MAAMvhiB,GAAY,CAAC,cACjB8Z,GAAa,CAAC,YACdhC,GAAa,CAAC,OAAQ,OAAQ,uBAAwB,SAAU,qBAsB3D,SAASpF,GAAkBtI,GAChC,MAAgB,eAATA,GAAkC,UAATA,GAA6B,OAATA,GAA0B,OAATA,CACvE,CACO,MAAMwM,IAAqB/N,EAAAA,GAAAA,KAC5B+O,GAAuBze,GACtBA,EAGEA,EAAOsc,OAAO,GAAGpd,cAAgBc,EAAO5N,MAAM,GAF5C4N,EAIX,SAAS6d,GAAYjY,GAIlB,IAJmB,aACpB0L,EAAY,MACZxL,EAAK,QACLsL,GACDxL,EACC,OA7Be7F,EA6BA+F,EA5BoB,IAA5BzU,OAAO4pB,KAAKlb,GAAKvR,OA4BA8iB,EAAexL,EAAMsL,IAAYtL,EA7B3D,IAAiB/F,CA8BjB,CACA,SAASye,GAAyBxM,GAChC,OAAKA,EAGE,CAAC9e,EAAOiG,IAAWA,EAAO6Y,GAFxB,IAGX,CACA,SAASkN,GAAgB0B,EAAepW,GACtC,IAAI,WACA8H,GACE9H,EACJtX,GAAQkW,EAAAA,GAAAA,GAA8BoB,EAAM3D,IAC9C,MAAMga,EAA6C,oBAAlBD,EAA+BA,GAAc/V,EAAAA,GAAAA,GAAS,CACrFyH,cACCpf,IAAU0tB,EACb,GAAI5oB,MAAMiI,QAAQ4gB,GAChB,OAAOA,EAAkBC,SAAQC,GAAiB7B,GAAgB6B,GAAelW,EAAAA,GAAAA,GAAS,CACxFyH,cACCpf,MAEL,GAAM2tB,GAAkD,kBAAtBA,GAAkC7oB,MAAMiI,QAAQ4gB,EAAkBza,UAAW,CAC7G,MAAM,SACFA,EAAW,IACTya,EAEN,IAAIrgB,GADY4I,EAAAA,GAAAA,GAA8ByX,EAAmBF,IAwBjE,OAtBAva,EAAS1W,SAAQsxB,IACf,IAAIC,GAAU,EACe,oBAAlBD,EAAQ9tB,MACjB+tB,EAAUD,EAAQ9tB,OAAM2X,EAAAA,GAAAA,GAAS,CAC/ByH,cACCpf,EAAOof,IAEVjhB,OAAO4pB,KAAK+F,EAAQ9tB,OAAOxD,SAAQL,KACd,MAAdijB,OAAqB,EAASA,EAAWjjB,MAAU2xB,EAAQ9tB,MAAM7D,IAAQ6D,EAAM7D,KAAS2xB,EAAQ9tB,MAAM7D,KACzG4xB,GAAU,EACZ,IAGAA,IACGjpB,MAAMiI,QAAQO,KACjBA,EAAS,CAACA,IAEZA,EAAOzR,KAA8B,oBAAlBiyB,EAAQ9C,MAAuB8C,EAAQ9C,OAAMrT,EAAAA,GAAAA,GAAS,CACvEyH,cACCpf,EAAOof,IAAe0O,EAAQ9C,OACnC,IAEK1d,CACT,CACA,OAAOqgB,CACT,CC5FA,MAAMzO,GD6FS,WAAkC,IAAZtQ,EAAK3G,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EAC5C,MAAM,QACJiW,EAAO,aACPE,EAAemM,GAAkB,sBACjClM,EAAwBgI,GAAiB,sBACzCrI,EAAwBqI,IACtBzX,EACE4b,EAAWxqB,IACR6d,EAAAA,GAAAA,IAAgBlG,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACzC4S,MAAO+X,IAAahT,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACtCoe,eACAF,gBAKN,OADAsM,EAASI,gBAAiB,EACnB,SAACzvB,GAA2B,IAAtB0vB,EAAY5iB,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,GAE3BktiB,EAAAA,GAAAA,wBAAch6iB,GAAK8K,GAAUA,EAAO8kB,QAAOC,KAAoB,MAATA,GAAiBA,EAAMJ,oBAC7E,MACIzkB,KAAMwc,EACN7D,KAAMmM,EACNC,qBAAsBC,EACtBC,OAAQC,EAAW,kBAGnBlM,EAAoBmM,GAAyBC,GAAqBN,KAChEJ,EACJ9vB,GAAUmb,EAAAA,GAAAA,GAA8B2U,EAAcY,IAGlDP,OAAqDnvB,IAA9BovB,EAA0CA,EAGvEF,GAAmC,SAAlBA,GAA8C,SAAlBA,IAA4B,EACnEG,EAASC,IAAe,EAS9B,IAAIK,EAA0BrF,GAIR,SAAlB4E,GAA8C,SAAlBA,EAC9BS,EAA0BrN,EACjB4M,EAETS,EAA0B1N,EAjIhC,SAAqB7iB,GACnB,MAAsB,kBAARA,GAIdA,EAAI2D,WAAW,GAAK,EACtB,CA4He4P,CAAYvT,KAErBuwB,OAA0B3vB,GAE5B,MAAM4vB,GAAwByphB,EAAAA,GAAAA,SAAmBj6iB,GAAKwc,EAAAA,GAAAA,GAAS,CAC7D0O,kBAAmBqF,EACnB5E,MAvBEA,WAwBD/rB,IACG6wB,EAAoBC,GAIC,oBAAdA,GAA4BA,EAAUlF,iBAAmBkF,IAAaE,EAAAA,GAAAA,GAAcF,GACtF7rB,GAASgsB,GAAgBH,GAAWlU,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CAC7D4S,MAAO+X,GAAa,CAClB/X,MAAO5S,EAAM4S,MACbwL,eACAF,eAIC2N,EAEHI,EAAoB,SAACC,GACzB,IAAIC,EAAsBP,EAAkBM,GAAU,QAAAlkB,EAAAC,UAAA3M,OADhB8wB,EAAW,IAAAtnB,MAAAkD,EAAA,EAAAA,EAAA,KAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAXikB,EAAWjkB,EAAA,GAAAF,UAAAE,GAEjD,MAAMkkB,EAA8BD,EAAcA,EAAY7nB,IAAIqnB,GAAqB,GACnFjJ,GAAiBxD,GACnBkN,EAA4BxwB,MAAKmE,IAC/B,MAAM4S,EAAQ+X,IAAahT,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CAC7Coe,eACAF,aAEF,IAAKtL,EAAMC,aAAeD,EAAMC,WAAW8P,KAAmB/P,EAAMC,WAAW8P,GAAe1P,eAC5F,OAAO,KAET,MAAMA,EAAiBL,EAAMC,WAAW8P,GAAe1P,eACjDqZ,EAAyB,CAAC,EAOhC,OALAnuB,OAAOouB,QAAQtZ,GAAgBzW,SAAQgwB,IAA0B,IAAxBC,EAASC,GAAUF,EAC1DF,EAAuBG,GAAWT,GAAgBU,GAAW/U,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CAC/E4S,UACC,IAEEuM,EAAkBnf,EAAOssB,EAAuB,IAGvD3J,IAAkBuI,GACpBmB,EAA4BxwB,MAAKmE,IAC/B,IAAI2sB,EACJ,MAAM/Z,EAAQ+X,IAAahT,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CAC7Coe,eACAF,aAGF,OAAO8N,GAAgB,CACrB9Y,SAF6B,MAATN,GAA2D,OAAzC+Z,EAAoB/Z,EAAMC,aAAiF,OAAzD8Z,EAAoBA,EAAkBhK,SAA0B,EAASgK,EAAkBzZ,WAGlLyE,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrB4S,UACC,IAGFwY,GACHiB,EAA4BxwB,KAAK2uB,GAEnC,MAAMoC,EAAwBP,EAA4B/wB,OAAS8wB,EAAY9wB,OAC/E,GAAIwJ,MAAMiI,QAAQmf,IAAaU,EAAwB,EAAG,CACxD,MAAMC,EAAe,IAAI/nB,MAAM8nB,GAAuBtM,KAAK,IAE3D6L,EAAsB,IAAID,KAAaW,GACvCV,EAAoBxe,IAAM,IAAIue,EAASve,OAAQkf,EACjD,CACA,MAAM3K,EAAYyJ,EAAsBQ,KAAwBE,GAchE,OAHIlxB,EAAI4mB,UACNG,EAAUH,QAAU5mB,EAAI4mB,SAEnBG,CACT,EAIA,OAHIyJ,EAAsBmB,aACxBb,EAAkBa,WAAanB,EAAsBmB,YAEhDb,CACT,CACF,CC9OehO,GACf,MCAMtK,GAAY,CAAC,YAAa,YAAa,iBAAkB,QAAS,WAAY,WAW9EyK,IAAe5B,EAAAA,GAAAA,KACf64hB,GAA+BC,GAAa,MAAO,CACvDnviB,KAAM,eACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,YAAWoZ,EAAAA,GAAAA,GAAWrhB,OAAOohB,EAAW2V,cAAe3V,EAAWm2hB,OAAStviB,EAAOsviB,MAAOn2hB,EAAWo2hB,gBAAkBvviB,EAAOuviB,eAAe,IAGtKC,GAAuB50hB,GCpBd,SAAsBvJ,GAKlC,IALmC,MACpCtX,EAAK,KACLmG,EAAI,aACJiY,EAAY,QACZF,GACD5G,EACK1E,EAAQw6T,GAAShvT,GASrB,OARIF,IACFtL,EAAQA,EAAMsL,IAAYtL,GAERO,GAAc,CAChCP,QACAzM,OACAnG,SAGJ,CDIwC01iB,CAAoB,CAC1D11iB,MAAO6gB,EACP1a,KAAM,eACNiY,aAAYA,KEpBd,MAAMu3hB,GFqCS,WAAuC,IAAd56iB,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjD,MAAM,sBAEJ2tiB,EAAwBP,GAA4B,cACpDQ,EAAgBJ,GAAoB,cACpC9yhB,EAAgB,gBACd5nB,EACE+6iB,EAAgBF,GAAsBt+hB,IAAA,IAAC,MAC3C1E,EAAK,WACLwM,GACD9H,EAAA,OAAKK,EAAAA,GAAAA,GAAS,CACbyI,MAAO,OACP4W,WAAY,OACZiC,UAAW,aACXnC,YAAa,OACbzW,QAAS,UACPjB,EAAWo2hB,gBAAkB,CAC/Bx/gB,YAAapjB,EAAM+d,QAAQ,GAC3BmF,aAAcljB,EAAM+d,QAAQ,GAE5B,CAAC/d,EAAMuK,YAAYG,GAAG,OAAQ,CAC5B0Y,YAAapjB,EAAM+d,QAAQ,GAC3BmF,aAAcljB,EAAM+d,QAAQ,KAE9B,IAAEje,IAAA,IAAC,MACHE,EAAK,WACLwM,GACD1M,EAAA,OAAK0M,EAAWm2hB,OAASp3iB,OAAO4pB,KAAKnV,EAAMuK,YAAYqM,QAAQpY,QAAO,CAACoM,EAAKu4hB,KAC3E,MAAMpnhB,EAAaonhB,EACb13iB,EAAQuU,EAAMuK,YAAYqM,OAAOmF,GAOvC,OANc,IAAVtwB,IAEFmf,EAAI5K,EAAMuK,YAAYG,GAAGqR,IAAe,CACtCoG,SAAU,GAAG12B,IAAQuU,EAAMuK,YAAY8S,SAGpCzS,CAAG,GACT,CAAC,EAAE,IAAEgP,IAAA,IAAC,MACP5Z,EAAK,WACLwM,GACDoN,EAAA,OAAK7U,EAAAA,GAAAA,GAAS,CAAC,EAA2B,OAAxByH,EAAW2V,UAAqB,CAEjD,CAACniB,EAAMuK,YAAYG,GAAG,OAAQ,CAE5ByX,SAAUj3B,KAAK2qB,IAAI7V,EAAMuK,YAAYqM,OAAOwE,GAAI,OAEjD5O,EAAW2V,UAEU,OAAxB3V,EAAW2V,UAAqB,CAE9B,CAACniB,EAAMuK,YAAYG,GAAG8B,EAAW2V,WAAY,CAE3CA,SAAU,GAAGniB,EAAMuK,YAAYqM,OAAOpK,EAAW2V,YAAYniB,EAAMuK,YAAY8S,SAEjF,IACI0lhB,EAAyBjviB,EAAAA,YAAiB,SAAmBma,EAAS5Z,GAC1E,MAAMjH,EAAQ61iB,EAAch1hB,IACtB,UACFrS,EAAS,UACTsS,EAAY,MAAK,eACjB00hB,GAAiB,EAAK,MACtBD,GAAQ,EAAK,SACbxghB,EAAW,MACT/0B,EACJiW,GAAQC,EAAAA,GAAAA,GAA8BlW,EAAO2T,IACzCyL,GAAazH,EAAAA,GAAAA,GAAS,CAAC,EAAG3X,EAAO,CACrC8gB,YACA00hB,iBACAD,QACAxghB,aAII1T,EAxFgBG,EAACpC,EAAYuD,KACrC,MAGM,QACJtB,EAAO,MACPk0hB,EAAK,eACLC,EAAc,SACdzghB,GACE3V,EACEkC,EAAQ,CACZzhB,KAAM,CAAC,OAAQk1B,GAAY,YAAW1V,EAAAA,GAAAA,GAAWrhB,OAAO+2B,MAAcwghB,GAAS,QAASC,GAAkB,mBAE5G,OAAOj0hB,EAAAA,GAAAA,GAAeD,GAZWxC,IACxBC,EAAAA,GAAAA,IAAqB4D,EAAe7D,IAWUuC,EAAQ,EA2E7CG,CAAkBpC,EAAYuD,GAC9C,OAGEb,EAAAA,GAAAA,KAAKg0hB,GAAen+hB,EAAAA,GAAAA,GAAS,CAC3B+J,GAAIZ,EAGJ1B,WAAYA,EACZ5Q,WAAWmT,EAAAA,GAAAA,GAAKN,EAAQxhB,KAAM2O,GAC9BvH,IAAKA,GACJgP,GAEP,IAWA,OAAO0/hB,CACT,CEvIkBK,CAAgB,CAChCJ,uBAAuB12hB,EAAAA,GAAAA,IAAO,MAAO,CACnC/Y,KAAM,eACN2Y,KAAM,OACNK,kBAAmBA,CAACnf,EAAOiG,KACzB,MAAM,WACJmZ,GACEpf,EACJ,MAAO,CAACiG,EAAOpG,KAAMoG,EAAO,YAAWoZ,EAAAA,GAAAA,GAAWrhB,OAAOohB,EAAW2V,cAAe3V,EAAWm2hB,OAAStviB,EAAOsviB,MAAOn2hB,EAAWo2hB,gBAAkBvviB,EAAOuviB,eAAe,IAG5KK,cAAeh1hB,IAAWpO,EAAAA,GAAAA,GAAgB,CACxCzS,MAAO6gB,EACP1a,KAAM,mBA8CV,qECXA,GArCcmR,IAAqC,IAApC,mBAAE2+hB,GAAqB,GAAO3+hB,EAC3C,OACEmK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACo0hB,GAAO,CAACz2iB,SAAS,gBAElBgiB,EAAAA,GAAAA,MAAA,OACEjT,UAAW,6BACTyniB,EAAqB,0BAA4B,IAEnDjrhB,MAAO,CACL9W,WACwB,GAAtB+hiB,EAA6B,QAAQE,OAAqB,IAC5Dl2iB,SAAA,EAEAg2iB,IAAsBn0hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,gBACrCyniB,IAAsBn0hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,iBACvCsT,EAAAA,GAAAA,KAAC8vgB,GAAI,CAACl2hB,WAAS,EAAC8S,UAAU,sCAAqCvO,UAC7DwhB,EAAAA,GAAAA,MAACk0hB,GAAS,CACR5ghB,SAAS,KACTvmB,UAAU,4DAA2DvO,SAAA,EAErE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,IAAGt4J,UACb6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK6md,GACLzliB,UAAU,oCACV0oP,IAAI,uBAGRp1O,EAAAA,GAAAA,KAACuiT,GAAM,UAGXviT,EAAAA,GAAAA,KAACozhB,GAAM,SAER,kEC4DP,GA7Fc59hB,IAAqC,IAApC,mBAAE2+hB,GAAqB,GAAO3+hB,EAC3C,MAAOi1I,EAAUi2O,IAAezvM,EAAAA,EAAAA,WAAS,GAezC,OAbAN,EAAAA,EAAAA,YAAU,KACR,MAAM2xM,EAAeA,KACnB5B,EAAY7kW,OAAOwmW,YAAc,IAAI,EAMvC,OAJAC,IAGAzmW,OAAOtY,iBAAiB,SAAU++W,GAC3B,KACLzmW,OAAOy+D,oBAAoB,SAAUgoS,EAAa,CACnD,GACA,KAGD3iX,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CAEGssJ,IACC9qI,EAAAA,GAAAA,MAAA,OACEjT,UAAW,6BACTyniB,EAAqB,0BAA4B,IAEnDjrhB,MAAO,CACL9W,WACwB,GAAtB+hiB,EAA6B,QAAQE,OAAqB,IAC5Dl2iB,SAAA,EAEAg2iB,IAAsBn0hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,gBACrCyniB,IAAsBn0hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,iBACvCsT,EAAAA,GAAAA,KAAC8vgB,GAAI,CAACl2hB,WAAS,EAAC8S,UAAU,sCAAqCvO,UAC7DwhB,EAAAA,GAAAA,MAACk0hB,GAAS,CACR5ghB,SAAS,KACTvmB,UAAU,4DAA2DvO,SAAA,EAErE6hB,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,IAAGt4J,UACb6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK6md,GACLzliB,UAAU,oCACV0oP,IAAI,uBAGRp1O,EAAAA,GAAAA,KAACuiT,GAAM,UAGXviT,EAAAA,GAAAA,KAACozhB,GAAM,QAIT3oZ,IACA9qI,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uCAAsCvO,SAAA,EACnD6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,iBACfiT,EAAAA,GAAAA,MAAA,OAAKjT,UAAW,mBAAmBvO,SAAA,EACjC6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAKgpd,GACLl/S,IAAI,mBACJ1oP,UAAU,6CAEZsT,EAAAA,GAAAA,KAACqlT,GAAO,CAAC5uK,GAAG,IAAGt4J,UACb6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAK6md,GACLzliB,UAAU,oCACV0oP,IAAI,uBAGRz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mGAAkGvO,SAAA,EAC/G6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,kCAAiCvO,SAAC,uDAGhD6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,kBAAiBvO,SAAC,+IAOnC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAW,iDAAiDvO,UAC/D6hB,EAAAA,GAAAA,KAAC8vgB,GAAI,CAACl2hB,WAAS,EAAC8S,UAAU,sCAAqCvO,UAC7D6hB,EAAAA,GAAAA,KAAC6zhB,GAAS,CACR5ghB,SAAS,KACTvmB,UAAU,4DAA2DvO,UAErE6hB,EAAAA,GAAAA,KAACuiT,GAAM,eAMhB,ECzEP,MAAMgyO,IAAqBxyQ,EAAAA,EAAAA,eAAc,MACzC,SAASyyQ,GAAmBh/hB,GAAyE,IAAxE,SAAEkxL,EAAQ,MAAEtsM,EAAK,oBAAEq6iB,EAAmB,kBAAEC,EAAiB,SAAEv2iB,GAAWqX,EAC/F,MAAMm/hB,EAjCV,WAAwC,IAAd17iB,EAAOkN,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjC,MAAM,MAAE/L,EAAK,oBAAEq6iB,EAAmB,kBAAEC,GAAsBz7iB,GACnD07iB,EAA0BC,IAA+B3jX,EAAAA,EAAAA,WAAS,GACnE4jX,GAAyB7jX,EAAAA,EAAAA,QAAOyjX,GACtCI,EAAuBhviB,QAAU4uiB,EACjC,MAAMK,GAAuB9jX,EAAAA,EAAAA,QAAO0jX,GAuBpC,OAtBAI,EAAqBjviB,QAAU6uiB,GAC/B/jX,EAAAA,EAAAA,YAAU,KACN,MAAMokX,EAAYl6iB,SAASC,cAAc,UAgBzC,OAfAi6iB,EAAUzpd,IAAM,yCAChBypd,EAAUnzd,OAAQ,EAClBmzd,EAAUvhgB,OAAQ,EAClBuhgB,EAAU36iB,MAAQA,EAClB26iB,EAAU53d,OAAS,KACf,IAAIv2C,EACJgugB,GAA4B,GACc,QAAzChugB,EAAKiugB,EAAuBhviB,eAA4B,IAAP+gC,GAAyBA,EAAG3jC,KAAK4xiB,EAAuB,EAE9GE,EAAU73d,QAAU,KAChB,IAAIt2C,EACJgugB,GAA4B,GACY,QAAvChugB,EAAKkugB,EAAqBjviB,eAA4B,IAAP+gC,GAAyBA,EAAG3jC,KAAK6xiB,EAAqB,EAE1Gj6iB,SAASqnD,KAAKlnD,YAAY+5iB,GACnB,KACHl6iB,SAASqnD,KAAKpmD,YAAYi5iB,EAAU,CACvC,GACF,CAAC36iB,IACGu6iB,CACX,CAIqCK,CAAiB,CAC9C56iB,QACAq6iB,sBACAC,sBAEEvqO,GAAer5I,EAAAA,EAAAA,UAAQ,KAAM,CAC/B4V,WACAiuW,8BACA,CAACjuW,EAAUiuW,IACf,OAAQ/viB,EAAAA,cAAoB2viB,GAAmBxviB,SAAU,CAAExI,MAAO4tU,GAAgBhsU,EACtF,CACA,SAAS82iB,KACL,MAAMlhf,GAAU3uD,EAAAA,EAAAA,YAAWmviB,IAC3B,IAAKxgf,EACD,MAAM,IAAI5oD,MAAM,mEAEpB,OAAO4oD,CACX,iBC7BA,MAuaA,GAvaemhf,KAAO,IAADC,EAAAC,EACnB,IAAKvuO,EAAcI,GAAmBR,KACtC,MAAO4uO,EAAYC,IAAiBrkX,EAAAA,EAAAA,UAAS,SACtCh4F,EAAU8zb,IAAe97V,EAAAA,EAAAA,UAAS,CACvCnvK,MAAO,GACPC,SAAU,MAELirgB,EAAYC,IAAiBh8V,EAAAA,EAAAA,UAAS,CAC3CnvK,MAAO,GACPC,SAAU,KAINk1I,EAAc16J,GAAqB,KAAVA,GAEzB,QAAE8gT,EAAO,SAAE4jF,EAAQ,UAAEC,EAAS,MAAEzsX,EAAK,QAAEM,EAAO,WAAE62gB,GACpD5iN,IAAa9nT,GAAUA,EAAMi3D,OACzBm2G,EAAWm8I,KACXjM,EAAWR,KACXu3O,EAAM,UAAuD,QAA/CJ,EAAGp/hB,KAAK7V,MAAMi3C,aAAaixQ,QAAQ,oBAAY,IAAA+sP,OAAA,EAA5CA,EAA8Ct4gB,IAEV,QAA/Cu4gB,EAAGr/hB,KAAK7V,MAAMi3C,aAAaixQ,QAAQ,oBAAY,IAAAgtP,GAA5CA,EAA8CtzhB,MAE7D0zhB,GAAAA,GAAQ10f,WAXNtX,eAWkD,CAClD28J,UAAW,CACTM,OAAQ8uW,KAGZ,MAAOzxC,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C+yU,EAAcC,IAAmBhzU,EAAAA,EAAAA,UAAS,KAC1CizU,EAAcC,IAAmBlzU,EAAAA,EAAAA,WAAS,GACjDt7G,QAAQ/qB,IAAI,UAAWk5c,GAEvB,MAAM,SAAE2qC,GAAaG,MACdnkZ,EAAUi2O,IAAezvM,EAAAA,EAAAA,WAAS,IAEzCN,EAAAA,EAAAA,YAAU,KACR,MAAM2xM,EAAeA,KACnB5B,EAAY7kW,OAAOwmW,YAAc,IAAI,EAMvC,OAJAC,IAGAzmW,OAAOtY,iBAAiB,SAAU++W,GAC3B,KACLzmW,OAAOy+D,oBAAoB,SAAUgoS,EAAa,CACnD,GACA,IAGH,MAyBMorJ,EAAqBhyhB,IACzB,MAAM,KAAE2I,EAAI,MAAE9H,GAAUb,EAAEqnB,OAC1BgqgB,EAAY,IACP9zb,EACH,CAAC50F,GAAO9H,EAAMD,QACd,EAiCEuxhB,EAActxhB,IAClB,IAAIstW,GAAQ,EACZ,MAAM+jL,EAAarxhB,EAAMD,OAkBzB,OAjBK26J,EAAW22X,GAKJ55G,GAAa45G,IAMvBX,EAAc,IACTD,EACHlrgB,MAAO,KAET+nV,GAAQ,GATRojL,EAAc,IACTD,EACHlrgB,MAAO,0BAPTmrgB,EAAc,IACTD,EACHlrgB,MAAO,sBAcJ+nV,CAAK,EAIRikL,EAAiBvxhB,IACrB,IAAIstW,GAAQ,EACZ,MAAM+jL,EAAarxhB,EAAMD,OAazB,OAZK26J,EAAW22X,IAMdX,EAAc,IACTD,EACHjrgB,SAAU,KAEZ8nV,GAAQ,GATRojL,EAAc,IACTD,EACHjrgB,SAAU,yBASP8nV,CAAK,GAGdl5K,EAAAA,EAAAA,YAAU,KAERx5I,aAAa0we,WAAW,WAAW,GAClC,KAGHl3V,EAAAA,EAAAA,YAAU,KACJ0lP,eAAejuH,QAAQ,oBACzBiuH,eAAewxG,WAAW,kBAC1Bhsf,OAAO/a,SAAS20hB,SAClB,GACC,KAEH9kX,EAAAA,EAAAA,YAAU,KAKR,GAJIl8K,IACFsvf,EAAgBtvf,GAChB0vf,GAAgB,IAEdljI,GAAYC,EAAW,CAuBzB,GApBAs0K,GAAAA,GAAQrziB,IAAI,CAAEoziB,QAKdC,GAAAA,GAAQjzhB,MAAM,CACZioL,SAAU,OACVj4L,OAAQ,QACRyS,MAAOuwhB,IAIT9G,EAASvtK,GAQI,OAARD,QAAQ,IAARA,IAAAA,EAAUmlJ,WACb,OAAO5nN,EAAS,qBAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,gBAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,uBAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,aAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,aAAmBt/M,EAAa3kU,IAAI,OACrD,OAAOs8T,EAASqI,EAAa3kU,IAAI,OAAQ,CACvC1F,SAAS,IAIR,GAA4B,IAAhB,OAARykY,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,IAOpB,IAmBC,CAACA,EAAUyiE,EAAUC,EAAWzsX,EAAOM,EAAS62gB,IAGnD,MAAO8pB,EAAgBC,IAAqB1kX,EAAAA,EAAAA,UAAS,IAE/C2kX,ED9IR,SAAuBlrhB,GAAyG,IAAxG,KAAEwua,EAAO,WAAU,MAAEtkX,EAAQ,GAAE,UAAE4vJ,EAAS,QAAEnzD,EAAO,gBAAEwkY,EAAe,cAAEC,EAAa,MAAE50hB,KAAUhjB,GAAOwsB,EAC1H,MAAM,SAAEg8K,EAAQ,yBAAEiuW,GAA6BM,KACzCc,GAAY/kX,EAAAA,EAAAA,UACZglX,GAAehlX,EAAAA,EAAAA,QAAOwzC,GAC5BwxU,EAAanwiB,QAAU2+N,EACvB,MAAMyxU,GAAajlX,EAAAA,EAAAA,QAAO3f,GAC1B4kY,EAAWpwiB,QAAUwrK,EACrB,MAAM6kY,GAAqBllX,EAAAA,EAAAA,QAAO6kX,GAClCK,EAAmBrwiB,QAAUgwiB,GAC7BllX,EAAAA,EAAAA,YAAU,KACN,IAAI/pJ,EAAIi+P,EACR,IAAK8vQ,EACD,OACJ,MAAMwB,EAAwB,aAATj9G,EAAsB,kBAAoB,iBACzD59Y,EAA0I,QAAhIupP,EAA8E,QAAxEj+P,EAAgB,OAAX/K,aAA8B,IAAXA,YAAoB,EAASA,OAAOu6gB,cAA2B,IAAPxvgB,OAAgB,EAASA,EAAGyvgB,gBAA6B,IAAPxxQ,OAAgB,EAASA,EAAGyxQ,OAAOH,GAAc,CACrMI,UAAW7vW,EACX9xH,MAAOkhe,EAAgBlhe,EAAQ,wBAAwBA,IACvDh1E,SAAW+6C,IACP,IAAI/T,EAAIi+P,EACR,GAAIlqP,EAASlmC,MACT,OAAqC,QAA7BmyB,EAAKqvgB,EAAWpwiB,eAA4B,IAAP+gC,OAAgB,EAASA,EAAG3jC,KAAKgziB,EAAYt7f,GAC9D,QAA/BkqP,EAAKmxQ,EAAanwiB,eAA4B,IAAPg/R,GAAyBA,EAAG5hS,KAAK+yiB,EAAcr7f,EAAS,EAEpG67f,eAAiBC,IACb,IAAI7vgB,EACkC,QAArCA,EAAKsvgB,EAAmBrwiB,eAA4B,IAAP+gC,GAAyBA,EAAG3jC,KAAKiziB,EAAoBO,EAAc,EAErHv1hB,WACGhjB,IAEP63iB,EAAUlwiB,QAAUy1C,CAAM,GAE3B,CAACorJ,EAAUiuW,EAA0Bz7G,EAAMtkX,EAAO1zD,IACrD,MAAMw1hB,GAAoBhmX,EAAAA,EAAAA,cAAaimX,IAAqB,IAAI/vgB,EAAI,OAAoC,QAA5BA,EAAKmvgB,EAAUlwiB,eAA4B,IAAP+gC,OAAgB,EAASA,EAAGgwgB,mBAAmBD,EAAe,GAAK,IAC7KE,GAAoBnmX,EAAAA,EAAAA,cAAY,KAAQ,IAAI9pJ,EAAI,OAAoC,QAA5BA,EAAKmvgB,EAAUlwiB,eAA4B,IAAP+gC,OAAgB,EAASA,EAAGkwgB,aAAa,GAAK,IAChJ,MAAgB,aAAT59G,EAAsBw9G,EAAoBG,CACrD,CC0G0BE,CAAe,CACrCvyU,UAAY7pL,IACVg7B,QAAQ/qB,IAAY,OAARjQ,QAAQ,IAARA,OAAQ,EAARA,EAAU4re,cACtB,IAAIywB,EAAc,CAChBzwB,aAAsB,OAAR5re,QAAQ,IAARA,OAAQ,EAARA,EAAU4re,cAG1Bj4V,EAASg4V,GAAY0wB,GAAa,EAEpC3lY,QAAU58J,GAAUkhE,QAAQ/qB,IAAI,iBAAkBn2C,KAGpD,OACEkL,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CACFx+T,UAAW,gEACT+9I,EAAW,sCAAwC,MACjDtsJ,UAEJwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,mCAAkCvO,SAAA,EAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wDAAuDvO,SAAC,kBAGtEwhB,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAiB29f,SAzKnB3ugB,IACpBA,EAAE88K,iBAnCAq1W,EAAW50b,EAASn3E,QAAUgsgB,EAAc70b,EAASl3E,YAqCrDk3E,EAASn3E,MAAQm3E,EAASn3E,MAAM5X,cAChCokL,EAASy1V,GAAU9qb,IACrB,EAoK8D96F,SAAA,EACtDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,QACRl+f,UAAU,uCAAsCvO,SACjD,WAGDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,QACLoG,KAAK,QACLqI,UAAW,wKACTsghB,EAAWlrgB,MAAQ,gBAAkB,IAEvC+a,GAAG,QACHtgC,MAAO08F,EAASn3E,MAChBy6I,SAAUmxX,EACVhqgB,OAAShoB,GAAMmyhB,EAAWnyhB,EAAEqnB,OAAOxmB,SAEpCywhB,EAAWlrgB,QACV9B,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SAAE6uhB,EAAWlrgB,eAIvDnC,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE4qf,QAAQ,WACRl+f,UAAU,uCAAsCvO,SACjD,cAGDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qBAAoBvO,SAAA,EACjC6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,WACLqI,UAAW,kLACTsghB,EAAWjrgB,SAAW,gBAAkB,IAE1C8a,GAAG,WACHtgC,MAAO08F,EAASl3E,SAChBw6I,SAAUmxX,EACVhqgB,OAAShoB,GAAMoyhB,EAAcpyhB,EAAEqnB,OAAOxmB,UAExCyjB,EAAAA,GAAAA,KAAA,QACE,cAAY,qBACZtT,UAAU,6EACV2vJ,QAAU3gK,GAAMk4a,GAAyBl4a,GAAGyC,UAE5C6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKyoV,GAAQ3+K,IAAI,4BAGzB43R,EAAWjrgB,WACV/B,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SACjC6uhB,EAAWjrgB,eAIlB/B,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnB6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,mBACH/pJ,UAAU,oDAAmDvO,SAC9D,wBAIH6hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,oFACVwF,WAlPH8ha,GAAa/6U,EAASn3E,QAAUm3E,EAASl3E,WAkPVs7R,EAAQl/S,SAEnCk/S,GACC19R,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,6CACVkoT,MAAM,6BACNp2S,KAAK,OACLY,QAAQ,YAAWjhB,SAAA,EAEnB6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAU,aACV22f,GAAG,KACHC,GAAG,KACHr4e,EAAE,KACFkhT,OAAO,eACPziU,YAAY,OAEdsW,EAAAA,GAAAA,KAAA,QACEtT,UAAU,aACV8R,KAAK,eACLhQ,EAAE,uHAEA,mBAIR,gBAKNwR,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4BAA2BvO,UACxC6hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,sBAAqBvO,SAAC,UAGxC6hB,EAAAA,GAAAA,KAACiugB,GAAW,CACVhwhB,KAAK,SACLo+J,QAASu5Y,EACT7jiB,KAAK,uBACLrF,UAAU,UAGZiT,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,2BAA0BvO,SAAA,CAAC,yBACf,KACvB6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAG,UACH/pJ,UAAU,0CAAyCvO,SACpD,uBAKH6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,4DAA2DvO,UACtE6hB,EAAAA,GAAAA,KAAA,UAAQq8I,QAlVO46Y,KACvB3B,GAAe4B,GACM,SAAnBA,EAA4B,UAAY,SAE1Cr7gB,OAAOg/H,SAAS,CACd/jI,IAAK,EACLs3f,SAAU,UACV,EA2UwCjwhB,SAChB,YAAfk3iB,EACC,mBAEAr1hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAI,4CAAsDt4J,SAC3D,gCAQV2lgB,IACC9jf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,KAAMihB,QAAQood,GACdn9E,QA3Wao+E,KACnBhB,EAAgB,IAChBI,EAAgB,IAChBF,EAAgB,IAChB31U,EAAS69V,KAAgB,EAwWnB1/e,QAASq3d,EACT9zE,QAASg0E,EACTnnH,UAAWqnH,MAGd,ECrOP,GAnMuBizC,KACrB,MAAM7oX,EAAWm8I,KACXjM,EAAWR,MAEV8lM,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C+yU,EAAcC,IAAmBhzU,EAAAA,EAAAA,UAAS,KAC1CizU,EAAcC,IAAmBlzU,EAAAA,EAAAA,WAAS,IAU1Ch4F,EAAU8zb,IAAe97V,EAAAA,EAAAA,UAAS,CACvCnvK,MAAO,MAEFkrgB,EAAYC,IAAiBh8V,EAAAA,EAAAA,UAAS,CAC3CnvK,MAAO,MASH,QAAEu7R,EAAO,SAAE4jF,EAAQ,UAAEC,EAAS,MAAEzsX,EAAK,QAAEM,EAAO,WAAE62gB,GACpD5iN,IAAa9nT,GAAUA,EAAMi3D,OAwBzB01c,EAActxhB,IAClB,IAAIstW,GAAQ,EACZ,MAAM+jL,EAAarxhB,EAAMD,OAkBzB,MAtBkBC,IAAqB,KAAVA,EAKxB06J,CAAW22X,GAKJ55G,GAAa45G,IAMvBX,EAAc,IACTD,EACHlrgB,MAAO,KAET+nV,GAAQ,GATRojL,EAAc,IACTD,EACHlrgB,MAAO,0BAPTmrgB,EAAc,IACTD,EACHlrgB,MAAO,sBAcJ+nV,CAAK,EA8Bd,OA3BAl5K,EAAAA,EAAAA,YAAU,KACJl8K,IACFsvf,EAAgBtvf,GAChB0vf,GAAgB,IAEdljI,GAAYC,GAAqB,OAARD,QAAQ,IAARA,GAAAA,EAAUmlJ,YACrC5nN,EAAS,KAGPzpT,GAAW62gB,IACb7nB,EACE,6FAEFE,EAAgB,0DAChBE,GAAgB,GAChBvnf,YAAW,KACT0xK,EAAS69V,MAGTY,EAAY,CACVjrgB,MAAO,IACP,GACD,KAEL,GACC,CAAC08S,EAAUyiE,EAAUC,EAAWzsX,EAAOM,EAAS62gB,KAGjDjsgB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,kGAAiGvO,UAC9GwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,mCAAkCvO,SAAA,EAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wDAAuDvO,SAAC,iBAGtEwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,wBAAuBvO,SAAA,CAAC,sDACiB,QAEtDwhB,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAiB29f,SAtEnB3ugB,IACpBA,EAAE88K,iBApBYq1W,EAAW50b,EAASn3E,SAsBhCm3E,EAASn3E,MAAQm3E,EAASn3E,MAAM5X,cAChCokL,EAAS88V,GAAenyb,IAC1B,EAiE8D96F,SAAA,EACtD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UAEnBwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,QACLoG,KAAK,QACLqI,UAAW,wKACTsghB,EAAWlrgB,MAAQ,gBAAkB,IAEvC+a,GAAG,QACH2gI,YAAY,iBACZjhK,MAAO08F,EAASn3E,MAChBy6I,SA9FW7gK,IACzB,MAAM,KAAE2I,EAAI,MAAE9H,GAAUb,EAAEqnB,OAC1BgqgB,EAAY,IACP9zb,EACH,CAAC50F,GAAO9H,GACR,EA0FYmnB,OAAShoB,GAAMmyhB,EAAWnyhB,EAAEqnB,OAAOxmB,SAEpCywhB,EAAWlrgB,QACV9B,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SAAE6uhB,EAAWlrgB,cAKvD9B,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,yFACVwF,UAlGH8ha,GAAa/6U,EAASn3E,QAkGSu7R,EAAQl/S,SAEnCk/S,GACC19R,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,6CACVkoT,MAAM,6BACNp2S,KAAK,OACLY,QAAQ,YAAWjhB,SAAA,EAEnB6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAU,aACV22f,GAAG,KACHC,GAAG,KACHr4e,EAAE,KACFkhT,OAAO,eACPziU,YAAY,OAEdsW,EAAAA,GAAAA,KAAA,QACEtT,UAAU,aACV8R,KAAK,eACLhQ,EAAE,uHAEA,qBAIR,kBAINwR,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,cAAavO,UAC1B6hB,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAI,UACJ/pJ,UAAU,6DAA4DvO,SACvE,yBAMN2lgB,IACC9jf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJnuE,UAAU,EACVl8Z,KAAMihB,QAAQood,GACdn9E,QA/Kao+E,KACnBhB,EAAgB,IAChBI,EAAgB,IAChBF,EAAgB,IAChBzlM,EAAS,IAAI,EA4KP/xR,QAASq3d,EACT9zE,QAASg0E,EACTnnH,UAAWqnH,EACXntE,WAAY,cAGf,ECmDP,GAjPwBqgH,KACtB,MAAM/6gB,EAAW84Y,GAAkBrnB,KAC5B70T,EAAU8zb,IAAe97V,EAAAA,EAAAA,UAAS,CACvC6nP,IAAK,GACLh3Z,MAAOq1B,aAAaixQ,QAAQ,UAAYjxQ,aAAaixQ,QAAQ,eAExD4kO,EAAYC,IAAiBh8V,EAAAA,EAAAA,UAAS,CAC3C6nP,IAAK,GACLh3Z,MAAO,MAEFu1hB,EAAYC,IAAiBrmX,EAAAA,EAAAA,WAAS,IAEtC6yU,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C+yU,EAAcC,IAAmBhzU,EAAAA,EAAAA,UAAS,KAC1CizU,EAAcC,IAAmBlzU,EAAAA,EAAAA,WAAS,GAwC3C3C,EAAWm8I,MACX,QAAEptB,EAAO,SAAE4jF,EAAQ,UAAEC,EAAS,MAAEzsX,EAAK,QAAEM,EAAO,WAAE62gB,GACpD5iN,IAAa9nT,GAAUA,EAAMi3D,OACzBqmP,EAAWR,MASjBrtI,EAAAA,EAAAA,YAAU,KAELx5I,aAAaixQ,QAAQ,aACrBjxQ,aAAaixQ,QAAQ,UACd,OAAR64E,QAAQ,IAARA,IAAAA,EAAUmlJ,YAEV5nN,EAAS,UACX,GACC,KACH7tI,EAAAA,EAAAA,YAAU,KAKR,GAJIl8K,IACFsvf,EAAgBtvf,GAChB0vf,GAAgB,IAGhBljI,GACAC,GACQ,OAARD,QAAQ,IAARA,GAAAA,EAAUmlJ,YACa,GAAvBnlJ,EAASklJ,WAET,OAAO3nN,EAAS,KAGb,GAAIzpT,GAAW62gB,GAAsB,OAAR3qJ,QAAQ,IAARA,GAAAA,EAAUmlJ,WAsB1C,GArBAriB,EAAgB6nB,GAChB3nB,EAAgB,iBAChBE,GAAgB,GAkBhB71U,EAAS69V,MACLh1e,aAAaixQ,QAAQ,YACvBoW,EAAS,uBAEN,IAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,gBAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,uBAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,aAGb,GAA4B,IAAhB,OAARyiE,QAAQ,IAARA,OAAQ,EAARA,EAAUklJ,YACjB,OAAO3nN,EAAS,IAClB,CACF,GACC,CAACA,EAAUyiE,EAAUC,EAAWzsX,EAAOM,EAAS62gB,IAwBnD,OACEjsgB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,kGAAiGvO,UAC9GwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,mCAAkCvO,SAAA,EAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wDAAuDvO,SAAC,sBAGtEwhB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,uCAAsCvO,SAAA,CAAC,6DACO6hB,EAAAA,GAAAA,KAAA,UACzDA,EAAAA,GAAAA,KAAA,KAAA7hB,SAAI86F,EAASn3E,YAEfnC,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAiB29f,SAzGnB3ugB,IACpBA,EAAE88K,iBArCiB++X,MACnB,MAAMrnf,EAAS,CAAC,EAChB,IAAIi2C,GAAU,EAYd,OAVKlN,EAAS6/U,KAIZ3yU,GAAU,EACVmxc,EAAcnxc,KAJdj2C,EAAO4oX,IAAM,mBACb3yU,GAAU,GAMZmxc,EAAcnxc,GACd8mb,EAAc/8d,GACPi2C,CAAO,EAwBVoxc,IACFjpX,EAAS+4V,GAAWpub,GACtB,EAqG8D96F,SAAA,EACtD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,OAAMvO,UACnBwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnB6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,OACLoG,KAAK,MACLqI,UAAW,uGACR2qiB,EAA+B,GAAlB,+GAEhBx6gB,GAAG,MACH2gI,YAAY,0BACZjhK,MAAO08F,EAAS6/U,IAChBv8Q,SAvIW7gK,IACzB,MAAM,KAAE2I,EAAI,MAAE9H,GAAUb,EAAEqnB,OAC1BgqgB,EAAY,IACP9zb,EACH,CAAC50F,GAAO9H,IAIG,QAAT8H,GACF4ohB,EAAc,IAAKD,EAAYl0G,IAAK,IACtC,IA+Hak0G,EAAWl0G,MACV94Z,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SAAE6uhB,EAAWl0G,YAKvD94Z,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,yFACVwF,SAAUmrS,EAAQl/S,SAEjBk/S,GACC19R,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,6CACVkoT,MAAM,6BACNp2S,KAAK,OACLY,QAAQ,YAAWjhB,SAAA,EAEnB6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAU,aACV22f,GAAG,KACHC,GAAG,KACHr4e,EAAE,KACFkhT,OAAO,eACPziU,YAAY,OAEdsW,EAAAA,GAAAA,KAAA,QACEtT,UAAU,aACV8R,KAAK,eACLhQ,EAAE,uHAEA,mBAIR,eAINwR,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,yEACV2vJ,QA1FYz6E,UACpB,IAAK,IAADmxV,EACF,MAAM1iX,EAAU,CACdvuC,MAAOm3E,EAASn3E,OAEZzT,QAAaguB,EAASl7B,KAAK6sZ,GAAcK,WAAYh+V,GAGpB,IAAD2iX,EAI/Bw7F,EAJP,GAFA74b,QAAQ/qB,IAAI,OAAQv8C,GAEe,KAA3B,OAAJA,QAAI,IAAJA,GAAc,QAAV0ka,EAAJ1ka,EAAMssC,gBAAQ,IAAAo4X,OAAV,EAAJA,EAAgB9D,YAClB80F,EAAoB,OAAJ11f,QAAI,IAAJA,GAAc,QAAV2ka,EAAJ3ka,EAAMssC,gBAAQ,IAAAq4X,OAAV,EAAJA,EAAgBvmY,SAChCw3d,EAAgB,6BAChBE,GAAgB,QAEhBJ,EAAoB,OAAJ11f,QAAI,IAAJA,GAAc,QAAVmggB,EAAJnggB,EAAMssC,gBAAQ,IAAA6zd,OAAV,EAAJA,EAAgB/he,SAChC03d,GAAgB,EAEpB,CAAE,MAAO1vf,GACPsvf,EAAgB,wBAChBI,GAAgB,EAClB,GAuE+BhmgB,SACxB,qBAKJ2lgB,IACC9jf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,KAAMihB,QAAQood,GACdn9E,QAtNao+E,KACnBhB,EAAgB,IAChBI,EAAgB,IAChBF,EAAgB,GAAG,EAoNbx3d,QAASq3d,EACT9zE,QAASg0E,EACTnnH,UAAWqnH,MAGd,ECgGP,GAxUwBszC,KACtB,MAAMlpX,EAAWm8I,KACXjM,EAAWR,MACX,QACJ3gB,EAAO,SACP4jF,EAAQ,UACRC,EAAS,MACTzsX,EAAK,QACLM,EAAO,WACP62gB,EAAU,iBACVC,EAAgB,iBAChBC,GACE9iN,IAAa9nT,GAAUA,EAAMi3D,QAC1B8gB,EAAU8zb,IAAe97V,EAAAA,EAAAA,UAAS,CACvClvK,SAAU,GACV01hB,gBAAiB,MAEZzqB,EAAYC,IAAiBh8V,EAAAA,EAAAA,UAAS,CAC3ClvK,SAAU,GACV01hB,gBAAiB,MAEZC,EAAiBC,IAAsB1mX,EAAAA,EAAAA,WAAS,IAChD2mX,EAAwBC,IAA6B5mX,EAAAA,EAAAA,WAAS,IAC9D6mX,EAAoBC,IAAyB9mX,EAAAA,EAAAA,UAAS,KACtD41I,EAAcI,GAAmBR,MAEjCq9L,EAAcC,IAAmB9yU,EAAAA,EAAAA,UAAS,KAC1C+yU,EAAcC,IAAmBhzU,EAAAA,EAAAA,UAAS,KAC1CizU,EAAcC,IAAmBlzU,EAAAA,EAAAA,WAAS,GAS3C+mX,EAAuBz7iB,GACpB,QAAQ0nB,KAAK1nB,GAGhB07iB,EAAuB17iB,GACpB,QAAQ0nB,KAAK1nB,GAGhBmxhB,EAAqBhyhB,IACzB,MAAM,KAAE2I,EAAI,MAAE9H,GAAUb,EAAEqnB,OAM1B,GALAgqgB,EAAY,IACP9zb,EACH,CAAC50F,GAAO9H,IAGG,aAAT8H,EAAqB,CACvB,MAAM8hG,EAAUsuU,GAAiBl4a,GACjC,IAAIkwC,EAAU,gCAET0nY,GAAiB53a,KACpBkwC,EAAU,kCAEPynY,GAAuB33a,KAC1BkwC,EAAU,6CAEPurgB,EAAoBz7iB,KACvBkwC,EAAU,6CAEPwrgB,EAAoB17iB,KACvBkwC,EAAU,4CAGPlwC,EAAMD,SACTmwC,EAAU,2BAGZkrgB,EAAmBxxc,GAOjB8mb,EANG9mb,EAMW,IACT6mb,EACHjrgB,SAAU,IAPE,IACTirgB,EACHjrgB,SAAU0qB,GAQhB,CACA,GAAa,oBAATpoC,EAA4B,CAC9B,MAAM8hG,EAAUsuU,GAAiBl4a,GACjC,IAAIkwC,EAAU,gCAET0nY,GAAiB53a,KACpBkwC,EAAU,kCAEPynY,GAAuB33a,KAC1BkwC,EAAU,6CAEPurgB,EAAoBz7iB,KACvBkwC,EAAU,6CAEPwrgB,EAAoB17iB,KACvBkwC,EAAU,4CAEZkrgB,EAAmBxxc,GACdA,EAKMlN,EAASl3E,WAAaxlB,EAC/B0whB,EAAc,IACTD,EACHyqB,gBAAiB,4BAGnBxqB,EAAc,IACTD,EACHyqB,gBAAiB,KAZnBxqB,EAAc,IACTD,EACHyqB,gBAAiBhrgB,GAavB,GAGIyrgB,EAAcA,IAEhBj/c,EAASl3E,SAASvoB,QAAU,GAC5Bk+iB,GACAz+c,EAASl3E,WAAak3E,EAASw+c,iBAInC9mX,EAAAA,EAAAA,YAAU,KACR,GAAKk2I,EAAa3kU,IAAI,sBAEf,CACL,MAAMmuD,EAAU,CACdk7d,mBAAoB1kN,EAAa3kU,IAAI,uBAGvCosL,EAASm9V,GAAyBp7d,GACpC,MAPEmuQ,EAAS,UAOX,GACC,KAEH7tI,EAAAA,EAAAA,YAAU,KACHx5I,aAAaixQ,QAAQ,WACxB,GAED,KAmBHz3H,EAAAA,EAAAA,YAAU,KACJl8K,IACFsvf,EAAgBtvf,GAChB0vf,GAAgB,IAKdljI,GAAYC,GAAqB,OAARD,QAAQ,IAARA,GAAAA,EAAUmlJ,YACrC5nN,EAAS,KAGPzpT,GAAW62gB,GAAcC,GAAoBC,IAC/C/nB,EAAgB6nB,GAChB3nB,EAAgB,qBAChBE,GAAgB,GAChBvnf,YAAW,KACT0xK,EAAS69V,MACT3tN,EAAS,WACTuuN,EAAY,CACVhrgB,SAAU,GACV01hB,gBAAiB,IACjB,GACD,KAGL,GACC,CAACj5O,EAAUyiE,EAAUC,EAAWzsX,EAAOM,EAAS62gB,IAEnD,MAAMusB,GAAYnnX,EAAAA,EAAAA,QAAO,MAEzB,OACErxK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACE6hB,EAAAA,GAAAA,KAACkrT,GAAG,CAACx+T,UAAU,kGAAiGvO,UAC9GwhB,EAAAA,GAAAA,MAACurT,GAAG,CAACx+T,UAAU,mCAAkCvO,SAAA,EAC/C6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wDAAuDvO,SAAC,oBAItEwhB,EAAAA,GAAAA,MAAA,QAAMjT,UAAU,iBAAiB29f,SAzDnB3ugB,IAEpB,GADAA,EAAE88K,iBACG0/X,IAEE,CACLH,EAAsB,IAKtB,IAAI1nf,EAAU,CACZk7d,mBAAoB1kN,EAAa3kU,IAAI,sBACrC6f,SAAUk3E,EAASw+c,iBAErBnpX,EAASg9V,GAAcj7d,GACzB,MAZE0nf,EAAsB,0BAYxB,EA0C8D55iB,SAAA,EACtDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnBwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qBAAoBvO,SAAA,EACjC6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,WACLqI,UAAW,qMACRgriB,EAAoC,GAAlB,iBAErB76gB,GAAG,WACH2gI,YAAY,qBACZjhK,MAAO08F,EAASl3E,SAChBw6I,SAAUmxX,EACV/rX,UAAYjmK,IACG,SAATA,EAAErB,MACJqB,EAAE88K,iBACE2/X,EAAUtyiB,UAAYsyiB,EAAUtyiB,QAAQqM,UAC1CimiB,EAAUtyiB,QAAQyyS,QAEtB,KAGJt4R,EAAAA,GAAAA,KAAA,QACE,cAAY,qBACZtT,UAAU,6EACV2vJ,QAAU3gK,GAAMk4a,GAAyBl4a,GAAGyC,UAE5C6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKyoV,GAAQ3+K,IAAI,6BAGxBsiT,GAAmB1qB,EAAWjrgB,WAC9B/B,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SACjC6uhB,EAAWjrgB,eAIlBpC,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,OAAMvO,SAAA,EACnBwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,qBAAoBvO,SAAA,EACjC6hB,EAAAA,GAAAA,KAAA,SACE/hB,KAAK,WACLoG,KAAK,kBACLqI,UAAW,qMACRkriB,EAA2C,GAAlB,iBAE5B/6gB,GAAG,kBACHtgC,MAAO08F,EAASw+c,gBAChBj6Y,YAAY,uBACZjB,SAAUmxX,EACV/rX,UAAYjmK,IACG,SAATA,EAAErB,MACJqB,EAAE88K,iBACE2/X,EAAUtyiB,UAAYsyiB,EAAUtyiB,QAAQqM,UAC1CimiB,EAAUtyiB,QAAQyyS,QAEtB,KAGJt4R,EAAAA,GAAAA,KAAA,UACE,cAAY,yBACZtT,UAAU,6EACV2vJ,QAAU3gK,GAAMk4a,GAAyBl4a,GACzC6pK,UAAW,EAAEpnK,UAEb6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAKyoV,GAAQ3+K,IAAI,4BAIzB43R,EAAWyqB,kBACVz3hB,EAAAA,GAAAA,KAAA,QAAMtT,UAAU,qBAAoBvO,SACjC6uhB,EAAWyqB,sBAKlBz3hB,EAAAA,GAAAA,KAAA,UACE/hB,KAAK,SACLyO,UAAU,oFACVwF,UAAWgmiB,KAAiB76P,EAC5Bl4S,IAAKgziB,EAAUh6iB,SAEdk/S,GACC19R,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OACEjT,UAAU,6CACVkoT,MAAM,6BACNp2S,KAAK,OACLY,QAAQ,YAAWjhB,SAAA,EAEnB6hB,EAAAA,GAAAA,KAAA,UACEtT,UAAU,aACV22f,GAAG,KACHC,GAAG,KACHr4e,EAAE,KACFkhT,OAAO,eACPziU,YAAY,OAEdsW,EAAAA,GAAAA,KAAA,QACEtT,UAAU,aACV8R,KAAK,eACLhQ,EAAE,uHAEA,mBAIR,4BAMTs1f,IACC9jf,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,KAAMihB,QAAQood,GACdn9E,QA/Rao+E,KACnBhB,EAAgB,IAChBI,EAAgB,IAChBF,EAAgB,GAAG,EA6Rbx3d,QAASq3d,EACT9zE,QAASg0E,EACTnnH,UAAWqnH,MAGd,EChVMk0C,QAAattJ,GAAU,CAClCnT,YAAa,aACb4N,UAAWqrB,GAAoB,CAC7Bp0M,QAASsxL,GACTuhB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EACpC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAKrD,OAJAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACFs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAElCs8C,CAAO,IAGlB9B,UAAY+d,IAAO,CACjBohf,iBAAkBphf,EAAQgnV,SAAS,CACjCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcwB,cACnBlkW,OAAQ,OACRpJ,KAAMmO,MAGViof,iBAAkBrhf,EAAQgnV,SAAS,CACjCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcyB,oBACnBnkW,OAAQ,QACRpJ,KAAMmO,MAGVkof,oBAAqBthf,EAAQgnV,SAAS,CACpCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAc0B,sBACnBpkW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhBoof,oBAAqBxhf,EAAQgnV,SAAS,CACpCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAc4B,sBACnBtkW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhBqof,qBAAsBzhf,EAAQgnV,SAAS,CACrCpyW,MAAQwkB,IAAO,CACbzuC,IAAK,GACL0pC,OAAQ,QACRpJ,KAAMmO,MAGVsof,sBAAuB1hf,EAAQprB,MAAM,CACnCA,MAAOA,KAAA,CACLjqB,IAAkB,OAAbosY,SAAa,IAAbA,QAAa,EAAbA,GAAe6B,oBACpBvkW,OAAQ,UAGZstf,qBAAsB3hf,EAAQprB,MAAM,CAClCA,MAAOA,KAAA,CACLjqB,IAAkB,OAAbosY,SAAa,IAAbA,QAAa,EAAbA,GAAe+B,YACpBzkW,OAAQ,UAGZutf,yBAA0B5hf,EAAQprB,MAAM,CACtCA,MAAOA,KAAA,CACLjqB,IAAkB,OAAbosY,SAAa,IAAbA,QAAa,EAAbA,GAAegC,oBACpB1kW,OAAQ,UAGZwtf,0BAA2B7hf,EAAQprB,MAAM,CACvCA,MAAOA,KAAA,CACLjqB,IAAkB,OAAbosY,SAAa,IAAbA,QAAa,EAAbA,GAAeiC,6BACpB3kW,OAAQ,UAGZytf,6BAA8B9hf,EAAQgnV,SAAS,CAC7CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAc8B,sBACnBxkW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhB2of,oBAAqB/hf,EAAQgnV,SAAS,CACpCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAckC,cACnB5kW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhB4of,mBAAoBhif,EAAQgnV,SAAS,CACnCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcmC,aACnB7kW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhB6of,qBAAsBjif,EAAQgnV,SAAS,CACrCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAc2B,cACnBrkW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhB8of,qBAAsBlif,EAAQgnV,SAAS,CACrCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcoC,eACnB9kW,OAAQ,QACRpJ,KAAM,CACJs2f,SAAUnof,OAIhB+of,4BAA6Bnif,EAAQprB,MAAM,CACzCA,MAAOj7B,IAAA,IAAC,iBAAEyoiB,EAAmB,IAAIzoiB,EAAA,MAAM,CACrCgR,IACEosY,GAAcqG,gCACd,qBACAglJ,EACF/tf,OAAQ,MACT,IAEHguf,2BAA4Brif,EAAQgnV,SAAS,CAC3CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcsG,8BACnBhpW,OAAQ,OACRpJ,KAAMmO,MAGVkpf,2BAA4Btif,EAAQgnV,SAAS,CAC3CpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcuG,8BACnBjpW,OAAQ,SACRpJ,KAAMmO,MAGVmpf,uBAAwBvif,EAAQprB,MAAM,CACpCA,MAAOnhB,IAAA,IAAC,YAAE+uhB,EAAc,IAAI/uhB,EAAA,MAAM,CAChC9I,IACEosY,GAAcwG,2BACd,gBACAilJ,EACFnuf,OAAQ,MACT,IAEHouf,sBAAuBzif,EAAQgnV,SAAS,CACtCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAcyG,yBACnBnpW,OAAQ,OACRpJ,KAAMmO,MAGVspf,sBAAuB1if,EAAQgnV,SAAS,CACtCpyW,MAAQwkB,IAAO,CACbzuC,IAAKosY,GAAc0G,yBACnBppW,OAAQ,SACRpJ,KAAMmO,YAMD,8BACXupf,GAA6B,6BAC7BC,GAA4B,iCAC5BC,GAAgC,kCAChCC,GAAiC,4BACjCC,GAA2B,4BAC3BC,GAA2B,wCAC3BC,GAAuC,+BACvCC,GAA8B,8BAC9BC,GAA6B,+BAC7BC,GAA8B,gCAC9BC,GAA+B,+BAC/BC,GAA8B,gCAC9BC,GAA+B,oCAC/BC,GAAmC,sCACnCC,GAAqC,sCACrCC,GAAqC,+BACrCC,GAA8B,iCAC9BC,GAAgC,iCAChCC,IACE1C,GC9LE2C,GAAwBvliB,IAAkB,IAAjB,QAAEmxa,GAASnxa,EACxC,OACEwK,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACE6hB,EAAAA,GAAAA,KAAC8kf,GAAK,CACJrqe,MAAM,EACNksZ,QAASA,IAAMA,IACfl6Y,QACE,sHAEFujZ,QAAS,iCACTnzC,WAAW,KAEZ,EAIDm+J,GAAsBA,KAExBr7hB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oFAAmFvO,SAAA,EAChG6hB,EAAAA,GAAAA,KAAA,OACEsrE,6hHACA5+E,UAAU,oBACV0oP,IAAI,wBAENp1O,EAAAA,GAAAA,KAAA,MAAItT,UAAU,4CAA2CvO,SAAC,uBAG1D6hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,2DAA0DvO,SAAC,iFAQxE88iB,GAAWrqiB,IAA2D,IAA1D,KAAEvC,EAAI,eAAE6siB,EAAc,UAAEC,EAAS,KAAEl9iB,EAAI,UAAE08Q,GAAW/pQ,EACpE,OACE+O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gFAA+EvO,SAAA,EAC5FwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uCAAsCvO,SAAA,EACnD6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6BAA4BvO,UACzC6hB,EAAAA,GAAAA,KAAA,OACEsrE,IACEj9E,EAAKg4gB,OACL,8DAEF35gB,UAAU,iCACV0oP,IAAK,GAAG/mP,EAAK23gB,0BAGjBrmgB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8DAA6DvO,SAAA,EAC1E6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,qCAAoCvO,SAC3C,OAAJkQ,QAAI,IAAJA,OAAI,EAAJA,EAAM23gB,YAETrmgB,EAAAA,GAAAA,MAAA,KAAGjT,UAAU,sDAAqDvO,SAAA,CAC/DkQ,EAAKy3gB,WAAa,GAAG,IAAEz3gB,EAAK03gB,UAAY,aAI/C/lgB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6DAA4DvO,SACxEw8Q,GACCh7P,EAAAA,GAAAA,MAAA,OAAKI,KAAK,SAAQ5hB,SAAA,EAChBwhB,EAAAA,GAAAA,MAAA,OACE,cAAY,OACZowT,MAAM,8EACN3wT,QAAQ,cACRZ,KAAK,OACLo2S,MAAM,6BAA4Bz2T,SAAA,EAElC6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,+WACFgQ,KAAK,kBAEPwB,EAAAA,GAAAA,KAAA,QACExR,EAAE,glBACFgQ,KAAK,oBAGTwB,EAAAA,GAAAA,KAAA,QAAM+vT,MAAM,UAAS5xU,SAAC,mBAGxBwhB,EAAAA,GAAAA,MAAA,SAAOjT,UAAU,mDAAkDvO,SAAA,EACjE6hB,EAAAA,GAAAA,KAAA,SACEq8I,QAASA,IAAM6+Y,IACfj9iB,KAAK,WACL1B,MAAM,GACNmQ,UAAU,eACV0tB,QAAS+ghB,EACTj4hB,UAAQ,KAEVlD,EAAAA,GAAAA,KAAA,OACEtT,UAAU,meA4Bd,EAsRV,GAlRoBge,IAAkD,IAAD0whB,EAAAC,EAAA,IAAhD,KAAEp9iB,EAAI,MAAEixb,EAAK,eAAEosH,EAAc,WAAEC,GAAY7whB,EAC9D,MAAM8zS,EAAWR,KACXw9O,EACK,cAATv9iB,EACIw8iB,GACAG,GAEAa,EACK,cAATx9iB,EACIy8iB,GACAG,GAEAa,EACK,cAATz9iB,EACI08iB,GACAG,IAEJzsiB,KAAMstiB,EAAU,UAChBhhS,EAAS,MACTlmQ,EAAK,OACL81C,EAAM,QACNy+V,GACEwyJ,EACO,cAATv9iB,EACI,CACEo7iB,iBAAgC,OAAdiC,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,SAEpC,CACEnC,YAA2B,OAAd6B,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,UAG/BC,EAAoC,OAAVF,QAAU,IAAVA,OAAU,EAAVA,EAAYhhgB,SAAStsC,KAAK4a,QACvD2D,IAAyB,IAAhBA,EAAKkvhB,SAEXC,EAAiC,OAAVJ,QAAU,IAAVA,OAAU,EAAVA,EAAYhhgB,SAAStsC,KAAK4a,QACpD2D,IAAyB,IAAhBA,EAAKkvhB,UAEVE,EAAkBC,IAAuBhrX,EAAAA,EAAAA,WAAS,IAClDirX,GAAmBT,KACnBU,GAAsBT,KACtBU,EAAeC,IAAoBprX,EAAAA,EAAAA,UAAS,CAAC,GAyCpD,OACEtxK,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,EACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,+CAA8CvO,SAAA,EAC3D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,4DAA2DvO,UACxEwhB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMk/Y,IACf7uiB,UAAU,+LAA8LvO,SAAA,EAExM6hB,EAAAA,GAAAA,KAAA,OACE40S,MAAM,6BACNt2S,MAAM,KACN9E,OAAO,KACP4F,QAAQ,YACRZ,KAAK,OAAMrgB,UAEX6hB,EAAAA,GAAAA,KAAA,QACExR,EAAE,yBACF29T,OAAO,eACPziU,YAAY,IACZwrb,cAAc,QACdC,eAAe,aAGnBn1a,EAAAA,GAAAA,KAAA,QAAA7hB,SAAM,eAIVwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uCAAsCvO,SAAA,EACnDwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,mDAAkDvO,SAAA,CAAC,0BAC9B,cAATF,EAAuB,YAAc,OAAQ,QAEvE+hB,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,sFAAqFvO,SAAC,uFAMrGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,0GAAyGvO,SAAA,EACtHwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iEAAgEvO,SAAA,EAC7E6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,6DAA4DvO,SAAC,sBAG3E6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,+DAA8DvO,UAC7E6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kCAAiCvO,SAC7Cw8Q,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wFAAuFvO,UACpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kDAAiDvO,UAC9D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,2EAA0EvO,UACtF6hB,EAAAA,GAAAA,KAACijN,GAAM,UAIyB,KAA1B,OAAV04U,QAAU,IAAVA,OAAU,EAAVA,EAAYhhgB,SAASs0X,YACY,IAAnC4sI,EAAwBrijB,QACY,IAApCmijB,EAAWhhgB,SAAStsC,KAAK7U,QACvBwmB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wFAAuFvO,UACpGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kDAAiDvO,SAAA,EAC9D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,2EAA0EvO,SACjD,IAApCw9iB,EAAWhhgB,SAAStsC,KAAK7U,OACtB,8BACA,kCAENmmB,EAAAA,GAAAA,MAAA,UACE08I,QAASA,IAAMmiK,EAAS,YACxB9xT,UAAU,uLAYEvO,SAAA,CACb,MAEEw9iB,EAAWhhgB,SAAStsC,KAAK7U,OAAS,QAAQ,GAAG,oBAKpDwmB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAEG09iB,EAAwBp5iB,KAAI,CAACmqB,EAAM7vB,KAEhCijB,EAAAA,GAAAA,KAACi7hB,GAAQ,CAEP5siB,KAAMue,EACNsuhB,eAAgBA,IAlIbt5d,WACzB,GAAIm6d,EAAqBvijB,OAAS,EAGhC,OAFAyijB,GAAqBD,QACrBrme,QAAQ/qB,IAAI,wBAGdyxf,GAAkB/9iB,IAAI,IAAWA,EAAM,CAACu+B,IAAK,YACvCq/gB,EACK,cAATj+iB,EACI,CACEo7iB,iBAAgC,OAAdiC,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,QAClCU,SAAUz/gB,GAEZ,CACE48gB,YAA2B,OAAd6B,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,QAC7BU,SAAUz/gB,UAGZmsX,IACNqzJ,GAAkB/9iB,IAAI,IAAWA,EAAM,CAACu+B,IAAK,KAAS,EAgH9B0/gB,CAAuB,OAAJ3vhB,QAAI,IAAJA,OAAI,EAAJA,EAAM0vhB,UAE3BnB,WAAW,EACXl9iB,KAAK,SACL08Q,UAAWyhS,EAAkB,OAAJxvhB,QAAI,IAAJA,OAAI,EAAJA,EAAM0vhB,WAP1Bv/iB,OAcf,sEAON4iB,EAAAA,GAAAA,MAAA,OACEjT,UAAW,iBACA,cAATzO,EAAuB,YAAc,8HACiFE,SAAA,EAExHwhB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,+DAA8DvO,SAAA,CAAC,aACvD,cAATF,EAAuB,YAAc,WAGlD0hB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,yBAAwBvO,SAAA,EACrC6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,qCAAoCvO,UACjD6hB,EAAAA,GAAAA,KAAA,OAAKsrE,IAAmB,OAAdgwd,QAAc,IAAdA,OAAc,EAAdA,EAAgB/rY,IAAK6lF,IAAI,oBAErCz1O,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4CAA2CvO,SAAA,EACxDwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uFAAsFvO,SAAA,EACnG6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SACY,cAATF,EAAuB,kBAAoB,gBAE9C+hB,EAAAA,GAAAA,KAAA,KAAA7hB,SACY,cAATF,EACG,oBACA,qBAGR0hB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,4BAA2BvO,SAAA,EACxC6hB,EAAAA,GAAAA,KAAA,KAAA7hB,SAAkB,OAAdm9iB,QAAc,IAAdA,OAAc,EAAdA,EAAgBkB,WACpBx8hB,EAAAA,GAAAA,KAAA,KAAA7hB,SACY,cAATF,EACiB,OAAdq9iB,QAAc,IAAdA,GAA0B,QAAZF,EAAdE,EAAgBmB,kBAAU,IAAArB,OAAZ,EAAdA,EAA4BsB,gBACd,OAAdpB,QAAc,IAAdA,GAA0B,QAAZD,EAAdC,EAAgBmB,kBAAU,IAAApB,OAAZ,EAAdA,EAA4BsB,uBAMxCh9hB,EAAAA,GAAAA,MAAA,MAAIjT,UAAU,6DAA4DvO,SAAA,CAAC,8DAE/D,cAATF,EAAuB,YAAc,OAAO,QAE/C+hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,2DAA0DvO,SAAC,sBAIzEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oCAAmCvO,SAAA,CAC/Cw8Q,GACC36P,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wFAAuFvO,UACpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kDAAiDvO,UAC9D6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,2EAA0EvO,UACtF6hB,EAAAA,GAAAA,KAACijN,GAAM,UAKO,OAApB84U,QAAoB,IAApBA,OAAoB,EAApBA,EAAsBt5iB,KAAI,CAACmqB,EAAM7vB,KAE7BijB,EAAAA,GAAAA,KAACi7hB,GAAQ,CAEP5siB,KAAMue,EACNsuhB,eAAgBA,IAzLTt5d,WACzBy6d,GAAkB/9iB,IAAI,IAAWA,EAAM,CAACu+B,IAAK,YACvCs/gB,EACK,cAATl+iB,EACI,CACEo7iB,iBAAgC,OAAdiC,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,QAClCU,SAAUz/gB,GAEZ,CACE48gB,YAA2B,OAAd6B,QAAc,IAAdA,OAAc,EAAdA,EAAgBM,QAC7BU,SAAUz/gB,UAGZmsX,IACNqzJ,GAAkB/9iB,IAAI,IAAWA,EAAM,CAACu+B,IAAK,KAAS,EA2Kd+/gB,CAAuB,OAAJhwhB,QAAI,IAAJA,OAAI,EAAJA,EAAM0vhB,UAC/CnB,WAAW,EACXl9iB,KAAK,UACL08Q,UAAWyhS,EAAkB,OAAJxvhB,QAAI,IAAJA,OAAI,EAAJA,EAAM0vhB,WAL1Bv/iB,MAUX49Q,GACAohS,GACgC,IAAhCA,EAAqBvijB,SAAgBwmB,EAAAA,GAAAA,KAACg7hB,GAAmB,gBAMlEgB,IACCh8hB,EAAAA,GAAAA,KAAC+6hB,GAAqB,CACpBp0H,QAASA,IAAMs1H,GAAqBD,OAGvC,EC5YDa,GAAgBrniB,IAA8B,IAA7B,KAAEoX,EAAI,cAAEkwhB,GAAetniB,EAC5C,OACEmK,EAAAA,GAAAA,MAAC0lT,GAAO,CACN34T,UAAU,wFACV+pJ,GAAI,GAAGt4J,SAAA,EAEPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,MAAKvO,SAAA,EAClB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yEAAwEvO,UACrF6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAS,OAAJ1+D,QAAI,IAAJA,OAAI,EAAJA,EAAM2iJ,IACX7iK,UAAU,uGAGdsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yFAAwFvO,UACrGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mBAAkBvO,SAAA,EAC/B6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8CAA6CvO,SACpD,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAMm2K,SAET/iL,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,yCAAwCvO,SAC9C,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM4wG,QAGT79G,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uMAAsMvO,SAAA,EACnN6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASA,IAAMygZ,IACfpwiB,UAAU,2IAA0IvO,SACrJ,oBAGD6hB,EAAAA,GAAAA,KAAA,UACEq8I,QACEA,IAAMygZ,IASRpwiB,UAAU,6IAA4IvO,SACvJ,6BAOT6hB,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,0IACf,EA4Fd,GAxFmBkE,IAAwB,IAAvB,cAAEmsiB,GAAensiB,EAOnC,MAAOosiB,EAAgBC,IAAkBhsX,EAAAA,EAAAA,WAAS,IAC3CosH,EAAS6/P,IAAcjsX,EAAAA,EAAAA,WAAS,IAChCi+P,EAAOiuH,IAAYlsX,EAAAA,EAAAA,UAAS,KAC5BqqX,EAAgB8B,IAAqBnsX,EAAAA,EAAAA,UAAS,OAErDN,EAAAA,EAAAA,YAAU,KACJosX,GACFG,GAAW,EACb,GACC,CAACH,IAmBJ,OACE/8hB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAEG6+iB,GACCh9hB,EAAAA,GAAAA,KAACq9hB,GAAW,CACVp/iB,KAAK,YACLixb,MAAOA,EACPosH,eAAgBA,EAChBC,WAZWA,KACjB0B,GAAe,EAAM,KAcjBt9hB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACG4+iB,IAA8B,OAAbA,QAAa,IAAbA,OAAa,EAAbA,EAAevjjB,QAAS,IACxCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,oDAAmDvO,SAAA,EAChE6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kEAAiEvO,UAC9E6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8FAA6FvO,SAAC,kBAK9G6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,iIAAgIvO,SAC/H,OAAb4+iB,QAAa,IAAbA,OAAa,EAAbA,EAAet6iB,KAAI,CAAC4L,EAAMtR,KAEvBijB,EAAAA,GAAAA,KAAC68hB,GAAa,CAEZjwhB,KAAMve,EACNyuiB,cAAeA,IA3CbzuiB,KACpB4uiB,GAAgBD,GAChBrne,QAAQ/qB,IAAI,OAAQv8C,GAEpB8uiB,EAAS9uiB,EAAK6gb,OAMdkuH,EAAkB/uiB,EAAK,EAiCgBiviB,CAAajviB,IAF7BtR,WASfsgT,GAAqC,KAAb,OAAb0/P,QAAa,IAAbA,OAAa,EAAbA,EAAevjjB,UAC1BwmB,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACzH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,MAGX3+H,IAAY0/P,IACX/8hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wFAAuFvO,UACpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,UAC9D6hB,EAAAA,GAAAA,KAACijN,GAAM,cAOlB,EClBP,GA/GiBztN,IAAuB,IAAtB,aAAE+niB,GAAc/niB,EAChC,MAAOgoiB,EAAgBC,IAAqBxsX,EAAAA,EAAAA,UAAS,CACnDp0J,GAAI,EACJ6ghB,WAAY,YACZr5iB,KAAM,cACN2a,WACEgB,EAAAA,GAAAA,KAAC8ua,GAAS,CACRzgb,KAAMkviB,EAAat0hB,QAAQ2D,GAA+B,cAAtBA,EAAK+whB,eACzCtiI,SAAS,MA4Cf,OACEr7Z,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAQGo/iB,GAAgBA,EAAa/jjB,OAAS,GACrCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8CAA6CvO,SAAA,EAC1D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wGAAuGvO,SAAC,gBAKxH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,2FAA0FvO,UACvG6hB,EAAAA,GAAAA,KAAA,MACEtT,UAAU,6JASXvO,SAEW,OAATyuU,SAAS,IAATA,QAAS,EAATA,GAAWnqU,KAAI,CAACktb,EAAMlvX,KAEnBzgD,EAAAA,GAAAA,KAAA,MAEEtT,UAAW,IACT8wiB,EAAeE,aAAe/tH,EAAKt1b,IAC/B,mHACA,eAENgiK,QAASA,IA9EDszR,KACxB,IAAInkb,EACJ,OAAQmkb,EAAKt1b,KACX,IAAK,UACHmR,EAAS+xiB,EAAat0hB,QAAQ2D,GAA+B,YAAtBA,EAAK+whB,eAC5CF,EAAkB,IACb9tH,EACH+tH,WAAY,UACZ1+hB,WAAWgB,EAAAA,GAAAA,KAACwva,GAAO,CAACnhb,KAAM7C,EAAQ6va,SAAS,MAE7C,MACF,IAAK,SACH7va,EAAS+xiB,EAAat0hB,QAAQ2D,GAA+B,WAAtBA,EAAK+whB,eAC5CF,EAAkB,IACb9tH,EACH+tH,WAAY,SACZ1+hB,WAAWgB,EAAAA,GAAAA,KAACyva,GAAM,CAACphb,KAAM7C,EAAQ6va,SAAS,MAE5C,MACF,IAAK,SACH7va,EAAS+xiB,EAAat0hB,QAAQ2D,GAA+B,WAAtBA,EAAK+whB,eAC5CF,EAAkB,IACb9tH,EACH+tH,WAAY,SACZ1+hB,WAAWgB,EAAAA,GAAAA,KAAC0va,GAAM,CAACrhb,KAAM7C,EAAQ6va,SAAS,MAE5C,MACF,QACE7va,EAAS+xiB,EAAat0hB,QACnB2D,GAA+B,cAAtBA,EAAK+whB,eAEjBF,EAAkB,IACb9tH,EACH+tH,WAAY,YACZ1+hB,WAAWgB,EAAAA,GAAAA,KAAC8ua,GAAS,CAACzgb,KAAM7C,EAAQ6va,SAAS,MAGnD,EAyC+BuU,CAAiBD,GAAMxxb,SAEjC,OAAJwxb,QAAI,IAAJA,OAAI,EAAJA,EAAMtrb,MARE,OAAJsrb,QAAI,IAAJA,OAAI,EAAJA,EAAMt1b,WAepBmjjB,EAAex+hB,cAGlBgB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kHAAiHvO,UAC9H6hB,EAAAA,GAAAA,KAACg8Z,GAAO,OAGX,ECzDP,GA9CkBxma,IAAwB,IAAvB,cAAEooiB,GAAepoiB,EAGlC,OACEwK,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAGGy/iB,GAAiBA,EAAcpkjB,OAAS,GACvCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mDAAkDvO,SAAA,EAC/D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wGAAuGvO,SAAC,iBAKxH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kLAAiLvO,SAChL,OAAby/iB,QAAa,IAAbA,OAAa,EAAbA,EAAen7iB,KAAI,CAACsqb,EAAQhwb,KAEzBijB,EAAAA,GAAAA,KAACgta,GAAa,CAEZv0J,MAAOs0J,EAAOx9Q,IACd0rQ,UAAW8R,EAAOE,QAClB/R,UAAW6R,EAAO/mD,KAClBg1C,UACyB,cAAvB+R,EAAOG,YACH,gBAAgBH,EAAOG,cACvB,0BAEN7ob,KAAK,GACL0+L,MAAOgqP,EAAOhqP,MACd83O,UAAW/tG,IAXA,OAANigH,QAAM,IAANA,OAAM,EAANA,EAAQ/mD,cAkBvBhmX,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACzH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,OAIX,ECvBP,GApCkB6hI,KACT79hB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACP6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6DAA4DvO,UACzE6hB,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACvH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,UCIhB,GAVsB8hI,KAElB99hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6DAA4DvO,UACzE6hB,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACzH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,QCMhB,GAVoB+hI,KAEhB/9hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6DAA4DvO,UACzE6hB,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACzH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,QCKVgiI,GAAa,CACjB,CAAEnhhB,GAAI,EAAGxiC,IAAK,MAAOgK,KAAM,OAC3B,CAAEw4B,GAAI,EAAGxiC,IAAK,eAAgBgK,KAAM,oBACpC,CAAEw4B,GAAI,EAAGxiC,IAAK,iBAAkBgK,KAAM,yBA0ExC,GAvEe0+gB,KACb,MAAOk7B,EAAiBC,IAAsBjtX,EAAAA,EAAAA,UAAS,CACrDp0J,GAAI,EACJ6ghB,WAAY,QAMd,OACE19hB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UAIIwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,iDAAgDvO,SAAA,EAC7D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oCAAmCvO,UAChD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8FAA6FvO,SAAC,cAK9G6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oFAAmFvO,UAChG6hB,EAAAA,GAAAA,KAAA,MACEtT,UAAU,2KASXvO,SAEY,OAAV6/iB,SAAU,IAAVA,QAAU,EAAVA,GAAYv7iB,KAAI,CAACktb,EAAMlvX,KAEpBzgD,EAAAA,GAAAA,KAAA,MAEEtT,UAAW,IACTuxiB,EAAgBP,aAAe/tH,EAAKt1b,IAChC,yFACA,eAENgiK,QAASA,IAAM6hZ,EAAmB,CAAER,WAAY/tH,EAAKt1b,MAAO8D,SAEvD,OAAJwxb,QAAI,IAAJA,OAAI,EAAJA,EAAMtrb,MARE,OAAJsrb,QAAI,IAAJA,OAAI,EAAJA,EAAMt1b,YAerBslB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,kLAAiLvO,SAAA,CAE9J,QAA/B8/iB,EAAgBP,aAAwB19hB,EAAAA,GAAAA,KAAC69hB,GAAS,IACnB,iBAA/BI,EAAgBP,aAAiC19hB,EAAAA,GAAAA,KAAC+9hB,GAAW,IAC9B,mBAA/BE,EAAgBP,aACf19hB,EAAAA,GAAAA,KAAC89hB,GAAa,WAUrB,EC3EDK,QAAW3oiB,IAA8B,IAA7B,KAAEoX,EAAI,cAAEkwhB,GAAetniB,EACvC,MAAOs3a,EAAqB1R,IAA0BnqP,EAAAA,EAAAA,WAAS,GAE/D,OACEtxK,EAAAA,GAAAA,MAAC0lT,GAAO,CACN34T,UAAU,wFACV+pJ,GAAI,GAAGt4J,SAAA,EAEPwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,MAAKvO,SAAA,EAClB6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yEAAwEvO,UACrF6hB,EAAAA,GAAAA,KAAA,OACEsrE,IAAS,OAAJ1+D,QAAI,IAAJA,OAAI,EAAJA,EAAM2iJ,IACX7iK,UAAU,uGAGdsT,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,yFAAwFvO,UACrGwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mBAAkBvO,SAAA,EAC/B6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8CAA6CvO,SACpD,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAMm2K,SAET/iL,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,yCAAwCvO,SAC9C,OAAJyuB,QAAI,IAAJA,OAAI,EAAJA,EAAM4wG,QAGT79G,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,uMAAsMvO,SAAA,EACnN6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASA,KAIL++Q,GAAuB,EACzB,EAIF1ua,UAAU,2IAA0IvO,SACrJ,oBAGD6hB,EAAAA,GAAAA,KAAA,UACEq8I,QAASA,KAIL++Q,GAAuB,EACzB,EAcF1ua,UAAU,6IAA4IvO,SACvJ,0BAMP6hB,EAAAA,GAAAA,KAACota,GAAU,CACT7iY,OAAQuiY,EACR/6a,KAAM,8LACNy6a,WAAYA,KACVpR,GAAuB,EAAM,QAInCp7Z,EAAAA,GAAAA,KAAC4iX,GAAW,CAACl2X,UAAU,0IACf,GAsFd,GAlFckE,IAAmB,IAAlB,SAAEwtiB,GAAUxtiB,EAEzB,MAEOosiB,EAAgBC,IAAkBhsX,EAAAA,EAAAA,WAAS,IAE3CosH,EAAS6/P,IAAcjsX,EAAAA,EAAAA,WAAS,IAChCqqX,EAAgB8B,IAAqBnsX,EAAAA,EAAAA,UAAS,OAC9Ci+P,EAAOiuH,IAAYlsX,EAAAA,EAAAA,UAAS,KAEnCN,EAAAA,EAAAA,YAAU,KACJytX,GACFlB,GAAW,EACb,GACC,CAACkB,IAcJ,OACEp+hB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAEG6+iB,GACCh9hB,EAAAA,GAAAA,KAACq9hB,GAAW,CACVp/iB,KAAK,OACLixb,MAAOA,EACPosH,eAAgBA,EAChBC,WAZWA,KACjB0B,GAAe,EAAM,KAcjBt9hB,EAAAA,GAAAA,MAAAgjX,GAAAA,SAAA,CAAAxkY,SAAA,CACGigjB,GAAYA,EAAS5kjB,OAAS,IAC7BmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,gDAA+CvO,SAAA,EAC5D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,oDAAmDvO,UAChE6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,8FAA6FvO,SAAC,aAK9G6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,6HAA4HvO,SAChI,OAARigjB,QAAQ,IAARA,OAAQ,EAARA,EAAU37iB,KAAK4L,IAEZ2R,EAAAA,GAAAA,KAACm+hB,GAAQ,CAEPvxhB,KAAMve,EACNyuiB,cAAeA,IAtCbzuiB,KACpB4uiB,GAAgBD,GAChBG,EAAS9uiB,EAAK6gb,OAGdkuH,EAAkB/uiB,EAAK,EAiCgBiviB,CAAajviB,IAF7BA,EAAKwuB,YASpBwgR,GAA+B,IAApB+gQ,EAAS5kjB,SACpBwmB,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACzH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,MAIX3+H,IAAY+gQ,IACXp+hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,wFAAuFvO,UACpG6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,mDAAkDvO,UAC9D6hB,EAAAA,GAAAA,KAACijN,GAAM,cAOlB,ECtHP,GA5CeztN,IAAqB,IAApB,WAAE6oiB,GAAY7oiB,EAC5B,OACEwK,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,SAGGkgjB,GAAcA,EAAW7kjB,OAAS,GACjCmmB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,mDAAkDvO,SAAA,EAC/D6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,sCAAqCvO,UAClD6hB,EAAAA,GAAAA,KAAA,MAAItT,UAAU,wGAAuGvO,SAAC,cAKxH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,kLAAiLvO,SACnL,OAAVkgjB,QAAU,IAAVA,OAAU,EAAVA,EAAY57iB,KAAI,CAACsqb,EAAQhwb,KAEtBijB,EAAAA,GAAAA,KAACgta,GAAa,CAEZv0J,MAAOs0J,EAAOx9Q,IACd0rQ,UAAW8R,EAAOE,QAClB/R,UAAW6R,EAAO/mD,KAClBg1C,UACyB,WAAvB+R,EAAOG,YACH,gBAAgBH,EAAOG,cACvB,uBAEN7ob,KAAK,GACL0+L,MAAOgqP,EAAOhqP,MACd83O,UAAW/tG,IAXA,OAANigH,QAAM,IAANA,OAAM,EAANA,EAAQ/mD,cAkBvBhmX,EAAAA,GAAAA,KAAA,OAAK+vT,MAAM,iHAAgH5xU,UACzH6hB,EAAAA,GAAAA,KAACg8Z,GAAO,OAIX,EChCOsiI,GAAexzJ,GAAU,CACnCnT,YAAY,UACZ4N,UAAWqrB,GAAoB,CAC3Bp0M,QAASuxL,GACTshB,eAAgBA,CAACr0X,EAAOxlC,KAAoB,IAAlB,SAAEg1N,GAAUh1N,EAClC,MAAM9W,EAAQy4C,aAAaixQ,QAAQ,gBAAkB,GAMrD,OALAptQ,EAAQ74C,IAAI,eAAgB,mCACxBzD,GACAs8C,EAAQ74C,IAAI,gBAAiB,UAAUzD,KAGpCs8C,CAAO,IAGtB9B,UAAY+d,IAAO,CACfsnf,8BAA8Btnf,EAAQprB,MAAM,CACxCA,MAAM,WAAa,MAAI,CACnBjqB,IAAIosY,GAAc0D,iBAAmB,KADzBvrZ,UAAA3M,OAAA,QAAAS,IAAAkM,UAAA,GAAAA,UAAA,GAAC,IAEbmlD,OAAQ,MACX,SAKC,sCACVkzf,IAECF,GC8CL,GAvEc9oiB,IAAyB,IAADipiB,EAAA,IAAvB,eAAEC,GAAgBlpiB,EAC3BmpiB,EAAiB,GAmCrB,OAjCID,IACF/oe,QAAQ/qB,IAAI8zf,GACZC,EAA+B,OAAdD,QAAc,IAAdA,OAAc,EAAdA,EAAgBz7a,QAEjC07a,EAAiBA,EAAel8iB,KAAI,CAACmqB,EAAM7vB,KACzC,MAAMgmM,EAAQn2K,EAAK+uf,YACnB,IAAI5E,EAAc,OAWlB,MAT4B,QAA1Bnqf,EAAKgvf,mBACqB,WAA1Bhvf,EAAKgvf,oBAEL7E,EAAc,QAEc,gBAA1Bnqf,EAAKgvf,oBACP7E,EAAc,WAGT,IACFnqf,EACHm2K,QACAg0U,cACA7/F,MAAO,IAAMtqZ,EAAKsqZ,MAClBr6Y,GAAIjQ,EAAK0mO,IACToL,QAASggT,EAAe9nC,eAAiB8nC,EAAeprT,IACzD,KAKLqrT,EAAiBA,EAAe11hB,QAC7B2D,IAAUA,EAAK49K,SAASjjJ,SAAS,WAGN,IAAZ,QAAdk3f,EAAAE,SAAc,IAAAF,OAAA,EAAdA,EAAgBjljB,QACX,MAIPwmB,EAAAA,GAAAA,KAAA2iX,GAAAA,SAAA,CAAAxkY,UACEwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,GAAEvO,SAAA,EACfwhB,EAAAA,GAAAA,MAAA,OAAKjT,UAAU,8BAA6BvO,SAAA,EAC1C6hB,EAAAA,GAAAA,KAAA,OACEtT,UAAU,qEACV4+E,IAAKozd,EAAe7nC,kBAAoByD,GACxCllR,IAAI,gBAENp1O,EAAAA,GAAAA,KAAA,KAAGtT,UAAU,0DAAyDvO,SACnEugjB,EAAe1nC,eAElBh3f,EAAAA,GAAAA,KAACqlT,GAAO,CACN5uK,GAAI,uCAAuCioZ,EAAe9nC,gBAC1DlqgB,UAAW,qDAAqDvO,SACjE,iBAIH6hB,EAAAA,GAAAA,KAAA,OAAKtT,UAAU,8BAA6BvO,UAC1C6hB,EAAAA,GAAAA,KAACo8f,GAAa,CACZnG,OAAQ0oC,EACRC,YAAa,EACb3gjB,KAAK,mBAIV,EC1EP,IAAI4gjB,GAAoB,CACtB,CACEvrT,IAAK,2BACLuyR,KAAM,2BACNhP,iBACE,uFACFioC,wBAAyB,2BACzB9nC,YAAa,qBACbJ,cAAe,oBACfmoC,YACE,oFACFC,mBAAoB,2BACpBC,kBAAmB,GACnBC,cAAc,EACdC,gBAAiB,2BACjBC,mBAAoB,CAClB,2BACA,4BAEFrxI,UAAW,2BACXsxI,UAAW,2BACXp8a,QAAS,CACP,CACEqwH,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,QACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,GACjB6qC,uBAAwB,GACxBtmjB,IAAK,CAAC,eACNuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,gBACbroT,YAAa,oBACbqjT,YAAa,mBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,qFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,WACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,aAClBC,qBAAsB,iBACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,gFACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,oBACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,aACbroT,YAAa,iBACbqjT,YAAa,eACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,qFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,WAClBC,qBAAsB,wBACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,gFACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,aACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,kBACb88S,SAAU,MACVl5F,MAAO,GACPy/F,YAAa,iBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,qFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,cAClBC,qBAAsB,kBACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,gFACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,eACNuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,kBACbqjT,YAAa,iBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,qFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,UAClBC,qBAAsB,cACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,gFACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,WACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,UACbroT,YAAa,cACb88S,SAAU,MACVl5F,MAAO,GACPy/F,YAAa,cACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,qFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,OAClBC,qBAAsB,QACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,gFACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,aACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,aACbroT,YAAa,cACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,qFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,oFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,UAClBC,qBAAsB,cACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,gFACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,aACNuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BA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broT,YAAa,2BACb88S,SAAU,MACVl5F,MAAO,GACPy/F,YAAa,eACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,uFAIR,CACExsT,IAAK,2BACLuyR,KAAM,2BACNhP,iBACE,sFACFioC,wBAAyB,2BACzB9nC,YAAa,gBACbJ,cAAe,YACfmoC,YACE,mFACFC,mBAAoB,2BACpBC,kBAAmB,GACnBC,cAAc,EACdC,gBAAiB,2BACjBC,mBAAoB,CAClB,2BACA,4BAEFrxI,UAAW,2BACXsxI,UAAW,2BACXp8a,QAAS,CACP,CACEqwH,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,QACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,GACjB6qC,uBAAwB,GACxBtmjB,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,oBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,WACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,4BAClBC,qBACE,6LACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,oBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,4BAClBC,qBACE,6LACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,QACbroT,YAAa,qBACbqjT,YAAa,WACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,uBAClBC,qBACE,kNACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,oBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,4BAClBC,qBACE,6LACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,mBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,sFAIR,CACExsT,IAAK,2BACLuyR,KAAM,2BACNhP,iBACE,sFACFioC,wBAAyB,2BACzB9nC,YAAa,eACbJ,cAAe,YACfmoC,YACE,mFACFC,mBAAoB,2BACpBC,kBAAmB,IACnBC,cAAc,EACdC,gBAAiB,2BACjBC,mBAAoB,CAAC,4BACrBrxI,UAAW,2BACXsxI,UAAW,2BACXp8a,QAAS,CACP,CACEqwH,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,WACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,uBAClBC,qBACE,kNACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,mBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,uBAClBC,qBACE,oNACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,aACbroT,YAAa,mBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,4BAClBC,qBACE,6LACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,iBACbroT,YAAa,uBACbqjT,YAAa,mBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,4BAClBC,qBACE,mNACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,cACbroT,YAAa,mBACbqjT,YAAa,gBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,sFAIR,CACExsT,IAAK,2BACLuyR,KAAM,2BACNhP,iBACE,sFACFioC,wBAAyB,2BACzB9nC,YAAa,4BACbJ,cAAe,0BACfmoC,YACE,mFACFC,mBAAoB,2BACpBC,kBAAmB,GACnBC,cAAc,EACdC,gBAAiB,2BACjBC,mBAAoB,CAAC,4BACrBrxI,UAAW,2BACXsxI,UAAW,2BACXp8a,QAAS,CACP,CACEqwH,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,QACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,GACjB6qC,uBAAwB,GACxBtmjB,IAAK,CAAC,WACNuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,gBACbroT,YACE,qFACFqjT,YAAa,mBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,WACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBACE,gEACFC,qBACE,yJACFpsT,IAAK,4BAEP,CACEmsT,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,QACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,qBACbroT,YACE,sNACFqjT,YAAa,qBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClB5oC,YAAa,WACb6oC,kBAAmB,CACjB,CACEC,iBACE,iFACFC,qBACE,urBACFpsT,IAAK,4BAEP,CACEmsT,iBAAkB,GAClBC,qBACE,urBACFpsT,IAAK,4BAEP,CACEmsT,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,UAAW,eACjBuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACXkyI,kBAAkB,EAClBtkC,YAAa,gDACbroT,YACE,urBACFssV,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClB5oC,YAAa,WACb6oC,kBAAmB,CACjB,CACEC,iBACE,iFACFC,qBACE,urBACFpsT,IAAK,4BAEP,CACEmsT,iBACE,iFACFC,qBACE,urBACFpsT,IAAK,4BAEP,CACEmsT,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,QAAS,iBAAkB,SAAU,aAC3CuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACXkyI,kBAAkB,EAClBtkC,YAAa,kCACbroT,YACE,urBACFssV,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClB5oC,YAAa,WACb6oC,kBAAmB,CACjB,CACEC,iBACE,iFACFC,qBACE,urBACFpsT,IAAK,4BAEP,CACEmsT,iBACE,iFACFC,qBACE,urBACFpsT,IAAK,4BAEP,CACEmsT,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,mBACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACXkyI,kBAAkB,EAClBtkC,YAAa,kBACbroT,YACE,urBACFssV,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,6BAClBC,qBACE,8HACFpsT,IAAK,4BAEP,CACEmsT,iBAAkB,6BAClBC,qBACE,8HACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,UACNuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,kBACbroT,YACE,8HACFqjT,YAAa,oBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBACE,qFACFC,qBACE,sNACFpsT,IAAK,4BAEP,CACEmsT,iBACE,qFACFC,qBACE,sNACFpsT,IAAK,4BAEP,CACEmsT,iBACE,qFACFC,qBACE,sNACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,SACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,mBACbroT,YACE,sNACF88S,SAAU,MACVl5F,MAAO,GACP+oI,kBAAkB,EAClBtpC,YAAa,qBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,sFAIR,CACExsT,IAAK,2BACLuyR,KAAM,2BACNhP,iBACE,sFACFioC,wBAAyB,2BACzB9nC,YAAa,iBACbJ,cAAe,aACfmoC,YACE,mFACFC,mBAAoB,2BACpBC,kBAAmB,GACnBC,cAAc,EACdC,gBAAiB,2BACjBC,mBAAoB,CAAC,4BACrBrxI,UAAW,2BACXsxI,UAAW,2BACXp8a,QAAS,CACP,CACEqwH,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,QACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,GAClBC,qBAAsB,GACtBpsT,IAAK,6BAGTwhR,gBAAiB,GACjB6qC,uBAAwB,GACxBtmjB,IAAK,CAAC,aACNuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,uBACbroT,YACE,2OACFqjT,YAAa,yBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,WACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBACE,iEACFC,qBACE,0OACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,SACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,eACbroT,YACE,0OACF88S,SAAU,MACVl5F,MAAO,GACPy/F,YAAa,kBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBAAkB,iCAClBC,qBACE,0OACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,QACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,kBACbroT,YACE,0OACF88S,SAAU,MACVl5F,MAAO,GACPy/F,YAAa,oBACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,YACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBACE,uFACFC,qBACE,sJACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,GACLuihB,kBAAmB,eACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,iBACbroT,YACE,0OACFqjT,YAAa,mBACbipC,eAAgB,KAChBC,cAAe,KACfC,aACE,oFAEJ,CACExsT,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,mBACVssU,UACE,kFACFwoC,iBAAkB,2BAClBnwH,UACE,mFACFowH,iBAAkB,2BAClBC,kBAAmB,CACjB,CACEC,iBACE,sGACFC,qBACE,0OACFpsT,IAAK,6BAGTwhR,gBAAiB,CACf,CACEr8O,MACE,+EACFnlC,IAAK,4BAEP,CACEmlC,MACE,+EACFnlC,IAAK,6BAGTqsT,uBAAwB,CACtB,CACElnR,MAAO,2BACPnlC,IAAK,4BAEP,CACEmlC,MAAO,2BACPnlC,IAAK,6BAGTj6P,IAAK,CAAC,WACNuihB,kBAAmB,OACnBrihB,KAAM,GACNw0a,UAAW,2BACX4tG,YAAa,wBACbroT,YACE,0OACFqjT,YAAa,0BACbipC,eACE,kFACFC,cAAe,CACbE,IAAK,mBACLnhiB,OAAQ,sBACRohiB,KAAM,qBAERF,aACE,sFAIR,CACExsT,IAAK,2BACLuyR,KAAM,2BACNhP,iBACE,sFACFioC,wBAAyB,2BACzB9nC,YAAa,gBACbJ,cAAe,gBACfmoC,YACE,mFACFC,mBAAoB,2BACpBC,kBAAmB,GACnBC,cAAc,EACdC,gBAAiB,2BACjBC,mBAAoB,CAClB,2BACA,2BACA,4BAEFrxI,UAAW,2BACXsxI,UAAW,2BACXp8a,QAAS,CACP,CACEqwH,IAAK,2BACLuyR,KAAM,2BACNnnR,QAAS,2BACTl0D,SAAU,QACVssU,UAC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WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,WACNpG,KAAM,YAGRoG,KAAM,cACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,QACNpG,KAAM,YAGRoG,KAAM,WACNpG,KAAM,SAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,QACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,WACNpG,KAAM,YAGRoG,KAAM,mBACNmslB,QAAS,CACR,CACCH,aAAc,OACdhslB,KAAM,GACNpG,KAAM,SAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,QACNmslB,QAAS,CACR,CACCH,aAAc,UACdhslB,KAAM,GACNpG,KAAM,YAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,eACNmslB,QAAS,CACR,CACCH,aAAc,OACdhslB,KAAM,GACNpG,KAAM,SAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,WACNmslB,QAAS,CACR,CACCH,aAAc,UACdhslB,KAAM,GACNpG,KAAM,YAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,MACNmslB,QAAS,CACR,CACCH,aAAc,SACdhslB,KAAM,GACNpG,KAAM,WAGRmylB,gBAAiB,OACjBnylB,KAAM,aClKKomqB,GAAoB,CAChC,CACC/zE,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,IACNpG,KAAM,YAGRoG,KAAM,cACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,WACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,aACNpG,KAAM,UAGRoG,KAAM,iBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,QACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,WACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,OACdhslB,KAAM,WACNpG,KAAM,SAGRoG,KAAM,iBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,OACNpG,KAAM,UAGRoG,KAAM,qBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,OACNpG,KAAM,SAEP,CACCsylB,SAAS,EACTF,aAAc,SACdhslB,KAAM,WACNpG,KAAM,UAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,SACNpG,KAAM,UAGRoG,KAAM,mBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,OACNpG,KAAM,SAEP,CACCsylB,SAAS,EACTF,aAAc,SACdhslB,KAAM,WACNpG,KAAM,WAGRoG,KAAM,mBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,iBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,eACNpG,KAAM,SAEP,CACCsylB,SAAS,EACTF,aAAc,QACdhslB,KAAM,WACNpG,KAAM,UAGRoG,KAAM,qBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,SACdhslB,KAAM,cACNpG,KAAM,UAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,cACNpG,KAAM,YAGRoG,KAAM,mBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,SACdhslB,KAAM,OACNpG,KAAM,WAGRoG,KAAM,cACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,IACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,UACdhslB,KAAM,IACNpG,KAAM,YAGRoG,KAAM,gBACNpG,KAAM,SAEP,CACCqylB,WAAW,EACXH,OAAQ,CACP,CACCI,SAAS,EACTF,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCsylB,SAAS,EACTF,aAAc,SACdhslB,KAAM,aACNpG,KAAM,UAEP,CACCsylB,SAAS,EACTF,aAAc,SACdhslB,KAAM,MACNpG,KAAM,WAGRoG,KAAM,cACNpG,KAAM,SAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,eACNpG,KAAM,YAGRoG,KAAM,MACNmslB,QAAS,CACR,CACCH,aAAc,UACdhslB,KAAM,GACNpG,KAAM,WAEP,CACCoylB,aAAc,QACdhslB,KAAM,GACNpG,KAAM,UAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,OACNmslB,QAAS,CACR,CACCH,aAAc,kBACdhslB,KAAM,GACNpG,KAAM,YAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,WACNpG,KAAM,YAGRoG,KAAM,OACNmslB,QAAS,CACR,CACCH,aAAc,QACdhslB,KAAM,GACNpG,KAAM,UAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,cACNmslB,QAAS,CACR,CACCH,aAAc,QACdhslB,KAAM,GACNpG,KAAM,UAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,SACdhslB,KAAM,WACNpG,KAAM,WAGRoG,KAAM,YACNmslB,QAAS,CACR,CACCH,aAAc,QACdhslB,KAAM,GACNpG,KAAM,UAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,gBACNmslB,QAAS,CACR,CACCH,aAAc,OACdhslB,KAAM,GACNpG,KAAM,SAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,SACdhslB,KAAM,cACNpG,KAAM,WAGRoG,KAAM,uBACNmslB,QAAS,CACR,CACCH,aAAc,UACdhslB,KAAM,GACNpG,KAAM,YAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,UACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,WACNpG,KAAM,YAGRoG,KAAM,mBACNmslB,QAAS,CACR,CACCH,aAAc,OACdhslB,KAAM,GACNpG,KAAM,SAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,OACNmslB,QAAS,CACR,CACCH,aAAc,SACdhslB,KAAM,GACNpG,KAAM,WAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,YAGRoG,KAAM,SACNmslB,QAAS,CACR,CACCH,aAAc,UACdhslB,KAAM,IACNpG,KAAM,WAEP,CACCoylB,aAAc,UACdhslB,KAAM,IACNpG,KAAM,YAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,SACdhslB,KAAM,cACNpG,KAAM,WAGRoG,KAAM,oBACNmslB,QAAS,CACR,CACCH,aAAc,OACdhslB,KAAM,GACNpG,KAAM,SAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UACdhslB,KAAM,OACNpG,KAAM,WAEP,CACCoylB,aAAc,SACdhslB,KAAM,MACNpG,KAAM,WAGRoG,KAAM,OACNmslB,QAAS,CACR,CACCH,aAAc,SACdhslB,KAAM,GACNpG,KAAM,WAGRmylB,gBAAiB,OACjBnylB,KAAM,YAEP,CACCkylB,OAAQ,CACP,CACCE,aAAc,UAC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","sources":["../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@ethereumjs/rlp/src/index.ts","../node_modules/@mui/icons-material/PlayArrow.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType/deprecatedPropType.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement/isMuiElement.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp/unsupportedProp.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useForkRef.js","../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","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/colorManipulator.js","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction/createChainedFunction.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/utils/esm/useLazyRef/useLazyRef.js","../node_modules/@mui/utils/esm/useOnMount/useOnMount.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/aws-sdk/clients/acm.js","../node_modules/aws-sdk/clients/amp.js","../node_modules/aws-sdk/clients/apigateway.js","../node_modules/aws-sdk/clients/applicationautoscaling.js","../node_modules/aws-sdk/clients/athena.js","../node_modules/aws-sdk/clients/autoscaling.js","../node_modules/aws-sdk/clients/browser_default.js","../node_modules/aws-sdk/clients/cloudformation.js","../node_modules/aws-sdk/clients/cloudfront.js","../node_modules/aws-sdk/clients/cloudhsm.js","../node_modules/aws-sdk/clients/cloudhsmv2.js","../node_modules/aws-sdk/clients/cloudtrail.js","../node_modules/aws-sdk/clients/cloudwatch.js","../node_modules/aws-sdk/clients/cloudwatchevents.js","../node_modules/aws-sdk/clients/cloudwatchlogs.js","../node_modules/aws-sdk/clients/codebuild.js","../node_modules/aws-sdk/clients/codecommit.js","../node_modules/aws-sdk/clients/codedeploy.js","../node_modules/aws-sdk/clients/codepipeline.js","../node_modules/aws-sdk/clients/cognitoidentity.js","../node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","../node_modules/aws-sdk/clients/cognitosync.js","../node_modules/aws-sdk/clients/comprehend.js","../node_modules/aws-sdk/clients/comprehendmedical.js","../node_modules/aws-sdk/clients/configservice.js","../node_modules/aws-sdk/clients/connect.js","../node_modules/aws-sdk/clients/costexplorer.js","../node_modules/aws-sdk/clients/cur.js","../node_modules/aws-sdk/clients/devicefarm.js","../node_modules/aws-sdk/clients/directconnect.js","../node_modules/aws-sdk/clients/dynamodb.js","../node_modules/aws-sdk/clients/dynamodbstreams.js","../node_modules/aws-sdk/clients/ec2.js","../node_modules/aws-sdk/clients/ecr.js","../node_modules/aws-sdk/clients/ecs.js","../node_modules/aws-sdk/clients/efs.js","../node_modules/aws-sdk/clients/elasticache.js","../node_modules/aws-sdk/clients/elasticbeanstalk.js","../node_modules/aws-sdk/clients/elastictranscoder.js","../node_modules/aws-sdk/clients/elb.js","../node_modules/aws-sdk/clients/elbv2.js","../node_modules/aws-sdk/clients/emr.js","../node_modules/aws-sdk/clients/firehose.js","../node_modules/aws-sdk/clients/forecastqueryservice.js","../node_modules/aws-sdk/clients/forecastservice.js","../node_modules/aws-sdk/clients/gamelift.js","../node_modules/aws-sdk/clients/iam.js","../node_modules/aws-sdk/clients/inspector.js","../node_modules/aws-sdk/clients/iot.js","../node_modules/aws-sdk/clients/iotanalytics.js","../node_modules/aws-sdk/clients/iotdata.js","../node_modules/aws-sdk/clients/kinesis.js","../node_modules/aws-sdk/clients/kinesisvideo.js","../node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","../node_modules/aws-sdk/clients/kinesisvideomedia.js","../node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","../node_modules/aws-sdk/clients/kms.js","../node_modules/aws-sdk/clients/lambda.js","../node_modules/aws-sdk/clients/lexmodelbuildingservice.js","../node_modules/aws-sdk/clients/lexruntime.js","../node_modules/aws-sdk/clients/lexruntimev2.js","../node_modules/aws-sdk/clients/location.js","../node_modules/aws-sdk/clients/machinelearning.js","../node_modules/aws-sdk/clients/marketplacecatalog.js","../node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","../node_modules/aws-sdk/clients/mediastoredata.js","../node_modules/aws-sdk/clients/mobileanalytics.js","../node_modules/aws-sdk/clients/mturk.js","../node_modules/aws-sdk/clients/opsworks.js","../node_modules/aws-sdk/clients/personalize.js","../node_modules/aws-sdk/clients/personalizeevents.js","../node_modules/aws-sdk/clients/personalizeruntime.js","../node_modules/aws-sdk/clients/polly.js","../node_modules/aws-sdk/clients/pricing.js","../node_modules/aws-sdk/clients/rds.js","../node_modules/aws-sdk/clients/redshift.js","../node_modules/aws-sdk/clients/rekognition.js","../node_modules/aws-sdk/clients/resourcegroups.js","../node_modules/aws-sdk/clients/route53.js","../node_modules/aws-sdk/clients/route53domains.js","../node_modules/aws-sdk/clients/s3.js","../node_modules/aws-sdk/clients/secretsmanager.js","../node_modules/aws-sdk/clients/servicecatalog.js","../node_modules/aws-sdk/clients/ses.js","../node_modules/aws-sdk/clients/sns.js","../node_modules/aws-sdk/clients/sqs.js","../node_modules/aws-sdk/clients/ssm.js","../node_modules/aws-sdk/clients/storagegateway.js","../node_modules/aws-sdk/clients/sts.js","../node_modules/aws-sdk/clients/translate.js","../node_modules/aws-sdk/clients/waf.js","../node_modules/aws-sdk/clients/workdocs.js","../node_modules/aws-sdk/clients/xray.js","../node_modules/aws-sdk/lib/api_loader.js","../node_modules/aws-sdk/lib/browser.js","../node_modules/aws-sdk/lib/browserCryptoLib.js","../node_modules/aws-sdk/lib/browserHashUtils.js","../node_modules/aws-sdk/lib/browserHmac.js","../node_modules/aws-sdk/lib/browserMd5.js","../node_modules/aws-sdk/lib/browserSha1.js","../node_modules/aws-sdk/lib/browserSha256.js","../node_modules/aws-sdk/lib/browser_loader.js","../node_modules/aws-sdk/lib/cloudfront/signer.js","../node_modules/aws-sdk/lib/config.js","../node_modules/aws-sdk/lib/config_regional_endpoint.js","../node_modules/aws-sdk/lib/core.js","../node_modules/aws-sdk/lib/credentials.js","../node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","../node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","../node_modules/aws-sdk/lib/credentials/saml_credentials.js","../node_modules/aws-sdk/lib/credentials/temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","../node_modules/aws-sdk/lib/discover_endpoint.js","../node_modules/aws-sdk/lib/dynamodb/converter.js","../node_modules/aws-sdk/lib/dynamodb/document_client.js","../node_modules/aws-sdk/lib/dynamodb/numberValue.js","../node_modules/aws-sdk/lib/dynamodb/set.js","../node_modules/aws-sdk/lib/dynamodb/translator.js","../node_modules/aws-sdk/lib/dynamodb/types.js","../node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","../node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","../node_modules/aws-sdk/lib/event-stream/int64.js","../node_modules/aws-sdk/lib/event-stream/parse-event.js","../node_modules/aws-sdk/lib/event-stream/parse-message.js","../node_modules/aws-sdk/lib/event-stream/split-message.js","../node_modules/aws-sdk/lib/event_listeners.js","../node_modules/aws-sdk/lib/http.js","../node_modules/aws-sdk/lib/http/xhr.js","../node_modules/aws-sdk/lib/json/builder.js","../node_modules/aws-sdk/lib/json/parser.js","../node_modules/aws-sdk/lib/maintenance_mode_message.js","../node_modules/aws-sdk/lib/model/api.js","../node_modules/aws-sdk/lib/model/collection.js","../node_modules/aws-sdk/lib/model/operation.js","../node_modules/aws-sdk/lib/model/paginator.js","../node_modules/aws-sdk/lib/model/resource_waiter.js","../node_modules/aws-sdk/lib/model/shape.js","../node_modules/aws-sdk/lib/param_validator.js","../node_modules/aws-sdk/lib/polly/presigner.js","../node_modules/aws-sdk/lib/protocol/helpers.js","../node_modules/aws-sdk/lib/protocol/json.js","../node_modules/aws-sdk/lib/protocol/query.js","../node_modules/aws-sdk/lib/protocol/rest.js","../node_modules/aws-sdk/lib/protocol/rest_json.js","../node_modules/aws-sdk/lib/protocol/rest_xml.js","../node_modules/aws-sdk/lib/query/query_param_serializer.js","../node_modules/aws-sdk/lib/rds/signer.js","../node_modules/aws-sdk/lib/realclock/browserClock.js","../node_modules/aws-sdk/lib/region/utils.js","../node_modules/aws-sdk/lib/region_config.js","../node_modules/aws-sdk/lib/request.js","../node_modules/aws-sdk/lib/resource_waiter.js","../node_modules/aws-sdk/lib/response.js","../node_modules/aws-sdk/lib/s3/managed_upload.js","../node_modules/aws-sdk/lib/sequential_executor.js","../node_modules/aws-sdk/lib/service.js","../node_modules/aws-sdk/lib/services/apigateway.js","../node_modules/aws-sdk/lib/services/cloudfront.js","../node_modules/aws-sdk/lib/services/dynamodb.js","../node_modules/aws-sdk/lib/services/ec2.js","../node_modules/aws-sdk/lib/services/iotdata.js","../node_modules/aws-sdk/lib/services/lambda.js","../node_modules/aws-sdk/lib/services/machinelearning.js","../node_modules/aws-sdk/lib/services/polly.js","../node_modules/aws-sdk/lib/services/rds.js","../node_modules/aws-sdk/lib/services/rdsutil.js","../node_modules/aws-sdk/lib/services/route53.js","../node_modules/aws-sdk/lib/services/s3.js","../node_modules/aws-sdk/lib/services/s3util.js","../node_modules/aws-sdk/lib/services/sqs.js","../node_modules/aws-sdk/lib/services/sts.js","../node_modules/aws-sdk/lib/signers/bearer.js","../node_modules/aws-sdk/lib/signers/presign.js","../node_modules/aws-sdk/lib/signers/request_signer.js","../node_modules/aws-sdk/lib/signers/s3.js","../node_modules/aws-sdk/lib/signers/v2.js","../node_modules/aws-sdk/lib/signers/v3.js","../node_modules/aws-sdk/lib/signers/v3https.js","../node_modules/aws-sdk/lib/signers/v4.js","../node_modules/aws-sdk/lib/signers/v4_credentials.js","../node_modules/aws-sdk/lib/state_machine.js","../node_modules/aws-sdk/lib/util.js","../node_modules/aws-sdk/lib/xml/browser_parser.js","../node_modules/aws-sdk/lib/xml/builder.js","../node_modules/aws-sdk/lib/xml/escape-attribute.js","../node_modules/aws-sdk/lib/xml/escape-element.js","../node_modules/aws-sdk/lib/xml/xml-node.js","../node_modules/aws-sdk/lib/xml/xml-text.js","../node_modules/aws-sdk/node_modules/buffer/index.js","../node_modules/aws-sdk/node_modules/isarray/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","../node_modules/aws-sdk/node_modules/uuid/dist/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/v1.js","../node_modules/aws-sdk/node_modules/uuid/dist/v3.js","../node_modules/aws-sdk/node_modules/uuid/dist/v35.js","../node_modules/aws-sdk/node_modules/uuid/dist/v4.js","../node_modules/aws-sdk/node_modules/uuid/dist/v5.js","../node_modules/aws-sdk/vendor/endpoint-cache/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","../node_modules/base64-js/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/cookie/index.js","../node_modules/cookies-next/lib/index.js","../node_modules/crc-32/crc32.js","../node_modules/cross-fetch/dist/browser-ponyfill.js","../node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/date-fns/_lib/defaultLocale.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/_lib/format/formatters.js","../node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/date-fns/_lib/getRoundingMethod.js","../node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/date-fns/_lib/protectedTokens.js","../node_modules/date-fns/add.js","../node_modules/date-fns/addBusinessDays.js","../node_modules/date-fns/addDays.js","../node_modules/date-fns/addHours.js","../node_modules/date-fns/addISOWeekYears.js","../node_modules/date-fns/addMilliseconds.js","../node_modules/date-fns/addMinutes.js","../node_modules/date-fns/addMonths.js","../node_modules/date-fns/addQuarters.js","../node_modules/date-fns/addSeconds.js","../node_modules/date-fns/addWeeks.js","../node_modules/date-fns/addYears.js","../node_modules/date-fns/areIntervalsOverlapping.js","../node_modules/date-fns/clamp.js","../node_modules/date-fns/closestIndexTo.js","../node_modules/date-fns/closestTo.js","../node_modules/date-fns/compareAsc.js","../node_modules/date-fns/compareDesc.js","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/constructNow.js","../node_modules/date-fns/daysToWeeks.js","../node_modules/date-fns/differenceInBusinessDays.js","../node_modules/date-fns/differenceInCalendarDays.js","../node_modules/date-fns/differenceInCalendarISOWeekYears.js","../node_modules/date-fns/differenceInCalendarISOWeeks.js","../node_modules/date-fns/differenceInCalendarMonths.js","../node_modules/date-fns/differenceInCalendarQuarters.js","../node_modules/date-fns/differenceInCalendarWeeks.js","../node_modules/date-fns/differenceInCalendarYears.js","../node_modules/date-fns/differenceInDays.js","../node_modules/date-fns/differenceInHours.js","../node_modules/date-fns/differenceInISOWeekYears.js","../node_modules/date-fns/differenceInMilliseconds.js","../node_modules/date-fns/differenceInMinutes.js","../node_modules/date-fns/differenceInMonths.js","../node_modules/date-fns/differenceInQuarters.js","../node_modules/date-fns/differenceInSeconds.js","../node_modules/date-fns/differenceInWeeks.js","../node_modules/date-fns/differenceInYears.js","../node_modules/date-fns/eachDayOfInterval.js","../node_modules/date-fns/eachHourOfInterval.js","../node_modules/date-fns/eachMinuteOfInterval.js","../node_modules/date-fns/eachMonthOfInterval.js","../node_modules/date-fns/eachQuarterOfInterval.js","../node_modules/date-fns/eachWeekOfInterval.js","../node_modules/date-fns/eachWeekendOfInterval.js","../node_modules/date-fns/eachWeekendOfMonth.js","../node_modules/date-fns/eachWeekendOfYear.js","../node_modules/date-fns/eachYearOfInterval.js","../node_modules/date-fns/endOfDay.js","../node_modules/date-fns/endOfDecade.js","../node_modules/date-fns/endOfHour.js","../node_modules/date-fns/endOfISOWeek.js","../node_modules/date-fns/endOfISOWeekYear.js","../node_modules/date-fns/endOfMinute.js","../node_modules/date-fns/endOfMonth.js","../node_modules/date-fns/endOfQuarter.js","../node_modules/date-fns/endOfSecond.js","../node_modules/date-fns/endOfToday.js","../node_modules/date-fns/endOfTomorrow.js","../node_modules/date-fns/endOfWeek.js","../node_modules/date-fns/endOfYear.js","../node_modules/date-fns/endOfYesterday.js","../node_modules/date-fns/format.js","../node_modules/date-fns/formatDistance.js","../node_modules/date-fns/formatDistanceStrict.js","../node_modules/date-fns/formatDistanceToNow.js","../node_modules/date-fns/formatDistanceToNowStrict.js","../node_modules/date-fns/formatDuration.js","../node_modules/date-fns/formatISO.js","../node_modules/date-fns/formatISO9075.js","../node_modules/date-fns/formatISODuration.js","../node_modules/date-fns/formatRFC3339.js","../node_modules/date-fns/formatRFC7231.js","../node_modules/date-fns/formatRelative.js","../node_modules/date-fns/fromUnixTime.js","../node_modules/date-fns/getDate.js","../node_modules/date-fns/getDay.js","../node_modules/date-fns/getDayOfYear.js","../node_modules/date-fns/getDaysInMonth.js","../node_modules/date-fns/getDaysInYear.js","../node_modules/date-fns/getDecade.js","../node_modules/date-fns/getDefaultOptions.js","../node_modules/date-fns/getHours.js","../node_modules/date-fns/getISODay.js","../node_modules/date-fns/getISOWeek.js","../node_modules/date-fns/getISOWeekYear.js","../node_modules/date-fns/getISOWeeksInYear.js","../node_modules/date-fns/getMilliseconds.js","../node_modules/date-fns/getMinutes.js","../node_modules/date-fns/getMonth.js","../node_modules/date-fns/getOverlappingDaysInIntervals.js","../node_modules/date-fns/getQuarter.js","../node_modules/date-fns/getSeconds.js","../node_modules/date-fns/getTime.js","../node_modules/date-fns/getUnixTime.js","../node_modules/date-fns/getWeek.js","../node_modules/date-fns/getWeekOfMonth.js","../node_modules/date-fns/getWeekYear.js","../node_modules/date-fns/getWeeksInMonth.js","../node_modules/date-fns/getYear.js","../node_modules/date-fns/hoursToMilliseconds.js","../node_modules/date-fns/hoursToMinutes.js","../node_modules/date-fns/hoursToSeconds.js","../node_modules/date-fns/index.js","../node_modules/date-fns/interval.js","../node_modules/date-fns/intervalToDuration.js","../node_modules/date-fns/intlFormat.js","../node_modules/date-fns/intlFormatDistance.js","../node_modules/date-fns/isAfter.js","../node_modules/date-fns/isBefore.js","../node_modules/date-fns/isDate.js","../node_modules/date-fns/isEqual.js","../node_modules/date-fns/isExists.js","../node_modules/date-fns/isFirstDayOfMonth.js","../node_modules/date-fns/isFriday.js","../node_modules/date-fns/isFuture.js","../node_modules/date-fns/isLastDayOfMonth.js","../node_modules/date-fns/isLeapYear.js","../node_modules/date-fns/isMatch.js","../node_modules/date-fns/isMonday.js","../node_modules/date-fns/isPast.js","../node_modules/date-fns/isSameDay.js","../node_modules/date-fns/isSameHour.js","../node_modules/date-fns/isSameISOWeek.js","../node_modules/date-fns/isSameISOWeekYear.js","../node_modules/date-fns/isSameMinute.js","../node_modules/date-fns/isSameMonth.js","../node_modules/date-fns/isSameQuarter.js","../node_modules/date-fns/isSameSecond.js","../node_modules/date-fns/isSameWeek.js","../node_modules/date-fns/isSameYear.js","../node_modules/date-fns/isSaturday.js","../node_modules/date-fns/isSunday.js","../node_modules/date-fns/isThisHour.js","../node_modules/date-fns/isThisISOWeek.js","../node_modules/date-fns/isThisMinute.js","../node_modules/date-fns/isThisMonth.js","../node_modules/date-fns/isThisQuarter.js","../node_modules/date-fns/isThisSecond.js","../node_modules/date-fns/isThisWeek.js","../node_modules/date-fns/isThisYear.js","../node_modules/date-fns/isThursday.js","../node_modules/date-fns/isToday.js","../node_modules/date-fns/isTomorrow.js","../node_modules/date-fns/isTuesday.js","../node_modules/date-fns/isValid.js","../node_modules/date-fns/isWednesday.js","../node_modules/date-fns/isWeekend.js","../node_modules/date-fns/isWithinInterval.js","../node_modules/date-fns/isYesterday.js","../node_modules/date-fns/lastDayOfDecade.js","../node_modules/date-fns/lastDayOfISOWeek.js","../node_modules/date-fns/lastDayOfISOWeekYear.js","../node_modules/date-fns/lastDayOfMonth.js","../node_modules/date-fns/lastDayOfQuarter.js","../node_modules/date-fns/lastDayOfWeek.js","../node_modules/date-fns/lastDayOfYear.js","../node_modules/date-fns/lightFormat.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/locale/en-US.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/max.js","../node_modules/date-fns/milliseconds.js","../node_modules/date-fns/millisecondsToHours.js","../node_modules/date-fns/millisecondsToMinutes.js","../node_modules/date-fns/millisecondsToSeconds.js","../node_modules/date-fns/min.js","../node_modules/date-fns/minutesToHours.js","../node_modules/date-fns/minutesToMilliseconds.js","../node_modules/date-fns/minutesToSeconds.js","../node_modules/date-fns/monthsToQuarters.js","../node_modules/date-fns/monthsToYears.js","../node_modules/date-fns/nextDay.js","../node_modules/date-fns/nextFriday.js","../node_modules/date-fns/nextMonday.js","../node_modules/date-fns/nextSaturday.js","../node_modules/date-fns/nextSunday.js","../node_modules/date-fns/nextThursday.js","../node_modules/date-fns/nextTuesday.js","../node_modules/date-fns/nextWednesday.js","../node_modules/date-fns/parse.js","../node_modules/date-fns/parse/_lib/Parser.js","../node_modules/date-fns/parse/_lib/Setter.js","../node_modules/date-fns/parse/_lib/constants.js","../node_modules/date-fns/parse/_lib/parsers.js","../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/parse/_lib/utils.js","../node_modules/date-fns/parseISO.js","../node_modules/date-fns/parseJSON.js","../node_modules/date-fns/previousDay.js","../node_modules/date-fns/previousFriday.js","../node_modules/date-fns/previousMonday.js","../node_modules/date-fns/previousSaturday.js","../node_modules/date-fns/previousSunday.js","../node_modules/date-fns/previousThursday.js","../node_modules/date-fns/previousTuesday.js","../node_modules/date-fns/previousWednesday.js","../node_modules/date-fns/quartersToMonths.js","../node_modules/date-fns/quartersToYears.js","../node_modules/date-fns/roundToNearestHours.js","../node_modules/date-fns/roundToNearestMinutes.js","../node_modules/date-fns/secondsToHours.js","../node_modules/date-fns/secondsToMilliseconds.js","../node_modules/date-fns/secondsToMinutes.js","../node_modules/date-fns/set.js","../node_modules/date-fns/setDate.js","../node_modules/date-fns/setDay.js","../node_modules/date-fns/setDayOfYear.js","../node_modules/date-fns/setDefaultOptions.js","../node_modules/date-fns/setHours.js","../node_modules/date-fns/setISODay.js","../node_modules/date-fns/setISOWeek.js","../node_modules/date-fns/setISOWeekYear.js","../node_modules/date-fns/setMilliseconds.js","../node_modules/date-fns/setMinutes.js","../node_modules/date-fns/setMonth.js","../node_modules/date-fns/setQuarter.js","../node_modules/date-fns/setSeconds.js","../node_modules/date-fns/setWeek.js","../node_modules/date-fns/setWeekYear.js","../node_modules/date-fns/setYear.js","../node_modules/date-fns/startOfDay.js","../node_modules/date-fns/startOfDecade.js","../node_modules/date-fns/startOfHour.js","../node_modules/date-fns/startOfISOWeek.js","../node_modules/date-fns/startOfISOWeekYear.js","../node_modules/date-fns/startOfMinute.js","../node_modules/date-fns/startOfMonth.js","../node_modules/date-fns/startOfQuarter.js","../node_modules/date-fns/startOfSecond.js","../node_modules/date-fns/startOfToday.js","../node_modules/date-fns/startOfTomorrow.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/startOfWeekYear.js","../node_modules/date-fns/startOfYear.js","../node_modules/date-fns/startOfYesterday.js","../node_modules/date-fns/sub.js","../node_modules/date-fns/subBusinessDays.js","../node_modules/date-fns/subDays.js","../node_modules/date-fns/subHours.js","../node_modules/date-fns/subISOWeekYears.js","../node_modules/date-fns/subMilliseconds.js","../node_modules/date-fns/subMinutes.js","../node_modules/date-fns/subMonths.js","../node_modules/date-fns/subQuarters.js","../node_modules/date-fns/subSeconds.js","../node_modules/date-fns/subWeeks.js","../node_modules/date-fns/subYears.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/transpose.js","../node_modules/date-fns/weeksToDays.js","../node_modules/date-fns/yearsToDays.js","../node_modules/date-fns/yearsToMonths.js","../node_modules/date-fns/yearsToQuarters.js","../node_modules/dayjs/dayjs.min.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/define-data-property/index.js","../node_modules/dompurify/src/utils.js","../node_modules/dompurify/src/tags.js","../node_modules/dompurify/src/attrs.js","../node_modules/dompurify/src/regexp.js","../node_modules/dompurify/src/purify.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/QueryHandler.js","../node_modules/enquire.js/src/Util.js","../node_modules/enquire.js/src/index.js","../node_modules/es-define-property/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/eventemitter3/index.js","../node_modules/events/events.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/hasown/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../node_modules/jmespath/jmespath.js","../node_modules/json2mq/index.js","../node_modules/load-script/index.js","../node_modules/lodash.debounce/index.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/mobile-device-detect/dist/index.js","../node_modules/normalize-wheel/index.js","../node_modules/normalize-wheel/src/ExecutionEnvironment.js","../node_modules/normalize-wheel/src/UserAgent_DEPRECATED.js","../node_modules/normalize-wheel/src/isEventSupported.js","../node_modules/normalize-wheel/src/normalizeWheel.js","../node_modules/object-assign/index.js","../node_modules/possible-typed-array-names/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-date-range/dist/accessibility/index.js","../node_modules/react-date-range/dist/components/Calendar/index.js","../node_modules/react-date-range/dist/components/DateInput/index.js","../node_modules/react-date-range/dist/components/DateRange/index.js","../node_modules/react-date-range/dist/components/DateRangePicker/index.js","../node_modules/react-date-range/dist/components/DayCell/index.js","../node_modules/react-date-range/dist/components/DefinedRange/index.js","../node_modules/react-date-range/dist/components/InputRangeField/index.js","../node_modules/react-date-range/dist/components/Month/index.js","../node_modules/react-date-range/dist/defaultRanges.js","../node_modules/react-date-range/dist/index.js","../node_modules/react-date-range/dist/styles.js","../node_modules/react-date-range/dist/utils.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-dom/node_modules/scheduler/index.js","../node_modules/react-fast-compare/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../Hls/webpack/universalModuleDefinition","../Hls/webpack/bootstrap","../Hls/node_modules/eventemitter3/index.js","../Hls/node_modules/url-toolkit/src/url-toolkit.js","../Hls/node_modules/webworkify-webpack/index.js","../Hls/src/crypt/aes-crypto.js","../Hls/src/crypt/fast-aes-key.js","../Hls/src/crypt/aes-decryptor.js","../Hls/src/crypt/decrypter.js","../Hls/src/demux/adts.js","../Hls/src/demux/aacdemuxer.js","../Hls/src/demux/mpegaudio.js","../Hls/src/demux/exp-golomb.js","../Hls/src/demux/sample-aes.js","../Hls/src/demux/tsdemuxer.js","../Hls/src/demux/mp3demuxer.js","../Hls/src/remux/aac-helper.js","../Hls/src/remux/mp4-generator.js","../Hls/src/utils/timescale-conversion.ts","../Hls/src/remux/mp4-remuxer.js","../Hls/src/demux/demuxer-inline.js","../Hls/src/remux/passthrough-remuxer.js","../Hls/src/demux/demuxer-worker.js","../Hls/src/demux/id3.js","../Hls/src/demux/mp4demuxer.js","../Hls/src/errors.ts","../Hls/src/events.js","../Hls/src/types/loader.ts","../Hls/src/event-handler.ts","../Hls/src/loader/fragment.ts","../Hls/src/loader/level-key.ts","../Hls/src/loader/level.js","../Hls/src/utils/attr-list.js","../Hls/src/utils/codecs.ts","../Hls/src/loader/m3u8-parser.ts","../Hls/src/loader/playlist-loader.ts","../Hls/src/loader/fragment-loader.js","../Hls/src/loader/key-loader.ts","../Hls/src/controller/fragment-tracker.js","../Hls/src/utils/binary-search.ts","../Hls/src/utils/buffer-helper.ts","../Hls/src/utils/mediasource-helper.ts","../Hls/src/observer.ts","../Hls/src/demux/demuxer.js","../Hls/src/controller/level-helper.js","../Hls/src/utils/time-ranges.ts","../Hls/src/utils/discontinuities.js","../Hls/src/controller/fragment-finders.ts","../Hls/src/controller/gap-controller.js","../Hls/src/task-loop.ts","../Hls/src/controller/base-stream-controller.js","../Hls/src/controller/stream-controller.js","../Hls/src/controller/level-controller.js","../Hls/src/utils/texttrack-utils.ts","../Hls/src/controller/id3-track-controller.js","../Hls/src/utils/ewma.ts","../Hls/src/utils/ewma-bandwidth-estimator.ts","../Hls/src/controller/abr-controller.js","../Hls/src/controller/buffer-controller.ts","../Hls/src/controller/cap-level-controller.js","../Hls/src/controller/fps-controller.js","../Hls/src/utils/xhr-loader.js","../Hls/src/controller/audio-track-controller.js","../Hls/src/controller/audio-stream-controller.js","../Hls/src/utils/vttcue.js","../Hls/src/utils/vttparser.js","../Hls/src/utils/cues.ts","../Hls/src/utils/cea-608-parser.ts","../Hls/src/utils/output-filter.ts","../Hls/src/utils/webvtt-parser.js","../Hls/src/controller/timeline-controller.ts","../Hls/src/controller/subtitle-track-controller.js","../Hls/src/utils/mediakeys-helper.ts","../Hls/src/controller/subtitle-stream-controller.js","../Hls/src/controller/eme-controller.ts","../Hls/src/config.ts","../Hls/src/hls.ts","../Hls/src/is-supported.ts","../Hls/src/polyfills/number.js","../Hls/src/utils/get-self-scope.js","../Hls/src/utils/logger.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-list/react-list.js","../node_modules/react-player/lib/Player.js","../node_modules/react-player/lib/ReactPlayer.js","../node_modules/react-player/lib/index.js","../node_modules/react-player/lib/patterns.js","../node_modules/react-player/lib/players/index.js","../node_modules/react-player/lib/props.js","../node_modules/react-player/lib/utils.js","../node_modules/react-reveal/Bounce.js","../node_modules/react-reveal/Fade.js","../node_modules/react-reveal/Flip.js","../node_modules/react-reveal/LightSpeed.js","../node_modules/react-reveal/Reveal.js","../node_modules/react-reveal/RevealBase.js","../node_modules/react-reveal/Roll.js","../node_modules/react-reveal/Rotate.js","../node_modules/react-reveal/Slide.js","../node_modules/react-reveal/Zoom.js","../node_modules/react-reveal/globals.js","../node_modules/react-reveal/index.js","../node_modules/react-reveal/wrap.js","../node_modules/react-side-effect/lib/index.js","../node_modules/react-slick/lib/arrows.js","../node_modules/react-slick/lib/default-props.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/set-function-length/index.js","../node_modules/setimmediate/setImmediate.js","../node_modules/shallow-equal/dist/index.esm.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/sweetalert2/dist/sweetalert2.all.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.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/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/which-typed-array/index.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/available-typed-arrays/index.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@web3icons/react/src/BaseIcon.tsx","../node_modules/clsx/dist/clsx.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/index.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/createBox.js","../node_modules/@mui/material/Box/boxClasses.js","../node_modules/@mui/material/Box/Box.js","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/si/index.mjs","components/shadow-frame/index.jsx","components/Loader/Loader.jsx","../node_modules/react-hls-player/dist/index.js","constant/index.js","../node_modules/react-icons/fa6/index.mjs","../node_modules/hls.js/dist/node_modules/url-toolkit/src/url-toolkit.js","../node_modules/hls.js/dist/src/polyfills/number.ts","../node_modules/hls.js/dist/src/events.ts","../node_modules/hls.js/dist/src/errors.ts","../node_modules/hls.js/dist/src/utils/logger.ts","../node_modules/hls.js/dist/src/utils/attr-list.ts","../node_modules/hls.js/dist/src/loader/date-range.ts","../node_modules/hls.js/dist/src/loader/load-stats.ts","../node_modules/hls.js/dist/src/loader/fragment.ts","../node_modules/hls.js/dist/src/loader/level-details.ts","../node_modules/hls.js/dist/src/utils/numeric-encoding-utils.ts","../node_modules/hls.js/dist/src/utils/keysystem-util.ts","../node_modules/hls.js/dist/src/utils/global.ts","../node_modules/hls.js/dist/src/utils/mediakeys-helper.ts","../node_modules/hls.js/dist/src/utils/typed-array.ts","../node_modules/hls.js/dist/src/demux/id3.ts","../node_modules/hls.js/dist/src/utils/hex.ts","../node_modules/hls.js/dist/src/utils/mp4-tools.ts","../node_modules/hls.js/dist/src/loader/level-key.ts","../node_modules/hls.js/dist/src/utils/variable-substitution.ts","../node_modules/hls.js/dist/src/utils/mediasource-helper.ts","../node_modules/hls.js/dist/src/utils/codecs.ts","../node_modules/hls.js/dist/src/loader/m3u8-parser.ts","../node_modules/hls.js/dist/src/types/loader.ts","../node_modules/hls.js/dist/src/loader/playlist-loader.ts","../node_modules/hls.js/dist/src/utils/texttrack-utils.ts","../node_modules/hls.js/dist/src/types/demuxer.ts","../node_modules/hls.js/dist/src/controller/id3-track-controller.ts","../node_modules/hls.js/dist/src/controller/latency-controller.ts","../node_modules/hls.js/dist/src/types/level.ts","../node_modules/hls.js/dist/src/utils/level-helper.ts","../node_modules/hls.js/dist/src/utils/error-helper.ts","../node_modules/hls.js/dist/src/utils/binary-search.ts","../node_modules/hls.js/dist/src/controller/fragment-finders.ts","../node_modules/hls.js/dist/src/controller/error-controller.ts","../node_modules/hls.js/dist/src/controller/base-playlist-controller.ts","../node_modules/hls.js/dist/src/utils/ewma.ts","../node_modules/hls.js/dist/src/utils/ewma-bandwidth-estimator.ts","../node_modules/hls.js/dist/src/utils/mediacapabilities-helper.ts","../node_modules/hls.js/dist/src/utils/hdr.ts","../node_modules/hls.js/dist/src/utils/rendition-helper.ts","../node_modules/hls.js/dist/src/task-loop.ts","../node_modules/hls.js/dist/src/controller/fragment-tracker.ts","../node_modules/hls.js/dist/src/utils/buffer-helper.ts","../node_modules/hls.js/dist/src/types/transmuxer.ts","../node_modules/hls.js/dist/src/utils/discontinuities.ts","../node_modules/hls.js/dist/src/loader/fragment-loader.ts","../node_modules/hls.js/dist/src/crypt/aes-crypto.ts","../node_modules/hls.js/dist/src/crypt/fast-aes-key.ts","../node_modules/hls.js/dist/src/crypt/aes-decryptor.ts","../node_modules/hls.js/dist/src/crypt/decrypter.ts","../node_modules/hls.js/dist/src/utils/time-ranges.ts","../node_modules/hls.js/dist/src/controller/base-stream-controller.ts","../node_modules/hls.js/dist/src/demux/chunk-cache.ts","../node_modules/hls.js/dist/src/demux/dummy-demuxed-track.ts","../node_modules/hls.js/dist/src/demux/audio/base-audio-demuxer.ts","../node_modules/hls.js/dist/src/demux/audio/adts.ts","../node_modules/hls.js/dist/src/demux/audio/mpegaudio.ts","../node_modules/hls.js/dist/src/demux/mp4demuxer.ts","../node_modules/hls.js/dist/src/demux/audio/dolby.ts","../node_modules/hls.js/dist/src/demux/audio/ac3-demuxer.ts","../node_modules/hls.js/dist/src/demux/video/base-video-parser.ts","../node_modules/hls.js/dist/src/demux/video/exp-golomb.ts","../node_modules/hls.js/dist/src/demux/video/avc-video-parser.ts","../node_modules/hls.js/dist/src/demux/sample-aes.ts","../node_modules/hls.js/dist/src/demux/tsdemuxer.ts","../node_modules/hls.js/dist/src/remux/aac-helper.ts","../node_modules/hls.js/dist/src/remux/mp4-generator.ts","../node_modules/hls.js/dist/src/utils/timescale-conversion.ts","../node_modules/hls.js/dist/src/remux/mp4-remuxer.ts","../node_modules/hls.js/dist/src/demux/transmuxer.ts","../node_modules/hls.js/dist/src/remux/passthrough-remuxer.ts","../node_modules/hls.js/dist/src/demux/audio/aacdemuxer.ts","../node_modules/hls.js/dist/src/demux/audio/mp3demuxer.ts","../node_modules/hls.js/dist/node_modules/eventemitter3/index.js","../node_modules/hls.js/dist/src/demux/transmuxer-interface.ts","../node_modules/hls.js/dist/src/demux/inject-worker.ts","../node_modules/hls.js/dist/src/utils/media-option-attributes.ts","../node_modules/hls.js/dist/src/controller/subtitle-stream-controller.ts","../node_modules/hls.js/dist/src/controller/buffer-operation-queue.ts","../node_modules/hls.js/dist/src/controller/buffer-controller.ts","../node_modules/hls.js/dist/src/utils/cea-608-parser.ts","../node_modules/hls.js/dist/src/utils/output-filter.ts","../node_modules/hls.js/dist/src/utils/vttcue.ts","../node_modules/hls.js/dist/src/utils/vttparser.ts","../node_modules/hls.js/dist/src/utils/webvtt-parser.ts","../node_modules/hls.js/dist/src/utils/imsc1-ttml-parser.ts","../node_modules/hls.js/dist/src/controller/timeline-controller.ts","../node_modules/hls.js/dist/src/controller/cap-level-controller.ts","../node_modules/hls.js/dist/src/controller/eme-controller.ts","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cta/CmObjectType.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cta/CmStreamingFormat.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/CmcdHeaderField.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/CmcdHeaderMap.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/SfItem.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/SfToken.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/throwError.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/BARE_ITEM.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/STRING_REGEX.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeError.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeByteSequence.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/BYTES.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/utils/base64encode.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeInteger.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/isInvalidInt.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/INTEGER.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/utils/roundToEven.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeDecimal.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/DECIMAL.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeToken.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cta/utils/symbolToStr.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/TOKEN.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeBareItem.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeString.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/STRING.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeBoolean.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/BOOLEAN.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeDate.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeKey.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/KEY.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeParams.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeItem.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeDict.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/utils/DICT.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/serialize/serializeInnerList.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/CmcdFormatters.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/utils/urlToRelativePath.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/utils/processCmcd.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cta/utils/isValid.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cta/utils/isTokenField.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/encodeCmcd.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/structuredfield/encodeSfDict.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/appendCmcdHeaders.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/toCmcdHeaders.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/appendCmcdQuery.js","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/cmcd/toCmcdQuery.js","../node_modules/hls.js/dist/src/controller/content-steering-controller.ts","../node_modules/hls.js/dist/src/utils/xhr-loader.ts","../node_modules/hls.js/dist/src/utils/fetch-loader.ts","../node_modules/hls.js/dist/src/utils/cues.ts","../node_modules/hls.js/dist/src/config.ts","../node_modules/hls.js/dist/src/controller/abr-controller.ts","../node_modules/hls.js/dist/src/controller/fps-controller.ts","../node_modules/hls.js/dist/src/controller/subtitle-track-controller.ts","../node_modules/hls.js/dist/src/controller/audio-stream-controller.ts","../node_modules/hls.js/dist/src/controller/audio-track-controller.ts","../node_modules/hls.js/dist/src/controller/cmcd-controller.ts","../node_modules/hls.js/dist/node_modules/@svta/common-media-library/dist/utils/uuid.js","../node_modules/hls.js/dist/src/controller/level-controller.ts","../node_modules/hls.js/dist/src/loader/key-loader.ts","../node_modules/hls.js/dist/src/is-supported.ts","../node_modules/hls.js/dist/src/controller/gap-controller.ts","../node_modules/hls.js/dist/src/controller/stream-controller.ts","../node_modules/hls.js/dist/src/hls.ts","components/player/HLSPlayer.jsx","../node_modules/react-icons/fi/index.mjs","pages/home/Index.jsx","pages/genevieve/Index.jsx","pages/fstr/Index.jsx","components/not-found/Index.jsx","pages/marketplace/Index.jsx","components/card/marketplace/largeCard.jsx","components/card/marketplace/smallCard.jsx","components/card/marketplace/index.jsx","components/card/feature/index.jsx","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/plugins/patches.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/tsHelpers.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/matchers.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/reselect/es/defaultMemoize.js","../node_modules/reselect/es/index.js","../node_modules/@reduxjs/toolkit/src/query/core/apiState.ts","../node_modules/@reduxjs/toolkit/src/query/utils/joinUrls.ts","../node_modules/@reduxjs/toolkit/src/query/utils/isAbsoluteUrl.ts","../node_modules/@reduxjs/toolkit/src/query/utils/flatten.ts","../node_modules/@reduxjs/toolkit/src/query/utils/copyWithStructuralSharing.ts","../node_modules/@reduxjs/toolkit/src/query/fetchBaseQuery.ts","../node_modules/@reduxjs/toolkit/src/query/HandledError.ts","../node_modules/@reduxjs/toolkit/src/query/retry.ts","../node_modules/@reduxjs/toolkit/src/query/endpointDefinitions.ts","../node_modules/@reduxjs/toolkit/src/query/core/setupListeners.ts","../node_modules/@reduxjs/toolkit/src/query/utils/isNotNullish.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildInitiate.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildThunks.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildSlice.ts","../node_modules/@reduxjs/toolkit/src/query/utils/isOnline.ts","../node_modules/@reduxjs/toolkit/src/query/utils/isDocumentVisible.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildSelectors.ts","../node_modules/@reduxjs/toolkit/src/query/defaultSerializeQueryArgs.ts","../node_modules/@reduxjs/toolkit/src/query/createApi.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheCollection.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/batchActions.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/invalidationByTags.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/polling.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/cacheLifecycle.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/queryLifecycle.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/devMiddleware.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/query/core/buildMiddleware/windowEventHandling.ts","../node_modules/@reduxjs/toolkit/src/query/tsHelpers.ts","../node_modules/@reduxjs/toolkit/src/query/core/module.ts","../node_modules/@reduxjs/toolkit/src/query/core/index.ts","../node_modules/@reduxjs/toolkit/src/query/react/useSerializedStableValue.ts","../node_modules/@reduxjs/toolkit/src/query/react/constants.ts","../node_modules/@reduxjs/toolkit/src/query/react/useShallowStableValue.ts","../node_modules/@reduxjs/toolkit/src/query/react/buildHooks.ts","../node_modules/@reduxjs/toolkit/src/query/utils/capitalize.ts","../node_modules/@reduxjs/toolkit/src/query/react/module.ts","../node_modules/@reduxjs/toolkit/src/query/react/index.ts","constant/api/Endpoints.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/goober/dist/goober.modern.js","../node_modules/react-hot-toast/src/core/types.ts","../node_modules/react-hot-toast/src/core/utils.ts","../node_modules/react-hot-toast/src/core/store.ts","../node_modules/react-hot-toast/src/core/toast.ts","../node_modules/react-hot-toast/src/core/use-toaster.ts","../node_modules/react-hot-toast/src/components/error.tsx","../node_modules/react-hot-toast/src/components/loader.tsx","../node_modules/react-hot-toast/src/components/checkmark.tsx","../node_modules/react-hot-toast/src/components/toast-icon.tsx","../node_modules/react-hot-toast/src/components/toast-bar.tsx","../node_modules/react-hot-toast/src/components/toaster.tsx","../node_modules/react-hot-toast/src/index.ts","constant/api/apiInstance.js","store/slicer/Apartments/index.js","constant/imageConstant.js","pages/marketplace/apartments/Index.jsx","store/slicer/Ships/index.js","pages/marketplace/ships/Index.jsx","assets/images/eye-on.svg","assets/images/eye-off.svg","utils/index.js","store/slicer/userProfile/index.js","components/card/assets/AssetCardOpen.jsx","components/buttons/outline-button/OutlineButton.jsx","components/Explore/Explore.jsx","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js","../node_modules/@mui/material/Portal/Portal.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/utils/esm/getScrollbarSize/getScrollbarSize.js","../node_modules/@mui/material/Modal/ModalManager.js","../node_modules/@mui/material/Modal/useModal.js","../node_modules/@mui/material/Modal/modalClasses.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/useMediaQuery/useMediaQuery.js","components/popup/comingsoon/index.jsx","components/assets/myassets/clothing/Formal.jsx","components/assets/myassets/clothing/Casual.jsx","components/assets/myassets/clothing/SpaceSuit.jsx","components/assets/myassets/clothing/ExoSuit.jsx","store/slicer/Marketplace/index.js","pages/marketplace/clothing/Index.jsx","components/partials/SliderHeader.jsx","components/partials/SliderCards.jsx","pages/marketplace/companions/Index.jsx","pages/marketplace/companions/CompanionsList.jsx","components/buy-cards/BuyNowNoTheme.jsx","components/buy-cards/free.jsx","components/buy-cards/premium.jsx","components/buy-cards/myAssets.jsx","components/buy-cards/AddToCart.jsx","components/buy-cards/BuyNowTheme.jsx","components/buy-cards/channelPremium.jsx","components/buy-cards/index.jsx","components/popup/PopupWrapper.jsx","components/popup/Alert/Alert.jsx","../node_modules/@web3icons/react/node_modules/@web3icons/common/src/metadata/tokens.ts","../node_modules/@web3icons/react/src/utils/naming-conventions.ts","../node_modules/@web3icons/react/src/utils/icon-import-map.ts","../node_modules/@web3icons/react/src/DynamicIcon.tsx","../node_modules/@web3icons/react/src/TokenIcon.tsx","../node_modules/@web3icons/react/src/utils/find-metadata.ts","../node_modules/@web3icons/react/src/NetworkIcon.tsx","../node_modules/@web3icons/react/src/WalletIcon.tsx","constant/Icon.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","components/Modal/Payments/AddWalletAddress.jsx","components/Modal/Payments/WalletAddressModel.jsx","components/popup/BuyPopupIap/BuyPopupIap.jsx","components/report/Flag.jsx","store/slicer/Admin/index.js","components/Modal/Report/AssetsReportModal.jsx","store/slicer/Cart/index.js","store/slicer/userAssets/index.js","pages/marketplace/companions/detail/Index.jsx","pages/marketplace/avatars/Index.jsx","pages/marketplace/games/Index.jsx","components/popup/Preview.jsx","pages/marketplace/apartments/detail/Index.jsx","pages/marketplace/clothing/detail/Index.jsx","pages/marketplace/avatars/detail/Index.jsx","pages/marketplace/ships/detail/Index.jsx","utils/generateUrls.js","components/carousel/MostTreading.jsx","store/slicer/Entertainment/index.js","pages/marketplace/entertainment/Index.jsx","pages/marketplace/entertainment/events/components/carouselcard/CarouselCard.jsx","pages/marketplace/entertainment/events/components/eventcard/EventCard.jsx","pages/marketplace/entertainment/events/components/filterdropdown/FilterDropDown.jsx","store/slicer/Events/index.js","../node_modules/dateformat/lib/dateformat.js","pages/marketplace/entertainment/events/list/All.jsx","pages/marketplace/entertainment/events/list/ArtCulture.jsx","pages/marketplace/entertainment/events/list/Education.jsx","pages/marketplace/entertainment/events/list/Gaming.jsx","pages/marketplace/entertainment/events/list/DanceMusic.jsx","pages/marketplace/entertainment/events/list/Party.jsx","pages/marketplace/entertainment/events/list/Concerts.jsx","pages/marketplace/entertainment/events/list/LiveQuest.jsx","pages/marketplace/entertainment/events/list/Adventure.jsx","pages/marketplace/entertainment/events/list/Nature.jsx","pages/marketplace/entertainment/events/Events.jsx","components/buttons/Google/index.jsx","components/password/checklist.jsx","store/slicer/userAuth/authActions.js","store/slicer/userAuth/index.js","pages/auth/signup/index.jsx","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","store/slicer/notification/index.js","components/notification/Index.jsx","assets/images/Rolling-profiler.svg","../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/lib/esm/index.js","../node_modules/engine.io-client/build/esm/globals.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/transports/webtransport.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.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/socket.io-client/build/esm/url.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","services/socket/index.js","components/header/AfterLogin.jsx","components/header/BeforeLogin.jsx","components/header/Index.jsx","components/footer/Index.jsx","components/CookiesConsent/index.jsx","layout/Index.jsx","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/system/esm/styled.js","../node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/Container/Container.js","AuthLayout/index.jsx","BeforeLoginLayout/index.jsx","../node_modules/@react-oauth/google/dist/index.esm.js","pages/auth/signin/index.jsx","pages/auth/forgot-password/index.jsx","pages/auth/forgot-password/otp-verification/index.jsx","pages/auth/forgot-password/confirm-password/index.jsx","store/slicer/friends/index.js","components/assets/myassets/Invite/AssetInvite.jsx","components/assets/myassets/Apartments.jsx","components/assets/myassets/Clothing.jsx","components/assets/myassets/Companion.jsx","components/assets/myassets/gaming/AllGaming.jsx","components/assets/myassets/gaming/EnvironGaming.jsx","components/assets/myassets/gaming/SuiteGaming.jsx","components/assets/myassets/Gaming.jsx","components/assets/myassets/Ships.jsx","components/assets/myassets/Avatar.jsx","store/slicer/Creator/index.js","components/channels/ChannelsAllContent.jsx","components/assets/myassets/Channels.jsx","components/assets/myassets/MyIAPsHome.jsx","components/assets/myavatar/customize/CustomizeAvatar.jsx","components/assets/myavatar/wardrobe/components/SideNavIcon.jsx","components/popup/MyAvatar/Rotate/RotatePopup.jsx","store/slicer/Iap/index.js","components/assets/myavatar/wardrobe/components/WardrobeContextProvider.jsx","components/assets/myavatar/wardrobe/components/Item.jsx","components/assets/myavatar/wardrobe/components/AvatarItem.jsx","components/assets/myavatar/wardrobe/components/ItemList.jsx","components/assets/myavatar/wardrobe/components/ItemPreviewIcon.jsx","components/popup/MyAvatar/CustomizeSuccess/Success.jsx","components/assets/myavatar/wardrobe/components/PreviewTab.jsx","components/assets/myavatar/wardrobe/Wardrobe_New.jsx","components/assets/myavatar/MyAvatarHome.jsx","components/assets/mycontents/components/VolumetricVideo.jsx","components/assets/mycontents/components/Music.jsx","components/assets/mycontents/components/_2DVideo.jsx","components/assets/mycontents/components/_360Video.jsx","components/assets/mycontents/components/_180Video.jsx","components/assets/mycontents/components/Subscription.jsx","components/assets/mycontents/MyContentsHome.jsx","components/assets/myevents/components/MyEventCard.jsx","components/assets/myevents/MyEventsHome.jsx","store/slicer/MyOrders/index.js","utils/errorAlert.js","utils/successAlert.js","components/Modal/RefundItem/RefundItemModal.jsx","components/Modal/MyOrderItem/MyOrderItemModal.jsx","components/assets/myorders/MyOrderHome.jsx","pages/myassets/MyAssets.jsx","store/GlobalStore.js","pages/subscriptions/components/Explore.jsx","pages/subscriptions/components/ChannelItem.jsx","components/popup/subscriptions/ConfirmCancel.jsx","components/popup/subscriptions/Cancelled.jsx","store/slicer/MyAssets/Subscriptions.js","components/popup/subscriptions/TransactionsTable.jsx","components/popup/subscriptions/CancelledError.jsx","pages/subscriptions/components/tabs/ActiveSubscriptions.jsx","pages/subscriptions/components/tabs/CancelledSubscriptions.jsx","pages/subscriptions/Index.jsx","components/card/friend/FriendSearchCard.jsx","components/Modal/InviteFriend/InviteFriendModal.jsx","components/assets/myassets/friend/InviteFriend.jsx","components/card/friend/FriendProfileCard.jsx","components/Modal/InviteFriend/FriendProfileModal.jsx","components/assets/myassets/friend/YourFriend.jsx","components/card/friend/FriendStatusCard.jsx","components/assets/myassets/friend/PendingInvites.jsx","components/assets/myassets/friend/Requests.jsx","components/assets/myassets/friend/Blocked.jsx","pages/friends/InviteHome.jsx","components/Modal/UserProfile/PasswordModal.jsx","../node_modules/tslib/tslib.es6.mjs","../node_modules/src/helpers.ts","../node_modules/src/Cropper.tsx","../node_modules/@mui/material/LinearProgress/linearProgressClasses.js","../node_modules/@mui/material/LinearProgress/LinearProgress.js","components/Modal/UserProfile/ProfilePhotoModal.jsx","components/popup/account-deletion/ConfirmDeletion.jsx","components/popup/account-deletion/Deleted.jsx","components/popup/account-deletion/DeletionError.jsx","pages/myprofile/MyProfile.jsx","components/FilterDropdown/FilterDropdown.jsx","components/popup/unlockPremium.jsx","components/card/marketplace/entertainment/VolumetricCard.jsx","pages/marketplace/entertainment/components/2d.jsx","pages/marketplace/entertainment/components/180.jsx","pages/marketplace/entertainment/components/360.jsx","pages/marketplace/entertainment/components/channels.jsx","pages/marketplace/entertainment/components/music.jsx","pages/marketplace/entertainment/components/volumetric.jsx","pages/marketplace/entertainment/list/Index.jsx","pages/marketplace/entertainment/channel/components/2d.jsx","pages/marketplace/entertainment/channel/components/180.jsx","pages/marketplace/entertainment/channel/components/360.jsx","pages/marketplace/entertainment/channel/components/music.jsx","pages/marketplace/entertainment/channel/components/volumetric.jsx","store/slicer/Analytics/index.js","pages/marketplace/entertainment/channel/All.jsx","pages/marketplace/entertainment/channel/Premium.jsx","../node_modules/@mui/material/Snackbar/useSnackbar.js","../node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js","../node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js","../node_modules/@mui/material/SnackbarContent/SnackbarContent.js","../node_modules/@mui/material/Snackbar/snackbarClasses.js","../node_modules/@mui/material/Snackbar/Snackbar.js","assets/icons/spinner-white.svg","components/popup/CreatorInfo/index.jsx","pages/marketplace/entertainment/channel/Index.jsx","components/carousel/SneakyPeak.jsx","components/popup/BuyContent.jsx","components/popup/index.jsx","pages/marketplace/entertainment/content/Index.jsx","pages/marketplace/entertainment/content/Music.jsx","pages/marketplace/games/Category/GameCategory.jsx","pages/auth/signup/addDetails/Index.jsx","pages/auth/signup/selectPreferences/Index.jsx","components/partials/TagsChip.jsx","pages/auth/signup/addTags/Index.jsx","pages/auth/signup/onBoardingComplete/Index.jsx","store/slicer/HelpCenter/index.js","store/LocalStore.js","services/auth/ProtectedRoute.jsx","pages/mytransaction/MyTransaction.jsx","components/partials/PreferenceList.jsx","pages/myprofile/preference/MyPreference.jsx","pages/marketplace/games/detail/GameCategoryDetail.jsx","pages/notification/MyNotification.jsx","pages/notification/detail/SingleNotification.jsx","pages/cart/Cart.jsx","pages/marketplace/entertainment/events/detail/EventDetail.jsx","pages/marketplace/avatars/AvatarsList.jsx","../node_modules/@paypal/react-paypal-js/dist/esm/react-paypal-js.js","pages/checkout/Checkout.jsx","constant/abi-json.js","../node_modules/web3-types/src/data_format_types.ts","../node_modules/web3-types/src/eth_types.ts","../node_modules/web3-types/src/primitives_types.ts","../node_modules/web3-types/src/web3_base_provider.ts","../node_modules/web3-types/src/web3_base_wallet.ts","../node_modules/web3-errors/src/error_codes.ts","../node_modules/web3-errors/src/web3_error_base.ts","../node_modules/web3-errors/src/errors/account_errors.ts","../node_modules/web3-errors/src/errors/connection_errors.ts","../node_modules/web3-errors/src/errors/contract_errors.ts","../node_modules/web3-errors/src/errors/ens_errors.ts","../node_modules/web3-errors/src/errors/generic_errors.ts","../node_modules/web3-errors/src/errors/provider_errors.ts","../node_modules/web3-errors/src/errors/signature_errors.ts","../node_modules/web3-errors/src/errors/transaction_errors.ts","../node_modules/web3-errors/src/errors/utils_errors.ts","../node_modules/web3-errors/src/errors/response_errors.ts","../node_modules/web3-errors/src/errors/core_errors.ts","../node_modules/web3-errors/src/errors/rpc_error_messages.ts","../node_modules/web3-errors/src/errors/rpc_errors.ts","../node_modules/web3-errors/src/errors/schema_errors.ts","../node_modules/@noble/hashes/src/_assert.ts","../node_modules/@noble/hashes/src/_u64.ts","../node_modules/@noble/hashes/src/crypto.ts","../node_modules/@noble/hashes/src/utils.ts","../node_modules/@noble/hashes/src/sha3.ts","../node_modules/ethereum-cryptography/esm/utils.js","../node_modules/ethereum-cryptography/esm/keccak.js","../node_modules/zod/lib/index.mjs","../node_modules/web3-validator/src/errors.ts","../node_modules/web3-validator/src/constants.ts","../node_modules/web3-validator/src/validation/abi.ts","../node_modules/web3-validator/src/validation/string.ts","../node_modules/web3-validator/src/utils.ts","../node_modules/web3-validator/src/validation/bytes.ts","../node_modules/web3-validator/src/validation/address.ts","../node_modules/web3-validator/src/validation/numbers.ts","../node_modules/web3-validator/src/validation/block.ts","../node_modules/web3-validator/src/validation/bloom.ts","../node_modules/web3-validator/src/validation/object.ts","../node_modules/web3-validator/src/validation/topic.ts","../node_modules/web3-validator/src/formats.ts","../node_modules/web3-validator/src/validation/boolean.ts","../node_modules/web3-validator/src/validation/filter.ts","../node_modules/web3-validator/src/validator.ts","../node_modules/web3-validator/src/default_validator.ts","../node_modules/web3-validator/src/web3_validator.ts","../node_modules/web3-utils/src/uint8array.ts","../node_modules/web3-utils/src/converters.ts","../node_modules/eventemitter3/index.mjs","../node_modules/web3-utils/src/event_emitter.ts","../node_modules/web3-utils/src/validation.ts","../node_modules/web3-utils/src/objects.ts","../node_modules/web3-utils/src/string_manipulation.ts","../node_modules/web3-utils/src/formatter.ts","../node_modules/web3-utils/src/hash.ts","../node_modules/web3-utils/src/random.ts","../node_modules/ethereum-cryptography/esm/random.js","../node_modules/web3-utils/src/promise_helpers.ts","../node_modules/web3-utils/src/uuid.ts","../node_modules/web3-utils/src/json_rpc.ts","../node_modules/web3-utils/src/web3_deferred_promise.ts","../node_modules/web3-utils/src/chunk_response_parser.ts","../node_modules/web3-utils/src/web3_eip1193_provider.ts","../node_modules/web3-utils/src/socket_provider.ts","../node_modules/web3-core/src/web3_event_emitter.ts","../node_modules/web3-core/src/web3_config.ts","../node_modules/web3-providers-http/src/index.ts","../node_modules/isomorphic-ws/browser.js","../node_modules/web3-providers-ws/src/index.ts","../node_modules/web3-core/src/utils.ts","../node_modules/web3-core/src/web3_request_manager.ts","../node_modules/web3-core/src/web3_subscription_manager.ts","../node_modules/web3-core/src/web3_subscriptions.ts","../node_modules/web3-eth-accounts/src/wallet.ts","../node_modules/ethereum-cryptography/esm/aes.js","../node_modules/@noble/hashes/src/hmac.ts","../node_modules/@noble/hashes/src/pbkdf2.ts","../node_modules/@noble/hashes/src/_md.ts","../node_modules/@noble/hashes/src/sha256.ts","../node_modules/@noble/hashes/src/sha512.ts","../node_modules/ethereum-cryptography/esm/pbkdf2.js","../node_modules/@noble/hashes/src/scrypt.ts","../node_modules/ethereum-cryptography/esm/scrypt.js","../node_modules/@noble/curves/src/abstract/utils.ts","../node_modules/@noble/curves/src/abstract/modular.ts","../node_modules/@noble/curves/src/abstract/curve.ts","../node_modules/@noble/curves/src/abstract/weierstrass.ts","../node_modules/@noble/curves/src/_shortw_utils.ts","../node_modules/@noble/curves/src/secp256k1.ts","../node_modules/web3-eth-accounts/src/tx/constants.ts","../node_modules/web3-eth-accounts/src/schemas.ts","../node_modules/web3-eth-accounts/src/common/enums.ts","../node_modules/web3-eth-accounts/src/common/types.ts","../node_modules/web3-eth-accounts/src/common/utils.ts","../node_modules/web3-eth-accounts/src/common/chains/goerli.ts","../node_modules/web3-eth-accounts/src/common/chains/mainnet.ts","../node_modules/web3-eth-accounts/src/common/chains/sepolia.ts","../node_modules/web3-eth-accounts/src/common/eips/index.ts","../node_modules/web3-eth-accounts/src/common/eips/1153.ts","../node_modules/web3-eth-accounts/src/common/eips/1559.ts","../node_modules/web3-eth-accounts/src/common/eips/2315.ts","../node_modules/web3-eth-accounts/src/common/eips/2537.ts","../node_modules/web3-eth-accounts/src/common/eips/2565.ts","../node_modules/web3-eth-accounts/src/common/eips/2718.ts","../node_modules/web3-eth-accounts/src/common/eips/2929.ts","../node_modules/web3-eth-accounts/src/common/eips/2930.ts","../node_modules/web3-eth-accounts/src/common/eips/3198.ts","../node_modules/web3-eth-accounts/src/common/eips/3529.ts","../node_modules/web3-eth-accounts/src/common/eips/3540.ts","../node_modules/web3-eth-accounts/src/common/eips/3541.ts","../node_modules/web3-eth-accounts/src/common/eips/3554.ts","../node_modules/web3-eth-accounts/src/common/eips/3607.ts","../node_modules/web3-eth-accounts/src/common/eips/3651.ts","../node_modules/web3-eth-accounts/src/common/eips/3670.ts","../node_modules/web3-eth-accounts/src/common/eips/3675.ts","../node_modules/web3-eth-accounts/src/common/eips/3855.ts","../node_modules/web3-eth-accounts/src/common/eips/3860.ts","../node_modules/web3-eth-accounts/src/common/eips/4345.ts","../node_modules/web3-eth-accounts/src/common/eips/4399.ts","../node_modules/web3-eth-accounts/src/common/eips/5133.ts","../node_modules/web3-eth-accounts/src/common/hardforks/index.ts","../node_modules/web3-eth-accounts/src/common/hardforks/chainstart.ts","../node_modules/web3-eth-accounts/src/common/hardforks/homestead.ts","../node_modules/web3-eth-accounts/src/common/hardforks/dao.ts","../node_modules/web3-eth-accounts/src/common/hardforks/tangerineWhistle.ts","../node_modules/web3-eth-accounts/src/common/hardforks/spuriousDragon.ts","../node_modules/web3-eth-accounts/src/common/hardforks/byzantium.ts","../node_modules/web3-eth-accounts/src/common/hardforks/constantinople.ts","../node_modules/web3-eth-accounts/src/common/hardforks/petersburg.ts","../node_modules/web3-eth-accounts/src/common/hardforks/istanbul.ts","../node_modules/web3-eth-accounts/src/common/hardforks/muirGlacier.ts","../node_modules/web3-eth-accounts/src/common/hardforks/berlin.ts","../node_modules/web3-eth-accounts/src/common/hardforks/london.ts","../node_modules/web3-eth-accounts/src/common/hardforks/shanghai.ts","../node_modules/web3-eth-accounts/src/common/hardforks/arrowGlacier.ts","../node_modules/web3-eth-accounts/src/common/hardforks/grayGlacier.ts","../node_modules/web3-eth-accounts/src/common/hardforks/mergeForkIdTransition.ts","../node_modules/web3-eth-accounts/src/common/hardforks/merge.ts","../node_modules/web3-eth-accounts/src/common/common.ts","../node_modules/web3-eth-accounts/src/tx/types.ts","../node_modules/web3-eth-accounts/src/tx/address.ts","../node_modules/web3-eth-accounts/src/tx/utils.ts","../node_modules/web3-eth-accounts/src/tx/baseTransaction.ts","../node_modules/web3-eth-accounts/src/tx/eip1559Transaction.ts","../node_modules/web3-eth-accounts/src/tx/eip2930Transaction.ts","../node_modules/web3-eth-accounts/src/tx/legacyTransaction.ts","../node_modules/web3-eth-accounts/src/tx/transactionFactory.ts","../node_modules/web3-eth-accounts/src/account.ts","../node_modules/web3-core/src/web3_batch_request.ts","../node_modules/web3-core/src/web3_context.ts","../node_modules/web3-eth-iban/src/iban.ts","../node_modules/web3-core/src/web3_promi_event.ts","../node_modules/web3-rpc-methods/src/eth_rpc_methods.ts","../node_modules/web3-rpc-methods/src/personal_rpc_methods.ts","../node_modules/web3-eth/src/utils/detect_transaction_type.ts","../node_modules/web3-eth/src/schemas.ts","../node_modules/web3-eth/src/utils/format_transaction.ts","../node_modules/web3-net/src/rpc_method_wrappers.ts","../node_modules/web3-rpc-methods/src/net_rpc_methods.ts","../node_modules/web3-net/src/net.ts","../node_modules/web3-net/src/index.ts","../node_modules/web3-eth/src/constants.ts","../node_modules/web3-eth/src/utils/get_transaction_gas_pricing.ts","../node_modules/web3-eth/src/utils/transaction_builder.ts","../node_modules/web3-eth/src/utils/reject_if_block_timeout.ts","../node_modules/web3-eth/src/utils/try_send_transaction.ts","../node_modules/web3-eth/src/utils/wait_for_transaction_receipt.ts","../node_modules/web3-eth/src/utils/watch_transaction_by_polling.ts","../node_modules/web3-eth/src/utils/watch_transaction_for_confirmations.ts","../node_modules/web3-eth/src/utils/watch_transaction_by_subscription.ts","../node_modules/web3-eth-abi/src/utils.ts","../node_modules/web3-eth-abi/src/api/events_api.ts","../node_modules/abitype/dist/chunk-WP7KDV47.mjs","../node_modules/abitype/dist/chunk-NHABU752.mjs","../node_modules/abitype/dist/index.mjs","../node_modules/web3-eth-abi/src/coders/utils.ts","../node_modules/web3-eth-abi/src/coders/base/numbersLimits.ts","../node_modules/web3-eth-abi/src/coders/base/number.ts","../node_modules/web3-eth-abi/src/coders/base/bytes.ts","../node_modules/web3-eth-abi/src/coders/base/utils.ts","../node_modules/web3-eth-abi/src/coders/base/index.ts","../node_modules/web3-eth-abi/src/coders/base/string.ts","../node_modules/web3-eth-abi/src/coders/base/bool.ts","../node_modules/web3-eth-abi/src/coders/base/address.ts","../node_modules/web3-eth-abi/src/coders/base/array.ts","../node_modules/web3-eth-abi/src/coders/base/tuple.ts","../node_modules/web3-eth-abi/src/coders/encode.ts","../node_modules/web3-eth-abi/src/api/parameters_api.ts","../node_modules/web3-eth-abi/src/coders/decode.ts","../node_modules/web3-eth-abi/src/api/functions_api.ts","../node_modules/web3-eth-abi/src/api/logs_api.ts","../node_modules/web3-eth-abi/src/decode_contract_error_data.ts","../node_modules/web3-eth-abi/src/api/errors_api.ts","../node_modules/web3-eth/src/utils/get_revert_reason.ts","../node_modules/web3-eth/src/utils/get_transaction_error.ts","../node_modules/web3-eth/src/utils/decoding.ts","../node_modules/web3-eth/src/utils/send_tx_helper.ts","../node_modules/web3-eth/src/rpc_method_wrappers.ts","../node_modules/web3-eth/src/utils/decode_signed_transaction.ts","../node_modules/web3-eth/src/web3_subscriptions.ts","../node_modules/web3-eth/src/web3_eth.ts","../node_modules/web3-eth/src/validation.ts","../node_modules/web3-eth/src/utils/prepare_transaction_for_signing.ts","../node_modules/web3-eth-contract/src/encoding.ts","../node_modules/web3-eth-contract/src/log_subscription.ts","../node_modules/web3-eth-contract/node_modules/@ethereumjs/rlp/src/index.ts","../node_modules/web3-eth-contract/src/utils.ts","../node_modules/web3-eth-contract/src/contract-deployer-method-class.ts","../node_modules/web3-eth-contract/src/contract.ts","../node_modules/web3-eth-contract/src/index.ts","../node_modules/web3-eth-ens/src/config.ts","../node_modules/web3-eth-ens/src/abi/ens/ENSRegistry.ts","../node_modules/web3-eth-ens/src/abi/ens/PublicResolver.ts","../node_modules/@adraffy/ens-normalize/dist/index.mjs","../node_modules/web3-eth-ens/src/utils.ts","../node_modules/web3-eth-ens/src/registry.ts","../node_modules/web3-eth-ens/src/resolver.ts","../node_modules/web3-eth-ens/src/ens.ts","../node_modules/web3-eth-personal/src/rpc_method_wrappers.ts","../node_modules/web3-eth-personal/src/personal.ts","../node_modules/web3-rpc-providers/src/types.ts","../node_modules/web3-rpc-providers/src/errors.ts","../node_modules/web3-rpc-providers/src/web3_provider.ts","../node_modules/web3-rpc-providers/src/web3_provider_quicknode.ts","../node_modules/web3-rpc-providers/src/index.ts","../node_modules/web3/src/abi.ts","../node_modules/web3/src/accounts.ts","../node_modules/web3/src/web3_eip6963.ts","../node_modules/web3/src/web3.ts","../node_modules/web3/src/version.ts","../node_modules/web3/src/index.ts","components/popup/TransactionSuccess/TransactionSuccess.jsx","components/popup/CheckoutFstr/index.jsx","pages/checkout/components/ConnectWallet.jsx","components/popup/CheckoutFstr/MetamaskInstall.jsx","components/popup/TransactionCancel/TransactionCancel.jsx","pages/checkout/CheckoutFSTR.jsx","pages/checkout/InitiatePayment.jsx","pages/checkout/Success.jsx","pages/checkout/Failed.jsx","pages/wallet/Index.jsx","pages/privacyPolicy/Index.jsx","pages/cookiePolicy/Index.jsx","pages/termCondition/Index.js","pages/sidequest/Index.jsx","pages/helpCenter/index.jsx","components/Modal/HelpCenter/HelpCenterModal.jsx","utils/s3.js","pages/helpCenter/requestTicket/index.jsx","pages/helpCenter/reportBug/index.jsx","pages/helpCenter/requestFeature/index.jsx","pages/refundCancellationPolicy'/index.jsx","pages/checkout/AlreadyInAsset.jsx","pages/helpCenter/listTickets/index.jsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/paperclip.ts","../node_modules/lucide-react/src/icons/send.ts","components/helpDesk/ticketDetails/page.jsx","components/helpDesk/chatHistory/message/page.jsx","components/helpDesk/chatHistory/page.jsx","pages/helpCenter/details/index.jsx","routes.js","../node_modules/react-helmet/es/Helmet.js","App.js","components/setupEnv.js","index.js"],"sourcesContent":["var isDevelopment = false;\n\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\nfunction sheetForTag(tag) {\n if (tag.sheet) {\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 return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\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 ? !isDevelopment : 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 (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 }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\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","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","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 {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 { 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, 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};\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\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\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 /*: HTMLStyleElement */\n ) {\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\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\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 /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\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 selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, 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\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\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 /*: EmotionCache */\n = {\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","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","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 * 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 isDevelopment = false;\n\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__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\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache()\n/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\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});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\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\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\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 };\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\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(\n/* */\nfunction (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 className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\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\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, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.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-5486c51c.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 jsx\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\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 }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\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\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\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;\n var node\n /*: HTMLStyleElement | null*/\n = 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\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\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\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\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\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\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\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\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\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/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\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 && isDevelopment) {\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\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\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 scale: 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 isDevelopment = false;\n\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\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 var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.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 = serializedStyles.styles + \";\";\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 }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\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 var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\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\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nfunction 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 var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[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 var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n }\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 += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\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","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","var isBrowser = true;\n\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 if (className) {\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","export type Input = string | number | bigint | Uint8Array | Array | null | undefined\n\nexport type NestedUint8Array = Array\n\nexport interface Decoded {\n data: Uint8Array | NestedUint8Array\n remainder: Uint8Array\n}\n\n/**\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: Input): Uint8Array {\n if (Array.isArray(input)) {\n const output: Uint8Array[] = []\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/**\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: Uint8Array, start: number, end: number) {\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/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n */\nfunction decodeLength(v: Uint8Array): number {\n if (v[0] === 0) {\n throw new Error('invalid RLP: extra zeros')\n }\n return parseHexByte(bytesToHex(v))\n}\n\nfunction encodeLength(len: number, offset: number): Uint8Array {\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}\n\n/**\n * RLP Decoding based on https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/\n * @param input Will be converted to Uint8Array\n * @param stream Is the input a stream (false by default)\n * @returns decoded Array of Uint8Arrays containing the original message\n **/\nexport function decode(input: Input, stream?: false): Uint8Array | NestedUint8Array\nexport function decode(input: Input, stream?: true): Decoded\nexport function decode(input: Input, stream = false): Uint8Array | NestedUint8Array | Decoded {\n if (typeof input === 'undefined' || input === null || (input as any).length === 0) {\n return Uint8Array.from([])\n }\n\n const inputBytes = toBytes(input)\n const decoded = _decode(inputBytes)\n\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\n return decoded.data\n}\n\n/** Decode an input with RLP */\nfunction _decode(input: Uint8Array): Decoded {\n let length: number, llength: number, data: Uint8Array, innerRemainder: Uint8Array, d: Decoded\n const decoded = []\n const firstByte = input[0]\n\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 } 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\n // set 0x80 null to 0\n if (firstByte === 0x80) {\n data = Uint8Array.from([])\n } else {\n data = safeSlice(input, 1, length)\n }\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\n return {\n data,\n remainder: input.slice(length),\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\n return {\n data,\n remainder: input.slice(length + llength),\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\n return {\n data: decoded,\n remainder: input.slice(length),\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\n innerRemainder = safeSlice(input, llength, totalLength)\n\n while (innerRemainder.length) {\n d = _decode(innerRemainder)\n decoded.push(d.data)\n innerRemainder = d.remainder\n }\n\n return {\n data: decoded,\n remainder: input.slice(totalLength),\n }\n }\n}\n\nconst cachedHexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'))\nfunction bytesToHex(uint8a: Uint8Array): string {\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}\n\nfunction parseHexByte(hexByte: string): number {\n const byte = Number.parseInt(hexByte, 16)\n if (Number.isNaN(byte)) throw new Error('Invalid byte sequence')\n return byte\n}\n\n// Caching slows it down 2-3x\nfunction hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex)\n }\n if (hex.length % 2) 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\n/** Concatenates two Uint8Arrays into one. */\nfunction concatBytes(...arrays: Uint8Array[]): Uint8Array {\n if (arrays.length === 1) 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// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any\ndeclare const TextDecoder: any\n\nfunction utf8ToBytes(utf: string): Uint8Array {\n return new TextEncoder().encode(utf)\n}\n\n/** Transform an integer into its hexadecimal value */\nfunction numberToHex(integer: number | bigint): string {\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\n/** Pad a string to be even */\nfunction padToEven(a: string): string {\n return a.length % 2 ? `0${a}` : a\n}\n\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str: string): boolean {\n return str.length >= 2 && str[0] === '0' && str[1] === 'x'\n}\n\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str: string): string {\n if (typeof str !== 'string') {\n return str\n }\n return isHexPrefixed(str) ? str.slice(2) : str\n}\n\n/** Transform anything into a Uint8Array */\nfunction toBytes(v: Input): Uint8Array {\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}\n\nexport const utils = {\n bytesToHex,\n concatBytes,\n hexToBytes,\n utf8ToBytes,\n}\n\nexport const RLP = { encode, decode }\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');","\"use strict\";\n'use client';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import capitalize from '@mui/utils/capitalize';\nexport default capitalize;","import debounce from '@mui/utils/debounce';\nexport default debounce;","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import createChainedFunction from '@mui/utils/createChainedFunction';\nexport default createChainedFunction;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette2, _palette3;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n // the will define the property that has `currentColor`\n // for example heroicons uses fill=\"none\" and stroke=\"currentColor\"\n fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null || (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null || (_theme$transitions2 = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null || (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null || (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null || (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null || (_palette = _palette[ownerState.color]) == null ? void 0 : _palette.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null || (_palette2 = _palette2.action) == null ? void 0 : _palette2.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null || (_palette3 = _palette3.action) == null ? void 0 : _palette3.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox,\n hasSvgAsChild\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, hasSvgAsChild && children.props, {\n ownerState: ownerState,\n children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import deprecatedPropType from '@mui/utils/deprecatedPropType';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import isMuiElement from '@mui/utils/isMuiElement';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","import requirePropFactory from '@mui/utils/requirePropFactory';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import setRef from '@mui/utils/setRef';\nexport default setRef;","'use client';\n\nimport useId from '@mui/utils/useId';\nexport default useId;","import unsupportedProp from '@mui/utils/unsupportedProp';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","'use client';\n\nimport useControlled from '@mui/utils/useControlled';\nexport default useControlled;","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport default useEventCallback;","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport useIsFocusVisible from '@mui/utils/useIsFocusVisible';\nexport default useIsFocusVisible;","'use client';\n\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/utils';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import ownerDocument from '@mui/utils/ownerDocument';\nexport default ownerDocument;","import ownerWindow from '@mui/utils/ownerWindow';\nexport default ownerWindow;","'use client';\n\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nexport default useEnhancedEffect;","'use client';\n\nimport useForkRef from '@mui/utils/useForkRef';\nexport default useForkRef;","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\n/* import type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react' */\n/*\nexport type Interpolations = Array\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\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 createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst && cache ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.16.6\n *\n * @license MIT\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 client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport * as React from 'react';\nconst UNINITIALIZED = {};\n\n/**\n * A React.useRef() that is initialized lazily with a function. Note that it accepts an optional\n * initialization argument, so the initialization function doesn't need to be an inline closure.\n *\n * @usage\n * const ref = useLazyRef(sortColumns, columns)\n */\nexport default function useLazyRef(init, initArg) {\n const ref = React.useRef(UNINITIALIZED);\n if (ref.current === UNINITIALIZED) {\n ref.current = init(initArg);\n }\n return ref;\n}","'use client';\n\nimport * as React from 'react';\nconst EMPTY = [];\n\n/**\n * A React.useEffect equivalent that runs once, when the component is mounted.\n */\nexport default function useOnMount(fn) {\n /* eslint-disable react-hooks/exhaustive-deps */\n React.useEffect(fn, EMPTY);\n /* eslint-enable react-hooks/exhaustive-deps */\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['acm'] = {};\nAWS.ACM = Service.defineService('acm', ['2015-12-08']);\nObject.defineProperty(apiLoader.services['acm'], '2015-12-08', {\n get: function get() {\n var model = require('../apis/acm-2015-12-08.min.json');\n model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination;\n model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ACM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['amp'] = {};\nAWS.Amp = Service.defineService('amp', ['2020-08-01']);\nObject.defineProperty(apiLoader.services['amp'], '2020-08-01', {\n get: function get() {\n var model = require('../apis/amp-2020-08-01.min.json');\n model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination;\n model.waiters = require('../apis/amp-2020-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Amp;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['applicationautoscaling'] = {};\nAWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']);\nObject.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', {\n get: function get() {\n var model = require('../apis/application-autoscaling-2016-02-06.min.json');\n model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ApplicationAutoScaling;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['autoscaling'] = {};\nAWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']);\nObject.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', {\n get: function get() {\n var model = require('../apis/autoscaling-2011-01-01.min.json');\n model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.AutoScaling;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n MarketplaceCatalog: require('./marketplacecatalog'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Amp: require('./amp'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudformation'] = {};\nAWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']);\nObject.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', {\n get: function get() {\n var model = require('../apis/cloudformation-2010-05-15.min.json');\n model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination;\n model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFormation;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudtrail'] = {};\nAWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']);\nObject.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', {\n get: function get() {\n var model = require('../apis/cloudtrail-2013-11-01.min.json');\n model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudTrail;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatch'] = {};\nAWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']);\nObject.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', {\n get: function get() {\n var model = require('../apis/monitoring-2010-08-01.min.json');\n model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination;\n model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatch;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchevents'] = {};\nAWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']);\nObject.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', {\n get: function get() {\n var model = require('../apis/events-2015-10-07.min.json');\n model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codecommit'] = {};\nAWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']);\nObject.defineProperty(apiLoader.services['codecommit'], '2015-04-13', {\n get: function get() {\n var model = require('../apis/codecommit-2015-04-13.min.json');\n model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeCommit;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codedeploy'] = {};\nAWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']);\nObject.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', {\n get: function get() {\n var model = require('../apis/codedeploy-2014-10-06.min.json');\n model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination;\n model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeDeploy;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentityserviceprovider'] = {};\nAWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']);\nObject.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', {\n get: function get() {\n var model = require('../apis/cognito-idp-2016-04-18.min.json');\n model.paginators = require('../apis/cognito-idp-2016-04-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentityServiceProvider;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitosync'] = {};\nAWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-sync-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-sync-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoSync;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehendmedical'] = {};\nAWS.ComprehendMedical = Service.defineService('comprehendmedical', ['2018-10-30']);\nObject.defineProperty(apiLoader.services['comprehendmedical'], '2018-10-30', {\n get: function get() {\n var model = require('../apis/comprehendmedical-2018-10-30.min.json');\n model.paginators = require('../apis/comprehendmedical-2018-10-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ComprehendMedical;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cur'] = {};\nAWS.CUR = Service.defineService('cur', ['2017-01-06']);\nObject.defineProperty(apiLoader.services['cur'], '2017-01-06', {\n get: function get() {\n var model = require('../apis/cur-2017-01-06.min.json');\n model.paginators = require('../apis/cur-2017-01-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CUR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodb'] = {};\nAWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']);\nrequire('../lib/services/dynamodb');\nObject.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', {\n get: function get() {\n var model = require('../apis/dynamodb-2011-12-05.min.json');\n model.paginators = require('../apis/dynamodb-2011-12-05.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2011-12-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/dynamodb-2012-08-10.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2012-08-10.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ec2'] = {};\nAWS.EC2 = Service.defineService('ec2', ['2013-06-15*', '2013-10-15*', '2014-02-01*', '2014-05-01*', '2014-06-15*', '2014-09-01*', '2014-10-01*', '2015-03-01*', '2015-04-15*', '2015-10-01*', '2016-04-01*', '2016-09-15*', '2016-11-15']);\nrequire('../lib/services/ec2');\nObject.defineProperty(apiLoader.services['ec2'], '2016-11-15', {\n get: function get() {\n var model = require('../apis/ec2-2016-11-15.min.json');\n model.paginators = require('../apis/ec2-2016-11-15.paginators.json').pagination;\n model.waiters = require('../apis/ec2-2016-11-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EC2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecs'] = {};\nAWS.ECS = Service.defineService('ecs', ['2014-11-13']);\nObject.defineProperty(apiLoader.services['ecs'], '2014-11-13', {\n get: function get() {\n var model = require('../apis/ecs-2014-11-13.min.json');\n model.paginators = require('../apis/ecs-2014-11-13.paginators.json').pagination;\n model.waiters = require('../apis/ecs-2014-11-13.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticache'] = {};\nAWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']);\nObject.defineProperty(apiLoader.services['elasticache'], '2015-02-02', {\n get: function get() {\n var model = require('../apis/elasticache-2015-02-02.min.json');\n model.paginators = require('../apis/elasticache-2015-02-02.paginators.json').pagination;\n model.waiters = require('../apis/elasticache-2015-02-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElastiCache;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticbeanstalk'] = {};\nAWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/elasticbeanstalk-2010-12-01.min.json');\n model.paginators = require('../apis/elasticbeanstalk-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticbeanstalk-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticBeanstalk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elastictranscoder'] = {};\nAWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']);\nObject.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', {\n get: function get() {\n var model = require('../apis/elastictranscoder-2012-09-25.min.json');\n model.paginators = require('../apis/elastictranscoder-2012-09-25.paginators.json').pagination;\n model.waiters = require('../apis/elastictranscoder-2012-09-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticTranscoder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elbv2'] = {};\nAWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']);\nObject.defineProperty(apiLoader.services['elbv2'], '2015-12-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancingv2-2015-12-01.min.json');\n model.paginators = require('../apis/elasticloadbalancingv2-2015-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancingv2-2015-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELBv2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastqueryservice'] = {};\nAWS.ForecastQueryService = Service.defineService('forecastqueryservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastqueryservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecastquery-2018-06-26.min.json');\n model.paginators = require('../apis/forecastquery-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastQueryService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iot'] = {};\nAWS.Iot = Service.defineService('iot', ['2015-05-28']);\nObject.defineProperty(apiLoader.services['iot'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-2015-05-28.min.json');\n model.paginators = require('../apis/iot-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Iot;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideo'] = {};\nAWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesisvideo-2017-09-30.min.json');\n model.paginators = require('../apis/kinesisvideo-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideo;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideoarchivedmedia'] = {};\nAWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-archived-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-archived-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoArchivedMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kms'] = {};\nAWS.KMS = Service.defineService('kms', ['2014-11-01']);\nObject.defineProperty(apiLoader.services['kms'], '2014-11-01', {\n get: function get() {\n var model = require('../apis/kms-2014-11-01.min.json');\n model.paginators = require('../apis/kms-2014-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KMS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lambda'] = {};\nAWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']);\nrequire('../lib/services/lambda');\nObject.defineProperty(apiLoader.services['lambda'], '2014-11-11', {\n get: function get() {\n var model = require('../apis/lambda-2014-11-11.min.json');\n model.paginators = require('../apis/lambda-2014-11-11.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['lambda'], '2015-03-31', {\n get: function get() {\n var model = require('../apis/lambda-2015-03-31.min.json');\n model.paginators = require('../apis/lambda-2015-03-31.paginators.json').pagination;\n model.waiters = require('../apis/lambda-2015-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Lambda;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntimev2'] = {};\nAWS.LexRuntimeV2 = Service.defineService('lexruntimev2', ['2020-08-07']);\nObject.defineProperty(apiLoader.services['lexruntimev2'], '2020-08-07', {\n get: function get() {\n var model = require('../apis/runtime.lex.v2-2020-08-07.min.json');\n model.paginators = require('../apis/runtime.lex.v2-2020-08-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntimeV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['machinelearning'] = {};\nAWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']);\nrequire('../lib/services/machinelearning');\nObject.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', {\n get: function get() {\n var model = require('../apis/machinelearning-2014-12-12.min.json');\n model.paginators = require('../apis/machinelearning-2014-12-12.paginators.json').pagination;\n model.waiters = require('../apis/machinelearning-2014-12-12.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MachineLearning;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecatalog'] = {};\nAWS.MarketplaceCatalog = Service.defineService('marketplacecatalog', ['2018-09-17']);\nObject.defineProperty(apiLoader.services['marketplacecatalog'], '2018-09-17', {\n get: function get() {\n var model = require('../apis/marketplace-catalog-2018-09-17.min.json');\n model.paginators = require('../apis/marketplace-catalog-2018-09-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecommerceanalytics'] = {};\nAWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']);\nObject.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', {\n get: function get() {\n var model = require('../apis/marketplacecommerceanalytics-2015-07-01.min.json');\n model.paginators = require('../apis/marketplacecommerceanalytics-2015-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCommerceAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mturk'] = {};\nAWS.MTurk = Service.defineService('mturk', ['2017-01-17']);\nObject.defineProperty(apiLoader.services['mturk'], '2017-01-17', {\n get: function get() {\n var model = require('../apis/mturk-requester-2017-01-17.min.json');\n model.paginators = require('../apis/mturk-requester-2017-01-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MTurk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['opsworks'] = {};\nAWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']);\nObject.defineProperty(apiLoader.services['opsworks'], '2013-02-18', {\n get: function get() {\n var model = require('../apis/opsworks-2013-02-18.min.json');\n model.paginators = require('../apis/opsworks-2013-02-18.paginators.json').pagination;\n model.waiters = require('../apis/opsworks-2013-02-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.OpsWorks;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeevents'] = {};\nAWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']);\nObject.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', {\n get: function get() {\n var model = require('../apis/personalize-events-2018-03-22.min.json');\n model.paginators = require('../apis/personalize-events-2018-03-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeruntime'] = {};\nAWS.PersonalizeRuntime = Service.defineService('personalizeruntime', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalizeruntime'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-runtime-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-runtime-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['polly'] = {};\nAWS.Polly = Service.defineService('polly', ['2016-06-10']);\nrequire('../lib/services/polly');\nObject.defineProperty(apiLoader.services['polly'], '2016-06-10', {\n get: function get() {\n var model = require('../apis/polly-2016-06-10.min.json');\n model.paginators = require('../apis/polly-2016-06-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Polly;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['pricing'] = {};\nAWS.Pricing = Service.defineService('pricing', ['2017-10-15']);\nObject.defineProperty(apiLoader.services['pricing'], '2017-10-15', {\n get: function get() {\n var model = require('../apis/pricing-2017-10-15.min.json');\n model.paginators = require('../apis/pricing-2017-10-15.paginators.json').pagination;\n model.waiters = require('../apis/pricing-2017-10-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Pricing;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rds'] = {};\nAWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']);\nrequire('../lib/services/rds');\nObject.defineProperty(apiLoader.services['rds'], '2013-01-10', {\n get: function get() {\n var model = require('../apis/rds-2013-01-10.min.json');\n model.paginators = require('../apis/rds-2013-01-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-02-12', {\n get: function get() {\n var model = require('../apis/rds-2013-02-12.min.json');\n model.paginators = require('../apis/rds-2013-02-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-09-09', {\n get: function get() {\n var model = require('../apis/rds-2013-09-09.min.json');\n model.paginators = require('../apis/rds-2013-09-09.paginators.json').pagination;\n model.waiters = require('../apis/rds-2013-09-09.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-09-01', {\n get: function get() {\n var model = require('../apis/rds-2014-09-01.min.json');\n model.paginators = require('../apis/rds-2014-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-10-31', {\n get: function get() {\n var model = require('../apis/rds-2014-10-31.min.json');\n model.paginators = require('../apis/rds-2014-10-31.paginators.json').pagination;\n model.waiters = require('../apis/rds-2014-10-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.RDS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['redshift'] = {};\nAWS.Redshift = Service.defineService('redshift', ['2012-12-01']);\nObject.defineProperty(apiLoader.services['redshift'], '2012-12-01', {\n get: function get() {\n var model = require('../apis/redshift-2012-12-01.min.json');\n model.paginators = require('../apis/redshift-2012-12-01.paginators.json').pagination;\n model.waiters = require('../apis/redshift-2012-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Redshift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['secretsmanager'] = {};\nAWS.SecretsManager = Service.defineService('secretsmanager', ['2017-10-17']);\nObject.defineProperty(apiLoader.services['secretsmanager'], '2017-10-17', {\n get: function get() {\n var model = require('../apis/secretsmanager-2017-10-17.min.json');\n model.paginators = require('../apis/secretsmanager-2017-10-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SecretsManager;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['servicecatalog'] = {};\nAWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']);\nObject.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', {\n get: function get() {\n var model = require('../apis/servicecatalog-2015-12-10.min.json');\n model.paginators = require('../apis/servicecatalog-2015-12-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ServiceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ses'] = {};\nAWS.SES = Service.defineService('ses', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['ses'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/email-2010-12-01.min.json');\n model.paginators = require('../apis/email-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/email-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SES;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sns'] = {};\nAWS.SNS = Service.defineService('sns', ['2010-03-31']);\nObject.defineProperty(apiLoader.services['sns'], '2010-03-31', {\n get: function get() {\n var model = require('../apis/sns-2010-03-31.min.json');\n model.paginators = require('../apis/sns-2010-03-31.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SNS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sqs'] = {};\nAWS.SQS = Service.defineService('sqs', ['2012-11-05']);\nrequire('../lib/services/sqs');\nObject.defineProperty(apiLoader.services['sqs'], '2012-11-05', {\n get: function get() {\n var model = require('../apis/sqs-2012-11-05.min.json');\n model.paginators = require('../apis/sqs-2012-11-05.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SQS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ssm'] = {};\nAWS.SSM = Service.defineService('ssm', ['2014-11-06']);\nObject.defineProperty(apiLoader.services['ssm'], '2014-11-06', {\n get: function get() {\n var model = require('../apis/ssm-2014-11-06.min.json');\n model.paginators = require('../apis/ssm-2014-11-06.paginators.json').pagination;\n model.waiters = require('../apis/ssm-2014-11-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['storagegateway'] = {};\nAWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']);\nObject.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', {\n get: function get() {\n var model = require('../apis/storagegateway-2013-06-30.min.json');\n model.paginators = require('../apis/storagegateway-2013-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.StorageGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['workdocs'] = {};\nAWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']);\nObject.defineProperty(apiLoader.services['workdocs'], '2016-05-01', {\n get: function get() {\n var model = require('../apis/workdocs-2016-05-01.min.json');\n model.paginators = require('../apis/workdocs-2016-05-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WorkDocs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xff) << 24) |\n ((buffer[(i * 4) + 1] & 0xff) << 16) |\n ((buffer[(i * 4) + 2] & 0xff) << 8) |\n (buffer[(i * 4) + 3] & 0xff));\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n var t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7))\n + ((state4 & state5) ^ (~state4 & state6))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('../core'),\n url = AWS.util.url,\n crypto = AWS.util.crypto.lib,\n base64Encode = AWS.util.base64.encode,\n inherit = AWS.util.inherit;\n\nvar queryEncode = function (string) {\n var replacements = {\n '+': '-',\n '=': '_',\n '/': '~'\n };\n return string.replace(/[\\+=\\/]/g, function (match) {\n return replacements[match];\n });\n};\n\nvar signPolicy = function (policy, privateKey) {\n var sign = crypto.createSign('RSA-SHA1');\n sign.write(policy);\n return queryEncode(sign.sign(privateKey, 'base64'));\n};\n\nvar signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {\n var policy = JSON.stringify({\n Statement: [\n {\n Resource: url,\n Condition: { DateLessThan: { 'AWS:EpochTime': expires } }\n }\n ]\n });\n\n return {\n Expires: expires,\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy.toString(), privateKey)\n };\n};\n\nvar signWithCustomPolicy = function (policy, keyPairId, privateKey) {\n policy = policy.replace(/\\s/mg, '');\n\n return {\n Policy: queryEncode(base64Encode(policy)),\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy, privateKey)\n };\n};\n\nvar determineScheme = function (url) {\n var parts = url.split('://');\n if (parts.length < 2) {\n throw new Error('Invalid URL.');\n }\n\n return parts[0].replace('*', '');\n};\n\nvar getRtmpUrl = function (rtmpUrl) {\n var parsed = url.parse(rtmpUrl);\n return parsed.path.replace(/^\\//, '') + (parsed.hash || '');\n};\n\nvar getResource = function (url) {\n switch (determineScheme(url)) {\n case 'http':\n case 'https':\n return url;\n case 'rtmp':\n return getRtmpUrl(url);\n default:\n throw new Error('Invalid URI scheme. Scheme must be one of'\n + ' http, https, or rtmp');\n }\n};\n\nvar handleError = function (err, callback) {\n if (!callback || typeof callback !== 'function') {\n throw err;\n }\n\n callback(err);\n};\n\nvar handleSuccess = function (result, callback) {\n if (!callback || typeof callback !== 'function') {\n return result;\n }\n\n callback(null, result);\n};\n\nAWS.CloudFront.Signer = inherit({\n /**\n * A signer object can be used to generate signed URLs and cookies for granting\n * access to content on restricted CloudFront distributions.\n *\n * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html\n *\n * @param keyPairId [String] (Required) The ID of the CloudFront key pair\n * being used.\n * @param privateKey [String] (Required) A private key in RSA format.\n */\n constructor: function Signer(keyPairId, privateKey) {\n if (keyPairId === void 0 || privateKey === void 0) {\n throw new Error('A key pair ID and private key are required');\n }\n\n this.keyPairId = keyPairId;\n this.privateKey = privateKey;\n },\n\n /**\n * Create a signed Amazon CloudFront Cookie.\n *\n * @param options [Object] The options to create a signed cookie.\n * @option options url [String] The URL to which the signature will grant\n * access. Required unless you pass in a full\n * policy.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the hash as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [Object] if called synchronously (with no callback), returns the\n * signed cookie parameters.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedCookie: function (options, cb) {\n var signatureHash = 'policy' in options\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);\n\n var cookieHash = {};\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n cookieHash['CloudFront-' + key] = signatureHash[key];\n }\n }\n\n return handleSuccess(cookieHash, cb);\n },\n\n /**\n * Create a signed Amazon CloudFront URL.\n *\n * Keep in mind that URLs meant for use in media/flash players may have\n * different requirements for URL formats (e.g. some require that the\n * extension be removed, some require the file name to be prefixed\n * - mp4:, some require you to add \"/cfx/st\" into your URL).\n *\n * @param options [Object] The options to create a signed URL.\n * @option options url [String] The URL to which the signature will grant\n * access. Any query params included with\n * the URL should be encoded. Required.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedUrl: function (options, cb) {\n try {\n var resource = getResource(options.url);\n } catch (err) {\n return handleError(err, cb);\n }\n\n var parsedUrl = url.parse(options.url, true),\n signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy')\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);\n\n parsedUrl.search = null;\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n parsedUrl.query[key] = signatureHash[key];\n }\n }\n\n try {\n var signedUrl = determineScheme(options.url) === 'rtmp'\n ? getRtmpUrl(url.format(parsedUrl))\n : url.format(parsedUrl);\n } catch (err) {\n return handleError(err, cb);\n }\n\n return handleSuccess(signedUrl, cb);\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.CloudFront.Signer;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1691.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * DISCLAIMER: This convenience method leverages the Enhanced (simplified) Authflow. The underlying\n * implementation calls Cognito's `getId()` and `GetCredentialsForIdentity()`.\n * In this flow there is no way to explicitly set a session policy, resulting in\n * STS attaching the default policy and limiting the permissions of the federated role.\n * To be able to explicitly set a session policy, do not use this convenience method.\n * Instead, you can use the Cognito client to call `getId()`, `GetOpenIdToken()` and then use\n * that token with your desired session policy to call STS's `AssumeRoleWithWebIdentity()`\n * For further reading refer to: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","var AWS = require('../core');\nvar Translator = require('./translator');\nvar DynamoDBSet = require('./set');\n\n/**\n * The document client simplifies working with items in Amazon DynamoDB\n * by abstracting away the notion of attribute values. This abstraction\n * annotates native JavaScript types supplied as input parameters, as well\n * as converts annotated response data to native JavaScript types.\n *\n * ## Marshalling Input and Unmarshalling Response Data\n *\n * The document client affords developers the use of native JavaScript types\n * instead of `AttributeValue`s to simplify the JavaScript development\n * experience with Amazon DynamoDB. JavaScript objects passed in as parameters\n * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB.\n * Responses from DynamoDB are unmarshalled into plain JavaScript objects\n * by the `DocumentClient`. The `DocumentClient`, does not accept\n * `AttributeValue`s in favor of native JavaScript types.\n *\n * | JavaScript Type | DynamoDB AttributeValue |\n * |:----------------------------------------------------------------------:|-------------------------|\n * | String | S |\n * | Number | N |\n * | Boolean | BOOL |\n * | null | NULL |\n * | Array | L |\n * | Object | M |\n * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B |\n *\n * ## Support for Sets\n *\n * The `DocumentClient` offers a convenient way to create sets from\n * JavaScript Arrays. The type of set is inferred from the first element\n * in the array. DynamoDB supports string, number, and binary sets. To\n * learn more about supported types see the\n * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)\n * For more information see {AWS.DynamoDB.DocumentClient.createSet}\n *\n */\nAWS.DynamoDB.DocumentClient = AWS.util.inherit({\n\n /**\n * Creates a DynamoDB document client with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.DynamoDB] An optional pre-configured instance\n * of the AWS.DynamoDB service object. This instance's config will be\n * copied to a new instance used by this client. You should not need to\n * retain a reference to the input object, and may destroy it or allow it\n * to be garbage collected.\n * @option options convertEmptyValues [Boolean] set to true if you would like\n * the document client to convert empty values (0-length strings, binary\n * buffers, and sets) to be converted to NULL types when persisting to\n * DynamoDB.\n * @option options wrapNumbers [Boolean] Set to true to return numbers as a\n * NumberValue object instead of converting them to native JavaScript numbers.\n * This allows for the safe round-trip transport of numbers of arbitrary size.\n * @see AWS.DynamoDB.constructor\n *\n */\n constructor: function DocumentClient(options) {\n var self = this;\n self.options = options || {};\n self.configure(self.options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n var self = this;\n self.service = options.service;\n self.bindServiceObject(options);\n self.attrValue = options.attrValue =\n self.service.api.operations.putItem.input.members.Item.value.shape;\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n var self = this;\n options = options || {};\n\n if (!self.service) {\n self.service = new AWS.DynamoDB(options);\n } else {\n var config = AWS.util.copy(self.service.config);\n self.service = new self.service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n makeServiceRequest: function(operation, params, callback) {\n var self = this;\n var request = self.service[operation](params);\n self.setupRequest(request);\n self.setupResponse(request);\n if (typeof callback === 'function') {\n request.send(callback);\n }\n return request;\n },\n\n /**\n * @api private\n */\n serviceClientOperationsMap: {\n batchGet: 'batchGetItem',\n batchWrite: 'batchWriteItem',\n delete: 'deleteItem',\n get: 'getItem',\n put: 'putItem',\n query: 'query',\n scan: 'scan',\n update: 'updateItem',\n transactGet: 'transactGetItems',\n transactWrite: 'transactWriteItems'\n },\n\n /**\n * Returns the attributes of one or more items from one or more tables\n * by delegating to `AWS.DynamoDB.batchGetItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchGetItem\n * @example Get items from multiple tables\n * var params = {\n * RequestItems: {\n * 'Table-1': {\n * Keys: [\n * {\n * HashKey: 'haskey',\n * NumberRangeKey: 1\n * }\n * ]\n * },\n * 'Table-2': {\n * Keys: [\n * { foo: 'bar' },\n * ]\n * }\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Puts or deletes multiple items in one or more tables by delegating\n * to `AWS.DynamoDB.batchWriteItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchWriteItem\n * @example Write to and delete from a table\n * var params = {\n * RequestItems: {\n * 'Table-1': [\n * {\n * DeleteRequest: {\n * Key: { HashKey: 'someKey' }\n * }\n * },\n * {\n * PutRequest: {\n * Item: {\n * HashKey: 'anotherKey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar' }\n * }\n * }\n * }\n * ]\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Deletes a single item in a table by primary key by delegating to\n * `AWS.DynamoDB.deleteItem()`\n *\n * Supply the same parameters as {AWS.DynamoDB.deleteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.deleteItem\n * @example Delete an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey',\n * NumberRangeKey: 1\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.delete(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n delete: function(params, callback) {\n var operation = this.serviceClientOperationsMap['delete'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns a set of attributes for the item with the given primary key\n * by delegating to `AWS.DynamoDB.getItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.getItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.getItem\n * @example Get an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey'\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.get(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n get: function(params, callback) {\n var operation = this.serviceClientOperationsMap['get'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a new item, or replaces an old item with a new item by\n * delegating to `AWS.DynamoDB.putItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.putItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.putItem\n * @example Create a new item in a table\n * var params = {\n * TableName : 'Table',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n put: function(params, callback) {\n var operation = this.serviceClientOperationsMap['put'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Edits an existing item's attributes, or adds a new item to the table if\n * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.updateItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.updateItem\n * @example Update an item with expressions\n * var params = {\n * TableName: 'Table',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.update(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n update: function(params, callback) {\n var operation = this.serviceClientOperationsMap['update'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns one or more items and item attributes by accessing every item\n * in a table or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.scan} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.scan\n * @example Scan the table with a filter expression\n * var params = {\n * TableName : 'Table',\n * FilterExpression : 'Year = :this_year',\n * ExpressionAttributeValues : {':this_year' : 2015}\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.scan(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n scan: function(params, callback) {\n var operation = this.serviceClientOperationsMap['scan'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Directly access items from a table by primary key or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.query} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.query\n * @example Query an index\n * var params = {\n * TableName: 'Table',\n * IndexName: 'Index',\n * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',\n * ExpressionAttributeValues: {\n * ':hkey': 'key',\n * ':rkey': 2015\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.query(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n query: function(params, callback) {\n var operation = this.serviceClientOperationsMap['query'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Synchronous write operation that groups up to 100 action requests.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactWriteItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactWriteItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Put: {\n * TableName : 'Table0',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * }\n * }, {\n * Update: {\n * TableName: 'Table1',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Atomically retrieves multiple items from one or more tables (but not from indexes)\n * in a single account and region.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactGetItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactGetItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Get: {\n * TableName : 'Table0',\n * Key: {\n * HashKey: 'hashkey0'\n * }\n * }\n * }, {\n * Get: {\n * TableName : 'Table1',\n * Key: {\n * HashKey: 'hashkey1'\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a set of elements inferring the type of set from\n * the type of the first element. Amazon DynamoDB currently supports\n * the number sets, string sets, and binary sets. For more information\n * about DynamoDB data types see the documentation on the\n * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes).\n *\n * @param list [Array] Collection to represent your DynamoDB Set\n * @param options [map]\n * * **validate** [Boolean] set to true if you want to validate the type\n * of each element in the set. Defaults to `false`.\n * @example Creating a number set\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * var params = {\n * Item: {\n * hashkey: 'hashkey'\n * numbers: documentClient.createSet([1, 2, 3]);\n * }\n * };\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n createSet: function(list, options) {\n options = options || {};\n return new DynamoDBSet(list, options);\n },\n\n /**\n * @api private\n */\n getTranslator: function() {\n return new Translator(this.options);\n },\n\n /**\n * @api private\n */\n setupRequest: function setupRequest(request) {\n var self = this;\n var translator = self.getTranslator();\n var operation = request.operation;\n var inputShape = request.service.api.operations[operation].input;\n request._events.validate.unshift(function(req) {\n req.rawParams = AWS.util.copy(req.params);\n req.params = translator.translateInput(req.rawParams, inputShape);\n });\n },\n\n /**\n * @api private\n */\n setupResponse: function setupResponse(request) {\n var self = this;\n var translator = self.getTranslator();\n var outputShape = self.service.api.operations[request.operation].output;\n request.on('extractData', function(response) {\n response.data = translator.translateOutput(response.data, outputShape);\n });\n\n var response = request.response;\n response.nextPage = function(cb) {\n var resp = this;\n var req = resp.request;\n var config;\n var service = req.service;\n var operation = req.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { resp.error = e; }\n\n if (!resp.hasNextPage()) {\n if (cb) cb(resp.error, null);\n else if (resp.error) throw resp.error;\n return null;\n }\n\n var params = AWS.util.copy(req.rawParams);\n if (!resp.nextPageTokens) {\n return cb ? cb(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = resp.nextPageTokens[i];\n }\n return self[operation](params, cb);\n }\n };\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.DocumentClient;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var util = require('../core').util;\n\nfunction typeOf(data) {\n if (data === null && typeof data === 'object') {\n return 'null';\n } else if (data !== undefined && isBinary(data)) {\n return 'Binary';\n } else if (data !== undefined && data.constructor) {\n return data.wrapperName || util.typeName(data.constructor);\n } else if (data !== undefined && typeof data === 'object') {\n // this object is the result of Object.create(null), hence the absence of a\n // defined constructor\n return 'Object';\n } else {\n return 'undefined';\n }\n}\n\nfunction isBinary(data) {\n var types = [\n 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',\n 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',\n 'Float32Array', 'Float64Array'\n ];\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n if (util.Buffer.isBuffer(data) || data instanceof Stream) {\n return true;\n }\n }\n\n for (var i = 0; i < types.length; i++) {\n if (data !== undefined && data.constructor) {\n if (util.isType(data, types[i])) return true;\n if (util.typeName(data.constructor) === types[i]) return true;\n }\n }\n\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n typeOf: typeOf,\n isBinary: isBinary\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\nvar BOOLEAN_TAG = 'boolean';\nvar BYTE_TAG = 'byte';\nvar SHORT_TAG = 'short';\nvar INT_TAG = 'integer';\nvar LONG_TAG = 'long';\nvar BINARY_TAG = 'binary';\nvar STRING_TAG = 'string';\nvar TIMESTAMP_TAG = 'timestamp';\nvar UUID_TAG = 'uuid';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n\n/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n this.httpRequest.path = this.httpRequest.endpoint.path;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n var isAwsQueryCompatible = shape.api && shape.api.awsQueryCompatible;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n } else if (isAwsQueryCompatible && memberShape.defaultValue) {\n if (memberShape.type === 'list') {\n struct[name] = typeof memberShape.defaultValue === 'function' ? memberShape.defaultValue() : memberShape.defaultValue;\n }\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'The AWS SDK for JavaScript (v2) is in maintenance mode.',\n ' SDK releases are limited to address critical bug fixes and security issues only.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check the blog post at https://a.co/cUPnyil'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[rules.payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n if (rules.api.protocol !== 'ec2') {\n fn.call(this, name, null);\n }\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar service = null;\n\n/**\n * @api private\n */\nvar api = {\n signatureVersion: 'v4',\n signingName: 'rds-db',\n operations: {}\n};\n\n/**\n * @api private\n */\nvar requiredAuthTokenOptions = {\n region: 'string',\n hostname: 'string',\n port: 'number',\n username: 'string'\n};\n\n/**\n * A signer object can be used to generate an auth token to a database.\n */\nAWS.RDS.Signer = AWS.util.inherit({\n /**\n * Creates a signer object can be used to generate an auth token.\n *\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * @option options hostname [String] the hostname of the database to connect to.\n * @option options port [Number] the port number the database is listening on.\n * @option options region [String] the region the database is located in.\n * @option options username [String] the username to login as.\n * @example Passing in options to constructor\n * var signer = new AWS.RDS.Signer({\n * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}),\n * region: 'us-east-1',\n * hostname: 'db.us-east-1.rds.amazonaws.com',\n * port: 8000,\n * username: 'name'\n * });\n */\n constructor: function Signer(options) {\n this.options = options || {};\n },\n\n /**\n * @api private\n * Strips the protocol from a url.\n */\n convertUrlToAuthToken: function convertUrlToAuthToken(url) {\n // we are always using https as the protocol\n var protocol = 'https://';\n if (url.indexOf(protocol) === 0) {\n return url.substring(protocol.length);\n }\n },\n\n /**\n * @overload getAuthToken(options = {}, [callback])\n * Generate an auth token to a database.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @param options [map] The fields to use when generating an auth token.\n * Any options specified here will be merged on top of any options passed\n * to AWS.RDS.Signer:\n *\n * * **credentials** (AWS.Credentials) — the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * * **hostname** (String) — the hostname of the database to connect to.\n * * **port** (Number) — the port number the database is listening on.\n * * **region** (String) — the region the database is located in.\n * * **username** (String) — the username to login as.\n * @return [String] if called synchronously (with no callback), returns the\n * auth token.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, token)\n * If a callback is supplied, it is called when an auth token has been generated.\n * @param err [Error] the error object returned from the signer.\n * @param token [String] the auth token.\n *\n * @example Generating an auth token synchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * var token = signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * });\n * @example Generating an auth token asynchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * }, function(err, token) {\n * if (err) {\n * // handle error\n * } else {\n * // use token\n * }\n * });\n *\n */\n getAuthToken: function getAuthToken(options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = {};\n }\n var self = this;\n var hasCallback = typeof callback === 'function';\n // merge options with existing options\n options = AWS.util.merge(this.options, options);\n // validate options\n var optionsValidation = this.validateAuthTokenOptions(options);\n if (optionsValidation !== true) {\n if (hasCallback) {\n return callback(optionsValidation, null);\n }\n throw optionsValidation;\n }\n\n // 15 minutes\n var expires = 900;\n // create service to generate a request from\n var serviceOptions = {\n region: options.region,\n endpoint: new AWS.Endpoint(options.hostname + ':' + options.port),\n paramValidation: false,\n signatureVersion: 'v4'\n };\n if (options.credentials) {\n serviceOptions.credentials = options.credentials;\n }\n service = new AWS.Service(serviceOptions);\n // ensure the SDK is using sigv4 signing (config is not enough)\n service.api = api;\n\n var request = service.makeRequest();\n // add listeners to request to properly build auth token\n this.modifyRequestForAuthToken(request, options);\n\n if (hasCallback) {\n request.presign(expires, function(err, url) {\n if (url) {\n url = self.convertUrlToAuthToken(url);\n }\n callback(err, url);\n });\n } else {\n var url = request.presign(expires);\n return this.convertUrlToAuthToken(url);\n }\n },\n\n /**\n * @api private\n * Modifies a request to allow the presigner to generate an auth token.\n */\n modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) {\n request.on('build', request.buildAsGet);\n var httpRequest = request.httpRequest;\n httpRequest.body = AWS.util.queryParamsToString({\n Action: 'connect',\n DBUser: options.username\n });\n },\n\n /**\n * @api private\n * Validates that the options passed in contain all the keys with values of the correct type that\n * are needed to generate an auth token.\n */\n validateAuthTokenOptions: function validateAuthTokenOptions(options) {\n // iterate over all keys in options\n var message = '';\n options = options || {};\n for (var key in requiredAuthTokenOptions) {\n if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) {\n continue;\n }\n if (typeof options[key] !== requiredAuthTokenOptions[key]) {\n message += 'option \\'' + key + '\\' should have been type \\'' + requiredAuthTokenOptions[key] + '\\', was \\'' + typeof options[key] + '\\'.\\n';\n }\n }\n if (message.length) {\n return AWS.util.error(new Error(), {\n code: 'InvalidParameter',\n message: message\n });\n }\n return true;\n }\n});\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov',\n '^eu\\\\-isoe\\\\-west\\\\-1$': 'cloud.adc-e.uk',\n '^us\\\\-isof\\\\-\\\\w+\\\\-\\\\d+$': 'csp.hci.ic.gov',\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","var AWS = require('../core');\nrequire('../dynamodb/document_client');\n\nAWS.util.update(AWS.DynamoDB.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.service.config.dynamoDbCrc32) {\n request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n request.addListener('extractData', this.checkCrc32);\n request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n }\n },\n\n /**\n * @api private\n */\n checkCrc32: function checkCrc32(resp) {\n if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {\n resp.data = null;\n resp.error = AWS.util.error(new Error(), {\n code: 'CRC32CheckFailed',\n message: 'CRC32 integrity check failed',\n retryable: true\n });\n resp.request.haltHandlersOnError();\n throw (resp.error);\n }\n },\n\n /**\n * @api private\n */\n crc32IsValid: function crc32IsValid(resp) {\n var crc = resp.httpResponse.headers['x-amz-crc32'];\n if (!crc) return true; // no (valid) CRC32 header\n return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);\n },\n\n /**\n * @api private\n */\n defaultRetryCount: 10,\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);\n\n if (typeof retryDelayOptions.base !== 'number') {\n retryDelayOptions.base = 50; // default for dynamodb\n }\n var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);\n return delay;\n }\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","require('../polly/presigner');\n","var AWS = require('../core');\nvar rdsutil = require('./rdsutil');\nrequire('../rds/signer');\n /**\n * @api private\n */\n var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];\n\n AWS.util.update(AWS.RDS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n rdsutil.setupRequestListeners(this, request, crossRegionOperations);\n },\n });\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.setExpiresString);\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n var service = this.service ? this.service : this;\n if (!service.is200Error(resp) && !operationsWith200StatusCodeError[resp.request.operation]) {\n return;\n }\n var httpResponse = resp.httpResponse;\n var bodyString = httpResponse.body && httpResponse.body.toString() || '';\n if (bodyString && bodyString.indexOf('') === bodyString.length - 8) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n service.extractError(resp);\n resp.error.is200Error = true;\n throw resp.error;\n } else if (!httpResponse.body || !bodyString.match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @api private\n * @param resp - to evaluate.\n * @return true if the response has status code 200 but is an error.\n */\n is200Error: function is200Error(resp) {\n var code = resp && resp.httpResponse && resp.httpResponse.statusCode;\n if (code !== 200) {\n return false;\n }\n try {\n var req = resp.request;\n var outputMembers = req.service.api.operations[req.operation].output.members;\n var keys = Object.keys(outputMembers);\n for (var i = 0; i < keys.length; ++i) {\n var member = outputMembers[keys[i]];\n if (member.type === 'binary' && member.isStreaming) {\n return false;\n }\n }\n\n var body = resp.httpResponse.body;\n if (body && body.byteLength !== undefined) {\n if (body.byteLength < 15 || body.byteLength > 3000) {\n // body is too short or long to be an error message.\n return false;\n }\n }\n if (!body) {\n return false;\n }\n var bodyString = body.toString();\n if (bodyString.indexOf('') === bodyString.length - 8) {\n return true;\n }\n } catch (e) {\n return false;\n }\n return false;\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (error.is200Error ||\n (operationsWith200StatusCodeError[request.operation] && error.statusCode === 200)) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (\n this.config.region !== 'us-east-1'\n && hostname !== this.api.globalEndpoint\n && !params.CreateBucketConfiguration\n ) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n },\n\n /**\n * @api private\n */\n setExpiresString: function setExpiresString(response) {\n // Check if response contains Expires value, and populate ExpiresString.\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n response.httpResponse.headers.expiresstring = response.httpResponse.headers.expires;\n }\n }\n\n // Check if value in Expires is not a Date using parseTimestamp.\n try {\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n AWS.util.date.parseTimestamp(response.httpResponse.headers.expires);\n }\n }\n } catch (e) {\n console.log('AWS SDK', '(warning)', e);\n delete response.httpResponse.headers.expires;\n }\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.SQS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.buildEndpoint);\n\n if (request.service.config.computeChecksums) {\n if (request.operation === 'sendMessage') {\n request.addListener('extractData', this.verifySendMessageChecksum);\n } else if (request.operation === 'sendMessageBatch') {\n request.addListener('extractData', this.verifySendMessageBatchChecksum);\n } else if (request.operation === 'receiveMessage') {\n request.addListener('extractData', this.verifyReceiveMessageChecksum);\n }\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageChecksum: function verifySendMessageChecksum(response) {\n if (!response.data) return;\n\n var md5 = response.data.MD5OfMessageBody;\n var body = this.params.MessageBody;\n var calculatedMd5 = this.service.calculateChecksum(body);\n if (calculatedMd5 !== md5) {\n var msg = 'Got \"' + response.data.MD5OfMessageBody +\n '\", expecting \"' + calculatedMd5 + '\".';\n this.service.throwInvalidChecksumError(response,\n [response.data.MessageId], msg);\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var entries = {};\n var errors = [];\n var messageIds = [];\n AWS.util.arrayEach(response.data.Successful, function (entry) {\n entries[entry.Id] = entry;\n });\n AWS.util.arrayEach(this.params.Entries, function (entry) {\n if (entries[entry.Id]) {\n var md5 = entries[entry.Id].MD5OfMessageBody;\n var body = entry.MessageBody;\n if (!service.isChecksumValid(md5, body)) {\n errors.push(entry.Id);\n messageIds.push(entries[entry.Id].MessageId);\n }\n }\n });\n\n if (errors.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + errors.join(', '));\n }\n },\n\n /**\n * @api private\n */\n verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var messageIds = [];\n AWS.util.arrayEach(response.data.Messages, function(message) {\n var md5 = message.MD5OfBody;\n var body = message.Body;\n if (!service.isChecksumValid(md5, body)) {\n messageIds.push(message.MessageId);\n }\n });\n\n if (messageIds.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + messageIds.join(', '));\n }\n },\n\n /**\n * @api private\n */\n throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {\n response.error = AWS.util.error(new Error(), {\n retryable: true,\n code: 'InvalidChecksum',\n messageIds: ids,\n message: response.request.operation +\n ' returned an invalid MD5 response. ' + message\n });\n },\n\n /**\n * @api private\n */\n isChecksumValid: function isChecksumValid(checksum, data) {\n return this.calculateChecksum(data) === checksum;\n },\n\n /**\n * @api private\n */\n calculateChecksum: function calculateChecksum(data) {\n return AWS.util.crypto.md5(data, 'hex');\n },\n\n /**\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.httpRequest.params.QueueUrl;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n\n // signature version 4 requires the region name to be set,\n // sqs queue urls contain the region name\n var matches = request.httpRequest.endpoint.host.match(/^sqs\\.(.+?)\\./);\n if (matches) request.httpRequest.region = matches[1];\n }\n }\n});\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.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","'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 bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\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 = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\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","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.partitioned) {\n str += '; Partitioned'\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} val\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasCookie = exports.deleteCookie = exports.setCookie = exports.getCookie = exports.getCookies = void 0;\nvar cookie_1 = require(\"cookie\");\nvar isClientSide = function () { return typeof window !== 'undefined'; };\nvar isCookiesFromAppRouter = function (cookieStore) {\n if (!cookieStore)\n return false;\n return ('getAll' in cookieStore &&\n 'set' in cookieStore &&\n typeof cookieStore.getAll === 'function' &&\n typeof cookieStore.set === 'function');\n};\nvar isContextFromAppRouter = function (context) {\n return ((!!(context === null || context === void 0 ? void 0 : context.req) && 'cookies' in context.req && isCookiesFromAppRouter(context === null || context === void 0 ? void 0 : context.req.cookies)) ||\n (!!(context === null || context === void 0 ? void 0 : context.res) && 'cookies' in context.res && isCookiesFromAppRouter(context === null || context === void 0 ? void 0 : context.res.cookies)) ||\n (!!(context === null || context === void 0 ? void 0 : context.cookies) && isCookiesFromAppRouter(context.cookies())));\n};\nvar transformAppRouterCookies = function (cookies) {\n var _cookies = {};\n cookies.getAll().forEach(function (_a) {\n var name = _a.name, value = _a.value;\n _cookies[name] = value;\n });\n return _cookies;\n};\nvar stringify = function (value) {\n try {\n if (typeof value === 'string') {\n return value;\n }\n var stringifiedValue = JSON.stringify(value);\n return stringifiedValue;\n }\n catch (e) {\n return value;\n }\n};\nvar decode = function (str) {\n if (!str)\n return str;\n return str.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n};\nvar getCookies = function (options) {\n if (isContextFromAppRouter(options)) {\n if (options === null || options === void 0 ? void 0 : options.req) {\n return transformAppRouterCookies(options.req.cookies);\n }\n if (options === null || options === void 0 ? void 0 : options.cookies) {\n return transformAppRouterCookies(options.cookies());\n }\n }\n var req;\n // DefaultOptions['req] can be casted here because is narrowed by using the fn: isContextFromAppRouter\n if (options)\n req = options.req;\n if (!isClientSide()) {\n // if cookie-parser is used in project get cookies from ctx.req.cookies\n // if cookie-parser isn't used in project get cookies from ctx.req.headers.cookie\n if (req && req.cookies)\n return req.cookies;\n if (req && req.headers.cookie)\n return (0, cookie_1.parse)(req.headers.cookie);\n return {};\n }\n var _cookies = {};\n var documentCookies = document.cookie ? document.cookie.split('; ') : [];\n for (var i = 0, len = documentCookies.length; i < len; i++) {\n var cookieParts = documentCookies[i].split('=');\n var _cookie = cookieParts.slice(1).join('=');\n var name_1 = cookieParts[0];\n _cookies[name_1] = _cookie;\n }\n return _cookies;\n};\nexports.getCookies = getCookies;\nvar getCookie = function (key, options) {\n var _cookies = (0, exports.getCookies)(options);\n var value = _cookies[key];\n if (value === undefined)\n return undefined;\n return decode(value);\n};\nexports.getCookie = getCookie;\nvar setCookie = function (key, data, options) {\n if (isContextFromAppRouter(options)) {\n var req = options.req, res = options.res, cookiesFn = options.cookies, restOptions = __rest(options, [\"req\", \"res\", \"cookies\"]);\n var payload = __assign({ name: key, value: stringify(data) }, restOptions);\n if (req) {\n req.cookies.set(payload);\n }\n if (res) {\n res.cookies.set(payload);\n }\n if (cookiesFn) {\n cookiesFn().set(payload);\n }\n return;\n }\n var _cookieOptions;\n var _req;\n var _res;\n if (options) {\n // DefaultOptions can be casted here because the AppRouterMiddlewareOptions is narrowed using the fn: isContextFromAppRouter\n var _a = options, req = _a.req, res = _a.res, _options = __rest(_a, [\"req\", \"res\"]);\n _req = req;\n _res = res;\n _cookieOptions = _options;\n }\n var cookieStr = (0, cookie_1.serialize)(key, stringify(data), __assign({ path: '/' }, _cookieOptions));\n if (!isClientSide()) {\n if (_res && _req) {\n var currentCookies = _res.getHeader('Set-Cookie');\n if (!Array.isArray(currentCookies)) {\n currentCookies = !currentCookies ? [] : [String(currentCookies)];\n }\n _res.setHeader('Set-Cookie', currentCookies.concat(cookieStr));\n if (_req && _req.cookies) {\n var _cookies = _req.cookies;\n data === '' ? delete _cookies[key] : (_cookies[key] = stringify(data));\n }\n if (_req && _req.headers && _req.headers.cookie) {\n var _cookies = (0, cookie_1.parse)(_req.headers.cookie);\n data === '' ? delete _cookies[key] : (_cookies[key] = stringify(data));\n _req.headers.cookie = Object.entries(_cookies).reduce(function (accum, item) {\n return accum.concat(\"\".concat(item[0], \"=\").concat(item[1], \";\"));\n }, '');\n }\n }\n }\n else {\n document.cookie = cookieStr;\n }\n};\nexports.setCookie = setCookie;\nvar deleteCookie = function (key, options) {\n return (0, exports.setCookie)(key, '', __assign(__assign({}, options), { maxAge: -1 }));\n};\nexports.deleteCookie = deleteCookie;\nvar hasCookie = function (key, options) {\n if (!key)\n return false;\n var cookie = (0, exports.getCookies)(options);\n return cookie.hasOwnProperty(key);\n};\nexports.hasCookie = hasCookie;\n","/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tif(typeof DO_NOT_EXPORT_CRC === 'undefined') {\n\t\tif('object' === typeof exports) {\n\t\t\tfactory(exports);\n\t\t} else if ('function' === typeof define && define.amd) {\n\t\t\tdefine(function () {\n\t\t\t\tvar module = {};\n\t\t\t\tfactory(module);\n\t\t\t\treturn module;\n\t\t\t});\n\t\t} else {\n\t\t\tfactory(CRC32 = {});\n\t\t}\n\t} else {\n\t\tfactory(CRC32 = {});\n\t}\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.2';\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B, seed) {\n\tvar C = seed ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\n// $FlowIgnore\nCRC32.bstr = crc32_bstr;\n// $FlowIgnore\nCRC32.buf = crc32_buf;\n// $FlowIgnore\nCRC32.str = crc32_str;\n}));\n","// Save global object in a variable\nvar __global__ =\n(typeof globalThis !== 'undefined' && globalThis) ||\n(typeof self !== 'undefined' && self) ||\n(typeof global !== 'undefined' && global);\n// Create an object that extends from __global__ without the fetch function\nvar __globalThis__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = __global__.DOMException\n}\nF.prototype = __global__; // Needed for feature detection on whatwg-fetch's code\nreturn new F();\n})();\n// Wraps whatwg-fetch with a function scope to hijack the global object\n// \"globalThis\" that's going to be patched\n(function(globalThis) {\n\nvar irrelevant = (function (exports) {\n\n var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global);\n\n var support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = global.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!global.fetch) {\n global.fetch = fetch;\n global.Headers = Headers;\n global.Request = Request;\n global.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n return exports;\n\n})({});\n})(__globalThis__);\n// This is a ponyfill, so...\n__globalThis__.fetch.ponyfill = true;\ndelete __globalThis__.fetch.polyfill;\n// Choose between native implementation (__global__) or custom implementation (__globalThis__)\nvar ctx = __global__.fetch ? __global__ : __globalThis__;\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","\"use strict\";\nexports.addLeadingZeros = addLeadingZeros;\nfunction addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"defaultLocale\", {\n enumerable: true,\n get: function () {\n return _index.enUS;\n },\n});\nvar _index = require(\"../locale/en-US.js\");\n","\"use strict\";\nexports.getDefaultOptions = getDefaultOptions;\nexports.setDefaultOptions = setDefaultOptions;\n\nlet defaultOptions = {};\n\nfunction getDefaultOptions() {\n return defaultOptions;\n}\n\nfunction setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","\"use strict\";\nexports.formatters = void 0;\nvar _index = require(\"../../getDayOfYear.js\");\nvar _index2 = require(\"../../getISOWeek.js\");\nvar _index3 = require(\"../../getISOWeekYear.js\");\nvar _index4 = require(\"../../getWeek.js\");\nvar _index5 = require(\"../../getWeekYear.js\");\n\nvar _index6 = require(\"../addLeadingZeros.js\");\nvar _index7 = require(\"./lightFormatters.js\");\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nconst formatters = (exports.formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return _index7.lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = (0, _index5.getWeekYear)(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return (0, _index6.addLeadingZeros)(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return (0, _index6.addLeadingZeros)(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = (0, _index3.getISOWeekYear)(date);\n\n // Padding\n return (0, _index6.addLeadingZeros)(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return (0, _index6.addLeadingZeros)(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return (0, _index6.addLeadingZeros)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return (0, _index6.addLeadingZeros)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return _index7.lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return (0, _index6.addLeadingZeros)(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = (0, _index4.getWeek)(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return (0, _index6.addLeadingZeros)(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = (0, _index2.getISOWeek)(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return (0, _index6.addLeadingZeros)(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return _index7.lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = (0, _index.getDayOfYear)(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return (0, _index6.addLeadingZeros)(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return (0, _index6.addLeadingZeros)(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return (0, _index6.addLeadingZeros)(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return (0, _index6.addLeadingZeros)(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return _index7.lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return _index7.lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return (0, _index6.addLeadingZeros)(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return (0, _index6.addLeadingZeros)(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return _index7.lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return _index7.lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return _index7.lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return (0, _index6.addLeadingZeros)(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return (0, _index6.addLeadingZeros)(timestamp, token.length);\n },\n});\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return (\n sign + String(hours) + delimiter + (0, _index6.addLeadingZeros)(minutes, 2)\n );\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + (0, _index6.addLeadingZeros)(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = (0, _index6.addLeadingZeros)(Math.trunc(absOffset / 60), 2);\n const minutes = (0, _index6.addLeadingZeros)(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","\"use strict\";\nexports.lightFormatters = void 0;\nvar _index = require(\"../addLeadingZeros.js\");\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nconst lightFormatters = (exports.lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return (0, _index.addLeadingZeros)(\n token === \"yy\" ? year % 100 : year,\n token.length,\n );\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\"\n ? String(month + 1)\n : (0, _index.addLeadingZeros)(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return (0, _index.addLeadingZeros)(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return (0, _index.addLeadingZeros)(\n date.getHours() % 12 || 12,\n token.length,\n );\n },\n\n // Hour [0-23]\n H(date, token) {\n return (0, _index.addLeadingZeros)(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return (0, _index.addLeadingZeros)(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return (0, _index.addLeadingZeros)(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return (0, _index.addLeadingZeros)(fractionalSeconds, token.length);\n },\n});\n","\"use strict\";\nexports.longFormatters = void 0;\n\nconst dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nconst longFormatters = (exports.longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n});\n","\"use strict\";\nexports.getRoundingMethod = getRoundingMethod;\n\nfunction getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","\"use strict\";\nexports.getTimezoneOffsetInMilliseconds = getTimezoneOffsetInMilliseconds;\nvar _index = require(\"../toDate.js\");\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n const _date = (0, _index.toDate)(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","\"use strict\";\nexports.isProtectedDayOfYearToken = isProtectedDayOfYearToken;\nexports.isProtectedWeekYearToken = isProtectedWeekYearToken;\nexports.warnOrThrowProtectedError = warnOrThrowProtectedError;\nconst dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nfunction isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nfunction isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nfunction warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","\"use strict\";\nexports.add = add;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./addMonths.js\");\nvar _index3 = require(\"./constructFrom.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be added.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\\\\-7\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nfunction add(date, duration) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = (0, _index4.toDate)(date);\n const dateWithMonths =\n months || years\n ? (0, _index2.addMonths)(_date, months + years * 12)\n : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks\n ? (0, _index.addDays)(dateWithMonths, days + weeks * 7)\n : dateWithMonths;\n\n // Add days, hours, minutes and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n const finalDate = (0, _index3.constructFrom)(\n date,\n dateWithDays.getTime() + msToAdd,\n );\n\n return finalDate;\n}\n","\"use strict\";\nexports.addBusinessDays = addBusinessDays;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./isSaturday.js\");\nvar _index3 = require(\"./isSunday.js\");\nvar _index4 = require(\"./isWeekend.js\");\nvar _index5 = require(\"./toDate.js\");\n\n/**\n * @name addBusinessDays\n * @category Date Extension Helpers\n * @summary Add the specified number of business days (mon - fri) to the given date.\n *\n * @description\n * Add the specified number of business days (mon - fri) to the given date, ignoring weekends.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of business days to be added.\n *\n * @returns The new date with the business days added\n *\n * @example\n * // Add 10 business days to 1 September 2014:\n * const result = addBusinessDays(new Date(2014, 8, 1), 10)\n * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days)\n */\nfunction addBusinessDays(date, amount) {\n const _date = (0, _index5.toDate)(date);\n const startedOnWeekend = (0, _index4.isWeekend)(_date);\n\n if (isNaN(amount)) return (0, _index.constructFrom)(date, NaN);\n\n const hours = _date.getHours();\n const sign = amount < 0 ? -1 : 1;\n const fullWeeks = Math.trunc(amount / 5);\n\n _date.setDate(_date.getDate() + fullWeeks * 7);\n\n // Get remaining days not part of a full week\n let restDays = Math.abs(amount % 5);\n\n // Loops over remaining days\n while (restDays > 0) {\n _date.setDate(_date.getDate() + sign);\n if (!(0, _index4.isWeekend)(_date)) restDays -= 1;\n }\n\n // If the date is a weekend day and we reduce a dividable of\n // 5 from it, we land on a weekend date.\n // To counter this, we add days accordingly to land on the next business day\n if (startedOnWeekend && (0, _index4.isWeekend)(_date) && amount !== 0) {\n // If we're reducing days, we want to add days until we land on a weekday\n // If we're adding days we want to reduce days until we land on a weekday\n if ((0, _index2.isSaturday)(_date))\n _date.setDate(_date.getDate() + (sign < 0 ? 2 : -1));\n if ((0, _index3.isSunday)(_date))\n _date.setDate(_date.getDate() + (sign < 0 ? 1 : -2));\n }\n\n // Restore hours to avoid DST lag\n _date.setHours(hours);\n\n return _date;\n}\n","\"use strict\";\nexports.addDays = addDays;\nvar _index = require(\"./toDate.js\");\nvar _index2 = require(\"./constructFrom.js\");\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nfunction addDays(date, amount) {\n const _date = (0, _index.toDate)(date);\n if (isNaN(amount)) return (0, _index2.constructFrom)(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n","\"use strict\";\nexports.addHours = addHours;\nvar _index = require(\"./addMilliseconds.js\");\nvar _index2 = require(\"./constants.js\");\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added.\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nfunction addHours(date, amount) {\n return (0, _index.addMilliseconds)(date, amount * _index2.millisecondsInHour);\n}\n","\"use strict\";\nexports.addISOWeekYears = addISOWeekYears;\nvar _index = require(\"./getISOWeekYear.js\");\nvar _index2 = require(\"./setISOWeekYear.js\");\n\n/**\n * @name addISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of ISO week-numbering years to be added.\n *\n * @returns The new date with the ISO week-numbering years added\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * const result = addISOWeekYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jn 26 2015 00:00:00\n */\nfunction addISOWeekYears(date, amount) {\n return (0, _index2.setISOWeekYear)(\n date,\n (0, _index.getISOWeekYear)(date) + amount,\n );\n}\n","\"use strict\";\nexports.addMilliseconds = addMilliseconds;\nvar _index = require(\"./toDate.js\");\nvar _index2 = require(\"./constructFrom.js\");\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds(date, amount) {\n const timestamp = +(0, _index.toDate)(date);\n return (0, _index2.constructFrom)(date, timestamp + amount);\n}\n","\"use strict\";\nexports.addMinutes = addMinutes;\nvar _index = require(\"./addMilliseconds.js\");\nvar _index2 = require(\"./constants.js\");\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction addMinutes(date, amount) {\n return (0, _index.addMilliseconds)(\n date,\n amount * _index2.millisecondsInMinute,\n );\n}\n","\"use strict\";\nexports.addMonths = addMonths;\nvar _index = require(\"./toDate.js\");\nvar _index2 = require(\"./constructFrom.js\");\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nfunction addMonths(date, amount) {\n const _date = (0, _index.toDate)(date);\n if (isNaN(amount)) return (0, _index2.constructFrom)(date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = (0, _index2.constructFrom)(date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n","\"use strict\";\nexports.addQuarters = addQuarters;\nvar _index = require(\"./addMonths.js\");\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\nfunction addQuarters(date, amount) {\n const months = amount * 3;\n return (0, _index.addMonths)(date, months);\n}\n","\"use strict\";\nexports.addSeconds = addSeconds;\nvar _index = require(\"./addMilliseconds.js\");\n\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be added.\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nfunction addSeconds(date, amount) {\n return (0, _index.addMilliseconds)(date, amount * 1000);\n}\n","\"use strict\";\nexports.addWeeks = addWeeks;\nvar _index = require(\"./addDays.js\");\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nfunction addWeeks(date, amount) {\n const days = amount * 7;\n return (0, _index.addDays)(date, days);\n}\n","\"use strict\";\nexports.addYears = addYears;\nvar _index = require(\"./addMonths.js\");\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nfunction addYears(date, amount) {\n return (0, _index.addMonths)(date, amount * 12);\n}\n","\"use strict\";\nexports.areIntervalsOverlapping = areIntervalsOverlapping;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link areIntervalsOverlapping} function options.\n */\n\n/**\n * @name areIntervalsOverlapping\n * @category Interval Helpers\n * @summary Is the given time interval overlapping with another time interval?\n *\n * @description\n * Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping unless `inclusive` is set to `true`.\n *\n * @param intervalLeft - The first interval to compare.\n * @param intervalRight - The second interval to compare.\n * @param options - The object with options\n *\n * @returns Whether the time intervals are overlapping\n *\n * @example\n * // For overlapping time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> true\n *\n * @example\n * // For non-overlapping time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> false\n *\n * @example\n * // For adjacent time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }\n * )\n * //=> false\n *\n * @example\n * // Using the inclusive option:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }\n * )\n * //=> false\n *\n * @example\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },\n * { inclusive: true }\n * )\n * //=> true\n */\nfunction areIntervalsOverlapping(intervalLeft, intervalRight, options) {\n const [leftStartTime, leftEndTime] = [\n +(0, _index.toDate)(intervalLeft.start),\n +(0, _index.toDate)(intervalLeft.end),\n ].sort((a, b) => a - b);\n const [rightStartTime, rightEndTime] = [\n +(0, _index.toDate)(intervalRight.start),\n +(0, _index.toDate)(intervalRight.end),\n ].sort((a, b) => a - b);\n\n if (options?.inclusive)\n return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime;\n\n return leftStartTime < rightEndTime && rightStartTime < leftEndTime;\n}\n","\"use strict\";\nexports.clamp = clamp;\nvar _index = require(\"./max.js\");\nvar _index2 = require(\"./min.js\");\n\n/**\n * @name clamp\n * @category Interval Helpers\n * @summary Return a date bounded by the start and the end of the given interval\n *\n * @description\n * Clamps a date to the lower bound with the start of the interval and the upper\n * bound with the end of the interval.\n *\n * - When the date is less than the start of the interval, the start is returned.\n * - When the date is greater than the end of the interval, the end is returned.\n * - Otherwise the date is returned.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be bounded\n * @param interval - The interval to bound to\n *\n * @returns The date bounded by the start and the end of the interval\n *\n * @example\n * // What is Mar, 21, 2021 bounded to an interval starting at Mar, 22, 2021 and ending at Apr, 01, 2021\n * const result = clamp(new Date(2021, 2, 21), {\n * start: new Date(2021, 2, 22),\n * end: new Date(2021, 3, 1),\n * })\n * //=> Mon Mar 22 2021 00:00:00\n */\nfunction clamp(date, interval) {\n return (0, _index2.min)([\n (0, _index.max)([date, interval.start]),\n interval.end,\n ]);\n}\n","\"use strict\";\nexports.closestIndexTo = closestIndexTo;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name closestIndexTo\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateToCompare - The date to compare with\n * @param dates - The array to search\n *\n * @returns An index of the date closest to the given date or undefined if no valid value is given\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * const dateToCompare = new Date(2015, 8, 6)\n * const datesArray = [\n * new Date(2015, 0, 1),\n * new Date(2016, 0, 1),\n * new Date(2017, 0, 1)\n * ]\n * const result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\nfunction closestIndexTo(dateToCompare, dates) {\n const date = (0, _index.toDate)(dateToCompare);\n\n if (isNaN(Number(date))) return NaN;\n\n const timeToCompare = date.getTime();\n\n let result;\n let minDistance;\n dates.forEach(function (dirtyDate, index) {\n const currentDate = (0, _index.toDate)(dirtyDate);\n\n if (isNaN(Number(currentDate))) {\n result = NaN;\n minDistance = NaN;\n return;\n }\n\n const distance = Math.abs(timeToCompare - currentDate.getTime());\n if (result == null || distance < minDistance) {\n result = index;\n minDistance = distance;\n }\n });\n\n return result;\n}\n","\"use strict\";\nexports.closestTo = closestTo;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name closestTo\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateToCompare - The date to compare with\n * @param dates - The array to search\n *\n * @returns The date from the array closest to the given date or undefined if no valid value is given\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * const dateToCompare = new Date(2015, 8, 6)\n * const result = closestTo(dateToCompare, [\n * new Date(2000, 0, 1),\n * new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\nfunction closestTo(dateToCompare, dates) {\n const date = (0, _index2.toDate)(dateToCompare);\n\n if (isNaN(Number(date))) return (0, _index.constructFrom)(dateToCompare, NaN);\n\n const timeToCompare = date.getTime();\n\n let result;\n let minDistance;\n dates.forEach((dirtyDate) => {\n const currentDate = (0, _index2.toDate)(dirtyDate);\n\n if (isNaN(Number(currentDate))) {\n result = (0, _index.constructFrom)(dateToCompare, NaN);\n minDistance = NaN;\n return;\n }\n\n const distance = Math.abs(timeToCompare - currentDate.getTime());\n if (result == null || distance < minDistance) {\n result = currentDate;\n minDistance = distance;\n }\n });\n\n return result;\n}\n","\"use strict\";\nexports.compareAsc = compareAsc;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n","\"use strict\";\nexports.compareDesc = compareDesc;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name compareDesc\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * const result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\nfunction compareDesc(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff > 0) {\n return -1;\n } else if (diff < 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n","\"use strict\";\nexports.secondsInYear =\n exports.secondsInWeek =\n exports.secondsInQuarter =\n exports.secondsInMonth =\n exports.secondsInMinute =\n exports.secondsInHour =\n exports.secondsInDay =\n exports.quartersInYear =\n exports.monthsInYear =\n exports.monthsInQuarter =\n exports.minutesInYear =\n exports.minutesInMonth =\n exports.minutesInHour =\n exports.minutesInDay =\n exports.minTime =\n exports.millisecondsInWeek =\n exports.millisecondsInSecond =\n exports.millisecondsInMinute =\n exports.millisecondsInHour =\n exports.millisecondsInDay =\n exports.maxTime =\n exports.daysInYear =\n exports.daysInWeek =\n void 0; /**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nconst daysInWeek = (exports.daysInWeek = 7);\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nconst daysInYear = (exports.daysInYear = 365.2425);\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nconst maxTime = (exports.maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000);\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nconst minTime = (exports.minTime = -maxTime);\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nconst millisecondsInWeek = (exports.millisecondsInWeek = 604800000);\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nconst millisecondsInDay = (exports.millisecondsInDay = 86400000);\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nconst millisecondsInMinute = (exports.millisecondsInMinute = 60000);\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nconst millisecondsInHour = (exports.millisecondsInHour = 3600000);\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nconst millisecondsInSecond = (exports.millisecondsInSecond = 1000);\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nconst minutesInYear = (exports.minutesInYear = 525600);\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nconst minutesInMonth = (exports.minutesInMonth = 43200);\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nconst minutesInDay = (exports.minutesInDay = 1440);\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nconst minutesInHour = (exports.minutesInHour = 60);\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nconst monthsInQuarter = (exports.monthsInQuarter = 3);\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nconst monthsInYear = (exports.monthsInYear = 12);\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nconst quartersInYear = (exports.quartersInYear = 4);\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nconst secondsInHour = (exports.secondsInHour = 3600);\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nconst secondsInMinute = (exports.secondsInMinute = 60);\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nconst secondsInDay = (exports.secondsInDay = secondsInHour * 24);\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nconst secondsInWeek = (exports.secondsInWeek = secondsInDay * 7);\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nconst secondsInYear = (exports.secondsInYear = secondsInDay * daysInYear);\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nconst secondsInMonth = (exports.secondsInMonth = secondsInYear / 12);\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nconst secondsInQuarter = (exports.secondsInQuarter = secondsInMonth * 3);\n","\"use strict\";\nexports.constructFrom = constructFrom;\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate(\n * date: DateType | number | string,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nfunction constructNow(date) {\n return (0, _index.constructFrom)(date, Date.now());\n}\n","\"use strict\";\nexports.daysToWeeks = daysToWeeks;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name daysToWeeks\n * @category Conversion Helpers\n * @summary Convert days to weeks.\n *\n * @description\n * Convert a number of days to a full number of weeks.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param days - The number of days to be converted\n *\n * @returns The number of days converted in weeks\n *\n * @example\n * // Convert 14 days to weeks:\n * const result = daysToWeeks(14)\n * //=> 2\n *\n * @example\n * // It uses trunc rounding:\n * const result = daysToWeeks(13)\n * //=> 1\n */\nfunction daysToWeeks(days) {\n const weeks = days / _index.daysInWeek;\n const result = Math.trunc(weeks);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInBusinessDays = differenceInBusinessDays;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./differenceInCalendarDays.js\");\nvar _index3 = require(\"./isSameDay.js\");\nvar _index4 = require(\"./isValid.js\");\nvar _index5 = require(\"./isWeekend.js\");\nvar _index6 = require(\"./toDate.js\");\n\n/**\n * @name differenceInBusinessDays\n * @category Day Helpers\n * @summary Get the number of business days between the given dates.\n *\n * @description\n * Get the number of business day periods between the given dates.\n * Business days being days that arent in the weekend.\n * Like `differenceInCalendarDays`, the function removes the times from\n * the dates before calculating the difference.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of business days\n *\n * @example\n * // How many business days are between\n * // 10 January 2014 and 20 July 2014?\n * const result = differenceInBusinessDays(\n * new Date(2014, 6, 20),\n * new Date(2014, 0, 10)\n * )\n * //=> 136\n *\n * // How many business days are between\n * // 30 November 2021 and 1 November 2021?\n * const result = differenceInBusinessDays(\n * new Date(2021, 10, 30),\n * new Date(2021, 10, 1)\n * )\n * //=> 21\n *\n * // How many business days are between\n * // 1 November 2021 and 1 December 2021?\n * const result = differenceInBusinessDays(\n * new Date(2021, 10, 1),\n * new Date(2021, 11, 1)\n * )\n * //=> -22\n *\n * // How many business days are between\n * // 1 November 2021 and 1 November 2021 ?\n * const result = differenceInBusinessDays(\n * new Date(2021, 10, 1),\n * new Date(2021, 10, 1)\n * )\n * //=> 0\n */\nfunction differenceInBusinessDays(dateLeft, dateRight) {\n const _dateLeft = (0, _index6.toDate)(dateLeft);\n let _dateRight = (0, _index6.toDate)(dateRight);\n\n if (!(0, _index4.isValid)(_dateLeft) || !(0, _index4.isValid)(_dateRight))\n return NaN;\n\n const calendarDifference = (0, _index2.differenceInCalendarDays)(\n _dateLeft,\n _dateRight,\n );\n const sign = calendarDifference < 0 ? -1 : 1;\n\n const weeks = Math.trunc(calendarDifference / 7);\n\n let result = weeks * 5;\n _dateRight = (0, _index.addDays)(_dateRight, weeks * 7);\n\n // the loop below will run at most 6 times to account for the remaining days that don't makeup a full week\n while (!(0, _index3.isSameDay)(_dateLeft, _dateRight)) {\n // sign is used to account for both negative and positive differences\n result += (0, _index5.isWeekend)(_dateRight) ? 0 : sign;\n _dateRight = (0, _index.addDays)(_dateRight, sign);\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInCalendarDays = differenceInCalendarDays;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfDay.js\");\nvar _index3 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nfunction differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = (0, _index2.startOfDay)(dateLeft);\n const startOfDayRight = (0, _index2.startOfDay)(dateRight);\n\n const timestampLeft =\n +startOfDayLeft -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfDayLeft);\n const timestampRight =\n +startOfDayRight -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(\n (timestampLeft - timestampRight) / _index.millisecondsInDay,\n );\n}\n","\"use strict\";\nexports.differenceInCalendarISOWeekYears = differenceInCalendarISOWeekYears;\nvar _index = require(\"./getISOWeekYear.js\");\n\n/**\n * @name differenceInCalendarISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar ISO week-numbering years\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * const result = differenceInCalendarISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\nfunction differenceInCalendarISOWeekYears(dateLeft, dateRight) {\n return (\n (0, _index.getISOWeekYear)(dateLeft) - (0, _index.getISOWeekYear)(dateRight)\n );\n}\n","\"use strict\";\nexports.differenceInCalendarISOWeeks = differenceInCalendarISOWeeks;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * @name differenceInCalendarISOWeeks\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar ISO weeks\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * const result = differenceInCalendarISOWeeks(\n * new Date(2014, 6, 21),\n * new Date(2014, 6, 6)\n * )\n * //=> 3\n */\nfunction differenceInCalendarISOWeeks(dateLeft, dateRight) {\n const startOfISOWeekLeft = (0, _index2.startOfISOWeek)(dateLeft);\n const startOfISOWeekRight = (0, _index2.startOfISOWeek)(dateRight);\n\n const timestampLeft =\n +startOfISOWeekLeft -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfISOWeekLeft);\n const timestampRight =\n +startOfISOWeekRight -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfISOWeekRight);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(\n (timestampLeft - timestampRight) / _index.millisecondsInWeek,\n );\n}\n","\"use strict\";\nexports.differenceInCalendarMonths = differenceInCalendarMonths;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth();\n\n return yearDiff * 12 + monthDiff;\n}\n","\"use strict\";\nexports.differenceInCalendarQuarters = differenceInCalendarQuarters;\nvar _index = require(\"./getQuarter.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name differenceInCalendarQuarters\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar quarters\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\nfunction differenceInCalendarQuarters(dateLeft, dateRight) {\n const _dateLeft = (0, _index2.toDate)(dateLeft);\n const _dateRight = (0, _index2.toDate)(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const quarterDiff =\n (0, _index.getQuarter)(_dateLeft) - (0, _index.getQuarter)(_dateRight);\n\n return yearDiff * 4 + quarterDiff;\n}\n","\"use strict\";\nexports.differenceInCalendarWeeks = differenceInCalendarWeeks;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfWeek.js\");\n\nvar _index3 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * The {@link differenceInCalendarWeeks} function options.\n */\n\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of calendar weeks\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\nfunction differenceInCalendarWeeks(dateLeft, dateRight, options) {\n const startOfWeekLeft = (0, _index2.startOfWeek)(dateLeft, options);\n const startOfWeekRight = (0, _index2.startOfWeek)(dateRight, options);\n\n const timestampLeft =\n +startOfWeekLeft -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfWeekLeft);\n const timestampRight =\n +startOfWeekRight -\n (0, _index3.getTimezoneOffsetInMilliseconds)(startOfWeekRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a days is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(\n (timestampLeft - timestampRight) / _index.millisecondsInWeek,\n );\n}\n","\"use strict\";\nexports.differenceInCalendarYears = differenceInCalendarYears;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\nfunction differenceInCalendarYears(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n\n return _dateLeft.getFullYear() - _dateRight.getFullYear();\n}\n","\"use strict\";\nexports.differenceInDays = differenceInDays;\nvar _index = require(\"./differenceInCalendarDays.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full days according to the local timezone\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n *\n * @example\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n * //=> 92\n */\nfunction differenceInDays(dateLeft, dateRight) {\n const _dateLeft = (0, _index2.toDate)(dateLeft);\n const _dateRight = (0, _index2.toDate)(dateRight);\n\n const sign = compareLocalAsc(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index.differenceInCalendarDays)(_dateLeft, _dateRight),\n );\n\n _dateLeft.setDate(_dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastDayNotFull = Number(\n compareLocalAsc(_dateLeft, _dateRight) === -sign,\n );\n const result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n const diff =\n dateLeft.getFullYear() - dateRight.getFullYear() ||\n dateLeft.getMonth() - dateRight.getMonth() ||\n dateLeft.getDate() - dateRight.getDate() ||\n dateLeft.getHours() - dateRight.getHours() ||\n dateLeft.getMinutes() - dateRight.getMinutes() ||\n dateLeft.getSeconds() - dateRight.getSeconds() ||\n dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n","\"use strict\";\nexports.differenceInHours = differenceInHours;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./differenceInMilliseconds.js\");\n\n/**\n * The {@link differenceInHours} function options.\n */\n\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours(dateLeft, dateRight, options) {\n const diff =\n (0, _index3.differenceInMilliseconds)(dateLeft, dateRight) /\n _index2.millisecondsInHour;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInISOWeekYears = differenceInISOWeekYears;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./differenceInCalendarISOWeekYears.js\");\nvar _index3 = require(\"./subISOWeekYears.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * @name differenceInISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full ISO week-numbering years\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * const result = differenceInISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 1\n */\nfunction differenceInISOWeekYears(dateLeft, dateRight) {\n let _dateLeft = (0, _index4.toDate)(dateLeft);\n const _dateRight = (0, _index4.toDate)(dateRight);\n\n const sign = (0, _index.compareAsc)(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index2.differenceInCalendarISOWeekYears)(_dateLeft, _dateRight),\n );\n _dateLeft = (0, _index3.subISOWeekYears)(_dateLeft, sign * difference);\n\n // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n // if last calendar ISO year is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastISOWeekYearNotFull = Number(\n (0, _index.compareAsc)(_dateLeft, _dateRight) === -sign,\n );\n const result = sign * (difference - isLastISOWeekYearNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInMilliseconds = differenceInMilliseconds;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds(dateLeft, dateRight) {\n return +(0, _index.toDate)(dateLeft) - +(0, _index.toDate)(dateRight);\n}\n","\"use strict\";\nexports.differenceInMinutes = differenceInMinutes;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./differenceInMilliseconds.js\");\n\n/**\n * The {@link differenceInMinutes} function options.\n */\n\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nfunction differenceInMinutes(dateLeft, dateRight, options) {\n const diff =\n (0, _index3.differenceInMilliseconds)(dateLeft, dateRight) /\n _index2.millisecondsInMinute;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInMonths = differenceInMonths;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./differenceInCalendarMonths.js\");\nvar _index3 = require(\"./isLastDayOfMonth.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nfunction differenceInMonths(dateLeft, dateRight) {\n const _dateLeft = (0, _index4.toDate)(dateLeft);\n const _dateRight = (0, _index4.toDate)(dateRight);\n\n const sign = (0, _index.compareAsc)(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index2.differenceInCalendarMonths)(_dateLeft, _dateRight),\n );\n let result;\n\n // Check for the difference of less than month\n if (difference < 1) {\n result = 0;\n } else {\n if (_dateLeft.getMonth() === 1 && _dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n _dateLeft.setDate(30);\n }\n\n _dateLeft.setMonth(_dateLeft.getMonth() - sign * difference);\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n let isLastMonthNotFull =\n (0, _index.compareAsc)(_dateLeft, _dateRight) === -sign;\n\n // Check for cases of one full calendar month\n if (\n (0, _index3.isLastDayOfMonth)((0, _index4.toDate)(dateLeft)) &&\n difference === 1 &&\n (0, _index.compareAsc)(dateLeft, _dateRight) === 1\n ) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.differenceInQuarters = differenceInQuarters;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./differenceInMonths.js\");\n\n/**\n * The {@link differenceInQuarters} function options.\n */\n\n/**\n * @name differenceInQuarters\n * @category Quarter Helpers\n * @summary Get the number of quarters between the given dates.\n *\n * @description\n * Get the number of quarters between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of full quarters\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))\n * //=> 2\n */\nfunction differenceInQuarters(dateLeft, dateRight, options) {\n const diff = (0, _index2.differenceInMonths)(dateLeft, dateRight) / 3;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInSeconds = differenceInSeconds;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./differenceInMilliseconds.js\");\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds(dateLeft, dateRight, options) {\n const diff =\n (0, _index2.differenceInMilliseconds)(dateLeft, dateRight) / 1000;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInWeeks = differenceInWeeks;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./differenceInDays.js\");\n\n/**\n * The {@link differenceInWeeks} function options.\n */\n\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between two dates. Fractional weeks are\n * truncated towards zero by default.\n *\n * One \"full week\" is the distance between a local time in one day to the same\n * local time 7 days earlier or later. A full week can sometimes be less than\n * or more than 7*24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 7*24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/(7*24))|0`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full weeks\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n *\n * @example\n * // How many full weeks are between\n * // 1 March 2020 0:00 and 6 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 8 weeks (54 days),\n * // even if DST starts and the period has\n * // only 54*24-1 hours.\n * const result = differenceInWeeks(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 6)\n * )\n * //=> 8\n */\nfunction differenceInWeeks(dateLeft, dateRight, options) {\n const diff = (0, _index2.differenceInDays)(dateLeft, dateRight) / 7;\n return (0, _index.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n","\"use strict\";\nexports.differenceInYears = differenceInYears;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./differenceInCalendarYears.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nfunction differenceInYears(dateLeft, dateRight) {\n const _dateLeft = (0, _index3.toDate)(dateLeft);\n const _dateRight = (0, _index3.toDate)(dateRight);\n\n const sign = (0, _index.compareAsc)(_dateLeft, _dateRight);\n const difference = Math.abs(\n (0, _index2.differenceInCalendarYears)(_dateLeft, _dateRight),\n );\n\n // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n _dateLeft.setFullYear(1584);\n _dateRight.setFullYear(1584);\n\n // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastYearNotFull =\n (0, _index.compareAsc)(_dateLeft, _dateRight) === -sign;\n const result = sign * (difference - +isLastYearNotFull);\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n","\"use strict\";\nexports.eachDayOfInterval = eachDayOfInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nfunction eachDayOfInterval(interval, options) {\n const startDate = (0, _index.toDate)(interval.start);\n const endDate = (0, _index.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index.toDate)(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachHourOfInterval = eachHourOfInterval;\nvar _index = require(\"./addHours.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * The {@link eachHourOfInterval} function options.\n */\n\n/**\n * @name eachHourOfInterval\n * @category Interval Helpers\n * @summary Return the array of hours within the specified time interval.\n *\n * @description\n * Return the array of hours within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of hours from the hour of the interval start to the hour of the interval end\n *\n * @example\n * // Each hour between 6 October 2014, 12:00 and 6 October 2014, 15:00\n * const result = eachHourOfInterval({\n * start: new Date(2014, 9, 6, 12),\n * end: new Date(2014, 9, 6, 15)\n * })\n * //=> [\n * // Mon Oct 06 2014 12:00:00,\n * // Mon Oct 06 2014 13:00:00,\n * // Mon Oct 06 2014 14:00:00,\n * // Mon Oct 06 2014 15:00:00\n * // ]\n */\nfunction eachHourOfInterval(interval, options) {\n const startDate = (0, _index2.toDate)(interval.start);\n const endDate = (0, _index2.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n let currentDate = reversed ? endDate : startDate;\n currentDate.setMinutes(0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index2.toDate)(currentDate));\n currentDate = (0, _index.addHours)(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachMinuteOfInterval = eachMinuteOfInterval;\nvar _index = require(\"./addMinutes.js\");\nvar _index2 = require(\"./startOfMinute.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link eachMinuteOfInterval} function options.\n */\n\n/**\n * @name eachMinuteOfInterval\n * @category Interval Helpers\n * @summary Return the array of minutes within the specified time interval.\n *\n * @description\n * Returns the array of minutes within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of minutes from the minute of the interval start to the minute of the interval end\n *\n * @example\n * // Each minute between 14 October 2020, 13:00 and 14 October 2020, 13:03\n * const result = eachMinuteOfInterval({\n * start: new Date(2014, 9, 14, 13),\n * end: new Date(2014, 9, 14, 13, 3)\n * })\n * //=> [\n * // Wed Oct 14 2014 13:00:00,\n * // Wed Oct 14 2014 13:01:00,\n * // Wed Oct 14 2014 13:02:00,\n * // Wed Oct 14 2014 13:03:00\n * // ]\n */\nfunction eachMinuteOfInterval(interval, options) {\n const startDate = (0, _index2.startOfMinute)(\n (0, _index3.toDate)(interval.start),\n );\n const endDate = (0, _index3.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n let currentDate = reversed ? endDate : startDate;\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index3.toDate)(currentDate));\n currentDate = (0, _index.addMinutes)(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachMonthOfInterval = eachMonthOfInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link eachMonthOfInterval} function options.\n */\n\n/**\n * @name eachMonthOfInterval\n * @category Interval Helpers\n * @summary Return the array of months within the specified time interval.\n *\n * @description\n * Return the array of months within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval\n *\n * @returns The array with starts of months from the month of the interval start to the month of the interval end\n *\n * @example\n * // Each month between 6 February 2014 and 10 August 2014:\n * const result = eachMonthOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Sat Feb 01 2014 00:00:00,\n * // Sat Mar 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Thu May 01 2014 00:00:00,\n * // Sun Jun 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // Fri Aug 01 2014 00:00:00\n * // ]\n */\nfunction eachMonthOfInterval(interval, options) {\n const startDate = (0, _index.toDate)(interval.start);\n const endDate = (0, _index.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setDate(1);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index.toDate)(currentDate));\n currentDate.setMonth(currentDate.getMonth() + step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachQuarterOfInterval = eachQuarterOfInterval;\nvar _index = require(\"./addQuarters.js\");\nvar _index2 = require(\"./startOfQuarter.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link eachQuarterOfInterval} function options.\n */\n\n/**\n * @name eachQuarterOfInterval\n * @category Interval Helpers\n * @summary Return the array of quarters within the specified time interval.\n *\n * @description\n * Return the array of quarters within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval\n *\n * @returns The array with starts of quarters from the quarter of the interval start to the quarter of the interval end\n *\n * @example\n * // Each quarter within interval 6 February 2014 - 10 August 2014:\n * const result = eachQuarterOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // ]\n */\nfunction eachQuarterOfInterval(interval, options) {\n const startDate = (0, _index3.toDate)(interval.start);\n const endDate = (0, _index3.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed\n ? +(0, _index2.startOfQuarter)(startDate)\n : +(0, _index2.startOfQuarter)(endDate);\n let currentDate = reversed\n ? (0, _index2.startOfQuarter)(endDate)\n : (0, _index2.startOfQuarter)(startDate);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index3.toDate)(currentDate));\n currentDate = (0, _index.addQuarters)(currentDate, step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachWeekOfInterval = eachWeekOfInterval;\nvar _index = require(\"./addWeeks.js\");\nvar _index2 = require(\"./startOfWeek.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link eachWeekOfInterval} function options.\n */\n\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of weeks from the week of the interval start to the week of the interval end\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * const result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\nfunction eachWeekOfInterval(interval, options) {\n const startDate = (0, _index3.toDate)(interval.start);\n const endDate = (0, _index3.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const startDateWeek = reversed\n ? (0, _index2.startOfWeek)(endDate, options)\n : (0, _index2.startOfWeek)(startDate, options);\n const endDateWeek = reversed\n ? (0, _index2.startOfWeek)(startDate, options)\n : (0, _index2.startOfWeek)(endDate, options);\n\n // Some timezones switch DST at midnight, making start of day unreliable in these timezones, 3pm is a safe bet\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n\n const endTime = +endDateWeek.getTime();\n let currentDate = startDateWeek;\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n currentDate.setHours(0);\n dates.push((0, _index3.toDate)(currentDate));\n currentDate = (0, _index.addWeeks)(currentDate, step);\n currentDate.setHours(15);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.eachWeekendOfInterval = eachWeekendOfInterval;\nvar _index = require(\"./eachDayOfInterval.js\");\nvar _index2 = require(\"./isWeekend.js\");\n\n/**\n * @name eachWeekendOfInterval\n * @category Interval Helpers\n * @summary List all the Saturdays and Sundays in the given date interval.\n *\n * @description\n * Get all the Saturdays and Sundays in the given date interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The given interval\n *\n * @returns An array containing all the Saturdays and Sundays\n *\n * @example\n * // Lists all Saturdays and Sundays in the given date interval\n * const result = eachWeekendOfInterval({\n * start: new Date(2018, 8, 17),\n * end: new Date(2018, 8, 30)\n * })\n * //=> [\n * // Sat Sep 22 2018 00:00:00,\n * // Sun Sep 23 2018 00:00:00,\n * // Sat Sep 29 2018 00:00:00,\n * // Sun Sep 30 2018 00:00:00\n * // ]\n */\nfunction eachWeekendOfInterval(interval) {\n const dateInterval = (0, _index.eachDayOfInterval)(interval);\n const weekends = [];\n let index = 0;\n while (index < dateInterval.length) {\n const date = dateInterval[index++];\n if ((0, _index2.isWeekend)(date)) weekends.push(date);\n }\n return weekends;\n}\n","\"use strict\";\nexports.eachWeekendOfMonth = eachWeekendOfMonth;\nvar _index = require(\"./eachWeekendOfInterval.js\");\nvar _index2 = require(\"./endOfMonth.js\");\nvar _index3 = require(\"./startOfMonth.js\");\n\n/**\n * @name eachWeekendOfMonth\n * @category Month Helpers\n * @summary List all the Saturdays and Sundays in the given month.\n *\n * @description\n * Get all the Saturdays and Sundays in the given month.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given month\n *\n * @returns An array containing all the Saturdays and Sundays\n *\n * @example\n * // Lists all Saturdays and Sundays in the given month\n * const result = eachWeekendOfMonth(new Date(2022, 1, 1))\n * //=> [\n * // Sat Feb 05 2022 00:00:00,\n * // Sun Feb 06 2022 00:00:00,\n * // Sat Feb 12 2022 00:00:00,\n * // Sun Feb 13 2022 00:00:00,\n * // Sat Feb 19 2022 00:00:00,\n * // Sun Feb 20 2022 00:00:00,\n * // Sat Feb 26 2022 00:00:00,\n * // Sun Feb 27 2022 00:00:00\n * // ]\n */\nfunction eachWeekendOfMonth(date) {\n const start = (0, _index3.startOfMonth)(date);\n const end = (0, _index2.endOfMonth)(date);\n return (0, _index.eachWeekendOfInterval)({ start, end });\n}\n","\"use strict\";\nexports.eachWeekendOfYear = eachWeekendOfYear;\nvar _index = require(\"./eachWeekendOfInterval.js\");\nvar _index2 = require(\"./endOfYear.js\");\nvar _index3 = require(\"./startOfYear.js\");\n\n/**\n * @name eachWeekendOfYear\n * @category Year Helpers\n * @summary List all the Saturdays and Sundays in the year.\n *\n * @description\n * Get all the Saturdays and Sundays in the year.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given year\n *\n * @returns An array containing all the Saturdays and Sundays\n *\n * @example\n * // Lists all Saturdays and Sundays in the year\n * const result = eachWeekendOfYear(new Date(2020, 1, 1))\n * //=> [\n * // Sat Jan 03 2020 00:00:00,\n * // Sun Jan 04 2020 00:00:00,\n * // ...\n * // Sun Dec 27 2020 00:00:00\n * // ]\n * ]\n */\nfunction eachWeekendOfYear(date) {\n const start = (0, _index3.startOfYear)(date);\n const end = (0, _index2.endOfYear)(date);\n return (0, _index.eachWeekendOfInterval)({ start, end });\n}\n","\"use strict\";\nexports.eachYearOfInterval = eachYearOfInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link eachYearOfInterval} function options.\n */\n\n/**\n * @name eachYearOfInterval\n * @category Interval Helpers\n * @summary Return the array of yearly timestamps within the specified time interval.\n *\n * @description\n * Return the array of yearly timestamps within the specified time interval.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval.\n *\n * @returns The array with starts of yearly timestamps from the month of the interval start to the month of the interval end\n *\n * @example\n * // Each year between 6 February 2014 and 10 August 2017:\n * const result = eachYearOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2017, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Thu Jan 01 2015 00:00:00,\n * // Fri Jan 01 2016 00:00:00,\n * // Sun Jan 01 2017 00:00:00\n * // ]\n */\nfunction eachYearOfInterval(interval, options) {\n const startDate = (0, _index.toDate)(interval.start);\n const endDate = (0, _index.toDate)(interval.end);\n\n let reversed = +startDate > +endDate;\n const endTime = reversed ? +startDate : +endDate;\n const currentDate = reversed ? endDate : startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setMonth(0, 1);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n dates.push((0, _index.toDate)(currentDate));\n currentDate.setFullYear(currentDate.getFullYear() + step);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n","\"use strict\";\nexports.endOfDay = endOfDay;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay(date) {\n const _date = (0, _index.toDate)(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfDecade = endOfDecade;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfDecade\n * @category Decade Helpers\n * @summary Return the end of a decade for the given date.\n *\n * @description\n * Return the end of a decade for the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a decade\n *\n * @example\n * // The end of a decade for 12 May 1984 00:00:00:\n * const result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))\n * //=> Dec 31 1989 23:59:59.999\n */\nfunction endOfDecade(date) {\n // TODO: Switch to more technical definition in of decades that start with 1\n // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking\n // change, so it can only be done in 4.0.\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n const decade = 9 + Math.floor(year / 10) * 10;\n _date.setFullYear(decade, 11, 31);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfHour = endOfHour;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfHour\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an hour\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * const result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\nfunction endOfHour(date) {\n const _date = (0, _index.toDate)(date);\n _date.setMinutes(59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfISOWeek = endOfISOWeek;\nvar _index = require(\"./endOfWeek.js\");\n\n/**\n * @name endOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an ISO week\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * const result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfISOWeek(date) {\n return (0, _index.endOfWeek)(date, { weekStartsOn: 1 });\n}\n","\"use strict\";\nexports.endOfISOWeekYear = endOfISOWeekYear;\nvar _index = require(\"./getISOWeekYear.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./constructFrom.js\");\n\n/**\n * @name endOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an ISO week-numbering year\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * const result = endOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\nfunction endOfISOWeekYear(date) {\n const year = (0, _index.getISOWeekYear)(date);\n const fourthOfJanuaryOfNextYear = (0, _index3.constructFrom)(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const _date = (0, _index2.startOfISOWeek)(fourthOfJanuaryOfNextYear);\n _date.setMilliseconds(_date.getMilliseconds() - 1);\n return _date;\n}\n","\"use strict\";\nexports.endOfMinute = endOfMinute;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfMinute\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a minute\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * const result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\nfunction endOfMinute(date) {\n const _date = (0, _index.toDate)(date);\n _date.setSeconds(59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfMonth = endOfMonth;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth(date) {\n const _date = (0, _index.toDate)(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfQuarter = endOfQuarter;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfQuarter(date) {\n const _date = (0, _index.toDate)(date);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfSecond = endOfSecond;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfSecond\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a second\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * const result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\nfunction endOfSecond(date) {\n const _date = (0, _index.toDate)(date);\n _date.setMilliseconds(999);\n return _date;\n}\n","\"use strict\";\nexports.endOfToday = endOfToday;\nvar _index = require(\"./endOfDay.js\");\n\n/**\n * @name endOfToday\n * @category Day Helpers\n * @summary Return the end of today.\n * @pure false\n *\n * @description\n * Return the end of today.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @returns The end of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = endOfToday()\n * //=> Mon Oct 6 2014 23:59:59.999\n */\nfunction endOfToday() {\n return (0, _index.endOfDay)(Date.now());\n}\n","\"use strict\";\nexports.endOfTomorrow = endOfTomorrow; /**\n * @name endOfTomorrow\n * @category Day Helpers\n * @summary Return the end of tomorrow.\n * @pure false\n *\n * @description\n * Return the end of tomorrow.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @returns The end of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * const result = endOfTomorrow()\n * //=> Tue Oct 7 2014 23:59:59.999\n */\nfunction endOfTomorrow() {\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n const day = now.getDate();\n\n const date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n","\"use strict\";\nexports.endOfWeek = endOfWeek;\nvar _index = require(\"./toDate.js\");\n\nvar _index2 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek(date, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = (0, _index.toDate)(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfYear = endOfYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nfunction endOfYear(date) {\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n","\"use strict\";\nexports.endOfYesterday = endOfYesterday; /**\n * @name endOfYesterday\n * @category Day Helpers\n * @summary Return the end of yesterday.\n * @pure false\n *\n * @description\n * Return the end of yesterday.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @returns The end of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * const result = endOfYesterday()\n * //=> Sun Oct 5 2014 23:59:59.999\n */\nfunction endOfYesterday() {\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n const day = now.getDate();\n\n const date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}\n","\"use strict\";\nexports.format = exports.formatDate = format;\nObject.defineProperty(exports, \"formatters\", {\n enumerable: true,\n get: function () {\n return _index3.formatters;\n },\n});\nObject.defineProperty(exports, \"longFormatters\", {\n enumerable: true,\n get: function () {\n return _index4.longFormatters;\n },\n});\nvar _index = require(\"./_lib/defaultLocale.js\");\nvar _index2 = require(\"./_lib/defaultOptions.js\");\nvar _index3 = require(\"./_lib/format/formatters.js\");\nvar _index4 = require(\"./_lib/format/longFormatters.js\");\nvar _index5 = require(\"./_lib/protectedTokens.js\");\n\nvar _index6 = require(\"./isValid.js\");\nvar _index7 = require(\"./toDate.js\");\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nfunction format(date, formatStr, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = (0, _index7.toDate)(date);\n\n if (!(0, _index6.isValid)(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = _index4.longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (_index3.formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n (0, _index5.isProtectedWeekYearToken)(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n (0, _index5.isProtectedDayOfYearToken)(token))\n ) {\n (0, _index5.warnOrThrowProtectedError)(token, formatStr, String(date));\n }\n\n const formatter = _index3.formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n","\"use strict\";\nexports.formatDistance = formatDistance;\nvar _index = require(\"./compareAsc.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./differenceInMonths.js\");\nvar _index4 = require(\"./differenceInSeconds.js\");\nvar _index5 = require(\"./toDate.js\");\n\nvar _index6 = require(\"./_lib/defaultLocale.js\");\nvar _index7 = require(\"./_lib/defaultOptions.js\");\nvar _index8 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\n\n/**\n * The {@link formatDistance} function options.\n */\n\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nfunction formatDistance(date, baseDate, options) {\n const defaultOptions = (0, _index7.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index6.defaultLocale;\n const minutesInAlmostTwoDays = 2520;\n\n const comparison = (0, _index.compareAsc)(date, baseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n let dateLeft;\n let dateRight;\n if (comparison > 0) {\n dateLeft = (0, _index5.toDate)(baseDate);\n dateRight = (0, _index5.toDate)(date);\n } else {\n dateLeft = (0, _index5.toDate)(date);\n dateRight = (0, _index5.toDate)(baseDate);\n }\n\n const seconds = (0, _index4.differenceInSeconds)(dateRight, dateLeft);\n const offsetInSeconds =\n ((0, _index8.getTimezoneOffsetInMilliseconds)(dateRight) -\n (0, _index8.getTimezoneOffsetInMilliseconds)(dateLeft)) /\n 1000;\n const minutes = Math.round((seconds - offsetInSeconds) / 60);\n let months;\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options?.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance(\"lessThanXSeconds\", 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance(\"lessThanXSeconds\", 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance(\"lessThanXSeconds\", 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance(\"halfAMinute\", 0, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance(\"aboutXHours\", 1, localizeOptions);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < _index2.minutesInDay) {\n const hours = Math.round(minutes / 60);\n return locale.formatDistance(\"aboutXHours\", hours, localizeOptions);\n\n // 1 day up to 1.75 days\n } else if (minutes < minutesInAlmostTwoDays) {\n return locale.formatDistance(\"xDays\", 1, localizeOptions);\n\n // 1.75 days up to 30 days\n } else if (minutes < _index2.minutesInMonth) {\n const days = Math.round(minutes / _index2.minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 month up to 2 months\n } else if (minutes < _index2.minutesInMonth * 2) {\n months = Math.round(minutes / _index2.minutesInMonth);\n return locale.formatDistance(\"aboutXMonths\", months, localizeOptions);\n }\n\n months = (0, _index3.differenceInMonths)(dateRight, dateLeft);\n\n // 2 months up to 12 months\n if (months < 12) {\n const nearestMonth = Math.round(minutes / _index2.minutesInMonth);\n return locale.formatDistance(\"xMonths\", nearestMonth, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const monthsSinceStartOfYear = months % 12;\n const years = Math.trunc(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance(\"aboutXYears\", years, localizeOptions);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance(\"overXYears\", years, localizeOptions);\n\n // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance(\"almostXYears\", years + 1, localizeOptions);\n }\n }\n}\n","\"use strict\";\nexports.formatDistanceStrict = formatDistanceStrict;\nvar _index = require(\"./_lib/defaultLocale.js\");\nvar _index2 = require(\"./_lib/defaultOptions.js\");\nvar _index3 = require(\"./_lib/getRoundingMethod.js\");\nvar _index4 = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\nvar _index5 = require(\"./compareAsc.js\");\nvar _index6 = require(\"./constants.js\");\n\nvar _index7 = require(\"./toDate.js\");\n\n/**\n * The {@link formatDistanceStrict} function options.\n */\n\n/**\n * The unit used to format the distance in {@link formatDistanceStrict}.\n */\n\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nfunction formatDistanceStrict(date, baseDate, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;\n\n const comparison = (0, _index5.compareAsc)(date, baseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n let dateLeft;\n let dateRight;\n if (comparison > 0) {\n dateLeft = (0, _index7.toDate)(baseDate);\n dateRight = (0, _index7.toDate)(date);\n } else {\n dateLeft = (0, _index7.toDate)(date);\n dateRight = (0, _index7.toDate)(baseDate);\n }\n\n const roundingMethod = (0, _index3.getRoundingMethod)(\n options?.roundingMethod ?? \"round\",\n );\n\n const milliseconds = dateRight.getTime() - dateLeft.getTime();\n const minutes = milliseconds / _index6.millisecondsInMinute;\n\n const timezoneOffset =\n (0, _index4.getTimezoneOffsetInMilliseconds)(dateRight) -\n (0, _index4.getTimezoneOffsetInMilliseconds)(dateLeft);\n\n // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n const dstNormalizedMinutes =\n (milliseconds - timezoneOffset) / _index6.millisecondsInMinute;\n\n const defaultUnit = options?.unit;\n let unit;\n if (!defaultUnit) {\n if (minutes < 1) {\n unit = \"second\";\n } else if (minutes < 60) {\n unit = \"minute\";\n } else if (minutes < _index6.minutesInDay) {\n unit = \"hour\";\n } else if (dstNormalizedMinutes < _index6.minutesInMonth) {\n unit = \"day\";\n } else if (dstNormalizedMinutes < _index6.minutesInYear) {\n unit = \"month\";\n } else {\n unit = \"year\";\n }\n } else {\n unit = defaultUnit;\n }\n\n // 0 up to 60 seconds\n if (unit === \"second\") {\n const seconds = roundingMethod(milliseconds / 1000);\n return locale.formatDistance(\"xSeconds\", seconds, localizeOptions);\n\n // 1 up to 60 mins\n } else if (unit === \"minute\") {\n const roundedMinutes = roundingMethod(minutes);\n return locale.formatDistance(\"xMinutes\", roundedMinutes, localizeOptions);\n\n // 1 up to 24 hours\n } else if (unit === \"hour\") {\n const hours = roundingMethod(minutes / 60);\n return locale.formatDistance(\"xHours\", hours, localizeOptions);\n\n // 1 up to 30 days\n } else if (unit === \"day\") {\n const days = roundingMethod(dstNormalizedMinutes / _index6.minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 up to 12 months\n } else if (unit === \"month\") {\n const months = roundingMethod(\n dstNormalizedMinutes / _index6.minutesInMonth,\n );\n return months === 12 && defaultUnit !== \"month\"\n ? locale.formatDistance(\"xYears\", 1, localizeOptions)\n : locale.formatDistance(\"xMonths\", months, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const years = roundingMethod(dstNormalizedMinutes / _index6.minutesInYear);\n return locale.formatDistance(\"xYears\", years, localizeOptions);\n }\n}\n","\"use strict\";\nexports.formatDistanceToNow = formatDistanceToNow;\nvar _index = require(\"./constructNow.js\");\n\nvar _index2 = require(\"./formatDistance.js\");\n\n/**\n * The {@link formatDistanceToNow} function options.\n */\n\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - The object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nfunction formatDistanceToNow(date, options) {\n return (0, _index2.formatDistance)(\n date,\n (0, _index.constructNow)(date),\n options,\n );\n}\n","\"use strict\";\nexports.formatDistanceToNowStrict = formatDistanceToNowStrict;\nvar _index = require(\"./formatDistanceStrict.js\");\nvar _index2 = require(\"./constructNow.js\");\n\n/**\n * The {@link formatDistanceToNowStrict} function options.\n */\n\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * const result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\nfunction formatDistanceToNowStrict(date, options) {\n return (0, _index.formatDistanceStrict)(\n date,\n (0, _index2.constructNow)(date),\n options,\n );\n}\n","\"use strict\";\nexports.formatDuration = formatDuration;\n\nvar _index = require(\"./_lib/defaultLocale.js\");\nvar _index2 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link formatDuration} function options.\n */\n\nconst defaultFormat = [\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n];\n\n/**\n * @name formatDuration\n * @category Common Helpers\n * @summary Formats a duration in human-readable format\n *\n * @description\n * Return human-readable duration string i.e. \"9 months 2 days\"\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param duration - The duration to format\n * @param options - An object with options.\n *\n * @returns The formatted date string\n *\n * @example\n * // Format full duration\n * formatDuration({\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> '2 years 9 months 1 week 7 days 5 hours 9 minutes 30 seconds'\n *\n * @example\n * // Format partial duration\n * formatDuration({ months: 9, days: 2 })\n * //=> '9 months 2 days'\n *\n * @example\n * // Customize the format\n * formatDuration(\n * {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * },\n * { format: ['months', 'weeks'] }\n * ) === '9 months 1 week'\n *\n * @example\n * // Customize the zeros presence\n * formatDuration({ years: 0, months: 9 })\n * //=> '9 months'\n * formatDuration({ years: 0, months: 9 }, { zero: true })\n * //=> '0 years 9 months'\n *\n * @example\n * // Customize the delimiter\n * formatDuration({ years: 2, months: 9, weeks: 3 }, { delimiter: ', ' })\n * //=> '2 years, 9 months, 3 weeks'\n */\nfunction formatDuration(duration, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index.defaultLocale;\n const format = options?.format ?? defaultFormat;\n const zero = options?.zero ?? false;\n const delimiter = options?.delimiter ?? \" \";\n\n if (!locale.formatDistance) {\n return \"\";\n }\n\n const result = format\n .reduce((acc, unit) => {\n const token = `x${unit.replace(/(^.)/, (m) => m.toUpperCase())}`;\n const value = duration[unit];\n if (value !== undefined && (zero || duration[unit])) {\n return acc.concat(locale.formatDistance(token, value));\n }\n return acc;\n }, [])\n .join(delimiter);\n\n return result;\n}\n","\"use strict\";\nexports.formatISO = formatISO;\nvar _index = require(\"./toDate.js\");\n\nvar _index2 = require(\"./_lib/addLeadingZeros.js\");\n\n/**\n * The {@link formatISO} function options.\n */\n\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string (in loca.l time zone)\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nfunction formatISO(date, options) {\n const _date = (0, _index.toDate)(date);\n\n if (isNaN(_date.getTime())) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n let tzOffset = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = (0, _index2.addLeadingZeros)(_date.getDate(), 2);\n const month = (0, _index2.addLeadingZeros)(_date.getMonth() + 1, 2);\n const year = (0, _index2.addLeadingZeros)(_date.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n // Add the timezone.\n const offset = _date.getTimezoneOffset();\n\n if (offset !== 0) {\n const absoluteOffset = Math.abs(offset);\n const hourOffset = (0, _index2.addLeadingZeros)(\n Math.trunc(absoluteOffset / 60),\n 2,\n );\n const minuteOffset = (0, _index2.addLeadingZeros)(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = offset < 0 ? \"+\" : \"-\";\n\n tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n tzOffset = \"Z\";\n }\n\n const hour = (0, _index2.addLeadingZeros)(_date.getHours(), 2);\n const minute = (0, _index2.addLeadingZeros)(_date.getMinutes(), 2);\n const second = (0, _index2.addLeadingZeros)(_date.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n const separator = result === \"\" ? \"\" : \"T\";\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n const time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${time}${tzOffset}`;\n }\n\n return result;\n}\n","\"use strict\";\nexports.formatISO9075 = formatISO9075;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\n\nvar _index3 = require(\"./_lib/addLeadingZeros.js\");\n\n/**\n * The {@link formatISO9075} function options.\n */\n\n/**\n * @name formatISO9075\n * @category Common Helpers\n * @summary Format the date according to the ISO 9075 standard (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_get-format).\n *\n * @description\n * Return the formatted date string in ISO 9075 format. Options may be passed to control the parts and notations of the date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18 19:00:52'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075, short format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918 190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, date only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, time only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52'\n */\nfunction formatISO9075(date, options) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = (0, _index3.addLeadingZeros)(_date.getDate(), 2);\n const month = (0, _index3.addLeadingZeros)(_date.getMonth() + 1, 2);\n const year = (0, _index3.addLeadingZeros)(_date.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n const hour = (0, _index3.addLeadingZeros)(_date.getHours(), 2);\n const minute = (0, _index3.addLeadingZeros)(_date.getMinutes(), 2);\n const second = (0, _index3.addLeadingZeros)(_date.getSeconds(), 2);\n\n // If there's also date, separate it with time with a space\n const separator = result === \"\" ? \"\" : \" \";\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${hour}${timeDelimiter}${minute}${timeDelimiter}${second}`;\n }\n\n return result;\n}\n","\"use strict\";\nexports.formatISODuration = formatISODuration;\n\n/**\n * @name formatISODuration\n * @category Common Helpers\n * @summary Format a duration object according as ISO 8601 duration string\n *\n * @description\n * Format a duration object according to the ISO 8601 duration standard (https://www.digi.com/resources/documentation/digidocs//90001488-13/reference/r_iso_8601_duration_format.htm)\n *\n * @param duration - The duration to format\n *\n * @returns The ISO 8601 duration string\n *\n * @example\n * // Format the given duration as ISO 8601 string\n * const result = formatISODuration({\n * years: 39,\n * months: 2,\n * days: 20,\n * hours: 7,\n * minutes: 5,\n * seconds: 0\n * })\n * //=> 'P39Y2M20DT0H0M0S'\n */\nfunction formatISODuration(duration) {\n const {\n years = 0,\n months = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n return `P${years}Y${months}M${days}DT${hours}H${minutes}M${seconds}S`;\n}\n","\"use strict\";\nexports.formatRFC3339 = formatRFC3339;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\nvar _index3 = require(\"./_lib/addLeadingZeros.js\");\n\n/**\n * The {@link formatRFC3339} function options.\n */\n\n/**\n * @name formatRFC3339\n * @category Common Helpers\n * @summary Format the date according to the RFC 3339 standard (https://tools.ietf.org/html/rfc3339#section-5.6).\n *\n * @description\n * Return the formatted date string in RFC 3339 format. Options may be passed to control the parts and notations of the date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in RFC 3339 format:\n * formatRFC3339(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in RFC 3339 format, 3 digits of second fraction\n * formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), {\n * fractionDigits: 3\n * })\n * //=> '2019-09-18T19:00:52.234Z'\n */\nfunction formatRFC3339(date, options) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const fractionDigits = options?.fractionDigits ?? 0;\n\n const day = (0, _index3.addLeadingZeros)(_date.getDate(), 2);\n const month = (0, _index3.addLeadingZeros)(_date.getMonth() + 1, 2);\n const year = _date.getFullYear();\n\n const hour = (0, _index3.addLeadingZeros)(_date.getHours(), 2);\n const minute = (0, _index3.addLeadingZeros)(_date.getMinutes(), 2);\n const second = (0, _index3.addLeadingZeros)(_date.getSeconds(), 2);\n\n let fractionalSecond = \"\";\n if (fractionDigits > 0) {\n const milliseconds = _date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, fractionDigits - 3),\n );\n fractionalSecond =\n \".\" + (0, _index3.addLeadingZeros)(fractionalSeconds, fractionDigits);\n }\n\n let offset = \"\";\n const tzOffset = _date.getTimezoneOffset();\n\n if (tzOffset !== 0) {\n const absoluteOffset = Math.abs(tzOffset);\n const hourOffset = (0, _index3.addLeadingZeros)(\n Math.trunc(absoluteOffset / 60),\n 2,\n );\n const minuteOffset = (0, _index3.addLeadingZeros)(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = tzOffset < 0 ? \"+\" : \"-\";\n\n offset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n offset = \"Z\";\n }\n\n return `${year}-${month}-${day}T${hour}:${minute}:${second}${fractionalSecond}${offset}`;\n}\n","\"use strict\";\nexports.formatRFC7231 = formatRFC7231;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\nvar _index3 = require(\"./_lib/addLeadingZeros.js\");\n\nconst days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\nconst months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\n/**\n * @name formatRFC7231\n * @category Common Helpers\n * @summary Format the date according to the RFC 7231 standard (https://tools.ietf.org/html/rfc7231#section-7.1.1.1).\n *\n * @description\n * Return the formatted date string in RFC 7231 format.\n * The result will always be in UTC timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in RFC 7231 format:\n * const result = formatRFC7231(new Date(2019, 8, 18, 19, 0, 52))\n * //=> 'Wed, 18 Sep 2019 19:00:52 GMT'\n */\nfunction formatRFC7231(date) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const dayName = days[_date.getUTCDay()];\n const dayOfMonth = (0, _index3.addLeadingZeros)(_date.getUTCDate(), 2);\n const monthName = months[_date.getUTCMonth()];\n const year = _date.getUTCFullYear();\n\n const hour = (0, _index3.addLeadingZeros)(_date.getUTCHours(), 2);\n const minute = (0, _index3.addLeadingZeros)(_date.getUTCMinutes(), 2);\n const second = (0, _index3.addLeadingZeros)(_date.getUTCSeconds(), 2);\n\n // Result variables.\n return `${dayName}, ${dayOfMonth} ${monthName} ${year} ${hour}:${minute}:${second} GMT`;\n}\n","\"use strict\";\nexports.formatRelative = formatRelative;\nvar _index = require(\"./differenceInCalendarDays.js\");\nvar _index2 = require(\"./format.js\");\n\nvar _index3 = require(\"./toDate.js\");\n\nvar _index4 = require(\"./_lib/defaultLocale.js\");\nvar _index5 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link formatRelative} function options.\n */\n\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result |\n * |---------------------------|---------------------------|\n * | Previous 6 days | last Sunday at 04:30 AM |\n * | Last day | yesterday at 04:30 AM |\n * | Same day | today at 04:30 AM |\n * | Next day | tomorrow at 04:30 AM |\n * | Next 6 days | Sunday at 04:30 AM |\n * | Other | 12/31/2017 |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to format\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The date in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws `options.locale` must contain `formatRelative` property\n *\n * @example\n * // Represent the date of 6 days ago in words relative to the given base date. In this example, today is Wednesday\n * const result = formatRelative(subDays(new Date(), 6), new Date())\n * //=> \"last Thursday at 12:45 AM\"\n */\nfunction formatRelative(date, baseDate, options) {\n const _date = (0, _index3.toDate)(date);\n const _baseDate = (0, _index3.toDate)(baseDate);\n\n const defaultOptions = (0, _index5.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index4.defaultLocale;\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const diff = (0, _index.differenceInCalendarDays)(_date, _baseDate);\n\n if (isNaN(diff)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let token;\n if (diff < -6) {\n token = \"other\";\n } else if (diff < -1) {\n token = \"lastWeek\";\n } else if (diff < 0) {\n token = \"yesterday\";\n } else if (diff < 1) {\n token = \"today\";\n } else if (diff < 2) {\n token = \"tomorrow\";\n } else if (diff < 7) {\n token = \"nextWeek\";\n } else {\n token = \"other\";\n }\n\n const formatStr = locale.formatRelative(token, _date, _baseDate, {\n locale,\n weekStartsOn,\n });\n return (0, _index2.format)(_date, formatStr, { locale, weekStartsOn });\n}\n","\"use strict\";\nexports.fromUnixTime = fromUnixTime;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name fromUnixTime\n * @category Timestamp Helpers\n * @summary Create a date from a Unix timestamp.\n *\n * @description\n * Create a date from a Unix timestamp (in seconds). Decimal values will be discarded.\n *\n * @param unixTime - The given Unix timestamp (in seconds)\n *\n * @returns The date\n *\n * @example\n * // Create the date 29 February 2012 11:45:05:\n * const result = fromUnixTime(1330515905)\n * //=> Wed Feb 29 2012 11:45:05\n */\nfunction fromUnixTime(unixTime) {\n return (0, _index.toDate)(unixTime * 1000);\n}\n","\"use strict\";\nexports.getDate = getDate;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nfunction getDate(date) {\n const _date = (0, _index.toDate)(date);\n const dayOfMonth = _date.getDate();\n return dayOfMonth;\n}\n","\"use strict\";\nexports.getDay = getDay;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nfunction getDay(date) {\n const _date = (0, _index.toDate)(date);\n const day = _date.getDay();\n return day;\n}\n","\"use strict\";\nexports.getDayOfYear = getDayOfYear;\nvar _index = require(\"./differenceInCalendarDays.js\");\nvar _index2 = require(\"./startOfYear.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear(date) {\n const _date = (0, _index3.toDate)(date);\n const diff = (0, _index.differenceInCalendarDays)(\n _date,\n (0, _index2.startOfYear)(_date),\n );\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n","\"use strict\";\nexports.getDaysInMonth = getDaysInMonth;\nvar _index = require(\"./toDate.js\");\nvar _index2 = require(\"./constructFrom.js\");\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nfunction getDaysInMonth(date) {\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = (0, _index2.constructFrom)(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n","\"use strict\";\nexports.getDaysInYear = getDaysInYear;\nvar _index = require(\"./isLeapYear.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name getDaysInYear\n * @category Year Helpers\n * @summary Get the number of days in a year of the given date.\n *\n * @description\n * Get the number of days in a year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a year\n *\n * @example\n * // How many days are in 2012?\n * const result = getDaysInYear(new Date(2012, 0, 1))\n * //=> 366\n */\nfunction getDaysInYear(date) {\n const _date = (0, _index2.toDate)(date);\n\n if (String(new Date(_date)) === \"Invalid Date\") {\n return NaN;\n }\n\n return (0, _index.isLeapYear)(_date) ? 366 : 365;\n}\n","\"use strict\";\nexports.getDecade = getDecade;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getDecade\n * @category Decade Helpers\n * @summary Get the decade of the given date.\n *\n * @description\n * Get the decade of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The year of decade\n *\n * @example\n * // Which decade belongs 27 November 1942?\n * const result = getDecade(new Date(1942, 10, 27))\n * //=> 1940\n */\nfunction getDecade(date) {\n // TODO: Switch to more technical definition in of decades that start with 1\n // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking\n // change, so it can only be done in 4.0.\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n const decade = Math.floor(year / 10) * 10;\n return decade;\n}\n","\"use strict\";\nexports.getDefaultOptions = getDefaultOptions;\n\nvar _index = require(\"./_lib/defaultOptions.js\");\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nfunction getDefaultOptions() {\n return Object.assign({}, (0, _index.getDefaultOptions)());\n}\n","\"use strict\";\nexports.getHours = getHours;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nfunction getHours(date) {\n const _date = (0, _index.toDate)(date);\n const hours = _date.getHours();\n return hours;\n}\n","\"use strict\";\nexports.getISODay = getISODay;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nfunction getISODay(date) {\n const _date = (0, _index.toDate)(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n","\"use strict\";\nexports.getISOWeek = getISOWeek;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./startOfISOWeekYear.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek(date) {\n const _date = (0, _index4.toDate)(date);\n const diff =\n +(0, _index2.startOfISOWeek)(_date) -\n +(0, _index3.startOfISOWeekYear)(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / _index.millisecondsInWeek) + 1;\n}\n","\"use strict\";\nexports.getISOWeekYear = getISOWeekYear;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOWeekYear(date) {\n const _date = (0, _index3.toDate)(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = (0, _index.constructFrom)(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = (0, _index2.startOfISOWeek)(\n fourthOfJanuaryOfNextYear,\n );\n\n const fourthOfJanuaryOfThisYear = (0, _index.constructFrom)(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = (0, _index2.startOfISOWeek)(\n fourthOfJanuaryOfThisYear,\n );\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n","\"use strict\";\nexports.getISOWeeksInYear = getISOWeeksInYear;\nvar _index = require(\"./addWeeks.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./startOfISOWeekYear.js\");\n\n/**\n * @name getISOWeeksInYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * @description\n * Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of ISO weeks in a year\n *\n * @example\n * // How many weeks are in ISO week-numbering year 2015?\n * const result = getISOWeeksInYear(new Date(2015, 1, 11))\n * //=> 53\n */\nfunction getISOWeeksInYear(date) {\n const thisYear = (0, _index3.startOfISOWeekYear)(date);\n const nextYear = (0, _index3.startOfISOWeekYear)(\n (0, _index.addWeeks)(thisYear, 60),\n );\n const diff = +nextYear - +thisYear;\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / _index2.millisecondsInWeek);\n}\n","\"use strict\";\nexports.getMilliseconds = getMilliseconds;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getMilliseconds\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The milliseconds\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * const result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\nfunction getMilliseconds(date) {\n const _date = (0, _index.toDate)(date);\n const milliseconds = _date.getMilliseconds();\n return milliseconds;\n}\n","\"use strict\";\nexports.getMinutes = getMinutes;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nfunction getMinutes(date) {\n const _date = (0, _index.toDate)(date);\n const minutes = _date.getMinutes();\n return minutes;\n}\n","\"use strict\";\nexports.getMonth = getMonth;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nfunction getMonth(date) {\n const _date = (0, _index.toDate)(date);\n const month = _date.getMonth();\n return month;\n}\n","\"use strict\";\nexports.getOverlappingDaysInIntervals = getOverlappingDaysInIntervals;\nvar _index = require(\"./_lib/getTimezoneOffsetInMilliseconds.js\");\nvar _index2 = require(\"./constants.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name getOverlappingDaysInIntervals\n * @category Interval Helpers\n * @summary Get the number of days that overlap in two time intervals\n *\n * @description\n * Get the number of days that overlap in two time intervals. It uses the time\n * between dates to calculate the number of days, rounding it up to include\n * partial days.\n *\n * Two equal 0-length intervals will result in 0. Two equal 1ms intervals will\n * result in 1.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param intervalLeft - The first interval to compare.\n * @param intervalRight - The second interval to compare.\n *\n * @returns The number of days that overlap in two time intervals\n *\n * @example\n * // For overlapping time intervals adds 1 for each started overlapping day:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping time intervals returns 0:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> 0\n */\n\nfunction getOverlappingDaysInIntervals(intervalLeft, intervalRight) {\n const [leftStart, leftEnd] = [\n +(0, _index3.toDate)(intervalLeft.start),\n +(0, _index3.toDate)(intervalLeft.end),\n ].sort((a, b) => a - b);\n const [rightStart, rightEnd] = [\n +(0, _index3.toDate)(intervalRight.start),\n +(0, _index3.toDate)(intervalRight.end),\n ].sort((a, b) => a - b);\n\n // Prevent NaN result if intervals don't overlap at all.\n const isOverlapping = leftStart < rightEnd && rightStart < leftEnd;\n if (!isOverlapping) return 0;\n\n // Remove the timezone offset to negate the DST effect on calculations.\n const overlapLeft = rightStart < leftStart ? leftStart : rightStart;\n const left =\n overlapLeft - (0, _index.getTimezoneOffsetInMilliseconds)(overlapLeft);\n const overlapRight = rightEnd > leftEnd ? leftEnd : rightEnd;\n const right =\n overlapRight - (0, _index.getTimezoneOffsetInMilliseconds)(overlapRight);\n\n // Ceil the number to include partial days too.\n return Math.ceil((right - left) / _index2.millisecondsInDay);\n}\n","\"use strict\";\nexports.getQuarter = getQuarter;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The quarter\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\nfunction getQuarter(date) {\n const _date = (0, _index.toDate)(date);\n const quarter = Math.trunc(_date.getMonth() / 3) + 1;\n return quarter;\n}\n","\"use strict\";\nexports.getSeconds = getSeconds;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The seconds\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\nfunction getSeconds(date) {\n const _date = (0, _index.toDate)(date);\n const seconds = _date.getSeconds();\n return seconds;\n}\n","\"use strict\";\nexports.getTime = getTime;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nfunction getTime(date) {\n const _date = (0, _index.toDate)(date);\n const timestamp = _date.getTime();\n return timestamp;\n}\n","\"use strict\";\nexports.getUnixTime = getUnixTime;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getUnixTime\n * @category Timestamp Helpers\n * @summary Get the seconds timestamp of the given date.\n *\n * @description\n * Get the seconds timestamp of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05 CET:\n * const result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 1330512305\n */\nfunction getUnixTime(date) {\n return Math.trunc(+(0, _index.toDate)(date) / 1000);\n}\n","\"use strict\";\nexports.getWeek = getWeek;\nvar _index = require(\"./constants.js\");\nvar _index2 = require(\"./startOfWeek.js\");\nvar _index3 = require(\"./startOfWeekYear.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nfunction getWeek(date, options) {\n const _date = (0, _index4.toDate)(date);\n const diff =\n +(0, _index2.startOfWeek)(_date, options) -\n +(0, _index3.startOfWeekYear)(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / _index.millisecondsInWeek) + 1;\n}\n","\"use strict\";\nexports.getWeekOfMonth = getWeekOfMonth;\nvar _index = require(\"./getDate.js\");\nvar _index2 = require(\"./getDay.js\");\nvar _index3 = require(\"./startOfMonth.js\");\n\nvar _index4 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link getWeekOfMonth} function options.\n */\n\n/**\n * @name getWeekOfMonth\n * @category Week Helpers\n * @summary Get the week of the month of the given date.\n *\n * @description\n * Get the week of the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The week of month\n *\n * @example\n * // Which week of the month is 9 November 2017?\n * const result = getWeekOfMonth(new Date(2017, 10, 9))\n * //=> 2\n */\nfunction getWeekOfMonth(date, options) {\n const defaultOptions = (0, _index4.getDefaultOptions)();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const currentDayOfMonth = (0, _index.getDate)(date);\n if (isNaN(currentDayOfMonth)) return NaN;\n\n const startWeekDay = (0, _index2.getDay)((0, _index3.startOfMonth)(date));\n\n let lastDayOfFirstWeek = weekStartsOn - startWeekDay;\n if (lastDayOfFirstWeek <= 0) lastDayOfFirstWeek += 7;\n\n const remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek;\n return Math.ceil(remainingDaysAfterFirstWeek / 7) + 1;\n}\n","\"use strict\";\nexports.getWeekYear = getWeekYear;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./startOfWeek.js\");\nvar _index3 = require(\"./toDate.js\");\n\nvar _index4 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nfunction getWeekYear(date, options) {\n const _date = (0, _index3.toDate)(date);\n const year = _date.getFullYear();\n\n const defaultOptions = (0, _index4.getDefaultOptions)();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = (0, _index.constructFrom)(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = (0, _index2.startOfWeek)(\n firstWeekOfNextYear,\n options,\n );\n\n const firstWeekOfThisYear = (0, _index.constructFrom)(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = (0, _index2.startOfWeek)(\n firstWeekOfThisYear,\n options,\n );\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n","\"use strict\";\nexports.getWeeksInMonth = getWeeksInMonth;\nvar _index = require(\"./differenceInCalendarWeeks.js\");\nvar _index2 = require(\"./lastDayOfMonth.js\");\nvar _index3 = require(\"./startOfMonth.js\");\n\n/**\n * The {@link getWeeksInMonth} function options.\n */\n\n/**\n * @name getWeeksInMonth\n * @category Week Helpers\n * @summary Get the number of calendar weeks a month spans.\n *\n * @description\n * Get the number of calendar weeks the month in the given date spans.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The number of calendar weeks\n *\n * @example\n * // How many calendar weeks does February 2015 span?\n * const result = getWeeksInMonth(new Date(2015, 1, 8))\n * //=> 4\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks does July 2017 span?\n * const result = getWeeksInMonth(new Date(2017, 6, 5), { weekStartsOn: 1 })\n * //=> 6\n */\nfunction getWeeksInMonth(date, options) {\n return (\n (0, _index.differenceInCalendarWeeks)(\n (0, _index2.lastDayOfMonth)(date),\n (0, _index3.startOfMonth)(date),\n options,\n ) + 1\n );\n}\n","\"use strict\";\nexports.getYear = getYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nfunction getYear(date) {\n return (0, _index.toDate)(date).getFullYear();\n}\n","\"use strict\";\nexports.hoursToMilliseconds = hoursToMilliseconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name hoursToMilliseconds\n * @category Conversion Helpers\n * @summary Convert hours to milliseconds.\n *\n * @description\n * Convert a number of hours to a full number of milliseconds.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param hours - number of hours to be converted\n *\n * @returns The number of hours converted to milliseconds\n *\n * @example\n * // Convert 2 hours to milliseconds:\n * const result = hoursToMilliseconds(2)\n * //=> 7200000\n */\nfunction hoursToMilliseconds(hours) {\n return Math.trunc(hours * _index.millisecondsInHour);\n}\n","\"use strict\";\nexports.hoursToMinutes = hoursToMinutes;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name hoursToMinutes\n * @category Conversion Helpers\n * @summary Convert hours to minutes.\n *\n * @description\n * Convert a number of hours to a full number of minutes.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param hours - number of hours to be converted\n *\n * @returns The number of hours converted in minutes\n *\n * @example\n * // Convert 2 hours to minutes:\n * const result = hoursToMinutes(2)\n * //=> 120\n */\nfunction hoursToMinutes(hours) {\n return Math.trunc(hours * _index.minutesInHour);\n}\n","\"use strict\";\nexports.hoursToSeconds = hoursToSeconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name hoursToSeconds\n * @category Conversion Helpers\n * @summary Convert hours to seconds.\n *\n * @description\n * Convert a number of hours to a full number of seconds.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param hours - The number of hours to be converted\n *\n * @returns The number of hours converted in seconds\n *\n * @example\n * // Convert 2 hours to seconds:\n * const result = hoursToSeconds(2)\n * //=> 7200\n */\nfunction hoursToSeconds(hours) {\n return Math.trunc(hours * _index.secondsInHour);\n}\n","\"use strict\";\n\nvar _index = require(\"./add.js\");\nObject.keys(_index).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index[key];\n },\n });\n});\nvar _index2 = require(\"./addBusinessDays.js\");\nObject.keys(_index2).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index2[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index2[key];\n },\n });\n});\nvar _index3 = require(\"./addDays.js\");\nObject.keys(_index3).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index3[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index3[key];\n },\n });\n});\nvar _index4 = require(\"./addHours.js\");\nObject.keys(_index4).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index4[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index4[key];\n },\n });\n});\nvar _index5 = require(\"./addISOWeekYears.js\");\nObject.keys(_index5).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index5[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index5[key];\n },\n });\n});\nvar _index6 = require(\"./addMilliseconds.js\");\nObject.keys(_index6).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index6[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index6[key];\n },\n });\n});\nvar _index7 = require(\"./addMinutes.js\");\nObject.keys(_index7).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index7[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index7[key];\n },\n });\n});\nvar _index8 = require(\"./addMonths.js\");\nObject.keys(_index8).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index8[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index8[key];\n },\n });\n});\nvar _index9 = require(\"./addQuarters.js\");\nObject.keys(_index9).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index9[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index9[key];\n },\n });\n});\nvar _index10 = require(\"./addSeconds.js\");\nObject.keys(_index10).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index10[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index10[key];\n },\n });\n});\nvar _index11 = require(\"./addWeeks.js\");\nObject.keys(_index11).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index11[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index11[key];\n },\n });\n});\nvar _index12 = require(\"./addYears.js\");\nObject.keys(_index12).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index12[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index12[key];\n },\n });\n});\nvar _index13 = require(\"./areIntervalsOverlapping.js\");\nObject.keys(_index13).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index13[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index13[key];\n },\n });\n});\nvar _index14 = require(\"./clamp.js\");\nObject.keys(_index14).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index14[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index14[key];\n },\n });\n});\nvar _index15 = require(\"./closestIndexTo.js\");\nObject.keys(_index15).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index15[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index15[key];\n },\n });\n});\nvar _index16 = require(\"./closestTo.js\");\nObject.keys(_index16).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index16[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index16[key];\n },\n });\n});\nvar _index17 = require(\"./compareAsc.js\");\nObject.keys(_index17).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index17[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index17[key];\n },\n });\n});\nvar _index18 = require(\"./compareDesc.js\");\nObject.keys(_index18).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index18[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index18[key];\n },\n });\n});\nvar _index19 = require(\"./constructFrom.js\");\nObject.keys(_index19).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index19[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index19[key];\n },\n });\n});\nvar _index20 = require(\"./constructNow.js\");\nObject.keys(_index20).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index20[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index20[key];\n },\n });\n});\nvar _index21 = require(\"./daysToWeeks.js\");\nObject.keys(_index21).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index21[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index21[key];\n },\n });\n});\nvar _index22 = require(\"./differenceInBusinessDays.js\");\nObject.keys(_index22).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index22[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index22[key];\n },\n });\n});\nvar _index23 = require(\"./differenceInCalendarDays.js\");\nObject.keys(_index23).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index23[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index23[key];\n },\n });\n});\nvar _index24 = require(\"./differenceInCalendarISOWeekYears.js\");\nObject.keys(_index24).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index24[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index24[key];\n },\n });\n});\nvar _index25 = require(\"./differenceInCalendarISOWeeks.js\");\nObject.keys(_index25).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index25[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index25[key];\n },\n });\n});\nvar _index26 = require(\"./differenceInCalendarMonths.js\");\nObject.keys(_index26).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index26[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index26[key];\n },\n });\n});\nvar _index27 = require(\"./differenceInCalendarQuarters.js\");\nObject.keys(_index27).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index27[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index27[key];\n },\n });\n});\nvar _index28 = require(\"./differenceInCalendarWeeks.js\");\nObject.keys(_index28).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index28[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index28[key];\n },\n });\n});\nvar _index29 = require(\"./differenceInCalendarYears.js\");\nObject.keys(_index29).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index29[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index29[key];\n },\n });\n});\nvar _index30 = require(\"./differenceInDays.js\");\nObject.keys(_index30).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index30[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index30[key];\n },\n });\n});\nvar _index31 = require(\"./differenceInHours.js\");\nObject.keys(_index31).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index31[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index31[key];\n },\n });\n});\nvar _index32 = require(\"./differenceInISOWeekYears.js\");\nObject.keys(_index32).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index32[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index32[key];\n },\n });\n});\nvar _index33 = require(\"./differenceInMilliseconds.js\");\nObject.keys(_index33).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index33[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index33[key];\n },\n });\n});\nvar _index34 = require(\"./differenceInMinutes.js\");\nObject.keys(_index34).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index34[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index34[key];\n },\n });\n});\nvar _index35 = require(\"./differenceInMonths.js\");\nObject.keys(_index35).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index35[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index35[key];\n },\n });\n});\nvar _index36 = require(\"./differenceInQuarters.js\");\nObject.keys(_index36).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index36[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index36[key];\n },\n });\n});\nvar _index37 = require(\"./differenceInSeconds.js\");\nObject.keys(_index37).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index37[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index37[key];\n },\n });\n});\nvar _index38 = require(\"./differenceInWeeks.js\");\nObject.keys(_index38).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index38[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index38[key];\n },\n });\n});\nvar _index39 = require(\"./differenceInYears.js\");\nObject.keys(_index39).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index39[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index39[key];\n },\n });\n});\nvar _index40 = require(\"./eachDayOfInterval.js\");\nObject.keys(_index40).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index40[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index40[key];\n },\n });\n});\nvar _index41 = require(\"./eachHourOfInterval.js\");\nObject.keys(_index41).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index41[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index41[key];\n },\n });\n});\nvar _index42 = require(\"./eachMinuteOfInterval.js\");\nObject.keys(_index42).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index42[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index42[key];\n },\n });\n});\nvar _index43 = require(\"./eachMonthOfInterval.js\");\nObject.keys(_index43).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index43[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index43[key];\n },\n });\n});\nvar _index44 = require(\"./eachQuarterOfInterval.js\");\nObject.keys(_index44).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index44[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index44[key];\n },\n });\n});\nvar _index45 = require(\"./eachWeekOfInterval.js\");\nObject.keys(_index45).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index45[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index45[key];\n },\n });\n});\nvar _index46 = require(\"./eachWeekendOfInterval.js\");\nObject.keys(_index46).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index46[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index46[key];\n },\n });\n});\nvar _index47 = require(\"./eachWeekendOfMonth.js\");\nObject.keys(_index47).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index47[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index47[key];\n },\n });\n});\nvar _index48 = require(\"./eachWeekendOfYear.js\");\nObject.keys(_index48).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index48[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index48[key];\n },\n });\n});\nvar _index49 = require(\"./eachYearOfInterval.js\");\nObject.keys(_index49).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index49[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index49[key];\n },\n });\n});\nvar _index50 = require(\"./endOfDay.js\");\nObject.keys(_index50).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index50[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index50[key];\n },\n });\n});\nvar _index51 = require(\"./endOfDecade.js\");\nObject.keys(_index51).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index51[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index51[key];\n },\n });\n});\nvar _index52 = require(\"./endOfHour.js\");\nObject.keys(_index52).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index52[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index52[key];\n },\n });\n});\nvar _index53 = require(\"./endOfISOWeek.js\");\nObject.keys(_index53).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index53[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index53[key];\n },\n });\n});\nvar _index54 = require(\"./endOfISOWeekYear.js\");\nObject.keys(_index54).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index54[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index54[key];\n },\n });\n});\nvar _index55 = require(\"./endOfMinute.js\");\nObject.keys(_index55).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index55[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index55[key];\n },\n });\n});\nvar _index56 = require(\"./endOfMonth.js\");\nObject.keys(_index56).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index56[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index56[key];\n },\n });\n});\nvar _index57 = require(\"./endOfQuarter.js\");\nObject.keys(_index57).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index57[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index57[key];\n },\n });\n});\nvar _index58 = require(\"./endOfSecond.js\");\nObject.keys(_index58).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index58[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index58[key];\n },\n });\n});\nvar _index59 = require(\"./endOfToday.js\");\nObject.keys(_index59).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index59[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index59[key];\n },\n });\n});\nvar _index60 = require(\"./endOfTomorrow.js\");\nObject.keys(_index60).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index60[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index60[key];\n },\n });\n});\nvar _index61 = require(\"./endOfWeek.js\");\nObject.keys(_index61).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index61[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index61[key];\n },\n });\n});\nvar _index62 = require(\"./endOfYear.js\");\nObject.keys(_index62).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index62[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index62[key];\n },\n });\n});\nvar _index63 = require(\"./endOfYesterday.js\");\nObject.keys(_index63).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index63[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index63[key];\n },\n });\n});\nvar _index64 = require(\"./format.js\");\nObject.keys(_index64).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index64[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index64[key];\n },\n });\n});\nvar _index65 = require(\"./formatDistance.js\");\nObject.keys(_index65).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index65[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index65[key];\n },\n });\n});\nvar _index66 = require(\"./formatDistanceStrict.js\");\nObject.keys(_index66).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index66[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index66[key];\n },\n });\n});\nvar _index67 = require(\"./formatDistanceToNow.js\");\nObject.keys(_index67).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index67[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index67[key];\n },\n });\n});\nvar _index68 = require(\"./formatDistanceToNowStrict.js\");\nObject.keys(_index68).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index68[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index68[key];\n },\n });\n});\nvar _index69 = require(\"./formatDuration.js\");\nObject.keys(_index69).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index69[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index69[key];\n },\n });\n});\nvar _index70 = require(\"./formatISO.js\");\nObject.keys(_index70).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index70[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index70[key];\n },\n });\n});\nvar _index71 = require(\"./formatISO9075.js\");\nObject.keys(_index71).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index71[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index71[key];\n },\n });\n});\nvar _index72 = require(\"./formatISODuration.js\");\nObject.keys(_index72).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index72[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index72[key];\n },\n });\n});\nvar _index73 = require(\"./formatRFC3339.js\");\nObject.keys(_index73).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index73[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index73[key];\n },\n });\n});\nvar _index74 = require(\"./formatRFC7231.js\");\nObject.keys(_index74).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index74[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index74[key];\n },\n });\n});\nvar _index75 = require(\"./formatRelative.js\");\nObject.keys(_index75).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index75[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index75[key];\n },\n });\n});\nvar _index76 = require(\"./fromUnixTime.js\");\nObject.keys(_index76).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index76[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index76[key];\n },\n });\n});\nvar _index77 = require(\"./getDate.js\");\nObject.keys(_index77).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index77[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index77[key];\n },\n });\n});\nvar _index78 = require(\"./getDay.js\");\nObject.keys(_index78).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index78[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index78[key];\n },\n });\n});\nvar _index79 = require(\"./getDayOfYear.js\");\nObject.keys(_index79).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index79[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index79[key];\n },\n });\n});\nvar _index80 = require(\"./getDaysInMonth.js\");\nObject.keys(_index80).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index80[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index80[key];\n },\n });\n});\nvar _index81 = require(\"./getDaysInYear.js\");\nObject.keys(_index81).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index81[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index81[key];\n },\n });\n});\nvar _index82 = require(\"./getDecade.js\");\nObject.keys(_index82).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index82[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index82[key];\n },\n });\n});\nvar _index83 = require(\"./getDefaultOptions.js\");\nObject.keys(_index83).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index83[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index83[key];\n },\n });\n});\nvar _index84 = require(\"./getHours.js\");\nObject.keys(_index84).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index84[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index84[key];\n },\n });\n});\nvar _index85 = require(\"./getISODay.js\");\nObject.keys(_index85).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index85[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index85[key];\n },\n });\n});\nvar _index86 = require(\"./getISOWeek.js\");\nObject.keys(_index86).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index86[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index86[key];\n },\n });\n});\nvar _index87 = require(\"./getISOWeekYear.js\");\nObject.keys(_index87).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index87[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index87[key];\n },\n });\n});\nvar _index88 = require(\"./getISOWeeksInYear.js\");\nObject.keys(_index88).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index88[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index88[key];\n },\n });\n});\nvar _index89 = require(\"./getMilliseconds.js\");\nObject.keys(_index89).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index89[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index89[key];\n },\n });\n});\nvar _index90 = require(\"./getMinutes.js\");\nObject.keys(_index90).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index90[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index90[key];\n },\n });\n});\nvar _index91 = require(\"./getMonth.js\");\nObject.keys(_index91).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index91[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index91[key];\n },\n });\n});\nvar _index92 = require(\"./getOverlappingDaysInIntervals.js\");\nObject.keys(_index92).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index92[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index92[key];\n },\n });\n});\nvar _index93 = require(\"./getQuarter.js\");\nObject.keys(_index93).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index93[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index93[key];\n },\n });\n});\nvar _index94 = require(\"./getSeconds.js\");\nObject.keys(_index94).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index94[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index94[key];\n },\n });\n});\nvar _index95 = require(\"./getTime.js\");\nObject.keys(_index95).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index95[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index95[key];\n },\n });\n});\nvar _index96 = require(\"./getUnixTime.js\");\nObject.keys(_index96).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index96[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index96[key];\n },\n });\n});\nvar _index97 = require(\"./getWeek.js\");\nObject.keys(_index97).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index97[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index97[key];\n },\n });\n});\nvar _index98 = require(\"./getWeekOfMonth.js\");\nObject.keys(_index98).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index98[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index98[key];\n },\n });\n});\nvar _index99 = require(\"./getWeekYear.js\");\nObject.keys(_index99).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index99[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index99[key];\n },\n });\n});\nvar _index100 = require(\"./getWeeksInMonth.js\");\nObject.keys(_index100).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index100[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index100[key];\n },\n });\n});\nvar _index101 = require(\"./getYear.js\");\nObject.keys(_index101).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index101[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index101[key];\n },\n });\n});\nvar _index102 = require(\"./hoursToMilliseconds.js\");\nObject.keys(_index102).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index102[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index102[key];\n },\n });\n});\nvar _index103 = require(\"./hoursToMinutes.js\");\nObject.keys(_index103).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index103[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index103[key];\n },\n });\n});\nvar _index104 = require(\"./hoursToSeconds.js\");\nObject.keys(_index104).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index104[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index104[key];\n },\n });\n});\nvar _index105 = require(\"./interval.js\");\nObject.keys(_index105).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index105[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index105[key];\n },\n });\n});\nvar _index106 = require(\"./intervalToDuration.js\");\nObject.keys(_index106).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index106[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index106[key];\n },\n });\n});\nvar _index107 = require(\"./intlFormat.js\");\nObject.keys(_index107).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index107[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index107[key];\n },\n });\n});\nvar _index108 = require(\"./intlFormatDistance.js\");\nObject.keys(_index108).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index108[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index108[key];\n },\n });\n});\nvar _index109 = require(\"./isAfter.js\");\nObject.keys(_index109).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index109[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index109[key];\n },\n });\n});\nvar _index110 = require(\"./isBefore.js\");\nObject.keys(_index110).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index110[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index110[key];\n },\n });\n});\nvar _index111 = require(\"./isDate.js\");\nObject.keys(_index111).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index111[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index111[key];\n },\n });\n});\nvar _index112 = require(\"./isEqual.js\");\nObject.keys(_index112).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index112[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index112[key];\n },\n });\n});\nvar _index113 = require(\"./isExists.js\");\nObject.keys(_index113).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index113[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index113[key];\n },\n });\n});\nvar _index114 = require(\"./isFirstDayOfMonth.js\");\nObject.keys(_index114).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index114[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index114[key];\n },\n });\n});\nvar _index115 = require(\"./isFriday.js\");\nObject.keys(_index115).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index115[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index115[key];\n },\n });\n});\nvar _index116 = require(\"./isFuture.js\");\nObject.keys(_index116).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index116[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index116[key];\n },\n });\n});\nvar _index117 = require(\"./isLastDayOfMonth.js\");\nObject.keys(_index117).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index117[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index117[key];\n },\n });\n});\nvar _index118 = require(\"./isLeapYear.js\");\nObject.keys(_index118).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index118[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index118[key];\n },\n });\n});\nvar _index119 = require(\"./isMatch.js\");\nObject.keys(_index119).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index119[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index119[key];\n },\n });\n});\nvar _index120 = require(\"./isMonday.js\");\nObject.keys(_index120).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index120[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index120[key];\n },\n });\n});\nvar _index121 = require(\"./isPast.js\");\nObject.keys(_index121).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index121[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index121[key];\n },\n });\n});\nvar _index122 = require(\"./isSameDay.js\");\nObject.keys(_index122).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index122[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index122[key];\n },\n });\n});\nvar _index123 = require(\"./isSameHour.js\");\nObject.keys(_index123).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index123[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index123[key];\n },\n });\n});\nvar _index124 = require(\"./isSameISOWeek.js\");\nObject.keys(_index124).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index124[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index124[key];\n },\n });\n});\nvar _index125 = require(\"./isSameISOWeekYear.js\");\nObject.keys(_index125).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index125[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index125[key];\n },\n });\n});\nvar _index126 = require(\"./isSameMinute.js\");\nObject.keys(_index126).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index126[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index126[key];\n },\n });\n});\nvar _index127 = require(\"./isSameMonth.js\");\nObject.keys(_index127).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index127[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index127[key];\n },\n });\n});\nvar _index128 = require(\"./isSameQuarter.js\");\nObject.keys(_index128).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index128[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index128[key];\n },\n });\n});\nvar _index129 = require(\"./isSameSecond.js\");\nObject.keys(_index129).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index129[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index129[key];\n },\n });\n});\nvar _index130 = require(\"./isSameWeek.js\");\nObject.keys(_index130).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index130[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index130[key];\n },\n });\n});\nvar _index131 = require(\"./isSameYear.js\");\nObject.keys(_index131).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index131[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index131[key];\n },\n });\n});\nvar _index132 = require(\"./isSaturday.js\");\nObject.keys(_index132).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index132[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index132[key];\n },\n });\n});\nvar _index133 = require(\"./isSunday.js\");\nObject.keys(_index133).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index133[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index133[key];\n },\n });\n});\nvar _index134 = require(\"./isThisHour.js\");\nObject.keys(_index134).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index134[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index134[key];\n },\n });\n});\nvar _index135 = require(\"./isThisISOWeek.js\");\nObject.keys(_index135).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index135[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index135[key];\n },\n });\n});\nvar _index136 = require(\"./isThisMinute.js\");\nObject.keys(_index136).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index136[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index136[key];\n },\n });\n});\nvar _index137 = require(\"./isThisMonth.js\");\nObject.keys(_index137).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index137[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index137[key];\n },\n });\n});\nvar _index138 = require(\"./isThisQuarter.js\");\nObject.keys(_index138).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index138[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index138[key];\n },\n });\n});\nvar _index139 = require(\"./isThisSecond.js\");\nObject.keys(_index139).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index139[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index139[key];\n },\n });\n});\nvar _index140 = require(\"./isThisWeek.js\");\nObject.keys(_index140).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index140[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index140[key];\n },\n });\n});\nvar _index141 = require(\"./isThisYear.js\");\nObject.keys(_index141).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index141[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index141[key];\n },\n });\n});\nvar _index142 = require(\"./isThursday.js\");\nObject.keys(_index142).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index142[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index142[key];\n },\n });\n});\nvar _index143 = require(\"./isToday.js\");\nObject.keys(_index143).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index143[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index143[key];\n },\n });\n});\nvar _index144 = require(\"./isTomorrow.js\");\nObject.keys(_index144).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index144[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index144[key];\n },\n });\n});\nvar _index145 = require(\"./isTuesday.js\");\nObject.keys(_index145).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index145[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index145[key];\n },\n });\n});\nvar _index146 = require(\"./isValid.js\");\nObject.keys(_index146).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index146[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index146[key];\n },\n });\n});\nvar _index147 = require(\"./isWednesday.js\");\nObject.keys(_index147).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index147[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index147[key];\n },\n });\n});\nvar _index148 = require(\"./isWeekend.js\");\nObject.keys(_index148).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index148[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index148[key];\n },\n });\n});\nvar _index149 = require(\"./isWithinInterval.js\");\nObject.keys(_index149).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index149[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index149[key];\n },\n });\n});\nvar _index150 = require(\"./isYesterday.js\");\nObject.keys(_index150).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index150[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index150[key];\n },\n });\n});\nvar _index151 = require(\"./lastDayOfDecade.js\");\nObject.keys(_index151).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index151[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index151[key];\n },\n });\n});\nvar _index152 = require(\"./lastDayOfISOWeek.js\");\nObject.keys(_index152).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index152[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index152[key];\n },\n });\n});\nvar _index153 = require(\"./lastDayOfISOWeekYear.js\");\nObject.keys(_index153).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index153[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index153[key];\n },\n });\n});\nvar _index154 = require(\"./lastDayOfMonth.js\");\nObject.keys(_index154).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index154[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index154[key];\n },\n });\n});\nvar _index155 = require(\"./lastDayOfQuarter.js\");\nObject.keys(_index155).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index155[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index155[key];\n },\n });\n});\nvar _index156 = require(\"./lastDayOfWeek.js\");\nObject.keys(_index156).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index156[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index156[key];\n },\n });\n});\nvar _index157 = require(\"./lastDayOfYear.js\");\nObject.keys(_index157).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index157[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index157[key];\n },\n });\n});\nvar _index158 = require(\"./lightFormat.js\");\nObject.keys(_index158).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index158[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index158[key];\n },\n });\n});\nvar _index159 = require(\"./max.js\");\nObject.keys(_index159).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index159[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index159[key];\n },\n });\n});\nvar _index160 = require(\"./milliseconds.js\");\nObject.keys(_index160).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index160[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index160[key];\n },\n });\n});\nvar _index161 = require(\"./millisecondsToHours.js\");\nObject.keys(_index161).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index161[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index161[key];\n },\n });\n});\nvar _index162 = require(\"./millisecondsToMinutes.js\");\nObject.keys(_index162).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index162[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index162[key];\n },\n });\n});\nvar _index163 = require(\"./millisecondsToSeconds.js\");\nObject.keys(_index163).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index163[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index163[key];\n },\n });\n});\nvar _index164 = require(\"./min.js\");\nObject.keys(_index164).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index164[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index164[key];\n },\n });\n});\nvar _index165 = require(\"./minutesToHours.js\");\nObject.keys(_index165).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index165[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index165[key];\n },\n });\n});\nvar _index166 = require(\"./minutesToMilliseconds.js\");\nObject.keys(_index166).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index166[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index166[key];\n },\n });\n});\nvar _index167 = require(\"./minutesToSeconds.js\");\nObject.keys(_index167).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index167[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index167[key];\n },\n });\n});\nvar _index168 = require(\"./monthsToQuarters.js\");\nObject.keys(_index168).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index168[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index168[key];\n },\n });\n});\nvar _index169 = require(\"./monthsToYears.js\");\nObject.keys(_index169).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index169[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index169[key];\n },\n });\n});\nvar _index170 = require(\"./nextDay.js\");\nObject.keys(_index170).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index170[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index170[key];\n },\n });\n});\nvar _index171 = require(\"./nextFriday.js\");\nObject.keys(_index171).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index171[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index171[key];\n },\n });\n});\nvar _index172 = require(\"./nextMonday.js\");\nObject.keys(_index172).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index172[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index172[key];\n },\n });\n});\nvar _index173 = require(\"./nextSaturday.js\");\nObject.keys(_index173).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index173[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index173[key];\n },\n });\n});\nvar _index174 = require(\"./nextSunday.js\");\nObject.keys(_index174).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index174[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index174[key];\n },\n });\n});\nvar _index175 = require(\"./nextThursday.js\");\nObject.keys(_index175).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index175[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index175[key];\n },\n });\n});\nvar _index176 = require(\"./nextTuesday.js\");\nObject.keys(_index176).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index176[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index176[key];\n },\n });\n});\nvar _index177 = require(\"./nextWednesday.js\");\nObject.keys(_index177).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index177[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index177[key];\n },\n });\n});\nvar _index178 = require(\"./parse.js\");\nObject.keys(_index178).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index178[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index178[key];\n },\n });\n});\nvar _index179 = require(\"./parseISO.js\");\nObject.keys(_index179).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index179[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index179[key];\n },\n });\n});\nvar _index180 = require(\"./parseJSON.js\");\nObject.keys(_index180).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index180[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index180[key];\n },\n });\n});\nvar _index181 = require(\"./previousDay.js\");\nObject.keys(_index181).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index181[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index181[key];\n },\n });\n});\nvar _index182 = require(\"./previousFriday.js\");\nObject.keys(_index182).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index182[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index182[key];\n },\n });\n});\nvar _index183 = require(\"./previousMonday.js\");\nObject.keys(_index183).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index183[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index183[key];\n },\n });\n});\nvar _index184 = require(\"./previousSaturday.js\");\nObject.keys(_index184).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index184[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index184[key];\n },\n });\n});\nvar _index185 = require(\"./previousSunday.js\");\nObject.keys(_index185).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index185[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index185[key];\n },\n });\n});\nvar _index186 = require(\"./previousThursday.js\");\nObject.keys(_index186).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index186[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index186[key];\n },\n });\n});\nvar _index187 = require(\"./previousTuesday.js\");\nObject.keys(_index187).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index187[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index187[key];\n },\n });\n});\nvar _index188 = require(\"./previousWednesday.js\");\nObject.keys(_index188).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index188[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index188[key];\n },\n });\n});\nvar _index189 = require(\"./quartersToMonths.js\");\nObject.keys(_index189).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index189[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index189[key];\n },\n });\n});\nvar _index190 = require(\"./quartersToYears.js\");\nObject.keys(_index190).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index190[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index190[key];\n },\n });\n});\nvar _index191 = require(\"./roundToNearestHours.js\");\nObject.keys(_index191).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index191[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index191[key];\n },\n });\n});\nvar _index192 = require(\"./roundToNearestMinutes.js\");\nObject.keys(_index192).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index192[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index192[key];\n },\n });\n});\nvar _index193 = require(\"./secondsToHours.js\");\nObject.keys(_index193).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index193[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index193[key];\n },\n });\n});\nvar _index194 = require(\"./secondsToMilliseconds.js\");\nObject.keys(_index194).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index194[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index194[key];\n },\n });\n});\nvar _index195 = require(\"./secondsToMinutes.js\");\nObject.keys(_index195).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index195[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index195[key];\n },\n });\n});\nvar _index196 = require(\"./set.js\");\nObject.keys(_index196).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index196[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index196[key];\n },\n });\n});\nvar _index197 = require(\"./setDate.js\");\nObject.keys(_index197).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index197[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index197[key];\n },\n });\n});\nvar _index198 = require(\"./setDay.js\");\nObject.keys(_index198).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index198[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index198[key];\n },\n });\n});\nvar _index199 = require(\"./setDayOfYear.js\");\nObject.keys(_index199).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index199[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index199[key];\n },\n });\n});\nvar _index200 = require(\"./setDefaultOptions.js\");\nObject.keys(_index200).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index200[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index200[key];\n },\n });\n});\nvar _index201 = require(\"./setHours.js\");\nObject.keys(_index201).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index201[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index201[key];\n },\n });\n});\nvar _index202 = require(\"./setISODay.js\");\nObject.keys(_index202).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index202[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index202[key];\n },\n });\n});\nvar _index203 = require(\"./setISOWeek.js\");\nObject.keys(_index203).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index203[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index203[key];\n },\n });\n});\nvar _index204 = require(\"./setISOWeekYear.js\");\nObject.keys(_index204).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index204[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index204[key];\n },\n });\n});\nvar _index205 = require(\"./setMilliseconds.js\");\nObject.keys(_index205).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index205[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index205[key];\n },\n });\n});\nvar _index206 = require(\"./setMinutes.js\");\nObject.keys(_index206).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index206[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index206[key];\n },\n });\n});\nvar _index207 = require(\"./setMonth.js\");\nObject.keys(_index207).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index207[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index207[key];\n },\n });\n});\nvar _index208 = require(\"./setQuarter.js\");\nObject.keys(_index208).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index208[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index208[key];\n },\n });\n});\nvar _index209 = require(\"./setSeconds.js\");\nObject.keys(_index209).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index209[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index209[key];\n },\n });\n});\nvar _index210 = require(\"./setWeek.js\");\nObject.keys(_index210).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index210[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index210[key];\n },\n });\n});\nvar _index211 = require(\"./setWeekYear.js\");\nObject.keys(_index211).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index211[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index211[key];\n },\n });\n});\nvar _index212 = require(\"./setYear.js\");\nObject.keys(_index212).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index212[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index212[key];\n },\n });\n});\nvar _index213 = require(\"./startOfDay.js\");\nObject.keys(_index213).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index213[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index213[key];\n },\n });\n});\nvar _index214 = require(\"./startOfDecade.js\");\nObject.keys(_index214).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index214[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index214[key];\n },\n });\n});\nvar _index215 = require(\"./startOfHour.js\");\nObject.keys(_index215).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index215[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index215[key];\n },\n });\n});\nvar _index216 = require(\"./startOfISOWeek.js\");\nObject.keys(_index216).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index216[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index216[key];\n },\n });\n});\nvar _index217 = require(\"./startOfISOWeekYear.js\");\nObject.keys(_index217).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index217[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index217[key];\n },\n });\n});\nvar _index218 = require(\"./startOfMinute.js\");\nObject.keys(_index218).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index218[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index218[key];\n },\n });\n});\nvar _index219 = require(\"./startOfMonth.js\");\nObject.keys(_index219).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index219[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index219[key];\n },\n });\n});\nvar _index220 = require(\"./startOfQuarter.js\");\nObject.keys(_index220).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index220[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index220[key];\n },\n });\n});\nvar _index221 = require(\"./startOfSecond.js\");\nObject.keys(_index221).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index221[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index221[key];\n },\n });\n});\nvar _index222 = require(\"./startOfToday.js\");\nObject.keys(_index222).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index222[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index222[key];\n },\n });\n});\nvar _index223 = require(\"./startOfTomorrow.js\");\nObject.keys(_index223).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index223[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index223[key];\n },\n });\n});\nvar _index224 = require(\"./startOfWeek.js\");\nObject.keys(_index224).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index224[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index224[key];\n },\n });\n});\nvar _index225 = require(\"./startOfWeekYear.js\");\nObject.keys(_index225).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index225[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index225[key];\n },\n });\n});\nvar _index226 = require(\"./startOfYear.js\");\nObject.keys(_index226).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index226[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index226[key];\n },\n });\n});\nvar _index227 = require(\"./startOfYesterday.js\");\nObject.keys(_index227).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index227[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index227[key];\n },\n });\n});\nvar _index228 = require(\"./sub.js\");\nObject.keys(_index228).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index228[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index228[key];\n },\n });\n});\nvar _index229 = require(\"./subBusinessDays.js\");\nObject.keys(_index229).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index229[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index229[key];\n },\n });\n});\nvar _index230 = require(\"./subDays.js\");\nObject.keys(_index230).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index230[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index230[key];\n },\n });\n});\nvar _index231 = require(\"./subHours.js\");\nObject.keys(_index231).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index231[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index231[key];\n },\n });\n});\nvar _index232 = require(\"./subISOWeekYears.js\");\nObject.keys(_index232).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index232[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index232[key];\n },\n });\n});\nvar _index233 = require(\"./subMilliseconds.js\");\nObject.keys(_index233).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index233[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index233[key];\n },\n });\n});\nvar _index234 = require(\"./subMinutes.js\");\nObject.keys(_index234).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index234[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index234[key];\n },\n });\n});\nvar _index235 = require(\"./subMonths.js\");\nObject.keys(_index235).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index235[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index235[key];\n },\n });\n});\nvar _index236 = require(\"./subQuarters.js\");\nObject.keys(_index236).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index236[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index236[key];\n },\n });\n});\nvar _index237 = require(\"./subSeconds.js\");\nObject.keys(_index237).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index237[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index237[key];\n },\n });\n});\nvar _index238 = require(\"./subWeeks.js\");\nObject.keys(_index238).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index238[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index238[key];\n },\n });\n});\nvar _index239 = require(\"./subYears.js\");\nObject.keys(_index239).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index239[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index239[key];\n },\n });\n});\nvar _index240 = require(\"./toDate.js\");\nObject.keys(_index240).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index240[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index240[key];\n },\n });\n});\nvar _index241 = require(\"./transpose.js\");\nObject.keys(_index241).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index241[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index241[key];\n },\n });\n});\nvar _index242 = require(\"./weeksToDays.js\");\nObject.keys(_index242).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index242[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index242[key];\n },\n });\n});\nvar _index243 = require(\"./yearsToDays.js\");\nObject.keys(_index243).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index243[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index243[key];\n },\n });\n});\nvar _index244 = require(\"./yearsToMonths.js\");\nObject.keys(_index244).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index244[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index244[key];\n },\n });\n});\nvar _index245 = require(\"./yearsToQuarters.js\");\nObject.keys(_index245).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (key in exports && exports[key] === _index245[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _index245[key];\n },\n });\n});\n","\"use strict\";\nexports.interval = interval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The {@link interval} function options.\n */\n\n/**\n * @name interval\n * @category Interval Helpers\n * @summary Creates an interval object and validates its values.\n *\n * @description\n * Creates a normalized interval object and validates its values. If the interval is invalid, an exception is thrown.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param start - The start of the interval.\n * @param end - The end of the interval.\n * @param options - The options object.\n *\n * @throws `Start date is invalid` when `start` is invalid.\n * @throws `End date is invalid` when `end` is invalid.\n * @throws `End date must be after start date` when end is before `start` and `options.assertPositive` is true.\n *\n * @returns The normalized and validated interval object.\n */\nfunction interval(start, end, options) {\n const _start = (0, _index.toDate)(start);\n if (isNaN(+_start)) throw new TypeError(\"Start date is invalid\");\n\n const _end = (0, _index.toDate)(end);\n if (isNaN(+_end)) throw new TypeError(\"End date is invalid\");\n\n if (options?.assertPositive && +_start > +_end)\n throw new TypeError(\"End date must be after start date\");\n\n return { start: _start, end: _end };\n}\n","\"use strict\";\nexports.intervalToDuration = intervalToDuration;\nvar _index = require(\"./add.js\");\nvar _index2 = require(\"./differenceInDays.js\");\nvar _index3 = require(\"./differenceInHours.js\");\nvar _index4 = require(\"./differenceInMinutes.js\");\nvar _index5 = require(\"./differenceInMonths.js\");\nvar _index6 = require(\"./differenceInSeconds.js\");\nvar _index7 = require(\"./differenceInYears.js\");\nvar _index8 = require(\"./toDate.js\");\n\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param interval - The interval to convert to duration\n *\n * @returns The duration object\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\nfunction intervalToDuration(interval) {\n const start = (0, _index8.toDate)(interval.start);\n const end = (0, _index8.toDate)(interval.end);\n\n const duration = {};\n\n const years = (0, _index7.differenceInYears)(end, start);\n if (years) duration.years = years;\n\n const remainingMonths = (0, _index.add)(start, { years: duration.years });\n\n const months = (0, _index5.differenceInMonths)(end, remainingMonths);\n if (months) duration.months = months;\n\n const remainingDays = (0, _index.add)(remainingMonths, {\n months: duration.months,\n });\n\n const days = (0, _index2.differenceInDays)(end, remainingDays);\n if (days) duration.days = days;\n\n const remainingHours = (0, _index.add)(remainingDays, {\n days: duration.days,\n });\n\n const hours = (0, _index3.differenceInHours)(end, remainingHours);\n if (hours) duration.hours = hours;\n\n const remainingMinutes = (0, _index.add)(remainingHours, {\n hours: duration.hours,\n });\n\n const minutes = (0, _index4.differenceInMinutes)(end, remainingMinutes);\n if (minutes) duration.minutes = minutes;\n\n const remainingSeconds = (0, _index.add)(remainingMinutes, {\n minutes: duration.minutes,\n });\n\n const seconds = (0, _index6.differenceInSeconds)(end, remainingSeconds);\n if (seconds) duration.seconds = seconds;\n\n return duration;\n}\n","\"use strict\";\nexports.intlFormat = intlFormat;\nvar _index = require(\"./toDate.js\");\n\n/**\n * The locale string (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument).\n */\n\n/**\n * The format options (see: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#options)\n */\n\n/**\n * The locale options.\n */\n\n/**\n * @name intlFormat\n * @category Common Helpers\n * @summary Format the date with Intl.DateTimeFormat (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat).\n *\n * @description\n * Return the formatted date string in the given format.\n * The method uses [`Intl.DateTimeFormat`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat) inside.\n * formatOptions are the same as [`Intl.DateTimeFormat` options](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat#using_options)\n *\n * > ⚠️ Please note that before Node version 13.0.0, only the locale data for en-US is available by default.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to format\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 4 October 2019 in middle-endian format:\n * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456))\n * //=> 10/4/2019\n */\n\n/**\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to format\n * @param localeOptions - An object with locale\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 4 October 2019 in Korean.\n * // Convert the date with locale's options.\n * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456), {\n * locale: 'ko-KR',\n * })\n * //=> 2019. 10. 4.\n */\n\n/**\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to format\n * @param formatOptions - The format options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 4 October 2019.\n * // Convert the date with format's options.\n * const result = intlFormat.default(new Date(2019, 9, 4, 12, 30, 13, 456), {\n * year: 'numeric',\n * month: 'numeric',\n * day: 'numeric',\n * hour: 'numeric',\n * })\n * //=> 10/4/2019, 12 PM\n */\n\n/**\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to format\n * @param formatOptions - The format options\n * @param localeOptions - An object with locale\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 4 October 2019 in German.\n * // Convert the date with format's options and locale's options.\n * const result = intlFormat(new Date(2019, 9, 4, 12, 30, 13, 456), {\n * weekday: 'long',\n * year: 'numeric',\n * month: 'long',\n * day: 'numeric',\n * }, {\n * locale: 'de-DE',\n * })\n * //=> Freitag, 4. Oktober 2019\n */\n\nfunction intlFormat(date, formatOrLocale, localeOptions) {\n let formatOptions;\n\n if (isFormatOptions(formatOrLocale)) {\n formatOptions = formatOrLocale;\n } else {\n localeOptions = formatOrLocale;\n }\n\n return new Intl.DateTimeFormat(localeOptions?.locale, formatOptions).format(\n (0, _index.toDate)(date),\n );\n}\n\nfunction isFormatOptions(opts) {\n return opts !== undefined && !(\"locale\" in opts);\n}\n","\"use strict\";\nexports.intlFormatDistance = intlFormatDistance;\nvar _index = require(\"./constants.js\");\n\nvar _index2 = require(\"./differenceInCalendarDays.js\");\nvar _index3 = require(\"./differenceInCalendarMonths.js\");\nvar _index4 = require(\"./differenceInCalendarQuarters.js\");\nvar _index5 = require(\"./differenceInCalendarWeeks.js\");\nvar _index6 = require(\"./differenceInCalendarYears.js\");\nvar _index7 = require(\"./differenceInHours.js\");\nvar _index8 = require(\"./differenceInMinutes.js\");\nvar _index9 = require(\"./differenceInSeconds.js\");\nvar _index10 = require(\"./toDate.js\");\n\n/**\n * The {@link intlFormatDistance} function options.\n */\n\n/**\n * The unit used to format the distance in {@link intlFormatDistance}.\n */\n\n/**\n * @name intlFormatDistance\n * @category Common Helpers\n * @summary Formats distance between two dates in a human-readable format\n * @description\n * The function calculates the difference between two dates and formats it as a human-readable string.\n *\n * The function will pick the most appropriate unit depending on the distance between dates. For example, if the distance is a few hours, it might return `x hours`. If the distance is a few months, it might return `x months`.\n *\n * You can also specify a unit to force using it regardless of the distance to get a result like `123456 hours`.\n *\n * See the table below for the unit picking logic:\n *\n * | Distance between dates | Result (past) | Result (future) |\n * | ---------------------- | -------------- | --------------- |\n * | 0 seconds | now | now |\n * | 1-59 seconds | X seconds ago | in X seconds |\n * | 1-59 minutes | X minutes ago | in X minutes |\n * | 1-23 hours | X hours ago | in X hours |\n * | 1 day | yesterday | tomorrow |\n * | 2-6 days | X days ago | in X days |\n * | 7 days | last week | next week |\n * | 8 days-1 month | X weeks ago | in X weeks |\n * | 1 month | last month | next month |\n * | 2-3 months | X months ago | in X months |\n * | 1 quarter | last quarter | next quarter |\n * | 2-3 quarters | X quarters ago | in X quarters |\n * | 1 year | last year | next year |\n * | 2+ years | X years ago | in X years |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with.\n * @param options - An object with options.\n * See MDN for details [Locale identification and negotiation](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locale_identification_and_negotiation)\n * The narrow one could be similar to the short one for some locales.\n *\n * @returns The distance in words according to language-sensitive relative time formatting.\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.unit` must not be invalid Unit\n * @throws `options.locale` must not be invalid locale\n * @throws `options.localeMatcher` must not be invalid localeMatcher\n * @throws `options.numeric` must not be invalid numeric\n * @throws `options.style` must not be invalid style\n *\n * @example\n * // What is the distance between the dates when the fist date is after the second?\n * intlFormatDistance(\n * new Date(1986, 3, 4, 11, 30, 0),\n * new Date(1986, 3, 4, 10, 30, 0)\n * )\n * //=> 'in 1 hour'\n *\n * // What is the distance between the dates when the fist date is before the second?\n * intlFormatDistance(\n * new Date(1986, 3, 4, 10, 30, 0),\n * new Date(1986, 3, 4, 11, 30, 0)\n * )\n * //=> '1 hour ago'\n *\n * @example\n * // Use the unit option to force the function to output the result in quarters. Without setting it, the example would return \"next year\"\n * intlFormatDistance(\n * new Date(1987, 6, 4, 10, 30, 0),\n * new Date(1986, 3, 4, 10, 30, 0),\n * { unit: 'quarter' }\n * )\n * //=> 'in 5 quarters'\n *\n * @example\n * // Use the locale option to get the result in Spanish. Without setting it, the example would return \"in 1 hour\".\n * intlFormatDistance(\n * new Date(1986, 3, 4, 11, 30, 0),\n * new Date(1986, 3, 4, 10, 30, 0),\n * { locale: 'es' }\n * )\n * //=> 'dentro de 1 hora'\n *\n * @example\n * // Use the numeric option to force the function to use numeric values. Without setting it, the example would return \"tomorrow\".\n * intlFormatDistance(\n * new Date(1986, 3, 5, 11, 30, 0),\n * new Date(1986, 3, 4, 11, 30, 0),\n * { numeric: 'always' }\n * )\n * //=> 'in 1 day'\n *\n * @example\n * // Use the style option to force the function to use short values. Without setting it, the example would return \"in 2 years\".\n * intlFormatDistance(\n * new Date(1988, 3, 4, 11, 30, 0),\n * new Date(1986, 3, 4, 11, 30, 0),\n * { style: 'short' }\n * )\n * //=> 'in 2 yr'\n */\nfunction intlFormatDistance(date, baseDate, options) {\n let value = 0;\n let unit;\n const dateLeft = (0, _index10.toDate)(date);\n const dateRight = (0, _index10.toDate)(baseDate);\n\n if (!options?.unit) {\n // Get the unit based on diffInSeconds calculations if no unit is specified\n const diffInSeconds = (0, _index9.differenceInSeconds)(dateLeft, dateRight); // The smallest unit\n\n if (Math.abs(diffInSeconds) < _index.secondsInMinute) {\n value = (0, _index9.differenceInSeconds)(dateLeft, dateRight);\n unit = \"second\";\n } else if (Math.abs(diffInSeconds) < _index.secondsInHour) {\n value = (0, _index8.differenceInMinutes)(dateLeft, dateRight);\n unit = \"minute\";\n } else if (\n Math.abs(diffInSeconds) < _index.secondsInDay &&\n Math.abs((0, _index2.differenceInCalendarDays)(dateLeft, dateRight)) < 1\n ) {\n value = (0, _index7.differenceInHours)(dateLeft, dateRight);\n unit = \"hour\";\n } else if (\n Math.abs(diffInSeconds) < _index.secondsInWeek &&\n (value = (0, _index2.differenceInCalendarDays)(dateLeft, dateRight)) &&\n Math.abs(value) < 7\n ) {\n unit = \"day\";\n } else if (Math.abs(diffInSeconds) < _index.secondsInMonth) {\n value = (0, _index5.differenceInCalendarWeeks)(dateLeft, dateRight);\n unit = \"week\";\n } else if (Math.abs(diffInSeconds) < _index.secondsInQuarter) {\n value = (0, _index3.differenceInCalendarMonths)(dateLeft, dateRight);\n unit = \"month\";\n } else if (Math.abs(diffInSeconds) < _index.secondsInYear) {\n if ((0, _index4.differenceInCalendarQuarters)(dateLeft, dateRight) < 4) {\n // To filter out cases that are less than a year but match 4 quarters\n value = (0, _index4.differenceInCalendarQuarters)(dateLeft, dateRight);\n unit = \"quarter\";\n } else {\n value = (0, _index6.differenceInCalendarYears)(dateLeft, dateRight);\n unit = \"year\";\n }\n } else {\n value = (0, _index6.differenceInCalendarYears)(dateLeft, dateRight);\n unit = \"year\";\n }\n } else {\n // Get the value if unit is specified\n unit = options?.unit;\n if (unit === \"second\") {\n value = (0, _index9.differenceInSeconds)(dateLeft, dateRight);\n } else if (unit === \"minute\") {\n value = (0, _index8.differenceInMinutes)(dateLeft, dateRight);\n } else if (unit === \"hour\") {\n value = (0, _index7.differenceInHours)(dateLeft, dateRight);\n } else if (unit === \"day\") {\n value = (0, _index2.differenceInCalendarDays)(dateLeft, dateRight);\n } else if (unit === \"week\") {\n value = (0, _index5.differenceInCalendarWeeks)(dateLeft, dateRight);\n } else if (unit === \"month\") {\n value = (0, _index3.differenceInCalendarMonths)(dateLeft, dateRight);\n } else if (unit === \"quarter\") {\n value = (0, _index4.differenceInCalendarQuarters)(dateLeft, dateRight);\n } else if (unit === \"year\") {\n value = (0, _index6.differenceInCalendarYears)(dateLeft, dateRight);\n }\n }\n\n const rtf = new Intl.RelativeTimeFormat(options?.locale, {\n localeMatcher: options?.localeMatcher,\n numeric: options?.numeric || \"auto\",\n style: options?.style,\n });\n\n return rtf.format(value, unit);\n}\n","\"use strict\";\nexports.isAfter = isAfter;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nfunction isAfter(date, dateToCompare) {\n const _date = (0, _index.toDate)(date);\n const _dateToCompare = (0, _index.toDate)(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n","\"use strict\";\nexports.isBefore = isBefore;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nfunction isBefore(date, dateToCompare) {\n const _date = (0, _index.toDate)(date);\n const _dateToCompare = (0, _index.toDate)(dateToCompare);\n return +_date < +_dateToCompare;\n}\n","\"use strict\";\nexports.isDate = isDate; /**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nfunction isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n","\"use strict\";\nexports.isEqual = isEqual;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The dates are equal\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * const result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\nfunction isEqual(leftDate, rightDate) {\n const _dateLeft = (0, _index.toDate)(leftDate);\n const _dateRight = (0, _index.toDate)(rightDate);\n return +_dateLeft === +_dateRight;\n}\n","\"use strict\";\nexports.isExists = isExists; /**\n * @name isExists\n * @category Common Helpers\n * @summary Is the given date exists?\n *\n * @description\n * Checks if the given arguments convert to an existing date.\n *\n * @param year - The year of the date to check\n * @param month - The month of the date to check\n * @param day - The day of the date to check\n *\n * @returns `true` if the date exists\n *\n * @example\n * // For the valid date:\n * const result = isExists(2018, 0, 31)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isExists(2018, 1, 31)\n * //=> false\n */\nfunction isExists(year, month, day) {\n const date = new Date(year, month, day);\n return (\n date.getFullYear() === year &&\n date.getMonth() === month &&\n date.getDate() === day\n );\n}\n","\"use strict\";\nexports.isFirstDayOfMonth = isFirstDayOfMonth;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isFirstDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the first day of a month\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * const result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\nfunction isFirstDayOfMonth(date) {\n return (0, _index.toDate)(date).getDate() === 1;\n}\n","\"use strict\";\nexports.isFriday = isFriday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isFriday\n * @category Weekday Helpers\n * @summary Is the given date Friday?\n *\n * @description\n * Is the given date Friday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Friday\n *\n * @example\n * // Is 26 September 2014 Friday?\n * const result = isFriday(new Date(2014, 8, 26))\n * //=> true\n */\nfunction isFriday(date) {\n return (0, _index.toDate)(date).getDay() === 5;\n}\n","\"use strict\";\nexports.isFuture = isFuture;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the future\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * const result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\nfunction isFuture(date) {\n return +(0, _index.toDate)(date) > Date.now();\n}\n","\"use strict\";\nexports.isLastDayOfMonth = isLastDayOfMonth;\nvar _index = require(\"./endOfDay.js\");\nvar _index2 = require(\"./endOfMonth.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nfunction isLastDayOfMonth(date) {\n const _date = (0, _index3.toDate)(date);\n return +(0, _index.endOfDay)(_date) === +(0, _index2.endOfMonth)(_date);\n}\n","\"use strict\";\nexports.isLeapYear = isLeapYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isLeapYear\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the leap year\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * const result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\nfunction isLeapYear(date) {\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","\"use strict\";\nexports.isMatch = isMatch;\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./parse.js\");\n\n/**\n * The {@link isMatch} function options.\n */\n\n/**\n * @name isMatch\n * @category Common Helpers\n * @summary validates the date string against given formats\n *\n * @description\n * Return the true if given date is string correct against the given format else\n * will return false.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * isMatch('23 AM', 'HH a')\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `isMatch` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `isMatch` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `isMatch` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `isMatch('50', 'yy') //=> true`\n *\n * `isMatch('75', 'yy') //=> true`\n *\n * while `uu` will use the year as is:\n *\n * `isMatch('50', 'uu') //=> true`\n *\n * `isMatch('75', 'uu') //=> true`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be checked in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are matched (e.g. when matching string 'January 1st' without a year),\n * the values will be taken from today's using `new Date()` date which works as a context of parsing.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The date string to verify\n * @param format - The string of tokens\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns Is format string a match for date string?\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Match 11 February 2014 from middle-endian format:\n * const result = isMatch('02/11/2014', 'MM/dd/yyyy')\n * //=> true\n *\n * @example\n * // Match 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * const result = isMatch('28-a de februaro', \"do 'de' MMMM\", {\n * locale: eo\n * })\n * //=> true\n */\nfunction isMatch(dateStr, formatStr, options) {\n return (0, _index.isValid)(\n (0, _index2.parse)(dateStr, formatStr, new Date(), options),\n );\n}\n","\"use strict\";\nexports.isMonday = isMonday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isMonday\n * @category Weekday Helpers\n * @summary Is the given date Monday?\n *\n * @description\n * Is the given date Monday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Monday\n *\n * @example\n * // Is 22 September 2014 Monday?\n * const result = isMonday(new Date(2014, 8, 22))\n * //=> true\n */\nfunction isMonday(date) {\n return (0, _index.toDate)(date).getDay() === 1;\n}\n","\"use strict\";\nexports.isPast = isPast;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in the past\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * const result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isPast(date) {\n return +(0, _index.toDate)(date) < Date.now();\n}\n","\"use strict\";\nexports.isSameDay = isSameDay;\nvar _index = require(\"./startOfDay.js\");\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nfunction isSameDay(dateLeft, dateRight) {\n const dateLeftStartOfDay = (0, _index.startOfDay)(dateLeft);\n const dateRightStartOfDay = (0, _index.startOfDay)(dateRight);\n\n return +dateLeftStartOfDay === +dateRightStartOfDay;\n}\n","\"use strict\";\nexports.isSameHour = isSameHour;\nvar _index = require(\"./startOfHour.js\");\n\n/**\n * @name isSameHour\n * @category Hour Helpers\n * @summary Are the given dates in the same hour (and same day)?\n *\n * @description\n * Are the given dates in the same hour (and same day)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same hour (and same day)\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 6, 30))\n * //=> true\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 5 September 06:00:00 in the same hour?\n * const result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 5, 6, 0))\n * //=> false\n */\nfunction isSameHour(dateLeft, dateRight) {\n const dateLeftStartOfHour = (0, _index.startOfHour)(dateLeft);\n const dateRightStartOfHour = (0, _index.startOfHour)(dateRight);\n\n return +dateLeftStartOfHour === +dateRightStartOfHour;\n}\n","\"use strict\";\nexports.isSameISOWeek = isSameISOWeek;\nvar _index = require(\"./isSameWeek.js\");\n\n/**\n * @name isSameISOWeek\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week (and year)?\n *\n * @description\n * Are the given dates in the same ISO week (and year)?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same ISO week (and year)\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * const result = isSameISOWeek(new Date(2014, 8, 1), new Date(2014, 8, 7))\n * //=> true\n *\n * @example\n * // Are 1 September 2014 and 1 September 2015 in the same ISO week?\n * const result = isSameISOWeek(new Date(2014, 8, 1), new Date(2015, 8, 1))\n * //=> false\n */\nfunction isSameISOWeek(dateLeft, dateRight) {\n return (0, _index.isSameWeek)(dateLeft, dateRight, { weekStartsOn: 1 });\n}\n","\"use strict\";\nexports.isSameISOWeekYear = isSameISOWeekYear;\nvar _index = require(\"./startOfISOWeekYear.js\");\n\n/**\n * @name isSameISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same ISO week-numbering year\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * const result = isSameISOWeekYear(new Date(2003, 11, 29), new Date(2005, 0, 2))\n * //=> true\n */\nfunction isSameISOWeekYear(dateLeft, dateRight) {\n const dateLeftStartOfYear = (0, _index.startOfISOWeekYear)(dateLeft);\n const dateRightStartOfYear = (0, _index.startOfISOWeekYear)(dateRight);\n\n return +dateLeftStartOfYear === +dateRightStartOfYear;\n}\n","\"use strict\";\nexports.isSameMinute = isSameMinute;\nvar _index = require(\"./startOfMinute.js\");\n\n/**\n * @name isSameMinute\n * @category Minute Helpers\n * @summary Are the given dates in the same minute (and hour and day)?\n *\n * @description\n * Are the given dates in the same minute (and hour and day)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same minute (and hour and day)\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15 in the same minute?\n * const result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 5 September 2014 06:30:00 in the same minute?\n * const result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 5, 6, 30)\n * )\n * //=> false\n */\nfunction isSameMinute(dateLeft, dateRight) {\n const dateLeftStartOfMinute = (0, _index.startOfMinute)(dateLeft);\n const dateRightStartOfMinute = (0, _index.startOfMinute)(dateRight);\n\n return +dateLeftStartOfMinute === +dateRightStartOfMinute;\n}\n","\"use strict\";\nexports.isSameMonth = isSameMonth;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nfunction isSameMonth(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n return (\n _dateLeft.getFullYear() === _dateRight.getFullYear() &&\n _dateLeft.getMonth() === _dateRight.getMonth()\n );\n}\n","\"use strict\";\nexports.isSameQuarter = isSameQuarter;\nvar _index = require(\"./startOfQuarter.js\");\n\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same quarter (and year)?\n *\n * @description\n * Are the given dates in the same quarter (and year)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n\n * @returns The dates are in the same quarter (and year)\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same quarter?\n * const result = isSameQuarter(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nfunction isSameQuarter(dateLeft, dateRight) {\n const dateLeftStartOfQuarter = (0, _index.startOfQuarter)(dateLeft);\n const dateRightStartOfQuarter = (0, _index.startOfQuarter)(dateRight);\n\n return +dateLeftStartOfQuarter === +dateRightStartOfQuarter;\n}\n","\"use strict\";\nexports.isSameSecond = isSameSecond;\nvar _index = require(\"./startOfSecond.js\");\n\n/**\n * @name isSameSecond\n * @category Second Helpers\n * @summary Are the given dates in the same second (and hour and day)?\n *\n * @description\n * Are the given dates in the same second (and hour and day)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same second (and hour and day)\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500 in the same second?\n * const result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n *\n * @example\n * // Are 4 September 2014 06:00:15.000 and 4 September 2014 06:01.15.000 in the same second?\n * const result = isSameSecond(\n * new Date(2014, 8, 4, 6, 0, 15),\n * new Date(2014, 8, 4, 6, 1, 15)\n * )\n * //=> false\n *\n * @example\n * // Are 4 September 2014 06:00:15.000 and 5 September 2014 06:00.15.000 in the same second?\n * const result = isSameSecond(\n * new Date(2014, 8, 4, 6, 0, 15),\n * new Date(2014, 8, 5, 6, 0, 15)\n * )\n * //=> false\n */\nfunction isSameSecond(dateLeft, dateRight) {\n const dateLeftStartOfSecond = (0, _index.startOfSecond)(dateLeft);\n const dateRightStartOfSecond = (0, _index.startOfSecond)(dateRight);\n\n return +dateLeftStartOfSecond === +dateRightStartOfSecond;\n}\n","\"use strict\";\nexports.isSameWeek = isSameWeek;\nvar _index = require(\"./startOfWeek.js\");\n\n/**\n * The {@link isSameWeek} function options.\n */\n\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week (and month and year)?\n *\n * @description\n * Are the given dates in the same week (and month and year)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same week (and month and year)\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n * weekStartsOn: 1\n * })\n * //=> false\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same week?\n * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nfunction isSameWeek(dateLeft, dateRight, options) {\n const dateLeftStartOfWeek = (0, _index.startOfWeek)(dateLeft, options);\n const dateRightStartOfWeek = (0, _index.startOfWeek)(dateRight, options);\n\n return +dateLeftStartOfWeek === +dateRightStartOfWeek;\n}\n","\"use strict\";\nexports.isSameYear = isSameYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nfunction isSameYear(dateLeft, dateRight) {\n const _dateLeft = (0, _index.toDate)(dateLeft);\n const _dateRight = (0, _index.toDate)(dateRight);\n return _dateLeft.getFullYear() === _dateRight.getFullYear();\n}\n","\"use strict\";\nexports.isSaturday = isSaturday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isSaturday\n * @category Weekday Helpers\n * @summary Is the given date Saturday?\n *\n * @description\n * Is the given date Saturday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Saturday\n *\n * @example\n * // Is 27 September 2014 Saturday?\n * const result = isSaturday(new Date(2014, 8, 27))\n * //=> true\n */\nfunction isSaturday(date) {\n return (0, _index.toDate)(date).getDay() === 6;\n}\n","\"use strict\";\nexports.isSunday = isSunday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isSunday\n * @category Weekday Helpers\n * @summary Is the given date Sunday?\n *\n * @description\n * Is the given date Sunday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Sunday\n *\n * @example\n * // Is 21 September 2014 Sunday?\n * const result = isSunday(new Date(2014, 8, 21))\n * //=> true\n */\nfunction isSunday(date) {\n return (0, _index.toDate)(date).getDay() === 0;\n}\n","\"use strict\";\nexports.isThisHour = isThisHour;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameHour.js\");\n\n/**\n * @name isThisHour\n * @category Hour Helpers\n * @summary Is the given date in the same hour as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same hour as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this hour\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:00:00 in this hour?\n * const result = isThisHour(new Date(2014, 8, 25, 18))\n * //=> true\n */\nfunction isThisHour(date) {\n return (0, _index2.isSameHour)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThisISOWeek = isThisISOWeek;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameISOWeek.js\");\n\n/**\n * @name isThisISOWeek\n * @category ISO Week Helpers\n * @summary Is the given date in the same ISO week as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same ISO week as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this ISO week\n *\n * @example\n * // If today is 25 September 2014, is 22 September 2014 in this ISO week?\n * const result = isThisISOWeek(new Date(2014, 8, 22))\n * //=> true\n */\n\nfunction isThisISOWeek(date) {\n return (0, _index2.isSameISOWeek)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThisMinute = isThisMinute;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameMinute.js\");\n\n/**\n * @name isThisMinute\n * @category Minute Helpers\n * @summary Is the given date in the same minute as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same minute as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this minute\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:00 in this minute?\n * const result = isThisMinute(new Date(2014, 8, 25, 18, 30))\n * //=> true\n */\n\nfunction isThisMinute(date) {\n return (0, _index2.isSameMinute)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThisMonth = isThisMonth;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameMonth.js\");\n\n/**\n * @name isThisMonth\n * @category Month Helpers\n * @summary Is the given date in the same month as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same month as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this month\n *\n * @example\n * // If today is 25 September 2014, is 15 September 2014 in this month?\n * const result = isThisMonth(new Date(2014, 8, 15))\n * //=> true\n */\n\nfunction isThisMonth(date) {\n return (0, _index2.isSameMonth)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThisQuarter = isThisQuarter;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameQuarter.js\");\n\n/**\n * @name isThisQuarter\n * @category Quarter Helpers\n * @summary Is the given date in the same quarter as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same quarter as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this quarter\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this quarter?\n * const result = isThisQuarter(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisQuarter(date) {\n return (0, _index2.isSameQuarter)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThisSecond = isThisSecond;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameSecond.js\");\n\n/**\n * @name isThisSecond\n * @category Second Helpers\n * @summary Is the given date in the same second as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same second as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this second\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:15.000 in this second?\n * const result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n * //=> true\n */\nfunction isThisSecond(date) {\n return (0, _index2.isSameSecond)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThisWeek = isThisWeek;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameWeek.js\");\n\n/**\n * The {@link isThisWeek} function options.\n */\n\n/**\n * @name isThisWeek\n * @category Week Helpers\n * @summary Is the given date in the same week as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same week as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n * @param options - The object with options\n *\n * @returns The date is in this week\n *\n * @example\n * // If today is 25 September 2014, is 21 September 2014 in this week?\n * const result = isThisWeek(new Date(2014, 8, 21))\n * //=> true\n *\n * @example\n * // If today is 25 September 2014 and week starts with Monday\n * // is 21 September 2014 in this week?\n * const result = isThisWeek(new Date(2014, 8, 21), { weekStartsOn: 1 })\n * //=> false\n */\nfunction isThisWeek(date, options) {\n return (0, _index2.isSameWeek)(date, (0, _index.constructNow)(date), options);\n}\n","\"use strict\";\nexports.isThisYear = isThisYear;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameYear.js\");\n\n/**\n * @name isThisYear\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is in this year\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * const result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\nfunction isThisYear(date) {\n return (0, _index2.isSameYear)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isThursday = isThursday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isThursday\n * @category Weekday Helpers\n * @summary Is the given date Thursday?\n *\n * @description\n * Is the given date Thursday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Thursday\n *\n * @example\n * // Is 25 September 2014 Thursday?\n * const result = isThursday(new Date(2014, 8, 25))\n * //=> true\n */\nfunction isThursday(date) {\n return (0, _index.toDate)(date).getDay() === 4;\n}\n","\"use strict\";\nexports.isToday = isToday;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameDay.js\");\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nfunction isToday(date) {\n return (0, _index2.isSameDay)(date, (0, _index.constructNow)(date));\n}\n","\"use strict\";\nexports.isTomorrow = isTomorrow;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./constructNow.js\");\nvar _index3 = require(\"./isSameDay.js\");\n\n/**\n * @name isTomorrow\n * @category Day Helpers\n * @summary Is the given date tomorrow?\n * @pure false\n *\n * @description\n * Is the given date tomorrow?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is tomorrow\n *\n * @example\n * // If today is 6 October 2014, is 7 October 14:00:00 tomorrow?\n * const result = isTomorrow(new Date(2014, 9, 7, 14, 0))\n * //=> true\n */\nfunction isTomorrow(date) {\n return (0, _index3.isSameDay)(\n date,\n (0, _index.addDays)((0, _index2.constructNow)(date), 1),\n );\n}\n","\"use strict\";\nexports.isTuesday = isTuesday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isTuesday\n * @category Weekday Helpers\n * @summary Is the given date Tuesday?\n *\n * @description\n * Is the given date Tuesday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Tuesday\n *\n * @example\n * // Is 23 September 2014 Tuesday?\n * const result = isTuesday(new Date(2014, 8, 23))\n * //=> true\n */\nfunction isTuesday(date) {\n return (0, _index.toDate)(date).getDay() === 2;\n}\n","\"use strict\";\nexports.isValid = isValid;\nvar _index = require(\"./isDate.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid(date) {\n if (!(0, _index.isDate)(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = (0, _index2.toDate)(date);\n return !isNaN(Number(_date));\n}\n","\"use strict\";\nexports.isWednesday = isWednesday;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isWednesday\n * @category Weekday Helpers\n * @summary Is the given date Wednesday?\n *\n * @description\n * Is the given date Wednesday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is Wednesday\n *\n * @example\n * // Is 24 September 2014 Wednesday?\n * const result = isWednesday(new Date(2014, 8, 24))\n * //=> true\n */\nfunction isWednesday(date) {\n return (0, _index.toDate)(date).getDay() === 3;\n}\n","\"use strict\";\nexports.isWeekend = isWeekend;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isWeekend\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date falls on a weekend\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * const result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\nfunction isWeekend(date) {\n const day = (0, _index.toDate)(date).getDay();\n return day === 0 || day === 6;\n}\n","\"use strict\";\nexports.isWithinInterval = isWithinInterval;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n * @param interval - The interval to check\n *\n * @returns The date is within the interval\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date })\n * // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end })\n * // => true\n */\nfunction isWithinInterval(date, interval) {\n const time = +(0, _index.toDate)(date);\n const [startTime, endTime] = [\n +(0, _index.toDate)(interval.start),\n +(0, _index.toDate)(interval.end),\n ].sort((a, b) => a - b);\n\n return time >= startTime && time <= endTime;\n}\n","\"use strict\";\nexports.isYesterday = isYesterday;\nvar _index = require(\"./constructNow.js\");\nvar _index2 = require(\"./isSameDay.js\");\nvar _index3 = require(\"./subDays.js\");\n\n/**\n * @name isYesterday\n * @category Day Helpers\n * @summary Is the given date yesterday?\n * @pure false\n *\n * @description\n * Is the given date yesterday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is yesterday\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * const result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\nfunction isYesterday(date) {\n return (0, _index2.isSameDay)(\n date,\n (0, _index3.subDays)((0, _index.constructNow)(date), 1),\n );\n}\n","\"use strict\";\nexports.lastDayOfDecade = lastDayOfDecade;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name lastDayOfDecade\n * @category Decade Helpers\n * @summary Return the last day of a decade for the given date.\n *\n * @description\n * Return the last day of a decade for the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a decade\n *\n * @example\n * // The last day of a decade for 21 December 2012 21:12:00:\n * const result = lastDayOfDecade(new Date(2012, 11, 21, 21, 12, 00))\n * //=> Wed Dec 31 2019 00:00:00\n */\nfunction lastDayOfDecade(date) {\n // TODO: Switch to more technical definition in of decades that start with 1\n // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking\n // change, so it can only be done in 4.0.\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n const decade = 9 + Math.floor(year / 10) * 10;\n _date.setFullYear(decade + 1, 0, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.lastDayOfISOWeek = lastDayOfISOWeek;\nvar _index = require(\"./lastDayOfWeek.js\");\n\n/**\n * @name lastDayOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the last day of an ISO week for the given date.\n *\n * @description\n * Return the last day of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of an ISO week\n *\n * @example\n * // The last day of an ISO week for 2 September 2014 11:55:00:\n * const result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfISOWeek(date) {\n return (0, _index.lastDayOfWeek)(date, { weekStartsOn: 1 });\n}\n","\"use strict\";\nexports.lastDayOfISOWeekYear = lastDayOfISOWeekYear;\nvar _index = require(\"./getISOWeekYear.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./constructFrom.js\");\n\n/**\n * @name lastDayOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the last day of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the last day of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of an ISO week-numbering year\n *\n * @example\n * // The last day of an ISO week-numbering year for 2 July 2005:\n * const result = lastDayOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 00:00:00\n */\nfunction lastDayOfISOWeekYear(date) {\n const year = (0, _index.getISOWeekYear)(date);\n const fourthOfJanuary = (0, _index3.constructFrom)(date, 0);\n fourthOfJanuary.setFullYear(year + 1, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n const _date = (0, _index2.startOfISOWeek)(fourthOfJanuary);\n _date.setDate(_date.getDate() - 1);\n return _date;\n}\n","\"use strict\";\nexports.lastDayOfMonth = lastDayOfMonth;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfMonth(date) {\n const _date = (0, _index.toDate)(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.lastDayOfQuarter = lastDayOfQuarter;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name lastDayOfQuarter\n * @category Quarter Helpers\n * @summary Return the last day of a year quarter for the given date.\n *\n * @description\n * Return the last day of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a quarter\n *\n * @example\n * // The last day of a quarter for 2 September 2014 11:55:00:\n * const result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction lastDayOfQuarter(date) {\n const _date = (0, _index.toDate)(date);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3) + 3;\n _date.setMonth(month, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.lastDayOfWeek = lastDayOfWeek;\nvar _index = require(\"./toDate.js\");\n\nvar _index2 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link lastDayOfWeek} function options.\n */\n\n/**\n * @name lastDayOfWeek\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The last day of a week\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * const result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * const result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction lastDayOfWeek(date, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = (0, _index.toDate)(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setHours(0, 0, 0, 0);\n _date.setDate(_date.getDate() + diff);\n return _date;\n}\n","\"use strict\";\nexports.lastDayOfYear = lastDayOfYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name lastDayOfYear\n * @category Year Helpers\n * @summary Return the last day of a year for the given date.\n *\n * @description\n * Return the last day of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The last day of a year\n *\n * @example\n * // The last day of a year for 2 September 2014 11:55:00:\n * const result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 00:00:00\n */\nfunction lastDayOfYear(date) {\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n _date.setFullYear(year + 1, 0, 0);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.lightFormat = lightFormat;\nObject.defineProperty(exports, \"lightFormatters\", {\n enumerable: true,\n get: function () {\n return _index3.lightFormatters;\n },\n});\nvar _index = require(\"./isValid.js\");\nvar _index2 = require(\"./toDate.js\");\nvar _index3 = require(\"./_lib/format/lightFormatters.js\");\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\n\n// This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @private\n */\n\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM | a..aaa | AM, PM |\n * | | aaaa | a.m., p.m. |\n * | | aaaaa | a, p |\n * | Calendar year | y | 44, 1, 1900, 2017 |\n * | | yy | 44, 01, 00, 17 |\n * | | yyy | 044, 001, 000, 017 |\n * | | yyyy | 0044, 0001, 1900, 2017 |\n * | Month (formatting) | M | 1, 2, ..., 12 |\n * | | MM | 01, 02, ..., 12 |\n * | Day of month | d | 1, 2, ..., 31 |\n * | | dd | 01, 02, ..., 31 |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 |\n * | | hh | 01, 02, ..., 11, 12 |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 |\n * | | HH | 00, 01, 02, ..., 23 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | Fraction of second | S | 0, 1, ..., 9 |\n * | | SS | 00, 01, ..., 99 |\n * | | SSS | 000, 001, ..., 999 |\n * | | SSSS | ... |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n *\n * @returns The formatted date string\n *\n * @throws `Invalid time value` if the date is invalid\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '2014-02-11'\n */\nfunction lightFormat(date, formatStr) {\n const _date = (0, _index2.toDate)(date);\n\n if (!(0, _index.isValid)(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const tokens = formatStr.match(formattingTokensRegExp);\n\n // The only case when formattingTokensRegExp doesn't match the string is when it's empty\n if (!tokens) return \"\";\n\n const result = tokens\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n const formatter = _index3.lightFormatters[firstCharacter];\n if (formatter) {\n return formatter(_date, substring);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return substring;\n })\n .join(\"\");\n\n return result;\n}\n\nfunction cleanEscapedString(input) {\n const matches = input.match(escapedStringRegExp);\n\n if (!matches) {\n return input;\n }\n\n return matches[1].replace(doubleQuoteRegExp, \"'\");\n}\n","\"use strict\";\nexports.buildFormatLongFn = buildFormatLongFn;\n\nfunction buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","\"use strict\";\nexports.buildLocalizeFn = buildLocalizeFn; /* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nfunction buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","\"use strict\";\nexports.buildMatchFn = buildMatchFn;\n\nfunction buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","\"use strict\";\nexports.buildMatchPatternFn = buildMatchPatternFn;\n\nfunction buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","\"use strict\";\nexports.enUS = void 0;\nvar _index = require(\"./en-US/_lib/formatDistance.js\");\nvar _index2 = require(\"./en-US/_lib/formatLong.js\");\nvar _index3 = require(\"./en-US/_lib/formatRelative.js\");\nvar _index4 = require(\"./en-US/_lib/localize.js\");\nvar _index5 = require(\"./en-US/_lib/match.js\");\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nconst enUS = (exports.enUS = {\n code: \"en-US\",\n formatDistance: _index.formatDistance,\n formatLong: _index2.formatLong,\n formatRelative: _index3.formatRelative,\n localize: _index4.localize,\n match: _index5.match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n});\n","\"use strict\";\nexports.formatDistance = void 0;\n\nconst formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nconst formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\nexports.formatDistance = formatDistance;\n","\"use strict\";\nexports.formatLong = void 0;\nvar _index = require(\"../../_lib/buildFormatLongFn.js\");\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nconst formatLong = (exports.formatLong = {\n date: (0, _index.buildFormatLongFn)({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: (0, _index.buildFormatLongFn)({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: (0, _index.buildFormatLongFn)({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n});\n","\"use strict\";\nexports.formatRelative = void 0;\n\nconst formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nconst formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\nexports.formatRelative = formatRelative;\n","\"use strict\";\nexports.localize = void 0;\nvar _index = require(\"../../_lib/buildLocalizeFn.js\");\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nconst localize = (exports.localize = {\n ordinalNumber,\n\n era: (0, _index.buildLocalizeFn)({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: (0, _index.buildLocalizeFn)({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: (0, _index.buildLocalizeFn)({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: (0, _index.buildLocalizeFn)({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: (0, _index.buildLocalizeFn)({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n});\n","\"use strict\";\nexports.match = void 0;\n\nvar _index = require(\"../../_lib/buildMatchFn.js\");\nvar _index2 = require(\"../../_lib/buildMatchPatternFn.js\");\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nconst match = (exports.match = {\n ordinalNumber: (0, _index2.buildMatchPatternFn)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: (0, _index.buildMatchFn)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: (0, _index.buildMatchFn)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: (0, _index.buildMatchFn)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: (0, _index.buildMatchFn)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: (0, _index.buildMatchFn)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n});\n","\"use strict\";\nexports.max = max;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dates - The dates to compare\n *\n * @returns The latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nfunction max(dates) {\n let result;\n dates.forEach(function (dirtyDate) {\n const currentDate = (0, _index.toDate)(dirtyDate);\n\n if (\n result === undefined ||\n result < currentDate ||\n isNaN(Number(currentDate))\n ) {\n result = currentDate;\n }\n });\n\n return result || new Date(NaN);\n}\n","\"use strict\";\nexports.milliseconds = milliseconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name milliseconds\n * @category Millisecond Helpers\n * @summary\n * Returns the number of milliseconds in the specified, years, months, weeks, days, hours, minutes and seconds.\n *\n * @description\n * Returns the number of milliseconds in the specified, years, months, weeks, days, hours, minutes and seconds.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * One month is a year divided by 12.\n *\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be added.\n *\n * @returns The milliseconds\n *\n * @example\n * // 1 year in milliseconds\n * milliseconds({ years: 1 })\n * //=> 31556952000\n *\n * // 3 months in milliseconds\n * milliseconds({ months: 3 })\n * //=> 7889238000\n */\nfunction milliseconds({ years, months, weeks, days, hours, minutes, seconds }) {\n let totalDays = 0;\n\n if (years) totalDays += years * _index.daysInYear;\n if (months) totalDays += months * (_index.daysInYear / 12);\n if (weeks) totalDays += weeks * 7;\n if (days) totalDays += days;\n\n let totalSeconds = totalDays * 24 * 60 * 60;\n\n if (hours) totalSeconds += hours * 60 * 60;\n if (minutes) totalSeconds += minutes * 60;\n if (seconds) totalSeconds += seconds;\n\n return Math.trunc(totalSeconds * 1000);\n}\n","\"use strict\";\nexports.millisecondsToHours = millisecondsToHours;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name millisecondsToHours\n * @category Conversion Helpers\n * @summary Convert milliseconds to hours.\n *\n * @description\n * Convert a number of milliseconds to a full number of hours.\n *\n * @param milliseconds - The number of milliseconds to be converted\n *\n * @returns The number of milliseconds converted in hours\n *\n * @example\n * // Convert 7200000 milliseconds to hours:\n * const result = millisecondsToHours(7200000)\n * //=> 2\n *\n * @example\n * // It uses floor rounding:\n * const result = millisecondsToHours(7199999)\n * //=> 1\n */\nfunction millisecondsToHours(milliseconds) {\n const hours = milliseconds / _index.millisecondsInHour;\n return Math.trunc(hours);\n}\n","\"use strict\";\nexports.millisecondsToMinutes = millisecondsToMinutes;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name millisecondsToMinutes\n * @category Conversion Helpers\n * @summary Convert milliseconds to minutes.\n *\n * @description\n * Convert a number of milliseconds to a full number of minutes.\n *\n * @param milliseconds - The number of milliseconds to be converted\n *\n * @returns The number of milliseconds converted in minutes\n *\n * @example\n * // Convert 60000 milliseconds to minutes:\n * const result = millisecondsToMinutes(60000)\n * //=> 1\n *\n * @example\n * // It uses floor rounding:\n * const result = millisecondsToMinutes(119999)\n * //=> 1\n */\nfunction millisecondsToMinutes(milliseconds) {\n const minutes = milliseconds / _index.millisecondsInMinute;\n return Math.trunc(minutes);\n}\n","\"use strict\";\nexports.millisecondsToSeconds = millisecondsToSeconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name millisecondsToSeconds\n * @category Conversion Helpers\n * @summary Convert milliseconds to seconds.\n *\n * @description\n * Convert a number of milliseconds to a full number of seconds.\n *\n * @param milliseconds - The number of milliseconds to be converted\n *\n * @returns The number of milliseconds converted in seconds\n *\n * @example\n * // Convert 1000 miliseconds to seconds:\n * const result = millisecondsToSeconds(1000)\n * //=> 1\n *\n * @example\n * // It uses floor rounding:\n * const result = millisecondsToSeconds(1999)\n * //=> 1\n */\nfunction millisecondsToSeconds(milliseconds) {\n const seconds = milliseconds / _index.millisecondsInSecond;\n return Math.trunc(seconds);\n}\n","\"use strict\";\nexports.min = min;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dates - The dates to compare\n *\n * @returns The earliest of the dates\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\nfunction min(dates) {\n let result;\n\n dates.forEach((dirtyDate) => {\n const date = (0, _index.toDate)(dirtyDate);\n if (!result || result > date || isNaN(+date)) {\n result = date;\n }\n });\n\n return result || new Date(NaN);\n}\n","\"use strict\";\nexports.minutesToHours = minutesToHours;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name minutesToHours\n * @category Conversion Helpers\n * @summary Convert minutes to hours.\n *\n * @description\n * Convert a number of minutes to a full number of hours.\n *\n * @param minutes - The number of minutes to be converted\n *\n * @returns The number of minutes converted in hours\n *\n * @example\n * // Convert 140 minutes to hours:\n * const result = minutesToHours(120)\n * //=> 2\n *\n * @example\n * // It uses floor rounding:\n * const result = minutesToHours(179)\n * //=> 2\n */\nfunction minutesToHours(minutes) {\n const hours = minutes / _index.minutesInHour;\n return Math.trunc(hours);\n}\n","\"use strict\";\nexports.minutesToMilliseconds = minutesToMilliseconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name minutesToMilliseconds\n * @category Conversion Helpers\n * @summary Convert minutes to milliseconds.\n *\n * @description\n * Convert a number of minutes to a full number of milliseconds.\n *\n * @param minutes - The number of minutes to be converted\n *\n * @returns The number of minutes converted in milliseconds\n *\n * @example\n * // Convert 2 minutes to milliseconds\n * const result = minutesToMilliseconds(2)\n * //=> 120000\n */\nfunction minutesToMilliseconds(minutes) {\n return Math.trunc(minutes * _index.millisecondsInMinute);\n}\n","\"use strict\";\nexports.minutesToSeconds = minutesToSeconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name minutesToSeconds\n * @category Conversion Helpers\n * @summary Convert minutes to seconds.\n *\n * @description\n * Convert a number of minutes to a full number of seconds.\n *\n * @param minutes - The number of minutes to be converted\n *\n * @returns The number of minutes converted in seconds\n *\n * @example\n * // Convert 2 minutes to seconds\n * const result = minutesToSeconds(2)\n * //=> 120\n */\nfunction minutesToSeconds(minutes) {\n return Math.trunc(minutes * _index.secondsInMinute);\n}\n","\"use strict\";\nexports.monthsToQuarters = monthsToQuarters;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name monthsToQuarters\n * @category Conversion Helpers\n * @summary Convert number of months to quarters.\n *\n * @description\n * Convert a number of months to a full number of quarters.\n *\n * @param months - The number of months to be converted.\n *\n * @returns The number of months converted in quarters\n *\n * @example\n * // Convert 6 months to quarters:\n * const result = monthsToQuarters(6)\n * //=> 2\n *\n * @example\n * // It uses floor rounding:\n * const result = monthsToQuarters(7)\n * //=> 2\n */\nfunction monthsToQuarters(months) {\n const quarters = months / _index.monthsInQuarter;\n return Math.trunc(quarters);\n}\n","\"use strict\";\nexports.monthsToYears = monthsToYears;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name monthsToYears\n * @category Conversion Helpers\n * @summary Convert number of months to years.\n *\n * @description\n * Convert a number of months to a full number of years.\n *\n * @param months - The number of months to be converted\n *\n * @returns The number of months converted in years\n *\n * @example\n * // Convert 36 months to years:\n * const result = monthsToYears(36)\n * //=> 3\n *\n * // It uses floor rounding:\n * const result = monthsToYears(40)\n * //=> 3\n */\nfunction monthsToYears(months) {\n const years = months / _index.monthsInYear;\n return Math.trunc(years);\n}\n","\"use strict\";\nexports.nextDay = nextDay;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./getDay.js\");\n\n/**\n * @name nextDay\n * @category Weekday Helpers\n * @summary When is the next day of the week?\n *\n * @description\n * When is the next day of the week? 0-6 the day of the week, 0 represents Sunday.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n * @param day - day of the week\n *\n * @returns The date is the next day of week\n *\n * @example\n * // When is the next Monday after Mar, 20, 2020?\n * const result = nextDay(new Date(2020, 2, 20), 1)\n * //=> Mon Mar 23 2020 00:00:00\n *\n * @example\n * // When is the next Tuesday after Mar, 21, 2020?\n * const result = nextDay(new Date(2020, 2, 21), 2)\n * //=> Tue Mar 24 2020 00:00:00\n */\nfunction nextDay(date, day) {\n let delta = day - (0, _index2.getDay)(date);\n if (delta <= 0) delta += 7;\n\n return (0, _index.addDays)(date, delta);\n}\n","\"use strict\";\nexports.nextFriday = nextFriday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextFriday\n * @category Weekday Helpers\n * @summary When is the next Friday?\n *\n * @description\n * When is the next Friday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Friday\n *\n * @example\n * // When is the next Friday after Mar, 22, 2020?\n * const result = nextFriday(new Date(2020, 2, 22))\n * //=> Fri Mar 27 2020 00:00:00\n */\nfunction nextFriday(date) {\n return (0, _index.nextDay)(date, 5);\n}\n","\"use strict\";\nexports.nextMonday = nextMonday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextMonday\n * @category Weekday Helpers\n * @summary When is the next Monday?\n *\n * @description\n * When is the next Monday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Monday\n *\n * @example\n * // When is the next Monday after Mar, 22, 2020?\n * const result = nextMonday(new Date(2020, 2, 22))\n * //=> Mon Mar 23 2020 00:00:00\n */\nfunction nextMonday(date) {\n return (0, _index.nextDay)(date, 1);\n}\n","\"use strict\";\nexports.nextSaturday = nextSaturday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextSaturday\n * @category Weekday Helpers\n * @summary When is the next Saturday?\n *\n * @description\n * When is the next Saturday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Saturday\n *\n * @example\n * // When is the next Saturday after Mar, 22, 2020?\n * const result = nextSaturday(new Date(2020, 2, 22))\n * //=> Sat Mar 28 2020 00:00:00\n */\nfunction nextSaturday(date) {\n return (0, _index.nextDay)(date, 6);\n}\n","\"use strict\";\nexports.nextSunday = nextSunday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextSunday\n * @category Weekday Helpers\n * @summary When is the next Sunday?\n *\n * @description\n * When is the next Sunday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Sunday\n *\n * @example\n * // When is the next Sunday after Mar, 22, 2020?\n * const result = nextSunday(new Date(2020, 2, 22))\n * //=> Sun Mar 29 2020 00:00:00\n */\nfunction nextSunday(date) {\n return (0, _index.nextDay)(date, 0);\n}\n","\"use strict\";\nexports.nextThursday = nextThursday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextThursday\n * @category Weekday Helpers\n * @summary When is the next Thursday?\n *\n * @description\n * When is the next Thursday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Thursday\n *\n * @example\n * // When is the next Thursday after Mar, 22, 2020?\n * const result = nextThursday(new Date(2020, 2, 22))\n * //=> Thur Mar 26 2020 00:00:00\n */\nfunction nextThursday(date) {\n return (0, _index.nextDay)(date, 4);\n}\n","\"use strict\";\nexports.nextTuesday = nextTuesday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextTuesday\n * @category Weekday Helpers\n * @summary When is the next Tuesday?\n *\n * @description\n * When is the next Tuesday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Tuesday\n *\n * @example\n * // When is the next Tuesday after Mar, 22, 2020?\n * const result = nextTuesday(new Date(2020, 2, 22))\n * //=> Tue Mar 24 2020 00:00:00\n */\nfunction nextTuesday(date) {\n return (0, _index.nextDay)(date, 2);\n}\n","\"use strict\";\nexports.nextWednesday = nextWednesday;\nvar _index = require(\"./nextDay.js\");\n\n/**\n * @name nextWednesday\n * @category Weekday Helpers\n * @summary When is the next Wednesday?\n *\n * @description\n * When is the next Wednesday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The next Wednesday\n *\n * @example\n * // When is the next Wednesday after Mar, 22, 2020?\n * const result = nextWednesday(new Date(2020, 2, 22))\n * //=> Wed Mar 25 2020 00:00:00\n */\nfunction nextWednesday(date) {\n return (0, _index.nextDay)(date, 3);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"longFormatters\", {\n enumerable: true,\n get: function () {\n return _index5.longFormatters;\n },\n});\nexports.parse = parse;\nObject.defineProperty(exports, \"parsers\", {\n enumerable: true,\n get: function () {\n return _index7.parsers;\n },\n});\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./getDefaultOptions.js\");\nvar _index3 = require(\"./_lib/defaultLocale.js\");\nvar _index4 = require(\"./toDate.js\");\n\nvar _index5 = require(\"./_lib/format/longFormatters.js\");\nvar _index6 = require(\"./_lib/protectedTokens.js\");\n\nvar _index7 = require(\"./parse/_lib/parsers.js\");\n\nvar _Setter = require(\"./parse/_lib/Setter.js\");\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nfunction parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const locale =\n options?.locale ?? defaultOptions.locale ?? _index3.defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return (0, _index4.toDate)(referenceDate);\n } else {\n return (0, _index.constructFrom)(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new _Setter.DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in _index5.longFormatters) {\n const longFormatter = _index5.longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n (0, _index6.isProtectedWeekYearToken)(token)\n ) {\n (0, _index6.warnOrThrowProtectedError)(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n (0, _index6.isProtectedDayOfYearToken)(token)\n ) {\n (0, _index6.warnOrThrowProtectedError)(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = _index7.parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return (0, _index.constructFrom)(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return (0, _index.constructFrom)(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return (0, _index.constructFrom)(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = (0, _index4.toDate)(referenceDate);\n\n if (isNaN(date.getTime())) {\n return (0, _index.constructFrom)(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return (0, _index.constructFrom)(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return (0, _index.constructFrom)(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n","\"use strict\";\nexports.Parser = void 0;\nvar _Setter = require(\"./Setter.js\");\n\nclass Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new _Setter.ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\nexports.Parser = Parser;\n","\"use strict\";\nexports.ValueSetter =\n exports.Setter =\n exports.DateToSystemTimezoneSetter =\n void 0;\nvar _index = require(\"../../transpose.js\");\nvar _index2 = require(\"../../constructFrom.js\");\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nclass Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\nexports.Setter = Setter;\n\nclass ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\nexports.ValueSetter = ValueSetter;\n\nclass DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return (0, _index2.constructFrom)(date, (0, _index.transpose)(date, Date));\n }\n}\nexports.DateToSystemTimezoneSetter = DateToSystemTimezoneSetter;\n","\"use strict\";\nexports.timezonePatterns = exports.numericPatterns = void 0;\nconst numericPatterns = (exports.numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n});\n\nconst timezonePatterns = (exports.timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n});\n","\"use strict\";\nexports.parsers = void 0;\nvar _EraParser = require(\"./parsers/EraParser.js\");\nvar _YearParser = require(\"./parsers/YearParser.js\");\nvar _LocalWeekYearParser = require(\"./parsers/LocalWeekYearParser.js\");\nvar _ISOWeekYearParser = require(\"./parsers/ISOWeekYearParser.js\");\nvar _ExtendedYearParser = require(\"./parsers/ExtendedYearParser.js\");\nvar _QuarterParser = require(\"./parsers/QuarterParser.js\");\nvar _StandAloneQuarterParser = require(\"./parsers/StandAloneQuarterParser.js\");\nvar _MonthParser = require(\"./parsers/MonthParser.js\");\nvar _StandAloneMonthParser = require(\"./parsers/StandAloneMonthParser.js\");\nvar _LocalWeekParser = require(\"./parsers/LocalWeekParser.js\");\nvar _ISOWeekParser = require(\"./parsers/ISOWeekParser.js\");\nvar _DateParser = require(\"./parsers/DateParser.js\");\nvar _DayOfYearParser = require(\"./parsers/DayOfYearParser.js\");\nvar _DayParser = require(\"./parsers/DayParser.js\");\nvar _LocalDayParser = require(\"./parsers/LocalDayParser.js\");\nvar _StandAloneLocalDayParser = require(\"./parsers/StandAloneLocalDayParser.js\");\nvar _ISODayParser = require(\"./parsers/ISODayParser.js\");\nvar _AMPMParser = require(\"./parsers/AMPMParser.js\");\nvar _AMPMMidnightParser = require(\"./parsers/AMPMMidnightParser.js\");\nvar _DayPeriodParser = require(\"./parsers/DayPeriodParser.js\");\nvar _Hour1to12Parser = require(\"./parsers/Hour1to12Parser.js\");\nvar _Hour0to23Parser = require(\"./parsers/Hour0to23Parser.js\");\nvar _Hour0To11Parser = require(\"./parsers/Hour0To11Parser.js\");\nvar _Hour1To24Parser = require(\"./parsers/Hour1To24Parser.js\");\nvar _MinuteParser = require(\"./parsers/MinuteParser.js\");\nvar _SecondParser = require(\"./parsers/SecondParser.js\");\nvar _FractionOfSecondParser = require(\"./parsers/FractionOfSecondParser.js\");\nvar _ISOTimezoneWithZParser = require(\"./parsers/ISOTimezoneWithZParser.js\");\nvar _ISOTimezoneParser = require(\"./parsers/ISOTimezoneParser.js\");\nvar _TimestampSecondsParser = require(\"./parsers/TimestampSecondsParser.js\");\nvar _TimestampMillisecondsParser = require(\"./parsers/TimestampMillisecondsParser.js\");\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nconst parsers = (exports.parsers = {\n G: new _EraParser.EraParser(),\n y: new _YearParser.YearParser(),\n Y: new _LocalWeekYearParser.LocalWeekYearParser(),\n R: new _ISOWeekYearParser.ISOWeekYearParser(),\n u: new _ExtendedYearParser.ExtendedYearParser(),\n Q: new _QuarterParser.QuarterParser(),\n q: new _StandAloneQuarterParser.StandAloneQuarterParser(),\n M: new _MonthParser.MonthParser(),\n L: new _StandAloneMonthParser.StandAloneMonthParser(),\n w: new _LocalWeekParser.LocalWeekParser(),\n I: new _ISOWeekParser.ISOWeekParser(),\n d: new _DateParser.DateParser(),\n D: new _DayOfYearParser.DayOfYearParser(),\n E: new _DayParser.DayParser(),\n e: new _LocalDayParser.LocalDayParser(),\n c: new _StandAloneLocalDayParser.StandAloneLocalDayParser(),\n i: new _ISODayParser.ISODayParser(),\n a: new _AMPMParser.AMPMParser(),\n b: new _AMPMMidnightParser.AMPMMidnightParser(),\n B: new _DayPeriodParser.DayPeriodParser(),\n h: new _Hour1to12Parser.Hour1to12Parser(),\n H: new _Hour0to23Parser.Hour0to23Parser(),\n K: new _Hour0To11Parser.Hour0To11Parser(),\n k: new _Hour1To24Parser.Hour1To24Parser(),\n m: new _MinuteParser.MinuteParser(),\n s: new _SecondParser.SecondParser(),\n S: new _FractionOfSecondParser.FractionOfSecondParser(),\n X: new _ISOTimezoneWithZParser.ISOTimezoneWithZParser(),\n x: new _ISOTimezoneParser.ISOTimezoneParser(),\n t: new _TimestampSecondsParser.TimestampSecondsParser(),\n T: new _TimestampMillisecondsParser.TimestampMillisecondsParser(),\n});\n","\"use strict\";\nexports.AMPMMidnightParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass AMPMMidnightParser extends _Parser.Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\nexports.AMPMMidnightParser = AMPMMidnightParser;\n","\"use strict\";\nexports.AMPMParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass AMPMParser extends _Parser.Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\nexports.AMPMParser = AMPMParser;\n","\"use strict\";\nexports.DateParser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nclass DateParser extends _Parser.Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.date,\n dateString,\n );\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = (0, _utils.isLeapYearIndex)(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.DateParser = DateParser;\n","\"use strict\";\nexports.DayOfYearParser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass DayOfYearParser extends _Parser.Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.dayOfYear,\n dateString,\n );\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = (0, _utils.isLeapYearIndex)(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.DayOfYearParser = DayOfYearParser;\n","\"use strict\";\nexports.DayParser = void 0;\nvar _index = require(\"../../../setDay.js\");\nvar _Parser = require(\"../Parser.js\");\n\n// Day of week\nclass DayParser extends _Parser.Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = (0, _index.setDay)(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\nexports.DayParser = DayParser;\n","\"use strict\";\nexports.DayPeriodParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// in the morning, in the afternoon, in the evening, at night\nclass DayPeriodParser extends _Parser.Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours((0, _utils.dayPeriodEnumToHours)(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\nexports.DayPeriodParser = DayPeriodParser;\n","\"use strict\";\nexports.EraParser = void 0;\n\nvar _Parser = require(\"../Parser.js\");\n\nclass EraParser extends _Parser.Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\nexports.EraParser = EraParser;\n","\"use strict\";\nexports.ExtendedYearParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass ExtendedYearParser extends _Parser.Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return (0, _utils.parseNDigitsSigned)(4, dateString);\n }\n\n return (0, _utils.parseNDigitsSigned)(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\nexports.ExtendedYearParser = ExtendedYearParser;\n","\"use strict\";\nexports.FractionOfSecondParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass FractionOfSecondParser extends _Parser.Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(token.length, dateString),\n valueCallback,\n );\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\nexports.FractionOfSecondParser = FractionOfSecondParser;\n","\"use strict\";\nexports.Hour0To11Parser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass Hour0To11Parser extends _Parser.Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.hour11h,\n dateString,\n );\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\nexports.Hour0To11Parser = Hour0To11Parser;\n","\"use strict\";\nexports.Hour0to23Parser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass Hour0to23Parser extends _Parser.Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.hour23h,\n dateString,\n );\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\nexports.Hour0to23Parser = Hour0to23Parser;\n","\"use strict\";\nexports.Hour1To24Parser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass Hour1To24Parser extends _Parser.Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.hour24h,\n dateString,\n );\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\nexports.Hour1To24Parser = Hour1To24Parser;\n","\"use strict\";\nexports.Hour1to12Parser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass Hour1to12Parser extends _Parser.Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.hour12h,\n dateString,\n );\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\nexports.Hour1to12Parser = Hour1to12Parser;\n","\"use strict\";\nexports.ISODayParser = void 0;\nvar _index = require(\"../../../setISODay.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// ISO day of week\nclass ISODayParser extends _Parser.Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return (0, _utils.parseNDigits)(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return (0, _utils.mapValue)(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return (0, _utils.mapValue)(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return (0, _utils.mapValue)(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return (0, _utils.mapValue)(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = (0, _index.setISODay)(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.ISODayParser = ISODayParser;\n","\"use strict\";\nexports.ISOTimezoneParser = void 0;\nvar _index = require(\"../../../constructFrom.js\");\nvar _index2 = require(\"../../../_lib/getTimezoneOffsetInMilliseconds.js\");\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// Timezone (ISO-8601)\nclass ISOTimezoneParser extends _Parser.Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.basic,\n dateString,\n );\n case \"xxxx\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.extended,\n dateString,\n );\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return (0, _index.constructFrom)(\n date,\n date.getTime() -\n (0, _index2.getTimezoneOffsetInMilliseconds)(date) -\n value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\nexports.ISOTimezoneParser = ISOTimezoneParser;\n","\"use strict\";\nexports.ISOTimezoneWithZParser = void 0;\nvar _index = require(\"../../../constructFrom.js\");\nvar _index2 = require(\"../../../_lib/getTimezoneOffsetInMilliseconds.js\");\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nclass ISOTimezoneWithZParser extends _Parser.Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.basic,\n dateString,\n );\n case \"XXXX\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return (0, _utils.parseTimezonePattern)(\n _constants.timezonePatterns.extended,\n dateString,\n );\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return (0, _index.constructFrom)(\n date,\n date.getTime() -\n (0, _index2.getTimezoneOffsetInMilliseconds)(date) -\n value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\nexports.ISOTimezoneWithZParser = ISOTimezoneWithZParser;\n","\"use strict\";\nexports.ISOWeekParser = void 0;\nvar _index = require(\"../../../setISOWeek.js\");\nvar _index2 = require(\"../../../startOfISOWeek.js\");\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// ISO week of year\nclass ISOWeekParser extends _Parser.Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.week,\n dateString,\n );\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return (0, _index2.startOfISOWeek)((0, _index.setISOWeek)(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.ISOWeekParser = ISOWeekParser;\n","\"use strict\";\nexports.ISOWeekYearParser = void 0;\nvar _index = require(\"../../../startOfISOWeek.js\");\nvar _index2 = require(\"../../../constructFrom.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// ISO week-numbering year\nclass ISOWeekYearParser extends _Parser.Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return (0, _utils.parseNDigitsSigned)(4, dateString);\n }\n\n return (0, _utils.parseNDigitsSigned)(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = (0, _index2.constructFrom)(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return (0, _index.startOfISOWeek)(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.ISOWeekYearParser = ISOWeekYearParser;\n","\"use strict\";\nexports.LocalDayParser = void 0;\nvar _index = require(\"../../../setDay.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// Local day of week\nclass LocalDayParser extends _Parser.Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(token.length, dateString),\n valueCallback,\n );\n // 3rd\n case \"eo\":\n return (0, _utils.mapValue)(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = (0, _index.setDay)(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.LocalDayParser = LocalDayParser;\n","\"use strict\";\nexports.LocalWeekParser = void 0;\nvar _index = require(\"../../../setWeek.js\");\nvar _index2 = require(\"../../../startOfWeek.js\");\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// Local week of year\nclass LocalWeekParser extends _Parser.Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.week,\n dateString,\n );\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return (0, _index2.startOfWeek)(\n (0, _index.setWeek)(date, value, options),\n options,\n );\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\nexports.LocalWeekParser = LocalWeekParser;\n","\"use strict\";\nexports.LocalWeekYearParser = void 0;\nvar _index = require(\"../../../getWeekYear.js\");\n\nvar _index2 = require(\"../../../startOfWeek.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// Local week-numbering year\nclass LocalWeekYearParser extends _Parser.Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(4, dateString),\n valueCallback,\n );\n case \"Yo\":\n return (0, _utils.mapValue)(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(token.length, dateString),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = (0, _index.getWeekYear)(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = (0, _utils.normalizeTwoDigitYear)(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return (0, _index2.startOfWeek)(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return (0, _index2.startOfWeek)(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\nexports.LocalWeekYearParser = LocalWeekYearParser;\n","\"use strict\";\nexports.MinuteParser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass MinuteParser extends _Parser.Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.minute,\n dateString,\n );\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\nexports.MinuteParser = MinuteParser;\n","\"use strict\";\nexports.MonthParser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass MonthParser extends _Parser.Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return (0, _utils.mapValue)(\n (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.month,\n dateString,\n ),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(2, dateString),\n valueCallback,\n );\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return (0, _utils.mapValue)(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\nexports.MonthParser = MonthParser;\n","\"use strict\";\nexports.QuarterParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass QuarterParser extends _Parser.Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return (0, _utils.parseNDigits)(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.QuarterParser = QuarterParser;\n","\"use strict\";\nexports.SecondParser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass SecondParser extends _Parser.Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.second,\n dateString,\n );\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return (0, _utils.parseNDigits)(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\nexports.SecondParser = SecondParser;\n","\"use strict\";\nexports.StandAloneLocalDayParser = void 0;\nvar _index = require(\"../../../setDay.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// Stand-alone local day of week\nclass StandAloneLocalDayParser extends _Parser.Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(token.length, dateString),\n valueCallback,\n );\n // 3rd\n case \"co\":\n return (0, _utils.mapValue)(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = (0, _index.setDay)(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\nexports.StandAloneLocalDayParser = StandAloneLocalDayParser;\n","\"use strict\";\nexports.StandAloneMonthParser = void 0;\nvar _constants = require(\"../constants.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass StandAloneMonthParser extends _Parser.Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return (0, _utils.mapValue)(\n (0, _utils.parseNumericPattern)(\n _constants.numericPatterns.month,\n dateString,\n ),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(2, dateString),\n valueCallback,\n );\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return (0, _utils.mapValue)(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.StandAloneMonthParser = StandAloneMonthParser;\n","\"use strict\";\nexports.StandAloneQuarterParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass StandAloneQuarterParser extends _Parser.Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return (0, _utils.parseNDigits)(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\nexports.StandAloneQuarterParser = StandAloneQuarterParser;\n","\"use strict\";\nexports.TimestampMillisecondsParser = void 0;\nvar _index = require(\"../../../constructFrom.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass TimestampMillisecondsParser extends _Parser.Parser {\n priority = 20;\n\n parse(dateString) {\n return (0, _utils.parseAnyDigitsSigned)(dateString);\n }\n\n set(date, _flags, value) {\n return [(0, _index.constructFrom)(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\nexports.TimestampMillisecondsParser = TimestampMillisecondsParser;\n","\"use strict\";\nexports.TimestampSecondsParser = void 0;\nvar _index = require(\"../../../constructFrom.js\");\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\nclass TimestampSecondsParser extends _Parser.Parser {\n priority = 40;\n\n parse(dateString) {\n return (0, _utils.parseAnyDigitsSigned)(dateString);\n }\n\n set(date, _flags, value) {\n return [\n (0, _index.constructFrom)(date, value * 1000),\n { timestampIsSet: true },\n ];\n }\n\n incompatibleTokens = \"*\";\n}\nexports.TimestampSecondsParser = TimestampSecondsParser;\n","\"use strict\";\nexports.YearParser = void 0;\nvar _Parser = require(\"../Parser.js\");\n\nvar _utils = require(\"../utils.js\");\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nclass YearParser extends _Parser.Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(4, dateString),\n valueCallback,\n );\n case \"yo\":\n return (0, _utils.mapValue)(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return (0, _utils.mapValue)(\n (0, _utils.parseNDigits)(token.length, dateString),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = (0, _utils.normalizeTwoDigitYear)(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\nexports.YearParser = YearParser;\n","\"use strict\";\nexports.dayPeriodEnumToHours = dayPeriodEnumToHours;\nexports.isLeapYearIndex = isLeapYearIndex;\nexports.mapValue = mapValue;\nexports.normalizeTwoDigitYear = normalizeTwoDigitYear;\nexports.parseAnyDigitsSigned = parseAnyDigitsSigned;\nexports.parseNDigits = parseNDigits;\nexports.parseNDigitsSigned = parseNDigitsSigned;\nexports.parseNumericPattern = parseNumericPattern;\nexports.parseTimezonePattern = parseTimezonePattern;\nvar _index = require(\"../../constants.js\");\n\nvar _constants = require(\"./constants.js\");\n\nfunction mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nfunction parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nfunction parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * _index.millisecondsInHour +\n minutes * _index.millisecondsInMinute +\n seconds * _index.millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nfunction parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(\n _constants.numericPatterns.anyDigitsSigned,\n dateString,\n );\n}\n\nfunction parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(\n _constants.numericPatterns.singleDigit,\n dateString,\n );\n case 2:\n return parseNumericPattern(\n _constants.numericPatterns.twoDigits,\n dateString,\n );\n case 3:\n return parseNumericPattern(\n _constants.numericPatterns.threeDigits,\n dateString,\n );\n case 4:\n return parseNumericPattern(\n _constants.numericPatterns.fourDigits,\n dateString,\n );\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nfunction parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(\n _constants.numericPatterns.singleDigitSigned,\n dateString,\n );\n case 2:\n return parseNumericPattern(\n _constants.numericPatterns.twoDigitsSigned,\n dateString,\n );\n case 3:\n return parseNumericPattern(\n _constants.numericPatterns.threeDigitsSigned,\n dateString,\n );\n case 4:\n return parseNumericPattern(\n _constants.numericPatterns.fourDigitsSigned,\n dateString,\n );\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nfunction dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","\"use strict\";\nexports.parseISO = parseISO;\nvar _index = require(\"./constants.js\");\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parseISO(argument, options) {\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n const timestamp = date.getTime();\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n const dirtyDate = new Date(timestamp + time);\n // JS parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n const result = new Date(0);\n result.setFullYear(\n dirtyDate.getUTCFullYear(),\n dirtyDate.getUTCMonth(),\n dirtyDate.getUTCDate(),\n );\n result.setHours(\n dirtyDate.getUTCHours(),\n dirtyDate.getUTCMinutes(),\n dirtyDate.getUTCSeconds(),\n dirtyDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * _index.millisecondsInHour +\n minutes * _index.millisecondsInMinute +\n seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return (\n sign *\n (hours * _index.millisecondsInHour + minutes * _index.millisecondsInMinute)\n );\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n","\"use strict\";\nexports.parseJSON = parseJSON; /**\n * @name parseJSON\n * @category Common Helpers\n * @summary Parse a JSON date string\n *\n * @description\n * Converts a complete ISO date string in UTC time, the typical format for transmitting\n * a date in JSON, to a JavaScript `Date` instance.\n *\n * This is a minimal implementation for converting dates retrieved from a JSON API to\n * a `Date` instance which can be used with other functions in the `date-fns` library.\n * The following formats are supported:\n *\n * - `2000-03-15T05:20:10.123Z`: The output of `.toISOString()` and `JSON.stringify(new Date())`\n * - `2000-03-15T05:20:10Z`: Without milliseconds\n * - `2000-03-15T05:20:10+00:00`: With a zero offset, the default JSON encoded format in some other languages\n * - `2000-03-15T05:20:10+05:45`: With a positive or negative offset, the default JSON encoded format in some other languages\n * - `2000-03-15T05:20:10+0000`: With a zero offset without a colon\n * - `2000-03-15T05:20:10`: Without a trailing 'Z' symbol\n * - `2000-03-15T05:20:10.1234567`: Up to 7 digits in milliseconds field. Only first 3 are taken into account since JS does not allow fractional milliseconds\n * - `2000-03-15 05:20:10`: With a space instead of a 'T' separator for APIs returning a SQL date without reformatting\n *\n * For convenience and ease of use these other input types are also supported\n * via [toDate](https://date-fns.org/docs/toDate):\n *\n * - A `Date` instance will be cloned\n * - A `number` will be treated as a timestamp\n *\n * Any other input type or invalid date strings will return an `Invalid Date`.\n *\n * @param dateStr - A fully formed ISO8601 date string to convert\n *\n * @returns The parsed date in the local time zone\n */\nfunction parseJSON(dateStr) {\n const parts = dateStr.match(\n /(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{0,7}))?(?:Z|(.)(\\d{2}):?(\\d{2})?)?/,\n );\n if (parts) {\n // Group 8 matches the sign\n return new Date(\n Date.UTC(\n +parts[1],\n +parts[2] - 1,\n +parts[3],\n +parts[4] - (+parts[9] || 0) * (parts[8] == \"-\" ? -1 : 1),\n +parts[5] - (+parts[10] || 0) * (parts[8] == \"-\" ? -1 : 1),\n +parts[6],\n +((parts[7] || \"0\") + \"00\").substring(0, 3),\n ),\n );\n }\n return new Date(NaN);\n}\n","\"use strict\";\nexports.previousDay = previousDay;\nvar _index = require(\"./getDay.js\");\nvar _index2 = require(\"./subDays.js\");\n\n/**\n * @name previousDay\n * @category Weekday Helpers\n * @summary When is the previous day of the week?\n *\n * @description\n * When is the previous day of the week? 0-6 the day of the week, 0 represents Sunday.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n * @param day - The day of the week\n *\n * @returns The date is the previous day of week\n *\n * @example\n * // When is the previous Monday before Mar, 20, 2020?\n * const result = previousDay(new Date(2020, 2, 20), 1)\n * //=> Mon Mar 16 2020 00:00:00\n *\n * @example\n * // When is the previous Tuesday before Mar, 21, 2020?\n * const result = previousDay(new Date(2020, 2, 21), 2)\n * //=> Tue Mar 17 2020 00:00:00\n */\nfunction previousDay(date, day) {\n let delta = (0, _index.getDay)(date) - day;\n if (delta <= 0) delta += 7;\n\n return (0, _index2.subDays)(date, delta);\n}\n","\"use strict\";\nexports.previousFriday = previousFriday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousFriday\n * @category Weekday Helpers\n * @summary When is the previous Friday?\n *\n * @description\n * When is the previous Friday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Friday\n *\n * @example\n * // When is the previous Friday before Jun, 19, 2021?\n * const result = previousFriday(new Date(2021, 5, 19))\n * //=> Fri June 18 2021 00:00:00\n */\nfunction previousFriday(date) {\n return (0, _index.previousDay)(date, 5);\n}\n","\"use strict\";\nexports.previousMonday = previousMonday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousMonday\n * @category Weekday Helpers\n * @summary When is the previous Monday?\n *\n * @description\n * When is the previous Monday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Monday\n *\n * @example\n * // When is the previous Monday before Jun, 18, 2021?\n * const result = previousMonday(new Date(2021, 5, 18))\n * //=> Mon June 14 2021 00:00:00\n */\nfunction previousMonday(date) {\n return (0, _index.previousDay)(date, 1);\n}\n","\"use strict\";\nexports.previousSaturday = previousSaturday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousSaturday\n * @category Weekday Helpers\n * @summary When is the previous Saturday?\n *\n * @description\n * When is the previous Saturday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Saturday\n *\n * @example\n * // When is the previous Saturday before Jun, 20, 2021?\n * const result = previousSaturday(new Date(2021, 5, 20))\n * //=> Sat June 19 2021 00:00:00\n */\nfunction previousSaturday(date) {\n return (0, _index.previousDay)(date, 6);\n}\n","\"use strict\";\nexports.previousSunday = previousSunday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousSunday\n * @category Weekday Helpers\n * @summary When is the previous Sunday?\n *\n * @description\n * When is the previous Sunday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Sunday\n *\n * @example\n * // When is the previous Sunday before Jun, 21, 2021?\n * const result = previousSunday(new Date(2021, 5, 21))\n * //=> Sun June 20 2021 00:00:00\n */\nfunction previousSunday(date) {\n return (0, _index.previousDay)(date, 0);\n}\n","\"use strict\";\nexports.previousThursday = previousThursday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousThursday\n * @category Weekday Helpers\n * @summary When is the previous Thursday?\n *\n * @description\n * When is the previous Thursday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Thursday\n *\n * @example\n * // When is the previous Thursday before Jun, 18, 2021?\n * const result = previousThursday(new Date(2021, 5, 18))\n * //=> Thu June 17 2021 00:00:00\n */\nfunction previousThursday(date) {\n return (0, _index.previousDay)(date, 4);\n}\n","\"use strict\";\nexports.previousTuesday = previousTuesday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousTuesday\n * @category Weekday Helpers\n * @summary When is the previous Tuesday?\n *\n * @description\n * When is the previous Tuesday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Tuesday\n *\n * @example\n * // When is the previous Tuesday before Jun, 18, 2021?\n * const result = previousTuesday(new Date(2021, 5, 18))\n * //=> Tue June 15 2021 00:00:00\n */\nfunction previousTuesday(date) {\n return (0, _index.previousDay)(date, 2);\n}\n","\"use strict\";\nexports.previousWednesday = previousWednesday;\nvar _index = require(\"./previousDay.js\");\n\n/**\n * @name previousWednesday\n * @category Weekday Helpers\n * @summary When is the previous Wednesday?\n *\n * @description\n * When is the previous Wednesday?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to start counting from\n *\n * @returns The previous Wednesday\n *\n * @example\n * // When is the previous Wednesday before Jun, 18, 2021?\n * const result = previousWednesday(new Date(2021, 5, 18))\n * //=> Wed June 16 2021 00:00:00\n */\nfunction previousWednesday(date) {\n return (0, _index.previousDay)(date, 3);\n}\n","\"use strict\";\nexports.quartersToMonths = quartersToMonths;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name quartersToMonths\n * @category Conversion Helpers\n * @summary Convert number of quarters to months.\n *\n * @description\n * Convert a number of quarters to a full number of months.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param quarters - The number of quarters to be converted\n *\n * @returns The number of quarters converted in months\n *\n * @example\n * // Convert 2 quarters to months\n * const result = quartersToMonths(2)\n * //=> 6\n */\nfunction quartersToMonths(quarters) {\n return Math.trunc(quarters * _index.monthsInQuarter);\n}\n","\"use strict\";\nexports.quartersToYears = quartersToYears;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name quartersToYears\n * @category Conversion Helpers\n * @summary Convert number of quarters to years.\n *\n * @description\n * Convert a number of quarters to a full number of years.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param quarters - The number of quarters to be converted\n *\n * @returns The number of quarters converted in years\n *\n * @example\n * // Convert 8 quarters to years\n * const result = quartersToYears(8)\n * //=> 2\n *\n * @example\n * // It uses floor rounding:\n * const result = quartersToYears(11)\n * //=> 2\n */\nfunction quartersToYears(quarters) {\n const years = quarters / _index.quartersInYear;\n return Math.trunc(years);\n}\n","\"use strict\";\nexports.roundToNearestHours = roundToNearestHours;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./constructFrom.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link roundToNearestHours} function options.\n */\n\n/**\n * @name roundToNearestHours\n * @category Hour Helpers\n * @summary Rounds the given date to the nearest hour\n *\n * @description\n * Rounds the given date to the nearest hour (or number of hours).\n * Rounds up when the given date is exactly between the nearest round hours.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to round\n * @param options - An object with options.\n *\n * @returns The new date rounded to the closest hour\n *\n * @example\n * // Round 10 July 2014 12:34:56 to nearest hour:\n * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56))\n * //=> Thu Jul 10 2014 13:00:00\n *\n * @example\n * // Round 10 July 2014 12:34:56 to nearest half hour:\n * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56), { nearestTo: 6 })\n * //=> Thu Jul 10 2014 12:00:00\n\n * @example\n * // Round 10 July 2014 12:34:56 to nearest half hour:\n * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56), { nearestTo: 8 })\n * //=> Thu Jul 10 2014 16:00:00\n\n* @example\n * // Floor (rounds down) 10 July 2014 12:34:56 to nearest hour:\n * const result = roundToNearestHours(new Date(2014, 6, 10, 1, 23, 45), { roundingMethod: 'ceil' })\n * //=> Thu Jul 10 2014 02:00:00\n *\n * @example\n * // Ceil (rounds up) 10 July 2014 12:34:56 to nearest quarter hour:\n * const result = roundToNearestHours(new Date(2014, 6, 10, 12, 34, 56), { roundingMethod: 'floor', nearestTo: 8 })\n * //=> Thu Jul 10 2014 08:00:00\n */\nfunction roundToNearestHours(date, options) {\n const nearestTo = options?.nearestTo ?? 1;\n\n if (nearestTo < 1 || nearestTo > 12)\n return (0, _index2.constructFrom)(date, NaN);\n\n const _date = (0, _index3.toDate)(date);\n const fractionalMinutes = _date.getMinutes() / 60;\n const fractionalSeconds = _date.getSeconds() / 60 / 60;\n const fractionalMilliseconds = _date.getMilliseconds() / 1000 / 60 / 60;\n const hours =\n _date.getHours() +\n fractionalMinutes +\n fractionalSeconds +\n fractionalMilliseconds;\n\n // Unlike the `differenceIn*` functions, the default rounding behavior is `round` and not 'trunc'\n const method = options?.roundingMethod ?? \"round\";\n const roundingMethod = (0, _index.getRoundingMethod)(method);\n\n // nearestTo option does not care daylight savings time\n const roundedHours = roundingMethod(hours / nearestTo) * nearestTo;\n\n const result = (0, _index2.constructFrom)(date, _date);\n result.setHours(roundedHours, 0, 0, 0);\n return result;\n}\n","\"use strict\";\nexports.roundToNearestMinutes = roundToNearestMinutes;\nvar _index = require(\"./_lib/getRoundingMethod.js\");\nvar _index2 = require(\"./constructFrom.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * The {@link roundToNearestMinutes} function options.\n */\n\n/**\n * @name roundToNearestMinutes\n * @category Minute Helpers\n * @summary Rounds the given date to the nearest minute\n *\n * @description\n * Rounds the given date to the nearest minute (or number of minutes).\n * Rounds up when the given date is exactly between the nearest round minutes.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to round\n * @param options - An object with options.\n *\n * @returns The new date rounded to the closest minute\n *\n * @example\n * // Round 10 July 2014 12:12:34 to nearest minute:\n * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34))\n * //=> Thu Jul 10 2014 12:13:00\n *\n * @example\n * // Round 10 July 2014 12:12:34 to nearest quarter hour:\n * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { nearestTo: 15 })\n * //=> Thu Jul 10 2014 12:15:00\n *\n * @example\n * // Floor (rounds down) 10 July 2014 12:12:34 to nearest minute:\n * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { roundingMethod: 'floor' })\n * //=> Thu Jul 10 2014 12:12:00\n *\n * @example\n * // Ceil (rounds up) 10 July 2014 12:12:34 to nearest half hour:\n * const result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { roundingMethod: 'ceil', nearestTo: 30 })\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction roundToNearestMinutes(date, options) {\n const nearestTo = options?.nearestTo ?? 1;\n\n if (nearestTo < 1 || nearestTo > 30)\n return (0, _index2.constructFrom)(date, NaN);\n\n const _date = (0, _index3.toDate)(date);\n const fractionalSeconds = _date.getSeconds() / 60;\n const fractionalMilliseconds = _date.getMilliseconds() / 1000 / 60;\n const minutes =\n _date.getMinutes() + fractionalSeconds + fractionalMilliseconds;\n\n // Unlike the `differenceIn*` functions, the default rounding behavior is `round` and not 'trunc'\n const method = options?.roundingMethod ?? \"round\";\n const roundingMethod = (0, _index.getRoundingMethod)(method);\n\n const roundedMinutes = roundingMethod(minutes / nearestTo) * nearestTo;\n\n const result = (0, _index2.constructFrom)(date, _date);\n result.setMinutes(roundedMinutes, 0, 0);\n return result;\n}\n","\"use strict\";\nexports.secondsToHours = secondsToHours;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name secondsToHours\n * @category Conversion Helpers\n * @summary Convert seconds to hours.\n *\n * @description\n * Convert a number of seconds to a full number of hours.\n *\n * @param seconds - The number of seconds to be converted\n *\n * @returns The number of seconds converted in hours\n *\n * @example\n * // Convert 7200 seconds into hours\n * const result = secondsToHours(7200)\n * //=> 2\n *\n * @example\n * // It uses floor rounding:\n * const result = secondsToHours(7199)\n * //=> 1\n */\nfunction secondsToHours(seconds) {\n const hours = seconds / _index.secondsInHour;\n return Math.trunc(hours);\n}\n","\"use strict\";\nexports.secondsToMilliseconds = secondsToMilliseconds;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name secondsToMilliseconds\n * @category Conversion Helpers\n * @summary Convert seconds to milliseconds.\n *\n * @description\n * Convert a number of seconds to a full number of milliseconds.\n *\n * @param seconds - The number of seconds to be converted\n *\n * @returns The number of seconds converted in milliseconds\n *\n * @example\n * // Convert 2 seconds into milliseconds\n * const result = secondsToMilliseconds(2)\n * //=> 2000\n */\nfunction secondsToMilliseconds(seconds) {\n return seconds * _index.millisecondsInSecond;\n}\n","\"use strict\";\nexports.secondsToMinutes = secondsToMinutes;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name secondsToMinutes\n * @category Conversion Helpers\n * @summary Convert seconds to minutes.\n *\n * @description\n * Convert a number of seconds to a full number of minutes.\n *\n * @param seconds - The number of seconds to be converted\n *\n * @returns The number of seconds converted in minutes\n *\n * @example\n * // Convert 120 seconds into minutes\n * const result = secondsToMinutes(120)\n * //=> 2\n *\n * @example\n * // It uses floor rounding:\n * const result = secondsToMinutes(119)\n * //=> 1\n */\nfunction secondsToMinutes(seconds) {\n const minutes = seconds / _index.secondsInMinute;\n return Math.trunc(minutes);\n}\n","\"use strict\";\nexports.set = set;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./setMonth.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param values - The date values to be set\n *\n * @returns The new date with options set\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * const result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * const result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\n\nfunction set(date, values) {\n let _date = (0, _index3.toDate)(date);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) {\n return (0, _index.constructFrom)(date, NaN);\n }\n\n if (values.year != null) {\n _date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n _date = (0, _index2.setMonth)(_date, values.month);\n }\n\n if (values.date != null) {\n _date.setDate(values.date);\n }\n\n if (values.hours != null) {\n _date.setHours(values.hours);\n }\n\n if (values.minutes != null) {\n _date.setMinutes(values.minutes);\n }\n\n if (values.seconds != null) {\n _date.setSeconds(values.seconds);\n }\n\n if (values.milliseconds != null) {\n _date.setMilliseconds(values.milliseconds);\n }\n\n return _date;\n}\n","\"use strict\";\nexports.setDate = setDate;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name setDate\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param dayOfMonth - The day of the month of the new date\n *\n * @returns The new date with the day of the month set\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * const result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\nfunction setDate(date, dayOfMonth) {\n const _date = (0, _index.toDate)(date);\n _date.setDate(dayOfMonth);\n return _date;\n}\n","\"use strict\";\nexports.setDay = setDay;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./toDate.js\");\n\nvar _index3 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setDay(date, day, options) {\n const defaultOptions = (0, _index3.getDefaultOptions)();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = (0, _index2.toDate)(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return (0, _index.addDays)(_date, diff);\n}\n","\"use strict\";\nexports.setDayOfYear = setDayOfYear;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name setDayOfYear\n * @category Day Helpers\n * @summary Set the day of the year to the given date.\n *\n * @description\n * Set the day of the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param dayOfYear - The day of the year of the new date\n *\n * @returns The new date with the day of the year set\n *\n * @example\n * // Set the 2nd day of the year to 2 July 2014:\n * const result = setDayOfYear(new Date(2014, 6, 2), 2)\n * //=> Thu Jan 02 2014 00:00:00\n */\nfunction setDayOfYear(date, dayOfYear) {\n const _date = (0, _index.toDate)(date);\n _date.setMonth(0);\n _date.setDate(dayOfYear);\n return _date;\n}\n","\"use strict\";\nexports.setDefaultOptions = setDefaultOptions;\n\nvar _index = require(\"./_lib/defaultOptions.js\");\n\n/**\n * @name setDefaultOptions\n * @category Common Helpers\n * @summary Set default options including locale.\n * @pure false\n *\n * @description\n * Sets the defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * @param options - An object with options\n *\n * @example\n * // Set global locale:\n * import { es } from 'date-fns/locale'\n * setDefaultOptions({ locale: es })\n * const result = format(new Date(2014, 8, 2), 'PPPP')\n * //=> 'martes, 2 de septiembre de 2014'\n *\n * @example\n * // Start of the week for 2 September 2014:\n * const result = startOfWeek(new Date(2014, 8, 2))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Start of the week for 2 September 2014,\n * // when we set that week starts on Monday by default:\n * setDefaultOptions({ weekStartsOn: 1 })\n * const result = startOfWeek(new Date(2014, 8, 2))\n * //=> Mon Sep 01 2014 00:00:00\n *\n * @example\n * // Manually set options take priority over default options:\n * setDefaultOptions({ weekStartsOn: 1 })\n * const result = startOfWeek(new Date(2014, 8, 2), { weekStartsOn: 0 })\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Remove the option by setting it to `undefined`:\n * setDefaultOptions({ weekStartsOn: 1 })\n * setDefaultOptions({ weekStartsOn: undefined })\n * const result = startOfWeek(new Date(2014, 8, 2))\n * //=> Sun Aug 31 2014 00:00:00\n */\nfunction setDefaultOptions(options) {\n const result = {};\n const defaultOptions = (0, _index.getDefaultOptions)();\n\n for (const property in defaultOptions) {\n if (Object.prototype.hasOwnProperty.call(defaultOptions, property)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n result[property] = defaultOptions[property];\n }\n }\n\n for (const property in options) {\n if (Object.prototype.hasOwnProperty.call(options, property)) {\n if (options[property] === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n delete result[property];\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n result[property] = options[property];\n }\n }\n }\n\n (0, _index.setDefaultOptions)(result);\n}\n","\"use strict\";\nexports.setHours = setHours;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nfunction setHours(date, hours) {\n const _date = (0, _index.toDate)(date);\n _date.setHours(hours);\n return _date;\n}\n","\"use strict\";\nexports.setISODay = setISODay;\nvar _index = require(\"./addDays.js\");\nvar _index2 = require(\"./getISODay.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setISODay(date, day) {\n const _date = (0, _index3.toDate)(date);\n const currentDay = (0, _index2.getISODay)(_date);\n const diff = day - currentDay;\n return (0, _index.addDays)(_date, diff);\n}\n","\"use strict\";\nexports.setISOWeek = setISOWeek;\nvar _index = require(\"./getISOWeek.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nfunction setISOWeek(date, week) {\n const _date = (0, _index2.toDate)(date);\n const diff = (0, _index.getISOWeek)(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n","\"use strict\";\nexports.setISOWeekYear = setISOWeekYear;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./differenceInCalendarDays.js\");\nvar _index3 = require(\"./startOfISOWeekYear.js\");\nvar _index4 = require(\"./toDate.js\");\n\n/**\n * @name setISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param weekYear - The ISO week-numbering year of the new date\n *\n * @returns The new date with the ISO week-numbering year set\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * const result = setISOWeekYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\nfunction setISOWeekYear(date, weekYear) {\n let _date = (0, _index4.toDate)(date);\n const diff = (0, _index2.differenceInCalendarDays)(\n _date,\n (0, _index3.startOfISOWeekYear)(_date),\n );\n const fourthOfJanuary = (0, _index.constructFrom)(date, 0);\n fourthOfJanuary.setFullYear(weekYear, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n _date = (0, _index3.startOfISOWeekYear)(fourthOfJanuary);\n _date.setDate(_date.getDate() + diff);\n return _date;\n}\n","\"use strict\";\nexports.setMilliseconds = setMilliseconds;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param milliseconds - The milliseconds of the new date\n *\n * @returns The new date with the milliseconds set\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\nfunction setMilliseconds(date, milliseconds) {\n const _date = (0, _index.toDate)(date);\n _date.setMilliseconds(milliseconds);\n return _date;\n}\n","\"use strict\";\nexports.setMinutes = setMinutes;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nfunction setMinutes(date, minutes) {\n const _date = (0, _index.toDate)(date);\n _date.setMinutes(minutes);\n return _date;\n}\n","\"use strict\";\nexports.setMonth = setMonth;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./getDaysInMonth.js\");\nvar _index3 = require(\"./toDate.js\");\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nfunction setMonth(date, month) {\n const _date = (0, _index3.toDate)(date);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const dateWithDesiredMonth = (0, _index.constructFrom)(date, 0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n const daysInMonth = (0, _index2.getDaysInMonth)(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n","\"use strict\";\nexports.setQuarter = setQuarter;\nvar _index = require(\"./setMonth.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param quarter - The quarter of the new date\n *\n * @returns The new date with the quarter set\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nfunction setQuarter(date, quarter) {\n const _date = (0, _index2.toDate)(date);\n const oldQuarter = Math.trunc(_date.getMonth() / 3) + 1;\n const diff = quarter - oldQuarter;\n return (0, _index.setMonth)(_date, _date.getMonth() + diff * 3);\n}\n","\"use strict\";\nexports.setSeconds = setSeconds;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param seconds - The seconds of the new date\n *\n * @returns The new date with the seconds set\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\nfunction setSeconds(date, seconds) {\n const _date = (0, _index.toDate)(date);\n _date.setSeconds(seconds);\n return _date;\n}\n","\"use strict\";\nexports.setWeek = setWeek;\nvar _index = require(\"./getWeek.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nfunction setWeek(date, week, options) {\n const _date = (0, _index2.toDate)(date);\n const diff = (0, _index.getWeek)(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n","\"use strict\";\nexports.setWeekYear = setWeekYear;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./differenceInCalendarDays.js\");\nvar _index3 = require(\"./startOfWeekYear.js\");\nvar _index4 = require(\"./toDate.js\");\n\nvar _index5 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link setWeekYear} function options.\n */\n\n/**\n * @name setWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Set the local week-numbering year to the given date.\n *\n * @description\n * Set the local week-numbering year to the given date,\n * saving the week number and the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param weekYear - The local week-numbering year of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week-numbering year set\n *\n * @example\n * // Set the local week-numbering year 2004 to 2 January 2010 with default options:\n * const result = setWeekYear(new Date(2010, 0, 2), 2004)\n * //=> Sat Jan 03 2004 00:00:00\n *\n * @example\n * // Set the local week-numbering year 2004 to 2 January 2010,\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = setWeekYear(new Date(2010, 0, 2), 2004, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sat Jan 01 2005 00:00:00\n */\nfunction setWeekYear(date, weekYear, options) {\n const defaultOptions = (0, _index5.getDefaultOptions)();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n let _date = (0, _index4.toDate)(date);\n const diff = (0, _index2.differenceInCalendarDays)(\n _date,\n (0, _index3.startOfWeekYear)(_date, options),\n );\n const firstWeek = (0, _index.constructFrom)(date, 0);\n firstWeek.setFullYear(weekYear, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n _date = (0, _index3.startOfWeekYear)(firstWeek, options);\n _date.setDate(_date.getDate() + diff);\n return _date;\n}\n","\"use strict\";\nexports.setYear = setYear;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./toDate.js\");\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nfunction setYear(date, year) {\n const _date = (0, _index2.toDate)(date);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) {\n return (0, _index.constructFrom)(date, NaN);\n }\n\n _date.setFullYear(year);\n return _date;\n}\n","\"use strict\";\nexports.startOfDay = startOfDay;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay(date) {\n const _date = (0, _index.toDate)(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfDecade = startOfDecade;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfDecade\n * @category Decade Helpers\n * @summary Return the start of a decade for the given date.\n *\n * @description\n * Return the start of a decade for the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a decade\n *\n * @example\n * // The start of a decade for 21 October 2015 00:00:00:\n * const result = startOfDecade(new Date(2015, 9, 21, 00, 00, 00))\n * //=> Jan 01 2010 00:00:00\n */\nfunction startOfDecade(date) {\n // TODO: Switch to more technical definition in of decades that start with 1\n // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking\n // change, so it can only be done in 4.0.\n const _date = (0, _index.toDate)(date);\n const year = _date.getFullYear();\n const decade = Math.floor(year / 10) * 10;\n _date.setFullYear(decade, 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfHour = startOfHour;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nfunction startOfHour(date) {\n const _date = (0, _index.toDate)(date);\n _date.setMinutes(0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfISOWeek = startOfISOWeek;\nvar _index = require(\"./startOfWeek.js\");\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek(date) {\n return (0, _index.startOfWeek)(date, { weekStartsOn: 1 });\n}\n","\"use strict\";\nexports.startOfISOWeekYear = startOfISOWeekYear;\nvar _index = require(\"./getISOWeekYear.js\");\nvar _index2 = require(\"./startOfISOWeek.js\");\nvar _index3 = require(\"./constructFrom.js\");\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOWeekYear(date) {\n const year = (0, _index.getISOWeekYear)(date);\n const fourthOfJanuary = (0, _index3.constructFrom)(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return (0, _index2.startOfISOWeek)(fourthOfJanuary);\n}\n","\"use strict\";\nexports.startOfMinute = startOfMinute;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nfunction startOfMinute(date) {\n const _date = (0, _index.toDate)(date);\n _date.setSeconds(0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfMonth = startOfMonth;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfMonth(date) {\n const _date = (0, _index.toDate)(date);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfQuarter = startOfQuarter;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nfunction startOfQuarter(date) {\n const _date = (0, _index.toDate)(date);\n const currentMonth = _date.getMonth();\n const month = currentMonth - (currentMonth % 3);\n _date.setMonth(month, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfSecond = startOfSecond;\nvar _index = require(\"./toDate.js\");\n\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nfunction startOfSecond(date) {\n const _date = (0, _index.toDate)(date);\n _date.setMilliseconds(0);\n return _date;\n}\n","\"use strict\";\nexports.startOfToday = startOfToday;\nvar _index = require(\"./startOfDay.js\");\n\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * @returns The start of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nfunction startOfToday() {\n return (0, _index.startOfDay)(Date.now());\n}\n","\"use strict\";\nexports.startOfTomorrow = startOfTomorrow; /**\n * @name startOfTomorrow\n * @category Day Helpers\n * @summary Return the start of tomorrow.\n * @pure false\n *\n * @description\n * Return the start of tomorrow.\n *\n * @returns The start of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfTomorrow()\n * //=> Tue Oct 7 2014 00:00:00\n */\nfunction startOfTomorrow() {\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n const day = now.getDate();\n\n const date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n","\"use strict\";\nexports.startOfWeek = startOfWeek;\nvar _index = require(\"./toDate.js\");\n\nvar _index2 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek(date, options) {\n const defaultOptions = (0, _index2.getDefaultOptions)();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = (0, _index.toDate)(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfWeekYear = startOfWeekYear;\nvar _index = require(\"./constructFrom.js\");\nvar _index2 = require(\"./getWeekYear.js\");\nvar _index3 = require(\"./startOfWeek.js\");\n\nvar _index4 = require(\"./_lib/defaultOptions.js\");\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfWeekYear(date, options) {\n const defaultOptions = (0, _index4.getDefaultOptions)();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = (0, _index2.getWeekYear)(date, options);\n const firstWeek = (0, _index.constructFrom)(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = (0, _index3.startOfWeek)(firstWeek, options);\n return _date;\n}\n","\"use strict\";\nexports.startOfYear = startOfYear;\nvar _index = require(\"./toDate.js\");\nvar _index2 = require(\"./constructFrom.js\");\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear(date) {\n const cleanDate = (0, _index.toDate)(date);\n const _date = (0, _index2.constructFrom)(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n","\"use strict\";\nexports.startOfYesterday = startOfYesterday; /**\n * @name startOfYesterday\n * @category Day Helpers\n * @summary Return the start of yesterday.\n * @pure false\n *\n * @description\n * Return the start of yesterday.\n *\n * @returns The start of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfYesterday()\n * //=> Sun Oct 5 2014 00:00:00\n */\nfunction startOfYesterday() {\n const now = new Date();\n const year = now.getFullYear();\n const month = now.getMonth();\n const day = now.getDate();\n\n const date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\n","\"use strict\";\nexports.sub = sub;\nvar _index = require(\"./subDays.js\");\nvar _index2 = require(\"./subMonths.js\");\n\nvar _index3 = require(\"./constructFrom.js\");\n\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\nfunction sub(date, duration) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Subtract years and months\n const dateWithoutMonths = (0, _index2.subMonths)(date, months + years * 12);\n\n // Subtract weeks and days\n const dateWithoutDays = (0, _index.subDays)(\n dateWithoutMonths,\n days + weeks * 7,\n );\n\n // Subtract hours, minutes and seconds\n const minutestoSub = minutes + hours * 60;\n const secondstoSub = seconds + minutestoSub * 60;\n const mstoSub = secondstoSub * 1000;\n const finalDate = (0, _index3.constructFrom)(\n date,\n dateWithoutDays.getTime() - mstoSub,\n );\n\n return finalDate;\n}\n","\"use strict\";\nexports.subBusinessDays = subBusinessDays;\nvar _index = require(\"./addBusinessDays.js\");\n\n/**\n * @name subBusinessDays\n * @category Day Helpers\n * @summary Substract the specified number of business days (mon - fri) to the given date.\n *\n * @description\n * Substract the specified number of business days (mon - fri) to the given date, ignoring weekends.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of business days to be subtracted.\n *\n * @returns The new date with the business days subtracted\n *\n * @example\n * // Substract 10 business days from 1 September 2014:\n * const result = subBusinessDays(new Date(2014, 8, 1), 10)\n * //=> Mon Aug 18 2014 00:00:00 (skipped weekend days)\n */\nfunction subBusinessDays(date, amount) {\n return (0, _index.addBusinessDays)(date, -amount);\n}\n","\"use strict\";\nexports.subDays = subDays;\nvar _index = require(\"./addDays.js\");\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nfunction subDays(date, amount) {\n return (0, _index.addDays)(date, -amount);\n}\n","\"use strict\";\nexports.subHours = subHours;\nvar _index = require(\"./addHours.js\");\n\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be subtracted.\n *\n * @returns The new date with the hours subtracted\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\nfunction subHours(date, amount) {\n return (0, _index.addHours)(date, -amount);\n}\n","\"use strict\";\nexports.subISOWeekYears = subISOWeekYears;\nvar _index = require(\"./addISOWeekYears.js\");\n\n/**\n * @name subISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of ISO week-numbering years to be subtracted.\n *\n * @returns The new date with the ISO week-numbering years subtracted\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * const result = subISOWeekYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\nfunction subISOWeekYears(date, amount) {\n return (0, _index.addISOWeekYears)(date, -amount);\n}\n","\"use strict\";\nexports.subMilliseconds = subMilliseconds;\nvar _index = require(\"./addMilliseconds.js\");\n\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be subtracted.\n *\n * @returns The new date with the milliseconds subtracted\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds(date, amount) {\n return (0, _index.addMilliseconds)(date, -amount);\n}\n","\"use strict\";\nexports.subMinutes = subMinutes;\nvar _index = require(\"./addMinutes.js\");\n\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be subtracted.\n *\n * @returns The new date with the minutes subtracted\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nfunction subMinutes(date, amount) {\n return (0, _index.addMinutes)(date, -amount);\n}\n","\"use strict\";\nexports.subMonths = subMonths;\nvar _index = require(\"./addMonths.js\");\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction subMonths(date, amount) {\n return (0, _index.addMonths)(date, -amount);\n}\n","\"use strict\";\nexports.subQuarters = subQuarters;\nvar _index = require(\"./addQuarters.js\");\n\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be subtracted.\n *\n * @returns The new date with the quarters subtracted\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * const result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\nfunction subQuarters(date, amount) {\n return (0, _index.addQuarters)(date, -amount);\n}\n","\"use strict\";\nexports.subSeconds = subSeconds;\nvar _index = require(\"./addSeconds.js\");\n\n/**\n * @name subSeconds\n * @category Second Helpers\n * @summary Subtract the specified number of seconds from the given date.\n *\n * @description\n * Subtract the specified number of seconds from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be subtracted.\n *\n * @returns The new date with the seconds subtracted\n *\n * @example\n * // Subtract 30 seconds from 10 July 2014 12:45:00:\n * const result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:44:30\n */\nfunction subSeconds(date, amount) {\n return (0, _index.addSeconds)(date, -amount);\n}\n","\"use strict\";\nexports.subWeeks = subWeeks;\nvar _index = require(\"./addWeeks.js\");\n\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be subtracted.\n *\n * @returns The new date with the weeks subtracted\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nfunction subWeeks(date, amount) {\n return (0, _index.addWeeks)(date, -amount);\n}\n","\"use strict\";\nexports.subYears = subYears;\nvar _index = require(\"./addYears.js\");\n\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be subtracted.\n *\n * @returns The new date with the years subtracted\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\nfunction subYears(date, amount) {\n return (0, _index.addYears)(date, -amount);\n}\n","\"use strict\";\nexports.toDate = toDate;\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n","\"use strict\";\nexports.transpose = transpose;\nvar _index = require(\"./constructFrom.js\");\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nfunction transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? (0, _index.constructFrom)(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n","\"use strict\";\nexports.weeksToDays = weeksToDays;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name weeksToDays\n * @category Conversion Helpers\n * @summary Convert weeks to days.\n *\n * @description\n * Convert a number of weeks to a full number of days.\n *\n * @param weeks - The number of weeks to be converted\n *\n * @returns The number of weeks converted in days\n *\n * @example\n * // Convert 2 weeks into days\n * const result = weeksToDays(2)\n * //=> 14\n */\nfunction weeksToDays(weeks) {\n return Math.trunc(weeks * _index.daysInWeek);\n}\n","\"use strict\";\nexports.yearsToDays = yearsToDays;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name yearsToDays\n * @category Conversion Helpers\n * @summary Convert years to days.\n *\n * @description\n * Convert a number of years to a full number of days.\n *\n * @param years - The number of years to be converted\n *\n * @returns The number of years converted in days\n *\n * @example\n * // Convert 2 years into days\n * const result = yearsToDays(2)\n * //=> 730\n */\nfunction yearsToDays(years) {\n return Math.trunc(years * _index.daysInYear);\n}\n","\"use strict\";\nexports.yearsToMonths = yearsToMonths;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name yearsToMonths\n * @category Conversion Helpers\n * @summary Convert years to months.\n *\n * @description\n * Convert a number of years to a full number of months.\n *\n * @param years - The number of years to be converted\n *\n * @returns The number of years converted in months\n *\n * @example\n * // Convert 2 years into months\n * const result = yearsToMonths(2)\n * //=> 24\n */\nfunction yearsToMonths(years) {\n return Math.trunc(years * _index.monthsInYear);\n}\n","\"use strict\";\nexports.yearsToQuarters = yearsToQuarters;\nvar _index = require(\"./constants.js\");\n\n/**\n * @name yearsToQuarters\n * @category Conversion Helpers\n * @summary Convert years to quarters.\n *\n * @description\n * Convert a number of years to a full number of quarters.\n *\n * @param years - The number of years to be converted\n *\n * @returns The number of years converted in quarters\n *\n * @example\n * // Convert 2 years to quarters\n * const result = yearsToQuarters(2)\n * //=> 8\n */\nfunction yearsToQuarters(years) {\n return Math.trunc(years * _index.quartersInYear);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 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","const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = function (x) {\n return x;\n };\n}\n\nif (!apply) {\n apply = function (fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!construct) {\n construct = function (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n\nconst regExpTest = unapply(RegExp.prototype.test);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param {Function} func - The function to be wrapped and called.\n * @returns {Function} A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param {Function} func - The constructor function to be wrapped and called.\n * @returns {Function} A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return (...args) => construct(func, args);\n}\n\n/**\n * Add properties to a lookup table\n *\n * @param {Object} set - The set to which elements will be added.\n * @param {Array} array - The array containing elements to be added to the set.\n * @param {Function} transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns {Object} The modified set with added elements.\n */\nfunction addToSet(set, array, transformCaseFunc = stringToLowerCase) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/**\n * Clean up an array to harden against CSPP\n *\n * @param {Array} array - The array to be cleaned.\n * @returns {Array} The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n\n return array;\n}\n\n/**\n * Shallow clone an object\n *\n * @param {Object} object - The object to be cloned.\n * @returns {Object} A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (\n value &&\n typeof value === 'object' &&\n value.constructor === Object\n ) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n\n return newObject;\n}\n\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param {Object} object - The object to look up the getter function in its prototype chain.\n * @param {String} prop - The property name for which to find the getter function.\n * @returns {Function} The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue() {\n return null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\n setPrototypeOf,\n seal,\n clone,\n create,\n objectHasOwnProperty,\n // RegExp\n regExpTest,\n // String\n stringIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n addToSet,\n // Reflect\n unapply,\n unconstruct,\n};\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle',\n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n 'g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'font-face',\n 'font-face-format',\n 'font-face-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n]);\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n 'mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts',\n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeholder',\n 'playsinline',\n 'popover',\n 'popovertarget',\n 'popovertargetaction',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'wrap',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\nexport const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n create,\n objectHasOwnProperty,\n} from './utils.js';\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5, // Deprecated\n entityNode: 6, // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12, // Deprecated\n};\n\nconst getGlobal = function () {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {HTMLScriptElement} purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return {TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, purifyHostElement) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (\n !window ||\n !window.document ||\n window.document.nodeType !== NODE_TYPE.document\n ) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n let { document } = window;\n\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n let trustedTypesPolicy;\n let emptyHTML = '';\n\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n implementation.createHTMLDocument !== undefined;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg = {}) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? DEFAULT_PARSER_MEDIA_TYPE\n : cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS')\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR')\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES')\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR')\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS')\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS')\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS')\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR')\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES')\n ? cfg.USE_PROFILES\n : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, TAGS.text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.'\n );\n }\n\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate(\n 'TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.'\n );\n }\n\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n currentScript\n );\n }\n\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.svgDisallowed,\n ]);\n const ALL_MATHML_TAGS = addToSet({}, [\n ...TAGS.mathMl,\n ...TAGS.mathMlDisallowed,\n ]);\n\n /**\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPurify.removed, { element: node });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '' +\n dirty +\n '';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n document.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param {Node} root The root element or node to start traversing on.\n * @return {NodeIterator} The created NodeIterator\n */\n const _createNodeIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT |\n NodeFilter.SHOW_COMMENT |\n NodeFilter.SHOW_TEXT |\n NodeFilter.SHOW_PROCESSING_INSTRUCTION |\n NodeFilter.SHOW_CDATA_SECTION,\n null\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param {Node} object object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNode = function (object) {\n return typeof Node === 'function' && object instanceof Node;\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n const _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content = null;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (\n SAFE_FOR_XML &&\n currentNode.nodeType === NODE_TYPE.comment &&\n regExpTest(/<[/\\w]/g, currentNode.data)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n ) {\n return false;\n }\n\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n ) {\n return false;\n }\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if (\n (tagName === 'noscript' ||\n tagName === 'noembed' ||\n tagName === 'noframes') &&\n regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n content = stringReplace(content, expr, ' ');\n });\n\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_isBasicCustomElement(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n } else if (value) {\n return false;\n } else {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n }\n\n return true;\n };\n\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param {string} tagName name of the tag of the node to sanitize\n * @returns {boolean} Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function (tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n };\n let l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const { name, namespaceURI, value: attrValue } = attr;\n const lcName = transformCaseFunc(name);\n\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n value = stringReplace(value, expr, ' ');\n });\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML': {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n\n case 'TrustedScriptURL': {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n\n default: {\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} cfg object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (\n importedNode.nodeType === NODE_TYPE.element &&\n importedNode.nodeName === 'BODY'\n ) {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], (expr) => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg = {}) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {String} tag Tag name of containing element.\n * @param {String} attr Attribute name.\n * @param {String} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\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\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\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","// 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\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\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.\nEventEmitter.defaultMaxListeners = 10;\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(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\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\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 undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\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__proto__: null,\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__proto__: null,\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('hasown');\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 $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 $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\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 (!$defineProperty) {\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 test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\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\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\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\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","/** @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","exports.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\nexports.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","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","'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 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 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 whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","(function(exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n }\n\n // Check if they are the same type.\n var firstType = Object.prototype.toString.call(first);\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n }\n // We know that first and second have the same type so we can just check the\n // first type from now on.\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n return true;\n }\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n keysSeen[key] = true;\n }\n }\n // Now check that there aren't any keys in second that weren't\n // in first.\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n for (var key in a) {\n merged[key] = a[key];\n }\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n return merged;\n }\n\n var trimLeft;\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n }\n\n // Type constants used to define functions.\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n var TYPE_NAME_TABLE = {\n 0: 'number',\n 1: 'any',\n 2: 'string',\n 3: 'array',\n 4: 'object',\n 5: 'boolean',\n 6: 'expression',\n 7: 'null',\n 8: 'Array',\n 9: 'Array'\n };\n\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN= \"Lparen\";\n var TOK_LITERAL= \"Literal\";\n\n // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n\n function isAlpha(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n ch === \"_\";\n }\n\n function isNum(ch) {\n return (ch >= \"0\" && ch <= \"9\") ||\n ch === \"-\";\n }\n function isAlphaNum(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n (ch >= \"0\" && ch <= \"9\") ||\n ch === \"_\";\n }\n\n function Lexer() {\n }\n Lexer.prototype = {\n tokenize: function(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current});\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n var literal = this._consumeLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: literal,\n start: start});\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({type: TOK_AND, value: \"&&\", start: start});\n } else {\n tokens.push({type: TOK_EXPREF, value: \"&\", start: start});\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({type: TOK_OR, value: \"||\", start: start});\n } else {\n tokens.push({type: TOK_PIPE, value: \"|\", start: start});\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n return tokens;\n },\n\n _consumeUnquotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n return stream.slice(start, this._current);\n },\n\n _consumeQuotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n\n _consumeRawStringLiteral: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n\n _consumeNumber: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n var value = parseInt(stream.slice(start, this._current));\n return {type: TOK_NUMBER, value: value, start: start};\n },\n\n _consumeLBracket: function(stream) {\n var start = this._current;\n this._current++;\n if (stream[this._current] === \"?\") {\n this._current++;\n return {type: TOK_FILTER, value: \"[?\", start: start};\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {type: TOK_FLATTEN, value: \"[]\", start: start};\n } else {\n return {type: TOK_LBRACKET, value: \"[\", start: start};\n }\n },\n\n _consumeOperator: function(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_NE, value: \"!=\", start: start};\n } else {\n return {type: TOK_NOT, value: \"!\", start: start};\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_LTE, value: \"<=\", start: start};\n } else {\n return {type: TOK_LT, value: \"<\", start: start};\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_GTE, value: \">=\", start: start};\n } else {\n return {type: TOK_GT, value: \">\", start: start};\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_EQ, value: \"==\", start: start};\n }\n }\n },\n\n _consumeLiteral: function(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n while(stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n }\n // +1 gets us to the ending \"`\", +1 to move on to the next char.\n this._current++;\n return literal;\n },\n\n _looksLikeJSON: function(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {\n }\n\n Parser.prototype = {\n parse: function(expression) {\n this._loadTokens(expression);\n this.index = 0;\n var ast = this.expression(0);\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n var error = new Error(\n \"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n return ast;\n },\n\n _loadTokens: function(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({type: TOK_EOF, value: \"\", start: expression.length});\n this.tokens = tokens;\n },\n\n expression: function(rbp) {\n var leftToken = this._lookaheadToken(0);\n this._advance();\n var left = this.nud(leftToken);\n var currentToken = this._lookahead(0);\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n return left;\n },\n\n _lookahead: function(number) {\n return this.tokens[this.index + number].type;\n },\n\n _lookaheadToken: function(number) {\n return this.tokens[this.index + number];\n },\n\n _advance: function() {\n this.index++;\n },\n\n nud: function(token) {\n var left;\n var right;\n var expression;\n switch (token.type) {\n case TOK_LITERAL:\n return {type: \"Literal\", value: token.value};\n case TOK_UNQUOTEDIDENTIFIER:\n return {type: \"Field\", name: token.value};\n case TOK_QUOTEDIDENTIFIER:\n var node = {type: \"Field\", name: token.value};\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n }\n return node;\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {type: \"NotExpression\", children: [right]};\n case TOK_STAR:\n left = {type: \"Identity\"};\n right = null;\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_FILTER:\n return this.led(token.type, {type: \"Identity\"});\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n case TOK_FLATTEN:\n left = {type: TOK_FLATTEN, children: [{type: \"Identity\"}]};\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [left, right]};\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({type: \"Identity\"}, right);\n } else if (this._lookahead(0) === TOK_STAR &&\n this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n this._advance();\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\",\n children: [{type: \"Identity\"}, right]};\n }\n return this._parseMultiselectList();\n case TOK_CURRENT:\n return {type: TOK_CURRENT};\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {type: \"ExpressionReference\", children: [expression]};\n case TOK_LPAREN:\n var args = [];\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n return args[0];\n default:\n this._errorToken(token);\n }\n },\n\n led: function(tokenName, left) {\n var right;\n switch(tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {type: \"Subexpression\", children: [left, right]};\n }\n // Creating a projection.\n this._advance();\n right = this._parseProjectionRHS(rbp);\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {type: TOK_PIPE, children: [left, right]};\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {type: \"OrExpression\", children: [left, right]};\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {type: \"AndExpression\", children: [left, right]};\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n node = {type: \"Function\", name: name, children: args};\n return node;\n case TOK_FILTER:\n var condition = this.expression(0);\n this._match(TOK_RBRACKET);\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n return {type: \"FilterProjection\", children: [left, right, condition]};\n case TOK_FLATTEN:\n var leftNode = {type: TOK_FLATTEN, children: [left]};\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [leftNode, rightNode]};\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n }\n this._match(TOK_STAR);\n this._match(TOK_RBRACKET);\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\", children: [left, right]};\n default:\n this._errorToken(this._lookaheadToken(0));\n }\n },\n\n _match: function(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n\n _errorToken: function(token) {\n var error = new Error(\"Invalid token (\" +\n token.type + \"): \\\"\" +\n token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n\n\n _parseIndexExpression: function() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value};\n this._advance();\n this._match(TOK_RBRACKET);\n return node;\n }\n },\n\n _projectIfSlice: function(left, right) {\n var indexExpr = {type: \"IndexExpression\", children: [left, right]};\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n\n _parseSliceExpression: function() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n var currentToken = this._lookahead(0);\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n this._advance();\n } else {\n var t = this._lookahead(0);\n var error = new Error(\"Syntax error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n currentToken = this._lookahead(0);\n }\n this._match(TOK_RBRACKET);\n return {\n type: \"Slice\",\n children: parts\n };\n },\n\n _parseComparator: function(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {type: \"Comparator\", name: comparator, children: [left, right]};\n },\n\n _parseDotRHS: function(rbp) {\n var lookahead = this._lookahead(0);\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n return this._parseMultiselectHash();\n }\n },\n\n _parseProjectionRHS: function(rbp) {\n var right;\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {type: \"Identity\"};\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Sytanx error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n return right;\n },\n\n _parseMultiselectList: function() {\n var expressions = [];\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n this._match(TOK_RBRACKET);\n return {type: \"MultiSelectList\", children: expressions};\n },\n\n _parseMultiselectHash: function() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n for (;;) {\n keyToken = this._lookaheadToken(0);\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" +\n keyToken.type);\n }\n keyName = keyToken.value;\n this._advance();\n this._match(TOK_COLON);\n value = this.expression(0);\n node = {type: \"KeyValuePair\", name: keyName, value: value};\n pairs.push(node);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n break;\n }\n }\n return {type: \"MultiSelectHash\", children: pairs};\n }\n };\n\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function(node, value) {\n return this.visit(node, value);\n },\n\n visit: function(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n switch (node.type) {\n case \"Field\":\n if (value !== null && isObject(value)) {\n field = value[node.name];\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n }\n return null;\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n if (result === null) {\n return null;\n }\n }\n return result;\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n var index = node.value;\n if (index < 0) {\n index = value.length + index;\n }\n result = value[index];\n if (result === undefined) {\n result = null;\n }\n return result;\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n return result;\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n collected = [];\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n if (!isObject(base)) {\n return null;\n }\n collected = [];\n var values = objValues(base);\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n var filtered = [];\n var finalResults = [];\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n if (current !== null) {\n finalResults.push(current);\n }\n }\n return finalResults;\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n switch(node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n case TOK_GT:\n result = first > second;\n break;\n case TOK_GTE:\n result = first >= second;\n break;\n case TOK_LT:\n result = first < second;\n break;\n case TOK_LTE:\n result = first <= second;\n break;\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n return result;\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n if (!isArray(original)) {\n return null;\n }\n var merged = [];\n for (i = 0; i < original.length; i++) {\n current = original[i];\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n return merged;\n case \"Identity\":\n return value;\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n collected = [];\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n return collected;\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n collected = {};\n var child;\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n return collected;\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n return matched;\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n return this.visit(node.children[1], value);\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n case \"Literal\":\n return node.value;\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n case TOK_CURRENT:\n return value;\n case \"Function\":\n var resolvedArgs = [];\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n return this.runtime.callFunction(node.name, resolvedArgs);\n case \"ExpressionReference\":\n var refNode = node.children[0];\n // Tag the node with a specific attribute so the type\n // checker verify the type.\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n\n computeSliceParams: function(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n\n capSliceRange: function(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n return actualValue;\n }\n\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]},\n avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]},\n contains: {\n _func: this._functionContains,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]},\n {types: [TYPE_ANY]}]},\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]},\n length: {\n _func: this._functionLength,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]},\n map: {\n _func: this._functionMap,\n _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]},\n max: {\n _func: this._functionMax,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{types: [TYPE_OBJECT], variadic: true}]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n min: {\n _func: this._functionMin,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]},\n keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]},\n values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]},\n sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]},\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n join: {\n _func: this._functionJoin,\n _signature: [\n {types: [TYPE_STRING]},\n {types: [TYPE_ARRAY_STRING]}\n ]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]},\n \"to_array\": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]},\n \"to_string\": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]},\n \"to_number\": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]},\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{types: [TYPE_ANY], variadic: true}]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n return functionEntry._func.call(this, resolvedArgs);\n },\n\n _validateArgs: function(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes at least\" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes \" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n var currentSpec;\n var actualType;\n var typeMatched;\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n if (!typeMatched) {\n var expected = currentSpec\n .map(function(typeIdentifier) {\n return TYPE_NAME_TABLE[typeIdentifier];\n })\n .join(',');\n throw new Error(\"TypeError: \" + name + \"() \" +\n \"expected argument \" + (i + 1) +\n \" to be type \" + expected +\n \" but received type \" +\n TYPE_NAME_TABLE[actualType] + \" instead.\");\n }\n }\n },\n\n _typeMatches: function(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n if (expected === TYPE_ARRAY_STRING ||\n expected === TYPE_ARRAY_NUMBER ||\n expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(\n this._getTypeName(argValue[i]), subtype,\n argValue[i])) {\n return false;\n }\n }\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n case \"[object Number]\":\n return TYPE_NUMBER;\n case \"[object Array]\":\n return TYPE_ARRAY;\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n case \"[object Null]\":\n return TYPE_NULL;\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n }\n },\n\n _functionStartsWith: function(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n\n _functionEndsWith: function(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n\n _functionReverse: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n\n _functionAbs: function(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n\n _functionCeil: function(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n\n _functionAvg: function(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n return sum / inputArray.length;\n },\n\n _functionContains: function(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n\n _functionFloor: function(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n\n _functionLength: function(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n\n _functionMap: function(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n return mapped;\n },\n\n _functionMerge: function(resolvedArgs) {\n var merged = {};\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n return merged;\n },\n\n _functionMax: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n return maxElement;\n }\n } else {\n return null;\n }\n },\n\n _functionMin: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n return minElement;\n }\n } else {\n return null;\n }\n },\n\n _functionSum: function(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n return sum;\n },\n\n _functionType: function(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n case TYPE_STRING:\n return \"string\";\n case TYPE_ARRAY:\n return \"array\";\n case TYPE_OBJECT:\n return \"object\";\n case TYPE_BOOLEAN:\n return \"boolean\";\n case TYPE_EXPREF:\n return \"expref\";\n case TYPE_NULL:\n return \"null\";\n }\n },\n\n _functionKeys: function(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n\n _functionValues: function(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n },\n\n _functionJoin: function(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n\n _functionToArray: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n\n _functionToString: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n\n _functionToNumber: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n var convertedValue;\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n return null;\n },\n\n _functionNotNull: function(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n return null;\n },\n\n _functionSort: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n\n _functionSortBy: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n var requiredType = this._getTypeName(\n interpreter.visit(exprefNode, sortedArray[0]));\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n var that = this;\n // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n var decorated = [];\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n decorated.sort(function(a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprB));\n }\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n });\n // Undecorate: extract out the original list elements.\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n return sortedArray;\n },\n\n _functionMaxBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n return maxRecord;\n },\n\n _functionMinBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n return minRecord;\n },\n\n createKeyFunction: function(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n var keyFunc = function(x) {\n var current = interpreter.visit(exprefNode, x);\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes +\n \", received \" + that._getTypeName(current);\n throw new Error(msg);\n }\n return current;\n };\n return keyFunc;\n }\n\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser();\n // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","\nmodule.exports = function load (src, opts, cb) {\n var head = document.head || document.getElementsByTagName('head')[0]\n var script = document.createElement('script')\n\n if (typeof opts === 'function') {\n cb = opts\n opts = {}\n }\n\n opts = opts || {}\n cb = cb || function() {}\n\n script.type = opts.type || 'text/javascript'\n script.charset = opts.charset || 'utf8';\n script.async = 'async' in opts ? !!opts.async : true\n script.src = src\n\n if (opts.attrs) {\n setAttributes(script, opts.attrs)\n }\n\n if (opts.text) {\n script.text = '' + opts.text\n }\n\n var onend = 'onload' in script ? stdOnEnd : ieOnEnd\n onend(script, cb)\n\n // some good legacy browsers (firefox) fail the 'in' detection above\n // so as a fallback we always set onload\n // old IE will ignore this and new IE will set onload\n if (!script.onload) {\n stdOnEnd(script, cb);\n }\n\n head.appendChild(script)\n}\n\nfunction setAttributes(script, attrs) {\n for (var attr in attrs) {\n script.setAttribute(attr, attrs[attr]);\n }\n}\n\nfunction stdOnEnd (script, cb) {\n script.onload = function () {\n this.onerror = this.onload = null\n cb(null, script)\n }\n script.onerror = function () {\n // this.onload = null here is necessary\n // because even IE9 works not like others\n this.onerror = this.onload = null\n cb(new Error('Failed to load ' + this.src), script)\n }\n}\n\nfunction ieOnEnd (script, cb) {\n script.onreadystatechange = function () {\n if (this.readyState != 'complete' && this.readyState != 'loaded') return\n this.onreadystatechange = null\n cb(null, script) // there is no way to catch loading errors in IE8\n }\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery 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 `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\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/** Used for built-in method references. */\nvar objectProto = Object.prototype;\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 objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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 */\nvar now = function() {\n return root.Date.now();\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 */\nfunction 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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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 * 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 && (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 && typeof value == 'object';\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 */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\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 */\nfunction 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 = value.replace(reTrim, '');\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\nmodule.exports = debounce;\n","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar DEVICE_TYPES = {\n MOBILE: \"mobile\",\n TABLET: \"tablet\",\n SMART_TV: \"smarttv\",\n CONSOLE: \"console\",\n WEARABLE: \"wearable\",\n BROWSER: undefined\n};\n\nvar BROWSER_TYPES = {\n CHROME: \"Chrome\",\n FIREFOX: \"Firefox\",\n OPERA: \"Opera\",\n YANDEX: \"Yandex\",\n SAFARI: \"Safari\",\n INTERNET_EXPLORER: \"Internet Explorer\",\n EDGE: \"Edge\",\n CHROMIUM: \"Chromium\",\n IE: \"IE\",\n MOBILE_SAFARI: \"Mobile Safari\",\n EDGE_CHROMIUM: \"Edge Chromium\"\n};\n\nvar OS_TYPES = {\n IOS: \"iOS\",\n ANDROID: \"Android\",\n WINDOWS_PHONE: \"Windows Phone\",\n WINDOWS: \"Windows\",\n MAC_OS: \"Mac OS\"\n};\n\nvar defaultData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nmodule.exports = { BROWSER_TYPES: BROWSER_TYPES, DEVICE_TYPES: DEVICE_TYPES, OS_TYPES: OS_TYPES, defaultData: defaultData };\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar UAParser = __webpack_require__(2);\n\nvar _require = __webpack_require__(0),\n BROWSER_TYPES = _require.BROWSER_TYPES,\n OS_TYPES = _require.OS_TYPES,\n DEVICE_TYPES = _require.DEVICE_TYPES;\n\nvar _require2 = __webpack_require__(4),\n checkType = _require2.checkType,\n broPayload = _require2.broPayload,\n mobilePayload = _require2.mobilePayload,\n wearPayload = _require2.wearPayload,\n consolePayload = _require2.consolePayload,\n stvPayload = _require2.stvPayload,\n getNavigatorInstance = _require2.getNavigatorInstance,\n isIOS13Check = _require2.isIOS13Check;\n\nvar UA = new UAParser();\n\nvar browser = UA.getBrowser();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar CHROME = BROWSER_TYPES.CHROME,\n CHROMIUM = BROWSER_TYPES.CHROMIUM,\n IE = BROWSER_TYPES.IE,\n INTERNET_EXPLORER = BROWSER_TYPES.INTERNET_EXPLORER,\n OPERA = BROWSER_TYPES.OPERA,\n FIREFOX = BROWSER_TYPES.FIREFOX,\n SAFARI = BROWSER_TYPES.SAFARI,\n EDGE = BROWSER_TYPES.EDGE,\n YANDEX = BROWSER_TYPES.YANDEX,\n MOBILE_SAFARI = BROWSER_TYPES.MOBILE_SAFARI;\nvar MOBILE = DEVICE_TYPES.MOBILE,\n TABLET = DEVICE_TYPES.TABLET,\n SMART_TV = DEVICE_TYPES.SMART_TV,\n BROWSER = DEVICE_TYPES.BROWSER,\n WEARABLE = DEVICE_TYPES.WEARABLE,\n CONSOLE = DEVICE_TYPES.CONSOLE;\nvar ANDROID = OS_TYPES.ANDROID,\n WINDOWS_PHONE = OS_TYPES.WINDOWS_PHONE,\n IOS = OS_TYPES.IOS,\n WINDOWS = OS_TYPES.WINDOWS,\n MAC_OS = OS_TYPES.MAC_OS;\n\n\nvar isMobileType = function isMobileType() {\n return device.type === MOBILE;\n};\nvar isTabletType = function isTabletType() {\n return device.type === TABLET;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case MOBILE:\n case TABLET:\n return true;\n default:\n return false;\n }\n};\n\nvar isEdgeChromiumType = function isEdgeChromiumType() {\n if (os.name === OS_TYPES.WINDOWS && os.version === '10') {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n }\n\n return false;\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === SMART_TV;\n};\nvar isBrowserType = function isBrowserType() {\n return device.type === BROWSER;\n};\nvar isWearableType = function isWearableType() {\n return device.type === WEARABLE;\n};\nvar isConsoleType = function isConsoleType() {\n return device.type === CONSOLE;\n};\nvar isAndroidType = function isAndroidType() {\n return os.name === ANDROID;\n};\nvar isWindowsType = function isWindowsType() {\n return os.name === WINDOWS;\n};\nvar isMacOsType = function isMacOsType() {\n return os.name === MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === WINDOWS_PHONE;\n};\nvar isIOSType = function isIOSType() {\n return os.name === IOS;\n};\nvar isChromeType = function isChromeType() {\n return browser.name === CHROME;\n};\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === FIREFOX;\n};\nvar isChromiumType = function isChromiumType() {\n return browser.name === CHROMIUM;\n};\nvar isEdgeType = function isEdgeType() {\n return browser.name === EDGE;\n};\nvar isYandexType = function isYandexType() {\n return browser.name === YANDEX;\n};\nvar isSafariType = function isSafariType() {\n return browser.name === SAFARI || browser.name === MOBILE_SAFARI;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === MOBILE_SAFARI;\n};\nvar isOperaType = function isOperaType() {\n return browser.name === OPERA;\n};\nvar isIEType = function isIEType() {\n return browser.name === INTERNET_EXPLORER || browser.name === IE;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent.toLowerCase();\n\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return browser.major;\n};\nvar getBrowserVersion = function getBrowserVersion() {\n return browser.version;\n};\nvar getOsVersion = function getOsVersion() {\n return os.version ? os.version : \"none\";\n};\nvar getOsName = function getOsName() {\n return os.name ? os.name : \"none\";\n};\nvar getBrowserName = function getBrowserName() {\n return browser.name;\n};\nvar getMobileVendor = function getMobileVendor() {\n return device.vendor ? device.vendor : \"none\";\n};\nvar getMobileModel = function getMobileModel() {\n return device.model ? device.model : \"none\";\n};\nvar getEngineName = function getEngineName() {\n return engine.name;\n};\nvar getEngineVersion = function getEngineVersion() {\n return engine.version;\n};\nvar getUseragent = function getUseragent() {\n return ua;\n};\nvar getDeviceType = function getDeviceType() {\n return device.type;\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType() || getIPad13();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType() || getIPad13();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType() || getIPad13();\nvar isBrowser = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType() || getIPad13();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType() || isEdgeChromiumType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType();\nvar isLegacyEdge = isEdgeType();\nvar isWindows = isWindowsType();\nvar isMacOs = isMacOsType();\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n};\n\nmodule.exports = {\n deviceDetect: deviceDetect,\n isSmartTV: isSmartTV,\n isConsole: isConsole,\n isWearable: isWearable,\n isMobileSafari: isMobileSafari,\n isChromium: isChromium,\n isMobile: isMobile,\n isMobileOnly: isMobileOnly,\n isTablet: isTablet,\n isBrowser: isBrowser,\n isAndroid: isAndroid,\n isWinPhone: isWinPhone,\n isIOS: isIOS,\n isChrome: isChrome,\n isFirefox: isFirefox,\n isSafari: isSafari,\n isOpera: isOpera,\n isIE: isIE,\n osVersion: osVersion,\n osName: osName,\n fullBrowserVersion: fullBrowserVersion,\n browserVersion: browserVersion,\n browserName: browserName,\n mobileVendor: mobileVendor,\n mobileModel: mobileModel,\n engineName: engineName,\n engineVersion: engineVersion,\n getUA: getUA,\n isEdge: isEdge,\n isYandex: isYandex,\n deviceType: deviceType,\n isIOS13: isIOS13,\n isIPad13: isIPad13,\n isIPhone13: isIPhone13,\n isIPod13: isIPod13,\n isElectron: isElectron,\n isEdgeChromium: isEdgeChromium,\n isLegacyEdge: isLegacyEdge,\n isWindows: isWindows,\n isMacOs: isMacOs\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * UAParser.js v0.7.18\n * Lightweight JavaScript-based User-Agent string parser\n * https://github.com/faisalman/ua-parser-js\n *\n * Copyright © 2012-2016 Faisal Salman \n * Dual licensed under GPLv2 or MIT\n */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"0.7.18\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\";var util={extend:function(regexes,extensions){var margedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){margedRegexes[i]=extensions[i].concat(regexes[i])}else{margedRegexes[i]=regexes[i]}}return margedRegexes},has:function(str1,str2){if(typeof str1===\"string\"){return str2.toLowerCase().indexOf(str1.toLowerCase())!==-1}else{return false}},lowerize:function(str){return str.toLowerCase()},major:function(version){return typeof version===STR_TYPE?version.replace(/[^\\d\\.]/g,\"\").split(\".\")[0]:undefined},trim:function(str){return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")}};var mapper={rgx:function(ua,arrays){var i=0,j,k,p,q,matches,match;while(i0){if(q.length==2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length==3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length==4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},str:function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j 1 && !window.MSStream);\n};\n\nmodule.exports = {\n checkType: checkType,\n broPayload: broPayload,\n mobilePayload: mobilePayload,\n stvPayload: stvPayload,\n consolePayload: consolePayload,\n wearPayload: wearPayload,\n getNavigatorInstance: getNavigatorInstance,\n isIOS13Check: isIOS13Check\n};\n\n/***/ })\n/******/ ]);","module.exports = require('./src/normalizeWheel.js');\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners:\n canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n * Provides entirely client-side User Agent and OS detection. You should prefer\n * the non-deprecated UserAgent module when possible, which exposes our\n * authoritative server-side PHP-based detection to the client.\n *\n * Usage is straightforward:\n *\n * if (UserAgent_DEPRECATED.ie()) {\n * // IE\n * }\n *\n * You can also do version checks:\n *\n * if (UserAgent_DEPRECATED.ie() >= 7) {\n * // IE7 or better\n * }\n *\n * The browser functions will return NaN if the browser does not match, so\n * you can also do version compares the other way:\n *\n * if (UserAgent_DEPRECATED.ie() < 7) {\n * // IE6 or worse\n * }\n *\n * Note that the version is a float and may include a minor version number,\n * so you should always use range operators to perform comparisons, not\n * strict equality.\n *\n * **Note:** You should **strongly** prefer capability detection to browser\n * version detection where it's reasonable:\n *\n * http://www.quirksmode.org/js/support.html\n *\n * Further, we have a large number of mature wrapper functions and classes\n * which abstract away many browser irregularities. Check the documentation,\n * grep for things, or ask on javascript@lists.facebook.com before writing yet\n * another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n if (_populated) {\n return;\n }\n\n _populated = true;\n\n // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas);\n\n // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n _win64 = !!(/Win64/.exec(uas));\n\n if (agent) {\n _ie = agent[1] ? parseFloat(agent[1]) : (\n agent[5] ? parseFloat(agent[5]) : NaN);\n // IE compatibility mode\n if (_ie && document && document.documentMode) {\n _ie = document.documentMode;\n }\n // grab the \"true\" ie version from the trident token if available\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = _firefox = _opera = _chrome = _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set _osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = _windows = _linux = false;\n }\n}\n\nvar UserAgent_DEPRECATED = {\n\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function() {\n return _populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function() {\n return _populate() || (_ie_real_version > _ie);\n },\n\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function() {\n return UserAgent_DEPRECATED.ie() && _win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function() {\n return _populate() || _firefox;\n },\n\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function() {\n return _populate() || _opera;\n },\n\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function() {\n return _populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function() {\n return UserAgent_DEPRECATED.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome : function() {\n return _populate() || _chrome;\n },\n\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function() {\n return _populate() || _windows;\n },\n\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function() {\n return _populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function() {\n return _populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function() {\n return _populate() || _iphone;\n },\n\n mobile: function() {\n return _populate() || (_iphone || _ipad || _android || _mobile);\n },\n\n nativeApp: function() {\n // webviews inside of the native apps\n return _populate() || _native;\n },\n\n android: function() {\n return _populate() || _android;\n },\n\n ipad: function() {\n return _populate() || _ipad;\n }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n useHasFeature =\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!ExecutionEnvironment.canUseDOM ||\n capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = eventName in document;\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nmodule.exports = isEventSupported;\n","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n var sX = 0, sY = 0, // spinX, spinY\n pX = 0, pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in event) { sY = event.detail; }\n if ('wheelDelta' in event) { sY = -event.wheelDelta / 120; }\n if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n // side scrolling on FF with DOMMouseScroll\n if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) { pY = event.deltaY; }\n if ('deltaX' in event) { pX = event.deltaX; }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n return { spinX : sX,\n spinY : sY,\n pixelX : pX,\n pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n return (UserAgent_DEPRECATED.firefox())\n ? 'DOMMouseScroll'\n : (isEventSupported('wheel'))\n ? 'wheel'\n : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\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\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","/**\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","// 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// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\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 stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ariaLabelsShape = void 0;\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst ariaLabelsShape = exports.ariaLabelsShape = _propTypes.default.shape({\n dateInput: _propTypes.default.objectOf(_propTypes.default.shape({\n startDate: _propTypes.default.string,\n endDate: _propTypes.default.string\n })),\n monthPicker: _propTypes.default.string,\n yearPicker: _propTypes.default.string,\n prevButton: _propTypes.default.string,\n nextButton: _propTypes.default.string\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _DayCell = require(\"../DayCell\");\nvar _Month = _interopRequireDefault(require(\"../Month\"));\nvar _DateInput = _interopRequireDefault(require(\"../DateInput\"));\nvar _utils = require(\"../../utils\");\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _reactList = _interopRequireDefault(require(\"react-list\"));\nvar _shallowEqual = require(\"shallow-equal\");\nvar _dateFns = require(\"date-fns\");\nvar _enUS = require(\"date-fns/locale/en-US\");\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\nvar _accessibility = require(\"../../accessibility\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nclass Calendar extends _react.PureComponent {\n constructor(_props, context) {\n var _this;\n super(_props, context);\n _this = this;\n _defineProperty(this, \"focusToDate\", function (date) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.props;\n let preventUnnecessary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!props.scroll.enabled) {\n if (preventUnnecessary && props.preventSnapRefocus) {\n const focusedDateDiff = (0, _dateFns.differenceInCalendarMonths)(date, _this.state.focusedDate);\n const isAllowedForward = props.calendarFocus === 'forwards' && focusedDateDiff >= 0;\n const isAllowedBackward = props.calendarFocus === 'backwards' && focusedDateDiff <= 0;\n if ((isAllowedForward || isAllowedBackward) && Math.abs(focusedDateDiff) < props.months) {\n return;\n }\n }\n _this.setState({\n focusedDate: date\n });\n return;\n }\n const targetMonthIndex = (0, _dateFns.differenceInCalendarMonths)(date, props.minDate, _this.dateOptions);\n const visibleMonths = _this.list.getVisibleRange();\n if (preventUnnecessary && visibleMonths.includes(targetMonthIndex)) return;\n _this.isFirstRender = true;\n _this.list.scrollTo(targetMonthIndex);\n _this.setState({\n focusedDate: date\n });\n });\n _defineProperty(this, \"updateShownDate\", function () {\n let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _this.props;\n const newProps = props.scroll.enabled ? {\n ...props,\n months: _this.list.getVisibleRange().length\n } : props;\n const newFocus = (0, _utils.calcFocusDate)(_this.state.focusedDate, newProps);\n _this.focusToDate(newFocus, newProps);\n });\n _defineProperty(this, \"updatePreview\", val => {\n if (!val) {\n this.setState({\n preview: null\n });\n return;\n }\n const preview = {\n startDate: val,\n endDate: val,\n color: this.props.color\n };\n this.setState({\n preview\n });\n });\n _defineProperty(this, \"changeShownDate\", function (value) {\n let mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set';\n const {\n focusedDate\n } = _this.state;\n const {\n onShownDateChange,\n minDate,\n maxDate\n } = _this.props;\n const modeMapper = {\n monthOffset: () => (0, _dateFns.addMonths)(focusedDate, value),\n setMonth: () => (0, _dateFns.setMonth)(focusedDate, value),\n setYear: () => (0, _dateFns.setYear)(focusedDate, value),\n set: () => value\n };\n const newDate = (0, _dateFns.min)([(0, _dateFns.max)([modeMapper[mode](), minDate]), maxDate]);\n _this.focusToDate(newDate, _this.props, false);\n onShownDateChange && onShownDateChange(newDate);\n });\n _defineProperty(this, \"handleRangeFocusChange\", (rangesIndex, rangeItemIndex) => {\n this.props.onRangeFocusChange && this.props.onRangeFocusChange([rangesIndex, rangeItemIndex]);\n });\n _defineProperty(this, \"handleScroll\", () => {\n const {\n onShownDateChange,\n minDate\n } = this.props;\n const {\n focusedDate\n } = this.state;\n const {\n isFirstRender\n } = this;\n const visibleMonths = this.list.getVisibleRange();\n // prevent scroll jump with wrong visible value\n if (visibleMonths[0] === undefined) return;\n const visibleMonth = (0, _dateFns.addMonths)(minDate, visibleMonths[0] || 0);\n const isFocusedToDifferent = !(0, _dateFns.isSameMonth)(visibleMonth, focusedDate);\n if (isFocusedToDifferent && !isFirstRender) {\n this.setState({\n focusedDate: visibleMonth\n });\n onShownDateChange && onShownDateChange(visibleMonth);\n }\n this.isFirstRender = false;\n });\n _defineProperty(this, \"renderMonthAndYear\", (focusedDate, changeShownDate, props) => {\n const {\n showMonthArrow,\n minDate,\n maxDate,\n showMonthAndYearPickers,\n ariaLabels\n } = props;\n const upperYearLimit = (maxDate || Calendar.defaultProps.maxDate).getFullYear();\n const lowerYearLimit = (minDate || Calendar.defaultProps.minDate).getFullYear();\n const styles = this.styles;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n onMouseUp: e => e.stopPropagation(),\n className: styles.monthAndYearWrapper\n }, showMonthArrow ? /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames.default)(styles.nextPrevButton, styles.prevButton),\n onClick: () => changeShownDate(-1, 'monthOffset'),\n \"aria-label\": ariaLabels.prevButton\n }, /*#__PURE__*/_react.default.createElement(\"i\", null)) : null, showMonthAndYearPickers ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearPickers\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthPicker\n }, /*#__PURE__*/_react.default.createElement(\"select\", {\n value: focusedDate.getMonth(),\n onChange: e => changeShownDate(e.target.value, 'setMonth'),\n \"aria-label\": ariaLabels.monthPicker\n }, this.state.monthNames.map((monthName, i) => /*#__PURE__*/_react.default.createElement(\"option\", {\n key: i,\n value: i\n }, monthName)))), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearDivider\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.yearPicker\n }, /*#__PURE__*/_react.default.createElement(\"select\", {\n value: focusedDate.getFullYear(),\n onChange: e => changeShownDate(e.target.value, 'setYear'),\n \"aria-label\": ariaLabels.yearPicker\n }, new Array(upperYearLimit - lowerYearLimit + 1).fill(upperYearLimit).map((val, i) => {\n const year = val - i;\n return /*#__PURE__*/_react.default.createElement(\"option\", {\n key: year,\n value: year\n }, year);\n })))) : /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.monthAndYearPickers\n }, this.state.monthNames[focusedDate.getMonth()], \" \", focusedDate.getFullYear()), showMonthArrow ? /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames.default)(styles.nextPrevButton, styles.nextButton),\n onClick: () => changeShownDate(+1, 'monthOffset'),\n \"aria-label\": ariaLabels.nextButton\n }, /*#__PURE__*/_react.default.createElement(\"i\", null)) : null);\n });\n _defineProperty(this, \"renderDateDisplay\", () => {\n const {\n focusedRange,\n color,\n ranges,\n rangeColors,\n dateDisplayFormat,\n editableDateInputs,\n startDatePlaceholder,\n endDatePlaceholder,\n ariaLabels\n } = this.props;\n const defaultColor = rangeColors[focusedRange[0]] || color;\n const styles = this.styles;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.dateDisplayWrapper\n }, ranges.map((range, i) => {\n if (range.showDateDisplay === false || range.disabled && !range.showDateDisplay) return null;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.dateDisplay,\n key: i,\n style: {\n color: range.color || defaultColor\n }\n }, /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n className: (0, _classnames.default)(styles.dateDisplayItem, {\n [styles.dateDisplayItemActive]: focusedRange[0] === i && focusedRange[1] === 0\n }),\n readOnly: !editableDateInputs,\n disabled: range.disabled,\n value: range.startDate,\n placeholder: startDatePlaceholder,\n dateOptions: this.dateOptions,\n dateDisplayFormat: dateDisplayFormat,\n ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].startDate,\n onChange: this.onDragSelectionEnd,\n onFocus: () => this.handleRangeFocusChange(i, 0)\n }), /*#__PURE__*/_react.default.createElement(_DateInput.default, {\n className: (0, _classnames.default)(styles.dateDisplayItem, {\n [styles.dateDisplayItemActive]: focusedRange[0] === i && focusedRange[1] === 1\n }),\n readOnly: !editableDateInputs,\n disabled: range.disabled,\n value: range.endDate,\n placeholder: endDatePlaceholder,\n dateOptions: this.dateOptions,\n dateDisplayFormat: dateDisplayFormat,\n ariaLabel: ariaLabels.dateInput && ariaLabels.dateInput[range.key] && ariaLabels.dateInput[range.key].endDate,\n onChange: this.onDragSelectionEnd,\n onFocus: () => this.handleRangeFocusChange(i, 1)\n }));\n }));\n });\n _defineProperty(this, \"onDragSelectionStart\", date => {\n const {\n onChange,\n dragSelectionEnabled\n } = this.props;\n if (dragSelectionEnabled) {\n this.setState({\n drag: {\n status: true,\n range: {\n startDate: date,\n endDate: date\n },\n disablePreview: true\n }\n });\n } else {\n onChange && onChange(date);\n }\n });\n _defineProperty(this, \"onDragSelectionEnd\", date => {\n const {\n updateRange,\n displayMode,\n onChange,\n dragSelectionEnabled\n } = this.props;\n if (!dragSelectionEnabled) return;\n if (displayMode === 'date' || !this.state.drag.status) {\n onChange && onChange(date);\n return;\n }\n const newRange = {\n startDate: this.state.drag.range.startDate,\n endDate: date\n };\n if (displayMode !== 'dateRange' || (0, _dateFns.isSameDay)(newRange.startDate, date)) {\n this.setState({\n drag: {\n status: false,\n range: {}\n }\n }, () => onChange && onChange(date));\n } else {\n this.setState({\n drag: {\n status: false,\n range: {}\n }\n }, () => {\n updateRange && updateRange(newRange);\n });\n }\n });\n _defineProperty(this, \"onDragSelectionMove\", date => {\n const {\n drag\n } = this.state;\n if (!drag.status || !this.props.dragSelectionEnabled) return;\n this.setState({\n drag: {\n status: drag.status,\n range: {\n startDate: drag.range.startDate,\n endDate: date\n },\n disablePreview: true\n }\n });\n });\n _defineProperty(this, \"estimateMonthSize\", (index, cache) => {\n const {\n direction,\n minDate\n } = this.props;\n const {\n scrollArea\n } = this.state;\n if (cache) {\n this.listSizeCache = cache;\n if (cache[index]) return cache[index];\n }\n if (direction === 'horizontal') return scrollArea.monthWidth;\n const monthStep = (0, _dateFns.addMonths)(minDate, index);\n const {\n start,\n end\n } = (0, _utils.getMonthDisplayRange)(monthStep, this.dateOptions);\n const isLongMonth = (0, _dateFns.differenceInDays)(end, start, this.dateOptions) + 1 > 7 * 5;\n return isLongMonth ? scrollArea.longMonthHeight : scrollArea.monthHeight;\n });\n this.dateOptions = {\n locale: _props.locale\n };\n if (_props.weekStartsOn !== undefined) this.dateOptions.weekStartsOn = _props.weekStartsOn;\n this.styles = (0, _utils.generateStyles)([_styles.default, _props.classNames]);\n this.listSizeCache = {};\n this.isFirstRender = true;\n this.state = {\n monthNames: this.getMonthNames(),\n focusedDate: (0, _utils.calcFocusDate)(null, _props),\n drag: {\n status: false,\n range: {\n startDate: null,\n endDate: null\n },\n disablePreview: false\n },\n scrollArea: this.calcScrollArea(_props)\n };\n }\n getMonthNames() {\n return [...Array(12).keys()].map(i => this.props.locale.localize.month(i));\n }\n calcScrollArea(props) {\n const {\n direction,\n months,\n scroll\n } = props;\n if (!scroll.enabled) return {\n enabled: false\n };\n const longMonthHeight = scroll.longMonthHeight || scroll.monthHeight;\n if (direction === 'vertical') {\n return {\n enabled: true,\n monthHeight: scroll.monthHeight || 220,\n longMonthHeight: longMonthHeight || 260,\n calendarWidth: 'auto',\n calendarHeight: (scroll.calendarHeight || longMonthHeight || 240) * months\n };\n }\n return {\n enabled: true,\n monthWidth: scroll.monthWidth || 332,\n calendarWidth: (scroll.calendarWidth || scroll.monthWidth || 332) * months,\n monthHeight: longMonthHeight || 300,\n calendarHeight: longMonthHeight || 300\n };\n }\n componentDidMount() {\n if (this.props.scroll.enabled) {\n // prevent react-list's initial render focus problem\n setTimeout(() => this.focusToDate(this.state.focusedDate));\n }\n }\n componentDidUpdate(prevProps) {\n const propMapper = {\n dateRange: 'ranges',\n date: 'date'\n };\n const targetProp = propMapper[this.props.displayMode];\n if (this.props[targetProp] !== prevProps[targetProp]) {\n this.updateShownDate(this.props);\n }\n if (prevProps.locale !== this.props.locale || prevProps.weekStartsOn !== this.props.weekStartsOn) {\n this.dateOptions = {\n locale: this.props.locale\n };\n if (this.props.weekStartsOn !== undefined) this.dateOptions.weekStartsOn = this.props.weekStartsOn;\n this.setState({\n monthNames: this.getMonthNames()\n });\n }\n if (!(0, _shallowEqual.shallowEqualObjects)(prevProps.scroll, this.props.scroll)) {\n this.setState({\n scrollArea: this.calcScrollArea(this.props)\n });\n }\n }\n renderWeekdays() {\n const now = new Date();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: this.styles.weekDays\n }, (0, _dateFns.eachDayOfInterval)({\n start: (0, _dateFns.startOfWeek)(now, this.dateOptions),\n end: (0, _dateFns.endOfWeek)(now, this.dateOptions)\n }).map((day, i) => /*#__PURE__*/_react.default.createElement(\"span\", {\n className: this.styles.weekDay,\n key: i\n }, (0, _dateFns.format)(day, this.props.weekdayDisplayFormat, this.dateOptions))));\n }\n render() {\n const {\n showDateDisplay,\n onPreviewChange,\n scroll,\n direction,\n disabledDates,\n disabledDay,\n maxDate,\n minDate,\n rangeColors,\n color,\n navigatorRenderer,\n className,\n preview\n } = this.props;\n const {\n scrollArea,\n focusedDate\n } = this.state;\n const isVertical = direction === 'vertical';\n const monthAndYearRenderer = navigatorRenderer || this.renderMonthAndYear;\n const ranges = this.props.ranges.map((range, i) => ({\n ...range,\n color: range.color || rangeColors[i] || color\n }));\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(this.styles.calendarWrapper, className),\n onMouseUp: () => this.setState({\n drag: {\n status: false,\n range: {}\n }\n }),\n onMouseLeave: () => {\n this.setState({\n drag: {\n status: false,\n range: {}\n }\n });\n }\n }, showDateDisplay && this.renderDateDisplay(), monthAndYearRenderer(focusedDate, this.changeShownDate, this.props), scroll.enabled ? /*#__PURE__*/_react.default.createElement(\"div\", null, isVertical && this.renderWeekdays(this.dateOptions), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(this.styles.infiniteMonths, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal),\n onMouseLeave: () => onPreviewChange && onPreviewChange(),\n style: {\n width: scrollArea.calendarWidth + 11,\n height: scrollArea.calendarHeight + 11\n },\n onScroll: this.handleScroll\n }, /*#__PURE__*/_react.default.createElement(_reactList.default, {\n length: (0, _dateFns.differenceInCalendarMonths)((0, _dateFns.endOfMonth)(maxDate), (0, _dateFns.addDays)((0, _dateFns.startOfMonth)(minDate), -1), this.dateOptions),\n treshold: 500,\n type: \"variable\",\n ref: target => this.list = target,\n itemSizeEstimator: this.estimateMonthSize,\n axis: isVertical ? 'y' : 'x',\n itemRenderer: (index, key) => {\n const monthStep = (0, _dateFns.addMonths)(minDate, index);\n return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, this.props, {\n onPreviewChange: onPreviewChange || this.updatePreview,\n preview: preview || this.state.preview,\n ranges: ranges,\n key: key,\n drag: this.state.drag,\n dateOptions: this.dateOptions,\n disabledDates: disabledDates,\n disabledDay: disabledDay,\n month: monthStep,\n onDragSelectionStart: this.onDragSelectionStart,\n onDragSelectionEnd: this.onDragSelectionEnd,\n onDragSelectionMove: this.onDragSelectionMove,\n onMouseLeave: () => onPreviewChange && onPreviewChange(),\n styles: this.styles,\n style: isVertical ? {\n height: this.estimateMonthSize(index)\n } : {\n height: scrollArea.monthHeight,\n width: this.estimateMonthSize(index)\n },\n showMonthName: true,\n showWeekDays: !isVertical\n }));\n }\n }))) : /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(this.styles.months, isVertical ? this.styles.monthsVertical : this.styles.monthsHorizontal)\n }, new Array(this.props.months).fill(null).map((_, i) => {\n let monthStep = (0, _dateFns.addMonths)(this.state.focusedDate, i);\n if (this.props.calendarFocus === 'backwards') {\n monthStep = (0, _dateFns.subMonths)(this.state.focusedDate, this.props.months - 1 - i);\n }\n return /*#__PURE__*/_react.default.createElement(_Month.default, _extends({}, this.props, {\n onPreviewChange: onPreviewChange || this.updatePreview,\n preview: preview || this.state.preview,\n ranges: ranges,\n key: i,\n drag: this.state.drag,\n dateOptions: this.dateOptions,\n disabledDates: disabledDates,\n disabledDay: disabledDay,\n month: monthStep,\n onDragSelectionStart: this.onDragSelectionStart,\n onDragSelectionEnd: this.onDragSelectionEnd,\n onDragSelectionMove: this.onDragSelectionMove,\n onMouseLeave: () => onPreviewChange && onPreviewChange(),\n styles: this.styles,\n showWeekDays: !isVertical || i === 0,\n showMonthName: !isVertical || i > 0\n }));\n })));\n }\n}\nCalendar.defaultProps = {\n showMonthArrow: true,\n showMonthAndYearPickers: true,\n disabledDates: [],\n disabledDay: () => {},\n classNames: {},\n locale: _enUS.enUS,\n ranges: [],\n focusedRange: [0, 0],\n dateDisplayFormat: 'MMM d, yyyy',\n monthDisplayFormat: 'MMM yyyy',\n weekdayDisplayFormat: 'E',\n dayDisplayFormat: 'd',\n showDateDisplay: true,\n showPreview: true,\n displayMode: 'date',\n months: 1,\n color: '#3d91ff',\n scroll: {\n enabled: false\n },\n direction: 'vertical',\n maxDate: (0, _dateFns.addYears)(new Date(), 20),\n minDate: (0, _dateFns.addYears)(new Date(), -100),\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n startDatePlaceholder: 'Early',\n endDatePlaceholder: 'Continuous',\n editableDateInputs: false,\n dragSelectionEnabled: true,\n fixedHeight: false,\n calendarFocus: 'forwards',\n preventSnapRefocus: false,\n ariaLabels: {}\n};\nCalendar.propTypes = {\n showMonthArrow: _propTypes.default.bool,\n showMonthAndYearPickers: _propTypes.default.bool,\n disabledDates: _propTypes.default.array,\n disabledDay: _propTypes.default.func,\n minDate: _propTypes.default.object,\n maxDate: _propTypes.default.object,\n date: _propTypes.default.object,\n onChange: _propTypes.default.func,\n onPreviewChange: _propTypes.default.func,\n onRangeFocusChange: _propTypes.default.func,\n classNames: _propTypes.default.object,\n locale: _propTypes.default.object,\n shownDate: _propTypes.default.object,\n onShownDateChange: _propTypes.default.func,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string\n }),\n dateDisplayFormat: _propTypes.default.string,\n monthDisplayFormat: _propTypes.default.string,\n weekdayDisplayFormat: _propTypes.default.string,\n weekStartsOn: _propTypes.default.number,\n dayDisplayFormat: _propTypes.default.string,\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n initialFocusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n months: _propTypes.default.number,\n className: _propTypes.default.string,\n showDateDisplay: _propTypes.default.bool,\n showPreview: _propTypes.default.bool,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n color: _propTypes.default.string,\n updateRange: _propTypes.default.func,\n scroll: _propTypes.default.shape({\n enabled: _propTypes.default.bool,\n monthHeight: _propTypes.default.number,\n longMonthHeight: _propTypes.default.number,\n monthWidth: _propTypes.default.number,\n calendarWidth: _propTypes.default.number,\n calendarHeight: _propTypes.default.number\n }),\n direction: _propTypes.default.oneOf(['vertical', 'horizontal']),\n startDatePlaceholder: _propTypes.default.string,\n endDatePlaceholder: _propTypes.default.string,\n navigatorRenderer: _propTypes.default.func,\n rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),\n editableDateInputs: _propTypes.default.bool,\n dragSelectionEnabled: _propTypes.default.bool,\n fixedHeight: _propTypes.default.bool,\n calendarFocus: _propTypes.default.string,\n preventSnapRefocus: _propTypes.default.bool,\n ariaLabels: _accessibility.ariaLabelsShape\n};\nvar _default = exports.default = Calendar;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _dateFns = require(\"date-fns\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nclass DateInput extends _react.PureComponent {\n constructor(props, context) {\n super(props, context);\n _defineProperty(this, \"onKeyDown\", e => {\n const {\n value\n } = this.state;\n if (e.key === 'Enter') {\n this.update(value);\n }\n });\n _defineProperty(this, \"onChange\", e => {\n this.setState({\n value: e.target.value,\n changed: true,\n invalid: false\n });\n });\n _defineProperty(this, \"onBlur\", () => {\n const {\n value\n } = this.state;\n this.update(value);\n });\n this.state = {\n invalid: false,\n changed: false,\n value: this.formatDate(props)\n };\n }\n componentDidUpdate(prevProps) {\n const {\n value\n } = prevProps;\n if (!(0, _dateFns.isEqual)(value, this.props.value)) {\n this.setState({\n value: this.formatDate(this.props)\n });\n }\n }\n formatDate(_ref) {\n let {\n value,\n dateDisplayFormat,\n dateOptions\n } = _ref;\n if (value && (0, _dateFns.isValid)(value)) {\n return (0, _dateFns.format)(value, dateDisplayFormat, dateOptions);\n }\n return '';\n }\n update(value) {\n const {\n invalid,\n changed\n } = this.state;\n if (invalid || !changed || !value) {\n return;\n }\n const {\n onChange,\n dateDisplayFormat,\n dateOptions\n } = this.props;\n const parsed = (0, _dateFns.parse)(value, dateDisplayFormat, new Date(), dateOptions);\n if ((0, _dateFns.isValid)(parsed)) {\n this.setState({\n changed: false\n }, () => onChange(parsed));\n } else {\n this.setState({\n invalid: true\n });\n }\n }\n render() {\n const {\n className,\n readOnly,\n placeholder,\n ariaLabel,\n disabled,\n onFocus\n } = this.props;\n const {\n value,\n invalid\n } = this.state;\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames.default)('rdrDateInput', className)\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n readOnly: readOnly,\n disabled: disabled,\n value: value,\n placeholder: placeholder,\n \"aria-label\": ariaLabel,\n onKeyDown: this.onKeyDown,\n onChange: this.onChange,\n onBlur: this.onBlur,\n onFocus: onFocus\n }), invalid && /*#__PURE__*/_react.default.createElement(\"span\", {\n className: \"rdrWarning\"\n }, \"\\u26A0\"));\n }\n}\nDateInput.propTypes = {\n value: _propTypes.default.object,\n placeholder: _propTypes.default.string,\n disabled: _propTypes.default.bool,\n readOnly: _propTypes.default.bool,\n dateOptions: _propTypes.default.object,\n dateDisplayFormat: _propTypes.default.string,\n ariaLabel: _propTypes.default.string,\n className: _propTypes.default.string,\n onFocus: _propTypes.default.func.isRequired,\n onChange: _propTypes.default.func.isRequired\n};\nDateInput.defaultProps = {\n readOnly: true,\n disabled: false,\n dateDisplayFormat: 'MMM D, YYYY'\n};\nvar _default = exports.default = DateInput;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _Calendar = _interopRequireDefault(require(\"../Calendar\"));\nvar _DayCell = require(\"../DayCell\");\nvar _utils = require(\"../../utils\");\nvar _dateFns = require(\"date-fns\");\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nclass DateRange extends _react.Component {\n constructor(props, context) {\n var _this;\n super(props, context);\n _this = this;\n _defineProperty(this, \"calcNewSelection\", function (value) {\n let isSingleValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const focusedRange = _this.props.focusedRange || _this.state.focusedRange;\n const {\n ranges,\n onChange,\n maxDate,\n moveRangeOnFirstSelection,\n retainEndDateOnFirstSelection,\n disabledDates\n } = _this.props;\n const focusedRangeIndex = focusedRange[0];\n const selectedRange = ranges[focusedRangeIndex];\n if (!selectedRange || !onChange) return {};\n let {\n startDate,\n endDate\n } = selectedRange;\n const now = new Date();\n let nextFocusRange;\n if (!isSingleValue) {\n startDate = value.startDate;\n endDate = value.endDate;\n } else if (focusedRange[1] === 0) {\n // startDate selection\n const dayOffset = (0, _dateFns.differenceInCalendarDays)(endDate || now, startDate);\n const calculateEndDate = () => {\n if (moveRangeOnFirstSelection) {\n return (0, _dateFns.addDays)(value, dayOffset);\n }\n if (retainEndDateOnFirstSelection) {\n if (!endDate || (0, _dateFns.isBefore)(value, endDate)) {\n return endDate;\n }\n return value;\n }\n return value || now;\n };\n startDate = value;\n endDate = calculateEndDate();\n if (maxDate) endDate = (0, _dateFns.min)([endDate, maxDate]);\n nextFocusRange = [focusedRange[0], 1];\n } else {\n endDate = value;\n }\n\n // reverse dates if startDate before endDate\n let isStartDateSelected = focusedRange[1] === 0;\n if ((0, _dateFns.isBefore)(endDate, startDate)) {\n isStartDateSelected = !isStartDateSelected;\n [startDate, endDate] = [endDate, startDate];\n }\n const inValidDatesWithinRange = disabledDates.filter(disabledDate => (0, _dateFns.isWithinInterval)(disabledDate, {\n start: startDate,\n end: endDate\n }));\n if (inValidDatesWithinRange.length > 0) {\n if (isStartDateSelected) {\n startDate = (0, _dateFns.addDays)((0, _dateFns.max)(inValidDatesWithinRange), 1);\n } else {\n endDate = (0, _dateFns.addDays)((0, _dateFns.min)(inValidDatesWithinRange), -1);\n }\n }\n if (!nextFocusRange) {\n const nextFocusRangeIndex = (0, _utils.findNextRangeIndex)(_this.props.ranges, focusedRange[0]);\n nextFocusRange = [nextFocusRangeIndex, 0];\n }\n return {\n wasValid: !(inValidDatesWithinRange.length > 0),\n range: {\n startDate,\n endDate\n },\n nextFocusRange: nextFocusRange\n };\n });\n _defineProperty(this, \"setSelection\", (value, isSingleValue) => {\n const {\n onChange,\n ranges,\n onRangeFocusChange\n } = this.props;\n const focusedRange = this.props.focusedRange || this.state.focusedRange;\n const focusedRangeIndex = focusedRange[0];\n const selectedRange = ranges[focusedRangeIndex];\n if (!selectedRange) return;\n const newSelection = this.calcNewSelection(value, isSingleValue);\n onChange({\n [selectedRange.key || `range${focusedRangeIndex + 1}`]: {\n ...selectedRange,\n ...newSelection.range\n }\n });\n this.setState({\n focusedRange: newSelection.nextFocusRange,\n preview: null\n });\n onRangeFocusChange && onRangeFocusChange(newSelection.nextFocusRange);\n });\n _defineProperty(this, \"handleRangeFocusChange\", focusedRange => {\n this.setState({\n focusedRange\n });\n this.props.onRangeFocusChange && this.props.onRangeFocusChange(focusedRange);\n });\n _defineProperty(this, \"updatePreview\", val => {\n if (!val) {\n this.setState({\n preview: null\n });\n return;\n }\n const {\n rangeColors,\n ranges\n } = this.props;\n const focusedRange = this.props.focusedRange || this.state.focusedRange;\n const color = ranges[focusedRange[0]]?.color || rangeColors[focusedRange[0]] || color;\n this.setState({\n preview: {\n ...val.range,\n color\n }\n });\n });\n this.state = {\n focusedRange: props.initialFocusedRange || [(0, _utils.findNextRangeIndex)(props.ranges), 0],\n preview: null\n };\n this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);\n }\n render() {\n return /*#__PURE__*/_react.default.createElement(_Calendar.default, _extends({\n focusedRange: this.state.focusedRange,\n onRangeFocusChange: this.handleRangeFocusChange,\n preview: this.state.preview,\n onPreviewChange: value => {\n this.updatePreview(value ? this.calcNewSelection(value) : null);\n }\n }, this.props, {\n displayMode: \"dateRange\",\n className: (0, _classnames.default)(this.styles.dateRangeWrapper, this.props.className),\n onChange: this.setSelection,\n updateRange: val => this.setSelection(val, false),\n ref: target => {\n this.calendar = target;\n }\n }));\n }\n}\nDateRange.defaultProps = {\n classNames: {},\n ranges: [],\n moveRangeOnFirstSelection: false,\n retainEndDateOnFirstSelection: false,\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n disabledDates: []\n};\nDateRange.propTypes = {\n ..._Calendar.default.propTypes,\n onChange: _propTypes.default.func,\n onRangeFocusChange: _propTypes.default.func,\n className: _propTypes.default.string,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n moveRangeOnFirstSelection: _propTypes.default.bool,\n retainEndDateOnFirstSelection: _propTypes.default.bool\n};\nvar _default = exports.default = DateRange;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _DateRange = _interopRequireDefault(require(\"../DateRange\"));\nvar _DefinedRange = _interopRequireDefault(require(\"../DefinedRange\"));\nvar _utils = require(\"../../utils\");\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nclass DateRangePicker extends _react.Component {\n constructor(props) {\n super(props);\n this.state = {\n focusedRange: [(0, _utils.findNextRangeIndex)(props.ranges), 0]\n };\n this.styles = (0, _utils.generateStyles)([_styles.default, props.classNames]);\n }\n render() {\n const {\n focusedRange\n } = this.state;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(this.styles.dateRangePickerWrapper, this.props.className)\n }, /*#__PURE__*/_react.default.createElement(_DefinedRange.default, _extends({\n focusedRange: focusedRange,\n onPreviewChange: value => this.dateRange.updatePreview(value ? this.dateRange.calcNewSelection(value, typeof value === 'string') : null)\n }, this.props, {\n range: this.props.ranges[focusedRange[0]],\n className: undefined\n })), /*#__PURE__*/_react.default.createElement(_DateRange.default, _extends({\n onRangeFocusChange: focusedRange => this.setState({\n focusedRange\n }),\n focusedRange: focusedRange\n }, this.props, {\n ref: t => this.dateRange = t,\n className: undefined\n })));\n }\n}\nDateRangePicker.defaultProps = {};\nDateRangePicker.propTypes = {\n ..._DateRange.default.propTypes,\n ..._DefinedRange.default.propTypes,\n className: _propTypes.default.string\n};\nvar _default = exports.default = DateRangePicker;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.rangeShape = exports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _dateFns = require(\"date-fns\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); } /* eslint-disable no-fallthrough */\nclass DayCell extends _react.Component {\n constructor(props, context) {\n super(props, context);\n _defineProperty(this, \"handleKeyEvent\", event => {\n const {\n day,\n onMouseDown,\n onMouseUp\n } = this.props;\n if ([13 /* space */, 32 /* enter */].includes(event.keyCode)) {\n if (event.type === 'keydown') onMouseDown(day);else onMouseUp(day);\n }\n });\n _defineProperty(this, \"handleMouseEvent\", event => {\n const {\n day,\n disabled,\n onPreviewChange,\n onMouseEnter,\n onMouseDown,\n onMouseUp\n } = this.props;\n const stateChanges = {};\n if (disabled) {\n onPreviewChange();\n return;\n }\n switch (event.type) {\n case 'mouseenter':\n onMouseEnter(day);\n onPreviewChange(day);\n stateChanges.hover = true;\n break;\n case 'blur':\n case 'mouseleave':\n stateChanges.hover = false;\n break;\n case 'mousedown':\n stateChanges.active = true;\n onMouseDown(day);\n break;\n case 'mouseup':\n event.stopPropagation();\n stateChanges.active = false;\n onMouseUp(day);\n break;\n case 'focus':\n onPreviewChange(day);\n break;\n }\n if (Object.keys(stateChanges).length) {\n this.setState(stateChanges);\n }\n });\n _defineProperty(this, \"getClassNames\", () => {\n const {\n isPassive,\n isToday,\n isWeekend,\n isStartOfWeek,\n isEndOfWeek,\n isStartOfMonth,\n isEndOfMonth,\n disabled,\n styles\n } = this.props;\n return (0, _classnames.default)(styles.day, {\n [styles.dayPassive]: isPassive,\n [styles.dayDisabled]: disabled,\n [styles.dayToday]: isToday,\n [styles.dayWeekend]: isWeekend,\n [styles.dayStartOfWeek]: isStartOfWeek,\n [styles.dayEndOfWeek]: isEndOfWeek,\n [styles.dayStartOfMonth]: isStartOfMonth,\n [styles.dayEndOfMonth]: isEndOfMonth,\n [styles.dayHovered]: this.state.hover,\n [styles.dayActive]: this.state.active\n });\n });\n _defineProperty(this, \"renderPreviewPlaceholder\", () => {\n const {\n preview,\n day,\n styles\n } = this.props;\n if (!preview) return null;\n const startDate = preview.startDate ? (0, _dateFns.endOfDay)(preview.startDate) : null;\n const endDate = preview.endDate ? (0, _dateFns.startOfDay)(preview.endDate) : null;\n const isInRange = (!startDate || (0, _dateFns.isAfter)(day, startDate)) && (!endDate || (0, _dateFns.isBefore)(day, endDate));\n const isStartEdge = !isInRange && (0, _dateFns.isSameDay)(day, startDate);\n const isEndEdge = !isInRange && (0, _dateFns.isSameDay)(day, endDate);\n return /*#__PURE__*/_react.default.createElement(\"span\", {\n className: (0, _classnames.default)({\n [styles.dayStartPreview]: isStartEdge,\n [styles.dayInPreview]: isInRange,\n [styles.dayEndPreview]: isEndEdge\n }),\n style: {\n color: preview.color\n }\n });\n });\n _defineProperty(this, \"renderSelectionPlaceholders\", () => {\n const {\n styles,\n ranges,\n day\n } = this.props;\n if (this.props.displayMode === 'date') {\n let isSelected = (0, _dateFns.isSameDay)(this.props.day, this.props.date);\n return isSelected ? /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.selected,\n style: {\n color: this.props.color\n }\n }) : null;\n }\n const inRanges = ranges.reduce((result, range) => {\n let startDate = range.startDate;\n let endDate = range.endDate;\n if (startDate && endDate && (0, _dateFns.isBefore)(endDate, startDate)) {\n [startDate, endDate] = [endDate, startDate];\n }\n startDate = startDate ? (0, _dateFns.endOfDay)(startDate) : null;\n endDate = endDate ? (0, _dateFns.startOfDay)(endDate) : null;\n const isInRange = (!startDate || (0, _dateFns.isAfter)(day, startDate)) && (!endDate || (0, _dateFns.isBefore)(day, endDate));\n const isStartEdge = !isInRange && (0, _dateFns.isSameDay)(day, startDate);\n const isEndEdge = !isInRange && (0, _dateFns.isSameDay)(day, endDate);\n if (isInRange || isStartEdge || isEndEdge) {\n return [...result, {\n isStartEdge,\n isEndEdge: isEndEdge,\n isInRange,\n ...range\n }];\n }\n return result;\n }, []);\n return inRanges.map((range, i) => /*#__PURE__*/_react.default.createElement(\"span\", {\n key: i,\n className: (0, _classnames.default)({\n [styles.startEdge]: range.isStartEdge,\n [styles.endEdge]: range.isEndEdge,\n [styles.inRange]: range.isInRange\n }),\n style: {\n color: range.color || this.props.color\n }\n }));\n });\n this.state = {\n hover: false,\n active: false\n };\n }\n render() {\n const {\n dayContentRenderer\n } = this.props;\n return /*#__PURE__*/_react.default.createElement(\"button\", _extends({\n type: \"button\",\n onMouseEnter: this.handleMouseEvent,\n onMouseLeave: this.handleMouseEvent,\n onFocus: this.handleMouseEvent,\n onMouseDown: this.handleMouseEvent,\n onMouseUp: this.handleMouseEvent,\n onBlur: this.handleMouseEvent,\n onPauseCapture: this.handleMouseEvent,\n onKeyDown: this.handleKeyEvent,\n onKeyUp: this.handleKeyEvent,\n className: this.getClassNames(this.props.styles)\n }, this.props.disabled || this.props.isPassive ? {\n tabIndex: -1\n } : {}, {\n style: {\n color: this.props.color\n }\n }), this.renderSelectionPlaceholders(), this.renderPreviewPlaceholder(), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: this.props.styles.dayNumber\n }, dayContentRenderer?.(this.props.day) || /*#__PURE__*/_react.default.createElement(\"span\", null, (0, _dateFns.format)(this.props.day, this.props.dayDisplayFormat))));\n }\n}\nDayCell.defaultProps = {};\nconst rangeShape = exports.rangeShape = _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string,\n key: _propTypes.default.string,\n autoFocus: _propTypes.default.bool,\n disabled: _propTypes.default.bool,\n showDateDisplay: _propTypes.default.bool\n});\nDayCell.propTypes = {\n day: _propTypes.default.object.isRequired,\n dayDisplayFormat: _propTypes.default.string,\n date: _propTypes.default.object,\n ranges: _propTypes.default.arrayOf(rangeShape),\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object,\n color: _propTypes.default.string\n }),\n onPreviewChange: _propTypes.default.func,\n previewColor: _propTypes.default.string,\n disabled: _propTypes.default.bool,\n isPassive: _propTypes.default.bool,\n isToday: _propTypes.default.bool,\n isWeekend: _propTypes.default.bool,\n isStartOfWeek: _propTypes.default.bool,\n isEndOfWeek: _propTypes.default.bool,\n isStartOfMonth: _propTypes.default.bool,\n isEndOfMonth: _propTypes.default.bool,\n color: _propTypes.default.string,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n styles: _propTypes.default.object,\n onMouseDown: _propTypes.default.func,\n onMouseUp: _propTypes.default.func,\n onMouseEnter: _propTypes.default.func,\n dayContentRenderer: _propTypes.default.func\n};\nvar _default = exports.default = DayCell;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _styles = _interopRequireDefault(require(\"../../styles\"));\nvar _defaultRanges = require(\"../../defaultRanges\");\nvar _DayCell = require(\"../DayCell\");\nvar _InputRangeField = _interopRequireDefault(require(\"../InputRangeField\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nclass DefinedRange extends _react.Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"handleRangeChange\", range => {\n const {\n onChange,\n ranges,\n focusedRange\n } = this.props;\n const selectedRange = ranges[focusedRange[0]];\n if (!onChange || !selectedRange) return;\n onChange({\n [selectedRange.key || `range${focusedRange[0] + 1}`]: {\n ...selectedRange,\n ...range\n }\n });\n });\n this.state = {\n rangeOffset: 0,\n focusedInput: -1\n };\n }\n getRangeOptionValue(option) {\n const {\n ranges = [],\n focusedRange = []\n } = this.props;\n if (typeof option.getCurrentValue !== 'function') {\n return '';\n }\n const selectedRange = ranges[focusedRange[0]] || {};\n return option.getCurrentValue(selectedRange) || '';\n }\n getSelectedRange(ranges, staticRange) {\n const focusedRangeIndex = ranges.findIndex(range => {\n if (!range.startDate || !range.endDate || range.disabled) return false;\n return staticRange.isSelected(range);\n });\n const selectedRange = ranges[focusedRangeIndex];\n return {\n selectedRange,\n focusedRangeIndex\n };\n }\n render() {\n const {\n headerContent,\n footerContent,\n onPreviewChange,\n inputRanges,\n staticRanges,\n ranges,\n renderStaticRangeLabel,\n rangeColors,\n className\n } = this.props;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(_styles.default.definedRangesWrapper, className)\n }, headerContent, /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _styles.default.staticRanges\n }, staticRanges.map((staticRange, i) => {\n const {\n selectedRange,\n focusedRangeIndex\n } = this.getSelectedRange(ranges, staticRange);\n let labelContent;\n if (staticRange.hasCustomRendering) {\n labelContent = renderStaticRangeLabel(staticRange);\n } else {\n labelContent = staticRange.label;\n }\n return /*#__PURE__*/_react.default.createElement(\"button\", {\n type: \"button\",\n className: (0, _classnames.default)(_styles.default.staticRange, {\n [_styles.default.staticRangeSelected]: Boolean(selectedRange)\n }),\n style: {\n color: selectedRange ? selectedRange.color || rangeColors[focusedRangeIndex] : null\n },\n key: i,\n onClick: () => this.handleRangeChange(staticRange.range(this.props)),\n onFocus: () => onPreviewChange && onPreviewChange(staticRange.range(this.props)),\n onMouseOver: () => onPreviewChange && onPreviewChange(staticRange.range(this.props)),\n onMouseLeave: () => {\n onPreviewChange && onPreviewChange();\n }\n }, /*#__PURE__*/_react.default.createElement(\"span\", {\n tabIndex: -1,\n className: _styles.default.staticRangeLabel\n }, labelContent));\n })), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: _styles.default.inputRanges\n }, inputRanges.map((rangeOption, i) => /*#__PURE__*/_react.default.createElement(_InputRangeField.default, {\n key: i,\n styles: _styles.default,\n label: rangeOption.label,\n onFocus: () => this.setState({\n focusedInput: i,\n rangeOffset: 0\n }),\n onBlur: () => this.setState({\n rangeOffset: 0\n }),\n onChange: value => this.handleRangeChange(rangeOption.range(value, this.props)),\n value: this.getRangeOptionValue(rangeOption)\n }))), footerContent);\n }\n}\nDefinedRange.propTypes = {\n inputRanges: _propTypes.default.array,\n staticRanges: _propTypes.default.array,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n onPreviewChange: _propTypes.default.func,\n onChange: _propTypes.default.func,\n footerContent: _propTypes.default.any,\n headerContent: _propTypes.default.any,\n rangeColors: _propTypes.default.arrayOf(_propTypes.default.string),\n className: _propTypes.default.string,\n renderStaticRangeLabel: _propTypes.default.func\n};\nDefinedRange.defaultProps = {\n inputRanges: _defaultRanges.defaultInputRanges,\n staticRanges: _defaultRanges.defaultStaticRanges,\n ranges: [],\n rangeColors: ['#3d91ff', '#3ecf8e', '#fed14c'],\n focusedRange: [0, 0]\n};\nvar _default = exports.default = DefinedRange;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nconst MIN = 0;\nconst MAX = 99999;\nclass InputRangeField extends _react.Component {\n constructor(props, context) {\n super(props, context);\n _defineProperty(this, \"onChange\", e => {\n const {\n onChange\n } = this.props;\n let value = parseInt(e.target.value, 10);\n value = isNaN(value) ? 0 : Math.max(Math.min(MAX, value), MIN);\n onChange(value);\n });\n }\n shouldComponentUpdate(nextProps) {\n const {\n value,\n label,\n placeholder\n } = this.props;\n return value !== nextProps.value || label !== nextProps.label || placeholder !== nextProps.placeholder;\n }\n render() {\n const {\n label,\n placeholder,\n value,\n styles,\n onBlur,\n onFocus\n } = this.props;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.inputRange\n }, /*#__PURE__*/_react.default.createElement(\"input\", {\n className: styles.inputRangeInput,\n placeholder: placeholder,\n value: value,\n min: MIN,\n max: MAX,\n onChange: this.onChange,\n onFocus: onFocus,\n onBlur: onBlur\n }), /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.inputRangeLabel\n }, label));\n }\n}\nInputRangeField.propTypes = {\n value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),\n label: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.node]).isRequired,\n placeholder: _propTypes.default.string,\n styles: _propTypes.default.shape({\n inputRange: _propTypes.default.string,\n inputRangeInput: _propTypes.default.string,\n inputRangeLabel: _propTypes.default.string\n }).isRequired,\n onBlur: _propTypes.default.func.isRequired,\n onFocus: _propTypes.default.func.isRequired,\n onChange: _propTypes.default.func.isRequired\n};\nInputRangeField.defaultProps = {\n value: '',\n placeholder: '-'\n};\nvar _default = exports.default = InputRangeField;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _DayCell = _interopRequireWildcard(require(\"../DayCell\"));\nvar _dateFns = require(\"date-fns\");\nvar _utils = require(\"../../utils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* eslint-disable no-fallthrough */\nfunction renderWeekdays(styles, dateOptions, weekdayDisplayFormat) {\n const now = new Date();\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.weekDays\n }, (0, _dateFns.eachDayOfInterval)({\n start: (0, _dateFns.startOfWeek)(now, dateOptions),\n end: (0, _dateFns.endOfWeek)(now, dateOptions)\n }).map((day, i) => /*#__PURE__*/_react.default.createElement(\"span\", {\n className: styles.weekDay,\n key: i\n }, (0, _dateFns.format)(day, weekdayDisplayFormat, dateOptions))));\n}\nclass Month extends _react.PureComponent {\n render() {\n const now = new Date();\n const {\n displayMode,\n focusedRange,\n drag,\n styles,\n disabledDates,\n disabledDay\n } = this.props;\n const minDate = this.props.minDate && (0, _dateFns.startOfDay)(this.props.minDate);\n const maxDate = this.props.maxDate && (0, _dateFns.endOfDay)(this.props.maxDate);\n const monthDisplay = (0, _utils.getMonthDisplayRange)(this.props.month, this.props.dateOptions, this.props.fixedHeight);\n let ranges = this.props.ranges;\n if (displayMode === 'dateRange' && drag.status) {\n let {\n startDate,\n endDate\n } = drag.range;\n ranges = ranges.map((range, i) => {\n if (i !== focusedRange[0]) return range;\n return {\n ...range,\n startDate,\n endDate\n };\n });\n }\n const showPreview = this.props.showPreview && !drag.disablePreview;\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.month,\n style: this.props.style\n }, this.props.showMonthName ? /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.monthName\n }, (0, _dateFns.format)(this.props.month, this.props.monthDisplayFormat, this.props.dateOptions)) : null, this.props.showWeekDays && renderWeekdays(styles, this.props.dateOptions, this.props.weekdayDisplayFormat), /*#__PURE__*/_react.default.createElement(\"div\", {\n className: styles.days,\n onMouseLeave: this.props.onMouseLeave\n }, (0, _dateFns.eachDayOfInterval)({\n start: monthDisplay.start,\n end: monthDisplay.end\n }).map((day, index) => {\n const isStartOfMonth = (0, _dateFns.isSameDay)(day, monthDisplay.startDateOfMonth);\n const isEndOfMonth = (0, _dateFns.isSameDay)(day, monthDisplay.endDateOfMonth);\n const isOutsideMinMax = minDate && (0, _dateFns.isBefore)(day, minDate) || maxDate && (0, _dateFns.isAfter)(day, maxDate);\n const isDisabledSpecifically = disabledDates.some(disabledDate => (0, _dateFns.isSameDay)(disabledDate, day));\n const isDisabledDay = disabledDay(day);\n return /*#__PURE__*/_react.default.createElement(_DayCell.default, _extends({}, this.props, {\n ranges: ranges,\n day: day,\n preview: showPreview ? this.props.preview : null,\n isWeekend: (0, _dateFns.isWeekend)(day, this.props.dateOptions),\n isToday: (0, _dateFns.isSameDay)(day, now),\n isStartOfWeek: (0, _dateFns.isSameDay)(day, (0, _dateFns.startOfWeek)(day, this.props.dateOptions)),\n isEndOfWeek: (0, _dateFns.isSameDay)(day, (0, _dateFns.endOfWeek)(day, this.props.dateOptions)),\n isStartOfMonth: isStartOfMonth,\n isEndOfMonth: isEndOfMonth,\n key: index,\n disabled: isOutsideMinMax || isDisabledSpecifically || isDisabledDay,\n isPassive: !(0, _dateFns.isWithinInterval)(day, {\n start: monthDisplay.startDateOfMonth,\n end: monthDisplay.endDateOfMonth\n }),\n styles: styles,\n onMouseDown: this.props.onDragSelectionStart,\n onMouseUp: this.props.onDragSelectionEnd,\n onMouseEnter: this.props.onDragSelectionMove,\n dragRange: drag.range,\n drag: drag.status\n }));\n })));\n }\n}\nMonth.defaultProps = {};\nMonth.propTypes = {\n style: _propTypes.default.object,\n styles: _propTypes.default.object,\n month: _propTypes.default.object,\n drag: _propTypes.default.object,\n dateOptions: _propTypes.default.object,\n disabledDates: _propTypes.default.array,\n disabledDay: _propTypes.default.func,\n preview: _propTypes.default.shape({\n startDate: _propTypes.default.object,\n endDate: _propTypes.default.object\n }),\n showPreview: _propTypes.default.bool,\n displayMode: _propTypes.default.oneOf(['dateRange', 'date']),\n minDate: _propTypes.default.object,\n maxDate: _propTypes.default.object,\n ranges: _propTypes.default.arrayOf(_DayCell.rangeShape),\n focusedRange: _propTypes.default.arrayOf(_propTypes.default.number),\n onDragSelectionStart: _propTypes.default.func,\n onDragSelectionEnd: _propTypes.default.func,\n onDragSelectionMove: _propTypes.default.func,\n onMouseLeave: _propTypes.default.func,\n monthDisplayFormat: _propTypes.default.string,\n weekdayDisplayFormat: _propTypes.default.string,\n dayDisplayFormat: _propTypes.default.string,\n showWeekDays: _propTypes.default.bool,\n showMonthName: _propTypes.default.bool,\n fixedHeight: _propTypes.default.bool\n};\nvar _default = exports.default = Month;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createStaticRanges = createStaticRanges;\nexports.defaultStaticRanges = exports.defaultInputRanges = void 0;\nvar _dateFns = require(\"date-fns\");\nconst defineds = {\n startOfWeek: (0, _dateFns.startOfWeek)(new Date()),\n endOfWeek: (0, _dateFns.endOfWeek)(new Date()),\n startOfLastWeek: (0, _dateFns.startOfWeek)((0, _dateFns.addDays)(new Date(), -7)),\n endOfLastWeek: (0, _dateFns.endOfWeek)((0, _dateFns.addDays)(new Date(), -7)),\n startOfToday: (0, _dateFns.startOfDay)(new Date()),\n endOfToday: (0, _dateFns.endOfDay)(new Date()),\n startOfYesterday: (0, _dateFns.startOfDay)((0, _dateFns.addDays)(new Date(), -1)),\n endOfYesterday: (0, _dateFns.endOfDay)((0, _dateFns.addDays)(new Date(), -1)),\n startOfMonth: (0, _dateFns.startOfMonth)(new Date()),\n endOfMonth: (0, _dateFns.endOfMonth)(new Date()),\n startOfLastMonth: (0, _dateFns.startOfMonth)((0, _dateFns.addMonths)(new Date(), -1)),\n endOfLastMonth: (0, _dateFns.endOfMonth)((0, _dateFns.addMonths)(new Date(), -1))\n};\nconst staticRangeHandler = {\n range: {},\n isSelected(range) {\n const definedRange = this.range();\n return (0, _dateFns.isSameDay)(range.startDate, definedRange.startDate) && (0, _dateFns.isSameDay)(range.endDate, definedRange.endDate);\n }\n};\nfunction createStaticRanges(ranges) {\n return ranges.map(range => ({\n ...staticRangeHandler,\n ...range\n }));\n}\nconst defaultStaticRanges = exports.defaultStaticRanges = createStaticRanges([{\n label: 'Today',\n range: () => ({\n startDate: defineds.startOfToday,\n endDate: defineds.endOfToday\n })\n}, {\n label: 'Yesterday',\n range: () => ({\n startDate: defineds.startOfYesterday,\n endDate: defineds.endOfYesterday\n })\n}, {\n label: 'This Week',\n range: () => ({\n startDate: defineds.startOfWeek,\n endDate: defineds.endOfWeek\n })\n}, {\n label: 'Last Week',\n range: () => ({\n startDate: defineds.startOfLastWeek,\n endDate: defineds.endOfLastWeek\n })\n}, {\n label: 'This Month',\n range: () => ({\n startDate: defineds.startOfMonth,\n endDate: defineds.endOfMonth\n })\n}, {\n label: 'Last Month',\n range: () => ({\n startDate: defineds.startOfLastMonth,\n endDate: defineds.endOfLastMonth\n })\n}]);\nconst defaultInputRanges = exports.defaultInputRanges = [{\n label: 'days up to today',\n range(value) {\n return {\n startDate: (0, _dateFns.addDays)(defineds.startOfToday, (Math.max(Number(value), 1) - 1) * -1),\n endDate: defineds.endOfToday\n };\n },\n getCurrentValue(range) {\n if (!(0, _dateFns.isSameDay)(range.endDate, defineds.endOfToday)) return '-';\n if (!range.startDate) return '∞';\n return (0, _dateFns.differenceInCalendarDays)(defineds.endOfToday, range.startDate) + 1;\n }\n}, {\n label: 'days starting today',\n range(value) {\n const today = new Date();\n return {\n startDate: today,\n endDate: (0, _dateFns.addDays)(today, Math.max(Number(value), 1) - 1)\n };\n },\n getCurrentValue(range) {\n if (!(0, _dateFns.isSameDay)(range.startDate, defineds.startOfToday)) return '-';\n if (!range.endDate) return '∞';\n return (0, _dateFns.differenceInCalendarDays)(range.endDate, defineds.startOfToday) + 1;\n }\n}];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"Calendar\", {\n enumerable: true,\n get: function () {\n return _Calendar.default;\n }\n});\nObject.defineProperty(exports, \"DateRange\", {\n enumerable: true,\n get: function () {\n return _DateRange.default;\n }\n});\nObject.defineProperty(exports, \"DateRangePicker\", {\n enumerable: true,\n get: function () {\n return _DateRangePicker.default;\n }\n});\nObject.defineProperty(exports, \"DefinedRange\", {\n enumerable: true,\n get: function () {\n return _DefinedRange.default;\n }\n});\nObject.defineProperty(exports, \"createStaticRanges\", {\n enumerable: true,\n get: function () {\n return _defaultRanges.createStaticRanges;\n }\n});\nObject.defineProperty(exports, \"defaultInputRanges\", {\n enumerable: true,\n get: function () {\n return _defaultRanges.defaultInputRanges;\n }\n});\nObject.defineProperty(exports, \"defaultStaticRanges\", {\n enumerable: true,\n get: function () {\n return _defaultRanges.defaultStaticRanges;\n }\n});\nvar _DateRange = _interopRequireDefault(require(\"./components/DateRange\"));\nvar _Calendar = _interopRequireDefault(require(\"./components/Calendar\"));\nvar _DateRangePicker = _interopRequireDefault(require(\"./components/DateRangePicker\"));\nvar _DefinedRange = _interopRequireDefault(require(\"./components/DefinedRange\"));\nvar _defaultRanges = require(\"./defaultRanges\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = exports.default = {\n dateRangeWrapper: 'rdrDateRangeWrapper',\n calendarWrapper: 'rdrCalendarWrapper',\n dateDisplay: 'rdrDateDisplay',\n dateDisplayItem: 'rdrDateDisplayItem',\n dateDisplayItemActive: 'rdrDateDisplayItemActive',\n monthAndYearWrapper: 'rdrMonthAndYearWrapper',\n monthAndYearPickers: 'rdrMonthAndYearPickers',\n nextPrevButton: 'rdrNextPrevButton',\n month: 'rdrMonth',\n weekDays: 'rdrWeekDays',\n weekDay: 'rdrWeekDay',\n days: 'rdrDays',\n day: 'rdrDay',\n dayNumber: 'rdrDayNumber',\n dayPassive: 'rdrDayPassive',\n dayToday: 'rdrDayToday',\n dayStartOfWeek: 'rdrDayStartOfWeek',\n dayEndOfWeek: 'rdrDayEndOfWeek',\n daySelected: 'rdrDaySelected',\n dayDisabled: 'rdrDayDisabled',\n dayStartOfMonth: 'rdrDayStartOfMonth',\n dayEndOfMonth: 'rdrDayEndOfMonth',\n dayWeekend: 'rdrDayWeekend',\n dayStartPreview: 'rdrDayStartPreview',\n dayInPreview: 'rdrDayInPreview',\n dayEndPreview: 'rdrDayEndPreview',\n dayHovered: 'rdrDayHovered',\n dayActive: 'rdrDayActive',\n inRange: 'rdrInRange',\n endEdge: 'rdrEndEdge',\n startEdge: 'rdrStartEdge',\n prevButton: 'rdrPprevButton',\n nextButton: 'rdrNextButton',\n selected: 'rdrSelected',\n months: 'rdrMonths',\n monthPicker: 'rdrMonthPicker',\n yearPicker: 'rdrYearPicker',\n dateDisplayWrapper: 'rdrDateDisplayWrapper',\n definedRangesWrapper: 'rdrDefinedRangesWrapper',\n staticRanges: 'rdrStaticRanges',\n staticRange: 'rdrStaticRange',\n inputRanges: 'rdrInputRanges',\n inputRange: 'rdrInputRange',\n inputRangeInput: 'rdrInputRangeInput',\n dateRangePickerWrapper: 'rdrDateRangePickerWrapper',\n staticRangeLabel: 'rdrStaticRangeLabel',\n staticRangeSelected: 'rdrStaticRangeSelected',\n monthName: 'rdrMonthName',\n infiniteMonths: 'rdrInfiniteMonths',\n monthsVertical: 'rdrMonthsVertical',\n monthsHorizontal: 'rdrMonthsHorizontal'\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.calcFocusDate = calcFocusDate;\nexports.findNextRangeIndex = findNextRangeIndex;\nexports.generateStyles = generateStyles;\nexports.getMonthDisplayRange = getMonthDisplayRange;\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _dateFns = require(\"date-fns\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction calcFocusDate(currentFocusedDate, props) {\n const {\n shownDate,\n date,\n months,\n ranges,\n focusedRange,\n displayMode\n } = props;\n // find primary date according the props\n let targetInterval;\n if (displayMode === 'dateRange') {\n const range = ranges[focusedRange[0]] || {};\n targetInterval = {\n start: range.startDate,\n end: range.endDate\n };\n } else {\n targetInterval = {\n start: date,\n end: date\n };\n }\n targetInterval.start = (0, _dateFns.startOfMonth)(targetInterval.start || new Date());\n targetInterval.end = (0, _dateFns.endOfMonth)(targetInterval.end || targetInterval.start);\n const targetDate = targetInterval.start || targetInterval.end || shownDate || new Date();\n\n // initial focus\n if (!currentFocusedDate) return shownDate || targetDate;\n\n // // just return targetDate for native scrolled calendars\n // if (props.scroll.enabled) return targetDate;\n if ((0, _dateFns.differenceInCalendarMonths)(targetInterval.start, targetInterval.end) > months) {\n // don't change focused if new selection in view area\n return currentFocusedDate;\n }\n return targetDate;\n}\nfunction findNextRangeIndex(ranges) {\n let currentRangeIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n const nextIndex = ranges.findIndex((range, i) => i > currentRangeIndex && range.autoFocus !== false && !range.disabled);\n if (nextIndex !== -1) return nextIndex;\n return ranges.findIndex(range => range.autoFocus !== false && !range.disabled);\n}\nfunction getMonthDisplayRange(date, dateOptions, fixedHeight) {\n const startDateOfMonth = (0, _dateFns.startOfMonth)(date, dateOptions);\n const endDateOfMonth = (0, _dateFns.endOfMonth)(date, dateOptions);\n const startDateOfCalendar = (0, _dateFns.startOfWeek)(startDateOfMonth, dateOptions);\n let endDateOfCalendar = (0, _dateFns.endOfWeek)(endDateOfMonth, dateOptions);\n if (fixedHeight && (0, _dateFns.differenceInCalendarDays)(endDateOfCalendar, startDateOfCalendar) <= 34) {\n endDateOfCalendar = (0, _dateFns.addDays)(endDateOfCalendar, 7);\n }\n return {\n start: startDateOfCalendar,\n end: endDateOfCalendar,\n startDateOfMonth,\n endDateOfMonth\n };\n}\nfunction generateStyles(sources) {\n if (!sources.length) return {};\n const generatedStyles = sources.filter(source => Boolean(source)).reduce((styles, styleSource) => {\n Object.keys(styleSource).forEach(key => {\n styles[key] = (0, _classnames.default)(styles[key], styleSource[key]);\n });\n return styles;\n }, {});\n return generatedStyles;\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&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(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=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(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=Sg(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);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(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,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;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;zj(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;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(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=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&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 Ij(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 zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);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(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(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 Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(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:Ci(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=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(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 Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(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(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(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=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=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)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(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)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(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*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=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()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();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,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(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:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(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=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(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),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(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(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(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=mh(-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);bh(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);bh(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}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(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 $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(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 Pg(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 Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(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 pj(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 Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(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 al(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 bl(a,b,c,d,e,f,g,h,k){a=new al(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};kh(f);return a}function cl(a,b,c){var d=3>>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","/* 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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = format;\nvar smallWords = /^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\\.?|via)$/i;\nfunction toTitleCase(string) {\n return string.toString().trim().replace(/[A-Za-z0-9\\u00C0-\\u00FF]+[^\\s-]*/g, function (match, index, title) {\n if (index > 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\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); }\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; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\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 _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); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Hls\"] = factory();\n\telse\n\t\troot[\"Hls\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/hls.ts\");\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","// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX = /^((?:[a-zA-Z0-9+\\-.]+:)?)(\\/\\/[^\\/?#]*)?((?:[^\\/?#]*\\/)*[^;?#]*)?(;[^?#]*)?(\\?[^#]*)?(#.*)?$/;\n var FIRST_SEGMENT_REGEX = /^([^\\/?#]*)(.*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment,\n };\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the \n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path;\n // 5a) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and\n if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 5b) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and we skip to step 7.\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\n }\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || '',\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n // 6c) All occurrences of \"/../\", where is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"/..\", where is a\n // complete path segment not equal to \"..\", that\n // \"/..\" is removed.\n while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = URLToolkit;\n else if (typeof define === 'function' && define.amd)\n define([], function () {\n return URLToolkit;\n });\n else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;\n else root['URLToolkit'] = URLToolkit;\n})(this);\n","function webpackBootstrapFunc (modules) {\n/******/ // The module cache\n/******/ var installedModules = {};\n\n/******/ // The require function\n/******/ function __webpack_require__(moduleId) {\n\n/******/ // Check if module is in cache\n/******/ if(installedModules[moduleId])\n/******/ return installedModules[moduleId].exports;\n\n/******/ // Create a new module (and put it into the cache)\n/******/ var module = installedModules[moduleId] = {\n/******/ i: moduleId,\n/******/ l: false,\n/******/ exports: {}\n/******/ };\n\n/******/ // Execute the module function\n/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ // Flag the module as loaded\n/******/ module.l = true;\n\n/******/ // Return the exports of the module\n/******/ return module.exports;\n/******/ }\n\n/******/ // expose the modules object (__webpack_modules__)\n/******/ __webpack_require__.m = modules;\n\n/******/ // expose the module cache\n/******/ __webpack_require__.c = installedModules;\n\n/******/ // identity function for calling harmony imports with the correct context\n/******/ __webpack_require__.i = function(value) { return value; };\n\n/******/ // define getter function for harmony exports\n/******/ __webpack_require__.d = function(exports, name, getter) {\n/******/ if(!__webpack_require__.o(exports, name)) {\n/******/ Object.defineProperty(exports, name, {\n/******/ configurable: false,\n/******/ enumerable: true,\n/******/ get: getter\n/******/ });\n/******/ }\n/******/ };\n\n/******/ // define __esModule on exports\n/******/ __webpack_require__.r = function(exports) {\n/******/ Object.defineProperty(exports, '__esModule', { value: true });\n/******/ };\n\n/******/ // getDefaultExport function for compatibility with non-harmony modules\n/******/ __webpack_require__.n = function(module) {\n/******/ var getter = module && module.__esModule ?\n/******/ function getDefault() { return module['default']; } :\n/******/ function getModuleExports() { return module; };\n/******/ __webpack_require__.d(getter, 'a', getter);\n/******/ return getter;\n/******/ };\n\n/******/ // Object.prototype.hasOwnProperty.call\n/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n/******/ // __webpack_public_path__\n/******/ __webpack_require__.p = \"/\";\n\n/******/ // on error function for async loading\n/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n var f = __webpack_require__(__webpack_require__.s = ENTRY_MODULE)\n return f.default || f // try to call default if defined to also support babel esmodule exports\n}\n\nvar moduleNameReqExp = '[\\\\.|\\\\-|\\\\+|\\\\w|\\/|@]+'\nvar dependencyRegExp = '\\\\(\\\\s*(\\/\\\\*.*?\\\\*\\/)?\\\\s*.*?(' + moduleNameReqExp + ').*?\\\\)' // additional chars when output.pathinfo is true\n\n// http://stackoverflow.com/a/2593661/130442\nfunction quoteRegExp (str) {\n return (str + '').replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&')\n}\n\nfunction isNumeric(n) {\n return !isNaN(1 * n); // 1 * n converts integers, integers as string (\"123\"), 1e3 and \"1e3\" to integers and strings to NaN\n}\n\nfunction getModuleDependencies (sources, module, queueName) {\n var retval = {}\n retval[queueName] = []\n\n var fnString = module.toString()\n var wrapperSignature = fnString.match(/^function\\s?\\w*\\(\\w+,\\s*\\w+,\\s*(\\w+)\\)/)\n if (!wrapperSignature) return retval\n var webpackRequireName = wrapperSignature[1]\n\n // main bundle deps\n var re = new RegExp('(\\\\\\\\n|\\\\W)' + quoteRegExp(webpackRequireName) + dependencyRegExp, 'g')\n var match\n while ((match = re.exec(fnString))) {\n if (match[3] === 'dll-reference') continue\n retval[queueName].push(match[3])\n }\n\n // dll deps\n re = new RegExp('\\\\(' + quoteRegExp(webpackRequireName) + '\\\\(\"(dll-reference\\\\s(' + moduleNameReqExp + '))\"\\\\)\\\\)' + dependencyRegExp, 'g')\n while ((match = re.exec(fnString))) {\n if (!sources[match[2]]) {\n retval[queueName].push(match[1])\n sources[match[2]] = __webpack_require__(match[1]).m\n }\n retval[match[2]] = retval[match[2]] || []\n retval[match[2]].push(match[4])\n }\n\n // convert 1e3 back to 1000 - this can be important after uglify-js converted 1000 to 1e3\n var keys = Object.keys(retval);\n for (var i = 0; i < keys.length; i++) {\n for (var j = 0; j < retval[keys[i]].length; j++) {\n if (isNumeric(retval[keys[i]][j])) {\n retval[keys[i]][j] = 1 * retval[keys[i]][j];\n }\n }\n }\n\n return retval\n}\n\nfunction hasValuesInQueues (queues) {\n var keys = Object.keys(queues)\n return keys.reduce(function (hasValues, key) {\n return hasValues || queues[key].length > 0\n }, false)\n}\n\nfunction getRequiredModules (sources, moduleId) {\n var modulesQueue = {\n main: [moduleId]\n }\n var requiredModules = {\n main: []\n }\n var seenModules = {\n main: {}\n }\n\n while (hasValuesInQueues(modulesQueue)) {\n var queues = Object.keys(modulesQueue)\n for (var i = 0; i < queues.length; i++) {\n var queueName = queues[i]\n var queue = modulesQueue[queueName]\n var moduleToCheck = queue.pop()\n seenModules[queueName] = seenModules[queueName] || {}\n if (seenModules[queueName][moduleToCheck] || !sources[queueName][moduleToCheck]) continue\n seenModules[queueName][moduleToCheck] = true\n requiredModules[queueName] = requiredModules[queueName] || []\n requiredModules[queueName].push(moduleToCheck)\n var newModules = getModuleDependencies(sources, sources[queueName][moduleToCheck], queueName)\n var newModulesKeys = Object.keys(newModules)\n for (var j = 0; j < newModulesKeys.length; j++) {\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]] || []\n modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]].concat(newModules[newModulesKeys[j]])\n }\n }\n }\n\n return requiredModules\n}\n\nmodule.exports = function (moduleId, options) {\n options = options || {}\n var sources = {\n main: __webpack_modules__\n }\n\n var requiredModules = options.all ? { main: Object.keys(sources.main) } : getRequiredModules(sources, moduleId)\n\n var src = ''\n\n Object.keys(requiredModules).filter(function (m) { return m !== 'main' }).forEach(function (module) {\n var entryModule = 0\n while (requiredModules[module][entryModule]) {\n entryModule++\n }\n requiredModules[module].push(entryModule)\n sources[module][entryModule] = '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })'\n src = src + 'var ' + module + ' = (' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(entryModule)) + ')({' + requiredModules[module].map(function (id) { return '' + JSON.stringify(id) + ': ' + sources[module][id].toString() }).join(',') + '});\\n'\n })\n\n src = src + 'new ((' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(moduleId)) + ')({' + requiredModules.main.map(function (id) { return '' + JSON.stringify(id) + ': ' + sources.main[id].toString() }).join(',') + '}))(self);'\n\n var blob = new window.Blob([src], { type: 'text/javascript' })\n if (options.bare) { return blob }\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL\n\n var workerUrl = URL.createObjectURL(blob)\n var worker = new window.Worker(workerUrl)\n worker.objectURL = workerUrl\n\n return worker\n}\n","export default class AESCrypto {\n constructor (subtle, iv) {\n this.subtle = subtle;\n this.aesIV = iv;\n }\n\n decrypt (data, key) {\n return this.subtle.decrypt({ name: 'AES-CBC', iv: this.aesIV }, key, data);\n }\n}\n","class FastAESKey {\n constructor (subtle, key) {\n this.subtle = subtle;\n this.key = key;\n }\n\n expandKey () {\n return this.subtle.importKey('raw', this.key, { name: 'AES-CBC' }, false, ['encrypt', 'decrypt']);\n }\n}\n\nexport default FastAESKey;\n","// PKCS7\nexport function removePadding (buffer) {\n const outputBytes = buffer.byteLength;\n const paddingBytes = outputBytes && (new DataView(buffer)).getUint8(outputBytes - 1);\n if (paddingBytes) {\n return buffer.slice(0, outputBytes - paddingBytes);\n } else {\n return buffer;\n }\n}\n\nclass AESDecryptor {\n constructor () {\n // Static after running initTable\n this.rcon = [0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n this.sBox = new Uint32Array(256);\n this.invSBox = new Uint32Array(256);\n\n // Changes during runtime\n this.key = new Uint32Array(0);\n\n this.initTable();\n }\n\n // Using view.getUint32() also swaps the byte order.\n uint8ArrayToUint32Array_ (arrayBuffer) {\n let view = new DataView(arrayBuffer);\n let newArray = new Uint32Array(4);\n for (let i = 0; i < 4; i++) {\n newArray[i] = view.getUint32(i * 4);\n }\n\n return newArray;\n }\n\n initTable () {\n let sBox = this.sBox;\n let invSBox = this.invSBox;\n let subMix = this.subMix;\n let subMix0 = subMix[0];\n let subMix1 = subMix[1];\n let subMix2 = subMix[2];\n let subMix3 = subMix[3];\n let invSubMix = this.invSubMix;\n let invSubMix0 = invSubMix[0];\n let invSubMix1 = invSubMix[1];\n let invSubMix2 = invSubMix[2];\n let invSubMix3 = invSubMix[3];\n\n let d = new Uint32Array(256);\n let x = 0;\n let xi = 0;\n let i = 0;\n for (i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = (i << 1) ^ 0x11b;\n }\n }\n\n for (i = 0; i < 256; i++) {\n let sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n sBox[x] = sx;\n invSBox[sx] = x;\n\n // Compute multiplication\n let x2 = d[x];\n let x4 = d[x2];\n let x8 = d[x4];\n\n // Compute sub/invSub bytes, mix columns tables\n let t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n subMix0[x] = (t << 24) | (t >>> 8);\n subMix1[x] = (t << 16) | (t >>> 16);\n subMix2[x] = (t << 8) | (t >>> 24);\n subMix3[x] = t;\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n invSubMix0[sx] = (t << 24) | (t >>> 8);\n invSubMix1[sx] = (t << 16) | (t >>> 16);\n invSubMix2[sx] = (t << 8) | (t >>> 24);\n invSubMix3[sx] = t;\n\n // Compute next counter\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n }\n\n expandKey (keyBuffer) {\n // convert keyBuffer to Uint32Array\n let key = this.uint8ArrayToUint32Array_(keyBuffer);\n let sameKey = true;\n let offset = 0;\n\n while (offset < key.length && sameKey) {\n sameKey = (key[offset] === this.key[offset]);\n offset++;\n }\n\n if (sameKey) {\n return;\n }\n\n this.key = key;\n let keySize = this.keySize = key.length;\n\n if (keySize !== 4 && keySize !== 6 && keySize !== 8) {\n throw new Error('Invalid aes key size=' + keySize);\n }\n\n let ksRows = this.ksRows = (keySize + 6 + 1) * 4;\n let ksRow;\n let invKsRow;\n\n let keySchedule = this.keySchedule = new Uint32Array(ksRows);\n let invKeySchedule = this.invKeySchedule = new Uint32Array(ksRows);\n let sbox = this.sBox;\n let rcon = this.rcon;\n\n let invSubMix = this.invSubMix;\n let invSubMix0 = invSubMix[0];\n let invSubMix1 = invSubMix[1];\n let invSubMix2 = invSubMix[2];\n let invSubMix3 = invSubMix[3];\n\n let prev;\n let t;\n\n for (ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n prev = keySchedule[ksRow] = key[ksRow];\n continue;\n }\n t = prev;\n\n if (ksRow % keySize === 0) {\n // Rot word\n t = (t << 8) | (t >>> 24);\n\n // Sub word\n t = (sbox[t >>> 24] << 24) | (sbox[(t >>> 16) & 0xff] << 16) | (sbox[(t >>> 8) & 0xff] << 8) | sbox[t & 0xff];\n\n // Mix Rcon\n t ^= rcon[(ksRow / keySize) | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize === 4) {\n // Sub word\n t = (sbox[t >>> 24] << 24) | (sbox[(t >>> 16) & 0xff] << 16) | (sbox[(t >>> 8) & 0xff] << 8) | sbox[t & 0xff];\n }\n\n keySchedule[ksRow] = prev = (keySchedule[ksRow - keySize] ^ t) >>> 0;\n }\n\n for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n ksRow = ksRows - invKsRow;\n if (invKsRow & 3) {\n t = keySchedule[ksRow];\n } else {\n t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] = invSubMix0[sbox[t >>> 24]] ^ invSubMix1[sbox[(t >>> 16) & 0xff]] ^ invSubMix2[sbox[(t >>> 8) & 0xff]] ^ invSubMix3[sbox[t & 0xff]];\n }\n\n invKeySchedule[invKsRow] = invKeySchedule[invKsRow] >>> 0;\n }\n }\n\n // Adding this as a method greatly improves performance.\n networkToHostOrderSwap (word) {\n return (word << 24) | ((word & 0xff00) << 8) | ((word & 0xff0000) >> 8) | (word >>> 24);\n }\n\n decrypt (inputArrayBuffer, offset, aesIV, removePKCS7Padding) {\n let nRounds = this.keySize + 6;\n let invKeySchedule = this.invKeySchedule;\n let invSBOX = this.invSBox;\n\n let invSubMix = this.invSubMix;\n let invSubMix0 = invSubMix[0];\n let invSubMix1 = invSubMix[1];\n let invSubMix2 = invSubMix[2];\n let invSubMix3 = invSubMix[3];\n\n let initVector = this.uint8ArrayToUint32Array_(aesIV);\n let initVector0 = initVector[0];\n let initVector1 = initVector[1];\n let initVector2 = initVector[2];\n let initVector3 = initVector[3];\n\n let inputInt32 = new Int32Array(inputArrayBuffer);\n let outputInt32 = new Int32Array(inputInt32.length);\n\n let t0, t1, t2, t3;\n let s0, s1, s2, s3;\n let inputWords0, inputWords1, inputWords2, inputWords3;\n\n let ksRow, i;\n let swapWord = this.networkToHostOrderSwap;\n\n while (offset < inputInt32.length) {\n inputWords0 = swapWord(inputInt32[offset]);\n inputWords1 = swapWord(inputInt32[offset + 1]);\n inputWords2 = swapWord(inputInt32[offset + 2]);\n inputWords3 = swapWord(inputInt32[offset + 3]);\n\n s0 = inputWords0 ^ invKeySchedule[0];\n s1 = inputWords3 ^ invKeySchedule[1];\n s2 = inputWords2 ^ invKeySchedule[2];\n s3 = inputWords1 ^ invKeySchedule[3];\n\n ksRow = 4;\n\n // Iterate through the rounds of decryption\n for (i = 1; i < nRounds; i++) {\n t0 = invSubMix0[s0 >>> 24] ^ invSubMix1[(s1 >> 16) & 0xff] ^ invSubMix2[(s2 >> 8) & 0xff] ^ invSubMix3[s3 & 0xff] ^ invKeySchedule[ksRow];\n t1 = invSubMix0[s1 >>> 24] ^ invSubMix1[(s2 >> 16) & 0xff] ^ invSubMix2[(s3 >> 8) & 0xff] ^ invSubMix3[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n t2 = invSubMix0[s2 >>> 24] ^ invSubMix1[(s3 >> 16) & 0xff] ^ invSubMix2[(s0 >> 8) & 0xff] ^ invSubMix3[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n t3 = invSubMix0[s3 >>> 24] ^ invSubMix1[(s0 >> 16) & 0xff] ^ invSubMix2[(s1 >> 8) & 0xff] ^ invSubMix3[s2 & 0xff] ^ invKeySchedule[ksRow + 3];\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n\n ksRow = ksRow + 4;\n }\n\n // Shift rows, sub bytes, add round key\n t0 = ((invSBOX[s0 >>> 24] << 24) ^ (invSBOX[(s1 >> 16) & 0xff] << 16) ^ (invSBOX[(s2 >> 8) & 0xff] << 8) ^ invSBOX[s3 & 0xff]) ^ invKeySchedule[ksRow];\n t1 = ((invSBOX[s1 >>> 24] << 24) ^ (invSBOX[(s2 >> 16) & 0xff] << 16) ^ (invSBOX[(s3 >> 8) & 0xff] << 8) ^ invSBOX[s0 & 0xff]) ^ invKeySchedule[ksRow + 1];\n t2 = ((invSBOX[s2 >>> 24] << 24) ^ (invSBOX[(s3 >> 16) & 0xff] << 16) ^ (invSBOX[(s0 >> 8) & 0xff] << 8) ^ invSBOX[s1 & 0xff]) ^ invKeySchedule[ksRow + 2];\n t3 = ((invSBOX[s3 >>> 24] << 24) ^ (invSBOX[(s0 >> 16) & 0xff] << 16) ^ (invSBOX[(s1 >> 8) & 0xff] << 8) ^ invSBOX[s2 & 0xff]) ^ invKeySchedule[ksRow + 3];\n ksRow = ksRow + 3;\n\n // Write\n outputInt32[offset] = swapWord(t0 ^ initVector0);\n outputInt32[offset + 1] = swapWord(t3 ^ initVector1);\n outputInt32[offset + 2] = swapWord(t2 ^ initVector2);\n outputInt32[offset + 3] = swapWord(t1 ^ initVector3);\n\n // reset initVector to last 4 unsigned int\n initVector0 = inputWords0;\n initVector1 = inputWords1;\n initVector2 = inputWords2;\n initVector3 = inputWords3;\n\n offset = offset + 4;\n }\n\n return removePKCS7Padding ? removePadding(outputInt32.buffer) : outputInt32.buffer;\n }\n\n destroy () {\n this.key = undefined;\n this.keySize = undefined;\n this.ksRows = undefined;\n\n this.sBox = undefined;\n this.invSBox = undefined;\n this.subMix = undefined;\n this.invSubMix = undefined;\n this.keySchedule = undefined;\n this.invKeySchedule = undefined;\n\n this.rcon = undefined;\n }\n}\n\nexport default AESDecryptor;\n","import AESCrypto from './aes-crypto';\nimport FastAESKey from './fast-aes-key';\nimport AESDecryptor from './aes-decryptor';\n\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\n\nimport Event from '../events';\n\nimport { getSelfScope } from '../utils/get-self-scope';\n\n// see https://stackoverflow.com/a/11237259/589493\nconst global = getSelfScope(); // safeguard for code that might run both on worker and main thread\n\nclass Decrypter {\n constructor (observer, config, { removePKCS7Padding = true } = {}) {\n this.logEnabled = true;\n this.observer = observer;\n this.config = config;\n this.removePKCS7Padding = removePKCS7Padding;\n // built in decryptor expects PKCS7 padding\n if (removePKCS7Padding) {\n try {\n const browserCrypto = global.crypto;\n if (browserCrypto) {\n this.subtle = browserCrypto.subtle || browserCrypto.webkitSubtle;\n }\n } catch (e) {}\n }\n this.disableWebCrypto = !this.subtle;\n }\n\n isSync () {\n return (this.disableWebCrypto && this.config.enableSoftwareAES);\n }\n\n decrypt (data, key, iv, callback) {\n if (this.disableWebCrypto && this.config.enableSoftwareAES) {\n if (this.logEnabled) {\n logger.log('JS AES decrypt');\n this.logEnabled = false;\n }\n let decryptor = this.decryptor;\n if (!decryptor) {\n this.decryptor = decryptor = new AESDecryptor();\n }\n\n decryptor.expandKey(key);\n callback(decryptor.decrypt(data, 0, iv, this.removePKCS7Padding));\n } else {\n if (this.logEnabled) {\n logger.log('WebCrypto AES decrypt');\n this.logEnabled = false;\n }\n const subtle = this.subtle;\n if (this.key !== key) {\n this.key = key;\n this.fastAesKey = new FastAESKey(subtle, key);\n }\n\n this.fastAesKey.expandKey()\n .then((aesKey) => {\n // decrypt using web crypto\n let crypto = new AESCrypto(subtle, iv);\n crypto.decrypt(data, aesKey)\n .catch((err) => {\n this.onWebCryptoError(err, data, key, iv, callback);\n })\n .then((result) => {\n callback(result);\n });\n })\n .catch((err) => {\n this.onWebCryptoError(err, data, key, iv, callback);\n });\n }\n }\n\n onWebCryptoError (err, data, key, iv, callback) {\n if (this.config.enableSoftwareAES) {\n logger.log('WebCrypto Error, disable WebCrypto API');\n this.disableWebCrypto = true;\n this.logEnabled = true;\n this.decrypt(data, key, iv, callback);\n } else {\n logger.error(`decrypting error : ${err.message}`);\n this.observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_DECRYPT_ERROR, fatal: true, reason: err.message });\n }\n }\n\n destroy () {\n let decryptor = this.decryptor;\n if (decryptor) {\n decryptor.destroy();\n this.decryptor = undefined;\n }\n }\n}\n\nexport default Decrypter;\n","/**\n * ADTS parser helper\n * @link https://wiki.multimedia.cx/index.php?title=ADTS\n */\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\n\nimport Event from '../events';\n\nimport { getSelfScope } from '../utils/get-self-scope';\n\nexport function getAudioConfig (observer, data, offset, audioCodec) {\n let adtsObjectType, // :int\n adtsSampleingIndex, // :int\n adtsExtensionSampleingIndex, // :int\n adtsChanelConfig, // :int\n config,\n userAgent = navigator.userAgent.toLowerCase(),\n manifestCodec = audioCodec,\n adtsSampleingRates = [\n 96000, 88200,\n 64000, 48000,\n 44100, 32000,\n 24000, 22050,\n 16000, 12000,\n 11025, 8000,\n 7350];\n // byte 2\n adtsObjectType = ((data[offset + 2] & 0xC0) >>> 6) + 1;\n adtsSampleingIndex = ((data[offset + 2] & 0x3C) >>> 2);\n if (adtsSampleingIndex > adtsSampleingRates.length - 1) {\n observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: true, reason: `invalid ADTS sampling index:${adtsSampleingIndex}` });\n return;\n }\n adtsChanelConfig = ((data[offset + 2] & 0x01) << 2);\n // byte 3\n adtsChanelConfig |= ((data[offset + 3] & 0xC0) >>> 6);\n logger.log(`manifest codec:${audioCodec},ADTS data:type:${adtsObjectType},sampleingIndex:${adtsSampleingIndex}[${adtsSampleingRates[adtsSampleingIndex]}Hz],channelConfig:${adtsChanelConfig}`);\n // firefox: freq less than 24kHz = AAC SBR (HE-AAC)\n if (/firefox/i.test(userAgent)) {\n if (adtsSampleingIndex >= 6) {\n adtsObjectType = 5;\n config = new Array(4);\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSampleingIndex = adtsSampleingIndex - 3;\n } else {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSampleingIndex = adtsSampleingIndex;\n }\n // Android : always use AAC\n } else if (userAgent.indexOf('android') !== -1) {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSampleingIndex = adtsSampleingIndex;\n } else {\n /* for other browsers (Chrome/Vivaldi/Opera ...)\n always force audio type to be HE-AAC SBR, as some browsers do not support audio codec switch properly (like Chrome ...)\n */\n adtsObjectType = 5;\n config = new Array(4);\n // if (manifest codec is HE-AAC or HE-AACv2) OR (manifest codec not specified AND frequency less than 24kHz)\n if ((audioCodec && ((audioCodec.indexOf('mp4a.40.29') !== -1) ||\n (audioCodec.indexOf('mp4a.40.5') !== -1))) ||\n (!audioCodec && adtsSampleingIndex >= 6)) {\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSampleingIndex = adtsSampleingIndex - 3;\n } else {\n // if (manifest codec is AAC) AND (frequency less than 24kHz AND nb channel is 1) OR (manifest codec not specified and mono audio)\n // Chrome fails to play back with low frequency AAC LC mono when initialized with HE-AAC. This is not a problem with stereo.\n if (audioCodec && audioCodec.indexOf('mp4a.40.2') !== -1 && ((adtsSampleingIndex >= 6 && adtsChanelConfig === 1) ||\n /vivaldi/i.test(userAgent)) ||\n (!audioCodec && adtsChanelConfig === 1)) {\n adtsObjectType = 2;\n config = new Array(2);\n }\n adtsExtensionSampleingIndex = adtsSampleingIndex;\n }\n }\n /* refer to http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Specific_Config\n ISO 14496-3 (AAC).pdf - Table 1.13 — Syntax of AudioSpecificConfig()\n Audio Profile / Audio Object Type\n 0: Null\n 1: AAC Main\n 2: AAC LC (Low Complexity)\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: SBR (Spectral Band Replication)\n 6: AAC Scalable\n sampling freq\n 0: 96000 Hz\n 1: 88200 Hz\n 2: 64000 Hz\n 3: 48000 Hz\n 4: 44100 Hz\n 5: 32000 Hz\n 6: 24000 Hz\n 7: 22050 Hz\n 8: 16000 Hz\n 9: 12000 Hz\n 10: 11025 Hz\n 11: 8000 Hz\n 12: 7350 Hz\n 13: Reserved\n 14: Reserved\n 15: frequency is written explictly\n Channel Configurations\n These are the channel configurations:\n 0: Defined in AOT Specifc Config\n 1: 1 channel: front-center\n 2: 2 channels: front-left, front-right\n */\n // audioObjectType = profile => profile, the MPEG-4 Audio Object Type minus 1\n config[0] = adtsObjectType << 3;\n // samplingFrequencyIndex\n config[0] |= (adtsSampleingIndex & 0x0E) >> 1;\n config[1] |= (adtsSampleingIndex & 0x01) << 7;\n // channelConfiguration\n config[1] |= adtsChanelConfig << 3;\n if (adtsObjectType === 5) {\n // adtsExtensionSampleingIndex\n config[1] |= (adtsExtensionSampleingIndex & 0x0E) >> 1;\n config[2] = (adtsExtensionSampleingIndex & 0x01) << 7;\n // adtsObjectType (force to 2, chrome is checking that object type is less than 5 ???\n // https://chromium.googlesource.com/chromium/src.git/+/master/media/formats/mp4/aac.cc\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n return { config: config, samplerate: adtsSampleingRates[adtsSampleingIndex], channelCount: adtsChanelConfig, codec: ('mp4a.40.' + adtsObjectType), manifestCodec: manifestCodec };\n}\n\nexport function isHeaderPattern (data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n}\n\nexport function getHeaderLength (data, offset) {\n return (data[offset + 1] & 0x01 ? 7 : 9);\n}\n\nexport function getFullFrameLength (data, offset) {\n return ((data[offset + 3] & 0x03) << 11) |\n (data[offset + 4] << 3) |\n ((data[offset + 5] & 0xE0) >>> 5);\n}\n\nexport function isHeader (data, offset) {\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n return true;\n }\n\n return false;\n}\n\nexport function probe (data, offset) {\n // same as isHeader but we also check that ADTS frame follows last ADTS frame\n // or end of data is reached\n if (isHeader(data, offset)) {\n // ADTS header Length\n let headerLength = getHeaderLength(data, offset);\n if (offset + headerLength >= data.length) {\n return false;\n }\n // ADTS frame Length\n let frameLength = getFullFrameLength(data, offset);\n if (frameLength <= headerLength) {\n return false;\n }\n\n let newOffset = offset + frameLength;\n if (newOffset === data.length || (newOffset + 1 < data.length && isHeaderPattern(data, newOffset))) {\n return true;\n }\n }\n return false;\n}\n\nexport function initTrackConfig (track, observer, data, offset, audioCodec) {\n if (!track.samplerate) {\n let config = getAudioConfig(observer, data, offset, audioCodec);\n track.config = config.config;\n track.samplerate = config.samplerate;\n track.channelCount = config.channelCount;\n track.codec = config.codec;\n track.manifestCodec = config.manifestCodec;\n logger.log(`parsed codec:${track.codec},rate:${config.samplerate},nb channel:${config.channelCount}`);\n }\n}\n\nexport function getFrameDuration (samplerate) {\n return 1024 * 90000 / samplerate;\n}\n\nexport function parseFrameHeader (data, offset, pts, frameIndex, frameDuration) {\n let headerLength, frameLength, stamp;\n let length = data.length;\n\n // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n headerLength = getHeaderLength(data, offset);\n // retrieve frame size\n frameLength = getFullFrameLength(data, offset);\n frameLength -= headerLength;\n\n if ((frameLength > 0) && ((offset + headerLength + frameLength) <= length)) {\n stamp = pts + frameIndex * frameDuration;\n // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n return { headerLength, frameLength, stamp };\n }\n\n return undefined;\n}\n\nexport function appendFrame (track, data, offset, pts, frameIndex) {\n let frameDuration = getFrameDuration(track.samplerate);\n let header = parseFrameHeader(data, offset, pts, frameIndex, frameDuration);\n if (header) {\n let stamp = header.stamp;\n let headerLength = header.headerLength;\n let frameLength = header.frameLength;\n\n // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n let aacSample = {\n unit: data.subarray(offset + headerLength, offset + headerLength + frameLength),\n pts: stamp,\n dts: stamp\n };\n\n track.samples.push(aacSample);\n return { sample: aacSample, length: frameLength + headerLength };\n }\n\n return undefined;\n}\n","/**\n * AAC demuxer\n */\nimport * as ADTS from './adts';\nimport { logger } from '../utils/logger';\nimport ID3 from '../demux/id3';\n\nclass AACDemuxer {\n constructor (observer, remuxer, config) {\n this.observer = observer;\n this.config = config;\n this.remuxer = remuxer;\n }\n\n resetInitSegment (initSegment, audioCodec, videoCodec, duration) {\n this._audioTrack = { container: 'audio/adts', type: 'audio', id: 0, sequenceNumber: 0, isAAC: true, samples: [], len: 0, manifestCodec: audioCodec, duration: duration, inputTimeScale: 90000 };\n }\n\n resetTimeStamp () {\n }\n\n static probe (data) {\n if (!data) {\n return false;\n }\n\n // Check for the ADTS sync word\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n const id3Data = ID3.getID3Data(data, 0) || [];\n let offset = id3Data.length;\n\n for (let length = data.length; offset < length; offset++) {\n if (ADTS.probe(data, offset)) {\n logger.log('ADTS sync word found !');\n return true;\n }\n }\n return false;\n }\n\n // feed incoming data to the front of the parsing pipeline\n append (data, timeOffset, contiguous, accurateTimeOffset) {\n let track = this._audioTrack;\n let id3Data = ID3.getID3Data(data, 0) || [];\n let timestamp = ID3.getTimeStamp(id3Data);\n let pts = Number.isFinite(timestamp) ? timestamp * 90 : timeOffset * 90000;\n let frameIndex = 0;\n let stamp = pts;\n let length = data.length;\n let offset = id3Data.length;\n\n let id3Samples = [{ pts: stamp, dts: stamp, data: id3Data }];\n\n while (offset < length - 1) {\n if (ADTS.isHeader(data, offset) && (offset + 5) < length) {\n ADTS.initTrackConfig(track, this.observer, data, offset, track.manifestCodec);\n let frame = ADTS.appendFrame(track, data, offset, pts, frameIndex);\n if (frame) {\n offset += frame.length;\n stamp = frame.sample.pts;\n frameIndex++;\n } else {\n logger.log('Unable to parse AAC frame');\n break;\n }\n } else if (ID3.isHeader(data, offset)) {\n id3Data = ID3.getID3Data(data, offset);\n id3Samples.push({ pts: stamp, dts: stamp, data: id3Data });\n offset += id3Data.length;\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n\n this.remuxer.remux(track,\n { samples: [] },\n { samples: id3Samples, inputTimeScale: 90000 },\n { samples: [] },\n timeOffset,\n contiguous,\n accurateTimeOffset);\n }\n\n destroy () {\n }\n}\n\nexport default AACDemuxer;\n","/**\n * MPEG parser helper\n */\n\nconst MpegAudio = {\n\n BitratesMap: [\n 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448,\n 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384,\n 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320,\n 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256,\n 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160],\n\n SamplingRateMap: [44100, 48000, 32000, 22050, 24000, 16000, 11025, 12000, 8000],\n\n SamplesCoefficients: [\n // MPEG 2.5\n [\n 0, // Reserved\n 72, // Layer3\n 144, // Layer2\n 12 // Layer1\n ],\n // Reserved\n [\n 0, // Reserved\n 0, // Layer3\n 0, // Layer2\n 0 // Layer1\n ],\n // MPEG 2\n [\n 0, // Reserved\n 72, // Layer3\n 144, // Layer2\n 12 // Layer1\n ],\n // MPEG 1\n [\n 0, // Reserved\n 144, // Layer3\n 144, // Layer2\n 12 // Layer1\n ]\n ],\n\n BytesInSlot: [\n 0, // Reserved\n 1, // Layer3\n 1, // Layer2\n 4 // Layer1\n ],\n\n appendFrame: function (track, data, offset, pts, frameIndex) {\n // Using http://www.datavoyage.com/mpgscript/mpeghdr.htm as a reference\n if (offset + 24 > data.length) {\n return undefined;\n }\n\n let header = this.parseHeader(data, offset);\n if (header && offset + header.frameLength <= data.length) {\n let frameDuration = header.samplesPerFrame * 90000 / header.sampleRate;\n let stamp = pts + frameIndex * frameDuration;\n let sample = { unit: data.subarray(offset, offset + header.frameLength), pts: stamp, dts: stamp };\n\n track.config = [];\n track.channelCount = header.channelCount;\n track.samplerate = header.sampleRate;\n track.samples.push(sample);\n\n return { sample, length: header.frameLength };\n }\n\n return undefined;\n },\n\n parseHeader: function (data, offset) {\n let headerB = (data[offset + 1] >> 3) & 3;\n let headerC = (data[offset + 1] >> 1) & 3;\n let headerE = (data[offset + 2] >> 4) & 15;\n let headerF = (data[offset + 2] >> 2) & 3;\n let headerG = (data[offset + 2] >> 1) & 1;\n if (headerB !== 1 && headerE !== 0 && headerE !== 15 && headerF !== 3) {\n let columnInBitrates = headerB === 3 ? (3 - headerC) : (headerC === 3 ? 3 : 4);\n let bitRate = MpegAudio.BitratesMap[columnInBitrates * 14 + headerE - 1] * 1000;\n let columnInSampleRates = headerB === 3 ? 0 : headerB === 2 ? 1 : 2;\n let sampleRate = MpegAudio.SamplingRateMap[columnInSampleRates * 3 + headerF];\n let channelCount = data[offset + 3] >> 6 === 3 ? 1 : 2; // If bits of channel mode are `11` then it is a single channel (Mono)\n let sampleCoefficient = MpegAudio.SamplesCoefficients[headerB][headerC];\n let bytesInSlot = MpegAudio.BytesInSlot[headerC];\n let samplesPerFrame = sampleCoefficient * 8 * bytesInSlot;\n let frameLength = parseInt(sampleCoefficient * bitRate / sampleRate + headerG, 10) * bytesInSlot;\n\n return { sampleRate, channelCount, frameLength, samplesPerFrame };\n }\n\n return undefined;\n },\n\n isHeaderPattern: function (data, offset) {\n return data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0 && (data[offset + 1] & 0x06) !== 0x00;\n },\n\n isHeader: function (data, offset) {\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {\n return true;\n }\n\n return false;\n },\n\n probe: function (data, offset) {\n // same as isHeader but we also check that MPEG frame follows last MPEG frame\n // or end of data is reached\n if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {\n // MPEG header Length\n let headerLength = 4;\n // MPEG frame Length\n let header = this.parseHeader(data, offset);\n let frameLength = headerLength;\n if (header && header.frameLength) {\n frameLength = header.frameLength;\n }\n\n let newOffset = offset + frameLength;\n if (newOffset === data.length || (newOffset + 1 < data.length && this.isHeaderPattern(data, newOffset))) {\n return true;\n }\n }\n return false;\n }\n};\n\nexport default MpegAudio;\n","/**\n * Parser for exponential Golomb codes, a variable-bitwidth number encoding scheme used by h264.\n*/\n\nimport { logger } from '../utils/logger';\n\nclass ExpGolomb {\n constructor (data) {\n this.data = data;\n // the number of bytes left to examine in this.data\n this.bytesAvailable = data.byteLength;\n // the current word being examined\n this.word = 0; // :uint\n // the number of bits left to examine in the current word\n this.bitsAvailable = 0; // :uint\n }\n\n // ():void\n loadWord () {\n let\n data = this.data,\n bytesAvailable = this.bytesAvailable,\n position = data.byteLength - bytesAvailable,\n workingBytes = new Uint8Array(4),\n availableBytes = Math.min(4, bytesAvailable);\n if (availableBytes === 0) {\n throw new Error('no bytes available');\n }\n\n workingBytes.set(data.subarray(position, position + availableBytes));\n this.word = new DataView(workingBytes.buffer).getUint32(0);\n // track the amount of this.data that has been processed\n this.bitsAvailable = availableBytes * 8;\n this.bytesAvailable -= availableBytes;\n }\n\n // (count:int):void\n skipBits (count) {\n let skipBytes; // :int\n if (this.bitsAvailable > count) {\n this.word <<= count;\n this.bitsAvailable -= count;\n } else {\n count -= this.bitsAvailable;\n skipBytes = count >> 3;\n count -= (skipBytes >> 3);\n this.bytesAvailable -= skipBytes;\n this.loadWord();\n this.word <<= count;\n this.bitsAvailable -= count;\n }\n }\n\n // (size:int):uint\n readBits (size) {\n let\n bits = Math.min(this.bitsAvailable, size), // :uint\n valu = this.word >>> (32 - bits); // :uint\n if (size > 32) {\n logger.error('Cannot read more than 32 bits at a time');\n }\n\n this.bitsAvailable -= bits;\n if (this.bitsAvailable > 0) {\n this.word <<= bits;\n } else if (this.bytesAvailable > 0) {\n this.loadWord();\n }\n\n bits = size - bits;\n if (bits > 0 && this.bitsAvailable) {\n return valu << bits | this.readBits(bits);\n } else {\n return valu;\n }\n }\n\n // ():uint\n skipLZ () {\n let leadingZeroCount; // :uint\n for (leadingZeroCount = 0; leadingZeroCount < this.bitsAvailable; ++leadingZeroCount) {\n if ((this.word & (0x80000000 >>> leadingZeroCount)) !== 0) {\n // the first bit of working word is 1\n this.word <<= leadingZeroCount;\n this.bitsAvailable -= leadingZeroCount;\n return leadingZeroCount;\n }\n }\n // we exhausted word and still have not found a 1\n this.loadWord();\n return leadingZeroCount + this.skipLZ();\n }\n\n // ():void\n skipUEG () {\n this.skipBits(1 + this.skipLZ());\n }\n\n // ():void\n skipEG () {\n this.skipBits(1 + this.skipLZ());\n }\n\n // ():uint\n readUEG () {\n let clz = this.skipLZ(); // :uint\n return this.readBits(clz + 1) - 1;\n }\n\n // ():int\n readEG () {\n let valu = this.readUEG(); // :int\n if (0x01 & valu) {\n // the number is odd if the low order bit is set\n return (1 + valu) >>> 1; // add 1 to make it even, and divide by 2\n } else {\n return -1 * (valu >>> 1); // divide by two then make it negative\n }\n }\n\n // Some convenience functions\n // :Boolean\n readBoolean () {\n return this.readBits(1) === 1;\n }\n\n // ():int\n readUByte () {\n return this.readBits(8);\n }\n\n // ():int\n readUShort () {\n return this.readBits(16);\n }\n // ():int\n readUInt () {\n return this.readBits(32);\n }\n\n /**\n * Advance the ExpGolomb decoder past a scaling list. The scaling\n * list is optionally transmitted as part of a sequence parameter\n * set and is not relevant to transmuxing.\n * @param count {number} the number of entries in this scaling list\n * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1\n */\n skipScalingList (count) {\n let\n lastScale = 8,\n nextScale = 8,\n j,\n deltaScale;\n for (j = 0; j < count; j++) {\n if (nextScale !== 0) {\n deltaScale = this.readEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n lastScale = (nextScale === 0) ? lastScale : nextScale;\n }\n }\n\n /**\n * Read a sequence parameter set and return some interesting video\n * properties. A sequence parameter set is the H264 metadata that\n * describes the properties of upcoming video frames.\n * @param data {Uint8Array} the bytes of a sequence parameter set\n * @return {object} an object with configuration parsed from the\n * sequence parameter set, including the dimensions of the\n * associated video frames.\n */\n readSPS () {\n let\n frameCropLeftOffset = 0,\n frameCropRightOffset = 0,\n frameCropTopOffset = 0,\n frameCropBottomOffset = 0,\n profileIdc, profileCompat, levelIdc,\n numRefFramesInPicOrderCntCycle, picWidthInMbsMinus1,\n picHeightInMapUnitsMinus1,\n frameMbsOnlyFlag,\n scalingListCount,\n i,\n readUByte = this.readUByte.bind(this),\n readBits = this.readBits.bind(this),\n readUEG = this.readUEG.bind(this),\n readBoolean = this.readBoolean.bind(this),\n skipBits = this.skipBits.bind(this),\n skipEG = this.skipEG.bind(this),\n skipUEG = this.skipUEG.bind(this),\n skipScalingList = this.skipScalingList.bind(this);\n\n readUByte();\n profileIdc = readUByte(); // profile_idc\n profileCompat = readBits(5); // constraint_set[0-4]_flag, u(5)\n skipBits(3); // reserved_zero_3bits u(3),\n levelIdc = readUByte(); // level_idc u(8)\n skipUEG(); // seq_parameter_set_id\n // some profiles have more optional data we don't need\n if (profileIdc === 100 ||\n profileIdc === 110 ||\n profileIdc === 122 ||\n profileIdc === 244 ||\n profileIdc === 44 ||\n profileIdc === 83 ||\n profileIdc === 86 ||\n profileIdc === 118 ||\n profileIdc === 128) {\n let chromaFormatIdc = readUEG();\n if (chromaFormatIdc === 3) {\n skipBits(1);\n } // separate_colour_plane_flag\n\n skipUEG(); // bit_depth_luma_minus8\n skipUEG(); // bit_depth_chroma_minus8\n skipBits(1); // qpprime_y_zero_transform_bypass_flag\n if (readBoolean()) { // seq_scaling_matrix_present_flag\n scalingListCount = (chromaFormatIdc !== 3) ? 8 : 12;\n for (i = 0; i < scalingListCount; i++) {\n if (readBoolean()) { // seq_scaling_list_present_flag[ i ]\n if (i < 6) {\n skipScalingList(16);\n } else {\n skipScalingList(64);\n }\n }\n }\n }\n }\n skipUEG(); // log2_max_frame_num_minus4\n let picOrderCntType = readUEG();\n if (picOrderCntType === 0) {\n readUEG(); // log2_max_pic_order_cnt_lsb_minus4\n } else if (picOrderCntType === 1) {\n skipBits(1); // delta_pic_order_always_zero_flag\n skipEG(); // offset_for_non_ref_pic\n skipEG(); // offset_for_top_to_bottom_field\n numRefFramesInPicOrderCntCycle = readUEG();\n for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n skipEG();\n } // offset_for_ref_frame[ i ]\n }\n skipUEG(); // max_num_ref_frames\n skipBits(1); // gaps_in_frame_num_value_allowed_flag\n picWidthInMbsMinus1 = readUEG();\n picHeightInMapUnitsMinus1 = readUEG();\n frameMbsOnlyFlag = readBits(1);\n if (frameMbsOnlyFlag === 0) {\n skipBits(1);\n } // mb_adaptive_frame_field_flag\n\n skipBits(1); // direct_8x8_inference_flag\n if (readBoolean()) { // frame_cropping_flag\n frameCropLeftOffset = readUEG();\n frameCropRightOffset = readUEG();\n frameCropTopOffset = readUEG();\n frameCropBottomOffset = readUEG();\n }\n let pixelRatio = [1, 1];\n if (readBoolean()) {\n // vui_parameters_present_flag\n if (readBoolean()) {\n // aspect_ratio_info_present_flag\n const aspectRatioIdc = readUByte();\n switch (aspectRatioIdc) {\n case 1: pixelRatio = [1, 1]; break;\n case 2: pixelRatio = [12, 11]; break;\n case 3: pixelRatio = [10, 11]; break;\n case 4: pixelRatio = [16, 11]; break;\n case 5: pixelRatio = [40, 33]; break;\n case 6: pixelRatio = [24, 11]; break;\n case 7: pixelRatio = [20, 11]; break;\n case 8: pixelRatio = [32, 11]; break;\n case 9: pixelRatio = [80, 33]; break;\n case 10: pixelRatio = [18, 11]; break;\n case 11: pixelRatio = [15, 11]; break;\n case 12: pixelRatio = [64, 33]; break;\n case 13: pixelRatio = [160, 99]; break;\n case 14: pixelRatio = [4, 3]; break;\n case 15: pixelRatio = [3, 2]; break;\n case 16: pixelRatio = [2, 1]; break;\n case 255: {\n pixelRatio = [readUByte() << 8 | readUByte(), readUByte() << 8 | readUByte()];\n break;\n }\n }\n }\n }\n return {\n width: Math.ceil((((picWidthInMbsMinus1 + 1) * 16) - frameCropLeftOffset * 2 - frameCropRightOffset * 2)),\n height: ((2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16) - ((frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset)),\n pixelRatio: pixelRatio\n };\n }\n\n readSliceType () {\n // skip NALu type\n this.readUByte();\n // discard first_mb_in_slice\n this.readUEG();\n // return slice_type\n return this.readUEG();\n }\n}\n\nexport default ExpGolomb;\n","/**\n * SAMPLE-AES decrypter\n*/\n\nimport Decrypter from '../crypt/decrypter';\n\nclass SampleAesDecrypter {\n constructor (observer, config, decryptdata, discardEPB) {\n this.decryptdata = decryptdata;\n this.discardEPB = discardEPB;\n this.decrypter = new Decrypter(observer, config, { removePKCS7Padding: false });\n }\n\n decryptBuffer (encryptedData, callback) {\n this.decrypter.decrypt(encryptedData, this.decryptdata.key.buffer, this.decryptdata.iv.buffer, callback);\n }\n\n // AAC - encrypt all full 16 bytes blocks starting from offset 16\n decryptAacSample (samples, sampleIndex, callback, sync) {\n let curUnit = samples[sampleIndex].unit;\n let encryptedData = curUnit.subarray(16, curUnit.length - curUnit.length % 16);\n let encryptedBuffer = encryptedData.buffer.slice(\n encryptedData.byteOffset,\n encryptedData.byteOffset + encryptedData.length);\n\n let localthis = this;\n this.decryptBuffer(encryptedBuffer, function (decryptedData) {\n decryptedData = new Uint8Array(decryptedData);\n curUnit.set(decryptedData, 16);\n\n if (!sync) {\n localthis.decryptAacSamples(samples, sampleIndex + 1, callback);\n }\n });\n }\n\n decryptAacSamples (samples, sampleIndex, callback) {\n for (;; sampleIndex++) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n\n if (samples[sampleIndex].unit.length < 32) {\n continue;\n }\n\n let sync = this.decrypter.isSync();\n\n this.decryptAacSample(samples, sampleIndex, callback, sync);\n\n if (!sync) {\n return;\n }\n }\n }\n\n // AVC - encrypt one 16 bytes block out of ten, starting from offset 32\n getAvcEncryptedData (decodedData) {\n let encryptedDataLen = Math.floor((decodedData.length - 48) / 160) * 16 + 16;\n let encryptedData = new Int8Array(encryptedDataLen);\n let outputPos = 0;\n for (let inputPos = 32; inputPos <= decodedData.length - 16; inputPos += 160, outputPos += 16) {\n encryptedData.set(decodedData.subarray(inputPos, inputPos + 16), outputPos);\n }\n\n return encryptedData;\n }\n\n getAvcDecryptedUnit (decodedData, decryptedData) {\n decryptedData = new Uint8Array(decryptedData);\n let inputPos = 0;\n for (let outputPos = 32; outputPos <= decodedData.length - 16; outputPos += 160, inputPos += 16) {\n decodedData.set(decryptedData.subarray(inputPos, inputPos + 16), outputPos);\n }\n\n return decodedData;\n }\n\n decryptAvcSample (samples, sampleIndex, unitIndex, callback, curUnit, sync) {\n let decodedData = this.discardEPB(curUnit.data);\n let encryptedData = this.getAvcEncryptedData(decodedData);\n let localthis = this;\n\n this.decryptBuffer(encryptedData.buffer, function (decryptedData) {\n curUnit.data = localthis.getAvcDecryptedUnit(decodedData, decryptedData);\n\n if (!sync) {\n localthis.decryptAvcSamples(samples, sampleIndex, unitIndex + 1, callback);\n }\n });\n }\n\n decryptAvcSamples (samples, sampleIndex, unitIndex, callback) {\n for (;; sampleIndex++, unitIndex = 0) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n\n let curUnits = samples[sampleIndex].units;\n for (;; unitIndex++) {\n if (unitIndex >= curUnits.length) {\n break;\n }\n\n let curUnit = curUnits[unitIndex];\n if (curUnit.data.length <= 48 || (curUnit.type !== 1 && curUnit.type !== 5)) {\n continue;\n }\n\n let sync = this.decrypter.isSync();\n\n this.decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit, sync);\n\n if (!sync) {\n return;\n }\n }\n }\n }\n}\n\nexport default SampleAesDecrypter;\n","/**\n * highly optimized TS demuxer:\n * parse PAT, PMT\n * extract PES packet from audio and video PIDs\n * extract AVC/H264 NAL units and AAC/ADTS samples from PES packet\n * trigger the remuxer upon parsing completion\n * it also tries to workaround as best as it can audio codec switch (HE-AAC to AAC and vice versa), without having to restart the MediaSource.\n * it also controls the remuxing process :\n * upon discontinuity or level switch detection, it will also notifies the remuxer so that it can reset its state.\n*/\n\nimport * as ADTS from './adts';\nimport MpegAudio from './mpegaudio';\nimport Event from '../events';\nimport ExpGolomb from './exp-golomb';\nimport SampleAesDecrypter from './sample-aes';\n// import Hex from '../utils/hex';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { utf8ArrayToStr } from './id3';\n\n// We are using fixed track IDs for driving the MP4 remuxer\n// instead of following the TS PIDs.\n// There is no reason not to do this and some browsers/SourceBuffer-demuxers\n// may not like if there are TrackID \"switches\"\n// See https://github.com/video-dev/hls.js/issues/1331\n// Here we are mapping our internal track types to constant MP4 track IDs\n// With MSE currently one can only have one track of each, and we are muxing\n// whatever video/audio rendition in them.\nconst RemuxerTrackIdConfig = {\n video: 1,\n audio: 2,\n id3: 3,\n text: 4\n};\n\nclass TSDemuxer {\n constructor (observer, remuxer, config, typeSupported) {\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.remuxer = remuxer;\n this.sampleAes = null;\n this.pmtUnknownTypes = {};\n }\n\n setDecryptData (decryptdata) {\n if ((decryptdata != null) && (decryptdata.key != null) && (decryptdata.method === 'SAMPLE-AES')) {\n this.sampleAes = new SampleAesDecrypter(this.observer, this.config, decryptdata, this.discardEPB);\n } else {\n this.sampleAes = null;\n }\n }\n\n static probe (data) {\n const syncOffset = TSDemuxer._syncOffset(data);\n if (syncOffset < 0) {\n return false;\n } else {\n if (syncOffset) {\n logger.warn(`MPEG2-TS detected but first sync word found @ offset ${syncOffset}, junk ahead ?`);\n }\n\n return true;\n }\n }\n\n static _syncOffset (data) {\n // scan 1000 first bytes\n const scanwindow = Math.min(1000, data.length - 3 * 188);\n let i = 0;\n while (i < scanwindow) {\n // a TS fragment should contain at least 3 TS packets, a PAT, a PMT, and one PID, each starting with 0x47\n if (data[i] === 0x47 && data[i + 188] === 0x47 && data[i + 2 * 188] === 0x47) {\n return i;\n } else {\n i++;\n }\n }\n return -1;\n }\n\n /**\n * Creates a track model internal to demuxer used to drive remuxing input\n *\n * @param {string} type 'audio' | 'video' | 'id3' | 'text'\n * @param {number} duration\n * @return {object} TSDemuxer's internal track model\n */\n static createTrack (type, duration) {\n return {\n container: type === 'video' || type === 'audio' ? 'video/mp2t' : undefined,\n type,\n id: RemuxerTrackIdConfig[type],\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: type === 'video' ? 0 : undefined,\n isAAC: type === 'audio' ? true : undefined,\n duration: type === 'audio' ? duration : undefined\n };\n }\n\n /**\n * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start)\n * Resets all internal track instances of the demuxer.\n *\n * @override Implements generic demuxing/remuxing interface (see DemuxerInline)\n * @param {object} initSegment\n * @param {string} audioCodec\n * @param {string} videoCodec\n * @param {number} duration (in TS timescale = 90kHz)\n */\n resetInitSegment (initSegment, audioCodec, videoCodec, duration) {\n this.pmtParsed = false;\n this._pmtId = -1;\n this.pmtUnknownTypes = {};\n\n this._avcTrack = TSDemuxer.createTrack('video', duration);\n this._audioTrack = TSDemuxer.createTrack('audio', duration);\n this._id3Track = TSDemuxer.createTrack('id3', duration);\n this._txtTrack = TSDemuxer.createTrack('text', duration);\n\n // flush any partial content\n this.aacOverFlow = null;\n this.aacLastPTS = null;\n this.avcSample = null;\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this._duration = duration;\n }\n\n /**\n *\n * @override\n */\n resetTimeStamp () {}\n\n // feed incoming data to the front of the parsing pipeline\n append (data, timeOffset, contiguous, accurateTimeOffset) {\n let start, len = data.length, stt, pid, atf, offset, pes,\n unknownPIDs = false;\n this.pmtUnknownTypes = {};\n this.contiguous = contiguous;\n let pmtParsed = this.pmtParsed,\n avcTrack = this._avcTrack,\n audioTrack = this._audioTrack,\n id3Track = this._id3Track,\n avcId = avcTrack.pid,\n audioId = audioTrack.pid,\n id3Id = id3Track.pid,\n pmtId = this._pmtId,\n avcData = avcTrack.pesData,\n audioData = audioTrack.pesData,\n id3Data = id3Track.pesData,\n parsePAT = this._parsePAT,\n parsePMT = this._parsePMT.bind(this),\n parsePES = this._parsePES,\n parseAVCPES = this._parseAVCPES.bind(this),\n parseAACPES = this._parseAACPES.bind(this),\n parseMPEGPES = this._parseMPEGPES.bind(this),\n parseID3PES = this._parseID3PES.bind(this);\n\n const syncOffset = TSDemuxer._syncOffset(data);\n\n // don't parse last TS packet if incomplete\n len -= (len + syncOffset) % 188;\n\n // loop through TS packets\n for (start = syncOffset; start < len; start += 188) {\n if (data[start] === 0x47) {\n stt = !!(data[start + 1] & 0x40);\n // pid is a 13-bit field starting at the last bit of TS[1]\n pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2];\n atf = (data[start + 3] & 0x30) >> 4;\n // if an adaption field is present, its length is specified by the fifth byte of the TS packet header.\n if (atf > 1) {\n offset = start + 5 + data[start + 4];\n // continue if there is only adaptation field\n if (offset === (start + 188)) {\n continue;\n }\n } else {\n offset = start + 4;\n }\n switch (pid) {\n case avcId:\n if (stt) {\n if (avcData && (pes = parsePES(avcData))) {\n parseAVCPES(pes, false);\n }\n\n avcData = { data: [], size: 0 };\n }\n if (avcData) {\n avcData.data.push(data.subarray(offset, start + 188));\n avcData.size += start + 188 - offset;\n }\n break;\n case audioId:\n if (stt) {\n if (audioData && (pes = parsePES(audioData))) {\n if (audioTrack.isAAC) {\n parseAACPES(pes);\n } else {\n parseMPEGPES(pes);\n }\n }\n audioData = { data: [], size: 0 };\n }\n if (audioData) {\n audioData.data.push(data.subarray(offset, start + 188));\n audioData.size += start + 188 - offset;\n }\n break;\n case id3Id:\n if (stt) {\n if (id3Data && (pes = parsePES(id3Data))) {\n parseID3PES(pes);\n }\n\n id3Data = { data: [], size: 0 };\n }\n if (id3Data) {\n id3Data.data.push(data.subarray(offset, start + 188));\n id3Data.size += start + 188 - offset;\n }\n break;\n case 0:\n if (stt) {\n offset += data[offset] + 1;\n }\n\n pmtId = this._pmtId = parsePAT(data, offset);\n break;\n case pmtId:\n if (stt) {\n offset += data[offset] + 1;\n }\n\n let parsedPIDs = parsePMT(data, offset, this.typeSupported.mpeg === true || this.typeSupported.mp3 === true, this.sampleAes != null);\n\n // only update track id if track PID found while parsing PMT\n // this is to avoid resetting the PID to -1 in case\n // track PID transiently disappears from the stream\n // this could happen in case of transient missing audio samples for example\n // NOTE this is only the PID of the track as found in TS,\n // but we are not using this for MP4 track IDs.\n avcId = parsedPIDs.avc;\n if (avcId > 0) {\n avcTrack.pid = avcId;\n }\n\n audioId = parsedPIDs.audio;\n if (audioId > 0) {\n audioTrack.pid = audioId;\n audioTrack.isAAC = parsedPIDs.isAAC;\n }\n id3Id = parsedPIDs.id3;\n if (id3Id > 0) {\n id3Track.pid = id3Id;\n }\n\n if (unknownPIDs && !pmtParsed) {\n logger.log('reparse from beginning');\n unknownPIDs = false;\n // we set it to -188, the += 188 in the for loop will reset start to 0\n start = syncOffset - 188;\n }\n pmtParsed = this.pmtParsed = true;\n break;\n case 17:\n case 0x1fff:\n break;\n default:\n unknownPIDs = true;\n break;\n }\n } else {\n this.observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: false, reason: 'TS packet did not start with 0x47' });\n }\n }\n // try to parse last PES packets\n if (avcData && (pes = parsePES(avcData))) {\n parseAVCPES(pes, true);\n avcTrack.pesData = null;\n } else {\n // either avcData null or PES truncated, keep it for next frag parsing\n avcTrack.pesData = avcData;\n }\n\n if (audioData && (pes = parsePES(audioData))) {\n if (audioTrack.isAAC) {\n parseAACPES(pes);\n } else {\n parseMPEGPES(pes);\n }\n\n audioTrack.pesData = null;\n } else {\n if (audioData && audioData.size) {\n logger.log('last AAC PES packet truncated,might overlap between fragments');\n }\n\n // either audioData null or PES truncated, keep it for next frag parsing\n audioTrack.pesData = audioData;\n }\n\n if (id3Data && (pes = parsePES(id3Data))) {\n parseID3PES(pes);\n id3Track.pesData = null;\n } else {\n // either id3Data null or PES truncated, keep it for next frag parsing\n id3Track.pesData = id3Data;\n }\n\n if (this.sampleAes == null) {\n this.remuxer.remux(audioTrack, avcTrack, id3Track, this._txtTrack, timeOffset, contiguous, accurateTimeOffset);\n } else {\n this.decryptAndRemux(audioTrack, avcTrack, id3Track, this._txtTrack, timeOffset, contiguous, accurateTimeOffset);\n }\n }\n\n decryptAndRemux (audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset) {\n if (audioTrack.samples && audioTrack.isAAC) {\n let localthis = this;\n this.sampleAes.decryptAacSamples(audioTrack.samples, 0, function () {\n localthis.decryptAndRemuxAvc(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n });\n } else {\n this.decryptAndRemuxAvc(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n }\n }\n\n decryptAndRemuxAvc (audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset) {\n if (videoTrack.samples) {\n let localthis = this;\n this.sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, function () {\n localthis.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n });\n } else {\n this.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n }\n }\n\n destroy () {\n this._initPTS = this._initDTS = undefined;\n this._duration = 0;\n }\n\n _parsePAT (data, offset) {\n // skip the PSI header and parse the first PMT entry\n return (data[offset + 10] & 0x1F) << 8 | data[offset + 11];\n // logger.log('PMT PID:' + this._pmtId);\n }\n\n _trackUnknownPmt (type, logLevel, message) {\n // Only log unknown and unsupported stream types once per append or stream (by resetting this.pmtUnknownTypes)\n // For more information on elementary stream types see:\n // https://en.wikipedia.org/wiki/Program-specific_information#Elementary_stream_types\n const result = this.pmtUnknownTypes[type] || 0;\n if (result === 0) {\n this.pmtUnknownTypes[type] = 0;\n logLevel.call(logger, message);\n }\n this.pmtUnknownTypes[type]++;\n return result;\n }\n\n _parsePMT (data, offset, mpegSupported, isSampleAes) {\n let sectionLength, tableEnd, programInfoLength, pid, result = { audio: -1, avc: -1, id3: -1, isAAC: true };\n sectionLength = (data[offset + 1] & 0x0f) << 8 | data[offset + 2];\n tableEnd = offset + 3 + sectionLength - 4;\n // to determine where the table is, we have to figure out how\n // long the program info descriptors are\n programInfoLength = (data[offset + 10] & 0x0f) << 8 | data[offset + 11];\n // advance the offset to the first entry in the mapping table\n offset += 12 + programInfoLength;\n while (offset < tableEnd) {\n pid = (data[offset + 1] & 0x1F) << 8 | data[offset + 2];\n switch (data[offset]) {\n case 0xcf: // SAMPLE-AES AAC\n if (!isSampleAes) {\n this._trackUnknownPmt(data[offset], logger.warn, 'ADTS AAC with AES-128-CBC frame encryption found in unencrypted stream');\n break;\n }\n /* falls through */\n\n // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)\n case 0x0f:\n // logger.log('AAC PID:' + pid);\n if (result.audio === -1) {\n result.audio = pid;\n }\n\n break;\n\n // Packetized metadata (ID3)\n case 0x15:\n // logger.log('ID3 PID:' + pid);\n if (result.id3 === -1) {\n result.id3 = pid;\n }\n\n break;\n\n case 0xdb: // SAMPLE-AES AVC\n if (!isSampleAes) {\n this._trackUnknownPmt(data[offset], logger.warn, 'H.264 with AES-128-CBC slice encryption found in unencrypted stream');\n break;\n }\n /* falls through */\n\n // ITU-T Rec. H.264 and ISO/IEC 14496-10 (lower bit-rate video)\n case 0x1b:\n // logger.log('AVC PID:' + pid);\n if (result.avc === -1) {\n result.avc = pid;\n }\n\n break;\n\n // ISO/IEC 11172-3 (MPEG-1 audio)\n // or ISO/IEC 13818-3 (MPEG-2 halved sample rate audio)\n case 0x03:\n case 0x04:\n // logger.log('MPEG PID:' + pid);\n if (!mpegSupported) {\n this._trackUnknownPmt(data[offset], logger.warn, 'MPEG audio found, not supported in this browser');\n } else if (result.audio === -1) {\n result.audio = pid;\n result.isAAC = false;\n }\n break;\n\n case 0x24:\n this._trackUnknownPmt(data[offset], logger.warn, 'Unsupported HEVC stream type found');\n break;\n\n default:\n this._trackUnknownPmt(data[offset], logger.log, 'Unknown stream type:' + data[offset]);\n break;\n }\n // move to the next table entry\n // skip past the elementary stream descriptors, if present\n offset += ((data[offset + 3] & 0x0F) << 8 | data[offset + 4]) + 5;\n }\n return result;\n }\n\n _parsePES (stream) {\n let i = 0, frag, pesFlags, pesPrefix, pesLen, pesHdrLen, pesData, pesPts, pesDts, payloadStartOffset, data = stream.data;\n // safety check\n if (!stream || stream.size === 0) {\n return null;\n }\n\n // we might need up to 19 bytes to read PES header\n // if first chunk of data is less than 19 bytes, let's merge it with following ones until we get 19 bytes\n // usually only one merge is needed (and this is rare ...)\n while (data[0].length < 19 && data.length > 1) {\n let newData = new Uint8Array(data[0].length + data[1].length);\n newData.set(data[0]);\n newData.set(data[1], data[0].length);\n data[0] = newData;\n data.splice(1, 1);\n }\n // retrieve PTS/DTS from first fragment\n frag = data[0];\n pesPrefix = (frag[0] << 16) + (frag[1] << 8) + frag[2];\n if (pesPrefix === 1) {\n pesLen = (frag[4] << 8) + frag[5];\n // if PES parsed length is not zero and greater than total received length, stop parsing. PES might be truncated\n // minus 6 : PES header size\n if (pesLen && pesLen > stream.size - 6) {\n return null;\n }\n\n pesFlags = frag[7];\n if (pesFlags & 0xC0) {\n /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n as PTS / DTS is 33 bit we cannot use bitwise operator in JS,\n as Bitwise operators treat their operands as a sequence of 32 bits */\n pesPts = (frag[9] & 0x0E) * 536870912 +// 1 << 29\n (frag[10] & 0xFF) * 4194304 +// 1 << 22\n (frag[11] & 0xFE) * 16384 +// 1 << 14\n (frag[12] & 0xFF) * 128 +// 1 << 7\n (frag[13] & 0xFE) / 2;\n\n if (pesFlags & 0x40) {\n pesDts = (frag[14] & 0x0E) * 536870912 +// 1 << 29\n (frag[15] & 0xFF) * 4194304 +// 1 << 22\n (frag[16] & 0xFE) * 16384 +// 1 << 14\n (frag[17] & 0xFF) * 128 +// 1 << 7\n (frag[18] & 0xFE) / 2;\n\n if (pesPts - pesDts > 60 * 90000) {\n logger.warn(`${Math.round((pesPts - pesDts) / 90000)}s delta between PTS and DTS, align them`);\n pesPts = pesDts;\n }\n } else {\n pesDts = pesPts;\n }\n }\n pesHdrLen = frag[8];\n // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension\n payloadStartOffset = pesHdrLen + 9;\n\n if (stream.size <= payloadStartOffset) {\n return null;\n }\n stream.size -= payloadStartOffset;\n // reassemble PES packet\n pesData = new Uint8Array(stream.size);\n for (let j = 0, dataLen = data.length; j < dataLen; j++) {\n frag = data[j];\n let len = frag.byteLength;\n if (payloadStartOffset) {\n if (payloadStartOffset > len) {\n // trim full frag if PES header bigger than frag\n payloadStartOffset -= len;\n continue;\n } else {\n // trim partial frag if PES header smaller than frag\n frag = frag.subarray(payloadStartOffset);\n len -= payloadStartOffset;\n payloadStartOffset = 0;\n }\n }\n pesData.set(frag, i);\n i += len;\n }\n if (pesLen) {\n // payload size : remove PES header + PES extension\n pesLen -= pesHdrLen + 3;\n }\n return { data: pesData, pts: pesPts, dts: pesDts, len: pesLen };\n } else {\n return null;\n }\n }\n\n pushAccesUnit (avcSample, avcTrack) {\n if (avcSample.units.length && avcSample.frame) {\n const samples = avcTrack.samples;\n const nbSamples = samples.length;\n // if sample does not have PTS/DTS, patch with last sample PTS/DTS\n if (isNaN(avcSample.pts)) {\n if (nbSamples) {\n const lastSample = samples[nbSamples - 1];\n avcSample.pts = lastSample.pts;\n avcSample.dts = lastSample.dts;\n } else {\n // dropping samples, no timestamp found\n avcTrack.dropped++;\n return;\n }\n }\n // only push AVC sample if starting with a keyframe is not mandatory OR\n // if keyframe already found in this fragment OR\n // keyframe found in last fragment (track.sps) AND\n // samples already appended (we already found a keyframe in this fragment) OR fragment is contiguous\n if (!this.config.forceKeyFrameOnDiscontinuity ||\n avcSample.key === true ||\n (avcTrack.sps && (nbSamples || this.contiguous))) {\n avcSample.id = nbSamples;\n samples.push(avcSample);\n } else {\n // dropped samples, track it\n avcTrack.dropped++;\n }\n }\n if (avcSample.debug.length) {\n logger.log(avcSample.pts + '/' + avcSample.dts + ':' + avcSample.debug);\n }\n }\n\n _parseAVCPES (pes, last) {\n // logger.log('parse new PES');\n let track = this._avcTrack,\n units = this._parseAVCNALu(pes.data),\n debug = false,\n expGolombDecoder,\n avcSample = this.avcSample,\n push,\n spsfound = false,\n i,\n pushAccesUnit = this.pushAccesUnit.bind(this),\n createAVCSample = function (key, pts, dts, debug) {\n return { key: key, pts: pts, dts: dts, units: [], debug: debug };\n };\n // free pes.data to save up some memory\n pes.data = null;\n\n // if new NAL units found and last sample still there, let's push ...\n // this helps parsing streams with missing AUD (only do this if AUD never found)\n if (avcSample && units.length && !track.audFound) {\n pushAccesUnit(avcSample, track);\n avcSample = this.avcSample = createAVCSample(false, pes.pts, pes.dts, '');\n }\n\n units.forEach(unit => {\n switch (unit.type) {\n // NDR\n case 1:\n push = true;\n if (!avcSample) {\n avcSample = this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n }\n\n if (debug) {\n avcSample.debug += 'NDR ';\n }\n\n avcSample.frame = true;\n let data = unit.data;\n // only check slice type to detect KF in case SPS found in same packet (any keyframe is preceded by SPS ...)\n if (spsfound && data.length > 4) {\n // retrieve slice type by parsing beginning of NAL unit (follow H264 spec, slice_header definition) to detect keyframe embedded in NDR\n let sliceType = new ExpGolomb(data).readSliceType();\n // 2 : I slice, 4 : SI slice, 7 : I slice, 9: SI slice\n // SI slice : A slice that is coded using intra prediction only and using quantisation of the prediction samples.\n // An SI slice can be coded such that its decoded samples can be constructed identically to an SP slice.\n // I slice: A slice that is not an SI slice that is decoded using intra prediction only.\n // if (sliceType === 2 || sliceType === 7) {\n if (sliceType === 2 || sliceType === 4 || sliceType === 7 || sliceType === 9) {\n avcSample.key = true;\n }\n }\n break;\n // IDR\n case 5:\n push = true;\n // handle PES not starting with AUD\n if (!avcSample) {\n avcSample = this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n }\n\n if (debug) {\n avcSample.debug += 'IDR ';\n }\n\n avcSample.key = true;\n avcSample.frame = true;\n break;\n // SEI\n case 6:\n push = true;\n if (debug && avcSample) {\n avcSample.debug += 'SEI ';\n }\n\n expGolombDecoder = new ExpGolomb(this.discardEPB(unit.data));\n\n // skip frameType\n expGolombDecoder.readUByte();\n\n var payloadType = 0;\n var payloadSize = 0;\n var endOfCaptions = false;\n var b = 0;\n\n while (!endOfCaptions && expGolombDecoder.bytesAvailable > 1) {\n payloadType = 0;\n do {\n b = expGolombDecoder.readUByte();\n payloadType += b;\n } while (b === 0xFF);\n\n // Parse payload size.\n payloadSize = 0;\n do {\n b = expGolombDecoder.readUByte();\n payloadSize += b;\n } while (b === 0xFF);\n\n // TODO: there can be more than one payload in an SEI packet...\n // TODO: need to read type and size in a while loop to get them all\n if (payloadType === 4 && expGolombDecoder.bytesAvailable !== 0) {\n endOfCaptions = true;\n\n let countryCode = expGolombDecoder.readUByte();\n\n if (countryCode === 181) {\n let providerCode = expGolombDecoder.readUShort();\n\n if (providerCode === 49) {\n let userStructure = expGolombDecoder.readUInt();\n\n if (userStructure === 0x47413934) {\n let userDataType = expGolombDecoder.readUByte();\n\n // Raw CEA-608 bytes wrapped in CEA-708 packet\n if (userDataType === 3) {\n let firstByte = expGolombDecoder.readUByte();\n let secondByte = expGolombDecoder.readUByte();\n\n let totalCCs = 31 & firstByte;\n let byteArray = [firstByte, secondByte];\n\n for (i = 0; i < totalCCs; i++) {\n // 3 bytes per CC\n byteArray.push(expGolombDecoder.readUByte());\n byteArray.push(expGolombDecoder.readUByte());\n byteArray.push(expGolombDecoder.readUByte());\n }\n\n this._insertSampleInOrder(this._txtTrack.samples, { type: 3, pts: pes.pts, bytes: byteArray });\n }\n }\n }\n }\n } else if (payloadType === 5 && expGolombDecoder.bytesAvailable !== 0) {\n endOfCaptions = true;\n\n if (payloadSize > 16) {\n const uuidStrArray = [];\n for (i = 0; i < 16; i++) {\n uuidStrArray.push(expGolombDecoder.readUByte().toString(16));\n\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n uuidStrArray.push('-');\n }\n }\n const length = payloadSize - 16;\n const userDataPayloadBytes = new Uint8Array(length);\n for (i = 0; i < length; i++) {\n userDataPayloadBytes[i] = expGolombDecoder.readUByte();\n }\n\n this._insertSampleInOrder(this._txtTrack.samples, {\n pts: pes.pts,\n payloadType: payloadType,\n uuid: uuidStrArray.join(''),\n userDataBytes: userDataPayloadBytes,\n userData: utf8ArrayToStr(userDataPayloadBytes.buffer)\n });\n }\n } else if (payloadSize < expGolombDecoder.bytesAvailable) {\n for (i = 0; i < payloadSize; i++) {\n expGolombDecoder.readUByte();\n }\n }\n }\n break;\n // SPS\n case 7:\n push = true;\n spsfound = true;\n if (debug && avcSample) {\n avcSample.debug += 'SPS ';\n }\n\n if (!track.sps) {\n expGolombDecoder = new ExpGolomb(unit.data);\n let config = expGolombDecoder.readSPS();\n track.width = config.width;\n track.height = config.height;\n track.pixelRatio = config.pixelRatio;\n track.sps = [unit.data];\n track.duration = this._duration;\n let codecarray = unit.data.subarray(1, 4);\n let codecstring = 'avc1.';\n for (i = 0; i < 3; i++) {\n let h = codecarray[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecstring += h;\n }\n track.codec = codecstring;\n }\n break;\n // PPS\n case 8:\n push = true;\n if (debug && avcSample) {\n avcSample.debug += 'PPS ';\n }\n\n if (!track.pps) {\n track.pps = [unit.data];\n }\n\n break;\n // AUD\n case 9:\n push = false;\n track.audFound = true;\n if (avcSample) {\n pushAccesUnit(avcSample, track);\n }\n\n avcSample = this.avcSample = createAVCSample(false, pes.pts, pes.dts, debug ? 'AUD ' : '');\n break;\n // Filler Data\n case 12:\n push = false;\n break;\n default:\n push = false;\n if (avcSample) {\n avcSample.debug += 'unknown NAL ' + unit.type + ' ';\n }\n\n break;\n }\n if (avcSample && push) {\n let units = avcSample.units;\n units.push(unit);\n }\n });\n // if last PES packet, push samples\n if (last && avcSample) {\n pushAccesUnit(avcSample, track);\n this.avcSample = null;\n }\n }\n\n _insertSampleInOrder (arr, data) {\n let len = arr.length;\n if (len > 0) {\n if (data.pts >= arr[len - 1].pts) {\n arr.push(data);\n } else {\n for (let pos = len - 1; pos >= 0; pos--) {\n if (data.pts < arr[pos].pts) {\n arr.splice(pos, 0, data);\n break;\n }\n }\n }\n } else {\n arr.push(data);\n }\n }\n\n _getLastNalUnit () {\n let avcSample = this.avcSample, lastUnit;\n // try to fallback to previous sample if current one is empty\n if (!avcSample || avcSample.units.length === 0) {\n let track = this._avcTrack, samples = track.samples;\n avcSample = samples[samples.length - 1];\n }\n if (avcSample) {\n let units = avcSample.units;\n lastUnit = units[units.length - 1];\n }\n return lastUnit;\n }\n\n _parseAVCNALu (array) {\n let i = 0, len = array.byteLength, value, overflow, track = this._avcTrack, state = track.naluState || 0, lastState = state;\n let units = [], unit, unitType, lastUnitStart = -1, lastUnitType;\n // logger.log('PES:' + Hex.hexDump(array));\n\n if (state === -1) {\n // special use case where we found 3 or 4-byte start codes exactly at the end of previous PES packet\n lastUnitStart = 0;\n // NALu type is value read from offset 0\n lastUnitType = array[0] & 0x1f;\n state = 0;\n i = 1;\n }\n\n while (i < len) {\n value = array[i++];\n // optimization. state 0 and 1 are the predominant case. let's handle them outside of the switch/case\n if (!state) {\n state = value ? 0 : 1;\n continue;\n }\n if (state === 1) {\n state = value ? 0 : 2;\n continue;\n }\n // here we have state either equal to 2 or 3\n if (!value) {\n state = 3;\n } else if (value === 1) {\n if (lastUnitStart >= 0) {\n unit = { data: array.subarray(lastUnitStart, i - state - 1), type: lastUnitType };\n // logger.log('pushing NALU, type/size:' + unit.type + '/' + unit.data.byteLength);\n units.push(unit);\n } else {\n // lastUnitStart is undefined => this is the first start code found in this PES packet\n // first check if start code delimiter is overlapping between 2 PES packets,\n // ie it started in last packet (lastState not zero)\n // and ended at the beginning of this PES packet (i <= 4 - lastState)\n let lastUnit = this._getLastNalUnit();\n if (lastUnit) {\n if (lastState && (i <= 4 - lastState)) {\n // start delimiter overlapping between PES packets\n // strip start delimiter bytes from the end of last NAL unit\n // check if lastUnit had a state different from zero\n if (lastUnit.state) {\n // strip last bytes\n lastUnit.data = lastUnit.data.subarray(0, lastUnit.data.byteLength - lastState);\n }\n }\n // If NAL units are not starting right at the beginning of the PES packet, push preceding data into previous NAL unit.\n overflow = i - state - 1;\n if (overflow > 0) {\n // logger.log('first NALU found with overflow:' + overflow);\n let tmp = new Uint8Array(lastUnit.data.byteLength + overflow);\n tmp.set(lastUnit.data, 0);\n tmp.set(array.subarray(0, overflow), lastUnit.data.byteLength);\n lastUnit.data = tmp;\n }\n }\n }\n // check if we can read unit type\n if (i < len) {\n unitType = array[i] & 0x1f;\n // logger.log('find NALU @ offset:' + i + ',type:' + unitType);\n lastUnitStart = i;\n lastUnitType = unitType;\n state = 0;\n } else {\n // not enough byte to read unit type. let's read it on next PES parsing\n state = -1;\n }\n } else {\n state = 0;\n }\n }\n if (lastUnitStart >= 0 && state >= 0) {\n unit = { data: array.subarray(lastUnitStart, len), type: lastUnitType, state: state };\n units.push(unit);\n // logger.log('pushing NALU, type/size/state:' + unit.type + '/' + unit.data.byteLength + '/' + state);\n }\n // no NALu found\n if (units.length === 0) {\n // append pes.data to previous NAL unit\n let lastUnit = this._getLastNalUnit();\n if (lastUnit) {\n let tmp = new Uint8Array(lastUnit.data.byteLength + array.byteLength);\n tmp.set(lastUnit.data, 0);\n tmp.set(array, lastUnit.data.byteLength);\n lastUnit.data = tmp;\n }\n }\n track.naluState = state;\n return units;\n }\n\n /**\n * remove Emulation Prevention bytes from a RBSP\n */\n discardEPB (data) {\n let length = data.byteLength,\n EPBPositions = [],\n i = 1,\n newLength, newData;\n\n // Find all `Emulation Prevention Bytes`\n while (i < length - 2) {\n if (data[i] === 0 &&\n data[i + 1] === 0 &&\n data[i + 2] === 0x03) {\n EPBPositions.push(i + 2);\n i += 2;\n } else {\n i++;\n }\n }\n\n // If no Emulation Prevention Bytes were found just return the original\n // array\n if (EPBPositions.length === 0) {\n return data;\n }\n\n // Create a new array to hold the NAL unit data\n newLength = length - EPBPositions.length;\n newData = new Uint8Array(newLength);\n let sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === EPBPositions[0]) {\n // Skip this byte\n sourceIndex++;\n // Remove this position index\n EPBPositions.shift();\n }\n newData[i] = data[sourceIndex];\n }\n return newData;\n }\n\n _parseAACPES (pes) {\n let track = this._audioTrack,\n data = pes.data,\n pts = pes.pts,\n startOffset = 0,\n aacOverFlow = this.aacOverFlow,\n aacLastPTS = this.aacLastPTS,\n frameDuration, frameIndex, offset, stamp, len;\n if (aacOverFlow) {\n let tmp = new Uint8Array(aacOverFlow.byteLength + data.byteLength);\n tmp.set(aacOverFlow, 0);\n tmp.set(data, aacOverFlow.byteLength);\n // logger.log(`AAC: append overflowing ${aacOverFlow.byteLength} bytes to beginning of new PES`);\n data = tmp;\n }\n // look for ADTS header (0xFFFx)\n for (offset = startOffset, len = data.length; offset < len - 1; offset++) {\n if (ADTS.isHeader(data, offset)) {\n break;\n }\n }\n // if ADTS header does not start straight from the beginning of the PES payload, raise an error\n if (offset) {\n let reason, fatal;\n if (offset < len - 1) {\n reason = `AAC PES did not start with ADTS header,offset:${offset}`;\n fatal = false;\n } else {\n reason = 'no ADTS header found in AAC PES';\n fatal = true;\n }\n logger.warn(`parsing error:${reason}`);\n this.observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: fatal, reason: reason });\n if (fatal) {\n return;\n }\n }\n\n ADTS.initTrackConfig(track, this.observer, data, offset, this.audioCodec);\n frameIndex = 0;\n frameDuration = ADTS.getFrameDuration(track.samplerate);\n\n // if last AAC frame is overflowing, we should ensure timestamps are contiguous:\n // first sample PTS should be equal to last sample PTS + frameDuration\n if (aacOverFlow && aacLastPTS) {\n let newPTS = aacLastPTS + frameDuration;\n if (Math.abs(newPTS - pts) > 1) {\n logger.log(`AAC: align PTS for overlapping frames by ${Math.round((newPTS - pts) / 90)}`);\n pts = newPTS;\n }\n }\n\n // scan for aac samples\n while (offset < len) {\n if (ADTS.isHeader(data, offset)) {\n if ((offset + 5) < len) {\n const frame = ADTS.appendFrame(track, data, offset, pts, frameIndex);\n if (frame) {\n offset += frame.length;\n stamp = frame.sample.pts;\n frameIndex++;\n continue;\n }\n }\n // We are at an ADTS header, but do not have enough data for a frame\n // Remaining data will be added to aacOverFlow\n break;\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n\n if (offset < len) {\n aacOverFlow = data.subarray(offset, len);\n // logger.log(`AAC: overflow detected:${len-offset}`);\n } else {\n aacOverFlow = null;\n }\n\n this.aacOverFlow = aacOverFlow;\n this.aacLastPTS = stamp;\n }\n\n _parseMPEGPES (pes) {\n let data = pes.data;\n let length = data.length;\n let frameIndex = 0;\n let offset = 0;\n let pts = pes.pts;\n\n while (offset < length) {\n if (MpegAudio.isHeader(data, offset)) {\n let frame = MpegAudio.appendFrame(this._audioTrack, data, offset, pts, frameIndex);\n if (frame) {\n offset += frame.length;\n frameIndex++;\n } else {\n // logger.log('Unable to parse Mpeg audio frame');\n break;\n }\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n }\n\n _parseID3PES (pes) {\n this._id3Track.samples.push(pes);\n }\n}\n\nexport default TSDemuxer;\n","/**\n * MP3 demuxer\n */\nimport ID3 from '../demux/id3';\nimport { logger } from '../utils/logger';\nimport MpegAudio from './mpegaudio';\n\nclass MP3Demuxer {\n constructor (observer, remuxer, config) {\n this.observer = observer;\n this.config = config;\n this.remuxer = remuxer;\n }\n\n resetInitSegment (initSegment, audioCodec, videoCodec, duration) {\n this._audioTrack = { container: 'audio/mpeg', type: 'audio', id: -1, sequenceNumber: 0, isAAC: false, samples: [], len: 0, manifestCodec: audioCodec, duration: duration, inputTimeScale: 90000 };\n }\n\n resetTimeStamp () {\n }\n\n static probe (data) {\n // check if data contains ID3 timestamp and MPEG sync word\n let offset, length;\n let id3Data = ID3.getID3Data(data, 0);\n if (id3Data && ID3.getTimeStamp(id3Data) !== undefined) {\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n for (offset = id3Data.length, length = Math.min(data.length - 1, offset + 100); offset < length; offset++) {\n if (MpegAudio.probe(data, offset)) {\n logger.log('MPEG Audio sync word found !');\n return true;\n }\n }\n }\n return false;\n }\n\n // feed incoming data to the front of the parsing pipeline\n append (data, timeOffset, contiguous, accurateTimeOffset) {\n let id3Data = ID3.getID3Data(data, 0) || [];\n let timestamp = ID3.getTimeStamp(id3Data);\n let pts = timestamp !== undefined ? 90 * timestamp : timeOffset * 90000;\n let offset = id3Data.length;\n let length = data.length;\n let frameIndex = 0, stamp = 0;\n let track = this._audioTrack;\n\n let id3Samples = [{ pts: pts, dts: pts, data: id3Data }];\n\n while (offset < length) {\n if (MpegAudio.isHeader(data, offset)) {\n let frame = MpegAudio.appendFrame(track, data, offset, pts, frameIndex);\n if (frame) {\n offset += frame.length;\n stamp = frame.sample.pts;\n frameIndex++;\n } else {\n // logger.log('Unable to parse Mpeg audio frame');\n break;\n }\n } else if (ID3.isHeader(data, offset)) {\n id3Data = ID3.getID3Data(data, offset);\n id3Samples.push({ pts: stamp, dts: stamp, data: id3Data });\n offset += id3Data.length;\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n\n this.remuxer.remux(track,\n { samples: [] },\n { samples: id3Samples, inputTimeScale: 90000 },\n { samples: [] },\n timeOffset,\n contiguous,\n accurateTimeOffset);\n }\n\n destroy () {\n }\n}\n\nexport default MP3Demuxer;\n","/**\n * AAC helper\n */\n\nclass AAC {\n static getSilentFrame (codec, channelCount) {\n switch (codec) {\n case 'mp4a.40.2':\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n } else if (channelCount === 3) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n } else if (channelCount === 4) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n } else if (channelCount === 5) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n } else if (channelCount === 6) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n }\n\n break;\n // handle HE-AAC below (mp4a.40.5 / mp4a.40.29)\n default:\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n }\n break;\n }\n return null;\n }\n}\n\nexport default AAC;\n","/**\n * Generate MP4 Box\n*/\n\nconst UINT32_MAX = Math.pow(2, 32) - 1;\n\nclass MP4 {\n static init () {\n MP4.types = {\n avc1: [], // codingname\n avcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n '.mp3': [],\n mvex: [],\n mvhd: [],\n pasp: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: []\n };\n\n let i;\n for (i in MP4.types) {\n if (MP4.types.hasOwnProperty(i)) {\n MP4.types[i] = [\n i.charCodeAt(0),\n i.charCodeAt(1),\n i.charCodeAt(2),\n i.charCodeAt(3)\n ];\n }\n }\n\n let videoHdlr = new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x56, 0x69, 0x64, 0x65,\n 0x6f, 0x48, 0x61, 0x6e,\n 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'\n ]);\n\n let audioHdlr = new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0x73, 0x6f, 0x75, 0x6e, // handler_type: 'soun'\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x53, 0x6f, 0x75, 0x6e,\n 0x64, 0x48, 0x61, 0x6e,\n 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'\n ]);\n\n MP4.HDLR_TYPES = {\n 'video': videoHdlr,\n 'audio': audioHdlr\n };\n\n let dref = new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01, // entry_count\n 0x00, 0x00, 0x00, 0x0c, // entry_size\n 0x75, 0x72, 0x6c, 0x20, // 'url' type\n 0x00, // version 0\n 0x00, 0x00, 0x01 // entry_flags\n ]);\n\n let stco = new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00 // entry_count\n ]);\n\n MP4.STTS = MP4.STSC = MP4.STCO = stco;\n\n MP4.STSZ = new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, // sample_size\n 0x00, 0x00, 0x00, 0x00 // sample_count\n ]);\n MP4.VMHD = new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x01, // flags\n 0x00, 0x00, // graphicsmode\n 0x00, 0x00,\n 0x00, 0x00,\n 0x00, 0x00 // opcolor\n ]);\n MP4.SMHD = new Uint8Array([\n 0x00, // version\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, // balance\n 0x00, 0x00 // reserved\n ]);\n\n MP4.STSD = new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x01]);// entry_count\n\n let majorBrand = new Uint8Array([105, 115, 111, 109]); // isom\n let avc1Brand = new Uint8Array([97, 118, 99, 49]); // avc1\n let minorVersion = new Uint8Array([0, 0, 0, 1]);\n\n MP4.FTYP = MP4.box(MP4.types.ftyp, majorBrand, minorVersion, majorBrand, avc1Brand);\n MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref));\n }\n\n static box (type) {\n let\n payload = Array.prototype.slice.call(arguments, 1),\n size = 8,\n i = payload.length,\n len = i,\n result;\n // calculate the total size we need to allocate\n while (i--) {\n size += payload[i].byteLength;\n }\n\n result = new Uint8Array(size);\n result[0] = (size >> 24) & 0xff;\n result[1] = (size >> 16) & 0xff;\n result[2] = (size >> 8) & 0xff;\n result[3] = size & 0xff;\n result.set(type, 4);\n // copy the payload into the result\n for (i = 0, size = 8; i < len; i++) {\n // copy payload[i] array @ offset size\n result.set(payload[i], size);\n size += payload[i].byteLength;\n }\n return result;\n }\n\n static hdlr (type) {\n return MP4.box(MP4.types.hdlr, MP4.HDLR_TYPES[type]);\n }\n\n static mdat (data) {\n return MP4.box(MP4.types.mdat, data);\n }\n\n static mdhd (timescale, duration) {\n duration *= timescale;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(MP4.types.mdhd, new Uint8Array([\n 0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n (timescale >> 24) & 0xFF,\n (timescale >> 16) & 0xFF,\n (timescale >> 8) & 0xFF,\n timescale & 0xFF, // timescale\n (upperWordDuration >> 24),\n (upperWordDuration >> 16) & 0xFF,\n (upperWordDuration >> 8) & 0xFF,\n upperWordDuration & 0xFF,\n (lowerWordDuration >> 24),\n (lowerWordDuration >> 16) & 0xFF,\n (lowerWordDuration >> 8) & 0xFF,\n lowerWordDuration & 0xFF,\n 0x55, 0xc4, // 'und' language (undetermined)\n 0x00, 0x00\n ]));\n }\n\n static mdia (track) {\n return MP4.box(MP4.types.mdia, MP4.mdhd(track.timescale, track.duration), MP4.hdlr(track.type), MP4.minf(track));\n }\n\n static mfhd (sequenceNumber) {\n return MP4.box(MP4.types.mfhd, new Uint8Array([\n 0x00,\n 0x00, 0x00, 0x00, // flags\n (sequenceNumber >> 24),\n (sequenceNumber >> 16) & 0xFF,\n (sequenceNumber >> 8) & 0xFF,\n sequenceNumber & 0xFF // sequence_number\n ]));\n }\n\n static minf (track) {\n if (track.type === 'audio') {\n return MP4.box(MP4.types.minf, MP4.box(MP4.types.smhd, MP4.SMHD), MP4.DINF, MP4.stbl(track));\n } else {\n return MP4.box(MP4.types.minf, MP4.box(MP4.types.vmhd, MP4.VMHD), MP4.DINF, MP4.stbl(track));\n }\n }\n\n static moof (sn, baseMediaDecodeTime, track) {\n return MP4.box(MP4.types.moof, MP4.mfhd(sn), MP4.traf(track, baseMediaDecodeTime));\n }\n /**\n * @param tracks... (optional) {array} the tracks associated with this movie\n */\n static moov (tracks) {\n let\n i = tracks.length,\n boxes = [];\n\n while (i--) {\n boxes[i] = MP4.trak(tracks[i]);\n }\n\n return MP4.box.apply(null, [MP4.types.moov, MP4.mvhd(tracks[0].timescale, tracks[0].duration)].concat(boxes).concat(MP4.mvex(tracks)));\n }\n\n static mvex (tracks) {\n let\n i = tracks.length,\n boxes = [];\n\n while (i--) {\n boxes[i] = MP4.trex(tracks[i]);\n }\n\n return MP4.box.apply(null, [MP4.types.mvex].concat(boxes));\n }\n\n static mvhd (timescale, duration) {\n duration *= timescale;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n let\n bytes = new Uint8Array([\n 0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n (timescale >> 24) & 0xFF,\n (timescale >> 16) & 0xFF,\n (timescale >> 8) & 0xFF,\n timescale & 0xFF, // timescale\n (upperWordDuration >> 24),\n (upperWordDuration >> 16) & 0xFF,\n (upperWordDuration >> 8) & 0xFF,\n upperWordDuration & 0xFF,\n (lowerWordDuration >> 24),\n (lowerWordDuration >> 16) & 0xFF,\n (lowerWordDuration >> 8) & 0xFF,\n lowerWordDuration & 0xFF,\n 0x00, 0x01, 0x00, 0x00, // 1.0 rate\n 0x01, 0x00, // 1.0 volume\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n 0xff, 0xff, 0xff, 0xff // next_track_ID\n ]);\n return MP4.box(MP4.types.mvhd, bytes);\n }\n\n static sdtp (track) {\n let\n samples = track.samples || [],\n bytes = new Uint8Array(4 + samples.length),\n flags,\n i;\n // leave the full box header (4 bytes) all zero\n // write the sample table\n for (i = 0; i < samples.length; i++) {\n flags = samples[i].flags;\n bytes[i + 4] = (flags.dependsOn << 4) |\n (flags.isDependedOn << 2) |\n (flags.hasRedundancy);\n }\n\n return MP4.box(MP4.types.sdtp, bytes);\n }\n\n static stbl (track) {\n return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.box(MP4.types.stts, MP4.STTS), MP4.box(MP4.types.stsc, MP4.STSC), MP4.box(MP4.types.stsz, MP4.STSZ), MP4.box(MP4.types.stco, MP4.STCO));\n }\n\n static avc1 (track) {\n let sps = [], pps = [], i, data, len;\n // assemble the SPSs\n\n for (i = 0; i < track.sps.length; i++) {\n data = track.sps[i];\n len = data.byteLength;\n sps.push((len >>> 8) & 0xFF);\n sps.push((len & 0xFF));\n\n // SPS\n sps = sps.concat(Array.prototype.slice.call(data));\n }\n\n // assemble the PPSs\n for (i = 0; i < track.pps.length; i++) {\n data = track.pps[i];\n len = data.byteLength;\n pps.push((len >>> 8) & 0xFF);\n pps.push((len & 0xFF));\n\n pps = pps.concat(Array.prototype.slice.call(data));\n }\n\n let avcc = MP4.box(MP4.types.avcC, new Uint8Array([\n 0x01, // version\n sps[3], // profile\n sps[4], // profile compat\n sps[5], // level\n 0xfc | 3, // lengthSizeMinusOne, hard-coded to 4 bytes\n 0xE0 | track.sps.length // 3bit reserved (111) + numOfSequenceParameterSets\n ].concat(sps).concat([\n track.pps.length // numOfPictureParameterSets\n ]).concat(pps))), // \"PPS\"\n width = track.width,\n height = track.height,\n hSpacing = track.pixelRatio[0],\n vSpacing = track.pixelRatio[1];\n\n return MP4.box(MP4.types.avc1, new Uint8Array([\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, // pre_defined\n 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // pre_defined\n (width >> 8) & 0xFF,\n width & 0xff, // width\n (height >> 8) & 0xFF,\n height & 0xff, // height\n 0x00, 0x48, 0x00, 0x00, // horizresolution\n 0x00, 0x48, 0x00, 0x00, // vertresolution\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // frame_count\n 0x12,\n 0x64, 0x61, 0x69, 0x6C, // dailymotion/hls.js\n 0x79, 0x6D, 0x6F, 0x74,\n 0x69, 0x6F, 0x6E, 0x2F,\n 0x68, 0x6C, 0x73, 0x2E,\n 0x6A, 0x73, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, // compressorname\n 0x00, 0x18, // depth = 24\n 0x11, 0x11]), // pre_defined = -1\n avcc,\n MP4.box(MP4.types.btrt, new Uint8Array([\n 0x00, 0x1c, 0x9c, 0x80, // bufferSizeDB\n 0x00, 0x2d, 0xc6, 0xc0, // maxBitrate\n 0x00, 0x2d, 0xc6, 0xc0])), // avgBitrate\n MP4.box(MP4.types.pasp, new Uint8Array([\n (hSpacing >> 24), // hSpacing\n (hSpacing >> 16) & 0xFF,\n (hSpacing >> 8) & 0xFF,\n hSpacing & 0xFF,\n (vSpacing >> 24), // vSpacing\n (vSpacing >> 16) & 0xFF,\n (vSpacing >> 8) & 0xFF,\n vSpacing & 0xFF]))\n );\n }\n\n static esds (track) {\n let configlen = track.config.length;\n return new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n\n 0x03, // descriptor_type\n 0x17 + configlen, // length\n 0x00, 0x01, // es_id\n 0x00, // stream_priority\n\n 0x04, // descriptor_type\n 0x0f + configlen, // length\n 0x40, // codec : mpeg4_audio\n 0x15, // stream_type\n 0x00, 0x00, 0x00, // buffer_size\n 0x00, 0x00, 0x00, 0x00, // maxBitrate\n 0x00, 0x00, 0x00, 0x00, // avgBitrate\n\n 0x05 // descriptor_type\n ].concat([configlen]).concat(track.config).concat([0x06, 0x01, 0x02])); // GASpecificConfig)); // length + audio config descriptor\n }\n\n static mp4a (track) {\n let samplerate = track.samplerate;\n return MP4.box(MP4.types.mp4a, new Uint8Array([\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, track.channelCount, // channelcount\n 0x00, 0x10, // sampleSize:16bits\n 0x00, 0x00, 0x00, 0x00, // reserved2\n (samplerate >> 8) & 0xFF,\n samplerate & 0xff, //\n 0x00, 0x00]),\n MP4.box(MP4.types.esds, MP4.esds(track)));\n }\n\n static mp3 (track) {\n let samplerate = track.samplerate;\n return MP4.box(MP4.types['.mp3'], new Uint8Array([\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, 0x00, // reserved\n 0x00, 0x01, // data_reference_index\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, track.channelCount, // channelcount\n 0x00, 0x10, // sampleSize:16bits\n 0x00, 0x00, 0x00, 0x00, // reserved2\n (samplerate >> 8) & 0xFF,\n samplerate & 0xff, //\n 0x00, 0x00]));\n }\n\n static stsd (track) {\n if (track.type === 'audio') {\n if (!track.isAAC && track.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp3(track));\n }\n\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp4a(track));\n } else {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track));\n }\n }\n\n static tkhd (track) {\n let id = track.id,\n duration = track.duration * track.timescale,\n width = track.width,\n height = track.height,\n upperWordDuration = Math.floor(duration / (UINT32_MAX + 1)),\n lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(MP4.types.tkhd, new Uint8Array([\n 0x01, // version 1\n 0x00, 0x00, 0x07, // flags\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n (id >> 24) & 0xFF,\n (id >> 16) & 0xFF,\n (id >> 8) & 0xFF,\n id & 0xFF, // track_ID\n 0x00, 0x00, 0x00, 0x00, // reserved\n (upperWordDuration >> 24),\n (upperWordDuration >> 16) & 0xFF,\n (upperWordDuration >> 8) & 0xFF,\n upperWordDuration & 0xFF,\n (lowerWordDuration >> 24),\n (lowerWordDuration >> 16) & 0xFF,\n (lowerWordDuration >> 8) & 0xFF,\n lowerWordDuration & 0xFF,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00, // reserved\n 0x00, 0x00, // layer\n 0x00, 0x00, // alternate_group\n 0x00, 0x00, // non-audio track volume\n 0x00, 0x00, // reserved\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x01, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x00, 0x00, 0x00, 0x00,\n 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix\n (width >> 8) & 0xFF,\n width & 0xFF,\n 0x00, 0x00, // width\n (height >> 8) & 0xFF,\n height & 0xFF,\n 0x00, 0x00 // height\n ]));\n }\n\n static traf (track, baseMediaDecodeTime) {\n let sampleDependencyTable = MP4.sdtp(track),\n id = track.id,\n upperWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1)),\n lowerWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n return MP4.box(MP4.types.traf,\n MP4.box(MP4.types.tfhd, new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n (id >> 24),\n (id >> 16) & 0XFF,\n (id >> 8) & 0XFF,\n (id & 0xFF) // track_ID\n ])),\n MP4.box(MP4.types.tfdt, new Uint8Array([\n 0x01, // version 1\n 0x00, 0x00, 0x00, // flags\n (upperWordBaseMediaDecodeTime >> 24),\n (upperWordBaseMediaDecodeTime >> 16) & 0XFF,\n (upperWordBaseMediaDecodeTime >> 8) & 0XFF,\n (upperWordBaseMediaDecodeTime & 0xFF),\n (lowerWordBaseMediaDecodeTime >> 24),\n (lowerWordBaseMediaDecodeTime >> 16) & 0XFF,\n (lowerWordBaseMediaDecodeTime >> 8) & 0XFF,\n (lowerWordBaseMediaDecodeTime & 0xFF)\n ])),\n MP4.trun(track,\n sampleDependencyTable.length +\n 16 + // tfhd\n 20 + // tfdt\n 8 + // traf header\n 16 + // mfhd\n 8 + // moof header\n 8), // mdat header\n sampleDependencyTable);\n }\n\n /**\n * Generate a track box.\n * @param track {object} a track definition\n * @return {Uint8Array} the track box\n */\n static trak (track) {\n track.duration = track.duration || 0xffffffff;\n return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track));\n }\n\n static trex (track) {\n let id = track.id;\n return MP4.box(MP4.types.trex, new Uint8Array([\n 0x00, // version 0\n 0x00, 0x00, 0x00, // flags\n (id >> 24),\n (id >> 16) & 0XFF,\n (id >> 8) & 0XFF,\n (id & 0xFF), // track_ID\n 0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n 0x00, 0x00, 0x00, 0x00, // default_sample_duration\n 0x00, 0x00, 0x00, 0x00, // default_sample_size\n 0x00, 0x01, 0x00, 0x01 // default_sample_flags\n ]));\n }\n\n static trun (track, offset) {\n let samples = track.samples || [],\n len = samples.length,\n arraylen = 12 + (16 * len),\n array = new Uint8Array(arraylen),\n i, sample, duration, size, flags, cts;\n offset += 8 + arraylen;\n array.set([\n 0x00, // version 0\n 0x00, 0x0f, 0x01, // flags\n (len >>> 24) & 0xFF,\n (len >>> 16) & 0xFF,\n (len >>> 8) & 0xFF,\n len & 0xFF, // sample_count\n (offset >>> 24) & 0xFF,\n (offset >>> 16) & 0xFF,\n (offset >>> 8) & 0xFF,\n offset & 0xFF // data_offset\n ], 0);\n for (i = 0; i < len; i++) {\n sample = samples[i];\n duration = sample.duration;\n size = sample.size;\n flags = sample.flags;\n cts = sample.cts;\n array.set([\n (duration >>> 24) & 0xFF,\n (duration >>> 16) & 0xFF,\n (duration >>> 8) & 0xFF,\n duration & 0xFF, // sample_duration\n (size >>> 24) & 0xFF,\n (size >>> 16) & 0xFF,\n (size >>> 8) & 0xFF,\n size & 0xFF, // sample_size\n (flags.isLeading << 2) | flags.dependsOn,\n (flags.isDependedOn << 6) |\n (flags.hasRedundancy << 4) |\n (flags.paddingValue << 1) |\n flags.isNonSync,\n flags.degradPrio & 0xF0 << 8,\n flags.degradPrio & 0x0F, // sample_flags\n (cts >>> 24) & 0xFF,\n (cts >>> 16) & 0xFF,\n (cts >>> 8) & 0xFF,\n cts & 0xFF // sample_composition_time_offset\n ], 12 + 16 * i);\n }\n return MP4.box(MP4.types.trun, array);\n }\n\n static initSegment (tracks) {\n if (!MP4.types) {\n MP4.init();\n }\n\n let movie = MP4.moov(tracks), result;\n result = new Uint8Array(MP4.FTYP.byteLength + movie.byteLength);\n result.set(MP4.FTYP);\n result.set(movie, MP4.FTYP.byteLength);\n return result;\n }\n}\n\nexport default MP4;\n","const MPEG_TS_CLOCK_FREQ_HZ = 90000;\n\nexport function toTimescaleFromScale (value, destScale: number, srcScale: number = 1, round: boolean = false): number {\n return toTimescaleFromBase(value, destScale, 1 / srcScale);\n}\n\nexport function toTimescaleFromBase (value, destScale: number, srcBase: number = 1, round: boolean = false): number {\n const result = value * destScale * srcBase; // equivalent to `(value * scale) / (1 / base)`\n return round ? Math.round(result) : result;\n}\n\nexport function toMsFromMpegTsClock (value: number, round: boolean = false): number {\n return toTimescaleFromBase(value, 1000, 1 / MPEG_TS_CLOCK_FREQ_HZ, round);\n}\n\nexport function toMpegTsClockFromTimescale (value: number, srcScale: number = 1): number {\n return toTimescaleFromBase(value, MPEG_TS_CLOCK_FREQ_HZ, 1 / srcScale);\n}\n","/**\n * fMP4 remuxer\n*/\n\nimport AAC from './aac-helper';\nimport MP4 from './mp4-generator';\n\nimport Event from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\n\nimport { toMsFromMpegTsClock, toMpegTsClockFromTimescale } from '../utils/timescale-conversion';\n\nimport { logger } from '../utils/logger';\n\nconst MAX_SILENT_FRAME_DURATION_90KHZ = toMpegTsClockFromTimescale(10);\nconst PTS_DTS_SHIFT_TOLERANCE_90KHZ = toMpegTsClockFromTimescale(0.2);\n\nlet chromeVersion = null;\n\nclass MP4Remuxer {\n constructor (observer, config, typeSupported, vendor) {\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.ISGenerated = false;\n if (chromeVersion === null) {\n const result = navigator.userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion = result ? parseInt(result[1]) : 0;\n }\n }\n\n destroy () {\n }\n\n resetTimeStamp (defaultTimeStamp) {\n this._initPTS = this._initDTS = defaultTimeStamp;\n }\n\n resetInitSegment () {\n this.ISGenerated = false;\n }\n\n getVideoStartPts (videoSamples) {\n let rolloverDetected = false;\n const startPTS = videoSamples.reduce((minPTS, sample) => {\n const delta = sample.pts - minPTS;\n if (delta < -4294967296) { // 2^32, see PTSNormalize for reasoning, but we're hitting a rollover here, and we don't want that to impact the timeOffset calculation\n rolloverDetected = true;\n return PTSNormalize(minPTS, sample.pts);\n } else if (delta > 0) {\n return minPTS;\n } else {\n return sample.pts;\n }\n }, videoSamples[0].pts);\n if (rolloverDetected) {\n logger.debug('PTS rollover detected');\n }\n return startPTS;\n }\n\n remux (audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset) {\n // generate Init Segment if needed\n if (!this.ISGenerated) {\n this.generateIS(audioTrack, videoTrack, timeOffset);\n }\n\n if (this.ISGenerated) {\n const nbAudioSamples = audioTrack.samples.length;\n const nbVideoSamples = videoTrack.samples.length;\n let audioTimeOffset = timeOffset;\n let videoTimeOffset = timeOffset;\n if (nbAudioSamples && nbVideoSamples) {\n // timeOffset is expected to be the offset of the first timestamp of this fragment (first DTS)\n // if first audio DTS is not aligned with first video DTS then we need to take that into account\n // when providing timeOffset to remuxAudio / remuxVideo. if we don't do that, there might be a permanent / small\n // drift between audio and video streams\n const startPTS = this.getVideoStartPts(videoTrack.samples);\n const tsDelta = PTSNormalize(audioTrack.samples[0].pts, startPTS) - startPTS;\n const audiovideoTimestampDelta = tsDelta / videoTrack.inputTimeScale;\n audioTimeOffset += Math.max(0, audiovideoTimestampDelta);\n videoTimeOffset += Math.max(0, -audiovideoTimestampDelta);\n }\n // Purposefully remuxing audio before video, so that remuxVideo can use nextAudioPts, which is\n // calculated in remuxAudio.\n // logger.log('nb AAC samples:' + audioTrack.samples.length);\n if (nbAudioSamples) {\n // if initSegment was generated without video samples, regenerate it again\n if (!audioTrack.timescale) {\n logger.warn('regenerate InitSegment as audio detected');\n this.generateIS(audioTrack, videoTrack, timeOffset);\n }\n let audioData = this.remuxAudio(audioTrack, audioTimeOffset, contiguous, accurateTimeOffset);\n // logger.log('nb AVC samples:' + videoTrack.samples.length);\n if (nbVideoSamples) {\n let audioTrackLength;\n if (audioData) {\n audioTrackLength = audioData.endPTS - audioData.startPTS;\n }\n\n // if initSegment was generated without video samples, regenerate it again\n if (!videoTrack.timescale) {\n logger.warn('regenerate InitSegment as video detected');\n this.generateIS(audioTrack, videoTrack, timeOffset);\n }\n this.remuxVideo(videoTrack, videoTimeOffset, contiguous, audioTrackLength);\n }\n } else {\n // logger.log('nb AVC samples:' + videoTrack.samples.length);\n if (nbVideoSamples) {\n let videoData = this.remuxVideo(videoTrack, videoTimeOffset, contiguous, 0, accurateTimeOffset);\n if (videoData && audioTrack.codec) {\n this.remuxEmptyAudio(audioTrack, audioTimeOffset, contiguous, videoData);\n }\n }\n }\n }\n // logger.log('nb ID3 samples:' + audioTrack.samples.length);\n if (id3Track.samples.length) {\n this.remuxID3(id3Track, timeOffset);\n }\n\n // logger.log('nb ID3 samples:' + audioTrack.samples.length);\n if (textTrack.samples.length) {\n this.remuxText(textTrack, timeOffset);\n }\n\n // notify end of parsing\n this.observer.trigger(Event.FRAG_PARSED);\n }\n\n generateIS (audioTrack, videoTrack, timeOffset) {\n let observer = this.observer,\n audioSamples = audioTrack.samples,\n videoSamples = videoTrack.samples,\n typeSupported = this.typeSupported,\n container = 'audio/mp4',\n tracks = {},\n data = { tracks },\n computePTSDTS = (this._initPTS === undefined),\n initPTS, initDTS;\n\n if (computePTSDTS) {\n initPTS = initDTS = Infinity;\n }\n\n if (audioTrack.config && audioSamples.length) {\n // let's use audio sampling rate as MP4 time scale.\n // rationale is that there is a integer nb of audio frames per audio sample (1024 for AAC)\n // using audio sampling rate here helps having an integer MP4 frame duration\n // this avoids potential rounding issue and AV sync issue\n audioTrack.timescale = audioTrack.samplerate;\n logger.log(`audio sampling rate : ${audioTrack.samplerate}`);\n if (!audioTrack.isAAC) {\n if (typeSupported.mpeg) { // Chrome and Safari\n container = 'audio/mpeg';\n audioTrack.codec = '';\n } else if (typeSupported.mp3) { // Firefox\n audioTrack.codec = 'mp3';\n }\n }\n tracks.audio = {\n container: container,\n codec: audioTrack.codec,\n initSegment: !audioTrack.isAAC && typeSupported.mpeg ? new Uint8Array() : MP4.initSegment([audioTrack]),\n metadata: {\n channelCount: audioTrack.channelCount\n }\n };\n if (computePTSDTS) {\n // remember first PTS of this demuxing context. for audio, PTS = DTS\n initPTS = initDTS = audioSamples[0].pts - Math.round(audioTrack.inputTimeScale * timeOffset);\n }\n }\n\n if (videoTrack.sps && videoTrack.pps && videoSamples.length) {\n // let's use input time scale as MP4 video timescale\n // we use input time scale straight away to avoid rounding issues on frame duration / cts computation\n const inputTimeScale = videoTrack.inputTimeScale;\n videoTrack.timescale = inputTimeScale;\n tracks.video = {\n container: 'video/mp4',\n codec: videoTrack.codec,\n initSegment: MP4.initSegment([videoTrack]),\n metadata: {\n width: videoTrack.width,\n height: videoTrack.height\n }\n };\n if (computePTSDTS) {\n const startPTS = this.getVideoStartPts(videoSamples);\n const startOffset = Math.round(inputTimeScale * timeOffset);\n initDTS = Math.min(initDTS, PTSNormalize(videoSamples[0].dts, startPTS) - startOffset);\n initPTS = Math.min(initPTS, startPTS - startOffset);\n this.observer.trigger(Event.INIT_PTS_FOUND, { initPTS });\n }\n } else if (computePTSDTS && tracks.audio) {\n // initPTS found for audio-only stream with main and alt audio\n this.observer.trigger(Event.INIT_PTS_FOUND, { initPTS });\n }\n\n if (Object.keys(tracks).length) {\n observer.trigger(Event.FRAG_PARSING_INIT_SEGMENT, data);\n this.ISGenerated = true;\n if (computePTSDTS) {\n this._initPTS = initPTS;\n this._initDTS = initDTS;\n }\n } else {\n observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: false, reason: 'no audio/video samples found' });\n }\n }\n\n remuxVideo (track, timeOffset, contiguous, audioTrackLength) {\n const timeScale = track.timescale;\n const inputSamples = track.samples;\n const outputSamples = [];\n const nbSamples = inputSamples.length;\n const initPTS = this._initPTS;\n\n let offset = 8;\n let mp4SampleDuration;\n let mdat;\n let moof;\n let firstDTS;\n let lastDTS;\n let minPTS = Number.POSITIVE_INFINITY;\n let maxPTS = Number.NEGATIVE_INFINITY;\n let ptsDtsShift = 0;\n let sortSamples = false;\n\n // if parsed fragment is contiguous with last one, let's use last DTS value as reference\n let nextAvcDts = this.nextAvcDts;\n\n if (nbSamples === 0) {\n return;\n }\n\n if (!contiguous) {\n const pts = timeOffset * timeScale;\n const cts = inputSamples[0].pts - PTSNormalize(inputSamples[0].dts, inputSamples[0].pts);\n // if not contiguous, let's use target timeOffset\n nextAvcDts = pts - cts;\n }\n\n // PTS is coded on 33bits, and can loop from -2^32 to 2^32\n // PTSNormalize will make PTS/DTS value monotonic, we use last known DTS value as reference value\n for (let i = 0; i < nbSamples; i++) {\n const sample = inputSamples[i];\n sample.pts = PTSNormalize(sample.pts - initPTS, nextAvcDts);\n sample.dts = PTSNormalize(sample.dts - initPTS, nextAvcDts);\n if (sample.dts > sample.pts) {\n ptsDtsShift = Math.max(Math.min(ptsDtsShift, sample.pts - sample.dts), -1 * PTS_DTS_SHIFT_TOLERANCE_90KHZ);\n }\n if (sample.dts < inputSamples[i > 0 ? i - 1 : i].dts) {\n sortSamples = true;\n }\n }\n\n // sort video samples by DTS then PTS then demux id order\n if (sortSamples) {\n inputSamples.sort(function (a, b) {\n const deltadts = a.dts - b.dts;\n const deltapts = a.pts - b.pts;\n return deltadts || (deltapts || (a.id - b.id));\n });\n }\n\n // Get first/last DTS\n firstDTS = inputSamples[0].dts;\n lastDTS = inputSamples[nbSamples - 1].dts;\n\n // on Safari let's signal the same sample duration for all samples\n // sample duration (as expected by trun MP4 boxes), should be the delta between sample DTS\n // set this constant duration as being the avg delta between consecutive DTS.\n const averageSampleDuration = Math.round((lastDTS - firstDTS) / (nbSamples - 1));\n\n // handle broken streams with PTS < DTS, tolerance up 0.2 seconds\n if (ptsDtsShift < 0) {\n if (ptsDtsShift < averageSampleDuration * -2) {\n // Fix for \"CNN special report, with CC\" in test-streams (including Safari browser)\n // With large PTS < DTS errors such as this, we want to correct CTS while maintaining increasing DTS values\n logger.warn(`PTS < DTS detected in video samples, offsetting DTS from PTS by ${toMsFromMpegTsClock(-averageSampleDuration, true)} ms`);\n let lastDts = ptsDtsShift;\n for (let i = 0; i < nbSamples; i++) {\n inputSamples[i].dts = lastDts = Math.max(lastDts, inputSamples[i].pts - averageSampleDuration);\n inputSamples[i].pts = Math.max(lastDts, inputSamples[i].pts);\n }\n } else {\n // Fix for \"Custom IV with bad PTS DTS\" in test-streams\n // With smaller PTS < DTS errors we can simply move all DTS back. This increases CTS without causing buffer gaps or decode errors in Safari\n logger.warn(`PTS < DTS detected in video samples, shifting DTS by ${toMsFromMpegTsClock(ptsDtsShift, true)} ms to overcome this issue`);\n for (let i = 0; i < nbSamples; i++) {\n inputSamples[i].dts = inputSamples[i].dts + ptsDtsShift;\n }\n }\n firstDTS = inputSamples[0].dts;\n lastDTS = inputSamples[nbSamples - 1].dts;\n }\n\n // if fragment are contiguous, detect hole/overlapping between fragments\n if (contiguous) {\n // check timestamp continuity across consecutive fragments (this is to remove inter-fragment gap/hole)\n const delta = firstDTS - nextAvcDts;\n const foundHole = delta > averageSampleDuration;\n const foundOverlap = delta < -1;\n if (foundHole || foundOverlap) {\n if (foundHole) {\n logger.warn(`AVC: ${toMsFromMpegTsClock(delta, true)} ms (${delta}dts) hole between fragments detected, filling it`);\n } else {\n logger.warn(`AVC: ${toMsFromMpegTsClock(-delta, true)} ms (${delta}dts) overlapping between fragments detected`);\n }\n firstDTS = nextAvcDts;\n const firstPTS = inputSamples[0].pts - delta;\n inputSamples[0].dts = firstDTS;\n inputSamples[0].pts = firstPTS;\n logger.log(`Video: First PTS/DTS adjusted: ${toMsFromMpegTsClock(firstPTS, true)}/${toMsFromMpegTsClock(firstDTS, true)}, delta: ${toMsFromMpegTsClock(delta, true)} ms`);\n }\n }\n\n if (chromeVersion && chromeVersion < 75) {\n firstDTS = Math.max(0, firstDTS);\n }\n let nbNalu = 0;\n let naluLen = 0;\n for (let i = 0; i < nbSamples; i++) {\n // compute total/avc sample length and nb of NAL units\n const sample = inputSamples[i];\n const units = sample.units;\n const nbUnits = units.length;\n let sampleLen = 0;\n for (let j = 0; j < nbUnits; j++) {\n sampleLen += units[j].data.length;\n }\n\n naluLen += sampleLen;\n nbNalu += nbUnits;\n sample.length = sampleLen;\n\n // normalize PTS/DTS\n // ensure sample monotonic DTS\n sample.dts = Math.max(sample.dts, firstDTS);\n // ensure that computed value is greater or equal than sample DTS\n sample.pts = Math.max(sample.pts, sample.dts, 0);\n minPTS = Math.min(sample.pts, minPTS);\n maxPTS = Math.max(sample.pts, maxPTS);\n }\n lastDTS = inputSamples[nbSamples - 1].dts;\n\n /* concatenate the video data and construct the mdat in place\n (need 8 more bytes to fill length and mpdat type) */\n let mdatSize = naluLen + (4 * nbNalu) + 8;\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.trigger(Event.ERROR, { type: ErrorTypes.MUX_ERROR, details: ErrorDetails.REMUX_ALLOC_ERROR, fatal: false, bytes: mdatSize, reason: `fail allocating video mdat ${mdatSize}` });\n return;\n }\n let view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(MP4.types.mdat, 4);\n\n for (let i = 0; i < nbSamples; i++) {\n const avcSample = inputSamples[i];\n const avcSampleUnits = avcSample.units;\n let mp4SampleLength = 0;\n let compositionTimeOffset;\n // convert NALU bitstream to MP4 format (prepend NALU with size field)\n for (let j = 0, nbUnits = avcSampleUnits.length; j < nbUnits; j++) {\n const unit = avcSampleUnits[j];\n const unitData = unit.data;\n const unitDataLen = unit.data.byteLength;\n view.setUint32(offset, unitDataLen);\n offset += 4;\n mdat.set(unitData, offset);\n offset += unitDataLen;\n mp4SampleLength += 4 + unitDataLen;\n }\n\n // expected sample duration is the Decoding Timestamp diff of consecutive samples\n if (i < nbSamples - 1) {\n mp4SampleDuration = inputSamples[i + 1].dts - avcSample.dts;\n } else {\n const config = this.config;\n const lastFrameDuration = avcSample.dts - inputSamples[i > 0 ? i - 1 : i].dts;\n if (config.stretchShortVideoTrack) {\n // In some cases, a segment's audio track duration may exceed the video track duration.\n // Since we've already remuxed audio, and we know how long the audio track is, we look to\n // see if the delta to the next segment is longer than maxBufferHole.\n // If so, playback would potentially get stuck, so we artificially inflate\n // the duration of the last frame to minimize any potential gap between segments.\n const maxBufferHole = config.maxBufferHole;\n const gapTolerance = Math.floor(maxBufferHole * timeScale);\n const deltaToFrameEnd = (audioTrackLength ? minPTS + audioTrackLength * timeScale : this.nextAudioPts) - avcSample.pts;\n if (deltaToFrameEnd > gapTolerance) {\n // We subtract lastFrameDuration from deltaToFrameEnd to try to prevent any video\n // frame overlap. maxBufferHole should be >> lastFrameDuration anyway.\n mp4SampleDuration = deltaToFrameEnd - lastFrameDuration;\n if (mp4SampleDuration < 0) {\n mp4SampleDuration = lastFrameDuration;\n }\n\n logger.log(`It is approximately ${toMsFromMpegTsClock(deltaToFrameEnd, false)} ms to the next segment; using duration ${toMsFromMpegTsClock(mp4SampleDuration, false)} ms for the last video frame.`);\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n }\n compositionTimeOffset = Math.round(avcSample.pts - avcSample.dts);\n\n // console.log('PTS/DTS/initDTS/normPTS/normDTS/relative PTS : ${avcSample.pts}/${avcSample.dts}/${initDTS}/${ptsnorm}/${dtsnorm}/${(avcSample.pts/4294967296).toFixed(3)}');\n outputSamples.push({\n size: mp4SampleLength,\n // constant duration\n duration: mp4SampleDuration,\n cts: compositionTimeOffset,\n flags: {\n isLeading: 0,\n isDependedOn: 0,\n hasRedundancy: 0,\n degradPrio: 0,\n dependsOn: avcSample.key ? 2 : 1,\n isNonSync: avcSample.key ? 0 : 1\n }\n });\n }\n // next AVC sample DTS should be equal to last sample DTS + last sample duration (in PES timescale)\n this.nextAvcDts = lastDTS + mp4SampleDuration;\n const dropped = track.dropped;\n track.nbNalu = 0;\n track.dropped = 0;\n if (outputSamples.length && navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {\n const flags = outputSamples[0].flags;\n // chrome workaround, mark first sample as being a Random Access Point to avoid sourcebuffer append issue\n // https://code.google.com/p/chromium/issues/detail?id=229412\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n track.samples = outputSamples;\n moof = MP4.moof(track.sequenceNumber++, firstDTS, track);\n track.samples = [];\n\n const data = {\n data1: moof,\n data2: mdat,\n startPTS: minPTS / timeScale,\n endPTS: (maxPTS + mp4SampleDuration) / timeScale,\n startDTS: firstDTS / timeScale,\n endDTS: this.nextAvcDts / timeScale,\n type: 'video',\n hasAudio: false,\n hasVideo: true,\n nb: outputSamples.length,\n dropped: dropped\n };\n this.observer.trigger(Event.FRAG_PARSING_DATA, data);\n return data;\n }\n\n remuxAudio (track, timeOffset, contiguous, accurateTimeOffset) {\n const inputTimeScale = track.inputTimeScale;\n const mp4timeScale = track.timescale;\n const scaleFactor = inputTimeScale / mp4timeScale;\n const mp4SampleDuration = track.isAAC ? 1024 : 1152;\n const inputSampleDuration = mp4SampleDuration * scaleFactor;\n const initPTS = this._initPTS;\n const rawMPEG = !track.isAAC && this.typeSupported.mpeg;\n\n let mp4Sample;\n let fillFrame;\n let mdat;\n let moof;\n let firstPTS;\n let lastPTS;\n let offset = (rawMPEG ? 0 : 8);\n let inputSamples = track.samples;\n let outputSamples = [];\n let nextAudioPts = this.nextAudioPts;\n\n // for audio samples, also consider consecutive fragments as being contiguous (even if a level switch occurs),\n // for sake of clarity:\n // consecutive fragments are frags with\n // - less than 100ms gaps between new time offset (if accurate) and next expected PTS OR\n // - less than 20 audio frames distance\n // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n // this helps ensuring audio continuity\n // and this also avoids audio glitches/cut when switching quality, or reporting wrong duration on first audio frame\n contiguous |= (inputSamples.length && nextAudioPts &&\n ((accurateTimeOffset && Math.abs(timeOffset - nextAudioPts / inputTimeScale) < 0.1) ||\n Math.abs((inputSamples[0].pts - nextAudioPts - initPTS)) < 20 * inputSampleDuration)\n );\n\n // compute normalized PTS\n inputSamples.forEach(function (sample) {\n sample.pts = sample.dts = PTSNormalize(sample.pts - initPTS, timeOffset * inputTimeScale);\n });\n\n // filter out sample with negative PTS that are not playable anyway\n // if we don't remove these negative samples, they will shift all audio samples forward.\n // leading to audio overlap between current / next fragment\n inputSamples = inputSamples.filter((sample) => sample.pts >= 0);\n\n // in case all samples have negative PTS, and have been filtered out, return now\n if (inputSamples.length === 0) {\n return;\n }\n\n if (!contiguous) {\n if (!accurateTimeOffset) {\n // if frag are mot contiguous and if we cant trust time offset, let's use first sample PTS as next audio PTS\n nextAudioPts = inputSamples[0].pts;\n } else {\n // if timeOffset is accurate, let's use it as predicted next audio PTS\n nextAudioPts = Math.max(0, timeOffset * inputTimeScale);\n }\n }\n\n // If the audio track is missing samples, the frames seem to get \"left-shifted\" within the\n // resulting mp4 segment, causing sync issues and leaving gaps at the end of the audio segment.\n // In an effort to prevent this from happening, we inject frames here where there are gaps.\n // When possible, we inject a silent frame; when that's not possible, we duplicate the last\n // frame.\n\n if (track.isAAC) {\n const maxAudioFramesDrift = this.config.maxAudioFramesDrift;\n for (let i = 0, nextPts = nextAudioPts; i < inputSamples.length;) {\n // First, let's see how far off this frame is from where we expect it to be\n const sample = inputSamples[i];\n let pts = sample.pts;\n let delta = pts - nextPts;\n\n // If we're overlapping by more than a duration, drop this sample\n if (delta <= -maxAudioFramesDrift * inputSampleDuration) {\n if (contiguous || i > 0) {\n logger.warn(`Dropping 1 audio frame @ ${toMsFromMpegTsClock(nextPts, true) / 1000}s due to ${toMsFromMpegTsClock(delta, true)} ms overlap.`);\n inputSamples.splice(i, 1);\n // Don't touch nextPtsNorm or i\n } else {\n // When changing qualities we can't trust that audio has been appended up to nextAudioPts\n // Warn about the overlap but do not drop samples as that can introduce buffer gaps\n logger.warn(`Audio frame @ ${toMsFromMpegTsClock(pts, true) / 1000}s overlaps nextAudioPts by ${toMsFromMpegTsClock(delta, true)} ms.`);\n nextPts = pts + inputSampleDuration;\n i++;\n }\n } // eslint-disable-line brace-style\n\n // Insert missing frames if:\n // 1: We're more than maxAudioFramesDrift frame away\n // 2: Not more than MAX_SILENT_FRAME_DURATION away\n // 3: currentTime (aka nextPtsNorm) is not 0\n else if (delta >= maxAudioFramesDrift * inputSampleDuration && delta < MAX_SILENT_FRAME_DURATION_90KHZ && nextPts) {\n let missing = Math.round(delta / inputSampleDuration);\n logger.warn(`Injecting ${missing} audio frames @ ${toMsFromMpegTsClock(nextPts, true) / 1000}s due to ${toMsFromMpegTsClock(delta, true)} ms gap.`);\n for (let j = 0; j < missing; j++) {\n let newStamp = Math.max(nextPts, 0);\n fillFrame = AAC.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n if (!fillFrame) {\n logger.log('Unable to get silent frame for given audio codec; duplicating last frame instead.');\n fillFrame = sample.unit.subarray();\n }\n inputSamples.splice(i, 0, { unit: fillFrame, pts: newStamp, dts: newStamp });\n nextPts += inputSampleDuration;\n i++;\n }\n\n // Adjust sample to next expected pts\n sample.pts = sample.dts = nextPts;\n nextPts += inputSampleDuration;\n i++;\n } else {\n // Otherwise, just adjust pts\n if (Math.abs(delta) > (0.1 * inputSampleDuration)) {\n // logger.log(`Invalid frame delta ${Math.round(delta + inputSampleDuration)} at PTS ${Math.round(pts / 90)} (should be ${Math.round(inputSampleDuration)}).`);\n }\n sample.pts = sample.dts = nextPts;\n nextPts += inputSampleDuration;\n i++;\n }\n }\n }\n\n // compute mdat size, as we eventually filtered/added some samples\n let nbSamples = inputSamples.length;\n let mdatSize = 0;\n while (nbSamples--) {\n mdatSize += inputSamples[nbSamples].unit.byteLength;\n }\n\n for (let j = 0, nbSamples = inputSamples.length; j < nbSamples; j++) {\n let audioSample = inputSamples[j];\n let unit = audioSample.unit;\n let pts = audioSample.pts;\n\n // logger.log(`Audio/PTS:${toMsFromMpegTsClock(pts, true)}`);\n // if not first sample\n\n if (lastPTS !== undefined && mp4Sample) {\n mp4Sample.duration = Math.round((pts - lastPTS) / scaleFactor);\n } else {\n let delta = pts - nextAudioPts;\n let numMissingFrames = 0;\n\n // if fragment are contiguous, detect hole/overlapping between fragments\n // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n if (contiguous && track.isAAC) {\n // log delta\n if (delta) {\n if (delta > 0 && delta < MAX_SILENT_FRAME_DURATION_90KHZ) {\n // Q: why do we have to round here, shouldn't this always result in an integer if timestamps are correct,\n // and if not, shouldn't we actually Math.ceil() instead?\n numMissingFrames = Math.round((pts - nextAudioPts) / inputSampleDuration);\n\n logger.log(`${toMsFromMpegTsClock(delta, true)} ms hole between AAC samples detected,filling it`);\n if (numMissingFrames > 0) {\n fillFrame = AAC.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n if (!fillFrame) {\n fillFrame = unit.subarray();\n }\n\n mdatSize += numMissingFrames * fillFrame.length;\n }\n // if we have frame overlap, overlapping for more than half a frame duraion\n } else if (delta < -12) {\n // drop overlapping audio frames... browser will deal with it\n logger.log(`drop overlapping AAC sample, expected/parsed/delta: ${toMsFromMpegTsClock(nextAudioPts, true)} ms / ${toMsFromMpegTsClock(pts, true)} ms / ${toMsFromMpegTsClock(-delta, true)} ms`);\n mdatSize -= unit.byteLength;\n continue;\n }\n // set PTS/DTS to expected PTS/DTS\n pts = nextAudioPts;\n }\n }\n // remember first PTS of our audioSamples\n firstPTS = pts;\n if (mdatSize > 0) {\n mdatSize += offset;\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.trigger(Event.ERROR, { type: ErrorTypes.MUX_ERROR, details: ErrorDetails.REMUX_ALLOC_ERROR, fatal: false, bytes: mdatSize, reason: `fail allocating audio mdat ${mdatSize}` });\n return;\n }\n if (!rawMPEG) {\n const view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(MP4.types.mdat, 4);\n }\n } else {\n // no audio samples\n return;\n }\n for (let i = 0; i < numMissingFrames; i++) {\n fillFrame = AAC.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n if (!fillFrame) {\n logger.log('Unable to get silent frame for given audio codec; duplicating this frame instead.');\n fillFrame = unit.subarray();\n }\n mdat.set(fillFrame, offset);\n offset += fillFrame.byteLength;\n mp4Sample = {\n size: fillFrame.byteLength,\n cts: 0,\n duration: 1024,\n flags: {\n isLeading: 0,\n isDependedOn: 0,\n hasRedundancy: 0,\n degradPrio: 0,\n dependsOn: 1\n }\n };\n outputSamples.push(mp4Sample);\n }\n }\n mdat.set(unit, offset);\n let unitLen = unit.byteLength;\n offset += unitLen;\n // console.log('PTS/DTS/initDTS/normPTS/normDTS/relative PTS : ${audioSample.pts}/${audioSample.dts}/${initDTS}/${ptsnorm}/${dtsnorm}/${(audioSample.pts/4294967296).toFixed(3)}');\n mp4Sample = {\n size: unitLen,\n cts: 0,\n duration: 0,\n flags: {\n isLeading: 0,\n isDependedOn: 0,\n hasRedundancy: 0,\n degradPrio: 0,\n dependsOn: 1\n }\n };\n outputSamples.push(mp4Sample);\n lastPTS = pts;\n }\n let lastSampleDuration = 0;\n nbSamples = outputSamples.length;\n // set last sample duration as being identical to previous sample\n if (nbSamples >= 2) {\n lastSampleDuration = outputSamples[nbSamples - 2].duration;\n mp4Sample.duration = lastSampleDuration;\n }\n if (nbSamples) {\n // next audio sample PTS should be equal to last sample PTS + duration\n this.nextAudioPts = nextAudioPts = lastPTS + scaleFactor * lastSampleDuration;\n // logger.log('Audio/PTS/PTSend:' + audioSample.pts.toFixed(0) + '/' + this.nextAacDts.toFixed(0));\n track.samples = outputSamples;\n if (rawMPEG) {\n moof = new Uint8Array();\n } else {\n moof = MP4.moof(track.sequenceNumber++, firstPTS / scaleFactor, track);\n }\n\n track.samples = [];\n const start = firstPTS / inputTimeScale;\n const end = nextAudioPts / inputTimeScale;\n const audioData = {\n data1: moof,\n data2: mdat,\n startPTS: start,\n endPTS: end,\n startDTS: start,\n endDTS: end,\n type: 'audio',\n hasAudio: true,\n hasVideo: false,\n nb: nbSamples\n };\n this.observer.trigger(Event.FRAG_PARSING_DATA, audioData);\n return audioData;\n }\n return null;\n }\n\n remuxEmptyAudio (track, timeOffset, contiguous, videoData) {\n let inputTimeScale = track.inputTimeScale;\n let mp4timeScale = track.samplerate ? track.samplerate : inputTimeScale;\n let scaleFactor = inputTimeScale / mp4timeScale;\n let nextAudioPts = this.nextAudioPts;\n\n // sync with video's timestamp\n let startDTS = (nextAudioPts !== undefined ? nextAudioPts : videoData.startDTS * inputTimeScale) + this._initDTS;\n let endDTS = videoData.endDTS * inputTimeScale + this._initDTS;\n // one sample's duration value\n let sampleDuration = 1024;\n let frameDuration = scaleFactor * sampleDuration;\n\n // samples count of this segment's duration\n let nbSamples = Math.ceil((endDTS - startDTS) / frameDuration);\n\n // silent frame\n let silentFrame = AAC.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n\n logger.warn('remux empty Audio');\n // Can't remux if we can't generate a silent frame...\n if (!silentFrame) {\n logger.trace('Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!');\n return;\n }\n\n let samples = [];\n for (let i = 0; i < nbSamples; i++) {\n let stamp = startDTS + i * frameDuration;\n samples.push({ unit: silentFrame, pts: stamp, dts: stamp });\n }\n track.samples = samples;\n\n this.remuxAudio(track, timeOffset, contiguous);\n }\n\n remuxID3 (track, timeOffset) {\n const length = track.samples.length;\n if (!length) {\n return;\n }\n const inputTimeScale = track.inputTimeScale;\n const initPTS = this._initPTS;\n const initDTS = this._initDTS;\n // consume samples\n for (let index = 0; index < length; index++) {\n const sample = track.samples[index];\n // setting id3 pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n sample.pts = PTSNormalize(sample.pts - initPTS, timeOffset * inputTimeScale) / inputTimeScale;\n sample.dts = PTSNormalize(sample.dts - initDTS, timeOffset * inputTimeScale) / inputTimeScale;\n }\n this.observer.trigger(Event.FRAG_PARSING_METADATA, {\n samples: track.samples\n });\n\n track.samples = [];\n }\n\n remuxText (track, timeOffset) {\n const length = track.samples.length;\n const inputTimeScale = track.inputTimeScale;\n const initPTS = this._initPTS;\n // consume samples\n if (length) {\n for (let index = 0; index < length; index++) {\n const sample = track.samples[index];\n // setting text pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n sample.pts = PTSNormalize(sample.pts - initPTS, timeOffset * inputTimeScale) / inputTimeScale;\n }\n track.samples.sort(function (a, b) {\n return (a.pts - b.pts);\n });\n this.observer.trigger(Event.FRAG_PARSING_USERDATA, {\n samples: track.samples\n });\n }\n\n track.samples = [];\n }\n}\n\nfunction PTSNormalize (value, reference) {\n let offset;\n if (reference === undefined) {\n return value;\n }\n\n if (reference < value) {\n // - 2^33\n offset = -8589934592;\n } else {\n // + 2^33\n offset = 8589934592;\n }\n /* PTS is 33bit (from 0 to 2^33 -1)\n if diff between value and reference is bigger than half of the amplitude (2^32) then it means that\n PTS looping occured. fill the gap */\n while (Math.abs(value - reference) > 4294967296) {\n value += offset;\n }\n\n return value;\n}\n\nexport default MP4Remuxer;\n","/**\n *\n * inline demuxer: probe fragments and instantiate\n * appropriate demuxer depending on content type (TSDemuxer, AACDemuxer, ...)\n *\n */\n\nimport Event from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport Decrypter from '../crypt/decrypter';\nimport AACDemuxer from '../demux/aacdemuxer';\nimport MP4Demuxer from '../demux/mp4demuxer';\nimport TSDemuxer from '../demux/tsdemuxer';\nimport MP3Demuxer from '../demux/mp3demuxer';\nimport MP4Remuxer from '../remux/mp4-remuxer';\nimport PassThroughRemuxer from '../remux/passthrough-remuxer';\n\nimport { getSelfScope } from '../utils/get-self-scope';\nimport { logger } from '../utils/logger';\n\n// see https://stackoverflow.com/a/11237259/589493\nconst global = getSelfScope(); // safeguard for code that might run both on worker and main thread\n\nlet now;\n// performance.now() not available on WebWorker, at least on Safari Desktop\ntry {\n now = global.performance.now.bind(global.performance);\n} catch (err) {\n logger.debug('Unable to use Performance API on this environment');\n now = global.Date.now;\n}\n\nclass DemuxerInline {\n constructor (observer, typeSupported, config, vendor) {\n this.observer = observer;\n this.typeSupported = typeSupported;\n this.config = config;\n this.vendor = vendor;\n }\n\n destroy () {\n let demuxer = this.demuxer;\n if (demuxer) {\n demuxer.destroy();\n }\n }\n\n push (data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS) {\n if ((data.byteLength > 0) && (decryptdata != null) && (decryptdata.key != null) && (decryptdata.method === 'AES-128')) {\n let decrypter = this.decrypter;\n if (decrypter == null) {\n decrypter = this.decrypter = new Decrypter(this.observer, this.config);\n }\n\n const startTime = now();\n decrypter.decrypt(data, decryptdata.key.buffer, decryptdata.iv.buffer, (decryptedData) => {\n const endTime = now();\n this.observer.trigger(Event.FRAG_DECRYPTED, { stats: { tstart: startTime, tdecrypt: endTime } });\n this.pushDecrypted(new Uint8Array(decryptedData), decryptdata, new Uint8Array(initSegment), audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS);\n });\n } else {\n this.pushDecrypted(new Uint8Array(data), decryptdata, new Uint8Array(initSegment), audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS);\n }\n }\n\n pushDecrypted (data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS) {\n let demuxer = this.demuxer;\n let remuxer = this.remuxer;\n if (!demuxer ||\n // in case of continuity change, or track switch\n // we might switch from content type (AAC container to TS container, or TS to fmp4 for example)\n (discontinuity || trackSwitch)) {\n const observer = this.observer;\n const typeSupported = this.typeSupported;\n const config = this.config;\n // probing order is TS/MP4/AAC/MP3\n const muxConfig = [\n { demux: TSDemuxer, remux: MP4Remuxer },\n { demux: MP4Demuxer, remux: PassThroughRemuxer },\n { demux: AACDemuxer, remux: MP4Remuxer },\n { demux: MP3Demuxer, remux: MP4Remuxer }\n ];\n\n // probe for content type\n let mux;\n for (let i = 0, len = muxConfig.length; i < len; i++) {\n mux = muxConfig[i];\n if (mux.demux.probe(data)) {\n break;\n }\n }\n if (!mux) {\n observer.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.FRAG_PARSING_ERROR, fatal: true, reason: 'no demux matching with content found' });\n return;\n }\n // so let's check that current remuxer and demuxer are still valid\n if (!remuxer || !(remuxer instanceof mux.remux)) {\n remuxer = new mux.remux(observer, config, typeSupported, this.vendor);\n }\n if (!demuxer || !(demuxer instanceof mux.demux)) {\n demuxer = new mux.demux(observer, remuxer, config, typeSupported);\n this.probe = mux.demux.probe;\n }\n this.demuxer = demuxer;\n this.remuxer = remuxer;\n }\n\n if (discontinuity || trackSwitch) {\n demuxer.resetInitSegment(initSegment, audioCodec, videoCodec, duration);\n remuxer.resetInitSegment();\n }\n if (discontinuity) {\n demuxer.resetTimeStamp(defaultInitPTS);\n remuxer.resetTimeStamp(defaultInitPTS);\n }\n if (typeof demuxer.setDecryptData === 'function') {\n demuxer.setDecryptData(decryptdata);\n }\n\n demuxer.append(data, timeOffset, contiguous, accurateTimeOffset);\n }\n}\n\nexport default DemuxerInline;\n","/**\n * passthrough remuxer\n*/\nimport Event from '../events';\n\nclass PassThroughRemuxer {\n constructor (observer) {\n this.observer = observer;\n }\n\n destroy () {\n }\n\n resetTimeStamp () {\n }\n\n resetInitSegment () {\n }\n\n remux (audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset, rawData) {\n let observer = this.observer;\n let streamType = '';\n if (audioTrack) {\n streamType += 'audio';\n }\n\n if (videoTrack) {\n streamType += 'video';\n }\n\n observer.trigger(Event.FRAG_PARSING_DATA, {\n data1: rawData,\n startPTS: timeOffset,\n startDTS: timeOffset,\n type: streamType,\n hasAudio: !!audioTrack,\n hasVideo: !!videoTrack,\n nb: 1,\n dropped: 0\n });\n // notify end of parsing\n observer.trigger(Event.FRAG_PARSED);\n }\n}\n\nexport default PassThroughRemuxer;\n","/* demuxer web worker.\n * - listen to worker message, and trigger DemuxerInline upon reception of Fragments.\n * - provides MP4 Boxes back to main thread using [transferable objects](https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast) in order to minimize message passing overhead.\n */\n\nimport DemuxerInline from '../demux/demuxer-inline';\nimport Event from '../events';\nimport { enableLogs } from '../utils/logger';\n\nimport { EventEmitter } from 'eventemitter3';\n\nlet DemuxerWorker = function (self) {\n // observer setup\n let observer = new EventEmitter();\n observer.trigger = function trigger (event, ...data) {\n observer.emit(event, event, ...data);\n };\n\n observer.off = function off (event, ...data) {\n observer.removeListener(event, ...data);\n };\n\n let forwardMessage = function (ev, data) {\n self.postMessage({ event: ev, data: data });\n };\n\n self.addEventListener('message', function (ev) {\n let data = ev.data;\n // console.log('demuxer cmd:' + data.cmd);\n switch (data.cmd) {\n case 'init':\n const config = JSON.parse(data.config);\n self.demuxer = new DemuxerInline(observer, data.typeSupported, config, data.vendor);\n\n enableLogs(config.debug);\n\n // signal end of worker init\n forwardMessage('init', null);\n break;\n case 'demux':\n self.demuxer.push(data.data, data.decryptdata, data.initSegment, data.audioCodec, data.videoCodec, data.timeOffset, data.discontinuity, data.trackSwitch, data.contiguous, data.duration, data.accurateTimeOffset, data.defaultInitPTS);\n break;\n default:\n break;\n }\n });\n\n // forward events to main thread\n observer.on(Event.FRAG_DECRYPTED, forwardMessage);\n observer.on(Event.FRAG_PARSING_INIT_SEGMENT, forwardMessage);\n observer.on(Event.FRAG_PARSED, forwardMessage);\n observer.on(Event.ERROR, forwardMessage);\n observer.on(Event.FRAG_PARSING_METADATA, forwardMessage);\n observer.on(Event.FRAG_PARSING_USERDATA, forwardMessage);\n observer.on(Event.INIT_PTS_FOUND, forwardMessage);\n\n // special case for FRAG_PARSING_DATA: pass data1/data2 as transferable object (no copy)\n observer.on(Event.FRAG_PARSING_DATA, function (ev, data) {\n let transferable = [];\n let message = { event: ev, data: data };\n if (data.data1) {\n message.data1 = data.data1.buffer;\n transferable.push(data.data1.buffer);\n delete data.data1;\n }\n if (data.data2) {\n message.data2 = data.data2.buffer;\n transferable.push(data.data2.buffer);\n delete data.data2;\n }\n self.postMessage(message, transferable);\n });\n};\n\nexport default DemuxerWorker;\n","import { getSelfScope } from '../utils/get-self-scope';\n\n/**\n * ID3 parser\n */\nclass ID3 {\n /**\n * Returns true if an ID3 header can be found at offset in data\n * @param {Uint8Array} data - The data to search in\n * @param {number} offset - The offset at which to start searching\n * @return {boolean} - True if an ID3 header is found\n */\n static isHeader (data, offset) {\n /*\n * http://id3.org/id3v2.3.0\n * [0] = 'I'\n * [1] = 'D'\n * [2] = '3'\n * [3,4] = {Version}\n * [5] = {Flags}\n * [6-9] = {ID3 Size}\n *\n * An ID3v2 tag can be detected with the following pattern:\n * $49 44 33 yy yy xx zz zz zz zz\n * Where yy is less than $FF, xx is the 'flags' byte and zz is less than $80\n */\n if (offset + 10 <= data.length) {\n // look for 'ID3' identifier\n if (data[offset] === 0x49 && data[offset + 1] === 0x44 && data[offset + 2] === 0x33) {\n // check version is within range\n if (data[offset + 3] < 0xFF && data[offset + 4] < 0xFF) {\n // check size is within range\n if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns true if an ID3 footer can be found at offset in data\n * @param {Uint8Array} data - The data to search in\n * @param {number} offset - The offset at which to start searching\n * @return {boolean} - True if an ID3 footer is found\n */\n static isFooter (data, offset) {\n /*\n * The footer is a copy of the header, but with a different identifier\n */\n if (offset + 10 <= data.length) {\n // look for '3DI' identifier\n if (data[offset] === 0x33 && data[offset + 1] === 0x44 && data[offset + 2] === 0x49) {\n // check version is within range\n if (data[offset + 3] < 0xFF && data[offset + 4] < 0xFF) {\n // check size is within range\n if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n return true;\n }\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns any adjacent ID3 tags found in data starting at offset, as one block of data\n * @param {Uint8Array} data - The data to search in\n * @param {number} offset - The offset at which to start searching\n * @return {Uint8Array} - The block of data containing any ID3 tags found\n */\n static getID3Data (data, offset) {\n const front = offset;\n let length = 0;\n\n while (ID3.isHeader(data, offset)) {\n // ID3 header is 10 bytes\n length += 10;\n\n const size = ID3._readSize(data, offset + 6);\n length += size;\n\n if (ID3.isFooter(data, offset + 10)) {\n // ID3 footer is 10 bytes\n length += 10;\n }\n\n offset += length;\n }\n\n if (length > 0) {\n return data.subarray(front, front + length);\n }\n\n return undefined;\n }\n\n static _readSize (data, offset) {\n let size = 0;\n size = ((data[offset] & 0x7f) << 21);\n size |= ((data[offset + 1] & 0x7f) << 14);\n size |= ((data[offset + 2] & 0x7f) << 7);\n size |= (data[offset + 3] & 0x7f);\n return size;\n }\n\n /**\n * Searches for the Elementary Stream timestamp found in the ID3 data chunk\n * @param {Uint8Array} data - Block of data containing one or more ID3 tags\n * @return {number} - The timestamp\n */\n static getTimeStamp (data) {\n const frames = ID3.getID3Frames(data);\n for (let i = 0; i < frames.length; i++) {\n const frame = frames[i];\n if (ID3.isTimeStampFrame(frame)) {\n return ID3._readTimeStamp(frame);\n }\n }\n\n return undefined;\n }\n\n /**\n * Returns true if the ID3 frame is an Elementary Stream timestamp frame\n * @param {ID3 frame} frame\n */\n static isTimeStampFrame (frame) {\n return (frame && frame.key === 'PRIV' && frame.info === 'com.apple.streaming.transportStreamTimestamp');\n }\n\n static _getFrameData (data) {\n /*\n Frame ID $xx xx xx xx (four characters)\n Size $xx xx xx xx\n Flags $xx xx\n */\n const type = String.fromCharCode(data[0], data[1], data[2], data[3]);\n const size = ID3._readSize(data, 4);\n\n // skip frame id, size, and flags\n let offset = 10;\n\n return { type, size, data: data.subarray(offset, offset + size) };\n }\n\n /**\n * Returns an array of ID3 frames found in all the ID3 tags in the id3Data\n * @param {Uint8Array} id3Data - The ID3 data containing one or more ID3 tags\n * @return {ID3 frame[]} - Array of ID3 frame objects\n */\n static getID3Frames (id3Data) {\n let offset = 0;\n const frames = [];\n\n while (ID3.isHeader(id3Data, offset)) {\n const size = ID3._readSize(id3Data, offset + 6);\n // skip past ID3 header\n offset += 10;\n const end = offset + size;\n // loop through frames in the ID3 tag\n while (offset + 8 < end) {\n const frameData = ID3._getFrameData(id3Data.subarray(offset));\n const frame = ID3._decodeFrame(frameData);\n if (frame) {\n frames.push(frame);\n }\n\n // skip frame header and frame data\n offset += frameData.size + 10;\n }\n\n if (ID3.isFooter(id3Data, offset)) {\n offset += 10;\n }\n }\n\n return frames;\n }\n\n static _decodeFrame (frame) {\n if (frame.type === 'PRIV') {\n return ID3._decodePrivFrame(frame);\n } else if (frame.type[0] === 'W') {\n return ID3._decodeURLFrame(frame);\n }\n\n return ID3._decodeTextFrame(frame);\n }\n\n static _readTimeStamp (timeStampFrame) {\n if (timeStampFrame.data.byteLength === 8) {\n const data = new Uint8Array(timeStampFrame.data);\n // timestamp is 33 bit expressed as a big-endian eight-octet number,\n // with the upper 31 bits set to zero.\n const pts33Bit = data[3] & 0x1;\n let timestamp = (data[4] << 23) +\n (data[5] << 15) +\n (data[6] << 7) +\n data[7];\n timestamp /= 45;\n\n if (pts33Bit) {\n timestamp += 47721858.84;\n } // 2^32 / 90\n\n return Math.round(timestamp);\n }\n\n return undefined;\n }\n\n static _decodePrivFrame (frame) {\n /*\n Format: \\0\n */\n if (frame.size < 2) {\n return undefined;\n }\n\n const owner = ID3._utf8ArrayToStr(frame.data, true);\n const privateData = new Uint8Array(frame.data.subarray(owner.length + 1));\n\n return { key: frame.type, info: owner, data: privateData.buffer };\n }\n\n static _decodeTextFrame (frame) {\n if (frame.size < 2) {\n return undefined;\n }\n\n if (frame.type === 'TXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{Value}\n */\n let index = 1;\n const description = ID3._utf8ArrayToStr(frame.data.subarray(index), true);\n\n index += description.length + 1;\n const value = ID3._utf8ArrayToStr(frame.data.subarray(index));\n\n return { key: frame.type, info: description, data: value };\n } else {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Value}\n */\n const text = ID3._utf8ArrayToStr(frame.data.subarray(1));\n return { key: frame.type, data: text };\n }\n }\n\n static _decodeURLFrame (frame) {\n if (frame.type === 'WXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{URL}\n */\n if (frame.size < 2) {\n return undefined;\n }\n\n let index = 1;\n const description = ID3._utf8ArrayToStr(frame.data.subarray(index), true);\n\n index += description.length + 1;\n const value = ID3._utf8ArrayToStr(frame.data.subarray(index));\n\n return { key: frame.type, info: description, data: value };\n } else {\n /*\n Format:\n [0-?] = {URL}\n */\n const url = ID3._utf8ArrayToStr(frame.data);\n return { key: frame.type, data: url };\n }\n }\n\n // http://stackoverflow.com/questions/8936984/uint8array-to-string-in-javascript/22373197\n // http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt\n /* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo \n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\n static _utf8ArrayToStr (array, exitOnNull = false) {\n const decoder = getTextDecoder();\n if (decoder) {\n const decoded = decoder.decode(array);\n\n if (exitOnNull) {\n // grab up to the first null\n const idx = decoded.indexOf('\\0');\n return idx !== -1 ? decoded.substring(0, idx) : decoded;\n }\n\n // remove any null characters\n return decoded.replace(/\\0/g, '');\n }\n\n const len = array.length;\n let c;\n let char2;\n let char3;\n let out = '';\n let i = 0;\n while (i < len) {\n c = array[i++];\n if (c === 0x00 && exitOnNull) {\n return out;\n } else if (c === 0x00 || c === 0x03) {\n // If the character is 3 (END_OF_TEXT) or 0 (NULL) then skip it\n continue;\n }\n switch (c >> 4) {\n case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12: case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++];\n out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++];\n char3 = array[i++];\n out += String.fromCharCode(((c & 0x0F) << 12) |\n ((char2 & 0x3F) << 6) |\n ((char3 & 0x3F) << 0));\n break;\n default:\n }\n }\n return out;\n }\n}\n\nlet decoder;\n\nfunction getTextDecoder () {\n const global = getSelfScope(); // safeguard for code that might run both on worker and main thread\n if (!decoder && typeof global.TextDecoder !== 'undefined') {\n decoder = new global.TextDecoder('utf-8');\n }\n\n return decoder;\n}\n\nconst utf8ArrayToStr = ID3._utf8ArrayToStr;\n\nexport default ID3;\n\nexport { utf8ArrayToStr };\n","/**\n * MP4 demuxer\n */\nimport { logger } from '../utils/logger';\nimport Event from '../events';\n\nconst UINT32_MAX = Math.pow(2, 32) - 1;\n\nclass MP4Demuxer {\n constructor (observer, remuxer) {\n this.observer = observer;\n this.remuxer = remuxer;\n }\n\n resetTimeStamp (initPTS) {\n this.initPTS = initPTS;\n }\n\n resetInitSegment (initSegment, audioCodec, videoCodec, duration) {\n // jshint unused:false\n if (initSegment && initSegment.byteLength) {\n const initData = this.initData = MP4Demuxer.parseInitSegment(initSegment);\n\n // default audio codec if nothing specified\n // TODO : extract that from initsegment\n if (audioCodec == null) {\n audioCodec = 'mp4a.40.5';\n }\n\n if (videoCodec == null) {\n videoCodec = 'avc1.42e01e';\n }\n\n const tracks = {};\n if (initData.audio && initData.video) {\n tracks.audiovideo = { container: 'video/mp4', codec: audioCodec + ',' + videoCodec, initSegment: duration ? initSegment : null };\n } else {\n if (initData.audio) {\n tracks.audio = { container: 'audio/mp4', codec: audioCodec, initSegment: duration ? initSegment : null };\n }\n\n if (initData.video) {\n tracks.video = { container: 'video/mp4', codec: videoCodec, initSegment: duration ? initSegment : null };\n }\n }\n this.observer.trigger(Event.FRAG_PARSING_INIT_SEGMENT, { tracks });\n } else {\n if (audioCodec) {\n this.audioCodec = audioCodec;\n }\n\n if (videoCodec) {\n this.videoCodec = videoCodec;\n }\n }\n }\n\n static probe (data) {\n // ensure we find a moof box in the first 16 kB\n return MP4Demuxer.findBox({ data: data, start: 0, end: Math.min(data.length, 16384) }, ['moof']).length > 0;\n }\n\n static bin2str (buffer) {\n return String.fromCharCode.apply(null, buffer);\n }\n\n static readUint16 (buffer, offset) {\n if (buffer.data) {\n offset += buffer.start;\n buffer = buffer.data;\n }\n\n const val = buffer[offset] << 8 |\n buffer[offset + 1];\n\n return val < 0 ? 65536 + val : val;\n }\n\n static readUint32 (buffer, offset) {\n if (buffer.data) {\n offset += buffer.start;\n buffer = buffer.data;\n }\n\n const val = buffer[offset] << 24 |\n buffer[offset + 1] << 16 |\n buffer[offset + 2] << 8 |\n buffer[offset + 3];\n return val < 0 ? 4294967296 + val : val;\n }\n\n static writeUint32 (buffer, offset, value) {\n if (buffer.data) {\n offset += buffer.start;\n buffer = buffer.data;\n }\n buffer[offset] = value >> 24;\n buffer[offset + 1] = (value >> 16) & 0xff;\n buffer[offset + 2] = (value >> 8) & 0xff;\n buffer[offset + 3] = value & 0xff;\n }\n\n // Find the data for a box specified by its path\n static findBox (data, path) {\n let results = [],\n i, size, type, end, subresults, start, endbox;\n\n if (data.data) {\n start = data.start;\n end = data.end;\n data = data.data;\n } else {\n start = 0;\n end = data.byteLength;\n }\n\n if (!path.length) {\n // short-circuit the search for empty paths\n return null;\n }\n\n for (i = start; i < end;) {\n size = MP4Demuxer.readUint32(data, i);\n type = MP4Demuxer.bin2str(data.subarray(i + 4, i + 8));\n endbox = size > 1 ? i + size : end;\n\n if (type === path[0]) {\n if (path.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push({ data: data, start: i + 8, end: endbox });\n } else {\n // recursively search for the next box along the path\n subresults = MP4Demuxer.findBox({ data: data, start: i + 8, end: endbox }, path.slice(1));\n if (subresults.length) {\n results = results.concat(subresults);\n }\n }\n }\n i = endbox;\n }\n\n // we've finished searching all of data\n return results;\n }\n\n static parseSegmentIndex (initSegment) {\n const moov = MP4Demuxer.findBox(initSegment, ['moov'])[0];\n const moovEndOffset = moov ? moov.end : null; // we need this in case we need to chop of garbage of the end of current data\n\n let index = 0;\n let sidx = MP4Demuxer.findBox(initSegment, ['sidx']);\n let references;\n\n if (!sidx || !sidx[0]) {\n return null;\n }\n\n references = [];\n sidx = sidx[0];\n\n const version = sidx.data[0];\n\n // set initial offset, we skip the reference ID (not needed)\n index = version === 0 ? 8 : 16;\n\n const timescale = MP4Demuxer.readUint32(sidx, index);\n index += 4;\n\n // TODO: parse earliestPresentationTime and firstOffset\n // usually zero in our case\n let earliestPresentationTime = 0;\n let firstOffset = 0;\n\n if (version === 0) {\n index += 8;\n } else {\n index += 16;\n }\n\n // skip reserved\n index += 2;\n\n let startByte = sidx.end + firstOffset;\n\n const referencesCount = MP4Demuxer.readUint16(sidx, index);\n index += 2;\n\n for (let i = 0; i < referencesCount; i++) {\n let referenceIndex = index;\n\n const referenceInfo = MP4Demuxer.readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n\n const referenceSize = referenceInfo & 0x7FFFFFFF;\n const referenceType = (referenceInfo & 0x80000000) >>> 31;\n\n if (referenceType === 1) {\n console.warn('SIDX has hierarchical references (not supported)');\n return;\n }\n\n const subsegmentDuration = MP4Demuxer.readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n\n references.push({\n referenceSize,\n subsegmentDuration, // unscaled\n info: {\n duration: subsegmentDuration / timescale,\n start: startByte,\n end: startByte + referenceSize - 1\n }\n });\n\n startByte += referenceSize;\n\n // Skipping 1 bit for |startsWithSap|, 3 bits for |sapType|, and 28 bits\n // for |sapDelta|.\n referenceIndex += 4;\n\n // skip to next ref\n index = referenceIndex;\n }\n\n return {\n earliestPresentationTime,\n timescale,\n version,\n referencesCount,\n references,\n moovEndOffset\n };\n }\n\n /**\n * Parses an MP4 initialization segment and extracts stream type and\n * timescale values for any declared tracks. Timescale values indicate the\n * number of clock ticks per second to assume for time-based values\n * elsewhere in the MP4.\n *\n * To determine the start time of an MP4, you need two pieces of\n * information: the timescale unit and the earliest base media decode\n * time. Multiple timescales can be specified within an MP4 but the\n * base media decode time is always expressed in the timescale from\n * the media header box for the track:\n * ```\n * moov > trak > mdia > mdhd.timescale\n * moov > trak > mdia > hdlr\n * ```\n * @param init {Uint8Array} the bytes of the init segment\n * @return {object} a hash of track type to timescale values or null if\n * the init segment is malformed.\n */\n static parseInitSegment (initSegment) {\n let result = [];\n let traks = MP4Demuxer.findBox(initSegment, ['moov', 'trak']);\n\n traks.forEach(trak => {\n const tkhd = MP4Demuxer.findBox(trak, ['tkhd'])[0];\n if (tkhd) {\n let version = tkhd.data[tkhd.start];\n let index = version === 0 ? 12 : 20;\n let trackId = MP4Demuxer.readUint32(tkhd, index);\n\n const mdhd = MP4Demuxer.findBox(trak, ['mdia', 'mdhd'])[0];\n if (mdhd) {\n version = mdhd.data[mdhd.start];\n index = version === 0 ? 12 : 20;\n const timescale = MP4Demuxer.readUint32(mdhd, index);\n\n const hdlr = MP4Demuxer.findBox(trak, ['mdia', 'hdlr'])[0];\n if (hdlr) {\n const hdlrType = MP4Demuxer.bin2str(hdlr.data.subarray(hdlr.start + 8, hdlr.start + 12));\n let type = { 'soun': 'audio', 'vide': 'video' }[hdlrType];\n if (type) {\n // extract codec info. TODO : parse codec details to be able to build MIME type\n let codecBox = MP4Demuxer.findBox(trak, ['mdia', 'minf', 'stbl', 'stsd']);\n if (codecBox.length) {\n codecBox = codecBox[0];\n let codecType = MP4Demuxer.bin2str(codecBox.data.subarray(codecBox.start + 12, codecBox.start + 16));\n logger.log(`MP4Demuxer:${type}:${codecType} found`);\n }\n result[trackId] = { timescale: timescale, type: type };\n result[type] = { timescale: timescale, id: trackId };\n }\n }\n }\n }\n });\n return result;\n }\n\n /**\n * Determine the base media decode start time, in seconds, for an MP4\n * fragment. If multiple fragments are specified, the earliest time is\n * returned.\n *\n * The base media decode time can be parsed from track fragment\n * metadata:\n * ```\n * moof > traf > tfdt.baseMediaDecodeTime\n * ```\n * It requires the timescale value from the mdhd to interpret.\n *\n * @param timescale {object} a hash of track ids to timescale values.\n * @return {number} the earliest base media decode start time for the\n * fragment, in seconds\n */\n static getStartDTS (initData, fragment) {\n let trafs, baseTimes, result;\n\n // we need info from two childrend of each track fragment box\n trafs = MP4Demuxer.findBox(fragment, ['moof', 'traf']);\n\n // determine the start times for each track\n baseTimes = [].concat.apply([], trafs.map(function (traf) {\n return MP4Demuxer.findBox(traf, ['tfhd']).map(function (tfhd) {\n let id, scale, baseTime;\n\n // get the track id from the tfhd\n id = MP4Demuxer.readUint32(tfhd, 4);\n // assume a 90kHz clock if no timescale was specified\n scale = initData[id].timescale || 90e3;\n\n // get the base media decode time from the tfdt\n baseTime = MP4Demuxer.findBox(traf, ['tfdt']).map(function (tfdt) {\n let version, result;\n\n version = tfdt.data[tfdt.start];\n result = MP4Demuxer.readUint32(tfdt, 4);\n if (version === 1) {\n result *= Math.pow(2, 32);\n\n result += MP4Demuxer.readUint32(tfdt, 8);\n }\n return result;\n })[0];\n // convert base time to seconds\n return baseTime / scale;\n });\n }));\n\n // return the minimum\n result = Math.min.apply(null, baseTimes);\n return isFinite(result) ? result : 0;\n }\n\n static offsetStartDTS (initData, fragment, timeOffset) {\n MP4Demuxer.findBox(fragment, ['moof', 'traf']).map(function (traf) {\n return MP4Demuxer.findBox(traf, ['tfhd']).map(function (tfhd) {\n // get the track id from the tfhd\n let id = MP4Demuxer.readUint32(tfhd, 4);\n // assume a 90kHz clock if no timescale was specified\n let timescale = initData[id].timescale || 90e3;\n\n // get the base media decode time from the tfdt\n MP4Demuxer.findBox(traf, ['tfdt']).map(function (tfdt) {\n let version = tfdt.data[tfdt.start];\n let baseMediaDecodeTime = MP4Demuxer.readUint32(tfdt, 4);\n if (version === 0) {\n MP4Demuxer.writeUint32(tfdt, 4, baseMediaDecodeTime - timeOffset * timescale);\n } else {\n baseMediaDecodeTime *= Math.pow(2, 32);\n baseMediaDecodeTime += MP4Demuxer.readUint32(tfdt, 8);\n baseMediaDecodeTime -= timeOffset * timescale;\n baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n const upper = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1));\n const lower = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n MP4Demuxer.writeUint32(tfdt, 4, upper);\n MP4Demuxer.writeUint32(tfdt, 8, lower);\n }\n });\n });\n });\n }\n\n // feed incoming data to the front of the parsing pipeline\n append (data, timeOffset, contiguous, accurateTimeOffset) {\n let initData = this.initData;\n if (!initData) {\n this.resetInitSegment(data, this.audioCodec, this.videoCodec, false);\n initData = this.initData;\n }\n let startDTS, initPTS = this.initPTS;\n if (initPTS === undefined) {\n let startDTS = MP4Demuxer.getStartDTS(initData, data);\n this.initPTS = initPTS = startDTS - timeOffset;\n this.observer.trigger(Event.INIT_PTS_FOUND, { initPTS: initPTS });\n }\n MP4Demuxer.offsetStartDTS(initData, data, initPTS);\n startDTS = MP4Demuxer.getStartDTS(initData, data);\n this.remuxer.remux(initData.audio, initData.video, null, null, startDTS, contiguous, accurateTimeOffset, data);\n }\n\n destroy () {}\n}\n\nexport default MP4Demuxer;\n","export enum ErrorTypes {\n // Identifier for a network error (loading error / timeout ...)\n NETWORK_ERROR = 'networkError',\n // Identifier for a media Error (video/parsing/mediasource error)\n MEDIA_ERROR = 'mediaError',\n // EME (encrypted media extensions) errors\n KEY_SYSTEM_ERROR = 'keySystemError',\n // Identifier for a mux Error (demuxing/remuxing)\n MUX_ERROR = 'muxError',\n // Identifier for all other errors\n OTHER_ERROR = 'otherError'\n}\n\n/**\n * @enum {ErrorDetails}\n * @typedef {string} ErrorDetail\n */\nexport enum ErrorDetails {\n KEY_SYSTEM_NO_KEYS = 'keySystemNoKeys',\n KEY_SYSTEM_NO_ACCESS = 'keySystemNoAccess',\n KEY_SYSTEM_NO_SESSION = 'keySystemNoSession',\n KEY_SYSTEM_LICENSE_REQUEST_FAILED = 'keySystemLicenseRequestFailed',\n KEY_SYSTEM_NO_INIT_DATA = 'keySystemNoInitData',\n // Identifier for a manifest load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n MANIFEST_LOAD_ERROR = 'manifestLoadError',\n // Identifier for a manifest load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n MANIFEST_LOAD_TIMEOUT = 'manifestLoadTimeOut',\n // Identifier for a manifest parsing error - data: { url : faulty URL, reason : error reason}\n MANIFEST_PARSING_ERROR = 'manifestParsingError',\n // Identifier for a manifest with only incompatible codecs error - data: { url : faulty URL, reason : error reason}\n MANIFEST_INCOMPATIBLE_CODECS_ERROR = 'manifestIncompatibleCodecsError',\n // Identifier for a level which contains no fragments - data: { url: faulty URL, reason: \"no fragments found in level\", level: index of the bad level }\n LEVEL_EMPTY_ERROR = 'levelEmptyError',\n // Identifier for a level load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n LEVEL_LOAD_ERROR = 'levelLoadError',\n // Identifier for a level load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n LEVEL_LOAD_TIMEOUT = 'levelLoadTimeOut',\n // Identifier for a level switch error - data: { level : faulty level Id, event : error description}\n LEVEL_SWITCH_ERROR = 'levelSwitchError',\n // Identifier for an audio track load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n AUDIO_TRACK_LOAD_ERROR = 'audioTrackLoadError',\n // Identifier for an audio track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n AUDIO_TRACK_LOAD_TIMEOUT = 'audioTrackLoadTimeOut',\n // Identifier for fragment load error - data: { frag : fragment object, response : { code: error code, text: error text }}\n FRAG_LOAD_ERROR = 'fragLoadError',\n // Identifier for fragment load timeout error - data: { frag : fragment object}\n FRAG_LOAD_TIMEOUT = 'fragLoadTimeOut',\n // Identifier for a fragment decryption error event - data: {id : demuxer Id,frag: fragment object, reason : parsing error description }\n FRAG_DECRYPT_ERROR = 'fragDecryptError',\n // Identifier for a fragment parsing error event - data: { id : demuxer Id, reason : parsing error description }\n // will be renamed DEMUX_PARSING_ERROR and switched to MUX_ERROR in the next major release\n FRAG_PARSING_ERROR = 'fragParsingError',\n // Identifier for a remux alloc error event - data: { id : demuxer Id, frag : fragment object, bytes : nb of bytes on which allocation failed , reason : error text }\n REMUX_ALLOC_ERROR = 'remuxAllocError',\n // Identifier for decrypt key load error - data: { frag : fragment object, response : { code: error code, text: error text }}\n KEY_LOAD_ERROR = 'keyLoadError',\n // Identifier for decrypt key load timeout error - data: { frag : fragment object}\n KEY_LOAD_TIMEOUT = 'keyLoadTimeOut',\n // Triggered when an exception occurs while adding a sourceBuffer to MediaSource - data : { err : exception , mimeType : mimeType }\n BUFFER_ADD_CODEC_ERROR = 'bufferAddCodecError',\n // Identifier for a buffer append error - data: append error description\n BUFFER_APPEND_ERROR = 'bufferAppendError',\n // Identifier for a buffer appending error event - data: appending error description\n BUFFER_APPENDING_ERROR = 'bufferAppendingError',\n // Identifier for a buffer stalled error event\n BUFFER_STALLED_ERROR = 'bufferStalledError',\n // Identifier for a buffer full event\n BUFFER_FULL_ERROR = 'bufferFullError',\n // Identifier for a buffer seek over hole event\n BUFFER_SEEK_OVER_HOLE = 'bufferSeekOverHole',\n // Identifier for a buffer nudge on stall (playback is stuck although currentTime is in a buffered area)\n BUFFER_NUDGE_ON_STALL = 'bufferNudgeOnStall',\n // Identifier for an internal exception happening inside hls.js while handling an event\n INTERNAL_EXCEPTION = 'internalException'\n}\n","/**\n * @readonly\n * @enum {string}\n */\nconst HlsEvents = {\n // fired before MediaSource is attaching to media element - data: { media }\n MEDIA_ATTACHING: 'hlsMediaAttaching',\n // fired when MediaSource has been succesfully attached to media element - data: { }\n MEDIA_ATTACHED: 'hlsMediaAttached',\n // fired before detaching MediaSource from media element - data: { }\n MEDIA_DETACHING: 'hlsMediaDetaching',\n // fired when MediaSource has been detached from media element - data: { }\n MEDIA_DETACHED: 'hlsMediaDetached',\n // fired when we buffer is going to be reset - data: { }\n BUFFER_RESET: 'hlsBufferReset',\n // fired when we know about the codecs that we need buffers for to push into - data: {tracks : { container, codec, levelCodec, initSegment, metadata }}\n BUFFER_CODECS: 'hlsBufferCodecs',\n // fired when sourcebuffers have been created - data: { tracks : tracks }\n BUFFER_CREATED: 'hlsBufferCreated',\n // fired when we append a segment to the buffer - data: { segment: segment object }\n BUFFER_APPENDING: 'hlsBufferAppending',\n // fired when we are done with appending a media segment to the buffer - data : { parent : segment parent that triggered BUFFER_APPENDING, pending : nb of segments waiting for appending for this segment parent}\n BUFFER_APPENDED: 'hlsBufferAppended',\n // fired when the stream is finished and we want to notify the media buffer that there will be no more data - data: { }\n BUFFER_EOS: 'hlsBufferEos',\n // fired when the media buffer should be flushed - data { startOffset, endOffset }\n BUFFER_FLUSHING: 'hlsBufferFlushing',\n // fired when the media buffer has been flushed - data: { }\n BUFFER_FLUSHED: 'hlsBufferFlushed',\n // fired to signal that a manifest loading starts - data: { url : manifestURL}\n MANIFEST_LOADING: 'hlsManifestLoading',\n // fired after manifest has been loaded - data: { levels : [available quality levels], audioTracks : [ available audio tracks], url : manifestURL, stats : { trequest, tfirst, tload, mtime}}\n MANIFEST_LOADED: 'hlsManifestLoaded',\n // fired after manifest has been parsed - data: { levels : [available quality levels], firstLevel : index of first quality level appearing in Manifest}\n MANIFEST_PARSED: 'hlsManifestParsed',\n // fired when a level switch is requested - data: { level : id of new level }\n LEVEL_SWITCHING: 'hlsLevelSwitching',\n // fired when a level switch is effective - data: { level : id of new level }\n LEVEL_SWITCHED: 'hlsLevelSwitched',\n // fired when a level playlist loading starts - data: { url : level URL, level : id of level being loaded}\n LEVEL_LOADING: 'hlsLevelLoading',\n // fired when a level playlist loading finishes - data: { details : levelDetails object, level : id of loaded level, stats : { trequest, tfirst, tload, mtime} }\n LEVEL_LOADED: 'hlsLevelLoaded',\n // fired when a level's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, level : id of updated level }\n LEVEL_UPDATED: 'hlsLevelUpdated',\n // fired when a level's PTS information has been updated after parsing a fragment - data: { details : levelDetails object, level : id of updated level, drift: PTS drift observed when parsing last fragment }\n LEVEL_PTS_UPDATED: 'hlsLevelPtsUpdated',\n // fired to notify that levels have changed after removing a level - data: { levels : [available quality levels] }\n LEVELS_UPDATED: 'hlsLevelsUpdated',\n // fired to notify that audio track lists has been updated - data: { audioTracks : audioTracks }\n AUDIO_TRACKS_UPDATED: 'hlsAudioTracksUpdated',\n // fired when an audio track switching is requested - data: { id : audio track id }\n AUDIO_TRACK_SWITCHING: 'hlsAudioTrackSwitching',\n // fired when an audio track switch actually occurs - data: { id : audio track id }\n AUDIO_TRACK_SWITCHED: 'hlsAudioTrackSwitched',\n // fired when an audio track loading starts - data: { url : audio track URL, id : audio track id }\n AUDIO_TRACK_LOADING: 'hlsAudioTrackLoading',\n // fired when an audio track loading finishes - data: { details : levelDetails object, id : audio track id, stats : { trequest, tfirst, tload, mtime } }\n AUDIO_TRACK_LOADED: 'hlsAudioTrackLoaded',\n // fired to notify that subtitle track lists has been updated - data: { subtitleTracks : subtitleTracks }\n SUBTITLE_TRACKS_UPDATED: 'hlsSubtitleTracksUpdated',\n // fired when an subtitle track switch occurs - data: { id : subtitle track id }\n SUBTITLE_TRACK_SWITCH: 'hlsSubtitleTrackSwitch',\n // fired when a subtitle track loading starts - data: { url : subtitle track URL, id : subtitle track id }\n SUBTITLE_TRACK_LOADING: 'hlsSubtitleTrackLoading',\n // fired when a subtitle track loading finishes - data: { details : levelDetails object, id : subtitle track id, stats : { trequest, tfirst, tload, mtime } }\n SUBTITLE_TRACK_LOADED: 'hlsSubtitleTrackLoaded',\n // fired when a subtitle fragment has been processed - data: { success : boolean, frag : the processed frag }\n SUBTITLE_FRAG_PROCESSED: 'hlsSubtitleFragProcessed',\n // fired when a set of VTTCues to be managed externally has been parsed - data: { type: string, track: string, cues: [ VTTCue ] }\n CUES_PARSED: 'hlsCuesParsed',\n // fired when a text track to be managed externally is found - data: { tracks: [ { label: string, kind: string, default: boolean } ] }\n NON_NATIVE_TEXT_TRACKS_FOUND: 'hlsNonNativeTextTracksFound',\n // fired when the first timestamp is found - data: { id : demuxer id, initPTS: initPTS, frag : fragment object }\n INIT_PTS_FOUND: 'hlsInitPtsFound',\n // fired when a fragment loading starts - data: { frag : fragment object }\n FRAG_LOADING: 'hlsFragLoading',\n // fired when a fragment loading is progressing - data: { frag : fragment object, { trequest, tfirst, loaded } }\n FRAG_LOAD_PROGRESS: 'hlsFragLoadProgress',\n // Identifier for fragment load aborting for emergency switch down - data: { frag : fragment object }\n FRAG_LOAD_EMERGENCY_ABORTED: 'hlsFragLoadEmergencyAborted',\n // fired when a fragment loading is completed - data: { frag : fragment object, payload : fragment payload, stats : { trequest, tfirst, tload, length } }\n FRAG_LOADED: 'hlsFragLoaded',\n // fired when a fragment has finished decrypting - data: { id : demuxer id, frag: fragment object, payload : fragment payload, stats : { tstart, tdecrypt } }\n FRAG_DECRYPTED: 'hlsFragDecrypted',\n // fired when Init Segment has been extracted from fragment - data: { id : demuxer id, frag: fragment object, moov : moov MP4 box, codecs : codecs found while parsing fragment }\n FRAG_PARSING_INIT_SEGMENT: 'hlsFragParsingInitSegment',\n // fired when parsing sei text is completed - data: { id : demuxer id, frag: fragment object, samples : [ sei samples pes ] }\n FRAG_PARSING_USERDATA: 'hlsFragParsingUserdata',\n // fired when parsing id3 is completed - data: { id : demuxer id, frag: fragment object, samples : [ id3 samples pes ] }\n FRAG_PARSING_METADATA: 'hlsFragParsingMetadata',\n // fired when data have been extracted from fragment - data: { id : demuxer id, frag: fragment object, data1 : moof MP4 box or TS fragments, data2 : mdat MP4 box or null}\n FRAG_PARSING_DATA: 'hlsFragParsingData',\n // fired when fragment parsing is completed - data: { id : demuxer id, frag: fragment object }\n FRAG_PARSED: 'hlsFragParsed',\n // fired when fragment remuxed MP4 boxes have all been appended into SourceBuffer - data: { id : demuxer id, frag : fragment object, stats : { trequest, tfirst, tload, tparsed, tbuffered, length, bwEstimate } }\n FRAG_BUFFERED: 'hlsFragBuffered',\n // fired when fragment matching with current media position is changing - data : { id : demuxer id, frag : fragment object }\n FRAG_CHANGED: 'hlsFragChanged',\n // Identifier for a FPS drop event - data: { curentDropped, currentDecoded, totalDroppedFrames }\n FPS_DROP: 'hlsFpsDrop',\n // triggered when FPS drop triggers auto level capping - data: { level, droppedlevel }\n FPS_DROP_LEVEL_CAPPING: 'hlsFpsDropLevelCapping',\n // Identifier for an error event - data: { type : error type, details : error details, fatal : if true, hls.js cannot/will not try to recover, if false, hls.js will try to recover,other error specific data }\n ERROR: 'hlsError',\n // fired when hls.js instance starts destroying. Different from MEDIA_DETACHED as one could want to detach and reattach a media to the instance of hls.js to handle mid-rolls for example - data: { }\n DESTROYING: 'hlsDestroying',\n // fired when a decrypt key loading starts - data: { frag : fragment object }\n KEY_LOADING: 'hlsKeyLoading',\n // fired when a decrypt key loading is completed - data: { frag : fragment object, payload : key payload, stats : { trequest, tfirst, tload, length } }\n KEY_LOADED: 'hlsKeyLoaded',\n // fired upon stream controller state transitions - data: { previousState, nextState }\n STREAM_STATE_TRANSITION: 'hlsStreamStateTransition',\n // fired when the live back buffer is reached defined by the liveBackBufferLength config option - data : { bufferEnd: number }\n LIVE_BACK_BUFFER_REACHED: 'hlsLiveBackBufferReached'\n};\n\nexport default HlsEvents;\n","import Level from '../loader/level';\n\nexport interface LoaderContext {\n // target URL\n url: string\n // loader response type (arraybuffer or default response type for playlist)\n responseType: string\n // start byte range offset\n rangeStart?: number\n // end byte range offset\n rangeEnd?: number\n // true if onProgress should report partial chunk of loaded content\n progressData?: boolean\n}\n\nexport interface LoaderConfiguration {\n // Max number of load retries\n maxRetry: number\n // Timeout after which `onTimeOut` callback will be triggered\n // (if loading is still not finished after that delay)\n timeout: number\n // Delay between an I/O error and following connection retry (ms).\n // This to avoid spamming the server\n retryDelay: number\n // max connection retry delay (ms)\n maxRetryDelay: number\n}\n\nexport interface LoaderResponse {\n url: string,\n // TODO(jstackhouse): SharedArrayBuffer, es2017 extension to TS\n data: string | ArrayBuffer\n}\n\nexport interface LoaderStats {\n // performance.now() just after load() has been called\n trequest: number\n // performance.now() of first received byte\n tfirst: number\n // performance.now() on load complete\n tload: number\n // performance.now() on parse completion\n tparsed: number\n // number of loaded bytes\n loaded: number\n // total number of bytes\n total: number\n}\n\ntype LoaderOnSuccess < T extends LoaderContext > = (\n response: LoaderResponse,\n stats: LoaderStats,\n context: T,\n networkDetails: any\n) => void;\n\ntype LoaderOnProgress < T extends LoaderContext > = (\n stats: LoaderStats,\n context: T,\n data: string | ArrayBuffer,\n networkDetails: any,\n) => void;\n\ntype LoaderOnError < T extends LoaderContext > = (\n error: {\n // error status code\n code: number,\n // error description\n text: string,\n },\n context: T,\n networkDetails: any,\n) => void;\n\ntype LoaderOnTimeout < T extends LoaderContext > = (\n stats: LoaderStats,\n context: T,\n) => void;\n\nexport interface LoaderCallbacks{\n onSuccess: LoaderOnSuccess,\n onError: LoaderOnError,\n onTimeout: LoaderOnTimeout,\n onProgress?: LoaderOnProgress,\n}\n\nexport interface Loader {\n destroy(): void\n abort(): void\n load(\n context: LoaderContext,\n config: LoaderConfiguration,\n callbacks: LoaderCallbacks,\n ): void\n\n context: T\n}\n\n/**\n * `type` property values for this loaders' context object\n * @enum\n *\n */\nexport enum PlaylistContextType {\n MANIFEST = 'manifest',\n LEVEL = 'level',\n AUDIO_TRACK = 'audioTrack',\n SUBTITLE_TRACK= 'subtitleTrack'\n}\n\n/**\n * @enum {string}\n */\nexport enum PlaylistLevelType {\n MAIN = 'main',\n AUDIO = 'audio',\n SUBTITLE = 'subtitle'\n}\n\nexport interface PlaylistLoaderContext extends LoaderContext {\n loader?: Loader\n\n type: PlaylistContextType\n // the level index to load\n level: number | null\n // TODO: what is id?\n id: number | null\n // defines if the loader is handling a sidx request for the playlist\n isSidxRequest?: boolean\n // internal reprsentation of a parsed m3u8 level playlist\n levelDetails?: Level\n}\n","/*\n*\n* All objects in the event handling chain should inherit from this class\n*\n*/\n\nimport { logger } from './utils/logger';\nimport { ErrorTypes, ErrorDetails } from './errors';\nimport Event from './events';\nimport Hls from './hls';\n\nconst FORBIDDEN_EVENT_NAMES = {\n 'hlsEventGeneric': true,\n 'hlsHandlerDestroying': true,\n 'hlsHandlerDestroyed': true\n};\n\nclass EventHandler {\n hls: Hls;\n handledEvents: any[];\n useGenericHandler: boolean;\n\n constructor (hls: Hls, ...events: any[]) {\n this.hls = hls;\n this.onEvent = this.onEvent.bind(this);\n this.handledEvents = events;\n this.useGenericHandler = true;\n\n this.registerListeners();\n }\n\n destroy () {\n this.onHandlerDestroying();\n this.unregisterListeners();\n this.onHandlerDestroyed();\n }\n\n protected onHandlerDestroying () {}\n protected onHandlerDestroyed () {}\n\n isEventHandler () {\n return typeof this.handledEvents === 'object' && this.handledEvents.length && typeof this.onEvent === 'function';\n }\n\n registerListeners () {\n if (this.isEventHandler()) {\n this.handledEvents.forEach(function (event) {\n if (FORBIDDEN_EVENT_NAMES[event]) {\n throw new Error('Forbidden event-name: ' + event);\n }\n\n this.hls.on(event, this.onEvent);\n }, this);\n }\n }\n\n unregisterListeners () {\n if (this.isEventHandler()) {\n this.handledEvents.forEach(function (event) {\n this.hls.off(event, this.onEvent);\n }, this);\n }\n }\n\n /**\n * arguments: event (string), data (any)\n */\n onEvent (event: string, data: any) {\n this.onEventGeneric(event, data);\n }\n\n onEventGeneric (event: string, data: any) {\n let eventToFunction = function (event: string, data: any) {\n let funcName = 'on' + event.replace('hls', '');\n if (typeof this[funcName] !== 'function') {\n throw new Error(`Event ${event} has no generic handler in this ${this.constructor.name} class (tried ${funcName})`);\n }\n\n return this[funcName].bind(this, data);\n };\n try {\n eventToFunction.call(this, event, data).call();\n } catch (err) {\n logger.error(`An internal error happened while handling event ${event}. Error message: \"${err.message}\". Here is a stacktrace:`, err);\n this.hls.trigger(Event.ERROR, { type: ErrorTypes.OTHER_ERROR, details: ErrorDetails.INTERNAL_EXCEPTION, fatal: false, event: event, err: err });\n }\n }\n}\n\nexport default EventHandler;\n","\nimport { buildAbsoluteURL } from 'url-toolkit';\nimport { logger } from '../utils/logger';\nimport LevelKey from './level-key';\nimport { PlaylistLevelType } from '../types/loader';\n\nexport enum ElementaryStreamTypes {\n AUDIO = 'audio',\n VIDEO = 'video',\n}\n\nexport default class Fragment {\n private _url: string | null = null;\n private _byteRange: number[] | null = null;\n private _decryptdata: LevelKey | null = null;\n\n // Holds the types of data this fragment supports\n private _elementaryStreams: Record = {\n [ElementaryStreamTypes.AUDIO]: false,\n [ElementaryStreamTypes.VIDEO]: false\n };\n\n // deltaPTS tracks the change in presentation timestamp between fragments\n public deltaPTS: number = 0;\n\n public rawProgramDateTime: string | null = null;\n public programDateTime: number | null = null;\n public title: string | null = null;\n public tagList: Array = [];\n\n // TODO: Move at least baseurl to constructor.\n // Currently we do a two-pass construction as use the Fragment class almost like a object for holding parsing state.\n // It may make more sense to just use a POJO to keep state during the parsing phase.\n // Have Fragment be the representation once we have a known state?\n // Something to think on.\n\n // Discontinuity Counter\n public cc!: number;\n\n public type!: PlaylistLevelType;\n // relurl is the portion of the URL that comes from inside the playlist.\n public relurl!: string;\n // baseurl is the URL to the playlist\n public baseurl!: string;\n // EXTINF has to be present for a m3u8 to be considered valid\n public duration!: number;\n // When this segment starts in the timeline\n public start!: number;\n // sn notates the sequence number for a segment, and if set to a string can be 'initSegment'\n public sn: number | 'initSegment' = 0;\n\n public urlId: number = 0;\n // level matches this fragment to a index playlist\n public level: number = 0;\n // levelkey is the EXT-X-KEY that applies to this segment for decryption\n // core difference from the private field _decryptdata is the lack of the initialized IV\n // _decryptdata will set the IV for this segment based on the segment number in the fragment\n public levelkey?: LevelKey;\n\n // TODO(typescript-xhrloader)\n public loader: any;\n\n // setByteRange converts a EXT-X-BYTERANGE attribute into a two element array\n setByteRange (value: string, previousFrag?: Fragment) {\n const params = value.split('@', 2);\n const byteRange: number[] = [];\n if (params.length === 1) {\n byteRange[0] = previousFrag ? previousFrag.byteRangeEndOffset : 0;\n } else {\n byteRange[0] = parseInt(params[1]);\n }\n byteRange[1] = parseInt(params[0]) + byteRange[0];\n this._byteRange = byteRange;\n }\n\n get url () {\n if (!this._url && this.relurl) {\n this._url = buildAbsoluteURL(this.baseurl, this.relurl, { alwaysNormalize: true });\n }\n\n return this._url;\n }\n\n set url (value) {\n this._url = value;\n }\n\n get byteRange (): number[] {\n if (!this._byteRange) {\n return [];\n }\n\n return this._byteRange;\n }\n\n /**\n * @type {number}\n */\n get byteRangeStartOffset () {\n return this.byteRange[0];\n }\n\n get byteRangeEndOffset () {\n return this.byteRange[1];\n }\n\n get decryptdata (): LevelKey | null {\n if (!this.levelkey && !this._decryptdata) {\n return null;\n }\n\n if (!this._decryptdata && this.levelkey) {\n let sn = this.sn;\n if (typeof sn !== 'number') {\n // We are fetching decryption data for a initialization segment\n // If the segment was encrypted with AES-128\n // It must have an IV defined. We cannot substitute the Segment Number in.\n if (this.levelkey && this.levelkey.method === 'AES-128' && !this.levelkey.iv) {\n logger.warn(`missing IV for initialization segment with method=\"${this.levelkey.method}\" - compliance issue`);\n }\n\n /*\n Be converted to a Number.\n 'initSegment' will become NaN.\n NaN, which when converted through ToInt32() -> +0.\n ---\n Explicitly set sn to resulting value from implicit conversions 'initSegment' values for IV generation.\n */\n sn = 0;\n }\n this._decryptdata = this.setDecryptDataFromLevelKey(this.levelkey, sn);\n }\n\n return this._decryptdata;\n }\n\n get endProgramDateTime () {\n if (this.programDateTime === null) {\n return null;\n }\n\n if (!Number.isFinite(this.programDateTime)) {\n return null;\n }\n\n let duration = !Number.isFinite(this.duration) ? 0 : this.duration;\n\n return this.programDateTime + (duration * 1000);\n }\n\n get encrypted () {\n return !!((this.decryptdata && this.decryptdata.uri !== null) && (this.decryptdata.key === null));\n }\n\n /**\n * @param {ElementaryStreamTypes} type\n */\n addElementaryStream (type: ElementaryStreamTypes) {\n this._elementaryStreams[type] = true;\n }\n\n /**\n * @param {ElementaryStreamTypes} type\n */\n hasElementaryStream (type: ElementaryStreamTypes) {\n return this._elementaryStreams[type] === true;\n }\n\n /**\n * Utility method for parseLevelPlaylist to create an initialization vector for a given segment\n * @param {number} segmentNumber - segment number to generate IV with\n * @returns {Uint8Array}\n */\n createInitializationVector (segmentNumber: number): Uint8Array {\n let uint8View = new Uint8Array(16);\n\n for (let i = 12; i < 16; i++) {\n uint8View[i] = (segmentNumber >> 8 * (15 - i)) & 0xff;\n }\n\n return uint8View;\n }\n\n /**\n * Utility method for parseLevelPlaylist to get a fragment's decryption data from the currently parsed encryption key data\n * @param levelkey - a playlist's encryption info\n * @param segmentNumber - the fragment's segment number\n * @returns {LevelKey} - an object to be applied as a fragment's decryptdata\n */\n setDecryptDataFromLevelKey (levelkey: LevelKey, segmentNumber: number): LevelKey {\n let decryptdata = levelkey;\n\n if (levelkey?.method && levelkey.uri && !levelkey.iv) {\n decryptdata = new LevelKey(levelkey.baseuri, levelkey.reluri);\n decryptdata.method = levelkey.method;\n decryptdata.iv = this.createInitializationVector(segmentNumber);\n }\n\n return decryptdata;\n }\n}\n","import { buildAbsoluteURL } from 'url-toolkit';\n\nexport default class LevelKey {\n private _uri: string | null = null;\n\n public baseuri: string;\n public reluri: string;\n public method: string | null = null;\n public key: Uint8Array | null = null;\n public iv: Uint8Array | null = null;\n\n constructor (baseURI: string, relativeURI: string) {\n this.baseuri = baseURI;\n this.reluri = relativeURI;\n }\n\n get uri () {\n if (!this._uri && this.reluri) {\n this._uri = buildAbsoluteURL(this.baseuri, this.reluri, { alwaysNormalize: true });\n }\n\n return this._uri;\n }\n}\n","export default class Level {\n constructor (baseUrl) {\n // Please keep properties in alphabetical order\n this.endCC = 0;\n this.endSN = 0;\n this.fragments = [];\n this.initSegment = null;\n this.live = true;\n this.needSidxRanges = false;\n this.startCC = 0;\n this.startSN = 0;\n this.startTimeOffset = null;\n this.targetduration = 0;\n this.totalduration = 0;\n this.type = null;\n this.url = baseUrl;\n this.version = null;\n }\n\n get hasProgramDateTime () {\n return !!(this.fragments[0] && Number.isFinite(this.fragments[0].programDateTime));\n }\n}\n","const DECIMAL_RESOLUTION_REGEX = /^(\\d+)x(\\d+)$/; // eslint-disable-line no-useless-escape\nconst ATTR_LIST_REGEX = /\\s*(.+?)\\s*=((?:\\\".*?\\\")|.*?)(?:,|$)/g; // eslint-disable-line no-useless-escape\n\n// adapted from https://github.com/kanongil/node-m3u8parse/blob/master/attrlist.js\nclass AttrList {\n constructor (attrs) {\n if (typeof attrs === 'string') {\n attrs = AttrList.parseAttrList(attrs);\n }\n\n for (let attr in attrs) {\n if (attrs.hasOwnProperty(attr)) {\n this[attr] = attrs[attr];\n }\n }\n }\n\n decimalInteger (attrName) {\n const intValue = parseInt(this[attrName], 10);\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n\n return intValue;\n }\n\n hexadecimalInteger (attrName) {\n if (this[attrName]) {\n let stringValue = (this[attrName] || '0x').slice(2);\n stringValue = ((stringValue.length & 1) ? '0' : '') + stringValue;\n\n const value = new Uint8Array(stringValue.length / 2);\n for (let i = 0; i < stringValue.length / 2; i++) {\n value[i] = parseInt(stringValue.slice(i * 2, i * 2 + 2), 16);\n }\n\n return value;\n } else {\n return null;\n }\n }\n\n hexadecimalIntegerAsNumber (attrName) {\n const intValue = parseInt(this[attrName], 16);\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n\n return intValue;\n }\n\n decimalFloatingPoint (attrName) {\n return parseFloat(this[attrName]);\n }\n\n enumeratedString (attrName) {\n return this[attrName];\n }\n\n decimalResolution (attrName) {\n const res = DECIMAL_RESOLUTION_REGEX.exec(this[attrName]);\n if (res === null) {\n return undefined;\n }\n\n return {\n width: parseInt(res[1], 10),\n height: parseInt(res[2], 10)\n };\n }\n\n static parseAttrList (input) {\n let match, attrs = {};\n ATTR_LIST_REGEX.lastIndex = 0;\n while ((match = ATTR_LIST_REGEX.exec(input)) !== null) {\n let value = match[2], quote = '\"';\n\n if (value.indexOf(quote) === 0 &&\n value.lastIndexOf(quote) === (value.length - 1)) {\n value = value.slice(1, -1);\n }\n\n attrs[match[1]] = value;\n }\n return attrs;\n }\n}\n\nexport default AttrList;\n","// from http://mp4ra.org/codecs.html\nconst sampleEntryCodesISO = {\n audio: {\n 'a3ds': true,\n 'ac-3': true,\n 'ac-4': true,\n 'alac': true,\n 'alaw': true,\n 'dra1': true,\n 'dts+': true,\n 'dts-': true,\n 'dtsc': true,\n 'dtse': true,\n 'dtsh': true,\n 'ec-3': true,\n 'enca': true,\n 'g719': true,\n 'g726': true,\n 'm4ae': true,\n 'mha1': true,\n 'mha2': true,\n 'mhm1': true,\n 'mhm2': true,\n 'mlpa': true,\n 'mp4a': true,\n 'raw ': true,\n 'Opus': true,\n 'samr': true,\n 'sawb': true,\n 'sawp': true,\n 'sevc': true,\n 'sqcp': true,\n 'ssmv': true,\n 'twos': true,\n 'ulaw': true\n },\n video: {\n 'avc1': true,\n 'avc2': true,\n 'avc3': true,\n 'avc4': true,\n 'avcp': true,\n 'drac': true,\n 'dvav': true,\n 'dvhe': true,\n 'encv': true,\n 'hev1': true,\n 'hvc1': true,\n 'mjp2': true,\n 'mp4v': true,\n 'mvc1': true,\n 'mvc2': true,\n 'mvc3': true,\n 'mvc4': true,\n 'resv': true,\n 'rv60': true,\n 's263': true,\n 'svc1': true,\n 'svc2': true,\n 'vc-1': true,\n 'vp08': true,\n 'vp09': true\n }\n};\n\nexport type CodecType = 'audio' | 'video';\n\nfunction isCodecType (codec: string, type: CodecType): boolean {\n const typeCodes = sampleEntryCodesISO[type];\n return !!typeCodes && typeCodes[codec.slice(0, 4)] === true;\n}\n\nfunction isCodecSupportedInMp4 (codec: string, type: CodecType): boolean {\n return MediaSource.isTypeSupported(`${type || 'video'}/mp4;codecs=\"${codec}\"`);\n}\n\nexport { isCodecType, isCodecSupportedInMp4 };\n","import * as URLToolkit from 'url-toolkit';\n\nimport Fragment from './fragment';\nimport Level from './level';\nimport LevelKey from './level-key';\n\nimport AttrList from '../utils/attr-list';\nimport { logger } from '../utils/logger';\nimport { isCodecType, CodecType } from '../utils/codecs';\nimport { MediaPlaylist, AudioGroup, MediaPlaylistType } from '../types/media-playlist';\nimport { PlaylistLevelType } from '../types/loader';\n\n/**\n * M3U8 parser\n * @module\n */\n\n// https://regex101.com is your friend\nconst MASTER_PLAYLIST_REGEX = /(?:#EXT-X-STREAM-INF:([^\\n\\r]*)[\\r\\n]+([^\\r\\n]+)|#EXT-X-SESSION-DATA:([^\\n\\r]*)[\\r\\n]+)/g;\nconst MASTER_PLAYLIST_MEDIA_REGEX = /#EXT-X-MEDIA:(.*)/g;\n\nconst LEVEL_PLAYLIST_REGEX_FAST = new RegExp([\n /#EXTINF:\\s*(\\d*(?:\\.\\d+)?)(?:,(.*)\\s+)?/.source, // duration (#EXTINF:,), group 1 => duration, group 2 => title\n /|(?!#)([\\S+ ?]+)/.source, // segment URI, group 3 => the URI (note newline is not eaten)\n /|#EXT-X-BYTERANGE:*(.+)/.source, // next segment's byterange, group 4 => range spec (x@y)\n /|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source, // next segment's program date/time group 5 => the datetime spec\n /|#.*/.source // All other non-segment oriented tags will match with all groups empty\n].join(''), 'g');\n\nconst LEVEL_PLAYLIST_REGEX_SLOW = /(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\\d+))|(?:#EXT-X-(TARGETDURATION): *(\\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)([^:]*):(.*))|(?:(#)(.*))(?:.*)\\r?\\n?/;\n\nconst MP4_REGEX_SUFFIX = /\\.(mp4|m4s|m4v|m4a)$/i;\n\nexport default class M3U8Parser {\n static findGroup (groups: Array<AudioGroup>, mediaGroupId: string): AudioGroup | undefined {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n if (group.id === mediaGroupId) {\n return group;\n }\n }\n }\n\n static convertAVC1ToAVCOTI (codec) {\n let avcdata = codec.split('.');\n let result;\n if (avcdata.length > 2) {\n result = avcdata.shift() + '.';\n result += parseInt(avcdata.shift()).toString(16);\n result += ('000' + parseInt(avcdata.shift()).toString(16)).substr(-4);\n } else {\n result = codec;\n }\n return result;\n }\n\n static resolve (url, baseUrl) {\n return URLToolkit.buildAbsoluteURL(baseUrl, url, { alwaysNormalize: true });\n }\n\n static parseMasterPlaylist (string: string, baseurl: string) {\n // TODO(typescript-level)\n let levels: Array<any> = [];\n let sessionData: Record<string, AttrList> = {};\n let hasSessionData = false;\n MASTER_PLAYLIST_REGEX.lastIndex = 0;\n\n // TODO(typescript-level)\n function setCodecs (codecs: Array<string>, level: any) {\n ['video', 'audio'].forEach((type: CodecType) => {\n const filtered = codecs.filter((codec) => isCodecType(codec, type));\n if (filtered.length) {\n const preferred = filtered.filter((codec) => {\n return codec.lastIndexOf('avc1', 0) === 0 || codec.lastIndexOf('mp4a', 0) === 0;\n });\n level[`${type}Codec`] = preferred.length > 0 ? preferred[0] : filtered[0];\n\n // remove from list\n codecs = codecs.filter((codec) => filtered.indexOf(codec) === -1);\n }\n });\n\n level.unknownCodecs = codecs;\n }\n\n let result: RegExpExecArray | null;\n while ((result = MASTER_PLAYLIST_REGEX.exec(string)) != null) {\n if (result[1]) {\n // '#EXT-X-STREAM-INF' is found, parse level tag in group 1\n\n // TODO(typescript-level)\n const level: any = {};\n\n const attrs = level.attrs = new AttrList(result[1]);\n level.url = M3U8Parser.resolve(result[2], baseurl);\n\n const resolution = attrs.decimalResolution('RESOLUTION');\n if (resolution) {\n level.width = resolution.width;\n level.height = resolution.height;\n }\n level.bitrate = attrs.decimalInteger('AVERAGE-BANDWIDTH') || attrs.decimalInteger('BANDWIDTH');\n level.name = attrs.NAME;\n\n setCodecs([].concat((attrs.CODECS || '').split(/[ ,]+/)), level);\n\n if (level.videoCodec && level.videoCodec.indexOf('avc1') !== -1) {\n level.videoCodec = M3U8Parser.convertAVC1ToAVCOTI(level.videoCodec);\n }\n\n levels.push(level);\n } else if (result[3]) {\n // '#EXT-X-SESSION-DATA' is found, parse session data in group 3\n let sessionAttrs = new AttrList(result[3]);\n if (sessionAttrs['DATA-ID']) {\n hasSessionData = true;\n sessionData[sessionAttrs['DATA-ID']] = sessionAttrs;\n }\n }\n }\n return {\n levels,\n sessionData: hasSessionData ? sessionData : null\n };\n }\n\n static parseMasterPlaylistMedia (string: string, baseurl: string, type: MediaPlaylistType, audioGroups: Array<AudioGroup> = []): Array<MediaPlaylist> {\n let result: RegExpExecArray | null;\n let medias: Array<MediaPlaylist> = [];\n let id = 0;\n MASTER_PLAYLIST_MEDIA_REGEX.lastIndex = 0;\n while ((result = MASTER_PLAYLIST_MEDIA_REGEX.exec(string)) !== null) {\n const attrs = new AttrList(result[1]);\n if (attrs.TYPE === type) {\n const media: MediaPlaylist = {\n attrs,\n id: id++,\n groupId: attrs['GROUP-ID'],\n instreamId: attrs['INSTREAM-ID'],\n name: attrs.NAME || attrs.LANGUAGE,\n type,\n default: (attrs.DEFAULT === 'YES'),\n autoselect: (attrs.AUTOSELECT === 'YES'),\n forced: (attrs.FORCED === 'YES'),\n lang: attrs.LANGUAGE\n };\n\n if (attrs.URI) {\n media.url = M3U8Parser.resolve(attrs.URI, baseurl);\n }\n\n if (audioGroups.length) {\n // If there are audio groups signalled in the manifest, let's look for a matching codec string for this track\n const groupCodec = M3U8Parser.findGroup(audioGroups, media.groupId as string);\n\n // If we don't find the track signalled, lets use the first audio groups codec we have\n // Acting as a best guess\n media.audioCodec = groupCodec ? groupCodec.codec : audioGroups[0].codec;\n }\n\n medias.push(media);\n }\n }\n return medias;\n }\n\n static parseLevelPlaylist (string: string, baseurl: string, id: number, type: PlaylistLevelType, levelUrlId: number) {\n let currentSN = 0;\n let totalduration = 0;\n let level = new Level(baseurl);\n let discontinuityCounter = 0;\n let prevFrag: Fragment | null = null;\n let frag: Fragment | null = new Fragment();\n let result: RegExpExecArray | RegExpMatchArray | null;\n let i: number;\n let levelkey: LevelKey | undefined;\n\n let firstPdtIndex = null;\n\n LEVEL_PLAYLIST_REGEX_FAST.lastIndex = 0;\n\n while ((result = LEVEL_PLAYLIST_REGEX_FAST.exec(string)) !== null) {\n const duration = result[1];\n if (duration) { // INF\n frag.duration = parseFloat(duration);\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const title = (' ' + result[2]).slice(1);\n frag.title = title || null;\n frag.tagList.push(title ? [ 'INF', duration, title ] : [ 'INF', duration ]);\n } else if (result[3]) { // url\n if (Number.isFinite(frag.duration)) {\n const sn = currentSN++;\n frag.type = type;\n frag.start = totalduration;\n if (levelkey) {\n frag.levelkey = levelkey;\n }\n frag.sn = sn;\n frag.level = id;\n frag.cc = discontinuityCounter;\n frag.urlId = levelUrlId;\n frag.baseurl = baseurl;\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n frag.relurl = (' ' + result[3]).slice(1);\n assignProgramDateTime(frag, prevFrag);\n\n level.fragments.push(frag);\n prevFrag = frag;\n totalduration += frag.duration;\n\n frag = new Fragment();\n }\n } else if (result[4]) { // X-BYTERANGE\n const data = (' ' + result[4]).slice(1);\n if (prevFrag) {\n frag.setByteRange(data, prevFrag);\n } else {\n frag.setByteRange(data);\n }\n } else if (result[5]) { // PROGRAM-DATE-TIME\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n frag.rawProgramDateTime = (' ' + result[5]).slice(1);\n frag.tagList.push(['PROGRAM-DATE-TIME', frag.rawProgramDateTime]);\n if (firstPdtIndex === null) {\n firstPdtIndex = level.fragments.length;\n }\n } else {\n result = result[0].match(LEVEL_PLAYLIST_REGEX_SLOW);\n if (!result) {\n logger.warn('No matches on slow regex match for level playlist!');\n continue;\n }\n for (i = 1; i < result.length; i++) {\n if (typeof result[i] !== 'undefined') {\n break;\n }\n }\n\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const value1 = (' ' + result[i + 1]).slice(1);\n const value2 = (' ' + result[i + 2]).slice(1);\n\n switch (result[i]) {\n case '#':\n frag.tagList.push(value2 ? [ value1, value2 ] : [ value1 ]);\n break;\n case 'PLAYLIST-TYPE':\n level.type = value1.toUpperCase();\n break;\n case 'MEDIA-SEQUENCE':\n currentSN = level.startSN = parseInt(value1);\n break;\n case 'TARGETDURATION':\n level.targetduration = parseFloat(value1);\n break;\n case 'VERSION':\n level.version = parseInt(value1);\n break;\n case 'EXTM3U':\n break;\n case 'ENDLIST':\n level.live = false;\n break;\n case 'DIS':\n discontinuityCounter++;\n frag.tagList.push(['DIS']);\n break;\n case 'DISCONTINUITY-SEQ':\n discontinuityCounter = parseInt(value1);\n break;\n case 'KEY': {\n // https://tools.ietf.org/html/rfc8216#section-4.3.2.4\n const decryptparams = value1;\n const keyAttrs = new AttrList(decryptparams);\n const decryptmethod = keyAttrs.enumeratedString('METHOD');\n const decrypturi = keyAttrs.URI;\n const decryptiv = keyAttrs.hexadecimalInteger('IV');\n // From RFC: This attribute is OPTIONAL; its absence indicates an implicit value of \"identity\".\n const decryptkeyformat = keyAttrs.KEYFORMAT || 'identity';\n\n if (decryptkeyformat === 'com.apple.streamingkeydelivery') {\n logger.warn('Keyformat com.apple.streamingkeydelivery is not supported');\n continue;\n }\n\n if (decryptmethod) {\n levelkey = new LevelKey(baseurl, decrypturi);\n if ((decrypturi) && (['AES-128', 'SAMPLE-AES', 'SAMPLE-AES-CENC'].indexOf(decryptmethod) >= 0)) {\n levelkey.method = decryptmethod;\n levelkey.key = null;\n // Initialization Vector (IV)\n levelkey.iv = decryptiv;\n }\n }\n break;\n }\n case 'START': {\n const startAttrs = new AttrList(value1);\n const startTimeOffset = startAttrs.decimalFloatingPoint('TIME-OFFSET');\n // TIME-OFFSET can be 0\n if (Number.isFinite(startTimeOffset)) {\n level.startTimeOffset = startTimeOffset;\n }\n break;\n }\n case 'MAP': {\n const mapAttrs = new AttrList(value1);\n frag.relurl = mapAttrs.URI;\n if (mapAttrs.BYTERANGE) {\n frag.setByteRange(mapAttrs.BYTERANGE);\n }\n frag.baseurl = baseurl;\n frag.level = id;\n frag.type = type;\n frag.sn = 'initSegment';\n level.initSegment = frag;\n frag = new Fragment();\n frag.rawProgramDateTime = level.initSegment.rawProgramDateTime;\n break;\n }\n default:\n logger.warn(`line parsed but not handled: ${result}`);\n break;\n }\n }\n }\n frag = prevFrag;\n // logger.log('found ' + level.fragments.length + ' fragments');\n if (frag && !frag.relurl) {\n level.fragments.pop();\n totalduration -= frag.duration;\n }\n level.totalduration = totalduration;\n level.averagetargetduration = totalduration / level.fragments.length;\n level.endSN = currentSN - 1;\n level.startCC = level.fragments[0] ? level.fragments[0].cc : 0;\n level.endCC = discontinuityCounter;\n\n if (!level.initSegment && level.fragments.length) {\n // this is a bit lurky but HLS really has no other way to tell us\n // if the fragments are TS or MP4, except if we download them :/\n // but this is to be able to handle SIDX.\n if (level.fragments.every((frag) => MP4_REGEX_SUFFIX.test(frag.relurl))) {\n logger.warn('MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX');\n\n frag = new Fragment();\n frag.relurl = level.fragments[0].relurl;\n frag.baseurl = baseurl;\n frag.level = id;\n frag.type = type;\n frag.sn = 'initSegment';\n\n level.initSegment = frag;\n level.needSidxRanges = true;\n }\n }\n\n /**\n * Backfill any missing PDT values\n \"If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after\n one or more Media Segment URIs, the client SHOULD extrapolate\n backward from that tag (using EXTINF durations and/or media\n timestamps) to associate dates with those segments.\"\n * We have already extrapolated forward, but all fragments up to the first instance of PDT do not have their PDTs\n * computed.\n */\n if (firstPdtIndex) {\n backfillProgramDateTimes(level.fragments, firstPdtIndex);\n }\n\n return level;\n }\n}\n\nfunction backfillProgramDateTimes (fragments, startIndex) {\n let fragPrev = fragments[startIndex];\n for (let i = startIndex - 1; i >= 0; i--) {\n const frag = fragments[i];\n frag.programDateTime = fragPrev.programDateTime - (frag.duration * 1000);\n fragPrev = frag;\n }\n}\n\nfunction assignProgramDateTime (frag, prevFrag) {\n if (frag.rawProgramDateTime) {\n frag.programDateTime = Date.parse(frag.rawProgramDateTime);\n } else if (prevFrag?.programDateTime) {\n frag.programDateTime = prevFrag.endProgramDateTime;\n }\n\n if (!Number.isFinite(frag.programDateTime)) {\n frag.programDateTime = null;\n frag.rawProgramDateTime = null;\n }\n}\n","/**\n * PlaylistLoader - delegate for media manifest/playlist loading tasks. Takes care of parsing media to internal data-models.\n *\n * Once loaded, dispatches events with parsed data-models of manifest/levels/audio/subtitle tracks.\n *\n * Uses loader(s) set in config to do actual internal loading of resource tasks.\n *\n * @module\n *\n */\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport { Loader, PlaylistContextType, PlaylistLoaderContext, PlaylistLevelType, LoaderCallbacks, LoaderResponse, LoaderStats, LoaderConfiguration } from '../types/loader';\nimport MP4Demuxer from '../demux/mp4demuxer';\nimport M3U8Parser from './m3u8-parser';\nimport { AudioGroup } from '../types/media-playlist';\n\nconst { performance } = window;\n\n/**\n * @constructor\n */\nclass PlaylistLoader extends EventHandler {\n private loaders: Partial<Record<PlaylistContextType, Loader<PlaylistLoaderContext>>> = {};\n\n /**\n * @constructs\n * @param {Hls} hls\n */\n constructor (hls) {\n super(hls,\n Event.MANIFEST_LOADING,\n Event.LEVEL_LOADING,\n Event.AUDIO_TRACK_LOADING,\n Event.SUBTITLE_TRACK_LOADING);\n }\n\n /**\n * @param {PlaylistContextType} type\n * @returns {boolean}\n */\n static canHaveQualityLevels (type: PlaylistContextType): boolean {\n return (type !== PlaylistContextType.AUDIO_TRACK &&\n type !== PlaylistContextType.SUBTITLE_TRACK);\n }\n\n /**\n * Map context.type to LevelType\n * @param {PlaylistLoaderContext} context\n * @returns {LevelType}\n */\n static mapContextToLevelType (context: PlaylistLoaderContext): PlaylistLevelType {\n const { type } = context;\n\n switch (type) {\n case PlaylistContextType.AUDIO_TRACK:\n return PlaylistLevelType.AUDIO;\n case PlaylistContextType.SUBTITLE_TRACK:\n return PlaylistLevelType.SUBTITLE;\n default:\n return PlaylistLevelType.MAIN;\n }\n }\n\n static getResponseUrl (response: LoaderResponse, context: PlaylistLoaderContext): string {\n let url = response.url;\n // responseURL not supported on some browsers (it is used to detect URL redirection)\n // data-uri mode also not supported (but no need to detect redirection)\n if (url === undefined || url.indexOf('data:') === 0) {\n // fallback to initial URL\n url = context.url;\n }\n return url;\n }\n\n /**\n * Returns defaults or configured loader-type overloads (pLoader and loader config params)\n * Default loader is XHRLoader (see utils)\n * @param {PlaylistLoaderContext} context\n * @returns {Loader} or other compatible configured overload\n */\n createInternalLoader (context: PlaylistLoaderContext): Loader<PlaylistLoaderContext> {\n const config = this.hls.config;\n const PLoader = config.pLoader;\n const Loader = config.loader;\n // TODO(typescript-config): Verify once config is typed that InternalLoader always returns a Loader\n const InternalLoader = PLoader || Loader;\n\n const loader = new InternalLoader(config);\n\n // TODO - Do we really need to assign the instance or if the dep has been lost\n context.loader = loader;\n this.loaders[context.type] = loader;\n\n return loader;\n }\n\n getInternalLoader (context: PlaylistLoaderContext): Loader<PlaylistLoaderContext> | undefined {\n return this.loaders[context.type];\n }\n\n resetInternalLoader (contextType: PlaylistContextType) {\n if (this.loaders[contextType]) {\n delete this.loaders[contextType];\n }\n }\n\n /**\n * Call `destroy` on all internal loader instances mapped (one per context type)\n */\n destroyInternalLoaders () {\n for (let contextType in this.loaders) {\n let loader = this.loaders[contextType];\n if (loader) {\n loader.destroy();\n }\n\n this.resetInternalLoader(contextType as PlaylistContextType);\n }\n }\n\n destroy () {\n this.destroyInternalLoaders();\n\n super.destroy();\n }\n\n onManifestLoading (data: { url: string; }) {\n this.load({\n url: data.url,\n type: PlaylistContextType.MANIFEST,\n level: 0,\n id: null,\n responseType: 'text'\n });\n }\n\n onLevelLoading (data: { url: string; level: number | null; id: number | null; }) {\n this.load({\n url: data.url,\n type: PlaylistContextType.LEVEL,\n level: data.level,\n id: data.id,\n responseType: 'text'\n });\n }\n\n onAudioTrackLoading (data: { url: string; id: number | null; }) {\n this.load({\n url: data.url,\n type: PlaylistContextType.AUDIO_TRACK,\n level: null,\n id: data.id,\n responseType: 'text'\n });\n }\n\n onSubtitleTrackLoading (data: { url: string; id: number | null; }) {\n this.load({\n url: data.url,\n type: PlaylistContextType.SUBTITLE_TRACK,\n level: null,\n id: data.id,\n responseType: 'text'\n });\n }\n\n load (context: PlaylistLoaderContext): boolean {\n const config = this.hls.config;\n\n logger.debug(`Loading playlist of type ${context.type}, level: ${context.level}, id: ${context.id}`);\n\n // Check if a loader for this context already exists\n let loader = this.getInternalLoader(context);\n if (loader) {\n const loaderContext = loader.context;\n if (loaderContext && loaderContext.url === context.url) { // same URL can't overlap\n logger.trace('playlist request ongoing');\n return false;\n } else {\n logger.warn(`aborting previous loader for type: ${context.type}`);\n loader.abort();\n }\n }\n\n let maxRetry: number;\n let timeout: number;\n let retryDelay: number;\n let maxRetryDelay: number;\n\n // apply different configs for retries depending on\n // context (manifest, level, audio/subs playlist)\n switch (context.type) {\n case PlaylistContextType.MANIFEST:\n maxRetry = config.manifestLoadingMaxRetry;\n timeout = config.manifestLoadingTimeOut;\n retryDelay = config.manifestLoadingRetryDelay;\n maxRetryDelay = config.manifestLoadingMaxRetryTimeout;\n break;\n case PlaylistContextType.LEVEL:\n // Disable internal loader retry logic, since we are managing retries in Level Controller\n maxRetry = 0;\n maxRetryDelay = 0;\n retryDelay = 0;\n timeout = config.levelLoadingTimeOut;\n // TODO Introduce retry settings for audio-track and subtitle-track, it should not use level retry config\n break;\n default:\n maxRetry = config.levelLoadingMaxRetry;\n timeout = config.levelLoadingTimeOut;\n retryDelay = config.levelLoadingRetryDelay;\n maxRetryDelay = config.levelLoadingMaxRetryTimeout;\n break;\n }\n\n loader = this.createInternalLoader(context);\n\n const loaderConfig: LoaderConfiguration = {\n timeout,\n maxRetry,\n retryDelay,\n maxRetryDelay\n };\n\n const loaderCallbacks: LoaderCallbacks<PlaylistLoaderContext> = {\n onSuccess: this.loadsuccess.bind(this),\n onError: this.loaderror.bind(this),\n onTimeout: this.loadtimeout.bind(this)\n };\n\n logger.debug(`Calling internal loader delegate for URL: ${context.url}`);\n loader.load(context, loaderConfig, loaderCallbacks);\n\n return true;\n }\n\n loadsuccess (response: LoaderResponse, stats: LoaderStats, context: PlaylistLoaderContext, networkDetails: unknown = null) {\n if (context.isSidxRequest) {\n this._handleSidxRequest(response, context);\n this._handlePlaylistLoaded(response, stats, context, networkDetails);\n return;\n }\n\n this.resetInternalLoader(context.type);\n if (typeof response.data !== 'string') {\n throw new Error('expected responseType of \"text\" for PlaylistLoader');\n }\n\n const string = response.data;\n\n stats.tload = performance.now();\n // stats.mtime = new Date(target.getResponseHeader('Last-Modified'));\n\n // Validate if it is an M3U8 at all\n if (string.indexOf('#EXTM3U') !== 0) {\n this._handleManifestParsingError(response, context, 'no EXTM3U delimiter', networkDetails);\n return;\n }\n\n // Check if chunk-list or master. handle empty chunk list case (first EXTINF not signaled, but TARGETDURATION present)\n if (string.indexOf('#EXTINF:') > 0 || string.indexOf('#EXT-X-TARGETDURATION:') > 0) {\n this._handleTrackOrLevelPlaylist(response, stats, context, networkDetails);\n } else {\n this._handleMasterPlaylist(response, stats, context, networkDetails);\n }\n }\n\n loaderror (response: LoaderResponse, context: PlaylistLoaderContext, networkDetails = null) {\n this._handleNetworkError(context, networkDetails, false, response);\n }\n\n loadtimeout (stats: LoaderStats, context: PlaylistLoaderContext, networkDetails = null) {\n this._handleNetworkError(context, networkDetails, true);\n }\n\n // TODO(typescript-config): networkDetails can currently be a XHR or Fetch impl,\n // but with custom loaders it could be generic investigate this further when config is typed\n _handleMasterPlaylist (response: LoaderResponse, stats: LoaderStats, context: PlaylistLoaderContext, networkDetails: unknown) {\n const hls = this.hls;\n const string = response.data as string;\n\n const url = PlaylistLoader.getResponseUrl(response, context);\n const { levels, sessionData } = M3U8Parser.parseMasterPlaylist(string, url);\n if (!levels.length) {\n this._handleManifestParsingError(response, context, 'no level found in manifest', networkDetails);\n return;\n }\n\n // multi level playlist, parse level info\n const audioGroups: Array<AudioGroup> = levels.map(level => ({\n id: level.attrs.AUDIO,\n codec: level.audioCodec\n }));\n\n const audioTracks = M3U8Parser.parseMasterPlaylistMedia(string, url, 'AUDIO', audioGroups);\n const subtitles = M3U8Parser.parseMasterPlaylistMedia(string, url, 'SUBTITLES');\n const captions = M3U8Parser.parseMasterPlaylistMedia(string, url, 'CLOSED-CAPTIONS');\n\n if (audioTracks.length) {\n // check if we have found an audio track embedded in main playlist (audio track without URI attribute)\n let embeddedAudioFound = false;\n audioTracks.forEach(audioTrack => {\n if (!audioTrack.url) {\n embeddedAudioFound = true;\n }\n });\n\n // if no embedded audio track defined, but audio codec signaled in quality level,\n // we need to signal this main audio track this could happen with playlists with\n // alt audio rendition in which quality levels (main)\n // contains both audio+video. but with mixed audio track not signaled\n if (embeddedAudioFound === false && levels[0].audioCodec && !levels[0].attrs.AUDIO) {\n logger.log('audio codec signaled in quality level, but no embedded audio track signaled, create one');\n audioTracks.unshift({\n type: 'main',\n name: 'main',\n default: false,\n autoselect: false,\n forced: false,\n id: -1,\n attrs: {},\n url: ''\n });\n }\n }\n\n hls.trigger(Event.MANIFEST_LOADED, {\n levels,\n audioTracks,\n subtitles,\n captions,\n url,\n stats,\n networkDetails,\n sessionData\n });\n }\n\n _handleTrackOrLevelPlaylist (response: LoaderResponse, stats: LoaderStats, context: PlaylistLoaderContext, networkDetails: unknown) {\n const hls = this.hls;\n\n const { id, level, type } = context;\n\n const url = PlaylistLoader.getResponseUrl(response, context);\n\n // if the values are null, they will result in the else conditional\n const levelUrlId = Number.isFinite(id as number) ? id as number : 0;\n const levelId = Number.isFinite(level as number) ? level as number : levelUrlId;\n\n const levelType = PlaylistLoader.mapContextToLevelType(context);\n const levelDetails = M3U8Parser.parseLevelPlaylist(response.data as string, url, levelId, levelType, levelUrlId);\n\n // set stats on level structure\n // TODO(jstackhouse): why? mixing concerns, is it just treated as value bag?\n (levelDetails as any).tload = stats.tload;\n\n if (!levelDetails.fragments.length) {\n hls.trigger(Event.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.LEVEL_EMPTY_ERROR,\n fatal: false,\n url: url,\n reason: 'no fragments found in level',\n level: typeof context.level === 'number' ? context.level : undefined\n });\n return;\n }\n\n // We have done our first request (Manifest-type) and receive\n // not a master playlist but a chunk-list (track/level)\n // We fire the manifest-loaded event anyway with the parsed level-details\n // by creating a single-level structure for it.\n if (type === PlaylistContextType.MANIFEST) {\n const singleLevel = {\n url,\n details: levelDetails\n };\n\n hls.trigger(Event.MANIFEST_LOADED, {\n levels: [singleLevel],\n audioTracks: [],\n url,\n stats,\n networkDetails,\n sessionData: null\n });\n }\n\n // save parsing time\n stats.tparsed = performance.now();\n\n // in case we need SIDX ranges\n // return early after calling load for\n // the SIDX box.\n if (levelDetails.needSidxRanges) {\n const sidxUrl = levelDetails.initSegment.url;\n this.load({\n url: sidxUrl,\n isSidxRequest: true,\n type,\n level,\n levelDetails,\n id,\n rangeStart: 0,\n rangeEnd: 2048,\n responseType: 'arraybuffer'\n });\n return;\n }\n\n // extend the context with the new levelDetails property\n context.levelDetails = levelDetails;\n\n this._handlePlaylistLoaded(response, stats, context, networkDetails);\n }\n\n _handleSidxRequest (response: LoaderResponse, context: PlaylistLoaderContext) {\n if (typeof response.data === 'string') {\n throw new Error('sidx request must be made with responseType of array buffer');\n }\n\n const sidxInfo = MP4Demuxer.parseSegmentIndex(new Uint8Array(response.data));\n // if provided fragment does not contain sidx, early return\n if (!sidxInfo) {\n return;\n }\n const sidxReferences = sidxInfo.references;\n const levelDetails = context.levelDetails;\n sidxReferences.forEach((segmentRef, index) => {\n const segRefInfo = segmentRef.info;\n if (!levelDetails) {\n return;\n }\n const frag = levelDetails.fragments[index];\n if (frag.byteRange.length === 0) {\n frag.setByteRange(String(1 + segRefInfo.end - segRefInfo.start) + '@' + String(segRefInfo.start));\n }\n });\n\n if (levelDetails) {\n levelDetails.initSegment.setByteRange(String(sidxInfo.moovEndOffset) + '@0');\n }\n }\n\n _handleManifestParsingError (response: LoaderResponse, context: PlaylistLoaderContext, reason: string, networkDetails: unknown) {\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.MANIFEST_PARSING_ERROR,\n fatal: true,\n url: response.url,\n reason,\n networkDetails\n });\n }\n\n _handleNetworkError (context: PlaylistLoaderContext, networkDetails: unknown, timeout: boolean = false, response: LoaderResponse | null = null) {\n logger.info(`A network error occured while loading a ${context.type}-type playlist`);\n\n let details;\n let fatal;\n\n const loader = this.getInternalLoader(context);\n\n switch (context.type) {\n case PlaylistContextType.MANIFEST:\n details = (timeout ? ErrorDetails.MANIFEST_LOAD_TIMEOUT : ErrorDetails.MANIFEST_LOAD_ERROR);\n fatal = true;\n break;\n case PlaylistContextType.LEVEL:\n details = (timeout ? ErrorDetails.LEVEL_LOAD_TIMEOUT : ErrorDetails.LEVEL_LOAD_ERROR);\n fatal = false;\n break;\n case PlaylistContextType.AUDIO_TRACK:\n details = (timeout ? ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT : ErrorDetails.AUDIO_TRACK_LOAD_ERROR);\n fatal = false;\n break;\n default:\n // details = ...?\n fatal = false;\n }\n\n if (loader) {\n loader.abort();\n this.resetInternalLoader(context.type);\n }\n\n // TODO(typescript-events): when error events are handled, type this\n let errorData: any = {\n type: ErrorTypes.NETWORK_ERROR,\n details,\n fatal,\n url: context.url,\n loader,\n context,\n networkDetails\n };\n\n if (response) {\n errorData.response = response;\n }\n\n this.hls.trigger(Event.ERROR, errorData);\n }\n\n _handlePlaylistLoaded (response: LoaderResponse, stats: LoaderStats, context: PlaylistLoaderContext, networkDetails: unknown) {\n const { type, level, id, levelDetails } = context;\n\n if (!levelDetails || !levelDetails.targetduration) {\n this._handleManifestParsingError(response, context, 'invalid target duration', networkDetails);\n return;\n }\n\n const canHaveLevels = PlaylistLoader.canHaveQualityLevels(context.type);\n if (canHaveLevels) {\n this.hls.trigger(Event.LEVEL_LOADED, {\n details: levelDetails,\n level: level || 0,\n id: id || 0,\n stats,\n networkDetails\n });\n } else {\n switch (type) {\n case PlaylistContextType.AUDIO_TRACK:\n this.hls.trigger(Event.AUDIO_TRACK_LOADED, {\n details: levelDetails,\n id,\n stats,\n networkDetails\n });\n break;\n case PlaylistContextType.SUBTITLE_TRACK:\n this.hls.trigger(Event.SUBTITLE_TRACK_LOADED, {\n details: levelDetails,\n id,\n stats,\n networkDetails\n });\n break;\n }\n }\n }\n}\n\nexport default PlaylistLoader;\n","/*\n * Fragment Loader\n*/\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\n\nclass FragmentLoader extends EventHandler {\n constructor (hls) {\n super(hls, Event.FRAG_LOADING);\n this.loaders = {};\n }\n\n destroy () {\n let loaders = this.loaders;\n for (let loaderName in loaders) {\n let loader = loaders[loaderName];\n if (loader) {\n loader.destroy();\n }\n }\n this.loaders = {};\n\n super.destroy();\n }\n\n onFragLoading (data) {\n const frag = data.frag,\n type = frag.type,\n loaders = this.loaders,\n config = this.hls.config,\n FragmentILoader = config.fLoader,\n DefaultILoader = config.loader;\n\n // reset fragment state\n frag.loaded = 0;\n\n let loader = loaders[type];\n if (loader) {\n logger.warn(`abort previous fragment loader for type: ${type}`);\n loader.abort();\n }\n\n loader = loaders[type] = frag.loader =\n config.fLoader ? new FragmentILoader(config) : new DefaultILoader(config);\n\n let loaderContext, loaderConfig, loaderCallbacks;\n\n loaderContext = { url: frag.url, frag: frag, responseType: 'arraybuffer', progressData: false };\n\n let start = frag.byteRangeStartOffset,\n end = frag.byteRangeEndOffset;\n\n if (Number.isFinite(start) && Number.isFinite(end)) {\n loaderContext.rangeStart = start;\n loaderContext.rangeEnd = end;\n }\n\n loaderConfig = {\n timeout: config.fragLoadingTimeOut,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: config.fragLoadingMaxRetryTimeout\n };\n\n loaderCallbacks = {\n onSuccess: this.loadsuccess.bind(this),\n onError: this.loaderror.bind(this),\n onTimeout: this.loadtimeout.bind(this),\n onProgress: this.loadprogress.bind(this)\n };\n\n loader.load(loaderContext, loaderConfig, loaderCallbacks);\n }\n\n loadsuccess (response, stats, context, networkDetails = null) {\n let payload = response.data, frag = context.frag;\n // detach fragment loader on load success\n frag.loader = undefined;\n this.loaders[frag.type] = undefined;\n this.hls.trigger(Event.FRAG_LOADED, { payload: payload, frag: frag, stats: stats, networkDetails: networkDetails });\n }\n\n loaderror (response, context, networkDetails = null) {\n const frag = context.frag;\n let loader = frag.loader;\n if (loader) {\n loader.abort();\n }\n\n this.loaders[frag.type] = undefined;\n this.hls.trigger(Event.ERROR, { type: ErrorTypes.NETWORK_ERROR, details: ErrorDetails.FRAG_LOAD_ERROR, fatal: false, frag: context.frag, response: response, networkDetails: networkDetails });\n }\n\n loadtimeout (stats, context, networkDetails = null) {\n const frag = context.frag;\n let loader = frag.loader;\n if (loader) {\n loader.abort();\n }\n\n this.loaders[frag.type] = undefined;\n this.hls.trigger(Event.ERROR, { type: ErrorTypes.NETWORK_ERROR, details: ErrorDetails.FRAG_LOAD_TIMEOUT, fatal: false, frag: context.frag, networkDetails: networkDetails });\n }\n\n // data will be used for progressive parsing\n loadprogress (stats, context, data, networkDetails = null) { // jshint ignore:line\n let frag = context.frag;\n frag.loaded = stats.loaded;\n this.hls.trigger(Event.FRAG_LOAD_PROGRESS, { frag: frag, stats: stats, networkDetails: networkDetails });\n }\n}\n\nexport default FragmentLoader;\n","/*\n * Decrypt key Loader\n*/\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport Hls from '../hls';\nimport Fragment from './fragment';\nimport { LoaderStats, LoaderResponse, LoaderContext, LoaderConfiguration, LoaderCallbacks } from '../types/loader';\n\ninterface OnKeyLoadingPayload {\n frag: Fragment\n}\n\ninterface KeyLoaderContext extends LoaderContext {\n frag: Fragment\n}\n\nclass KeyLoader extends EventHandler {\n public loaders = {};\n public decryptkey: Uint8Array | null = null;\n public decrypturl: string | null = null;\n\n constructor (hls: Hls) {\n super(hls, Event.KEY_LOADING);\n }\n\n destroy (): void {\n for (const loaderName in this.loaders) {\n let loader = this.loaders[loaderName];\n if (loader) {\n loader.destroy();\n }\n }\n this.loaders = {};\n\n super.destroy();\n }\n\n onKeyLoading (data: OnKeyLoadingPayload) {\n const { frag } = data;\n const type = frag.type;\n const loader = this.loaders[type];\n if (!frag.decryptdata) {\n logger.warn('Missing decryption data on fragment in onKeyLoading');\n return;\n }\n\n // Load the key if the uri is different from previous one, or if the decrypt key has not yet been retrieved\n const uri = frag.decryptdata.uri;\n if (uri !== this.decrypturl || this.decryptkey === null) {\n let config = this.hls.config;\n if (loader) {\n logger.warn(`abort previous key loader for type:${type}`);\n loader.abort();\n }\n if (!uri) {\n logger.warn('key uri is falsy');\n return;\n }\n\n frag.loader = this.loaders[type] = new config.loader(config);\n this.decrypturl = uri;\n this.decryptkey = null;\n\n const loaderContext: KeyLoaderContext = {\n url: uri,\n frag: frag,\n responseType: 'arraybuffer'\n };\n\n // maxRetry is 0 so that instead of retrying the same key on the same variant multiple times,\n // key-loader will trigger an error and rely on stream-controller to handle retry logic.\n // this will also align retry logic with fragment-loader\n const loaderConfig: LoaderConfiguration = {\n timeout: config.fragLoadingTimeOut,\n maxRetry: 0,\n retryDelay: config.fragLoadingRetryDelay,\n maxRetryDelay: config.fragLoadingMaxRetryTimeout\n };\n\n const loaderCallbacks: LoaderCallbacks<KeyLoaderContext> = {\n onSuccess: this.loadsuccess.bind(this),\n onError: this.loaderror.bind(this),\n onTimeout: this.loadtimeout.bind(this)\n };\n\n frag.loader.load(loaderContext, loaderConfig, loaderCallbacks);\n } else if (this.decryptkey) {\n // Return the key if it's already been loaded\n frag.decryptdata.key = this.decryptkey;\n this.hls.trigger(Event.KEY_LOADED, { frag: frag });\n }\n }\n\n loadsuccess (response: LoaderResponse, stats: LoaderStats, context: KeyLoaderContext) {\n let frag = context.frag;\n if (!frag.decryptdata) {\n logger.error('after key load, decryptdata unset');\n return;\n }\n this.decryptkey = frag.decryptdata.key = new Uint8Array(response.data as ArrayBuffer);\n\n // detach fragment loader on load success\n frag.loader = undefined;\n delete this.loaders[frag.type];\n this.hls.trigger(Event.KEY_LOADED, { frag: frag });\n }\n\n loaderror (response: LoaderResponse, context: KeyLoaderContext) {\n let frag = context.frag;\n let loader = frag.loader;\n if (loader) {\n loader.abort();\n }\n\n delete this.loaders[frag.type];\n this.hls.trigger(Event.ERROR, { type: ErrorTypes.NETWORK_ERROR, details: ErrorDetails.KEY_LOAD_ERROR, fatal: false, frag, response });\n }\n\n loadtimeout (stats: LoaderStats, context: KeyLoaderContext) {\n let frag = context.frag;\n let loader = frag.loader;\n if (loader) {\n loader.abort();\n }\n\n delete this.loaders[frag.type];\n this.hls.trigger(Event.ERROR, { type: ErrorTypes.NETWORK_ERROR, details: ErrorDetails.KEY_LOAD_TIMEOUT, fatal: false, frag });\n }\n}\n\nexport default KeyLoader;\n","import EventHandler from '../event-handler';\nimport Event from '../events';\n\nexport const FragmentState = {\n NOT_LOADED: 'NOT_LOADED',\n APPENDING: 'APPENDING',\n PARTIAL: 'PARTIAL',\n OK: 'OK'\n};\n\nexport class FragmentTracker extends EventHandler {\n constructor (hls) {\n super(hls,\n Event.BUFFER_APPENDED,\n Event.FRAG_BUFFERED,\n Event.FRAG_LOADED\n );\n\n this.bufferPadding = 0.2;\n\n this.fragments = Object.create(null);\n this.timeRanges = Object.create(null);\n\n this.config = hls.config;\n }\n\n destroy () {\n this.fragments = Object.create(null);\n this.timeRanges = Object.create(null);\n this.config = null;\n EventHandler.prototype.destroy.call(this);\n super.destroy();\n }\n\n /**\n * Return a Fragment that match the position and levelType.\n * If not found any Fragment, return null\n * @param {number} position\n * @param {LevelType} levelType\n * @returns {Fragment|null}\n */\n getBufferedFrag (position, levelType) {\n const fragments = this.fragments;\n const bufferedFrags = Object.keys(fragments).filter(key => {\n const fragmentEntity = fragments[key];\n if (fragmentEntity.body.type !== levelType) {\n return false;\n }\n\n if (!fragmentEntity.buffered) {\n return false;\n }\n\n const frag = fragmentEntity.body;\n return frag.startPTS <= position && position <= frag.endPTS;\n });\n if (bufferedFrags.length === 0) {\n return null;\n } else {\n // https://github.com/video-dev/hls.js/pull/1545#discussion_r166229566\n const bufferedFragKey = bufferedFrags.pop();\n return fragments[bufferedFragKey].body;\n }\n }\n\n /**\n * Partial fragments effected by coded frame eviction will be removed\n * The browser will unload parts of the buffer to free up memory for new buffer data\n * Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)\n * @param {String} elementaryStream The elementaryStream of media this is (eg. video/audio)\n * @param {TimeRanges} timeRange TimeRange object from a sourceBuffer\n */\n detectEvictedFragments (elementaryStream, timeRange) {\n // Check if any flagged fragments have been unloaded\n Object.keys(this.fragments).forEach(key => {\n const fragmentEntity = this.fragments[key];\n if (!fragmentEntity || !fragmentEntity.buffered) {\n return;\n }\n const esData = fragmentEntity.range[elementaryStream];\n if (!esData) {\n return;\n }\n const fragmentTimes = esData.time;\n for (let i = 0; i < fragmentTimes.length; i++) {\n const time = fragmentTimes[i];\n if (!this.isTimeBuffered(time.startPTS, time.endPTS, timeRange)) {\n // Unregister partial fragment as it needs to load again to be reused\n this.removeFragment(fragmentEntity.body);\n break;\n }\n }\n });\n }\n\n /**\n * Checks if the fragment passed in is loaded in the buffer properly\n * Partially loaded fragments will be registered as a partial fragment\n * @param {Object} fragment Check the fragment against all sourceBuffers loaded\n */\n detectPartialFragments (fragment) {\n let fragKey = this.getFragmentKey(fragment);\n let fragmentEntity = this.fragments[fragKey];\n if (fragmentEntity) {\n fragmentEntity.buffered = true;\n\n Object.keys(this.timeRanges).forEach(elementaryStream => {\n if (fragment.hasElementaryStream(elementaryStream)) {\n let timeRange = this.timeRanges[elementaryStream];\n // Check for malformed fragments\n // Gaps need to be calculated for each elementaryStream\n fragmentEntity.range[elementaryStream] = this.getBufferedTimes(fragment.startPTS, fragment.endPTS, timeRange);\n }\n });\n }\n }\n\n getBufferedTimes (startPTS, endPTS, timeRange) {\n let fragmentTimes = [];\n let startTime, endTime;\n let fragmentPartial = false;\n for (let i = 0; i < timeRange.length; i++) {\n startTime = timeRange.start(i) - this.bufferPadding;\n endTime = timeRange.end(i) + this.bufferPadding;\n if (startPTS >= startTime && endPTS <= endTime) {\n // Fragment is entirely contained in buffer\n // No need to check the other timeRange times since it's completely playable\n fragmentTimes.push({\n startPTS: Math.max(startPTS, timeRange.start(i)),\n endPTS: Math.min(endPTS, timeRange.end(i))\n });\n break;\n } else if (startPTS < endTime && endPTS > startTime) {\n // Check for intersection with buffer\n // Get playable sections of the fragment\n fragmentTimes.push({\n startPTS: Math.max(startPTS, timeRange.start(i)),\n endPTS: Math.min(endPTS, timeRange.end(i))\n });\n fragmentPartial = true;\n } else if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n break;\n }\n }\n\n return {\n time: fragmentTimes,\n partial: fragmentPartial\n };\n }\n\n getFragmentKey (fragment) {\n return `${fragment.type}_${fragment.level}_${fragment.urlId}_${fragment.sn}`;\n }\n\n /**\n * Gets the partial fragment for a certain time\n * @param {Number} time\n * @returns {Object} fragment Returns a partial fragment at a time or null if there is no partial fragment\n */\n getPartialFragment (time) {\n let timePadding, startTime, endTime;\n let bestFragment = null;\n let bestOverlap = 0;\n Object.keys(this.fragments).forEach(key => {\n const fragmentEntity = this.fragments[key];\n if (this.isPartial(fragmentEntity)) {\n startTime = fragmentEntity.body.startPTS - this.bufferPadding;\n endTime = fragmentEntity.body.endPTS + this.bufferPadding;\n if (time >= startTime && time <= endTime) {\n // Use the fragment that has the most padding from start and end time\n timePadding = Math.min(time - startTime, endTime - time);\n if (bestOverlap <= timePadding) {\n bestFragment = fragmentEntity.body;\n bestOverlap = timePadding;\n }\n }\n }\n });\n return bestFragment;\n }\n\n /**\n * @param {Object} fragment The fragment to check\n * @returns {String} Returns the fragment state when a fragment never loaded or if it partially loaded\n */\n getState (fragment) {\n let fragKey = this.getFragmentKey(fragment);\n let fragmentEntity = this.fragments[fragKey];\n let state = FragmentState.NOT_LOADED;\n\n if (fragmentEntity !== undefined) {\n if (!fragmentEntity.buffered) {\n state = FragmentState.APPENDING;\n } else if (this.isPartial(fragmentEntity) === true) {\n state = FragmentState.PARTIAL;\n } else {\n state = FragmentState.OK;\n }\n }\n\n return state;\n }\n\n isPartial (fragmentEntity) {\n return fragmentEntity.buffered === true &&\n ((fragmentEntity.range.video !== undefined && fragmentEntity.range.video.partial === true) ||\n (fragmentEntity.range.audio !== undefined && fragmentEntity.range.audio.partial === true));\n }\n\n isTimeBuffered (startPTS, endPTS, timeRange) {\n let startTime, endTime;\n for (let i = 0; i < timeRange.length; i++) {\n startTime = timeRange.start(i) - this.bufferPadding;\n endTime = timeRange.end(i) + this.bufferPadding;\n if (startPTS >= startTime && endPTS <= endTime) {\n return true;\n }\n\n if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n return false;\n }\n }\n\n return false;\n }\n\n /**\n * Fires when a fragment loading is completed\n */\n onFragLoaded (e) {\n const fragment = e.frag;\n // don't track initsegment (for which sn is not a number)\n // don't track frags used for bitrateTest, they're irrelevant.\n if (!Number.isFinite(fragment.sn) || fragment.bitrateTest) {\n return;\n }\n\n this.fragments[this.getFragmentKey(fragment)] = {\n body: fragment,\n range: Object.create(null),\n buffered: false\n };\n }\n\n /**\n * Fires when the buffer is updated\n */\n onBufferAppended (e) {\n // Store the latest timeRanges loaded in the buffer\n this.timeRanges = e.timeRanges;\n Object.keys(this.timeRanges).forEach(elementaryStream => {\n let timeRange = this.timeRanges[elementaryStream];\n this.detectEvictedFragments(elementaryStream, timeRange);\n });\n }\n\n /**\n * Fires after a fragment has been loaded into the source buffer\n */\n onFragBuffered (e) {\n this.detectPartialFragments(e.frag);\n }\n\n /**\n * Return true if fragment tracker has the fragment.\n * @param {Object} fragment\n * @returns {boolean}\n */\n hasFragment (fragment) {\n const fragKey = this.getFragmentKey(fragment);\n return this.fragments[fragKey] !== undefined;\n }\n\n /**\n * Remove a fragment from fragment tracker until it is loaded again\n * @param {Object} fragment The fragment to remove\n */\n removeFragment (fragment) {\n let fragKey = this.getFragmentKey(fragment);\n delete this.fragments[fragKey];\n }\n\n /**\n * Remove all fragments from fragment tracker.\n */\n removeAllFragments () {\n this.fragments = Object.create(null);\n }\n}\n","type BinarySearchComparison < T > = (candidate: T) => -1 | 0 | 1;\n\nconst BinarySearch = {\n\n /**\n * Searches for an item in an array which matches a certain condition.\n * This requires the condition to only match one item in the array,\n * and for the array to be ordered.\n *\n * @param {Array<T>} list The array to search.\n * @param {BinarySearchComparison<T>} comparisonFn\n * Called and provided a candidate item as the first argument.\n * Should return:\n * > -1 if the item should be located at a lower index than the provided item.\n * > 1 if the item should be located at a higher index than the provided item.\n * > 0 if the item is the item you're looking for.\n *\n * @return {T | null} The object if it is found or null otherwise.\n */\n search: function<T> (list: T[], comparisonFn: BinarySearchComparison<T>): T | null {\n let minIndex: number = 0;\n let maxIndex: number = list.length - 1;\n let currentIndex: number | null = null;\n let currentElement: T | null = null;\n\n while (minIndex <= maxIndex) {\n currentIndex = (minIndex + maxIndex) / 2 | 0;\n currentElement = list[currentIndex];\n\n let comparisonResult = comparisonFn(currentElement);\n if (comparisonResult > 0) {\n minIndex = currentIndex + 1;\n } else if (comparisonResult < 0) {\n maxIndex = currentIndex - 1;\n } else {\n return currentElement;\n }\n }\n\n return null;\n }\n};\n\nexport default BinarySearch;\n","/**\n * @module BufferHelper\n *\n * Providing methods dealing with buffer length retrieval for example.\n *\n * In general, a helper around HTML5 MediaElement TimeRanges gathered from `buffered` property.\n *\n * Also @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered\n*/\n\ntype BufferTimeRange = {\n start: number\n end: number\n};\n\ntype Bufferable = {\n buffered: TimeRanges\n};\n\nexport class BufferHelper {\n /**\n * Return true if `media`'s buffered include `position`\n * @param {Bufferable} media\n * @param {number} position\n * @returns {boolean}\n */\n static isBuffered (media: Bufferable, position: number): boolean {\n try {\n if (media) {\n let buffered = media.buffered;\n for (let i = 0; i < buffered.length; i++) {\n if (position >= buffered.start(i) && position <= buffered.end(i)) {\n return true;\n }\n }\n }\n } catch (error) {\n // this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n return false;\n }\n\n static bufferInfo (\n media: Bufferable,\n pos: number,\n maxHoleDuration: number\n ): {\n len: number,\n start: number,\n end: number,\n nextStart?: number,\n } {\n try {\n if (media) {\n let vbuffered = media.buffered;\n let buffered: BufferTimeRange[] = [];\n let i: number;\n for (i = 0; i < vbuffered.length; i++) {\n buffered.push({ start: vbuffered.start(i), end: vbuffered.end(i) });\n }\n\n return this.bufferedInfo(buffered, pos, maxHoleDuration);\n }\n } catch (error) {\n // this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n return { len: 0, start: pos, end: pos, nextStart: undefined };\n }\n\n static bufferedInfo (\n buffered: BufferTimeRange[],\n pos: number,\n maxHoleDuration: number\n ): {\n len: number,\n start: number,\n end: number,\n nextStart?: number,\n } {\n // sort on buffer.start/smaller end (IE does not always return sorted buffered range)\n buffered.sort(function (a, b) {\n let diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n\n let buffered2: BufferTimeRange[] = [];\n if (maxHoleDuration) {\n // there might be some small holes between buffer time range\n // consider that holes smaller than maxHoleDuration are irrelevant and build another\n // buffer time range representations that discards those holes\n for (let i = 0; i < buffered.length; i++) {\n let buf2len = buffered2.length;\n if (buf2len) {\n let buf2end = buffered2[buf2len - 1].end;\n // if small hole (value between 0 or maxHoleDuration ) or overlapping (negative)\n if ((buffered[i].start - buf2end) < maxHoleDuration) {\n // merge overlapping time ranges\n // update lastRange.end only if smaller than item.end\n // e.g. [ 1, 15] with [ 2,8] => [ 1,15] (no need to modify lastRange.end)\n // whereas [ 1, 8] with [ 2,15] => [ 1,15] ( lastRange should switch from [1,8] to [1,15])\n if (buffered[i].end > buf2end) {\n buffered2[buf2len - 1].end = buffered[i].end;\n }\n } else {\n // big hole\n buffered2.push(buffered[i]);\n }\n } else {\n // first value\n buffered2.push(buffered[i]);\n }\n }\n } else {\n buffered2 = buffered;\n }\n\n let bufferLen = 0;\n\n // bufferStartNext can possibly be undefined based on the conditional logic below\n let bufferStartNext: number | undefined;\n\n // bufferStart and bufferEnd are buffer boundaries around current video position\n let bufferStart: number = pos;\n let bufferEnd: number = pos;\n for (let i = 0; i < buffered2.length; i++) {\n let start = buffered2[i].start,\n end = buffered2[i].end;\n // logger.log('buf start/end:' + buffered.start(i) + '/' + buffered.end(i));\n if ((pos + maxHoleDuration) >= start && pos < end) {\n // play position is inside this buffer TimeRange, retrieve end of buffer position and buffer length\n bufferStart = start;\n bufferEnd = end;\n bufferLen = bufferEnd - pos;\n } else if ((pos + maxHoleDuration) < start) {\n bufferStartNext = start;\n break;\n }\n }\n return { len: bufferLen, start: bufferStart, end: bufferEnd, nextStart: bufferStartNext };\n }\n}\n","/**\n * MediaSource helper\n */\n\nexport function getMediaSource (): typeof MediaSource | undefined {\n return (window as any).MediaSource || (window as any).WebKitMediaSource;\n}\n","import { EventEmitter } from 'eventemitter3';\n\n/**\n * Simple adapter sub-class of Nodejs-like EventEmitter.\n */\nexport class Observer extends EventEmitter {\n /**\n * We simply want to pass along the event-name itself\n * in every call to a handler, which is the purpose of our `trigger` method\n * extending the standard API.\n */\n trigger (event: string, ...data: Array<any>): void {\n this.emit(event, event, ...data);\n }\n}\n","import { EventEmitter } from 'eventemitter3';\nimport * as work from 'webworkify-webpack';\n\nimport Event from '../events';\nimport DemuxerInline from '../demux/demuxer-inline';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { getMediaSource } from '../utils/mediasource-helper';\nimport { getSelfScope } from '../utils/get-self-scope';\n\nimport { Observer } from '../observer';\n\n// see https://stackoverflow.com/a/11237259/589493\nconst global = getSelfScope(); // safeguard for code that might run both on worker and main thread\nconst MediaSource = getMediaSource() || { isTypeSupported: () => false };\n\nclass Demuxer {\n constructor (hls, id) {\n this.hls = hls;\n this.id = id;\n\n const observer = this.observer = new Observer();\n const config = hls.config;\n\n const forwardMessage = (ev, data) => {\n data = data || {};\n data.frag = this.frag;\n data.id = this.id;\n hls.trigger(ev, data);\n };\n\n // forward events to main thread\n observer.on(Event.FRAG_DECRYPTED, forwardMessage);\n observer.on(Event.FRAG_PARSING_INIT_SEGMENT, forwardMessage);\n observer.on(Event.FRAG_PARSING_DATA, forwardMessage);\n observer.on(Event.FRAG_PARSED, forwardMessage);\n observer.on(Event.ERROR, forwardMessage);\n observer.on(Event.FRAG_PARSING_METADATA, forwardMessage);\n observer.on(Event.FRAG_PARSING_USERDATA, forwardMessage);\n observer.on(Event.INIT_PTS_FOUND, forwardMessage);\n\n const typeSupported = {\n mp4: MediaSource.isTypeSupported('video/mp4'),\n mpeg: MediaSource.isTypeSupported('audio/mpeg'),\n mp3: MediaSource.isTypeSupported('audio/mp4; codecs=\"mp3\"')\n };\n // navigator.vendor is not always available in Web Worker\n // refer to https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/navigator\n const vendor = navigator.vendor;\n if (config.enableWorker && (typeof (Worker) !== 'undefined')) {\n logger.log('demuxing in webworker');\n let w;\n try {\n w = this.w = work(require.resolve('../demux/demuxer-worker.js'));\n this.onwmsg = this.onWorkerMessage.bind(this);\n w.addEventListener('message', this.onwmsg);\n w.onerror = function (event) {\n hls.trigger(Event.ERROR, { type: ErrorTypes.OTHER_ERROR, details: ErrorDetails.INTERNAL_EXCEPTION, fatal: true, event: 'demuxerWorker', err: { message: event.message + ' (' + event.filename + ':' + event.lineno + ')' } });\n };\n w.postMessage({ cmd: 'init', typeSupported: typeSupported, vendor: vendor, id: id, config: JSON.stringify(config) });\n } catch (err) {\n logger.warn('Error in worker:', err);\n logger.error('Error while initializing DemuxerWorker, fallback on DemuxerInline');\n if (w) {\n // revoke the Object URL that was used to create demuxer worker, so as not to leak it\n global.URL.revokeObjectURL(w.objectURL);\n }\n this.demuxer = new DemuxerInline(observer, typeSupported, config, vendor);\n this.w = undefined;\n }\n } else {\n this.demuxer = new DemuxerInline(observer, typeSupported, config, vendor);\n }\n }\n\n destroy () {\n let w = this.w;\n if (w) {\n w.removeEventListener('message', this.onwmsg);\n w.terminate();\n this.w = null;\n } else {\n let demuxer = this.demuxer;\n if (demuxer) {\n demuxer.destroy();\n this.demuxer = null;\n }\n }\n const observer = this.observer;\n if (observer) {\n observer.removeAllListeners();\n this.observer = null;\n }\n }\n\n push (data, initSegment, audioCodec, videoCodec, frag, duration, accurateTimeOffset, defaultInitPTS) {\n const w = this.w;\n const timeOffset = Number.isFinite(frag.startPTS) ? frag.startPTS : frag.start;\n const decryptdata = frag.decryptdata;\n const lastFrag = this.frag;\n const discontinuity = !(lastFrag && (frag.cc === lastFrag.cc));\n const trackSwitch = !(lastFrag && (frag.level === lastFrag.level));\n const nextSN = lastFrag && (frag.sn === (lastFrag.sn + 1));\n const contiguous = !trackSwitch && nextSN;\n if (discontinuity) {\n logger.log(`${this.id}:discontinuity detected`);\n }\n\n if (trackSwitch) {\n logger.log(`${this.id}:switch detected`);\n }\n\n this.frag = frag;\n if (w) {\n // post fragment payload as transferable objects for ArrayBuffer (no copy)\n w.postMessage({ cmd: 'demux', data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS }, data instanceof ArrayBuffer ? [data] : []);\n } else {\n let demuxer = this.demuxer;\n if (demuxer) {\n demuxer.push(data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS);\n }\n }\n }\n\n onWorkerMessage (ev) {\n let data = ev.data,\n hls = this.hls;\n switch (data.event) {\n case 'init':\n // revoke the Object URL that was used to create demuxer worker, so as not to leak it\n global.URL.revokeObjectURL(this.w.objectURL);\n break;\n // special case for FRAG_PARSING_DATA: data1 and data2 are transferable objects\n case Event.FRAG_PARSING_DATA:\n data.data.data1 = new Uint8Array(data.data1);\n if (data.data2) {\n data.data.data2 = new Uint8Array(data.data2);\n }\n\n /* falls through */\n default:\n data.data = data.data || {};\n data.data.frag = this.frag;\n data.data.id = this.id;\n hls.trigger(data.event, data.data);\n break;\n }\n }\n}\n\nexport default Demuxer;\n","/**\n * @module LevelHelper\n *\n * Providing methods dealing with playlist sliding and drift\n *\n * TODO: Create an actual `Level` class/model that deals with all this logic in an object-oriented-manner.\n *\n * */\n\nimport { logger } from '../utils/logger';\n\nexport function addGroupId (level, type, id) {\n switch (type) {\n case 'audio':\n if (!level.audioGroupIds) {\n level.audioGroupIds = [];\n }\n level.audioGroupIds.push(id);\n break;\n case 'text':\n if (!level.textGroupIds) {\n level.textGroupIds = [];\n }\n level.textGroupIds.push(id);\n break;\n }\n}\n\nexport function updatePTS (fragments, fromIdx, toIdx) {\n let fragFrom = fragments[fromIdx], fragTo = fragments[toIdx], fragToPTS = fragTo.startPTS;\n // if we know startPTS[toIdx]\n if (Number.isFinite(fragToPTS)) {\n // update fragment duration.\n // it helps to fix drifts between playlist reported duration and fragment real duration\n if (toIdx > fromIdx) {\n fragFrom.duration = fragToPTS - fragFrom.start;\n if (fragFrom.duration < 0) {\n logger.warn(`negative duration computed for frag ${fragFrom.sn},level ${fragFrom.level}, there should be some duration drift between playlist and fragment!`);\n }\n } else {\n fragTo.duration = fragFrom.start - fragToPTS;\n if (fragTo.duration < 0) {\n logger.warn(`negative duration computed for frag ${fragTo.sn},level ${fragTo.level}, there should be some duration drift between playlist and fragment!`);\n }\n }\n } else {\n // we dont know startPTS[toIdx]\n if (toIdx > fromIdx) {\n const contiguous = fragFrom.cc === fragTo.cc;\n fragTo.start = fragFrom.start + ((contiguous && fragFrom.minEndPTS) ? fragFrom.minEndPTS - fragFrom.start : fragFrom.duration);\n } else {\n fragTo.start = Math.max(fragFrom.start - fragTo.duration, 0);\n }\n }\n}\n\nexport function updateFragPTSDTS (details, frag, startPTS, endPTS, startDTS, endDTS) {\n // update frag PTS/DTS\n let maxStartPTS = startPTS;\n let minEndPTS = endPTS;\n if (Number.isFinite(frag.startPTS)) {\n // delta PTS between audio and video\n let deltaPTS = Math.abs(frag.startPTS - startPTS);\n if (!Number.isFinite(frag.deltaPTS)) {\n frag.deltaPTS = deltaPTS;\n } else {\n frag.deltaPTS = Math.max(deltaPTS, frag.deltaPTS);\n }\n\n maxStartPTS = Math.max(startPTS, frag.startPTS);\n startPTS = Math.min(startPTS, frag.startPTS);\n minEndPTS = Math.min(endPTS, frag.endPTS);\n endPTS = Math.max(endPTS, frag.endPTS);\n startDTS = Math.min(startDTS, frag.startDTS);\n endDTS = Math.max(endDTS, frag.endDTS);\n }\n\n const drift = startPTS - frag.start;\n frag.start = frag.startPTS = startPTS;\n frag.maxStartPTS = maxStartPTS;\n frag.endPTS = endPTS;\n frag.minEndPTS = minEndPTS;\n frag.startDTS = startDTS;\n frag.endDTS = endDTS;\n frag.duration = endPTS - startPTS;\n\n const sn = frag.sn;\n // exit if sn out of range\n if (!details || sn < details.startSN || sn > details.endSN) {\n return 0;\n }\n\n let fragIdx, fragments, i;\n fragIdx = sn - details.startSN;\n fragments = details.fragments;\n // update frag reference in fragments array\n // rationale is that fragments array might not contain this frag object.\n // this will happen if playlist has been refreshed between frag loading and call to updateFragPTSDTS()\n // if we don't update frag, we won't be able to propagate PTS info on the playlist\n // resulting in invalid sliding computation\n fragments[fragIdx] = frag;\n // adjust fragment PTS/duration from seqnum-1 to frag 0\n for (i = fragIdx; i > 0; i--) {\n updatePTS(fragments, i, i - 1);\n }\n\n // adjust fragment PTS/duration from seqnum to last frag\n for (i = fragIdx; i < fragments.length - 1; i++) {\n updatePTS(fragments, i, i + 1);\n }\n\n details.PTSKnown = true;\n return drift;\n}\n\nexport function mergeDetails (oldDetails, newDetails) {\n // potentially retrieve cached initsegment\n if (newDetails.initSegment && oldDetails.initSegment) {\n newDetails.initSegment = oldDetails.initSegment;\n }\n\n // check if old/new playlists have fragments in common\n // loop through overlapping SN and update startPTS , cc, and duration if any found\n let ccOffset = 0;\n let PTSFrag;\n mapFragmentIntersection(oldDetails, newDetails, (oldFrag, newFrag) => {\n ccOffset = oldFrag.cc - newFrag.cc;\n if (Number.isFinite(oldFrag.startPTS)) {\n newFrag.start = newFrag.startPTS = oldFrag.startPTS;\n newFrag.endPTS = oldFrag.endPTS;\n newFrag.duration = oldFrag.duration;\n newFrag.backtracked = oldFrag.backtracked;\n newFrag.dropped = oldFrag.dropped;\n PTSFrag = newFrag;\n }\n // PTS is known when there are overlapping segments\n newDetails.PTSKnown = true;\n });\n\n if (!newDetails.PTSKnown) {\n return;\n }\n\n if (ccOffset) {\n logger.log('discontinuity sliding from playlist, take drift into account');\n const newFragments = newDetails.fragments;\n for (let i = 0; i < newFragments.length; i++) {\n newFragments[i].cc += ccOffset;\n }\n }\n\n // if at least one fragment contains PTS info, recompute PTS information for all fragments\n if (PTSFrag) {\n updateFragPTSDTS(newDetails, PTSFrag, PTSFrag.startPTS, PTSFrag.endPTS, PTSFrag.startDTS, PTSFrag.endDTS);\n } else {\n // ensure that delta is within oldFragments range\n // also adjust sliding in case delta is 0 (we could have old=[50-60] and new=old=[50-61])\n // in that case we also need to adjust start offset of all fragments\n adjustSliding(oldDetails, newDetails);\n }\n // if we are here, it means we have fragments overlapping between\n // old and new level. reliable PTS info is thus relying on old level\n newDetails.PTSKnown = oldDetails.PTSKnown;\n}\n\nexport function mergeSubtitlePlaylists (oldPlaylist, newPlaylist, referenceStart = 0) {\n let lastIndex = -1;\n mapFragmentIntersection(oldPlaylist, newPlaylist, (oldFrag, newFrag, index) => {\n newFrag.start = oldFrag.start;\n lastIndex = index;\n });\n\n const frags = newPlaylist.fragments;\n if (lastIndex < 0) {\n frags.forEach(frag => {\n frag.start += referenceStart;\n });\n return;\n }\n\n for (let i = lastIndex + 1; i < frags.length; i++) {\n frags[i].start = (frags[i - 1].start + frags[i - 1].duration);\n }\n}\n\nexport function mapFragmentIntersection (oldPlaylist, newPlaylist, intersectionFn) {\n if (!oldPlaylist || !newPlaylist) {\n return;\n }\n\n const start = Math.max(oldPlaylist.startSN, newPlaylist.startSN) - newPlaylist.startSN;\n const end = Math.min(oldPlaylist.endSN, newPlaylist.endSN) - newPlaylist.startSN;\n const delta = newPlaylist.startSN - oldPlaylist.startSN;\n\n for (let i = start; i <= end; i++) {\n const oldFrag = oldPlaylist.fragments[delta + i];\n const newFrag = newPlaylist.fragments[i];\n if (!oldFrag || !newFrag) {\n break;\n }\n intersectionFn(oldFrag, newFrag, i);\n }\n}\n\nexport function adjustSliding (oldPlaylist, newPlaylist) {\n const delta = newPlaylist.startSN - oldPlaylist.startSN;\n const oldFragments = oldPlaylist.fragments;\n const newFragments = newPlaylist.fragments;\n\n if (delta < 0 || delta > oldFragments.length) {\n return;\n }\n for (let i = 0; i < newFragments.length; i++) {\n newFragments[i].start += oldFragments[delta].start;\n }\n}\n\nexport function computeReloadInterval (currentPlaylist, newPlaylist, lastRequestTime) {\n let reloadInterval = 1000 * (newPlaylist.averagetargetduration ? newPlaylist.averagetargetduration : newPlaylist.targetduration);\n const minReloadInterval = reloadInterval / 2;\n if (currentPlaylist && newPlaylist.endSN === currentPlaylist.endSN) {\n // follow HLS Spec, If the client reloads a Playlist file and finds that it has not\n // changed then it MUST wait for a period of one-half the target\n // duration before retrying.\n reloadInterval = minReloadInterval;\n }\n\n if (lastRequestTime) {\n reloadInterval = Math.max(minReloadInterval, reloadInterval - (window.performance.now() - lastRequestTime));\n }\n // in any case, don't reload more than half of target duration\n return Math.round(reloadInterval);\n}\n","/**\n * TimeRanges to string helper\n */\n\nconst TimeRanges = {\n toString: function (r: TimeRanges) {\n let log = '';\n let len = r.length;\n for (let i = 0; i < len; i++) {\n log += '[' + r.start(i).toFixed(3) + ',' + r.end(i).toFixed(3) + ']';\n }\n\n return log;\n }\n};\n\nexport default TimeRanges;\n","import BinarySearch from './binary-search';\nimport { logger } from '../utils/logger';\n\nexport function findFirstFragWithCC (fragments, cc) {\n let firstFrag = null;\n\n for (let i = 0; i < fragments.length; i += 1) {\n const currentFrag = fragments[i];\n if (currentFrag && currentFrag.cc === cc) {\n firstFrag = currentFrag;\n break;\n }\n }\n\n return firstFrag;\n}\n\nexport function findFragWithCC (fragments, CC) {\n return BinarySearch.search(fragments, (candidate) => {\n if (candidate.cc < CC) {\n return 1;\n } else if (candidate.cc > CC) {\n return -1;\n } else {\n return 0;\n }\n });\n}\n\nexport function shouldAlignOnDiscontinuities (lastFrag, lastLevel, details) {\n let shouldAlign = false;\n if (lastLevel && lastLevel.details && details) {\n if (details.endCC > details.startCC || (lastFrag && lastFrag.cc < details.startCC)) {\n shouldAlign = true;\n }\n }\n return shouldAlign;\n}\n\n// Find the first frag in the previous level which matches the CC of the first frag of the new level\nexport function findDiscontinuousReferenceFrag (prevDetails, curDetails) {\n const prevFrags = prevDetails.fragments;\n const curFrags = curDetails.fragments;\n\n if (!curFrags.length || !prevFrags.length) {\n logger.log('No fragments to align');\n return;\n }\n\n const prevStartFrag = findFirstFragWithCC(prevFrags, curFrags[0].cc);\n\n if (!prevStartFrag || (prevStartFrag && !prevStartFrag.startPTS)) {\n logger.log('No frag in previous level to align on');\n return;\n }\n\n return prevStartFrag;\n}\n\nexport function adjustPts (sliding, details) {\n details.fragments.forEach((frag) => {\n if (frag) {\n let start = frag.start + sliding;\n frag.start = frag.startPTS = start;\n frag.endPTS = start + frag.duration;\n }\n });\n details.PTSKnown = true;\n}\n\n/**\n * Using the parameters of the last level, this function computes PTS' of the new fragments so that they form a\n * contiguous stream with the last fragments.\n * The PTS of a fragment lets Hls.js know where it fits into a stream - by knowing every PTS, we know which fragment to\n * download at any given time. PTS is normally computed when the fragment is demuxed, so taking this step saves us time\n * and an extra download.\n * @param lastFrag\n * @param lastLevel\n * @param details\n */\nexport function alignStream (lastFrag, lastLevel, details) {\n alignDiscontinuities(lastFrag, details, lastLevel);\n if (!details.PTSKnown && lastLevel) {\n // If the PTS wasn't figured out via discontinuity sequence that means there was no CC increase within the level.\n // Aligning via Program Date Time should therefore be reliable, since PDT should be the same within the same\n // discontinuity sequence.\n alignPDT(details, lastLevel.details);\n }\n}\n\n/**\n * Computes the PTS if a new level's fragments using the PTS of a fragment in the last level which shares the same\n * discontinuity sequence.\n * @param lastLevel - The details of the last loaded level\n * @param details - The details of the new level\n */\nexport function alignDiscontinuities (lastFrag, details, lastLevel) {\n if (shouldAlignOnDiscontinuities(lastFrag, lastLevel, details)) {\n const referenceFrag = findDiscontinuousReferenceFrag(lastLevel.details, details);\n if (referenceFrag) {\n logger.log('Adjusting PTS using last level due to CC increase within current level');\n adjustPts(referenceFrag.start, details);\n }\n }\n}\n\n/**\n * Computes the PTS of a new level's fragments using the difference in Program Date Time from the last level.\n * @param details - The details of the new level\n * @param lastDetails - The details of the last loaded level\n */\nexport function alignPDT (details, lastDetails) {\n if (lastDetails && lastDetails.fragments.length) {\n if (!details.hasProgramDateTime || !lastDetails.hasProgramDateTime) {\n return;\n }\n // if last level sliding is 1000 and its first frag PROGRAM-DATE-TIME is 2017-08-20 1:10:00 AM\n // and if new details first frag PROGRAM DATE-TIME is 2017-08-20 1:10:08 AM\n // then we can deduce that playlist B sliding is 1000+8 = 1008s\n let lastPDT = lastDetails.fragments[0].programDateTime;\n let newPDT = details.fragments[0].programDateTime;\n // date diff is in ms. frag.start is in seconds\n let sliding = (newPDT - lastPDT) / 1000 + lastDetails.fragments[0].start;\n if (Number.isFinite(sliding)) {\n logger.log(`adjusting PTS using programDateTime delta, sliding:${sliding.toFixed(3)}`);\n adjustPts(sliding, details);\n }\n }\n}\n","import BinarySearch from '../utils/binary-search';\nimport Fragment from '../loader/fragment';\n\n/**\n * Returns first fragment whose endPdt value exceeds the given PDT.\n * @param {Array<Fragment>} fragments - The array of candidate fragments\n * @param {number|null} [PDTValue = null] - The PDT value which must be exceeded\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns {*|null} fragment - The best matching fragment\n */\nexport function findFragmentByPDT (fragments: Array<Fragment>, PDTValue: number | null, maxFragLookUpTolerance: number): Fragment | null {\n if (PDTValue === null || !Array.isArray(fragments) || !fragments.length || !Number.isFinite(PDTValue)) {\n return null;\n }\n\n // if less than start\n const startPDT = fragments[0].programDateTime;\n if (PDTValue < (startPDT || 0)) {\n return null;\n }\n\n const endPDT = fragments[fragments.length - 1].endProgramDateTime;\n if (PDTValue >= (endPDT || 0)) {\n return null;\n }\n\n maxFragLookUpTolerance = maxFragLookUpTolerance || 0;\n for (let seg = 0; seg < fragments.length; ++seg) {\n let frag = fragments[seg];\n if (pdtWithinToleranceTest(PDTValue, maxFragLookUpTolerance, frag)) {\n return frag;\n }\n }\n\n return null;\n}\n\n/**\n * Finds a fragment based on the SN of the previous fragment; or based on the needs of the current buffer.\n * This method compensates for small buffer gaps by applying a tolerance to the start of any candidate fragment, thus\n * breaking any traps which would cause the same fragment to be continuously selected within a small range.\n * @param {*} fragPrevious - The last frag successfully appended\n * @param {Array<Fragment>} fragments - The array of candidate fragments\n * @param {number} [bufferEnd = 0] - The end of the contiguous buffered range the playhead is currently within\n * @param {number} maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns {*} foundFrag - The best matching fragment\n */\nexport function findFragmentByPTS (fragPrevious: Fragment, fragments: Array<Fragment>, bufferEnd: number = 0, maxFragLookUpTolerance: number = 0): Fragment | null {\n let fragNext: Fragment | null = null;\n if (fragPrevious) {\n fragNext = fragments[fragPrevious.sn as number - (fragments[0].sn as number) + 1];\n } else if (bufferEnd === 0 && fragments[0].start === 0) {\n fragNext = fragments[0];\n }\n // Prefer the next fragment if it's within tolerance\n if (fragNext && fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, fragNext) === 0) {\n return fragNext;\n }\n // We might be seeking past the tolerance so find the best match\n const foundFragment = BinarySearch.search(fragments, fragmentWithinToleranceTest.bind(null, bufferEnd, maxFragLookUpTolerance));\n if (foundFragment) {\n return foundFragment;\n }\n // If no match was found return the next fragment after fragPrevious, or null\n return fragNext;\n}\n\n/**\n * The test function used by the findFragmentBySn's BinarySearch to look for the best match to the current buffer conditions.\n * @param {*} candidate - The fragment to test\n * @param {number} [bufferEnd = 0] - The end of the current buffered range the playhead is currently within\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns {number} - 0 if it matches, 1 if too low, -1 if too high\n */\nexport function fragmentWithinToleranceTest (bufferEnd = 0, maxFragLookUpTolerance = 0, candidate: Fragment) {\n // offset should be within fragment boundary - config.maxFragLookUpTolerance\n // this is to cope with situations like\n // bufferEnd = 9.991\n // frag[Ø] : [0,10]\n // frag[1] : [10,20]\n // bufferEnd is within frag[0] range ... although what we are expecting is to return frag[1] here\n // frag start frag start+duration\n // |-----------------------------|\n // <---> <--->\n // ...--------><-----------------------------><---------....\n // previous frag matching fragment next frag\n // return -1 return 0 return 1\n // logger.log(`level/sn/start/end/bufEnd:${level}/${candidate.sn}/${candidate.start}/${(candidate.start+candidate.duration)}/${bufferEnd}`);\n // Set the lookup tolerance to be small enough to detect the current segment - ensures we don't skip over very small segments\n let candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0));\n if (candidate.start + candidate.duration - candidateLookupTolerance <= bufferEnd) {\n return 1;\n } else if (candidate.start - candidateLookupTolerance > bufferEnd && candidate.start) {\n // if maxFragLookUpTolerance will have negative value then don't return -1 for first element\n return -1;\n }\n\n return 0;\n}\n\n/**\n * The test function used by the findFragmentByPdt's BinarySearch to look for the best match to the current buffer conditions.\n * This function tests the candidate's program date time values, as represented in Unix time\n * @param {*} candidate - The fragment to test\n * @param {number} [pdtBufferEnd = 0] - The Unix time representing the end of the current buffered range\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns {boolean} True if contiguous, false otherwise\n */\nexport function pdtWithinToleranceTest (pdtBufferEnd: number, maxFragLookUpTolerance: number, candidate: Fragment): boolean {\n let candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0)) * 1000;\n\n // endProgramDateTime can be null, default to zero\n const endProgramDateTime = candidate.endProgramDateTime || 0;\n return endProgramDateTime - candidateLookupTolerance > pdtBufferEnd;\n}\n","import { BufferHelper } from '../utils/buffer-helper';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport Event from '../events';\nimport { logger } from '../utils/logger';\n\nexport const STALL_MINIMUM_DURATION_MS = 250;\nexport const MAX_START_GAP_JUMP = 2.0;\nexport const SKIP_BUFFER_HOLE_STEP_SECONDS = 0.1;\nexport const SKIP_BUFFER_RANGE_START = 0.05;\n\nexport default class GapController {\n constructor (config, media, fragmentTracker, hls) {\n this.config = config;\n this.media = media;\n this.fragmentTracker = fragmentTracker;\n this.hls = hls;\n this.nudgeRetry = 0;\n this.stallReported = false;\n this.stalled = null;\n this.moved = false;\n this.seeking = false;\n }\n\n /**\n * Checks if the playhead is stuck within a gap, and if so, attempts to free it.\n * A gap is an unbuffered range between two buffered ranges (or the start and the first buffered range).\n *\n * @param {number} lastCurrentTime Previously read playhead position\n */\n poll (lastCurrentTime) {\n const { config, media, stalled } = this;\n const { currentTime, seeking } = media;\n const seeked = this.seeking && !seeking;\n const beginSeek = !this.seeking && seeking;\n\n this.seeking = seeking;\n\n // The playhead is moving, no-op\n if (currentTime !== lastCurrentTime) {\n this.moved = true;\n if (stalled !== null) {\n // The playhead is now moving, but was previously stalled\n if (this.stallReported) {\n const stalledDuration = self.performance.now() - stalled;\n logger.warn(`playback not stuck anymore @${currentTime}, after ${Math.round(stalledDuration)}ms`);\n this.stallReported = false;\n }\n this.stalled = null;\n this.nudgeRetry = 0;\n }\n return;\n }\n\n // Clear stalled state when beginning or finishing seeking so that we don't report stalls coming out of a seek\n if (beginSeek || seeked) {\n this.stalled = null;\n }\n\n // The playhead should not be moving\n if (media.paused || media.ended || media.playbackRate === 0 || !media.buffered.length) {\n return;\n }\n\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const isBuffered = bufferInfo.len > 0;\n const nextStart = bufferInfo.nextStart || 0;\n\n // There is no playable buffer (waiting for buffer append)\n if (!isBuffered && !nextStart) {\n return;\n }\n\n if (seeking) {\n // Waiting for seeking in a buffered range to complete\n const hasEnoughBuffer = bufferInfo.len > MAX_START_GAP_JUMP;\n // Next buffered range is too far ahead to jump to while still seeking\n const noBufferGap = !nextStart ||\n (nextStart - currentTime > MAX_START_GAP_JUMP && !this.fragmentTracker.getPartialFragment(currentTime));\n if (hasEnoughBuffer || noBufferGap) {\n return;\n }\n // Reset moved state when seeking to a point in or before a gap\n this.moved = false;\n }\n\n // Skip start gaps if we haven't played, but the last poll detected the start of a stall\n // The addition poll gives the browser a chance to jump the gap for us\n if (!this.moved && this.stalled) {\n // Jump start gaps within jump threshold\n const startJump = Math.max(nextStart, bufferInfo.start || 0) - currentTime;\n if (startJump > 0 && startJump <= MAX_START_GAP_JUMP) {\n this._trySkipBufferHole(null);\n return;\n }\n }\n\n // Start tracking stall time\n const tnow = self.performance.now();\n if (stalled === null) {\n this.stalled = tnow;\n return;\n }\n\n const stalledDuration = tnow - stalled;\n if (!seeking && stalledDuration >= STALL_MINIMUM_DURATION_MS) {\n // Report stalling after trying to fix\n this._reportStall(bufferInfo.len);\n }\n\n const bufferedWithHoles = BufferHelper.bufferInfo(media, currentTime, config.maxBufferHole);\n this._tryFixBufferStall(bufferedWithHoles, stalledDuration);\n }\n\n /**\n * Detects and attempts to fix known buffer stalling issues.\n * @param bufferInfo - The properties of the current buffer.\n * @param stalledDurationMs - The amount of time Hls.js has been stalling for.\n * @private\n */\n _tryFixBufferStall (bufferInfo, stalledDurationMs) {\n const { config, fragmentTracker, media } = this;\n const currentTime = media.currentTime;\n\n const partial = fragmentTracker.getPartialFragment(currentTime);\n if (partial) {\n // Try to skip over the buffer hole caused by a partial fragment\n // This method isn't limited by the size of the gap between buffered ranges\n const targetTime = this._trySkipBufferHole(partial);\n // we return here in this case, meaning\n // the branch below only executes when we don't handle a partial fragment\n if (targetTime) {\n return;\n }\n }\n\n // if we haven't had to skip over a buffer hole of a partial fragment\n // we may just have to \"nudge\" the playlist as the browser decoding/rendering engine\n // needs to cross some sort of threshold covering all source-buffers content\n // to start playing properly.\n if (bufferInfo.len > config.maxBufferHole &&\n stalledDurationMs > config.highBufferWatchdogPeriod * 1000) {\n logger.warn('Trying to nudge playhead over buffer-hole');\n // Try to nudge currentTime over a buffer hole if we've been stalling for the configured amount of seconds\n // We only try to jump the hole if it's under the configured size\n // Reset stalled so to rearm watchdog timer\n this.stalled = null;\n this._tryNudgeBuffer();\n }\n }\n\n /**\n * Triggers a BUFFER_STALLED_ERROR event, but only once per stall period.\n * @param bufferLen - The playhead distance from the end of the current buffer segment.\n * @private\n */\n _reportStall (bufferLen) {\n const { hls, media, stallReported } = this;\n if (!stallReported) {\n // Report stalled error once\n this.stallReported = true;\n logger.warn(`Playback stalling at @${media.currentTime} due to low buffer (buffer=${bufferLen})`);\n hls.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_STALLED_ERROR,\n fatal: false,\n buffer: bufferLen\n });\n }\n }\n\n /**\n * Attempts to fix buffer stalls by jumping over known gaps caused by partial fragments\n * @param partial - The partial fragment found at the current time (where playback is stalling).\n * @private\n */\n _trySkipBufferHole (partial) {\n const { config, hls, media } = this;\n const currentTime = media.currentTime;\n let lastEndTime = 0;\n // Check if currentTime is between unbuffered regions of partial fragments\n for (let i = 0; i < media.buffered.length; i++) {\n const startTime = media.buffered.start(i);\n if (currentTime + config.maxBufferHole >= lastEndTime && currentTime < startTime) {\n const targetTime = Math.max(startTime + SKIP_BUFFER_RANGE_START, media.currentTime + SKIP_BUFFER_HOLE_STEP_SECONDS);\n logger.warn(`skipping hole, adjusting currentTime from ${currentTime} to ${targetTime}`);\n this.moved = true;\n this.stalled = null;\n media.currentTime = targetTime;\n if (partial) {\n hls.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_SEEK_OVER_HOLE,\n fatal: false,\n reason: `fragment loaded with buffer holes, seeking from ${currentTime} to ${targetTime}`,\n frag: partial\n });\n }\n return targetTime;\n }\n lastEndTime = media.buffered.end(i);\n }\n return 0;\n }\n\n /**\n * Attempts to fix buffer stalls by advancing the mediaElement's current time by a small amount.\n * @private\n */\n _tryNudgeBuffer () {\n const { config, hls, media } = this;\n const currentTime = media.currentTime;\n const nudgeRetry = (this.nudgeRetry || 0) + 1;\n this.nudgeRetry = nudgeRetry;\n\n if (nudgeRetry < config.nudgeMaxRetry) {\n const targetTime = currentTime + nudgeRetry * config.nudgeOffset;\n // playback stalled in buffered area ... let's nudge currentTime to try to overcome this\n logger.warn(`Nudging 'currentTime' from ${currentTime} to ${targetTime}`);\n media.currentTime = targetTime;\n\n hls.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_NUDGE_ON_STALL,\n fatal: false\n });\n } else {\n logger.error(`Playhead still not moving while enough data buffered @${currentTime} after ${config.nudgeMaxRetry} nudges`);\n hls.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_STALLED_ERROR,\n fatal: true\n });\n }\n }\n}\n","import EventHandler from './event-handler';\nimport Hls from './hls';\n\n/**\n * Sub-class specialization of EventHandler base class.\n *\n * TaskLoop allows to schedule a task function being called (optionnaly repeatedly) on the main loop,\n * scheduled asynchroneously, avoiding recursive calls in the same tick.\n *\n * The task itself is implemented in `doTick`. It can be requested and called for single execution\n * using the `tick` method.\n *\n * It will be assured that the task execution method (`tick`) only gets called once per main loop \"tick\",\n * no matter how often it gets requested for execution. Execution in further ticks will be scheduled accordingly.\n *\n * If further execution requests have already been scheduled on the next tick, it can be checked with `hasNextTick`,\n * and cancelled with `clearNextTick`.\n *\n * The task can be scheduled as an interval repeatedly with a period as parameter (see `setInterval`, `clearInterval`).\n *\n * Sub-classes need to implement the `doTick` method which will effectively have the task execution routine.\n *\n * Further explanations:\n *\n * The baseclass has a `tick` method that will schedule the doTick call. It may be called synchroneously\n * only for a stack-depth of one. On re-entrant calls, sub-sequent calls are scheduled for next main loop ticks.\n *\n * When the task execution (`tick` method) is called in re-entrant way this is detected and\n * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further\n * task processing on the next main loop iteration (also known as \"next tick\" in the Node/JS runtime lingo).\n */\n\nexport default class TaskLoop extends EventHandler {\n private readonly _boundTick: () => void;\n private _tickTimer: number | null = null;\n private _tickInterval: number | null = null;\n private _tickCallCount = 0;\n\n constructor (hls: Hls, ...events: string[]) {\n super(hls, ...events);\n this._boundTick = this.tick.bind(this);\n }\n\n /**\n * @override\n */\n protected onHandlerDestroying () {\n // clear all timers before unregistering from event bus\n this.clearNextTick();\n this.clearInterval();\n }\n\n /**\n * @returns {boolean}\n */\n public hasInterval (): boolean {\n return !!this._tickInterval;\n }\n\n /**\n * @returns {boolean}\n */\n public hasNextTick (): boolean {\n return !!this._tickTimer;\n }\n\n /**\n * @param {number} millis Interval time (ms)\n * @returns {boolean} True when interval has been scheduled, false when already scheduled (no effect)\n */\n public setInterval (millis: number): boolean {\n if (!this._tickInterval) {\n this._tickInterval = self.setInterval(this._boundTick, millis);\n return true;\n }\n return false;\n }\n\n /**\n * @returns {boolean} True when interval was cleared, false when none was set (no effect)\n */\n public clearInterval (): boolean {\n if (this._tickInterval) {\n self.clearInterval(this._tickInterval);\n this._tickInterval = null;\n return true;\n }\n return false;\n }\n\n /**\n * @returns {boolean} True when timeout was cleared, false when none was set (no effect)\n */\n public clearNextTick (): boolean {\n if (this._tickTimer) {\n self.clearTimeout(this._tickTimer);\n this._tickTimer = null;\n return true;\n }\n return false;\n }\n\n /**\n * Will call the subclass doTick implementation in this main loop tick\n * or in the next one (via setTimeout(,0)) in case it has already been called\n * in this tick (in case this is a re-entrant call).\n */\n public tick (): void {\n this._tickCallCount++;\n if (this._tickCallCount === 1) {\n this.doTick();\n // re-entrant call to tick from previous doTick call stack\n // -> schedule a call on the next main loop iteration to process this task processing request\n if (this._tickCallCount > 1) {\n // make sure only one timer exists at any time at max\n this.clearNextTick();\n this._tickTimer = self.setTimeout(this._boundTick, 0);\n }\n this._tickCallCount = 0;\n }\n }\n\n /**\n * For subclass to implement task logic\n * @abstract\n */\n protected doTick (): void {}\n}\n","import TaskLoop from '../task-loop';\nimport { FragmentState } from './fragment-tracker';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport { logger } from '../utils/logger';\n\nexport const State = {\n STOPPED: 'STOPPED',\n STARTING: 'STARTING',\n IDLE: 'IDLE',\n PAUSED: 'PAUSED',\n KEY_LOADING: 'KEY_LOADING',\n FRAG_LOADING: 'FRAG_LOADING',\n FRAG_LOADING_WAITING_RETRY: 'FRAG_LOADING_WAITING_RETRY',\n WAITING_TRACK: 'WAITING_TRACK',\n PARSING: 'PARSING',\n PARSED: 'PARSED',\n BUFFER_FLUSHING: 'BUFFER_FLUSHING',\n ENDED: 'ENDED',\n ERROR: 'ERROR',\n WAITING_INIT_PTS: 'WAITING_INIT_PTS',\n WAITING_LEVEL: 'WAITING_LEVEL'\n};\n\nexport default class BaseStreamController extends TaskLoop {\n doTick () {}\n\n startLoad () {}\n\n stopLoad () {\n let frag = this.fragCurrent;\n if (frag) {\n if (frag.loader) {\n frag.loader.abort();\n }\n this.fragmentTracker.removeFragment(frag);\n }\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = null;\n }\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.clearInterval();\n this.clearNextTick();\n this.state = State.STOPPED;\n }\n\n _streamEnded (bufferInfo, levelDetails) {\n const { fragCurrent, fragmentTracker } = this;\n // we just got done loading the final fragment and there is no other buffered range after ...\n // rationale is that in case there are any buffered ranges after, it means that there are unbuffered portion in between\n // so we should not switch to ENDED in that case, to be able to buffer them\n // dont switch to ENDED if we need to backtrack last fragment\n if (!levelDetails.live && fragCurrent && !fragCurrent.backtracked && fragCurrent.sn === levelDetails.endSN && !bufferInfo.nextStart) {\n const fragState = fragmentTracker.getState(fragCurrent);\n return fragState === FragmentState.PARTIAL || fragState === FragmentState.OK;\n }\n return false;\n }\n\n onMediaSeeking () {\n const { config, media, mediaBuffer, state } = this;\n const currentTime = media ? media.currentTime : null;\n const bufferInfo = BufferHelper.bufferInfo(mediaBuffer || media, currentTime, this.config.maxBufferHole);\n\n logger.log(`media seeking to ${Number.isFinite(currentTime) ? currentTime.toFixed(3) : currentTime}`);\n\n if (state === State.FRAG_LOADING) {\n let fragCurrent = this.fragCurrent;\n // check if we are seeking to a unbuffered area AND if frag loading is in progress\n if (bufferInfo.len === 0 && fragCurrent) {\n const tolerance = config.maxFragLookUpTolerance;\n const fragStartOffset = fragCurrent.start - tolerance;\n const fragEndOffset = fragCurrent.start + fragCurrent.duration + tolerance;\n // check if we seek position will be out of currently loaded frag range : if out cancel frag load, if in, don't do anything\n if (currentTime < fragStartOffset || currentTime > fragEndOffset) {\n if (fragCurrent.loader) {\n logger.log('seeking outside of buffer while fragment load in progress, cancel fragment load');\n fragCurrent.loader.abort();\n }\n this.fragCurrent = null;\n this.fragPrevious = null;\n // switch to IDLE state to load new fragment\n this.state = State.IDLE;\n } else {\n logger.log('seeking outside of buffer but within currently loaded fragment range');\n }\n }\n } else if (state === State.ENDED) {\n // if seeking to unbuffered area, clean up fragPrevious\n if (bufferInfo.len === 0) {\n this.fragPrevious = null;\n this.fragCurrent = null;\n }\n\n // switch to IDLE state to check for potential new fragment\n this.state = State.IDLE;\n }\n if (media) {\n this.lastCurrentTime = currentTime;\n }\n\n // in case seeking occurs although no media buffered, adjust startPosition and nextLoadPosition to seek target\n if (!this.loadedmetadata) {\n this.nextLoadPosition = this.startPosition = currentTime;\n }\n\n // tick to speed up processing\n this.tick();\n }\n\n onMediaEnded () {\n // reset startPosition and lastCurrentTime to restart playback @ stream beginning\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n onHandlerDestroying () {\n this.stopLoad();\n super.onHandlerDestroying();\n }\n\n onHandlerDestroyed () {\n this.state = State.STOPPED;\n this.fragmentTracker = null;\n }\n\n computeLivePosition (sliding, levelDetails) {\n let targetLatency = this.config.liveSyncDuration !== undefined ? this.config.liveSyncDuration : this.config.liveSyncDurationCount * levelDetails.targetduration;\n return sliding + Math.max(0, levelDetails.totalduration - targetLatency);\n }\n}\n","/*\n * Stream Controller\n*/\n\nimport BinarySearch from '../utils/binary-search';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport Demuxer from '../demux/demuxer';\nimport Event from '../events';\nimport { FragmentState } from './fragment-tracker';\nimport { ElementaryStreamTypes } from '../loader/fragment';\nimport { PlaylistLevelType } from '../types/loader';\nimport * as LevelHelper from './level-helper';\nimport TimeRanges from '../utils/time-ranges';\nimport { ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport { alignStream } from '../utils/discontinuities';\nimport { findFragmentByPDT, findFragmentByPTS } from './fragment-finders';\nimport GapController, { MAX_START_GAP_JUMP } from './gap-controller';\nimport BaseStreamController, { State } from './base-stream-controller';\n\nconst TICK_INTERVAL = 100; // how often to tick in ms\n\nclass StreamController extends BaseStreamController {\n constructor (hls, fragmentTracker) {\n super(hls,\n Event.MEDIA_ATTACHED,\n Event.MEDIA_DETACHING,\n Event.MANIFEST_LOADING,\n Event.MANIFEST_PARSED,\n Event.LEVEL_LOADED,\n Event.LEVELS_UPDATED,\n Event.KEY_LOADED,\n Event.FRAG_LOADED,\n Event.FRAG_LOAD_EMERGENCY_ABORTED,\n Event.FRAG_PARSING_INIT_SEGMENT,\n Event.FRAG_PARSING_DATA,\n Event.FRAG_PARSED,\n Event.ERROR,\n Event.AUDIO_TRACK_SWITCHING,\n Event.AUDIO_TRACK_SWITCHED,\n Event.BUFFER_CREATED,\n Event.BUFFER_APPENDED,\n Event.BUFFER_FLUSHED);\n\n this.fragmentTracker = fragmentTracker;\n this.config = hls.config;\n this.audioCodecSwap = false;\n this._state = State.STOPPED;\n this.stallReported = false;\n this.gapController = null;\n this.altAudio = false;\n this.audioOnly = false;\n this.bitrateTest = false;\n }\n\n startLoad (startPosition) {\n if (this.levels) {\n let lastCurrentTime = this.lastCurrentTime, hls = this.hls;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n this.level = -1;\n this.fragLoadError = 0;\n if (!this.startFragRequested) {\n // determine load level\n let startLevel = hls.startLevel;\n if (startLevel === -1) {\n if (hls.config.testBandwidth) {\n // -1 : guess start Level by doing a bitrate test by loading first fragment of lowest quality level\n startLevel = 0;\n this.bitrateTest = true;\n } else {\n startLevel = hls.nextAutoLevel;\n }\n }\n // set new level to playlist loader : this will trigger start level load\n // hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded\n this.level = hls.nextLoadLevel = startLevel;\n this.loadedmetadata = false;\n }\n // if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime\n if (lastCurrentTime > 0 && startPosition === -1) {\n logger.log(`override startPosition with lastCurrentTime @${lastCurrentTime.toFixed(3)}`);\n startPosition = lastCurrentTime;\n }\n this.state = State.IDLE;\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n this.tick();\n } else {\n this.forceStartLoad = true;\n this.state = State.STOPPED;\n }\n }\n\n stopLoad () {\n this.forceStartLoad = false;\n super.stopLoad();\n }\n\n doTick () {\n switch (this.state) {\n case State.BUFFER_FLUSHING:\n // in buffer flushing state, reset fragLoadError counter\n this.fragLoadError = 0;\n break;\n case State.IDLE:\n this._doTickIdle();\n break;\n case State.WAITING_LEVEL:\n var level = this.levels[this.level];\n // check if playlist is already loaded\n if (level && level.details) {\n this.state = State.IDLE;\n }\n\n break;\n case State.FRAG_LOADING_WAITING_RETRY:\n var now = window.performance.now();\n var retryDate = this.retryDate;\n // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n if (!retryDate || (now >= retryDate) || (this.media && this.media.seeking)) {\n logger.log('mediaController: retryDate reached, switch back to IDLE state');\n this.state = State.IDLE;\n }\n break;\n case State.ERROR:\n case State.STOPPED:\n case State.FRAG_LOADING:\n case State.PARSING:\n case State.PARSED:\n case State.ENDED:\n break;\n default:\n break;\n }\n // check buffer\n this._checkBuffer();\n // check/update current fragment\n this._checkFragmentChanged();\n }\n\n // Ironically the \"idle\" state is the on we do the most logic in it seems ....\n // NOTE: Maybe we could rather schedule a check for buffer length after half of the currently\n // played segment, or on pause/play/seek instead of naively checking every 100ms?\n _doTickIdle () {\n const hls = this.hls,\n config = hls.config,\n media = this.media;\n\n // if start level not parsed yet OR\n // if video not attached AND start fragment already requested OR start frag prefetch disable\n // exit loop, as we either need more info (level not parsed) or we need media to be attached to load new fragment\n if (this.levelLastLoaded === undefined || (\n !media && (this.startFragRequested || !config.startFragPrefetch))) {\n return;\n }\n\n // If the \"main\" level is audio-only but we are loading an alternate track in the same group, do not load anything\n if (this.altAudio && this.audioOnly) {\n // Clear audio demuxer state so when switching back to main audio we're not still appending where we left off\n this.demuxer.frag = null;\n return;\n }\n\n // if we have not yet loaded any fragment, start loading from start position\n let pos;\n if (this.loadedmetadata) {\n pos = media.currentTime;\n } else {\n pos = this.nextLoadPosition;\n }\n\n // determine next load level\n let level = hls.nextLoadLevel,\n levelInfo = this.levels[level];\n\n if (!levelInfo) {\n return;\n }\n\n let levelBitrate = levelInfo.bitrate,\n maxBufLen;\n\n // compute max Buffer Length that we could get from this load level, based on level bitrate.\n if (levelBitrate) {\n maxBufLen = Math.max(8 * config.maxBufferSize / levelBitrate, config.maxBufferLength);\n } else {\n maxBufLen = config.maxBufferLength;\n }\n\n maxBufLen = Math.min(maxBufLen, config.maxMaxBufferLength);\n\n // determine next candidate fragment to be loaded, based on current position and end of buffer position\n // ensure up to `config.maxMaxBufferLength` of buffer upfront\n\n const maxBufferHole = pos < config.maxBufferHole ? Math.max(MAX_START_GAP_JUMP, config.maxBufferHole) : config.maxBufferHole;\n const bufferInfo = BufferHelper.bufferInfo(this.mediaBuffer ? this.mediaBuffer : media, pos, maxBufferHole);\n const bufferLen = bufferInfo.len;\n // Stay idle if we are still with buffer margins\n if (bufferLen >= maxBufLen) {\n return;\n }\n\n // if buffer length is less than maxBufLen try to load a new fragment ...\n logger.trace(`buffer length of ${bufferLen.toFixed(3)} is below max of ${maxBufLen.toFixed(3)}. checking for more payload ...`);\n\n // set next load level : this will trigger a playlist load if needed\n this.level = hls.nextLoadLevel = level;\n\n const levelDetails = levelInfo.details;\n // if level info not retrieved yet, switch state and wait for level retrieval\n // if live playlist, ensure that new playlist has been refreshed to avoid loading/try to load\n // a useless and outdated fragment (that might even introduce load error if it is already out of the live playlist)\n if (!levelDetails || (levelDetails.live && this.levelLastLoaded !== level)) {\n this.state = State.WAITING_LEVEL;\n return;\n }\n\n if (this._streamEnded(bufferInfo, levelDetails)) {\n const data = {};\n if (this.altAudio) {\n data.type = 'video';\n }\n\n this.hls.trigger(Event.BUFFER_EOS, data);\n this.state = State.ENDED;\n return;\n }\n // if we have the levelDetails for the selected variant, lets continue enrichen our stream (load keys/fragments or trigger EOS, etc..)\n this._fetchPayloadOrEos(pos, bufferInfo, levelDetails);\n }\n\n _fetchPayloadOrEos (pos, bufferInfo, levelDetails) {\n const fragPrevious = this.fragPrevious,\n level = this.level,\n fragments = levelDetails.fragments,\n fragLen = fragments.length;\n\n // empty playlist\n if (fragLen === 0) {\n return;\n }\n\n // find fragment index, contiguous with end of buffer position\n let start = fragments[0].start,\n end = fragments[fragLen - 1].start + fragments[fragLen - 1].duration,\n bufferEnd = bufferInfo.end,\n frag;\n\n if (levelDetails.initSegment && !levelDetails.initSegment.data) {\n frag = levelDetails.initSegment;\n } else {\n // in case of live playlist we need to ensure that requested position is not located before playlist start\n if (levelDetails.live) {\n let initialLiveManifestSize = this.config.initialLiveManifestSize;\n if (fragLen < initialLiveManifestSize) {\n logger.warn(`Can not start playback of a level, reason: not enough fragments ${fragLen} < ${initialLiveManifestSize}`);\n return;\n }\n\n frag = this._ensureFragmentAtLivePoint(levelDetails, bufferEnd, start, end, fragPrevious, fragments);\n // if it explicitely returns null don't load any fragment and exit function now\n if (frag === null) {\n return;\n }\n } else {\n // VoD playlist: if bufferEnd before start of playlist, load first fragment\n if (bufferEnd < start) {\n frag = fragments[0];\n }\n }\n }\n if (!frag) {\n frag = this._findFragment(start, fragPrevious, fragLen, fragments, bufferEnd, end, levelDetails);\n }\n\n if (frag) {\n if (frag.encrypted) {\n this._loadKey(frag, levelDetails);\n } else {\n this._loadFragment(frag, levelDetails, pos, bufferEnd);\n }\n }\n }\n\n _ensureFragmentAtLivePoint (levelDetails, bufferEnd, start, end, fragPrevious, fragments) {\n const config = this.hls.config, media = this.media;\n\n let frag;\n\n // check if requested position is within seekable boundaries :\n // logger.log(`start/pos/bufEnd/seeking:${start.toFixed(3)}/${pos.toFixed(3)}/${bufferEnd.toFixed(3)}/${this.media.seeking}`);\n let maxLatency = Infinity;\n\n if (config.liveMaxLatencyDuration !== undefined) {\n maxLatency = config.liveMaxLatencyDuration;\n } else if (Number.isFinite(config.liveMaxLatencyDurationCount)) {\n maxLatency = config.liveMaxLatencyDurationCount * levelDetails.targetduration;\n }\n\n if (bufferEnd < Math.max(start - config.maxFragLookUpTolerance, end - maxLatency)) {\n let liveSyncPosition = this.liveSyncPosition = this.computeLivePosition(start, levelDetails);\n bufferEnd = liveSyncPosition;\n if (media && !media.paused && media.readyState && media.duration > liveSyncPosition && liveSyncPosition > media.currentTime) {\n logger.log(`buffer end: ${bufferEnd.toFixed(3)} is located too far from the end of live sliding playlist, reset currentTime to : ${liveSyncPosition.toFixed(3)}`);\n media.currentTime = liveSyncPosition;\n }\n\n this.nextLoadPosition = liveSyncPosition;\n }\n\n // if end of buffer greater than live edge, don't load any fragment\n // this could happen if live playlist intermittently slides in the past.\n // level 1 loaded [182580161,182580167]\n // level 1 loaded [182580162,182580169]\n // Loading 182580168 of [182580162 ,182580169],level 1 ..\n // Loading 182580169 of [182580162 ,182580169],level 1 ..\n // level 1 loaded [182580162,182580168] <============= here we should have bufferEnd > end. in that case break to avoid reloading 182580168\n // level 1 loaded [182580164,182580171]\n //\n // don't return null in case media not loaded yet (readystate === 0)\n if (levelDetails.PTSKnown && bufferEnd > end && media && media.readyState) {\n return null;\n }\n\n if (this.startFragRequested && !levelDetails.PTSKnown) {\n /* we are switching level on live playlist, but we don't have any PTS info for that quality level ...\n try to load frag matching with next SN.\n even if SN are not synchronized between playlists, loading this frag will help us\n compute playlist sliding and find the right one after in case it was not the right consecutive one */\n if (fragPrevious) {\n if (levelDetails.hasProgramDateTime) {\n // Relies on PDT in order to switch bitrates (Support EXT-X-DISCONTINUITY without EXT-X-DISCONTINUITY-SEQUENCE)\n logger.log(`live playlist, switching playlist, load frag with same PDT: ${fragPrevious.programDateTime}`);\n frag = findFragmentByPDT(fragments, fragPrevious.endProgramDateTime, config.maxFragLookUpTolerance);\n } else {\n // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n const targetSN = fragPrevious.sn + 1;\n if (targetSN >= levelDetails.startSN && targetSN <= levelDetails.endSN) {\n const fragNext = fragments[targetSN - levelDetails.startSN];\n if (fragPrevious.cc === fragNext.cc) {\n frag = fragNext;\n logger.log(`live playlist, switching playlist, load frag with next SN: ${frag.sn}`);\n }\n }\n // next frag SN not available (or not with same continuity counter)\n // look for a frag sharing the same CC\n if (!frag) {\n frag = BinarySearch.search(fragments, function (frag) {\n return fragPrevious.cc - frag.cc;\n });\n if (frag) {\n logger.log(`live playlist, switching playlist, load frag with same CC: ${frag.sn}`);\n }\n }\n }\n }\n }\n\n return frag;\n }\n\n _findFragment (start, fragPreviousLoad, fragmentIndexRange, fragments, bufferEnd, end, levelDetails) {\n const config = this.hls.config;\n let fragNextLoad;\n\n if (bufferEnd < end) {\n const lookupTolerance = (bufferEnd > end - config.maxFragLookUpTolerance) ? 0 : config.maxFragLookUpTolerance;\n // Remove the tolerance if it would put the bufferEnd past the actual end of stream\n // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n fragNextLoad = findFragmentByPTS(fragPreviousLoad, fragments, bufferEnd, lookupTolerance);\n } else {\n // reach end of playlist\n fragNextLoad = fragments[fragmentIndexRange - 1];\n }\n\n if (fragNextLoad) {\n const curSNIdx = fragNextLoad.sn - levelDetails.startSN;\n const sameLevel = fragPreviousLoad && fragNextLoad.level === fragPreviousLoad.level;\n const prevSnFrag = fragments[curSNIdx - 1];\n const nextSnFrag = fragments[curSNIdx + 1];\n\n // logger.log('find SN matching with pos:' + bufferEnd + ':' + frag.sn);\n if (fragPreviousLoad && fragNextLoad.sn === fragPreviousLoad.sn) {\n if (sameLevel && !fragNextLoad.backtracked) {\n if (fragNextLoad.sn < levelDetails.endSN) {\n let deltaPTS = fragPreviousLoad.deltaPTS;\n // if there is a significant delta between audio and video, larger than max allowed hole,\n // and if previous remuxed fragment did not start with a keyframe. (fragPrevious.dropped)\n // let's try to load previous fragment again to get last keyframe\n // then we will reload again current fragment (that way we should be able to fill the buffer hole ...)\n if (deltaPTS && deltaPTS > config.maxBufferHole && fragPreviousLoad.dropped && curSNIdx) {\n fragNextLoad = prevSnFrag;\n logger.warn('Previous fragment was dropped with large PTS gap between audio and video. Maybe fragment is not starting with a keyframe? Loading previous one to try to overcome this');\n } else {\n fragNextLoad = nextSnFrag;\n if (this.fragmentTracker.getState(fragNextLoad) !== FragmentState.OK) {\n logger.log(`Re-loading fragment with SN: ${fragNextLoad.sn}`);\n }\n }\n } else {\n fragNextLoad = null;\n }\n } else if (fragNextLoad.backtracked) {\n // Only backtrack a max of 1 consecutive fragment to prevent sliding back too far when little or no frags start with keyframes\n if (nextSnFrag && nextSnFrag.backtracked) {\n logger.warn(`Already backtracked from fragment ${nextSnFrag.sn}, will not backtrack to fragment ${fragNextLoad.sn}. Loading fragment ${nextSnFrag.sn}`);\n fragNextLoad = nextSnFrag;\n } else {\n // If a fragment has dropped frames and it's in a same level/sequence, load the previous fragment to try and find the keyframe\n // Reset the dropped count now since it won't be reset until we parse the fragment again, which prevents infinite backtracking on the same segment\n logger.warn('Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe');\n fragNextLoad.dropped = 0;\n if (prevSnFrag) {\n fragNextLoad = prevSnFrag;\n fragNextLoad.backtracked = true;\n } else if (curSNIdx) {\n // can't backtrack on very first fragment\n fragNextLoad = null;\n }\n }\n }\n }\n }\n\n return fragNextLoad;\n }\n\n _loadKey (frag, levelDetails) {\n logger.log(`Loading key for ${frag.sn} of [${levelDetails.startSN}-${levelDetails.endSN}], level ${this.level}`);\n this.state = State.KEY_LOADING;\n this.hls.trigger(Event.KEY_LOADING, { frag });\n }\n\n _loadFragment (frag, levelDetails, pos, bufferEnd) {\n // Check if fragment is not loaded\n let fragState = this.fragmentTracker.getState(frag);\n\n this.fragCurrent = frag;\n if (frag.sn !== 'initSegment') {\n this.startFragRequested = true;\n }\n // Don't update nextLoadPosition for fragments which are not buffered\n if (Number.isFinite(frag.sn) && !frag.bitrateTest) {\n this.nextLoadPosition = frag.start + frag.duration;\n }\n\n // Allow backtracked fragments to load\n if (frag.backtracked || fragState === FragmentState.NOT_LOADED || fragState === FragmentState.PARTIAL) {\n frag.autoLevel = this.hls.autoLevelEnabled;\n frag.bitrateTest = this.bitrateTest;\n\n logger.log(`Loading ${frag.sn} of [${levelDetails.startSN}-${levelDetails.endSN}], level ${this.level}, ${\n this.loadedmetadata ? 'currentTime' : 'nextLoadPosition'\n }: ${parseFloat(pos.toFixed(3))}, bufferEnd: ${parseFloat(bufferEnd.toFixed(3))}`);\n\n this.hls.trigger(Event.FRAG_LOADING, { frag });\n // lazy demuxer init, as this could take some time ... do it during frag loading\n if (!this.demuxer) {\n this.demuxer = new Demuxer(this.hls, 'main');\n }\n\n this.state = State.FRAG_LOADING;\n } else if (fragState === FragmentState.APPENDING) {\n // Lower the buffer size and try again\n if (this._reduceMaxBufferLength(frag.duration)) {\n this.fragmentTracker.removeFragment(frag);\n }\n }\n }\n\n set state (nextState) {\n if (this.state !== nextState) {\n const previousState = this.state;\n this._state = nextState;\n logger.log(`main stream-controller: ${previousState}->${nextState}`);\n this.hls.trigger(Event.STREAM_STATE_TRANSITION, { previousState, nextState });\n }\n }\n\n get state () {\n return this._state;\n }\n\n getBufferedFrag (position) {\n return this.fragmentTracker.getBufferedFrag(position, PlaylistLevelType.MAIN);\n }\n\n get currentLevel () {\n let media = this.media;\n if (media) {\n const frag = this.getBufferedFrag(media.currentTime);\n if (frag) {\n return frag.level;\n }\n }\n return -1;\n }\n\n get nextBufferedFrag () {\n let media = this.media;\n if (media) {\n // first get end range of current fragment\n return this.followingBufferedFrag(this.getBufferedFrag(media.currentTime));\n } else {\n return null;\n }\n }\n\n followingBufferedFrag (frag) {\n if (frag) {\n // try to get range of next fragment (500ms after this range)\n return this.getBufferedFrag(frag.endPTS + 0.5);\n }\n return null;\n }\n\n get nextLevel () {\n const frag = this.nextBufferedFrag;\n if (frag) {\n return frag.level;\n } else {\n return -1;\n }\n }\n\n _checkFragmentChanged () {\n let fragPlayingCurrent, currentTime, video = this.media;\n if (video && video.readyState && video.seeking === false) {\n currentTime = video.currentTime;\n /* if video element is in seeked state, currentTime can only increase.\n (assuming that playback rate is positive ...)\n As sometimes currentTime jumps back to zero after a\n media decode error, check this, to avoid seeking back to\n wrong position after a media decode error\n */\n if (currentTime > this.lastCurrentTime) {\n this.lastCurrentTime = currentTime;\n }\n\n if (BufferHelper.isBuffered(video, currentTime)) {\n fragPlayingCurrent = this.getBufferedFrag(currentTime);\n } else if (BufferHelper.isBuffered(video, currentTime + 0.1)) {\n /* ensure that FRAG_CHANGED event is triggered at startup,\n when first video frame is displayed and playback is paused.\n add a tolerance of 100ms, in case current position is not buffered,\n check if current pos+100ms is buffered and use that buffer range\n for FRAG_CHANGED event reporting */\n fragPlayingCurrent = this.getBufferedFrag(currentTime + 0.1);\n }\n if (fragPlayingCurrent) {\n let fragPlaying = fragPlayingCurrent;\n if (fragPlaying !== this.fragPlaying) {\n this.hls.trigger(Event.FRAG_CHANGED, { frag: fragPlaying });\n const fragPlayingLevel = fragPlaying.level;\n if (!this.fragPlaying || this.fragPlaying.level !== fragPlayingLevel) {\n this.hls.trigger(Event.LEVEL_SWITCHED, { level: fragPlayingLevel });\n }\n\n this.fragPlaying = fragPlaying;\n }\n }\n }\n }\n\n /*\n on immediate level switch :\n - pause playback if playing\n - cancel any pending load request\n - and trigger a buffer flush\n */\n immediateLevelSwitch () {\n logger.log('immediateLevelSwitch');\n if (!this.immediateSwitch) {\n this.immediateSwitch = true;\n let media = this.media, previouslyPaused;\n if (media) {\n previouslyPaused = media.paused;\n if (!previouslyPaused) {\n media.pause();\n }\n } else {\n // don't restart playback after instant level switch in case media not attached\n previouslyPaused = true;\n }\n this.previouslyPaused = previouslyPaused;\n }\n let fragCurrent = this.fragCurrent;\n if (fragCurrent && fragCurrent.loader) {\n fragCurrent.loader.abort();\n }\n\n this.fragCurrent = null;\n // flush everything\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n\n /**\n * on immediate level switch end, after new fragment has been buffered:\n * - nudge video decoder by slightly adjusting video currentTime (if currentTime buffered)\n * - resume the playback if needed\n */\n immediateLevelSwitchEnd () {\n const media = this.media;\n if (media && media.buffered.length) {\n this.immediateSwitch = false;\n if (media.currentTime > 0 && BufferHelper.isBuffered(media, media.currentTime)) {\n // only nudge if currentTime is buffered\n media.currentTime -= 0.0001;\n }\n if (!this.previouslyPaused) {\n media.play();\n }\n }\n }\n\n /**\n * try to switch ASAP without breaking video playback:\n * in order to ensure smooth but quick level switching,\n * we need to find the next flushable buffer range\n * we should take into account new segment fetch time\n */\n nextLevelSwitch () {\n const media = this.media;\n // ensure that media is defined and that metadata are available (to retrieve currentTime)\n if (media && media.readyState) {\n let fetchdelay;\n const fragPlayingCurrent = this.getBufferedFrag(media.currentTime);\n if (fragPlayingCurrent && fragPlayingCurrent.startPTS > 1) {\n // flush buffer preceding current fragment (flush until current fragment start offset)\n // minus 1s to avoid video freezing, that could happen if we flush keyframe of current video ...\n this.flushMainBuffer(0, fragPlayingCurrent.startPTS - 1);\n }\n if (!media.paused) {\n // add a safety delay of 1s\n let nextLevelId = this.hls.nextLoadLevel, nextLevel = this.levels[nextLevelId], fragLastKbps = this.fragLastKbps;\n if (fragLastKbps && this.fragCurrent) {\n fetchdelay = this.fragCurrent.duration * nextLevel.bitrate / (1000 * fragLastKbps) + 1;\n } else {\n fetchdelay = 0;\n }\n } else {\n fetchdelay = 0;\n }\n // logger.log('fetchdelay:'+fetchdelay);\n // find buffer range that will be reached once new fragment will be fetched\n const bufferedFrag = this.getBufferedFrag(media.currentTime + fetchdelay);\n if (bufferedFrag) {\n // we can flush buffer range following this one without stalling playback\n const nextBufferedFrag = this.followingBufferedFrag(bufferedFrag);\n if (nextBufferedFrag) {\n // if we are here, we can also cancel any loading/demuxing in progress, as they are useless\n let fragCurrent = this.fragCurrent;\n if (fragCurrent && fragCurrent.loader) {\n fragCurrent.loader.abort();\n }\n\n this.fragCurrent = null;\n // start flush position is the start PTS of next buffered frag.\n // we use frag.naxStartPTS which is max(audio startPTS, video startPTS).\n // in case there is a small PTS Delta between audio and video, using maxStartPTS avoids flushing last samples from current fragment\n const startPts = Math.max(bufferedFrag.endPTS, nextBufferedFrag.maxStartPTS + Math.min(this.config.maxFragLookUpTolerance, nextBufferedFrag.duration));\n this.flushMainBuffer(startPts, Number.POSITIVE_INFINITY);\n }\n }\n }\n }\n\n flushMainBuffer (startOffset, endOffset) {\n this.state = State.BUFFER_FLUSHING;\n let flushScope = { startOffset: startOffset, endOffset: endOffset };\n // if alternate audio tracks are used, only flush video, otherwise flush everything\n if (this.altAudio) {\n flushScope.type = 'video';\n }\n\n this.hls.trigger(Event.BUFFER_FLUSHING, flushScope);\n }\n\n onMediaAttached (data) {\n let media = this.media = this.mediaBuffer = data.media;\n this.onvseeking = this.onMediaSeeking.bind(this);\n this.onvseeked = this.onMediaSeeked.bind(this);\n this.onvended = this.onMediaEnded.bind(this);\n media.addEventListener('seeking', this.onvseeking);\n media.addEventListener('seeked', this.onvseeked);\n media.addEventListener('ended', this.onvended);\n let config = this.config;\n if (this.levels && config.autoStartLoad) {\n this.hls.startLoad(config.startPosition);\n }\n\n this.gapController = new GapController(config, media, this.fragmentTracker, this.hls);\n }\n\n onMediaDetaching () {\n let media = this.media;\n if (media && media.ended) {\n logger.log('MSE detaching and video ended, reset startPosition');\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n // reset fragment backtracked flag\n let levels = this.levels;\n if (levels) {\n levels.forEach(level => {\n if (level.details) {\n level.details.fragments.forEach(fragment => {\n fragment.backtracked = undefined;\n });\n }\n });\n }\n\n // remove video listeners\n if (media) {\n media.removeEventListener('seeking', this.onvseeking);\n media.removeEventListener('seeked', this.onvseeked);\n media.removeEventListener('ended', this.onvended);\n this.onvseeking = this.onvseeked = this.onvended = null;\n }\n\n this.fragmentTracker.removeAllFragments();\n this.media = this.mediaBuffer = null;\n this.loadedmetadata = false;\n this.stopLoad();\n }\n\n onMediaSeeked () {\n const media = this.media;\n const currentTime = media ? media.currentTime : undefined;\n if (Number.isFinite(currentTime)) {\n logger.log(`media seeked to ${currentTime.toFixed(3)}`);\n }\n\n // tick to speed up FRAGMENT_PLAYING triggering\n this.tick();\n }\n\n onManifestLoading () {\n // reset buffer on manifest loading\n logger.log('trigger BUFFER_RESET');\n this.hls.trigger(Event.BUFFER_RESET);\n this.fragmentTracker.removeAllFragments();\n this.stalled = false;\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n onManifestParsed (data) {\n let aac = false, heaac = false, codec;\n data.levels.forEach(level => {\n // detect if we have different kind of audio codecs used amongst playlists\n codec = level.audioCodec;\n if (codec) {\n if (codec.indexOf('mp4a.40.2') !== -1) {\n aac = true;\n }\n\n if (codec.indexOf('mp4a.40.5') !== -1) {\n heaac = true;\n }\n }\n });\n this.audioCodecSwitch = (aac && heaac);\n if (this.audioCodecSwitch) {\n logger.log('both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC');\n }\n\n this.altAudio = data.altAudio;\n this.levels = data.levels;\n this.startFragRequested = false;\n let config = this.config;\n if (config.autoStartLoad || this.forceStartLoad) {\n this.hls.startLoad(config.startPosition);\n }\n }\n\n onLevelLoaded (data) {\n const newDetails = data.details;\n const newLevelId = data.level;\n const lastLevel = this.levels[this.levelLastLoaded];\n const curLevel = this.levels[newLevelId];\n const duration = newDetails.totalduration;\n let sliding = 0;\n\n logger.log(`level ${newLevelId} loaded [${newDetails.startSN},${newDetails.endSN}],duration:${duration}`);\n\n if (newDetails.live || (curLevel.details && curLevel.details.live)) {\n let curDetails = curLevel.details;\n if (curDetails && newDetails.fragments.length > 0) {\n // we already have details for that level, merge them\n LevelHelper.mergeDetails(curDetails, newDetails);\n sliding = newDetails.fragments[0].start;\n this.liveSyncPosition = this.computeLivePosition(sliding, curDetails);\n if (newDetails.PTSKnown && Number.isFinite(sliding)) {\n logger.log(`live playlist sliding:${sliding.toFixed(3)}`);\n } else {\n logger.log('live playlist - outdated PTS, unknown sliding');\n alignStream(this.fragPrevious, lastLevel, newDetails);\n }\n } else {\n logger.log('live playlist - first load, unknown sliding');\n newDetails.PTSKnown = false;\n alignStream(this.fragPrevious, lastLevel, newDetails);\n }\n } else {\n newDetails.PTSKnown = false;\n }\n // override level info\n curLevel.details = newDetails;\n this.levelLastLoaded = newLevelId;\n this.hls.trigger(Event.LEVEL_UPDATED, { details: newDetails, level: newLevelId });\n\n if (this.startFragRequested === false) {\n // compute start position if set to -1. use it straight away if value is defined\n if (this.startPosition === -1 || this.lastCurrentTime === -1) {\n // first, check if start time offset has been set in playlist, if yes, use this value\n let startTimeOffset = newDetails.startTimeOffset;\n if (Number.isFinite(startTimeOffset)) {\n if (startTimeOffset < 0) {\n logger.log(`negative start time offset ${startTimeOffset}, count from end of last fragment`);\n startTimeOffset = sliding + duration + startTimeOffset;\n }\n logger.log(`start time offset found in playlist, adjust startPosition to ${startTimeOffset}`);\n this.startPosition = startTimeOffset;\n } else {\n // if live playlist, set start position to be fragment N-this.config.liveSyncDurationCount (usually 3)\n if (newDetails.live) {\n this.startPosition = this.computeLivePosition(sliding, newDetails);\n logger.log(`configure startPosition to ${this.startPosition}`);\n } else {\n this.startPosition = 0;\n }\n }\n this.lastCurrentTime = this.startPosition;\n }\n this.nextLoadPosition = this.startPosition;\n }\n // only switch batck to IDLE state if we were waiting for level to start downloading a new fragment\n if (this.state === State.WAITING_LEVEL) {\n this.state = State.IDLE;\n }\n\n // trigger handler right now\n this.tick();\n }\n\n onKeyLoaded () {\n if (this.state === State.KEY_LOADING) {\n this.state = State.IDLE;\n this.tick();\n }\n }\n\n onFragLoaded (data) {\n const { fragCurrent, hls, levels, media } = this;\n const fragLoaded = data.frag;\n if (this.state === State.FRAG_LOADING &&\n fragCurrent &&\n fragLoaded.type === 'main' &&\n fragLoaded.level === fragCurrent.level &&\n fragLoaded.sn === fragCurrent.sn) {\n const stats = data.stats;\n const currentLevel = levels[fragCurrent.level];\n const details = currentLevel.details;\n // reset frag bitrate test in any case after frag loaded event\n // if this frag was loaded to perform a bitrate test AND if hls.nextLoadLevel is greater than 0\n // then this means that we should be able to load a fragment at a higher quality level\n this.bitrateTest = false;\n this.stats = stats;\n\n logger.log(`Loaded ${fragCurrent.sn} of [${details.startSN} ,${details.endSN}],level ${fragCurrent.level}`);\n if (fragLoaded.bitrateTest && hls.nextLoadLevel) {\n // switch back to IDLE state ... we just loaded a fragment to determine adequate start bitrate and initialize autoswitch algo\n this.state = State.IDLE;\n this.startFragRequested = false;\n stats.tparsed = stats.tbuffered = window.performance.now();\n hls.trigger(Event.FRAG_BUFFERED, { stats: stats, frag: fragCurrent, id: 'main' });\n this.tick();\n } else if (fragLoaded.sn === 'initSegment') {\n this.state = State.IDLE;\n stats.tparsed = stats.tbuffered = window.performance.now();\n details.initSegment.data = data.payload;\n hls.trigger(Event.FRAG_BUFFERED, { stats: stats, frag: fragCurrent, id: 'main' });\n this.tick();\n } else {\n logger.log(`Parsing ${fragCurrent.sn} of [${details.startSN} ,${details.endSN}],level ${fragCurrent.level}, cc ${fragCurrent.cc}`);\n this.state = State.PARSING;\n this.pendingBuffering = true;\n this.appended = false;\n\n // Bitrate test frags are not usually buffered so the fragment tracker ignores them. If Hls.js decides to buffer\n // it (and therefore ends up at this line), then the fragment tracker needs to be manually informed.\n if (fragLoaded.bitrateTest) {\n fragLoaded.bitrateTest = false;\n this.fragmentTracker.onFragLoaded({\n frag: fragLoaded\n });\n }\n\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live) and if media is not seeking (this is to overcome potential timestamp drifts between playlists and fragments)\n const accurateTimeOffset = !(media && media.seeking) && (details.PTSKnown || !details.live);\n const initSegmentData = details.initSegment ? details.initSegment.data : [];\n const audioCodec = this._getAudioCodec(currentLevel);\n\n // transmux the MPEG-TS data to ISO-BMFF segments\n const demuxer = this.demuxer = this.demuxer || new Demuxer(this.hls, 'main');\n demuxer.push(\n data.payload,\n initSegmentData,\n audioCodec,\n currentLevel.videoCodec,\n fragCurrent,\n details.totalduration,\n accurateTimeOffset\n );\n }\n }\n this.fragLoadError = 0;\n }\n\n onFragParsingInitSegment (data) {\n const fragCurrent = this.fragCurrent;\n const fragNew = data.frag;\n\n if (fragCurrent &&\n data.id === 'main' &&\n fragNew.sn === fragCurrent.sn &&\n fragNew.level === fragCurrent.level &&\n this.state === State.PARSING) {\n let tracks = data.tracks, trackName, track;\n\n this.audioOnly = tracks.audio && !tracks.video;\n\n // if audio track is expected to come from audio stream controller, discard any coming from main\n if (this.altAudio && !this.audioOnly) {\n delete tracks.audio;\n }\n\n // include levelCodec in audio and video tracks\n track = tracks.audio;\n if (track) {\n let audioCodec = this.levels[this.level].audioCodec,\n ua = navigator.userAgent.toLowerCase();\n if (audioCodec && this.audioCodecSwap) {\n logger.log('swapping playlist audio codec');\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n // in case AAC and HE-AAC audio codecs are signalled in manifest\n // force HE-AAC , as it seems that most browsers prefers that way,\n // except for mono streams OR on FF\n // these conditions might need to be reviewed ...\n if (this.audioCodecSwitch) {\n // don't force HE-AAC if mono stream\n if (track.metadata.channelCount !== 1 &&\n // don't force HE-AAC if firefox\n ua.indexOf('firefox') === -1) {\n audioCodec = 'mp4a.40.5';\n }\n }\n // HE-AAC is broken on Android, always signal audio codec as AAC even if variant manifest states otherwise\n if (ua.indexOf('android') !== -1 && track.container !== 'audio/mpeg') { // Exclude mpeg audio\n audioCodec = 'mp4a.40.2';\n logger.log(`Android: force audio codec to ${audioCodec}`);\n }\n track.levelCodec = audioCodec;\n track.id = data.id;\n }\n track = tracks.video;\n if (track) {\n track.levelCodec = this.levels[this.level].videoCodec;\n track.id = data.id;\n }\n this.hls.trigger(Event.BUFFER_CODECS, tracks);\n // loop through tracks that are going to be provided to bufferController\n for (trackName in tracks) {\n track = tracks[trackName];\n logger.log(`main track:${trackName},container:${track.container},codecs[level/parsed]=[${track.levelCodec}/${track.codec}]`);\n let initSegment = track.initSegment;\n if (initSegment) {\n this.appended = true;\n // arm pending Buffering flag before appending a segment\n this.pendingBuffering = true;\n this.hls.trigger(Event.BUFFER_APPENDING, { type: trackName, data: initSegment, parent: 'main', content: 'initSegment' });\n }\n }\n // trigger handler right now\n this.tick();\n }\n }\n\n onFragParsingData (data) {\n const fragCurrent = this.fragCurrent;\n const fragNew = data.frag;\n if (fragCurrent &&\n data.id === 'main' &&\n fragNew.sn === fragCurrent.sn &&\n fragNew.level === fragCurrent.level &&\n !(data.type === 'audio' && this.altAudio) && // filter out main audio if audio track is loaded through audio stream controller\n this.state === State.PARSING) {\n let level = this.levels[this.level],\n frag = fragCurrent;\n if (!Number.isFinite(data.endPTS)) {\n data.endPTS = data.startPTS + fragCurrent.duration;\n data.endDTS = data.startDTS + fragCurrent.duration;\n }\n\n if (data.hasAudio === true) {\n frag.addElementaryStream(ElementaryStreamTypes.AUDIO);\n }\n\n if (data.hasVideo === true) {\n frag.addElementaryStream(ElementaryStreamTypes.VIDEO);\n }\n\n logger.log(`Parsed ${data.type},PTS:[${data.startPTS.toFixed(3)},${data.endPTS.toFixed(3)}],DTS:[${data.startDTS.toFixed(3)}/${data.endDTS.toFixed(3)}],nb:${data.nb},dropped:${data.dropped || 0}`);\n\n // Detect gaps in a fragment and try to fix it by finding a keyframe in the previous fragment (see _findFragments)\n if (data.type === 'video') {\n frag.dropped = data.dropped;\n if (frag.dropped) {\n if (!frag.backtracked) {\n const levelDetails = level.details;\n if (levelDetails && frag.sn === levelDetails.startSN) {\n logger.warn('missing video frame(s) on first frag, appending with gap', frag.sn);\n } else {\n logger.warn('missing video frame(s), backtracking fragment', frag.sn);\n // Return back to the IDLE state without appending to buffer\n // Causes findFragments to backtrack a segment and find the keyframe\n // Audio fragments arriving before video sets the nextLoadPosition, causing _findFragments to skip the backtracked fragment\n this.fragmentTracker.removeFragment(frag);\n frag.backtracked = true;\n this.nextLoadPosition = data.startPTS;\n this.state = State.IDLE;\n this.fragPrevious = frag;\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = null;\n }\n this.tick();\n return;\n }\n } else {\n logger.warn('Already backtracked on this fragment, appending with the gap', frag.sn);\n }\n } else {\n // Only reset the backtracked flag if we've loaded the frag without any dropped frames\n frag.backtracked = false;\n }\n }\n\n let drift = LevelHelper.updateFragPTSDTS(level.details, frag, data.startPTS, data.endPTS, data.startDTS, data.endDTS),\n hls = this.hls;\n hls.trigger(Event.LEVEL_PTS_UPDATED, { details: level.details, level: this.level, drift: drift, type: data.type, start: data.startPTS, end: data.endPTS });\n // has remuxer dropped video frames located before first keyframe ?\n [data.data1, data.data2].forEach(buffer => {\n // only append in PARSING state (rationale is that an appending error could happen synchronously on first segment appending)\n // in that case it is useless to append following segments\n if (buffer && buffer.length && this.state === State.PARSING) {\n this.appended = true;\n // arm pending Buffering flag before appending a segment\n this.pendingBuffering = true;\n hls.trigger(Event.BUFFER_APPENDING, { type: data.type, data: buffer, parent: 'main', content: 'data' });\n }\n });\n // trigger handler right now\n this.tick();\n }\n }\n\n onFragParsed (data) {\n const fragCurrent = this.fragCurrent;\n const fragNew = data.frag;\n if (fragCurrent &&\n data.id === 'main' &&\n fragNew.sn === fragCurrent.sn &&\n fragNew.level === fragCurrent.level &&\n this.state === State.PARSING) {\n this.stats.tparsed = window.performance.now();\n this.state = State.PARSED;\n this._checkAppendedParsed();\n }\n }\n\n onAudioTrackSwitching (data) {\n // if any URL found on new audio track, it is an alternate audio track\n const fromAltAudio = this.altAudio;\n const altAudio = !!data.url;\n const trackId = data.id;\n // if we switch on main audio, ensure that main fragment scheduling is synced with media.buffered\n // don't do anything if we switch to alt audio: audio stream controller is handling it.\n // we will just have to change buffer scheduling on audioTrackSwitched\n if (!altAudio) {\n if (this.mediaBuffer !== this.media) {\n logger.log('switching on main audio, use media.buffered to schedule main fragment loading');\n this.mediaBuffer = this.media;\n let fragCurrent = this.fragCurrent;\n // we need to refill audio buffer from main: cancel any frag loading to speed up audio switch\n if (fragCurrent.loader) {\n logger.log('switching to main audio track, cancel main fragment load');\n fragCurrent.loader.abort();\n }\n this.fragCurrent = null;\n this.fragPrevious = null;\n // destroy demuxer to force init segment generation (following audio switch)\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = null;\n }\n // switch to IDLE state to load new fragment\n this.state = State.IDLE;\n }\n let hls = this.hls;\n // If switching from alt to main audio, flush all audio and trigger track switched\n if (fromAltAudio) {\n hls.trigger(Event.BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: Number.POSITIVE_INFINITY,\n type: 'audio'\n });\n }\n hls.trigger(Event.AUDIO_TRACK_SWITCHED, {\n id: trackId\n });\n }\n }\n\n onAudioTrackSwitched (data) {\n let trackId = data.id,\n altAudio = !!this.hls.audioTracks[trackId].url;\n if (altAudio) {\n let videoBuffer = this.videoBuffer;\n // if we switched on alternate audio, ensure that main fragment scheduling is synced with video sourcebuffer buffered\n if (videoBuffer && this.mediaBuffer !== videoBuffer) {\n logger.log('switching on alternate audio, use video.buffered to schedule main fragment loading');\n this.mediaBuffer = videoBuffer;\n }\n }\n this.altAudio = altAudio;\n this.tick();\n }\n\n onBufferCreated (data) {\n let tracks = data.tracks, mediaTrack, name, alternate = false;\n for (let type in tracks) {\n let track = tracks[type];\n if (track.id === 'main') {\n name = type;\n mediaTrack = track;\n // keep video source buffer reference\n if (type === 'video') {\n this.videoBuffer = tracks[type].buffer;\n }\n } else {\n alternate = true;\n }\n }\n if (alternate && mediaTrack) {\n logger.log(`alternate track found, use ${name}.buffered to schedule main fragment loading`);\n this.mediaBuffer = mediaTrack.buffer;\n } else {\n this.mediaBuffer = this.media;\n }\n }\n\n onBufferAppended (data) {\n if (data.parent === 'main') {\n const state = this.state;\n if (state === State.PARSING || state === State.PARSED) {\n // check if all buffers have been appended\n this.pendingBuffering = (data.pending > 0);\n this._checkAppendedParsed();\n }\n }\n }\n\n _checkAppendedParsed () {\n // trigger handler right now\n if (this.state === State.PARSED && (!this.appended || !this.pendingBuffering)) {\n const frag = this.fragCurrent;\n if (frag) {\n const media = this.mediaBuffer ? this.mediaBuffer : this.media;\n logger.log(`main buffered : ${TimeRanges.toString(media.buffered)}`);\n this.fragPrevious = frag;\n const stats = this.stats;\n stats.tbuffered = window.performance.now();\n // we should get rid of this.fragLastKbps\n this.fragLastKbps = Math.round(8 * stats.total / (stats.tbuffered - stats.tfirst));\n this.hls.trigger(Event.FRAG_BUFFERED, { stats: stats, frag: frag, id: 'main' });\n this.state = State.IDLE;\n }\n // Do not tick when _seekToStartPos needs to be called as seeking to the start can fail on live streams at this point\n if (this.loadedmetadata || this.startPosition <= 0) {\n this.tick();\n }\n }\n }\n\n onError (data) {\n let frag = data.frag || this.fragCurrent;\n // don't handle frag error not related to main fragment\n if (frag && frag.type !== 'main') {\n return;\n }\n\n // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end\n let mediaBuffered = !!this.media && BufferHelper.isBuffered(this.media, this.media.currentTime) && BufferHelper.isBuffered(this.media, this.media.currentTime + 0.5);\n\n switch (data.details) {\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n if (!data.fatal) {\n // keep retrying until the limit will be reached\n if ((this.fragLoadError + 1) <= this.config.fragLoadingMaxRetry) {\n // exponential backoff capped to config.fragLoadingMaxRetryTimeout\n let delay = Math.min(Math.pow(2, this.fragLoadError) * this.config.fragLoadingRetryDelay, this.config.fragLoadingMaxRetryTimeout);\n logger.warn(`mediaController: frag loading failed, retry in ${delay} ms`);\n this.retryDate = window.performance.now() + delay;\n // retry loading state\n // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n this.nextLoadPosition = this.startPosition;\n }\n this.fragLoadError++;\n this.state = State.FRAG_LOADING_WAITING_RETRY;\n } else {\n logger.error(`mediaController: ${data.details} reaches max retry, redispatch as fatal ...`);\n // switch error to fatal\n data.fatal = true;\n this.state = State.ERROR;\n }\n }\n break;\n case ErrorDetails.LEVEL_LOAD_ERROR:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n if (this.state !== State.ERROR) {\n if (data.fatal) {\n // if fatal error, stop processing\n this.state = State.ERROR;\n logger.warn(`streamController: ${data.details},switch to ${this.state} state ...`);\n } else {\n // in case of non fatal error while loading level, if level controller is not retrying to load level , switch back to IDLE\n if (!data.levelRetry && this.state === State.WAITING_LEVEL) {\n this.state = State.IDLE;\n }\n }\n }\n break;\n case ErrorDetails.BUFFER_FULL_ERROR:\n // if in appending state\n if (data.parent === 'main' && (this.state === State.PARSING || this.state === State.PARSED)) {\n // reduce max buf len if current position is buffered\n if (mediaBuffered) {\n this._reduceMaxBufferLength(this.config.maxBufferLength);\n this.state = State.IDLE;\n } else {\n // current position is not buffered, but browser is still complaining about buffer full error\n // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n // in that case flush the whole buffer to recover\n logger.warn('buffer full error also media.currentTime is not buffered, flush everything');\n this.fragCurrent = null;\n // flush everything\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n }\n break;\n default:\n break;\n }\n }\n\n _reduceMaxBufferLength (minLength) {\n let config = this.config;\n if (config.maxMaxBufferLength >= minLength) {\n // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n config.maxMaxBufferLength /= 2;\n logger.warn(`main:reduce max buffer length to ${config.maxMaxBufferLength}s`);\n return true;\n }\n return false;\n }\n\n /**\n * Checks the health of the buffer and attempts to resolve playback stalls.\n * @private\n */\n _checkBuffer () {\n const { media } = this;\n if (!media || media.readyState === 0) {\n // Exit early if we don't have media or if the media hasn't bufferd anything yet (readyState 0)\n return;\n }\n\n const mediaBuffer = this.mediaBuffer ? this.mediaBuffer : media;\n const buffered = mediaBuffer.buffered;\n\n if (!this.loadedmetadata && buffered.length) {\n this.loadedmetadata = true;\n this._seekToStartPos();\n } else if (this.immediateSwitch) {\n this.immediateLevelSwitchEnd();\n } else {\n this.gapController.poll(this.lastCurrentTime, buffered);\n }\n }\n\n onFragLoadEmergencyAborted () {\n this.state = State.IDLE;\n // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n this.nextLoadPosition = this.startPosition;\n }\n this.tick();\n }\n\n onBufferFlushed () {\n /* after successful buffer flushing, filter flushed fragments from bufferedFrags\n use mediaBuffered instead of media (so that we will check against video.buffered ranges in case of alt audio track)\n */\n const media = this.mediaBuffer ? this.mediaBuffer : this.media;\n if (media) {\n // filter fragments potentially evicted from buffer. this is to avoid memleak on live streams\n const elementaryStreamType = this.audioOnly ? ElementaryStreamTypes.AUDIO : ElementaryStreamTypes.VIDEO;\n this.fragmentTracker.detectEvictedFragments(elementaryStreamType, media.buffered);\n }\n // move to IDLE once flush complete. this should trigger new fragment loading\n this.state = State.IDLE;\n // reset reference to frag\n this.fragPrevious = null;\n }\n\n onLevelsUpdated (data) {\n this.levels = data.levels;\n }\n\n swapAudioCodec () {\n this.audioCodecSwap = !this.audioCodecSwap;\n }\n /**\n * Seeks to the set startPosition if not equal to the mediaElement's current time.\n * @private\n */\n _seekToStartPos () {\n const { media } = this;\n const currentTime = media.currentTime;\n let startPosition = this.startPosition;\n // only adjust currentTime if different from startPosition or if startPosition not buffered\n // at that stage, there should be only one buffered range, as we reach that code after first fragment has been buffered\n if (currentTime !== startPosition && startPosition >= 0) {\n if (media.seeking) {\n logger.log(`could not seek to ${startPosition}, already seeking at ${currentTime}`);\n return;\n }\n const bufferStart = media.buffered.length ? media.buffered.start(0) : 0;\n const delta = bufferStart - startPosition;\n if (delta > 0 && delta < this.config.maxBufferHole) {\n logger.log(`adjusting start position by ${delta} to match buffer start`);\n startPosition += delta;\n this.startPosition = startPosition;\n }\n logger.log(`seek to target start position ${startPosition} from current time ${currentTime}. ready state ${media.readyState}`);\n media.currentTime = startPosition;\n }\n }\n\n _getAudioCodec (currentLevel) {\n let audioCodec = this.config.defaultAudioCodec || currentLevel.audioCodec;\n if (this.audioCodecSwap) {\n logger.log('swapping playlist audio codec');\n if (audioCodec) {\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n }\n\n return audioCodec;\n }\n\n get liveSyncPosition () {\n return this._liveSyncPosition;\n }\n\n set liveSyncPosition (value) {\n this._liveSyncPosition = value;\n }\n}\nexport default StreamController;\n","/*\n * Level Controller\n*/\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { isCodecSupportedInMp4 } from '../utils/codecs';\nimport { addGroupId, computeReloadInterval } from './level-helper';\n\nlet chromeOrFirefox;\n\nexport default class LevelController extends EventHandler {\n constructor (hls) {\n super(hls,\n Event.MANIFEST_LOADED,\n Event.LEVEL_LOADED,\n Event.AUDIO_TRACK_SWITCHED,\n Event.FRAG_LOADED,\n Event.ERROR);\n\n this.canload = false;\n this.currentLevelIndex = null;\n this.manualLevelIndex = -1;\n this.timer = null;\n\n chromeOrFirefox = /chrome|firefox/.test(navigator.userAgent.toLowerCase());\n }\n\n onHandlerDestroying () {\n this.clearTimer();\n this.manualLevelIndex = -1;\n }\n\n clearTimer () {\n if (this.timer !== null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n startLoad () {\n let levels = this._levels;\n\n this.canload = true;\n this.levelRetryCount = 0;\n\n // clean up live level details to force reload them, and reset load errors\n if (levels) {\n levels.forEach(level => {\n level.loadError = 0;\n const levelDetails = level.details;\n if (levelDetails && levelDetails.live) {\n level.details = undefined;\n }\n });\n }\n // speed up live playlist refresh if timer exists\n if (this.timer !== null) {\n this.loadLevel();\n }\n }\n\n stopLoad () {\n this.canload = false;\n }\n\n onManifestLoaded (data) {\n let levels = [];\n let audioTracks = [];\n let bitrateStart;\n let levelSet = {};\n let levelFromSet = null;\n let videoCodecFound = false;\n let audioCodecFound = false;\n\n // regroup redundant levels together\n data.levels.forEach(level => {\n const attributes = level.attrs;\n level.loadError = 0;\n level.fragmentError = false;\n\n videoCodecFound = videoCodecFound || !!level.videoCodec;\n audioCodecFound = audioCodecFound || !!level.audioCodec;\n\n // erase audio codec info if browser does not support mp4a.40.34.\n // demuxer will autodetect codec and fallback to mpeg/audio\n if (chromeOrFirefox && level.audioCodec && level.audioCodec.indexOf('mp4a.40.34') !== -1) {\n level.audioCodec = undefined;\n }\n\n levelFromSet = levelSet[level.bitrate]; // FIXME: we would also have to match the resolution here\n\n if (!levelFromSet) {\n level.url = [level.url];\n level.urlId = 0;\n levelSet[level.bitrate] = level;\n levels.push(level);\n } else {\n levelFromSet.url.push(level.url);\n }\n\n if (attributes) {\n if (attributes.AUDIO) {\n addGroupId(levelFromSet || level, 'audio', attributes.AUDIO);\n }\n if (attributes.SUBTITLES) {\n addGroupId(levelFromSet || level, 'text', attributes.SUBTITLES);\n }\n }\n });\n\n // remove audio-only level if we also have levels with audio+video codecs signalled\n if (videoCodecFound && audioCodecFound) {\n levels = levels.filter(({ videoCodec }) => !!videoCodec);\n }\n\n // only keep levels with supported audio/video codecs\n levels = levels.filter(({ audioCodec, videoCodec }) => {\n return (!audioCodec || isCodecSupportedInMp4(audioCodec, 'audio')) && (!videoCodec || isCodecSupportedInMp4(videoCodec, 'video'));\n });\n\n if (data.audioTracks) {\n audioTracks = data.audioTracks.filter(track => !track.audioCodec || isCodecSupportedInMp4(track.audioCodec, 'audio'));\n // Reassign id's after filtering since they're used as array indices\n audioTracks.forEach((track, index) => {\n track.id = index;\n });\n }\n\n if (levels.length > 0) {\n // start bitrate is the first bitrate of the manifest\n bitrateStart = levels[0].bitrate;\n // sort level on bitrate\n levels.sort((a, b) => a.bitrate - b.bitrate);\n this._levels = levels;\n // find index of first level in sorted levels\n for (let i = 0; i < levels.length; i++) {\n if (levels[i].bitrate === bitrateStart) {\n this._firstLevel = i;\n logger.log(`manifest loaded,${levels.length} level(s) found, first bitrate:${bitrateStart}`);\n break;\n }\n }\n\n // Audio is only alternate if manifest include a URI along with the audio group tag,\n // and this is not an audio-only stream where levels contain audio-only\n const audioOnly = audioCodecFound && !videoCodecFound;\n this.hls.trigger(Event.MANIFEST_PARSED, {\n levels,\n audioTracks,\n firstLevel: this._firstLevel,\n stats: data.stats,\n audio: audioCodecFound,\n video: videoCodecFound,\n altAudio: !audioOnly && audioTracks.some(t => !!t.url)\n });\n } else {\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n url: this.hls.url,\n reason: 'no level with compatible codecs found in manifest'\n });\n }\n }\n\n get levels () {\n return this._levels;\n }\n\n get level () {\n return this.currentLevelIndex;\n }\n\n set level (newLevel) {\n let levels = this._levels;\n if (levels) {\n newLevel = Math.min(newLevel, levels.length - 1);\n if (this.currentLevelIndex !== newLevel || !levels[newLevel].details) {\n this.setLevelInternal(newLevel);\n }\n }\n }\n\n setLevelInternal (newLevel) {\n const levels = this._levels;\n const hls = this.hls;\n // check if level idx is valid\n if (newLevel >= 0 && newLevel < levels.length) {\n // stopping live reloading timer if any\n this.clearTimer();\n if (this.currentLevelIndex !== newLevel) {\n logger.log(`switching to level ${newLevel}`);\n this.currentLevelIndex = newLevel;\n const levelProperties = levels[newLevel];\n levelProperties.level = newLevel;\n hls.trigger(Event.LEVEL_SWITCHING, levelProperties);\n }\n const level = levels[newLevel];\n const levelDetails = level.details;\n\n // check if we need to load playlist for this level\n if (!levelDetails || levelDetails.live) {\n // level not retrieved yet, or live playlist we need to (re)load it\n let urlId = level.urlId;\n hls.trigger(Event.LEVEL_LOADING, { url: level.url[urlId], level: newLevel, id: urlId });\n }\n } else {\n // invalid level id given, trigger error\n hls.trigger(Event.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.LEVEL_SWITCH_ERROR,\n level: newLevel,\n fatal: false,\n reason: 'invalid level idx'\n });\n }\n }\n\n get manualLevel () {\n return this.manualLevelIndex;\n }\n\n set manualLevel (newLevel) {\n this.manualLevelIndex = newLevel;\n if (this._startLevel === undefined) {\n this._startLevel = newLevel;\n }\n\n if (newLevel !== -1) {\n this.level = newLevel;\n }\n }\n\n get firstLevel () {\n return this._firstLevel;\n }\n\n set firstLevel (newLevel) {\n this._firstLevel = newLevel;\n }\n\n get startLevel () {\n // hls.startLevel takes precedence over config.startLevel\n // if none of these values are defined, fallback on this._firstLevel (first quality level appearing in variant manifest)\n if (this._startLevel === undefined) {\n let configStartLevel = this.hls.config.startLevel;\n if (configStartLevel !== undefined) {\n return configStartLevel;\n } else {\n return this._firstLevel;\n }\n } else {\n return this._startLevel;\n }\n }\n\n set startLevel (newLevel) {\n this._startLevel = newLevel;\n }\n\n onError (data) {\n if (data.fatal) {\n if (data.type === ErrorTypes.NETWORK_ERROR) {\n this.clearTimer();\n }\n\n return;\n }\n\n let levelError = false, fragmentError = false;\n let levelIndex;\n\n // try to recover not fatal errors\n switch (data.details) {\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n levelIndex = data.frag.level;\n fragmentError = true;\n break;\n case ErrorDetails.LEVEL_LOAD_ERROR:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n levelIndex = data.context.level;\n levelError = true;\n break;\n case ErrorDetails.REMUX_ALLOC_ERROR:\n levelIndex = data.level;\n levelError = true;\n break;\n }\n\n if (levelIndex !== undefined) {\n this.recoverLevel(data, levelIndex, levelError, fragmentError);\n }\n }\n\n /**\n * Switch to a redundant stream if any available.\n * If redundant stream is not available, emergency switch down if ABR mode is enabled.\n *\n * @param {Object} errorEvent\n * @param {Number} levelIndex current level index\n * @param {Boolean} levelError\n * @param {Boolean} fragmentError\n */\n // FIXME Find a better abstraction where fragment/level retry management is well decoupled\n recoverLevel (errorEvent, levelIndex, levelError, fragmentError) {\n let { config } = this.hls;\n let { details: errorDetails } = errorEvent;\n let level = this._levels[levelIndex];\n let redundantLevels, delay, nextLevel;\n\n level.loadError++;\n level.fragmentError = fragmentError;\n\n if (levelError) {\n if ((this.levelRetryCount + 1) <= config.levelLoadingMaxRetry) {\n // exponential backoff capped to max retry timeout\n delay = Math.min(Math.pow(2, this.levelRetryCount) * config.levelLoadingRetryDelay, config.levelLoadingMaxRetryTimeout);\n // Schedule level reload\n this.timer = setTimeout(() => this.loadLevel(), delay);\n // boolean used to inform stream controller not to switch back to IDLE on non fatal error\n errorEvent.levelRetry = true;\n this.levelRetryCount++;\n logger.warn(`level controller, ${errorDetails}, retry in ${delay} ms, current retry count is ${this.levelRetryCount}`);\n } else {\n logger.error(`level controller, cannot recover from ${errorDetails} error`);\n this.currentLevelIndex = null;\n // stopping live reloading timer if any\n this.clearTimer();\n // switch error to fatal\n errorEvent.fatal = true;\n return;\n }\n }\n\n // Try any redundant streams if available for both errors: level and fragment\n // If level.loadError reaches redundantLevels it means that we tried them all, no hope => let's switch down\n if (levelError || fragmentError) {\n redundantLevels = level.url.length;\n\n if (redundantLevels > 1 && level.loadError < redundantLevels) {\n level.urlId = (level.urlId + 1) % redundantLevels;\n level.details = undefined;\n\n logger.warn(`level controller, ${errorDetails} for level ${levelIndex}: switching to redundant URL-id ${level.urlId}`);\n\n // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n // console.log('New video quality level audio group id:', level.attrs.AUDIO);\n } else {\n // Search for available level\n if (this.manualLevelIndex === -1) {\n // When lowest level has been reached, let's start hunt from the top\n nextLevel = (levelIndex === 0) ? this._levels.length - 1 : levelIndex - 1;\n logger.warn(`level controller, ${errorDetails}: switch to ${nextLevel}`);\n this.hls.nextAutoLevel = this.currentLevelIndex = nextLevel;\n } else if (fragmentError) {\n // Allow fragment retry as long as configuration allows.\n // reset this._level so that another call to set level() will trigger again a frag load\n logger.warn(`level controller, ${errorDetails}: reload a fragment`);\n this.currentLevelIndex = null;\n }\n }\n }\n }\n\n // reset errors on the successful load of a fragment\n onFragLoaded ({ frag }) {\n if (frag !== undefined && frag.type === 'main') {\n const level = this._levels[frag.level];\n if (level !== undefined) {\n level.fragmentError = false;\n level.loadError = 0;\n this.levelRetryCount = 0;\n }\n }\n }\n\n onLevelLoaded (data) {\n const { level, details } = data;\n // only process level loaded events matching with expected level\n if (level !== this.currentLevelIndex) {\n return;\n }\n\n const curLevel = this._levels[level];\n // reset level load error counter on successful level loaded only if there is no issues with fragments\n if (!curLevel.fragmentError) {\n curLevel.loadError = 0;\n this.levelRetryCount = 0;\n }\n // if current playlist is a live playlist, arm a timer to reload it\n if (details.live) {\n const reloadInterval = computeReloadInterval(curLevel.details, details, data.stats.trequest);\n logger.log(`live playlist, reload in ${Math.round(reloadInterval)} ms`);\n this.timer = setTimeout(() => this.loadLevel(), reloadInterval);\n } else {\n this.clearTimer();\n }\n }\n\n onAudioTrackSwitched (data) {\n const audioGroupId = this.hls.audioTracks[data.id].groupId;\n\n const currentLevel = this.hls.levels[this.currentLevelIndex];\n if (!currentLevel) {\n return;\n }\n\n if (currentLevel.audioGroupIds) {\n let urlId = -1;\n\n for (let i = 0; i < currentLevel.audioGroupIds.length; i++) {\n if (currentLevel.audioGroupIds[i] === audioGroupId) {\n urlId = i;\n break;\n }\n }\n\n if (urlId !== currentLevel.urlId) {\n currentLevel.urlId = urlId;\n this.startLoad();\n }\n }\n }\n\n loadLevel () {\n logger.debug('call to loadLevel');\n\n if (this.currentLevelIndex !== null && this.canload) {\n const levelObject = this._levels[this.currentLevelIndex];\n\n if (typeof levelObject === 'object' &&\n levelObject.url.length > 0) {\n const level = this.currentLevelIndex;\n const id = levelObject.urlId;\n const url = levelObject.url[id];\n\n logger.log(`Attempt loading level index ${level} with URL-id ${id}`);\n\n // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n // console.log('New video quality level audio group id:', levelObject.attrs.AUDIO, level);\n\n this.hls.trigger(Event.LEVEL_LOADING, { url, level, id });\n }\n }\n }\n\n get nextLoadLevel () {\n if (this.manualLevelIndex !== -1) {\n return this.manualLevelIndex;\n } else {\n return this.hls.nextAutoLevel;\n }\n }\n\n set nextLoadLevel (nextLevel) {\n this.level = nextLevel;\n if (this.manualLevelIndex === -1) {\n this.hls.nextAutoLevel = nextLevel;\n }\n }\n\n removeLevel (levelIndex, urlId) {\n const levels = this.levels.filter((level, index) => {\n if (index !== levelIndex) {\n return true;\n }\n\n if (level.url.length > 1 && urlId !== undefined) {\n level.url = level.url.filter((url, id) => id !== urlId);\n level.urlId = 0;\n return true;\n }\n return false;\n }).map((level, index) => {\n const { details } = level;\n if (details && details.fragments) {\n details.fragments.forEach((fragment) => {\n fragment.level = index;\n });\n }\n return level;\n });\n\n this._levels = levels;\n\n this.hls.trigger(Event.LEVELS_UPDATED, { levels });\n }\n}\n","\nexport function sendAddTrackEvent (track: TextTrack, videoEl: HTMLMediaElement) {\n let event: Event;\n try {\n event = new Event('addtrack');\n } catch (err) {\n // for IE11\n event = document.createEvent('Event');\n event.initEvent('addtrack', false, false);\n }\n (event as any).track = track;\n videoEl.dispatchEvent(event);\n}\n\nexport function clearCurrentCues (track: TextTrack) {\n if (track?.cues) {\n while (track.cues.length > 0) {\n track.removeCue(track.cues[0]);\n }\n }\n}\n\n/**\n * Given a list of Cues, finds the closest cue matching the given time.\n * Modified verison of binary search O(log(n)).\n *\n * @export\n * @param {(TextTrackCueList | TextTrackCue[])} cues - List of cues.\n * @param {number} time - Target time, to find closest cue to.\n * @returns {TextTrackCue}\n */\nexport function getClosestCue (cues: TextTrackCueList | TextTrackCue[], time: number): TextTrackCue {\n // If the offset is less than the first element, the first element is the closest.\n if (time < cues[0].endTime) {\n return cues[0];\n }\n // If the offset is greater than the last cue, the last is the closest.\n if (time > cues[cues.length - 1].endTime) {\n return cues[cues.length - 1];\n }\n\n let left = 0;\n let right = cues.length - 1;\n\n while (left <= right) {\n const mid = Math.floor((right + left) / 2);\n\n if (time < cues[mid].endTime) {\n right = mid - 1;\n } else if (time > cues[mid].endTime) {\n left = mid + 1;\n } else {\n // If it's not lower or higher, it must be equal.\n return cues[mid];\n }\n }\n // At this point, left and right have swapped.\n // No direct match was found, left or right element must be the closest. Check which one has the smallest diff.\n return (cues[left].endTime - time) < (time - cues[right].endTime) ? cues[left] : cues[right];\n}\n","/*\n * id3 metadata track controller\n*/\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport ID3 from '../demux/id3';\nimport { sendAddTrackEvent, clearCurrentCues, getClosestCue } from '../utils/texttrack-utils';\n\nconst MIN_CUE_DURATION = 0.25;\n\nclass ID3TrackController extends EventHandler {\n constructor (hls) {\n super(hls,\n Event.MEDIA_ATTACHED,\n Event.MEDIA_DETACHING,\n Event.FRAG_PARSING_METADATA,\n Event.LIVE_BACK_BUFFER_REACHED\n );\n this.id3Track = undefined;\n this.media = undefined;\n }\n\n destroy () {\n EventHandler.prototype.destroy.call(this);\n }\n\n // Add ID3 metatadata text track.\n onMediaAttached (data) {\n this.media = data.media;\n if (!this.media) {\n\n }\n }\n\n onMediaDetaching () {\n clearCurrentCues(this.id3Track);\n this.id3Track = undefined;\n this.media = undefined;\n }\n\n getID3Track (textTracks) {\n for (let i = 0; i < textTracks.length; i++) {\n let textTrack = textTracks[i];\n if (textTrack.kind === 'metadata' && textTrack.label === 'id3') {\n // send 'addtrack' when reusing the textTrack for metadata,\n // same as what we do for captions\n sendAddTrackEvent(textTrack, this.media);\n\n return textTrack;\n }\n }\n return this.media.addTextTrack('metadata', 'id3');\n }\n\n onFragParsingMetadata (data) {\n const fragment = data.frag;\n const samples = data.samples;\n\n // create track dynamically\n if (!this.id3Track) {\n this.id3Track = this.getID3Track(this.media.textTracks);\n this.id3Track.mode = 'hidden';\n }\n\n // Attempt to recreate Safari functionality by creating\n // WebKitDataCue objects when available and store the decoded\n // ID3 data in the value property of the cue\n let Cue = window.WebKitDataCue || window.VTTCue || window.TextTrackCue;\n\n for (let i = 0; i < samples.length; i++) {\n const frames = ID3.getID3Frames(samples[i].data);\n if (frames) {\n // Ensure the pts is positive - sometimes it's reported as a small negative number\n let startTime = Math.max(samples[i].pts, 0);\n let endTime = i < samples.length - 1 ? samples[i + 1].pts : fragment.endPTS;\n if (!endTime) {\n endTime = fragment.start + fragment.duration;\n }\n\n const timeDiff = endTime - startTime;\n if (timeDiff <= 0) {\n endTime = startTime + MIN_CUE_DURATION;\n }\n\n for (let j = 0; j < frames.length; j++) {\n const frame = frames[j];\n // Safari doesn't put the timestamp frame in the TextTrack\n if (!ID3.isTimeStampFrame(frame)) {\n const cue = new Cue(startTime, endTime, '');\n cue.value = frame;\n this.id3Track.addCue(cue);\n }\n }\n }\n }\n }\n\n onLiveBackBufferReached ({ bufferEnd }) {\n const { id3Track } = this;\n if (!id3Track || !id3Track.cues || !id3Track.cues.length) {\n return;\n }\n const foundCue = getClosestCue(id3Track.cues, bufferEnd);\n if (!foundCue) {\n return;\n }\n while (id3Track.cues[0] !== foundCue) {\n id3Track.removeCue(id3Track.cues[0]);\n }\n }\n}\n\nexport default ID3TrackController;\n","/*\n * compute an Exponential Weighted moving average\n * - https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average\n * - heavily inspired from shaka-player\n */\n\nclass EWMA {\n private alpha_: number;\n private estimate_: number;\n private totalWeight_: number;\n\n // About half of the estimated value will be from the last |halfLife| samples by weight.\n constructor (halfLife: number) {\n // Larger values of alpha expire historical data more slowly.\n this.alpha_ = halfLife ? Math.exp(Math.log(0.5) / halfLife) : 0;\n this.estimate_ = 0;\n this.totalWeight_ = 0;\n }\n\n sample (weight: number, value: number) {\n let adjAlpha = Math.pow(this.alpha_, weight);\n this.estimate_ = value * (1 - adjAlpha) + adjAlpha * this.estimate_;\n this.totalWeight_ += weight;\n }\n\n getTotalWeight (): number {\n return this.totalWeight_;\n }\n\n getEstimate (): number {\n if (this.alpha_) {\n let zeroFactor = 1 - Math.pow(this.alpha_, this.totalWeight_);\n return this.estimate_ / zeroFactor;\n } else {\n return this.estimate_;\n }\n }\n}\n\nexport default EWMA;\n","/*\n * EWMA Bandwidth Estimator\n * - heavily inspired from shaka-player\n * Tracks bandwidth samples and estimates available bandwidth.\n * Based on the minimum of two exponentially-weighted moving averages with\n * different half-lives.\n */\n\nimport EWMA from '../utils/ewma';\n\nclass EwmaBandWidthEstimator {\n hls: any;\n\n private defaultEstimate_: number;\n private minWeight_: number;\n private minDelayMs_: number;\n private slow_: EWMA;\n private fast_: EWMA;\n\n // TODO(typescript-hls)\n constructor (hls: any, slow: number, fast: number, defaultEstimate: number) {\n this.hls = hls;\n this.defaultEstimate_ = defaultEstimate;\n this.minWeight_ = 0.001;\n this.minDelayMs_ = 50;\n this.slow_ = new EWMA(slow);\n this.fast_ = new EWMA(fast);\n }\n\n sample (durationMs: number, numBytes: number) {\n durationMs = Math.max(durationMs, this.minDelayMs_);\n let numBits = 8 * numBytes,\n // weight is duration in seconds\n durationS = durationMs / 1000,\n // value is bandwidth in bits/s\n bandwidthInBps = numBits / durationS;\n this.fast_.sample(durationS, bandwidthInBps);\n this.slow_.sample(durationS, bandwidthInBps);\n }\n\n canEstimate (): boolean {\n let fast = this.fast_;\n return (fast && fast.getTotalWeight() >= this.minWeight_);\n }\n\n getEstimate (): number {\n if (this.canEstimate()) {\n // console.log('slow estimate:'+ Math.round(this.slow_.getEstimate()));\n // console.log('fast estimate:'+ Math.round(this.fast_.getEstimate()));\n // Take the minimum of these two estimates. This should have the effect of\n // adapting down quickly, but up more slowly.\n return Math.min(this.fast_.getEstimate(), this.slow_.getEstimate());\n } else {\n return this.defaultEstimate_;\n }\n }\n\n destroy () {\n }\n}\nexport default EwmaBandWidthEstimator;\n","/*\n * simple ABR Controller\n * - compute next level based on last fragment bw heuristics\n * - implement an abandon rules triggered if we have less than 2 frag buffered and if computed bw shows that we risk buffer stalling\n */\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport { ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport EwmaBandWidthEstimator from '../utils/ewma-bandwidth-estimator';\n\nconst { performance } = window;\n\nclass AbrController extends EventHandler {\n constructor (hls) {\n super(hls, Event.FRAG_LOADING,\n Event.FRAG_LOADED,\n Event.FRAG_BUFFERED,\n Event.ERROR);\n this.lastLoadedFragLevel = 0;\n this._nextAutoLevel = -1;\n this.hls = hls;\n this.timer = null;\n this._bwEstimator = null;\n this.onCheck = this._abandonRulesCheck.bind(this);\n }\n\n destroy () {\n this.clearTimer();\n EventHandler.prototype.destroy.call(this);\n }\n\n onFragLoading (data) {\n const frag = data.frag;\n if (frag.type === 'main') {\n if (!this.timer) {\n this.fragCurrent = frag;\n this.timer = setInterval(this.onCheck, 100);\n }\n\n // lazy init of BwEstimator, rationale is that we use different params for Live/VoD\n // so we need to wait for stream manifest / playlist type to instantiate it.\n if (!this._bwEstimator) {\n const hls = this.hls;\n const config = hls.config;\n const level = frag.level;\n const isLive = hls.levels[level].details.live;\n\n let ewmaFast;\n let ewmaSlow;\n if (isLive) {\n ewmaFast = config.abrEwmaFastLive;\n ewmaSlow = config.abrEwmaSlowLive;\n } else {\n ewmaFast = config.abrEwmaFastVoD;\n ewmaSlow = config.abrEwmaSlowVoD;\n }\n this._bwEstimator = new EwmaBandWidthEstimator(hls, ewmaSlow, ewmaFast, config.abrEwmaDefaultEstimate);\n }\n }\n }\n\n _abandonRulesCheck () {\n /*\n monitor fragment retrieval time...\n we compute expected time of arrival of the complete fragment.\n we compare it to expected time of buffer starvation\n */\n const hls = this.hls;\n const video = hls.media;\n const frag = this.fragCurrent;\n\n if (!frag) {\n return;\n }\n\n const loader = frag.loader;\n\n // if loader has been destroyed or loading has been aborted, stop timer and return\n if (!loader || (loader.stats && loader.stats.aborted)) {\n logger.warn('frag loader destroy or aborted, disarm abandonRules');\n this.clearTimer();\n // reset forced auto level value so that next level will be selected\n this._nextAutoLevel = -1;\n return;\n }\n let stats = loader.stats;\n /* only monitor frag retrieval time if\n (video not paused OR first fragment being loaded(ready state === HAVE_NOTHING = 0)) AND autoswitching enabled AND not lowest level (=> means that we have several levels) */\n if (video && stats && ((!video.paused && (video.playbackRate !== 0)) || !video.readyState) && frag.autoLevel && frag.level) {\n const requestDelay = performance.now() - stats.trequest;\n const playbackRate = Math.abs(video.playbackRate);\n\n // monitor fragment load progress after half of expected fragment duration,to stabilize bitrate\n if (requestDelay > (500 * frag.duration / playbackRate)) {\n const levels = hls.levels;\n const loadRate = Math.max(1, stats.bw ? stats.bw / 8 : stats.loaded * 1000 / requestDelay); // byte/s; at least 1 byte/s to avoid division by zero\n\n // compute expected fragment length using frag duration and level bitrate. also ensure that expected len is gte than already loaded size\n const level = levels[frag.level];\n if (!level) {\n return;\n }\n const levelBitrate = level.realBitrate ? Math.max(level.realBitrate, level.bitrate) : level.bitrate;\n const expectedLen = stats.total ? stats.total : Math.max(stats.loaded, Math.round(frag.duration * levelBitrate / 8));\n const pos = video.currentTime;\n const fragLoadedDelay = (expectedLen - stats.loaded) / loadRate;\n const bufferStarvationDelay = (BufferHelper.bufferInfo(video, pos, hls.config.maxBufferHole).end - pos) / playbackRate;\n\n // consider emergency switch down only if we have less than 2 frag buffered AND\n // time to finish loading current fragment is bigger than buffer starvation delay\n // ie if we risk buffer starvation if bw does not increase quickly\n if ((bufferStarvationDelay < (2 * frag.duration / playbackRate)) && (fragLoadedDelay > bufferStarvationDelay)) {\n const minAutoLevel = hls.minAutoLevel;\n let fragLevelNextLoadedDelay;\n let nextLoadLevel;\n // lets iterate through lower level and try to find the biggest one that could avoid rebuffering\n // we start from current level - 1 and we step down , until we find a matching level\n for (nextLoadLevel = frag.level - 1; nextLoadLevel > minAutoLevel; nextLoadLevel--) {\n // compute time to load next fragment at lower level\n // 0.8 : consider only 80% of current bw to be conservative\n // 8 = bits per byte (bps/Bps)\n const levelNextBitrate = levels[nextLoadLevel].realBitrate\n ? Math.max(levels[nextLoadLevel].realBitrate, levels[nextLoadLevel].bitrate)\n : levels[nextLoadLevel].bitrate;\n\n const fragLevelNextLoadedDelay = frag.duration * levelNextBitrate / (8 * 0.8 * loadRate);\n\n if (fragLevelNextLoadedDelay < bufferStarvationDelay) {\n // we found a lower level that be rebuffering free with current estimated bw !\n break;\n }\n }\n // only emergency switch down if it takes less time to load new fragment at lowest level instead\n // of finishing loading current one ...\n if (fragLevelNextLoadedDelay < fragLoadedDelay) {\n logger.warn(`loading too slow, abort fragment loading and switch to level ${nextLoadLevel}:fragLoadedDelay[${nextLoadLevel}]<fragLoadedDelay[${frag.level - 1}];bufferStarvationDelay:${fragLevelNextLoadedDelay.toFixed(1)}<${fragLoadedDelay.toFixed(1)}:${bufferStarvationDelay.toFixed(1)}`);\n // force next load level in auto mode\n hls.nextLoadLevel = nextLoadLevel;\n // update bw estimate for this fragment before cancelling load (this will help reducing the bw)\n this._bwEstimator.sample(requestDelay, stats.loaded);\n // abort fragment loading\n loader.abort();\n // stop abandon rules timer\n this.clearTimer();\n hls.trigger(Event.FRAG_LOAD_EMERGENCY_ABORTED, { frag: frag, stats: stats });\n }\n }\n }\n }\n }\n\n onFragLoaded (data) {\n const frag = data.frag;\n if (frag.type === 'main' && Number.isFinite(frag.sn)) {\n // stop monitoring bw once frag loaded\n this.clearTimer();\n // store level id after successful fragment load\n this.lastLoadedFragLevel = frag.level;\n // reset forced auto level value so that next level will be selected\n this._nextAutoLevel = -1;\n\n // compute level average bitrate\n if (this.hls.config.abrMaxWithRealBitrate) {\n const level = this.hls.levels[frag.level];\n let loadedBytes = (level.loaded ? level.loaded.bytes : 0) + data.stats.loaded;\n let loadedDuration = (level.loaded ? level.loaded.duration : 0) + data.frag.duration;\n level.loaded = { bytes: loadedBytes, duration: loadedDuration };\n level.realBitrate = Math.round(8 * loadedBytes / loadedDuration);\n }\n // if fragment has been loaded to perform a bitrate test,\n if (data.frag.bitrateTest) {\n let stats = data.stats;\n stats.tparsed = stats.tbuffered = stats.tload;\n this.onFragBuffered(data);\n }\n }\n }\n\n onFragBuffered (data) {\n const stats = data.stats;\n const frag = data.frag;\n // only update stats on first frag buffering\n // if same frag is loaded multiple times, it might be in browser cache, and loaded quickly\n // and leading to wrong bw estimation\n // on bitrate test, also only update stats once (if tload = tbuffered == on FRAG_LOADED)\n if (stats.aborted !== true && frag.type === 'main' && Number.isFinite(frag.sn) && ((!frag.bitrateTest || stats.tload === stats.tbuffered))) {\n // use tparsed-trequest instead of tbuffered-trequest to compute fragLoadingProcessing; rationale is that buffer appending only happens once media is attached\n // in case we use config.startFragPrefetch while media is not attached yet, fragment might be parsed while media not attached yet, but it will only be buffered on media attached\n // as a consequence it could happen really late in the process. meaning that appending duration might appears huge ... leading to underestimated throughput estimation\n let fragLoadingProcessingMs = stats.tparsed - stats.trequest;\n logger.log(`latency/loading/parsing/append/kbps:${Math.round(stats.tfirst - stats.trequest)}/${Math.round(stats.tload - stats.tfirst)}/${Math.round(stats.tparsed - stats.tload)}/${Math.round(stats.tbuffered - stats.tparsed)}/${Math.round(8 * stats.loaded / (stats.tbuffered - stats.trequest))}`);\n this._bwEstimator.sample(fragLoadingProcessingMs, stats.loaded);\n stats.bwEstimate = this._bwEstimator.getEstimate();\n // if fragment has been loaded to perform a bitrate test, (hls.startLevel = -1), store bitrate test delay duration\n if (frag.bitrateTest) {\n this.bitrateTestDelay = fragLoadingProcessingMs / 1000;\n } else {\n this.bitrateTestDelay = 0;\n }\n }\n }\n\n onError (data) {\n // stop timer in case of frag loading error\n switch (data.details) {\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n this.clearTimer();\n break;\n default:\n break;\n }\n }\n\n clearTimer () {\n clearInterval(this.timer);\n this.timer = null;\n }\n\n // return next auto level\n get nextAutoLevel () {\n const forcedAutoLevel = this._nextAutoLevel;\n const bwEstimator = this._bwEstimator;\n // in case next auto level has been forced, and bw not available or not reliable, return forced value\n if (forcedAutoLevel !== -1 && (!bwEstimator || !bwEstimator.canEstimate())) {\n return forcedAutoLevel;\n }\n\n // compute next level using ABR logic\n let nextABRAutoLevel = this._nextABRAutoLevel;\n // if forced auto level has been defined, use it to cap ABR computed quality level\n if (forcedAutoLevel !== -1) {\n nextABRAutoLevel = Math.min(forcedAutoLevel, nextABRAutoLevel);\n }\n\n return nextABRAutoLevel;\n }\n get _nextABRAutoLevel () {\n let hls = this.hls;\n const { maxAutoLevel, levels, config, minAutoLevel } = hls;\n const video = hls.media;\n const currentLevel = this.lastLoadedFragLevel;\n const currentFragDuration = this.fragCurrent ? this.fragCurrent.duration : 0;\n const pos = (video ? video.currentTime : 0);\n\n // playbackRate is the absolute value of the playback rate; if video.playbackRate is 0, we use 1 to load as\n // if we're playing back at the normal rate.\n const playbackRate = ((video && (video.playbackRate !== 0)) ? Math.abs(video.playbackRate) : 1.0);\n const avgbw = this._bwEstimator ? this._bwEstimator.getEstimate() : config.abrEwmaDefaultEstimate;\n // bufferStarvationDelay is the wall-clock time left until the playback buffer is exhausted.\n const bufferStarvationDelay = (BufferHelper.bufferInfo(video, pos, config.maxBufferHole).end - pos) / playbackRate;\n\n // First, look to see if we can find a level matching with our avg bandwidth AND that could also guarantee no rebuffering at all\n let bestLevel = this._findBestLevel(currentLevel, currentFragDuration, avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay, config.abrBandWidthFactor, config.abrBandWidthUpFactor, levels);\n if (bestLevel >= 0) {\n return bestLevel;\n } else {\n logger.trace('rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering');\n // not possible to get rid of rebuffering ... let's try to find level that will guarantee less than maxStarvationDelay of rebuffering\n // if no matching level found, logic will return 0\n let maxStarvationDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxStarvationDelay) : config.maxStarvationDelay;\n let bwFactor = config.abrBandWidthFactor;\n let bwUpFactor = config.abrBandWidthUpFactor;\n\n if (bufferStarvationDelay === 0) {\n // in case buffer is empty, let's check if previous fragment was loaded to perform a bitrate test\n let bitrateTestDelay = this.bitrateTestDelay;\n if (bitrateTestDelay) {\n // if it is the case, then we need to adjust our max starvation delay using maxLoadingDelay config value\n // max video loading delay used in automatic start level selection :\n // in that mode ABR controller will ensure that video loading time (ie the time to fetch the first fragment at lowest quality level +\n // the time to fetch the fragment at the appropriate quality level is less than ```maxLoadingDelay``` )\n // cap maxLoadingDelay and ensure it is not bigger 'than bitrate test' frag duration\n const maxLoadingDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxLoadingDelay) : config.maxLoadingDelay;\n maxStarvationDelay = maxLoadingDelay - bitrateTestDelay;\n logger.trace(`bitrate test took ${Math.round(1000 * bitrateTestDelay)}ms, set first fragment max fetchDuration to ${Math.round(1000 * maxStarvationDelay)} ms`);\n // don't use conservative factor on bitrate test\n bwFactor = bwUpFactor = 1;\n }\n }\n bestLevel = this._findBestLevel(currentLevel, currentFragDuration, avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay + maxStarvationDelay, bwFactor, bwUpFactor, levels);\n return Math.max(bestLevel, 0);\n }\n }\n\n _findBestLevel (currentLevel, currentFragDuration, currentBw, minAutoLevel, maxAutoLevel, maxFetchDuration, bwFactor, bwUpFactor, levels) {\n for (let i = maxAutoLevel; i >= minAutoLevel; i--) {\n let levelInfo = levels[i];\n\n if (!levelInfo) {\n continue;\n }\n\n const levelDetails = levelInfo.details;\n const avgDuration = levelDetails ? levelDetails.totalduration / levelDetails.fragments.length : currentFragDuration;\n const live = levelDetails ? levelDetails.live : false;\n\n let adjustedbw;\n // follow algorithm captured from stagefright :\n // https://android.googlesource.com/platform/frameworks/av/+/master/media/libstagefright/httplive/LiveSession.cpp\n // Pick the highest bandwidth stream below or equal to estimated bandwidth.\n // consider only 80% of the available bandwidth, but if we are switching up,\n // be even more conservative (70%) to avoid overestimating and immediately\n // switching back.\n if (i <= currentLevel) {\n adjustedbw = bwFactor * currentBw;\n } else {\n adjustedbw = bwUpFactor * currentBw;\n }\n\n const bitrate = levels[i].realBitrate ? Math.max(levels[i].realBitrate, levels[i].bitrate) : levels[i].bitrate;\n const fetchDuration = bitrate * avgDuration / adjustedbw;\n\n logger.trace(`level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: ${i}/${Math.round(adjustedbw)}/${bitrate}/${avgDuration}/${maxFetchDuration}/${fetchDuration}`);\n // if adjusted bw is greater than level bitrate AND\n if (adjustedbw > bitrate &&\n // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches\n // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...\n // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that _findBestLevel will return -1\n (!fetchDuration || (live && !this.bitrateTestDelay) || fetchDuration < maxFetchDuration)) {\n // as we are looping from highest to lowest, this will return the best achievable quality level\n return i;\n }\n }\n // not enough time budget even with quality level 0 ... rebuffering might happen\n return -1;\n }\n\n set nextAutoLevel (nextLevel) {\n this._nextAutoLevel = nextLevel;\n }\n}\n\nexport default AbrController;\n","/*\n * Buffer Controller\n */\n\nimport Events from '../events';\nimport EventHandler from '../event-handler';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { getMediaSource } from '../utils/mediasource-helper';\n\nimport { TrackSet } from '../types/track';\nimport { Segment } from '../types/segment';\nimport { BufferControllerConfig } from '../config';\n\n// Add extension properties to SourceBuffers from the DOM API.\ntype ExtendedSourceBuffer = SourceBuffer & {\n ended?: boolean\n};\n\ntype SourceBufferName = 'video' | 'audio';\ntype SourceBuffers = Partial<Record<SourceBufferName, ExtendedSourceBuffer>>;\n\ninterface SourceBufferFlushRange {\n start: number;\n end: number;\n type: SourceBufferName\n}\n\nconst MediaSource = getMediaSource();\n\nclass BufferController extends EventHandler {\n // the value that we have set mediasource.duration to\n // (the actual duration may be tweaked slighly by the browser)\n private _msDuration: number | null = null;\n // the value that we want to set mediaSource.duration to\n private _levelDuration: number | null = null;\n // the target duration of the current media playlist\n private _levelTargetDuration: number = 10;\n // current stream state: true - for live broadcast, false - for VoD content\n private _live: boolean | null = null;\n // cache the self generated object url to detect hijack of video tag\n private _objectUrl: string | null = null;\n\n // signals that the sourceBuffers need to be flushed\n private _needsFlush: boolean = false;\n\n // signals that mediaSource should have endOfStream called\n private _needsEos: boolean = false;\n\n private config: BufferControllerConfig;\n\n // this is optional because this property is removed from the class sometimes\n public audioTimestampOffset?: number;\n\n // The number of BUFFER_CODEC events received before any sourceBuffers are created\n public bufferCodecEventsExpected: number = 0;\n\n // The total number of BUFFER_CODEC events received\n private _bufferCodecEventsTotal: number = 0;\n\n // A reference to the attached media element\n public media: HTMLMediaElement | null = null;\n\n // A reference to the active media source\n public mediaSource: MediaSource | null = null;\n\n // List of pending segments to be appended to source buffer\n public segments: Segment[] = [];\n\n public parent?: string;\n\n // A guard to see if we are currently appending to the source buffer\n public appending: boolean = false;\n\n // counters\n public appended: number = 0;\n public appendError: number = 0;\n public flushBufferCounter: number = 0;\n\n public tracks: TrackSet = {};\n public pendingTracks: TrackSet = {};\n public sourceBuffer: SourceBuffers = {};\n public flushRange: SourceBufferFlushRange[] = [];\n\n constructor (hls: any) {\n super(hls,\n Events.MEDIA_ATTACHING,\n Events.MEDIA_DETACHING,\n Events.MANIFEST_PARSED,\n Events.BUFFER_RESET,\n Events.BUFFER_APPENDING,\n Events.BUFFER_CODECS,\n Events.BUFFER_EOS,\n Events.BUFFER_FLUSHING,\n Events.LEVEL_PTS_UPDATED,\n Events.LEVEL_UPDATED);\n\n this.config = hls.config;\n }\n\n destroy () {\n EventHandler.prototype.destroy.call(this);\n }\n\n onLevelPtsUpdated (data: { type: SourceBufferName, start: number }) {\n let type = data.type;\n let audioTrack = this.tracks.audio;\n\n // Adjusting `SourceBuffer.timestampOffset` (desired point in the timeline where the next frames should be appended)\n // in Chrome browser when we detect MPEG audio container and time delta between level PTS and `SourceBuffer.timestampOffset`\n // is greater than 100ms (this is enough to handle seek for VOD or level change for LIVE videos). At the time of change we issue\n // `SourceBuffer.abort()` and adjusting `SourceBuffer.timestampOffset` if `SourceBuffer.updating` is false or awaiting `updateend`\n // event if SB is in updating state.\n // More info here: https://github.com/video-dev/hls.js/issues/332#issuecomment-257986486\n\n if (type === 'audio' && audioTrack && audioTrack.container === 'audio/mpeg') { // Chrome audio mp3 track\n let audioBuffer = this.sourceBuffer.audio;\n if (!audioBuffer) {\n throw Error('Level PTS Updated and source buffer for audio uninitalized');\n }\n\n let delta = Math.abs(audioBuffer.timestampOffset - data.start);\n\n // adjust timestamp offset if time delta is greater than 100ms\n if (delta > 0.1) {\n let updating = audioBuffer.updating;\n\n try {\n audioBuffer.abort();\n } catch (err) {\n logger.warn('can not abort audio buffer: ' + err);\n }\n\n if (!updating) {\n logger.warn('change mpeg audio timestamp offset from ' + audioBuffer.timestampOffset + ' to ' + data.start);\n audioBuffer.timestampOffset = data.start;\n } else {\n this.audioTimestampOffset = data.start;\n }\n }\n }\n }\n\n onManifestParsed (data: { altAudio: boolean, audio: boolean, video: boolean }) {\n // in case of alt audio (where all tracks have urls) 2 BUFFER_CODECS events will be triggered, one per stream controller\n // sourcebuffers will be created all at once when the expected nb of tracks will be reached\n // in case alt audio is not used, only one BUFFER_CODEC event will be fired from main stream controller\n // it will contain the expected nb of source buffers, no need to compute it\n let codecEvents: number = 2;\n if (data.audio && !data.video || !data.altAudio) {\n codecEvents = 1;\n }\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = codecEvents;\n\n logger.log(`${this.bufferCodecEventsExpected} bufferCodec event(s) expected`);\n }\n\n onMediaAttaching (data: { media: HTMLMediaElement }) {\n let media = this.media = data.media;\n if (media && MediaSource) {\n // setup the media source\n let ms = this.mediaSource = new MediaSource();\n // Media Source listeners\n ms.addEventListener('sourceopen', this._onMediaSourceOpen);\n ms.addEventListener('sourceended', this._onMediaSourceEnded);\n ms.addEventListener('sourceclose', this._onMediaSourceClose);\n // link video and media Source\n media.src = window.URL.createObjectURL(ms);\n // cache the locally generated object url\n this._objectUrl = media.src;\n }\n }\n\n onMediaDetaching () {\n logger.log('media source detaching');\n let ms = this.mediaSource;\n if (ms) {\n if (ms.readyState === 'open') {\n try {\n // endOfStream could trigger exception if any sourcebuffer is in updating state\n // we don't really care about checking sourcebuffer state here,\n // as we are anyway detaching the MediaSource\n // let's just avoid this exception to propagate\n ms.endOfStream();\n } catch (err) {\n logger.warn(`onMediaDetaching:${err.message} while calling endOfStream`);\n }\n }\n ms.removeEventListener('sourceopen', this._onMediaSourceOpen);\n ms.removeEventListener('sourceended', this._onMediaSourceEnded);\n ms.removeEventListener('sourceclose', this._onMediaSourceClose);\n\n // Detach properly the MediaSource from the HTMLMediaElement as\n // suggested in https://github.com/w3c/media-source/issues/53.\n if (this.media) {\n if (this._objectUrl) {\n window.URL.revokeObjectURL(this._objectUrl);\n }\n\n // clean up video tag src only if it's our own url. some external libraries might\n // hijack the video tag and change its 'src' without destroying the Hls instance first\n if (this.media.src === this._objectUrl) {\n this.media.removeAttribute('src');\n this.media.load();\n } else {\n logger.warn('media.src was changed by a third party - skip cleanup');\n }\n }\n\n this.mediaSource = null;\n this.media = null;\n this._objectUrl = null;\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal;\n this.pendingTracks = {};\n this.tracks = {};\n this.sourceBuffer = {};\n this.flushRange = [];\n this.segments = [];\n this.appended = 0;\n }\n\n this.hls.trigger(Events.MEDIA_DETACHED);\n }\n\n checkPendingTracks () {\n let { bufferCodecEventsExpected, pendingTracks } = this;\n\n // Check if we've received all of the expected bufferCodec events. When none remain, create all the sourceBuffers at once.\n // This is important because the MSE spec allows implementations to throw QuotaExceededErrors if creating new sourceBuffers after\n // data has been appended to existing ones.\n // 2 tracks is the max (one for audio, one for video). If we've reach this max go ahead and create the buffers.\n const pendingTracksCount = Object.keys(pendingTracks).length;\n if ((pendingTracksCount && !bufferCodecEventsExpected) || pendingTracksCount === 2) {\n // ok, let's create them now !\n this.createSourceBuffers(pendingTracks);\n this.pendingTracks = {};\n // append any pending segments now !\n this.doAppending();\n }\n }\n\n private _onMediaSourceOpen = () => {\n logger.log('media source opened');\n this.hls.trigger(Events.MEDIA_ATTACHED, { media: this.media });\n let mediaSource = this.mediaSource;\n if (mediaSource) {\n // once received, don't listen anymore to sourceopen event\n mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);\n }\n this.checkPendingTracks();\n }\n\n private _onMediaSourceClose = () => {\n logger.log('media source closed');\n }\n\n private _onMediaSourceEnded = () => {\n logger.log('media source ended');\n }\n\n private _onSBUpdateEnd = () => {\n // update timestampOffset\n if (this.audioTimestampOffset && this.sourceBuffer.audio) {\n let audioBuffer = this.sourceBuffer.audio;\n\n logger.warn(`change mpeg audio timestamp offset from ${audioBuffer.timestampOffset} to ${this.audioTimestampOffset}`);\n audioBuffer.timestampOffset = this.audioTimestampOffset;\n delete this.audioTimestampOffset;\n }\n\n if (this._needsFlush) {\n this.doFlush();\n }\n\n if (this._needsEos) {\n this.checkEos();\n }\n\n this.appending = false;\n let parent = this.parent;\n // count nb of pending segments waiting for appending on this sourcebuffer\n let pending = this.segments.reduce((counter, segment) => (segment.parent === parent) ? counter + 1 : counter, 0);\n\n // this.sourceBuffer is better to use than media.buffered as it is closer to the PTS data from the fragments\n const timeRanges: Partial<Record<SourceBufferName, TimeRanges>> = {};\n const sbSet = this.sourceBuffer;\n for (let streamType in sbSet) {\n const sb = sbSet[streamType as SourceBufferName];\n if (!sb) {\n throw Error(`handling source buffer update end error: source buffer for ${streamType} uninitilized and unable to update buffered TimeRanges.`);\n }\n timeRanges[streamType as SourceBufferName] = sb.buffered;\n }\n\n this.hls.trigger(Events.BUFFER_APPENDED, { parent, pending, timeRanges });\n // don't append in flushing mode\n if (!this._needsFlush) {\n this.doAppending();\n }\n\n this.updateMediaElementDuration();\n\n // appending goes first\n if (pending === 0) {\n this.flushLiveBackBuffer();\n }\n }\n\n private _onSBUpdateError = (event: Event) => {\n logger.error('sourceBuffer error:', event);\n // according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error\n // this error might not always be fatal (it is fatal if decode error is set, in that case\n // it will be followed by a mediaElement error ...)\n this.hls.trigger(Events.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.BUFFER_APPENDING_ERROR, fatal: false });\n // we don't need to do more than that, as accordin to the spec, updateend will be fired just after\n }\n\n onBufferReset () {\n const sourceBuffer = this.sourceBuffer;\n for (let type in sourceBuffer) {\n const sb = sourceBuffer[type];\n try {\n if (sb) {\n if (this.mediaSource) {\n this.mediaSource.removeSourceBuffer(sb);\n }\n sb.removeEventListener('updateend', this._onSBUpdateEnd);\n sb.removeEventListener('error', this._onSBUpdateError);\n }\n } catch (err) {\n }\n }\n this.sourceBuffer = {};\n this.flushRange = [];\n this.segments = [];\n this.appended = 0;\n }\n\n onBufferCodecs (tracks: TrackSet) {\n // if source buffer(s) not created yet, appended buffer tracks in this.pendingTracks\n // if sourcebuffers already created, do nothing ...\n if (Object.keys(this.sourceBuffer).length) {\n return;\n }\n\n Object.keys(tracks).forEach(trackName => {\n this.pendingTracks[trackName] = tracks[trackName];\n });\n\n this.bufferCodecEventsExpected = Math.max(this.bufferCodecEventsExpected - 1, 0);\n if (this.mediaSource && this.mediaSource.readyState === 'open') {\n this.checkPendingTracks();\n }\n }\n\n createSourceBuffers (tracks: TrackSet) {\n const { sourceBuffer, mediaSource } = this;\n if (!mediaSource) {\n throw Error('createSourceBuffers called when mediaSource was null');\n }\n\n for (let trackName in tracks) {\n if (!sourceBuffer[trackName]) {\n let track = tracks[trackName as keyof TrackSet];\n if (!track) {\n throw Error(`source buffer exists for track ${trackName}, however track does not`);\n }\n // use levelCodec as first priority\n let codec = track.levelCodec || track.codec;\n let mimeType = `${track.container};codecs=${codec}`;\n logger.log(`creating sourceBuffer(${mimeType})`);\n try {\n let sb = sourceBuffer[trackName] = mediaSource.addSourceBuffer(mimeType);\n sb.addEventListener('updateend', this._onSBUpdateEnd);\n sb.addEventListener('error', this._onSBUpdateError);\n this.tracks[trackName] = {\n buffer: sb,\n codec: codec,\n id: track.id,\n container: track.container,\n levelCodec: track.levelCodec\n };\n } catch (err) {\n logger.error(`error while trying to add sourceBuffer:${err.message}`);\n this.hls.trigger(Events.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: ErrorDetails.BUFFER_ADD_CODEC_ERROR, fatal: false, err: err, mimeType: mimeType });\n }\n }\n }\n this.hls.trigger(Events.BUFFER_CREATED, { tracks: this.tracks });\n }\n\n onBufferAppending (data: Segment) {\n if (!this._needsFlush) {\n if (!this.segments) {\n this.segments = [ data ];\n } else {\n this.segments.push(data);\n }\n\n this.doAppending();\n }\n }\n\n // on BUFFER_EOS mark matching sourcebuffer(s) as ended and trigger checkEos()\n // an undefined data.type will mark all buffers as EOS.\n onBufferEos (data: { type?: SourceBufferName }) {\n for (const type in this.sourceBuffer) {\n if (!data.type || data.type === type) {\n const sb = this.sourceBuffer[type as SourceBufferName];\n if (sb && !sb.ended) {\n sb.ended = true;\n logger.log(`${type} sourceBuffer now EOS`);\n }\n }\n }\n\n this.checkEos();\n }\n\n // if all source buffers are marked as ended, signal endOfStream() to MediaSource.\n checkEos () {\n const { sourceBuffer, mediaSource } = this;\n if (!mediaSource || mediaSource.readyState !== 'open') {\n this._needsEos = false;\n return;\n }\n\n for (let type in sourceBuffer) {\n const sb = sourceBuffer[type as SourceBufferName];\n if (!sb) continue;\n\n if (!sb.ended) {\n return;\n }\n\n if (sb.updating) {\n this._needsEos = true;\n return;\n }\n }\n\n logger.log('all media data are available, signal endOfStream() to MediaSource and stop loading fragment');\n // Notify the media element that it now has all of the media data\n try {\n mediaSource.endOfStream();\n } catch (e) {\n logger.warn('exception while calling mediaSource.endOfStream()');\n }\n this._needsEos = false;\n }\n\n onBufferFlushing (data: { startOffset: number, endOffset: number, type?: SourceBufferName }) {\n if (data.type) {\n this.flushRange.push({ start: data.startOffset, end: data.endOffset, type: data.type });\n } else {\n this.flushRange.push({ start: data.startOffset, end: data.endOffset, type: 'video' });\n this.flushRange.push({ start: data.startOffset, end: data.endOffset, type: 'audio' });\n }\n\n // attempt flush immediately\n this.flushBufferCounter = 0;\n this.doFlush();\n }\n\n flushLiveBackBuffer () {\n // clear back buffer for live only\n if (!this._live) {\n return;\n }\n\n const liveBackBufferLength = this.config.liveBackBufferLength;\n if (!isFinite(liveBackBufferLength) || liveBackBufferLength < 0) {\n return;\n }\n\n if (!this.media) {\n logger.error('flushLiveBackBuffer called without attaching media');\n return;\n }\n\n const currentTime = this.media.currentTime;\n const sourceBuffer = this.sourceBuffer;\n const bufferTypes = Object.keys(sourceBuffer);\n const targetBackBufferPosition = currentTime - Math.max(liveBackBufferLength, this._levelTargetDuration);\n\n for (let index = bufferTypes.length - 1; index >= 0; index--) {\n const bufferType = bufferTypes[index];\n const sb = sourceBuffer[bufferType as SourceBufferName];\n if (sb) {\n const buffered = sb.buffered;\n // when target buffer start exceeds actual buffer start\n if (buffered.length > 0 && targetBackBufferPosition > buffered.start(0)) {\n // remove buffer up until current time minus minimum back buffer length (removing buffer too close to current\n // time will lead to playback freezing)\n // credits for level target duration - https://github.com/videojs/http-streaming/blob/3132933b6aa99ddefab29c10447624efd6fd6e52/src/segment-loader.js#L91\n if (this.removeBufferRange(bufferType, sb, 0, targetBackBufferPosition)) {\n this.hls.trigger(Events.LIVE_BACK_BUFFER_REACHED, { bufferEnd: targetBackBufferPosition });\n }\n }\n }\n }\n }\n\n onLevelUpdated ({ details }: { details: { totalduration: number, targetduration?: number, averagetargetduration?: number, live: boolean, fragments: any[] } }) {\n if (details.fragments.length > 0) {\n this._levelDuration = details.totalduration + details.fragments[0].start;\n this._levelTargetDuration = details.averagetargetduration || details.targetduration || 10;\n this._live = details.live;\n this.updateMediaElementDuration();\n }\n }\n\n /**\n * Update Media Source duration to current level duration or override to Infinity if configuration parameter\n * 'liveDurationInfinity` is set to `true`\n * More details: https://github.com/video-dev/hls.js/issues/355\n */\n updateMediaElementDuration () {\n let { config } = this;\n let duration: number;\n\n if (this._levelDuration === null ||\n !this.media ||\n !this.mediaSource ||\n !this.sourceBuffer ||\n this.media.readyState === 0 ||\n this.mediaSource.readyState !== 'open') {\n return;\n }\n\n for (let type in this.sourceBuffer) {\n const sb = this.sourceBuffer[type];\n if (sb && sb.updating === true) {\n // can't set duration whilst a buffer is updating\n return;\n }\n }\n\n duration = this.media.duration;\n // initialise to the value that the media source is reporting\n if (this._msDuration === null) {\n this._msDuration = this.mediaSource.duration;\n }\n\n if (this._live === true && config.liveDurationInfinity === true) {\n // Override duration to Infinity\n logger.log('Media Source duration is set to Infinity');\n this._msDuration = this.mediaSource.duration = Infinity;\n } else if ((this._levelDuration > this._msDuration && this._levelDuration > duration) || !Number.isFinite(duration)) {\n // levelDuration was the last value we set.\n // not using mediaSource.duration as the browser may tweak this value\n // only update Media Source duration if its value increase, this is to avoid\n // flushing already buffered portion when switching between quality level\n logger.log(`Updating Media Source duration to ${this._levelDuration.toFixed(3)}`);\n this._msDuration = this.mediaSource.duration = this._levelDuration;\n }\n }\n\n doFlush () {\n // loop through all buffer ranges to flush\n while (this.flushRange.length) {\n let range = this.flushRange[0];\n // flushBuffer will abort any buffer append in progress and flush Audio/Video Buffer\n if (this.flushBuffer(range.start, range.end, range.type)) {\n // range flushed, remove from flush array\n this.flushRange.shift();\n this.flushBufferCounter = 0;\n } else {\n this._needsFlush = true;\n // avoid looping, wait for SB update end to retrigger a flush\n return;\n }\n }\n if (this.flushRange.length === 0) {\n // everything flushed\n this._needsFlush = false;\n\n // let's recompute this.appended, which is used to avoid flush looping\n let appended = 0;\n let sourceBuffer = this.sourceBuffer;\n try {\n for (let type in sourceBuffer) {\n const sb = sourceBuffer[type];\n if (sb) {\n appended += sb.buffered.length;\n }\n }\n } catch (error) {\n // error could be thrown while accessing buffered, in case sourcebuffer has already been removed from MediaSource\n // this is harmess at this stage, catch this to avoid reporting an internal exception\n logger.error('error while accessing sourceBuffer.buffered');\n }\n this.appended = appended;\n this.hls.trigger(Events.BUFFER_FLUSHED);\n }\n }\n\n doAppending () {\n let { config, hls, segments, sourceBuffer } = this;\n if (!Object.keys(sourceBuffer).length) {\n // early exit if no source buffers have been initialized yet\n return;\n }\n\n if (!this.media || this.media.error) {\n this.segments = [];\n logger.error('trying to append although a media error occured, flush segment and abort');\n return;\n }\n\n if (this.appending) {\n // logger.log(`sb appending in progress`);\n return;\n }\n\n const segment = segments.shift();\n if (!segment) { // handle undefined shift\n return;\n }\n\n try {\n const sb = sourceBuffer[segment.type];\n if (!sb) {\n // in case we don't have any source buffer matching with this segment type,\n // it means that Mediasource fails to create sourcebuffer\n // discard this segment, and trigger update end\n this._onSBUpdateEnd();\n return;\n }\n\n if (sb.updating) {\n // if we are still updating the source buffer from the last segment, place this back at the front of the queue\n segments.unshift(segment);\n return;\n }\n\n // reset sourceBuffer ended flag before appending segment\n sb.ended = false;\n // logger.log(`appending ${segment.content} ${type} SB, size:${segment.data.length}, ${segment.parent}`);\n this.parent = segment.parent;\n sb.appendBuffer(segment.data);\n this.appendError = 0;\n this.appended++;\n this.appending = true;\n } catch (err) {\n // in case any error occured while appending, put back segment in segments table\n logger.error(`error while trying to append buffer:${err.message}`);\n segments.unshift(segment);\n let event = { type: ErrorTypes.MEDIA_ERROR, parent: segment.parent, details: '', fatal: false };\n if (err.code === 22) {\n // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror\n // let's stop appending any segments, and report BUFFER_FULL_ERROR error\n this.segments = [];\n event.details = ErrorDetails.BUFFER_FULL_ERROR;\n } else {\n this.appendError++;\n event.details = ErrorDetails.BUFFER_APPEND_ERROR;\n /* with UHD content, we could get loop of quota exceeded error until\n browser is able to evict some data from sourcebuffer. retrying help recovering this\n */\n if (this.appendError > config.appendErrorMaxRetry) {\n logger.log(`fail ${config.appendErrorMaxRetry} times to append segment in sourceBuffer`);\n this.segments = [];\n event.fatal = true;\n }\n }\n hls.trigger(Events.ERROR, event);\n }\n }\n\n /*\n flush specified buffered range,\n return true once range has been flushed.\n as sourceBuffer.remove() is asynchronous, flushBuffer will be retriggered on sourceBuffer update end\n */\n flushBuffer (startOffset: number, endOffset: number, sbType: SourceBufferName): boolean {\n const sourceBuffer = this.sourceBuffer;\n // exit if no sourceBuffers are initialized\n if (!Object.keys(sourceBuffer).length) {\n return true;\n }\n\n let currentTime: string = 'null';\n if (this.media) {\n currentTime = this.media.currentTime.toFixed(3);\n }\n logger.log(`flushBuffer,pos/start/end: ${currentTime}/${startOffset}/${endOffset}`);\n\n // safeguard to avoid infinite looping : don't try to flush more than the nb of appended segments\n if (this.flushBufferCounter >= this.appended) {\n logger.warn('abort flushing too many retries');\n return true;\n }\n\n const sb = sourceBuffer[sbType];\n // we are going to flush buffer, mark source buffer as 'not ended'\n if (sb) {\n sb.ended = false;\n if (!sb.updating) {\n if (this.removeBufferRange(sbType, sb, startOffset, endOffset)) {\n this.flushBufferCounter++;\n return false;\n }\n } else {\n logger.warn('cannot flush, sb updating in progress');\n return false;\n }\n }\n\n logger.log('buffer flushed');\n // everything flushed !\n return true;\n }\n\n /**\n * Removes first buffered range from provided source buffer that lies within given start and end offsets.\n *\n * @param {string} type Type of the source buffer, logging purposes only.\n * @param {SourceBuffer} sb Target SourceBuffer instance.\n * @param {number} startOffset\n * @param {number} endOffset\n *\n * @returns {boolean} True when source buffer remove requested.\n */\n removeBufferRange (type: string, sb: ExtendedSourceBuffer, startOffset: number, endOffset: number): boolean {\n try {\n for (let i = 0; i < sb.buffered.length; i++) {\n let bufStart = sb.buffered.start(i);\n let bufEnd = sb.buffered.end(i);\n let removeStart = Math.max(bufStart, startOffset);\n let removeEnd = Math.min(bufEnd, endOffset);\n\n /* sometimes sourcebuffer.remove() does not flush\n the exact expected time range.\n to avoid rounding issues/infinite loop,\n only flush buffer range of length greater than 500ms.\n */\n if (Math.min(removeEnd, bufEnd) - removeStart > 0.5) {\n let currentTime: string = 'null';\n if (this.media) {\n currentTime = this.media.currentTime.toString();\n }\n\n logger.log(`sb remove ${type} [${removeStart},${removeEnd}], of [${bufStart},${bufEnd}], pos:${currentTime}`);\n sb.remove(removeStart, removeEnd);\n return true;\n }\n }\n } catch (error) {\n logger.warn('removeBufferRange failed', error);\n }\n\n return false;\n }\n}\n\nexport default BufferController;\n","/*\n * cap stream level to media size dimension controller\n*/\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\n\nclass CapLevelController extends EventHandler {\n constructor (hls) {\n super(hls,\n Event.FPS_DROP_LEVEL_CAPPING,\n Event.MEDIA_ATTACHING,\n Event.MANIFEST_PARSED,\n Event.LEVELS_UPDATED,\n Event.BUFFER_CODECS,\n Event.MEDIA_DETACHING);\n\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n this.firstLevel = null;\n this.levels = [];\n this.media = null;\n this.restrictedLevels = [];\n this.timer = null;\n this.clientRect = null;\n }\n\n destroy () {\n if (this.hls.config.capLevelToPlayerSize) {\n this.media = null;\n this.clientRect = null;\n this.stopCapping();\n }\n }\n\n onFpsDropLevelCapping (data) {\n // Don't add a restricted level more than once\n if (CapLevelController.isLevelAllowed(data.droppedLevel, this.restrictedLevels)) {\n this.restrictedLevels.push(data.droppedLevel);\n }\n }\n\n onMediaAttaching (data) {\n this.media = data.media instanceof window.HTMLVideoElement ? data.media : null;\n }\n\n onManifestParsed (data) {\n const hls = this.hls;\n this.restrictedLevels = [];\n this.levels = data.levels;\n this.firstLevel = data.firstLevel;\n if (hls.config.capLevelToPlayerSize && data.video) {\n // Start capping immediately if the manifest has signaled video codecs\n this.startCapping();\n }\n }\n\n // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted\n // to the first level\n onBufferCodecs (data) {\n const hls = this.hls;\n if (hls.config.capLevelToPlayerSize && data.video) {\n // If the manifest did not signal a video codec capping has been deferred until we're certain video is present\n this.startCapping();\n }\n }\n\n onLevelsUpdated (data) {\n this.levels = data.levels;\n }\n\n onMediaDetaching () {\n this.stopCapping();\n }\n\n detectPlayerSize () {\n if (this.media) {\n let levelsLength = this.levels ? this.levels.length : 0;\n if (levelsLength) {\n const hls = this.hls;\n hls.autoLevelCapping = this.getMaxLevel(levelsLength - 1);\n if (hls.autoLevelCapping > this.autoLevelCapping) {\n // if auto level capping has a higher value for the previous one, flush the buffer using nextLevelSwitch\n // usually happen when the user go to the fullscreen mode.\n hls.streamController.nextLevelSwitch();\n }\n this.autoLevelCapping = hls.autoLevelCapping;\n }\n }\n }\n\n /*\n * returns level should be the one with the dimensions equal or greater than the media (player) dimensions (so the video will be downscaled)\n */\n getMaxLevel (capLevelIndex) {\n if (!this.levels) {\n return -1;\n }\n\n const validLevels = this.levels.filter((level, index) =>\n CapLevelController.isLevelAllowed(index, this.restrictedLevels) && index <= capLevelIndex\n );\n\n this.clientRect = null;\n return CapLevelController.getMaxLevelByMediaSize(validLevels, this.mediaWidth, this.mediaHeight);\n }\n\n startCapping () {\n if (this.timer) {\n // Don't reset capping if started twice; this can happen if the manifest signals a video codec\n return;\n }\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n this.hls.firstLevel = this.getMaxLevel(this.firstLevel);\n clearInterval(this.timer);\n this.timer = setInterval(this.detectPlayerSize.bind(this), 1000);\n this.detectPlayerSize();\n }\n\n stopCapping () {\n this.restrictedLevels = [];\n this.firstLevel = null;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n if (this.timer) {\n this.timer = clearInterval(this.timer);\n this.timer = null;\n }\n }\n\n getDimensions () {\n if (this.clientRect) {\n return this.clientRect;\n }\n const media = this.media;\n const boundsRect = {\n width: 0,\n height: 0\n };\n\n if (media) {\n const clientRect = media.getBoundingClientRect();\n boundsRect.width = clientRect.width;\n boundsRect.height = clientRect.height;\n if (!boundsRect.width && !boundsRect.height) {\n // When the media element has no width or height (equivalent to not being in the DOM),\n // then use its width and height attributes (media.width, media.height)\n boundsRect.width = clientRect.right - clientRect.left || media.width || 0;\n boundsRect.height = clientRect.bottom - clientRect.top || media.height || 0;\n }\n }\n this.clientRect = boundsRect;\n return boundsRect;\n }\n\n get mediaWidth () {\n return this.getDimensions().width * CapLevelController.contentScaleFactor;\n }\n\n get mediaHeight () {\n return this.getDimensions().height * CapLevelController.contentScaleFactor;\n }\n\n static get contentScaleFactor () {\n let pixelRatio = 1;\n try {\n pixelRatio = window.devicePixelRatio;\n } catch (e) {}\n return pixelRatio;\n }\n\n static isLevelAllowed (level, restrictedLevels = []) {\n return restrictedLevels.indexOf(level) === -1;\n }\n\n static getMaxLevelByMediaSize (levels, width, height) {\n if (!levels || (levels && !levels.length)) {\n return -1;\n }\n\n // Levels can have the same dimensions but differing bandwidths - since levels are ordered, we can look to the next\n // to determine whether we've chosen the greatest bandwidth for the media's dimensions\n const atGreatestBandiwdth = (curLevel, nextLevel) => {\n if (!nextLevel) {\n return true;\n }\n\n return curLevel.width !== nextLevel.width || curLevel.height !== nextLevel.height;\n };\n\n // If we run through the loop without breaking, the media's dimensions are greater than every level, so default to\n // the max level\n let maxLevelIndex = levels.length - 1;\n\n for (let i = 0; i < levels.length; i += 1) {\n const level = levels[i];\n if ((level.width >= width || level.height >= height) && atGreatestBandiwdth(level, levels[i + 1])) {\n maxLevelIndex = i;\n break;\n }\n }\n\n return maxLevelIndex;\n }\n}\n\nexport default CapLevelController;\n","/*\n * FPS Controller\n*/\n\nimport Event from '../events';\nimport EventHandler from '../event-handler';\nimport { logger } from '../utils/logger';\n\nconst { performance } = window;\n\nclass FPSController extends EventHandler {\n constructor (hls) {\n super(hls, Event.MEDIA_ATTACHING);\n }\n\n destroy () {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.isVideoPlaybackQualityAvailable = false;\n }\n\n onMediaAttaching (data) {\n const config = this.hls.config;\n if (config.capLevelOnFPSDrop) {\n const video = this.video = data.media instanceof window.HTMLVideoElement ? data.media : null;\n if (typeof video.getVideoPlaybackQuality === 'function') {\n this.isVideoPlaybackQualityAvailable = true;\n }\n\n clearInterval(this.timer);\n this.timer = setInterval(this.checkFPSInterval.bind(this), config.fpsDroppedMonitoringPeriod);\n }\n }\n\n checkFPS (video, decodedFrames, droppedFrames) {\n let currentTime = performance.now();\n if (decodedFrames) {\n if (this.lastTime) {\n let currentPeriod = currentTime - this.lastTime,\n currentDropped = droppedFrames - this.lastDroppedFrames,\n currentDecoded = decodedFrames - this.lastDecodedFrames,\n droppedFPS = 1000 * currentDropped / currentPeriod,\n hls = this.hls;\n hls.trigger(Event.FPS_DROP, { currentDropped: currentDropped, currentDecoded: currentDecoded, totalDroppedFrames: droppedFrames });\n if (droppedFPS > 0) {\n // logger.log('checkFPS : droppedFPS/decodedFPS:' + droppedFPS/(1000 * currentDecoded / currentPeriod));\n if (currentDropped > hls.config.fpsDroppedMonitoringThreshold * currentDecoded) {\n let currentLevel = hls.currentLevel;\n logger.warn('drop FPS ratio greater than max allowed value for currentLevel: ' + currentLevel);\n if (currentLevel > 0 && (hls.autoLevelCapping === -1 || hls.autoLevelCapping >= currentLevel)) {\n currentLevel = currentLevel - 1;\n hls.trigger(Event.FPS_DROP_LEVEL_CAPPING, { level: currentLevel, droppedLevel: hls.currentLevel });\n hls.autoLevelCapping = currentLevel;\n hls.streamController.nextLevelSwitch();\n }\n }\n }\n }\n this.lastTime = currentTime;\n this.lastDroppedFrames = droppedFrames;\n this.lastDecodedFrames = decodedFrames;\n }\n }\n\n checkFPSInterval () {\n const video = this.video;\n if (video) {\n if (this.isVideoPlaybackQualityAvailable) {\n let videoPlaybackQuality = video.getVideoPlaybackQuality();\n this.checkFPS(video, videoPlaybackQuality.totalVideoFrames, videoPlaybackQuality.droppedVideoFrames);\n } else {\n this.checkFPS(video, video.webkitDecodedFrameCount, video.webkitDroppedFrameCount);\n }\n }\n }\n}\n\nexport default FPSController;\n","/**\n * XHR based logger\n*/\n\nimport { logger } from '../utils/logger';\n\nclass XhrLoader {\n constructor (config) {\n if (config && config.xhrSetup) {\n this.xhrSetup = config.xhrSetup;\n }\n }\n\n destroy () {\n this.abort();\n this.loader = null;\n }\n\n abort () {\n let loader = this.loader;\n if (loader && loader.readyState !== 4) {\n this.stats.aborted = true;\n loader.abort();\n }\n\n window.clearTimeout(this.requestTimeout);\n this.requestTimeout = null;\n window.clearTimeout(this.retryTimeout);\n this.retryTimeout = null;\n }\n\n load (context, config, callbacks) {\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.stats = { trequest: window.performance.now(), retry: 0 };\n this.retryDelay = config.retryDelay;\n this.loadInternal();\n }\n\n loadInternal () {\n let xhr, context = this.context;\n xhr = this.loader = new window.XMLHttpRequest();\n\n let stats = this.stats;\n stats.tfirst = 0;\n stats.loaded = 0;\n const xhrSetup = this.xhrSetup;\n\n try {\n if (xhrSetup) {\n try {\n xhrSetup(xhr, context.url);\n } catch (e) {\n // fix xhrSetup: (xhr, url) => {xhr.setRequestHeader(\"Content-Language\", \"test\");}\n // not working, as xhr.setRequestHeader expects xhr.readyState === OPEN\n xhr.open('GET', context.url, true);\n xhrSetup(xhr, context.url);\n }\n }\n if (!xhr.readyState) {\n xhr.open('GET', context.url, true);\n }\n } catch (e) {\n // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n this.callbacks.onError({ code: xhr.status, text: e.message }, context, xhr);\n return;\n }\n\n if (context.rangeEnd) {\n xhr.setRequestHeader('Range', 'bytes=' + context.rangeStart + '-' + (context.rangeEnd - 1));\n }\n\n xhr.onreadystatechange = this.readystatechange.bind(this);\n xhr.onprogress = this.loadprogress.bind(this);\n xhr.responseType = context.responseType;\n\n // setup timeout before we perform request\n this.requestTimeout = window.setTimeout(this.loadtimeout.bind(this), this.config.timeout);\n xhr.send();\n }\n\n readystatechange (event) {\n let xhr = event.currentTarget,\n readyState = xhr.readyState,\n stats = this.stats,\n context = this.context,\n config = this.config;\n\n // don't proceed if xhr has been aborted\n if (stats.aborted) {\n return;\n }\n\n // >= HEADERS_RECEIVED\n if (readyState >= 2) {\n // clear xhr timeout and rearm it if readyState less than 4\n window.clearTimeout(this.requestTimeout);\n if (stats.tfirst === 0) {\n stats.tfirst = Math.max(window.performance.now(), stats.trequest);\n }\n\n if (readyState === 4) {\n let status = xhr.status;\n // http status between 200 to 299 are all successful\n if (status >= 200 && status < 300) {\n stats.tload = Math.max(stats.tfirst, window.performance.now());\n let data, len;\n if (context.responseType === 'arraybuffer') {\n data = xhr.response;\n len = data.byteLength;\n } else {\n data = xhr.responseText;\n len = data.length;\n }\n stats.loaded = stats.total = len;\n let response = { url: xhr.responseURL, data: data };\n this.callbacks.onSuccess(response, stats, context, xhr);\n } else {\n // if max nb of retries reached or if http status between 400 and 499 (such error cannot be recovered, retrying is useless), return error\n if (stats.retry >= config.maxRetry || (status >= 400 && status < 499)) {\n logger.error(`${status} while loading ${context.url}`);\n this.callbacks.onError({ code: status, text: xhr.statusText }, context, xhr);\n } else {\n // retry\n logger.warn(`${status} while loading ${context.url}, retrying in ${this.retryDelay}...`);\n // aborts and resets internal state\n this.destroy();\n // schedule retry\n this.retryTimeout = window.setTimeout(this.loadInternal.bind(this), this.retryDelay);\n // set exponential backoff\n this.retryDelay = Math.min(2 * this.retryDelay, config.maxRetryDelay);\n stats.retry++;\n }\n }\n } else {\n // readyState >= 2 AND readyState !==4 (readyState = HEADERS_RECEIVED || LOADING) rearm timeout as xhr not finished yet\n this.requestTimeout = window.setTimeout(this.loadtimeout.bind(this), config.timeout);\n }\n }\n }\n\n loadtimeout () {\n logger.warn(`timeout while loading ${this.context.url}`);\n this.callbacks.onTimeout(this.stats, this.context, null);\n }\n\n loadprogress (event) {\n let xhr = event.currentTarget,\n stats = this.stats;\n\n stats.loaded = event.loaded;\n if (event.lengthComputable) {\n stats.total = event.total;\n }\n\n let onProgress = this.callbacks.onProgress;\n if (onProgress) {\n // third arg is to provide on progress data\n onProgress(stats, this.context, null, xhr);\n }\n }\n}\n\nexport default XhrLoader;\n","import Event from '../events';\nimport TaskLoop from '../task-loop';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\n\n/**\n * @class AudioTrackController\n * @implements {EventHandler}\n *\n * Handles main manifest and audio-track metadata loaded,\n * owns and exposes the selectable audio-tracks data-models.\n *\n * Exposes internal interface to select available audio-tracks.\n *\n * Handles errors on loading audio-track playlists. Manages fallback mechanism\n * with redundants tracks (group-IDs).\n *\n * Handles level-loading and group-ID switches for video (fallback on video levels),\n * and eventually adapts the audio-track group-ID to match.\n *\n * @fires AUDIO_TRACK_LOADING\n * @fires AUDIO_TRACK_SWITCHING\n * @fires AUDIO_TRACKS_UPDATED\n * @fires ERROR\n *\n */\nclass AudioTrackController extends TaskLoop {\n constructor (hls) {\n super(hls,\n Event.MANIFEST_LOADING,\n Event.MANIFEST_PARSED,\n Event.AUDIO_TRACK_LOADED,\n Event.AUDIO_TRACK_SWITCHED,\n Event.LEVEL_LOADED,\n Event.ERROR\n );\n\n /**\n * @private\n * Currently selected index in `tracks`\n * @member {number} trackId\n */\n this._trackId = -1;\n\n /**\n * @private\n * If should select tracks according to default track attribute\n * @member {boolean} _selectDefaultTrack\n */\n this._selectDefaultTrack = true;\n\n /**\n * @public\n * All tracks available\n * @member {AudioTrack[]}\n */\n this.tracks = [];\n\n /**\n * @public\n * List of blacklisted audio track IDs (that have caused failure)\n * @member {number[]}\n */\n this.trackIdBlacklist = Object.create(null);\n\n /**\n * @public\n * The currently running group ID for audio\n * (we grab this on manifest-parsed and new level-loaded)\n * @member {string}\n */\n this.audioGroupId = null;\n }\n\n /**\n * Reset audio tracks on new manifest loading.\n */\n onManifestLoading () {\n this.tracks = [];\n this._trackId = -1;\n this._selectDefaultTrack = true;\n }\n\n /**\n * Store tracks data from manifest parsed data.\n *\n * Trigger AUDIO_TRACKS_UPDATED event.\n *\n * @param {*} data\n */\n onManifestParsed (data) {\n const tracks = this.tracks = data.audioTracks || [];\n this.hls.trigger(Event.AUDIO_TRACKS_UPDATED, { audioTracks: tracks });\n\n this._selectAudioGroup(this.hls.nextLoadLevel);\n }\n\n /**\n * Store track details of loaded track in our data-model.\n *\n * Set-up metadata update interval task for live-mode streams.\n *\n * @param {*} data\n */\n onAudioTrackLoaded (data) {\n if (data.id >= this.tracks.length) {\n logger.warn('Invalid audio track id:', data.id);\n return;\n }\n\n logger.log(`audioTrack ${data.id} loaded`);\n\n this.tracks[data.id].details = data.details;\n\n // check if current playlist is a live playlist\n // and if we have already our reload interval setup\n if (data.details.live && !this.hasInterval()) {\n // if live playlist we will have to reload it periodically\n // set reload period to playlist target duration\n const updatePeriodMs = data.details.targetduration * 1000;\n this.setInterval(updatePeriodMs);\n }\n\n if (!data.details.live && this.hasInterval()) {\n // playlist is not live and timer is scheduled: cancel it\n this.clearInterval();\n }\n }\n\n /**\n * Update the internal group ID to any audio-track we may have set manually\n * or because of a failure-handling fallback.\n *\n * Quality-levels should update to that group ID in this case.\n *\n * @param {*} data\n */\n onAudioTrackSwitched (data) {\n const audioGroupId = this.tracks[data.id].groupId;\n if (audioGroupId && (this.audioGroupId !== audioGroupId)) {\n this.audioGroupId = audioGroupId;\n }\n }\n\n /**\n * When a level gets loaded, if it has redundant audioGroupIds (in the same ordinality as it's redundant URLs)\n * we are setting our audio-group ID internally to the one set, if it is different from the group ID currently set.\n *\n * If group-ID got update, we re-select the appropriate audio-track with this group-ID matching the currently\n * selected one (based on NAME property).\n *\n * @param {*} data\n */\n onLevelLoaded (data) {\n this._selectAudioGroup(data.level);\n }\n\n /**\n * Handle network errors loading audio track manifests\n * and also pausing on any netwok errors.\n *\n * @param {ErrorEventData} data\n */\n onError (data) {\n // Only handle network errors\n if (data.type !== ErrorTypes.NETWORK_ERROR) {\n return;\n }\n\n // If fatal network error, cancel update task\n if (data.fatal) {\n this.clearInterval();\n }\n\n // If not an audio-track loading error don't handle further\n if (data.details !== ErrorDetails.AUDIO_TRACK_LOAD_ERROR) {\n return;\n }\n\n logger.warn('Network failure on audio-track id:', data.context.id);\n this._handleLoadError();\n }\n\n /**\n * @type {AudioTrack[]} Audio-track list we own\n */\n get audioTracks () {\n return this.tracks;\n }\n\n /**\n * @type {number} Index into audio-tracks list of currently selected track.\n */\n get audioTrack () {\n return this._trackId;\n }\n\n /**\n * Select current track by index\n */\n set audioTrack (newId) {\n this._setAudioTrack(newId);\n // If audio track is selected from API then don't choose from the manifest default track\n this._selectDefaultTrack = false;\n }\n\n /**\n * @private\n * @param {number} newId\n */\n _setAudioTrack (newId) {\n // noop on same audio track id as already set\n if (this._trackId === newId && this.tracks[this._trackId].details) {\n logger.debug('Same id as current audio-track passed, and track details available -> no-op');\n return;\n }\n\n // check if level idx is valid\n if (newId < 0 || newId >= this.tracks.length) {\n logger.warn('Invalid id passed to audio-track controller');\n return;\n }\n\n const audioTrack = this.tracks[newId];\n\n logger.log(`Now switching to audio-track index ${newId}`);\n\n // stopping live reloading timer if any\n this.clearInterval();\n this._trackId = newId;\n\n const { url, type, id } = audioTrack;\n this.hls.trigger(Event.AUDIO_TRACK_SWITCHING, { id, type, url });\n this._loadTrackDetailsIfNeeded(audioTrack);\n }\n\n /**\n * @override\n */\n doTick () {\n this._updateTrack(this._trackId);\n }\n\n /**\n * @param levelId\n * @private\n */\n _selectAudioGroup (levelId) {\n const levelInfo = this.hls.levels[levelId];\n\n if (!levelInfo || !levelInfo.audioGroupIds) {\n return;\n }\n\n const audioGroupId = levelInfo.audioGroupIds[levelInfo.urlId];\n if (this.audioGroupId !== audioGroupId) {\n this.audioGroupId = audioGroupId;\n this._selectInitialAudioTrack();\n }\n }\n\n /**\n * Select initial track\n * @private\n */\n _selectInitialAudioTrack () {\n let tracks = this.tracks;\n if (!tracks.length) {\n return;\n }\n\n const currentAudioTrack = this.tracks[this._trackId];\n\n let name = null;\n if (currentAudioTrack) {\n name = currentAudioTrack.name;\n }\n\n // Pre-select default tracks if there are any\n if (this._selectDefaultTrack) {\n const defaultTracks = tracks.filter((track) => track.default);\n if (defaultTracks.length) {\n tracks = defaultTracks;\n } else {\n logger.warn('No default audio tracks defined');\n }\n }\n\n let trackFound = false;\n\n const traverseTracks = () => {\n // Select track with right group ID\n tracks.forEach((track) => {\n if (trackFound) {\n return;\n }\n // We need to match the (pre-)selected group ID\n // and the NAME of the current track.\n if ((!this.audioGroupId || track.groupId === this.audioGroupId) &&\n (!name || name === track.name)) {\n // If there was a previous track try to stay with the same `NAME`.\n // It should be unique across tracks of same group, and consistent through redundant track groups.\n this._setAudioTrack(track.id);\n trackFound = true;\n }\n });\n };\n\n traverseTracks();\n\n if (!trackFound) {\n name = null;\n traverseTracks();\n }\n\n if (!trackFound) {\n logger.error(`No track found for running audio group-ID: ${this.audioGroupId}`);\n\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.AUDIO_TRACK_LOAD_ERROR,\n fatal: true\n });\n }\n }\n\n /**\n * @private\n * @param {AudioTrack} audioTrack\n * @returns {boolean}\n */\n _needsTrackLoading (audioTrack) {\n const { details, url } = audioTrack;\n\n if (!details || details.live) {\n // check if we face an audio track embedded in main playlist (audio track without URI attribute)\n return !!url;\n }\n\n return false;\n }\n\n /**\n * @private\n * @param {AudioTrack} audioTrack\n */\n _loadTrackDetailsIfNeeded (audioTrack) {\n if (this._needsTrackLoading(audioTrack)) {\n const { url, id } = audioTrack;\n // track not retrieved yet, or live playlist we need to (re)load it\n logger.log(`loading audio-track playlist for id: ${id}`);\n this.hls.trigger(Event.AUDIO_TRACK_LOADING, { url, id });\n }\n }\n\n /**\n * @private\n * @param {number} newId\n */\n _updateTrack (newId) {\n // check if level idx is valid\n if (newId < 0 || newId >= this.tracks.length) {\n return;\n }\n\n // stopping live reloading timer if any\n this.clearInterval();\n this._trackId = newId;\n logger.log(`trying to update audio-track ${newId}`);\n const audioTrack = this.tracks[newId];\n this._loadTrackDetailsIfNeeded(audioTrack);\n }\n\n /**\n * @private\n */\n _handleLoadError () {\n // First, let's black list current track id\n this.trackIdBlacklist[this._trackId] = true;\n\n // Let's try to fall back on a functional audio-track with the same group ID\n const previousId = this._trackId;\n const { name, language, groupId } = this.tracks[previousId];\n\n logger.warn(`Loading failed on audio track id: ${previousId}, group-id: ${groupId}, name/language: \"${name}\" / \"${language}\"`);\n\n // Find a non-blacklisted track ID with the same NAME\n // At least a track that is not blacklisted, thus on another group-ID.\n let newId = previousId;\n for (let i = 0; i < this.tracks.length; i++) {\n if (this.trackIdBlacklist[i]) {\n continue;\n }\n const newTrack = this.tracks[i];\n if (newTrack.name === name) {\n newId = i;\n break;\n }\n }\n\n if (newId === previousId) {\n logger.warn(`No fallback audio-track found for name/language: \"${name}\" / \"${language}\"`);\n return;\n }\n\n logger.log('Attempting audio-track fallback id:', newId, 'group-id:', this.tracks[newId].groupId);\n\n this._setAudioTrack(newId);\n }\n}\n\nexport default AudioTrackController;\n","/*\n * Audio Stream Controller\n*/\n\nimport BinarySearch from '../utils/binary-search';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport Demuxer from '../demux/demuxer';\nimport Event from '../events';\nimport * as LevelHelper from './level-helper';\nimport TimeRanges from '../utils/time-ranges';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport { findFragWithCC } from '../utils/discontinuities';\nimport { FragmentState } from './fragment-tracker';\nimport { ElementaryStreamTypes } from '../loader/fragment';\nimport BaseStreamController, { State } from './base-stream-controller';\nimport { MAX_START_GAP_JUMP } from './gap-controller';\nimport { fragmentWithinToleranceTest } from './fragment-finders';\n\nconst { performance } = window;\n\nconst TICK_INTERVAL = 100; // how often to tick in ms\n\nclass AudioStreamController extends BaseStreamController {\n constructor (hls, fragmentTracker) {\n super(hls,\n Event.MEDIA_ATTACHED,\n Event.MEDIA_DETACHING,\n Event.AUDIO_TRACKS_UPDATED,\n Event.AUDIO_TRACK_SWITCHING,\n Event.AUDIO_TRACK_LOADED,\n Event.KEY_LOADED,\n Event.FRAG_LOADED,\n Event.FRAG_PARSING_INIT_SEGMENT,\n Event.FRAG_PARSING_DATA,\n Event.FRAG_PARSED,\n Event.ERROR,\n Event.BUFFER_RESET,\n Event.BUFFER_CREATED,\n Event.BUFFER_APPENDED,\n Event.BUFFER_FLUSHED,\n Event.INIT_PTS_FOUND);\n this.fragmentTracker = fragmentTracker;\n this.config = hls.config;\n this.audioCodecSwap = false;\n this._state = State.STOPPED;\n this.initPTS = [];\n this.waitingFragment = null;\n this.videoTrackCC = null;\n this.waitingVideoCC = null;\n }\n\n // Signal that video PTS was found\n onInitPtsFound (data) {\n let demuxerId = data.id, cc = data.frag.cc, initPTS = data.initPTS;\n if (demuxerId === 'main') {\n // Always update the new INIT PTS\n // Can change due level switch\n this.initPTS[cc] = initPTS;\n this.videoTrackCC = cc;\n logger.log(`InitPTS for cc: ${cc} found from main: ${initPTS}`);\n\n // If we are waiting we need to demux/remux the waiting frag\n // With the new initPTS\n if (this.state === State.WAITING_INIT_PTS) {\n this.tick();\n }\n }\n }\n\n startLoad (startPosition) {\n if (this.tracks) {\n let lastCurrentTime = this.lastCurrentTime;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n this.fragLoadError = 0;\n if (lastCurrentTime > 0 && startPosition === -1) {\n logger.log(`audio:override startPosition with lastCurrentTime @${lastCurrentTime.toFixed(3)}`);\n this.state = State.IDLE;\n } else {\n this.lastCurrentTime = this.startPosition ? this.startPosition : startPosition;\n this.state = State.STARTING;\n }\n this.nextLoadPosition = this.startPosition = this.lastCurrentTime;\n this.tick();\n } else {\n this.startPosition = startPosition;\n this.state = State.STOPPED;\n }\n }\n\n set state (nextState) {\n if (this.state !== nextState) {\n const previousState = this.state;\n this._state = nextState;\n logger.log(`audio stream:${previousState}->${nextState}`);\n }\n }\n\n get state () {\n return this._state;\n }\n\n doTick () {\n let pos, track, trackDetails, hls = this.hls, config = hls.config;\n // logger.log('audioStream:' + this.state);\n switch (this.state) {\n case State.ERROR:\n // don't do anything in error state to avoid breaking further ...\n case State.PAUSED:\n // don't do anything in paused state either ...\n case State.BUFFER_FLUSHING:\n break;\n case State.STARTING:\n this.state = State.WAITING_TRACK;\n this.loadedmetadata = false;\n break;\n case State.IDLE:\n const tracks = this.tracks;\n // audio tracks not received => exit loop\n if (!tracks) {\n break;\n }\n\n // if video not attached AND\n // start fragment already requested OR start frag prefetch disable\n // exit loop\n // => if media not attached but start frag prefetch is enabled and start frag not requested yet, we will not exit loop\n if (!this.media &&\n (this.startFragRequested || !config.startFragPrefetch)) {\n break;\n }\n\n // determine next candidate fragment to be loaded, based on current position and\n // end of buffer position\n // if we have not yet loaded any fragment, start loading from start position\n if (this.loadedmetadata) {\n pos = this.media.currentTime;\n } else {\n pos = this.nextLoadPosition;\n if (pos === undefined) {\n break;\n }\n }\n let media = this.mediaBuffer ? this.mediaBuffer : this.media;\n const videoBuffer = this.videoBuffer ? this.videoBuffer : this.media;\n const maxBufferHole = pos < config.maxBufferHole ? Math.max(MAX_START_GAP_JUMP, config.maxBufferHole) : config.maxBufferHole;\n const bufferInfo = BufferHelper.bufferInfo(media, pos, maxBufferHole);\n const mainBufferInfo = BufferHelper.bufferInfo(videoBuffer, pos, maxBufferHole);\n const bufferLen = bufferInfo.len;\n let bufferEnd = bufferInfo.end;\n const fragPrevious = this.fragPrevious;\n // ensure we buffer at least config.maxBufferLength (default 30s) or config.maxMaxBufferLength (default: 600s)\n // whichever is smaller.\n // once we reach that threshold, don't buffer more than video (mainBufferInfo.len)\n const maxConfigBuffer = Math.min(config.maxBufferLength, config.maxMaxBufferLength);\n const maxBufLen = Math.max(maxConfigBuffer, mainBufferInfo.len);\n const audioSwitch = this.audioSwitch;\n const trackId = this.trackId;\n\n // if buffer length is less than maxBufLen try to load a new fragment\n if ((bufferLen < maxBufLen || audioSwitch) && trackId < tracks.length) {\n trackDetails = tracks[trackId].details;\n // if track info not retrieved yet, switch state and wait for track retrieval\n if (typeof trackDetails === 'undefined') {\n this.state = State.WAITING_TRACK;\n break;\n }\n\n if (!audioSwitch && this._streamEnded(bufferInfo, trackDetails)) {\n this.hls.trigger(Event.BUFFER_EOS, { type: 'audio' });\n this.state = State.ENDED;\n return;\n }\n\n // find fragment index, contiguous with end of buffer position\n let fragments = trackDetails.fragments,\n fragLen = fragments.length,\n start = fragments[0].start,\n end = fragments[fragLen - 1].start + fragments[fragLen - 1].duration,\n frag;\n\n // When switching audio track, reload audio as close as possible to currentTime\n if (audioSwitch) {\n if (trackDetails.live && !trackDetails.PTSKnown) {\n logger.log('switching audiotrack, live stream, unknown PTS,load first fragment');\n bufferEnd = 0;\n } else {\n bufferEnd = pos;\n // if currentTime (pos) is less than alt audio playlist start time, it means that alt audio is ahead of currentTime\n if (trackDetails.PTSKnown && pos < start) {\n // if everything is buffered from pos to start or if audio buffer upfront, let's seek to start\n if (bufferInfo.end > start || bufferInfo.nextStart) {\n logger.log('alt audio track ahead of main track, seek to start of alt audio track');\n this.media.currentTime = start + 0.05;\n } else {\n return;\n }\n }\n }\n }\n if (trackDetails.initSegment && !trackDetails.initSegment.data) {\n frag = trackDetails.initSegment;\n } // eslint-disable-line brace-style\n // if bufferEnd before start of playlist, load first fragment\n else if (bufferEnd <= start) {\n frag = fragments[0];\n if (this.videoTrackCC !== null && frag.cc !== this.videoTrackCC) {\n // Ensure we find a fragment which matches the continuity of the video track\n frag = findFragWithCC(fragments, this.videoTrackCC);\n }\n if (trackDetails.live && frag.loadIdx && frag.loadIdx === this.fragLoadIdx) {\n // we just loaded this first fragment, and we are still lagging behind the start of the live playlist\n // let's force seek to start\n const nextBuffered = bufferInfo.nextStart ? bufferInfo.nextStart : start;\n logger.log(`no alt audio available @currentTime:${this.media.currentTime}, seeking @${nextBuffered + 0.05}`);\n this.media.currentTime = nextBuffered + 0.05;\n return;\n }\n } else {\n let foundFrag;\n let maxFragLookUpTolerance = config.maxFragLookUpTolerance;\n const fragNext = fragPrevious ? fragments[fragPrevious.sn - fragments[0].sn + 1] : undefined;\n\n if (bufferEnd < end) {\n if (bufferEnd > end - maxFragLookUpTolerance) {\n maxFragLookUpTolerance = 0;\n }\n\n // Prefer the next fragment if it's within tolerance\n if (fragNext && !fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, fragNext)) {\n foundFrag = fragNext;\n } else {\n foundFrag = BinarySearch.search(fragments, (frag) => fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, frag));\n }\n } else {\n // reach end of playlist\n foundFrag = fragments[fragLen - 1];\n }\n if (foundFrag) {\n frag = foundFrag;\n start = foundFrag.start;\n // logger.log('find SN matching with pos:' + bufferEnd + ':' + frag.sn);\n if (fragPrevious && frag.level === fragPrevious.level && frag.sn === fragPrevious.sn) {\n if (frag.sn < trackDetails.endSN) {\n frag = fragments[frag.sn + 1 - trackDetails.startSN];\n if (this.fragmentTracker.getState(frag) !== FragmentState.OK) {\n logger.log(`SN just loaded, load next one: ${frag.sn}`);\n }\n } else {\n frag = null;\n }\n }\n }\n }\n if (frag) {\n // logger.log(' loading frag ' + i +',pos/bufEnd:' + pos.toFixed(3) + '/' + bufferEnd.toFixed(3));\n if (frag.encrypted) {\n logger.log(`Loading key for ${frag.sn} of [${trackDetails.startSN} ,${trackDetails.endSN}],track ${trackId}`);\n this.state = State.KEY_LOADING;\n hls.trigger(Event.KEY_LOADING, { frag: frag });\n } else {\n // only load if fragment is not loaded or if in audio switch\n // we force a frag loading in audio switch as fragment tracker might not have evicted previous frags in case of quick audio switch\n this.fragCurrent = frag;\n if (audioSwitch || this.fragmentTracker.getState(frag) === FragmentState.NOT_LOADED) {\n logger.log(`Loading ${frag.sn}, cc: ${frag.cc} of [${trackDetails.startSN} ,${trackDetails.endSN}],track ${trackId}, ${\n this.loadedmetadata ? 'currentTime' : 'nextLoadPosition'\n }: ${pos}, bufferEnd: ${bufferEnd.toFixed(3)}`);\n\n if (frag.sn !== 'initSegment') {\n this.startFragRequested = true;\n }\n if (Number.isFinite(frag.sn)) {\n this.nextLoadPosition = frag.start + frag.duration;\n }\n\n hls.trigger(Event.FRAG_LOADING, { frag });\n this.state = State.FRAG_LOADING;\n }\n }\n }\n }\n break;\n case State.WAITING_TRACK:\n track = this.tracks[this.trackId];\n // check if playlist is already loaded\n if (track && track.details) {\n this.state = State.IDLE;\n }\n\n break;\n case State.FRAG_LOADING_WAITING_RETRY:\n var now = performance.now();\n var retryDate = this.retryDate;\n media = this.media;\n var isSeeking = media && media.seeking;\n // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n if (!retryDate || (now >= retryDate) || isSeeking) {\n logger.log('audioStreamController: retryDate reached, switch back to IDLE state');\n this.state = State.IDLE;\n }\n break;\n case State.WAITING_INIT_PTS:\n // Ensure we don't get stuck in the WAITING_INIT_PTS state if the waiting frag CC doesn't match any initPTS\n const waitingFrag = this.waitingFragment;\n if (waitingFrag) {\n const waitingFragCC = waitingFrag.frag.cc;\n if (this.initPTS[waitingFragCC] !== undefined) {\n this.waitingFragment = null;\n this.state = State.FRAG_LOADING;\n this.onFragLoaded(waitingFrag);\n } else if (this.videoTrackCC !== this.waitingVideoCC) {\n // Drop waiting fragment if videoTrackCC has changed since waitingFragment was set and initPTS was not found\n logger.log(`Waiting fragment cc (${waitingFragCC}) cancelled because video is at cc ${this.videoTrackCC}`);\n this.clearWaitingFragment();\n } else {\n // Drop waiting fragment if an earlier fragment is needed\n const bufferInfo = BufferHelper.bufferInfo(this.mediaBuffer, this.media.currentTime, config.maxBufferHole);\n const waitingFragmentAtPosition = fragmentWithinToleranceTest(bufferInfo.end, config.maxFragLookUpTolerance, waitingFrag.frag);\n if (waitingFragmentAtPosition < 0) {\n logger.log(`Waiting fragment cc (${waitingFragCC}) @ ${waitingFrag.frag.start} cancelled because another fragment at ${bufferInfo.end} is needed`);\n this.clearWaitingFragment();\n }\n }\n } else {\n this.state = State.IDLE;\n }\n\n break;\n case State.STOPPED:\n case State.FRAG_LOADING:\n case State.PARSING:\n case State.PARSED:\n case State.ENDED:\n break;\n default:\n break;\n }\n }\n\n clearWaitingFragment () {\n const waitingFrag = this.waitingFragment;\n if (waitingFrag) {\n this.fragmentTracker.removeFragment(waitingFrag.frag);\n this.waitingFragment = null;\n this.waitingVideoCC = null;\n this.state = State.IDLE;\n }\n }\n\n onMediaAttached (data) {\n let media = this.media = this.mediaBuffer = data.media;\n this.onvseeking = this.onMediaSeeking.bind(this);\n this.onvended = this.onMediaEnded.bind(this);\n media.addEventListener('seeking', this.onvseeking);\n media.addEventListener('ended', this.onvended);\n let config = this.config;\n if (this.tracks && config.autoStartLoad) {\n this.startLoad(config.startPosition);\n }\n }\n\n onMediaDetaching () {\n let media = this.media;\n if (media && media.ended) {\n logger.log('MSE detaching and video ended, reset startPosition');\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n // remove video listeners\n if (media) {\n media.removeEventListener('seeking', this.onvseeking);\n media.removeEventListener('ended', this.onvended);\n this.onvseeking = this.onvseeked = this.onvended = null;\n }\n this.media = this.mediaBuffer = this.videoBuffer = null;\n this.loadedmetadata = false;\n this.fragmentTracker.removeAllFragments();\n this.stopLoad();\n }\n\n onAudioTracksUpdated (data) {\n logger.log('audio tracks updated');\n this.tracks = data.audioTracks;\n }\n\n onAudioTrackSwitching (data) {\n // if any URL found on new audio track, it is an alternate audio track\n let altAudio = !!data.url;\n this.trackId = data.id;\n\n this.fragCurrent = null;\n this.clearWaitingFragment();\n this.state = State.PAUSED;\n // destroy useless demuxer when switching audio to main\n if (!altAudio) {\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = null;\n }\n } else {\n // switching to audio track, start timer if not already started\n this.setInterval(TICK_INTERVAL);\n }\n\n // should we switch tracks ?\n if (altAudio) {\n this.audioSwitch = true;\n // main audio track are handled by stream-controller, just do something if switching to alt audio track\n this.state = State.IDLE;\n }\n this.tick();\n }\n\n onAudioTrackLoaded (data) {\n let newDetails = data.details,\n trackId = data.id,\n track = this.tracks[trackId],\n curDetails = track.details,\n duration = newDetails.totalduration,\n sliding = 0;\n\n logger.log(`track ${trackId} loaded [${newDetails.startSN},${newDetails.endSN}],duration:${duration}`);\n\n if (newDetails.live || (curDetails && curDetails.live)) {\n if (curDetails && newDetails.fragments.length > 0) {\n // we already have details for that level, merge them\n LevelHelper.mergeDetails(curDetails, newDetails);\n sliding = newDetails.fragments[0].start;\n // TODO\n // this.liveSyncPosition = this.computeLivePosition(sliding, curDetails);\n if (newDetails.PTSKnown) {\n logger.log(`live audio playlist sliding:${sliding.toFixed(3)}`);\n } else {\n logger.log('live audio playlist - outdated PTS, unknown sliding');\n }\n } else {\n newDetails.PTSKnown = false;\n logger.log('live audio playlist - first load, unknown sliding');\n }\n } else {\n newDetails.PTSKnown = false;\n }\n track.details = newDetails;\n\n // compute start position\n if (!this.startFragRequested) {\n // compute start position if set to -1. use it straight away if value is defined\n if (this.startPosition === -1) {\n // first, check if start time offset has been set in playlist, if yes, use this value\n let startTimeOffset = newDetails.startTimeOffset;\n if (Number.isFinite(startTimeOffset)) {\n logger.log(`start time offset found in playlist, adjust startPosition to ${startTimeOffset}`);\n this.startPosition = startTimeOffset;\n } else {\n if (newDetails.live) {\n this.startPosition = this.computeLivePosition(sliding, newDetails);\n logger.log(`compute startPosition for audio-track to ${this.startPosition}`);\n } else {\n this.startPosition = 0;\n }\n }\n }\n this.nextLoadPosition = this.startPosition;\n }\n // only switch batck to IDLE state if we were waiting for track to start downloading a new fragment\n if (this.state === State.WAITING_TRACK) {\n this.state = State.IDLE;\n }\n\n // trigger handler right now\n this.tick();\n }\n\n onKeyLoaded () {\n if (this.state === State.KEY_LOADING) {\n this.state = State.IDLE;\n this.tick();\n }\n }\n\n onFragLoaded (data) {\n let fragCurrent = this.fragCurrent,\n fragLoaded = data.frag;\n if (this.state === State.FRAG_LOADING &&\n fragCurrent &&\n fragLoaded.type === 'audio' &&\n fragLoaded.level === fragCurrent.level &&\n fragLoaded.sn === fragCurrent.sn) {\n let track = this.tracks[this.trackId],\n details = track.details,\n duration = details.totalduration,\n trackId = fragCurrent.level,\n sn = fragCurrent.sn,\n cc = fragCurrent.cc,\n audioCodec = this.config.defaultAudioCodec || track.audioCodec || 'mp4a.40.2',\n stats = this.stats = data.stats;\n if (sn === 'initSegment') {\n this.state = State.IDLE;\n\n stats.tparsed = stats.tbuffered = performance.now();\n details.initSegment.data = data.payload;\n this.hls.trigger(Event.FRAG_BUFFERED, { stats: stats, frag: fragCurrent, id: 'audio' });\n this.tick();\n } else {\n this.state = State.PARSING;\n // transmux the MPEG-TS data to ISO-BMFF segments\n this.appended = false;\n if (!this.demuxer) {\n this.demuxer = new Demuxer(this.hls, 'audio');\n }\n\n // Check if we have video initPTS\n // If not we need to wait for it\n let initPTS = this.initPTS[cc];\n let initSegmentData = details.initSegment ? details.initSegment.data : [];\n if (initPTS !== undefined) {\n this.pendingBuffering = true;\n logger.log(`Demuxing ${sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`);\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n let accurateTimeOffset = false; // details.PTSKnown || !details.live;\n this.demuxer.push(data.payload, initSegmentData, audioCodec, null, fragCurrent, duration, accurateTimeOffset, initPTS);\n } else {\n logger.log(`Unknown video PTS for cc ${cc}, waiting for video PTS before demuxing audio frag ${sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`);\n this.waitingFragment = data;\n this.waitingVideoCC = this.videoTrackCC;\n this.state = State.WAITING_INIT_PTS;\n }\n }\n }\n this.fragLoadError = 0;\n }\n\n onFragParsingInitSegment (data) {\n const fragCurrent = this.fragCurrent;\n const fragNew = data.frag;\n if (fragCurrent &&\n data.id === 'audio' &&\n fragNew.sn === fragCurrent.sn &&\n fragNew.level === fragCurrent.level &&\n this.state === State.PARSING) {\n let tracks = data.tracks, track;\n\n // delete any video track found on audio demuxer\n if (tracks.video) {\n delete tracks.video;\n }\n\n // include levelCodec in audio and video tracks\n track = tracks.audio;\n if (track) {\n track.levelCodec = track.codec;\n track.id = data.id;\n this.hls.trigger(Event.BUFFER_CODECS, tracks);\n logger.log(`audio track:audio,container:${track.container},codecs[level/parsed]=[${track.levelCodec}/${track.codec}]`);\n let initSegment = track.initSegment;\n if (initSegment) {\n let appendObj = { type: 'audio', data: initSegment, parent: 'audio', content: 'initSegment' };\n if (this.audioSwitch) {\n this.pendingData = [appendObj];\n } else {\n this.appended = true;\n // arm pending Buffering flag before appending a segment\n this.pendingBuffering = true;\n this.hls.trigger(Event.BUFFER_APPENDING, appendObj);\n }\n }\n // trigger handler right now\n this.tick();\n }\n }\n }\n\n onFragParsingData (data) {\n const fragCurrent = this.fragCurrent;\n const fragNew = data.frag;\n if (fragCurrent &&\n data.id === 'audio' &&\n data.type === 'audio' &&\n fragNew.sn === fragCurrent.sn &&\n fragNew.level === fragCurrent.level &&\n this.state === State.PARSING) {\n let trackId = this.trackId,\n track = this.tracks[trackId],\n hls = this.hls;\n\n if (!Number.isFinite(data.endPTS)) {\n data.endPTS = data.startPTS + fragCurrent.duration;\n data.endDTS = data.startDTS + fragCurrent.duration;\n }\n\n fragCurrent.addElementaryStream(ElementaryStreamTypes.AUDIO);\n\n logger.log(`parsed ${data.type},PTS:[${data.startPTS.toFixed(3)},${data.endPTS.toFixed(3)}],DTS:[${data.startDTS.toFixed(3)}/${data.endDTS.toFixed(3)}],nb:${data.nb}`);\n LevelHelper.updateFragPTSDTS(track.details, fragCurrent, data.startPTS, data.endPTS);\n\n const media = this.media;\n let appendOnBufferFlush = false;\n // Only flush audio from old audio tracks when PTS is known on new audio track\n if (this.audioSwitch) {\n if (media && media.readyState) {\n let currentTime = media.currentTime;\n logger.log('switching audio track : currentTime:' + currentTime);\n if (currentTime >= data.startPTS) {\n logger.log('switching audio track : flushing all audio');\n this.state = State.BUFFER_FLUSHING;\n hls.trigger(Event.BUFFER_FLUSHING, { startOffset: 0, endOffset: Number.POSITIVE_INFINITY, type: 'audio' });\n appendOnBufferFlush = true;\n // Lets announce that the initial audio track switch flush occur\n this.audioSwitch = false;\n hls.trigger(Event.AUDIO_TRACK_SWITCHED, { id: trackId });\n }\n } else {\n // Lets announce that the initial audio track switch flush occur\n this.audioSwitch = false;\n hls.trigger(Event.AUDIO_TRACK_SWITCHED, { id: trackId });\n }\n }\n\n let pendingData = this.pendingData;\n\n if (!pendingData) {\n logger.warn('Apparently attempt to enqueue media payload without codec initialization data upfront');\n hls.trigger(Event.ERROR, { type: ErrorTypes.MEDIA_ERROR, details: null, fatal: true });\n return;\n }\n\n if (!this.audioSwitch) {\n [data.data1, data.data2].forEach(buffer => {\n if (buffer && buffer.length) {\n pendingData.push({ type: data.type, data: buffer, parent: 'audio', content: 'data' });\n }\n });\n if (!appendOnBufferFlush && pendingData.length) {\n pendingData.forEach(appendObj => {\n // only append in PARSING state (rationale is that an appending error could happen synchronously on first segment appending)\n // in that case it is useless to append following segments\n if (this.state === State.PARSING) {\n // arm pending Buffering flag before appending a segment\n this.pendingBuffering = true;\n this.hls.trigger(Event.BUFFER_APPENDING, appendObj);\n }\n });\n this.pendingData = [];\n this.appended = true;\n }\n }\n // trigger handler right now\n this.tick();\n }\n }\n\n onFragParsed (data) {\n const fragCurrent = this.fragCurrent;\n const fragNew = data.frag;\n if (fragCurrent &&\n data.id === 'audio' &&\n fragNew.sn === fragCurrent.sn &&\n fragNew.level === fragCurrent.level &&\n this.state === State.PARSING) {\n this.stats.tparsed = performance.now();\n this.state = State.PARSED;\n this._checkAppendedParsed();\n }\n }\n\n onBufferReset () {\n // reset reference to sourcebuffers\n this.mediaBuffer = this.videoBuffer = null;\n this.loadedmetadata = false;\n }\n\n onBufferCreated (data) {\n let audioTrack = data.tracks.audio;\n if (audioTrack) {\n this.mediaBuffer = audioTrack.buffer;\n this.loadedmetadata = true;\n }\n if (data.tracks.video) {\n this.videoBuffer = data.tracks.video.buffer;\n }\n }\n\n onBufferAppended (data) {\n if (data.parent === 'audio') {\n const state = this.state;\n if (state === State.PARSING || state === State.PARSED) {\n // check if all buffers have been appended\n this.pendingBuffering = (data.pending > 0);\n this._checkAppendedParsed();\n }\n }\n }\n\n _checkAppendedParsed () {\n // trigger handler right now\n if (this.state === State.PARSED && (!this.appended || !this.pendingBuffering)) {\n let frag = this.fragCurrent, stats = this.stats, hls = this.hls;\n if (frag) {\n this.fragPrevious = frag;\n stats.tbuffered = performance.now();\n hls.trigger(Event.FRAG_BUFFERED, { stats: stats, frag: frag, id: 'audio' });\n let media = this.mediaBuffer ? this.mediaBuffer : this.media;\n if (media) {\n logger.log(`audio buffered : ${TimeRanges.toString(media.buffered)}`);\n }\n if (this.audioSwitch && this.appended) {\n this.audioSwitch = false;\n hls.trigger(Event.AUDIO_TRACK_SWITCHED, { id: this.trackId });\n }\n this.state = State.IDLE;\n }\n this.tick();\n }\n }\n\n onError (data) {\n let frag = data.frag;\n // don't handle frag error not related to audio fragment\n if (frag && frag.type !== 'audio') {\n return;\n }\n\n switch (data.details) {\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n const frag = data.frag;\n // don't handle frag error not related to audio fragment\n if (frag && frag.type !== 'audio') {\n break;\n }\n\n if (!data.fatal) {\n let loadError = this.fragLoadError;\n if (loadError) {\n loadError++;\n } else {\n loadError = 1;\n }\n\n const config = this.config;\n if (loadError <= config.fragLoadingMaxRetry) {\n this.fragLoadError = loadError;\n // exponential backoff capped to config.fragLoadingMaxRetryTimeout\n const delay = Math.min(Math.pow(2, loadError - 1) * config.fragLoadingRetryDelay, config.fragLoadingMaxRetryTimeout);\n logger.warn(`AudioStreamController: frag loading failed, retry in ${delay} ms`);\n this.retryDate = performance.now() + delay;\n // retry loading state\n this.state = State.FRAG_LOADING_WAITING_RETRY;\n } else {\n logger.error(`AudioStreamController: ${data.details} reaches max retry, redispatch as fatal ...`);\n // switch error to fatal\n data.fatal = true;\n this.state = State.ERROR;\n }\n }\n break;\n case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:\n case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n // when in ERROR state, don't switch back to IDLE state in case a non-fatal error is received\n if (this.state !== State.ERROR) {\n // if fatal error, stop processing, otherwise move to IDLE to retry loading\n this.state = data.fatal ? State.ERROR : State.IDLE;\n logger.warn(`AudioStreamController: ${data.details} while loading frag, now switching to ${this.state} state ...`);\n }\n break;\n case ErrorDetails.BUFFER_FULL_ERROR:\n // if in appending state\n if (data.parent === 'audio' && (this.state === State.PARSING || this.state === State.PARSED)) {\n const media = this.mediaBuffer,\n currentTime = this.media.currentTime,\n mediaBuffered = media && BufferHelper.isBuffered(media, currentTime) && BufferHelper.isBuffered(media, currentTime + 0.5);\n // reduce max buf len if current position is buffered\n if (mediaBuffered) {\n const config = this.config;\n if (config.maxMaxBufferLength >= config.maxBufferLength) {\n // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n config.maxMaxBufferLength /= 2;\n logger.warn(`AudioStreamController: reduce max buffer length to ${config.maxMaxBufferLength}s`);\n }\n this.state = State.IDLE;\n } else {\n // current position is not buffered, but browser is still complaining about buffer full error\n // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n // in that case flush the whole audio buffer to recover\n logger.warn('AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer');\n this.fragCurrent = null;\n // flush everything\n this.state = State.BUFFER_FLUSHING;\n this.hls.trigger(Event.BUFFER_FLUSHING, { startOffset: 0, endOffset: Number.POSITIVE_INFINITY, type: 'audio' });\n }\n }\n break;\n default:\n break;\n }\n }\n\n onBufferFlushed () {\n let pendingData = this.pendingData;\n if (pendingData && pendingData.length) {\n logger.log('AudioStreamController: appending pending audio data after buffer flushed');\n pendingData.forEach(appendObj => {\n this.hls.trigger(Event.BUFFER_APPENDING, appendObj);\n });\n this.appended = true;\n this.pendingData = [];\n this.state = State.PARSED;\n } else {\n // move to IDLE once flush complete. this should trigger new fragment loading\n this.state = State.IDLE;\n // reset reference to frag\n this.fragPrevious = null;\n this.tick();\n }\n }\n}\nexport default AudioStreamController;\n","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport default (function () {\n if (typeof window !== 'undefined' && window.VTTCue) {\n return window.VTTCue;\n }\n\n let autoKeyword = 'auto';\n let directionSetting = {\n '': true,\n lr: true,\n rl: true\n };\n let alignSetting = {\n start: true,\n middle: true,\n end: true,\n left: true,\n right: true\n };\n\n function findDirectionSetting (value) {\n if (typeof value !== 'string') {\n return false;\n }\n\n let dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n }\n\n function findAlignSetting (value) {\n if (typeof value !== 'string') {\n return false;\n }\n\n let align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n }\n\n function extend (obj) {\n let i = 1;\n for (; i < arguments.length; i++) {\n let cobj = arguments[i];\n for (let p in cobj) {\n obj[p] = cobj[p];\n }\n }\n\n return obj;\n }\n\n function VTTCue (startTime, endTime, text) {\n let cue = this;\n let baseObj = {};\n\n baseObj.enumerable = true;\n\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n cue.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n let _id = '';\n let _pauseOnExit = false;\n let _startTime = startTime;\n let _endTime = endTime;\n let _text = text;\n let _region = null;\n let _vertical = '';\n let _snapToLines = true;\n let _line = 'auto';\n let _lineAlign = 'start';\n let _position = 50;\n let _positionAlign = 'middle';\n let _size = 50;\n let _align = 'middle';\n\n Object.defineProperty(cue, 'id', extend({}, baseObj, {\n get: function () {\n return _id;\n },\n set: function (value) {\n _id = '' + value;\n }\n }));\n\n Object.defineProperty(cue, 'pauseOnExit', extend({}, baseObj, {\n get: function () {\n return _pauseOnExit;\n },\n set: function (value) {\n _pauseOnExit = !!value;\n }\n }));\n\n Object.defineProperty(cue, 'startTime', extend({}, baseObj, {\n get: function () {\n return _startTime;\n },\n set: function (value) {\n if (typeof value !== 'number') {\n throw new TypeError('Start time must be set to a number.');\n }\n\n _startTime = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'endTime', extend({}, baseObj, {\n get: function () {\n return _endTime;\n },\n set: function (value) {\n if (typeof value !== 'number') {\n throw new TypeError('End time must be set to a number.');\n }\n\n _endTime = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'text', extend({}, baseObj, {\n get: function () {\n return _text;\n },\n set: function (value) {\n _text = '' + value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'region', extend({}, baseObj, {\n get: function () {\n return _region;\n },\n set: function (value) {\n _region = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'vertical', extend({}, baseObj, {\n get: function () {\n return _vertical;\n },\n set: function (value) {\n let setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _vertical = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'snapToLines', extend({}, baseObj, {\n get: function () {\n return _snapToLines;\n },\n set: function (value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'line', extend({}, baseObj, {\n get: function () {\n return _line;\n },\n set: function (value) {\n if (typeof value !== 'number' && value !== autoKeyword) {\n throw new SyntaxError('An invalid number or illegal string was specified.');\n }\n\n _line = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'lineAlign', extend({}, baseObj, {\n get: function () {\n return _lineAlign;\n },\n set: function (value) {\n let setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'position', extend({}, baseObj, {\n get: function () {\n return _position;\n },\n set: function (value) {\n if (value < 0 || value > 100) {\n throw new Error('Position must be between 0 and 100.');\n }\n\n _position = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'positionAlign', extend({}, baseObj, {\n get: function () {\n return _positionAlign;\n },\n set: function (value) {\n let setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'size', extend({}, baseObj, {\n get: function () {\n return _size;\n },\n set: function (value) {\n if (value < 0 || value > 100) {\n throw new Error('Size must be between 0 and 100.');\n }\n\n _size = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue, 'align', extend({}, baseObj, {\n get: function () {\n return _align;\n },\n set: function (value) {\n let setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError('An invalid or illegal string was specified.');\n }\n\n _align = setting;\n this.hasBeenReset = true;\n }\n }));\n\n /**\n * Other <track> spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n cue.displayState = void 0;\n }\n\n /**\n * VTTCue methods\n */\n\n VTTCue.prototype.getCueAsHTML = function () {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n let WebVTT = window.WebVTT;\n return WebVTT.convertCueToDOMTree(window, this.text);\n };\n\n return VTTCue;\n})();\n","/*\n * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js#L1716\n */\n\nimport VTTCue from './vttcue';\n\nconst StringDecoder = function StringDecoder () {\n return {\n decode: function (data) {\n if (!data) {\n return '';\n }\n\n if (typeof data !== 'string') {\n throw new Error('Error - expected string data.');\n }\n\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n};\n\nfunction VTTParser () {\n this.window = window;\n this.state = 'INITIAL';\n this.buffer = '';\n this.decoder = new StringDecoder();\n this.regionList = [];\n}\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp (input) {\n function computeSeconds (h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n }\n\n let m = input.match(/^(\\d+):(\\d{2})(:\\d{2})?\\.(\\d{3})/);\n if (!m) {\n return null;\n }\n\n if (m[3]) {\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3].replace(':', ''), m[4]);\n } else if (m[1] > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[1], m[2], 0, m[4]);\n } else {\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n return computeSeconds(0, m[1], m[2], m[4]);\n }\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nfunction Settings () {\n this.values = Object.create(null);\n}\n\nSettings.prototype = {\n // Only accept the first assignment to any key.\n set: function (k, v) {\n if (!this.get(k) && v !== '') {\n this.values[k] = v;\n }\n },\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get: function (k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n\n return this.has(k) ? this.values[k] : dflt;\n },\n // Check whether we have a value for a key.\n has: function (k) {\n return k in this.values;\n },\n // Accept a setting if its one of the given alternatives.\n alt: function (k, v, a) {\n for (let n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n },\n // Accept a setting if its a valid (signed) integer.\n integer: function (k, v) {\n if (/^-?\\d+$/.test(v)) { // integer\n this.set(k, parseInt(v, 10));\n }\n },\n // Accept a setting if its a valid percentage.\n percent: function (k, v) {\n let m;\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\n v = parseFloat(v);\n if (v >= 0 && v <= 100) {\n this.set(k, v);\n return true;\n }\n }\n return false;\n }\n};\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions (input, callback, keyValueDelim, groupDelim) {\n let groups = groupDelim ? input.split(groupDelim) : [input];\n for (let i in groups) {\n if (typeof groups[i] !== 'string') {\n continue;\n }\n\n let kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n\n let k = kv[0];\n let v = kv[1];\n callback(k, v);\n }\n}\n\nlet defaults = new VTTCue(0, 0, 0);\n// 'middle' was changed to 'center' in the spec: https://github.com/w3c/webvtt/pull/244\n// Safari doesn't yet support this change, but FF and Chrome do.\nlet center = defaults.align === 'middle' ? 'middle' : 'center';\n\nfunction parseCue (input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n let oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp () {\n let ts = parseTimeStamp(input);\n if (ts === null) {\n throw new Error('Malformed timestamp: ' + oInput);\n }\n\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, '');\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings (input, cue) {\n let settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case 'region':\n // Find the last region we parsed with the same region id.\n for (let i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case 'vertical':\n settings.alt(k, v, ['rl', 'lr']);\n break;\n case 'line':\n var vals = v.split(','),\n vals0 = vals[0];\n settings.integer(k, vals0);\n if (settings.percent(k, vals0)) {\n settings.set('snapToLines', false);\n }\n\n settings.alt(k, vals0, ['auto']);\n if (vals.length === 2) {\n settings.alt('lineAlign', vals[1], ['start', center, 'end']);\n }\n\n break;\n case 'position':\n vals = v.split(',');\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt('positionAlign', vals[1], ['start', center, 'end', 'line-left', 'line-right', 'auto']);\n }\n\n break;\n case 'size':\n settings.percent(k, v);\n break;\n case 'align':\n settings.alt(k, v, ['start', center, 'end', 'left', 'right']);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get('region', null);\n cue.vertical = settings.get('vertical', '');\n let line = settings.get('line', 'auto');\n if (line === 'auto' && defaults.line === -1) {\n // set numeric line number for Safari\n line = -1;\n }\n cue.line = line;\n cue.lineAlign = settings.get('lineAlign', 'start');\n cue.snapToLines = settings.get('snapToLines', true);\n cue.size = settings.get('size', 100);\n cue.align = settings.get('align', center);\n let position = settings.get('position', 'auto');\n if (position === 'auto' && defaults.position === 50) {\n // set numeric position for Safari\n position = cue.align === 'start' || cue.align === 'left' ? 0 : cue.align === 'end' || cue.align === 'right' ? 100 : 50;\n }\n cue.position = position;\n }\n\n function skipWhitespace () {\n input = input.replace(/^\\s+/, '');\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.substr(0, 3) !== '-->') { // (3) next characters must match '-->'\n throw new Error('Malformed time stamp (time stamps must be separated by \\'-->\\'): ' +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\nfunction fixLineBreaks (input) {\n return input.replace(/<br(?: \\/)?>/gi, '\\n');\n}\n\nVTTParser.prototype = {\n parse: function (data) {\n let self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, { stream: true });\n }\n\n function collectNextLine () {\n let buffer = self.buffer;\n let pos = 0;\n\n buffer = fixLineBreaks(buffer);\n\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n\n let line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader (input) {\n parseOptions(input, function (k, v) {\n switch (k) {\n case 'Region':\n // 3.3 WebVTT region metadata header syntax\n // console.log('parse region', v);\n // parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n // 5.1 WebVTT file parsing.\n try {\n let line;\n if (self.state === 'INITIAL') {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n // strip of UTF-8 BOM if any\n // https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8\n let m = line.match(/^()?WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new Error('Malformed WebVTT signature.');\n }\n\n self.state = 'HEADER';\n }\n\n let alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case 'HEADER':\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = 'ID';\n }\n continue;\n case 'NOTE':\n // Ignore NOTE blocks.\n if (!line) {\n self.state = 'ID';\n }\n\n continue;\n case 'ID':\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = 'NOTE';\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n\n self.cue = new VTTCue(0, 0, '');\n self.state = 'CUE';\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf('-->') === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /* falls through */\n case 'CUE':\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = 'BADCUE';\n continue;\n }\n self.state = 'CUETEXT';\n continue;\n case 'CUETEXT':\n var hasSubstring = line.indexOf('-->') !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n if (self.oncue) {\n self.oncue(self.cue);\n }\n\n self.cue = null;\n self.state = 'ID';\n continue;\n }\n if (self.cue.text) {\n self.cue.text += '\\n';\n }\n\n self.cue.text += line;\n continue;\n case 'BADCUE': // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = 'ID';\n }\n\n continue;\n }\n }\n } catch (e) {\n // If we are currently parsing a cue, report what we have.\n if (self.state === 'CUETEXT' && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === 'INITIAL' ? 'BADWEBVTT' : 'BADCUE';\n }\n return this;\n },\n flush: function () {\n let self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === 'HEADER') {\n self.buffer += '\\n\\n';\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === 'INITIAL') {\n throw new Error('Malformed WebVTT signature.');\n }\n } catch (e) {\n throw e;\n }\n if (self.onflush) {\n self.onflush();\n }\n\n return this;\n }\n};\n\nexport { fixLineBreaks };\n\nexport default VTTParser;\n","import { fixLineBreaks } from './vttparser';\nimport { CaptionScreen, Row } from './cea-608-parser';\n\nexport interface CuesInterface {\n newCue (track: TextTrack | null, startTime: number, endTime: number, captionScreen: CaptionScreen): VTTCue[]\n}\n\ninterface VTTCue extends TextTrackCue {\n new(start: number, end: number, cueText: string): VTTCue\n line: number\n align: string\n position: number\n}\n\nexport function newCue (track: TextTrack | null, startTime: number, endTime: number, captionScreen: CaptionScreen): VTTCue[] {\n const result: VTTCue[] = [];\n let row: Row;\n // the type data states this is VTTCue, but it can potentially be a TextTrackCue on old browsers\n let cue: VTTCue;\n let indenting: boolean;\n let indent: number;\n let text: string;\n let VTTCue: VTTCue = (window as any).VTTCue as VTTCue || TextTrackCue;\n\n for (let r = 0; r < captionScreen.rows.length; r++) {\n row = captionScreen.rows[r];\n indenting = true;\n indent = 0;\n text = '';\n\n if (!row.isEmpty()) {\n for (let c = 0; c < row.chars.length; c++) {\n if (row.chars[c].uchar.match(/\\s/) && indenting) {\n indent++;\n } else {\n text += row.chars[c].uchar;\n indenting = false;\n }\n }\n // To be used for cleaning-up orphaned roll-up captions\n row.cueStartTime = startTime;\n\n // Give a slight bump to the endTime if it's equal to startTime to avoid a SyntaxError in IE\n if (startTime === endTime) {\n endTime += 0.0001;\n }\n\n cue = new VTTCue(startTime, endTime, fixLineBreaks(text.trim()));\n\n if (indent >= 16) {\n indent--;\n } else {\n indent++;\n }\n\n // VTTCue.line get's flakey when using controls, so let's now include line 13&14\n // also, drop line 1 since it's to close to the top\n if (navigator.userAgent.match(/Firefox\\//)) {\n cue.line = r + 1;\n } else {\n cue.line = (r > 7 ? r - 2 : r + 1);\n }\n\n cue.align = 'left';\n // Clamp the position between 0 and 100 - if out of these bounds, Firefox throws an exception and captions break\n cue.position = Math.max(0, Math.min(100, 100 * (indent / 32)));\n result.push(cue);\n if (track) {\n track.addCue(cue);\n }\n }\n }\n return result;\n}\n","import OutputFilter from './output-filter';\nimport { logger } from '../utils/logger';\n\n/**\n *\n * This code was ported from the dash.js project at:\n * https://github.com/Dash-Industry-Forum/dash.js/blob/development/externals/cea608-parser.js\n * https://github.com/Dash-Industry-Forum/dash.js/commit/8269b26a761e0853bb21d78780ed945144ecdd4d#diff-71bc295a2d6b6b7093a1d3290d53a4b2\n *\n * The original copyright appears below:\n *\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2015-2016, DASH Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * 2. Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * Exceptions from regular ASCII. CodePoints are mapped to UTF-16 codes\n */\n\nconst specialCea608CharsCodes = {\n 0x2a: 0xe1, // lowercase a, acute accent\n 0x5c: 0xe9, // lowercase e, acute accent\n 0x5e: 0xed, // lowercase i, acute accent\n 0x5f: 0xf3, // lowercase o, acute accent\n 0x60: 0xfa, // lowercase u, acute accent\n 0x7b: 0xe7, // lowercase c with cedilla\n 0x7c: 0xf7, // division symbol\n 0x7d: 0xd1, // uppercase N tilde\n 0x7e: 0xf1, // lowercase n tilde\n 0x7f: 0x2588, // Full block\n // THIS BLOCK INCLUDES THE 16 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x11 AND LOW BETWEEN 0x30 AND 0x3F\n // THIS MEANS THAT \\x50 MUST BE ADDED TO THE VALUES\n 0x80: 0xae, // Registered symbol (R)\n 0x81: 0xb0, // degree sign\n 0x82: 0xbd, // 1/2 symbol\n 0x83: 0xbf, // Inverted (open) question mark\n 0x84: 0x2122, // Trademark symbol (TM)\n 0x85: 0xa2, // Cents symbol\n 0x86: 0xa3, // Pounds sterling\n 0x87: 0x266a, // Music 8'th note\n 0x88: 0xe0, // lowercase a, grave accent\n 0x89: 0x20, // transparent space (regular)\n 0x8a: 0xe8, // lowercase e, grave accent\n 0x8b: 0xe2, // lowercase a, circumflex accent\n 0x8c: 0xea, // lowercase e, circumflex accent\n 0x8d: 0xee, // lowercase i, circumflex accent\n 0x8e: 0xf4, // lowercase o, circumflex accent\n 0x8f: 0xfb, // lowercase u, circumflex accent\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x12 AND LOW BETWEEN 0x20 AND 0x3F\n 0x90: 0xc1, // capital letter A with acute\n 0x91: 0xc9, // capital letter E with acute\n 0x92: 0xd3, // capital letter O with acute\n 0x93: 0xda, // capital letter U with acute\n 0x94: 0xdc, // capital letter U with diaresis\n 0x95: 0xfc, // lowercase letter U with diaeresis\n 0x96: 0x2018, // opening single quote\n 0x97: 0xa1, // inverted exclamation mark\n 0x98: 0x2a, // asterisk\n 0x99: 0x2019, // closing single quote\n 0x9a: 0x2501, // box drawings heavy horizontal\n 0x9b: 0xa9, // copyright sign\n 0x9c: 0x2120, // Service mark\n 0x9d: 0x2022, // (round) bullet\n 0x9e: 0x201c, // Left double quotation mark\n 0x9f: 0x201d, // Right double quotation mark\n 0xa0: 0xc0, // uppercase A, grave accent\n 0xa1: 0xc2, // uppercase A, circumflex\n 0xa2: 0xc7, // uppercase C with cedilla\n 0xa3: 0xc8, // uppercase E, grave accent\n 0xa4: 0xca, // uppercase E, circumflex\n 0xa5: 0xcb, // capital letter E with diaresis\n 0xa6: 0xeb, // lowercase letter e with diaresis\n 0xa7: 0xce, // uppercase I, circumflex\n 0xa8: 0xcf, // uppercase I, with diaresis\n 0xa9: 0xef, // lowercase i, with diaresis\n 0xaa: 0xd4, // uppercase O, circumflex\n 0xab: 0xd9, // uppercase U, grave accent\n 0xac: 0xf9, // lowercase u, grave accent\n 0xad: 0xdb, // uppercase U, circumflex\n 0xae: 0xab, // left-pointing double angle quotation mark\n 0xaf: 0xbb, // right-pointing double angle quotation mark\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x13 AND LOW BETWEEN 0x20 AND 0x3F\n 0xb0: 0xc3, // Uppercase A, tilde\n 0xb1: 0xe3, // Lowercase a, tilde\n 0xb2: 0xcd, // Uppercase I, acute accent\n 0xb3: 0xcc, // Uppercase I, grave accent\n 0xb4: 0xec, // Lowercase i, grave accent\n 0xb5: 0xd2, // Uppercase O, grave accent\n 0xb6: 0xf2, // Lowercase o, grave accent\n 0xb7: 0xd5, // Uppercase O, tilde\n 0xb8: 0xf5, // Lowercase o, tilde\n 0xb9: 0x7b, // Open curly brace\n 0xba: 0x7d, // Closing curly brace\n 0xbb: 0x5c, // Backslash\n 0xbc: 0x5e, // Caret\n 0xbd: 0x5f, // Underscore\n 0xbe: 0x7c, // Pipe (vertical line)\n 0xbf: 0x223c, // Tilde operator\n 0xc0: 0xc4, // Uppercase A, umlaut\n 0xc1: 0xe4, // Lowercase A, umlaut\n 0xc2: 0xd6, // Uppercase O, umlaut\n 0xc3: 0xf6, // Lowercase o, umlaut\n 0xc4: 0xdf, // Esszett (sharp S)\n 0xc5: 0xa5, // Yen symbol\n 0xc6: 0xa4, // Generic currency sign\n 0xc7: 0x2503, // Box drawings heavy vertical\n 0xc8: 0xc5, // Uppercase A, ring\n 0xc9: 0xe5, // Lowercase A, ring\n 0xca: 0xd8, // Uppercase O, stroke\n 0xcb: 0xf8, // Lowercase o, strok\n 0xcc: 0x250f, // Box drawings heavy down and right\n 0xcd: 0x2513, // Box drawings heavy down and left\n 0xce: 0x2517, // Box drawings heavy up and right\n 0xcf: 0x251b // Box drawings heavy up and left\n};\n\n/**\n * Utils\n */\nconst getCharForByte = function (byte: number) {\n let charCode = byte;\n if (specialCea608CharsCodes.hasOwnProperty(byte)) {\n charCode = specialCea608CharsCodes[byte];\n }\n\n return String.fromCharCode(charCode);\n};\n\nconst NR_ROWS = 15;\nconst NR_COLS = 100;\n// Tables to look up row from PAC data\nconst rowsLowCh1 = { 0x11: 1, 0x12: 3, 0x15: 5, 0x16: 7, 0x17: 9, 0x10: 11, 0x13: 12, 0x14: 14 };\nconst rowsHighCh1 = { 0x11: 2, 0x12: 4, 0x15: 6, 0x16: 8, 0x17: 10, 0x13: 13, 0x14: 15 };\nconst rowsLowCh2 = { 0x19: 1, 0x1A: 3, 0x1D: 5, 0x1E: 7, 0x1F: 9, 0x18: 11, 0x1B: 12, 0x1C: 14 };\nconst rowsHighCh2 = { 0x19: 2, 0x1A: 4, 0x1D: 6, 0x1E: 8, 0x1F: 10, 0x1B: 13, 0x1C: 15 };\n\nconst backgroundColors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'black', 'transparent'];\n\nenum VerboseLevel {\n ERROR = 0,\n TEXT = 1,\n WARNING = 2,\n INFO = 2,\n DEBUG = 3,\n DATA = 3,\n}\n\nclass CaptionsLogger {\n public time: number | null = null;\n public verboseLevel: VerboseLevel = VerboseLevel.ERROR;\n\n log (severity: VerboseLevel, msg: string): void {\n if (this.verboseLevel >= severity) {\n logger.log(`${this.time} [${severity}] ${msg}`);\n }\n }\n}\n\nconst numArrayToHexArray = function (numArray: number[]): string[] {\n const hexArray: string[] = [];\n for (let j = 0; j < numArray.length; j++) {\n hexArray.push(numArray[j].toString(16));\n }\n\n return hexArray;\n};\n\ntype PenStyles = {\n foreground: string | null,\n underline: boolean,\n italics: boolean,\n background: string,\n flash: boolean,\n};\n\nclass PenState {\n public foreground: string;\n public underline: boolean;\n public italics: boolean;\n public background: string;\n public flash: boolean;\n\n constructor (foreground?: string, underline?: boolean, italics?: boolean, background?: string, flash?: boolean) {\n this.foreground = foreground || 'white';\n this.underline = underline || false;\n this.italics = italics || false;\n this.background = background || 'black';\n this.flash = flash || false;\n }\n\n reset () {\n this.foreground = 'white';\n this.underline = false;\n this.italics = false;\n this.background = 'black';\n this.flash = false;\n }\n\n setStyles (styles: Partial<PenStyles>) {\n const attribs = ['foreground', 'underline', 'italics', 'background', 'flash'];\n for (let i = 0; i < attribs.length; i++) {\n const style = attribs[i];\n if (styles.hasOwnProperty(style)) {\n this[style] = styles[style];\n }\n }\n }\n\n isDefault () {\n return (this.foreground === 'white' && !this.underline && !this.italics &&\n this.background === 'black' && !this.flash);\n }\n\n equals (other: PenState) {\n return ((this.foreground === other.foreground) &&\n (this.underline === other.underline) &&\n (this.italics === other.italics) &&\n (this.background === other.background) &&\n (this.flash === other.flash));\n }\n\n copy (newPenState: PenState) {\n this.foreground = newPenState.foreground;\n this.underline = newPenState.underline;\n this.italics = newPenState.italics;\n this.background = newPenState.background;\n this.flash = newPenState.flash;\n }\n\n toString (): string {\n return ('color=' + this.foreground + ', underline=' + this.underline + ', italics=' + this.italics +\n ', background=' + this.background + ', flash=' + this.flash);\n }\n}\n\n/**\n * Unicode character with styling and background.\n * @constructor\n */\nclass StyledUnicodeChar {\n uchar: string;\n penState: PenState;\n\n constructor (uchar?: string, foreground?: string, underline?: boolean, italics?: boolean, background?: string, flash?: boolean) {\n this.uchar = uchar || ' '; // unicode character\n this.penState = new PenState(foreground, underline, italics, background, flash);\n }\n\n reset () {\n this.uchar = ' ';\n this.penState.reset();\n }\n\n setChar (uchar: string, newPenState: PenState) {\n this.uchar = uchar;\n this.penState.copy(newPenState);\n }\n\n setPenState (newPenState: PenState) {\n this.penState.copy(newPenState);\n }\n\n equals (other: StyledUnicodeChar) {\n return this.uchar === other.uchar && this.penState.equals(other.penState);\n }\n\n copy (newChar: StyledUnicodeChar) {\n this.uchar = newChar.uchar;\n this.penState.copy(newChar.penState);\n }\n\n isEmpty (): boolean {\n return this.uchar === ' ' && this.penState.isDefault();\n }\n}\n\n/**\n * CEA-608 row consisting of NR_COLS instances of StyledUnicodeChar.\n * @constructor\n */\nexport class Row {\n public chars: StyledUnicodeChar[];\n public pos: number;\n public currPenState: PenState;\n public cueStartTime?: number;\n logger: CaptionsLogger;\n\n constructor (logger: CaptionsLogger) {\n this.chars = [];\n for (let i = 0; i < NR_COLS; i++) {\n this.chars.push(new StyledUnicodeChar());\n }\n\n this.logger = logger;\n this.pos = 0;\n this.currPenState = new PenState();\n }\n\n equals (other: Row) {\n let equal = true;\n for (let i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].equals(other.chars[i])) {\n equal = false;\n break;\n }\n }\n return equal;\n }\n\n copy (other: Row) {\n for (let i = 0; i < NR_COLS; i++) {\n this.chars[i].copy(other.chars[i]);\n }\n }\n\n isEmpty (): boolean {\n let empty = true;\n for (let i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n return empty;\n }\n\n /**\n * Set the cursor to a valid column.\n */\n setCursor (absPos: number) {\n if (this.pos !== absPos) {\n this.pos = absPos;\n }\n\n if (this.pos < 0) {\n this.logger.log(VerboseLevel.DEBUG, 'Negative cursor position ' + this.pos);\n this.pos = 0;\n } else if (this.pos > NR_COLS) {\n this.logger.log(VerboseLevel.DEBUG, 'Too large cursor position ' + this.pos);\n this.pos = NR_COLS;\n }\n }\n\n /**\n * Move the cursor relative to current position.\n */\n moveCursor (relPos: number) {\n const newPos = this.pos + relPos;\n if (relPos > 1) {\n for (let i = this.pos + 1; i < newPos + 1; i++) {\n this.chars[i].setPenState(this.currPenState);\n }\n }\n this.setCursor(newPos);\n }\n\n /**\n * Backspace, move one step back and clear character.\n */\n backSpace () {\n this.moveCursor(-1);\n this.chars[this.pos].setChar(' ', this.currPenState);\n }\n\n insertChar (byte: number) {\n if (byte >= 0x90) { // Extended char\n this.backSpace();\n }\n const char = getCharForByte(byte);\n if (this.pos >= NR_COLS) {\n this.logger.log(VerboseLevel.ERROR, 'Cannot insert ' + byte.toString(16) +\n ' (' + char + ') at position ' + this.pos + '. Skipping it!');\n return;\n }\n this.chars[this.pos].setChar(char, this.currPenState);\n this.moveCursor(1);\n }\n\n clearFromPos (startPos: number) {\n let i: number;\n for (i = startPos; i < NR_COLS; i++) {\n this.chars[i].reset();\n }\n }\n\n clear () {\n this.clearFromPos(0);\n this.pos = 0;\n this.currPenState.reset();\n }\n\n clearToEndOfRow () {\n this.clearFromPos(this.pos);\n }\n\n getTextString () {\n const chars: string[] = [];\n let empty = true;\n for (let i = 0; i < NR_COLS; i++) {\n const char = this.chars[i].uchar;\n if (char !== ' ') {\n empty = false;\n }\n\n chars.push(char);\n }\n if (empty) {\n return '';\n } else {\n return chars.join('');\n }\n }\n\n setPenStyles (styles: Partial<PenStyles>) {\n this.currPenState.setStyles(styles);\n const currChar = this.chars[this.pos];\n currChar.setPenState(this.currPenState);\n }\n}\n\n/**\n * Keep a CEA-608 screen of 32x15 styled characters\n * @constructor\n */\nexport class CaptionScreen {\n rows: Row[];\n currRow: number;\n nrRollUpRows: number | null;\n lastOutputScreen: CaptionScreen | null;\n logger: CaptionsLogger;\n\n constructor (logger: CaptionsLogger) {\n this.rows = [];\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows.push(new Row(logger));\n } // Note that we use zero-based numbering (0-14)\n\n this.logger = logger;\n this.currRow = NR_ROWS - 1;\n this.nrRollUpRows = null;\n this.lastOutputScreen = null;\n this.reset();\n }\n\n reset () {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n\n this.currRow = NR_ROWS - 1;\n }\n\n equals (other: CaptionScreen): boolean {\n let equal = true;\n for (let i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].equals(other.rows[i])) {\n equal = false;\n break;\n }\n }\n return equal;\n }\n\n copy (other: CaptionScreen) {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].copy(other.rows[i]);\n }\n }\n\n isEmpty (): boolean {\n let empty = true;\n for (let i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n return empty;\n }\n\n backSpace () {\n const row = this.rows[this.currRow];\n row.backSpace();\n }\n\n clearToEndOfRow () {\n const row = this.rows[this.currRow];\n row.clearToEndOfRow();\n }\n\n /**\n * Insert a character (without styling) in the current row.\n */\n insertChar (char: number) {\n const row = this.rows[this.currRow];\n row.insertChar(char);\n }\n\n setPen (styles: Partial<PenStyles>) {\n const row = this.rows[this.currRow];\n row.setPenStyles(styles);\n }\n\n moveCursor (relPos: number) {\n const row = this.rows[this.currRow];\n row.moveCursor(relPos);\n }\n\n setCursor (absPos: number) {\n this.logger.log(VerboseLevel.INFO, 'setCursor: ' + absPos);\n const row = this.rows[this.currRow];\n row.setCursor(absPos);\n }\n\n setPAC (pacData: PACData) {\n this.logger.log(VerboseLevel.INFO, 'pacData = ' + JSON.stringify(pacData));\n let newRow = pacData.row - 1;\n if (this.nrRollUpRows && newRow < this.nrRollUpRows - 1) {\n newRow = this.nrRollUpRows - 1;\n }\n\n // Make sure this only affects Roll-up Captions by checking this.nrRollUpRows\n if (this.nrRollUpRows && this.currRow !== newRow) {\n // clear all rows first\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n\n // Copy this.nrRollUpRows rows from lastOutputScreen and place it in the newRow location\n // topRowIndex - the start of rows to copy (inclusive index)\n const topRowIndex = this.currRow + 1 - (this.nrRollUpRows);\n // We only copy if the last position was already shown.\n // We use the cueStartTime value to check this.\n const lastOutputScreen = this.lastOutputScreen;\n if (lastOutputScreen) {\n const prevLineTime = lastOutputScreen.rows[topRowIndex].cueStartTime;\n const time = this.logger.time;\n if (prevLineTime && time !== null && prevLineTime < time) {\n for (let i = 0; i < this.nrRollUpRows; i++) {\n this.rows[newRow - this.nrRollUpRows + i + 1].copy(lastOutputScreen.rows[topRowIndex + i]);\n }\n }\n }\n }\n\n this.currRow = newRow;\n const row = this.rows[this.currRow];\n if (pacData.indent !== null) {\n const indent = pacData.indent;\n const prevPos = Math.max(indent - 1, 0);\n row.setCursor(pacData.indent);\n pacData.color = row.chars[prevPos].penState.foreground;\n }\n const styles: PenStyles = { foreground: pacData.color, underline: pacData.underline, italics: pacData.italics, background: 'black', flash: false };\n this.setPen(styles);\n }\n\n /**\n * Set background/extra foreground, but first do back_space, and then insert space (backwards compatibility).\n */\n setBkgData (bkgData: Partial<PenStyles>) {\n this.logger.log(VerboseLevel.INFO, 'bkgData = ' + JSON.stringify(bkgData));\n this.backSpace();\n this.setPen(bkgData);\n this.insertChar(0x20); // Space\n }\n\n setRollUpRows (nrRows: number | null) {\n this.nrRollUpRows = nrRows;\n }\n\n rollUp () {\n if (this.nrRollUpRows === null) {\n this.logger.log(VerboseLevel.DEBUG, 'roll_up but nrRollUpRows not set yet');\n return; // Not properly setup\n }\n this.logger.log(VerboseLevel.TEXT, this.getDisplayText());\n const topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n const topRow = this.rows.splice(topRowIndex, 1)[0];\n topRow.clear();\n this.rows.splice(this.currRow, 0, topRow);\n this.logger.log(VerboseLevel.INFO, 'Rolling up');\n // this.logger.log(VerboseLevel.TEXT, this.get_display_text())\n }\n\n /**\n * Get all non-empty rows with as unicode text.\n */\n getDisplayText (asOneRow?: boolean) {\n asOneRow = asOneRow || false;\n const displayText: string[] = [];\n let text = '';\n let rowNr = -1;\n for (let i = 0; i < NR_ROWS; i++) {\n const rowText = this.rows[i].getTextString();\n if (rowText) {\n rowNr = i + 1;\n if (asOneRow) {\n displayText.push('Row ' + rowNr + ': \\'' + rowText + '\\'');\n } else {\n displayText.push(rowText.trim());\n }\n }\n }\n if (displayText.length > 0) {\n if (asOneRow) {\n text = '[' + displayText.join(' | ') + ']';\n } else {\n text = displayText.join('\\n');\n }\n }\n return text;\n }\n\n getTextAndFormat () {\n return this.rows;\n }\n}\n\n// var modes = ['MODE_ROLL-UP', 'MODE_POP-ON', 'MODE_PAINT-ON', 'MODE_TEXT'];\n\ntype CaptionModes = 'MODE_ROLL-UP' | 'MODE_POP-ON' | 'MODE_PAINT-ON' | 'MODE_TEXT' | null;\n\nclass Cea608Channel {\n chNr: number;\n outputFilter: OutputFilter;\n mode: CaptionModes;\n verbose: number;\n displayedMemory: CaptionScreen;\n nonDisplayedMemory: CaptionScreen;\n lastOutputScreen: CaptionScreen;\n currRollUpRow: Row;\n writeScreen: CaptionScreen;\n cueStartTime: number | null;\n logger: CaptionsLogger;\n\n constructor (channelNumber: number, outputFilter: OutputFilter, logger: CaptionsLogger) {\n this.chNr = channelNumber;\n this.outputFilter = outputFilter;\n this.mode = null;\n this.verbose = 0;\n this.displayedMemory = new CaptionScreen(logger);\n this.nonDisplayedMemory = new CaptionScreen(logger);\n this.lastOutputScreen = new CaptionScreen(logger);\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null; // Keeps track of where a cue started.\n this.logger = logger;\n }\n\n reset () {\n this.mode = null;\n this.displayedMemory.reset();\n this.nonDisplayedMemory.reset();\n this.lastOutputScreen.reset();\n this.outputFilter.reset();\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null;\n }\n\n getHandler (): OutputFilter {\n return this.outputFilter;\n }\n\n setHandler (newHandler: OutputFilter) {\n this.outputFilter = newHandler;\n }\n\n setPAC (pacData: PACData) {\n this.writeScreen.setPAC(pacData);\n }\n\n setBkgData (bkgData: Partial<PenStyles>) {\n this.writeScreen.setBkgData(bkgData);\n }\n\n setMode (newMode: CaptionModes) {\n if (newMode === this.mode) {\n return;\n }\n\n this.mode = newMode;\n this.logger.log(VerboseLevel.INFO, 'MODE=' + newMode);\n if (this.mode === 'MODE_POP-ON') {\n this.writeScreen = this.nonDisplayedMemory;\n } else {\n this.writeScreen = this.displayedMemory;\n this.writeScreen.reset();\n }\n if (this.mode !== 'MODE_ROLL-UP') {\n this.displayedMemory.nrRollUpRows = null;\n this.nonDisplayedMemory.nrRollUpRows = null;\n }\n this.mode = newMode;\n }\n\n insertChars (chars: number[]) {\n for (let i = 0; i < chars.length; i++) {\n this.writeScreen.insertChar(chars[i]);\n }\n\n const screen = this.writeScreen === this.displayedMemory ? 'DISP' : 'NON_DISP';\n this.logger.log(VerboseLevel.INFO, screen + ': ' + this.writeScreen.getDisplayText(true));\n if (this.mode === 'MODE_PAINT-ON' || this.mode === 'MODE_ROLL-UP') {\n this.logger.log(VerboseLevel.TEXT, 'DISPLAYED: ' + this.displayedMemory.getDisplayText(true));\n this.outputDataUpdate();\n }\n }\n\n ccRCL () { // Resume Caption Loading (switch mode to Pop On)\n this.logger.log(VerboseLevel.INFO, 'RCL - Resume Caption Loading');\n this.setMode('MODE_POP-ON');\n }\n\n ccBS () { // BackSpace\n this.logger.log(VerboseLevel.INFO, 'BS - BackSpace');\n if (this.mode === 'MODE_TEXT') {\n return;\n }\n\n this.writeScreen.backSpace();\n if (this.writeScreen === this.displayedMemory) {\n this.outputDataUpdate();\n }\n }\n\n ccAOF () { // Reserved (formerly Alarm Off)\n\n }\n\n ccAON () { // Reserved (formerly Alarm On)\n\n }\n\n ccDER () { // Delete to End of Row\n this.logger.log(VerboseLevel.INFO, 'DER- Delete to End of Row');\n this.writeScreen.clearToEndOfRow();\n this.outputDataUpdate();\n }\n\n ccRU (nrRows: number | null) { // Roll-Up Captions-2,3,or 4 Rows\n this.logger.log(VerboseLevel.INFO, 'RU(' + nrRows + ') - Roll Up');\n this.writeScreen = this.displayedMemory;\n this.setMode('MODE_ROLL-UP');\n this.writeScreen.setRollUpRows(nrRows);\n }\n\n ccFON () { // Flash On\n this.logger.log(VerboseLevel.INFO, 'FON - Flash On');\n this.writeScreen.setPen({ flash: true });\n }\n\n ccRDC () { // Resume Direct Captioning (switch mode to PaintOn)\n this.logger.log(VerboseLevel.INFO, 'RDC - Resume Direct Captioning');\n this.setMode('MODE_PAINT-ON');\n }\n\n ccTR () { // Text Restart in text mode (not supported, however)\n this.logger.log(VerboseLevel.INFO, 'TR');\n this.setMode('MODE_TEXT');\n }\n\n ccRTD () { // Resume Text Display in Text mode (not supported, however)\n this.logger.log(VerboseLevel.INFO, 'RTD');\n this.setMode('MODE_TEXT');\n }\n\n ccEDM () { // Erase Displayed Memory\n this.logger.log(VerboseLevel.INFO, 'EDM - Erase Displayed Memory');\n this.displayedMemory.reset();\n this.outputDataUpdate(true);\n }\n\n ccCR () { // Carriage Return\n this.logger.log(VerboseLevel.INFO, 'CR - Carriage Return');\n this.writeScreen.rollUp();\n this.outputDataUpdate(true);\n }\n\n ccENM () { // Erase Non-Displayed Memory\n this.logger.log(VerboseLevel.INFO, 'ENM - Erase Non-displayed Memory');\n this.nonDisplayedMemory.reset();\n }\n\n ccEOC () { // End of Caption (Flip Memories)\n this.logger.log(VerboseLevel.INFO, 'EOC - End Of Caption');\n if (this.mode === 'MODE_POP-ON') {\n const tmp = this.displayedMemory;\n this.displayedMemory = this.nonDisplayedMemory;\n this.nonDisplayedMemory = tmp;\n this.writeScreen = this.nonDisplayedMemory;\n this.logger.log(VerboseLevel.TEXT, 'DISP: ' + this.displayedMemory.getDisplayText());\n }\n this.outputDataUpdate(true);\n }\n\n ccTO (nrCols: number) { // Tab Offset 1,2, or 3 columns\n this.logger.log(VerboseLevel.INFO, 'TO(' + nrCols + ') - Tab Offset');\n this.writeScreen.moveCursor(nrCols);\n }\n\n ccMIDROW (secondByte: number) { // Parse MIDROW command\n const styles: Partial<PenStyles> = { flash: false };\n styles.underline = secondByte % 2 === 1;\n styles.italics = secondByte >= 0x2e;\n if (!styles.italics) {\n const colorIndex = Math.floor(secondByte / 2) - 0x10;\n const colors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta'];\n styles.foreground = colors[colorIndex];\n } else {\n styles.foreground = 'white';\n }\n this.logger.log(VerboseLevel.INFO, 'MIDROW: ' + JSON.stringify(styles));\n this.writeScreen.setPen(styles);\n }\n\n outputDataUpdate (dispatch: boolean = false) {\n const time = this.logger.time;\n if (time === null) {\n return;\n }\n\n if (this.outputFilter) {\n if (this.cueStartTime === null && !this.displayedMemory.isEmpty()) { // Start of a new cue\n this.cueStartTime = time;\n } else {\n if (!this.displayedMemory.equals(this.lastOutputScreen)) {\n this.outputFilter.newCue(this.cueStartTime!, time, this.lastOutputScreen);\n if (dispatch && this.outputFilter.dispatchCue) {\n this.outputFilter.dispatchCue();\n }\n\n this.cueStartTime = this.displayedMemory.isEmpty() ? null : time;\n }\n }\n this.lastOutputScreen.copy(this.displayedMemory);\n }\n }\n\n cueSplitAtTime (t: number) {\n if (this.outputFilter) {\n if (!this.displayedMemory.isEmpty()) {\n if (this.outputFilter.newCue) {\n this.outputFilter.newCue(this.cueStartTime!, t, this.displayedMemory);\n }\n\n this.cueStartTime = t;\n }\n }\n }\n}\n\ninterface PACData {\n row: number;\n indent: number | null;\n color: string | null;\n underline: boolean;\n italics: boolean;\n}\n\ntype SupportedField = 1 | 3;\n\ntype Channels = 0 | 1 | 2; // Will be 1 or 2 when parsing captions\n\ntype CmdHistory = {\n a: number | null,\n b: number | null\n};\n\nclass Cea608Parser {\n channels: Array<Cea608Channel | null>;\n currentChannel: Channels = 0;\n cmdHistory: CmdHistory;\n logger: CaptionsLogger;\n\n constructor (field: SupportedField, out1: OutputFilter, out2: OutputFilter) {\n const logger = new CaptionsLogger();\n this.channels = [\n null,\n new Cea608Channel(field, out1, logger),\n new Cea608Channel(field + 1, out2, logger)\n ];\n this.cmdHistory = createCmdHistory();\n this.logger = logger;\n }\n\n getHandler (channel: number) {\n return (this.channels[channel] as Cea608Channel).getHandler();\n }\n\n setHandler (channel: number, newHandler: OutputFilter) {\n (this.channels[channel] as Cea608Channel).setHandler(newHandler);\n }\n\n /**\n * Add data for time t in forms of list of bytes (unsigned ints). The bytes are treated as pairs.\n */\n addData (time: number | null, byteList: number[]) {\n let cmdFound: boolean;\n let a: number;\n let b: number;\n let charsFound: number[] | boolean | null = false;\n\n this.logger.time = time;\n\n for (let i = 0; i < byteList.length; i += 2) {\n a = byteList[i] & 0x7f;\n b = byteList[i + 1] & 0x7f;\n if (a === 0 && b === 0) {\n continue;\n } else {\n this.logger.log(VerboseLevel.DATA, '[' + numArrayToHexArray([byteList[i], byteList[i + 1]]) + '] -> (' + numArrayToHexArray([a, b]) + ')');\n }\n\n cmdFound = this.parseCmd(a, b);\n\n if (!cmdFound) {\n cmdFound = this.parseMidrow(a, b);\n }\n\n if (!cmdFound) {\n cmdFound = this.parsePAC(a, b);\n }\n\n if (!cmdFound) {\n cmdFound = this.parseBackgroundAttributes(a, b);\n }\n\n if (!cmdFound) {\n charsFound = this.parseChars(a, b);\n if (charsFound) {\n const currChNr = this.currentChannel;\n if (currChNr && currChNr > 0) {\n const channel = this.channels[currChNr] as Cea608Channel;\n channel.insertChars(charsFound);\n } else {\n this.logger.log(VerboseLevel.WARNING, 'No channel found yet. TEXT-MODE?');\n }\n }\n }\n if (!cmdFound && !charsFound) {\n this.logger.log(VerboseLevel.WARNING, 'Couldn\\'t parse cleaned data ' + numArrayToHexArray([a, b]) +\n ' orig: ' + numArrayToHexArray([byteList[i], byteList[i + 1]]));\n }\n }\n }\n\n /**\n * Parse Command.\n * @returns {Boolean} Tells if a command was found\n */\n parseCmd (a: number, b: number) {\n const { cmdHistory } = this;\n const cond1 = (a === 0x14 || a === 0x1C || a === 0x15 || a === 0x1D) && (b >= 0x20 && b <= 0x2F);\n const cond2 = (a === 0x17 || a === 0x1F) && (b >= 0x21 && b <= 0x23);\n if (!(cond1 || cond2)) {\n return false;\n }\n\n if (hasCmdRepeated(a, b, cmdHistory)) {\n setLastCmd(null, null, cmdHistory);\n this.logger.log(VerboseLevel.DEBUG, 'Repeated command (' + numArrayToHexArray([a, b]) + ') is dropped');\n return true;\n }\n\n const chNr = (a === 0x14 || a === 0x15 || a === 0x17) ? 1 : 2;\n const channel = this.channels[chNr] as Cea608Channel;\n\n if (a === 0x14 || a === 0x15 || a === 0x1C || a === 0x1D) {\n if (b === 0x20) {\n channel.ccRCL();\n } else if (b === 0x21) {\n channel.ccBS();\n } else if (b === 0x22) {\n channel.ccAOF();\n } else if (b === 0x23) {\n channel.ccAON();\n } else if (b === 0x24) {\n channel.ccDER();\n } else if (b === 0x25) {\n channel.ccRU(2);\n } else if (b === 0x26) {\n channel.ccRU(3);\n } else if (b === 0x27) {\n channel.ccRU(4);\n } else if (b === 0x28) {\n channel.ccFON();\n } else if (b === 0x29) {\n channel.ccRDC();\n } else if (b === 0x2A) {\n channel.ccTR();\n } else if (b === 0x2B) {\n channel.ccRTD();\n } else if (b === 0x2C) {\n channel.ccEDM();\n } else if (b === 0x2D) {\n channel.ccCR();\n } else if (b === 0x2E) {\n channel.ccENM();\n } else if (b === 0x2F) {\n channel.ccEOC();\n }\n } else { // a == 0x17 || a == 0x1F\n channel.ccTO(b - 0x20);\n }\n setLastCmd(a, b, cmdHistory);\n this.currentChannel = chNr;\n return true;\n }\n\n /**\n * Parse midrow styling command\n * @returns {Boolean}\n */\n parseMidrow (a: number, b: number) {\n let chNr: number = 0;\n\n if (((a === 0x11) || (a === 0x19)) && b >= 0x20 && b <= 0x2f) {\n if (a === 0x11) {\n chNr = 1;\n } else {\n chNr = 2;\n }\n\n if (chNr !== this.currentChannel) {\n this.logger.log(VerboseLevel.ERROR, 'Mismatch channel in midrow parsing');\n return false;\n }\n const channel = this.channels[chNr];\n if (!channel) {\n return false;\n }\n channel.ccMIDROW(b);\n this.logger.log(VerboseLevel.DEBUG, 'MIDROW (' + numArrayToHexArray([a, b]) + ')');\n return true;\n }\n return false;\n }\n\n /**\n * Parse Preable Access Codes (Table 53).\n * @returns {Boolean} Tells if PAC found\n */\n parsePAC (a: number, b: number): boolean {\n let row: number;\n const cmdHistory = this.cmdHistory;\n\n const case1 = ((a >= 0x11 && a <= 0x17) || (a >= 0x19 && a <= 0x1F)) && (b >= 0x40 && b <= 0x7F);\n const case2 = (a === 0x10 || a === 0x18) && (b >= 0x40 && b <= 0x5F);\n if (!(case1 || case2)) {\n return false;\n }\n\n if (hasCmdRepeated(a, b, cmdHistory)) {\n setLastCmd(null, null, cmdHistory);\n return true; // Repeated commands are dropped (once)\n }\n\n const chNr: Channels = (a <= 0x17) ? 1 : 2;\n\n if (b >= 0x40 && b <= 0x5F) {\n row = (chNr === 1) ? rowsLowCh1[a] : rowsLowCh2[a];\n } else { // 0x60 <= b <= 0x7F\n row = (chNr === 1) ? rowsHighCh1[a] : rowsHighCh2[a];\n }\n const channel = this.channels[chNr];\n if (!channel) {\n return false;\n }\n channel.setPAC(this.interpretPAC(row, b));\n setLastCmd(a, b, cmdHistory);\n this.currentChannel = chNr;\n return true;\n }\n\n /**\n * Interpret the second byte of the pac, and return the information.\n * @returns {Object} pacData with style parameters.\n */\n interpretPAC (row: number, byte: number): PACData {\n let pacIndex = byte;\n const pacData: PACData = { color: null, italics: false, indent: null, underline: false, row: row };\n\n if (byte > 0x5F) {\n pacIndex = byte - 0x60;\n } else {\n pacIndex = byte - 0x40;\n }\n\n pacData.underline = (pacIndex & 1) === 1;\n if (pacIndex <= 0xd) {\n pacData.color = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'white'][Math.floor(pacIndex / 2)];\n } else if (pacIndex <= 0xf) {\n pacData.italics = true;\n pacData.color = 'white';\n } else {\n pacData.indent = (Math.floor((pacIndex - 0x10) / 2)) * 4;\n }\n return pacData; // Note that row has zero offset. The spec uses 1.\n }\n\n /**\n * Parse characters.\n * @returns An array with 1 to 2 codes corresponding to chars, if found. null otherwise.\n */\n parseChars (a: number, b: number): number[] | null {\n let channelNr: Channels;\n let charCodes: number[] | null = null;\n let charCode1: number | null = null;\n\n if (a >= 0x19) {\n channelNr = 2;\n charCode1 = a - 8;\n } else {\n channelNr = 1;\n charCode1 = a;\n }\n if (charCode1 >= 0x11 && charCode1 <= 0x13) {\n // Special character\n let oneCode = b;\n if (charCode1 === 0x11) {\n oneCode = b + 0x50;\n } else if (charCode1 === 0x12) {\n oneCode = b + 0x70;\n } else {\n oneCode = b + 0x90;\n }\n\n this.logger.log(VerboseLevel.INFO, 'Special char \\'' + getCharForByte(oneCode) + '\\' in channel ' + channelNr);\n charCodes = [oneCode];\n } else if (a >= 0x20 && a <= 0x7f) {\n charCodes = (b === 0) ? [a] : [a, b];\n }\n if (charCodes) {\n const hexCodes = numArrayToHexArray(charCodes);\n this.logger.log(VerboseLevel.DEBUG, 'Char codes = ' + hexCodes.join(','));\n setLastCmd(a, b, this.cmdHistory);\n }\n return charCodes;\n }\n\n /**\n * Parse extended background attributes as well as new foreground color black.\n * @returns {Boolean} Tells if background attributes are found\n */\n parseBackgroundAttributes (a: number, b: number): boolean {\n const case1 = (a === 0x10 || a === 0x18) && (b >= 0x20 && b <= 0x2f);\n const case2 = (a === 0x17 || a === 0x1f) && (b >= 0x2d && b <= 0x2f);\n if (!(case1 || case2)) {\n return false;\n }\n let index: number;\n const bkgData: Partial<PenStyles> = {};\n if (a === 0x10 || a === 0x18) {\n index = Math.floor((b - 0x20) / 2);\n bkgData.background = backgroundColors[index];\n if (b % 2 === 1) {\n bkgData.background = bkgData.background + '_semi';\n }\n } else if (b === 0x2d) {\n bkgData.background = 'transparent';\n } else {\n bkgData.foreground = 'black';\n if (b === 0x2f) {\n bkgData.underline = true;\n }\n }\n const chNr: Channels = (a <= 0x17) ? 1 : 2;\n const channel: Cea608Channel = this.channels[chNr] as Cea608Channel;\n channel.setBkgData(bkgData);\n setLastCmd(a, b, this.cmdHistory);\n return true;\n }\n\n /**\n * Reset state of parser and its channels.\n */\n reset () {\n for (let i = 0; i < Object.keys(this.channels).length; i++) {\n const channel = this.channels[i];\n if (channel) {\n channel.reset();\n }\n }\n this.cmdHistory = createCmdHistory();\n }\n\n /**\n * Trigger the generation of a cue, and the start of a new one if displayScreens are not empty.\n */\n cueSplitAtTime (t: number) {\n for (let i = 0; i < this.channels.length; i++) {\n const channel = this.channels[i];\n if (channel) {\n channel.cueSplitAtTime(t);\n }\n }\n }\n}\n\nfunction setLastCmd (a: number | null, b: number | null, cmdHistory: CmdHistory) {\n cmdHistory.a = a;\n cmdHistory.b = b;\n}\n\nfunction hasCmdRepeated (a: number, b: number, cmdHistory: CmdHistory) {\n return cmdHistory.a === a && cmdHistory.b === b;\n}\n\nfunction createCmdHistory (): CmdHistory {\n return {\n a: null,\n b: null\n };\n}\n\nexport default Cea608Parser;\n","import { CaptionScreen } from './cea-608-parser';\nimport type TimelineController from '../controller/timeline-controller';\n\nexport default class OutputFilter {\n private timelineController: TimelineController;\n private cueRanges: Array<[number, number]> = [];\n private trackName: string;\n private startTime: number | null = null;\n private endTime: number | null = null;\n private screen: CaptionScreen | null = null;\n\n constructor (timelineController: TimelineController, trackName: string) {\n this.timelineController = timelineController;\n this.trackName = trackName;\n }\n\n dispatchCue () {\n if (this.startTime === null) {\n return;\n }\n\n this.timelineController.addCues(this.trackName, this.startTime, this.endTime as number, this.screen as CaptionScreen, this.cueRanges);\n this.startTime = null;\n }\n\n newCue (startTime: number, endTime: number, screen: CaptionScreen) {\n if (this.startTime === null || this.startTime > startTime) {\n this.startTime = startTime;\n }\n\n this.endTime = endTime;\n this.screen = screen;\n this.timelineController.createCaptionsTrack(this.trackName);\n }\n\n reset () {\n this.cueRanges = [];\n }\n}\n","import VTTParser from './vttparser';\nimport { utf8ArrayToStr } from '../demux/id3';\n\n// String.prototype.startsWith is not supported in IE11\nconst startsWith = function (inputString, searchString, position) {\n return inputString.substr(position || 0, searchString.length) === searchString;\n};\n\nconst cueString2millis = function (timeString) {\n let ts = parseInt(timeString.substr(-3));\n let secs = parseInt(timeString.substr(-6, 2));\n let mins = parseInt(timeString.substr(-9, 2));\n let hours = timeString.length > 9 ? parseInt(timeString.substr(0, timeString.indexOf(':'))) : 0;\n\n if (!Number.isFinite(ts) || !Number.isFinite(secs) || !Number.isFinite(mins) || !Number.isFinite(hours)) {\n throw Error(`Malformed X-TIMESTAMP-MAP: Local:${timeString}`);\n }\n\n ts += 1000 * secs;\n ts += 60 * 1000 * mins;\n ts += 60 * 60 * 1000 * hours;\n\n return ts;\n};\n\n// From https://github.com/darkskyapp/string-hash\nconst hash = function (text) {\n let hash = 5381;\n let i = text.length;\n while (i) {\n hash = (hash * 33) ^ text.charCodeAt(--i);\n }\n\n return (hash >>> 0).toString();\n};\n\nconst calculateOffset = function (vttCCs, cc, presentationTime) {\n let currCC = vttCCs[cc];\n let prevCC = vttCCs[currCC.prevCC];\n\n // This is the first discontinuity or cues have been processed since the last discontinuity\n // Offset = current discontinuity time\n if (!prevCC || (!prevCC.new && currCC.new)) {\n vttCCs.ccOffset = vttCCs.presentationOffset = currCC.start;\n currCC.new = false;\n return;\n }\n\n // There have been discontinuities since cues were last parsed.\n // Offset = time elapsed\n while (prevCC && prevCC.new) {\n vttCCs.ccOffset += currCC.start - prevCC.start;\n currCC.new = false;\n currCC = prevCC;\n prevCC = vttCCs[currCC.prevCC];\n }\n\n vttCCs.presentationOffset = presentationTime;\n};\n\nconst WebVTTParser = {\n parse: function (vttByteArray, syncPTS, vttCCs, cc, callBack, errorCallBack) {\n // Convert byteArray into string, replacing any somewhat exotic linefeeds with \"\\n\", then split on that character.\n let re = /\\r\\n|\\n\\r|\\n|\\r/g;\n // Uint8Array.prototype.reduce is not implemented in IE11\n let vttLines = utf8ArrayToStr(new Uint8Array(vttByteArray)).trim().replace(re, '\\n').split('\\n');\n\n let cueTime = '00:00.000';\n let mpegTs = 0;\n let localTime = 0;\n let presentationTime = 0;\n let cues = [];\n let parsingError;\n let inHeader = true;\n let timestampMap = false;\n // let VTTCue = VTTCue || window.TextTrackCue;\n\n // Create parser object using VTTCue with TextTrackCue fallback on certain browsers.\n let parser = new VTTParser();\n\n parser.oncue = function (cue) {\n // Adjust cue timing; clamp cues to start no earlier than - and drop cues that don't end after - 0 on timeline.\n let currCC = vttCCs[cc];\n let cueOffset = vttCCs.ccOffset;\n\n // Update offsets for new discontinuities\n if (currCC && currCC.new) {\n if (localTime !== undefined) {\n // When local time is provided, offset = discontinuity start time - local time\n cueOffset = vttCCs.ccOffset = currCC.start;\n } else {\n calculateOffset(vttCCs, cc, presentationTime);\n }\n }\n\n if (presentationTime) {\n // If we have MPEGTS, offset = presentation time + discontinuity offset\n cueOffset = presentationTime - vttCCs.presentationOffset;\n }\n\n if (timestampMap) {\n cue.startTime += cueOffset - localTime;\n cue.endTime += cueOffset - localTime;\n }\n\n // Create a unique hash id for a cue based on start/end times and text.\n // This helps timeline-controller to avoid showing repeated captions.\n cue.id = hash(cue.startTime.toString()) + hash(cue.endTime.toString()) + hash(cue.text);\n\n // Fix encoding of special characters. TODO: Test with all sorts of weird characters.\n cue.text = decodeURIComponent(encodeURIComponent(cue.text));\n if (cue.endTime > 0) {\n cues.push(cue);\n }\n };\n\n parser.onparsingerror = function (e) {\n parsingError = e;\n };\n\n parser.onflush = function () {\n if (parsingError && errorCallBack) {\n errorCallBack(parsingError);\n return;\n }\n callBack(cues);\n };\n\n // Go through contents line by line.\n vttLines.forEach(line => {\n if (inHeader) {\n // Look for X-TIMESTAMP-MAP in header.\n if (startsWith(line, 'X-TIMESTAMP-MAP=')) {\n // Once found, no more are allowed anyway, so stop searching.\n inHeader = false;\n timestampMap = true;\n // Extract LOCAL and MPEGTS.\n line.substr(16).split(',').forEach(timestamp => {\n if (startsWith(timestamp, 'LOCAL:')) {\n cueTime = timestamp.substr(6);\n } else if (startsWith(timestamp, 'MPEGTS:')) {\n mpegTs = parseInt(timestamp.substr(7));\n }\n });\n try {\n // Calculate subtitle offset in milliseconds.\n if (syncPTS + ((vttCCs[cc].start * 90000) || 0) < 0) {\n syncPTS += 8589934592;\n }\n // Adjust MPEGTS by sync PTS.\n mpegTs -= syncPTS;\n // Convert cue time to seconds\n localTime = cueString2millis(cueTime) / 1000;\n // Convert MPEGTS to seconds from 90kHz.\n presentationTime = mpegTs / 90000;\n } catch (e) {\n timestampMap = false;\n parsingError = e;\n }\n // Return without parsing X-TIMESTAMP-MAP line.\n return;\n } else if (line === '') {\n inHeader = false;\n }\n }\n // Parse line by default.\n parser.parse(line + '\\n');\n });\n\n parser.flush();\n }\n};\n\nexport default WebVTTParser;\n","import Event from '../events';\nimport EventHandler from '../event-handler';\nimport Cea608Parser, { CaptionScreen } from '../utils/cea-608-parser';\nimport OutputFilter from '../utils/output-filter';\nimport WebVTTParser from '../utils/webvtt-parser';\nimport { logger } from '../utils/logger';\nimport { sendAddTrackEvent, clearCurrentCues } from '../utils/texttrack-utils';\nimport Fragment from '../loader/fragment';\nimport { HlsConfig } from '../config';\nimport { CuesInterface } from '../utils/cues';\nimport { MediaPlaylist } from '../types/media-playlist';\n\ntype TrackProperties = {\n label: string,\n languageCode: string,\n media?: MediaPlaylist\n};\n\ntype NonNativeCaptionsTrack = {\n _id?: string,\n label: string,\n kind: string,\n default: boolean,\n closedCaptions?: MediaPlaylist,\n subtitleTrack?: MediaPlaylist\n};\n\ntype VTTCCs = {\n ccOffset: number,\n presentationOffset: number,\n [key: number]: {\n start: number,\n prevCC: number,\n new: boolean\n }\n};\n\nclass TimelineController extends EventHandler {\n private media: HTMLMediaElement | null = null;\n private config: HlsConfig;\n private enabled: boolean = true;\n private Cues: CuesInterface;\n private textTracks: Array<TextTrack> = [];\n private tracks: Array<MediaPlaylist> = [];\n private initPTS: Array<number> = [];\n private unparsedVttFrags: Array<{ frag: Fragment, payload: ArrayBuffer }> = [];\n private captionsTracks: Record<string, TextTrack> = {};\n private nonNativeCaptionsTracks: Record<string, NonNativeCaptionsTrack> = {};\n private captionsProperties: {\n textTrack1: TrackProperties\n textTrack2: TrackProperties\n textTrack3: TrackProperties\n textTrack4: TrackProperties\n };\n private readonly cea608Parser1!: Cea608Parser;\n private readonly cea608Parser2!: Cea608Parser;\n private lastSn: number = -1;\n private prevCC: number = -1;\n private vttCCs: VTTCCs = newVTTCCs();\n\n constructor (hls) {\n super(hls,\n Event.MEDIA_ATTACHING,\n Event.MEDIA_DETACHING,\n Event.FRAG_PARSING_USERDATA,\n Event.FRAG_DECRYPTED,\n Event.MANIFEST_LOADING,\n Event.MANIFEST_LOADED,\n Event.FRAG_LOADED,\n Event.INIT_PTS_FOUND);\n\n this.hls = hls;\n this.config = hls.config;\n this.Cues = hls.config.cueHandler;\n\n this.captionsProperties = {\n textTrack1: {\n label: this.config.captionsTextTrack1Label,\n languageCode: this.config.captionsTextTrack1LanguageCode\n },\n textTrack2: {\n label: this.config.captionsTextTrack2Label,\n languageCode: this.config.captionsTextTrack2LanguageCode\n },\n textTrack3: {\n label: this.config.captionsTextTrack3Label,\n languageCode: this.config.captionsTextTrack3LanguageCode\n },\n textTrack4: {\n label: this.config.captionsTextTrack4Label,\n languageCode: this.config.captionsTextTrack4LanguageCode\n }\n };\n\n if (this.config.enableCEA708Captions) {\n const channel1 = new OutputFilter(this, 'textTrack1');\n const channel2 = new OutputFilter(this, 'textTrack2');\n const channel3 = new OutputFilter(this, 'textTrack3');\n const channel4 = new OutputFilter(this, 'textTrack4');\n this.cea608Parser1 = new Cea608Parser(1, channel1, channel2);\n this.cea608Parser2 = new Cea608Parser(3, channel3, channel4);\n }\n }\n\n addCues (trackName: string, startTime: number, endTime: number, screen: CaptionScreen, cueRanges: Array<[number, number]>) {\n // skip cues which overlap more than 50% with previously parsed time ranges\n let merged = false;\n for (let i = cueRanges.length; i--;) {\n let cueRange = cueRanges[i];\n let overlap = intersection(cueRange[0], cueRange[1], startTime, endTime);\n if (overlap >= 0) {\n cueRange[0] = Math.min(cueRange[0], startTime);\n cueRange[1] = Math.max(cueRange[1], endTime);\n merged = true;\n if ((overlap / (endTime - startTime)) > 0.5) {\n return;\n }\n }\n }\n if (!merged) {\n cueRanges.push([startTime, endTime]);\n }\n\n if (this.config.renderTextTracksNatively) {\n this.Cues.newCue(this.captionsTracks[trackName], startTime, endTime, screen);\n } else {\n const cues = this.Cues.newCue(null, startTime, endTime, screen);\n this.hls.trigger(Event.CUES_PARSED, { type: 'captions', cues, track: trackName });\n }\n }\n\n // Triggered when an initial PTS is found; used for synchronisation of WebVTT.\n onInitPtsFound (data: { id: string, frag: Fragment, initPTS: number}) {\n const { frag, id, initPTS } = data;\n const { unparsedVttFrags } = this;\n if (id === 'main') {\n this.initPTS[frag.cc] = initPTS;\n }\n\n // Due to asynchronous processing, initial PTS may arrive later than the first VTT fragments are loaded.\n // Parse any unparsed fragments upon receiving the initial PTS.\n if (unparsedVttFrags.length) {\n this.unparsedVttFrags = [];\n unparsedVttFrags.forEach(frag => {\n this.onFragLoaded(frag);\n });\n }\n }\n\n getExistingTrack (trackName: string): TextTrack | null {\n const { media } = this;\n if (media) {\n for (let i = 0; i < media.textTracks.length; i++) {\n let textTrack = media.textTracks[i];\n if (textTrack[trackName]) {\n return textTrack;\n }\n }\n }\n return null;\n }\n\n createCaptionsTrack (trackName: string) {\n if (this.config.renderTextTracksNatively) {\n this.createNativeTrack(trackName);\n } else {\n this.createNonNativeTrack(trackName);\n }\n }\n\n createNativeTrack (trackName: string) {\n if (this.captionsTracks[trackName]) {\n return;\n }\n const { captionsProperties, captionsTracks, media } = this;\n const { label, languageCode } = captionsProperties[trackName];\n // Enable reuse of existing text track.\n const existingTrack = this.getExistingTrack(trackName);\n if (!existingTrack) {\n const textTrack = this.createTextTrack('captions', label, languageCode);\n if (textTrack) {\n // Set a special property on the track so we know it's managed by Hls.js\n textTrack[trackName] = true;\n captionsTracks[trackName] = textTrack;\n }\n } else {\n captionsTracks[trackName] = existingTrack;\n clearCurrentCues(captionsTracks[trackName]);\n sendAddTrackEvent(captionsTracks[trackName], media as HTMLMediaElement);\n }\n }\n\n createNonNativeTrack (trackName: string) {\n if (this.nonNativeCaptionsTracks[trackName]) {\n return;\n }\n // Create a list of a single track for the provider to consume\n const trackProperties: TrackProperties = this.captionsProperties[trackName];\n if (!trackProperties) {\n return;\n }\n const label = trackProperties.label as string;\n const track = {\n _id: trackName,\n label,\n kind: 'captions',\n default: trackProperties.media ? !!trackProperties.media.default : false,\n closedCaptions: trackProperties.media\n };\n this.nonNativeCaptionsTracks[trackName] = track;\n this.hls.trigger(Event.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: [track] });\n }\n createTextTrack (kind: TextTrackKind, label: string, lang?: string): TextTrack | undefined {\n const media = this.media;\n if (!media) {\n return;\n }\n return media.addTextTrack(kind, label, lang);\n }\n\n destroy () {\n super.destroy();\n }\n\n onMediaAttaching (data: { media: HTMLMediaElement }) {\n this.media = data.media;\n this._cleanTracks();\n }\n\n onMediaDetaching () {\n const { captionsTracks } = this;\n Object.keys(captionsTracks).forEach(trackName => {\n clearCurrentCues(captionsTracks[trackName]);\n delete captionsTracks[trackName];\n });\n this.nonNativeCaptionsTracks = {};\n }\n\n onManifestLoading () {\n this.lastSn = -1; // Detect discontiguity in fragment parsing\n this.prevCC = -1;\n this.vttCCs = newVTTCCs(); // Detect discontinuity in subtitle manifests\n this._cleanTracks();\n this.tracks = [];\n this.captionsTracks = {};\n this.nonNativeCaptionsTracks = {};\n }\n\n _cleanTracks () {\n // clear outdated subtitles\n const { media } = this;\n if (!media) {\n return;\n }\n const textTracks = media.textTracks;\n if (textTracks) {\n for (let i = 0; i < textTracks.length; i++) {\n clearCurrentCues(textTracks[i]);\n }\n }\n }\n\n onManifestLoaded (data: { subtitles: Array<MediaPlaylist>, captions: Array<MediaPlaylist> }) {\n this.textTracks = [];\n this.unparsedVttFrags = this.unparsedVttFrags || [];\n this.initPTS = [];\n if (this.cea608Parser1 && this.cea608Parser2) {\n this.cea608Parser1.reset();\n this.cea608Parser2.reset();\n }\n\n if (this.config.enableWebVTT) {\n const tracks = data.subtitles || [];\n const sameTracks = this.tracks && tracks && this.tracks.length === tracks.length;\n this.tracks = data.subtitles || [];\n\n if (this.config.renderTextTracksNatively) {\n const inUseTracks = this.media ? this.media.textTracks : [];\n\n this.tracks.forEach((track, index) => {\n let textTrack;\n if (index < inUseTracks.length) {\n let inUseTrack: TextTrack | null = null;\n\n for (let i = 0; i < inUseTracks.length; i++) {\n if (canReuseVttTextTrack(inUseTracks[i], track)) {\n inUseTrack = inUseTracks[i];\n break;\n }\n }\n\n // Reuse tracks with the same label, but do not reuse 608/708 tracks\n if (inUseTrack) {\n textTrack = inUseTrack;\n }\n }\n if (!textTrack) {\n textTrack = this.createTextTrack('subtitles', track.name, track.lang);\n }\n\n if (track.default) {\n textTrack.mode = this.hls.subtitleDisplay ? 'showing' : 'hidden';\n } else {\n textTrack.mode = 'disabled';\n }\n\n this.textTracks.push(textTrack);\n });\n } else if (!sameTracks && this.tracks && this.tracks.length) {\n // Create a list of tracks for the provider to consume\n const tracksList = this.tracks.map((track) => {\n return {\n label: track.name,\n kind: track.type.toLowerCase(),\n default: track.default,\n subtitleTrack: track\n };\n });\n this.hls.trigger(Event.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: tracksList });\n }\n }\n\n if (this.config.enableCEA708Captions && data.captions) {\n data.captions.forEach(captionsTrack => {\n const instreamIdMatch = /(?:CC|SERVICE)([1-4])/.exec(captionsTrack.instreamId as string);\n if (!instreamIdMatch) {\n return;\n }\n const trackName = `textTrack${instreamIdMatch[1]}`;\n const trackProperties: TrackProperties = this.captionsProperties[trackName];\n if (!trackProperties) {\n return;\n }\n trackProperties.label = captionsTrack.name;\n if (captionsTrack.lang) { // optional attribute\n trackProperties.languageCode = captionsTrack.lang;\n }\n trackProperties.media = captionsTrack;\n });\n }\n }\n\n onFragLoaded (data: { frag: Fragment, payload: ArrayBuffer }) {\n const { frag, payload } = data;\n const { cea608Parser1, cea608Parser2, initPTS, lastSn, unparsedVttFrags } = this;\n if (frag.type === 'main') {\n const sn = frag.sn;\n // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack\n if (frag.sn !== lastSn + 1) {\n if (cea608Parser1 && cea608Parser2) {\n cea608Parser1.reset();\n cea608Parser2.reset();\n }\n }\n this.lastSn = sn as number;\n } // eslint-disable-line brace-style\n // If fragment is subtitle type, parse as WebVTT.\n else if (frag.type === 'subtitle') {\n if (payload.byteLength) {\n // We need an initial synchronisation PTS. Store fragments as long as none has arrived.\n if (!Number.isFinite(initPTS[frag.cc])) {\n unparsedVttFrags.push(data);\n if (initPTS.length) {\n // finish unsuccessfully, otherwise the subtitle-stream-controller could be blocked from loading new frags.\n this.hls.trigger(Event.SUBTITLE_FRAG_PROCESSED, { success: false, frag });\n }\n return;\n }\n\n let decryptData = frag.decryptdata;\n // If the subtitles are not encrypted, parse VTTs now. Otherwise, we need to wait.\n if ((decryptData == null) || (decryptData.key == null) || (decryptData.method !== 'AES-128')) {\n this._parseVTTs(frag, payload);\n }\n } else {\n // In case there is no payload, finish unsuccessfully.\n this.hls.trigger(Event.SUBTITLE_FRAG_PROCESSED, { success: false, frag });\n }\n }\n }\n\n _parseVTTs (frag: Fragment, payload: ArrayBuffer) {\n const { hls, prevCC, textTracks, vttCCs } = this;\n if (!vttCCs[frag.cc]) {\n vttCCs[frag.cc] = { start: frag.start, prevCC, new: true };\n this.prevCC = frag.cc;\n }\n // Parse the WebVTT file contents.\n WebVTTParser.parse(payload, this.initPTS[frag.cc], vttCCs, frag.cc, (cues) => {\n if (this.config.renderTextTracksNatively) {\n const currentTrack = textTracks[frag.level];\n // WebVTTParser.parse is an async method and if the currently selected text track mode is set to \"disabled\"\n // before parsing is done then don't try to access currentTrack.cues.getCueById as cues will be null\n // and trying to access getCueById method of cues will throw an exception\n // Because we check if the mode is diabled, we can force check `cues` below. They can't be null.\n if (currentTrack.mode === 'disabled') {\n hls.trigger(Event.SUBTITLE_FRAG_PROCESSED, { success: false, frag: frag });\n return;\n }\n\n // Add cues and trigger event with success true.\n cues.forEach(cue => {\n // Sometimes there are cue overlaps on segmented vtts so the same\n // cue can appear more than once in different vtt files.\n // This avoid showing duplicated cues with same timecode and text.\n if (!currentTrack.cues!.getCueById(cue.id)) {\n try {\n currentTrack.addCue(cue);\n if (!currentTrack.cues!.getCueById(cue.id)) {\n throw new Error(`addCue is failed for: ${cue}`);\n }\n } catch (err) {\n logger.debug(`Failed occurred on adding cues: ${err}`);\n const textTrackCue = new (window as any).TextTrackCue(cue.startTime, cue.endTime, cue.text);\n textTrackCue.id = cue.id;\n currentTrack.addCue(textTrackCue);\n }\n }\n });\n } else {\n let trackId = this.tracks[frag.level].default ? 'default' : 'subtitles' + frag.level;\n hls.trigger(Event.CUES_PARSED, { type: 'subtitles', cues: cues, track: trackId });\n }\n hls.trigger(Event.SUBTITLE_FRAG_PROCESSED, { success: true, frag: frag });\n },\n function (e) {\n // Something went wrong while parsing. Trigger event with success false.\n logger.log(`Failed to parse VTT cue: ${e}`);\n hls.trigger(Event.SUBTITLE_FRAG_PROCESSED, { success: false, frag: frag });\n });\n }\n\n onFragDecrypted (data: { frag: Fragment, payload: any}) {\n const { frag, payload } = data;\n if (frag.type === 'subtitle') {\n if (!Number.isFinite(this.initPTS[frag.cc])) {\n this.unparsedVttFrags.push(data);\n return;\n }\n\n this._parseVTTs(frag, payload);\n }\n }\n\n onFragParsingUserdata (data: { samples: Array<any> }) {\n const { cea608Parser1, cea608Parser2 } = this;\n if (!this.enabled || !(cea608Parser1 && cea608Parser2)) {\n return;\n }\n\n // If the event contains captions (found in the bytes property), push all bytes into the parser immediately\n // It will create the proper timestamps based on the PTS value\n for (let i = 0; i < data.samples.length; i++) {\n const ccBytes = data.samples[i].bytes;\n if (ccBytes) {\n const ccdatas = this.extractCea608Data(ccBytes);\n cea608Parser1.addData(data.samples[i].pts, ccdatas[0]);\n cea608Parser2.addData(data.samples[i].pts, ccdatas[1]);\n }\n }\n }\n\n extractCea608Data (byteArray: Uint8Array): number[][] {\n const count = byteArray[0] & 31;\n let position = 2;\n const actualCCBytes: number[][] = [[], []];\n\n for (let j = 0; j < count; j++) {\n const tmpByte = byteArray[position++];\n const ccbyte1 = 0x7F & byteArray[position++];\n const ccbyte2 = 0x7F & byteArray[position++];\n const ccValid = (4 & tmpByte) !== 0;\n const ccType = 3 & tmpByte;\n\n if (ccbyte1 === 0 && ccbyte2 === 0) {\n continue;\n }\n\n if (ccValid) {\n if (ccType === 0 || ccType === 1) {\n actualCCBytes[ccType].push(ccbyte1);\n actualCCBytes[ccType].push(ccbyte2);\n }\n }\n }\n return actualCCBytes;\n }\n}\n\nfunction canReuseVttTextTrack (inUseTrack, manifestTrack): boolean {\n return inUseTrack && inUseTrack.label === manifestTrack.name && !(inUseTrack.textTrack1 || inUseTrack.textTrack2);\n}\n\nfunction intersection (x1: number, x2: number, y1: number, y2: number): number {\n return Math.min(x2, y2) - Math.max(x1, y1);\n}\n\nfunction newVTTCCs (): VTTCCs {\n return {\n ccOffset: 0,\n presentationOffset: 0,\n 0: {\n start: 0,\n prevCC: -1,\n new: false\n }\n };\n}\n\nexport default TimelineController;\n","import Event from '../events';\nimport EventHandler from '../event-handler';\nimport { logger } from '../utils/logger';\nimport { computeReloadInterval } from './level-helper';\nimport { clearCurrentCues } from '../utils/texttrack-utils';\n\nclass SubtitleTrackController extends EventHandler {\n constructor (hls) {\n super(hls,\n Event.MEDIA_ATTACHED,\n Event.MEDIA_DETACHING,\n Event.MANIFEST_LOADED,\n Event.SUBTITLE_TRACK_LOADED);\n this.tracks = [];\n this.trackId = -1;\n this.media = null;\n this.stopped = true;\n\n /**\n * @member {boolean} subtitleDisplay Enable/disable subtitle display rendering\n */\n this.subtitleDisplay = true;\n\n /**\n * Keeps reference to a default track id when media has not been attached yet\n * @member {number}\n */\n this.queuedDefaultTrack = null;\n }\n\n destroy () {\n EventHandler.prototype.destroy.call(this);\n }\n\n // Listen for subtitle track change, then extract the current track ID.\n onMediaAttached (data) {\n this.media = data.media;\n if (!this.media) {\n return;\n }\n\n if (Number.isFinite(this.queuedDefaultTrack)) {\n this.subtitleTrack = this.queuedDefaultTrack;\n this.queuedDefaultTrack = null;\n }\n\n this.trackChangeListener = this._onTextTracksChanged.bind(this);\n\n this.useTextTrackPolling = !(this.media.textTracks && 'onchange' in this.media.textTracks);\n if (this.useTextTrackPolling) {\n this.subtitlePollingInterval = setInterval(() => {\n this.trackChangeListener();\n }, 500);\n } else {\n this.media.textTracks.addEventListener('change', this.trackChangeListener);\n }\n }\n\n onMediaDetaching () {\n if (!this.media) {\n return;\n }\n\n if (this.useTextTrackPolling) {\n clearInterval(this.subtitlePollingInterval);\n } else {\n this.media.textTracks.removeEventListener('change', this.trackChangeListener);\n }\n\n if (Number.isFinite(this.subtitleTrack)) {\n this.queuedDefaultTrack = this.subtitleTrack;\n }\n\n const textTracks = filterSubtitleTracks(this.media.textTracks);\n // Clear loaded cues on media detachment from tracks\n textTracks.forEach((track) => {\n clearCurrentCues(track);\n });\n // Disable all subtitle tracks before detachment so when reattached only tracks in that content are enabled.\n this.subtitleTrack = -1;\n this.media = null;\n }\n\n // Fired whenever a new manifest is loaded.\n onManifestLoaded (data) {\n let tracks = data.subtitles || [];\n this.tracks = tracks;\n this.hls.trigger(Event.SUBTITLE_TRACKS_UPDATED, { subtitleTracks: tracks });\n\n // loop through available subtitle tracks and autoselect default if needed\n // TODO: improve selection logic to handle forced, etc\n tracks.forEach(track => {\n if (track.default) {\n // setting this.subtitleTrack will trigger internal logic\n // if media has not been attached yet, it will fail\n // we keep a reference to the default track id\n // and we'll set subtitleTrack when onMediaAttached is triggered\n if (this.media) {\n this.subtitleTrack = track.id;\n } else {\n this.queuedDefaultTrack = track.id;\n }\n }\n });\n }\n\n onSubtitleTrackLoaded (data) {\n const { id, details } = data;\n const { trackId, tracks } = this;\n const currentTrack = tracks[trackId];\n if (id >= tracks.length || id !== trackId || !currentTrack || this.stopped) {\n this._clearReloadTimer();\n return;\n }\n\n logger.log(`subtitle track ${id} loaded`);\n if (details.live) {\n const reloadInterval = computeReloadInterval(currentTrack.details, details, data.stats.trequest);\n logger.log(`Reloading live subtitle playlist in ${reloadInterval}ms`);\n this.timer = setTimeout(() => {\n this._loadCurrentTrack();\n }, reloadInterval);\n } else {\n this._clearReloadTimer();\n }\n }\n\n startLoad () {\n this.stopped = false;\n this._loadCurrentTrack();\n }\n\n stopLoad () {\n this.stopped = true;\n this._clearReloadTimer();\n }\n\n /** get alternate subtitle tracks list from playlist **/\n get subtitleTracks () {\n return this.tracks;\n }\n\n /** get index of the selected subtitle track (index in subtitle track lists) **/\n get subtitleTrack () {\n return this.trackId;\n }\n\n /** select a subtitle track, based on its index in subtitle track lists**/\n set subtitleTrack (subtitleTrackId) {\n if (this.trackId !== subtitleTrackId) {\n this._toggleTrackModes(subtitleTrackId);\n this._setSubtitleTrackInternal(subtitleTrackId);\n }\n }\n\n _clearReloadTimer () {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n _loadCurrentTrack () {\n const { trackId, tracks, hls } = this;\n const currentTrack = tracks[trackId];\n if (trackId < 0 || !currentTrack || (currentTrack.details && !currentTrack.details.live)) {\n return;\n }\n logger.log(`Loading subtitle track ${trackId}`);\n hls.trigger(Event.SUBTITLE_TRACK_LOADING, { url: currentTrack.url, id: trackId });\n }\n\n /**\n * Disables the old subtitleTrack and sets current mode on the next subtitleTrack.\n * This operates on the DOM textTracks.\n * A value of -1 will disable all subtitle tracks.\n * @param newId - The id of the next track to enable\n * @private\n */\n _toggleTrackModes (newId) {\n const { media, subtitleDisplay, trackId } = this;\n if (!media) {\n return;\n }\n\n const textTracks = filterSubtitleTracks(media.textTracks);\n if (newId === -1) {\n [].slice.call(textTracks).forEach(track => {\n track.mode = 'disabled';\n });\n } else {\n const oldTrack = textTracks[trackId];\n if (oldTrack) {\n oldTrack.mode = 'disabled';\n }\n }\n\n const nextTrack = textTracks[newId];\n if (nextTrack) {\n nextTrack.mode = subtitleDisplay ? 'showing' : 'hidden';\n }\n }\n\n /**\n * This method is responsible for validating the subtitle index and periodically reloading if live.\n * Dispatches the SUBTITLE_TRACK_SWITCH event, which instructs the subtitle-stream-controller to load the selected track.\n * @param newId - The id of the subtitle track to activate.\n */\n _setSubtitleTrackInternal (newId) {\n const { hls, tracks } = this;\n if (!Number.isFinite(newId) || newId < -1 || newId >= tracks.length) {\n return;\n }\n\n this.trackId = newId;\n logger.log(`Switching to subtitle track ${newId}`);\n hls.trigger(Event.SUBTITLE_TRACK_SWITCH, { id: newId });\n this._loadCurrentTrack();\n }\n\n _onTextTracksChanged () {\n // Media is undefined when switching streams via loadSource()\n if (!this.media || !this.hls.config.renderTextTracksNatively) {\n return;\n }\n\n let trackId = -1;\n let tracks = filterSubtitleTracks(this.media.textTracks);\n for (let id = 0; id < tracks.length; id++) {\n if (tracks[id].mode === 'hidden') {\n // Do not break in case there is a following track with showing.\n trackId = id;\n } else if (tracks[id].mode === 'showing') {\n trackId = id;\n break;\n }\n }\n\n // Setting current subtitleTrack will invoke code.\n this.subtitleTrack = trackId;\n }\n}\n\nfunction filterSubtitleTracks (textTrackList) {\n let tracks = [];\n for (let i = 0; i < textTrackList.length; i++) {\n const track = textTrackList[i];\n // Edge adds a track without a label; we don't want to use it\n if (track.kind === 'subtitles' && track.label) {\n tracks.push(textTrackList[i]);\n }\n }\n return tracks;\n}\n\nexport default SubtitleTrackController;\n","/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess\n */\nexport enum KeySystems {\n WIDEVINE = 'com.widevine.alpha',\n PLAYREADY = 'com.microsoft.playready',\n}\n\nexport type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;\nconst requestMediaKeySystemAccess = (function (): MediaKeyFunc | null {\n if (typeof window !== 'undefined' && window.navigator && window.navigator.requestMediaKeySystemAccess) {\n return window.navigator.requestMediaKeySystemAccess.bind(window.navigator);\n } else {\n return null;\n }\n})();\n\nexport {\n requestMediaKeySystemAccess\n};\n","/**\n * @class SubtitleStreamController\n */\n\nimport Event from '../events';\nimport { logger } from '../utils/logger';\nimport Decrypter from '../crypt/decrypter';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport { findFragmentByPDT, findFragmentByPTS } from './fragment-finders';\nimport { FragmentState } from './fragment-tracker';\nimport BaseStreamController, { State } from './base-stream-controller';\nimport { mergeSubtitlePlaylists } from './level-helper';\n\nconst { performance } = window;\nconst TICK_INTERVAL = 500; // how often to tick in ms\n\nexport class SubtitleStreamController extends BaseStreamController {\n constructor (hls, fragmentTracker) {\n super(hls,\n Event.MEDIA_ATTACHED,\n Event.MEDIA_DETACHING,\n Event.ERROR,\n Event.KEY_LOADED,\n Event.FRAG_LOADED,\n Event.SUBTITLE_TRACKS_UPDATED,\n Event.SUBTITLE_TRACK_SWITCH,\n Event.SUBTITLE_TRACK_LOADED,\n Event.SUBTITLE_FRAG_PROCESSED,\n Event.LEVEL_UPDATED);\n\n this.fragmentTracker = fragmentTracker;\n this.config = hls.config;\n this.state = State.STOPPED;\n this.tracks = [];\n this.tracksBuffered = [];\n this.currentTrackId = -1;\n this.decrypter = new Decrypter(hls, hls.config);\n // lastAVStart stores the time in seconds for the start time of a level load\n this.lastAVStart = 0;\n this._onMediaSeeking = this.onMediaSeeking.bind(this);\n }\n\n startLoad () {\n this.stopLoad();\n this.state = State.IDLE;\n\n // Check if we already have a track with necessary details to load fragments\n const currentTrack = this.tracks[this.currentTrackId];\n if (currentTrack && currentTrack.details) {\n this.setInterval(TICK_INTERVAL);\n this.tick();\n }\n }\n\n onSubtitleFragProcessed (data) {\n const { frag, success } = data;\n this.fragPrevious = frag;\n this.state = State.IDLE;\n if (!success) {\n return;\n }\n\n const buffered = this.tracksBuffered[this.currentTrackId];\n if (!buffered) {\n return;\n }\n\n // Create/update a buffered array matching the interface used by BufferHelper.bufferedInfo\n // so we can re-use the logic used to detect how much have been buffered\n let timeRange;\n const fragStart = frag.start;\n for (let i = 0; i < buffered.length; i++) {\n if (fragStart >= buffered[i].start && fragStart <= buffered[i].end) {\n timeRange = buffered[i];\n break;\n }\n }\n\n const fragEnd = frag.start + frag.duration;\n if (timeRange) {\n timeRange.end = fragEnd;\n } else {\n timeRange = {\n start: fragStart,\n end: fragEnd\n };\n buffered.push(timeRange);\n }\n }\n\n onMediaAttached ({ media }) {\n this.media = media;\n media.addEventListener('seeking', this._onMediaSeeking);\n this.state = State.IDLE;\n }\n\n onMediaDetaching () {\n if (!this.media) {\n return;\n }\n this.media.removeEventListener('seeking', this._onMediaSeeking);\n this.fragmentTracker.removeAllFragments();\n this.currentTrackId = -1;\n this.tracks.forEach((track) => {\n this.tracksBuffered[track.id] = [];\n });\n this.media = null;\n this.state = State.STOPPED;\n }\n\n // If something goes wrong, proceed to next frag, if we were processing one.\n onError (data) {\n let frag = data.frag;\n // don't handle error not related to subtitle fragment\n if (!frag || frag.type !== 'subtitle') {\n return;\n }\n\n if (this.fragCurrent && this.fragCurrent.loader) {\n this.fragCurrent.loader.abort();\n }\n\n this.state = State.IDLE;\n }\n\n // Got all new subtitle tracks.\n onSubtitleTracksUpdated (data) {\n logger.log('subtitle tracks updated');\n this.tracksBuffered = [];\n this.tracks = data.subtitleTracks;\n this.tracks.forEach((track) => {\n this.tracksBuffered[track.id] = [];\n });\n }\n\n onSubtitleTrackSwitch (data) {\n this.currentTrackId = data.id;\n\n if (!this.tracks || !this.tracks.length || this.currentTrackId === -1) {\n this.clearInterval();\n return;\n }\n\n // Check if track has the necessary details to load fragments\n const currentTrack = this.tracks[this.currentTrackId];\n if (currentTrack && currentTrack.details) {\n this.setInterval(TICK_INTERVAL);\n }\n }\n\n // Got a new set of subtitle fragments.\n onSubtitleTrackLoaded (data) {\n const { id, details } = data;\n const { currentTrackId, tracks } = this;\n const currentTrack = tracks[currentTrackId];\n if (id >= tracks.length || id !== currentTrackId || !currentTrack) {\n return;\n }\n\n if (details.live) {\n mergeSubtitlePlaylists(currentTrack.details, details, this.lastAVStart);\n }\n currentTrack.details = details;\n this.setInterval(TICK_INTERVAL);\n }\n\n onKeyLoaded () {\n if (this.state === State.KEY_LOADING) {\n this.state = State.IDLE;\n }\n }\n\n onFragLoaded (data) {\n const fragCurrent = this.fragCurrent;\n const decryptData = data.frag.decryptdata;\n const fragLoaded = data.frag;\n const hls = this.hls;\n\n if (this.state === State.FRAG_LOADING &&\n fragCurrent &&\n data.frag.type === 'subtitle' &&\n fragCurrent.sn === data.frag.sn) {\n // check to see if the payload needs to be decrypted\n if (data.payload.byteLength > 0 && (decryptData && decryptData.key && decryptData.method === 'AES-128')) {\n let startTime = performance.now();\n\n // decrypt the subtitles\n this.decrypter.decrypt(data.payload, decryptData.key.buffer, decryptData.iv.buffer, function (decryptedData) {\n let endTime = performance.now();\n hls.trigger(Event.FRAG_DECRYPTED, { frag: fragLoaded, payload: decryptedData, stats: { tstart: startTime, tdecrypt: endTime } });\n });\n }\n }\n }\n\n onLevelUpdated ({ details }) {\n const frags = details.fragments;\n this.lastAVStart = frags.length ? frags[0].start : 0;\n }\n\n doTick () {\n if (!this.media) {\n this.state = State.IDLE;\n return;\n }\n\n switch (this.state) {\n case State.IDLE: {\n const { config, currentTrackId, fragmentTracker, media, tracks } = this;\n if (!tracks || !tracks[currentTrackId] || !tracks[currentTrackId].details) {\n break;\n }\n\n const { maxBufferHole, maxFragLookUpTolerance } = config;\n const maxConfigBuffer = Math.min(config.maxBufferLength, config.maxMaxBufferLength);\n const bufferedInfo = BufferHelper.bufferedInfo(this._getBuffered(), media.currentTime, maxBufferHole);\n const { end: bufferEnd, len: bufferLen } = bufferedInfo;\n\n const trackDetails = tracks[currentTrackId].details;\n const fragments = trackDetails.fragments;\n const fragLen = fragments.length;\n const end = fragments[fragLen - 1].start + fragments[fragLen - 1].duration;\n\n if (bufferLen > maxConfigBuffer) {\n return;\n }\n\n let foundFrag;\n const fragPrevious = this.fragPrevious;\n if (bufferEnd < end) {\n if (fragPrevious && trackDetails.hasProgramDateTime) {\n foundFrag = findFragmentByPDT(fragments, fragPrevious.endProgramDateTime, maxFragLookUpTolerance);\n }\n if (!foundFrag) {\n foundFrag = findFragmentByPTS(fragPrevious, fragments, bufferEnd, maxFragLookUpTolerance);\n }\n } else {\n foundFrag = fragments[fragLen - 1];\n }\n\n if (foundFrag && foundFrag.encrypted) {\n logger.log(`Loading key for ${foundFrag.sn}`);\n this.state = State.KEY_LOADING;\n this.hls.trigger(Event.KEY_LOADING, { frag: foundFrag });\n } else if (foundFrag && fragmentTracker.getState(foundFrag) === FragmentState.NOT_LOADED) {\n // only load if fragment is not loaded\n this.fragCurrent = foundFrag;\n this.state = State.FRAG_LOADING;\n this.hls.trigger(Event.FRAG_LOADING, { frag: foundFrag });\n }\n }\n }\n }\n\n stopLoad () {\n this.lastAVStart = 0;\n this.fragPrevious = null;\n super.stopLoad();\n }\n\n _getBuffered () {\n return this.tracksBuffered[this.currentTrackId] || [];\n }\n\n onMediaSeeking () {\n if (this.fragCurrent) {\n const currentTime = this.media ? this.media.currentTime : 0;\n const tolerance = this.config.maxFragLookUpTolerance;\n const fragStartOffset = this.fragCurrent.start - tolerance;\n const fragEndOffset = this.fragCurrent.start + this.fragCurrent.duration + tolerance;\n\n // check if position will be out of currently loaded frag range after seeking : if out, cancel frag load, if in, don't do anything\n if (currentTime < fragStartOffset || currentTime > fragEndOffset) {\n if (this.fragCurrent.loader) {\n this.fragCurrent.loader.abort();\n }\n\n this.fragmentTracker.removeFragment(this.fragCurrent);\n this.fragCurrent = null;\n this.fragPrevious = null;\n\n // switch to IDLE state to load new fragment\n this.state = State.IDLE;\n\n // speed up things\n this.tick();\n }\n }\n }\n}\n","/**\n * @author Stephan Hesse <disparat@gmail.com> | <tchakabam@gmail.com>\n *\n * DRM support for Hls.js\n */\n\nimport EventHandler from '../event-handler';\nimport Event from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\n\nimport { logger } from '../utils/logger';\nimport { DRMSystemOptions, EMEControllerConfig } from '../config';\nimport { KeySystems, MediaKeyFunc } from '../utils/mediakeys-helper';\n\nconst MAX_LICENSE_REQUEST_FAILURES = 3;\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemConfiguration\n * @param {Array<string>} audioCodecs List of required audio codecs to support\n * @param {Array<string>} videoCodecs List of required video codecs to support\n * @param {object} drmSystemOptions Optional parameters/requirements for the key-system\n * @returns {Array<MediaSystemConfiguration>} An array of supported configurations\n */\n\nconst createWidevineMediaKeySystemConfigurations = function (\n audioCodecs: string[],\n videoCodecs: string[],\n drmSystemOptions: DRMSystemOptions\n): MediaKeySystemConfiguration[] { /* jshint ignore:line */\n const baseConfig: MediaKeySystemConfiguration = {\n // initDataTypes: ['keyids', 'mp4'],\n // label: \"\",\n // persistentState: \"not-allowed\", // or \"required\" ?\n // distinctiveIdentifier: \"not-allowed\", // or \"required\" ?\n // sessionTypes: ['temporary'],\n audioCapabilities: [], // { contentType: 'audio/mp4; codecs=\"mp4a.40.2\"' }\n videoCapabilities: [] // { contentType: 'video/mp4; codecs=\"avc1.42E01E\"' }\n };\n\n audioCodecs.forEach((codec) => {\n baseConfig.audioCapabilities!.push({\n contentType: `audio/mp4; codecs=\"${codec}\"`,\n robustness: drmSystemOptions.audioRobustness || ''\n });\n });\n videoCodecs.forEach((codec) => {\n baseConfig.videoCapabilities!.push({\n contentType: `video/mp4; codecs=\"${codec}\"`,\n robustness: drmSystemOptions.videoRobustness || ''\n });\n });\n\n return [\n baseConfig\n ];\n};\n\n/**\n * The idea here is to handle key-system (and their respective platforms) specific configuration differences\n * in order to work with the local requestMediaKeySystemAccess method.\n *\n * We can also rule-out platform-related key-system support at this point by throwing an error.\n *\n * @param {string} keySystem Identifier for the key-system, see `KeySystems` enum\n * @param {Array<string>} audioCodecs List of required audio codecs to support\n * @param {Array<string>} videoCodecs List of required video codecs to support\n * @throws will throw an error if a unknown key system is passed\n * @returns {Array<MediaSystemConfiguration>} A non-empty Array of MediaKeySystemConfiguration objects\n */\nconst getSupportedMediaKeySystemConfigurations = function (\n keySystem: KeySystems,\n audioCodecs: string[],\n videoCodecs: string[],\n drmSystemOptions: DRMSystemOptions\n): MediaKeySystemConfiguration[] {\n switch (keySystem) {\n case KeySystems.WIDEVINE:\n return createWidevineMediaKeySystemConfigurations(audioCodecs, videoCodecs, drmSystemOptions);\n default:\n throw new Error(`Unknown key-system: ${keySystem}`);\n }\n};\n\ninterface MediaKeysListItem {\n mediaKeys?: MediaKeys,\n mediaKeysSession?: MediaKeySession,\n mediaKeysSessionInitialized: boolean;\n mediaKeySystemAccess: MediaKeySystemAccess;\n mediaKeySystemDomain: KeySystems;\n}\n\n/**\n * Controller to deal with encrypted media extensions (EME)\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API\n *\n * @class\n * @constructor\n */\nclass EMEController extends EventHandler {\n private _widevineLicenseUrl?: string;\n private _licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void;\n private _emeEnabled: boolean;\n private _requestMediaKeySystemAccess: MediaKeyFunc | null;\n private _drmSystemOptions: DRMSystemOptions;\n\n private _config: EMEControllerConfig;\n private _mediaKeysList: MediaKeysListItem[] = [];\n private _media: HTMLMediaElement | null = null;\n private _hasSetMediaKeys: boolean = false;\n private _requestLicenseFailureCount: number = 0;\n\n private mediaKeysPromise: Promise<MediaKeys> | null = null;\n\n /**\n * @constructs\n * @param {Hls} hls Our Hls.js instance\n */\n constructor (hls) {\n super(hls,\n Event.MEDIA_ATTACHED,\n Event.MEDIA_DETACHED,\n Event.MANIFEST_PARSED\n );\n this._config = hls.config;\n\n this._widevineLicenseUrl = this._config.widevineLicenseUrl;\n this._licenseXhrSetup = this._config.licenseXhrSetup;\n this._emeEnabled = this._config.emeEnabled;\n this._requestMediaKeySystemAccess = this._config.requestMediaKeySystemAccessFunc;\n this._drmSystemOptions = hls.config.drmSystemOptions;\n }\n\n /**\n * @param {string} keySystem Identifier for the key-system, see `KeySystems` enum\n * @returns {string} License server URL for key-system (if any configured, otherwise causes error)\n * @throws if a unsupported keysystem is passed\n */\n getLicenseServerUrl (keySystem: KeySystems): string {\n switch (keySystem) {\n case KeySystems.WIDEVINE:\n if (!this._widevineLicenseUrl) {\n break;\n }\n return this._widevineLicenseUrl;\n }\n\n throw new Error(`no license server URL configured for key-system \"${keySystem}\"`);\n }\n\n /**\n * Requests access object and adds it to our list upon success\n * @private\n * @param {string} keySystem System ID (see `KeySystems`)\n * @param {Array<string>} audioCodecs List of required audio codecs to support\n * @param {Array<string>} videoCodecs List of required video codecs to support\n * @throws When a unsupported KeySystem is passed\n */\n private _attemptKeySystemAccess (keySystem: KeySystems, audioCodecs: string[], videoCodecs: string[]) {\n // This can throw, but is caught in event handler callpath\n const mediaKeySystemConfigs = getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs, this._drmSystemOptions);\n\n logger.log('Requesting encrypted media key-system access');\n\n // expecting interface like window.navigator.requestMediaKeySystemAccess\n const keySystemAccessPromise = this.requestMediaKeySystemAccess(keySystem, mediaKeySystemConfigs);\n\n this.mediaKeysPromise = keySystemAccessPromise.then((mediaKeySystemAccess) =>\n this._onMediaKeySystemAccessObtained(keySystem, mediaKeySystemAccess));\n\n keySystemAccessPromise.catch((err) => {\n logger.error(`Failed to obtain key-system \"${keySystem}\" access:`, err);\n });\n }\n\n get requestMediaKeySystemAccess () {\n if (!this._requestMediaKeySystemAccess) {\n throw new Error('No requestMediaKeySystemAccess function configured');\n }\n\n return this._requestMediaKeySystemAccess;\n }\n\n /**\n * Handles obtaining access to a key-system\n * @private\n * @param {string} keySystem\n * @param {MediaKeySystemAccess} mediaKeySystemAccess https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess\n */\n private _onMediaKeySystemAccessObtained (keySystem: KeySystems, mediaKeySystemAccess: MediaKeySystemAccess): Promise<MediaKeys> {\n logger.log(`Access for key-system \"${keySystem}\" obtained`);\n\n const mediaKeysListItem: MediaKeysListItem = {\n mediaKeysSessionInitialized: false,\n mediaKeySystemAccess: mediaKeySystemAccess,\n mediaKeySystemDomain: keySystem\n };\n\n this._mediaKeysList.push(mediaKeysListItem);\n\n const mediaKeysPromise = Promise.resolve().then(() => mediaKeySystemAccess.createMediaKeys())\n .then((mediaKeys) => {\n mediaKeysListItem.mediaKeys = mediaKeys;\n\n logger.log(`Media-keys created for key-system \"${keySystem}\"`);\n\n this._onMediaKeysCreated();\n\n return mediaKeys;\n });\n\n mediaKeysPromise.catch((err) => {\n logger.error('Failed to create media-keys:', err);\n });\n\n return mediaKeysPromise;\n }\n\n /**\n * Handles key-creation (represents access to CDM). We are going to create key-sessions upon this\n * for all existing keys where no session exists yet.\n *\n * @private\n */\n private _onMediaKeysCreated () {\n // check for all key-list items if a session exists, otherwise, create one\n this._mediaKeysList.forEach((mediaKeysListItem) => {\n if (!mediaKeysListItem.mediaKeysSession) {\n // mediaKeys is definitely initialized here\n mediaKeysListItem.mediaKeysSession = mediaKeysListItem.mediaKeys!.createSession();\n this._onNewMediaKeySession(mediaKeysListItem.mediaKeysSession);\n }\n });\n }\n\n /**\n * @private\n * @param {*} keySession\n */\n private _onNewMediaKeySession (keySession: MediaKeySession) {\n logger.log(`New key-system session ${keySession.sessionId}`);\n\n keySession.addEventListener('message', (event: MediaKeyMessageEvent) => {\n this._onKeySessionMessage(keySession, event.message);\n }, false);\n }\n\n /**\n * @private\n * @param {MediaKeySession} keySession\n * @param {ArrayBuffer} message\n */\n private _onKeySessionMessage (keySession: MediaKeySession, message: ArrayBuffer) {\n logger.log('Got EME message event, creating license request');\n\n this._requestLicense(message, (data: ArrayBuffer) => {\n logger.log(`Received license data (length: ${data ? data.byteLength : data}), updating key-session`);\n keySession.update(data);\n });\n }\n\n /**\n * @private\n * @param e {MediaEncryptedEvent}\n */\n private _onMediaEncrypted = (e: MediaEncryptedEvent) => {\n logger.log(`Media is encrypted using \"${e.initDataType}\" init data type`);\n\n if (!this.mediaKeysPromise) {\n logger.error('Fatal: Media is encrypted but no CDM access or no keys have been requested');\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_KEYS,\n fatal: true\n });\n return;\n }\n\n const finallySetKeyAndStartSession = (mediaKeys) => {\n if (!this._media) {\n return;\n }\n this._attemptSetMediaKeys(mediaKeys);\n this._generateRequestWithPreferredKeySession(e.initDataType, e.initData);\n };\n\n // Could use `Promise.finally` but some Promise polyfills are missing it\n this.mediaKeysPromise.then(finallySetKeyAndStartSession).catch(finallySetKeyAndStartSession);\n }\n\n /**\n * @private\n */\n private _attemptSetMediaKeys (mediaKeys?: MediaKeys) {\n if (!this._media) {\n throw new Error('Attempted to set mediaKeys without first attaching a media element');\n }\n\n if (!this._hasSetMediaKeys) {\n // FIXME: see if we can/want/need-to really to deal with several potential key-sessions?\n const keysListItem = this._mediaKeysList[0];\n if (!keysListItem || !keysListItem.mediaKeys) {\n logger.error('Fatal: Media is encrypted but no CDM access or no keys have been obtained yet');\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_KEYS,\n fatal: true\n });\n return;\n }\n\n logger.log('Setting keys for encrypted media');\n\n this._media.setMediaKeys(keysListItem.mediaKeys);\n this._hasSetMediaKeys = true;\n }\n }\n\n /**\n * @private\n */\n private _generateRequestWithPreferredKeySession (initDataType: string, initData: ArrayBuffer | null) {\n // FIXME: see if we can/want/need-to really to deal with several potential key-sessions?\n const keysListItem = this._mediaKeysList[0];\n if (!keysListItem) {\n logger.error('Fatal: Media is encrypted but not any key-system access has been obtained yet');\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_ACCESS,\n fatal: true\n });\n return;\n }\n\n if (keysListItem.mediaKeysSessionInitialized) {\n logger.warn('Key-Session already initialized but requested again');\n return;\n }\n\n const keySession = keysListItem.mediaKeysSession;\n if (!keySession) {\n logger.error('Fatal: Media is encrypted but no key-session existing');\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_SESSION,\n fatal: true\n });\n return;\n }\n\n // initData is null if the media is not CORS-same-origin\n if (!initData) {\n logger.warn('Fatal: initData required for generating a key session is null');\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_INIT_DATA,\n fatal: true\n });\n return;\n }\n\n logger.log(`Generating key-session request for \"${initDataType}\" init data type`);\n keysListItem.mediaKeysSessionInitialized = true;\n\n keySession.generateRequest(initDataType, initData)\n .then(() => {\n logger.debug('Key-session generation succeeded');\n })\n .catch((err) => {\n logger.error('Error generating key-session request:', err);\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_SESSION,\n fatal: false\n });\n });\n }\n\n /**\n * @private\n * @param {string} url License server URL\n * @param {ArrayBuffer} keyMessage Message data issued by key-system\n * @param {function} callback Called when XHR has succeeded\n * @returns {XMLHttpRequest} Unsent (but opened state) XHR object\n * @throws if XMLHttpRequest construction failed\n */\n private _createLicenseXhr (url: string, keyMessage: ArrayBuffer, callback: (data: ArrayBuffer) => void): XMLHttpRequest {\n const xhr = new XMLHttpRequest();\n const licenseXhrSetup = this._licenseXhrSetup;\n\n try {\n if (licenseXhrSetup) {\n try {\n licenseXhrSetup(xhr, url);\n } catch (e) {\n // let's try to open before running setup\n xhr.open('POST', url, true);\n licenseXhrSetup(xhr, url);\n }\n }\n // if licenseXhrSetup did not yet call open, let's do it now\n if (!xhr.readyState) {\n xhr.open('POST', url, true);\n }\n } catch (e) {\n // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n throw new Error(`issue setting up KeySystem license XHR ${e}`);\n }\n\n // Because we set responseType to ArrayBuffer here, callback is typed as handling only array buffers\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange =\n this._onLicenseRequestReadyStageChange.bind(this, xhr, url, keyMessage, callback);\n return xhr;\n }\n\n /**\n * @private\n * @param {XMLHttpRequest} xhr\n * @param {string} url License server URL\n * @param {ArrayBuffer} keyMessage Message data issued by key-system\n * @param {function} callback Called when XHR has succeeded\n */\n private _onLicenseRequestReadyStageChange (xhr: XMLHttpRequest, url: string, keyMessage: ArrayBuffer, callback: (data: ArrayBuffer) => void) {\n switch (xhr.readyState) {\n case 4:\n if (xhr.status === 200) {\n this._requestLicenseFailureCount = 0;\n logger.log('License request succeeded');\n\n if (xhr.responseType !== 'arraybuffer') {\n logger.warn('xhr response type was not set to the expected arraybuffer for license request');\n }\n callback(xhr.response);\n } else {\n logger.error(`License Request XHR failed (${url}). Status: ${xhr.status} (${xhr.statusText})`);\n this._requestLicenseFailureCount++;\n if (this._requestLicenseFailureCount > MAX_LICENSE_REQUEST_FAILURES) {\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n fatal: true\n });\n return;\n }\n\n const attemptsLeft = MAX_LICENSE_REQUEST_FAILURES - this._requestLicenseFailureCount + 1;\n logger.warn(`Retrying license request, ${attemptsLeft} attempts left`);\n this._requestLicense(keyMessage, callback);\n }\n break;\n }\n }\n\n /**\n * @private\n * @param {MediaKeysListItem} keysListItem\n * @param {ArrayBuffer} keyMessage\n * @returns {ArrayBuffer} Challenge data posted to license server\n * @throws if KeySystem is unsupported\n */\n private _generateLicenseRequestChallenge (keysListItem: MediaKeysListItem, keyMessage: ArrayBuffer): ArrayBuffer {\n switch (keysListItem.mediaKeySystemDomain) {\n // case KeySystems.PLAYREADY:\n // from https://github.com/MicrosoftEdge/Demos/blob/master/eme/scripts/demo.js\n /*\n if (this.licenseType !== this.LICENSE_TYPE_WIDEVINE) {\n // For PlayReady CDMs, we need to dig the Challenge out of the XML.\n var keyMessageXml = new DOMParser().parseFromString(String.fromCharCode.apply(null, new Uint16Array(keyMessage)), 'application/xml');\n if (keyMessageXml.getElementsByTagName('Challenge')[0]) {\n challenge = atob(keyMessageXml.getElementsByTagName('Challenge')[0].childNodes[0].nodeValue);\n } else {\n throw 'Cannot find <Challenge> in key message';\n }\n var headerNames = keyMessageXml.getElementsByTagName('name');\n var headerValues = keyMessageXml.getElementsByTagName('value');\n if (headerNames.length !== headerValues.length) {\n throw 'Mismatched header <name>/<value> pair in key message';\n }\n for (var i = 0; i < headerNames.length; i++) {\n xhr.setRequestHeader(headerNames[i].childNodes[0].nodeValue, headerValues[i].childNodes[0].nodeValue);\n }\n }\n break;\n */\n case KeySystems.WIDEVINE:\n // For Widevine CDMs, the challenge is the keyMessage.\n return keyMessage;\n }\n\n throw new Error(`unsupported key-system: ${keysListItem.mediaKeySystemDomain}`);\n }\n\n /**\n * @private\n * @param keyMessage\n * @param callback\n */\n private _requestLicense (keyMessage: ArrayBuffer, callback: (data: ArrayBuffer) => void) {\n logger.log('Requesting content license for key-system');\n\n const keysListItem = this._mediaKeysList[0];\n if (!keysListItem) {\n logger.error('Fatal error: Media is encrypted but no key-system access has been obtained yet');\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_ACCESS,\n fatal: true\n });\n return;\n }\n\n try {\n const url = this.getLicenseServerUrl(keysListItem.mediaKeySystemDomain);\n const xhr = this._createLicenseXhr(url, keyMessage, callback);\n logger.log(`Sending license request to URL: ${url}`);\n const challenge = this._generateLicenseRequestChallenge(keysListItem, keyMessage);\n xhr.send(challenge);\n } catch (e) {\n logger.error(`Failure requesting DRM license: ${e}`);\n this.hls.trigger(Event.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n fatal: true\n });\n }\n }\n\n onMediaAttached (data: { media: HTMLMediaElement; }) {\n if (!this._emeEnabled) {\n return;\n }\n\n const media = data.media;\n\n // keep reference of media\n this._media = media;\n\n media.addEventListener('encrypted', this._onMediaEncrypted);\n }\n\n onMediaDetached () {\n const media = this._media;\n const mediaKeysList = this._mediaKeysList;\n if (!media) {\n return;\n }\n media.removeEventListener('encrypted', this._onMediaEncrypted);\n this._media = null;\n this._mediaKeysList = [];\n // Close all sessions and remove media keys from the video element.\n Promise.all(mediaKeysList.map((mediaKeysListItem) => {\n if (mediaKeysListItem.mediaKeysSession) {\n return mediaKeysListItem.mediaKeysSession.close().catch(() => {\n // Ignore errors when closing the sessions. Closing a session that\n // generated no key requests will throw an error.\n });\n }\n })).then(() => {\n return media.setMediaKeys(null);\n }).catch(() => {\n // Ignore any failures while removing media keys from the video element.\n });\n }\n\n // TODO: Use manifest types here when they are defined\n onManifestParsed (data: any) {\n if (!this._emeEnabled) {\n return;\n }\n\n const audioCodecs = data.levels.map((level) => level.audioCodec);\n const videoCodecs = data.levels.map((level) => level.videoCodec);\n\n this._attemptKeySystemAccess(KeySystems.WIDEVINE, audioCodecs, videoCodecs);\n }\n}\n\nexport default EMEController;\n","/**\n * HLS config\n */\n\nimport AbrController from './controller/abr-controller';\nimport BufferController from './controller/buffer-controller';\nimport CapLevelController from './controller/cap-level-controller';\nimport FPSController from './controller/fps-controller';\nimport XhrLoader from './utils/xhr-loader';\n// import FetchLoader from './utils/fetch-loader';\n\nimport AudioTrackController from './controller/audio-track-controller';\nimport AudioStreamController from './controller/audio-stream-controller';\n\nimport * as Cues from './utils/cues';\nimport TimelineController from './controller/timeline-controller';\nimport SubtitleTrackController from './controller/subtitle-track-controller';\nimport { SubtitleStreamController } from './controller/subtitle-stream-controller';\nimport EMEController from './controller/eme-controller';\nimport { requestMediaKeySystemAccess, MediaKeyFunc } from './utils/mediakeys-helper';\n\ntype ABRControllerConfig = {\n abrEwmaFastLive: number,\n abrEwmaSlowLive: number,\n abrEwmaFastVoD: number,\n abrEwmaSlowVoD: number,\n abrEwmaDefaultEstimate: number,\n abrBandWidthFactor: number,\n abrBandWidthUpFactor: number,\n abrMaxWithRealBitrate: boolean,\n maxStarvationDelay: number,\n maxLoadingDelay: number,\n};\n\nexport type BufferControllerConfig = {\n appendErrorMaxRetry: number,\n liveDurationInfinity: boolean,\n liveBackBufferLength: number,\n};\n\ntype CapLevelControllerConfig = {\n capLevelToPlayerSize: boolean\n};\n\nexport type DRMSystemOptions = {\n audioRobustness?: string,\n videoRobustness?: string,\n}\n\nexport type EMEControllerConfig = {\n licenseXhrSetup?: (xhr: XMLHttpRequest, url: string) => void,\n emeEnabled: boolean,\n widevineLicenseUrl?: string,\n drmSystemOptions: DRMSystemOptions,\n requestMediaKeySystemAccessFunc: MediaKeyFunc | null,\n};\n\ntype FragmentLoaderConfig = {\n fLoader: any, // TODO(typescript-loader): Once Loader is typed fill this in\n\n fragLoadingTimeOut: number,\n fragLoadingMaxRetry: number,\n fragLoadingRetryDelay: number,\n fragLoadingMaxRetryTimeout: number,\n};\n\ntype FPSControllerConfig = {\n capLevelOnFPSDrop: boolean,\n fpsDroppedMonitoringPeriod: number,\n fpsDroppedMonitoringThreshold: number,\n};\n\ntype LevelControllerConfig = {\n startLevel?: number\n};\n\ntype MP4RemuxerConfig = {\n stretchShortVideoTrack: boolean,\n maxAudioFramesDrift: number,\n};\n\ntype PlaylistLoaderConfig = {\n pLoader: any, // TODO(typescript-loader): Once Loader is typed fill this in\n\n manifestLoadingTimeOut: number,\n manifestLoadingMaxRetry: number,\n manifestLoadingRetryDelay: number,\n manifestLoadingMaxRetryTimeout: number,\n\n levelLoadingTimeOut: number,\n levelLoadingMaxRetry: number,\n levelLoadingRetryDelay: number,\n levelLoadingMaxRetryTimeout: number\n};\n\ntype StreamControllerConfig = {\n autoStartLoad: boolean,\n startPosition: number,\n defaultAudioCodec?: string,\n initialLiveManifestSize: number,\n maxBufferLength: number,\n maxBufferSize: number,\n maxBufferHole: number,\n\n lowBufferWatchdogPeriod: number,\n highBufferWatchdogPeriod: number,\n nudgeOffset: number,\n nudgeMaxRetry: number,\n maxFragLookUpTolerance: number,\n liveSyncDurationCount: number,\n liveMaxLatencyDurationCount: number,\n liveSyncDuration?: number,\n liveMaxLatencyDuration?: number,\n maxMaxBufferLength: number,\n\n startFragPrefetch: boolean,\n testBandwidth: boolean\n};\n\ntype TimelineControllerConfig = {\n cueHandler: Cues.CuesInterface,\n enableCEA708Captions: boolean,\n enableWebVTT: boolean,\n captionsTextTrack1Label: string,\n captionsTextTrack1LanguageCode: string,\n captionsTextTrack2Label: string,\n captionsTextTrack2LanguageCode: string,\n captionsTextTrack3Label: string,\n captionsTextTrack3LanguageCode: string,\n captionsTextTrack4Label: string,\n captionsTextTrack4LanguageCode: string,\n renderTextTracksNatively: boolean,\n};\n\ntype TSDemuxerConfig = {\n forceKeyFrameOnDiscontinuity: boolean,\n};\n\nexport type HlsConfig =\n {\n debug: boolean,\n enableWorker: boolean,\n enableSoftwareAES: boolean,\n minAutoBitrate: number,\n loader: any, // TODO(typescript-xhrloader): Type once XHR is done\n xhrSetup?: (xhr: XMLHttpRequest, url: string) => void,\n\n // Alt Audio\n audioStreamController?: any, // TODO(typescript-audiostreamcontroller): Type once file is done\n audioTrackController?: any, // TODO(typescript-audiotrackcontroller): Type once file is done\n // Subtitle\n subtitleStreamController?: any, // TODO(typescript-subtitlestreamcontroller): Type once file is done\n subtitleTrackController?: any, // TODO(typescript-subtitletrackcontroller): Type once file is done\n timelineController?: any, // TODO(typescript-timelinecontroller): Type once file is done\n // EME\n emeController?: typeof EMEController,\n\n abrController: any, // TODO(typescript-abrcontroller): Type once file is done\n bufferController: typeof BufferController,\n capLevelController: any, // TODO(typescript-caplevelcontroller): Type once file is done\n fpsController: any, // TODO(typescript-fpscontroller): Type once file is done\n } &\n ABRControllerConfig &\n BufferControllerConfig &\n CapLevelControllerConfig &\n EMEControllerConfig &\n FPSControllerConfig &\n FragmentLoaderConfig &\n LevelControllerConfig &\n MP4RemuxerConfig &\n PlaylistLoaderConfig &\n StreamControllerConfig &\n TimelineControllerConfig &\n TSDemuxerConfig;\n\n// If possible, keep hlsDefaultConfig shallow\n// It is cloned whenever a new Hls instance is created, by keeping the config\n// shallow the properties are cloned, and we don't end up manipulating the default\nexport const hlsDefaultConfig: HlsConfig = {\n autoStartLoad: true, // used by stream-controller\n startPosition: -1, // used by stream-controller\n defaultAudioCodec: void 0, // used by stream-controller\n debug: false, // used by logger\n capLevelOnFPSDrop: false, // used by fps-controller\n capLevelToPlayerSize: false, // used by cap-level-controller\n initialLiveManifestSize: 1, // used by stream-controller\n maxBufferLength: 30, // used by stream-controller\n maxBufferSize: 60 * 1000 * 1000, // used by stream-controller\n maxBufferHole: 0.5, // used by stream-controller\n\n lowBufferWatchdogPeriod: 0.5, // used by stream-controller\n highBufferWatchdogPeriod: 3, // used by stream-controller\n nudgeOffset: 0.1, // used by stream-controller\n nudgeMaxRetry: 3, // used by stream-controller\n maxFragLookUpTolerance: 0.25, // used by stream-controller\n liveSyncDurationCount: 3, // used by stream-controller\n liveMaxLatencyDurationCount: Infinity, // used by stream-controller\n liveSyncDuration: void 0, // used by stream-controller\n liveMaxLatencyDuration: void 0, // used by stream-controller\n liveDurationInfinity: false, // used by buffer-controller\n liveBackBufferLength: Infinity, // used by buffer-controller\n maxMaxBufferLength: 600, // used by stream-controller\n enableWorker: true, // used by demuxer\n enableSoftwareAES: true, // used by decrypter\n manifestLoadingTimeOut: 10000, // used by playlist-loader\n manifestLoadingMaxRetry: 1, // used by playlist-loader\n manifestLoadingRetryDelay: 1000, // used by playlist-loader\n manifestLoadingMaxRetryTimeout: 64000, // used by playlist-loader\n startLevel: void 0, // used by level-controller\n levelLoadingTimeOut: 10000, // used by playlist-loader\n levelLoadingMaxRetry: 4, // used by playlist-loader\n levelLoadingRetryDelay: 1000, // used by playlist-loader\n levelLoadingMaxRetryTimeout: 64000, // used by playlist-loader\n fragLoadingTimeOut: 20000, // used by fragment-loader\n fragLoadingMaxRetry: 6, // used by fragment-loader\n fragLoadingRetryDelay: 1000, // used by fragment-loader\n fragLoadingMaxRetryTimeout: 64000, // used by fragment-loader\n startFragPrefetch: false, // used by stream-controller\n fpsDroppedMonitoringPeriod: 5000, // used by fps-controller\n fpsDroppedMonitoringThreshold: 0.2, // used by fps-controller\n appendErrorMaxRetry: 3, // used by buffer-controller\n loader: XhrLoader,\n // loader: FetchLoader,\n fLoader: void 0, // used by fragment-loader\n pLoader: void 0, // used by playlist-loader\n xhrSetup: void 0, // used by xhr-loader\n licenseXhrSetup: void 0, // used by eme-controller\n // fetchSetup: void 0,\n abrController: AbrController,\n bufferController: BufferController,\n capLevelController: CapLevelController,\n fpsController: FPSController,\n stretchShortVideoTrack: false, // used by mp4-remuxer\n maxAudioFramesDrift: 1, // used by mp4-remuxer\n forceKeyFrameOnDiscontinuity: true, // used by ts-demuxer\n abrEwmaFastLive: 3, // used by abr-controller\n abrEwmaSlowLive: 9, // used by abr-controller\n abrEwmaFastVoD: 3, // used by abr-controller\n abrEwmaSlowVoD: 9, // used by abr-controller\n abrEwmaDefaultEstimate: 5e5, // 500 kbps // used by abr-controller\n abrBandWidthFactor: 0.95, // used by abr-controller\n abrBandWidthUpFactor: 0.7, // used by abr-controller\n abrMaxWithRealBitrate: false, // used by abr-controller\n maxStarvationDelay: 4, // used by abr-controller\n maxLoadingDelay: 4, // used by abr-controller\n minAutoBitrate: 0, // used by hls\n emeEnabled: false, // used by eme-controller\n widevineLicenseUrl: void 0, // used by eme-controller\n drmSystemOptions: {}, // used by eme-controller\n requestMediaKeySystemAccessFunc: requestMediaKeySystemAccess, // used by eme-controller\n testBandwidth: true,\n\n // Dynamic Modules\n ...timelineConfig(),\n subtitleStreamController: (__USE_SUBTITLES__) ? SubtitleStreamController : void 0,\n subtitleTrackController: (__USE_SUBTITLES__) ? SubtitleTrackController : void 0,\n timelineController: (__USE_SUBTITLES__) ? TimelineController : void 0,\n audioStreamController: (__USE_ALT_AUDIO__) ? AudioStreamController : void 0,\n audioTrackController: (__USE_ALT_AUDIO__) ? AudioTrackController : void 0,\n emeController: (__USE_EME_DRM__) ? EMEController : void 0\n};\n\nfunction timelineConfig (): TimelineControllerConfig {\n return {\n cueHandler: Cues, // used by timeline-controller\n enableCEA708Captions: __USE_SUBTITLES__, // used by timeline-controller\n enableWebVTT: __USE_SUBTITLES__, // used by timeline-controller\n captionsTextTrack1Label: 'English', // used by timeline-controller\n captionsTextTrack1LanguageCode: 'en', // used by timeline-controller\n captionsTextTrack2Label: 'Spanish', // used by timeline-controller\n captionsTextTrack2LanguageCode: 'es', // used by timeline-controller\n captionsTextTrack3Label: 'Unknown CC', // used by timeline-controller\n captionsTextTrack3LanguageCode: '', // used by timeline-controller\n captionsTextTrack4Label: 'Unknown CC', // used by timeline-controller\n captionsTextTrack4LanguageCode: '', // used by timeline-controller\n renderTextTracksNatively: true\n };\n}\n","import * as URLToolkit from 'url-toolkit';\n\nimport {\n ErrorTypes,\n ErrorDetails\n} from './errors';\n\nimport PlaylistLoader from './loader/playlist-loader';\nimport FragmentLoader from './loader/fragment-loader';\nimport KeyLoader from './loader/key-loader';\n\nimport { FragmentTracker } from './controller/fragment-tracker';\nimport StreamController from './controller/stream-controller';\nimport LevelController from './controller/level-controller';\nimport ID3TrackController from './controller/id3-track-controller';\n\nimport { isSupported } from './is-supported';\nimport { logger, enableLogs } from './utils/logger';\nimport { hlsDefaultConfig, HlsConfig } from './config';\n\nimport HlsEvents from './events';\n\nimport { Observer } from './observer';\n\n/**\n * @module Hls\n * @class\n * @constructor\n */\nexport default class Hls extends Observer {\n public static defaultConfig?: HlsConfig;\n public config: HlsConfig;\n\n private _autoLevelCapping: number;\n private abrController: any;\n private capLevelController: any;\n private levelController: LevelController;\n private streamController: StreamController;\n private networkControllers: any[];\n private audioTrackController: any;\n private subtitleTrackController: any;\n private emeController: any;\n private coreComponents: any[];\n private media: HTMLMediaElement | null = null;\n private url: string | null = null;\n\n /**\n * @type {string}\n */\n static get version (): string {\n return __VERSION__;\n }\n\n /**\n * @type {boolean}\n */\n static isSupported (): boolean {\n return isSupported();\n }\n\n /**\n * @type {HlsEvents}\n */\n static get Events () {\n return HlsEvents;\n }\n\n /**\n * @type {HlsErrorTypes}\n */\n static get ErrorTypes () {\n return ErrorTypes;\n }\n\n /**\n * @type {HlsErrorDetails}\n */\n static get ErrorDetails () {\n return ErrorDetails;\n }\n\n /**\n * @type {HlsConfig}\n */\n static get DefaultConfig (): HlsConfig {\n if (!Hls.defaultConfig) {\n return hlsDefaultConfig;\n }\n\n return Hls.defaultConfig;\n }\n\n /**\n * @type {HlsConfig}\n */\n static set DefaultConfig (defaultConfig: HlsConfig) {\n Hls.defaultConfig = defaultConfig;\n }\n\n /**\n * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.\n *\n * @constructs Hls\n * @param {HlsConfig} config\n */\n constructor (userConfig: Partial<HlsConfig> = {}) {\n super();\n\n const defaultConfig = Hls.DefaultConfig;\n\n if ((userConfig.liveSyncDurationCount || userConfig.liveMaxLatencyDurationCount) && (userConfig.liveSyncDuration || userConfig.liveMaxLatencyDuration)) {\n throw new Error('Illegal hls.js config: don\\'t mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration');\n }\n\n // Shallow clone\n this.config = {\n ...defaultConfig,\n ...userConfig\n };\n\n const { config } = this;\n\n if (config.liveMaxLatencyDurationCount !== void 0 && config.liveMaxLatencyDurationCount <= config.liveSyncDurationCount) {\n throw new Error('Illegal hls.js config: \"liveMaxLatencyDurationCount\" must be gt \"liveSyncDurationCount\"');\n }\n\n if (config.liveMaxLatencyDuration !== void 0 && (config.liveSyncDuration === void 0 || config.liveMaxLatencyDuration <= config.liveSyncDuration)) {\n throw new Error('Illegal hls.js config: \"liveMaxLatencyDuration\" must be gt \"liveSyncDuration\"');\n }\n\n enableLogs(config.debug);\n\n this._autoLevelCapping = -1;\n\n // core controllers and network loaders\n\n /**\n * @member {AbrController} abrController\n */\n const abrController = this.abrController = new config.abrController(this); // eslint-disable-line new-cap\n const bufferController = new config.bufferController(this); // eslint-disable-line new-cap\n const capLevelController = this.capLevelController = new config.capLevelController(this); // eslint-disable-line new-cap\n const fpsController = new config.fpsController(this); // eslint-disable-line new-cap\n const playListLoader = new PlaylistLoader(this);\n const fragmentLoader = new FragmentLoader(this);\n const keyLoader = new KeyLoader(this);\n const id3TrackController = new ID3TrackController(this);\n\n // network controllers\n\n /**\n * @member {LevelController} levelController\n */\n const levelController = this.levelController = new LevelController(this);\n\n // FIXME: FragmentTracker must be defined before StreamController because the order of event handling is important\n const fragmentTracker = new FragmentTracker(this);\n\n /**\n * @member {StreamController} streamController\n */\n const streamController = this.streamController = new StreamController(this, fragmentTracker);\n\n let networkControllers = [levelController, streamController];\n\n // optional audio stream controller\n /**\n * @var {ICoreComponent | Controller}\n */\n let Controller = config.audioStreamController;\n if (Controller) {\n networkControllers.push(new Controller(this, fragmentTracker));\n }\n\n /**\n * @member {INetworkController[]} networkControllers\n */\n this.networkControllers = networkControllers;\n\n /**\n * @var {ICoreComponent[]}\n */\n const coreComponents = [\n playListLoader,\n fragmentLoader,\n keyLoader,\n abrController,\n bufferController,\n capLevelController,\n fpsController,\n id3TrackController,\n fragmentTracker\n ];\n\n // optional audio track and subtitle controller\n Controller = config.audioTrackController;\n if (Controller) {\n const audioTrackController = new Controller(this);\n\n /**\n * @member {AudioTrackController} audioTrackController\n */\n this.audioTrackController = audioTrackController;\n coreComponents.push(audioTrackController);\n }\n\n Controller = config.subtitleTrackController;\n if (Controller) {\n const subtitleTrackController = new Controller(this);\n\n /**\n * @member {SubtitleTrackController} subtitleTrackController\n */\n this.subtitleTrackController = subtitleTrackController;\n networkControllers.push(subtitleTrackController);\n }\n\n Controller = config.emeController;\n if (Controller) {\n const emeController = new Controller(this);\n\n /**\n * @member {EMEController} emeController\n */\n this.emeController = emeController;\n coreComponents.push(emeController);\n }\n\n // optional subtitle controllers\n Controller = config.subtitleStreamController;\n if (Controller) {\n networkControllers.push(new Controller(this, fragmentTracker));\n }\n Controller = config.timelineController;\n if (Controller) {\n coreComponents.push(new Controller(this));\n }\n\n /**\n * @member {ICoreComponent[]}\n */\n this.coreComponents = coreComponents;\n }\n\n /**\n * Dispose of the instance\n */\n destroy () {\n logger.log('destroy');\n this.trigger(HlsEvents.DESTROYING);\n this.detachMedia();\n this.coreComponents.concat(this.networkControllers).forEach(component => {\n component.destroy();\n });\n this.url = null;\n this.removeAllListeners();\n this._autoLevelCapping = -1;\n }\n\n /**\n * Attach a media element\n * @param {HTMLMediaElement} media\n */\n attachMedia (media: HTMLMediaElement) {\n logger.log('attachMedia');\n this.media = media;\n this.trigger(HlsEvents.MEDIA_ATTACHING, { media: media });\n }\n\n /**\n * Detach from the media\n */\n detachMedia () {\n logger.log('detachMedia');\n this.trigger(HlsEvents.MEDIA_DETACHING);\n this.media = null;\n }\n\n /**\n * Set the source URL. Can be relative or absolute.\n * @param {string} url\n */\n loadSource (url: string) {\n url = URLToolkit.buildAbsoluteURL(window.location.href, url, { alwaysNormalize: true });\n logger.log(`loadSource:${url}`);\n this.url = url;\n // when attaching to a source URL, trigger a playlist load\n this.trigger(HlsEvents.MANIFEST_LOADING, { url: url });\n }\n\n /**\n * Start loading data from the stream source.\n * Depending on default config, client starts loading automatically when a source is set.\n *\n * @param {number} startPosition Set the start position to stream from\n * @default -1 None (from earliest point)\n */\n startLoad (startPosition: number = -1) {\n logger.log(`startLoad(${startPosition})`);\n this.networkControllers.forEach(controller => {\n controller.startLoad(startPosition);\n });\n }\n\n /**\n * Stop loading of any stream data.\n */\n stopLoad () {\n logger.log('stopLoad');\n this.networkControllers.forEach(controller => {\n controller.stopLoad();\n });\n }\n\n /**\n * Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)\n */\n swapAudioCodec () {\n logger.log('swapAudioCodec');\n this.streamController.swapAudioCodec();\n }\n\n /**\n * When the media-element fails, this allows to detach and then re-attach it\n * as one call (convenience method).\n *\n * Automatic recovery of media-errors by this process is configurable.\n */\n recoverMediaError () {\n logger.log('recoverMediaError');\n let media = this.media;\n this.detachMedia();\n if (media) {\n this.attachMedia(media);\n }\n }\n\n /**\n * Remove a loaded level from the list of levels, or a level url in from a list of redundant level urls.\n * This can be used to remove a rendition or playlist url that errors frequently from the list of levels that a user\n * or hls.js can choose from.\n *\n * @param levelIndex {number} The quality level index to of the level to remove\n * @param urlId {number} The quality level url index in the case that fallback levels are available. Defaults to 0.\n */\n removeLevel (levelIndex, urlId = 0) {\n this.levelController.removeLevel(levelIndex, urlId);\n }\n\n /**\n * @type {QualityLevel[]}\n */\n // todo(typescript-levelController)\n get levels (): any[] {\n return this.levelController.levels;\n }\n\n /**\n * Index of quality level currently played\n * @type {number}\n */\n get currentLevel (): number {\n return this.streamController.currentLevel;\n }\n\n /**\n * Set quality level index immediately .\n * This will flush the current buffer to replace the quality asap.\n * That means playback will interrupt at least shortly to re-buffer and re-sync eventually.\n * @param newLevel {number} -1 for automatic level selection\n */\n set currentLevel (newLevel: number) {\n logger.log(`set currentLevel:${newLevel}`);\n this.loadLevel = newLevel;\n this.streamController.immediateLevelSwitch();\n }\n\n /**\n * Index of next quality level loaded as scheduled by stream controller.\n * @type {number}\n */\n get nextLevel (): number {\n return this.streamController.nextLevel;\n }\n\n /**\n * Set quality level index for next loaded data.\n * This will switch the video quality asap, without interrupting playback.\n * May abort current loading of data, and flush parts of buffer (outside currently played fragment region).\n * @type {number} -1 for automatic level selection\n */\n set nextLevel (newLevel: number) {\n logger.log(`set nextLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n this.streamController.nextLevelSwitch();\n }\n\n /**\n * Return the quality level of the currently or last (of none is loaded currently) segment\n * @type {number}\n */\n get loadLevel (): number {\n return this.levelController.level;\n }\n\n /**\n * Set quality level index for next loaded data in a conservative way.\n * This will switch the quality without flushing, but interrupt current loading.\n * Thus the moment when the quality switch will appear in effect will only be after the already existing buffer.\n * @type {number} newLevel -1 for automatic level selection\n */\n set loadLevel (newLevel: number) {\n logger.log(`set loadLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n }\n\n /**\n * get next quality level loaded\n * @type {number}\n */\n get nextLoadLevel (): number {\n return this.levelController.nextLoadLevel;\n }\n\n /**\n * Set quality level of next loaded segment in a fully \"non-destructive\" way.\n * Same as `loadLevel` but will wait for next switch (until current loading is done).\n * @type {number} level\n */\n set nextLoadLevel (level: number) {\n this.levelController.nextLoadLevel = level;\n }\n\n /**\n * Return \"first level\": like a default level, if not set,\n * falls back to index of first level referenced in manifest\n * @type {number}\n */\n get firstLevel (): number {\n return Math.max(this.levelController.firstLevel, this.minAutoLevel);\n }\n\n /**\n * Sets \"first-level\", see getter.\n * @type {number}\n */\n set firstLevel (newLevel: number) {\n logger.log(`set firstLevel:${newLevel}`);\n this.levelController.firstLevel = newLevel;\n }\n\n /**\n * Return start level (level of first fragment that will be played back)\n * if not overrided by user, first level appearing in manifest will be used as start level\n * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n * (determined from download of first segment)\n * @type {number}\n */\n get startLevel (): number {\n return this.levelController.startLevel;\n }\n\n /**\n * set start level (level of first fragment that will be played back)\n * if not overrided by user, first level appearing in manifest will be used as start level\n * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n * (determined from download of first segment)\n * @type {number} newLevel\n */\n set startLevel (newLevel: number) {\n logger.log(`set startLevel:${newLevel}`);\n // if not in automatic start level detection, ensure startLevel is greater than minAutoLevel\n if (newLevel !== -1) {\n newLevel = Math.max(newLevel, this.minAutoLevel);\n }\n\n this.levelController.startLevel = newLevel;\n }\n\n /**\n * set dynamically set capLevelToPlayerSize against (`CapLevelController`)\n *\n * @type {boolean}\n */\n set capLevelToPlayerSize (shouldStartCapping: boolean) {\n const newCapLevelToPlayerSize = !!shouldStartCapping;\n\n if (newCapLevelToPlayerSize !== this.config.capLevelToPlayerSize) {\n if (newCapLevelToPlayerSize) {\n this.capLevelController.startCapping(); // If capping occurs, nextLevelSwitch will happen based on size.\n } else {\n this.capLevelController.stopCapping();\n this.autoLevelCapping = -1;\n this.streamController.nextLevelSwitch(); // Now we're uncapped, get the next level asap.\n }\n\n this.config.capLevelToPlayerSize = newCapLevelToPlayerSize;\n }\n }\n\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n * @type {number}\n */\n get autoLevelCapping (): number {\n return this._autoLevelCapping;\n }\n\n /**\n * get bandwidth estimate\n * @type {number}\n */\n get bandwidthEstimate (): number {\n const bwEstimator = this.abrController._bwEstimator;\n return bwEstimator ? bwEstimator.getEstimate() : NaN;\n }\n\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n * @type {number}\n */\n set autoLevelCapping (newLevel: number) {\n logger.log(`set autoLevelCapping:${newLevel}`);\n this._autoLevelCapping = newLevel;\n }\n\n /**\n * True when automatic level selection enabled\n * @type {boolean}\n */\n get autoLevelEnabled (): boolean {\n return (this.levelController.manualLevel === -1);\n }\n\n /**\n * Level set manually (if any)\n * @type {number}\n */\n get manualLevel (): number {\n return this.levelController.manualLevel;\n }\n\n /**\n * min level selectable in auto mode according to config.minAutoBitrate\n * @type {number}\n */\n get minAutoLevel (): number {\n const { levels, config: { minAutoBitrate } } = this;\n const len = levels ? levels.length : 0;\n\n for (let i = 0; i < len; i++) {\n const levelNextBitrate = levels[i].realBitrate\n ? Math.max(levels[i].realBitrate, levels[i].bitrate)\n : levels[i].bitrate;\n\n if (levelNextBitrate > minAutoBitrate) {\n return i;\n }\n }\n\n return 0;\n }\n\n /**\n * max level selectable in auto mode according to autoLevelCapping\n * @type {number}\n */\n get maxAutoLevel (): number {\n const { levels, autoLevelCapping } = this;\n\n let maxAutoLevel;\n if (autoLevelCapping === -1 && levels && levels.length) {\n maxAutoLevel = levels.length - 1;\n } else {\n maxAutoLevel = autoLevelCapping;\n }\n\n return maxAutoLevel;\n }\n\n /**\n * next automatically selected quality level\n * @type {number}\n */\n get nextAutoLevel (): number {\n // ensure next auto level is between min and max auto level\n return Math.min(Math.max(this.abrController.nextAutoLevel, this.minAutoLevel), this.maxAutoLevel);\n }\n\n /**\n * this setter is used to force next auto level.\n * this is useful to force a switch down in auto mode:\n * in case of load error on level N, hls.js can set nextAutoLevel to N-1 for example)\n * forced value is valid for one fragment. upon succesful frag loading at forced level,\n * this value will be resetted to -1 by ABR controller.\n * @type {number}\n */\n set nextAutoLevel (nextLevel: number) {\n this.abrController.nextAutoLevel = Math.max(this.minAutoLevel, nextLevel);\n }\n\n /**\n * @type {AudioTrack[]}\n */\n // todo(typescript-audioTrackController)\n get audioTracks (): any[] {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTracks : [];\n }\n\n /**\n * index of the selected audio track (index in audio track lists)\n * @type {number}\n */\n get audioTrack (): number {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTrack : -1;\n }\n\n /**\n * selects an audio track, based on its index in audio track lists\n * @type {number}\n */\n set audioTrack (audioTrackId: number) {\n const audioTrackController = this.audioTrackController;\n if (audioTrackController) {\n audioTrackController.audioTrack = audioTrackId;\n }\n }\n\n /**\n * @type {Seconds}\n */\n get liveSyncPosition (): number {\n return this.streamController.liveSyncPosition;\n }\n\n /**\n * get alternate subtitle tracks list from playlist\n * @type {SubtitleTrack[]}\n */\n // todo(typescript-subtitleTrackController)\n get subtitleTracks (): any[] {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTracks : [];\n }\n\n /**\n * index of the selected subtitle track (index in subtitle track lists)\n * @type {number}\n */\n get subtitleTrack (): number {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTrack : -1;\n }\n\n /**\n * select an subtitle track, based on its index in subtitle track lists\n * @type {number}\n */\n set subtitleTrack (subtitleTrackId: number) {\n const subtitleTrackController = this.subtitleTrackController;\n if (subtitleTrackController) {\n subtitleTrackController.subtitleTrack = subtitleTrackId;\n }\n }\n\n /**\n * @type {boolean}\n */\n get subtitleDisplay (): boolean {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleDisplay : false;\n }\n\n /**\n * Enable/disable subtitle display rendering\n * @type {boolean}\n */\n set subtitleDisplay (value: boolean) {\n const subtitleTrackController = this.subtitleTrackController;\n if (subtitleTrackController) {\n subtitleTrackController.subtitleDisplay = value;\n }\n }\n}\n","import { getMediaSource } from './utils/mediasource-helper';\n\nexport function isSupported (): boolean {\n const mediaSource = getMediaSource();\n if (!mediaSource) {\n return false;\n }\n const sourceBuffer = self.SourceBuffer || (self as any).WebKitSourceBuffer as SourceBuffer;\n const isTypeSupported = mediaSource &&\n typeof mediaSource.isTypeSupported === 'function' &&\n mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n\n // if SourceBuffer is exposed ensure its API is valid\n // safari and old version of Chrome doe not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\n const sourceBufferValidAPI = !sourceBuffer ||\n (sourceBuffer.prototype &&\n typeof sourceBuffer.prototype.appendBuffer === 'function' &&\n typeof sourceBuffer.prototype.remove === 'function');\n return !!isTypeSupported && !!sourceBufferValidAPI;\n}\n","export const isFiniteNumber = Number.isFinite || function (value) {\n return typeof value === 'number' && isFinite(value);\n};\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n","export function getSelfScope () {\n // see https://stackoverflow.com/a/11237259/589493\n if (typeof window === 'undefined') {\n /* eslint-disable-next-line no-undef */\n return self;\n } else {\n return window;\n }\n}\n","import { getSelfScope } from './get-self-scope';\n\nfunction noop (...args) {}\n\nconst fakeLogger = {\n trace: noop,\n debug: noop,\n log: noop,\n warn: noop,\n info: noop,\n error: noop\n};\n\nlet exportedLogger = fakeLogger;\n\n// let lastCallTime;\n// function formatMsgWithTimeInfo(type, msg) {\n// const now = Date.now();\n// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';\n// lastCallTime = now;\n// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';\n// return msg;\n// }\n\nfunction formatMsg (type, msg) {\n msg = '[' + type + '] > ' + msg;\n return msg;\n}\n\nconst global = getSelfScope();\n\nfunction consolePrintFn (type) {\n const func = global.console[type];\n if (func) {\n return function (...args) {\n if (args[0]) {\n args[0] = formatMsg(type, args[0]);\n }\n\n func.apply(global.console, args);\n };\n }\n return noop;\n}\n\nfunction exportLoggerFunctions (debugConfig, ...functions) {\n functions.forEach(function (type) {\n exportedLogger[type] = debugConfig[type] ? debugConfig[type].bind(debugConfig) : consolePrintFn(type);\n });\n}\n\nexport const enableLogs = function (debugConfig) {\n // check that console is available\n if ((global.console && debugConfig === true) || typeof debugConfig === 'object') {\n exportLoggerFunctions(debugConfig,\n // Remove out from list here to hard-disable a log-level\n // 'trace',\n 'debug',\n 'log',\n 'info',\n 'warn',\n 'error'\n );\n // Some browsers don't allow to use bind on console object anyway\n // fallback to default if needed\n try {\n exportedLogger.log();\n } catch (e) {\n exportedLogger = fakeLogger;\n }\n } else {\n exportedLogger = fakeLogger;\n }\n};\n\nexport const logger = exportedLogger;\n","/**\n * @license React\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(\"react-list\", [\"prop-types\", \"react\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(require(\"prop-types\"), require(\"react\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(global.PropTypes, global.React);\n global.ReactList = mod.exports;\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : this, function (_propTypes, _react) {\n \"use strict\";\n\n _propTypes = _interopRequireDefault(_propTypes);\n _react = _interopRequireWildcard(_react);\n\n var _class, _temp;\n\n function _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\n function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n function _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\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\n function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\n function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\n function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n function _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\n function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n var CLIENT_SIZE_KEYS = {\n x: 'clientWidth',\n y: 'clientHeight'\n };\n var CLIENT_START_KEYS = {\n x: 'clientTop',\n y: 'clientLeft'\n };\n var INNER_SIZE_KEYS = {\n x: 'innerWidth',\n y: 'innerHeight'\n };\n var OFFSET_SIZE_KEYS = {\n x: 'offsetWidth',\n y: 'offsetHeight'\n };\n var OFFSET_START_KEYS = {\n x: 'offsetLeft',\n y: 'offsetTop'\n };\n var OVERFLOW_KEYS = {\n x: 'overflowX',\n y: 'overflowY'\n };\n var SCROLL_SIZE_KEYS = {\n x: 'scrollWidth',\n y: 'scrollHeight'\n };\n var SCROLL_START_KEYS = {\n x: 'scrollLeft',\n y: 'scrollTop'\n };\n var SIZE_KEYS = {\n x: 'width',\n y: 'height'\n };\n\n var NOOP = function NOOP() {}; // If a browser doesn't support the `options` argument to\n // add/removeEventListener, we need to check, otherwise we will\n // accidentally set `capture` with a truthy value.\n\n\n var PASSIVE = function () {\n if (typeof window === 'undefined') return false;\n var hasSupport = false;\n\n try {\n document.createElement('div').addEventListener('test', NOOP, {\n get passive() {\n hasSupport = true;\n return false;\n }\n\n });\n } catch (e) {// noop\n }\n\n return hasSupport;\n }() ? {\n passive: true\n } : false;\n var UNSTABLE_MESSAGE = 'ReactList failed to reach a stable state.';\n var MAX_SYNC_UPDATES = 40;\n\n var isEqualSubset = function isEqualSubset(a, b) {\n for (var key in b) {\n if (a[key] !== b[key]) return false;\n }\n\n return true;\n };\n\n var defaultScrollParentGetter = function defaultScrollParentGetter(component) {\n var axis = component.props.axis;\n var el = component.getEl();\n var overflowKey = OVERFLOW_KEYS[axis];\n\n while (el = el.parentElement) {\n switch (window.getComputedStyle(el)[overflowKey]) {\n case 'auto':\n case 'scroll':\n case 'overlay':\n return el;\n }\n }\n\n return window;\n };\n\n var defaultScrollParentViewportSizeGetter = function defaultScrollParentViewportSizeGetter(component) {\n var axis = component.props.axis;\n var scrollParent = component.scrollParent;\n return scrollParent === window ? window[INNER_SIZE_KEYS[axis]] : scrollParent[CLIENT_SIZE_KEYS[axis]];\n };\n\n var constrain = function constrain(props, state) {\n var length = props.length,\n minSize = props.minSize,\n type = props.type;\n var from = state.from,\n size = state.size,\n itemsPerRow = state.itemsPerRow;\n size = Math.max(size, minSize);\n var mod = size % itemsPerRow;\n if (mod) size += itemsPerRow - mod;\n if (size > length) size = length;\n from = type === 'simple' || !from ? 0 : Math.max(Math.min(from, length - size), 0);\n\n if (mod = from % itemsPerRow) {\n from -= mod;\n size += mod;\n }\n\n if (from === state.from && size == state.size) return state;\n return _objectSpread(_objectSpread({}, state), {}, {\n from: from,\n size: size\n });\n };\n\n module.exports = (_temp = _class = /*#__PURE__*/function (_Component) {\n _inherits(ReactList, _Component);\n\n var _super = _createSuper(ReactList);\n\n _createClass(ReactList, null, [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var newState = constrain(props, state);\n return newState === state ? null : newState;\n }\n }]);\n\n function ReactList(props) {\n var _this;\n\n _classCallCheck(this, ReactList);\n\n _this = _super.call(this, props);\n _this.state = constrain(props, {\n itemsPerRow: 1,\n from: props.initialIndex,\n size: 0\n });\n _this.cache = {};\n _this.cachedScrollPosition = null;\n _this.prevPrevState = {};\n _this.unstable = false;\n _this.updateCounter = 0;\n return _this;\n }\n\n _createClass(ReactList, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateFrameAndClearCache = this.updateFrameAndClearCache.bind(this);\n window.addEventListener('resize', this.updateFrameAndClearCache);\n this.updateFrame(this.scrollTo.bind(this, this.props.initialIndex));\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this2 = this;\n\n // Viewport scroll is no longer useful if axis changes\n if (this.props.axis !== prevProps.axis) this.clearSizeCache(); // If the list has reached an unstable state, prevent an infinite loop.\n\n if (this.unstable) return;\n\n if (++this.updateCounter > MAX_SYNC_UPDATES) {\n this.unstable = true;\n return console.error(UNSTABLE_MESSAGE);\n }\n\n if (!this.updateCounterTimeoutId) {\n this.updateCounterTimeoutId = setTimeout(function () {\n _this2.updateCounter = 0;\n delete _this2.updateCounterTimeoutId;\n }, 0);\n }\n\n this.updateFrame();\n }\n }, {\n key: \"maybeSetState\",\n value: function maybeSetState(b, cb) {\n if (isEqualSubset(this.state, b)) return cb();\n this.setState(b, cb);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('resize', this.updateFrameAndClearCache);\n this.scrollParent.removeEventListener('scroll', this.updateFrameAndClearCache, PASSIVE);\n this.scrollParent.removeEventListener('mousewheel', NOOP, PASSIVE);\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n var axis = this.props.axis;\n var offset = el[CLIENT_START_KEYS[axis]] || 0;\n var offsetKey = OFFSET_START_KEYS[axis];\n\n do {\n offset += el[offsetKey] || 0;\n } while (el = el.offsetParent);\n\n return offset;\n }\n }, {\n key: \"getEl\",\n value: function getEl() {\n return this.el || this.items;\n }\n }, {\n key: \"getScrollPosition\",\n value: function getScrollPosition() {\n // Cache scroll position as this causes a forced synchronous layout.\n if (typeof this.cachedScrollPosition === 'number') {\n return this.cachedScrollPosition;\n }\n\n var scrollParent = this.scrollParent;\n var axis = this.props.axis;\n var scrollKey = SCROLL_START_KEYS[axis];\n var actual = scrollParent === window ? // Firefox always returns document.body[scrollKey] as 0 and Chrome/Safari\n // always return document.documentElement[scrollKey] as 0, so take\n // whichever has a value.\n document.body[scrollKey] || document.documentElement[scrollKey] : scrollParent[scrollKey];\n var max = this.getScrollSize() - this.props.scrollParentViewportSizeGetter(this);\n var scroll = Math.max(0, Math.min(actual, max));\n var el = this.getEl();\n this.cachedScrollPosition = this.getOffset(scrollParent) + scroll - this.getOffset(el);\n return this.cachedScrollPosition;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(offset) {\n var scrollParent = this.scrollParent;\n var axis = this.props.axis;\n offset += this.getOffset(this.getEl());\n if (scrollParent === window) return window.scrollTo(0, offset);\n offset -= this.getOffset(this.scrollParent);\n scrollParent[SCROLL_START_KEYS[axis]] = offset;\n }\n }, {\n key: \"getScrollSize\",\n value: function getScrollSize() {\n var scrollParent = this.scrollParent;\n var _document = document,\n body = _document.body,\n documentElement = _document.documentElement;\n var key = SCROLL_SIZE_KEYS[this.props.axis];\n return scrollParent === window ? Math.max(body[key], documentElement[key]) : scrollParent[key];\n }\n }, {\n key: \"hasDeterminateSize\",\n value: function hasDeterminateSize() {\n var _this$props = this.props,\n itemSizeGetter = _this$props.itemSizeGetter,\n type = _this$props.type;\n return type === 'uniform' || itemSizeGetter;\n }\n }, {\n key: \"getStartAndEnd\",\n value: function getStartAndEnd() {\n var threshold = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.threshold;\n var scroll = this.getScrollPosition();\n var start = Math.max(0, scroll - threshold);\n var end = scroll + this.props.scrollParentViewportSizeGetter(this) + threshold;\n\n if (this.hasDeterminateSize()) {\n end = Math.min(end, this.getSpaceBefore(this.props.length));\n }\n\n return {\n start: start,\n end: end\n };\n }\n }, {\n key: \"getItemSizeAndItemsPerRow\",\n value: function getItemSizeAndItemsPerRow() {\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n useStaticSize = _this$props2.useStaticSize;\n var _this$state = this.state,\n itemSize = _this$state.itemSize,\n itemsPerRow = _this$state.itemsPerRow;\n\n if (useStaticSize && itemSize && itemsPerRow) {\n return {\n itemSize: itemSize,\n itemsPerRow: itemsPerRow\n };\n }\n\n var itemEls = this.items.children;\n if (!itemEls.length) return {};\n var firstEl = itemEls[0]; // Firefox has a problem where it will return a *slightly* (less than\n // thousandths of a pixel) different size for the same element between\n // renders. This can cause an infinite render loop, so only change the\n // itemSize when it is significantly different.\n\n var firstElSize = firstEl[OFFSET_SIZE_KEYS[axis]];\n var delta = Math.abs(firstElSize - itemSize);\n if (isNaN(delta) || delta >= 1) itemSize = firstElSize;\n if (!itemSize) return {};\n var startKey = OFFSET_START_KEYS[axis];\n var firstStart = firstEl[startKey];\n itemsPerRow = 1;\n\n for (var item = itemEls[itemsPerRow]; item && item[startKey] === firstStart; item = itemEls[itemsPerRow]) {\n ++itemsPerRow;\n }\n\n return {\n itemSize: itemSize,\n itemsPerRow: itemsPerRow\n };\n }\n }, {\n key: \"clearSizeCache\",\n value: function clearSizeCache() {\n this.cachedScrollPosition = null;\n } // Called by 'scroll' and 'resize' events, clears scroll position cache.\n\n }, {\n key: \"updateFrameAndClearCache\",\n value: function updateFrameAndClearCache(cb) {\n this.clearSizeCache();\n return this.updateFrame(cb);\n }\n }, {\n key: \"updateFrame\",\n value: function updateFrame(cb) {\n this.updateScrollParent();\n if (typeof cb != 'function') cb = NOOP;\n\n switch (this.props.type) {\n case 'simple':\n return this.updateSimpleFrame(cb);\n\n case 'variable':\n return this.updateVariableFrame(cb);\n\n case 'uniform':\n return this.updateUniformFrame(cb);\n }\n }\n }, {\n key: \"updateScrollParent\",\n value: function updateScrollParent() {\n var prev = this.scrollParent;\n this.scrollParent = this.props.scrollParentGetter(this);\n if (prev === this.scrollParent) return;\n\n if (prev) {\n prev.removeEventListener('scroll', this.updateFrameAndClearCache);\n prev.removeEventListener('mousewheel', NOOP);\n } // If we have a new parent, cached parent dimensions are no longer useful.\n\n\n this.clearSizeCache();\n this.scrollParent.addEventListener('scroll', this.updateFrameAndClearCache, PASSIVE); // You have to attach mousewheel listener to the scrollable element.\n // Just an empty listener. After that onscroll events will be fired synchronously.\n\n this.scrollParent.addEventListener('mousewheel', NOOP, PASSIVE);\n }\n }, {\n key: \"updateSimpleFrame\",\n value: function updateSimpleFrame(cb) {\n var _this$getStartAndEnd = this.getStartAndEnd(),\n end = _this$getStartAndEnd.end;\n\n var itemEls = this.items.children;\n var elEnd = 0;\n\n if (itemEls.length) {\n var axis = this.props.axis;\n var firstItemEl = itemEls[0];\n var lastItemEl = itemEls[itemEls.length - 1];\n elEnd = this.getOffset(lastItemEl) + lastItemEl[OFFSET_SIZE_KEYS[axis]] - this.getOffset(firstItemEl);\n }\n\n if (elEnd > end) return cb();\n var _this$props3 = this.props,\n pageSize = _this$props3.pageSize,\n length = _this$props3.length;\n var size = Math.min(this.state.size + pageSize, length);\n this.maybeSetState({\n size: size\n }, cb);\n }\n }, {\n key: \"updateVariableFrame\",\n value: function updateVariableFrame(cb) {\n if (!this.props.itemSizeGetter) this.cacheSizes();\n\n var _this$getStartAndEnd2 = this.getStartAndEnd(),\n start = _this$getStartAndEnd2.start,\n end = _this$getStartAndEnd2.end;\n\n var _this$props4 = this.props,\n length = _this$props4.length,\n pageSize = _this$props4.pageSize;\n var space = 0;\n var from = 0;\n var size = 0;\n var maxFrom = length - 1;\n\n while (from < maxFrom) {\n var itemSize = this.getSizeOfItem(from);\n if (itemSize == null || space + itemSize > start) break;\n space += itemSize;\n ++from;\n }\n\n var maxSize = length - from;\n\n while (size < maxSize && space < end) {\n var _itemSize = this.getSizeOfItem(from + size);\n\n if (_itemSize == null) {\n size = Math.min(size + pageSize, maxSize);\n break;\n }\n\n space += _itemSize;\n ++size;\n }\n\n this.maybeSetState(constrain(this.props, {\n from: from,\n itemsPerRow: 1,\n size: size\n }), cb);\n }\n }, {\n key: \"updateUniformFrame\",\n value: function updateUniformFrame(cb) {\n var _this$getItemSizeAndI = this.getItemSizeAndItemsPerRow(),\n itemSize = _this$getItemSizeAndI.itemSize,\n itemsPerRow = _this$getItemSizeAndI.itemsPerRow;\n\n if (!itemSize || !itemsPerRow) return cb();\n\n var _this$getStartAndEnd3 = this.getStartAndEnd(),\n start = _this$getStartAndEnd3.start,\n end = _this$getStartAndEnd3.end;\n\n var _constrain = constrain(this.props, {\n from: Math.floor(start / itemSize) * itemsPerRow,\n size: (Math.ceil((end - start) / itemSize) + 1) * itemsPerRow,\n itemsPerRow: itemsPerRow\n }),\n from = _constrain.from,\n size = _constrain.size;\n\n return this.maybeSetState({\n itemsPerRow: itemsPerRow,\n from: from,\n itemSize: itemSize,\n size: size\n }, cb);\n }\n }, {\n key: \"getSpaceBefore\",\n value: function getSpaceBefore(index) {\n var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (cache[index] != null) return cache[index]; // Try the static itemSize.\n\n var _this$state2 = this.state,\n itemSize = _this$state2.itemSize,\n itemsPerRow = _this$state2.itemsPerRow;\n\n if (itemSize) {\n return cache[index] = Math.floor(index / itemsPerRow) * itemSize;\n } // Find the closest space to index there is a cached value for.\n\n\n var from = index;\n\n while (from > 0 && cache[--from] == null) {\n ;\n } // Finally, accumulate sizes of items from - index.\n\n\n var space = cache[from] || 0;\n\n for (var i = from; i < index; ++i) {\n cache[i] = space;\n\n var _itemSize2 = this.getSizeOfItem(i);\n\n if (_itemSize2 == null) break;\n space += _itemSize2;\n }\n\n return cache[index] = space;\n }\n }, {\n key: \"cacheSizes\",\n value: function cacheSizes() {\n var cache = this.cache;\n var from = this.state.from;\n var itemEls = this.items.children;\n var sizeKey = OFFSET_SIZE_KEYS[this.props.axis];\n\n for (var i = 0, l = itemEls.length; i < l; ++i) {\n cache[from + i] = itemEls[i][sizeKey];\n }\n }\n }, {\n key: \"getSizeOfItem\",\n value: function getSizeOfItem(index) {\n var cache = this.cache,\n items = this.items;\n var _this$props5 = this.props,\n axis = _this$props5.axis,\n itemSizeGetter = _this$props5.itemSizeGetter,\n itemSizeEstimator = _this$props5.itemSizeEstimator,\n type = _this$props5.type;\n var _this$state3 = this.state,\n from = _this$state3.from,\n itemSize = _this$state3.itemSize,\n size = _this$state3.size; // Try the static itemSize.\n\n if (itemSize) return itemSize; // Try the itemSizeGetter.\n\n if (itemSizeGetter) return itemSizeGetter(index); // Try the cache.\n\n if (index in cache) return cache[index]; // Try the DOM.\n\n if (type === 'simple' && index >= from && index < from + size && items) {\n var itemEl = items.children[index - from];\n if (itemEl) return itemEl[OFFSET_SIZE_KEYS[axis]];\n } // Try the itemSizeEstimator.\n\n\n if (itemSizeEstimator) return itemSizeEstimator(index, cache);\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(index) {\n if (index != null) this.setScroll(this.getSpaceBefore(index));\n }\n }, {\n key: \"scrollAround\",\n value: function scrollAround(index) {\n var current = this.getScrollPosition();\n var bottom = this.getSpaceBefore(index);\n var top = bottom - this.props.scrollParentViewportSizeGetter(this) + this.getSizeOfItem(index);\n var min = Math.min(top, bottom);\n var max = Math.max(top, bottom);\n if (current <= min) return this.setScroll(min);\n if (current > max) return this.setScroll(max);\n }\n }, {\n key: \"getVisibleRange\",\n value: function getVisibleRange() {\n var _this$state4 = this.state,\n from = _this$state4.from,\n size = _this$state4.size;\n\n var _this$getStartAndEnd4 = this.getStartAndEnd(0),\n start = _this$getStartAndEnd4.start,\n end = _this$getStartAndEnd4.end;\n\n var cache = {};\n var first, last;\n\n for (var i = from; i < from + size; ++i) {\n var itemStart = this.getSpaceBefore(i, cache);\n var itemEnd = itemStart + this.getSizeOfItem(i);\n if (first == null && itemEnd > start) first = i;\n if (first != null && itemStart < end) last = i;\n }\n\n return [first, last];\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n itemRenderer = _this$props6.itemRenderer,\n itemsRenderer = _this$props6.itemsRenderer;\n var _this$state5 = this.state,\n from = _this$state5.from,\n size = _this$state5.size;\n var items = [];\n\n for (var i = 0; i < size; ++i) {\n items.push(itemRenderer(from + i, i));\n }\n\n return itemsRenderer(items, function (c) {\n return _this3.items = c;\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this4 = this;\n\n var _this$props7 = this.props,\n axis = _this$props7.axis,\n length = _this$props7.length,\n type = _this$props7.type,\n useTranslate3d = _this$props7.useTranslate3d;\n var _this$state6 = this.state,\n from = _this$state6.from,\n itemsPerRow = _this$state6.itemsPerRow;\n var items = this.renderItems();\n if (type === 'simple') return items;\n var style = {\n position: 'relative'\n };\n var cache = {};\n var bottom = Math.ceil(length / itemsPerRow) * itemsPerRow;\n var size = this.getSpaceBefore(bottom, cache);\n\n if (size) {\n style[SIZE_KEYS[axis]] = size;\n if (axis === 'x') style.overflowX = 'hidden';\n }\n\n var offset = this.getSpaceBefore(from, cache);\n var x = axis === 'x' ? offset : 0;\n var y = axis === 'y' ? offset : 0;\n var transform = useTranslate3d ? \"translate3d(\".concat(x, \"px, \").concat(y, \"px, 0)\") : \"translate(\".concat(x, \"px, \").concat(y, \"px)\");\n var listStyle = {\n msTransform: transform,\n WebkitTransform: transform,\n transform: transform\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: style,\n ref: function ref(c) {\n return _this4.el = c;\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: listStyle\n }, items));\n }\n }]);\n\n return ReactList;\n }(_react.Component), _defineProperty(_class, \"displayName\", 'ReactList'), _defineProperty(_class, \"propTypes\", {\n axis: _propTypes[\"default\"].oneOf(['x', 'y']),\n initialIndex: _propTypes[\"default\"].number,\n itemRenderer: _propTypes[\"default\"].func,\n itemSizeEstimator: _propTypes[\"default\"].func,\n itemSizeGetter: _propTypes[\"default\"].func,\n itemsRenderer: _propTypes[\"default\"].func,\n length: _propTypes[\"default\"].number,\n minSize: _propTypes[\"default\"].number,\n pageSize: _propTypes[\"default\"].number,\n scrollParentGetter: _propTypes[\"default\"].func,\n scrollParentViewportSizeGetter: _propTypes[\"default\"].func,\n threshold: _propTypes[\"default\"].number,\n type: _propTypes[\"default\"].oneOf(['simple', 'variable', 'uniform']),\n useStaticSize: _propTypes[\"default\"].bool,\n useTranslate3d: _propTypes[\"default\"].bool\n }), _defineProperty(_class, \"defaultProps\", {\n axis: 'y',\n itemRenderer: function itemRenderer(index, key) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: key\n }, index);\n },\n itemsRenderer: function itemsRenderer(items, ref) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: ref\n }, items);\n },\n length: 0,\n minSize: 1,\n pageSize: 10,\n scrollParentGetter: defaultScrollParentGetter,\n scrollParentViewportSizeGetter: defaultScrollParentViewportSizeGetter,\n threshold: 100,\n type: 'simple',\n useStaticSize: false,\n useTranslate3d: false\n }), _temp);\n});\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar Player_exports = {};\n__export(Player_exports, {\n default: () => Player\n});\nmodule.exports = __toCommonJS(Player_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nconst SEEK_ON_PLAY_EXPIRY = 5e3;\nclass Player extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"mounted\", false);\n __publicField(this, \"isReady\", false);\n __publicField(this, \"isPlaying\", false);\n // Track playing state internally to prevent bugs\n __publicField(this, \"isLoading\", true);\n // Use isLoading to prevent onPause when switching URL\n __publicField(this, \"loadOnReady\", null);\n __publicField(this, \"startOnPlay\", true);\n __publicField(this, \"seekOnPlay\", null);\n __publicField(this, \"onDurationCalled\", false);\n __publicField(this, \"handlePlayerMount\", (player) => {\n if (this.player) {\n this.progress();\n return;\n }\n this.player = player;\n this.player.load(this.props.url);\n this.progress();\n });\n __publicField(this, \"getInternalPlayer\", (key) => {\n if (!this.player)\n return null;\n return this.player[key];\n });\n __publicField(this, \"progress\", () => {\n if (this.props.url && this.player && this.isReady) {\n const playedSeconds = this.getCurrentTime() || 0;\n const loadedSeconds = this.getSecondsLoaded();\n const duration = this.getDuration();\n if (duration) {\n const progress = {\n playedSeconds,\n played: playedSeconds / duration\n };\n if (loadedSeconds !== null) {\n progress.loadedSeconds = loadedSeconds;\n progress.loaded = loadedSeconds / duration;\n }\n if (progress.playedSeconds !== this.prevPlayed || progress.loadedSeconds !== this.prevLoaded) {\n this.props.onProgress(progress);\n }\n this.prevPlayed = progress.playedSeconds;\n this.prevLoaded = progress.loadedSeconds;\n }\n }\n this.progressTimeout = setTimeout(this.progress, this.props.progressFrequency || this.props.progressInterval);\n });\n __publicField(this, \"handleReady\", () => {\n if (!this.mounted)\n return;\n this.isReady = true;\n this.isLoading = false;\n const { onReady, playing, volume, muted } = this.props;\n onReady();\n if (!muted && volume !== null) {\n this.player.setVolume(volume);\n }\n if (this.loadOnReady) {\n this.player.load(this.loadOnReady, true);\n this.loadOnReady = null;\n } else if (playing) {\n this.player.play();\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePlay\", () => {\n this.isPlaying = true;\n this.isLoading = false;\n const { onStart, onPlay, playbackRate } = this.props;\n if (this.startOnPlay) {\n if (this.player.setPlaybackRate && playbackRate !== 1) {\n this.player.setPlaybackRate(playbackRate);\n }\n onStart();\n this.startOnPlay = false;\n }\n onPlay();\n if (this.seekOnPlay) {\n this.seekTo(this.seekOnPlay);\n this.seekOnPlay = null;\n }\n this.handleDurationCheck();\n });\n __publicField(this, \"handlePause\", (e) => {\n this.isPlaying = false;\n if (!this.isLoading) {\n this.props.onPause(e);\n }\n });\n __publicField(this, \"handleEnded\", () => {\n const { activePlayer, loop, onEnded } = this.props;\n if (activePlayer.loopOnEnded && loop) {\n this.seekTo(0);\n }\n if (!loop) {\n this.isPlaying = false;\n onEnded();\n }\n });\n __publicField(this, \"handleError\", (...args) => {\n this.isLoading = false;\n this.props.onError(...args);\n });\n __publicField(this, \"handleDurationCheck\", () => {\n clearTimeout(this.durationCheckTimeout);\n const duration = this.getDuration();\n if (duration) {\n if (!this.onDurationCalled) {\n this.props.onDuration(duration);\n this.onDurationCalled = true;\n }\n } else {\n this.durationCheckTimeout = setTimeout(this.handleDurationCheck, 100);\n }\n });\n __publicField(this, \"handleLoaded\", () => {\n this.isLoading = false;\n });\n }\n componentDidMount() {\n this.mounted = true;\n }\n componentWillUnmount() {\n clearTimeout(this.progressTimeout);\n clearTimeout(this.durationCheckTimeout);\n if (this.isReady && this.props.stopOnUnmount) {\n this.player.stop();\n if (this.player.disablePIP) {\n this.player.disablePIP();\n }\n }\n this.mounted = false;\n }\n componentDidUpdate(prevProps) {\n if (!this.player) {\n return;\n }\n const { url, playing, volume, muted, playbackRate, pip, loop, activePlayer, disableDeferredLoading } = this.props;\n if (!(0, import_react_fast_compare.default)(prevProps.url, url)) {\n if (this.isLoading && !activePlayer.forceLoad && !disableDeferredLoading && !(0, import_utils.isMediaStream)(url)) {\n console.warn(`ReactPlayer: the attempt to load ${url} is being deferred until the player has loaded`);\n this.loadOnReady = url;\n return;\n }\n this.isLoading = true;\n this.startOnPlay = true;\n this.onDurationCalled = false;\n this.player.load(url, this.isReady);\n }\n if (!prevProps.playing && playing && !this.isPlaying) {\n this.player.play();\n }\n if (prevProps.playing && !playing && this.isPlaying) {\n this.player.pause();\n }\n if (!prevProps.pip && pip && this.player.enablePIP) {\n this.player.enablePIP();\n }\n if (prevProps.pip && !pip && this.player.disablePIP) {\n this.player.disablePIP();\n }\n if (prevProps.volume !== volume && volume !== null) {\n this.player.setVolume(volume);\n }\n if (prevProps.muted !== muted) {\n if (muted) {\n this.player.mute();\n } else {\n this.player.unmute();\n if (volume !== null) {\n setTimeout(() => this.player.setVolume(volume));\n }\n }\n }\n if (prevProps.playbackRate !== playbackRate && this.player.setPlaybackRate) {\n this.player.setPlaybackRate(playbackRate);\n }\n if (prevProps.loop !== loop && this.player.setLoop) {\n this.player.setLoop(loop);\n }\n }\n getDuration() {\n if (!this.isReady)\n return null;\n return this.player.getDuration();\n }\n getCurrentTime() {\n if (!this.isReady)\n return null;\n return this.player.getCurrentTime();\n }\n getSecondsLoaded() {\n if (!this.isReady)\n return null;\n return this.player.getSecondsLoaded();\n }\n seekTo(amount, type, keepPlaying) {\n if (!this.isReady) {\n if (amount !== 0) {\n this.seekOnPlay = amount;\n setTimeout(() => {\n this.seekOnPlay = null;\n }, SEEK_ON_PLAY_EXPIRY);\n }\n return;\n }\n const isFraction = !type ? amount > 0 && amount < 1 : type === \"fraction\";\n if (isFraction) {\n const duration = this.player.getDuration();\n if (!duration) {\n console.warn(\"ReactPlayer: could not seek using fraction \\u2013\\xA0duration not yet available\");\n return;\n }\n this.player.seekTo(duration * amount, keepPlaying);\n return;\n }\n this.player.seekTo(amount, keepPlaying);\n }\n render() {\n const Player2 = this.props.activePlayer;\n if (!Player2) {\n return null;\n }\n return /* @__PURE__ */ import_react.default.createElement(\n Player2,\n {\n ...this.props,\n onMount: this.handlePlayerMount,\n onReady: this.handleReady,\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onEnded: this.handleEnded,\n onLoaded: this.handleLoaded,\n onError: this.handleError\n }\n );\n }\n}\n__publicField(Player, \"displayName\", \"Player\");\n__publicField(Player, \"propTypes\", import_props.propTypes);\n__publicField(Player, \"defaultProps\", import_props.defaultProps);\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nvar ReactPlayer_exports = {};\n__export(ReactPlayer_exports, {\n createReactPlayer: () => createReactPlayer\n});\nmodule.exports = __toCommonJS(ReactPlayer_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nvar import_memoize_one = __toESM(require(\"memoize-one\"));\nvar import_react_fast_compare = __toESM(require(\"react-fast-compare\"));\nvar import_props = require(\"./props\");\nvar import_utils = require(\"./utils\");\nvar import_Player = __toESM(require(\"./Player\"));\nconst Preview = (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerPreview' */\n \"./Preview\"\n));\nconst IS_BROWSER = typeof window !== \"undefined\" && window.document && typeof document !== \"undefined\";\nconst IS_GLOBAL = typeof global !== \"undefined\" && global.window && global.window.document;\nconst SUPPORTED_PROPS = Object.keys(import_props.propTypes);\nconst UniversalSuspense = IS_BROWSER || IS_GLOBAL ? import_react.Suspense : () => null;\nconst customPlayers = [];\nconst createReactPlayer = (players, fallback) => {\n var _a;\n return _a = class extends import_react.Component {\n constructor() {\n super(...arguments);\n __publicField(this, \"state\", {\n showPreview: !!this.props.light\n });\n // Use references, as refs is used by React\n __publicField(this, \"references\", {\n wrapper: (wrapper) => {\n this.wrapper = wrapper;\n },\n player: (player) => {\n this.player = player;\n }\n });\n __publicField(this, \"handleClickPreview\", (e) => {\n this.setState({ showPreview: false });\n this.props.onClickPreview(e);\n });\n __publicField(this, \"showPreview\", () => {\n this.setState({ showPreview: true });\n });\n __publicField(this, \"getDuration\", () => {\n if (!this.player)\n return null;\n return this.player.getDuration();\n });\n __publicField(this, \"getCurrentTime\", () => {\n if (!this.player)\n return null;\n return this.player.getCurrentTime();\n });\n __publicField(this, \"getSecondsLoaded\", () => {\n if (!this.player)\n return null;\n return this.player.getSecondsLoaded();\n });\n __publicField(this, \"getInternalPlayer\", (key = \"player\") => {\n if (!this.player)\n return null;\n return this.player.getInternalPlayer(key);\n });\n __publicField(this, \"seekTo\", (fraction, type, keepPlaying) => {\n if (!this.player)\n return null;\n this.player.seekTo(fraction, type, keepPlaying);\n });\n __publicField(this, \"handleReady\", () => {\n this.props.onReady(this);\n });\n __publicField(this, \"getActivePlayer\", (0, import_memoize_one.default)((url) => {\n for (const player of [...customPlayers, ...players]) {\n if (player.canPlay(url)) {\n return player;\n }\n }\n if (fallback) {\n return fallback;\n }\n return null;\n }));\n __publicField(this, \"getConfig\", (0, import_memoize_one.default)((url, key) => {\n const { config } = this.props;\n return import_deepmerge.default.all([\n import_props.defaultProps.config,\n import_props.defaultProps.config[key] || {},\n config,\n config[key] || {}\n ]);\n }));\n __publicField(this, \"getAttributes\", (0, import_memoize_one.default)((url) => {\n return (0, import_utils.omit)(this.props, SUPPORTED_PROPS);\n }));\n __publicField(this, \"renderActivePlayer\", (url) => {\n if (!url)\n return null;\n const player = this.getActivePlayer(url);\n if (!player)\n return null;\n const config = this.getConfig(url, player.key);\n return /* @__PURE__ */ import_react.default.createElement(\n import_Player.default,\n {\n ...this.props,\n key: player.key,\n ref: this.references.player,\n config,\n activePlayer: player.lazyPlayer || player,\n onReady: this.handleReady\n }\n );\n });\n }\n shouldComponentUpdate(nextProps, nextState) {\n return !(0, import_react_fast_compare.default)(this.props, nextProps) || !(0, import_react_fast_compare.default)(this.state, nextState);\n }\n componentDidUpdate(prevProps) {\n const { light } = this.props;\n if (!prevProps.light && light) {\n this.setState({ showPreview: true });\n }\n if (prevProps.light && !light) {\n this.setState({ showPreview: false });\n }\n }\n renderPreview(url) {\n if (!url)\n return null;\n const { light, playIcon, previewTabIndex, oEmbedUrl, previewAriaLabel } = this.props;\n return /* @__PURE__ */ import_react.default.createElement(\n Preview,\n {\n url,\n light,\n playIcon,\n previewTabIndex,\n previewAriaLabel,\n oEmbedUrl,\n onClick: this.handleClickPreview\n }\n );\n }\n render() {\n const { url, style, width, height, fallback: fallback2, wrapper: Wrapper } = this.props;\n const { showPreview } = this.state;\n const attributes = this.getAttributes(url);\n const wrapperRef = typeof Wrapper === \"string\" ? this.references.wrapper : void 0;\n return /* @__PURE__ */ import_react.default.createElement(Wrapper, { ref: wrapperRef, style: { ...style, width, height }, ...attributes }, /* @__PURE__ */ import_react.default.createElement(UniversalSuspense, { fallback: fallback2 }, showPreview ? this.renderPreview(url) : this.renderActivePlayer(url)));\n }\n }, __publicField(_a, \"displayName\", \"ReactPlayer\"), __publicField(_a, \"propTypes\", import_props.propTypes), __publicField(_a, \"defaultProps\", import_props.defaultProps), __publicField(_a, \"addCustomPlayer\", (player) => {\n customPlayers.push(player);\n }), __publicField(_a, \"removeCustomPlayers\", () => {\n customPlayers.length = 0;\n }), __publicField(_a, \"canPlay\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canPlay(url)) {\n return true;\n }\n }\n return false;\n }), __publicField(_a, \"canEnablePIP\", (url) => {\n for (const Player2 of [...customPlayers, ...players]) {\n if (Player2.canEnablePIP && Player2.canEnablePIP(url)) {\n return true;\n }\n }\n return false;\n }), _a;\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar src_exports = {};\n__export(src_exports, {\n default: () => src_default\n});\nmodule.exports = __toCommonJS(src_exports);\nvar import_players = __toESM(require(\"./players\"));\nvar import_ReactPlayer = require(\"./ReactPlayer\");\nconst fallback = import_players.default[import_players.default.length - 1];\nvar src_default = (0, import_ReactPlayer.createReactPlayer)(import_players.default, fallback);\n","var __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar patterns_exports = {};\n__export(patterns_exports, {\n AUDIO_EXTENSIONS: () => AUDIO_EXTENSIONS,\n DASH_EXTENSIONS: () => DASH_EXTENSIONS,\n FLV_EXTENSIONS: () => FLV_EXTENSIONS,\n HLS_EXTENSIONS: () => HLS_EXTENSIONS,\n MATCH_URL_DAILYMOTION: () => MATCH_URL_DAILYMOTION,\n MATCH_URL_FACEBOOK: () => MATCH_URL_FACEBOOK,\n MATCH_URL_FACEBOOK_WATCH: () => MATCH_URL_FACEBOOK_WATCH,\n MATCH_URL_KALTURA: () => MATCH_URL_KALTURA,\n MATCH_URL_MIXCLOUD: () => MATCH_URL_MIXCLOUD,\n MATCH_URL_MUX: () => MATCH_URL_MUX,\n MATCH_URL_SOUNDCLOUD: () => MATCH_URL_SOUNDCLOUD,\n MATCH_URL_STREAMABLE: () => MATCH_URL_STREAMABLE,\n MATCH_URL_TWITCH_CHANNEL: () => MATCH_URL_TWITCH_CHANNEL,\n MATCH_URL_TWITCH_VIDEO: () => MATCH_URL_TWITCH_VIDEO,\n MATCH_URL_VIDYARD: () => MATCH_URL_VIDYARD,\n MATCH_URL_VIMEO: () => MATCH_URL_VIMEO,\n MATCH_URL_WISTIA: () => MATCH_URL_WISTIA,\n MATCH_URL_YOUTUBE: () => MATCH_URL_YOUTUBE,\n VIDEO_EXTENSIONS: () => VIDEO_EXTENSIONS,\n canPlay: () => canPlay\n});\nmodule.exports = __toCommonJS(patterns_exports);\nvar import_utils = require(\"./utils\");\nconst MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie|education)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=|shorts\\/|live\\/))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nconst MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nconst MATCH_URL_VIMEO = /vimeo\\.com\\/(?!progressive_redirect).+/;\nconst MATCH_URL_MUX = /stream\\.mux\\.com\\/(?!\\w+\\.m3u8)(\\w+)/;\nconst MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nconst MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nconst MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nconst MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?([^?]+)/;\nconst MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nconst MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nconst MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?(?:[\\w.#_-]+)?/;\nconst MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nconst MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-_]+)/;\nconst MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_].*)$/;\nconst AUDIO_EXTENSIONS = /\\.(m4a|m4b|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nconst VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)(#t=[,\\d+]+)?($|\\?)/i;\nconst HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nconst DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nconst FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nconst canPlayFile = (url) => {\n if (url instanceof Array) {\n for (const item of url) {\n if (typeof item === \"string\" && canPlayFile(item)) {\n return true;\n }\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n return false;\n }\n if ((0, import_utils.isMediaStream)(url) || (0, import_utils.isBlobUrl)(url)) {\n return true;\n }\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\nconst canPlay = {\n youtube: (url) => {\n if (url instanceof Array) {\n return url.every((item) => MATCH_URL_YOUTUBE.test(item));\n }\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: (url) => MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url),\n vimeo: (url) => MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url),\n mux: (url) => MATCH_URL_MUX.test(url),\n facebook: (url) => MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url),\n streamable: (url) => MATCH_URL_STREAMABLE.test(url),\n wistia: (url) => MATCH_URL_WISTIA.test(url),\n twitch: (url) => MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url),\n dailymotion: (url) => MATCH_URL_DAILYMOTION.test(url),\n mixcloud: (url) => MATCH_URL_MIXCLOUD.test(url),\n vidyard: (url) => MATCH_URL_VIDYARD.test(url),\n kaltura: (url) => MATCH_URL_KALTURA.test(url),\n file: canPlayFile\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar players_exports = {};\n__export(players_exports, {\n default: () => players_default\n});\nmodule.exports = __toCommonJS(players_exports);\nvar import_utils = require(\"../utils\");\nvar import_patterns = require(\"../patterns\");\nvar players_default = [\n {\n key: \"youtube\",\n name: \"YouTube\",\n canPlay: import_patterns.canPlay.youtube,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerYouTube' */\n \"./YouTube\"\n ))\n },\n {\n key: \"soundcloud\",\n name: \"SoundCloud\",\n canPlay: import_patterns.canPlay.soundcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerSoundCloud' */\n \"./SoundCloud\"\n ))\n },\n {\n key: \"vimeo\",\n name: \"Vimeo\",\n canPlay: import_patterns.canPlay.vimeo,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVimeo' */\n \"./Vimeo\"\n ))\n },\n {\n key: \"mux\",\n name: \"Mux\",\n canPlay: import_patterns.canPlay.mux,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMux' */\n \"./Mux\"\n ))\n },\n {\n key: \"facebook\",\n name: \"Facebook\",\n canPlay: import_patterns.canPlay.facebook,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFacebook' */\n \"./Facebook\"\n ))\n },\n {\n key: \"streamable\",\n name: \"Streamable\",\n canPlay: import_patterns.canPlay.streamable,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerStreamable' */\n \"./Streamable\"\n ))\n },\n {\n key: \"wistia\",\n name: \"Wistia\",\n canPlay: import_patterns.canPlay.wistia,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerWistia' */\n \"./Wistia\"\n ))\n },\n {\n key: \"twitch\",\n name: \"Twitch\",\n canPlay: import_patterns.canPlay.twitch,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerTwitch' */\n \"./Twitch\"\n ))\n },\n {\n key: \"dailymotion\",\n name: \"DailyMotion\",\n canPlay: import_patterns.canPlay.dailymotion,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerDailyMotion' */\n \"./DailyMotion\"\n ))\n },\n {\n key: \"mixcloud\",\n name: \"Mixcloud\",\n canPlay: import_patterns.canPlay.mixcloud,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerMixcloud' */\n \"./Mixcloud\"\n ))\n },\n {\n key: \"vidyard\",\n name: \"Vidyard\",\n canPlay: import_patterns.canPlay.vidyard,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerVidyard' */\n \"./Vidyard\"\n ))\n },\n {\n key: \"kaltura\",\n name: \"Kaltura\",\n canPlay: import_patterns.canPlay.kaltura,\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerKaltura' */\n \"./Kaltura\"\n ))\n },\n {\n key: \"file\",\n name: \"FilePlayer\",\n canPlay: import_patterns.canPlay.file,\n canEnablePIP: (url) => {\n return import_patterns.canPlay.file(url) && (document.pictureInPictureEnabled || (0, import_utils.supportsWebKitPresentationMode)()) && !import_patterns.AUDIO_EXTENSIONS.test(url);\n },\n lazyPlayer: (0, import_utils.lazy)(() => import(\n /* webpackChunkName: 'reactPlayerFilePlayer' */\n \"./FilePlayer\"\n ))\n }\n];\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar props_exports = {};\n__export(props_exports, {\n defaultProps: () => defaultProps,\n propTypes: () => propTypes\n});\nmodule.exports = __toCommonJS(props_exports);\nvar import_prop_types = __toESM(require(\"prop-types\"));\nconst { string, bool, number, array, oneOfType, shape, object, func, node } = import_prop_types.default;\nconst propTypes = {\n url: oneOfType([string, array, object]),\n playing: bool,\n loop: bool,\n controls: bool,\n volume: number,\n muted: bool,\n playbackRate: number,\n width: oneOfType([string, number]),\n height: oneOfType([string, number]),\n style: object,\n progressInterval: number,\n playsinline: bool,\n pip: bool,\n stopOnUnmount: bool,\n light: oneOfType([bool, string, object]),\n playIcon: node,\n previewTabIndex: number,\n previewAriaLabel: string,\n fallback: node,\n oEmbedUrl: string,\n wrapper: oneOfType([\n string,\n func,\n shape({ render: func.isRequired })\n ]),\n config: shape({\n soundcloud: shape({\n options: object\n }),\n youtube: shape({\n playerVars: object,\n embedOptions: object,\n onUnstarted: func\n }),\n facebook: shape({\n appId: string,\n version: string,\n playerId: string,\n attributes: object\n }),\n dailymotion: shape({\n params: object\n }),\n vimeo: shape({\n playerOptions: object,\n title: string\n }),\n mux: shape({\n attributes: object,\n version: string\n }),\n file: shape({\n attributes: object,\n tracks: array,\n forceVideo: bool,\n forceAudio: bool,\n forceHLS: bool,\n forceSafariHLS: bool,\n forceDisableHls: bool,\n forceDASH: bool,\n forceFLV: bool,\n hlsOptions: object,\n hlsVersion: string,\n dashVersion: string,\n flvVersion: string\n }),\n wistia: shape({\n options: object,\n playerId: string,\n customControls: array\n }),\n mixcloud: shape({\n options: object\n }),\n twitch: shape({\n options: object,\n playerId: string\n }),\n vidyard: shape({\n options: object\n })\n }),\n onReady: func,\n onStart: func,\n onPlay: func,\n onPause: func,\n onBuffer: func,\n onBufferEnd: func,\n onEnded: func,\n onError: func,\n onDuration: func,\n onSeek: func,\n onPlaybackRateChange: func,\n onPlaybackQualityChange: func,\n onProgress: func,\n onClickPreview: func,\n onEnablePIP: func,\n onDisablePIP: func\n};\nconst noop = () => {\n};\nconst defaultProps = {\n playing: false,\n loop: false,\n controls: false,\n volume: null,\n muted: false,\n playbackRate: 1,\n width: \"640px\",\n height: \"360px\",\n style: {},\n progressInterval: 1e3,\n playsinline: false,\n pip: false,\n stopOnUnmount: true,\n light: false,\n fallback: null,\n wrapper: \"div\",\n previewTabIndex: 0,\n previewAriaLabel: \"\",\n oEmbedUrl: \"https://noembed.com/embed?url={url}\",\n config: {\n soundcloud: {\n options: {\n visual: true,\n // Undocumented, but makes player fill container and look better\n buying: false,\n liking: false,\n download: false,\n sharing: false,\n show_comments: false,\n show_playcount: false\n }\n },\n youtube: {\n playerVars: {\n playsinline: 1,\n showinfo: 0,\n rel: 0,\n iv_load_policy: 3,\n modestbranding: 1\n },\n embedOptions: {},\n onUnstarted: noop\n },\n facebook: {\n appId: \"1309697205772819\",\n version: \"v3.3\",\n playerId: null,\n attributes: {}\n },\n dailymotion: {\n params: {\n api: 1,\n \"endscreen-enable\": false\n }\n },\n vimeo: {\n playerOptions: {\n autopause: false,\n byline: false,\n portrait: false,\n title: false\n },\n title: null\n },\n mux: {\n attributes: {},\n version: \"2\"\n },\n file: {\n attributes: {},\n tracks: [],\n forceVideo: false,\n forceAudio: false,\n forceHLS: false,\n forceDASH: false,\n forceFLV: false,\n hlsOptions: {},\n hlsVersion: \"1.1.4\",\n dashVersion: \"3.1.3\",\n flvVersion: \"1.5.0\",\n forceDisableHls: false\n },\n wistia: {\n options: {},\n playerId: null,\n customControls: null\n },\n mixcloud: {\n options: {\n hide_cover: 1\n }\n },\n twitch: {\n options: {},\n playerId: null\n },\n vidyard: {\n options: {}\n }\n },\n onReady: noop,\n onStart: noop,\n onPlay: noop,\n onPause: noop,\n onBuffer: noop,\n onBufferEnd: noop,\n onEnded: noop,\n onError: noop,\n onDuration: noop,\n onSeek: noop,\n onPlaybackRateChange: noop,\n onPlaybackQualityChange: noop,\n onProgress: noop,\n onClickPreview: noop,\n onEnablePIP: noop,\n onDisablePIP: noop\n};\n","var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n callPlayer: () => callPlayer,\n getConfig: () => getConfig,\n getSDK: () => getSDK,\n isBlobUrl: () => isBlobUrl,\n isMediaStream: () => isMediaStream,\n lazy: () => lazy,\n omit: () => omit,\n parseEndTime: () => parseEndTime,\n parseStartTime: () => parseStartTime,\n queryString: () => queryString,\n randomString: () => randomString,\n supportsWebKitPresentationMode: () => supportsWebKitPresentationMode\n});\nmodule.exports = __toCommonJS(utils_exports);\nvar import_react = __toESM(require(\"react\"));\nvar import_load_script = __toESM(require(\"load-script\"));\nvar import_deepmerge = __toESM(require(\"deepmerge\"));\nconst lazy = (componentImportFn) => import_react.default.lazy(async () => {\n const obj = await componentImportFn();\n return typeof obj.default === \"function\" ? obj : obj.default;\n});\nconst MATCH_START_QUERY = /[?&#](?:start|t)=([0-9hms]+)/;\nconst MATCH_END_QUERY = /[?&#]end=([0-9hms]+)/;\nconst MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nconst MATCH_NUMERIC = /^\\d+$/;\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return void 0;\n }\n const match = url.match(pattern);\n if (match) {\n const stamp = match[1];\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n return void 0;\n}\nfunction parseTimeString(stamp) {\n let seconds = 0;\n let array = MATCH_START_STAMP.exec(stamp);\n while (array !== null) {\n const [, count, period] = array;\n if (period === \"h\")\n seconds += parseInt(count, 10) * 60 * 60;\n if (period === \"m\")\n seconds += parseInt(count, 10) * 60;\n if (period === \"s\")\n seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n return seconds;\n}\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n}\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\nfunction queryString(object) {\n return Object.keys(object).map((key) => `${key}=${object[key]}`).join(\"&\");\n}\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n return null;\n}\nconst requests = {};\nconst getSDK = enableStubOn(function getSDK2(url, sdkGlobal, sdkReady = null, isLoaded = () => true, fetchScript = import_load_script.default) {\n const existingGlobal = getGlobal(sdkGlobal);\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n return new Promise((resolve, reject) => {\n if (requests[url]) {\n requests[url].push({ resolve, reject });\n return;\n }\n requests[url] = [{ resolve, reject }];\n const onLoaded = (sdk) => {\n requests[url].forEach((request) => request.resolve(sdk));\n };\n if (sdkReady) {\n const previousOnReady = window[sdkReady];\n window[sdkReady] = function() {\n if (previousOnReady)\n previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n fetchScript(url, (err) => {\n if (err) {\n requests[url].forEach((request) => request.reject(err));\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n});\nfunction getConfig(props, defaultProps) {\n return (0, import_deepmerge.default)(defaultProps.config, props.config);\n}\nfunction omit(object, ...arrays) {\n const omitKeys = [].concat(...arrays);\n const output = {};\n const keys = Object.keys(object);\n for (const key of keys) {\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n return output;\n}\nfunction callPlayer(method, ...args) {\n if (!this.player || !this.player[method]) {\n let message = `ReactPlayer: ${this.constructor.displayName} player could not call %c${method}%c \\u2013 `;\n if (!this.player) {\n message += \"The player was not available\";\n } else if (!this.player[method]) {\n message += \"The method was not available\";\n }\n console.warn(message, \"font-weight: bold\", \"\");\n return null;\n }\n return this.player[method](...args);\n}\nfunction isMediaStream(url) {\n return typeof window !== \"undefined\" && typeof window.MediaStream !== \"undefined\" && url instanceof window.MediaStream;\n}\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\nfunction supportsWebKitPresentationMode(video = document.createElement(\"video\")) {\n const notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === \"function\" && notMobile;\n}\nfunction enableStubOn(fn) {\n if (false) {\n const wrap = (...args) => wrap.stub(...args);\n wrap.stub = fn;\n return wrap;\n }\n return fn;\n}\n","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,n){var r={};for(var t in o)n.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,n){var r=n.left,t=n.right,e=n.up,a=n.down,p=n.top,i=n.bottom,s=n.mirror,l=n.opposite,u=(r?1:0)|(t?2:0)|(p||a?4:0)|(i||e?8:0)|(s?16:0)|(l?32:0)|(o?64:0);if(lookup.hasOwnProperty(u))return lookup[u];if(!s!=!(o&&l)){var d=[t,r,i,p,a,e];r=d[0],t=d[1],p=d[2],i=d[3],e=d[4],a=d[5]}var f=r||t,c=p||i||e||a,m=f||c,y=void 0,v=void 0,_=void 0,b=void 0,x=void 0,T=void 0,g=void 0,h=void 0,k=void 0,w=void 0,q=void 0,O=void 0,P=void 0,j=void 0;return o?(b=f?(t?\"-\":\"\")+\"20px\":0,x=c?(e||i?\"\":\"-\")+\"10px\":\"0\",T=(a||p?\"\":\"-\")+\"20px\",P=f?(r?\"-\":\"\")+\"2000px\":\"0\",j=c?(a||p?\"-\":\"\")+\"2000px\":\"0\"):(v=f?(r?\"-\":\"\")+\"3000px\":\"0\",_=c?(a||p?\"-\":\"\")+\"3000px\":\"0\",g=f?(t?\"-\":\"\")+\"25px\":\"0\",h=c?(e||i?\"-\":\"\")+\"25px\":\"0\",k=f?(r?\"-\":\"\")+\"10px\":\"0\",w=c?(a||p?\"-\":\"\")+\"10px\":\"0\",q=f?(t?\"-\":\"\")+\"5px\":\"0\",O=c?(e||i?\"-\":\"\")+\"5px\":\"0\"),y=m?o?\"\\n 20% {\\n transform: translate3d(\"+b+\", \"+x+\", 0);\\n }\\n \"+(c?\"40%, 45% {\\n opacity: 1;\\n transform: translate3d(0, \"+T+\", 0);\\n }\":\"\")+\"\\n to {\\n opacity: 0;\\n transform: translate3d(\"+P+\", \"+j+\", 0);\\n }\\n \":\"from, 60%, 75%, 90%, to {\\n animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\\n }\\n from {\\n opacity: 0;\\n transform: translate3d(\"+v+\", \"+_+\", 0);\\n }\\n 60% {\\n opacity: 1;\\n transform: translate3d(\"+g+\", \"+h+\", 0);\\n }\\n 75% {\\n transform: translate3d(\"+k+\", \"+w+\", 0);\\n }\\n 90% {\\n transform: translate3d(\"+q+\", \"+O+\", 0);\\n }\\n to {\\n transform: none;\\n }\":o?\"20% {\\n transform: scale3d(.9, .9, .9);\\n }\\n 50%, 55% {\\n opacity: 1;\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n to {\\n opacity: 0;\\n transform: scale3d(.3, .3, .3);\\n }\":\"from, 20%, 40%, 60%, 80%, to {\\n animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);\\n }\\n 0% {\\n opacity: 0;\\n transform: scale3d(.3, .3, .3);\\n }\\n 20% {\\n transform: scale3d(1.1, 1.1, 1.1);\\n }\\n 40% {\\n transform: scale3d(.9, .9, .9);\\n }\\n 60% {\\n opacity: 1;\\n transform: scale3d(1.03, 1.03, 1.03);\\n }\\n 80% {\\n transform: scale3d(.97, .97, .97);\\n }\\n to {\\n opacity: 1;\\n transform: scale3d(1, 1, 1);\\n }\",lookup[u]=(0,_globals.animation)(y),lookup[u]}function Bounce(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,n=o.children,r=(o.out,o.forever),t=o.timeout,e=o.duration,a=void 0===e?_globals.defaults.duration:e,p=o.delay,i=void 0===p?_globals.defaults.delay:p,s=o.count,l=void 0===s?_globals.defaults.count:s,u=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?a:t,delay:i,forever:r,count:l,style:{animationFillMode:\"both\"},reverse:u.left};return(0,_wrap2.default)(u,d,d,n)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Bounce.propTypes=propTypes,exports.default=Bounce,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.distance,t=e.left,p=e.right,a=e.up,l=e.down,i=e.top,u=e.bottom,n=e.big,s=e.mirror,d=e.opposite,_=(r?r.toString():0)+((t?1:0)|(p?2:0)|(i||l?4:0)|(u||a?8:0)|(s?16:0)|(d?32:0)|(o?64:0)|(n?128:0));if(lookup.hasOwnProperty(_))return lookup[_];var f=t||p||a||l||i||u,y=void 0,b=void 0;if(f){if(!s!=!(o&&d)){var v=[p,t,u,i,l,a];t=v[0],p=v[1],i=v[2],u=v[3],a=v[4],l=v[5]}var c=r||(n?\"2000px\":\"100%\");y=t?\"-\"+c:p?c:\"0\",b=l||i?\"-\"+c:a||u?c:\"0\"}return lookup[_]=(0,_globals.animation)((o?\"to\":\"from\")+\" {opacity: 0;\"+(f?\" transform: translate3d(\"+y+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none;} \"),lookup[_]}function Fade(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=o.children,t=(o.out,o.forever),p=o.timeout,a=o.duration,l=void 0===a?_globals.defaults.duration:a,i=o.delay,u=void 0===i?_globals.defaults.delay:i,n=o.count,s=void 0===n?_globals.defaults.count:n,d=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),_={make:make,duration:void 0===p?l:p,delay:u,forever:t,count:s,style:{animationFillMode:\"both\"},reverse:d.left};return e?(0,_wrap2.default)(d,_,_,r):_}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,distance:_propTypes.string,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Fade.propTypes=propTypes,exports.default=Fade,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,o){var t={};for(var r in e)o.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}function make(e,o){var t=o.left,r=o.right,n=o.top,p=o.bottom,i=o.x,a=o.y,s=o.mirror,l=o.opposite,u=(t?1:0)|(r||a?2:0)|(n||i?4:0)|(p?8:0)|(s?16:0)|(l?32:0)|(e?64:0);if(lookup.hasOwnProperty(u))return lookup[u];if(!s!=!(e&&l)){var d=[r,t,p,n,a,i];t=d[0],r=d[1],n=d[2],p=d[3],i=d[4],a=d[5]}var f=void 0;if(i||a||t||r||n||p){var m=i||n||p?(p?\"-\":\"\")+\"1\":\"0\",c=a||r||t?(t?\"-\":\"\")+\"1\":\"0\";f=e?\"from {\\n transform: perspective(400px);\\n }\\n 30% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, -15deg);\\n opacity: 1;\\n }\\n to {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, 90deg);\\n opacity: 0;\\n }\":\"from {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, 90deg);\\n animation-timing-function: ease-in;\\n opacity: 0;\\n }\\n 40% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, -20deg);\\n animation-timing-function: ease-in;\\n }\\n 60% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, 10deg);\\n opacity: 1;\\n }\\n 80% {\\n transform: perspective(400px) rotate3d(\"+m+\", \"+c+\", 0, -5deg);\\n }\\n to {\\n transform: perspective(400px);\\n }\"}else f=\"from {\\n transform: perspective(400px) rotate3d(0, 1, 0, -360deg);\\n animation-timing-function: ease-out;\\n opacity: \"+(e?\"1\":\"0\")+\";\\n }\\n 40% {\\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);\\n animation-timing-function: ease-out;\\n }\\n 50% {\\n transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);\\n animation-timing-function: ease-in;\\n }\\n to {\\n transform: perspective(400px);\\n animation-timing-function: ease-in;\\n opacity: \"+(e?\"0\":\"1\")+\";\\n }\";return lookup[u]=(0,_globals.animation)(f),lookup[u]}function Flip(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,o=e.children,t=(e.out,e.forever),r=e.timeout,n=e.duration,p=void 0===n?_globals.defaults.duration:n,i=e.delay,a=void 0===i?_globals.defaults.delay:i,s=e.count,l=void 0===s?_globals.defaults.count:s,u=_objectWithoutProperties(e,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===r?p:r,delay:a,forever:t,count:l,style:{animationFillMode:\"both\",backfaceVisibility:\"visible\"}};return(0,_wrap2.default)(u,d,d,o)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Flip.propTypes=propTypes,exports.default=Flip,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.mirror,n=e.opposite,a=(r?1:0)|(t?2:0)|(p?16:0)|(n?32:0)|(o?64:0);if(lookup.hasOwnProperty(a))return lookup[a];if(!p!=!(o&&n)){var i=[t,r];r=i[0],t=i[1]}var l=r?\"-100%\":t?\"100%\":\"0\",u=o?\"from {\\n opacity: 1;\\n }\\n to {\\n transform: translate3d(\"+l+\", 0, 0) skewX(30deg);\\n opacity: 0;\\n }\\n \":\"from {\\n transform: translate3d(\"+l+\", 0, 0) skewX(-30deg);\\n opacity: 0;\\n }\\n 60% {\\n transform: skewX(20deg);\\n opacity: 1;\\n }\\n 80% {\\n transform: skewX(-5deg);\\n opacity: 1;\\n }\\n to {\\n transform: none;\\n opacity: 1;\\n }\";return lookup[a]=(0,_globals.animation)(u),lookup[a]}function LightSpeed(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,n=void 0===p?_globals.defaults.duration:p,a=o.delay,i=void 0===a?_globals.defaults.delay:a,l=o.count,u=void 0===l?_globals.defaults.count:l,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?n:t,delay:i,forever:r,count:u,style:{animationFillMode:\"both\"}};s.left,s.right,s.mirror,s.opposite;return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};LightSpeed.propTypes=propTypes,exports.default=LightSpeed,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var r={};for(var o in e)t.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}function Reveal(e){function t(e){return e?_?{duration:n,delay:f,count:s,forever:d,className:_,style:{}}:y:i?{duration:void 0===o?u:o,delay:p,count:a,forever:l,className:i,style:{}}:c}var r=e.children,o=e.timeout,u=e.duration,p=e.delay,a=e.count,l=e.forever,n=e.durationOut,f=e.delayOut,s=e.countOut,d=e.foreverOut,i=e.effect,_=e.effectOut,c=e.inEffect,y=e.outEffect,O=_objectWithoutProperties(e,[\"children\",\"timeout\",\"duration\",\"delay\",\"count\",\"forever\",\"durationOut\",\"delayOut\",\"countOut\",\"foreverOut\",\"effect\",\"effectOut\",\"inEffect\",\"outEffect\"]);return(0,_wrap2.default)(O,t(!1),t(!0),r)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_Fade=require(\"./Fade\"),_Fade2=_interopRequireDefault(_Fade),propTypes={in:_propTypes.object,out:(0,_propTypes.oneOfType)([_propTypes.object,(0,_propTypes.oneOf)([!1])]),effect:_propTypes.string,effectOut:_propTypes.string,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool,durationOut:_propTypes.number,delayOut:_propTypes.number,countOut:_propTypes.number,foreverOut:_propTypes.bool},defaultProps=_extends({},_globals.defaults,{durationOut:_globals.defaults.duration,delayOut:_globals.defaults.delay,countOut:_globals.defaults.count,foreverOut:_globals.defaults.forever,inEffect:(0,_Fade2.default)(_globals.defaults),outEffect:(0,_Fade2.default)(_extends({out:!0},_globals.defaults))});Reveal.propTypes=propTypes,Reveal.defaultProps=defaultProps,exports.default=Reveal,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_slicedToArray=function(){function e(e,t){var i=[],s=!0,o=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(s=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,n=e}finally{try{!s&&a.return&&a.return()}finally{if(o)throw n}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(e[s]=i[s])}return e},_createClass=function(){function e(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,\"value\"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,i,s){return i&&e(t.prototype,i),s&&e(t,s),t}}(),_react=require(\"react\"),_react2=_interopRequireDefault(_react),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),inOut=(0,_propTypes.shape)({make:_propTypes.func,duration:_propTypes.number.isRequired,delay:_propTypes.number.isRequired,forever:_propTypes.bool,count:_propTypes.number.isRequired,style:_propTypes.object.isRequired,reverse:_propTypes.bool}),propTypes={collapse:_propTypes.bool,collapseEl:_propTypes.element,cascade:_propTypes.bool,wait:_propTypes.number,force:_propTypes.bool,disabled:_propTypes.bool,appear:_propTypes.bool,enter:_propTypes.bool,exit:_propTypes.bool,fraction:_propTypes.number,refProp:_propTypes.string,innerRef:_propTypes.func,onReveal:_propTypes.func,unmountOnExit:_propTypes.bool,mountOnEnter:_propTypes.bool,inEffect:inOut.isRequired,outEffect:(0,_propTypes.oneOfType)([inOut,(0,_propTypes.oneOf)([!1])]).isRequired,ssrReveal:_propTypes.bool,collapseOnly:_propTypes.bool,ssrFadeout:_propTypes.bool},defaultProps={fraction:.2,refProp:\"ref\"},contextTypes={transitionGroup:_propTypes.object},RevealBase=function(e){function t(e,i){_classCallCheck(this,t);var s=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,i));return s.isOn=void 0===e.when||!!e.when,s.state={collapse:e.collapse?t.getInitialCollapseStyle(e):void 0,style:{opacity:s.isOn&&!e.ssrReveal||!e.outEffect?void 0:0}},s.savedChild=!1,s.isShown=!1,_globals.observerMode?s.handleObserve=s.handleObserve.bind(s):(s.revealHandler=s.makeHandler(s.reveal),s.resizeHandler=s.makeHandler(s.resize)),s.saveRef=s.saveRef.bind(s),s}return _inherits(t,e),_createClass(t,[{key:\"saveRef\",value:function(e){this.childRef&&this.childRef(e),this.props.innerRef&&this.props.innerRef(e),this.el!==e&&(this.el=e&&\"offsetHeight\"in e?e:void 0,this.observe(this.props,!0))}},{key:\"invisible\",value:function(){this&&this.el&&(this.savedChild=!1,this.isShown||(this.setState({hasExited:!0,collapse:this.props.collapse?_extends({},this.state.collapse,{visibility:\"hidden\"}):null,style:{opacity:0}}),!_globals.observerMode&&this.props.collapse&&window.document.dispatchEvent(_globals.collapseend)))}},{key:\"animationEnd\",value:function(e,t,i){var s=this,o=i.forever,n=i.count,r=i.delay,a=i.duration;if(!o){var l=function(){s&&s.el&&(s.animationEndTimeout=void 0,e.call(s))};this.animationEndTimeout=window.setTimeout(l,r+(a+(t?a:0)*n))}}},{key:\"getDimensionValue\",value:function(){return this.el.offsetHeight+parseInt(window.getComputedStyle(this.el,null).getPropertyValue(\"margin-top\"),10)+parseInt(window.getComputedStyle(this.el,null).getPropertyValue(\"margin-bottom\"),10)}},{key:\"collapse\",value:function(e,t,i){var s=i.duration+(t.cascade?i.duration:0),o=this.isOn?this.getDimensionValue():0,n=void 0,r=void 0;if(t.collapseOnly)n=i.duration/3,r=i.delay;else{var a=s>>2,l=a>>1;n=a,r=i.delay+(this.isOn?0:s-a-l),e.style.animationDuration=s-a+(this.isOn?l:-l)+\"ms\",e.style.animationDelay=i.delay+(this.isOn?a-l:0)+\"ms\"}return e.collapse={height:o,transition:\"height \"+n+\"ms ease \"+r+\"ms\",overflow:t.collapseOnly?\"hidden\":void 0},e}},{key:\"animate\",value:function(e){if(this&&this.el&&(this.unlisten(),this.isShown!==this.isOn)){this.isShown=this.isOn;var t=!this.isOn&&e.outEffect,i=e[t?\"outEffect\":\"inEffect\"],s=\"style\"in i&&i.style.animationName||void 0,o=void 0;e.collapseOnly?o={hasAppeared:!0,hasExited:!1,style:{opacity:1}}:((e.outEffect||this.isOn)&&i.make&&(s=i.make),o={hasAppeared:!0,hasExited:!1,collapse:void 0,style:_extends({},i.style,{animationDuration:i.duration+\"ms\",animationDelay:i.delay+\"ms\",animationIterationCount:i.forever?\"infinite\":i.count,opacity:1,animationName:s}),className:i.className}),this.setState(e.collapse?this.collapse(o,e,i):o),t?(this.savedChild=_react2.default.cloneElement(this.getChild()),this.animationEnd(this.invisible,e.cascade,i)):this.savedChild=!1,this.onReveal(e)}}},{key:\"onReveal\",value:function(e){e.onReveal&&this.isOn&&(this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),e.wait?this.onRevealTimeout=window.setTimeout(e.onReveal,e.wait):e.onReveal())}},{key:\"componentWillUnmount\",value:function(){this.unlisten(),_globals.ssr&&(0,_globals.disableSsr)()}},{key:\"handleObserve\",value:function(e,t){_slicedToArray(e,1)[0].intersectionRatio>0&&(t.disconnect(),this.observer=null,this.reveal(this.props,!0))}},{key:\"observe\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.el&&_globals.observerMode){if(this.observer){if(!t)return;this.observer.disconnect()}else if(t)return;this.observer=new IntersectionObserver(this.handleObserve,{threshold:e.fraction}),this.observer.observe(this.el)}}},{key:\"reveal\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_globals.globalHide||(0,_globals.hideAll)(),this&&this.el&&(e||(e=this.props),_globals.ssr&&(0,_globals.disableSsr)(),this.isOn&&this.isShown&&void 0!==e.spy?(this.isShown=!1,this.setState({style:{}}),window.setTimeout(function(){return t.reveal(e)},200)):i||this.inViewport(e)||e.force?this.animate(e):_globals.observerMode?this.observe(e):this.listen())}},{key:\"componentDidMount\",value:function(){var e=this;if(this.el&&!this.props.disabled){this.props.collapseOnly||(\"make\"in this.props.inEffect&&this.props.inEffect.make(!1,this.props),void 0!==this.props.when&&this.props.outEffect&&\"make\"in this.props.outEffect&&this.props.outEffect.make(!0,this.props));var i=this.context.transitionGroup,s=i&&!i.isMounting?!(\"enter\"in this.props&&!1===this.props.enter):this.props.appear;return this.isOn&&((void 0!==this.props.when||void 0!==this.props.spy)&&!s||_globals.ssr&&!_globals.fadeOutEnabled&&!this.props.ssrFadeout&&this.props.outEffect&&!this.props.ssrReveal&&t.getTop(this.el)<window.pageYOffset+window.innerHeight)?(this.isShown=!0,this.setState({hasAppeared:!0,collapse:this.props.collapse?{height:this.getDimensionValue()}:this.state.collapse,style:{opacity:1}}),void this.onReveal(this.props)):_globals.ssr&&(_globals.fadeOutEnabled||this.props.ssrFadeout)&&this.props.outEffect&&t.getTop(this.el)<window.pageYOffset+window.innerHeight?(this.setState({style:{opacity:0,transition:\"opacity 1000ms 1000ms\"}}),void window.setTimeout(function(){return e.reveal(e.props,!0)},2e3)):void(this.isOn&&(this.props.force?this.animate(this.props):this.reveal(this.props)))}}},{key:\"cascade\",value:function(e){var t=this,i=void 0;i=\"string\"==typeof e?e.split(\"\").map(function(e,t){return _react2.default.createElement(\"span\",{key:t,style:{display:\"inline-block\",whiteSpace:\"pre\"}},e)}):_react2.default.Children.toArray(e);var s=this.props[this.isOn||!this.props.outEffect?\"inEffect\":\"outEffect\"],o=s.duration,n=s.reverse,r=i.length,a=2*o;this.props.collapse&&(a=parseInt(this.state.style.animationDuration,10),o=a/2);var l=n?r:0;return i=i.map(function(e){return\"object\"===(void 0===e?\"undefined\":_typeof(e))&&e?_react2.default.cloneElement(e,{style:_extends({},e.props.style,t.state.style,{animationDuration:Math.round((0,_globals.cascade)(n?l--:l++,0,r,o,a))+\"ms\"})}):e})}},{key:\"componentWillReceiveProps\",value:function(e){if(void 0!==e.when&&(this.isOn=!!e.when),e.fraction!==this.props.fraction&&this.observe(e,!0),!this.isOn&&e.onExited&&\"exit\"in e&&!1===e.exit)return void e.onExited();e.disabled||(e.collapse&&!this.props.collapse&&(this.setState({style:{},collapse:t.getInitialCollapseStyle(e)}),this.isShown=!1),e.when===this.props.when&&e.spy===this.props.spy||this.reveal(e),this.onRevealTimeout&&!this.isOn&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)))}},{key:\"getChild\",value:function(){if(this.savedChild&&!this.props.disabled)return this.savedChild;if(\"object\"===_typeof(this.props.children)){var e=_react2.default.Children.only(this.props.children);return\"type\"in e&&\"string\"==typeof e.type||\"ref\"!==this.props.refProp?e:_react2.default.createElement(\"div\",null,e)}return _react2.default.createElement(\"div\",null,this.props.children)}},{key:\"render\",value:function(){var e=void 0;e=this.state.hasAppeared?!this.props.unmountOnExit||!this.state.hasExited||this.isOn:!this.props.mountOnEnter||this.isOn;var t=this.getChild();\"function\"==typeof t.ref&&(this.childRef=t.ref);var i=!1,s=t.props,o=s.style,n=s.className,r=s.children,a=this.props.disabled?n:(this.props.outEffect?_globals.namespace:\"\")+(this.state.className?\" \"+this.state.className:\"\")+(n?\" \"+n:\"\")||void 0,l=void 0;\"function\"==typeof this.state.style.animationName&&(this.state.style.animationName=this.state.style.animationName(!this.isOn,this.props)),this.props.cascade&&!this.props.disabled&&r&&this.state.style.animationName?(i=this.cascade(r),l=_extends({},o,{opacity:1})):l=this.props.disabled?o:_extends({},o,this.state.style);var p=_extends({},this.props.props,_defineProperty({className:a,style:l},this.props.refProp,this.saveRef)),h=_react2.default.cloneElement(t,p,e?i||r:void 0);return void 0!==this.props.collapse?this.props.collapseEl?_react2.default.cloneElement(this.props.collapseEl,{style:_extends({},this.props.collapseEl.style,this.props.disabled?void 0:this.state.collapse),children:h}):_react2.default.createElement(\"div\",{style:this.props.disabled?void 0:this.state.collapse,children:h}):h}},{key:\"makeHandler\",value:function(e){var t=this,i=function(){e.call(t,t.props),t.ticking=!1};return function(){t.ticking||((0,_globals.raf)(i),t.ticking=!0)}}},{key:\"inViewport\",value:function(e){if(!this.el||window.document.hidden)return!1;var i=this.el.offsetHeight,s=window.pageYOffset-t.getTop(this.el),o=Math.min(i,window.innerHeight)*(_globals.globalHide?e.fraction:0);return s>o-window.innerHeight&&s<i-o}},{key:\"resize\",value:function(e){this&&this.el&&this.isOn&&this.inViewport(e)&&(this.unlisten(),this.isShown=this.isOn,this.setState({hasExited:!this.isOn,hasAppeared:!0,collapse:void 0,style:{opacity:this.isOn||!e.outEffect?1:0}}),this.onReveal(e))}},{key:\"listen\",value:function(){_globals.observerMode||this.isListener||(this.isListener=!0,window.addEventListener(\"scroll\",this.revealHandler,{passive:!0}),window.addEventListener(\"orientationchange\",this.revealHandler,{passive:!0}),window.document.addEventListener(\"visibilitychange\",this.revealHandler,{passive:!0}),window.document.addEventListener(\"collapseend\",this.revealHandler,{passive:!0}),window.addEventListener(\"resize\",this.resizeHandler,{passive:!0}))}},{key:\"unlisten\",value:function(){!_globals.observerMode&&this.isListener&&(window.removeEventListener(\"scroll\",this.revealHandler,{passive:!0}),window.removeEventListener(\"orientationchange\",this.revealHandler,{passive:!0}),window.document.removeEventListener(\"visibilitychange\",this.revealHandler,{passive:!0}),window.document.removeEventListener(\"collapseend\",this.revealHandler,{passive:!0}),window.removeEventListener(\"resize\",this.resizeHandler,{passive:!0}),this.isListener=!1),this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),this.animationEndTimeout&&(this.animationEndTimeout=window.clearTimeout(this.animationEndTimeout))}}],[{key:\"getInitialCollapseStyle\",value:function(e){return{height:0,visibility:e.when?void 0:\"hidden\"}}},{key:\"getTop\",value:function(e){for(;void 0===e.offsetTop;)e=e.parentNode;for(var t=e.offsetTop;e.offsetParent;t+=e.offsetTop)e=e.offsetParent;return t}}]),t}(_react2.default.Component);RevealBase.propTypes=propTypes,RevealBase.defaultProps=defaultProps,RevealBase.contextTypes=contextTypes,RevealBase.displayName=\"RevealBase\",exports.default=RevealBase,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,l=e.down,a=e.top,u=e.bottom,i=e.big,n=e.mirror,s=e.opposite,d=(r?1:0)|(t?2:0)|(a||l?4:0)|(u||p?8:0)|(n?16:0)|(s?32:0)|(o?64:0)|(i?128:0);if(lookup.hasOwnProperty(d))return lookup[d];if(!n!=!(o&&s)){var _=[t,r,u,a,l,p];r=_[0],t=_[1],a=_[2],u=_[3],p=_[4],l=_[5]}var y=i?\"2000px\":\"100%\",b=r?\"-\"+y:t?y:\"0\",f=l||a?\"-\"+y:p||u?y:\"0\";return lookup[d]=(0,_globals.animation)(\"\\n \"+(o?\"to\":\"from\")+\" {opacity: 0;transform: translate3d(\"+b+\", \"+f+\", 0) rotate3d(0, 0, 1, -120deg);}\\n\\t \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none}\\n \"),lookup[d]}function Roll(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,l=void 0===p?_globals.defaults.duration:p,a=o.delay,u=void 0===a?_globals.defaults.delay:a,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?l:t,delay:u,forever:r,count:n,style:{animationFillMode:\"both\"}};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Roll.propTypes=propTypes,exports.default=Roll,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,a=e.down,l=e.top,u=e.bottom,i=e.mirror,n=e.opposite,s=(r?1:0)|(t?2:0)|(l||a?4:0)|(u||p?8:0)|(i?16:0)|(n?32:0)|(o?64:0);if(lookup.hasOwnProperty(s))return lookup[s];if(!i!=!(o&&n)){var d=[t,r,u,l,a,p];r=d[0],t=d[1],l=d[2],u=d[3],p=d[4],a=d[5]}var f=\"-200deg\",_=\"center\";return(a||l)&&r&&(f=\"-45deg\"),((a||l)&&t||(p||u)&&r)&&(f=\"45deg\"),(p||u)&&t&&(f=\"-90deg\"),(r||t)&&(_=(r?\"left\":\"right\")+\" bottom\"),lookup[s]=(0,_globals.animation)(\"\\n \"+(o?\"to\":\"from\")+\" { opacity: 0; transform-origin: \"+_+\"; transform: rotate3d(0, 0, 1, \"+f+\");}\\n \"+(o?\"from\":\"to\")+\" { opacity: 1; transform-origin: \"+_+\"; transform: none;}\\n \"),lookup[s]}function Rotate(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,a=void 0===p?_globals.defaults.duration:p,l=o.delay,u=void 0===l?_globals.defaults.delay:l,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?a:t,delay:u,forever:r,count:n,style:{animationFillMode:\"both\"}};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Rotate.propTypes=propTypes,exports.default=Rotate,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,l=e.down,u=e.top,a=e.bottom,i=e.big,n=e.mirror,s=e.opposite,d=(r?1:0)|(t?2:0)|(u||l?4:0)|(a||p?8:0)|(n?16:0)|(s?32:0)|(o?64:0)|(i?128:0);if(lookup.hasOwnProperty(d))return lookup[d];var _=r||t||p||l||u||a,f=void 0,b=void 0;if(_){if(!n!=!(o&&s)){var y=[t,r,a,u,l,p];r=y[0],t=y[1],u=y[2],a=y[3],p=y[4],l=y[5]}var m=i?\"2000px\":\"100%\";f=r?\"-\"+m:t?m:\"0\",b=l||u?\"-\"+m:p||a?m:\"0\"}return lookup[d]=(0,_globals.animation)((o?\"to\":\"from\")+\" {\"+(_?\" transform: translate3d(\"+f+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {transform: none;} \"),lookup[d]}function Slide(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,l=void 0===p?_globals.defaults.duration:p,u=o.delay,a=void 0===u?_globals.defaults.delay:u,i=o.count,n=void 0===i?_globals.defaults.count:i,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?l:t,delay:a,forever:r,count:n,style:{animationFillMode:\"both\"},reverse:s.left};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Slide.propTypes=propTypes,exports.default=Slide,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.left,t=e.right,p=e.up,n=e.down,a=e.top,i=e.bottom,l=e.mirror,u=e.opposite,s=(r?1:0)|(t?2:0)|(a||n?4:0)|(i||p?8:0)|(l?16:0)|(u?32:0)|(o?64:0);if(lookup.hasOwnProperty(s))return lookup[s];if(!l!=!(o&&u)){var d=[t,r,i,a,n,p];r=d[0],t=d[1],a=d[2],i=d[3],p=d[4],n=d[5]}var f=r||t,c=a||i||p||n,m=f||c,y=void 0,b=void 0,_=void 0,v=void 0,T=void 0;return m?o?(b=f?(r?\"\":\"-\")+\"42px\":\"0\",_=c?(n||a?\"-\":\"\")+\"60px\":\"0\",v=f?(t?\"\":\"-\")+\"2000px\":\"0\",T=c?(p||i?\"\":\"-\")+\"2000px\":\"0\",y=\"40% {\\n opacity: 1;\\n transform: scale3d(.475, .475, .475) translate3d(\"+b+\", \"+_+\", 0);\\n }\\n to {\\n opacity: 0;\\n transform: scale(.1) translate3d(\"+v+\", \"+T+\", 0);\\n transform-origin: \"+(c?\"center bottom\":(r?\"left\":\"right\")+\" center\")+\";\\n }\"):(b=f?(r?\"-\":\"\")+\"1000px\":\"0\",_=c?(n||a?\"-\":\"\")+\"1000px\":\"0\",v=f?(t?\"-\":\"\")+\"10px\":\"0\",T=c?(p||i?\"-\":\"\")+\"60px\":\"0\",y=\"from {\\n opacity: 0;\\n transform: scale3d(.1, .1, .1) translate3d(\"+b+\", \"+_+\", 0);\\n animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);\\n }\\n 60% {\\n opacity: 1;\\n transform: scale3d(.475, .475, .475) translate3d(\"+v+\", \"+T+\", 0);\\n animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);\\n }\"):y=(o?\"to\":\"from\")+\" {opacity: 0; transform: scale3d(.1, .1, .1);} \"+(o?\"from\":\"to\")+\" { opacity: 1; transform: none;}\",lookup[s]=(0,_globals.animation)(y),lookup[s]}function Zoom(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=o.children,r=(o.out,o.forever),t=o.timeout,p=o.duration,n=void 0===p?_globals.defaults.duration:p,a=o.delay,i=void 0===a?_globals.defaults.delay:a,l=o.count,u=void 0===l?_globals.defaults.count:l,s=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),d={make:make,duration:void 0===t?n:t,delay:i,forever:r,count:u,style:{animationFillMode:\"both\"},reverse:s.left};return(0,_wrap2.default)(s,d,d,e)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),_globals=require(\"./globals\"),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Zoom.propTypes=propTypes,exports.default=Zoom,module.exports=exports.default;","\"use strict\";function insertRule(e){try{return sheet.insertRule(e,sheet.cssRules.length)}catch(e){console.warn(\"react-reveal - animation failed\")}}function cascade(e,n,t,o,r){var s=Math.log(o),i=Math.log(r),a=(i-s)/(t-n);return Math.exp(s+a*(e-n))}function animation(e){if(!sheet)return\"\";var n=\"@keyframes \"+(name+counter)+\"{\"+e+\"}\",t=effectMap[e];return t?\"\"+name+t:(sheet.insertRule(n,sheet.cssRules.length),effectMap[e]=counter,\"\"+name+counter++)}function hideAll(){globalHide||(exports.globalHide=globalHide=!0,window.removeEventListener(\"scroll\",hideAll,!0),insertRule(\".\"+namespace+\" { opacity: 0; }\"),window.removeEventListener(\"orientationchange\",hideAll,!0),window.document.removeEventListener(\"visibilitychange\",hideAll))}function config(e){var n=e.ssrFadeout;exports.fadeOutEnabled=fadeOutEnabled=n}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.insertRule=insertRule,exports.cascade=cascade,exports.animation=animation,exports.hideAll=hideAll,exports.default=config;var namespace=exports.namespace=\"react-reveal\",defaults=exports.defaults={duration:1e3,delay:0,count:1},ssr=exports.ssr=!0,observerMode=exports.observerMode=!1,raf=exports.raf=function(e){return window.setTimeout(e,66)},disableSsr=exports.disableSsr=function(){return exports.ssr=ssr=!1},fadeOutEnabled=exports.fadeOutEnabled=!1,ssrFadeout=exports.ssrFadeout=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return exports.fadeOutEnabled=fadeOutEnabled=e},globalHide=exports.globalHide=!1,ie10=exports.ie10=!1,collapseend=exports.collapseend=void 0,counter=1,effectMap={},sheet=!1,name=namespace+\"-\"+Math.floor(1e15*Math.random())+\"-\";if(\"undefined\"!=typeof window&&\"nodejs\"!==window.name&&window.document&&\"undefined\"!=typeof navigator){exports.observerMode=observerMode=\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype&&/\\{\\s*\\[native code\\]\\s*\\}/.test(\"\"+IntersectionObserver),exports.raf=raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||raf,exports.ssr=ssr=window.document.querySelectorAll(\"div[data-reactroot]\").length>0,-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(exports.ie10=ie10=!0),ssr&&\"performance\"in window&&\"timing\"in window.performance&&\"domContentLoadedEventEnd\"in window.performance.timing&&window.performance.timing.domLoading&&Date.now()-window.performance.timing.domLoading<300&&(exports.ssr=ssr=!1),ssr&&window.setTimeout(disableSsr,1500),observerMode||(exports.collapseend=collapseend=document.createEvent(\"Event\"),collapseend.initEvent(\"collapseend\",!0,!0));var element=document.createElement(\"style\");document.head.appendChild(element),element.sheet&&element.sheet.cssRules&&element.sheet.insertRule&&(sheet=element.sheet,window.addEventListener(\"scroll\",hideAll,!0),window.addEventListener(\"orientationchange\",hideAll,!0),window.document.addEventListener(\"visibilitychange\",hideAll))}","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(exports,\"__esModule\",{value:!0});var _Reveal=require(\"./Reveal\");Object.defineProperty(exports,\"default\",{enumerable:!0,get:function(){return _interopRequireDefault(_Reveal).default}});var _Fade=require(\"./Fade\");Object.defineProperty(exports,\"Fade\",{enumerable:!0,get:function(){return _interopRequireDefault(_Fade).default}});var _Bounce=require(\"./Bounce\");Object.defineProperty(exports,\"Bounce\",{enumerable:!0,get:function(){return _interopRequireDefault(_Bounce).default}});var _Roll=require(\"./Roll\");Object.defineProperty(exports,\"Roll\",{enumerable:!0,get:function(){return _interopRequireDefault(_Roll).default}});var _Slide=require(\"./Slide\");Object.defineProperty(exports,\"Slide\",{enumerable:!0,get:function(){return _interopRequireDefault(_Slide).default}});var _Flip=require(\"./Flip\");Object.defineProperty(exports,\"Flip\",{enumerable:!0,get:function(){return _interopRequireDefault(_Flip).default}}),Object.defineProperty(exports,\"Reveal\",{enumerable:!0,get:function(){return _interopRequireDefault(_Reveal).default}});var _Rotate=require(\"./Rotate\");Object.defineProperty(exports,\"Rotate\",{enumerable:!0,get:function(){return _interopRequireDefault(_Rotate).default}});var _LightSpeed=require(\"./LightSpeed\");Object.defineProperty(exports,\"LightSpeed\",{enumerable:!0,get:function(){return _interopRequireDefault(_LightSpeed).default}});var _Zoom=require(\"./Zoom\");Object.defineProperty(exports,\"Zoom\",{enumerable:!0,get:function(){return _interopRequireDefault(_Zoom).default}});","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function wrap(e,t,a,r){return\"in\"in e&&(e.when=e.in),_react2.default.Children.count(r)<2?_react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r})):(r=_react2.default.Children.map(r,function(r){return _react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r}))}),\"Fragment\"in _react2.default?_react2.default.createElement(_react2.default.Fragment,null,r):_react2.default.createElement(\"span\",null,r))}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r])}return e};exports.default=wrap;var _react=require(\"react\"),_react2=_interopRequireDefault(_react),_RevealBase=require(\"./RevealBase\"),_RevealBase2=_interopRequireDefault(_RevealBase);module.exports=exports.default;","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PrevArrow = exports.NextArrow = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar PrevArrow = exports.PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n var _super = _createSuper(PrevArrow);\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n return _super.apply(this, arguments);\n }\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n return prevArrow;\n }\n }]);\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\nvar NextArrow = exports.NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n var _super2 = _createSuper(NextArrow);\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n return _super2.apply(this, arguments);\n }\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n return nextArrow;\n }\n }]);\n return NextArrow;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true,\n asNavFor: null\n};\nvar _default = exports[\"default\"] = defaultProps;","\"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar getDotCount = function getDotCount(spec) {\n var dots;\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n return dots;\n};\nvar Dots = exports.Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n var _super = _createSuper(Dots);\n function Dots() {\n _classCallCheck(this, Dots);\n return _super.apply(this, arguments);\n }\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n var _leftBound = rightBound - (slidesToScroll - 1);\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n return Dots;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _slider = _interopRequireDefault(require(\"./slider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nvar _default = exports[\"default\"] = _slider[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = exports[\"default\"] = initialState;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nvar _track = require(\"./track\");\nvar _dots = require(\"./dots\");\nvar _arrows = require(\"./arrows\");\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar InnerSlider = exports.InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n var _super = _createSuper(InnerSlider);\n function InnerSlider(props) {\n var _this;\n _classCallCheck(this, InnerSlider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n _this.ro.observe(_this.list);\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n _this.callbackTimers = [];\n }\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n _this.ro.disconnect();\n });\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n _this.props.onReInit && _this.props.onReInit();\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n _this.adaptHeight();\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n var setTrackStyle = _this.didPropsChange(prevProps);\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n _this.debouncedResize();\n });\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node);\n // prevent warning: setting state on unmounted component (server side rendering)\n if (!isTrackMounted) return;\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n });\n // animating state should be cleared while resizing, otherwise autoplay stops working\n _this.setState({\n animating: false\n });\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n _this.setState(updatedState, callback);\n });\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n return {\n trackStyle: _trackStyle\n };\n }\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n image.onclick = function (e) {\n prevClickHandler(e);\n image.parentNode.focus();\n };\n }\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n var currentSlide = _this.state.currentSlide;\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n _this.props.autoplay && _this.autoPlay(\"update\");\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n nodes[0] && nodes[0].focus();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n window.ontouchmove = preventDefault;\n });\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n _this.setState(state);\n });\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n _this.setState(state);\n if (triggerSlideHandler === undefined) return;\n _this.slideHandler(triggerSlideHandler);\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n _this.clickable = true;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n _this.slideHandler(nextIndex);\n });\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n var autoplaying = _this.state.autoplaying;\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n var autoplaying = _this.state.autoplaying;\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n var verticalHeightStyle = null;\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n var centerPaddingStyle = null;\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n var ssrState = _this.ssrInit();\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n continue;\n }\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n return InnerSlider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _innerSlider = require(\"./inner-slider\");\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\nvar Slider = exports[\"default\"] = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n var _super = _createSuper(Slider);\n function Slider(props) {\n var _this;\n _classCallCheck(this, Slider);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n });\n // sort them in increasing order of their numerical value\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n }\n // when not using server side rendering\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n });\n\n // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var settings;\n var newProps;\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n }\n\n // force scrolling by one if centerMode is on\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n settings.slidesToScroll = 1;\n }\n // force showing one slide and scrolling by one if the fade mode is on\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n }\n\n // makes sure that children is an array, even when there is only 1 child\n var children = _react[\"default\"].Children.toArray(this.props.children);\n\n // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n return !!child;\n });\n\n // rows and slidesPerRow logic is handled here\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n var newChildren = [];\n var currentWidth = null;\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n settings.unslick = true;\n }\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, (0, _innerSliderUtils.filterSettings)(settings)), newChildren);\n }\n }]);\n return Slider;\n}(_react[\"default\"].Component);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n slickCloned = index < 0 || index >= spec.slideCount;\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n var focusedSlide;\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n if (spec.fade) {\n style.position = \"relative\";\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n };\n\n // in case of lazyLoad, whether or not we want to fetch the slide\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n // push a cloned element of the desired slide\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n\n // if slide needs to be precloned or postcloned\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec)) {\n key = -preCloneNo;\n if (key >= startIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n key = childrenCount + index;\n if (key < endIndex) {\n child = elem;\n }\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n });\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\nvar Track = exports.Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n var _super = _createSuper(Track);\n function Track() {\n var _this;\n _classCallCheck(this, Track);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n return _this;\n }\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n return Track;\n}(_react[\"default\"].PureComponent);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkSpecKeys = exports.checkNavigable = exports.changeSlide = exports.canUseDOM = exports.canGoNext = void 0;\nexports.clamp = clamp;\nexports.extractObject = void 0;\nexports.filterSettings = filterSettings;\nexports.validSettings = exports.swipeStart = exports.swipeMove = exports.swipeEnd = exports.slidesOnRight = exports.slidesOnLeft = exports.slideHandler = exports.siblingDirection = exports.safePreventDefault = exports.lazyStartIndex = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.keyHandler = exports.initializedState = exports.getWidth = exports.getTrackLeft = exports.getTrackCSS = exports.getTrackAnimateCSS = exports.getTotalSlides = exports.getSwipeDirection = exports.getSlideCount = exports.getRequiredLazySlides = exports.getPreClones = exports.getPostClones = exports.getOnDemandLazySlides = exports.getNavigableIndexes = exports.getHeight = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _defaultProps = _interopRequireDefault(require(\"../default-props\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\nvar safePreventDefault = exports.safePreventDefault = function safePreventDefault(event) {\n var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n if (!passiveEvents.includes(event._reactName)) {\n event.preventDefault();\n }\n};\nvar getOnDemandLazySlides = exports.getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n return onDemandSlides;\n};\n\n// return list of slides that need to be present\nvar getRequiredLazySlides = exports.getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n return requiredSlides;\n};\n\n// startIndex that needs to be present\nvar lazyStartIndex = exports.lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nvar lazyEndIndex = exports.lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\nvar lazySlidesOnLeft = exports.lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nvar lazySlidesOnRight = exports.lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nvar getWidth = exports.getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\nvar getHeight = exports.getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\nvar getSwipeDirection = exports.getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n return \"vertical\";\n};\n\n// whether or not we can go next\nvar canGoNext = exports.canGoNext = function canGoNext(spec) {\n var canGo = true;\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nvar extractObject = exports.extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n};\n\n// get initialized state\nvar initializedState = exports.initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n return state;\n};\nvar slideHandler = exports.slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n var lazyLoadedList = spec.lazyLoadedList;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList = lazyLoadedList.concat(animationSlide);\n }\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n if (lazyLoad) {\n lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n }\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n return {\n state: state,\n nextState: nextState\n };\n};\nvar changeSlide = exports.changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n return targetSlide;\n};\nvar keyHandler = exports.keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\nvar swipeStart = exports.swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && safePreventDefault(e);\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\nvar swipeMove = exports.swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return safePreventDefault(e);\n if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n if (!infinite) {\n if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n safePreventDefault(e);\n }\n return state;\n};\nvar swipeEnd = exports.swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n if (!dragging) {\n if (swipe) safePreventDefault(e);\n return {};\n }\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n // reset the state of touch related state variables.\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n if (scrolling) {\n return state;\n }\n if (!touchObject.swipeLength) {\n return state;\n }\n if (touchObject.swipeLength > minSwipe) {\n safePreventDefault(e);\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n default:\n slideCount = activeSlide;\n }\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n return state;\n};\nvar getNavigableIndexes = exports.getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n return indexes;\n};\nvar checkNavigable = exports.checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n prevNavigable = navigables[n];\n }\n }\n return index;\n};\nvar getSlideCount = exports.getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n return true;\n });\n if (!swipedSlide) {\n return 0;\n }\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\nvar checkSpecKeys = exports.checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\nvar getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight;\n\n // Fallback for IE8\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n return style;\n};\nvar getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec);\n // useCSS is true by default so it can be undefined\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n return style;\n};\nvar getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n var slidesToOffset = 0;\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n }\n // shift current slide to center of the frame\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n return targetLeft;\n};\nvar getPreClones = exports.getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nvar getPostClones = exports.getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n return spec.slideCount;\n};\nvar getTotalSlides = exports.getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nvar siblingDirection = exports.siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n return \"left\";\n }\n};\nvar slidesOnRight = exports.slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n if (rtl) {\n return 0;\n }\n return slidesToShow - 1;\n};\nvar slidesOnLeft = exports.slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n if (rtl) {\n return slidesToShow - 1;\n }\n return 0;\n};\nvar canUseDOM = exports.canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nvar validSettings = exports.validSettings = Object.keys(_defaultProps[\"default\"]);\nfunction filterSettings(settings) {\n return validSettings.reduce(function (acc, settingName) {\n if (settings.hasOwnProperty(settingName)) {\n acc[settingName] = settings[settingName];\n }\n return acc;\n }, {});\n}","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\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<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\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 = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\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(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","function shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqualArrays, shallowEqualObjects };\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/*!\n* sweetalert2 v11.14.1\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n }\n function _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n function _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n }\n function _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n }\n function _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n }\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n const globalState = {};\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise<void>}\n */\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const swalPrefix = 'swal2-';\n\n /**\n * @typedef {Record<SwalClass, string>} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record<SwalIcon, string>} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n const classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n const swalClasses = classNames.reduce((acc, className) => {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n const icons = ['success', 'warning', 'info', 'question', 'error'];\n const iconTypes = icons.reduce((acc, icon) => {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n const consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n const warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n const error = message => {\n console.error(`${consolePrefix} ${message}`);\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n const previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\n const warnAboutDeprecation = function (deprecatedParam) {\n let useInstead = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release.${useInstead ? ` Use \"${useInstead}\" instead.` : ''}`);\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n /**\n * @param {any} arg\n * @returns {Promise<any>}\n */\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n const getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n const elementByClass = className => {\n return elementBySelector(`.${className}`);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n const getPopup = () => elementByClass(swalClasses.popup);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIcon = () => elementByClass(swalClasses.icon);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTitle = () => elementByClass(swalClasses.title);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getImage = () => elementByClass(swalClasses.image);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));\n\n /**\n * @returns {HTMLElement | null}\n */\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getActions = () => elementByClass(swalClasses.actions);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getFooter = () => elementByClass(swalClasses.footer);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getCloseButton = () => elementByClass(swalClasses.close);\n\n // https://github.com/jkup/focusable/blob/master/index.js\n const focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`;\n /**\n * @returns {HTMLElement[]}\n */\n const getFocusableElements = () => {\n const popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf<HTMLElement>} */\n const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf<HTMLElement>} */\n const otherFocusableElements = popup.querySelectorAll(focusable);\n const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n };\n\n /**\n * @returns {boolean}\n */\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n const isToast = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n const isLoading = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, `text/html`);\n const head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n const body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof customClass}\"`);\n return;\n }\n addClass(elem, customClass);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n const getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n case 'radio':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n const focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n const applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(value)}`) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : value);\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n if (!elem) {\n return;\n }\n elem.style.display = display;\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n const hide = elem => {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n const showWhenInnerHtmlPresent = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(() => {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement | null} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n /**\n * @returns {boolean}\n */\n const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const sweetHTML = `\n <div aria-labelledby=\"${swalClasses.title}\" aria-describedby=\"${swalClasses['html-container']}\" class=\"${swalClasses.popup}\" tabindex=\"-1\">\n <button type=\"button\" class=\"${swalClasses.close}\"></button>\n <ul class=\"${swalClasses['progress-steps']}\"></ul>\n <div class=\"${swalClasses.icon}\"></div>\n <img class=\"${swalClasses.image}\" />\n <h2 class=\"${swalClasses.title}\" id=\"${swalClasses.title}\"></h2>\n <div class=\"${swalClasses['html-container']}\" id=\"${swalClasses['html-container']}\"></div>\n <input class=\"${swalClasses.input}\" id=\"${swalClasses.input}\" />\n <input type=\"file\" class=\"${swalClasses.file}\" />\n <div class=\"${swalClasses.range}\">\n <input type=\"range\" />\n <output></output>\n </div>\n <select class=\"${swalClasses.select}\" id=\"${swalClasses.select}\"></select>\n <div class=\"${swalClasses.radio}\"></div>\n <label class=\"${swalClasses.checkbox}\">\n <input type=\"checkbox\" id=\"${swalClasses.checkbox}\" />\n <span class=\"${swalClasses.label}\"></span>\n </label>\n <textarea class=\"${swalClasses.textarea}\" id=\"${swalClasses.textarea}\"></textarea>\n <div class=\"${swalClasses['validation-message']}\" id=\"${swalClasses['validation-message']}\"></div>\n <div class=\"${swalClasses.actions}\">\n <div class=\"${swalClasses.loader}\"></div>\n <button type=\"button\" class=\"${swalClasses.confirm}\"></button>\n <button type=\"button\" class=\"${swalClasses.deny}\"></button>\n <button type=\"button\" class=\"${swalClasses.cancel}\"></button>\n </div>\n <div class=\"${swalClasses.footer}\"></div>\n <div class=\"${swalClasses['timer-progress-bar-container']}\">\n <div class=\"${swalClasses['timer-progress-bar']}\"></div>\n </div>\n </div>\n`.replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n const resetValidationMessage$1 = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n const range = popup.querySelector(`.${swalClasses.range} input`);\n /** @type {HTMLOutputElement} */\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n const animationEndEvent = (() => {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n const testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n })();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[`show${buttonName}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[`grow-${grow}`]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// <reference path=\"../../../../sweetalert2.d.ts\"/>\n\n\n /** @type {InputClass[]} */\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderInput = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const showInput = params => {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got \"${params.input}\"`);\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n const setAttributes = (inputClass, inputAttributes) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setCustomClass = params => {\n if (!params.input) {\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\n const getInputContainer = inputType => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`;\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n }\n };\n\n /** @type {Record<SweetAlertInput, (input: Input | HTMLElement, params: SweetAlertOptions) => Input>} */\n const renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = (select, params) => {\n select.textContent = '';\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder || params.inputLabel);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n const textareaResizeHandler = () => {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = `${textareaWidth}px`;\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const applyStyles = (icon, params) => {\n for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf<HTMLElement>} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n const successIconHtml = `\n <div class=\"swal2-success-circular-line-left\"></div>\n <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n <div class=\"swal2-success-circular-line-right\"></div>\n`;\n const errorIconHtml = `\n <span class=\"swal2-x-mark\">\n <span class=\"swal2-x-mark-line-left\"></span>\n <span class=\"swal2-x-mark-line-right\"></span>\n </span>\n`;\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setContent = (icon, params) => {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n let oldContent = icon.innerHTML;\n let newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n const iconContent = content => `<div class=\"${swalClasses['icon-content']}\">${content}</div>`;\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderImage = (instance, params) => {\n const image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n const loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n const addClasses$1 = (popup, params) => {\n const showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[`icon-${params.icon}`]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n const {\n progressSteps,\n currentProgressStep\n } = params;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderTitle = (instance, params) => {\n const title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n const popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n globalState.eventEmitter.emit('didRender', popup);\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n const isVisible = () => {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n const clickConfirm = () => {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n const clickDeny = () => {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n const clickCancel = () => {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record<DismissReason, DismissReason>} */\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n const addKeydownHandler = (globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n const setFocus = (index, increment) => {\n var _dom$getPopup;\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n const keydownHandler = (innerParams, event, dismissWith) => {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n const handleEnter = (event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n const input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n const handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n const handleArrows = key => {\n const actions = getActions();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n const buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (let i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n const handleEsc = (event, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const container = getContainer();\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n const isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n const iOSfix = () => {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = `${offset * -1}px`;\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n const lockBodyScroll = () => {\n const container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n const htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n let previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n const replaceScrollbarWithPadding = initialBodyOverflow => {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;\n }\n };\n const undoReplaceScrollbarWithPadding = () => {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = `${previousBodyPadding}px`;\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n const triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n globalState.eventEmitter.emit('willClose', popup);\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n globalState.eventEmitter.emit('didClose');\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n const getRadioValue = input => input.checked ? input.value : null;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n const getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record<string, any>} inputOptions\n */\n const processInputOptions = inputOptions => {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(`Error in inputValue promise: ${err}`);\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n const select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // <optgroup> spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a <optgroup>\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an <optgroup>\n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of <option>\n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n }\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateRadioOptions(popup, inputOptions, params) {\n const radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(inputOption => {\n const radioValue = inputOption[0];\n const radioLabel = inputOption[1];\n const radioInput = document.createElement('input');\n const radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n const label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n const radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n }\n\n /**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {Record<string, any>} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\n const formatInputOptions = inputOptions => {\n /** @type {InputOptionFlattened[]} */\n const result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach((value, key) => {\n let valueFormatted = value;\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n };\n\n /**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\n const isSelected = (optionValue, inputValue) => {\n return !!inputValue && inputValue.toString() === optionValue.toString();\n };\n\n /**\n * @param {SweetAlert} instance\n */\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n */\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} dismissWith\n */\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\n const handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(`The \"input\" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);\n return;\n }\n const input = instance.getInput();\n const inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\n const handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error => rejectWith(instance || undefined, error));\n } else {\n instance.close({\n isDenied: true,\n value\n });\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {any} value\n */\n const succeedWith = (instance, value) => {\n instance.close({\n isConfirmed: true,\n value\n });\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\n const rejectWith = (instance, error) => {\n instance.rejectPromise(error);\n };\n\n /**\n *\n * @param {SweetAlert} instance\n * @param {any} value\n */\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error => rejectWith(instance || undefined, error));\n } else {\n succeedWith(instance, value);\n }\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n */\n function getInput() {\n const innerParams = privateProps.innerParams.get(this);\n const domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\n */\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n /**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\n function setInputDisabled(input, disabled) {\n const popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf<HTMLInputElement>} */\n const radios = popup.querySelectorAll(`[name=\"${swalClasses.radio}\"]`);\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n /**\n * Enable all the buttons\n * @this {SweetAlert}\n */\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n\n /**\n * Disable all the buttons\n * @this {SweetAlert}\n */\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n\n /**\n * Enable the input field\n * @this {SweetAlert}\n */\n function enableInput() {\n setInputDisabled(this.getInput(), false);\n }\n\n /**\n * Disable the input field\n * @this {SweetAlert}\n */\n function disableInput() {\n setInputDisabled(this.getInput(), true);\n }\n\n /**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\n */\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n const input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n }\n\n /**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\n function resetValidationMessage() {\n const domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n const input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n animation: true,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n\n /** @type {Record<string, string | undefined>} */\n const deprecatedParams = {\n allowEnterKey: undefined\n };\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n /**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n\n /**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n\n /**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n /**\n * @param {string} param\n */\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`);\n }\n };\n\n /**\n * @param {string} param\n */\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`);\n }\n };\n\n /**\n * @param {string} param\n */\n const checkIfParamIsDeprecated = param => {\n const isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n };\n\n /**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\n const showWarningsForParams = params => {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n for (const param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n };\n\n /**\n * Updates popup parameters.\n *\n * @param {SweetAlertOptions} params\n */\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);\n return;\n }\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n const filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(`Invalid parameter to update: ${param}`);\n }\n });\n return validUpdatableParams;\n };\n\n /**\n * Dispose the current SweetAlert2 instance\n */\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n globalState.eventEmitter.emit('didDestroy');\n disposeSwal(this);\n }\n\n /**\n * @param {SweetAlert} instance\n */\n const disposeSwal = instance => {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n };\n\n /**\n * @param {SweetAlert} instance\n */\n const disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n delete instance.isAwaitingPromise;\n // Unset instance methods\n delete instance.disableButtons;\n delete instance.enableButtons;\n delete instance.getInput;\n delete instance.disableInput;\n delete instance.enableInput;\n delete instance.hideLoading;\n delete instance.disableLoading;\n delete instance.showValidationMessage;\n delete instance.resetValidationMessage;\n delete instance.close;\n delete instance.closePopup;\n delete instance.closeModal;\n delete instance.closeToast;\n delete instance.rejectPromise;\n delete instance.update;\n delete instance._destroy;\n }\n };\n\n /**\n * @param {object} obj\n * @param {SweetAlert} instance\n */\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n });\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n const handlePopupClick = (innerParams, domCache, dismissWith) => {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n const handleToastClick = (innerParams, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n const isAnyButtonShown = innerParams => {\n return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n };\n let ignoreOutsideClick = false;\n\n /**\n * @param {DomCache} domCache\n */\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = () => {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {DomCache} domCache\n */\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = e => {\n // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n if (e.target === domCache.container) {\n e.preventDefault();\n }\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = () => {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\n const handleModalClick = (innerParams, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n const argsToParams = args => {\n const params = {};\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(`Unexpected type of ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`);\n }\n });\n }\n return params;\n };\n\n /**\n * Main method to create a new SweetAlert2 popup\n *\n * @param {...SweetAlertOptions} args\n * @returns {Promise<SweetAlertResult>}\n */\n function fire() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new this(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n }\n // @ts-ignore\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\n const increaseTimer = ms => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\n const isTimerRunning = () => {\n return !!(globalState.timeout && globalState.timeout.isRunning());\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n\n /**\n * @param {string} attr\n */\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n const bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n // Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957\n\n class EventEmitter {\n constructor() {\n /** @type {Events} */\n this.events = {};\n }\n\n /**\n * @param {string} eventName\n * @returns {EventHandlers}\n */\n _getHandlersByEventName(eventName) {\n if (typeof this.events[eventName] === 'undefined') {\n // not Set because we need to keep the FIFO order\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334\n this.events[eventName] = [];\n }\n return this.events[eventName];\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n on(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n if (!currentHandlers.includes(eventHandler)) {\n currentHandlers.push(eventHandler);\n }\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n once(eventName, eventHandler) {\n var _this = this;\n /**\n * @param {Array} args\n */\n const onceFn = function () {\n _this.removeListener(eventName, onceFn);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n eventHandler.apply(_this, args);\n };\n this.on(eventName, onceFn);\n }\n\n /**\n * @param {string} eventName\n * @param {Array} args\n */\n emit(eventName) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n this._getHandlersByEventName(eventName).forEach(\n /**\n * @param {EventHandler} eventHandler\n */\n eventHandler => {\n try {\n eventHandler.apply(this, args);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n removeListener(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n const index = currentHandlers.indexOf(eventHandler);\n if (index > -1) {\n currentHandlers.splice(index, 1);\n }\n }\n\n /**\n * @param {string} eventName\n */\n removeAllListeners(eventName) {\n if (this.events[eventName] !== undefined) {\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222\n this.events[eventName].length = 0;\n }\n }\n reset() {\n this.events = {};\n }\n }\n\n globalState.eventEmitter = new EventEmitter();\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n const on = (eventName, eventHandler) => {\n globalState.eventEmitter.on(eventName, eventHandler);\n };\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n const once = (eventName, eventHandler) => {\n globalState.eventEmitter.once(eventName, eventHandler);\n };\n\n /**\n * @param {string} [eventName]\n * @param {EventHandler} [eventHandler]\n */\n const off = (eventName, eventHandler) => {\n // Remove all handlers for all events\n if (!eventName) {\n globalState.eventEmitter.reset();\n return;\n }\n if (eventHandler) {\n // Remove a specific handler\n globalState.eventEmitter.removeListener(eventName, eventHandler);\n } else {\n // Remove all handlers for a specific event\n globalState.eventEmitter.removeAllListeners(eventName);\n }\n };\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n off: off,\n on: on,\n once: once,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n });\n\n class Timer {\n /**\n * @param {Function} callback\n * @param {number} delay\n */\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n increase(n) {\n const running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n isRunning() {\n return this.running;\n }\n }\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\n const getSwalParams = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n if (typeof defaultParams[paramName] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\n const getSwalFunctionParams = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(param => {\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n result[paramName] = new Function(`return ${value}`)();\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\n const getSwalButtons = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n return;\n }\n result[`${type}ButtonText`] = button.innerHTML;\n result[`show${capitalizeFirstLetter(type)}Button`] = true;\n if (button.hasAttribute('color')) {\n result[`${type}ButtonColor`] = button.getAttribute('color');\n }\n if (button.hasAttribute('aria-label')) {\n result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Pick<SweetAlertOptions, 'imageUrl' | 'imageWidth' | 'imageHeight' | 'imageAlt'>}\n */\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src') || undefined;\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width') || undefined;\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height') || undefined;\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt') || undefined;\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\n const getSwalInput = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement | null} */\n const input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n if (!optionValue) {\n return;\n }\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {Record<string, any>}\n */\n const getSwalStringParams = (templateContent, paramNames) => {\n /** @type {Record<string, any>} */\n const result = {};\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement | null} */\n const tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n };\n\n /**\n * @param {DocumentFragment} templateContent\n */\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(`Unrecognized element <${tagName}>`);\n }\n });\n };\n\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n const showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([`Unrecognized attribute \"${attribute.name}\" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);\n }\n });\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n globalState.eventEmitter.emit('willOpen', popup);\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n globalState.eventEmitter.emit('didOpen', popup);\n removeClass(container, swalClasses['no-transition']);\n };\n\n /**\n * @param {AnimationEvent} event\n */\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n if (event.target !== popup || !animationEndEvent) {\n return;\n }\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n /**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n const addClasses = (container, popup, params) => {\n addClass(container, params.showClass.backdrop);\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup);\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n }\n\n /**\n * @param {SweetAlertOptions} params\n */\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n function setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with <br> in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('<br />');\n }\n init(params);\n }\n\n /** @type {SweetAlert} */\n let currentInstance;\n var _promise = /*#__PURE__*/new WeakMap();\n class SweetAlert {\n /**\n * @param {...any} args\n * @this {SweetAlert}\n */\n constructor() {\n /**\n * @type {Promise<SweetAlertResult>}\n */\n _classPrivateFieldInitSpec(this, _promise, void 0);\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly<SweetAlertOptions>} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n }\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n const {\n isAwaitingPromise\n } = globalState.currentInstance;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n then(onFulfilled) {\n return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n }\n finally(onFinally) {\n return _classPrivateFieldGet2(_promise, this).finally(onFinally);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise}\n */\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n const dismissWith = dismiss => {\n instance.close({\n isDismissed: true,\n dismiss\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = () => {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = () => {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = () => {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = () => {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n /**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n };\n\n /**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n const setupTimer = (globalState, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n /**\n * Initialize focus in the popup:\n *\n * 1. If `toast` is `true`, don't steal focus from the document.\n * 2. Else if there is an [autofocus] element, focus it.\n * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n * 6. Else focus the first focusable element in a popup (if any).\n *\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n if (!callIfFunction(innerParams.allowEnterKey)) {\n warnAboutDeprecation('allowEnterKey');\n blurActiveElement();\n return;\n }\n if (focusAutofocus(domCache)) {\n return;\n }\n if (focusButton(domCache, innerParams)) {\n return;\n }\n setFocus(-1, 1);\n };\n\n /**\n * @param {DomCache} domCache\n * @returns {boolean}\n */\n const focusAutofocus = domCache => {\n const autofocusElements = domCache.popup.querySelectorAll('[autofocus]');\n for (const autofocusElement of autofocusElements) {\n if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n autofocusElement.focus();\n return true;\n }\n }\n return false;\n };\n\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n };\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n };\n\n // Dear russian users visiting russian sites. Let's have fun.\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|by|xn--p1ai)$/)) {\n const now = new Date();\n const initiationDate = localStorage.getItem('swal-initiation');\n if (!initiationDate) {\n localStorage.setItem('swal-initiation', `${now}`);\n } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {\n setTimeout(() => {\n document.body.style.pointerEvents = 'none';\n const ukrainianAnthem = document.createElement('audio');\n ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';\n ukrainianAnthem.loop = true;\n document.body.appendChild(ukrainianAnthem);\n setTimeout(() => {\n ukrainianAnthem.play().catch(() => {\n // ignore\n });\n }, 2500);\n }, 500);\n }\n }\n\n // Assign instance methods from src/instanceMethods/*.js to prototype\n SweetAlert.prototype.disableButtons = disableButtons;\n SweetAlert.prototype.enableButtons = enableButtons;\n SweetAlert.prototype.getInput = getInput;\n SweetAlert.prototype.disableInput = disableInput;\n SweetAlert.prototype.enableInput = enableInput;\n SweetAlert.prototype.hideLoading = hideLoading;\n SweetAlert.prototype.disableLoading = hideLoading;\n SweetAlert.prototype.showValidationMessage = showValidationMessage;\n SweetAlert.prototype.resetValidationMessage = resetValidationMessage;\n SweetAlert.prototype.close = close;\n SweetAlert.prototype.closePopup = close;\n SweetAlert.prototype.closeModal = close;\n SweetAlert.prototype.closeToast = close;\n SweetAlert.prototype.rejectPromise = rejectPromise;\n SweetAlert.prototype.update = update;\n SweetAlert.prototype._destroy = _destroy;\n\n // Assign static methods from src/staticMethods/*.js to constructor\n Object.assign(SweetAlert, staticMethods);\n\n // Proxy to instance methods to constructor, for now, for backwards compatibility\n Object.keys(instanceMethods).forEach(key => {\n /**\n * @param {...any} args\n * @returns {any | undefined}\n */\n SweetAlert[key] = function () {\n if (currentInstance && currentInstance[key]) {\n return currentInstance[key](...arguments);\n }\n return null;\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.14.1';\n\n const Swal = SweetAlert;\n // @ts-ignore\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:rgba(0,0,0,.4)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em;text-align:center}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em}div:where(.swal2-container) button:where(.swal2-close){z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:rgba(0,0,0,0);color:#ccc;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) .swal2-html-container{z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:rgba(0,0,0,0);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:#fff}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:rgba(0,0,0,0);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:#fff;color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:0.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#facea8;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#9de0f6;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#c9dae1;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:swal2-show .3s}.swal2-hide{animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static !important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}\");","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\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 punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a puny coded representation of \"domain\".\n // It only converts the part of the domain name that\n // has non ASCII characters. I.e. it dosent matter if\n // you call it with a domain that already is in ASCII.\n var domainArray = this.hostname.split('.');\n var newOut = [];\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n 'xn--' + punycode.encode(s) : s);\n }\n this.hostname = newOut.join('.');\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n Object.keys(this).forEach(function(k) {\n result[k] = this[k];\n }, this);\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n Object.keys(relative).forEach(function(k) {\n if (k !== 'protocol')\n result[k] = relative[k];\n });\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n Object.keys(relative).forEach(function(k) {\n result[k] = relative[k];\n });\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host) && (last === '.' || last === '..') ||\n last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last == '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\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","/**\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.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\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","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}","// 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","// 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\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\n/** @type {(O: object) => string} */\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\n/** @type {<T = unknown>(array: readonly T[], value: unknown) => number} */\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};\n\n/** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n/** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\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\t// @ts-expect-error TS won't narrow inside a closure\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\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\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\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType<typeof tryAllTypedArrays>} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType<typeof tryAllSlices>} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\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","function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType<typeof availableTypedArrays>} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import { forwardRef } from 'react'\nimport { BaseIconProps } from './types'\n\n/**\n * renders an SVG with children or an image/fallback content\n *\n * @param {BaseIconProps} props\n * @param {React.ForwardedRef<SVGSVGElement | HTMLImageElement>} ref\n * @returns {(JSX.Element | null)} The JSX element for the BaseIcon component.\n */\nexport const BaseIcon = forwardRef<\n SVGSVGElement | HTMLImageElement,\n BaseIconProps\n>(({ size = 24, children, fallback, ...props }, ref) => {\n if (!children && fallback) {\n if (typeof fallback === 'string') {\n return (\n <img\n ref={ref as React.Ref<HTMLImageElement>}\n src={fallback}\n width={size}\n height={size}\n />\n )\n }\n return <>{fallback}</>\n }\n\n return (\n <svg\n ref={ref as React.Ref<SVGSVGElement>}\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n {children}\n </svg>\n )\n})\n\nBaseIcon.displayName = 'BaseIcon'\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"3392\":\"reactPlayerVidyard\",\"6463\":\"reactPlayerKaltura\",\"12042\":\"reactPlayerTwitch\",\"16328\":\"reactPlayerDailyMotion\",\"18446\":\"reactPlayerYouTube\",\"26173\":\"reactPlayerVimeo\",\"36353\":\"reactPlayerPreview\",\"47627\":\"reactPlayerStreamable\",\"52723\":\"reactPlayerMux\",\"67570\":\"reactPlayerMixcloud\",\"69979\":\"reactPlayerSoundCloud\",\"86887\":\"reactPlayerFacebook\",\"97458\":\"reactPlayerFilePlayer\",\"99340\":\"reactPlayerWistia\"}[chunkId] || chunkId) + \".\" + {\"102\":\"1f9755d6\",\"193\":\"29cce14d\",\"266\":\"78dc8dbd\",\"282\":\"ae6207fd\",\"303\":\"45f8e888\",\"396\":\"a4fc992b\",\"440\":\"16190518\",\"529\":\"a36b36d2\",\"541\":\"d9322c48\",\"553\":\"b10f5441\",\"576\":\"305a25f4\",\"660\":\"24a69311\",\"810\":\"d2c415e0\",\"856\":\"91d67ebf\",\"887\":\"81326312\",\"889\":\"b62c5a03\",\"929\":\"e9f3a623\",\"932\":\"0d8080fd\",\"953\":\"f48b4e28\",\"966\":\"f3f376ed\",\"1005\":\"9cba78ef\",\"1007\":\"9fef0670\",\"1090\":\"cb8f5252\",\"1129\":\"a4531ce9\",\"1135\":\"7ccac336\",\"1177\":\"3ed5f059\",\"1383\":\"cd3c4dcd\",\"1398\":\"01ae1108\",\"1625\":\"f0bf41f9\",\"1635\":\"4416e396\",\"1763\":\"63360d62\",\"1765\":\"2288337c\",\"1773\":\"923f748f\",\"1782\":\"7e988a5d\",\"1801\":\"7b5947f3\",\"1964\":\"7271888c\",\"1976\":\"669d694f\",\"2112\":\"98917971\",\"2130\":\"5078704f\",\"2157\":\"fec89ec0\",\"2213\":\"52240587\",\"2225\":\"8dca76ab\",\"2353\":\"5e6eb430\",\"2357\":\"ce3d13db\",\"2382\":\"bb8e9dcb\",\"2395\":\"dcb3cf3c\",\"2399\":\"8571a097\",\"2426\":\"bd7257f4\",\"2537\":\"b68ee86d\",\"2541\":\"0a8be005\",\"2563\":\"fbb59df5\",\"2624\":\"77c985af\",\"2646\":\"46504149\",\"2651\":\"978d7f54\",\"2667\":\"f1ecbc18\",\"2687\":\"bca5e553\",\"2699\":\"be449164\",\"2715\":\"0c723d38\",\"2740\":\"5b3a7715\",\"2850\":\"16f415c9\",\"2972\":\"a0906e69\",\"3005\":\"b9189e77\",\"3027\":\"e28ed39f\",\"3102\":\"ad6bc3fc\",\"3205\":\"f22f3e20\",\"3317\":\"783932e6\",\"3346\":\"5accbc21\",\"3353\":\"7bf18dc2\",\"3386\":\"673c4b2a\",\"3392\":\"8e09d1e5\",\"3405\":\"0a514321\",\"3431\":\"bf89f2e0\",\"3656\":\"edfdbfe9\",\"3694\":\"e5331cab\",\"3727\":\"309518cc\",\"3743\":\"4bfc6b27\",\"3751\":\"82647aa2\",\"3776\":\"7090a189\",\"3839\":\"65cf87a4\",\"3880\":\"394f765b\",\"3996\":\"d9aa72a0\",\"4050\":\"e4ad39a2\",\"4084\":\"d7cfbd49\",\"4167\":\"2d159af7\",\"4266\":\"8a46c346\",\"4388\":\"13b9f508\",\"4401\":\"23f4aab2\",\"4437\":\"f1c70a3f\",\"4476\":\"7221c594\",\"4492\":\"93a3f0d1\",\"4524\":\"779cf6ef\",\"4887\":\"4ee8364e\",\"4904\":\"b1f0b559\",\"4936\":\"108c178b\",\"4943\":\"6c2e8f9a\",\"5001\":\"98eff966\",\"5042\":\"4a4825c9\",\"5109\":\"555bbcb8\",\"5112\":\"4e4cad67\",\"5166\":\"f8ccccdc\",\"5354\":\"bdc08f59\",\"5429\":\"518d7269\",\"5468\":\"f17f26aa\",\"5503\":\"708c2be1\",\"5523\":\"8f771280\",\"5590\":\"cc3945df\",\"5594\":\"1b242037\",\"5680\":\"d6eead63\",\"5756\":\"24f9961a\",\"5779\":\"6701edbb\",\"5813\":\"9ceb9530\",\"5828\":\"a5025200\",\"5871\":\"707cfb80\",\"5954\":\"a492a7f0\",\"6048\":\"36a0ea22\",\"6070\":\"f318f9bd\",\"6127\":\"d3dcae2a\",\"6173\":\"e68550fb\",\"6203\":\"b3d32235\",\"6223\":\"978ba002\",\"6280\":\"637daea8\",\"6284\":\"5086174e\",\"6308\":\"19a2b558\",\"6461\":\"76983205\",\"6463\":\"2baa8d09\",\"6470\":\"8bc80898\",\"6570\":\"124eb157\",\"6616\":\"0fd88428\",\"6670\":\"28652c74\",\"6793\":\"f1f0542b\",\"6865\":\"70a2a477\",\"6890\":\"d1d7e41d\",\"6979\":\"c6770212\",\"6993\":\"75571edf\",\"7002\":\"5021682e\",\"7010\":\"425497b1\",\"7172\":\"5634dd8f\",\"7204\":\"c3c0772a\",\"7261\":\"d208718d\",\"7305\":\"398210bf\",\"7312\":\"1c55e285\",\"7392\":\"463f42b5\",\"7410\":\"5491921e\",\"7413\":\"5fd07e3a\",\"7444\":\"9e0e5288\",\"7491\":\"44293347\",\"7574\":\"a461ab8a\",\"7593\":\"5cfb6960\",\"7605\":\"256476ed\",\"7619\":\"daac9e88\",\"7639\":\"2769cfc1\",\"7660\":\"5bbdc55e\",\"7677\":\"0396e766\",\"7760\":\"ff4e98c8\",\"7814\":\"370ff8a5\",\"7834\":\"060bb950\",\"7836\":\"223cc68b\",\"7877\":\"d4d0fd2c\",\"7917\":\"c88aedba\",\"7942\":\"6cfb195a\",\"8077\":\"9385fd6b\",\"8087\":\"bdadd778\",\"8137\":\"df41ce89\",\"8205\":\"b38c4f74\",\"8340\":\"0104282d\",\"8398\":\"5860f788\",\"8570\":\"2aa42854\",\"8594\":\"c08546c3\",\"8630\":\"29df95ae\",\"8643\":\"e317e367\",\"8652\":\"3da5495f\",\"8675\":\"4d485b3a\",\"8682\":\"57200ac2\",\"8710\":\"840c8958\",\"8814\":\"c0fec227\",\"8928\":\"ebbe5598\",\"9006\":\"b96ec8dd\",\"9081\":\"8e503054\",\"9104\":\"44ba6336\",\"9178\":\"9c05ef3c\",\"9230\":\"b650a23b\",\"9342\":\"78f7c5bb\",\"9392\":\"b62ac08b\",\"9422\":\"dec2a2e0\",\"9471\":\"39ef91d7\",\"9523\":\"7a9a1409\",\"9556\":\"bb2cff22\",\"9591\":\"e4df347a\",\"9605\":\"ab472a12\",\"9659\":\"16f48084\",\"9670\":\"65754a6a\",\"9723\":\"814bbac8\",\"9767\":\"c4934e44\",\"9817\":\"5506424e\",\"9866\":\"ab13df49\",\"9983\":\"00a99a25\",\"9991\":\"f552addb\",\"10051\":\"47155809\",\"10103\":\"ea4c0717\",\"10139\":\"2f00deb6\",\"10152\":\"6645e703\",\"10179\":\"bdaea9c7\",\"10210\":\"1d515e2c\",\"10226\":\"ca126c17\",\"10263\":\"b9f43544\",\"10328\":\"78b5e615\",\"10372\":\"463af2d7\",\"10403\":\"1aeb346e\",\"10419\":\"b1ae20b2\",\"10582\":\"10b97974\",\"10586\":\"04cc8e9e\",\"10622\":\"e7c84ec3\",\"10632\":\"8421d253\",\"10677\":\"7b25e1d7\",\"10751\":\"71f24e9f\",\"10812\":\"c608d346\",\"10824\":\"c639a8f2\",\"10832\":\"69787ef2\",\"10849\":\"e1c9adee\",\"10935\":\"1dbddd6f\",\"10964\":\"d0f84144\",\"11132\":\"07d43647\",\"11183\":\"83f31930\",\"11258\":\"e4d8b739\",\"11286\":\"96589e52\",\"11325\":\"04105149\",\"11354\":\"12a933c9\",\"11423\":\"b967df53\",\"11429\":\"e4e2eab0\",\"11528\":\"8fedf3bb\",\"11614\":\"ec0abb93\",\"11668\":\"6c1ce305\",\"11763\":\"768f9168\",\"11781\":\"d5bccf0e\",\"11894\":\"dc6fdede\",\"11923\":\"0495865f\",\"11932\":\"7d3fd061\",\"11965\":\"1b87c675\",\"11989\":\"e0ccb982\",\"12042\":\"9eeef607\",\"12075\":\"ac9c6625\",\"12116\":\"c7cf18c5\",\"12123\":\"9598c816\",\"12236\":\"be74ff01\",\"12260\":\"5f30271c\",\"12356\":\"82e2ded0\",\"12494\":\"45c64fd5\",\"12534\":\"7d7b6da5\",\"12633\":\"bcb72f32\",\"12679\":\"f7015535\",\"12713\":\"ff209eb0\",\"12806\":\"8a6003be\",\"13043\":\"db6392b2\",\"13124\":\"0048eb99\",\"13193\":\"cfe58288\",\"13291\":\"820fe8df\",\"13330\":\"e1fa6d5e\",\"13377\":\"de8525fa\",\"13410\":\"f87d2dc5\",\"13416\":\"a7983792\",\"13494\":\"01e066b1\",\"13537\":\"9f0a935d\",\"13578\":\"b0ae4ef7\",\"13608\":\"d6e23fed\",\"13671\":\"0c08056a\",\"13681\":\"8463548d\",\"13731\":\"9b13fd77\",\"13773\":\"3501ca6d\",\"13785\":\"406ef9e7\",\"13798\":\"691bc3d5\",\"13810\":\"ee49cb11\",\"13833\":\"699fb2e4\",\"14029\":\"c1086e8d\",\"14072\":\"3b27b383\",\"14078\":\"2e2cf99a\",\"14109\":\"c18657af\",\"14177\":\"9672b0b5\",\"14181\":\"44ea8b25\",\"14633\":\"4232b8b7\",\"14721\":\"417b167c\",\"14743\":\"6e196aef\",\"14750\":\"04618b22\",\"14801\":\"6e38accf\",\"15081\":\"a6d557f8\",\"15087\":\"82613168\",\"15090\":\"1c92854d\",\"15149\":\"8f7c3d95\",\"15207\":\"ea18e6ef\",\"15363\":\"9ff9710f\",\"15384\":\"fc9af8b6\",\"15385\":\"74e9d13b\",\"15410\":\"59ba5828\",\"15476\":\"a66833b2\",\"15496\":\"a3cd5a6a\",\"15573\":\"fe0119fb\",\"15586\":\"9d7b70bf\",\"15654\":\"1974508c\",\"15700\":\"31f2c188\",\"15740\":\"438ee3ce\",\"15762\":\"c9b49264\",\"15827\":\"12819e33\",\"15888\":\"bff31985\",\"15899\":\"49cd34f0\",\"15940\":\"714b6e4d\",\"15941\":\"01485082\",\"15999\":\"357e70ad\",\"16030\":\"7761f3c0\",\"16059\":\"791e38c7\",\"16112\":\"f92d454f\",\"16201\":\"6bfe596c\",\"16320\":\"9a43824f\",\"16328\":\"f8e2e215\",\"16365\":\"18b93396\",\"16380\":\"d9c9ce18\",\"16454\":\"07d6fd48\",\"16484\":\"47c51b27\",\"16530\":\"e38129e1\",\"16610\":\"97a37e4c\",\"16630\":\"675f1193\",\"16671\":\"267641f0\",\"16754\":\"e2115837\",\"16826\":\"c26652d0\",\"16909\":\"45627ae6\",\"16926\":\"fe92eda9\",\"16943\":\"4cea83e8\",\"17012\":\"0284d132\",\"17031\":\"4b1dcb02\",\"17083\":\"8d21d753\",\"17088\":\"fa893448\",\"17094\":\"a282d53e\",\"17201\":\"c0a03ea5\",\"17215\":\"f4c56fe6\",\"17219\":\"000e28f5\",\"17237\":\"c6c79a52\",\"17351\":\"7301ef62\",\"17410\":\"3ac33497\",\"17471\":\"aebf8e54\",\"17585\":\"9f41a2ba\",\"17594\":\"41512da3\",\"17614\":\"ca348c20\",\"17622\":\"0921cea6\",\"17663\":\"55f51338\",\"17719\":\"5eb92415\",\"17860\":\"a3a49bc9\",\"18013\":\"28a3f3b2\",\"18046\":\"5c7a6be3\",\"18204\":\"7ed8df00\",\"18224\":\"c5ea248b\",\"18227\":\"afe3647c\",\"18342\":\"8735042b\",\"18348\":\"485bd11e\",\"18376\":\"6c3fe9a8\",\"18401\":\"7a18b28d\",\"18431\":\"cbbf0a71\",\"18446\":\"1a0fa6e0\",\"18506\":\"5ff8ff60\",\"18562\":\"b3923458\",\"18597\":\"eeafa065\",\"18610\":\"bc185c16\",\"18622\":\"7b34bb40\",\"18635\":\"fb18242a\",\"18795\":\"63f33812\",\"18837\":\"4cd91f3a\",\"18865\":\"565a3a4b\",\"18928\":\"a4793559\",\"18937\":\"c74021e9\",\"18984\":\"819d96d8\",\"18993\":\"0a42793d\",\"19036\":\"59b058e8\",\"19206\":\"08d1e4e9\",\"19224\":\"93722c84\",\"19232\":\"c211735c\",\"19339\":\"9826cfa5\",\"19390\":\"3e67fa65\",\"19403\":\"d85ffd13\",\"19552\":\"6a42a717\",\"19559\":\"3a5a8f05\",\"19578\":\"e74c8454\",\"19637\":\"ad4bc84c\",\"19933\":\"9795bef0\",\"19943\":\"7448feea\",\"19974\":\"ac4d5df5\",\"20006\":\"a1e7263d\",\"20024\":\"3d70400f\",\"20070\":\"c8c095ed\",\"20072\":\"94b06b3c\",\"20113\":\"9b9aa431\",\"20130\":\"da0541cc\",\"20245\":\"3b4231e6\",\"20284\":\"b28bafcc\",\"20290\":\"45e33022\",\"20303\":\"82b80e19\",\"20315\":\"6a77476e\",\"20510\":\"598b3137\",\"20542\":\"0011a45c\",\"20562\":\"ba235c3b\",\"20705\":\"a8b408f2\",\"20829\":\"cb0f1702\",\"20866\":\"231c0b93\",\"20868\":\"a1995740\",\"20906\":\"1263b2c7\",\"20908\":\"4b6809ca\",\"20918\":\"d1bc4809\",\"20921\":\"c4c024b4\",\"21022\":\"e8a23620\",\"21027\":\"4ba436d5\",\"21031\":\"95d9f894\",\"21057\":\"90f84812\",\"21119\":\"96cb1209\",\"21204\":\"477f3247\",\"21247\":\"dfdd878d\",\"21282\":\"89efb20b\",\"21316\":\"82634cbc\",\"21342\":\"b43d9226\",\"21375\":\"ec833aeb\",\"21516\":\"7a1f1a25\",\"21518\":\"79facd34\",\"21561\":\"383a1c58\",\"21673\":\"a39ab34c\",\"21710\":\"16ce2abd\",\"21795\":\"a2a8c409\",\"21801\":\"78da165e\",\"22016\":\"01ec95e4\",\"22212\":\"bbc361d8\",\"22264\":\"d025b2a9\",\"22317\":\"3338d2f0\",\"22340\":\"60934ded\",\"22364\":\"d2c1f591\",\"22377\":\"e85544d8\",\"22401\":\"e6b75f0b\",\"22432\":\"4abf85c9\",\"22567\":\"3b15196f\",\"22601\":\"47f81b2c\",\"22605\":\"632bf1b4\",\"22675\":\"25f2801d\",\"22770\":\"023cb283\",\"22777\":\"f5609f6c\",\"22787\":\"cb29412c\",\"22789\":\"075c4374\",\"22802\":\"94536516\",\"22891\":\"12a46a90\",\"22929\":\"7aff6fc4\",\"22935\":\"3aeebe8e\",\"23020\":\"f1d0c637\",\"23055\":\"f2876aac\",\"23059\":\"b4c6ee0f\",\"23081\":\"9053d3e2\",\"23143\":\"21e568fb\",\"23260\":\"88daa9da\",\"23287\":\"154ac4a4\",\"23294\":\"b56bce89\",\"23310\":\"96fa20ee\",\"23326\":\"6212281c\",\"23427\":\"7ddac3ce\",\"23496\":\"483504b1\",\"23513\":\"6cd767d9\",\"23516\":\"257b7ef5\",\"23564\":\"6dff20db\",\"23573\":\"b10c4e60\",\"23674\":\"488d22f0\",\"23724\":\"a50df1c2\",\"23756\":\"7d80f1a1\",\"23797\":\"e72d0df9\",\"23871\":\"7c39d85c\",\"24016\":\"eb48b7a4\",\"24060\":\"28d95037\",\"24111\":\"6093f94a\",\"24129\":\"9222cf65\",\"24153\":\"e55fc6ab\",\"24159\":\"39167c72\",\"24160\":\"42cb8903\",\"24225\":\"4cdfe259\",\"24233\":\"d45a4815\",\"24277\":\"e983d0ef\",\"24303\":\"2134ef60\",\"24329\":\"5c87f37c\",\"24356\":\"8351c58e\",\"24383\":\"509f4840\",\"24400\":\"d39b0270\",\"24419\":\"fd881377\",\"24437\":\"0a9b3041\",\"24441\":\"ebc0d425\",\"24478\":\"bc916c97\",\"24592\":\"6c8934e4\",\"24817\":\"35321792\",\"24823\":\"585c6b18\",\"25014\":\"1b4d6857\",\"25080\":\"2eca61d3\",\"25082\":\"843d8dae\",\"25175\":\"31d3b99a\",\"25180\":\"39e90b74\",\"25304\":\"ada68e8d\",\"25392\":\"a58c912c\",\"25484\":\"00dc15c1\",\"25567\":\"522624e5\",\"25570\":\"ae32bd36\",\"25637\":\"2d7ef710\",\"25649\":\"c2eff7f7\",\"25718\":\"6a5d563a\",\"25777\":\"576a4add\",\"25835\":\"a8a2d225\",\"25972\":\"ca58b1d7\",\"26164\":\"444f881f\",\"26173\":\"7c78a8fe\",\"26221\":\"96b14fd4\",\"26235\":\"95e5cfec\",\"26420\":\"0efe732e\",\"26561\":\"78736dbb\",\"26607\":\"896df2d6\",\"26691\":\"a6e08565\",\"26772\":\"a9452236\",\"26794\":\"1e1e0fb2\",\"26817\":\"44e2a736\",\"26864\":\"0d2aefef\",\"26969\":\"91c601e0\",\"26988\":\"00010fb4\",\"27007\":\"8dc540ee\",\"27045\":\"b9e50e80\",\"27059\":\"cf2f34a7\",\"27063\":\"393b6618\",\"27075\":\"427cc3ee\",\"27096\":\"2b10f691\",\"27128\":\"887a476f\",\"27161\":\"a361801d\",\"27326\":\"db0cc2b7\",\"27458\":\"7080c76b\",\"27485\":\"8a9cbcd7\",\"27507\":\"fb481c93\",\"27509\":\"02be8992\",\"27567\":\"7ccca644\",\"27697\":\"f3770485\",\"27779\":\"88dc5305\",\"27841\":\"d730fc61\",\"27884\":\"874ae6de\",\"27987\":\"ef0cbae9\",\"28055\":\"d8827a44\",\"28088\":\"afa3ee77\",\"28089\":\"e7ef8885\",\"28143\":\"8bb3954a\",\"28240\":\"2aae1b61\",\"28296\":\"55521e18\",\"28494\":\"38e48486\",\"28508\":\"f86106f5\",\"28538\":\"35476167\",\"28582\":\"20168fa9\",\"28615\":\"5333c103\",\"28619\":\"97c6ec8c\",\"28698\":\"f4888439\",\"28791\":\"d5548c36\",\"28858\":\"9a6b8e19\",\"28910\":\"3ebd4686\",\"28941\":\"c3887877\",\"29032\":\"aec9a97b\",\"29052\":\"a00caad1\",\"29130\":\"353d4507\",\"29160\":\"8389752b\",\"29204\":\"4f8fff61\",\"29256\":\"78e2a02a\",\"29276\":\"98d19ff0\",\"29313\":\"9adedfed\",\"29348\":\"156a5d9a\",\"29359\":\"7a6e73df\",\"29363\":\"c178fe4c\",\"29464\":\"b3879966\",\"29468\":\"f59f2a9a\",\"29559\":\"7dd6e79b\",\"29572\":\"f73c914e\",\"29609\":\"10b6ed5d\",\"29639\":\"beec67a9\",\"29650\":\"8ce53487\",\"29735\":\"fc72a313\",\"29781\":\"ecb527a4\",\"29804\":\"ea8affce\",\"29945\":\"8573933b\",\"29988\":\"c0a68e54\",\"29996\":\"30f26eaa\",\"30003\":\"b49d2298\",\"30021\":\"b0f0b423\",\"30043\":\"a0a793cf\",\"30057\":\"93f64de1\",\"30086\":\"89ef9e24\",\"30161\":\"d764b423\",\"30169\":\"50b6fb1b\",\"30207\":\"a91491e6\",\"30237\":\"b6052930\",\"30273\":\"bf902103\",\"30293\":\"d0f323bd\",\"30395\":\"257b0063\",\"30410\":\"977d6322\",\"30508\":\"718d775e\",\"30510\":\"168fbbd5\",\"30533\":\"1556363e\",\"30560\":\"1b84293d\",\"30606\":\"91a4ec17\",\"30616\":\"bd43294e\",\"30629\":\"279a0700\",\"30733\":\"30a454a3\",\"30737\":\"c1337776\",\"30753\":\"1d35b8a6\",\"30765\":\"d7ac7b79\",\"30778\":\"490a0499\",\"30799\":\"5dfe6cc2\",\"30810\":\"56a2e8dd\",\"30869\":\"dfcc7f01\",\"30883\":\"62117e77\",\"30897\":\"8194816a\",\"30938\":\"c3ac86bc\",\"30966\":\"b36ca73f\",\"31003\":\"947e5dbb\",\"31116\":\"78db80ca\",\"31201\":\"d467f49b\",\"31231\":\"f86d3a77\",\"31322\":\"885b8b01\",\"31327\":\"617729ce\",\"31356\":\"af087ff0\",\"31385\":\"14251cb6\",\"31499\":\"dbcbf0c0\",\"31509\":\"c243a138\",\"31606\":\"d957bc59\",\"31679\":\"a38bc39d\",\"31705\":\"64baee4e\",\"31794\":\"be30b365\",\"31813\":\"224bb64d\",\"31885\":\"d977ebcb\",\"31978\":\"83e548d5\",\"32046\":\"c65530ce\",\"32190\":\"1974086c\",\"32246\":\"43c82b64\",\"32262\":\"1a8965ec\",\"32299\":\"f7a87944\",\"32325\":\"08667dbd\",\"32408\":\"edbbad46\",\"32440\":\"0a40bdf5\",\"32622\":\"9fb3b100\",\"32732\":\"dbfb5d21\",\"32846\":\"623268d3\",\"32887\":\"131d45a9\",\"32971\":\"04b69187\",\"32975\":\"3be426ef\",\"32979\":\"9cb59ae5\",\"33047\":\"f0767cae\",\"33050\":\"ab387ad0\",\"33129\":\"2d6327a6\",\"33202\":\"c633117a\",\"33269\":\"5377f103\",\"33497\":\"2f094d60\",\"33658\":\"7176a8ae\",\"33670\":\"58fa9c6d\",\"33729\":\"7dafff4c\",\"33781\":\"df28ee3d\",\"33810\":\"223d745a\",\"33813\":\"2bd09c0f\",\"33823\":\"dffd10c1\",\"33834\":\"cfd2a1b8\",\"33835\":\"123b9c82\",\"33976\":\"61d102d8\",\"34059\":\"ef28fba5\",\"34077\":\"6145ec63\",\"34078\":\"01ceb79f\",\"34154\":\"8a11b0f5\",\"34178\":\"f3ca8cee\",\"34207\":\"81b04251\",\"34243\":\"244eb2ef\",\"34280\":\"d4d78ad6\",\"34285\":\"68d461fa\",\"34339\":\"f804c2ab\",\"34361\":\"bf1346b3\",\"34404\":\"9b5b2700\",\"34433\":\"39888fc9\",\"34472\":\"0024bfa8\",\"34500\":\"390343e2\",\"34501\":\"90382b58\",\"34536\":\"f0cbaa19\",\"34586\":\"952deb06\",\"34594\":\"86036770\",\"34630\":\"bef92336\",\"34646\":\"3d7423af\",\"34702\":\"3e0359e9\",\"34739\":\"96ea6d9c\",\"34746\":\"5affe77c\",\"34748\":\"d530f065\",\"34811\":\"33b484c0\",\"34838\":\"7251efdb\",\"34867\":\"c2088b26\",\"34870\":\"679d7e6b\",\"34888\":\"d8f2a409\",\"34906\":\"66399c83\",\"34924\":\"58739cf4\",\"34929\":\"22204c3d\",\"34993\":\"837e7e27\",\"35022\":\"2c7d2b4b\",\"35078\":\"e9fcef8b\",\"35113\":\"270d178b\",\"35239\":\"a9d953c8\",\"35282\":\"94c9fe50\",\"35297\":\"35fdfe94\",\"35409\":\"55f3feae\",\"35415\":\"8497b503\",\"35474\":\"dee56181\",\"35482\":\"76bdd330\",\"35503\":\"fc4cb24f\",\"35526\":\"cb76687e\",\"35727\":\"7570e27b\",\"35761\":\"f0af8dca\",\"35766\":\"aa34a817\",\"35777\":\"6f13a6ce\",\"35868\":\"d38369fd\",\"35910\":\"db361067\",\"35920\":\"7d2db857\",\"36043\":\"dc2bbd88\",\"36052\":\"512f2ae2\",\"36200\":\"426b662d\",\"36203\":\"ab63f976\",\"36213\":\"01c4f290\",\"36238\":\"c80ea76c\",\"36274\":\"0f196042\",\"36277\":\"0f7b0aae\",\"36308\":\"59eaf852\",\"36319\":\"97a9f071\",\"36326\":\"5e41f390\",\"36353\":\"0ba1e51e\",\"36362\":\"c04de454\",\"36390\":\"71ac6f1f\",\"36490\":\"035e3c3c\",\"36548\":\"cd3b6e1d\",\"36571\":\"c4054e4d\",\"36625\":\"739a1e5a\",\"36634\":\"ce4fedf3\",\"36661\":\"91a2753f\",\"36690\":\"44556a0c\",\"36704\":\"7dc8622e\",\"36730\":\"bc65fea4\",\"36837\":\"3de85056\",\"36933\":\"f5963329\",\"36936\":\"20630490\",\"36953\":\"0a5067d8\",\"37069\":\"e567eaa4\",\"37125\":\"c2cc42b0\",\"37137\":\"74d18361\",\"37185\":\"3ea5fed1\",\"37187\":\"3b3949c5\",\"37321\":\"2bbe5d17\",\"37351\":\"2351cc46\",\"37461\":\"5429836f\",\"37528\":\"d00bc6a3\",\"37588\":\"a13f70c9\",\"37596\":\"7e172da3\",\"37606\":\"a87c0534\",\"37630\":\"3305683a\",\"37708\":\"37c19f2e\",\"37752\":\"8585e119\",\"37755\":\"8029f41d\",\"37878\":\"c3c0b28f\",\"38004\":\"918aa26d\",\"38006\":\"da6c2c73\",\"38107\":\"816e426f\",\"38155\":\"282a27c4\",\"38235\":\"2e23c8d9\",\"38247\":\"56b3f1d5\",\"38295\":\"f32e11f7\",\"38401\":\"5203df00\",\"38411\":\"7c1a863a\",\"38440\":\"fc48db4d\",\"38450\":\"ba1bed7b\",\"38500\":\"9e294714\",\"38582\":\"1cfa74a4\",\"38687\":\"3bc8125c\",\"38706\":\"a208a257\",\"38712\":\"fef514bc\",\"38796\":\"d0d14b70\",\"38899\":\"72acddbb\",\"38920\":\"dad3a57e\",\"38922\":\"5df960f0\",\"38930\":\"dd868c04\",\"38937\":\"8a23ef2a\",\"38947\":\"2cac3354\",\"38965\":\"cae22881\",\"38975\":\"e6341b59\",\"39131\":\"6f9ebefc\",\"39317\":\"6a4242e8\",\"39362\":\"f38a9c5e\",\"39378\":\"26cdd289\",\"39421\":\"5d1e0af6\",\"39430\":\"698ffe4b\",\"39466\":\"be780a18\",\"39476\":\"ca1c219d\",\"39511\":\"b57746df\",\"39526\":\"fbe8f87e\",\"39536\":\"f87b5596\",\"39537\":\"b99d0f3e\",\"39542\":\"b865f901\",\"39615\":\"d06403ed\",\"39616\":\"d9af9abb\",\"39711\":\"1b0e58cd\",\"39728\":\"c7d2643b\",\"39732\":\"66f51bbc\",\"39827\":\"6131358b\",\"39908\":\"a3388d75\",\"39919\":\"8ab3da2b\",\"39977\":\"8833abb5\",\"40030\":\"09d69ffe\",\"40069\":\"1e3f88d3\",\"40096\":\"c95bac13\",\"40140\":\"0cd9ea98\",\"40226\":\"085a78a6\",\"40291\":\"4b418839\",\"40336\":\"9c5deabd\",\"40436\":\"e71b489c\",\"40473\":\"41ea8c41\",\"40511\":\"6999dee3\",\"40555\":\"16d54a44\",\"40698\":\"393fd9a1\",\"40699\":\"c07e3030\",\"40733\":\"1baa68a0\",\"40866\":\"9783faba\",\"41003\":\"59c096a0\",\"41010\":\"5748d423\",\"41042\":\"e43152cb\",\"41084\":\"51791693\",\"41103\":\"913b38a4\",\"41123\":\"6dc93da0\",\"41203\":\"0f98be50\",\"41262\":\"8a81e2e5\",\"41305\":\"25f3e348\",\"41439\":\"aa8ac293\",\"41489\":\"dd5055b8\",\"41522\":\"f59a1253\",\"41544\":\"118bccf0\",\"41560\":\"42782146\",\"41653\":\"a1459cb7\",\"41684\":\"a142a268\",\"41709\":\"9d18f58c\",\"41855\":\"2da06e22\",\"41856\":\"38fcfe3e\",\"41902\":\"c73f0071\",\"41916\":\"72cc45c5\",\"41933\":\"e52c9172\",\"42020\":\"5c044c2c\",\"42024\":\"788c2078\",\"42164\":\"2c7b7af5\",\"42172\":\"4b560193\",\"42202\":\"2bd96f17\",\"42219\":\"3a804bd6\",\"42318\":\"ee122862\",\"42326\":\"d7219ef7\",\"42334\":\"ade01595\",\"42415\":\"daf19120\",\"42425\":\"8df90516\",\"42434\":\"5271c840\",\"42578\":\"9215a242\",\"42642\":\"ceaae555\",\"42766\":\"8a52e526\",\"43105\":\"7eec3a99\",\"43136\":\"1b163108\",\"43173\":\"c3eb602d\",\"43213\":\"222caffb\",\"43232\":\"3e5a3a94\",\"43287\":\"b83f0a4a\",\"43346\":\"aaed819f\",\"43485\":\"ce59600f\",\"43504\":\"eb68b0a9\",\"43580\":\"e8368a4b\",\"43617\":\"5a1027e0\",\"43639\":\"4bdb6de7\",\"43777\":\"4eb550b7\",\"43790\":\"afad0988\",\"43800\":\"54812a61\",\"43834\":\"4ea7dd32\",\"43889\":\"8569e7aa\",\"44050\":\"6ba60677\",\"44058\":\"1b03ed30\",\"44083\":\"fe01c6c6\",\"44168\":\"ae48d1dc\",\"44280\":\"8e09959a\",\"44310\":\"ae3d4f61\",\"44337\":\"3092f8f9\",\"44355\":\"79a6a25d\",\"44374\":\"ffe1e040\",\"44382\":\"513b28a2\",\"44398\":\"c0ab39d7\",\"44402\":\"1ba72125\",\"44460\":\"53c1a45b\",\"44484\":\"2dfee4e1\",\"44531\":\"df5032dd\",\"44533\":\"bd4cf6aa\",\"44577\":\"e761114e\",\"44660\":\"dd7faab3\",\"44723\":\"7e818664\",\"44743\":\"9d46a4c4\",\"44816\":\"7dc7e42b\",\"44845\":\"0367ef95\",\"44922\":\"35ef990b\",\"44948\":\"327e561b\",\"45158\":\"8115909d\",\"45165\":\"052b3e94\",\"45193\":\"9e84bdc5\",\"45195\":\"67a1121c\",\"45198\":\"080e75ea\",\"45235\":\"df4c2975\",\"45378\":\"c1fea20e\",\"45408\":\"2b0e2a8e\",\"45410\":\"77d9f9f2\",\"45447\":\"687be19b\",\"45475\":\"848230aa\",\"45504\":\"682cacf1\",\"45509\":\"b28d4e50\",\"45661\":\"d3dbbb21\",\"45667\":\"6725d2c2\",\"45669\":\"4120a97f\",\"45674\":\"1e03d252\",\"45680\":\"3958d4b6\",\"45704\":\"a6ff22c0\",\"45746\":\"3a59fcaf\",\"45790\":\"ec1ccd60\",\"45820\":\"aa9c9581\",\"45966\":\"622c4030\",\"45967\":\"a80ba1f3\",\"45988\":\"350f5225\",\"46051\":\"4daf176a\",\"46093\":\"26f81f6f\",\"46103\":\"c50825da\",\"46165\":\"22f0406a\",\"46243\":\"4112f969\",\"46300\":\"500ac41a\",\"46332\":\"0908cd46\",\"46371\":\"1f3af448\",\"46378\":\"cfbd7afe\",\"46456\":\"bafe09bd\",\"46465\":\"a67c349c\",\"46560\":\"1387ffc2\",\"46588\":\"44c69c0c\",\"46606\":\"d5c9da09\",\"46632\":\"d74d229f\",\"46659\":\"42b0f652\",\"46704\":\"9e33308e\",\"46724\":\"a9a9850d\",\"46738\":\"c5ee5f75\",\"46758\":\"c05c2454\",\"46777\":\"475e3cc3\",\"46792\":\"0db55265\",\"46810\":\"f642b59e\",\"46856\":\"d4b15dde\",\"46860\":\"73ac07ef\",\"46899\":\"4ad2707f\",\"46920\":\"17b49569\",\"46972\":\"17e8822c\",\"47183\":\"daecd1fd\",\"47214\":\"06464efc\",\"47229\":\"dc28923b\",\"47293\":\"7432464c\",\"47380\":\"171b3cbe\",\"47396\":\"dc4e2ae7\",\"47546\":\"d9168b02\",\"47562\":\"52eb635a\",\"47627\":\"cb75fa1c\",\"47725\":\"9ca78af9\",\"47742\":\"11498232\",\"47763\":\"f1cdf3d8\",\"47802\":\"d62b9070\",\"47916\":\"276c1b1b\",\"47951\":\"f11b62a5\",\"47989\":\"2169cc9b\",\"47993\":\"8ae626d2\",\"48040\":\"6cd70ed5\",\"48049\":\"ab16615a\",\"48122\":\"9099bef1\",\"48140\":\"2373d642\",\"48273\":\"2ca44a95\",\"48298\":\"dfc2f866\",\"48316\":\"479585f4\",\"48332\":\"5bc26321\",\"48394\":\"e18e30bc\",\"48474\":\"c92c15bf\",\"48535\":\"38b6edaf\",\"48540\":\"ac3d9547\",\"48543\":\"173b1533\",\"48562\":\"9f3cd079\",\"48593\":\"55c7f225\",\"48773\":\"ee5f5e6f\",\"48776\":\"588b1e69\",\"48913\":\"58b87988\",\"48928\":\"7ff024f2\",\"48960\":\"d4d8ff7b\",\"48968\":\"5e10ed0f\",\"48982\":\"8a3f11d1\",\"48983\":\"88c033fe\",\"49016\":\"8c5ff371\",\"49030\":\"91544ffc\",\"49043\":\"96a1a86e\",\"49055\":\"012e4048\",\"49151\":\"0feb9d23\",\"49173\":\"d86c3da6\",\"49217\":\"7ab5d010\",\"49265\":\"7f25817e\",\"49301\":\"92ef2637\",\"49368\":\"3b687c44\",\"49375\":\"327ef3f6\",\"49476\":\"f044424c\",\"49480\":\"65f4eeff\",\"49527\":\"666b2dc7\",\"49539\":\"1333b0ec\",\"49563\":\"a5e227e8\",\"49640\":\"599c2425\",\"49686\":\"d1d25699\",\"49765\":\"3906ba5e\",\"49775\":\"551ff907\",\"49780\":\"4ec8e6e6\",\"49784\":\"1a3e06bd\",\"49842\":\"a2ffdf8b\",\"49845\":\"49cafcdf\",\"49943\":\"e99c33c3\",\"50032\":\"0522407e\",\"50098\":\"c7724037\",\"50149\":\"e5dfffaa\",\"50177\":\"2ad1b56e\",\"50295\":\"a43c61f1\",\"50324\":\"ee756ace\",\"50368\":\"75481c62\",\"50376\":\"b819a62d\",\"50384\":\"ebdb6ea7\",\"50439\":\"ed8de0b6\",\"50467\":\"4c6c1433\",\"50504\":\"19cbf75f\",\"50566\":\"078bd828\",\"50715\":\"09701003\",\"50724\":\"5e631430\",\"50735\":\"b0eb762f\",\"50743\":\"df1a1398\",\"50875\":\"2dfb1dfb\",\"50906\":\"498566f1\",\"50920\":\"a1bcf576\",\"50923\":\"72ae604f\",\"50950\":\"f9e0b349\",\"51025\":\"85a605d4\",\"51079\":\"6e8a94e3\",\"51114\":\"d99d44fb\",\"51242\":\"598893fc\",\"51248\":\"fcb641ca\",\"51253\":\"59ae7887\",\"51418\":\"9f1d777e\",\"51599\":\"9811b16c\",\"51716\":\"2aea4b29\",\"51757\":\"42b7e1ca\",\"51771\":\"932e29ad\",\"51822\":\"93ff3661\",\"51856\":\"08f5f103\",\"51867\":\"8cfc5063\",\"52066\":\"f0d59d71\",\"52073\":\"f595ac4d\",\"52090\":\"1756ae35\",\"52091\":\"e5a29e0c\",\"52159\":\"98506921\",\"52344\":\"89c0ddf7\",\"52351\":\"eaa7929f\",\"52388\":\"15d03df6\",\"52392\":\"80ad12d4\",\"52511\":\"34236d77\",\"52552\":\"dfef24db\",\"52559\":\"ddfeb13f\",\"52612\":\"80f1b9a3\",\"52723\":\"8ab8d56b\",\"52732\":\"22d74cf2\",\"52777\":\"51afc329\",\"52818\":\"d351159f\",\"52861\":\"1eabf6aa\",\"52922\":\"99da82ba\",\"52971\":\"9a7de1eb\",\"52984\":\"a613523f\",\"53000\":\"9bb12352\",\"53017\":\"28c20bca\",\"53080\":\"bd3553e6\",\"53082\":\"90c8eeb2\",\"53155\":\"71058060\",\"53196\":\"e718337b\",\"53238\":\"d1b4aef8\",\"53264\":\"329329ea\",\"53299\":\"b9f4bc4f\",\"53438\":\"26c68538\",\"53440\":\"58f216df\",\"53459\":\"22bdc5be\",\"53487\":\"d439a098\",\"53567\":\"b7b59c98\",\"53601\":\"1432e3c0\",\"53673\":\"ca9d7b1c\",\"53686\":\"855b2604\",\"53763\":\"3c3a1ae2\",\"53767\":\"8f363ad2\",\"53806\":\"e38b6c74\",\"53819\":\"93f6a23f\",\"53996\":\"f77419f5\",\"54053\":\"b918f81c\",\"54073\":\"e013cd3a\",\"54090\":\"e9242fb4\",\"54095\":\"8ec6ffff\",\"54146\":\"0bbafee1\",\"54151\":\"05f1e634\",\"54160\":\"b1791caf\",\"54332\":\"1b0d3bf6\",\"54370\":\"0596cb4f\",\"54399\":\"a404c996\",\"54443\":\"9d14b8f2\",\"54475\":\"3dc77cf8\",\"54548\":\"ae7376b6\",\"54561\":\"b8e8ba2a\",\"54565\":\"dae84e9f\",\"54572\":\"307d017d\",\"54600\":\"effff30f\",\"54619\":\"6172bb5f\",\"54632\":\"f14cbda2\",\"54645\":\"eab64ad0\",\"54692\":\"8ce2a24c\",\"54714\":\"488e833b\",\"54733\":\"685319ea\",\"54756\":\"c17a3c05\",\"54762\":\"c3fecdea\",\"54856\":\"a0fa1e81\",\"54934\":\"6aadd093\",\"54943\":\"0af5ceaa\",\"54991\":\"c7e8ec11\",\"55011\":\"e0e77d5e\",\"55045\":\"d9386472\",\"55091\":\"e54606b6\",\"55134\":\"896ebf11\",\"55144\":\"697bacc6\",\"55181\":\"ac204302\",\"55264\":\"c9f6f244\",\"55281\":\"010e5c70\",\"55325\":\"2060b8af\",\"55345\":\"b0657211\",\"55399\":\"73b0d0f6\",\"55497\":\"dda0e1a4\",\"55579\":\"3c8881db\",\"55631\":\"69a3581a\",\"55735\":\"b4629330\",\"55742\":\"22c6075c\",\"55771\":\"a2add9ea\",\"55819\":\"08d5d9c9\",\"55869\":\"458835b4\",\"55872\":\"e014b05a\",\"55953\":\"999e868e\",\"55954\":\"983d8311\",\"55975\":\"e52cbab3\",\"56010\":\"8a0a7c22\",\"56017\":\"c926721f\",\"56079\":\"f6088167\",\"56082\":\"b47f626a\",\"56246\":\"02678fa7\",\"56262\":\"8a5e5d5d\",\"56470\":\"280adc99\",\"56477\":\"7a269439\",\"56528\":\"48f289bb\",\"56641\":\"d67a5450\",\"56783\":\"02e3092c\",\"56850\":\"766465e6\",\"56854\":\"f62854da\",\"56879\":\"68b81440\",\"56933\":\"9383a089\",\"56947\":\"7472b90e\",\"56973\":\"fb8a0d86\",\"57031\":\"1ede5669\",\"57143\":\"bc1fddaa\",\"57155\":\"2f2850b1\",\"57196\":\"607a9aba\",\"57222\":\"8d6d52b4\",\"57236\":\"e856cb81\",\"57289\":\"a8021548\",\"57369\":\"650ceb84\",\"57408\":\"247c4ff0\",\"57553\":\"fd9c8a2e\",\"57575\":\"81b85a96\",\"57649\":\"6896bb52\",\"57700\":\"dcfa2153\",\"57720\":\"6fadd4db\",\"57728\":\"529d7750\",\"57765\":\"75ee50cd\",\"57806\":\"1ba3e29b\",\"57815\":\"ea15000f\",\"57858\":\"24a1d0ab\",\"57869\":\"16be4183\",\"57880\":\"8058324a\",\"57883\":\"38df5219\",\"58042\":\"ab1cd231\",\"58070\":\"3daf4f3c\",\"58147\":\"3991f034\",\"58219\":\"8cbae400\",\"58299\":\"a066440a\",\"58325\":\"2abb5a65\",\"58333\":\"57ad6061\",\"58347\":\"766ad9be\",\"58374\":\"9ef12f26\",\"58375\":\"0ba45aa7\",\"58377\":\"6c3da187\",\"58417\":\"04571434\",\"58617\":\"953ca061\",\"58665\":\"34740a6e\",\"58670\":\"74b51f94\",\"58829\":\"7abb2bb2\",\"58837\":\"a24f64f5\",\"58943\":\"c781efb2\",\"59039\":\"5075d3be\",\"59186\":\"e93ebf4d\",\"59192\":\"2991d62b\",\"59205\":\"8cd6e883\",\"59209\":\"905542dc\",\"59259\":\"8e7abedc\",\"59261\":\"6112272c\",\"59305\":\"7d46fe44\",\"59319\":\"af8a0bec\",\"59332\":\"72262ba5\",\"59334\":\"f10fa033\",\"59351\":\"a64a7d04\",\"59391\":\"412f1e9a\",\"59403\":\"dd3cd7ec\",\"59557\":\"60dd3dfb\",\"59590\":\"4b6b5fb3\",\"59643\":\"fa4453d2\",\"59703\":\"fb01c90c\",\"59909\":\"eadca339\",\"59917\":\"24290413\",\"59922\":\"453089d6\",\"59973\":\"050306c8\",\"59980\":\"189cbfc8\",\"60007\":\"e10b425a\",\"60064\":\"f834c2fa\",\"60274\":\"f8661ac8\",\"60343\":\"43081a05\",\"60346\":\"11807ee6\",\"60371\":\"aa415fff\",\"60373\":\"1f4d4299\",\"60386\":\"7e401f7f\",\"60505\":\"6d9a3f70\",\"60649\":\"00a573ac\",\"60658\":\"a81cee2a\",\"60667\":\"167abdba\",\"60708\":\"f045e39e\",\"60743\":\"8d6a8ac8\",\"60749\":\"e33f84e3\",\"60859\":\"84f79b12\",\"60985\":\"606874ee\",\"61054\":\"59ee54e9\",\"61065\":\"d0ebd2c0\",\"61078\":\"3525a189\",\"61133\":\"6760bbcd\",\"61188\":\"45bb223f\",\"61201\":\"4e3f30d7\",\"61298\":\"67375624\",\"61313\":\"7cce2ecb\",\"61340\":\"3d04b7c5\",\"61342\":\"5ed6aeb0\",\"61399\":\"49797b03\",\"61429\":\"ecdd768e\",\"61449\":\"692cb264\",\"61469\":\"8ff12a18\",\"61543\":\"5b59606b\",\"61605\":\"530226fa\",\"61681\":\"20bcb3f9\",\"61698\":\"429b041f\",\"61699\":\"1e1571f1\",\"61711\":\"b158faa7\",\"61736\":\"14968077\",\"61782\":\"a5fb9755\",\"61794\":\"069a2050\",\"61960\":\"b9b1a201\",\"61961\":\"edc96fb7\",\"61974\":\"d8df250f\",\"62024\":\"4d866ec5\",\"62074\":\"1373a739\",\"62078\":\"9b0c6d67\",\"62105\":\"4ba4bf17\",\"62129\":\"11ab8970\",\"62187\":\"770a734a\",\"62213\":\"6a312cc4\",\"62232\":\"8f0bf67f\",\"62233\":\"fef9623e\",\"62350\":\"22907a1e\",\"62364\":\"33f91341\",\"62370\":\"c099ab56\",\"62383\":\"89e4882c\",\"62412\":\"bbd52c24\",\"62467\":\"b4f99ea7\",\"62514\":\"5486304c\",\"62533\":\"ce834773\",\"62560\":\"43e37f86\",\"62582\":\"746ec912\",\"62611\":\"2850c4c5\",\"62656\":\"3e11838c\",\"62749\":\"b7542826\",\"62753\":\"ca803a7d\",\"62826\":\"0733e711\",\"62846\":\"6b737017\",\"62848\":\"d52335e8\",\"62885\":\"f16fa113\",\"62931\":\"a7d4f6e8\",\"62975\":\"03c24ecc\",\"63013\":\"67b840c6\",\"63068\":\"cb063867\",\"63072\":\"0e881d3b\",\"63099\":\"3bdb37e4\",\"63117\":\"537f2ea7\",\"63160\":\"18632690\",\"63180\":\"c72f93fc\",\"63202\":\"cffd9535\",\"63213\":\"eb544102\",\"63261\":\"2f2fd19b\",\"63276\":\"4acb95ee\",\"63327\":\"b3bf7c70\",\"63355\":\"59a53528\",\"63361\":\"db783407\",\"63376\":\"c3b00e62\",\"63427\":\"02e86221\",\"63430\":\"9365294e\",\"63490\":\"bf075f9f\",\"63512\":\"7be99029\",\"63545\":\"9ea4e920\",\"63583\":\"ffeb3706\",\"63659\":\"e7d3bc4e\",\"63719\":\"0ddbb5f2\",\"63795\":\"6322adef\",\"63855\":\"a4d063ee\",\"63857\":\"37be7711\",\"63882\":\"95be80d8\",\"63905\":\"db659aec\",\"63908\":\"f37b7856\",\"64014\":\"f24cea2f\",\"64076\":\"65476369\",\"64077\":\"75992a96\",\"64154\":\"4d82fdb3\",\"64175\":\"3cd2880e\",\"64245\":\"9791b845\",\"64314\":\"71b4eaf4\",\"64334\":\"1c35e2f1\",\"64371\":\"378396ff\",\"64414\":\"0beb479d\",\"64426\":\"fbebce53\",\"64435\":\"3bdede04\",\"64476\":\"17b3c3bf\",\"64498\":\"7fe5c315\",\"64548\":\"8905ede3\",\"64568\":\"1ab36fd0\",\"64599\":\"18fad12e\",\"64619\":\"b44b80a0\",\"64630\":\"9810e886\",\"64693\":\"b63519b5\",\"64727\":\"1c6d4379\",\"64839\":\"b1547fb4\",\"64857\":\"6a141996\",\"64863\":\"cf0ae3b9\",\"65054\":\"8d7e03ad\",\"65073\":\"08add465\",\"65114\":\"616a1984\",\"65267\":\"aacb0bd6\",\"65313\":\"de9c3e76\",\"65331\":\"8f0ff936\",\"65365\":\"54a200fb\",\"65420\":\"18881e4c\",\"65424\":\"9ac8352b\",\"65536\":\"de0777a5\",\"65711\":\"3caea748\",\"65916\":\"22cd1795\",\"65982\":\"bf93deb8\",\"66038\":\"23209424\",\"66132\":\"e1c02356\",\"66198\":\"059c4429\",\"66235\":\"6bbdee05\",\"66299\":\"d63a6ee3\",\"66303\":\"c45735a4\",\"66324\":\"ac8ca070\",\"66400\":\"8f6d84b9\",\"66466\":\"397073a0\",\"66513\":\"cf589450\",\"66529\":\"67b737e9\",\"66546\":\"fd228bab\",\"66593\":\"51acf37b\",\"66626\":\"bea7bbcf\",\"66650\":\"954162cb\",\"66661\":\"3c92ef6a\",\"66695\":\"1d189dd9\",\"66904\":\"0e1a1620\",\"66973\":\"09502710\",\"67014\":\"6b23314a\",\"67017\":\"8051e815\",\"67034\":\"cfe428d6\",\"67042\":\"67f0889a\",\"67065\":\"5e90b1f6\",\"67083\":\"5cf69a07\",\"67257\":\"fa30538a\",\"67333\":\"b67ae4da\",\"67415\":\"1a1692bd\",\"67426\":\"9329b394\",\"67449\":\"4c0223df\",\"67510\":\"8de7a5a2\",\"67516\":\"3cbcba5b\",\"67521\":\"8e8f5c65\",\"67552\":\"8157a5ea\",\"67570\":\"37784a6b\",\"67580\":\"76f48c9a\",\"67730\":\"8104160f\",\"67747\":\"ebe15193\",\"67861\":\"1661218a\",\"67879\":\"9fcd0a1b\",\"67896\":\"cfea61ef\",\"67900\":\"cfdb6091\",\"67989\":\"be85117a\",\"68046\":\"693f5124\",\"68093\":\"b8d29886\",\"68113\":\"b65f6b4c\",\"68216\":\"508d48a4\",\"68281\":\"cc13108e\",\"68333\":\"5dfd1fef\",\"68389\":\"34c97b46\",\"68479\":\"8d6ad22e\",\"68484\":\"875ee361\",\"68670\":\"18344287\",\"68691\":\"1b2f4194\",\"68694\":\"7c783653\",\"68728\":\"b00caafe\",\"68737\":\"2b9a500a\",\"68773\":\"a38a6654\",\"68832\":\"a535b0d3\",\"68833\":\"a56f7ff4\",\"68885\":\"aa54c125\",\"68887\":\"a236d4b7\",\"68896\":\"7e6a31d9\",\"68906\":\"cef017ce\",\"68964\":\"c845ef60\",\"68971\":\"16d77bb0\",\"68987\":\"f6981015\",\"69038\":\"ddf6005a\",\"69074\":\"f153a1c1\",\"69158\":\"56a63911\",\"69212\":\"0c7de75d\",\"69296\":\"ee2dcc9c\",\"69318\":\"d162bdf4\",\"69380\":\"b64169f9\",\"69406\":\"478e1309\",\"69492\":\"3ac3e4e4\",\"69564\":\"f8ea652f\",\"69571\":\"11fd75f0\",\"69716\":\"1e0bf326\",\"69732\":\"d1c8f6af\",\"69735\":\"4dbe0283\",\"69747\":\"57b420ac\",\"69892\":\"835e5d3c\",\"69894\":\"793338a1\",\"69915\":\"64e51867\",\"69926\":\"1f046fc7\",\"69959\":\"bc8492e8\",\"69979\":\"353a11f1\",\"70055\":\"94e54911\",\"70065\":\"81bafe73\",\"70091\":\"bc23a487\",\"70094\":\"e56aab5c\",\"70096\":\"f2bc77c4\",\"70099\":\"67335c6b\",\"70145\":\"124bbd86\",\"70311\":\"b4ecd812\",\"70332\":\"590d9392\",\"70376\":\"caf07f7e\",\"70382\":\"fd04d47f\",\"70433\":\"fa8c17f5\",\"70549\":\"a64aa86a\",\"70566\":\"53bb8e05\",\"70595\":\"e75888e4\",\"70606\":\"12a36b9e\",\"70675\":\"4362cd97\",\"70681\":\"cd5a9f86\",\"70687\":\"f683ddf2\",\"70710\":\"d8a2beeb\",\"70720\":\"3e65a0c0\",\"70725\":\"dacb7ac9\",\"70753\":\"7ee45030\",\"70769\":\"0020b366\",\"70796\":\"ae26f8ff\",\"70867\":\"544092fe\",\"70941\":\"07b368c1\",\"71057\":\"ab21e97e\",\"71142\":\"3e5be9fa\",\"71195\":\"19546ad1\",\"71203\":\"92ccc6de\",\"71254\":\"6debc887\",\"71265\":\"4ac916e4\",\"71267\":\"4eea2f73\",\"71287\":\"670bd8c3\",\"71334\":\"abc64856\",\"71344\":\"60a78796\",\"71354\":\"82769c75\",\"71367\":\"97735db9\",\"71388\":\"cb493aa3\",\"71449\":\"5c2101ac\",\"71503\":\"4f6f00e1\",\"71517\":\"5e8e1828\",\"71549\":\"4050e45e\",\"71560\":\"2131f01e\",\"71569\":\"5295e003\",\"71585\":\"35fa7b55\",\"71613\":\"0d4d4902\",\"71621\":\"4b0ab819\",\"71698\":\"15709e01\",\"71709\":\"f5cb658f\",\"71792\":\"eafcc463\",\"71802\":\"05ca6e05\",\"71814\":\"9eb2036c\",\"71837\":\"d991eee0\",\"71851\":\"3c27bd39\",\"71876\":\"06f10810\",\"71940\":\"e97bec87\",\"71949\":\"99e43e0d\",\"72009\":\"b13fbc8e\",\"72017\":\"9bdf759f\",\"72040\":\"497b85a4\",\"72042\":\"2d044429\",\"72099\":\"eb66c6dd\",\"72414\":\"d62cd58f\",\"72533\":\"d68eef67\",\"72602\":\"c7252e09\",\"72606\":\"bf559b68\",\"72631\":\"4b86e789\",\"72638\":\"2e22fff1\",\"72781\":\"22c21f2e\",\"72810\":\"a8e2e9ae\",\"72846\":\"4ace2553\",\"72853\":\"5a9c8fa5\",\"72901\":\"4996570d\",\"72952\":\"33959034\",\"72985\":\"84d18c2a\",\"73079\":\"ab78aebc\",\"73096\":\"cf992578\",\"73124\":\"c9bbc615\",\"73145\":\"a8c540ad\",\"73179\":\"cc3e8634\",\"73194\":\"ae58f802\",\"73214\":\"92ebf652\",\"73345\":\"dc2e4d31\",\"73415\":\"e8a3e8da\",\"73438\":\"484349c2\",\"73461\":\"fc0bb776\",\"73490\":\"84f6bd67\",\"73524\":\"d7a5cbda\",\"73550\":\"679adadd\",\"73637\":\"2388b8cf\",\"73662\":\"460ae48f\",\"73699\":\"c47fcc30\",\"73882\":\"fb8622c3\",\"73930\":\"883a3a60\",\"73981\":\"fee0c39b\",\"74040\":\"0273c7eb\",\"74056\":\"24625b52\",\"74136\":\"a2d20b4b\",\"74143\":\"87f84c4e\",\"74150\":\"27719d71\",\"74219\":\"783043b4\",\"74249\":\"382d41c9\",\"74273\":\"07f76034\",\"74303\":\"94b2dcfb\",\"74368\":\"8a88a465\",\"74481\":\"27e00243\",\"74535\":\"4db8eb09\",\"74586\":\"3a43fa77\",\"74624\":\"6e0bcd68\",\"74743\":\"a052baa6\",\"74770\":\"132817ed\",\"74782\":\"a668f9eb\",\"74799\":\"1c69cdcd\",\"74838\":\"82f4d126\",\"75031\":\"ee10947b\",\"75035\":\"3fbe9be2\",\"75054\":\"a93a7feb\",\"75071\":\"06f18d54\",\"75133\":\"e1106ee3\",\"75197\":\"d84f77a0\",\"75239\":\"610f29f7\",\"75242\":\"241603fd\",\"75255\":\"985c50c6\",\"75279\":\"2a6f7cb2\",\"75415\":\"c73d1537\",\"75432\":\"083587c3\",\"75464\":\"512a3bd5\",\"75493\":\"3238ef6c\",\"75582\":\"ded52aa4\",\"75617\":\"bd13a195\",\"75669\":\"8d99462d\",\"75708\":\"b56cdd28\",\"75721\":\"7bbc4c9c\",\"75752\":\"801cc98f\",\"75792\":\"0892e127\",\"75869\":\"0942037d\",\"75889\":\"6e854490\",\"75898\":\"93721ae5\",\"75985\":\"228db18b\",\"76050\":\"18d59c94\",\"76057\":\"dc5975c3\",\"76066\":\"733d4984\",\"76101\":\"86124ec6\",\"76161\":\"5e70509b\",\"76251\":\"3ac02f48\",\"76257\":\"4f89b981\",\"76399\":\"5c675f0e\",\"76529\":\"6852570f\",\"76576\":\"324ba63c\",\"76579\":\"38ae3b4e\",\"76598\":\"ba56c0d2\",\"76621\":\"5071d8e4\",\"76702\":\"30bc7331\",\"76976\":\"1f5ce67b\",\"77027\":\"8b303fbc\",\"77031\":\"411bc535\",\"77043\":\"90a36931\",\"77214\":\"a70e6f69\",\"77253\":\"8b718941\",\"77298\":\"586a2b6e\",\"77326\":\"c6ed47e8\",\"77374\":\"83ec8ea1\",\"77394\":\"43656a72\",\"77530\":\"68dee11c\",\"77546\":\"da3dcae8\",\"77562\":\"c718f9b0\",\"77613\":\"d0f6a8b1\",\"77626\":\"c7df99a7\",\"77629\":\"5fa6892f\",\"77657\":\"f5cd3c5a\",\"77688\":\"8decc79f\",\"77728\":\"731f23c0\",\"77777\":\"dd3103c2\",\"77816\":\"0395217e\",\"77855\":\"0832de97\",\"77906\":\"6103b556\",\"77964\":\"5e49f8c3\",\"78031\":\"4fb72d06\",\"78341\":\"bbbf90ea\",\"78485\":\"fddad7d9\",\"78513\":\"72837be4\",\"78532\":\"55878b40\",\"78560\":\"8a4f1fc3\",\"78580\":\"5d6f83d8\",\"78631\":\"3cfd665a\",\"78683\":\"943ee34c\",\"78706\":\"dda3a8f0\",\"78818\":\"83fdd98b\",\"78837\":\"7ecd014e\",\"78863\":\"191a78db\",\"78867\":\"dca4f180\",\"78885\":\"30e4d0c6\",\"78942\":\"8cb41ee7\",\"79055\":\"52e027d1\",\"79108\":\"bd0e70e3\",\"79132\":\"d2642d58\",\"79188\":\"a3998029\",\"79218\":\"8cf05ad5\",\"79220\":\"a97fd19d\",\"79289\":\"62e1532d\",\"79333\":\"03f44291\",\"79422\":\"d18359ea\",\"79430\":\"dd531368\",\"79463\":\"0e2fc571\",\"79468\":\"d3148dc6\",\"79517\":\"39e6ddba\",\"79641\":\"c3ccb0b7\",\"79675\":\"1ba55b50\",\"79725\":\"2148f8f5\",\"79744\":\"2b807e11\",\"79789\":\"f632ce4f\",\"79801\":\"2ff789b2\",\"79813\":\"29a66be7\",\"79814\":\"dd878b41\",\"79840\":\"7874620a\",\"79888\":\"e31f81a4\",\"79930\":\"93c59328\",\"79981\":\"1ff8ad9b\",\"80080\":\"5a159b9e\",\"80081\":\"7dabece0\",\"80110\":\"3c142a29\",\"80138\":\"53be2b79\",\"80160\":\"0392e10a\",\"80415\":\"90d607a8\",\"80563\":\"c799ac5b\",\"80564\":\"683b4f6e\",\"80567\":\"6f8ad0e2\",\"80584\":\"f89d6764\",\"80615\":\"5a342e05\",\"80645\":\"d698ba1e\",\"80703\":\"e4377e08\",\"80711\":\"cdb49c9f\",\"80732\":\"ebb412da\",\"80801\":\"d01961c8\",\"80845\":\"a16c5c1e\",\"80945\":\"50744e46\",\"80989\":\"d5e6a4eb\",\"81033\":\"2492c0ac\",\"81135\":\"d985446b\",\"81145\":\"9970537b\",\"81202\":\"99a85439\",\"81228\":\"d8204f2f\",\"81233\":\"50854156\",\"81251\":\"d25c1d23\",\"81287\":\"627076fc\",\"81347\":\"27d0d031\",\"81391\":\"d3b21594\",\"81498\":\"4d9f91e8\",\"81535\":\"379dfc88\",\"81611\":\"ab788e42\",\"81617\":\"126c8667\",\"81817\":\"b0fc3021\",\"81838\":\"73ffc1a6\",\"81862\":\"e5a77f09\",\"81870\":\"cfee0ed1\",\"81876\":\"77eef987\",\"81908\":\"40ae04de\",\"81928\":\"69ad5da9\",\"81954\":\"41cf7a4f\",\"81984\":\"7d1bbfaa\",\"82123\":\"21c13ea8\",\"82159\":\"f5ce957a\",\"82197\":\"f05ea2cb\",\"82198\":\"e2b86b43\",\"82258\":\"75e6cd0f\",\"82292\":\"bb30823b\",\"82308\":\"74ad4fc6\",\"82327\":\"850c2c0d\",\"82331\":\"706c53d6\",\"82351\":\"93546585\",\"82353\":\"1b6dfd74\",\"82354\":\"f5a7fba1\",\"82365\":\"c9ab5ee6\",\"82428\":\"6e575f5b\",\"82463\":\"831c9adf\",\"82471\":\"270feb4c\",\"82555\":\"c922a8e2\",\"82681\":\"a35c62cf\",\"82765\":\"d747dea4\",\"82817\":\"e1035eed\",\"82831\":\"163e9dd8\",\"82833\":\"79d82ad2\",\"82867\":\"7fde0a30\",\"82895\":\"c075d1dd\",\"82907\":\"5abcbc0e\",\"82977\":\"225b46a8\",\"83003\":\"0faef119\",\"83008\":\"6a4b0f76\",\"83071\":\"128eda0f\",\"83121\":\"f8e12332\",\"83186\":\"073ba27a\",\"83316\":\"95e3b059\",\"83387\":\"b3f44410\",\"83456\":\"a8e7fb0c\",\"83557\":\"9dc0ecb8\",\"83600\":\"862e00b0\",\"83648\":\"84f0e1bb\",\"83709\":\"ba6beeb5\",\"83794\":\"a0196526\",\"83808\":\"91be8295\",\"83829\":\"22acab25\",\"83852\":\"8ffeb496\",\"83879\":\"a717f8af\",\"83944\":\"5cfb1326\",\"83992\":\"cae1c938\",\"84036\":\"1822d964\",\"84058\":\"cfb7cd29\",\"84080\":\"5595e8ad\",\"84104\":\"7ada04ec\",\"84120\":\"203937fd\",\"84130\":\"cafae5cf\",\"84219\":\"92927d07\",\"84310\":\"93277dd0\",\"84336\":\"be66327d\",\"84445\":\"fcf15fb6\",\"84531\":\"2ddd3a77\",\"84569\":\"33c0dff6\",\"84654\":\"0cd61010\",\"84705\":\"cee4c792\",\"84745\":\"f4be79ba\",\"84895\":\"caf74db6\",\"84938\":\"8516d5d2\",\"84944\":\"2cde07b2\",\"84975\":\"73b304aa\",\"85009\":\"b6e32690\",\"85012\":\"27aeb994\",\"85036\":\"4fbadd9a\",\"85165\":\"851e7ee6\",\"85246\":\"e4560610\",\"85324\":\"85c3d25a\",\"85436\":\"3ec31dbc\",\"85443\":\"fa51b104\",\"85472\":\"3e1ce1ea\",\"85504\":\"4b44fb58\",\"85563\":\"dac7156a\",\"85638\":\"88ed07dc\",\"85645\":\"eb96b835\",\"85668\":\"6882dfd0\",\"85690\":\"8438a069\",\"85809\":\"52f74f5f\",\"85908\":\"0e6a02e2\",\"85914\":\"6fb8d42a\",\"85931\":\"99f6befe\",\"85981\":\"73d7585f\",\"85994\":\"6088ac20\",\"86010\":\"929443bd\",\"86143\":\"25d726c5\",\"86150\":\"05810ce4\",\"86187\":\"aaaeae20\",\"86197\":\"89fa8edc\",\"86254\":\"ff540d71\",\"86285\":\"49ad3b1c\",\"86327\":\"b3c6456a\",\"86378\":\"f68266e6\",\"86415\":\"b1b69f8f\",\"86423\":\"a6cce6eb\",\"86425\":\"e5409392\",\"86575\":\"31459c13\",\"86598\":\"f39f9f43\",\"86758\":\"f790a60f\",\"86761\":\"7f04058a\",\"86887\":\"0ee99608\",\"86888\":\"763936b7\",\"86897\":\"5a58eaca\",\"86989\":\"df23d004\",\"87018\":\"82b62b3e\",\"87020\":\"129f96a0\",\"87052\":\"5483c803\",\"87070\":\"e5fcf8cb\",\"87097\":\"349fbd3c\",\"87178\":\"b3605443\",\"87216\":\"5d93477d\",\"87232\":\"90308a85\",\"87238\":\"771e9118\",\"87248\":\"bd991d3b\",\"87259\":\"6d85dbb9\",\"87321\":\"1cab0bde\",\"87331\":\"aa6f52be\",\"87398\":\"eb4c51ed\",\"87452\":\"de46d237\",\"87479\":\"0f07fecd\",\"87492\":\"3c887c23\",\"87570\":\"9944c541\",\"87653\":\"d2dc7a12\",\"87673\":\"75e08568\",\"87695\":\"eb3e03da\",\"87754\":\"cd357470\",\"87776\":\"59a1082f\",\"87950\":\"60e25ac3\",\"87961\":\"1451a9d7\",\"88085\":\"c1e52765\",\"88111\":\"51acd49c\",\"88120\":\"d0e30c57\",\"88296\":\"27271655\",\"88422\":\"1b149047\",\"88521\":\"6ce6347e\",\"88529\":\"6316d0de\",\"88531\":\"b9f22503\",\"88547\":\"4881318f\",\"88611\":\"74da7585\",\"88701\":\"4fd1d3c1\",\"88703\":\"6263df87\",\"88711\":\"42815ef8\",\"88792\":\"89a6b21c\",\"88802\":\"ef492393\",\"88811\":\"b911b01b\",\"88932\":\"08beb430\",\"88966\":\"7e3412d2\",\"88971\":\"3238b6be\",\"88974\":\"0f62c6e6\",\"88994\":\"422e387b\",\"89227\":\"fdda5ee1\",\"89231\":\"c1411e7f\",\"89235\":\"fa368061\",\"89250\":\"64c412c8\",\"89282\":\"f721e60a\",\"89340\":\"ac8eb78e\",\"89347\":\"dcd99282\",\"89366\":\"34c928b3\",\"89392\":\"78f1f038\",\"89394\":\"e06b33cd\",\"89401\":\"8cd07847\",\"89442\":\"3ce2089f\",\"89479\":\"7deb176a\",\"89487\":\"b94fa101\",\"89606\":\"1aee385b\",\"89635\":\"716c64ce\",\"89644\":\"650973df\",\"89664\":\"e993c97d\",\"89670\":\"0ca4e137\",\"89727\":\"311e6440\",\"89759\":\"c7af6161\",\"89797\":\"74208f38\",\"89865\":\"387843da\",\"89872\":\"97d177f8\",\"89875\":\"ae3a4c2c\",\"89926\":\"52e62034\",\"89994\":\"640d8eb3\",\"90002\":\"3739e955\",\"90008\":\"31b9f0c2\",\"90055\":\"9014db77\",\"90091\":\"cf4deec5\",\"90092\":\"37073122\",\"90134\":\"a9651334\",\"90141\":\"8269a220\",\"90167\":\"0ec35ce9\",\"90195\":\"92856764\",\"90203\":\"60d12d1a\",\"90212\":\"833bd9b8\",\"90322\":\"5653260b\",\"90402\":\"38034a4f\",\"90444\":\"fe5088d7\",\"90521\":\"b6b4fe70\",\"90574\":\"59766b18\",\"90599\":\"578a34a3\",\"90618\":\"6a8352aa\",\"90621\":\"e593bcf0\",\"90676\":\"21bce88b\",\"90743\":\"9e57ef62\",\"90767\":\"c9bca997\",\"90813\":\"674cd8f7\",\"90824\":\"e0408621\",\"90850\":\"d00bd236\",\"90918\":\"ac7754f7\",\"91021\":\"8af7d682\",\"91064\":\"80e8f140\",\"91074\":\"7d8a6489\",\"91127\":\"2ab0e3d4\",\"91133\":\"b0712392\",\"91214\":\"315fc291\",\"91251\":\"b48c9388\",\"91273\":\"7fcbd954\",\"91300\":\"97c3f911\",\"91307\":\"3a909409\",\"91359\":\"1bf277f8\",\"91397\":\"8f3d3cb7\",\"91436\":\"200a85a7\",\"91475\":\"4c2501d9\",\"91578\":\"5894cdf9\",\"91580\":\"71030cf3\",\"91609\":\"abf0d31f\",\"91643\":\"758d44e9\",\"91657\":\"459f50dc\",\"91664\":\"d53f0953\",\"91701\":\"2eeac222\",\"91704\":\"8a5a45e7\",\"91711\":\"cced219a\",\"91848\":\"adee7a95\",\"91963\":\"a2be21cc\",\"92056\":\"0322b0c4\",\"92089\":\"8d25d7e1\",\"92118\":\"be65b6ae\",\"92124\":\"48523ddc\",\"92128\":\"53e12406\",\"92200\":\"0649ca9b\",\"92282\":\"51f3c773\",\"92305\":\"f1bb8936\",\"92314\":\"731fcc62\",\"92349\":\"67d5825c\",\"92354\":\"4aadc269\",\"92357\":\"19203d8c\",\"92379\":\"b4ab5321\",\"92524\":\"ebd295c6\",\"92529\":\"79114532\",\"92580\":\"e0000de9\",\"92609\":\"b297b731\",\"92740\":\"776f0b06\",\"92752\":\"7c87dae6\",\"92757\":\"052c1dd0\",\"92807\":\"1cdbab97\",\"92858\":\"c7d0741c\",\"92870\":\"3488dac0\",\"92892\":\"83076add\",\"92893\":\"a3cf28d4\",\"92913\":\"c0ab07f0\",\"92946\":\"9dcb83c2\",\"92974\":\"22e6609c\",\"92979\":\"27e327c7\",\"93019\":\"18bba928\",\"93056\":\"f394033f\",\"93076\":\"133f8acd\",\"93094\":\"36d7ddbd\",\"93194\":\"d66df01e\",\"93202\":\"0aaad899\",\"93214\":\"5f51000f\",\"93265\":\"ab4f445f\",\"93393\":\"45429cd5\",\"93403\":\"1e542b05\",\"93486\":\"667815bf\",\"93512\":\"ea3384c2\",\"93526\":\"802282ae\",\"93528\":\"6249b409\",\"93530\":\"ccc73de3\",\"93598\":\"15a757a8\",\"93612\":\"ef74c1b5\",\"93764\":\"5ebefc80\",\"93783\":\"34646612\",\"93792\":\"dae82340\",\"93794\":\"0802f030\",\"93832\":\"cbfe1a62\",\"93834\":\"315b508b\",\"93945\":\"2a653b03\",\"93946\":\"7da8cfba\",\"94014\":\"4f577e63\",\"94060\":\"ca7cf84c\",\"94092\":\"b8a1b5b4\",\"94107\":\"806d2aba\",\"94111\":\"f3cfa736\",\"94221\":\"83d4c4a3\",\"94295\":\"8ca153b5\",\"94344\":\"5a6cb2a1\",\"94347\":\"acc713f3\",\"94483\":\"586f6dc3\",\"94514\":\"23eca868\",\"94722\":\"e1e540d3\",\"94756\":\"c80d508d\",\"94823\":\"3fef6ec6\",\"94842\":\"e9887a2c\",\"94861\":\"638f888c\",\"94869\":\"2039b781\",\"94889\":\"ab07b448\",\"94968\":\"f0e98b24\",\"94995\":\"67311b4c\",\"95008\":\"77ed7851\",\"95037\":\"ae748f9a\",\"95051\":\"3b96f13b\",\"95116\":\"236b5b5f\",\"95119\":\"9dd1579e\",\"95152\":\"e529f139\",\"95251\":\"fe224ac5\",\"95415\":\"fdf3c863\",\"95475\":\"3aa95bfc\",\"95552\":\"f24bb0bd\",\"95588\":\"292f696c\",\"95705\":\"3c6a5642\",\"95791\":\"5822c291\",\"95809\":\"37798aaa\",\"95811\":\"acc612b2\",\"95836\":\"404c34c8\",\"95849\":\"dbbda4f2\",\"95898\":\"3fcc02ef\",\"95916\":\"0321e747\",\"96044\":\"9997f59e\",\"96047\":\"d53a3329\",\"96069\":\"7e209598\",\"96433\":\"18f09e24\",\"96462\":\"faed80cf\",\"96500\":\"78718ddd\",\"96504\":\"6e310f53\",\"96516\":\"d4b5dfb1\",\"96578\":\"03c5742c\",\"96595\":\"459d6dee\",\"96667\":\"1da548cc\",\"96671\":\"1d5b9046\",\"96753\":\"c6012a71\",\"96773\":\"0f14b38c\",\"96794\":\"34aa753a\",\"96843\":\"ab5fb1ae\",\"96872\":\"0ed0159b\",\"96880\":\"f5fd2b51\",\"96969\":\"13c828af\",\"96979\":\"9b1aee15\",\"97181\":\"0d21e902\",\"97232\":\"9dfd895f\",\"97256\":\"6a730005\",\"97332\":\"7a80f5da\",\"97374\":\"8e39bf3d\",\"97458\":\"af24ccde\",\"97514\":\"41393188\",\"97519\":\"207567d1\",\"97524\":\"a65fa4af\",\"97570\":\"e3009bb3\",\"97595\":\"c7217bcc\",\"97601\":\"e3ff8d78\",\"97623\":\"b1937d63\",\"97632\":\"d1ccd622\",\"97700\":\"ba9ae91e\",\"97758\":\"9cad3b7a\",\"97792\":\"4b8e02fe\",\"97814\":\"89822da2\",\"97925\":\"600ffb06\",\"97963\":\"6c40555e\",\"97970\":\"449cc83e\",\"98084\":\"5d0ce3d4\",\"98135\":\"4eb589ab\",\"98178\":\"35a28a0f\",\"98213\":\"52730f1e\",\"98216\":\"56c71fdb\",\"98229\":\"0fe5cde8\",\"98337\":\"77312cc8\",\"98375\":\"2795c8fb\",\"98509\":\"4b364729\",\"98523\":\"e058df85\",\"98539\":\"52f2e2ee\",\"98556\":\"d9c4d0b3\",\"98587\":\"cb70689f\",\"98661\":\"4fe4293a\",\"98701\":\"77e8c8fa\",\"98771\":\"5a714244\",\"98780\":\"a289a4da\",\"98798\":\"3c9512eb\",\"98804\":\"ec4e1cbb\",\"98868\":\"14ab7d42\",\"98874\":\"385ab795\",\"98960\":\"fcbefd4d\",\"99057\":\"8aac0a6b\",\"99087\":\"3784bbfb\",\"99132\":\"6a551f25\",\"99306\":\"c69cb7de\",\"99307\":\"33c5d33a\",\"99340\":\"11ca1dc6\",\"99348\":\"f4a073d7\",\"99452\":\"ba4bfcac\",\"99468\":\"1b5d838f\",\"99489\":\"1461b0eb\",\"99499\":\"e7a6045e\",\"99501\":\"b2240adf\",\"99536\":\"886c27fb\",\"99598\":\"2d49b6fa\",\"99625\":\"657db36a\",\"99635\":\"d8f9794b\",\"99704\":\"c6a457b5\",\"99712\":\"f8d7d8bb\",\"99746\":\"b2491b9a\",\"99808\":\"5cf9c9b3\",\"99839\":\"0016f009\",\"99900\":\"ae713ab9\",\"99970\":\"95ddacbd\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"app:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t38792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location<State = any> extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial<Path>;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an <a href> attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial<Location>;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route (<Route path=\"*\">) since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant<T>(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly<Location> {\n let location: Readonly<Location> = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial<Path>) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial<Path> {\n let parsedPath: Partial<Path> = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase<LowerCaseFormMethod>;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `<Form>`,\n * useSubmit(), `<fetcher.Form>`, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude<FormMethod, \"get\">;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude<V7_FormMethod, \"GET\">;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs<Context> {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs<Context = any>\n extends DataFunctionArgs<Context> {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs<Context = any>\n extends DataFunctionArgs<Context> {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable<unknown> | null;\n\ntype DataFunctionReturnValue = Promise<DataFunctionValue> | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction<Context = any> = {\n (\n args: LoaderFunctionArgs<Context>,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction<Context = any> {\n (\n args: ActionFunctionArgs<Context>,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise<DataStrategyResult>;\n}\n\nexport interface DataStrategyFunctionArgs<Context = any>\n extends DataFunctionArgs<Context> {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise<Record<string, DataStrategyResult>>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise<void>;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record<string, any>;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set<ImmutableRouteKey>([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne<T, Key = keyof T> = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit<T, K> & Required<Pick<T, K>> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction<R extends AgnosticRouteObject> {\n (): Promise<RequireOne<Omit<R, ImmutableRouteKey>>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction<AgnosticBaseRouteObject>;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record<string, AgnosticDataRouteObject | undefined>;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam<Path extends string> =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam<L> | _PathParam<R>\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam<Path extends string> =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam<Rest>\n : // look for params in the absence of wildcards\n _PathParam<Path>;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey<Segment extends string> =\n // if you could not find path params, fallback to `string`\n [PathParam<Segment>] extends [never] ? string : PathParam<Segment>;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params<Key extends string = string> = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch<string, AgnosticDataRouteObject> {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename = \"/\"\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial<Location> | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch<string, RouteObjectType>[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch<string, RouteObjectType>(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch<Data = unknown, Handle = unknown> {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta<RouteObjectType>[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch<RouteObjectType>[] = [],\n parentsMeta: RouteMeta<RouteObjectType>[] = [],\n parentPath = \"\"\n): RouteBranch<RouteObjectType>[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta<RouteObjectType> = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch<RouteObjectType>,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch<ParamKey, RouteObjectType>[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch<ParamKey, RouteObjectType>[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params<ParamKey>,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath<Path extends string>(\n originalPath: Path,\n params: {\n [key in PathParam<Path>]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam<Path>;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam<Path>];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern<Path extends string = string> {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch<ParamKey extends string = string> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params<ParamKey>;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable<T> = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(\n pattern: PathPattern<Path> | Path,\n pathname: string\n): PathMatch<ParamKey> | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce<Mutable<Params>>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial<Path>\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in <Link to=\"...\"> and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\" element={<Link to=\"..\"}>\n * </Route>\n *\n * <Route path=\"/\">\n * <Route path=\"accounts\">\n * <Route element={<AccountsLayout />}> // <-- Does not contribute\n * <Route index element={<Link to=\"..\"} /> // <-- Does not contribute\n * </Route\n * </Route>\n * </Route>\n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial<Path>;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `<Link to>` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how <a href> works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = <Data>(\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit<D> {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data<D>(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise<any> {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set<string> = new Set<string>();\n private controller: AbortController;\n private abortPromise: Promise<void>;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record<string, unknown>;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record<string, unknown>, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise<unknown> | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record<string, unknown>,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record<string, number>,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise<void>;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise<void>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher<TData = any>(key: string): Fetcher<TData>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map<string, AbortController>;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map<string, DeferredData>;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map<string, Fetcher>;\n\n /**\n * Map of current blockers\n */\n blockers: Map<string, Blocker>;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick<RouterState, \"loaderData\" | \"actionData\" | \"errors\">\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial<FutureConfig>;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n actionHeaders: Record<string, Headers>;\n activeDeferreds: Record<string, DeferredData> | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise<StaticHandlerContext | Response>;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise<any>;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates<TData = any> = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher<TData = any> =\n FetcherStates<TData>[keyof FetcherStates<TData>];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set<MutationFormMethod>(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set<FormMethod>(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set<RouterSubscriber>();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set<string>();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record<string, number> | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from <ScrollRestoration /> until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map<string, Set<string>> = new Map<\n string,\n Set<string>\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set<string> = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map<string, AbortController>();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map<string, number>();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set<string>();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map<string, FetchLoadMatch>();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map<string, number>();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set<string>();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map<string, DeferredData>();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map<string, BlockerFunction>();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType<AgnosticPatchRoutesOnNavigationFunction>\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n let nextHistoryUpdatePromise = new Promise<void>((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => init.history.go(delta));\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial<RouterState>,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial<Omit<RouterState, \"action\" | \"location\" | \"navigation\">>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set<string>([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise<void> {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise<void> {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a <Form method=\"post\">\n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise<HandleActionResult> {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise<HandleLoadersResult> {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial<RouterState> = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record<string, RouteData> | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, false, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result, false);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise<Record<string, DataResult>> {\n let results: Record<string, DataStrategyResult>;\n let dataResults: Record<string, DataResult> = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher<TData = any>(key: string): Fetcher<TData> {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the <ScrollRestoration> component\n function enableScrollRestoration(\n positions: Record<string, number>,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered <ScrollRestoration/>\n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl<AgnosticDataRouteObject>(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl<AgnosticDataRouteObject>(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise<DiscoverRoutesResult> {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl<AgnosticDataRouteObject>(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set<string>) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial<StaticHandlerFutureConfig>;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise<StaticHandlerContext | Response> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise<any> {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise<Omit<StaticHandlerContext, \"location\" | \"basename\"> | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map<string, DeferredData>();\n let context = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set<string>(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise<Record<string, DataResult>> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record<string, DataResult> = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set<string>,\n deletedFetchers: Set<string>,\n fetchLoadMatches: Map<string, FetchLoadMatch>,\n fetchRedirectIds: Set<string>,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType<typeof patchRoutesOnNavigationImpl>\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise<AgnosticRouteObject[]>(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record<string, any> = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType<DataStrategyFunction> {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise<Record<string, DataStrategyResult>> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise<void> | undefined,\n handlerOverride: Parameters<DataStrategyMatch[\"resolve\"]>[0],\n staticContext?: unknown\n): Promise<DataStrategyResult> {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise<DataStrategyResult> => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise<DataStrategyResult> to\n // satisfy the function return value\n let abortPromise = new Promise<DataStrategyResult>((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise<DataStrategyResult> = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise<DataResult> {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n results: Record<string, DataResult>,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map<string, DeferredData>,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record<string, Headers>;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record<string, Headers> = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: Record<string, DataResult>,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record<string, DataResult>,\n activeDeferreds: Map<string, DeferredData>\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n });\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: Record<string, DataResult>\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise<T = unknown>(val: unknown): val is Promise<T> {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit<unknown> {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record<string, DataResult>,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record<string, DataResult>,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n if (isDeferredResult(result)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\n }\n );\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise<SuccessResult | ErrorResult | undefined> {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map<string, Set<string>>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map<string, Set<string>>\n) {\n if (transitions.size > 0) {\n let json: Record<string, string[]> = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction<RouteObject>;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch<ParamKey, RouteObjectType> {}\n\nexport interface DataRouteMatch extends RouteMatch<string, DataRouteObject> {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit<NavigationContextObject, \"future\"> {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext<DataRouterContextObject | null>(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext<TrackedPromise | null>(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `<Router>` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext<NavigationContextObject>(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext<LocationContextObject>(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext<RouteContextObject>({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext<any>(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a <Router> component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a `<Router>`.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a <Router> component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * `<NavLink>`.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey<Path>,\n Path extends string\n>(pattern: PathPattern<Path> | Path): PathMatch<ParamKey> | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a <Router> component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath<ParamKey, Path>(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters<typeof React.useLayoutEffect>[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by `<Link>`s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a <Router> component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext<unknown>(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext<Context = unknown>(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `<Outlet>` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n <OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record<string, string | undefined> = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params<ParamsOrKey> : Partial<ParamsOrKey>\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `<Outlet>` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial<Location> | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a <Router> component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different <Routes> under a <Route>\n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // <Routes>\n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // <Route path=\"blog\" element={<Blog />} />\n // <Route path=\"blog/feed\" element={<BlogFeed />} />\n // </Routes>\n //\n // function Blog() {\n // return (\n // <Routes>\n // <Route path=\"post/:id\" element={<Post />} />\n // </Routes>\n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent <Route path=\"${parentPath}\"> to <Route ` +\n `path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an <Outlet /> with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n <LocationContext.Provider\n value={{\n location: {\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\",\n ...location,\n },\n navigationType: NavigationType.Pop,\n }}\n >\n {renderedMatches}\n </LocationContext.Provider>\n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n <p>💿 Hey developer 👋</p>\n <p>\n You can provide a way better UX than this when your app throws errors\n by providing your own <code style={codeStyles}>ErrorBoundary</code> or{\" \"}\n <code style={codeStyles}>errorElement</code> prop on your route.\n </p>\n </>\n );\n }\n\n return (\n <>\n <h2>Unexpected Application Error!</h2>\n <h3 style={{ fontStyle: \"italic\" }}>{message}</h3>\n {stack ? <pre style={preStyles}>{stack}</pre> : null}\n {devInfo}\n </>\n );\n}\n\nconst defaultErrorElement = <DefaultErrorComponent />;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n <RouteContext.Provider value={this.props.routeContext}>\n <RouteErrorContext.Provider\n value={this.state.error}\n children={this.props.component}\n />\n </RouteContext.Provider>\n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch<string, RouteObject>;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n <RouteContext.Provider value={routeContext}>\n {children}\n </RouteContext.Provider>\n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // `<Routes>`\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `<Route Component={...}>` in `<Routes>` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = <match.route.Component />;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n <RenderedRoute\n match={match}\n routeContext={{\n outlet,\n matches,\n isDataRoute: dataRouterState != null,\n }}\n children={children}\n />\n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n <RenderErrorBoundary\n location={dataRouterState.location}\n revalidation={dataRouterState.revalidation}\n component={errorElement}\n error={error}\n children={getChildren()}\n routeContext={{ outlet: null, matches, isDataRoute: true }}\n />\n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `<Await />` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `<Await />` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback<BlockerFunction>(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record<string, boolean> = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial<Pick<FutureConfig, \"v7_startTransition\">>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback<RouterSubscriber>(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`<RouterProvider fallbackElement>` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n future={{\n v7_relativeSplatPath: router.future.v7_relativeSplatPath,\n }}\n >\n {state.initialized || router.future.v7_partialHydration ? (\n <DataRoutes\n routes={router.routes}\n future={router.future}\n state={state}\n />\n ) : (\n fallbackElement\n )}\n </Router>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\nfunction DataRoutes({\n routes,\n future,\n state,\n}: {\n routes: DataRouteObject[];\n future: RemixRouter[\"future\"];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state, future);\n}\n\nexport interface MemoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n future?: Partial<FutureConfig>;\n}\n\n/**\n * A `<Router>` that stores all entries in memory.\n *\n * @see https://reactrouter.com/router-components/memory-router\n */\nexport function MemoryRouter({\n basename,\n children,\n initialEntries,\n initialIndex,\n future,\n}: MemoryRouterProps): React.ReactElement {\n let historyRef = React.useRef<MemoryHistory>();\n if (historyRef.current == null) {\n historyRef.current = createMemoryHistory({\n initialEntries,\n initialIndex,\n v5Compat: true,\n });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nexport interface NavigateProps {\n to: To;\n replace?: boolean;\n state?: any;\n relative?: RelativeRoutingType;\n}\n\n/**\n * Changes the current location.\n *\n * Note: This API is mostly useful in React.Component subclasses that are not\n * able to use hooks. In functional components, we recommend you use the\n * `useNavigate` hook instead.\n *\n * @see https://reactrouter.com/components/navigate\n */\nexport function Navigate({\n to,\n replace,\n state,\n relative,\n}: NavigateProps): null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of\n // the router loaded. We can help them understand how to avoid that.\n `<Navigate> may be used only in the context of a <Router> component.`\n );\n\n let { future, static: isStatic } = React.useContext(NavigationContext);\n\n warning(\n !isStatic,\n `<Navigate> must not be used on the initial render in a <StaticRouter>. ` +\n `This is a no-op, but you should modify your code so the <Navigate> is ` +\n `only ever rendered in response to some user interaction or state change.`\n );\n\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let navigate = useNavigate();\n\n // Resolve the path outside of the effect so that when effects run twice in\n // StrictMode they navigate to the same place\n let path = resolveTo(\n to,\n getResolveToMatches(matches, future.v7_relativeSplatPath),\n locationPathname,\n relative === \"path\"\n );\n let jsonPath = JSON.stringify(path);\n\n React.useEffect(\n () => navigate(JSON.parse(jsonPath), { replace, state, relative }),\n [navigate, jsonPath, relative, replace, state]\n );\n\n return null;\n}\n\nexport interface OutletProps {\n context?: unknown;\n}\n\n/**\n * Renders the child route's element, if there is one.\n *\n * @see https://reactrouter.com/components/outlet\n */\nexport function Outlet(props: OutletProps): React.ReactElement | null {\n return useOutlet(props.context);\n}\n\nexport interface PathRouteProps {\n caseSensitive?: NonIndexRouteObject[\"caseSensitive\"];\n path?: NonIndexRouteObject[\"path\"];\n id?: NonIndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<NonIndexRouteObject>;\n loader?: NonIndexRouteObject[\"loader\"];\n action?: NonIndexRouteObject[\"action\"];\n hasErrorBoundary?: NonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: NonIndexRouteObject[\"shouldRevalidate\"];\n handle?: NonIndexRouteObject[\"handle\"];\n index?: false;\n children?: React.ReactNode;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport interface LayoutRouteProps extends PathRouteProps {}\n\nexport interface IndexRouteProps {\n caseSensitive?: IndexRouteObject[\"caseSensitive\"];\n path?: IndexRouteObject[\"path\"];\n id?: IndexRouteObject[\"id\"];\n lazy?: LazyRouteFunction<IndexRouteObject>;\n loader?: IndexRouteObject[\"loader\"];\n action?: IndexRouteObject[\"action\"];\n hasErrorBoundary?: IndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: IndexRouteObject[\"shouldRevalidate\"];\n handle?: IndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n}\n\nexport type RouteProps = PathRouteProps | LayoutRouteProps | IndexRouteProps;\n\n/**\n * Declares an element that should be rendered at a certain URL path.\n *\n * @see https://reactrouter.com/components/route\n */\nexport function Route(_props: RouteProps): React.ReactElement | null {\n invariant(\n false,\n `A <Route> is only ever to be used as the child of <Routes> element, ` +\n `never rendered directly. Please wrap your <Route> in a <Routes>.`\n );\n}\n\nexport interface RouterProps {\n basename?: string;\n children?: React.ReactNode;\n location: Partial<Location> | string;\n navigationType?: NavigationType;\n navigator: Navigator;\n static?: boolean;\n future?: Partial<Pick<FutureConfig, \"v7_relativeSplatPath\">>;\n}\n\n/**\n * Provides location context for the rest of the app.\n *\n * Note: You usually won't render a `<Router>` directly. Instead, you'll render a\n * router that is more specific to your environment such as a `<BrowserRouter>`\n * in web browsers or a `<StaticRouter>` for server rendering.\n *\n * @see https://reactrouter.com/router-components/router\n */\nexport function Router({\n basename: basenameProp = \"/\",\n children = null,\n location: locationProp,\n navigationType = NavigationType.Pop,\n navigator,\n static: staticProp = false,\n future,\n}: RouterProps): React.ReactElement | null {\n invariant(\n !useInRouterContext(),\n `You cannot render a <Router> inside another <Router>.` +\n ` You should never have more than one in your app.`\n );\n\n // Preserve trailing slashes on basename, so we can let the user control\n // the enforcement of trailing slashes throughout the app\n let basename = basenameProp.replace(/^\\/*/, \"/\");\n let navigationContext = React.useMemo(\n () => ({\n basename,\n navigator,\n static: staticProp,\n future: {\n v7_relativeSplatPath: false,\n ...future,\n },\n }),\n [basename, future, navigator, staticProp]\n );\n\n if (typeof locationProp === \"string\") {\n locationProp = parsePath(locationProp);\n }\n\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n state = null,\n key = \"default\",\n } = locationProp;\n\n let locationContext = React.useMemo(() => {\n let trailingPathname = stripBasename(pathname, basename);\n\n if (trailingPathname == null) {\n return null;\n }\n\n return {\n location: {\n pathname: trailingPathname,\n search,\n hash,\n state,\n key,\n },\n navigationType,\n };\n }, [basename, pathname, search, hash, state, key, navigationType]);\n\n warning(\n locationContext != null,\n `<Router basename=\"${basename}\"> is not able to match the URL ` +\n `\"${pathname}${search}${hash}\" because it does not start with the ` +\n `basename, so the <Router> won't render anything.`\n );\n\n if (locationContext == null) {\n return null;\n }\n\n return (\n <NavigationContext.Provider value={navigationContext}>\n <LocationContext.Provider children={children} value={locationContext} />\n </NavigationContext.Provider>\n );\n}\n\nexport interface RoutesProps {\n children?: React.ReactNode;\n location?: Partial<Location> | string;\n}\n\n/**\n * A container for a nested tree of `<Route>` elements that renders the branch\n * that best matches the current location.\n *\n * @see https://reactrouter.com/components/routes\n */\nexport function Routes({\n children,\n location,\n}: RoutesProps): React.ReactElement | null {\n return useRoutes(createRoutesFromChildren(children), location);\n}\n\nexport interface AwaitResolveRenderFunction {\n (data: Awaited<any>): React.ReactNode;\n}\n\nexport interface AwaitProps {\n children: React.ReactNode | AwaitResolveRenderFunction;\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}\n\n/**\n * Component to use for rendering lazily loaded data from returning defer()\n * in a loader function\n */\nexport function Await({ children, errorElement, resolve }: AwaitProps) {\n return (\n <AwaitErrorBoundary resolve={resolve} errorElement={errorElement}>\n <ResolveAwait>{children}</ResolveAwait>\n </AwaitErrorBoundary>\n );\n}\n\ntype AwaitErrorBoundaryProps = React.PropsWithChildren<{\n errorElement?: React.ReactNode;\n resolve: TrackedPromise | any;\n}>;\n\ntype AwaitErrorBoundaryState = {\n error: any;\n};\n\nenum AwaitRenderStatus {\n pending,\n success,\n error,\n}\n\nconst neverSettledPromise = new Promise(() => {});\n\nclass AwaitErrorBoundary extends React.Component<\n AwaitErrorBoundaryProps,\n AwaitErrorBoundaryState\n> {\n constructor(props: AwaitErrorBoundaryProps) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"<Await> caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n let { children, errorElement, resolve } = this.props;\n\n let promise: TrackedPromise | null = null;\n let status: AwaitRenderStatus = AwaitRenderStatus.pending;\n\n if (!(resolve instanceof Promise)) {\n // Didn't get a promise - provide as a resolved promise\n status = AwaitRenderStatus.success;\n promise = Promise.resolve();\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_data\", { get: () => resolve });\n } else if (this.state.error) {\n // Caught a render error, provide it as a rejected promise\n status = AwaitRenderStatus.error;\n let renderError = this.state.error;\n promise = Promise.reject().catch(() => {}); // Avoid unhandled rejection warnings\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n Object.defineProperty(promise, \"_error\", { get: () => renderError });\n } else if ((resolve as TrackedPromise)._tracked) {\n // Already tracked promise - check contents\n promise = resolve;\n status =\n \"_error\" in promise\n ? AwaitRenderStatus.error\n : \"_data\" in promise\n ? AwaitRenderStatus.success\n : AwaitRenderStatus.pending;\n } else {\n // Raw (untracked) promise - track it\n status = AwaitRenderStatus.pending;\n Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n promise = resolve.then(\n (data: any) =>\n Object.defineProperty(resolve, \"_data\", { get: () => data }),\n (error: any) =>\n Object.defineProperty(resolve, \"_error\", { get: () => error })\n );\n }\n\n if (\n status === AwaitRenderStatus.error &&\n promise._error instanceof AbortedDeferredError\n ) {\n // Freeze the UI by throwing a never resolved promise\n throw neverSettledPromise;\n }\n\n if (status === AwaitRenderStatus.error && !errorElement) {\n // No errorElement, throw to the nearest route-level error boundary\n throw promise._error;\n }\n\n if (status === AwaitRenderStatus.error) {\n // Render via our errorElement\n return <AwaitContext.Provider value={promise} children={errorElement} />;\n }\n\n if (status === AwaitRenderStatus.success) {\n // Render children with resolved value\n return <AwaitContext.Provider value={promise} children={children} />;\n }\n\n // Throw to the suspense boundary\n throw promise;\n }\n}\n\n/**\n * @private\n * Indirection to leverage useAsyncValue for a render-prop API on `<Await>`\n */\nfunction ResolveAwait({\n children,\n}: {\n children: React.ReactNode | AwaitResolveRenderFunction;\n}) {\n let data = useAsyncValue();\n let toRender = typeof children === \"function\" ? children(data) : children;\n return <>{toRender}</>;\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// UTILS\n///////////////////////////////////////////////////////////////////////////////\n\n/**\n * Creates a route config from a React \"children\" object, which is usually\n * either a `<Route>` element or an array of them. Used internally by\n * `<Routes>` to create a route config from its children.\n *\n * @see https://reactrouter.com/utils/create-routes-from-children\n */\nexport function createRoutesFromChildren(\n children: React.ReactNode,\n parentPath: number[] = []\n): RouteObject[] {\n let routes: RouteObject[] = [];\n\n React.Children.forEach(children, (element, index) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements. This allows people to more easily inline\n // conditionals in their route config.\n return;\n }\n\n let treePath = [...parentPath, index];\n\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n routes.push.apply(\n routes,\n createRoutesFromChildren(element.props.children, treePath)\n );\n return;\n }\n\n invariant(\n element.type === Route,\n `[${\n typeof element.type === \"string\" ? element.type : element.type.name\n }] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n );\n\n invariant(\n !element.props.index || !element.props.children,\n \"An index route cannot have child routes.\"\n );\n\n let route: RouteObject = {\n id: element.props.id || treePath.join(\"-\"),\n caseSensitive: element.props.caseSensitive,\n element: element.props.element,\n Component: element.props.Component,\n index: element.props.index,\n path: element.props.path,\n loader: element.props.loader,\n action: element.props.action,\n errorElement: element.props.errorElement,\n ErrorBoundary: element.props.ErrorBoundary,\n hasErrorBoundary:\n element.props.ErrorBoundary != null ||\n element.props.errorElement != null,\n shouldRevalidate: element.props.shouldRevalidate,\n handle: element.props.handle,\n lazy: element.props.lazy,\n };\n\n if (element.props.children) {\n route.children = createRoutesFromChildren(\n element.props.children,\n treePath\n );\n }\n\n routes.push(route);\n });\n\n return routes;\n}\n\n/**\n * Renders the result of `matchRoutes()` into a React element.\n */\nexport function renderMatches(\n matches: RouteMatch[] | null\n): React.ReactElement | null {\n return _renderMatches(matches);\n}\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record<string, string | string[]>\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `<form method>`.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides `<form action>`.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides `<form encType>`.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n unstable_flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set<FormEncType> = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n );\n }\n\n // <button>/<input type=\"submit\"> may override attributes of <form>\n\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n\n method =\n target.getAttribute(\"formmethod\") ||\n form.getAttribute(\"method\") ||\n defaultMethod;\n encType =\n getFormEncType(target.getAttribute(\"formenctype\")) ||\n getFormEncType(form.getAttribute(\"enctype\")) ||\n defaultEncType;\n\n // Build a FormData object populated from a form and submitter\n formData = new FormData(form, target);\n\n // If this browser doesn't support the `FormData(el, submitter)` format,\n // then tack on the submitter value at the end. This is a lightweight\n // solution that is not 100% spec compliant. For complete support in older\n // browsers, consider using the `formdata-submitter-polyfill` package\n if (!isFormDataSubmitterSupported()) {\n let { name, type, value } = target;\n if (type === \"image\") {\n let prefix = name ? `${name}.` : \"\";\n formData.append(`${prefix}x`, \"0\");\n formData.append(`${prefix}y`, \"0\");\n } else if (name) {\n formData.append(name, value);\n }\n }\n } else if (isHtmlElement(target)) {\n throw new Error(\n `Cannot submit element that is not <form>, <button>, or ` +\n `<input type=\"submit|image\">`\n );\n } else {\n method = defaultMethod;\n action = null;\n encType = defaultEncType;\n body = target;\n }\n\n // Send body for <Form encType=\"text/plain\" so we encode it into text\n if (formData && encType === \"text/plain\") {\n body = formData;\n formData = undefined;\n }\n\n return { action, method: method.toLowerCase(), encType, formData, body };\n}\n","/**\n * NOTE: If you refactor this to split up the modules into separate files,\n * you'll need to update the rollup config for react-router-dom-v5-compat.\n */\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport type {\n DataRouteObject,\n FutureConfig,\n Location,\n NavigateOptions,\n NavigationType,\n Navigator,\n RelativeRoutingType,\n RouteObject,\n RouterProps,\n RouterProviderProps,\n To,\n unstable_DataStrategyFunction,\n unstable_PatchRoutesOnNavigationFunction,\n} from \"react-router\";\nimport {\n Router,\n createPath,\n useHref,\n useLocation,\n useMatches,\n useNavigate,\n useNavigation,\n useResolvedPath,\n useBlocker,\n UNSAFE_DataRouterContext as DataRouterContext,\n UNSAFE_DataRouterStateContext as DataRouterStateContext,\n UNSAFE_NavigationContext as NavigationContext,\n UNSAFE_RouteContext as RouteContext,\n UNSAFE_mapRouteProperties as mapRouteProperties,\n UNSAFE_useRouteId as useRouteId,\n UNSAFE_useRoutesImpl as useRoutesImpl,\n} from \"react-router\";\nimport type {\n BrowserHistory,\n Fetcher,\n FormEncType,\n FormMethod,\n FutureConfig as RouterFutureConfig,\n GetScrollRestorationKeyFunction,\n HashHistory,\n History,\n HTMLFormMethod,\n HydrationState,\n Router as RemixRouter,\n V7_FormMethod,\n RouterState,\n RouterSubscriber,\n BlockerFunction,\n} from \"@remix-run/router\";\nimport {\n createRouter,\n createBrowserHistory,\n createHashHistory,\n joinPaths,\n stripBasename,\n UNSAFE_ErrorResponseImpl as ErrorResponseImpl,\n UNSAFE_invariant as invariant,\n UNSAFE_warning as warning,\n matchPath,\n IDLE_FETCHER,\n} from \"@remix-run/router\";\n\nimport type {\n SubmitOptions,\n ParamKeyValuePair,\n URLSearchParamsInit,\n SubmitTarget,\n FetcherSubmitOptions,\n} from \"./dom\";\nimport {\n createSearchParams,\n defaultMethod,\n getFormSubmissionInfo,\n getSearchParamsForLocation,\n shouldProcessLinkClick,\n} from \"./dom\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Re-exports\n////////////////////////////////////////////////////////////////////////////////\n\nexport type {\n FormEncType,\n FormMethod,\n GetScrollRestorationKeyFunction,\n ParamKeyValuePair,\n SubmitOptions,\n URLSearchParamsInit,\n V7_FormMethod,\n};\nexport { createSearchParams, ErrorResponseImpl as UNSAFE_ErrorResponseImpl };\n\n// Note: Keep in sync with react-router exports!\nexport type {\n ActionFunction,\n ActionFunctionArgs,\n AwaitProps,\n Blocker,\n BlockerFunction,\n DataRouteMatch,\n DataRouteObject,\n unstable_DataStrategyFunction,\n unstable_DataStrategyFunctionArgs,\n unstable_DataStrategyMatch,\n unstable_DataStrategyResult,\n ErrorResponse,\n Fetcher,\n FutureConfig,\n Hash,\n IndexRouteObject,\n IndexRouteProps,\n JsonFunction,\n LazyRouteFunction,\n LayoutRouteProps,\n LoaderFunction,\n LoaderFunctionArgs,\n Location,\n MemoryRouterProps,\n NavigateFunction,\n NavigateOptions,\n NavigateProps,\n Navigation,\n Navigator,\n NonIndexRouteObject,\n OutletProps,\n Params,\n ParamParseKey,\n Path,\n PathMatch,\n Pathname,\n PathParam,\n PathPattern,\n PathRouteProps,\n RedirectFunction,\n RelativeRoutingType,\n RouteMatch,\n RouteObject,\n RouteProps,\n RouterProps,\n RouterProviderProps,\n RoutesProps,\n Search,\n ShouldRevalidateFunction,\n ShouldRevalidateFunctionArgs,\n To,\n UIMatch,\n unstable_PatchRoutesOnNavigationFunction,\n} from \"react-router\";\nexport {\n AbortedDeferredError,\n Await,\n MemoryRouter,\n Navigate,\n NavigationType,\n Outlet,\n Route,\n Router,\n Routes,\n createMemoryRouter,\n createPath,\n createRoutesFromChildren,\n createRoutesFromElements,\n defer,\n isRouteErrorResponse,\n generatePath,\n json,\n matchPath,\n matchRoutes,\n parsePath,\n redirect,\n redirectDocument,\n replace,\n renderMatches,\n resolvePath,\n useActionData,\n useAsyncError,\n useAsyncValue,\n useBlocker,\n useHref,\n useInRouterContext,\n useLoaderData,\n useLocation,\n useMatch,\n useMatches,\n useNavigate,\n useNavigation,\n useNavigationType,\n useOutlet,\n useOutletContext,\n useParams,\n useResolvedPath,\n useRevalidator,\n useRouteError,\n useRouteLoaderData,\n useRoutes,\n} from \"react-router\";\n\n///////////////////////////////////////////////////////////////////////////////\n// DANGER! PLEASE READ ME!\n// We provide these exports as an escape hatch in the event that you need any\n// routing data that we don't provide an explicit API for. With that said, we\n// want to cover your use case if we can, so if you feel the need to use these\n// we want to hear from you. Let us know what you're building and we'll do our\n// best to make sure we can support you!\n//\n// We consider these exports an implementation detail and do not guarantee\n// against any breaking changes, regardless of the semver release. Use with\n// extreme caution and only if you understand the consequences. Godspeed.\n///////////////////////////////////////////////////////////////////////////////\n\n/** @internal */\nexport {\n UNSAFE_DataRouterContext,\n UNSAFE_DataRouterStateContext,\n UNSAFE_NavigationContext,\n UNSAFE_LocationContext,\n UNSAFE_RouteContext,\n UNSAFE_useRouteId,\n} from \"react-router\";\n//#endregion\n\ndeclare global {\n var __staticRouterHydrationData: HydrationState | undefined;\n var __reactRouterVersion: string;\n interface Document {\n startViewTransition(cb: () => Promise<void> | void): ViewTransition;\n }\n}\n\n// HEY YOU! DON'T TOUCH THIS VARIABLE!\n//\n// It is replaced with the proper version at build time via a babel plugin in\n// the rollup config.\n//\n// Export a global property onto the window for React Router detection by the\n// Core Web Vitals Technology Report. This way they can configure the `wappalyzer`\n// to detect and properly classify live websites as being built with React Router:\n// https://github.com/HTTPArchive/wappalyzer/blob/main/src/technologies/r.json\nconst REACT_ROUTER_VERSION = \"0\";\ntry {\n window.__reactRouterVersion = REACT_ROUTER_VERSION;\n} catch (e) {\n // no-op\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Routers\n////////////////////////////////////////////////////////////////////////////////\n\ninterface DOMRouterOpts {\n basename?: string;\n future?: Partial<Omit<RouterFutureConfig, \"v7_prependBasename\">>;\n hydrationData?: HydrationState;\n unstable_dataStrategy?: unstable_DataStrategyFunction;\n unstable_patchRoutesOnNavigation?: unstable_PatchRoutesOnNavigationFunction;\n window?: Window;\n}\n\nexport function createBrowserRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createBrowserHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n unstable_dataStrategy: opts?.unstable_dataStrategy,\n unstable_patchRoutesOnNavigation: opts?.unstable_patchRoutesOnNavigation,\n window: opts?.window,\n }).initialize();\n}\n\nexport function createHashRouter(\n routes: RouteObject[],\n opts?: DOMRouterOpts\n): RemixRouter {\n return createRouter({\n basename: opts?.basename,\n future: {\n ...opts?.future,\n v7_prependBasename: true,\n },\n history: createHashHistory({ window: opts?.window }),\n hydrationData: opts?.hydrationData || parseHydrationData(),\n routes,\n mapRouteProperties,\n unstable_dataStrategy: opts?.unstable_dataStrategy,\n unstable_patchRoutesOnNavigation: opts?.unstable_patchRoutesOnNavigation,\n window: opts?.window,\n }).initialize();\n}\n\nfunction parseHydrationData(): HydrationState | undefined {\n let state = window?.__staticRouterHydrationData;\n if (state && state.errors) {\n state = {\n ...state,\n errors: deserializeErrors(state.errors),\n };\n }\n return state;\n}\n\nfunction deserializeErrors(\n errors: RemixRouter[\"state\"][\"errors\"]\n): RemixRouter[\"state\"][\"errors\"] {\n if (!errors) return null;\n let entries = Object.entries(errors);\n let serialized: RemixRouter[\"state\"][\"errors\"] = {};\n for (let [key, val] of entries) {\n // Hey you! If you change this, please change the corresponding logic in\n // serializeErrors in react-router-dom/server.tsx :)\n if (val && val.__type === \"RouteErrorResponse\") {\n serialized[key] = new ErrorResponseImpl(\n val.status,\n val.statusText,\n val.data,\n val.internal === true\n );\n } else if (val && val.__type === \"Error\") {\n // Attempt to reconstruct the right type of Error (i.e., ReferenceError)\n if (val.__subType) {\n let ErrorConstructor = window[val.__subType];\n if (typeof ErrorConstructor === \"function\") {\n try {\n // @ts-expect-error\n let error = new ErrorConstructor(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n } catch (e) {\n // no-op - fall through and create a normal Error\n }\n }\n }\n\n if (serialized[key] == null) {\n let error = new Error(val.message);\n // Wipe away the client-side stack trace. Nothing to fill it in with\n // because we don't serialize SSR stack traces for security reasons\n error.stack = \"\";\n serialized[key] = error;\n }\n } else {\n serialized[key] = val;\n }\n }\n return serialized;\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Contexts\n////////////////////////////////////////////////////////////////////////////////\n\ntype ViewTransitionContextObject =\n | {\n isTransitioning: false;\n }\n | {\n isTransitioning: true;\n flushSync: boolean;\n currentLocation: Location;\n nextLocation: Location;\n };\n\nconst ViewTransitionContext = React.createContext<ViewTransitionContextObject>({\n isTransitioning: false,\n});\nif (__DEV__) {\n ViewTransitionContext.displayName = \"ViewTransition\";\n}\n\nexport { ViewTransitionContext as UNSAFE_ViewTransitionContext };\n\n// TODO: (v7) Change the useFetcher data from `any` to `unknown`\ntype FetchersContextObject = Map<string, any>;\n\nconst FetchersContext = React.createContext<FetchersContextObject>(new Map());\nif (__DEV__) {\n FetchersContext.displayName = \"Fetchers\";\n}\n\nexport { FetchersContext as UNSAFE_FetchersContext };\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Components\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\nconst FLUSH_SYNC = \"flushSync\";\nconst flushSyncImpl = ReactDOM[FLUSH_SYNC];\nconst USE_ID = \"useId\";\nconst useIdImpl = React[USE_ID];\n\nfunction startTransitionSafe(cb: () => void) {\n if (startTransitionImpl) {\n startTransitionImpl(cb);\n } else {\n cb();\n }\n}\n\nfunction flushSyncSafe(cb: () => void) {\n if (flushSyncImpl) {\n flushSyncImpl(cb);\n } else {\n cb();\n }\n}\n\ninterface ViewTransition {\n finished: Promise<void>;\n ready: Promise<void>;\n updateCallbackDone: Promise<void>;\n skipTransition(): void;\n}\n\nclass Deferred<T> {\n status: \"pending\" | \"resolved\" | \"rejected\" = \"pending\";\n promise: Promise<T>;\n // @ts-expect-error - no initializer\n resolve: (value: T) => void;\n // @ts-expect-error - no initializer\n reject: (reason?: unknown) => void;\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = (value) => {\n if (this.status === \"pending\") {\n this.status = \"resolved\";\n resolve(value);\n }\n };\n this.reject = (reason) => {\n if (this.status === \"pending\") {\n this.status = \"rejected\";\n reject(reason);\n }\n };\n });\n }\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let [pendingState, setPendingState] = React.useState<RouterState>();\n let [vtContext, setVtContext] = React.useState<ViewTransitionContextObject>({\n isTransitioning: false,\n });\n let [renderDfd, setRenderDfd] = React.useState<Deferred<void>>();\n let [transition, setTransition] = React.useState<ViewTransition>();\n let [interruption, setInterruption] = React.useState<{\n state: RouterState;\n currentLocation: Location;\n nextLocation: Location;\n }>();\n let fetcherData = React.useRef<Map<string, any>>(new Map());\n let { v7_startTransition } = future || {};\n\n let optInStartTransition = React.useCallback(\n (cb: () => void) => {\n if (v7_startTransition) {\n startTransitionSafe(cb);\n } else {\n cb();\n }\n },\n [v7_startTransition]\n );\n\n let setState = React.useCallback<RouterSubscriber>(\n (\n newState: RouterState,\n {\n deletedFetchers,\n unstable_flushSync: flushSync,\n unstable_viewTransitionOpts: viewTransitionOpts,\n }\n ) => {\n deletedFetchers.forEach((key) => fetcherData.current.delete(key));\n newState.fetchers.forEach((fetcher, key) => {\n if (fetcher.data !== undefined) {\n fetcherData.current.set(key, fetcher.data);\n }\n });\n\n let isViewTransitionUnavailable =\n router.window == null ||\n router.window.document == null ||\n typeof router.window.document.startViewTransition !== \"function\";\n\n // If this isn't a view transition or it's not available in this browser,\n // just update and be done with it\n if (!viewTransitionOpts || isViewTransitionUnavailable) {\n if (flushSync) {\n flushSyncSafe(() => setStateImpl(newState));\n } else {\n optInStartTransition(() => setStateImpl(newState));\n }\n return;\n }\n\n // flushSync + startViewTransition\n if (flushSync) {\n // Flush through the context to mark DOM elements as transition=ing\n flushSyncSafe(() => {\n // Cancel any pending transitions\n if (transition) {\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n }\n setVtContext({\n isTransitioning: true,\n flushSync: true,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation,\n });\n });\n\n // Update the DOM\n let t = router.window!.document.startViewTransition(() => {\n flushSyncSafe(() => setStateImpl(newState));\n });\n\n // Clean up after the animation completes\n t.finished.finally(() => {\n flushSyncSafe(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({ isTransitioning: false });\n });\n });\n\n flushSyncSafe(() => setTransition(t));\n return;\n }\n\n // startTransition + startViewTransition\n if (transition) {\n // Interrupting an in-progress transition, cancel and let everything flush\n // out, and then kick off a new transition from the interruption state\n renderDfd && renderDfd.resolve();\n transition.skipTransition();\n setInterruption({\n state: newState,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation,\n });\n } else {\n // Completed navigation update with opted-in view transitions, let 'er rip\n setPendingState(newState);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: viewTransitionOpts.currentLocation,\n nextLocation: viewTransitionOpts.nextLocation,\n });\n }\n },\n [router.window, transition, renderDfd, fetcherData, optInStartTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/<Navigate>)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n // When we start a view transition, create a Deferred we can use for the\n // eventual \"completed\" render\n React.useEffect(() => {\n if (vtContext.isTransitioning && !vtContext.flushSync) {\n setRenderDfd(new Deferred<void>());\n }\n }, [vtContext]);\n\n // Once the deferred is created, kick off startViewTransition() to update the\n // DOM and then wait on the Deferred to resolve (indicating the DOM update has\n // happened)\n React.useEffect(() => {\n if (renderDfd && pendingState && router.window) {\n let newState = pendingState;\n let renderPromise = renderDfd.promise;\n let transition = router.window.document.startViewTransition(async () => {\n optInStartTransition(() => setStateImpl(newState));\n await renderPromise;\n });\n transition.finished.finally(() => {\n setRenderDfd(undefined);\n setTransition(undefined);\n setPendingState(undefined);\n setVtContext({ isTransitioning: false });\n });\n setTransition(transition);\n }\n }, [optInStartTransition, pendingState, renderDfd, router.window]);\n\n // When the new location finally renders and is committed to the DOM, this\n // effect will run to resolve the transition\n React.useEffect(() => {\n if (\n renderDfd &&\n pendingState &&\n state.location.key === pendingState.location.key\n ) {\n renderDfd.resolve();\n }\n }, [renderDfd, transition, state.location, pendingState]);\n\n // If we get interrupted with a new navigation during a transition, we skip\n // the active transition, let it cleanup, then kick it off again here\n React.useEffect(() => {\n if (!vtContext.isTransitioning && interruption) {\n setPendingState(interruption.state);\n setVtContext({\n isTransitioning: true,\n flushSync: false,\n currentLocation: interruption.currentLocation,\n nextLocation: interruption.nextLocation,\n });\n setInterruption(undefined);\n }\n }, [vtContext.isTransitioning, interruption]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`<RouterProvider fallbackElement>` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n let routerFuture = React.useMemo<RouterProps[\"future\"]>(\n () => ({\n v7_relativeSplatPath: router.future.v7_relativeSplatPath,\n }),\n [router.future.v7_relativeSplatPath]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a <script> here\n // containing the hydrated server-side staticContext (from StaticRouterProvider).\n // useId relies on the component tree structure to generate deterministic id's\n // so we need to ensure it remains the same on the client even though\n // we don't need the <script> tag\n return (\n <>\n <DataRouterContext.Provider value={dataRouterContext}>\n <DataRouterStateContext.Provider value={state}>\n <FetchersContext.Provider value={fetcherData.current}>\n <ViewTransitionContext.Provider value={vtContext}>\n <Router\n basename={basename}\n location={state.location}\n navigationType={state.historyAction}\n navigator={navigator}\n future={routerFuture}\n >\n {state.initialized || router.future.v7_partialHydration ? (\n <MemoizedDataRoutes\n routes={router.routes}\n future={router.future}\n state={state}\n />\n ) : (\n fallbackElement\n )}\n </Router>\n </ViewTransitionContext.Provider>\n </FetchersContext.Provider>\n </DataRouterStateContext.Provider>\n </DataRouterContext.Provider>\n {null}\n </>\n );\n}\n\n// Memoize to avoid re-renders when updating `ViewTransitionContext`\nconst MemoizedDataRoutes = React.memo(DataRoutes);\n\nfunction DataRoutes({\n routes,\n future,\n state,\n}: {\n routes: DataRouteObject[];\n future: RemixRouter[\"future\"];\n state: RouterState;\n}): React.ReactElement | null {\n return useRoutesImpl(routes, undefined, state, future);\n}\n\nexport interface BrowserRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: Partial<FutureConfig>;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Provides the cleanest URLs.\n */\nexport function BrowserRouter({\n basename,\n children,\n future,\n window,\n}: BrowserRouterProps) {\n let historyRef = React.useRef<BrowserHistory>();\n if (historyRef.current == null) {\n historyRef.current = createBrowserHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nexport interface HashRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: Partial<FutureConfig>;\n window?: Window;\n}\n\n/**\n * A `<Router>` for use in web browsers. Stores the location in the hash\n * portion of the URL so it is not sent to the server.\n */\nexport function HashRouter({\n basename,\n children,\n future,\n window,\n}: HashRouterProps) {\n let historyRef = React.useRef<HashHistory>();\n if (historyRef.current == null) {\n historyRef.current = createHashHistory({ window, v5Compat: true });\n }\n\n let history = historyRef.current;\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nexport interface HistoryRouterProps {\n basename?: string;\n children?: React.ReactNode;\n future?: FutureConfig;\n history: History;\n}\n\n/**\n * A `<Router>` that accepts a pre-instantiated history object. It's important\n * to note that using your own history object is highly discouraged and may add\n * two versions of the history library to your bundles unless you use the same\n * version of the history library that React Router uses internally.\n */\nfunction HistoryRouter({\n basename,\n children,\n future,\n history,\n}: HistoryRouterProps) {\n let [state, setStateImpl] = React.useState({\n action: history.action,\n location: history.location,\n });\n let { v7_startTransition } = future || {};\n let setState = React.useCallback(\n (newState: { action: NavigationType; location: Location }) => {\n v7_startTransition && startTransitionImpl\n ? startTransitionImpl(() => setStateImpl(newState))\n : setStateImpl(newState);\n },\n [setStateImpl, v7_startTransition]\n );\n\n React.useLayoutEffect(() => history.listen(setState), [history, setState]);\n\n return (\n <Router\n basename={basename}\n children={children}\n location={state.location}\n navigationType={state.action}\n navigator={history}\n future={future}\n />\n );\n}\n\nif (__DEV__) {\n HistoryRouter.displayName = \"unstable_HistoryRouter\";\n}\n\nexport { HistoryRouter as unstable_HistoryRouter };\n\nexport interface LinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\"> {\n reloadDocument?: boolean;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n to: To;\n unstable_viewTransition?: boolean;\n}\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\n/**\n * The public API for rendering a history-aware `<a>`.\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n function LinkWithRef(\n {\n onClick,\n relative,\n reloadDocument,\n replace,\n state,\n target,\n to,\n preventScrollReset,\n unstable_viewTransition,\n ...rest\n },\n ref\n ) {\n let { basename } = React.useContext(NavigationContext);\n\n // Rendered into <a href> for absolute URLs\n let absoluteHref;\n let isExternal = false;\n\n if (typeof to === \"string\" && ABSOLUTE_URL_REGEX.test(to)) {\n // Render the absolute href server- and client-side\n absoluteHref = to;\n\n // Only check for external origins client-side\n if (isBrowser) {\n try {\n let currentUrl = new URL(window.location.href);\n let targetUrl = to.startsWith(\"//\")\n ? new URL(currentUrl.protocol + to)\n : new URL(to);\n let path = stripBasename(targetUrl.pathname, basename);\n\n if (targetUrl.origin === currentUrl.origin && path != null) {\n // Strip the protocol/origin/basename for same-origin absolute URLs\n to = path + targetUrl.search + targetUrl.hash;\n } else {\n isExternal = true;\n }\n } catch (e) {\n // We can't do external URL detection without a valid URL\n warning(\n false,\n `<Link to=\"${to}\"> contains an invalid URL which will probably break ` +\n `when clicked - please update to a valid URL path.`\n );\n }\n }\n }\n\n // Rendered into <a href> for relative URLs\n let href = useHref(to, { relative });\n\n let internalOnClick = useLinkClickHandler(to, {\n replace,\n state,\n target,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n });\n function handleClick(\n event: React.MouseEvent<HTMLAnchorElement, MouseEvent>\n ) {\n if (onClick) onClick(event);\n if (!event.defaultPrevented) {\n internalOnClick(event);\n }\n }\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-has-content\n <a\n {...rest}\n href={absoluteHref || href}\n onClick={isExternal || reloadDocument ? onClick : handleClick}\n ref={ref}\n target={target}\n />\n );\n }\n);\n\nif (__DEV__) {\n Link.displayName = \"Link\";\n}\n\nexport type NavLinkRenderProps = {\n isActive: boolean;\n isPending: boolean;\n isTransitioning: boolean;\n};\n\nexport interface NavLinkProps\n extends Omit<LinkProps, \"className\" | \"style\" | \"children\"> {\n children?: React.ReactNode | ((props: NavLinkRenderProps) => React.ReactNode);\n caseSensitive?: boolean;\n className?: string | ((props: NavLinkRenderProps) => string | undefined);\n end?: boolean;\n style?:\n | React.CSSProperties\n | ((props: NavLinkRenderProps) => React.CSSProperties | undefined);\n}\n\n/**\n * A `<Link>` wrapper that knows if it's \"active\" or not.\n */\nexport const NavLink = React.forwardRef<HTMLAnchorElement, NavLinkProps>(\n function NavLinkWithRef(\n {\n \"aria-current\": ariaCurrentProp = \"page\",\n caseSensitive = false,\n className: classNameProp = \"\",\n end = false,\n style: styleProp,\n to,\n unstable_viewTransition,\n children,\n ...rest\n },\n ref\n ) {\n let path = useResolvedPath(to, { relative: rest.relative });\n let location = useLocation();\n let routerState = React.useContext(DataRouterStateContext);\n let { navigator, basename } = React.useContext(NavigationContext);\n let isTransitioning =\n routerState != null &&\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useViewTransitionState(path) &&\n unstable_viewTransition === true;\n\n let toPathname = navigator.encodeLocation\n ? navigator.encodeLocation(path).pathname\n : path.pathname;\n let locationPathname = location.pathname;\n let nextLocationPathname =\n routerState && routerState.navigation && routerState.navigation.location\n ? routerState.navigation.location.pathname\n : null;\n\n if (!caseSensitive) {\n locationPathname = locationPathname.toLowerCase();\n nextLocationPathname = nextLocationPathname\n ? nextLocationPathname.toLowerCase()\n : null;\n toPathname = toPathname.toLowerCase();\n }\n\n if (nextLocationPathname && basename) {\n nextLocationPathname =\n stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n }\n\n // If the `to` has a trailing slash, look at that exact spot. Otherwise,\n // we're looking for a slash _after_ what's in `to`. For example:\n //\n // <NavLink to=\"/users\"> and <NavLink to=\"/users/\">\n // both want to look for a / at index 6 to match URL `/users/matt`\n const endSlashPosition =\n toPathname !== \"/\" && toPathname.endsWith(\"/\")\n ? toPathname.length - 1\n : toPathname.length;\n let isActive =\n locationPathname === toPathname ||\n (!end &&\n locationPathname.startsWith(toPathname) &&\n locationPathname.charAt(endSlashPosition) === \"/\");\n\n let isPending =\n nextLocationPathname != null &&\n (nextLocationPathname === toPathname ||\n (!end &&\n nextLocationPathname.startsWith(toPathname) &&\n nextLocationPathname.charAt(toPathname.length) === \"/\"));\n\n let renderProps = {\n isActive,\n isPending,\n isTransitioning,\n };\n\n let ariaCurrent = isActive ? ariaCurrentProp : undefined;\n\n let className: string | undefined;\n if (typeof classNameProp === \"function\") {\n className = classNameProp(renderProps);\n } else {\n // If the className prop is not a function, we use a default `active`\n // class for <NavLink />s that are active. In v5 `active` was the default\n // value for `activeClassName`, but we are removing that API and can still\n // use the old default behavior for a cleaner upgrade path and keep the\n // simple styling rules working as they currently do.\n className = [\n classNameProp,\n isActive ? \"active\" : null,\n isPending ? \"pending\" : null,\n isTransitioning ? \"transitioning\" : null,\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n let style =\n typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n\n return (\n <Link\n {...rest}\n aria-current={ariaCurrent}\n className={className}\n ref={ref}\n style={style}\n to={to}\n unstable_viewTransition={unstable_viewTransition}\n >\n {typeof children === \"function\" ? children(renderProps) : children}\n </Link>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n}\n\n/**\n * Form props shared by navigations and fetchers\n */\ninterface SharedFormProps extends React.FormHTMLAttributes<HTMLFormElement> {\n /**\n * The HTTP verb to use when the form is submit. Supports \"get\", \"post\",\n * \"put\", \"delete\", \"patch\".\n */\n method?: HTMLFormMethod;\n\n /**\n * `<form encType>` - enhancing beyond the normal string type and limiting\n * to the built-in browser supported values\n */\n encType?:\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"text/plain\";\n\n /**\n * Normal `<form action>` but supports React Router's relative paths.\n */\n action?: string;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * Prevent the scroll position from resetting to the top of the viewport on\n * completion of the navigation when using the <ScrollRestoration> component\n */\n preventScrollReset?: boolean;\n\n /**\n * A function to call when the form is submitted. If you call\n * `event.preventDefault()` then this form will not do anything.\n */\n onSubmit?: React.FormEventHandler<HTMLFormElement>;\n}\n\n/**\n * Form props available to fetchers\n */\nexport interface FetcherFormProps extends SharedFormProps {}\n\n/**\n * Form props available to navigations\n */\nexport interface FormProps extends SharedFormProps {\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Forces a full document navigation instead of a fetch.\n */\n reloadDocument?: boolean;\n\n /**\n * Replaces the current entry in the browser history stack when the form\n * navigates. Use this if you don't want the user to be able to click \"back\"\n * to the page with the form on it.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Enable view transitions on this Form navigation\n */\n unstable_viewTransition?: boolean;\n}\n\ntype HTMLSubmitEvent = React.BaseSyntheticEvent<\n SubmitEvent,\n Event,\n HTMLFormElement\n>;\n\ntype HTMLFormSubmitter = HTMLButtonElement | HTMLInputElement;\n\n/**\n * A `@remix-run/router`-aware `<form>`. It behaves like a normal form except\n * that the interaction with the server is with `fetch` instead of new document\n * requests, allowing components to add nicer UX to the page as the form is\n * submitted and returns with data.\n */\nexport const Form = React.forwardRef<HTMLFormElement, FormProps>(\n (\n {\n fetcherKey,\n navigate,\n reloadDocument,\n replace,\n state,\n method = defaultMethod,\n action,\n onSubmit,\n relative,\n preventScrollReset,\n unstable_viewTransition,\n ...props\n },\n forwardedRef\n ) => {\n let submit = useSubmit();\n let formAction = useFormAction(action, { relative });\n let formMethod: HTMLFormMethod =\n method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n\n let submitHandler: React.FormEventHandler<HTMLFormElement> = (event) => {\n onSubmit && onSubmit(event);\n if (event.defaultPrevented) return;\n event.preventDefault();\n\n let submitter = (event as unknown as HTMLSubmitEvent).nativeEvent\n .submitter as HTMLFormSubmitter | null;\n\n let submitMethod =\n (submitter?.getAttribute(\"formmethod\") as HTMLFormMethod | undefined) ||\n method;\n\n submit(submitter || event.currentTarget, {\n fetcherKey,\n method: submitMethod,\n navigate,\n replace,\n state,\n relative,\n preventScrollReset,\n unstable_viewTransition,\n });\n };\n\n return (\n <form\n ref={forwardedRef}\n method={formMethod}\n action={formAction}\n onSubmit={reloadDocument ? onSubmit : submitHandler}\n {...props}\n />\n );\n }\n);\n\nif (__DEV__) {\n Form.displayName = \"Form\";\n}\n\nexport interface ScrollRestorationProps {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n}\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n */\nexport function ScrollRestoration({\n getKey,\n storageKey,\n}: ScrollRestorationProps) {\n useScrollRestoration({ getKey, storageKey });\n return null;\n}\n\nif (__DEV__) {\n ScrollRestoration.displayName = \"ScrollRestoration\";\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hooks\n////////////////////////////////////////////////////////////////////////////////\n\nenum DataRouterHook {\n UseScrollRestoration = \"useScrollRestoration\",\n UseSubmit = \"useSubmit\",\n UseSubmitFetcher = \"useSubmitFetcher\",\n UseFetcher = \"useFetcher\",\n useViewTransitionState = \"useViewTransitionState\",\n}\n\nenum DataRouterStateHook {\n UseFetcher = \"useFetcher\",\n UseFetchers = \"useFetchers\",\n UseScrollRestoration = \"useScrollRestoration\",\n}\n\n// Internal hooks\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\n// External hooks\n\n/**\n * Handles the click behavior for router `<Link>` components. This is useful if\n * you need to create custom `<Link>` components with the same click behavior we\n * use in our exported `<Link>`.\n */\nexport function useLinkClickHandler<E extends Element = HTMLAnchorElement>(\n to: To,\n {\n target,\n replace: replaceProp,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n }: {\n target?: React.HTMLAttributeAnchorTarget;\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_viewTransition?: boolean;\n } = {}\n): (event: React.MouseEvent<E, MouseEvent>) => void {\n let navigate = useNavigate();\n let location = useLocation();\n let path = useResolvedPath(to, { relative });\n\n return React.useCallback(\n (event: React.MouseEvent<E, MouseEvent>) => {\n if (shouldProcessLinkClick(event, target)) {\n event.preventDefault();\n\n // If the URL hasn't changed, a regular <a> will do a replace instead of\n // a push, so do the same here unless the replace prop is explicitly set\n let replace =\n replaceProp !== undefined\n ? replaceProp\n : createPath(location) === createPath(path);\n\n navigate(to, {\n replace,\n state,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n });\n }\n },\n [\n location,\n navigate,\n path,\n replaceProp,\n state,\n target,\n to,\n preventScrollReset,\n relative,\n unstable_viewTransition,\n ]\n );\n}\n\n/**\n * A convenient wrapper for reading and writing search parameters via the\n * URLSearchParams interface.\n */\nexport function useSearchParams(\n defaultInit?: URLSearchParamsInit\n): [URLSearchParams, SetURLSearchParams] {\n warning(\n typeof URLSearchParams !== \"undefined\",\n `You cannot use the \\`useSearchParams\\` hook in a browser that does not ` +\n `support the URLSearchParams API. If you need to support Internet ` +\n `Explorer 11, we recommend you load a polyfill such as ` +\n `https://github.com/ungap/url-search-params.`\n );\n\n let defaultSearchParamsRef = React.useRef(createSearchParams(defaultInit));\n let hasSetSearchParamsRef = React.useRef(false);\n\n let location = useLocation();\n let searchParams = React.useMemo(\n () =>\n // Only merge in the defaults if we haven't yet called setSearchParams.\n // Once we call that we want those to take precedence, otherwise you can't\n // remove a param with setSearchParams({}) if it has an initial value\n getSearchParamsForLocation(\n location.search,\n hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n ),\n [location.search]\n );\n\n let navigate = useNavigate();\n let setSearchParams = React.useCallback<SetURLSearchParams>(\n (nextInit, navigateOptions) => {\n const newSearchParams = createSearchParams(\n typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n );\n hasSetSearchParamsRef.current = true;\n navigate(\"?\" + newSearchParams, navigateOptions);\n },\n [navigate, searchParams]\n );\n\n return [searchParams, setSearchParams];\n}\n\nexport type SetURLSearchParams = (\n nextInit?:\n | URLSearchParamsInit\n | ((prev: URLSearchParams) => URLSearchParamsInit),\n navigateOpts?: NavigateOptions\n) => void;\n\n/**\n * Submits a HTML `<form>` to the server without reloading the page.\n */\nexport interface SubmitFunction {\n (\n /**\n * Specifies the `<form>` to be submitted to the server, a specific\n * `<button>` or `<input type=\"submit\">` to use to submit the form, or some\n * arbitrary data to submit.\n *\n * Note: When using a `<button>` its `name` and `value` will also be\n * included in the form data that is submitted.\n */\n target: SubmitTarget,\n\n /**\n * Options that override the `<form>`'s own attributes. Required when\n * submitting arbitrary data without a backing `<form>`.\n */\n options?: SubmitOptions\n ): void;\n}\n\n/**\n * Submits a fetcher `<form>` to the server without reloading the page.\n */\nexport interface FetcherSubmitFunction {\n (\n target: SubmitTarget,\n // Fetchers cannot replace or set state because they are not navigation events\n options?: FetcherSubmitOptions\n ): void;\n}\n\nfunction validateClientSideSubmission() {\n if (typeof document === \"undefined\") {\n throw new Error(\n \"You are calling submit during the server render. \" +\n \"Try calling submit within a `useEffect` or callback instead.\"\n );\n }\n}\n\nlet fetcherId = 0;\nlet getUniqueFetcherId = () => `__${String(++fetcherId)}__`;\n\n/**\n * Returns a function that may be used to programmatically submit a form (or\n * some arbitrary data) to the server.\n */\nexport function useSubmit(): SubmitFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseSubmit);\n let { basename } = React.useContext(NavigationContext);\n let currentRouteId = useRouteId();\n\n return React.useCallback<SubmitFunction>(\n (target, options = {}) => {\n validateClientSideSubmission();\n\n let { action, method, encType, formData, body } = getFormSubmissionInfo(\n target,\n basename\n );\n\n if (options.navigate === false) {\n let key = options.fetcherKey || getUniqueFetcherId();\n router.fetch(key, currentRouteId, options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n unstable_flushSync: options.unstable_flushSync,\n });\n } else {\n router.navigate(options.action || action, {\n preventScrollReset: options.preventScrollReset,\n formData,\n body,\n formMethod: options.method || (method as HTMLFormMethod),\n formEncType: options.encType || (encType as FormEncType),\n replace: options.replace,\n state: options.state,\n fromRouteId: currentRouteId,\n unstable_flushSync: options.unstable_flushSync,\n unstable_viewTransition: options.unstable_viewTransition,\n });\n }\n },\n [router, basename, currentRouteId]\n );\n}\n\n// v7: Eventually we should deprecate this entirely in favor of using the\n// router method directly?\nexport function useFormAction(\n action?: string,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n let { basename } = React.useContext(NavigationContext);\n let routeContext = React.useContext(RouteContext);\n invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n\n let [match] = routeContext.matches.slice(-1);\n // Shallow clone path so we can modify it below, otherwise we modify the\n // object referenced by useMemo inside useResolvedPath\n let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n\n // If no action was specified, browsers will persist current search params\n // when determining the path, so match that behavior\n // https://github.com/remix-run/remix/issues/927\n let location = useLocation();\n if (action == null) {\n // Safe to write to this directly here since if action was undefined, we\n // would have called useResolvedPath(\".\") which will never include a search\n path.search = location.search;\n\n // When grabbing search params from the URL, remove any included ?index param\n // since it might not apply to our contextual route. We add it back based\n // on match.route.index below\n let params = new URLSearchParams(path.search);\n if (params.has(\"index\") && params.get(\"index\") === \"\") {\n params.delete(\"index\");\n path.search = params.toString() ? `?${params.toString()}` : \"\";\n }\n }\n\n if ((!action || action === \".\") && match.route.index) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the form action. If this is a root navigation, then just use\n // the raw basename which allows the basename to have full control over the\n // presence of a trailing slash on root actions\n if (basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\nexport type FetcherWithComponents<TData> = Fetcher<TData> & {\n Form: React.ForwardRefExoticComponent<\n FetcherFormProps & React.RefAttributes<HTMLFormElement>\n >;\n submit: FetcherSubmitFunction;\n load: (href: string, opts?: { unstable_flushSync?: boolean }) => void;\n};\n\n// TODO: (v7) Change the useFetcher generic default from `any` to `unknown`\n\n/**\n * Interacts with route loaders and actions without causing a navigation. Great\n * for any interaction that stays on the same page.\n */\nexport function useFetcher<TData = any>({\n key,\n}: { key?: string } = {}): FetcherWithComponents<TData> {\n let { router } = useDataRouterContext(DataRouterHook.UseFetcher);\n let state = useDataRouterState(DataRouterStateHook.UseFetcher);\n let fetcherData = React.useContext(FetchersContext);\n let route = React.useContext(RouteContext);\n let routeId = route.matches[route.matches.length - 1]?.route.id;\n\n invariant(fetcherData, `useFetcher must be used inside a FetchersContext`);\n invariant(route, `useFetcher must be used inside a RouteContext`);\n invariant(\n routeId != null,\n `useFetcher can only be used on routes that contain a unique \"id\"`\n );\n\n // Fetcher key handling\n // OK to call conditionally to feature detect `useId`\n // eslint-disable-next-line react-hooks/rules-of-hooks\n let defaultKey = useIdImpl ? useIdImpl() : \"\";\n let [fetcherKey, setFetcherKey] = React.useState<string>(key || defaultKey);\n if (key && key !== fetcherKey) {\n setFetcherKey(key);\n } else if (!fetcherKey) {\n // We will only fall through here when `useId` is not available\n setFetcherKey(getUniqueFetcherId());\n }\n\n // Registration/cleanup\n React.useEffect(() => {\n router.getFetcher(fetcherKey);\n return () => {\n // Tell the router we've unmounted - if v7_fetcherPersist is enabled this\n // will not delete immediately but instead queue up a delete after the\n // fetcher returns to an `idle` state\n router.deleteFetcher(fetcherKey);\n };\n }, [router, fetcherKey]);\n\n // Fetcher additions\n let load = React.useCallback(\n (href: string, opts?: { unstable_flushSync?: boolean }) => {\n invariant(routeId, \"No routeId available for fetcher.load()\");\n router.fetch(fetcherKey, routeId, href, opts);\n },\n [fetcherKey, routeId, router]\n );\n\n let submitImpl = useSubmit();\n let submit = React.useCallback<FetcherSubmitFunction>(\n (target, opts) => {\n submitImpl(target, {\n ...opts,\n navigate: false,\n fetcherKey,\n });\n },\n [fetcherKey, submitImpl]\n );\n\n let FetcherForm = React.useMemo(() => {\n let FetcherForm = React.forwardRef<HTMLFormElement, FetcherFormProps>(\n (props, ref) => {\n return (\n <Form {...props} navigate={false} fetcherKey={fetcherKey} ref={ref} />\n );\n }\n );\n if (__DEV__) {\n FetcherForm.displayName = \"fetcher.Form\";\n }\n return FetcherForm;\n }, [fetcherKey]);\n\n // Exposed FetcherWithComponents\n let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n let data = fetcherData.get(fetcherKey);\n let fetcherWithComponents = React.useMemo(\n () => ({\n Form: FetcherForm,\n submit,\n load,\n ...fetcher,\n data,\n }),\n [FetcherForm, submit, load, fetcher, data]\n );\n\n return fetcherWithComponents;\n}\n\n/**\n * Provides all fetchers currently on the page. Useful for layouts and parent\n * routes that need to provide pending/optimistic UI regarding the fetch.\n */\nexport function useFetchers(): (Fetcher & { key: string })[] {\n let state = useDataRouterState(DataRouterStateHook.UseFetchers);\n return Array.from(state.fetchers.entries()).map(([key, fetcher]) => ({\n ...fetcher,\n key,\n }));\n}\n\nconst SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nlet savedScrollPositions: Record<string, number> = {};\n\n/**\n * When rendered inside a RouterProvider, will restore scroll positions on navigations\n */\nfunction useScrollRestoration({\n getKey,\n storageKey,\n}: {\n getKey?: GetScrollRestorationKeyFunction;\n storageKey?: string;\n} = {}) {\n let { router } = useDataRouterContext(DataRouterHook.UseScrollRestoration);\n let { restoreScrollPosition, preventScrollReset } = useDataRouterState(\n DataRouterStateHook.UseScrollRestoration\n );\n let { basename } = React.useContext(NavigationContext);\n let location = useLocation();\n let matches = useMatches();\n let navigation = useNavigation();\n\n // Trigger manual scroll restoration while we're active\n React.useEffect(() => {\n window.history.scrollRestoration = \"manual\";\n return () => {\n window.history.scrollRestoration = \"auto\";\n };\n }, []);\n\n // Save positions on pagehide\n usePageHide(\n React.useCallback(() => {\n if (navigation.state === \"idle\") {\n let key = (getKey ? getKey(location, matches) : null) || location.key;\n savedScrollPositions[key] = window.scrollY;\n }\n try {\n sessionStorage.setItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n JSON.stringify(savedScrollPositions)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${error}).`\n );\n }\n window.history.scrollRestoration = \"auto\";\n }, [storageKey, getKey, navigation.state, location, matches])\n );\n\n // Read in any saved scroll locations\n if (typeof document !== \"undefined\") {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n try {\n let sessionPositions = sessionStorage.getItem(\n storageKey || SCROLL_RESTORATION_STORAGE_KEY\n );\n if (sessionPositions) {\n savedScrollPositions = JSON.parse(sessionPositions);\n }\n } catch (e) {\n // no-op, use default empty object\n }\n }, [storageKey]);\n\n // Enable scroll restoration in the router\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n let getKeyWithoutBasename: GetScrollRestorationKeyFunction | undefined =\n getKey && basename !== \"/\"\n ? (location, matches) =>\n getKey(\n // Strip the basename to match useLocation()\n {\n ...location,\n pathname:\n stripBasename(location.pathname, basename) ||\n location.pathname,\n },\n matches\n )\n : getKey;\n let disableScrollRestoration = router?.enableScrollRestoration(\n savedScrollPositions,\n () => window.scrollY,\n getKeyWithoutBasename\n );\n return () => disableScrollRestoration && disableScrollRestoration();\n }, [router, basename, getKey]);\n\n // Restore scrolling when state.restoreScrollPosition changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(() => {\n // Explicit false means don't do anything (used for submissions)\n if (restoreScrollPosition === false) {\n return;\n }\n\n // been here before, scroll to it\n if (typeof restoreScrollPosition === \"number\") {\n window.scrollTo(0, restoreScrollPosition);\n return;\n }\n\n // try to scroll to the hash\n if (location.hash) {\n let el = document.getElementById(\n decodeURIComponent(location.hash.slice(1))\n );\n if (el) {\n el.scrollIntoView();\n return;\n }\n }\n\n // Don't reset if this navigation opted out\n if (preventScrollReset === true) {\n return;\n }\n\n // otherwise go to the top on new locations\n window.scrollTo(0, 0);\n }, [location, restoreScrollPosition, preventScrollReset]);\n }\n}\n\nexport { useScrollRestoration as UNSAFE_useScrollRestoration };\n\n/**\n * Setup a callback to be fired on the window's `beforeunload` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nexport function useBeforeUnload(\n callback: (event: BeforeUnloadEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"beforeunload\", callback, opts);\n return () => {\n window.removeEventListener(\"beforeunload\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Setup a callback to be fired on the window's `pagehide` event. This is\n * useful for saving some data to `window.localStorage` just before the page\n * refreshes. This event is better supported than beforeunload across browsers.\n *\n * Note: The `callback` argument should be a function created with\n * `React.useCallback()`.\n */\nfunction usePageHide(\n callback: (event: PageTransitionEvent) => any,\n options?: { capture?: boolean }\n): void {\n let { capture } = options || {};\n React.useEffect(() => {\n let opts = capture != null ? { capture } : undefined;\n window.addEventListener(\"pagehide\", callback, opts);\n return () => {\n window.removeEventListener(\"pagehide\", callback, opts);\n };\n }, [callback, capture]);\n}\n\n/**\n * Wrapper around useBlocker to show a window.confirm prompt to users instead\n * of building a custom UI with useBlocker.\n *\n * Warning: This has *a lot of rough edges* and behaves very differently (and\n * very incorrectly in some cases) across browsers if user click addition\n * back/forward navigations while the confirm is open. Use at your own risk.\n */\nfunction usePrompt({\n when,\n message,\n}: {\n when: boolean | BlockerFunction;\n message: string;\n}) {\n let blocker = useBlocker(when);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\") {\n let proceed = window.confirm(message);\n if (proceed) {\n // This timeout is needed to avoid a weird \"race\" on POP navigations\n // between the `window.history` revert navigation and the result of\n // `window.confirm`\n setTimeout(blocker.proceed, 0);\n } else {\n blocker.reset();\n }\n }\n }, [blocker, message]);\n\n React.useEffect(() => {\n if (blocker.state === \"blocked\" && !when) {\n blocker.reset();\n }\n }, [blocker, when]);\n}\n\nexport { usePrompt as unstable_usePrompt };\n\n/**\n * Return a boolean indicating if there is an active view transition to the\n * given href. You can use this value to render CSS classes or viewTransitionName\n * styles onto your elements\n *\n * @param href The destination href\n * @param [opts.relative] Relative routing type (\"route\" | \"path\")\n */\nfunction useViewTransitionState(\n to: To,\n opts: { relative?: RelativeRoutingType } = {}\n) {\n let vtContext = React.useContext(ViewTransitionContext);\n\n invariant(\n vtContext != null,\n \"`unstable_useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. \" +\n \"Did you accidentally import `RouterProvider` from `react-router`?\"\n );\n\n let { basename } = useDataRouterContext(\n DataRouterHook.useViewTransitionState\n );\n let path = useResolvedPath(to, { relative: opts.relative });\n if (!vtContext.isTransitioning) {\n return false;\n }\n\n let currentPath =\n stripBasename(vtContext.currentLocation.pathname, basename) ||\n vtContext.currentLocation.pathname;\n let nextPath =\n stripBasename(vtContext.nextLocation.pathname, basename) ||\n vtContext.nextLocation.pathname;\n\n // Transition is active if we're going to or coming from the indicated\n // destination. This ensures that other PUSH navigations that reverse\n // an indicated transition apply. I.e., on the list view you have:\n //\n // <NavLink to=\"/details/1\" unstable_viewTransition>\n //\n // If you click the breadcrumb back to the list view:\n //\n // <NavLink to=\"/list\" unstable_viewTransition>\n //\n // We should apply the transition because it's indicated as active going\n // from /list -> /details/1 and therefore should be active on the reverse\n // (even though this isn't strictly a POP reverse)\n return (\n matchPath(path.pathname, nextPath) != null ||\n matchPath(path.pathname, currentPath) != null\n );\n}\n\nexport { useViewTransitionState as unstable_useViewTransitionState };\n\n//#endregion\n","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\r\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = useContext(context);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n };\n}\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport const useReduxContext = /*#__PURE__*/createReduxContextHook();","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return <div>{counter}</div>\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch<any>,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a <Provider>, ` + `or pass a custom React context provider to <Provider> and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext, createReduxContextHook } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : // @ts-ignore\n createReduxContextHook(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return <div>{store.getState()}</div>\r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n * <div>\r\n * <span>{value}</span>\r\n * <button onClick={increaseCounter}>Increase counter</button>\r\n * </div>\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nimport THEME_ID from '../styles/identifier';\nimport boxClasses from './boxClasses';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","export var IconsManifest = [\n {\n \"id\": \"ci\",\n \"name\": \"Circum Icons\",\n \"projectUrl\": \"https://circumicons.com/\",\n \"license\": \"MPL-2.0 license\",\n \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n },\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome 5\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"fa6\",\n \"name\": \"Font Awesome 6\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"lu\",\n \"name\": \"Lucide\",\n \"projectUrl\": \"https://lucide.dev/\",\n \"license\": \"ISC\",\n \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"hi2\",\n \"name\": \"Heroicons 2\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"sl\",\n \"name\": \"Simple Line Icons\",\n \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"tb\",\n \"name\": \"Tabler Icons\",\n \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"tfi\",\n \"name\": \"Themify Icons\",\n \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n },\n {\n \"id\": \"rx\",\n \"name\": \"Radix Icons\",\n \"projectUrl\": \"https://icons.radix-ui.com\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"pi\",\n \"name\": \"Phosphor Icons\",\n \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n },\n {\n \"id\": \"lia\",\n \"name\": \"Icons8 Line Awesome\",\n \"projectUrl\": \"https://icons8.com/line-awesome\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n }\n]","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\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(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function Si1001Tracklists (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.0957 1.334v1.3457H6.7461v1.3457H5.3984V5.371H4.0488v1.3457H2.6992v6.6816H1.3496v1.3477H0v2.4512h1.3496v1.3457h1.3496v1.3457h2.457v-7.836H3.8067V7.8223h1.3497V6.4766h1.3496V5.1309h1.3496V3.7852h8.289v1.3457h1.3496v1.3457h1.3496v1.3457h1.3497v4.2304h-1.3497v7.836h2.457V18.543h1.3497v-1.3457H24V14.746h-1.3496v-1.3477h-1.3496V6.7168h-1.3496V5.3711h-1.3496V4.0254h-1.3477V2.6797h-1.3496V1.334Zm1.3711 8v1.3515H8.1113v3.8165h2.4688v-4.0567h2.9512v4.3477h-1.3555v1.3515h-1.3535v2.4649h2.4668v-2.7051H16v-5.2188h-1.3555V9.334Zm1.3555 10.8691v2.463h2.4668v-2.463z\"},\"child\":[]}]})(props);\n};\nexport function Si1And1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm11.717 5.792c1.564 0 2.671 1.04 2.671 2.468 0 1.044-.428 1.819-1.746 2.915l1.952 2.648c.163-.147.303-1.046.274-1.777-.003-.087-.022-.341-.04-.62h1.814c0 .244.024.595.024.683 0 1.426-.224 2.327-.909 3.198L17.2 17.22h-2.232l-.503-.678c-.823.659-1.546.905-2.713.898-2.284-.013-3.857-1.173-4.005-3.239-.089-1.235.737-2.506 2.32-3.42C9.049 9.477 8.84 9.025 8.84 8.207c0-1.392 1.191-2.415 2.878-2.415zm-9.424.134h4.064v11.296H4.1V7.735H2.293zm14.45 0h4.065v11.296H18.55V7.735h-1.807zm-5.036 1.49c-.545 0-.931.358-.931.845 0 .47.14.726.79 1.562.772-.557 1.058-1.075 1.058-1.58 0-.504-.354-.828-.917-.828zm-.517 4.811c-1.002.663-1.404 1.31-1.386 1.919.03.928.806 1.522 1.948 1.522.703 0 1.174-.257 1.579-.594z\"},\"child\":[]}]})(props);\n};\nexport function Si1Dot1Dot1Dot1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.389 0A5.377 5.377 0 0 0 0 5.389V18.61A5.377 5.377 0 0 0 5.389 24H18.61A5.377 5.377 0 0 0 24 18.611V5.39A5.377 5.377 0 0 0 18.611 0Zm11.546 4.595h.942v3.122h.69v.868h-.69v1.201h-1.001V8.585H14.68v-.964zm-6.07.589h2.523v14.842h-3.094V9.79H6.68V7.805c.95-.042 1.616-.103 1.997-.184.606-.13 1.1-.39 1.48-.779.26-.266.457-.62.592-1.064.077-.267.116-.464.116-.594Zm5.989.73L15.513 7.72h1.365V5.915Z\"},\"child\":[]}]})(props);\n};\nexport function Si1Panel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 0 10.349 6v12L12 24 1.651 18V6zm0 .326L1.897 6.158v11.664L12 23.653l10.103-5.831V6.158zM8.84 20.523l-5.801-3.349V6.826L12 1.653l2.23 1.287-8.925 5.195v7.73l5.792 3.345zm6.299-17.058 5.822 3.361v10.348L12 22.347l-2.274-1.312 8.969-5.17v-7.73l-5.823-3.362zm-2.137 3.35v2.869l.024 7.666-.691.384-2.18-1.249.008-6.801H8.958L8.95 8.351l3.412-1.965z\"},\"child\":[]}]})(props);\n};\nexport function Si1Password (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .007C5.373.007 0 5.376 0 11.999c0 6.624 5.373 11.994 12 11.994S24 18.623 24 12C24 5.376 18.627.007 12 .007Zm-.895 4.857h1.788c.484 0 .729.002.914.096a.86.86 0 0 1 .377.377c.094.185.095.428.095.912v6.016c0 .12 0 .182-.015.238a.427.427 0 0 1-.067.137.923.923 0 0 1-.174.162l-.695.564c-.113.092-.17.138-.191.194a.216.216 0 0 0 0 .15c.02.055.078.101.191.193l.695.565c.094.076.14.115.174.162.03.042.053.087.067.137a.936.936 0 0 1 .015.238v2.746c0 .484-.001.727-.095.912a.86.86 0 0 1-.377.377c-.185.094-.43.096-.914.096h-1.788c-.484 0-.726-.002-.912-.096a.86.86 0 0 1-.377-.377c-.094-.185-.095-.428-.095-.912v-6.016c0-.12 0-.182.015-.238a.437.437 0 0 1 .067-.139c.034-.047.08-.083.174-.16l.695-.564c.113-.092.17-.138.191-.194a.216.216 0 0 0 0-.15c-.02-.055-.078-.101-.191-.193l-.695-.565a.92.92 0 0 1-.174-.162.437.437 0 0 1-.067-.139.92.92 0 0 1-.015-.236V6.25c0-.484.001-.727.095-.912a.86.86 0 0 1 .377-.377c.186-.094.428-.096.912-.096z\"},\"child\":[]}]})(props);\n};\nexport function Si2Fas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.918 0-1.833.12-2.72.355L4.07 1.748a2.64 2.64 0 0 0-1.96 2.547v9.115a7.913 7.913 0 0 0 3.552 6.606l5.697 3.765a1.32 1.32 0 0 0 1.467-.008l5.572-3.752a7.931 7.931 0 0 0 3.493-6.57V4.295a2.638 2.638 0 0 0-1.961-2.547L14.72.355A10.594 10.594 0 0 0 12 0ZM7.383 5.4h9.228c.726 0 1.32.594 1.32 1.32 0 .734-.587 1.32-1.32 1.32H7.383c-.727 0-1.32-.593-1.32-1.32 0-.726.593-1.32 1.32-1.32zM7.38 9.357h3.299c.727 0 1.32.595 1.32 1.32a1.32 1.32 0 0 1-1.318 1.32H7.38c-.726 0-1.32-.592-1.32-1.32 0-.725.594-1.32 1.32-1.32zm0 3.96c.727 0 1.32.593 1.32 1.32 0 .727-.586 1.318-1.32 1.318-.726 0-1.32-.592-1.32-1.318 0-.727.594-1.32 1.32-1.32z\"},\"child\":[]}]})(props);\n};\nexport function Si2K (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .002v23.997h24V.002H0Zm10.962 5.592c2.36 0 4.443.416 3.799 2.423-.434 1.365-2.017 1.918-3.114 2.109l-2.757.489c-.655.114-1.039.277-1.3.549h6.012l-.818 2.529 3.446-2.529h3.755l-4.091 2.772 2.07 4.402h-3.766l-1.082-2.754-1.197.826-.619 1.928H8.471l1.718-5.374h-6.25C4.874 10.2 6.891 9.36 8.731 8.989l2.264-.457c.387-.07.64-.259.736-.557.136-.416-.32-.581-.994-.581-.784 0-1.604.074-1.984 1.005H5.646c1.009-2.474 3.483-2.805 5.316-2.805Z\"},\"child\":[]}]})(props);\n};\nexport function Si30Secondsofcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.895 12c0 .734-.593 1.328-1.324 1.328h-.58a6.666 6.666 0 0 1-.389 5.09 6.633 6.633 0 0 1-2.22 2.508 6.6 6.6 0 0 1-9.028-1.619l-.044-.06c-.47-.563-.397-1.4.163-1.872a1.32 1.32 0 0 1 1.864.164l.158.207a3.972 3.972 0 0 0 3.523 1.63 3.96 3.96 0 0 0 3.226-2.163A3.997 3.997 0 0 0 7.771 12 3.977 3.977 0 0 0 9.45 9.927a3.997 3.997 0 0 0-1.537-4.644 3.96 3.96 0 0 0-5.417.971l-.158.208a1.32 1.32 0 0 1-1.864.163A1.332 1.332 0 0 1 .31 4.754l.044-.061a6.622 6.622 0 0 1 2.583-2.128 6.595 6.595 0 0 1 6.446.51 6.634 6.634 0 0 1 2.22 2.506 6.662 6.662 0 0 1 .389 5.09h.58c.73 0 1.323.595 1.323 1.329Zm-.067 5.21a8.28 8.28 0 0 1-1.196 2.811 6.628 6.628 0 0 0 4.717 1.964A6.654 6.654 0 0 0 24 15.328V8.672a6.654 6.654 0 0 0-6.651-6.657c-1.844 0-3.513.75-4.717 1.964a8.28 8.28 0 0 1 1.196 2.81 3.99 3.99 0 0 1 7.511 1.883v6.656a3.992 3.992 0 0 1-7.51 1.883Z\"},\"child\":[]}]})(props);\n};\nexport function Si365Datascience (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.4995 13.6448v-.8577h.8188c.5752 0 1.183-.152 1.1905-.6681 0-.3178-.2587-.7385-1.1666-.7385-.5024 0-1.183.1746-1.183.6832h-1.07c0-1.1993 1.2156-1.6326 2.2605-1.6326 1.07 0 2.2204.5086 2.2291 1.6916a1.1716 1.1716 0 0 1-.7861 1.0876c.5425.1746.9243.6995.9243 1.168 0 1.3588-1.3049 1.7581-2.3987 1.7581-1.0938 0-2.3108-.4345-2.3183-1.6979h1.0775c0 .5727.7862.7711 1.2483.7711.5426 0 1.2647-.2223 1.2647-.8188 0-.3328-.1871-.746-1.2081-.746zm5.0083-1.4304v.8339c.2512-.3768.8666-.5878 1.3124-.5878 1.1428 0 2.3422.4685 2.3422 1.8512 0 1.232-1.207 1.8436-2.3497 1.8436-1.1429 0-2.3673-.6116-2.3673-1.8587V12.222c0-1.2395 1.168-1.8184 2.3346-1.8184 1.232 0 2.3259.476 2.3259 1.6439H9.0422c0-.4923-.628-.7385-1.2396-.7385-.6405-.0075-1.2885.3341-1.2885.9369zm2.5934 2.0973c0-.6116-.5677-.9369-1.281-.9369-.7133 0-1.3212.3177-1.3124.9369.0088.6191.6079.908 1.3049.908.6718 0 1.2885-.2964 1.2885-.908zm5.9967-2.8119h-3.063v.977h1.1013c1.2082 0 2.2857.4848 2.2781 1.7872 0 1.2633-1.0787 1.8674-2.2216 1.8674-1.247 0-2.317-.437-2.3258-1.7406h1.0637c0 .6129.7133.771 1.2483.771.535 0 1.1742-.2385 1.1742-.8978.0088-.628-.6279-.81-1.2156-.81h-2.1488v-2.94h4.1092zm7.9169-3.6897a.9494.9494 0 0 0-.4559 1.7808l-1.9252 4.7183a.9444.9444 0 0 0-.7988.0829l-2.047-2.3422a.9432.9432 0 0 0-.089-1.27.9431.9431 0 0 0-1.4105 1.2412.943.943 0 0 0 1.2483.2498l2.0458 2.3422a.9518.9518 0 0 0-.2072.5927.9491.9491 0 0 0 .2654.6936.9493.9493 0 0 0 1.5701-.3198.9491.9491 0 0 0 .062-.3738.9432.9432 0 0 0-.3427-.7296l1.949-4.7723a.8264.8264 0 0 0 .137.0101.9493.9493 0 0 0 .9083-.5775.9493.9493 0 0 0-.2148-1.0547.9495.9495 0 0 0-.6936-.2654Z\"},\"child\":[]}]})(props);\n};\nexport function Si3M (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.903 5.954L17.17 13.03l-1.739-7.076h-5.099v2.613C9.72 6.28 7.56 5.706 5.558 5.674 3.12 5.641.563 6.701.469 9.936h3.373c0-.977.747-1.536 1.588-1.523 1.032-.008 1.508.434 1.533 1.124-.036.597-.387 1.014-1.525 1.014H4.303V12.9h1.03c.584 0 1.399.319 1.431 1.155.04.995-.652 1.435-1.501 1.443-1.517-.053-1.763-1.225-1.763-2.23H0c.015.677-.151 5.091 5.337 5.059 2.629.025 4.464-1.085 5.003-2.613v2.342h3.455v-7.632l1.867 7.634h3.018l1.875-7.626v7.634H24V5.954h-5.097zm-8.561 7.06c-.429-.893-1.034-1.284-1.376-1.407.714-.319 1.09-.751 1.376-1.614v3.021z\"},\"child\":[]}]})(props);\n};\nexport function Si42 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.581 16.851H24v-4.439ZM24 3.574h-4.419v4.42l-4.419 4.418v4.44h4.419v-4.44L24 7.993Zm-4.419 0h-4.419v4.42zm-6.324 8.838H4.419l8.838-8.838H8.838L0 12.412v3.595h8.838v4.419h4.419z\"},\"child\":[]}]})(props);\n};\nexport function Si4Chan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.07 8.82S9.803 1.079 5.145 1.097C2.006 1.109.78 4.124 3.055 4.802c0 0-2.698.973-2.698 2.697 0 1.725 4.274 3.54 10.713 1.32zm1.931 5.924s.904 7.791 5.558 7.991c3.136.135 4.503-2.82 2.262-3.604 0 0 2.74-.845 2.82-2.567.08-1.723-4.105-3.737-10.64-1.82zm-3.672-1.55s-7.532 2.19-6.952 6.813c.39 3.114 3.53 3.969 3.93 1.63 0 0 1.29 2.559 3.002 2.351 1.712-.208 3-4.67.02-10.794zm5.623-2.467s7.727-1.35 7.66-6.008c-.046-3.138-3.074-4.333-3.728-2.051 0 0-1-2.686-2.726-2.668-1.724.018-3.494 4.312-1.206 10.727z\"},\"child\":[]}]})(props);\n};\nexport function Si4D (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.64 0v24H3.36V0h17.28zM10.49 11.827c-.115.138-5.882 6.789-5.983 6.9-.058.07-.187.194-.187.36 0 .153.187.208.36.208h4.4v-1.067H5.83c.49-.61 3.38-3.824 3.696-4.226v5.34c0 .194-.005.965-.043 1.602-.029.43-.13.637-.661.693-.23.027-.533.041-.662.041-.072 0-.115.083-.115.18 0 .097.072.167.23.167.777 0 1.539-.042 1.942-.042 1.236 0 2.646.097 3.178.097 2.618 0 4.099-.97 4.746-1.607.791-.776 1.539-2.093 1.539-3.81 0-1.622-.662-2.758-1.38-3.465-1.54-1.565-3.913-1.565-5.682-1.565-.56 0-1.035.027-1.064.027-.388.042-.345-.124-.59-.138-.158-.014-.258.055-.474.305zm1.898.443c1.108 0 2.719.166 4.027 1.372.604.554 1.367 1.676 1.367 3.408 0 1.414-.288 2.66-1.194 3.409-.849.706-1.812.984-3.265.984-1.122 0-1.683-.291-1.87-.54-.115-.153-.172-.694-.186-1.04 0-.097-.015-.29-.015-.568h1.021c.245 0 .317-.055.389-.18.1-.18.244-.735.244-.86 0-.11-.057-.166-.13-.166-.086 0-.273.139-.647.139h-.877v-5.584c0-.152.058-.222.173-.277.115-.056.676-.097.963-.097z\"},\"child\":[]}]})(props);\n};\nexport function Si500Px (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.451 8.9995A3.0005 3.0005 0 1 0 10.4514 12a3.0275 3.0275 0 0 0-3.0006-3.0005Zm0 5.371A2.3554 2.3554 0 1 1 9.7912 12a2.3704 2.3704 0 0 1-2.3404 2.3704Zm6.448-5.371A3.0005 3.0005 0 1 0 16.8997 12a3.0005 3.0005 0 0 0-3.0005-3.0005Zm0 5.371A2.3554 2.3554 0 1 1 16.2396 12a2.3314 2.3314 0 0 1-2.3404 2.3704zM2.29 10.7997a2.0224 2.0224 0 0 0-1.5903.42V9.6297h2.7005c.09 0 .15-.03.15-.3 0-.2701-.12-.2701-.18-.2701H.3997a.27.27 0 0 0-.27.27V11.97c0 .15.09.18.24.21a.228.228 0 0 0 .27-.06A1.7073 1.7073 0 0 1 2.14 11.4 1.5603 1.5603 0 0 1 3.4902 12.72 1.5183 1.5183 0 0 1 2.17 14.4004h-.18a1.5303 1.5303 0 0 1-1.4103-.9901c-.03-.09-.09-.15-.33-.06-.2401.09-.2701.15-.2401.24a2.1274 2.1274 0 0 0 2.7005 1.2602A2.1274 2.1274 0 0 0 3.9703 12.15 2.1004 2.1004 0 0 0 2.29 10.7998zm16.65-1.7703a1.6263 1.6263 0 0 0-1.4403 1.6203v2.6704c0 .15.12.18.3.18s.3001-.03.3001-.18v-2.6704a1.0082 1.0082 0 0 1 .8702-1.0202.9872.9872 0 0 1 .7501.24.9572.9572 0 0 1 .33.7202 1.2002 1.2002 0 0 1-.21.57A.9452.9452 0 0 1 19 11.55c-.12 0-.21 0-.24.27 0 .1801 0 .2701.15.3001a1.4763 1.4763 0 0 0 .8701-.18 1.6113 1.6113 0 0 0 .8702-1.2602 1.5543 1.5543 0 0 0-1.4463-1.6803.8311.8311 0 0 1-.264.03zm3.9307 1.5602 1.0802-1.0801c.03-.03.12-.12-.06-.3301a.3.3 0 0 0-.2101-.12.156.156 0 0 0-.12.06l-1.0802 1.0802-1.0802-1.1102c-.09-.09-.18-.06-.33.06-.15.12-.15.24-.06.33l1.0801 1.0802-1.0862 1.1102a.228.228 0 0 0-.06.12.252.252 0 0 0 .12.2101.483.483 0 0 0 .21.12.318.318 0 0 0 .1501-.06l1.0802-1.0802 1.0802 1.0802a.156.156 0 0 0 .12.06.3.3 0 0 0 .21-.12c.09-.12.12-.24.03-.3z\"},\"child\":[]}]})(props);\n};\nexport function Si7Zip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 18.858h24V8.181H10.717V5.142H0ZM2.021 7.271h6.657v1.994c-1.74 2.09-2.84 4.502-2.948 7.404H3.477c.09-2.501.353-4.954 2.283-6.994l.033-.033H2.021Zm8.45 1.253h13.215v10.143H10.47Zm6.01 1.213v6.871h1.482v-6.87Zm2.755.043v6.912h1.616v-2.42h1.029c.43-.001.754-.29.969-.716.427-.848.429-2.257-.024-3.092-.227-.419-.571-.697-1.033-.684zm-7.924.002v1.596h2.217l-2.304 3.736v1.54h4.287V15.1h-2.698l2.786-3.909v-1.41Zm9.452 1.512h.595c.164-.006.287.081.371.217.17.273.172.736.004.99a.364.364 0 0 1-.373.176l-.55.047z\"},\"child\":[]}]})(props);\n};\nexport function Si99Designs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.6504 13.7786c0 1.163-.943 2.1059-2.1059 2.1059-1.163 0-2.1059-.943-2.1059-2.1059 0-1.163.943-2.1059 2.1059-2.1059 1.163 0 2.1059.943 2.1059 2.106zm-7.557-3.5718c0 1.0842-.8775 2.0229-2.0228 2.0229-1.117 0-2.0231-.9059-2.0231-2.0229s.906-2.0231 2.0231-2.0231c1.117 0 2.0229.906 2.0229 2.0231zm-7.6605 0c0 1.0822-.8759 2.0229-2.0231 2.0229-1.117 0-2.0228-.9059-2.0228-2.0229s.9058-2.0231 2.0228-2.0231 2.0231.906 2.0231 2.0231zm11.008 7.663c.9166.3985 2.2434.466 3.1223.0578.392-.182.7534-.4776 1.0847-.8858v.8776H24V6.0624h-2.4847v4.2717c-.707-.6853-1.4491-.9773-2.451-.9773-1.0589 0-1.9244.3524-2.5844.9162.0003-.0221.0006-.044.0006-.0662 0-2.435-1.9751-4.4098-4.4099-4.4098-1.6397 0-3.0704.8951-3.8305 2.2236C7.4803 6.692 6.0493 5.797 4.4098 5.797 1.9748 5.797 0 7.7718 0 10.2068c0 2.3312 1.81 4.2403 4.101 4.399L2.188 17.9193H5.057c1.061-1.8422 2.1222-3.6844 3.1831-5.5266.712 1.244 2.0124 2.1083 3.5216 2.213l-1.913 3.3136h2.8688l2.2372-3.8842c.0665 1.5842.868 3.1305 2.4863 3.8345\"},\"child\":[]}]})(props);\n};\nexport function Si9Gag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.279 21.008 5.193-2.995V5.992l-5.193-2.996C14.423 1.348 12.048 0 12 0c-.048 0-2.423 1.348-5.279 2.996L1.528 5.992v2.354l5.193 2.996c2.856 1.648 5.232 2.996 5.28 2.996.048 0 1.469-.797 3.157-1.772a229.633 229.633 0 0 1 3.097-1.772c.016 0 .027 1.096.027 2.437l-.002 2.436-3.076 1.772c-1.692.975-3.115 1.783-3.163 1.795-.048.013-1.471-.776-3.162-1.752-1.69-.976-3.113-1.775-3.161-1.775-.155 0-4.036 2.274-4.011 2.35.031.093 10.136 5.937 10.276 5.943.057.002 2.44-1.344 5.296-2.992ZM9.847 8.391c-1.118-.65-2.033-1.2-2.033-1.222 0-.071 4.06-2.376 4.186-2.376.125 0 4.186 2.305 4.186 2.376 0 .063-4.047 2.375-4.184 2.39-.068.007-1.037-.519-2.155-1.168Z\"},\"child\":[]}]})(props);\n};\nexport function SiAbbott (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.812 2.4H0v3.197h19.773V5.6a1.03 1.03 0 0 1 1.032 1.031v10.742l-.004.007a1.034 1.034 0 0 1-1.034 1.025H4.23c-.569 0-1.033-.46-1.033-1.033v-4.34c0-.57.464-1.032 1.033-1.032H17.6V8.803H3.188A3.185 3.185 0 0 0 0 11.99v6.423A3.188 3.188 0 0 0 3.188 21.6h17.624A3.187 3.187 0 0 0 24 18.412V5.587A3.186 3.186 0 0 0 20.812 2.4\"},\"child\":[]}]})(props);\n};\nexport function SiAbbrobotstudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.999 12.465a9.601 9.601 0 01-19.203 0h1.07a8.53 8.53 0 108.533-8.53v-1.07A9.6 9.6 0 0124 12.463zm-9.6-3.2a3.2 3.2 0 103.2 3.2 3.2 3.2 0 00-3.2-3.2zm-2 0l-.6-6.672-2.462 1.92-1.46-1.44a4.67 4.67 0 00-5.62-.37l-2.02 1.3a.54.54 0 00-.15.74.54.54 0 00.74.15l2-1.31a3.64 3.64 0 014.29.22l1.37 1.38-2.29 1.821z\"},\"child\":[]}]})(props);\n};\nexport function SiAbbvie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.186 20.17c-1.533 0-2.14-.612-2.347-1.838l-.406-1.74c-.413.72-2.453 3.579-6.945 3.579H8.89C1.94 20.17 0 15.467 0 12c0-3.885 2.347-8.17 8.884-8.17h4.905c5.005 0 7.759 2.853 8.372 6.431.512 2.96 1.839 9.91 1.839 9.91zM13.076 6.378h-3.88c-4.698 0-6.231 2.965-6.231 5.623 0 2.653 1.533 5.618 6.236 5.618h3.875c4.904 0 6.236-3.065 6.236-5.618 0-2.246-1.231-5.618-6.236-5.618z\"},\"child\":[]}]})(props);\n};\nexport function SiAboutdotme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.158 9.897v4.131h.65v-.408c.23.297.577.483.961.483.768 0 1.332-.582 1.332-1.573 0-.967-.558-1.568-1.332-1.568-.372 0-.719.168-.96.49V9.897Zm10.285.322v.818h-.495v.563h.495v1.729c0 .501.26.774.769.774.297 0 .49-.087.607-.192l-.155-.496a.4.4 0 0 1-.285.112c-.186 0-.285-.155-.285-.36V11.6h.607v-.563h-.607v-.818zm-5.488.743c-.954 0-1.536.706-1.536 1.567 0 .855.582 1.574 1.536 1.574s1.537-.719 1.537-1.574c0-.86-.583-1.567-1.537-1.567m14.577 0c-.886 0-1.518.7-1.518 1.567 0 .948.663 1.574 1.567 1.574.47 0 .91-.155 1.214-.44l-.297-.427c-.217.216-.557.334-.855.334-.564 0-.898-.378-.948-.824H24v-.16c0-.942-.57-1.624-1.468-1.624m-4.576 0c-.459 0-.849.298-.979.477v-.402h-.65v2.991h.65v-2.093c.137-.192.403-.397.694-.397.354 0 .49.217.49.54v1.95h.65v-2.093c.13-.199.403-.397.694-.397.353 0 .495.217.495.54v1.95h.65v-2.161c0-.607-.315-.905-.86-.905-.453 0-.85.28-1.016.545-.1-.322-.372-.545-.818-.545m-16.55 0c-.477 0-.91.15-1.257.484l.272.452a1.2 1.2 0 0 1 .886-.384c.41 0 .7.21.7.557v.446c-.223-.254-.563-.384-.972-.384-.49 0-1.035.285-1.035.979 0 .656.551.99 1.035.99.396 0 .75-.142.972-.402v.328h.65V12.04c0-.799-.582-1.078-1.25-1.078m8.449.075v2.118c0 .607.322.948.966.948.47 0 .842-.235 1.053-.471v.396h.65v-2.991h-.65v2.1a.99.99 0 0 1-.762.39c-.372 0-.607-.149-.607-.613v-1.877zm12.67.458c.589 0 .83.434.85.787H21.69c.025-.36.285-.787.837-.787m-17.942.043c.514 0 .843.415.843.992 0 .582-.329.997-.843.997a.98.98 0 0 1-.774-.397v-1.189a.98.98 0 0 1 .774-.403m3.372 0c.558 0 .861.465.861.991 0 .533-.303.998-.86.998-.552 0-.862-.465-.862-.997 0-.527.31-.992.861-.992m-6.66 1.041c.279 0 .557.105.712.31v.458c-.155.204-.433.31-.712.31-.366 0-.644-.21-.644-.539 0-.322.278-.539.644-.539m14.269.65a.44.44 0 0 0-.434.428c0 .235.198.44.434.44a.445.445 0 0 0 .434-.44.44.44 0 0 0-.434-.428\"},\"child\":[]}]})(props);\n};\nexport function SiAbstract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c9.601 0 12 2.399 12 12 0 9.601-2.399 12-12 12-9.601 0-12-2.399-12-12C0 2.399 2.399 0 12 0zm-1.969 18.564c2.524.003 4.604-2.07 4.609-4.595 0-2.521-2.074-4.595-4.595-4.595S5.45 11.449 5.45 13.969c0 2.516 2.065 4.588 4.581 4.595zm8.344-.189V5.625H5.625v2.247h10.498v10.503h2.252zm-8.344-6.748a2.343 2.343 0 11-.002 4.686 2.343 2.343 0 01.002-4.686z\"},\"child\":[]}]})(props);\n};\nexport function SiAbusedotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.8924 10.3775c.0193 0 .1179-.1827.3828-.2534.1078-.0287.3585-.0506.5405.0957.14.1127.1843.2965.1843.4838v1.127h-.2747V10.748c0-.362-.1831-.4094-.3296-.4094-.2709 0-.444.2105-.5033.296v1.1961h-.2746v-2.566h.2746zm-.9543.0514c-.189-.072-.391-.1213-.6007-.0514-.1745.0582-.2643.1976-.3101.3154-.032.084-.0479.1885-.0479.3137 0 .1758.0436.332.1436.4519.1925.2208.5373.2171.8417.0921v.2286c-.066.0388-.1671.0616-.186.0656-.088.0215-.5326.111-.8418-.179-.3632-.3404-.2155-.937-.2109-.9551.038-.1422.1081-.2924.2357-.4058.348-.3025.805-.2036.9764-.1046zm-5.9987 2.7958h1.7657v.5501h-2.423v-3.5904h2.3264v.5501h-1.669v.9285h1.4329v.55h-1.433zm-2.2842-.4803c0-.3335-.317-.4122-.8104-.5125a4.1973 4.1973 0 0 1-.3998-.1074c-.3907-.132-.5171-.3607-.5662-.4588-.1187-.2373-.1168-.6487.0134-.9231.2446-.5224.7924-.6253 1.186-.6253.444 0 .8488.1051 1.0761.2013v.5635c-.186-.0733-.365-.1261-.5367-.1583-.2899-.058-1.1565-.181-1.1565.4213 0 .0776.0048.2482.2146.373.2305.1308.4677.1222.9366.2683.1395.0412.263.0993.3703.1744.1073.0752.1923.1736.2549.2952.0626.1199.0939.2737.0939.4616 0 .3168-.1006.6336-.4132.8533-.3229.2255-.7791.271-1.0949.271-.3327 0-.7674-.0646-1.0465-.22v-.5555c.3126.1358.6309.22 1.0385.22.3188 0 .8399-.0718.8399-.542zm-5.2521.8855c-.5869-.3576-.5957-1.0336-.5957-1.331v-2.1145h.6574V12.24c0 .242.0154.7371.3891.9419.2631.1406.66.1406.923 0 .374-.2048.3892-.7003.3892-.9419v-2.0555h.6574v2.1146c0 .1502-.0089.2862-.0268.4078-.036.2726-.1623.6781-.577.9231-.4836.2828-1.3341.2865-1.8166 0zm-1.6215-2.4902c0 .1557-.0348.2988-.1046.4294-.0698.1288-.1852.2361-.3462.322v.0107c.1734.059.4509.1987.5582.5072.077.2086.0707.5612-.1422.8506-.0698.093-.1628.179-.2791.2576-.3154.2135-.7248.2434-.9768.255-.4364.0058-.873.0027-1.3095.0027v-3.5904h1.2478c.2853 0 .6671.0247.9607.2361.2757.193.3917.4718.3917.7191zM4.839 12.2131v1.0116h.4293a4.68 4.68 0 0 0 .2952-.008c.2888-.0252.5883-.114.6681-.3622.018-.0576.1233-.455-.3193-.5957-.1148-.0357-.2588-.0457-.4508-.0457zm.593-.5501c.1444 0 .4811-.0001.6091-.2227.0837-.143.0917-.3476-.008-.4991-.1227-.191-.418-.2067-.6548-.2067H4.839v.9285zm-4.0061-1.4794L0 13.7736h.7012c.2284-.5948.457-1.1895.6855-1.7843.0984-.252.2107-.5654.336-.9409h.0117c.3084.92.6724 1.8201 1.0215 2.7252h.6953l-1.4258-3.59zm17.604 5.3065h.2932V8.51h-.2932z\"},\"child\":[]}]})(props);\n};\nexport function SiAcademia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.033 21.18L13.77.459H7.869l1.049 2.623L1.836 21.18C1.574 22.098.787 22.23 0 22.361v1.18h6.82v-1.18C4.984 22.23 3.934 21.967 4.721 20c.131-.131.656-1.574 1.311-3.41h8.393l1.18 3.016c.131.525.262.918.262 1.311 0 1.049-.918 1.443-2.623 1.443v1.18H24v-1.18c-.918-.13-1.705-.393-1.967-1.18zM6.82 14.361a363.303 363.303 0 0 0 3.279-8.525l3.41 8.525H6.82z\"},\"child\":[]}]})(props);\n};\nexport function SiAccenture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.66 16.95 13.242-4.926L.66 6.852V0l22.68 9.132v5.682L.66 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiAccusoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.1774 4.2143c-.3824.0022-4.0063.02-4.3665.0222-.618.0044-.776-.0044-.8738.109-.0511.06-.1334.1645.1535.5246.2868.358 8.7775 11.221 8.9931 11.481.2735.3313.527.4447.638.4625.178.0267.4003-.0667.5203-.1134.1179-.0467 4.3243-1.7853 4.4155-1.8342.14-.0756.1312-.289.0378-.4469-.0934-.16-.229-.3335-.3069-.429-.08-.0957-7.6903-9.1956-7.7703-9.2956-.1467-.1845-.3602-.3602-.4447-.389-.0845-.029-.2045-.0935-.996-.0912zm-4.0152 5.1313s-.4492.06-.9427.5625c-.338.349-9.0776 8.9487-9.1243 9.0154-.0423.06-.1468.1756-.0645.2401.0422.0333.4513-.1.6559-.1734.0289 0 4.2931-1.3607 4.2931-1.3607.02-.0222-.0022-.0022.0222-.02-.0133-.189-.0289-.9804-.0355-1.036-.02-.1579.0556-.2223.109-.258.0533-.0355.1533-.0755.1533-.0755l3.4706-1.265c.0222-.029 3.3193-3.0638 3.3838-3.1216v-.0422c-.029-.0222-.04-.06-.0645-.0867-.0156-.0067-1.8564-2.3856-1.8564-2.3789zm1.8497 5.0624c-.1156.0089-.3601.029-.5424.109-.1823.08-5.4426 1.9787-5.6316 2.052-.189.0734-.4269.1334-.4135.2846.0066.0934.0733.1.1734.1312.1.0333 11.2786 2.5212 11.5477 2.5768.269.0556 1.1294.2934 1.5763.2045.24-.0334.3535-.0934.4313-.14.0778-.0467 4.6422-2.8503 4.7156-2.9037.0711-.0533.1223-.0889.1312-.1756.0044-.0333-.0912-.109-.1957-.1312a321.6128 321.6128 0 0 0-1.1139-.2179l-.309-.0555s-4.311 1.8897-4.4065 1.9342c-.12.0556-.2935.1-.4447.0867-.3157-.0289-.558-.2067-.9293-.6336l-2.1388-2.7724s-.936-.1512-1.2673-.1957c-.3313-.0445-1.0671-.16-1.1828-.1534z\"},\"child\":[]}]})(props);\n};\nexport function SiAccuweather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.74 6.772a7.436 7.436 0 0 1 10.519 0 7.432 7.432 0 0 1 0 10.515 7.436 7.436 0 0 1-10.52 0c-2.904-2.905-2.904-7.64 0-10.515M12 20.337c-4.59 0-8.338-3.747-8.338-8.337s3.748-8.308 8.338-8.308c4.591 0 8.31 3.748 8.31 8.308 0 4.619-3.719 8.337-8.31 8.337zm12-8.366L21.27 9.5l1.103-3.514-3.603-.784-.784-3.602-3.515 1.133L11.97.004l-2.47 2.73L5.986 1.63 5.2 5.231l-3.602.785 1.133 3.515L0 12.03l2.732 2.47-1.105 3.514 3.603.784.784 3.603 3.516-1.134 2.5 2.731 2.468-2.73 3.516 1.103.785-3.602 3.603-.813-1.134-3.515L24 11.97z\"},\"child\":[]}]})(props);\n};\nexport function SiAcer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.943 9.364c-.085-.113-.17-.198-.595-.226-.113 0-.453-.029-1.048-.029-1.56 0-2.636.482-3.175 1.417.142-.935-.765-1.417-2.749-1.417-2.324 0-3.798.935-4.393 2.834-.226.709-.226 1.276-.056 1.73h-.567c-.425.027-.992.056-1.36.056-.85 0-1.39-.142-1.588-.425-.17-.255-.17-.737.057-1.446.368-1.162 1.247-1.672 2.664-1.672.737 0 1.445.085 1.445.085.085 0 .142-.113.142-.198l-.028-.085-.057-.397c-.028-.255-.227-.397-.567-.453-.311-.029-.567-.029-.907-.029h-.028c-1.842 0-3.146.624-3.854 1.814.255-1.219-.596-1.814-2.551-1.814-1.105 0-1.9.029-2.353.085-.368.057-.595.199-.68.454l-.17.51c-.028.085.029.142.142.142.085 0 .425-.057.992-.086a24.816 24.816 0 0 1 1.672-.085c1.077 0 1.559.284 1.389.822-.029.114-.114.199-.255.227-1.02.17-1.842.284-2.438.369-1.7.226-2.692.736-2.947 1.587-.369 1.162.538 1.728 2.72 1.728 1.078 0 2.013-.056 2.75-.198.425-.085.652-.17.737-.453l.396-1.304c-.028 1.304.85 1.955 2.721 1.955.794 0 1.559-.028 1.927-.085.369-.056.567-.141.652-.425l.085-.396c.397.623 1.276.935 2.608.935 1.417 0 2.239-.029 2.465-.114a.523.523 0 0 0 .369-.311l.028-.085.17-.539c.029-.085-.028-.142-.142-.142l-.906.057c-.596.029-1.077.057-1.418.057-.651 0-1.076-.057-1.332-.142-.368-.142-.538-.397-.51-.822l2.863-.368c1.275-.17 2.154-.567 2.579-1.19l-.992 3.315c-.028.057 0 .114.028.142.029.028.085.057.199.057h1.19c.198 0 .283-.114.312-.199l1.048-3.656c.142-.481.567-.708 1.36-.708.71 0 1.22 0 1.56.028h.028c.057 0 .17-.028.255-.17l.17-.51c0-.085 0-.17-.057-.227zM4.841 13.73c-.368.057-.907.085-1.587.085-1.219 0-1.729-.255-1.587-.737.113-.34.425-.567.935-.624l2.75-.368zm12.669-2.95c-.114.369-.652.624-1.616.766l-2.295.311.056-.198c.199-.624.454-1.02.794-1.247.34-.227.907-.34 1.7-.34 1.05.028 1.503.255 1.36.708Z\"},\"child\":[]}]})(props);\n};\nexport function SiAcm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.435 12.25c-.08.025-.15.072-.202.135-.048.072-.073.158-.07.245 0 .15.038.252.12.308.077.056.194.082.352.082.087 0 .174-.02.264-.06.09-.038.174-.095.245-.165v-.66c-.168.015-.303.03-.405.045-.105.01-.207.034-.305.07zM12 0L0 12l12 12 12-12L12 0zm0 19.357C7.938 19.355 4.645 16.063 4.643 12 4.645 7.938 7.938 4.644 12 4.642c4.063.002 7.355 3.295 7.357 7.358-.002 4.063-3.294 7.355-7.357 7.357zM12 5.377v.002c-3.654 0-6.62 2.966-6.62 6.62s2.966 6.62 6.62 6.62 6.62-2.966 6.62-6.62c0-3.656-2.964-6.62-6.62-6.623zm-2.862 8.246h-.995v-.336l-.182.154c-.142.108-.304.188-.477.233-.082.02-.202.035-.352.035-.262.007-.515-.097-.698-.285-.187-.19-.277-.426-.277-.716 0-.238.046-.427.14-.574.1-.15.24-.27.405-.348.205-.09.423-.152.646-.18.25-.033.516-.06.803-.078v-.017c0-.176-.066-.297-.196-.363-.13-.07-.322-.102-.58-.102-.117 0-.254.02-.41.063-.158.044-.308.1-.458.164H6.42v-.77c.097-.03.256-.062.48-.1.217-.04.438-.06.663-.06.55 0 .95.092 1.2.276.25.183.375.462.375.837v2.168zm3.22-.167c-.07.028-.134.056-.2.086-.074.03-.15.058-.23.08-.094.024-.186.044-.27.06-.084.014-.196.022-.336.022-.263 0-.506-.033-.723-.1-.21-.062-.406-.165-.57-.307-.163-.142-.292-.32-.373-.52-.09-.21-.135-.457-.135-.738-.008-.27.042-.535.146-.78.09-.204.224-.384.392-.53.165-.134.355-.233.56-.29.22-.066.447-.096.675-.096.37 0 .732.087 1.06.255v.854h-.127c-.048-.043-.096-.085-.147-.124-.06-.048-.122-.09-.188-.126-.167-.095-.357-.144-.55-.14-.254 0-.45.086-.59.263-.138.177-.21.414-.21.714 0 .32.075.56.225.715.15.157.347.235.592.235.11 0 .222-.013.33-.042.153-.043.295-.12.415-.225.048-.04.088-.082.123-.11h.13v.843zm4.333.173v-1.597c0-.157 0-.29-.007-.397-.002-.09-.02-.18-.052-.263-.023-.066-.07-.12-.13-.15-.153-.064-.325-.063-.478.002-.086.04-.168.087-.244.14v2.263h-.993v-1.595c0-.156-.003-.286-.01-.396-.003-.09-.02-.18-.05-.264-.027-.066-.076-.12-.136-.15-.06-.033-.145-.048-.25-.048-.083 0-.165.02-.24.056-.078.04-.152.086-.228.136v2.262h-.995V10.44h.993v.356c.144-.125.296-.233.46-.323.148-.08.314-.12.484-.12.182-.004.36.045.514.14.153.1.27.244.34.414.19-.177.37-.314.54-.41.17-.096.34-.145.515-.145.136-.002.27.023.396.075.115.044.22.116.3.21.09.106.16.23.2.364.045.142.066.328.066.553v2.076h-.995z\"},\"child\":[]}]})(props);\n};\nexport function SiActigraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.043 0c.413 0 .83.266 1.054.546.224.28.191.342.21.529.018.187.16.265.16.62s-.16.494-.272.644c-.112.15-.047.2-.14.406-.094.206-.118.168-.193.336-.075.168.123.462.319.61.196.147.378.262.938.318.56.056.683.03.963.05.28.018.453.174.882.23.43.056.449 0 .803 0 .355 0 .462.053.78.053.317 0 .75-.14 1.141-.122.393.018 1.43.115 1.86.115.43 0 .931-.442 1.38-.423.448.018.832.119.85.455.019.336-.165.762-.37.837-.206.074-.609-.067-.852-.067-.242 0-.496.03-.606.025-.133-.007-.232-.09-.381-.053-.15.038-.76.297-.984.315-.224.02-.689-.034-.875.003-.187.038-.822.15-1.083.168-.262.02-.786-.02-1.029.018-.243.037-.615.113-.839.113-.224 0-.702-.172-.866-.054-.397.288-.336.683-.532 1.247-.187.538-.488.88-.525 1.29-.038.412.224 1.738.355 2.205.13.467.504 1.083.747 1.848.242.766.58 2.31.711 2.945.131.635.004.62.11.977.108.362.616.934.878 1.83.261.896.547 2.744.64 3.23.094.485.135.558.172.707.037.15-.045.214.039.35.378.613.848.849.792 1.222-.056.374-.652.513-1.083.448-.326-.048-.523-.672-.597-.859-.075-.186.003-.239-.072-.37-.075-.13-.089-.199-.126-.535-.037-.336.016-.36-.039-.582-.294-1.197-1.144-2.367-1.35-3.07-.117-.393-.049-.444-.124-.799-.074-.355-2.402-5.42-2.883-5.42-.496 0-2.783 5.006-2.877 5.323-.093.318-.04.638-.133.899s-1.208 2.388-1.36 3.042c-.1.428-.012.556-.068.8-.056.242-.266 1.303-.659 1.509-.392.205-1.086.046-1.178-.292-.142-.52.678-.906.765-1.382.076-.41.804-4.165 1.102-4.893.299-.728.486-.654.616-1.064.042-.13.043-.514.113-.945.153-.934.433-2.294.765-3.201.486-1.326 1.157-2.611 1.032-3.893-.053-.539-.23-.606-.417-1.222-.187-.616-.428-1.347-.67-1.384-.244-.037-.449.093-.748.093s-.896-.13-1.12-.13c-.224 0-.992-.05-1.31-.05-.318 0-.54-.081-.726-.063-.187.02-.36.007-.584.007-.28 0-1.017-.34-1.204-.34-.187 0-.245.036-.413.036-.168 0-.325-.063-.512-.063-.186 0-.532.108-.71.108-.186 0-.54-.419-.484-.886.056-.466.805-.42.991-.42.263 0 .889.355 1.131.392.243.038 1.538-.101 1.818-.101s1.08.126 1.509.126c.43 0 1.014.01 1.369-.046s.68-.244.903-.262c.224-.019 1.238.091 1.807-.306.375-.261.411-.486.392-.654-.018-.168-.14-.192-.234-.36-.094-.168-.053-.305-.109-.417-.056-.112-.269-.212-.273-.623-.004-.322.035-.278.147-.596.112-.317.116-.451.378-.707.19-.184.575-.371.988-.371\"},\"child\":[]}]})(props);\n};\nexport function SiActivision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.88 8.91L0 14.284h.985l.27-.718h1.252l.269.718h.985zm3.224.359l-.537.984h2.15v4.03H7.7v-4.03h1.522l1.882 4.837 1.791-4.837h4.567l-.537-.984H12.18l-1.074 2.865L9.94 9.269zm16.21 1.163v3.762h.986v-1.523l1.7 1.702v-3.76h-.896v1.342zm-15.94.09c-1.075 0-1.881.807-1.881 1.881 0 1.075.806 1.88 1.88 1.88.448 0 .895-.179 1.164-.447L6 12.94c-.18.18-.358.27-.627.27a.897.897 0 0 1-.895-.896c0-.448.358-.896.895-.896.18 0 .448.089.537.268l.627-.715c-.27-.269-.716-.448-1.164-.448zm7.522 0v3.672h.985v-3.671zm2.148 0c-.358 0-.804.18-.804.896 0 .896 1.074 1.433.985 1.792-.09.179-.27.178-.359.178h-.626v.806h1.074c.448 0 .895-.269.895-.806 0-.985-1.253-1.611-.984-1.97 0-.09.178-.09.178-.09h.628v-.805zm1.255 0v3.672h.984v-3.671zm3.045 0c-1.075 0-1.88.807-1.88 1.881 0 .985.805 1.88 1.88 1.88 1.074 0 1.88-.805 1.88-1.88 0-1.074-.806-1.88-1.88-1.88zm-11.016.09v3.672h.986v-3.672zm11.016.896c.448 0 .895.358.895.895a.897.897 0 0 1-.895.896c-.538 0-.985-.358-.896-.896 0-.448.358-.895.896-.895zm-17.464.178l.27.896h-.54z\"},\"child\":[]}]})(props);\n};\nexport function SiActivitypub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.91 4.442L0 10.74v2.52L8.727 8.22v10.077l2.182 1.26zM6.545 12l-4.364 2.52 4.364 2.518zm6.545-2.52L17.455 12l-4.364 2.52zm0-5.038L24 10.74v2.52l-10.91 6.298v-2.52L21.819 12 13.091 6.96z\"},\"child\":[]}]})(props);\n};\nexport function SiActix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.583 3.895c-.27.22-.788.078-1.164-.334-.156.156-.269.298-.411.454.411.334.596.866.376 1.114-.22.27-.752.22-1.163-.113-.114.156-.22.333-.334.489.454.298.674.752.518 1.057s-.674.334-1.163.078c-.079.192-.192.376-.27.518.489.22.752.596.631.944-.113.298-.596.411-1.085.269-.078.192-.114.376-.156.568.489.156.816.489.752.787-.078.334-.518.518-1.008.454-.028.192-.028.412-.078.596.49.078.866.334.866.674 0 .341-.412.568-.894.596v.596c.49 0 .894.22.944.518.028.298-.298.631-.788.709.028.192.078.412.114.596.489-.078.893.078.972.376.078.298-.192.674-.632.816.078.192.114.376.192.568.454-.156.894-.029 1.007.22.114.298-.078.674-.518.943.078.192.192.334.298.518.412-.22.866-.192 1.008.078.191.27 0 .674-.334.972.114.156.22.333.376.489.376-.269.816-.297 1.007-.078.22.22.114.674-.191 1.008.156.156.298.298.454.411.333-.333.752-.454 1.007-.269.249.191.22.631-.028 1.057.156.113.333.22.489.333.298-.376.674-.567.944-.411s.333.596.114 1.057c.191.113.376.191.517.269.22-.411.596-.674.894-.567.298.113.412.567.298 1.007.192.078.376.114.568.192.156-.454.489-.752.787-.71.298.078.49.49.454.972.192.029.412.078.596.078.078-.489.334-.865.674-.816.334 0 .568.412.596.944h.596c0-.49.22-.894.518-.944.333-.028.631.334.752.816.191-.028.411-.078.596-.113-.114-.49.078-.944.376-1.057.333-.078.709.22.865.752.192-.078.376-.114.568-.192-.192-.489-.114-.972.191-1.114.298-.142.752.156.972.632.192-.078.376-.192.518-.27-.269-.454-.269-.972 0-1.163.298-.192.788.028 1.086.489.156-.113.333-.22.489-.376-.376-.411-.454-.943-.191-1.163.269-.22.787-.078 1.163.333.156-.156.298-.298.412-.411-.455-.376-.596-.866-.412-1.114.22-.27.752-.22 1.192.156l.028.028c.114-.156.27-.333.376-.489-.489-.298-.752-.752-.596-1.086.192-.298.71-.333 1.192-.028l.029.028c.113-.191.191-.376.269-.567h-.028c-.518-.192-.866-.632-.752-.972.113-.348.674-.454 1.192-.22.028 0 .028.028.078.028.078-.191.156-.411.191-.596h-.078c-.567-.113-.972-.489-.894-.815.078-.334.596-.518 1.164-.412.028 0 .078 0 .113.029.029-.22.078-.412.114-.632h-.114c-.567-.028-1.007-.333-1.007-.674 0-.34.489-.631 1.057-.596H24v-.631h-.114c-.567.078-1.057-.192-1.085-.518-.028-.333.376-.674.972-.752h.156c-.028-.22-.078-.411-.113-.631-.029 0-.078.028-.157.028-.567.156-1.085 0-1.163-.333-.113-.334.27-.752.816-.894.028 0 .113-.029.156-.029-.078-.22-.156-.411-.22-.596-.028.029-.078.029-.156.078-.518.22-1.057.156-1.192-.156-.156-.333.156-.787.674-1.007.078-.028.114-.028.192-.078-.114-.192-.192-.376-.298-.568-.029.029-.078.078-.156.114-.49.298-1.008.333-1.242.028-.191-.298.028-.787.518-1.114.028-.028.113-.078.156-.078-.113-.191-.27-.333-.411-.517-.029.028-.078.078-.114.113-.411.376-.972.49-1.192.22s-.078-.787.334-1.163c.028-.029.113-.079.156-.114-.156-.156-.298-.298-.49-.454-.028.028-.078.078-.113.156-.376.454-.866.631-1.164.412-.269-.22-.22-.752.156-1.192.029-.029.078-.114.114-.156-.192-.114-.334-.27-.518-.376-.028.028-.028.113-.078.156-.298.489-.752.752-1.086.596-.298-.192-.333-.71-.028-1.192.028-.029.078-.114.114-.156-.192-.114-.376-.192-.596-.298 0 .028-.029.113-.029.156-.191.518-.631.865-.972.752-.347-.114-.454-.674-.22-1.192.029-.028.029-.114.078-.156-.191-.078-.411-.114-.631-.192 0 .029 0 .078-.028.156-.114.568-.49.972-.816.894-.334-.078-.518-.596-.412-1.163 0-.029.029-.114.029-.156-.22-.029-.412-.078-.632-.078v.113c-.028.568-.333 1.008-.674 1.008-.333 0-.631-.49-.595-1.057V.078h-.632v.114c.078.567-.191 1.057-.518 1.085-.333.028-.674-.376-.752-.972V.192c-.191.028-.411.078-.596.113 0 .028 0 .028.029.078.156.568 0 1.086-.334 1.164-.333.113-.752-.27-.894-.816V.653c-.191.078-.376.156-.596.22 0 0 0 .028.029.028.22.518.156 1.057-.156 1.192-.334.156-.788-.156-1.008-.674V1.39c-.191.114-.376.192-.518.298.298.49.334 1.008.029 1.242-.298.191-.788-.028-1.114-.518-.156.114-.333.27-.489.376.333.369.439.887.177 1.107m-.518 6.491c-.454-.156-.709-.631-.568-1.085.157-.454.632-.71 1.086-.568.454.156.709.631.567 1.086-.113.446-.631.709-1.085.567m.78 8.194c-2.17-2.391-3.114-5.725-1.837-6.889 1.241-1.113 4.044.49 6.257 2.881 2.171 2.39 3.554 5.313 2.277 6.477-1.269 1.135-4.526-.107-6.697-2.469m9.138 2.171c-.49.113-.944-.192-1.057-.674-.114-.49.191-.944.674-1.057.489-.114.943.191 1.057.674.085.511-.213.95-.674 1.057m6.073-12.798c1.603.518 2.17 3.93 1.191 7.002s-3.412 5.555-5.015 5.065c-1.604-.518-1.604-3.788-.632-6.86.965-3.036 2.852-5.746 4.456-5.207m-1.384-2.029c.334.376.298.894-.078 1.241-.376.348-.894.298-1.241-.078-.348-.376-.298-.894.078-1.241.376-.298.943-.256 1.241.078m-4.909 4.498c.894.971.816 2.468-.156 3.362s-2.469.816-3.363-.156-.816-2.469.156-3.363c.958-.901 2.469-.822 3.363.157M9.946 2.554c3.143-.674 6.513.191 6.889 1.837s-2.469 3.257-5.612 3.966c-3.143.674-6.399.412-6.746-1.241-.384-1.682 2.319-3.881 5.469-4.562\"},\"child\":[]}]})(props);\n};\nexport function SiActualbudget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.442 10.779.737 2.01-16.758 6.145a.253.253 0 0 1-.324-.15l-.563-1.536a.253.253 0 0 1 .15-.324zM1.13 23.309 12.036.145A.253.253 0 0 1 12.265 0h.478c.097 0 .185.055.227.142l7.036 14.455 2.206-.848c.13-.05.277.015.327.145l.587 1.526a.253.253 0 0 1-.145.327l-2.034.783 2.51 5.156a.253.253 0 0 1-.117.338l-1.47.716a.253.253 0 0 1-.339-.117l-2.59-5.322-17.37 6.682a.253.253 0 0 1-.328-.145c0-.001 0-.003-.002-.004l-.12-.33a.252.252 0 0 1 .009-.195zM12.528 4.127 4.854 20.425 18 15.369z\"},\"child\":[]}]})(props);\n};\nexport function SiAcura (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.77 10.908c-.23-4.018-1.492-6.89-3.33-8.496C18.489.689 14.814 0 12.057 0c-2.87 0-6.43.689-8.382 2.412C1.839 4.019.46 7.004.23 10.908c-.23 3.675.574 7.81 2.641 10.106C4.823 23.31 8.843 24 11.943 24s7.12-.689 9.072-2.986c2.18-2.296 2.986-6.316 2.755-10.106m-12.4-9.761h1.377v8.73H11.37ZM1.839 14.585c-.116-1.493-.575-6.89 1.607-9.99.919-1.38 2.182-2.297 3.56-2.757 1.838-.689 4.134-.689 4.134-.689-.919 2.181-2.641 6.89-2.985 7.924-.46 1.263-.804 1.952-1.15 4.248-.229 1.838-.688 6.546-.688 8.612-2.641-1.262-4.133-3.56-4.478-7.35m15.847 7.466c-1.723.803-3.905.918-5.628.918-1.722 0-3.903-.23-5.626-.918.574-1.607 3.33-8.269 4.823-10.91h1.608c1.493 2.643 4.248 9.417 4.823 10.91m4.592-7.466c-.344 3.79-1.837 6.088-4.363 7.35-.115-2.066-.459-6.774-.689-8.612-.345-2.296-.688-2.985-1.148-4.248-.345-1.034-2.182-5.742-2.986-7.924 0 0 2.181 0 4.134.69 1.378.458 2.642 1.377 3.56 2.756 1.952 3.1 1.607 8.497 1.493 9.99\"},\"child\":[]}]})(props);\n};\nexport function SiAdafruit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.399 12.794c-.924.148-1.722-.037-1.781-.412-.06-.375.64-.798 1.565-.945.924-.147 1.721.038 1.78.412.06.374-.64.798-1.564.945m-.878 3.86c-.338.172-.957-.363-1.382-1.196-.426-.834-.497-1.65-.158-1.822.338-.172.956.363 1.382 1.196.425.833.497 1.65.158 1.822m-3.64-1.552c-.662.662-1.415.981-1.683.713-.27-.268.05-1.022.71-1.684.66-.663 1.414-.982 1.683-.714.269.268-.05 1.023-.71 1.685m-2.531-4.61c.171-.339.987-.268 1.82.156.834.424 1.372 1.042 1.2 1.38-.173.338-.988.269-1.822-.155-.834-.424-1.37-1.043-1.198-1.381m4.8-2.45c.375.058.56.856.414 1.78-.145.925-.566 1.625-.942 1.567-.374-.06-.56-.857-.415-1.78.145-.925.567-1.626.943-1.568m11.835 2.53c-.078-.491-.345-.632-.989-.837l-3.762-1.2s-2.283-.863-3.974.357c-.228.164-.464.351-.7.55.198-.236.385-.472.55-.7 1.215-1.694.349-3.975.349-3.975l-1.207-3.761c-.207-.643-.347-.91-.84-.986-.492-.078-.707.132-1.101.68l-2.305 3.209s-1.524 1.903-.888 3.89c.086.266.191.549.308.836a12.215 12.215 0 0 0-.497-.74C7.693 6.215 5.258 6.332 5.258 6.332S1.82 6.32 1.308 6.32c-.676-.003-.972.05-1.198.493-.226.443-.093.714.307 1.258.303.415 2.34 3.183 2.34 3.183S4.095 13.292 6.18 13.3c.28.001.58-.012.889-.034a12.317 12.317 0 0 0-.855.244c-1.98.656-2.619 3.01-2.619 3.01L2.36 20.273c-.21.64-.252.939.1 1.29.352.353.65.31 1.291.098.489-.16 3.75-1.242 3.75-1.242s2.352-.644 3.004-2.624c.088-.266.169-.556.243-.854a11.1 11.1 0 0 0-.03.887c.01 2.085 2.051 3.421 2.051 3.421l3.186 2.333c.546.398.816.531 1.26.305.443-.226.495-.523.491-1.199l-.022-3.95s.114-2.435-1.567-3.668a11.93 11.93 0 0 0-.739-.495c.287.115.568.22.836.304 1.986.633 3.888-.894 3.888-.894l3.204-2.31c.547-.395.756-.612.679-1.104\"},\"child\":[]}]})(props);\n};\nexport function SiAdblock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.775 0a1.8 1.8 0 0 0-1.273.527L.528 6.503A1.8 1.8 0 0 0 0 7.775v8.45c0 .478.19.936.528 1.274l5.974 5.974A1.8 1.8 0 0 0 7.775 24h8.45a1.8 1.8 0 0 0 1.273-.527l5.975-5.974A1.8 1.8 0 0 0 24 16.225v-8.45a1.8 1.8 0 0 0-.527-1.272L17.498.527A1.8 1.8 0 0 0 16.225 0zm4.427 3c1.02 0 .958 1.108.958 1.108v6.784s-.009.218.16.218c.188 0 .175-.226.175-.226l-.002-5.63s-.05-.986.959-.986c1.01 0 .97.983.97.983v7.621s.014.158.141.158c.127 0 .944-2.122.944-2.122s.451-1.497 2.576-1.1c.038.008-.167.688-.167.688l-2.283 6.556S15.69 20.7 11.714 20.7c-5.044 0-4.808-5.407-4.814-5.405V7.562s-.016-.99.897-.99c.858 0 .849.99.849.99l.007 3.583s-.004.172.167.172c.16 0 .141-.172.141-.172l.01-5.926s-.055-1.162.966-1.162c1.04 0 .983 1.142.983 1.142v5.611s-.005.204.152.204c.168 0 .154-.206.154-.206l.01-6.693S11.18 3 12.202 3Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdblockplus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.027 0L0 7.027v9.941L7.027 24h9.941L24 16.968v-9.94L16.973 0zm.202.48h9.542l6.749 6.749v9.542l-6.749 6.749H7.23L.48 16.771V7.23zm.557 1.344L1.824 7.786v8.428l5.962 5.962h8.428l5.962-5.962V7.786l-5.962-5.962zM4.396 7.68H6.38l2.285 8.41H6.917l-.447-2.002H4.238l-.446 1.997h-1.68zm5.3 0h2.491c.355-.005.71.029 1.061.096.302.058.595.173.85.34.24.164.436.385.57.644.14.269.207.605.207 1.008 0 .192-.024.384-.072.566-.048.188-.12.365-.216.528-.1.168-.23.317-.379.437-.163.13-.35.226-.547.283v.053c.523.11.917.327 1.18.643.265.317.399.759.399 1.33 0 .432-.072.802-.216 1.109-.14.302-.346.561-.605.768-.269.206-.576.36-.902.451-.36.1-.735.154-1.109.149H9.696zm6.667 0h2.669c.374-.005.749.043 1.114.134.33.082.643.236.907.452.269.225.48.513.61.84.148.345.225.772.225 1.281 0 .49-.077.917-.23 1.277-.14.34-.35.643-.624.888a2.553 2.553 0 0 1-.908.518 3.551 3.551 0 0 1-1.099.168H18.01v2.852h-1.647zM5.328 9.125c-.091.446-.182.907-.274 1.373-.09.465-.192.912-.297 1.334l-.178.773h1.555l-.168-.773a31.5 31.5 0 0 1-.302-1.34 55.623 55.623 0 0 0-.293-1.367zm6.005.029v1.92h.773c.403 0 .696-.092.878-.279.182-.187.274-.437.274-.753 0-.317-.092-.548-.279-.682-.187-.134-.475-.206-.864-.206zm6.681.038v2.54h.917c.898 0 1.344-.447 1.344-1.34 0-.437-.115-.749-.34-.931-.226-.183-.562-.269-1.004-.269zm-6.681 3.22v2.204h.931c.902 0 1.354-.384 1.354-1.147 0-.37-.11-.639-.336-.807-.226-.168-.562-.25-1.018-.25z\"},\"child\":[]}]})(props);\n};\nexport function SiAddydotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 6.81V6c0-.305-.033-.605-.075-.9C17.489 2.217 15 0 12 0S6.51 2.217 6.075 5.1A5.733 5.733 0 0 0 6 6v.81A5.987 5.987 0 0 0 3 12v6a6 6 0 0 0 6 6h6c0-1.655-1.345-3-3-3H9c-1.655 0-3-1.345-3-3v-6c0-1.655 1.345-3 3-3h6c1.655 0 3 1.345 3 3v1.5a3 3 0 0 1-1.5 2.597V12c0-.83-.67-1.5-1.5-1.5H9c-.83 0-1.5.67-1.5 1.5v6c0 .83.67 1.5 1.5 1.5h6c1.055 0 2.04-.272 2.902-.75A5.996 5.996 0 0 0 21 13.5V12a5.987 5.987 0 0 0-3-5.19Zm-4.5 9.69h-3v-3h3zM9 6c0-.548.15-1.06.408-1.5A2.998 2.998 0 0 1 12 3c1.106 0 2.077.605 2.592 1.5.258.44.408.952.408 1.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdguard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C8.249 0 3.725.861 0 2.755 0 6.845-.051 17.037 12 24 24.051 17.037 24 6.845 24 2.755 20.275.861 15.751 0 12 0zm-.106 15.429L6.857 9.612c.331-.239 1.75-1.143 2.794.042l2.187 2.588c.009-.001 5.801-5.948 5.815-5.938.246-.22.694-.503 1.204-.101l-6.963 9.226z\"},\"child\":[]}]})(props);\n};\nexport function SiAdidas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m24 19.535-8.697-15.07-4.659 2.687 7.145 12.383Zm-8.287 0L9.969 9.59 5.31 12.277l4.192 7.258ZM4.658 14.723l2.776 4.812H1.223L0 17.41Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdminer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.521 8.297a.53.53 0 0 1-.53.53.53.53 0 0 1-.531-.53.53.53 0 0 1 .53-.53.53.53 0 0 1 .531.53zm-1.085-6.122c-.264-.008-.438.01-.438.01l.076.836s.577-.045 1.12.107c.272.076.521.198.689.369.167.17.277.382.277.758 0 .196-.052.296-.139.39a.964.964 0 0 1-.378.232c-.312.113-.65.116-.65.116l-.422-.002v2.174h.84V5.758c.177-.017.25.004.517-.092.241-.087.502-.223.714-.455A1.42 1.42 0 0 0 24 4.255c0-.565-.208-1.03-.518-1.346-.31-.316-.697-.488-1.061-.59a4.193 4.193 0 0 0-.985-.144ZM17.892 3.79l-2.874 2.487 2.886 2.451.544-.64-2.14-1.817 2.133-1.846zM6.587 5.108c-1.734 0-3.302.186-4.47.5-.584.157-1.068.343-1.438.579-.37.235-.679.56-.679 1V19.747c0 .287.145.54.337.73.191.191.437.343.732.48.59.275 1.39.49 2.37.641 1.96.305 4.335.305 6.295 0 .98-.152 1.78-.366 2.37-.64.296-.138.54-.29.732-.48.191-.19.337-.444.337-.731V7.187c0-.44-.309-.765-.68-1-.37-.236-.853-.422-1.437-.579-1.167-.314-2.736-.5-4.47-.5Zm0 .84c1.672 0 3.187.185 4.25.471.533.143.953.315 1.207.476.253.161.29.274.29.292 0 .018-.037.13-.29.29-.254.162-.674.334-1.206.477-1.064.287-2.579.472-4.251.472-1.673 0-3.188-.185-4.252-.472-.532-.143-.952-.315-1.205-.476-.254-.162-.29-.273-.29-.291 0-.018.036-.13.29-.292.253-.161.673-.333 1.205-.476 1.064-.286 2.58-.471 4.252-.471ZM.839 8.25c.352.2.76.374 1.278.514 1.168.314 2.736.5 4.47.5 1.733 0 3.302-.186 4.47-.5.518-.14.925-.315 1.276-.514v3.123c0 .01 0 .047-.09.135a1.835 1.835 0 0 1-.493.313c-.475.221-1.217.429-2.145.573-1.856.288-4.181.288-6.038 0-.928-.144-1.67-.352-2.144-.573a1.829 1.829 0 0 1-.494-.313c-.088-.088-.09-.126-.09-.135Zm0 4.182c.083.047.137.107.23.15.59.276 1.39.49 2.37.642 1.96.304 4.335.304 6.295 0 .98-.152 1.78-.366 2.37-.642.093-.043.147-.103.23-.15v3.127c0 .01-.002.047-.09.135a1.834 1.834 0 0 1-.494.314c-.475.221-1.217.429-2.145.573-1.856.288-4.181.288-6.038 0-.928-.144-1.67-.352-2.144-.573a1.828 1.828 0 0 1-.494-.314c-.088-.088-.09-.126-.09-.135zm0 4.187c.083.047.137.107.23.15.59.275 1.39.49 2.37.642 1.96.304 4.335.304 6.295 0 .98-.153 1.78-.367 2.37-.642.093-.043.147-.103.23-.15v3.127c0 .01-.002.047-.09.135a1.834 1.834 0 0 1-.494.314c-.475.221-1.217.429-2.145.573-1.856.288-4.181.288-6.038 0-.928-.144-1.67-.352-2.144-.573a1.828 1.828 0 0 1-.494-.314c-.088-.088-.09-.126-.09-.135Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.966 22.624l-1.69-4.281H8.122l3.892-9.144 5.662 13.425zM8.884 1.376H0v21.248zm15.116 0h-8.884L24 22.624Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobeacrobatreader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.63 15.3c-.71-.745-2.166-1.17-4.224-1.17-1.1 0-2.377.106-3.761.354a19.443 19.443 0 0 1-2.307-2.661c-.532-.71-.994-1.49-1.42-2.236.817-2.484 1.207-4.507 1.207-5.962 0-1.632-.603-3.336-2.342-3.336-.532 0-1.065.32-1.349.781-.78 1.384-.425 4.4.923 7.381a60.277 60.277 0 0 1-1.703 4.507c-.568 1.349-1.207 2.733-1.917 4.01C2.834 18.53.314 20.34.03 21.758c-.106.533.071 1.03.462 1.42.142.107.639.533 1.49.533 2.59 0 5.323-4.188 6.707-6.707 1.065-.355 2.13-.71 3.194-.994a34.963 34.963 0 0 1 3.407-.745c2.732 2.448 5.145 2.839 6.352 2.839 1.49 0 2.023-.604 2.2-1.1.32-.64.106-1.349-.213-1.704zm-1.42 1.03c-.107.532-.64.887-1.384.887-.213 0-.39-.036-.604-.071-1.348-.32-2.626-.994-3.903-2.059a17.717 17.717 0 0 1 2.98-.248c.746 0 1.385.035 1.81.142.497.106 1.278.426 1.1 1.348zm-7.524-1.668a38.01 38.01 0 0 0-2.945.674 39.68 39.68 0 0 0-2.52.745 40.05 40.05 0 0 0 1.207-2.555c.426-.994.78-2.023 1.136-2.981.354.603.745 1.207 1.135 1.739a50.127 50.127 0 0 0 1.987 2.378zM10.038 1.46a.768.768 0 0 1 .674-.425c.745 0 .887.851.887 1.526 0 1.135-.355 2.874-.958 4.861-1.03-2.768-1.1-5.074-.603-5.962zM6.134 17.997c-1.81 2.981-3.549 4.826-4.613 4.826a.872.872 0 0 1-.532-.177c-.213-.213-.32-.461-.249-.745.213-1.065 2.271-2.555 5.394-3.904Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobeaftereffects (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.54 10.73c-.1-.31-.19-.61-.29-.92s-.19-.6-.27-.89c-.08-.28-.15-.54-.22-.78h-.02c-.09.43-.2.86-.34 1.29-.15.48-.3.98-.46 1.48-.13.51-.29.98-.44 1.4h2.54c-.06-.21-.14-.46-.23-.72-.09-.27-.18-.56-.27-.86zm8.58-.29c-.55-.03-1.07.26-1.33.76-.12.23-.19.47-.22.72h2.109c.26 0 .45 0 .57-.01.08-.01.16-.03.23-.08v-.1c0-.13-.021-.25-.061-.37-.178-.56-.708-.94-1.298-.92zM19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zm-7.04 16.511h-2.09c-.07.01-.14-.041-.16-.11l-.82-2.4H5.92l-.76 2.36c-.02.09-.1.15-.19.14H3.09c-.11 0-.14-.06-.11-.18L6.2 7.39c.03-.1.06-.19.1-.31.04-.21.06-.43.06-.65-.01-.05.03-.1.08-.11h2.59c.07 0 .12.03.13.08l3.65 10.25c.03.11.001.161-.1.161zm7.851-3.991c-.021.189-.031.33-.041.42-.01.07-.069.13-.14.13-.06 0-.17.01-.33.021-.159.02-.35.029-.579.029-.23 0-.471-.04-.73-.04h-3.17c.039.31.14.62.31.89.181.271.431.48.729.601.4.17.841.26 1.281.25.35-.011.699-.04 1.039-.11.311-.039.61-.119.891-.23.05-.039.08-.02.08.08v1.531c0 .039-.01.08-.021.119-.021.03-.04.051-.069.07-.32.14-.65.24-1 .3-.471.09-.94.13-1.42.12-.761 0-1.4-.12-1.92-.35-.49-.211-.921-.541-1.261-.95-.319-.39-.55-.83-.69-1.31-.14-.471-.209-.961-.209-1.461 0-.539.08-1.07.25-1.59.16-.5.41-.96.75-1.37.33-.4.739-.72 1.209-.95.471-.23 1.03-.31 1.67-.31.531-.01 1.06.09 1.55.31.41.18.77.45 1.05.8.26.34.47.72.601 1.14.129.4.189.81.189 1.22 0 .24-.01.45-.019.64z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobeaudition (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zM12.5 16.8h-2.09c-.07.011-.14-.04-.16-.11l-.82-2.39H5.71l-.76 2.36c-.02.09-.1.15-.19.14H2.88c-.11 0-.14-.06-.11-.18l3.22-9.24c.03-.1.06-.21.1-.33.05-.21.08-.42.08-.64-.01-.05.03-.1.08-.11h2.59c.07 0 .12.03.13.08l3.63 10.261c.03.109 0 .159-.1.159zm7.75.011h-1.721c-.079.01-.159-.041-.189-.11-.02-.08-.04-.171-.061-.25-.02-.07-.02-.14-.02-.21-.32.289-.71.5-1.13.619-.36.101-.739.15-1.11.15-.369 0-.74-.05-1.09-.17-.32-.109-.619-.3-.85-.55-.26-.28-.45-.61-.561-.97-.14-.461-.209-.94-.199-1.42V8.94c-.01-.06.029-.12.1-.13h1.939c.061-.01.121.03.131.1v4.731c0 .439.1.789.289 1.039.191.25.58.381 1.031.381.229 0 .459-.041.68-.121.23-.08.439-.189.63-.33V8.92c0-.07.05-.11.14-.11h1.91c.051-.01.109.03.109.08v6.16c0 .271 0 .511.011.72.01.211.021.391.03.551.02.16.029.25.039.359.012.09-.028.131-.108.131zM8.33 10.73c-.1-.31-.19-.61-.29-.92s-.19-.6-.27-.89c-.08-.28-.15-.54-.22-.78h-.02c-.09.43-.2.86-.34 1.29-.15.48-.3.98-.46 1.48-.13.51-.29.98-.44 1.4h2.54c-.06-.21-.14-.46-.23-.72-.09-.27-.18-.56-.27-.86z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobecreativecloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.782 3.153c-.231.02-.472.04-.703.07a8.453 8.453 0 0 0-2.832.834 8.951 8.951 0 0 0-2.46 1.777c-.03.04-.09.06-.141.05a7.44 7.44 0 0 0-1.496-.07 7.424 7.424 0 0 0-2.932.763c-1.768.884-3.013 2.26-3.736 4.108a7.089 7.089 0 0 0-.462 2.139c0 .05-.01.09-.02.13v.773c.02.201.05.392.07.593.1.813.332 1.596.703 2.33.824 1.646 2.089 2.851 3.786 3.594a7.127 7.127 0 0 0 2.45.593c.032 0 .06.004.086.01h8.576c.183-.017.362-.035.547-.06a8.344 8.344 0 0 0 2.811-.834 8.836 8.836 0 0 0 3.646-3.304 8.187 8.187 0 0 0 1.184-3.093c.05-.34.08-.692.121-1.034 0-.05.01-.09.02-.13v-.794c-.02-.23-.05-.452-.05-.662a8.345 8.345 0 0 0-.834-2.812 8.952 8.952 0 0 0-3.324-3.645 8.245 8.245 0 0 0-3.072-1.175c-.362-.06-.713-.09-1.075-.13-.05 0-.09-.01-.14-.02zm.369 1.693c2.126.005 3.93.826 5.395 2.455a6.93 6.93 0 0 1 1.616 3.323c.15.764.181 1.547.07 2.32-.19 1.346-.702 2.55-1.576 3.605a7.082 7.082 0 0 1-3.997 2.45 7.297 7.297 0 0 1-2.56.1c-1.095-.14-2.099-.501-3.003-1.154a5.2 5.2 0 0 1-.672-.573c-1.226-1.205-2.44-2.42-3.666-3.625-.301-.3-.321-.632-.18-.934a.822.822 0 0 1 .863-.472c.21.02.372.141.522.292 1.105 1.114 2.2 2.209 3.304 3.324a5.263 5.263 0 0 0 3.093 1.536c1.948.261 3.605-.341 4.92-1.798.713-.793 1.145-1.747 1.326-2.811.26-1.587-.11-3.013-1.095-4.268-.873-1.115-2.018-1.808-3.404-2.059-1.416-.25-2.751.02-3.966.794-.03.02-.1.03-.131.01a9.04 9.04 0 0 0-1.406-.854s-.01-.01-.02-.03a6.603 6.603 0 0 1 1.255-.823 6.646 6.646 0 0 1 2.641-.784 8.45 8.45 0 0 1 .67-.024zM7.546 7.509c1.455-.024 2.791.525 3.982 1.63.854.802 1.637 1.636 2.46 2.47.231.23.281.522.171.833-.11.311-.362.462-.683.512a.722.722 0 0 1-.632-.23c-.784-.784-1.567-1.557-2.34-2.35-.633-.653-1.386-1.025-2.27-1.186-1.958-.351-3.936.784-4.639 2.641-.904 2.36.522 5.031 2.982 5.594.482.11.995.11 1.497.1.14-.01.22.04.32.13.483.473.995.945 1.497 1.416.03.03.07.06.1.09-.06 0-.1.01-.14.01h-2.3a5.833 5.833 0 0 1-5.693-4.568c-.653-2.942 1.034-5.925 3.926-6.798a6.33 6.33 0 0 1 1.762-.294Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobedreamweaver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.69 8.4c-.43-.13-.87-.2-1.32-.19-.2 0-.37 0-.51.01-.14 0-.3.01-.47.02v6.67c.11 0 .21 0 .31.01.09.01.19.01.28.02.1.011.21.011.33.011.46.01.92-.07 1.36-.229.4-.141.75-.371 1.05-.681.3-.319.53-.7.67-1.11.16-.479.24-.99.24-1.5.01-.48-.07-.96-.23-1.41C8.12 9.24 7.49 8.64 6.69 8.4zM19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zm-9.24 13.13c-.19.561-.48 1.08-.86 1.541-.35.42-.77.779-1.23 1.069-.45.28-.95.489-1.47.63-.5.13-1.02.2-1.54.2H4.28c-.4 0-.78 0-1.12-.011-.35-.01-.61-.01-.78-.02-.07 0-.1-.061-.1-.16V6.44c-.01-.06.04-.12.1-.13h.01c.15-.01.38-.02.67-.02.3-.01.64-.01 1.04-.02s.82-.01 1.27-.01c1.22 0 2.24.22 3.04.66.77.41 1.4 1.04 1.81 1.81.4.77.6 1.65.6 2.65.01.7-.09 1.39-.31 2.05zm9.42 3.24c-.01.04-.029.08-.06.109 0 .051-.04.07-.091.061H17.91c-.04.01-.09-.01-.12-.04-.03-.04-.05-.079-.06-.12-.19-.8-.351-1.52-.48-2.13-.13-.62-.24-1.14-.32-1.569-.08-.431-.15-.791-.209-1.09-.051-.3-.101-.55-.131-.76h-.01c-.1.44-.189.87-.28 1.28-.079.41-.18.83-.28 1.25-.1.42-.209.88-.34 1.38-.119.5-.26 1.05-.41 1.64-.02.11-.069.16-.16.16h-1.87c-.051.01-.1-.01-.141-.029-.029-.031-.05-.07-.07-.11L11.08 8.97c-.03-.09.01-.13.12-.13h1.89c.09 0 .141.03.15.1.199.88.369 1.64.5 2.28.13.64.24 1.18.31 1.629.07.45.14.82.19 1.101.05.28.09.521.119.7h.031c.02-.16.039-.311.069-.471.04-.189.09-.439.149-.75.061-.31.131-.67.221-1.09s.189-.9.311-1.46c.109-.55.27-1.18.459-1.89 0-.04.021-.09.041-.13.01-.02.049-.03.109-.03h1.96c.06 0 .09.04.101.11.17.73.31 1.37.43 1.92.109.55.21 1.04.3 1.47.08.42.149.79.19 1.09.039.311.09.561.129.77.031.17.061.34.07.511h.03c.05-.2.09-.44.13-.71.04-.271.09-.57.16-.91.061-.34.13-.71.21-1.12.069-.41.17-.86.28-1.37.109-.5.23-1.05.369-1.64.021-.09.061-.13.131-.13h1.75c.09 0 .119.05.1.14l-2.159 7.71z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobefonts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.764.375H4.236A4.236 4.236 0 0 0 0 4.611V19.39a4.236 4.236 0 0 0 4.236 4.236h15.528A4.236 4.236 0 0 0 24 19.389V4.61A4.236 4.236 0 0 0 19.764.375zm-3.25 6.536c-.242 0-.364-.181-.44-.439-.257-.97-.59-1.257-.787-1.257s-.5.364-.833 1.12c-.417.97-.754 1.97-1.007 2.994l1.732-.002c.11.28.01.6-.238.772H13.23c-.56 1.878-1.031 3.688-1.592 5.46a9.676 9.676 0 0 1-1.105 2.56 3.144 3.144 0 0 1-2.484 1.332c-.773 0-1.53-.363-1.53-1.166.036-.503.424-.91.924-.97a.46.46 0 0 1 .424.243c.379.682.742 1.075.909 1.075.166 0 .303-.227.575-1.211l1.988-7.322-1.43-.002a.685.685 0 0 1 .227-.774h1.423c.257-.895.609-1.76 1.048-2.58a3.786 3.786 0 0 1 3.272-2.195c1.136 0 1.605.545 1.605 1.242a1.144 1.144 0 0 1-.97 1.12z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobeillustrator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.53 10.73c-.1-.31-.19-.61-.29-.92-.1-.31-.19-.6-.27-.89-.08-.28-.15-.54-.22-.78h-.02c-.09.43-.2.86-.34 1.29-.15.48-.3.98-.46 1.48-.14.51-.29.98-.44 1.4h2.54c-.06-.211-.14-.46-.23-.721-.09-.269-.18-.559-.27-.859zM19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zM14.7 16.83h-2.091c-.069.01-.139-.04-.159-.11l-.82-2.38H7.91l-.76 2.35c-.02.09-.1.15-.19.141H5.08c-.11 0-.14-.061-.11-.18L8.19 7.38c.03-.1.06-.21.1-.33.04-.21.06-.43.06-.65-.01-.05.03-.1.08-.11h2.59c.08 0 .12.03.13.08l3.65 10.3c.03.109 0 .16-.1.16zm3.4-.15c0 .11-.039.16-.129.16H16.01c-.1 0-.15-.061-.15-.16v-7.7c0-.1.041-.14.131-.14h1.98c.09 0 .129.05.129.14v7.7zm-.209-9.03c-.231.24-.571.37-.911.35-.33.01-.65-.12-.891-.35-.23-.25-.35-.58-.34-.92-.01-.34.12-.66.359-.89.242-.23.562-.35.892-.35.391 0 .689.12.91.35.22.24.34.56.33.89.01.34-.11.67-.349.92z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobeindesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.25.3C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zm11.31 5.13h2.03c.05-.01.09.03.1.07v9.54c0 .18.01.38.02.6.02.21.03.41.04.58 0 .07-.03.13-.1.16-.52.22-1.07.38-1.63.48-.5.09-1.02.14-1.54.14-.74.01-1.48-.14-2.15-.45-.63-.29-1.15-.77-1.51-1.36-.37-.61-.55-1.37-.55-2.28-.01-.74.18-1.47.55-2.11.38-.65.93-1.19 1.59-1.55.7-.39 1.54-.58 2.53-.58.05 0 .12 0 .21.01s.19.01.31.02V5.54c0-.07.03-.11.1-.11zm-8.93.86h1.95c.06-.01.12.03.13.1.01.01.01.02.01.03v10.26c0 .11-.05.16-.14.16H6.62c-.09 0-.13-.05-.13-.16V6.42c0-.09.05-.13.14-.13zm8.23 4.24c-.39 0-.78.08-1.13.26-.34.17-.63.42-.85.74-.22.32-.33.75-.33 1.27-.01.35.05.7.17 1.03.1.27.25.51.45.71.19.18.42.32.68.4.27.09.55.13.83.13.15 0 .29-.01.42-.02.13.01.25-.01.36-.05v-4.4c-.09-.02-.18-.04-.27-.05-.11-.01-.22-.02-.33-.02z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobelightroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zm-6.99 16.389c0 .051-.029.09-.06.121-.03.02-.06.029-.101.029H6.26c-.11 0-.16-.061-.16-.18V6.44c-.01-.07.04-.13.11-.14h2c.05-.01.11.03.11.08v8.43h4.62c.101 0 .131.049.11.14l-.29 1.739zm6.25-7.859v1.95c0 .08-.05.11-.16.11-.649-.04-1.3.08-1.89.34-.2.09-.39.21-.54.37v5.1c0 .1-.04.14-.13.14h-1.95c-.08.01-.15-.04-.16-.119V11.14c0-.24 0-.49-.01-.75s-.01-.52-.02-.78c-.01-.22-.03-.44-.061-.66-.01-.05.02-.1.07-.11.01-.01.02-.01.04 0h1.75c.1 0 .18.07.21.16.04.07.07.15.08.23.02.1.039.21.05.31.01.11.021.23.021.36.299-.35.66-.64 1.069-.86.46-.25.97-.37 1.49-.36.069-.01.13.04.14.11.001.01.001.02.001.04z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobelightroomclassic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zM8.57 16.689c-.01.061-.03.101-.06.121-.03.02-.06.029-.09.029H2.71c-.1 0-.14-.061-.14-.18V6.44c0-.1.04-.14.13-.14h1.77c.07 0 .1.04.1.11v8.4h4.16c.09 0 .12.049.1.14l-.26 1.739zm5.6-5.919c0 .08-.05.11-.141.11-.319-.02-.639 0-.949.07-.26.06-.51.15-.75.27-.18.09-.35.22-.49.37v5.1c0 .101-.04.141-.12.141H9.98c-.1 0-.14-.051-.14-.16v-5.54c0-.24 0-.49-.01-.75 0-.26-.01-.52-.02-.78-.01-.221-.03-.441-.06-.661 0-.03 0-.06.02-.09.03-.01.05-.02.08-.01h1.58c.09 0 .15.05.19.16.03.07.06.15.07.23.02.1.03.21.04.31.01.11.01.23.01.36.26-.34.59-.64.96-.86.399-.24.87-.37 1.34-.36.09 0 .13.05.13.14v1.95zm7.2-1.61c.01.06-.021.11-.06.15-.041.02-.09.02-.131 0-.229-.12-.47-.2-.72-.24-.31-.06-.63-.08-.94-.08-.51-.01-1.02.12-1.459.38-.41.25-.73.62-.94 1.05-.229.5-.341 1.05-.33 1.6-.011.4.05.791.16 1.169.1.311.25.601.44.86.17.229.379.431.629.58.24.14.49.25.76.32.25.069.521.11.781.11.289 0 .58-.011.869-.041.24-.029.48-.09.7-.17.08-.06.13-.029.16-.01.04.04.06.1.05.15v1.49c.01.119-.05.22-.15.27-.26.1-.529.17-.81.2-.339.052-.679.072-1.029.072-.49 0-.99-.069-1.459-.199-.461-.12-.891-.33-1.271-.6-.38-.271-.71-.601-.979-.99-.291-.42-.5-.881-.641-1.371-.15-.58-.23-1.17-.221-1.759 0-.98.191-1.86.58-2.6.381-.73.951-1.34 1.66-1.75.711-.41 1.57-.62 2.551-.62.34 0 .68.02 1.02.06.23.03.46.08.67.17.08.05.12.14.11.24V9.16z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobephotoshop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.85 8.42c-.37-.15-.77-.21-1.18-.2-.26 0-.49 0-.68.01-.2-.01-.34 0-.41.01v3.36c.14.01.27.02.39.02h.53c.39 0 .78-.06 1.15-.18.32-.09.6-.28.82-.53.21-.25.31-.59.31-1.03.01-.31-.07-.62-.23-.89-.17-.26-.41-.46-.7-.57zM19.75.3H4.25C1.9.3 0 2.2 0 4.55v14.899c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zm-7.391 11.65c-.399.56-.959.98-1.609 1.22-.68.25-1.43.34-2.25.34-.24 0-.4 0-.5-.01s-.24-.01-.43-.01v3.209c.01.07-.04.131-.11.141H5.52c-.08 0-.12-.041-.12-.131V6.42c0-.07.03-.11.1-.11.17 0 .33 0 .56-.01.24-.01.49-.01.76-.02s.56-.01.87-.02c.31-.01.61-.01.91-.01.82 0 1.5.1 2.06.31.5.17.96.45 1.34.82.32.32.57.71.73 1.14.149.42.229.85.229 1.3.001.86-.199 1.57-.6 2.13zm7.091 3.89c-.28.4-.671.709-1.12.891-.49.209-1.09.318-1.811.318-.459 0-.91-.039-1.359-.129-.35-.061-.7-.17-1.02-.32-.07-.039-.121-.109-.111-.189v-1.74c0-.029.011-.07.041-.09.029-.02.06-.01.09.01.39.23.8.391 1.24.49.379.1.779.15 1.18.15.38 0 .65-.051.83-.141.16-.07.27-.24.27-.42 0-.141-.08-.27-.24-.4-.16-.129-.489-.279-.979-.471-.51-.18-.979-.42-1.42-.719-.31-.221-.569-.51-.761-.85-.159-.32-.239-.67-.229-1.021 0-.43.12-.84.341-1.21.25-.4.619-.72 1.049-.92.469-.239 1.059-.349 1.769-.349.41 0 .83.03 1.24.09.3.04.59.12.86.23.039.01.08.05.1.09.01.04.02.08.02.12v1.63c0 .04-.02.08-.05.1-.09.02-.14.02-.18 0-.3-.16-.62-.27-.96-.34-.37-.08-.74-.13-1.12-.13-.2-.01-.41.02-.601.07-.129.03-.24.1-.31.2-.05.08-.08.18-.08.27s.04.18.101.26c.09.11.209.2.34.27.229.12.47.23.709.33.541.18 1.061.43 1.541.73.33.209.6.49.789.83.16.318.24.67.23 1.029.011.471-.129.94-.389 1.331z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobepremierepro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.15 8.42a2.93 2.93 0 00-1.18-.2 13.9 13.9 0 00-1.09.02v3.36l.39.02h.53c.39 0 .78-.06 1.15-.18.32-.09.6-.28.82-.53.21-.25.31-.59.31-1.03a1.45 1.45 0 00-.93-1.46zM19.75.3H4.25A4.25 4.25 0 000 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3zm-7.09 11.65c-.4.56-.96.98-1.61 1.22-.68.25-1.43.34-2.25.34l-.5-.01-.43-.01v3.21a.12.12 0 01-.11.14H5.82c-.08 0-.12-.04-.12-.13V6.42c0-.07.03-.11.1-.11l.56-.01.76-.02.87-.02.91-.01c.82 0 1.5.1 2.06.31.5.17.96.45 1.34.82.32.32.57.71.73 1.14.15.42.23.85.23 1.3 0 .86-.2 1.57-.6 2.13zm6.82-3.15v1.95c0 .08-.05.11-.16.11a4.35 4.35 0 00-1.92.37c-.19.09-.37.21-.51.37v5.1c0 .1-.04.14-.13.14h-1.97a.14.14 0 01-.16-.12v-5.58l-.01-.75-.02-.78c0-.23-.02-.45-.04-.68a.1.1 0 01.07-.11h1.78c.1 0 .18.07.2.16a3.03 3.03 0 01.13.92c.3-.35.67-.64 1.08-.86a3.1 3.1 0 011.52-.39c.07-.01.13.04.14.11v.04z\"},\"child\":[]}]})(props);\n};\nexport function SiAdobexd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.25.3C1.9.3 0 2.2 0 4.55v14.9c0 2.35 1.9 4.25 4.25 4.25h15.5c2.35 0 4.25-1.9 4.25-4.25V4.55C24 2.2 22.1.3 19.75.3Zm14.07 5.13h2.03c.05-.01.09.03.1.07v9.54c0 .18.01.38.02.6.02.21.03.41.04.58 0 .07-.03.13-.1.16-.52.22-1.07.38-1.63.48-.51.09-1.02.14-1.54.14-.74.01-1.48-.14-2.15-.45-.63-.29-1.15-.77-1.51-1.36-.37-.61-.55-1.37-.55-2.28a4.107 4.107 0 0 1 2.14-3.66c.7-.39 1.54-.58 2.53-.58.05 0 .12 0 .21.01s.19.01.31.02V5.54c0-.07.03-.11.1-.11zM3.68 6.3h2.27c.05 0 .1.01.14.02.04.02.07.05.1.09.19.43.41.86.64 1.29.24.43.47.85.72 1.27.24.42.46.84.67 1.27h.02c.21-.44.43-.87.65-1.29.22-.42.45-.84.68-1.26.23-.42.45-.85.67-1.26.01-.04.03-.08.06-.1a.19.19 0 0 1 .13-.02h2.11c.05-.01.1.02.11.07.01.01-.01.05-.03.07l-3 4.95 3.2 5.25c.02.04.03.08.02.12-.01.04-.05.01-.11.02h-2.29c-.16 0-.27-.01-.34-.11-.21-.42-.43-.83-.64-1.25-.21-.41-.44-.83-.68-1.26-.24-.43-.48-.86-.72-1.3h-.02c-.21.43-.44.86-.67 1.29-.23.43-.46.86-.68 1.28-.23.42-.46.85-.69 1.26-.04.1-.12.11-.23.11h-2.2c-.04 0-.07.02-.07-.03a.14.14 0 0 1 .02-.11l3.11-5.1L3.6 6.44c-.03-.04-.04-.08-.02-.1.02-.03.06-.04.1-.04zm13.94 4.23c-.39 0-.78.08-1.13.26-.34.17-.63.42-.85.74-.22.32-.33.75-.33 1.27-.01.35.05.7.17 1.03.1.27.25.51.45.71.19.18.42.32.68.4.27.09.55.13.83.13.15 0 .29-.01.42-.02.13.01.24-.01.36-.05v-4.4c-.09-.02-.18-.04-.27-.05-.11-.01-.22-.02-.33-.02Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdonisjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12c0 9.68 2.32 12 12 12s12-2.32 12-12S21.68 0 12 0 0 2.32 0 12Zm4.84 2.492 3.762-8.555C9.238 4.498 10.46 3.716 12 3.716c1.54 0 2.762.781 3.398 2.223l3.762 8.554c.172.418.32.953.32 1.418 0 2.125-1.492 3.617-3.617 3.617-.726 0-1.3-.183-1.883-.37-.597-.192-1.203-.387-1.98-.387-.77 0-1.39.195-1.996.386-.59.188-1.168.371-1.867.371-2.125 0-3.617-1.492-3.617-3.617 0-.465.148-1 .32-1.418ZM12 7.43l-3.715 8.406c1.102-.512 2.371-.758 3.715-.758 1.297 0 2.613.246 3.664.758Z\"},\"child\":[]}]})(props);\n};\nexport function SiAdp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.08584 11.9999a3.13031 3.13031 0 0 1-3.12003 3.12002h-1.2v-1.37144h1.2a1.74859 1.74859 0 1 0 0-3.49717h-1.2V8.87987h1.2a3.13031 3.13031 0 0 1 3.12003 3.12002M8.43436 8.87987v2.53716H6.27434l-.78858 1.37144H9.8058v-3.9086Zm15.56584 1.9543a4.28575 4.28575 0 0 1-4.28575 4.28575v2.33145h-3.70289V15.6342a5.36233 5.36233 0 0 1-4.08003 1.81716H8.43436v-2.33145H5.69148l-1.37144 2.33145H0L6.34291 6.54842h5.6229a5.59548 5.59548 0 0 1 4.08004 1.81716V6.54842h3.70289a4.2789 4.2789 0 0 1 4.25146 4.28575m-12.03439 5.24576a4.09032 4.09032 0 0 0 3.7029-2.33145h1.74858v2.33145h.96v-2.33145h1.37145a2.91088 2.91088 0 0 0 2.9143-2.91431 2.94174 2.94174 0 0 0-2.94859-2.91431H17.383v3.49717h-1.37144a4.11432 4.11432 0 0 0-4.04575-3.49717H7.16577l-4.76575 8.16007h1.13144l1.37144-2.33145h4.9029v2.33145zm7.74864-7.20006h-1.37144v1.37144h1.37144a.57943.57943 0 0 1 .58286.58286.6.6 0 0 1-.58286.58286h-1.37144v1.37144h1.37144a1.9543 1.9543 0 0 0 1.9543-1.9543 1.97487 1.97487 0 0 0-1.9543-1.9543 M21.63447 16.76565a.54858.54858 0 1 1-.54858-.54858.54172.54172 0 0 1 .54858.54858m.13714 0a.68572.68572 0 1 0-.68572.68572.68572.68572 0 0 0 .68572-.68572 M21.12018 16.45707a.13714.13714 0 1 1 0 .2743h-.13715v-.2743zm.17143-.03428a.26057.26057 0 0 0-.17143-.06857h-.2743v.82286h.10287v-.30857h.13714l.17143.30857h.13714l-.20571-.34286c.03428 0 .06857-.03429.10286-.06857a.20572.20572 0 0 0 .03428-.13715.192.192 0 0 0-.03428-.20571\"},\"child\":[]}]})(props);\n};\nexport function SiAdroll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0-6.01-4.727-10.886-10.886-10.886a10.863 10.863 0 0 0-9.508 5.578L8.914 12c0-2.323 1.958-4.2 4.2-4.2 2.377 0 4.2 1.877 4.2 4.2s-1.836 4.2-4.2 4.2H4.065A4.07 4.07 0 0 0 0 20.266v2.62h13.114C19.232 22.886 24 18.01 24 12\"},\"child\":[]}]})(props);\n};\nexport function SiAdventofcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.05 13.236 6.498 9.606L18.91 24l-6.905-9.47L5.1 24l-1.637-1.158 6.498-9.606L.553 9.22l.615-1.69 9.596 3.463L11.087 0h1.826l.323 10.993 9.596-3.462.615 1.69-9.387 4.015z\"},\"child\":[]}]})(props);\n};\nexport function SiAdyen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.64703 9.88245v2.93377c0 .13405.10867.24271.24272.24271h.46316V9.88245h1.76474v5.1503c0 .46916-.38033.8495-.8495.8495H9.94303v-1.23507h2.40991v-.52942h-1.62108c-.46917 0-.8495-.38033-.8495-.8495V9.88245h1.76467Zm-8.26124.00001c.46917 0 .8495.38034.8495.8495v3.3858H.8495c-.46916 0-.8495-.38033-.8495-.8495v-.94805c0-.46917.38034-.8495.8495-.8495h.91521v1.3455c0 .13406.10867.24272.24272.24272h.46316V11.184c0-.13405-.10867-.24271-.24272-.24271l-2.16719-.00002V9.88246Zm5.79068-1.76471v6.00001H5.79068c-.46917 0-.8495-.38033-.8495-.8495v-2.53631c0-.46917.38033-.8495.8495-.8495h.91515v2.93377c0 .13405.10867.24271.24272.24271h.46316l.00005-4.94118h1.76471Zm9.03286 1.76471a.8495.8495 0 0 1 .8495.8495v.94805c0 .46917-.38033.8495-.8495.8495h-.9152v-1.3455c0-.13404-.10868-.2427-.24272-.2427h-.46317v1.8749c0 .13406.10867.24272.24272.24272h2.16719v1.05883h-3.32511c-.46917 0-.8495-.38033-.8495-.8495v-3.3858Zm4.94117 0c.46916 0 .8495.38034.8495.8495v3.3858h-1.7647V11.184c-.0004-.13388-.10884-.24232-.24272-.24272h-.46316v3.1765H19.7647V9.88245Z\"},\"child\":[]}]})(props);\n};\nexport function SiAegisauthenticator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.9487 19.8732-.0074.0133a1.483 1.483 0 0 0-.0013 1.469l.3165.5565c.2639.4638.7563.75 1.2897.75h.0163c1.139 0 1.853-1.2301 1.2883-2.219l-.325-.5697c-.5693-.9974-2.0074-.9974-2.577-.0002m3.4905-6.1074a1.483 1.483 0 0 0-.0013 1.4688l3.7964 6.6769c.2639.4638.756.7503 1.2897.7503h.0156c1.139 0 1.853-1.2301 1.2883-2.219l-3.8118-6.677c-.5693-.9974-2.0077-.9974-2.5768 0m.3275-11.692L.1972 20.4648c-.5618.9775.1438 2.1969 1.2713 2.1969a1.467 1.467 0 0 0 1.2734-.7393l7.9513-13.9285c.5632-.9867 1.9861-.9855 2.548.0026l7.9175 13.9239a1.466 1.466 0 0 0 1.2746.7416h.0982c1.1255 0 1.8313-1.2152 1.2736-2.193L13.3116 2.0776c-.5616-.9844-1.98-.9867-2.5448-.0039\"},\"child\":[]}]})(props);\n};\nexport function SiAerlingus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.857 13.511c-.48 1.545-2.081 2.995-4.002 3.296.31.48.452 1.074.377 1.733-.208 1.789-1.921 3.23-3.758 3.249-1.243.009-2.928-.528-4.115-2.402-1.064-1.666-1.215-4.313-1.14-5.113-1.299 1.328-2.109 2.618-2.495 3.512-.866 2.025-1.196 4.492-1.177 5.65 0 0-.16.151-.31.18-.48-.085-.895-.264-1.206-.537-.376-.34-.461-.66-.461-.66.574-2.872 1.488-4.66 2.853-6.704 1.836-2.76 4.67-4.464 8.032-5.49 2.43-.744 4.954-.904 6.686.565.933.772.989 1.883.716 2.721zM9.544 11.986c-.575.96-2.147 2.505-3.39 3.305-2.59 1.657-4.454 1.77-5.387 1.177a1.451 1.451 0 0 1-.292-.235c-.725-.763-.602-2.119.245-3.23.415-.546.951-.932 1.47-1.111-.406-.189-.679-.584-.735-1.14-.113-1.11.725-2.57 1.883-3.164 1.017-.518 3.211-1.036 4.821 1.366.631.932 1.196 2.26 1.385 3.032zM20.184 1.89c-.14-1.384-1.62-1.893-3.248-1.196-.772.33-1.45.885-1.93 1.516.075-.63-.104-1.186-.556-1.516-.895-.65-2.524-.17-3.635 1.036-.386.424-1.648 1.95-1.714 4.19-.028 1.083.452 3.485 2.034 5.142 4.219-1.591 6.488-4.03 7.354-5.038.999-1.168 1.422-2.194 1.601-2.947.132-.594.113-1.017.094-1.187z\"},\"child\":[]}]})(props);\n};\nexport function SiAeroflot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.066 12.725c-.056-.135-.097-.272-.143-.406l-6.675.406 1.35.693zm.909 1.247c-.057-.042-.115-.1-.17-.15a1.822 1.822 0 0 1-.287-.318l-3.333.67 1.419.509zm2.64-.286c.16-.025.4-.122.588-.268l-.968-2.032 1.005-.51-.848-.782c-.602.292-1.206.58-1.809.868l.43 1.025.694-.33zm1.65-4.241c.387.5.655 1.081.782 1.7h-.61a3.884 3.884 0 0 0-.172-.57c-.41-1.142-1.25-1.956-2.216-2.633-.127-.078-.241-.164-.37-.238.129.044.243.086.37.136.88.372 1.662.885 2.216 1.605m.185 6.517c-.225.114-.455.22-.682.33l-.565-1.193c-.37.139-.76.215-1.154.226-.424.02-.847-.04-1.249-.176l-.483 1.143c-.157.014-.374 0-.512-.106a.378.378 0 0 1-.169-.224c.204-.356.389-.723.579-1.087-.127-.088-.24-.152-.355-.27l.344-.437c.582.38 1.22.585 1.845.585.627.022 1.25-.192 1.832-.628.19.055.385.119.541.18-.058.046-.1.087-.157.136-.114.12-.213.242-.398.346.188.395.387.784.583 1.175zm7.785-3.431L24 11.343h-9.55c0 .422-.06.784-.185 1.1-.369 1.005-1.291 1.487-2.216 1.469-.908-.027-1.834-.524-2.244-1.441a2.745 2.745 0 0 1-.229-1.128H0l1.75 1.188 7.316-.404c.138.553.397 1.037.74 1.395a3.065 3.065 0 0 0 2.243 1.01 2.79 2.79 0 0 0 2.216-.992c.312-.362.554-.826.694-1.385zm-.48.194l-1.352.663L15 12.725a9.5 9.5 0 0 0 .129-.406zm-3.907 1.462l-1.48.52a357.77 357.77 0 0 1-2.286-.735c.069-.06.125-.117.183-.196.085-.074.157-.176.242-.254zm.711-.09l1.177-.575-4.86-.614c-.043.164-.171.298-.256.432zm-13.116 0l-1.179-.542 4.885-.635c.09.152.171.286.27.42Z\"},\"child\":[]}]})(props);\n};\nexport function SiAeromexico (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.354 12.222c.044.156 0 .422-.267.489a3.74 3.74 0 0 1-.666.11c-.377.045-.355.356-.355.534v2.264c0 .31-.244 1.354-1.443 1.354H16.87c-1.043 0-1.864-.866-1.864-1.798V9.803c-.022-.932.821-1.554 1.576-1.532.377 0 .644.111.843.222.444.2.933.444 1.577.755 0 0 1.02-.733 1.087-.777.355-.244.688-.067.8.155.377.733 1.087 2.22 1.465 3.596zm1.642-4.018a3.283 3.283 0 0 0-3.219-3.33c-1.709-.044-2.663.578-3.019.755-.022.023-.066 0-.11-.044-.311-.31-1-.777-1.754-.999-.111-.022-.133-.2 0-.2a13.3 13.3 0 0 1 3.64.111c.134.023.245-.066.178-.177-.044-.089-.067-.133-.133-.289-.156-.31-.533-.644-1.021-.777-1.266-.355-3.441-.666-5.394-.666-2.176-.022-4.484.422-5.062.555-.133.023-.333.09-.377.09-.111 0-.155.155-.089.221l.222.222c.067.089.111.222-.022.355L3.796 7.65H6.57c.177 0 .355.155.355.355 0 .177-.156.355-.333.355H2.997l-1.088.999h4.706c.178 0 .333.2.333.355 0 .155-.133.355-.333.355H1.11L0 11.09h9.501c.177 0 .333.2.333.355 0 .2-.133.378-.333.378H0v.999h9.479c.222 0 .333.2.333.377 0 .156-.156.333-.356.333H0v1h12.386c.2 0 .334.177.334.377 0 .177-.156.355-.334.355H3.33v.999h9.079c.177 0 .31.2.31.377s-.155.355-.31.355l-.178-.022H3.33v.999h10.455s.377-.866.377-1.843V9.403c0-.532.222-1.42 1.31-1.664.022 0 .067-.023.089-.023 3.085-.732 6.26-.066 8.058.71.333.156.4-.11.377-.222zM6.66 21.413h2.11c1.886-.022 3.107-1.02 3.107-1.02H6.659v1.02zm0-1.731h6.06c.29-.289.644-.8.733-.999H6.659v.999Z\"},\"child\":[]}]})(props);\n};\nexport function SiAerospike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.347 15.375 7.45 12.283l6.897-3.072v6.164zM24 0v24H0V0h24zm-4.705 5.386L5.672 11.548l-1.607.743 1.607.688 13.623 6.163v-1.565l-3.576-1.602V8.612l3.576-1.586v-1.64z\"},\"child\":[]}]})(props);\n};\nexport function SiAew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 6.925v10.086h3.674v-.51H.53V7.435h4.526v-.51zm18.944 0v.511h4.526V16.5h-3.144v.511H24V6.925zm-7.727-.891v1.453h1.537v-.383H11.71V6.91h.86v-.336h-.86v-.157h1.044v-.383H11.71zm1.765 0v1.453h1.39V7.06h-.897V6.034zm1.551 0v1.453h.493V6.034zm.648 0v.427h.557v1.026h.493V6.461h.558v-.427h-1.051zm1.765 0v1.453h1.537v-.383H17.44V6.91h.86v-.336h-.86v-.157h1.044v-.383H17.44zM11.45 8.225l-3.785.006.015 3.466 1.57 4.01h5.144l-.707-1.77H9.84V10h2.32zm-1.288 2.862v1.77h3.107l-.712-1.77zM6.265 6.034l-.748 1.453h.538l.122-.278h.699l.135.278h.536l-.753-1.453zm1.363 0v1.453h1.39V7.06h-.897V6.034zm1.55 0v1.453h1.39V7.06h-.896V6.034zm-2.65.444l.187.391h-.377zm16.29 1.73l-2.148.003-1.368 3.47-.938-3.467-2.142.003-.92 3.443-1.355-3.44-2.177.004 2.966 7.483h1.633l.938-3.462.934 3.462h1.653zm-16.844.025l-1.845.003-2.946 7.472H3.37l.342-.9h2.333l-.686-1.747h-.955l.635-1.673 1.706 4.32h2.17zm13.091 8.195c-.398.002-.663.14-.805.316a.76.76 0 00.005.91c.603.625 1.574.134 1.632.008v-.622h-.892v.344h.405v.086c-.114.152-.598.143-.722-.053-.124-.225-.038-.374.008-.444.277-.3.753-.062.784.004l.365-.293a1.332 1.332 0 00-.78-.256zm-7.877.01a2.177 2.177 0 00-.269.02c-.293.06-.476.207-.517.346-.128.491.571.567.571.567.623.03.571.098.572.123-.065.136-.42.087-.529.07-.221-.042-.43-.186-.43-.186l-.271.3c.76.482 1.38.226 1.48.17.3-.171.29-.484.192-.621-.076-.093-.307-.207-.535-.232-.204-.048-.604-.011-.558-.141.06-.12.682-.04.845.095l.24-.295c-.233-.168-.517-.22-.791-.216zm-7.085.047l.504 1.397h.505l.278-.854.266.854h.506l.502-1.397h-.497l-.258.866-.297-.866h-.444l-.294.874-.265-.874zm2.693 0v1.397h.502v-.392h.31l.324.392h.591l-.384-.448c.6-.234.334-.927-.234-.95h-.06zm1.89 0v1.397h1.537v-.328H9.18v-.195h.86v-.335h-.86v-.158h1.044v-.381zm3.427 0v.413h.557v.984h.494v-.984h.557v-.413zm1.758 0v1.397h1.39V17.5h-.897v-1.016zm1.562 0v1.397h.493V16.485zm.766 0v1.397h.493v-.804l.772.804h.466v-1.396h-.493v.761l-.716-.761zm-8.904.372h.531c.19-.003.189.286 0 .292h-.53z\"},\"child\":[]}]})(props);\n};\nexport function SiAffine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9948 1.3766c-.5962.0055-1.1835.3117-1.496.8633C9.3218 4.294 1.088 18.5025.1273 20.2343c-.3903.9368.1537 2.0479 1.131 2.3204.4061.1076.8337.0533 1.203.0664 5.3733.005 14.2336-.0065 19.6234 0 .1562.0029.4285-.0014.6583-.0664.709-.1974 1.2348-.8705 1.2558-1.6055.008-.2436-.0369-.4874-.125-.713-.1113-.2414-.1953-.3671-.287-.5312l-.545-.9434L14.321 3.656l-.5449-.9434-.2734-.4726c-.1236-.2046-.2846-.39-.4805-.5352-.3071-.2255-.6696-.3314-1.0274-.3281Zm.006 1.3008c.1467.0004.2936.0735.375.2148.1655.2769.6486 1.1385.8164 1.416 1.8312 3.1736 4.1148 7.1296 6.3047 10.9221L10.3581 5.0895c.329-.5697 1.1259-1.952 1.2676-2.1973v-.002c.0814-.1421.2287-.2133.375-.2128zm-2.213 3.4668 7.5548 7.8459c-.0189-.0085-.0377-.017-.0567-.0254L9.2858 8.5232c.0712-.622.1933-1.2419.3496-1.8555zM8.3698 8.535 4.2213 21.3203c-.5326-.0002-1.2787.0002-1.7598 0-.1099-.0007-.6827.0033-.7579-.004-.2804-.005-.478-.3305-.371-.5878.6398-1.1206 4.1786-7.2439 7.0372-12.1936Zm.8437 1.205 5.5743 3.4318-5.504-2.2774A9.1593 9.1593 0 0 1 9.2135 9.74zm-.8594 1.377-.6972 9.465c-.7194.3027-1.4733.537-2.2403.7247zm1.1524.9083 3.5528 1.2246h-3.086a7.1294 7.1294 0 0 1-.33-.7734c-.0508-.1501-.0956-.3-.1368-.4512zm-.5527.8516c.0161.0437.0318.0873.0488.1308l.834 6.338c-.3456.2621-.7092.496-1.088.707zm1.8652 1.168h2.3653c.18 0 .2928.1935.2031.3496l-1.1836 2.0488a.233.233 0 0 1-.4043 0h-.002l-1.1816-2.0488c-.0904-.1561.0224-.3496.203-.3496zm3.6778.0156a7.161 7.161 0 0 1 .832.0996 7.847 7.847 0 0 1 .463.1094l-2.8419 2.4668zm2.381.58a9.1839 9.1839 0 0 1 1.0566.5274l-5.879 3.1739zm-6.8889.2579 1.543 2.6719a7.1154 7.1154 0 0 1-.5039.67 7.8136 7.8136 0 0 1-.3223.3456zm8.965.9453c.2738.2038.5382.4222.797.6485l.9863 1.0234L10.028 20.168c.0195-.0135.0392-.0274.0586-.041zm2.4473 2.6856c.3799.6581.848 1.4656 1.1934 2.0645.0608.0998.0519.1041.0742.1367.0948.2291-.0458.5041-.2793.5742-.0303.0015-.0577.0146-.0918.0118-.0057.005-.129.0039-.2129.0039-3.7797-.001-8.9869-.0003-13.7893 0z\"},\"child\":[]}]})(props);\n};\nexport function SiAffinity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.368 1.08h3.778l.318.55h1.082L24 18.004v.001l-2.036 3.47H13.69l.84 1.445h-.365l-.84-1.446H3.057l-.526-.923h-.652L0 17.298l.002-.001 2.41-4.176 2.23-1.288 3.69-6.39-.742-1.285L9.368 1.08zm2.224 5.652L5.066 18.008h6.25l-.723-1.246 6.808.006-5.809-10.036Z\"},\"child\":[]}]})(props);\n};\nexport function SiAffinitydesigner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 2.344v19.312A2.345 2.345 0 0 1 21.656 24H2.344A2.345 2.345 0 0 1 0 21.656V2.344A2.345 2.345 0 0 1 2.344 0h19.312A2.345 2.345 0 0 1 24 2.344ZM1.758 21.305c0 .517.42.937.938.937h8.226l-4.299-7.445 7.528-13.039h-3.482L1.758 17.192v4.113Zm11.418-6.866-2.712-4.698-1.761 3.051a1.098 1.098 0 0 0 .952 1.647h3.521Zm9.066 6.873v-6.075H7.799l4.044 7.005h9.462a.937.937 0 0 0 .937-.93Zm-.937-19.554h-6.232l-4.148 7.185 3.173 5.496h8.144V2.688a.937.937 0 0 0-.937-.93Z\"},\"child\":[]}]})(props);\n};\nexport function SiAffinityphoto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 2.344v19.312A2.345 2.345 0 0 1 21.656 24H2.344A2.345 2.345 0 0 1 0 21.656V2.344A2.345 2.345 0 0 1 2.344 0h19.312A2.345 2.345 0 0 1 24 2.344Zm-13.328-.586-.41.709 5.021 8.693 5.43-9.402H10.672Zm2.213 7.702H11.12a.901.901 0 0 0-.75.446l-.925 1.605-.007.011a.901.901 0 0 0 0 .872l.924 1.599.01.017a.893.893 0 0 0 .755.428c.002 0 1.178.001 1.765-.002a.888.888 0 0 0 .75-.436c.311-.539.624-1.077.933-1.617a.879.879 0 0 0-.006-.863l-.008-.013-.921-1.595-.005-.008a.897.897 0 0 0-.75-.444ZM2.36 22.18 9.699 9.475H6.215l-4.457 7.717.002 4.182a.94.94 0 0 0 .6.806Zm11.844.062-5.479-9.486-5.485 9.486h10.964ZM12.926 8.676l-3.125-5.41-3.125 5.41h6.25Zm9.316 6.56H11.08l4.046 7.006h6.197a.938.938 0 0 0 .919-.937v-6.069Zm-.635-13.428-7.295 12.63h7.93V2.695a.938.938 0 0 0-.635-.887Z\"},\"child\":[]}]})(props);\n};\nexport function SiAffinitypublisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 2.344v19.312A2.345 2.345 0 0 1 21.656 24H2.344A2.345 2.345 0 0 1 0 21.656V2.344A2.345 2.345 0 0 1 2.344 0h19.312A2.345 2.345 0 0 1 24 2.344Zm-1.758 16.607-9.93-17.193h-1.639L9.75 3.354l10.91 18.888h.645c.517 0 .937-.42.937-.937v-2.354Zm-6.911 3.291L7.086 7.967l-1.263 2.187a1.657 1.657 0 0 0 0 1.657c1.512 2.615 6.025 10.431 6.025 10.431h3.483Zm5.974-20.484h-8.071l9.008 15.596V2.695a.938.938 0 0 0-.937-.937Zm-10.38 20.484L4.883 11.781l-3.125 5.411v4.113c0 .517.42.937.938.937h8.229Zm8.812 0L9.289 4.153 7.598 7.08l8.656 15.162h3.483Z\"},\"child\":[]}]})(props);\n};\nexport function SiAframe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.37 17.07H6.57L4.24 24H3.01l8.23-24h1.52l8.23 24h-1.3zm-.39-1.13l-5-14.96-5.03 14.98h10.03Z\"},\"child\":[]}]})(props);\n};\nexport function SiAfterpay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12 0-6.627-5.372-12-12-12Zm1.236 4.924a2.21 2.21 0 0 1 1.15.299l4.457 2.557c1.495.857 1.495 3.013 0 3.87l-4.457 2.558c-1.488.854-3.342-.22-3.342-1.935v-.34a.441.441 0 0 0-.66-.383L6.287 13.9a.441.441 0 0 0 0 .765l4.096 2.35a.44.44 0 0 0 .661-.382v-.685c0-.333.36-.542.649-.376l1.041.597a.441.441 0 0 1 .222.383v.29c0 1.715-1.854 2.789-3.342 1.935L5.157 16.22c-1.495-.857-1.495-3.013 0-3.87l4.457-2.558c1.488-.854 3.342.22 3.342 1.935v.34c0 .34.366.551.66.383l4.097-2.35a.441.441 0 0 0 0-.765l-4.096-2.351a.441.441 0 0 0-.661.382v.685c0 .333-.36.541-.649.375l-1.041-.597a.442.442 0 0 1-.222-.383v-.29c0-1.285 1.043-2.21 2.192-2.233z\"},\"child\":[]}]})(props);\n};\nexport function SiAftership (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.549 9.604a10.462 10.462 0 0 0-3.388-6.838A10.632 10.632 0 0 0 12 0a10.64 10.64 0 0 0-7.16 2.764 10.465 10.465 0 0 0-3.428 7.74c0 2.371.81 4.672 2.298 6.529a10.617 10.617 0 0 0 5.895 3.698L12 24l2.395-3.27a10.593 10.593 0 0 0 5.895-3.697 10.442 10.442 0 0 0 2.26-7.43zm-11.306 6.28a.26.26 0 0 1-.034.125.254.254 0 0 1-.347.092l-3.906-2.237a1.005 1.005 0 0 1-.505-.865V8.624a.26.26 0 0 1 .033-.126.254.254 0 0 1 .347-.092l3.907 2.237c.152.089.281.214.368.366.09.151.135.324.135.5v4.372zM12 9.48c-.176 0-.35-.047-.503-.133L7.5 7.057a.241.241 0 0 1-.09-.092.249.249 0 0 1 .09-.342l3.997-2.289a1.025 1.025 0 0 1 1.007 0l3.996 2.29a.24.24 0 0 1 .09.092.247.247 0 0 1 0 .25.271.271 0 0 1-.09.092l-3.997 2.289A1.005 1.005 0 0 1 12 9.48ZM17.546 13a.996.996 0 0 1-.503.866l-3.908 2.237a.254.254 0 0 1-.38-.218V11.51c0-.175.047-.348.135-.501.089-.152.216-.28.368-.366l3.907-2.238a.254.254 0 0 1 .38.219z\"},\"child\":[]}]})(props);\n};\nexport function SiAgora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.4393 11.6804a1.351 1.351 0 1 1 1.3496-1.351 1.3523 1.3523 0 0 1-1.3496 1.351m0-3.8006a2.4496 2.4496 0 1 0 2.4495 2.4496 2.4537 2.4537 0 0 0-2.4495-2.4496m4.0693.631-.0301.0301-.033.0315-.022-.0397-.0191-.033a1.17 1.17 0 0 0-.8695-.6034l-.092-.0178v4.9019l.092-.0123a1.1383 1.1383 0 0 0 1.008-1.1536v-1.285a1.362 1.362 0 0 1 1.211-1.3428l.0728-.0082V7.8812l-.0878.0096a2.086 2.086 0 0 0-1.2344.6227M2.4477 11.6817a1.351 1.351 0 1 1 1.351-1.3509 1.3523 1.3523 0 0 1-1.351 1.351m1.5731-3.3192-.0206.0274-.0205.0275-.0275-.0206-.026-.0206a2.4496 2.4496 0 1 0-1.4785 4.404 2.4235 2.4235 0 0 0 1.4785-.4978l.026-.0192.0275-.022.0204.0289.0206.0274a1.1685 1.1685 0 0 0 .786.4718l.0905.0124v-4.902l-.0905.0124a1.17 1.17 0 0 0-.786.4704m17.5298 3.3191a1.351 1.351 0 1 1 1.3523-1.3509 1.3523 1.3523 0 0 1-1.351 1.351m2.3577-3.7896a1.1754 1.1754 0 0 0-.7872.4704l-.0192.026-.0206.029-.0274-.0207-.026-.0206a2.4496 2.4496 0 1 0-1.4786 4.4014 2.4235 2.4235 0 0 0 1.4785-.498l.026-.0191.0275-.022.0206.0289.0192.0274a1.174 1.174 0 0 0 .7872.4718L24 12.779V7.8798ZM7.9778 8.9785a1.351 1.351 0 1 1-1.3524 1.351 1.3523 1.3523 0 0 1 1.355-1.351M9.5099 12.24a2.444 2.444 0 0 0 .5006-3.2835 1.9775 1.9775 0 0 0-.1125-.1523 1.1877 1.1877 0 0 0 .524-.8325l.0137-.0919H7.9683A2.4482 2.4482 0 0 0 6.4444 12.24a2.4427 2.4427 0 0 0-.2935.2743l.7461.823a1.351 1.351 0 1 1 1.7831 1.9613l.7475.8229a2.4469 2.4469 0 0 0 .07-3.876\"},\"child\":[]}]})(props);\n};\nexport function SiAib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.8125.004c-.045.0116-.0796.0506-.0977.1073-.1266.4015-.6012 3.0184.7286 3.129 4.032.3342 3.338 3.6082 6.2832 4.2148v1.0703H9.6328l-.9453.9297h3.039v1.8183H9.1642c-2.0105 0-2.8492-1.3788-2.5196-2.4277.2838-.9032 2.2103-2.6043-.1308-3.334.7429 2.0266-2.4297 1.7762-2.4297 4.8945 0 2.4346 2.8034 3.3262 5.08 3.3262h6.3712c2.2766 0 5.08-.8916 5.08-3.3262 0-3.1183-3.1726-2.868-2.4297-4.8945-2.341.7297-.4126 2.4308-.1289 3.334.3296 1.0489-.511 2.4277-2.5214 2.4277h-2.5625V9.4551h3.039l-.9453-.9297h-2.0937V7.459c2.39-.49 2.6793-2.8833 4.3183-4.0488.7411-.5268 2.0625-.5293 2.0625-.5293s-1.8286-1.3563-2.0254-1.502c-.1964-.1456-.6423-.455-1.168-.455-.6355 0-1.5042.9231-2.1015 1.3046-1.279.818-4.0935 2.129-9.086-2.17-.059-.0509-.1151-.0663-.1601-.0546zm11.4766 1.7577c.3063 0 .5546.248.5546.5547a.5545.5545 0 01-.5546.5547.5543.5543 0 01-.5547-.5547c0-.3067.248-.5547.5547-.5547zM5.8945 15.9551L2.713 24H4.375l.7363-1.8867h3.127L8.9843 24h1.6876l-3.0137-7.625c-.0984-.2494-.3452-.42-.6133-.42zm5.17 0v.3672c.0472.0203.0956.043.1386.0625.2022.1428.3457.4904.3457.8984l.002 6.4297c0 .1582.127.2871.2851.2871h1.8243v-.3672c-.0476-.021-.0969-.043-.1407-.0625-.2022-.1428-.3457-.4925-.3457-.9004V16.242c0-.1578-.127-.287-.2851-.287zm3.832 0V24h3.8047c1.6017 0 2.586-1.0737 2.586-2.1816 0-.8782-.5965-1.6329-1.4532-1.9746.579-.3973.9531-1.0128.9531-1.707 0-1.1076-.9842-2.1817-2.586-2.1817zm1.5156 1.3887h1.8496c.534 0 .9668.4332.9668.9667 0 .5179-.4078.9386-.92.963h-1.8964zm-9.7266.8945l1 2.4765H5.6797zm9.7266 2.4433h2.3828c.534 0 .9356.4294.9356.963 0 .5335-.4349.9667-.9688.9667h-2.3496Z\"},\"child\":[]}]})(props);\n};\nexport function SiAidungeon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm5.646 13.002H7.21c.117 0 .213.095.213.213v.123c0 .117-.096.21-.213.21h-.457v1.68h.457c.117 0 .213.096.213.213v.123c0 .118-.096.211-.213.211H5.646a.21.21 0 01-.21-.21v-.124c0-.117.093-.212.21-.212h.46v-1.68h-.46a.21.21 0 01-.21-.211v-.123c0-.118.093-.213.21-.213zm-2.833.023h.958c.13 0 .19.093.235.235l.756 1.974h.06c.13 0 .235.105.235.235v.09c0 .13-.105.234-.235.234h-.816a.234.234 0 01-.235-.234v-.09c0-.13.105-.235.235-.235h.101l-.074-.224h-.969l-.078.224h.178a.2.2 0 01.201.202v.132a.2.2 0 01-.2.202H2.35a.2.2 0 01-.202-.202v-.132a.2.2 0 01.202-.202h.113l.625-1.707h-.276a.234.234 0 01-.234-.234v-.033c0-.13.105-.235.235-.235zm.748.557l-.317.908h.617zm14.109 3.885h.002c.736 0 1.333.649 1.332 1.449 0 .8-.597 1.448-1.332 1.447-.736 0-1.332-.647-1.332-1.447-.001-.8.595-1.448 1.33-1.45zm-4.71.002c.118 0 .212.097.212.219 0 .226-.004.447 0 .671 0 0 .036.268-.223.264-.285-.004-.198-.263-.408-.514-.085-.1-.14-.124-.377-.127-.387-.003-.736.16-.734.9 0 .391.143.931.68.956.156.007.452-.072.452-.072v-.348h-.289a.218.218 0 01-.218-.219v-.082c0-.121.097-.219.218-.219h.977c.121 0 .219.098.219.22v.081a.218.218 0 01-.219.219h-.068l.004.686s-.3.26-1.088.253c-.995-.007-1.356-.78-1.354-1.437.003-.855.61-1.433 1.244-1.441.332-.005.583.078.778.17.02-.1.093-.18.195-.18zm.868.062h1.985c.12 0 .218.098.218.219v.64a.218.218 0 01-.218.22h-.086a.218.218 0 01-.22-.22v-.312h-1.044c0 .006.006.01.006.016v.508h.375v-.055c0-.121.097-.219.219-.219h.054c.121 0 .219.098.219.219v.633a.218.218 0 01-.219.218h-.055a.218.218 0 01-.218-.218v-.055h-.375v.617c0 .003-.004.005-.004.008h1.043v-.313c0-.12.097-.218.219-.218h.086c.12 0 .218.097.218.218v.641a.218.218 0 01-.218.219h-1.985a.218.218 0 01-.219-.219v-.11c0-.12.098-.218.22-.218l.054-.008v-1.648c0-.006.005-.01.006-.016h-.06a.218.218 0 01-.22-.219v-.109c0-.121.098-.219.22-.219zm-10.264.002c.426.02 1.278.202 1.295 1.35.025 1.576-1.502 1.398-1.502 1.398h-.81a.218.218 0 01-.219-.218v-.07c0-.122.098-.22.219-.22h.062l.014-1.726h-.068a.218.218 0 01-.22-.219v-.07c0-.121.099-.219.22-.219.34 0 .673.007 1.01-.006zm1.725 0h.746c.121 0 .219.098.219.219v.088a.218.218 0 01-.219.219h-.08l.004 1.414c-.002.211.176.343.47.347.253.005.468-.132.471-.353v-1.404h-.074a.218.218 0 01-.219-.22v-.087c0-.121.098-.219.22-.219h.743c.122 0 .22.098.22.219v.088a.218.218 0 01-.22.218h-.08l-.004 1.29c0 .494-.24 1.015-1.062 1.015-.765 0-1.09-.457-1.076-1.021l-.006-1.287h-.053a.218.218 0 01-.219-.22v-.087c0-.121.098-.219.22-.219zm4.266.006h.816c.121 0 .219.098.219.219v.076a.218.218 0 01-.219.219h-.074l.017 2.16c-.014.053-.04.086-.123.105a.928.928 0 01-.308.006c-.09-.03-.14-.089-.194-.15l-.96-1.617.01 1.22h.212c.121 0 .219.098.219.22v.075a.218.218 0 01-.219.22h-.816a.218.218 0 01-.219-.22v-.076c0-.12.098-.218.219-.218h.043l.01-1.74h-.036a.218.218 0 01-.218-.22v-.054c0-.122.097-.22.218-.22h.5c.122 0 .158.054.246.22l.852 1.515.012-1.226h-.207a.218.218 0 01-.22-.219v-.076c0-.121.098-.219.22-.219zm11.25 0h.816c.121 0 .219.098.219.219v.076a.218.218 0 01-.219.219h-.074l.017 2.16c-.014.053-.04.086-.123.105a.928.928 0 01-.308.006c-.09-.03-.14-.089-.194-.15l-.96-1.617.01 1.22h.212c.121 0 .219.098.219.22v.075a.218.218 0 01-.219.22h-.816a.218.218 0 01-.219-.22v-.076c0-.12.098-.218.219-.218h.043l.01-1.74h-.036a.218.218 0 01-.218-.22v-.054c0-.121.097-.219.218-.219h.5c.122 0 .158.053.247.219L21 19.279l.012-1.226h-.207a.218.218 0 01-.22-.219v-.076c0-.121.098-.219.22-.219zm-3.768 1.377c0 .5.285.904.635.904.35 0 .634-.404.635-.904 0-.5-.284-.906-.635-.906-.39 0-.632.503-.635.906zm-13.783-.869l.006 1.707c.347-.026.924.007.922-.861-.003-.84-.673-.856-.928-.846z\"},\"child\":[]}]})(props);\n};\nexport function SiAiohttp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12C.01 5.377 5.377.01 12 0c6.623.01 11.99 5.377 12 12-.01 6.623-5.377 11.99-12 12C5.377 23.99.01 18.623 0 12zm12 11.004a10.948 10.948 0 0 0 6.81-2.367l-.303-.656a.746.746 0 0 1-.621-1.347l-.722-1.563a1.244 1.244 0 0 1-1.543-.734l-2.474.633v.012a.747.747 0 1 1-1.475-.178L8.2 15.31a1.244 1.244 0 0 1-1.278.607l-.748 2.59a.747.747 0 0 1-.17 1.388l.052 1.36A10.935 10.935 0 0 0 12 23.003zM5.75 21.05l-.044-1.142a.747.747 0 0 1 .18-1.482l.749-2.59a1.245 1.245 0 0 1-.759-1.147l-4.674-.566A11.035 11.035 0 0 0 5.75 21.05zm13.3-.608a11.083 11.083 0 0 0 2.74-3.421l-3.826-.751a1.245 1.245 0 0 1-.528.672l.732 1.588a.747.747 0 0 1 .598 1.3l.285.612zm2.878-3.698A10.934 10.934 0 0 0 23.004 12a10.95 10.95 0 0 0-2.492-6.965L19 5.551a.749.749 0 0 1-.726.922.747.747 0 0 1-.682-.442L14.449 7.1a2.492 2.492 0 0 1-1.015 2.737l2.857 4.901a1.245 1.245 0 0 1 1.732 1.236l3.904.77zm-8.846-.068l2.465-.63a1.242 1.242 0 0 1 .486-1.157l-2.856-4.9a2.478 2.478 0 0 1-2.444-.11l-2.77 3.892a1.242 1.242 0 0 1 .354 1.263l3.483 1.497a.746.746 0 0 1 1.282.143v.002zm-7.17-2.284a1.246 1.246 0 0 1 1.81-.794l2.77-3.89a2.484 2.484 0 0 1-.93-1.94c0-.603.219-1.186.617-1.64L6.476 2.487a11.013 11.013 0 0 0-5.33 11.328l4.765.578zm8.44-7.572l3.174-1.083v-.01a.747.747 0 0 1 1.345-.448l1.433-.489A10.982 10.982 0 0 0 6.745 2.333l3.64 3.581a2.49 2.49 0 0 1 3.967.904l-.002.003z\"},\"child\":[]}]})(props);\n};\nexport function SiAiqfome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.748 9.195c.607.277.992 1.139 1.04 2.342.033.797-.06 1.399-.303 1.925-.564 1.209-1.578 1.252-2.163.092-.25-.488-.358-1.025-.358-1.778.006-.803.092-1.274.347-1.795.363-.742.895-1.035 1.437-.786zm9.768.076c.591.39.998 1.627.916 2.776-.092 1.371-.699 2.358-1.436 2.358-.407 0-.824-.358-1.095-.943-.45-.976-.423-2.613.065-3.567.363-.716 1.024-.981 1.55-.624zM12.388.029c.223.032.255.06.38.292.184.336.298.456.64.678.314.2.314.211.206.726-.093.434-.039.862.162 1.247.293.58 1.111 1.187 1.86 1.377.281.076.395.081.737.022.222-.033.439-.049.482-.033.049.022.163.2.26.401.217.467.76 1.025 1.193 1.226.705.33 1.47.314 2.206-.05.206-.102.412-.167.461-.151.043.016.168.14.276.271.109.136.326.309.478.385.249.13.341.146.753.14.325-.005.488.012.526.06.157.19.59 2.201.775 3.584.163 1.241.179 4.017.027 5.23-.2 1.644-.498 3.053-.91 4.321-.293.9-.553 1.491-1.09 2.456C20.997 23.675 20.682 24 20.086 24a2.01 2.01 0 0 1-.493-.06c-.353-.119-.895-.536-1.73-1.328-.986-.932-1.404-1.257-1.924-1.512-.634-.315-1.258-.342-1.8-.076-.13.065-.498.358-.807.656-.65.618-.9.753-1.47.791-.704.044-1.1-.135-2.206-.992-.471-.363-.818-.526-1.203-.558-.466-.038-.808.081-1.561.537-.743.45-1.139.59-1.654.59-1.073 0-2.006-.66-2.965-2.097C1.205 18.34.424 16.09.17 13.863c-.098-.84-.114-2.537-.033-3.367.428-4.266 2.494-7.53 5.828-9.193C7.005.783 8.149.419 9.455.197c.976-.163 2.413-.244 2.933-.168zm-2.239 1.48C7.64 1.758 5.2 3.113 3.731 5.065c-1.529 2.033-2.38 5.399-2.07 8.19.2 1.85.964 3.947 1.989 5.487.52.78.72.997 1.084 1.176.553.271 1.122.174 1.827-.309.629-.434 1.28-.623 1.978-.585.71.043.982.184 2.055 1.1.634.542 1.182.602 1.794.195.136-.092.44-.325.678-.52.764-.634 1.35-.857 2.277-.862 1.16-.006 1.913.428 2.981 1.73.868 1.05 1.204 1.268 1.68 1.089.781-.298 1.567-2.082 2.082-4.716.683-3.48.553-6.522-.352-8.37-.293-.608-.645-.998-.976-1.095-.206-.06-.27-.055-.704.086-.418.136-.564.158-1.106.158-.51 0-.689-.028-.992-.13-.58-.196-.84-.434-1.486-1.356-.298-.428-.558-.569-1.263-.71-1.3-.25-1.832-.477-2.293-.976-.434-.466-.71-1.09-.91-2.054-.055-.282-.152-.591-.212-.689-.222-.357-.759-.488-1.643-.395z\"},\"child\":[]}]})(props);\n};\nexport function SiAirasia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.54 14.49c-1.278 0-2.264-.998-2.264-2.276 0-1.252.98-2.27 2.264-2.27 1.232 0 2.238 1.018 2.238 2.27 0 1.278-1.005 2.277-2.239 2.277zm3.074-7.854l-.214.998c-.59-1.18-2.348-1.297-3.295-1.297-2.952 0-5.527 2.841-5.527 6.746 0 3.14 1.875 5.111 4.23 5.111 1.316 0 2.432-.304 3.353-1.4l-.24 1.102h3.711l1.692-11.26c-1.238-.001-2.482.01-3.71 0zM12 0c6.63 0 12 5.37 12 12s-5.37 12-12 12S0 18.63 0 12 5.37 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiAirbnb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001 18.275c-1.353-1.697-2.148-3.184-2.413-4.457-.263-1.027-.16-1.848.291-2.465.477-.71 1.188-1.056 2.121-1.056s1.643.345 2.12 1.063c.446.61.558 1.432.286 2.465-.291 1.298-1.085 2.785-2.412 4.458zm9.601 1.14c-.185 1.246-1.034 2.28-2.2 2.783-2.253.98-4.483-.583-6.392-2.704 3.157-3.951 3.74-7.028 2.385-9.018-.795-1.14-1.933-1.695-3.394-1.695-2.944 0-4.563 2.49-3.927 5.382.37 1.565 1.352 3.343 2.917 5.332-.98 1.085-1.91 1.856-2.732 2.333-.636.344-1.245.558-1.828.609-2.679.399-4.778-2.2-3.825-4.88.132-.345.395-.98.845-1.961l.025-.053c1.464-3.178 3.242-6.79 5.285-10.795l.053-.132.58-1.116c.45-.822.635-1.19 1.351-1.643.346-.21.77-.315 1.246-.315.954 0 1.698.558 2.016 1.007.158.239.345.557.582.953l.558 1.089.08.159c2.041 4.004 3.821 7.608 5.279 10.794l.026.025.533 1.22.318.764c.243.613.294 1.222.213 1.858zm1.22-2.39c-.186-.583-.505-1.271-.9-2.094v-.03c-1.889-4.006-3.642-7.608-5.307-10.844l-.111-.163C15.317 1.461 14.468 0 12.001 0c-2.44 0-3.476 1.695-4.535 3.898l-.081.16c-1.669 3.236-3.421 6.843-5.303 10.847v.053l-.559 1.22c-.21.504-.317.768-.345.847C-.172 20.74 2.611 24 5.98 24c.027 0 .132 0 .265-.027h.372c1.75-.213 3.554-1.325 5.384-3.317 1.829 1.989 3.635 3.104 5.382 3.317h.372c.133.027.239.027.265.027 3.37.003 6.152-3.261 4.802-6.975z\"},\"child\":[]}]})(props);\n};\nexport function SiAirbrake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.815.576 24 23.424h-6.072L10.679.576Zm-6.456 0 1.872 5.929-2.447 7.751c1.038.183 2.09.28 3.144.288.576 0 1.175-.048 1.824-.096l1.151 3.912a28.7 28.7 0 0 1-2.951.169 26.568 26.568 0 0 1-4.32-.361L5.88 23.424H0L8.181.576Z\"},\"child\":[]}]})(props);\n};\nexport function SiAirbus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.0673 11.296c0-.8153-.5311-1.4329-1.6304-1.4329h-2.211v4.2614h1.0375v-3.335H9.437c.4323 0 .5928.247.5928.5311 0 .2965-.1605.5312-.5928.5312H8.4363l1.4329 2.2727h1.1858s-.9758-1.5316-.9635-1.5316c.5929-.1359.9758-.5558.9758-1.297M5.4966 9.8631h1.0376v4.2614H5.4966Zm-3.3227 0L0 14.137h1.1734l.3459-.7164h1.754l-.4324-.9017h-.877l.6424-1.3093h.0123l1.4575 2.9274h1.1982L3.1003 9.863Zm12.6854 2.0504c.3335-.1852.5065-.4693.5065-.9017 0-.6917-.5188-1.1487-1.3711-1.1487h-2.4333v4.2614h2.5198c.877 0 1.4575-.4693 1.4575-1.1981.0123-.494-.2718-.8646-.6794-1.0129m-2.2604-1.1487h1.3835c.21 0 .3705.1606.3705.3706s-.1606.3705-.3705.3705h-1.3835zm1.4205 2.4704H12.599v-.8646h1.4205c.247 0 .4447.1852.4447.4323 0 .247-.1977.4323-.4447.4323m4.8049-.9882c0 .6423-.2964 1.0005-.8893 1.0005-.5806 0-.877-.3582-.877-1.0005V9.8631h-1.0623v2.3098c0 1.3217.6917 2.0504 1.9516 2.0504 1.26 0 1.9516-.7287 1.9516-2.0504V9.8631h-1.0623v2.384zm3.8414-.6793c-.9881-.2347-1.1981-.2594-1.1981-.5435 0-.2223.247-.3211.667-.3211.5558 0 1.1364.1358 1.4699.3458l.3335-.8646c-.4447-.247-1.0623-.4076-1.8034-.4076-1.0993 0-1.717.5434-1.717 1.2846 0 .7905.4571 1.1116 1.5194 1.334.8276.1852 1.0005.2964 1.0005.531 0 .2471-.2224.3583-.6794.3583-.6546 0-1.2352-.1606-1.7045-.42l-.3212.914c.5188.2718 1.2846.4447 2.0504.4447 1.0746 0 1.717-.494 1.717-1.334.0123-.6793-.42-1.1116-1.334-1.3216\"},\"child\":[]}]})(props);\n};\nexport function SiAirbyte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.308 2.914C10.876.027 15.128-.819 18.624.848c4.644 2.21 6.339 7.846 3.809 12.194l-5.687 9.77c-.319.547-.842.944-1.455 1.107-.613.163-1.267.079-1.818-.236l6.887-11.832c1.835-3.155.608-7.243-2.758-8.854-2.528-1.208-5.613-.604-7.482 1.473-1.031 1.139-1.608 2.613-1.628 4.145-.018 1.532.524 3.019 1.524 4.185.179.21.372.406.579.588l-4.021 6.919c-.157.273-.365.51-.617.699-.249.189-.534.329-.838.411-.303.081-.621.1-.93.061-.313-.041-.614-.143-.885-.298l4.364-7.513C7.041 12.77 6.59 11.763 6.34 10.7l-2.675 4.612c-.317.545-.842.944-1.453 1.107-.615.164-1.269.079-1.818-.237L7.31 4.284c.29-.487.622-.948.998-1.37Zm7.983 3.784c1.666.956 2.242 3.081 1.277 4.734L10.936 22.81c-.317.547-.84.945-1.455 1.109-.612.162-1.268.079-1.816-.237l6.159-10.596c-.495-.1-.96-.308-1.365-.61-.405-.3-.743-.682-.981-1.122-.242-.441-.385-.928-.418-1.428-.033-.501.045-1.002.224-1.47.18-.468.462-.893.824-1.242.362-.35.795-.618 1.273-.784.474-.168.982-.23 1.485-.183.502.046.989.2 1.425.451Zm-2.412 2.139c-.114.087-.21.196-.282.32-.106.186-.158.398-.144.613.014.215.092.42.224.592.13.167.31.297.515.367.207.068.427.077.636.02.209-.056.396-.172.54-.334.143-.161.234-.36.263-.574.027-.213-.008-.43-.105-.622-.097-.195-.246-.354-.433-.46-.126-.072-.263-.118-.406-.136-.143-.02-.286-.01-.424.026-.14.038-.271.101-.384.188Z\"},\"child\":[]}]})(props);\n};\nexport function SiAircall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.451 5.906a6.978 6.978 0 0 0-5.375-5.39C16.727.204 14.508 0 12 0S7.273.204 5.924.516a6.978 6.978 0 0 0-5.375 5.39C.237 7.26.034 9.485.034 12s.203 4.74.515 6.094a6.978 6.978 0 0 0 5.375 5.39C7.273 23.796 9.492 24 12 24s4.727-.204 6.076-.516a6.978 6.978 0 0 0 5.375-5.39c.311-1.354.515-3.578.515-6.094 0-2.515-.203-4.74-.515-6.094zm-5.873 12.396l-.003.001c-.428.152-1.165.283-2.102.377l-.147.014a.444.444 0 0 1-.45-.271 1.816 1.816 0 0 0-1.296-1.074c-.351-.081-.928-.134-1.58-.134s-1.229.053-1.58.134a1.817 1.817 0 0 0-1.291 1.062.466.466 0 0 1-.471.281 8 8 0 0 0-.129-.012c-.938-.094-1.676-.224-2.105-.377l-.003-.001a.76.76 0 0 1-.492-.713c0-.032.003-.066.005-.098.073-.979.666-3.272 1.552-5.89C8.5 8.609 9.559 6.187 10.037 5.714a1.029 1.029 0 0 1 .404-.26l.004-.002c.314-.106.892-.178 1.554-.178.663 0 1.241.071 1.554.178l.005.002a1.025 1.025 0 0 1 .405.26c.478.472 1.537 2.895 2.549 5.887.886 2.617 1.479 4.91 1.552 5.89.002.032.005.066.005.098a.76.76 0 0 1-.491.713z\"},\"child\":[]}]})(props);\n};\nexport function SiAircanada (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.394 16.958c0-.789.338-.902 1.127-.451a54.235 54.235 0 0 0 2.704 1.465c0-.45.451-.789 1.24-.564.789.226 1.577.338 1.577.338s-.45-1.014-.676-1.464c-.338-.789 0-1.24.338-1.352 0 0-.45-.338-.789-.564-.676-.45-.563-1.014.113-1.24.902-.45 2.141-.9 2.141-.9-.338-.226-.789-.79-.338-1.578.45-.676 1.24-1.69 1.24-1.69H18.93c-.79 0-1.015-.676-1.015-1.127 0 0-1.239.901-2.14 1.465-.79.563-1.465 0-1.352-.902a37 37 0 0 0 .338-2.93c-.451.451-1.24.339-1.69-.337-.564-1.127-1.127-2.48-1.127-2.48S11.38 4 10.817 5.128c-.338.676-1.127.788-1.578.45a37 37 0 0 0 .338 2.93c.113.789-.563 1.352-1.352.789-.901-.564-2.253-1.465-2.253-1.465 0 .45-.226 1.014-1.014 1.127H2.817s.789 1.014 1.24 1.69c.45.676 0 1.352-.339 1.577 0 0 1.127.564 2.141.902.676.338.902.788.113 1.24-.226.225-.789.563-.789.563.45.112.789.563.45 1.352-.225.45-.675 1.464-.675 1.464s.788-.225 1.577-.338c.789-.225 1.127.226 1.24.564 0 0 1.352-.789 2.704-1.465.676-.45 1.127-.225 1.127.45v1.916c0 1.127-.226 2.254-.564 2.93-5.07-.564-9.352-4.62-9.352-10.028 0-5.521 4.62-10.029 10.366-10.029 5.747 0 10.367 4.508 10.367 10.029 0 5.183-4.057 9.464-9.24 10.028v1.352C19.268 22.592 24 17.746 24 11.775 24 5.352 18.592.282 11.944.282 5.408.282 0 5.352 0 11.662c0 5.521 4.169 10.14 9.69 11.155.902.225 1.465.338 2.028.901.564-1.126.676-3.38.676-4.62Z\"},\"child\":[]}]})(props);\n};\nexport function SiAirchina (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.75 23.377c3.431.96 7.361-1.449 7.361-5.442v-4.713c0-1.377 1.147-3.19 3.212-3.19 2.17 0 3.201 1.949 3.201 3.19 0 .792-.313 2.377-1.804 2.377-1.188 0-1.95-1.21-1.574-2.2-.083.333.093.657.449.657.343 0 .532-.324.468-.73 0-.083-.104-.834-.939-.834-.698 0-.927.636-.927.948v4.193c0 4.483-4.88 7.798-9.447 5.744M3.508 19.99s2.303 2.336 5.338.573c2.012-1.167 2.075-3.598 2.075-3.598v-5.431s-.084-2.722 2.366-4.672c1.711-1.345 3.296-1.252 4.39-1.387 2.806-.344 4.057-2.116 4.057-2.116.031.302-.272 3.555-3.785 4.483-.72.188-4.578-.187-4.578 4.275v5.38c0 1.126-.27 3.118-2.377 4.526-2.169 1.439-5.683 1.21-7.486-2.033M1.047 8.759H3.85c0-.5.428-1.471 1.523-1.471.427 0 .5.095 1.052-.02.72-.24 1.043-.657 1.19-.99 0 0 .28 1.187-.845 1.813-.637.345-1.616.074-1.616.074s-.792-.115-.897.593c.449 0 1.147.449 1.147 1.22v6.528c0 .469.375.96.949.96a.95.95 0 0 0 .949-.96v-4.578c0-6.757 5.255-9.56 8.31-9.79 2.533-.188 4.244.04 7.34-2.138 0 0-.97 3.796-5.358 4.703-.804.166-3.224-.115-5.497 2.252-1.803 1.877-1.99 3.608-1.99 5.891v4.035c0 1.762-1.419 3.545-3.587 3.545-2.096 0-3.566-1.668-3.566-3.545v-6.85c0-.563-.406-1.074-1.054-1.074h-.854Z\"},\"child\":[]}]})(props);\n};\nexport function SiAirfrance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.776 3.9L5.184 16.332C4.051 17.969 2.208 19.548 0 19.721v.379h9.552c2.544 0 4.397-1.656 5.616-3.48L24 3.9Z\"},\"child\":[]}]})(props);\n};\nexport function SiAirindia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.483.001C6.247.043 4.102 1.018 2.092 2.898c.141-.065-.545.44-1.637 1.676.013.006-.009.017-.013.025 0 0 .014.037.14-.064.75-.61 3.198-2.893 9.86.101a276.52 276.52 0 0 0 6.42 2.78s1.027 3.236 2.207 6.637c2.398 6.89-.087 9.135-.76 9.82-.102.114-.064.127-.064.127a16.746 16.746 0 0 0 2.385-2.08c1.624-1.637 2.588-3.428 2.855-5.344.254-1.878-.203-3.5-.584-4.566-.266-.75-.481-1.346-.672-1.88-.862-2.423-1.028-2.867-1.625-5.29l-.203-.8c-.023-.003.009-.016.014-.025l-.787-.254c-2.386-.774-2.804-.964-5.165-2.017-.52-.229-1.103-.496-1.826-.813-.85-.368-2.146-.875-3.707-.926a8.027 8.027 0 0 0-.447-.004Z\"},\"child\":[]}]})(props);\n};\nexport function SiAirplayaudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.908.183a12.012 12.012 0 00-8.044 3.172c-4.882 4.475-5.166 12.08-.692 16.962.204.244.448.447.692.692a.315.315 0 00.408-.04l.53-.61a.32.32 0 000-.448C.53 15.965.243 9.253 4.23 4.982 8.217.711 14.889.427 19.16 4.414c4.271 3.986 4.555 10.655.568 14.927-.203.203-.365.407-.568.57a.32.32 0 000 .447l.53.611a.37.37 0 00.446.04c4.882-4.516 5.166-12.081.692-16.962a11.98 11.98 0 00-8.92-3.864zm.387 3.518A8.607 8.607 0 006.143 6c-3.458 3.213-3.66 8.623-.447 12.08.122.123.243.285.406.407a.319.319 0 00.447 0l.53-.61a.32.32 0 000-.446A7.263 7.263 0 014.8 12.183c0-3.946 3.212-7.16 7.158-7.16s7.16 3.253 7.16 7.199a7.207 7.207 0 01-2.238 5.209.319.319 0 000 .447l.529.61c.122.121.325.162.447.04a8.599 8.599 0 00.408-12.122 8.494 8.494 0 00-5.97-2.705zm-.266 3.316A5.198 5.198 0 008.34 8.48c-2.075 1.993-2.115 5.247-.122 7.322l.121.123a.319.319 0 00.447 0l.53-.611a.32.32 0 000-.448 3.814 3.814 0 01-1.098-2.683 3.732 3.732 0 013.742-3.742 3.732 3.732 0 013.742 3.742c0 1.017-.406 1.951-1.139 2.683a.32.32 0 000 .448l.53.61a.32.32 0 00.447 0c2.034-1.992 2.116-5.246.123-7.321a5.128 5.128 0 00-3.633-1.586zm.006 7.744a.599.599 0 00-.402.146l-.04.041-7.159 8.055a.506.506 0 00.041.69.437.437 0 00.283.124h14.36a.495.495 0 00.489-.488.463.463 0 00-.121-.326l-7.08-8.055a.5.5 0 00-.37-.187z\"},\"child\":[]}]})(props);\n};\nexport function SiAirplayvideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.412 1.32c-1.178 0-1.584.122-2.031.366A2.449 2.449 0 00.365 2.7C.122 3.148 0 3.553 0 4.771v9.137c0 1.178.122 1.585.365 2.031.244.447.57.772 1.016 1.016.406.244.813.365 2.031.365h2.72l1.138-1.34H3.006c-.325.041-.69-.001-1.016-.164-.203-.08-.366-.283-.488-.486-.122-.325-.203-.65-.162-1.016V4.406c-.04-.325 0-.69.162-1.015.081-.203.285-.365.488-.487.325-.122.65-.204 1.016-.164h17.867c.325-.04.69.002 1.016.164.203.082.364.284.486.487.122.324.203.65.162 1.015v9.95c.04.324 0 .69-.162 1.015-.081.203-.283.365-.486.486-.325.122-.65.203-1.016.163h-4.264l1.137 1.341 2.803-.04c1.218 0 1.623-.122 2.07-.366a2.449 2.449 0 001.016-1.016c.243-.406.365-.813.365-2.03V4.77c0-1.218-.122-1.623-.365-2.07a2.449 2.449 0 00-1.016-1.015c-.447-.244-.852-.366-2.07-.366H3.412zm8.451 12.198a.501.501 0 00-.37.187l-7.106 8.162a.465.465 0 00-.123.326.47.47 0 00.488.487h14.293c.122 0 .245-.04.326-.121.203-.163.204-.489.041-.692l-7.107-8.162-.041-.04a.594.594 0 00-.4-.147z\"},\"child\":[]}]})(props);\n};\nexport function SiAirserbia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.667 3.754-1.148.002-.455.169s-.25.062-.416.482l-.343 1.079s-.094.358-.118.903c-.018.546-.008.019-.008.019s-.026.81-.119 1.055l-.184.643c-.27.634-.546.945-.551.955l-1.032 1.193v.005l-.292.327-.287-.327.006-.006-.639-.725-.086-.104h-.004l-.32-.362c-.003-.01-.294-.343-.566-1.01l-.172-.588c-.093-.245-.12-1.055-.12-1.055s.011.527-.01-.019a4.555 4.555 0 0 0-.113-.903l-.346-1.079c-.169-.42-.415-.483-.415-.483l-.453-.168-1.15-.002-.184.268c-.205.193-.258.116-.531.158-.217.03-.294.043-.473.181-.231.188-.264.434-.264.434v.465l.014.319.262-.325c.443-.018 1.06.252 1.06.252l-.074.182c-.064.144-.063.268-.063.268s-.032.526-.095.84c-.018.092-.03.245-.085.398-.091.268-.564.793-.67.913l-.594.638c-.454-.366-1.24-.853-2.244-.891C2.312 7.81 1.275 8.27.3 9.223L0 9.521l.225.352c.034.055.833 1.292 2.274 1.57.93.181 1.946-.102 2.908-.791l-.703-.793c-.713.515-1.36.686-1.998.565-.598-.114-1.057-.487-1.325-.773.649-.526 1.303-.786 1.95-.76 1.137.041 1.942.932 1.947.94l1.685 1.948.69-.797-1.292-1.49 1.512-1.881.614-.768c.144.761.834 2.071 1.128 2.527l-1.677 1.948-.67.78-.008.01-.006.01-.713.826c-.373.394-1.675 1.679-3.203 2.497 0 0 .48.329 1.107.323.377-.008.813-.14 1.225-.533.17-.158.42-.385.667-.615 0 0-.114.274.155.781.212.386.573.62 1.073.636.777.03 1.333-.375 1.718-.845l-.554-.61s-.5.714-1.114.278c-.225-.212-.206-.57-.206-.57s-.01-.12.109-.373c.417-.705 1.56-2.19 2.236-3.058l.521-.66.747.858.002-.004.291.338-.002.006.02.018-1.303 1.61.59.667L12 12.182v.005l.004-.005 1.685 1.871.7.787.247.26.175.192c.382.42.914.767 1.627.741.5-.017.864-.25 1.075-.636.271-.506.156-.781.156-.781.247.23.493.457.665.615 1.107 1.05 2.331.21 2.331.21-1.523-.818-2.825-2.103-3.195-2.496l-.408-.47-.852.95c.41.565.394.861.394.861s.011.36-.212.571c-.607.441-1.149-.318-1.149-.318l-1.692-2.052-.005-.012-.873-1.07.017-.017.644-.742h-.004l.39-.45.173.214 1.105 1.492.778-.919-1.267-1.475-.001.003-.122-.14c.296-.457.983-1.767 1.126-2.528l.617.768 1.51 1.881-.31.358-1.268 1.468-1.1 1.26-.325.384.688.794.54-.632v.003l.064-.068.82-.947.48-.556 1.495-1.726c.008-.007.805-.898 1.947-.939.652-.026 1.302.234 1.949.76-.269.286-.724.659-1.322.773-.64.12-1.294-.056-2.008-.566l-.686.788c.962.69 1.966.978 2.902.798 1.435-.28 2.233-1.516 2.269-1.57L24 9.52l-.297-.298c-.978-.952-2.017-1.413-3.088-1.368l.001-.001c-.851.032-1.542.384-2.012.716l-.052.037c-.004.001-.012.012-.013.012-.062.046-.124.085-.173.126l-.743-.8c-.176-.213-.453-.557-.521-.75-.057-.154-.071-.307-.084-.399a8.035 8.035 0 0 1-.099-.84s0-.124-.058-.268l-.073-.182s.618-.27 1.054-.252l.27.325.004-.319v-.465s-.028-.247-.265-.434c-.178-.138-.256-.15-.47-.18-.275-.042-.32.034-.525-.159zm-7.648 8.8-.633.84.718.836.84.992 1.074 1.239.692-.794-1.37-1.573-.684-.798zm4.374 1.841-.966 1.12-1.115 1.284c-1.118 1.04-1.204 1.43-1.204 1.43-.467 1.174.15 2.017.15 2.017.089-.733.713-1.444.935-1.72l.433-.496v-.002l1.534-1.775.91-1.046zm-.41 2.709-.706.83.08.094-.002.002.43.496c.225.276.845.987.937 1.72 0 0 .613-.843.15-2.018 0 0-.07-.313-.888-1.124z\"},\"child\":[]}]})(props);\n};\nexport function SiAirtable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.992 1.966c-.434 0-.87.086-1.28.257L1.779 5.917c-.503.208-.49.908.012 1.116l8.982 3.558a3.266 3.266 0 0 0 2.454 0l8.982-3.558c.503-.196.503-.908.012-1.116l-8.957-3.694a3.255 3.255 0 0 0-1.272-.257zM23.4 8.056a.589.589 0 0 0-.222.045l-10.012 3.877a.612.612 0 0 0-.38.564v8.896a.6.6 0 0 0 .821.552L23.62 18.1a.583.583 0 0 0 .38-.551V8.653a.6.6 0 0 0-.6-.596zM.676 8.095a.644.644 0 0 0-.48.19C.086 8.396 0 8.53 0 8.69v8.355c0 .442.515.737.908.54l6.27-3.006.307-.147 2.969-1.436c.466-.22.43-.908-.061-1.092L.883 8.138a.57.57 0 0 0-.207-.044z\"},\"child\":[]}]})(props);\n};\nexport function SiAirtel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.137 23.862c.79 0 1.708-.19 2.751-.554 1.55-.538 2.784-1.281 3.986-2.009l.316-.205a29.733 29.733 0 0 0 3.764-2.72 16.574 16.574 0 0 0 5.457-7.529c.395-1.138.949-3.384.268-5.487a7.117 7.117 0 0 0-2.862-3.749c-.158-.126-1.898-1.47-5.203-1.47-3.005 0-6.31 1.107-9.806 3.32l-.11.08-.317.205a20.133 20.133 0 0 0-2.309 1.693C1.585 6.813-.091 9.106.004 11.067c.031.79.427 1.534 1.075 2.008a3.472 3.472 0 0 0 2.214.68c1.803 0 3.765-.948 5.109-1.74l.253-.157.696-.443.237-.158c1.898-1.234 3.875-2.515 6.105-3.258a5.255 5.255 0 0 1 1.55-.285 3.163 3.163 0 0 1 .664.08 2.112 2.112 0 0 1 1.47 1.106c.523 1.012.396 2.61-.316 4.08a17.871 17.871 0 0 1-4.887 5.836 19.488 19.488 0 0 1-3.194 2.215l-.095.031a9.634 9.634 0 0 1-1.471.696l-.08.032-.41.158c-2.23.57-.87-1.329-.87-1.329.474-.537.98-1.028 1.518-1.502.316-.269.633-.554.933-.854l.064-.063c.395-.38.933-.902.901-1.645-.047-.98-1.075-1.582-2.056-1.613h-.063c-.95 0-1.819.522-2.404.98a7.27 7.27 0 0 0-1.598 1.74c-.6.901-1.85 3.226-.632 5.077.49.743 1.313 1.123 2.42 1.123z\"},\"child\":[]}]})(props);\n};\nexport function SiAirtransat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.611 0c-2.931.916-5.68 3.434-8.474 6.137C5.564 6.32 1.672 7.74 1.26 7.969c4.122 2.152 5.129 3.115 5.129 3.115s-1.374 3.938-1.649 6.457c.916-2.244 2.702-5.312 3.801-6.777-1.511-1.237-4.35-2.565-4.35-2.565s2.244-.962 6.733-1.191c0 0 1.878-3.619 6.687-7.008zm-2.244 3.344c-.412.87-1.146 2.793-1.283 4.213 3.16.229 5.312.963 5.312.963s-3.205 1.19-4.992 2.609c.32.779 1.055 3.07 1.467 4.855-.687-.64-2.748-2.336-4.26-3.252C9.596 13.511 4.1 18.962 1.031 24c1.328-1.374 5.267-5.817 10.58-9.023 1.1.64 6.137 3.939 6.137 3.939s-1.1-5.862-1.512-7.236c1.558-1.054 4.214-2.52 6.733-3.3-3.527-1.419-7.832-1.784-7.832-1.784s-.09-1.1.23-3.252z\"},\"child\":[]}]})(props);\n};\nexport function SiAjv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.705 4.718a980.02 980.02 0 0 1 1.211 3.19l2.962 7.886c.198.526-.054 1.17-.583 1.366-.311.116-.655.06-.926-.11l-1.454 1.418c.81.775 1.985 1.034 3.116.614 1.602-.593 2.387-2.416 1.79-4.008L10.984 4.718zm4.153.013 4.57 11.72 1.924.008L24 4.783l-2.404-.011-3.193 8.832-3.141-8.861zm-8.309.013L0 16.421l2.354.01 1.092-2.91 4.112.019 1.08 2.92 2.355.012L6.572 4.754zm.999 2.592L7.15 11.94l-3.316-.016z\"},\"child\":[]}]})(props);\n};\nexport function SiAkamai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.0548 0C6.384 0 .961 5.3802.961 12.0078.961 18.6354 6.3698 24 13.0548 24c.6168 0 .6454-.3572.0859-.5293-4.9349-1.5063-8.5352-6.069-8.5352-11.4629 0-5.4656 3.6725-10.0706 8.6934-11.5195C13.8153.3448 13.6716 0 13.0548 0Zm2.3242 1.8223c-5.2648 0-9.5254 4.2606-9.5254 9.5254 0 1.2193.2285 2.3818.6445 3.4433.1722.459.4454.4584.4024.0137-.0287-.3156-.0567-.6447-.0567-.9746 0-5.2648 4.2606-9.5254 9.5254-9.5254 4.9779 0 6.4698 2.2235 6.6563 2.08.2008-.1577-1.808-4.5624-7.6465-4.5624zm.4687 4.0703c-1.8622.0592-3.651.7168-5.1035 1.8554-.2582.2009-.1567.3284.1445.1993 2.4675-1.076 5.5812-1.1046 8.6368-.043 2.0514.7173 3.2413 1.7364 3.3418 1.6934.1578-.0718-1.1915-2.2226-3.6446-3.1407-1.1135-.4196-2.2576-.6-3.375-.5644z\"},\"child\":[]}]})(props);\n};\nexport function SiAkasaair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7315 1.8005c-2.297 0-3.2705.731-4.165 2.3824l-.6291 1.1158a3.2264 3.2264 0 0 0-.5293 1.4828c.026.4297.1655.8441.4064 1.201l5.0022 8.9444c1.789 3.1968 4.0007 4.9858 8.7642 4.9858.4075 0 .508-.2434.344-.5292L17.4367 9.793C16.14 7.4536 15.69 5.7656 15.69 4.5483a3.5322 3.5322 0 0 1 .8143-2.425c.1218-.1376.101-.3228-.1425-.3228ZM7.8123 8.8558c-.1218 0-.201.084-.3228.285L.0787 21.7113a.3929.3929 0 0 0-.0786.2441c0 .2435.386.2442.4866.2442 5.335 0 9.041-3.2553 9.041-7.9712a10.0555 10.0555 0 0 0-1.409-5.107c-.1006-.1589-.1847-.2655-.3064-.2655Z\"},\"child\":[]}]})(props);\n};\nexport function SiAkaunting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.146 18.673a7.352 7.352 0 0 1-3.148.704 7.344 7.344 0 0 1-4.538-1.561l-3.013 3.511A11.956 11.956 0 0 0 11.998 24c1.913 0 3.721-.448 5.326-1.244l-2.178-4.083Zm4.229 2.792V24h4.623V12c0-6.627-5.372-12-12-12C5.473 0 .165 5.208.002 11.693h4.626a7.377 7.377 0 1 1 11.034 6.711l2.177 4.081a12 12 0 0 0 1.536-1.02ZM7.016 17.44a7.352 7.352 0 0 1-2.389-5.165H.002a11.97 11.97 0 0 0 4.002 8.675l3.012-3.51Z\"},\"child\":[]}]})(props);\n};\nexport function SiAkiflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.425 5.2 5.457 18h5.795l.948-2.99.947 2.99h5.795L14.974 5.2Zm.836.8h4.124l3.472 11.2h-4.124l-1.152-3.632Zm-.543.957 2.063 6.728-1.113 3.515H6.543ZM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0Zm0 .8C18.186.8 23.2 5.813 23.2 12c0 6.186-5.014 11.2-11.2 11.2C5.814 23.2.8 18.186.8 12 .8 5.814 5.814.8 12 .8Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlacritty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.065 0-8.57 21.269h3.595l6.91-16.244 6.91 16.244h3.594l-8.57-21.269zm1.935 9.935c-0.76666 1.8547-1.5334 3.7094-2.298 5.565 1.475 4.54 1.475 4.54 2.298 8.5 0.823-3.96 0.823-3.96 2.297-8.5-0.76637-1.8547-1.5315-3.7099-2.297-5.565z\"},\"child\":[]}]})(props);\n};\nexport function SiAlamy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24c6.627 0 12-5.373 12-12S18.627 0 12 0 0 5.373 0 12s5.373 12 12 12Zm.058-18.533c2.515 0 3.482 1.404 3.482 3.959v7.04c0 .78 0 1.21.193 1.872H13.47c-.406-.331-.503-1.072-.503-1.423-.464 1.111-1.102 1.618-2.224 1.618-1.354 0-2.476-1.014-2.476-3.257 0-2.626 1.618-3.566 2.956-4.343.937-.545 1.736-1.009 1.744-1.917 0-.858-.29-1.15-.909-1.15-.696 0-.987.468-.987 1.56v.429H8.5v-.37c0-2.614 1.006-4.018 3.559-4.018Zm-.213 10.667c.6 0 .948-.526 1.122-.8v-3.393c-.209.345-.544.621-.887.904-.608.5-1.24 1.023-1.24 1.983 0 .838.367 1.306 1.005 1.306Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlbertheijn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.652 0c-.354.002-.714.09-1.047.276L4.475 5.924c-.456.26-.881.716-1.075 1.362l-2.718 9.44c-.326 1.13.311 2.314 1.423 2.646l15.968 4.542c1.111.33 2.277-.318 2.603-1.448l2.641-9.258c.172-.543.076-1.213-.192-1.737L17.59 1.162A2.19 2.19 0 0 0 15.652 0zM12.97 6.373s-.008 4.23 0 4.225c.899-1.295 1.712-2.577 3.234-2.577 1.684-.001 2.597 1.409 2.602 2.595l-.007 7.596h-1.891l-.009-7.19c0-.988-.793-.986-.804-.986-.64 0-1.816 1.605-3.125 3.386v4.793l-1.913.002-.002-2.219S9.79 18.217 7.897 18.22c-2.148 0-2.877-1.476-2.882-5.015-.004-3.37.474-5.175 2.777-5.177 1.751-.001 3.256 2.55 3.256 2.55V8.963zm-5.15 3.658c-.88 0-.957.93-.954 3.17.003 2.242.124 3.115.95 3.115 1.124-.001 2.895-2.86 2.895-2.86S8.955 10.03 7.82 10.03z\"},\"child\":[]}]})(props);\n};\nexport function SiAlby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.08 9.322c-3.77 0-6.96 2.33-8.05 5.57-.36 1.04.25 2.13 1.27 2.55 2.15.87 4.46 1.32 6.78 1.32s4.62-.45 6.78-1.32c1.02-.42 1.63-1.51 1.27-2.55-1.09-3.24-4.29-5.57-8.05-5.57zm-2.92 6.61c-1.09 0-1.97-.7-1.97-1.57s.89-1.57 1.97-1.57 1.97.7 1.97 1.57-.88 1.57-1.97 1.57zm5.63 0c-1.08 0-1.96-.7-1.96-1.57s.87-1.57 1.96-1.57 1.97.7 1.97 1.57-.88 1.57-1.97 1.57zm4.79-8.14.91-.91c.75.42 1.67.4 2.4-.06 1.11-.69 1.44-2.14.75-3.25a2.355 2.355 0 0 0-3.25-.75 2.358 2.358 0 0 0-.76 3.25l-.92.92c-1.87-1.53-4.15-2.44-6.63-2.44s-4.81.93-6.7 2.5l-1-1c.45-.74.46-1.66.03-2.41a2.357 2.357 0 0 0-3.22-.87 2.36 2.36 0 0 0-.88 3.22 2.37 2.37 0 0 0 3.23.88l.98.98c-1.93 1.94-3.3 4.61-3.83 7.6-.28 1.66.57 3.29 2.09 3.99 2.92 1.39 6.11 2.11 9.34 2.1 3.2 0 6.36-.7 9.25-2.06a3.695 3.695 0 0 0 2.16-3.37c0-.2-.01-.41-.05-.62-.54-3.04-1.93-5.75-3.9-7.7zm1.29 10.63a20.394 20.394 0 0 1-8.75 1.95c-3.06.01-6.08-.67-8.83-1.99a2.504 2.504 0 0 1-1.44-2.7c1.03-5.76 5.28-9.94 10.23-9.94s9.22 4.2 10.24 9.97c.19 1.12-.4 2.22-1.45 2.71z\"},\"child\":[]}]})(props);\n};\nexport function SiAlchemy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0059 1.7635a.4383.4383 0 0 0-.2149.0547.4214.4214 0 0 0-.1562.1523L9.3613 5.834a.8191.8191 0 0 0-.1133.416c0 .146.0388.2896.1133.416l4.9512 8.4123a.8444.8444 0 0 0 .3125.3047.8584.8584 0 0 0 .4239.1113h4.5489a.4358.4358 0 0 0 .2129-.0566.4185.4185 0 0 0 .1543-.1524.4106.4106 0 0 0 .0586-.207.416.416 0 0 0-.0567-.209L12.3711 1.9745a.416.416 0 0 0-.1543-.1524.4276.4276 0 0 0-.211-.0586zM8.0195 8.5058a.4277.4277 0 0 0-.211.0566.4235.4235 0 0 0-.1562.1524L.0584 21.6095a.4083.4083 0 0 0-.002.418.4188.4188 0 0 0 .1563.1524c.065.0365.138.057.2129.0566h4.5509a.8586.8586 0 0 0 .4238-.1113.8389.8389 0 0 0 .3105-.3047l4.9532-8.4123a.8194.8194 0 0 0 .1133-.416.8264.8264 0 0 0-.1133-.418L8.3886 8.7148a.4235.4235 0 0 0-.1562-.1524.435.435 0 0 0-.213-.0566Zm3.0117 8.8244a.8645.8645 0 0 0-.4258.1113.8385.8385 0 0 0-.3105.3047l-2.2754 3.8614a.4123.4123 0 0 0-.0567.209.4059.4059 0 0 0 .0567.207.4228.4228 0 0 0 .1543.1543.432.432 0 0 0 .2129.0547h15.1897a.4319.4319 0 0 0 .2129-.0547.4222.4222 0 0 0 .1543-.1543.4059.4059 0 0 0 .0566-.207.4122.4122 0 0 0-.0566-.209L21.67 17.7462a.8384.8384 0 0 0-.3106-.3047.8573.8573 0 0 0-.4238-.1113z\"},\"child\":[]}]})(props);\n};\nexport function SiAldinord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.812 2.057 6.086 13.73c-.349.523-.581.89-.592 1.461-.01.541.128 1.027.395 1.495h1.46a2.11 2.11 0 0 1-.546-1.531c.007-.125.03-.28.067-.405h9.833a1.933 1.933 0 0 0-.297-.583H7.145a11.3 11.3 0 0 1 .379-.604l.507-.76h7.47l-.408-.614H8.44l6.702-10.132zm-3.502 0L3.092 12.963c-.549.823-.806 1.304-.806 2.068 0 .871.232 1.255.409 1.655h1.153a4.007 4.007 0 0 1-.096-.232 3.327 3.327 0 0 1-.233-1.23c.02-.811.302-1.356.772-2.058l7.381-11.109zm6.34 14.629c.338-.352.58-.927.547-1.532-.028-.517-.343-1.026-.72-1.591l-4.234-6.35.648-.974 4.993 7.491c.348.523.58.89.592 1.461a2.833 2.833 0 0 1-.395 1.495h-1.43zm3.508 0c.041-.09.062-.144.094-.23.123-.324.27-.768.26-1.231-.02-.812-.302-1.357-.773-2.059l-5.745-8.58.665-.996 6.25 9.373c.548.824.805 1.303.805 2.068 0 .871-.232 1.255-.409 1.655zm-17.53.457v4.8h18.743v-4.8zm3.588.571h1.672l1.873 3.658H8.104l-.176-.385H6.177L6 21.372H4.343zm3.761 0h1.67v2.601h1.435v1.057H9.977zm3.422 0h2.43c1.002 0 1.814.82 1.814 1.83a1.822 1.822 0 0 1-1.815 1.828h-2.43zm4.614 0h1.644v3.658h-1.644zm-2.974 1.034v1.59h.352c.41 0 .743-.356.743-.795 0-.44-.332-.795-.743-.795zm-7.996.465-.374.811h.767zm.84-6.189h7.767l.614.922H7.276c.088-.145.607-.922.607-.922m4.035-10.967L4.488 13.24c-.465.695-.731 1.214-.75 1.99-.01.452.128 1.013.337 1.457h1.576a2.942 2.942 0 0 1-.376-1.497c.012-.615.266-1.01.614-1.531l7.678-11.6zm6.431 14.629a2.94 2.94 0 0 0 .376-1.497c-.012-.615-.266-1.01-.613-1.532l-5.079-7.625.827-1.247 5.652 8.454c.465.695.732 1.214.75 1.99.011.452-.128 1.013-.338 1.457H18.35zM23.429 0H.57v24h22.86zm-.915 23.086H1.486V.914h21.028z\"},\"child\":[]}]})(props);\n};\nexport function SiAldisud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.164 10.92c-.243-.558-.558-.655-1.044-.655h-4.368l-.412 1.189a.727.727 0 0 1-.097.243h5.533c.315 0 .582.048.8.315h.049c0 .024-.437-1.02-.461-1.092zm-.898-2.135c-.243-.51-.534-.583-1.02-.583h-2.79l-.485 1.432h3.955c.364 0 .631.049.825.315h.049s-.486-1.043-.534-1.164zm-.874-2.063c-.267-.534-.534-.582-1.019-.582h-1.238l-.485 1.43h2.403c.34 0 .63.049.825.316h.048c0-.025-.485-1.02-.534-1.165zM9.355 3.519c-.68 0-.97.485-1.238 1.237L5.424 12.74h.68c.679 0 .97-.485 1.237-1.237l2.354-6.94c.194-.607.485-.947.922-.996V3.52zm4.416-.025c-.679 0-.97.486-1.237 1.238l-2.354 6.916c-.194.607-.461.947-.898.995v.049h1.213c.68 0 .971-.486 1.238-1.238l2.354-6.916c.194-.607.485-.946.922-.995v-.049zm-2.208 0c-.68 0-.97.486-1.237 1.238l-2.33 6.94c-.194.607-.461.947-.898.995v.049h1.213c.68 0 .971-.485 1.238-1.238l2.354-6.916c.194-.606.485-.946.922-.995V3.52c-.218-.025-1.213-.025-1.262-.025zm.364 16.842c-.558 0-.655-.243-.655-.825v-.923h.461v1.044c0 .267.024.388.218.388.17 0 .219-.097.219-.388v-1.044h.437v.923c0 .63-.17.825-.68.825zm.316-1.917a.217.217 0 0 1-.219-.219c0-.121.097-.242.219-.242.121 0 .218.12.218.242a.217.217 0 0 1-.218.219zm-.631 0a.217.217 0 0 1-.219-.219c0-.121.097-.242.219-.242.121 0 .218.12.218.242a.217.217 0 0 1-.218.219zm1.31 1.868v-1.699h.485c.607 0 .874.122.874.85s-.267.85-.874.85zm.558-.291c.243 0 .34-.146.34-.558 0-.388-.097-.558-.34-.558h-.097v1.116zm-3.154.34c-.267 0-.461-.049-.559-.073l.073-.316c.17.049.291.073.389.073.12 0 .266-.024.266-.17 0-.097-.12-.17-.242-.242h-.024c-.195-.122-.413-.243-.413-.51 0-.315.218-.485.63-.485.22 0 .34.024.51.073l-.072.29a.924.924 0 0 0-.364-.072c-.146 0-.243.048-.243.17 0 .097.121.17.267.242h.024c.194.122.437.243.437.51 0 .316-.218.51-.68.51zM8.36 17.569c-.049-.194-.121-.534-.17-.68H6.855c-.048.146-.12.486-.17.68H5.497c.51-1.601.728-2.257 1.31-3.688h1.457c.558 1.407.8 2.087 1.31 3.688zm-1.335-1.456h.995c-.145-.485-.412-1.31-.485-1.553-.097.219-.364 1.044-.51 1.553zm3.834 1.456c-.63 0-.97-.364-.97-.995v-2.693h1.116v2.475c0 .315.097.388.413.388h1.092l.17.825zm6.334-3.688h1.116v3.688h-1.116zm-4.077 3.688v-3.688h1.53c1.14 0 1.916.46 1.916 1.82 0 1.31-.63 1.868-1.868 1.868zm1.117-.8h.315c.68 0 .946-.316.946-1.068 0-.728-.34-1.02-.995-1.02h-.266zm5.532 4.732c0 .17-.145.29-.29.29H4.55a.295.295 0 0 1-.291-.29V2.475c0-.17.145-.291.291-.291h14.924c.17 0 .291.146.291.291zM4.065 1.626a.383.383 0 0 0-.389.388v19.948c0 .218.17.388.389.388h15.87c.219 0 .389-.17.389-.388V2.014a.383.383 0 0 0-.389-.388zM2.803 0a.808.808 0 0 0-.801.8v22.4c0 .436.364.8.8.8h18.395a.808.808 0 0 0 .801-.8V.8c0-.436-.364-.8-.8-.8zm.704.946h17.01a.54.54 0 0 1 .535.534l-.025 21.04a.539.539 0 0 1-.534.534H3.507a.539.539 0 0 1-.534-.534V1.48a.54.54 0 0 1 .534-.534z\"},\"child\":[]}]})(props);\n};\nexport function SiAlfaromeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.539 5.4052a.2158.2158 0 1 0 0-.4318.2158.2158 0 1 0 0 .4318zm-9.3055 1.576l-.6533 1.2987-1.3365-.7-.276.5514a.4317.4317 0 0 1 .0917-.0097c.0556 0 .1107.0105.1536.0301l1.4923.7814.8869-1.764zm15.7221.4324l.3109-.1689.509.9792.3498-.1894-.5095-.9791.2969-.1608.7336 1.4093.3494-.1896-1.0138-1.9486c-.0371.0863-.1084.1592-.1651.1888l-1.451.787 1.0071 1.9358.3497-.1897zm-7.2864-2.0084a.2158.2158 0 1 0 0-.4318.2158.2158 0 1 0 0 .4318zm5.0574 1.5187l.0027.0031c1.1982 1.3498 1.9262 3.1265 1.9262 5.0732 0 3.1035-1.8496 5.7747-4.5065 6.9728-.009.0044-.0178.0093-.0271.0134l.0021-.0018.025-.0116c.4345-.2065.7352-.6488.7352-1.1619 0-.7107-.576-1.2865-1.2867-1.2865l-1.3545-.0012a.1656.1656 0 1 1 0-.3312h2.2875c1.0767 0 1.9496-.8729 1.9496-1.9497 0-1.0767-.8729-1.9497-1.9496-1.9497l-.2906.0003h-1.9184a.1656.1656 0 1 1 0-.3311l1.6868-.0019c1.7798 0 3.2227-1.4428 3.2227-3.2226a3.207 3.207 0 0 0-.5307-1.772l-.0085-.012a.023.023 0 0 1-.0046-.0135c0-.013.0106-.0235.0236-.0235.008 0 .0114.0012.0158.0074zm-3.258 12.3178a7.6339 7.6339 0 0 1-2.459.4041c-1.148 0-2.2368-.2534-3.214-.707v-6.0254h2.1652a2.4299 2.4299 0 0 1-.1227-.765c0-.4029.0986-.783.2719-1.1181H8.7957v-5.969c.9771-.4535 2.0658-.707 3.214-.707 1.3347 0 2.5898.3422 3.6818.9435h.0007c.1562.0988.26.273.26.4717a.5572.5572 0 0 1-.5573.5572l-.0122-.0004h-.1792l-.76.0009c-.2677 0-.4145.079-.5066.159-.2655.2302-.1745.5029-.7192.5029h-1.5022c.2032.4685.6696.8067.7856.8855h1.845a.1784.1784 0 0 1 .1655.112.1561.1561 0 0 1 .0102.0971.1786.1786 0 0 1-.1757.1483H12.468c-.1443.0754-.5827.3489-.785.9661h3.39a.4006.4006 0 1 1 0 .8012l-1.7171-.0002c-1.1836 0-2.1431.9595-2.1431 2.143 0 1.1837.9595 2.1432 2.143 2.1432h2.1414c.0915 0 .1656.0765.1656.168a.1638.1638 0 0 1-.1656.1634h-2.193c-.8671 0-1.5701.7028-1.5701 1.5697 0 .8671.703 1.57 1.57 1.57l.8284.0028c.4185 0 .7632.3512.7632.7667 0 .3396-.2049.5791-.427.7158zm-7.5559-8.2114H4.425c.2368-1.8715 1.1506-3.532 2.4878-4.7287zm0 6.6683c-1.3505-1.209-2.2688-2.8907-2.4943-4.7852h2.4943zm5.097-13.7579c-4.451 0-8.0594 3.6083-8.0594 8.0595 0 4.4508 3.6084 8.0594 8.0593 8.0594 4.4512 0 8.0595-3.6086 8.0595-8.0594 0-4.4512-3.6083-8.0595-8.0595-8.0595zm-.301 2.009h1.9023a.1443.1443 0 0 0 .144-.144.1445.1445 0 0 0-.144-.1442h-1.9023a.1445.1445 0 0 0-.144.1442c0 .0793.0649.144.144.144zm.072-.5445a.2159.2159 0 1 0 0-.4318.2158.2158 0 1 0 0 .4318zm.2988 2.6522l.027-.0257v-.0002l-.027-.0259c-.421-.3057-.6075-.6844-.7201-.9775-.0777-.202-.1652-.3679-.2925-.4893-.1322-.1258-.2285-.1927-.4192-.1927a.9713.9713 0 0 0-.2302.0292l-.0456.011.0283.0525c.0422.0783.1205.2238.2576.2656a.1193.1193 0 0 0 .0356.0046.386.386 0 0 0 .0332-.0019c.009-.0008.0178-.0017.0261-.0017.0093 0 .0123.0013.0124.0013.148.0856.2255.7166.2255 1.031 0 .0537-.0222.078-.0718.078-.0493 0-.1136-.027-.153-.0641-.0867-.0935-.2107-.146-.347-.146-.2223 0-.458.1499-.4673.4005v.0509c.0094.2506.245.4005.4674.4005.1362 0 .2602-.0525.3469-.146.0394-.037.1037-.0639.153-.0639.0496 0 .0718.024.0718.0778 0 .3144-.0776.9454-.2255 1.031 0 0-.003.0012-.0124.0012a.2845.2845 0 0 1-.026-.0016.386.386 0 0 0-.0333-.0019.1194.1194 0 0 0-.0356.0046c-.1371.0418-.2154.1873-.2576.2656l-.0283.0525.0456.0112a.9836.9836 0 0 0 .2302.029c.1907 0 .287-.0667.4192-.1927.1273-.1214.2148-.2873.2925-.4893.1126-.2931.299-.6718.7201-.9776zm-9.4412 2.1223l-.1222.8035-.6999-.5284zm-1.2738.6372a.2464.2464 0 0 1 .097-.0193.2522.2522 0 0 1 .1233.0318l.0028.0016 1.5266 1.1735.0775-.5098-.3103-.2336.1861-1.2242.3638-.1216.0773-.5089-2.0309.683zM12 23.52C5.6378 23.52.48 18.3622.48 12S5.6379.4803 12 .4803C18.3622.4803 23.5198 5.6378 23.5198 12c0 6.3622-5.1575 11.52-11.5198 11.52zM12 .0003C5.3727.0003 0 5.3728 0 12c0 6.6272 5.3727 11.9997 12 11.9997 6.6274 0 12-5.3725 12-11.9997C24 5.3728 18.6274.0003 12 .0003zm2.6675 2.643c.0793-.23.2747-.3568.5505-.3568.1153 0 .2378.023.364.0684.4398.1581.6498.4752.5349.8078-.0796.2313-.2755.3589-.5513.3589-.116 0-.2393-.0232-.3665-.0689-.4384-.1575-.6471-.4752-.5316-.8095zm.3924 1.2166c.195.0701.389.1057.5764.1057h.0001c.4753 0 .8395-.2332.9743-.624.0951-.276.052-.57-.1214-.828-.1655-.2464-.4383-.4475-.7682-.566-.1902-.0683-.3816-.103-.5682-.103-.4793 0-.8453.2316-.9795.6199-.1917.5552.181 1.1422.8865 1.3954zm3.0944.1594l-.1837 1.4554.023.0215 1.3938-.3266-.766 1.037.3757.3504 1.1621-1.5327-.4317-.4023-1.2158.2723.1485-1.2671-.452-.4215h-.0004l-.0554-.0512c-.0045.0915-.0427.184-.0945.234l-1.2044 1.1699.3777.3522zm3.6243 7.4815a.5396.5396 0 0 1-.0919.008c-.3011 0-.5317-.2627-.602-.6852-.0776-.4672.0937-.8074.437-.8671a.5656.5656 0 0 1 .0904-.0076c.2959 0 .5317.2678.6006.6827.078.4686-.0923.8099-.4341.8692zm.8493-.9418c-.1124-.6738-.5424-1.1443-1.0459-1.1443a.8997.8997 0 0 0-.1481.0128c-.568.0989-.8894.7165-.7643 1.4687.1143.6858.5346 1.1466 1.0457 1.1466a.883.883 0 0 0 .1512-.0132c.5663-.0983.8867-.7167.7614-1.4706zM12.4323 1.7271h.0001c.1613 0 .2707.1156.2722.288.0014.174-.104.2832-.2751.2846l-.9892.0087-.005-.5726zm-1.495 1.5232l.5109-.0045-.0045-.532.8572-.0077.3746.5292.5696-.005-.4303-.5697.053-.0254c.2187-.1048.3427-.3229.3402-.5984-.0037-.4345-.29-.7154-.7288-.7154l-1.5587.0134v.0006l-.09.0005c.0533.0645.0872.1498.0923.2213zm-3.3844.3238l-.7046.4047-.0227-.8766zm-1.1647-.4215l.0006.0034.0334 1.927.4472-.2571-.0108-.3882 1.0735-.6173.3217.209.4463-.2565-1.7995-1.1634-.64.3654a.2541.2541 0 0 1 .1276.1777zM3.748 5.5746L4.9572 6.735l.3507-.3805-.4455-.4277.744-.8074-.2887-.2772-.7443.8074-.344-.3301 1.0713-1.1627-.2887-.277-1.4859 1.6131c.0782.0052.1643.036.22.0802l.0018.0014Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlfred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 15.902c0-1.142 1.133-2.184 3-2.977v-1.827c0-4.142 4.029-7.5 9-7.5s9 3.358 9 7.5v1.827c1.867.793 3 1.835 3 2.977 0 2.485-5.373 4.5-12 4.5s-12-2.015-12-4.5z\"},\"child\":[]}]})(props);\n};\nexport function SiAlgolia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.445 0 .103 5.285.01 11.817c-.097 6.634 5.285 12.131 11.92 12.17a11.91 11.91 0 0 0 5.775-1.443.281.281 0 0 0 .052-.457l-1.122-.994a.79.79 0 0 0-.833-.14 9.693 9.693 0 0 1-3.923.77c-5.36-.067-9.692-4.527-9.607-9.888.084-5.293 4.417-9.573 9.73-9.573h9.73v17.296l-5.522-4.907a.407.407 0 0 0-.596.063 4.52 4.52 0 0 1-3.934 1.793 4.538 4.538 0 0 1-4.192-4.168 4.53 4.53 0 0 1 4.512-4.872 4.532 4.532 0 0 1 4.509 4.126c.018.205.11.397.265.533l1.438 1.275a.28.28 0 0 0 .462-.158 6.82 6.82 0 0 0 .099-1.725c-.232-3.376-2.966-6.092-6.345-6.3-3.873-.24-7.11 2.79-7.214 6.588-.1 3.7 2.933 6.892 6.634 6.974a6.75 6.75 0 0 0 4.136-1.294l7.212 6.394a.48.48 0 0 0 .797-.36V.456A.456.456 0 0 0 23.54 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlgorand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.874 0h3.673l1.61 5.963h3.789l-2.588 4.5 3.624 13.533h-3.757l-2.44-9.077-5.247 9.079H8.345l8.107-14.051-1.304-4.878L4.215 24H.018Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlibabacloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.996 4.517h5.291L8.01 6.324 4.153 7.506a1.668 1.668 0 0 0-1.165 1.601v5.786a1.668 1.668 0 0 0 1.165 1.6l3.857 1.183 1.277 1.807H3.996A3.996 3.996 0 0 1 0 15.487V8.513a3.996 3.996 0 0 1 3.996-3.996m16.008 0h-5.291l1.277 1.807 3.857 1.182c.715.227 1.17.889 1.165 1.601v5.786a1.668 1.668 0 0 1-1.165 1.6l-3.857 1.183-1.277 1.807h5.291A3.996 3.996 0 0 0 24 15.487V8.513a3.996 3.996 0 0 0-3.996-3.996m-4.007 8.345H8.002v-1.804h7.995Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlibabadotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.391 16.22c-.963.044-.865-.459-.302-1.234 1.32-1.768 3.82-4.236 3.906-5.982.151-2.283-2.143-3.026-4.501-3.004-1.645.022-3.344.492-4.501.906C5 8.315 2.489 10.576.909 13.076-.768 15.554-.216 17.923 3.322 18c2.716-.109 4.48-.862 6.32-1.802.01 0-5.086 1.453-6.958.383l-.008-.002c-.193-.11-.404-.264-.457-.683-.012-.885 1.46-1.802 2.283-2.097v-1.533a5.374 5.374 0 0 0 1.955.366 5.378 5.378 0 0 0 3.472-1.265c.037.13.056.278.044.447h.371c.048-.394-.172-.706-.172-.706-.333-.529-.915-.52-.915-.52s.315.137.529.466a4.953 4.953 0 0 1-4.665.932l1.21-1.2-.336-.874c2.435-.852 4.48-1.507 7.812-2.085l-.746-.624.389-.24c2.01.568 3.325.985 3.253 2.051a2.672 2.672 0 0 1-.202.611c-.584 1.158-2.326 3.09-3.029 3.898-.465.535-.92 1.06-1.245 1.562-.335.503-.54.971-.551 1.42.043 3.504 10.334-1.64 12.324-3.003-2.943 1.266-6.113 2.489-9.609 2.718Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlienware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.382 9.4054c-.0649-.6486-.1297-1.3622-.2595-2.0108-.1297-.6487-.2594-1.2973-.5189-1.946-.1297-.3243-.2595-.6486-.3892-.908-.1297-.3244-.3243-.5838-.454-.9082-.1946-.2594-.3892-.5838-.5838-.8432-.1946-.2595-.454-.519-.7135-.7135-.454-.3892-.973-.7784-1.5568-1.1027-.5838-.3244-1.2324-.5838-1.881-.7135C13.3765.0649 12.7278 0 12.0143 0c-.7135 0-1.3621.0649-2.0108.2595C9.355.3892 8.7712.6486 8.1874.973c-.6487.3243-1.1676.7135-1.6865 1.1675-.2595.1946-.454.454-.7135.7136l-.5838.7783c-.1297.3244-.3243.5838-.454.9081l-.3892.973c-.1946.6487-.3892 1.2973-.519 1.946-.1297.6486-.1946 1.2973-.2594 2.0108-.0649.7135 0 1.2973 0 1.946 0 .6486.0648 1.2972.1946 2.0107l.1946.973c.0648.3243.1946.6486.3243.973.454 1.2324 1.1676 2.4 1.881 3.5027.3893.5838.7785 1.1027 1.1676 1.6216.3892.519.7784 1.1027 1.2325 1.5568.1946.2594.454.454.7135.7135.2594.1946.519.3892.8432.5837.2595.1946.5838.3244.9081.4541.1298.0649.3244.1297.4541.1297.1946 0 .3243.0649.519.0649.1945 0 .3242 0 .5188-.0649.1946 0 .3244-.0648.454-.1297.3244-.1297.6487-.2595.9082-.454.2595-.1946.5838-.3892.8432-.5838.2595-.1946.519-.454.7136-.7135.454-.519.8432-1.0379 1.2324-1.5568.3892-.519.7784-1.1027 1.1676-1.6216.7135-1.1027 1.427-2.2703 1.881-3.5027.1298-.3244.2595-.6487.3244-.973.0648-.3243.1946-.6486.1946-.973.1297-.6486.1945-1.2973.1945-2.0108 0-.6486 0-1.3621-.0648-2.0108zM4.8144 12.0649s3.6973.8432 6.0973 5.8378c-.0649 0-6.4216-.1297-6.0973-5.8378zm8.3676 5.8378c2.3351-4.9946 6.0973-5.8378 6.0973-5.8378.3243 5.708-6.0973 5.8378-6.0973 5.8378z\"},\"child\":[]}]})(props);\n};\nexport function SiAliexpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.166 9.096a.022.022 0 0 0-.022.021c0 .396-.32.717-.713.717a.021.021 0 0 0-.021.022c0 .012.01.021.021.021.394 0 .713.322.713.718 0 .012.01.021.022.021.011 0 .021-.01.021-.021A.717.717 0 0 1 5.9 9.88a.021.021 0 0 0 0-.043.716.716 0 0 1-.713-.718v-.002a.021.021 0 0 0-.006-.015.022.022 0 0 0-.015-.006zm-3.693.526L0 13.462h.48l.355-.922h1.782l.354.922h.481L1.98 9.622zm2.264.002v3.838h.491V9.624zm2.375 0v3.838h2.413v-.502H6.613v-1.19H8.19v-.477H6.613v-1.166h1.773v-.502zm-4.386.592l.698 1.82H1.028zm14.689.402a1.466 1.466 0 0 0-.966.366V10.7h-.491v2.763h.49c.002-.477 0-.955.002-1.433a.969.969 0 0 1 .965-.918zm4.18.007c-.053 0-.105.003-.158.01-.315.031-.606.175-.753.377a.689.689 0 0 0-.14.465c.007.2.066.357.233.496.184.147.42.2.657.259.311.067.426.095.546.186.08.07.133.127.136.27 0 .25-.221.372-.42.41a.89.89 0 0 1-.894-.344l-.371.288c.33.382.777.505 1.09.5.54-.01.891-.217 1.029-.534.066-.153.063-.309.063-.38a.677.677 0 0 0-.267-.545c-.228-.177-.583-.228-.636-.242-.437-.078-.658-.196-.697-.341-.043-.192.102-.35.297-.411a.76.76 0 0 1 .857.277l.367-.247a1.166 1.166 0 0 0-.939-.494zm2.387 0c-.052 0-.105.003-.157.01-.316.031-.607.175-.753.377a.689.689 0 0 0-.14.465c.006.2.065.357.233.496.183.147.42.2.657.259.31.067.426.095.545.186.081.07.134.127.136.27.001.25-.221.372-.42.41a.89.89 0 0 1-.894-.344l-.371.288c.33.382.777.505 1.09.5.541-.01.891-.217 1.03-.534.065-.153.062-.309.062-.38a.677.677 0 0 0-.267-.545c-.227-.177-.583-.228-.636-.242-.437-.078-.658-.196-.696-.341-.043-.192.101-.35.297-.411a.76.76 0 0 1 .857.277l.367-.247a1.167 1.167 0 0 0-.94-.494zm-9.84.002a1.461 1.461 0 0 0-1.42 1.117 1.305 1.305 0 0 0-.041.327v2.833h.491v-1.813c.17.18.487.42.96.454a1.447 1.447 0 0 0 1.208-.627 1.457 1.457 0 0 0-1.199-2.292zm4.804 0a1.448 1.448 0 0 0-1.288 2.08c.255.53.811.87 1.412.833a1.452 1.452 0 0 0 1.012-.51l-.363-.291a.968.968 0 0 1-1.106.273 1.01 1.01 0 0 1-.602-.69h2.239l.002-.427a1.295 1.295 0 0 0-1.306-1.268zm-9.2.08l1.062 1.377-1.062 1.378h.581l.779-1.01.778 1.01h.581l-1.062-1.378 1.062-1.378h-.581l-.778 1.01-.779-1.01zm-3.825.015v2.74h.49v-2.74zm8.233.37a.96.96 0 0 1 .95.993.963.963 0 0 1-.863.998.962.962 0 0 1-1.034-.739c-.074-.382 0-.746.307-1.019a.959.959 0 0 1 .64-.233zm4.79.015a.823.823 0 0 1 .819.755h-1.76a.964.964 0 0 1 .94-.755z\"},\"child\":[]}]})(props);\n};\nexport function SiAlipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.695 15.07c3.426 1.158 4.203 1.22 4.203 1.22V3.846c0-2.124-1.705-3.845-3.81-3.845H3.914C1.808.001.102 1.722.102 3.846v16.31c0 2.123 1.706 3.845 3.813 3.845h16.173c2.105 0 3.81-1.722 3.81-3.845v-.157s-6.19-2.602-9.315-4.119c-2.096 2.602-4.8 4.181-7.607 4.181-4.75 0-6.361-4.19-4.112-6.949.49-.602 1.324-1.175 2.617-1.497 2.025-.502 5.247.313 8.266 1.317a16.796 16.796 0 0 0 1.341-3.302H5.781v-.952h4.799V6.975H4.77v-.953h5.81V3.591s0-.409.411-.409h2.347v2.84h5.744v.951h-5.744v1.704h4.69a19.453 19.453 0 0 1-1.986 5.06c1.424.52 2.702 1.011 3.654 1.333m-13.81-2.032c-.596.06-1.71.325-2.321.869-1.83 1.608-.735 4.55 2.968 4.55 2.151 0 4.301-1.388 5.99-3.61-2.403-1.182-4.438-2.028-6.637-1.809\"},\"child\":[]}]})(props);\n};\nexport function SiAllegro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.59 7.981a.124.124 0 0 0-.122.124v5.917a.124.124 0 0 0 .124.124h.72a.124.124 0 0 0 .124-.124h-.002V8.105a.124.124 0 0 0-.124-.124Zm1.691 0a.124.124 0 0 0-.124.124v5.917a.124.124 0 0 0 .124.124h.72a.124.124 0 0 0 .123-.124V8.105a.124.124 0 0 0-.122-.124Zm12.667 1.776a1.868 1.868 0 0 0-1.317.532 1.674 1.674 0 0 0-.531 1.254v2.48a.124.124 0 0 0 .123.123h.72a.124.124 0 0 0 .124-.124v-2.427c0-.752.5-1.113 1.314-.946a.13.13 0 0 0 .168-.142v-.495c0-.13-.014-.18-.1-.208a2.794 2.794 0 0 0-.501-.047Zm-4.626 0a2.193 2.193 0 0 0-1.732.849 2.355 2.355 0 0 0 0 2.678 2.13 2.131 0 0 0 1.732.849 2.21 2.21 0 0 0 1.234-.372v.53c0 .717-.627.848-1.03.873a4.73 4.73 0 0 1-.826-.045c-.11-.017-.188 0-.188.119v.636a.109.109 0 0 0 .114.103c.933.08 1.56.064 2.032-.206a1.537 1.537 0 0 0 .69-.875 2.928 2.928 0 0 0 .117-.874v-2.077h.002a2.245 2.245 0 0 0-.412-1.34 2.193 2.193 0 0 0-1.733-.848Zm-12.255.002a2.903 2.903 0 0 0-1.465.39.092.092 0 0 0-.045.08l.038.63a.112.112 0 0 0 .185.065c.627-.387 1.38-.459 1.764-.265a.67.67 0 0 1 .335.605v.092H1.832c-.45 0-1.83.167-1.83 1.434v.014a1.229 1.229 0 0 0 .45 1.017 1.768 1.768 0 0 0 1.118.32h2.118a.124.124 0 0 0 .124-.125v-2.51l-.002.004c0-.57-.127-1.004-.402-1.303-.274-.3-.827-.45-1.34-.45zm7.707 0c-1.28 0-1.84.858-2.02 1.585a2.44 2.44 0 0 0-.074.6 2.277 2.277 0 0 0 .412 1.338 2.198 2.198 0 0 0 1.733.85c.691.024 1.153-.093 1.506-.294a.196.196 0 0 0 .084-.212v-.558c0-.114-.069-.167-.167-.098a2.185 2.185 0 0 1-1.393.334 1.14 1.14 0 0 1-1.118-1.016h2.845a.117.117 0 0 0 .117-.116c.05-.778-.175-2.413-1.925-2.413Zm12.08 0a2.193 2.193 0 0 0-1.731.848 2.275 2.275 0 0 0-.412 1.34 2.275 2.275 0 0 0 .412 1.339 2.193 2.193 0 0 0 3.465 0 2.277 2.277 0 0 0 .412-1.34 2.277 2.277 0 0 0-.412-1.339 2.193 2.193 0 0 0-1.733-.848Zm-7.532.833c1.157 0 1.196 1.18 1.196 1.351 0 .171-.039 1.351-1.196 1.351-.517 0-.89-.378-1.047-.849a1.552 1.552 0 0 1 0-1.004c.157-.47.53-.849 1.047-.849zm-4.546.004a.86.86 0 0 1 .91.922H8.754a.968.968 0 0 1 1.024-.922zm12.078 0c.515-.012.89.378 1.048.848a1.553 1.553 0 0 1 0 1.003v.002c-.158.47-.531.837-1.048.848-.518.012-.89-.378-1.047-.848a1.552 1.552 0 0 1 0-1.005c.158-.47.53-.837 1.047-.848zM1.89 12.121h.99v1.246H1.63a.773.773 0 0 1-.444-.156.492.492 0 0 1-.21-.412c0-.226.153-.678.914-.678z\"},\"child\":[]}]})(props);\n};\nexport function SiAlliedmodders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.588 1.077A.615.615 0 0 0 0 1.69v20.617c0 .34.275.615.615.615h8.309c.34 0 .615-.275.615-.615v-1.746l.647 1.94a.615.615 0 0 0 .584.421h6.77a.615.615 0 0 0 .585-.427l.035-.11c.04.307.3.537.61.537h4.615c.34 0 .615-.275.615-.615V8.153a.615.615 0 0 0-.447-.592l-4.307-1.23a.615.615 0 0 0-.744.37l-1.887 4.907v-5.55a.615.615 0 0 0-.443-.593l-3.385-.98a.615.615 0 0 0-.787.59v6.15l-2.809-7.48a.615.615 0 0 0-.408-.375l-8-2.272a.615.615 0 0 0-.195-.021zm.027.613l8 2.272 4 10.652v-9.54L16 6.058v8.865l3.076-8 4.309 1.231v14.154H18.77v-2.463h1.845v-7.076l-3.076 9.54h-6.77L6.155 8.46v11.078h2.77v2.77H.615zm.615.816V21.69h7.08v-1.537H6.154a.615.615 0 0 1-.615-.615V8.46c.002-.698.979-.855 1.2-.194l4.474 13.424h5.877l2.94-9.111c.215-.668 1.201-.513 1.2.19v7.075c0 .34-.275.615-.615.616h-1.23v1.23h3.385V8.616l-3.32-.947-2.876 7.474c-.245.635-1.188.46-1.19-.22V6.52l-2.154-.625v8.719c0 .685-.95.857-1.19.217L8.147 4.467zm5.54 9.747l2.224 6.67c-.734-.01-1.485 0-2.224 0zM20 16.683v2.546h-.822Z\"},\"child\":[]}]})(props);\n};\nexport function SiAllocine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.434.001a.826.826 0 00-.164.008l-3.423.543a2.635 2.635 0 01-2.189 3.01 2.629 2.629 0 01-3.01-2.185l-3.417.538a.818.818 0 00-.677.931l3.24 20.467a.818.818 0 00.931.677l3.423-.543a2.635 2.635 0 012.189-3.01 2.629 2.629 0 013.01 2.185l3.422-.543a.818.818 0 00.677-.93L17.2.685a.816.816 0 00-.767-.685zm-3.22 6.534c.066 0 .128.005.185.017.423.09.975.6 1.315.955.178.187.192.519.048.73l-1.228 1.795a.89.89 0 01-.437.283c-.504.125-1.248-.95-1.771 1.507-.524 2.458.59 1.776 1.003 2.098a.828.828 0 01.283.437l.394 2.14a.613.613 0 01-.341.649c-.456.182-1.167.427-1.589.336-.907-.192-2.342-2.4-1.57-6.044.725-3.415 2.71-4.89 3.708-4.903Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlltrails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.441 8.451c-.653-1.247-1.158-1.841-1.813-1.841-.731 0-1.053.387-1.494 1.079-.357.464-.7 1.1-1.273 1.036-.604-.063-.954-1.491-1.41-2.686-.625-1.63-.985-3.322-2.024-3.322-.593 0-1.111.54-1.915 1.747l-8.301 12.73c-.954 1.593-1.753 2.704-.742 3.748 1.187 1.142 3.975-.857 5.883-2.063 1.908-1.205 3.859-2.38 6.615-2.316 3.71.085 5.512 3.808 7.76 4.516 1.526.487 2.926-.074 3.223-1.65.174-.866-.129-1.707-.547-2.604zm-.254 7.467c-.753.56-1.803-.339-2.481-.72-.72-.401-1.94-1.364-4.124-1.332-1.78.021-2.745.687-3.805 1.407-2.3 1.565-4.379 3.384-4.972 2.443-.382-.603.646-1.809 3.063-5.574 1.718-2.676 2.927-4.813 3.785-4.813.948 0 1 .93 1.145 1.883.272 1.518 1.014 2.308 1.978 2.433 1.08.146 2.014-.76 2.756-.751.693.014 1.15 1.018 1.722 2.065.725 1.301 1.482 2.546.933 2.959z\"},\"child\":[]}]})(props);\n};\nexport function SiAlmalinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.994 15.133c.079 1.061-.668 1.927-1.69 2.005a1.8 1.8 0 0 1-1.928-1.651c-.078-1.062.63-1.849 1.691-1.967 1.023-.078 1.849.59 1.927 1.613zm-12.623 4.955c-.944 0-1.73.786-1.73 1.809 0 1.14.747 1.848 1.887 1.848.904-.04 1.691-.865 1.691-1.809 0-.983-.904-1.848-1.848-1.848zm1.061-9.675c-.039-.865-.078-1.73.08-2.556.156-.944.314-1.887.904-2.674.707-.983 1.809-.944 2.399.118.314.511.432 1.062.471 1.652 0 .354.158.432.472.393.944-.157 1.888-.157 2.792.197.118.039.236.118.394 0 .314-.276.393-1.652.196-2.006-.354-.63-.904-.55-1.455-.55-.629.039-1.18-.158-1.612-.67-.393-.471-.511-1.06-.59-1.65-.04-.276-.079-.512-.315-.709-.55-.55-1.809-.432-2.477.118-2.556 2.045-2.989 5.467-1.534 8.18.04.118.118.236.275.157zm7.984 3.658c.354-.511.865-.747 1.415-.983a.973.973 0 0 0 .59-.472c.354-.669-.078-1.81-.747-2.36-2.595-2.006-5.938-1.612-8.18.433-.118.078-.157.196-.078.314.786-.236 1.612-.472 2.477-.51.905-.08 1.848-.158 2.753.235 1.14.472 1.337 1.534.472 2.36-.393.393-.905.668-1.455.825-.315.08-.354.236-.236.551.354.865.59 1.77.472 2.753-.04.157-.079.275.078.393.354.236 1.691 0 1.967-.275.511-.472.314-1.023.196-1.534-.157-.63-.078-1.219.276-1.73zm-7.197-2.045c-.118-.079-.197-.118-.315 0 .472.708.905 1.455 1.259 2.241.314.866.668 1.73.55 2.714-.118 1.18-1.1 1.69-2.123 1.101-.511-.275-.905-.669-1.22-1.14-.196-.276-.393-.276-.629-.08-.747.63-1.533 1.102-2.516 1.26-.158 0-.315 0-.394.157-.118.393.472 1.612.826 1.809.59.354 1.062 0 1.534-.276.55-.314 1.101-.432 1.73-.236.59.197.983.63 1.337 1.102.158.196.315.353.63.432.747.197 1.77-.59 2.084-1.376 1.18-3.028-.157-6.135-2.753-7.708zm-2.556 2.438c.472-.669.826-1.416.983-2.202-.157-.04-.197.04-.315.078-.904.944-1.848 1.849-3.067 2.478-.472.236-.983.433-1.534.433-.865 0-1.376-.551-1.298-1.416a2.92 2.92 0 0 1 .787-1.849c.236-.275.236-.432-.04-.668-.786-.55-1.494-1.22-1.848-2.124-.078-.275-.275-.275-.51-.157a4.293 4.293 0 0 0-.434.236c-1.022.63-1.14 1.416-.275 2.28.63.63.944 1.338.708 2.203-.118.433-.354.747-.63 1.101a.95.95 0 0 0-.235.787c.079.747.826 1.494 1.73 1.573 2.517.236 4.562-.63 5.978-2.753zm-4.68-5.152c1.376 1.18 3.067 1.455 4.837 1.377.157 0 .315 0 .354-.118.04-.197-.157-.197-.275-.236-.826-.354-1.691-.63-2.438-1.14S6.848 8.25 6.534 7.266c-.236-.747.078-1.415.825-1.651.669-.236 1.337-.236 1.967 0 .393.157.55.078.629-.354.118-.747.354-1.455.826-2.085.55-.786.55-.865-.354-1.376-.04 0-.04-.04-.079-.04-.865-.471-1.534-.196-1.848.709-.472 1.376-1.377 1.887-2.832 1.612-.196-.04-.393-.079-.472-.079-.747.118-1.18.55-1.297 1.14-.158 1.81.786 3.107 2.084 4.17zm-2.32 3.658c-.079-.944-1.023-1.652-2.045-1.534-.905.079-1.691 1.022-1.613 1.966.08.983 1.023 1.77 1.967 1.652 1.14-.079 1.73-1.18 1.69-2.084zm15.18-8.298c.943-.079 1.73-.983 1.651-1.927-.078-.983-1.022-1.77-2.005-1.691-1.023.079-1.73.983-1.652 1.966s.983 1.73 2.006 1.652zm-12.27-.826c1.062-.157 1.77-1.023 1.652-2.045C8.107.897 7.163.149 6.18.267c-1.062.118-1.691.944-1.573 2.085.118.865 1.061 1.612 1.966 1.494z\"},\"child\":[]}]})(props);\n};\nexport function SiAlpinedotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m24 12-5.72 5.746-5.724-5.741 5.724-5.75L24 12zM5.72 6.254 0 12l5.72 5.746h11.44L5.72 6.254z\"},\"child\":[]}]})(props);\n};\nexport function SiAlpinelinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.998 1.607L0 12l5.998 10.393h12.004L24 12 18.002 1.607H5.998zM9.965 7.12L12.66 9.9l1.598 1.595.002-.002 2.41 2.363c-.2.14-.386.252-.563.344a3.756 3.756 0 01-.496.217 2.702 2.702 0 01-.425.111c-.131.023-.25.034-.358.034-.13 0-.242-.014-.338-.034a1.317 1.317 0 01-.24-.072.95.95 0 01-.2-.113l-1.062-1.092-3.039-3.041-1.1 1.053-3.07 3.072a.974.974 0 01-.2.111 1.274 1.274 0 01-.237.073c-.096.02-.209.033-.338.033-.108 0-.227-.009-.358-.031a2.7 2.7 0 01-.425-.114 3.748 3.748 0 01-.496-.217 5.228 5.228 0 01-.563-.343l6.803-6.727zm4.72.785l4.579 4.598 1.382 1.353a5.24 5.24 0 01-.564.344 3.73 3.73 0 01-.494.217 2.697 2.697 0 01-.426.111c-.13.023-.251.034-.36.034-.129 0-.241-.014-.337-.034a1.285 1.285 0 01-.385-.146c-.033-.02-.05-.036-.053-.04l-1.232-1.218-2.111-2.111-.334.334L12.79 9.8l1.896-1.897zm-5.966 4.12v2.529a2.128 2.128 0 01-.356-.035 2.765 2.765 0 01-.422-.116 3.708 3.708 0 01-.488-.214 5.217 5.217 0 01-.555-.34l1.82-1.825Z\"},\"child\":[]}]})(props);\n};\nexport function SiAlternativeto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .416C18.398.416 23.584 5.602 23.584 12S18.398 23.584 12 23.584.416 18.397.416 12 5.602.416 12 .416M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.616 0 12 0m6.509 18.136-.056.012q.051.177.094.345l.202.812q.688-.639 1.249-1.394c-.305.036-.618.074-.923.117-.188.026-.372.066-.567.108zm.931-4.295c-3.783-.612-7.762.613-10.989 2.561-.757.457-1.59.91-2.129 1.632-.368.494-.561 1.081-.679 1.68q.464.381.975.704l.002-.099c.013-.41.064-.827.229-1.206.182-.42.478-.679.843-.938.756-.538 1.598-.967 2.412-1.392.055-.03.134-.029.202-.043.015.062.048.125.043.185-.02.283-.014.567-.007.85.022 1.016.088 2.032.157 3.047q.035.525.072 1.049.693.096 1.391.097a9.94 9.94 0 0 0 6.093-2.074l-.425-1.471q-.009-.032-.02-.063l-.064.017c-1.237.343-2.495.826-3.845 1.476l-.036.018c-.059.031-.14.074-.237.074h-.002c-.118 0-.278-.065-.34-.189-.064-.128-.017-.305.064-.398.066-.075.152-.121.22-.158l.038-.02a18.3 18.3 0 0 1 3.913-1.63l-.07-.179c-.101-.26-.205-.53-.32-.789-.148-.333-.317-.666-.48-.988l-.084-.167c-.054-.107-.109-.248-.055-.388a.34.34 0 0 1 .205-.192c.175-.064.436.065.511.214.415.816.77 1.546 1.087 2.23l.029.056.047-.008a9 9 0 0 1 2.342-.229 10 10 0 0 0 .886-1.91c-.545-.699-1.194-1.231-1.98-1.358zm2.428-2.827a8 8 0 0 0-.098-.649q-.046-.24-.096-.478c-.036-.171-.066-.344-.109-.514a9.2 9.2 0 0 0-1.158-2.73 9 9 0 0 0-.867-1.165 10 10 0 0 0-1.026-1.015 10.2 10.2 0 0 0-5.943-2.409 10 10 0 0 0-1.47.013 9.8 9.8 0 0 0-2.922.716 9 9 0 0 0-.709.33q-.164.085-.325.175a10.1 10.1 0 0 0-5.017 7.83c-.05.942.017 1.886.194 2.813h-.001s.191 1.124.298 1.334c.526 1.989 1.443 3.744 2.648 3.419a.167.167 0 0 0 .111-.208q-.003-.011-.008-.021a.95.95 0 0 1-.523-.377c-.666-1.117 2.723-3.509 7.351-5.269 4.252-1.619 8.091-2.144 8.965-1.285.173.141.24.376.168.588a3.03 3.03 0 0 1-.934 1.43.19.19 0 0 0 0 .269.18.18 0 0 0 .244.011 3.54 3.54 0 0 0 1.17-1.682c.028-.085.034-.187.045-.276a3.8 3.8 0 0 0 .011-.851zM6.253 14.668c-.566.402-1.553 1.122-1.967 1.925-.161.31-.312.069-.406-.107a10 10 0 0 1-.541-1.518l-.001-.003c-.066-.241-.282-1.04-.303-1.277l.001-.001a10.8 10.8 0 0 1-.187-2.638 9.35 9.35 0 0 1 4.635-7.227 10 10 0 0 1 .715-.362c.236-.107 1.191-.463.246.375a8.4 8.4 0 0 0-2.727 5.482c-.092 1.076.221 3.091.773 4.57.173.463.031.592-.238.782zM17.46 9.7a.44.44 0 0 1-.296.193c-1.068.149-2.12.398-3.14.745a.45.45 0 0 1-.356-.044.44.44 0 0 1-.203-.295l-.08-.369a.2.2 0 0 1 .114-.227 12.6 12.6 0 0 1 3.736-.863.19.19 0 0 1 .198.157l.084.354c.03.119.01.246-.057.349m2.032-1.876a.166.166 0 0 1-.183.106c-2.948-.438-7.069 1.073-7.069 1.073a17.7 17.7 0 0 0-4.049 1.912.493.493 0 0 1-.754-.319 8 8 0 0 1-.131-1.14 5.8 5.8 0 0 1 .575-3.012q.04-.078.087-.154a.1.1 0 0 1 .018-.037l.015-.025.035-.06.017-.027c1.429-2.34 4.636-3.273 7.197-2.511a7.43 7.43 0 0 1 3.335 2.123c.141.165 1.09 1.485.907 2.071m-1.533-1.599-.002.005a4 4 0 0 0-1.907-1.67 5.84 5.84 0 0 0-2.824-.43 3.8 3.8 0 0 0-1 .22.14.14 0 0 0-.097.148.135.135 0 0 0 .132.117 8.3 8.3 0 0 1 2.177.058c2.651.53 3.5 1.806 3.593 1.856.027.013.058-.013.045-.039a3 3 0 0 0-.117-.265\"},\"child\":[]}]})(props);\n};\nexport function SiAlteryx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.312 13.2-.014.01-.014.008a1.796 1.796 0 0 1-.943.293C.886 13.5.72 13.34.71 12.9c.01-.504.178-.66.747-.695l.785-.037.035-.002h.034V13.2zm1.429.248a.185.185 0 0 0-.182-.137.37.37 0 0 0-.072.009c-.121.03-.189.038-.282.045-.178.008-.21-.061-.22-.26v-2.732a.24.24 0 0 0-.088-.164l-.017-.012c-.006-.004-.012-.01-.02-.014-.148-.087-.394-.157-.604-.21l-.015-.005a3.437 3.437 0 0 0-1.158-.072c-.12.012-.442.065-.55.102-.032.01-.133.059-.137.155.002.05.058.21.058.21.037.111.076.138.146.153.057.006.18-.02.261-.033a2.726 2.726 0 0 1 .922-.032c.357.055.494.165.494.165v1.06l-.031.001-.762.02c-1.02.032-1.49.436-1.484 1.25-.001.37.115.667.335.858.205.18.506.276.868.276h.001a1.73 1.73 0 0 0 1.122-.404l.033-.026.017.038a.611.611 0 0 0 .423.355 1.172 1.172 0 0 0 .412.031c.117-.016.271-.037.443-.118.095-.045.162-.1.157-.2a2.037 2.037 0 0 0-.07-.309zm11.261.614h-.37a.177.177 0 0 1-.135-.051c-.03-.035-.043-.082-.043-.146v-3.51c-.003-.066.014-.114.048-.146.03-.03.073-.043.132-.043h.335c.063 0 .105.013.138.04.033.028.051.075.05.13l.004.094.003.079.053-.058a1.103 1.103 0 0 1 1.048-.347c.07.013.096.083.09.12 0 .019 0 .033-.002.046l-.056.354a.116.116 0 0 1-.107.107.618.618 0 0 1-.095-.01c-.04-.006-.085-.014-.165-.014-.26 0-.549.171-.742.438l-.006.008v2.712c0 .06-.015.108-.045.142a.174.174 0 0 1-.135.055zm-2.287-2.375h-1.702c.024-.858.351-1.21.89-1.21.524 0 .82.288.82.961 0 .053 0 .187-.008.25zm-.796-1.756c-.953 0-1.67.663-1.67 2.17 0 1.382.647 2.06 1.865 2.06.193 0 .422-.022.64-.067.035-.006.07-.015.105-.023a2.45 2.45 0 0 0 .33-.12c.076-.029.135-.088.139-.161a3.34 3.34 0 0 0-.08-.33c-.03-.073-.096-.119-.163-.115-.023 0-.35.071-.37.077a2.406 2.406 0 0 1-.586.077c-.866 0-1.124-.414-1.124-1.266v-.062h2.27a.143.143 0 0 0 .128-.125l.002-.03c.008-.148.013-.305.013-.43 0-1.047-.508-1.655-1.5-1.655zm5.371 5.712h-.025c-.134 0-.244-.01-.352-.031-.067-.012-.092-.099-.078-.217 0 0 .008-.126.027-.215.017-.09.06-.132.108-.132h.014l.037.002c.021.001.052.005.081.008.066.007.133.014.186.014.442-.005.681-.167.85-.577l.204-.498.02-.053.007-.022-.007-.023-1.363-3.604a.133.133 0 0 1-.008-.047.09.09 0 0 1 .02-.06.09.09 0 0 1 .065-.027h.517c.075 0 .13.04.147.098l.898 2.58.06.174.061-.173.927-2.562a.152.152 0 0 1 .146-.118h.004l.014.001h.428c.035 0 .06.007.078.021a.07.07 0 0 1 .024.055.186.186 0 0 1-.013.066l-1.525 4.09c-.332.911-.752 1.25-1.552 1.25zm6.143-1.59a.223.223 0 0 1-.204-.118l-.814-1.258-.029-.042-.027.042-.814 1.256a.226.226 0 0 1-.206.12l-.013-.002h-.435a.132.132 0 0 1-.083-.024.096.096 0 0 1-.034-.079c0-.036.013-.074.034-.105l1.178-1.789.014-.018-.014-.018-1.086-1.674a.152.152 0 0 1-.027-.082c0-.07.064-.113.126-.113h.408c.089 0 .158.038.188.098l.764 1.16.027.04.026-.04.76-1.153a.2.2 0 0 1 .184-.105h.419c.06 0 .127.043.127.113 0 .025-.01.051-.03.08l-1.085 1.676-.013.018.013.018 1.175 1.785a.184.184 0 0 1 .038.108.099.099 0 0 1-.033.08.138.138 0 0 1-.085.024h-.433l-.016.002zm-17.643.01c-.192 0-.377-.031-.538-.09a.829.829 0 0 1-.347-.216c-.232-.255-.252-.572-.255-.99v-4c0-.023.01-.047.025-.065a1.22 1.22 0 0 1 .527-.34c.013-.005.022-.005.033-.005a.14.14 0 0 1 .099.04c.032.033.048.08.047.14v4.255c.002.221.055.397.152.507.083.092.218.138.389.138.042 0 .088-.003.144-.01a2.09 2.09 0 0 0 .324-.078.156.156 0 0 1 .063-.013c.068 0 .127.048.15.119 0 0 .06.204.068.3.005.084-.07.14-.139.164a2.16 2.16 0 0 1-.742.144zm3.737-.61c-.022-.072-.081-.12-.151-.12a.17.17 0 0 0-.063.013 1.66 1.66 0 0 1-.45.088l-.018.002c-.176 0-.308-.048-.392-.14-.08-.087-.136-.23-.14-.495v-.014l.021-2.106h.862a.185.185 0 0 0 .12-.033c.043-.034.05-.09.048-.12v-.265c.001-.057-.015-.098-.048-.124a.185.185 0 0 0-.113-.03h-.869V8.798c0-.062-.015-.108-.047-.141a.146.146 0 0 0-.099-.04c-.01 0-.02 0-.036.005-.05.019-.186.066-.334.17a1.313 1.313 0 0 0-.156.137.102.102 0 0 0-.023.063l-.02 1.103h-.446a.168.168 0 0 0-.124.047.18.18 0 0 0-.042.128v.242c0 .053-.001.098.039.142.046.042.09.039.142.04h.418l-.04 1.982.001.085c.002.42.022.738.255.995.178.194.503.305.89.307.349 0 .62-.093.745-.144.066-.028.141-.082.138-.165 0-.079-.068-.301-.068-.301z\"},\"child\":[]}]})(props);\n};\nexport function SiAltiumdesigner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.14 5.876a1.012 1.012 0 00-.442-.442L9.744.171c-.329-.226-.843-.226-1.203-.01L5.148 2.145c-.051.041-.102.082-.144.123a1.086 1.086 0 00-.288.72l.01 6.569-.02.215.062.123a.478.478 0 00.195.206.516.516 0 00.555.01L8.859 8.2a.573.573 0 00.175-.175l.082-.165V4.643l2.251 1.326 3.536 2.077a.413.413 0 01.164.185.442.442 0 01.062.226v7.052a.52.52 0 01-.072.257c-.041.072-.082.123-.154.154l-4.225 2.488-1.573.925v-3.228l1.953-1.172 1.049-.627.185-.175.021-.051a.542.542 0 00.062-.247V9.999a.51.51 0 00-.092-.288l-.062-.123-.144-.072c-.093-.041-.175-.041-.247-.041l-.175.01-6.363 3.865a1.129 1.129 0 00-.442.463 1.281 1.281 0 00-.144.607v6.559c0 .257.103.514.329.75.082.062.154.113.236.164l3.341 1.943c.186.113.381.164.597.164.216 0 .422-.051.596-.164l8.882-5.212c.195-.103.36-.267.442-.432.113-.185.164-.401.164-.617V6.483a1.236 1.236 0 00-.153-.607zM8.387 7.624L5.447 9.32V2.988c0-.072.031-.154.092-.216l.216-.123 2.632 1.563v3.412zm-2.951 6.795c0-.093.021-.185.062-.278a.409.409 0 01.175-.175l5.973-3.629v3.392l-.956.576-2.313 1.388-2.94 1.778v-3.052zm0 6.559v-2.663l2.94-1.768v3.218l-2.632 1.552-.103-.062c-.051-.031-.093-.051-.103-.062-.061-.071-.102-.143-.102-.215zm13.128-3.403a.518.518 0 01-.072.257.342.342 0 01-.165.154l-8.892 5.222a.405.405 0 01-.452 0l-2.508-1.47 4.575-2.693v-.01l4.215-2.478a.998.998 0 00.432-.442 1.13 1.13 0 00.175-.606V8.457c0-.216-.062-.421-.165-.596a1.189 1.189 0 00-.432-.442l-3.536-2.077-3.352-1.974-1.923-1.141L8.911.788a.446.446 0 01.452 0l8.985 5.294a.319.319 0 01.154.154.517.517 0 01.062.247v11.092z\"},\"child\":[]}]})(props);\n};\nexport function SiAlwaysdata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.0536 15.2543c1.2615 1.2625 1.2622 3.3114 0 4.5728-1.2617 1.2621-3.3068 1.2607-4.5687-.0018-.9599-.9598-1.1874-2.3713-.6878-3.5476L12.97 8.9472a2.903 2.903 0 0 1-.765-.0068l-4.6071 6.2009c.2567.7533.0937 1.6183-.5072 2.2176-.8397.8413-2.2063.8399-3.0474-.0017-.6534-.6533-.7916-1.622-.428-2.4164l-2.0027-2.9336c-.0585.0072-.116.0176-.1766.0176-.7923 0-1.4359-.642-1.4359-1.4356 0-.7928.6436-1.4359 1.436-1.4359.7936 0 1.4358.6431 1.4358 1.436 0 .2516-.0703.485-.1838.6904l2.0731 2.5544c.5163-.2096 1.069-.191 1.5494-.0132l3.8572-6.2123c-.686-1.107-.5521-2.5782.4096-3.5401 1.1215-1.1218 2.9412-1.1218 4.0608-.0007.8791.8786 1.0666 2.1881.5676 3.2539l5.24 7.0044c.9312-.0937 1.8947.215 2.608.9282z\"},\"child\":[]}]})(props);\n};\nexport function SiAlx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.732 5.879-2.903 1.299V18.12h2.903V5.879Zm3.219 1.436c-.361.36-1.59 1.587-1.977 1.978.839.851 1.684 1.696 2.527 2.543l-2.529 2.529 1.978 1.978c.844-.842 1.686-1.686 2.529-2.529l2.543 2.529c.66-.659 1.319-1.319 1.978-1.98-.848-.841-1.695-1.684-2.543-2.527L24 9.293l-1.978-1.978-2.543 2.543-2.528-2.543ZM6.157 9.271v.382C3.256 8.379.002 10.503 0 13.671c.001 3.169 3.256 5.293 6.157 4.018v.431H9.06V9.271H6.157ZM4.39 11.902c.978 0 1.718.741 1.767 1.674v.19a1.77 1.77 0 0 1-1.767 1.675c-.946 0-1.77-.792-1.77-1.77s.792-1.77 1.77-1.77v.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.045 18.02c.072-.116.187-.124.348-.022 3.636 2.11 7.594 3.166 11.87 3.166 2.852 0 5.668-.533 8.447-1.595l.315-.14c.138-.06.234-.1.293-.13.226-.088.39-.046.525.13.12.174.09.336-.12.48-.256.19-.6.41-1.006.654-1.244.743-2.64 1.316-4.185 1.726a17.617 17.617 0 01-10.951-.577 17.88 17.88 0 01-5.43-3.35c-.1-.074-.151-.15-.151-.22 0-.047.021-.09.051-.13zm6.565-6.218c0-1.005.247-1.863.743-2.577.495-.71 1.17-1.25 2.04-1.615.796-.335 1.756-.575 2.912-.72.39-.046 1.033-.103 1.92-.174v-.37c0-.93-.105-1.558-.3-1.875-.302-.43-.78-.65-1.44-.65h-.182c-.48.046-.896.196-1.246.46-.35.27-.575.63-.675 1.096-.06.3-.206.465-.435.51l-2.52-.315c-.248-.06-.372-.18-.372-.39 0-.046.007-.09.022-.15.247-1.29.855-2.25 1.82-2.88.976-.616 2.1-.975 3.39-1.05h.54c1.65 0 2.957.434 3.888 1.29.135.15.27.3.405.48.12.165.224.314.283.45.075.134.15.33.195.57.06.254.105.42.135.51.03.104.062.3.076.615.01.313.02.493.02.553v5.28c0 .376.06.72.165 1.036.105.313.21.54.315.674l.51.674c.09.136.136.256.136.36 0 .12-.06.226-.18.314-1.2 1.05-1.86 1.62-1.963 1.71-.165.135-.375.15-.63.045a6.062 6.062 0 01-.526-.496l-.31-.347a9.391 9.391 0 01-.317-.42l-.3-.435c-.81.886-1.603 1.44-2.4 1.665-.494.15-1.093.227-1.83.227-1.11 0-2.04-.343-2.76-1.034-.72-.69-1.08-1.665-1.08-2.94l-.05-.076zm3.753-.438c0 .566.14 1.02.425 1.364.285.34.675.512 1.155.512.045 0 .106-.007.195-.02.09-.016.134-.023.166-.023.614-.16 1.08-.553 1.424-1.178.165-.28.285-.58.36-.91.09-.32.12-.59.135-.8.015-.195.015-.54.015-1.005v-.54c-.84 0-1.484.06-1.92.18-1.275.36-1.92 1.17-1.92 2.43l-.035-.02zm9.162 7.027c.03-.06.075-.11.132-.17.362-.243.714-.41 1.05-.5a8.094 8.094 0 011.612-.24c.14-.012.28 0 .41.03.65.06 1.05.168 1.172.33.063.09.099.228.099.39v.15c0 .51-.149 1.11-.424 1.8-.278.69-.664 1.248-1.156 1.68-.073.06-.14.09-.197.09-.03 0-.06 0-.09-.012-.09-.044-.107-.12-.064-.24.54-1.26.806-2.143.806-2.64 0-.15-.03-.27-.087-.344-.145-.166-.55-.257-1.224-.257-.243 0-.533.016-.87.046-.363.045-.7.09-1 .135-.09 0-.148-.014-.18-.044-.03-.03-.036-.047-.02-.077 0-.017.006-.03.02-.063v-.06z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonalexa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.37 0 0 5.37 0 12C0 18.09 4.53 23.11 10.4 23.9V21.5A1.59 1.59 0 0 0 9.32 19.97A8.41 8.41 0 0 1 3.6 11.8A8.37 8.37 0 0 1 12.09 3.6A8.4 8.4 0 0 1 20.4 12.31L20.39 12.38A8.68 8.68 0 0 1 20.36 12.76C20.36 12.83 20.35 12.9 20.34 12.96C20.34 13.04 20.33 13.12 20.32 13.19L20.3 13.29C19.27 20.07 10.45 23.87 10.4 23.9C10.92 23.97 11.46 24 12 24C18.63 24 24 18.63 24 12S18.63 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonapigateway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.456 18.7h1.258v-.865H9.456Zm2.115 0h1.286v-.865h-1.286ZM6.43 1.127.857 3.892v17.19l5.572 1.885Zm.857 5.47v11.238H8.57v.865H7.286v4.868a.434.434 0 0 1-.429.432.425.425 0 0 1-.136-.022L.292 21.804a.432.432 0 0 1-.292-.41V3.623c0-.164.093-.315.24-.388L6.668.045a.424.424 0 0 1 .415.02.433.433 0 0 1 .203.367v5.3H8.57v.865ZM13.714 18.7H15v-.865h-1.286Zm.028-12.103H15v-.864h-1.258Zm-2.143 0h1.258v-.864H11.6Zm-2.143 0h1.258v-.864H9.456Zm13.687-2.705L17.57 1.127v21.84l5.572-1.884ZM24 21.394c0 .186-.117.35-.292.41l-6.429 2.174a.425.425 0 0 1-.386-.06.434.434 0 0 1-.179-.35V18.7h-.829v-.865h.83V6.597h-.83v-.864h.83v-5.3c0-.15.076-.289.202-.368a.424.424 0 0 1 .415-.02l6.428 3.19c.147.073.24.224.24.388ZM13.257 9.346l-.8-.31-2.143 5.618.8.31Zm2.903 2.744a.434.434 0 0 0 0-.612L14.446 9.75l-.606.612 1.411 1.423-1.411 1.423.606.611Zm-6.606 1.728L7.84 12.09a.434.434 0 0 1 0-.612L9.554 9.75l.606.612-1.411 1.423 1.411 1.423Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazoncloudwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.454 14.905c0-1.676-1.372-3.039-3.059-3.039-1.686 0-3.058 1.363-3.058 3.039 0 1.675 1.372 3.038 3.058 3.038 1.687 0 3.059-1.363 3.059-3.038Zm.862 0c0 2.147-1.759 3.894-3.92 3.894-2.162 0-3.92-1.747-3.92-3.894 0-2.148 1.758-3.895 3.92-3.895 2.161 0 3.92 1.747 3.92 3.895Zm3.617 5.87-3.004-2.688c-.242.34-.523.649-.834.926l2.999 2.687c.256.23.654.208.885-.046a.623.623 0 0 0-.046-.88Zm-7.538-1.206c2.59 0 4.696-2.092 4.696-4.664 0-2.573-2.106-4.665-4.696-4.665-2.589 0-4.696 2.092-4.696 4.665 0 2.572 2.107 4.664 4.696 4.664Zm8.224 2.658c-.293.323-.7.487-1.107.487a1.49 1.49 0 0 1-.995-.378L18.399 19.542a5.543 5.543 0 0 1-3.004.883c-3.064 0-5.557-2.476-5.557-5.52 0-3.044 2.493-5.521 5.557-5.521 3.065 0 5.558 2.477 5.558 5.52 0 .874-.21 1.697-.576 2.432l3.133 2.803c.608.546.657 1.482.11 2.088ZM3.977 7.454c0 .222.014.444.04.659a.426.426 0 0 1-.352.473C2.605 8.858.862 9.681.862 12.148c0 1.863 1.034 2.892 1.902 3.427.297.185.647.284 1.017.288l5.195.005v.856l-5.2-.005a2.815 2.815 0 0 1-1.469-.418C1.447 15.77 0 14.524 0 12.148c0-2.864 1.971-3.923 3.129-4.297a6.093 6.093 0 0 1-.013-.397c0-2.34 1.598-4.767 3.716-5.645 2.478-1.031 5.104-.52 7.022 1.367a7.048 7.048 0 0 1 1.459 2.116 2.79 2.79 0 0 1 1.78-.644c1.287 0 2.735.97 2.993 3.092 1.205.276 3.751 1.24 3.751 4.441 0 1.278-.403 2.333-1.199 3.137l-.614-.6c.632-.638.952-1.491.952-2.537 0-2.8-2.36-3.495-3.374-3.664a.43.43 0 0 1-.353-.496c-.141-1.738-1.18-2.517-2.156-2.517-.616 0-1.193.298-1.584.818a.431.431 0 0 1-.75-.111c-.353-.971-.861-1.788-1.511-2.426-1.663-1.636-3.936-2.079-6.084-1.186-1.787.74-3.187 2.873-3.187 4.855Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazoncognito (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.127 10.203h5.531v-.85h-5.53zm19.034 6.181.602.601-3.16 3.155a.426.426 0 0 1-.601 0l-1.59-1.587.602-.6 1.289 1.286zm1.958 2.341a4.05 4.05 0 0 1-2.288 3.181c-.688.326-1.45.45-2.211.357a4 4 0 0 1-2.017-.842 4.04 4.04 0 0 1-1.507-3.675 4.06 4.06 0 0 1 2.167-3.12 4 4 0 0 1 2.332-.417 4.04 4.04 0 0 1 3.111 2.18c.369.722.511 1.53.413 2.336m.346-2.721a4.888 4.888 0 0 0-9.214 1.64 4.89 4.89 0 0 0 1.823 4.442 4.88 4.88 0 0 0 5.122.587 4.95 4.95 0 0 0 1.629-1.247 4.9 4.9 0 0 0 1.139-2.599 4.9 4.9 0 0 0-.5-2.823M6.382 12.752h1.701v-.85H6.382zm-4.255 0h3.404v-.85H2.127zM1.76 1.706h19.03c.5 0 .908.496.908 1.105v3.143h-1.276V3.83a.425.425 0 0 0-.426-.425H10.21a.425.425 0 0 0-.425.425v2.124H.85V2.811c0-.6.417-1.105.91-1.105zM15.11 5.83c.988 0 1.792.794 1.792 1.77a1.76 1.76 0 0 1-.927 1.547 1.82 1.82 0 0 1-1.733 0 1.76 1.76 0 0 1-.923-1.546c0-.977.803-1.771 1.792-1.771zM.85 15.046V6.804h8.935v7.222c0 .235.19.425.425.425h4.448v-.85h-3.553A3.865 3.865 0 0 1 13.9 9.963c.752.352 1.65.355 2.414 0a3.9 3.9 0 0 1 2.24 1.716l.728-.44a4.76 4.76 0 0 0-2.206-1.9 2.6 2.6 0 0 0 .676-1.737c0-1.445-1.186-2.62-2.643-2.62s-2.642 1.175-2.642 2.62c0 .65.247 1.261.67 1.733a4.7 4.7 0 0 0-2.501 2.481V4.255h8.934v6.797h.851V6.804h1.276v6.372h.852V2.811c0-1.077-.79-1.954-1.76-1.954H1.759C.79.857 0 1.734 0 2.81v12.235c0 1.078.79 1.955 1.76 1.955h11.43v-.85H1.759c-.492 0-.908-.506-.908-1.105z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazondocumentdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.5053 21.0947.7158.4632C16.2526 23.0316 13.0947 24 9.3895 24c-4.6316 0-8.1263-1.4737-8.1263-3.4105V3.3685C1.2632 1.7262 4.1263 0 9.4737 0c5.3474 0 8.2105 1.7263 8.2105 3.3684v2.9053h-.8421V4.8842c-1.221 1.0105-3.7053 1.8105-7.3684 1.8105-3.6632 0-6.1474-.8-7.3684-1.8105v4.8c.3368 1.179 3.2 2.3579 7.242 2.3579q1.0948 0 2.1053-.1263l.1263.842q-1.0947.1264-2.2315.1264c-3.2421 0-5.9369-.7158-7.2421-1.8105v4.5052c.3368 1.1369 3.2 2.3158 7.242 2.3158q1.0527 0 2.1053-.0842l.1263.8q-1.1368.1263-2.2315.1263c-3.2421 0-5.9369-.7157-7.2421-1.8105v3.6632c0 1.221 2.9894 2.5684 7.2842 2.5684 3.7894 0 6.442-1.0526 7.1158-2.0632zm-14.4-17.7263c0 1.179 3.0315 2.4842 7.3684 2.4842 4.3368 0 7.3684-1.3052 7.3684-2.4842 0-1.221-3.0316-2.5263-7.3684-2.5263-4.3369 0-7.3684 1.3053-7.3684 2.5263zm20.6315 7.6632v9.0947c0 .2526-.1684.421-.421.421h-8c-.2526 0-.421-.1684-.421-.421V9.2211c0-.2106.1684-.4211.421-.4211h4.6316l-.7158-.8421h-5.179V18.021h.421v.842h-.842c-.2527 0-.421-.1684-.421-.421V7.5368c0-.2105.1683-.421.421-.421h5.8105c.1263 0 .2526.0842.2947.1684L20.0421 8.8h.4632q.1684 0 .2947.1263l1.8105 1.8105q.1263.1264.1263.2948zm-.842.7158h-2.1053c-.2527 0-.421-.1685-.421-.421V9.642h-4.6317v10.0632h7.158zm-2.4422.9684c.2527 0 .4632.0842.5895.2526.2526.3369.2105.8.2105.9684 0 .8843.5053 1.0527.5474 1.0948.1684.042.2947.2105.2947.421 0 .1685-.1263.3369-.2947.379-.0421 0-.5474.2105-.5474 1.0947 0 .5053-.2526 1.0526-.8 1.0526h-.2947v-.842h.2105c0-.0422.0421-.1264.0421-.2106 0-.7579.2527-1.221.5053-1.5158-.2526-.2526-.5053-.7579-.5053-1.5158v-.3368h-.2526v-.8421zm.758-1.8105h1.3473L20.2947 9.642h-.0842zm-2.737 1.8105h.337v.842h-.2527v.2106c0 .758-.2526 1.221-.5474 1.5158.2948.2947.5474.7579.5474 1.5158q0 .0421-.0421.0842v.2947h.2947v.8422h-.3368c-.2105 0-.421-.1264-.5895-.2948-.2526-.2947-.2105-.8-.1684-.9684-.0421-.8842-.5053-1.0526-.5895-1.0526-.1684-.0421-.2947-.2527-.2947-.421 0-.1685.1263-.337.3368-.379.0421-.0421.5474-.2106.5474-1.1369-.0421-.4631.2105-1.0526.7579-1.0526z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazondynamodb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.606 20.705v-2.371c-1.263 1.082-3.884 1.795-7.066 1.795-3.184 0-5.805-.714-7.068-1.797v2.369c0 1.168 2.903 2.47 7.068 2.47 4.16 0 7.06-1.3 7.066-2.466zm.001-6.765l.817-.005v.005c0 .517-.258.998-.75 1.441.601.54.75 1.071.75 1.449a1661.7 1661.7 0 0 0 0 3.87c0 1.881-3.389 3.3-7.884 3.3-4.471 0-7.846-1.404-7.88-3.27a583.119 583.119 0 0 1-.003-3.909c.001-.375.15-.9.745-1.437-.592-.538-.743-1.062-.746-1.435v-3.892c.002-.377.153-.903.747-1.438-.593-.54-.744-1.062-.747-1.435 0-1.357-.002-2.735.002-3.897C1.674 1.412 5.056 0 9.54 0c2.159 0 4.233.356 5.689.974l-.315.766c-1.36-.58-3.319-.91-5.374-.91-4.165 0-7.067 1.3-7.067 2.47 0 1.168 2.902 2.47 7.067 2.47.115 0 .222 0 .334-.005l.033.828c-.122.006-.245.006-.367.006-3.184 0-5.805-.714-7.068-1.798v2.38c.005.45.45.843.821 1.093 1.116.736 3.114 1.239 5.34 1.342l-.037.829c-2.254-.105-4.23-.59-5.5-1.332-.318.245-.623.573-.623.952 0 1.168 2.902 2.47 7.067 2.47.411 0 .812-.014 1.203-.042l.06.826c-.41.03-.833.045-1.263.045-3.184 0-5.805-.713-7.068-1.797v2.368c.005.462.449.855.821 1.104 1.275.842 3.67 1.366 6.247 1.366h.182v.83H9.54c-2.62 0-4.99-.507-6.444-1.359-.317.245-.623.574-.623.954 0 1.168 2.902 2.47 7.067 2.47 4.159 0 7.058-1.298 7.066-2.465v-.007c0-.377-.303-.705-.62-.948a5.732 5.732 0 0 1-.662.336l-.316-.764c.3-.128.56-.266.776-.412.376-.254.823-.651.823-1.1zm4.377-6.915h-2.717a.406.406 0 0 1-.332-.173.42.42 0 0 1-.055-.375l1.204-3.597h-5.403l-2.583 4.974h2.623c.128 0 .248.06.325.164a.418.418 0 0 1 .069.36l-2.249 8.365zm1.249-.128l-10.89 11.608a.408.408 0 0 1-.498.075.418.418 0 0 1-.192-.471l2.534-9.426h-2.766a.407.407 0 0 1-.349-.2.418.418 0 0 1-.012-.407l3.014-5.804a.408.408 0 0 1 .36-.222h6.22c.132 0 .256.065.332.174a.422.422 0 0 1 .055.374l-1.204 3.598h3.1c.164 0 .31.099.375.251a.422.422 0 0 1-.08.45zM3.085 20.723a8.107 8.107 0 0 0 1.72.72l.233-.794a7.32 7.32 0 0 1-1.546-.645zm1.72-5.984l.233-.795a7.262 7.262 0 0 1-1.546-.646l-.407.72a8.051 8.051 0 0 0 1.72.72zm-1.72-7.427l.407-.719c.418.244.939.462 1.546.646l-.232.794a8.046 8.046 0 0 1-1.72-.72Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonec2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.429 17.571h10.714V6.857H6.429v10.714ZM18 6.857h1.714v.857H18V9.43h1.714v.857H18v1.285h1.714v.858H18v1.714h1.714V15H18v1.714h1.714v.857H18v.059a.8.8 0 0 1-.799.799h-.058v1.714h-.857v-1.714H14.57v1.714h-.857v-1.714H12.43v1.714h-.858v-1.714H9.857v1.714H9v-1.714H7.286v1.714h-.857v-1.714H6.37a.8.8 0 0 1-.799-.8v-.058H4.286v-.857H5.57V15H4.286v-.857H5.57v-1.714H4.286v-.858H5.57v-1.285H4.286v-.857H5.57V7.714H4.286v-.857H5.57V6.8a.8.8 0 0 1 .8-.799h.058V4.286h.857V6H9V4.286h.857V6h1.714V4.286h.858V6h1.285V4.286h.857V6h1.715V4.286h.857V6h.058a.8.8 0 0 1 .799.799v.058ZM12.429 23.09a.054.054 0 0 1-.054.053H.91a.053.053 0 0 1-.053-.053V11.625c0-.03.024-.054.053-.054h2.52v-.857H.91a.911.911 0 0 0-.91.91V23.09c0 .502.408.91.91.91h11.465a.91.91 0 0 0 .91-.91V21h-.856ZM24 .91v11.465a.91.91 0 0 1-.91.91h-2.52v-.856h2.519a.054.054 0 0 0 .053-.054V.91a.053.053 0 0 0-.053-.053H11.625a.053.053 0 0 0-.054.053v2.52h-.857V.91c0-.502.409-.91.91-.91H23.09a.91.91 0 0 1 .91.91Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonecs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.895 15.256-3.369-2.021V8.421a.42.42 0 0 0-.209-.364l-4.843-2.825V1.159l8.42 4.976Zm.635-9.724L13.267.06a.422.422 0 0 0-.635.362v5.053c0 .15.08.288.208.363l4.844 2.826v4.81a.42.42 0 0 0 .205.362l4.21 2.526a.42.42 0 0 0 .638-.361V5.895a.42.42 0 0 0-.207-.363ZM11.977 23.1l-9.872-5.248V6.135l8.421-4.976v4.084L6.09 8.066a.422.422 0 0 0-.195.355v7.158a.42.42 0 0 0 .226.373l5.665 2.948a.42.42 0 0 0 .387 0l5.496-2.84 3.382 2.03-9.074 5.01Zm10.135-5.356-4.21-2.526a.42.42 0 0 0-.411-.013l-5.51 2.847-5.244-2.729v-6.67l4.436-2.824a.422.422 0 0 0 .195-.355V.42a.421.421 0 0 0-.635-.362L1.47 5.532a.421.421 0 0 0-.207.363v12.21c0 .156.086.299.223.372l10.297 5.474a.421.421 0 0 0 .401-.004l9.915-5.473a.422.422 0 0 0 .013-.73Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazoneks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.67 8.505-2.875 3.335 3.128 3.648h-1.168l-2.808-3.277v3.368h-.842V8.421h.842v2.947l2.603-2.863Zm7.225 6.751-3.369-2.021V8.421a.42.42 0 0 0-.209-.364l-4.843-2.825V1.159l8.42 4.976Zm.635-9.724L13.267.06a.422.422 0 0 0-.635.362v5.053c0 .15.08.288.208.363l4.844 2.826v4.81a.42.42 0 0 0 .205.362l4.21 2.526a.42.42 0 0 0 .638-.361V5.895a.42.42 0 0 0-.207-.363ZM11.977 23.1l-9.872-5.248V6.135l8.421-4.976v4.084L6.09 8.066a.422.422 0 0 0-.195.355v7.158a.42.42 0 0 0 .226.373l5.665 2.948a.42.42 0 0 0 .387 0l5.496-2.84 3.382 2.03Zm10.135-5.356-4.21-2.526a.42.42 0 0 0-.411-.013l-5.51 2.847-5.244-2.729v-6.67l4.436-2.824a.422.422 0 0 0 .195-.355V.42a.421.421 0 0 0-.635-.362L1.47 5.532a.421.421 0 0 0-.207.363v12.21c0 .156.086.299.223.372l10.297 5.474a.421.421 0 0 0 .401-.004l9.915-5.473a.422.422 0 0 0 .013-.73Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonelasticache (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.714 21.024v-2.508c-1.086.701-3.041 1.033-4.905 1.033-2.031 0-3.615-.355-4.524-.962v2.437c0 .726 1.692 1.476 4.524 1.476 2.89 0 4.905-.778 4.905-1.476m-4.905-5.286c-2.031 0-3.615-.355-4.524-.962v2.447c.014.723 1.703 1.469 4.524 1.469 2.882 0 4.892-.774 4.905-1.47v-2.517c-1.086.702-3.041 1.033-4.905 1.033zm4.905-2.327v-2.898c-1.086.701-3.041 1.033-4.905 1.033-2.031 0-3.615-.354-4.524-.962v2.828c.014.723 1.703 1.468 4.524 1.468 2.882 0 4.892-.773 4.905-1.47m-9.43-4.2v.004h.001v.005c.014.723 1.703 1.468 4.524 1.468 3.147 0 4.892-.866 4.905-1.47v-.003l.001-.003c0-.604-1.747-1.477-4.906-1.477-2.833 0-4.525.75-4.525 1.477m10.287.011v4.181h.001v7.621c0 1.603-2.988 2.333-5.763 2.333-3.268 0-5.38-.916-5.38-2.333v-3.796l-.002-.013h.001v-3.798l-.001-.014h.001V9.225l-.001-.013c0-1.418 2.113-2.335 5.382-2.335 2.776 0 5.763.73 5.763 2.335zm6-5.527A.43.43 0 0 0 24 3.266V1.072a.43.43 0 0 0-.429-.429H.428A.43.43 0 0 0 0 1.072v2.194c0 .237.191.429.428.429.523 0 .949.423.949.943s-.426.943-.949.943A.43.43 0 0 0 0 6.009v8.778c0 .237.191.429.428.429h4.286v-.857H2.57v-1.286h2.143v-.857H2.142a.43.43 0 0 0-.428.428v1.715H.857V6.386a1.804 1.804 0 0 0 1.377-1.748c0-.846-.587-1.557-1.377-1.75V1.5h22.286V2.89a1.805 1.805 0 0 0-1.378 1.749c0 .845.588 1.556 1.378 1.748v7.973h-.857v-1.715a.43.43 0 0 0-.429-.428h-2.571v.857h2.142v1.286h-2.142v.857h4.285a.43.43 0 0 0 .429-.429V6.01a.43.43 0 0 0-.429-.428.947.947 0 0 1-.949-.943c0-.52.426-.943.95-.943zM6.857 6.644v-3.43a.43.43 0 0 0-.428-.428H3.857a.43.43 0 0 0-.428.429V10.5c0 .237.191.429.428.429h1.286v-.857h-.857v-6.43H6v3zm12.857 3.429h-.428v.857h.857a.43.43 0 0 0 .428-.429V3.215a.43.43 0 0 0-.428-.429H17.57a.43.43 0 0 0-.428.429v3.429H18v-3h1.714zm-3.428-3.858v-3a.43.43 0 0 0-.43-.429h-3a.43.43 0 0 0-.428.429v2.571h.858V3.643h2.142v2.572zm-5.572-.429V3.643H8.571v2.572h-.857v-3c0-.237.192-.429.429-.429h3c.237 0 .428.192.428.429v2.571z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonfiretv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.196 15.12c.265.337-.294 1.73-.542 2.353-.077.19.085.266.257.123 1.106-.926 1.39-2.867 1.166-3.149-.226-.277-2.16-.516-3.341.314-.183.127-.151.304.05.279.665-.08 2.147-.257 2.41.08m-.858.981c-2.064 1.523-5.056 2.333-7.632 2.333-3.611 0-6.862-1.334-9.322-3.555-.194-.176-.02-.414.21-.28 2.655 1.545 5.939 2.477 9.328 2.477 2.287 0 4.803-.476 7.115-1.458.348-.147.642.231.3.483m2.034-3.155a.388.388 0 0 1-.201-.04c-.041-.026-.087-.1-.133-.225l-1.734-4.355a1.79 1.79 0 0 0-.046-.117.266.266 0 0 1-.023-.108c0-.084.049-.128.146-.128h.58c.098 0 .165.014.205.04.04.026.082.102.127.226l1.344 3.823 1.343-3.823c.046-.124.089-.2.128-.226a.402.402 0 0 1 .205-.04h.54c.1 0 .148.044.148.128a.3.3 0 0 1-.025.108c-.016.04-.032.078-.044.117l-1.727 4.355c-.045.124-.09.199-.132.225a.388.388 0 0 1-.201.04zm-3.644.068c-.929 0-1.392-.463-1.392-1.392V8.739h-.706c-.13 0-.197-.066-.197-.196v-.246a.22.22 0 0 1 .045-.147c.03-.031.086-.055.171-.067l.717-.09.127-1.215c.013-.13.082-.196.207-.196h.41c.13 0 .196.066.196.196v1.196h1.276c.13 0 .195.065.195.197v.372c0 .13-.064.196-.195.196h-1.276v2.834c0 .243.055.411.162.51.108.098.293.147.555.147.124 0 .277-.016.46-.049.099-.02.164-.03.197-.03.052 0 .088.014.108.044.02.03.029.077.029.142v.266a.366.366 0 0 1-.04.19c-.026.043-.078.078-.157.103a3.018 3.018 0 0 1-.892.118m-4.665-2.976c.006-.052.011-.137.011-.255 0-.399-.094-.698-.28-.901-.186-.204-.46-.306-.818-.306-.412 0-.732.123-.962.369-.228.245-.36.61-.392 1.093zm-.942 3.07c-.803 0-1.411-.222-1.824-.667-.412-.444-.616-1.102-.616-1.972 0-.83.204-1.475.616-1.937.413-.46.988-.691 1.728-.691.62 0 1.098.176 1.432.524.332.351.5.846.5 1.487 0 .21-.017.422-.05.638-.014.077-.034.13-.064.156-.029.027-.077.04-.142.04h-3.08c.013.563.154.977.418 1.245.265.268.674.403 1.23.403.196 0 .385-.014.564-.04a5.04 5.04 0 0 0 .682-.166l.117-.035a.284.284 0 0 1 .09-.016c.085 0 .125.06.125.177v.276c0 .085-.012.144-.037.18a.441.441 0 0 1-.167.114 3.38 3.38 0 0 1-.701.205 4.236 4.236 0 0 1-.82.079m-5.424-.147c-.13 0-.195-.066-.195-.197v-4.58c0-.13.064-.195.195-.195h.432c.064 0 .116.012.153.039.036.025.06.076.072.146l.07.55c.176-.19.343-.34.499-.452a1.725 1.725 0 0 1 1.02-.323c.079 0 .158.003.235.01.112.014.168.072.168.176v.53c0 .117-.058.177-.178.177-.058 0-.114-.004-.17-.01a1.638 1.638 0 0 0-.18-.01c-.524 0-.973.157-1.346.47v3.472c0 .131-.066.197-.195.197zm-2.249 0c-.13 0-.196-.066-.196-.197v-4.58c0-.13.066-.195.196-.195h.579c.13 0 .195.064.195.195v4.58c0 .131-.065.197-.195.197zm.295-5.856c-.19 0-.339-.054-.447-.16a.581.581 0 0 1-.161-.428c0-.176.054-.318.16-.426.11-.109.257-.163.448-.163.189 0 .337.054.446.163.107.108.16.25.16.426a.581.581 0 0 1-.16.427.608.608 0 0 1-.446.161m-3.625 5.856c-.132 0-.197-.066-.197-.197v-4.01H.195c-.13 0-.195-.066-.195-.197v-.245c0-.065.014-.114.043-.147.03-.033.088-.055.173-.07l.705-.087v-.804c0-1.091.523-1.638 1.57-1.638.248 0 .51.036.784.109.072.019.122.047.152.088.029.038.044.107.044.205v.255c0 .124-.048.186-.148.186-.058 0-.14-.01-.248-.029-.11-.02-.23-.03-.369-.03-.3 0-.51.057-.633.172-.121.115-.181.303-.181.564v.903h1.324c.131 0 .197.064.197.195v.373c0 .13-.066.197-.197.197H1.892v4.01c0 .131-.065.197-.196.197Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazongames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.8457 11.1425c.09-.303.082-.685.082-1.078V7.2513c0-.135.033-.52-.02-.6-.054-.08-.26-.062-.404-.062-.412 0-.595-.057-.632.336l-.016.01c-.323-.247-.63-.482-1.223-.47l-.197.015a1.875 1.875 0 0 0-.3361.082 1.622 1.622 0 0 0-.886.89 3.0171 3.0171 0 0 0-.171.607 1.967 1.967 0 0 0-.031.62c.03.195.012.365.05.535.145.609.43 1.083.955 1.31a1.665 1.665 0 0 0 .917.114 1.73 1.73 0 0 0 .59-.22l.223-.164h.005a1.857 1.857 0 0 1-.01.556c-.091.526-.246.704-.771.797a1.483 1.483 0 0 1-.446.011l-.435-.057-.638-.154a.14.14 0 0 0-.103.088 3.3121 3.3121 0 0 0 .02.6431c.073.122.31.17.457.218.494.157 1.292.233 1.828.047.613-.211 1-.624 1.192-1.261zm-1.09-3.0421v1.445a1.255 1.255 0 0 1-.356.176c-.872.274-1.2021-.34-1.2021-1.144a2.087 2.087 0 0 1 .093-.731c.077-.198.195-.371.39-.45.068-.03.152-.022.227-.053a1.745 1.745 0 0 1 .642.1l.193.09c.047.083.014.438.014.567zm3.509 2.756a2.114 2.114 0 0 0 .689-.265l.2741-.202c.07.092.043.231.134.301.092.07.798.096.865 0 .068-.095.037-.302.037-.446v-1.848c0-.36.027-.763-.057-1.046-.197-.667-.76-.896-1.632-.887l-.466.03a5.1102 5.1102 0 0 0-.788.172c-.112.039-.283.068-.33.17-.045.104-.036.647.026.69.093.063.536-.083.66-.11.357-.077 1.173-.156 1.372.1.144.184.12.544.116.876-.082.02-.224-.035-.31-.052l-.394-.041a1.483 1.483 0 0 0-.435.015c-.676.116-1.154.373-1.31 1-.243.963.592 1.746 1.549 1.544Zm-.197-1.786c.098-.058.22-.042.342-.09.276 0 .509.043.7401.053.043.093.013.563.01.705-.196.261-.988.521-1.257.15-.194-.275-.064-.684.165-.818Zm3.1752 1.318c0 .144-.018.287.072.342.05.03.172.016.247.016.173 0 .765.036.83-.047.082-.103.035-.645.035-.834v-2.261a1.594 1.594 0 0 1 .503-.187c.279-.065.648-.066.787.12.123.164.104.457.104.745v1.565c0 .213-.048.807.072.881.074.045.412.016.528.016.117 0 .457.028.53-.026.097-.074.056-.6.056-.788q0-1.164.005-2.331c.04-.065.202-.092.28-.12.3421-.12.8751-.2 1.0411.135.082.173.057.488.057.742v1.552c0 .185-.041.687.036.788.046.059.151.047.254.047.155 0 .77.027.84-.026.102-.078.061-.39.061-.565v-1.61c0-.68.053-1.298-.247-1.685-.537-.7-1.953-.325-2.472.12h-.02c-.199-.334-.54-.522-1.081-.514l-.218.016a2.49 2.49 0 0 0-.435.098 3.3441 3.3441 0 0 0-.5231.247l-.254.156c-.092-.111-.036-.292-.165-.368-.05-.03-.714-.038-.807-.015a.165.165 0 0 0-.088.057c-.055.082-.027.625-.027.782zm7.9362.175c.51.32 1.426.389 2.15.208.182-.045.5371-.11.6001-.259a3.9771 3.9771 0 0 0 .01-.622.15.15 0 0 0-.066-.077c-.065-.028-.165.02-.228.036l-.534.098a1.95 1.95 0 0 1-.59.022 3.2441 3.2441 0 0 1-.412-.058c-.406-.123-.675-.425-.68-.943.097-.043.413-.01.544-.01h1.32c.19 0 .493.04.61-.047.155-.116.144-.894.093-1.144-.17-.85-.682-1.318-1.71-1.3l-.124.005-.373.05c-.4.102-.746.287-.968.566a2.117 2.117 0 0 0-.3061.494c-.203.482-.259 1.353-.087 1.93.138.46.381.818.751 1.049zm.305-2.682c.093-.268.247-.463.518-.55l.232-.044c.615-.005.784.313.777.928-.083.038-.35.01-.467.01h-1.117c-.034-.086.03-.27.057-.347zm6.3982 1.087c-.247-.428-.784-.595-1.264-.792-.227-.094-.6-.172-.653-.435-.113-.564 1.045-.4 1.388-.316.096.023.317.11.378.03s.032-.27.032-.393c0-.101.013-.23-.027-.295-.059-.1-.215-.128-.336-.165a3.0161 3.0161 0 0 0-.964-.14l-.296.022a2.396 2.396 0 0 0-.538.144 1.223 1.223 0 0 0-.659.642c-.184.455-.01 1.058.265 1.28.33.266.777.417 1.2.59.215.088.458.138.504.394.122.697-1.196.444-1.59.342-.083-.022-.343-.11-.413-.072-.094.053-.057.317-.057.46 0 .083-.012.2.021.254.1.165.645.269.886.317.956.19 1.806-.134 2.113-.736.154-.291.182-.834.01-1.133zm-3.357 4.0871-.18.01a3.0931 3.0931 0 0 0-.5241.058 3.6181 3.6181 0 0 0-1.114.39c-.083.05-.412.211-.352.361.047.12.524.02.678.01.305-.02.454-.047.742-.046h.528a2.958 2.958 0 0 1 .472.03.702.702 0 0 1 .284.136c.12.103.098.452.057.616a11.4804 11.4804 0 0 1-.476 1.5541c-.034.082-.3.602-.005.54.133-.03.404-.33.487-.43.412-.528.672-1.134.865-1.896.045-.178.147-.874.046-1.036-.165-.269-1.037-.306-1.508-.297zm-.6431 1.483-.472.207-.78.2951c-.697.27-1.47.446-2.2451.638l-.907.17-1.067.14-.342.026c-.136.03-.297.012-.4501.036a6.8722 6.8722 0 0 1-1.02.042l-.772.005-.555-.02-.357-.02c-.082-.017-.18-.006-.27-.022l-1.0821-.119c-.32-.06-.665-.082-.97-.165l-.253-.042-.9411-.21c-.673-.21-1.341-.375-1.97-.617-.696-.27-1.4241-.564-2.0401-.928l-.61-.352c-.112-.066-.202-.164-.38-.164-.131.065-.171.15-.081.305a1.049 1.049 0 0 0 .238.233l.28.26c.404.32.81.65 1.248.937.38.247.783.457 1.18.69l.597.284c.34.15.694.305 1.05.445l.9181.305c.495.165 1.033.248 1.566.38l1.1241.163.362.027.612.046h.222a2.504 2.504 0 0 0 .653.006l.233-.006.285-.005.9741-.077c.437-.098.897-.083 1.31-.208l.954-.232a16.0985 16.0985 0 0 0 1.6731-.586 11.8764 11.8764 0 0 0 1.9471-1.036c.211-.142.51-.247.565-.544.047-.25-.21-.347-.427-.287z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazoniam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 3.4286v17.1428c0 .2572-.1714.4286-.4286.4286H.4286C.1714 21 0 20.8286 0 20.5714V3.4286C0 3.1714.1714 3 .4286 3h23.1428c.2572 0 .4286.1714.4286.4286ZM.8571 20.1429H23.143V3.857H.857Zm12.8572-5.5715h6.4286v.8572h-6.4286ZM19.2857 12h2.1429v.8571h-2.1429zm-5.5714 0h3.4286v.8571h-3.4286ZM2.1429 18.4286v-6.8572q0-.1714.1285-.3.1286-.1285.3-.1285h.8572v-3c0-1.5 1.5428-2.7 3.4285-2.7 1.8858 0 3.4286 1.2 3.4286 2.7v3h.8572c.2571 0 .4285.2142.4285.4285v6.8572q0 .1714-.1285.3-.1286.1285-.3.1285H2.5714c-.2571 0-.4285-.2142-.4285-.4285zM3 18h7.7143v-1.7143H9v-.8571h1.7143v-1.2857H9v-.8572h1.7143V12H3Zm5.1429-3.4286c0 .5572-.3429 1.0286-.8572 1.2v.9429h-.8571v-.9429c-.5143-.1714-.8572-.6428-.8572-1.2 0-.6857.6-1.2857 1.2857-1.2857.7286 0 1.2858.6 1.2858 1.2857zM4.2857 11.143h5.1429v-3c0-.9858-1.2-1.8429-2.5715-1.8429-1.3714 0-2.5714.8571-2.5714 1.8429Zm3 3.4285c0-.2143-.1714-.4285-.4286-.4285-.2142 0-.4285.2142-.4285.4285 0 .2572.2143.4286.4285.4286.2572 0 .4286-.1714.4286-.4286Zm13.2857-5.1428h.8572v.8571h-.8572zm-6.8571 0h4.7143v.8571h-4.7143z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonlumberyard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.136 4.01a2.25 2.25 0 0 0-.441.042 2.133 2.133 0 0 0-1.74 2.195c-.07.056-.139.115-.2.178l-.21.219c-.137.14-.276.278-.417.416-.282.274-.574.541-.867.812-.584.54-1.186 1.088-1.725 1.715a7.3 7.3 0 0 0-.73 1.014 4.9 4.9 0 0 0-.65 1.791 3.73 3.73 0 0 0-.04.324l-.008.08-.004.074-.005.15-.002.038-.002.049v.078l.002.16.006.152c-.884-.293-2.123-.481-3.184-.468-1.235.013-2.132.273-2.588.75a1.14 1.14 0 0 0-.33.842c.034.95 1.117 1.511 2.912 1.511h.1c1.257-.015 2.762-.348 3.613-.767a2.055 2.055 0 0 1 .07 1.09 1.662 1.662 0 0 1-.175.465 1.436 1.436 0 0 1-.31.373 1.45 1.45 0 0 1-.419.24 1.82 1.82 0 0 1-.5.1l.047.634h.012c1.306.771 1.579 1.622 1.74 1.702.215.105 1.023-.188.877-.854-.086-.392-.545-.675-.975-.861.08-.008.16-.02.238-.032a.532.532 0 0 0 .051-.002l.05-.01.05-.011a5.4 5.4 0 0 0 .234-.043l.004-.002c1.225-.252 2.32-.713 3.202-1.317.906.575 1.89 1.398 2.22 2.15-.03.129-.138.261-.261.274l.334.618c1.054-.532 1.809-.238 2.326.002l.178.091c.027.015.003 0 .027.016l.088-.031c.15-.095.535-.454.44-.82-.12-.453-.415-.626-.7-.575-.286.052-1.01.506-.955.07l-.004-.003c.042-.33.088-.922.004-1.592-.16-1.247-.709-2.214-1.594-2.817a3.51 3.51 0 0 0 .139-.62c.614.216 1.207.389 1.973.458.276.025.902.03 1.373.025l.064.237a.01.01 0 0 0 .014.006l.256-.092a.514.514 0 0 1 .07-.024c.022-.006.034-.006.035.012-.004.05-.017.12-.023.147l-.057.287-.031.166c-.006.062.031.096.107.066.066-.03.153-.071.157-.074.438-.182.913-.443 1.351-.629.21-.088.31-.3.352-.504a1.25 1.25 0 0 0-.008-.404l.691.058.004-.006.207-.552.588.058.207-.552.586.058.207-.553.586.06.207-.552.588.059.205-.553.588.059.205-.553.346.035.086-.506.002-.02-.299-1.414-8.383 3.315a.03.03 0 0 0-.01.047l.381.383c.007.008.017.01.03.008l.17-.057a.104.104 0 0 1 .13.057l.096.234s.01.03-.041.03l-.051-.003a7.035 7.035 0 0 1-.205-.011 3.435 3.435 0 0 1-.375-.053c-.062-.01-.123-.03-.184-.043-.06-.015-.122-.034-.183-.051l-.18-.064-.176-.075a4.493 4.493 0 0 1-.346-.173c-.057-.032-.113-.063-.17-.1a11.316 11.316 0 0 1-.503-.332c-.111-.078-.224-.16-.336-.24l-.022-.018c.126-1.483.522-2.098.834-2.352a.812.812 0 0 1 .356-.175 1.832 1.832 0 0 0-.022.38l.434.034.031-.11c.008-.036.021-.07.031-.105.01-.036.025-.07.037-.104.011-.034.03-.066.041-.1.013-.033.032-.064.047-.099.015-.03.035-.065.051-.098.037-.065.075-.134.117-.2l.13-.216c.042-.075.086-.15.126-.232.02-.042.04-.083.059-.127.019-.044.037-.085.054-.135l.024-.07.014-.035.01-.031.015-.06.01-.03.002-.006.008-.026.005-.03.004-.028v-.04c0-.015 0-.02-.006-.05a.234.234 0 0 0-.007-.03l-.01-.027a1.465 1.465 0 0 0-.4-.607 2.21 2.21 0 0 0-.214-.174l.15.006c.146.005.267.008.352.008.085.002.133 0 .133 0l.053-.528s-.05-.01-.135-.023a7.918 7.918 0 0 0-.353-.053l-.06-.008.048-.01a2.26 2.26 0 0 0-2.174-1.753zm.102.643a1.62 1.62 0 0 1 1.394 1.059l-.385-.027a20.737 20.737 0 0 0-.578-.03 19.922 19.922 0 0 0-.508-.01l-.207.002c-.062 0-.108.003-.152.004l-.135.006v.002c-.026 0-.052 0-.078.002a3.112 3.112 0 0 0-.974.217 1.48 1.48 0 0 1 .607-.95c.014-.002.029-.003.047-.01.025-.003.054-.005.086-.01.03 0 .063-.007.1-.005h.113c.039.006.079.009.119.014.04.01.084.012.125.023.04.012.082.022.121.04a1 1 0 0 1 .115.046c.038.016.07.038.104.055.03.02.064.039.09.059a1.14 1.14 0 0 1 .15.125.034.034 0 0 1 .01.011l.256-.177-.01-.022a1.49 1.49 0 0 0-.164-.207c-.03-.033-.063-.063-.098-.098-.037-.03-.073-.066-.117-.097zm-.483 1.645h.067l.074.002c.176.008.365.03.545.064.363.07.721.186 1.037.354.156.084.303.182.42.293a.92.92 0 0 1 .209.28l-.002.013-.01.031-.008.022-.015.046c-.01.03-.027.066-.041.1-.012.033-.028.067-.043.102-.014.034-.034.068-.051.103l-.05.106a6.728 6.728 0 0 0-.114.224l-.026.051c-.103-.012-.506-.038-.94.297-.554.43-.91 1.25-1.06 2.447-.025-.017-.046-.036-.07-.05a10.35 10.35 0 0 0-.363-.231l-.186-.111-.191-.104a6.063 6.063 0 0 0-.795-.35 2.93 2.93 0 0 0-.207-.064 3.504 3.504 0 0 0-.211-.06c-.07-.018-.142-.04-.21-.051l-.206-.041-.086.318c.133.047.268.09.389.14.06.023.123.05.185.077a5.567 5.567 0 0 1 .541.268 6.7 6.7 0 0 1 .348.203l.17.111.166.113.164.12.164.122c.109.082.216.166.324.252l.324.26c.22.174.445.35.686.516.059.04.12.08.182.119a4.624 4.624 0 0 0 .586.326c.068.032.139.06.209.09.07.027.142.05.214.076.074.022.147.046.221.065.075.017.148.035.223.049.15.026.303.045.455.056.075.003.15.008.227.008l.093-.002a.573.573 0 0 0 .248-.063l.055-.027s.052-.03.1-.07a.931.931 0 0 1 .13-.112.499.499 0 0 1 .178-.08.29.29 0 0 1 .155.008c.013.006.025.007.039.014a.374.374 0 0 1 .039.021l.006.002a.9.9 0 0 1 .007.073.91.91 0 0 1-.005.181.72.72 0 0 1-.295.5l-.002.002a1.575 1.575 0 0 1-.075.051c-.026.018-.054.029-.082.045-.028.016-.06.028-.09.041l-.078.031a3.68 3.68 0 0 1-.037-.228 17.834 17.834 0 0 1-1.29-.024c-.887-.08-1.516-.31-2.31-.6a22.853 22.853 0 0 0-1.806-.595.897.897 0 0 0-1.116.588c-.085.276-.086.628-.005 1.049.248 1.282.255 2.291.017 2.771a8.57 8.57 0 0 1-2.398.86h-.004l-.092.02-.131.023a4.35 4.35 0 0 1-.438.052 2.11 2.11 0 0 0 .26-.35c.116-.202.2-.423.25-.648a2.697 2.697 0 0 0-.11-1.502c-.016-.053-.04-.105-.06-.156-.02-.052-.048-.102-.072-.152l-.062-.135a2.802 2.802 0 0 1-.172-.502 3.593 3.593 0 0 1-.088-.54 4.33 4.33 0 0 1-.018-.278l-.002-.14v-.097l.004-.037.01-.15.004-.075.006-.066c.009-.09.018-.18.035-.271a4.253 4.253 0 0 1 .562-1.563c.191-.323.417-.63.666-.922.501-.585 1.084-1.12 1.67-1.66.293-.272.586-.546.877-.828.144-.14.291-.283.432-.43l.031-.035.034.04c.052.059.106.131.19.2.073.073.168.144.274.211a2.118 2.118 0 0 0 .563.248 3.54 3.54 0 0 0 .65.117 4.714 4.714 0 0 0 .723 0l-.004-.277a4.425 4.425 0 0 1-.67-.09 3.146 3.146 0 0 1-.55-.18 1.47 1.47 0 0 1-.151-.076 1.583 1.583 0 0 1-.252-.17 1.201 1.201 0 0 1-.172-.174c-.049-.052-.077-.107-.107-.148-.026-.043-.04-.08-.055-.104 0-.003-.003-.004-.004-.007l.05-.032.058-.029a2.491 2.491 0 0 1 .748-.254 2.54 2.54 0 0 1 .394-.031zm.52.484c-.217.009-.388.13-.38.27.009.14.193.248.411.24.22-.008.389-.13.379-.27-.007-.139-.19-.246-.408-.24zM23.26 9.24l.052.286a.09.09 0 0 1-.105.113c-.032-.006-.063.005-.074.035l-.192.512-.588-.059-.205.553-.588-.06-.205.554-.588-.06-.205.554-.588-.06-.207.553-.586-.06-.183.49a.092.092 0 0 1-.096.058l-.047-.004c-.036-.004-.254-.024-.265-.059l-.542-1.265zm-6.018 2.495c.184-.013.305.077.388.24.013.01.487 1.213.479 1.195a.37.37 0 0 1-.05.436c-.083.095-.28.16-.401.21-.065.029-.066-.013-.09-.081l-.053-.153.024-.042a1.43 1.43 0 0 0 .138-.45 1.525 1.525 0 0 0-.007-.457l-.016-.076-.01-.039-.012-.049v-.002a.301.301 0 0 0-.101-.148 1.29 1.29 0 0 0-.276-.172.716.716 0 0 0-.109-.041c-.039-.011-.077-.024-.117-.03a.869.869 0 0 0-.117-.011l-.02-.002c-.016-.007-.046-.061-.033-.086a.45.45 0 0 1 .383-.242zm-6.544 1.097a.254.254 0 0 1 .002 0 .304.304 0 0 1 .108.01c.635.176 1.15.359 1.604.524-.075 1.032-.725 2.01-1.756 2.773.089-.747-.028-1.661-.17-2.392-.076-.397-.047-.624-.01-.745a.254.254 0 0 1 .222-.17zm-7.771.87c1.119-.014 2.494.224 3.283.556l.01.045a3.542 3.542 0 0 0 .138.446c-.679.348-2.09.697-3.353.71-1.147.012-2.31-.25-2.332-.86a.47.47 0 0 1 .146-.354c.318-.334 1.089-.532 2.108-.543zm9.75 1.123c1.514 1.142 1.263 3.371 1.188 3.855l-.215.045c-.43-.977-1.59-1.862-2.266-2.314.558-.474 1-1.01 1.293-1.586z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonluna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.757 15.4031a4.5796 4.5796 0 0 0-.8157-.3675h-.0038c-.0431-.015-.0863-.0244-.1294-.0375-.5081-.1556-2.4-.8494-3.4782-2.8126v.002l-1.9256-3.334c-.81-1.4212-.6732-3.6844-.585-4.5413a4.519 4.519 0 0 0 .0393-.3244.2659.2659 0 0 0 .0038-.0206h-.0019c.0056-.077.0113-.152.0113-.2307-.002-1.9388-1.5732-3.512-3.512-3.512s-3.512 1.5732-3.512 3.512c0 .0769.0075.1538.0113.2307h-.0038s.0019.0168.0056.045c.0075.09.0188.1762.032.2643.09.8363.2455 3.1876-.6057 4.624h.0018l-2.7582 4.7757v-.0037l-.0318.0581-.2588.45c-.0206.0375-.0356.0769-.0562.1144-.285.4931-.72 1.2057-1.1982 1.8507-.3994.54-1.0238 1.0725-1.637 1.4325l.0076.002c-.0563.028-.1144.0524-.1688.0862a2.3952 2.3952 0 0 0-.8625.8737c-.6694 1.1588-.2719 2.642.8869 3.3114.6056.3506 1.2975.4012 1.9182.2119l-.0038.0056c1.0688-.3732 2.237-.7014 2.8351-.8382 1.0032-.2288 2.4882-.285 3.332-.2963h.96c4.2845.0412 6.4558 1.8582 6.4558 1.8582l.0038-.0038c.1744.1387.3544.27.5531.3844 2.1451 1.2394 4.8902.5043 6.1277-1.6426 1.245-2.145.51-4.8901-1.637-6.1277zm-5.0308 2.267c-.4482.7743-1.0857 1.1568-2.1432 1.2375-1.0575.0806-1.2863.1425-3.2232.1425-1.937 0-2.2295-.06-3.2232-.1425-.992-.0825-1.695-.4632-2.1432-1.2376-.4482-.7744-.4107-1.6594 0-2.475.4106-.8157.6731-1.4457 1.4363-2.7676.7631-1.322 1.0669-1.8226 1.785-2.8145.72-.9919 1.2488-1.2375 2.1432-1.2375.8944 0 1.4644.3319 2.1432 1.2375.6788.9057.8719 1.2563 1.7138 2.7151s1.0556 1.952 1.5075 2.867c.4557.915.45 1.7006.0038 2.475z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonmusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.8454 9.4083c-1.3907 1.0194-3.405 1.563-5.1424 1.563a9.333 9.333 0 0 1-6.2768-2.3835c-.1313-.117-.0143-.277.1415-.1846a12.693 12.693 0 0 0 6.285 1.6574c1.5384 0 3.2348-.318 4.7917-.9764.2359-.0985.4328.1538.203.324h-.002zm.5784-.6564c-.1784-.2257-1.1753-.1087-1.6225-.0554-.1374.0164-.158-.1026-.0349-.1867.796-.5558 2.0984-.3958 2.2502-.2092.1539.1867-.041 1.4872-.7856 2.1087-.1149.0964-.2236.0451-.1723-.082.1682-.4165.5436-1.3498.3651-1.5754zm-1.5917-4.1702v-.5394c0-.082.0615-.1375.1374-.1375h2.4348c.078 0 .1395.0554.1395.1354v.4636c0 .078-.0656.1805-.1846.3405L15.0997 6.635c.4677-.0102.9641.0595 1.3887.2974.0964.0534.123.1334.1292.2113v.5744c0 .082-.0882.1723-.1784.123a2.8163 2.8163 0 0 0-2.5723.0062c-.0861.0451-.1743-.0451-.1743-.1251v-.5477c0-.0882.002-.238.0902-.3713l1.4626-2.0881h-1.2718c-.078 0-.1415-.0534-.1436-.1354l.002.002zm4.808-.7466c1.0995 0 1.6944.9395 1.6944 2.1333 0 1.1528-.6564 2.0676-1.6943 2.0676-1.079 0-1.6656-.9395-1.6656-2.1087 0-1.1774.5948-2.0922 1.6656-2.0922zm.0062.7713c-.5456 0-.5805.7384-.5805 1.202 0 .4615-.0061 1.4481.5744 1.4481.5743 0 .601-.7958.601-1.282 0-.318-.0144-.6994-.1108-1.001-.082-.2625-.2482-.3671-.4841-.3671zm-6.008 3.3414c-.0493.041-.1395.0451-.1744.0164-.2543-.1949-.4246-.4923-.4246-.4923-.4061.4123-.6954.5374-1.2225.5374-.6215 0-1.1077-.3835-1.1077-1.1486a1.2512 1.2512 0 0 1 .7897-1.2041c.402-.1764.9641-.2072 1.3928-.2564 0 0 .0349-.4615-.0902-.6297a.521.521 0 0 0-.4164-.1908c-.2728 0-.5395.1477-.5928.4328-.0144.082-.0739.1518-.1395.1436L9.945 5.08a.1292.1292 0 0 1-.1108-.1537c.1641-.8657.9498-1.1282 1.6554-1.1282.361 0 .8307.0964 1.1158.3671.359.3344.3262.7795.3262 1.2677v1.1487c0 .3446.1436.4964.279.681.0471.0677.0574.1477-.002.197-.1519.125-.5703.4881-.5703.4881zm-.7467-1.7969v-.16c-.5353 0-1.1015.115-1.1015.7426 0 .318.1662.5333.4513.5333.2051 0 .3938-.1272.5128-.3344.1436-.2564.1374-.4943.1374-.7815zM2.9278 7.948c-.0472.041-.1375.045-.1723.0163-.2544-.1949-.4246-.4923-.4246-.4923-.4082.4123-.6954.5374-1.2226.5374-.6235 0-1.1076-.3835-1.1076-1.1486a1.2512 1.2512 0 0 1 .7897-1.2041c.402-.1764.964-.2072 1.3928-.2564 0 0 .0348-.4615-.0903-.6297a.521.521 0 0 0-.4164-.1908c-.2748 0-.5395.1477-.5928.4328-.0143.082-.0759.1518-.1395.1436L.2345 5.08a.1292.1292 0 0 1-.1087-.1537c.162-.8657.9497-1.1282 1.6553-1.1282.361 0 .8308.0964 1.1159.3671.359.3344.324.7795.324 1.2677v1.1487c0 .3446.1437.4964.279.681.0472.0677.0575.1477-.002.197-.1518.125-.5702.4881-.5702.4881zm-.7446-1.797v-.16c-.5354 0-1.1015.115-1.1015.7426 0 .318.164.5333.4512.5333.2052 0 .3939-.1272.5128-.3344.1436-.2564.1375-.4943.1375-.7815zm2.9127-.3343v2.002a.1379.1379 0 0 1-.1395.1374H4.218a.1374.1374 0 0 1-.1395-.1374v-3.766a.1379.1379 0 0 1 .1395-.1375h.6913a.1374.1374 0 0 1 .1374.1374v.482h.0143c.1805-.4758.519-.6994.9744-.6994.4636 0 .7528.2236.962.6995a1.0523 1.0523 0 0 1 1.0215-.6995c.3118 0 .6502.1272.8574.4143.236.318.1867.7795.1867 1.1857v2.3855c0 .076-.0636.1354-.1436.1354H8.181a.1374.1374 0 0 1-.1334-.1354v-2.004c0-.16.0144-.558-.0205-.7077-.0554-.2564-.2215-.3282-.4369-.3282a.4923.4923 0 0 0-.441.3118c-.076.1908-.0698.5087-.0698.724v2.0041c0 .076-.0635.1354-.1435.1354h-.7385a.1374.1374 0 0 1-.1333-.1354v-2.004c0-.4226.0677-1.042-.4574-1.042-.5334 0-.5128.603-.5128 1.042h.002zm16.8077 2.002a.1374.1374 0 0 1-.1374.1374h-.7405a.1374.1374 0 0 1-.1374-.1374v-3.766a.1374.1374 0 0 1 .1374-.1375h.683c.0821 0 .1396.0636.1396.1067v.5764h.0143c.2051-.517.4964-.7631 1.0092-.7631.3323 0 .6564.119.8636.4451.1928.3036.1928.8123.1928 1.1774V7.837a.1395.1395 0 0 1-.1415.119h-.7426a.1395.1395 0 0 1-.1313-.119V5.552c0-.763-.2933-.7856-.4635-.7856-.197 0-.357.1538-.4246.2953a1.7025 1.7025 0 0 0-.1231.722l.002 2.0349zM.1914 20.0582c-.1271 0-.1907-.0615-.1907-.1907v-4.4491c0-.1272.0636-.1908.1907-.1908H.616c.0616 0 .1129.0144.1477.039.0349.0246.0595.0738.0718.1436l.0575.3035c.6133-.4184 1.2102-.6276 1.7907-.6276.5948 0 .9969.2256 1.2081.6769.6318-.4513 1.2636-.677 1.8954-.677.441 0 .7794.1231 1.0153.3693.236.2502.3549.603.3549 1.0584v3.3538c0 .1271-.0656.1907-.1928.1907h-.5641c-.1272 0-.1928-.0615-.1928-.1907v-3.085c0-.318-.0616-.5539-.1805-.7057-.1231-.1538-.3139-.2297-.5744-.2297-.4677 0-.9353.1436-1.4092.4307a.997.997 0 0 1 .0103.1416v3.448c0 .1272-.0636.1908-.1908.1908H3.297c-.1272 0-.1908-.0615-.1908-.1907v-3.085c0-.318-.0615-.5539-.1825-.7057-.1231-.1538-.3139-.2297-.5744-.2297-.4861 0-.9517.1395-1.399.4205v3.5999c0 .1271-.0615.1907-.1907.1907H.1914zm9.731.1436c-.4533 0-.8-.1272-1.044-.3815-.242-.2544-.3631-.6133-.3631-1.0769v-3.321c0-.1292.0615-.1927.1908-.1927h.564c.1293 0 .1929.0635.1929.1907v3.0215c0 .3425.0656.5948.201.7569.1333.162.3487.242.642.242.4595 0 .923-.1518 1.3887-.4574v-3.565c0-.1272.0615-.1908.1908-.1908h.564c.1293 0 .1929.0636.1929.1908v4.4511c0 .1252-.0636.1887-.1928.1887h-.4103c-.0636 0-.1149-.0123-.1497-.0369-.0349-.0266-.0575-.0738-.0718-.1436l-.0657-.3323c-.5948.437-1.204.6564-1.8297.6564zm5.4399 0c-.5374 0-1.0195-.0882-1.4461-.2666a.3754.3754 0 0 1-.158-.1047c-.0287-.039-.043-.0984-.043-.1805v-.2687c0-.1148.0369-.1723.1148-.1723.0452 0 .1231.0205.238.0575.4225.1333.8615.199 1.3128.199.3138 0 .5517-.0616.7138-.1806.164-.121.244-.2954.244-.523a.4923.4923 0 0 0-.1476-.3734 1.606 1.606 0 0 0-.5415-.285l-.8144-.3037c-.7097-.2605-1.0625-.7056-1.0625-1.3333 0-.4143.16-.7487.484-1.001.3221-.2543.7447-.3815 1.2677-.3815a3.487 3.487 0 0 1 1.2164.2195c.076.0246.1313.0574.1641.0985.0308.041.0472.1025.0472.1846v.2584c0 .1149-.041.1723-.123.1723a.8615.8615 0 0 1-.2216-.0472 3.5495 3.5495 0 0 0-1.0359-.1538c-.6112 0-.919.2072-.919.6195 0 .164.0514.2953.154.3897.1025.0964.3035.201.603.3159l.7466.2872c.3774.1436.6482.318.8144.519.1661.1989.2482.4574.2482.7753 0 .4513-.1682.8102-.5067 1.0769-.3385.2666-.7877.4-1.3497.4v.002zm3.0645-.1436c-.1272 0-.1928-.0615-.1928-.1907v-4.4491c0-.1272.0656-.1908.1928-.1908h.5641c.1272 0 .1928.0636.1928.1908v4.4511c0 .1251-.0656.1887-.1928.1887h-.564zm.2872-5.688c-.1846 0-.3303-.0513-.437-.1559a.558.558 0 0 1-.1579-.4143c0-.1724.0534-.3098.158-.4144a.5907.5907 0 0 1 .4369-.158c.1846 0 .3282.0534.4349.158.1066.1026.1579.242.1579.4144 0 .1702-.0513.3076-.158.4143-.1046.1026-.2502.1559-.4348.1559zm4.002 5.7926c-.7529 0-1.3293-.2133-1.7272-.642-.4-.4307-.599-1.0502-.599-1.8625 0-.8061.2052-1.4318.6175-1.8728.4102-.441.9948-.6625 1.7476-.6625.3446 0 .683.0615 1.0154.1825.0697.0247.119.0554.1477.0944s.043.1026.043.1908v.2564c0 .1271-.041.1907-.123.1907-.0329 0-.082-.0082-.1539-.0287a2.8307 2.8307 0 0 0-.7959-.1128c-.5353 0-.923.1333-1.1589.404s-.3528.6996-.3528 1.2924v.123c0 .5764.119 1.001.359 1.2718.24.2687.6174.404 1.1343.404.2666 0 .5538-.043.8615-.1332.0718-.0206.119-.0288.1436-.0288.082 0 .1251.0636.1251.1908v.2585c0 .082-.0123.1435-.039.1805-.0246.0369-.0759.0718-.1518.1025-.3138.1354-.6769.201-1.0933.201z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonpay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.3781 4.9945c-.3732-.3227-.953-.4843-1.7401-.4843-.3895 0-.779.0355-1.1684.1054-.3901.0706-.7172.1636-.9824.2797-.0993.0418-.166.0849-.1991.1304-.0331.0456-.05.1267-.05.2422v.3352c0 .1491.0537.224.1617.224a.337.337 0 0 0 .1061-.0187c.0374-.0125.0687-.0225.093-.0312.6385-.1904 1.247-.2859 1.8275-.2859.4968 0 .8451.0912 1.0442.274.1991.1823.2984.4969.2984.9444v.8201c-.5799-.141-1.1023-.211-1.5667-.211-.729 0-1.3088.1804-1.74.5406-.4308.3601-.6467.8432-.6467 1.448 0 .5642.1741 1.013.5224 1.3488.3477.3358.8201.503 1.4168.503.3564 0 .7147-.0705 1.0754-.2109.3608-.1404.6897-.3402.988-.5967l.0625.41c.025.1574.116.236.274.236h.5343c.1654 0 .249-.083.249-.2484V6.4987c-.0006-.6797-.1872-1.1809-.5599-1.5042zm-.6091 4.6c-.2734.2072-.5593.3645-.8576.4725-.2984.108-.5842.1617-.8576.1617-.3233 0-.5717-.085-.7459-.2547-.1741-.1698-.2609-.412-.2609-.7271 0-.721.4682-1.0817 1.4044-1.0817.2153 0 .4369.015.6647.0437.2278.0293.4456.0687.6529.118zM8.7726 6.402c-.1204-.402-.292-.744-.5161-1.0255-.2235-.2815-.4969-.4975-.8202-.6466-.3227-.1492-.6834-.2235-1.0816-.2235-.3727 0-.7378.07-1.0936.211-.3563.141-.6921.3483-1.0073.6216l-.0618-.3982c-.025-.1654-.1205-.2484-.2865-.2484h-.5468c-.1654 0-.2484.083-.2484.2484v8.3662c0 .166.083.2484.2484.2484h.7334c.166 0 .2484-.083.2484-.2484v-2.9086c.5387.4887 1.181.7334 1.9268.7334.4057 0 .7746-.0811 1.106-.2422.3314-.1616.6129-.3876.845-.6778.2323-.2896.4126-.6416.5406-1.0567.1286-.4144.1929-.8788.1929-1.3925.0012-.505-.0593-.9587-.1792-1.3606zM5.982 10.1369c-.5642 0-1.111-.1985-1.6409-.5967V6.0724c.5218-.3813 1.0773-.5717 1.666-.5717 1.1271 0 1.6907.7752 1.6907 2.3243-.0006 1.5417-.5723 2.3119-1.7158 2.3119zm13.0005 1.963l2.735-6.9612c.0575-.141.0868-.2403.0868-.2984 0-.0992-.058-.1491-.1741-.1491h-.696c-.1329 0-.2234.0212-.274.0624-.0499.0418-.0992.133-.1491.274l-1.6784 4.8228-1.7401-4.8228c-.05-.141-.0993-.2322-.1492-.274-.05-.0412-.141-.0624-.274-.0624h-.7459c-.116 0-.1741.0499-.1741.1491 0 .058.0287.1573.0868.2984l2.3992 5.917-.236.6341c-.141.3982-.2983.6716-.4724.8208-.1741.1491-.4188.2234-.7334.2234-.141 0-.2528-.0087-.3352-.025-.083-.0162-.1454-.025-.1866-.025-.1242 0-.1866.0787-.1866.236v.3233c0 .1161.0206.201.0624.2547.0412.0536.1074.0936.1991.118.2066.0574.4432.0873.7084.0873.4725 0 .8557-.1242 1.1497-.3732.2952-.2478.5543-.6585.7777-1.2302m2.7113 4.4233c-2.6276 1.9393-6.4369 2.9704-9.7174 2.9704-4.5975 0-8.7375-1.6996-11.8701-4.5283-.246-.2221-.0269-.5255.269-.3532 3.3798 1.9667 7.5597 3.1513 11.877 3.1513 2.9123 0 6.1136-.6042 9.0596-1.8537.4437-.1891.8163.2921.382.6135m1.0928-1.2483c.3364.4307-.3738 2.204-.691 2.996-.096.2396.11.3364.3271.1548 1.4094-1.179 1.7739-3.65 1.4855-4.0071-.2865-.3539-2.7506-.6585-4.2548.3976-.2316.1623-.1916.387.0649.3557.847-.101 2.7325-.3276 3.0683.103Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonprime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.8054 12.403c-.0699-.096-.144-.1746-.144-.3538v-.5945c0-.2523.0179-.484-.168-.6576-.1466-.1408-.3892-.1903-.5752-.1903-.3635 0-.7688.136-.8542.5849-.0087.0476.0258.0728.0573.08l.3703.0398c.0345-.0014.0597-.0358.066-.0703.032-.1544.1616-.2292.3073-.2292.0786 0 .1679.0292.214.099.0538.0787.0466.1864.0466.2772v.0495c-.2214.0248-.511.0413-.7183.1325-.2393.1034-.4072.314-.4072.6242 0 .3965.2504.595.5717.595.2718 0 .4198-.064.6295-.2776.0694.1005.0922.1495.219.2548.0285.015.0649.0136.0902-.0092l.294-.2524c.0312-.0257.0253-.067.001-.102m-.68-.5765c0 .149.0035.2728-.0713.4053-.0606.1072-.1572.1732-.2645.1732-.1465 0-.232-.1116-.232-.2766 0-.3257.2917-.3844.5679-.3844zm5.6864.5766c-.0694-.0961-.1441-.1747-.1441-.3539v-.5945c0-.2523.018-.484-.168-.6576-.1465-.1408-.3892-.1903-.5751-.1903-.3636 0-.7688.136-.8537.5849-.0093.0476.0257.0728.0568.08l.3703.0398c.0344-.0014.0596-.0358.066-.0703.032-.1544.1616-.2292.3072-.2292.0786 0 .168.0292.214.099.0539.0787.0466.1864.0466.2772v.0495c-.2213.0248-.511.0413-.7178.1325-.2397.1034-.4076.314-.4076.6242 0 .3965.2504.595.5717.595.2717 0 .4202-.064.63-.2776.0689.1005.0916.1495.2188.2548a.0788.0788 0 0 0 .0898-.0092l.001.001c.0767-.068.215-.1883.293-.2534.0312-.0257.0259-.067.0011-.102m-.7513-.1712c-.0607.1072-.1572.1732-.2646.1732-.1465 0-.232-.1116-.232-.2766 0-.3257.2918-.3844.568-.3844v.0825c0 .149.0038.2728-.0714.4053m5.16.5307h-.3806a.0717.0717 0 0 1-.0684-.0704l-.0007-1.9608c.0032-.0359.0349-.064.0734-.064h.3542a.0725.0725 0 0 1 .0678.0547v.2999h.0073c.107-.2682.2566-.396.5204-.396.1711 0 .3387.0618.4457.231.0998.1567.0998.4206.0998.6104v1.2335c-.0043.0347-.0355.0617-.0732.0617h-.3829a.072.072 0 0 1-.068-.0617v-1.0643c0-.2145.025-.528-.2388-.528-.0927 0-.1782.0619-.221.1567-.0535.1197-.0607.2393-.0607.3713v1.0554a.073.073 0 0 1-.0743.0706M9.612 10.6259c.5668 0 .8733.4868.8733 1.1055 0 .598-.3385 1.0724-.8733 1.0724-.5561 0-.8592-.4868-.8592-1.0931 0-.6104.3066-1.0848.8592-1.0848m.0035.4002c-.2817 0-.2994.3835-.2994.6227 0 .2392-.0036.7507.296.7507.2958 0 .31-.4125.31-.664 0-.1649-.0071-.363-.057-.5197-.0428-.1362-.1285-.1897-.2496-.1897m-7.062 1.7364h-.3819a.0719.0719 0 0 1-.0683-.0646l.0003-1.96c0-.0393.033-.0706.0738-.0706h.3556c.0372.0017.067.03.0694.0657v.256h.0071c.0927-.2476.2674-.363.5027-.363.2388 0 .3886.1154.4954.363.0928-.2476.3031-.363.5277-.363.1605 0 .3351.066.4421.2144.1212.165.0963.4042.0963.6146l-.0004 1.237c0 .039-.033.0705-.0737.0705h-.3813a.0715.0715 0 0 1-.0686-.0704v-1.0392c0-.0824.007-.2886-.0109-.367-.0284-.132-.114-.1692-.2244-.1692-.0928 0-.189.062-.2283.1608-.0392.0991-.0356.264-.0356.3754v1.039c0 .0392-.033.0706-.0737.0706h-.3815a.0716.0716 0 0 1-.0685-.0704l-.0004-1.0392c0-.2185.0356-.5402-.2352-.5402-.2745 0-.2638.3134-.2638.5402l-.0002 1.039c0 .0392-.033.0706-.0737.0706m4.5791-1.7494v-.28a.0692.0692 0 0 1 .071-.071h1.2553c.0402 0 .0724.0291.0724.0706v.2402c-.0003.0403-.0343.0929-.0945.1763l-.6502.9284c.2413-.0056.4967.0306.716.1538.0494.0278.0627.069.0666.1093v.2989c0 .0411-.0451.0888-.0925.064-.3863-.2024-.8991-.2245-1.3263.0025-.0437.0232-.0894-.0238-.0894-.065v-.284c0-.0455.0009-.1233.0467-.1926l.7534-1.0808h-.656c-.04 0-.0722-.0286-.0725-.0706m.8171 2.1613c-.0917-.1174-.606-.0556-.8372-.028-.07.0084-.0809-.0527-.0179-.097.4105-.2882 1.0829-.205 1.1611-.1085.0787.0973-.0207.7715-.4052 1.0933-.0592.0494-.1155.023-.0892-.0423.0865-.2161.2802-.7.1884-.8175m-.2983.3406c-.717.529-1.7563.8105-2.6514.8105-1.2543 0-2.384-.4638-3.2388-1.2355-.067-.0607-.0072-.1434.0735-.0965.9222.5366 2.0628.8598 3.2406.8598.7947 0 1.6681-.1649 2.4719-.5058.1211-.0514.2228.0799.1042.1675m15.5297-.693c-.342 0-.6045-.0938-.7879-.2813-.1835-.1875-.275-.4563-.275-.8065 0-.3584.0935-.6397.2811-.8437.1875-.204.4481-.3061.7817-.3061.2565 0 .4571.062.6019.1861.1447.1241.2171.2895.2171.4963 0 .2068-.078.3634-.2337.4694-.1558.1063-.3853.1593-.6887.1593-.157 0-.2936-.0151-.4094-.0455.0165.1847.0724.3171.1675.397.0952.08.2392.12.4323.12.0771 0 .1522-.0048.2253-.0145.073-.0096.1744-.031.304-.064a.163.163 0 0 1 .0455-.0084c.0468 0 .0703.0318.0703.0952v.1902c0 .0441-.0062.0752-.0185.093-.0125.018-.0366.0339-.0725.0476-.2013.0772-.415.1158-.641.1158m-.1365-1.2986c.1406 0 .2426-.0214.306-.0641.0634-.0428.0952-.1083.0952-.1965 0-.1738-.1034-.2606-.3102-.2606-.2647 0-.4177.1628-.4591.488.1103.0221.233.0332.3681.0332M18.6275 12.76c-.0359 0-.0622-.0082-.0786-.0248-.0166-.0165-.0248-.0427-.0248-.0786V10.75c0-.0387.0082-.0655.0248-.0807.0164-.0151.0427-.0227.0786-.0227h.2977c.0634 0 .102.0303.1159.091l.033.1116c.1461-.0965.2778-.1647.395-.2047.1171-.04.2378-.06.362-.06.248 0 .4231.0882.5251.2647.1407-.0937.273-.1613.3972-.2026.124-.0414.2522-.062.3846-.062.193 0 .3425.0536.4487.1612.1061.1076.1593.258.1593.4508v1.46c0 .0359-.0077.062-.0228.0786-.0152.0166-.042.0248-.0807.0248h-.397c-.0359 0-.062-.0082-.0785-.0248-.0166-.0165-.025-.0427-.025-.0786V11.329c0-.1875-.084-.2813-.2522-.2813-.1489 0-.2992.0359-.4508.1075v1.5014c0 .0359-.0076.062-.0228.0786-.0152.0166-.042.0248-.0806.0248h-.397c-.036 0-.0621-.0082-.0787-.0248-.0165-.0165-.0248-.0427-.0248-.0786V11.329c0-.1875-.0842-.2813-.2523-.2813-.1544 0-.306.0373-.4549.1116v1.4973c0 .0359-.0077.062-.0227.0786-.0153.0166-.0422.0248-.0807.0248zm-.9174-2.4402c-.1048 0-.1888-.029-.2522-.0869-.0635-.0578-.0952-.1364-.0952-.2357s.0317-.1778.0952-.2357c.0634-.058.1474-.0869.2523-.0869.1046 0 .1888.029.2522.0869.0634.0579.0952.1364.0952.2357s-.0318.1779-.0952.2357c-.0634.058-.1476.087-.2523.087m-.1985 2.4401c-.0358 0-.062-.0083-.0786-.0249-.0166-.0164-.0248-.0426-.0248-.0785V10.75c0-.0386.0082-.0655.0248-.0807.0165-.0151.0428-.0227.0786-.0227h.397c.0386 0 .0655.0076.0807.0227.0151.0152.0228.042.0228.0807v1.9066c0 .036-.0077.062-.0228.0785-.0152.0166-.042.025-.0807.025zm-1.6527 0c-.0359 0-.0622-.0082-.0786-.0248-.0166-.0165-.0248-.0427-.0248-.0786V10.75c0-.0387.0082-.0655.0248-.0807.0164-.0151.0427-.0227.0786-.0227h.2977c.0634 0 .102.0303.1158.091l.0538.2233c.1103-.1214.2144-.2075.3123-.2585a.6664.6664 0 0 1 .3123-.0765h.0578c.0386 0 .0662.0076.0827.0227.0166.0152.0248.042.0248.0807v.3474c0 .0358-.0076.062-.0227.0785-.0151.0166-.042.025-.0807.025a.8293.8293 0 0 1-.0744-.0043 1.3657 1.3657 0 0 0-.1158-.0041c-.0634 0-.1406.009-.2316.0269-.091.018-.1682.0407-.2316.0683v1.3896c0 .0359-.0077.062-.0227.0786-.0153.0166-.0422.0248-.0807.0248zm-2.477.852c-.0358 0-.062-.0077-.0786-.0227-.0165-.0153-.0248-.042-.0248-.0807V10.75c0-.0386.0083-.0655.0248-.0807.0166-.0151.0428-.0227.0786-.0227h.2978c.0634 0 .102.0304.1157.091l.029.1075c.0828-.08.1827-.1433.2999-.1903a.9562.9562 0 0 1 .3578-.0703c.2673 0 .479.098.6348.2937.1558.1958.2337.4605.2337.794 0 .229-.0386.4288-.1157.5997-.0772.171-.1821.3027-.3144.395-.1324.0925-.284.1386-.4549.1386a.965.965 0 0 1-.3226-.0538c-.1021-.0358-.189-.0854-.2606-.1489v.9058c0 .0386-.0076.0654-.0227.0807-.0153.015-.0421.0227-.0807.0227zm.9057-1.2615c.1545 0 .2682-.0523.3413-.157.073-.1048.1097-.2703.1097-.4964 0-.2288-.036-.3956-.1076-.5005-.0718-.1048-.1862-.1571-.3434-.1571a.7883.7883 0 0 0-.4052.1116v1.0878c.1212.0744.2564.1116.4052.1116Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonrds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.463.857 5.446 4.84l-.606.606L.857 1.463v3.251H0V.43A.43.43 0 0 1 .429 0h4.285v.857ZM24 .43v4.285h-.857v-3.25l-3.983 3.98-.606-.606L22.537.857h-3.251V0h4.285c.237 0 .429.192.429.429Zm-.857 18.857H24v4.285a.428.428 0 0 1-.429.429h-4.285v-.857h3.25l-3.982-3.983.606-.606 3.983 3.983Zm-.214-7.623c0-1.423-1.643-2.828-4.393-3.76l.274-.811c3.162 1.07 4.976 2.736 4.976 4.57 0 1.836-1.814 3.502-4.976 4.572l-.275-.812c2.751-.931 4.394-2.336 4.394-3.76Zm-21.834 0c0 1.363 1.538 2.73 4.113 3.66l-.291.806C1.944 15.057.238 13.43.238 11.664S1.944 8.27 4.917 7.197l.291.806c-2.575.93-4.113 2.297-4.113 3.66Zm4.35 7.497-3.982 3.983h3.251V24H.43a.428.428 0 0 1-.43-.429v-4.285h.857v3.25l3.983-3.982ZM12 8.265c-3.063 0-4.714-.79-4.714-1.114 0-.323 1.651-1.114 4.714-1.114 3.062 0 4.714.79 4.714 1.114 0 .323-1.652 1.114-4.714 1.114Zm.012 3.32c-2.932 0-4.726-.801-4.726-1.237V8.265c1.055.582 2.928.858 4.714.858 1.786 0 3.659-.276 4.714-.858v2.083c0 .436-1.785 1.237-4.702 1.237Zm0 3.272c-2.932 0-4.726-.8-4.726-1.237v-2.108c1.042.613 2.89.93 4.726.93 1.827 0 3.664-.317 4.702-.928v2.106c0 .437-1.785 1.237-4.702 1.237ZM12 17.793c-3.05 0-4.714-.82-4.714-1.24v-1.768c1.042.612 2.89.93 4.726.93 1.827 0 3.664-.317 4.702-.928v1.765c0 .422-1.664 1.241-4.714 1.241ZM12 5.18c-2.683 0-5.571.616-5.571 1.971v9.401c0 1.378 2.802 2.099 5.571 2.099 2.769 0 5.571-.721 5.571-2.099v-9.4c0-1.356-2.888-1.972-5.571-1.972Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonredshift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.639 9.932a.822.822 0 0 1-.822-.82.823.823 0 0 1 1.645 0c0 .452-.37.82-.823.82m-2.086 4.994a.823.823 0 0 1-.822-.822.822.822 0 0 1 1.645 0 .822.822 0 0 1-.823.822m-5.004-.833a.822.822 0 1 1 .002-1.644.822.822 0 0 1-.002 1.644m-2.083 4.578a.823.823 0 0 1-.823-.82.823.823 0 0 1 1.645 0c0 .452-.37.82-.822.82m9.173-11.236a1.68 1.68 0 0 0-1.68 1.676c0 .566.285 1.066.718 1.37l-.782 1.982a1.674 1.674 0 0 0-1.923 1.104l-1.753-.398a1.675 1.675 0 0 0-3.348.103c0 .432.169.823.438 1.12l-.764 1.79c-.028-.001-.053-.008-.08-.008a1.68 1.68 0 0 0-1.68 1.676 1.68 1.68 0 0 0 3.36 0c0-.593-.312-1.112-.778-1.41l.674-1.579c.161.052.33.088.508.088.661 0 1.228-.386 1.502-.94l1.856.42a1.68 1.68 0 0 0 3.327-.325c0-.5-.224-.943-.574-1.25l.822-2.083c.053.005.104.016.157.016a1.68 1.68 0 0 0 1.68-1.676 1.68 1.68 0 0 0-1.68-1.676M12 23.145c-4.17 0-7.286-1.252-7.286-2.37V4.79C6.14 5.938 9.131 6.547 12 6.547c2.869 0 5.86-.609 7.286-1.756v15.983c0 1.12-3.116 2.37-7.286 2.37M12 .856c4.293 0 7.286 1.274 7.286 2.419 0 1.143-2.993 2.418-7.286 2.418-4.293 0-7.286-1.275-7.286-2.418C4.714 2.129 7.707.855 12 .855m8.143 2.419C20.143 1.147 15.947 0 12 0 8.052 0 3.857 1.147 3.857 3.274l.002.01h-.002v17.49C3.857 22.87 8.052 24 12 24c3.947 0 8.143-1.13 8.143-3.226V3.284h-.002l.002-.01\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonroute53 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 15.7664c0 2.8715-2.3571 5.0143-6.3 5.7-2.9571.5572-5.4 2.4-5.4429 2.4429q-.1285.0857-.2571.0857t-.2571-.0857C11.7 23.8664 9.257 22.0236 6.3 21.4664c-3.9429-.6857-6.3-2.8285-6.3-5.7 0-1.7571.6857-2.9143 1.2857-3.9428.5143-.9.9857-1.6715.9857-2.7429 0-2.2714-1.7571-3.7714-1.8-3.7714Q.343 5.1807.3 5.0093q0-.1714.1286-.3C.4286 4.6664 3.257 1.2807 3.9.3807c.0857-.0857.1714-.1714.3-.1714s.2571.0428.3429.1286c1.1142 1.1571 2.3571 1.8 3.6 1.8 1.3714 0 2.4857-.6 3.5142-1.9715.1715-.2143.5143-.2143.6858 0C13.3714 1.538 14.4857 2.138 15.857 2.138c1.2429 0 2.4858-.6429 3.6-1.8.0858-.0858.2143-.1286.3429-.1286s.2143.0857.3.1714c.6429.9 3.4714 4.2857 3.4714 4.3286q.1286.1286.1286.3-.0429.1714-.1714.3c-.0429 0-1.8 1.5-1.8 3.7714 0 1.0714.4714 1.8429.9857 2.7429.6 1.0285 1.2857 2.1857 1.2857 3.9428Zm-.8571 0c0-1.5-.6-2.5285-1.1572-3.5143-.5571-.9-1.1143-1.8857-1.1143-3.1714 0-2.1 1.2-3.5571 1.8-4.1571-.6428-.7286-2.1857-2.6572-2.9571-3.6429C18.557 2.395 17.1857 2.995 15.857 2.995c-1.5 0-2.7428-.6-3.8571-1.8857C10.8857 2.395 9.6429 2.995 8.1429 2.995c-1.3286 0-2.7-.6-3.8572-1.7143-.7714.9857-2.3143 2.9143-2.9571 3.6429.6.6 1.8 2.0571 1.8 4.1571 0 1.2857-.5572 2.2714-1.1143 3.1714C1.457 13.238.857 14.2664.857 15.7664c0 .9.3858 3.9429 5.5715 4.8857 2.6143.4715 4.8428 1.8858 5.5714 2.4.7286-.5142 2.9571-1.9285 5.5714-2.4 5.1857-.9428 5.5715-3.9857 5.5715-4.8857zm-2.5715-2.6571c.5572.9857.9 1.6286.9 2.6571 0 2.3143-3.2143 3.0429-4.2 3.2143-2.0571.3857-3.9 1.2857-5.0571 1.9714q-.0857.0429-.2143.0429t-.2143-.0429c-1.1571-.6857-3-1.5857-5.0571-1.9714-.9857-.1714-4.2-.9-4.2-3.2143 0-1.0285.3428-1.6714.9-2.6571.6-1.0286 1.3285-2.3143 1.3285-4.0286 0-1.3714-.3857-2.6571-1.1142-3.8571-.0858-.1715-.0858-.3857.0428-.5143q.3-.3857.6429-.8143c.1285-.1714.3857-.2143.5571-.1286 1.0714.6 2.1429.9 3.2572.9 1.3714 0 2.5285-.3857 3.6-1.1143.1714-.0857.3428-.0857.5142 0 1.0715.7286 2.2286 1.1143 3.6 1.1143 1.1143 0 2.1858-.3 3.2572-.9.1714-.0857.4286-.0428.5571.1286q.3429.4286.6429.8143c.1286.1286.1286.3428.0428.5143-.7285 1.2-1.1142 2.4857-1.1142 3.8571 0 1.7143.7285 3 1.3285 4.0286zm.0429 2.6571c0-.7714-.2572-1.3285-.8143-2.2285-.6429-1.1143-1.4143-2.4858-1.4143-4.4572 0-1.4571.3429-2.7857 1.0714-4.0714q-.1285-.1714-.2571-.3c-1.0714.5143-2.1857.8143-3.3429.8143-1.4142 0-2.7-.3857-3.8571-1.1143-1.1571.7286-2.4429 1.1143-3.8571 1.1143q-1.7143 0-3.3429-.8143-.1286.1286-.2571.3c.7285 1.2857 1.0714 2.6143 1.0714 4.0714 0 1.9714-.7714 3.3429-1.4143 4.4572-.5571.9-.8143 1.4571-.8143 2.2285 0 1.6715 2.9143 2.2715 3.4714 2.4 2.1.3857 3.9 1.2 5.1429 1.8857 1.2429-.6857 3.0429-1.5 5.1429-1.8857.5571-.1285 3.4714-.7285 3.4714-2.4zm-4.8857-3.4714q.4714.4286.4714 1.1571 0 .8143-.5571 1.2858-.6.4714-1.5858.4714-.7714 0-1.5-.3v-.6857q.9.3 1.5.3.6429 0 .9858-.2572.3-.3.3-.8143 0-.9857-1.2429-.9857-.3857 0-.7714.0429v-.5572l1.7143-1.8428h-2.4v-.6857h3.3v.6428l-1.6715 1.8h.1714q.8143 0 1.2858.4286zm-4.7572-.1714q.4715.4714.4715 1.2857t-.5572 1.3286q-.6.4714-1.5428.4714-.8143 0-1.5858-.3v-.6857q.9429.3 1.5858.3.6 0 .9428-.2572.3429-.3.3429-.8143 0-.6-.3-.8571-.3429-.2571-1.0286-.2571-.5143 0-1.2857.0857v-.5572l.1714-2.4428h3v.6857H8.8714l-.1285 1.6286q.4714-.043.8142-.043.9 0 1.4143.4287z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazons3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.913 13.147l.12-.895c.947.576 1.258.922 1.354 1.071-.16.031-.562.046-1.474-.176zm-2.174 7.988a.547.547 0 0 0-.005.073c0 .084-.207.405-1.124.768a10.28 10.28 0 0 1-1.438.432c-1.405.325-3.128.504-4.853.504-4.612 0-7.412-1.184-7.412-1.704a.547.547 0 0 0-.005-.073L1.81 5.602c.135.078.28.154.432.227.042.02.086.038.128.057.134.062.272.122.417.18l.179.069c.154.058.314.114.478.168.043.013.084.029.13.043.207.065.423.127.646.187l.176.044c.175.044.353.087.534.127a23.414 23.414 0 0 0 .843.17l.121.023c.252.045.508.085.768.122.071.011.144.02.216.03.2.027.4.053.604.077l.24.027c.245.026.49.05.74.07l.081.009c.275.022.552.04.83.056l.233.012c.21.01.422.018.633.025a33.088 33.088 0 0 0 2.795-.026l.232-.011c.278-.016.555-.034.83-.056l.08-.008c.25-.02.497-.045.742-.072l.238-.026c.205-.024.408-.05.609-.077.07-.01.141-.019.211-.03.261-.037.519-.078.772-.122l.111-.02c.215-.04.427-.082.634-.125l.212-.047c.186-.041.368-.085.546-.13l.166-.042c.225-.06.444-.122.654-.189.04-.012.077-.026.115-.038a10.6 10.6 0 0 0 .493-.173c.058-.021.114-.044.17-.066.15-.06.293-.12.43-.185.038-.017.079-.034.116-.052.153-.073.3-.15.436-.228l-.976 7.245c-2.488-.78-5.805-2.292-7.311-3a1.09 1.09 0 0 0-1.088-1.085c-.6 0-1.088.489-1.088 1.088 0 .6.488 1.089 1.088 1.089.196 0 .378-.056.537-.148 1.72.812 5.144 2.367 7.715 3.15zm-7.42-20.047c5.677 0 9.676 1.759 9.75 2.736l-.014.113c-.01.033-.031.067-.048.101-.015.028-.026.057-.047.087-.024.033-.058.068-.09.102-.028.03-.051.06-.084.09-.038.035-.087.07-.133.105-.04.03-.074.06-.119.091-.053.036-.116.071-.177.107-.05.03-.095.06-.15.09-.068.036-.147.073-.222.11-.059.028-.114.057-.177.085-.084.038-.177.074-.268.111-.068.027-.13.054-.203.082-.097.036-.205.072-.31.107-.075.026-.148.053-.228.079-.111.035-.233.069-.35.103-.085.024-.165.05-.253.073-.124.034-.258.065-.389.098-.093.022-.181.046-.278.068-.139.032-.287.061-.433.091-.098.02-.191.041-.293.06-.155.03-.32.057-.482.084-.1.018-.198.036-.302.052-.166.026-.342.048-.515.072-.11.014-.213.03-.325.044-.181.023-.372.041-.56.06-.11.012-.218.025-.332.036-.188.016-.386.029-.58.043-.122.009-.24.02-.364.028-.207.012-.422.02-.635.028-.12.005-.234.012-.354.016a35.605 35.605 0 0 1-2.069 0c-.12-.004-.234-.011-.352-.016-.214-.008-.43-.016-.637-.028-.122-.008-.238-.02-.36-.027-.195-.015-.394-.028-.584-.044-.11-.01-.215-.024-.324-.035-.19-.02-.384-.038-.568-.06l-.315-.044c-.176-.024-.355-.046-.525-.073-.1-.015-.192-.033-.29-.05-.167-.028-.335-.055-.494-.086-.096-.018-.183-.038-.276-.056-.151-.032-.305-.062-.45-.095-.09-.02-.173-.043-.26-.064-.138-.034-.277-.067-.407-.102-.082-.022-.157-.046-.235-.069a11.75 11.75 0 0 1-.368-.108c-.075-.024-.141-.049-.213-.073-.11-.037-.223-.075-.325-.113-.067-.025-.125-.051-.188-.077-.096-.038-.195-.076-.282-.115-.06-.027-.11-.054-.166-.08-.08-.039-.162-.077-.233-.116-.052-.028-.094-.055-.142-.084-.063-.038-.13-.075-.185-.113-.043-.029-.075-.058-.113-.086-.048-.037-.098-.073-.139-.11-.032-.029-.054-.057-.08-.087-.033-.035-.069-.07-.093-.104-.02-.03-.031-.058-.046-.086-.018-.035-.039-.068-.049-.102l-.015-.113c.076-.977 4.074-2.736 9.748-2.736zm12.182 12.124c-.118-.628-.84-1.291-2.31-2.128l.963-7.16a.531.531 0 0 0 .005-.073C22.16 1.581 16.447 0 11.32 0 6.194 0 .482 1.581.482 3.851a.58.58 0 0 0 .005.072L2.819 21.25c.071 2.002 5.236 2.75 8.5 2.75 1.805 0 3.615-.188 5.098-.531.598-.138 1.133-.3 1.592-.48 1.18-.467 1.789-1.053 1.813-1.739l.945-7.018c.557.131 1.016.197 1.389.197.54 0 .902-.137 1.134-.413a.956.956 0 0 0 .21-.804Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonsimpleemailservice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9996 0C5.3833 0 0 5.3834 0 11.9998c0 2.5316.7813 4.9544 2.2599 7.0051l.6955-.5014C1.5827 16.5993.8571 14.3505.8571 11.9998.8571 5.856 5.856.8572 12.0004.8572c6.144 0 11.1425 4.999 11.1425 11.1426 0 2.3508-.7256 4.5995-2.0983 6.5037l.6955.5014C23.2187 16.9542 24 14.5314 24 11.9998 24 5.3834 18.6163 0 11.9996 0zM6 16.7142a.4285.4285 0 0 0-.4286.4285v1.7598c-.9643.2048-1.7143 1.0822-1.7143 2.0974 0 1.1615.9815 2.143 2.1429 2.143s2.1429-.9815 2.1429-2.143c0-1.0152-.75-1.8926-1.7143-2.0974v-1.3312h5.1428v2.1883c-.9643.2049-1.7143 1.0822-1.7143 2.0975C9.8571 23.0186 10.8386 24 12 24s2.1429-.9814 2.1429-2.1429c0-1.0153-.75-1.8926-1.7143-2.0975v-2.1883h5.1428v1.3312c-.9643.2048-1.7143 1.0822-1.7143 2.0974 0 1.1615.9815 2.143 2.1429 2.143s2.1429-.9815 2.1429-2.143c0-1.0152-.75-1.8926-1.7143-2.0974v-1.7598A.4285.4285 0 0 0 18 16.7142h-5.5714v-2.5715H18c.237 0 .4286-.192.4286-.4286V5.9997A.4285.4285 0 0 0 18 5.571H6a.4285.4285 0 0 0-.4286.4286v7.7144c0 .2366.1916.4286.4286.4286h5.5714v2.5715H6zm1.2857 4.2857c0 .697-.5889 1.2858-1.2857 1.2858s-1.2857-.5889-1.2857-1.2858c0-.6968.5889-1.2857 1.2857-1.2857S7.2857 20.3031 7.2857 21zm12 0c0 .697-.5889 1.2858-1.2857 1.2858s-1.2857-.5889-1.2857-1.2858c0-.6968.5889-1.2857 1.2857-1.2857s1.2857.5889 1.2857 1.2857zm-1.7143-8.248L14.259 9.7703l3.3124-2.8389v5.8205zm-.7298-6.3236-4.842 4.1499-4.8412-4.15h9.6832zm-10.413.5031L9.741 9.7707 6.4286 12.752V6.9314zm.6878 6.3541 3.2807-2.9525 1.3239 1.135a.4253.4253 0 0 0 .2786.1032.4253.4253 0 0 0 .2785-.1033l1.3243-1.1349 3.2812 2.9525H7.1164zM12 20.5714c.6968 0 1.2857.5888 1.2857 1.2857 0 .6969-.5889 1.2857-1.2857 1.2857s-1.2857-.5888-1.2857-1.2857c0-.6969.5889-1.2857 1.2857-1.2857z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonsqs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.164 13.58 1.287-1.27a.425.425 0 0 0 .002-.603L7.166 10.42l-.608.601.552.552H5.147v.852h1.97l-.557.55Zm9.82.04 1.715-1.28a.427.427 0 0 0 0-.682l-1.716-1.277-.515.682.686.51H15.44v.853h1.715l-.686.511ZM9.945 12c0 .905-.156 1.758-.449 2.5a7.07 7.07 0 0 1 2.511-.445c.87 0 1.74.148 2.51.445a6.855 6.855 0 0 1-.448-2.5c0-.905.157-1.757.449-2.5-1.543.593-3.479.593-5.022 0 .293.743.45 1.595.45 2.5Zm-2.1 4.136a.424.424 0 0 1 0-.602c.778-.774 1.243-2.095 1.243-3.534 0-1.439-.465-2.76-1.244-3.534a.424.424 0 0 1 0-.602.43.43 0 0 1 .607 0c1.662 1.65 5.45 1.65 7.113 0a.43.43 0 0 1 .732.301.42.42 0 0 1-.126.301c-.778.774-1.243 2.095-1.243 3.534 0 1.439.465 2.76 1.243 3.534a.424.424 0 0 1 0 .602.43.43 0 0 1-.606 0c-1.662-1.65-5.451-1.65-7.113 0a.43.43 0 0 1-.607 0Zm15.299-4.134c0-.397-.155-.77-.438-1.051a1.495 1.495 0 0 0-1.058-.435c-.383 0-.766.145-1.058.435a1.481 1.481 0 0 0 0 2.102c.583.58 1.532.58 2.116 0 .283-.28.438-.654.438-1.05Zm.168 1.654a2.354 2.354 0 0 1-1.664.684 2.354 2.354 0 0 1-1.664-.684 2.33 2.33 0 0 1 0-3.308 2.366 2.366 0 0 1 3.328 0 2.33 2.33 0 0 1 0 3.308ZM3.85 12.012a1.491 1.491 0 0 0-1.496-1.487 1.493 1.493 0 0 0-1.496 1.487c0 .397.155.77.437 1.051.566.561 1.551.561 2.116 0 .283-.281.439-.654.439-1.051Zm.168 1.654a2.354 2.354 0 0 1-1.665.684 2.355 2.355 0 0 1-1.664-.684 2.332 2.332 0 0 1 0-3.308 2.367 2.367 0 0 1 3.329 0 2.33 2.33 0 0 1 0 3.308Zm14.367 4.7a9.034 9.034 0 0 1-6.41 2.639 9.033 9.033 0 0 1-6.41-2.638c-1.175-1.166-1.82-2.56-2.156-3.524l-.81.28c.364 1.047 1.07 2.566 2.36 3.846a9.888 9.888 0 0 0 7.016 2.888 9.888 9.888 0 0 0 7.016-2.888 10.234 10.234 0 0 0 2.43-3.848l-.812-.276a9.37 9.37 0 0 1-2.224 3.522ZM3.407 9.158l-.81-.28c.52-1.484 1.358-2.851 2.363-3.849a9.887 9.887 0 0 1 7.014-2.885 9.885 9.885 0 0 1 7.014 2.885 10.497 10.497 0 0 1 2.43 3.85l-.809.279a9.628 9.628 0 0 0-2.228-3.526 9.03 9.03 0 0 0-6.407-2.636 9.03 9.03 0 0 0-6.408 2.636c-.914.909-1.681 2.161-2.159 3.526Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmazonwebservices (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.763 10.036c0 .296.032.535.088.71.064.176.144.368.256.576.04.063.056.127.056.183 0 .08-.048.16-.152.24l-.503.335a.383.383 0 0 1-.208.072c-.08 0-.16-.04-.239-.112a2.47 2.47 0 0 1-.287-.375 6.18 6.18 0 0 1-.248-.471c-.622.734-1.405 1.101-2.347 1.101-.67 0-1.205-.191-1.596-.574-.391-.384-.59-.894-.59-1.533 0-.678.239-1.23.726-1.644.487-.415 1.133-.623 1.955-.623.272 0 .551.024.846.064.296.04.6.104.918.176v-.583c0-.607-.127-1.03-.375-1.277-.255-.248-.686-.367-1.3-.367-.28 0-.568.031-.863.103-.295.072-.583.16-.862.272a2.287 2.287 0 0 1-.28.104.488.488 0 0 1-.127.023c-.112 0-.168-.08-.168-.247v-.391c0-.128.016-.224.056-.28a.597.597 0 0 1 .224-.167c.279-.144.614-.264 1.005-.36a4.84 4.84 0 0 1 1.246-.151c.95 0 1.644.216 2.091.647.439.43.662 1.085.662 1.963v2.586zm-3.24 1.214c.263 0 .534-.048.822-.144.287-.096.543-.271.758-.51.128-.152.224-.32.272-.512.047-.191.08-.423.08-.694v-.335a6.66 6.66 0 0 0-.735-.136 6.02 6.02 0 0 0-.75-.048c-.535 0-.926.104-1.19.32-.263.215-.39.518-.39.917 0 .375.095.655.295.846.191.2.47.296.838.296zm6.41.862c-.144 0-.24-.024-.304-.08-.064-.048-.12-.16-.168-.311L7.586 5.55a1.398 1.398 0 0 1-.072-.32c0-.128.064-.2.191-.2h.783c.151 0 .255.025.31.08.065.048.113.16.16.312l1.342 5.284 1.245-5.284c.04-.16.088-.264.151-.312a.549.549 0 0 1 .32-.08h.638c.152 0 .256.025.32.08.063.048.12.16.151.312l1.261 5.348 1.381-5.348c.048-.16.104-.264.16-.312a.52.52 0 0 1 .311-.08h.743c.127 0 .2.065.2.2 0 .04-.009.08-.017.128a1.137 1.137 0 0 1-.056.2l-1.923 6.17c-.048.16-.104.263-.168.311a.51.51 0 0 1-.303.08h-.687c-.151 0-.255-.024-.32-.08-.063-.056-.119-.16-.15-.32l-1.238-5.148-1.23 5.14c-.04.16-.087.264-.15.32-.065.056-.177.08-.32.08zm10.256.215c-.415 0-.83-.048-1.229-.143-.399-.096-.71-.2-.918-.32-.128-.071-.215-.151-.247-.223a.563.563 0 0 1-.048-.224v-.407c0-.167.064-.247.183-.247.048 0 .096.008.144.024.048.016.12.048.2.08.271.12.566.215.878.279.319.064.63.096.95.096.502 0 .894-.088 1.165-.264a.86.86 0 0 0 .415-.758.777.777 0 0 0-.215-.559c-.144-.151-.416-.287-.807-.415l-1.157-.36c-.583-.183-1.014-.454-1.277-.813a1.902 1.902 0 0 1-.4-1.158c0-.335.073-.63.216-.886.144-.255.335-.479.575-.654.24-.184.51-.32.83-.415.32-.096.655-.136 1.006-.136.175 0 .359.008.535.032.183.024.35.056.518.088.16.04.312.08.455.127.144.048.256.096.336.144a.69.69 0 0 1 .24.2.43.43 0 0 1 .071.263v.375c0 .168-.064.256-.184.256a.83.83 0 0 1-.303-.096 3.652 3.652 0 0 0-1.532-.311c-.455 0-.815.071-1.062.223-.248.152-.375.383-.375.71 0 .224.08.416.24.567.159.152.454.304.877.44l1.134.358c.574.184.99.44 1.237.767.247.327.367.702.367 1.117 0 .343-.072.655-.207.926-.144.272-.336.511-.583.703-.248.2-.543.343-.886.447-.36.111-.734.167-1.142.167zM21.698 16.207c-2.626 1.94-6.442 2.969-9.722 2.969-4.598 0-8.74-1.7-11.87-4.526-.247-.223-.024-.527.272-.351 3.384 1.963 7.559 3.153 11.877 3.153 2.914 0 6.114-.607 9.06-1.852.439-.2.814.287.383.607zM22.792 14.961c-.336-.43-2.22-.207-3.074-.103-.255.032-.295-.192-.063-.36 1.5-1.053 3.967-.75 4.254-.399.287.36-.08 2.826-1.485 4.007-.215.184-.423.088-.327-.151.32-.79 1.03-2.57.695-2.994z\"},\"child\":[]}]})(props);\n};\nexport function SiAmd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.324 9.137l1.559 1.56h2.556v2.557L24 14.814V9.137zM2 9.52l-2 4.96h1.309l.37-.982H3.9l.408.982h1.338L3.432 9.52zm4.209 0v4.955h1.238v-3.092l1.338 1.562h.188l1.338-1.556v3.091h1.238V9.52H10.47l-1.592 1.845L7.287 9.52zm6.283 0v4.96h2.057c1.979 0 2.88-1.046 2.88-2.472 0-1.36-.937-2.488-2.747-2.488zm1.237.91h.792c1.17 0 1.63.711 1.63 1.57 0 .728-.372 1.572-1.616 1.572h-.806zm-10.985.273l.791 1.932H2.008zm17.137.307l-1.604 1.603v2.25h2.246l1.604-1.607h-2.246z\"},\"child\":[]}]})(props);\n};\nexport function SiAmeba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.575 9.815c0-.653.624-1.161 1.429-1.161s1.429.508 1.429 1.16c0 .653-.624 1.162-1.429 1.162s-1.429-.509-1.429-1.161zM16.107 0c-.303.008-.603.155-.875.467-.397.46-1.111 1.268-1.6 1.748-.641.624-1.056.765-1.626.765-.57 0-.978-.132-1.629-.765-.488-.47-1.212-1.287-1.6-1.748-.435-.49-.94-.566-1.42-.336-.398.192-.624.585-.652 1.2a55.63 55.63 0 0 0-.002 1.423c.004.73.007 1.534-.008 2.014-.027.96-.099 1.543-.496 2.378-.335.71-.876 1.91-.931 3.512a19.72 19.72 0 0 0 .08 2.516c.052.634.098 1.202.054 1.9-.072 1.113-.48 1.66-1.066 2.065l-.078.052c-.728.503-1.133.783-1.36 1.358-.163.423-.163 1.026.317 1.285.307.164.678.136 1.058-.027.075-.032.15-.069.225-.104.22-.106.436-.21.652-.195.226.01.407.143.434.527.036.403.208.567.488.567.226 0 .435-.163.598-.604l.084-.242c.123-.361.217-.64.44-.64.29.01.351.334.37.794.027.662-.207 1.172-.67 1.623-.532.518-.93 1.009-.785 1.65.1.453.57.75 1.31.788.76.029 1.99.038 2.84.02.797-.02 1.258-.385 1.348-.874.057-.29.002-.482-.052-.666-.048-.164-.096-.32-.057-.533.045-.25.263-.356.498-.356s.46.106.496.356c.034.208-.01.362-.058.523-.054.187-.112.381-.05.676.1.48.552.844 1.348.873.85.02 2.08.01 2.83-.03.742-.037 1.212-.335 1.311-.786.145-.643-.251-1.124-.785-1.65-.46-.453-.697-.96-.67-1.622.018-.46.09-.787.371-.797.225-.008.32.275.443.645.026.076.052.156.082.238.162.441.37.606.596.606.28 0 .452-.175.488-.569.036-.393.217-.517.434-.527.216-.014.432.09.652.195.075.036.152.072.227.104.389.163.749.19 1.057.027.498-.26.499-.863.336-1.285-.232-.587-.642-.867-1.409-1.39l-.03-.02c-.589-.403-.995-.952-1.067-2.065-.044-.699.002-1.266.054-1.9.056-.682.118-1.44.08-2.514-.054-1.593-.594-2.803-.93-3.513-.397-.825-.47-1.42-.497-2.38a71.47 71.47 0 0 1-.006-2.013c.003-.597.005-1.142-.004-1.414-.018-.605-.254-.997-.643-1.2a1.147 1.147 0 0 0-.545-.13Zm-7.6 7.08h.032c.335 0 .615.287.615.652 0 .355-.27.653-.615.653a.63.63 0 0 1-.613-.653c0-.343.254-.634.582-.652zm6.929 0h.033c.334 0 .613.287.613.652 0 .355-.27.653-.613.653a.63.63 0 0 1-.615-.653c0-.343.253-.634.582-.652zm-3.442 1.246c1.447 0 2.488.346 3.483 1.248.687.624 1.14 1.862.597 2.783-.262.47-.769.846-1.375.903-.805.077-1.302-.23-1.619-.604-.307-.356-.633-.691-1.094-.691-.46 0-.786.334-1.093.69-.317.374-.824.682-1.62.605a1.803 1.803 0 0 1-1.375-.903c-.515-.93-.071-2.169.616-2.783 1.004-.902 2.033-1.248 3.48-1.248Zm.01 6.278c1.574 0 2.867 1.363 2.867 3.042 0 1.68-1.284 3.043-2.867 3.043-1.582 0-2.867-1.363-2.867-3.043 0-1.68 1.285-3.042 2.867-3.042z\"},\"child\":[]}]})(props);\n};\nexport function SiAmericanairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .244h3.264c1.377 0 1.942.563 2.499 1.116.637.58 2.57 3.196 6.657 8.303H7.997c-1.809 0-2.38-.308-3.08-1.375zm10.424 17.072l-2.427-4.013c-.292-.455-.372-.854-.372-1.318 0-.51.217-.79 1.053-1.233.973-.466 2.933-.67 4.954-.67 3.283 0 4.07 1.055 4.405 2.192 0 0-.464-.185-1.554-.185-3.459 0-6.223 1.68-6.223 4.221 0 .534.164 1.006.164 1.006zm4.936-3.417c-2.547.089-5.032 1.869-4.936 3.416l2.7 4.486c.836 1.344 2.215 1.955 3.932 1.955H24l-8.13-9.852a5.55 5.55 0 0 0-.51-.005Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmericanexpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.015 14.378c0-.32-.135-.496-.344-.622-.21-.12-.464-.135-.81-.135h-1.543v2.82h.675v-1.027h.72c.24 0 .39.024.478.125.12.13.104.38.104.55v.35h.66v-.555c-.002-.25-.017-.376-.108-.516-.06-.08-.18-.18-.33-.234l.02-.008c.18-.072.48-.297.48-.747zm-.87.407l-.028-.002c-.09.053-.195.058-.33.058h-.81v-.63h.824c.12 0 .24 0 .33.05.098.048.156.147.15.255 0 .12-.045.215-.134.27zM20.297 15.837H19v.6h1.304c.676 0 1.05-.278 1.05-.884 0-.28-.066-.448-.187-.582-.153-.133-.392-.193-.73-.207l-.376-.015c-.104 0-.18 0-.255-.03-.09-.03-.15-.105-.15-.21 0-.09.017-.166.09-.21.083-.046.177-.066.272-.06h1.23v-.602h-1.35c-.704 0-.958.437-.958.84 0 .9.776.855 1.407.87.104 0 .18.015.225.06.046.03.082.106.082.18 0 .077-.035.15-.08.18-.06.053-.15.07-.277.07zM0 0v10.096L.81 8.22h1.75l.225.464V8.22h2.043l.45 1.02.437-1.013h6.502c.295 0 .56.057.756.236v-.23h1.787v.23c.307-.17.686-.23 1.12-.23h2.606l.24.466v-.466h1.918l.254.465v-.466h1.858v3.948H20.87l-.36-.6v.585h-2.353l-.256-.63h-.583l-.27.614h-1.213c-.48 0-.84-.104-1.08-.24v.24h-2.89v-.884c0-.12-.03-.12-.105-.135h-.105v1.036H6.067v-.48l-.21.48H4.69l-.202-.48v.465H2.235l-.256-.624H1.4l-.256.624H0V24h23.786v-7.108c-.27.135-.613.18-.973.18H21.09v-.255c-.21.165-.57.255-.914.255H14.71v-.9c0-.12-.018-.12-.12-.12h-.075v1.022h-1.8v-1.066c-.298.136-.643.15-.928.136h-.214v.915h-2.18l-.54-.617-.57.6H4.742v-3.93h3.61l.518.602.554-.6h2.412c.28 0 .74.03.942.225v-.24h2.177c.202 0 .644.045.903.225v-.24h3.265v.24c.163-.164.508-.24.803-.24h1.89v.24c.194-.15.464-.24.84-.24h1.176V0H0zM21.156 14.955c.004.005.006.012.01.016.01.01.024.01.032.02l-.042-.035zM23.828 13.082h.065v.555h-.065zM23.865 15.03v-.005c-.03-.025-.046-.048-.075-.07-.15-.153-.39-.215-.764-.225l-.36-.012c-.12 0-.194-.007-.27-.03-.09-.03-.15-.105-.15-.21 0-.09.03-.16.09-.204.076-.045.15-.05.27-.05h1.223v-.588h-1.283c-.69 0-.96.437-.96.84 0 .9.78.855 1.41.87.104 0 .18.015.224.06.046.03.076.106.076.18 0 .07-.034.138-.09.18-.045.056-.136.07-.27.07h-1.288v.605h1.287c.42 0 .734-.118.9-.36h.03c.09-.134.135-.3.135-.523 0-.24-.045-.39-.135-.526zM18.597 14.208v-.583h-2.235V16.458h2.235v-.585h-1.57v-.57h1.533v-.584h-1.532v-.51M13.51 8.787h.685V11.6h-.684zM13.126 9.543l-.007.006c0-.314-.13-.5-.34-.624-.217-.125-.47-.135-.81-.135H10.43v2.82h.674v-1.034h.72c.24 0 .39.03.487.12.122.136.107.378.107.548v.354h.677v-.553c0-.25-.016-.375-.11-.516-.09-.107-.202-.19-.33-.237.172-.07.472-.3.472-.75zm-.855.396h-.015c-.09.054-.195.056-.33.056H11.1v-.623h.825c.12 0 .24.004.33.05.09.04.15.128.15.25s-.047.22-.134.266zM15.92 9.373h.632v-.6h-.644c-.464 0-.804.105-1.02.33-.286.3-.362.69-.362 1.11 0 .512.123.833.36 1.074.232.238.645.31.97.31h.78l.255-.627h1.39l.262.627h1.36v-2.11l1.272 2.11h.95l.002.002V8.786h-.684v1.963l-1.18-1.96h-1.02V11.4L18.11 8.744h-1.004l-.943 2.22h-.3c-.177 0-.362-.03-.468-.134-.125-.15-.186-.36-.186-.662 0-.285.08-.51.194-.63.133-.135.272-.165.516-.165zm1.668-.108l.464 1.118v.002h-.93l.466-1.12zM2.38 10.97l.254.628H4V9.393l.972 2.205h.584l.973-2.202.015 2.202h.69v-2.81H6.118l-.807 1.904-.876-1.905H3.343v2.663L2.205 8.787h-.997L.01 11.597h.72l.26-.626h1.39zm-.688-1.705l.46 1.118-.003.002h-.915l.457-1.12zM11.856 13.62H9.714l-.85.923-.825-.922H5.346v2.82H8l.855-.932.824.93h1.302v-.94h.838c.6 0 1.17-.164 1.17-.945l-.006-.003c0-.78-.598-.93-1.128-.93zM7.67 15.853l-.014-.002H6.02v-.557h1.47v-.574H6.02v-.51H7.7l.733.82-.764.824zm2.642.33l-1.03-1.147 1.03-1.108v2.253zm1.553-1.258h-.885v-.717h.885c.24 0 .42.098.42.344 0 .243-.15.372-.42.372zM9.967 9.373v-.586H7.73V11.6h2.237v-.58H8.4v-.564h1.527V9.88H8.4v-.507\"},\"child\":[]}]})(props);\n};\nexport function SiAmg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9998 11.8942a.1216.1216 0 0 0-.127-.1271H21.607a.1216.1216 0 0 0-.1271.127v.1906a.1419.1419 0 0 0 .127.1482h1.419c.0847 0 .0847.0424.0847.1482v.0202c0 .1058 0 .1271-.0847.1271h-2.901a.1216.1216 0 0 1-.1271-.127v-.8248a.1216.1216 0 0 1 .127-.1271h3.7267a.1216.1216 0 0 0 .127-.1271v-.3177a.1216.1216 0 0 0-.127-.127h-4.616a.1216.1216 0 0 0-.127.127v2.054a.1216.1216 0 0 0 .127.127h4.616a.1216.1216 0 0 0 .127-.127v-1.1645m-7.3686.5505a.316.316 0 0 1-.1906.0847h-.5929a.316.316 0 0 1-.1907-.0847l-1.1221-.72c-.0635-.0423-.1271-.0212-.1271.0635v1.207a.1216.1216 0 0 1-.1271.1271h-.593a.1419.1419 0 0 1-.148-.127v-2.054c0-.0847.0633-.127.148-.127h.6353a.5067.5067 0 0 1 .1906.0633l1.5247.9953a.1587.1587 0 0 0 .1905 0l1.5245-.9953a.2961.2961 0 0 1 .1907-.0634h.6353a.1216.1216 0 0 1 .1269.1271v2.054a.1216.1216 0 0 1-.1269.127h-.5929a.1419.1419 0 0 1-.1484-.127v-1.2071q0-.1271-.127-.0635zm-6.6066-1.0165c-.0424 0-.0634.0203-.1058.0636l-.36.4662c-.0213.0424 0 .0635.0203.0635h2.6045c.0847 0 .0847-.0424.0847-.1058v-.318c0-.1059 0-.1482-.0847-.1482h-2.159zm-1.5245 1.7152h-.7631a.0713.0713 0 0 1-.0635-.1058L9.2825 10.92a.2145.2145 0 0 1 .1483-.0847h3.515a.1638.1638 0 0 1 .1482.1694v2.0116a.1216.1216 0 0 1-.127.1271h-.593a.1216.1216 0 0 1-.127-.127V12.72c0-.0847 0-.106-.0848-.106H9.0717a.1419.1419 0 0 0-.1271.0847v.0203l-.2329.2963a.3677.3677 0 0 1-.2329.1271zm-1.5458 0a.3217.3217 0 0 0 .2117-.127l1.5881-2.054c.0636-.0847.0203-.1482-.0424-.1482h-.3176a.2145.2145 0 0 0-.1482.0847l-1.6305 2.1174a.0716.0716 0 0 0 .0636.106h.2753zm-1.101 0a.322.322 0 0 0 .2116-.127l1.5881-2.054c.0634-.0847.0213-.1482-.0424-.1482h-.4447a.2145.2145 0 0 0-.1482.0847L5.366 13.0163a.0716.0716 0 0 0 .0636.106h.4024zm-1.8 0a.0713.0713 0 0 1-.0635-.1058L5.599 10.92a.214.214 0 0 1 .1482-.0847h.6563c.0847 0 .106.0636.0424.1484l-1.5883 2.054a.2888.2888 0 0 1-.2116.127h-.6142zm-1.5034 0a.0713.0713 0 0 1-.0634-.1058L4.0957 10.92a.2145.2145 0 0 1 .1482-.0847h.8681c.0847 0 .1058.0636.0424.1484l-1.5881 2.054a.2888.2888 0 0 1-.2118.127h-.8258zm-2.4563 0a.0713.0713 0 0 1-.0634-.1058L1.6394 10.92a.2145.2145 0 0 1 .1482-.0847h1.9268c.0847 0 .106.0636.0424.1484l-1.5881 2.054a.2888.2888 0 0 1-.2116.127H.072Z\"},\"child\":[]}]})(props);\n};\nexport function SiAmp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.628 0 12 5.373 12 12s-5.372 12-12 12C5.373 24 0 18.627 0 12S5.373 0 12 0zm-.92 19.278l5.034-8.377a.444.444 0 00.097-.268.455.455 0 00-.455-.455l-2.851.004.924-5.468-.927-.003-5.018 8.367s-.1.183-.1.291c0 .251.204.455.455.455l2.831-.004-.901 5.458z\"},\"child\":[]}]})(props);\n};\nexport function SiAmul (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.794 11.772c-.104-.443-.546-1.492-.786-1.796-.04-.031-.062-.046-.078-.068l-.718 1.748s.375.091.796.148c.271.03.558.03.786-.032zm17-1.593v3.536c0 .7-.282.59-.385.613l1.209 1.018L24 14.236c-.014-.086-.063-.171-.124-.195-.475.294-.443-.302-.443-.302V9.527c0-.528-.933-1.097-1.285-.986l-1.304 1.297c.015.054.06.162.203.186.61-.56.747 0 .747.155zm-5.576 2.184v1.5c0 .528-.2.428-.348.488.412.218.972.668 1.454 1.011l1.446-.916 1.073.94 1.266-1.236s-.016-.18-.17-.171c-.444.436-.575-.288-.575-.288v-1.833c0-.801-1.028-.98-1.244-.972l-1.035 1.01a.4.4 0 00.194.165c.484-.382.567.17.567.17v1.5c-.014.62-1.14.847-1.14.008v-2.09c-.095-.576-.912-.895-1.028-.794l-1.181.972c.055.093.06.204.207.187.523-.367.514.349.514.349zm-7.805-.287v1.632c0 .45-.334.442-.44.465l1.274 1.104 1.227-1.08a.487.487 0 00-.115-.178c-.203.107-.357.046-.357-.22v-1.654c.108-.512.838-.397.838-.047v1.696c-.018.34-.156.488-.31.535l1.156.956 1.243-1.043c-.02-.085-.02-.16-.129-.2-.124.008-.357.25-.357-.288v-1.617c.256-.653.885-.31.91.055v1.516c-.009.357-.074.583-.366.683l1.204.94 1.276-1.15c0-.077-.11-.157-.15-.178-.419.364-.396-.095-.402-.165v-2.09c-.017-.365-.7-1.125-1.61-.783l-.91.668c-.484-.824-1.19-.847-1.378-.8-.308.044-.962.838-1.038.713-.288-.713-1.053-.728-1.209-.706l-1.07.924c.054.117.141.132.2.155.289-.17.485-.132.513.157zm-5.571.491l-.334.906.79.506c.112.071.253.024.476-.18l.157.157c-.357.41-.73.8-1.096 1.212-.482-.442-1.05-.877-1.594-.877-.628.013-1.213.62-.606 1.717.017.022-.094.138-.156.09-.465-.395-.652-1.482-.286-2.095.256-.397.72-.785 1.513-.693l.313-.85c-.287-.113-.598 0-.988.308.132-.67.551-1.136 1.412-1.252l.882-2.114c-.467-.187-.903.04-1.12.436-.132-.017-.225-.063-.25-.147l.903-1.68c.44-.153.817-.153 1.151-.048 1.376.436 2.067 2.76 3.098 5.325.095.248.221.271.516-.046l.21.186-1.86 1.85-.856-2.558c0 .022-.417.125-1.107.063a5.65 5.65 0 01-1.168-.216z\"},\"child\":[]}]})(props);\n};\nexport function SiAna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.11 8.975l-3.454 6.05h3.432l3.455-6.05zm3.933 0l-3.455 6.05h.959L24 8.975zm-10.01.781H14.8l.403 5.27h-1.31l-.025-.58a.206.206 0 0 0-.202-.227h-1.867l.429-.757h1.21c.151 0 .328.026.328-.202l-.202-2.37c0-.15-.126-.226-.227-.075L11.193 15h-.882zm-9.983 0h1.74l.353 5.27h-1.31l-.026-.58a.226.226 0 0 0-.227-.227H1.563l.429-.757h1.386c.151 0 .328.026.328-.202l-.151-2.37c0-.15-.126-.226-.227-.075L.882 15H0zm3.278 0h1.79l1.16 4.084c.05.126.15.101.176 0l.756-4.084h.782l-.933 5.27H8.244l-1.135-4.034c-.025-.101-.151-.127-.176 0l-.706 4.033h-.832Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnaconda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.045.033a12.181 12.182 0 00-1.361.078 17.512 17.513 0 011.813 1.433l.48.438-.465.45a15.047 15.048 0 00-1.126 1.205l-.178.215a8.527 8.527 0 01.86-.05 8.154 8.155 0 11-4.286 15.149 15.764 15.765 0 01-1.841.106h-.86a21.847 21.848 0 00.264 2.866 11.966 11.967 0 106.7-21.89zM8.17.678a12.181 12.182 0 00-2.624 1.275 15.506 15.507 0 011.813.43A18.551 18.552 0 018.17.678zM9.423.75a16.237 16.238 0 00-.995 1.998 16.15 16.152 0 011.605.66 6.98 6.98 0 01.43-.509c.234-.286.472-.559.716-.817A15.047 15.048 0 009.423.75zM4.68 2.949a14.969 14.97 0 000 2.336c.587-.065 1.196-.1 1.812-.107a16.617 16.617 0 01.48-1.748 16.48 16.481 0 00-2.292-.481zM3.62 3.5A11.938 11.938 0 001.762 5.88a17.004 17.004 0 011.877-.444A17.39 17.391 0 013.62 3.5zm4.406.287c-.143.437-.265.888-.38 1.347a8.255 8.255 0 011.67-.803c-.423-.2-.845-.38-1.29-.544zM6.3 6.216a14.051 14.052 0 00-1.555.108c.064.523.157 1.038.272 1.554a8.39 8.391 0 011.283-1.662zm-2.55.137a15.313 15.313 0 00-2.602.716h-.078v.079a17.104 17.105 0 001.267 2.544l.043.071.072-.049a16.309 16.31 0 011.734-1.083l.057-.035V8.54a16.867 16.868 0 01-.408-2.094v-.092zM.644 8.095l-.063.2A11.844 11.845 0 000 11.655v.209l.143-.152a17.706 17.707 0 011.584-1.447l.057-.043-.043-.064a16.18 16.18 0 01-1.025-1.87zm3.77 1.253l-.18.1c-.465.273-.93.573-1.375.889l-.065.05.05.064c.309.437.645.867.996 1.276l.137.165v-.208a8.176 8.176 0 01.364-2.15zM2.2 10.853l-.072.05a16.574 16.574 0 00-1.813 1.734l-.058.058.066.057a15.449 15.45 0 001.991 1.483l.072.05.043-.08a16.738 16.74 0 011.053-1.64v-.05l-.043-.05a16.99 16.99 0 01-1.19-1.54zm1.855 2.071l-.121.172a15.363 15.363 0 00-.917 1.433l-.043.072.071.043a16.61 16.61 0 001.562.766l.193.086-.086-.193a8.04 8.04 0 01-.66-2.172zm-3.976.48v.2a11.758 11.759 0 00.946 3.326l.078.186.072-.194a16.215 16.216 0 01.845-2l.057-.063-.064-.043a17.197 17.198 0 01-1.776-1.284zm2.543 1.805l-.035.08a15.764 15.765 0 00-.983 2.479v.08h.086a16.15 16.152 0 002.688.5l.072.007v-.086a17.562 17.563 0 01.164-2.056v-.065H4.55a16.266 16.266 0 01-1.849-.896zm2.544 1.169v.114a17.254 17.255 0 00-.151 1.828v.078h.931c.287 0 .624.014.946 0h.209l-.166-.129a8.011 8.011 0 01-1.64-1.834zm-3.29 2.1l.115.172a11.988 11.988 0 002.502 2.737l.157.129v-.201a22.578 22.58 0 01-.2-2.336v-.071h-.072a16.23 16.23 0 01-2.3-.387z\"},\"child\":[]}]})(props);\n};\nexport function SiAnalogue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.468 12.804a5.145 5.145 0 10-.644 10.27 5.145 5.145 0 00.644-10.27zm17.841 2.562L16.45 3.484a5.146 5.146 0 00-8.912 5.15l6.86 11.878a5.148 5.148 0 007.031 1.885 5.146 5.146 0 001.881-7.031z\"},\"child\":[]}]})(props);\n};\nexport function SiAndela (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.999 4.586 13.956.511A3.94 3.94 0 0 0 12 0c-.713 0-1.378.183-1.946.511L2.982 4.586a4.013 4.013 0 0 0-1.917 3.42v7.997a3.99 3.99 0 0 0 1.927 3.421l7.014 4.046c.587.337 1.262.53 1.994.53.723 0 1.407-.193 1.994-.53l6.937-4.008a4.008 4.008 0 0 0 2.004-3.468V7.997a4.003 4.003 0 0 0-1.936-3.411Zm.298 7.534h-.038c-5.039.02-9.143 4.143-9.143 9.182a.117.117 0 0 1-.116.116.118.118 0 0 1-.116-.116v-.038c-.019-5.039-4.143-9.144-9.181-9.144a.116.116 0 0 1-.116-.115c0-.068.058-.116.116-.116h.038c5.039-.019 9.143-4.143 9.143-9.182 0-.067.058-.115.116-.115.067 0 .116.058.116.115 0 5.059 4.114 9.182 9.181 9.182.068 0 .116.058.116.116.01.067-.048.115-.116.115Z\"},\"child\":[]}]})(props);\n};\nexport function SiAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.4395 5.5586c-.675 1.1664-1.352 2.3318-2.0274 3.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451 1.1451 0 0 0-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886 1.5019 1.9466 3.3696-.0966-.2158 1.9473 3.3593.0172.031-.4946.2642-1.3926 1.0177C2.8987 12.176.452 14.772 0 18.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048 12.1048 0 0 0-2.1309-1.6875c.6594-1.122 1.312-2.2559 1.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001 1.1001 0 0 0-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391 8.461c.3944.5926.324 1.3306-.1563 1.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315 1.1812-.1086 1.582.4941zM7.207 13.5273c.4803.3197.5506 1.0577.1563 1.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021 1.1087-.8106 1.584-.4941z\"},\"child\":[]}]})(props);\n};\nexport function SiAndroidauto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.6 0-1.11.32-1.39.8L.48 18.4a1.6 1.6 0 0 0 1.39 2.4h2l7.7-13.58.43-.77 8.13 14.35h2a1.6 1.6 0 0 0 1.39-2.4L13.39.8A1.6 1.6 0 0 0 12 0zm0 7.47l-9.07 16 .54.53L12 20.8l8.53 3.2.54-.53z\"},\"child\":[]}]})(props);\n};\nexport function SiAndroidstudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.2693 10.3368c-.3321 0-.6026.2705-.6026.6031v9.8324h-1.7379l-3.3355-6.9396c.476-.5387.6797-1.286.5243-2.0009a2.2862 2.2862 0 0 0-1.2893-1.6248v-.8124c.0121-.2871-.1426-.5787-.4043-.7407-.1391-.0825-.2884-.1234-.4402-.1234a.8478.8478 0 0 0-.4318.1182c-.2701.1671-.4248.4587-.4123.7662l-.0003.721c-1.0149.3668-1.6619 1.4153-1.4867 2.5197a2.282 2.282 0 0 0 .5916 1.2103l-3.2096 6.9064H4.0928c-1.0949-.007-1.9797-.8948-1.9832-1.9896V5.016c-.0055 1.1024.8836 2.0006 1.9859 2.0062a2.024 2.024 0 0 0 .1326-.0037h14.7453s2.5343-.2189 2.8619 1.5392c-.2491.0287-.4449.2321-.4449.4889 0 .7115-.5791 1.2901-1.3028 1.2901h-.8183zM17.222 22.5366c.2347.4837.0329 1.066-.4507 1.3007-.1296.0629-.2666.0895-.4018.0927a.9738.9738 0 0 1-.3194-.0455c-.024-.0078-.046-.0209-.0694-.0305a.9701.9701 0 0 1-.2277-.1321c-.0247-.0192-.0495-.038-.0724-.0598-.0825-.0783-.1574-.1672-.21-.2757l-1.2554-2.6143-1.5585-3.2452a.7725.7725 0 0 0-.6995-.4443h-.0024a.792.792 0 0 0-.7083.4443l-1.5109 3.2452-1.2321 2.6464a.9722.9722 0 0 1-.7985.5795c-.0626.0053-.1238-.0024-.185-.0087-.0344-.0036-.069-.0053-.1025-.0124-.0489-.0103-.0954-.0278-.142-.0452-.0301-.0113-.0613-.0197-.0901-.0339-.0496-.0244-.0948-.0565-.1397-.0889-.0217-.0156-.0457-.0275-.0662-.045a.9862.9862 0 0 1-.1695-.1844.9788.9788 0 0 1-.0708-.9852l.8469-1.8223 3.2676-7.0314a1.7964 1.7964 0 0 1-.7072-1.1637c-.1555-.9799.5129-1.9003 1.4928-2.0559V9.3946a.3542.3542 0 0 1 .1674-.3155.3468.3468 0 0 1 .3541 0 .354.354 0 0 1 .1674.3155v1.159l.0129.0064a1.8028 1.8028 0 0 1 1.2878 1.378 1.7835 1.7835 0 0 1-.6439 1.7836l3.3889 7.0507.8481 1.7643zM12.9841 12.306c.0042-.6081-.4854-1.1044-1.0935-1.1085a1.1204 1.1204 0 0 0-.7856.3219 1.101 1.101 0 0 0-.323.7716c-.0042.6081.4854 1.1044 1.0935 1.1085h.0077c.6046 0 1.0967-.488 1.1009-1.0935zm-1.027 5.2768c-.1119.0005-.2121.0632-.2571.1553l-1.4127 3.0342h3.3733l-1.4564-3.0328a.274.274 0 0 0-.2471-.1567zm8.1432-6.7459l-.0129-.0001h-.8177a.103.103 0 0 0-.103.103v12.9103a.103.103 0 0 0 .0966.103h.8435c.9861-.0035 1.7836-.804 1.7836-1.79V9.0468c0 .9887-.8014 1.7901-1.7901 1.7901zM2.6098 5.0161v.019c.0039.816.6719 1.483 1.4874 1.4869a12.061 12.061 0 0 1 .1309-.0034h1.1286c.1972-1.315.7607-2.525 1.638-3.4859H4.0993c-.9266.0031-1.6971.6401-1.9191 1.4975.2417.0355.4296.235.4296.4859zm6.3381-2.8977L7.9112.3284a.219.219 0 0 1 0-.2189A.2384.2384 0 0 1 8.098 0a.219.219 0 0 1 .1867.1094l1.0496 1.8158a6.4907 6.4907 0 0 1 5.3186 0L15.696.1094a.2189.2189 0 0 1 .3734.2189l-1.0302 1.79c1.6671.9125 2.7974 2.5439 3.0975 4.4018l-12.286-.0014c.3004-1.8572 1.4305-3.488 3.0972-4.4003zm5.3774 2.6202a.515.515 0 0 0 .5271.5028.515.515 0 0 0 .5151-.5151.5213.5213 0 0 0-.8885-.367.5151.5151 0 0 0-.1537.3793zm-5.7178-.0067a.5151.5151 0 0 0 .5207.5095.5086.5086 0 0 0 .367-.1481.5215.5215 0 1 0-.734-.7341.515.515 0 0 0-.1537.3727z\"},\"child\":[]}]})(props);\n};\nexport function SiAngular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.712 17.711H7.288l-1.204 2.916L12 24l5.916-3.373-1.204-2.916ZM14.692 0l7.832 16.855.814-12.856L14.692 0ZM9.308 0 .662 3.999l.814 12.856L9.308 0Zm-.405 13.93h6.198L12 6.396 8.903 13.93Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnilist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 17.53v2.421c0 .71-.391 1.101-1.1 1.101h-5l-.057-.165L11.84 3.736c.106-.502.46-.788 1.053-.788h2.422c.71 0 1.1.391 1.1 1.1v12.38H22.9c.71 0 1.1.392 1.1 1.101zM11.034 2.947l6.337 18.104h-4.918l-1.052-3.131H6.019l-1.077 3.131H0L6.361 2.948h4.673zm-.66 10.96-1.69-5.014-1.541 5.015h3.23z\"},\"child\":[]}]})(props);\n};\nexport function SiAnimalplanet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18.814 5.94-.494.858c2.605.509 4.118 1.618 4.118 2.917 0 .865-.649 1.696-1.762 1.696-1.699 0-2.949-2.673-2.949-2.673-.356-.011-.993-.026-.993-.026s-1.822-2.342-4.595-3.168v3.798c.244.205.559.499.855.863-1.252-.757-2.552-1.317-4.847-1.317-2.496 0-5.547 1.007-7.242 3.763l.178.322c.773-.873 1.968-1.402 2.006-1.416C1.424 13.012.469 15.427 0 16.998l1.456 1.457a10.687 10.687 0 0 1 8.055-3.588c2.77 0 5.582 1.157 7.534 3.157l1.577-1.579c-1.324-2.263-2.924-3.861-2.972-3.909.068.031 1.487.85 3.975.85 2.312 0 4.375-1.285 4.375-3.203 0-2.292-1.965-3.745-5.186-4.243\"},\"child\":[]}]})(props);\n};\nexport function SiAnkermake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.35 10.462 3.075 3.122c.187.187.187.42 0 .606l-3.122 3.123c-.186.186-.42.186-.606 0L8.575 14.19c-.187-.186-.187-.419 0-.606l3.169-3.122c.186-.186.419-.186.606 0Zm-1.585-1.584c.14.186.14.419-.047.605l-3.122 3.123c-.186.186-.419.186-.606 0l-1.724-1.724v12.675H0V.443h2.33l8.435 8.435ZM21.717.443H24v23.114h-5.266V10.882l-1.724 1.724c-.187.186-.42.186-.606 0l-3.122-3.123c-.187-.186-.187-.419 0-.605L21.717.443Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15.845 22.627-.169.131-.182.091c-.109.042-.23.069-.362.079-.27.021-.611-.036-.989-.16-.686-.223-1.537-.67-2.256-.973-.343-.145-.633-.281-.829-.254-.197.027-.44.236-.73.467-.611.486-1.311 1.145-1.91 1.546-.331.22-.644.368-.91.42-.13.026-.255.032-.37.021l-.201-.038-.196-.082-.177-.119-.143-.145a1.3 1.3 0 0 1-.187-.32c-.104-.25-.154-.593-.154-.99.001-.721.164-1.669.23-2.447.031-.37.07-.687-.016-.866-.087-.178-.359-.345-.67-.55-.65-.431-1.494-.893-2.06-1.34-.312-.246-.548-.498-.681-.735a1.3 1.3 0 0 1-.134-.345l-.025-.202.016-.213.059-.205.094-.18c.064-.097.145-.191.246-.277.207-.175.517-.33.895-.452.685-.222 1.637-.361 2.397-.539.362-.084.676-.145.819-.281.144-.138.217-.45.316-.808.209-.752.387-1.696.638-2.373.138-.373.305-.676.489-.874.091-.098.187-.176.286-.235l.185-.086.207-.051.214-.006.2.033c.113.03.226.079.339.148.231.143.473.389.706.711.424.584.85 1.446 1.253 2.114.192.318.347.598.522.692.174.094.494.068.865.052.78-.034 1.734-.157 2.455-.128.397.017.736.081.983.195.12.055.223.123.31.201l.14.148.112.181.072.201.03.202c.007.115-.005.238-.036.368-.063.263-.223.57-.457.891-.425.583-1.113 1.254-1.623 1.845-.244.281-.463.514-.498.71-.035.194.089.49.219.838.273.731.684 1.601.879 2.295.108.382.151.725.119.995-.015.131-.049.252-.095.358l-.098.179zm-1.54-18.929c-.018-.057-.07-.226-.122-.346-.17-.387-.418-.846-.544-1.216-.166-.483-.099-.88.102-1.096.201-.214.592-.308 1.086-.177.377.1.851.316 1.249.458.125.044.297.084.354.096.047-.032.193-.134.291-.221.316-.282.675-.659.988-.894.408-.305.807-.366 1.074-.241.266.124.476.468.504.977.021.391-.037.909-.049 1.331-.004.132.011.309.017.366.046.035.187.142.301.209.365.213.835.438 1.155.662.417.294.597.655.56.947-.035.293-.296.599-.773.782-.365.141-.875.246-1.28.364-.126.037-.29.106-.343.129-.019.056-.077.223-.105.351-.091.413-.159.93-.274 1.304-.151.487-.438.77-.727.826s-.661-.098-.983-.494c-.246-.303-.504-.756-.742-1.105-.074-.11-.19-.243-.229-.287-.058-.001-.235-.004-.366.009-.421.042-.933.135-1.324.141-.51.008-.867-.177-1.011-.435-.142-.257-.11-.659.167-1.088.212-.328.563-.713.822-1.047.08-.104.171-.256.202-.305\"},\"child\":[]}]})(props);\n};\nexport function SiAnsible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.617 11.473l4.686 3.695-3.102-7.662zM12 0C5.371 0 0 5.371 0 12s5.371 12 12 12 12-5.371 12-12S18.629 0 12 0zm5.797 17.305c-.011.471-.403.842-.875.83-.236 0-.416-.09-.664-.293l-6.19-5-2.079 5.203H6.191L11.438 5.44c.124-.314.427-.52.764-.506.326-.014.63.189.742.506l4.774 11.494c.045.111.08.234.08.348-.001.009-.001.009-.001.023z\"},\"child\":[]}]})(props);\n};\nexport function SiAnswer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.486 0c-1.92 0-2.881 0-3.615.373A3.428 3.428 0 0 0 .373 1.871C-.001 2.605 0 3.566 0 5.486v9.6c0 1.92 0 2.88.373 3.613.329.645.853 1.17 1.498 1.498.734.374 1.695.375 3.615.375h11.657V24l.793-.396c2.201-1.101 3.3-1.652 4.105-2.473a6.852 6.852 0 0 0 1.584-2.56C24 17.483 24 16.251 24 13.79V5.486c0-1.92 0-2.881-.373-3.615A3.428 3.428 0 0 0 22.129.373C21.395-.001 20.434 0 18.514 0H5.486zm1.371 10.285h10.286a5.142 5.142 0 0 1-10.286.024v-.024z\"},\"child\":[]}]})(props);\n};\nexport function SiAnsys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.0424 10.089l-.993 2.4233-.9932-2.4233h-1.227l1.6066 3.921-.7039 1.7179h1.227l2.3104-5.639zm4.667 2.1272c-.1936-.1936-.5004-.3377-.9209-.4332l-.6984-.1599c-.1678-.0447-.2858-.0923-.3531-.143-.0673-.0506-.101-.1207-.101-.2101 0-.1232.0562-.2186.1683-.2859.112-.0673.2664-.101.4628-.101.426 0 .858.1513 1.2954.4542l.3362-.841c-.2241-.1627-.4767-.2886-.757-.3784a2.8304 2.8304 0 0 0-.8663-.1347c-.3476 0-.6576.0562-.9292.1683-.2724.112-.4826.2665-.631.4624-.1485.1964-.223.4237-.223.6814 0 .3254.0939.582.282.7696.1876.188.4806.3267.8789.4165l.673.1517c.2075.0447.3492.0954.4248.1512.076.0562.1136.1346.1136.2356 0 .1124-.0546.2007-.1639.2648-.1092.0645-.262.0966-.4584.0966-.2748 0-.5468-.042-.816-.1259-.2692-.0843-.5163-.2019-.7403-.3531l-.3366.8745c.23.1628.5032.2875.8204.3746.3167.0867.6655.1302 1.0471.1302.555 0 .991-.1136 1.3081-.3408.3167-.2273.4751-.5397.4751-.938-.0008-.331-.0974-.593-.2906-.7866zm-9.3815-.4332l-.698-.1599c-.1682-.0447-.2862-.0923-.3535-.143-.0669-.0506-.1006-.1207-.1006-.2101 0-.1232.0558-.2186.168-.2859.112-.0673.2664-.101.4627-.101.426 0 .858.1513 1.2955.4542l.3365-.841c-.2245-.1627-.4767-.2886-.757-.3784a2.8323 2.8323 0 0 0-.8663-.1347c-.348 0-.6576.0562-.9296.1683-.272.112-.4822.2665-.6306.4624-.1489.1964-.223.4237-.223.6814 0 .3254.0943.582.282.7696.1876.188.481.3267.8793.4165l.673.1517c.2075.0447.3488.0954.4248.1512.0756.0562.1137.1346.1137.2356 0 .1124-.0546.2007-.164.2648-.1092.0645-.2624.0966-.4584.0966-.2748 0-.5468-.042-.816-.1259-.2688-.0843-.5159-.2019-.7403-.3531l-.3362.8745c.2297.1628.5032.2875.82.3746.3167.0867.6659.1302 1.0471.1302.5551 0 .991-.1136 1.3081-.3408.3168-.2273.4751-.5397.4751-.938 0-.3305-.0966-.593-.2902-.7862-.1944-.194-.5012-.3381-.922-.4336zM9.823 9.9828c-.2918 0-.5539.059-.7863.1766-.2328.1176-.422.2886-.5677.5131v-.5887H7.2325v4.1301h1.27v-2.3133c0-.2803.08-.5048.24-.673.1595-.1683.3713-.2526.635-.2526.219 0 .3797.0645.4838.1936.1037.129.1556.3337.1556.614v2.431h1.27v-2.49c0-.5831-.1207-1.019-.3618-1.308-.2415-.2882-.6089-.4328-1.1022-.4328zM4.4334 8.4594l-.8176 1.9954 1.5381 3.7544h1.7262zm-.3726-.1873H2.4325L0 14.2091h1.6284z\"},\"child\":[]}]})(props);\n};\nexport function SiAnta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 15.2372a20.744 20.744 0 0 0-9.86-7.5087 31.2657 31.2657 0 0 1 6.9097 1.0135l-1.5536-1.3192A29.1614 29.1614 0 0 0 9.0497 5.509a29.0797 29.0797 0 0 0-6.4051.7036L0 8.032c.335 0 .8376-.021 1.1747-.021a25.1537 25.1537 0 0 1 20.4571 10.48ZM9.1963 12.9758h3.3334l-.3329 1.183h-1.0532L9.9333 18.491H8.7692l1.206-4.3322H8.8655zm-3.771 0H6.468l.4376 2.9544.8229-2.9544h1.1977l-1.537 5.5152H6.221l-.4041-2.743-.7643 2.743H3.8841ZM0 18.491l2.8225-5.5131h1.181L3.769 18.491H2.5838l.0545-.7391H1.5264l-.3601.7391zm2.0206-1.8844h.6889l.2094-1.9474zm8.2122 1.8844 2.8288-5.5131h1.1768l-.2346 5.5131h-1.181l.0524-.7391h-1.1076l-.3644.7391zm2.0247-1.8844h.689l.2093-1.9474z\"},\"child\":[]}]})(props);\n};\nexport function SiAntdesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.4511 6.6808c.5091-.5064.5091-1.3316 0-1.838l-1.8729-1.873.0027.0027c-.4957-.4957-1.3478-1.3478-2.5535-2.5508-.568-.5547-1.487-.5493-2.0498.0134L.426 10.9787a1.4426 1.4426 0 0 0 0 2.047l10.549 10.541a1.4506 1.4506 0 0 0 2.0497 0l4.4238-4.4211c.509-.5064.509-1.3317 0-1.8381a1.3049 1.3049 0 0 0-1.8408 0l-3.3493 3.3546c-.1393.1394-.3564.1394-.4957 0l-8.4268-8.4188c-.1394-.1393-.1394-.3563 0-.4956L11.76 3.3289c.0107-.0108.0241-.0188.0349-.0295.1393-.1099.3322-.0992.4608.0295l3.3547 3.352c.509.509 1.3343.509 1.8407 0zm-8.2446 5.375a2.8482 2.8456 0 1 0 5.6965 0 2.8482 2.8456 0 1 0-5.6965 0zm14.3672-1.0343l-3.293-3.277c-.5092-.5063-1.3344-.5063-1.8408.0028a1.2968 1.2968 0 0 0 0 1.838l2.2239 2.2213c.1393.1393.1393.3564 0 .4957l-2.1918 2.189a1.2968 1.2968 0 0 0 0 1.8382 1.3049 1.3049 0 0 0 1.8408 0l3.2635-3.2609a1.445 1.445 0 0 0-.0026-2.047Z\"},\"child\":[]}]})(props);\n};\nexport function SiAntena3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.997 10.755a7.222 7.222 0 00-.997-.083c-.111 0-.497.008-.998.083-2.919.438-4.948 2.08-6.201 4.695-.641 1.336-.357 2.255.8 3.166.068.054.137.106.205.158.213.143.423.28.627.414 3.026 1.975 4.133 2.676 4.58 2.881.186.085.512.244.962.255h.048c.45-.011.777-.17.963-.255.446-.205 1.553-.907 4.579-2.882.205-.134.415-.272.629-.415a22.7 22.7 0 00.203-.156c1.157-.911 1.441-1.83.8-3.166-1.251-2.614-3.281-4.257-6.2-4.695zm7.252 4.36c.637.774 1.205.834 1.843.387.85-.597 1.894-2.857 1.908-4.724-.05-5.112-5.337-8.666-10.648-9.093-.212-.02-.534-.026-.777.153-.247.182-.292.457-.113.812.305.603.708 1.147 1.092 1.7 1.928 2.77 3.56 5.72 5.298 8.607.442.734.85 1.492 1.397 2.157zM5.148 12.956c1.738-2.886 3.37-5.837 5.297-8.607.385-.553.787-1.097 1.092-1.7.18-.355.135-.63-.113-.812-.243-.18-.565-.173-.777-.153C5.337 2.112.05 5.665 0 10.778c.013 1.867 1.057 4.128 1.908 4.724.638.447 1.206.387 1.843-.388.546-.665.954-1.423 1.397-2.157Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnthropic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.3041 3.541h-3.6718l6.696 16.918H24Zm-10.6082 0L0 20.459h3.7442l1.3693-3.5527h7.0052l1.3693 3.5528h3.7442L10.5363 3.5409Zm-.3712 10.2232 2.2914-5.9456 2.2914 5.9456Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnycubic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.762.534 8.728 3.481 8.469 7.449-6.494-.631L6.762.534Zm10.72 10.463 6.518.581-7.826 8.749-8.649 3.139 9.957-12.469ZM6.592.601l10.699 10.331L7.355 23.44 0 12.465 6.592.601Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnydesk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.322 3.677L0 12l8.322 8.323L16.645 12zm7.371.01l-1.849 1.85 6.49 6.456-6.49 6.49 1.85 1.817L24 11.993Z\"},\"child\":[]}]})(props);\n};\nexport function SiAnytype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.333 0h13.334A5.322 5.322 0 0 1 24 5.333v13.334A5.322 5.322 0 0 1 18.667 24H5.333A5.322 5.322 0 0 1 0 18.667V5.333A5.322 5.322 0 0 1 5.333 0Zm10.334 7.667v-3H6.344v3zm0 0v11.666h3V7.667ZM9.5 19.333a4.833 4.833 0 1 0 0-9.666 4.833 4.833 0 0 0 0 9.666z\"},\"child\":[]}]})(props);\n};\nexport function SiAol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.07 9.334c2.526 0 3.74 1.997 3.74 3.706 0 1.709-1.214 3.706-3.74 3.706-2.527 0-3.74-1.997-3.74-3.706 0-1.709 1.213-3.706 3.74-3.706m0 5.465c.9 0 1.663-.741 1.663-1.759 0-1.018-.763-1.759-1.663-1.759s-1.664.741-1.664 1.759c0 1.018.764 1.76 1.664 1.76m4.913-7.546h2.104v9.298h-2.104zm4.618 6.567a1.398 1.398 0 1 0 .002 2.796 1.398 1.398 0 0 0-.002-2.796M5.536 7.254H3.662L0 16.55h2.482l.49-1.343h3.23l.452 1.343H9.16zm-1.91 6.068L4.6 10.08l.974 3.242H3.626z\"},\"child\":[]}]})(props);\n};\nexport function SiApache (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.805 2.197v.066h.156v.44h.072v-.44h.156v-.066zm.9 0l-.175.353-.172-.353h-.087v.506h.067V2.3l.172.35h.045l.172-.35v.404h.066v-.506zm-4.257 1c-.204.31-.424.66-.66 1.06l-.04.062a44.457 44.457 0 00-1.265 2.29c-.187.36-.38.742-.577 1.146l2.267-.25c.66-.302.955-.578 1.242-.976a15.5 15.5 0 00.23-.342c.23-.363.46-.763.663-1.16.197-.386.37-.767.505-1.11.083-.22.15-.422.198-.6.042-.158.074-.307.1-.45-.884.15-1.965.295-2.668.33zM11.894 7.78l-.077.16c-.078.16-.157.32-.236.488-.086.18-.172.364-.26.552l-.132.287a75.265 75.265 0 00-1.427 3.3c-.163.397-.327.807-.493 1.23-.15.38-.297.765-.45 1.164l-.02.06c-.15.396-.3.802-.453 1.22l-.01.027.72-.08a.213.213 0 01-.042-.006c.863-.106 2.01-.75 2.75-1.547.342-.367.652-.8.94-1.306.213-.377.413-.795.604-1.258.168-.405.328-.843.48-1.318-.196.105-.423.18-.673.235a2.184 2.184 0 01-.273.046c.806-.31 1.314-.905 1.683-1.64a2.816 2.816 0 01-.968.428c-.06.012-.116.022-.174.03l-.043.006h.002c.278-.118.514-.248.718-.403a2.571 2.571 0 00.637-.698l.063-.104.077-.154a8.107 8.107 0 00.367-.85l.03-.088a3.04 3.04 0 00.123-.463.733.733 0 01-.094.065c-.243.145-.66.277-.996.34l.663-.074-.664.073h-.017l-.1.017c.006-.003.01-.006.017-.008l-2.265.25-.013.022zM8.27 16.45c-.117.323-.236.654-.355.992l-.005.015c-.016.046-.032.094-.05.142-.08.227-.15.432-.31.9.264.12.475.435.675.793a1.44 1.44 0 00-.466-.99c1.293.06 2.41-.27 2.99-1.217.05-.084.096-.173.14-.268-.26.333-.59.474-1.2.44 0 0-.004 0-.005.002l.004-.002c.9-.404 1.354-.79 1.754-1.433.094-.153.186-.32.28-.503-.788.81-1.702 1.04-2.664.865l-.72.078a6.43 6.43 0 00-.067.183zM15.42.112c-.376.222-1 .85-1.748 1.763l.686 1.294c.48-.687.97-1.307 1.462-1.836l.058-.062c-.02.02-.04.04-.057.062-.16.176-.644.74-1.375 1.863.703-.035 1.784-.18 2.666-.33.262-1.47-.258-2.142-.258-2.142s-.66-1.07-1.436-.61zm-3.084 6.402a40.253 40.253 0 011.306-2.26l.04-.064c.224-.352.45-.693.677-1.02l-.685-1.293-.157.192c-.197.245-.403.51-.613.79a39.853 39.853 0 00-2.016 2.97l-.022.038.893 1.763c.19-.378.38-.752.575-1.118zm-3.73 8.32c.158-.406.319-.81.483-1.225.156-.394.32-.79.484-1.19a91.133 91.133 0 011.6-3.604l.205-.424c.12-.243.237-.485.36-.724a.125.125 0 01.02-.04l-.895-1.763-.044.07c-.207.34-.414.687-.617 1.042a38.056 38.056 0 00-1.092 2.04l-.094.193a24.573 24.573 0 00-1.258 3.087 18.492 18.492 0 00-.52 1.997l.896 1.77c.117-.317.24-.638.364-.963zm-1.376-.476a13.38 13.38 0 00-.234 1.692c0 .02-.004.04-.005.06-.28-.45-1.03-.888-1.026-.884.537.778.944 1.55 1.005 2.31-.29.058-.684-.027-1.14-.195.475.436.83.556.97.588-.434.03-.89.328-1.346.67.668-.27 1.21-.38 1.596-.29-.61 1.74-1.23 3.655-1.843 5.69a.538.538 0 00.364-.354c.11-.368.84-2.786 1.978-5.965l.097-.27.028-.078c.12-.332.246-.672.374-1.02l.09-.237v-.004L7.24 14.3c-.003.02-.01.04-.012.06z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheairflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.195 16.822l4.002-4.102C23.55 10.308 23.934 5.154 24 .43a.396.396 0 0 0-.246-.373.392.392 0 0 0-.437.09l-6.495 6.658-4.102-4.003C10.309.45 5.154.066.43 0H.423a.397.397 0 0 0-.277.683l6.658 6.494-4.003 4.103C.45 13.692.065 18.846 0 23.57a.398.398 0 0 0 .683.282l6.494-6.657 3.934 3.837.17.165c2.41 2.353 7.565 2.737 12.288 2.803h.006a.397.397 0 0 0 .277-.683l-6.657-6.495zm-.409-9.476c.04.115.05.24.031.344-.17.96-1.593 2.538-4.304 3.87a.597.597 0 0 0-.08-.079c1.432-3.155 1.828-5.61 1.175-7.322l3.058 2.984.12.203zm-.131 9.44a.73.73 0 0 1-.347.031c-.96-.171-2.537-1.594-3.87-4.307a.656.656 0 0 0 .08-.078l-.001.001c3.155 1.432 5.61 1.83 7.324 1.174l-2.969 3.043M23.568.392a.05.05 0 0 1 .052-.011c.018.006.03.024.029.043-.065 4.655-.437 9.726-2.703 12.05-1.53 1.565-4.326 1.419-8.283-.377.006-.037.021-.07.02-.108 0-.044-.017-.082-.026-.123 2.83-1.39 4.315-3.037 4.506-4.115.057-.322-.009-.542-.102-.688l6.507-6.67V.392zM.393.43A.045.045 0 0 1 .382.38C.39.36.403.343.425.35c4.655.065 9.727.438 12.05 2.703l.002.002c1.56 1.527 1.415 4.323-.379 8.28-.033-.005-.062-.02-.097-.02h-.008c-.045.001-.084.019-.126.027-1.39-2.83-3.037-4.314-4.115-4.506-.323-.057-.542.01-.688.103L.393.43zm11.94 11.563a.331.331 0 0 1-.327.335H12a.332.332 0 0 1-.004-.661c.172.016.333.144.335.326h.002zm-5.12 4.661a.722.722 0 0 1-.03-.345c.17-.96 1.595-2.54 4.309-3.873.013.016.019.035.033.05.013.012.03.017.044.028-1.434 3.158-1.83 5.613-1.177 7.326l-3.041-2.967m-.006-9.659a.735.735 0 0 1 .345-.031c.961.17 2.54 1.594 3.871 4.306a.597.597 0 0 0-.079.08c-2.167-.983-4.007-1.484-5.498-1.484-.68 0-1.289.103-1.825.308L7.128 7.35M.43 23.607c-.018.018-.038.015-.052.01-.019-.007-.028-.021-.028-.043.065-4.654.437-9.725 2.703-12.049 1.527-1.565 4.325-1.419 8.286.378-.006.035-.02.067-.02.104 0 .043.018.083.026.124-2.831 1.391-4.317 3.04-4.51 4.117-.057.322.01.542.103.688L.43 23.607zm23.144.042c-4.655-.065-9.726-.437-12.05-2.703l-.005-.006c-1.56-1.526-1.412-4.322.383-8.279.033.005.064.02.098.02h.009c.043 0 .08-.018.122-.027 1.39 2.832 3.036 4.317 4.115 4.51.083.014.16.021.23.021a.776.776 0 0 0 .45-.133l6.68 6.516c.02.02.016.04.01.052a.042.042 0 0 1-.042.029z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.006 17.292c-.245.167-.534.36-.618.445-.148.147-.322.455-.452.643-.129.187-.486.268-.687.16-.2-.107-.12-.08.12-.147.163-.045.882-.646 1.401-1.101h.236zm2.434-5.4c-.23-.013-.444-.003-.589.047-.428.147-1.352.696-1.5 1.03-.12.276-.25.515-.263.815a1.386 1.386 0 0 0-.05.122l2.402-2.014zm17.41 1.711s-.309-.312-.576-.432c-.268-.121-.255-.242-.415-.255a2.398 2.398 0 0 1-.697-.174c-.24-.107-.923-.388-1.218-.549a4.102 4.102 0 0 1-.563-.348c-.08-.067-.214-.058-.468-.018 0 0-.724.165-.978.285-.14.067-.378.194-.579.309l.072.167c.08-.062.174-.121.28-.167.334-.148.655-.282 1.03-.309.375-.026.429-.053.429-.053s.174-.027.375.08c.2.107 1.393.71 1.567.777.174.067.442.188.63.335.186.147.334.134.334.134s.134.147.335.281c.2.134.267.2.388.228.12.026.362.151.054-.29zm-8.087 5.291c-.268-.093-.616-.32-.657-.388-.04-.067-.16-.12-.16-.12s-.359-.421-.573-.836c0 0-.043-.104-.11-.258h-.255c.193.23.436.567.668.86.255.322.11.354.19.354s.026.054.093.12c.067.068.429.282.523.349.093.067.482.2.535.16.054-.04.08-.173.08-.173s-.067.026-.334-.068zm-2.43-5.217a1.1 1.1 0 0 0 .058-.078c.197-.296.425-.53.54-.78.042.011.086.02.128.022.01.251.127.45.216.61.06.113.208.243.367.362a2.133 2.133 0 0 0-.249.053s-1.089.22-1.29.327c-.202.107-.37.248-.498.207-.128-.042.213-.16.509-.383a.562.562 0 0 0 .219-.34m.73-1.842a1.235 1.235 0 0 0-.279.075 1.198 1.198 0 0 0-.367-.333c.048-.107.101-.24.188-.362.134-.187.268-.187.308-.04.025.089.097.415.15.66m2.007 1.235c.134.016.134.05.268.25.134.201.167.469.067.57-.1.1-.218.133-.502-.252-.285-.385-.006-.59.167-.568m-7.527-2.685a9.952 9.952 0 0 0-.688.452l7.131-5.98h.086l3.24 7.59a2.985 2.985 0 0 0-.301.188s-.106 0-.146.05l-.015-.01c-.067-.04-.495-.455-.495-.455-.215-.188-.577-.576-.804-.764-.228-.187-1.145-.478-1.526-.441-.358.034-.526.267-.618.495a2.4 2.4 0 0 0-.24-.361l-.294-.349s-.241 0-.482.161c-.146.097-.351.318-.49.476a.432.432 0 0 0-.26.073c-.174.147-1.165.844-1.205 1.018-.025.108-.066.18-.119.22a.374.374 0 0 0-.417-.073l-.036.016c-.025-.483-.092-1.748-.125-1.877-.04-.16-.12-.281-.254-.214-.134.066-.255.254-.255.455 0 .2.08.308.108.388.022.067.044 1.06.09 1.448-.176.098-.338.219-.385.36-.094.281-.08.388-.16.469a.288.288 0 0 1-.045.033c-.058-.055-.125-.11-.177-.163-.028-.122-.036-.26.074-.325.134-.081.134-.603 0-.657l-.134-.053s.241-.898.188-1.406c-.054-.51-.108-1.045-.215-1.126-.107-.08-.335-.04-.335-.04s-.307.174-.696.402m2.852 4.888c.135 0 .228.147.228.147s-.013.255.175.308c.187.054.696-.187.816-.294.12-.107.362.16.469.388.107.228.67 1.179.87 1.406.05.057.104.122.16.193H3.817c.253-.172.524-.353.562-.407.066-.092 1.185-1.211 1.307-1.436a.673.673 0 0 0 .214-.158.594.594 0 0 0 .18-.04c.362-.147.937-.602 1.219-1.004a3.38 3.38 0 0 0 .384-.687c.15-.118.27-.202.312-.21.134-.027.348-.094.348.133 0 .228.228.723.429 1.018.2.295.468.536.468.536s-.013.12.121.134c.134.013.254-.027.281.04.065.161.348.04.482-.08.134-.121.188.08.375-.04a.543.543 0 0 0 .268-.496.283.283 0 0 0-.112-.224l.018-.017s.16.011.32-.04a.934.934 0 0 0 .002.28c.04.336.268.55.401.55m-7.097 1.54c-.088.088-.362.335-.677.608H0l3.988-3.343c-.083.366-.066.882.243 1.543 0 0 .241.147.616.107.083-.008.202-.012.335-.026-.329.428-.73.958-.884 1.11m13.78-3.896c.05-.042.155-.17.308-.295l2.05 4.8h-6.117a33.173 33.173 0 0 0-.312-.715c-.187-.415-.804-1.634-1.072-1.7a.953.953 0 0 0-.79.173c-.187.161-.267.107-.361.04-.094-.066.014-.227-.04-.455a1.699 1.699 0 0 0-.116-.326.17.17 0 0 0 .143-.116c.053-.147.04-.214.227-.187.028.004.07.007.12.008a.301.301 0 0 0-.043.114c-.006.15.114.422.291.488s.929.394 1.086.236c.158-.157.858-.54.982-.609.125-.068.354-.115.432-.098.079.017.24.6.515 1.099.276.498.23.707.41.637.18-.07.177.134.342.13.166-.006.196.11.292.295.097.186.198.414.437.452.238.038 1.185.284 1.293.226.11-.059.114-.208-.16-.268-.275-.06-.919-.063-1.062-.162-.143-.1-.179-.628-.33-.689-.15-.06-.38-.137-.409-.198-.024-.052-.563-1.007-.77-1.517.273.117.695.282.953.365.375.12 1.018.321 1.286.321.17 0 .237-.06.263-.103a.9.9 0 0 0 .045.103c.053.094.133.16.133.16s-.026.054.054.094.63.121.83.309c.201.187.483.549.51.883.026.335.24.697.347.71.108.013.228 0 .12-.455-.106-.456-.267-.817-.521-1.018-.255-.201-.911-.522-.991-.563-.08-.04-.187-.147-.228-.147-.04 0-.027-.04-.094-.268a4.004 4.004 0 0 1-.035-.132c.017-.045.08-.215.102-.444.027-.267-.094-.856-.2-1.004 0 0-.011-.094-.013-.171.033.016.066.019.093-.003M6.77 11.924a4.581 4.581 0 0 0-.189-.02l.764-.642c-.114.167-.544.623-.544.623l-.03.04m2.44 1.915c.09.09.165.314.242.422-.056.177-.072.26.093.315.201.067.375-.027.375-.027s.025.029.065.064c-.167.097-.324.206-.373.27-.08.108-.174.054-.174.054s-.321-.535-.455-1.031a1.886 1.886 0 0 0-.053-.166c.106.022.204.023.28.099m-.051-3.63c.12-.067.228-.04.201.16-.027.202-.16 1.019-.174 1.327-.013.307.013.937.013.937s-.167.116-.148.247c-.05-.01-.088-.015-.106-.02-.054-.013.107-.548-.094-.682-.2-.134-.576.013-.71.08-.108.054-.313.09-.387.103a.384.384 0 0 0-.188-.25c-.099-.05-.331-.112-.6-.159l.425-.457s.322-.027.55-.188c.227-.16 1.098-1.031 1.218-1.098m-1.134 3.057c-.095.047-.185.12-.284.194a.267.267 0 0 0-.015-.13.612.612 0 0 1-.023-.25c.066.04.2.124.322.186\"},\"child\":[]}]})(props);\n};\nexport function SiApachecassandra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.374 10.53a3.102 3.102 0 0 1-.428-.222l.555.143c0 .02-.01.036-.01.055l-.117.025zm-.283 1.506-.315.253.852-1.079-1.078.391c.002.017.009.033.009.05a.57.57 0 0 1-.184.42c.102.217.228.424.375.616a3.2 3.2 0 0 1 .34-.651zm.717-2.347-.652-.82a.427.427 0 0 1-.506.162c-.054.073-.083.162-.13.24l1.258.463c.011-.015.019-.031.03-.045zm-1.666.444c-.07.314-.087.637-.05.956a.566.566 0 0 1 .451.475l.946-.606c-.067-.022-.126-.06-.191-.088l-1.119-.08.64-.14a3.186 3.186 0 0 1-.668-.554l-.01.037zM20.1 11.648c-.164.202.833 1.022.833 1.022s-1.654-1.022-2.234-.72c-.278.144.574.811 1.175 1.242-.428-.274-.982-.571-1.175-.408-.328.277 1.565 2.549 1.565 2.549s-2.145-2.322-2.36-2.209c-.214.114.593 1.224.593 1.224s-1.06-1.16-1.35-.959c-.29.202 1.514 3.218 1.514 3.218s-1.956-3.091-2.763-2.574c1.268 2.782.795 3.18.795 3.18s-.162-2.839-1.742-2.764c-.795.038.379 2.12.379 2.12s-1.08-1.902-1.8-1.864c1.326 2.51.854 3.53.854 3.53s.219-2.143-1.58-3.336c.682.606-.427 3.336-.427 3.336s.976-4.023-.719-3.256c-.268.121-.019 2.007-.019 2.007s-.34-2.158-.851-2.045c-.298.066-1.893 2.99-1.893 2.99s1.306-3.16.908-3.027c-.29.096-.833 1.4-.833 1.4s.265-1.287 0-1.363c-.264-.075-1.74 1.363-1.74 1.363s1.097-1.287.908-1.552c-.287-.402-.623-.42-1.022-.265-.581.226-1.363 1.287-1.363 1.287s.78-1.074.643-1.476c-.219-.647-2.46 1.249-2.46 1.249s1.325-1.25 1.022-1.514c-.303-.265-1.947-.183-2.46-.185-1.515-.004-2.039-.36-2.498-.724 1.987.997 3.803-.151 6.094.494l.21.06c-1.3-.558-2.144-1.378-2.226-2.354-.036-.416.074-.827.297-1.222.619-.4 1.29-.773 2.06-1.095a4 4 0 0 0-.064.698c0 2.44 2.203 4.417 4.92 4.417s4.92-1.977 4.92-4.417c0-.45-.083-.881-.223-1.29 1.431.404 2.45.968 3.132 1.335.022.092.045.184.053.279.024.274-.018.547-.11.814.095-.147.198-.288.28-.445.367-.997 1.855.227 1.855.227s-1.085-.454-1.06-.24c.026.215 1.628.96 1.628.96s-1.45-.455-1.362-.114c.088.34 1.817 1.703 1.817 1.703s-1.956-1.489-2.12-1.287zm-7.268 2.65.042-.008-.06.01zM9.256 9.753c.12.13.26.234.396.343l.927-.029-1.064-.788c-.093.154-.195.303-.26.474Zm10.62 3.44c.3.215.54.373.54.373s-.24-.181-.54-.374zM7.507 8.617c-.14.229-.214.492-.215.76a3.99 3.99 0 0 0 2.358 3.64c0-.005.002-.01.003-.014a3.19 3.19 0 0 1-.58-.788c-.648.099-.926-.794-.336-1.08a3.174 3.174 0 0 1 .138-1.388 3.162 3.162 0 0 1-.52-1.36c-.296.07-.579.147-.848.23Zm1.488.82c.108-.24.243-.46.402-.661a.435.435 0 0 1 .568-.557c.077-.059.166-.099.248-.15a16.17 16.17 0 0 0-1.727.284c.114.388.272.76.509 1.084Zm2.285 3.928c1.4 0 2.633-.723 3.344-1.816a3.399 3.399 0 0 0-1.265-.539l-.297-.023.916.9-1.197-.467.704 1.078-1.074-.832-.012.006.347 1.278-.596-1.134-.098 1.33-.401-1.326-.472 1.261.114-1.359c-.006-.002-.01-.006-.015-.008l-.814 1.154.286-1.067c-.34.322-.605.713-.781 1.146.095.102.197.198.303.29.322.083.66.128 1.008.128zm10.145-4.434c.971-.567 1.716-1.955 1.716-1.955s-1.893 1.955-3.205 1.665c1.186-.934 1.766-2.549 1.766-2.549s-1.506 2.325-2.448 2.423c1.086-.959 1.54-2.322 1.54-2.322s-1.237 1.817-2.196 1.944c1.287-1.161 1.338-1.893 1.338-1.893s-1.781 2.302-2.499 1.943c.858-.934 1.439-2.12 1.439-2.12s-1.489 2.019-1.893 1.69c-.277-.05.454-.958.454-.958s-.908.807-1.16.606c.454-.278 1.236-1.64 1.236-1.64S16 7.505 15.621 7.304l.731-1.483s-.73 1.483-1.715 1.23c.454-.58.63-1.112.63-1.112s-.756 1.213-1.69.885c-.22-.077.273-.635.273-.635s-.626.61-1.055.534c-.43-.076.025-.858.025-.858s-.757 1.186-.908 1.136c-.152-.05.075-.833.075-.833s-.555.908-.858.858c-.302-.05 0-.934 0-.934s-.328.984-.58.909c-.252-.076-.303-.656-.303-.656s-.068.788-.429.858c-2.725.53-5.728 1.69-9.489 5.45C3.887 10.738 5.3 7.91 11.962 7.659c5.044-.191 7.399 2.137 8.177 2.17C22.51 9.93 24 7.633 24 7.633s-1.489 1.716-2.574 1.3zm-7.74.872-.608.464v.001l.054.003a3.35 3.35 0 0 0 .554-.468zm1.583-.426c0-.536-.237-.929-.594-1.217a3.178 3.178 0 0 1-.165.825.393.393 0 0 1-.328.681c-.154.233-.34.445-.549.63l.661.034-.995.237c-.025.018-.045.041-.07.058a3.194 3.194 0 0 1 1.536.691c.32-.574.504-1.235.504-1.94zM10.99 7.996a3.5 3.5 0 0 0-.785.46.427.427 0 0 1-.013.357l.885.643.023-.016-.36-1.262.627 1.12c.018-.006.04-.006.058-.011l-.02-1.251.398 1.163.477-1.15.016 1.268c.004.001.007.005.012.007l.713-1.005-.363 1.218.009.01 1.04-.69-.759 1.05.002.005.95-.34c.012-.016.028-.029.041-.045a.395.395 0 0 1 .394-.632 3.43 3.43 0 0 0 .27-.784 13.99 13.99 0 0 0-2.798-.168c-.286.011-.55.033-.817.053Z\"},\"child\":[]}]})(props);\n};\nexport function SiApachecloudstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.446 11.386c.326-.116 1.077-.462 1.228-1.23l-1.692-.114s-.458-.161-.705-.94c0 0-1.022-.55-.951-1.342 0 0 .158-.987 1.004-1.128 0 0 .882-.218 1.062 1.192 0 0 .415 1.194-.394 1.278 0 0-.175.385.46.402 0 0 .773.23 1.32-.229 0 0 .371-.341.812-.276 0 0 .095-.169-.09-.274 0 0-1.097-.939-1.289-2.267 0 0-.905-.126-1.018-.766 0 0-.211-.992.608-1.19 0 0 .522-.119.787 0 0 0 .667-1.817 2.57-2.128 0 0 1.573-.37 2.134.82 0 0 .232.647.106 1.19 0 0-.132.594.007.746 0 0 .509-.12.72.211.211.33.304 1.038-.119 1.203 0 0 .126.562-.297.945 0 0-1.342.78-1.725 1.44 0 0-.118.151-.178.204a1.354 1.354 0 01-.516.283s-.159.07-.337-.018c0 0-.053.265.245.311 0 0 .565-.078 1.18-.266l4.443-1.59s-.206-.555-.041-.826c0 0 .091-.144.174-.175.154-.059.338-.352.346-.581 0 0-.043-.58.373-.606 0 0 .4-.024.366.465l-.029.321s.61-.23.814.185c0 0 .412.836-.025 1.51 0 0-.643.633-1.489.235l-.29-.179s-5.168 2.14-5.228 2.28c0 0-.405.205-.707.753 0 0-1.037 1.85-1.572 2.34 0 0-.35.423-.601.528l.054.146c.347.037.601-.047.601-.047.965-.462 1.105-.106 1.105-.106.352.252.204.978.204.978 2.696 2.59-.204 5.128-.204 5.128-.455.198-.669 0-.669 0-.079-.119.67-.766.67-.766 1.368-1.64.156-3.412.156-3.412-2.023-2.18-4.05-.553-4.05-.553-.912 1.018-.78 2.128-.78 2.128-.159.317-.423.185-.423.185-.357-.423 0-1.533 0-1.533.529-1.23 1.652-1.732 1.652-1.732l.169-.136c.204-.935-.134-2.062-.134-2.062-.925-2.206-2.488-2.578-3.03-2.64.008.057.006.046-.001 0-.12-.013-.189-.012-.189-.012-2.317-.22-3.379 1.789-3.379 1.789-.62.55-.581 1.815-.581 1.815 1.524.343 1.898 1.295 1.898 1.295.106.396-.348.269-.348.269C5.22 13.69 4.51 13.635 4.51 13.635c-1.44-.26-2.414.664-2.414.664-.584.405-1.102 1.281-1.102 1.281C.157 17.06.68 18.472.68 18.472c.287 1.433 1.997 2.385 1.997 2.385.814.422 1.684.297 1.684.297.708-.162.544.211.544.211-.2.3-.469.304-.469.304-1.528.101-2.216-.414-2.216-.414C-1.195 19.11.347 15.59.347 15.59c1.6-3.119 4.19-2.458 4.19-2.458.052-.939.819-2.247.819-2.247 1.14-1.42 2.416-1.726 3.181-1.764l.004-.004s-.018-1.007.29-1.862c0 0 .16-.435.723-1.286.089-.134.37-.493.458-.82 0 0 .476-1.497-1.229-1.735 0 0-.543-.096-.898.19-.225.18-.437.286-.6.33 0 0-.806.277-.78-.238 0 0-.145-.767 1.68-.978 0 0 2.23-.383 2.49 1.388 0 0 .364 1.083-.958 2.709 0 0-.722 1.118-.557 2.334.045.007.068.013.068.013 2.326.404 3.211 2.212 3.211 2.212l.007.012zm.322.648l.797 1.602c1.387-.564 1.98-2.434 1.98-2.434.38-.942-.211-1.083-.211-1.083-.406-.106-.696.3-.696.3-.91 1.104-1.671 1.519-1.87 1.615zm4.284-8.153c-1.295-1.242-2.538.343-2.538.343-.766.978.08 2.353.08 2.353-.344.08-.503.317-.503.317-.237 1.19 1.11 2.009 1.11 2.009 1.031.687 1.666-.212 1.666-.212.264-.608 1.691-1.612 1.691-1.612.476-.476 0-1.004 0-1.004-.502-.357-.581-.978-.581-.978-.04-.529.04-1.176.04-1.176-.265-.476-.965-.04-.965-.04zm-3.714 1.19c-.08-.212-.35-.146-.35-.146-.535.099-.423.7-.423.7.04.417.476.483.476.483.013-.621.297-1.038.297-1.038zm4.943.468c-.06.126.066.212.066.212.177.117.343.324.343.324.08.072.205 0 .205 0 .17-.247-.125-.536-.125-.536-.198-.198-.49 0-.49 0zm-6.159 2.333s-.132-.674-.572-.86c0 0-.318-.083-.555.19 0 0-.437.445-.291.987 0 0 .251.595.916.718 0 0 .375.115.59-.454 0 0 .055-.176-.088-.581zm9.829-.328c.099.114.158.304.158.304.013.445.627.42.627.42.688.03.933-.4.933-.4.206-.357.127-1.049-.1-1.178-.228-.13-.732 0-.732 0 .122-.238.048-.615.048-.615-.044-.406-.386-.172-.386-.172-.206.154-.106.595-.106.595-.01.28-.372.405-.372.405-.276.283-.07.64-.07.64zm-5.92-1.962c-.01.12-.149.066-.149.066-.036-.26-.377-.323-.377-.323-.357.015-.356.28-.356.28-.199.123-.242-.056-.242-.056.116-.452.589-.36.589-.36.498.03.535.393.535.393zm.758.055s.027-.37.334-.44c0 0 .446-.143.64.256 0 0 .07.162.007.207 0 0-.14.051-.181-.192 0 0-.113-.22-.336-.173 0 0-.198.021-.248.23 0 0-.01.22-.216.112zm-1.676 1.235c.102-.062.247-.009.34.047.1.062.21.12.316.17.209.099.425.162.661.162.123 0 .254.012.374-.005.1-.014.203-.025.304-.035a.991.991 0 00.359-.096c.055-.029.11-.052.164-.084.05-.031.096-.072.144-.102.023-.014.082-.058.11-.053.035.006.069.103.06.136-.068.02-.133.074-.198.105-.09.044-.173.103-.255.16-.116.08-.252.192-.326.313-.173.283-.37.572-.656.749a.917.917 0 01-.495.119c-.166 0-.376-.03-.519-.12a.61.61 0 01-.29-.356c-.044-.158 0-.317 0-.478 0-.125.033-.31-.026-.42-.02-.038-.028-.027-.062-.057-.026-.022-.04-.065-.027-.113.002-.008.014-.043.022-.042zm1.291-.515a.137.137 0 01-.14.134.137.137 0 01-.14-.134c0-.074.062-.134.14-.134.077 0 .14.06.14.134zm.575-.023a.137.137 0 01-.14.134.137.137 0 01-.14-.134c0-.074.062-.134.14-.134.077 0 .14.06.14.134z\"},\"child\":[]}]})(props);\n};\nexport function SiApachecordova (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.545,0.545H5.455L0,9.273l2.182,14.182h3.886l-0.273-3.273h1.909l0.273,3.273 h8.045l0.273-3.273h1.909l-0.273,3.273h3.886L24,9.273L18.545,0.545z M18.545,18H5.455L4.364,9.273l2.182-4.364h3.506L9.818,6.545 h4.364l-0.234-1.636h3.506l2.182,4.364L18.545,18z M15.545,11.045c0.301,0,0.545,0.908,0.545,2.029 c0,1.121-0.244,2.029-0.545,2.029c-0.301,0-0.545-0.908-0.545-2.029C15,11.954,15.244,11.045,15.545,11.045z M8.659,11.215 c0.301,0,0.545,0.908,0.545,2.029c0,1.121-0.244,2.029-0.545,2.029c-0.301,0-0.545-0.908-0.545-2.029 C8.114,12.123,8.358,11.215,8.659,11.215z\"},\"child\":[]}]})(props);\n};\nexport function SiApachecouchdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5 14.625c0 .995-.524 1.482-1.5 1.5H6c-.976-.018-1.5-.505-1.5-1.5s.524-1.482 1.5-1.5h12c.976.018 1.5.505 1.5 1.5m-1.5 2.25H6c-.976.018-1.5.505-1.5 1.5s.524 1.482 1.5 1.5h12c.976-.018 1.5-.505 1.5-1.5s-.524-1.482-1.5-1.5m3.75-8.248v-.001c-.976.017-1.5.504-1.5 1.499v8.25c0 .995.524 1.482 1.5 1.5v-.002c1.464-.052 2.25-1.514 2.25-4.498v-3.75c0-1.99-.786-2.964-2.25-2.998m-19.5-.001C.786 8.662 0 9.637 0 11.626v3.75c0 2.984.786 4.446 2.25 4.498v.001c.976-.017 1.5-.504 1.5-1.499v-8.25c0-.995-.524-1.482-1.5-1.5m19.5-.75c0-2.486-1.31-3.705-3.75-3.748v-.002H6v.002c-2.44.043-3.75 1.262-3.75 3.748v.001c1.464.026 2.25.757 2.25 2.249s.786 2.223 2.25 2.249v.001h10.5v-.001c1.464-.026 2.25-.757 2.25-2.249s.786-2.223 2.25-2.249z\"},\"child\":[]}]})(props);\n};\nexport function SiApachedolphinscheduler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.9086 1.8777c-1.1454 0-2.073.982-2.073 2.1273 0 1.2.9276 2.1274 2.073 2.1274h8.3996c1.1454 0 2.072-.982 2.072-2.1274 0-1.1999-.9266-2.1273-2.072-2.1273zm-4.8545.8725v.9278C1.418 3.787 0 5.2052 0 6.9505c0 1.7999 1.3631 3.2182 3.1085 3.2182h.5454c.3272 0 .5454-.2182.5454-.5454 0-.3273-.2182-.5454-.5454-.5454h-.5454c-1.1454 0-2.0177-.9275-2.0177-2.1274 0-1.1454.8725-2.0728 1.9633-2.1273v1.1451l1.5276-1.5819Zm4.8545 4.6914c-1.1454 0-2.073.981-2.073 2.1263 0 1.1454.9276 2.1273 2.073 2.1273h8.3996c1.1454 0 2.072-.982 2.072-2.1273 0-1.1454-.9266-2.1263-2.072-2.1263zm12.4903 1.7992c-.3273 0-.5454.2182-.5454.5455 0 .3272.2181.5454.5454.5454h.5454c1.1454 0 2.0176.9274 2.0176 2.1273 0 1.1454-.8724 2.0728-1.9633 2.1274v-1.1452l-1.5276 1.4722 1.5276 1.6363v-.9268c1.6363-.0546 2.9998-1.4183 2.9998-3.2182.0546-1.7999-1.3088-3.1639-3.0541-3.1639zm-12.4903 3.818c-1.1454 0-2.073.982-2.073 2.1273 0 .4364.1097.8723.3824 1.1995l.491-.163c.5455-.2181 1.1448-.6549 1.5266-.9822.109-.0545.1638-.1084.2184-.163.0545-.0545.1093-.1094.2184-.164.3272-.2727.7633-.6004 1.4178-.7095h.3814c.5454 0 1.0363.1639 1.3636.4911.109-.0545.2181-.1084.2727-.163.1636-.0545.2733-.1638.3824-.2183.109-.0546.272-.1098.4357-.1098.3272 0 .6545.1639.8181.4911.1091.2182.2186.6006-.1086 1.2006-.0546.109-.1639.2177-.2184.3814-.1636.3272-.3812.6545-.7084 1.0908h3.5995c1.1454 0 2.072-.982 2.072-2.1274 0-1.1999-.9266-2.1816-2.072-2.1816zm-6.4396.0511a.1768.1768 0 0 0-.0511.0032c-.3273.109-.327.982.2184 1.582.4363.4908.8179.873.8724 1.2548.1636 1.5272.4915 2.3455 1.2006 3.2182.4908.6 1.1447.927 1.7992 1.1451.0546-.1636.0552-.3276.1097-.4367.0546-.1091.0544-.2184.0544-.2184l.2183.0554c-.109.5454-.382 1.6354-.491 1.8536-.1091.3272-.2734.7092.4357.491 1.1453-.3817 2.0725-1.4726 2.4543-2.727h.164c-.0545.3272-.1631.6549-.3813.9821.3273-.109.6543-.218.8725-.327.709-.3272 1.4176-.819 1.7449-1.1462 1.5272-1.4181 2.0724-2.5081 2.5087-3.2171.4363-.7636-.163-.9818-.4357-.8182-.3272.1091-.7636.4364-1.0908.5454-.2727-.4908-.8186-.7098-1.5276-.6008-.6.1091-.9818.4911-1.3636.7638-.2727.2182-1.1456.9279-1.8546 1.2006-.7636.3272-1.5268.272-2.0176.163-.2727-.0545-1.418-.5452-.5998-2.236.3818-.8181.3266-1.3631.163-1.4722-.2182-.1636-.8718.3812-1.3081.7084-.358-.2557-1.3879-.751-1.6949-.767Zm8.5126 2.7857c.1636 0 .2727.1634.2727.327 0 .1637-.109.2725-.2727.327-.1636 0-.2727-.1633-.2727-.327 0-.1636.109-.327.2727-.327zm.0543.1086c-.0545 0-.1097.0542-.1097.1087 0 .0545.0552.1097.1097.1097.0546 0 .1087-.0552.1087-.1097 0-.0545-.0541-.1087-.1087-.1087zm.2727 3.4366c-.2727.2182-.6545.4902-1.0908.7084.2727.1636.7631.4363.9268.5454.2727.2182.6001.382.491-.327-.0545-.3273-.1634-.654-.327-.9268z\"},\"child\":[]}]})(props);\n};\nexport function SiApachedruid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.932 20.806c-.369 0-.738.007-1.109 0-.35-.007-.587-.206-.623-.5a.587.587 0 0 1 .53-.636c.79-.062 1.582-.063 2.372-.003a.548.548 0 0 1 .522.602c-.024.326-.253.526-.616.54zM1.792 8.345c-.392 0-.782.008-1.173.002-.327-.006-.577-.22-.614-.512-.037-.293.146-.544.499-.615.192-.032.388-.045.583-.039a81.515 81.515 0 0 1 1.597 0c.163 0 .325.019.483.056.288.073.445.318.411.617-.034.298-.214.477-.515.487-.424.014-.848.004-1.272.004zm7.588 8.417H4.292a2.464 2.464 0 0 1-.326-.007c-.294-.04-.48-.209-.508-.506-.029-.298.11-.501.391-.606.179-.065.365-.051.549-.051 3.347 0 6.695.005 10.042-.006 1.174-.004 2.187-.439 2.993-1.3.69-.738 1.053-1.63 1.16-2.635.085-.788-.027-1.513-.516-2.156-.544-.718-1.28-1.078-2.163-1.082-3.163-.013-6.328-.005-9.487-.01-.336 0-.673-.027-1.007-.058-.29-.027-.45-.201-.469-.492-.021-.317.141-.545.429-.6a1.55 1.55 0 0 1 .29-.015h10.177c1.71.004 3.187 1.038 3.726 2.654.383 1.147.246 2.304-.182 3.416-.824 2.135-2.762 3.448-5.055 3.454-1.652.005-3.304 0-4.956 0zm2.906-13.568c1.533 0 3.066-.008 4.598 0 2.935.018 5.629 1.892 6.653 4.626.442 1.181.538 2.403.412 3.657-.185 1.842-.735 3.552-1.776 5.084-1.608 2.365-3.873 3.68-6.679 4.118-.95.148-1.905.13-2.86.13-.397 0-.61-.181-.633-.51-.025-.351.196-.621.587-.645.434-.026.87-.004 1.305-.016 2.641-.072 4.928-.982 6.74-2.935 1.269-1.37 1.912-3.039 2.13-4.878.151-1.275.135-2.544-.37-3.752-.773-1.85-2.159-2.983-4.068-3.509-.74-.204-1.5-.243-2.26-.247-2.837-.017-5.675-.007-8.511-.007-.12 0-.24.004-.359-.006a.57.57 0 0 1-.517-.536.557.557 0 0 1 .456-.557c.13-.018.261-.024.392-.019h4.762Z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheecharts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm-.792 5.307c2.192-.025 4.366 1.134 5.43 3.304.909 1.852.878 3.61-.098 5.645-.477.995-.487 1.06-.241 1.578.214.452.727.779 1.221.779.454 0 1.15-.586 1.252-1.054.1-.454-.193-1.118-.607-1.377a10.11 10.11 0 0 1-.393-.255c-.129-.1.42-.38.741-.38.687 0 1.247.526 1.375 1.29.055.333.134.422.44.502.859.222 1.297 1.451.755 2.116-.22.27-.23.271-.305.042-.267-.801-.666-1.12-1.403-1.12-.319 0-.572.128-1.098.556-1.006.82-1.866 1.303-2.907 1.632-1.276.384-2.752.478-4.086.156-2.162-.431-4.232-2.11-5.252-4.257C4.758 11.782 5.135 9 7.033 7.077a5.924 5.924 0 0 1 4.175-1.77Z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheflink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.192 13.236c.028.035.064.069.098.101l.024.022.008.004a.736.736 0 0 0 .179.065 8.117 8.117 0 0 1-.138-1.758c.027-.797.178-1.47.462-2.059a8.02 8.02 0 0 1 .315-.519s-.176 1.202-.202 1.673a7.104 7.104 0 0 0 .16 1.868l.072-.05c-.043-.389-.042-.8.004-1.22a6.987 6.987 0 0 1 .419-1.721 9.266 9.266 0 0 1 .973-1.892c-1.985.209-2.418 2.1-2.418 2.1s.017-.347.024-.434c.057-.649.123-.961.205-1.287-.13.238-.212.488-.271.688-.139.47-.216.949-.273 1.356a9.022 9.022 0 0 0-.096 1.289c.002.38.024.828.176 1.263.073.205.164.373.279.511zm1.44-.737c.179-.113.385-.2.626-.268.425-.119.889-.239 1.461-.379l.19-.046c.478-.116.974-.237 1.439-.415.283-.108.552-.25.824-.436.38-.26.721-.579 1.012-.951.154-.196.232-.349.309-.605l.114-.378s.464.519-.004 1.436c.297-.107.582-.413.798-.788.181-.315.491-1.451.491-1.451s.569.875-.105 2.011a1.59 1.59 0 0 0 .356-.227c2.507-2.49.349-3.899-.103-4.236a4.141 4.141 0 0 0-.982-.525L11 5.218c-.03-.013-.047-.033-.055-.042l-.321-.35.563.155c.079.021.154.042.228.064.614.182 1.082.4 1.472.686.445.325 2.142 1.751.348 3.837.556-.191 1.606-.772 1.962-1.272 1.713-2.405-.254-3.808-.17-3.808.019 0 .044.002.099.01a.44.44 0 0 0 .069.006c.036 0 .097-.006.109-.041.015-.042-.014-.122-.073-.168-.154-.117-.321-.202-.533-.169C12.926 4.4 12.3 3.85 12.3 3.85s2.482.129 2.562-.28a4.92 4.92 0 0 0-1.225-.912 6.697 6.697 0 0 0-2.228-.743c-1.207-.179-2.13.053-2.13.053.096-.121.574-.667 2.556-.511.802.063 1.564.316 2.27.669.182.091.29-.125.293-.223.004-.114.201.379.203.405.019-.049.096-.308.112-.308.047 0 .24.603.24.603.002-.024.257-.286.257-.286.076.343.066.514.047.562.002-.009.267-.172.267-.172s.152.638.412.891c.084.082.238.296.328.527.19-.133.421-.799.421-.799s.119.353.019.988c.007-.008.301-.219.301-.219s.042.449-.15 1.008a.572.572 0 0 0-.022.095c.162-.091.404-.388.404-.388l-.042.188c-.048.214-.137.629-.327.953a2.549 2.549 0 0 0-.29.686c.049-.045.099-.085.152-.12.1-.065.199-.117.293-.151l.232-.085c.392-.142.788-.309 1.173-.479.812-.359.631-.86.631-.86-.209.408-.966.816-.966.816s.98-.878.562-1.905c-.115.27-.224.538-.327.792-.144.353-.314.726-.59 1.055-.141.168-.286.29-.446.373a.686.686 0 0 1-.115.048l-.043.016s.172-.283.184-1.063c.004-.282.012-.571.012-.826v-.054c0-.132-.003-.263-.002-.395.005-.558.015-.982.132-1.373-.012-.022-.005-.045-.018-.068-.027-.046-.047-.099-.071-.157-.036-.089-.066-.178-.101-.275-.127-.36-.308-.538-.365-.588-.038.115-.271.591-.271.591s.001-.365-.001-.393c-.067-.511-1.33-.972-1.356-.988l.067.401s-.382-.028-.545-.284c-.034-.052-.084-.09-.13-.125l.09.306.093.214s-.296-.024-.435-.269c-.033-.057-.075-.121-.112-.189a.746.746 0 0 0-.574-.396 8.393 8.393 0 0 0-.601-.062 1.301 1.301 0 0 1-.479-.11L12.573 0l.046.087c.015.029.025.058.04.095l.008.022.032.078.048.172s-.353-.014-.765-.299c-.089-.062-.201-.062-.325-.072L11.622.08a4.192 4.192 0 0 0-.332-.014 3.097 3.097 0 0 0-.974.149c.035-.002.071-.003.106-.003l.067.001c.677.012.887.413.887.413s-.606 0-.785.023c-.209.027-.42.052-.616.106a5.102 5.102 0 0 0-1.622.796c-.124.088-.253.17-.389.256-.23.147-.424.341-.576.577a.357.357 0 0 0-.034.068c-.014.036-.008.039.015.051a.78.78 0 0 0 .168.061 2.353 2.353 0 0 1 1.786 2.005l.015.123c.035.307.072.623.056.944a3.413 3.413 0 0 1-.901 2.191c-.59.646-1.323.69-1.316.685.435-.406.722-.95.876-1.66a1.395 1.395 0 0 0-.084-.828.868.868 0 0 0-.016.047c-.097.276-.22.594-.447.857-.132.15-.312.322-.521.521-.911.867-2.435 2.317-2.409 4.623 0 .135.027.3.056.427zm13.967-5.836c-.113.098-.226.196-.341.292-.205.171-.351.28-.666.394-.276.099-.488-.124-.488-.124a1.3 1.3 0 0 0 .447-.389 7.968 7.968 0 0 0-1.154.71 2.41 2.41 0 0 0-.389.353c-.124.156-.205.318-.205.484v.002c0-.003.044-.005.053-.007a6.122 6.122 0 0 0 1.226-.49 16.006 16.006 0 0 0 1.757-1.074.334.334 0 0 1 .095-.048l.371-.106-.228.314a.288.288 0 0 1-.027.034c-.745.741-1.517 1.272-2.36 1.622a4.734 4.734 0 0 1-.492.174 9.201 9.201 0 0 0 1.513-.525c.537-.244.913-.483 1.22-.772.475-.45.814-.981 1.009-1.576a.732.732 0 0 0 .024-.1l-.111.033c-.127.037-.258.074-.373.13a2.367 2.367 0 0 0-.427.286c-.158.127-.321.269-.454.383zM1.578 14.987c.128.205.268.407.403.602l.021.031c-.351-1.236.223-1.982.223-1.982l.142.391c.036.101.091.199.167.302.147-.275.326-.538.534-.784a1.438 1.438 0 0 1-.472-.415c-.2-.264-.332-.581-.415-.996a5.507 5.507 0 0 1-.069-1.562c.015-.174.036-.348.059-.525a8.377 8.377 0 0 0-1.626 2.716.046.046 0 0 0 .003.021 9.438 9.438 0 0 0 1.03 2.201zM18.221 3.353a5.045 5.045 0 0 1 .366-1.933l.018-.041a.94.94 0 0 0-.246.252c-.168.242-.291.53-.397.932-.182.687-.29 1.427-.337 2.308.192-.205.507-.657.572-1.215.011-.094.024-.199.024-.303zm3.368 19.012c-.396-.065-1.234-.36-1.468-.945-.288.707.306 1.221.75 1.451.077.04.1.05.181.082.084.037-.165.494.045.704.21.21.409.148.487.148 0 0 .361.335.567.111.053-.058.098-.262.029-.385-.086-.152-.295-.124-.315-.124-.41.005-.373-.188-.311-.27.045-.059.132-.055.205-.055.017 0 .034.001.053.004.094.011.184.016.268.016.335 0 .726-.035.985-.179.186-.104.491-.456.475-.692-.017.006-.825.319-1.951.134zm2.324-7.785c-.038-.097-.085-.196-.126-.283l-.06-.126c-.021-.047-.044-.093-.066-.139-.055-.111-.112-.226-.151-.35-.034-.106-.043-.216-.052-.32a3.312 3.312 0 0 0-1.886-2.716 1.25 1.25 0 0 1-.215.417c-.09.12-.144.138-.262.138-.157 0-.18-.18-.133-.265a1.45 1.45 0 0 0 .196-.543c.033-.377-.177-.786-.435-1.068-.239-.261-.649-.564-.979-.663-.079.307.017.812.124 1.109.132.36.544 1.069.445 1.499 0 0-.029.275-.304.448-.153.096-.215.053-.215.053.294-.627.297-.891-.028-1.485-.245-.447-.358-.899-.27-1.398.003-.02.01-.04.014-.06a2.222 2.222 0 0 1-.088.199c-.25.439-.486.667-.628 1.121-.149.508.01 1.059.325 1.598a1.237 1.237 0 0 1-.553-.804 4.323 4.323 0 0 0-1.334 1.166c-.08.104-.175.191-.259.268a4.92 4.92 0 0 1-1.978 1.099c-.493.145-1.001.267-1.502.388l-.131.031c-.683.165-1.409.351-2.097.657-.792.352-1.42.757-1.918 1.239a4.412 4.412 0 0 0-1.326 2.593c-.114.781-.055 1.595.18 2.49.008.032-1.03-.941-.494-3.741a6.322 6.322 0 0 0-.236-.007l-.067.001c-1.933.058-2.737 1.123-2.737 1.123s.126-1.182 1.987-1.579c.14-.03 1.312-.293 1.352-.306.154-.314.341-.612.557-.889l-.166.026c-.319.05-.648.1-.975.143l-.252.03c-.577.074-1.174.149-1.74.316-.594.174-1.059.426-1.422.768-.389.366-.668.839-.852 1.442l-.023.086c-.013.05-.026.101-.045.151-.02.052-.024.11.018.22.348.923.945 1.723 1.774 2.376a7.587 7.587 0 0 0 2.146 1.18c.026.009.07.024.109.064l.348.337-.544-.13c-.064-.015-.127-.029-.191-.047-1.114-.306-2.085-.821-2.885-1.532-.273-.099-1.668-.794-2.26-1.936l-.099-.19s.757.746 1.288.855a5.59 5.59 0 0 1-.564-1.22.283.283 0 0 0-.049-.087C1.273 17.196.624 16.054.196 14.834a4.708 4.708 0 0 1-.085-.262c-.043.355-.064.71-.064 1.057 0 .11.955 2.647.955 2.647s-.42-.467-.768-1.059c0 0-.061-.199-.069-.212.149.897.439 1.74.863 2.521 1.167 2.147 2.956 3.554 5.47 4.212a7.73 7.73 0 0 0 1.955.255l7.855.007c.369 0 .652-.022.915-.07l.041-.007a1.47 1.47 0 0 1 .281-.034c.106.001.219.014.345.044l.062.015c.116.026.224.052.331.052 1.32.01 1.137-.785 1.137-.785-.055-.207-.295-.351-.557-.413a1.204 1.204 0 0 0-.28-.033c-.179 0-.367.041-.559.12l-.288.123-.172.075a1.317 1.317 0 0 1-.098.038.54.54 0 0 1-.17.036c-.199 0-.208-.195-.213-.312a.46.46 0 0 1 .169-.373c.093-.079.194-.156.302-.228.195-.132.396-.268.551-.446a1.49 1.49 0 0 0 .361-.699.825.825 0 0 0-.044-.469c-.014-.035-.027-.042-.04-.046a9.037 9.037 0 0 0-.368-.112c-.488-.137-.847-.342-1.127-.643a2.803 2.803 0 0 1-.439-.671 5.783 5.783 0 0 1-.416-1.096c-.159-.601-.536-1.083-1.15-1.472a3.536 3.536 0 0 0-1.557-.524c-.137-.015-.276-.021-.423-.028-.037-.002-.122-.013-.208-.024-.077-.01-.153-.021-.188-.022l-.21-.013s.054-.076.489-.242c.082-.031.167-.039.25-.054.201-.035.4-.053.59-.053.458 0 .891.106 1.288.314.494.26.888.656 1.206 1.211.173.302.309.626.416.992.021.07.038.14.058.216.035.134.071.271.122.396.307.756.876 1.198 1.69 1.315.216.031.426.046.626.046a3.48 3.48 0 0 0 1.077-.165c.455-.149.803-.382 1.062-.712a1.42 1.42 0 0 0 .255-.494l.035-.121.203.048c.043.011.086.021.13.03a.483.483 0 0 0 .094.009c.092 0 .186-.022.288-.044l.017-.004c.076-.017.15-.02.222-.023l.061-.003c.072 0 .132.048.159.093.031.053.081.083.175.104a.367.367 0 0 0 .075.007c.229 0 .47-.21.476-.416.003-.079-.018-.127-.07-.163-.041-.028-.083-.054-.131-.084l-.228-.143.152-.116a.245.245 0 0 1 .147-.051c.045 0 .085.013.12.028 0 0-.191-1.01-1.527-.716 0 0-.217.089-.328.131l-.052.02a.27.27 0 0 1-.101.019.358.358 0 0 1-.166-.047c-.468-.235-.926-.131-1.002-.131a2.28 2.28 0 0 1-.538-.059.222.222 0 0 1-.116-.067l-.086-.097a2.634 2.634 0 0 1-1.183-.197c-.436-.186-.784-.47-.995-.903a1.487 1.487 0 0 1-.15-.685l.026.067c.084.248.208.474.374.678.306.379.701.634 1.15.813.243.097.495.165.764.21 0 0 .955.036 1.38-.317.323-.18.614-.264.917-.264h.063c1.027-.001 1.118-.498 1.118-.498s.117.076.281.051a.666.666 0 0 0 .604-.63l-.34-.306-.072-.063-.134-.106.092-.105a.274.274 0 0 1 .207-.099c.046 0 .091.012.134.035.061.034.115.077.164.117l.051.04.064.05a.559.559 0 0 0-.036-.265zm-1.267-.273c-.038.106-.088.123-.199.099a.688.688 0 0 0-.181-.014c-.111.005-.221.024-.332.026-.277.005-.543-.045-.763-.225-.312-.256-.372-.559-.177-.943l.004.037a.745.745 0 0 0 .345.611c.18.121.385.17.595.196.17.021.338.05.487.142l.041.021a.043.043 0 0 1 .006-.007c-.029-.041-.039-.183-.024-.242a.565.565 0 0 0 .002-.297.622.622 0 0 1-.25.304.076.076 0 0 1-.053.02 2.53 2.53 0 0 1-.654-.233c-.186-.102-.283-.261-.234-.484a.198.198 0 0 0-.056-.189c-.023-.023-.043-.05-.067-.078.055-.051.102-.1.155-.143.05-.04.102-.078.158-.109.432-.245 1.016-.061 1.208.389.049.114.075.24.089.363.028.259-.013.511-.1.756zm-20.67 2.926c-.02-.237-.033-.474-.046-.756a.102.102 0 0 0-.021-.064c-.63-.909-1.089-1.696-1.446-2.476a7.292 7.292 0 0 1-.169-.394 7.748 7.748 0 0 0 1.682 3.694v-.004zm18.991 4.103c.176.117.395.203.732.287.34.085.653.125.966.125.185 0 .334-.019.47-.059a.81.81 0 0 0 .59-.639 6.03 6.03 0 0 0 .128-.713 1.798 1.798 0 0 0-.372-1.323c-.035.031-.07.061-.106.089a1.104 1.104 0 0 1-.198.121.658.658 0 0 1-.291.072.593.593 0 0 1-.281-.072.96.96 0 0 0-.461-.104c-.063 0-.131.005-.208.013-.027.003-.039.009-.054.04-.258.531-.683.908-1.298 1.154l-.017.007-.003.013a1.15 1.15 0 0 0-.001.454c.054.216.185.391.404.535zM14.99 9.512c-.516.525-1.141.958-1.964 1.364-.52.256-1.1.441-1.826.582-.415.081-.829.159-1.243.237l-.086.015-1.056.2c-.929.178-1.92.389-2.872.71-.691.234-1.224.481-1.677.779-.444.291-.75.591-.965.943a2.637 2.637 0 0 0-.146.291 5.696 5.696 0 0 1-.075.159.42.42 0 0 1-.076.114c-.484.473-.69 1.064-.613 1.756.046.416.176.821.395 1.236.127-.846.574-1.492 1.328-1.92.41-.233.863-.403 1.383-.517.526-.117 1.06-.214 1.561-.304l.307-.054c.516-.091 1.051-.184 1.558-.345.12-.038.238-.08.348-.121.147-.055.275-.12.391-.206.141-.105.289-.2.444-.291-.653-.015-1.76-.017-2.104-.019-.77-.004-1.3.06-1.964.312-.694.264-2.676 1.271-2.676 1.271s.985-1.054 2.837-1.844a7.858 7.858 0 0 1 2.928-.53c.275 0 .561.011.872.033.512.038 1.024.075 1.535.11l.014.001c.024 0 .05-.004.075-.011a10.63 10.63 0 0 1 1.572-.325c.175-.025.353-.061.528-.097-.034-.011-.069-.02-.103-.03a1.13 1.13 0 0 1-.118-.044l-.088-.035-.345-.233 1.296.028c.279 0 3.032-.443 4.21-3.723.078-.219.16-.437.223-.676a7.611 7.611 0 0 1-2.669 1.063 7.155 7.155 0 0 1-1.139.121zm4.784-1.871zm1.701 5.622a.27.27 0 1 0 .54 0 .27.27 0 0 0-.54 0z\"},\"child\":[]}]})(props);\n};\nexport function SiApachefreemarker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12.06v-.311l1.16-.538v.281l-.867.392v.027l.868.402v.281L0 12.059zm3.18-.252h-.266l-.071.409h.303l-.054.271h-.293l-.07.394h-.273l.069-.394h-.362l-.07.394h-.275l.069-.394h-.254l.054-.271h.247l.071-.41h-.281l.054-.27h.274l.071-.42h.274l-.072.42h.363l.071-.42h.276l-.076.42h.276l-.054.27zm-.537 0h-.362l-.074.409h.362l.074-.41zm1.134-.65h1.097v.181h-.9v.62h.806v.179h-.806v.744h-.197v-1.725zm2.695 1.724-.363-.552a1.625 1.625 0 0 1-.11.005H5.54v.547h-.197v-1.725h.655c.216 0 .382.051.5.153.12.1.18.242.18.426a.6.6 0 0 1-.1.355.54.54 0 0 1-.289.202l.407.59h-.224zm-.474-.73c.158 0 .279-.034.363-.103.085-.07.128-.173.128-.308 0-.131-.043-.23-.128-.298-.084-.069-.205-.104-.363-.104H5.54v.814h.458zm1.305-.995h1.17v.182H7.5v.58h.87v.18H7.5v.6h1.006v.183H7.303v-1.725zm1.782 0h1.171v.182h-.974v.58h.87v.18h-.87v.6h1.006v.183H9.085v-1.725zm1.782 0h.24l.658 1.257.65-1.257h.242v1.725h-.185l-.003-1.437-.65 1.255h-.114l-.655-1.255v1.437h-.183v-1.725zm3.774 1.725-.194-.44h-.94l-.192.44h-.21l.775-1.725h.204l.772 1.725h-.215zm-1.052-.623h.779l-.392-.887-.387.887zm2.848.623-.363-.552a1.625 1.625 0 0 1-.11.005h-.459v.547h-.197v-1.725h.655c.216 0 .382.051.5.153.12.1.18.242.18.426a.6.6 0 0 1-.1.355.54.54 0 0 1-.289.202l.407.59h-.224zm-.474-.73c.158 0 .279-.034.363-.103.085-.07.128-.173.128-.308 0-.131-.043-.23-.128-.298-.084-.069-.205-.104-.363-.104h-.458v.814h.458zm2.712.73h-.239l-.635-.82-.336.367v.453h-.197v-1.725h.197v1.013l.927-1.013h.237l-.688.752.734.973zm.496-1.725h1.17v.182h-.973v.58h.87v.18h-.87v.6h1.005v.183h-1.202v-1.725zm2.91 1.725-.362-.552a1.625 1.625 0 0 1-.11.005h-.459v.547h-.197v-1.725h.655c.216 0 .382.051.5.153.12.1.18.242.18.426 0 .142-.033.26-.1.355s-.164.163-.289.202l.407.59h-.224zm-.473-.73c.158 0 .279-.034.363-.103.085-.07.128-.173.128-.308 0-.131-.043-.23-.128-.298-.084-.069-.205-.104-.363-.104h-.458v.814h.458zM24 11.75v.31l-1.16.535v-.281l.867-.402v-.027l-.868-.392v-.28l1.161.537z\"},\"child\":[]}]})(props);\n};\nexport function SiApachegroovy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.997 6.012S10.315 8.8 9.516 10.155c-.155.058-.172.041-.341.207-.41-.47-.897-.041-1.028.22-.057-.566-.151-.567-.279-.694.074-.496.316-1.305-.241-1.884-1.078-.727-2.326 1.05-3.021 1.982l-.375.622c-1.546-.032-2.763.008-4.231-.021 1.79.67 1.864.686 4.026 1.506 0 .066.161.372.34.552.147.15.308.234.389.284-.106.054-.32.138-.385.258-.292.546.139.672.418 1.107.315.568.382.944 1.126.625.254-.11.562-.148.758-.21-.693 1.094-.87 1.392-2.083 3.274l.012.004c4.85-1.893 4.974-1.942 7.373-2.89 3.448 1.338 3.646 1.448 7.432 2.891-.529-.826-.89-1.343-1.274-1.995.151-.013.483-.046.777-.233.213-.135.463-.288.688-.574.443-.565.551-1.277.39-2.166-.078-.423-.235-.834-.213-.85 2.061-.778 2.304-.862 4.226-1.587-2.31.034-2.422.01-4.591.016-.036-.414-.244-.627-.882-.606-.238.039-.389.12-.5.445-.357-.657-.85-.464-1.06-.14-.275-.282-.917-.377-1.24-.17-.238-.112-.514-.112-.757.177-.175-.146-.23-.188-.614-.342-.886-1.497-1.622-2.692-2.36-3.951zm.012.802c.35.535 1.552 2.61 1.849 3.074-.337.023-.668.202-.918.562-.217-.224-.47-.445-.917-.463-.544-.093-.834.148-1.2.568-.108-.365-.53-.45-.896-.28.327-.519 1.872-3.122 2.082-3.46zM7.45 9.128c-.05 1.434-1.068 2.712-1.798 2.245-.551-.449.149-1.584.59-1.985-.033.307.246.498.023.77-.446.543-.27.936-.078.996.513.162 1.004-1.227 1.004-2.201 0-.625-.366-.613-1.086.136-.983 1.022-1.513 2.012-1.16 2.69.197.38.485.651.959.594.925-.11 1.483-1.254 1.543-1.988.148-.003.109.01.148-.02 0 .129.177.755.317 1.166.183.702.964 2.11-1.369 2.658-.44.11-.614.148-1.05.32-.213-.443-.263-.585-.697-1.013.588-.205.593-.185.972-.317 1.467-.51 1.908-.947 1.857-1.57 0 0 .018-.32-.185-.588a2.613 2.613 0 0 1-.293.645c-.437.68-1.296 1.101-2.06.833-.417-.146-.596-.466-.596-1.015 0-.703 1.601-2.735 2.387-3.08.555-.165.579.293.571.724zm6.502 1.3c.26.006.543.133.735.34.594.64.529 1.417.163 1.905-.435.581-1.532.324-1.791-.488-.12-.378.095-1.312.475-1.624a.628.628 0 0 1 .418-.132zm-2.113.066a.502.502 0 0 1 .117.017c.503.03.61.313.701.56.231.626.173 1.212-.301 1.691-.711.719-1.54.401-1.536-.567.014-.69.443-1.715 1.02-1.7zm1.868.038c-.383.287-.432 1.023-.08 1.296.138.13.215.22.613.256.273.024.704-.253.725-.527.01-.125-.013-.333-.312-.67-.252-.283-.579-.349-.661-.3-.265.156.021.28.125.383.162.163.2.234.125.282a.447.447 0 0 1-.372.057c-.105-.049-.456-.246-.163-.777zm3.759.003c.167.26.215.316.402.965.24.838.546 1.163.816 1.01.74-.418.148-1.476-.113-1.974.167-.002.134.007.286.005.12.471.086.387.407 1.813.385 1.706.442 2.16-.528 2.926-.446.352-1.103.37-1.667.34l-.636-.095c.438-.287.545-.557.542-1.116 1.278.535 1.959.132 2.23-.526.132-.317.086-.735-.04-1.471.008.6-.005.71-.084 1.007-.158.595-.547.76-.812.34-.102-.163-.345-.702-.42-1.282-.075-.58-.132-1.395-.5-1.736.04-.08.082-.17.117-.206zm-1.247.01c.258.068.572.204.74.52.234.436.388.668.376 1.447-.014.832-.34 1.055-.557 1.086-.278.04-.762.034-1.049-1.598-.095-.541-.268-1.056-.45-1.224.09-.11.097-.096.165-.204.091.1.17.27.298.777.202.808.387.975.745 1.02.558.072.778-.78.318-1.391-.1-.134-.365-.307-.503-.236.008.236.113.162.114.318-.026.185-.053.219-.113.32-.142-.056-.21-.078-.334-.291-.157-.31-.055-.6.25-.544zm-4.597.076c-.263.185-.594.8-.304 1.35.143.205.297.372.638.3.245-.051.671-.34.73-.749.052-.35-.456-1.028-.738-.87-.327.183-.128.314.074.511.185.18.052.289-.077.342-.258.106-.403.003-.467-.203-.065-.205-.01-.38.144-.68zm-2.867.064c.056.172.1.402.218.624.028.023.132 0 .269-.157.086-.1.185-.238.357-.463.104.095.113.166.142.219.073.13.225.12.273.106.168-.167.195-.275.306-.29.01.216.021.35-.257.677a.535.535 0 0 1-.501.172c-.12-.034-.199-.108-.389-.205-.258.04-.19.315-.143.546.12.611.5.855.832.675.116-.062.09-.062.312-.153-.038.388-.06.463.01.896-.541.301-.982.25-1.102-.506-.091-.632-.261-1.4-.415-1.556-.145-.147-.205-.195-.205-.195l.293-.39zm-7.114.082c.753.01 1.602.01 2.506.017-.13.318-.175.54-.193.854-.422-.163-1.877-.684-2.313-.871zm20.723.01c-.997.359-1.715.637-2.677 1.004-.105-.45-.124-.588-.219-.994 1.601-.005 1.628-.002 2.896-.01zm-6.978 2.04c.105.43.253.641.253.641.202.348.454.545.84.645.085.136.115.163.148.236.037.457.01.514-.344.774-.209.204-.218.497-.003.769.231.22.474.298 1.375.064.174.3.418.653.776 1.217-1.206-.455-2.868-1.103-6.43-2.49 0 0-4.169 1.62-6.404 2.491.935-1.474 1.012-1.599 1.677-2.63.225-.089.149-.053.349-.155.459-.245.827-.61 1.028-1.145.368.83.779.925 1.636.655.177-.082.38-.2.424-.518.46.413 1.432.49 2.142-.382.612.717 2.001.785 2.533-.171zm2.157.865s.04.129.064.169c-.101.003-.213 0-.213 0a.905.905 0 0 0 .149-.17z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheguacamole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.324 23.984c-.7-.055-1.581-.198-2.236-.363a11.942 11.942 0 0 1-7.814-6.303c-.61-1.239-.967-2.383-1.127-3.61a9.074 9.074 0 0 0-.102-.639c-.058-.25-.058-1.891 0-2.142.024-.103.07-.39.102-.638.16-1.228.517-2.372 1.127-3.611A11.799 11.799 0 0 1 6.68 1.272C7.919.663 9.063.305 10.29.145c.248-.032.536-.078.639-.102.25-.057 1.892-.057 2.142 0 .103.024.391.07.638.102 1.228.16 2.372.518 3.611 1.127a11.799 11.799 0 0 1 5.406 5.406c.61 1.239.967 2.383 1.127 3.611.032.248.078.535.102.638.026.113.043.541.043 1.071 0 .531-.017.958-.043 1.071-.024.103-.07.391-.102.639-.16 1.227-.517 2.371-1.127 3.61a11.799 11.799 0 0 1-5.406 5.406c-1.239.61-2.383.967-3.611 1.127-.247.033-.526.075-.619.094-.234.049-1.334.073-1.766.039Zm1.551-4.36a10.307 10.307 0 0 0 1.868-.248c2.176-.486 3.95-1.695 5.122-3.492.398-.61.405-.712.027-.416-1.135.891-3.013 1.632-4.999 1.973-1.082.186-1.423.211-2.837.211-1.058 0-1.464-.015-1.865-.065-.998-.127-2.116-.366-2.944-.631-1.252-.4-2.535-1.056-3.199-1.637-.212-.186-.314-.243-.314-.177 0 .048.269.554.426.801 1.435 2.269 3.908 3.516 7.295 3.679l.676.034c.042.003.377-.011.744-.032Zm.233-3.907c1.801-.132 3.472-.507 5.054-1.134 1.175-.466 2.374-1.167 2.867-1.675.167-.172.211-.316.345-1.119.05-.301.134-.672.187-.826.076-.219.105-.404.135-.871.058-.893.007-1.261-.237-1.694-.139-.247-.469-.607-.64-.7l-.129-.069-.221.161c-.317.229-.326.246-.243.41.133.261.2.572.199.923-.003.631-.222 1.091-.798 1.675-2.165 2.198-7.956 2.956-12.17 1.594-1.933-.625-3.219-1.592-3.559-2.676-.085-.27-.095-.358-.08-.676.02-.451.088-.613.511-1.239.166-.244.353-.576.418-.739.065-.163.142-.343.172-.402.086-.166.006-.167-.293-.002-.631.35-1.294.878-1.644 1.31-.469.579-.591 1.01-.547 1.934.027.562.087.854.225 1.094.066.116.096.24.113.476.042.551.138 1.102.215 1.228.1.164.616.593 1.066.886 2.328 1.516 5.915 2.36 9.054 2.131Zm-.056-3.569c1.745-.108 3.299-.463 4.478-1.023.594-.283.934-.515 1.331-.909.414-.413.573-.703.6-1.102.019-.282-.072-.621-.172-.638-.045-.008-.901.459-1.53.835-.067.039-.13.063-.142.051a1.993 1.993 0 0 1-.072-.336c-.071-.44-.135-.573-.345-.718-.324-.225-.391-.298-.523-.572-.116-.241-.149-.28-.288-.334-.26-.102-.557-.299-.557-.368 0-.072.239-.753.39-1.112a3.34 3.34 0 0 0 .099-.249c0-.036-.833-.632-.956-.683-.16-.067-.723-.128-1.205-.13a3.688 3.688 0 0 1-1.258-.206c-.631-.208-.665-.211-1.217-.13-.435.063-.514.087-.698.206-.49.315-.879.428-1.478.43a4.01 4.01 0 0 0-.654.059c-.511.106-.66.182-1.031.528-.469.439-.777.645-1.337.897-.589.265-.655.311-.741.515-.199.469-.293.645-.522.976-.367.53-.453.736-.424 1.016.072.69.818 1.448 1.947 1.981 1.638.772 4.02 1.156 6.305 1.016Zm6.174-4.675c.945-.578 1.504-1.038 1.672-1.377.087-.177.076-.241-.075-.425-.373-.452-1.844-1.32-2.491-1.47-.299-.069-.359-.045-.539.217-.277.403-.946 1.948-.946 2.183 0 .032.084.103.187.159.164.09.204.137.315.37.107.226.157.286.319.387.12.074.235.187.304.3.185.297.165.291.445.136.139-.077.503-.292.809-.48Z\"},\"child\":[]}]})(props);\n};\nexport function SiApachehadoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.098 3.01c-1.133.277-1.466.474-1.842 1.787.478-.962.84-1.315 1.842-1.787zm3.228.076c-.834-.053-1.715.177-2.756.615a3.97 3.97 0 00-1.199.76c-.31.287-.576.62-.866 1.006a1.312 1.312 0 00-.468.095 1.868 1.868 0 00-.539.356c-.141.124-.28.252-.416.383v.002c-.123.12-.244.241-.363.365-.945.152-1.72.32-2.41.588a6.314 6.314 0 00-1.97 1.217c-.252.222-.482.469-.687.736a5.435 5.435 0 00-.503.803c-.13.142-.26.288-.399.414a1.45 1.45 0 01-.441.285c-.093.035-.133.058-.137.056-.004-.001-.008-.033-.012-.047.235-.21.267-.55.289-.86.03.034.053.068.082.113.031.047.062.095.1.142l.158.2.055-.249c.046-.208.081-.484.027-.724-.034-.153-.117-.315-.235-.393l.036-.09c.04-.1.08-.204.115-.303l.069-.193-.204.035c-.27.047-.852.366-1.261.791-.152.158-.284.33-.37.514a.984.984 0 00-.093.59.91.91 0 00.272.498c.03.12.058.223.087.316.033.104.068.198.112.29.119.247.31.398.529.468.182.059.369.066.566.02a3.83 3.83 0 00-.072.69 8.911 8.911 0 00.07 1.394c.013.093.028.184.045.275l-.107.291-.166.455-.37.365-.343.34a9.22 9.22 0 01-.082.08c-.232.224-.279.27-.213.662.04.241.119.484.242.72.114.216.267.427.463.624.245.245.647.55 1.066.71.245.092.488.138.723.097l-.039.11a4.046 4.046 0 01-.123.3c-.285.624.008.95.463 1.158.227.104.497.173.748.238l.168.045c.298.08.812.228 1.281.258.513.033.974-.073 1.098-.533.049-.182.078-.322.09-.459a2.33 2.33 0 00-.01-.406c.144-.32.21-.423.316-.578l.053-.08c.115-.17.168-.29.188-.426.018-.131.004-.262-.02-.461l-.011-.084a6.822 6.822 0 001.338.05l-.118.061-.055.03c-.395.203-.413.587-.289.984.112.357.343.723.487.945.303.467.592.861.943 1.076.368.226.786.253 1.328-.04.276-.15.363-.302.48-.507.038-.066.08-.133.126-.204.101-.05.382-.296.67-.534l.296-.242c.073.053.164.09.27.115.14.034.305.05.504.065.149.01.635.01.949.01h.227c.324.001.585-.016.783-.128.21-.119.334-.331.361-.71a1.28 1.28 0 00-.008-.378.946.946 0 00-.136-.312l-.014-.502-.016-.521a2.372 2.372 0 00-.068-.536 3.558 3.558 0 00-.18-.505c-.053-.127-.096-.245-.138-.36a5.756 5.756 0 00-.229-.547l.018-.123.181.174.266.258c.203.196.39.373.607.502.226.133.479.21.807.195a1.925 1.925 0 001.016-.385c.293-.216.528-.509.627-.832l.084-.279.07-.225c.482.082.998.11 1.498.057a3.7 3.7 0 001.351-.389 3.406 3.406 0 001.35-1.33h.002v-.002c.355-.616.555-1.34.63-2.088.062-.599.028-1.415-.097-2.2-.11-.701-.295-1.38-.55-1.87a.736.736 0 00-.137-.178 1.413 1.413 0 00-.51-.31c-.206-.07-.422-.084-.594.006a.485.485 0 00-.123.09 2.793 2.793 0 00-.3.388c-.106.153-.21.307-.337.414-.149.128-.327.202-.502.272a3.454 3.454 0 00-.261-.508 4.81 4.81 0 00-.399-.54 2.21 2.21 0 00-.365-.349 5.357 5.357 0 00-.41-.275c-.407-.255-.754-.559-1.108-.87-.16-.14-.323-.282-.482-.413-.842-.695-1.628-1.031-2.469-1.084zm-4.129.004c-.57.137-.68.245-.851.804.273-.41.43-.545.851-.804zm3.952.465c.829-.001 1.587.303 2.431 1.013.412.347.774.684 1.192.983-.152.013-.283.04-.455.107.21-.04.451 0 .67.04.06.039.124.078.189.116.295.174.463.27.662.547.21.294.386.589.541.912-.101-.036-.186-.067-.262-.09a.566.566 0 00-.533.034l-.012.006c-.163.079-.416.17-.586.197a.7.7 0 00.405-.006.565.565 0 00-.018.539.269.269 0 01-.02-.12.228.228 0 01.249-.208.233.233 0 01.187.33c-.117.02-.233.055-.353.1a4.41 4.41 0 00-.237.095 3.722 3.722 0 011.084-.02c.025.117.05.24.073.366l-.137.01-.012.002c-.174-.14-.367-.117-.633-.057-.806.184-.617.637-.988 1.318.385-.47.357-.962.984-1.11.147-.036.247-.078.346-.063-.178.09-.333.237-.394.41-.173.486-.065.895-.254 1.35.234-.407.249-.802.459-1.23.075-.153.354-.4.525-.403l.14-.002c.042.27.068.539.052.761a8.535 8.535 0 01-.198 1.24c.213-.272.31-.85.403-1.257.097-.424.07-.934-.014-1.389-.117-.625.527-.522.9-.816.275-.217.463-.564.715-.809.25-.243.644.114.742.352.426 1.03.62 2.65.508 3.69-.126 1.164-.69 2.437-1.719 3.01-1.31.732-2.854.285-4.156-.154-.278-.093-.47-.229-.715-.382.067.3.097.615.008.914-.14.474-.367 1.251.277 1.394.246.055.357.048.704-.13a1.3 1.3 0 01-.616.011.397.397 0 01-.314-.273c.06.044.16.066.33.107.478.115.932-.114 1.021-.445.052-.194.043-.295.153-.559.099.03.202.059.306.084l-.177.578c-.154.501-.752.904-1.28.895-.488-.009-.797-.314-1.134-.613l-.678-.6a5.228 5.228 0 01-1.658-.834c.4.472.673.732 1.232.967-.081.83-.37 1.436-.615 2.23-.111.36-.991 1.8-1.234 1.94-.174.1-1.26 1.016-1.465 1.136-.153.203-.287.483-.516.604-.698.37-1.148-.339-1.523-.936-.171-.272-.645-1.054-.23-1.273.39-.208.61-.357 1.009-.62.059.108.159.212.225.32l-.043-.352a2.752 2.752 0 01-.008-.596c.016-.206.03-.413.047-.62-.06.21-.179.42-.239.63-.024.084-.045.152-.056.214a7.05 7.05 0 01-2.682.034 16.76 16.76 0 00-.185-.926c-.018.278-.007 1.047-.008 1.476-.001.333-.016.448-.188.731-.16.265-.228.325-.453.773.019.283.019.47-.057.739-.125.446-1.386.098-1.718.007-.41-.112-1.256-.278-1.043-.824.187-.48.307-.986.398-1.658-.75-1.08-1.448-2.56-1.582-3.873-.104-1.019-.04-1.646.18-2.27.35-.987.837-1.843 1.62-2.53C5.778 7.89 6.767 7.516 8.316 7.28c-.373.417-.741.858-1.143 1.33-.406.479-.648.963-.906 1.487-.357.722-.348.996.125 1.63.407.547.627.794.804 1.328-.146.303-.2.56-.25.973.5.545.87.918 1.354 1.033.475.113.872.093 1.297-.125.944-.482 1.816-1.107 2.88-1.132.493-1.211.444-2.222.208-3.393-.162-.8-.227-1.557-.278-2.373-.2.84-.236 1.577-.088 2.414.18 1.008.318 2.124-.18 3.01-.962.073-1.788.658-2.655 1.107-.35.18-.712.198-1.098.092-.358-.098-.6-.334-.986-.78-.006-.446.095-.653.3-1.058.33-.65.695-1.255 1.094-1.894-.49.59-.953 1.084-1.338 1.677-.147-.419-.358-.633-.707-1.105-.34-.461-.375-.662-.12-1.196.255-.536.472-1.008.907-1.478.753-.813 1.443-1.717 2.266-2.518.447-.434.628-.42 1.22-.51a20.768 20.768 0 001.606-.31 22.5 22.5 0 01-1.553.08h-.015c.506-.646.799-1.006 1.62-1.363.95-.412 1.738-.652 2.47-.652zm.556 2.79c-1.101.276-1.307.739-1.166 1.45.121-.535.335-1.05 1.166-1.45zm-3.263.061c-.446.05-.89.096-1.336.139-.375.035-.436.03-.702.293-.403.399-.794 1.768-.92 2.316.198-.455.69-1.729 1.069-2.053.105-.09.18-.143.258-.183-.271.455-.252.566-.157 1.176.081-.62.295-.859.647-1.32a9.287 9.287 0 001.14-.368zm10.226.053c-.255.517-.65.95-1.185 1.215-.288.142-.47.093-.791.062.326.094.533.21.853.096.652-.233.967-.756 1.123-1.373zm-2.28.834c.023.047.046.096.067.144a.602.602 0 00-.05.041.572.572 0 00-.126-.181l.11-.004zm-3.26.4c-.36.166-.779.126-1.087.334-.271.184-.646.764-.922 1.01.2-.078.394-.212.57-.354.002.22.101.426.27.565a.31.31 0 01.092-.492.312.312 0 01.432.191c-.148.11-.284.238-.397.387a1.666 1.666 0 00-.24.44 4.222 4.222 0 012.002-1.294c-.2-.003-.437.034-.678.114a.732.732 0 00-.482-.614c.16-.085.316-.175.44-.287zm-1.042 1.64a.735.735 0 01-.125-.083.35.35 0 00.125.084zM1.32 8.34c-.953.672-1.19.978-1.062 2.338C.352 9.608.56 9.145 1.32 8.34zm-.808.404c-.482.336-.545.475-.5 1.059.105-.482.203-.664.5-1.059zm1.779.195c-.07.15-.118.264-.152.381-.147.508.066.962-.395 1.33.217.438.207.612.711.41.195-.078.355-.187.498-.316-.07.18-.133.361-.191.545l-.03.094c-.36.153-.834.25-1.015-.13a3.458 3.458 0 01-.203-.595c-.594-.615.294-1.427.777-1.719zm.123.276c.123.071.156.2.17.375-.073-.074-.132-.122-.227-.112.008-.06.019-.119.034-.177.007-.03.014-.058.023-.086zm14.87 3.267c-.131.022-.365.07-.495.092-.348.059-.387.142-.441.484l-.086.524a9.16 9.16 0 01.228-.568c.084-.184.132-.202.31-.3.127-.068.357-.163.483-.232zm-14.47 2.4c.274.946.738 1.876 1.255 2.657v.014a.993.993 0 01-.149.369c-.369.493-1.306-.23-1.578-.508-.297-.303-.496-.662-.543-.998-.034-.246-.001-.252.17-.426l.693-.701.153-.406zm12.405.62c.056.183.101.364.183.558.138.326.205.526.215.875l.032 1.106c.117.206.136.249.115.484-.043.481-.203.513-.625.506-.192-.003-.957-.007-1.15-.023-.274-.024-.429-.05-.512-.112.43-.316 1.162-1.619 1.304-2.068.151-.474.315-.888.438-1.326z\"},\"child\":[]}]})(props);\n};\nexport function SiApachehbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.429 20.977c-.0185-.0485-.0335-.1343-.0335-.1905 0-.153-.1178-.3548-.292-.5004-.0853-.0713-.2084-.21-.2736-.3082-.1388-.209-.2892-.291-.8447-.46-.609-.1853-.7962-.3443-.8511-.7232l-.0274-.1889-.111.1608c-.217.3145-.3606.3648-.6549.2291-.1868-.0861-.323-.094-.478-.0276-.0989.0423-.1173.0405-.182-.018-.069-.0625-.076-.0627-.1739-.0048-.0772.0456-.1396.0546-.2566.037-.187-.028-.287.0266-.4121.2249-.237.3755-.4059.2037-.405-.4122.0009-.684.3229-1.0716 1.2512-1.5058.4777-.2235.694-.3683.8272-.5536.1025-.1429.1116-.1479.1562-.0868.095.13.4224.7998.5787 1.1843.1781.438.232.5193.2995.4517.057-.057-.081-.4606-.3487-1.0205-.6645-1.3894-1.6463-2.3832-2.8717-2.9068-.5624-.2402-.8388-.2913-1.569-.29-.555.001-.6912.013-1.0662.0927-.5484.1165-1.1617.3128-1.9435.6217-.7875.3113-.7882.3113-1.5823.027-.3217-.115-.7072-.2405-.8569-.2787-.3058-.078-.7573-.0916-1.0112-.0305-.2928.0704-.7047.2907-1.2106.6473-.607.4278-.9336.5974-1.3687.7104-.3767.0979-.536.1831-.6298.337-.0749.1228-.0822.2215-.0254.346.0388.0852.4104.3564.845.6168.1179.0706.223.1424.2337.1597.0254.0411-.5634.3347-.9934.4954-.7646.2857-1.5864.4664-2.8254.6214-.8255.1032-.9662.1322-1.5824.3256-.246.0772-.602.1724-.7911.2117-.8345.1731-1.5908-.0321-1.7054-.463-.021-.0786-.0583-.1662-.0831-.1946-.1527-.1752-.2093-.5962-.111-.8255.0284-.0662.0856-.3216.127-.5676.143-.8468.2882-1.3048.601-1.8957.5478-1.0352 1.6387-2.3495 2.9601-3.5665.8732-.8041 1.703-1.4225 3.6212-2.6988 1.1856-.7888 1.197-.7989 1.3334-1.1792.0303-.0845.1774-.6285.3269-1.209.4655-1.808.764-2.4904 1.3185-3.0139.3128-.2953.8113-.4793 1.1012-.4066.1653.0415.1735.123.0589.5824-.191.7657-.2555 1.2498-.2573 1.9328-.002.6742.04.935.2 1.2509.2196.4333.3677.5169 1.228.6932 3.0422.6234 5.072 1.5605 6.5143 3.0074 1.3358 1.3401 2.4244 3.4373 3.1326 6.035l.1348.4944.258.1976c.6583.5043 1.027 1.0122 1.2235 1.6851.104.3561.0882 1.113-.0326 1.5595-.1288.4762-.2387.6764-.3715.6764-.0374 0-.0784-.037-.098-.0882zm.0564-.9989c.0124-.0493.0143-.2621.004-.473-.0319-.671-.239-1.1503-.7134-1.6507-.3643-.3844-1.0243-.8481-1.207-.8481-.0697 0-.0738.0122-.0557.1653.0108.091.0837.3339.162.5399s.151.4476.1617.5369c.0169.1425.008.1733-.0696.2513-.1072.1072-.2082.1122-.3625.0181-.0636-.0388-.1232-.063-.1324-.0538-.009.0092-.006.0793.007.1557.0469.2777.2078.3892.8252.572.905.268 1.091.391 1.234.8158.0305.0905.1213.0724.1468-.0294zM1.927 18.7054c.1586-.0285.4759-.1113.7052-.184.4928-.156.8703-.2346 1.9132-.398 1.2235-.1915 1.7158-.2934 2.2612-.4676.3468-.1108.6636-.2533.6614-.2975-.0007-.0139-.103-.0871-.2274-.1628s-.357-.2653-.517-.4214c-.1598-.156-.3056-.2838-.324-.2838-.0866 0-.305.122-.5804.3241-.789.5791-1.0654.6936-2.323.9617-.6239.133-.8454.2086-1.1371.3876-.4035.2475-.4905.2885-.7552.3562-.1477.0378-.3812.0687-.519.0687-.3596 0-.3996.1119-.0614.1717.1994.0352.5074.0165.9035-.0549m17.1388-.0708c.026-.0314.1135-.0866.1946-.1226l.1475-.0653.317.096c.3968.1204.917.1382 1.0578.0362l.2022-.1467c.071-.0515.1425-.0774.1806-.0653.0347.011.063.0147.063.0082 0-.035-.486-1.1468-.532-1.217l-.0546-.0833-.1731.1369c-.0952.0752-.418.284-.7172.464-.7685.462-1.0097.6976-.9515.9294.017.0673.0437.0866.1201.0866.0541 0 .1196-.0257.1455-.0571zM4.5789 16.6537c.0832-.0426.1663-.1024.1847-.1329.1444-.2396-.4315-.2143-.5867.0257-.041.0635-.0399.081.008.129.0771.0771.2154.0695.3938-.0218zm1.0839-.7518c.3703-.0994.7409-.2214.8543-.2812.237-.125.4383-.342.5817-.6267.0572-.1135.1639-.262.2372-.33s.1332-.1488.1332-.1793c0-.2679-.9203-.3896-1.5135-.2002-.719.2294-1.4056.9617-1.4222 1.5166-.0102.3401.1762.3567 1.1293.1008m14.1209-1.051c0-.0624-.2294-.3674-.3916-.5208-.3148-.2978-.6364-.4812-1.256-.7164-.3678-.1396-.5195-.2253-.5195-.2933 0-.016.0309-.06.0688-.0979.1932-.1931 1.1182.0449 1.7707.4556.2577.1622.5518.3912.797.6206.1876.1754.2185.1936.2185.1279 0-.1033-.1702-.415-.3775-.6913-.5186-.691-1.3624-1.2293-2.3065-1.471-.7628-.1955-1.4247-.2066-1.9894-.0335-.522.16-1.128.5373-1.7366 1.081-.8566.7651-1.1103.9784-1.3292 1.1175-.1316.0835-.2346.1669-.229.1852.006.0183.1043.0634.2194.1002l.2094.067.5105-.2346c1.0094-.4638 1.936-.7623 2.626-.846 1.0527-.1278 2.23.2049 3.285.9283.3217.2206.43.2764.43.2214m-9.3219 2.9102c-1.0828-.1338-2.1057-.5122-2.941-1.088-.1893-.1305-.2432-.1868-.252-.2634-.0218-.1903.1525-.3028.6232-.4024.414-.0876.6878-.2264 1.3143-.6665.8468-.595 1.1817-.73 1.7337-.6995.2583.0143.4198.0578 1.2761.3437 1.2836.4286 2.6449.9136 2.7472.9787.2346.1493-.1705.7007-.8057 1.0966-.4788.2984-1.111.5328-1.7605.6527-.3579.0661-1.55.0957-1.9353.0481m-8-5.3414c-.0135-.0349-.0156-.2051-.005-.3784.0476-.7618.4617-1.623 1.0257-2.1334.2161-.1956.5614-.4004.675-.4004.1132 0 .1835.1182.268.4504.0445.175.1142.3632.1549.4182s.0687.1046.0623.1102a56 56 0 0 1-.3556.2833c-.462.367-1.102.9582-1.4863 1.3733-.2623.2833-.319.3295-.3393.2768z\"},\"child\":[]}]})(props);\n};\nexport function SiApachehive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.902.258c-.331.216-.65.525-.994.877-.569.589-.947 1.164-1.526 1.59-.116.1-.441.26-.85.284-.192.01-.318.042-.672-.003-.312-.169-.608-.059-.897.287-.317.456-.72 1.322-.886 1.868-.345 1.39.533 2.536 1.375 3.42.749.73 1.18 1.188 1.488 1.859.233.435.405 1.032.592 1.45.067.133.053.132.235.172.39.084.934.084 1.417.126.209.003.496-.005.768-.033.375-.071.815-.14 1.185-.268.36-.09.682-.212.971-.325-.037.126-.313.249-.416.41-.962 1.376-1.24 2.605-1.09 4.51l-.008-.007.011.05.006.077c.097.874.298 1.6.6 2.43a6.8 6.8 0 0 0 .717 1.38c.072.101.152.205.238.31h-.002l.005.004c.93 1.13 2.706 2.45 5.098 2.986.457.062.975.029 1.463-.1 1.292-.392 3.925-1.319 3.925-1.319s-2.337.194-3.408.088c-.248-.039-.52-.052-.693-.221-.03-.037-.135-.25-.067-.251.093-.003.36-.113.77-.15-.877-.094-.865-.093-.929-.253a9.968 9.968 0 0 0-.409-.884c.386.033 1.24.08 1.529-.218 0 0-.505.058-.951.006a2.76 2.76 0 0 1-.484-.137c-.2-.079-.365-.103-.404-.154-.07-.177-.116-.236-.2-.473-.114-.315-.123-.665-.145-.986.292.36.664.663 1.157.818.006-.013.638.275 1.098.127l.088-.029c-.045.009-.307.02-.409-.03-.934-.398-1.075-.745-1.226-.918l-.403-.604c.123-.245.192-.254.355-.256.491.054.705.096 1.004.024.203.416.257.835.718 1.137 1.533.456 1.866-.135 2.237-.656 1.104.81 2.9 1.059 4.147.014 1.586-1.835 2.088-4.728 1.947-4.893-.198-.336-.457-.683-.68-.635-.796.217-1.09.62-1.877.529.094-.006.252-.008.253-.017.06-.667-.005-.99-.034-1.046-.24-.527-.554-1.082-.772-1.498-.057-.086-.223-.742-.5-1-.12-.102-.41-.37-.41-.37l-.026.285s.114.017.158.193c.079.322.313.854.542 1.33h-.37l.424.11c.228.465.437.852.467.888.193.312.148.673.155.98l-.11.055c-.017-.361-.405-.335-.732-.338l-.268-.066c.082.076.334.07.232.233-.086.046-.125.242-.174.407l-.145.007c.256.1.494.188.776.306l.142.021-.142.357-.193-.078-.007-.135c-.34-.136-.995-.193-1.019-.165-.242.237-.418.524-.609.8.262-.204.46-.512.813-.597.028-.003.378.065.568.098-.122.025-.32.034-.35.077-.269.332-.466.736-.697 1.105.319-.329.416-.666.957-.985.045-.03.375-.023.536.058-.051.183-.167.401-.26.607-.133.313-.386.601-.58.902.608-.74.435-.469.841-.946.17-.404.34-.84.497-1.271l.03-.016c.054.033.47-.008.795.012.559-.12.535-.367 1.018-.404.325-.025.358.586.353.634a7.248 7.248 0 0 1-.58 2.174c-.652 1.258-1.383 2.388-2.42 2.545-1.265.221-1.922-.332-2.608-.684l-.262.224c-.891.887-1.949.808-2.382-.351l-.003-.006a2.839 2.839 0 0 0-.092-.175c-.127-.246-.25-.495-.402-.724-1.338-1.058-.72-2.022-.364-2.632-.744-.188-1.73-.588-1.866-1.113-.219-1.7-.108-2.24.11-3.113-.996.21-2.006.419-3.077.776l-.001-.008c-.286.064-1.246.416-1.518.563-.617.179-1.13.366-1.917.563a2.934 2.934 0 0 1-.753-.002c-.566-.077-1.531-.008-1.593-.065-.383-.535-.488-1.493-.838-2.006l-.004-.005-.005-.004c-.203-.275-.441-.498-.675-.73C1.49 8.213.773 7.407.572 6.554c-.05-.252-.18-.513-.112-1.258l.002-.004.001-.003c.202-.697.53-1.265 1.087-1.834.58.01 1.153.022 1.6.108.205.034.631.09 1.071.254 1.115.415 2.587 1.097 2.587 1.097-1.105-.607-2.34-1.395-3.121-1.554-.117-.017-.188-.07-.222-.162 1.173-.69 1.388-1.502 2.16-2.23.353-.154.49-.232.79-.265 2.774.439 4.52 1.543 5.9 2.282.56.304 1.07.535 1.557.812.426.14 1.713 1.113 2.09 1.637.383.807.662 1.68.917 2.522.183.857.343 1.204.343 1.204s-.155-.716-.13-.845c.162.06.542.18.7.16 0 0-.705-.364-.797-.686-.296-1.033-.594-2.641-.674-2.725-.226-.284-1.168-1.005-1.746-1.339-.218-.126-.336-.204-.345-.26.184-.186.412-.433.617-.59.195-.15.374-.32.647-.42 1.2-.541 1.886.207 2.05.056 0 0-.259-.296-.144-.247.117.063.5.138.542.177.437.342 1.581 1.593 2.27 2.913.166.323.233.536.156.925-.077.39-.136.604-.22.864-.076.174-.505 1.365-.503 1.525-.087.653.28 1.471.28 1.471.003-.222-.014-.34.006-.499l.025-.284s-.016-.075-.013-.105c.019-.196.067-.361.081-.474.138-.853.377-1.467.65-2.216.08-.189.185-.294.18-.438.005-.255-.224-.598-.389-.933a10.141 10.141 0 0 0-.627-1.112c-.596-.857-1.103-1.527-2.033-1.947-.26-.114-1.284-.226-1.638-.16-.429.09-.797.178-1.092.367-.462.296-.826.755-1.252 1.025-.944-.472-1.4-.825-1.484-.874-.561-.3-1.234-.649-1.958-.98-.348-.321-2.504-1.096-4.479-1.25zm9.705 19.318c.004 0 .007-.001.007-.002zm1.957-16.262c.05.26.091.517.287.844.42.463.571.79.63.935.205.526.369 1.052.519 1.578-.05-.548-.237-1.136-.313-1.66-.043-.24-.954-1.68-1.123-1.697zm-7.078 2.51c1.051.267 2.609.274 3.368.743.011.041-.02.068-.066.09-.187-.026-.372-.077-.57-.03-.29.093-.548.269-.822.406.754-.154.965.027 1.538.075.62.236.985 1.375 1.394 1.696-.378-.827-.617-2.06-1.355-2.714-.917-.294-2.267-.226-3.487-.267zm6.987 4.916a3.036 3.036 0 0 0-.668.066c-.16.215-.17.433-.24.635.476-.525.665-.557 1.427-.666a4.429 4.429 0 0 0-.52-.035zm-7.787.365c.496 1.86 1.516 3.733 2.53 5.44.39.496.497.718 1.087 1.018-.049.103-.103.23-.162.376-1.132-.559-2.067-1.232-3.008-1.91-1.512-1.104-1.89-2.418-2.155-4.136a.363.363 0 0 1 .12-.108 4.556 4.556 0 0 1 1.588-.68zm8.185 1.135c-.466-.002-.851.16-1.351.482 0 0 .554-.08.544-.03-.037.175.048.575.073.602l.006-.005c0 .006-.003.008-.006.005l-.306.25c.654-.329 1.341-.263 2.039-.313 0 0-.588-.162-.552-.167.131-.019-.035-.613-.08-.626a4.2 4.2 0 0 1 .334-.094 2.81 2.81 0 0 0-.701-.104zm-1.351.482zm.904.081c.094.001.189.028.22.09a.484.484 0 0 1 .018.265.538.538 0 0 0-.395.12c-.071.07-.123-.347-.068-.412.034-.04.13-.064.225-.063zm3.017.298c.084-.001.256.009.287.12.02.062-.042.27-.072.292-.046.023-.356.003-.369-.061-.026-.076.037-.306.108-.348l.046-.003zm2.897.384l-.553.27c-.9.284-.954.03-1.29-.066.222.253.487.442.958.33.645-.196.667-.36.885-.534zm-16.499.699c.5 1.36 2.887 3.894 6.09 4.278l-.008.018c-.11.266-.202.724-.196 1.104l-.006.01c-4.155-.885-4.67-1.994-5.951-2.987-.093-.768-.105-1.602.071-2.423zm9.442 1.904c-.021 0-.033 0-.033.003-.296.21-.34.412-.334.586.491-.483.473-.485 1.19-.48a7.261 7.261 0 0 0-.823-.109zm.296.363c-.105.567-.487.97-.783 1.368-.059.093-.101.22.189.624.078.108.36.126.55.116-.193-.146-.488-.301-.536-.436.341.233.657.3.943.262.065-.007.146-.077.209-.183.127-.274.227-.34.328-.413l.232.29.262-.223c-.581-.455-1.07-.923-1.394-1.405zm-9.281 2.42c1.46.878 3.814 1.839 5.812 1.791.2.347.439.711.633 1.001-2.544.387-4.308-.391-5.387-.92l-.117-.118c-.345-.391-.676-1.134-.941-1.755zm6.884 3.456c.1.207.262.379.273.402.856 1.116-1.079.859-1.478.791-.71-.113-1.405-.391-2.065-.767 1.074-.021 2.208.06 3.27-.426Z\"},\"child\":[]}]})(props);\n};\nexport function SiApachejmeter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.35 7.79s-.247-.4-.537-.228c-.14.084-.374.318-.653.658l.257.484a6.28 6.28 0 0 1 .517-.653c-.079.09-.246.298-.484.662.334-.023.666-.064.996-.123.099-.549-.096-.8-.096-.8zm-.386.228.022-.024zM.91 14.02a45.295 45.295 0 0 0-.774 2.33.198.198 0 0 1-.136.132c.23-.76.458-1.476.687-2.124-.143-.033-.346.007-.594.11.17-.13.339-.242.5-.252-.051-.011-.183-.057-.36-.22.169.063.316.094.422.072-.022-.282-.174-.57-.374-.86-.001-.002.28.161.383.33l.002-.023c.017-.22.048-.438.093-.654v-.002c.034-.174.076-.348.127-.522l.066-.223c.028-.087.06-.176.093-.27.11-.301.235-.596.375-.884l.036-.072c.128-.257.264-.511.408-.76.076-.133.154-.262.231-.39.007-.007.011-.017.017-.026L2.11 9.71l.008-.013c.236-.38.488-.75.754-1.108a8.36 8.36 0 0 1 .229-.296l.058-.072.256.482a10.46 10.46 0 0 0-.268.404c-.172.276-.335.559-.487.846l-.217.414-.222-.439.22.44-.007.015c-.044.09-.09.18-.133.27a6.9 6.9 0 0 0-.077.16l-.206.444a42.824 42.824 0 0 0-.57 1.344l-.18.457a6.523 6.523 0 0 1-.04.103c-.044.121-.091.239-.134.357v.004l-.033.088-.141.381-.01.029zm3.235-4.623a4.98 4.98 0 0 1-.334.562c-.106.149-.216.25-.457.363l.022-.004c.002-.002.003-.002.006-.002.125-.023.28-.074.37-.127a.184.184 0 0 0 .036-.024.846.846 0 0 1-.02.089c-.006.025-.016.054-.026.085l-.012.033-.036.092a2.985 2.985 0 0 1-.102.226c-.008.019-.018.038-.028.057l-.024.039a.85.85 0 0 1-.084.116l-.04.044a1.2 1.2 0 0 1-.113.101 1.231 1.231 0 0 1-.27.151l.017-.002.064-.011c.129-.031.251-.085.361-.16-.138.275-.326.497-.628.612l.052-.007.05-.011a.998.998 0 0 0 .254-.087 6.74 6.74 0 0 1-.18.492c-.071.174-.145.33-.225.47a2.577 2.577 0 0 1-.35.487c-.276.298-.705.54-1.027.58l.016.003c.366.076.745-.047.996-.324a2.685 2.685 0 0 1-.106.187c-.148.24-.318.386-.654.537.23.013.35-.041.448-.165a1.414 1.414 0 0 1-.052.1c-.215.356-.634.478-1.117.456a.54.54 0 0 1 .174.37c-.074-.134-.152-.251-.251-.297l.116-.334a.523.523 0 0 1 .02-.054v-.006l.132-.37a.837.837 0 0 0 .026-.07l.003-.01.17-.454.007-.022.168-.435c.061-.159.124-.312.184-.46.123-.301.25-.6.382-.897.052-.116.101-.228.152-.336l.05-.108.097-.205c.028-.063.059-.122.088-.183l.027-.058c.002-.002.003-.006.002-.011l.006-.001c.074-.15.143-.291.213-.423.15-.29.309-.576.474-.857l.013-.023c.088-.148.171-.28.246-.396.333-.023.665-.064.995-.12-.011.052-.022.107-.038.165a2.966 2.966 0 0 1-.075.225 4.142 4.142 0 0 1-.187.413h-.001zm2.351.674v4.596c0 .28-.041.527-.125.732a1.337 1.337 0 0 1-.35.512 1.37 1.37 0 0 1-.531.3c-.203.063-.43.095-.674.095a2.728 2.728 0 0 1-.659-.074.063.063 0 0 1-.046-.06v-.842a.063.063 0 0 1 .076-.062c.077.018.162.033.25.045.162.024.376.03.54-.01a.48.48 0 0 0 .332-.29.826.826 0 0 0 .052-.313v-4.63c0-.035.027-.063.062-.063h1.01c.036 0 .063.028.063.063zm8.588 1.44a1.352 1.352 0 0 0-.518-.334 1.887 1.887 0 0 0-.675-.114c-.254 0-.49.041-.702.125-.208.082-.395.21-.545.377a1.75 1.75 0 0 0-.35.619 2.704 2.704 0 0 0-.123.859c0 .32.044.606.135.848.092.24.222.443.386.603.164.157.364.276.59.355a2.3 2.3 0 0 0 .742.118c.143 0 .267-.005.377-.015a2.33 2.33 0 0 0 .61-.13c.095-.033.187-.074.273-.12a.06.06 0 0 0 .033-.055v-.77a.063.063 0 0 0-.09-.055 2.505 2.505 0 0 1-.827.265c-.102.01-.204.015-.307.014a.907.907 0 0 1-.332-.055.703.703 0 0 1-.243-.162.797.797 0 0 1-.155-.263 1.168 1.168 0 0 1-.058-.295h2.157a.063.063 0 0 0 .063-.062v-.483a2.126 2.126 0 0 0-.114-.725 1.462 1.462 0 0 0-.327-.544zm-1.758 1.029c.022-.216.081-.377.176-.478a.518.518 0 0 1 .395-.167.55.55 0 0 1 .246.052c.07.033.13.083.176.144a.647.647 0 0 1 .105.22c.02.071.033.148.038.229h-1.136zm10.673-1.387v.934a.062.062 0 0 1-.077.06.727.727 0 0 0-.254-.027l-.08-.004c-.121 0-.233.016-.337.047a.636.636 0 0 0-.253.145.672.672 0 0 0-.163.264c-.039.11-.059.248-.059.411v1.856a.063.063 0 0 1-.063.063h-.994a.063.063 0 0 1-.063-.063v-3.645c0-.035.028-.063.063-.063h.753c.028 0 .053.02.06.046l.124.462c.04-.067.085-.13.133-.191a.932.932 0 0 1 .487-.338 1.14 1.14 0 0 1 .434-.044c.033 0 .065 0 .096.006a.76.76 0 0 1 .084.011.279.279 0 0 1 .066.011.061.061 0 0 1 .044.059h-.001zm-5.956 2.794a.06.06 0 0 1 .027.05v.741a.06.06 0 0 1-.033.055 1.524 1.524 0 0 1-.364.125c-.304.068-.62.066-.924-.008a.91.91 0 0 1-.381-.207 1.036 1.036 0 0 1-.256-.397 1.819 1.819 0 0 1-.088-.608V12h-.414a.063.063 0 0 1-.062-.062v-.42a.06.06 0 0 1 .03-.053l.529-.323.28-.75a.062.062 0 0 1 .058-.04h.636c.035 0 .062.028.062.063v.714h.825c.034 0 .063.028.063.062v.747a.063.063 0 0 1-.063.063h-.825v1.695c0 .124.029.214.085.268a.315.315 0 0 0 .231.084c.094 0 .181-.011.263-.03.089-.022.177-.05.264-.08a.062.062 0 0 1 .057.007v.001zm-6.105-3.876v4.77a.063.063 0 0 1-.062.061h-.943a.063.063 0 0 1-.063-.063v-2.45l.014-.473.01-.242.008-.187-1.018 3.37a.062.062 0 0 1-.06.044h-.93a.063.063 0 0 1-.06-.044l-.929-3.32a24.947 24.947 0 0 1 .033.88c.003.074.005.142.005.204v2.218a.063.063 0 0 1-.063.063h-.903a.063.063 0 0 1-.063-.063V10.07c0-.034.027-.063.062-.063h1.376c.03 0 .053.02.061.047l.981 3.473 1.046-3.474a.063.063 0 0 1 .06-.044h1.376c.034 0 .062.027.062.061zm9.135 1.44a1.351 1.351 0 0 0-.517-.334 1.886 1.886 0 0 0-.676-.114c-.253 0-.49.041-.701.125-.208.082-.395.21-.545.377a1.75 1.75 0 0 0-.35.619c-.087.278-.13.568-.124.859 0 .32.046.606.135.848.093.24.223.443.387.603.164.157.364.276.59.355a2.3 2.3 0 0 0 .742.118c.143 0 .266-.005.376-.015a2.306 2.306 0 0 0 .884-.25.06.06 0 0 0 .033-.055v-.77a.063.063 0 0 0-.09-.055 2.5 2.5 0 0 1-.828.265c-.101.01-.204.015-.306.014a.905.905 0 0 1-.332-.055.7.7 0 0 1-.242-.162.799.799 0 0 1-.157-.263 1.165 1.165 0 0 1-.057-.295h2.157a.063.063 0 0 0 .063-.062v-.483a2.126 2.126 0 0 0-.114-.725 1.464 1.464 0 0 0-.328-.544zm-.765.58a.65.65 0 0 1 .106.22c.02.071.033.148.038.229h-1.137c.022-.216.082-.377.177-.478a.518.518 0 0 1 .395-.167.55.55 0 0 1 .246.052.48.48 0 0 1 .175.144zM6.26 7.63h-.137L5.41 9.336h.179l.218-.534h.769l.22.534h.18l-.714-1.708H6.26zm-.419 1.04.352-.844.341.844h-.693zm1.483.035h.555c.292 0 .489-.262.489-.54 0-.265-.211-.536-.503-.536h-.708v1.708h.166v-.632zm0-.926h.532c.187 0 .346.172.346.386 0 .207-.13.392-.332.392h-.546v-.778zm1.129 1.558.218-.534h.767l.22.534h.184l-.714-1.708H8.99l-.715 1.708h.177zm.606-1.51.342.843H8.71l.352-.844H9.06zm.778.643c0-.41.297-.85.81-.85a.672.672 0 0 1 .631.372l-.135.081a.538.538 0 0 0-.504-.303c-.408 0-.632.365-.632.709 0 .376.276.718.639.718a.58.58 0 0 0 .526-.318l.14.073c-.111.256-.414.397-.676.397-.468 0-.799-.447-.799-.88zm1.875.867h-.165V7.629h.165v.76h1.011v-.76h.169v1.708h-.169v-.799h-1.01v.799zm2.71 0h-1.145V7.629h1.124v.15h-.959v.616h.836v.142h-.837v.65h.982v.15z\"},\"child\":[]}]})(props);\n};\nexport function SiApachekafka (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.71 2.136a1.43 1.43 0 0 0-2.047 0h-.007a1.48 1.48 0 0 0-.421 1.042c0 .41.161.777.422 1.039l.007.007c.257.264.616.426 1.019.426.404 0 .766-.162 1.027-.426l.003-.007c.261-.262.421-.629.421-1.039 0-.408-.159-.777-.421-1.042H9.71zM8.683 22.295c.404 0 .766-.167 1.027-.429l.003-.008c.261-.261.421-.631.421-1.036 0-.41-.159-.778-.421-1.044H9.71a1.42 1.42 0 0 0-1.027-.432 1.4 1.4 0 0 0-1.02.432h-.007c-.26.266-.422.634-.422 1.044 0 .406.161.775.422 1.036l.007.008c.258.262.617.429 1.02.429zm7.89-4.462c.359-.096.683-.33.882-.684l.027-.052a1.47 1.47 0 0 0 .114-1.067 1.454 1.454 0 0 0-.675-.896l-.021-.014a1.425 1.425 0 0 0-1.078-.132c-.36.091-.684.335-.881.686-.2.349-.241.75-.146 1.119.099.363.33.691.675.896h.002c.346.203.737.239 1.101.144zm-6.405-7.342a2.083 2.083 0 0 0-1.485-.627c-.58 0-1.103.242-1.482.627-.378.385-.612.916-.612 1.507s.233 1.124.612 1.514a2.08 2.08 0 0 0 2.967 0c.379-.39.612-.923.612-1.514s-.233-1.122-.612-1.507zm-.835-2.51c.843.141 1.6.552 2.178 1.144h.004c.092.093.182.196.265.299l1.446-.851a3.176 3.176 0 0 1-.047-1.808 3.149 3.149 0 0 1 1.456-1.926l.025-.016a3.062 3.062 0 0 1 2.345-.306c.77.21 1.465.721 1.898 1.482v.002c.431.757.518 1.626.313 2.408a3.145 3.145 0 0 1-1.456 1.928l-.198.118h-.02a3.095 3.095 0 0 1-2.154.201 3.127 3.127 0 0 1-1.514-.944l-1.444.848a4.162 4.162 0 0 1 0 2.879l1.444.846c.413-.47.939-.789 1.514-.944a3.041 3.041 0 0 1 2.371.319l.048.023v.002a3.17 3.17 0 0 1 1.408 1.906 3.215 3.215 0 0 1-.313 2.405l-.026.053-.003-.005a3.147 3.147 0 0 1-1.867 1.436 3.096 3.096 0 0 1-2.371-.318v-.006a3.156 3.156 0 0 1-1.456-1.927 3.175 3.175 0 0 1 .047-1.805l-1.446-.848a3.905 3.905 0 0 1-.265.294l-.004.005a3.938 3.938 0 0 1-2.178 1.138v1.699a3.09 3.09 0 0 1 1.56.862l.002.004c.565.572.914 1.368.914 2.243 0 .873-.35 1.664-.914 2.239l-.002.009a3.1 3.1 0 0 1-2.21.931 3.1 3.1 0 0 1-2.206-.93h-.002v-.009a3.186 3.186 0 0 1-.916-2.239c0-.875.35-1.672.916-2.243v-.004h.002a3.1 3.1 0 0 1 1.558-.862v-1.699a3.926 3.926 0 0 1-2.176-1.138l-.006-.005a4.098 4.098 0 0 1-1.173-2.874c0-1.122.452-2.136 1.173-2.872h.006a3.947 3.947 0 0 1 2.176-1.144V6.289a3.137 3.137 0 0 1-1.558-.864h-.002v-.004a3.192 3.192 0 0 1-.916-2.243c0-.871.35-1.669.916-2.243l.002-.002A3.084 3.084 0 0 1 8.683 0c.861 0 1.641.355 2.21.932v.002h.002c.565.574.914 1.372.914 2.243 0 .876-.35 1.667-.914 2.243l-.002.005a3.142 3.142 0 0 1-1.56.864v1.692zm8.121-1.129l-.012-.019a1.452 1.452 0 0 0-.87-.668 1.43 1.43 0 0 0-1.103.146h.002c-.347.2-.58.529-.677.896-.095.365-.054.768.146 1.119l.007.009c.2.347.519.579.874.673.357.103.755.059 1.098-.144l.019-.009a1.47 1.47 0 0 0 .657-.885 1.493 1.493 0 0 0-.141-1.118\"},\"child\":[]}]})(props);\n};\nexport function SiApachekylin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.033 16.459l-.59 1.29h.142l.155-.344h.72l.154.345h.144l-.59-1.291h-.135zm-.243.835l.31-.694.31.694h-.62zm1.154-.515v1.328h.131v-.54a.424.424 0 0 0 .369.192c.277 0 .483-.2.483-.494a.47.47 0 0 0-.483-.493.42.42 0 0 0-.374.2v-.192h-.126zm.49.107c.205 0 .362.153.362.378 0 .227-.157.379-.361.379-.207 0-.362-.152-.362-.379 0-.224.155-.378.362-.378zm1.487.864v-.602c0-.25-.142-.376-.392-.376a.616.616 0 0 0-.395.13l.059.099a.494.494 0 0 1 .323-.115c.18 0 .274.09.274.257v.059h-.308c-.278 0-.374.125-.374.275 0 .167.135.282.354.282.16 0 .275-.061.334-.16v.15h.125zm-.13-.292c-.052.128-.161.198-.309.198-.154 0-.245-.07-.245-.183 0-.1.06-.173.25-.173h.303v.158zm.525-.193c0 .228.155.378.367.378a.328.328 0 0 0 .282-.142l.098.066c-.077.125-.216.192-.38.192-.29 0-.5-.205-.5-.494 0-.29.21-.493.5-.493.164 0 .303.065.38.192l-.098.066a.33.33 0 0 0-.282-.144c-.212 0-.367.152-.367.379zm1.12-.884v.568c.072-.112.199-.177.363-.177.236 0 .398.137.398.415v.563h-.13v-.55c0-.205-.108-.31-.292-.31-.208 0-.34.13-.34.35v.51h-.13v-1.37h.13zm1.968.884c0-.292-.198-.493-.47-.493-.274 0-.475.205-.475.493 0 .287.207.494.51.494a.477.477 0 0 0 .374-.159l-.074-.085a.382.382 0 0 1-.297.128c-.212 0-.367-.135-.382-.338h.812l.002-.04zm-.814-.058a.337.337 0 0 1 .343-.322c.19 0 .329.132.345.322h-.688zm1.728-.748v.78l.758-.78h.157l-.559.584.598.707h-.162l-.528-.607-.264.267v.34h-.136v-1.291h.136zm1.292 1.383l.042-.094-.433-.969h.136l.365.825.365-.825h.13l-.486 1.087c-.08.19-.184.25-.322.25a.332.332 0 0 1-.236-.088l.06-.098a.243.243 0 0 0 .178.074c.086 0 .145-.04.2-.162zm.92-1.461v1.369h-.131v-1.37h.13zm.365.398h.13v.97h-.13v-.97zm.066-.212a.095.095 0 0 1-.095-.094c0-.05.042-.092.095-.092a.093.093 0 1 1 0 .186zm.556.212v.18c.07-.119.2-.187.369-.187.236 0 .398.137.398.415v.562h-.131v-.55c0-.204-.107-.309-.291-.309-.209 0-.34.13-.34.35v.51h-.13v-.97h.125zM2.086 15.41C.264 15.4.124 15.395.063 15.356c-.084-.055-.084-.137-.002-.302.223-.448.78-.76 1.676-.943.575-.116.917-.252 1.23-.487.374-.281.418-.538.12-.69a2.52 2.52 0 0 1-.868-.786c-.294-.447-.492-1.162-.492-1.778 0-.321.168-.938.36-1.323.282-.565.68-.963 1.236-1.235a3.043 3.043 0 0 1 1.25-.298c.085 0 .142-.014.178-.044.05-.04.052-.051.026-.13-.04-.119-.206-.266-.373-.328-.156-.058-.332-.085-.807-.122-.18-.013-.38-.04-.444-.06a.788.788 0 0 1-.411-.28c-.057-.085-.067-.126-.067-.259 0-.14.011-.179.098-.338.092-.168.13-.267.2-.522.023-.086.037-.102.09-.102.033 0 .1.031.148.07.292.23 1.183.53 1.571.53.246 0 .361-.035.453-.14.064-.073.071-.095.058-.181a1.036 1.036 0 0 0-.268-.502c-.14-.14-.426-.285-.694-.355a1.921 1.921 0 0 0-.504-.054c-.345-.004-.373.004-.563.163-.158.132-.21.12-.386-.089-.441-.522-.646-1.065-.518-1.37.041-.1.095-.121.467-.184.163-.027.498-.091.744-.143.965-.202 1.498-.268 2.164-.267.56.001.585-.006.736-.231.199-.297.271-.585.272-1.088 0-.406.018-.455.162-.455.113 0 .276.08.357.176.16.189.221.439.249 1.012.017.351.035.509.08.686.094.364.146.445.543.837.493.488.64.722.731 1.16.073.352.032.768-.107 1.085-.171.393-.579.845-1.033 1.147-.351.234-.757.427-2.302 1.097-.297.128-.61.27-.696.312-.559.282-1.082.816-1.283 1.31-.058.14-.07.21-.08.443-.016.43.076.72.34 1.07.181.242.53.508.791.606.323.121.776.127 1.154.016.37-.108.797-.361.747-.442-.026-.042-.08-.031-.245.048-.627.299-1.316.344-1.71.112a2.043 2.043 0 0 1-.55-.551c-.228-.386-.3-.932-.173-1.303a1.14 1.14 0 0 1 .313-.468c.24-.233.993-.618 2.46-1.258.868-.38 1.04-.464 1.342-.666a3.719 3.719 0 0 0 1.67-3.135c0-.148.01-.27.021-.27.028 0 .19.216.313.416.627 1.026.843 2.398.54 3.443-.284.978-.948 1.741-1.77 2.034a2.307 2.307 0 0 1-.88.14 2.57 2.57 0 0 1-.852-.13c-.467-.135-.814-.148-1.19-.044-.346.096-.52.235-.588.47a.682.682 0 0 0 .08.518c.086.16.165.215.323.228.234.019.547-.145.547-.287 0-.031-.07-.178-.156-.326-.086-.148-.156-.295-.156-.328 0-.089.084-.133.251-.133.22 0 .36.076.528.284.158.196.301.3.47.34.206.05.235.158.13.476-.175.522-.62 1.133-1.429 1.96a8.642 8.642 0 0 0-.596.66c-.224.319-.44.787-.565 1.224-.087.306-.164.384-.41.412-.039.005-.952.003-2.028-.004zM9.741 2.668a10.68 10.68 0 0 1 5.137-.638c2.634.336 4.891 1.67 6.295 3.72.499.728.699 1.143.7 1.451 0 .346-.242.533-.618.477a.98.98 0 0 1-.508-.271 24.729 24.729 0 0 1-.672-.781c-1.308-1.565-1.733-2.01-2.404-2.516a8.626 8.626 0 0 0-1.856-1.044c-1.82-.713-3.944-.805-6.106-.266-.494.123-.48.067.032-.132zM23.807 12.89c-.359.932-1.224 1.631-2.401 1.942-.939.247-1.7.244-2.46-.01a4.319 4.319 0 0 1-1.42-.84c-.22-.205-.294-.23-.294-.097 0 .067.034.124.18.306.231.285.336.488.316.613-.02.123-.104.19-.261.21-.185.022-2.544.004-2.593-.02-.104-.051.012-.31.203-.45.143-.104.275-.158.492-.199.184-.035.247-.075.247-.157 0-.02-.054-.146-.12-.278a2.606 2.606 0 0 1-.23-.723c-.024-.13-.177-.073-.319.117-.247.331-.419.856-.53 1.623-.056.377-.085.46-.18.502-.048.022-.56.028-2.072.026a104.858 104.858 0 0 1-2.07-.014c-.213-.04-.178-.254.08-.48.21-.184.703-.417 1.303-.616.406-.135.454-.173.452-.36-.002-.29-.235-.573-.873-1.06-.671-.511-.864-1.516-.43-2.235.261-.431.73-.782 1.2-.897.803-.196 1.43.033 1.722.628.11.225.182.477.16.563-.022.089-.093.071-.272-.066-.258-.198-.434-.27-.682-.28-.255-.01-.416.036-.552.16-.158.141-.198.244-.199.508 0 .208.007.242.077.392.377.796 1.599.95 2.453.308.278-.21.623-.788.724-1.216.043-.181.05-.267.04-.528-.009-.267-.02-.342-.082-.519-.155-.445-.343-.685-.672-.855-.503-.26-1.133-.33-1.989-.22-.728.092-1.493.059-1.95-.086-.2-.063-.27-.114-.27-.194 0-.067.023-.074.3-.094.428-.031.896-.147 1.651-.408.248-.086.556-.183.684-.215.783-.198 1.609-.252 2.218-.146.26.045.572.2.811.402.695.588 1.368 1.78 1.913 3.39.168.497.323.839.506 1.117.41.627.958 1.01 1.65 1.155.08.017.28.03.444.029a2.19 2.19 0 0 0 1.002-.235c.608-.289.977-.74 1.163-1.423.068-.25.075-.85.013-1.086-.144-.54-.492-.896-1.038-1.059-.239-.071-.773-.091-.942-.035a.877.877 0 0 0-.537.514c-.044.11-.054.186-.055.4-.002.237.005.278.062.4.174.371.505.547 1.031.548.26 0 .3.02.274.14-.03.136-.178.225-.437.265a1.667 1.667 0 0 1-.986-.13c-.308-.143-.595-.477-.72-.835a1.452 1.452 0 0 1-.021-.76 2.4 2.4 0 0 1 .368-.732c.399-.492 1.06-.746 1.775-.68 1.002.092 1.779.639 2.121 1.494.278.693.288 1.796.022 2.486zm-12.888.57c-.265.18-1.02.268-1.913.22-.547-.028-.6-.019-.639.113-.041.145.034.318.234.535.27.295.291.447.077.562-.098.052-.107.052-1.539.058-1.2.004-1.453 0-1.517-.029-.139-.06-.129-.264.021-.434.133-.15.178-.163.652-.178.387-.012.431-.017.462-.06a.189.189 0 0 0 .033-.095c0-.081-.102-.304-.212-.466-.175-.258-.205-.345-.206-.608-.001-.257.024-.317.175-.42.253-.172.937-.1 1.626.173.67.265 1.328.371 2.309.371.509 0 .585.005.597.038.019.047-.055.15-.16.22zm10.194 5.002c.047.04.038.178-.02.29-.123.242-.518.705-1.008 1.183-.842.821-1.599 1.354-2.673 1.884-1.593.786-3.18 1.16-4.87 1.148a19.02 19.02 0 0 1-.675-.012 10.35 10.35 0 0 1-2.395-.479c-2.186-.718-4.043-2.16-5.4-4.19-.375-.563-.517-.895-.538-1.256-.015-.254.011-.37.12-.531a.539.539 0 0 1 .242-.2c.156-.08.178-.084.396-.083.503.004.899.247 1.353.83.086.11.326.449.535.752.43.628.756 1.068 1.046 1.416.255.306.72.77.976.975.419.334 1.405.863 2.117 1.134 2.32.883 4.7.8 7.069-.247 1.22-.54 2.408-1.364 3.27-2.27.295-.31.4-.39.455-.344z\"},\"child\":[]}]})(props);\n};\nexport function SiApachelucene (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.476 9.415a.747.747 0 0 0-.753.577q-.07.264.051.421.123.155.401.155a.8.8 0 0 0 .366-.083l.058-.23a1 1 0 0 1-.178.08.6.6 0 0 1-.17.025q-.152 0-.215-.097-.062-.1-.017-.272a.5.5 0 0 1 .158-.27.4.4 0 0 1 .268-.097q.085-.001.156.023a.5.5 0 0 1 .137.08l.059-.228a.6.6 0 0 0-.149-.063.7.7 0 0 0-.172-.021m-4.468.021-.702 1.11h.29l.122-.201h.448l.018.201h.287l-.121-1.11Zm1.19 0-.291 1.11h.287l.1-.385h.19a.6.6 0 0 0 .35-.094.45.45 0 0 0 .183-.27q.046-.174-.043-.267-.09-.094-.3-.094zm1.544 0-.701 1.11h.289l.123-.201h.448l.017.201h.288l-.122-1.11zm2.598 0-.29 1.11h.286l.123-.471h.423l-.122.471h.286l.291-1.11h-.287l-.112.422h-.422l.111-.422zm1.564 0-.29 1.11h.79l.057-.217h-.502l.066-.254h.457l.057-.217h-.46l.056-.207h.486l.057-.215Zm-5.473.207h.158q.083-.001.117.04.036.04.016.115a.2.2 0 0 1-.076.115.23.23 0 0 1-.14.04H8.35zm-1.32.053.037.442h-.305Zm2.735 0 .037.442h-.305Zm1.751 1.352c-.964 0-1.91.782-2.11 1.745-.202.964.415 1.746 1.38 1.746.828 0 1.643-.58 1.983-1.355h-.852c-.216.32-.585.544-.962.544-.516 0-.847-.418-.739-.935.108-.516.614-.936 1.13-.936.4 0 .69.252.749.606h.839c.014-.806-.566-1.415-1.418-1.415m2.219.053-.708 3.385h2.614l.146-.704H14.08l.125-.596h1.761l.149-.71h-1.762l.141-.673h1.789l.146-.702zm3.35 0-.71 3.385h.804l.48-2.285.87 2.285h1.021l.708-3.385h-.804l-.469 2.245-.78-2.245zm3.93 0-.708 3.385h2.515l.147-.704h-1.689l.123-.596h1.691l.149-.71h-1.691l.14-.673h1.691l.147-.702ZM0 11.142l.487.723H2.45l.016-.072.135-.65zm3.429 0-.135.65-.143.68-.416 1.988-.004.026h2.363l.004-.026.137-.65.008-.034H3.704l.551-2.634h-.224Zm2.71 0-.359 1.726q-.067.323-.066.582h.002l-.004.01q0 .096.01.184.037.326.199.533a.95.95 0 0 0 .438.309q.275.1.65.1.372-.001.689-.098.316-.098.565-.305a1.8 1.8 0 0 0 .426-.528q.177-.32.271-.77l.364-1.743h-.825l-.363 1.743q-.106.503-.333.747-.224.244-.639.244t-.541-.244q-.127-.243-.022-.747l.366-1.743zm-5.254 1.42 1.099 1.636.34-1.622.002-.013zm22.362 1.576v.064h.112v.272h.088v-.272h.111v-.064zm.38 0v.336h.082v-.246l.076.182h.057l.076-.182v.246H24v-.336h-.11l-.078.18-.076-.18z\"},\"child\":[]}]})(props);\n};\nexport function SiApachemaven (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.237.001c-.312-.013-.665.072-.828.457-.158.374-.283 1.188-.34 2.276l1.223.591c-.02-.737.007-1.43.076-2.066-.026.299-.056.96.006 2.039.019.342.049.725.088 1.15.002.024.002.047.007.069a45.485 45.485 0 0 0 .309 2.412c.057.368.126.752.195 1.16l-.01.01c.014.01.015.018.014.023l.03.16c.03.162.06.328.093.494l.108.553.056.289a61.72 61.72 0 0 0 .457 2.068c.09.382.186.78.287 1.186.098.386.199.783.309 1.193.096.362.199.735.303 1.117.003.018.012.036.015.055a145.826 145.826 0 0 0 .34 1.185l.049.174c.078.261.158.533.242.805a4.2 4.2 0 0 1-.293-.135l-.19-.654c-.02-.077-.042-.148-.062-.225l-.002-.004-.004-.002c-.087-.3-.17-.607-.257-.916-.023-.087-.044-.173-.069-.263l-.314-1.178c-.1-.381-.194-.765-.29-1.154-.094-.39-.185-.78-.277-1.172-.093-.401-.181-.8-.265-1.203-.085-.396-.161-.798-.24-1.193a50.315 50.315 0 0 1-.211-1.17c-.004-.013-.006-.03-.01-.041l.004-.002c-.057-.386-.116-.77-.174-1.15a60.905 60.905 0 0 1-.154-1.204 27.447 27.447 0 0 1-.172-2.41l-1.22-.59c-.004.074-.01.15-.013.23-.012.294-.02.605-.023.93a45.3 45.3 0 0 0 .006 1.157c.009.37.025.755.045 1.148.02.336.042.675.07 1.022l.002.039.006.004c.003.023.007.05.006.076.033.368.064.739.107 1.115a34.493 34.493 0 0 0 .303 2.125c.01.064.024.131.035.195a23.418 23.418 0 0 0 .547 2.32c.07.237.14.464.21.68.063.182.13.365.194.545.155.422.327.832.512 1.232l.006.004a.318.318 0 0 0 .02.05c.225.485.475.95.755 1.395.01.013.02.033.03.047-.455-.183-1.259-.098-1.253-.097.83.288 1.557.64 2.016 1.175-.183.2-.523.352-.953.477.594.064.924-.039 1.045-.092-.31.26-.483.732-.635 1.24.35-.57.696-.949 1.033-1.094.078.258.162.524.244.788A147.532 147.532 0 0 0 5.157 24a.56.56 0 0 0 .43-.312c.13-.282.83-1.775 1.908-3.875.413 1.303.88 2.679 1.386 4.109a.494.494 0 0 0 .076-.465 103.735 103.735 0 0 1-1.308-3.945c.154-.299.316-.612.484-.932.125.04.255.094.389.155.203.186.352.491.482.84a1.515 1.515 0 0 0-.334-1.098c1.335.258 2.547.09 3.287-.81a3.97 3.97 0 0 0 .192-.258c-.325.304-.682.404-1.313.273.996-.281 1.523-.617 2.035-1.22.12-.145.244-.303.371-.48-.943.722-1.927.822-2.9.493l-.045-.018c.914.02 2.203-.474 3.092-1.189.41-.33.796-.73 1.17-1.21.28-.359.55-.76.82-1.216.234-.393.468-.824.7-1.293a2.83 2.83 0 0 1-.74.137l-.144.008c-.048.002-.093 0-.146.002.885-.198 1.5-.74 1.994-1.447-.24.117-.628.262-1.07.297-.058.006-.12.006-.182.006-.013-.002-.028 0-.047-.002.306-.078.574-.178.81-.309a3.363 3.363 0 0 0 .358-.236c.044-.037.088-.07.13-.106.099-.086.193-.18.28-.287.028-.034.056-.063.08-.098.036-.05.073-.098.104-.146a8.388 8.388 0 0 0 .51-.828c.015-.031.032-.057.046-.088.04-.084.08-.16.11-.227.042-.099.074-.179.092-.238a.515.515 0 0 1-.108.051c-.273.112-.727.187-1.086.201-.004 0-.008 0-.013.004h-.067c.72-.214 1.067-.45 1.422-.818a13.883 13.883 0 0 0 1.154-1.428c.264-.37.505-.738.692-1.072a6.5 6.5 0 0 0 .298-.592c.066-.157.122-.305.172-.45-.466.01-.986.011-1.48 0 .495.01 1.015.007 1.484-.005.5-1.485.063-2.262.063-2.262s-.526-1.212-1.4-.851c-.426.175-1.172.73-2.083 1.56l.514 1.45a17.561 17.561 0 0 1 1.703-1.602c-.257.22-.807.726-1.615 1.644-.256.29-.537.624-.844.997-.017.02-.035.038-.047.06a51.435 51.435 0 0 0-1.666 2.187c-.248.34-.498.704-.765 1.088h-.016c.002.02-.004.028-.01.032l-.101.152c-.104.155-.213.31-.318.47l-.352.534c-.061.09-.124.181-.186.277-.184.282-.367.573-.558.873a97.351 97.351 0 0 0-1.428 2.338 96.866 96.866 0 0 0-1.341 2.343c-.012.017-.02.04-.034.057a197.256 197.256 0 0 0-.668 1.223l-.097.181c-.17.318-.346.642-.52.979 0 .004-.005.008-.006.013-.026.048-.05.093-.072.141-.117.222-.218.424-.45.87a1.352 1.352 0 0 0-.233-.182l.345-.65c.047-.089.096-.177.143-.27l.04-.077.546-1.001.13-.233v-.006l-.001-.006c.169-.31.345-.62.52-.94.051-.087.102-.173.153-.265.224-.395.454-.794.684-1.197a91.685 91.685 0 0 1 2.135-3.504c.247-.386.503-.77.754-1.152.092-.138.182-.272.279-.41a72.9 72.9 0 0 1 .48-.701c.007-.012.019-.024.026-.037h.006c.26-.356.517-.713.773-1.065.278-.373.554-.735.83-1.09a31.075 31.075 0 0 1 1.777-2.075l-.515-1.446c-.06.057-.126.116-.192.178a32.37 32.37 0 0 0-.758.729c-.295.294-.597.606-.912.935a46.032 46.032 0 0 0-1.632 1.838l-.03.033.002.008c-.017.02-.033.044-.054.064-.266.323-.538.649-.801.985a39.105 39.105 0 0 0-1.445 1.95c-.043.06-.085.126-.127.186a26.458 26.458 0 0 0-1.403 2.303c-.13.247-.256.485-.37.715-.096.195-.187.395-.278.591-.21.463-.398.93-.566 1.399l.002.006a.36.36 0 0 0-.026.058c-.108.303-.203.608-.29.914-.14.174-.302.325-.483.46a3.505 3.505 0 0 0-.131-.153 5.148 5.148 0 0 0 .824-2.211 6.4 6.4 0 0 0-.016-1.488c-.046-.4-.126-.82-.238-1.274-.097-.393-.217-.81-.363-1.248-.091.185-.22.367-.379.545l-.086.094c-.029.032-.06.06-.092.094.434-.674.486-1.397.358-2.148a2.722 2.722 0 0 1-.49.85c-.033.038-.072.077-.11.116-.01.007-.019.018-.033.028.144-.24.25-.467.318-.698a1.29 1.29 0 0 0 .04-.146 2.85 2.85 0 0 0 .038-.225l.018-.146a2.11 2.11 0 0 0-.002-.354c-.003-.04-.004-.076-.01-.113-.01-.055-.016-.105-.027-.154a7.416 7.416 0 0 0-.193-.84c-.01-.028-.015-.056-.026-.084-.027-.079-.048-.149-.072-.209a2.1 2.1 0 0 0-.09-.209.455.455 0 0 1-.035.1c-.102.24-.34.57-.557.8-.003.003-.007.005-.007.01l-.04.043c.318-.58.39-.946.385-1.398a12.274 12.274 0 0 0-.16-1.615 10.68 10.68 0 0 0-.232-1.104 5.853 5.853 0 0 0-.18-.558 6.337 6.337 0 0 0-.172-.391 26.18 26.18 0 0 0 .002-.004C5.576.341 4.82.124 4.82.124s-.27-.11-.582-.123zm3.38 15.783l.032.082v.002c-.06.033-.116.067-.178.097-.012.004-.024.012-.039.018a2.41 2.41 0 0 0 .186-.2zm-.603 1.626c.13.136.25.242.354.32l.07.227a1.866 1.866 0 0 0-.246.053l-.03-.098c-.024-.084-.048-.17-.076-.257l-.021-.073zm.26.875a2.34 2.34 0 0 1 .271.01l.07.229a.778.778 0 0 1 .247-.004l-.326.627a127.643 127.643 0 0 1-.262-.862z\"},\"child\":[]}]})(props);\n};\nexport function SiApachenetbeanside (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.8575 6.1211c-.0092-.0866-.0486-.1598-.121-.2104C22.7381 5.9098 12.1194.032 12.1185.03a.2487.2487 0 00-.2372 0c-.003 0-10.6129 5.8784-10.6145 5.8797-.0744.0497-.1156.1241-.1243.2124v11.8365c.0149.0565.0178.1253.071.161.0183.0788 10.6175 5.7985 10.6694 5.8507a.2456.2456 0 00.2343 0c.0025-.0017 10.6135-5.7957 10.6147-5.7984.0748-.0489.115-.1262.1256-.2133V6.1211zm-17.633 9.3292L1.6323 17.534V6.5401l3.5922 2.011zm13.551-6.8993l3.5922-2.0109v10.9938l-3.5922-2.0836zm-.7407-.1455c-2.0115 1.1316-4.0232 2.263-6.0348 3.3943a125706.698 125706.698 0 01-6.0349-3.3943L12 4.9349zM5.7143 15.4473V8.8265l6.0408 3.398v6.5444l-6.0408-3.3216zm6.5305 3.3216v-6.5444l6.0409-3.398v6.6208c-2.0135 1.1074-4.0272 2.2145-6.0408 3.3216zM12 .5247l10.1094 5.5984-3.5771 2.003-6.4104-3.6858a.2418.2418 0 00-.2439 0L5.4676 8.126l-3.577-2.003L12 .5248zM5.4728 15.8731l6.2823 3.4547v4.014L1.8868 17.952zm6.772 7.4686v-4.014l6.2824-3.4546 3.586 2.0789z\"},\"child\":[]}]})(props);\n};\nexport function SiApachenifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.648 0a.093.093 0 0 0-.084.053A30.71 30.71 0 0 1 8.592 4.73c-2.09 2.728-5.145 6.466-5.145 10.364a8.201 8.201 0 0 0 8.201 8.2v-5.003c0-.106.087-.193.194-.193h2.81v-2.813c0-.106.087-.191.194-.191h5.004c0-3.9-3.056-7.636-5.145-10.364A30.712 30.712 0 0 1 11.732.053.094.094 0 0 0 11.648 0zm-1.632 3.867c.05 0 .08.034.037.112-.11.197-.218.397-.328.593-.396.702-.819 1.389-1.23 2.08-.196-.032-.39-.06-.585-.088.495-.651 1-1.296 1.48-1.959.153-.209.302-.423.454-.634a.24.24 0 0 1 .172-.104zM7.44 7.186c.221.035.444.076.666.119-.073.129-.15.256-.223.383a29.073 29.073 0 0 0-1.625 3.261c-.874 2.123-1.383 4.444-.77 6.707a8.222 8.222 0 0 0 2.217 3.74c.083.083-.02.216-.119.155a7.568 7.568 0 0 1-.93-.686A7.674 7.674 0 0 1 4.1 16.248c-.329-2.156.387-4.246 1.418-6.115a27.44 27.44 0 0 1 1.92-2.947zm7.931 8.435a.193.193 0 0 0-.191.191V18.3h2.677V15.62zm3.299 0V18.3h1.348a7.975 7.975 0 0 0 .515-2.678zm-6.303 3.004a.193.193 0 0 0-.191.193v2.485h2.678v-2.678Zm3.295.484v2.68h2.115a.562.562 0 0 0 .399-.162v-.004a.562.562 0 0 0 .16-.397V19.11zm3.674.182v1.98a7.999 7.999 0 0 0 1.217-1.98zm-6.969 2.824a.193.193 0 0 0-.191.192v1.672a7.997 7.997 0 0 0 2.678-.516v-1.348zm3.48.668V24a8.008 8.008 0 0 0 1.98-1.217z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheopenoffice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.371 0 12c0 .843.088 1.667.254 2.462a12.594 12.594 0 013.309-.44c1.836 0 3.579.392 5.152 1.099a12.536 12.536 0 017.303-2.332c1.704 0 3.33.339 4.811.953l.023.01a.186.186 0 01-.083.353l-.267-.02a12.525 12.525 0 00-.895-.032c-4.208 0-7.988 1.546-10.281 4.681l-.11.151a.183.183 0 01-.28.008C6.76 16.847 3.894 16.037.677 15.981 2.32 20.65 6.768 24 11.998 24 18.628 24 24 18.627 24 12c0-6.628-5.373-12-12.001-12zm9.395 7.181c-.042-.004-.114-.016-.16-.022a6.703 6.703 0 00-.405-.051c-2.447-.23-4.725.449-6.21 2.171-.063.064-.118.067-.179.003-1.181-1.34-2.864-1.935-4.795-2.118a7.24 7.24 0 00-2.01.09l-.01.001-.02.002a.125.125 0 01-.075-.223l.035-.02a7.23 7.23 0 014.05-.795c1.054.1 2.035.42 2.9.91a7.279 7.279 0 016.797-.255c.045.025.093.047.14.073a.116.116 0 01.067.11c0 .069-.044.134-.125.124z\"},\"child\":[]}]})(props);\n};\nexport function SiApacheparquet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.953 20.391c-.95-1.013-.978-1.057-.807-1.248.27-.304 11.811-10.868 11.977-10.964.143-.083 1.558.6 1.867.902.119.115-.8 1.098-5.817 6.218-3.277 3.345-6.021 6.095-6.097 6.112-.076.016-.582-.442-1.123-1.02zM8.333 17.7c-.511-.515-.835-.92-.803-1.003.058-.152 6.693-5.515 6.817-5.51.153.005 1.714 1.191 1.714 1.302 0 .116-6.67 6.073-6.8 6.073-.038 0-.456-.388-.928-.862zM5.91 15.227c-.4-.448-.652-.81-.598-.86.28-.26 3.164-2.26 3.26-2.26.154.002 1.547 1.196 1.547 1.327 0 .161-3.124 2.566-3.334 2.566-.1 0-.494-.348-.875-.773zm-1.988-2.04c-.574-.58-.642-.69-.512-.81.187-.174 9.357-6.094 9.545-6.162.146-.053 1.417.716 1.417.858 0 .102-9.401 6.685-9.63 6.744-.091.023-.435-.241-.82-.63zm6.117-.935c-.379-.314-.687-.626-.684-.692.002-.066.337-.354.743-.64.406-.285 2.227-1.587 4.046-2.894 1.82-1.307 3.383-2.376 3.474-2.376.245 0 1.485.717 1.445.835-.057.173-8.012 6.336-8.179 6.337-.086 0-.467-.256-.845-.57zm-7.963-.923c-.452-.478-.518-.593-.4-.701.103-.093 5.783-3.449 6.47-3.821.114-.062 1.318.807 1.28.922-.05.15-6.456 4.172-6.645 4.172-.09 0-.408-.257-.705-.572Zm13.735.038c-.416-.298-.772-.59-.792-.65-.028-.083 3.74-3.215 4.595-3.818.166-.118.297-.079 1.01.301.45.24.818.485.817.545-.002.152-4.487 4.098-4.7 4.135-.096.016-.515-.214-.93-.513zM.547 9.707 0 9.156l.243-.158c.133-.086 2.841-1.563 6.018-3.282l5.775-3.126.553.27c.303.15.552.322.552.384 0 .084-11.875 7.018-12.02 7.018-.015 0-.274-.249-.574-.553zm8.88-2.79c-.269-.2-.487-.418-.487-.483s1.083-.755 2.406-1.534l2.405-1.417.617.33c.34.18.617.363.617.406 0 .122-4.715 3.07-4.904 3.067-.092-.001-.387-.167-.655-.368Zm4.816-.612c-.325-.2-.589-.418-.588-.484.002-.112 1.64-1.209 1.909-1.279.123-.032 1.226.55 1.315.694.027.044-.031.15-.128.237-.333.296-1.7 1.202-1.81 1.199-.06-.002-.374-.167-.698-.367z\"},\"child\":[]}]})(props);\n};\nexport function SiApachepulsar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.925h-5.866c-1.586-3.041-3.262-5.402-5.544-5.402-2.97 0-4.367 2.593-5.717 5.115l-.118.22H0v1.5h3.934c1.39 0 1.673.468 1.673.468-1.09 1.691-2.4 3.363-4.584 3.363H0v1.574h1.03c4.234 0 6.083-3.434 7.567-6.193 1.361-2.541 2.31-4.08 3.993-4.08 1.747 0 3.584 3.801 5.201 7.157.237.488.477.988.72 1.483-6.2.197-9.155 1.649-11.559 2.833-1.759.866-3.147 1.94-5.433 1.94H0v1.574h1.507c2.754 0 4.47-.85 6.295-1.751 2.53-1.243 5.398-2.652 12.157-2.652h3.907V14.5H21.66a1.18 1.18 0 01-.972-.393 70.83 70.83 0 01-1.133-2.321l-.511-1.047s.366-.393 1.38-.393H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiApacherocketmq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.438 23.467c-.517-.638-1.106-1.89-1.217-2.587l-.082-.511h1.835c1.435 0 1.835.036 1.835.165 0 .352-.412 1.553-.709 2.066-.333.577-1.021 1.41-1.155 1.4-.043-.004-.272-.244-.507-.533zm-4.532-4.193c-1.251-3.005-1.231-6.784.056-10.63.786-2.35 2.652-5.689 4.413-7.9L11.967 0l.422.493c.763.893 2.612 3.731 3.28 5.036 1.32 2.578 2.055 4.993 2.264 7.438.197 2.302-.176 4.837-.962 6.533l-.338.731-.727-.433-.727-.433H11.95c-2.466 0-3.287.039-3.476.166-.136.091-.453.29-.705.441l-.458.276-.405-.974zm9.338-1.79c.779-2.623.532-6.253-.635-9.344-.683-1.81-2.085-4.319-3.211-5.747-.357-.452-.387-.466-.609-.265-.441.398-1.854 2.622-2.544 4.002-1.927 3.856-2.484 7.995-1.521 11.308l.196.672h8.138l.186-.626zM3.311 19.835c.037-.155.108-.565.157-.909.079-.549.189-.729.885-1.443l.795-.815.002.507c.003.641.302 1.799.631 2.445l.254.498H4.64c-1.384-.001-1.396-.003-1.329-.283zm14.944-.376c.271-.613.529-1.616.606-2.352.031-.299.066-.282.762.379s.738.735.908 1.631c.098.516.179.952.179.97 0 .017-.618.031-1.373.031h-1.373l.291-.659zm-6.477-4.504a2.173 2.173 0 0 1-2.17-2.17c0-1.196.973-2.17 2.17-2.17s2.17.973 2.17 2.17-.973 2.17-2.17 2.17zm0-3.865c-.935 0-1.696.761-1.696 1.695s.761 1.696 1.696 1.696c.935 0 1.696-.761 1.696-1.696s-.761-1.695-1.696-1.695zM9.455 9.457a.657.657 0 1 1 0 1.314.657.657 0 0 1 0-1.314zm-.357 4.665a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6zm5.212-5.18a1.069 1.069 0 1 1 0 2.138 1.069 1.069 0 0 1 0-2.138zm0 5.75a1.418 1.418 0 1 1 0 2.836 1.418 1.418 0 0 1 0-2.836zM9.447 10.68l.491-.491.729.729-.491.491-.729-.729zm4.066-.336l.539.539-.729.729-.539-.539.729-.729zm-3.572 3.362l.491.491-.729.729-.491-.491.729-.729zm2.721 1.064l.61-.59.779.754-.61.59-.779-.754zm-1.717-2.167a.277.277 0 1 1 0 .554.277.277 0 0 1 0-.554zm.794 0a.277.277 0 1 1 0 .554.277.277 0 0 1 0-.554zm.794 0a.277.277 0 1 1 0 .554.277.277 0 0 1 0-.554z\"},\"child\":[]}]})(props);\n};\nexport function SiApachesolr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.741 3.8L8.926 16.573l14.849-6.851A11.979 11.979 0 0 0 20.741 3.8M11.975 0c-1.637 0-3.197.328-4.619.921l-1.585 13.36L13.693.124A12.168 12.168 0 0 0 11.975 0m11.918 10.459l-14.07 7.874 13.201-1.566a11.976 11.976 0 0 0 .869-6.308m-5.188 11.527a12.084 12.084 0 0 0 3.8-4.16l-12.374 2.457 8.574 1.703zM14.417.249L7.53 15.177 20.306 3.36A11.978 11.978 0 0 0 14.417.249M12.98 24a11.938 11.938 0 0 0 3.774-.945l-6.931-.822L12.98 24zM1.016 7.08a11.944 11.944 0 0 0-1.013 3.864l1.867 3.337-.854-7.201zm5.298-5.665a12.076 12.076 0 0 0-4.236 3.784l1.743 8.773L6.314 1.415z\"},\"child\":[]}]})(props);\n};\nexport function SiApachespark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.812 0c-.425.013-.845.215-1.196.605a3.593 3.593 0 00-.493.722c-.355.667-.425 1.415-.556 2.143a551.9 551.9 0 00-.726 4.087c-.027.16-.096.227-.244.273C5.83 8.386 4.06 8.94 2.3 9.514c-.387.125-.773.289-1.114.506-1.042.665-1.196 1.753-.415 2.71.346.422.79.715 1.284.936 1.1.49 2.202.976 3.3 1.47.019.01.036.013.053.019h-.004l1.306.535c0 .023.002.045 0 .073-.2 2.03-.39 4.063-.58 6.095-.04.419-.012.831.134 1.23.317.87 1.065 1.148 1.881.701.372-.204.666-.497.937-.818 1.372-1.623 2.746-3.244 4.113-4.872.111-.133.205-.15.363-.098.349.117.697.231 1.045.347h.001c.02.012.045.02.073.03l.142.042c1.248.416 2.68.775 3.929 1.19.4.132.622.164 1.045.098.311-.048.592-.062.828-.236.602-.33.995-.957.988-1.682-.005-.427-.154-.813-.35-1.186-.82-1.556-1.637-3.113-2.461-4.666-.078-.148-.076-.243.037-.375 1.381-1.615 2.756-3.236 4.133-4.855.272-.32.513-.658.653-1.058.308-.878-.09-1.57-1-1.741a2.783 2.783 0 00-1.235.069c-1.974.521-3.947 1.041-5.918 1.57-.175.047-.26.015-.355-.144a353.08 353.08 0 00-2.421-4.018 4.61 4.61 0 00-.652-.849c-.371-.37-.802-.549-1.227-.536zm.172 3.703a.592.592 0 01.189.211c.87 1.446 1.742 2.89 2.609 4.338.07.118.135.16.277.121 1.525-.41 3.052-.813 4.579-1.217.367-.098.735-.193 1.103-.289a.399.399 0 01-.1.2c-1.259 1.48-2.516 2.962-3.779 4.438-.11.13-.12.22-.04.37.937 1.803 1.768 3.309 2.498 4.76l-3.696-1.019c-.538-.18-1.077-.358-1.615-.539-.163-.055-.25-.03-.36.1-1.248 1.488-2.504 2.97-3.759 4.454a.398.398 0 01-.18.132c.035-.378.068-.757.104-1.136.149-1.572.297-3.144.451-4.716-.03-.318.117-.405-.322-.545-1.493-.593-3.346-1.321-4.816-1.905a.595.595 0 01.24-.134c1.797-.57 3.595-1.14 5.394-1.705.127-.04.199-.092.211-.233.013-.148.05-.294.076-.441.241-1.363.483-2.726.726-4.088.068-.386.14-.771.21-1.157z\"},\"child\":[]}]})(props);\n};\nexport function SiApachestorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.95 12.021 2.196.03c3.08.043 4.486-.147 5.866-.79.788-.367 1.333-.858 1.65-1.483.212-.417.243-.591.211-1.184-.096-1.826-1.412-2.807-3.77-2.807-1.775 0-3.558.456-6.276 1.604-.702.296-1.289.526-1.305.51-.064-.063 4.824-4.72 5.773-5.5.895-.734 1.831-1.282 2.722-1.591.694-.242.894-.266 2.235-.269 1.248-.003 1.592.031 2.253.221 3.16.91 5.022 3.453 4.129 5.639-.062.151-.007.172.462.172 1.502 0 3.023.904 3.585 2.131.805 1.76.035 3.89-1.73 4.785-.924.468-1.55.562-4.085.615l-2.356.049-1.27.947-1.271.947 3.43.049 3.43.049-.54.414-3.892 3.008a1411.35 1411.35 0 0 1-4.204 3.243l-.85.649H9.41c-.524 0-.92-.04-.902-.09.018-.05 1.581-1.297 3.474-2.773 4.2-3.275 3.97-3.092 3.97-3.163 0-.032-1.528-.07-3.397-.084l-3.398-.026 1.017-.778c.56-.427 1.86-1.45 2.89-2.274l1.873-1.496 2.643-.037c2.42-.033 2.692-.055 3.218-.25 1.174-.435 1.778-1.195 1.78-2.24.003-.875-.374-1.452-1.23-1.886-.773-.393-1.46-.512-2.963-.512l-1.152-.001.392-.605c.463-.716.62-1.213.619-1.948-.002-.721-.281-1.319-.901-1.93-1.588-1.562-4.46-1.977-6.579-.95-.777.376-3.271 2.348-2.714 2.145.108-.039.793-.093 1.521-.12 2.099-.076 3.333.277 4.357 1.245 1.315 1.243 1.713 3.22.958 4.754-.787 1.597-2.703 2.581-5.658 2.906-.605.066-2.566.097-5.104.079L0 13.395l1.325-1.035c.728-.57 2.104-1.64 3.057-2.38l1.733-1.346h2.197L3.95 12.021z\"},\"child\":[]}]})(props);\n};\nexport function SiApachesuperset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.168 6.045C2.603 6.045 0 8.579 0 12.014c0 3.434 2.603 5.941 6.168 5.941 2.184 0 3.888-1.026 5.775-3.078 1.53 2.033 4.037 3.136 5.89 3.078 3.566 0 6.167-2.503 6.167-5.941 0-3.438-2.601-5.97-6.168-5.97-2.864 0-5.138 2.425-5.771 3.173-.76-.9-1.674-1.665-2.682-2.274-1.019-.588-2.084-.898-3.211-.898Zm2.875 1.303c1.156.595 1.952 1.42 2.639 2.304-.534.63-1.245 1.483-1.739 2.07-.56-.658-1.58-1.907-2.609-2.308ZM6.186 9.703c1.018.027 1.81.458 3.435 2.408-1.158 1.378-2.202 2.244-3.435 2.244-1.51 0-2.41-.99-2.41-2.31s.906-2.382 2.41-2.342zm11.535 0c1.51 0 2.408 1.026 2.408 2.342 0 1.315-.862 2.301-2.402 2.31-.571-.037-1.529-.026-3.442-2.314l.074-.09.002.002c1.122-1.328 2.097-2.25 3.36-2.25zm-3.762 2.738c.61.68 1.795 1.988 2.713 2.24l-1.684 2.016h-.002c-.753-.371-2.031-1.134-2.716-2.215l1.689-2.04z\"},\"child\":[]}]})(props);\n};\nexport function SiApachetomcat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.66 3.494c-.377.637-.544 2.114-.502 3.162l-.005.004c.036.946.165 1.816.372 2.615-3.096.767-6.466 2.795-8.352 4.754-.882-1.19-1.232-2.168-1.336-2.908-.131-.936.092-1.794.646-2.482.867-1.077 2.098-1.153 3.365-.94-.025.2.001.391.081.51.335.494 2.135.668 3.21.189-.793-1.112-2.4-1.654-2.844-1.437a.762.762 0 00-.335.359c-.438-.078-.873-.137-1.19-.134-1.117.008-1.971.398-2.61 1.193-.628.78-.882 1.747-.734 2.8.14.996.633 2.055 1.46 3.154-.138.147-.27.293-.398.436C1.473 17.023 0 19.44 0 19.842v.207h2.658l-.046-.246c-.15-.793.15-1.785.763-2.526.386-.465 1.024-.996 2.027-1.241.891.87 2.027 1.794 3.291 2.685h1.976v-.208a.678.678 0 00-.327-.577c-.312-.204-.794-.232-1.237-.081-.421-.47-.658-1.098-.709-1.877 4.287.38 8.388 2.11 13.015 4.528h2.546l.033-.167c.048-.237-.082-.556-.346-.851-.456-.51-1.349-.752-2.095-.734-.514-.612-3.342-3.591-3.507-3.765a9.626 9.626 0 002.673-2.847h1.388v-.298H20.89a9.81 9.81 0 00.223-.419h.989v-.299h-.845c.628-1.359.975-2.918.942-4.625l.003.002c-.002-.468-.147-2.445-.415-2.989-.726.276-2.047 1.17-2.346 2.084a14.557 14.557 0 00-4.463.056c-.237-.984-1.423-1.736-2.318-2.16zm.164.577c.211 1.148.593 1.869 1.42 2.223.734-.21 1.58-.34 2.448-.388l.717 1.571.46-1.585c.876.029 1.736.142 2.485.349.762-.554 1.057-1.4 1.218-2.138.202.86.178 2.717.18 2.717a9.883 9.883 0 01-.158 1.988l-.824.35.726.11a9.19 9.19 0 01-.198.714l-.703.205.56.201c-.094.253-.2.5-.314.738h-1.16v.299h1.008a8.788 8.788 0 01-.238.419h-.77v.298h.583a8.634 8.634 0 01-2.921 2.748c-1.334-.664-2.341-1.634-3.079-2.748h.446v-.298h-.636a9.195 9.195 0 01-.236-.419h.872v-.299h-1.026a10.12 10.12 0 01-.46-1.094l.522-.147-.659-.263c-.066-.215-.127-.43-.18-.646l1.015-.069-1.16-.615c-.282-1.563-.225-3.08.062-4.221zm2.946 2.97c-.89 0-1.24.909-1.255.948l.252.094c.012-.033.302-.773 1.003-.773.154 0 .262.062.34.195.182.314.152.933 0 1.58h-1.227v.269h1.159a5.679 5.679 0 01-.496 1.225l-.064.112 1.537.967-.865.57.148.224.967-.637 1.043.681.143-.228-.967-.598 1.518-.986v-.001c-.318-.47-.42-.872-.286-1.329h.108l1.167-.001.002-.268h-1.175c.216-.51.52-.968 1.602-.968v-.27c-.999 0-1.596.397-1.883 1.238h-2.154c.15-.672.177-1.333-.046-1.715a.63.63 0 00-.57-.33zm.55 2.313h2.126c-.095.304-.057.763.178 1.157h-2.737c.166-.334.32-.74.433-1.157zm-3.683.321c.155.515.344.997.562 1.451h-.91v.299h1.06c.075.142.153.282.233.419H12.29v.298h1.478c.91 1.416 2.14 2.499 3.534 3.318a9.45 9.45 0 00.456-.28l.362.39-.61.938 1.04-.474.606.652-1.019.776 1.403-.363 1.905 2.05.16-.014c1.007-.086 1.58.46 1.73.63.112.124.179.237.215.326h-2.036c-4.67-2.437-8.771-4.155-13.127-4.53.01-.607.117-1.293.324-2.058l-.4-.108c-.213.786-.325 1.497-.338 2.134-.454-.03-.91-.046-1.371-.046-.391 0-.747.036-1.072.1a14.771 14.771 0 01-1.09-1.21c.546-.57 1.19-1.123 1.893-1.643l.967.668-.316-1.128c.297-.2.603-.394.914-.58l1.434.73-.673-1.162c.198-.106.398-.21.598-.31l2.007 1.346-.66-1.952a15.32 15.32 0 012.034-.667zm3.492 1.105h2.22l-1.084.715zM4.153 14.675c.273.337.577.678.91 1.021a4.104 4.104 0 00-2.007 1.316c-.629.76-.962 1.762-.886 2.622H.495c.337-.728 1.677-2.833 3.658-4.959z\"},\"child\":[]}]})(props);\n};\nexport function SiAparat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0014 1.5938C2.7317 1.5906-1.9119 12.7965 4.641 19.3515c2.975 2.976 7.4496 3.8669 11.3374 2.257 3.8877-1.61 6.4228-5.4036 6.4228-9.6116 0-5.7441-4.6555-10.4012-10.3997-10.4031zM6.11 6.783c.5011-2.5982 3.8927-3.2936 5.376-1.1028 1.4834 2.1907-.4216 5.0816-3.02 4.5822-1.6118-.3098-2.6668-1.868-2.356-3.4794zm4.322 8.9882c-.5045 2.5971-3.8965 3.288-5.377 1.0959-1.4807-2.1922.427-5.0807 3.0247-4.5789 1.612.3114 2.6655 1.8714 2.3524 3.483zm1.2605-2.405c-1.1528-.2231-1.4625-1.7273-.4917-2.3877.9708-.6604 2.256.18 2.0401 1.3343-.1347.7198-.8294 1.1924-1.5484 1.0533zm6.197 3.8375c-.501 2.5981-3.8927 3.2935-5.376 1.1028-1.4834-2.1908.4217-5.0817 3.0201-4.5822 1.6117.3097 2.6667 1.8679 2.356 3.4794zm-1.9662-5.5018c-2.5981-.501-3.2935-3.8962-1.1027-5.3795 2.1907-1.4834 5.0816.4216 4.5822 3.02-.3082 1.6132-1.8668 2.6701-3.4795 2.3595zm-2.3348 11.5618l2.2646.611c1.9827.5263 4.0167-.6542 4.5433-2.6368l.639-2.4016a11.3828 11.3828 0 0 1-7.4469 4.4274zM21.232 3.5985l-2.363-.6284a11.3757 11.3757 0 0 1 4.3538 7.619l.6495-2.4578c.5194-1.9804-.6615-4.0076-2.6403-4.5328zM.6713 13.8086l-.5407 2.04c-.5263 1.9826.6542 4.0166 2.6368 4.5432l2.1066.5618a11.3792 11.3792 0 0 1-4.2027-7.145zM10.3583.702L8.1498.1261C6.166-.4024 4.1296.7785 3.603 2.763l-.5512 2.082A11.3757 11.3757 0 0 1 10.3583.702Z\"},\"child\":[]}]})(props);\n};\nexport function SiApifox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9747 10.0653a10.4564 10.4564 0 0 0-.456-2.3542 4.1208 4.1208 0 0 1-.364.7432A9.4202 9.4202 0 0 0 19.306 2.19 9.3682 9.3682 0 0 0 16.9823.9788a7.3504 7.3504 0 0 0-.3378-.1114 7.0423 7.0423 0 0 1 1.425 3.4709c.0056.044.0106.088.015.1325a.0606.0606 0 0 1 0 .01c.0045.0456.009.0913.0123.1375v.024a5.249 5.249 0 0 1 .0095.1368c.0028.0457.0049.0919.0066.1375 0 .0323 0 .0652.0033.0975a.1938.1938 0 0 0 0 .0155v.1648a7.0468 7.0468 0 0 1-1.267 4.0414 6.3345 6.3345 0 0 1 .0746 2.1955 6.1772 6.1772 0 0 0 1.164-.4013 6.1845 6.1845 0 0 0 .801-.4408c.0524.182.0969.3673.132.5566.0747.3914.112.789.1114 1.1873a6.3172 6.3172 0 0 1-.0708.9464 6.2386 6.2386 0 0 0 1.6144-.3897c.272-.1054.5361-.23.7905-.3729.0382.213.0653.4277.0812.6435.012.1566.0178.3147.0178.4743a6.3081 6.3081 0 0 1-.1341 1.2981 6.2523 6.2523 0 0 0 1.906-.3807 10.457 10.457 0 0 0 .6614-3.6713 8.6007 8.6007 0 0 0-.024-.8155zm-2.8073 5.7933a5.6853 5.6853 0 0 1-.3896.0128h-.1298a6.2501 6.2501 0 0 0 .1977-1.5676c0-.2356-.0132-.4712-.0395-.7053a6.2298 6.2298 0 0 1-1.9445.5945 6.0272 6.0272 0 0 1-.5723.05 6.2018 6.2018 0 0 0 .1147-.9278 6.4769 6.4769 0 0 0 .0078-.3124 6.2899 6.2899 0 0 0-.1414-1.332 6.2339 6.2339 0 0 1-2.1203.7759l-.0051-.0066a6.1778 6.1778 0 0 0 .1114-.8857 5.6166 5.6166 0 0 0 .0095-.3396c0-.3786-.034-.7564-.1019-1.1289a7.0574 7.0574 0 0 1-5.1175 2.1877 7.043 7.043 0 0 1-3.2465-.7872 6.2634 6.2634 0 0 0 1.2937-.6852 6.3 6.3 0 0 1-3.5727-5.6808 6.2958 6.2958 0 0 1 .1024-1.1345 6.196 6.196 0 0 1 .3012-1.0877 6.2072 6.2072 0 0 1 .4848-1.002 6.2628 6.2628 0 0 1 .7549-1.017 12.2123 12.2123 0 0 0-2.6843 1.67A12.2067 12.2067 0 0 0 .3279 9.1812 12.196 12.196 0 0 0 0 12.0013a12.1531 12.1531 0 0 0 1.4902 5.8507 6.251 6.251 0 0 1 .4453-1.7128 11.659 11.659 0 0 0 8.5845 6.9934 6.2357 6.2357 0 0 1-.8038-1.3833 11.008 11.008 0 0 0 3.1256.5338c.0941 0 .1887.0033.2834.0033a10.9836 10.9836 0 0 0 4.867-1.129 6.1759 6.1759 0 0 1-.7237-.4781 10.5065 10.5065 0 0 0 4.3203-3.0945 10.4688 10.4688 0 0 0 1.3555-2.0925 6.2582 6.2582 0 0 1-1.7769.3662z\"},\"child\":[]}]})(props);\n};\nexport function SiApmterminals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.8 2.95 0 16.55v4.5L24 9.32V2.95zm.2 10.1-8.87 4.21v3.68l8.87-3.4Z\"},\"child\":[]}]})(props);\n};\nexport function SiApollographql (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,0C5.372,0 0,5.373 0,12 0,18.628 5.372,24 12,24 18.627,24 24,18.628 24,12A12.014,12.014 0 0 0 23.527,8.657 0.6,0.6 0 0 0 22.4,9.066H22.398C22.663,10.009 22.8,10.994 22.8,12A10.73,10.73 0 0 1 19.637,19.637 10.729,10.729 0 0 1 12,22.8 10.73,10.73 0 0 1 4.363,19.637 10.728,10.728 0 0 1 1.2,12 10.73,10.73 0 0 1 4.363,4.363 10.728,10.728 0 0 1 12,1.2C14.576,1.2 17.013,2.096 18.958,3.74A1.466,1.466 0 1 0 19.82,2.9 11.953,11.953 0 0 0 12,0ZM10.56,5.88 6.36,16.782H8.99L9.677,14.934H13.646L12.927,12.892H10.314L12.014,8.201 15.038,16.781H17.669L13.47,5.88Z\"},\"child\":[]}]})(props);\n};\nexport function SiApostrophe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.674 0c-.795.001-1.794.095-3.167.313l-4.6.729c-3.138.497-4.224 1.003-5.274 1.798a6.485 6.485 0 00-2.24 3.082c-.43 1.245-.577 2.434-.08 5.571l.729 4.6c.497 3.138 1.003 4.22 1.798 5.273a6.485 6.485 0 003.082 2.24c1.245.431 2.434.578 5.571.081l4.6-.729c3.138-.497 4.22-1.003 5.273-1.799a6.477 6.477 0 002.24-3.081c.431-1.245.578-2.434.082-5.571l-.73-4.6c-.497-3.138-1.003-4.224-1.799-5.274a6.477 6.477 0 00-3.081-2.24C17.378.152 16.695 0 15.674 0zm-5.319 4.566a.52.52 0 01.003 0 .52.52 0 01.52.444l.77 4.865a.52.52 0 01-.435.6l-4.859.77a.52.52 0 01-.602-.436l-.77-4.866a.52.52 0 01.435-.6l4.86-.77a.52.52 0 01.078-.007zM9.92 5.692l-3.823.605.612 3.83 3.813-.605zm6.504 2.91a3.274 3.274 0 01.497 6.513 3.258 3.258 0 01-3.713-2.726 3.274 3.274 0 013.216-3.787zm-.054 1.058a2.226 2.226 0 10.388 4.42 2.208 2.208 0 001.818-2.541 2.226 2.226 0 00-2.206-1.879zm-6.45 3a.52.52 0 01.424.208l3.824 4.964a.52.52 0 01-.333.839l-5.932.937a.52.52 0 01-.576-.695l2.108-5.901a.52.52 0 01.486-.352zm.18 1.611L8.61 18.438l4.186-.664z\"},\"child\":[]}]})(props);\n};\nexport function SiAppgallery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.734 0C1.804 0 0 1.803 0 6.733v10.535C0 22.198 1.803 24 6.734 24h10.529C22.193 24 24 22.197 24 17.268V6.733C24 1.803 22.197 0 17.266 0zM8 4h.565A3.439 3.439 0 0 0 12 7.435 3.439 3.439 0 0 0 15.435 4H16c0 2.206-1.794 4-4 4S8 6.206 8 4zm6.468 8h.52l.713 2.16.696-2.158h.66l-1.092 3.14h-.532l-.714-2.063-.714 2.063h-.528l-1.095-3.14h.678l.694 2.158zm6.236 0h.629v3.138h-.629zM2.666 12h.638v1.267h1.439V12h.637v3.142h-.637v-1.276h-1.44v1.276h-.637zm5.668 0h.637v1.772c0 .9-.496 1.417-1.36 1.417-.856 0-1.347-.507-1.347-1.39v-1.797H6.9v1.775c0 .524.255.805.719.805.46 0 .714-.273.714-.784zm2.344 0h.563l1.378 3.14h-.668l-.282-.654H10.23l-.286.654h-.651zm6.893.002h2.312v.572H18.2v.643h1.16v.573H18.2v.777h1.744v.573H17.57zm-6.623.793-.48 1.124h.964z\"},\"child\":[]}]})(props);\n};\nexport function SiAppian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.646 6.117C19.538 1.763 17.883 0 13.636 0H7.34v4.066h4.57c1.799 0 2.807 0 2.807 1.655v2.375c-.828 0-2.88-.036-4.426-.036-4.246 0-5.83 1.727-5.937 6.117v3.742c.108 4.102 1.51 5.865 5.253 6.081l3.85-4.066c-.397.036-.864.036-1.44.036-1.798 0-2.806 0-2.806-1.655v-4.57c0-1.655 1.007-1.655 2.806-1.655 1.908 0 2.807 0 2.807 1.655v10.22h4.821z\"},\"child\":[]}]})(props);\n};\nexport function SiAppium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.923 0C5.937 0 .976 4.384.07 10.115a11.943 11.943 0 0 1 7.645-2.754 11.982 11.982 0 0 1 9.43 4.58 11.942 11.942 0 0 0 1.015-8.769 12.066 12.066 0 0 0-.626-1.772l-.003-.008A11.968 11.968 0 0 0 11.923 0Zm7.721 2.754A12.002 12.002 0 0 1 9.398 16.521a12.082 12.082 0 0 0 9.02 5.617c.24-.119.766-.51 1.224-.89A11.971 11.971 0 0 0 23.995 12a11.98 11.98 0 0 0-4.35-9.247zM9.33 7.557a12.159 12.159 0 0 0-2.647.401A11.944 11.944 0 0 0 .01 12.595l-.005.006c.021.427.065.853.131 1.275C1.037 19.61 6 24 11.991 24c1.45 0 2.887-.26 4.243-.773a12 12 0 0 1-6.905-15.67z\"},\"child\":[]}]})(props);\n};\nexport function SiApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701\"},\"child\":[]}]})(props);\n};\nexport function SiApplearcade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.198 18.24a.966.966 0 0 1-.194-.571v-.955s0-.571.563-.313c0 0 6.919 3.135 8.033 3.626a7.832 7.832 0 0 0 3.408.729 8.216 8.216 0 0 0 3.396-.729l8.037-3.626c.559-.258.559.313.559.313v.955a1.038 1.038 0 0 1-.198.575c-.19.258-.515.539-1.411.959-.713.337-6.23 2.818-6.995 3.17a8.008 8.008 0 0 1-3.4.729 8.336 8.336 0 0 1-3.82-.927c-1.435-.65-5.849-2.631-6.567-2.972-.9-.428-1.153-.654-1.411-.963zm1.411-5.973l6.987-3.17a7.975 7.975 0 0 1 2.164-.634v5.707c0 .396.571.697 1.236.697s1.141-.313 1.141-.697V8.479c.778.105 1.54.313 2.263.618l6.987 3.17c.579.273 1.609.761 1.609 1.538s-1.011 1.236-1.609 1.53l-6.987 3.17a8.2 8.2 0 0 1-3.396.729 7.832 7.832 0 0 1-3.408-.729l-6.987-3.17C1.011 15.042 0 14.574 0 13.801s1.03-1.264 1.609-1.534zm1.807 2.247c.77.396 1.683.396 2.453 0 .682-.396.686-1.026 0-1.419a2.705 2.705 0 0 0-2.453 0c-.68.392-.666 1.02 0 1.419zM12 7.595a3.35 3.35 0 1 1 3.349-3.351v.003c0 1.849-1.5 3.348-3.349 3.348z\"},\"child\":[]}]})(props);\n};\nexport function SiApplemusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.994 6.124a9.23 9.23 0 00-.24-2.19c-.317-1.31-1.062-2.31-2.18-3.043a5.022 5.022 0 00-1.877-.726 10.496 10.496 0 00-1.564-.15c-.04-.003-.083-.01-.124-.013H5.986c-.152.01-.303.017-.455.026-.747.043-1.49.123-2.193.4-1.336.53-2.3 1.452-2.865 2.78-.192.448-.292.925-.363 1.408-.056.392-.088.785-.1 1.18 0 .032-.007.062-.01.093v12.223c.01.14.017.283.027.424.05.815.154 1.624.497 2.373.65 1.42 1.738 2.353 3.234 2.801.42.127.856.187 1.293.228.555.053 1.11.06 1.667.06h11.03a12.5 12.5 0 001.57-.1c.822-.106 1.596-.35 2.295-.81a5.046 5.046 0 001.88-2.207c.186-.42.293-.87.37-1.324.113-.675.138-1.358.137-2.04-.002-3.8 0-7.595-.003-11.393zm-6.423 3.99v5.712c0 .417-.058.827-.244 1.206-.29.59-.76.962-1.388 1.14-.35.1-.706.157-1.07.173-.95.045-1.773-.6-1.943-1.536a1.88 1.88 0 011.038-2.022c.323-.16.67-.25 1.018-.324.378-.082.758-.153 1.134-.24.274-.063.457-.23.51-.516a.904.904 0 00.02-.193c0-1.815 0-3.63-.002-5.443a.725.725 0 00-.026-.185c-.04-.15-.15-.243-.304-.234-.16.01-.318.035-.475.066-.76.15-1.52.303-2.28.456l-2.325.47-1.374.278c-.016.003-.032.01-.048.013-.277.077-.377.203-.39.49-.002.042 0 .086 0 .13-.002 2.602 0 5.204-.003 7.805 0 .42-.047.836-.215 1.227-.278.64-.77 1.04-1.434 1.233-.35.1-.71.16-1.075.172-.96.036-1.755-.6-1.92-1.544-.14-.812.23-1.685 1.154-2.075.357-.15.73-.232 1.108-.31.287-.06.575-.116.86-.177.383-.083.583-.323.6-.714v-.15c0-2.96 0-5.922.002-8.882 0-.123.013-.25.042-.37.07-.285.273-.448.546-.518.255-.066.515-.112.774-.165.733-.15 1.466-.296 2.2-.444l2.27-.46c.67-.134 1.34-.27 2.01-.403.22-.043.442-.088.663-.106.31-.025.523.17.554.482.008.073.012.148.012.223.002 1.91.002 3.822 0 5.732z\"},\"child\":[]}]})(props);\n};\nexport function SiApplenews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12.9401c2.726 4.6726 6.3944 8.385 11.039 11.0582H1.4164C.634 23.9983 0 23.3639 0 22.5819v-9.6418ZM0 1.4138C0 .6337.632.0018 1.4116.0018h4.8082L24 17.7583v4.773c0 .3891-.1544.762-.4295 1.0373a1.4674 1.4674 0 0 1-1.037.4296h-4.774L0 6.2416M12.9634.0017h9.6182A1.4187 1.4187 0 0 1 24 1.4205v9.6256C21.2648 6.4935 17.6157 2.7745 12.9634.0017Z\"},\"child\":[]}]})(props);\n};\nexport function SiApplepay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.15 4.318a42.16 42.16 0 0 0-.454.003c-.15.005-.303.013-.452.04a1.44 1.44 0 0 0-1.06.772c-.07.138-.114.278-.14.43-.028.148-.037.3-.04.45A10.2 10.2 0 0 0 0 6.222v11.557c0 .07.002.138.003.207.004.15.013.303.04.452.027.15.072.291.142.429a1.436 1.436 0 0 0 .63.63c.138.07.278.115.43.142.148.027.3.036.45.04l.208.003h20.194l.207-.003c.15-.004.303-.013.452-.04.15-.027.291-.071.428-.141a1.432 1.432 0 0 0 .631-.631c.07-.138.115-.278.141-.43.027-.148.036-.3.04-.45.002-.07.003-.138.003-.208l.001-.246V6.221c0-.07-.002-.138-.004-.207a2.995 2.995 0 0 0-.04-.452 1.446 1.446 0 0 0-1.2-1.201 3.022 3.022 0 0 0-.452-.04 10.448 10.448 0 0 0-.453-.003zm0 .512h19.942c.066 0 .131.002.197.003.115.004.25.01.375.032.109.02.2.05.287.094a.927.927 0 0 1 .407.407.997.997 0 0 1 .094.288c.022.123.028.258.031.374.002.065.003.13.003.197v11.552c0 .065 0 .13-.003.196-.003.115-.009.25-.032.375a.927.927 0 0 1-.5.693 1.002 1.002 0 0 1-.286.094 2.598 2.598 0 0 1-.373.032l-.2.003H1.906c-.066 0-.133-.002-.196-.003a2.61 2.61 0 0 1-.375-.032c-.109-.02-.2-.05-.288-.094a.918.918 0 0 1-.406-.407 1.006 1.006 0 0 1-.094-.288 2.531 2.531 0 0 1-.032-.373 9.588 9.588 0 0 1-.002-.197V6.224c0-.065 0-.131.002-.197.004-.114.01-.248.032-.375.02-.108.05-.199.094-.287a.925.925 0 0 1 .407-.406 1.03 1.03 0 0 1 .287-.094c.125-.022.26-.029.375-.032.065-.002.131-.002.196-.003zm4.71 3.7c-.3.016-.668.199-.88.456-.191.22-.36.58-.316.918.338.03.675-.169.888-.418.205-.258.345-.603.308-.955zm2.207.42v5.493h.852v-1.877h1.18c1.078 0 1.835-.739 1.835-1.812 0-1.07-.742-1.805-1.808-1.805zm.852.719h.982c.739 0 1.161.396 1.161 1.089 0 .692-.422 1.092-1.164 1.092h-.979zm-3.154.3c-.45.01-.83.28-1.05.28-.235 0-.593-.264-.981-.257a1.446 1.446 0 0 0-1.23.747c-.527.908-.139 2.255.374 2.995.249.366.549.769.944.754.373-.014.52-.242.973-.242.454 0 .586.242.98.235.41-.007.667-.366.915-.733.286-.417.403-.82.41-.841-.007-.008-.79-.308-.797-1.209-.008-.754.615-1.113.644-1.135-.352-.52-.9-.578-1.09-.593a1.123 1.123 0 0 0-.092-.002zm8.204.397c-.99 0-1.606.533-1.652 1.256h.777c.072-.358.369-.586.845-.586.502 0 .803.266.803.711v.309l-1.097.064c-.951.054-1.488.484-1.488 1.184 0 .72.548 1.207 1.332 1.207.526 0 1.032-.281 1.264-.727h.019v.659h.788v-2.76c0-.803-.62-1.317-1.591-1.317zm1.94.072l1.446 4.009c0 .003-.073.24-.073.247-.125.41-.33.571-.711.571-.069 0-.206 0-.267-.015v.666c.06.011.267.019.335.019.83 0 1.226-.312 1.568-1.283l1.5-4.214h-.868l-1.012 3.259h-.015l-1.013-3.26zm-1.167 2.189v.316c0 .521-.45.917-1.024.917-.442 0-.731-.228-.731-.579 0-.342.278-.56.769-.593z\"},\"child\":[]}]})(props);\n};\nexport function SiApplepodcasts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.34 0A5.328 5.328 0 000 5.34v13.32A5.328 5.328 0 005.34 24h13.32A5.328 5.328 0 0024 18.66V5.34A5.328 5.328 0 0018.66 0zm6.525 2.568c2.336 0 4.448.902 6.056 2.587 1.224 1.272 1.912 2.619 2.264 4.392.12.59.12 2.2.007 2.864a8.506 8.506 0 01-3.24 5.296c-.608.46-2.096 1.261-2.336 1.261-.088 0-.096-.091-.056-.46.072-.592.144-.715.48-.856.536-.224 1.448-.874 2.008-1.435a7.644 7.644 0 002.008-3.536c.208-.824.184-2.656-.048-3.504-.728-2.696-2.928-4.792-5.624-5.352-.784-.16-2.208-.16-3 0-2.728.56-4.984 2.76-5.672 5.528-.184.752-.184 2.584 0 3.336.456 1.832 1.64 3.512 3.192 4.512.304.2.672.408.824.472.336.144.408.264.472.856.04.36.03.464-.056.464-.056 0-.464-.176-.896-.384l-.04-.03c-2.472-1.216-4.056-3.274-4.632-6.012-.144-.706-.168-2.392-.03-3.04.36-1.74 1.048-3.1 2.192-4.304 1.648-1.737 3.768-2.656 6.128-2.656zm.134 2.81c.409.004.803.04 1.106.106 2.784.62 4.76 3.408 4.376 6.174-.152 1.114-.536 2.03-1.216 2.88-.336.43-1.152 1.15-1.296 1.15-.023 0-.048-.272-.048-.603v-.605l.416-.496c1.568-1.878 1.456-4.502-.256-6.224-.664-.67-1.432-1.064-2.424-1.246-.64-.118-.776-.118-1.448-.008-1.02.167-1.81.562-2.512 1.256-1.72 1.704-1.832 4.342-.264 6.222l.413.496v.608c0 .336-.027.608-.06.608-.03 0-.264-.16-.512-.36l-.034-.011c-.832-.664-1.568-1.842-1.872-2.997-.184-.698-.184-2.024.008-2.72.504-1.878 1.888-3.335 3.808-4.019.41-.145 1.133-.22 1.814-.211zm-.13 2.99c.31 0 .62.06.844.178.488.253.888.745 1.04 1.259.464 1.578-1.208 2.96-2.72 2.254h-.015c-.712-.331-1.096-.956-1.104-1.77 0-.733.408-1.371 1.112-1.745.224-.117.534-.176.844-.176zm-.011 4.728c.988-.004 1.706.349 1.97.97.198.464.124 1.932-.218 4.302-.232 1.656-.36 2.074-.68 2.356-.44.39-1.064.498-1.656.288h-.003c-.716-.257-.87-.605-1.164-2.644-.341-2.37-.416-3.838-.218-4.302.262-.616.974-.966 1.97-.97z\"},\"child\":[]}]})(props);\n};\nexport function SiAppletv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.57 17.735h-1.815l-3.34-9.203h1.633l2.02 5.987c.075.231.273.9.586 2.012l.297-.997.33-1.006 2.094-6.004H24zm-5.344-.066a5.76 5.76 0 0 1-1.55.207c-1.23 0-1.84-.693-1.84-2.087V9.646h-1.063V8.532h1.121V7.081l1.476-.602v2.062h1.707v1.113H13.38v5.805c0 .446.074.75.214.932.14.182.396.264.75.264.207 0 .495-.041.883-.115zm-7.29-5.343c.017 1.764 1.55 2.358 1.567 2.366-.017.042-.248.842-.808 1.658-.487.71-.99 1.418-1.79 1.435-.783.016-1.03-.462-1.93-.462-.89 0-1.17.445-1.913.478-.758.025-1.344-.775-1.838-1.484-.998-1.451-1.765-4.098-.734-5.88.51-.89 1.426-1.451 2.416-1.46.75-.016 1.468.512 1.93.512.461 0 1.327-.627 2.234-.536.38.016 1.452.157 2.136 1.154-.058.033-1.278.743-1.27 2.219M6.468 7.988c.404-.495.685-1.18.61-1.864-.585.025-1.294.388-1.723.883-.38.437-.71 1.138-.619 1.806.652.05 1.328-.338 1.732-.825Z\"},\"child\":[]}]})(props);\n};\nexport function SiAppsignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.003 7.328c-1.781 0-3.055 1.57-4.368 3.318-.815-3.714-1.72-7.424-4.601-7.424-2.881 0-3.789 3.71-4.617 7.427-1.31-1.752-2.584-3.32-4.365-3.32C1.918 7.329 0 8.098 0 10.986v5.24c0 2.832 1.512 3.527 2.42 3.766 1.565.406 5.334.786 9.578.786s8.013-.38 9.579-.786c.907-.24 2.423-.934 2.423-3.766v-5.24c0-2.888-1.92-3.658-3.052-3.658m-8.914-2.469c1.726 0 2.384 3.406 3.3 7.493-1.004 1.238-2.072 2.236-3.3 2.236-1.228 0-2.292-.998-3.3-2.236.857-3.822 1.519-7.493 3.3-7.493M1.664 16.242v-5.24c0-1.823.981-2.02 1.414-2.02 1.257 0 2.62 2.096 3.893 3.78-.91 3.818-1.873 6.143-4.145 5.664-.593-.16-1.15-.537-1.15-2.167m4.46 2.655c1.006-1.093 1.638-2.8 2.139-4.607 1.05 1.103 2.266 1.935 3.772 1.935 1.506 0 2.718-.832 3.773-1.935.488 1.807 1.13 3.514 2.135 4.607a67.507 67.507 0 0 1-11.806 0m16.282-2.655c0 1.637-.556 2.007-1.15 2.167-2.275.482-3.235-1.846-4.145-5.665 1.287-1.683 2.62-3.779 3.894-3.779.425 0 1.414.197 1.414 2.02z\"},\"child\":[]}]})(props);\n};\nexport function SiAppsmith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.15 12.723v-1.845h-1.163v.422h.61v1.423h-.61v.421h1.774v-.421zm5.69 1.167v-.421H24v.421zm-.66-2.852q.213.214.213.604v1.502h-.552v-1.41q0-.43-.426-.43a.48.48 0 0 0-.36.152q-.147.151-.147.419v1.27h-.552v-3.023h.552v1.06q.259-.356.69-.356.37 0 .582.212zm-2.475.262h-.706v1.225q0 .11.06.153.058.044.198.043h.404v.422c-.12.012-.432.017-.505.017q-.368 0-.538-.138-.17-.138-.17-.441V11.3h-.513v-.422h.514v-.756h.55v.756h.706zm-4.447-.255q.208.22.209.602v1.497h-.553v-1.41q0-.43-.39-.43a.427.427 0 0 0-.343.152q-.129.151-.13.441v1.247h-.547v-1.41q0-.43-.395-.43a.421.421 0 0 0-.336.152q-.13.152-.13.442v1.247h-.552v-2.267h.536v.325q.232-.377.644-.377.518 0 .703.421.254-.421.702-.421.374 0 .582.22zm-5.83 1.379h.541q.022.21.138.299.117.087.367.087.448 0 .448-.272a.215.215 0 0 0-.097-.189q-.096-.066-.347-.11l-.259-.043q-.742-.123-.742-.685 0-.32.246-.503.245-.182.694-.182.97 0 1.001.767h-.522q-.009-.202-.127-.288-.118-.086-.351-.085-.396 0-.396.263a.207.207 0 0 0 .088.178q.088.063.29.099l.285.043q.413.075.6.238.186.162.186.452 0 .342-.263.527-.263.184-.742.184-.993.001-1.037-.78zm-.77-1.278q.272.325.272.865t-.272.86q-.276.324-.742.324-.466 0-.703-.346v1.154h-.552v-3.125h.531v.325q.246-.377.725-.377.463 0 .74.32zm-.874 1.594q.272 0 .43-.198.157-.197.153-.548 0-.347-.151-.53-.152-.182-.433-.182-.276 0-.43.19-.153.188-.153.54 0 .355.158.54.148.188.425.188zm-1.972-1.594q.272.325.272.865t-.272.86q-.276.324-.742.324-.466 0-.703-.346v1.154h-.552v-3.125h.531v.325q.246-.377.725-.377.464 0 .74.32zm-.874 1.594q.272 0 .43-.198.158-.197.153-.548 0-.347-.151-.53-.152-.182-.433-.182-.276 0-.43.19-.153.188-.153.54 0 .355.158.54.15.188.426.188zm-2.331.404q-.04-.07-.062-.276-.228.33-.728.33-.374 0-.595-.18Q0 12.837 0 12.516q0-.62.87-.706l.342-.03a.504.504 0 0 0 .245-.082.215.215 0 0 0 .075-.178q0-.145-.094-.213-.095-.068-.319-.068-.241 0-.347.081c-.07.055-.111.147-.122.28H.105q.048-.773 1.019-.774.944 0 .944.681v1.207q0 .3.092.43zm-.237-.484q.162-.143.162-.41v-.207a.473.473 0 0 1-.26.092l-.298.034q-.22.027-.313.103a.27.27 0 0 0-.094.222.276.276 0 0 0 .098.227q.099.081.283.081.26 0 .422-.142Zm14.282-2.142a.29.29 0 0 1-.09-.214.307.307 0 0 1 .307-.307.29.29 0 0 1 .215.09.3.3 0 0 1 .087.217.29.29 0 0 1-.09.215.295.295 0 0 1-.213.087.3.3 0 0 1-.216-.088z\"},\"child\":[]}]})(props);\n};\nexport function SiAppstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.8086 14.9194l6.1107-11.0368c.0837-.1513.1682-.302.2437-.4584.0685-.142.1267-.2854.1646-.4403.0803-.3259.0588-.6656-.066-.9767-.1238-.3095-.3417-.5678-.6201-.7355a1.4175 1.4175 0 0 0-.921-.1924c-.3207.043-.6135.1935-.8443.4288-.1094.1118-.1996.2361-.2832.369-.092.1463-.175.2979-.259.4492l-.3864.6979-.3865-.6979c-.0837-.1515-.1667-.303-.2587-.4492-.0837-.1329-.1739-.2572-.2835-.369-.2305-.2353-.5233-.3857-.844-.429a1.4181 1.4181 0 0 0-.921.1926c-.2784.1677-.4964.426-.6203.7355-.1246.311-.1461.6508-.066.9767.038.155.0962.2984.1648.4403.0753.1564.1598.307.2437.4584l1.248 2.2543-4.8625 8.7825H2.0295c-.1676 0-.3351-.0007-.5026.0092-.1522.009-.3004.0284-.448.0714-.3108.0906-.5822.2798-.7783.548-.195.2665-.3006.5929-.3006.9279 0 .3352.1057.6612.3006.9277.196.2683.4675.4575.7782.548.1477.043.296.0623.4481.0715.1675.01.335.009.5026.009h13.0974c.0171-.0357.059-.1294.1-.2697.415-1.4151-.6156-2.843-2.0347-2.843zM3.113 18.5418l-.7922 1.5008c-.0818.1553-.1644.31-.2384.4705-.067.1458-.124.293-.1611.452-.0785.3346-.0576.6834.0645 1.0029.1212.3175.3346.583.607.7549.2727.172.5891.2416.9013.1975.3139-.044.6005-.1986.8263-.4402.1072-.1148.1954-.2424.2772-.3787.0902-.1503.1714-.3059.2535-.4612L6 19.4636c-.0896-.149-.9473-1.4704-2.887-.9218m20.5861-3.0056a1.4707 1.4707 0 0 0-.779-.5407c-.1476-.0425-.2961-.0616-.4483-.0705-.1678-.0099-.3352-.0091-.503-.0091H18.648l-4.3891-7.817c-.6655.7005-.9632 1.485-1.0773 2.1976-.1655 1.0333.0367 2.0934.546 3.0004l5.2741 9.3933c.084.1494.167.299.2591.4435.0837.131.1739.2537.2836.364.231.2323.5238.3809.8449.4232.3192.0424.643-.0244.9217-.1899.2784-.1653.4968-.4204.621-.7257.1246-.3072.146-.6425.0658-.9641-.0381-.1529-.0962-.2945-.165-.4346-.0753-.1543-.1598-.303-.2438-.4524l-1.216-2.1662h1.596c.1677 0 .3351.0009.5029-.009.1522-.009.3007-.028.4483-.0705a1.4707 1.4707 0 0 0 .779-.5407A1.5386 1.5386 0 0 0 24 16.452a1.539 1.539 0 0 0-.3009-.9158Z\"},\"child\":[]}]})(props);\n};\nexport function SiAppveyor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 12,0 C 18.6,0 24,5.4 24,12 24,18.6 18.6,24 12,24 5.4,24 0,18.6 0,12 0,5.4 5.4,0 12,0 Z m 2.94,14.34 C 16.26,12.66 16.08,10.26 14.4,9 12.78,7.74 10.38,8.04 9,9.72 7.68,11.4 7.86,13.8 9.54,15.06 c 1.68,1.26 4.08,0.96 5.4,-0.72 z m -6.42,7.8 c 0.72,0.3 2.28,0.6 3.06,0.6 l 5.22,-7.56 c 1.68,-2.52 1.26,-5.94 -1.08,-7.8 -2.1,-1.68 -5.04,-1.62 -7.14,0 l -7.26,5.58 c 0.18,1.92 0.72,2.88 0.72,2.94 l 4.14,-4.5 c -0.3,1.98 0.42,4.02 2.1,5.28 1.44,1.14 3.18,1.44 4.86,1.08 z\"},\"child\":[]}]})(props);\n};\nexport function SiAppwrite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 17.291v5.29H10.557A10.58 10.58 0 0 1 0 12.715v-1.43c.048-.735.174-1.463.374-2.171C1.63 4.673 5.713 1.419 10.557 1.419c4.844 0 8.927 3.254 10.183 7.695h-5.749a5.283 5.283 0 0 0-4.434-2.404 5.282 5.282 0 0 0-4.434 2.404A5.23 5.23 0 0 0 5.267 12a5.27 5.27 0 0 0 1.66 3.848 5.27 5.27 0 0 0 3.63 1.443H24Zm0-6.734v5.291h-9.813A5.276 5.276 0 0 0 15.848 12c0-.5-.07-.984-.199-1.443H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiAqua (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7875 18.6811c.7687 0 .7695.7105.7695.7517.0003.2888-.1047.4303-.2229.5535l-3.6066 3.6127c-.2547.2557-.5963.4006-.9567.401H.879c-.1444.0002-.2889-.0409-.4238-.1226-.2628-.1525-.46-.4826-.4551-.8042v-4.3921h17.7874zM23.0632.0001c.3202-.0053.6491.1893.8014.4518.0814.1348.1354.279.1354.4234V13.757c0 .3601-.1402.7054-.3946.9602l-3.5466 3.5524c-.137.1371-.274.2744-.6027.2744-.0411 0-.8225 0-.8225-.7681V.0001h4.4296zM4.5539 5.482s.824 0 .824.7699v12.0934H.0001v-8.0648c0-.361.1397-.7072.3945-.9625L3.95 5.757c.1372-.1376.2744-.275.6039-.275zM18.2983.0002v5.377H6.255c-.7669 0-.7669-.8233-.7669-.8233 0-.3292.137-.4663.2739-.6035L9.3087.398a1.3545 1.3545 0 01.9585-.3977h8.0311z\"},\"child\":[]}]})(props);\n};\nexport function SiAral (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.393 10.02l-.48 1.959.99.001-.51-1.96zm3.892.082v1.187c.549-.002.958.03 1.229-.033.27-.062.404-.217.404-.592 0-.334-.12-.469-.385-.523-.264-.055-.672-.028-1.248-.04zm5.326-.079l-.48 1.96h.99l-.51-1.96zM11.996 0L0 11.998 12.004 24 24 12.004 11.996 0zM5.393 8.896c.366 0 .606.117.775.295.169.18.267.421.35.67l1.07 3.211s.134.276.144.567c.01.29-.104.599-.6.666-.355-.054-.536-.156-.657-.35-.122-.194-.184-.482-.305-.91H4.645c-.147.468-.195.757-.295.941-.1.184-.254.263-.616.317-.508-.054-.636-.369-.636-.67 0-.301.129-.588.129-.588l1.015-3.152c.08-.246.176-.495.348-.682.172-.187.42-.315.803-.315zm9.191.002c.366 0 .607.117.775.295.17.18.267.421.35.67l1.072 3.211s.135.276.145.567c.01.29-.104.599-.6.666-.356-.054-.536-.156-.658-.35-.122-.194-.186-.482-.307-.91h-1.525c-.147.468-.193.757-.293.941-.1.184-.256.263-.617.317-.509-.054-.635-.367-.635-.668 0-.301.127-.59.127-.59l1.016-3.152c.075-.233.17-.484.343-.674.174-.19.424-.323.807-.323zm3.346.002c.308 0 .483.114.58.291.097.178.117.418.117.672v3.207c.215.005 1.23 0 1.23 0 .29 0 .53.02.694.106.164.086.252.239.244.504-.01.361-.18.517-.406.582-.226.065-.509.039-.744.039h-1.766c-.375 0-.536-.165-.604-.436-.067-.27-.04-.645-.04-1.062v-2.94c-.014-.254.02-.496.126-.674.107-.177.288-.289.569-.289zm-8.645.104h1.098c.254 0 .51-.002.767.084.259.086.52.26.786.613.28.378.35.933.222 1.414-.128.481-.456.889-.972.969.187.348.804 1.283.804 1.283s.066.11.078.266c.012.155-.03.357-.25.539-.388.147-.633.106-.78.03-.149-.078-.2-.192-.2-.192s-.562-.964-.91-1.633h-.643v1.338s.01.154-.064.305c-.075.15-.236.298-.578.285-.327 0-.488-.155-.567-.309C7.997 13.842 8 13.69 8 13.69V9.861c0-.334.006-.549.17-.68.164-.13.486-.177 1.115-.177z\"},\"child\":[]}]})(props);\n};\nexport function SiArangodb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.885 3.75c-.32.007-.536.032-.61.041-.878.106-2.81.49-4.466 2.088-.921.89-1.501 2.153-1.783 2.826.251-.072.502-.13.75-.164.94-.131 1.8-.013 2.431.219.89-.158 1.474-.228 1.782-.227.953.004 2.003-.008 2.775.65.208.178.82.542.725 1.515-.084.867-.474 1.933-1.428 2.982-.574.632-1.686 1.444-3.059 2.15-.995.511-2.412 1.313-4.469 1.426-.331.019-.708.041-1.105.04-1.012-.004-2.48-.138-3.545-1.249-.221-.231-1.31-1.458-1.002-2.93.248-1.185 1.229-1.798 2.016-2.292.447-.281 1.05-.512 1.861-.754.585-.63 1.274-1.017 1.975-1.262-1.394.312-2.784.652-3.788 1.15-1.15.557-2.236 1.082-2.707 2.237-.287.707-.263 1.42-.191 1.892 0 0 .31 3.096 2.441 4.674 1.784 1.323 4.413 1.812 6.374 1.276 1.543-.294 3.015-1.738 4.24-3.004l.006.004c.392.186 1.295.584 2.027.963 1.692.873 2.864 1.054 3.47 1.16 1.317.23 3.368-.292 4.341-1.383.932-1.045 1.203-2.454.98-3.711-.067-.386-.066-1.073-.349-2.016-.222-.737-.333-1.104-.494-1.496-.31-.758-.705-1.373-1.295-2.137-1.382-1.784-2.072-2.679-3.2-3.39-1.834-1.16-3.74-1.297-4.703-1.278zm.713 1.135c.814.033 2.014.046 3.051.725.603.397 1.182.68 2.338 2.21 1.56 2.069 1.711 2.301 2.293 3.405.443.84.822 2.55.65 3.885-.05.387-.09 1.209-.95 2.021-1.157 1.093-3.13.97-3.337.946-.629-.077-1.113-.371-2.582-.934l-1.816-.744c-.121-.048-.245-.115-.37-.18.417-.499 1.182-1.488 1.497-2.111.231-.466.385-.985.488-1.37.078-.308.195-.765.244-1.204.025-.229.045-.463.049-.663.004-.207-.001-.244-.01-.402a4.156 4.156 0 0 0-.201-.926 2.408 2.408 0 0 0-.457-.748 2.623 2.623 0 0 0-.51-.367c-.208-.113-.474-.216-.646-.283-.32-.125-.585-.196-1.067-.256a5.006 5.006 0 0 0-.451-.016c-.547.005-1.274.08-2.338.237-.68.095-1.357.208-2.024.334l.002-.006c.69-1.402 1.67-2.392 3.35-2.983 1.075-.377 2.198-.595 2.797-.57zm.272 2.566a2.08 2.08 0 0 0-.721.112c.378.093.743.284 1.064.426.255.138.49.313.633.462.249.261.46.616.569.93.099.29.206.71.226 1.06.009.15.016.22.012.438a8.02 8.02 0 0 1-.053.711c-.054.488-.178.965-.256 1.272a7.829 7.829 0 0 1-.383 1.144c.239.004.47-.002.602-.025.937-.164 1.561-1.126 1.752-1.904.268-1.102-.285-2.02-.654-2.633-.349-.577-.963-1.384-2.073-1.834a2.09 2.09 0 0 0-.718-.159zM7.844 9.035a4.64 4.64 0 0 0-1.511.457c-.53.254-.99.648-1.573 1.335-.65.815-1.112 2.387-.76 2.81.18.218.275.24.34.283.901.436 1.724 1.035 3.068 1.114h1.118c.234.002.545-.05.632-.059 1.547-.254 3.605-1.349 3.526-2.88-.03-.573-.683-1.512-1.127-1.935-.431-.41-1.147-.788-1.454-.917-.266-.131-.576-.167-.888-.213-.47-.078-.972-.048-1.371.005z\"},\"child\":[]}]})(props);\n};\nexport function SiArc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9371 8.5089c.1471-.7147.0367-1.4661-.3364-2.0967-.4203-.7094-1.1035-1.1876-1.9075-1.3506a2.9178 2.9178 0 0 0-.5623-.0578h-.0105c-1.3768 0-2.5329.988-2.8061 2.3385-.1629.7935-.4782 1.5607-.9196 2.2701a.263.263 0 0 1-.2363.1205.2627.2627 0 0 1-.2209-.1468l-2.8587-5.9906c-.3626-.762-1.0142-1.361-1.8235-1.5975-1.3873-.4099-2.8166.2838-3.4052 1.524L5.897 9.7333c-.0788.1629-.31.1576-.3784-.0053v-.0052a2.8597 2.8597 0 0 0-2.6642-1.7972c-.3784 0-.7515.0736-1.1088.2207-1.4714.6148-2.1283 2.349-1.5187 3.8203.557 1.3295 1.4714 2.5855 2.659 3.668.084.0788.1103.1997.063.3048l-.9563 2.0074c-.6727 1.4188-.1314 3.1477 1.2664 3.8571.4099.2049.846.31 1.298.31 1.1035 0 2.123-.6411 2.5959-1.6395l.825-1.7289a.254.254 0 0 1 .3048-.1366c1.0037.2732 2.0127.4204 3.0058.4204 1.1193 0 2.2229-.1682 3.2896-.4782a.2626.2626 0 0 1 .3101.1366l.8145 1.7131c.4834 1.0195 1.4924 1.7131 2.6169 1.7184.4572 0 .8986-.0999 1.3138-.3101 1.403-.7094 1.939-2.4435 1.2664-3.8676L19.875 15.787c-.0473-.1051-.0263-.226.0578-.3048 1.9864-1.8497 3.4525-4.2723 4.0043-6.9733ZM6.2121 20.0172a1.835 1.835 0 0 1-.6764.7622 1.8352 1.8352 0 0 1-.9788.2835c-.2733 0-.5518-.063-.8093-.1891-.9038-.4467-1.2454-1.5713-.8093-2.4804l.7935-1.6658c.0684-.1471.2575-.1997.3837-.1051.1681.1209.3415.2365.5202.3521.6989.4467 1.4293.825 2.1808 1.1351.1419.0578.205.2154.1419.352l-.7462 1.5555Zm5.0763-2.0442c-4.2092 0-8.6548-2.8534-10.1262-6.4951a1.8286 1.8286 0 0 1 1.009-2.3805c.2259-.0893.4571-.1366.683-.1366.7252 0 1.4084.431 1.6974 1.1456.9196 2.2806 4.0043 4.2092 6.7368 4.2092.4204 0 .8408-.042 1.256-.1156a.2643.2643 0 0 1 .2837.1419l1.3768 2.9007c.0683.1471-.0105.3205-.1629.3626-.8986.2365-1.8182.3678-2.7536.3678Zm-.599-4.9291.6358-1.3348c.0526-.1051.205-.1051.2575 0l.6201 1.3033c.042.0841-.0158.1891-.1051.2049-.268.0368-.536.0578-.7988.0578a5.0634 5.0634 0 0 1-.4887-.0263c-.1103-.0157-.1629-.1208-.1208-.2049Zm8.4604 7.8246a1.831 1.831 0 0 1-2.0329-.2788 1.8292 1.8292 0 0 1-.4316-.5778l-4.987-10.4836c-.0998-.2102-.3994-.2102-.4939 0l-1.545 3.2529a.2623.2623 0 0 1-.3205.1366c-1.051-.3626-2.0495-.9774-2.7904-1.7184a.2552.2552 0 0 1-.0473-.2943l3.3421-7.031c.1156-.247.2943-.4677.5203-.6201 1.051-.6884 2.2806-.2575 2.7378.7041l6.8577 14.4248c.4309.9144.0946 2.0389-.8093 2.4856Zm-1.4451-9.6481a.258.258 0 0 1 .0315-.2732c.783-1.0037 1.3558-2.1756 1.6028-3.421.1734-.867.9354-1.4714 1.7919-1.4714.1472 0 .2943.0158.4467.0526.9722.2417 1.5344 1.2507 1.3295 2.2333-.4835 2.3017-1.6816 4.3879-3.3159 6.0222-.1313.1314-.3468.0946-.4256-.0683l-1.4609-3.0742Z\"},\"child\":[]}]})(props);\n};\nexport function SiArcgis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a.84923.84923 0 0 0-.33766.07031l-8.5183 3.69444C2.1458 4.19776 1.4997 5.1816 1.4997 6.2697v13.2521l10.16264 4.40783c.21517.09333.46015.09407.67532.00073l8.5183-3.6959c.99824-.43301 1.64434-1.41685 1.64434-2.50495V4.47814L12.33766.06958C12.23007.02291 12.11516-.00005 12 0Zm0 4.83705c4.16294 0 7.53757 3.3746 7.53757 7.53757S16.163 19.91218 12 19.91218c-4.163 0-7.53757-3.37462-7.53757-7.53756S7.837 4.83705 12 4.83705zm-.3501 1.38871c-.89685-.02267-2.32742.2409-3.74645 1.6143.34958.55454.64544.97782.49 1.41801-.23127.65503-.5139.51378-1.07083.99466-.39567.34169.2067 1.01292-.31275 1.30595-.51945.29306-1.21315.6636-.94925 1.17557.2639.51196 1.4691.83013 1.95929 1.07522.49018.2451.92812.70605.6072 1.2371-.31403.51948-.53713 1.13083-.60134 1.60917 1.0549.94423 2.44706 1.51909 3.97423 1.51909 3.2928 0 5.81772-2.71048 5.96208-6.00017.04062-.92531-.93924-.93972-1.53447-.93972 0 0 .34061.92356.01831 1.43632-.3223.51278-.84968.76166-.83498 1.37699.01464.61533-.93743 1.5967-1.2598 1.9483-.32223.35163-.9228.74718-1.12796-.0586-.2051-.80579-.12596-1.47799.1084-2.04938.23442-.57136-.2174-.74707-.92068-.76174-.7032-.01463-1.0798-.10795-1.18656-1.19315-.08787-.89369 1.2429-1.84356 1.81426-1.84356.33406 0 1.45485.21963 1.50737-.34058.08056-.8593-.8204-1.04164-1.03934-1.60185C13.2877 7.58747 14.98596 6.60707 12 6.24993c-.10475-.01253-.22199-.02093-.3501-.02417z\"},\"child\":[]}]})(props);\n};\nexport function SiArchicad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.5896 16.3222c-.779 0-1.4104-.6315-1.4104-1.4105 0-.779.6314-1.4104 1.4104-1.4104S24 14.1328 24 14.9117c0 .779-.6315 1.4105-1.4104 1.4105zM.1507 19.8272c-.35.6959-.0696 1.5438.6263 1.8938.6959.35 1.5438.0695 1.8938-.6263 0 0 7.8494-16.0114 14.2545-16.1487 4.2299-.0907 4.2313 5.642 4.2313 5.642 0 .779.6314 1.4104 1.4104 1.4104s1.4104-.6314 1.4104-1.4104c0 0 .0566-8.3813-7.0196-8.4569C8.7634 1.8711.1507 19.8272.1507 19.8272z\"},\"child\":[]}]})(props);\n};\nexport function SiArchiveofourown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.417 9.883c-.687 1.116-1.823 1.722-2.99 1.855-4.227.484-6.047-4.149-3.469-6.728 2.31-2.31 7.082-.9 7.005 2.899-.011.611-.166 1.357-.546 1.974zm-6.459-2.029c.142 3.596 4.764 3.682 5.687 1.054.815-2.324-1.12-4.199-3.19-3.897-1.523.221-2.553 1.411-2.497 2.843zM23.123 6.003c.284-.131.697-.412.837-.246.211.251-.459.475-.748.664-.918.6-1.731 1.227-2.477 2.049-.959 1.059-1.944 2.376-2.55 3.818.618.032 3.021.157 3.6 1.481.464 1.062-.387 2.156-1.32 2.627.663.414 1.81.945 1.745 1.898-.158 2.343-3.696 2.241-5.178.695-.244-.289-.358-.482-.25-.578.151-.134.326.186.676.476.225.187.377.251.572.354 1.301.683 3.339.403 3.478-.792.064-.554-.664-.955-1.217-1.204-.498-.224-1.514-.386-1.494-.952.02-.554.524-.45 1.03-.65.55-.217 1.004-.901 1.003-1.116-.005-.905-2.062-.888-3.221-.92-.275.606-.471 1.226-.692 2.158-.139.583-.151 1.897-.748 2.029-.737.164-1.014-.477-1.455-.991-.594-.69-1.436-1.637-1.942-2.223-3.033 1.002-5.392 2.091-8.256 3.712-1.311.742-2.063 1.59-2.545 1.354-.396-.194-.339-.633-.147-.887.393-.521.927-1.225 1.396-1.888.6-.849 1.054-1.667 1.373-2.445.692-1.688 1.23-4.72 1.475-5.859.088-.412.309-.348.322-.148.027.419-.237 2.047-.29 2.383-.436 2.781-.772 4.41-2.009 6.349 2.196-1.358 4.805-3.019 7.592-3.955C8.846 9.936 5.847 6.85 1.676 4.905 1.037 4.542 0 4.464 0 4.22c0-.271.781-.06 1.043.007 2.383.596 4.817 2.141 6.601 3.444 2.145 1.567 4.714 3.967 5.679 5.081.657-.226 2.286-.457 3.696-.496.752-1.58 2.55-4.018 4.788-5.442.413-.263.842-.594 1.316-.811zm-8.594 8.071c.423.428.742.934 1.11 1.398.174-.59.405-1.216.643-1.758-.619.082-1.281.203-1.753.36z\"},\"child\":[]}]})(props);\n};\nexport function SiArchlinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.39.605C10.376 3.092 9.764 4.72 8.635 7.132c.693.734 1.543 1.589 2.923 2.554-1.484-.61-2.496-1.224-3.252-1.86C6.86 10.842 4.596 15.138 0 23.395c3.612-2.085 6.412-3.37 9.021-3.862a6.61 6.61 0 01-.171-1.547l.003-.115c.058-2.315 1.261-4.095 2.687-3.973 1.426.12 2.534 2.096 2.478 4.409a6.52 6.52 0 01-.146 1.243c2.58.505 5.352 1.787 8.914 3.844-.702-1.293-1.33-2.459-1.929-3.57-.943-.73-1.926-1.682-3.933-2.713 1.38.359 2.367.772 3.137 1.234-6.09-11.334-6.582-12.84-8.67-17.74zM22.898 21.36v-.623h-.234v-.084h.562v.084h-.234v.623h.331v-.707h.142l.167.5.034.107a2.26 2.26 0 01.038-.114l.17-.493H24v.707h-.091v-.593l-.206.593h-.084l-.205-.602v.602h-.091\"},\"child\":[]}]})(props);\n};\nexport function SiArdour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.606L0 22.394c1.45 0 .832-.885 1.565-.93.703 0 .559.44 1.044.44.846 0 .273-2.82 1.043-2.82.665 0 .48 2.038 1.044 2.038.288 0 .521-.811.521-1.81v-.945c0-1.304.234-2.364.522-2.364.288 0 .522 1.066.522 2.005 0 1.178.233 2.43.522 2.43.288 0 .521-1.263.521-2.805v-.44c0-1.69.234-3.065.522-3.065.288 0 .522 1.369.522 2.967 0 1.661.233 3.098.522 3.098.288 0 .521-1.437.521-3.18 0-1.737.234-3.146.522-3.146.288 0 .522 1.424.522 3.277 0 1.786.233 3.147.522 3.147.288 0 .521-1.367.521-2.87 0-1.386.234-2.657.522-2.657.288 0 .522 1.271.522 2.837v.472c0 1.415.233 2.56.521 2.56.289 0 .522-1.152.522-2.299 0-.973.234-1.989.522-1.989.288 0 .522 1.01.522 2.25v.57c0 1.058.233 1.908.521 1.908.289 0 .522-.84.522-1.614 0-.589.234-1.304.522-1.304.288 0 .522.709.522 1.581v.538c0 .696.233 1.272.521 1.272.595 0 .45-1.728 1.044-1.728.288 0 .522.43.522.962v.456c0 .385.233.685.521.685.59 0 .462-.782 1.044-.782.76 0 .197 1.076 1.043 1.076.512 0 .426-.18 1.044-.18.563 0 .493.359 1.565.359z\"},\"child\":[]}]})(props);\n};\nexport function SiArduino (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.087 6.146c-.3 0-.607.017-.907.069-2.532.367-4.23 2.239-5.18 3.674-.95-1.435-2.648-3.307-5.18-3.674a6.49 6.49 0 0 0-.907-.069C2.648 6.146 0 8.77 0 12s2.656 5.854 5.913 5.854c.3 0 .607-.017.916-.069 2.531-.376 4.23-2.247 5.18-3.683.949 1.436 2.647 3.307 5.18 3.683.299.043.607.069.915.069C21.344 17.854 24 15.23 24 12s-2.656-5.854-5.913-5.854zM6.53 15.734a3.837 3.837 0 0 1-.625.043c-2.148 0-3.889-1.7-3.889-3.777 0-2.085 1.749-3.777 3.898-3.777.208 0 .416.017.624.043 2.39.35 3.847 2.768 4.347 3.734-.508.974-1.974 3.384-4.355 3.734zm11.558.043c-.208 0-.416-.017-.624-.043-2.39-.35-3.856-2.768-4.347-3.734.491-.966 1.957-3.384 4.347-3.734.208-.026.416-.043.624-.043 2.149 0 3.89 1.7 3.89 3.777 0 2.085-1.75 3.777-3.89 3.777zm1.65-4.404v1.134h-1.205v1.182h-1.156v-1.182H16.17v-1.134h1.206V10.19h1.156v1.183h1.206zM4.246 12.498H7.82v-1.125H4.245v1.125z\"},\"child\":[]}]})(props);\n};\nexport function SiArgo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.581 0c.436.037.871.1 1.299.186 1.679.383 3.121 1.213 4.382 2.365 1.161 1.06 1.917 2.372 2.335 3.881.089.321.216.56.586.624.205.035.238.245.239.43.003.646.002 1.294.002 1.94l-.002 1.21c-.001.356-.116.479-.466.474-.211-.003-.293.119-.344.291-.146.489-.33.966-.552 1.426-.818 1.682-2.084 2.938-3.688 3.87-.077.045-.155.088-.233.131-.252.137-.258.146-.155.415.114.299.358.529.664.625.269.096.553.134.827.21a.672.672 0 0 1 .236.094c-.066.082-.156.067-.231.082-.36.073-.713.184-1.086.17a1.275 1.275 0 0 1-.438-.064c-.114-.045-.152-.006-.176.109a5.354 5.354 0 0 0-.084.92c-.015.617-.071 1.23-.112 1.844-.042.598-.018.651.558.842.281.094.563.187.842.286.069.024.15.038.192.117-.04.057-.098.035-.146.035-.493.003-.985.005-1.478.001-.524-.005-.806-.282-.845-.803-.055-.762-.12-1.524-.182-2.286a.947.947 0 0 0-.026-.12c-.079.455-.065.879-.084 1.298-.023.528-.008 1.057-.007 1.584 0 .27.086.388.335.483.359.135.711.295 1.114.262.141-.012.276.062.402.129.032.017.073.033.069.073-.004.043-.049.047-.084.045-.657-.019-1.317.065-1.972-.028-.323-.046-.533-.236-.631-.552-.094-.303-.114-.617-.137-.93-.046-.626-.078-1.253-.116-1.88a.222.222 0 0 0-.061-.171.282.282 0 0 0-.031.193c-.002.956-.002 1.911-.001 2.866 0 .388.123.575.494.708.481.172.976.298 1.47.423.11.028.225.047.242.192h-1.852c-.051-.01-.103-.022-.155-.03-.701-.1-1.001-.372-1.143-1.042l-.067-.331-.226-1.103c-.069.12-.118.25-.144.386-.083.399-.151.802-.243 1.2-.113.493-.444.763-.932.857l-.33.063H8.558c.057-.171.216-.185.355-.221.476-.127.96-.223 1.417-.409a.603.603 0 0 0 .397-.521c.058-.435.002-.865-.013-1.296a1.528 1.528 0 0 0-.078-.315.405.405 0 0 0-.071.207c-.026.296-.049.591-.075.886-.038.432-.273.716-.679.81a1.702 1.702 0 0 1-.37.045c-.557.003-1.115-.001-1.673-.005-.048 0-.109.019-.148-.065.178-.103.377-.168.582-.187a5.67 5.67 0 0 0 .939-.193c.42-.114.522-.249.512-.687-.023-.931-.091-1.86-.069-2.791.004-.184.001-.368.001-.551a2.387 2.387 0 0 0-.05.385 40.299 40.299 0 0 1-.186 2.623c-.052.513-.296.748-.804.805-.446.051-.889.002-1.332-.02-.108-.006-.234.012-.339-.064.043-.066.106-.07.16-.087.362-.115.725-.224 1.086-.344.246-.081.35-.235.355-.492a2.241 2.241 0 0 0-.003-.232 45.315 45.315 0 0 1-.105-2.149 5.487 5.487 0 0 0-.035-.478c-.024-.188-.131-.287-.295-.258-.505.092-.99-.006-1.473-.139-.059-.016-.134-.007-.178-.088a.986.986 0 0 1 .285-.09c.255-.052.507-.121.753-.208.312-.112.564-.347.695-.651.089-.203.056-.317-.112-.398-1.418-.683-2.512-1.73-3.391-3.017a8.152 8.152 0 0 1-1.123-2.447c-.067-.246-.156-.3-.383-.26-.306.053-.401.006-.535-.273v-3.49c.144-.303.205-.341.534-.329.235.01.247-.004.309-.242.396-1.508 1.082-2.861 2.171-3.988C6.9 1.42 8.523.631 10.34.203c.456-.108.922-.15 1.387-.203h.854Zm7.974 8.948a7.34 7.34 0 0 0-.048-.938 8.353 8.353 0 0 0-.099-.65c-.598-2.964-2.344-5.02-5.051-6.268-1.553-.715-3.21-.835-4.878-.511-3.248.633-5.396 2.583-6.539 5.652-.436 1.173-.495 2.406-.37 3.65.087.935.339 1.846.745 2.694.585 1.213 1.444 2.207 2.477 3.058.343.286.719.528 1.121.719.235.111.247.105.245-.146.006-.16.003-.32-.009-.48-.125-1.02-.142-2.045-.169-3.069a.392.392 0 0 0-.184-.353c-.385-.268-.713-.592-.921-1.019-.474-.97-.372-2.361.813-3.215.136-.097.217-.19.198-.373a1.724 1.724 0 0 1 .031-.442c.177-1.187.748-2.138 1.722-2.84.68-.492 1.442-.772 2.286-.782.483-.007.953.11 1.414.244 1.609.467 2.846 2.07 2.845 3.697a.64.64 0 0 0 .268.565c.463.371.821.83.943 1.426.22 1.077-.083 1.982-.979 2.634-.266.194-.347.406-.333.698.002.047 0 .095-.002.142l-.062 1.439c-.025.586-.138 1.165-.117 1.754.008.223.006.226.201.128a7.46 7.46 0 0 0 2.393-1.903c1.32-1.577 2.074-3.372 2.059-5.511ZM9.117 12.102c1.489.021 2.443-1.578 1.716-2.879a1.937 1.937 0 0 0-1.699-.991c-1.094-.004-1.954.822-1.958 1.881-.005 1.148.813 1.985 1.941 1.989Zm5.794 0c1.101.002 1.935-.823 1.935-1.917 0-1.091-.846-1.949-1.92-1.947-1.064.003-1.94.866-1.943 1.915-.003 1.105.831 1.948 1.928 1.949Zm-1.472 1.937c-.208.128-.407.277-.63.384-.536.257-1.063.257-1.579-.048-.158-.094-.308-.201-.464-.298-.047-.028-.092-.103-.15-.062-.044.03-.01.1-.001.151.037.179.064.362.082.544.027.565.293.992.742 1.31a.984.984 0 0 0 .791.186c.565-.119 1.025-.614 1.124-1.218.043-.266.005-.544.109-.803a.133.133 0 0 0-.024-.146Zm-8.78-4.92c-.012-1.102.143-2.055.54-2.961.633-1.443 1.642-2.553 2.98-3.374a.378.378 0 0 1 .459.067c.06.06.036.118.01.178a1.09 1.09 0 0 1-.48.51c-1.079.639-1.829 1.571-2.357 2.688a6.325 6.325 0 0 0-.618 2.986c.055 1.309.439 2.516 1.213 3.588.088.104.148.23.173.365.01.08.059.168-.031.228a.312.312 0 0 1-.288.041.502.502 0 0 1-.234-.185c-.72-.979-1.193-2.056-1.331-3.273-.036-.326-.004-.653-.036-.858ZM8.94 2.34a.373.373 0 0 1 .378-.382c.211.001.409.226.416.473.004.138-.309.39-.476.386-.189-.005-.318-.2-.318-.477Zm-.465 7.48a.609.609 0 0 1 .586-.631c.38-.003.671.271.675.633.004.356-.27.622-.639.621-.38-.002-.621-.241-.622-.623Zm6.496.623c-.381-.002-.625-.255-.621-.646a.635.635 0 0 1 .596-.613.656.656 0 0 1 .669.643c.001.354-.275.618-.644.616Z\"},\"child\":[]}]})(props);\n};\nexport function SiArgos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 1.738v20.524h24V1.738zm5.93 5.546c.178 0 .434 0 .638.026.23 0 .307.077.333.281.051.792.23 4.217.256 4.907 0 .18-.103.23-.23.23H6.21c-.179 0-.256-.102-.256-.23 0-.255-.026-.92-.026-.92H3.987c-.204.358-.434.767-.537.946-.076.153-.178.179-.306.179h-.818c-.18 0-.23-.128-.153-.281C3.272 10.428 4.677 8.255 5.29 7.54c.178-.23.383-.23.638-.256zM5.831 8.48a.095.095 0 0 0-.03.032c-.46.562-1.048 1.483-1.38 2.122h1.507S5.88 9.15 5.853 8.51c0 0 0-.043-.021-.032zm14.666.237c.614 0 1.125.28 1.355.664.102.154.076.255-.077.332a3.512 3.512 0 0 1-.434.205c-.128.025-.23.025-.333-.102-.434-.512-1.047-.333-1.073-.051-.026.255.256.357.639.46.588.178 1.252.485 1.048 1.277-.205.818-.997 1.227-1.917 1.227-.588 0-1.253-.178-1.508-.792-.051-.128-.026-.23.077-.28.153-.103.307-.18.46-.231.128-.026.23 0 .306.102.18.256.384.384.716.384.307 0 .639-.129.613-.41-.025-.255-.408-.357-.613-.409-.383-.102-1.176-.28-1.176-.92 0-.792.741-1.38 1.917-1.456zm-3.834.076c1.227 0 1.79.818 1.534 1.994-.23 1.176-1.15 1.993-2.377 1.993-1.227 0-1.789-.817-1.533-1.993.255-1.176 1.15-1.994 2.376-1.994zm-4.421.026c.562 0 .869.332.945.46 0 .025.026.025.026 0 .025-.077.051-.128.051-.153.026-.128.128-.23.307-.23h.51c.154 0 .282.102.231.306a96.306 96.306 0 0 1-.741 3.067c-.384 1.482-1.15 2.224-2.3 2.224-.46 0-1.227-.128-1.56-.664-.076-.103-.102-.205.077-.333.154-.102.332-.153.486-.205.153-.05.204-.05.357.052a.906.906 0 0 0 .563.179c.409 0 .946-.23 1.201-1.1.026-.05 0-.05-.025-.025-.18.23-.563.383-.997.383-.537-.025-.869-.204-1.074-.536-.23-.358-.204-.997-.025-1.56.28-.894.971-1.865 1.968-1.865zm-3.86.026h.614c.127 0 .179.101.153.204-.025.102-.051.179-.051.204 0 .026.025.026.025.026.46-.41 1.049-.409 1.688-.409.102 0 .153.102.076.179-.23.23-.358.409-.511.639-.102.153-.18.204-.358.204-.409.026-.613.102-.767.205-.153.102-.307.434-.383.818a48.306 48.306 0 0 1-.332 1.61.224.224 0 0 1-.23.179h-.742c-.102 0-.178-.077-.153-.18.128-.715.64-3.117.716-3.475.026-.154.128-.204.256-.204zm8.205.792c-.69 0-.971.562-1.15 1.15-.154.588-.23 1.15.46 1.15.69 0 .97-.562 1.15-1.15.179-.588.23-1.15-.46-1.15zm-4.217.025c-.512-.025-.87.384-1.1 1.15-.127.41-.153 1.023.384 1.1.537.025.895-.358 1.099-1.1.128-.485.256-1.124-.383-1.15zM2.338 13.958a.32.32 0 0 1 .09.023c3.68 1.508 6.058 2.07 9.406 2.07 3.348 0 5.725-.562 9.43-2.07.256-.102.41.153.155.306-1.457.92-4.805 2.812-9.585 2.812-4.78 0-8.153-1.892-9.56-2.812-.223-.134-.133-.346.064-.329z\"},\"child\":[]}]})(props);\n};\nexport function SiAriakit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2H6C3.79 2 2 3.79 2 6v12c0 2.21 1.79 4 4 4h12c2.21 0 4-1.79 4-4V6c0-2.21-1.79-4-4-4Zm-6 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6Zm0-6a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0Zm6-12H6C2.69 0 0 2.69 0 6v12c0 3.31 2.69 6 6 6h12c3.31 0 6-2.69 6-6V6c0-3.31-2.69-6-6-6Zm5 18c0 2.76-2.24 5-5 5H6c-2.76 0-5-2.24-5-5V6c0-2.76 2.24-5 5-5h12c2.76 0 5 2.24 5 5v12ZM18 2H6C3.79 2 2 3.79 2 6v12c0 2.21 1.79 4 4 4h12c2.21 0 4-1.79 4-4V6c0-2.21-1.79-4-4-4Zm-6 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6Zm0-6a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0Zm2.5-2.5a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5ZM18 2H6C3.79 2 2 3.79 2 6v12c0 2.21 1.79 4 4 4h12c2.21 0 4-1.79 4-4V6c0-2.21-1.79-4-4-4Zm-6 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6Zm0-6a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0Zm2.5-2.5a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5Z\"},\"child\":[]}]})(props);\n};\nexport function SiArkecosystem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.8 0C.806 0 0 .805 0 1.8v20.4c0 .995.805 1.8 1.8 1.8h20.4c.995 0 1.8-.805 1.8-1.8V1.8c0-.995-.805-1.8-1.8-1.8H1.8zm10.223 4.39l9.29 15.098-9.29-9.82-9.351 9.82 9.351-15.097zm0 7.583l1.633 1.691h-3.285l1.652-1.691zM9.31 14.762h5.41l1.496 1.574H7.813l1.496-1.574z\"},\"child\":[]}]})(props);\n};\nexport function SiArlo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.21 11.172 4.963-5.792c.943-1.293 1.494-1.828 1.07-3.94l-7.367 8.6a7.907 7.907 0 0 0-1.896 5.487L9.763 11.87a5.775 5.775 0 0 0-.947-.829A9.979 9.979 0 0 0 7 10.051c.213-.076.43-.14.649-.194.385-.094.78-.144 1.176-.147.444 0 .881.07 1.3.237.416.168.82.432 1.212.858l.216.252 1.336-1.129c-.01-.011-.241-.283-.251-.292a5.09 5.09 0 0 0-1.86-1.308 5.233 5.233 0 0 0-1.953-.364c-.151 0-.299.007-.446.017-1.461.24-2.364 1.104-3.714 1.244.001.006-4.58 0-4.581.002-.101 0-.115.144-.017.163 1.202.24 3.341.699 4.844 1.214 1.142.529 2.24 1.205 3.106 2.022.17.135.317.271.439.405l4.283 4.87c.61.501 1.395.755 3.066.767a6.197 6.197 0 0 1-.695-1.337 6.173 6.173 0 0 1-.014-4.256 6.139 6.139 0 0 1 1.114-1.903zM24 22.56c-1.734-.022-2.489-.317-3.11-.888l-.962-1.093c-.065-.079-.13-.157-.197-.234l.011.023-1.704-1.937a4.794 4.794 0 0 1-.905-4.806 4.755 4.755 0 0 1 .871-1.482l4.208-4.892c.43 2.179-.192 2.666-1.21 4.09l-1.668 1.937a3.038 3.038 0 0 0-.739 1.989c.001.741.272 1.458.761 2.014L24 22.56z\"},\"child\":[]}]})(props);\n};\nexport function SiArm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.419 8.534h1.614v6.911H5.419v-.72c-.71.822-1.573.933-2.07.933C1.218 15.658 0 13.882 0 11.985c0-2.253 1.542-3.633 3.37-3.633.507 0 1.4.132 2.049.984zm-3.765 3.491c0 1.198.751 2.202 1.918 2.202 1.015 0 1.959-.74 1.959-2.181 0-1.512-.934-2.233-1.959-2.233-1.167-.01-1.918.974-1.918 2.212zm7.297-3.49h1.613v.618a3 3 0 0 1 .67-.578c.314-.183.619-.233.984-.233.396 0 .822.06 1.269.324l-.66 1.462a1.432 1.432 0 0 0-.822-.244c-.345 0-.69.05-1.005.376-.446.477-.446 1.136-.446 1.593v3.582H8.94zm5.56 0h1.614v.639c.538-.66 1.177-.822 1.705-.822.72 0 1.4.345 1.786 1.015.579-.822 1.441-1.015 2.05-1.015.842 0 1.573.396 1.969 1.086.132.233.365.74.365 1.745v4.272h-1.614V11.65c0-.771-.08-1.086-.152-1.228-.101-.264-.345-.609-.923-.609-.396 0-.741.213-.954.508-.284.395-.315.984-.315 1.572v3.562H18.43V11.65c0-.771-.081-1.086-.152-1.228-.102-.264-.345-.609-.924-.609-.396 0-.74.213-.954.508-.284.395-.314.984-.314 1.572v3.562h-1.573z\"},\"child\":[]}]})(props);\n};\nexport function SiArmkeil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.028 10.06h.9v3.863h-.9v-.404c-.288.339-.712.53-1.157.523-1.19 0-1.871-.99-1.871-2.055 0-1.257.863-2.028 1.881-2.028.448-.01.874.195 1.147.55v-.45zm-2.11 1.945c0 .67.422 1.23 1.073 1.23.567 0 1.092-.413 1.092-1.221 0-.844-.523-1.248-1.092-1.248-.651 0-1.073.554-1.073 1.239zm4.08-1.945h.9v.349c.107-.127.234-.235.376-.321.168-.093.358-.138.55-.13.248-.005.492.059.706.185l-.367.816a.812.812 0 0 0-.459-.138c-.192 0-.385.028-.56.211-.246.266-.246.633-.246.89v2h-.9V10.06zm3.113 0h.9v.358a1.19 1.19 0 0 1 .954-.46c.411-.006.794.212 1 .568.32-.457.807-.567 1.147-.567.468 0 .88.22 1.102.606.073.128.202.412.202.972v2.386h-.9v-2.129c0-.431-.046-.606-.083-.688a.511.511 0 0 0-.514-.34.664.664 0 0 0-.532.283c-.156.221-.175.551-.175.882v1.992h-.899v-2.129c0-.431-.046-.606-.082-.688a.511.511 0 0 0-.514-.34.664.664 0 0 0-.532.283c-.157.221-.175.551-.175.882v1.992h-.9V10.06zm7.317 1.657 1.645-1.656h.579l-1.807 1.8 1.865 2.061h-.59l-1.581-1.772-.11.11v1.662H15V10.06h.429v1.657zm4.865-1.252h-1.575v1.147h1.531v.405h-1.531v1.5h1.575v.405h-2.004V10.06h2.004v.405zm1.216-.405v3.862h-.428V10.06h.428zm1.425 0v3.46H24v.405h-1.494V10.06h.428z\"},\"child\":[]}]})(props);\n};\nexport function SiArstechnica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zM8.842 15.656H7.745l-.15-.98a3.457 3.457 0 0 1-2.592 1.13c-1.33 0-2.16-.798-2.16-2.044 0-1.828 1.561-2.56 4.636-2.876v-.315c0-.931-.548-1.247-1.396-1.247-.848 0-1.745.283-2.543.632l-.183-1.18c.881-.35 1.712-.615 2.842-.615 1.779 0 2.643.714 2.643 2.36v5.135zm3.191-4.337v4.337H10.67v-7.33h1.097L12 9.824c.515-.831 1.363-1.58 2.576-1.646l.216 1.313c-1.23.05-2.26.865-2.759 1.829zm6.2 4.487a6.017 6.017 0 0 1-2.676-.698l.2-1.296a4.587 4.587 0 0 0 2.592.847c.93 0 1.496-.349 1.496-.964s-.416-.93-1.745-1.246c-1.729-.432-2.41-.948-2.41-2.26 0-1.314.98-2.028 2.593-2.028a5.933 5.933 0 0 1 2.41.498l-.217 1.297a4.687 4.687 0 0 0-2.227-.632c-.83 0-1.263.316-1.263.848s.366.764 1.53 1.063c1.81.466 2.625.981 2.625 2.377s-1.014 2.194-2.908 2.194zM7.479 11.934v1.711c-.615.632-1.479 1.03-2.177 1.03s-1.097-.215-1.097-.98c0-.764.565-1.496 3.274-1.761z\"},\"child\":[]}]})(props);\n};\nexport function SiArtifacthub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9999 24.00044c-.617.0012-1.24209-.17217-1.78008-.50002l-7.50975-4.29263c-1.01763-.61684-1.64001-1.71772-1.64066-2.9077V7.72971c0-1.25305.63694-2.36948 1.76008-3.01013L10.25041.47895c1.08003-.63867 2.41512-.63767 3.49515.001l7.41975 4.23763c1.08007.59613 1.7714 1.7341 1.76266 3.01013v8.58195c0 .96773-.44338 2.16388-1.63666 2.89856l-7.51074 4.2922c-.56347.34395-1.19861.50002-1.78167.50002zm-.50002-21.34695L3.95513 6.96224c-.2006.1567-.37906.36914-.37902.76747l.001 8.67039c.03753.22045.11891.42808.37302.63459l7.55975 4.31663c.26601.172.66403.21.98504 0l7.51792-4.29663c.23173-.14844.37102-.38858.41002-.65359V7.72971c.0095-.29884-.13595-.5886-.37702-.76547L12.49993 2.6525c-.39058-.23932-.7592-.15575-1.00004.001z\"},\"child\":[]}]})(props);\n};\nexport function SiArtixlinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L7.873 8.462l11.358 6.363zM6.626 11.018L.295 24l18.788-7.762zm13.846 6.352l-5.926 3.402L23.706 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiArtstation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 17.723l2.027 3.505h.001a2.424 2.424 0 0 0 2.164 1.333h13.457l-2.792-4.838H0zm24 .025c0-.484-.143-.935-.388-1.314L15.728 2.728a2.424 2.424 0 0 0-2.142-1.289H9.419L21.598 22.54l1.92-3.325c.378-.637.482-.919.482-1.467zm-11.129-3.462L7.428 4.858l-5.444 9.428h10.887z\"},\"child\":[]}]})(props);\n};\nexport function SiArxiv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.8423 0a1.0037 1.0037 0 0 0-.922.6078c-.1536.3687-.0438.6275.2938 1.1113l6.9185 8.3597-1.0223 1.1058a1.0393 1.0393 0 0 0 .003 1.4229l1.2292 1.3135-5.4391 6.4444c-.2803.299-.4538.823-.2971 1.1986a1.0253 1.0253 0 0 0 .9585.635.9133.9133 0 0 0 .6891-.3405l5.783-6.126 7.4902 8.0051a.8527.8527 0 0 0 .6835.2597.9575.9575 0 0 0 .8777-.6138c.1577-.377-.017-.7502-.306-1.1407l-7.0518-8.3418 1.0632-1.13a.9626.9626 0 0 0 .0089-1.3165L4.6336.4639s-.3733-.4535-.768-.463zm0 .272h.0166c.2179.0052.4874.2715.5644.3639l.005.006.0052.0055 10.169 10.9905a.6915.6915 0 0 1-.0072.945l-1.0666 1.133-1.4982-1.7724-8.5994-10.39c-.3286-.472-.352-.6183-.2592-.841a.7307.7307 0 0 1 .6704-.4401Zm14.341 1.5701a.877.877 0 0 0-.6554.2418l-5.6962 6.1584 1.6944 1.8319 5.3089-6.5138c.3251-.4335.479-.6603.3247-1.0292a1.1205 1.1205 0 0 0-.9763-.689zm-7.6557 12.2823 1.3186 1.4135-5.7864 6.1295a.6494.6494 0 0 1-.4959.26.7516.7516 0 0 1-.706-.4669c-.1119-.2682.0359-.6864.2442-.9083l.0051-.0055.0047-.0055z\"},\"child\":[]}]})(props);\n};\nexport function SiAsahilinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.835 0-1.72 1.323v.97h2.178zm-1.95.057L9.81 1.095l2.076 4.153zm.23 3.768V6.22l-1.057-2.113L6.43 5.678 12 8.009l5.57-2.331zM6.21 5.835.533 15.957 11.885 24V8.21L6.222 5.84Zm11.58 0-.012.004-5.6 2.345 7.512 10.449 3.777-2.675zm-3.955 7.926v5.422l1.952-2.711zm2.864 3.981-4.411 6.135 5.846-4.14z\"},\"child\":[]}]})(props);\n};\nexport function SiAsana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.78 12.653c-2.882 0-5.22 2.336-5.22 5.22s2.338 5.22 5.22 5.22 5.22-2.34 5.22-5.22-2.336-5.22-5.22-5.22zm-13.56 0c-2.88 0-5.22 2.337-5.22 5.22s2.338 5.22 5.22 5.22 5.22-2.338 5.22-5.22-2.336-5.22-5.22-5.22zm12-6.525c0 2.883-2.337 5.22-5.22 5.22-2.882 0-5.22-2.337-5.22-5.22 0-2.88 2.338-5.22 5.22-5.22 2.883 0 5.22 2.34 5.22 5.22z\"},\"child\":[]}]})(props);\n};\nexport function SiAsciidoctor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.0685 0H5.9318C2.6579 0 0 2.6578 0 5.9316v12.1367C0 21.3421 2.658 24 5.9318 24h12.1367C21.3423 24 24 21.3421 24 18.0683V5.9316C24 2.6578 21.3423 0 18.0685 0zM10.708 15.4038H8.8102c-.0018.0045-.0031.009-.005.0135L7.1986 19.282a.5058.5058 0 11-.934-.3883l1.4507-3.49H4.8677a.5058.5058 0 110-1.0113h5.8403a.5058.5058 0 110 1.0113zm7.9189 4.1647a.5058.5058 0 01-.6545-.2886L12.6206 6.2306l-2.395 5.761h1.551a.5058.5058 0 110 1.0113H5.9369a.5058.5058 0 110-1.0113h3.194c.0015-.0038.0026-.0075.0042-.0112l3.0223-7.2693a.5058.5058 0 01.457-.3112.5058.5058 0 01.4774.3137L18.908 18.896a.5058.5058 0 01-.2812.6725z\"},\"child\":[]}]})(props);\n};\nexport function SiAsciinema (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.61 0V24L22.39 12L1.61 0M5.76 7.2L10.06 9.68L5.76 12.16V7.2M12.55 11.12L14.08 12L5.76 16.8V15.04L12.55 11.12Z\"},\"child\":[]}]})(props);\n};\nexport function SiAsda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.7596 8.673h-2.475l-1.4114 4.0851c.0632-.3392.0743-.6104.0743-.7283 0-1.7114-.9805-3.3568-3.2843-3.3568h-2.6458l.0078 4.0635c-.2287-1.1546-1.2835-1.4639-2.5952-1.8626-.4902-.151-.7594-.3908-.6612-.6143.0839-.1952.3845-.2564.7494-.206.5564.0796 1.0008.2657 1.4287.4986l.5847-1.449c-.1318-.065-1.0792-.6337-2.2665-.6337-1.6557 0-2.7131.8078-2.7131 1.9999 0 1.0622.6542 1.6798 1.8572 2.026 1.2938.3753 1.6218.5263 1.5828.8984-.0335.3207-.8354.7113-2.7974-.4958l-.5829 1.2062-1.7994-5.431H2.3382L0 15.4244h1.9502l.3777-1.09h2.2875l.3886 1.0902h2.0473l-.2322-.6603c.6921.4 1.5504.7662 2.5772.7662 1.5728 0 2.4231-.859 2.626-1.6823v1.5764h2.638c1.5727 0 2.3953-.7498 2.8251-1.5524l-.5396 1.5524h1.9487l.39-1.0901h2.323l.3425 1.09H24L21.7594 8.673Zm-18.996 4.1365.7272-2.3196.6889 2.3196Zm11.2193.874v-3.2703h.465c.663 0 1.3867.2684 1.3867 1.6352 0 1.2105-.6392 1.6351-1.381 1.6351zm5.773-.874.6936-2.292.7224 2.292z\"},\"child\":[]}]})(props);\n};\nexport function SiAseprite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.006 0v1.6h15.988V0zm15.988 1.6v1.6h1.6V1.6zm1.6 1.6v14.4h-1.6v1.6H4.006v-1.6h-1.6V3.2H.809v17.6h1.599v1.6h1.599V24h15.988v-1.6h1.6v-1.6h1.598V3.2zm-19.187 0h1.599V1.6h-1.6zm4.796 3.2v6.4h1.6V6.4zm7.995 0v6.4h1.599V6.4z\"},\"child\":[]}]})(props);\n};\nexport function SiAskfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24c-2.172 0-4.195-.547-6.07-1.64a12.003 12.003 0 01-4.29-4.29A11.842 11.842 0 010 12c0-2.172.547-4.195 1.64-6.07a12.003 12.003 0 014.29-4.29A11.842 11.842 0 0112 0c2.172 0 4.195.547 6.07 1.64a12.003 12.003 0 014.29 4.29A11.842 11.842 0 0124 12c0 2.172-.547 4.195-1.64 6.07a12.003 12.003 0 01-4.29 4.29A11.842 11.842 0 0112 24zm2.133-14.227c-.39.282-.664.688-.82 1.22-.157.53-.188 1.109-.094 1.734s.312 1.222.656 1.793c.344.57.754 1.027 1.23 1.37.477.344.961.54 1.454.587.492.046.933-.07 1.324-.352.39-.281.664-.688.82-1.219.156-.531.188-1.11.094-1.734a4.839 4.839 0 00-.656-1.793 4.564 4.564 0 00-1.23-1.371c-.477-.344-.962-.54-1.454-.586a1.887 1.887 0 00-1.324.351zm2.484 5.18c-.469.188-.937.152-1.406-.105-.469-.258-.813-.66-1.031-1.207a3.082 3.082 0 01-.164-.797h.023c.063 0 .14-.016.234-.047h-.023c.188-.063.316-.211.387-.445a.92.92 0 00-.012-.633.842.842 0 00-.164-.305v.024c.187-.235.406-.399.656-.493.469-.203.938-.175 1.406.082.47.258.809.668 1.02 1.23.21.563.227 1.106.047 1.63-.18.523-.504.879-.973 1.066zm-3.586.235a.825.825 0 00-.515-.106.768.768 0 00-.47.27l-.187.234a.348.348 0 00-.093.258c0 .062.015.125.046.187.391.735.711 1.242.961 1.524a.124.124 0 00.13.058.18.18 0 00.128-.082c.094-.234.219-.734.375-1.5l.047-.258v-.07a.38.38 0 00-.164-.328zm-4.804-4.641c-.47.062-.891.289-1.266.68-.375.39-.664.882-.867 1.476a5.391 5.391 0 00-.282 1.887c.016.664.149 1.262.399 1.793.25.531.574.93.973 1.195.398.266.832.367 1.3.305.47-.063.891-.285 1.266-.668.375-.383.664-.871.867-1.465a5.391 5.391 0 00.281-1.887c-.015-.664-.148-1.261-.398-1.793-.25-.53-.574-.933-.973-1.207a1.806 1.806 0 00-1.3-.316zm1.828 3.633c.03.593-.102 1.113-.399 1.558-.297.446-.68.692-1.148.739-.469.046-.883-.118-1.242-.493-.36-.375-.563-.851-.61-1.43v-.187c0-.219.024-.43.07-.633v.024a.822.822 0 00.235.023.703.703 0 00.469-.316.81.81 0 00.14-.598.725.725 0 00-.07-.328c.203-.156.445-.258.727-.305.468-.047.882.121 1.242.504s.554.864.586 1.442zM5.602 7.547a1.17 1.17 0 00-.329-.305c-.156-.094-.304-.125-.445-.094a.489.489 0 00-.328.258.961.961 0 00-.117.375l-.281 2.766.304-.516c.25-.39.516-.726.797-1.008.406-.406.797-.671 1.172-.796a1.54 1.54 0 01-.445-.329c-.12-.104-.227-.243-.328-.351zM17.25 5.016a.55.55 0 00-.48-.141c-.18.031-.34.164-.48.398-.08.157-.142.32-.188.493-.027.058-.032.125-.047.187l-.024.07c-.11.25-.21.43-.304.54.453.015.89.101 1.312.257a4.83 4.83 0 011.594.961l.21.211-1.265-2.578a.925.925 0 00-.328-.398Z\"},\"child\":[]}]})(props);\n};\nexport function SiAssemblyscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0h-9.225c0 1.406-1.04 2.813-2.756 2.813A2.766 2.766 0 019.234 0zm18.204 10.947c.707 0 1.314.137 1.82.412.517.264.96.717 1.33 1.361l-1.726 1.108c-.19-.338-.395-.58-.617-.728a1.422 1.422 0 00-.807-.222c-.327 0-.586.09-.776.27a.896.896 0 00-.285.68c0 .337.106.596.317.775.222.17.57.36 1.045.57l.554.238c.474.2.891.411 1.25.633.37.21.675.453.918.728.253.264.443.57.57.918.137.337.206.738.206 1.203a3 3 0 01-.285 1.33c-.18.38-.433.701-.76.965a3.419 3.419 0 01-1.171.601c-.443.127-.929.19-1.456.19a5.31 5.31 0 01-1.41-.174 4.624 4.624 0 01-1.139-.475 3.922 3.922 0 01-.886-.712 4.48 4.48 0 01-.602-.902L16.1 18.67c.242.39.527.712.855.966.337.253.78.38 1.33.38.463 0 .827-.1 1.091-.301.275-.211.412-.475.412-.792 0-.38-.143-.664-.428-.854-.285-.19-.68-.396-1.187-.618l-.554-.237a8.12 8.12 0 01-1.092-.554 3.64 3.64 0 01-.839-.696 2.887 2.887 0 01-.538-.903 3.375 3.375 0 01-.19-1.187c0-.411.074-.796.222-1.155a2.91 2.91 0 01.649-.934c.285-.264.628-.47 1.029-.617.4-.148.849-.222 1.345-.222zm-8.796.032h.19l4.922 10.858h-2.327l-.506-1.219H7.318l-.506 1.219H4.675zm.063 3.988a22.21 22.21 0 01-.206.697l-.205.649a6.979 6.979 0 01-.222.585l-.776 1.868h2.834l-.776-1.868a15.492 15.492 0 01-.237-.633 23.741 23.741 0 01-.412-1.298z\"},\"child\":[]}]})(props);\n};\nexport function SiAsterisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.92474 1.7776c-1.5868-.006-2.72634.1583-4.0059.57625-.4307.1407-1.11947.41114-1.53049.60105s-1.17324.62818-1.69469.97591-1.31453.95274-1.76285 1.3415c-.4483.38876-1.13243 1.07288-1.52119 1.5212-.38875.44831-.93594 1.1598-1.21447 1.58005s-.52234.7479-.54218.72806c-.0821-.0821.68021-1.55226 1.21138-2.336l.57006-.8427-.61344.59485c-.33697.32716-.9366 1.0258-1.3353 1.55217s-.92949 1.32942-1.17729 1.78453c-.2478.45513-.59826 1.25105-.77764 1.76906l-.3253.94182v.18686c-.14567.47425-.20618.82312-.20545 1.37674.003.60684.0609 1.08074.20544 1.61182v.19538l.26954.79313c.14744.4362.43545 1.08232.64132 1.43444.20587.35211.6835.96441 1.05957 1.36318.37607.39876.97836.9227 1.3384 1.1618 1.07417.71335 2.16188 1.14074 3.5288 1.38487.43621.0779 1.3454.14382 2.01998.14871.6746.005 1.6949-.0605 2.26785-.1456s1.5643-.30574 2.20278-.48952c.6385-.18377 1.62088-.5359 2.1842-.78383l1.02548-.44923.65062.19518c.73972.2239 4.10778.98772 4.15461.94184.0169-.0165-.36632-.8263-.85199-1.80002l-.88297-1.77214.78383-.94184c.43255-.518 1.03592-1.3173 1.3384-1.77524.3025-.45795.76326-1.2833 1.0255-1.8341.26222-.5508.56867-1.3353.68158-1.74426.11292-.40896.25185-1.1359.30672-1.61724.0689-.60404.0673-1.14149-.006-1.73496-.0586-.4729-.21192-1.16555-.34079-1.53668s-.42997-1.01806-.6661-1.43754c-.54074-.96059-1.69132-2.13154-2.525-2.57147-.33479-.17667-.63723-.3222-.67539-.3222-.0382 0 .15568.17987.43374.39966.55794.44102 1.24622 1.27072 1.58625 1.91155l.22307.41516-.22307-.29743c-.12202-.16358-.55922-.63692-.97282-1.05027-.57349-.57315-.95288-.85022-1.59555-1.168-.548-.27098-1.18938-.48753-1.8341-.62273-.73249-.1536-1.36683-.20995-2.42895-.21377zm-.0496 1.09674c1.0863.002 1.5545.0494 2.15941.21068.4251.11334 1.07198.3469 1.43754.5205.47067.22351.88578.5356 1.41895 1.06885.57816.57824.84717.94844 1.16491 1.59555.22757.46348.4809 1.155.56076 1.53668.0799.3817.14467 1.03524.14562 1.45303.003 1.31394-.3635 2.79464-1.04098 4.198-.18427.38169-.52577.98397-.75905 1.3384s-.77228 1.0048-1.19588 1.44684c-.4236.44202-.76835.83226-.76835.86438 0 .0321.35691.60325.79313 1.27024s.79313 1.2502.79313 1.29503c0 .0448-.0232.0805-.0527.0805s-.69262-.24538-1.47162-.54527-1.53096-.54528-1.6699-.54528c-.13895 0-.49078.10608-.78384.23546-.96736.42709-2.77125.95962-3.74256 1.10604-.52582.0793-1.31114.13955-1.74736.13322-1.57475-.0228-2.75872-.2955-4.11434-.94803-.79414-.38227-1.07524-.58708-1.79383-1.30742-.64984-.65144-.93938-1.03166-1.21447-1.59865-.19842-.40895-.42859-1.01031-.5112-1.3353-.21292-.83764-.19273-2.23255.0465-3.1849.10833-.4313.4223-1.23948.69708-1.79693.2748-.55745.76385-1.36438 1.08745-1.79383s.9908-1.16322 1.48092-1.62963c.95198-.90593 2.10627-1.72182 3.23136-2.28333.97376-.48599 2.268-.92608 3.45134-1.1742.75897-.15914 1.35506-.21232 2.39797-.21068zM10.7033 5.2787l.0409 1.89897c.0351 1.63358.0207 1.89128-.1036 1.8436-.0794-.0305-.80422-.48575-1.61046-1.01155s-1.47836-.94257-1.49369-.92635c-.0823.0871-1.33617 2.22031-1.33627 2.27346-.00008.0346.73564.48078 1.63505.99141s1.63543.95078 1.63543.97805c0 .0273-.73602.46741-1.63543.97805s-1.63513.95676-1.63505.9914c.0001.0536 1.25446 2.18701 1.33724 2.27443.0159.0168.75297-.4196 1.63795-.9699l1.6091-1.0007-.0407 1.88715-.0405 1.88716h2.76277l-.0711-1.89394c-.0585-1.55786-.048-1.8797.0598-1.81397.0721.0439.73181.4535 1.46601.91028s1.41202.87183 1.50628.92228c.14504.0776.27851-.087.86864-1.07099.49096-.81865.66132-1.18318.57568-1.2321-.0669-.0382-.82975-.46984-1.69527-.95907l-1.57367-.88956.23527-.14813c.1294-.0815.88216-.51577 1.67281-.96526s1.44714-.82465 1.45884-.8336c.0117-.009-.2923-.53914-.67559-1.17826-.45485-.75844-.73775-1.13783-.81443-1.0923-.0646.0384-.49675.31373-.96023.6119-.46348.29815-1.1465.73747-1.5179.9763l-.6754.43412.0705-1.93634.0703-1.93654H12.085zM2.5788 9.24433c.00078-.00004.002 0 .003 0 .0273 0 .0496.0223.0496.0496s-.0223.0496-.0496.0496a.0497.0497 0 0 1-.0496-.0496c0-.0264.021-.0482.047-.0496z\"},\"child\":[]}]})(props);\n};\nexport function SiAstonmartin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.383 9.258c-.158 0-.282.068-.338.182-.068.114-.057.262.022.387l.17.296c.09.16.214.182.304.205.08.012.136.023.192.137l.158.273c.125.228.26.25.362.273.079.012.158.023.259.205.102.182.249.456.621.569.034.012 3.601 1.059 3.613 1.059.373.126.474.262.587.433.068.102.26.376.711.501l3.432.933a.704.704 0 0 0 .711-.182l.621-.592c.091-.08.136-.114.192-.114.057 0 .102.034.192.114l.621.592c.113.091.339.273.712.182l3.431-.933c.463-.125.644-.399.711-.501.113-.171.215-.319.587-.433 0 0 3.568-1.047 3.613-1.059.361-.113.52-.387.621-.569.102-.182.169-.193.248-.205.102-.023.249-.045.373-.273l.158-.273c.068-.114.113-.125.192-.137.09-.023.214-.046.305-.205l.169-.296c.079-.136.091-.273.023-.387a.386.386 0 0 0-.339-.182h-9.675c-.158 0-.406 0-.666.262a.938.938 0 0 0-.169.239c-.079.148-.136.25-.407.25h-1.411c-.26 0-.327-.102-.406-.25a1.017 1.017 0 0 0-.17-.239c-.259-.262-.508-.262-.666-.262H.383Zm.001.239h9.675c.146 0 .316 0 .497.193.112.114.146.24.248.365H.812c-.293 0-.327 0-.417-.137l-.124-.216c-.034-.057-.045-.114-.023-.148.023-.034.068-.057.136-.057Zm13.569 0h9.675c.068 0 .113.023.136.057a.186.186 0 0 1-.023.148l-.124.216c-.09.137-.124.137-.418.137h-9.991c.102-.125.136-.251.248-.365.192-.193.351-.193.497-.193Zm-7.304.74h10.702v1.708H6.649v-1.708Zm10.894.023h5.566c-.023.034-.034.057-.056.08 0 0-.09.148-.124.227-.136.217-.204.216-.587.182l-4.799-.284v-.205Zm-16.641.011h5.566v.205l-4.798.285c-.383.022-.451.034-.587-.182l-.124-.228c-.023-.034-.045-.057-.057-.08Zm7.354.311a.341.341 0 0 0-.219.077.287.287 0 0 0-.09.204c0 .126.067.217.203.285.147.068.214.091.248.137a.115.115 0 0 1-.011.171.245.245 0 0 1-.135.034.453.453 0 0 1-.294-.125l.011.182c.085.043.177.07.271.079a.438.438 0 0 0 .26-.079c.124-.091.124-.285.045-.376-.056-.08-.147-.114-.316-.205-.079-.045-.113-.08-.113-.137 0-.113.147-.147.282-.102a.44.44 0 0 1 .124.068l-.011-.171a2.09 2.09 0 0 0-.113-.034c-.011 0-.07-.011-.142-.008Zm.368.008-.011.148c.124-.012.214-.023.293-.023v.865h.192v-.865c.046 0 .136 0 .294.023l-.011-.148h-.757Zm1.264 0c-.293 0-.496.205-.496.512 0 .296.203.513.496.513.294 0 .497-.217.497-.513 0-.307-.203-.512-.497-.512Zm4.957 0-.012.148c.124-.012.215-.023.294-.023v.877-.012h.192v-.865c.045 0 .135 0 .293.023l-.011-.148h-.756Zm-.508.011c-.102 0-.17 0-.226.011v.991h.192v-.421h.067l.305.421h.226l-.35-.444a.32.32 0 0 0 .158-.103.338.338 0 0 0 .057-.17c0-.148-.113-.217-.204-.251a.62.62 0 0 0-.225-.034Zm-6.932 0-.418.991h.169l.102-.251h.373l.09.251h.215l-.418-.991h-.113Zm3.138 0v.991h.136v-.672l.587.672h.102v-.991h-.136v.672l-.587-.672h-.102Zm1.468 0-.111.979h.156l.057-.603.282.569h.09l.271-.569.056.615h.204l-.113-.991h-.102l-.338.695-.35-.695h-.102Zm-.111.979h-.002v.012l.002-.012Zm1.601-.979-.417.991h.169l.101-.251h.373l.09.251h.215l-.418-.991h-.113Zm2.235 0v.991h.192v-.991h-.192Zm.384 0v.991h.136v-.672l.587.672h.102v-.991h-.136v.672l-.587-.672h-.102Zm-9.652.091v.251l-3.985.455c-.429.046-.519.057-.654-.137a1.834 1.834 0 0 1-.102-.159c-.023-.046-.045-.091-.079-.125.09-.012.192-.012.226-.012l4.594-.273Zm11.064 0 4.595.273c.034 0 .124.012.226.012-.023.034-.057.08-.079.125a1.834 1.834 0 0 1-.102.159c-.135.194-.226.183-.655.137l-3.985-.455v-.251Zm-7.644 0c.068 0 .114.011.159.046.135.114.135.33.135.352 0 .274-.136.399-.294.399-.146 0-.282-.125-.293-.398 0-.205.09-.399.293-.399Zm4.415.023h.067c.113 0 .204.046.204.171 0 .08-.046.171-.204.171-.022 0-.056-.012-.078-.012h.011v-.33Zm-6.887.136.147.376h-.282l.135-.376Zm6.096.001.147.375h-.282l.135-.375Zm4.043.318 4.03.455-.824.24c-.226.056-.429.034-.745-.023l-2.461-.41v-.262Zm-11.087 0v.262l-2.461.41c-.327.057-.531.08-.745.023l-.824-.239 4.03-.456Zm0 .478v.331l-.925.238c-.283.069-.452.103-.587.103-.192 0-.305-.045-.994-.25l2.506-.422Zm11.064 0 2.506.422c-.688.205-.801.25-.993.25-.135 0-.305-.023-.587-.102l-.926-.24v-.33Zm-9.449.479h.768c-.463.341-1.163.853-1.468 1.07a.853.853 0 0 1-.486.182c-.18 0-.259-.08-.361-.239-.056-.068-.113-.148-.18-.217.045-.011.09-.011.135-.034.271-.079.666-.284 1.592-.762Zm1.14 0h.643a66.598 66.598 0 0 1-1.309 1.389c-.113.113-.271.273-.508.273-.09 0-.079 0-.903-.228.158-.045.293-.137.361-.182.373-.251 1.31-.945 1.716-1.252Zm.937 0h.587c-.327.557-.768 1.297-.959 1.605-.091.148-.249.376-.542.376-.113.011-.125-.001-.836-.194.147-.08.248-.182.294-.239a74.643 74.643 0 0 0 1.456-1.548Zm.836 0h.53a79.998 79.998 0 0 1-.621 1.912c-.067.182-.158.41-.418.41-.09.011-.067.012-.88-.216.203-.125.327-.319.361-.387.226-.353.745-1.23 1.028-1.719Zm3.149 0h.644a58.301 58.301 0 0 0 1.716 1.252c.068.045.203.125.361.182-.834.228-.813.228-.903.228-.226 0-.395-.16-.508-.273a66.367 66.367 0 0 1-1.31-1.389Zm2.258 0h.836l1.174.296c.079.022.158.034.225.056-.666.205-.767.228-.88.228-.214 0-.497-.148-1.355-.58Zm-9.63.011h.836c-.858.432-1.141.581-1.355.581-.124-.012-.226-.035-.88-.228.067-.011.146-.034.225-.057l1.174-.296Zm4.99 0h.486c.124.398.564 1.787.643 1.992a.857.857 0 0 0 .136.274c-.012-.012-.034-.023-.046-.035l-.62-.592c-.102-.091-.204-.182-.35-.182-.147 0-.26.091-.351.182l-.62.592c-.023.012-.045.023-.057.035.045-.057.079-.137.136-.274.079-.205.519-1.605.643-1.992Zm.711 0h.531c.336.577.678 1.15 1.027 1.719.046.069.158.262.362.387-.813.216-.791.216-.881.216-.259 0-.35-.227-.418-.409-.079-.205-.496-1.549-.621-1.913Zm.791 0h.587c.372.399 1.151 1.229 1.456 1.548.045.046.147.148.294.239-.723.182-.723.194-.836.194-.293 0-.451-.228-.542-.376a95.865 95.865 0 0 1-.959-1.605Zm1.896 0h.768c.937.467 1.332.683 1.592.763l.135.034c-.079.057-.124.136-.18.216-.102.16-.181.239-.361.239-.17 0-.339-.079-.486-.182a75.759 75.759 0 0 1-1.468-1.07Z\"},\"child\":[]}]})(props);\n};\nexport function SiAstra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0m-.1452 5.3226 1.4517 2.9032c-1.6452 3.3194-3.2904 6.6484-4.9355 9.9677H5.758c2.0323-4.287 4.0646-8.5838 6.0968-12.871m2.7097 5.3226c1.229 2.516 2.4484 5.0322 3.6774 7.5483h-2.8064c-.3194-.7451-.6484-1.4806-.9678-2.2258H12l.0484-.0967c.842-1.742 1.6742-3.4839 2.5161-5.2258\"},\"child\":[]}]})(props);\n};\nexport function SiAstral (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.44 0C.6422 0 0 .6422 0 1.44v21.12C0 23.3578.6422 24 1.44 24h21.12c.7978 0 1.44-.6422 1.44-1.44V1.44C24 .6422 23.3578 0 22.56 0Zm4.7998 4.8h11.5199c.7953 0 1.44.6447 1.44 1.44V19.2h-6.624v-4.32h-1.152v4.32H4.8V6.24c0-.7953.6446-1.44 1.4398-1.44m4.032 5.472v1.152h3.456v-1.152z\"},\"child\":[]}]})(props);\n};\nexport function SiAstro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.358 20.162c-1.186-1.07-1.532-3.316-1.038-4.944.856 1.026 2.043 1.352 3.272 1.535 1.897.283 3.76.177 5.522-.678.202-.098.388-.229.608-.36.166.473.209.95.151 1.437-.14 1.185-.738 2.1-1.688 2.794-.38.277-.782.525-1.175.787-1.205.804-1.531 1.747-1.078 3.119l.044.148a3.158 3.158 0 0 1-1.407-1.188 3.31 3.31 0 0 1-.544-1.815c-.004-.32-.004-.642-.048-.958-.106-.769-.472-1.113-1.161-1.133-.707-.02-1.267.411-1.415 1.09-.012.053-.028.104-.045.165h.002zm-5.961-4.445s3.24-1.575 6.49-1.575l2.451-7.565c.092-.366.36-.614.662-.614.302 0 .57.248.662.614l2.45 7.565c3.85 0 6.491 1.575 6.491 1.575L16.088.727C15.93.285 15.663 0 15.303 0H8.697c-.36 0-.615.285-.784.727l-5.516 14.99z\"},\"child\":[]}]})(props);\n};\nexport function SiAsus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.904 10.788V9.522h-4.656c-.972 0-1.41.6-1.482 1.182v.018-1.2h-1.368v1.266h1.362zm-6.144.456l-1.368-.078v1.458c0 .456-.228.594-1.02.594H14.28c-.654 0-.93-.186-.93-.594v-1.596l-1.386-.102v1.812h-.03c-.078-.528-.276-1.14-1.596-1.23L6 11.22c0 .666.474 1.062 1.218 1.14l3.024.306c.24.018.414.09.414.288 0 .216-.18.24-.456.24H5.946V11.22l-1.386-.09v3.348h5.646c1.26 0 1.662-.654 1.722-1.2h.03c.156.864.912 1.2 2.19 1.2h1.41c1.494 0 2.202-.456 2.202-1.524zm4.398.258l-4.338-.258c0 .666.438 1.11 1.182 1.17l3.09.24c.24.018.384.078.384.276 0 .186-.168.258-.516.258h-4.212v1.29h4.302c1.356 0 1.95-.474 1.95-1.554 0-.972-.534-1.338-1.842-1.422zm-10.194-1.98h1.386v1.266h-1.386zM3.798 11.07l-1.506-.15L0 14.478h1.686zm7.914-1.548h-4.23c-.984 0-1.416.612-1.518 1.2v-1.2H3.618c-.33 0-.486.102-.642.33l-.648.936h9.384Z\"},\"child\":[]}]})(props);\n};\nexport function SiAtandt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.584 21.438a12.077 12.077 0 0 0 7.349 2.495 12 12 0 0 0 7.887-2.967c-.944.607-3.64 2.023-7.887 2.023-3.708 0-6.068-.81-7.349-1.55m8.158.606c2.966 0 6.202-.809 8.09-2.427.539-.405 1.01-1.011 1.483-1.753.27-.472.539-1.011.741-1.483-1.82 2.63-7.011 4.315-12.404 4.315-3.776 0-7.888-1.214-9.506-3.573 1.483 3.236 6 4.92 11.596 4.92m-3.236-5.257C3.37 16.787.472 13.955 0 12c0 .674.067 1.483.202 2.09.068.27.27.674.607 1.079 1.483 1.55 5.191 3.707 11.595 3.707 8.697 0 10.72-2.898 11.124-3.842.27-.674.472-1.888.472-2.967v-.674c-.607 2.292-8.022 5.394-14.494 5.394m-8.427-9.91C.742 7.55.337 8.763.202 9.37c-.067.27 0 .404.068.607.741 1.55 4.45 4.044 13.078 4.044 5.259 0 9.371-1.28 10.045-3.64.135-.404.135-.876 0-1.483-.202-.674-.472-1.483-.809-2.09.068 3.101-8.562 5.124-12.944 5.124-4.719 0-8.696-1.888-8.696-4.248.067-.337.135-.606.135-.809M19.82 3.034c.068.067.068.135.068.27 0 1.348-4.045 3.64-10.517 3.64-4.787 0-5.663-1.753-5.663-2.9 0-.404.135-.808.472-1.213-.607.607-1.146 1.147-1.686 1.82-.202.27-.337.54-.337.675 0 2.36 5.865 3.977 11.259 3.977 5.797 0 8.427-1.887 8.427-3.573 0-.606-.203-.943-.81-1.618a17.301 17.301 0 0 0-1.213-1.078m-1.753-1.281A11.794 11.794 0 0 0 11.933.067C9.64.067 7.55.674 5.73 1.82c-.539.27-.876.54-.876.877 0 1.01 2.36 2.09 6.54 2.09 4.112 0 7.348-1.214 7.348-2.36.067-.202-.203-.405-.675-.674\"},\"child\":[]}]})(props);\n};\nexport function SiAtari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 21.653s3.154-.355 5.612-2.384c2.339-1.93 3.185-3.592 3.77-5.476.584-1.885.671-6.419.671-7.764V2.346H8.598v1.365c-.024 2.041-.2 5.918-1.135 8.444C5.203 18.242 0 18.775 0 18.775zm24 0s-3.154-.355-5.61-2.384c-2.342-1.93-3.187-3.592-3.772-5.476-.583-1.885-.671-6.419-.671-7.764V2.346H15.4l.001 1.365c.024 2.041.202 5.918 1.138 8.444 2.258 6.087 7.46 6.62 7.46 6.62zM10.659 2.348h2.685v19.306H10.66Z\"},\"child\":[]}]})(props);\n};\nexport function SiAtlasos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 1.608 12 20.785H0l2.537-4.394h13.852L12 10.396l-1.844 3.193H5.082z\"},\"child\":[]}]})(props);\n};\nexport function SiAtlassian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.12 11.084a.683.683 0 00-1.16.126L.075 22.974a.703.703 0 00.63 1.018h8.19a.678.678 0 00.63-.39c1.767-3.65.696-9.203-2.406-12.52zM11.434.386a15.515 15.515 0 00-.906 15.317l3.95 7.9a.703.703 0 00.628.388h8.19a.703.703 0 00.63-1.017L12.63.38a.664.664 0 00-1.196.006z\"},\"child\":[]}]})(props);\n};\nexport function SiAuchan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.467 18.7529 1.6518 4.6358h1.2185l-1.7447-4.8583a7.9586 7.9586 0 0 1-1.1256.2217M0 23.3888h5.5057l1.7822-5.6112H1.9158A107.284 107.284 0 0 0 0 23.3879m7.2547-12.6334L10.4337 8.1c.5205-1.4086 1.0642-2.8197 1.6295-4.0216.2822.6408.5495 1.2816.83 1.9639 1.2268-1.0077 2.0328-1.5555 2.0735-1.582l.0164-.0117a5.6618 5.6618 0 0 1 1.632-.7064 112.7775 112.7775 0 0 0-1.4817-3.131h-6.169c-.5146.9903-2.4329 4.9521-4.6765 10.399h2.2694c.3693 0 .5544-.1362.6972-.2557m12.9073 4.4076a7.4539 7.4539 0 0 1-3.473 2.9658l1.8702 5.2609H24c-1.0874-3.3012-2.2536-6.2786-3.3484-9.0684-.1527.303-.3155.5603-.4898.8409M18.549 6.2946c.157 0 .303.0365.4358.1005-.0264-.0042-.054-.0092-.0813-.0092a.5844.5844 0 0 0-.5844.581.581.581 0 0 0 .5844.5803.581.581 0 0 0 .5827-.5794c0-.02-.0025-.0374-.004-.0548a.9987.9987 0 0 1 .0772.3843c0 .5528-.4524 1.0027-1.0102 1.0027-.5556.0014-1.0074-.4471-1.0102-1.0027 0-.5561.4532-1.0027 1.0102-1.0027zm-5.6393 11.3178c1.3297 0 4.503-.3378 6.2204-3.096 1.7198-2.76 2.3191-7.1386 2.3191-7.1386l1.8826-.8923c.1179-.0589.0872-.2623-.0565-.2623H21.246c-.318-.4955-1.4194-1.5497-3.0422-1.5497-.9628 0-1.8062.2715-2.5615.7637 0 0-1.1015.7503-2.7035 2.1282l-4.904 4.0797c-.3776.3155-.84.5205-1.4791.5205H.3858c-.1743 0-.1162.146-.088.2307.435 1.3256 1.5962 2.5085 3.6232 2.5085l-1.4476 1.4916c-.0573.0564-.0573.2258.0863.2258h5.5049c3.9784 0 6.4246-1.7415 8.0324-4.1545.1378-.2067.2673-.4266.3901-.6391.0606.0282.0664.0863.0381.1428-.4059.9794-1.4194 2.965-3.2737 4.1452-.6392.3736-.8417.489-1.7398.8334-.0614.0266-.0863.1245-.0581.2092l2.2279 6.2295h1.216l-2.042-5.7771h.0557z\"},\"child\":[]}]})(props);\n};\nexport function SiAudacity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.145c-2.487 0-4.755.776-6.428 2.08-1.673 1.303-2.76 3.169-2.76 5.244v.75C1.153 11.06 0 13.268 0 15.856c0 3.312 1.884 6 4.312 6V9.468c0-1.554.805-2.984 2.186-4.06C7.879 4.331 9.829 3.643 12 3.643c2.17 0 4.12.688 5.502 1.764 1.38 1.077 2.186 2.507 2.186 4.06v12.387c2.428 0 4.312-2.687 4.312-6 0-2.587-1.152-4.795-2.813-5.636v-.75c0-2.075-1.086-3.94-2.76-5.244-1.672-1.304-3.94-2.08-6.427-2.08zm0 6.153l-1.125 8.683L9.75 9.105l-.562 6.75-.376-.75-.375-4.5-.187 4.5-.563 1.313-.374-4.5-.376 3.562-.562-.937v2.625l-.563-2.11v-4.64a1.432 1.432 0 0 0-.937-.375v11.812c.375 0 .75-.187.937-.562v-3.375l.188.187.563 1.875.187-2.25.563 2.813v-3.562l.374.937.563 2.625v-3.562l.375.374.563 3.188.562-4.313 1.24 4.86.072-2.985.375-1.124.376 4.687 1.124-4.687.375 3.937.938-4.125.938 4.5.187-3.375.562-1.125.188 4.313.938-4.125.562 1.875.188-1.688.374.75v3.375c.188.375.563.562.938.562V10.043c-.375 0-.75.188-.938.375v4.813l-.374 1-.188-3.188-.375 2.437-.375-.75-.188-2.625-.937 3.563-.188-.75L15 9.293l-.562 4.875-.376 1.5-.75-5.062-.75 4.312-.375 1.125Z\"},\"child\":[]}]})(props);\n};\nexport function SiAudi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.848,7.848c-0.992,0-1.902,0.348-2.616,0.928c-0.714-0.58-1.624-0.928-2.616-0.928 c-0.992,0-1.902,0.348-2.616,0.928c-0.714-0.58-1.624-0.928-2.616-0.928c-0.992,0-1.902,0.348-2.616,0.928 c-0.714-0.58-1.624-0.928-2.616-0.928C1.859,7.848,0,9.707,0,12s1.859,4.152,4.152,4.152c0.992,0,1.902-0.348,2.616-0.928 c0.714,0.58,1.624,0.928,2.616,0.928c0.992,0,1.902-0.348,2.616-0.928c0.714,0.58,1.624,0.928,2.616,0.928 c0.992,0,1.902-0.348,2.616-0.928c0.714,0.58,1.624,0.928,2.616,0.928C22.141,16.152,24,14.293,24,12S22.141,7.848,19.848,7.848z M17.232,13.866c-0.376-0.526-0.598-1.17-0.598-1.866c0-0.696,0.222-1.34,0.598-1.866c0.376,0.526,0.598,1.17,0.598,1.866 C17.83,12.696,17.608,13.34,17.232,13.866z M12,13.866c-0.376-0.526-0.598-1.17-0.598-1.866c0-0.696,0.222-1.34,0.598-1.866 c0.376,0.526,0.598,1.17,0.598,1.866C12.598,12.696,12.376,13.34,12,13.866z M6.768,13.866C6.392,13.34,6.17,12.696,6.17,12 c0-0.696,0.222-1.34,0.598-1.866C7.144,10.66,7.366,11.304,7.366,12C7.366,12.696,7.144,13.34,6.768,13.866z M0.938,12 c0-1.775,1.439-3.214,3.214-3.214c0.736,0,1.414,0.248,1.956,0.665C5.56,10.154,5.232,11.039,5.232,12 c0,0.961,0.328,1.846,0.876,2.549c-0.542,0.416-1.22,0.665-1.956,0.665C2.377,15.214,0.938,13.775,0.938,12z M7.428,14.549 C7.976,13.846,8.304,12.961,8.304,12c0-0.961-0.328-1.846-0.876-2.549c0.542-0.416,1.22-0.665,1.956-0.665 c0.736,0,1.414,0.248,1.956,0.665c-0.549,0.704-0.876,1.588-0.876,2.549c0,0.961,0.328,1.846,0.876,2.549 c-0.542,0.416-1.22,0.665-1.956,0.665C8.648,15.214,7.97,14.966,7.428,14.549z M12.66,14.549c0.549-0.704,0.876-1.588,0.876-2.549 c0-0.961-0.328-1.846-0.876-2.55c0.542-0.416,1.22-0.665,1.956-0.665s1.414,0.248,1.956,0.665 c-0.549,0.704-0.876,1.588-0.876,2.549c0,0.961,0.328,1.846,0.876,2.549c-0.542,0.416-1.22,0.665-1.956,0.665 C13.88,15.214,13.202,14.966,12.66,14.549z M19.848,15.214c-0.736,0-1.414-0.248-1.956-0.665c0.548-0.704,0.876-1.588,0.876-2.549 c0-0.961-0.328-1.846-0.876-2.549c0.542-0.416,1.22-0.665,1.956-0.665c1.775,0,3.214,1.439,3.214,3.214 S21.623,15.214,19.848,15.214z\"},\"child\":[]}]})(props);\n};\nexport function SiAudible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.008 17.362L24 9.885v2.028l-11.992 7.509L0 11.912V9.886l12.008 7.477zm0-9.378c-2.709 0-5.085 1.363-6.448 3.47.111-.111.175-.175.286-.254 3.374-2.804 8.237-2.17 10.883 1.362l1.758-1.124c-1.394-2.044-3.786-3.454-6.48-3.454m0 3.47a4.392 4.392 0 0 0-3.548 1.821 3.597 3.597 0 0 1 2.139-.697c1.299 0 2.455.666 3.232 1.79l1.679-1.045c-.729-1.157-2.028-1.87-3.501-1.87M3.897 8.412c4.943-3.897 11.929-2.836 15.652 2.344l.031.032 1.822-1.125a11.214 11.214 0 0 0-9.394-5.085c-3.897 0-7.366 1.996-9.394 5.085.364-.412.824-.903 1.283-1.251\"},\"child\":[]}]})(props);\n};\nexport function SiAudiobookshelf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0Zm-.023.402A11.598 11.598 0 0 1 23.575 12a11.598 11.598 0 0 1-11.598 11.598A11.598 11.598 0 0 1 .378 12 11.598 11.598 0 0 1 11.977.402Zm0 1.776a7.093 7.093 0 0 0-7.092 7.093v1.536a6.395 6.395 0 0 0-.439.33.35.35 0 0 0-.126.27v1.84a.36.36 0 0 0 .126.272c.22.182.722.564 1.504.956v.179c0 .483.31.873.694.873.384 0 .694-.392.694-.873v-4.415c0-.483-.31-.873-.694-.873-.369 0-.67.359-.694.812h-.002v-.91a6.027 6.027 0 1 1 12.054.003v.91c-.025-.454-.326-.813-.695-.813-.384 0-.694.391-.694.873v4.415c0 .483.31.873.694.873.384 0 .695-.392.695-.873v-.179a7.964 7.964 0 0 0 1.503-.956.35.35 0 0 0 .126-.272v-1.843a.342.342 0 0 0-.124-.27 5.932 5.932 0 0 0-.438-.329V9.271a7.093 7.093 0 0 0-7.092-7.093zm-3.34 5.548a.84.84 0 0 0-.84.84v9.405c0 .464.376.84.84.84h.866a.84.84 0 0 0 .84-.84V8.566a.84.84 0 0 0-.84-.84Zm2.905 0a.84.84 0 0 0-.84.84v9.405c0 .464.377.84.84.84h.867a.84.84 0 0 0 .84-.84V8.566a.84.84 0 0 0-.84-.84zm2.908 0a.84.84 0 0 0-.84.84v9.405c0 .464.376.84.84.84h.867a.84.84 0 0 0 .84-.84V8.566a.84.84 0 0 0-.84-.84zM8.112 9.983h1.915v.2H8.112Zm2.906 0h1.915v.2h-1.915Zm2.908 0h1.915v.2h-1.915zm-7.58 9.119a.633.633 0 0 0 0 1.265h11.26a.632.632 0 0 0 0-1.265z\"},\"child\":[]}]})(props);\n};\nexport function SiAudioboom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.373 24 0 18.627 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12zM7.425 3.214c-.621 0-1.125.503-1.125 1.124v6a1.124 1.124 0 0 0 2.25 0v-6c0-.62-.504-1.124-1.125-1.124zm0 9.314c-.621 0-1.125.503-1.125 1.125v6a1.124 1.124 0 0 0 2.25 0v-6c0-.622-.504-1.125-1.125-1.125zm4.152-6.856c-.621 0-1.125.504-1.125 1.125v10.388a1.124 1.124 0 0 0 2.25 0V6.797c0-.621-.504-1.125-1.125-1.125zm4.151 6.856c-.62 0-1.124.503-1.124 1.125v1.056a1.124 1.124 0 1 0 2.249 0v-1.056c0-.622-.504-1.125-1.125-1.125zm0-4.37c-.62 0-1.124.503-1.124 1.124v1.056a1.124 1.124 0 0 0 2.249 0V9.282c0-.62-.504-1.124-1.125-1.124zm4.152 2.422c-.62 0-1.124.503-1.124 1.124v.574a1.124 1.124 0 1 0 2.249 0v-.574c0-.62-.504-1.124-1.125-1.124Z\"},\"child\":[]}]})(props);\n};\nexport function SiAudiomack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.331 11.378s.5418-.089.765.1439c.2234.2332.077.7156-.2195.7237-.2965.01-.5705.063-.765-.1439-.1946-.2066-.1424-.6218.2195-.7237m5.881 3.2925c-.0522.01-.1075-.018-.164-.059-.3884-.5413-.5287-2.3923-.707-2.5025-.185-.1144-.8545 1.0255-2.1862.903-.5569-.051-1.1236-.4121-1.4573-.662.031-.4206.0364-1.4027.8659-1.0833.5038.1939 1.3667.7266 2.1245-.23.8378-1.0579 1.2999-.7506 1.577-.5206.2771.23.0925 1.4259.5058 1.0916.4133-.3343 2.082-2.4103 2.082-2.4103s1.292-1.303 1.4898.067c.1979 1.3698 1.0403 2.8877 1.2635 2.8445.2234-.043 2.8223-5.3253 3.1945-5.666.3722-.3409 1.6252-.2961 1.5657.5781-.0596.8742-.1871 6.308-.1871 6.308s-.147 1.5311.0924.7128c.0992-.3392.206-.6453.3392-1.0024.6414-2.0534 1.734-5.5613 2.2784-7.3688.1252-.4325.233-.8037.3166-1.0891l.0001-.0008a3.5925 3.5925 0 0 1 .0973-.3305c.0455-.1532.0763-.2546.0858-.2813.0243-.068.0925-.1192.1884-.157.0962-.061.1995-.064.3165-.067.3021-.027.6907.012 1.0401.1119.1018 0 .2125.037.3172.1118v.0001s.0063 0 .0151.01c.0023 0 .0048 0 .0073.01.0219.015.0573.045.0983.095.0012 0 .0025 0 .004.01.017.021.0341.045.0515.073.1952.2863.315.814.1948 1.7498-.2996 2.3354-.5316 7.1397-.5316 7.1397s-.0461.2298.4353-.782c.0167-.035.0383-.066.058-.098.026-.017.0552-.042.0913-.085.2974-.3546 1.0968-.5629 1.6512-.5586.2336.028.4293.087.5462.1609.2188.333.0897 1.562.0897 1.562-.4612.043-1.3403.2908-1.6519.3366-.3118.046-.7852 2.0699-1.4433 1.8629-.6581-.2069-2.1246-1.1268-2.1246-1.2533 0-.1102.1152-1.4546.1453-1.8016.0022-.024.004-.046.0058-.068a.152.152 0 0 1 .0014-.014l-.0002.0003c.0213-.2733.0023-.3927-.1239-.1199-.1086.2346-.581 1.7359-1.1078 3.3709-.0556.1429-1.0511 3.1558-1.1818 3.5231-.156.4261-.287.7523-.3776.921-.1378.1867-.3234.3036-.5826.2252-.6465-.1954-1.4654-1.0889-1.473-1.3106-.0155-1.2503.0608-7.973-.2423-7.4127-.311.5744-2.73 4.5608-2.73 4.5608-.0405.01-.0705.01-.1062.01-.1712-.019-.4366-.074-.51-.2384-.004-.01-.0094-.018-.0129-.028-.0035-.01-.0075-.022-.0135-.04-.0329-.1097-.0463-.2289-.0753-.3265-.1082-.3652-.2813-.8886-.463-1.421-.2784-.9079-.5654-1.8366-.6127-1.9391-.0923-.2007-.2268-.116-.3475-.0002-.54.458-1.6868 2.4793-2.7225 2.5898\"},\"child\":[]}]})(props);\n};\nexport function SiAudiotechnica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A11.992 11.992 0 00.015 11.985 12.019 12.019 0 0012 24a12.019 12.019 0 0011.985-12.015A11.992 11.992 0 0012.004 0zm0 .903a11.078 11.078 0 0111.085 11.078c0 6.123-4.958 11.112-11.085 11.112A11.104 11.104 0 01.922 11.985 11.078 11.078 0 0111.996.907zm.087 1.16l-.43 1.252-5.674 16.063-.204.604h12.654l-.23-.604L12.524 3.31zm0 2.797l2.007 5.643-3.024 8.553H7.056zm2.502 7.038l2.532 7.155h-5.09z\"},\"child\":[]}]})(props);\n};\nexport function SiAurelia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.716 4.636L13.49 6.122l-2.295-3.439 2.228-1.486zM17.527 14.967l3.806 5.703-4.533 3.025-3.806-5.703-.664-.995 4.533-3.025zM11.817 18.777l.838 1.256-3.45 2.303-1.503-2.25.754-.504 2.697-1.8zM19.413 12.27l.968-.645 1.501 2.25-2.227 1.487-.838-1.256 1.26-.84zm-.596 1.836l-.664-.995 1.26-.84.664.994zM3.792 12.593l-.753.503L.744 9.657l3.45-2.302 1.61 2.41-2.698 1.8 2.697-1.8.686 1.029zM11.513 5.954l.687 1.029-4.534 3.025L6.98 8.98 3.21 3.33 7.742.305zM14.749 5.282l-1.26.84-.686-1.028-1.609-2.41 2.228-1.487 2.295 3.439zM9.12 20.577l-.664-.995 2.697-1.8.664.995zM18.817 14.106l-.664-.995 1.26-.84.664.994zM3.792 12.593l-.686-1.028 2.697-1.8.686 1.029zM13.489 6.122l-.686-1.028 1.26-.84.686 1.028zM17.527 14.967l-4.533 3.025-.664-.995 4.533-3.025zM11.513 5.954l.687 1.029-4.534 3.025L6.98 8.98zM2.507 5.132l.855 1.283-1.282.855-.856-1.282zM7.127 20.505l.856 1.283-1.282.855-.856-1.282zM3.754 21.797L0 16.125 20.063 2.706 24 8.287z\"},\"child\":[]}]})(props);\n};\nexport function SiAuth0 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.98 7.448L19.62 0H4.347L2.02 7.448c-1.352 4.312.03 9.206 3.815 12.015L12.007 24l6.157-4.552c3.755-2.81 5.182-7.688 3.815-12.015l-6.16 4.58 2.343 7.45-6.157-4.597-6.158 4.58 2.358-7.433-6.188-4.55 7.63-.045L12.008 0l2.356 7.404 7.615.044z\"},\"child\":[]}]})(props);\n};\nexport function SiAuthelia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.624.191c-.324.023-.655.011-.97.073-2.883.568-5.244 2.01-7.074 4.3C1.42 6.014.624 7.652.243 9.48c-.25 1.2-.294 2.402-.191 3.627.237 2.832 1.377 5.233 3.345 7.26.332.341.775.348 1.1.055.39-.35.442-.735.124-1.149-.271-.353-.588-.671-.85-1.03-1.625-2.208-2.343-4.674-2.04-7.411.305-2.773 1.6-5.022 3.723-6.795 1.517-1.267 3.288-1.983 5.248-2.24.272-.037.552-.083.803-.186.32-.132.478-.564.4-.923-.085-.384-.355-.483-.702-.477-.194.004-.387 0-.58 0v-.02zm4.639 3.41c-.312-.008-.582.197-.722.512-.176.4-.027.854.367 1.096.123.075.256.134.385.199 1.485.737 2.619 1.834 3.319 3.342.257.554.423 1.15.636 1.726.162.441.509.656.92.579.425-.08.67-.392.668-.952-.016-.081-.035-.261-.082-.435-.535-1.97-1.579-3.616-3.21-4.847-.598-.453-1.28-.812-1.958-1.14a.782.782 0 0 0-.323-.08zm-6.939.23a.903.903 0 0 0-.492.144c-.648.388-1.325.764-1.88 1.266-2.323 2.098-3.262 4.755-2.905 7.84.55 4.74 4.6 8.021 8.9 7.904l.868-.001a.99.99 0 0 0 .109-.007c2.491-.312 4.58-1.387 6.146-3.36.488-.615.86-1.336 1.2-2.049.248-.523-.032-.982-.56-1.12-.38-.1-.72.112-.974.509-.473.737-.89 1.54-1.491 2.16-1.479 1.52-3.322 2.28-5.466 2.199-2.405-.091-4.337-1.127-5.758-3.056-1.088-1.475-1.49-3.168-1.32-4.984.184-1.987 1.038-3.644 2.57-4.927.423-.354.908-.633 1.365-.946.458-.314.568-.715.314-1.15-.153-.262-.371-.413-.626-.422zm3.417 2.167C8.724 6.056 6.02 8.625 6 12 5.98 15.29 8.712 18.017 12 18.02c3.339.005 6.078-2.618 6.062-6.025C18.048 8.45 15.192 5.911 12.034 6a5.726 5.726 0 0 0-.293-.002zm10.752 1.164a.91.91 0 0 0-.137.002c-.404.033-.642.295-.74.646-.053.187-.01.432.064.62a9.546 9.546 0 0 1 .648 3.753 9.994 9.994 0 0 1-1.32 4.76c-1.617 2.84-4.04 4.53-7.243 5.12-.343.063-.694.095-1.033.174-.434.103-.688.473-.641.882.044.38.34.646.769.684.132.012.265.002.398.002l-.001-.003c.145 0 .29.005.434-.002.084-.004.167-.028.25-.04 1.847-.282 3.518-.99 5.037-2.068 1.708-1.213 3.001-2.78 3.897-4.665 1.1-2.317 1.375-4.752.906-7.264-.13-.694-.354-1.376-.584-2.046-.125-.362-.389-.537-.704-.555zm-10.449.862c.13 0 .261.016.392.05.708.18 1.16.787 1.158 1.553.027.504-.211.888-.588 1.183-.207.163-.236.32-.176.558.264 1.052.52 2.107.763 3.164.13.568-.019.872-.522 1.174-.675.404-1.666.354-2.29-.13-.315-.244-.427-.573-.331-.966.252-1.031.494-2.064.762-3.09.086-.33.041-.554-.225-.794-.581-.523-.682-1.253-.317-1.903a1.57 1.57 0 0 1 1.374-.8z\"},\"child\":[]}]})(props);\n};\nexport function SiAuthentik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.96 9.01h-.84V7.492h-1.234v3.663H5.722c.34.517.538.982.538 1.152 0 .46-1.445 3.059-3.197 3.059C.8 15.427-.745 12.8.372 10.855a3.062 3.062 0 0 1 2.691-1.606c1.04 0 1.971.915 2.557 1.755V6.577a3.773 3.773 0 0 1 3.77-3.769h10.84C22.31 2.808 24 4.5 24 6.577v10.845a3.773 3.773 0 0 1-3.77 3.769h-1.6V17.5h-7.64v3.692h-1.6a3.773 3.773 0 0 1-3.77-3.769v-3.41h12.114v-6.52h-1.59v.893h-.84v-.893H13.96v1.516Zm-9.956 1.845c-.662-.703-1.578-.544-2.209 0-2.105 2.054 1.338 5.553 3.302 1.447a5.395 5.395 0 0 0-1.093-1.447Z\"},\"child\":[]}]})(props);\n};\nexport function SiAuthy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm3.42 5.338c.274 0 .551.105.769.315l2.862 2.862c2.054 2.039 2.084 5.35.105 7.449a.21.21 0 0 1-.045.06l-.03.03-.03.03c-.015.015-.045.03-.06.045-2.098 1.978-5.41 1.948-7.463-.105l-2.863-2.863a1.05 1.05 0 0 1 0-1.499 1.05 1.05 0 0 1 1.5 0l2.861 2.863a3.23 3.23 0 0 0 4.542.03 3.244 3.244 0 0 0-.03-4.541l-2.863-2.862a1.05 1.05 0 0 1 0-1.5c.203-.209.472-.314.746-.314zM8.758 6.397a5.33 5.33 0 0 1 3.715 1.564l2.863 2.862c.42.42.42 1.08 0 1.5-.42.419-1.08.419-1.5 0L10.975 9.46a3.249 3.249 0 0 0-4.558-.015 3.243 3.243 0 0 0 .03 4.54l2.863 2.863c.42.42.42 1.08 0 1.499a1.05 1.05 0 0 1-1.499 0L4.95 15.484c-2.054-2.053-2.084-5.365-.105-7.463.015-.03.03-.045.045-.06l.03-.03.03-.03c.015-.015.045-.03.06-.045a5.355 5.355 0 0 1 3.748-1.46z\"},\"child\":[]}]})(props);\n};\nexport function SiAutocad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.8672 1.0527v.0157L0 3.3848v17.914l3.8965-2.332h18.3398V2.3301c0-.702-.5773-1.2774-1.2793-1.2774H3.8672zm7.5058 4.0098h3.3008l2.9844 9.9512h-2.5879l-.5683-2.1895h-2.9844l-.5703 2.1621h-2.416l2.8417-9.9238zm11.8633.0273v14.877H4.172l-2.0684 1.2383v.4648c0 .702.5793 1.2774 1.2813 1.2774H24V5.0898h-.7637zM12.9668 6.6816l-.9941 4.3243h2.0468l-1.0527-4.3243z\"},\"child\":[]}]})(props);\n};\nexport function SiAutocannon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.293 18.131c-.245.277-.47.542-.708.795-.085.092-.192.037-.272-.027-.9-.715-7.786-7.358-12.016-11.122l.86-.937a1210.086 1210.086 0 0 1 12.136 11.291Zm-.8 4.954c-.488.243-.97.48-1.45.72-.074.039-.126.028-.187-.03-2.093-1.923-7.729-7.196-11.564-10.692a.523.523 0 0 1-.17-.327c-.157-1.086-.102-2.154.27-3.196.066-.18.124-.364.194-.572.267.237.525.456.773.688A1801.346 1801.346 0 0 0 19.8 22.154l.05.057-1.355.874zM8.595 6.284c-.04-.036-.083-.071-.12-.112-.068-.08-.035-.231.065-.263.707-.228 1.415-.453 2.123-.68.427 0 .856-.018 1.284.005.253.015.46.177.642.349 3.73 3.54 7.51 7.022 11.287 10.51.137.127.16.245.072.433a252.377 252.377 0 0 1-1.31 2.798A1406.269 1406.337 0 0 0 8.594 6.284ZM12.477.039c4.683.068 8.987 2.71 11.136 7.294-1.02.54-2.038 1.082-3.066 1.628-.995-2.252-2.615-3.868-4.87-4.843-1.72-.743-3.492-.845-5.31-.436-4.194.943-6.66 4.38-6.958 7.95-.357 4.291 2.282 7.922 6.115 9.246-.848 1.901-.22.49-1.268 2.834-.12.272-.193.3-.466.193a12.36 12.36 0 0 1-3.8-2.38c-1.11-1.009-2.025-2.158-2.696-3.497C.66 16.766.207 15.443.054 14.031c-.083-.763-.048-1.53-.04-2.296.034-2.627.98-4.922 2.562-6.97C4.182 2.689 6.26 1.279 8.786.535c1.004-.3 3.035-.527 3.69-.496Z\"},\"child\":[]}]})(props);\n};\nexport function SiAutodesk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.129 20.202 14.7-9.136h7.625c.235 0 .445.188.445.445 0 .21-.092.305-.21.375l-7.222 4.323c-.47.283-.633.845-.633 1.265l-.008 2.725H24V4.362a.561.561 0 0 0-.585-.562h-8.752L0 12.893V20.2h.129z\"},\"child\":[]}]})(props);\n};\nexport function SiAutodeskmaya (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.348 0 .69 2.203v16.875l3.657-2.203h17.297V1.219c0-.67-.551-1.219-1.22-1.219H4.349zm18.297 3.75v14.125H4.627l-1.943 1.17v3.736c0 .67.55 1.219 1.218 1.219H23.31V3.75h-.664zm-14.471.025h2.937l1.885 7.508 1.977-7.48-.012-.028h2.857v9.354h-2.216v-6.04l-1.565 6.026v.014h-2.203l-1.656-6.28v6.28H8.174V3.775zm1.33 14.762h1.18l1.068 3.543h-.902l-.217-.773H9.568l-.197.773h-.88l1.013-3.543zm1.918 0h.932l.648 1.494.643-1.494h.894l-1.113 2.133v1.41h-.887v-1.406l-1.117-2.137zm3.826 0h1.18l1.068 3.543h-.9l-.217-.773h-1.065l-.197.773h-.88l1.011-3.543zm-5.156.582-.362 1.53h.73l-.368-1.53zm5.744 0-.36 1.53h.73l-.37-1.53z\"},\"child\":[]}]})(props);\n};\nexport function SiAutodeskrevit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 22.665H2.994c-.519 0-.838-.293-.835-.723.001.042.002-.148.003-.463.142-.083.283-.165.427-.247l.078-.045.07-.058.015-.013.127-.078 1.294-.804h1.134c3.35 0 11.817 0 16.548.007.159 0 .631 0 1.002-.371.371-.372.37-.853.37-1.011-.008-2.057-.001-4.109.005-6.16.008-2.39.016-4.86 0-7.298v-.063l.61-.007c.169-.003.143.197.143.296.014 5.68-.02 11.36.015 17.038zM14.326 8.982c.006-.281.006-.56.006-.859-.009-.5-.395-1.055-.916-1.055-.435 0-.919.006-1.432.006v3.01h1.432c.52 0 .9-.584.91-1.102zM3.887 19.234 3.853 1.363l.007-.025.026-.003h17.313c.51.232.943.56 1.033 1.16.023 1.052 0 1.896 0 2.854.001.023-.002.036 0 .059.03 4.489-.022 8.963-.005 13.453 0 .285-.072.38-.37.38-5.99-.008-17.97-.007-17.97-.007zm5.624-3.971h2.395l.057-.051v-3.5c.316.001.57-.005.787-.005.075 0 .348.075.449.286.36.757.692 1.531 1.125 2.25.583.967 1.704 1.204 2.469 1.204.528 0 .528-.024.528-.245 0-.423-.006-.935-.006-1.374-.403-.039-.734-.163-.929-.541-.362-.705-.74-1.401-1.119-2.114.248-.072.218-.057.302-.092.859-.357 1.139-.951 1.213-1.71.05-.503.059-1.144.025-1.395-.112-.833-.378-1.454-1.036-1.932-.773-.562-1.678-.657-2.582-.687a62.395 62.395 0 0 0-3.678.012v9.894zm-5.658-13.9C1.631 2.64.98 3.087.223 3.513.025 3.622 0 3.895 0 4.1l.02 17.45c.575-.357 3.293-1.96 3.867-2.316L3.853 1.363z\"},\"child\":[]}]})(props);\n};\nexport function SiAutohotkey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.514.508V.51H1.803C1.053.51.079 1.135 0 2.27v17.133h.002v2.325c.08 1.136 1.05 1.763 1.8 1.763h1.505l.002-.002h18.869c1.256-.053 1.766-1.066 1.822-1.699v-3.023h-.002V2.209c-.056-.633-.567-1.648-1.824-1.701h-1.66zM3.412 1.623h17.154c.898 0 1.618.72 1.618 1.617v16.64c0 .898-.72 1.62-1.618 1.62H3.412a1.616 1.616 0 01-1.619-1.62V3.24c0-.897.722-1.617 1.62-1.617zm3.315 12.412l-1.895 5.037h.703l.526-1.467h2.02l.497 1.467h.744l-1.824-5.037h-.771zm8.43.008v5.037h.679v-1.767l.793-.758 1.76 2.525h.884l-2.154-3.002 2.098-2.035h-.94l-2.441 2.441v-2.441h-.68zm-5.153.027v5.037h.682v-2.351h2.628v2.351h.682V14.07h-.682v2.084h-2.628V14.07h-.682zm-2.926.717h.014l.742 2.217H6.271l.807-2.217z\"},\"child\":[]}]})(props);\n};\nexport function SiAutoit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.351 15.563-5.486-7.941a2.684 2.684 0 0 0-.702-.702c-.276-.188-.62-.283-1.03-.283-.43 0-.784.101-1.064.302-.28.202-.512.43-.696.683l-5.63 7.94h3.215l4.122-5.827 1.575 2.323c.148.21.304.436.466.676.161.24.304.44.426.597a9.106 9.106 0 0 0-.741-.026H10.78l-1.64 2.258zM12 24C5.373 24 0 18.627 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12zm0-21.61a9.61 9.61 0 1 0 0 19.22 9.61 9.61 0 1 0 0-19.22z\"},\"child\":[]}]})(props);\n};\nexport function SiAutomattic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.521 8.11a1.497 1.497 0 01.433 2.102l-3.511 5.441a1.496 1.496 0 01-2.068.457 1.507 1.507 0 01-.44-2.08l3.513-5.44c.215-.335.554-.57.943-.655.39-.085.796-.04 1.13.175z M11.98 23.03C4.713 23.03 0 17.79 0 12.338v-.676C0 6.117 4.713.97 11.98.97 19.246.97 24 6.117 24 11.662v.676c0 5.453-4.713 10.692-12.02 10.692zm8.133-11.31c0-3.974-2.888-7.51-8.133-7.51-5.245 0-8.087 3.542-8.087 7.51v.497c0 3.974 2.888 7.578 8.087 7.578 5.198 0 8.133-3.604 8.133-7.578v-.497z\"},\"child\":[]}]})(props);\n};\nexport function SiAutoprefixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.87 21.045h2.923l.959-3.068h4.503l.949 3.068h2.922L11.94 2.955l-6.07 18.09zm6.162-10.12 1.543 4.917h-3.153l1.553-4.916h.057zM24 17.617l-.378-1.182-6.266-.59.733 2.127 5.91-.354zM6.644 15.843l-6.266.591L0 17.616l5.911.355.733-2.128z\"},\"child\":[]}]})(props);\n};\nexport function SiAutozone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.35 6.026c-.7.009-1.69.235-2.176 1.16l-2.442 4.25h1.59l.682-1.188h.773l-.681 1.188h1.58l2.25-3.904c.375-.689.013-1.338-1.149-1.483a3.14 3.14 0 0 0-.427-.023Zm6.082.783-1.891 3.295c-.172.316-.156.668.096.986.179.231.367.348.707.348h.894l.62-1.08h-.676c-.053 0-.11.008-.131-.041-.012-.03-.02-.061-.006-.09l.953-1.656h.803l.66-1.155h-.8l.349-.607Zm3.855.385c-1.166-.001-2.247.942-2.752 2.37-.373 1.057-.216 1.943.928 2.005 1.156.061 2.261-.66 2.879-2.409.374-1.056.107-1.906-.942-1.962a2.15 2.15 0 0 0-.113-.004Zm-8.006.222-1.672 2.912c-.298.548.094 1.094 1.063 1.215.55.069 1.705.004 2.25-.927l.002-.004 1.83-3.196h-1.463l-1.502 2.67c-.123.221-.25.284-.445.246-.244-.048-.141-.234-.07-.361l1.478-2.555zm-2.39.051a.697.697 0 0 1 .101.002c.233.024.309.144.164.385l-.636 1.11h-.776l.697-1.218a.536.536 0 0 1 .45-.279zm9.984.994a.25.25 0 0 1 .053.004c.252.045.144.34-.073.758-.359.693-.603 1.04-.906.98-.22-.043-.14-.357.078-.775.284-.548.588-.956.848-.967zm-16.78 3.944L0 17.791h1.635l3.097-5.386zm2.02 0-3.097 5.386h1.039l3.1-5.386zm1.563 0-3.096 5.386h.643l3.095-5.386Zm1.318 0-3.094 5.386h.377l3.096-5.386zm.979.02-.733 1.276h2.143l-3.682 2.682-.83 1.434h4.363l.729-1.27H8.918l3.559-2.635.853-1.488zm14.707.573a.31.31 0 0 0-.32.32.298.298 0 0 0 .156.277.32.32 0 0 0 .164.042c.06 0 .115-.013.164-.041a.292.292 0 0 0 .113-.113.323.323 0 0 0 .041-.164.325.325 0 0 0-.041-.164.293.293 0 0 0-.113-.116.332.332 0 0 0-.164-.04Zm-.018.067h.018a.237.237 0 0 1 .217.123.27.27 0 0 1 .033.13.268.268 0 0 1-.034.133.226.226 0 0 1-.087.09.253.253 0 0 1-.13.033.258.258 0 0 1-.13-.033.23.23 0 0 1-.088-.09.277.277 0 0 1 0-.263.225.225 0 0 1 .088-.09.254.254 0 0 1 .113-.033zm-.08.07v.355h.057v-.134h.045l.06.134h.06l-.068-.142c.023-.007.04-.017.05-.033a.145.145 0 0 0 .013-.069v-.008c0-.04-.008-.067-.026-.082-.017-.014-.05-.021-.097-.021zm.055.05h.037c.026 0 .044.005.053.012.008.008.011.022.011.045v.004c0 .023-.003.039-.011.047-.009.008-.027.014-.053.014h-.037zm-9.534.4c-1.166-.002-2.247.944-2.751 2.376-.374 1.059-.217 1.95.927 2.01 1.156.062 2.263-.66 2.881-2.414.372-1.059.106-1.914-.943-1.97-.038-.003-.076-.003-.114-.003zm7.852 0c-1.162-.002-2.173.944-2.678 2.376-.373 1.059-.29 1.95.854 2.01.963.051 1.819-.444 2.459-1.623h-1.475c-.2.31-.392.5-.576.465-.17-.034-.113-.355.021-.694h2.147c.083-.174.16-.361.23-.562.374-1.059.18-1.914-.869-1.97-.037-.003-.075-.003-.113-.003zm-3.36.175c-.494.018-.802.31-.802.31l.154-.273h-1.344l-2.314 4.02h1.479l1.388-2.42c.098-.172.23-.368.428-.326.177.037.23.2.172.308l-1.399 2.438h1.465l1.678-2.93c.232-.425-.147-.993-.533-1.088a1.359 1.359 0 0 0-.371-.039Zm-4.904 1.096a.235.235 0 0 1 .051.002c.253.044.147.341-.07.761-.36.695-.606 1.043-.908.983-.22-.044-.138-.357.08-.777.283-.55.587-.959.847-.97zm7.766 0c.014 0 .028 0 .041.002.226.042.15.304-.03.681h-.679c.23-.406.463-.682.668-.683z\"},\"child\":[]}]})(props);\n};\nexport function SiAvajs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.4554,5.7277a1.5818,1.5818,0,0,1,.619.6637q.2724.6249.6042,1.36c.22.4911.4434.9881.6637,1.4911s.4345.994.6369,1.47.3869.9137.5476,1.31.2887.7322.3839,1.009a2.2443,2.2443,0,0,1,.1429.5476,1.6453,1.6453,0,0,1-.06.4345.9512.9512,0,0,1-.2142.39,1.0777,1.0777,0,0,1-.4346.28,2.1368,2.1368,0,0,1-.7232.1042,1.9678,1.9678,0,0,1-.7619-.125,1.51,1.51,0,0,1-.4881-.3184,2.1617,2.1617,0,0,1-.3244-.4108q-.1295-.2142-.2678-.4107a1.3284,1.3284,0,0,0-.3125-.3184.8065.8065,0,0,0-.4762-.125H4.1577a1.1574,1.1574,0,0,0-.58.125,1.0946,1.0946,0,0,0-.3512.3184,4.1127,4.1127,0,0,0-.253.4107,2.0146,2.0146,0,0,1-.3006.4108,1.3631,1.3631,0,0,1-.4762.3184,2.0527,2.0527,0,0,1-.7887.125,1.5,1.5,0,0,1-1.0684-.3244A1.0307,1.0307,0,0,1,0,13.6949a2.266,2.266,0,0,1,.1369-.5922c.0923-.2828.2143-.6191.372-1.009.1637-.3928.3423-.8244.5417-1.3035.1994-.4762.4107-.97.6369-1.4762.2262-.5089.4524-1.0149.6756-1.5238q.3393-.7633.6518-1.4643A1.3715,1.3715,0,0,1,3.619,5.689a1.9287,1.9287,0,0,1,.9435-.2351,1.673,1.673,0,0,1,.8929.2738Zm10.5267.0446a1.0162,1.0162,0,0,1,.3393.7887,2.5458,2.5458,0,0,1-.1369.7173c-.0922.2946-.2083.628-.3512,1.003-.1428.372-.3095.7767-.494,1.2113-.1875.4345-.375.875-.5655,1.3273-.2589.6161-.4851,1.17-.67,1.6608a9.3222,9.3222,0,0,1-.5715,1.25,2.8332,2.8332,0,0,1-.6369.7946,1.3026,1.3026,0,0,1-.8512.28,1.5132,1.5132,0,0,1-.866-.2292,2.13,2.13,0,0,1-.625-.6905,7.1624,7.1624,0,0,1-.5476-1.1637c-.1786-.4672-.387-1.0238-.631-1.6666q-.2722-.7278-.5595-1.4256c-.1905-.4643-.3631-.8929-.5209-1.2828-.1547-.39-.2827-.741-.3839-1.0476a2.5581,2.5581,0,0,1-.1488-.7232.9457.9457,0,0,1,.4048-.86A1.82,1.82,0,0,1,9.17,5.4569a2.1129,2.1129,0,0,1,.8512.1369,1.7871,1.7871,0,0,1,.5268.3571,1.8718,1.8718,0,0,1,.3125.4554,5.887,5.887,0,0,1,.2917.6577c.0922.2381.1815.4792.2738.7232s.1756.4673.253.67a3.1521,3.1521,0,0,0,.2291.4941c.0744.125.14.1875.2024.1875q.1028,0,.2143-.1875a3.6705,3.6705,0,0,0,.2292-.4881c.0774-.1994.1577-.42.241-.6577s.17-.4762.259-.7084a6.912,6.912,0,0,1,.2857-.6428,1.7257,1.7257,0,0,1,.3065-.4494,2.2052,2.2052,0,0,1,.28-.2411A1.4583,1.4583,0,0,1,14.2262,5.6a1.7331,1.7331,0,0,1,.372-.0982,3.4777,3.4777,0,0,1,.5089-.0327,1.2675,1.2675,0,0,1,.875.3035Zm4.42-.0446a1.5811,1.5811,0,0,1,.619.6637q.2724.6249.6042,1.36c.22.4911.4435.9881.6637,1.4911s.4345.994.6369,1.47.3869.9137.5476,1.31.2887.7322.3839,1.009A2.2443,2.2443,0,0,1,24,13.5789a1.6452,1.6452,0,0,1-.0595.4345.9515.9515,0,0,1-.2143.39,1.078,1.078,0,0,1-.4345.28,2.1372,2.1372,0,0,1-.7232.1042,1.9687,1.9687,0,0,1-.762-.125,1.5081,1.5081,0,0,1-.488-.3184,2.1623,2.1623,0,0,1-.3245-.4108q-.1295-.2142-.2678-.4107a1.3266,1.3266,0,0,0-.3125-.3184.8065.8065,0,0,0-.4762-.125h-.8333a1.1576,1.1576,0,0,0-.58.125,1.0956,1.0956,0,0,0-.3512.3184,4.1313,4.1313,0,0,0-.253.4107,2.0071,2.0071,0,0,1-.3006.4108,1.3636,1.3636,0,0,1-.4761.3184,2.0534,2.0534,0,0,1-.7887.125,1.5,1.5,0,0,1-1.0685-.3244,1.0307,1.0307,0,0,1-.3393-.7679,2.27,2.27,0,0,1,.1369-.5922c.0923-.2828.2143-.6191.3721-1.009.1547-.39.3333-.8244.5327-1.3s.4107-.97.6369-1.4762c.2262-.509.4524-1.0149.6756-1.5238q.3393-.7635.6518-1.4643a1.371,1.371,0,0,1,.6041-.6369A1.9288,1.9288,0,0,1,19.5,5.4568a1.651,1.651,0,0,1,.9018.2709ZM4.5327,18.5461a.1926.1926,0,0,0,.1727-.1041c0-.003.2827-.5238.5625-1.14.14-.3095.2827-.64.39-.9464.0536-.1548.0983-.3006.131-.4346a1.65,1.65,0,0,0,.0536-.375,1.5623,1.5623,0,0,0-.4375-1.1131,1.2219,1.2219,0,0,0-1.75,0,1.5644,1.5644,0,0,0-.4375,1.1131,1.6044,1.6044,0,0,0,.0535.375,6.149,6.149,0,0,0,.2649.7887c.3363.8363.8185,1.7292.8185,1.7351A.2151.2151,0,0,0,4.5327,18.5461Zm14.9465,0a.1926.1926,0,0,0,.1726-.1041c0-.003.2827-.5238.5625-1.14.14-.3095.2827-.64.39-.9464.0535-.1548.0982-.3006.1309-.4346a1.644,1.644,0,0,0,.0536-.375,1.5623,1.5623,0,0,0-.4375-1.1131,1.2219,1.2219,0,0,0-1.75,0,1.5648,1.5648,0,0,0-.4375,1.1131,1.6,1.6,0,0,0,.0536.375,6.1319,6.1319,0,0,0,.2648.7887c.3363.8363.8185,1.7292.8185,1.7351a.2153.2153,0,0,0,.1786.1012Z\"},\"child\":[]}]})(props);\n};\nexport function SiAvast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.2941 2.991a3.0286 3.0286 0 0 1 4.4499 1.2039l7.0018 14.8042a11.937 11.937 0 0 0 2.2539-6.9131C24.0464 5.4569 18.7112.047 12.0834.0004 5.4556-.0463.047 5.2889.0004 11.9167a11.9356 11.9356 0 0 0 2.2213 7.0344l.2813-.0613 4.5692-1.008c.1287-.0286.1967.1454.084.2127L3.3736 20.337a11.9563 11.9563 0 0 0 8.5431 3.6625c3.76.0267 7.1258-1.68 9.3444-4.3705L9.8095 7.5735a3.0272 3.0272 0 0 1 .4846-4.5826zm2.1493 13.6089-7.3731.64a1.302 1.302 0 1 1 .1866-2.5666l7.2031 1.6972c.1287.0314.114.2174-.0166.2294zM9.03 10.116l8.9404 7.2324c.102.0827.01.2447-.1133.198L7.1035 13.4713a1.9593 1.9593 0 1 1 1.9266-3.3552z\"},\"child\":[]}]})(props);\n};\nexport function SiAvianca (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.813 0s-2.326 2.052-2.51 6.367c-.205 4.716 2.324 9.47 10.654 10.076.026.005.055.005.08.008C7.806 11.534 4.955 5.241 3.812 0zm8.224 16.451a30.654 30.654 0 0 0 2.2 2.303H5.282c.12.278.53.472 1.463.527 5.59.332 6.38 4.719 14.381 4.719.702 0 1.14-.042 1.582-.125-3.16-.972-6-2.8-8.47-5.121h2.21c.917 0 1.325.076 1.58.191-.392-1.218-1.631-2.168-5.992-2.494z\"},\"child\":[]}]})(props);\n};\nexport function SiAvira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 23.414a.586.586 0 0 1-.586.587H.585A.586.586 0 0 1 0 23.414V.586c0-.324.262-.587.585-.587h22.829c.325 0 .586.263.586.587v22.828Zm-4.971-9.675-.04-.044-1.323 1.256a.925.925 0 0 1-1.342 1.272 1.234 1.234 0 0 1-.118-.122l-3.56-3.753 4.857-4.609c-3.034-2.858-7.795-2.984-10.765-.111-2.969 2.874-3.337 7.527-.539 10.838l5.106-4.845 3.748 3.952a2.777 2.777 0 0 0 1.995.74 2.681 2.681 0 0 0 1.772-.742c.559-.526.894-1.272.887-2.022a2.702 2.702 0 0 0-.678-1.81Zm-4.573-5.55-7.65 7.259c-2.576-4.553 2.815-10.009 7.65-7.259Z\"},\"child\":[]}]})(props);\n};\nexport function SiAwesomelists (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.438l-6.154-5.645-.865.944 5.128 4.7H1.895l5.128-4.705-.865-.943-6.154 5.649H0v3.72c0 1.683 1.62 3.053 3.61 3.053h3.795c1.99 0 3.61-1.37 3.61-3.051v-2.446h1.97v2.446c0 1.68 1.62 3.051 3.61 3.051h3.794c1.99 0 3.61-1.37 3.61-3.051v-3.721z\"},\"child\":[]}]})(props);\n};\nexport function SiAwesomewm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24V8.25h16.5V7.5H0V0h24v24h-7.5v-8.25h-9v.75h8.25V24z\"},\"child\":[]}]})(props);\n};\nexport function SiAwsamplify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.223 17.905h6.76l1.731 3.047H0l4.815-8.344 2.018-3.494 1.733 3.002zm2.52-10.371L9.408 4.65l9.415 16.301h-3.334zm2.59-4.486h3.33L24 20.952h-3.334z\"},\"child\":[]}]})(props);\n};\nexport function SiAwselasticloadbalancing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.2 18.24C3.76 18.24.96 15.44.96 12s2.8-6.24 6.24-6.24 6.24 2.8 6.24 6.24-2.8 6.24-6.24 6.24m14.4 2.88c0 1.059-.861 1.92-1.92 1.92a1.92 1.92 0 0 1-1.92-1.92c0-1.059.861-1.92 1.92-1.92s1.92.861 1.92 1.92M19.68.96c1.059 0 1.92.861 1.92 1.92s-.861 1.92-1.92 1.92a1.92 1.92 0 0 1-1.92-1.92c0-1.059.861-1.92 1.92-1.92m1.44 9.12c1.059 0 1.92.861 1.92 1.92s-.861 1.92-1.92 1.92A1.92 1.92 0 0 1 19.2 12c0-1.059.861-1.92 1.92-1.92m-6.744 2.4h3.907a2.88 2.88 0 0 0 2.837 2.4A2.883 2.883 0 0 0 24 12a2.883 2.883 0 0 0-2.88-2.88 2.88 2.88 0 0 0-2.837 2.4h-3.907a7.1 7.1 0 0 0-.661-2.566l4.26-3.759a2.86 2.86 0 0 0 1.705.565 2.883 2.883 0 0 0 2.88-2.88A2.883 2.883 0 0 0 19.68 0a2.883 2.883 0 0 0-2.88 2.88c0 .603.187 1.162.504 1.625L13.24 8.092A7.2 7.2 0 0 0 7.2 4.8C3.23 4.8 0 8.03 0 12s3.23 7.2 7.2 7.2a7.2 7.2 0 0 0 6.039-3.292l4.065 3.587a2.86 2.86 0 0 0-.504 1.625A2.883 2.883 0 0 0 19.68 24a2.883 2.883 0 0 0 2.88-2.88 2.883 2.883 0 0 0-2.88-2.88 2.86 2.86 0 0 0-1.706.565l-4.26-3.759c.371-.789.601-1.654.662-2.566\"},\"child\":[]}]})(props);\n};\nexport function SiAwsfargate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.647 19.54v-2.28l1.412-.565v2.28Zm-2.353-2.845 1.412.565v2.28l-1.412-.564Zm-2.823 6.14v-2.281l1.411-.565v2.28Zm-2.353-2.846 1.411.565v2.28l-1.411-.564Zm-2.824-.449v-2.28l1.412-.565v2.28Zm-2.353-2.845 1.412.565v2.28l-1.412-.564Zm1.883-1.13L7.91 16l-1.086.434L5.737 16ZM12 18.86l1.086.434-1.086.434-1.086-.434Zm5.176-3.294 1.087.434-1.087.434L16.09 16Zm2.528-.003-2.353-.941a.476.476 0 0 0-.35 0l-2.352.94a.471.471 0 0 0-.296.438v2.787l-2.178-.871a.476.476 0 0 0-.35 0l-2.178.871V16a.471.471 0 0 0-.296-.437l-2.353-.941a.476.476 0 0 0-.35 0l-2.352.94A.471.471 0 0 0 4 16v3.294a.47.47 0 0 0 .296.437l2.353.941a.476.476 0 0 0 .35 0l2.177-.871v2.787c0 .193.118.365.296.437l2.353.942a.476.476 0 0 0 .35 0l2.353-.942a.471.471 0 0 0 .296-.437v-2.787l2.178.871a.476.476 0 0 0 .35 0l2.352-.94a.471.471 0 0 0 .296-.438V16a.471.471 0 0 0-.296-.437Zm4.06-5.71c0 2.75-6.06 4.235-11.764 4.235-5.703 0-11.765-1.484-11.765-4.235 0-1.313 1.457-2.47 4.101-3.256l.269.902C2.49 8.128 1.176 9.03 1.176 9.853c0 1.558 4.445 3.294 10.824 3.294s10.824-1.736 10.824-3.294c0-.823-1.314-1.725-3.429-2.354l.269-.902c2.644.787 4.1 1.943 4.1 3.256ZM12 .975l4.807 1.849L12 4.672 7.193 2.824Zm4.979 9.304c-.888.397-2.378.86-4.508.921V5.5l5.176-1.99v5.736c0 .448-.262.853-.668 1.033ZM6.353 9.246V3.51l5.176 1.99v5.7c-2.13-.062-3.62-.524-4.51-.922a1.126 1.126 0 0 1-.666-1.032Zm.284 1.891c1.036.464 2.807 1.017 5.363 1.017 2.556 0 4.327-.553 5.361-1.016a2.068 2.068 0 0 0 1.227-1.892V2.824c0-.195-.12-.37-.301-.44L12.169.031a.475.475 0 0 0-.338 0L5.713 2.384a.471.471 0 0 0-.301.44v6.422c0 .82.481 1.562 1.225 1.891Z\"},\"child\":[]}]})(props);\n};\nexport function SiAwslambda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.9855 0c-.2941.0031-.5335.2466-.534.5482L4.446 5.456c0 .1451.06.2835.159.3891a.5322.5322 0 0 0 .3806.1562h3.4282l8.197 17.6805a.5365.5365 0 0 0 .4885.3181h5.811c.2969 0 .5426-.2448.5426-.5482V18.544c0-.3035-.2392-.5482-.5425-.5482h-2.0138L12.7394.3153C12.647.124 12.4564 0 12.2452 0h-7.254Zm.5397 1.0907h6.3678l8.16 17.6804a.5365.5365 0 0 0 .4885.3181h1.8178v3.8173H17.437L9.2402 5.226a.536.536 0 0 0-.4885-.318H5.5223Zm2.0137 8.2366c-.2098.0011-.3937.1193-.4857.3096L.6002 23.2133a.5506.5506 0 0 0 .0313.5282.5334.5334 0 0 0 .4544.25h6.169a.5468.5468 0 0 0 .497-.3096l3.38-7.166a.5405.5405 0 0 0-.0029-.4686L8.036 9.637a.5468.5468 0 0 0-.4942-.3096Zm.0057 1.8036 2.488 5.1522-3.1214 6.6206H1.9465Z\"},\"child\":[]}]})(props);\n};\nexport function SiAwsorganizations (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 18.714v4.8c0 .288-.192.48-.48.48h-4.8c-.288 0-.48-.192-.48-.48v-4.8c0-.288.192-.48.48-.48h1.92v-1.92h-8.16v1.92h1.92c.288 0 .48.192.48.48v4.8c0 .288-.192.48-.48.48H9.6c-.288 0-.48-.192-.48-.48v-4.8c0-.288.192-.48.48-.48h1.92v-1.92H3.36v1.92h1.92c.288 0 .48.192.48.48v4.8c0 .288-.192.48-.48.48H.48c-.288 0-.48-.192-.48-.48v-4.8c0-.288.192-.48.48-.48H2.4v-2.4c0-.288.192-.48.48-.48h8.64v-1.44h.96v1.44h8.64c.288 0 .48.192.48.48v2.4h1.92c.288 0 .48.192.48.48zm-13.92 4.32h3.84v-3.84h-3.84zm-9.12 0H4.8v-3.84H.96Zm18.24 0h3.84v-3.84H19.2ZM6.24 9.642V3.546c0-.192.096-.336.24-.432L11.76.042c.144-.048.336-.048.48 0l5.28 3.072c.144.096.24.24.24.432v6.096c0 .144-.096.288-.24.384l-5.28 3.072q-.096.048-.24.048t-.24-.048l-5.28-3.072c-.144-.096-.24-.24-.24-.384Zm10.56-.288V4.362l-4.32 2.496v4.992zm-9.6 0 4.32 2.496V6.858L7.2 4.362Zm.48-5.808L12 5.994l4.32-2.448L12 1.05Z\"},\"child\":[]}]})(props);\n};\nexport function SiAwssecretsmanager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.469 13.44a.532.532 0 1 0 1.064-.001.532.532 0 0 0-1.064.001m-.857 0c0-.766.623-1.389 1.388-1.389s1.39.623 1.39 1.389c0 .615-.406 1.132-.96 1.314v1.103h-.858v-1.103a1.385 1.385 0 0 1-.96-1.314m5.246-2.297H8.143v5.571h7.715V15.43h-1.286v-.858h1.286v-1.285h-1.286v-.857h1.286zm-6.429-.857h5.142V8.143C14.573 7.022 13.348 6 12.003 6h-.001c-.656 0-1.317.246-1.817.675-.48.412-.755.948-.755 1.468zm6-2.143v2.143h.857c.237 0 .429.192.429.428v6.429a.43.43 0 0 1-.429.428H7.715a.43.43 0 0 1-.429-.428v-6.429c0-.236.192-.428.429-.428h.857V8.143c0-.77.384-1.543 1.054-2.118A3.7 3.7 0 0 1 12 5.143h.001c1.826 0 3.427 1.403 3.427 3zM3.089 18.45l.695-.502a10.04 10.04 0 0 1-1.9-5.519H3v-.857H1.886a10.04 10.04 0 0 1 1.898-5.486l-.695-.503a10.9 10.9 0 0 0-2.06 5.99H0v.856h1.027c.08 2.18.784 4.254 2.062 6.021m14.842 1.783a10.04 10.04 0 0 1-5.502 1.899V21h-.857v1.13a10.04 10.04 0 0 1-5.503-1.898l-.502.694a10.9 10.9 0 0 0 6.005 2.062V24h.857v-1.012a10.9 10.9 0 0 0 6.004-2.062zM6.069 3.8A10.04 10.04 0 0 1 11.572 1.9v1.1h.857V1.9c1.992.082 3.887.73 5.502 1.899l.503-.695a10.9 10.9 0 0 0-6.005-2.06V0h-.857v1.044a10.9 10.9 0 0 0-6.005 2.061zm16.903 7.771a10.9 10.9 0 0 0-2.061-5.989l-.695.503a10.04 10.04 0 0 1 1.899 5.486H21v.858h1.115a10.04 10.04 0 0 1-1.9 5.518l.695.503a10.9 10.9 0 0 0 2.062-6.021h1.028v-.858zM19.024 5.6l3.36-3.36-.606-.606-3.36 3.36zM4.978 18.433l-3.36 3.36.606.606 3.36-3.36zM7.144 6.537.784.177.176.783l6.36 6.36zm10.94 10.94 5.74 5.74-.607.606-5.74-5.74z\"},\"child\":[]}]})(props);\n};\nexport function SiAwwwards (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.72 5.6-2.24 8.68-2.12-8.68H7.47l-2.12 8.68L3.11 5.6H0l4.01 12.65h2.74l2.17-8.18 2.16 8.18h2.74L17.83 5.6zm5.1 10.7c0 1.2.9 2.1 2.09 2.1 1.2 0 2.09-.9 2.09-2.1s-.9-2.12-2.1-2.12c-1.19 0-2.08.9-2.08 2.11\"},\"child\":[]}]})(props);\n};\nexport function SiAxios (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.0683 2.89968V22.2973l-2.11399 1.70265V7.8638H4.975l6.0933-4.96412zM14.93426 0v15.76724H19.025l-6.20044 5.08865V1.4689L14.93426 0z\"},\"child\":[]}]})(props);\n};\nexport function SiBabel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.76 0c-1.603.147-3.719.713-6.317 1.719a22.366 22.366 0 01-2.44 1.539l.01.158c.064 0 .136-.043.24-.096.106-.01.169.032.169.137l.168-.094.084-.011.01.074c.01.073-.566.523-1.707 1.33l.093.146-.084.012-.177-.064c0 .052-.073.085-.24.095l.01.084.189.21a.673.673 0 01-.252-.053c-.367.031-.734.303-1.09.806l.094.147c.314-.283.492-.43.544-.43l.022.23c-.052 0-.136.042-.24.094l.199.295A5.86 5.86 0 016.29 5.291c.23.063.346.125.346.209l.168-.01c1.225-.911 2.44-1.562 3.644-1.97l.012.158c-.22.335-.377.501-.461.511.01.116.052.21.115.305.021.21-.524 1.583-1.635 4.139-2.535 5.93-4.651 10.307-6.359 13.156 0 .052.041.136.094.23.419-.104.691-.197.806-.302l.096-.012.01.158.158-.011.166-.094c0 .052.063.073.168.062l.012.159c.01.157-.075.397-.274.722-.178.2-.355.607-.554 1.225l.01.074.158-.01c.68-.764 1.204-1.52 1.56-2.254 2.001-.586 3.52-1.162 4.578-1.728 1.058-.094 1.876-.365 2.42-.826l-.011-.084-.399.115-.094.01-.01-.084c.776-.116 1.32-.293 1.614-.524 1.519-1.173 2.66-2 3.435-2.492 2.4-1.76 3.531-3.457 3.395-5.07-.01-.168-.545-.828-1.582-1.98-.021-.22.345-.535 1.078-.954l2.086-1.834c.46-.597.744-1.56.838-2.89l-.031-.315c-.084-.932-.756-1.687-2.034-2.264C19.06.303 17.708.031 15.76 0zm2.525 1.037c1.55.063 2.347.335 2.389.817l-.063.158-2.326-.975zm-1.482 1.317c1.063-.016 1.617.267 1.672.863l.156-.012-.031-.398.168-.01c.408.22.627.492.648.816.021.22-.094.494-.355.819-.105.01-.168-.064-.178-.221l-.168.012-.041.47c-.702 1.048-1.205 1.582-1.52 1.614-.283.387-.462.587-.535.597-.22.262-.816.712-1.8 1.34-.325.032-1.531.493-3.616 1.404a.595.595 0 00-.334-.052l-.012-.147c-.02-.304.107-.681.41-1.142.158-.86.335-1.352.534-1.467l1.738-3.906c-.02-.241.347-.43 1.111-.555l.252-.022.02.221a50.387 50.387 0 011.394-.2c.173-.014.335-.022.487-.024zm3.619.39h.027c.139.012.288.263.446.744l.01.147c-.085.01-.24-.242-.471-.744l-.012-.147zm-9.836 2.483h.072l.022.23c-.074.01-.177.116-.303.336l-.012-.156c.147-.178.22-.316.22-.41zM5.6 5.354l.01.072c-.053 0-.136.043-.24.095l-.085.01-.01-.146.325-.031zM9.885 6.86l.031.315-.084.01-.031-.313.084-.012zm-.2.567c-.02.262-.084.397-.22.408l-.084.01c.094-.178.147-.303.137-.397l.168-.021zm-.345.816l.01.074-.147.25-.158.012-.01-.074c.157-.01.231-.093.22-.25l.085-.012zm-.358.735l-.04.386-.085.01-.03-.387.155-.01zm8.497.28l.345.212c.01.104-.042.167-.146.177-.147-.094-.262-.136-.346-.136l-.021-.23.168-.022zm-6.653.891l.012.147-.326.033-.01-.148.324-.032zm5.363.545c.23.105.347.21.358.293l.01.075c-.22.02-.42-.095-.608-.346l.24-.022zm2.6.252c.178.074.261.148.272.221l.052.617c-.073.168-.146.252-.23.252l-.094-1.09zm-4.195.065c.84-.014 1.482.184 1.922.605l.03.315c-.376 1.09-.795 1.719-1.245 1.918l-2.096 1.666c-1.56 1.026-2.4 1.538-2.525 1.548-2.483 1.373-4.032 2.075-4.63 2.127l-.095.01c.084-.293 1.185-2.555 3.322-6.808.943-.084 2.43-.525 4.452-1.32l.492-.042c.128-.01.253-.017.373-.02zm-3.055.49l.01.074-.334.031-.012-.074.336-.031zm-5.226 5.07c-.105.535-.221.808-.336.819l-.01-.075c-.021-.272.094-.513.346-.744zm7.101.336l.01.147c.01.063-.23.261-.701.607-1.394.681-2.21 1.152-2.452 1.393-1.508.523-2.252.849-2.242.974-1.34.535-2.22.923-2.638 1.164-.095.01-.241-.031-.43-.115-.021-.272.093-.494.365-.672.23-.02.463.011.672.106.251-.126.68-.274 1.299-.42l-.012-.156-.492.04c.063-.083.535-.303 1.436-.67l.251-.02.01.073c-.419.032-.66.167-.713.387.01.094.064.147.168.137.304-.21.461-.324.461-.356.608-.115 2.274-.995 5.008-2.619zm-7.584.723l.01.072c.01.105-.042.17-.147.18l-.01-.074c-.01-.095.042-.157.147-.178zm3.77.937c.089-.002.139.049.148.131-.199.021-.566.178-1.121.492l-.084.01-.01-.156a1.586 1.586 0 001.026-.47c.014-.003.028-.006.04-.007zm-3.664 1.243l.01.082c-.064 0-.138.043-.243.095l-.156.01c-.01-.073.032-.136.137-.168l.252-.02zm-1.918.953l.177.072c-.063.471-.198.713-.44.734a1.076 1.076 0 00-.513-.105l-.021-.23c-.01-.095.043-.147.158-.178.105-.01.167.061.178.218.282-.345.44-.511.46-.511Z\"},\"child\":[]}]})(props);\n};\nexport function SiBabelio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.283 0a13.994 13.994 0 0 1-6.566 7.588v4.691a20.538 20.538 0 0 0 6.566-3.676zm3.283 7.7a22.121 22.121 0 0 1-13.132 7.03v4.213a35.545 35.545 0 0 0 3.836-.564 35.118 35.118 0 0 0 9.296-3.322zm3.282 7.331a36.747 36.747 0 0 1-19.696 5.686V24h19.696Z\"},\"child\":[]}]})(props);\n};\nexport function SiBabylondotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0 1.607 6.002v12L12 24l10.393-6V6L19.14 4.123 16.01 5.93l3.252 1.879v8.384L12 20.387l-7.264-4.194V7.807l10.393-6zm0 8.244-3.254 1.879v3.754h.002v.004L12 15.758l3.252-1.877v-3.76z\"},\"child\":[]}]})(props);\n};\nexport function SiBackblaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.3108.0003c.6527 1.3502 1.5666 4.0812-1.3887 7.1738-1.8096 1.8796-3.078 3.8487-2.3496 6.0644.3642 1.1037 1.1864 2.5079 2.8867 2.7852.6107.1008 1.3425-.0006 1.7403-.1406 2.4538-.8544 2.098-3.4138 1.5546-5.0469-.07-.2129-.1915-.7333-.2363-.9238-.3726-1.6023.776-2.6562 1.129-3.8047.028-.0925.0534-.1819.0702-.2715.042-.21.067-.423.0781-.6387 0-1.8264-.9882-2.6303-1.7754-3.5996C10.1794.5643 9.3107.0003 9.3107.0003Zm6.2754 6.0175s-.709.3366-1.2188.8829c-.4454.4818-.8635.8789-1.2949 1.8593-.028.14-.0518.2863-.0742.4375-.2325 1.6416 1.1473 3.1446.7187 5.1895-.112.535-.3554.7123-.7812 1.6367-.5098 1.1065-.383 2.588.3594 3.5293.6723.8488 1.879 1.2321 3.0527.9492 2.1065-.5042 3.0646-2.2822 2.8965-4.2851-.1317-1.58-.8154-2.7536-2.754-4.961-.9607-1.0925-1.6072-2.409-1.5624-3.4062.1373-1.2074.6582-1.832.6582-1.832zM4.8928 15.1936c-.0222.0145-.0439.0614-.0586.1602a.0469.0469 0 0 1-.0059.0195v.01c-.1148.5406-.1649 1.823.1153 2.9687.353 1.4427 1.4175 3.902 4.412 5.129 2.5184 1.0336 5.718.5411 7.8497-1.627.5294-.5435.408-.4897-.4883-.2012v-.002c-1.1121.3558-3.5182.5463-4.7676-1-1.5239-1.8852-.4302-3.3633-1.3574-3.1504-3.6164.8348-5.2667-1.4657-5.5469-2.1016-.0023-.002-.0857-.2487-.1523-.205z\"},\"child\":[]}]})(props);\n};\nexport function SiBackbone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.978.805A5.3 5.3 0 0 1 9.972 2.29a5.3 5.3 0 0 1 2.006 1.487 5.3 5.3 0 0 1 2.006-1.488A5.3 5.3 0 0 1 11.978.804m10.6 17.27L19.45 19.22v-6.875c0-.456.37-.826.825-.826h1.479c.454 0 .824.37.824.826zm-4.55-5.73v7.399l-3.865 1.416v-14c0-.22.087-.43.243-.585a.82.82 0 0 1 .58-.24h.008l2.213.019a.827.827 0 0 1 .818.824v5.086h.004zm3.727-2.246h-1.48c-.291 0-.57.055-.826.157V7.178c0-1.23-1-2.237-2.23-2.247l-2.213-.017h-.019a2.23 2.23 0 0 0-1.582.651 2.23 2.23 0 0 0-.664 1.595v16.037L24 19.068v-6.725a2.25 2.25 0 0 0-2.247-2.246M9.839 21.159l-3.865-1.416v-7.398l-.001-.08h.003V7.176c0-.45.367-.82.818-.824l2.214-.018h.007a.82.82 0 0 1 .58.24.82.82 0 0 1 .244.585zM4.551 19.22l-3.127-1.146v-5.73c0-.456.37-.826.824-.826h1.479c.454 0 .824.37.824.826zM9.015 4.913h-.018l-2.214.018a2.254 2.254 0 0 0-2.23 2.247v3.076a2.2 2.2 0 0 0-.826-.157h-1.48A2.25 2.25 0 0 0 0 12.345v6.724l11.262 4.127V7.157a2.23 2.23 0 0 0-.665-1.594 2.23 2.23 0 0 0-1.582-.652\"},\"child\":[]}]})(props);\n};\nexport function SiBackbonedotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.34 0v10.45l3.2-1.83V5.27l2.93 1.67 3.01-1.72L2.34 0zm19.31 0L12.5 5.22l3.02 1.73 2.94-1.68v3.35l3.2 1.83V0h-.01zm-9.9 5.64-9.4 5.38V24l9.4-5.36v-3.76l-6.21 3.56v-5.5l6.21-3.54V5.64zm.5 0V9.4l6.22 3.54v5.5l-6.22-3.56v3.76L21.66 24V11.02l-9.41-5.38zM7.7 12.3l-1.65.94v1.86l2.17 1.24 3.28-1.87-3.8-2.17zm8.61 0-3.8 2.16 3.28 1.88 2.17-1.24v-1.86l-1.65-.94z\"},\"child\":[]}]})(props);\n};\nexport function SiBackendless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.215 6.16C2.354 6.147.584 6.953 0 8.19c3.68-.998 5.747-.332 8.244 2.638.99 1.184 1.895 2.45 2.992 3.51 1.098 1.08 2.303 2.161 3.637 2.826 2.97 1.475 6.802.415 8.05-1.994-.387.145-.752.27-1.118.416-1.693 1.181-3.92 1.204-5.748-.375-1.873-1.62-3.487-3.532-5.166-5.36C9.276 8.107 7.555 6.55 5.016 6.217a6.243 6.243 0 0 0-.801-.057Zm15.639 1.719c-.957-.013-2 .301-3.043.976-1.034.686-1.96 1.538-2.971 2.348-.603-.395-1.204-.81-1.807-1.205-.043.062-.11.145-.152.207.15.187.324.354.474.54.861.956 1.743 1.931 2.69 2.866.947-.852 1.723-1.598 2.562-2.305 2.411-2.035 4.628-1.725 6.393 1.038-.355-2.828-2.042-4.437-4.146-4.465ZM4.393 12.615c1.291 5.422 4.733 4.902 7.08 3.738.624.291 1.528.603 2.109.873.043-.062.107-.125.15-.187-1.033-.665-1.978-1.538-2.84-2.37-.215-.207-.41-.415-.603-.622-3.336 2.866-5.896-1.432-5.896-1.432z\"},\"child\":[]}]})(props);\n};\nexport function SiBackstage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.5188 9.3003a4.5194 4.5194 0 0 0 .7533-.5808 7.0485 7.0485 0 0 0 .1289-.1288 4.6555 4.6555 0 0 0 .4441-.5254 3.5672 3.5672 0 0 0 .354-.6032 2.721 2.721 0 0 0 .2436-.9185c.0835-1.086-.56-2.166-1.995-3.0369L13.6692 0 6.9335 6.454 2.548 10.6558l6.0826 3.6916a6.25 6.25 0 0 0 3.2351.919c1.3958 0 2.7333-.4928 3.7201-1.4388 1.0732-1.0283 1.4294-2.3591.7674-3.4653a2.7568 2.7568 0 0 0-.3809-.4968 4.9944 4.9944 0 0 0 1.0821.1204h.0084a4.7653 4.7653 0 0 0 1.7363-.3243 4.53 4.53 0 0 0 .7197-.3613Zm-5.6317 3.35c-1.0821 1.0367-2.8229 1.189-4.24.3304l-4.2085-2.5546 3.7779-3.6204 4.2796 2.5977c1.542.9348 1.4574 2.2247.391 3.2469zm.5001-4.6051-3.957-2.4023 3.6075-3.4585 3.8854 2.358c1.4529.8804 1.6416 2.0723.591 3.0805a3.3992 3.3992 0 0 1-4.1269.4223Zm1.6725 10.6418c-1.0961 1.0501-2.586 1.6293-4.194 1.6293a6.93 6.93 0 0 1-3.5902-1.0194L2.548 15.8238v1.3817l6.0826 3.6916a6.2506 6.2506 0 0 0 3.2351.9197c1.3958 0 2.7333-.4935 3.7201-1.439.7214-.691 1.1202-1.5195 1.1023-2.3237v-.1003a4.888 4.888 0 0 1-.6284.7354zm0-2.1844c-1.0961 1.0502-2.586 1.6287-4.194 1.6287a6.9345 6.9345 0 0 1-3.5902-1.0188L2.548 13.64v1.3824l6.0826 3.6915a6.2506 6.2506 0 0 0 3.2351.9197c1.3958 0 2.7333-.4934 3.7201-1.4389.7214-.6911 1.1202-1.5195 1.1023-2.3244v-.0997a4.888 4.888 0 0 1-.6284.7354zm0-2.1844c-1.0961 1.0508-2.586 1.6293-4.194 1.6293a6.9345 6.9345 0 0 1-3.5902-1.0188l-5.7275-3.472v1.3823l6.0826 3.6916a6.25 6.25 0 0 0 3.2351.9191c1.3958 0 2.7333-.4929 3.7201-1.4383.7214-.6917 1.1202-1.5195 1.1023-2.3244v-.102a4.8218 4.8218 0 0 1-.6284.7371zm4.688 1.4417a5.2733 5.2733 0 0 1-3.3718 1.4484v1.4988a4.5704 4.5704 0 0 0 2.898-1.253c.784-.7493 1.184-1.5743 1.1761-2.3882v-.1226a5.3164 5.3164 0 0 1-.7023.8205zm-4.688 5.1086c-1.0961 1.0508-2.586 1.6293-4.194 1.6293a6.93 6.93 0 0 1-3.5902-1.0193L2.548 18.007v1.3823l6.0826 3.691A6.2506 6.2506 0 0 0 11.8657 24c1.3958 0 2.7333-.4929 3.7201-1.4389.7214-.6911 1.1202-1.5195 1.1023-2.3238v-.1003a4.833 4.833 0 0 1-.6284.7354zM20.863 9.0987c-.038.0386-.0756.0773-.1148.1154a5.2856 5.2856 0 0 1-.596.4845 5.1165 5.1165 0 0 1-.6496.392 5.2946 5.2946 0 0 1-1.4697.4879 5.4716 5.4716 0 0 1-.7931.088 3.07 3.07 0 0 1 .07.2744 2.9836 2.9836 0 0 1 .0638.672v.5411h.0032a4.7277 4.7277 0 0 0 1.4198-.3108 4.5368 4.5368 0 0 0 1.478-.9421c.0449-.043.084-.0874.1267-.131a4.5972 4.5972 0 0 0 .4441-.5254 3.5712 3.5712 0 0 0 .354-.6016 2.7193 2.7193 0 0 0 .242-.9213c.0046-.0689.0111-.1384.0106-.2073v-.1131q-.0605.0863-.126.173a5.4178 5.4178 0 0 1-.4627.5243zm0 4.3643c-.0386.0392-.0733.079-.112.1176a5.276 5.276 0 0 1-3.3717 1.4484v1.4938a4.5704 4.5704 0 0 0 2.8979-1.253 4.1172 4.1172 0 0 0 .9219-1.2602 2.7198 2.7198 0 0 0 .242-.9208c.0047-.0694.0111-.1383.0106-.2078v-.1226c-.0414.06-.0818.1204-.1272.1798a5.359 5.359 0 0 1-.4615.5248zm0-2.1844c-.0386.0392-.0733.079-.112.1176a5.219 5.219 0 0 1-.5954.4845 5.1321 5.1321 0 0 1-.6513.392 5.3472 5.3472 0 0 1-2.125.5702v1.4955a4.5732 4.5732 0 0 0 2.8979-1.253c.0448-.0431.084-.0873.1266-.131a4.5972 4.5972 0 0 0 .4441-.5254 3.5712 3.5712 0 0 0 .3512-.6026 2.7198 2.7198 0 0 0 .242-.9208c.0047-.0694.0111-.139.0106-.2078v-.1232c-.0414.0604-.0818.121-.1272.1803a5.359 5.359 0 0 1-.4615.5248z\"},\"child\":[]}]})(props);\n};\nexport function SiBadoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.68 2.809c3.392 0 6.32 2.788 6.32 6.228 0 6.71-6.6 12.158-12 12.158S0 15.748 0 9.037c0-3.44 2.928-6.228 6.32-6.228 4.128 0 5.578 3.179 5.68 3.411a6.079 6.079 0 0 1 5.67-3.411zm1.078 6.488V9.11h-2.38v.186c0 2.352-1.97 4.276-4.378 4.276-2.417 0-4.369-1.924-4.369-4.276V9.11H5.233v.186c0 1.766.697 3.42 1.98 4.666a6.795 6.795 0 0 0 4.778 1.933 6.797 6.797 0 0 0 4.777-1.933 6.488 6.488 0 0 0 1.98-4.666Z\"},\"child\":[]}]})(props);\n};\nexport function SiBaidu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.154 0C7.71 0 6.54 1.658 6.54 3.707c0 2.051 1.171 3.71 2.615 3.71 1.446 0 2.614-1.659 2.614-3.71C11.768 1.658 10.6 0 9.154 0zm7.025.594C14.86.58 13.347 2.589 13.2 3.927c-.187 1.745.25 3.487 2.179 3.735 1.933.25 3.175-1.806 3.422-3.364.252-1.555-.995-3.364-2.362-3.674a1.218 1.218 0 0 0-.261-.03zM3.582 5.535a2.811 2.811 0 0 0-.156.008c-2.118.19-2.428 3.24-2.428 3.24-.287 1.41.686 4.425 3.297 3.864 2.617-.561 2.262-3.68 2.183-4.362-.125-1.018-1.292-2.773-2.896-2.75zm16.534 1.753c-2.308 0-2.617 2.119-2.617 3.616 0 1.43.121 3.425 2.988 3.362 2.867-.063 2.553-3.238 2.553-3.988 0-.745-.62-2.99-2.924-2.99zm-8.264 2.478c-1.424.014-2.708.925-3.323 1.947-1.118 1.868-2.863 3.05-3.112 3.363-.25.309-3.61 2.116-2.864 5.42.746 3.301 3.365 3.237 3.365 3.237s1.93.19 4.171-.31c2.24-.495 4.17.123 4.17.123s5.233 1.748 6.665-1.616c1.43-3.364-.808-5.109-.808-5.109s-2.99-2.306-4.736-4.798c-1.072-1.665-2.348-2.268-3.528-2.257zm-2.234 3.84l1.542.024v8.197H7.758c-1.47-.291-2.055-1.292-2.13-1.462-.072-.173-.488-.976-.268-2.343.635-2.049 2.447-2.196 2.447-2.196h1.81zm3.964 2.39v3.881c.096.413.612.488.612.488h1.614v-4.343h1.689v5.782h-3.915c-1.517-.39-1.59-1.465-1.59-1.465v-4.317zm-5.458 1.147c-.66.197-.978.708-1.05.928-.076.22-.247.78-.1 1.269.294 1.095 1.248 1.144 1.248 1.144h1.37v-3.34z\"},\"child\":[]}]})(props);\n};\nexport function SiBakalari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.385 0-.77.102-1.11.307L2.762 5.193a2.147 2.147 0 0 0-1.043 1.84v9.93a2.15 2.15 0 0 0 1.043 1.843l8.126 4.886c.683.41 1.537.41 2.22 0l8.128-4.886a2.15 2.15 0 0 0 1.043-1.842v-9.93c0-.754-.396-1.452-1.043-1.84L13.11.306A2.152 2.152 0 0 0 12 0Zm-.094 3.462c.224-.001.449.056.65.17l6.192 3.548c.402.23.65.658.65 1.12v1.85c0 .468-.253.898-.66 1.127l-1.296.722 1.295.724c.408.228.661.659.661 1.126v1.849c0 .462-.248.89-.65 1.12l-6.192 3.549a1.29 1.29 0 0 1-1.297-.008l-6.022-3.55a1.29 1.29 0 0 1-.635-1.111V8.3c0-.457.242-.88.635-1.112l6.022-3.547c.2-.118.423-.177.647-.179zm.018 2.782L7.182 9.037v5.924l4.742 2.793 4.894-2.803v-.344l-1.413-.788c-.34-.19-.55-.55-.55-.94V11.12c0-.39.21-.75.55-.94l1.413-.787v-.345z\"},\"child\":[]}]})(props);\n};\nexport function SiBamboo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.7142 13.6433h-4.9888a.651.651 0 00-.655.555 4.1139 4.1139 0 01-4.0619 3.5299l1.35 6.1728a10.3737 10.3737 0 009.0077-9.5447.651.651 0 00-.652-.713zm-8.6327-.158l7.1998-6.1718a.645.645 0 000-.984L13.0815.1597a.648.648 0 00-1.074.483v12.3426a.651.651 0 001.073.5zm-11.3547 1.505A10.3847 10.3847 0 0012.0115 24v-6.2698a4.0929 4.0929 0 01-4.0999-4.0869zm-.096-1.447v.1h6.2798a4.0929 4.0929 0 014.098-4.0879l-1.348-6.1698a10.3697 10.3697 0 00-9.0298 10.1577\"},\"child\":[]}]})(props);\n};\nexport function SiBambulab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.662 24V8.959l8.535 3.369V24zm-9.859-.003v-7.521l8.534-3.371-.001 10.892zM2.803 0h8.533l.001 11.672-8.534 3.369zm9.859 0h8.535v10.892l-8.535-3.371z\"},\"child\":[]}]})(props);\n};\nexport function SiBandcamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 18.75l7.437-13.5H24l-7.438 13.5H0z\"},\"child\":[]}]})(props);\n};\nexport function SiBandlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.32 6.076 3.567 6.164A8.835 8.835 0 0 1 24 16.255C24 20.76 20.455 24 15.425 24h-6.85C3.545 24 0 20.76 0 16.255a8.925 8.925 0 0 1 1.102-4.015l3.567-6.164h3.349L3.84 13.342a6.033 6.033 0 0 0-.829 2.869c0 2.869 1.964 4.909 5.651 4.909h6.654c3.709 0 5.662-2.04 5.662-4.909a6.043 6.043 0 0 0-.829-2.869l-4.167-7.266h3.338Zm-8.444 11.509c-1.581 0-2.531-.927-2.531-2.236 0-1.789 1.822-3.349 3.819-3.785L7.473 0h8.182l1.505 2.891h-5.727l3.414 8.345c.295.655.448 1.364.448 2.073 0 2.476-2.455 4.276-4.419 4.276Z\"},\"child\":[]}]})(props);\n};\nexport function SiBandrautomation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 16.444H0v2.088h24v-2.088Zm-8.812-1.59-1.418-1.766.623-.767-.831-1.036-.623.767-1.565-1.959 2.192.008V8.592H9.39v1.405l.667.835c-.072.036-.538.245-.691.349-.442.27-.775.688-.939 1.18a2.052 2.052 0 0 0 1.04 2.349c.823.417 1.931.333 2.758-.04.168-.081.333-.177.482-.289l.124-.093.458.566h1.899ZM6.179 9.989a2.11 2.11 0 0 0 1.204-1.984c0-1.541-1.116-2.537-2.991-2.537H0v9.39h4.549c2.111 0 3.123-1.216 3.123-2.629a2.256 2.256 0 0 0-1.489-2.24h-.004Zm15.035 1.401s2.132-.442 2.132-2.931c0-1.75-1.076-2.991-3.252-2.991h-4.445v9.39h2.092V11.39h1.004l2.778 3.468h2.473L21.21 11.39h.004Zm-11.073 1.911a.713.713 0 0 1-.044-.831c.209-.261.482-.466.795-.59l1.072 1.353c-.213.14-.434.26-.667.365a1.15 1.15 0 0 1-.975-.133.91.91 0 0 1-.177-.168l-.004.004Zm-5.837-.008H2.088v-2.61h2.256c.911 0 1.453.45 1.453 1.305 0 .803-.518 1.305-1.493 1.305ZM17.745 9.78V7.259h2.212c.92 0 1.494.385 1.494 1.26 0 .799-.538 1.261-1.494 1.261h-2.212ZM2.088 7.062h2.007c.763 0 1.216.401 1.216 1.116 0 .715-.453 1.168-1.32 1.168H2.088V7.062Z\"},\"child\":[]}]})(props);\n};\nexport function SiBandsintown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.399 12.8v4.8H19.2v1.6H4.799V0H0v24h24V12.8H6.399Zm4.801-8H6.399v6.4H11.2V4.8Zm6.4 0h-4.8v6.4h4.8V4.8ZM24 0h-4.8v11.2H24V0Z\"},\"child\":[]}]})(props);\n};\nexport function SiBankofamerica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.194 7.57c.487-.163 1.047-.307 1.534-.451-1.408-.596-3.176-1.227-4.764-1.625-.253.073-1.01.271-1.534.434.541.162 2.328.577 4.764 1.642zm-8.896 6.785c.577.343 1.19.812 1.786 1.209 3.952-3.068 7.85-5.432 12.127-6.767-.596-.307-1.119-.578-1.787-.902-2.562.65-6.947 2.4-12.126 6.46zm-.758-6.46c-2.112.974-4.331 2.31-5.54 3.085.433.199.866.361 1.461.65 2.671-1.805 4.764-2.905 5.594-3.266-.595-.217-1.154-.361-1.515-.47zm8.066.234c-.686-.379-3.068-1.263-4.71-1.642-.487.18-1.173.451-1.642.65.595.162 2.815.758 4.71 1.714.487-.235 1.173-.523 1.642-.722zm-3.374 1.552c-.56-.27-1.173-.523-1.643-.74-1.425.704-3.284 1.769-5.63 3.447.505.27 1.047.595 1.624.92 1.805-1.335 3.627-2.598 5.649-3.627zm1.732 8.825c3.79-3.249 9.113-6.407 12.036-7.544a48.018 48.018 0 00-1.949-1.155c-3.771 1.246-8.174 4.007-12.108 7.129.667.505 1.371 1.028 2.02 1.57zm2.851-.235h-.108l-.18-.27h-.109v.27h-.072v-.596h.27c.055 0 .109 0 .145.036.054.019.072.073.072.127 0 .108-.09.162-.198.162zm-.289-.343c.09 0 .199.018.199-.09 0-.072-.072-.09-.144-.09h-.163v.18zm-.523.036c0-.289.235-.523.541-.523.307 0 .542.234.542.523a.543.543 0 01-.542.542.532.532 0 01-.54-.542m.107 0c0 .235.199.433.451.433a.424.424 0 100-.848c-.27 0-.45.199-.45.415\"},\"child\":[]}]})(props);\n};\nexport function SiBarclays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.043 3.629a3.235 3.235 0 0 0-1.048-.54 3.076 3.076 0 0 0-.937-.144h-.046c-.413.006-1.184.105-1.701.71a1.138 1.138 0 0 0-.226 1.023.9.9 0 0 0 .555.63s.088.032.228.058c-.04.078-.136.214-.136.214-.179.265-.576.612-1.668.612h-.063c-.578-.038-1.056-.189-1.616-.915-.347-.45-.523-1.207-.549-2.452-.022-.624-.107-1.165-.256-1.6-.1-.29-.333-.596-.557-.742a2.55 2.55 0 0 0-.694-.336c-.373-.12-.848-.14-1.204-.146-.462-.01-.717.096-.878.292-.027.033-.032.05-.068.046-.084-.006-.272-.006-.328-.006-.264 0-.498.043-.721.09-.47.1-.761.295-1.019.503-.12.095-.347.365-.399.653a.76.76 0 0 0 .097.578c.14-.148.374-.264.816-.266.493-.002 1.169.224 1.406.608.336.547.27.99.199 1.517-.183 1.347-.68 2.048-1.783 2.203-.191.026-.38.04-.56.04-.776 0-1.34-.248-1.63-.716a.71.71 0 0 1-.088-.168s.087-.021.163-.056c.294-.14.514-.344.594-.661.09-.353.004-.728-.23-1.007-.415-.47-.991-.708-1.713-.708-.4 0-.755.076-.982.14-.908.256-1.633.947-2.214 2.112-.412.824-.7 1.912-.81 3.067-.11 1.13-.056 2.085.019 2.949.124 1.437.363 2.298.708 3.22a15.68 15.68 0 0 0 1.609 3.19c.09-.094.15-.161.308-.318.188-.19.724-.893.876-1.11.19-.27.51-.779.664-1.147l.15.119c.16.127.252.348.249.592-.003.215-.053.464-.184.922a8.703 8.703 0 0 1-.784 1.818c-.189.341-.27.508-.199.584.015.015.038.03.06.026.116 0 .34-.117.585-.304.222-.17.813-.672 1.527-1.675a15.449 15.449 0 0 0 1.452-2.521c.12.046.255.101.317.226a.92.92 0 0 1 .08.563c-.065.539-.379 1.353-.63 1.94-.425.998-1.208 2.115-1.788 2.877-.022.03-.163.197-.186.227.9.792 1.944 1.555 3.007 2.136.725.408 2.203 1.162 3.183 1.424.98-.262 2.458-1.016 3.184-1.424a17.063 17.063 0 0 0 3.003-2.134c-.05-.076-.13-.158-.183-.23-.582-.763-1.365-1.881-1.79-2.875-.25-.59-.563-1.405-.628-1.94-.028-.221-.002-.417.08-.565.033-.098.274-.218.317-.226.405.884.887 1.73 1.452 2.522.715 1.003 1.306 1.506 1.527 1.674.248.191.467.304.586.304a.07.07 0 0 0 .044-.012c.094-.069.017-.234-.183-.594a9.003 9.003 0 0 1-.786-1.822c-.13-.456-.18-.706-.182-.92-.004-.246.088-.466.248-.594l.15-.118c.155.373.5.919.665 1.147.15.216.685.919.876 1.11.156.158.22.222.308.32a15.672 15.672 0 0 0 1.609-3.19c.343-.923.583-1.784.707-3.222.075-.86.128-1.81.02-2.948-.101-1.116-.404-2.264-.81-3.068-.249-.49-.605-1.112-1.171-1.566z\"},\"child\":[]}]})(props);\n};\nexport function SiBaremetrics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.109 7.951l1.485 2.464a3.507 3.507 0 010 3.275l-4.505 7.717a3.333 3.333 0 01-2.94 1.793H7.83a3.335 3.335 0 01-2.94-1.793l-1.555-2.632 6.139-5.695 4.447 2.578a1.093 1.093 0 001.456-.198zm-13.39.628L1.99 16.15.406 13.725a3.495 3.495 0 010-3.27L5.158 2.59A3.338 3.338 0 018.1.8h8.008c1.228 0 2.357.687 2.942 1.79l1.616 2.722-6.017 5.592-4.432-2.574a1.098 1.098 0 00-1.499.248z\"},\"child\":[]}]})(props);\n};\nexport function SiBarmenia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.046 13.427v6.395h5.709a5.41 5.41 0 0 0 2.377-.422c1.021-.537 1.532-1.537 1.532-2.999a2.591 2.591 0 0 0-1.492-2.571 5.834 5.834 0 0 0-2.347-.403zm0-9.26v5.287h5.714a4.722 4.722 0 0 0 2.486-.592c.637-.398.955-1.101.955-2.109 0-1.117-.421-1.855-1.263-2.213a8.63 8.63 0 0 0-2.78-.368zm12.761-1.611a6.19 6.19 0 0 1 1.079 3.66 5.433 5.433 0 0 1-1.089 3.531 5.617 5.617 0 0 1-1.791 1.388 5.232 5.232 0 0 1 2.716 2.113 6.474 6.474 0 0 1 .915 3.481 7.069 7.069 0 0 1-1.05 3.854 6.467 6.467 0 0 1-4.316 3.093c-1.093.222-2.207.33-3.322.324H2.361V0H13.72c2.864.046 4.893.899 6.087 2.556\"},\"child\":[]}]})(props);\n};\nexport function SiBasecamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.6516 22.453c-4.0328 0-7.575-1.5542-10.244-4.4946a1.11 1.11 0 0 1-.219-1.1338c.7008-1.8884 2.5935-6.2808 5.0205-6.2948h.0125c1.219 0 2.1312.9655 2.8648 1.7412.2192.2324.555.5875.7818.7611.5656-.5587 1.6775-2.4158 2.5422-4.2779.259-.5567.9203-.7985 1.4765-.5402.557.2584.7988.919.5404 1.4762-2.6217 5.6503-4.019 5.6503-4.478 5.6503-1.022 0-1.7628-.7843-2.4791-1.5422-.3208-.339-.9878-1.045-1.2482-1.045h-.0004c-.5665.095-1.8085 2.0531-2.6966 4.2034 2.1925 2.1722 4.9232 3.2726 8.1266 3.2726 4.3955 0 7.683-1.1964 9.0996-3.2953-.4888-5.585-3.5642-13.1634-9.0996-13.1634-4.6855 0-8.2152 3.264-10.4915 9.7007-.205.579-.8416.8828-1.4187.6776-.5789-.2047-.882-.8398-.6776-1.4185 2.624-7.421 6.859-11.1833 12.5878-11.1833 7.4826 0 10.9304 9.5613 11.3458 15.588a1.1154 1.1154 0 0 1-.1456.6314c-1.7407 3.0221-5.7182 4.6864-11.2002 4.6864Z\"},\"child\":[]}]})(props);\n};\nexport function SiBaserow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.291.068A1.29 1.29 0 0 0 0 1.36v3.352a1.29 1.29 0 0 0 1.291 1.291h3.354a1.29 1.29 0 0 0 1.289-1.291V1.359A1.29 1.29 0 0 0 4.644.07Zm9.033 0a1.29 1.29 0 0 0-1.29 1.291v3.352a1.29 1.29 0 0 0 1.29 1.291H22.71A1.29 1.29 0 0 0 24 4.711V1.359A1.29 1.29 0 0 0 22.709.07ZM1.291 9.033A1.29 1.29 0 0 0 0 10.323v3.353a1.29 1.29 0 0 0 1.291 1.29h21.418A1.29 1.29 0 0 0 24 13.677v-3.354a1.29 1.29 0 0 0-1.291-1.289Zm0 8.965A1.29 1.29 0 0 0 0 19.289v3.352a1.29 1.29 0 0 0 1.291 1.29h12.385a1.29 1.29 0 0 0 1.29-1.29v-3.352a1.29 1.29 0 0 0-1.29-1.291zm18.064 0a1.29 1.29 0 0 0-1.289 1.291v3.352a1.29 1.29 0 0 0 1.29 1.29h3.353A1.29 1.29 0 0 0 24 22.642v-3.352a1.29 1.29 0 0 0-1.291-1.291z\"},\"child\":[]}]})(props);\n};\nexport function SiBasicattentiontoken (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.917 21.886.062-.124v-.042c0-.041.021-.083.021-.103v-.042c0-.041 0-.103-.02-.145l-.063-.124v-.021L12.54 2.135A.618.618 0 0 0 12 1.824c-.228 0-.415.124-.539.31L.083 21.265v.021l-.062.124C0 21.451 0 21.513 0 21.554v.042c0 .041 0 .083.02.103v.042c.021.041.021.083.063.124l.02.021c.021.041.042.083.084.104l.062.062c.02.02.041.041.062.041.02.021.062.021.083.042.02 0 .041.02.062.02.062.021.104.021.166.021h22.736c.062 0 .103 0 .165-.02.021 0 .042-.021.063-.021.041-.021.062-.021.103-.042.02-.02.042-.02.062-.041l.062-.062a.364.364 0 0 0 .083-.104h.021ZM12 11.316l3.627 5.845H8.373L12 11.316Zm-.622-1.347-4.56 7.357-4.455 2.55 9.015-15.15v5.243ZM7.42 18.425h9.14l4.456 2.55H2.964l4.456-2.55Zm9.761-1.099-4.56-7.357V4.725l9.016 15.15-4.456-2.549Z\"},\"child\":[]}]})(props);\n};\nexport function SiBastyon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.333 19.849a5.439 5.439 0 0 0-6.5-.829 7.914 7.914 0 0 1-3.837.987A8 8 0 0 1 5 15.91a5.473 5.473 0 0 1-.037 5.359 11.6 11.6 0 0 0 12.671.9 1.825 1.825 0 0 1 2.188.3L21.356 24l2.562-2.568Zm-2.096.404a11.664 11.664 0 0 0 1.931-13.89 1.836 1.836 0 0 1 .3-2.193L24 2.635 21.438.067l-1.58 1.589a5.471 5.471 0 0 0-.827 6.516A8 8 0 0 1 15.916 19l2.086 3c.917-.51 1.471-.981 2.235-1.747zm-.005-16.481A11.6 11.6 0 0 0 6.373 1.836a1.816 1.816 0 0 1-.9.235 1.82 1.82 0 0 1-1.291-.536L2.654 0 .091 2.568l1.586 1.583A5.422 5.422 0 0 0 5.476 5.7a5.412 5.412 0 0 0 2.7-.718A7.961 7.961 0 0 1 18.985 8.1l3.083-1.94a10.462 10.462 0 0 0-1.836-2.388ZM5 15.909l-.034-.062A8 8 0 0 1 8.084 5.015l-2.023-3.03C5.144 2.5 4.527 3 3.763 3.766a11.664 11.664 0 0 0-1.931 13.89 1.836 1.836 0 0 1-.3 2.193L0 21.384l2.562 2.568 1.579-1.589a5.477 5.477 0 0 0 .824-1.094A5.473 5.473 0 0 0 5 15.909Z\"},\"child\":[]}]})(props);\n};\nexport function SiBat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.3258 5.8712a.165.165 0 0 0-.0828.0227L.1628 10.6287a.3292.3292 0 0 0 0 .5682c.7296.4273 1.5858.9285 2.9645 1.736l.0003-.0002c.1766.1035.3639.2134.6667.3907.3059.1792 1.5546.9292 1.8978 1.1352a.172.172 0 0 0 .1758.0011l3.2446-1.892a.145.145 0 0 0 .072-.126.146.146 0 0 0-.0725-.1259c-.4119-.2378-1.2937-.7475-1.625-.9419l-.7927-.4647c.4232-.2457 1.222-.7063 1.5211-.8811a.558.558 0 0 0 .2767-.4819V6.0368a.1657.1657 0 0 0-.1663-.1656m7.3487 0a.1653.1653 0 0 0-.1664.1656v3.5094a.558.558 0 0 0 .2765.4819c.2955.1725 1.2455.7276 1.5145.8847l-3.1644 1.8562a.246.246 0 0 1-.3706-.212V8.2744a.19.19 0 0 0-.0917-.1626.19.19 0 0 0-.1863-.0063c-.1207.0626-1.0953.5325-1.5392.7464-.6352-.292-1.2494-.5767-1.4327-.672-.059-.0306-.126-.0214-.1865.0063-.0496.0228-.0915.0962-.0915.1627v4.208c0 .0883.0109.3806-.304.5623L6.638 15.0234l5.3628 3.1054s9.5549-5.5958 11.8364-6.9318a.3295.3295 0 0 0 0-.5682l-2.8146-1.6493.0003-.0002-.2142-.1252-.002-.0014-5.0493-2.9587a.165.165 0 0 0-.0827-.0227z\"},\"child\":[]}]})(props);\n};\nexport function SiBata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.397 13.003c.244-1.308 1.795-1.974 2.936-1.91.436.025.82.154 1.039.41.09-.09.18-.192.269-.282.051-.051.205-.038.346-.013.154.026.32.09.423.09.103 0 .36-.077.603-.115.243-.039.461-.026.423.064l-.218.538-.705 1.73c-.141.347.41.257 1.166-.55.129.09.193.102.321.423-.654.564-1.27.961-2.128 1.256-.77.27-1.346-.115-1.526-.756-1.102 1.025-2.628 1.013-3.064-.141-.718.359-1.564.73-1.923.833-.282.077-.526.141-.77.141-.384 0-.794-.346-.666-.872-.628.282-1.128.462-1.846.705-.77.27-1.218-.025-1.398-.666-1.102 1.025-2.628 1.013-3.064-.141-.436.205-1.025.513-1.577.73-.884.398-1.923.321-2.692-.487l.257-.397c.359.384.807.372 1.153.051.372-.333.603-.974.436-1.513-.077-.23-.333-.41-.833-.384l.154-.41c.5-.013.897-.09 1.115-.398.308-.449.308-1.128-.346-1.115a1.34 1.34 0 0 0-.41.077c-.116.333-.308.73-.475 1.14-.371.95-.782 2-1.256 2.68-.564.808-1.18.962-1.667.936-.512-.039-.91-.192-1.474-.692 0-.218.013-.308.064-.577.218.269.898.564 1.115.243.488-.718 1.026-2.102 1.436-3-.359.116-.705.346-1.18.68 0-.051-.153-.18-.153-.334.77-.884 2.115-1.423 3.026-1.615 1.397-.295 2.884.128 3.115 1.013.154.59-.538 1.14-1.192 1.218.372.218.769.602.872 1.077.05.23.038.487-.039.73.218-.102.487-.23.654-.307.27-1.885 3.192-2.487 3.987-1.59l.27-.282c.05-.051.204-.038.346-.013.153.026.32.09.423.09.102 0 .359-.077.602-.115.244-.039.462-.026.423.064l-.91 2.269c-.205.513 1.308-.398 1.397-.449l.654-1.384-.666.012.115-.564h.744c.128-.166.153-.359.32-.474.218-.167.718-.077.949-.23.205-.129.359-.321.538-.629.154-.256.744-.192.628.051l-.512 1.295h.653c.308.013.039.539-.307.539l-.539.012-.628 1.629c-.205.5.59.025 1.192-.32zm-6.012-1.115c-.077-.244-.282-.308-.475-.295-.436.051-.859.538-1.077.872-.346.538-.269 1.346.295 1.192.577-.154 1.36-1.41 1.257-1.77zm9.666 0c-.077-.244-.282-.308-.474-.295-.436.051-.86.538-1.077.872-.346.538-.27 1.346.295 1.192.577-.154 1.359-1.41 1.256-1.77Z\"},\"child\":[]}]})(props);\n};\nexport function SiBattledotnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.94 8.296C15.9 6.892 11.534 6 7.426 6.332c.206-1.36.714-2.308 1.548-2.508 1.148-.275 2.4.48 3.594 1.854.782.102 1.71.28 2.355.429C12.747 2.013 9.828-.282 7.607.565c-1.688.644-2.553 2.97-2.448 6.094-2.2.468-3.915 1.3-5.013 2.495-.056.065-.181.227-.137.305.034.058.146-.008.194-.04 1.274-.89 2.904-1.373 5.027-1.676.303 3.333 1.713 7.56 4.055 10.952-1.28.502-2.356.536-2.946-.087-.812-.856-.784-2.318-.19-4.04a26.764 26.764 0 0 1-.807-2.254c-2.459 3.934-2.986 7.61-1.143 9.11 1.402 1.14 3.847.725 6.502-.926 1.505 1.672 3.083 2.74 4.667 3.094.084.015.287.043.332-.034.034-.06-.08-.124-.131-.149-1.408-.657-2.64-1.828-3.964-3.515 2.735-1.929 5.691-5.263 7.457-8.988 1.076.86 1.64 1.773 1.398 2.595-.336 1.131-1.615 1.84-3.403 2.185a27.697 27.697 0 0 1-1.548 1.826c4.634.16 8.08-1.22 8.458-3.565.286-1.786-1.295-3.696-4.053-5.17.696-2.139.832-4.04.346-5.588-.029-.08-.106-.27-.196-.27-.068 0-.067.13-.063.187.135 1.547-.263 3.2-1.062 5.19zm-8.533 9.869c-1.96-3.145-3.09-6.849-3.082-10.594 3.702-.124 7.474.748 10.714 2.627-1.743 3.269-4.385 6.1-7.633 7.966h.001z\"},\"child\":[]}]})(props);\n};\nexport function SiBazel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.7473 23.8198-5.4987-5.4987v-5.5349l5.4987 5.4986v5.535zm-.1036-17.6412-.0001-.0001.1768-.1768L5.9986.1799.1768 6.0018l.0001.0001 5.8217 5.8271 5.6451-5.6504zM0 6.5323v5.5347l5.7486 5.7539v-5.5347l-.1035-.1035.0001-.0001L0 6.5323zm17.6478 5.6504-5.6505-5.6505-5.6452 5.6504 5.6452 5.6453 5.6505-5.6452zm.1036 5.8885v-5.2853l-5.5042 5.4991v5.5351l5.5042-5.4991v-.2498zM24 6.5323l-5.6451 5.6503.0001.0001-.1036.1035v5.5346L24 12.067V6.5323zm-.1769-.5304.0001-.0001L18.0014.18l-5.8273 5.822 5.8273 5.8272 5.8217-5.8273z\"},\"child\":[]}]})(props);\n};\nexport function SiBeatport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.429 17.055a7.114 7.114 0 0 1-.794 3.246 6.917 6.917 0 0 1-2.181 2.492 6.698 6.698 0 0 1-3.063 1.163 6.653 6.653 0 0 1-3.239-.434 6.796 6.796 0 0 1-2.668-1.932 7.03 7.03 0 0 1-1.481-2.983 7.124 7.124 0 0 1 .049-3.345 7.015 7.015 0 0 1 1.566-2.937l-4.626 4.73-2.421-2.479 5.201-5.265a3.791 3.791 0 0 0 1.066-2.675V0h3.41v6.613a7.172 7.172 0 0 1-.519 2.794 7.02 7.02 0 0 1-1.559 2.353l-.153.156a6.768 6.768 0 0 1 3.49-1.725 6.687 6.687 0 0 1 3.845.5 6.873 6.873 0 0 1 2.959 2.564 7.118 7.118 0 0 1 1.118 3.8Zm-3.089 0a3.89 3.89 0 0 0-.611-2.133 3.752 3.752 0 0 0-1.666-1.424 3.65 3.65 0 0 0-2.158-.233 3.704 3.704 0 0 0-1.92 1.037 3.852 3.852 0 0 0-1.031 1.955 3.908 3.908 0 0 0 .205 2.213c.282.7.76 1.299 1.374 1.721a3.672 3.672 0 0 0 2.076.647 3.637 3.637 0 0 0 2.635-1.096c.347-.351.622-.77.81-1.231.188-.461.285-.956.286-1.456Z\"},\"child\":[]}]})(props);\n};\nexport function SiBeats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.625 0v15h8.25a7.5 7.5 0 0 0 0-15zm17.016 11.705c-1.571 3.261-4.91 5.517-8.766 5.517h-8.25V24h11.25a7.5 7.5 0 0 0 5.766-12.295z\"},\"child\":[]}]})(props);\n};\nexport function SiBeatsbydre (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0099 15.5996A3.5995 3.5995 0 1 0 8.4103 12a3.5995 3.5995 0 0 0 3.5996 3.5996zm0-15.5981a11.9985 11.9985 0 0 0-3.5996.552v6.6471A5.9992 5.9992 0 1 1 6.0106 12V1.6033A11.9985 11.9985 0 1 0 12.01.0015z\"},\"child\":[]}]})(props);\n};\nexport function SiBeatstars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.217 11.996-3.308 1.079v3.478l-2.052-2.818-3.309 1.079 2.043-2.818-2.043-2.819 3.31 1.08 2.05-2.819v3.487zm0 0v7.277H6.854V4.584h10.363v7.412l4.585-1.49v-7.67L19.135 0H2.198v24h16.92l2.684-2.685v-7.83z\"},\"child\":[]}]})(props);\n};\nexport function SiBeekeeperstudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.0092 4.6236 13.8544.5046c-1.1652-.6728-2.5929-.6728-3.7416 0L8.242 1.5877v10.4205c0 1.3292.7057 2.5764 1.8708 3.2492.5744.3282 1.2308.5088 1.8708.5088s1.2964-.1641 1.8708-.5088c1.165-.6728 1.8707-1.9036 1.8707-3.2492 0-1.3292-.7056-2.5764-1.8707-3.2492-.5744-.3282-1.2308-.5087-1.8708-.5087V5.9036c.64 0 1.2964.164 1.8708.5087l2.0348 1.1815c1.1652.6729 1.8708 1.9036 1.8708 3.2493v2.3466c0 1.3293-.7056 2.5765-1.8708 3.2493l-2.0348 1.1815c-.5744.3282-1.2308.5087-1.8708.5087s-1.2964-.164-1.8708-.5087L8.078 16.439c-1.165-.6728-1.8707-1.9036-1.8707-3.2492V2.7528L2.9744 4.6236c-1.1652.6728-1.8708 1.9036-1.8708 3.2492v8.2544c0 1.3292.7056 2.5764 1.8708 3.2492l7.1548 4.119c1.1652.6728 2.5928.6728 3.7416 0l7.1548-4.119c1.1652-.6728 1.8708-1.9036 1.8708-3.2492V7.8728a3.8203 3.8203 0 0 0-1.8872-3.2492ZM9.6862 9.0544c-.2134.164-.3939.3446-.558.5415V6.9703l.558-.3283v2.4124Zm1.4276-.6893c-.1969.0493-.3774.0985-.5579.1805v-2.363c.1805-.082.3774-.1313.558-.1805v2.363Z\"},\"child\":[]}]})(props);\n};\nexport function SiBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.969 16.927a2.561 2.561 0 0 0 1.901.677 2.501 2.501 0 0 0 1.531-.475c.362-.235.636-.584.779-.99h2.585a5.091 5.091 0 0 1-1.9 2.896 5.292 5.292 0 0 1-3.091.88 5.839 5.839 0 0 1-2.284-.433 4.871 4.871 0 0 1-1.723-1.211 5.657 5.657 0 0 1-1.08-1.874 7.057 7.057 0 0 1-.383-2.393c-.005-.8.129-1.595.396-2.349a5.313 5.313 0 0 1 5.088-3.604 4.87 4.87 0 0 1 2.376.563c.661.362 1.231.87 1.668 1.485a6.2 6.2 0 0 1 .943 2.133c.194.821.263 1.666.205 2.508h-7.699c-.063.79.184 1.574.688 2.187ZM6.947 4.084a8.065 8.065 0 0 1 1.928.198 4.29 4.29 0 0 1 1.49.638c.418.303.748.711.958 1.182.241.579.357 1.203.341 1.83a3.506 3.506 0 0 1-.506 1.961 3.726 3.726 0 0 1-1.503 1.287 3.588 3.588 0 0 1 2.027 1.437c.464.747.697 1.615.67 2.494a4.593 4.593 0 0 1-.423 2.032 3.945 3.945 0 0 1-1.163 1.413 5.114 5.114 0 0 1-1.683.807 7.135 7.135 0 0 1-1.928.259H0V4.084h6.947Zm-.235 12.9c.308.004.616-.029.916-.099a2.18 2.18 0 0 0 .766-.332c.228-.158.411-.371.534-.619.142-.317.208-.663.191-1.009a2.08 2.08 0 0 0-.642-1.715 2.618 2.618 0 0 0-1.696-.505h-3.54v4.279h3.471Zm13.635-5.967a2.13 2.13 0 0 0-1.654-.619 2.336 2.336 0 0 0-1.163.259 2.474 2.474 0 0 0-.738.62 2.359 2.359 0 0 0-.396.792c-.074.239-.12.485-.137.734h4.769a3.239 3.239 0 0 0-.679-1.785l-.002-.001Zm-13.813-.648a2.254 2.254 0 0 0 1.423-.433c.399-.355.607-.88.56-1.413a1.916 1.916 0 0 0-.178-.891 1.298 1.298 0 0 0-.495-.533 1.851 1.851 0 0 0-.711-.274 3.966 3.966 0 0 0-.835-.073H3.241v3.631h3.293v-.014ZM21.62 5.122h-5.976v1.527h5.976V5.122Z\"},\"child\":[]}]})(props);\n};\nexport function SiBeijingsubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.729 23.936c-2.182-.257-4.152-1.048-5.948-2.389-.586-.437-1.636-1.465-2.11-2.064-1.11-1.404-1.854-2.957-2.313-4.828-.303-1.232-.41-2.309-.335-3.35.069-.955.409-2.437.811-3.536.371-1.014 1.151-2.382 1.864-3.269a15.51 15.51 0 0 1 1.55-1.593C6.625.878 9.607-.14 12.69.026 15.358.17 17.738 1.1 19.738 2.78c1.904 1.6 3.36 3.801 3.883 5.869.067.263.113.486.104.495-.009.009-.636.022-1.392.03l-1.375.014-.132-.342c-.674-1.738-2.194-3.564-3.948-4.743-.806-.541-1.555-.874-2.296-1.021-2.136-.424-4.15-.276-5.829.428C6.21 4.576 4.078 6.948 3.317 9.559c-.222.761-.274 1.185-.273 2.199.002 1.29.139 2.128.549 3.365.497 1.499 1.083 2.438 2.198 3.525 1.249 1.216 2.839 2.146 4.121 2.407 1.463.299 3.868.029 5.887-.662 1.911-.654 3.511-2.086 4.6-4.116.21-.391.681-1.508.682-1.615 0-.045-.076-.05-.437-.03-.241.014-1.02.025-1.731.025h-1.294l-.017.088c-.01.048-.047.245-.082.438-.103.558-.273 1.029-.615 1.705l-.319.63-9.514.02V6.445h9.488l.203.316c.591.922.914 2.116 1.049 3.885.022.288.04.713.04.944v.42H24v.247c0 .372-.105 1.39-.195 1.887-.529 2.932-1.96 5.434-4.086 7.148-1.853 1.493-3.982 2.387-6.306 2.647-.648.072-2.063.07-2.684-.003zm3.64-8.802c.163-.171.404-.539.537-.82.112-.235.123-.295.123-.632 0-.36-.006-.384-.164-.701-.091-.18-.26-.44-.378-.577l-.214-.25.125-.153c.238-.291.308-.401.459-.711.369-.76.232-1.527-.382-2.131l-.187-.184-2.305-.025-2.306-.026.01 3.13.01 3.129 2.277.02c1.252.011 2.28.024 2.285.029s.054-.039.11-.098z\"},\"child\":[]}]})(props);\n};\nexport function SiBem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 5.163h5.61v1.65H0Zm0-3.065h5.61v1.65H0Zm10.067 6.106H0v1.65h9.69c1.06 0 3.536.024 4.455 1.51v-.92c-.448-1.462-1.768-2.24-4.078-2.24Zm.023 3.065H0v1.65h9.69c2.357 0 3.842.095 4.455.425v-.731c-.471-1.155-2.451-1.344-4.055-1.344Zm-.023 7.78H0V17.4h9.69c1.06 0 3.536-.024 4.455-1.509v.92c-.448 1.461-1.768 2.24-4.078 2.24zm.023-3.065H0v-1.65h9.69c2.357 0 3.842-.094 4.455-.424v.73c-.471 1.156-2.451 1.344-4.055 1.344zm6.507 5.918H24v-1.014h-7.19c-.637 0-2.146-.023-2.688-.896v.566c.26.872 1.06 1.344 2.475 1.344zm-.023-1.863h7.403v-1.013H16.81c-1.439 0-2.334-.047-2.688-.26v.448c.283.708 1.485.825 2.452.825z\"},\"child\":[]}]})(props);\n};\nexport function SiBentley (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.535 8.114a5.407 5.407 0 0 0-1.49.34c-.131.05-.269.135-.414.079-.654-.153-1.331-.096-1.992-.025-.859.09-1.72-.003-2.579-.045a21.543 21.543 0 0 0-2.349.05c-.713.044-1.429-.01-2.138-.086-.088-.002-.178-.02-.265-.002-.135.088-.22.232-.308.363v.068c.185.158.404.262.625.358-.062.151-.101.31-.13.47.264.124.54.227.796.368-.029.095-.072.186-.083.285-.006.059.024.121.083.142.21.11.448.142.665.23.021.01.05.02.05.048.017.128.02.258.047.385a.173.173 0 0 0 .057.035c.287.095.588.131.881.196.034.11.022.249.106.336.375.196.82.1 1.213.228.098.096.075.29.223.344.296.09.614.01.918.05.069.079.077.193.144.273a.249.249 0 0 0 .169.076c.287.008.562-.087.846-.12.059.099.087.247.213.277.229.045.452-.042.665-.116.08.26.166.521.303.758.473.858 1.288 1.499 2.198 1.841.128.036.172.175.238.276.127-.048.252-.102.384-.134l.2.297c.119-.06.237-.122.356-.184.08.094.16.187.242.28l.31-.22c.09.078.173.164.254.251h.035c.096-.085.187-.177.282-.263.106.077.21.156.316.235.081-.095.163-.19.246-.284.12.06.238.123.357.184.063-.098.124-.196.185-.295.14.031.27.089.404.136.033-.068.065-.138.102-.204.053-.142.22-.164.336-.232.972-.447 1.78-1.286 2.099-2.318.162.06.345.134.517.064.09-.046.125-.144.168-.228.24.053.48.154.73.102.13-.039.194-.161.253-.271.23.03.456.095.69.075.104-.013.247 0 .318-.096.059-.096.067-.215.124-.312.315-.042.648.042.954-.072.096-.108.097-.27.184-.383.247-.018.495 0 .742-.018a.286.286 0 0 0 .215-.123c.056-.107.064-.23.1-.344.007-.024.02-.05.044-.061.241-.1.534-.022.755-.177.108-.12.021-.31.088-.443.207-.118.477-.088.669-.241.129-.11.032-.282.014-.42.225-.077.472-.119.657-.279-.052-.14-.113-.275-.17-.412A4.67 4.67 0 0 0 24 8.871v-.087a1.176 1.176 0 0 0-.272-.34c-.071-.053-.17-.01-.25-.018-.696.062-1.396.13-2.095.092-.417-.022-.833-.062-1.25-.062-.522 0-1.044-.015-1.564.027-.77.046-1.544.103-2.313.017-.657-.077-1.335-.115-1.981.053-.103.043-.211.009-.305-.037-.516-.234-1.077-.348-1.638-.402zm.521.155c.327.014.654.049.974.122.31.072.622.149.91.287-.103.065-.227.164-.354.11a5.088 5.088 0 0 0-1.716-.29c-.326.02-.652.046-.97.125-.204.04-.4.116-.606.149-.096-.026-.184-.073-.272-.119a5.653 5.653 0 0 1 2.034-.384zm11.467.278c.17-.01.308.126.395.26a2.31 2.31 0 0 1-1.093.252c-1.65.027-3.298.095-4.947.137 0 .027.002.054.004.081a2.744 2.744 0 0 1-.048-.154c.361-.05.72-.12 1.085-.142.668-.05 1.34-.068 2.01-.075a.394.394 0 0 0 .245-.072c-.533-.057-1.07-.026-1.604-.013-.371.027-.744.033-1.114.08-.495.06-.989.154-1.489.16-.312.005-.625.032-.937.01-.39-.007-.786-.042-1.17.045-.108.035-.239.073-.282.192-.093.188.01.398.095.569.103.217.279.425.247.682-.015.091-.092.151-.162.203a2.4 2.4 0 0 1-.198-.251c.04-.08.106-.155.088-.252-.033-.2-.178-.358-.314-.498-.196-.19-.414-.367-.547-.61-.039-.07-.066-.17.009-.227.22-.156.491-.209.752-.252.715-.1 1.436-.015 2.153.015.353.035.709.03 1.063 0 .838-.054 1.68-.138 2.52-.082.378.021.757.038 1.135.047.692.028 1.38-.062 2.07-.101a.308.308 0 0 1 .034-.004zM.55 8.55c.196-.002.392.027.587.04.542.048 1.086.079 1.63.056.674-.008 1.345-.088 2.019-.052.687.022 1.37.098 2.058.119.525-.018 1.049-.06 1.574-.084.533-.017 1.087-.011 1.59.187.097.04.217.093.24.207-.02.158-.14.28-.238.399-.175.216-.429.36-.57.605-.11.14-.126.35-.005.488a1.808 1.808 0 0 1-.219.243c-.083-.076-.16-.17-.15-.292.038-.346.347-.593.383-.94.031-.121-.031-.239-.108-.327a1.155 1.155 0 0 0-.468-.124c-.562-.048-1.126.027-1.689-.007-.557.004-1.107-.093-1.657-.167a26.874 26.874 0 0 0-2.115-.106c-.195-.003-.39.015-.585.032.063.052.14.087.225.078.733.01 1.466.022 2.197.085.307.029.61.084.916.131l-.023.084c-.536-.033-1.074-.028-1.611-.05-.965-.035-1.93-.065-2.895-.081-.411-.027-.841.017-1.234-.134-.11-.037-.213-.088-.317-.136.076-.093.153-.199.27-.24.065-.01.13-.014.195-.014zm11.455.114a4.324 4.324 0 0 1 1.597.296c.004.104-.029.218.024.313a1.245 1.245 0 0 0 .16.229c.18.212.41.383.588.597a.716.716 0 0 1 .157.272 3.76 3.76 0 0 0-1.267-.755 3.848 3.848 0 0 0-3.158.28c-.174.098-.332.22-.486.348l-.152.128a.502.502 0 0 1 .06-.147c.223-.315.556-.533.781-.846.11-.133.1-.31.083-.47a5.558 5.558 0 0 1 1.613-.245zm5.762.455c.016.044.03.088.044.132-.313.18-.688.135-1.032.09-.078-.007-.124-.074-.155-.139.38-.041.763-.038 1.143-.083zm-11.55.016c.386.006.771.025 1.154.064-.03.051-.054.124-.122.132-.203.035-.41.041-.614.049-.158.01-.303-.062-.44-.129l.023-.116zm1.207.055c.154.003.309.005.463.014.41.017.831-.016 1.23.105.099.034.208.08.259.178.039.172-.06.325-.144.464-.083.151-.197.293-.235.464-.048.16.05.294.124.423-.112.004-.25.051-.338-.04-.041-.082.007-.179.024-.263l-.16.143-.195-.012c-.015-.203.141-.35.221-.521-.138.123-.278.297-.483.281-.081.003-.143-.104-.093-.169.111-.141.255-.254.359-.402-.124.096-.25.195-.397.251a.464.464 0 0 1-.326-.038c.018-.204.234-.276.35-.417-.127.053-.24.154-.387.145-.058.002-.115-.016-.17-.029-.01-.173.171-.234.273-.337-.09.02-.177.062-.27.06-.062-.022-.11-.072-.164-.108.015-.066.035-.13.06-.192zm9.156 0c.018.078.087.178-.005.237-.1.125-.268.022-.39-.002.112.096.285.167.284.343-.096.017-.2.05-.295.01-.088-.036-.173-.081-.259-.122.027.027.055.053.084.078l.087.076c.057.051.113.104.16.164.016.068-.033.14-.106.139-.233.059-.415-.127-.584-.254.089.121.195.226.297.335.051.054.046.135.064.203-.084.011-.174.044-.256.008-.128-.052-.225-.155-.33-.243.091.16.23.305.216.502l-.208.008a10.001 10.001 0 0 1-.137-.132c.008.082.06.176.007.25-.062.07-.158.065-.246.063-.03 0-.059 0-.086.003.047-.119.14-.222.137-.356-.036-.35-.358-.587-.406-.932-.01-.149.154-.218.273-.261.554-.145 1.133-.073 1.7-.117zM.698 9.192c.77 0 1.54.04 2.31.047.963.021 1.926.028 2.888.053.2-.014.365.116.53.207l-.018.19a5.46 5.46 0 0 1-.089.043l.026-.073c-.899.024-1.796.085-2.695.112-.566.012-1.13.06-1.697.05A3.707 3.707 0 0 1 .89 9.705c-.115-.034-.247-.052-.338-.137-.001-.135.073-.264.145-.376zm22.62.022c.064.111.132.222.179.342-.43.14-.89.133-1.336.116-.828-.002-1.656-.055-2.484-.083-.699-.032-1.398-.06-2.097-.1.143-.102.305-.202.486-.196 1.751-.007 3.501-.078 5.252-.08zm-16.073.214c.077.005.136.074.194.12a.138.138 0 0 1 .05.116c-.078.06-.181.068-.273.092-.186.034-.37.09-.56.097-.067-.026-.14-.055-.185-.116-.016-.084.01-.2.104-.222.21-.042.425-.054.636-.085a.139.139 0 0 1 .034-.002zm9.465.008c.235 0 .47.03.7.073.109.021.106.15.134.234-.09.05-.177.13-.29.107-.163-.025-.323-.066-.485-.096-.087-.022-.187-.029-.258-.09.005-.108.116-.177.2-.228zm-4.785.138c.908-.02 1.842.29 2.495.935.358.365.62.856.612 1.377.01.47-.199.926-.507 1.274-.566.642-1.415.983-2.256 1.046a3.577 3.577 0 0 1-2.17-.514c-.345-.22-.66-.5-.867-.858a1.853 1.853 0 0 1-.227-1.365c.099-.415.356-.774.668-1.057.565-.51 1.318-.775 2.07-.83.06-.004.121-.006.182-.008zm5.64.023c.218-.005.435.025.653.035 1.44.088 2.882.14 4.322.224.093.014.198-.004.283.043.057.083.072.185.087.283-.302.185-.678.14-1.015.149-.425-.028-.85-.08-1.274-.121a15.638 15.638 0 0 0-.425-.036c-.872-.087-1.747-.139-2.615-.258a1.474 1.474 0 0 0-.016-.32zm-5.553.01c-.116 0-.23.005-.345.016-.805.077-1.627.39-2.161 1.02-.308.348-.518.809-.484 1.282.018.674.448 1.273.985 1.65.884.618 2.057.75 3.079.44.46-.149.903-.38 1.245-.727.428-.414.714-1.017.635-1.622-.065-.495-.35-.941-.723-1.265-.61-.536-1.425-.795-2.231-.794zm-5.915.175c.059 0 .118 0 .178.002.148.042.249.167.359.266-.027.077-.05.155-.072.234.072.057.149.108.23.15-.517.084-1.03.193-1.544.292l-.464.102-.465.098c-.31.063-.621.123-.934.174-.405.072-.828.05-1.222-.069-.113-.032-.141-.162-.095-.262.017-.1.141-.09.215-.105 1.276-.13 2.548-.295 3.82-.447.178-.019.38-.023.51-.163-.701.064-1.402.142-2.102.22l-1.051.113c-.35.036-.701.07-1.052.1-.394.04-.802.002-1.17-.153a1.65 1.65 0 0 1 .144-.328c1.393-.063 2.789-.092 4.18-.195.178-.008.356-.025.535-.029zm1.256.064a.56.56 0 0 1 .122.008c.084.025.162.067.24.105-.009.132-.138.166-.238.212-.125.051-.247.11-.375.153-.162.052-.325-.028-.474-.087.02-.068.028-.144.07-.203a.916.916 0 0 1 .297-.12c.117-.03.237-.064.358-.068zm9.248 0c.177-.004.35.054.517.106.064.026.144.036.192.092.032.06.04.13.064.192-.146.053-.302.145-.462.093a6.866 6.866 0 0 1-.632-.271c.018-.123.137-.18.245-.206a.718.718 0 0 1 .076-.006zm.887.172c.239-.004.474.041.711.066.758.085 1.517.168 2.276.246.543.068 1.09.108 1.632.19.013.107.126.312-.033.35a4.135 4.135 0 0 1-1.12.025c-1.182-.184-2.36-.394-3.544-.566a4.356 4.356 0 0 0-.024-.307c.034-.002.068-.004.102-.004zm-5.377.111c.253.001.504.032.748.103.282.084.568.226.73.482.111.16.124.368.087.554-.056.226-.263.365-.442.492l.004.042c.265.181.554.434.545.785.025.254-.11.492-.293.657-.129.098-.27.183-.422.241-.43.149-.892.168-1.342.138-.552-.069-1.13-.224-1.537-.627.07-.094.16-.17.224-.268a23.17 23.17 0 0 0 .006-1.615c-.066-.099-.157-.177-.231-.27.274-.375.732-.545 1.17-.64.247-.047.5-.075.753-.074zm4.163.063c.029 0 .058.001.086.008.169.065.332.144.494.225.036.024.09.036.106.082.004.08-.034.168-.113.197-.115.048-.253.078-.37.024-.191-.084-.365-.202-.544-.307.017-.042.025-.095.054-.13a.1.1 0 0 1 .038-.027.606.606 0 0 1 .249-.072zm-8.563 0a.555.555 0 0 1 .276.078c.065.031.079.14.017.18-.162.11-.332.21-.514.281-.143.047-.287-.007-.42-.053l-.04-.194c.168-.088.34-.173.514-.25a.36.36 0 0 1 .167-.042zm4.37.172a2.535 2.535 0 0 0-.282.015.623.623 0 0 0-.361.168c-.163.169-.176.422-.145.641a.563.563 0 0 0 .367.487c.233.079.49.075.725.01.254-.085.382-.362.376-.614.013-.213-.04-.462-.231-.586a.807.807 0 0 0-.449-.12zm5.287.085c.27.006.54.052.806.099.833.15 1.666.301 2.498.458.21.043.423.079.63.138-.028.125-.043.32-.202.344-.513.065-1.028-.05-1.52-.187-.814-.22-1.637-.414-2.45-.64a.435.435 0 0 0-.149-.007c.013-.052.017-.107.042-.154.064-.048.153-.045.229-.05h.116zm-10.387.055c.028.114.052.229.097.337-.634.195-1.267.39-1.904.572-.338.097-.67.223-1.02.27-.316.028-.64.013-.948-.066-.126-.034-.16-.17-.163-.284.89-.193 1.777-.399 2.67-.577.422-.085.839-.203 1.268-.252zm8.897.051a.266.266 0 0 1 .177.063c.15.099.297.2.448.296a.196.196 0 0 0-.014.043l-.01.047c-.009.032-.021.061-.05.077-.13.014-.269.043-.396-.006a2.215 2.215 0 0 1-.396-.324c-.046-.039-.041-.116-.002-.158a.093.093 0 0 1 .05-.027c.061-.003.128-.013.193-.01zm-7.713 0c.051 0 .102.004.152.01.069.017.116.122.047.169-.156.156-.318.354-.557.365-.08-.001-.16.002-.238-.015-.057-.038-.052-.12-.071-.176.173-.11.338-.231.516-.333a.63.63 0 0 1 .15-.02zm8.857.204c.162.017.316.07.473.108.766.225 1.533.447 2.298.674.143.043.289.079.426.138-.038.095-.074.203-.163.262a2.07 2.07 0 0 1-1.1-.072c-.27-.103-.527-.233-.792-.346-.48-.205-.958-.419-1.445-.61.103-.047.195-.121.303-.154zm-1.563.04c.105 0 .19.084.266.148.072.072.167.131.212.225.015.085-.055.159-.079.235-.104-.02-.234.02-.318-.066a1.57 1.57 0 0 1-.322-.397c-.016-.086.083-.138.163-.141l.032.001a.202.202 0 0 1 .046-.005zm-6.891.004a.423.423 0 0 1 .23.082 1.5 1.5 0 0 1-.34.455c-.074.09-.2.075-.3.045-.063-.047-.086-.13-.124-.196.123-.127.24-.262.389-.359a.32.32 0 0 1 .145-.027zm-1.326.12a.848.848 0 0 1 .108.002c.102.015.115.135.153.212-.178.06-.341.153-.508.236-.434.208-.857.435-1.29.645-.295.156-.643.13-.966.133-.09-.009-.191 0-.27-.052-.052-.067-.074-.152-.1-.232.245-.124.516-.18.77-.283.456-.172.924-.31 1.384-.47.238-.067.471-.179.72-.19zm7.692.011c.093.022.207.015.277.091.098.133.197.272.253.428-.018.12-.154.2-.272.195-.04-.253-.148-.485-.258-.714zm-5.888.003a2.99 2.99 0 0 0-.242.718c-.095-.022-.214-.046-.256-.147-.03-.05-.001-.105.022-.15a2.1 2.1 0 0 1 .225-.346c.071-.054.167-.054.251-.075zm7.515.028c.182.033.342.134.508.212.661.309 1.32.623 1.977.942-.013.07-.011.154-.059.214-.163.063-.344.037-.513.02-.206-.023-.42-.047-.601-.16-.507-.315-.98-.687-1.509-.966.115-.042.154-.159.197-.262zm-8.832.254c.09 0 .18.014.267.042-.194.232-.456.392-.695.571-.28.19-.538.417-.85.553a2.027 2.027 0 0 1-.761.104c-.112-.014-.161-.118-.166-.22.587-.32 1.187-.615 1.774-.933a.83.83 0 0 1 .43-.117zm8.426.018a.6.6 0 0 1 .321.134c.449.335.896.674 1.346 1.007.06.031.091.091.116.152-.126.054-.263.12-.403.078-.041-.01-.084-.018-.126-.027a.946.946 0 0 1-.364-.13c-.427-.27-.773-.65-1.206-.912.092-.082.12-.21.206-.293a.399.399 0 0 1 .11-.009zm-8.156.176c.114.178.334.117.508.165-.38.273-.666.652-1.042.93-.228.169-.583.234-.814.037.113-.175.29-.29.447-.423.3-.236.593-.483.901-.709zm7.554.125c.11.023.233.032.319.116.284.24.551.498.836.738.097.09.227.167.238.315-.095.035-.202.075-.302.033a.672.672 0 0 1-.071-.023c-.162-.063-.295-.183-.424-.297a9.813 9.813 0 0 0-.769-.679c.056-.069.114-.137.173-.203zm-7.068.176c.102.027.201.065.303.091.013.1.02.2.026.3-.174.175-.307.406-.541.51-.156.06-.327.081-.493.06-.057-.012-.097-.057-.138-.095.278-.292.54-.6.843-.866zm6.729.073c.151-.002.25.118.344.218.196.228.42.428.622.649-.043.057-.09.136-.18.106a.738.738 0 0 1-.311-.05c-.208-.1-.345-.293-.522-.433l.047-.49zm-3.103.132a1.564 1.564 0 0 0-.255.014c-.274.032-.537.235-.584.515-.03.271-.019.602.204.796.147.12.34.16.525.176.258.008.56-.033.72-.264.175-.264.176-.623.054-.908-.132-.24-.401-.322-.664-.33zm-3.303.33c.066.17.114.346.16.522-.12-.023-.302-.01-.37-.138-.033-.161.117-.274.21-.383zm6.349.15c.087.077.204.181.17.31-.067.117-.218.118-.335.13a33.1 33.1 0 0 0 .165-.44zm-6.69.321c.093.077.195.157.319.176.08.024.173.018.245.063.156.191.294.399.488.555.299.277.658.469.995.692-.058.24-.213.437-.339.644-.92-.353-1.719-1.07-2.085-1.995.126-.042.252-.087.376-.135zm6.993.063c.093.037.186.075.28.11-.185.51-.532.95-.94 1.301a3.133 3.133 0 0 1-1.012.6c-.08-.14-.166-.278-.236-.424-.02-.05-.052-.118-.01-.165.098-.098.227-.156.346-.224.248-.148.476-.327.686-.526.14-.134.228-.312.357-.456.11-.043.238-.024.347-.074.07-.036.124-.092.182-.142zm-7.67.07l.204.003c.174.43.422.837.76 1.157.207.187.408.384.649.527.23.152.482.262.73.38a1.417 1.417 0 0 1-.089.2 4.51 4.51 0 0 1-.699-.352c-.3-.177-.55-.421-.8-.66-.26-.253-.43-.58-.604-.894-.065-.114-.106-.239-.15-.361zm8.027.058l.22.02a3.174 3.174 0 0 1-.847 1.33c-.372.34-.785.665-1.272.82-.034-.07-.068-.14-.1-.212.305-.137.61-.289.87-.504.48-.388.91-.868 1.129-1.454zm-1.348.433c-.19.266-.485.42-.746.605-.12.093-.29.15-.339.31.011.094.087.164.13.245.108.186.215.374.302.57.048.124-.001.252-.048.367-.158-.043-.334-.115-.403-.275-.133-.241-.13-.544-.315-.76-.017.322.216.582.255.893-.016.109-.084.202-.136.297-.139-.078-.31-.156-.343-.329-.095-.256-.037-.563-.192-.797-.063.223.046.44.088.656.023.134.082.303-.023.417a2.76 2.76 0 0 1-.106.133c-.105-.075-.24-.145-.275-.28-.059-.26-.016-.53-.064-.79-.014-.033-.037-.059-.058-.086-.07.31.085.616.047.928-.042.112-.135.229-.26.25-.115-.08-.222-.2-.221-.35-.015-.271.087-.535.073-.807l-.073-.002c-.037.23-.018.465-.033.697a.487.487 0 0 1-.104.294c-.06.054-.127.1-.197.142-.063-.066-.135-.13-.173-.216-.034-.13.013-.26.04-.388.047-.192.115-.384.106-.584h-.066c-.083.259-.081.533-.154.794a.468.468 0 0 1-.273.295c-.054.024-.119-.014-.14-.066-.097-.123-.048-.289-.005-.423.086-.222.192-.439.24-.674l-.066-.027c-.14.26-.174.564-.32.821a.478.478 0 0 1-.311.24c-.045.015-.08-.022-.1-.057a.386.386 0 0 1-.005-.334c.112-.241.27-.46.38-.702.02-.066.056-.155.001-.213-.22-.226-.546-.3-.77-.522.233.138.459.296.716.386.923.372 1.99.383 2.915.011.39-.136.729-.387 1.026-.669Z\"},\"child\":[]}]})(props);\n};\nexport function SiBento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 10.435c0-.256.051-.512.153-.758.233-.56.854-1.046 2.095-2.018l6.206-4.856c1.241-.972 1.862-1.458 2.577-1.64.63-.16 1.308-.16 1.938 0 .715.183 1.336.668 2.577 1.64l6.206 4.856c1.241.972 1.862 1.458 2.095 2.018.102.246.153.502.153.758v3.13c0 .256-.051.512-.153.758-.233.56-.854 1.046-2.095 2.017l-6.206 4.857c-1.241.972-1.862 1.457-2.577 1.64-.63.16-1.308.16-1.938 0-.715-.183-1.336-.668-2.577-1.64L2.248 16.34C1.007 15.37.386 14.883.153 14.323A1.971 1.971 0 0 1 0 13.565v-3.13Zm9.34-3.238.887.694c.62.485.93.728 1.289.82.315.08.653.08.968 0 .358-.092.668-.335 1.29-.82l.886-.694c.62-.486.93-.729 1.047-1.009a.975.975 0 0 0 0-.758c-.116-.28-.427-.523-1.047-1.008l-.887-.694c-.62-.486-.93-.729-1.289-.82a1.984 1.984 0 0 0-.968 0c-.358.091-.668.334-1.29.82l-.886.694c-.62.485-.93.728-1.047 1.008a.975.975 0 0 0 0 .758c.116.28.427.523 1.047 1.009Zm5.91 4.625.887.694c.62.486.931.729 1.29.82.314.08.653.08.968 0 .358-.091.668-.334 1.288-.82l.887-.694c.62-.485.931-.728 1.047-1.008a.976.976 0 0 0 0-.758c-.116-.28-.426-.523-1.047-1.009l-.887-.694c-.62-.485-.93-.728-1.288-.82a1.984 1.984 0 0 0-.969 0c-.358.092-.668.335-1.289.82l-.886.694c-.621.486-.931.729-1.047 1.009a.975.975 0 0 0 0 .758c.116.28.426.523 1.047 1.008Zm-11.82 0 6.797 5.32c.62.486.93.728 1.289.82.315.08.653.08.968 0 .358-.092.668-.334 1.29-.82l.886-.694c.62-.486.93-.729 1.047-1.009a.974.974 0 0 0 0-.758c-.116-.28-.427-.523-1.047-1.008l-6.797-5.32c-.62-.485-.931-.728-1.29-.82a1.984 1.984 0 0 0-.968 0c-.358.092-.668.335-1.288.82l-.887.694c-.62.486-.931.729-1.047 1.009a.975.975 0 0 0 0 .758c.116.28.426.523 1.047 1.008Z\"},\"child\":[]}]})(props);\n};\nexport function SiBentobox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.406 3.821 2.723-2.725a3.74 3.74 0 0 1 5.29 0l.078.078a3.74 3.74 0 0 1 0 5.29l-2.723 2.723-5.368-5.366Zm7.407 7.407 2.723-2.723a3.74 3.74 0 0 1 5.29 0l.078.078a3.74 3.74 0 0 1 0 5.29l-2.725 2.723-5.369-5.368h.003ZM0 11.228l2.723-2.723a3.74 3.74 0 0 1 5.29 0l.079.078a3.742 3.742 0 0 1 0 5.29l-2.724 2.723L0 11.228Zm7.406 7.406 2.723-2.723a3.74 3.74 0 0 1 5.29 0l.078.078a3.74 3.74 0 0 1 0 5.29L12.774 24l-5.368-5.366Z\"},\"child\":[]}]})(props);\n};\nexport function SiBentoml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.3 11a1.1 1.1 0 1 0 0-2.2 1.1 1.1 0 0 0 0 2.2zm-4.4 0a1.1 1.1 0 1 0 0-2.2 1.1 1.1 0 0 0 0 2.2zM5.67 0a1.2 1.2 0 0 0-.815.318L.386 4.444A1.2 1.2 0 0 0 0 5.325V22.4A1.6 1.6 0 0 0 1.6 24h17.048a1.2 1.2 0 0 0 .911-.42l4.152-4.843a1.2 1.2 0 0 0 .289-.781V1.6A1.6 1.6 0 0 0 22.4 0ZM6 .6h16.2a1.2 1.2 0 0 1 1.2 1.2v15.8a1.6 1.6 0 0 1-1.6 1.6H6A1.2 1.2 0 0 1 4.8 18V1.8A1.2 1.2 0 0 1 6 .6Z\"},\"child\":[]}]})(props);\n};\nexport function SiBereal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.501 10.727c.593 0 1.029.196 1.307.587.279.393.418.857.418 1.391v.312H5.674a.97.97 0 0 0 .343.596c.182.148.422.223.718.223.172 0 .327-.023.464-.066.163-.055.324-.119.48-.192l.297.733a1.73 1.73 0 0 1-.644.296c-.252.063-.46.093-.62.093-.656 0-1.172-.18-1.55-.537-.377-.36-.565-.84-.565-1.441 0-.603.17-1.086.51-1.45.342-.364.806-.545 1.394-.545Zm8.835 0c.593 0 1.028.196 1.307.587.278.393.417.857.417 1.391v.312h-2.552c.038.235.16.447.344.596.182.148.421.223.718.223.171 0 .326-.023.464-.066a4.53 4.53 0 0 0 .48-.192l.297.733a1.728 1.728 0 0 1-.644.296 2.67 2.67 0 0 1-.62.093c-.656 0-1.173-.18-1.55-.537-.377-.36-.566-.84-.566-1.441 0-.603.17-1.086.512-1.45.34-.364.805-.545 1.393-.545Zm3.875.041c.974 0 1.603.502 1.603 1.26v2.579h-1.027v-.561h-.02c-.215.385-.616.62-1.111.62-.756 0-1.265-.473-1.265-1.136v-.008c0-.683.53-1.083 1.465-1.144l.931-.055v-.231c0-.335-.217-.541-.618-.541-.383 0-.615.18-.664.421l-.007.03h-.939l.004-.04c.056-.696.653-1.194 1.648-1.194Zm4.789 2.8v1.039h-1.04v-1.039H24ZM1.982 9.308c.515 0 .934.114 1.257.34.322.225.484.607.484 1.14 0 .198-.046.376-.137.534-.09.16-.21.296-.355.41.24.125.436.294.59.506.153.213.23.483.23.81 0 .489-.171.871-.512 1.146-.34.275-.795.413-1.362.413H0V9.308h1.982Zm8.702 0c.578 0 1.072.133 1.483.398.411.265.617.675.617 1.231 0 .327-.085.609-.254.846a1.714 1.714 0 0 1-.652.549l1.304 2.275h-1.077l-1.124-2.025a3.626 3.626 0 0 1-.367.015h-.585v2.01H9.022V9.308h1.662ZM22.448 9.3v5.307h-1.076V9.3h1.076Zm-2.66 3.661-.777.049c-.397.025-.605.192-.605.46v.007c0 .277.229.442.584.442.46 0 .797-.294.797-.688l.001-.27ZM2.17 12.285H1.007v1.489h1.092c.27 0 .488-.063.652-.188a.622.622 0 0 0 .246-.53c0-.25-.076-.44-.226-.572-.151-.132-.352-.199-.601-.199Zm4.308-.694a.75.75 0 0 0-.523.19c-.14.128-.232.315-.273.558h1.584c-.052-.253-.146-.442-.281-.564a.73.73 0 0 0-.507-.184Zm8.834 0a.75.75 0 0 0-.523.19c-.14.128-.231.315-.273.558h1.585c-.053-.253-.146-.442-.281-.564a.73.73 0 0 0-.508-.184Zm-4.659-1.441h-.624v1.62h.64c.301 0 .551-.06.749-.182.198-.122.296-.324.296-.604 0-.297-.093-.51-.28-.639-.188-.13-.448-.195-.781-.195Zm-8.819 0h-.827v1.316h.749c.281 0 .5-.053.66-.16.158-.105.238-.273.238-.501 0-.25-.073-.422-.219-.515-.146-.093-.346-.14-.601-.14Z\"},\"child\":[]}]})(props);\n};\nexport function SiBetfair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.218 3.14h-7.083v3.6H9.352l7.359 8.582L24 6.67h-3.782zM0 17.26h3.782v3.6h7.083v-3.6h3.783l-7.29-8.583z\"},\"child\":[]}]})(props);\n};\nexport function SiBetterstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.7792 10.7479-.7654 6.6384a2.0957 2.0957 0 0 0 .696 1.8122l1.8965 1.672c.6494.5725 1.658.0145 1.5185-.84L2.6039 10.705c-.1723-1.056-1.7022-1.02-1.8247.0429Zm12.3733 8.714L8.63 6.431c-.5023-1.4472-2.6082-1.3845-3.0203.0898l-1.376 4.9234c-.156.559-.216.8822.0005 1.4212h.5225l1.8993 6.0694c.294.7324.9017 1.3009 1.6611 1.5538l2.8315.9435c1.2417.4137 2.4268-.7513 2.004-1.97zm10.6297-1.0332L15.7907 3.4433c-.6971-1.3072-2.5779-1.2727-3.227.0589l-1.9652 3.9555c-.2375.487-.1274.6608.07.9435.1585.2268.526.2447.6758.012.147-.2287.488-.2076.6058.0375l5.1379 10.687a2.735 2.735 0 0 0 2.1416 1.6016l2.7183.3476c1.4628.1924 2.5299-1.3539 1.8343-2.6582z\"},\"child\":[]}]})(props);\n};\nexport function SiBevy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.8 6.271a3.149 3.149 0 0 0-.765.081c-.018.004-.033.01-.05.013-.29.288-.616.576-.963.859.115.536.308 1.053.572 1.534.51.913.93 1.402 1.175 2.036.247.633.29 1.38.06 2.737-.283 1.685-1.307 3.469-2.933 4.785 1.262-.368 2.337-1.047 3.049-1.87.769-.887 1.025-1.39 1.115-1.895.09-.506.006-1.061.04-2.003.024-.547.131-1.088.318-1.603l.04-.112.117-.015c1.052-.137 2.003-.406 2.494-.722-.158-.71-.828-1.26-1.717-1.68l-.084-.04-.021-.09c-.282-1.209-1.226-1.989-2.448-2.015Zm.61 1.494c.064 0 .126.01.185.028a.622.622 0 0 1 .396.786.622.622 0 0 1-.778.412.622.622 0 0 1-.396-.787.627.627 0 0 1 .594-.439zm-5.69-4.61c-.764-.006-1.547.3-2.22.952-.884.858-1.158 1.63-1.003 2.594l.042.265-.263-.043c-1.942-.315-4.345-.156-7.078.95.804.344 2.278.919 3.915 1.704l.52.25-.565.115C4.907 10.38 2.342 11.645 0 14.407c1.048-.082 3.189-.334 5.423-.33 1.241.002 2.465.088 3.462.346.996.258 1.903.85 2.03 1.283.128.433.055.662-.07 1-.126.34-.512.854-1.048 1.194-.534.341-1.213.638-1.92.89-1.41.505-2.91.828-3.573.89-.14.013-.197.063-.25.162a.972.972 0 0 0-.09.416c-.006.215.028.329.09.414.06.086.156.12.254.127 4.165.281 7.278-.766 9.54-1.663 2.6-1.193 4.244-3.548 4.601-5.668.224-1.329.176-1.98-.04-2.534-.216-.555-.629-1.047-1.153-1.988a6.15 6.15 0 0 1-.642-1.75l-.024-.116.092-.074c.964-.772 1.75-1.615 2.034-2.23-.585-.622-1.594-.753-2.726-.632l-.092.01-.066-.067c-.602-.614-1.35-.929-2.113-.933Zm.337 1.434a.717.717 0 0 1 .704.553.712.712 0 0 1-.517.865.713.713 0 0 1-.856-.533.713.713 0 0 1 .669-.885Zm6.677 6.669h-.006c-.14.421-.221.86-.241 1.303-.034.911.058 1.465-.047 2.056-.105.59-.414 1.17-1.204 2.08-.937 1.085-2.424 1.924-4.143 2.207a8.908 8.908 0 0 1-1.012.559c1.337.503 2.736.531 3.844.166 1.953-.64 1.802-1.101 2.677-2.442.276-.422.594-.745.913-1.01.911.398 1.808.652 2.366.59.301-.697-.006-1.505-.517-2.27.419-1.303-.218-2.606-1.628-3.068a3.043 3.043 0 0 0-1.002-.171zM22.2 13.35c.194.22.169.56-.057.758a.538.538 0 0 1-.759-.042.538.538 0 0 1 .055-.759.56.56 0 0 1 .366-.136.523.523 0 0 1 .395.179z\"},\"child\":[]}]})(props);\n};\nexport function SiBigbasket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.543 12.989a3.352 3.352 0 0 0-.871-1.375 2.251 2.251 0 0 0-1.474-.503 2.276 2.276 0 0 0-1.541.536 2.953 2.953 0 0 0-.973 1.375 5.609 5.609 0 0 0-.335 1.845 5.42 5.42 0 0 0 .335 1.809c.192.548.528 1.034.973 1.407.441.339.985.516 1.541.503a2.08 2.08 0 0 0 1.945-1.072h-.002a4.92 4.92 0 0 0 .67-2.649 6.477 6.477 0 0 0-.268-1.876zM20.381.033H3.587A3.584 3.584 0 0 0 0 3.585V20.38a3.59 3.59 0 0 0 3.587 3.586h16.794c1.986 0 3.601-1.6 3.619-3.586V3.585A3.614 3.614 0 0 0 20.381.033zM10.64 3.034h1.911v5.744a3.47 3.47 0 0 0-1.911-.584v-5.16zm-.438 17.93a5.586 5.586 0 0 1-2.278-.369 3.522 3.522 0 0 1-1.174-.804 4.18 4.18 0 0 1-.335-.536l-.033-.134v.302C6.281 21.266 3.4 20.931 3.4 20.931V3.034h3.15v7.442h.034a3.675 3.675 0 0 1 1.541-1.309 4.825 4.825 0 0 1 2.079-.435 4.197 4.197 0 0 1 2.649.871 5.263 5.263 0 0 1 1.675 2.278v-.001c.372.951.565 1.963.569 2.984a8.418 8.418 0 0 1-.571 2.984 5.47 5.47 0 0 1-1.675 2.278 4.161 4.161 0 0 1-2.649.838zm9.828-3.111a5.47 5.47 0 0 1-1.675 2.278 4.173 4.173 0 0 1-2.649.838 5.587 5.587 0 0 1-2.278-.37 4.85 4.85 0 0 1-.362-.186c.444-.36.837-.778 1.168-1.245.353.127.726.189 1.101.185 2.38 0 3.15-2.502 3.15-4.484 0-1.96-.721-4.523-3.15-4.523a3.058 3.058 0 0 0-1.021.163 6.349 6.349 0 0 0-1.017-1.166c.107-.063.218-.121.331-.176a4.72 4.72 0 0 1 6.403 2.715l-.001.004c.373.951.566 1.963.571 2.984a8.409 8.409 0 0 1-.571 2.983z\"},\"child\":[]}]})(props);\n};\nexport function SiBigbluebutton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zM6.838 4.516c.743 0 1.378.364 1.904 1.091.526.728.787 1.602.787 2.625v6.76c0 .539.27.809.809.809h4.174c.538 0 .808-.27.808-.809v-3.205c0-.52-.27-.788-.808-.807h-.807c-1.041-.036-1.923-.308-2.64-.816-.719-.507-1.077-1.133-1.077-1.877h4.524c.97 0 1.796.342 2.478 1.024a3.374 3.374 0 0 1 1.024 2.476v3.205c0 .97-.342 1.797-1.024 2.479-.682.682-1.509 1.021-2.478 1.021h-4.174c-.97 0-1.795-.339-2.477-1.021a3.376 3.376 0 0 1-1.023-2.479V4.516Z\"},\"child\":[]}]})(props);\n};\nexport function SiBigcartel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 13.068v-1.006c0-.63.252-1.256.88-1.508l7.79-4.9c.503-.252.755-.88.755-1.51V0L12 6.03 2.575 0v12.69c0 3.394 1.51 6.284 4.02 7.917L11.875 24l5.28-3.393c2.513-1.51 4.02-4.398 4.02-7.916V7.036L12 13.068z\"},\"child\":[]}]})(props);\n};\nexport function SiBigcommerce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.645 13.663h3.027c.861 0 1.406-.474 1.406-1.235 0-.717-.545-1.234-1.406-1.234h-3.027c-.1 0-.187.086-.187.172v2.125c.015.1.086.172.187.172zm0 4.896h3.128c.961 0 1.535-.488 1.535-1.35 0-.746-.545-1.35-1.535-1.35h-3.128c-.1 0-.187.087-.187.173v2.34c.015.115.086.187.187.187zM23.72.053l-8.953 8.93h1.464c2.281 0 3.63 1.435 3.63 3 0 1.235-.832 2.14-1.722 2.541-.143.058-.143.259.014.316 1.033.402 1.765 1.48 1.765 2.742 0 1.78-1.19 3.202-3.5 3.202h-6.342c-.1 0-.187-.086-.187-.172V13.85L.062 23.64c-.13.13-.043.359.143.359h23.631a.16.16 0 0 0 .158-.158V.182c.043-.158-.158-.244-.273-.13z\"},\"child\":[]}]})(props);\n};\nexport function SiBilibili (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.813 4.653h.854c1.51.054 2.769.578 3.773 1.574 1.004.995 1.524 2.249 1.56 3.76v7.36c-.036 1.51-.556 2.769-1.56 3.773s-2.262 1.524-3.773 1.56H5.333c-1.51-.036-2.769-.556-3.773-1.56S.036 18.858 0 17.347v-7.36c.036-1.511.556-2.765 1.56-3.76 1.004-.996 2.262-1.52 3.773-1.574h.774l-1.174-1.12a1.234 1.234 0 0 1-.373-.906c0-.356.124-.658.373-.907l.027-.027c.267-.249.573-.373.92-.373.347 0 .653.124.92.373L9.653 4.44c.071.071.134.142.187.213h4.267a.836.836 0 0 1 .16-.213l2.853-2.747c.267-.249.573-.373.92-.373.347 0 .662.151.929.4.267.249.391.551.391.907 0 .355-.124.657-.373.906zM5.333 7.24c-.746.018-1.373.276-1.88.773-.506.498-.769 1.13-.786 1.894v7.52c.017.764.28 1.395.786 1.893.507.498 1.134.756 1.88.773h13.334c.746-.017 1.373-.275 1.88-.773.506-.498.769-1.129.786-1.893v-7.52c-.017-.765-.28-1.396-.786-1.894-.507-.497-1.134-.755-1.88-.773zM8 11.107c.373 0 .684.124.933.373.25.249.383.569.4.96v1.173c-.017.391-.15.711-.4.96-.249.25-.56.374-.933.374s-.684-.125-.933-.374c-.25-.249-.383-.569-.4-.96V12.44c0-.373.129-.689.386-.947.258-.257.574-.386.947-.386zm8 0c.373 0 .684.124.933.373.25.249.383.569.4.96v1.173c-.017.391-.15.711-.4.96-.249.25-.56.374-.933.374s-.684-.125-.933-.374c-.25-.249-.383-.569-.4-.96V12.44c.017-.391.15-.711.4-.96.249-.249.56-.373.933-.373Z\"},\"child\":[]}]})(props);\n};\nexport function SiBillboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.69685 11.02465h1.12413v3.41864H3.69685Zm1.35662-1.33669h1.12381v4.75533H5.05347Zm1.35641 0H7.5337v4.75533H6.40988Zm13.22037 1.68925v-.35256h-1.12397v3.41864h1.12397v-1.6293c0-.41916.21904-.64528.61843-.64528h.133v-1.17728c-.33918.01334-.58533.11975-.75143.38579zM4.2588 9.50287c-.35974 0-.65171.29187-.65171.65182 0 .35994.29197.65192.6517.65192.36006 0 .65182-.29198.65182-.65192 0-.35995-.29176-.65182-.65181-.65182zm12.89058 1.78207c-.15798-.17233-.52558-.31455-.80468-.31455-.84888 0-1.45782.55964-1.6069 1.39153-.1625-.79809-.8581-1.41215-1.70633-1.41215-.85636 0-1.55753.62123-1.71082 1.4343-.1488-.84507-.81354-1.40519-1.6379-1.40519-.30589 0-.55874.06655-.7783.21936v-1.5097H7.78063v4.75528h1.10409v-.3127c.26603.24615.55194.3592.90456.3592.75922 0 1.39843-.59433 1.53517-1.41357.1611.80168.85261 1.4111 1.70707 1.4111.84713 0 1.52653-.5965 1.69943-1.37761.14296.8532.81898 1.38689 1.62698 1.38689.2791 0 .58527-.0934.79145-.24615v.19284h1.12381v-1.49616a8.92817 8.92817 0 0 0-.0016-.1796 8.7632 8.7632 0 0 0 .0016-.17955v-1.55806H17.1494zm-7.58627 2.11732c-.35995 0-.6517-.29187-.6517-.65192 0-.35984.29175-.65165.6517-.65165.35984 0 .6517.29181.6517.65165.00006.36005-.2918.65192-.6517.65192zm3.46836-.0522c-.35973 0-.65181-.29208-.65181-.65192 0-.35978.29208-.65165.65181-.65165.35984 0 .6517.29187.6517.65165.00006.35979-.2917.65192-.6517.65192zm3.3773.02067c-.35995 0-.65145-.29208-.65145-.65192 0-.35978.29145-.65165.65145-.65165.36026 0 .6517.29187.6517.65165.00006.35984-.29144.65192-.6517.65192zm6.46693-3.6833v1.50976c-.21915-.15292-.4719-.21936-.77816-.21936-.93767 0-1.66916.72485-1.66916 1.76914 0 .98418.70492 1.7424 1.56307 1.7424.35224 0 .6382-.11315.90445-.35915v.3126H24V9.68743Zm-.66194 3.7064c-.35947 0-.65144-.29208-.65144-.65166 0-.36005.29187-.65202.65144-.65202.36005 0 .65192.29197.65192.65202 0 .35958-.29187.65166-.65192.65166zm-20.31164-2.415c-.306 0-.55864.06655-.77832.21936V9.68854H0v4.75528h1.10399v-.3127c.26603.24615.55204.3592.90466.3592.85783 0 1.5628-.75843 1.5628-1.74261 0-1.04393-.7316-1.76888-1.66932-1.76888zm-.11965 2.42343c-.35984 0-.6517-.29187-.6517-.65192 0-.35984.29186-.65165.6517-.65165.35995 0 .65171.29181.65171.65165 0 .36005-.29176.65192-.6517.65192z\"},\"child\":[]}]})(props);\n};\nexport function SiBim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.327 6.3015c-1.8378 0-3.3266 1.4908-3.3266 3.3283v4.7424c0 1.8375 1.4888 3.3263 3.3265 3.3263h17.347c1.8376 0 3.3265-1.4888 3.3265-3.3263V9.6298c0-1.8375-1.4889-3.3283-3.3265-3.3283H12.353L11.06 8.1922 9.7863 6.3015Zm1.5742 2.1896c.8137-.0085 1.57.0699 2.01.2422.7978.3017 1.254.96 1.293 1.8067.0294.612-.2962 1.1623-.791 1.5801.5608.3311.9783.8269.9649 1.5392-.0257 1.2596-1.2067 2.0391-3.3362 1.9903-1.1473-.0269-1.7047-.0285-2.3694-.1739V8.6395c1.1595-.1564 1.288-.14 2.2287-.1484Zm9.5223.1113h1.9903l1.2833 3.2247 1.2735-3.2247h2.0511l.5507 6.8675h-1.9707l-.1446-3.9123-1.7716 3.8986-1.6466-3.885-.3418 3.8987h-2.0158Zm-4.4732.0234h2.0901v6.8675h-2.09Zm-5.2347 1.4298v1.4532h.8086a.7257.7257 0 0 0 .7266-.7266c0-.4008-.2965-.7266-.7266-.7266zm0 2.7872v1.1973h.7793c.4105.0232.9576-.1498.963-.586-.0245-.4923-.5244-.637-.9337-.6113z\"},\"child\":[]}]})(props);\n};\nexport function SiBinance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.624 13.9202l2.7175 2.7154-7.353 7.353-7.353-7.352 2.7175-2.7164 4.6355 4.6595 4.6356-4.6595zm4.6366-4.6366L24 12l-2.7154 2.7164L18.5682 12l2.6924-2.7164zm-9.272.001l2.7163 2.6914-2.7164 2.7174v-.001L9.2721 12l2.7164-2.7154zm-9.2722-.001L5.4088 12l-2.6914 2.6924L0 12l2.7164-2.7164zM11.9885.0115l7.353 7.329-2.7174 2.7154-4.6356-4.6356-4.6355 4.6595-2.7174-2.7154 7.353-7.353z\"},\"child\":[]}]})(props);\n};\nexport function SiBiolink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.95192 4.6371V2.75605c0-.26354-.14223-.39521-.42679-.39521H2.2289V5.0323h1.29624c.28456 0 .4268-.13168.4268-.3952zm0 4.2839V6.96087c0-.13696-.03158-.23187-.09482-.28456-.06324-.06324-.1739-.09482-.33197-.09482H2.2289V9.3162h1.29624c.28456 0 .4268-.13168.4268-.39521zM0 .81166h4.17323c1.33842 0 2.00763.57962 2.00763 1.73882v1.77049c0 .77986-.23714 1.2699-.71143 1.4701.47429.17917.71143.63235.71143 1.35953v1.96013c0 1.1698-.6692 1.75466-2.00763 1.75466H0Zm7.56538 0h2.24468v10.05373H7.56538zm5.66357 0h2.11829c1.32777 0 1.9917.57962 1.9917 1.73882v6.56025c0 1.1698-.66393 1.75466-1.9917 1.75466h-2.1183c-1.33832 0-2.00753-.58486-2.00753-1.75466V2.55048c0-1.1592.6692-1.73882 2.00754-1.73882zm1.84948 7.99868V2.8667c0-.26353-.13696-.3952-.41096-.3952h-.75876c-.28455 0-.42678.13167-.42678.3952v5.94364c0 .26354.14223.39521.42678.39521h.75876c.274 0 .41096-.13167.41096-.3952zm5.03262 2.02892c-.75304 0-1.3634-.61045-1.3634-1.3634V9.3879c0-.75304.61036-1.3634 1.3634-1.3634.75295 0 1.3634.61036 1.3634 1.3634v.08796c0 .75295-.61045 1.3634-1.3634 1.3634zM2.25329 21.52851h2.8928v1.65983H.00859V13.13461h2.2447zm3.66888-8.3939h2.24469v10.05373h-2.2447zm7.9241 0h2.07078v10.05373h-2.02338l-2.19727-6.02272v6.02272H9.64144V13.13461h2.03921l2.16561 6.00698zm10.15373 0-2.02338 4.96367L24 23.18834h-2.43433l-1.94439-5.09006 1.94439-4.96367zm-6.67082 10.05373V13.13461h2.24469v10.05373Z\"},\"child\":[]}]})(props);\n};\nexport function SiBiome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 1.608-5.346 9.259a12.069 12.069 0 0 1 6.326-.219l1.807.426-1.7 7.208-1.809-.427c-2.224-.524-4.361.644-5.264 2.507l-1.672-.809c1.276-2.636 4.284-4.232 7.364-3.505l.847-3.592A10.211 10.211 0 0 0 0 22.392h24L12 1.608Z\"},\"child\":[]}]})(props);\n};\nexport function SiBisecthosting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.083 5.023 13.02.302a2.717 2.717 0 0 0-2.488 0L1.917 4.789A2.06 2.06 0 0 0 .805 6.623l.006 10.76c0 .773.426 1.476 1.112 1.834l8.59 4.479c.38.198.813.304 1.245.304v-.002c.432 0 .862-.108 1.244-.306l9.083-4.735a2.053 2.053 0 0 0 1.11-1.835V6.857a2.06 2.06 0 0 0-1.112-1.834zm.222 12.103c.003.441-.24.847-.632 1.05l-9.085 4.736a1.81 1.81 0 0 1-1.664 0l-8.59-4.48a1.184 1.184 0 0 1-.637-1.048L1.691 6.625c0-.44.246-.844.636-1.048l8.615-4.491a1.828 1.828 0 0 1 1.666 0l9.063 4.725c.39.205.634.608.634 1.048v10.267zM4.666 9.2v1.088L9.86 9.44V7.954L4.666 9.2zm4.111-.54.604-.132v.552l-.604.106V8.66zm-3.455.76 2.55-.562v.494l-2.55.46V9.42zm4.541 6.74v-1.486l-5.195-.85v1.088l5.195 1.248zm-1.986-.904-2.553-.562v-.395l2.553.46v.497zm1.506.33-.602-.132v-.526l.602.106v.552zm11.583-8.827-2.33-1.214-1.853.694V4.58L13.69 2.966a4.133 4.133 0 0 0-3.827 0l-6.83 3.561a.298.298 0 0 0-.16.26l.007 10.401c0 .11.06.21.16.26l6.805 3.547c1.2.626 2.627.626 3.827 0l3.1-1.614v-1.66l1.852.694 2.348-1.225a.298.298 0 0 0 .16-.262l-.006-9.908a.288.288 0 0 0-.16-.26zM4.398 10.871V8.75l5.541-1.494a.23.23 0 0 1 .29.22V9.83c0 .204-.152.38-.356.402l-5.475.64v-.001zm5.477 3.01a.404.404 0 0 1 .359.4v2.355a.23.23 0 0 1-.29.22l-5.542-1.494v-2.12l5.473.64zm3.137 6.962s.428-.612.48-1.74V14.62s.042-1.68-1.334-2.601c1.376-.92 1.336-2.6 1.336-2.6V5.096c0-1.272-.488-1.975-.488-1.975l3.307 1.725v5.061c0 .076.06.14.136.146l2.14.154a.15.15 0 0 0 .16-.148V6.12l1.967 1.02v9.684L18.75 17.85v-4.247a.15.15 0 0 0-.16-.148l-2.14.156a.148.148 0 0 0-.137.148v5.366l-3.3 1.72v-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiBit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.98 12.959q0 .897-.509 1.42-.51.52-1.456.52-.34 0-.643-.072-.303-.073-.546-.194-.291-.17-.328-.364-.036-.194-.036-.388V9.804q0-.219.134-.328.133-.109.4-.109t.4.11q.134.108.134.327v1.553q.145-.097.352-.158.206-.06.424-.06.728 0 1.202.473.473.473.473 1.347zm-2.45.946q.097.073.23.097.134.024.255.024.413 0 .631-.255.219-.254.219-.74 0-.485-.219-.752-.218-.267-.607-.267-.145 0-.279.049-.133.048-.23.121zm4.465-3.81q0 .267-.182.449t-.449.182q-.291 0-.473-.182t-.182-.449q0-.291.182-.461.182-.17.473-.17.267 0 .449.17t.182.461zm-.097 1.48v2.864q0 .218-.134.327-.133.11-.4.11t-.413-.11q-.145-.109-.145-.327v-2.864q0-.218.145-.327.146-.11.413-.11t.4.11q.134.109.134.327zm3.276 2.33q.218 0 .303.182.085.182.085.328 0 .072-.048.157-.049.085-.146.158-.146.073-.364.121-.218.049-.437.049-.437 0-.703-.158-.267-.158-.413-.4-.121-.219-.146-.473-.024-.255-.024-.546v-1.19h-.291q-.219 0-.328-.12-.109-.122-.109-.34 0-.219.11-.34.108-.122.327-.122h.291v-.703q0-.219.134-.328.133-.11.4-.11t.4.11q.134.11.134.328v.703h.68q.218 0 .327.122.11.121.11.34 0 .218-.11.34-.11.12-.328.12h-.68v1.19q0 .12.013.254.012.134.06.255.05.073.122.11.073.036.194.036.049 0 .121-.012.073-.013.122-.013.048-.024.097-.036.048-.012.097-.012zM.012 12.012q0-2.5.947-4.683.946-2.184 2.572-3.81Q5.157 1.893 7.34.946 9.525 0 12 0t4.66.946q2.183.947 3.821 2.573 1.638 1.626 2.56 3.81.947 2.184.947 4.683 0 2.475-.947 4.66-.922 2.183-2.56 3.81-1.638 1.625-3.822 2.572Q14.475 24 12 24q-2.475 0-4.66-.946-2.183-.947-3.81-2.573-1.625-1.626-2.571-3.81-.947-2.184-.947-4.659ZM12 .874q-2.305 0-4.32.873-2.038.874-3.542 2.39-1.505 1.517-2.379 3.531-.873 2.039-.873 4.344t.873 4.32q.874 2.038 2.379 3.543 1.504 1.504 3.542 2.378 2.015.873 4.32.873t4.344-.873q2.014-.874 3.518-2.378 1.505-1.505 2.379-3.543.898-2.015.898-4.32t-.898-4.344q-.874-2.014-2.379-3.53-1.504-1.517-3.518-2.39Q14.305.873 12 .873ZM8.384 3.422q.073.17.024.34-.048.17-.218.266-1.383.728-2.342 1.614-.958.886-1.735 2.342-.097.17-.267.218-.17.049-.315-.024-.17-.097-.219-.267-.048-.17.025-.315.849-1.602 1.905-2.585 1.055-.983 2.536-1.76.17-.096.34-.036.17.061.266.207z\"},\"child\":[]}]})(props);\n};\nexport function SiBitbucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.778 1.213a.768.768 0 00-.768.892l3.263 19.81c.084.5.515.868 1.022.873H19.95a.772.772 0 00.77-.646l3.27-20.03a.768.768 0 00-.768-.891zM14.52 15.53H9.522L8.17 8.466h7.561z\"},\"child\":[]}]})(props);\n};\nexport function SiBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.638 14.904c-1.602 6.43-8.113 10.34-14.542 8.736C2.67 22.05-1.244 15.525.362 9.105 1.962 2.67 8.475-1.243 14.9.358c6.43 1.605 10.342 8.115 8.738 14.548v-.002zm-6.35-4.613c.24-1.59-.974-2.45-2.64-3.03l.54-2.153-1.315-.33-.525 2.107c-.345-.087-.705-.167-1.064-.25l.526-2.127-1.32-.33-.54 2.165c-.285-.067-.565-.132-.84-.2l-1.815-.45-.35 1.407s.975.225.955.236c.535.136.63.486.615.766l-1.477 5.92c-.075.166-.24.406-.614.314.015.02-.96-.24-.96-.24l-.66 1.51 1.71.426.93.242-.54 2.19 1.32.327.54-2.17c.36.1.705.19 1.05.273l-.51 2.154 1.32.33.545-2.19c2.24.427 3.93.257 4.64-1.774.57-1.637-.03-2.58-1.217-3.196.854-.193 1.5-.76 1.68-1.93h.01zm-3.01 4.22c-.404 1.64-3.157.75-4.05.53l.72-2.9c.896.23 3.757.67 3.33 2.37zm.41-4.24c-.37 1.49-2.662.735-3.405.55l.654-2.64c.744.18 3.137.524 2.75 2.084v.006z\"},\"child\":[]}]})(props);\n};\nexport function SiBitcoincash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.84 11.22-.688-2.568c.728-.18 2.839-1.051 3.39.506.27 1.682-1.978 1.877-2.702 2.062zm.289 1.313.755 2.829c.868-.228 3.496-.46 3.241-2.351-.433-1.666-3.125-.706-3.996-.478zM24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12zm-6.341.661c-.183-1.151-1.441-2.095-2.485-2.202.643-.57.969-1.401.57-2.488-.603-1.368-1.989-1.66-3.685-1.377l-.546-2.114-1.285.332.536 2.108c-.338.085-.685.158-1.029.256L9.198 5.08l-1.285.332.545 2.114c-.277.079-2.595.673-2.595.673l.353 1.377s.944-.265.935-.244c.524-.137.771.125.886.372l1.498 5.793c.018.168-.012.454-.372.551.021.012-.935.241-.935.241l.14 1.605s2.296-.588 2.598-.664l.551 2.138 1.285-.332-.551-2.153c.353-.082.697-.168 1.032-.256l.548 2.141 1.285-.332-.551-2.135c1.982-.482 3.38-1.73 3.094-3.64z\"},\"child\":[]}]})(props);\n};\nexport function SiBitcoinsv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.648 14.423l.003-.004a1.34 1.34 0 0 1-.498.659c-.269.189-.647.338-1.188.364l-1.99.004v-2.93c.288.008 1.565-.013 2.119.015.722.035 1.171.321 1.41.668.262.351.293.82.144 1.224zm-2.129-3.261c.503-.024.852-.162 1.101-.336.214-.146.375-.367.46-.611.134-.375.107-.81-.136-1.135-.223-.319-.638-.584-1.306-.616-.495-.026-1.413-.003-1.664-.01v2.709c.025.004 1.539-.001 1.545-.001zM24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12zm-6.65 2.142c.022-1.477-1.24-2.332-1.908-2.572.715-.491 1.206-1.043 1.206-2.085 0-1.655-1.646-2.43-2.647-2.529-.082-.009-.31-.013-.31-.013V5.361h-1.633l.004 1.583H10.97V5.367H9.31v1.569c-.292.007-2.049.006-2.049.006v1.401h.571c.601.016.822.362.798.677v6.041a.408.408 0 0 1-.371.391c-.249.011-.621 0-.621 0l-.32 1.588h1.996v1.6h1.661v-1.591h1.091v1.594h1.624v-1.588c1.899.05 3.643-1.071 3.66-2.913z\"},\"child\":[]}]})(props);\n};\nexport function SiBitcomet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.996 0C5.37.002.002 5.375.004 12v.009c.003 6.625 5.375 11.993 12 11.991 6.625-.002 11.994-5.375 11.992-12v-.009C23.993 5.366 18.62-.002 11.996 0zM3.008 14.396c.235-2.436.696-4.614 1.422-6.467a15.261 15.261 0 0 1 2.238-2.406 16.578 16.578 0 0 0-1.68 4.674c-.731 1.4-1.4 2.88-1.98 4.199zm6.06 2.862c-.833-2.164-.764-4.942-.452-7.522a17.028 17.028 0 0 1 1.661-2.777c.13.721.246 1.49.356 2.28-.841 2.033-1.457 4.722-1.564 8.019zm6.64 0c-.117-3.624-.853-6.498-1.824-8.587.087-.589.176-1.165.274-1.712.883 1.19 1.561 2.484 2.114 3.82.204 2.268.159 4.604-.564 6.479zm3.464-8.188a16.704 16.704 0 0 0-1.404-3.547c1.088.933 2.054 2.054 2.928 3.383.527 1.629.878 3.47 1.073 5.49-.739-1.68-1.621-3.623-2.597-5.326zm.83-1.945a16.735 16.735 0 0 0-.84-.953l-.06-.057a15.323 15.323 0 0 0-.87-.839c-.1-.087-.209-.167-.311-.253-.238-.2-.474-.4-.73-.587a14.579 14.579 0 0 0-1.176-.779c.218.307.423.612.616.917l.048.081c.175.279.342.556.497.834l.017.033c.333.598.621 1.194.869 1.792 1.494 3.606 1.508 7.26.81 11.522-.562-3.39-1.284-6.707-2.781-9.661a20.003 20.003 0 0 0-1.028-1.783c-.088-.134-.184-.266-.277-.398a15.964 15.964 0 0 0-.913-1.194c-.08.387-.154.8-.227 1.214-.05.288-.1.578-.146.875-.587 3.696-.938 8.202-1.282 12.078-.329-3.698-.664-7.967-1.203-11.562a65.458 65.458 0 0 0-.205-1.283c-.079-.453-.16-.9-.247-1.322-.347.405-.66.825-.958 1.252-.283.411-.546.832-.792 1.26-1.823 3.163-2.632 6.799-3.25 10.524-.622-3.798-.672-7.112.38-10.34.256-.788.579-1.572.975-2.355l.091-.173c.162-.31.335-.622.52-.933l.16-.268c.228-.369.468-.738.731-1.11a14.497 14.497 0 0 0-1.433.982c-.21.16-.412.327-.61.496-.134.115-.272.229-.4.347-.253.232-.495.47-.728.715l-.007.007C3.63 7.897 2.472 9.86 1.575 11.811 1.903 4.493 6.516.324 12.218.324c5.703 0 10.315 4.169 10.643 11.488-.739-1.608-1.658-3.22-2.858-4.687z\"},\"child\":[]}]})(props);\n};\nexport function SiBitdefender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.685 0v.357l1.232 1.046c1.477 1.204 1.67 1.439 1.67 2.526V24h8.646c4.537 0 9.083-1.629 9.083-6.849 0-3.082-2.174-5.458-5.186-5.797v-.067c2.475-.745 4.169-2.54 4.169-5.253 0-4.372-3.73-6.032-7.349-6.032L1.686 0zm7.176 3.664h3.524c2.383 0 3.121.327 3.844 1.013.548.521.799 1.237.801 2.07 0 .775-.267 1.466-.831 2.004-.705.676-1.674 1.011-3.443 1.011H8.862V3.664zm0 9.758h4.099c3.456 0 5.085.881 5.085 3.39 0 3.153-3.055 3.526-5.256 3.526H8.86v-6.916z\"},\"child\":[]}]})(props);\n};\nexport function SiBitly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.055 21.26c-1.345.022-2.325-.41-2.386-1.585-.025-.44-.018-.91.002-1.192.137-1.716 1.333-2.95 2.53-3.19 1.482-.294 2.455.38 2.455 2.31 0 1.303-.36 3.618-2.59 3.657h-.016zM11.923 0C5.32 0 0 5.297 0 12.224c0 3.594 1.92 7.062 4.623 9.147.52.4 1.138.367 1.497.02.297-.285.272-.984-.285-1.475-2.16-1.886-3.652-4.76-3.652-7.635 0-5.15 4.58-9.49 9.74-9.49 6.28 0 9.636 5.102 9.636 9.43 0 2.65-1.29 5.84-3.626 7.874.015 0 .493-.942.493-2.784 0-3.13-1.976-4.836-4.28-4.836-1.663 0-2.667.598-3.34 1.152 0-1.272.045-3.652.045-3.652 0-1.572-.54-2.83-2.47-2.86-1.11-.015-1.932.493-2.44 1.647-.18.436-.12.916.254 1.125.3.18.81.046 1.046-.284.165-.21.254-.254.404-.24.24.03.257.405.257.66.014.193.193 2.903.088 9.865C7.98 21.798 9.493 24 13.1 24c1.56 0 2.756-.435 4.493-1.422C20.243 21.08 24 17.758 24 12.128 23.953 5.045 18.265 0 11.933 0\"},\"child\":[]}]})(props);\n};\nexport function SiBitrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.5154 13.4558c-.2744-1.8854-.692-3.7828-.9904-5.0477-.358-1.5035-1.6349-2.5775-3.1742-2.673-1.5155-.0955-4.0215-.2028-7.3627-.2028-3.3413 0-5.8472.1074-7.3627.2028-1.5394.0955-2.8163 1.1695-3.1743 2.673-.2983 1.265-.716 3.1623-.9904 5.0477-.191 1.2769-.3341 2.7685-.4535 4.463-.0596.9427.2506 1.8496.8831 2.5537.6324.704 1.4916 1.1217 2.4463 1.1575 2.0763.0955 5.2625.2148 8.6634.2148 3.401 0 6.587-.1193 8.6634-.2148.9427-.0477 1.8139-.4535 2.4463-1.1575.6325-.704.9427-1.611.883-2.5537-.1312-1.6945-.2863-3.198-.4773-4.463zm-1.6467 5.9188c-.3342.37-.7876.5848-1.2888.6086-2.0644.0955-5.2148.2148-8.5918.2148-3.3771 0-6.5274-.1193-8.5919-.2148-.5011-.0239-.9546-.2386-1.2887-.6086-.3342-.3699-.5012-.8472-.4654-1.3484.1074-1.6468.2506-3.1026.4415-4.3317.2625-1.8258.6683-3.6754.9666-4.9045.191-.7995.8592-1.3604 1.6826-1.42C6.2244 7.2745 8.6945 7.167 12 7.167c3.2935 0 5.7756.1074 7.2673.2029.8114.0477 1.4916.6205 1.6825 1.42.2864 1.2291.6921 3.0787.9666 4.9045.179 1.2291.3222 2.685.4415 4.3317 0 .5012-.167.9785-.4892 1.3484zM11.988 4.1958c.5608 0 1.0262-.4535 1.0262-1.0143 0-.561-.4534-1.0263-1.0262-1.0263-.5609 0-1.0263.4535-1.0263 1.0263 0 .5489.4654 1.0143 1.0263 1.0143zm5.9665 7.84c-.9069 0-1.6468.7399-1.6468 1.6468h3.2936c0-.907-.728-1.6468-1.6468-1.6468zm-11.933 0c-.907 0-1.6468.7399-1.6468 1.6468h3.2935c0-.907-.728-1.6468-1.6468-1.6468zm5.9665 5.9665c1.4677 0 2.661-1.1933 2.661-2.661h-5.334c0 1.4558 1.1933 2.661 2.673 2.661z\"},\"child\":[]}]})(props);\n};\nexport function SiBittorrent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0002.0014C5.3735.0004.001 5.3718 0 11.9984a11.9986 11.9986 0 0 0 1.7006 6.1593.132.132 0 0 0 .1128.0384c.0288 0 .048-.0696.048-.1104a.739.739 0 0 0-.0336-.1296 22.14 22.14 0 0 1-.4224-2.2941 9.8389 9.8389 0 0 1 .4272-3.866c1.1014-3.3956 3.3332-5.6993 6.664-6.9376a10.302 10.302 0 0 1 3.398-.5951.7823.7823 0 0 1 .8567.763c0 .4488-.3431.7368-.8495.7656a12.853 12.853 0 0 0-1.6078.1656 8.6918 8.6918 0 0 0-4.8642 2.6397C3.3468 10.8169 2.55 13.4566 3.03 16.4539a8.6846 8.6846 0 0 0 2.4454 4.785 8.9414 8.9414 0 0 0 6.3688 2.7597h.156a11.9507 11.9507 0 0 0 5.613-1.3918h-5.5938a8.3988 8.3988 0 0 1-1.4086-.1296c-4.1387-.7467-6.915-4.673-6.2393-8.8238.5627-3.5271 3.4722-6.2073 7.0336-6.4793a7.6407 7.6407 0 0 1 2.1597.1368.7487.7487 0 0 1 .6168.876.7847.7847 0 0 1-.96.6023 6.0836 6.0836 0 0 0-.8014-.1152 6.328 6.328 0 0 0-2.899.504c-2.5052 1.0803-4.0095 3.6719-3.705 6.3832.3566 3.1366 3.0056 5.5091 6.1624 5.5194h6.9904c.6791 0 .84.0144 1.1375-.24.382-.3525.742-.7284 1.0775-1.1255h-9.3302a4.3483 4.3483 0 0 1-2.0733-.516c-2.4037-1.1787-3.3968-4.0828-2.218-6.4865s4.0828-3.3968 6.4866-2.218c.1195.0586.2365.122.3508.1903a.7511.7511 0 0 1 .3168 1.044.7655.7655 0 0 1-1.0655.2711c-1.5988-.9125-3.6346-.356-4.547 1.2428a3.3332 3.3332 0 0 0-.3964 2.1792c.2433 1.6186 1.6388 2.8127 3.2756 2.8029 3.3596.0336 6.7193 0 10.0789 0a.4224.4224 0 0 0 .2807-.144c3.3584-5.7126 1.45-13.0661-4.2626-16.4245a11.9986 11.9986 0 0 0-6.0802-1.655z\"},\"child\":[]}]})(props);\n};\nexport function SiBitwarden (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.75 0A3.75 3.75 0 000 3.75v16.5A3.75 3.75 0 003.75 24h16.5A3.75 3.75 0 0024 20.25V3.75A3.75 3.75 0 0020.25 0zm1.36 2.92h13.8c.208 0 .388.076.54.228a.737.737 0 01.227.539v9.2c0 .687-.134 1.367-.401 2.042a7.618 7.618 0 01-.995 1.797 11.097 11.097 0 01-1.413 1.528c-.547.495-1.052.906-1.515 1.234-.464.327-.947.636-1.45.928-.503.291-.86.489-1.072.593-.212.104-.381.184-.51.24a.687.687 0 01-.31.071.688.688 0 01-.312-.072 13.784 13.784 0 01-.51-.24 20.61 20.61 0 01-1.071-.592 19.133 19.133 0 01-1.45-.928 16.457 16.457 0 01-1.515-1.234 11.11 11.11 0 01-1.414-1.528 7.617 7.617 0 01-.994-1.797 5.502 5.502 0 01-.401-2.042v-9.2c0-.208.076-.387.227-.54a.737.737 0 01.54-.227zm6.9 2.3v13.62c.95-.502 1.801-1.05 2.552-1.64 1.877-1.47 2.815-2.907 2.815-4.313V5.22Z\"},\"child\":[]}]})(props);\n};\nexport function SiBitwig (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.15 7.782a1.59 1.59 0 1 1 3.181 0 1.59 1.59 0 0 1-3.181 0zm5.741 1.591a1.59 1.59 0 1 0 0-3.181 1.59 1.59 0 0 0 0 3.181zm4.218 0a1.59 1.59 0 1 0 0-3.181 1.59 1.59 0 0 0 0 3.181zm4.15 0a1.59 1.59 0 1 0 0-3.181 1.59 1.59 0 0 0 0 3.181zM5.741 10.409a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181zm8.368 0a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181zm4.15 0a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181zm4.15 3.182a1.59 1.59 0 1 0 0-3.181 1.59 1.59 0 0 0 0 3.181zM1.591 10.409a1.591 1.591 0 1 0 0 3.182 1.591 1.591 0 0 0 0-3.182zm4.15 4.218a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181zm12.518 0a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181zm4.15 0a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181zm-20.818 0a1.59 1.59 0 1 0 0 3.181 1.59 1.59 0 0 0 0-3.181m8.3-4.218a1.591 1.591 0 1 0 0 3.182 1.591 1.591 0 0 0 0-3.182Z\"},\"child\":[]}]})(props);\n};\nexport function SiBlackberry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.05 3.54L1.17 7.7H4.45C6.97 7.7 7.73 6.47 7.73 5.36C7.73 4.54 7.26 3.54 5.21 3.54H2.05M10.54 3.54L9.66 7.7H12.94C15.5 7.7 16.22 6.47 16.22 5.36C16.22 4.54 15.75 3.54 13.7 3.54H10.54M18.32 7.23L17.39 11.39H20.67C23.24 11.39 24 10.22 24 9.05C24 8.23 23.53 7.23 21.5 7.23H18.32M.88 9.8L0 13.96H3.28C5.85 13.96 6.56 12.73 6.56 11.62C6.56 10.8 6.09 9.8 4.04 9.8H.88M9.43 9.8L8.5 13.96H11.77C14.34 13.96 15.11 12.73 15.11 11.62C15.11 10.8 14.64 9.8 12.59 9.8H9.42M17.09 13.73L16.22 17.88H19.5C22 17.88 22.77 16.71 22.77 15.54C22.77 14.72 22.3 13.73 20.26 13.73H17.09M8.2 16.3L7.32 20.46H10.6C13.11 20.46 13.87 19.23 13.87 18.12C13.87 17.3 13.41 16.3 11.36 16.3H8.2Z\"},\"child\":[]}]})(props);\n};\nexport function SiBlackmagicdesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.385 0c-1.15 0-2.076.93-2.076 2.076V5.31c0 1.148.929 2.076 2.076 2.076h3.23c1.15 0 2.076-.93 2.076-2.076V2.076A2.074 2.074 0 0 0 13.615 0h-3.23zm0 .924h3.23c.638 0 1.155.514 1.155 1.152V5.31c0 .638-.516 1.152-1.155 1.152h-3.23A1.152 1.152 0 0 1 9.23 5.309V2.076c0-.638.516-1.152 1.155-1.152zm0 7.385c-1.15 0-2.076.929-2.076 2.076v3.23c0 1.15.929 2.076 2.076 2.076h3.23c1.15 0 2.076-.929 2.076-2.076v-3.23c0-1.15-.929-2.076-2.076-2.076h-3.23zm0 .921h3.23c.638 0 1.155.516 1.155 1.155v3.23c0 .638-.516 1.155-1.155 1.155h-3.23a1.154 1.154 0 0 1-1.155-1.155v-3.23c0-.638.516-1.155 1.155-1.155zm0 7.385c-1.15 0-2.076.93-2.076 2.076v3.233c0 1.149.929 2.076 2.076 2.076h3.23c1.15 0 2.076-.93 2.076-2.076V18.69a2.075 2.075 0 0 0-2.076-2.076h-3.23zm0 .924h3.23c.638 0 1.155.514 1.155 1.152v3.233c0 .638-.516 1.152-1.155 1.152h-3.23a1.152 1.152 0 0 1-1.155-1.152V18.69c0-.638.516-1.152 1.155-1.152Z\"},\"child\":[]}]})(props);\n};\nexport function SiBlazemeter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.04 17.135c-.256 0-.352-.128-.32-.352l1.696-9.566c.032-.224.16-.352.416-.352h3.584c2.4 0 3.584.736 3.584 2.24 0 .607-.16 1.151-.48 1.6-.32.48-.768.8-1.344.991.384.096.736.32.96.672.256.32.384.768.384 1.28 0 1.215-.416 2.08-1.248 2.655-.832.544-1.952.832-3.328.832H15.04zm3.968-1.664c1.664 0 2.496-.608 2.496-1.823 0-.384-.16-.64-.448-.832-.288-.192-.8-.256-1.472-.256h-2.08l-.512 2.88h2.016v.031zm.768-4.383c1.472 0 2.176-.544 2.176-1.663 0-.352-.128-.576-.416-.736-.288-.16-.736-.224-1.344-.224h-1.984l-.48 2.623h2.048zm-6.88-.256a.608.608 0 0 0-.608-.608H.608a.608.608 0 1 0 0 1.216h11.648c.352 0 .64-.256.64-.608zm1.344-2.175a.608.608 0 0 0-.608-.608H6.464a.608.608 0 1 0 0 1.216h7.168c.32 0 .608-.256.608-.608zm-2.464 6.654a.608.608 0 0 0-.608-.608H8.256a.608.608 0 1 0 0 1.216h2.912c.32 0 .608-.256.608-.608zm-.864-2.271a.608.608 0 0 0-.608-.608H3.2a.608.608 0 1 0 0 1.216h7.104a.63.63 0 0 0 .608-.608z\"},\"child\":[]}]})(props);\n};\nexport function SiBlazor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.8337 8.1013a13.9123 13.9123 0 0 1-13.6424 11.72 10.1053 10.1053 0 0 1-1.994-.121 6.111 6.111 0 0 1-5.0824-5.7607 5.9344 5.9344 0 0 1 11.867-.0838c.025.9835-.4011 1.8464-1.277 1.8713-.9356 0-1.3742-.6677-1.3742-1.5674v-2.5001a1.5313 1.5313 0 0 0-1.5196-1.5328H8.7152a3.6481 3.6481 0 1 0 2.6948 6.0794l.0733-.1093.0734.1213a2.5807 2.5807 0 0 0 2.2007 1.0479 2.9088 2.9088 0 0 0 2.6947-3.0406 7.912 7.912 0 0 0-.217-1.9324 7.4043 7.4043 0 0 0-14.6395 1.6033 7.4971 7.4971 0 0 0 7.307 7.4043s.549.05 1.1677.0357a15.8029 15.8029 0 0 0 8.4747-2.5283c.036-.025.0719.025.048.0614a12.4392 12.4392 0 0 1-9.6901 3.9625A8.7442 8.7442 0 0 1 .003 13.8603a9.049 9.049 0 0 1 3.6349-7.2471 8.8634 8.8634 0 0 1 5.229-1.7262h2.813a7.9145 7.9145 0 0 0 5.8386-2.5777.1093.1093 0 0 1 .0594-.034.1115.1115 0 0 1 .1195.0522.113.113 0 0 1 .0155.0672 7.9345 7.9345 0 0 1-1.2274 3.5493.1075.1075 0 0 0-.0132.0609.1098.1098 0 0 0 .0724.0945.109.109 0 0 0 .0619.0033 8.5054 8.5054 0 0 0 5.9134-4.876.1554.1554 0 0 1 .0546-.0527.1497.1497 0 0 1 .147 0 .1535.1535 0 0 1 .0546.0527 10.779 10.779 0 0 1 1.0575 6.8746zm-14.9383 3.527a2.188 2.188 0 1 0 2.1877 2.1878v-2.0425a.1577.1577 0 0 0-.1497-.1497Z\"},\"child\":[]}]})(props);\n};\nexport function SiBlender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.51 13.214c.046-.8.438-1.506 1.03-2.006a3.424 3.424 0 0 1 2.212-.79c.85 0 1.631.3 2.211.79.592.5.983 1.206 1.028 2.005.045.823-.285 1.586-.865 2.153a3.389 3.389 0 0 1-2.374.938 3.393 3.393 0 0 1-2.376-.938c-.58-.567-.91-1.33-.865-2.152M7.35 14.831c.006.314.106.922.256 1.398a7.372 7.372 0 0 0 1.593 2.757 8.227 8.227 0 0 0 2.787 2.001 8.947 8.947 0 0 0 3.66.76 8.964 8.964 0 0 0 3.657-.772 8.285 8.285 0 0 0 2.785-2.01 7.428 7.428 0 0 0 1.592-2.762 6.964 6.964 0 0 0 .25-3.074 7.123 7.123 0 0 0-1.016-2.779 7.764 7.764 0 0 0-1.852-2.043h.002L13.566 2.55l-.02-.015c-.492-.378-1.319-.376-1.86.002-.547.382-.609 1.015-.123 1.415l-.001.001 3.126 2.543-9.53.01h-.013c-.788.001-1.545.518-1.695 1.172-.154.665.38 1.217 1.2 1.22V8.9l4.83-.01-8.62 6.617-.034.025c-.813.622-1.075 1.658-.563 2.313.52.667 1.625.668 2.447.004L7.414 14s-.069.52-.063.831zm12.09 1.741c-.97.988-2.326 1.548-3.795 1.55-1.47.004-2.827-.552-3.797-1.538a4.51 4.51 0 0 1-1.036-1.622 4.282 4.282 0 0 1 .282-3.519 4.702 4.702 0 0 1 1.153-1.371c.942-.768 2.141-1.183 3.396-1.185 1.256-.002 2.455.41 3.398 1.175.48.391.87.854 1.152 1.367a4.28 4.28 0 0 1 .522 1.706 4.236 4.236 0 0 1-.239 1.811 4.54 4.54 0 0 1-1.035 1.626\"},\"child\":[]}]})(props);\n};\nexport function SiBlockbench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.651 3.277c-.25.002-1.009.057-3.47.226l-9.113.627c-3.044.208-2.743.18-2.888.27-.163.102-.254.274-.308.58-.451 2.177-.812 3.74-1.104 5.007-.015.04-.046.178-.07.306-.038.218-.037.239.012.307.105.144.23.176 1.14.294 4.78.63 8.905 1.164 13.412 1.765.931.124.948.125.99.022.032-.081.091-.36.207-.971.476-2.468 1.03-5.366 1.433-7.42.126-.642.132-.712.069-.82a.507.507 0 0 0-.153-.153c-.04-.024-.007-.042-.157-.04zM5.65 11.31c-.161.025-1.416.205-2.79.4-1.373.194-2.554.374-2.624.399-.21.076-.294.285-.194.478.062.12.215.19.7.324.065.018.15.043.19.056 4.54 1.274 9.338 2.68 13.583 3.888.238.071.563.197.77.197.157-.042 1.053-.484 3.082-1.505 1.649-.83 3.022-1.53 3.052-1.555.113-.099.173-.31.113-.402-.012-.018-.173-.055-.357-.082-3.949-.579-8.122-1.19-11.684-1.71-2.014-.29-2.635-.384-2.804-.422a3.329 3.329 0 0 0-.647-.09 2.254 2.254 0 0 0-.39.024zM4.32 14.55h-.016c-.054.011-1.122 2.303-1.122 2.407 0 .107.076.238.168.287.101.055.165.056.312.005.445-.139.918-.293 1.36-.425 1.316-.395 1.337-.403 1.477-.549.115-.12.328-.562.39-.811a.803.803 0 0 1 .057-.154c.02-.035.03-.065.024-.065-.768-.198-1.565-.415-2.292-.614a2.947 2.947 0 0 0-.358-.081zm13.52 1.843c-.07.04-.271.155-.448.254-.481.291-.937.593-1.446.833-.413.259-.594.315-.801.248a9.005 9.005 0 0 0-.786-.204.076.076 0 0 0-.067.05c-.23.643-.507 1.395-.74 2.053-.086.232-.236.767-.234.832.002.064.142.196.25.236a.551.551 0 0 0 .231.027c1.257-.51 2.215-1.15 3.284-1.71.327-.171.447-.29.494-.492.094-.407.182-.808.269-1.2.183-.812.194-.888.148-.961a.038.038 0 0 0-.035-.02c-.054.012-.08.036-.118.054z\"},\"child\":[]}]})(props);\n};\nexport function SiBlockchaindotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.8285 6.6117l-5.52-5.535a3.1352 3.1352 0 00-4.5 0l-5.535 5.535 7.755 3.87zm2.118 2.235l1.095 1.095a3.12 3.12 0 010 4.5L14.22 23.3502a2.6846 2.6846 0 01-.72.525V13.0767zm-19.893 0l-1.095 1.095a3.1198 3.1198 0 000 4.5L9.78 23.3502c.2091.214.4525.3914.72.525V13.0767z\"},\"child\":[]}]})(props);\n};\nexport function SiBlogger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.976 24H2.026C.9 24 0 23.1 0 21.976V2.026C0 .9.9 0 2.025 0H22.05C23.1 0 24 .9 24 2.025v19.95C24 23.1 23.1 24 21.976 24zM12 3.975H9c-2.775 0-5.025 2.25-5.025 5.025v6c0 2.774 2.25 5.024 5.025 5.024h6c2.774 0 5.024-2.25 5.024-5.024v-3.975c0-.6-.45-1.05-1.05-1.05H18c-.524 0-.976-.45-.976-.976 0-2.776-2.25-5.026-5.024-5.026zm3.074 12H9c-.525 0-.975-.45-.975-.975s.45-.976.975-.976h6.074c.526 0 .977.45.977.976s-.45.976-.975.976zm-2.55-7.95c.527 0 .976.45.976.975s-.45.975-.975.975h-3.6c-.525 0-.976-.45-.976-.975s.45-.975.975-.975h3.6z\"},\"child\":[]}]})(props);\n};\nexport function SiBloglovin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.526 11.695c1.84-.382 3.367-2.044 3.367-4.478 0-2.604-1.9-4.97-5.615-4.97H0v19.506h10.6c3.75 0 5.683-2.341 5.683-5.292-.009-2.426-1.646-4.444-3.757-4.766zm-8.37-5.793h5.207c1.407 0 2.28.849 2.28 2.044 0 1.255-.881 2.044-2.28 2.044H4.155zM9.54 18.098H4.155v-4.444h5.386c1.61 0 2.484.992 2.484 2.222.009 1.399-.932 2.222-2.484 2.222zM21.396 2.28c-1.255 0-2.315 1.052-2.315 2.307s.882 2.103 1.993 2.103c.238 0 .467-.025.56-.085-.238 1.052-1.315 2.282-2.256 2.782l1.611 1.314C22.796 9.422 24 7.462 24 5.266c0-1.9-1.23-2.985-2.604-2.985Z\"},\"child\":[]}]})(props);\n};\nexport function SiBlueprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.809 5.524L12.806.179l-.013-.007.078-.045h-.166a1.282 1.282 0 0 0-1.196.043l-.699.403-8.604 4.954a1.285 1.285 0 0 0-.644 1.113v10.718c0 .46.245.884.644 1.113l9.304 5.357c.402.232.898.228 1.297-.009l9.002-5.345c.39-.231.629-.651.629-1.105V6.628c0-.453-.239-.873-.629-1.104zm-19.282.559L11.843.719a.642.642 0 0 1 .636.012l9.002 5.345a.638.638 0 0 1 .207.203l-4.543 2.555-4.498-2.7a.963.963 0 0 0-.968-.014L6.83 8.848 2.287 6.329a.644.644 0 0 1 .24-.246zm14.13 8.293l-4.496-2.492V6.641a.32.32 0 0 1 .155.045l4.341 2.605v5.085zm-4.763-1.906l4.692 2.601-4.431 2.659-4.648-2.615a.317.317 0 0 1-.115-.112l4.502-2.533zm-.064 10.802l-9.304-5.357a.643.643 0 0 1-.322-.557V7.018L6.7 9.51v5.324c0 .348.188.669.491.84l4.811 2.706.157.088v4.887a.637.637 0 0 1-.329-.083z\"},\"child\":[]}]})(props);\n};\nexport function SiBluesky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 0 1-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8Z\"},\"child\":[]}]})(props);\n};\nexport function SiBluesound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.327 14.893-8.396.003a4.549 4.549 0 0 0-4.546 4.543c0 2.05.007 3.737.007 3.737V24h12.955l.191-.002c4.678-.099 8.077-3.577 8.077-8.273a8.733 8.733 0 0 0-.805-3.721 8.77 8.77 0 0 0 .805-3.724c0-4.695-3.399-8.173-8.084-8.275L1.392 0v.833s-.007 1.681-.007 3.733a4.548 4.548 0 0 0 4.546 4.541l8.399.013c2.375 0 4.392 1.048 5.567 2.884-1.178 1.838-3.197 2.889-5.57 2.889m.219-7.452-8.615.002a2.88 2.88 0 0 1-2.879-2.877V1.665H14.33c3.835 0 6.62 2.782 6.62 6.615 0 .681-.092 1.339-.271 1.97-1.47-1.726-3.669-2.75-6.133-2.809m6.133 6.314c.179.629.271 1.29.271 1.97 0 3.831-2.785 6.611-6.62 6.611l-11.278.002v-2.899a2.882 2.882 0 0 1 2.879-2.879h8.446l.288-.015c2.412-.084 4.564-1.088 6.014-2.79\"},\"child\":[]}]})(props);\n};\nexport function SiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C6.76 0 3.1484 2.4895 3.1484 12S6.76 24 12 24c5.24 0 8.8516-2.4895 8.8516-12S17.24 0 12 0zm-.7773 1.6816l6.2148 6.2149L13.334 12l4.1035 4.1035-6.2148 6.2149V14.125l-3.418 3.42-1.2422-1.2442L10.8515 12l-4.289-4.3008 1.2422-1.2441 3.418 3.4199V1.6816zm1.748 4.2442v3.9687l1.9844-1.9843-1.9844-1.9844zm0 8.1816v3.9668l1.9844-1.9844-1.9844-1.9824Z\"},\"child\":[]}]})(props);\n};\nexport function SiBmcsoftware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.375 23.999c-.95 0-1.95-.749-1.95-2.2v-3.4c0-1.349.85-2.899 2.05-3.548l4.75-2.8-4.75-2.8C5.325 8.5 4.425 7 4.425 5.65V2.2c0-1.45 1-2.2 2.002-2.2.4 0 .849.1 1.249.35l10.7 6.35c.75.45 1.15 1.149 1.15 1.849 0 .75-.452 1.45-1.15 1.85l-2.55 1.5 2.55 1.501c.75.45 1.2 1.15 1.2 1.85 0 .75-.452 1.45-1.2 1.85L7.674 23.65c-.45.25-.85.35-1.3.35zm7.15-10.599l-5.85 3.45c-.45.25-.9 1.05-.9 1.55v3.05l10.15-6zM6.775 2.6v3.05c0 .5.45 1.3.9 1.55l5.85 3.45 3.45-2.05z\"},\"child\":[]}]})(props);\n};\nexport function SiBmw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 .78C18.196.78 23.219 5.803 23.219 12c0 6.196-5.022 11.219-11.219 11.219C5.803 23.219.781 18.196.781 12S5.804.78 12 .78zm-.678.63c-.33.014-.66.042-.992.078l-.107 2.944a9.95 9.95 0 0 1 .71-.094l.07-1.988-.013-.137.043.13.664 1.489h.606l.664-1.488.04-.131-.01.137.07 1.988c.232.022.473.054.71.094l-.109-2.944a14.746 14.746 0 0 0-.992-.078l-.653 1.625-.023.12-.023-.12-.655-1.625zm6.696 1.824l-1.543 2.428c.195.15.452.371.617.522l1.453-.754.092-.069-.069.094-.752 1.453c.163.175.398.458.53.63l2.43-1.544a16.135 16.135 0 0 0-.46-.568L18.777 6.44l-.105.092.078-.115.68-1.356-.48-.48-1.356.68-.115.078.091-.106 1.018-1.539c-.18-.152-.351-.291-.57-.46zM5.5 3.785c-.36.037-.638.283-1.393 1.125a18.97 18.97 0 0 0-.757.914l2.074 1.967c.687-.76.966-1.042 1.508-1.613.383-.405.6-.87.216-1.317-.208-.242-.558-.295-.85-.175l-.028.01.01-.026a.7.7 0 0 0-.243-.734.724.724 0 0 0-.537-.15zm.006.615c.136-.037.277.06.308.2.032.14-.056.272-.154.382-.22.25-1.031 1.098-1.031 1.098l-.402-.383c.417-.51.861-.974 1.062-1.158a.55.55 0 0 1 .217-.139zM12 4.883a7.114 7.114 0 0 0-7.08 6.388v.002a7.122 7.122 0 0 0 8.516 7.697 7.112 7.112 0 0 0 5.68-6.97A7.122 7.122 0 0 0 12 4.885v-.002zm-5.537.242c.047 0 .096.013.14.043.088.059.128.16.106.26-.026.119-.125.231-.205.318l-1.045 1.12-.42-.4s.787-.832 1.045-1.099c.102-.106.168-.17.238-.205a.331.331 0 0 1 .14-.037zM12 5.818A6.175 6.175 0 0 1 18.182 12H12v6.182A6.175 6.175 0 0 1 5.818 12H12V5.818Z\"},\"child\":[]}]})(props);\n};\nexport function SiBnbchain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.631 3.676 12.001 0l6.367 3.676-2.34 1.358L12 2.716 7.972 5.034l-2.34-1.358Zm12.737 4.636-2.34-1.358L12 9.272 7.972 6.954l-2.34 1.358v2.716l4.026 2.318v4.636L12 19.341l2.341-1.359v-4.636l4.027-2.318V8.312Zm0 7.352v-2.716l-2.34 1.358v2.716l2.34-1.358Zm1.663.96-4.027 2.318v2.717l6.368-3.677V10.63l-2.34 1.358v4.636Zm-2.34-10.63 2.34 1.358v2.716l2.341-1.358V5.994l-2.34-1.358-2.342 1.358ZM9.657 19.926v2.716L12 24l2.341-1.358v-2.716l-2.34 1.358-2.343-1.358Zm-4.027-4.262 2.341 1.358v-2.716l-2.34-1.358v2.716Zm4.027-9.67L12 7.352l2.341-1.358-2.34-1.358-2.343 1.358Zm-5.69 1.358L6.31 5.994 3.968 4.636l-2.34 1.358V8.71l2.34 1.358V7.352Zm0 4.636-2.34-1.358v7.352l6.368 3.677v-2.717l-4.028-2.318v-4.636Z\"},\"child\":[]}]})(props);\n};\nexport function SiBoardgamegeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.7 4.44-2.38.64L19.65 0 4.53 5.56l.83 6.67-1.4 1.34L8.12 24l8.85-3.26 3.07-7.22-1.32-1.27.98-7.81Z\"},\"child\":[]}]})(props);\n};\nexport function SiBoat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.081 0 5.833 17.686 17.15 13.93Zm-10.2 18.223L4.961 24H19.14l2.98-5.777z\"},\"child\":[]}]})(props);\n};\nexport function SiBoehringeringelheim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.41 22.03c-1.72-1.24-2.63-2.15-3.49-3.46A12.185 12.185 0 0 1 0 12.03C0 5.38 5.36 0 12 0s12 5.38 12 12c0 2.73-.93 5.46-2.58 7.48-.68.86-1.26 1.36-2.83 2.55v-7.02h1.19v4.8c.88-1.04 1.31-1.67 1.74-2.43.88-1.57 1.36-3.51 1.36-5.38 0-6.06-4.88-10.99-10.89-10.99S1.11 5.94 1.11 12.08c0 2.8.99 5.28 3.08 7.73v-4.8H5.4v7.02Zm2.37 1.21c-.23-.05-.76-.3-1.19-.53V15h1.19v8.24Zm7.23-16.92L12 4 8.99 6.32l-.66-.86 3.66-2.86 3.66 2.86-.66.86Zm-4.83 17.56c-.43-.08-.45-.08-.61-.13-.13-.02-.18-.02-.58-.13V7.2h1.19v16.67Zm2.4.1c-.18.02-.23.02-.48.02-.38 0-.51 0-.71-.02V7.2h1.19v16.78Zm2.4-.38c-.38.13-.71.2-1.19.3V7.2h1.19v16.4Zm2.43-.88c-.38.18-.61.28-1.21.56v-8.27h1.21v7.71Z\"},\"child\":[]}]})(props);\n};\nexport function SiBoeing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.9044 17.2866a6.0512 6.0512 0 01-3.7595-1.3008c1.2048-2.7146 3.6545-6.3581 6.998-9.9166a6.0702 6.0702 0 012.2617 7.729c-1.0599-.49-2.0497-1.106-2.8876-1.8798l1.8307 3.4375a6.0582 6.0582 0 01-4.4433 1.9307M.8292 11.2115a6.0752 6.0752 0 016.0762-6.0772c.8998 0 1.7527.196 2.5226.546-3.2935 2.9095-5.8432 6.293-7.353 9.2177a6.0512 6.0512 0 01-1.2458-3.6875m12.3403 2.9126a6.862 6.862 0 00.6419-2.9126c0-2.3997-1.2248-4.5144-3.0846-5.7532a49.6072 49.6072 0 013.5825-3.3416A31.1727 31.1727 0 0010.11 5.0903a6.907 6.907 0 00-8.4368 10.6265C.3493 18.5795.1193 20.8781 1.285 21.654c1.2489.832 3.9625-.6769 5.5903-3.1345 0 0-2.5177 2.2736-3.9015 1.7517-.8519-.322-.8549-1.6248-.152-3.4925a6.871 6.871 0 004.0835 1.3378c1.8937 0 3.6065-.7599 4.8533-1.9917l.245.462c3.0095-.245 11.9963-.483 11.9963-.483 0-.431-5.9502-.04-10.8325-1.9797\"},\"child\":[]}]})(props);\n};\nexport function SiBombardier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 23.24 1.823-1.822c1.823-1.823 3.645-2.127 6.076-2.127h5.012c2.43 0 3.707-.152 5.681-1.519h.244l-3.342 3.342c-1.823 1.823-3.646 2.127-6.076 2.127H0ZM5.165 6.533l1.822 1.822c1.823 1.823 3.646 2.127 6.076 2.127h5.013c2.43 0 3.706.152 5.681 1.519-1.975 1.367-3.25 1.519-5.681 1.519h-5.013c-2.43 0-4.253.304-6.076 2.127l-1.822 1.822h9.417c2.43 0 4.254-.303 6.076-2.126L24 12l-3.342-3.342c-1.822-1.823-3.645-2.126-6.076-2.126H5.165ZM0 .759l1.823 1.823C3.646 4.405 5.468 4.71 7.899 4.71h5.012c2.43 0 3.707.152 5.681 1.519h.244l-3.342-3.342C13.67 1.063 11.848.76 9.418.76H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiBookalope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.41816 24v-1.1842c.80965-.02052 1.45921-.08312 1.94767-.18676.48845-.10364.86198-.28014 1.12262-.5295.25962-.24936.43612-.60339.5295-1.06003.0934-.45767.1406-1.04977.1406-1.77732V4.7378c0-.72755-.03694-1.31452-.1098-1.76192-.07287-.44639-.21755-.79939-.43612-1.05901-.21859-.26065-.53464-.43715-.95024-.53053-.4156-.09338-.95638-.1611-1.62134-.20215V0h9.31966c2.80554 0 4.98717.49872 6.54592 1.49615 1.55874.99744 2.3376 2.39918 2.3376 4.20729 0 1.37198-.431 2.49358-1.29298 3.36685-.863.87225-2.22883 1.58954-4.09953 2.15085v.12417c.64443.0626 1.20574.13545 1.68394.21857.47717.08312.90303.18163 1.27758.29554.37353.11493.72243.25449 1.04464.42072.3212.16624.63828.35403.95023.56132 1.84916 1.30939 2.77373 2.95125 2.77373 4.92457 0 1.1021-.3058 2.1252-.91944 3.0703-.61262.94612-1.46947 1.68907-2.57158 2.22883-.353.18676-.71626.33761-1.09081.45254-.37353.1139-.81067.20729-1.3094.28014-.49871.07286-1.07542.12417-1.72908.15598-.6547.03079-1.42947.04618-2.32222.04618H1.41817Zm11.31452-1.34017c3.7609 0 5.64187-1.61006 5.64187-4.8312 0-2.34787-.96664-3.98974-2.89892-4.92458-.33247-.14571-.6547-.26988-.96664-.37455-.31196-.10364-.67522-.18163-1.09082-.23294-.4156-.05233-.90918-.08927-1.48076-.1098-.57158-.02052-1.27245-.03078-2.10364-.03078H8.431v6.95125c0 1.26732.33248 2.1765.99743 2.72653.66496.55105 1.76604.82607 3.30426.82607zm-2.55618-12.0626c.64443 0 1.1842-.01026 1.62134-.03079.43612-.02155.80965-.05746 1.1216-.1098.31196-.0513.58697-.12416.82607-.21754.2391-.09338.48332-.2237.73268-.38995.66496-.4156 1.137-.91431 1.41816-1.49615.28015-.58183.42073-1.34017.42073-2.27501 0-1.64187-.4002-2.82093-1.2006-3.53823-.7994-.71729-2.05131-1.07542-3.75577-1.07542H8.9605c-.353 0-.5295.1765-.5295.53053v8.60236z\"},\"child\":[]}]})(props);\n};\nexport function SiBookbub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 20V4h5.4c1.6 0 2.8.3 3.8 1 .9.7 1.4 1.6 1.4 2.7 0 .8-.3 1.6-.8 2.3-.6.7-1.3 1.2-2.2 1.4 1.1.1 2 .6 2.7 1.3.7.7 1 1.6 1 2.6 0 1.4-.5 2.6-1.5 3.4-1 .9-2.4 1.3-4.1 1.3H0zM3 6.4v4.2h1.7c.8 0 1.5-.2 1.9-.6.4-.4.7-1 .7-1.7 0-1.3-.9-1.9-2.7-1.9H3zM3 13v4.7h2.1c.9 0 1.6-.2 2.1-.6.5-.5.8-1.1.8-1.9C8 13.7 7 13 5 13H3zm9.7 7V4h5.4c1.6 0 2.8.3 3.8 1 .9.7 1.4 1.6 1.4 2.7 0 .8-.3 1.6-.8 2.3-.6.7-1.3 1.2-2.2 1.4 1.1.1 2 .6 2.7 1.3.7.7 1 1.6 1 2.6 0 1.4-.5 2.6-1.5 3.4-1 .9-2.4 1.3-4.1 1.3h-5.7zm3-13.6v4.2h1.7c.8 0 1.5-.2 1.9-.6s.7-1 .7-1.7c0-1.3-.9-1.9-2.7-1.9h-1.6zm0 6.6v4.7h2.1c.9 0 1.6-.2 2.1-.6.5-.4.7-1 .7-1.8 0-1.5-1-2.3-3-2.3h-1.9z\"},\"child\":[]}]})(props);\n};\nexport function SiBookmeter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.678 14.262h6.089V24H.678v-9.738zm8.215 9.717h6.089V7.11H8.893v16.869zM17.234 0v24h6.089V0h-6.089z\"},\"child\":[]}]})(props);\n};\nexport function SiBookmyshow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.338 16.595a.66.66 0 01-.554-.66v-8.07a.67.67 0 01.679-.672h5.901c.154 0 .308.015.458.04a2.622 2.622 0 012.19 2.576v6.126a.66.66 0 01-.204.478.684.684 0 01-.6.182.66.66 0 01-.553-.66V9.809a1.277 1.277 0 00-1.29-1.272h-1.287v7.398a.678.678 0 01-.806.66.66.66 0 01-.553-.66v-7.4H6.142v7.4a.66.66 0 01-.202.478.682.682 0 01-.602.182m9.812 3.517a.66.66 0 01-.555-.662c0-.183.07-.353.196-.478a.684.684 0 01.484-.193c.572 0 1.068-.365 1.232-.909l.701-2.307-2.294-7.576a.677.677 0 01.453-.847.695.695 0 01.84.444l1.705 5.65 1.724-5.647c.085-.318.43-.52.786-.459l.048.01a.68.68 0 01.458.85l-2.362 7.774-.746 2.489c-.193.571-.525 1.036-.957 1.349a2.678 2.678 0 01-1.588.522.664.664 0 01-.125-.011M24 7.172l-1.353-2.277-2.421 1.137-1.353-2.278-2.42 1.138-1.354-2.277-2.42 1.138-1.354-2.277-2.42 1.136L7.55.335 5.132 1.47 0 17.957l6.226 1.88a3.295 3.295 0 013.151-2.297c1.822 0 3.3 1.46 3.3 3.26l-.002.065c.015.295-.02.594-.11.887l6.331 1.914L24 7.17\"},\"child\":[]}]})(props);\n};\nexport function SiBookstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.3013 17.6146c-.1299-.3387-.5228-1.5119-.1337-2.4314l9.8273 5.6738a.329.329 0 0 0 .3299 0L24 12.9616v2.3542l-13.8401 7.9906-9.8586-5.6918zM.1911 8.9628c-.2882.8769.0149 2.0581.1236 2.4261l9.8452 5.6841L24 9.0823V6.7275L10.3248 14.623a.329.329 0 0 1-.3299 0L.1911 8.9628zm13.1698-1.9361c-.1819.1113-.4394.0015-.4852-.2064l-.2805-1.1336-2.1254-.1752a.33.33 0 0 1-.1378-.6145l5.5782-3.2207-1.7021-.9826L.6979 8.4935l9.462 5.463 13.5104-7.8004-4.401-2.5407-5.9084 3.4113zm-.1821-1.7286.2321.938 5.1984-3.0014-2.0395-1.1775-4.994 2.8834 1.3099.108a.3302.3302 0 0 1 .2931.2495zM24 9.845l-13.6752 7.8954a.329.329 0 0 1-.3299 0L.1678 12.0667c-.3891.919.003 2.0914.1332 2.4311l9.8589 5.692L24 12.1993V9.845z\"},\"child\":[]}]})(props);\n};\nexport function SiBoost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.428 2.727l3.335 3.335c-.486.07-.903.276-1.32.624L.886 12.383c-1.181 1.18-1.181 3.194 0 4.375a2.41 2.41 0 0 0 1.598.834l17.088 3.681-3.335-3.333c.486-.07.903-.278 1.32-.626l5.557-5.695c1.181-1.181 1.181-3.196 0-4.377a2.411 2.411 0 0 0-1.598-.833zM11.653 6.2c.694 0 1.25.486 1.25 1.18 0 .695-.486 1.251-1.181 1.251-.695 0-1.25-.485-1.25-1.18s.555-1.251 1.18-1.251zm1.51 3.792c.049-.006.088.046.088.098-.139.694-.695 1.181-1.39 1.181-.694 0-1.32-.487-1.46-1.112 0 0 .002-.07.071 0 .487.278.972.348 1.32.278.346 0 .833-.07 1.32-.416a.092.092 0 0 1 .05-.029zm.723 2.511c.058.013.06.106.06.158-.209.903-.973 1.666-1.946 1.666a2.167 2.167 0 0 1-2.084-1.528c-.07-.07 0-.138.138-.138.695.347 1.39.416 1.877.416.486 0 1.18-.14 1.875-.556.035-.017.06-.022.08-.018zm.597 3.018c.049-.013.087.09.087.195-.278 1.181-1.25 2.085-2.5 2.155-1.251 0-2.293-.835-2.57-1.946 0-.139.068-.278.207-.209.834.486 1.737.556 2.362.556s1.529-.208 2.362-.694c.018-.035.036-.053.052-.057z\"},\"child\":[]}]})(props);\n};\nexport function SiBoosty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.661 14.337 6.801 0h6.362L11.88 4.444l-.038.077-3.378 11.733h3.15c-1.321 3.289-2.35 5.867-3.086 7.733-5.816-.063-7.442-4.228-6.02-9.155M8.554 24l7.67-11.035h-3.25l2.83-7.073c4.852.508 7.137 4.33 5.791 8.952C20.16 19.81 14.344 24 8.68 24h-.127z\"},\"child\":[]}]})(props);\n};\nexport function SiBoots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.979 8.337c.201-.23.326-.516.326-.73 0-.143-.083-.234-.218-.234-.224 0-.493.276-.493.691a.848.848 0 0 0 .018.175c-.257.4-.524.807-.793 1.198a1.491 1.491 0 0 0-.292-.029c-.649 0-1.319.487-1.319 1.367a1.697 1.697 0 0 0 .114.632c-.555.633-1.044 1.044-1.375 1.044-.13 0-.208-.071-.208-.219 0-.158.076-.409.229-.758l1.91-4.228 2.062-.242.234-.489-1.993.067.346-.763-.776.092-.35.695-2.79.09-.501.995 2.917-.344-.587 1.165a2.636 2.636 0 0 0-1.086-.212 3.927 3.927 0 0 0-1.766.425 1.81 1.81 0 0 0-.792-.175c-.673 0-1.436.324-2.056.893-.126-.388-.39-.62-.778-.62-.454 0-.935.238-1.396.623-.276-.225-.673-.29-1.095-.132a2.802 2.802 0 0 0 .35-1.317c0-.781-.365-1.354-1.032-1.7a5.165 5.165 0 0 1 .723-.493 1.72 1.72 0 0 0-.233-.164 6.642 6.642 0 0 0-.942.473c-.42-.134-.922-.202-1.496-.202C5.18 5.911 2.66 7.45 2.66 9.35c0 .837.473 1.137.942 1.137.438 0 .866-.246 1.002-.544-.381-.078-.607-.408-.607-.827 0-1.481 1.792-2.774 3.63-2.774.412 0 .769.077 1.062.218-1.117.86-1.975 2.03-2.682 3.282a1.937 1.937 0 0 0-.298-.024c-.528 0-.91.224-.91.666 0 .298.194.554.494.739-.44.911-.822 1.822-1.19 2.652-.128-.252-.419-.416-.755-.416-.807 0-1.418.712-1.418 1.594 0 .575.233 1.125.636 1.566-.38.425-.796.676-1.28.69a.858.858 0 0 1-.452-.114c.38-.042.692-.325.683-.692-.008-.367-.314-.628-.734-.617a.793.793 0 0 0-.783.817c.017.695.608 1.062 1.38 1.044.667-.015 1.24-.253 1.75-.654a3.266 3.266 0 0 0 1.769.5c2.049 0 3.787-1.745 3.787-4.087 0-.93-.24-1.668-.599-2.231a4.598 4.598 0 0 0 1.705-1.06c.637-.63 1.11-.572 1.381-.403-1.057 1.097-1.916 2.867-1.916 4.056 0 .737.295 1.217.862 1.217 1.7 0 3.73-3.278 3.705-5.08.546-.605 1.276-.965 1.869-.965a1.186 1.186 0 0 1 .307.037c-1.329.94-2.157 2.547-2.157 3.782 0 .655.322 1.152.95 1.152 1.17 0 2.692-1.823 2.692-3.64 0-.559-.159-.978-.41-1.273a2.599 2.599 0 0 1 1.34-.392 2.11 2.11 0 0 1 .834.18l-1.172 2.323c-.272.568-.378.988-.378 1.293 0 .469.275.71.711.71.636 0 1.385-.59 2.132-1.436.323.4.826.579 1.242.579a2.215 2.215 0 0 0 .404-.039c-.314.397-.838.696-1.607.889l-10.17 2.548c-1.545.386-2.49 1.148-2.034 2.608.353-.29.987-.573 2.63-1.073l9.232-2.816c1.35-.411 2.207-1.38 2.572-2.356.628-.306 1.189-.89 1.189-1.7.001-.894-.749-1.429-1.021-2.078zm-16.16 2.322a2.241 2.241 0 0 1 .321.33 3.023 3.023 0 0 1-.503.062q.09-.197.182-.392zm-1.592-.214c0-.231.279-.27.577-.236q-.162.3-.314.604c-.167-.105-.263-.235-.263-.368zm-2.271 5.663c-.34-.317-.507-.727-.502-1.068a1 1 0 0 1 .12-.462.756.756 0 0 0 .693.418.903.903 0 0 0 .35-.071 10.415 10.415 0 0 1-.661 1.183zm1.403.511a2.317 2.317 0 0 1-.641-.086c1.053-1.185 1.84-3.085 2.697-4.993a4.882 4.882 0 0 0 1.013-.087c.172.363.277.805.277 1.331 0 1.723-1.266 3.835-3.346 3.835zm3.366-5.816a3.254 3.254 0 0 0-.7-.577c.608-1.251 1.284-2.432 2.13-3.335.287.297.443.702.443 1.186-.001 1.204-.796 2.262-1.872 2.726zm2.597 3.579c-.164 0-.246-.142-.246-.382 0-1.047 1.778-4.474 2.673-4.474.17 0 .246.142.246.388-.002 1.058-1.77 4.468-2.673 4.468zm4.588-.996c-.17 0-.245-.135-.245-.388 0-.81.72-2.513 1.877-3.511.128.213.186.482.187.763.005 1.34-1.224 3.136-1.82 3.136zm5.744-2.368a1.326 1.326 0 0 1-.032-.295c0-.523.373-.946.865-.946q.05 0 .096.004c-.317.446-.63.866-.931 1.237zm1.867.593a1.275 1.275 0 0 1-.763.252c-.385 0-.713-.159-.917-.432.387-.47.77-.997 1.13-1.533.42.236.592.782.592 1.276a2.15 2.15 0 0 1-.044.437zm.494-.6c-.015-.6-.315-1.175-.825-1.444.202-.308.396-.617.579-.917.191.39.477.813.477 1.368a2.214 2.214 0 0 1-.232.994z\"},\"child\":[]}]})(props);\n};\nexport function SiBootstrap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.77 11.24H9.956V8.202h2.152c1.17 0 1.834.522 1.834 1.466 0 1.008-.773 1.572-2.174 1.572zm.324 1.206H9.957v3.348h2.231c1.459 0 2.232-.585 2.232-1.685s-.795-1.663-2.326-1.663zM24 11.39v1.218c-1.128.108-1.817.944-2.226 2.268-.407 1.319-.463 2.937-.42 4.186.045 1.3-.968 2.5-2.337 2.5H4.985c-1.37 0-2.383-1.2-2.337-2.5.043-1.249-.013-2.867-.42-4.186-.41-1.324-1.1-2.16-2.228-2.268V11.39c1.128-.108 1.819-.944 2.227-2.268.408-1.319.464-2.937.42-4.186-.045-1.3.968-2.5 2.338-2.5h14.032c1.37 0 2.382 1.2 2.337 2.5-.043 1.249.013 2.867.42 4.186.409 1.324 1.098 2.16 2.226 2.268zm-7.927 2.817c0-1.354-.953-2.333-2.368-2.488v-.057c1.04-.169 1.856-1.135 1.856-2.213 0-1.537-1.213-2.538-3.062-2.538h-4.16v10.172h4.181c2.218 0 3.553-1.086 3.553-2.876z\"},\"child\":[]}]})(props);\n};\nexport function SiBorgbackup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 8.144v6.023h2.006V8.144Zm2.324 0v1.203h1.488v1.285H2.324v1.048h1.488v1.284H2.324v1.203h2.328l1.207-1.203V11.78l-.603-.604.603-.603V9.347L4.652 8.144Zm5.569 1.203L6.69 10.55v2.414l1.203 1.203H9.24v-1.125h-.522V10.55h.522V9.347Zm1.665 0v1.203h.5v2.492h-.5v1.125h1.344l1.202-1.203V10.55l-1.202-1.203Zm3.454 0v4.82h2.006v-4.82Zm3 0-.672.676v.527h.854v1.171h2.01v-1.248l-.975-1.126Zm3.971 0-1.202 1.203v2.414l1.202 1.203h1.094l.6-.594v-.531h-.89V9.347Zm1.121 0v1.203h.89v4.253h-2.446v.444l.603.609h2.646L24 14.644V10.55l-1.203-1.203Z\"},\"child\":[]}]})(props);\n};\nexport function SiBosch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12C23.996 5.374 18.626.004 12 0zm0 22.88C5.991 22.88 1.12 18.009 1.12 12S5.991 1.12 12 1.12 22.88 5.991 22.88 12c-.006 6.006-4.874 10.874-10.88 10.88zm4.954-18.374h-.821v4.108h-8.24V4.506h-.847a8.978 8.978 0 0 0 0 14.988h.846v-4.108h8.24v4.108h.822a8.978 8.978 0 0 0 0-14.988zM6.747 17.876a7.86 7.86 0 0 1 0-11.752v11.752zm9.386-3.635h-8.24V9.734h8.24v4.507zm1.12 3.61V6.124a7.882 7.882 0 0 1 0 11.727z\"},\"child\":[]}]})(props);\n};\nexport function SiBose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.052 10.589a.69.69 0 0 0-.588.332l-.54.915c-.114.19.036.399.235.399h1.873l-.336.568a.274.274 0 0 1-.24.139h-.29a.113.113 0 0 1-.102-.164c.035-.062.112-.19.112-.19h-1.699l-.246.418c-.115.194.038.405.232.405h3.174a.692.692 0 0 0 .598-.34c.12-.206.405-.69.527-.896.123-.205-.032-.41-.228-.41h-1.873l.347-.586a.276.276 0 0 1 .231-.123h.292c.095 0 .135.102.105.155-.03.053-.117.199-.117.199h1.696l.254-.43c.094-.16-.023-.392-.24-.392h-3.18.003zm-1.344 0H9.537c-.23 0-.47.12-.592.329-.124.207-1.13 1.911-1.24 2.096-.109.185.042.397.236.397h3.177c.255 0 .48-.141.592-.33.111-.188 1.13-1.915 1.237-2.094.106-.18-.03-.4-.24-.4v.002zm-1.598.636c-.045.076-.89 1.505-.936 1.585a.276.276 0 0 1-.236.134h-.295c-.094 0-.138-.102-.102-.163l.94-1.592a.274.274 0 0 1 .235-.13h.296c.085 0 .143.091.097.167l.001-.001zm-2.919-.636H4.61l-1.39 2.354H0v.47h6.598a.69.69 0 0 0 .596-.336l.41-.697c.085-.145-.004-.331-.164-.379a.703.703 0 0 0 .583-.329c.115-.193.298-.506.402-.682a.266.266 0 0 0-.234-.4v-.001zM6.29 12.402l-.243.411a.267.267 0 0 1-.233.132h-.9l.419-.708h.857a.11.11 0 0 1 .099.166zm.694-1.178-.242.41a.266.266 0 0 1-.233.131h-.9l.418-.708h.858c.09 0 .14.093.098.167h.001zm11.194-.635-1.667 2.823h4.042l.276-.469h-2.345l.418-.707h2.345l.278-.47H19.18l.418-.709H24v-.468h-5.822z\"},\"child\":[]}]})(props);\n};\nexport function SiBotblecms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9.371c-1.613 0-3.09.54-4.3 1.426V0S5.624.434 4.686 1.313l.036 15.742C4.918 20.918 8.086 24 12 24c.547 0 1.074-.07 1.59-.184v-3.105a4.318 4.318 0 0 1-1.59.312 4.336 4.336 0 0 1 0-8.671 4.321 4.321 0 0 1 4.313 4.109l.09 6.031c1.757-1.332 2.91-3.426 2.91-5.805A7.315 7.315 0 0 0 12 9.372Zm1.523 7.512c0 .84-.683 1.523-1.523 1.523a1.525 1.525 0 0 1 0-3.05c.84 0 1.523.683 1.523 1.527Z\"},\"child\":[]}]})(props);\n};\nexport function SiBoulanger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.405 3.612v3.5777h5.6616c2.987.0347 5.3836 2.4311 5.3836 5.4181-.0347 2.987-2.4313 5.3834-5.3836 5.4181h-3.1259c-2.987 0-5.4181-2.431-5.4181-5.418V8.4052c0-2.084 1.1458-3.8903 2.8824-4.7933zC3.7856 3.612 0 7.3975 0 12.017c0 4.6194 3.7162 8.371 8.3704 8.371h7.2592C20.249 20.388 24 16.6711 24 12.017c0-4.6542-3.6815-8.405-8.3704-8.405zm.0353 6.4255v2.5357c0 1.3893 1.1457 2.535 2.535 2.535h3.0222c1.3893 0 2.535-1.1457 2.535-2.535 0-1.3893-1.111-2.5357-2.535-2.5357z\"},\"child\":[]}]})(props);\n};\nexport function SiBower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.542 11.756c-1.235-1.187-7.408-1.927-9.355-2.142.094-.223.175-.454.242-.691.266-.117.552-.225.848-.315.036.107.207.515.303.709 3.917.108 4.118-2.91 4.277-3.738.156-.808.149-1.59 1.492-3.018-2.001-.584-4.88.904-5.844 3.118a5.981 5.981 0 00-1.085-.298c-.257-1.038-1.597-3.93-5.114-3.93-2.278 0-4.574.94-6.301 2.58a9.421 9.421 0 00-2.173 3.12C.28 8.43 0 9.84 0 11.342c0 5.227 3.568 9.807 5.584 9.807.88 0 1.638-.659 1.816-1.25.15.406.606 1.665.757 1.985.222.475 1.249.885 1.698.392.577.321 1.638.514 2.215-.342 1.113.235 2.097-.428 2.118-1.22.546-.029.814-.796.695-1.406-.088-.45-1.026-2.063-1.393-2.62.725.59 2.562.757 2.784 0 1.169.918 2.991.437 3.135-.31 1.42.369 3.05-.441 2.782-1.423 2.282-.157 1.99-2.585 1.35-3.2zm-5.943-4.024c-.6-.236-1.363-.386-1.897-.386-.757 0-1.22.43-1.932.43-.15 0-.507 0-.794-.102.189.198.423.305.877.305.272 0 .81-.139 1.245-.27.007.093.016.183.029.274-.816.195-1.672.714-1.92.849-.55-1.218-.077-2.368.36-2.899 1.962.004 3.548 1.352 4.032 1.8zm.85-.091l-.3-.28c-.309-.29-.63-.55-.96-.783.491-.974 1.109-2.04 1.889-2.698-.859.346-1.707 1.38-2.208 2.485a7.635 7.635 0 00-.777-.433c.7-1.493 2.323-2.739 4.114-2.836-1.2 1.088-.75 3.258-1.76 4.544l.001.001zm-2.464 1.017c-.133-.288-.266-.763-.25-1.042.222-.006.65.078.718.094-.026.131-.04.42-.04.456.042-.073.16-.324.208-.423.428.081.99.218 1.32.372-.388.25-1.045.523-1.957.543zM8.912 6.706c-.484-.174-.484-.611 0-.785.485-.174 1.095.045 1.095.392 0 .348-.61.567-1.095.393zm1.617.162A1.252 1.252 0 108.65 7.951c.832.48 1.879-.123 1.879-1.083zm2.783-1.575c-1.565 1.586-.947 3.593-.377 4.499-.81 1.348-2.404 2.27-4.255 2.69 2.078 0 3.3-.535 4.011-1.059.454-.335.7-.664.825-.847 3.081.199 7.96 1.192 8.435 1.513.19.129.388.414.417.687-2.315-.324-6.488-.665-7.58-.722.775.11 6.433 1.18 7.414 1.432-.299.486-.98.83-2.004.591.555.754-.52 1.66-2.019 1.161.33.74-1.003 1.407-2.52.636.02.74-1.88.826-2.63.007.015.098.104.284.142.367-.241 2.163-2.014 3.506-3.829 3.506-4.443 0-8.314-3.61-8.314-8.411 0-5.076 3.751-8.865 8.278-8.865 2.594 0 3.766 2.042 4.006 2.815z\"},\"child\":[]}]})(props);\n};\nexport function SiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.959 5.523c-.54 0-.959.42-.959.899v7.549a4.59 4.59 0 004.613 4.494 4.717 4.717 0 004.135-2.457c.779 1.438 2.337 2.457 4.074 2.457 2.577 0 4.674-2.037 4.674-4.613.06-2.457-2.037-4.495-4.613-4.495-1.738 0-3.295.959-4.074 2.397-.78-1.438-2.338-2.397-4.135-2.397-1.079 0-2.038.36-2.817.899V6.422a.92.92 0 00-.898-.899zM17.602 9.26a.95.95 0 00-.704.158c-.36.3-.479.899-.18 1.318l2.397 3.116-2.396 3.115c-.3.42-.24.96.18 1.26.419.3 1.016.298 1.316-.122l2.039-2.636 2.096 2.697c.3.36.899.419 1.318.12.36-.3.42-.84.121-1.259l-2.338-3.115 2.338-3.057c.3-.419.298-1.018-.121-1.318-.48-.3-1.019-.24-1.318.18l-2.096 2.576-2.04-2.695c-.149-.18-.373-.3-.612-.338zM4.613 11.154c1.558 0 2.817 1.26 2.817 2.758 0 1.558-1.259 2.756-2.817 2.756-1.558 0-2.816-1.198-2.816-2.756 0-1.498 1.258-2.758 2.816-2.758zm8.27 0c1.558 0 2.816 1.26 2.816 2.758-.06 1.558-1.318 2.756-2.816 2.756-1.558 0-2.817-1.198-2.817-2.756 0-1.498 1.259-2.758 2.817-2.758Z\"},\"child\":[]}]})(props);\n};\nexport function SiBoxysvg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.384 5.028 6.933-4.023L12.05 0l1.716 1.002 6.866 4.01 1.716 1.003v12.054l-1.71.988c-1.712.99-5.136 2.965-6.847 3.954L12.079 24l-1.735-1.002L3.4 18.992 1.665 17.99l-.002-1.992-.01-7.973-.001-1.992 1.732-1.005Zm14.68 9.478c.1.037.23.037.363.037.594 0 1.383-.333 1.779-.763.394-.392.76-1.152.76-1.778 0-.626-.366-1.386-.76-1.78-.396-.43-1.185-.762-1.779-.762-.134 0-.263 0-.398.038.135-.069.23-.169.299-.234.397-.392.76-1.187.76-1.811 0-.592-.363-1.381-.76-1.78-.397-.397-1.189-.755-1.783-.755-.625 0-1.414.358-1.81.755-.064.067-.13.165-.232.268.031-.103.031-.234.031-.368 0-.595-.325-1.38-.755-1.778-.394-.395-1.152-.757-1.78-.757-.626 0-1.384.362-1.781.757-.427.397-.752 1.183-.752 1.778 0 .134 0 .265.028.398-.066-.133-.165-.23-.23-.298-.395-.397-1.183-.755-1.809-.755-.593 0-1.386.358-1.781.755-.399.399-.76 1.188-.76 1.78 0 .624.361 1.419.76 1.811.069.065.162.13.263.234-.101-.038-.23-.038-.364-.038-.594 0-1.383.332-1.779.762-.397.394-.76 1.154-.76 1.78 0 .626.363 1.386.76 1.778.396.43 1.185.763 1.779.763.134 0 .263 0 .398-.037-.135.068-.228.168-.297.233-.399.39-.76 1.185-.76 1.811 0 .59.361 1.381.76 1.779.395.397 1.15.756 1.781.756.626 0 1.414-.36 1.81-.756.064-.066.13-.166.229-.267-.028.101-.028.234-.028.366 0 .59.325 1.381.752 1.778.397.398 1.155.759 1.781.759.628 0 1.386-.361 1.78-.759.43-.397.755-1.188.755-1.778 0-.132 0-.265-.03-.395.068.13.167.23.231.296.396.397 1.185.756 1.81.756.594 0 1.386-.36 1.783-.756.397-.398.76-1.189.76-1.779 0-.626-.363-1.42-.76-1.81-.069-.066-.164-.133-.263-.234Zm-1.547.591h.028c.794 0 1.425.628 1.425 1.453 0 .79-.631 1.416-1.425 1.416-.82 0-1.452-.626-1.452-1.416v-.034l-2.103-2.11v2.968c.263.263.459.621.459 1.054 0 .79-.659 1.419-1.45 1.419-.79 0-1.448-.63-1.448-1.419 0-.433.164-.79.461-1.054v-2.968l-2.11 2.11v.034c0 .79-.657 1.416-1.447 1.416a1.41 1.41 0 0 1-1.423-1.416c0-.825.63-1.453 1.423-1.453h.03l2.107-2.108H6.628a1.36 1.36 0 0 1-1.055.464c-.79 0-1.416-.659-1.416-1.451 0-.795.626-1.452 1.416-1.452.433 0 .792.2 1.055.463h2.964L7.485 8.906h-.03c-.794 0-1.423-.664-1.423-1.453 0-.79.63-1.417 1.423-1.417.82 0 1.447.628 1.447 1.417v.033l2.11 2.111v-2.97c-.263-.263-.46-.62-.46-1.054 0-.787.658-1.417 1.447-1.417.791 0 1.45.63 1.45 1.417 0 .434-.164.791-.46 1.055v2.97l2.104-2.112v-.033c0-.79.664-1.417 1.452-1.417.794 0 1.425.628 1.425 1.417 0 .79-.631 1.453-1.425 1.453h-.028l-2.109 2.107h2.965c.263-.263.623-.463 1.054-.463.79 0 1.416.657 1.416 1.452 0 .792-.626 1.451-1.416 1.451a1.36 1.36 0 0 1-1.054-.464h-2.965l2.109 2.108Z\"},\"child\":[]}]})(props);\n};\nexport function SiBraintree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.276 20.482h4.717c3.641 0 5.462-1.2 5.462-3.517 0-2.275-1.945-3.517-5.752-3.517H8.276Zm0-16.965v6.538h4.138c3.103 0 4.717-1.159 4.717-3.269 0-2.152-1.655-3.269-4.759-3.269zM1.696 24v-3.518H4.47V3.517H1.697V0h11.089c5.09 0 8.193 2.358 8.193 6.455 0 2.69-1.572 4.345-3.558 5.131 2.855.787 4.882 2.814 4.882 5.586 0 4.386-3.393 6.828-8.938 6.828H1.697\"},\"child\":[]}]})(props);\n};\nexport function SiBrandfolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0,23.291h19.601v-2.978H2.98V3.689h16.626v10.911h-1.422l2.908,2.909L24,14.599 h-1.417V0.709H0V23.291z M16.148,13.356c-0.191-0.406-0.432-0.739-0.72-0.997c-0.287-0.258-0.599-0.454-0.933-0.583 c-0.337-0.132-0.641-0.217-0.916-0.254c0.251-0.034,0.496-0.134,0.735-0.296c0.241-0.161,0.455-0.364,0.647-0.609 c0.192-0.247,0.345-0.535,0.458-0.863c0.115-0.33,0.171-0.686,0.171-1.069c0-0.648-0.126-1.186-0.377-1.617 c-0.252-0.432-0.597-0.775-1.033-1.033c-0.436-0.258-0.948-0.44-1.536-0.547c-0.586-0.108-1.21-0.162-1.868-0.162 c-0.754,0-1.382,0.018-1.887,0.054C8.387,5.417,7.944,5.463,7.56,5.525v12.933c0.684,0.083,1.293,0.141,1.834,0.171 c0.539,0.03,1.082,0.044,1.634,0.044c0.718,0,1.404-0.054,2.057-0.162c0.652-0.107,1.227-0.304,1.723-0.592 c0.499-0.288,0.893-0.68,1.187-1.177c0.294-0.498,0.441-1.135,0.441-1.914C16.436,14.253,16.34,13.763,16.148,13.356z M10.165,7.321c0.91-0.111,1.873-0.054,2.301,0.304c0.38,0.317,0.607,0.599,0.607,1.42c0,0.751-0.357,1.195-0.608,1.356 c-0.251,0.161-0.59,0.368-1.403,0.368s-0.897,0-0.897,0V7.321z M13.194,16.001c-0.449,0.39-1.114,0.552-1.816,0.552 c-0.79,0-1.213-0.072-1.213-0.072v-3.737h1.132c0.711,0,1.438,0.126,1.832,0.464c0.509,0.437,0.611,0.895,0.611,1.505 C13.741,15.322,13.528,15.711,13.194,16.001z\"},\"child\":[]}]})(props);\n};\nexport function SiBrave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.68 0l2.096 2.38s1.84-.512 2.709.358c.868.87 1.584 1.638 1.584 1.638l-.562 1.381.715 2.047s-2.104 7.98-2.35 8.955c-.486 1.919-.818 2.66-2.198 3.633-1.38.972-3.884 2.66-4.293 2.916-.409.256-.92.692-1.38.692-.46 0-.97-.436-1.38-.692a185.796 185.796 0 01-4.293-2.916c-1.38-.973-1.712-1.714-2.197-3.633-.247-.975-2.351-8.955-2.351-8.955l.715-2.047-.562-1.381s.716-.768 1.585-1.638c.868-.87 2.708-.358 2.708-.358L8.321 0h7.36zm-3.679 14.936c-.14 0-1.038.317-1.758.69-.72.373-1.242.637-1.409.742-.167.104-.065.301.087.409.152.107 2.194 1.69 2.393 1.866.198.175.489.464.687.464.198 0 .49-.29.688-.464.198-.175 2.24-1.759 2.392-1.866.152-.108.254-.305.087-.41-.167-.104-.689-.368-1.41-.741-.72-.373-1.617-.69-1.757-.69zm0-11.278s-.409.001-1.022.206-1.278.46-1.584.46c-.307 0-2.581-.434-2.581-.434S4.119 7.152 4.119 7.849c0 .697.339.881.68 1.243l2.02 2.149c.192.203.59.511.356 1.066-.235.555-.58 1.26-.196 1.977.384.716 1.042 1.194 1.464 1.115.421-.08 1.412-.598 1.776-.834.364-.237 1.518-1.19 1.518-1.554 0-.365-1.193-1.02-1.413-1.168-.22-.15-1.226-.725-1.247-.95-.02-.227-.012-.293.284-.851.297-.559.831-1.304.742-1.8-.089-.495-.95-.753-1.565-.986-.615-.232-1.799-.671-1.947-.74-.148-.068-.11-.133.339-.175.448-.043 1.719-.212 2.292-.052.573.16 1.552.403 1.632.532.079.13.149.134.067.579-.081.445-.5 2.581-.541 2.96-.04.38-.12.63.288.724.409.094 1.097.256 1.333.256s.924-.162 1.333-.256c.408-.093.329-.344.288-.723-.04-.38-.46-2.516-.541-2.961-.082-.445-.012-.45.067-.579.08-.129 1.059-.372 1.632-.532.573-.16 1.845.009 2.292.052.449.042.487.107.339.175-.148.069-1.332.508-1.947.74-.615.233-1.476.49-1.565.986-.09.496.445 1.241.742 1.8.297.558.304.624.284.85-.02.226-1.026.802-1.247.95-.22.15-1.413.804-1.413 1.169 0 .364 1.154 1.317 1.518 1.554.364.236 1.355.755 1.776.834.422.079 1.08-.4 1.464-1.115.384-.716.039-1.422-.195-1.977-.235-.555.163-.863.355-1.066l2.02-2.149c.341-.362.68-.546.68-1.243 0-.697-2.695-3.96-2.695-3.96s-2.274.436-2.58.436c-.307 0-.972-.256-1.585-.461-.613-.205-1.022-.206-1.022-.206z\"},\"child\":[]}]})(props);\n};\nexport function SiBreaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.556,12.924c0.21,0,0.386,0.017,0.585,0.056c1.043,0.206,1.898,0.964,2.246,1.956 c0.101,0.319,0.234,0.797,0.319,1.125l0.111,0.433l0.446-0.009c3.552-0.075,6.456-2.965,6.456-6.546C23.72,4.513,19.195,0,12.281,0 C9.429,0.009,6.725,1.046,4.678,2.715c-2.683,2.2-4.397,5.543-4.397,9.286c0.002,0.96,0.118,1.926,0.334,2.818 c0.788,3.268,2.91,6.015,5.759,7.628c1.723,0.971,3.784,1.547,5.909,1.553c0.521,0,1.052-0.036,1.554-0.099 c3.126-0.405,5.873-2.012,7.765-4.339l0.124-0.152l-0.24-0.868l-0.463,0.122c-1.436,0.381-2.908,0.578-4.463,0.576 c-1.243,0-2.428-0.128-3.598-0.375c-1.054-0.212-1.911-0.979-2.248-1.98c-0.109-0.315-0.158-0.608-0.156-0.958 c-0.011-0.782,0.257-1.425,0.741-1.975C11.848,13.321,12.656,12.924,13.556,12.924z M12.281,1.125 c6.398,0,10.313,4.11,10.313,8.813c0,2.811-2.168,5.119-4.919,5.397c-0.073-0.261-0.152-0.536-0.219-0.746 C15.715,9.132,11.567,4.907,6.23,2.957C7.965,1.78,10.01,1.118,12.281,1.125z M1.405,12.001c0-3.283,1.455-6.227,3.756-8.223 c4.377,1.403,7.964,4.397,10.058,8.371c-0.272-0.12-0.559-0.212-0.859-0.272c-1.219-0.253-2.511-0.394-3.807-0.394 c-3.24,0.006-6.345,0.859-9.001,2.325C1.454,13.222,1.405,12.625,1.405,12.001z M12.729,19.967 c1.224,0.257,2.526,0.398,3.829,0.398c0.996,0,1.986-0.083,2.948-0.234c-1.519,1.352-3.418,2.282-5.519,2.614 c-0.799-0.938-1.493-1.95-2.072-3.032C12.174,19.822,12.446,19.908,12.729,19.967z M12.645,22.871 c-0.12,0.004-0.242,0.006-0.364,0.006c-1.825,0.006-3.486-0.424-4.994-1.209c0.433-1.907,1.172-3.675,2.171-5.277 c0.034,0.294,0.099,0.587,0.186,0.848C10.314,19.28,11.347,21.202,12.645,22.871z M10.453,13.207 c-1.954,2.19-3.43,4.913-4.176,7.864c-2.143-1.421-3.752-3.582-4.467-6.117c2.586-1.508,5.532-2.351,8.744-2.346 c0.18,0,0.358,0.002,0.536,0.008C10.858,12.79,10.644,12.987,10.453,13.207z\"},\"child\":[]}]})(props);\n};\nexport function SiBrenntag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.7305 12.01c-.768.959-1.899 1.8775-3.2745 2.421.828 1.02 1.246 2.156.9445 3.337-.2875 1.1275-1.3655 2.228-2.9 2.228H6.5v-5.999h7c3.86 0 7-3.1395 7-6.9985S17.36 0 13.5 0h-11v8.998h4V3.999h7c1.655 0 3 1.3445 3 2.9995s-1.345 2.9995-3 2.9995h-11V24h12c3.86 0 7-3.1395 7-6.9985 0-1.712-.4815-3.634-1.7695-4.9915\"},\"child\":[]}]})(props);\n};\nexport function SiBrevo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zM7.2 4.8h5.747c2.34 0 3.895 1.406 3.895 3.516 0 1.022-.348 1.862-1.09 2.588C17.189 11.812 18 13.22 18 14.785c0 2.86-2.64 5.016-6.164 5.016H7.199v-15zm2.085 1.952v5.537h.07c.233-.432.858-.796 2.249-1.226 2.039-.659 3.037-1.52 3.037-2.655 0-.998-.766-1.656-1.924-1.656H9.285zm4.87 5.266c-.766.385-1.67.748-2.76 1.11-1.229.387-2.11 1.386-2.11 2.407v2.315h2.365c2.387 0 4.149-1.34 4.149-3.155 0-1.067-.625-2.087-1.645-2.677z\"},\"child\":[]}]})(props);\n};\nexport function SiBrex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.69 2.319a3.868 3.868 0 0 0-3.108 1.547l-.759 1.007a1.658 1.658 0 0 1-1.313.656H0V21.68h5.296a3.87 3.87 0 0 0 3.108-1.547l.759-1.006a1.656 1.656 0 0 1 1.313-.657H24V2.319h-5.31Zm1.108 11.949h-5.66a3.87 3.87 0 0 0-3.108 1.547l-.759 1.007a1.658 1.658 0 0 1-1.313.656H4.202V9.731h5.661a3.868 3.868 0 0 0 3.107-1.547l.759-1.006a1.658 1.658 0 0 1 1.313-.657h4.771l-.015 7.747Z\"},\"child\":[]}]})(props);\n};\nexport function SiBricks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.578 0 .405.253v7.038a8.416 8.416 0 0 1 4.742-1.418c2.498 0 4.569.872 6.211 2.616 1.621 1.745 2.431 3.894 2.431 6.448 0 2.565-.816 4.714-2.448 6.447C17.277 23.128 15.212 24 12.725 24c-2.171 0-4.028-.776-5.569-2.329v1.907H2.633V.557L7.578 0Zm4.287 10.447c-1.193 0-2.189.405-2.988 1.215-.799.833-1.198 1.925-1.198 3.275 0 1.35.399 2.436 1.198 3.257.788.822 1.784 1.232 2.988 1.232 1.271 0 2.301-.427 3.088-1.282.777-.844 1.165-1.913 1.165-3.207 0-1.294-.394-2.369-1.182-3.224-.787-.844-1.811-1.266-3.071-1.266Z\"},\"child\":[]}]})(props);\n};\nexport function SiBritishairways (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.489 13.252c-.25.212-.605.444-1.241.767-1.347.72-2.198.983-2.198.983s-1.617-.234-4.207-1.007c0 0 1.306-.378 1.93-.581a40.11 40.11 0 0 0 1.958-.681c1.055-.396 1.73-.761 2.18-1.088.03-.022.058-.046.085-.068 0 0 .32.036.593.113.294.083.604.245.786.386.191.147.28.308.308.358a.681.681 0 0 1 .071.226s.014.085-.003.177a.579.579 0 0 1-.147.313zM24 12.196a.662.662 0 0 0-.08-.157 1.348 1.348 0 0 0-.197-.23 1.685 1.685 0 0 0-.227-.178c-.354-.232-.81-.362-1.215-.416-.627-.083-1.342-.07-1.411-.07-.23-.005-1.722.007-2.105.015-1.702.034-3.787.039-4.333.038-5.636.027-8.089-.094-10.82-.642C1.289 10.094 0 9.658 0 9.658c2.05-.073 14.004-.568 16.186-.627 1.427-.04 2.44-.048 3.253 0 .413.023.802.058 1.287.14a6.2 6.2 0 0 1 1.064.286c.486.18.893.442 1.096.707 0 0 .06.06.14.17.093.126.197.282.234.34.294.447.434.73.484.828.052.102.1.209.145.315.044.104.063.166.076.21.02.064.03.125.035.17Z\"},\"child\":[]}]})(props);\n};\nexport function SiBroadcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.628 0 12 5.372 12 12a12 12 0 0 1-.56 3.63 13.641 13.641 0 0 0-.867-.388c-1.372-.546-2.629-.363-3.888.4 0 0-.459.28-.597.366-.586.37-1.14.717-1.672.717-.508 0-1.007-.135-1.218-1.117-.33-1.533-1.135-5.298-1.486-7.162-.206-1.097-.319-1.688-.436-2.088-.208-.706-.586-1.09-1.124-1.15 0 0-.084-.013-.152-.013-.068 0-.162.014-.162.014-.531.064-.907.447-1.114 1.15-.117.4-.23.99-.436 2.087-.351 1.864-1.156 5.63-1.486 7.162-.21.982-.71 1.117-1.218 1.117-.531 0-1.086-.348-1.672-.717-.138-.086-.597-.366-.597-.366-1.259-.763-2.516-.946-3.888-.4-.301.12-.586.251-.867.387A11.995 11.995 0 0 1 0 12C0 5.372 5.372 0 12 0m8.375 16.976c-.453.152-.855.42-1.256.672-.756.475-1.613 1.014-2.704 1.014-1.614 0-2.749-.964-3.112-2.647C13.023 14.712 12 9.793 12 9.793a496.28 496.28 0 0 1-1.303 6.222c-.362 1.683-1.497 2.647-3.112 2.647-1.09 0-1.946-.539-2.703-1.014-.401-.252-.804-.52-1.256-.672a2.319 2.319 0 0 0-1.414-.01c-.33.097-.644.234-.951.386C3.227 21.292 7.207 24 11.91 24s8.863-2.708 10.83-6.648a5.958 5.958 0 0 0-.95-.386 2.322 2.322 0 0 0-1.415.01\"},\"child\":[]}]})(props);\n};\nexport function SiBruno (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.394 9.583s-.742.511-1.13.275c-.387-.236-.51-.742-.274-1.129.236-.388.742-.511 1.129-.275.388.236.275 1.129.275 1.129m1.48 3.245-.308.82.582.24c.04-.224.254-.372.477-.332.224.041.372.254.332.478-.093.515-.638.813-1.122.613l-.95-.391a.41.41 0 0 1-.228-.524l.448-1.193c.12-.32.426-.533.769-.533h2.525l.239.036c.076.023.148.057.214.101a.817.817 0 0 1 .303.363l.476 1.12c.083.197.002.425-.187.524l-.896.471c-.505.266-1.121-.053-1.196-.62a.411.411 0 0 1 .353-.461.411.411 0 0 1 .461.353l.56-.294-.327-.771zM9.353 17.98c-.959-.514-2.183-1.54-1.961-3.22.029-.225.236-.383.461-.354.225.03.383.236.353.461-.167 1.272.822 2.009 1.546 2.395.348.185.771.151 1.081-.092l.903-.708v-1.045c0-.226.184-.41.411-.41s.411.184.411.41v1.045l.903.708c.19.15.423.22.655.209a.45.45 0 0 1 .074-.019.42.42 0 0 1 .093-.003c.089-.02.176-.051.259-.095.724-.386 1.713-1.123 1.546-2.395a.411.411 0 0 1 .353-.461c.225-.029.432.129.461.354.223 1.688-1.013 2.716-1.974 3.227-.072.038-.145.071-.22.099.148 1.424-.14 2.562-.449 3.24-.169.37-.355.617-.49.732-.194.167-.517.305-.933.366-.531.078-1.227.039-1.945-.182-.576-.177-.973-.686-1.208-1.343-.362-1.009-.352-2.368-.33-2.919m4.54.213a1.81 1.81 0 0 1-.939-.376l-.807-.633-.807.633c-.341.268-.758.397-1.173.384-.012.453-.001 1.219.15 1.922.072.333.174.652.329.908.122.2.275.361.486.425.586.18 1.152.218 1.585.155.227-.033.412-.086.518-.176.115-.099.259-.363.395-.744.213-.597.367-1.46.263-2.498m-8.683-.955-.191.402c-.384.81-1.475.955-2.053.27-.81-.961-1.948-2.505-2.548-4.068-.427-1.115-.576-2.241-.213-3.198C2.894 3.559 6.247 2.969 6.98 2.928c1.34-.865 5.583-2.807 10.424.342.795-.051 4.042.203 6.424 7.252.325.961.162 2.081-.263 3.186-.599 1.557-1.709 3.088-2.5 4.046-.574.695-1.675.553-2.061-.262l-.133-.28c-.219.369-.524.832-.901 1.281-.57.679-1.306 1.32-2.154 1.598a.412.412 0 0 1-.519-.263.4114.4114 0 0 1 .263-.518c.705-.231 1.306-.78 1.781-1.345.556-.662.938-1.355 1.097-1.666l-.245-.518c-.126-.264-.154-.56-.078-.842.246-.924.981-4.015.071-6.043a.4105.4105 0 1 1 .749-.336c.993 2.212.243 5.583-.026 6.591a.405.405 0 0 0 .026.278l.811 1.712c.129.27.494.32.685.089.748-.904 1.801-2.346 2.367-3.817.351-.912.52-1.834.252-2.628-2.447-7.241-5.667-6.687-5.667-6.687a.416.416 0 0 1-.309-.061C12.48.972 8.456 2.917 7.339 3.676a.41.41 0 0 1-.252.07S3.739 3.649.973 10.935c-.297.783-.137 1.701.213 2.612.565 1.475 1.644 2.927 2.408 3.833.192.228.555.177.683-.092l.816-1.723a.4.4 0 0 0 .027-.278c-.269-1.008-1.02-4.38-.027-6.592a.4113.4113 0 0 1 .543-.206c.207.093.3.336.207.543-.911 2.028-.176 5.119.071 6.043.075.282.047.578-.078.842l-.203.427c.117.226 1.249 2.351 2.958 2.911.216.071.334.303.263.519a.4115.4115 0 0 1-.519.262c-1.484-.487-2.606-1.983-3.125-2.798m10.247-7.655s-.114-.893.274-1.129a.821.821 0 0 1 1.129.275c.236.387.113.893-.274 1.129-.388.236-1.129-.275-1.129-.275\"},\"child\":[]}]})(props);\n};\nexport function SiBsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.725 6.664C5.6 6.91 6.353 7.684 6.6 8.556c.27.95-.032 1.905-.671 2.633.783.432 1.44 1.083 1.704 1.956.244.807.185 1.739-.224 2.483-.446.812-1.3 1.457-2.203 1.65-.496.106-1.02.07-1.524.07H.602c-.393 0-.602-.28-.602-.638V9.476C0 5.81 3.889 6.428 4.725 6.664zM1.051 9.63v1.367h3.228c1.258 0 1.461-1.761 1.285-2.272-.184-.533-.687-.893-1.2-1.056-.426-.097-3.313-.784-3.313 1.961zm0 2.357v4.297c0 .116-.006.099.116.099H3.57c.67 0 1.364.022 1.98-.284.782-.387 1.24-1.422 1.158-2.263-.084-.849-.667-1.43-1.44-1.72-.387-.147-.927-.129-1.339-.129H1.05zm14.791-4.77c0-.47.28-.706.854-.706h2.916c2.9 0 4.388 2.797 4.388 5.492 0 2.754-1.797 5.404-4.683 5.404h-2.856c-.471 0-.619-.088-.619-.603V7.218zm1.09.369v8.746h2.311c2.342 0 3.594-2.15 3.594-4.329 0-2.238-1.134-4.417-3.387-4.417h-2.518zm-5.506.017c-.948 0-1.824.776-1.824 1.796 0 .918 1.235 1.45 2.456 2.11 1.292.704 2.67 1.408 2.67 2.902 0 2.054-1.536 3.116-3.518 3.116a4.479 4.479 0 0 1-2.47-.718c-.258-.173-.388-.388-.388-.632 0-.33.159-.488.488-.488.159 0 .33.057.504.172.56.345 1.277.546 1.91.546 1.25 0 2.311-.546 2.311-1.925 0-.861-1.033-1.407-2.153-1.996-1.408-.732-2.988-1.536-2.988-3.03 0-1.882 1.436-2.973 3.232-2.973.775 0 1.622.215 2.441.66a.767.767 0 0 1 .402.661c0 .287-.201.56-.502.56-.173 0-.345-.129-.546-.258-.46-.287-1.279-.503-2.025-.503z\"},\"child\":[]}]})(props);\n};\nexport function SiBspwm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.814 8.437c-.02-.02-.025-.076-.025-.166v-.895c0-.076.005-.12.02-.136.01-.015.055-.025.126-.025h.683c.433 0 .654.211.654.629 0 .422-.221.628-.654.628H5.93c-.06 0-.101-.01-.116-.035zm.146 1.795h.709a.714.714 0 0 0 .502-.176c.131-.116.201-.292.201-.528 0-.231-.065-.402-.196-.513a.762.762 0 0 0-.507-.166h-.75c-.055 0-.09.01-.105.03-.02.02-.025.076-.025.156v1.076c0 .05.01.086.03.1.02.016.065.02.14.02zm11.392-1.61h.492c.211 0 .372-.065.483-.2.11-.136.17-.322.17-.553 0-.433-.22-.654-.653-.654h-.492c-.076 0-.121.01-.136.02-.02.01-.025.045-.025.1v1.082c0 .1.005.155.02.176.015.02.06.03.14.03zM24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12zm-8.041-4.9c0 .06.005.09.015.1.01.01.04.015.1.015h.262c.08 0 .13.01.15.025.016.015.026.056.026.12v2.715c0 .031.005.051.005.061 0 .065-.035.096-.1.096h-.358c-.05 0-.075.01-.085.02-.01.01-.015.045-.015.105v.1c0 .071.005.116.015.132.01.015.045.02.105.02h1.64c.06 0 .095-.005.105-.02.01-.01.02-.05.02-.121v-.161c0-.055-.035-.085-.095-.085-.015 0-.036.005-.066.005-.03.005-.055.005-.07.005h-.261c-.076 0-.121-.005-.136-.015-.02-.01-.025-.046-.025-.106V9.1c0-.071.03-.106.1-.106.01 0 .03.005.06.005h.493c.463 0 .81-.1 1.05-.307.237-.206.358-.483.358-.824 0-.332-.12-.583-.352-.764-.231-.176-.583-.267-1.056-.267h-1.649c-.02 0-.04 0-.07-.005-.03 0-.056-.005-.066-.005-.07 0-.1.03-.1.09V7.1zm-5.47 3.443c0 .035.005.06.025.07.015.016.05.02.106.02h.136c.03 0 .06 0 .08-.004a.12.12 0 0 0 .056-.03c.01-.015.02-.03.03-.04.005-.01.015-.026.025-.051a.335.335 0 0 1 .03-.06c.035-.066.06-.1.075-.1.01 0 .04.02.096.055.236.19.538.28.905.28.432 0 .784-.1 1.055-.3a.984.984 0 0 0 .403-.83 1.14 1.14 0 0 0-.126-.543.885.885 0 0 0-.317-.347 2.183 2.183 0 0 0-.437-.201 5.763 5.763 0 0 0-.478-.146 3.673 3.673 0 0 1-.432-.136.816.816 0 0 1-.322-.211.499.499 0 0 1-.12-.342c0-.15.06-.266.18-.352.121-.085.302-.13.544-.13.206 0 .397.06.578.176a.87.87 0 0 1 .362.472c0 .015.005.05.01.106a.354.354 0 0 0 .03.126c.01.03.035.045.07.045h.186c.05 0 .08-.01.096-.035a.2.2 0 0 0 .025-.111v-.976a.17.17 0 0 0-.02-.09c-.01-.01-.04-.02-.086-.02h-.1a.45.45 0 0 0-.151.015c-.025.01-.05.035-.076.075l-.05.08c-.04.061-.065.086-.08.086-.01 0-.045-.02-.106-.07a1.333 1.333 0 0 0-.79-.236c-.361 0-.658.085-.899.256-.241.171-.357.422-.357.754 0 .201.04.367.12.503a.8.8 0 0 0 .318.317c.13.07.27.13.432.18.156.05.312.096.472.136.156.04.297.091.428.141.13.056.236.13.316.231.08.101.126.227.126.372a.6.6 0 0 1-.206.468c-.136.12-.352.181-.648.181a1.12 1.12 0 0 1-.694-.221 1.014 1.014 0 0 1-.402-.548.395.395 0 0 1-.02-.11c-.006-.051-.016-.086-.036-.101a.25.25 0 0 0-.11-.02h-.136c-.05 0-.08.005-.096.015-.015.01-.02.03-.02.06v.045c0 .02.005.04.005.05v.936c0 .02-.005.04-.005.06v.05zm-5.932-.065c0 .055.005.09.025.11.015.02.046.026.086.026h.065c.03 0 .06-.005.08-.005H6.72c.427 0 .769-.086 1.025-.257.252-.17.383-.437.383-.799a.772.772 0 0 0-.262-.609c-.176-.15-.417-.246-.724-.291.553-.11.835-.407.835-.885 0-.312-.126-.543-.377-.699-.252-.15-.578-.231-.98-.231H4.707c-.025 0-.04-.005-.05-.005-.04 0-.07.01-.08.03-.016.02-.02.055-.02.11v.167c0 .04.004.06.014.065.01.01.04.01.09.01h.378c.03 0 .045.01.055.02.01.01.015.04.015.08v2.695c0 .11-.01.176-.03.197-.02.02-.08.025-.186.025h-.241c-.046 0-.07.01-.08.02-.01.015-.016.05-.016.11v.116zm6.52 3.2c0-.05-.006-.08-.016-.09a.231.231 0 0 0-.097-.013h-.838c-.06 0-.094.007-.104.02-.013.013-.017.054-.017.12v.105c0 .05.007.08.02.09.014.013.05.017.114.017a.76.76 0 0 1 .155.01c.023.007.036.017.036.037 0 .01-.013.05-.036.124l-.232.663c-.04.114-.09.255-.144.423-.04.117-.067.174-.074.174-.01 0-.033-.074-.073-.225a9.152 9.152 0 0 0-.1-.331l-.252-.764a.258.258 0 0 1-.017-.078c0-.02.023-.033.077-.033h.077c.05 0 .08-.004.094-.013.013-.007.02-.03.02-.071v-.188c0-.033-.007-.053-.02-.067-.013-.013-.037-.02-.064-.02-.013 0-.03.003-.053.003-.027.004-.044.004-.057.004h-.862c-.02 0-.03-.004-.037-.004-.033 0-.053.007-.063.02-.014.014-.017.047-.017.094v.1c0 .014-.003.028-.003.044v.037c0 .024.003.04.013.047.01.01.03.014.064.014h.11c.054 0 .087.017.1.05l.028.07a.27.27 0 0 1 .016.067c0 .014-.01.047-.03.094l-.291.684c-.014.037-.037.09-.067.16-.034.075-.05.118-.057.132-.037.08-.06.12-.067.12-.014 0-.03-.023-.044-.07a3.822 3.822 0 0 1-.07-.198c-.027-.08-.044-.14-.054-.174l-.265-.754-.02-.054-.023-.05a.066.066 0 0 1-.007-.034c0-.027.037-.043.117-.043h.135c.036 0 .06-.004.067-.014a.196.196 0 0 0 .013-.087v-.16c0-.038-.007-.061-.017-.074a.071.071 0 0 0-.053-.02c-.007 0-.02.003-.04.003H6.978c-.024 0-.04-.004-.047-.004-.054 0-.077.03-.077.084v.178c0 .047.003.074.016.08.01.01.044.014.101.014h.1a.34.34 0 0 1 .068.006c.016.004.03.01.043.02.01.014.017.02.02.027a.3.3 0 0 1 .017.047c.007.024.01.04.017.05l.697 1.921.013.044c.007.02.01.03.014.037 0 .006.007.013.017.023a.04.04 0 0 0 .033.017.27.27 0 0 0 .057.003h.15c.02 0 .041 0 .058-.003.013 0 .027-.004.04-.004a.06.06 0 0 0 .034-.013.07.07 0 0 1 .02-.014c.006-.003.01-.01.016-.023.007-.01.01-.017.014-.024l.013-.033c.007-.017.01-.03.017-.04l.355-.845c.014-.033.067-.174.168-.422.034-.08.054-.124.067-.124.013 0 .037.054.064.154a4.3 4.3 0 0 0 .144.432l.308.815.017.05a.157.157 0 0 0 .016.047l.024.023a.05.05 0 0 0 .044.02c.016.004.04.004.07.004h.12c.03 0 .058 0 .078-.007a.158.158 0 0 0 .047-.013c.013-.003.023-.013.033-.027l.02-.037a.268.268 0 0 0 .017-.05c.007-.027.01-.047.017-.06l.647-1.87a.841.841 0 0 1 .027-.084.131.131 0 0 1 .036-.03.253.253 0 0 1 .104-.017h.141a.16.16 0 0 0 .07-.01c.007-.007.014-.024.014-.05v-.188zm5.671 2.126c0-.027-.006-.044-.016-.054a.173.173 0 0 0-.077-.013h-.175c-.053 0-.087-.007-.1-.023-.017-.017-.024-.047-.024-.088v-.107l-.057-1.435c0-.013-.003-.026-.003-.046v-.04c0-.03.007-.05.02-.058a.29.29 0 0 1 .104-.013h.094c.064 0 .1-.003.114-.017.013-.01.02-.043.02-.104v-.124c0-.043-.007-.073-.02-.087a.084.084 0 0 0-.06-.023c-.01 0-.027.003-.048.003h-.864a.297.297 0 0 0-.087.01.103.103 0 0 0-.054.037c-.013.017-.02.034-.027.047a.322.322 0 0 0-.023.063.48.48 0 0 1-.02.07l-.279.758c-.073.198-.13.362-.164.496-.033.125-.06.185-.08.185-.02 0-.044-.064-.074-.198a8.58 8.58 0 0 0-.147-.51l-.275-.878a.165.165 0 0 0-.04-.067.194.194 0 0 0-.081-.013h-1.002c-.023 0-.037-.003-.044-.003-.03 0-.05.006-.063.02-.014.013-.017.043-.017.083v.165c0 .04.003.067.017.073.01.01.04.014.093.014h.155c.04 0 .07.006.083.013.014.01.02.027.02.047l-.006.097-.07 1.475v.084c0 .033-.007.06-.02.074-.014.013-.04.02-.081.02h-.168c-.06 0-.097.006-.107.016-.013.01-.017.04-.017.094v.154c0 .037.004.06.017.074.01.014.027.017.054.017h.037c.02 0 .037-.003.05-.003h.905c.04 0 .064-.004.077-.014.01-.006.017-.027.017-.053v-.215c0-.03-.004-.05-.01-.057a.06.06 0 0 0-.04-.013h-.205c-.054 0-.09-.004-.107-.017-.02-.013-.027-.033-.027-.064 0-.01 0-.03.003-.057a.46.46 0 0 0 .007-.06l.027-.73.003-.202c0-.134.003-.251.01-.352.003-.1.01-.15.02-.15.014 0 .044.067.084.2.037.121.094.302.171.537l.389 1.186c.013.047.03.074.047.081.013.01.047.013.1.013h.252c.026 0 .05-.003.07-.016a.119.119 0 0 0 .034-.04.287.287 0 0 0 .02-.064c.006-.027.01-.047.016-.06l.41-1.214c.02-.057.053-.181.103-.369.034-.134.057-.204.07-.204.007 0 .014.043.02.124.004.084.007.184.01.302l.004.174.027.784c0 .02 0 .04.003.067 0 .027.004.044.004.05 0 .03-.01.05-.027.064-.017.014-.047.017-.094.017h-.16c-.051 0-.081.007-.095.017-.013.01-.017.03-.017.063v.198c0 .034.004.054.014.064.01.01.027.013.05.013h.037c.017 0 .03-.003.044-.003h1.132c.054 0 .084-.004.098-.014.01-.006.016-.033.016-.077v-.194zM21.128 12a.173.173 0 0 0-.174-.174h-5.975v-8.78a.173.173 0 1 0-.347 0v8.78H9.294v-8.78a.173.173 0 1 0-.348 0v8.78h-5.9a.174.174 0 0 0 0 .348h8.78v8.78a.173.173 0 1 0 .348 0v-8.78h8.78a.173.173 0 0 0 .173-.174z\"},\"child\":[]}]})(props);\n};\nexport function SiBt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.589 7.91h5.977v1.753H16.56v6.41h-1.97v-6.41h-2zM12 22.523C6.193 22.523 1.477 17.807 1.477 12 1.477 6.193 6.193 1.477 12 1.477c5.807 0 10.523 4.716 10.523 10.523 0 5.807-4.716 10.523-10.523 10.523M12 24c6.626 0 12-5.374 12-12S18.626 0 12 0C5.379 0 0 5.374 0 12s5.379 12 12 12M9.97 13.574c0-.516-.321-.865-.873-.865h-1.32v1.702h1.32c.552 0 .874-.345.874-.837m-.24-3.276c0-.433-.275-.732-.745-.732h-1.21v1.486h1.21c.47 0 .746-.299.746-.754m2.231 3.372c0 1.546-1.09 2.402-2.65 2.402H5.834V7.91h3.249c1.573 0 2.64.805 2.64 2.277 0 .672-.298 1.27-.781 1.634.552.326 1.021.947 1.021 1.85Z\"},\"child\":[]}]})(props);\n};\nexport function SiBuddy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.7 5.307L12.945.253a1.892 1.892 0 00-1.891 0L2.299 5.306a1.892 1.892 0 00-.945 1.638v10.11c0 .675.36 1.3.945 1.637l8.756 5.056a1.892 1.892 0 001.89 0l8.756-5.055c.585-.338.945-.962.945-1.638V6.945c0-.675-.36-1.3-.945-1.638zm-7.45 7.753l-3.805 3.804-1.351-1.351 3.804-3.805-3.804-3.806 1.35-1.35 3.805 3.805 1.351 1.35-1.35 1.353z\"},\"child\":[]}]})(props);\n};\nexport function SiBudibase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 0a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2Zm2 6h2.5v5.22c.59-.634 1.326-.95 2.21-.95a3.372 3.372 0 0 1 2.565 1.13c.178.199.327.422.46.66V6h2.505v5.22c.59-.634 1.324-.95 2.21-.95a3.372 3.372 0 0 1 2.566 1.13c.31.345.55.75.724 1.22.175.47.26.965.26 1.495 0 .54-.09 1.045-.27 1.52a3.73 3.73 0 0 1-.755 1.234c-.32.35-.7.625-1.14.83-.434.2-.905.301-1.415.301-.92 0-1.65-.345-2.186-1.035v.81h-2.5v-1.601a3.595 3.595 0 0 1-1.638 1.525c-.435.2-.905.301-1.41.301-.92 0-1.651-.345-2.186-1.035v.81H4Zm4.035 6.484a1.566 1.566 0 0 0-1.125.487 1.733 1.733 0 0 0-.474 1.174 1.623 1.623 0 0 0 .468 1.16c.145.145.322.265.522.355.2.09.409.135.629.135a1.566 1.566 0 0 0 1.125-.484c.145-.15.26-.326.345-.526.08-.205.125-.41.125-.63a1.675 1.675 0 0 0-.47-1.175c-.15-.15-.32-.27-.51-.36a1.491 1.491 0 0 0-.635-.136Zm7.74 0a1.566 1.566 0 0 0-1.125.487 1.733 1.733 0 0 0-.474 1.174 1.623 1.623 0 0 0 .469 1.16c.145.145.32.265.52.355.2.09.41.135.63.135a1.566 1.566 0 0 0 1.125-.484c.145-.15.26-.326.346-.526.08-.205.125-.41.125-.63a1.675 1.675 0 0 0-.471-1.175c-.15-.15-.32-.27-.51-.36a1.491 1.491 0 0 0-.635-.136Z\"},\"child\":[]}]})(props);\n};\nexport function SiBuefy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.358.004c-.008 0-.175.02-.375.031-.64.05-1.275.142-1.902.278-.402.09-1.496.402-1.54.433-.738.259-1.472.606-2.17.957-.606.332-1.544.938-1.689 1.094a6.04 6.04 0 01-.304.242c-.387.309-1.172 1.102-1.528 1.543-1.203 1.512-1.87 3.145-2.074 5.063-.066.66 0 2.507.086 2.507.02 0 .32-.132.684-.304.191-.086.418-.192.511-.235.094-.043.602-.273 1.122-.515.527-.243 1.046-.48 1.16-.532l.488-.226c.156-.07.297-.13.316-.13.02 0-.007-.081-.058-.183a4.262 4.262 0 01-.48-1.996c0-1.152.402-2.246 1.23-3.344.388-.49.831-.932 1.32-1.32.07-.054.172-.129.227-.176.34-.261 1.437-.851 1.59-.851.035 0 .046.023.035.066-.012.04-.09.422-.18.844-.082.434-.16.816-.172.86-.008.038-.043.21-.074.378-.035.168-.066.34-.074.38-.012.042-.094.464-.192.948-.093.48-.19.95-.21 1.047-.02.094-.044.203-.047.246l-.157.801c-.01.043-.113.555-.23 1.14-.117.587-.219 1.098-.23 1.141l-.153.766a8.49 8.49 0 01-.074.375c-.043.198-.081.398-.114.598a1.384 1.384 0 00-.035.148c-.01.05-.062.3-.113.563-.055.261-.105.539-.117.609-.012.07-.047.234-.074.363-.027.113-.05.226-.07.34-.178.9-.36 1.8-.544 2.7l-.07.378c-.012.043-.094.469-.195.95l-.207 1.046a3.51 3.51 0 00-.047.25l-.156.797c-.012.043-.118.559-.235 1.14-.113.587-.215 1.099-.222 1.134-.05.23-.286 1.437-.3 1.53l-.02.122 3.546-.012c3.137 0 4.184-.02 4.723-.07l.457-.043c.168-.012.328-.031.363-.035.035-.008.152-.024.266-.035.113-.012.351-.051.527-.086.18-.032.367-.063.414-.07.047-.012.203-.044.344-.079.137-.03.273-.062.308-.07.094-.02.73-.207.817-.242.043-.02.238-.098.433-.18 1.258-.5 2.297-1.312 3.032-2.371.136-.195.511-.824.511-.855 0-.012.07-.16.15-.332a7.814 7.814 0 00.64-2.258c.05-.383.02-1.817-.05-1.926a1.215 1.215 0 01-.036-.191 6.046 6.046 0 00-3.172-4.23 6.71 6.71 0 00-1.23-.497l-.188-.043.308-.203c.133-.088.263-.18.39-.274.252-.2.497-.408.734-.625.525-.535.845-.949 1.17-1.503.265-.45.546-1.157.624-1.56a.641.641 0 01.032-.14c.093-.265.093-1.61 0-1.761-.008-.012-.02-.075-.032-.137a4.155 4.155 0 00-.1-.344c-.415-1.27-1.368-2.328-2.68-2.976C17.55.632 16.78.344 16.525.3a2.157 2.157 0 01-.265-.059 8.852 8.852 0 00-.93-.168 10.58 10.58 0 00-1.3-.073c-.368.004-.669-.001-.673.003zm1.645 1.812c.972.254 1.742.891 2.082 1.723.207.504.254.79.254 1.543 0 .613-.02.89-.114 1.277a4.284 4.284 0 01-2.28 2.918c-.22.114-.41.2-.512.235-.012 0-.047.02-.079.031-.273.113-1.418.371-1.46.328-.012-.012.042-.297.11-.644.07-.344.14-.688.147-.762a1.93 1.93 0 01.04-.192 1.05 1.05 0 00.034-.191c.012-.078.032-.16.04-.191.011-.032.027-.114.035-.188.011-.07.074-.39.136-.703.067-.316.13-.613.137-.664.008-.055.09-.48.192-.95.093-.472.18-.91.19-.972.013-.062.044-.234.075-.379.031-.148.06-.308.07-.36.172-.91.375-1.894.383-1.933.024-.054.055-.047.52.074zM13.84 11.824c.191.028.508.086.82.16.172.036.664.235.926.371 1.465.758 2.273 2.356 2.098 4.133a7.38 7.38 0 01-.11.664c-.012.024-.023.09-.039.153a8.4 8.4 0 01-.352.949c-1.082 2.172-3.394 3.5-6.199 3.55l-.476.012.023-.105.043-.203c.012-.055.031-.184.055-.285l.058-.305c.012-.066.024-.148.036-.191.007-.043.085-.446.168-.895.09-.445.183-.926.214-1.062l.08-.399c.01-.086.022-.18.034-.21.011-.032.023-.099.035-.15.012-.054.04-.198.058-.323.024-.125.106-.528.176-.895.05-.26.102-.518.153-.777.007-.067.043-.235.07-.38.055-.261.078-.386.113-.609l.094-.472.285-1.465c.117-.61.223-1.14.23-1.188.012-.054.055-.086.126-.093.187-.024 1.05-.008 1.28.015z\"},\"child\":[]}]})(props);\n};\nexport function SiBuffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.371 5.476L11.943 0l10.686 5.476-10.686 5.495zm3.36 4.81l7.212 3.547 7.288-3.547 3.398 1.655-10.686 5.202L1.371 11.94zm0 6.171l7.212 3.911 7.288-3.91 3.398 1.815L11.943 24 1.371 18.273z\"},\"child\":[]}]})(props);\n};\nexport function SiBugatti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2.978h18.593c.021.004.042.012.063.013.436.019.863.09 1.279.218 1.459.451 2.507 1.367 3.117 2.772.454 1.046.5 2.259.316 3.156a4.634 4.634 0 0 1-1.37 2.482c-.014.014-.027.03-.04.045.021.026.052.04.077.061a4.774 4.774 0 0 1 1.951 3.564c.001.021.01.042.014.063v.79c-.005.027-.012.053-.014.08-.004.046-.002.093-.007.14a5.501 5.501 0 0 1-.21 1.047c-.398 1.278-1.167 2.262-2.336 2.924-.836.474-1.744.686-2.7.687-6.24.004-12.48.002-18.72.002v-4.74h2.988l.001 1.738c.134.016 7.226.01 7.286-.006v-4.668h-3.06v1.425c-.102.019-2.928.014-2.986-.004V8.912h2.986v1.424c.103.019 3.003.014 3.06-.003V5.976H3V7.51H.008Zm13.753 15.05h4.744c.254 0 .505-.023.75-.09.77-.21 1.3-.683 1.546-1.447a2.605 2.605 0 0 0-.007-1.636 2.068 2.068 0 0 0-1.12-1.274 2.553 2.553 0 0 0-1.092-.239h-4.82zm.003-12.058v4.377h4.397a2.5 2.5 0 0 0 .723-.103c.678-.203 1.147-.63 1.376-1.304.145-.428.163-.868.068-1.308-.161-.742-.598-1.251-1.313-1.515a2.711 2.711 0 0 0-.947-.147Z\"},\"child\":[]}]})(props);\n};\nexport function SiBugcrowd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12L18 1.387H6L0 12l6 10.613h12zm-5.782 1.658c-.003.825-.122 1.569-.354 2.231a5.05 5.05 0 0 1-.99 1.708 4.316 4.316 0 0 1-1.503 1.093 4.69 4.69 0 0 1-1.896.385 4.158 4.158 0 0 1-1.145-.152 3.754 3.754 0 0 1-.868-.36 3.792 3.792 0 0 1-.601-.435 3.023 3.023 0 0 1-.466-.514h-.04l.02.193c.011.166.018.331.02.497v.528H7.961V7.062c0-.151-.04-.263-.114-.337-.077-.074-.19-.109-.33-.109h-.811V4.425h2.452c.473-.003.824.108 1.048.331.222.223.333.576.33 1.049v3.003c-.003.258-.01.467-.02.626l-.02.247h.04a2.898 2.898 0 0 1 .463-.507c.156-.143.354-.284.6-.426.245-.142.538-.261.876-.36.38-.1.77-.15 1.162-.148.702.003 1.334.135 1.894.395a4.118 4.118 0 0 1 1.446 1.11c.4.48.707 1.052.92 1.715.212.658.317 1.392.32 2.198m-2.803 1.406c.138-.399.206-.852.209-1.366-.003-.659-.112-1.231-.328-1.718-.216-.484-.517-.859-.902-1.125a2.347 2.347 0 0 0-1.344-.404 2.57 2.57 0 0 0-.969.186 2.372 2.372 0 0 0-.83.589 2.839 2.839 0 0 0-.579 1.015c-.141.413-.212.906-.216 1.477 0 .397.053.792.159 1.174.101.366.265.712.483 1.02.211.3.486.548.805.722.32.176.698.267 1.127.27.343.002.683-.07.997-.213a2.43 2.43 0 0 0 .824-.623c.24-.273.428-.607.564-1.004Z\"},\"child\":[]}]})(props);\n};\nexport function SiBugsnag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24c-4.596 0-8.336-3.74-8.336-8.336v-4.135a.62.62 0 01.62-.62h2.957L7.23 1.337 4.903 2.77v5.45a.62.62 0 01-1.24 0V2.7c0-.384.204-.749.53-.95L6.773.166a1.114 1.114 0 011.699.949l.01 9.796h3.52a4.759 4.759 0 014.753 4.754 4.759 4.759 0 01-4.753 4.753 4.759 4.759 0 01-4.754-4.753l-.003-3.515H4.903v3.515c0 3.912 3.183 7.097 7.097 7.097a7.104 7.104 0 007.097-7.097c0-3.915-3.184-7.098-7.097-7.098h-1.076a.62.62 0 010-1.24H12c4.596 0 8.336 3.74 8.336 8.336S16.596 24 12 24zM8.482 12.15l.004 3.514A3.518 3.518 0 0012 19.178a3.518 3.518 0 003.514-3.514A3.518 3.518 0 0012 12.149zm4.513 3.514a.995.995 0 01-.995.994.995.995 0 01-.995-.994.995.995 0 01.995-.995.995.995 0 01.995.995Z\"},\"child\":[]}]})(props);\n};\nexport function SiBuhl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3409 10.8756a1.697 1.697 0 0 0-.4196-.7807 1.593 1.593 0 0 0-.76-.3968 5.17 5.17 0 0 0-1.1423-.1128c-.1072 0-.2232.0044-.36.0136a6.4 6.4 0 0 0-.406.04l-.4.054c-.1292.018-.25.0316-.3524.04-.0716 0-.116-.0224-.1336-.0632V6.941a.124.124 0 0 0-.0328-.1032.12.12 0 0 0-.1028-.0352h-1.0083a.09.09 0 0 0-.0492.0092.12.12 0 0 0-.08.1308v.0436c0 .0272-.0044.054-.0044.0904l.0044.1084v9.7196a.124.124 0 0 0 .0328.1032.12.12 0 0 0 .1008.0368h1c.0891 0 .134-.0452.134-.14v-6.0798a.173.173 0 0 1 .12-.0992 5.48 5.48 0 0 1 1.2179-.1128 3.2 3.2 0 0 1 .7675.0768.88.88 0 0 1 .4596.2664 1.09 1.09 0 0 1 .2232.5148 3.13 3.13 0 0 1 .058.6776v4.7518c0 .0948.0448.14.1292.14h.9952c.0892 0 .1292-.0452.1292-.14V12.136a4.8 4.8 0 0 0-.12-1.2604ZM1.3876 15.3243H.134c-.0892 0-.134.04-.134.1248v1.2671c0 .0848.0448.1248.134.1248h1.2536c.0892 0 .134-.04.134-.1248v-1.2671a.1176.1176 0 0 0-.134-.1248M23.8664 6.801h-1c-.0892 0-.134.0452-.134.14v9.9652a.124.124 0 0 0 .0328.1032.12.12 0 0 0 .1012.0368h1c.0892 0 .1336-.0452.1336-.14V6.941c.0004-.0948-.044-.14-.1336-.14m-9.1689 3.0455h-.9952c-.0892 0-.1292.0448-.1292.134v5.9146c0 .0716-.0448.12-.1291.1472a3.6 3.6 0 0 1-.5044.08 6.1 6.1 0 0 1-.5844.0268 3.66 3.66 0 0 1-.812-.076.926.926 0 0 1-.754-.7716 3.63 3.63 0 0 1-.0716-.794v-4.529a.1168.1168 0 0 0-.1292-.134h-.9951c-.0892 0-.1292.0448-.1292.134v4.6678a5 5 0 0 0 .1292 1.236 1.576 1.576 0 0 0 .4596.7807 1.91 1.91 0 0 0 .8923.4148 7 7 0 0 0 1.428.12c.156 0 .3348-.0088.5312-.0224s.4-.0356.6111-.0624q.3169-.0402.6248-.0936c.2052-.0356.3972-.0716.5712-.1072.0892-.018.1292-.0624.1292-.134V9.9785a.1288.1288 0 0 0-.1432-.134Zm-7.023.5587a1.97 1.97 0 0 0-.9231-.6051 4.67 4.67 0 0 0-1.41-.1852 4.9 4.9 0 0 0-.7364.054 3.9 3.9 0 0 1-.4727.054q-.1072 0-.1072-.0948V6.9366a.12.12 0 0 0-.0316-.1004.116.116 0 0 0-.0984-.0332h-1c-.0888 0-.1288.0432-.1288.1788v9.8368c0 .018.04.0632.116.0904a8.7 8.7 0 0 0 .9864.2076 8.4 8.4 0 0 0 1.2227.08 4.6 4.6 0 0 0 1.6-.24 2.09 2.09 0 0 0 .9903-.7495 3.15 3.15 0 0 0 .5044-1.28 9.93 9.93 0 0 0 .1428-1.8291 7.1 7.1 0 0 0-.1516-1.6036 2.55 2.55 0 0 0-.5028-1.0892m-.72 4.2591a2.2 2.2 0 0 1-.2631.9124 1.102 1.102 0 0 1-.5888.4832 3.2 3.2 0 0 1-1.0308.1356c-.1472 0-.32-.0092-.5132-.0224a1.84 1.84 0 0 1-.446-.0768.135.135 0 0 1-.0935-.1492v-4.9955a.185.185 0 0 1 .1072-.194 3.7 3.7 0 0 1 .4195-.08 4.2 4.2 0 0 1 .6156-.04 3.15 3.15 0 0 1 .8968.1084 1.04 1.04 0 0 1 .5712.4064 1.98 1.98 0 0 1 .2968.8104 7.7 7.7 0 0 1 .0848 1.2827 12.9 12.9 0 0 1-.0536 1.418zm-5.567-4.9078H.134c-.0892 0-.134.04-.134.1248v1.2671c0 .0848.0448.1248.134.1248h1.2536c.0892 0 .134-.04.134-.1248V9.8813a.1176.1176 0 0 0-.134-.1248\"},\"child\":[]}]})(props);\n};\nexport function SiBuildkite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.613 8.143l-7.668-3.856v7.712l7.668-3.855zM8.166 15.857V8.143L.387 4.287V12l7.78 3.857zM.183 3.958a.382.382 0 01.377-.017l7.606 3.771 7.607-3.771a.386.386 0 01.346 0l7.668 3.857a.386.386 0 01.213.345v7.71a.388.388 0 01-.213.346l-7.668 3.86a.389.389 0 01-.562-.345v-7.09l-7.219 3.58a.392.392 0 01-.344 0L.215 12.346A.387.387 0 010 12V4.287a.385.385 0 01.183-.329z\"},\"child\":[]}]})(props);\n};\nexport function SiBuiltbybit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.877.032 1.252 5.885a.253.253 0 0 0 .003.446l5.679 3.02c.077.041.17.04.246-.004l4.694-2.697a.254.254 0 0 1 .253 0l4.692 2.697a.253.253 0 0 0 .246.004l5.682-3.021a.253.253 0 0 0 .003-.446L12.122.031a.254.254 0 0 0-.245 0ZM6.924 10.898l-5.71-3.036a.254.254 0 0 0-.373.224V18.25c0 .093.05.178.131.222l9.976 5.495a.254.254 0 0 0 .376-.222v-6.053a.255.255 0 0 0-.127-.22l-4.012-2.305a.252.252 0 0 1-.127-.22v-3.825a.253.253 0 0 0-.135-.224Zm10.152 0 5.71-3.035a.254.254 0 0 1 .373.224v10.164c0 .093-.05.178-.131.222l-9.976 5.495a.254.254 0 0 1-.376-.222v-6.053c0-.091.049-.175.127-.22l4.012-2.305a.252.252 0 0 0 .127-.22v-3.825c0-.094.052-.18.135-.224Z\"},\"child\":[]}]})(props);\n};\nexport function SiBukalapak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.976 23.845a3.158 3.158 0 1 1-1.95-6.008 3.158 3.158 0 0 1 1.95 6.008Zm6.554-2.883c4.047-1.315 7.315-5.981 5.689-10.984-1.626-5.003-7.012-6.856-11.058-5.541a1.89 1.89 0 0 0-1.252 2.249l.414 1.682a1.892 1.892 0 0 0 2.42 1.348l.162-.053c1.861-.606 3.592.504 4.071 2.019.505 1.507-.244 3.422-2.106 4.027l-.162.054a1.891 1.891 0 0 0-1.166 2.512l.653 1.604a1.89 1.89 0 0 0 2.335 1.083Zm-6.962-7.982L7.841 1.752A2.3 2.3 0 0 0 4.897.113l-2.952.959A2.3 2.3 0 0 0 .526 4.128L4.92 14.815a2.3 2.3 0 0 0 2.841 1.318l1.285-.417a2.298 2.298 0 0 0 1.522-2.736Z\"},\"child\":[]}]})(props);\n};\nexport function SiBulma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.25 0l-6 6 -1.5 10.5 7.5 7.5 9 -6 -6 -6 4.5 -4.5 -7.5 -7.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiBun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22.596c6.628 0 12-4.338 12-9.688 0-3.318-2.057-6.248-5.219-7.986-1.286-.715-2.297-1.357-3.139-1.89C14.058 2.025 13.08 1.404 12 1.404c-1.097 0-2.334.785-3.966 1.821a49.92 49.92 0 0 1-2.816 1.697C2.057 6.66 0 9.59 0 12.908c0 5.35 5.372 9.687 12 9.687v.001ZM10.599 4.715c.334-.759.503-1.58.498-2.409 0-.145.202-.187.23-.029.658 2.783-.902 4.162-2.057 4.624-.124.048-.199-.121-.103-.209a5.763 5.763 0 0 0 1.432-1.977Zm2.058-.102a5.82 5.82 0 0 0-.782-2.306v-.016c-.069-.123.086-.263.185-.172 1.962 2.111 1.307 4.067.556 5.051-.082.103-.23-.003-.189-.126a5.85 5.85 0 0 0 .23-2.431Zm1.776-.561a5.727 5.727 0 0 0-1.612-1.806v-.014c-.112-.085-.024-.274.114-.218 2.595 1.087 2.774 3.18 2.459 4.407a.116.116 0 0 1-.049.071.11.11 0 0 1-.153-.026.122.122 0 0 1-.022-.083 5.891 5.891 0 0 0-.737-2.331Zm-5.087.561c-.617.546-1.282.76-2.063 1-.117 0-.195-.078-.156-.181 1.752-.909 2.376-1.649 2.999-2.778 0 0 .155-.118.188.085 0 .304-.349 1.329-.968 1.874Zm4.945 11.237a2.957 2.957 0 0 1-.937 1.553c-.346.346-.8.565-1.286.62a2.178 2.178 0 0 1-1.327-.62 2.955 2.955 0 0 1-.925-1.553.244.244 0 0 1 .064-.198.234.234 0 0 1 .193-.069h3.965a.226.226 0 0 1 .19.07c.05.053.073.125.063.197Zm-5.458-2.176a1.862 1.862 0 0 1-2.384-.245 1.98 1.98 0 0 1-.233-2.447c.207-.319.503-.566.848-.713a1.84 1.84 0 0 1 1.092-.11c.366.075.703.261.967.531a1.98 1.98 0 0 1 .408 2.114 1.931 1.931 0 0 1-.698.869v.001Zm8.495.005a1.86 1.86 0 0 1-2.381-.253 1.964 1.964 0 0 1-.547-1.366c0-.384.11-.76.32-1.079.207-.319.503-.567.849-.713a1.844 1.844 0 0 1 1.093-.108c.367.076.704.262.968.534a1.98 1.98 0 0 1 .4 2.117 1.932 1.932 0 0 1-.702.868Z\"},\"child\":[]}]})(props);\n};\nexport function SiBungie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.864 12.77-1.1007-.8182V.4648L12.4037.9653 2.044.4656v2.9316L.4312 2.7555c-.06-.0253-.227-.0542-.3499.0823-.1358.1509-.0945.384.0753.484.629.389 1.2582.7778 1.8874 1.1665v7.538c.015 3.2383 2.4585 5.9808 4.8684 7.9678 2.3723 1.9447 4.7727 3.1716 5.0747 3.323.07.0362.2156.1098.4323.218l.4-.2188c.2-.0996 2.6523-1.3367 5.0748-3.323 2.1925-1.8066 4.4-4.2416 4.7946-7.1025l.8598.4236c.1934.0967.4625-.05.451-.2981-.0065-.1693-.1358-.2444-.1357-.2463zM2.408.8476l9.9957.4817c3.3321-.16 6.6643-.3215 9.9964-.4824V11.681l-.4918-.3655.0039-.3609V1.3042l-9.5038.4628-9.503-.4628v2.435l-.4974-.1977Zm15.9223 2.941v-.4464h1.638l-.9531 2.2562h-.5288l.7837-1.8098zM11.857 8.5472c.2416.0972.371.342.371.342l.5955 1.0888 1.9368 1.2795c-.1718.3114-.2337.5578-.2651.6558a.897.897 0 0 0-.0196.0714l.2777 1.4654c-.0142.0047-.0275.0063-.0416.011-.4038.134-.7649.3613-1.1351.5656-.255.1432-.3047.1696-.4323.2157-.355.128-.606.0754-.8198.0164-.0286-.0082-.0575-.0152-.0863-.0228-.2338-.0431-.5844-.3444-.866-.586-.3921-.3351-.5167-.434-.8096-.5664-.0137-.0074-.0283-.013-.0424-.0195l.448-1.5713c-.5937-.966-1.1863-1.9328-1.7792-2.8993a.1434.1434 0 0 1 .0126-.1891l1.2112-2.2538c.0443-.069.1362-.0816.1961-.0423.8363.3395 1.658.7123 2.4812 1.0817.0714.029.1036.113.0738.1867l-.5436.8684c-.0332.0802-.1212.1068-.1836.08l-1.2426-.498-.1874.3082c-.0024.0008.193.0777.8503.4119zm6.7692 6.9738c.0572.1608-.1389.3452-.1805.4903-.0172.0596-.0086.1397-.0298.2016-.0886.2503-.2879.4676-.4165.6974a.2579.2579 0 0 1-.1004-.0306c-.1342-.073.3036-.5828.3389-.644.0839-.1428-.728-.1428-.775-.1663-.1695-.0832-.2958-.3005-.361-.47-.0666-.174-.1223-.495.1036-.5757.0977-.0379.2105.0163.317-.022.0823-.0306.1537-.1263.207-.1867-.2384-.1915-.4612-.2605-.6809-.2605-.3781 0-.7476.2055-1.1728.3538-.2886.055-.5561.098-.6754.1224-.5083.1035-1.015.5397-1.4167.673-.6198.2249-1.1461.1914-1.1971.1875-.5797-.0455-.9579-.0494-1.827-.7829-.452-.3575-.568-.6149-1.7447-.862-.5201-.1043-.9947-.2259-.9665-.5161.0079-.1828.3177-.3562.237-.5398-.0424-.0964-.084-.3286-.0134-.48-.149-.2825-.2855-.3444-.6888-.47-.2398-.0747-.437-.07-.4502-.0674.0156.0808.0196.1656.0054.2464-.0365.1955-.1314.6952-.5161.6314-.0165-.0447.1655-.2541-.1255-.5961-.175-.2017-.5296-.7782-.146-1.0528.4331-.3031.9909-.1012 1.3227.073.103.0886.8765.1811 1.2347.2557.4244.084.7484.4778.4503.7735-.1938.1593-.5036.3781-.353.448.103.023.5009.1161.5766.1373.229.062.491.1412.717.2314.0085.0031.236.0972.3577.1757.4377.2809 1.0308.965 1.5195 1.056.0847.0195.28.0901.5475.0901.3937 0 .7335-.1807.8308-.2377.0651-.0345.1279-.0698.1914-.105.368-.2072.7092-.415 1.066-.5343.2852-.095.4896-.0988.5178-.0988.2503-.0283.4911-.0424.5664-.0667.3742-.1177.757-.2534 1.1477-.2534.5264 0 .8862.245 1.157.6103.0777.1043.4606.641.3562.7743-.116.1506-.3702.3106-.4016.5115-.0304.2039.07.2033.198.1902.128-.013.2343-.0217.2727.088zm-4.5452 2.8908c.0478.0016.0298.066.0635.051.0322-.0157.0596-.0204.0792.033.0251.0698-.065.0416-.0415.0714.0306.04-.0738.1835-.1389.215-.0651.0297-.0627-.0503-.1106-.051-.0494-.0017-.0337.0305-.0565-.0103-.0227-.04-.0063-.0722.0189-.0949.025-.0235-.004-.0651-.004-.0651l-.1192-.375-.9986.8112 1.0041.8911s.164.3436.0824.3397c-.2008-.0071-.3366-.0361-.3366-.0361l-1.11-.9021-1.11.9021s-.1357.029-.3365.036c-.0824.0032.0823-.3396.0823-.3396l1.0042-.8911-.9987-.8112-.1192.375s-.029.0416-.004.0651c.0252.0235.0417.055.019.095-.0228.0407-.0072.0085-.0566.0101-.0478.0008-.0455.0808-.1106.051-.065-.0306-.1694-.175-.1388-.215.0235-.0297-.0667-.0007-.0424-.0713.0196-.0534.0463-.0487.0792-.033.0338.015.015-.0486.0636-.051.0698-.0016.0988-.5232.0988-.5232l-.6166-.5444-.091-.1075s-.0965.0188-.1623-.0431c-.0667-.062-.0863-.2354-.0204-.3146.062-.0738.1945-.0879.309.0227.0651.062.0526.1318.0526.1318l.1114.0942.6519.4957s.5177-.1757.513-.2235c-.0047-.0479.0612-.0377.0424-.0683-.0196-.0298-.0283-.0572.0243-.0823.0667-.033.0486.0596.076.0329.0362-.0353.1954.047.2339.1075.0376.0604-.0432.0674-.0385.116.0047.0471.0353.0291-.0024.0558-.0376.0282-.0721.0141-.098-.0078-.037-.029-.0165-.044-.0165-.044l-.4064.2723 1.0065.8935 1.0065-.8935-.4064-.2723s.0204.015-.0164.044c-.026.022-.0604.0353-.0981.0078-.0377-.0267-.0071-.0086-.0024-.0557.0047-.0487-.076-.0557-.0384-.1161.0392-.0604.1976-.1428.2337-.1075.0267.0267.0094-.0667.0761-.033.0526.0252.0447.0526.0243.0824-.0188.0306.0471.0204.0424.0683-.0039.0478.513.2235.513.2235l.652-.4957.1113-.0942s-.0133-.0698.0518-.1318c.1145-.1106.2471-.0965.309-.0227.066.0792.0464.2526-.0203.3146-.066.062-.1624.0431-.1624.0431l-.091.1075-.6166.5444c.0012-.0004.0341.5232.1005.5232zM12.089 6.459c-.1982-.0848-.3838-.1637-1.2763-.5452l.7719-1.2998a.144.144 0 0 1 .1945-.0502l.9469.56a.1412.1412 0 0 1 .051.193zm.9367-.9837c.0426-.0698.1337-.0853.1953-.047l.8653.5122a.14.14 0 0 1 .047.1938c-.1688.2688-.4737.7593-.6887 1.1045a.4022.4022 0 0 0-.164-.2244.3808.3808 0 0 0-.0972-.0596l-.8379-.3758Zm1.2763.8715a.1432.1432 0 0 1 .1962-.0455l.7781.4582a.141.141 0 0 1 .0455.1937c-.8974 1.4307-1.0436 1.667-1.2983 2.0734-.0063.011-.011.022-.0165.033a.141.141 0 0 1-.1906.04l-.7774-.459c-.1067-.0648-.053-.1937-.0455-.1937.0057 0 .466-.7403 1.3085-2.1zm1.1477.8888a.1462.1462 0 0 1 .1969-.0462l.6166.3679a.1401.1401 0 0 1 .047.1937L15.1 9.6784c-.0447.071-.1377.0833-.1954.0463l-.6181-.3687a.1383.1383 0 0 1-.0455-.193zM.2868 3.1015c-.0536-.0318-.0323-.1258.0502-.1068L7.224 5.7325l-.1295-2.4044 3.4893 2.4703s-.04-.0165-.0996-.0165c-.1155 0-.2056.0594-.229.117-.2357.4394-.4724.8785-.7084 1.3178l-.888-.6205-.375 1.4466Zm17.376 16.6118c-2.3864 1.958-4.8198 3.1865-5.012 3.2822l-.2393.1302c-.0825-.0422-.1652-.0842-.2479-.1263-.211-.1043-2.6389-1.332-5.0198-3.2861-2.3855-1.9596-4.7334-4.6456-4.7358-7.687v-7.312c.1663.1017.3316.205.4974.3075v7.0076c0 5.7988 8.9264 10.3456 9.3069 10.5362l.2047.1043.1899-.1043c.3687-.186 8.8205-4.4958 9.2778-10.0702.1528.0746.305.1506.4574.226-.3232 2.7534-2.4766 5.1837-4.6794 6.9919zm6.0239-6.624h-.0016c-.0086 0-.022-.004-.022-.004l-5.5383-2.7284-.3805 2.5566-4.651-3.1112-.637-1.1735L14.495 9.781l.2761.1648c.0694.0428.1822.0604.2165.0604.2125 0 .3294-.1921.3295-.1922l.1482-.2361.142-.2095 1.074.8865.3412-2.2522 6.693 4.9774c.0502.0326.0274.1076-.029.109z\"},\"child\":[]}]})(props);\n};\nexport function SiBunq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.414 14.62h1.103v-2.896a2.484 2.484 0 0 0-2.483-2.483 2.484 2.484 0 0 0-2.482 2.483v2.897h1.103v-2.897c0-.837.618-1.517 1.38-1.517.76 0 1.379.68 1.379 1.517zm-6.07-5.24h1.104v2.896a2.484 2.484 0 0 1-2.482 2.483 2.484 2.484 0 0 1-2.483-2.483V9.379h1.103v2.897c0 .837.618 1.517 1.38 1.517.76 0 1.379-.68 1.379-1.517zM0 7.034V12c0 .046.001.093.004.139H0v2.482h.965l.055-.48A2.76 2.76 0 0 0 5.518 12a2.76 2.76 0 0 0-4.414-2.208V7.035zm2.69 3.172c.951 0 1.724.803 1.724 1.793 0 .99-.773 1.793-1.725 1.793-.951 0-1.724-.803-1.724-1.793 0-.99.773-1.793 1.724-1.793zm18.552-.965A2.76 2.76 0 0 0 18.482 12a2.76 2.76 0 0 0 4.414 2.207v2.758H24V12a2.15 2.15 0 0 0-.004-.139H24V9.38h-.965l-.055.48a2.741 2.741 0 0 0-1.738-.617zm.069.965c.951 0 1.724.803 1.724 1.793 0 .99-.773 1.793-1.724 1.793-.952 0-1.725-.803-1.725-1.793 0-.99.773-1.793 1.725-1.793Z\"},\"child\":[]}]})(props);\n};\nexport function SiBurgerking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.39 12.614c-.72 0-1.11.538-1.11 1.215v1.508c0 .125-.043.182-.12.182-.056 0-.098-.035-.147-.133l-.971-1.885c-.37-.72-.755-.887-1.196-.887-.734 0-1.14.552-1.14 1.243v4.314c0 .678.392 1.215 1.112 1.215.72 0 1.112-.537 1.112-1.215v-1.507c0-.126.042-.182.119-.182.055 0 .097.035.146.133l.972 1.885c.37.719.769.886 1.195.886.735 0 1.14-.551 1.14-1.242v-4.315c0-.677-.391-1.215-1.111-1.215zm-4.02-.405c.364 0 .68-.286.68-.642 0-.238-.099-.412-.224-.572-.203-.266-.385-.496-.476-.74-.02-.056-.007-.105.056-.154.217-.167.469-.537.469-1.124 0-.886-.734-1.389-1.622-1.389h-.79c-.553 0-.819.321-.819.754v3.114c0 .419.245.754.692.754.448 0 .693-.335.693-.754v-.74c0-.09.042-.133.111-.133.084 0 .112.049.126.133.063.356.23.837.42 1.082.237.314.46.411.685.411zm-1.146-2.666h-.098c-.119 0-.175-.07-.175-.161v-.474c0-.09.056-.16.175-.16h.098c.294 0 .385.208.385.39 0 .174-.091.405-.385.405zm-3.761 2.666c1.132 0 1.734-.677 1.734-1.528V8.328c0-.419-.245-.754-.692-.754-.448 0-.693.335-.693.754v2.276c0 .167-.097.363-.35.363-.251 0-.335-.196-.335-.363V8.328c0-.419-.252-.754-.7-.754-.447 0-.691.335-.691.754v2.353c0 .852.594 1.528 1.727 1.528zm12.011-.034c.392 0 .7-.23.7-.65 0-.412-.308-.642-.7-.642h-.63c-.118 0-.174-.07-.174-.16v-.133c0-.091.056-.161.175-.161h.482c.336 0 .602-.202.602-.559 0-.355-.266-.558-.602-.558h-.482c-.12 0-.175-.07-.175-.16V9.04c0-.091.056-.161.175-.161h.629c.392 0 .7-.23.7-.65 0-.411-.308-.642-.7-.642h-1.321c-.553 0-.818.321-.818.754v3.079c0 .432.265.754.818.754h1.321zm2.642 3.127h-.342c-.615 0-1.09.286-1.09.914 0 .573.517.845.901.845.189 0 .322.056.322.202 0 .182-.224.3-.462.3-.79 0-1.328-.537-1.328-1.535 0-1.11.734-1.515 1.3-1.515.692 0 .804.349 1.287.349a.927.927 0 0 0 .936-.915.95.95 0 0 0-.398-.788c-.427-.315-1.07-.545-1.979-.545-1.629 0-3.216 1.026-3.216 3.414 0 2.282 1.587 3.35 3.153 3.35 1.643 0 2.685-1.012 2.685-2.492 0-.935-.587-1.584-1.769-1.584zm-12.43-2.688c-.783 0-1.21.587-1.21 1.32v4.132c0 .734.427 1.32 1.21 1.32.783 0 1.21-.586 1.21-1.32v-4.132c0-.733-.427-1.32-1.21-1.32zm11.494-.405c.447 0 .692-.335.692-.754v-.74c0-.09.042-.132.112-.132.084 0 .111.049.125.133.063.355.231.837.42 1.082.238.314.461.412.685.412.363 0 .678-.286.678-.643 0-.237-.098-.412-.224-.572-.237-.3-.384-.496-.475-.74-.02-.056-.007-.105.056-.153.217-.168.469-.538.469-1.124 0-.887-.735-1.39-1.623-1.39h-.79c-.552 0-.817.321-.817.754v3.114c0 .419.244.753.692.753zm.615-3.301c0-.09.056-.161.175-.161h.098c.293 0 .384.21.384.391 0 .175-.09.405-.384.405h-.098c-.12 0-.175-.07-.175-.16zm-18.87 3.267h.986c.93 0 1.496-.622 1.496-1.397 0-.621-.37-.907-.454-.977-.035-.028-.07-.056-.07-.084 0-.035.021-.048.056-.09.133-.154.266-.398.266-.754 0-.838-.567-1.285-1.448-1.285h-.832c-.552 0-.817.321-.817.754v3.079c0 .433.265.754.817.754zm.413-3.386c0-.09.056-.16.175-.16h.09c.301 0 .392.209.392.39 0 .168-.09.405-.391.405h-.091c-.12 0-.175-.07-.175-.16zm0 1.634c0-.091.056-.161.175-.161h.126c.335 0 .433.223.433.426 0 .181-.098.44-.433.44h-.126c-.12 0-.175-.07-.175-.161zm11.878 1.794c1.098 0 1.79-.699 1.79-1.718 0-.649-.391-1.096-1.174-1.096h-.224c-.413 0-.734.196-.734.636 0 .39.342.58.601.58.133 0 .217.041.217.139 0 .125-.147.21-.315.21-.524 0-.88-.37-.88-1.062 0-.768.489-1.047.866-1.047.462 0 .539.238.86.238.37 0 .623-.308.623-.629a.669.669 0 0 0-.266-.544c-.294-.217-.706-.377-1.321-.377-1.084 0-2.14.712-2.14 2.36 0 1.576 1.056 2.31 2.097 2.31zm-8.718 3.762a.354.354 0 0 1-.07-.188c0-.077.042-.133.126-.21.196-.181.678-.635.944-1.047.202-.314.286-.6.286-.837 0-.607-.552-1.082-1.153-1.082-.385 0-.748.216-.993.614-.329.53-.72 1.145-.972 1.39-.063.062-.098.076-.146.076-.084 0-.12-.056-.12-.146v-.699c0-.684-.405-1.235-1.139-1.235-.74 0-1.14.551-1.14 1.235v4.3c0 .685.399 1.237 1.14 1.237.734 0 1.14-.552 1.14-1.236v-.991c0-.084.035-.147.119-.147.111 0 .14.112.167.168.161.384.63 1.2 1.063 1.682.294.32.657.524 1.042.524.65 0 1.196-.566 1.196-1.173 0-.377-.161-.657-.469-.991-.392-.427-.853-.986-1.021-1.244zm15.751 6.702C19.432 23.707 16.313 24 12 24c-4.313 0-7.432-.293-9.25-1.32-1.09-.614-1.642-1.451-1.642-2.052 0-.342.181-.537.587-.537h20.61c.406 0 .587.195.587.537 0 .6-.552 1.438-1.643 2.053zm1.056-15.917H1.695c-.406 0-.587-.209-.587-.586C1.108 3.944 4.47 0 12 0c7.46 0 10.892 3.944 10.892 6.178 0 .377-.181.586-.587.586Z\"},\"child\":[]}]})(props);\n};\nexport function SiBurpsuite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm11.063 3.357h1.874v2.756L10.41 9.2h2.527v3.748h4.579l-4.578 5.592v2.104h-1.876v-2.758l2.528-3.086h-2.527V11.05h-4.58l4.58-5.592Z\"},\"child\":[]}]})(props);\n};\nexport function SiBurton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9852 1.5427a.2544.2544 0 00-.2098.1167l-.9744 1.5088a.624.624 0 01-.3532.2618l-.5747.1643a.7493.7493 0 00-.4524.362L6.9551 8.4735a.7424.7424 0 01-.48.3695c-.1543.036-.3882.0866-.6213.132a.5525.5525 0 00-.4013.3226c-.2956.6863-.8678 2.0149-1.1562 2.6826a1.0018 1.0018 0 01-.5097.5162l-.4244.1906a1.0061 1.0061 0 00-.5425.6013s-.6473 1.6657-1.1468 3.1669c-.4515 1.3568-1.6317 5.445-1.6317 5.445a.4273.4273 0 00.0904.4915.32.32 0 00.466-.1066s1.5767-3.3727 2.1518-4.473a.3106.3106 0 01.4612-.093c.2536.165.3786.6073.6632.8644a.2578.2578 0 00.4215-.1034c.206-.5042.6888-2.0741.8511-2.7236.1356-.5411.5956-.5898.858-.1938l.1896.2345a2.2525 2.2525 0 00.7133.592l.3496.1853a.5006.5006 0 01.2283.2446l.3828.8973a.7493.7493 0 00.6609.455l.119.0046a.7503.7503 0 01.633.3978c.176.3314.4613.9323.7038 1.326a.2593.2593 0 00.4735-.0595 15.4276 15.4276 0 00.5997-2.0607c.1408-.7166.5788-.625.7299-.431.0551.07.245.3576.2966.4163a.252.252 0 00.4586-.0972 12.312 12.312 0 00.4033-1.9043c.0386-.2912.358-.3281.5106-.0793.1629.2657.4287.741.5734 1.0232a2.5873 2.5873 0 01.2358.6163l.211.9516a2.1773 2.1773 0 00.6662 1.1276 3.3829 3.3829 0 00.4768.4219.2676.2676 0 00.4091-.1054c.111-.2548.2517-.6868.335-.9354a.2534.2534 0 01.1925-.1675c.1073-.0211.1794-.0303.333-.0712a.8444.8444 0 00.564-.4918l.207-.4995a.257.257 0 01.4663-.012c.0751.1353.2088.4168.2716.572a1.975 1.975 0 01.089.2462l.1647.6362a2.248 2.248 0 00.2894.659l.0752.1167a2.1315 2.1315 0 00.7848.7217.2476.2476 0 00.3496-.1217c.2348-.5461.3253-1.3597.4332-1.8837a.285.285 0 01.5162-.0924c.6114 1.0018 2.3264 3.921 2.3264 3.921a.3122.3122 0 00.5409-.3096c-.0432-.0988-1.5061-3.7875-2.912-7.0531-1.2846-2.9848-2.5247-5.5752-2.5247-5.5752a.4576.4576 0 00-.5568-.2469c-.3762.1119-.7863.357-1.071.4557a.5375.5375 0 01-.6466-.2528c-.3467-.6362-1.1121-2.2981-1.8152-3.6137-.7611-1.4239-1.7256-3.3197-2.2431-4.069a.2544.2544 0 00-.2134-.1096z\"},\"child\":[]}]})(props);\n};\nexport function SiBuymeacoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z\"},\"child\":[]}]})(props);\n};\nexport function SiBuysellads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 16.4h-2.685l-.716-2.704-3.3 2.704h-2.675l2.796-8.821h3.784zm-5.955-2.785h2.544l-1.272-4.744zM5.581 11.849c.939.151 1.676 1.049 1.676 2.149 0 1.282-.677 2.392-2.403 2.392H0V7.579h4.32c1.736 0 2.573 1.141 2.573 2.251 0 1.09-.474 1.837-1.312 2.019m-3.502 2.634 1.988-.01c.535 0 .868-.313.868-.788 0-.434-.313-.787-.868-.787H2.079zm0-4.986v1.463h1.726c.464 0 .777-.302.777-.736 0-.424-.313-.727-.777-.727zm7.953.454c0 1.302 4.582.202 4.592 3.714 0 1.756-1.171 2.967-3.512 2.967-1.413 0-2.604-.333-3.492-.938l.888-1.938c.676.525 1.524.898 2.675.898.777 0 1.15-.302 1.15-.716 0-1.443-4.622-.051-4.612-3.795.01-1.463 1.312-2.775 3.552-2.775 1.272 0 2.523.242 3.502.867l-.837 1.928c-.919-.615-1.867-.908-2.735-.888-.656.02-1.171.212-1.171.676\"},\"child\":[]}]})(props);\n};\nexport function SiBuzzfeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12zm-4.148-.273l-.977-6.94-6.5 2.624 2.575 1.487-2.435 4.215L8.3 10.68l-4.153 7.19 2.327 1.346 2.812-4.868L13.5 16.78l3.777-6.54 2.575 1.487z\"},\"child\":[]}]})(props);\n};\nexport function SiBvg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.25 1.11c3.647 0 6.478 2.886 6.73 6.447.151 2.21-.535 4.019-2.158 5.674l-3.601 3.655-.154.157-.078.079-.214.217-.214.217a18348.219 18348.219 0 0 1-4.951 5.019c-.074.074-.323.302-.576.315h-.023c-.272 0-.534-.24-.6-.315l-4.89-4.958-.129-.13-.257-.261-.214-.218A5994.604 5994.604 0 0 1 2.2 13.23C.554 11.576-.13 9.768.02 7.557.27 3.997 3.103 1.11 6.75 1.11c2.353 0 3.704 1.416 5.25 3.027 1.536-1.61 2.897-3.027 5.25-3.027zm-4.02 6.48c-.26 0-.446.174-.511.48l-.6 3.092c-.043.294-.097.642-.12.87a5.71 5.71 0 0 0-.12-.87l-.663-3.093c-.065-.36-.283-.48-.534-.48-.392 0-.577.35-.479.763l1.013 4.193c.098.414.305.642.784.642.414 0 .664-.228.762-.686l.948-4.214c.087-.425-.153-.697-.48-.697zm2.995-.033c-1.274 0-2.101.85-2.101 2.832 0 1.884.37 2.787 2.003 2.787 1.013 0 1.48-.348 1.48-1.143v-1.634c0-.337-.107-.479-.412-.479h-.904c-.294 0-.436.142-.436.414 0 .25.163.392.436.392h.305v1.568a1.015 1.015 0 0 1-.35.044c-.73 0-1.077-.349-1.077-1.873 0-1.634.414-2.004 1.035-2.004.468 0 .697.163.925.163a.439.439 0 0 0 .294-.762c-.305-.24-.925-.305-1.198-.305Zm-8.091.065H7.056a.42.42 0 0 0-.436.414v4.716c0 .283.185.37.436.37h.99c1.406 0 1.721-.784 1.732-1.655 0-.556-.272-1.177-1.056-1.22.719-.153.904-.664.904-1.242 0-.718-.196-1.383-1.492-1.383zm-.185 3.018c.686 0 .74.37.74.86v.02c-.002.45-.074.852-.664.852h-.37v-1.733h.294zm.022-2.265c.577 0 .664.207.664.762v.071l-.001.03c-.01.325-.087.682-.718.682h-.25V8.374h.305z\"},\"child\":[]}]})(props);\n};\nexport function SiByjus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.327.016A2.325 2.325 0 0 0 0 2.34v19.32a2.325 2.325 0 0 0 2.327 2.323h19.346A2.325 2.325 0 0 0 24 21.66V2.34A2.325 2.325 0 0 0 21.673.016zm10.054 3.496a3.443 3.443 0 0 1 .07 0 4.317 4.317 0 0 1 3.267 1.462 4.447 4.447 0 0 1 .961 2.365 4.157 4.157 0 0 1-.456 2.27 5.024 5.024 0 0 1 2.424 2.008 5.237 5.237 0 0 1 .73 3.374 4.68 4.68 0 0 1-1.15 2.466 4.84 4.84 0 0 1-2.26 1.535l-4.987 1.439a1.494 1.494 0 0 1-.41.058 1.497 1.497 0 0 1-1.432-1.075L5.524 6.909a1.487 1.487 0 0 1 1.018-1.841l4.956-1.429a3.443 3.443 0 0 1 .883-.127zm.248.861a3.091 3.091 0 0 0-.855.122L6.94 5.888a.744.744 0 0 0-.51.922l3.53 12.206a.745.745 0 0 0 .921.509l4.664-1.345a4.085 4.085 0 0 0-.896-8.003 3.297 3.297 0 0 0 1.138-2.272 3.479 3.479 0 0 0-.928-2.549 2.989 2.989 0 0 0-2.23-.983Z\"},\"child\":[]}]})(props);\n};\nexport function SiBytedance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.8772 1.4685L24 2.5326v18.9426l-4.1228 1.0563V1.4685zm-13.3481 9.428l4.115 1.0641v8.9786l-4.115 1.0642v-11.107zM0 2.572l4.115 1.0642v16.7354L0 21.428V2.572zm17.4553 5.6205v11.107l-4.1228-1.0642V9.2568l4.1228-1.0642z\"},\"child\":[]}]})(props);\n};\nexport function SiC (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5921 9.1962s-.354-3.298-3.627-3.39c-3.2741-.09-4.9552 2.474-4.9552 6.14 0 3.6651 1.858 6.5972 5.0451 6.5972 3.184 0 3.5381-3.665 3.5381-3.665l6.1041.365s.36 3.31-2.196 5.836c-2.552 2.5241-5.6901 2.9371-7.8762 2.9201-2.19-.017-5.2261.034-8.1602-2.97-2.938-3.0101-3.436-5.9302-3.436-8.8002 0-2.8701.556-6.6702 4.047-9.5502C7.444.72 9.849 0 12.254 0c10.0422 0 10.7172 9.2602 10.7172 9.2602z\"},\"child\":[]}]})(props);\n};\nexport function SiCachet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.746.254C5.265.254 0 5.519 0 12c0 6.481 5.265 11.746 11.746 11.746 6.482 0 11.746-5.265 11.746-11.746 0-1.44-.26-2.82-.734-4.097l-.264-.709-1.118 1.118.1.288c.373 1.064.575 2.207.575 3.4a10.297 10.297 0 01-10.305 10.305A10.297 10.297 0 011.441 12 10.297 10.297 0 0111.746 1.695c1.817 0 3.52.47 5.002 1.293l.32.178 1.054-1.053-.553-.316A11.699 11.699 0 0011.746.254zM22.97.841l-13.92 13.92-3.722-3.721-1.031 1.03 4.752 4.753L24 1.872z\"},\"child\":[]}]})(props);\n};\nexport function SiCaddy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.094.47c-.842 0-1.696.092-2.552.288a11.37 11.37 0 0 0-4.87 2.423 10.632 10.632 0 0 0-2.36 2.826A10.132 10.132 0 0 0 .305 8.582c-.398 1.62-.4 3.336-.043 5.048.085.405.183.809.31 1.212a11.85 11.85 0 0 0 1.662 3.729 3.273 3.273 0 0 0-.086.427 3.323 3.323 0 0 0 2.848 3.71 3.279 3.279 0 0 0 1.947-.346c1.045.51 2.17.864 3.339 1.04a11.66 11.66 0 0 0 4.285-.155 11.566 11.566 0 0 0 4.936-2.485 10.643 10.643 0 0 0 2.352-2.894 11.164 11.164 0 0 0 1.356-4.424 11.214 11.214 0 0 0-.498-4.335c.175-.077.338-.175.486-.293a.444.444 89.992 0 0 .001 0c.402-.322.693-.794.777-1.342a2.146 2.146 0 0 0-1.79-2.434 2.115 2.115 0 0 0-1.205.171c-.038-.043-.078-.086-.113-.13a11.693 11.693 0 0 0-3.476-2.93 13.348 13.348 0 0 0-1.76-.81 13.55 13.55 0 0 0-2.06-.613A12.121 12.121 0 0 0 11.093.47Zm.714.328c.345-.004.688.01 1.028.042a9.892 9.892 0 0 1 2.743.639c.984.39 1.89.958 2.707 1.632.803.662 1.502 1.45 2.091 2.328.026.039.048.08.07.12a2.12 2.12 0 0 0-.435 2.646c-.158.114-.97.692-1.634 1.183-.414.308-.733.557-.733.557l.581.68s.296-.276.665-.638c.572-.562 1.229-1.233 1.395-1.403a2.122 2.122 0 0 0 1.907.677 11.229 11.229 0 0 1-.013 4.046 11.41 11.41 0 0 1-1.475 3.897 12.343 12.343 0 0 1-2.079 2.587c-1.19 1.125-2.633 2.022-4.306 2.531a10.826 10.826 0 0 1-3.973.484 11.04 11.04 0 0 1-3.057-.652 3.304 3.304 0 0 0 1.417-2.294 3.275 3.275 0 0 0-.294-1.842c.18-.162.403-.363.656-.6 1.015-.955 2.353-2.303 2.353-2.303l-.47-.599s-1.63.972-2.801 1.728c-.307.198-.573.378-.777.517a3.273 3.273 0 0 0-1.516-.611c-1.507-.198-2.927.672-3.487 2.017a10.323 10.323 0 0 1-.695-1.078A10.92 10.92 0 0 1 .728 14.8a10.35 10.35 0 0 1-.2-1.212c-.164-1.653.103-3.258.629-4.754a12.95 12.95 0 0 1 1.087-2.288c.57-.968 1.248-1.872 2.069-2.656A11.013 11.013 0 0 1 11.808.797Zm-.147 3.257a3.838 3.838 0 0 0-3.82 3.82v2.36h-.94c-.751 0-1.377.625-1.377 1.377v3.8h1.46v-3.718h9.354v6.264H10.02v1.46h6.4c.751 0 1.377-.625 1.377-1.377v-6.43c0-.751-.626-1.377-1.377-1.377h-.94v-2.36a3.838 3.838 0 0 0-3.82-3.819zm0 1.46a2.371 2.371 0 0 1 2.36 2.36v2.36H9.3v-2.36a2.372 2.372 0 0 1 2.36-2.36zm10.141.392a1.253 1.253 0 0 1 1.296 1.434c-.049.319-.217.59-.453.78-.266.213-.61.318-.968.264a1.253 1.253 0 0 1-1.045-1.42 1.255 1.255 0 0 1 1.17-1.058zM5.384 17.425a2.02 2.02 0 0 1 1.917 1.298c.116.3.159.628.114.967a2.015 2.015 0 0 1-2.249 1.728 2.016 2.016 0 0 1-1.727-2.25 2.017 2.017 0 0 1 1.945-1.743z\"},\"child\":[]}]})(props);\n};\nexport function SiCadillac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.787 9.414h2.104l-.398-.719h7.139v.717h.238v-.965H2.135l.652.967zm.202.948h8.879v-.719H2.874l.115.719zm2.255 1.204h-2.06l-.16-.981h8.846v.981h-.239v-.751H5.169l.075.751zm3.299.692h3.326v.515H8.543v-.515zm3.589-3.811h3.357v1.444h-3.357V8.447zm-8.469 5.569c.054.086.155.186.49.281.146.037.305.074.515.122l.08.019H8.31v-.51H3.616c.013.03.028.06.046.088h.001zm4.647-.779H3.459l-.238-1.44H8.31v1.44zm.232 2.021c1.243.253 2.457.488 3.329.63V13.47H8.542V15.258zm12.276-3.692h-5.1v-1.445h5.333l-.233 1.445zm-5.1-2.66v.513l5.485-.002.344-.511h-5.829zM0 7.306l1.616 2.369c.177 1.006.64 3.599.693 3.85l.006.032c.148.706.239 1.139 1.59 1.473 1.825.45 5.997 1.323 8.094 1.664 2.097-.341 6.271-1.215 8.097-1.664 1.35-.334 1.44-.767 1.589-1.473l.006-.032c.053-.253.516-2.844.693-3.85L24 7.306H0zm21.454 2.335-.277 1.717c-.16.994-.267 1.657-.32 1.951l-.007.035-.012.07c-.127.692-.183 1.002-.91 1.205-1.516.373-5.908 1.31-7.927 1.626-2.018-.316-6.41-1.254-7.925-1.626-.727-.203-.783-.513-.91-1.206l-.019-.104c-.053-.288-.156-.93-.31-1.89v-.001L2.55 9.64 1.276 7.75h21.45l-1.272 1.89v.001zm-9.084 3.132h-.238v-.976h8.65l-.16.978h-2.004c.031-.171.09-.659.099-.73H12.37v.728zm-.238.942h8.322l.134-.716h-8.456v.716zm0-3.129h3.358v.516h-3.358v-.516zm0 3.342v1.959c2.115-.36 6.223-1.205 7.718-1.592.338-.087.438-.193.492-.279a.448.448 0 0 0 .045-.088h-8.255zm2.296 1.282-.415.082c-.21.042-.665.125-1.065.199l-.577.106v-1.422h5.88c-.27.33-.812.437-3.823 1.035z\"},\"child\":[]}]})(props);\n};\nexport function SiCafepress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.899 15.549v-2.063h1.746v.762h.018c.293-.579.68-.882 1.341-.882.175 0 .349.027.532.074v1.344c.379-.838 1.2-1.417 2.285-1.417 1.892 0 2.708 1.047 2.708 2.912h-3.488c.047.551.349.926.927.926.294 0 .615-.109.762-.34h1.614a1.453 1.453 0 0 1-.012-.174h1.735a.596.596 0 0 0 .219.422c.102.091.267.137.488.137.239 0 .614-.093.614-.367 0-.275-.156-.359-1-.505-1.387-.229-1.947-.68-1.947-1.497 0-1.202 1.295-1.515 2.25-1.515 1.029 0 2.269.285 2.314 1.507h-1.652a.469.469 0 0 0-.211-.359.62.62 0 0 0-.404-.137c-.258 0-.551.064-.551.367 0 .137.109.202.211.248.293.12.992.174 1.598.367.614.192 1.14.551 1.14 1.332h1.529a.603.603 0 0 0 .22.422c.102.091.266.137.488.137.238 0 .615-.093.615-.367 0-.275-.157-.359-1.001-.505-1.387-.229-1.947-.68-1.947-1.497 0-1.202 1.294-1.515 2.25-1.515 1.028 0 2.27.285 2.314 1.507h-1.653a.462.462 0 0 0-.211-.359.621.621 0 0 0-.403-.137c-.258 0-.551.064-.551.367 0 .137.11.202.211.248.293.12.992.174 1.597.367.615.192 1.14.551 1.14 1.332 0 1.321-1.266 1.68-2.424 1.68-.93 0-1.935-.309-2.266-1.116-.312.863-1.361 1.116-2.334 1.116-1.015 0-2.122-.369-2.34-1.355-.409.925-1.372 1.356-2.393 1.356-1.524 0-2.672-.899-2.672-2.488 0-.306.048-.598.139-.869a1.831 1.831 0 0 0-.624-.088c-.726 0-1.102.413-1.102 1.441v1.883H5.899v-1.973c-.094 1.029-.593 2.093-2.013 2.093-.551 0-1.02-.238-1.304-.643h-.02v2.066H.746v-6.308h1.755v.523h.018c.22-.293.515-.643 1.395-.643 1.224 0 1.874 1.086 1.985 2.183Zm-2.601 1.5c.653 0 .799-.614.799-1.175 0-.562-.147-1.185-.799-1.185-.651 0-.799.624-.799 1.185 0 .559.148 1.175.799 1.175Zm9.488-1.716v-.017a.787.787 0 0 0-.783-.783h-.018c-.55 0-.854.285-.936.8h1.737Zm.295-7.276c.034.266.033.546.033.824v2.589c0 .474.011 1.008.292 1.409h-2.454a1.676 1.676 0 0 1-.085-.596h-.025c-.522.583-1.251.753-2.029.753-1.215 0-2.223-.582-2.223-1.908 0-.139.012-.268.033-.387-.366 1.476-1.637 2.296-3.209 2.296C1.518 13.037 0 11.726 0 9.733c0-1.992 1.518-3.316 3.413-3.316 1.664 0 3.048.801 3.208 2.551H4.337c-.025-.267-.11-.461-.267-.596a.903.903 0 0 0-.608-.206c-.923 0-1.057.801-1.057 1.567 0 .778.133 1.555 1.057 1.555.522 0 .887-.426.935-.923h2.297a3.21 3.21 0 0 1-.037.222c.392-1.447 2.399-1.39 3.492-1.609.328-.06.657-.158.657-.558 0-.426-.401-.583-.79-.583-.729 0-.9.377-.9.644H6.883c.06-1.787 1.76-2.066 3.243-2.066 2.106 0 2.728.612 2.911 1.396V6.575h.983c-.035-.619.025-1.3.498-1.773.522-.524 1.13-.596 2.101-.596.377 0 .704.037 1.082.049v1.652c-.194-.037-.389-.085-.583-.085-.582 0-.778.17-.74.753h1.264v1.267c.568-.86 1.544-1.425 2.775-1.425 2.502 0 3.583 1.386 3.583 3.852h-4.616c.061.728.461 1.226 1.226 1.226.39 0 .815-.147 1.008-.45h2.248c-.486 1.361-1.823 1.992-3.243 1.992-2.017 0-3.535-1.189-3.535-3.291 0-.616.149-1.193.423-1.689h-1.084v4.823H14.02V8.057h-.939Zm-2.274 1.991c-.292.147-.619.219-.947.304-.536.133-.815.255-.815.68 0 .292.316.582.754.582.547 0 .972-.314 1.008-.983v-.583Zm10.885-1.033v-.021a1.04 1.04 0 0 0-1.035-1.035h-.022c-.729 0-1.129.375-1.239 1.056h2.296Z\"},\"child\":[]}]})(props);\n};\nexport function SiCaffeine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.162 1.557c-.18.006-.263.137-.293.18L.05 11.82c-.07.142-.06.27-.004.356 1.942 3.36 3.882 6.723 5.822 10.085a.337.337 0 00.305.182h11.65c.138.003.26-.09.31-.182 1.94-3.36 3.878-6.721 5.82-10.08a.361.361 0 000-.358l-5.82-10.085c-.112-.193-.308-.181-.308-.181zm.804.719h9.513L10.136 5.94zm-.427.603l2.964 3.426L6.54 8.018zm10.3.018l-3.86 6.685L7.19 8.469zm1.341.357l4.756 8.246-4.756-.916zm-12.36.002v5.176l-4.48 2.587zm11.64 0v11.142l-3.857-4.457zM7.127 9.186l5.847 1.126 3.898 4.502-5.842-1.125zM5.82 9.26v3.425l-4.45-.855zm.72.341l3.856 4.457-3.857 6.685zm11.64 1.713l4.447.856-4.447 2.57zM1.062 12.5l4.76.916v7.33zm21.597.48l-4.479 7.763v-5.175zm-11.64 1.437l5.79 1.114-9.649 5.572zm6.44 1.565v5.138l-2.964-3.425zm-3.597 2.078l3.172 3.664H7.52z\"},\"child\":[]}]})(props);\n};\nexport function SiCairographics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.58008 0v2.8457h2.83984V0h-2.83984zm.0918.0918h.82421v.82617h-.82422V.0918zm.91601 0h.82422v.82617h-.82422V.0918zm.91602 0h.82422v.82617h-.82422V.0918zM12 .1836a.32052.32137 0 0 0-.32031.3203A.32052.32137 0 0 0 12 .82618a.32052.32137 0 0 0 .32031-.32226A.32052.32137 0 0 0 12 .18359zm-1.32813.82617h.82422v.82617h-.82422v-.82617zm.91602 0h.82422v.82617h-.82422v-.82617zm.91602 0h.82422v.82617h-.82422v-.82617zm.4121.0918a.32052.32137 0 0 0-.3203.3203.32052.32137 0 0 0 .3203.32227.32052.32137 0 0 0 .32032-.32227.32052.32137 0 0 0-.32031-.3203zm-5.41992.3203c-.36366.09009-.18301.4514-.24218.64844-.15085.5019-.93845.6611-1.33204 1.00196-.38502.3332-.61479.72302-.9121 1.08984-.25081.30867-.56287.61108-.61329.96484-.05719.40115-.03739.85443.14454 1.23828.22584.47548.49133 1.07827.86914 1.50196.29019.3254.33045.43387.81836.60547.15466.0704.19392.10477.4043.14843l.041-.2578.18165-.21485c-.24324-.29816-.6114-.32556-.82422-.54297-.35521-.36269-.47236-.73316-.6836-1.14844-.20182-.39793-.4647-.70243-.48632-1.125-.0092-.18098-.08882-.50478.00586-.66797.06289-.10834.36304-.24605.46484-.3496.31544-.32066.17403-.7262.53906-1.02344.3247-.26455.873-.46884 1.25782-.71094.26674-.16772.43279-.22881.49023-.46485.06319-.26005-.14167-.45345-.12305-.69335zm6.84375 0a2.3402 2.34639 0 0 1-.68554 1.66016A2.3402 2.34639 0 0 1 12 3.76953a2.3402 2.34639 0 0 1-1.6543-.6875l-.14453.14453A2.54395 2.55069 0 0 0 12 3.97266c.67461 0 1.3218-.2678 1.79883-.7461a2.54395 2.55069 0 0 0 .74414-1.80469h-.20313zm2.16407 0c.01863.2399-.1862.43331-.12305.69336.05754.23604.22154.29713.48828.46485.38478.2421.93518.4464 1.25977.71094.36477.29724.22162.70278.5371 1.02343.10181.10356.40187.24127.46485.34961.09458.16319.01507.48699.00586.66797-.02157.42257-.2846.72707-.48633 1.125-.21124.41528-.32688.78575-.68164 1.14844-.21287.2174-.58094.2448-.82422.54297l.18164.21484.04102.25781c.21032-.04366.24768-.07803.40234-.14843.48755-.1716.52827-.28007.81836-.60547.3779-.4237.6445-1.02648.8711-1.50196.18183-.38385.20166-.83713.14453-1.23828-.05048-.35376-.36246-.65617-.61329-.96484-.29726-.36682-.52734-.75664-.9121-1.08984-.39353-.34086-1.18119-.50006-1.33204-1.00196-.05906-.19704.12153-.55835-.24218-.64844zm-5.83204.50586h.82422v.82618h-.82422v-.82618zm.91602 0h.82422v.82618h-.82422v-.82618zm.91602 0h.82422v.82618h-.82422v-.82618zm-1.41993.0918a.32052.32137 0 0 0-.3203.32227.32052.32137 0 0 0 .3203.3203.32052.32137 0 0 0 .32032-.3203.32052.32137 0 0 0-.32032-.32227zm.91602 0a.32052.32137 0 0 0-.32031.32227A.32052.32137 0 0 0 12 2.6621a.32052.32137 0 0 0 .32031-.3203A.32052.32137 0 0 0 12 2.01953zm.91602 0a.32052.32137 0 0 0-.32032.32227.32052.32137 0 0 0 .32032.3203.32052.32137 0 0 0 .3203-.3203.32052.32137 0 0 0-.3203-.32227zm-.91797 3.14844c-1.56307 0-2.83008.48287-2.83008 1.07812 0 .52046 1.267.375 2.83008.375 1.5626 0 2.83008.11807 2.83008-.375 0-.5952-1.26748-1.07812-2.83008-1.07812zm-1.41016 1.58008c-1.61506 0-3.0237.66482-3.79492 1.65234a9.49127 9.51641 0 0 0-.11719.93555c.20157-.0019 4.26982-.03274 4.63281.32617l.68946.68164c.11507-.11385.68945-.68164.68945-.68164.363-.3589 4.4316-.32801 4.63281-.32617-.02385-.32127-.0627-.6349-.11718-.94336-.77246-.98344-2.17958-1.64453-3.79102-1.64453h-2.82422zM6.67383 9.36523a9.32897 9.35368 0 0 0-.01758.33008c-.00386.11258.5293.23922.5293.3418 0 .1183-.53233.2607-.52735.39062.15228 3.7416 2.46954 6.71506 5.31055 6.73633l-.45898-5.67773.00195-.00781.45117-1.08594-.69726-.68946c-.28745-.28428-3.41224-.31765-4.5918-.30664v-.03125zm10.64844 0v.03125c-1.17961-.01102-4.30426.0224-4.5918.30664l-.69531.68946.45312 1.09375-.45898 5.67578c2.84162-.02127 5.15817-2.9927 5.31054-6.73438.0049-.12971-.52734-.27238-.52734-.39062 0-.10258.53122-.22911.52734-.3418a9.11348 9.13762 0 0 0-.01757-.33008zm-12.20704.77344c-.78161-.02976-.65792.7332-.39843 1.4082.28877.75119.41972 1.54219.73047 2.28516.1427.34117.3531.67385.72851.77149.01892-.43028-.04815-.54354-.3125-.86329-.2236-.26999-.16888-.63953-.3086-.94336-.18217-.39808-.21227-.79847-.36913-1.19921-.06934-.17747-.42563-.71147-.33008-.91016.16193-.33682.46842-.00468.6211.10547.21459.15487.32847.114.59374.14844.03017.004.18039.10998.5332.27148l-.04101-.375c-.48363-.23358-.52563-.49735-1.05469-.63476-.1509-.03923-.28092-.0602-.39258-.06446zm13.76954 0c-.11172.00425-.2416.02523-.39258.06446-.5286.13741-.57102.40118-1.05469.63476l-.04297.375c.35272-.1615.50489-.26748.53516-.27148.26527-.03444.3792.00643.59375-.14844.15273-.11015.45715-.44229.61914-.10547.09549.19869-.25878.73269-.32813.91016-.15674.40074-.18895.80113-.3711 1.19922-.13975.30382-.08524.67336-.30858.94335-.2643.31975-.32942.433-.31055.86329.37546-.09764.58586-.43032.72851-.77149.3108-.74297.43975-1.53397.72852-2.28515.25998-.67501.38556-1.43797-.39648-1.4082zm-6.88672.32617a7434.7739 7454.4686 0 0 1-.42774 1.03125c.001.01214.32573 4.02957.42774 5.29102.102-1.26145.42677-5.27887.42773-5.29102-.0046-.01117-.3297-.79476-.42773-1.03125zm-4.41992 3.82422c-.33986.45543-.3559.82826-.51172 1.1914-.26848.62555-.00933 1.47171.5 1.92188.3079.27419.81067.49046 1.17773.66993.51055.24953 1.02277.57594 1.59375.68359.12627.02377.44694.06603.33984-.17969-.0496-.1141-.41107-.23466-.51562-.29297-.42288-.23582-.83346-.53785-1.22852-.82617-.48322-.35003-1.0595-.57018-1.43945-1.05469-.15538-.19817-.18157-.2506-.14453-.47851.03526-.21746.0696-.46799.11523-.68555.0515-.2452.12342-.48301.25391-.70312l-.14063-.2461zm8.84375 0-.14063.2461c.1304.2201.20237.45791.2539.70312.0457.21756.07983.4681.11524.68555.03688.22792.0109.28034-.14453.47851-.37989.4845-.95623.70466-1.43945 1.0547-.39496.2883-.80564.59034-1.22852.82616-.1045.0583-.46792.17886-.51758.29297-.10673.24572.21557.20346.3418.17969.57103-.10765 1.08326-.43406 1.59375-.6836.36702-.17946.86967-.39573 1.17773-.66992.50914-.45017.76832-1.29633.5-1.92187-.15599-.36315-.17192-.73598-.51171-1.1914zm-4.54102 4.1504a.38505.38607 0 0 0-.26563.36718.38505.38607 0 1 0 .76954 0 .38505.38607 0 0 0-.50391-.36719zm-5.74024 1.51757c-1.1778 0-1.96289.84814-1.96289 2.02149 0 1.10522.8002 2.02148 1.9629 2.02148.2567 0 .59617-.0239.89062-.16016l-.05273-.63476c-.21895.14383-.52012.21875-.76172.21875-.91355 0-1.2832-.75644-1.2832-1.44531 0-.7343.44553-1.44532 1.23827-1.44532.2265 0 .49774.05247.76954.16602l.06054-.58985c-.20385-.08326-.57443-.15234-.86132-.15234zm2.98829 0c-.49075 0-.91273.15132-1.26758.36328l.0371.60547c.2869-.24224.71705-.39258 1.1172-.39258.7097 0 .95117.3397.95117 1.00586-.27935-.01514-.47456-.01562-.7539-.01562-.73236 0-1.79102.30448-1.79102 1.27343 0 .84027.5816 1.20313 1.4121 1.20313.6493 0 1.02726-.35517 1.19336-.58984h.01563v.49804h.66406c-.0151-.11355-.0293-.3168-.0293-.75586V21.5547c0-1.05223-.44653-1.59766-1.54882-1.59766zm5.87695 0c-.4077 0-.81516.28824-1.0039.68945h-.01368v-.59765h-.66601v3.85937h.71093v-1.75586c0-.96895.41463-1.57421 1.04883-1.57421.1208 0 .26423.01536.39258.06835v-.63671c-.151-.03028-.25735-.05274-.46875-.05274zm2.86133 0c-1.1778 0-1.96485.84814-1.96485 2.02149 0 1.10522.80215 2.02148 1.96485 2.02148 1.15515 0 1.95508-.91626 1.95508-2.02148 0-1.17335-.78483-2.02149-1.95508-2.02149zm-6.22266.0918v3.85937h.71094v-3.85937h-.71094zm6.22266.48437c.755 0 1.19922.71103 1.19922 1.44532 0 .68886-.36872 1.4453-1.19922 1.4453-.83805 0-1.20899-.75643-1.20899-1.4453 0-.7343.44644-1.44532 1.20899-1.44532zM9.51367 22.0547c.151 0 .30213.01562.45313.01562v.33985c0 .57532-.37012 1.01367-1.07227 1.01367-.32465 0-.7168-.21817-.7168-.62695 0-.6813.9509-.7422 1.33594-.7422z\"},\"child\":[]}]})(props);\n};\nexport function SiCairometro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.397 4.14h.882v.881h-.882zm-1.628 0h.883v.881h-.883zm4.915 1.055v3.402h-1.386V5.195h-.84v1.763h-2.983V5.196h-.84v3.402H8.543v.84h1.911V7.82h2.983v1.617h5.44V5.195zm2.352 3.395h-1.512V6.028h1.512zM5.173 5.195v2.604h2.353v.805H5.173v.833h3.193V5.195zm2.339 1.757H5.999v-.924h1.513zm-2.64 12.177V9.726h4.175L12 12.68l2.954-2.953h4.176v9.403h-4.176v-3.442L12 18.754l-2.952-3.048v3.424zM12 0L8.485 3.515h-4.97v4.97L0 12l3.515 3.515v4.97h4.97L12 24l3.515-3.515h4.97v-4.97L24 12l-3.515-3.515v-4.97h-4.97zm0 1.708l3.014 3.015h4.263v4.263L22.292 12l-3.015 3.014v4.263h-4.263L12 22.292l-3.014-3.015H4.723v-4.263L1.708 12l3.015-3.014V4.723h4.263Z\"},\"child\":[]}]})(props);\n};\nexport function SiCakephp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 13.875v3.745c0 2.067 5.37 3.743 12 3.743V17.62c-6.63 0-12-1.68-12-3.743v-.002zm21.384 2.333L12 13.875v3.745l9.384 2.333C23.02 19.313 24 18.503 24 17.62v-3.745c0 .882-.98 1.692-2.616 2.333zM12 10.133v3.742c-6.627 0-12-1.677-12-3.744V6.38c0-2.064 5.37-3.743 12-3.743 6.625 0 12 1.68 12 3.744v3.75c0 .883-.98 1.69-2.616 2.334L12 10.13v.003z\"},\"child\":[]}]})(props);\n};\nexport function SiCaldotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.408 14.488C1.035 14.488 0 13.4 0 12.058c0-1.346.982-2.443 2.408-2.443.758 0 1.282.233 1.691.765l-.66.55a1.343 1.343 0 0 0-1.03-.442c-.93 0-1.44.711-1.44 1.57 0 .86.559 1.557 1.44 1.557.413 0 .765-.147 1.043-.443l.651.573c-.391.51-.929.743-1.695.743zM6.948 10.913h.89v3.49h-.89v-.51c-.185.362-.493.604-1.083.604-.943 0-1.695-.82-1.695-1.826 0-1.007.752-1.825 1.695-1.825.585 0 .898.241 1.083.604zm.026 1.758c0-.546-.374-.998-.964-.998-.568 0-.938.457-.938.998 0 .528.37.998.938.998.586 0 .964-.456.964-.998zM8.467 9.503h.89v4.895h-.89zM9.752 13.937a.53.53 0 0 1 .542-.528c.313 0 .533.242.533.528a.527.527 0 0 1-.533.537.534.534 0 0 1-.542-.537zM14.23 13.839c-.33.403-.832.658-1.426.658a1.806 1.806 0 0 1-1.84-1.826c0-1.007.778-1.825 1.84-1.825.572 0 1.07.241 1.4.622l-.687.577c-.172-.215-.396-.376-.713-.376-.568 0-.938.456-.938.998 0 .541.37.997.938.997.343 0 .58-.179.757-.42zM14.305 12.671c0-1.007.78-1.825 1.84-1.825 1.061 0 1.84.818 1.84 1.825 0 1.007-.779 1.826-1.84 1.826-1.06-.005-1.84-.82-1.84-1.826zm2.778 0c0-.546-.37-.998-.938-.998-.568-.004-.937.452-.937.998 0 .542.37.998.937.998.568 0 .938-.456.938-.998zM24 12.269v2.13h-.89v-1.911c0-.604-.281-.864-.704-.864-.396 0-.678.197-.678.864v1.91h-.89v-1.91c0-.604-.285-.864-.704-.864-.396 0-.744.197-.744.864v1.91h-.89v-3.49h.89v.484c.185-.376.52-.564 1.035-.564.489 0 .898.241 1.123.649.224-.417.554-.65 1.153-.65.731.005 1.299.56 1.299 1.442z\"},\"child\":[]}]})(props);\n};\nexport function SiCalendly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.655 14.262c.281 0 .557.023.828.064 0 .005-.005.01-.005.014-.105.267-.234.534-.381.786l-1.219 2.106c-1.112 1.936-3.177 3.127-5.411 3.127h-2.432c-2.23 0-4.294-1.191-5.412-3.127l-1.218-2.106a6.251 6.251 0 0 1 0-6.252l1.218-2.106C6.736 4.832 8.8 3.641 11.035 3.641h2.432c2.23 0 4.294 1.191 5.411 3.127l1.219 2.106c.147.252.271.519.381.786 0 .004.005.009.005.014-.267.041-.543.064-.828.064-1.816 0-2.501-.607-3.291-1.306-.764-.676-1.711-1.517-3.44-1.517h-1.029c-1.251 0-2.387.455-3.2 1.278-.796.805-1.233 1.904-1.233 3.099v1.411c0 1.196.437 2.295 1.233 3.099.813.823 1.949 1.278 3.2 1.278h1.034c1.729 0 2.676-.841 3.439-1.517.791-.703 1.471-1.306 3.287-1.301Zm.005-3.237c.399 0 .794-.036 1.179-.11-.002-.004-.002-.01-.002-.014-.073-.414-.193-.823-.349-1.218.731-.12 1.407-.396 1.986-.819 0-.004-.005-.013-.005-.018-.331-1.085-.832-2.101-1.489-3.03-.649-.915-1.435-1.719-2.331-2.395-1.867-1.398-4.088-2.138-6.428-2.138-1.448 0-2.855.28-4.175.841-1.273.543-2.423 1.315-3.407 2.299S2.878 6.552 2.341 7.83c-.557 1.324-.842 2.726-.842 4.175 0 1.448.281 2.855.842 4.174.542 1.274 1.314 2.423 2.298 3.407s2.129 1.761 3.407 2.299c1.324.556 2.727.841 4.175.841 2.34 0 4.561-.74 6.428-2.137a10.815 10.815 0 0 0 2.331-2.396c.652-.929 1.158-1.949 1.489-3.03 0-.004.005-.014.005-.018-.579-.423-1.255-.699-1.986-.819.161-.395.276-.804.349-1.218.005-.009.005-.014.005-.023.869.166 1.692.506 2.404 1.035.685.505.552 1.075.446 1.416C22.184 20.437 17.619 24 12.221 24c-6.625 0-12-5.375-12-12s5.37-12 12-12c5.398 0 9.963 3.563 11.471 8.464.106.341.239.915-.446 1.421-.717.529-1.535.873-2.404 1.034.128.716.128 1.45 0 2.166-.387-.074-.782-.11-1.182-.11-4.184 0-3.968 2.823-6.736 2.823h-1.029c-1.899 0-3.15-1.357-3.15-3.095v-1.411c0-1.738 1.251-3.094 3.15-3.094h1.034c2.768 0 2.552 2.823 6.731 2.827Z\"},\"child\":[]}]})(props);\n};\nexport function SiCalibreweb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.736.083q4.9353-.6785 5.5252 4.1915-1.104 5.4862-6.4778 7.1446-1.3131.3981-2.6673.1905-.409-.133-.6668-.4763a3.91 3.91 0 0 1 0-1.7147q4.0727.4425 6.4778-3.0484.8668-1.3161.5715-2.8578-.5576-1.2044-1.9052-1.1432-2.7075.4504-4.382 2.6674-3.9135 5.7548-2.4768 12.5745 1.59 5.4391 6.954 3.5246 1.458-.7474 2.6674-1.81 1.627.6834.8573 2.2864-4.452 3.9011-9.8119 1.4289-3.1384-2.512-3.5247-6.573-.858-7.33 3.62-13.1462Q10.673.9268 13.736.083\"},\"child\":[]}]})(props);\n};\nexport function SiCampaignmonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.836 4.27c-.29-.413-.86-.515-1.273-.226L.163 19.73c.167.235.437.39.747.39h22.18c.503 0 .91-.41.91-.914V4.78c-.004-.176-.058-.352-.164-.51zm-22.4-.226c-.413-.29-.982-.19-1.272.226-.107.154-.162.332-.164.51v14.45l10.664-8.736-9.227-6.45v-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiCamunda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.327 0A3.327 3.327 0 0 0 0 3.326v17.348A3.327 3.327 0 0 0 3.327 24h17.347A3.326 3.326 0 0 0 24 20.674V3.326A3.326 3.326 0 0 0 20.674 0H3.327Zm8.687 3.307c1.875 0 2.84 1.105 2.84 3.049v1.175H13.05V6.23c0-.867-.392-1.203-.994-1.203-.615-.014-.993.322-.993 1.189v6.56c0 .867.392 1.175.993 1.175.616 0 .994-.308.994-1.175v-1.734h1.804v1.608c-.014 1.945-.979 3.049-2.854 3.049-1.874 0-2.839-1.119-2.839-3.035V6.356c.014-1.944.979-3.049 2.853-3.049ZM9.161 17.476h5.693v3.217H9.161v-3.217Z\"},\"child\":[]}]})(props);\n};\nexport function SiCanonical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.427 0v24h15.146V0Zm9.994 10.25a1.568 1.568 0 0 1 1.567 1.568 1.568 1.568 0 0 1-1.567 1.568 1.568 1.568 0 0 1-1.568-1.568 1.568 1.568 0 0 1 1.568-1.568zm-2.157.16c.122 0 .245.005.369.015a2.268 2.268 0 0 0-.476 1.271 3.825 3.825 0 0 0-3.08 1.647 2.243 2.243 0 0 0-1.308-.335 5.159 5.159 0 0 1 4.495-2.599zm4.242 2.296a5.14 5.14 0 0 1 .74 3.905 5.139 5.139 0 0 1-.997 2.113 2.25 2.25 0 0 0-.75-1.167 3.837 3.837 0 0 0 .125-3.818 2.26 2.26 0 0 0 .882-1.033zm-8.616.982a1.568 1.568 0 0 1 1.568 1.568 1.568 1.568 0 0 1-1.568 1.568 1.568 1.568 0 0 1-1.567-1.568 1.568 1.568 0 0 1 1.567-1.568Zm.933 3.618a3.818 3.818 0 0 0 2.604 1.986c.127.027.256.048.385.063.01.476.17.932.459 1.31a5.161 5.161 0 0 1-1.114-.114 5.105 5.105 0 0 1-3.675-3.08 2.26 2.26 0 0 0 1.34-.165zm5.244.427a1.568 1.568 0 0 1 1.568 1.568 1.568 1.568 0 0 1-1.568 1.568A1.568 1.568 0 0 1 12.5 19.3a1.568 1.568 0 0 1 1.568-1.568z\"},\"child\":[]}]})(props);\n};\nexport function SiCanva (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zM6.962 7.68c.754 0 1.337.549 1.405 1.2.069.583-.171 1.097-.822 1.406-.343.171-.48.172-.549.069-.034-.069 0-.137.069-.206.617-.514.617-.926.548-1.508-.034-.378-.308-.618-.583-.618-1.2 0-2.914 2.674-2.674 4.629.103.754.549 1.646 1.509 1.646.308 0 .65-.103.96-.24.5-.264.799-.47 1.097-.8-.073-.885.704-2.046 1.851-2.046.515 0 .926.205.96.583.068.514-.377.582-.514.582s-.378-.034-.378-.17c-.034-.138.309-.07.275-.378-.035-.206-.24-.274-.446-.274-.72 0-1.131.994-1.029 1.611.035.275.172.549.447.549.205 0 .514-.31.617-.755.068-.308.343-.514.583-.514.102 0 .17.034.205.171v.138c-.034.137-.137.548-.102.651 0 .069.034.171.17.171.092 0 .436-.18.777-.459.117-.59.253-1.298.253-1.357.034-.24.137-.48.617-.48.103 0 .171.034.205.171v.138l-.136.617c.445-.583 1.097-.994 1.508-.994.172 0 .309.102.309.274 0 .103 0 .274-.069.446-.137.377-.309.96-.412 1.474 0 .137.035.274.207.274.171 0 .685-.206 1.096-.754l.007-.004c-.002-.068-.007-.134-.007-.202 0-.411.035-.754.104-.994.068-.274.411-.514.617-.514.103 0 .205.069.205.171 0 .035 0 .103-.034.137-.137.446-.24.857-.24 1.269 0 .24.034.582.102.788 0 .034.035.069.07.069.068 0 .548-.445.89-1.028-.308-.206-.48-.549-.48-.96 0-.72.446-1.097.858-1.097.343 0 .617.24.617.72 0 .308-.103.65-.274.96h.102a.77.77 0 0 0 .584-.24.293.293 0 0 1 .134-.117c.335-.425.83-.74 1.41-.74.48 0 .924.205.959.582.068.515-.378.618-.515.618l-.002-.002c-.138 0-.377-.035-.377-.172 0-.137.309-.068.274-.376-.034-.206-.24-.275-.446-.275-.686 0-1.13.891-1.028 1.611.034.275.171.583.445.583.206 0 .515-.308.652-.754.068-.274.343-.514.583-.514.103 0 .17.034.205.171 0 .069 0 .206-.137.652-.17.308-.171.48-.137.617.034.274.171.48.309.583.034.034.068.102.068.102 0 .069-.034.138-.137.138-.034 0-.068 0-.103-.035-.514-.205-.72-.548-.789-.891-.205.24-.445.377-.72.377-.445 0-.89-.411-.96-.926a1.609 1.609 0 0 1 .075-.649c-.203.13-.422.203-.623.203h-.17c-.447.652-.927 1.098-1.27 1.303a.896.896 0 0 1-.377.104c-.068 0-.171-.035-.205-.104-.095-.152-.156-.392-.193-.667-.481.527-1.145.805-1.453.805-.343 0-.548-.206-.582-.55v-.376c.102-.754.377-1.2.377-1.337a.074.074 0 0 0-.069-.07c-.24 0-1.028.824-1.166 1.373l-.103.445c-.068.309-.377.515-.582.515-.103 0-.172-.035-.206-.172v-.137l.046-.233c-.435.31-.87.508-1.075.508-.308 0-.48-.172-.514-.412-.206.274-.445.412-.754.412-.352 0-.696-.24-.862-.593-.244.275-.523.553-.852.764-.48.309-1.028.549-1.68.549-.582 0-1.097-.309-1.371-.583-.412-.377-.651-.96-.686-1.509-.205-1.68.823-3.84 2.4-4.8.378-.205.755-.343 1.132-.343zm9.77 3.291c-.104 0-.172.172-.172.343 0 .274.137.583.309.755a1.74 1.74 0 0 0 .102-.583c0-.343-.137-.515-.24-.515z\"},\"child\":[]}]})(props);\n};\nexport function SiCanvas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.4403 15.4142a13.7061 13.7061 0 0 1-.4362-3.4403 13.7 13.7 0 0 1 .4362-3.4401c1.7144.2103 3.0438 1.6686 3.0438 3.44 0 1.771-1.3287 3.23-3.0438 3.4404zm3.9728-3.4403c0 .6004.4866 1.0873 1.0872 1.0873.601 0 1.088-.487 1.088-1.0873s-.487-1.088-1.088-1.088c-.6006 0-1.0872.4876-1.0872 1.088zM23.56 8.5338c-1.7151.2103-3.044 1.6686-3.044 3.44 0 1.771 1.3289 3.23 3.044 3.4404a13.7313 13.7313 0 0 0 .436-3.4403c0-1.1883-.1518-2.3413-.436-3.4401zm-6.148 3.44c0 .6005.4865 1.0874 1.0877 1.0874.6002 0 1.088-.487 1.088-1.0873s-.4878-1.088-1.088-1.088c-.6012 0-1.0877.4876-1.0877 1.088zm-5.4347 8.5465c-1.7709 0-3.229 1.33-3.44 3.044a13.7364 13.7364 0 0 0 3.441.4357c1.1885 0 2.3403-.1515 3.44-.4357-.2107-1.714-1.6687-3.044-3.441-3.044zm.001-3.1046c-.6012 0-1.0878.4876-1.0878 1.0883s.4866 1.0882 1.0878 1.0882c.6 0 1.087-.4874 1.087-1.0882s-.487-1.0883-1.087-1.0883zm0-13.936c1.7713 0 3.2295-1.3292 3.4399-3.0438A13.7353 13.7353 0 0 0 11.9782 0c-1.1887 0-2.3412.1519-3.441.4359.211 1.7146 1.6691 3.0438 3.441 3.0438zm0 .9291c-.6012 0-1.0878.4866-1.0878 1.0876 0 .6002.4866 1.0876 1.0878 1.0876.6 0 1.087-.4874 1.087-1.0876 0-.601-.487-1.0876-1.087-1.0876zm6.032 13.5965c-1.2514 1.2523-1.344 3.2211-.2825 4.582a13.762 13.762 0 0 0 4.8636-4.8654c-1.3608-1.0597-3.3299-.9673-4.5812.2834zm-.6568-2.1948c-.425-.4245-1.1135-.4245-1.539 0-.4243.4252-.4243 1.1136 0 1.5383.4255.4253 1.114.4253 1.539 0 .424-.4247.424-1.1131 0-1.5383zM5.9648 5.9603c1.2516-1.2513 1.3437-3.2206.2825-4.5813a13.7677 13.7677 0 0 0-4.8644 4.8643c1.3612 1.0616 3.3306.9687 4.582-.283zm.6567.6572c-.424.4247-.424 1.1139 0 1.5383.4245.4246 1.114.4246 1.5382 0 .4248-.4244.4248-1.1136 0-1.5383-.4243-.4243-1.1137-.4243-1.5382 0zm15.9625-.3857a13.7597 13.7597 0 0 0-4.8637-4.8642c-1.0614 1.3609-.969 3.33.2823 4.5818 1.2517 1.2507 3.2204 1.3436 4.5814.2824zM17.346 8.1443c.4237-.4248.4237-1.1135 0-1.5383-.425-.4247-1.1145-.4247-1.5388 0-.4241.4248-.4241 1.1135 0 1.5383.4243.4243 1.1137.4243 1.5388 0zM1.3772 17.7087a13.763 13.763 0 0 0 4.8647 4.8654c1.0613-1.3608.9685-3.3297-.2833-4.5818-1.2512-1.251-3.2204-1.3436-4.5814-.2836zm5.2385-1.9115c-.4238.4247-.4238 1.1136 0 1.5384.425.4246 1.1141.4246 1.5382 0 .425-.4248.425-1.1137 0-1.5384-.4241-.4245-1.1131-.4245-1.5382 0z\"},\"child\":[]}]})(props);\n};\nexport function SiCapacitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 3.7l-5.766 5.766 5.725 5.736-3.713 3.712L5.073 3.742 8.786.03l5.736 5.726L20.284 0 24 3.7zM.029 8.785l3.713-3.713 15.173 15.173-3.713 3.714-5.732-5.726L3.7 24 0 20.285l5.754-5.764L.029 8.785z\"},\"child\":[]}]})(props);\n};\nexport function SiCaprover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9999 0C5.3755 0 0 5.3758 0 12.0003S5.3755 24 11.9999 24 24 18.6247 24 12.0002 18.6243 0 11.9999 0m0 .5072c6.3503 0 11.493 5.1427 11.493 11.493 0 6.3502-5.1427 11.4927-11.493 11.4927S.5071 18.3504.5071 12.0002C.5071 5.6499 5.6496.5072 12 .5072m-1.4425 1.5094c-.0504-.0034-.0758-.0027-.0693.0034.011.0103.3087.1672.6616.3489 1.0473.539 1.69 1.024 1.6578 1.251-.0297.2092-.0944.2159-2.1189.2177-2.0152.0018-2.2017.0166-3.0473.2406-1.095.2902-1.7084.8807-1.9024 1.8313-.0788.3865-.079.5708-.0013 1.0164.0809.4637.2153.8594.4794 1.4111.664 1.387 1.8457 3.0225 3.354 4.642 1.3542 1.4542 2.1135 2.7242 2.3388 3.912.115.6058.066 1.573-.119 2.3522-.1849.7788-.3972 1.208-1.0334 2.089-.148.205-.269.3825-.2691.3946.0003.0118.1218-.0734.2705-.1895 1.8675-1.4584 2.9028-2.7748 3.2631-4.1496.0843-.3216.094-.4466.0947-1.2205.0008-.9341-.0274-1.161-.2265-1.8246-.1398-.4662-.338-.9269-.569-1.3234-.415-.7118-1.4992-2.2216-2.1825-3.039-.4463-.5338-.7032-.9027-.9684-1.391-.6563-1.2077-.6871-2.4202-.072-2.835.2383-.1606.4886-.214 1.0035-.2138.693.0002 1.3311.1554 3.2162.7822 1.0735.357 2.094.5804 2.6547.5808.5397.0005.8497-.1352 1.007-.4411.139-.2703.1142-.6903-.0617-1.0432-.2352-.4719-.8798-1.1326-1.5147-1.5525-.9685-.6404-2.3945-1.2551-3.4646-1.4935-.4526-.1008-2.0288-.3324-2.3812-.3565m1.6478 4.3122c-.3793-.0015-.5496.0601-.7557.2493-.334.3067-.3976.5975-.2537 1.1599.1899.7426.5648 1.266 1.8453 2.5772.3877.397.815.8571.9494 1.0226.5445.6698.9385 1.3935 1.128 2.0718.107.3824.1102.4239.1067 1.357-.0032.8757-.0132 1.0095-.1102 1.486-.1552.762-.2614 1.0578-.748 2.083l-.2472.5213c-.0208.044.0182.017.0866-.0602.2214-.2498 1.053-1.5314 1.2879-1.985.4156-.8022.7215-1.7813.922-2.9512.128-.7467.1287-1.799.0018-2.3781-.385-1.7558-1.6052-3.7315-2.8936-4.6853-.507-.3753-.6783-.445-1.143-.464a5 5 0 0 0-.1762-.0043zm3.9252 1.0813c-.0339.0028-.068.0153-.117.0358-.0809.0337-.1678.1114-.2047.1828-.1153.2228.0095.4969.5758 1.2657.3845.522.7752 1.2765.893 1.7244.065.2471.0844.4406.0844.8421 0 .4593-.0802 1.2348-.1545 1.4939-.0478.1668.0272.092.1207-.1203.1094-.2485.5073-1.4214.6089-1.7946.1001-.3683.1007-1.1238.0012-1.5239-.0924-.3711-.3643-.9614-.5937-1.2884-.1835-.2616-.573-.5576-.9775-.7428-.1243-.057-.1802-.0793-.2367-.0747z\"},\"child\":[]}]})(props);\n};\nexport function SiCardano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5765 11.92c-.0488.8906.6316 1.653 1.5219 1.7056h.0934c.8928-.0006 1.6161-.725 1.6155-1.6178-.0006-.8928-.725-1.6161-1.6178-1.6155-.8578.0006-1.5658.6711-1.613 1.5277Zm-6.025-.416c-.288-.0161-.5345.2042-.5507.4922-.0161.288.2042.5345.4922.5507.2878.0161.5343-.204.5506-.4918.0167-.2876-.2029-.5343-.4905-.5509H.5514Zm5.9226-8.9645c.257-.1309.3593-.4453.2284-.7024-.1309-.257-.4453-.3593-.7024-.2284-.2558.1302-.3585.4424-.2301.6991.13.2582.4448.3622.703.2322.0003-.0002.0007-.0003.001-.0005Zm1.6397 2.8589c.398-.2006.558-.6859.3573-1.0839-.2006-.398-.6859-.558-1.0839-.3573-.3978.2006-.5579.6856-.3575 1.0835.2007.398.686.5581 1.0842.3578ZM2.597 7.3645c.3072.2013.7194.1154.9206-.1918.2013-.3072.1154-.7194-.1918-.9206-.3072-.2013-.7194-.1154-.9206.1918 0 .0001-.0001.0002-.0002.0003-.201.3072-.1151.7191.192.9203Zm.9824 3.8515c-.4453-.0254-.827.3149-.8524.7603s.3149.827.7603.8524c.4453.0254.827-.3149.8524-.7603v-.0006c.0251-.4451-.3152-.8264-.7603-.8518Zm-.8915 5.4221c-.328.1652-.46.565-.2948.893.1652.328.565.46.893.2948.328-.1652.46-.565.2948-.893l-.0002-.0004c-.1645-.3276-.5633-.4598-.8909-.2954-.0006.0003-.0013.0006-.0019.001Zm3.136-7.0931c.4386.2876 1.0274.1653 1.315-.2734.2876-.4386.1653-1.0274-.2734-1.315-.4386-.2876-1.0273-.1653-1.3149.2732-.2878.4381-.166 1.0266.2721 1.3144.0004.0003.0008.0005.0012.0008Zm9.9501-4.2106c.3729.2447.8737.1408 1.1184-.2321.2447-.3729.1408-.8737-.2321-1.1184-.3729-.2447-.8737-.1408-1.1184.2321 0 .0001-.0001.0002-.0002.0003-.2447.3726-.141.8729.2316 1.1176.0003.0002.0005.0003.0008.0005Zm1.6563-2.8499c.2413.1579.565.0904.723-.151s.0904-.565-.151-.723c-.241-.1577-.5642-.0906-.7224.1501-.1584.241-.0915.5648.1495.7233l.0009.0006Zm-1.5296 7.8938c-.8911-.0507-1.6546.6305-1.7053 1.5216-.0507.8911.6305 1.6546 1.5216 1.7053h.0928c.8925 0 1.616-.7235 1.616-1.616 0-.8572-.6693-1.5652-1.5251-1.6134v.0026ZM8.645 9.433c.2737.5459.8331.8896 1.4438.887.8925-.0002 1.6159-.7238 1.6157-1.6163 0-.2526-.0593-.5018-.1731-.7273-.4017-.7971-1.3735-1.1176-2.1706-.7158-.7971.4017-1.1176 1.3735-.7158 2.1706v.0019Zm12.6669-2.0704c.3273-.1666.4575-.567.2909-.8943-.1666-.3273-.567-.4575-.8943-.2909-.3259.1659-.4567.5639-.2927.8908.1652.3284.5653.4607.8937.2956.0008-.0004.0015-.0008.0023-.0012Zm-4.096.5146c-.4683.2362-.6565.8074-.4203 1.2757.2362.4683.8074.6565 1.2757.4203.468-.2361.6563-.8066.4207-1.2749-.2364-.4683-.8074-.6568-1.2762-.4211Zm-5.2768-5.6365c.3667.0205.6806-.2601.7011-.6267s-.2601-.6806-.6267-.7011c-.3655-.0205-.6789.2584-.7009.6238-.0225.3662.2562.6813.6224.7038.0014 0 .0028.0002.0042.0002Zm-.0077 4.1837c.5237.0288.9717-.3724 1.0006-.8961.0288-.5237-.3723-.9717-.8961-1.0006-.5231-.0288-.9707.3714-1.0005.8944-.0298.5237.3706.9724.8943 1.0021h.0017Zm-5.1475 9.6992c.4685-.2359.657-.807.421-1.2755-.2359-.4685-.807-.657-1.2755-.421-.4684.2359-.6569.8069-.4211 1.2754.2362.4682.807.6567 1.2755.4211Zm5.76-8.313c-.4881.7459-.2792 1.7463.4667 2.2344s1.7463.2792 2.2344-.4667.2792-1.7463-.4667-2.2344c-.262-.1715-.5683-.263-.8815-.2635-.5452-.0001-1.0538.2744-1.353.7302Zm2.8109 6.7571c-.4015-.7975-1.3735-1.1185-2.171-.7169-.7975.4015-1.1185 1.3735-.7169 2.171.4015.7975 1.3735 1.1185 2.171.7169.0005-.0002.0009-.0005.0014-.0007.7947-.3952 1.1186-1.3598.7235-2.1545-.0026-.0053-.0053-.0105-.0079-.0158Zm2.8211-.112c-.4386-.2876-1.0274-.1653-1.315.2734-.2876.4386-.1653 1.0274.2734 1.315.4386.2876 1.0273.1653 1.3149-.2732.2877-.4386.1654-1.0274-.2731-1.3151h-.0002Zm3.0963-2.4282c.0254-.4453-.3149-.827-.7603-.8524-.4453-.0254-.827.3149-.8524.7603-.0254.4453.3149.827.7603.8524h.0006c.4451.0251.8264-.3152.8518-.7603Zm2.2349-.5741c-.288-.0161-.5345.2042-.5507.4922s.2042.5345.4922.5507c.2878.0161.5343-.204.5506-.4918.016-.288-.2042-.5345-.4922-.551Zm-2.1043 5.1821c-.3073-.2011-.7194-.115-.9205.1923-.2011.3073-.115.7194.1923.9205.3071.201.719.1151.9202-.1918.2013-.3071.1156-.7193-.1916-.9207l-.0004-.0003ZM6.5695 21.5161c-.2411-.1584-.5649-.0913-.7232.1497-.1584.2411-.0913.5649.1497.7232.2411.1584.5649.0913.7232-.1497.158-.2411.091-.5646-.1498-.7232Zm10.9555-.055c-.257.1309-.3593.4453-.2284.7024.1309.257.4453.3593.7023.2284.2558-.1302.3585-.4424.2301-.6991-.1291-.2579-.4428-.3624-.7007-.2333-.0011.0005-.0022.0011-.0033.0016Zm-6.0691-5.2717c.4892-.7465.2806-1.7482-.4659-2.2374-.7465-.4892-1.7482-.2806-2.2374.4659s-.2806 1.7482.4659 2.2374c.2628.1722.5702.2641.8844.2644.5458.0022 1.0553-.2728 1.353-.7302Zm-3.2301 2.4768c-.3729-.2447-.8737-.1408-1.1184.2321-.2447.3729-.1408.8737.2321 1.1184s.8737.1408 1.1184-.2321c0-.0001.0001-.0002.0002-.0003.2445-.3729.1405-.8734-.2323-1.1181Zm3.7664 3.0931c-.3667-.0209-.6808.2594-.7017.6261s.2594.6808.6261.7017c.3658.0208.6795-.2581.7016-.6238.0222-.3666-.2571-.6817-.6236-.7039-.0008 0-.0015 0-.0023-.0001Zm.007-4.1837c-.5237-.0288-.9717.3724-1.0005.8961-.0288.5237.3724.9717.8961 1.0005.5228.0288.9703-.371 1.0004-.8938.0298-.524-.3709-.973-.8949-1.0028h-.0011Zm3.8861 1.0259c-.3976.2022-.556.6884-.3539 1.086.2022.3976.6884.556 1.086.3539.3961-.2014.5551-.685.3558-1.0821-.2-.3987-.6854-.5598-1.0841-.3597-.0013.0007-.0026.0013-.0039.002Z\"},\"child\":[]}]})(props);\n};\nexport function SiCarlsberggroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.9512 5.2813a.1934.1934 0 0 0-.127.0507C.7221 6.3193 0 7.606 0 9.0918c0 2.1987 1.7596 3.8984 3.83 3.8984 1.0356 0 2.0103-.4576 2.6895-1.1347.1559-.1556-.0356-.3535-.2011-.2012-.5049.4655-1.232.7539-1.9727.7539-1.564 0-2.875-1.2885-2.875-2.8437 0-1.2878 1.0338-2.584 2.332-2.584.473 0 .9813.1897 1.2813.4902.0258.0247.0668.0247.0898-.0059l1.5938-2.0976a.0505.0505 0 0 0-.0371-.086H1.9512zm17.4824 0a.1691.1691 0 0 0-.1035.037c-.1101.0871-.2604.1134-.3946.0606a.251.251 0 0 0-.3105.1074.2534.2534 0 0 0 .0605.3242.4013.4013 0 0 1 .1465.3711.1632.1632 0 0 0 .0196.1075.1689.1689 0 0 0 .2304.0625l.2246-.129a.1277.1277 0 0 1 .1739.047.1254.1254 0 0 1-.047.1718l-.2245.1309a.1676.1676 0 0 0-.0606.2304c.0197.0347.0507.057.084.0703a.401.401 0 0 1 .248.3125.2523.2523 0 0 0 .25.2149.25.25 0 0 0 .2481-.2149.404.404 0 0 1 .248-.3125c.0344-.0134.0647-.0356.084-.0703.0468-.0804.0207-.1843-.0605-.2304l-.2227-.1309a.125.125 0 0 1-.0468-.1719.1256.1256 0 0 1 .1718-.0468l.2247.1289a.1687.1687 0 0 0 .2304-.0625.165.165 0 0 0 .0196-.1075.401.401 0 0 1 .1464-.371.2524.2524 0 0 0 .0606-.3243c-.064-.1101-.1952-.1524-.3106-.1074a.4007.4007 0 0 1-.3945-.0605.1669.1669 0 0 0-.1035-.0371c-.0928 0-.168.0767-.168.1699v.2578a.1271.1271 0 0 1-.127.127.1265.1265 0 0 1-.1269-.127v-.2578a.1704.1704 0 0 0-.17-.17zM8.6172 6.6288a.055.055 0 0 0-.0547.0566v.1348c0 .0307.0312.0496.0547.0567l.168.0488c.0231.0068.0488.0236.0488.0547v3.3886c0 .721.5484.9258.914.9258h1.879c.4258 0 .832-.3108.832-.8125 0-.7579-1.168-.69-1.168-1.125 0-.1758.1718-.2383.3848-.2383.1603 0 .3807.0711.5039.1622.043.0321.0751.0003.086-.0235l.289-.6601c.0127-.0286-.0034-.0762-.0508-.0762h-1.3496c-.3685 0-.6953.3184-.6953.711 0 .781 1.0156.6427 1.0156 1.1718 0 .205-.1636.3809-.3906.3809-.4485 0-.638-.2996-.6582-.4727-.0044-.0333-.0464-.0564-.0762-.045l-.1855.0743c-.0353.0139-.0424.0626-.0235.086.0322.0393.0508.0782.0508.1406a.2205.2205 0 0 1-.2226.2207c-.1287 0-.2188-.1085-.2188-.2207V6.6855a.0569.0569 0 0 0-.0566-.0566H8.6172zm3.961 0a.055.055 0 0 0-.0548.0566v.1348c0 .031.0306.0491.0547.0567l.168.0488c.0243.0065.0488.0236.0488.0547v3.3789c0 .5698.4092.9355 1.0645.9355h.4453c.4766 0 .7793-.3283.7793-.7676v-.5175c.1261.082.2965.162.4668.2129.1434.6678.7362 1.1582 1.4394 1.1582.749 0 1.1167-.5062 1.1973-.6914.0828-.1912-.0943-.2292-.168-.1329-.1606.2109-.3916.3223-.7011.3223-.5259 0-.793-.4336-.793-.5508.8506 0 1.398-.4593 1.4101-1.0683.1607-.1105.3393-.211.4532-.211.1235 0 .2226.0674.2226.2227v1.9668c0 .0305.0239.0566.0547.0566h1.0762a.0575.0575 0 0 0 .0566-.0566v-.1367c0-.0316-.0327-.0478-.0566-.0547l-.166-.0508c-.0242-.0062-.0489-.0233-.0489-.0547V9.2461c0-.1361.1238-.2422.2598-.2422.2281 0 .1801.2422.5313.2422.2975 0 .6562-.3038.6562-.873 0-.3497-.1737-.6575-.5176-.8555-.1363-.0788-.2525.0866-.1445.1758.1582.1314.3203.3524.3203.4941 0 .1482-.1158.248-.2148.248-.23 0-.383-.2792-.6504-.2792-.1487 0-.2852.1234-.2852.2597 0 .0714.0371.1293.0371.205 0 .0622-.0476.1173-.1093.1173-.1816 0-.1824-.3028-.5508-.3028-.3293 0-.7353.2644-1.002.4708-.129-.2596-.4157-.4708-.8672-.4708-.8071 0-1.449.6312-1.4726 1.4258a2.864 2.864 0 0 1-.4336-.2343V8.578a.0556.0556 0 0 0-.0547-.0566h-.8047a.0572.0572 0 0 0-.0566.0566v.7735c0 .0741.0377.111.0879.1406l.371.2246v.7422c0 .2909-.2488.371-.459.371-.1917 0-.457-.118-.457-.3905v-3.754a.0565.0565 0 0 0-.0566-.0566h-1.0762zM3.6444 8.4355c-.6993 0-1.2695.6622-1.2695 1.4727 0 .8164.5702 1.4727 1.2695 1.4727.6496 0 .6635-.3848.8965-.3848.2681 0 .223.3848.5781.3848.3213 0 .9363-.5937 1.2403-.9082v.7656c0 .031.0258.0566.0566.0566h1.0762a.0572.0572 0 0 0 .0566-.0566v-.1367c0-.0317-.033-.048-.0566-.0547l-.166-.0508c-.0239-.0065-.0508-.0233-.0508-.0547V9.2461a.239.239 0 0 1 .2422-.2422c.0804 0 .1484.068.1484.1484 0 .1084-.086.112-.086.2735 0 .1664.1416.3144.3145.3144.3653 0 .6563-.2892.6563-.6543 0-.3653-.291-.6504-.6563-.6504-.4977 0-.5286.42-.711.42-.2012 0-.1145-.42-.6815-.42-.3277 0-.5372.2537-.5372.3711 0 .0623.05.1309.1309.1309.0876 0 .0885-.0625.1563-.0625.0557 0 .1074.0313.1074.0996v1.0547c-.2275.2034-.6113.5215-.791.5215-.099 0-.1914-.0809-.1914-.1797V8.875c0-.0315.0247-.0491.0488-.0566l.168-.0489c.0242-.0073.0546-.0259.0546-.0566V8.578a.0563.0563 0 0 0-.0546-.0566h-.8985c-.0369 0-.0604.0265-.0664.0566-.0188.099-.058.166-.1445.166-.1398 0-.2686-.3086-.8399-.3086zm18.3516 0c-.699 0-1.2695.662-1.2695 1.4727 0 .8165.5704 1.4727 1.2695 1.4727.532 0 .625-.2657.7207-.2657.0652 0 .0957.036.0957.0977v.545c0 .383-.2736.6679-.6387.6679-.3647 0-.6543-.2667-.6543-.6192 0-.037-.032-.0546-.0566-.0546h-.211a.054.054 0 0 0-.0546.0546c0 .3525-.6135 1.4063-2.7168 1.4063-2.4935 0-4.609-1.504-7.6465-1.504-1.5531 0-3.7493.6616-5.2656 1.9474-.0303.0256-.0155.0713.0136.0878l2.293 1.252c.0377.0212.0598.0128.0879-.0156 1.231-1.2344 2.414-1.7188 4.207-1.7188 1.306 0 3.8178.7305 5.2969.7305 2.685 0 3.6063-1.0906 3.8906-1.5977.2111.3587.6258.5762 1.0957.5762.6902 0 1.2754-.5569 1.2754-1.25V8.875c0-.031.0253-.0488.0488-.0566l.166-.0489c.0246-.007.0567-.0257.0567-.0566V8.578a.0574.0574 0 0 0-.0566-.0566h-.8965a.069.069 0 0 0-.0684.0566c-.019.099-.056.166-.1426.166-.1405 0-.2682-.3086-.8398-.3086zm-4.8828.5508c.2594 0 .2851.2045.2851.2852 0 .234-.322.711-.9218.711 0-.6246.3272-.9965.6367-.9962zM3.9727 9.086c.2352 0 .4882.1842.4882.3692v.9101c0 .1849-.253.3711-.4882.3711-.433 0-.713-.346-.713-.8281 0-.4832.28-.8223.713-.8223zm18.3496 0c.2356 0 .4902.1842.4902.3692v.9101c0 .185-.2546.3711-.4902.3711-.4327 0-.711-.3457-.711-.8281 0-.4832.2783-.8223.711-.8223zm-8.9649 5.2403c-.877.0314-1.4316.5538-1.4316 1.789 0 1.3227.4517 1.8106 1.3164 1.8106.2433 0 .549-.0718.7305-.1621.0477-.0244.0724-.043.1152-.043.0622 0 .0865.0526.1152.086.038.0427.0715.0624.1621.0624h.1758v-1.6054c0-.0767-.0282-.1094-.0996-.1094h-.2578v1.0547c0 .1338-.005.1635-.1055.2305 0 0-.2474.1425-.6054.1425-.874 0-1.1426-.3731-1.1426-1.4668 0-1.127.4262-1.4609 1.1328-1.4609.2815 0 .4959.0622.668.1816.0428.0285.0757.043.0996.043.0289 0 .044-.019.0586-.0527l.1093-.3242s-.4395-.1758-.955-.1758c-.029 0-.0577-.001-.086 0zm4.2344 1.0195c-.7353 0-1.1309.4557-1.1309 1.291 0 .8407.3956 1.289 1.1309 1.289.7355 0 1.1328-.4483 1.1328-1.289 0-.8403-.3973-1.291-1.1328-1.291zm-1.4121.0059c-.2107.0082-.4201.0775-.5586.162-.0477.0292-.0672.043-.1055.043-.0431 0-.0534-.0372-.0918-.0898-.0284-.0428-.0557-.0586-.1562-.0586h-.1348v2.3496c0 .0762.03.1113.1016.1113h.252v-1.8964c0-.0527.0003-.0569.0527-.0997.0619-.0522.273-.1914.5644-.1914.0955 0 .209.0137.209.0137v-.3398s-.0516-.004-.0898-.004c-.014 0-.029-.0005-.043 0zm6.5469 0c-.2245 0-.4535.0722-.6016.162-.0475.0292-.0672.043-.1055.043-.0428 0-.0534-.0372-.0918-.0898-.0284-.0425-.0559-.0586-.1562-.0586h-.1348v3.2012c0 .0763.0302.1093.1016.1093h.252v-.8847c0-.071.0154-.0996.0488-.0996.0193 0 .0426.0098.0761.0293.1576.0805.363.162.6114.162.5108 0 .998-.4017.998-1.2948 0-.8929-.444-1.2793-.998-1.2793zm-3.5684.0566v1.6953c0 .5587.2965.8223.879.8223.2146 0 .44-.0718.5878-.1621.0477-.029.067-.043.1055-.043.0426 0 .0516.0372.0898.0898.029.0428.0579.0586.1582.0586h.1328v-2.3496c0-.0764-.028-.1113-.0996-.1113h-.2539v1.9063c0 .0527.0019.0623-.0508.1054-.062.0526-.2682.1914-.5976.1914-.4584 0-.5977-.1687-.5977-.6035v-1.4883c0-.0764-.028-.1113-.0996-.1113h-.2539zm-1.6113.2305c.0153-.0007.029 0 .0449 0 .5062 0 .7559.339.7559.998 0 .6592-.2497.998-.7559.998s-.754-.3386-.754-.998c0-.638.2343-.9775.709-.998zm5.0644.0273c.487 0 .7364.3403.7364.9707 0 .7262-.3407.9746-.7559.9746-.2915 0-.4869-.1388-.5488-.1914-.0525-.0431-.0528-.0527-.0528-.1054V15.959c0-.0526.0098-.0635.0528-.1016.0619-.0523.2433-.1914.5683-.1914z\"},\"child\":[]}]})(props);\n};\nexport function SiCarrd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.2539 18.4207 9.7457 23.9469a.5163.5163 0 0 1-.23.0531.5491.5491 0 0 1-.2832-.0796.5289.5289 0 0 1-.2478-.4513v-5.4732l-6.2165-2.6016c-.199-.084-.3274-.2743-.3274-.4911V.5324c0-.1814.093-.354.2478-.4513.1549-.0974.3495-.1062.5132-.031l11.964 5.743 5.6323-2.7034c.1638-.0796.3584-.0663.5133.031a.5289.5289 0 0 1 .2478.4513v14.3708c-.004.2036-.1195.3894-.3053.4779zM3.5027 1.3774v13.1718l5.482 2.2964v-2.646L5.538 12.8105c-.2699-.1106-.4026-.4203-.2965-.6902.1107-.2743.4204-.4027.6903-.2965l3.0529 1.23v-2.1724L5.538 9.492c-.2699-.1106-.4026-.4203-.2965-.6902.1107-.2743.4204-.4026.6903-.2965l3.0529 1.23v-.6326c0-.2036.115-.3894.3009-.4779l.7875-.3805-4.5617-2.0751c-.2654-.1195-.3849-.438-.2654-.7035.1194-.2655.438-.385.7035-.2655l5.367 2.4468 2.6148-1.2566zM20.493 4.4171 10.0466 9.4345v13.1939l10.4463-5.0219zm-8.4509 6.8668 5.9864-2.8936a.5279.5279 0 0 1 .708.2478c.1282.2654.0176.584-.2478.7079l-5.9864 2.8936a.5448.5448 0 0 1-.23.0531c-.1992 0-.385-.1106-.478-.3008-.1238-.261-.0132-.5797.2478-.708zm0 3.3184 5.9864-2.8936a.5279.5279 0 0 1 .708.2478c.1282.2654.0176.584-.2478.7079l-5.9864 2.8936a.5448.5448 0 0 1-.23.0531c-.1992 0-.385-.1106-.478-.3009-.1238-.2654-.0132-.5796.2478-.7079zm0 3.314 5.9864-2.8936a.5279.5279 0 0 1 .708.2477c.1282.2655.0176.584-.2478.708l-5.9864 2.8936a.5448.5448 0 0 1-.23.053c-.1992 0-.385-.1105-.478-.3008-.1238-.261-.0132-.5796.2478-.708z\"},\"child\":[]}]})(props);\n};\nexport function SiCarrefour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.14 4.045c-2.569 0-3.572 3.64-3.572 7.979 0 4.34 1.003 7.931 3.572 7.931 1.541 0 2.855-.903 2.86-1.645a.625.625 0 0 0-.199-.453c-.73-.706-1.016-1.412-1.018-2.034-.005-1.189 1.026-2.074 1.977-2.074 1.306 0 2.077 1.027 2.077 2.357 0 1.26-.537 2.31-1.121 3.15a.193.193 0 0 0-.034.107c0 .065.04.12.098.12.035 0 .076-.02.122-.065l6.561-6.344c.328-.28.537-.608.537-1.073 0-.468-.21-.794-.537-1.073l-6.561-6.346c-.045-.045-.087-.064-.122-.064-.059 0-.097.055-.098.12 0 .035.01.073.034.107.584.84 1.12 1.89 1.12 3.15 0 1.329-.77 2.356-2.076 2.356-.95 0-1.982-.884-1.977-2.073.002-.622.288-1.328 1.018-2.033A.624.624 0 0 0 15 5.69c-.004-.743-1.319-1.646-2.86-1.646m-5.043.537L.537 10.93C.209 11.207 0 11.534 0 12c0 .465.21.793.537 1.073l6.56 6.345c.042.043.083.06.117.06.062 0 .105-.057.103-.123a.188.188 0 0 0-.057-.123C5.72 17.32 4.6 15.126 4.6 12.024c0-3.104 1.12-5.341 2.66-7.255a.185.185 0 0 0 .057-.123c.002-.068-.04-.123-.103-.123-.034 0-.075.017-.117.06\"},\"child\":[]}]})(props);\n};\nexport function SiCarthrottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 19.99h5.31l1-5.76h2.673L7.97 19.99h5.272l1.037-5.76h2.824l-1 5.76h7.584L21.9 17.029 24 4.01h-5.16l-.987 5.647h-2.86l.936-5.647H8.483l1.724 2.749-.487 2.898H6.996l.9-5.647H.35l1.76 2.774Z\"},\"child\":[]}]})(props);\n};\nexport function SiCarto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.138 7.138C21.823 7.138 24 9.3147 24 12s-2.1769 4.862-4.862 4.862c-1.9046 0-3.5532-1.0949-4.351-2.6896h.4683c.7615 1.358 2.215 2.2759 3.8826 2.2759 2.4567 0 4.4483-1.9916 4.4483-4.4483 0-2.4567-1.9916-4.4483-4.4483-4.4483-1.6677 0-3.1211.9178-3.8826 2.2759h-.4683c.7978-1.5947 2.4464-2.6897 4.351-2.6897zm0 3.3103c.8569 0 1.5517.6947 1.5517 1.5517 0 .857-.6948 1.5517-1.5518 1.5517-.857 0-1.5517-.6947-1.5517-1.5517 0-.857.6948-1.5517 1.5517-1.5517zm-17.5772.0109c.6066 0 .9968.2545 1.2597.615l-.6192.4793c-.1697-.2079-.3648-.3478-.649-.3478-.4156 0-.7083.3562-.7083.7889v.008c0 .4453.2927.793.7083.793.3096 0 .492-.144.6702-.3604l.6192.4411c-.2799.386-.6574.6701-1.3105.6701C.6829 13.547 0 12.898 0 12.0116v-.008c0-.8652.6617-1.5439 1.5608-1.5439zm4.7346.0382l1.264 2.9902h-.8822l-.212-.5344H5.3156l-.212.5344h-.861l1.2596-2.9902zm4.27.0212c.454 0 .7678.1187.9671.318.174.174.263.3988.263.6914v.008c0 .458-.2418.7592-.6108.9162l.7083 1.0349h-.9458l-.598-.8992h-.3648v.8992h-.8228v-2.969zm5.3983 0v.721h-.8907v2.248h-.8228v-2.248h-.8864v-.721zm-10.0712.9543l-.335.8398h.6658zm4.6348-.246h-.5429v.7168h.5472c.2756 0 .441-.1357.441-.352v-.008c0-.2375-.1738-.3563-.4453-.3563z\"},\"child\":[]}]})(props);\n};\nexport function SiCashapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.59 3.475a5.1 5.1 0 00-3.05-3.05c-1.31-.42-2.5-.42-4.92-.42H8.36c-2.4 0-3.61 0-4.9.4a5.1 5.1 0 00-3.05 3.06C0 4.765 0 5.965 0 8.365v7.27c0 2.41 0 3.6.4 4.9a5.1 5.1 0 003.05 3.05c1.3.41 2.5.41 4.9.41h7.28c2.41 0 3.61 0 4.9-.4a5.1 5.1 0 003.06-3.06c.41-1.3.41-2.5.41-4.9v-7.25c0-2.41 0-3.61-.41-4.91zm-6.17 4.63l-.93.93a.5.5 0 01-.67.01 5 5 0 00-3.22-1.18c-.97 0-1.94.32-1.94 1.21 0 .9 1.04 1.2 2.24 1.65 2.1.7 3.84 1.58 3.84 3.64 0 2.24-1.74 3.78-4.58 3.95l-.26 1.2a.49.49 0 01-.48.39H9.63l-.09-.01a.5.5 0 01-.38-.59l.28-1.27a6.54 6.54 0 01-2.88-1.57v-.01a.48.48 0 010-.68l1-.97a.49.49 0 01.67 0c.91.86 2.13 1.34 3.39 1.32 1.3 0 2.17-.55 2.17-1.42 0-.87-.88-1.1-2.54-1.72-1.76-.63-3.43-1.52-3.43-3.6 0-2.42 2.01-3.6 4.39-3.71l.25-1.23a.48.48 0 01.48-.38h1.78l.1.01c.26.06.43.31.37.57l-.27 1.37c.9.3 1.75.77 2.48 1.39l.02.02c.19.2.19.5 0 .68z\"},\"child\":[]}]})(props);\n};\nexport function SiCastbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.29 0-.58.068-.812.206L2.417 5.392c-.46.272-.804.875-.804 1.408v10.4c0 .533.344 1.135.804 1.407l8.77 5.187c.465.275 1.162.275 1.626 0l8.77-5.187c.46-.272.804-.874.804-1.407V6.8c0-.533-.344-1.136-.804-1.408L12.813.206A1.618 1.618 0 0012 0zm-.85 8.304c.394 0 .714.303.714.676v2.224c0 .207.191.375.427.375s.428-.168.428-.375V9.57c0-.373.32-.675.713-.675.394 0 .712.302.712.675v4.713c0 .374-.318.676-.712.676-.394 0-.713-.302-.713-.676v-1.31c0-.206-.192-.374-.428-.374s-.427.168-.427.374v1.226c0 .374-.32.676-.713.676-.394 0-.713-.302-.713-.676v-1.667c0-.207-.192-.375-.428-.375-.235 0-.427.168-.427.375v3.31c0 .373-.319.676-.712.676-.394 0-.713-.303-.713-.676v-2.427c0-.206-.191-.374-.428-.374-.235 0-.427.168-.427.374v.178a.71.71 0 01-.712.708.71.71 0 01-.713-.708v-2.123a.71.71 0 01.713-.708.71.71 0 01.712.708v.178c0 .206.192.373.427.373.237 0 .428-.167.428-.373v-1.53c0-.374.32-.676.713-.676.393 0 .712.303.712.676v.646c0 .206.192.374.427.374.236 0 .428-.168.428-.374V8.98c0-.373.319-.676.713-.676zm4.562 2.416c.393 0 .713.302.713.676v2.691c0 .374-.32.676-.713.676-.394 0-.712-.303-.712-.676v-2.691c0-.374.319-.676.712-.676zm2.28 1.368c.395 0 .713.303.713.676v.67c0 .374-.318.676-.712.676-.394 0-.713-.302-.713-.675v-.67c0-.374.32-.677.713-.677Z\"},\"child\":[]}]})(props);\n};\nexport function SiCastorama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.91 16.106c-2.129 0-3.659-1.794-3.659-4.266 0-2.148 1.468-4.095 3.488-4.095 2.275 0 3.545 1.857 3.545 1.857l2.939-3.298c-.91-1.062-2.598-2.882-6.503-2.882-4.388 0-8.209 3.489-8.209 8.456 0 4.766 3.475 8.532 8.266 8.532 3.855 0 5.572-2.017 6.54-3.129l-2.831-2.969c0 .001-1.415 1.794-3.576 1.794zM18.283 0v9.988h-2.064a1.92 1.92 0 1 0 0 3.84h2.064V24h5.205V0h-5.205z\"},\"child\":[]}]})(props);\n};\nexport function SiCastro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.373 0 12s5.372 12 12 12c6.627 0 12-5.373 12-12S18.627 0 12 0zm-.002 13.991a2.052 2.052 0 1 1 0-4.105 2.052 2.052 0 0 1 0 4.105zm4.995 4.853l-2.012-2.791a5.084 5.084 0 1 0-5.982.012l-2.014 2.793A8.526 8.526 0 0 1 11.979 3.42a8.526 8.526 0 0 1 8.526 8.526 8.511 8.511 0 0 1-3.512 6.898z\"},\"child\":[]}]})(props);\n};\nexport function SiCaterpillar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.901 11.554l.802-4.1.798 4.1zm2.869-6.52h-4.15L8.2 15.884l4.503-3.635 4.695 3.934zm-2.067 8.156l-7.509 6.072H19.95zM24 5.02v2.77h-2.066v11.45h-.882l-2.436-2.04V7.79h-2.057V5.02zM6.872 16.864c.548-.458.642-1.024.642-1.532V13.2h-2.98v2.894a.75.75 0 0 1-.748.751c-.414 0-.722-.336-.722-.75V7.893c0-.414.308-.75.722-.75a.75.75 0 0 1 .749.75v2.913H7.51V7.785c0-1.67-1.092-3.044-3.75-3.047-2.728 0-3.76 1.38-3.76 3.05v8.563c0 1.655 1.314 2.907 2.995 2.907h.922Z\"},\"child\":[]}]})(props);\n};\nexport function SiCbc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-1.5673 0-2.9376.8395-3.6855 2.0938l7.369.0019C14.9357.8402 13.5676 0 12 0zm0 2.7676c-2.3692 0-4.291 1.9188-4.291 4.287h8.5781c0-2.3682-1.9191-4.287-4.2871-4.287zm-4.9531.209c-2.2507 0-4.0762 1.8241-4.0762 4.0742h4.0762V2.9766zm9.9043.002v4.0722l4.0722.002c0-2.2501-1.8234-4.0743-4.0722-4.0743zM7.0469 7.709c-2.3698 0-4.289 1.9224-4.289 4.291 0 2.368 1.9189 4.2871 4.289 4.2871V7.709zm9.9043 0v8.5781c2.3682 0 4.291-1.9191 4.291-4.2871 0-2.3686-1.9228-4.291-4.291-4.291zm-4.9551.002C9.6278 7.711 7.709 9.6316 7.709 12c0 2.3686 1.9188 4.2871 4.287 4.2871 2.3684 0 4.2892-1.9185 4.2892-4.2871 0-2.3683-1.9208-4.289-4.2891-4.289zm-9.9004.6035C.8399 9.062 0 10.4327 0 12c0 1.5666.8398 2.9364 2.0938 3.6855l.0019-7.371zm19.8086 0 .002 7.371C23.1595 14.9364 24 13.5666 24 12c0-1.5673-.8402-2.9379-2.0957-3.6855zM7.0469 16.9492l-4.0742.002c0 2.2491 1.8222 4.0703 4.0742 4.0703v-4.0723zm9.9043 0v4.0703c2.2485 0 4.0722-1.8189 4.0722-4.0683l-4.0722-.002zm-9.2422.002c0 2.3692 1.9218 4.289 4.291 4.289 2.368 0 4.2871-1.9198 4.2871-4.289H7.709zm.5488 4.9531C9.0061 23.1592 10.3755 24 11.9434 24c1.5672 0 2.9366-.8408 3.6855-2.0957H8.258z\"},\"child\":[]}]})(props);\n};\nexport function SiCbs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.314 24 .068 18.587.068 11.949.068 5.413 5.314 0 12 0s11.932 5.413 11.932 11.949C23.932 18.587 18.686 24 12 24zm0-5.106c5.452 0 9.36-3.473 11.109-6.945C21.875 9.294 18.172 5.106 12 5.106c-5.452 0-9.36 3.37-11.109 6.843C2.537 15.42 6.548 18.894 12 18.894zm0-.613c-3.497 0-6.377-2.86-6.377-6.332S8.503 5.617 12 5.617s6.377 2.86 6.377 6.332c0 3.574-2.88 6.332-6.377 6.332Z\"},\"child\":[]}]})(props);\n};\nexport function SiCcc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3.4C5.814 3.4.8 7.253.8 12c0 4.75 5.014 8.6 11.2 8.6s11.2-3.85 11.2-8.6c0-4.747-5.015-8.6-11.2-8.6M24 12c0 5.19-5.374 9.4-12 9.4S0 17.19 0 12s5.374-9.4 12-9.4S24 6.81 24 12M10 7c-2.83 0-5.026 2.229-5.026 5 0 2.882 2.487 4.997 5.026 4.997V15.44c-1.708 0-3.442-1.36-3.445-3.44C6.547 9.65 8.476 8.544 10 8.544zm3.8 0c-2.83 0-5.026 2.229-5.026 5 0 2.882 2.484 4.997 5.026 4.997V15.44c-1.705 0-3.442-1.36-3.447-3.44-.007-2.35 1.923-3.456 3.447-3.456zm3.8.003c-2.83 0-5.026 2.23-5.026 4.997 0 2.886 2.487 5 5.026 5v-1.56c-1.708 0-3.442-1.358-3.448-3.44-.005-2.35 1.924-3.456 3.448-3.456z\"},\"child\":[]}]})(props);\n};\nexport function SiCcleaner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.9388.9336C8.8759.9336 3.9622 5.8884 3.9622 12c0 .5012.0322.9934.0971 1.4766.953-.7245 1.6108-1.4633 1.9557-1.9004l-.129-.082L7.6596 9.082s.2811-.336.6836-.336c.129 0 .2637.0279.3867.0763.123.0483.9893.4108 1.5879.6601l3.3828-7.1855s.33-.6818 1.0508-.6797c.1676.0005.342.0356.5644.125.2226.0894.4279.2665.543.4746.1152.208.138.4246.127.5977-.0198.1843-.0964.358-.1446.537l-1.6425 4.1192c.3584-.0592.577-.0664.8164-.0664.4266 0 2.5709.099 4.3691 2.0195.1086.1161.2144.2556.3184.3516.1684.1693.4444.1973.621-.0176l3.3106-3.8652c.1552-.1801.1313-.46.0098-.6348-.9985-1.3093-2.2822-2.3865-3.7578-3.1387-1.4863-.7583-3.1674-1.1855-4.9473-1.1855Zm-.1895 1.1836c-.431-.0013-.5879.373-.5879.373l-3.5937 7.6348c.0107.0043-1.7194-.7172-2.0117-.834-.0826-.0325-.1533-.045-.213-.045-.1895 0-.2733.1212-.2733.1212l-1.4649 1.9922s4.5809 2.9223 4.6895 3.0136c.1085.0914.2246.0997.2246.0997l2.539.4843s.301-2.3783.3653-2.8008c.0657-.4426-.2461-.5234-.2461-.5234s-1.0177-.4253-1.8653-.7793l3.0645-7.6875s.3896-.6968-.2832-.9785c-.1299-.0493-.2443-.07-.3438-.0703zm-8.3046 9.7324c-.7392.944-2.8816 3.2924-6.3926 4.0078 0 0-.0808.0222-.041.211.0397.1888.4932 1.6514 1.8632 3.0566 0 0 .3304.3558.754.4687.422.113 1.2093.0852 1.6542 0 0 0-.192.1734-.9336.6563a.1036.1036 0 0 0-.043.1172c.0184.0619.08.144.2345.2539.2905.2074 1.2422.7988 1.8554 1.0371 0 0 .2167.1492 1.1035.1523h.8262l.6367-.3574-.2949.3574s.909.0236 1.6582-.125c.2187-.0433.4267-.13.6133-.2539.6948-.4648 2.3624-1.9515 3.7012-6.0449l-2.209-.4219c-.0882-.0153-.2857-.0648-.457-.209.0284.023-.6612-.4413-4.5293-2.9062zm13.252 2.418c-1.4344 2.2332-4.1506 2.3157-4.5802 2.3242-.4569.009-.883-.04-1.3203-.1504-1.307 3.5108-2.8423 4.9127-3.58 5.4063a2.3336 2.3336 0 0 1-.129.08c1.4632.7292 3.1093 1.1387 4.8516 1.1387 3.5888 0 6.7606-1.75 8.7637-4.4336.2681-.3738.2908-.4488.2968-.5605.011-.2047-.1328-.3516-.1328-.3516l-3.4433-3.5117c-.371-.41-.7048-.0021-.7266.0586z\"},\"child\":[]}]})(props);\n};\nexport function SiCdprojekt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.942,20.154c-0.687,0.323-1.719,0.302-2.986-0.072l0.213,0.547l-0.389-0.226l-1.537-0.907h0.001 l-0.033-0.158C14.783,19.509,17.746,20.507,18.942,20.154z M7.929,22.045c-0.127,0.229,0.179,0.645,0.179,0.645 c-0.687-0.534-1.276,0.346-1.276,0.346c-0.039-0.385,0.397-0.669,0.397-0.669c-0.715,0.113-1.549,0.78-1.549,0.78 c-0.097-0.333,0.319-0.556,0.319-0.556c0-0.263,0.361-0.236,0.763-0.347c0.272-0.074,0.679-0.186,0.919-0.252 c0.005-0.004,0.007-0.01,0.011-0.013c0-0.002,0.303-0.348,0.671-0.745c0.291-0.31,0.614-0.648,0.868-0.88 c0.118,0.018,0.226,0.031,0.294,0.037c-0.243,0.199-0.651,0.62-0.999,0.994C8.266,21.665,8.039,21.921,7.929,22.045z M10.168,14.083 l8.822,6.05c-0.013,0.007-0.029,0.011-0.042,0.018c-0.008-0.004-0.163-0.064-0.328-0.129c-0.081-0.033-0.178-0.072-0.29-0.118 h-0.001c-0.005-0.002-0.012-0.005-0.019-0.009c-0.772-0.317-2.27-0.951-4.634-2.041c-2.4-1.112-3.815-1.798-5.028-2.388l0.001,0.002 c0,0-0.001-0.002-0.002-0.002l4.363,3.974l0.006,0.004l0.011,0.011h0.002l0.256,0.211l-1.153,0.348 c-0.001-0.006-0.005-0.013-0.006-0.018c-0.006-0.016-0.011-0.033-0.017-0.051c-0.003-0.008-0.006-0.017-0.009-0.025 c-0.006-0.017-0.012-0.033-0.018-0.05c-0.003-0.007-0.006-0.015-0.009-0.023c-0.011-0.023-0.021-0.047-0.032-0.073l-0.202,0.094 c0.09,0.197,0.121,0.356,0.121,0.482c-0.001,0.16-0.064,0.282-0.109,0.353c-0.025,0.037-0.07,0.086-0.071,0.086l0.064,0.088 c-0.004,0.011-0.008,0.023-0.014,0.035c-0.341,0.545-0.652,1.308-0.786,1.653c-0.044,0.114-0.069,0.183-0.069,0.183 c0,0,0,0.002-0.001,0.005c0.227,0.009,0.767,0.073,0.627,0.504l-0.122,0.444c-0.268-0.478-0.154-0.606-0.154-0.606 C10.544,22.894,8.968,24,8.968,24c0.052-0.411,0.506-0.697,0.768-0.847c-0.221-0.026-0.494,0.165-0.64,0.283 c0.137-0.27,0.335-0.433,0.539-0.522c-0.002-0.002-0.002-0.002-0.003-0.004c0.359-0.135,0.712-0.069,0.753-0.029l-0.002,0.001 c0.122-0.038,0.131-0.043,0.241-0.068c0.036-0.026,0.071-0.112,0.088-0.158c0.001-0.005,0.363-1.014,0.81-1.774 c-0.217-0.021-0.388-0.274-0.388-0.581c0-0.018,0.001-0.037,0.002-0.055c-0.475,0.069-0.973,0.088-1.484,0.043 c-0.016,0-0.032-0.003-0.049-0.005c0,0.001,0,0.001,0,0.001c-0.024-0.002-0.131-0.012-0.262-0.029 c-0.945-0.128-1.803-0.45-2.507-0.911l0.002,0.01c0,0-1.279-0.682-1.551-2.233l-0.309,0.195c0-1.39,0.238-2.365,0.563-3.111 l-0.38,0.037l0.38-0.534c-0.05,0.103-0.096,0.212-0.143,0.332l0.233-0.039l0-.002c0.047-0.096,0.092-0.184,0.138-0.27 c0.092-0.169,0.188-0.328,0.295-0.484c0.024-0.035,0.069-0.098,0.111-0.152c0.062-0.08,0.147-0.179,0.204-0.245 c0.051-0.06,0.166-0.172,0.22-0.221c0.041-0.037,0.114-0.096,0.147-0.12l-0.229,1.072c0.669-0.832,1.912-2.075,2.535-2.665 c-0.118-0.222-0.248-0.418-0.386-0.581L8.08,10.763l-0.025,0.019c0,0-0.416,0.314-0.565,0.412c-0.409,0.267-0.706-0.07-0.722-0.09 c0.088,0.074,0.201,0.12,0.328,0.12c0.14,0,0.267-0.055,0.357-0.144c0.092-0.088,0.147-0.209,0.147-0.343 c0-0.068-0.014-0.132-0.038-0.191c-0.044-0.097-0.12-0.178-0.214-0.23H7.35c0,0-0.104-0.06-0.082-0.158 c0.022-0.099,0.206-0.291,0.206-0.291l0.225-0.229l0.36-0.367l0.777-0.79c0.047-0.052,0.077-0.087,0.077-0.087L8.231,8.686 L8.229,8.68c0-0.009,0.006-0.037,0.053-0.123c0.065-0.119,0.22-0.335,0.224-0.343l0.001-0.001L7.242,9.117c0-0.001,0-0.001,0-0.002 c0.074-0.35,0.824-1.365,0.858-1.412L7.27,8.464c0-0.002-0.001-0.004-0.003-0.006C7.224,8.2,7.638,7.317,7.695,7.197 C7.697,7.193,7.698,7.19,7.7,7.187C7.398,7.488,7.18,7.815,7.173,7.823c0-0.291,0.223-0.709,0.223-0.709 C7.332,7.176,7.272,7.242,7.214,7.307C6.346,8.285,6.095,9.429,6.027,9.873c0,0,0,0.001-0.001,0.001 C5.881,9.963,5.97,9.854,5.9,10.022c-0.256,0.073-0.47,0.202-0.642,0.346c-0.287,0.237-0.459,0.511-0.513,0.605 c0.034-0.043,0.07-0.083,0.105-0.119C5.38,10.3,5.992,10.36,5.992,10.36s0.682,1.26,0.542,1.405 c-0.015,0.015-0.039,0.017-0.072,0.006c-0.09-0.031-0.149-0.017-0.182,0.024c-0.105,0.117-0.009,0.454-0.008,0.462l-1.809-0.778 c0.858-0.318,1.47-0.1,1.47-0.1c0,0.212,0.48,0.184,0.48,0.184l0-.001h0.001c0-0.196-0.365-0.43-0.365-0.43 s-0.327,0.136-0.716,0c-0.077-0.027-0.161-0.038-0.242-0.034C5.02,11.1,4.946,11.115,4.874,11.136 c-0.206,0.059-0.357,0.174-0.357,0.174v-0.001L4.515,11.31l1.131-4.139l0.119,1.591L8.06,3.367l0.039,4.037L14.354,0l-3.847,8.316 l0.023,0.041l2.713-1.954l-0.573,1.149l3.793-1.481l-3.539,2.585l6.612-0.81l-8.021,3.471l4.105-1.001L10.168,14.083z M11.512,11.319l0.001,0l-0.001-0.004C11.512,11.316,11.512,11.317,11.512,11.319z M9.515,12.181 c-0.095-0.395-0.223-0.757-0.371-1.076L8.2,13.182L9.515,12.181z M7.215,11.087c0.208-0.071,0.314-0.308,0.239-0.529l-0.208,0.071 c0.013,0.031,0.022,0.064,0.022,0.099c0,0.031-0.005,0.06-0.017,0.086l0.095,0.057c-0.032,0.051-0.081,0.095-0.141,0.12 c-0.036,0.016-0.074,0.022-0.112,0.022c-0.122,0-0.236-0.074-0.286-0.195c-0.004-0.01-0.01-0.022-0.012-0.034l-0.092,0.03 C6.778,11.038,7.008,11.158,7.215,11.087z\"},\"child\":[]}]})(props);\n};\nexport function SiCe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 20.53v-2.59a6 6 0 0 1-.857.06 6 6 0 0 1-5.862-4.714h5.005v-2.571H17.28A6 6 0 0 1 24 6.06V3.47a9 9 0 0 0-.857-.042 8.571 8.571 0 1 0 .857 17.1M0 12a8.57 8.57 0 0 0 9.486 8.524V17.93q-.448.07-.915.07a6 6 0 1 1 .915-11.93V3.477a9 9 0 0 0-.915-.048A8.57 8.57 0 0 0 0 12\"},\"child\":[]}]})(props);\n};\nexport function SiCelery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.303 0A2.298 2.298 0 0 0 0 2.303v19.394A2.298 2.298 0 0 0 2.303 24h19.394A2.298 2.298 0 0 0 24 21.697V2.303A2.298 2.298 0 0 0 21.697 0zm8.177 3.072c4.098 0 7.028 1.438 7.68 1.764l-1.194 2.55c-2.442-1.057-4.993-1.41-5.672-1.41-1.574 0-2.17.922-2.17 1.763v8.494c0 .869.596 1.791 2.17 1.791.679 0 3.23-.38 5.672-1.41l1.194 2.496c-.435.271-3.637 1.818-7.68 1.818-1.112 0-4.64-.244-4.64-4.64V7.713c0-4.397 3.528-4.64 4.64-4.64z\"},\"child\":[]}]})(props);\n};\nexport function SiCelestron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .002c-6.6266 0-12 5.3712-12 12 0 6.6275 5.3734 11.996 12 11.996 1.7452 0 3.4033-.3698 4.8984-1.041C10.7585 21.2392 2.2788 17.3246 3.25 9.5312c.6406-5.1338 7.2145-8.46 13.8047-8.414C15.518.4012 13.8062.002 12 .002zm5.4297 1.8437c-5.0918-.049-9.3055 2.0411-9.6875 5.5566-.6046 5.5956 7.1547 8.8084 11.8437 10.1407.9056.2592 1.8969.4197 2.7676.5234C23.399 16.286 24 14.2111 24 12.002c0-4.2502-2.21-7.9827-5.541-10.1172a18.6755 18.6755 0 0 0-1.0293-.0391z\"},\"child\":[]}]})(props);\n};\nexport function SiCentos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.076.066L8.883 3.28H3.348v5.434L0 12.01l3.349 3.298v5.39h5.374l3.285 3.236 3.285-3.236h5.43v-5.374L24 12.026l-3.232-3.252V3.321H15.31zm0 .749l2.49 2.506h-1.69v6.441l-.8.805-.81-.815V3.28H9.627zm-8.2 2.991h4.483L6.485 5.692l4.253 4.279v.654H9.94L5.674 6.423l-1.798 1.77zm5.227 0h1.635v5.415l-3.509-3.53zm4.302.043h1.687l1.83 1.842-3.517 3.539zm2.431 0h4.404v4.394l-1.83-1.842-4.241 4.267h-.764v-.69l4.261-4.287zm2.574 3.3l1.83 1.843v1.676h-5.327zm-12.735.013l3.515 3.462H3.876v-1.69zM3.348 9.454v1.697h6.377l.871.858-.782.77H3.35v1.786L.753 12.01zm17.42.068l2.488 2.503-2.533 2.55v-1.796h-6.41l-.75-.754.825-.83h6.38zm-9.502.978l.81.815.186-.188.614-.618v.686h.768l-.825.83.75.754h-.719v.808l-.842-.83-.741.73v-.707h-.7l.781-.77-.188-.186-.682-.672h.788zm-7.39 2.807h5.402l-3.603 3.55-1.798-1.772zm6.154 0h.708v.7l-4.404 4.338 1.852 1.824h-4.31v-4.342l1.798 1.77zm3.348 0h.715l4.317 4.343.186-.187 1.599-1.61v4.316h-4.366l1.853-1.825-.188-.185-4.116-4.054zm1.46 0h5.357v1.798l-1.785 1.796zm-2.83.191l.842.829v6.37h1.691l-2.532 2.495-2.533-2.495h1.79V14.23zm-1.27 1.251v5.42H8.939l-1.852-1.823zm2.64.097l3.552 3.499-1.853 1.825h-1.7z\"},\"child\":[]}]})(props);\n};\nexport function SiCeph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.959.257A11.912 11.912 0 003.503 3.76 11.92 11.92 0 000 12.217a11.934 11.934 0 001.207 5.243c.72 1.474 1.888 2.944 3.208 4.044.86-.47 1.35-.99 1.453-1.545.1-.533-.134-1.107-.737-1.805a9.031 9.031 0 01-2.219-5.937c0-4.988 4.058-9.047 9.047-9.047h.08c4.99 0 9.048 4.059 9.048 9.047a9.03 9.03 0 01-2.218 5.936c-.599.693-.84 1.292-.735 1.83.108.556.595 1.068 1.449 1.522 1.322-1.1 2.489-2.57 3.209-4.046A11.898 11.898 0 0024 12.217a11.929 11.929 0 00-3.503-8.457A11.923 11.923 0 0012.04.257h-.041zm-.005 4.837a7.072 7.072 0 00-3.76 1.075A7.202 7.202 0 006.15 8.093a7.164 7.164 0 00-1.161 2.65 7.188 7.188 0 00.04 3.125 7.14 7.14 0 001.22 2.607c.154.207.326.396.509.597l.185.202.005.006c.007.007.017.016.026.027.635.738.957 1.533.957 2.36a3.4 3.4 0 01-1.788 2.989 11.924 11.924 0 002.685 1.087c.14-.088.614-.441 1.077-1.083a4.899 4.899 0 00.94-2.99 6.595 6.595 0 00-.49-2.37 6.717 6.717 0 00-1.302-2.033l-.002-.004-.124-.142c-.21-.245-.428-.497-.602-.792a4.104 4.104 0 01-.462-1.135 4.258 4.258 0 01-.024-1.85 4.25 4.25 0 01.686-1.564 4.216 4.216 0 013.432-1.773H12.042a4.202 4.202 0 013.432 1.773c.33.466.568 1.007.686 1.565a4.27 4.27 0 01-.023 1.849c-.093.39-.249.772-.463 1.135-.173.295-.391.547-.602.792l-.123.142-.004.004a6.736 6.736 0 00-1.301 2.033 6.607 6.607 0 00-.49 2.37 4.897 4.897 0 00.94 2.99c.463.642.937.995 1.076 1.083a11.776 11.776 0 002.687-1.087 3.399 3.399 0 01-1.789-2.988c0-.817.313-1.59.956-2.359.009-.012.02-.022.027-.03l.006-.004.184-.204c.183-.2.355-.39.51-.596a7.14 7.14 0 001.22-2.608 7.21 7.21 0 00.04-3.124 7.185 7.185 0 00-1.16-2.65 7.203 7.203 0 00-2.044-1.924 7.074 7.074 0 00-3.762-1.075h-.09zM12 9.97a2.365 2.365 0 00-2.362 2.361A2.364 2.364 0 0012 14.691c1.301 0 2.36-1.059 2.36-2.36A2.364 2.364 0 0012 9.968z\"},\"child\":[]}]})(props);\n};\nexport function SiCesium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.0283 10.216c-.3959 0-.7785.22-1.0792.6168l-3.7755 4.994c-.625.8275-1.5128 1.3012-2.4355 1.3012h-.0143c-.9236 0-1.8115-.4737-2.4355-1.3012l-3.7754-4.994c-.2998-.3969-.6823-.6168-1.0802-.6168-.3949 0-.7795.22-1.0781.6168l-3.7765 4.994c-.621.8204-1.4996 1.294-2.414 1.3012C3.088 21.186 7.2113 24 12.0004 24 18.6268 24 24 18.6276 24 12.001c0-.4705-.0338-.9308-.086-1.382-.2638-.2598-.5697-.403-.8857-.403m-7.019-2.5972c-.6936 0-1.2542-.5616-1.2542-1.2541s.5606-1.2541 1.2541-1.2541c.6925 0 1.254.5616 1.254 1.254s-.5615 1.2542-1.254 1.2542M12.0005 0C5.3732 0 0 5.3714 0 12.001c0 1.0536.1504 2.0704.406 3.0463.2272.175.4788.2762.7366.2762.3979 0 .7804-.2189 1.0812-.6138l3.7754-4.996c.623-.8285 1.5129-1.3021 2.4335-1.3021.9226 0 1.8095.4736 2.4355 1.3021l3.6323 4.8037.1565.1923c.2997.3939.6812.6107 1.074.6138.3918-.003.7743-.22 1.072-.6138l.1595-.1923 3.6323-4.8037c.624-.8285 1.5118-1.3021 2.4335-1.3021.1462 0 .2935.0163.4367.0388C21.9522 3.5557 17.3922 0 12.0005 0\"},\"child\":[]}]})(props);\n};\nexport function SiChai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2235 5.8311 12.2307.0619a.4617.4617 0 0 0-.4615 0L1.7765 5.8311a.4615.4615 0 0 0-.2308.3997v11.5385c0 .1649.088.3173.2308.3997l9.9928 5.7692a.4617.4617 0 0 0 .4615 0l9.9928-5.7692a.4615.4615 0 0 0 .2308-.3997V6.2308a.4618.4618 0 0 0-.2309-.3997zm-.6304 11.7074L12 23.0769l-9.5931-5.5385V6.4615L12 .9231l9.5931 5.5385v11.0769zM11.2957 8.1858c.3873-.2769.7918-.4965 1.2137-.6588s.8427-.2434 1.2624-.2434c.2596 0 .5019.0379.7269.1136.225.0757.4197.185.5841.3278s.2942.3202.3894.5322c.0952.212.1428.4543.1428.7269 0 .3288-.0649.6555-.1947.98-.1298.3245-.304.6252-.5225.9022s-.4706.5192-.7561.7269-.582.357-.8892.4478l-.1363-.2272a2.0872 2.0872 0 0 0 .4998-.3505 2.2747 2.2747 0 0 0 .3894-.4835c.1082-.1796.1915-.37.2499-.5712a2.1893 2.1893 0 0 0 .0876-.6133c0-.238-.0346-.463-.1038-.675-.0692-.212-.1709-.397-.305-.5549-.1341-.1579-.2996-.2823-.4965-.3732-.1969-.0909-.423-.1363-.6782-.1363-.3115 0-.5971.0606-.8567.1817-.2596.1212-.4933.2845-.701.49s-.3883.4413-.5419.7075a4.874 4.874 0 0 0-.3829.8373 5.6168 5.6168 0 0 0-.2304.8859c-.0519.2986-.0779.5798-.0779.8438 0 .2683.0281.5452.0844.8308s.1385.5668.2466.8438c.1082.2769.2423.5387.4024.7853.1601.2466.3451.463.5549.649a2.583 2.583 0 0 0 .701.4446c.2575.1103.5376.1655.8405.1655.2077 0 .41-.0281.6069-.0844a2.9874 2.9874 0 0 0 .5679-.2272 3.2094 3.2094 0 0 0 .516-.3375 3.9668 3.9668 0 0 0 .4511-.4219l.2142.2077c-.1904.251-.4165.4922-.6782.7237a5.5434 5.5434 0 0 1-.847.6166 4.6241 4.6241 0 0 1-.9508.4284c-.331.106-.6588.159-.9833.159-.3159 0-.6133-.0552-.8924-.1655-.2791-.1103-.5355-.2596-.7691-.4478s-.4424-.4089-.6263-.662c-.1839-.2531-.3397-.5225-.4673-.8081s-.225-.5798-.2921-.8827-.101-.5992-.101-.8891c0-.4197.0703-.8513.2109-1.2948s.3343-.874.5809-1.2916.5376-.8124.873-1.1845c.3353-.3721.6966-.6967 1.0839-.9736z\"},\"child\":[]}]})(props);\n};\nexport function SiChainguard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9962 16.329c-.1088-1.123-3.3873-1.488-5.717-2.501.5096-1.0168 1.2826-2.168.9488-4.2865C18.7817 6.7253 16.3572 1.741 12 1.741c-4.3571 0-6.7817 4.9807-7.228 7.8005-.3338 2.1184.4428 3.2697.9488 4.2864-2.3262 1.0132-5.6046 1.3816-5.717 2.501-.102 1.038 1.8904 1.417 4.1357 1.2824-.5657.6908-1.0084 1.3461-.9733 1.8173.0562.79.896 1.3036 2.2207 1.3036 1.4829 0 3.774-.9388 4.3186-3.4751 0 0-.225 1.0166-.102 1.9908.1476 1.162 1.019 3.0111 2.3965 3.0111 1.3774 0 2.2489-1.8492 2.3964-3.0111.123-.9742-.1018-1.9909-.1018-1.9909.5446 2.5364 2.8321 3.4752 4.3185 3.4752 1.3247 0 2.1645-.5137 2.2207-1.3036.0352-.4712-.411-1.13-.9733-1.8173 2.2453.1346 4.2377-.2445 4.1358-1.2824zM7.4355 5.953c-.26-.2232-.1897-.705.1547-1.077.3443-.3719.8362-.4959 1.0962-.2727s.1898.705-.1545 1.077c-.3444.3719-.8363.4923-1.0964.2727Zm2.3719 6.419c-1.0717 0-1.9397-.875-1.9397-1.9555s.868-1.9555 1.9397-1.9555c1.0717 0 1.9396.875 1.9396 1.9555 0 1.077-.868 1.9554-1.9396 1.9554zm1.1841-7.7014c-.7555.34-1.5601.2232-1.799-.2586-.239-.4853.1792-1.1513.9346-1.4914.7555-.34 1.5602-.2232 1.7991.2586.239.4818-.1792 1.1513-.9347 1.4914Zm5.218 7.7013c-1.0716 0-1.9396-.875-1.9396-1.9554 0-1.0805.868-1.9555 1.9397-1.9555 1.0717 0 1.9397.875 1.9397 1.9555 0 1.077-.868 1.9554-1.9397 1.9554zm.1582-1.9696.7133-.8466a1.2052 1.2052 0 0 0-.8714-.372c-.6746 0-1.2193.5491-1.2193 1.2293 0 .6801.5447 1.2292 1.2193 1.2292.6747 0 1.2193-.5491 1.2193-1.2292v-.0107zm-5.3445 0v.0107c0 .6802-.5447 1.2292-1.2194 1.2292-.6746 0-1.2192-.549-1.2192-1.2292 0-.6801.5446-1.2292 1.2192-1.2292.3409 0 .65.1417.8715.372l-.7133.8466Z\"},\"child\":[]}]})(props);\n};\nexport function SiChainlink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L9.798 1.266l-6 3.468L1.596 6v12l2.202 1.266 6.055 3.468L12.055 24l2.202-1.266 5.945-3.468L22.404 18V6l-2.202-1.266-6-3.468zM6 15.468V8.532l6-3.468 6 3.468v6.936l-6 3.468z\"},\"child\":[]}]})(props);\n};\nexport function SiChakraui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.352 0 0 5.352 0 12s5.352 12 12 12 12-5.352 12-12S18.648 0 12 0zm2.8 4.333c.13-.004.248.136.171.278l-3.044 5.58a.187.187 0 00.164.276h5.26c.17 0 .252.207.128.323l-9.22 8.605c-.165.154-.41-.063-.278-.246l4.364-6.021a.187.187 0 00-.151-.296H6.627a.187.187 0 01-.131-.32l8.18-8.123a.182.182 0 01.125-.056z\"},\"child\":[]}]})(props);\n};\nexport function SiChannel4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.309 0-.33.412v4.201l2.382-2.95zm-1.155 1.201L10.707 4.22v8.674h2.447zm3.268 1.701-2.443 3.02v14.81h2.443zM9.887 5.236l-6.201 7.657h3.142L9.887 9.12Zm-6.766 8.48v2.444h10.033v-2.443Zm14.125 0v2.444h3.633v-2.443Zm-6.539 3.268V24h2.443v-7.016Zm-3.271 4.573V24h2.443v-2.443zm6.543 0V24h5.189v-2.443z\"},\"child\":[]}]})(props);\n};\nexport function SiCharles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.494.713c-.103.011-.385.049-.623.076-.24.028-.705.11-1.04.175l-.61.122-.883-.132C5.706.713 3.694.74 2.252 1.02c-1.464.278-2.45.802-2.218 1.173.033.055.358.34.72.634 1.536 1.24 2.296 2.18 2.734 3.398.228.633.31 1.114.304 1.885-.005.901-.114 1.376-.732 3.24-.27.813-.564 1.802-.65 2.194-.142.65-.158.804-.158 1.749 0 1.022.043 1.431.24 2.245a6.588 6.588 0 0 0 1.896 3.218c.337.306.45.442.43.518-.05.175.09.475.32.71.584.59 1.886 1.093 3.27 1.257.71.087 2.18.076 2.862-.022.53-.076 1.47-.301 1.746-.41.59-.24 1.117-.557 1.383-.83.444-.453.45-.464.417-.732-.032-.224-.022-.246.168-.388.255-.19 1.07-1.017 1.29-1.306.2-.262.576-.906.69-1.19.103-.24.14-.246.31-.066.367.394 1.12.721 1.528.667.352-.05.596-.361.406-.52-.037-.032-.265-.14-.51-.245a4.335 4.082 0 0 1-.64-.339l-.2-.158.022-.41c.032-.71.25-1.022 1.93-2.78 1.345-1.41 1.595-1.694 2.148-2.442.58-.782.884-1.278 1.247-2.049.727-1.551.976-3.239.662-4.485-.5-1.982-2.392-3.468-4.398-3.452-1.128.006-2.093.427-3.107 1.35-.575.524-.69.475-.526-.213.097-.432.08-.629-.082-.956-.325-.65-1.6-1.262-3.064-1.476-.46-.066-1.876-.114-2.196-.075zm9.962 3.02c1.106.34 2.022 1.29 2.326 2.41.2.753.054 2.141-.342 3.223a11.632 10.954 0 0 1-1.014 1.978c-.33.501-1.3 1.704-1.85 2.283a43.744 41.193 0 0 0-1.512 1.682c-.303.36-.51.557-.57.546-.075-.016-.09-.141-.118-.89a19.086 17.973 0 0 0-.917-4.916c-.206-.59-.26-.951-.157-1.016.043-.028.314-.05.602-.05.336 0 .537-.021.564-.06.022-.037-.13-.23-.374-.464-.423-.41-.586-.66-.722-1.11-.168-.556-.032-1.458.304-2.052.477-.836 1.388-1.503 2.283-1.661.4-.072 1.09-.028 1.497.098M11.569 7.34c.098.033.25.115.342.192.12.103.2.13.31.109.226-.05.747.207.866.414.05.094.136.224.19.29.08.098.098.175.07.4-.026.24-.01.31.104.48a.76.76 0 0 1 .135.442c0 .192.016.236.082.213a.178.168 0 0 0 .08-.136c0-.197.158-.486.294-.547a.774.774 0 0 1 .38-.027c.227.038.25.05.227.175-.016.076.01.17.06.213.076.082.076.092-.017.164-.092.066-.097.093-.038.245.066.176.066.176-.086.149-.087-.017-.168-.023-.185-.006-.016.016.017.202.076.41.136.486.13.622-.027 1.054-.103.29-.12.404-.08.59.08.431.053 1.572-.06 2.283a14.166 13.34 0 0 1-.38 1.72c-.228.798-.483 2.279-.472 2.743.005.246.027.459.043.476.016.016.125-.104.233-.263.24-.35.45-.525.852-.705.162-.071.34-.185.396-.25.157-.176.254-.153.195.048-.027.088-.033.164-.022.164.016 0-.016.066-.076.153-.054.082-.13.257-.168.393-.038.137-.12.317-.18.4-.08.114-.091.174-.048.218.044.043.14-.028.37-.268.346-.355.53-.579.563-.666.043-.115.602-.667.645-.64.027.017.06.006.082-.027.086-.141.12-.016.114.4l-.01.447-.294.323a56 56 0 0 1-.786.84c-.266.28-.624.662-.787.841a4.493 4.231 0 0 1-.596.536c-.298.202-.927.447-1.33.525a2.851 2.851 0 0 0-.324.066c-.255.059-2.863.07-3.525.009a31.86 30.002 0 0 0-.873-.075.816.768 0 0 1-.217-.045.532.501 0 0 0-.21-.033c-.52-.01-.94-.114-1.227-.31-.114-.077-.27-.137-.347-.137-.076 0-.135-.028-.135-.055 0-.032-.038-.054-.082-.054-.043 0-.08-.028-.08-.055 0-.033-.028-.054-.06-.054-.066 0-.288-.198-.608-.542-.125-.13-.31-.322-.4-.42-.1-.099-.18-.198-.18-.218 0-.029-.05-.094-.11-.158-.216-.23-.324-.356-.297-.356.01 0-.027-.104-.08-.23-.213-.47-.088-.508.19-.07.107.163.226.3.264.3.103 0 .336.284.494.601.07.142.255.393.4.562l.278.302.233-.056c.124-.033.25-.082.276-.103.065-.06-.18-.4-.667-.923-.4-.432-.504-.607-.325-.563.06.016.12.049.13.076.016.022.114.028.212.011a.994.936 0 0 1 .433.055c.206.07.25.07.25.01 0-.043-.022-.092-.054-.109-.028-.016-.044-.11-.033-.207a.732.69 0 0 0-.184-.476c-.017-.016-.033-.115-.044-.218l-.016-.186.152.137c.087.076.233.175.33.213.098.037.25.153.33.257.148.175.169.185.39.152.132-.021.257-.049.278-.059.033-.023.3.087.602.24.022.01.038 0 .038-.028 0-.026-.087-.092-.19-.141-.238-.115-.238-.186-.005-.23.222-.043.347-.01.72.18.305.153.419.137.26-.044-.123-.14-.07-.3.072-.212.18.114.293.393.282.71-.01.41-.01.405.114.29.07-.066.097-.137.076-.214-.212-.716-.25-1.01-.288-2.19l-.01-.285-.18.066a3.12 3.12 0 0 0-.44.218c-.33.197-.622.23-1.007.12-.163-.043-.43-.12-.59-.164-.164-.044-.316-.115-.338-.153-.103-.158-.113-.42-.027-.546.12-.17.11-.208-.07-.208-.08 0-.222-.021-.31-.049a2.013 1.896 0 0 0-.39-.082 1.48 1.394 0 0 1-.276-.054c-.022-.018-.224-.044-.446-.066-.217-.016-.428-.06-.466-.088-.076-.06-.054-.19.06-.42.048-.093.075-.17.054-.17-.022 0 0-.037.038-.092a.316.298 0 0 0 .07-.12c-.032-.142.37-.88.548-1.022.18-.136.537-.235.835-.24h.19l-.14-.153c-.29-.306-.375-.568-.36-1.104.017-.628.05-.661.755-.786.72-.132.894-.082 1.247.35.087.103.12.12.14.06.06-.159.283-.334.413-.334.076 0 .304.099.504.218.206.121.396.219.43.219.107.006.487.339.633.552.14.218.21.536.222 1.017 0 .19.033.282.125.365.157.147.217.36.233.808.01.323 0 .382-.114.497-.135.137-.553.236-.743.176-.12-.038-.146.097-.195 1.01-.05.895.076 1.945.288 2.43l.157.368.206-.225.206-.225.087.132c.076.11.108.126.195.076.12-.06.293-.262.298-.333 0-.027-.027-.027-.054-.011-.033.017-.054.006-.054-.027 0-.032-.033-.055-.065-.05-.125.018-.423-.07-.423-.125 0-.028-.022-.037-.054-.017-.066.045-.49-.343-.49-.447 0-.066.018-.071.077-.022.044.038.136.05.212.033.087-.022.195.005.314.076.38.235.418.126.082-.223-.27-.29-.347-.48-.44-1.126-.027-.19.05-.235.13-.071.033.054.17.158.304.224.353.175.727.655.922 1.196.157.438.25.53.418.438.05-.029.103-.143.124-.252.022-.115.136-.497.25-.852.266-.787.325-1.3.184-1.459-.07-.082-.157-.109-.33-.098-.402.01-.64-.24-.722-.781-.054-.34-.005-.371.537-.394.44-.021.602.05.84.367.12.163.142.235.12.425-.11.951-.168 1.29-.315 1.82-.092.327-.18.7-.195.813-.027.192-.022.207.07.17.06-.028.207-.055.337-.071l.233-.022-.173.245c-.217.312-.19.4.12.39.178-.007.232-.03.243-.11.005-.06.027-.263.043-.46.033-.327.13-.764.418-1.857.06-.224.14-.546.18-.71.042-.164.096-.36.123-.437.093-.23.244-1.092.342-1.928.05-.426.038-1.224-.022-1.278-.06-.06-.146.279-.103.393.06.136.055.18-.108.945-.103.48-.157.64-.255.71-.065.049-.19.158-.277.246-.086.082-.2.148-.254.148-.098-.006-.337-.34-.472-.673-.044-.109-.103-.207-.136-.228-.12-.078-.282-.793-.26-1.153.022-.382.005-.405-.255-.257-.32.18-1.49.06-1.535-.158-.005-.045.066-.187.17-.323.275-.366.427-.857.313-1-.05-.054-.038-.081.033-.114.092-.033.092-.038.005-.088-.157-.088-.108-.147.11-.141.194.01.2.004.21-.198.01-.223.184-.55.315-.605.054-.017.08-.11.08-.263 0-.18-.015-.213-.064-.164-.12.12-.45.076-.63-.088a1.98 1.865 0 0 0-.363-.256c-.2-.103-.27-.19-.683-.842a5.034 4.74 0 0 0-.396-.518c-.108-.114-.19-.235-.18-.273.018-.038.169-.055.45-.044.235.006.625-.022.864-.066.542-.092.764-.103.992-.038m-3.427.41c.07.055.18.07.325.05.2-.028.233-.017.266.087.027.087-.01.18-.152.349-.173.213-.396.35-1.014.634-.466.213-.586.322-.634.552-.027.136-.082.196-.255.273-.125.054-.26.141-.304.202-.157.196-.526.754-.613.917-.076.148-.336.443-.547.612a.328.309 0 0 1-.196.071c-.097 0-.108-.038-.12-.344a35.512 33.441 0 0 0-.021-.541c-.005-.223.098-.426.228-.426.103 0 .098-.087-.005-.132-.12-.043-.098-.305.043-.518l.206-.327a.302.284 0 0 1 .255-.16c.2-.021.195-.004.098-.207a1.672 1.574 0 0 1-.114-.306l-.038-.14.238.08c.125.044.255.104.288.132.087.087.135.055.135-.094 0-.136.028-.169.472-.535.255-.202.575-.295.7-.191.054.044.097.044.146.005.033-.033.152-.065.255-.081.103-.01.206-.028.222-.028.017-.005.076.022.136.066\"},\"child\":[]}]})(props);\n};\nexport function SiChartdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L1.605 6v12L12 24l10.395-6V6zm0 1.41l9.172 5.295v10.59L12 22.59l-9.172-5.295V6.705zM5.902 8.334c-1.306 0-1.983.956-2.574 2.41v6.262L12 22.014l8.672-5.008v-5.971c-.447-.264-.894-.412-1.336-.412-4.275 0-3.97 4.885-6.717 5.8-2.748.917-3.511-8.089-6.717-8.089zm12.364.457c-2.9 0-2.137 4.732-5.342 4.732-1.63 0-2.52-1.317-3.477-1.981.148.326.3.655.442.98.467 1.068.922 2.09 1.379 2.734.228.322.455.541.644.644a.595.595 0 0 0 .549.05c.558-.187.968-.571 1.36-1.112.39-.541.74-1.228 1.154-1.916.413-.688.894-1.385 1.59-1.918.695-.534 1.607-.881 2.77-.881.465 0 .908.136 1.337.352v-.121c-.633-.849-1.348-1.563-2.406-1.563zm-6.68.152c-.868 0-1.491.82-2.076 2.06.094.055.192.106.277.167 1.06.761 1.798 1.853 3.137 1.853.678 0 1.067-.218 1.418-.585-.722-1.546-1.432-3.492-2.756-3.495Z\"},\"child\":[]}]})(props);\n};\nexport function SiChartmogul (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.621 19.89V8.75L2.867 19.89H0V4.11h2.758v11.112l7.754-11.113h2.867v11.14L21.16 4.11H24v15.782h-2.73V8.75l-7.755 11.14Z\"},\"child\":[]}]})(props);\n};\nexport function SiChase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 15.415c0 .468.38.85.848.85h5.937V.575L0 7.72v7.695m15.416 8.582c.467 0 .846-.38.846-.849v-5.937H.573l7.146 6.785h7.697M24 8.587a.844.844 0 0 0-.847-.846h-5.938V23.43l6.782-7.148L24 8.586M8.585.003a.847.847 0 0 0-.847.847v5.94h15.688L16.282.003H8.585Z\"},\"child\":[]}]})(props);\n};\nexport function SiChatbot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 0c-2.25 0-4.5.06-6.6.21a5.57 5.57 0 00-5.19 5.1c-.24 3.21-.27 6.39-.06 9.6a5.644 5.644 0 005.7 5.19h3.15v-3.9h-3.15c-.93.03-1.74-.63-1.83-1.56-.18-3-.15-6 .06-9 .06-.84.72-1.47 1.56-1.53 2.04-.15 4.2-.21 6.36-.21s4.32.09 6.36.18c.81.06 1.5.69 1.56 1.53.24 3 .24 6 .06 9-.12.93-.9 1.62-1.83 1.59h-3.15l-6 3.9V24l6-3.9h3.15c2.97.03 5.46-2.25 5.7-5.19.21-3.18.18-6.39-.03-9.57a5.57 5.57 0 00-5.19-5.1c-2.13-.18-4.38-.24-6.63-.24zm-5.04 8.76c-.36 0-.66.3-.66.66v2.34c0 .33.18.63.48.78 1.62.78 3.42 1.2 5.22 1.26 1.8-.06 3.6-.48 5.22-1.26.3-.15.48-.45.48-.78V9.42c0-.09-.03-.15-.09-.21a.648.648 0 00-.87-.36c-1.5.66-3.12 1.02-4.77 1.05-1.65-.03-3.27-.42-4.77-1.08a.566.566 0 00-.24-.06z\"},\"child\":[]}]})(props);\n};\nexport function SiChatwoot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12c0 6.629 5.371 12 12 12s12-5.371 12-12S18.629 0 12 0 0 5.371 0 12m17.008 5.29H11.44a5.57 5.57 0 0 1-5.562-5.567A5.57 5.57 0 0 1 11.44 6.16a5.57 5.57 0 0 1 5.567 5.563Z\"},\"child\":[]}]})(props);\n};\nexport function SiCheckio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.846 8.886L24 2.932v13.82L9.621 21.068 0 14.09l3.35-9.956 7.496 4.751v.001zm-4.582 2.067l3.923-1.768-6.065-3.85 2.142 5.618zm-5.393 2.44l4.842-2.187-2.179-5.717-2.662 7.904H.871zm22.526 2.54V4.256l-5.96 7.37 5.96 4.307zm-12.865 4.233l12.497-3.758-5.973-4.316-6.524 8.074zM.94 14.029l8.092 5.867-3.106-8.124L.94 14.029zm21.722-9.826c-5.085 2.296-10.163 4.6-15.25 6.895l9.445.284 5.805-7.178v-.001zM9.775 20.143l6.608-8.173-9.844-.29 3.236 8.462v.001z\"},\"child\":[]}]})(props);\n};\nexport function SiCheckmarx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.544.12A6.553 6.553 0 0 0 0 6.664v10.674a6.551 6.551 0 0 0 6.544 6.542h10.912A6.551 6.551 0 0 0 24 17.338v-.831a2.193 2.193 0 0 0-4.388 0v.83c0 1.19-.967 2.157-2.156 2.157H6.544a2.16 2.16 0 0 1-2.158-2.156V6.748c0-1.19.969-2.16 2.158-2.16 3.843.004 7.814-.009 11.612.001.556.138.892.445 1.058.848.193.47.343 1.118-.404 1.748l-6.26 4.596-1.892-2.441a2.191 2.191 0 0 0-3.075-.391 2.191 2.191 0 0 0-.391 3.076l3.198 4.133a2.197 2.197 0 0 0 3.035.424l7.252-5.301a56.68 56.68 0 0 0 1.22-.977c2.106-1.926 2.517-4.393 1.627-6.553C22.603 1.51 20.268.12 17.435.12Z\"},\"child\":[]}]})(props);\n};\nexport function SiCheckmk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.187 8.738v3.985l4.883-3.157v8.217l1.925 1.111 1.926-1.111V9.57l4.882 3.158V8.742l-6.808-4.269-6.808 4.265zM12 0l10.375 5.999V18L12 24 1.625 18.006V6.003L12 0z\"},\"child\":[]}]})(props);\n};\nexport function SiChedraui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5234 4.7246c-.7714 0-1.3984.627-1.3984 1.3984 0 .7731.6253 1.3985 1.3984 1.3985.7715 0 1.3985-.627 1.3985-1.3985 0-.7714-.627-1.3984-1.3985-1.3984zm4.1504 1.5742c-.7324 0-1.3261.5938-1.3261 1.3262.0016.7308.5953 1.3242 1.3261 1.3242.7324 0 1.3242-.5934 1.3242-1.3242 0-.7324-.5934-1.3262-1.3242-1.3262zM7.5313 7.9023a.1707.1707 0 0 0-.172.17v5.4453c0 .0944.0774.1719.172.1719h2.498c.0944 0 .17-.0774.17-.172v-2.3632c0-.153.1855-.2282.2929-.1191l.4043.3476c.109.109.2946.0316.293-.123l-.0196-1.6739a.1741.1741 0 0 0-.0488-.1191L9.576 7.9531a.178.178 0 0 0-.123-.0508Zm4.1914 1.4082a.169.169 0 0 0-.17.17v4.125a.1708.1708 0 0 1-.0507.121l-1.1114 1.1114c-.1074.1074-.0322.293.1192.293l3.7597.0078a.1707.1707 0 0 0 .172-.17v-2.828c0-.153.1855-.2287.2929-.1212l1.1562 1.1563a.1687.1687 0 0 0 .1211.0488l1.1778-.0059c.1513-.0015.2285-.1839.121-.293l-3.543-3.5663a.1804.1804 0 0 0-.123-.0489Zm-8.5918.125c-.6384.0324-1.1465.5607-1.1465 1.207 0 .6675.5417 1.2071 1.209 1.2071.6673 0 1.207-.5397 1.207-1.207 0-.6673-.5397-1.207-1.207-1.207-.021 0-.042-.0012-.0625 0zm15.8086 2.0801c-.5887.03-1.0567.5193-1.0567 1.1153 0 .6152.4964 1.1132 1.1133 1.1132.6152 0 1.1152-.498 1.1152-1.1132 0-.6153-.5-1.1153-1.1152-1.1153zm-16.5957.6758a.1725.1725 0 0 0-.172.1719v3.9902c0 .0944.0775.1719.172.1719h1.873c.0944 0 .17-.0775.17-.1719v-1.5312c0-.153.1855-.2306.2929-.123l.6133.6132a.171.171 0 0 0 .2441-.002l.8125-.8418c.0651-.0668.0667-.1732 0-.2383l-1.9629-1.9882a.168.168 0 0 0-.121-.0508zm14.7968 1.1524a.4455.4455 0 0 0-.4453.4453c0 .2457.1996.4453.4453.4453a.4318.4318 0 0 0 .1133-.0157l.7773.7774a.168.168 0 0 1 .043.0683l.9668 2.9883a.1726.1726 0 0 0 .1621.1192h.3867c-.187.0976-.3164.2912-.3164.5175 0 .3238.262.586.586.586.3239 0 .586-.262.586-.586 0-.2262-.1293-.42-.3165-.5175h2.3594c-.1872.0976-.3164.2912-.3164.5175 0 .3238.262.586.586.586.3237 0 .5859-.262.5859-.586a.5817.5817 0 0 0-.3145-.5175h.371c.0946 0 .17-.0775.17-.1719l.0156-.1172a.2555.2555 0 0 0-.2558-.2851h-3.7578c-.0716 0-.1318-.0424-.1367-.0977-.0341-.1387-.0848-.2752-.127-.4121a.124.124 0 0 1 .1074-.1621h3.9746a.3494.3494 0 0 0 .3457-.3067c.0881-.7473.176-1.4948.2637-2.2422-.0098-.0912-.0846-.162-.1758-.162l-5.6817-.006a.116.116 0 0 1-.084-.0351l-.4784-.4492a.444.444 0 0 0-.4395-.3809Zm-9.6093.8574a.1705.1705 0 0 0-.1211.0508l-4.6407 4.6738c-.1074.109-.03.293.123.293h1.8067a.175.175 0 0 0 .123-.0508l4.672-4.6739c.109-.1074.0338-.293-.1192-.293Zm2.7753 1.3867a.1688.1688 0 0 0-.121.0488l-3.2637 3.289c-.1074.1092-.032.293.121.293h1.8028a.1705.1705 0 0 0 .1211-.0507l3.2422-3.2422a.174.174 0 0 1 .2441 0l3.2422 3.2422a.1688.1688 0 0 0 .1192.0508h1.789c.153 0 .2306-.184.123-.293l-3.2656-3.289a.1731.1731 0 0 0-.123-.049zM2.1113 16.912a.1707.1707 0 0 0-.121.0508l-.0938.0937-1.8457 1.8692c-.1074.109-.032.293.121.293H1.373a.1678.1678 0 0 0 .1211-.0508l1.963-1.963c.1105-.109.0338-.2929-.1192-.2929z\"},\"child\":[]}]})(props);\n};\nexport function SiCheerio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.1396 15.6223c.5937.4442 1.2036.9005 1.8095 1.3559-.4142.4767-.9279.8995-1.5834 1.3068-.4922.3049-1.0297.5478-1.6393.7412-.4883.1511-.9723.2552-1.4432.31-.4298.0538-.8798.0393-1.2209.0207-1.0909-.065-2.1521-.3797-3.1536-.9348-.8151-.4534-1.5369-1.0821-2.1457-1.8689-.5418-.6991-.9378-1.4468-1.1771-2.2231-.1847-.596-.2658-1.2074-.3207-1.7266-.0781-.7424-.0024-1.5307.2386-2.4816.2009-.7987.5396-1.5323 1.0083-2.1829.7754-1.0903 1.7401-1.9113 2.8675-2.4402.7683-.3608 1.5487-.5869 2.3216-.6722a6.046 6.046 0 0 1 .6885-.0377c.3624 0 .7611.0282 1.2272.0855a6.3308 6.3308 0 0 1 1.8739.5194c.9649.4381 1.8045 1.0561 2.4988 1.839-1.0573.8162-2.1255 1.62-3.1697 2.4034-.5109-.4584-1.1614-.7463-1.8772-.8238-.8941-.0967-1.7878.1553-2.4512.691-.7267.5849-1.1696 1.4197-1.247 2.3508-.0771.927.2192 1.8179.8339 2.5087.6372.7168 1.4774 1.1031 2.434 1.1172.8764.0045 1.6485-.2809 2.2975-.8534.4443.3332.8874.6646 1.3297.9956zM24 1.8v20.4c0 .9941-.8059 1.8-1.8 1.8H1.8C.8059 24 0 23.1941 0 22.2V1.8C0 .8059.8059 0 1.8 0h20.4c.9941 0 1.8.8059 1.8 1.8zm-4.5418 14.9626-.4192-.3159a835.8403 835.8403 0 0 0-2.2524-1.6891c-.5658-.4233-1.133-.8477-1.7023-1.2753l-.3982-.2991-.3303.3728c-.5032.568-1.0979.8442-1.8134.8442l-.0185-.0001c-.6504-.0096-1.2016-.2635-1.6385-.755-.4164-.4679-.617-1.0721-.5646-1.7014.0526-.6335.3538-1.2013.8485-1.5995.4423-.3573 1.0467-.5242 1.6572-.4582.6104.066 1.1474.3529 1.5122.8078l.3271.4078.4182-.3137c1.2997-.9748 2.6437-1.9828 3.9674-3.0117l.184-.1431.0221-.2321c.0323-.3382-.1604-.5447-.2428-.6329-.007-.0076-.0144-.015-.0201-.0219l-.009-.0111c-.8302-1.0012-1.8558-1.7835-3.0489-2.3253a7.4076 7.4076 0 0 0-2.191-.6081c-.5812-.0714-1.3528-.1413-2.165-.0487-.8893.0981-1.7844.3565-2.6601.7679C7.623 5.13 6.5165 6.0693 5.6338 7.3104c-.5468.7591-.943 1.6163-1.1773 2.547-.2731 1.0775-.3575 1.986-.2656 2.8594.0605.5715.1509 1.2482.363 1.9323.2775.9002.7334 1.7634 1.355 2.5654.6985.9027 1.5311 1.6266 2.4753 2.1519 1.1445.6343 2.3603.9939 3.6166 1.0689a11.33 11.33 0 0 0 .6128.0185c.2542 0 .5268-.0114.7987-.0454.5321-.0619 1.0816-.1798 1.6369-.3517.6994-.2219 1.3161-.5011 1.8857-.854.9521-.5914 1.6781-1.2496 2.2194-2.0121l.3039-.428z\"},\"child\":[]}]})(props);\n};\nexport function SiChef (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.03 0C6.94 0 2.57 3.17.82 7.65l1.91.77a10 10 0 0 1 9.3-6.4c2.24 0 4.32.77 5.96 1.97l1.2-1.64A11.96 11.96 0 0 0 12.03 0zm0 2.3a9.76 9.76 0 0 0-9.08 6.23l1.91.7a7.62 7.62 0 0 1 7.17-4.91zm3.55.7l-.76 1.92a7.47 7.47 0 0 1 4.75 5.63h2.08a9.7 9.7 0 0 0-6.07-7.54zm-3.55 1.6a7.44 7.44 0 1 0 7.32 8.9h-2.08a5.5 5.5 0 0 1-5.24 3.94 5.39 5.39 0 0 1-5.42-5.41 5.39 5.39 0 0 1 5.42-5.41 5.4 5.4 0 0 1 5.2 3.93h2.07a7.35 7.35 0 0 0-7.27-5.96zm10.22 1.09L20.5 6.78a9.5 9.5 0 0 1 1.42 3.77H24a11.56 11.56 0 0 0-1.75-4.86zM11.97 6.83a5.22 5.22 0 0 0-4.7 7.27l1.97-.87a2.97 2.97 0 0 1-.27-1.2c0-1.64 1.36-3.01 3-3.01zm1.92.39l-.77 2.02c.66.27 1.15.7 1.53 1.31h2.3a5.04 5.04 0 0 0-3.06-3.33zM0 12.02c0 1.65.33 3.29 1.04 4.87l1.8-.82a10.49 10.49 0 0 1-.82-4.04zm2.3 0c0 4.1 2.51 7.6 6.12 9.03l.76-1.92a7.63 7.63 0 0 1-4.86-7.1zm12.3 1.48c-.33.6-.82 1.1-1.48 1.31l.77 2.03a5.04 5.04 0 0 0 3.06-3.34zm4.97 0a7.73 7.73 0 0 1-7.54 6.24v2.02a9.71 9.71 0 0 0 9.62-8.26zm2.35 0a10.1 10.1 0 0 1-9.9 8.53c-2.73 0-5.24-1.15-7.04-2.95L3.55 20.5c2.19 2.19 5.2 3.5 8.53 3.5A12 12 0 0 0 24 13.5zm-12.02.66l-1.53 1.53a5.21 5.21 0 0 0 3.66 1.53v-2.19a3.02 3.02 0 0 1-2.13-.87z\"},\"child\":[]}]})(props);\n};\nexport function SiChemex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.665.124c-.741 0-1.36.593-1.36 1.334 0 .742.619 1.335 1.36 1.335A1.33 1.33 0 0 0 24 1.458 1.33 1.33 0 0 0 22.665.124zM1.112.148s5.314 6.748 5.982 7.91c.89 1.557.84 2.076-.124 3.954C6.352 13.2 0 23.876 0 23.876h2.694S8.7 13.668 9.516 12.284c.89-1.508.89-3.164.148-4.474C9.071 6.772 3.831.148 3.831.148zm16.956 0s-5.24 6.624-5.833 7.662c-.717 1.286-.766 2.917.148 4.474.816 1.384 6.822 11.592 6.822 11.592h2.67c0-.024-6.328-10.677-6.946-11.888-.964-1.854-1.013-2.373-.123-3.93.667-1.162 5.98-7.91 5.98-7.91zm4.597.223c.593 0 1.088.494 1.088 1.087 0 .594-.495 1.088-1.088 1.088a1.097 1.097 0 0 1-1.087-1.088A1.08 1.08 0 0 1 22.665.371zm-.593.296V2.15h.272v-.519h.37l.273.52h.321l-.297-.544a.453.453 0 0 0 .297-.446c0-.296-.198-.494-.52-.494zm.321.272h.445c.149 0 .223.05.223.222 0 .173-.124.223-.223.223h-.445z\"},\"child\":[]}]})(props);\n};\nexport function SiChessdotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a3.85 3.85 0 0 0-3.875 3.846A3.84 3.84 0 0 0 9.73 6.969l-2.79 1.85c0 .622.144 1.114.434 1.649H9.83c-.014.245-.014.549-.014.925 0 .025.003.048.006.071-.064 1.353-.507 3.472-3.62 5.842-.816.625-1.423 1.495-1.806 2.533a.33.33 0 0 0-.045.084 8.124 8.124 0 0 0-.39 2.516c0 .1.216 1.561 8.038 1.561s8.038-1.46 8.038-1.561c0-2.227-.824-4.048-2.24-5.133-4.034-3.08-3.586-5.74-3.644-6.838h2.458c.29-.535.434-1.027.434-1.649l-2.79-1.836a3.86 3.86 0 0 0 1.604-3.123A3.873 3.873 0 0 0 13.445.275c-.004-.002-.01.004-.015.004A3.76 3.76 0 0 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiChevrolet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.905 9.784H15.92V8.246a.157.157 0 00-.157-.158H8.238a.157.157 0 00-.157.158v1.538H2.358c-.087 0-.193.07-.237.158L.02 14.058c-.045.088-.011.157.077.157H8.08v1.54c0 .086.07.157.157.157h7.525c.087 0 .157-.07.157-.157v-1.54h5.723c.087 0 .193-.07.238-.157l2.1-4.116c.045-.087.011-.158-.076-.158m-2.494.996l-1.244 2.437h-5.232v1.708H9.07v-1.708H2.595L3.84 10.78h5.232V9.073h5.864v1.707z\"},\"child\":[]}]})(props);\n};\nexport function SiChianetwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.4619 4.7065c-.0614 0-.3272.0205-.5726.041-.4294.0408-1.0428.1021-1.145.143-.0205 0-.1432.0205-.2454.041-.818.1226-1.8404.4498-2.413.777-.1021.0613-.2248.1227-.2453.1227-.1227.0409-.9815.6543-1.3087.9201-2.3515 1.9221-3.5988 4.928-3.0672 7.4227.0614.3067.0818.3067.2863.1431.3476-.2454.6543-.4499 1.0633-.6952.2454-.1432 1.3087-.6544 1.3496-.6544 0 0 .0818-.0409.184-.0818.9406-.4294 3.6602-1.37 5.0302-1.7176.041-.0205.2863-.0818.5112-.1431 1.2883-.3477 1.5132-.409 1.5132-.3477 0 .0205-.0818.041-.1636.0818-.4499.1636-1.6563.6544-1.7176.6953-.0205.0204-.041.0204-.0614.0204s-.1227.0409-.2454.1022-.2044.1023-.2249.1023-.1227.0409-.2454.1022c-.1227.0614-.2454.1023-.2454.1023l-.2862.1227-.2863.1226c-.1431 0-3.1694 1.595-4.1305 2.1675-.225.1227-.409.2454-.409.2454s-.3067.184-1.2678.7975c-1.0633.6748-2.8422 1.9221-3.926 2.781-.1227.1022-.2863.2249-.3476.2658-.9406.736-1.0633.8792-.5317.593 1.2065-.634 2.556-1.2678 3.5171-1.6563.593-.2454 1.2269-.409 1.6359-.4703l.184-.0205.4499.4499c1.145 1.145 2.372 1.738 4.1918 1.9834.4294.0614 1.8199.041 2.147-.0204.1023-.0205.3068-.0614.4704-.0818.1636-.0205.3476-.0614.3885-.0818.0409-.0205.184-.041.3067-.0818 2.0857-.5521 3.8851-1.8403 5.4801-3.967.0409-.0408.184-.2249.3067-.4089.1432-.184.2863-.368.3272-.4294.0409-.0409.1227-.184.2045-.2863.8179-1.1655 2.0039-3.0876 2.74-4.4985.0818-.1636.225-.409.2863-.5521.0613-.1432.3271-.6544.5725-1.1247.2454-.4703.4499-.8997.4499-.9201.0613-.1227.0409-.1636-.2658-.2863-.041-.0205-.2659-.1023-.5112-.1636-.2454-.0818-.5317-.1636-.634-.2045-.4089-.1431-1.1041-.3271-1.9425-.552-.7361-.1841-.9202-.2455-1.2064-.3068-.1432-.0205-.2863-.0613-.3272-.0818s-.1636-.0409-.2658-.0613c-.2863-.0614-.4294-.0818-.6953-.1432-1.0224-.2249-1.9016-.3067-3.3943-.3067-.6135-.0204-1.186 0-1.2678 0\"},\"child\":[]}]})(props);\n};\nexport function SiChinaeasternairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.572 2.383c-1.846 0-2.245.238-2.962 1.205-.38.516-3.568 4.915-5.009 6.898-.18.236-.446.486-1.03.486H0v.004c3.05 8.61 6.324 10.64 9.602 10.64h5.178c.07 0 .146-.08-.041-.124-3.805-.953-7.57-3.984-7.589-6.962.066 2.464 5.255 3.315 10.876 4.016.098.011.093-.065.063-.12l-.17-.293c-.02-.039-.043-.068-.124-.088-3.094-.787-6.242-1.938-6.242-3.01 0-2.032 5.272-4.042 11.27-4.96.195-.04.29-.076.42-.18.17-.136.536-.433.695-.554.096-.085.061-.11.025-.11-.16 0-.326.004-.485.01-7.898.219-15.544 2.008-16.253 4.55-.002.014-.01.027-.014.04.937-4.652 7.198-9.162 15.008-11.28.18-.052.239-.168.014-.168Z\"},\"child\":[]}]})(props);\n};\nexport function SiChinasouthernairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.4269 9.8628v.6196c.3071-.003.5555.1004.5555.1004-.7588.2595-1.1804 1.0664-1.1804 1.8426v2.6228c-.0417.0354-.0665.0665-.0941.0985-.1116-.344-.4517-.7569-.8049-.9524v-2.029c0-.7272.5308-1.5219 1.2808-1.6708v-.6351c-.2426-.0558-.426-.275-.426-.5342a.549.549 0 0 1 .5493-.5516.5506.5506 0 0 1 .5526.5516c0 .2591-.1868.4847-.4328.5376m-3.0299-.0035v.6355c.7491.149 1.2828.9432 1.2828 1.6704v2.0295c-.3556.195-.6943.6079-.8049.9519-.03-.0316-.0548-.0631-.0946-.0985v-2.6228c0-.7913-.4216-1.583-1.1794-1.8422 0 0 .247-.1038.5516-.1004v-.6234a.55.55 0 0 1-.425-.5342c0-.3057.243-.5511.5497-.5511a.5506.5506 0 0 1 .5516.5511c0 .2596-.1848.4789-.4318.5342m1.5162-.4217l-.003.5948c.293.0393.555.244.6448.4861-.3478.2261-.6297.5691-.7656.9946-.1334-.4255-.4157-.7685-.7636-.9946.1096-.242.3532-.4468.6433-.486v-.5968a.5497.5497 0 0 1-.4264-.5357.5496.5496 0 0 1 .5497-.5516c.3046 0 .553.246.553.5516 0 .262-.1848.4828-.4322.5376m-.1209 7.5837c1.7156 0 2.1013-1.4385 2.1542-1.8053v-.4846c-.5313.132-1.0053.4133-1.327.8354-.114-.493-.426-.914-.8272-1.1867-.4036.2727-.716.6938-.832 1.1867-.3188-.422-.7952-.7035-1.3245-.8354v.4846c.0514.3668.439 1.8053 2.1565 1.8053m-4.2333-5.006c-.0068-.7307.4949-1.326 1.5195-1.326.6783 0 1.488.5682 1.488 2.0266v2.1628c-.294-.193-.7034-.3702-.9266-.3736v-2.0163c0-.7724-.5546-.998-.815-.998.1474.1349.2362.3018.2362.5245 0 .41-.3416.7496-.753.7496-.411 0-.7306-.3028-.749-.7496m8.4666 0c.0043-.7307-.4978-1.326-1.52-1.326-.6793 0-1.4905.5682-1.4905 2.0266v2.1628c.295-.193.704-.3702.9252-.3736v-2.0163c0-.7724.5575-.998.8151-.998-.146.1349-.2343.3018-.2343.5245 0 .41.3406.7496.7525.7496.4128 0 .7326-.3028.752-.7496M15.9702 10.03c-.263-.1286-.4473-.3973-.4473-.705 0-.4332.3517-.7864.784-.7864.4347 0 .7855.3532.7855.7865a.7812.7812 0 0 1-.4469.7068v.2203c.2431.0252.5357.1266.7147.2183a4.0304 4.0304 0 0 1 .292-.0126c.9898 0 1.685.654 1.685 1.5574 0 .5565-.4987 1.065-1.0581 1.065-.5628 0-1.0722-.5517-.9708-1.1067 0 0-.0568.1916-.0568.4255V15.23c-.0247.323-.458 2.1056-2.4593 2.1056-2.0023 0-2.4374-1.7825-2.4617-2.1056v-2.831c0-.2338-.0572-.4254-.0572-.4254.1077.5336-.4086 1.1066-.9675 1.1066-.5637 0-1.0605-.5084-1.0605-1.065 0-.9033.6933-1.5573 1.6874-1.5573.1043 0 .2086.0068.2867.0126.182-.0917.489-.2003.7166-.2183v-.2232c-.2605-.1276-.4454-.3963-.4454-.704 0-.4332.3537-.7864.7865-.7864.4347 0 .7864.3532.7864.7865a.784.784 0 0 1-.4497.7093v.295c.066.0213.1353.0465.2003.0766.1218-.262.3668-.4667.6438-.5584V9.609c-.2663-.1271-.4487-.3954-.4487-.7093 0-.4352.3503-.785.783-.785a.7836.7836 0 0 1 .7855.785c0 .3139-.1815.5822-.4478.7093v.2387c.275.0902.5167.2964.638.5584.062-.03.1363-.0553.2023-.0767zM24 3.434h-6.8636L0 20.566h17.1364Z\"},\"child\":[]}]})(props);\n};\nexport function SiChocolatey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 1.249l1.439 3.18L0 6.926l1.439 2.5L0 11.923l1.439 2.424L0 16.845l1.439 2.5L0 22.75l2.8-.91c6.3.01 12.696.006 18.096 0l3.104.91-2.044-3.635 1.136-1.892-2.196-2.272-.004-.017V2.005c-6.551-.001-12.243 0-18.091 0zm19.688 1.968v7.03l-.23-.898-1.438-4.39-3.56.605-1.89-2.343zm-11.695.004h4.563L9.539 4.428zm2.86 3.68a3.903 3.903 0 0 1 1.64.254c1.968.757 1.286 2.8.15 4.012-.378.378-1.21.227-.605-.908.228-.454.454-1.363-.227-1.59-1.515-.53-3.255.682-3.634 2.271-.378 1.363.606 2.801 2.347 2.423 1.439-.303 2.802-1.288 3.332-1.742.53-.455.907.38.301 1.288-.68.908-1.74 1.968-2.65 2.574-3.558 2.423-6.662-.758-5.375-4.392.677-1.845 2.454-4.041 4.72-4.19zm6.527 2.031a.66.66 0 0 1 .454.182c.324.326.204.972-.268 1.445-.473.474-1.121.593-1.446.268-.325-.326-.205-.972.267-1.445.292-.292.666-.461.993-.45zm-.42 3.233a.66.66 0 0 1 .454.182c.325.325.206.973-.268 1.446-.473.473-1.12.592-1.445.268-.324-.326-.205-.972.268-1.445.291-.292.664-.462.99-.451Z\"},\"child\":[]}]})(props);\n};\nexport function SiChromatic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm-.006 3.43a3.372 3.372 0 0 1 3.37 3.369v2.199L9.628 5.689a4.261 4.261 0 0 0-.688-.32 3.351 3.351 0 0 1 3.053-1.94zm-4.498 2.6c.588 0 1.17.156 1.684.452l5.734 3.311-2.91 1.678-3.6-2.076a.46.46 0 0 0-.459 0L5.35 10.893c-.22.126-.428.27-.621.433a3.349 3.349 0 0 1-.155-3.61A3.385 3.385 0 0 1 7.496 6.03zm8.723.015a3.383 3.383 0 0 1 3.205 1.672 3.37 3.37 0 0 1-1.235 4.6l-5.736 3.308v-3.357l3.602-2.077a.459.459 0 0 0 .228-.398V6.799c0-.253-.021-.506-.064-.754zm-8.504 4.543v6.617c0 .254.021.505.066.754a3.4 3.4 0 0 1-.285.012 3.383 3.383 0 0 1-2.92-1.684 3.343 3.343 0 0 1-.338-2.555 3.342 3.342 0 0 1 1.57-2.044l1.907-1.1zm.908 0 2.912 1.68v4.152a.46.46 0 0 0 .23.396l2.594 1.498h.002c.22.127.45.235.688.32a3.35 3.35 0 0 1-3.055 1.938 3.373 3.373 0 0 1-3.371-3.367v-6.617zm10.647 2.088a3.347 3.347 0 0 1 .154 3.611 3.372 3.372 0 0 1-4.604 1.233l-1.908-1.1 5.738-3.309a4.31 4.31 0 0 0 .62-.435z\"},\"child\":[]}]})(props);\n};\nexport function SiChromecast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 18.5455v3.2727h3.2727c0-1.811-1.4618-3.2727-3.2727-3.2727zm0-4.3637v2.1818c3.011 0 5.4545 2.4437 5.4545 5.4546h2.1819c0-4.2218-3.4146-7.6364-7.6364-7.6364zm0-4.3636V12c5.4218 0 9.8182 4.3964 9.8182 9.8182H12c0-6.6327-5.3782-12-12-12zm21.8182-7.6364H2.1818C.9818 2.1818 0 3.1636 0 4.3636v3.2728h2.1818V4.3636h19.6364v15.2728h-7.6364v2.1818h7.6364c1.2 0 2.1818-.9818 2.1818-2.1818V4.3636c0-1.2-.9818-2.1818-2.1818-2.1818Z\"},\"child\":[]}]})(props);\n};\nexport function SiChromewebstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 1.637v19.09c0 .9.736 1.636 1.636 1.636h.131a10.4 10.4 0 0 1-.13-1.636 10.3 10.3 0 0 1 1.667-5.64l4.202 7.276h1.128A3.77 3.77 0 0 1 12 16.958a3.77 3.77 0 0 1 3.366 5.406h1.048a4.7 4.7 0 0 0-1.587-5.406h6.83a10.34 10.34 0 0 1 .577 5.406h.13c.9 0 1.636-.737 1.636-1.637V1.637Zm9.273 2.181h5.454a1.09 1.09 0 1 1 0 2.182H9.273a1.09 1.09 0 1 1 0-2.182M12 10.364a10.36 10.36 0 0 1 9.233 5.652H12a4.71 4.71 0 0 0-4.677 4.149L3.91 14.25A10.34 10.34 0 0 1 12 10.364\"},\"child\":[]}]})(props);\n};\nexport function SiChrysler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9996 12.1455c0-.0003.0004-.0007.0004-.001l-.0007.0003c-.0039-.0173-.0638-.0248-.172-.0258l-1.595-.0216c-2.4391-.0216-6.9786-.0638-7.1847-.0638h-.0501a1.8954 1.8954 0 0 0-.7028.0982l-.0913.0275a3.2546 3.2546 0 0 1-.795.1718c-.2837.0108-1.3633.0088-1.4085.0088s-1.1258 0-1.4085-.0078a3.2434 3.2434 0 0 1-.795-.1718l-.0913-.0275a1.9045 1.9045 0 0 0-.7037-.0982h-.0441c-.2071 0-4.7466.0206-7.1847.0432l-1.6008.0196c-.1089 0-.1727.0088-.1718.0265l.0913.0226c.336.069.6771.1107 1.0198.1247.6527.0128 5.4346.1325 5.5495.1345.2584-.0067.5155.039.7557.1343h1.4968s-.6046.0353-.6134.0726h-.0373c-.1512 0-.6066 0-.8647-.0118 0 0-.0186.0726.2444.0726.0923.0618.1884.1207.2758.1698h1.2868s-.5055.0304-.5153.0677c-.0599 0-.2797-.0059-.4908-.0118l-.2945-.0088s-.0147.0638.2267.0648l.0412.0255c.4833.217.9953.3632 1.5204.4338.1992.0382.4004.0648.6027.0795 0 0 .2444.0216.2022.0206a9.6487 9.6487 0 0 1-1.701-.2218 4.3198 4.3198 0 0 1-1.276-.5398 1.3917 1.3917 0 0 0-.7381-.2316c-.1698-.0118-5.6486-.2277-5.6604-.2277a5.3434 5.3434 0 0 1-1.0434-.1404L0 12.1258c0 .0147.0383.055.0707.0844.1688.1502.8097.4613 1.1837.5526.6488.157 4.6445.6655 5.3542.745l.3926.0442c1.0728.1158 2.4214.264 3.1085.3337a.8442.8442 0 0 0 .3926-.0216A4.1449 4.1449 0 0 1 12 13.606a4.3124 4.3124 0 0 1 1.5027.2581.8354.8354 0 0 0 .3877.0216c.6871-.0687 2.0396-.2189 3.1035-.3367l.3975-.0442c.7096-.0785 4.7044-.5673 5.3532-.7244.3749-.0903 1.0149-.4024 1.1847-.5526.0303-.0274.067-.0653.0697-.0812l.001-.0001c0-.0004-.0004-.0007-.0004-.001zm-12.2646.9952c-.795 0-1.5812-.0108-1.8099-.0677-.5447-.1354-.7989-.3838-.8421-.4593-.0432-.0756-.0324-.0746.0353-.0746h5.7595c.0677 0 .0726.0069.0344.0746-.0383.0677-.2945.3239-.8412.4593-.2287.0569-1.0149.0658-1.8099.0677h-.5261zm12.1884-.9707a5.345 5.345 0 0 1-1.0443.1413c-.0118 0-5.4965.1963-5.6614.21a1.3917 1.3917 0 0 0-.7381.2316 4.3198 4.3198 0 0 1-1.276.5398 9.6487 9.6487 0 0 1-1.701.2218c-.0422 0 .2022-.0206.2022-.0206a5.1874 5.1874 0 0 0 .6017-.0795 5.5189 5.5189 0 0 0 1.5213-.4338l.0471-.0255c.2415 0 .2277-.0648.2277-.0648l-.2945.0088c-.2179.0059-.4417.0118-.4976.0118-.0098-.0373-.5114-.0677-.5114-.0677h1.2858a5.3585 5.3585 0 0 0 .2709-.1678c.263 0 .2454-.0726.2454-.0726-.2827.0069-.8088.0137-.902.0108-.0088-.0373-.5693-.0726-.5693-.0726h1.4458a1.9327 1.9327 0 0 1 .7597-.1335l5.5534-.1139a6.3607 6.3607 0 0 0 1.0198-.1247l.0684-.0169-.0536.018zm-11.9627.532h.0903l-.1747.1247v.0991h-.1325v-.0972l-.1884-.1266h.1541l.1286.0805.1226-.0805zm.8088.1826h.3023v.0412h-.4338v-.2248h.1315v.1836zm.5408 0h.3131v.0412h-.4427v-.2248h.4378v.0412h-.3082v.051h.3023v.0412h-.3023v.0502zm-2.5225-.1826h.1325v.2238h-.1354v-.0913h-.2778v.0913h-.1325v-.2238h.1325v.0903h.2778l.0029-.0903zm.5978.1256l.1698.0982h-.1492s-.1364-.0972-.1678-.1217c.1345.0049.157-.0098.157-.0324s-.106-.0353-.2267-.0285v.1826h-.1404v-.2228h.3053c.1502 0 .1963.0314.1963.0628 0 .0285-.055.054-.1443.0618zm2.7148-.0559c0-.0226-.106-.0353-.2267-.0285v.1845h-.1394v-.2228h.3013c.1502 0 .1963.0344.1963.0628 0 .0285-.055.054-.1443.0599l.1698.0982h-.1492s-.1364-.0972-.1678-.1217c.1335.0049.16-.0098.16-.0324zm-1.5576.0873c0 .0569-.1227.0756-.2513.0756a1.6114 1.6114 0 0 1-.2071-.0137l.0137-.0481a.9392.9392 0 0 0 .1894.0137c.108 0 .1148-.0128.1148-.0265 0-.0137-.0304-.0226-.0785-.0226l-.0982-.0118c-.0952-.0118-.1345-.0157-.1345-.0726s.1237-.0667.2032-.0667a1.814 1.814 0 0 1 .2081.0177l-.0108.0432a1.1384 1.1384 0 0 0-.1639-.0137c-.0844 0-.1031.0049-.1031.0196s.0275.0236.0697.0236l.1139.0079c.0894.0136.1326.0352.1346.0744zM9.875 12.81c0 .052.1266.0736.211.0736s.1639-.0088.1826-.0088l-.0137.0461c-.0236.002-.106.0108-.1963.0108-.1678 0-.318-.0402-.318-.1217s.1502-.1217.318-.1217c.0982 0 .1757.0098.1963.0098l.0137.0471a1.9641 1.9641 0 0 0-.1826-.0098c-.0883 0-.211.0225-.211.0746zm.9972-2.1996l-.5497-.4976h.3651l.2091.1767.2287.1963.0412.0373.0412-.0363.422-.371h.1423c-.1777.1698-.5094.4908-.5094.4908l-.0196.0186v.4319h-.3494v-.4281l-.0215-.0186zm5.3768.4466h-1.4732v-.9452h.3259v.8284h1.1474v.1168zm2.1858-.0059H16.938v-.9374h1.4782v.1168h-1.1631v.2915h1.1435v.1207h-1.1435v.2925h1.1817v.1159zm-12.4142.002h-.3327v-.9432h.3327v.4172h.9148V10.11h.3308v.9432h-.3308V10.64h-.9148v.4131zm2.5441-.003H8.229v-.9452h.8834c.168-.0107.3362.0186.4908.0854a.1964.1964 0 0 1 .1188.1678c-.001.108-.0805.214-.3612.2444l-.0805.0088.0618.0491c.0893.0726.3121.2945.4162.3926l.0097.003h-.3847c-.0569-.0628-.373-.3494-.5104-.4908a2.1988 2.1988 0 0 0 .3926-.0481.1433.1433 0 0 0 .0982-.1315.1152.1152 0 0 0-.052-.0913c-.0805-.0677-.265-.0677-.4809-.0677h-.266v.8235zm4.9056-.2424c0-.0569-.0491-.0834-.0982-.0982a1.2952 1.2952 0 0 0-.2032-.0363c-.1845-.0236-.2787-.0373-.3435-.0481a.9384.9384 0 0 1-.3406-.0982.1872.1872 0 0 1-.0932-.1727c-.001-.0991.0844-.162.2228-.2032.146-.0362.2962-.053.4466-.0501.2342.0027.468.0208.6998.054l-.0226.1139a3.124 3.124 0 0 0-.5408-.0501 1.2286 1.2286 0 0 0-.2945.0236c-.0609.0167-.0982.054-.0982.0982a.1091.1091 0 0 0 .0883.0982c.06.017.1214.0282.1835.0334.1031.0098.2483.0304.3867.0491a.8507.8507 0 0 1 .3308.0982.1906.1906 0 0 1 .0982.1698c.001.0962-.0864.1698-.2444.2208a2.0935 2.0935 0 0 1-.5889.0707l.001-.0069a4.8331 4.8331 0 0 1-.6743-.053l.0294-.1345c.2054.0451.415.0678.6252.0677a.8745.8745 0 0 0 .3514-.0481.112.112 0 0 0 .0787-.0982zm-10.2872-.2209c0-.158.1031-.2709.2778-.3543a1.622 1.622 0 0 1 .6782-.1276c.1911.0011.3819.0146.5712.0402l.0265.1286a5.1308 5.1308 0 0 0-.5212-.0353 1.2396 1.2396 0 0 0-.4397.0766c-.1325.052-.2434.1374-.2434.2689.001.1315.1109.2169.2434.2689.1407.0519.2897.0778.4397.0766a5.1308 5.1308 0 0 0 .5212-.0353l-.0344.1315a4.4382 4.4382 0 0 1-.5712.0402 1.6324 1.6324 0 0 1-.6704-.1247c-.1796-.0834-.2777-.2002-.2777-.3543zm16.4207.4731h-.3318v-.9462h.8834a1.0791 1.0791 0 0 1 .4908.0864.1964.1964 0 0 1 .1188.1669c-.001.1089-.0805.215-.3612.2454l-.0805.0079.0618.0491c.0893.0726.3121.2895.4162.3926v.001h-.3789c-.0569-.0628-.374-.3494-.5104-.4908a2.1177 2.1177 0 0 0 .3926-.0491.1424.1424 0 0 0 .0982-.1305.1152.1152 0 0 0-.052-.0913c-.0815-.0687-.265-.0687-.4809-.0687h-.266v.8273z\"},\"child\":[]}]})(props);\n};\nexport function SiChupachups (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.2056.0007c-1.1953-.0181-2.3567.4498-3.206 1.2882C10.7647.0694 8.8692-.366 7.1692.338c-1.7001.7042-2.7325 2.3525-2.7435 4.088-1.7358.0114-3.3842 1.0438-4.0883 2.7435-.7042 1.6998-.2684 3.5954.9512 4.831C.069 13.2354-.3665 15.131.3373 16.831c.7041 1.6998 2.3525 2.7319 4.0886 2.743.0107 1.736 1.043 3.3846 2.7432 4.0886 1.7.7042 3.5958.2684 4.8309-.9513 1.2349 1.2197 3.1304 1.6551 4.8306.951 1.6997-.704 2.7318-2.3523 2.7428-4.0882 1.736-.011 3.3848-1.0433 4.0888-2.7431.7041-1.7002.2683-3.5955-.9513-4.8314 1.2196-1.2352 1.6554-3.1306.9513-4.8304-.704-1.6997-2.3528-2.7322-4.0888-2.7432-.0107-1.7356-1.0431-3.384-2.7428-4.0884a4.416 4.416 0 0 0-1.625-.3369zM8.8546.623C10.09.6207 11.2772 1.222 12 2.2524 13.0059.8188 14.9096.2157 16.5923.913c1.683.6967 2.6026 2.4695 2.3 4.1948 1.725-.3027 3.498.6174 4.1947 2.2998.6968 1.6826.0938 3.5866-1.3395 4.5924 1.4333 1.0063 2.0363 2.91 1.3395 4.5928-.697 1.6822-2.4694 2.6023-4.1943 2.2998.3022 1.725-.6177 3.4982-2.3001 4.1949-1.683.6967-3.587.0937-4.593-1.3396-1.0057 1.4333-2.9097 2.0363-4.5922 1.3396-1.6826-.6967-2.6023-2.4695-2.3-4.1944-1.7254.3024-3.498-.6178-4.1949-2.3-.697-1.683-.0944-3.587 1.3396-4.5931C.8184 10.9942.2155 9.0905.9125 7.4078c.6968-1.6826 2.4698-2.6027 4.1948-2.3-.3028-1.7253.6175-3.498 2.3-4.1948a3.7897 3.7897 0 0 1 1.4475-.29zm.2617.4925a3.793 3.793 0 0 0-1.5049.29c-1.5743.6522-2.4823 2.246-2.3451 3.8613-1.6153-.1372-3.209.771-3.8614 2.3448C.753 9.1861 1.2377 10.9553 2.4772 12 1.238 13.0453.753 14.8143 1.405 16.3889c.6525 1.5738 2.2464 2.4821 3.8614 2.345-.1372 1.6154.7708 3.209 2.3451 3.8612 1.5743.652 3.3433.1672 4.3883-1.0722 1.045 1.2391 2.814 1.7242 4.3885 1.0722 1.574-.6524 2.4824-2.2462 2.345-3.8612 1.6154.1369 3.209-.7715 3.861-2.3455.6522-1.5742.1677-3.3431-1.0718-4.3884 1.2392-1.0453 1.724-2.8142 1.0719-4.3885-.6521-1.5742-2.246-2.4824-3.8613-2.3452.1374-1.6151-.7708-3.2087-2.345-3.8608-1.5743-.652-3.3433-.1671-4.3883 1.072-.7186-.852-1.7792-1.3476-2.8834-1.362zm.1288.575a3.8514 3.8514 0 0 1 2.7546 1.1035C13.062 1.7483 14.69 1.3756 16.15 1.9804c1.4597.6047 2.3476 2.0192 2.3592 3.5096 1.491.0116 2.9055.8994 3.5102 2.3593.6049 1.46.232 3.0882-.8135 4.1507 1.0456 1.0624 1.4184 2.6906.8135 4.1505-.605 1.46-2.0192 2.3475-3.51 2.3593-.0115 1.4908-.8993 2.9055-2.3594 3.5104-1.46.6045-3.0879.2318-4.15-.8138-1.0624 1.0458-2.6905 1.4183-4.1503.8138-1.46-.6049-2.348-2.0196-2.3596-3.51-1.4906-.0119-2.9053-.8998-3.5103-2.3597-.6045-1.4596-.2319-3.0878.8137-4.1502-1.0458-1.0624-1.4182-2.6906-.8134-4.151.6046-1.4599 2.0191-2.3474 3.5098-2.359.0113-1.4906.8989-2.905 2.3595-3.5099a3.7971 3.7971 0 0 1 1.3957-.29zM6.821 5.9463c-.4963.0028-1.0034.2088-1.3915.4873-.9826.7051-1.552 1.765-1.5075 2.9352.0236.6227.3794 1.2746.9944 1.5076.7724.2935 1.396-.0028 2.0429-.4427l-.1765.43 1.0606.0006 1.0627-2.3575c.1-.2227.5938-.1762.481.0881l-.6535 1.532c-.1047.245-.0169.5406.2162.6934.4885.32 1.0588.004 1.48-.2484.052.1283.1102.2726.2443.3409.3872.1963.9427.0092 1.2606-.2028.023-.0153.1375.128.2673.2028.4295.2472.9943.0295 1.351-.219-.2173.4977-.4285 1.2961-.9464 1.5181-.0888.0381-.2882-.0427-.2645.096.1926.225.5255.2585.826.2048.9148-.1628 1.0627-1.179 1.4556-1.8244.1085.116.2114.2512.381.2806.9732.1672 1.5356-.83 2.2055-1.3632-.1075.3432-.2886.8839.1043 1.2508.3803.3553 1.0707.1246 1.4394-.1523l.1442.2286c.115.182.3993.1592.6054.1123.2356-.0535.6068-.2073.6056-.4052-.287.0463-.4815-.1071-.3609-.3968.3755-.9027 1.1694-2.7194 1.1694-2.7194h-1.044l-.1254.3013c-.068-.1485-.2174-.2837-.369-.3127-1.2422-.2401-1.6844 1.1902-2.3773 1.6315.1205-.437.3887-1.1607-.0443-1.5154-.3217-.263-.7507-.0466-1.0827.0845l.0673-.1892h-.9904l-1.0941 2.479c-.0798.1809-.2666.2795-.4449.3046-.0793.011-.1597-.0274-.2085-.0965-.0595-.0833-.058-.1944-.0198-.2805l1.0612-2.4066h-1.0673l-.9406 2.15c-.006.0144-.1833.5038-.3687.5694-.0925.0327-.213.0081-.2644-.0883-.0405-.076-.0235-.1815.0078-.2526l1.0517-2.3785H11.62l-1.086 2.4626c-.0859.1942-.526.4166-.6536.1204-.0454-.1052-.022-.2245.0202-.3206l.4811-1.099c.1483-.338.5155-.8832.068-1.1466-.463-.2726-.921.068-1.2174.2594l.7523-1.7509H8.9478L7.3899 9.48c-.204.449-.7536.6712-1.2146.751-.3688.064-.7448-.0152-.9382-.3209-.4688-.7416-.0705-1.658.2965-2.3135.2716-.4855.7437-1.1352 1.3715-1.0868.1079.0083.234.0567.2766.1805.143.4128-.3268.6998-.6254.8702.0564.3558.6835.3803.9384.2443.3277-.1743.539-.5163.5653-.87.0217-.2922-.1296-.5774-.385-.7458-.262-.173-.556-.2444-.8538-.2427zm12.4299 2.294c.1901.0033.2381.185.1688.3427l-.702 1.5919c-.0606.1378-.248.2035-.409.1324-.0478-.021-.104-.076-.1043-.1324-.0033-.4853.2456-.923.4573-1.3431.1142-.2276.2587-.5599.5493-.5897a.3343.3343 0 0 1 .0399-.0017zm-3.335.0072c.0899.003.1665.0445.1795.127.0711.4493-.5303 1.6964-.9302 1.9126-.1004.0543-.2483.0044-.2728-.1041-.022-.0974.0306-.2071.0722-.3008l.6457-1.4596c.0525-.1189.19-.1789.3056-.175zm-6.303 3.1817l-1.124.0045-1.7048 3.8193c-.5372.5693-1.2974 1.1229-2.0564.8124-.3688-.1509-.5473-.5486-.5574-.9263-.0177-.6733.1488-1.289.5014-1.8086.342-.504.7937-1.1283 1.4474-1.1951.1721-.0175.3326.075.3969.2289.0803.192-.0153.3892-.1402.5211-.144.153-.337.246-.5133.2806.0906.4412.734.4207 1.0544.2772.2442-.11.4806-.35.5495-.6057.0836-.3098.0383-.6695-.1642-.9186-.3791-.465-1.0279-.5176-1.588-.3887-1.2165.28-2.3287 1.3853-2.6427 2.5743-.2395.9087-.1822 2.0852.682 2.6142.9996.6125 1.9043-.0058 2.6045-.5139l-.2575.5786 1.1494.003 1.239-2.802c.1231-.2785.6937-.234.5376.1201l-.6818 1.5438c-.087.1972-.1522.3845-.1522.5976 0 .229.0833.471.3123.5694.5578.2385 1.11-.1131 1.527-.47.0537.273.205.4565.494.5179.4516.0959.8182-.1604 1.1711-.3686.068.128.109.2812.2566.3567.4342.2218.9632-.0281 1.3402-.2363l-.3943.863c-.9815-.2082-2.0948-.2582-3.0592.0747-.532.184-1.0934.691-1.1347 1.3075-.031.4587.1895.8673.5693 1.099.7596.462 1.8348.4653 2.6425.0958.4793-.2194.8899-.577 1.2388-1.0065 1.5761.333 3.4885.589 4.6032-.8216.0211-.0271.173-.2487.2006-.4454-.2086.1366-.44.2202-.6818.2646-.5984.111-1.2287.0944-1.847.0425-.4098-.034-1.1304-.1828-1.4892-.3505l.5978-1.3038c.0921.2085.2696.3657.4853.409.6628.133 1.1861-.2979 1.6075-.758l1.9608-2.1407c.0653-.0715.1707-.203.2925-.1808.0367.0068.0548.05.0407.0883-.1106.295-.2242.5895-.3133.8984-.1354.4696-.0843 1.0261-.3685 1.431-.0669.0952-.1804.1427-.2927.1486-.1164.006-.2264-.0519-.277-.1606-.0903-.1956.0397-.4238.1805-.557-.0705-.0591-.17-.0683-.2351-.0637-.1672.0122-.3155.1068-.4185.244-.0992.1324-.1362.3117-.1121.4928.0362.272.2962.4922.5496.5577.5403.1392 1.0957-.0172 1.5154-.377.7315-.6272.5-1.6633.425-2.494-.037-.4122.1765-.802.5495-.9744-.1026-.1256-.2454-.168-.3344-.1795-1.1026-.139-1.8218 1.2796-2.489 1.6753.0314-.1304.3402-1.281-.2078-1.6083-.387-.2303-.8384-.004-1.1552.2165.011-.0568.036-.2084.036-.2084h-1.0338l-1.332 3.0032c-.072.163-.2684.2052-.4286.2088-.0804.002-.1598-.0265-.1966-.1042-.0352-.0748-.0461-.1518-.0122-.2287l1.2861-2.8884h-1.137l-1.2755 2.8884c-.0517.1164-.1728.1762-.2928.1885-.0763.0076-.1602-.0484-.2086-.12-.0435-.0647-.0383-.1777-.008-.2488l1.1626-2.708h-1.1167l-1.2489 2.8523c-.0704.161-.241.2864-.4092.3288-.1044.0263-.2131.0007-.2725-.0845-.0609-.0873-.0417-.1994 0-.3044.29-.7285.682-1.4192.9264-2.1652.0646-.1982.035-.4453-.1405-.5693-.4426-.314-.966-.0667-1.3553.1882zm6.3363 2.3177c.0784.0056.1475.0595.1823.1211.0481.086.037.2212.0079.3127-.1865.5829-.4699 1.1878-.7859 1.6762-.1007.155-.529.2388-.529 0v-.1322l.8056-1.8085c.0496-.1115.1692-.155.285-.1685a.1868.1868 0 0 1 .034-.0008zm-5.3643 4.849c.1608.002.3222.0152.4782.0275.346.0275.6818.1045 1.0064.2007-.4502.7776-1.4392 1.2001-2.2655.7178-.3268-.1911-.3654-.6248.0082-.8061.238-.1154.5046-.1432.7727-.1399zm3.1186.7396a.8233.8233 0 0 0-.3883.0973c-.1232.0648-.2269.1618-.3094.2916-.0822.1294-.1239.2739-.1239.4323 0 .2272.0803.421.2409.5813.1603.1597.3539.24.5807.24.2253 0 .4186-.0806.5797-.2413.1606-.1608.241-.354.241-.58 0-.159-.0416-.3043-.1247-.4347-.0836-.1301-.1868-.2272-.311-.2906-.1238-.064-.2525-.096-.385-.096zm.0008.1611c.177 0 .3314.063.4632.1893.1314.1258.1972.2833.1972.4708 0 .1815-.0648.3374-.1945.4665-.129.1303-.2846.195-.4659.195-.1816 0-.337-.0644-.4658-.1936-.1292-.1287-.1935-.2852-.1935-.468 0-.1874.0658-.3449.1972-.4707.1315-.1263.2853-.1893.4621-.1893zm-.372.2284v.871h.177v-.3577h.0461c.0555 0 .0993.0152.1313.0445.0317.0296.0697.0867.1132.1721l.0727.1412h.219l-.1033-.1759c-.05-.0848-.0859-.1378-.1067-.1585a.2044.2044 0 0 0-.0777-.0467c.0702-.0104.1267-.0372.1703-.0805.043-.0429.0645-.097.0645-.1622 0-.0671-.0199-.1224-.0596-.1655-.04-.0431-.0837-.0674-.1315-.0736-.0473-.0057-.1607-.0082-.3383-.0082zm.177.1383h.0718c.0785 0 .1328.0015.1623.0052a.1292.1292 0 0 1 .076.0357.1032.1032 0 0 1 .0316.077.1088.1088 0 0 1-.0294.0771.1197.1197 0 0 1-.072.0367c-.0281.004-.0848.0062-.1685.0062h-.0718Z\"},\"child\":[]}]})(props);\n};\nexport function SiCilium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.607 14.583h-3.215l-1.626-2.764 1.626-2.802h3.215l1.626 2.802-1.626 2.764ZM14.186 8H9.799l-2.2 3.813 2.2 3.787h4.387l2.213-3.787L14.186 8Zm-4.387 8.4-2.2 3.813L9.799 24h4.387l2.213-3.787-2.213-3.813H9.799Zm-1.034 3.819 1.627-2.802h3.215l1.626 2.802-1.626 2.765h-3.215l-1.627-2.765ZM9.799 0l-2.2 3.813 2.2 3.787h4.387l2.213-3.787L14.186 0H9.799ZM8.765 3.819l1.627-2.802h3.215l1.626 2.802-1.626 2.764h-3.215L8.765 3.819Zm8.234 8.581-2.2 3.813 2.2 3.787h4.388l2.213-3.787-2.213-3.813h-4.388Zm-1.034 3.819 1.627-2.802h3.215l1.626 2.802-1.626 2.765h-3.215l-1.627-2.765ZM16.999 4l-2.2 3.813 2.2 3.787h4.388L23.6 7.813 21.387 4h-4.388Zm-1.034 3.819 1.627-2.802h3.215l1.626 2.802-1.626 2.764h-3.215l-1.627-2.764ZM2.599 12.4l-2.2 3.813L2.599 20h4.387l2.213-3.787L6.986 12.4H2.599Zm-1.034 3.819 1.627-2.802h3.214l1.627 2.802-1.627 2.765H3.192l-1.627-2.765ZM2.599 4l-2.2 3.813 2.2 3.787h4.387l2.213-3.787L6.986 4H2.599ZM1.565 7.819l1.627-2.802h3.214l1.627 2.802-1.627 2.764H3.192L1.565 7.819Z\"},\"child\":[]}]})(props);\n};\nexport function SiCinema4D (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.052 0C5.394-.007-.003 5.412 0 11.976.003 18.654 5.475 23.981 11.978 24c6.535.02 12.057-5.306 12.022-11.998-.009-1.665-.53-5.371-1.84-5.276-1.98.145-2.159 4.12-2.377 5.407-.417 2.46-1.346 5.08-2.953 6.99-1.88 2.359-4.697 3.634-7.662 3.158-3.55-.564-5.893-3.278-6.68-5.201-.753-1.723-1.035-4.162-.07-6.324 1.16-2.766 3.734-4.632 6.28-5.584 2.006-.827 4.103-1.151 5.357-1.375 2.516-.5 2.855-1.463 2.814-2.149-.015-.252-.256-.724-.785-.943C15.03.269 13.268.001 12.052 0zm5.098 1.342c.139.398.088.85-.148 1.256-.325.56-.972 1.05-1.897 1.29-1.636.428-2.976.554-4.34.96-1.312.39-3.397 1.018-5.316 2.552-.268.842-.341 1.892-.369 2.662.15 5.014 4.557 8.884 9.17 8.682.853-.037 1.921-.261 2.912-.68a13.56 13.56 0 0 0 1.387-2.683l.002-.002v-.002c.424-1.03.606-1.836.8-2.793.32-1.565.202-2.88 1.012-4.758.251-.582.71-1.113 1.258-1.346.25-.105.522-.133.79-.072-.89-2.471-3.115-4.326-5.26-5.066z\"},\"child\":[]}]})(props);\n};\nexport function SiCinnamon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12 0-6.627-5.372-12-12-12zm0 2.045c5.498 0 9.955 4.457 9.955 9.955 0 .844-.116 1.66-.314 2.443l-4.735-5.26-6.054 6.887 2.921-5.844-1.46-2.609-8.604 9.889A9.908 9.908 0 0 1 2.045 12c0-5.498 4.457-9.955 9.955-9.955z\"},\"child\":[]}]})(props);\n};\nexport function SiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.788 3.832c-.101-.105-.197-.213-.301-.317-.103-.103-.211-.202-.32-.302A11.903 11.903 0 0 0 12 0a11.926 11.926 0 0 0-8.486 3.514C-1.062 8.09-1.16 15.47 3.213 20.168c.099.108.197.214.3.32.104.103.21.2.317.3A11.92 11.92 0 0 0 12 24c3.206 0 6.22-1.247 8.487-3.512 4.576-4.576 4.673-11.956.301-16.656zm-16.655.301A11.057 11.057 0 0 1 12 .874c2.825 0 5.49 1.048 7.55 2.958l-1.001 1.002A9.646 9.646 0 0 0 12 2.292a9.644 9.644 0 0 0-6.865 2.844A9.644 9.644 0 0 0 2.292 12c0 2.448.9 4.753 2.542 6.549L3.831 19.55C-.201 15.191-.101 8.367 4.133 4.133zm13.798 1.318v.002l-1.015 1.014A7.346 7.346 0 0 0 12 4.589 7.357 7.357 0 0 0 6.761 6.76 7.362 7.362 0 0 0 4.589 12a7.34 7.34 0 0 0 1.877 4.913l-1.014 1.016A8.77 8.77 0 0 1 3.167 12a8.77 8.77 0 0 1 2.588-6.245A8.771 8.771 0 0 1 12 3.167c2.213 0 4.301.809 5.931 2.284zM18.537 12c0 1.745-.681 3.387-1.916 4.622S13.746 18.538 12 18.538a6.491 6.491 0 0 1-4.296-1.621l-.001-.004c-.11-.094-.22-.188-.324-.291a6.027 6.027 0 0 1-.293-.326A6.47 6.47 0 0 1 5.466 12c0-1.746.679-3.387 1.914-4.621A6.488 6.488 0 0 1 12 5.465c1.599 0 3.105.576 4.295 1.62.111.096.224.19.326.295.104.104.2.214.295.324A6.482 6.482 0 0 1 18.537 12zM7.084 17.534h.001A7.349 7.349 0 0 0 12 19.413a7.35 7.35 0 0 0 5.239-2.174A7.354 7.354 0 0 0 19.412 12a7.364 7.364 0 0 0-1.876-4.916l1.013-1.012A8.777 8.777 0 0 1 20.834 12a8.765 8.765 0 0 1-2.589 6.246A8.764 8.764 0 0 1 12 20.834a8.782 8.782 0 0 1-5.93-2.285l1.014-1.015zm12.783 2.333A11.046 11.046 0 0 1 12 23.125a11.042 11.042 0 0 1-7.551-2.957l1.004-1.001a9.64 9.64 0 0 0 6.549 2.542 9.639 9.639 0 0 0 6.865-2.846A9.642 9.642 0 0 0 21.71 12a9.64 9.64 0 0 0-2.543-6.548l1.001-1.002c4.031 4.359 3.935 11.182-.301 15.417z\"},\"child\":[]}]})(props);\n};\nexport function SiCircleci (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.963 12c0-1.584 1.284-2.855 2.855-2.855 1.572 0 2.856 1.284 2.856 2.855 0 1.572-1.284 2.856-2.856 2.856-1.57 0-2.855-1.284-2.855-2.856zm2.855-12C6.215 0 1.522 3.84.19 9.025c-.01.036-.01.07-.01.12 0 .313.252.576.575.576H5.59c.23 0 .433-.13.517-.333.997-2.16 3.18-3.672 5.712-3.672 3.466 0 6.286 2.82 6.286 6.287 0 3.47-2.82 6.29-6.29 6.29-2.53 0-4.714-1.5-5.71-3.673-.097-.19-.29-.336-.517-.336H.755c-.312 0-.575.253-.575.576 0 .037.014.072.014.12C1.514 20.16 6.214 24 11.818 24c6.624 0 12-5.375 12-12 0-6.623-5.376-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function SiCircuitverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.1227 24c-.201 0-.4037-.0058-.6028-.0175a.487.487 0 0 1-.0433-.287.703.703 0 0 0-.0213-.2624H9.2251a1.205 1.205 0 0 1-.785.3898.7059.7059 0 0 1-.5075-.2282.9153.9153 0 0 1-.0647-1.099.7.7 0 0 1 .5576-.267 1.2192 1.2192 0 0 1 .703.267h2.3271a1.9635 1.9635 0 0 0 0-.614h-1.1959a1.1416 1.1416 0 0 1-.5495-.1293c-.442-.2654-.9147-.522-1.4868-.808a1.3834 1.3834 0 0 0-.711-.194 7.1018 7.1018 0 0 1-.4752.0142c-.157 0-.313-.0036-.4644-.007a18.8307 18.8307 0 0 0-.45-.0072 1.3491 1.3491 0 0 1-.8135.3704.6752.6752 0 0 1-.512-.2411.7596.7596 0 0 1 0-1.0666.7188.7188 0 0 1 .5363-.2718 1.3055 1.3055 0 0 1 .7566.3364H7.771a1.1403 1.1403 0 0 1 .5495.1293c.1413.0824.2938.1616.4415.2389a6.0441 6.0441 0 0 1 .7544.4399 1.9496 1.9496 0 0 0 1.116.3293 2.542 2.542 0 0 0 .1772-.006 1.5207 1.5207 0 0 1 .2191-.0143c.0682 0 .1361.0032.208.0068.0797.004.1615.0078.2516.0078v-1.0343h-1.1639a1.267 1.267 0 0 1-.711.2993.8404.8404 0 0 1-.614-.3316c-.3709-.4043-.1346-.8032.1291-1.0666a.5653.5653 0 0 1 .3533-.125 1.3475 1.3475 0 0 1 .8426.4479h1.099v-.905a.3807.3807 0 0 0-.1778-.0404c-.027 0-.054.0019-.0824.0039-.0285.0019-.0624.0042-.0954.0042H4.959a.8404.8404 0 0 1-.7434-.3556c-.1716-.2285-.3698-.4592-.545-.6629l-.069-.0804c-.7435-.0647-.9698-.2845-.9375-.905a.7495.7495 0 0 1 .8404-.6788c.4916 0 .711.329.711 1.0666.0608.0708.12.1429.1827.2195.1357.1651.2757.3361.4315.492h6.6582a5.5024 5.5024 0 0 0 0-1.0344H6.6397a1.3177 1.3177 0 0 1-.7948.3707.6623.6623 0 0 1-.498-.2414.7457.7457 0 0 1 0-1.099.6933.6933 0 0 1 .508-.2685 1.1678 1.1678 0 0 1 .7201.3652h4.8806v-1.002h-8.242c-.156.1736-.3232.3494-.5016.5356-.1584.1661-.3213.3368-.5007.531a.8381.8381 0 0 1-.7912.7515.8055.8055 0 0 1-.1138-.008.8459.8459 0 0 1-.6464-1.002c.0588-.3827.372-.6022.8597-.6022a1.9283 1.9283 0 0 1 .2715.0204c.1765-.2062.4435-.5084.7111-.7757a.9587.9587 0 0 1 .7757-.3233h8.1774v-1.0989H1.6295a1.226 1.226 0 0 1-.7434.3436.6817.6817 0 0 1-.5494-.3113.8488.8488 0 0 1 .097-1.1312.7486.7486 0 0 1 .4793-.194 1.1539 1.1539 0 0 1 .8138.4849h3.1998l-.1014-.097c-.5595-.5284-1.1378-1.0747-1.8382-1.713a.7554.7554 0 0 1-.7757-.808c0-.514.2195-.7435.711-.7435.6617 0 .8404.2127.8728 1.0343.2482.238.4922.469.7508.7134.5417.5126 1.101 1.0414 1.6733 1.6138h5.236v-.7434H9.1605a1.2783 1.2783 0 0 1-.7049.2628.7457.7457 0 0 1-.588-.2951.808.808 0 0 1 .1294-1.099.6351.6351 0 0 1 .4373-.167 1.2777 1.2777 0 0 1 .8235.3933h2.198v-.8404c-.2264 0-.4526-.0036-.671-.007h-.0066a39.3709 39.3709 0 0 0-.656-.0072c-.2484 0-.4675.0048-.6705.0142a1.3974 1.3974 0 0 1-.1144.0048 1.2311 1.2311 0 0 1-.8552-.3603l-.6006-.5068-.0116-.01-.0078-.0066A260.83 260.83 0 0 0 6.6397 7.272H3.052a1.235 1.235 0 0 1-.7192.2909.7298.7298 0 0 1-.5737-.2909.7757.7757 0 0 1 .097-1.099.701.701 0 0 1 .4742-.2233 1.3556 1.3556 0 0 1 .8187.45h3.1352a1.599 1.599 0 0 1 1.1635.4525c.3733.3513.7951.6907 1.203 1.0187h.0016c.19.1532.388.3113.573.4664h2.198V7.2707c-.138 0-.2822-.0035-.4202-.007H11a17.915 17.915 0 0 0-.4392-.0072c-.1616 0-.3032.0048-.4286.0142a1.4155 1.4155 0 0 1-.1157.0049 1.3365 1.3365 0 0 1-.8558-.3265 11.3707 11.3707 0 0 0-.3048-.2405c-.1025-.0788-.212-.1616-.3093-.2443-.8-.0646-1.099-.2909-1.0667-.808a.7757.7757 0 0 1 .7758-.7434c.497 0 .7757.3018.808.8726.1293.097.2586.2033.388.3061l.0015.002c.1267.103.2585.2097.3878.3064h1.5838V5.1394h-.5495a1.3507 1.3507 0 0 1-.7654.3604.6872.6872 0 0 1-.5275-.296.7983.7983 0 0 1 .0324-1.099.6978.6978 0 0 1 .5003-.2146 1.1096 1.1096 0 0 1 .7586.3762h.5171a.5142.5142 0 0 0 .043-.3461 1.2334 1.2334 0 0 1-.0107-.1387v-.5171a3.1097 3.1097 0 0 1-.2908.0126c-.119 0-.2399-.0049-.3556-.0097h-.007a8.4163 8.4163 0 0 0-.364-.0104 1.9597 1.9597 0 0 0-1.0172.2344 10.704 10.704 0 0 1-1.115.5817h-.003c-.1538.0728-.3128.148-.466.2244a.8853.8853 0 0 1-.4202.0646H5.2188a1.0967 1.0967 0 0 1-.6958.3284.7822.7822 0 0 1-.5983-.3271.7237.7237 0 0 1-.181-.5453.8462.8462 0 0 1 .3103-.586.735.735 0 0 1 .4732-.1974 1.0705 1.0705 0 0 1 .755.456h2.101a.6167.6167 0 0 0 .2232-.053 1.192 1.192 0 0 1 .1322-.044c.1316-.0646.2628-.1292.3898-.1893a10.0788 10.0788 0 0 0 .9354-.4894 2.555 2.555 0 0 1 1.353-.3617c.0646 0 .1312.002.1981.0058a2.065 2.065 0 0 0 .2586.0143c.0853 0 .17-.0033.2586-.0068h.0023c.092-.0036.1874-.0075.286-.0075a2.1442 2.1442 0 0 0 .0365-.5908c-.0019-.0701-.0042-.1425-.0042-.2172H9.4164a1.4545 1.4545 0 0 1-.7663.3316.6823.6823 0 0 1-.5262-.2993.8307.8307 0 0 1 .0646-1.0989.715.715 0 0 1 .4874-.2043 1.243 1.243 0 0 1 .7758.3662h2.004c0-.0898.007-.1803.0144-.2763.0087-.1138.0178-.2314.0178-.3701h.126c4.196 0 7.4922 1.6423 9.7967 4.8805a12.2263 12.2263 0 0 1 2.408 6.4563c.1212 2.2033-.439 4.4571-1.6646 6.6986a11.395 11.395 0 0 1-4.4335 4.4768A11.4803 11.4803 0 0 1 12.1227 24zm.3672-5.5768v4.4604a1.616 1.616 0 0 0 .2705.0217 3.4704 3.4704 0 0 0 .491-.0456c.109-.0152.2204-.0323.337-.0407a14.979 14.979 0 0 0 2.392-4.3957zm4.6543 0a19.092 19.092 0 0 1-1.8424 3.9433 10.38 10.38 0 0 0 5.3008-3.9433zm1.0343-5.7855a20.4576 20.4576 0 0 1-.6788 4.6543h3.814a11.2114 11.2114 0 0 0 1.2928-4.6543zm-5.6886 0v4.622h3.8786a18.1495 18.1495 0 0 0 .6787-4.622zm.0323-5.7855v4.6542h4.5573a18.7193 18.7193 0 0 0-.711-4.6542zm4.9452-.0324a21.3593 21.3593 0 0 1 .711 4.6543h4.4281a10.9179 10.9179 0 0 0-1.3252-4.6543zm-2.1979-5.0421a20.007 20.007 0 0 1 1.8747 3.9432h3.4584a10.6137 10.6137 0 0 0-5.333-3.9432zm-2.7473-.5818c0 1.5624 0 3.0382.0323 4.4927h3.4584a.1183.1183 0 0 1-.0323-.097 16.2011 16.2011 0 0 0-2.2302-4.1048c-.0126-.0126-.0249-.0262-.0378-.0404a.2773.2773 0 0 0-.1884-.1212 9.487 9.487 0 0 0-1.002-.1293z\"},\"child\":[]}]})(props);\n};\nexport function SiCirrusci (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.422.453a1.113 1.113 0 0 0-1.113 1.115 1.113 1.113 0 0 0 1.112 1.114c1.31 0 2.35 1.042 2.35 2.363 0 1.32-1.04 2.363-2.35 2.363H1.112A1.113 1.113 0 0 0 0 8.52a1.113 1.113 0 0 0 1.113 1.117h18.31c1.308 0 2.35 1.042 2.35 2.363 0 1.32-1.042 2.363-2.35 2.363H1.112A1.113 1.113 0 0 0 0 15.48a1.113 1.113 0 0 0 1.113 1.112h18.31c1.308 0 2.35 1.042 2.35 2.363 0 1.32-1.042 2.363-2.35 2.363H1.112A1.113 1.113 0 0 0 0 22.432a1.113 1.113 0 0 0 1.113 1.115h18.31a1.113 1.113 0 0 0 .206-.022c2.42-.112 4.37-2.12 4.37-4.57 0-1.393-.642-2.634-1.63-3.478C23.356 14.632 24 13.393 24 12c0-1.393-.643-2.632-1.63-3.477C23.357 7.68 24 6.438 24 5.045c0-2.52-2.06-4.592-4.578-4.592z\"},\"child\":[]}]})(props);\n};\nexport function SiCisco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.331 18.171V17.06l-.022.01c-.25.121-.522.19-.801.203a1.186 1.186 0 01-.806-.237 1.038 1.038 0 01-.352-.498 1.21 1.21 0 01-.023-.667c.052-.225.178-.426.357-.569.16-.134.355-.218.562-.242a1.85 1.85 0 011.061.198l.024.013v-1.117l-.051-.014a2.862 2.862 0 00-1.011-.132 2.34 2.34 0 00-.903.206c-.287.132-.54.327-.739.571a2.221 2.221 0 00-.04 2.705c.295.378.709.645 1.175.756.491.12 1.006.102 1.487-.052l.082-.023M5.336 18.171V17.06l-.022.01c-.25.121-.522.19-.801.203a1.183 1.183 0 01-.806-.237 1.03 1.03 0 01-.351-.498 1.202 1.202 0 01-.024-.667c.052-.225.177-.426.357-.569.16-.134.355-.218.562-.242a1.85 1.85 0 011.061.198l.024.013v-1.117l-.051-.014a2.862 2.862 0 00-1.011-.132 2.344 2.344 0 00-.903.206 2.08 2.08 0 00-.74.571 2.224 2.224 0 00-.041 2.705 2.11 2.11 0 001.176.756c.491.12 1.005.102 1.487-.052l.083-.023M9.26 17.249l-.004.957.07.012c.22.041.441.069.664.085.195.019.391.022.587.012.187-.014.372-.049.551-.104.21-.06.405-.163.571-.305a1.16 1.16 0 00.333-.478 1.31 1.31 0 00-.007-.96 1.068 1.068 0 00-.298-.414 1.261 1.261 0 00-.438-.255l-.722-.268a.388.388 0 01-.197-.188.245.245 0 01.008-.219.382.382 0 01.154-.142.798.798 0 01.257-.074c.153-.022.308-.021.46.005.18.02.358.051.533.096l.038.008v-.883l-.069-.015a4.749 4.749 0 00-.543-.097 2.844 2.844 0 00-.714-.003c-.3.027-.585.143-.821.33-.16.126-.281.293-.351.484-.104.29-.105.608 0 .899.054.145.14.274.252.381.097.093.207.173.327.236.157.084.324.149.497.195.057.017.114.035.17.054l.085.031.024.01c.084.03.162.078.226.14.045.042.08.094.101.151a.325.325 0 01.001.161.339.339 0 01-.166.198.856.856 0 01-.275.086 2.032 2.032 0 01-.427.021 5.208 5.208 0 01-.557-.074 9.195 9.195 0 01-.287-.067l-.033-.006zm-2.475.995h1.05v-4.167h-1.05v4.167zm12.162-2.936a1.095 1.095 0 011.541.158 1.094 1.094 0 01-.157 1.541l-.017.014a1.096 1.096 0 01-1.367-1.713m-1.525.854a2.193 2.193 0 002.666 2.107 2.139 2.139 0 00.701-3.937 2.207 2.207 0 00-3.367 1.83M22.961 10.728a.52.52 0 001.039 0V9.573a.52.52 0 00-1.039 0v1.155M20.117 10.728a.522.522 0 001.041 0V8.139a.521.521 0 00-1.04 0v2.589M17.231 11.771a.521.521 0 001.039 0V6.17a.52.52 0 00-1.039 0v5.601M14.393 10.728a.521.521 0 001.04 0V8.139a.52.52 0 00-1.039 0v2.589M11.494 10.728a.522.522 0 001.039 0V9.573a.52.52 0 00-1.039 0v1.155M8.624 10.728a.52.52 0 001.039 0V8.139a.52.52 0 00-1.039 0v2.589M5.737 11.771a.52.52 0 001.039 0V6.17a.52.52 0 00-1.039 0v5.601M2.876 10.728a.522.522 0 001.04 0V8.139a.52.52 0 00-1.039 0v2.589M0 10.728a.521.521 0 001.039 0V9.573a.52.52 0 00-1.039 0v1.155\"},\"child\":[]}]})(props);\n};\nexport function SiCitrix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.983 0a1.78 1.78 0 0 0-1.78 1.78 1.78 1.78 0 0 0 1.78 1.78 1.78 1.78 0 0 0 1.78-1.78A1.78 1.78 0 0 0 11.983 0zM5.17 5.991a1.026 1.026 0 0 0-1.095 1.027c0 .308.136.616.376.822l6.162 7.086-6.401 7.258a1.084 1.084 0 0 0-.309.787c0 .582.48 1.027 1.062 1.027.342 0 .684-.17.89-.444l6.128-7.19 6.162 7.19c.205.274.547.444.89.444.582.035 1.062-.445 1.062-1.027a1.14 1.14 0 0 0-.309-.787l-6.402-7.258 6.162-7.086c.24-.206.377-.514.377-.822v-.034c0-.582-.513-1.027-1.095-.993-.343 0-.65.171-.856.445l-5.957 7.018L6.06 6.436a1.07 1.07 0 0 0-.855-.445z\"},\"child\":[]}]})(props);\n};\nexport function SiCitroen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C6.684 0 2.292 5.38 2.292 12S6.652 24 12 24c5.347 0 9.708-5.38 9.708-12S17.316 0 12 0zM4.106 16.233c-.19-.604-.35-1.241-.414-1.878L12 8.18l8.371 6.175a12.334 12.334 0 0 1-.413 1.878v.032h-.032L12 10.345zm.923 2.101-.032-.032L12 13.114l7.003 5.188v.032c-1.655 2.897-4.202 4.616-6.987 4.616s-5.363-1.751-6.987-4.616zM12 5.347l-8.53 6.335v-.032c.063-2.674.954-5.284 2.61-7.385C7.67 2.324 9.772 1.21 12 1.21c2.228 0 4.36 1.114 5.92 3.055 1.56 1.942 2.515 4.616 2.61 7.417v.032l-.031-.032z\"},\"child\":[]}]})(props);\n};\nexport function SiCivicrm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.565 9.054c.248-.477.45-1.125.235-1.786-.25-.766-.939-1.275-2.051-1.511l-7.052-1.5L6.496.405C6.418.363 5.717 0 4.951 0 4.38 0 3.888.198 3.527.571c-.337.349-.539.834-.603 1.444a3.184 3.184 0 0 0-.199-.006c-1.089 0-1.648.456-1.926.839C.369 3.44.315 4.241.638 5.23l2.649 8.118.251 7.033c.044 1.222.719 2.536 2.098 2.537.264 0 .537-.051.82-.15.328.556.92 1.232 1.864 1.232.666 0 1.324-.357 1.956-1.063l5.11-5.697 6.783-4.283c.147-.094 1.444-.95 1.398-2.229-.022-.642-.362-1.202-1.002-1.674zM7.396 20.166l-2.328-7.134-.316-8.847 8.326 1.771 6.771 3.622-5.63 6.279-6.823 4.309zM20.377 7.51c.545.116.709.279.72.313.021.063-.017.196-.087.344l-1.623-.868.99.211zM4.951 1.792c.269 0 .607.145.7.193l1.738.929-2.693-.573c.013-.323.08-.484.12-.526.012-.011.062-.023.135-.023zm-2.61 2.882c-.195-.595-.093-.773-.092-.774.019-.026.167-.099.476-.099.083 0 .159.005.221.011l.109 3.05-.714-2.188zm2.988 15.642l-.029-.798.514 1.574a.68.68 0 0 1-.178.034c-.146 0-.293-.5-.307-.81zm3.614 1.424c-.414.463-.62.468-.622.468-.058 0-.185-.132-.301-.317l1.818-1.148-.895.997zm12.27-10.299l-1.445.913 1.695-1.89c.249.174.313.298.314.329.006.133-.287.468-.564.648z\"},\"child\":[]}]})(props);\n};\nexport function SiCivo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.229 7.985h-.993c-.183 0-.303.14-.303.318v7.393c0 .177.12.318.303.318h.993a.318.318 0 0 0 .323-.318V8.303a.317.317 0 0 0-.323-.318m-3.1 5.838a.32.32 0 0 0-.507-.104 2.34 2.34 0 0 1-1.604.635c-1.627 0-2.868-1.65-2.141-3.368a2.128 2.128 0 0 1 1.13-1.128c.992-.42 1.958-.18 2.599.408a.32.32 0 0 0 .507-.103l.43-.943a.353.353 0 0 0-.111-.428C5.425 8.03 4.05 7.732 2.617 8.22a3.838 3.838 0 0 0-2.412 2.478c-.874 2.772 1.172 5.32 3.813 5.32.92 0 1.764-.31 2.44-.831a.348.348 0 0 0 .101-.42zm17.666-3.125a3.838 3.838 0 0 0-2.412-2.478 4.176 4.176 0 0 0-2.329-.13c-1.2.269-2.07.838-2.834 2.479l-1.534 3.326-2.603-5.722a.32.32 0 0 0-.29-.187l-1.138-.002a.32.32 0 0 0-.292.453l3.376 7.382a.324.324 0 0 0 .291.19l.056.005h1.276a.236.236 0 0 0 .076-.013.335.335 0 0 0 .2-.18l1.71-3.893c.515-1.213.827-1.718 1.643-2.065a2.527 2.527 0 0 1 2.054.026c.492.222.878.629 1.084 1.128a2.701 2.701 0 0 1 .206.95 2.354 2.354 0 0 1-2.353 2.387 2.34 2.34 0 0 1-1.604-.635.32.32 0 0 0-.507.104l-.43.944a.348.348 0 0 0 .1.42c.677.52 1.522.831 2.44.831 2.642 0 4.688-2.548 3.814-5.32\"},\"child\":[]}]})(props);\n};\nexport function SiCkeditor4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.1237 3.7468a4.5092 4.5092 0 0 0-.469 2.009c0 2.5006 2.0271 4.5278 4.5278 4.5278a4.447 4.447 0 0 0 .0967-.001v6.3413a2.1307 2.1307 0 0 1-1.0654 1.8453l-8.0089 4.6239a2.1307 2.1307 0 0 1-2.1307 0l-8.0088-4.624A2.1307 2.1307 0 0 1 0 16.624V7.3761c0-.7613.4061-1.4647 1.0654-1.8453L9.0742.907a2.1307 2.1307 0 0 1 2.1307 0zM5.733 7.9753a.5327.5327 0 0 0-.5327.5327v.2542c0 .2942.2385.5327.5327.5327h8.9963a.5327.5327 0 0 0 .5327-.5327V8.508a.5327.5327 0 0 0-.5327-.5327zm0 3.281a.5327.5327 0 0 0-.5327.5326v.2542c0 .2942.2385.5327.5327.5327h6.5221a.5327.5327 0 0 0 .5327-.5327v-.2542a.5327.5327 0 0 0-.5327-.5327zm0 3.2809a.5327.5327 0 0 0-.5327.5327v.2542c0 .2942.2385.5326.5327.5326h8.9963a.5327.5327 0 0 0 .5327-.5326v-.2542a.5327.5327 0 0 0-.5327-.5327zm14.5383-5.1414c-2.0593 0-3.7287-1.6694-3.7287-3.7288 0-2.0593 1.6694-3.7287 3.7287-3.7287S24 3.6077 24 5.667c0 2.0594-1.6694 3.7288-3.7288 3.7288zm.6347-2.7825h.393v-.5904h-.397V4.139h-.8144l-1.1668 1.8623v.612H20.27v.5991h.636zm-.632-1.7277v1.1373h-.6928l.6807-1.1373Z\"},\"child\":[]}]})(props);\n};\nexport function SiClarifai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.78 14.772A2.768 2.768 0 0 1 0 12.008a2.781 2.781 0 0 1 2.78-2.78 2.765 2.765 0 0 1 2.764 2.764c0 1.52-1.23 2.78-2.764 2.78zM17.119 1.83c-2.05 0-2.142 1.732-5.27 1.732-3.16 0-3.419-1.732-5.287-1.732a2.765 2.765 0 0 0-2.765 2.765 2.775 2.775 0 0 0 2.765 2.764c2.066 0 2.157-1.731 5.286-1.731 3.16 0 3.418 1.731 5.286 1.731A2.765 2.765 0 0 0 19.9 4.595a2.778 2.778 0 0 0-2.78-2.765zm0 14.81c-2.066 0-2.157 1.732-5.286 1.732-3.16 0-3.418-1.731-5.286-1.731a2.765 2.765 0 0 0-2.765 2.764 2.775 2.775 0 0 0 2.765 2.765c2.066 0 2.157-1.732 5.286-1.732 3.16 0 3.418 1.732 5.286 1.732a2.765 2.765 0 0 0 0-5.53zm4.101-7.397c-2.08 0-2.005 1.823-4.617 1.823-2.416-.015-2.446-1.823-4.755-1.823-1.443 0-2.628 1.322-2.628 2.765s1.2 2.764 2.765 2.764c2.08 0 2.005-1.823 4.618-1.823 2.415 0 2.445 1.808 4.77 1.808 1.442 0 2.627-1.322 2.627-2.765 0-1.427-1.2-2.749-2.78-2.749Z\"},\"child\":[]}]})(props);\n};\nexport function SiClaris (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.56 0a3.34 3.34 0 00-.57.043L22.947 12 10.99 23.957c.132.022.307.043.57.043 6.626 0 12-5.375 12-12s-5.374-12-12-12zm-1.535 2.414C4.738 2.414.44 6.713.44 12s4.3 9.588 9.586 9.588c.264 0 .44-.023.57-.045L1.054 12l9.543-9.543a3.337 3.337 0 00-.57-.043zm.746 2.457c-.263 0-.438.021-.57.043L17.287 12l-7.086 7.086c.132.022.307.045.57.045 3.927 0 7.13-3.204 7.13-7.131s-3.203-7.129-7.13-7.129zm-.416 2.434A4.701 4.701 0 005.66 12a4.701 4.701 0 004.695 4.695c.264 0 .44-.023.57-.045L6.274 12l4.653-4.65a3.296 3.296 0 00-.57-.045Z\"},\"child\":[]}]})(props);\n};\nexport function SiClarivate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.262 18a20.588 20.588 0 0 0 3.246-1.476 20.954 20.954 0 0 0 2.852-2.064A14.46 14.46 0 0 0 19.82 12c.328.328.622.688.884 1.082.328.394.592.786.788 1.18.262.46.524.886.786 1.28.198.458.394.884.59 1.278a23.172 23.172 0 0 1-2.654 2.46 38.765 38.765 0 0 1-2.952 1.966A29.612 29.612 0 0 1 10.574 24l-.788-1.18c-.26-.46-.524-.886-.786-1.28-.209-.42-.406-.846-.59-1.278l-.59-1.376A20.4 20.4 0 0 0 11.26 18h.002zm2.754-16.918a29.61 29.61 0 0 1 3.246 1.574c.984.59 1.968 1.246 2.952 1.966a47.566 47.566 0 0 1 2.654 2.46c-.196.46-.392.886-.59 1.28-.26.458-.524.884-.786 1.278a6.16 6.16 0 0 1-.788 1.18c-.273.409-.568.803-.884 1.18a18.072 18.072 0 0 0-2.46-2.558 20.936 20.936 0 0 0-2.852-2.064 20.4 20.4 0 0 0-6.688-2.36l.59-1.38c.196-.392.394-.82.59-1.278l.786-1.18.788-1.18c1.18.262 2.328.622 3.442 1.082zm-7.574 18c-.524.066-1.016.1-1.474.1H3.492c-.46 0-.92-.034-1.378-.1a34.28 34.28 0 0 1-.786-3.54 32.942 32.942 0 0 1 0-7.18c.196-1.18.46-2.33.786-3.444l1.378-.196h1.476c.46 0 .95.032 1.474.098l1.378.196-.59 1.77c-.262.984-.46 2-.59 3.05-.066.984-.1 2-.1 3.05.066 1.048.198 2.064.394 3.048.262 1.05.558 2.034.886 2.952-.46.13-.92.196-1.378.196z\"},\"child\":[]}]})(props);\n};\nexport function SiClaude (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z\"},\"child\":[]}]})(props);\n};\nexport function SiClerk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.47 20.829-2.881-2.881a.572.572 0 0 0-.7-.084 6.854 6.854 0 0 1-7.081 0 .576.576 0 0 0-.7.084l-2.881 2.881a.576.576 0 0 0-.103.69.57.57 0 0 0 .166.186 12 12 0 0 0 14.113 0 .58.58 0 0 0 .239-.423.576.576 0 0 0-.172-.453Zm.002-17.668-2.88 2.88a.569.569 0 0 1-.701.084A6.857 6.857 0 0 0 8.724 8.08a6.862 6.862 0 0 0-1.222 3.692 6.86 6.86 0 0 0 .978 3.764.573.573 0 0 1-.083.699l-2.881 2.88a.567.567 0 0 1-.864-.063A11.993 11.993 0 0 1 6.771 2.7a11.99 11.99 0 0 1 14.637-.405.566.566 0 0 1 .232.418.57.57 0 0 1-.168.448Zm-7.118 12.261a3.427 3.427 0 1 0 0-6.854 3.427 3.427 0 0 0 0 6.854Z\"},\"child\":[]}]})(props);\n};\nexport function SiClevercloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.823 11.139 11.253 0 1.608 5.57zM1.235 6.646v10.708L4.325 12zM12 23.57l6.43-11.14H5.57zM12 .43 5.57 11.57h12.86zm10.764 16.924V6.646L19.674 12zm.001.862-.374.215-3.215-5.57L12.746 24zm0-12.431L12.745 0l6.431 11.139 3.215-5.57zM1.235 18.216 11.254 24l-6.43-11.138-3.216 5.569z\"},\"child\":[]}]})(props);\n};\nexport function SiClickhouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.333 10H24v4h-2.667ZM16 1.335h2.667v21.33H16Zm-5.333 0h2.666v21.33h-2.666ZM0 22.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z\"},\"child\":[]}]})(props);\n};\nexport function SiClickup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 18.439l3.69-2.828c1.961 2.56 4.044 3.739 6.363 3.739 2.307 0 4.33-1.166 6.203-3.704L22 18.405C19.298 22.065 15.941 24 12.053 24 8.178 24 4.788 22.078 2 18.439zM12.04 6.15l-6.568 5.66-3.036-3.52L12.055 0l9.543 8.296-3.05 3.509z\"},\"child\":[]}]})(props);\n};\nexport function SiClion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm7.041 3a5.049 5.049 0 0 1 .219 0c1.86 0 3 .6 3.9 1.56L9.78 6.18C9 5.46 8.22 5.04 7.26 5.04c-1.68 0-2.88 1.38-2.88 3.12 0 1.68 1.2 3.12 2.88 3.12 1.14 0 1.86-.48 2.64-1.14l1.38 1.38c-1.02 1.08-2.16 1.8-4.08 1.8a5.1 5.1 0 0 1-5.1-5.16A5.049 5.049 0 0 1 7.04 3zm5.738.12H15v8.1h4.32v1.86h-6.54V3.12zM2.28 19.5h9V21h-9v-1.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiCliqz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.387 18.146l4.19-1.402L12 12.027l4.716 11.578 1.403-4.19 3.917 3.917 1.268-1.268zm-7.387 1c.035 0 .07-.004.105-.004l1.908 4.686c-.654.11-1.326.172-2.013.172-6.617 0-12-5.383-12-12S5.383 0 12 0s12 5.383 12 12c0 .695-.063 1.376-.177 2.04l-4.683-1.908c0-.044.006-.087.006-.133A7.153 7.153 0 0 0 12 4.854a7.155 7.154 0 0 0-7.147 7.145A7.155 7.154 0 0 0 12 19.146z\"},\"child\":[]}]})(props);\n};\nexport function SiClockify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.3512 20.4035c1.1108 0 2.169-.2217 3.139-.6157l2.6913 2.6944C17.4555 23.4458 15.4688 24 13.3512 24 6.729 24 1.3594 18.627 1.3594 12.0006 1.3594 5.3729 6.7289 0 13.3512 0c2.0964 0 4.0652.5406 5.7789 1.4865L16.4834 4.136c-.9687-.3918-2.0236-.6134-3.1322-.6134-4.6379 0-8.3976 3.779-8.3976 8.441 0 4.6609 3.7597 8.4399 8.3976 8.4399zm2.176-12.1544l5.5104-5.5139 1.5773 1.5772-5.5104 5.514zm-2.2328 5.6348c-1.0784 0-1.952-.8775-1.952-1.961 0-1.0825.8736-1.9611 1.952-1.9611 1.0784 0 1.952.8786 1.952 1.961 0 1.0836-.8736 1.9611-1.952 1.9611zm9.3462 5.6953l-1.5772 1.5783-5.5105-5.514 1.5774-1.5783z\"},\"child\":[]}]})(props);\n};\nexport function SiClojure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.503 12.216c-.119.259-.251.549-.387.858-.482 1.092-1.016 2.42-1.21 3.271a4.91 4.91 0 0 0-.112 1.096c0 .164.009.337.022.514.682.25 1.417.388 2.186.39a6.39 6.39 0 0 0 2.001-.326 3.808 3.808 0 0 1-.418-.441c-.854-1.089-1.329-2.682-2.082-5.362M8.355 6.813A6.347 6.347 0 0 0 5.657 12a6.347 6.347 0 0 0 2.625 5.134c.39-1.622 1.366-3.107 2.83-6.084-.087-.239-.186-.5-.297-.775-.406-1.018-.991-2.198-1.513-2.733a4.272 4.272 0 0 0-.947-.729M17.527 19.277c-.84-.105-1.533-.232-2.141-.446A7.625 7.625 0 0 1 4.376 12a7.6 7.6 0 0 1 2.6-5.73 5.582 5.582 0 0 0-1.324-.162c-2.236.02-4.597 1.258-5.58 4.602-.092.486-.07.854-.07 1.29 0 6.627 5.373 12 12 12 4.059 0 7.643-2.017 9.815-5.101-1.174.293-2.305.433-3.271.436-.362 0-.702-.02-1.019-.058M15.273 16.952c.074.036.242.097.475.163a6.354 6.354 0 0 0 2.6-5.115h-.002a6.354 6.354 0 0 0-6.345-6.345 6.338 6.338 0 0 0-1.992.324c1.289 1.468 1.908 3.566 2.507 5.862l.001.003c.001.002.192.637.518 1.48.326.842.789 1.885 1.293 2.645.332.51.697.876.945.983M12.001 0a11.98 11.98 0 0 0-9.752 5.013c1.134-.71 2.291-.967 3.301-.957 1.394.004 2.491.436 3.017.732.127.073.248.152.366.233A7.625 7.625 0 0 1 19.625 12a7.605 7.605 0 0 1-2.268 5.425c.344.038.709.063 1.084.061 1.328 0 2.766-.293 3.842-1.198.703-.592 1.291-1.458 1.617-2.757.065-.502.1-1.012.1-1.531 0-6.627-5.371-12-11.999-12\"},\"child\":[]}]})(props);\n};\nexport function SiCloud66 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.985.317C7.0865 2.716 2.9666.4233 2.9666.4233 1.1064 3.486.216 6.1747 0 8.5272h23.9992c-.2165-2.3514-1.1074-5.0365-2.9665-8.0966 0 0-4.119 2.2905-9.0185-.1073zM5.2196 3.5273c.424 0 .7456.0853.8906.1594l-.1666.6417a1.7877 1.7877 0 0 0-.6865-.1334c-.6485 0-1.152.3871-1.152 1.1823 0 .7157.4282 1.1666 1.1572 1.1666.2464 0 .5202-.0537.6813-.1166l.124.6312c-.1505.0747-.4882.1594-.9282.1594-1.248 0-1.8916-.7751-1.8916-1.7927 0-1.2197.879-1.8979 1.9718-1.8979zm6.3144 0c1.1093 0 1.7145.8217 1.7145 1.8083 0 1.1717-.7179 1.8823-1.7739 1.8823-1.072 0-1.6989-.8006-1.6989-1.8187 0-1.071.6917-1.8719 1.7583-1.8719zm7.8091.0323c.6859 0 1.131.1226 1.4792.3823.3754.2757.6114.7149.6114 1.3458 0 .6837-.2517 1.1562-.6 1.4479-.3808.3125-.9594.4604-1.6666.4604-.424 0-.7244-.026-.928-.0521V3.6336c.2996-.048.6913-.074 1.104-.074zM7.003 3.5867h.8198v2.8947H9.258v.6781H7.003zm7.1779 0h.8208V5.643c0 .615.235.9281.6531.9281.4293 0 .6646-.2972.6646-.928V3.5866h.8156v2.003c0 1.103-.5638 1.6282-1.5073 1.6282-.9109 0-1.4468-.4988-1.4468-1.6385zm-2.6718.5823c-.5504 0-.8708.5212-.8708 1.2166 0 .7013.332 1.1958.877 1.1958.55 0 .8646-.5212.8646-1.2166 0-.6432-.3097-1.1958-.8708-1.1958zm7.9206.0104c-.1824 0-.301.0163-.3708.0323v2.3437c.0698.016.1825.0156.2843.0156.7398.0053 1.2219-.3987 1.2219-1.2541.0053-.744-.4336-1.1375-1.1354-1.1375zM.0052 9.7886c-.281 10.276 11.9798 13.8881 11.9798 13.8881l.0292.0063S24.281 20.0688 23.9951 9.7886h-.001zm10.7684 1.2802a5.5849 5.5849 0 0 1 .326.0083v1.4125c-.2117 0-.4367 0-.7364.024-1.6853.1333-2.434.967-2.6457 1.8842h.0375c.3989-.3983.9613-.628 1.7228-.628 1.36 0 2.5083.93 2.5083 2.5603 0 1.5583-1.2358 2.8384-2.9958 2.8384-2.1588 0-3.2196-1.557-3.2196-3.429 0-1.4736.5618-2.706 1.4353-3.4916.8112-.7125 1.8592-1.099 3.1322-1.1593a5.5849 5.5849 0 0 1 .4354-.0198zm6.9269 0a5.5849 5.5849 0 0 1 .327.0083v1.4125c-.2117 0-.4367 0-.7364.024-1.6853.1333-2.434.967-2.6457 1.8842h.0375c.3989-.3983.9613-.628 1.7228-.628 1.36 0 2.5072.93 2.5072 2.5603 0 1.5583-1.2352 2.8384-2.9947 2.8384-2.1593 0-3.2196-1.557-3.2196-3.429 0-1.4736.5618-2.706 1.4353-3.4916.8112-.7125 1.8592-1.099 3.1322-1.1593a5.5849 5.5849 0 0 1 .4344-.0198zm-8.8477 4.0061c-.512 0-.9356.301-1.1228.7-.0496.096-.075.2423-.075.4593.0373.8336.449 1.5823 1.3103 1.5823h.0125c.6614 0 1.0854-.5928 1.0854-1.3896 0-.7253-.3992-1.352-1.2104-1.352zm6.928 0c-.512 0-.9357.301-1.123.7-.0495.096-.075.2423-.075.4593.0374.8336.4491 1.5823 1.3105 1.5823h.0125c.6613 0 1.0853-.5928 1.0853-1.3896 0-.7253-.3992-1.352-1.2103-1.352Z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudbees (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.87.283C3.081.283 0 3.32 0 7.05c0 3.732 3.082 6.767 6.87 6.767h2.429v-3.495h-2.43c-1.83 0-3.319-1.468-3.319-3.272 0-1.804 1.488-3.27 3.32-3.27.734 0 1.377.19 1.928.567l2.51-2.473C10.06.814 8.58.284 6.87.284zm5.152 2.231c-.066-.005-.141.08-.35.252a.457.457 0 0 0-.028.026L9.722 4.674c-.323.315-.29.203-.066.556a3.204 3.204 0 0 1 .532 1.749v9.991c0 3.73 3.096 6.747 6.908 6.747C20.907 23.717 24 20.7 24 16.97c0-3.728-3.093-6.75-6.904-6.75H13.76V6.979c0-1.495-.512-3.002-1.436-4.158-.175-.203-.234-.3-.3-.307zm5.246 11.209c1.762.088 3.168 1.502 3.168 3.247 0 1.802-1.5 3.264-3.342 3.264s-3.335-1.477-3.335-3.28v-3.219h3.509z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudcannon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.686 7.602c.321-1.964-1.203-3.778-3.21-3.778-.91 0-1.733.376-2.325.977a1.132 1.132 0 0 0-1.061-.744c-.63 0-1.141.51-1.141 1.14s.429.909 1.34 1.335a5.884 5.884 0 0 1 .813.46c.275.184.534.388.776.612A6.02 6.02 0 0 1 17.796 12a6.02 6.02 0 0 1-2.694 5.008 6.16 6.16 0 0 1-.813.46c-.911.427-1.34.704-1.34 1.335 0 .63.51 1.141 1.14 1.141.492 0 .9-.312 1.062-.744.592.6 1.414.976 2.325.976 2.025 0 3.527-1.81 3.21-3.778C22.61 15.842 24 14.026 24 12.001c0-2.038-1.382-3.837-3.314-4.399zM9.711 17.468a6.193 6.193 0 0 1-1.589-1.073A6.02 6.02 0 0 1 6.204 12a6.02 6.02 0 0 1 1.918-4.395 6.22 6.22 0 0 1 1.589-1.072c.91-.427 1.34-.704 1.34-1.335s-.51-1.141-1.14-1.141c-.492 0-.9.312-1.062.744a3.257 3.257 0 0 0-2.325-.976c-2.003 0-3.536 1.807-3.21 3.778C1.381 8.164 0 9.962 0 12c0 2.028 1.38 3.836 3.314 4.397-.323 1.954 1.198 3.778 3.21 3.778.91 0 1.733-.375 2.325-.976.162.432.57.744 1.061.744.63 0 1.141-.51 1.141-1.14 0-.631-.429-.909-1.34-1.335zM12 8.443a3.557 3.557 0 1 1 0 7.114 3.557 3.557 0 0 1 0-7.114z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.344 20.251a8.25 8.25 0 1 1 0-16.502 8.21 8.21 0 0 1 5.633 2.234L15.519 8.53a4.686 4.686 0 0 0-3.175-1.239 4.709 4.709 0 1 0 3.284 8.081l2.657 2.346a8.224 8.224 0 0 1-5.941 2.533z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudflare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5088 16.8447c.1475-.5068.0908-.9707-.1553-1.3154-.2246-.3164-.6045-.499-1.0615-.5205l-8.6592-.1123a.1559.1559 0 0 1-.1333-.0713c-.0283-.042-.0351-.0986-.021-.1553.0278-.084.1123-.1484.2036-.1562l8.7359-.1123c1.0351-.0489 2.1601-.8868 2.5537-1.9136l.499-1.3013c.0215-.0561.0293-.1128.0147-.168-.5625-2.5463-2.835-4.4453-5.5499-4.4453-2.5039 0-4.6284 1.6177-5.3876 3.8614-.4927-.3658-1.1187-.5625-1.794-.499-1.2026.119-2.1665 1.083-2.2861 2.2856-.0283.31-.0069.6128.0635.894C1.5683 13.171 0 14.7754 0 16.752c0 .1748.0142.3515.0352.5273.0141.083.0844.1475.1689.1475h15.9814c.0909 0 .1758-.0645.2032-.1553l.12-.4268zm2.7568-5.5634c-.0771 0-.1611 0-.2383.0112-.0566 0-.1054.0415-.127.0976l-.3378 1.1744c-.1475.5068-.0918.9707.1543 1.3164.2256.3164.6055.498 1.0625.5195l1.8437.1133c.0557 0 .1055.0263.1329.0703.0283.043.0351.1074.0214.1562-.0283.084-.1132.1485-.204.1553l-1.921.1123c-1.041.0488-2.1582.8867-2.5527 1.914l-.1406.3585c-.0283.0713.0215.1416.0986.1416h6.5977c.0771 0 .1474-.0489.169-.126.1122-.4082.1757-.837.1757-1.2803 0-2.6025-2.125-4.727-4.7344-4.727\"},\"child\":[]}]})(props);\n};\nexport function SiCloudflarepages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.715 14.32H5.442l-.64-1.203L13.673 0l1.397.579-1.752 9.112h5.24l.648 1.192L10.719 24l-1.412-.54ZM4.091 5.448a.5787.5787 0 1 1 0-1.1574.5787.5787 0 0 1 0 1.1574zm1.543 0a.5787.5787 0 1 1 0-1.1574.5787.5787 0 0 1 0 1.1574zm1.544 0a.5787.5787 0 1 1 0-1.1574.5787.5787 0 0 1 0 1.1574zm8.657-2.7h5.424l.772.771v16.975l-.772.772h-7.392l.374-.579h6.779l.432-.432V3.758l-.432-.432h-4.676l-.552 2.85h-.59l.529-2.877.108-.552ZM2.74 21.265l-.772-.772V3.518l.772-.771h7.677l-.386.579H2.98l-.432.432v16.496l.432.432h5.586l-.092.579zm1.157-1.93h3.28l-.116.58h-3.55l-.192-.193v-3.473l.578 1.158zm13.117 0 .579.58H14.7l.385-.58z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudflareworkers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.213.063 8.879 12.136-8.67 11.739h2.476l8.665-11.735-8.89-12.14Zm4.728 0 9.02 11.992-9.018 11.883h2.496L24 12.656v-1.199L15.434.063ZM7.178 2.02.01 11.398l-.01 1.2 7.203 9.644 1.238-1.676-6.396-8.556 6.361-8.313Z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudfoundry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.854 13.537c-.048 1.79.074 3.862.149 4.917.96.136 1.633.456 1.633.83 0 .497-1.193 1.07-2.665 1.07s-2.665-.573-2.665-1.07c0-.374.673-.694 1.633-.83.075-1.055.197-3.127.15-4.917-.044-1.613-.779-3.091-1.676-3.821-.725-.59-1.174-1.427-1.166-2.354.016-1.765 1.683-3.186 3.724-3.186s3.708 1.42 3.723 3.186c.008.927-.44 1.763-1.165 2.354-.897.73-1.632 2.208-1.675 3.821zm6.214 6.596c.287-.115.612-.177.951-.19-.007-.24-.166-.672-.303-.877-.56-.1-1.276-.313-1.658-.682a.48.48 0 0 1-.186-.41c.026-.146.133-.253.278-.329a8.115 8.115 0 0 0-1.08-.515 4.6 4.6 0 0 1-1.697-.124c-.303-.09-.764-.24-.82-.549-.16-.03-.54-.083-.766-.112a4.048 4.048 0 0 0-.07.31.815.815 0 0 0 .56.956c1 .291 1.756.77 1.974 1.359.44 1.19-1.413 2.353-4.231 2.353-2.82 0-4.673-1.163-4.233-2.353.213-.574.94-1.044 1.903-1.337a.863.863 0 0 0 .589-1.005l-.06-.283c-.291.03-.779.101-1.031.148-.019.313-.476.466-.76.564a4.65 4.65 0 0 1-1.708.147 7.82 7.82 0 0 0-1.052.535c.544.23.316.736-.09.97-.407.253-.842.409-1.38.51-.051.088-.111.298-.163.438-.016.136-.063.367-.053.459.645.02 1.268.152 1.62.605.281.508-.024.976-.51 1.364.392.316.986.673 1.45.868a4.82 4.82 0 0 1 2.715-.269c.718.16 1.506.581 1.742 1.289.635.042 1.895.04 2.528-.041.182-.731.907-1.147 1.606-1.326a4.803 4.803 0 0 1 2.712.193c.356-.18 1.03-.602 1.306-.9-.474-.358-.873-.794-.63-1.325.085-.19.301-.33.547-.44zm-9.54-5.848s.418-1.586-1.4-3.632A4.99 4.99 0 0 1 6.88 7.346a5.05 5.05 0 0 1 5.047-5.04c2.822-.065 5.168 2.218 5.164 5.04a4.984 4.984 0 0 1-1.248 3.306c-1.614 1.616-1.4 3.633-1.4 3.633a7.352 7.352 0 0 0 4.956-6.898c.035-4.021-3.39-7.47-7.414-7.385-4.027-.083-7.447 3.364-7.413 7.385a7.352 7.352 0 0 0 4.956 6.898z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudinary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 14.8598c0 2.1729-1.3757 3.974-3.5903 4.6996l-.0995.0318V17.989c1.3777-.5805 2.1869-1.7275 2.1869-3.1291-.0072-2-1.6087-3.6288-3.6082-3.6699h-.5964l-.1432-.5686c-.7025-2.8996-3.2886-4.9489-6.2721-4.97a6.3915 6.3915 0 0 0-5.811 3.664l-.1828.3757-.4175.0437a4.4311 4.4311 0 0 0-3.3052 2.088c-1.2803 2.0856-.6274 4.8143 1.4583 6.0947v1.6897h-.01l-.149-.0675a5.9402 5.9402 0 0 1-3.3658-4.3494c-.5787-3.2291 1.57-6.3161 4.7991-6.8948a7.8766 7.8766 0 0 1 6.9839-4.149c3.4724.025 6.535 2.28 7.5901 5.5883 2.5789.3366 4.5138 2.5245 4.5327 5.1251zm-15.3176-1.322h.5647a.0656.0656 0 0 0 .0457-.1113L7.084 11.2158l-.0007-.0007a.0656.0656 0 0 0-.0927.0007L4.78 13.4265a.0656.0656 0 0 0 .0477.1113h.5566a.0656.0656 0 0 1 .0657.0656v5.0574c0 .6588.534 1.1928 1.1928 1.1928H9.247a.0656.0656 0 0 0 .0457-.1113l-.33-.33a1.1928 1.1928 0 0 1-.348-.839v-4.97a.0676.0676 0 0 1 .0676-.0655zm9.769 2.5466h.5667a.0655.0655 0 0 0 .0457-.1133l-2.2107-2.2087-.0015-.0015a.0636.0636 0 0 0-.0899.0015L14.551 15.971a.0657.0657 0 0 0 .0457.1133h.5567a.0656.0656 0 0 1 .0656.0656v2.5108c0 .6588.534 1.1928 1.1928 1.1928h2.6063a.0655.0655 0 0 0 .0457-.1113l-.33-.33a1.1928 1.1928 0 0 1-.348-.839V16.15a.0656.0656 0 0 1 .0657-.0656zm-4.8844-1.2743h.5646a.0656.0656 0 0 0 .0477-.1114l-2.2107-2.2027-.0006-.0006a.0656.0656 0 0 0-.0928.0006l-2.2087 2.2068a.0656.0656 0 0 0 .0457.1113h.5626a.0676.0676 0 0 1 .0657.0676v3.7791c0 .6588.534 1.1928 1.1928 1.1928h2.5983a.0656.0656 0 0 0 .0477-.1113l-.332-.33a1.193 1.193 0 0 1-.346-.839v-3.6956c0-.0366.0291-.0665.0657-.0676z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.016.86c-2.676-.004-5.353.182-6.002.562C4.714 2.182.002 10.46 0 11.984c-.002 1.525 4.69 9.813 5.986 10.577 1.297.764 10.701.778 12 .017 1.3-.76 6.012-9.038 6.014-10.562.002-1.525-4.69-9.813-5.986-10.577-.649-.382-3.323-.576-5.998-.58zm-.268 4.363h2.38c.85 0 1.534.682 1.534 1.53V9.23a1.53 1.53 0 0 1-1.533 1.533h-2.381c-.127 0-.25-.018-.367-.047l.002.047v2.476l-.002.047c.117-.029.24-.047.367-.047h2.38a1.53 1.53 0 0 1 1.534 1.533v2.475c0 .849-.684 1.531-1.533 1.531h-2.381a1.529 1.529 0 0 1-1.533-1.53V14.77l.002-.046a1.538 1.538 0 0 1-.365.045H7.469a1.527 1.527 0 0 1-1.532-1.532v-2.476c0-.849.683-1.532 1.532-1.532h2.383c.126 0 .248.017.365.045l-.002-.046V6.754c0-.849.684-1.531 1.533-1.531z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudsmith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.667v2.667L13.333 24h-2.666L0 13.334v-2.667L10.667 0h2.666L24 10.667Zm-12 6.869a5.535 5.535 0 1 0 0-11.07 5.535 5.535 0 0 0 0 11.07Z\"},\"child\":[]}]})(props);\n};\nexport function SiCloudways (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.795 5.522a4.938 4.938 0 0 0-2.485.717.434.434 0 0 1-.236.066c-2.717-.002-5.434-.002-8.151-.002a.594.594 0 0 0-.594.45.573.573 0 0 0 .284.66c.112.056.25.082.377.082 2.25.005 4.499.003 6.749.004.044 0 .09.003.152.006l-.09.13a4.942 4.942 0 0 0-.674 1.302c-.03.09-.075.113-.166.113-2.545-.003-4.844-.003-7.193-.002a.602.602 0 0 0-.581.456.584.584 0 0 0 .312.668.875.875 0 0 0 .35.069c1.924.004 3.848.003 5.771.003h.123a.22.22 0 0 1-.074.085c-.5.367-.908.819-1.218 1.356-.046.08-.095.109-.188.109a5042.02 5042.02 0 0 0-7.687-.002.598.598 0 0 0-.566.706c.06.3.3.49.624.49h7.304a5.091 5.091 0 0 0-.074 1.567H7.27c-.233 0-.357.117-.364.349a7.604 7.604 0 0 0 0 .474c.006.236.132.354.37.355.269.001.538.003.807-.001.075-.002.112.023.142.092.186.428.439.816.75 1.165.082.092.168.18.274.292h-5.01a.602.602 0 0 0-.574.48.585.585 0 0 0 .35.664.841.841 0 0 0 .305.051c5.458.004 10.345.01 15.371-.018a4.032 4.032 0 0 0 1.121-.172c2.333-.688 3.704-3.159 3.006-5.566-.434-1.496-1.413-2.504-2.888-3.02-.067-.024-.095-.054-.108-.124a4.072 4.072 0 0 0-.098-.39c-.645-2.184-2.653-3.712-4.929-3.664zM.758 14.556a.31.31 0 0 0-.323.315c-.004.158-.002.316-.002.474.001.274.119.388.396.388h4.163c.203 0 .351-.125.357-.306a9.126 9.126 0 0 0 0-.544c-.006-.192-.14-.327-.327-.327H.758z\"},\"child\":[]}]})(props);\n};\nexport function SiClubforce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.4 0C.624 0 0 .624 0 1.4v21.2c0 .776.624 1.4 1.4 1.4h21.2c.776 0 1.4-.624 1.4-1.4V1.4c0-.776-.624-1.4-1.4-1.4Zm4.778 5.5h9.61l-2.83 2.112H8.331v3.472L6.18 12.72V5.5Zm11.644 1.317v7.415L11.96 18.5l-4.786-3.629 1.675-1.317 3.111 2.354 3.19-2.392-3.23-2.234 1.834-1.355 1.955 1.355v-2.87Z\"},\"child\":[]}]})(props);\n};\nexport function SiClubhouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 9.543c0 .32-.23.763-.337.976-.39.833-1.03 2.112-1.03 3.585 0 3.213-1.135 4.811-2.023 5.628a5.706 5.706 0 0 1-3.852 1.527 6.144 6.144 0 0 1-3.32-.976c-1.366-.905-2.219-2.326-3.088-3.745-.692-1.153-1.171-2.06-1.918-3.816-.421-1.018-.813-2.012-1.15-3.094-.16-.514-.142-.905.053-1.153.195-.23.462-.337.78-.355.55-.018.764.373 1.083 1.384.195.639.586 1.563.816 2.077.302.621.728 1.455.923 1.74.16.25.302.32.461.32.284 0 .497-.16.497-.443 0-.16-.16-.426-.248-.586-.16-.302-.497-.905-.728-1.42a32.775 32.775 0 0 1-.763-1.917c-.142-.373-.301-.905-.461-1.437-.248-.816-.373-1.313-.373-1.687 0-.568.426-.94 1.065-.94.461 0 .763.23.958 1.064.16.763.444 2.006.852 2.982.266.639.656 1.492.887 1.918.142.248.301.461.301.55 0 .124-.23.32-.426.585-.124.16-.177.267-.177.39 0 .107.071.214.177.356.107.142.213.284.338.284.088 0 .142-.036.195-.107a6.12 6.12 0 0 1 1.847-1.563c.816-.461 1.651-.692 2.308-.834.319-.07.408-.142.408-.32 0-.212-.16-.336-.373-.354-.16-.018-.301 0-.55.018-.177.018-.266-.071-.372-.302-.32-.674-.94-1.811-1.313-3.266a13.95 13.95 0 0 1-.39-2.13c-.054-.391.017-.533.212-.71.249-.213.692-.302 1.03-.213.407.106.62.426.833 1.67.107.585.284 1.33.497 1.97.266.816.603 1.492 1.118 2.397.284.497.638 1.011 1.011 1.51-.071.213-.195.354-.603.692-.408.337-.816.692-1.189 1.348-.266.479-.39 1.011-.39 1.366 0 .337.07.408.284.408.372 0 .674-.07.692-.23.088-.64.195-1.047.55-1.528.212-.266.585-.603.887-.87.567-.46.763-.727.958-1.383.088-.302.195-.586.337-.852.337-.62.94-1.33 1.882-1.33.302 0 .55.088.71.337a.966.966 0 0 1 .124.479zM12.608 7.265c.16.658.355 1.226.55 1.723.23.605.497 1.12.87 1.811.177.337.265.337.691.107a9.14 9.14 0 0 1 1.207-.515c-.639-1.384-1.171-2.539-1.437-3.514a29.883 29.883 0 0 1-.39-1.918c-.054-.497-.107-.923-.231-1.384-.142-.568-.338-.834-.888-.834-.514 0-1.135.266-1.135.94 0 .444.124 1.1.248 1.631.213.516.249.835.515 1.953zm-7.484 7.147c-.43.116-2.276.784-2.721.957-.503.195-.857.372-.605 1.122.205.607.553.636.874.516.45-.166 2.442-1.21 2.818-1.442.34-.21.45-.37.29-.769-.145-.363-.354-.465-.656-.384zm-1.276-3.074c.252-.008.448-.09.508-.526.047-.335-.006-.51-.39-.629-.371-.114-2.702-.494-3.205-.542-.434-.042-.702 0-.753.687-.049.64.13.836.572.88.508.05 2.733.144 3.268.13zm-2.63-6.082c.474.283 2.293 1.385 2.906 1.579.306.096.468.01.64-.331s.218-.477-.111-.742c-.34-.274-2.123-1.661-2.628-1.924-.435-.226-.729-.139-.993.361-.299.566-.244.798.185 1.057z\"},\"child\":[]}]})(props);\n};\nexport function SiClyp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9995 17.9583a1.137 1.137 0 01-1.137-1.136V7.2347a1.138 1.138 0 012.275 0v9.5896c0 .626-.51 1.134-1.138 1.134m7.4397 2.4398a1.137 1.137 0 01-1.14-1.1379V4.7958a1.138 1.138 0 012.276 0v14.4654c0 .627-.51 1.136-1.138 1.136M15.7193 24a1.137 1.137 0 01-1.138-1.136V1.138a1.138 1.138 0 012.276 0v21.726c0 .627-.509 1.136-1.138 1.136m-7.4366-3.1599a1.137 1.137 0 01-1.138-1.136V4.2979a1.138 1.138 0 012.276 0v15.4064c0 .628-.51 1.137-1.138 1.137m-3.7199-4.9889a1.137 1.137 0 01-1.138-1.135V9.2857a1.138 1.138 0 012.276 0v5.4318c0 .626-.51 1.135-1.138 1.135z\"},\"child\":[]}]})(props);\n};\nexport function SiCmake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.769.066L.067 23.206l12.76-10.843zM23.207 23.934L7.471 17.587 0 23.934zM24 23.736L12.298.463l1.719 19.24zM12.893 12.959l-5.025 4.298 5.62 2.248z\"},\"child\":[]}]})(props);\n};\nexport function SiCncf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H8.004Zm3.431 3.431h4.544l.029.023 4.544 4.544h3.03l-4.572-4.567h9.569v9.563l-.789-.782-3.784-3.79v3.03l2.271 2.272 2.272 2.272.029.03v4.543h-4.55l-.023-.023-2.272-2.278-2.272-2.272H8.427l3.785 3.79.782.783H3.43v-9.563l4.573 4.567v-3.031l-4.55-4.544-.023-.023Z\"},\"child\":[]}]})(props);\n};\nexport function SiCnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.89 9.262C.664 9.262 0 9.8 0 10.865v2.268c0 1.066.664 1.604 1.891 1.604h3.583v-2.353h-.293c-.13 1.365-.731 1.941-1.914 1.941h-.74c-.576 0-.856-.287-.856-.854v-2.944c0-.567.28-.854.856-.854h.74c1.2 0 1.791.544 1.914 1.867h.293V9.262H1.89Zm7.522 0v.275c1.274.127 1.856.668 1.856 2.102v1.716L7.905 9.262H6.229v5.475H8.55v-.275c-1.307-.143-1.886-.678-1.886-2.121v-1.963l3.582 4.359h1.457V9.262H9.412Zm3.06 0v5.475h5.475v-2.352h-.293c-.13 1.369-.731 1.947-1.914 1.947h-1.647v-2.233h.558c.933 0 1.328.415 1.421 1.316h.298v-3.009h-.298c-.094.896-.49 1.314-1.421 1.314h-.558V9.667h1.646c1.201 0 1.791.545 1.915 1.873h.293V9.262h-5.475Zm6.053 0v2.278h.294c.126-1.253.65-1.835 1.633-1.941v3.85c0 .669-.236.937-1.099.993v.295h3.82v-.295c-.864-.056-1.1-.324-1.1-.993v-3.85c.983.106 1.507.688 1.634 1.941H24V9.262h-5.475Z\"},\"child\":[]}]})(props);\n};\nexport function SiCnn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9962 15.514c0 2.0638-2.6676 3.0547-4.0789.6576-.1012-.173-2.3252-4.0032-2.3252-4.0032v3.3457c0 2.0637-2.6663 3.0546-4.0776.6575-.1025-.173-2.3253-4.0032-2.3253-4.0032v3.1547c0 1.4318-.8498 2.2073-2.1791 2.2073H5.5299a5.5299 5.5299 0 010-11.0598h1.7946v1.328H5.5299a4.2019 4.2019 0 100 8.4038h3.4494a.8973.8973 0 00.8794-.878V8.524a.2692.2692 0 01.1935-.273c.141-.0384.2897.0487.3987.2333l2.1522 3.7084c1.251 2.1573 2.0728 3.5738 2.083 3.5892.2807.4742.6986.5576.9973.4755a.7973.7973 0 00.582-.787v-6.945a.2705.2705 0 01.191-.2744c.1397-.0384.287.0487.3947.2333l1.9946 3.4366 2.242 3.8648c.2191.3717.5242.5038.7896.5038a.7691.7691 0 00.2063-.0282.7986.7986 0 00.591-.791V6.4707H24zM8.0026 13.9695V8.4857c0-2.0638 2.6675-3.0546 4.0788-.6563.1025.173 2.3253 4.002 2.3253 4.002V8.4856c0-2.0638 2.6662-3.0546 4.0775-.6563.1026.173 2.3253 4.002 2.3253 4.002V6.4705H22.14v8.9999a.2705.2705 0 01-.1935.2743c-.141.0384-.2897-.0487-.3987-.2333a1360.4277 1360.4277 0 01-2.2406-3.8622l-1.9946-3.434c-.2794-.4744-.696-.5577-.9921-.477a.7986.7986 0 00-.5833.7858v6.9464a.2718.2718 0 01-.1935.2743c-.1423.0384-.291-.0487-.3987-.2333-.0192-.032-1.069-1.8407-2.083-3.5892a6211.7971 6211.7971 0 00-2.1535-3.711c-.2794-.4755-.6973-.5575-.996-.4768a.7999.7999 0 00-.5845.7858v6.8002a.3717.3717 0 01-.3487.3474h-3.452a3.6712 3.6712 0 010-7.3424H7.322v1.328H5.5427a2.3432 2.3432 0 100 4.6864H7.636a.364.364 0 00.3666-.3705Z\"},\"child\":[]}]})(props);\n};\nexport function SiCocacola (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.813 8.814s-.45.18-.973.756c-.524.577-.828 1.225-.603 1.397.087.066.287.079.65-.25a2.864 2.864 0 0 0 .766-1.063c.234-.57.16-.833.16-.84m2.863 1.038c-.581-.299-1.006-.664-1.448-.89-.422-.216-.695-.307-1.036-.261a1.057 1.057 0 0 0-.14.035s.176.6-.523 1.607c-.708 1.022-1.35 1.015-1.533.734-.191-.296.056-.9.468-1.437.432-.562 1.19-1.028 1.19-1.028s-.241-.148-.835.19c-.58.326-1.577 1.107-2.502 2.423-.926 1.316-1.11 2.04-1.242 2.61-.132.57-.012 1.18.62 1.18s1.368-.964 1.576-1.299c.386-.624.637-1.581.112-1.45-.259.065-.468.351-.6.627a2.683 2.683 0 0 0-.19.554 2.185 2.185 0 0 0-.513.298 3.788 3.788 0 0 0-.486.43s.002-.456.365-1.194c.364-.737 1.03-1.074 1.408-1.106.34-.027.783.262.408 1.327-.375 1.065-1.483 2.36-2.646 2.376-1.073.015-1.776-1.355-.282-3.745C13.501 9.19 15.441 8.38 16.07 8.29c.63-.09.835.187.835.187a2.709 2.709 0 0 1 1.197-.197c.77.052 1.364.596 2.15.979-.205.195-.4.4-.575.592m3.454-.89c-.533.342-1.27.652-1.979.586-.179.185-.371.4-.563.634 1.228.243 2.305-.519 2.877-1.167A3.82 3.82 0 0 0 24 8.248a4.792 4.792 0 0 1-.869.714m-1.636 3.462a.268.268 0 0 0 .023-.051.124.124 0 0 0-.113-.108c-.117-.005-.277.017-.695.48a6.303 6.303 0 0 0-.89 1.263c-.24.438-.337.764-.2.848a.199.199 0 0 0 .146.015c.093-.022.199-.11.36-.295.075-.088.158-.212.258-.349.277-.376.973-1.563 1.111-1.803m-4.349.504c.07-.182.159-.541-.026-.682-.199-.15-.705.201-.708.561-.003.369.357.535.443.559.05.013.066.01.09-.029a3.284 3.284 0 0 0 .201-.409m-.383.67a1.531 1.531 0 0 1-.348-.222 1.116 1.116 0 0 1-.26-.317c-.008-.012-.015-.003-.023.008-.007.01-.039.039-.309.434-.27.396-.684 1.216-.31 1.355.241.09.641-.331.86-.61a5.21 5.21 0 0 0 .402-.614c.012-.023 0-.029-.012-.034m4.258.947c-.102.163-.218.476.117.281.41-.236.994-1.123.994-1.123h.265a8.88 8.88 0 0 1-.803 1.054c-.415.46-.922.879-1.28.837-.416-.048-.286-.596-.286-.596s-.596.635-1.01.59c-.557-.062-.387-.751-.387-.751s-.63.774-1.06.75c-.673-.04-.504-.859-.316-1.436.1-.308.193-.55.193-.55s-.067.017-.21.038c-.076.011-.212.019-.212.019s-.28.495-.505.792c-.224.297-1.178 1.322-1.74 1.117-.518-.19-.346-.984-.044-1.615.44-.92 1.68-2.243 2.396-2.068.741.18.017 1.532.017 1.532s0 .005.007.009c.015.005.054.01.143-.008a1.605 1.605 0 0 0 .271-.08s.746-1.561 1.569-2.583c.823-1.02 2.465-2.78 3.11-2.354.156.105.086.465-.126.902a2.891 2.891 0 0 1-.291.078c.142-.258.236-.475.264-.627.097-.528-1.135.585-2.015 1.78a16.594 16.594 0 0 0-1.409 2.28 3.86 3.86 0 0 0 .454-.324 13.002 13.002 0 0 0 1.118-1.043 12.169 12.169 0 0 0 .951-1.098 2.58 2.58 0 0 0 .28-.029 12.054 12.054 0 0 1-1.05 1.24c-.35.355-.73.737-1.061 1.015a8.84 8.84 0 0 1-.931.691s-.77 1.553-.351 1.652c.246.06.732-.69.732-.69s.635-.967 1.017-1.404c.522-.593.97-.936 1.42-.942.261-.005.415.273.415.273l.123-.19h.757s-1.414 2.398-1.527 2.579m2.111-5.58c-.533.341-1.27.651-1.979.585-.18.185-.371.4-.564.634 1.229.243 2.305-.518 2.878-1.167A3.82 3.82 0 0 0 24 8.248a4.792 4.792 0 0 1-.869.714m-10.63 1.177h-.72l-.407.658h.72zm-3.41 2.277c.307-.42 1.152-1.891 1.152-1.891a.124.124 0 0 0-.112-.108c-.117-.006-.312.034-.7.519-.387.485-.688.87-.907 1.272-.24.438-.346.747-.207.831a.205.205 0 0 0 .144.015c.09-.022.208-.113.369-.298a5.57 5.57 0 0 0 .262-.34m-3.863-1.99c-.199-.15-.705.201-.708.56-.003.369.456.482.515.484a.09.09 0 0 0 .05-.01.06.06 0 0 0 .024-.027 3.483 3.483 0 0 0 .146-.325c.07-.183.158-.541-.027-.682m-.3 1.27a1.678 1.678 0 0 1-.39-.18.812.812 0 0 1-.279-.309c-.007-.012-.015-.003-.022.008-.007.01-.047.061-.318.458-.27.398-.672 1.21-.296 1.35.24.09.644-.334.864-.612a7.24 7.24 0 0 0 .455-.681c.009-.024 0-.03-.014-.034m5.88.244h.263s-1.321 1.912-2.068 1.823c-.416-.049-.293-.563-.293-.563s-.585.685-1.123.546c-.487-.125-.172-.936-.172-.936-.056.022-1.111 1.211-1.853.926-.776-.3-.373-1.296-.225-1.595.125-.253.263-.499.263-.499s-.119.034-.195.051l-.186.04s-.367.596-.591.894c-.225.297-1.178 1.32-1.74 1.117-.562-.204-.423-.99-.107-1.615.512-1.012 1.726-2.256 2.458-2.068.739.189.127 1.388.127 1.388s.147.019.5-.222c.507-.346 1.176-1.277 1.901-1.167.342.051.66.4.225 1.064-.139.213-.372.403-.55.215-.111-.118-.014-.33.103-.477a.457.457 0 0 1 .39-.179s.12-.273-.185-.269c-.247.005-.871.58-1.223 1.16-.323.533-.813 1.441-.322 1.639.451.182 1.309-.836 1.706-1.37.397-.533 1.302-1.742 2.062-1.79.261-.017.417.221.417.221l.088-.139h.759s-1.43 2.387-1.542 2.567c-.088.141-.204.46.117.281.322-.178.996-1.043.996-1.043m-.414 3.824a3.144 3.144 0 0 0-1.908-.557 1.17 1.17 0 0 0-.93.504c-.29-.505-.862-.815-1.747-.808-1.43.016-2.849.676-3.972.675-1.077 0-1.863-.677-1.837-1.88.047-2.109 1.83-4.009 3.16-4.864.767-.49 1.409-.637 1.828-.59.306.034.674.388.442.909-.341.761-.812.699-.795.335.01-.237.168-.386.286-.469a.582.582 0 0 1 .278-.068c.068-.057.117-.474-.429-.337-.546.137-1.21.676-1.84 1.371-.63.696-1.61 2.011-1.852 3.392-.113.64-.039 1.808 1.48 1.795 1.287-.01 3.185-.859 4.929-.841a3.34 3.34 0 0 1 1.725.472c.451.278.992.684 1.184.961\"},\"child\":[]}]})(props);\n};\nexport function SiCockpit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.383 0 0 5.382 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 1.799A10.19 10.19 0 0 1 22.207 12 10.19 10.19 0 0 1 12 22.201 10.186 10.186 0 0 1 1.799 12 10.186 10.186 0 0 1 12 1.799zm4.016 5.285c-.49-.018-1.232.368-1.899 1.031l-1.44 1.43-4.31-1.447-.842.867 3.252 2.47-.728.723a4.747 4.747 0 0 0-.639.787L7.451 12.8l-.476.484 1.947 1.444 1.424 1.943.48-.48-.144-1.98c.246-.16.497-.361.74-.603l.765-.76 2.495 3.274.869-.84-1.455-4.332 1.394-1.385c.89-.885 1.298-1.92.918-2.322a.547.547 0 0 0-.392-.158z\"},\"child\":[]}]})(props);\n};\nexport function SiCockroachlabs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.645 16.155a13.013 13.013 0 0 0-4.479-13.287 11.617 11.617 0 0 1 5.815-1.546c.774 0 1.545.075 2.304.226l.32-1.282A13.092 13.092 0 0 0 18.98 0 12.93 12.93 0 0 0 12 2.03 12.933 12.933 0 0 0 5.021 0C4.139 0 3.26.089 2.396.266l.319 1.282a11.83 11.83 0 0 1 2.306-.226 11.64 11.64 0 0 1 5.817 1.544 13.01 13.01 0 0 0 .792 20.877l.375.257.373-.257c2.624-1.801 4.5-4.5 5.27-7.588zm-6.305 5.7A11.687 11.687 0 0 1 7.825 9.519a13.08 13.08 0 0 0 2.457 2.977 3.202 3.202 0 0 1 1.058 2.383zm.661-9.657a11.717 11.717 0 0 1-2.343-2.315 3.23 3.23 0 0 1 0-3.912 11.67 11.67 0 0 1 2.347-2.333c.9.671 1.697 1.468 2.37 2.366a3.197 3.197 0 0 1 0 3.832 11.816 11.816 0 0 1-2.374 2.362zm.659 9.657v-6.976a3.202 3.202 0 0 1 1.06-2.383 13.026 13.026 0 0 0 2.455-2.977 11.694 11.694 0 0 1-3.515 12.336Z\"},\"child\":[]}]})(props);\n};\nexport function SiCocoapods (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.812 17.176c-2.968 0-4.956-2.308-4.956-5.176 0-2.705 1.776-5.176 4.91-5.176 2.407 0 3.856 1.445 4.207 3.357h3.95C16.479 6.427 13.51 3.42 8.718 3.42 3.131 3.42 0 7.523 0 12c0 4.57 3.295 8.58 8.766 8.58 4.58 0 7.549-2.822 8.18-6.272h-4.02c-.467 1.609-1.916 2.868-4.114 2.868zM24 12.068l-3.466 8.055-2.38-1.022 2.992-7.055-3.01-7.096 2.433-1.042Z\"},\"child\":[]}]})(props);\n};\nexport function SiCocos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.365 0h.002zc-.007.004-.002.066.018.143.19.787.395 1.67.395 1.7 0 .023-.242.247-.538.5-.296.253-.628.552-.735.663l-.175.182h-.247c-1.53-.004-3.06.014-4.588-.01-.578-.01-.855.407-.855.85.007 6.384.007 12.766.007 19.15 0 .542.283.822.828.822h15.06c.542 0 .825-.28.825-.825V4.025c0-.56-.276-.838-.83-.838-1.632 0-3.264.002-4.896-.006h-.208l-.546-.532c-.94-.915-1.62-1.455-2.762-2.18A17.17 17.17 0 0 0 10.366 0zm.955 1.35c.03-.004.232.125.47.3a16.989 16.989 0 0 1 2.497 2.31h.002c.465.52.903 1.057 1.268 1.6.357.53.935 1.546.935 1.64 0 .03.017.052.037.052.02 0 .083-.168.14-.374.127-.45.126-.448.388.403.38 1.238.51 2.106.51 3.38 0 .992-.047 1.402-.23 2.12-.053.205-.066.318-.035.318.026 0 .184-.038.352-.086.167-.048.31-.08.318-.073.028.027-.394.753-.692 1.19-1.246 1.828-2.718 2.91-4.358 3.206-.917.165-1.763.1-2.61-.198-.45-.158-.813-.348-1.398-.733-1.25-.82-2.206-2.292-2.68-4.12-.214-.82-.378-2.076-.378-2.895V9l.277.415c.403.603.89 1.217.93 1.172.006-.01-.104-.224-.247-.478-.302-.536-.303-.53-.08-1.39.362-1.406 1.112-2.862 2.108-4.098.143-.178.395-.43.614-.663.603-.644 1.29-1.32 1.342-1.27.01.01-.01.126-.045.257-.134.492-.33 1.332-.313 1.348.004.004.126-.216.197-.336.072-.124.096-.15.203-.344.21-.38.39-.7.395-.706.006-.007.132.112.28.264.222.225.27.256.25.167-.014-.06-.123-.522-.245-1.028-.12-.506-.215-.938-.207-.96 0-.002.002-.003.004-.003zm4.08 2.59h3.71c.372 0 .49.114.49.482v13.9c0 .36-.12.457-.558.457H6.42c-.52 0-1.04.002-1.56 0-.33-.003-.453-.126-.453-.448V4.41c0-.343.12-.467.46-.467 1.17-.002 2.342 0 3.513 0 .048 0 .097.005.116.006h.1l-.007.006-.138.165c-.948 1.143-1.77 2.63-2.157 3.912-.053.176-.102.32-.11.32-.006 0-.207-.29-.443-.64-.237-.352-.448-.652-.47-.665-.074-.046-.01 3.277.075 3.897.305 2.222 1.053 3.926 2.292 5.214.62.646 1.705 1.31 2.633 1.612 1.36.444 2.87.33 4.27-.32 1.37-.638 2.723-1.993 3.706-3.713.366-.642.934-1.742.91-1.766-.01-.01-.255.05-.542.132a5.99 5.99 0 0 1-.533.14 1.427 1.427 0 0 1 .033-.292c.09-.534.103-1.682.027-2.396-.134-1.262-.344-2.09-.93-3.663-.467-1.258-.473-1.274-.5-1.274-.014 0-.092.238-.173.528-.082.29-.154.526-.16.526a.831.831 0 0 1-.114-.165 21.09 21.09 0 0 0-.972-1.34l-.174-.21c.083-.005.158-.013.234-.013zm-3.6.71-.032.234c-.027.2-.205.86-.31 1.157-.048.132.26-.17.433-.426.08-.115.152-.21.165-.21.014 0 .17.147.35.327.18.18.333.32.34.313.03-.03-.21-.515-.377-.76a3.624 3.624 0 0 0-.37-.445zM9.32 6.584l-.132.125c-.178.17-.485.64-.63.96-.15.332-.33.85-.328.94 0 .04.072-.06.158-.222.155-.29.603-.872.67-.872.02 0 .06.053.09.12.06.132.36.552.378.53a1.875 1.875 0 0 0-.045-.32c-.03-.17-.07-.465-.085-.66a6.93 6.93 0 0 0-.053-.476zm5.453.008c-.02 0-.038.113-.04.252 0 .24-.097 1.002-.157 1.242-.026.107-.023.107.088-.02.063-.074.166-.22.23-.33.065-.11.123-.207.132-.217.054-.063.71.816.786 1.052.017.052.04.083.053.07.03-.03-.188-.687-.323-.975-.197-.42-.664-1.074-.768-1.074zm-2.63 1.1h.002zc-.04.006-.274.505-.348.746-.083.27-.182.978-.18 1.296v.307l.108-.41c.095-.368.25-.758.365-.926.035-.05.087-.023.274.145.127.114.267.227.31.25.085.045.11 0 .042-.072-.057-.06-.392-.855-.47-1.117-.035-.12-.08-.217-.1-.22zM9.56 10.917c-.725.02-1.372.593-1.573 1.445-.088.374-.082.66.022 1.062.2.792.655 1.322 1.36 1.59.098.038.3.058.55.05.34-.007.433-.027.65-.138.51-.258.868-.8.965-1.463.043-.298.04-.41-.022-.72-.187-.95-.812-1.636-1.64-1.8-.104-.02-.21-.03-.313-.026zm5.087 0c-.03 0-.06.002-.09.004-.847.058-1.65.858-1.808 1.882-.143.93.33 1.89 1.073 2.183.344.135.928.112 1.277-.05.814-.38 1.355-1.432 1.222-2.373-.12-.854-.656-1.474-1.402-1.62a1.393 1.393 0 0 0-.273-.024zm-.515 2.06c.38.012.612.473.366.792-.096.12-.338.2-.51.16-.51-.11-.456-.88.066-.948a.51.51 0 0 1 .078-.004zm-3.968.01c.2 0 .24.02.354.146.192.215.165.6-.05.714-.19.1-.332.12-.467.065-.33-.14-.424-.52-.192-.78.113-.126.155-.144.356-.144zM8.65 19.543c.25 0 .498.002.746.008.49.01.683.22.683.712v1.162h-.003v1.14c-.003.416-.192.633-.608.646a25.8 25.8 0 0 1-1.622 0c-.416-.015-.603-.228-.608-.648-.005-.775-.006-1.55 0-2.324.004-.466.206-.676.666-.687.25-.005.497-.008.745-.008zm6.23 0c.29.002.577.01.865.026.348.02.53.23.534.58.013.817.016 1.636.004 2.454-.005.39-.21.59-.608.604-.54.02-1.08.02-1.62 0-.428-.015-.606-.23-.61-.666v-1.16h-.003c0-.39-.004-.775 0-1.164.004-.418.166-.636.573-.656.288-.013.576-.02.865-.017zm-2.744.002c.29 0 .583.003.88.003v.632h-1.452c-.31 0-.333.023-.333.34 0 .6.006 1.2-.003 1.8-.003.2.075.275.27.272.424-.007.847 0 1.272 0h.267l.003.603c-.05.007-.098.02-.146.02-.527.002-1.054.005-1.58 0-.516-.005-.716-.21-.716-.722v-2.24c0-.476.197-.692.67-.703.29-.006.577-.007.868-.006zm6.29.006c.358 0 .72.005 1.086.005v.622h-1.794c-.26 0-.286.027-.286.292.006.727-.102.634.64.64.298.003.6-.003.898.003.433.01.632.206.64.633.004.278.005.557-.004.834-.013.383-.193.607-.572.62-.736.023-1.474.006-2.226.006v-.616h.244c.557 0 1.113-.003 1.668.002.186.002.272-.072.264-.26a5.38 5.38 0 0 1 0-.44c.007-.188-.078-.258-.266-.254-.4.01-.804.006-1.206.002-.533-.006-.722-.203-.722-.737 0-.242-.003-.483.004-.724.012-.387.19-.608.568-.62.353-.01.707-.01 1.065-.01zm-12.84.02c.41-.003.82.006 1.237.006v.586c-.08.005-.156.014-.232.014-.438.002-.877.005-1.315 0-.175-.002-.25.072-.25.25.006.638.008 1.274 0 1.91 0 .196.083.257.265.256.438-.005.877-.002 1.316-.002h.223v.608c-.65 0-1.284.02-1.917-.008-.342-.014-.51-.227-.514-.568-.01-.826-.01-1.653 0-2.48.003-.318.157-.544.448-.557.25-.014.51-.01.737-.016zm9.806.607c-.357.007-.715.005-1.072 0-.177 0-.248.08-.246.255.004.643.004 1.285 0 1.927 0 .16.07.23.22.23.38.003.76 0 1.138 0 .17 0 .228-.083.224-.248-.008-.32 0-.642-.005-.963 0-.316-.007-.63 0-.944h.004c.005-.19-.077-.26-.262-.258zm-7.282.003c-.168-.002-.237.076-.235.24.005.322 0 .644 0 .965 0 .32.006.64-.004.962h.002c-.004.17.067.245.23.245H9.22c.158 0 .235-.068.234-.24-.006-.642-.004-1.283 0-1.926 0-.16-.056-.248-.228-.246-.373.005-.745.003-1.117 0z\"},\"child\":[]}]})(props);\n};\nexport function SiCoda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.194 0H2.806A2.01 2.01 0 0 0 .8 2v20c0 1.1.903 2 2.006 2h18.388a2.01 2.01 0 0 0 2.006-2v-.933c-.033-1.2-.067-3.7-.067-4.834 0-.633-.468-1.166-1.07-1.166-.668 0-1.103.4-1.437.733-1.003.9-2.508 1.067-3.812.833-.601-.133-1.17-.3-1.638-.6-1.438-.833-2.374-2.4-2.374-4.066 0-1.667.936-3.2 2.374-4.067.502-.3 1.07-.467 1.638-.6 1.27-.233 2.809-.067 3.812.833.367.334.802.734 1.437.734.602 0 1.07-.534 1.07-1.167 0-1.1.034-3.633.067-4.833V2c0-1.1-.903-2-2.006-2Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.883 9.825a8.46 8.46 0 0 1 3.875-5.07l.04-.021-1.803-3.113C3.276 3.212 1.268 5.769.427 8.81l-.02.084zM9.824 3.894a8.246 8.246 0 0 1 2.164-.283h.005V.016h-.019a12.05 12.05 0 0 0-3.165.421l.084-.02zM14.178 3.897a8.449 8.449 0 0 1 5.063 3.875l.021.04 3.117-1.799c-1.591-2.718-4.146-4.726-7.186-5.568l-.084-.02zM0 12v.006c0 1.1.148 2.165.425 3.177l-.02-.084 3.476-.929a8.14 8.14 0 0 1-.284-2.161v-.008zM1.605 17.995c.55.941 1.18 1.754 1.901 2.475l2.553-2.54a8.56 8.56 0 0 1-1.313-1.695l-.022-.04zM5.995 22.38a11.77 11.77 0 0 0 5.967 1.604h.021-.001v-3.595h-.004a8.308 8.308 0 0 1-4.223-1.145l.039.021zM19.259 16.205a8.44 8.44 0 0 1-5.034 3.884l-.059.014.931 3.476c3.124-.86 5.681-2.863 7.246-5.52l.031-.056zM23.577 15.221c.268-.947.423-2.035.423-3.159 0-1.087-.144-2.14-.415-3.142l.019.084-3.486.931c.175.64.275 1.374.275 2.132 0 .79-.109 1.555-.313 2.28l.014-.059z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeberg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12 12 12 0 0 0-.045 0zm.375 6.467l4.416 16.553a12 12 0 0 0 5.137-4.213z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeblocks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.011 0v8.406H8.61V0zm15.39 0v8.406H24V0zM8.972.658l.012 7.869 2.54 2.43.007-5.564zm6.066 0-2.555 4.735.004 5.564 2.54-2.43zM.332 8.768l5.52 2.677 5.655-.006-2.773-2.67zm14.944 0L12.53 11.49l5.655-.09 5.498-2.631zm-9.323 3.855L.318 15.232h8.405l2.748-2.722zm6.565-.113 2.747 2.722h8.402l-5.586-2.609zm-1.006.533-2.54 2.43-.011 7.873 2.555-4.74zm.964 0-.008 5.564 2.559 4.74-.011-7.874zM0 15.598V24h8.598v-8.402zm15.39 0V24h8.598v-8.402z\"},\"child\":[]}]})(props);\n};\nexport function SiCodecademy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.827 19.729h-5.595c-.094 0-.17.058-.17.172v1.515c0 .094.058.17.172.17h5.594c.096 0 .172-.044.172-.164v-1.515c0-.105-.057-.166-.173-.166v-.014zM16.463 2.463c.016.034.03.067.047.12v18.79c0 .06-.02.096-.037.114a.168.168 0 01-.135.06H.153c-.038 0-.075 0-.097-.02A.181.181 0 010 21.393V2.564c0-.076.04-.134.096-.15h16.242c.04 0 .096.017.115.034v.016zM1.818 19.573c0 .072.038.135.096.152h12.643c.058-.019.096-.076.096-.154V4.402c0-.073-.039-.134-.098-.15H1.915c-.056.02-.096.073-.096.15l-.003 15.17zm5.174-8.375c.65 0 1.014.177 1.396.62.058.074.153.093.23.034l1.034-.92c.075-.044.058-.164.02-.224-.635-.764-1.554-1.244-2.74-1.244-1.59 0-2.79.795-3.255 2.206-.165.495-.24 1.126-.24 1.98 0 .854.075 1.483.255 1.98.465 1.425 1.665 2.204 3.255 2.204 1.2 0 2.115-.48 2.745-1.216.045-.074.06-.165-.015-.226l-1.037-.915c-.073-.047-.163-.047-.224.027-.39.45-.795.69-1.454.69-.706 0-1.245-.345-1.47-1.035-.136-.39-.166-.87-.166-1.483 0-.615.045-1.068.18-1.47.24-.66.766-1.008 1.486-1.008z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeceptjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.3986.597c-1.424 0-1.5473.0048-1.59.0807-.0238.0475-1.0206 2.6485-2.212 5.7811-1.196 3.1326-2.1737 5.7005-2.1832 5.71-.0048.0047-1.0348-1.1534-2.2831-2.5726C5.1937 7.394 4.852 7.0236 4.8283 7.1138c-.0424.1883-.0657.3492-.095.5412l2.7815 3.6262c1.5283 1.9935 2.7956 3.631 2.8146 3.6358.0285.0095 6.474-13.9308 6.588-14.2393.0285-.076-.0664-.0807-1.5188-.0807zM7.6828 2.1692a8.7326 8.7326 0 0 0-.88.0463c-1.2483.1282-2.4871.5696-3.5218 1.2579-.5554.3654-1.5142 1.329-1.9034 1.9033-2.1311 3.161-1.7561 7.3758.8924 9.9816.6028.5933 1.2008 1.0158 2.041 1.4382 1.03.5221 2.0694.8259 3.4174 1.0157 1.0062.1377 2.9238.1092 4.1199-.0616l.1993-.0285v-.6692l-.1756.0284c-1.0727.1709-3.0994.1614-4.0962-.0143-2.601-.4604-4.5091-1.7609-5.577-3.8066-.9256-1.7704-1.049-4.0486-.3228-5.9947.375-1.0157.8781-1.7989 1.647-2.563.7974-.7974 1.5664-1.2769 2.5631-1.6091 1.3148-.4367 2.9475-.4699 4.4901-.095.2658.0618.489.114.4937.114.0284 0 .185-.3797.166-.3987-.0427-.038-1.0015-.2658-1.4903-.356a11.0808 11.0808 0 0 0-2.0628-.1887zm10.6834.792c-.0283-.0042.0274.0476.184.1846 2.1074 1.8321 3.3605 4.0108 3.8019 6.6118.1424.8449.1566 2.3922.0284 3.2275-.3654 2.3495-1.3859 4.3857-3.0471 6.0565-1.8559 1.87-4.101 2.9665-6.8112 3.3225-.8306.1091-2.5345.0712-3.37-.0712-.9777-.1662-1.9697-.4747-3.0139-.9256-.5743-.2515.432.3892 1.2863.8164 2.5298 1.2673 5.4679 1.5568 8.2588.8211.731-.1946 1.3527-.432 2.1311-.8116 3.4602-1.6993 5.7574-4.979 6.1513-8.7762.0665-.655.0333-1.9175-.0759-2.5915-.4746-3.0282-2.2213-5.7337-4.8176-7.4471-.2468-.1661-.5268-.337-.617-.3797-.046-.0223-.0762-.0357-.089-.0376zM16.271 8.1145c-.2641-.0026-.5068.0126-.6967.0482-.8544.1661-1.4382.674-1.609 1.4002-.1804.75.0427 1.4192.5837 1.7657.318.1993.6028.2942 1.462.4888.9018.2041 1.2103.3418 1.3907.6123.1044.1567.128.2421.1233.4794 0 .1709-.0332.3512-.0806.4367-.1092.2135-.413.4556-.6883.5553-.5363.1946-1.5473.185-2.3162-.019-.6598-.1756-.5886-.1993-.5886.1899 0 .2943.0143.3417.1092.4034.3845.2563 1.8986.3893 2.7387.2469.522-.0902 1.03-.3134 1.3242-.5744.1044-.0997.2611-.318.3465-.4889.1472-.2942.1567-.3464.1567-.8163 0-.451-.0143-.5221-.133-.769-.2658-.5458-.7309-.7879-2.0029-1.0584-.8686-.1804-1.234-.375-1.405-.7547-.223-.4936.0048-1.03.5364-1.2625.4841-.2089 1.533-.171 2.4017.0901l.2942.0902V8.438l-.2278-.076c-.4535-.15-1.1382-.2418-1.7192-.2475z\"},\"child\":[]}]})(props);\n};\nexport function SiCodechef (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.2574.0039c-.37.0101-.7353.041-1.1003.095C9.6164.153 9.0766.4236 8.482.694c-.757.3244-1.5147.6486-2.2176.7027-1.1896.3785-1.568.919-1.8925 1.3516 0 .054-.054.1079-.054.1079-.4325.865-.4873 1.73-.325 2.5952.1621.5407.3786 1.0282.5408 1.5148.3785 1.0274.7578 2.0007.92 3.1362.1622.3244.3235.7571.4316 1.1897.2704.8651.542 1.8383 1.353 2.5952l.0057-.0028c.0175.0183.0301.0387.0482.0568.0072-.0036.0141-.0063.0213-.0099l-.0213-.5849c.6489-.9733 1.5673-1.6221 2.865-1.8925.5195-.1093 1.081-.1497 1.6625-.1278a8.7733 8.7733 0 0 1 1.7988.2357c1.4599.3785 2.595 1.1358 2.6492 1.7846.0273.3549.0398.6952.0326 1.0364-.001.064-.0046.1285-.007.193l.1362.0682c.075-.0375.1424-.107.2059-.1902.0008-.001.002-.002.0028-.0028.0018-.0023.0039-.0061.0057-.0085.0396-.0536.0747-.1236.1107-.1931.0188-.0377.0372-.0866.0554-.1292.2048-.4622.362-1.1536.538-1.9635.0541-.2703.1092-.4864.1633-.7027.4326-.9733 1.0266-1.8382 1.6213-2.6492.9733-1.3518 1.8928-2.5962 1.7846-4.0561-1.784-3.4608-4.2718-4.0017-5.5695-4.272-.2163-.0541-.3233-.0539-.4856-.108-1.3382-.2433-2.4945-.3953-3.6046-.3648zm5.0428 14.3788a9.8602 9.8602 0 0 0-.0326-.9824c-.0541-.703-1.1892-1.46-2.7032-1.8386-.588-.1336-1.1764-.2142-1.7448-.2356-.539-.0137-1.0657.0248-1.5546.1277-1.2436.2704-2.2162.9193-2.811 1.8925l.0511 1.431c.6672-.3558 1.7326-.8747 3.139-.9994.0662-.0059.1368-.0059.2044-.0099.1177-.013.2667-.044.4444-.044 1.6075 0 3.2682.5336 4.8767 1.6483.039-.2744.0611-.549.071-.8234l.044.0227c.0028-.0622.0143-.1268.0156-.1888zM11.256.0578c.1239-.0034.2538.01.379.0114-.23-.0022-.4588.0026-.6871.0156.103-.0061.2046-.0242.308-.027zm.4983.0156c.6552.014 1.3255.0711 2.0387.1803-.6834-.0987-1.3646-.1671-2.0387-.1803zm-1.3147.0554c-.076.0087-.1527.0133-.2285.0241-.8168.1167-1.7742.7015-2.75 1.045.3545-.1323.7143-.2957 1.0747-.4501C9.0765.4774 9.6705.207 10.1571.1529c.0939-.0139.1886-.0133.2825-.0241zm-.2285.24c.1622 0 .3787-.0002.5409.0539-.1425-.0357-.2595-.026-.3706-.0142a1.174 1.174 0 0 1 .3166.0681c.5796 1.0012-.4264 5.2791-.6786 8.1492.1559 1.0276.3138 1.9963.4628 2.7201-.7029-1.7843-1.4067-4.921-1.5148-7.354-.054-.9733.001-1.8386.2172-2.4874C9.401.8557 9.7244.4228 10.2111.3687zm3.1361.271c-.811 2.1088-.9184 6.1092-.9725 7.3528-.054.5407-.0001 1.73.054 2.5952 0 .2163.054.4325.054.6488 0-.2163-.054-.3786-.054-.5948-.4326-3.2442-.974-7.1362.9185-10.002zm3.352.3777c-.2704 2.1628-1.4047 3.191-1.7832 5.2998-.1081 1.6762-.325 3.6222-.379 5.2984-.0541-1.6762-.0007-3.4601.2697-5.2444.2703-1.8384.8651-3.6776 1.8925-5.3538zm-10.381.433c-.3581.1194-.632.248-.8575.3805.2317-.1358.4996-.2666.8575-.3805zm.2101.1974c.2155.0025.4384.0734.6006.2357-.0067-.004-.0078-.0033-.0142-.0071.1331.0929.2666.2093.3932.3847-.2036.9673.2553 3.0317.0398 4.6694.0763 1.5485.0717 3.1804.849 4.4594-.9796-1.5107-1.176-3.4375-1.3218-5.236-.1128-1.0907-.2035-2.0969-.4642-2.9033-.144-.3047-.2684-.5745-.3833-.822-.0247-.0369-.0447-.0784-.071-.1135-.1082-.1082-.1619-.2696-.1619-.3777 0-.054.0539-.1618.108-.1618.054-.0541.1616-.0553.2157-.1094a1.013 1.013 0 0 1 .2101-.0184zm-1.3459.6133c-.0604.0201-.0923.041-.1405.061.1768-.034.3617.0339.5196.318-.1877.8916.4364 3.3685.4288 5.104.3124 1.8478.5496 3.8498 1.5716 5.1152C6.3723 11.5076 5.886 9.1286 5.5076 7.128 5.183 5.56 4.9125 4.2086 4.3718 3.776c-.054-.1081-.1079-.163-.1079-.2711 0-.1622-.0002-.3786.1079-.5949-.2772.6337-.4047 1.2673-.3706 1.901-.0445-.6487.0857-1.2905.3706-1.901 0-.054.054-.0538.054-.1079.012-.016.0314-.0349.044-.0511.0618-.0983.1308-.189.2257-.257.0557-.0615.0965-.1191.159-.1817-.0526.0555-.0872.1092-.1335.1647.0273-.018.0523-.0368.0838-.0525.1081-.1082.2154-.1633.3776-.1633zm-.3776.1633c-.0038.0075-.0076.0111-.0114.0184.0125-.0099.0242-.0208.037-.0298-.0074.0037-.0182.0077-.0256.0114zm14.7608 1.1343c-.0017.0052-.004.0104-.0057.0156.0378-.005.0751-.0173.1135-.0156-.0378-.0022-.0763.0103-.115.0199-.8634 2.6418-1.8874 5.2844-2.9118 7.9262a.0184.0184 0 0 1-.0015.0028c-.0874.4652-.234.8842-.5395 1.1898.4326-.4867.4854-1.1907.5395-2.0558.054-.811.0544-1.6761.487-2.5413 0-.0531.0012-.1058.0525-.159.0003-.0009.0012-.0019.0015-.0028.0973-.3524.202-.6885.3166-1.018.4183-1.2896 1.1396-3.1653 2.0131-3.3405.0163-.0052.034-.018.0497-.0213zM8.3726 16.2113l-.3238.1079c.1623.2163.2696.379.3777.433.1081.054.2168.108.379.108.0541 0 .1618 0 .2159-.054l.812-.2698c.0541 0 .1078-.054.1619-.054.1081 0 .1616 0 .2697.054l.2712.2698.2697-.054c-.1081-.1622-.2695-.3236-.3776-.3776-.1082-.0541-.2169-.1094-.379-.1094h-.108l-.866.3252h-.1618c-.1082 0-.2157 0-.2698-.054-.054-.054-.163-.1629-.2712-.3251zm-2.5953.541c-.2703.1621-.649.4324-1.1897.6487-.5407.2163-.9734.4325-1.1897.6488-.2163.2163-.3237.4326-.3237.6488 0 .1082.0537.1632.1618.2172.054.0541.1632.0539.2172.108.757.3244 1.5133.7019 2.2162 1.0803.1082.0541.2171.1632.2712.2173.054.054.1078.054.1618.054.1082 0 .2695-.0538.3777-.162.1081-.108.1632-.217.1632-.325 0-.1082-.055-.1618-.1632-.2158 0 0-.4328-.2165-1.1898-.541-.4866-.2162-.9179-.4326-1.1883-.5948.1623-.2704.486-.4865.9726-.7028.5407-.2163.9196-.4326 1.0818-.5948.054-.0541.054-.1078.054-.1619 0-.054-.0539-.1631-.108-.2172-.054-.054-.163-.1079-.2711-.1079zm11.247 0c-.054 0-.1618.0537-.2158.1078-.0541.1081-.1093.1632-.1093.2172v.054c.1622.1622.3797.2695.7041.3776.2704.054.5403.1632.8107.2172.3244.1082.5407.2693.6488.4856v.0553c0 .0541-.1088.1616-.3251.2698-.1082.054-.3245.2167-.5949.433-.2703.1622-.4326.3236-.5948.3776-.2163.1082-.3776.217-.4316.3252-.0541.054-.054.1077-.054.1618 0 .1081.0539.1077.108.2158.054.1081.1616.1093.2157.1093.054 0 .1078-.0554.1619-.0554.2703-.1622.6492-.3782 1.0818-.7567.4866-.3784.8655-.6484 1.0818-.8106.2163-.1082.3237-.2169.3237-.379 0-.0541.0002-.1618-.1079-.2159-.3785-.4325-.9185-.7022-1.5674-.9185-.1081-.0541-.2704-.1092-.5948-.1633-.1622-.054-.3249-.1079-.433-.1079zm-2.9743.8106c-.2704 0-.4866.055-.6488.2172-.2163.1622-.2699.4323-.2158.7567 0 .2703.1075.4865.2697.7027.1622.2163.3786.3252.5949.3252.1622 0 .2708-.0553.433-.1094.2703-.1622.379-.4319.379-.9185 0-.3785-.109-.6485-.2711-.8107-.1622-.1081-.3246-.1632-.541-.1632zm-4.4877.054c-.2704 0-.4866.055-.6488.2171-.2163.1622-.27.4323-.2158.7567 0 .2704.1075.4865.2697.7028s.3786.3251.5949.3251c.1622 0 .2708-.0552.433-.1093.2703-.1622.3776-.432.3776-.9186 0-.4325-.1075-.7025-.2697-.8106-.1622-.1082-.3247-.1633-.541-.1633zm0 .6501c.1622 0 .2711.1076.2711.2698 0 .1622-.163.2697-.2711.2697-.1622 0-.2698-.1075-.2698-.2697s.1076-.2698.2698-.2698zm4.3798.054c.1622 0 .2711.1075.2711.2697 0 .1082-.109.2698-.2711.2698-.1622 0-.2698-.1076-.2698-.2698 0-.1622.1076-.2697.2698-.2697zm-2.7032 2.1083l.1619.3237c.054.1081.1076.163.2158.2711.054.054.163.1619.2712.1619h.1078c.1082 0 .1618 0 .2158-.054.0541-.054.1632-.0538.2173-.1079l.1618-.1618c.054-.054.108-.1092.108-.1633.054-.054.0537-.1078.1078-.1618 0-.0541.054-.108.054-.108-.0541.1082-.1618.2156-.2158.3238-.1082.054-.1616.1632-.2698.1632-.1081.0541-.217.054-.3251.054s-.2157.0001-.2697-.054c-.1082 0-.1632-.0538-.2173-.1079l-.1618-.1632c-.054-.0541-.1078-.1618-.1619-.2158zm-.866 1.0278c-1.1355 0-1.8377 1.5136-3.4598.1619-.4326 2.6494 2.7583 2.866 4.11 1.7306.9192-.811.6475-1.9465-.6502-1.8925zm2.8664 0c-1.2977-.054-1.568 1.0815-.6488 1.8925 1.3518 1.1355 4.5412.9188 4.1087-1.7306-1.6221 1.3517-2.2703-.1619-3.4599-.1619z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeclimate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.125 5.272l-4.511 4.475 2.684 2.659 1.827-1.813 5.19 5.145L24 13.079zM8.13 8.265L0 16.066l2.772 2.662 5.357-5.145 5.357 5.145 2.772-2.662z\"},\"child\":[]}]})(props);\n};\nexport function SiCodecov (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.006.481C5.391.486.005 5.831 0 12.399v.03l2.042 1.19.028-.018a5.82 5.82 0 013.308-1.02c.37 0 .733.034 1.085.1l-.036-.006a5.69 5.69 0 012.874 1.43l-.004-.002.35.326.198-.434c.192-.42.414-.814.66-1.173.1-.144.208-.29.332-.446l.205-.257-.252-.211a8.33 8.33 0 00-3.836-1.807l-.052-.008a8.565 8.565 0 00-4.08.251l.06-.016c.972-4.256 4.714-7.223 9.133-7.226a9.31 9.31 0 016.6 2.713 9.196 9.196 0 012.508 4.498 8.385 8.385 0 00-2.498-.379h-.154c-.356.006-.7.033-1.036.078l.045-.005-.042.006a8.103 8.103 0 00-.39.06c-.057.01-.114.022-.17.033a8.102 8.102 0 00-.392.09l-.138.034a9.21 9.21 0 00-.483.144l-.03.01c-.354.12-.708.268-1.05.44l-.027.013c-.152.076-.305.16-.47.256l-.035.022a8.216 8.216 0 00-2.108 1.8l-.011.014-.075.092a8.345 8.345 0 00-.378.503c-.088.13-.177.269-.288.452l-.06.104a8.985 8.985 0 00-.234.432l-.016.029c-.17.34-.317.698-.44 1.063l-.017.053a8.052 8.052 0 00-.41 2.716v-.007.112a12 12 0 00.023.431l-.002-.037a11.676 11.676 0 00.042.412l.005.042.013.103c.018.127.038.252.062.378.241 1.266.845 2.532 1.745 3.66l.041.051.042-.05c.359-.424 1.249-1.77 1.325-2.577v-.015l-.006-.013a5.56 5.56 0 01-.64-2.595c0-3.016 2.37-5.521 5.396-5.702l.2-.007a5.93 5.93 0 013.47 1.025l.027.019L24 12.416v-.03a11.77 11.77 0 00-3.51-8.423A11.962 11.962 0 0012.007.48z\"},\"child\":[]}]})(props);\n};\nexport function SiCodecrafters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.825 17.527a.111.111 0 0 1-.107-.142l3.05-10.837a.111.111 0 0 1 .108-.081H14.2c.074 0 .127.07.107.141l-3.063 10.838a.111.111 0 0 1-.107.08H9.825Zm-2.146-2.732a.11.11 0 0 1-.079-.033l-2.667-2.704a.111.111 0 0 1 0-.156L7.6 9.211a.111.111 0 0 1 .08-.033h1.702c.1 0 .149.12.079.19l-2.534 2.534a.111.111 0 0 0 0 .157l2.535 2.546c.07.07.02.19-.079.19H7.68Zm6.954 0a.111.111 0 0 1-.079-.19l2.525-2.546a.111.111 0 0 0 0-.157l-2.524-2.535a.111.111 0 0 1 .079-.19h1.692c.03 0 .058.013.078.034l2.68 2.69a.111.111 0 0 1 0 .157l-2.68 2.704a.111.111 0 0 1-.078.033h-1.693ZM12 24C5.383 24 0 18.617 0 12S5.383 0 12 0s12 5.383 12 12-5.383 12-12 12Zm0-22.667C6.118 1.333 1.333 6.118 1.333 12S6.118 22.667 12 22.667 22.667 17.882 22.667 12 17.882 1.333 12 1.333Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodefactor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.375 2.65a2.64 2.64 0 01-2.62 2.65 2.64 2.64 0 01-2.63-2.65A2.64 2.64 0 012.755 0a2.64 2.64 0 012.62 2.65zm0 9.35a2.64 2.64 0 01-2.62 2.65A2.64 2.64 0 01.125 12a2.64 2.64 0 012.63-2.65A2.64 2.64 0 015.375 12zm0 9.35A2.64 2.64 0 012.755 24a2.64 2.64 0 01-2.63-2.65 2.64 2.64 0 012.63-2.65 2.64 2.64 0 012.62 2.65zM11.315 0a2.64 2.64 0 00-2.61 2.65 2.64 2.64 0 002.6 2.65h9.94a2.64 2.64 0 002.63-2.65A2.64 2.64 0 0021.255 0zm-2.61 12a2.64 2.64 0 012.62-2.65h5.68a2.64 2.64 0 012.6 2.65 2.64 2.64 0 01-2.6 2.65h-5.7a2.64 2.64 0 01-2.6-2.65z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeforces (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 7.5C5.328 7.5 6 8.172 6 9v10.5c0 .828-.672 1.5-1.5 1.5h-3C.673 21 0 20.328 0 19.5V9c0-.828.673-1.5 1.5-1.5h3zm9-4.5c.828 0 1.5.672 1.5 1.5v15c0 .828-.672 1.5-1.5 1.5h-3c-.827 0-1.5-.672-1.5-1.5v-15c0-.828.673-1.5 1.5-1.5h3zm9 7.5c.828 0 1.5.672 1.5 1.5v7.5c0 .828-.672 1.5-1.5 1.5h-3c-.828 0-1.5-.672-1.5-1.5V12c0-.828.672-1.5 1.5-1.5h3z\"},\"child\":[]}]})(props);\n};\nexport function SiCodefresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2.84c1.402 2.71 1.445 5.241 2.977 10.4 1.855 5.341 8.703 5.701 9.21 5.711.46.726 1.513 1.704 3.926 2.21l.268-1.272c-2.082-.436-2.844-1.239-3.106-1.68l-.005.006c.087-.484 1.523-5.377-1.323-9.352C7.182 3.583 0 2.84 0 2.84zm24 .84c-3.898.611-4.293-.92-11.473 3.093a11.879 11.879 0 0 1 2.625 10.05c3.723-1.486 5.166-3.976 5.606-6.466 0 0 1.27-4.716 3.242-6.677zM12.527 6.773l-.002-.002v.004l.002-.002zM2.643 5.22s5.422 1.426 8.543 11.543c-2.945-.889-4.203-3.796-4.63-5.168h.006a15.863 15.863 0 0 0-3.92-6.375z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeigniter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.466 0c.88 1.423-.28 3.306-1.207 4.358-.899 1.02-1.992 1.873-2.985 2.8-1.066.996-2.091 2.044-2.967 3.213-1.753 2.339-2.827 5.28-2.038 8.199.788 2.916 3.314 4.772 6.167 5.429-1.44-.622-2.786-2.203-2.79-3.82-.003-1.765 1.115-3.262 2.505-4.246-.167.632-.258 1.21.155 1.774a1.68 1.68 0 0 0 1.696.642c1.487-.326 1.556-1.96.674-2.914-.872-.943-1.715-2.009-1.384-3.377.167-.685.588-1.328 1.121-1.787-.41 1.078.755 2.14 1.523 2.67 1.332.918 2.793 1.612 4.017 2.688 1.288 1.132 2.24 2.661 2.047 4.435-.208 1.923-1.736 3.26-3.45 3.936 3.622-.8 7.365-3.61 7.44-7.627.093-3.032-1.903-5.717-5.158-7.384.19.48.074.697-.058.924-.55.944-2.082 1.152-2.835.184-1.205-1.548.025-3.216.197-4.855.215-2.055-1.073-4.049-2.67-5.242z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 0a1 1 0 0 0-1 1v22c0 .063.007.124.018.184L0 23.199l.025.026c.103.443.5.775.975.775h22a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1H1zm.707 1h20.582l-2 2H3.707l-2-2zM23 1.705v20.588l-2-2V3.705l2-2zM1 1.707l2 2v16.492l-2 2V1.707zM4 4h16v16H4V4zm3.537 3c-1.006 0-1.51.535-1.51 1.605v2.297c0 .4-.184.6-.554.6a.47.47 0 0 0-.344.139.512.512 0 0 0-.129.365.49.49 0 0 0 .129.353.47.47 0 0 0 .344.139c.37 0 .554.2.554.6v2.297c0 1.07.504 1.605 1.51 1.605.136 0 .248-.05.334-.148A.494.494 0 0 0 8 16.498a.512.512 0 0 0-.129-.365.439.439 0 0 0-.334-.139c-.376 0-.564-.199-.564-.6v-2.296c0-.46-.1-.823-.297-1.092.099-.138.173-.3.222-.485.05-.183.075-.389.075-.619V8.605c0-.4.188-.6.564-.6a.439.439 0 0 0 .334-.138A.499.499 0 0 0 8 7.512a.53.53 0 0 0-.129-.364A.425.425 0 0 0 7.537 7zm8.926 0a.425.425 0 0 0-.334.148.53.53 0 0 0-.129.364.5.5 0 0 0 .129.355.439.439 0 0 0 .334.139c.376 0 .564.199.564.6v2.296c0 .23.025.436.075.62.049.183.123.346.222.484-.197.27-.297.632-.297 1.092v2.297c0 .4-.188.6-.564.6a.439.439 0 0 0-.334.138.512.512 0 0 0-.129.365c0 .145.043.262.129.354a.425.425 0 0 0 .334.148c1.006 0 1.51-.535 1.51-1.605v-2.297c0-.4.184-.6.554-.6a.439.439 0 0 0 .334-.139.475.475 0 0 0 .139-.353.492.492 0 0 0-.139-.365.439.439 0 0 0-.334-.139c-.37 0-.554-.2-.554-.6V8.605c0-1.07-.504-1.605-1.51-1.605zm-7.25 6a.737.737 0 0 0-.496.227.717.717 0 0 0-.217.529.74.74 0 0 0 .75.744.74.74 0 0 0 .75-.744.717.717 0 0 0-.217-.53A.71.71 0 0 0 9.25 13h-.037zm2.75 0a.737.737 0 0 0-.496.227.717.717 0 0 0-.217.529.74.74 0 0 0 .217.53c.152.143.33.214.533.214a.74.74 0 0 0 .75-.744.717.717 0 0 0-.217-.53A.71.71 0 0 0 12 13h-.037zm2.75 0a.737.737 0 0 0-.496.227.717.717 0 0 0-.217.529.74.74 0 0 0 .217.53c.152.143.33.214.533.214a.74.74 0 0 0 .75-.744.717.717 0 0 0-.217-.53.71.71 0 0 0-.533-.226h-.037zm-11.1 8h16.68l2 2H1.613l2-2z\"},\"child\":[]}]})(props);\n};\nexport function SiCodemagic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.833 10.117L16.937 7.24c-.07-.035-.106-.106-.142-.177l-2.912-5.896c-.498-1.03-1.776-1.457-2.807-.96a2.09 2.09 0 0 0-.959.96L7.205 7.063a.81.81 0 0 1-.142.177l-5.896 2.913c-1.03.497-1.457 1.776-.96 2.806a2.1 2.1 0 0 0 .96.96l5.896 2.876c.07.036.106.107.142.142l2.948 5.896c.497 1.03 1.776 1.457 2.806.96a2.09 2.09 0 0 0 .959-.96l2.877-5.896c.036-.07.107-.142.142-.142l5.896-2.912c1.03-.498 1.457-1.776.96-2.806-.178-.427-.533-.746-.96-.96zm-4.368.427l-2.735 2.38c-.533.497-.924 1.136-1.066 1.847l-.71 3.551c-.036.143-.178.25-.32.214-.071 0-.107-.036-.142-.107l-2.38-2.735c-.497-.533-1.137-.923-1.847-1.066l-3.552-.71c-.142-.035-.249-.178-.213-.32 0-.07.035-.106.106-.142l2.735-2.38c.533-.497.924-1.136 1.066-1.847l.71-3.551c.036-.143.178-.25.32-.214a.27.27 0 0 1 .142.071l2.38 2.735c.497.533 1.137.924 1.847 1.066l3.552.71c.142.036.249.178.213.32a.38.38 0 0 1-.106.178z\"},\"child\":[]}]})(props);\n};\nexport function SiCodementor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.487 14.887c.39 0 .706.314.706.7a.703.703 0 0 1-.706.7H5.632a.703.703 0 0 1-.707-.7c0-.386.317-.7.707-.7zm.69-2.593c.39 0 .706.315.706.7a.703.703 0 0 1-.707.7H5.648a.703.703 0 0 1-.706-.7c0-.386.316-.7.706-.7zm3.864-3.46a2.109 2.109 0 0 1 2.118-2.099 2.109 2.109 0 0 1 2.118 2.1 2.115 2.115 0 0 1-2.118 2.103 2.116 2.116 0 0 1-2.118-2.104Zm6.259 6.559c.1.619-.378 1.18-1.005 1.178h-6.272a1.016 1.016 0 0 1-1.005-1.178c.315-1.942 1.391-3.509 2.796-4.13a2.768 2.768 0 0 0 2.69 0c1.405.621 2.482 2.19 2.796 4.13zm-8.712-4.29c-8.38 0-.147-.002-4.941-.002a.703.703 0 0 1-.707-.7c0-.386.317-.7.707-.7l4.941.001c.39 0 .707.314.706.701a.702.702 0 0 1-.706.7zm-4.94-2.594a.702.702 0 0 1-.707-.7c0-.386.317-.7.707-.7h4.94c.389 0 .705.313.705.7a.703.703 0 0 1-.706.699zm7.809 10.117a.658.658 0 0 0 .66-.654h7.06v-12.6H2.824v12.599h7.059c0 .361.295.654.66.654zM24 17.972v.957c0 .605-.496 1.096-1.106 1.096H1.106c-.61 0-1.106-.49-1.106-1.096v-.957h1.413V5.357c0-.763.623-1.382 1.394-1.382h18.387c.77 0 1.394.619 1.394 1.382v12.615Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodemirror (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.313.858c1.044-.002 2.016.364 2.966 1.178.799.685 1.167 1.52 1.453 2.159.455 1.018.321 1.112-.18 1.398a1.27 1.27 0 0 1-.26.108c.12 1.502.962 1.637 1.232 2.165.176.34.262.752-.553.881-.819.13-.552.76-1.763.815-.864.041-1.372-.257-1.665-.568a4.639 4.639 0 0 1-.623 2.478c.21.104.67.306 1.305.422.881.16 2.155-.522 2.644-.522.153 0 .313-.022.49-.025.374-.007.827.072 1.47.622l.034-.075c-.376-.515-.212-1.885.49-3.535.811-1.904 1.803-3.534 2.606-3.099v-.004c.725.392.36 1.916-.45 3.82-.697 1.636-1.377 2.939-2.083 3.043l-.079.241c.834.662.667.978.441 1.52-.262.619.114 1.175-1.222 1.403a.969.969 0 0 1-.434-.025c-.098.232-.177.412-.177.412s-.13.357-.478.232c-.357-.13-.263-.388-.263-.388l.344-.625c-.214-.231-.327-.492-.297-.586.133-.294.455-.031.423-.356-.619.066-1.206-.294-1.336-.326-.13-.031-.066-.325-1.109.326-.414.258-.794.517-1.18.762.153.784 1.057 2.016 1.74 2.106 2.152-.098 2.152 1.34 1.991 1.37-.325-.618-.846-.489-1.532-.097s.13.325.423.552c-1.437.608-2.848-.537-3.247-.901-.568.903-1.673 1.543-2.438 1.885-.944.423-1.65.983-.944 1.336.588.294.913-.455 1.763-.588.846-.13 1.599.196 1.665.686-.356-.196-.619-.196-.619-.196s.294.196.325.52c.032.326-.03.162-.227.162-.49 0-.552-.424-.98-.357-1.077.098-1.14.552-1.727.62-.588.062-1.567-.26-1.434-1.012.13-.748 1.14-1.273 2.088-1.665.944-.392 2.382-1.63 2.186-2.743-.096-.546-.351-.768-.585-.852-.683.27-1.4.45-2.13.531-2.1.257-2.804-.742-2.983-1.09-1.302.933-3.153 1.275-3.842 2.422.294-1.63 1.175-2.155 3.232-3.099 2.052-.942 2.478-2.891 2.48-2.901v-.006.006c-.002.03-.101 1.773-1.247 3.03.39.746.984 1.125 2.36.984 1.567-.16 3.828-1.52 5.419-2.316 1.109-.556 1.598.49 2.382.553 1.09.09.196 1.238.196 1.238s.819-.13.98-.423c.16-.294-.099-.49.16-.749.262-.262.227-.556-.145-.83-.33-.243-.537-.568-1.614-1.058-1.078-.49-1.994.454-3.233.748-.932.22-1.77-.183-2.129-.399-.956 1.024-2.141 1.222-2.141 1.222v-.004c1.175-.686 1.908-1.931 2.225-3.009.234-.795.07-1.655-.033-2.052-1.51-.03-2.627-1.478-2.627-1.478h.004s1.924 1.238 3.49.717c1.564-.521 1.305-3.554 1.337-3.393.015.078.262.692.3 1.436.367-.044 1.705-.25 1.424-.887-.884-1.99-2.486-3.235-5.312-3.374.518 2.805-1.864 2.038-5.616 3.961C1.687 7.243.653 10.448 1.107 14.17c.277 2.245 1.718 4.716 4.387 6.323a2.58 2.58 0 0 0 1.647-.834c.815-.913.356-2.35 1.696-2.872a4.109 4.109 0 0 1 1.472-.296c.491-.003.781.1.781.1s-2.382.325-2.578 1.697c-.196 1.371-.52 1.99-1.042 2.413-.238.186-.51.324-.802.405 1.564.7 3.462 1.127 5.703 1.127 7.15 0 10-5.673 10.305-7.193.34-1.681 1.324-2.08 1.324-.286 0 3.428-5.136 8.388-11.601 8.388-6.465 0-10.054-3.495-11.523-6.3C-.594 14.032-.2 9.758 1.954 7.18c2.154-2.582 5.081-3.166 7.2-3.851 2.017-.653 1.91-1.86 1.895-1.975-.33-.015-.662-.017-.993-.004.796-.318 1.543-.491 2.257-.492zm9.299 4.492c-.358.006-1.19 1.31-1.863 2.994-.705 1.77-.909 3.314-.69 3.436.122.067 1.168-1.203 1.873-2.97.706-1.77 1.054-3.326.729-3.452a.126.126 0 0 0-.05-.008zm-6.66.502c-.01.779-.283 1.647-1.284 2.178-.08.043-.158.08-.236.112a3.9 3.9 0 0 1 .076.42c.27.151.672.34 1.112.413.784.129 1.34-.396 1.568-.588.227-.192.572-.047.732-.016.16.036.486-.062.259-.16-.231-.098-.49-.44-.686-.862-.208-.833-.5-1.19-.653-1.33-.248.122-.579.029-.8-.12-.03-.015-.06-.03-.088-.047zm6.396.166h.014l-.036.014c-.006.004-.01.01-.015.016.016.07.007.146.007.225a.806.806 0 0 1-.03.24c.006.015 0 .04 0 .059-.019.024-.004.044-.009.064.03.029.074.063.054.102-.01.025-.04.035-.069.044-.014.07-.034.147-.049.226 0 .02 0 .049-.004.068-.015.05-.03.093-.045.147-.01.044 0 .128-.048.137-.02.05-.03.089-.054.138-.01.004-.02-.005-.03 0v.001a1.04 1.04 0 0 1-.03.18c0 .02-.004.054-.004.078-.025.034-.01.059-.02.088.035.04.079.079.054.137-.014.04-.054.05-.088.069-.03.093-.059.206-.088.308-.005.03-.01.064-.02.094-.024.063-.054.127-.073.2-.02.06-.015.167-.078.177-.03.063-.045.112-.079.176-.015.01-.024-.005-.039 0-.015.02-.02.049-.034.069-.01.01-.025.01-.035.024-.02.03-.014.073-.034.118a.318.318 0 0 0-.054.063l-.005.01c-.023.062-.034.136-.062.196.023-.197.045-.426.063-.662.009-.17.022-.382.037-.599a6.43 6.43 0 0 0-.01-.89l.031-.063.064-.123c.014-.151.026-.256.03-.24a.95.95 0 0 1 .023.14c.035-.061.071-.124.113-.193.04-.069.074-.142.118-.196.03-.04.078-.117.113-.19.01-.025.01-.05.048-.055.035-.044.064-.098.103-.137.01-.01.025-.015.035-.02.01-.01.014-.024.029-.034.024-.02.069-.039.098-.078.005-.01.01-.02.02-.03.012-.015.03-.045.05-.068l-.001-.01.017-.006a.062.062 0 0 1 .022-.014zm-.993 1.453c-.057.724-.1 1.45-.128 2.175a1.87 1.87 0 0 0-.045.095c-.049.117-.122.254-.171.391l-.015.079c-.02.054-.049.107-.064.161-.03.084-.068.23-.147.309-.004.01-.024.02-.034.03-.01.014-.005.034-.02.053l-.017.011.117-1.412c.006-.26.033-.515.07-.746l-.003-.032c.015-.083.025-.147.049-.24l.01-.03c.078-.384.164-.645.164-.645l-.032.308c.012-.028.025-.056.04-.084.014-.03.038-.054.053-.088.005-.015.01-.04.015-.059.046-.095.102-.184.158-.276zm-.599 1.579c-.073.505-.127 1.15-.06 1.744-.006.011-.01.023-.018.034-.025.024-.06.039-.084.068-.014.02-.024.05-.044.074a.98.98 0 0 1-.068.078l-.088.128a.212.212 0 0 1-.098.088c-.02.01-.05.005-.074.01-.014-.02 0-.05 0-.074 0-.01-.01-.024-.01-.034 0-.03-.004-.084 0-.113 0-.03.025-.054.035-.098.005-.034 0-.073 0-.112 0-.015.005-.035.005-.06 0-.029 0-.043.004-.083a.598.598 0 0 0-.004-.132c.02-.103.029-.186.058-.308.01-.054.035-.152.06-.216.019-.063.043-.127.063-.196.02-.068.044-.137.068-.205.015-.044.04-.084.06-.133.009-.024.009-.053.019-.083.02-.059.044-.122.073-.176l.083-.162zm-6.268 6.006c-.13.074-.263.146-.4.215.283.203.905.778.65 1.775a2.183 2.183 0 0 1-.038.132c.525.729 1.273 1.112 1.657 1.168.42.063.239-.164.176-.391-.066-.228.392-.294.65-.455.26-.164.13-.423-.716-.294-.762.12-1.833-1.545-1.979-2.15Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodenewbie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.071 0A12.023 12.023 0 0 0 2.31 5.011c-2.913 4.075-2.879 9.774.068 13.821.094.13.196.254.292.367.27.306.543.59.782.82.18.165.386.345.615.517.416.337.866.63 1.343.873-.429-.2-.834-.401-1.177-.58-.075-.036-.139-.077-.207-.112-.22-.11-.422-.228-.616-.339a5.47 5.47 0 0 1-.747-.527c-.153 1.044-.754 1.895-1.792 2-.975.096-.954 1.383 0 1.5 2.647.33 5.45.648 8.22.648 1.68.014 3.359-.128 5.013-.426.38-.098.758-.182 1.079-.27 5.512-1.53 9.055-6.856 8.64-12.487a.683.683 0 0 0 0-.11c-.61-4.85-3.896-9-8.697-10.301A11.676 11.676 0 0 0 12.07 0zm-.108 3.025a.677.677 0 0 1 .396.14 11.07 11.07 0 0 1 1.86 1.677 16.66 16.66 0 0 1 2.874-.246h.432c.95.027.962 1.5.027 1.5h-.443c-.618 0-1.235.039-1.847.117a16.68 16.68 0 0 1 1.765 3.486c.947-.194 1.91-.303 2.877-.326h.02c.95 0 .935 1.482-.02 1.501-.802.023-1.6.11-2.387.264a26.43 26.43 0 0 1 .893 4.221c.057.479-.285.715-.66.715a.83.83 0 0 1-.846-.715 29.483 29.483 0 0 0-.23-1.411 23.662 23.662 0 0 0-.635-2.463 19.676 19.676 0 0 0-.505-1.418 15.706 15.706 0 0 0-1.93-3.577c-.263.069-.519.125-.782.2a15.29 15.29 0 0 0-1.805.616 20.446 20.446 0 0 1 1.798 3.791c.626-.3 1.27-.562 1.93-.782l.713 1.35a15.46 15.46 0 0 0-2.18.872 20.74 20.74 0 0 1 .782 5.25.7.7 0 0 1-.74.726.723.723 0 0 1-.76-.727v-.228a18.878 18.878 0 0 0-.638-4.303 15.612 15.612 0 0 0-.449-1.473A18.893 18.893 0 0 0 9.674 7.95a7.71 7.71 0 0 0-.616.36c-.92.548-1.762 1.22-2.502 1.995a.685.685 0 0 1-.503.232c-.563 0-1.073-.754-.563-1.29A13.44 13.44 0 0 1 8.514 6.88c.096-.062.2-.117.304-.173-.221-.312-.46-.612-.712-.899a.832.832 0 0 0-.07-.09c-.485-.554.023-1.306.57-1.306a.652.652 0 0 1 .496.248c.38.442.74.899 1.079 1.376l.013.007a14.556 14.556 0 0 1 1.923-.7c.13-.043.262-.08.396-.109a6.949 6.949 0 0 0-.85-.727.402.402 0 0 0-.063-.048c-.646-.463-.243-1.434.363-1.434zm-1.386 9.299l.55 1.44a16.386 16.386 0 0 0-2.656 2.157c-.159.13-.338.218-.5.215-.575 0-1.088-.752-.56-1.28a18.44 18.44 0 0 1 3.166-2.532Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.144 13.067v-2.134L16.55 12zm1.276 1.194a.628.628 0 01-.006.083l-.005.028-.011.053-.01.031c-.005.016-.01.031-.017.047l-.014.03a.78.78 0 01-.021.043l-.019.03a.57.57 0 01-.08.1l-.026.025a.602.602 0 01-.036.03l-.029.022-.01.008-6.782 4.522a.637.637 0 01-.708 0L4.864 14.79l-.01-.008a.599.599 0 01-.065-.052l-.026-.025-.032-.034-.021-.028a.588.588 0 01-.067-.11l-.014-.031a.644.644 0 01-.017-.047l-.01-.03c-.004-.018-.008-.036-.01-.054l-.006-.028a.628.628 0 01-.006-.083V9.739c0-.028.002-.055.006-.083l.005-.027.011-.054.01-.03a.574.574 0 01.12-.217l.031-.034.026-.025a.62.62 0 01.065-.052l.01-.008 6.782-4.521a.638.638 0 01.708 0l6.782 4.521.01.008.03.022.035.03c.01.008.017.016.026.025a.545.545 0 01.08.1l.019.03a.633.633 0 01.021.043l.014.03c.007.016.012.032.017.047l.01.031c.004.018.008.036.01.054l.006.027a.619.619 0 01.006.083zM12 0C5.373 0 0 5.372 0 12 0 18.627 5.373 24 12 24c6.628 0 12-5.372 12-12 0-6.627-5.372-12-12-12m0 10.492L9.745 12 12 13.51 14.255 12zm.638 4.124v2.975l4.996-3.33-2.232-1.493zm-6.272-.356l4.996 3.33v-2.974l-2.764-1.849zm11.268-4.52l-4.996-3.33v2.974l2.764 1.85zm-6.272-.356V6.41L6.366 9.74l2.232 1.493zm-5.506 1.549v2.134L7.45 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.644 21.576c-.837-.038-2.143.467-2.43.209-.378-.34.28-1.882.531-2.19.172-.204.452-.523.605-.663.594-.552.967-1.32.964-2.177-.004-.941-.281-1.278.659-.532.324.258.768.59 1.335.854 1.14.524-1.32-1.68-1.788-2.102-.788-.698-1.045-1.08-.609-1.353.346-.217.672-.46.977-.723 1.195-1.036 2.047-2.607 1.878-4.897-.15-2.091-4.09-7.979-5.14-8.002-.851-.018-2.58 2.107-3.527 3.256-1.028 1.247-2.637 3.408-2.958 4.677a4.726 4.726 0 0 0-.135 1.181c0 1.44.75 2.784 1.898 3.744.703.586 1.48 1.038.237 2.31-.74.76-2.433 2.363-1.452 1.91.572-.265 1-.614 1.34-.855.71-.504.99-.669.833-.03-.034.133-.028.274-.028.41 0 .893.37 1.69.95 2.278.15.154.586.486.833.7.586.506 1.196 1.864.816 2.202-.287.259-1.593-.246-2.426-.208-.837.037-2.276.566-2.239 1.563.037.998 3.17.851 3.9.858 1.645.012 1.089-.643 1.645-.631.555.016 0 .611 1.85.621.73.004 3.678.15 3.715-.847.042-.998-1.4-1.525-2.234-1.563zm-5.502 1.789c-.665.281-1.536.244-1.764-.15-.226-.398 1.138-.717 1.498-.772.359-.057 1.138-.132 1.422.396.332.613-.495.241-1.156.526zM8.257 9.099c0-.348.028-.685.103-1.007.254-1.088 1.467-2.977 2.272-4.042.744-.984 1.761-2.88 2.43-2.863.82.02 4.274 5.173 4.395 6.96.127 1.961-.535 3.305-1.47 4.193-.807.764-1.783 1.367-2.939 1.367-2.31 0-4.791-2.098-4.791-4.608zm2.129 7.714c0-1.216.994-2.204 2.221-2.204a2.21 2.21 0 0 1 2.219 2.204c0 1.218-.99 2.201-2.219 2.201a2.208 2.208 0 0 1-2.221-2.201zm1.927 4.986c-.237 0-.46-.905-.463-1.145-.007-.356.038-.755.474-.755s.47.398.473.755c.005.33-.248 1.145-.484 1.145zm3.954 1.415c-.226.395-1.1.432-1.765.15-.66-.284-1.487.087-1.155-.526.284-.527 1.063-.452 1.423-.396.358.055 1.727.375 1.497.772zM15.081 5.857c-.456 0-.85.31-1.172.775-.158.23-.45.41-.826-.23-.35-.593-.92-.922-1.508-.922-1.178 0-2.135 1.413-2.135 3.156 0 1.74.957 3.153 2.135 3.153.737 0 1.37-.557 1.769-1.39.154-.324.386-.263.566-.02.336.457.716.776 1.172.776.92 0 1.663-1.187 1.663-2.646-.001-1.466-.744-2.652-1.664-2.652zm-3.506 4.987c-.826 0-1.498-.99-1.498-2.21 0-1.226.672-2.216 1.498-2.216s1.498.99 1.498 2.217c0 1.218-.672 2.21-1.498 2.21zm3.506-.483c-.641 0-1.162-.83-1.162-1.856 0-1.028.52-1.857 1.162-1.857.644 0 1.167.829 1.167 1.857 0 1.026-.522 1.856-1.167 1.856zm.471-1.905c0 .481-.189.876-.419.876-.23 0-.418-.395-.418-.876 0-.488.188-.882.418-.882.23 0 .42.393.42.882zm-2.414 8.978a.418.418 0 0 1-.836 0c0-.229.189-.413.418-.413.228 0 .418.185.418.413zM5.57 17.36c-.165 0-1.688.02-2.163.227-.474.21.284.508.928.544.322.02.22.26.076.453-1.155 1.58-.265 1.263.513.565.192-.17.265.057.285.265.018.206.51 1.75.665-.208.063-.81.113-1.241.077-1.526-.038-.282-.193-.32-.381-.32zm12.858 0c.161 0 1.687.02 2.163.227.474.21-.284.508-.932.544-.32.02-.217.26-.076.453 1.158 1.58.268 1.263-.51.565-.192-.17-.265.057-.285.265-.021.206-.516 1.75-.665-.208-.064-.81-.113-1.241-.076-1.526.04-.282.19-.32.381-.32zm-6.254-8.812c0 .607-.235 1.101-.524 1.101-.288 0-.521-.494-.521-1.1 0-.608.233-1.101.52-1.101.289 0 .525.493.525 1.1zm3.377-.091c0 .481-.189.876-.419.876-.23 0-.418-.395-.418-.876 0-.488.188-.882.418-.882.23 0 .42.393.42.882Z\"},\"child\":[]}]})(props);\n};\nexport function SiCoder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.899 3.548c-2.247 0-3.116 1.152-3.116 3.236v1.077a4.89 4.89 0 0 1 1.594-.277c.319 0 .638.03.943.103v-.598c0-.845.434-1.34 1.303-1.34h.32v-2.2Zm7.565 0v2.2h.319c.884 0 1.305.482 1.305 1.342v2.884c0 1.253.377 1.764 1.203 2.026-.826.248-1.203.773-1.203 2.026v2.141c0 .597 0 1.181-.16 1.779a4.373 4.373 0 0 1-.783 1.529 3.876 3.876 0 0 1-.695.685v.292h1.043c2.247 0 3.116-1.152 3.116-3.236v-3.264c0-.583.304-.845.796-.845H24v-2.2h-.58v-.014c-.477 0-.795-.277-.795-.846V6.785c0-2.085-.871-3.237-3.118-3.237Zm-5.363 2.813a.13.13 0 0 0-.13.13v.25c0 .072.058.13.13.13h3.219c.072 0 .144-.058.144-.13v-.25a.13.13 0 0 0-.13-.13Zm0 1.574a.13.13 0 0 0-.13.13v.249c0 .073.058.13.13.13h4.697c.073 0 .116-.072.116-.13v-.248a.13.13 0 0 0-.13-.13ZM9.406 8.94a4.864 4.864 0 0 0-4.362 2.754c-.015 0-.014.015-.03.015a4.373 4.373 0 0 0-1.564.102A4.533 4.533 0 0 0 .044 15.6a3.713 3.713 0 0 0-.044.553c0 .554.377 1.065.928 1.138a1.088 1.088 0 0 0 1.26-1.094c0-.102 0-.218.016-.32a2.31 2.31 0 0 1 1.753-1.939 2.133 2.133 0 0 1 .855-.043c.884.116 1.754-.335 2.13-1.122.276-.583.71-1.093 1.29-1.37a2.65 2.65 0 0 1 2.029-.117c.696.248 1.218.773 1.537 1.429.333.641.492 1.092 1.202 1.18.29.043 1.102.03 1.406.014.594 0 1.189.204 1.609.626a2.23 2.23 0 0 1 .565 1.065 2.209 2.209 0 0 1-.42 1.807 2.094 2.094 0 0 1-1.072.728 2.177 2.177 0 0 1-.61.074h-3.202c-.638 0-1.145-.51-1.145-1.152v-4.27a.323.323 0 0 0-.32-.32h-.449c-.884.015-1.594 1.006-1.594 2.055v3.831a2.047 2.047 0 0 0 2.044 2.056l5.102-.015a4.34 4.34 0 0 0 2.956-1.633c.725-.889 1.058-2.054.913-3.25-.232-1.85-1.652-3.393-3.478-3.743a4.04 4.04 0 0 0-1.507-.03c-.015 0-.015-.014-.03-.014-.797-1.676-2.507-2.784-4.362-2.784Zm5.102.57a.13.13 0 0 0-.116.131v.247c0 .073.058.131.13.131h2.348c.073 0 .13-.073.13-.13V9.64a.13.13 0 0 0-.13-.13Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodersrank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.134 8.64l-5.973-3.62a.286.286 0 0 0-.412.125l-1.4 3.286 2.842 1.696a.53.53 0 0 1 0 .921l-5.335 3.14-2.267 5.274a.127.127 0 0 0 .052.203.122.122 0 0 0 .134-.035l3.914-2.365 1.545 2.219a.373.373 0 0 0 .309.167h3.708a.367.367 0 0 0 .327-.2.382.382 0 0 0-.018-.386l-2.513-3.852 5.088-3.077c.577-.349.865-.74.865-1.172V9.813c0-.433-.288-.823-.866-1.172zM13.082 4.35L.845 12.052c-.577.348-.858.739-.845 1.171v1.173c.014.432.303.816.866 1.15l6.056 3.496a.286.286 0 0 0 .412-.146l1.36-3.286-2.884-1.633a.518.518 0 0 1-.275-.384.529.529 0 0 1 .254-.537l5.295-3.245 2.183-5.316a.128.128 0 0 0-.04-.142.122.122 0 0 0-.146-.005z\"},\"child\":[]}]})(props);\n};\nexport function SiCoderwall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.354 18.708c1.46 0 2.646 1.185 2.646 2.646C24 22.814 22.814 24 21.354 24s-2.646-1.186-2.646-2.646c0-1.458 1.185-2.646 2.646-2.646zM12 9.354c1.46 0 2.646 1.186 2.646 2.646S13.46 14.646 12 14.646 9.354 13.46 9.354 12 10.54 9.354 12 9.354zm9.354 0C22.814 9.354 24 10.54 24 12s-1.186 2.646-2.646 2.646S18.708 13.46 18.708 12s1.185-2.646 2.646-2.646zM12 0c1.46 0 2.646 1.185 2.646 2.646 0 1.46-1.186 2.646-2.646 2.646S9.354 4.106 9.354 2.646 10.54 0 12 0zM2.646 0c1.46 0 2.646 1.185 2.646 2.646 0 1.46-1.186 2.646-2.646 2.646S0 4.106 0 2.646 1.186 0 2.646 0zm18.708 0C22.814 0 24 1.185 24 2.646c0 1.46-1.186 2.646-2.646 2.646s-2.646-1.186-2.646-2.646S19.893 0 21.354 0z\"},\"child\":[]}]})(props);\n};\nexport function SiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24H24V0H0V2.45455H21.5455V21.5455H2.45455V0H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodeship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zm0 1.334c.824 0 1.636.191 2.373.56a.53.53 0 0 1 .294.474v1.519a15.985 15.985 0 0 0-5.334 0V2.368c0-.2.114-.384.294-.474A5.304 5.304 0 0 1 12 1.334zm5.143 4.595c.114.043.19.152.19.274v2.122A20.956 20.956 0 0 0 12 6.648c-1.951.344-3.794.943-5.333 1.677V6.203c0-.122.076-.231.19-.274a14.648 14.648 0 0 1 5.038-.933c1.926-.024 3.725.37 5.248.933zM12 8s3.752.625 6.411 2.482c.145.101.18.299.084.448-1.104 1.74-1.97 3.922-2.596 5.838 1.252-1.28 2.24-2.085 4.1-2.101.9 0 1.598.202 2.185.516C20.42 20.618 15.503 22.72 12 22.667c-4.337.02-8.32-2.702-9.914-6.723.8-.709 1.74-1.277 3.247-1.277.92 0 1.626.212 2.22.537-.554-1.475-1.236-2.994-2.048-4.274a.33.33 0 0 1 .084-.448C8.248 8.625 12 8 12 8zm0 1.333c-1.333 2 0 8 0 8s1.333-6 0-8z\"},\"child\":[]}]})(props);\n};\nexport function SiCodesignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 1.212 13.012 2.787 12 5.62l-1.01-2.833L0 1.212 3.672 11.45l4.512.646 3.815 10.691 3.816-10.691 4.512-.646zm-3.625 4.406-4.52.648-.73 2.044 4.517-.647-.734 2.047-4.514.647L12 17.064l-2.393-6.707-4.514-.647-.735-2.047 4.518.647-.73-2.044-4.52-.648-.735-2.047 6.676.956L12 11.345l2.434-6.818 6.676-.956Z\"},\"child\":[]}]})(props);\n};\nexport function SiCodestream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5408 18.2457a6.4596 6.4596 0 0 1 0-12.5804V1.2199A.4315.4315 0 0 0 9.795.9261l-9.36 9.9713a1.61 1.61 0 0 0 0 2.2011l9.36 9.9754a.4315.4315 0 0 0 .7463-.2954zm2.9184 0a6.4596 6.4596 0 0 0 0-12.5804V1.2199a.4315.4315 0 0 1 .7463-.2938l9.3596 9.9713a1.61 1.61 0 0 1 0 2.2011l-9.3596 9.9754a.4315.4315 0 0 1-.7463-.2954zm2.2636-6.2902a3.7276 3.7307 0 0 1-3.7277 3.7307 3.7276 3.7307 0 0 1-3.7276-3.7307 3.7276 3.7307 0 0 1 3.7276-3.7307 3.7276 3.7307 0 0 1 3.7277 3.7307z\"},\"child\":[]}]})(props);\n};\nexport function SiCodewars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.072.142A1.072 1.072 0 0 0 0 1.214v21.572a1.072 1.072 0 0 0 1.072 1.072h21.856A1.072 1.072 0 0 0 24 22.786V1.214A1.072 1.072 0 0 0 22.928.142zm9.736 1.818a.904.904 0 0 1 .828.539.784.784 0 0 1 1.274.493.639.639 0 0 1 .29-.06c.33.008.59.262.625.575a1.322 1.322 0 0 1 .624-.515 1.325 1.325 0 0 1 1.718.71 1.098 1.098 0 0 1 .306-.236 1.102 1.102 0 0 1 1.483.479 1.094 1.094 0 0 1 .12.47.994.994 0 0 1 1.322 1.214.904.904 0 0 1 .874 1.438.784.784 0 0 1 .176 1.356.639.639 0 0 1 .19.224.642.642 0 0 1-.011.613 1.326 1.326 0 0 1 .482.235 1.334 1.334 0 0 1 .258 1.842 1.098 1.098 0 0 1 .35.15 1.102 1.102 0 0 1 .337 1.516 1.094 1.094 0 0 1-.344.344.994.994 0 0 1 .228 1.318 1.006 1.006 0 0 1-.605.434.904.904 0 0 1-.803 1.482.814.814 0 0 0-.008-.04.784.784 0 0 1-1.075.873.639.639 0 0 1-.098.28.625.625 0 0 1-.43.288 1.33 1.33 0 0 1 .023.456 1.334 1.334 0 0 1-1.44 1.173 1.098 1.098 0 0 1 .054.377 1.102 1.102 0 0 1-1.128 1.072 1.098 1.098 0 0 1-.47-.12.994.994 0 0 1-1.696.583.904.904 0 0 1-1.685.075.784.784 0 0 1-1.274-.493.639.639 0 0 1-.29.064.64.64 0 0 1-.621-.58l.004-.007a1.326 1.326 0 0 1-.632.523 1.334 1.334 0 0 1-1.718-.706 1.098 1.098 0 0 1-.306.232 1.102 1.102 0 0 1-1.48-.478 1.094 1.094 0 0 1-.123-.471.994.994 0 0 1-1.318-1.21.904.904 0 0 1-.874-1.442.784.784 0 0 1-.176-1.356.639.639 0 0 1-.194-.224.642.642 0 0 1 .011-.61l.019.004a1.326 1.326 0 0 1-.497-.239 1.334 1.334 0 0 1-.262-1.845 1.098 1.098 0 0 1-.35-.146 1.102 1.102 0 0 1-.337-1.52 1.094 1.094 0 0 1 .347-.34A.994.994 0 0 1 2.88 9a.904.904 0 0 1 .803-1.48.784.784 0 0 1 1.083-.836.639.639 0 0 1 .098-.28.649.649 0 0 1 .433-.288 1.33 1.33 0 0 1-.026-.452A1.334 1.334 0 0 1 6.716 4.49a1.098 1.098 0 0 1-.06-.377 1.101 1.101 0 0 1 1.13-1.073 1.094 1.094 0 0 1 .47.115.994.994 0 0 1 1.696-.579.904.904 0 0 1 .857-.617zM3.683 7.519a.784.784 0 0 0 .008.041l-.004-.04a.904.904 0 0 0-.004-.001zM17.502 19.61a1.098 1.098 0 0 0-.002-.004h-.037a1.334 1.334 0 0 0 .039.004zM13.825 3.507a1.322 1.322 0 0 0-.008.012l.008-.011zm-2.369-.014l-.003.003a.9.9 0 0 1-.665.27.896.896 0 0 1-.583-.232.994.994 0 0 1-.986.732.99.99 0 0 1-.362-.075 1.098 1.098 0 0 1-1.061 1.046 1.326 1.326 0 0 1 .123.736 1.334 1.334 0 0 1-.725 1.035 1.1 1.1 0 0 1 .307.795 1.106 1.106 0 0 1-.232.65c.321.18.53.523.523.915a1.016 1.016 0 0 1-.07.337.915.915 0 0 1 .82.937.923.923 0 0 1-.01.138.74.74 0 0 1 .157-.01c.343.007.627.25.702.57a.661.661 0 0 1 .38-.111c.31.007.561.224.632.511a.418.418 0 0 1 .381-.015 1.352 1.352 0 0 1 .303-.63.418.418 0 0 1-.12-.143.422.422 0 0 1 .004-.392.665.665 0 0 1-.325-1.117.736.736 0 0 1-.359-.336.74.74 0 0 1 .385-1.023.747.747 0 0 0-.06.026.915.915 0 0 1-.201-.262.915.915 0 0 1 .623-1.315V6.53a1.02 1.02 0 0 1 .437-1.371 1.012 1.012 0 0 1 .553-.112 1.11 1.11 0 0 1 .598-1.054 1.12 1.12 0 0 1 .06-.026.642.642 0 0 1-.109-.21.784.784 0 0 1-.455.132.784.784 0 0 1-.662-.396zm4.573 1.512a1.326 1.326 0 0 1-.587.46 1.334 1.334 0 0 1-1.255-.142v-.011a1.11 1.11 0 0 1-.553.66 1.106 1.106 0 0 1-.683.113 1.02 1.02 0 0 1-.553.889 1.016 1.016 0 0 1-.329.105.918.918 0 0 1-.43 1.169.923.923 0 0 1-.127.056.74.74 0 0 1 .086.13.738.738 0 0 1-.168.89.661.661 0 0 1 .28.283.655.655 0 0 1-.149.796.418.418 0 0 1 .153.164c.019.034.03.068.038.101a1.356 1.356 0 0 1 .672-.015.422.422 0 0 1 .056-.142.422.422 0 0 1 .34-.194.665.665 0 0 1 .796-.848.736.736 0 0 1 .112-.478.733.733 0 0 1 1.016-.224.915.915 0 0 1 .127-.306.915.915 0 0 1 1.27-.28.915.915 0 0 1 .179.153 1.02 1.02 0 0 1 1.408-.314 1.012 1.012 0 0 1 .374.422c.355-.24.833-.261 1.214-.015a1.11 1.11 0 0 1 .209.172.642.642 0 0 1 .082-.108.784.784 0 0 1-.332-.337.784.784 0 0 1 .03-.77.9.9 0 0 1-.553-.455.896.896 0 0 1-.075-.624.994.994 0 0 1-1.117-.511.994.994 0 0 1-.104-.359 1.098 1.098 0 0 1-1.427-.43zM5.249 7.37a.784.784 0 0 1-.124.46.784.784 0 0 1-.68.362c.06.235.026.49-.112.71a.896.896 0 0 1-.5.377c.31.325.373.829.12 1.225a.99.99 0 0 1-.255.269 1.098 1.098 0 0 1 .351 1.45 1.326 1.326 0 0 1 .691.276 1.334 1.334 0 0 1 .512 1.154c.28-.064.579-.019.84.15a1.106 1.106 0 0 1 .438.53 1.02 1.02 0 0 1 1.05.03 1.016 1.016 0 0 1 .257.231.914.914 0 0 1 1.225-.224.919.919 0 0 1 .112.086.74.74 0 0 1 .071-.142.74.74 0 0 1 .852-.306.661.661 0 0 1 .1-.381.664.664 0 0 1 .763-.273.418.418 0 0 1 .246-.373 1.36 1.36 0 0 1-.358-.523v-.008a.418.418 0 0 1-.25.075.422.422 0 0 1-.344-.19.665.665 0 0 1-1.132-.243.736.736 0 0 1-.47.149.733.733 0 0 1-.718-.755.915.915 0 0 1-.329.049.915.915 0 0 1-.855-1.177h-.004a1.016 1.016 0 0 1-.993-1.042 1.012 1.012 0 0 1 .168-.534 1.11 1.11 0 0 1-.64-1.035 1.11 1.11 0 0 1 .068-.358.65.65 0 0 1-.1-.019zm11.127 2.133a.913.913 0 0 1-1.225.224.926.926 0 0 1-.112-.082.74.74 0 0 1-.067.142.74.74 0 0 1-.852.302.661.661 0 0 1-.105.385.662.662 0 0 1-.762.277.418.418 0 0 1-.063.212.426.426 0 0 1-.075.086 1.356 1.356 0 0 1 .314.564.418.418 0 0 1 .187-.04.422.422 0 0 1 .343.194.665.665 0 0 1 1.136.242.736.736 0 0 1 .467-.153c.41.008.728.348.72.755a.74.74 0 0 1 0 .008v-.005a.915.915 0 0 1 .326-.052.915.915 0 0 1 .896.941.919.919 0 0 1-.037.236c.564.015 1.008.482.993 1.046a1.012 1.012 0 0 1-.168.534 1.11 1.11 0 0 1 .647 1.035 1.11 1.11 0 0 1-.075.362l.004-.007.1.018a.784.784 0 0 1 .124-.46.784.784 0 0 1 .68-.362.9.9 0 0 1 .112-.71.896.896 0 0 1 .504-.373.994.994 0 0 1-.123-1.225.99.99 0 0 1 .257-.269 1.098 1.098 0 0 1-.35-1.453 1.326 1.326 0 0 1-.696-.273h-.003a1.334 1.334 0 0 1-.512-1.158 1.082 1.082 0 0 1-.837-.145 1.106 1.106 0 0 1-.44-.535 1.02 1.02 0 0 1-1.05-.026 1.016 1.016 0 0 1-.258-.235zm-.094 3.116l-.007.066a.74.74 0 0 0 .007-.066zm-2.864-.259a1.36 1.36 0 0 1-.363.598.418.418 0 0 1 .194.187.422.422 0 0 1-.007.396.665.665 0 0 1 .329 1.113.736.736 0 0 1 .358.336.739.739 0 0 1-.32.994.915.915 0 0 1 .197.261.91.91 0 0 1-.396 1.233.919.919 0 0 1-.224.082v.004a1.02 1.02 0 0 1-.44 1.374 1.012 1.012 0 0 1-.55.109 1.11 1.11 0 0 1-.661 1.083.642.642 0 0 1 .112.21.026.026 0 0 1-.004 0v.003a.784.784 0 0 1 .456-.134.784.784 0 0 1 .661.392.9.9 0 0 1 .665-.27.896.896 0 0 1 .587.236.994.994 0 0 1 .982-.736.99.99 0 0 1 .362.079v.022a1.1 1.1 0 0 1 1.061-1.072 1.326 1.326 0 0 1-.123-.736c.056-.46.34-.837.725-1.035l.003.004a1.102 1.102 0 0 1-.31-.795 1.106 1.106 0 0 1 .232-.654 1.02 1.02 0 0 1-.452-1.251.915.915 0 0 1-.822-.934.923.923 0 0 1 .011-.142.74.74 0 0 1-.157.015.74.74 0 0 1-.698-.572.661.661 0 0 1-.385.112.667.667 0 0 1-.627-.512.418.418 0 0 1-.217.053.418.418 0 0 1-.18-.045zm-.964.93a1.36 1.36 0 0 1-.336.042c-.112 0-.22-.012-.322-.038a.418.418 0 0 1-.06.295.422.422 0 0 1-.343.195.665.665 0 0 1-.792.844.736.736 0 0 1-.112.478.74.74 0 0 1-1.02.224.915.915 0 0 1-.127.306.915.915 0 0 1-1.266.28.919.919 0 0 1-.183-.153v.004a1.02 1.02 0 0 1-1.408.31 1.012 1.012 0 0 1-.374-.418c-.355.239-.83.261-1.214.015a1.113 1.113 0 0 1-.21-.172.65.65 0 0 1-.081.105.784.784 0 0 1 .336.336.784.784 0 0 1-.034.77.89.89 0 0 1 .553.455.896.896 0 0 1 .075.624.994.994 0 0 1 1.12.515.99.99 0 0 1 .101.355 1.098 1.098 0 0 1 1.431.43 1.326 1.326 0 0 1 .587-.46c.43-.172.896-.104 1.255.142a1.106 1.106 0 0 1 .549-.65 1.106 1.106 0 0 1 .683-.108 1.02 1.02 0 0 1 .553-.893 1.02 1.02 0 0 1 .333-.104.916.916 0 0 1 .425-1.17.919.919 0 0 1 .131-.052.736.736 0 0 1-.09-.134.738.738 0 0 1 .169-.886.661.661 0 0 1-.28-.284.67.67 0 0 1 .149-.799.418.418 0 0 1-.15-.164.418.418 0 0 1-.048-.24z\"},\"child\":[]}]})(props);\n};\nexport function SiCodingame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.025 11.893c-.1.293-.07.561.009.67.078.11.223.26.55.272.327.012.697-.167.697-.167l-.136.78c-.008.008-.4.138-.88.134-.661-.004-1.321-.317-1.261-1.252.006-.081.053-.398.128-.573a1.8 1.8 0 0 1 1.105-1.073c.67-.236 1.39-.016 1.39-.016l-.141.817s-.247-.203-.755-.154a1.055 1.055 0 0 0-.323.106.853.853 0 0 0-.383.456zm3.98.594c-.08.479-.446 1.097-1.397 1.097-.951 0-1.102-.618-1.016-1.097.217-1.134 1.394-1.077 1.394-1.077s1.195-.057 1.02 1.077zm-.887-.277c-.043-.175-.241-.169-.241-.169v.001s-.213-.017-.33.21c-.136.314-.075.514-.07.532.043.175.24.169.24.169v-.001s.214.017.33-.21c.136-.314.075-.514.07-.532zm3.827-1.747l-.534 3.07h-.868l.043-.245a.84.84 0 0 1-.66.3c-.527 0-.813-.395-.707-1.003.132-.76.65-1.2 1.138-1.2.234 0 .411.099.512.275v-.002l.208-1.195zm-1.43 1.577c-.205-.004-.36.242-.402.48-.04.238-.005.427.244.43.15 0 .326-.088.394-.43.028-.163.05-.48-.236-.48zm3.554-.556s-.259-.174-.698 0c-.189.073-.374.308-.374.308l.058-.335h-.867l-.26 1.493h.87l.1-.573.002-.019c.014-.071.078-.318.305-.318.265 0 .18.334.18.334l-.198 1.159h.866l.237-1.363c.09-.525-.22-.686-.22-.686zm-1.367-.338c.22 0 .398-.156.398-.349 0-.193-.178-.349-.398-.349-.22 0-.398.156-.398.35 0 .191.178.348.398.348zm3.723.146c.605 0 .818.158.818.158l.134-.768c-.405-.102-2.343-.479-2.782 1.463-.264 1.52 1.343 1.438 1.343 1.438s.634 0 1.176-.244l.189-1.09-.885-.003-.1.6s-.55.147-.753-.265c-.077-.152-.025-.449-.025-.449s.117-.84.885-.84zm3.21 1.032l-.21 1.209h-.788l.055-.315s-.26.366-.706.366c-.65 0-.52-.655-.52-.655s.053-.561.752-.679l.646-.071s.079-.241-.303-.241-.763.207-.763.207l.1-.577s.516-.187.995-.163c1.01.005.742.919.742.919zm-.84.258s-.158.033-.3.045c-.225.034-.253.182-.257.203-.038.22.196.19.196.19s.248.009.338-.31zm4.29-1.178c-.512 0-.766.364-.766.364s-.098-.364-.57-.364c-.471 0-.756.376-.756.376l.056-.321h-.87l-.361 2.074h.87l.209-1.201s.07-.293.303-.293c.232 0 .176.297.176.297l-.208 1.197h.872l.207-1.193s.058-.301.301-.301c.244 0 .174.309.174.309l-.21 1.184h.878l.241-1.388c0 .001.133-.74-.546-.74zm4.414-.417c0 .02.01.297-.483.382-.858.11-.96.575-.97.63-.012.055.005.163-.032.35a50.196 50.196 0 0 0-.06.394H20.62s.041.293.412.293.63-.116.63-.116l-.087.536s-.26.134-.828.134c-.09 0-1.115-.002-.926-1.091.091-.524.557-1.095 1.368-1.095.38-.002.4.133.767.133.31-.008.57-.305.57-.305s.094-.15.17-.32c.06-.082.168-.258.514-.222.29.053.29.277.29.297zm-2.47.946c-.27 0-.333.357-.333.357h.53s.074-.357-.197-.357zm2.792-1.523a.179.179 0 1 0 0 .358.179.179 0 0 0 0-.358z\"},\"child\":[]}]})(props);\n};\nexport function SiCodingninjas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.198 0c-.499.264-1.209.675-1.79.984a542.82 542.82 0 000 6.242c.995-.526 1.761-.834 1.79-2.066V0zM8.743.181C7.298.144 5.613.65 4.47 1.414c-1.17.8-1.987 1.869-2.572 3.179A16.787 16.787 0 00.9 8.87c-.15 1.483-.128 3.079.025 4.677.27 1.855.601 3.724 1.616 5.456 1.57 2.62 4.313 4.109 7.262 4.19 3.41.246 7.233.53 11.411.807.022-2.005.01-5.418 0-6.25-3.206-.21-7.398-.524-11.047-.782-.443-.043-.896-.056-1.324-.172-1.086-.295-1.806-.802-2.374-1.757-.643-1.107-.875-2.832-.797-4.294.11-1.27.287-2.41 1.244-3.44.669-.56 1.307-.758 2.161-.84 5.17.345 7.609.53 12.137.858.032-1.133.01-3.46 0-6.229C16.561.752 12.776.474 8.743.181zm-.281 9.7c.174.675.338 1.305.729 1.903.537.832 1.375 1.127 2.388.877.76-.196 1.581-.645 2.35-1.282zm12.974 1.04l-5.447.689c.799.739 1.552 1.368 2.548 1.703.988.319 1.78.01 2.308-.777.209-.329.56-1.148.591-1.614zm.842 6.461c-.388.01-.665.198-.87.355.002 1.798 0 4.127 0 6.223.586-.297 1.135-.644 1.793-.998-.005-1.454.002-3.137-.005-4.707a.904.904 0 00-.917-.873z\"},\"child\":[]}]})(props);\n};\nexport function SiCodio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.997 24L1.605 17.997v-12L12 0l10.396 5.997L16.5 9.402 12 6.8 7.496 9.4v5.2l4.502 2.6 4.5-2.6 5.895 3.397L12.003 24h-.006z\"},\"child\":[]}]})(props);\n};\nexport function SiCoffeescript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.645 7.472c2.1.53 4.779.8 8.008.8 3.299 0 5.918-.27 8.008-.8 2.23-.52 3.299-1.22 3.299-1.88 0-.47-.48-.93-1.35-1.28.2.13.35.35.35.59 0 .67-1.01 1.22-3.039 1.68-1.88.41-4.279.7-7.198.7-2.82 0-5.329-.29-7.138-.68-1.95-.48-2.97-1-2.97-1.68 0-.28.13-.52.52-.8-1.22.47-1.88.87-1.88 1.47.07.68 1.16 1.36 3.39 1.88zm4.689-2.16c2.27-.2 2.929-1.659 5.588-1.899 1.31-.1 2.14.16 2.23.62.08.43-.57.72-1.36.78-1.09.11-1.54-.28-1.63-.65-.81.09-.94.43-.9.67.09.46 1.07.92 2.75.76 1.9-.15 2.54-.9 2.38-1.65-.2-.98-1.66-1.8-4.28-1.55-3.359.3-3.339 1.86-5.628 2.05-.94.09-1.46-.13-1.55-.5-.06-.37.4-.55.94-.59.5-.05 1.11.04 1.4.2.21-.11.28-.22.26-.35-.1-.35-.79-.5-1.66-.44-1.7.15-1.7.91-1.64 1.25.17.87 1.48 1.45 3.1 1.3zm11.417 3.84c-2.1.49-4.779.809-8.008.809-3.3 0-5.989-.34-8.078-.8-1.88-.48-2.88-1.01-3.23-1.56.18 1.23.49 2.42.89 3.55-.48.3-.91.67-1.3 1.17a4.519 4.519 0 00-1.019 3.098 3.6 3.599 0 001.42 2.62c.87.68 1.81.88 2.879.68.41-.07.87-.28 1.29-.42-.88 0-1.62-.28-2.36-.87a3.55 3.549 0 01-1.49-2.42c-.2-.94 0-1.81.53-2.579.12-.15.25-.28.39-.4.3.73.62 1.45.98 2.12.81 1.23 1.62 2.299 2.43 3.459.35.68.58 1.35.74 2.019a3.899 3.899 0 002.229 1.5c1.15.4 2.35.58 3.579.51h.13a10.197 10.197 0 003.689-.52 4.179 4.179 0 002.16-1.49h.07c.13-.67.35-1.34.67-2.02.799-1.17 1.619-2.229 2.419-3.458A20.995 20.993 0 0024 7.612c-.43.6-1.44 1.13-3.25 1.54z\"},\"child\":[]}]})(props);\n};\nexport function SiCoggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.684 0A3.683 3.683 0 0 0 0 3.684v10.92c2.052-.535 3.606-1.577 5.158-3.13h7.367v7.368c-1.88 1.88-5.438 4.598-8.052 5.158h15.843A3.683 3.683 0 0 0 24 20.316V8.881c-1.544.537-3.087 1.575-4.63 3.119l-4.74 4.736V9.37H7.265l3.683-3.685c2.35-2.35 5.96-5.119 8.58-5.684H3.684z\"},\"child\":[]}]})(props);\n};\nexport function SiCognizant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.955 9.425C.842 9.425 0 10.265 0 11.38c0 1.132.821 1.953 1.953 1.953.73 0 1.374-.405 1.725-1.084l.01-.02-.695-.368-.009.023c-.206.437-.588.686-1.046.686-.663 0-1.18-.523-1.18-1.192 0-.686.515-1.202 1.197-1.202.442 0 .778.208 1 .617l.01.022.668-.427-.012-.019a1.906 1.906 0 0 0-1.666-.944zm20.78.189v.903h-.467v.673h.465v.876c0 .892.285 1.188 1.155 1.188h.108v-.701c-.459 0-.515-.066-.515-.493v-.87H24v-.673h-.515v-.903zm-9.858.002v.68h.75v-.68zm-4.727.845c-.619 0-1.33.456-1.33 1.425 0 .963.738 1.422 1.315 1.424.356 0 .647-.148.827-.362v.257c0 .356-.257.673-.662.673a.802.802 0 0 1-.761-.465l-.662.373c.22.428.73.79 1.425.79.926 0 1.413-.625 1.413-1.397v-2.662h-.75v.295a1.07 1.07 0 0 0-.815-.35zm9.599 0c-.619 0-1.331.456-1.331 1.425 0 .963.739 1.422 1.32 1.424.356 0 .646-.148.826-.362v.308h.75v-2.739h-.75v.266c-.18-.19-.459-.322-.815-.322zm-6.234.002a.941.941 0 0 0-.756.362v-.308h-.744v2.739h.75V11.76c0-.46.236-.656.52-.656.334 0 .505.214.505.581v1.57h.76v-1.67c0-.706-.389-1.122-1.035-1.122zm9.602 0a.941.941 0 0 0-.755.362v-.308h-.744l-.002 2.739h.75V11.76c0-.46.236-.656.52-.656.336 0 .505.214.505.581v1.57h.76v-1.67c0-.706-.387-1.122-1.034-1.122zm-15.9.01a1.42 1.42 0 0 0-1.423 1.413l-.002.01a1.42 1.42 0 1 0 1.425-1.423zm8.704.044v.662h1.42l-1.44 1.408v.669h2.474v-.664h-1.468l1.44-1.402v-.673zm-1.055.008v2.738h.75v-2.738zm-4.58.622c.406 0 .702.328.702.733 0 .405-.296.739-.701.739a.72.72 0 0 1-.733-.739c0-.422.317-.733.733-.733zm9.598 0c.405 0 .7.328.7.733.003.405-.293.739-.7.739a.72.72 0 0 1-.733-.739c0-.422.319-.735.733-.733zm-12.671.026c.382 0 .69.325.69.713a.704.704 0 0 1-.69.712c-.388 0-.684-.322-.684-.712 0-.39.296-.713.684-.713z\"},\"child\":[]}]})(props);\n};\nexport function SiCohost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.306 3.3449c-1.711-.0223-3.5155.2213-5.4157.7305-2.1819.5847-4.082 1.4033-5.699 2.4592C2.574 7.5906 1.3988 8.844.666 10.2908c-.7329 1.447-.8611 3.0584-.3848 4.8364.4737 1.768 1.3905 3.099 2.75 3.9906 1.3594.8917 3.0042 1.394 4.9353 1.51 1.931.1159 3.9878-.1186 6.1697-.7033 1.9645-.5264 3.6986-1.2507 5.203-2.172-1.2805.086-3.208-.1-4.248-1.2658-.3806-.4267-.5702-.9619-.5702-1.6056 0-.6474.1896-1.1847.5702-1.6095.3807-.4249.8935-.7437 1.539-.9552.6456-.2115 1.3656-.3164 2.1601-.3164.7504 0 2.2412.109 3.2733.8926.1537.1167.2925.2454.418.3848.2557.284.427.6164.5117.9982.12-.1956.231-.3947.334-.5977.7365-1.4534.868-3.0646.3945-4.8325-.4737-1.768-1.3927-3.0936-2.7558-3.9789-.4473-.2905-.9258-.5389-1.4335-.7461-1.2534-.5116-2.6405-.7549-4.2264-.7755Zm-6.7536 8.655c.6216 0 1.1947.0558 1.7207.1661.526.1104.9764.2533 1.3534.4317.377.1784.6511.37.8203.5723l-1.412.9259c-.206-.2244-.5182-.403-.9375-.5372-.4193-.1342-.9297-.2012-1.5293-.2012-.2942 0-.5908.0224-.8905.0684-.2998.046-.5741.124-.8242.2344s-.4529.2662-.6055.4649c-.1526.1986-.2285.4506-.2285.756 0 .3015.0759.5493.2285.746.1526.1969.3554.353.6055.4689.25.1158.5244.1983.8242.246.8389.134 1.7483.081 2.4217-.1484.4322-.147.7356-.3165.9121-.5078l1.4472.922c-.1508.1618-.4181.3335-.7988.5156-.3806.182-.838.3359-1.375.461-.8718.203-2.0731.2818-3.322.0293-.5186-.1048-.987-.27-1.4063-.4981-.4193-.228-.7536-.5268-1.0019-.8946-.2482-.3679-.373-.814-.373-1.34 0-.5334.1248-.9858.373-1.3536.2483-.3679.5826-.6625 1.002-.8868.4192-.2244.8876-.3872 1.4061-.4884A8.2896 8.2896 0 0 1 8.5524 12zm10.238 1.3791c-.7688 0-1.3665.1338-1.795.4004-.4284.2667-.6425.6345-.6425 1.1017 0 .4635.2141.8295.6426 1.1017.4284.2722 1.026.4102 1.7948.4102.7687 0 1.366-.1383 1.789-.4141.423-.276.6328-.6417.6328-1.0978 0-.4672-.2119-.835-.6367-1.1017-.4248-.2666-1.0201-.4004-1.785-.4004z\"},\"child\":[]}]})(props);\n};\nexport function SiCoil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 000 12a12 12 0 0012 12 12 12 0 0012-12A12 12 0 0012 0zm.465 5.814a4.56 4.56 0 012.756.83c1.215.886 1.465 1.856 1.465 2.5a1.845 1.845 0 01-.086.6 2.77 2.77 0 01-2.305 1.906 5.675 5.675 0 01-.654.055c-1 0-1.33-.41-1.33-.87 0-.624.6-1.364 1.035-1.364a.28.28 0 01.154.045.76.76 0 00.375.093.265.265 0 00.11 0 .55.55 0 00.515-.558c0-.55-.625-1.25-2-1.25a5.285 5.285 0 00-1.55.244A4.12 4.12 0 008.685 9.8 4 4 0 008 12.05 3.945 3.945 0 008.5 14a4.235 4.235 0 003.69 2.06h.24c2-.11 2.46-1.09 2.906-1.28a1.53 1.53 0 01.299-.065c.325 0 .745.164 1.035.86a.73.73 0 01.07.3c0 1.145-2.67 2.18-4.22 2.26h-.35A6.38 6.38 0 016.62 15a5.9 5.9 0 01-.77-2.94 6.085 6.085 0 011.035-3.39 6.195 6.195 0 013.385-2.5 7.295 7.295 0 012.195-.356z\"},\"child\":[]}]})(props);\n};\nexport function SiCoinbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.844 11.053c-.872 0-1.553.662-1.553 1.548s.664 1.542 1.553 1.542c.889 0 1.564-.667 1.564-1.547 0-.875-.664-1.543-1.564-1.543zm.006 2.452c-.497 0-.86-.386-.86-.904 0-.523.357-.909.854-.909.502 0 .866.392.866.91 0 .517-.364.903-.86.903zm1.749-1.778h.433v2.36h.693V11.11H6.599zm-5.052-.035c.364 0 .653.224.762.558h.734c-.133-.713-.722-1.197-1.49-1.197-.872 0-1.553.662-1.553 1.548 0 .887.664 1.543 1.553 1.543.75 0 1.351-.484 1.484-1.203h-.728a.78.78 0 01-.756.564c-.502 0-.855-.386-.855-.904 0-.523.347-.909.85-.909zm18.215.622l-.508-.075c-.242-.035-.415-.115-.415-.305 0-.207.225-.31.53-.31.336 0 .55.143.595.379h.67c-.075-.599-.537-.95-1.247-.95-.733 0-1.218.375-1.218.904 0 .506.317.8.958.892l.508.075c.249.034.387.132.387.316 0 .236-.242.334-.577.334-.41 0-.641-.167-.676-.42h-.681c.064.581.52.99 1.35.99.757 0 1.26-.346 1.26-.938 0-.53-.364-.806-.936-.892zM7.378 9.885a.429.429 0 00-.444.437c0 .254.19.438.444.438a.429.429 0 00.445-.438.429.429 0 00-.445-.437zm10.167 2.245c0-.645-.392-1.076-1.224-1.076-.785 0-1.224.397-1.31 1.007h.687c.035-.236.22-.432.612-.432.352 0 .525.155.525.345 0 .248-.317.311-.71.351-.531.058-1.19.242-1.19.933 0 .535.4.88 1.034.88.497 0 .809-.207.965-.535.023.293.242.483.548.483h.404v-.616h-.34v-1.34zm-.68.748c0 .397-.347.69-.769.69-.26 0-.48-.11-.48-.34 0-.293.353-.373.676-.408.312-.028.485-.097.572-.23zm-3.679-1.825c-.386 0-.71.162-.94.432V9.856h-.693v4.23h.68v-.391c.232.282.56.449.953.449.832 0 1.461-.656 1.461-1.543 0-.886-.64-1.548-1.46-1.548zm-.103 2.452c-.497 0-.86-.386-.86-.904 0-.517.369-.909.865-.909.503 0 .855.386.855.91 0 .517-.364.903-.86.903zm-3.187-2.452c-.45 0-.745.184-.919.443v-.385H8.29v2.975h.693v-1.617c0-.455.289-.777.716-.777.398 0 .647.282.647.69v1.704h.692v-1.755c0-.748-.386-1.278-1.142-1.278zM24 12.503c0-.851-.624-1.45-1.46-1.45-.89 0-1.542.668-1.542 1.548 0 .927.698 1.543 1.553 1.543.722 0 1.287-.426 1.432-1.03h-.722c-.104.264-.358.414-.699.414-.445 0-.78-.276-.854-.76H24v-.264zm-2.252-.23c.11-.414.422-.615.78-.615.392 0 .693.224.762.615Z\"},\"child\":[]}]})(props);\n};\nexport function SiCoinmarketcap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.738 14.341c-.419.265-.912.298-1.286.087-.476-.27-.738-.898-.738-1.774v-2.618c0-1.264-.5-2.164-1.336-2.407-1.416-.413-2.482 1.32-2.882 1.972l-2.498 4.05v-4.95c-.028-1.14-.398-1.821-1.1-2.027-.466-.135-1.161-.081-1.837.953l-5.597 8.987A9.875 9.875 0 0 1 2.326 12c0-5.414 4.339-9.818 9.672-9.818 5.332 0 9.67 4.404 9.67 9.818.004.018.002.034.003.053.05 1.049-.29 1.883-.933 2.29zm3.08-2.34-.001-.055C23.787 5.353 18.497 0 11.997 0 5.48 0 .177 5.383.177 12c0 6.616 5.303 12 11.82 12 2.991 0 5.846-1.137 8.037-3.2.435-.41.46-1.1.057-1.541a1.064 1.064 0 0 0-1.519-.059 9.56 9.56 0 0 1-6.574 2.618c-2.856 0-5.425-1.263-7.197-3.268l5.048-8.105v3.737c0 1.794.696 2.374 1.28 2.544.584.17 1.476.054 2.413-1.468.998-1.614 2.025-3.297 3.023-4.88v2.276c0 1.678.672 3.02 1.843 3.68 1.056.597 2.384.543 3.465-.14 1.312-.828 2.018-2.354 1.944-4.193z\"},\"child\":[]}]})(props);\n};\nexport function SiComicfury (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 6.959 1.899-3.256 2.725 2.736 2.973-.204L9.3 3.297l2.213 2.693 8.655-.252.406-1.085L24 5.128v5.268l-11.248 3.526-1.085 6.781H0V6.959zm2.195-.748L1.041 8.137l1.75 1.748 1.133-1.948-1.729-1.726zm7.409-.448L8.48 7.546l1.224 1.598 1.137-1.766-1.237-1.615zm3.901 3.751-1.992.349.997 2.025.995-2.374zm3.319-.565-1.992.348.996 2.025.996-2.373zm3.228-.611-1.991.349.996 2.025.995-2.374zm3.183-.566-1.992.349.996 2.025.996-2.374z\"},\"child\":[]}]})(props);\n};\nexport function SiComma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.72682 24c0-.55531-.0434-1.02051.02045-1.46891.0272-.1912.25037-.39595.43237-.51143.88731-.56315 1.85122-1.01275 2.67734-1.65857 2.67584-2.09206 4.26201-4.84612 4.3487-8.42366.02452-1.01583-.34891-1.2696-1.20211-.87389-2.4628 1.1424-5.11119.47263-6.5246-1.65034-1.54137-2.3155-1.32431-5.3984.52253-7.4211 2.359-2.58344 6.24053-2.66074 8.91722-.19346 1.60337 1.47794 2.3652 3.38627 2.5552 5.5569.63691 7.27188-3.01046 13.2657-9.64881 15.89874-.657.26045-1.3307.4744-2.09828.74571\"},\"child\":[]}]})(props);\n};\nexport function SiCommerzbank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.277 1.538a.018.018 0 0 0-.012.007l-4.74 8.21-1.398 2.418c.446.774.794 1.353 1.22 2.09.671 1.164 1.548 1.597 3.13 1.889a12.9 12.9 0 0 1 .697-1.392l2.783-4.824 2.786-4.826c.404-.702 1.296-2.143 2.57-2.965-.04.025-.07.059-.109.085.07-.047.137-.094.209-.136.46-.278.98-.467 1.413-.515.339-.038 1.465-.041 2.74-.041zm11.59.505c-1.048-.008-1.462.007-2.545.008-1.39 0-2.381.887-3.083 1.773.372.493.68.971.863 1.288a13357.605 13357.605 0 0 0 5.571 9.648c.404.7 1.209 2.196 1.284 3.71.029.574-.079 1.165-.265 1.592-.131.3-.652 1.207-1.256 2.253L24 12.678v-.008a.013.013 0 0 0-.002-.005zM.001 8.163l.095 4.946L0 8.163zm.093 4.946 1.132 1.964 4.264 7.384a.015.015 0 0 0 .012.005h12.265c.446-.779.664-1.147 1.311-2.282.709-1.242.278-2.681-.037-3.472-.618.076-1.18.093-1.547.093H6.35c-.809 0-2.505-.05-3.853-.741-.513-.263-.972-.65-1.248-1.027-.176-.238-.625-1.003-1.156-1.924z\"},\"child\":[]}]})(props);\n};\nexport function SiCommitlint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.988 4.822v.901h1.845v6.337c0 .809.187 1.433.563 1.875.379.438.913.657 1.6.657h1.458v-.97H12.11c-.37 0-.652-.13-.844-.393-.187-.263-.281-.652-.281-1.17V4.823ZM3.459 7.418c-1.084 0-1.933.325-2.546.976C.304 9.044 0 9.944 0 11.096c0 1.15.304 2.051.913 2.702.613.65 1.462.976 2.546.976a3.67 3.67 0 0 0 1-.137c.33-.088.65-.221.958-.4V13.04c-.271.259-.565.45-.882.576a3 3 0 0 1-1.076.18c-.717 0-1.272-.232-1.664-.7-.387-.47-.582-1.138-.582-2.001 0-.868.195-1.535.582-2.002.388-.467.943-.7 1.664-.7.388 0 .734.06 1.038.181a3.1 3.1 0 0 1 .92.588V7.956a4.255 4.255 0 0 0-.97-.406 3.74 3.74 0 0 0-.988-.132Zm12.855 6.123v1.128H24V13.54zm3.156 2.255-2.302 3.382h1.3l1.694-2.204 1.684 2.204h1.3l-2.301-3.382z\"},\"child\":[]}]})(props);\n};\nexport function SiCommodore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.202.798C5.016.798 0 5.814 0 12s5.016 11.202 11.202 11.202c1.094 0 2.153-.157 3.154-.45v-5.335a6.27 6.27 0 1 1 0-10.839v-5.33c-1-.293-2.057-.45-3.154-.45Zm3.375 6.343v4.304h5.27L24 7.14Zm-.037 5.377v4.304h9.423l-4.156-4.304z\"},\"child\":[]}]})(props);\n};\nexport function SiCommonworkflowlanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.905 0L8.571 5.4l.037.037.096.096 3.586 3.395-2.24 2.252h-.01l-1.576 1.586 3.737 3.766-3.735 3.803.126.139v.012L12.052 24l1.608-1.64-1.98-2.034 3.737-3.79-1.608-1.642-.01.012-2.13-2.129 3.867-3.866-.017-.015.016-.016-3.641-3.524 3.64-3.694z\"},\"child\":[]}]})(props);\n};\nexport function SiCompilerexplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.78 14.147h8.914v1.657H8.78Zm0-2.94h7.355v1.657H8.78Zm0-2.943h8.914V9.92H8.78Zm13.203 9.195a.656.656 0 0 1 0-.638c.13-.238.252-.476.366-.728a.271.271 0 0 0-.249-.383h-2.166a.656.656 0 0 0-.552.297 7.59 7.59 0 0 1-.977 1.208 7.323 7.323 0 0 1-5.21 2.156 7.321 7.321 0 0 1-5.208-2.157 7.32 7.32 0 0 1-2.157-5.21c0-1.969.766-3.821 2.156-5.211a7.323 7.323 0 0 1 5.21-2.156c1.967 0 3.819.766 5.21 2.157.368.369.696.783.976 1.207.12.186.327.297.551.297H22.1a.273.273 0 0 0 .248-.383 9.894 9.894 0 0 0-.365-.728.665.665 0 0 1 0-.638l.735-1.332a.663.663 0 0 0-.11-.787l-1.836-1.836a.659.66 0 0 0-.787-.11l-1.335.738a.656.656 0 0 1-.638-.004 9.767 9.768 0 0 0-2.005-.824.657.657 0 0 1-.452-.449L15.131.48a.664.664 0 0 0-.635-.48h-2.598a.657.657 0 0 0-.634.48l-.421 1.46a.657.657 0 0 1-.452.448c-.697.203-1.37.48-2.005.828-.2.11-.438.11-.638.003L6.41 2.484a.663.663 0 0 0-.787.11L3.788 4.432a.659.66 0 0 0-.11.787l.737 1.335c.11.2.107.438-.003.638a9.767 9.768 0 0 0-.825 2.005.657.657 0 0 1-.448.452l-1.46.42a.664.664 0 0 0-.479.635v2.599c0 .293.193.556.48.635l1.459.42a.657.657 0 0 1 .448.453c.204.697.48 1.37.828 2.004.11.2.11.438.004.64l-.738 1.334a.663.663 0 0 0 .11.786l1.835 1.837a.659.66 0 0 0 .787.11l1.335-.738c.2-.11.438-.107.638.003a9.767 9.768 0 0 0 2.005.825c.217.062.39.23.452.448l.42 1.46c.083.283.342.48.635.48h2.598a.657.657 0 0 0 .635-.48l.421-1.46a.657.657 0 0 1 .452-.448 9.975 9.976 0 0 0 2.004-.828.67.67 0 0 1 .639-.004l1.335.739c.259.14.58.096.786-.11l1.836-1.837a.659.66 0 0 0 .11-.787z\"},\"child\":[]}]})(props);\n};\nexport function SiComposer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.66 0c-.07 0-.114.034-.164.095a.416.416 0 00-.07.43c.19.41.363.83.528 1.25.01.02.022.04.039.068-.04-.002-.05-.022-.063-.043-.297-.31-.648-.557-.998-.804-.473-.337-.99-.603-1.503-.872a.578.578 0 00-.214-.065l-.384-.04c-.202-.025-.355.09-.355.292 0 .108-.046.132-.135.14-.08.004-.187.115-.196.192a.694.694 0 00.228.619c.444.415.873.845 1.303 1.275l.015.007a.1.1 0 01.028.038c-.007.003-.014.003-.02.003a.057.057 0 01-.035-.022c-.002-.002-.005-.005-.005-.007-.062-.036-.127-.07-.187-.11-.3-.2-.595-.404-.895-.598a.943.943 0 00-.461-.17.453.453 0 00-.392.143.28.28 0 00-.088.253c.016.146.115.237.223.312.502.338.95.734 1.366 1.174.036.038.074.079.115.112.118.096.19.224.262.356.033.06.02.074-.043.074-.428 0-.836.118-1.246.204-.168.036-.334.094-.394.28-.065.21-.096.328.16.392a9.57 9.57 0 011.49.516.55.55 0 01.117.077c.12.104.23.219.362.303.38.247.77.478 1.22.583.053.012.1.039.15.05.05.015.085.044.095.094.029.178.139.279.305.33.02.006.038.02.06.028.052.017.076.055.093.108.067.24.137.478.212.715.026.08.002.1-.07.123-.372.108-.742.22-1.112.334-.132.04-.134.043-.067.163l.908 1.635c.127.23.132.23.365.11.024-.012.057-.053.079-.014.02.036.06.089.024.13-.113.129-.19.28-.286.42-.031.045-.031.074-.005.117.1.166.202.334.3.502.012.019.034.043.03.058l-.123.367a2.538 2.538 0 00-.317-.716c-.18-.288-.41-.542-.62-.811-.033-.04-.072-.077-.11-.115-.2-.207-.456-.332-.7-.478a1.026 1.026 0 00-.34-.127c-.374-.08-.746-.11-1.12.004-.075.024-.116.005-.161-.06-.092-.127-.166-.273-.29-.372-.3-.24-.616-.458-.985-.583a2.95 2.95 0 00-.865-.168 4.267 4.267 0 00-.463.017c-.396.03-.79.074-1.14.293-.07.043-.15.067-.221.108-.36.194-.716.386-1.016.679a13.1 13.1 0 00-.897.944c-.322.384-.565.818-.783 1.267-.015.03-.022.07-.07.096l-.12-.744c-.007-.046.022-.043.053-.038.089.01.175.014.264.026.067.01.103-.005.12-.08.022-.102.046-.206.067-.311.082-.397.2-.78.303-1.17.02-.074.007-.1-.07-.12-.381-.09-.763-.192-1.145-.283-.072-.017-.106-.043-.084-.12.087-.298.125-.61.242-.9a.178.178 0 01.056-.087c.098-.076.17-.165.16-.302-.007-.103.041-.168.14-.214.182-.086.358-.187.53-.288a.84.84 0 00.327-.333c.322-.605.59-1.242.98-1.81.033-.051.06-.106.1-.15.252-.264.488-.544.771-.78.089-.074.113-.175.115-.285 0-.128-.074-.217-.151-.305-.075-.087-.151-.161-.279-.147-.028.003-.057-.01-.088-.014.019-.04.05-.048.076-.065.339-.218.677-.437 1.016-.658.41-.264.819-.53 1.232-.794.052-.034.076-.06.019-.11-.015-.013-.024-.03-.036-.044-.084-.099-.084-.099-.2-.03L8.084 3.693c-.101.062-.101.062-.152-.05-.112-.263-.177-.54-.261-.81-.02-.062-.003-.098.045-.137.289-.23.553-.49.82-.742a.604.604 0 00.186-.37c.022-.17-.09-.259-.244-.196a1.707 1.707 0 00-.221.105c-.68.375-1.405.632-2.149.848-.043.012-.082.026-.118-.02-.074-.09-.185-.14-.278-.208a.073.073 0 00-.063-.015c-.1.027-.204.056-.266.147-.159.233-.358.44-.507.682-.17.28-.333.562-.525.828-.036.05-.05.058-.084-.002L3.63 2.635a2.837 2.837 0 00-.223-.338c-.094-.118-.209-.176-.358-.16-.026.004-.06-.004-.07.037-.02.11-.07.226-.057.332.034.27.082.542.15.806.114.459.244.912.38 1.364.133.444.282.88.426 1.323.012.038.033.072-.02.103-.067.038-.175.058-.187.125-.012.07.05.15.08.225l.007.017c.024.058.036.144.08.166.057.029.11-.05.162-.082.048-.03.065-.021.087.029.124.293.252.583.38.876a.18.18 0 01.006.137 4.138 4.138 0 00-.192.72c-.012.07-.038.07-.09.055a107.637 107.637 0 00-.834-.21c-.123-.032-.123-.032-.137.093v.01c-.06.665-.12 1.33-.183 1.994-.004.06.003.085.068.092.194.024.386.055.578.084.036.005.067.007.058.06-.043.225-.077.453-.125.677a.178.178 0 00.034.163l.2.264c.045.063.08.144.037.209a.201.201 0 00-.033.118c.007.415.007.83.026 1.246.01.2.007.403.012.605.01.535.04 1.068.06 1.603.01.262-.036.52-.024.783.002.065.017.1.084.122.16.05.312.116.473.166a.28.28 0 01.185.156.436.436 0 01.038.219c-.002.072.024.115.082.156.247.177.492.36.74.542.65.48 1.3.963 1.954 1.44.06.045.074.081.038.146-.034.062-.055.135-.089.197-.029.058-.024.094.031.134.082.058.161.123.236.188.065.055.067.141.048.208-.015.05-.087.005-.132 0-.032-.002-.063-.01-.094-.014-.31-.05-.617-.13-.932-.156-.5-.04-1.003-.084-1.51-.07-.026 0-.067-.024-.074.03-.007.042-.017.088.031.117.024.014.05.026.077.036.283.098.547.24.807.39.168.095.333.203.518.268.034.012.068.038.108.002-.278-.22-.554-.442-.833-.665.04-.029.07-.017.1-.014.332.026.664.072.988.15.713.17 1.421.361 2.122.572.23.07.475.104.682.243.05.033.08.067.074.13.012.014.027.033.01.045-.02.012-.036-.012-.05-.024-.164-.014-.327-.026-.488-.043-.463-.046-.924-.11-1.392-.096-.35.01-.701-.015-1.05.01-.494.033-.989.098-1.48.15-.025.003-.063-.002-.063.027 0 .036.014.077.06.087a.58.58 0 00.113.012c.25.01.497.007.746.011.62.015 1.242-.012 1.86.041.224.02.45.01.668.05 1.03.193 2.055.394 3.078.618.12.026.243.045.36.103-.055.05-.127.065-.158.137-.22.506-.363 1.04-.53 1.563-.03.09.03.192.12.216a.278.278 0 00.352-.22c.02-.109.039-.217.053-.328.005-.036.017-.055.053-.067.132-.053.26-.108.393-.16a1.63 1.63 0 00.529-.325c.134-.127.247-.274.25-.47 0-.06.014-.099.062-.135.22-.17.418-.365.61-.564a6.03 6.03 0 01.6-.533c.024-.02.043-.048.08-.034l.56.221c-.374.228-.73.447-1.082.66-.017.01-.036.015-.053.02a.813.813 0 00-.338.201c-.375.372-.567.814-.545 1.35.014.36.22.53.57.45.616-.145 1.14-.734 1.233-1.38.024-.18.052-.357-.077-.513a2.25 2.25 0 00-.178-.195c.02-.012.029-.019.039-.026.777-.463 1.625-.778 2.475-1.07 1.04-.359 2.1-.644 3.164-.918l-.075-.017c-.07.007-.136.015-.206.02a5.097 5.097 0 00-.872.134l-.016.007a.226.226 0 01-.094.015c-.014 0-.03 0-.048.002.065-.062.252-.264.303-.25l.002-.005h.005c0-.007.019-.02.019-.02.017-.03.04-.049.074-.05a.694.694 0 01.197-.189c.05-.03.103-.062.16-.086h-.001c.16 0 .319-.194.486-.262-.001-.006-.01-.01-.013-.017-.24.034-.476.072-.706.16-.492.181-1.001.323-1.481.534-.742.324-1.482.648-2.195 1.035a.818.818 0 01-.077.036l-.055-.504c-.005-.034.012-.048.04-.063.632-.334 1.266-.665 1.926-.938.543-.226 1.08-.47 1.626-.691.002-.005.005-.01.01-.01h.004c.003 0 .003.003.005.003.007.012.002.02-.005.026-.002.003-.005.003-.01.005h-.002a3.358 3.358 0 00-.372.66c.038.01.053-.003.067-.018.113-.12.226-.237.336-.357.214-.234.44-.458.704-.64.017-.012.045-.022.033-.048-.014-.03-.045-.015-.067-.01-.247.05-.494.096-.74.154-.081.019-.076-.01-.08-.067-.001-.197.028-.39.035-.586a.63.63 0 01.058-.247c.098-.226.197-.45.297-.675.05-.113.08-.233.099-.353.03-.192.055-.386.074-.58.03-.3.137-.58.187-.875.065-.374.118-.751.257-1.11.125-.316.245-.633.372-.947.176-.428.399-.833.505-1.29.036-.158.076-.302.004-.458-.04-.084-.052-.18-.081-.271a.392.392 0 01-.012-.204c.048-.245.07-.488-.063-.716-.036-.062.008-.1.044-.14.088-.09.093-.131.016-.23-.088-.11-.175-.223-.27-.326-.08-.084-.154-.175-.234-.262-.055-.033-.05-.055.012-.076.14-.048.276-.108.418-.152.08-.024.1-.07.106-.141.045-.605.09-1.213.139-1.818.007-.084-.007-.1-.094-.074-.454.144-.907.28-1.363.422-.14.044-.142.044-.204-.093-.231-.52-.411-1.057-.6-1.59a.392.392 0 01.007-.316c.067-.188.024-.377.019-.567a.104.104 0 01-.005-.03 9.16 9.16 0 00-.254-1.547 6.02 6.02 0 00-.5-1.27c-.228-.432-.473-.86-.737-1.275-.113-.178-.233-.339-.434-.427A.702.702 0 0016.66 0zm-2.642.26a.364.364 0 01.2.051 19.041 19.041 0 011.469.805c.247.158.482.338.715.52.11.087.192.217.284.33.038.047.012.09-.024.124-.024.024-.058.039-.087.055-.031.022-.072.04-.06.087.01.04.055.05.09.058a.27.27 0 00.16-.015c.168-.07.31.048.418.166.028.03.04.093.093.074.055-.021.063-.081.058-.137-.012-.15-.05-.297-.084-.444-.09-.377-.27-.718-.418-1.073-.053-.127-.11-.254-.163-.382-.03-.07.01-.132.048-.182.03-.04.08-.005.122.014.152.068.238.19.312.332.08.15.178.29.262.436.144.255.322.495.437.762.168.388.382.758.483 1.176.086.37.208.732.252 1.114.016.144-.01.283.007.422.033.279-.008.543-.123.798-.03.07-.021.136.012.208.252.533.46 1.083.67 1.635.027.072.015.1-.06.123-.482.14-.965.288-1.447.434-.07.022-.092.003-.113-.06-.123-.326-.24-.646-.353-.967-.024-.068-.053-.104-.128-.087-.088.022-.136-.017-.175-.096-.062-.127-.113-.28-.216-.36-.103-.08-.266-.082-.403-.115-.103-.027-.207-.058-.312-.075a1.428 1.428 0 01-.612-.273c-.303-.224-.615-.43-.934-.627-.104-.007-.202-.036-.303-.06-.278-.057-.554-.117-.833-.17-.067-.012-.08-.063-.084-.108-.007-.056.007-.11.065-.144.089-.053.19-.063.29-.08a9.69 9.69 0 011.345-.13c.11-.002.209.04.312.066a.18.18 0 00.166-.03c.216-.143.434-.28.65-.422.034-.021.096-.036.07-.093a.083.083 0 00-.015-.022c-.012-.01-.026-.012-.043-.012l-.05.002h-.007a1.159 1.159 0 00-.668.2c-.08.05-.26.019-.31-.056-.34-.516-.823-.888-1.282-1.29-.204-.176-.403-.361-.62-.525-.054-.04-.08-.144-.042-.196.048-.072.11-.041.168-.015.185.082.362.175.528.293.564.403 1.17.744 1.772 1.085a.51.51 0 00.05.027c.092.03.14-.01.125-.106a.267.267 0 00-.062-.134c-.488-.574-1.001-1.124-1.506-1.683-.105-.116-.23-.216-.348-.32a.854.854 0 01-.22-.278.16.16 0 01.023-.19c.04-.045.077-.055.137-.024.17.082.332.178.483.293.266.202.535.403.804.605l.807.603c.02.017.043.033.062.05.05.046.094.094.142.142l.029.029c.019.019.036.045.06.06.055.033.112.062.17.004.02-.02.029-.036.03-.055 0-.007.004-.014 0-.021l-.001-.01a.171.171 0 00-.043-.072l-.18-.187a4.537 4.537 0 00-.312-.298c-.35-.29-.706-.571-1.066-.845-.183-.14-.397-.233-.596-.348-.072-.041-.12-.101-.173-.159a.144.144 0 01-.024-.15c.022-.054.075-.051.12-.056zM8.252 1.649a.045.045 0 01.029.005c.048.027.03.077.03.135.013.06-.026.11-.08.16-.346.322-.707.627-1.076.922-.147.118-.327.173-.49.262-.034.017-.053 0-.072-.024-.12-.154-.238-.31-.358-.463-.045-.055.017-.053.046-.065.254-.091.504-.195.756-.295.365-.144.696-.35 1.04-.533.036-.02.07-.043.105-.063.024-.01.044-.037.07-.041zm-2.619.83a.223.223 0 01.134.064c.072.067.13.144.18.228.173.28.413.506.646.737.163.163.33.32.502.47.057.05.067.127.098.192.012.024.002.043-.02.055-.011.008-.023.013-.03.02-.142.12-.276.103-.442.019a3.182 3.182 0 01-.864-.646c-.01-.01-.02-.017-.03-.024-.114-.086-.12-.082-.17.05-.052.135-.086.274-.146.404-.022.045.012.094.046.127.038.039.064.099.134.089.031-.005.048-.022.055-.055.017-.08.04-.16.06-.257.262.22.553.39.84.583l-.278.159c-.713.4-1.428.8-2.139 1.205-.058.03-.082.038-.106-.034-.273-.847-.56-1.69-.79-2.552-.052-.2-.074-.408-.112-.612-.012-.06.028-.091.067-.113.053-.026.055.036.074.06.377.52.634 1.11.941 1.669.092.168.195.33.293.497.02.03.034.057.082.04.053-.02.043-.052.034-.09-.039-.174-.128-.33-.193-.493a.18.18 0 01.003-.16c.137-.284.33-.531.48-.803.14-.247.317-.468.451-.717a.205.205 0 01.2-.111zm1.774.492c.014.003.024.016.036.042.12.27.201.555.302.83.01.027.012.049-.017.066l-.256.158c-.008.005-.017.007-.046.02-.007-.013-.017-.034-.031-.051l-.54-.62c-.024-.028-.048-.055 0-.081.177-.101.312-.264.499-.35.024-.011.04-.017.053-.014zm1.929.486a.204.204 0 01.14.046.21.21 0 01.08.218.556.556 0 01-.161.29 5.528 5.528 0 00-.882 1.093c-.228.36-.453.718-.624 1.11a.768.768 0 01-.146.206c-.24.273-.526.485-.855.638a.17.17 0 00-.108.159c-.005.06-.024.118-.029.178a.48.48 0 01-.19.38c-.04.032-.045.083-.06.126l-.273.915c0 .007 0 .014-.002.019 0 .014.002.03-.017.038-.04.01-.077-.002-.113-.021a41.397 41.397 0 01-1.33-.334c-.055-.012-.108-.03-.166-.036-.088-.012-.096-.053-.055-.12.058-.281.125-.56.298-.797.038-.053.036-.096.002-.154-.19-.317-.334-.658-.492-.99-.026-.054-.017-.08.034-.11A574.255 574.255 0 006.97 4.706c.045-.03.089-.012.132-.022.151-.034.298-.08.43-.163.01-.007.026-.012.03-.022.097-.213.31-.286.49-.37.411-.187.826-.36 1.189-.633a.18.18 0 01.095-.04zm11.443 3.772v.005l.002-.001c-.021.256-.043.498-.062.74l-.043.535c-.005.065-.024.106-.094.13a561.275 561.275 0 00-3.37 1.17l-.04.009c-.035.005-.054-.012-.08-.055-.217-.394-.438-.785-.661-1.177-.03-.05-.038-.077.034-.096l4.254-1.246c.014-.005.03-.007.06-.014zm-.41.386c-.154.003-.293.147-.286.293.007.137.124.257.254.252.137-.002.27-.153.267-.302-.005-.166-.082-.245-.236-.243zm-16.83.87c.01 0 .024.002.04.007L5.512 9l1.937.51c.062.017.082.036.06.1l-.278.913c-.01.036-.017.074-.058.074a.06.06 0 01-.02-.002l-1.036-.142c-.226-.03-.45-.062-.675-.093a254.996 254.996 0 00-2.055-.286c-.043-.012-.058-.038-.05-.098.052-.476.103-.951.153-1.43.003-.011.002-.02.005-.03a.035.035 0 00.005-.015c.007-.014.021-.02.038-.02zm8.136.103l.113.002c.197.01.389.086.569.166.08.036.159.07.238.108l.057.029c.058.028.118.057.173.09l.113.065c.036.025.075.046.108.073.072.05.142.105.207.165.218.202.372.44.463.72.065.202.113.409.13.617.016.202-.044.399-.096.593-.008.03-.02.036-.03.034-.014-.005-.021-.022-.033-.036l-.216-.25a2.105 2.105 0 00-1.042-.684 4.159 4.159 0 00-.994-.154 3.799 3.799 0 00-.804.092c-.211.04-.423.074-.631.113-.137.024-.262.086-.387.14-.06.028-.12.054-.18.077l-.02.004c-.376.132-.695.36-1.024.57-.09.06-.165.14-.243.218l-.01.008-.064.065c-.152.147-.3.296-.464.43-.074.103-.175.175-.268.266.024-.17.07-.328.146-.472a4.6 4.6 0 01.262-.435c.048-.07.096-.14.146-.206a7.17 7.17 0 01.315-.396c.081-.097.163-.193.247-.29l.25-.284a.917.917 0 01.115-.1l.026-.03c.078-.066.147-.136.238-.21l.012-.01.067-.061c.24-.228.519-.406.797-.583.028-.02.057-.035.086-.051l.111-.048c.01-.004.02-.01.029-.012a2.78 2.78 0 01.173-.065l.117-.036c.14-.04.279-.074.416-.117a2.45 2.45 0 01.782-.115zm-7.57.449c-.07.004-.153-.003-.215.057a.462.462 0 00.012.665.286.286 0 00.38 0c.145-.127.182-.314.095-.535-.053-.137-.125-.187-.27-.187zm15.846.062c.087-.001.163.053.23.146.014.01.029.02.043.032.022.019.03.04.053.064.099.113.207.224.31.334a.064.064 0 01.014.024.023.023 0 01-.002.022.04.04 0 01-.015.014l-.01.015-.002.002c-.002.002-.002.005-.004.01 0 .002-.003.004-.003.004h.003v.008c-.145.146-.106.283.01.415.006.012.014.024.014.036.096.127.016.254 0 .382-.003.012-.005.016-.015.02l-.007.004a.116.116 0 01-.03-.005l-.01-.003a9.772 9.772 0 01-.251-.077c-.007 0-.012-.004-.02-.007-.006 0-.011-.007-.018-.007a.284.284 0 01-.118-.02.252.252 0 00-.292.05.054.054 0 01-.005.02c.04.06.108.075.168.094.245.08.453.23.68.348.052.03.062.092.057.152-.003.033-.012.067-.02.103l-.072.31a.127.127 0 01-.02.076c.004.168-.114.293-.17.437-.006.012-.011.017-.02.04a3.223 3.223 0 01-.128.299c0 .007-.01.017-.012.024v-.005c0 .002-.002.002-.002.005l-.005.01c-.003.002-.003.004-.005.007-.012.045-.02.093-.058.132a1.913 1.913 0 01-.187.432c-.007.012-.012.012-.017.036-.062.144-.127.317-.19.475-.014.058-.026.115-.04.17l-.008.015c0 .002-.002.002-.002.005 0 .005-.005.01-.007.014a.45.45 0 01-.036.192c-.012.039-.022.082-.034.12a.074.074 0 01-.005.02l-.201.912c-.055.25-.077.504-.118.754-.038.235-.048.477-.106.708-.04.168-.136.324-.213.48-.072.146-.118.302-.207.444l-.007.015a.169.169 0 00-.012.03c-.002.006-.002.013-.005.018l-.007.033a.182.182 0 00-.002.036c0 .012 0 .024-.003.036v.036a.71.71 0 01-.002.072c-.02.257-.053.514-.041.773.002.048-.012.075-.058.09l-.057.023a1.598 1.598 0 00-.113.048l-.06.024c-.031.012-.05.022-.1.034v-.005s-.006.005-.01.005l-.133.055-.093.038a.635.635 0 01-.211.092l-.036.02a25.181 25.181 0 00-.474.212c-.081.024-.165.072-.247.11-.09.04-.175.075-.264.114-.14.062-.278.12-.418.181-.004.002-.012 0-.016 0-.128.048-.26.118-.38.173-.048.026-.117.053-.177.077-.11.043-.135.038-.16-.075-.071-.052-.078-.14-.104-.216-.027-.072-.048-.15-.072-.222-.005-.024-.017-.02-.017-.034-.024-.033-.024-.064-.036-.098l-.003-.017c-.007-.005-.007-.012-.01-.02l-.006-.016h.004c-.033-.1-.07-.2-.093-.3-.024-.067-.067-.132-.08-.202a.17.17 0 010-.07l.008-.033.004-.017c.02-.047.05-.093.075-.14.017-.037.03-.076.048-.114.017-.038.03-.067.048-.115.038-.072.062-.156.11-.24 0-.02.015-.04.02-.058.043-.146.09-.295.149-.437 0-.005-.005-.012-.003-.017.017-.086.098-.117.146-.168v.003c.024-.008.037-.022.049-.022.014-.024.028-.034.043-.048a1.518 1.518 0 00.108-.15c.045-.066.086-.136.137-.203.016-.021.03-.055.057-.055.005 0 .007 0 .012.002.039.01.027.055.022.084a.88.88 0 000 .327c.012.084.026.168.033.252l-.002.038a.578.578 0 01.036.19c.02.082.036.16.06.242.072.15.125.3.173.454l.005-.002c.08.12.163.26.245.39.024.032.05.066.074.09h.005v.02c.024 0 .036.052.072.004-.007-.024-.012-.024-.02-.024a.448.448 0 01-.03-.08c-.005-.016-.013-.035-.015-.05a.387.387 0 01-.012-.05c-.002-.007-.002-.017-.005-.024a.282.282 0 00-.01-.048l-.011-.075-.013-.074c-.007-.007-.007-.017-.007-.026-.002-.01-.004-.02-.01-.03-.002-.028-.007-.057-.011-.086l-.022-.172c-.002-.03-.012-.058-.014-.087a3.634 3.634 0 01.036-.941h.014c.029-.144.058-.31.086-.466.008 0 .015.003.024.003-.01.26.017.52.075.775.002.005.002.012.002.017.036.098.075.197.106.298.007.02.014.043.022.062a.338.338 0 00.055.094c.007.012.02.024.02.036.025.019.037.04.057.06.014.016.026.036.04.053.05.048.104.093.166.156a3.667 3.667 0 01-.017-.14c-.004-.043-.012-.086-.016-.134 0 0-.013-.007-.013-.012a.82.82 0 00-.01-.108l-.04-.33c0-.01 0-.016.002-.025 0-.01.003-.027.003-.027a2.705 2.705 0 01-.02-.415l-.002-.017a1.122 1.122 0 01-.002-.37c.005-.033.002-.07.005-.103 0-.007-.003-.012-.003-.02 0-.158.007-.32.055-.472l.003-.017c.012-.072.024-.158.036-.238.012-.08.024-.16.033-.24.005-.033.015-.05.034-.05.01 0 .024.005.04.017l.05.03.076.049c.024.017.048.033.07.055.002.002.004.005.009.007a.116.116 0 00.017.012h.005v-.002c.168.084.26.226.374.358a.31.31 0 01.11.15c.075.099.13.205.169.323.002.01.007.02.01.03.002.01.007.006.009.03.02.024.03.055.043.084l.034.084.019.04c.005.01.01.017.017.024a.07.07 0 00.04.024c.027-.088-.035-.172-.011-.256h.007c0-.024-.007-.025-.007-.037-.024-.156-.044-.31-.11-.453l-.001-.04c-.058-.143-.086-.29-.17-.416a.103.103 0 01-.037-.063c-.026-.024-.04-.053-.055-.081a4.135 4.135 0 01-.038-.063v.017c0-.002-.005-.005-.005-.007v-.003a2.828 2.828 0 00-.22-.278l-.01-.01c-.01-.01-.02-.01-.03-.033-.057-.024-.112-.096-.17-.147-.007-.007-.014-.01-.02-.017-.004-.004 0-.01-.023-.016-.12-.082-.21-.183-.314-.255-.02-.024-.044-.01-.053-.048.31-.02.61.017.922.036v-.012h.002c.154.024.298.053.437.113.005 0 .01.007.017.007v.005c.096.022.187.065.278.108.02.01.044.04.065.012.017-.024-.01-.046-.024-.065-.036-.05-.07-.1-.108-.151-.007-.012-.02-.024-.02-.036-.071-.07-.126-.15-.19-.22a.953.953 0 01-.06-.063 1.162 1.162 0 01-.208-.17c-.012-.008-.024-.022-.036-.022-.03 0-.064-.034-.096-.056-.03-.021-.064-.04-.096-.062-.012-.007-.024-.012-.036-.02-.146-.055-.293-.105-.44-.16-.004 0-.013-.003-.013-.005 0 0-.013 0-.017-.002a.11.11 0 01-.072-.03.079.079 0 01-.027-.035l-.005-.012c-.007-.02-.01-.041-.007-.063a.968.968 0 00-.012-.22c-.002-.022-.007-.041-.012-.063a2.158 2.158 0 00-.014-.06l-.015-.062a2.29 2.29 0 00-.024-.09s-.01-.002-.01-.01c-.023-.145-.08-.292-.124-.436l-.017-.057a.369.369 0 01-.057-.168c0-.02 0-.036.002-.056l.002-.026c.005-.027.01-.055.02-.082l.033-.108c0-.005 0-.017.003-.017h-.003c.03-.17.099-.314.147-.468 0-.002.005-.002.005-.005l.01-.01c.002-.002.004-.002.004-.004a.265.265 0 00.053-.185.326.326 0 00-.027-.103c-.016-.043-.038-.084-.06-.127-.002-.005-.01-.01-.014-.012-.002-.003-.005-.005-.005-.008a1.196 1.196 0 01-.21-.355l-.015-.038c-.005-.005-.005-.01-.008-.017l-.002-.007a.12.12 0 01-.007-.017l.002.002-.002-.005a.276.276 0 01.012-.043c.004-.01.01-.017.014-.026.005-.007.012-.014.02-.022l.009-.007c.065-.094.125-.192.197-.283a.26.26 0 00.05-.252c-.04-.137-.036-.14.1-.19.025-.01.316-.12.433-.156l.075-.03.019-.006a41.644 41.644 0 01.509-.19c.005-.002.012-.002.017-.002.14-.072.293-.118.44-.168.02-.007.037-.015.06-.02.025-.02.097-.035.12-.055.12-.038.217-.093.325-.117a.287.287 0 01.167-.067zm-5.432.603a.82.82 0 01.23.036l.014.004c.259.08.523.142.77.26.04.019.084.038.113.077.16.115.307.247.43.405.19.245.38.492.557.773-.011-.003-.022-.008-.034-.013v-.001a1.018 1.018 0 01-.185-.103 6.452 6.452 0 00-.674-.356 1.467 1.467 0 00-.331-.1 3.307 3.307 0 00-.91-.041c-.084.007-.17 0-.255 0-.062 0-.091-.03-.091-.092 0-.235.012-.472-.06-.7-.015-.048.014-.068.055-.082a1.12 1.12 0 01.372-.067zm-2.75.773c.423-.015.812.105 1.167.324.132.08.253.176.363.284l.014.013c.122.123.23.26.32.41.08.13.059.272.032.414-.072.406-.316.706-.592.987-.265.269-.596.444-.903.648-.435.29-.932.403-1.438.478-.632.093-1.273.103-1.906.187-.23.029-.464.048-.694.089a1.07 1.07 0 00-.68.41c-.062.084-.1.187-.16.303a.527.527 0 01.026-.394 1.12 1.12 0 01.533-.54c.415-.22.879-.262 1.323-.375.36-.091.73-.144 1.087-.242a7.234 7.234 0 001.426-.55c.24-.125.49-.252.656-.485a.73.73 0 00.12-.557c-.005-.034-.015-.05-.027-.053-.012-.002-.03.007-.05.027-.18.16-.367.314-.571.449-.32.206-.673.33-1.038.42-.58.144-1.166.266-1.764.31a4.84 4.84 0 00-1.239.242c-.34.118-.687.235-.96.49-.034.03-.075.057-.13.098l.007-.038-.026.019v-.005c.01-.006.016-.013.024-.017a.599.599 0 01.084-.2l.646-1.022a.285.285 0 01.041-.053c.334-.33.653-.677 1.023-.965.614-.48 1.284-.855 2.055-1.02.187-.041.377-.07.57-.07.22-.002.443-.01.66-.017zm-7.632.022c.013 0 .03.002.048.009.03.01.062.007.094.01.127.028.26.03.386.062.012 0 .017.002.034.01a2.174 2.174 0 01.4.057c.145.02.29.036.433.06.033 0 .062-.002.093.017.005 0 .012-.002.012 0 .168.02.3.03.445.055h-.015v.005c.096.012.16.024.233.036.077.012.156.03.23.03h.003c.007 0 .012.004.017.004l.021.005c.048.002.067.028.075.07.038.227.07.455.117.683 0 .017.01.032.008.046l.02.11.061.332c0 .01 0 .03.003.036v.01c.024.143.05.273.074.41v.046a1.717 1.717 0 00-.3.46c-.03.075-.07.152-.1.226l-.006.003c-.024.076-.062.15-.098.223-.003 0-.005.005-.007.01-.005.009-.008.024-.012.03v.003a2.478 2.478 0 01-.192.415c-.008.02-.024.039-.024.056-.024.09-.046.182-.092.266a.757.757 0 01-.074.226 2.102 2.102 0 01-.13.394c-.007.019-.019.036-.019.055l-.002.007c-.003.007-.005.02-.01.029a.106.106 0 01-.01.03l-.002.01-.038.742.021.008.094-.185c.031-.06.055-.123.09-.185.018-.043.05-.086.05-.13.071-.12.136-.24.21-.35.008-.012.022-.02.03-.043.062-.097.134-.224.208-.334.026-.043.054-.08.078-.123.016-.048.042-.055.064-.076.021-.022.033-.044.081-.065 0 .019.005.036.003.053l-.003.01c0 .009-.004.018-.007.028l-.002.01c-.003.007-.003.012-.005.019a.054.054 0 00-.002.02c0 .006-.005.01-.003.018l-.003.015h.003c-.022.144-.02.307-.024.458 0 .007-.005.02-.005.024l.005-.002c.02.144.043.288.062.432h-.002c.003 0 .005.03.005.043.024.144.055.29.072.437l.002.017c.003.01.005.017.005.026.024.116.11.195.163.296.039.055.08.12.116.168h.002v.002c.12.106.22.214.355.31.02 0 .039.024.058.024h-.002v.012c.048.005.088.043.139.029a.087.087 0 00.026-.012c.007-.005.017-.01.02-.017.011-.022-.01-.034-.027-.041-.197-.125-.166-.33-.19-.521h.008v-.003c.048.046.081.09.122.14a.1.1 0 00.024.026l.05.055c.034.036.07.07.108.1.039.032.08.066.125.09.02.007.039.024.056.024h-.005c.144.07.269.137.4.206a.15.15 0 01.08.036c.048.144.105.288.091.456.005 0 .01.017.012.03a.066.066 0 01-.002.03c.017.14.017.28-.003.42a.044.044 0 01-.002.039c-.003.005 0 .007-.002.012h.002c0 .14-.002.278-.038.415-.003.137-.046.27-.06.406 0 .005-.003.01-.005.017-.008.026-.02.057.038.05v-.002c.13-.136.26-.267.38-.418v.01c.002-.048.03-.073.057-.096.05-.05.1-.13.151-.2.05-.07.101-.137.152-.206l.002-.012c.007-.024.017-.04.029-.046.005-.002.01-.005.014-.005H9.3a.133.133 0 01.05.02.835.835 0 01.077.048c.144.079.307.132.415.269.012.012.026.014.038.038.05.024.096.08.133.132l.038.036c.002.002.005.002.007.005.19.16.204.246.067.46-.004.007-.012.014-.016.014a.236.236 0 01-.024.055.216.216 0 01-.02.036l-.01.017c-.035.058-.074.118-.088.185a.443.443 0 00-.012.168c.026.094.05.19.07.286.012.057.024.115.028.175.02.142-.048.228-.168.288v-.002c-.024.002-.026.017-.038.024a.078.078 0 01-.02.014.362.362 0 01-.038.026.192.192 0 00-.077.087c0 .007 0 .005-.002.01-.002.004 0 .014-.002.014h.007v.014c-.024.07-.036.12-.048.156-.003.01-.007.017-.01.024-.002.008-.007.012-.01.017-.002.005-.007.01-.009.012a.045.045 0 01-.024.012h-.007a.165.165 0 01-.05-.012c-.034-.012-.078-.029-.138-.048-.004-.002-.009-.002-.011-.005a.025.025 0 00-.012-.004l-.027-.012h-.01v-.01h-.002c-.072-.024-.14-.038-.204-.065-.038-.014-.08-.026-.12-.043-.05-.012-.1-.036-.151-.036-.14-.048-.281-.072-.416-.12-.011 0-.019.002-.043 0v.002c-.096-.019-.173-.043-.264-.06-.089-.014-.122-.06-.113-.148.005-.037.003-.08.003-.116 0-.012-.003-.017-.003-.04-.014-.025-.036-.053-.055-.085a.11.11 0 01-.014-.026c-.012-.012-.036-.024-.036-.038-.024-.005-.015-.01-.022-.015-.074-.07-.053-.163-.043-.252l.002-.029.008-.055c.002-.01.002-.02.004-.026.039-.15.048-.29-.113-.38-.019-.012-.03-.024-.055-.04v.004a2.869 2.869 0 00-.225-.165c-.012-.024-.015-.029-.039-.039a1.418 1.418 0 01-.31-.227l-.074-.04h.01c-.015-.025-.032-.022-.044-.034-.019-.014-.036-.024-.06-.04-.12-.102-.283-.198-.413-.315-.045-.015-.074-.05-.11-.08v-.004c-.127-.09-.252-.176-.377-.272h.003c-.015 0-.015-.012-.039-.024-.072-.036-.144-.096-.206-.144-.02-.024-.039-.024-.058-.024-.058-.048-.108-.07-.156-.113-.02-.012-.036-.026-.06-.04a2.178 2.178 0 01-.396-.29l-.012-.011-.022-.024a.188.188 0 01-.038-.081v.019c-.087-.094-.144-.202-.216-.3l-.007-.015a.027.027 0 01-.005-.014.107.107 0 01-.003-.026.118.118 0 01.024-.053c0-.005.003-.012.003-.02.024-.153.108-.292.168-.436v-.037s0-.022-.003-.032l-.004-.014-.005-.005a.038.038 0 00-.017-.01h-.007a.122.122 0 00-.058.022.312.312 0 00-.055.043l-.02.015a.13.13 0 00-.014.019l-.007.01c0 .002-.002 0-.002 0 0 .002-.003 0-.003 0v.002c-.048.055-.12.103-.182.154-.012.012-.034.026-.034.038v-.002h-.007c-.02.024-.045.024-.072.012l-.31-.137c-.024-.012-.036-.038-.04-.062a.64.64 0 01-.008-.032l-.007-.026v.005c-.036-.168.022-.293.053-.437.002-.012.005-.024.005-.036.024-.14.033-.288.074-.423v-.062c-.02-.154-.022-.305-.033-.46l.002-.078c-.014-.286-.033-.571-.043-.857-.022-.598-.07-1.193-.053-1.79a.636.636 0 00-.074-.315 1.968 1.968 0 00-.099-.164.264.264 0 01-.048-.237c.036-.14.063-.284.09-.425.008-.05.021-.084.06-.086zm-.166.38l.005.015c.005.032-.007.065-.02.113a.117.117 0 010-.086.295.295 0 01.015-.041zm10.715.003c.13-.002.257.005.38.024.22.017.42.058.55.164.095.04.189.09.28.144.22.132.44.269.662.403a.389.389 0 01.118.108l.223.315c.012.016.03.036.015.057a.038.038 0 01-.02.014c-.018.004-.034-.002-.05-.011-.098-.056-.2-.108-.298-.164a4.76 4.76 0 00-1.184-.46c-.107-.03-.208-.06-.323-.075l-.152-.034c-.004.003.005.012.017.024.005.005.01.01.012.015a.138.138 0 00.04.033l.02.01c.228.115.613.187.893.317l.058.029c.156.08.298.182.44.29l.268.207c.404.293.65.689.77 1.169.003.014.008.029.01.043l.01.014c.02.03.024.065.017.096.002.008.002.015.005.022-.005.07-.06.04-.092.04a2.504 2.504 0 01-.61-.11h-.006c-.051-.016-.118-.04-.165-.054-.211-.075-.41-.163-.615-.238-.252-.09-.45-.261-.662-.413a7.777 7.777 0 01-1.001-.816.34.34 0 01-.08-.106 4.11 4.11 0 01-.062-.153l-.036-.094a1.088 1.088 0 00-.024-.06l-.002-.005c-.003-.002-.003-.007-.003-.01v-.002l-.002-.01a.168.168 0 01.007-.122c.002-.005.002-.01.005-.014l.005-.017.004-.014c.003-.005.003-.013.005-.017l.003-.015.002-.017.003-.014.002-.017.002-.014.003-.017.002-.014.003-.017c0-.005 0-.01.002-.015 0-.004 0-.012.003-.016v-.266c-.003-.082.026-.114.108-.111.08.002.162-.001.243-.005l.075.004c.04-.002.08-.005.122-.005zm.284.532a.12.12 0 00.028.008H15c-.012.008-.028.005-.033.02-.004-.02-.002-.027.003-.028zm.88.342a.206.206 0 00.012.006h.003zm-1.908.177l.002.003c.007.003.014.01.022.024.076.154.182.28.3.399.124.12.259.23.389.348.268.242.542.48.818.713.178.15.392.228.62.288.518.132 1.049.182 1.575.254.139.02.264.065.374.156h-.007c.01.008.017.012.024.02-.296-.043-.59-.04-.886-.046-.324-.007-.641.03-.96.067a.986.986 0 01-.336-.026c-.308-.07-.598-.195-.89-.317-.328-.14-.601-.353-.861-.588l-.057-.055a1.002 1.002 0 01-.205-.285l-.002-.006c-.09-.212-.085-.448-.016-.708.019-.07.04-.14.062-.21.007-.022.02-.034.034-.031zm-.248 1.18c.065.233.233.396.375.573l.029.039.028.038a.57.57 0 00.106.094c.017.012.03.02.046.033l.02.017a10.088 10.088 0 00.539.396l.329.229c.149.103.305.19.468.266.04.02.082.036.123.055.124.053.25.099.379.14l.02.007c.08.02.167.028.25.038.032.002.064.007.092.01a.195.195 0 01.06.024.411.411 0 01.068.05c.074.067.144.163.148.22 0 .01 0 .018-.002.025-.002.005-.002.007-.005.01-.01.016-.024.03-.033.048-.03.05-.06.1-.085.153l-.011.027a.311.311 0 00.002.26c.115-.114.218-.236.293-.376a1.139 1.139 0 00.086-.201c.01-.027.003-.058.01-.084.01-.03-.024-.07-.01-.09 0-.001.003-.001.005-.004a.04.04 0 01.014-.007c.01-.002.02-.005.027-.005.019-.002.036-.005.055-.005.048 0 .094.008.14.022.028.01.019.045.016.072v.005c-.005.086-.04.165-.072.242a.554.554 0 01-.024.055 1.68 1.68 0 01-.192.375c-.118.156-.254.302-.475.31h-.063c-.038 0-.077.01-.115.012a.085.085 0 00-.086.057c-.017.039-.04.072-.058.11l-.007.017a1.534 1.534 0 01-.408.57c-.08.07-.164.139-.25.203a1.95 1.95 0 01-.468.224l-.036.014-.034.015-.02.007c-.01.002-.021.007-.03.01-.036.014-.065.035-.046.09.02.06.063.077.118.08.012 0 .026 0 .04-.003a.613.613 0 00.15-.033c.048-.017.096-.04.146-.06.034-.015.067-.03.103-.041-.03.122-.045.235-.084.34l-.021.054a6.794 6.794 0 01-.09.192c-.018.043-.04.084-.062.125-.115.23-.245.45-.405.655a1.682 1.682 0 01-.356.34 3.954 3.954 0 01-.103.073 2.788 2.788 0 01-.38.205l-.064.03-.053.02-.043.018c-.04.016-.082.03-.123.045a2.674 2.674 0 01-.168.053 4.848 4.848 0 01-.57.134c-.008 0-.013.003-.02.003-.055.01-.108.017-.163.026-.058.008-.116.017-.176.024a2.156 2.156 0 01-.605-.02l-.028-.008a.68.68 0 01-.145-.06c-.062-.034-.12-.07-.182-.1a1.728 1.728 0 01-.13-.073 1.868 1.868 0 01-.16-.106.632.632 0 01-.233-.278 1.794 1.794 0 00-.092-.194c-.01-.02-.021-.036-.03-.053a2.718 2.718 0 00-.277-.367 2.76 2.76 0 00-.125-.142c-.021-.024-.04-.048-.062-.07a7.07 7.07 0 00-.26-.276l-.067-.067a2.787 2.787 0 00-.364-.302 2.784 2.784 0 00-.303-.192l-.06-.04a1.58 1.58 0 01-.63-.761c-.043-.093-.107-.122-.22-.124a.63.63 0 01-.252-.048l-.002-.002a.457.457 0 01-.132-.084l-.026-.016c-.022-.026-.038-.058-.058-.09a5.295 5.295 0 01-.386-.658c0 .003.002.005.003.008l-.006-.013.003.005a3.772 3.772 0 00-.073-.196l-.036-.086a.382.382 0 01-.014-.154l.007-.031c.002-.005.002-.01.005-.015a.145.145 0 01.012-.03.46.46 0 01.127-.14.898.898 0 01.067-.05c.046-.034.094-.063.14-.094.071-.044.143-.084.218-.123.271-.14.56-.238.857-.314.017-.005.033-.008.053-.012.033-.008.07-.01.105-.015.036-.002.072-.005.106-.005l.106-.002c.016 0 .036 0 .052-.002a17.864 17.864 0 00.9-.063c.18-.017.36-.036.54-.055a3.504 3.504 0 001.127-.324c.036-.02.074-.036.11-.055l.063-.034c.144-.077.288-.151.427-.233.014-.02.03-.026.055-.033l.01-.003v.012a.06.06 0 01-.02.034l-.021.014c-.14.178-.331.3-.497.45a.415.415 0 00-.05.045c-.053.043-.106.089-.166.137.209 0 .41-.024.598-.08a1.654 1.654 0 00.869-.6c.103-.137.197-.297.278-.482zm-3.265.016a1.244 1.244 0 01-.343.109c-.56.139-1.13.22-1.697.326a2.603 2.603 0 00-1.105.487c-.019.015-.04.032-.062.043-.026.017-.039.013-.043-.01-.003-.004-.003-.011-.003-.018-.01-.144.034-.214.166-.274.18-.082.36-.168.54-.252.235-.108.487-.142.742-.168.396-.043.792-.094 1.19-.14l.524-.086zm2.386 1.245h-.026c-.038.01-.036.05-.036.08.003.1.007.202.02.303.01.11.047.219.112.307a.842.842 0 00.51.334c.155.036.155.038.17.2.007.069.016.13.08.17.114.067.227.137.364.146.084.007.17.012.242.068a.583.583 0 00.32.098c.084.007.17.01.254.024.067.012.113-.01.16-.05.239-.197.474-.397.697-.617-.026-.03-.065-.04-.118-.012a6.25 6.25 0 00-.415.223.315.315 0 01-.113.048 4.032 4.032 0 01-.722.074.68.68 0 01-.368-.13c-.067-.043-.134-.105-.146-.201.036-.012.07.002.103.007.127.017.252.063.382.055.312-.02.605-.113.898-.213l.283-.103c.043-.015.055-.03.017-.07-.046-.05-.096-.04-.147-.034a5.625 5.625 0 01-1.87-.045c-.18-.034-.372-.046-.442-.27-.02-.06-.038-.12-.05-.182a.37.37 0 00-.094-.17.094.094 0 00-.065-.04zm-.573.065c-.048 0-.08.05-.103.093-.06.103-.137.196-.207.292-.108.147-.26.178-.418.154a17.985 17.985 0 00-1.718-.18c-.03-.002-.058-.01-.082.01-.183.134-.367.264-.483.468.007.002.015.007.02.007.019-.002.035-.007.055-.01.297-.074.607-.098.922-.072.398.034.792.113 1.188.168.053.008.106.01.156.036.12.063.18.173.226.29.07.18.09.373.103.565.01.15-.022.278-.144.38a.556.556 0 00-.2.278c.154 0 .286.026.387.156.063.08.144.149.223.218a.379.379 0 00.586-.081c.058-.094.113-.19.175-.281.087-.127.17-.264.325-.32.093-.03.052-.076.02-.115-.061-.08-.177-.081-.28-.02-.16.097-.266.239-.381.376-.034.04-.068.08-.113.115-.058.04-.108.043-.16-.01-.056-.057-.114-.117-.176-.168-.053-.043-.063-.082-.032-.144a.728.728 0 00.082-.413c-.03-.312-.08-.62-.3-.867-.024-.026-.024-.04.01-.064a.94.94 0 00.408-.701c.007-.075-.007-.135-.067-.156a.075.075 0 00-.022-.004zm4.46.035c.206 0 .388.08.567.182-.005 0-.007 0-.012.003l.03.017c-.27.04-.54.06-.81.03-.084-.01-.168-.026-.255-.023-.17.005-.307-.084-.451-.161h.017c-.012-.007-.024-.012-.036-.02.024.003.05.003.074.005.029.003.055.01.084.015.238.05.468-.02.704-.043a.8.8 0 01.089-.005zm-8.689.714a.045.045 0 00-.016.004c-.05.019-.098.048-.112.115-.048.223.055.437.278.552.1.053.178.127.226.23.016.037.019.106.072.094.052-.012.01-.077.021-.103.008-.135-.019-.25-.127-.32-.08-.05-.11-.12-.14-.201-.038-.106-.047-.223-.134-.307-.02-.021-.036-.064-.069-.064zm1.843.354c-.11.027-.236.053-.353.106-.082.038-.087.084-.015.139.043.034.087.05.14.03a.466.466 0 01.494.097.509.509 0 00.523.087c.106-.036.197-.096.293-.15a.319.319 0 01.113-.04c.144-.014.288-.033.43-.053.038-.005.098.01.108-.036.01-.048-.046-.077-.08-.108-.016-.017-.045-.02-.07-.026a.82.82 0 00-.436-.015 2.092 2.092 0 01-.888 0c-.08-.02-.163-.02-.26-.03zm6.903.889c.006 0 .01.003.015.007a.05.05 0 01.012.014l.008.005c.043.034-.007.11-.02.168-.03.168-.057.334-.086.502-.007.048-.012.098-.048.165l-.007-.043-.012.024a5.307 5.307 0 01-.075-.706c-.002-.053.034-.065.068-.077.048-.016.107-.066.145-.06zm-3.22.902a.08.08 0 00-.022.01c-.19.105-.404.11-.613.137-.088.012-.2-.015-.264.05-.158.156-.293.09-.432-.02-.007-.004-.014-.011-.024-.014-.206-.11-.413-.15-.624-.005a.338.338 0 01-.267.068c-.074-.02-.131-.015-.19.038-.028.027-.066.048-.1.07-.094.062-.094.072-.007.14.02.018.043.025.067.033.2.06.387.016.562-.08.182-.098.353-.093.518.032.152.112.312.115.48.045a2.97 2.97 0 01.653-.213c.034-.005.068-.017.099.01.096.088.187.026.279-.01.036-.015.04-.044.038-.08-.007-.076-.065-.12-.098-.18-.015-.025-.032-.035-.054-.03zm-4.717.07c.009 0 .02.006.032.017.039.036.075.074.113.11l.015.014c.019.017.021.039.012.06l-.224.45-.024-.008c0-.005.003-.007.003-.012.048-.197.029-.4.055-.6.002-.02.009-.03.018-.03zm3.9.588c-.238.007-.48.046-.703.122-.185.063-.392.106-.488.32-.055.124-.048.256-.086.38.017.1.017.197.074.281.017.024.024.063.065.06.043-.002.058-.038.07-.067.043-.09.053-.194.08-.29.047-.156.119-.28.282-.35.17-.072.343-.14.516-.206a.184.184 0 01.1-.012c.215.03.438.02.628.146a.079.079 0 00.062.012c.072-.017.08-.04.036-.098a.723.723 0 00-.636-.298zm-2.218.741l.014.017c.094.117.187.218.25.336.15.29.374.501.662.655.135.072.256.172.414.19l.003.001h.018c.017 0 .04-.004.036.023-.003.014-.017.014-.031.012h-.007c-.005 0-.01 0-.015-.003-.167.005-.33.033-.493.067-.085.018-.17.038-.255.058a7.838 7.838 0 01-.243.055h-.003c-.033.008-.048.024-.043.058.005.04.02.062.067.072a1.305 1.305 0 00.274.017c.118-.003.235-.015.353-.034a2.602 2.602 0 01.778-.002c-.43.07-.785.312-1.174.475-.202.084-.358.245-.55.348-.014.017-.022.044-.036.06-.031.04-.036.118-.087.11h-.004c-.005 0-.01.003-.015 0a.623.623 0 01-.266-.086c-.03-.019-.022-.055-.022-.089v-.453c0-.032.012-.067-.019-.09-.106-.066-.08-.182-.106-.278-.01-.038.017-.057.039-.08l.278-.31c.063-.068.089-.143.043-.224-.086-.163-.072-.32-.002-.485.055-.13.091-.267.142-.42zm4.585.177c.005.003.01.005.012.008l.007-.008c.039.022.04.05.05.075.102.247.2.497.3.744.025.055.03.103-.006.15a.502.502 0 00-.077.49c.067.205.019.347-.183.448a.229.229 0 01-.12.036.124.124 0 01-.088-.03c-.375-.259-.821-.345-1.242-.494-.06-.02-.117-.043-.18-.057-.072-.017-.067-.065-.057-.116.007-.036.026-.04.045-.038.02-.005.046.01.063.014.48.12.965.216 1.428.396.017.008.03.01.043.013.034-.005.044-.037.039-.082-.01-.108-.02-.214-.144-.27a2.8 2.8 0 00-.975-.234c-.05-.005-.098-.007-.15-.01.239-.144.5-.22.714-.406a.999.999 0 00.075-.067l.398-.482zm-1.882 1.133h.02c.03-.002.054.005.057.053 0 .044.01.082-.06.092a1.752 1.752 0 01-.274.021c-.094 0-.185-.01-.278-.03-.05-.013-.07-.047-.065-.087.002-.027.02-.027.04-.027a.103.103 0 01.039.003h.18a1.143 1.143 0 00.34-.024zm.036.396c.006 0 .012.002.02.005l.844.35c-.132.11-.254.207-.374.303-.221.178-.44.358-.646.553-.05.048-.09.05-.147.014a9.33 9.33 0 00-1.097-.545c-.165-.07-.34-.098-.511-.158.02-.036.055-.036.084-.046.367-.137.742-.26 1.102-.42.094-.043.187-.007.278.005.137.02.27.021.394-.046a.092.092 0 01.053-.015zm-2.161.698a.27.27 0 01.082.018c.197.077.38.185.569.274a.04.04 0 01.029.01c.004.002.005.004.005.011v.005c0 .003-.003.003-.003.005-.002.003-.005.003-.007.003l-.01-.003a.03.03 0 01-.012-.012l-.862-.214c.074-.059.133-.1.209-.097zm8.17.535c-.142-.004-.26.062-.372.15-.03.022-.046.048-.094.017-.105-.072-.206-.053-.295.04a.402.402 0 00-.103.186c-.125.504-.252 1.006-.372 1.512-.041.17.048.255.223.23.158-.026.238-.117.264-.32.026-.198.053-.392.11-.596.15.187.29.362.433.538.139.17.29.321.494.412.144.065.269.027.382-.074a.186.186 0 00.055-.206.157.157 0 00-.158-.125.246.246 0 01-.152-.07 2.27 2.27 0 01-.362-.396c-.09-.12-.094-.12.026-.202.252-.173.34-.417.322-.71-.014-.219-.132-.346-.34-.38a.454.454 0 00-.061-.006zm-10.733.03c-.04 0-.077.02-.097.075-.019.05-.053.043-.091.038a.751.751 0 00-.665.22c-.38.37-.574.813-.552 1.353.014.358.22.53.569.451.689-.16 1.224-.835 1.253-1.582.007-.192-.168-.47-.34-.538a.214.214 0 00-.077-.016zm-1.93.058a.943.943 0 00-.613.238c-.346.302-.547.693-.646 1.138a.642.642 0 00.075.482c.07.118.158.161.292.135a3.12 3.12 0 00.87-.305.867.867 0 00.225-.168.291.291 0 00.084-.204c0-.075-.033-.1-.103-.104-.07-.002-.13.024-.192.046-.207.075-.408.166-.622.22-.105.027-.14.003-.163-.105a.301.301 0 01.005-.122c.04-.168.098-.33.187-.483a.82.82 0 01.245-.283c.14-.089.283-.137.442-.04.052.03.103.016.15-.013a.352.352 0 00.15-.2c.016-.05.002-.09-.044-.117a.773.773 0 00-.343-.115zm9.2.07a.692.692 0 00-.517.206c-.156.161-.183.324-.084.526.074.151.177.28.278.415.072.094.149.187.216.286.048.07.024.125-.058.151a.199.199 0 01-.14-.005 1.076 1.076 0 01-.373-.23.243.243 0 01-.082-.125c-.012-.074-.053-.108-.125-.115-.081-.007-.156-.007-.204.08-.08.138-.057.263.087.393.276.245.605.353.933.38.3.004.485-.267.387-.522-.043-.115-.118-.216-.19-.314-.12-.159-.245-.313-.357-.476-.09-.125-.048-.216.098-.264.135-.043.25-.005.36.08.13.1.24.047.269-.116.017-.086-.03-.144-.09-.194a.68.68 0 00-.41-.157zm1.905.06c-.137-.003-.274 0-.41.016-.164.02-.32.065-.38.248-.002.01-.014.024-.024.026-.187.048-.252.202-.302.358-.106.346-.2.696-.298 1.042-.024.084.01.14.08.182.054.034.11.032.172.015.324-.08.648-.166.987-.142a.26.26 0 00.127-.029.242.242 0 00.117-.24c-.014-.09-.086-.117-.163-.13a1.484 1.484 0 00-.177-.016 3.855 3.855 0 00-.62.052c.03-.228.048-.242.264-.242.16 0 .322-.01.473-.072.1-.043.166-.113.176-.226.007-.076-.025-.122-.104-.124a1.65 1.65 0 00-.19.002l-.453.04c.024-.052.036-.1.062-.136.044-.062-.007-.178.084-.209.075-.024.164-.007.245-.01.214-.004.427-.007.634-.074a.347.347 0 00.192-.13c.07-.108.043-.18-.082-.185-.136-.006-.273-.014-.41-.017zm-6.664.008c-.071-.003-.13.042-.185.093a3.95 3.95 0 00-.392.434l-.367.456c-.02.024-.04.07-.08.05-.03-.014-.018-.055-.014-.086.01-.11.024-.218.036-.329.015-.144.034-.288.01-.432-.031-.173-.156-.22-.295-.113a.836.836 0 00-.094.091 3.168 3.168 0 00-.298.414c-.225.348-.432.71-.703 1.027-.05.06-.103.118-.149.182-.048.072-.067.154-.022.23.041.068.11.092.188.087.081-.004.125-.064.168-.122l.626-.852c.012-.015.017-.044.053-.034a1.37 1.37 0 00-.012.11c-.01.137-.038.274-.01.413.034.16.16.224.306.152a.902.902 0 00.204-.152c.117-.112.228-.233.33-.362.114-.144.229-.29.349-.447.036.12.022.228.017.336-.012.188-.048.375-.012.565.024.117.091.187.187.194a.44.44 0 00.278-.07c.125-.079.137-.237.02-.343a.19.19 0 01-.063-.113c-.026-.13-.004-.257.017-.384.039-.245.115-.485.103-.737-.004-.098-.02-.19-.12-.237a.19.19 0 00-.076-.02zm8.04.19c.117-.01.175.063.14.176a.387.387 0 01-.07.132c-.128.161-.291.27-.495.353a1.56 1.56 0 01.11-.425c.062-.134.163-.223.315-.237zm-6.651.02a.292.292 0 01.15.034c.076.043.098.146.045.233a.676.676 0 01-.185.184 1.47 1.47 0 01-.483.243c.07-.216.128-.415.245-.586a.286.286 0 01.228-.108zm1.6.091a.509.509 0 01.213.034c.113.046.15.1.149.27a1.257 1.257 0 01-.425.818.562.562 0 01-.324.136c-.147.012-.262-.08-.247-.228.028-.32.115-.624.33-.876a.436.436 0 01.304-.154zm-5.882.003a.501.501 0 01.218.036c.11.043.149.098.144.262a1.243 1.243 0 01-.422.818.581.581 0 01-.325.14c-.15.011-.266-.082-.252-.233.03-.315.116-.613.325-.86a.442.442 0 01.312-.163z\"},\"child\":[]}]})(props);\n};\nexport function SiComptia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.8292 11.7067v1.8524a.608.608 0 0 1-.6016-.6136v-1.2366a.5728.5728 0 0 0-1.1428 0v1.8502a.5988.5988 0 0 1-.5998-.5978v-1.2524a.5746.5746 0 0 0-1.1455 0v1.2431a.608.608 0 0 1-.5998.6071V11.709c.0097-.6352.5325-1.1422 1.1676-1.1325h.0013c.331-.0046.6486.1302.8754.3713a1.1752 1.1752 0 0 1 .868-.3713c.6372-.013 1.1642.493 1.1772 1.1303zm7.0156-2.2917v3.563a.597.597 0 0 0 .6006.5811v-3.563a.5969.5969 0 0 0-.6006-.5811zM24 13.5258c-.324.0269-.675-.0697-.8011-.3435l-.3185-.6852h-2.1306l-.3157.7037c-.1494.2785-.544.3667-.8476.3667l1.738-3.8063a.5292.5292 0 0 1 .4762-.3435.5367.5367 0 0 1 .481.3435L24 13.5258zm-1.3759-1.6182-.8059-1.7671-.8038 1.767h1.6097zm-19.166.6387a1.8463 1.8463 0 0 1-1.1817.4373c-.9312 0-1.6888-.6824-1.6888-1.5133s.7604-1.5058 1.6888-1.5058c.501.0002.98.2055 1.3257.5682a.5812.5812 0 0 0 .7417.0827c-.362-.7502-1.1763-1.2376-2.0693-1.2376C1.0212 9.3778 0 10.3164 0 11.4722c0 1.1558 1.0175 2.0953 2.2745 2.0953a2.3846 2.3846 0 0 0 1.2885-.3713c.2605-.162.4823-.379.6499-.636a.5886.5886 0 0 0-.7548-.0139zm11.43-2.539h1.2877v2.9512a.5904.5904 0 0 0 .5728.6006h.0278v-3.5518h1.284a.5941.5941 0 0 0 .5932-.5932h-4.3503a.5904.5904 0 0 0 .5848.5932zm-7.3108 2.0665c0 .8364-.726 1.4853-1.6507 1.4853-.9283 0-1.6505-.6498-1.6505-1.4853s.725-1.4947 1.6505-1.4947c.9256 0 1.6507.6583 1.6507 1.4947zm-.6007-.0028c0-.5004-.4641-.894-1.05-.894-.5876 0-1.0509.3927-1.0509.894 0 .5013.4643.8875 1.051.8875s1.05-.387 1.05-.8875zm6.7975-1.5002c-.9506 0-1.6395.6433-1.6395 1.5178v2.5335a.596.596 0 0 0 .6016-.5857v-1.9496c0-.6313.5162-.9172 1.038-.9172.5486 0 .9812.3982.9812.9051 0 .4874-.4326.8754-.9813.8754-.3686 0-.6452-.0928-.8132-.2785v.0056a.7503.7503 0 0 0-.0381.1068.596.596 0 0 0 .4112.7241c.1462.0314.2953.0463.4447.0446.8885 0 1.581-.6508 1.5736-1.4761a1.4647 1.4647 0 0 0-.4642-1.075 1.642 1.642 0 0 0-1.114-.4308z\"},\"child\":[]}]})(props);\n};\nexport function SiComsol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.53833 11.13097c-.11125.1301-.1384.3006-.1384.38725l.2974-.00005c0-.1475.0921-.2303.1478-.27135.0377-.0278.1422-.0786.2357-.0786.1468 0 .3338.0001.3338 0h1.22156l.00025.0001c.0725 0 .1312-.0589.1312-.13125 0-.0725-.0587-.13135-.1312-.13135h-1.16086c-.17195 0-.2702-.001-.43035-.001-.2305 0-.39225.0922-.5069.2263m4.72086-.2253h-.8968s-1.0709-.0563-1.0709 1.0941c0 1.15066 1.0709 1.09436 1.0709 1.09436h.8968s1.07075.0563 1.07075-1.09435c0-1.0479-.8884-1.09455-1.04675-1.09455-.0155 0-.024.00045-.024.00045m-1.68005 1.0941s-.0658-.83165.80665-.83165h.85c.8722 0 .8065.83165.8065.83165s.0657.83165-.8065.83165h-.85c-.87245 0-.80665-.83165-.80665-.83165m-8.49447-1.0941h-.8968s-1.0709-.0563-1.0709 1.0941c0 1.15065 1.0709 1.09435 1.0709 1.09435h.8968s1.07065.0563 1.07065-1.09435c0-1.0479-.8883-1.09455-1.0467-1.09455-.0154 0-.0239.00045-.0239.00045m-1.68015 1.0941s-.0658-.83165.8067-.83165h.85005c.8722 0 .80655.83165.80655.83165s.0657.83165-.80655.83165h-.85005c-.87245 0-.8067-.83165-.8067-.83165m-3.31101.00015c0 1.15065 1.07085 1.09435 1.07085 1.09435h1.44441c.002.00005.003.0005.005.0005.0725 0 .13125-.0588.13125-.1313 0-.0725-.0588-.1313-.13125-.1313v-.00055H6.18816c-.87245 0-.80665-.8317-.80665-.8317s-.0658-.83165.80665-.83165h1.42546s.00005.0001.0002.0001c.0725 0 .13125-.0589.13125-.13125 0-.0725-.0588-.13135-.13125-.13135H6.16466s-.009-.00045-.0241-.00045c-.1584 0-1.0468.0467-1.0468 1.0946m-2.60715-1.09455c-.17581 0-.31831.14255-.31831.31825v1.55225c0 .1758.1425.31825.31831.31825h1.23395c.1757 0 .3183-.14245.3183-.31825v-1.55225c0-.1757-.1426-.31825-.3183-.31825zm-2.16836 0c-.17575 0-.31825.14254-.31825.31824l.00005.0003c0 .00035-.00005.00065-.00005.001 0 .0756.0273.14415.0711.1988l.001.004 1.2323 1.5509.003.001c.0587.0693.1451.1141.2429.1141.00035 0 .0007-.0001.001-.0001l.00025.0001c.17575 0 .3183-.14245.3183-.31825v-1.55225c0-.1757-.14255-.31825-.3183-.31825zm21.49285.13175h-.00015v2.0578h2.0579v-.00015c.0725 0 .13115-.0588.13115-.1313 0-.0724-.0587-.1313-.13115-.1313H22.0735v-1.79505c0-.0725-.0588-.13135-.13125-.13135-.0725 0-.13115.0588-.13115.13135m-7.18002-.088-.0005-.00055-1.39595 1.39585-1.40976-1.40965-.001.001c-.0227-.0187-.0513-.0303-.083-.0303-.0725 0-.13115.0588-.13115.13135h-.00015v2.0578h.2626v-1.74165l1.27031 1.27015c.006.005.0114.009.0171.0129.004.002.007.004.0112.007.004.002.007.004.0109.006.002.00095.004.002.006.003.0386.0158.0728.01.0977-.001.00095-.00035.002-.0009.003-.001.007-.003.013-.006.0181-.01.001-.00085.003-.002.004-.003.0116-.008.0181-.0147.0181-.0147v.00015l1.2683-1.2682v1.74095h.2627v-2.0578h-.00015c0-.0725-.0587-.13135-.1311-.13135-.0386 0-.0728.0169-.0969.0433m.7691.5691c0 .0867.0272.2573.1384.38735.11465.134.2764.2264.5069.2264.16015 0 .2584-.001.43035-.001h.0163v.00025h.73801c.0935 0 .19795.0508.23575.0786.0557.0409.1477.1237.1477.27125h.2975c0-.0864-.0271-.2571-.13835-.38725-.11465-.13405-.27645-.2264-.50705-.2264-.1602 0-.25835.001-.4302.001h-.0164v-.00025h-.73796c-.0935 0-.19795-.0507-.2357-.0786-.0557-.041-.1478-.12385-.1478-.27145zm2.21341.96295c0 .1474-.092.2303-.1477.2712-.0378.028-.14225.0786-.23575.0786-.1467 0-.3339-.00015-.3339 0h-1.36481v.001c-.0725 0-.13125.0588-.13125.1313 0 .0725.0588.1312.13125.1312.004 0 .007-.0008.0111-.001h1.29301c.17185 0 .27.001.4302.001.2306 0 .3924-.0923.50705-.22635.11125-.13015.13835-.30075.13835-.3874z\"},\"child\":[]}]})(props);\n};\nexport function SiConan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.709 0 0 5.534V16.76L11.984 24l4.857-2.706V9.998c.13-.084.275-.196.399-.27l.032-.017c.197-.11.329-.102.23.33v10.884l6.466-3.603V6.11L24 6.093Zm.915 2.83c.932.02 1.855.191 2.706.552 1.32.533 2.522 1.364 3.45 2.429a62.814 62.814 0 0 1-3.044 1.616c.56-.853.14-2.009-.76-2.455-.93-.648-2.093-.73-3.205-.674-1.064.175-2.258.51-2.893 1.474-.722.862-.084 2.11.914 2.408 1.2.509 2.543.38 3.806.413-.975.457-1.931.97-2.927 1.358-1.701-.176-3.585-.917-4.374-2.51-.574-1.178.215-2.572 1.319-3.14a11.426 11.426 0 0 1 3.336-1.348 9.212 9.212 0 0 1 1.672-.123Z\"},\"child\":[]}]})(props);\n};\nexport function SiConcourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9679 11.2451c-.041-.4858-.1227-.9615-.2353-1.4372-.0511-.243-.133-.4758-.1943-.7187l-.1125-.334-.0614-.162-.0716-.1821c-.1739-.4454-.3887-.8705-.6342-1.2855a9.801 9.801 0 00-1.5752-2.0345l-.092-.091-.041-.0507-.0716-.0607c-.0614-.0607-.1227-.1113-.1841-.172-.0614-.0507-.1228-.1114-.1739-.162-.0716-.0608-.133-.1114-.2046-.162l-.1636-.1316-.0819-.0607-.0204-.0202-.0512-.0405-.0102-.0101-.041-.0304c-.1022-.0709-.1943-.1316-.2863-.1923-.1637-.1114-.2864-.2025-.3785-.2632.1023-.3846.1841-.7794.2455-1.1741.1023-.5972.5217-1.832-.3375-2.1863-.8081-.334-1.8617 1.1842-1.8617 1.1842-2.1173 2.4394-3.396 5.4759-3.6823 8.6744.5319.1113 1.0433.3441 1.4729.6781h.0102C16.1838 9.7876 17.084 8.6135 17.8 7.3382c.6854.425 1.2889.9716 1.7696 1.6194l.0716.0911.0716.1114.1432.2226c.0819.1417.174.2733.2455.4252.3171.587.5421 1.2146.6751 1.8623.0614.3037.1023.6074.1228.9211a5.7575 5.7575 0 010 .8401c-.0103.2328-.041.4758-.0819.7086a4.6387 4.6387 0 01-.1125.5465c-.0818.2936-.133.4656-.133.4656s.0716-.162.1944-.4453c.0511-.1417.1227-.324.1841-.5365.0716-.2328.133-.4757.1739-.7085.0511-.2834.092-.577.1125-.8705a7.8611 7.8611 0 000-.9818c-.0204-.3542-.0716-.7085-.1432-1.0526a9.0875 9.0875 0 00-.3069-1.0628c-.0613-.172-.1432-.3543-.225-.5264l-.1125-.2328-.0614-.1214-.0307-.1316c-.1739-.3239-.3784-.6275-.6035-.921-.3887-.5163-.849-.9718-1.3604-1.3766.1534-.3442.3069-.6984.4296-1.0628l.0614.0304.3069.1619.0409.0202.0102.0102c.041.0303-.0614-.0405-.0511-.0304l.0204.0101.0818.0506.174.1114.092.0607.0511.0304.0205.0202h.0102c.0103.0101-.0511-.0405-.0307-.0202l.0103.01c.0613.0507.1227.0912.1943.1418l.2046.1518.0307.0203c-.041-.0304-.0103-.0102-.0205-.0203h.0102l.0103.0101.0511.0405.1023.081a8.8213 8.8213 0 012.2401 2.743l.0716.1417.0716.162.1534.3137c.0819.2025.174.4049.2353.6174.2966.8401.4705 1.7309.5012 2.6216.0102.2125.0102.425.0102.6376 0 .2126-.0204.415-.0306.6073-.0307.3745-.0921.739-.174 1.1134-.0715.3138-.1534.6175-.2557.9211-.0818.2733-.184.5061-.2557.6984-.0818.1923-.1534.334-.1943.4352-.0512.1013-.0716.1519-.0716.1519s.0307-.0506.092-.1417c.0512-.0911.1432-.2328.2455-.415.092-.1822.2148-.4049.3274-.668.133-.2936.2557-.5972.3477-.911.1228-.3644.2148-.7389.2967-1.1235.0409-.2025.0818-.415.1023-.6276a6.8334 6.8334 0 00.0613-.6579c.0307-.4555.0307-.921-.0102-1.3867zm-12.7946.6992a15.3453 15.3453 0 00-4.4414-.625c.0404-.8037.2428-1.5875.5868-2.3118l.0506-.0992.0607-.119.1214-.2283c.0809-.1389.1517-.2778.2529-.4068.3642-.5456.8094-1.0318 1.3152-1.4485.2327-.1984.4856-.377.7487-.5358.2327-.1488.4856-.2778.7385-.3968a7.5772 7.5772 0 01.6576-.268c.2024-.0793.3845-.119.5261-.1587.2934-.0694.4755-.1091.4755-.1091s-.172.01-.4856.0496c-.1517.0198-.344.0397-.5564.0893a8.1925 8.1925 0 00-.7082.1786c-.2732.0893-.5464.1885-.8195.3076-.3035.129-.5868.2877-.86.4563-.3035.1886-.5868.387-.86.6152-.2832.2381-.5462.4861-.789.764-.1215.129-.2429.2877-.3643.4365l-.1517.2083-.0708.1092-.081.119c-.1922.2977-.3743.6152-.516.9426a6.974 6.974 0 00-.5665 1.8454v.0298c-.3642.0297-.7284.0793-1.0927.1389v-.1885-.3969c.0102-.0496-.01.0694-.01.0595V10.972c0-.0298.01-.0596.01-.0993.0102-.0694.0102-.129.0203-.1984 0-.0397.01-.0694.01-.1091v-.0894c0-.0098-.01.0695-.01.0298v-.0099c.01-.0694.0202-.1488.0303-.2282.0101-.0793.0203-.1587.0405-.238v-.0299c-.0101.0497 0 .01-.0101.0199v-.0298l.01-.0595.0203-.129c.253-1.141.7082-2.2323 1.3658-3.1947l.091-.129.1013-.139.2124-.2777c.1417-.1588.2732-.3373.435-.496.597-.645 1.295-1.2105 2.064-1.657a5.9648 5.9648 0 01.5564-.2976c.182-.0993.3743-.1786.5463-.258.344-.1488.698-.2679 1.0522-.377.3035-.0893.6171-.1588.9308-.2183.2832-.0595.526-.0794.7284-.1091.2023-.0199.3642-.0298.4755-.0397h.1619l-.172-.01c-.1113 0-.2732-.0099-.4755-.0099-.2024.01-.4553 0-.7487.0298-.3237.0298-.6475.0695-.9611.129-.3845.0694-.7588.1587-1.123.2778a8.6512 8.6512 0 00-.597.2083c-.2023.0695-.4046.1588-.607.258-.4249.1984-.8296.4167-1.2241.6647-.4047.258-.7892.5557-1.1534.8731-.182.1489-.3642.3374-.5362.506l-.2327.258-.1214.129-.1214.1488c-.3035.3572-.5868.7441-.8296 1.141-.4451.7143-.7992 1.4882-1.042 2.2919l-.0405.119-.0202.0596-.0203.0893-.0607.238c-.0202.0794-.0405.1489-.0607.2283-.0202.0893-.0303.1686-.0506.248-.01.0695-.0303.139-.0404.1984-.0102.0298-.0102.0596-.0203.0993v.0298l-.01.0594v.0596c-.0102.119-.0203.2282-.0406.3373-.0303.3076-.0505.506-.0607.5953-.354.0893-.7082.1984-1.0521.3175 0 0-1.8515.4266-1.7503 1.3196.1012.8433 1.9223 1.012 1.9223 1.012 3.1464.635 6.4142.2877 9.3482-.9922-.1518-.516-.1923-1.0517-.1012-1.5775zm4.411 1.938c-.3645.4088-.81.7255-1.3162.9299v.0102c.3848 1.4816.982 2.8916 1.7718 4.1995-.6986.3678-1.4478.613-2.2274.7152l-.1113.0102-.1317.0103-.2632.0204c-.162 0-.324.0102-.486 0-.6682-.0102-1.3262-.1226-1.954-.3372-.2936-.092-.5872-.2146-.8605-.3474-.2531-.1226-.4961-.2554-.729-.4087-.2025-.1328-.3948-.2657-.577-.419-.1722-.1328-.3038-.2656-.4253-.3678-.2227-.2145-.3442-.3474-.3442-.3474s.1012.143.2936.3883c.1012.1226.2227.2657.3746.419.1721.1839.3442.3473.5366.5108.2227.1942.4556.3679.6986.5313.2733.184.5568.3474.8504.4905.3139.1533.648.286.982.3985.3544.1124.7088.1941 1.0733.2554.1822.0307.3746.0511.567.0716l.2631.0204.1317.0102h.1518c.3645 0 .729-.0204 1.0935-.0715.6175-.0818 1.225-.2452 1.8122-.4802.2227.3065.4556.6028.6986.8889-.0101.0102-.0203.0102-.0304.0204l-.2936.184-.0405.0204-.0101.0102c-.0506.0204.0607-.0306.0506-.0204h-.0101l-.0203.0102c-.0303.0102-.0607.0306-.091.0409l-.1823.092-.1013.051-.0506.0307-.0202.0102h-.0102c-.01 0 .0608-.0307.0304-.0102l-.0101.0102-.2126.092c-.0709.0306-.1519.0612-.2228.1021l-.0303.0102c.0506-.0204.0101 0 .0202-.0102h-.0101l-.0101.0102-.0608.0205-.1215.051a8.7816 8.7816 0 01-3.4827.5927l-.1519-.0102-.1721-.0102-.3544-.0307c-.2126-.0307-.4353-.051-.658-.1022-.8809-.1635-1.7313-.4496-2.5311-.8685-.1924-.1022-.3746-.2043-.5569-.3065-.1822-.1022-.3442-.2248-.5163-.3372-.3037-.2146-.6075-.4496-.8808-.6948-.243-.2146-.4657-.4394-.6784-.6744-.2024-.2043-.3442-.4087-.4758-.5722-.1316-.1635-.2126-.2963-.2835-.3883l-.1012-.143s.0303.051.081.143c.0607.092.1316.2453.243.419.1113.1737.243.3882.4252.6233.1923.2656.405.521.6176.756.2632.2862.5365.562.8302.8073.162.1328.324.2759.496.3985.1722.1328.3544.2656.5468.3882a11.06 11.06 0 001.225.6846c.4455.2044.901.378 1.3668.511.2328.0714.486.1225.729.1838l.3442.0613.172.0307.1924.0307c.4759.0613.9517.092 1.4276.092.8605-.0103 1.711-.133 2.5412-.3577l.1215-.0307.0607-.0204.0911-.0307c.081-.0306.162-.051.2329-.0817l.2227-.0715.243-.092c.0709-.0306.1316-.051.1924-.0715.0304-.0102.0607-.0204.0911-.0409l.0203-.0102h.01l.0608-.0306.0101-.0103.0405-.0204.3038-.1533c.162-.0817.2835-.143.3847-.1839.2632.2555.5265.5007.81.7255 0 0 1.3262 1.3794 2.0552.8174.6884-.5313-.1013-2.207-.1013-2.207-1.0529-3.0245-3.0474-5.6811-5.6797-7.5407zm-.0549-1.4117a1.8824 1.8824 0 01-1.8823 1.8823 1.8824 1.8824 0 01-1.8824-1.8823 1.8824 1.8824 0 011.8824-1.8824 1.8824 1.8824 0 011.8823 1.8824Z\"},\"child\":[]}]})(props);\n};\nexport function SiCondaforge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.206 5.866l.005.396H6.754l.006.655v.005l-6.758.002v.211L0 7.973l.02.041c.212.467.663.901 1.257 1.313.594.411 1.335.796 2.145 1.13 1.62.664 3.502 1.12 5.006 1.1.746-.01 1.265.228 1.62.672.341.426.51 1.092.524 1.92L7.94 16.239l.008 1.896H20.29l-.004-1.76-2.63-2.22c.055-2.013.708-3.443 1.777-4.405 1.087-.979 2.61-1.49 4.37-1.616l.195-.015L24 5.872zm.425.422l14.946.006-.004 1.457c-1.737.155-3.29.666-4.424 1.685-.912.822-1.433 2.062-1.691 3.534l-1.617.004.002.422 1.535-.004c-.027.226-.113.4-.123.64l-.893-.003-.002.422.995.004 2.138 1.802-2.941.002c-.724-.675-1.552-1.116-2.416-1.158-.817-.04-1.638.324-2.387 1.04l-2.978-.024 2.248-1.781v-.102c.002-.943-.2-1.72-.64-2.269-.396-.496-1.007-.749-1.741-.79l-.008-4.49h.008zm-1.45.396h1.026l.008 4.404c-1.387-.02-3.125-.404-4.631-1.023-.787-.324-1.507-.698-2.066-1.086C.968 8.6.587 8.203.424 7.86v-.514l6.336-.002v2.16h.422v-2.16h.004l-.004-.435v-.226zm6.935 8.839c.75.037 1.503.436 2.18 1.078l-.002 1.112h-4.345l-.006-1.2c.706-.717 1.443-1.026 2.173-.99zM8.36 16.537l3.16.023.006 1.153h-3.16zm11.5.142l.002 1.034h-3.148V16.68z\"},\"child\":[]}]})(props);\n};\nexport function SiConekta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.2914 17.8831a11.7327 11.7327 0 0 1-6.1742 3.0338 2.4598 2.4598 0 0 1-2.1647-.7461c-4.2466-4.6258-4.2466-11.7322 0-16.358a2.4599 2.4599 0 0 1 2.1729-.7461 11.668 11.668 0 0 1 6.289 3.1404 27.1655 27.1655 0 0 0-.6969 6.1004 27.7762 27.7762 0 0 0 .5739 5.5756zm9.8962-3.9376a1.394 1.394 0 0 0-1.5244.5266 24.6804 24.6804 0 0 1-11.9139 8.9375 35.4417 35.4417 0 0 0 6.4284.5903 36.2857 36.2857 0 0 0 4.4605-.2788 3.5997 3.5997 0 0 0 3.0338-2.6977c.4692-1.884.6453-3.8838.5166-5.8134a1.394 1.394 0 0 0-1.001-1.2645zm-1.5245-4.3356a1.394 1.394 0 0 0 2.5255-.7462c.1354-1.9699-.0438-3.9689-.5166-5.8872A3.5997 3.5997 0 0 0 19.6382.2789 36.2678 36.2678 0 0 0 15.1776 0a35.4337 35.4337 0 0 0-6.4284.5904 24.6396 24.6396 0 0 1 11.9139 9.0195z\"},\"child\":[]}]})(props);\n};\nexport function SiConfluence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.87 18.257c-.248.382-.53.875-.763 1.245a.764.764 0 0 0 .255 1.04l4.965 3.054a.764.764 0 0 0 1.058-.26c.199-.332.454-.763.733-1.221 1.967-3.247 3.945-2.853 7.508-1.146l4.957 2.337a.764.764 0 0 0 1.028-.382l2.364-5.346a.764.764 0 0 0-.382-1 599.851 599.851 0 0 1-4.965-2.361C10.911 10.97 5.224 11.185.87 18.257zM23.131 5.743c.249-.405.531-.875.764-1.25a.764.764 0 0 0-.256-1.034L18.675.404a.764.764 0 0 0-1.058.26c-.195.335-.451.763-.734 1.225-1.966 3.246-3.945 2.85-7.508 1.146L4.437.694a.764.764 0 0 0-1.027.382L1.046 6.422a.764.764 0 0 0 .382 1c1.039.49 3.105 1.467 4.965 2.361 6.698 3.246 12.392 3.029 16.738-4.04z\"},\"child\":[]}]})(props);\n};\nexport function SiConstruct3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.392 0c-6.752 0-12 5.498-12 12 0 6.574 5.313 12 12 12 4.283 0 8.087-2.254 10.217-5.704a.571.571 0 0 0-.2-.795l-5.55-3.204a.572.572 0 0 0-.76.177 4.453 4.453 0 0 1-3.707 1.983c-2.458 0-4.458-2-4.458-4.457 0-2.458 2-4.457 4.458-4.457 1.491 0 2.877.741 3.707 1.983a.571.571 0 0 0 .76.177l5.55-3.204a.571.571 0 0 0 .2-.795A11.998 11.998 0 0 0 12.392 0zm0 3.527c3.048 0 5.72 1.61 7.213 4.026l-2.99 1.726c-.037.021-.085.013-.108-.026a4.942 4.942 0 0 0-4.115-2.2A4.953 4.953 0 0 0 7.445 12c0 .9.241 1.745.663 2.473l-2.342 1.353a.327.327 0 0 0-.112.458 7.977 7.977 0 0 0 6.738 3.7 7.978 7.978 0 0 0 6.789-3.781l2.983 1.722a.08.08 0 0 1 .028.113 11.447 11.447 0 0 1-9.8 5.472C6.045 23.51.882 18.346.882 12c0-2.095.562-4.06 1.544-5.754l2.35 1.356c.15.088.345.04.439-.11a8.467 8.467 0 0 1 7.177-3.966zM22.965 8.95a.666.666 0 0 0-.336.088l-4.149 2.395a.654.654 0 0 0 0 1.131l4.149 2.396c.434.25.98-.064.98-.566v-4.79a.655.655 0 0 0-.644-.654zm-.663 1.785v2.528L20.112 12z\"},\"child\":[]}]})(props);\n};\nexport function SiConsul (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.0754 12.0285a2.5059 2.5059 0 0 0-2.506-2.506 2.5059 2.5059 0 0 0-2.5058 2.506 2.5059 2.5059 0 0 0 2.5059 2.5059 2.5059 2.5059 0 0 0 2.5059-2.506zm3.5317.0003a1.1559 1.1556 0 0 0-1.1558-1.1556 1.1559 1.1556 0 0 0-1.1559 1.1556 1.1559 1.1556 0 0 0 1.1559 1.1555 1.1559 1.1556 0 0 0 1.1558-1.1555zm4.7917 5.5103a1.1576 1.1564 0 0 0-1.1577-1.1564 1.1576 1.1564 0 0 0-1.1576 1.1564 1.1576 1.1564 0 0 0 1.1576 1.1564 1.1576 1.1564 0 0 0 1.1577-1.1564zM20.748 13.888a1.1534 1.157 0 0 0-1.1533-1.157 1.1534 1.157 0 0 0-1.1534 1.157 1.1534 1.157 0 0 0 1.1534 1.1571 1.1534 1.157 0 0 0 1.1533-1.157zm3.2512.0619a1.1542 1.1538 0 0 0-1.1542-1.1538 1.1542 1.1538 0 0 0-1.1542 1.1538 1.1542 1.1538 0 0 0 1.1542 1.1538 1.1542 1.1538 0 0 0 1.1542-1.1538zm-3.279-3.883a1.1561 1.1535 0 0 0-1.156-1.1535 1.1561 1.1535 0 0 0-1.1562 1.1535 1.1561 1.1535 0 0 0 1.1561 1.1535 1.1561 1.1535 0 0 0 1.1562-1.1535zm3.2798.045a1.1614 1.157 0 0 0-1.1614-1.157 1.1614 1.157 0 0 0-1.1613 1.157 1.1614 1.157 0 0 0 1.1613 1.1572A1.1614 1.157 0 0 0 24 10.1119zm-1.626-3.631a1.1575 1.1601 0 0 0-1.1575-1.16 1.1575 1.1601 0 0 0-1.1575 1.16 1.1575 1.1601 0 0 0 1.1575 1.1602A1.1575 1.1601 0 0 0 22.374 6.481zM11.6171.3832c-3.1098 0-6.029 1.2063-8.2197 3.3974C1.206 5.9822 0 8.9007 0 11.9998c0 3.109 1.2067 6.0279 3.3974 8.2193 2.2028 2.1922 5.1213 3.3978 8.2197 3.3978 2.578 0 5.0176-.8252 7.055-2.386l-1.4196-1.8524c-1.6263 1.246-3.5748 1.9048-5.6354 1.9048-2.4776 0-4.8112-.9641-6.5717-2.7154-1.748-1.7488-2.7118-4.0828-2.7118-6.568 0-2.4784.9645-4.812 2.7158-6.5703 1.7484-1.7488 4.0817-2.713 6.5677-2.713 2.058 0 4.0069.659 5.6365 1.9057l1.4179-1.854C16.6314 1.2083 14.1922.3831 11.617.3831Z\"},\"child\":[]}]})(props);\n};\nexport function SiContabo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.336 1.816a6.95 6.95 0 0 0-6.879 5.889 7.88 7.88 0 0 1 2.24-.412A4.855 4.855 0 0 1 11.33 3.92a4.853 4.853 0 0 1 3.45 1.44 4.793 4.793 0 0 1 1.197 2.01 7.633 7.633 0 0 1 .875-.067h.33a8.313 8.313 0 0 1 .976.076 6.95 6.95 0 0 0-6.822-5.564zM6.99 8.224A6.983 6.983 0 0 0 0 15.2a6.978 6.978 0 0 0 6.977 6.976 6.966 6.966 0 0 0 4.933-2.03 691.43 691.43 0 0 0 1.56-1.581l-1.488-1.488-1.55 1.582a4.86 4.86 0 0 1-3.452 1.436A4.881 4.881 0 0 1 2.104 15.2a4.877 4.877 0 0 1 4.876-4.871 4.855 4.855 0 0 1 2.819.904l.04-.043 1.466-1.465A6.969 6.969 0 0 0 6.99 8.224zm10.04 0a6.966 6.966 0 0 0-4.936 2.047l-1.59 1.574 1.488 1.489 1.58-1.584A4.88 4.88 0 0 1 21.9 15.2a4.881 4.881 0 0 1-4.877 4.882 4.858 4.858 0 0 1-2.83-.914l-.045.046s-1.078 1.096-1.437 1.467a6.95 6.95 0 0 0 4.312 1.504A6.983 6.983 0 0 0 24 15.205a6.95 6.95 0 0 0-2.04-4.933 6.962 6.962 0 0 0-4.93-2.047z\"},\"child\":[]}]})(props);\n};\nexport function SiContactlesspayment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.878 19.1c-2.861-.25-5.385-1.312-7.03-2.954-.936-.936-1.504-1.952-1.76-3.149-.118-.544-.117-1.448 0-1.997.357-1.664 1.433-3.12 3.126-4.23 3.862-2.533 9.778-2.52 13.604.03.508.338.836.607 1.296 1.06.58.573.988 1.142 1.418 1.98.016.03.095.07.176.086.27.056.633.268.924.54.226.21.401.44.832 1.093.435.658 2.404 3.697 2.524 3.896.046.078-.046.202-.15.202-.073 0-.126-.05-.234-.22l-1.116-1.732c-1.9-2.942-2.003-3.078-2.532-3.343l-.278-.14h-.817c-.816 0-.817.001-.837.087-.108.47-.128.586-.104.608.015.014.478.278 1.03.586l1.002.562-.062.131c-.035.072-.074.132-.088.132-.014 0-.858-.468-1.875-1.039-1.018-.57-1.91-1.054-1.982-1.074-.29-.08-.734.24-.734.529 0 .292.087.378 1.874 1.841 1.115.914 1.753 1.462 1.85 1.592.178.236.357.584.523 1.012.29.754.763 1.174 1.538 1.368l.255.064-.021.14a.667.667 0 01-.037.157c-.033.037-.547-.127-.844-.27-.465-.223-.785-.541-1.099-1.094a5.565 5.565 0 00-.405.139c-.391.142-.41.154-.78.515-1.576 1.538-3.836 2.521-6.566 2.855-.443.055-2.15.079-2.621.037zm2.717-.473c1.252-.166 2.223-.414 3.24-.83 1.067-.437 2.073-1.065 2.777-1.733l.277-.264-.698-.333c-.746-.357-.82-.416-.915-.735-.06-.2.008-.415.198-.621l.149-.161-.324-.246c-.256-.195-.336-.28-.386-.41a.65.65 0 01.079-.616l.098-.138-1.023-.18a26.154 26.154 0 01-1.166-.222c-.153-.046-.31-.22-.35-.391-.022-.092.48-2.54.592-2.89a.67.67 0 01.426-.376c.169-.031 3.185.499 3.335.587.238.138.313.362.238.705l-.032.144h.167c.092 0 .31-.012.483-.025l.316-.025-.157-.29c-.474-.882-1.33-1.768-2.388-2.472-.494-.328-1.547-.847-2.181-1.074a13.51 13.51 0 00-3.043-.674c-.575-.06-2.082-.06-2.64.001-1.339.146-2.554.449-3.617.902C2.59 7.309.935 9.046.512 11.027c-.11.517-.12 1.423-.018 1.894.224 1.04.713 1.941 1.509 2.78 1.62 1.707 4.097 2.756 7.066 2.994.397.031 2.121-.015 2.526-.068zm-.543-1.864c-.153-.044-.308-.227-.34-.4-.022-.114.004-.192.166-.506.656-1.27.941-2.437.941-3.855 0-1.37-.252-2.435-.879-3.713-.135-.274-.245-.529-.245-.565 0-.136.114-.333.237-.41.169-.107.452-.087.588.04.052.05.187.271.3.494.449.88.756 1.847.908 2.853.094.623.113 1.803.038 2.373a9.33 9.33 0 01-.86 2.909c-.27.555-.438.784-.58.784a.418.418 0 00-.101.015.421.421 0 01-.173-.019zm-1.826-.955c-.234-.069-.404-.357-.336-.573.017-.052.127-.293.246-.535.502-1.024.711-2.123.609-3.201-.084-.886-.243-1.445-.643-2.263-.269-.549-.281-.634-.125-.854.148-.21.519-.245.713-.066.135.124.555 1 .716 1.496a7.106 7.106 0 01-.232 5.016c-.352.826-.599 1.081-.948.98zm-1.882-.969a.57.57 0 01-.304-.374c-.021-.094.014-.198.187-.547.632-1.28.639-2.514.02-3.765-.271-.55-.277-.659-.047-.876.113-.107.161-.126.32-.126.267 0 .406.135.644.625.367.754.518 1.408.516 2.246 0 .86-.141 1.452-.533 2.247-.225.455-.336.575-.56.606a.525.525 0 01-.243-.036zm-1.757-.902a.592.592 0 01-.286-.34c-.043-.152-.008-.273.165-.557.222-.365.274-.56.274-1.038 0-.477-.052-.673-.274-1.038a2.046 2.046 0 01-.168-.329c-.071-.24.129-.535.398-.586.228-.043.385.06.595.387a2.96 2.96 0 010 3.155c-.215.332-.454.45-.704.346zm13.09 1.473c.203-.073.379-.141.39-.153.012-.011-.027-.141-.087-.289-.122-.302-.102-.295-.534-.212-.468.09-.739.01-1.25-.366-.14-.103-.283-.187-.32-.187-.036 0-.115.053-.177.119-.13.14-.15.36-.044.49.093.113 1.377.724 1.53.727.067.002.289-.056.492-.129zm-.202-.983c.19-.038.211-.051.178-.112-.036-.068-1.812-1.542-1.966-1.632-.127-.074-.23-.057-.335.056-.309.33-.273.4.526 1.013.964.738 1.066.782 1.597.675zm-2.384-2.231c0-.01-.201-.183-.448-.385-.608-.501-.738-.688-.738-1.058 0-.31.206-.608.538-.78a.966.966 0 01.625-.057c.118.038.648.325 1.383.748l.155.089.128-.606c.13-.62.133-.782.012-.82-.037-.011-.746-.14-1.575-.286-1.473-.26-1.634-.275-1.702-.164-.037.06-.597 2.656-.597 2.767 0 .055.028.124.062.152.034.029.512.132 1.062.23 1.062.191 1.095.196 1.095.17Z\"},\"child\":[]}]})(props);\n};\nexport function SiContainerd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.629 0v24H20.37V0zM17.59 21.208H6.421V10.604h7.812V6.692h3.346v14.516zm-7.823-7.812h4.466v5.02H9.767z\"},\"child\":[]}]})(props);\n};\nexport function SiContao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.133 14.233c.672 3.125 1.23 6.1 3.189 8.242H1.588A1.602 1.602 0 0 1 0 20.897V3.109a1.6 1.6 0 0 1 1.588-1.584h2.698a10.317 10.317 0 0 0-1.718 2.028c-2.135 3.271-1.257 6.838-.435 10.68ZM22.411 1.525h-4.234c1.002 1.002 1.847 2.3 2.486 3.913l-6.437 1.358c-.706-1.351-1.779-2.476-3.877-2.034-1.156.245-1.923.894-2.264 1.604-.418.876-.624 1.858.377 6.525.999 4.667 1.588 5.481 2.327 6.112.601.511 1.57.794 2.727.55 2.1-.442 2.617-1.902 2.708-3.422l6.437-1.359c.153 3.329-.879 5.911-2.699 7.696h2.449A1.602 1.602 0 0 0 24 20.891V3.109a1.602 1.602 0 0 0-1.589-1.584Z\"},\"child\":[]}]})(props);\n};\nexport function SiContentful (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.875 16.361c-.043-.048-1.067-1.18-2.365-1.19-.68 0-1.288.283-1.815.858-.773.842-2.35 1.85-4.25 1.921-1.598.059-3.085-.548-4.423-1.805-1.644-1.544-2.155-4.016-1.302-6.297.834-2.23 2.752-3.616 5.131-3.707l.044-.004c.024-.003 2.302-.258 4.325 1.548.17.185 1.154 1.197 2.475 1.228.823.018 1.586-.336 2.27-1.055.602-.632.87-1.342.797-2.112-.154-1.61-1.806-2.876-2.03-3.04-.212-.184-1.878-1.578-4.476-2.294-2.52-.695-6.42-.853-10.685 2.349a7.31 7.31 0 0 0-.557.49c-.28.208-.523.462-.716.753a12.469 12.469 0 0 0-3.064 8.677c.207 6.283 5.265 9.293 5.646 9.51.262.17 2.906 1.81 6.495 1.809 2.106 0 4.538-.565 7.005-2.322.248-.138 1.714-1.012 2.103-2.52.23-.894.042-1.815-.562-2.737l-.046-.06zm-16.932 1.97c0-1.09.887-1.977 1.977-1.977s1.977.886 1.977 1.977c0 1.09-.887 1.977-1.977 1.977s-1.977-.887-1.977-1.977zm.139-13.657c.236-.275.451-.498.628-.67a1.965 1.965 0 0 1 1.088-.329c1.09 0 1.977.887 1.977 1.977S7.888 7.63 6.798 7.63s-1.977-.887-1.977-1.977c0-.356.096-.69.261-.978zM13.249.999c3.954 0 6.657 2.336 6.826 2.486l.043.034c.42.3 1.532 1.301 1.63 2.324.044.469-.126.898-.52 1.313-.477.5-.983.752-1.504.738-.964-.019-1.743-.887-1.76-.905l-.042-.044c-2.292-2.063-4.83-1.855-5.13-1.822a6.82 6.82 0 0 0-3.012.818 3 3 0 0 0-2.34-3.214C9.543 1.45 11.516.999 13.248.999zM3.884 6.34a3 3 0 0 0 2.914 2.31c.122 0 .24-.01.358-.024a7.336 7.336 0 0 0-.39.866c-.75 2.003-.59 4.14.359 5.854-.068-.005-.136-.01-.205-.01a2.999 2.999 0 0 0-2.967 2.6 10.075 10.075 0 0 1-1.7-5.288 11.43 11.43 0 0 1 1.63-6.309zM21.497 18.9c-.3 1.174-1.615 1.89-1.627 1.896l-.058.036c-6.287 4.499-12.137.667-12.382.502l-.036-.022a2.848 2.848 0 0 1-.034-.02 2.998 2.998 0 0 0 2.543-3.228c1.124.64 2.336.951 3.58.906 2.214-.083 4.057-1.264 4.962-2.25.327-.356.67-.53 1.048-.53h.005c.762.004 1.46.688 1.593.826.421.658.558 1.291.406 1.884z\"},\"child\":[]}]})(props);\n};\nexport function SiContentstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.564 10.108a.347.347 0 0 1-.364.368h-6.974a.35.35 0 0 1-.369-.368v-.79a.35.35 0 0 1 .37-.368h6.964a.347.347 0 0 1 .364.369zm3.085 2.29a.347.347 0 0 1-.368.37h-8.59a.343.343 0 0 1-.363-.37v-.807a.342.342 0 0 1 .364-.364h8.514a.346.346 0 0 1 .369.364zm2.35 2.35a.347.347 0 0 1-.37.368h-9.32a.342.342 0 0 1-.364-.368v-.803a.342.342 0 0 1 .364-.37h9.321a.347.347 0 0 1 .368.37zm0 2.352a.347.347 0 0 1-.37.364h-9.32a.343.343 0 0 1-.364-.364v-.807a.342.342 0 0 1 .364-.37h9.321a.347.347 0 0 1 .368.37zm-2.35 2.273a.351.351 0 0 1-.368.37h-8.589a.347.347 0 0 1-.364-.37v-.807a.346.346 0 0 1 .364-.37h8.515a.351.351 0 0 1 .368.37zm-3.085 2.349a.346.346 0 0 1-.364.368h-6.974a.351.351 0 0 1-.369-.368v-.808a.347.347 0 0 1 .37-.365h6.964a.343.343 0 0 1 .364.365zM5.354 3.087a.347.347 0 0 0 .37.364h6.97a.342.342 0 0 0 .367-.365V2.28a.346.346 0 0 0-.368-.369h-6.97a.351.351 0 0 0-.367.37ZM2.35 5.43a.342.342 0 0 0 .364.364h8.514a.346.346 0 0 0 .368-.364v-.807a.351.351 0 0 0-.368-.37H2.712a.346.346 0 0 0-.364.37ZM0 7.778a.342.342 0 0 0 .364.364h9.321a.342.342 0 0 0 .364-.364V6.97a.346.346 0 0 0-.364-.37H.365a.347.347 0 0 0-.364.37Zm0 2.33a.347.347 0 0 0 .364.37h9.321a.346.346 0 0 0 .364-.37v-.79a.346.346 0 0 0-.364-.368H.365A.347.347 0 0 0 0 9.319Zm2.347 2.291a.342.342 0 0 0 .365.368h8.513a.346.346 0 0 0 .37-.368v-.808a.346.346 0 0 0-.37-.364H2.713a.342.342 0 0 0-.365.364zm3.008 2.348a.346.346 0 0 0 .369.368h6.968a.346.346 0 0 0 .37-.368v-.803a.346.346 0 0 0-.37-.37H5.725a.347.347 0 0 0-.37.37z\"},\"child\":[]}]})(props);\n};\nexport function SiContinente (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9922 0C5.3736 0 .0078 5.3814.0078 12c0 6.6334 5.3509 12 11.9844 12s12-5.3666 12-12-5.3814-12-12-12m0 2.504c5.2472 0 9.5117 4.2637 9.5117 9.496 0 5.232-4.2645 9.5098-9.5117 9.5098S2.496 17.2618 2.496 12c0-5.2472 4.249-9.496 9.496-9.496m-.0586 2.3847c-3.9354 0-7.127 3.1766-7.127 7.127s3.1916 7.1406 7.127 7.1406c1.9677 0 3.7551-.7908 5.0371-2.088a1.89 1.89 0 0 0 0-2.6835c-.7304-.7455-1.9226-.7455-2.668 0-.6111.6113-1.4449.9843-2.3691.9843-1.8484 0-3.3398-1.52-3.3398-3.3535s1.4914-3.3398 3.3398-3.3398v-.0156c.9242 0 1.758.3731 2.3691.9843.7305.7305 1.9227.7305 2.668 0s.7453-1.9233 0-2.6836c-1.282-1.282-3.0694-2.0722-5.0371-2.0722m.0586 5.7539c-.7602 0-1.3711.6128-1.3711 1.373s.6109 1.3711 1.371 1.3711c.7604 0 1.3712-.6258 1.3712-1.371 0-.7454-.6108-1.3731-1.3711-1.3731\"},\"child\":[]}]})(props);\n};\nexport function SiContributorcovenant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.688 0c-6.627 0-12 5.373-12 12s5.373 12 12 12a12 12 0 0 0 10.624-6.412 10.484 10.484 0 0 1-8.374 4.162c-5.799 0-10.5-4.701-10.5-10.5S9.14.75 14.938.75c1.001 0 1.97.14 2.887.402A11.956 11.956 0 0 0 12.688 0Zm2.438 2.25a9 9 0 1 0 7.967 13.19 7.875 7.875 0 1 1-4.115-12.326 8.962 8.962 0 0 0-3.852-.864Z\"},\"child\":[]}]})(props);\n};\nexport function SiConventionalcommits (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.382 0 0 5.382 0 12s5.382 12 12 12 12-5.382 12-12S18.618 0 12 0zm0 1.6c5.753 0 10.4 4.647 10.4 10.4S17.753 22.4 12 22.4 1.6 17.753 1.6 12 6.247 1.6 12 1.6z\"},\"child\":[]}]})(props);\n};\nexport function SiConvertio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .037C5.373.037 0 5.394 0 12c0 6.606 5.373 11.963 12 11.963 6.628 0 12-5.357 12-11.963C24 5.394 18.627.037 12 .037zm-.541 4.8c1.91-.13 3.876.395 5.432 1.934 1.426 1.437 2.51 3.44 2.488 5.317h2.133l-4.444 4.963-4.445-4.963h2.313c-.001-1.724-.427-2.742-1.78-4.076-1.325-1.336-2.667-2.11-4.978-2.303a9.245 9.245 0 013.281-.871zM6.934 6.95l4.445 4.963H9.066c0 1.724.426 2.742 1.778 4.076 1.326 1.336 2.667 2.112 4.978 2.305-2.684 1.268-6.22 1.398-8.71-1.064-1.427-1.437-2.512-3.44-2.489-5.317H2.488L6.934 6.95Z\"},\"child\":[]}]})(props);\n};\nexport function SiCookiecutter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.806 0a12 12 0 0 0-4.512.885A12 12 0 0 0 .858 12.978a12 12 0 0 0 9.303 10.724 12 12 0 0 0 13.021-5.656L12.817 12l9.244-7.65A12 12 0 0 0 12.806 0zM9.218 2.143c.34-.003.701.123 1.193.378.847.437 1.013 1.027.36 1.277-.487.187-2.457.177-2.932-.015-.526-.212-.38-.781.32-1.24.402-.263.72-.396 1.059-.4zm4.077 4.052a1.292 1.292 0 0 1 .022 0 1.292 1.292 0 0 1 1.292 1.291 1.292 1.292 0 0 1-1.292 1.292 1.292 1.292 0 0 1-1.292-1.292 1.292 1.292 0 0 1 1.27-1.291zm-6.259 3.8c1.033 0 1.788.434 1.788 1.028 0 .694-1.961 2.384-2.766 2.384-.365 0-.727-.166-.804-.368-.078-.203.117-.97.434-1.706.505-1.176.67-1.338 1.348-1.338zm8.637 9.187c.372 0 1.362 2.316 1.186 2.775-.201.524-1.046.467-1.564-.105-.676-.747-.404-2.67.378-2.67z\"},\"child\":[]}]})(props);\n};\nexport function SiCoolermaster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.526c-.97 0-2.528.285-5.647 1.43-2.721 1-3.219 1.246-3.65 1.443C.603 6.361 0 7.356 0 9.863v4.608c0 2.326.357 3.004 2.49 3.933.741.32 1.858.875 4.71 1.956 1.263.478 3.153 1.114 4.797 1.114 1.645 0 3.543-.636 4.801-1.114 2.857-1.081 3.975-1.636 4.714-1.956C23.647 17.475 24 16.797 24 14.471V9.863c.003-2.507-.593-3.502-2.694-4.464-.431-.197-.929-.444-3.65-1.443-3.124-1.145-4.685-1.43-5.656-1.43Zm0 .645c1.373 0 3.347.595 5.492 1.393 2.609.967 2.824 1.106 3.344 1.323 1.472.615 2.5 1.384 2.5 3.667l-.003 2.401v2.691c0 1.769-.408 2.442-1.867 3.096-1.22.542-1.344.6-3.871 1.59-1.596.625-3.716 1.451-5.595 1.451-1.878 0-3.998-.826-5.589-1.451-2.525-.989-2.644-1.047-3.869-1.59-1.461-.653-1.866-1.327-1.866-3.095V9.555c0-2.284 1.028-3.053 2.495-3.668.522-.218.736-.357 3.342-1.323C8.666 3.766 10.628 3.171 12 3.171Zm.722.811v7.681h3.071v-1.381l-1.724-.125V4.435l-1.347-.453Zm-2.212.275a1.132 1.132 0 0 0-.45.078c-1.197.456-1.659 2.22-1.576 4.115.086 1.936.747 3.292 1.813 3.292 1.191 0 1.985-1.341 1.939-3.985-.033-1.903-.72-3.46-1.726-3.5Zm5.666.867.001 6.539h2.962v-1.159l-1.739-.118V9.203l1.442.195V8.221L17.4 7.925V6.817l1.739.462V6.108l-2.963-.984Zm-9.641.436a1.106 1.106 0 0 0-.3.059c-.978.328-1.489 1.71-1.431 3.357.059 1.62.642 2.765 1.603 2.765 1.174 0 1.788-1.278 1.751-3.314-.032-1.619-.686-2.912-1.623-2.867Zm3.8.302c.339.019.556.844.586 2.042.034 1.332-.188 2.349-.608 2.39-.379.038-.606-.808-.645-1.965-.045-1.319.212-2.246.514-2.424a.271.271 0 0 1 .153-.043Zm9.194.379v5.422h1.121V9.919l.376.043.526 1.701h.954l-.593-1.798c.265-.115.56-.451.56-1.199 0-.813-.426-1.578-1.15-1.822l-1.794-.603Zm-16.355.554c-.068.002-.136.01-.204.025-1.117.253-1.561 1.476-1.525 2.782.036 1.27.635 2.14 1.594 2.14.859 0 1.585-.886 1.585-1.857l-.976.082c-.048.429-.324.74-.623.762-.455.032-.64-.483-.656-1.268-.016-.796.154-1.432.615-1.562.3-.084.506.143.579.502l1.015-.189c-.139-.844-.749-1.436-1.404-1.417Zm3.234.021c.356-.021.598.704.619 1.739.025 1.082-.207 1.912-.598 1.944-.367.031-.585-.701-.615-1.702-.029-1.132.26-1.879.521-1.967a.277.277 0 0 1 .073-.014Zm14.241.864.526.14c.253.067.43.318.43.664 0 .346-.177.517-.43.47l-.526-.098V7.68ZM10.53 12.161c-.95-.012-1.868.806-1.839 2.039.048 2.208 2.456 1.856 2.474 3.691 0 .275-.154.553-.435.525-.356-.068-.623-.314-.647-1.07l-1.251-.307c-.013 1.153.404 2.373 1.625 2.638 1.187.261 2.276-.697 2.019-2.346-.304-1.917-2.469-2.031-2.524-3.059-.02-.385.259-.645.534-.615.203.024.468.24.431.762l1.338.132c.071-1.353-.499-2.369-1.725-2.39Zm-8.982.072v4.305l.761.266v-2.722l.576 2.919.327.113.742-2.789v3.047l.997.345v-5.484H3.659l-.578 2.286-.445-2.286H1.548Zm4.648 0-1.015 5.56.97.335.136-.856 1.066.302.154 1.019 1.181.412-1.269-6.772H6.196Zm6.526 0v1.599l.937-.063.002 5.841 1.281-.427v-5.505l.842-.069v-1.376h-3.062Zm3.454 0v6.539l2.963-.987v-1.149l-1.739.457v-1.207l1.533-.305V14.41l-1.533.198v-1.095l1.739-.122v-1.158h-2.963Zm3.353 0v5.422l1.122-.373v-1.733l.377-.082.52 1.516.958-.319-.585-1.594c.264-.204.559-.64.559-1.392 0-.819-.426-1.445-1.153-1.445h-1.798Zm1.696 1.03c.229.008.385.198.385.523 0 .348-.178.579-.431.617l-.529.077v-1.179l.529-.037.046-.001ZM6.79 13.96l.376 2.291-.723-.162.347-2.129Z\"},\"child\":[]}]})(props);\n};\nexport function SiCoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.275 5.265c0-.852-.132-1.703-.36-2.555-.328-1.016-1.081-1.834-2.031-2.194a9.248 9.248 0 0 0-6.092 0 3.168 3.168 0 0 0-2.03 2.194 9.532 9.532 0 0 0 0 5.077c.326 1.015 1.08 1.834 2.03 2.194a8.04 8.04 0 0 0 3.046.491c1.049 0 2.063-.196 3.046-.491a3.172 3.172 0 0 0 2.031-2.194c.229-.819.36-1.67.36-2.522zm-3.308 0c0 .393-.065.852-.196 1.212-.164.524-.623.95-1.18 1.081a4.233 4.233 0 0 1-1.571 0 1.473 1.473 0 0 1-1.18-1.081 4.025 4.025 0 0 1 0-2.489c.163-.524.622-.95 1.18-1.081a4.233 4.233 0 0 1 1.571 0 1.476 1.476 0 0 1 1.18 1.081c.13.458.196.884.196 1.277m-8.745 13.79a9.552 9.552 0 0 0 0-5.077c-.327-1.016-1.081-1.834-2.03-2.195a9.248 9.248 0 0 0-6.092 0 3.173 3.173 0 0 0-2.031 2.195 9.552 9.552 0 0 0 0 5.077c.328 1.015 1.081 1.834 2.031 2.193a9.248 9.248 0 0 0 6.092 0 3.392 3.392 0 0 0 2.03-2.193m-2.948-2.523c0 .393-.066.852-.197 1.212a1.644 1.644 0 0 1-1.179 1.081 4.238 4.238 0 0 1-1.572 0 1.477 1.477 0 0 1-1.179-1.081 4.04 4.04 0 0 1 0-2.489 1.64 1.64 0 0 1 1.179-1.081 4.196 4.196 0 0 1 1.572 0 1.476 1.476 0 0 1 1.179 1.081c.131.426.197.851.197 1.277m0-11.3h3.308c0-.851-.131-1.703-.36-2.521-.327-1.016-1.081-1.834-2.03-2.194a9.248 9.248 0 0 0-6.092 0C2.084.909 1.331 1.728 1.068 2.743a9.552 9.552 0 0 0 0 5.077c.328 1.015 1.081 1.834 2.031 2.194.982.36 1.998.492 3.046.492 1.048 0 2.063-.197 3.046-.492a3.17 3.17 0 0 0 2.03-2.194c.033-.131.065-.295.131-.426L8.241 5.953c-.033.196-.065.36-.131.557-.163.524-.622.95-1.179 1.081a4.238 4.238 0 0 1-1.572 0A1.478 1.478 0 0 1 4.18 6.51a4.04 4.04 0 0 1 0-2.489c.164-.524.622-.95 1.179-1.082a4.238 4.238 0 0 1 1.572 0A1.476 1.476 0 0 1 8.11 4.021c.098.425.164.818.164 1.211m4.421 8.779a9.442 9.442 0 0 0-.36 2.555V24h3.308v-7.468c0-.393.065-.852.196-1.212.163-.524.622-.95 1.18-1.081a4.191 4.191 0 0 1 1.571 0 1.478 1.478 0 0 1 1.18 1.081 4.04 4.04 0 0 1 0 2.489c-.164.523-.623.95-1.146 1.08a4.196 4.196 0 0 1-1.572 0c-.099-.031-.229-.064-.327-.098l1.113 3.079c1.049 0 2.063-.197 3.046-.491a3.175 3.175 0 0 0 2.031-2.194 9.552 9.552 0 0 0 0-5.077c-.328-1.016-1.081-1.834-2.031-2.195a9.248 9.248 0 0 0-6.092 0c-1.016.263-1.769 1.082-2.097 2.098\"},\"child\":[]}]})(props);\n};\nexport function SiCopaairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .105v6.456c.69-.02 1.48.208 2.336.32l-1.502.191c-.256.01-.545.033-.834.06v.339a20.066 20.066 0 0 1 3.387-.344c9.682-2.296 17.7-.135 17.7-.135C19.368 6.602 9.78 5.302 0 9.122v.58c1.452-.489 2.986-.867 4.453-1.04 2.176-.267 4.2-.147 5.902.332 7.157-.509 12.342 1.016 12.342 1.016C20.75 9.694 10.303 8.269 0 12.953v.465c2.852-1.355 5.844-2.138 8.395-2.305 2.585-.138 4.896.228 6.634 1.256 4.1-.063 7.225.467 8.971.889V.105H0zm7.264 7.397a7.27 7.27 0 0 1 1.859.787l-.734-.115c-.63-.236-1.377-.394-2.118-.498.321-.07.635-.13.993-.174zm-.059 1.807C5.014 9.306 2.491 9.697 0 10.518v.752c2.566-.993 5.155-1.598 7.639-1.956a17.752 17.752 0 0 0-.434-.005zm5.643.75c.511.336 1.198.871 1.605 1.38l-.426-.138c-.605-.435-1.239-.831-2.058-1.164.274-.018.557-.062.879-.078zm-3.323 2.224c-2.884.008-6.186.705-9.525 2.096v1.453c4.215-2.037 8.514-3.007 12.258-3.328-.855-.15-1.771-.223-2.733-.22zm9.104.865c-5.013.01-12.024.842-18.629 4.598v.606c.29-.165.58-.321.854-.467 2.156-1.153 4.31-1.957 6.464-2.446 2.039-.483 4.035-.653 5.86-.492 3.45.308 5.93 1.808 7.123 4.395.01.02.863 1.919.945 3.71l-.414-1.025c-.11-.512-.252-1.038-.521-1.51-.884-1.707-2.606-2.935-4.93-3.654-2.11-.662-4.882-.69-7.758-.13-2.552.48-5.15 1.438-7.623 2.656v4.506h.24c1.483-1.097 3.083-1.901 4.746-2.557 4.36-1.865 8.601-2.43 11.784-1.59 2.336.665 3.864 2.038 4.486 4.147H24V13.447a46.901 46.901 0 0 0-5.371-.299zm-1.912.397c.127.094.25.21.365.351.044.063 1.468 1.458 1.945 2.877l-.605-.664c-.727-1.066-1.648-1.873-2.926-2.49.382-.045.862-.058 1.22-.074zm-4.211 7.443a19.97 19.97 0 0 0-3.332.344c-2.37.43-4.854 1.23-7.242 2.563h18.226c-.849-1.231-2.199-2.02-3.85-2.471-1.17-.309-2.442-.455-3.802-.436z\"},\"child\":[]}]})(props);\n};\nexport function SiCoppel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.738 2.879a.716.716 0 0 0-.738.74v16.762c0 .428.35.74.738.74h22.52a.739.739 0 0 0 .739-.74V3.619c.039-.428-.31-.74-.738-.74Zm6.614 6.34c1.167 0 2.1.935 2.1 2.101 0 .234-.04.427-.079.621h12.058v1.868h-.973v2.527h-.97v-1.283h-.935v1.283h-.972v-2.527H9.373c.04.194.079.428.079.623a2.09 2.09 0 0 1-2.1 2.1c-1.011 0-1.83-.7-2.063-1.634a3.388 3.388 0 0 1-.62.077 2.092 2.092 0 0 1-2.102-2.1c0-1.167.934-2.1 2.101-2.1.234 0 .427 0 .621.079.234-.934 1.052-1.635 2.063-1.635Zm0 1.168c-.545 0-.973.428-.934.933 0 .506.428.932.934.932a.945.945 0 0 0 .933-.932.947.947 0 0 0-.933-.933zM4.668 11.94a.947.947 0 0 0-.933.934c0 .506.428.934.933.934a.947.947 0 0 0 .934-.934.947.947 0 0 0-.934-.934zm2.684 1.518a.947.947 0 0 0-.934.934c0 .505.428.933.934.933a.947.947 0 0 0 .933-.933.947.947 0 0 0-.933-.934z\"},\"child\":[]}]})(props);\n};\nexport function SiCora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.637 8.6606c0-.0838-.0344-.1153-.118-.1117-.1242.0045-.2487 0-.3729 0a1.5068 1.5068 0 0 0-1.0148.4021 2.4725 2.4725 0 0 0-.462.594c-.0526.088-.1058.1756-.1589.2632l-.0215-.0053c-.0028-.0304-.0078-.0608-.008-.0915q-.0062-.4465-.0107-.8904c0-.0653-.007-.1097-.0937-.1116-.4763-.0109-.9524-.016-1.429-.0087-.0954.0014-.1183.0374-.1191.1273-.0223 2.1229-.0128 4.2458 0 6.369 0 .0753.0279.0895.0952.0906.4796.0084.9596.0134 1.4392 0 .171-.0047.1736-.0067.1755-.181.012-1.1667.021-2.3336.0352-3.5003a1.263 1.263 0 0 1 1.0118-1.2573 3.508 3.508 0 0 1 .9378-.0516c.0949.0033.1152-.0257.1141-.1144-.0033-.29.0028-.5799.0033-.87-.0005-.2174-.0047-.4348-.0036-.6524zM3.2957 9.9943a.9705.9705 0 0 1 .8005.4744 1.5509 1.5509 0 0 1 .1954.4978c.0156.0698.0471.0854.1116.0837.2553-.0033.5109 0 .7662 0 .2553 0 .511-.005.7662.0025.0958.0028.1184-.0279.1091-.1164a2.4354 2.4354 0 0 0-1.4004-2.0762 3.5683 3.5683 0 0 0-2.2044-.264A2.6017 2.6017 0 0 0 .4925 9.9383a4.0022 4.0022 0 0 0-.4643 1.6708 4.9916 4.9916 0 0 0 .1485 1.8461 2.6 2.6 0 0 0 1.4038 1.7133 3.5789 3.5789 0 0 0 2.2694.2112c1.3915-.2882 2.016-1.3394 2.1854-2.3592.0147-.089-.0026-.1273-.1086-.1259-.4626.0064-.9253.0028-1.3876.0028-.2233 0-.2233 0-.2816.2205a1.1622 1.1622 0 0 1-.985.9088 1.1413 1.1413 0 0 1-1.144-.4688 1.8042 1.8042 0 0 1-.2723-.6761 5.631 5.631 0 0 1-.0623-1.114 2.439 2.439 0 0 1 .0837-.6545c.1555-.6044.5634-1.1795 1.4181-1.119Zm7.911-1.2316a3.7982 3.7982 0 0 0-2.6367-.003 2.8688 2.8688 0 0 0-1.8363 1.862 4.2971 4.2971 0 0 0-.0416 2.6186 2.8816 2.8816 0 0 0 1.8623 1.9907 3.8071 3.8071 0 0 0 2.5392.0432 2.8978 2.8978 0 0 0 1.8383-1.644 3.9383 3.9383 0 0 0 .3153-1.6265 4.9445 4.9445 0 0 0-.0985-.9727 2.9614 2.9614 0 0 0-1.942-2.2683zm.0557 4.3671a1.3036 1.3036 0 0 1-1.2579.865 1.734 1.734 0 0 1-.7333-.091 1.4208 1.4208 0 0 1-.826-.912 2.9901 2.9901 0 0 1-.1372-1.0755 2.458 2.458 0 0 1 .2338-1.1404 1.3394 1.3394 0 0 1 1.1935-.7774 1.7189 1.7189 0 0 1 .7441.0904 1.2986 1.2986 0 0 1 .7858.776 3.0973 3.0973 0 0 1-.0028 2.2652zm12.6651 1.8749a.483.483 0 0 1-.2028-.2274 1.0475 1.0475 0 0 1-.093-.4621c-.0248-1.3427-.0039-2.686-.0382-4.0284a1.512 1.512 0 0 0-.5463-1.1402 2.4695 2.4695 0 0 0-1.126-.515 5.3873 5.3873 0 0 0-1.7104-.0559 2.6815 2.6815 0 0 0-1.073.32c-.7078.403-.9852 1.0638-1.0831 1.8305-.0112.0882.022.1008.0993.1002.435-.0034.87-.0017 1.305-.0017.2367 0 .2367 0 .2967-.2246a.848.848 0 0 1 .7478-.6613 3.0786 3.0786 0 0 1 .7849.0198.6892.6892 0 0 1 .6211.7177.4668.4668 0 0 1-.2846.4408 1.4912 1.4912 0 0 1-.4202.1013c-.5916.1002-1.19.1608-1.7752.2933a1.9228 1.9228 0 0 0-1.3854 1.0324 2.2822 2.2822 0 0 0-.1937 1.2816 1.697 1.697 0 0 0 .889 1.3737 2.7038 2.7038 0 0 0 2.7834-.2854c.1244-.1038.2464-.211.3683-.3178.0558-.0478.0756-.04.0857.0343a3.4009 3.4009 0 0 0 .1214.5759.1091.1091 0 0 0 .125.0896c.2726-.0047.5455-.002.818-.002v-.0084c.2727 0 .5456.002.8182-.0017.0483 0 .12.0231.1306-.0623.01-.079.0335-.1665-.0625-.217zm-2.5833-1.0715a1.6879 1.6879 0 0 1-1.0681.2888.7785.7785 0 0 1-.6976-.9842.8195.8195 0 0 1 .5843-.6496 5.6502 5.6502 0 0 1 .8153-.187 2.6787 2.6787 0 0 0 .865-.2672c.0558-.0335.0659-.0034.0659.0424v.435h.0042v.279a1.178 1.178 0 0 1-.569 1.0428Z\"},\"child\":[]}]})(props);\n};\nexport function SiCoreldraw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.651 0C10.265.019 9.4.272 8.584.657c-.816.39-3.696 2.161-3.752 6.536.072 4.145 3.847 11.191 6.397 13.455 0 0-4.141-6.952-4.439-13.013C6.488 1.575 10.651 0 10.651 0Zm2.679 0s4.159 1.575 3.861 7.635c-.299 6.061-4.439 13.013-4.439 13.013 2.547-2.264 6.324-9.31 6.396-13.455-.057-4.375-2.936-6.146-3.752-6.536C14.58.272 13.715.019 13.33 0Zm-1.38.019a1.088 1.088 0 0 0-.555.144C9.864.99 8.909 3.982 9.177 8.66c.185 3.242 1.009 7.291 2.422 11.988h.7c1.413-4.697 2.24-8.742 2.425-11.984.268-4.677-.688-7.674-2.219-8.501a1.088 1.088 0 0 0-.555-.144ZM7.017 1.066S2.543 2.909 3.431 8.225c.884 5.32 5.588 10.995 6.986 12.2.503.457-5.777-6.548-6.386-12.699-.291-2.323.39-4.9 2.986-6.66Zm9.966 0c2.595 1.76 3.276 4.337 2.985 6.66-.608 6.151-6.888 13.156-6.386 12.699 1.398-1.205 6.103-6.88 6.987-12.2.888-5.316-3.586-7.159-3.586-7.159Zm-6.815 20.78L10.647 24h2.599l.488-2.154h-3.566Z\"},\"child\":[]}]})(props);\n};\nexport function SiCoronaengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.69 7.499c-.919-.965-1.577-2.105-1.6-3.116.655-.187 2.017.001 3.35.558 1.354.566 2.668 1.514 3.158 2.831.014.039.029.078.041.116a2.337 2.337 0 0 1-.529 1.14c-.26.279-.586.487-.948.605-1.143-.23-2.464-1.074-3.472-2.134zm5.581 2.244c-.957.334-1.839 1.311-2.473 2.482v.001c-.697 1.284-1.093 2.799-.96 3.957.225.307.523.553.869.713.394.163.826.215 1.247.151.038-.027.07-.053.1-.075 1.103-.872 1.6-2.413 1.72-3.875.119-1.437-.122-2.79-.503-3.354zm-7.939-3.389a2.23 2.23 0 0 0-.283-1.088 2.332 2.332 0 0 0-.92-.853l-.123.002C8.6 4.473 7.292 5.428 6.334 6.541 5.393 7.633 4.791 8.87 4.768 9.55c.969.288 2.257.017 3.459-.559v.002c1.32-.631 2.532-1.625 3.105-2.639zM7.96 14.641c-.193-1.449-.765-2.907-1.553-3.767a2.252 2.252 0 0 0-1.123-.067c-.415.099-.794.31-1.097.61l-.036.118c-.38 1.355.125 2.893.886 4.146.749 1.233 1.741 2.185 2.382 2.418.577-.832.718-2.139.54-3.459l.001.001zm5.297 2c-1.439-.264-3.004-.172-4.065.311a2.227 2.227 0 0 0-.411 1.046c-.034.426.05.852.243 1.233.033.025.067.047.1.068 1.172.779 2.793.774 4.223.438 1.405-.332 2.619-.978 3.039-1.515-.614-.807-1.817-1.344-3.128-1.584l-.001.003zM24 12c0 6.622-5.364 11.992-11.985 12C5.387 24.008.008 18.642 0 12.015-.008 5.387 5.358.008 11.985 0h.001C18.617-.004 23.996 5.369 24 12zm-1.547 0c-.003-5.778-4.69-10.459-10.468-10.456-5.774.007-10.45 4.693-10.443 10.468.007 5.775 4.693 10.45 10.468 10.443C17.78 22.448 22.453 17.77 22.453 12z\"},\"child\":[]}]})(props);\n};\nexport function SiCoronarenderer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.734,11.603c0.078,0.376,0.116,0.76,0.116,1.144c0,1.44-0.562,2.846-1.556,3.889 c-0.989,1.037-2.358,1.668-3.789,1.741c-1.445,0.074-2.885-0.418-3.979-1.365c-1.079-0.933-1.776-2.265-1.921-3.684 c-0.148-1.445,0.273-2.914,1.17-4.057c0.877-1.118,2.168-1.879,3.574-2.095c1.439-0.222,2.934,0.127,4.123,0.97 C18.627,8.965,19.448,10.214,19.734,11.603z M24,6v12c0,3.314-2.686,6-6,6H6c-3.314,0-6-2.686-6-6V6c0-3.314,2.686-6,6-6h12 C21.314,0,24,2.686,24,6z M21.828,9.483c-0.465-1.398-1.274-2.674-2.334-3.697c-1.025-0.988-2.279-1.731-3.639-2.152 c0.159,0.423,0.239,0.874,0.238,1.326c-1.109-1.455-2.809-2.4-4.632-2.564c-1.112-0.1-2.245,0.084-3.265,0.538 c0.829,0.257,1.555,0.807,2.03,1.533C8.383,3.809,6.29,4.017,4.615,5.028C3.931,5.441,3.324,5.98,2.831,6.609 c1.151-0.247,2.375,0.069,3.262,0.843c-0.74,0.709-1.754,1.087-2.778,1.039C3.469,8.742,3.652,8.973,3.859,9.18 c-0.01,0.017-0.021,0.034-0.031,0.051c-0.696,0.314-1.288,0.842-1.68,1.496c-0.438,0.729-0.613,1.6-0.498,2.442 c0.066,0.481,0.226,0.947,0.469,1.367c-0.108-0.934,0.684-1.758,1.622-1.686c0.921,0.071,1.576,0.983,1.351,1.88 c-0.16,0.635-0.732,1.107-1.386,1.142c0.87,1.547,2.362,2.701,4.08,3.146c0.608,0.157,1.238,0.226,1.866,0.206 c-0.471,0.358-1.029,0.608-1.637,0.711c1.493,1.016,3.275,1.567,5.08,1.578c1.455,0.009,2.905-0.33,4.202-0.991 c1.249-0.636,2.345-1.562,3.184-2.684c0.851-1.139,1.43-2.475,1.676-3.876C22.417,12.472,22.305,10.919,21.828,9.483z\"},\"child\":[]}]})(props);\n};\nexport function SiCorsair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.072.412s1.913 3.881 1.563 5.5c0 0 4.987 1.612 5.54 4.272 0 0 2.73-3.594-7.103-9.772zM7.908 4.067s1.678 2.625 1.417 4.35l2.818 1.067a17.56 17.56 0 0 0-.991-3.248zm3.784.691a14.162 14.162 0 0 1 .163 13.794 17.702 17.702 0 0 0 .594-6.585c-.017-.186-.031-.368-.053-.55L6.908 7.759a14.13 14.13 0 0 1 1.133 4.465 14.02 14.02 0 0 1-1.305 7.347 17.75 17.75 0 0 0 .442-5.988.92.92 0 0 1-.022-.243l-5.133-2.726a11.639 11.639 0 0 1 1.075 3.93A11.785 11.785 0 0 1 0 23.587c21.91-9.29 22.795-3.173 22.795-3.173s1.656-2.164 1.085-4.51C23.128 12.79 11.692 4.759 11.692 4.759zM3.04 7.245s1.629 2.09 1.363 3.815l2.567.637a20.357 20.357 0 0 0-.863-2.788z\"},\"child\":[]}]})(props);\n};\nexport function SiCouchbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.111 14.104a1.467 1.458 0 0 1-1.235 1.503c-1.422.244-4.385.398-6.875.398s-5.454-.15-6.877-.398c-.814-.14-1.235-.787-1.235-1.503V9.417a1.57 1.56 0 0 1 1.235-1.505 15.72 15.619 0 0 1 2.156-.14.537.533 0 0 1 .523.543v3.303c1.463 0 2.727-.086 4.201-.086 1.474 0 2.727.086 4.196.086V8.342a.535.532 0 0 1 .494-.569h.027a15.995 15.891 0 0 1 2.156.14 1.57 1.56 0 0 1 1.234 1.504zM12.001 0C5.373 0 0 5.374 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12 0-6.626-5.373-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function SiCounterstrike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.7101 3.2348a.0218.0218 0 0 1-.0216-.0215c.001-.0815.003-.3698.004-.424 0-.1292-.1428-.1831-.2117-.0829-.0113.016-.1457.212-.2287.3323a.0244.0244 0 0 1-.0198.0103h-6.5508a.0473.0473 0 0 1-.0473-.0463l-.0131-.177a.0477.0477 0 0 1 .056-.0477l.335.0319a.059.059 0 0 0 .0624-.0445l.2441-.989a.0475.0475 0 0 0-.0295-.0542l-.2268-.0848a.0427.0427 0 0 1-.0263-.0295c-.0412-.1722-.3766-1.3235-1.9935-1.581-.7867-.125-1.302.2107-1.577.4784a1.594 1.594 0 0 0-.3018.4095l-.0965.2125c-.008.0164-.046.2157-.046.234l.0513.9815a.109.109 0 0 0 .0422.0856l.3546.153-.1958.3244a.055.055 0 0 1-.053.0402s-.417.0108-.6227.0192c-.3856.0155-1.2444.4858-1.8773 1.8385-.6219 1.3282-.724 1.5496-.724 1.5496a.0736.0736 0 0 1-.0684.0398l-.5776.0019c-.0356 0-.0736.0285-.0886.0608l-.8982 2.5428c-.0149.0323-.006.081.0173.1081l.627.3918a.059.059 0 0 1 .0195.059l-.3274.9664a.1916.1916 0 0 1-.0235.0618l-.4343.3824a.1056.1056 0 0 0-.0356.059l-.5978 1.5308a.0632.0632 0 0 1-.0608.0455l-.3355.0018a.1633.1633 0 0 0-.162.1488l-.2007 2.2883a1.7194 1.7194 0 0 1-.0159.1207l-.1583.908a.128.128 0 0 1-.0333.0553l-.5584.4263c-.2559.2443-.5988.6903-.7665 1.0015l-1.86 3.9235c-.045.0833-.0811.227-.0788.3221l.1321.2354c.002.0842-.0319.4559-.0707.5307L.817 23.6545a.0985.0985 0 0 0-.003.0856l.0309.0706.0932.1859 1.8913.0029c.1173.0106.247-.1396.2507-.3005l.1027-1.2965-.0268-.1952 3.6063-4.232c.0942-.1146.222-.3168.2861-.4506l1.7186-3.7892a.1712.1712 0 0 1 .1004-.088l.1086-.035a.1694.1694 0 0 1 .1827.0528c.1505.1807.5042.781.6765 1.0315.1425.2079.8495 1.2304 1.1582 1.5675.0853.0926.3481.198.4658.2696a.083.083 0 0 1 .029.1119l-1.0298 1.8083-.4549 2.1357a.9542.9542 0 0 0-.0356.1526l-.4118 1.4831c.003.1873-.141.2856-.1527.5064l-.15 1.084a.0581.0581 0 0 0 .0582.0614l2.5445.014c.0951-.0003.1902-.0045.2854-.0067a1.1049 1.1049 0 0 0 .0755-.0069c.1242-.0158.5629-.0754.75-.1503.1097-.0388.1809-.0819.2268-.1295.1855-.1935.2002-.278.2034-.3975.001-.0212-.011-.0726-.0283-.1049-.0053-.0117-.0316-.0382-.059-.0477l-1.1815-.3562a.3693.3693 0 0 1-.1889-.1338l-.3172-.469a.0865.0865 0 0 1 .0173-.0973l.618-.609a.2017.2017 0 0 0 .0483-.072l1.9036-4.488c.089-.285.0595-.6056 0-.9445-.044-.2504-.6854-1.3264-.8532-1.6236-.1476-.262-1.0677-1.8707-1.286-2.2517-.0793-.1376-.1894-.1328-.2287-.276l-.0726-1.1173a.0398.0398 0 0 1 .0356-.0505l.3312-.0276a.093.093 0 0 0 .0741-.0487l1.147-2.1544a.0958.0958 0 0 0-.002-.094l-.2349-.2907a.0874.0874 0 0 1-.001-.0875l.3515-.3796a.054.054 0 0 1 .0736-.0206l.9343.5266a.3819.3819 0 0 0 .186.0505c.259-.0019.6858-.1549.908-.2906a.3833.3833 0 0 0 .1386-.148l.4583-1.0703c.006-.0136.0262-.0117.029.0028l.1278.5953a.0635.0635 0 0 0 .0788.0501l1.3494-.3a.0662.0662 0 0 0 .05-.0786l-.318-1.3437a.0716.0716 0 0 1 .009-.0534l.1313-.2036a.281.281 0 0 0 .036-.0814l.1589-.725a.0408.0408 0 0 1 .0397-.0323l3.7327.0047a.0916.0916 0 0 0 .0932-.0931v-.6336a.022.022 0 0 1 .0216-.0216h1.4393a.0465.0465 0 0 0 .0464-.0463v-.2855a.0465.0465 0 0 0-.0464-.0463h-1.4398z\"},\"child\":[]}]})(props);\n};\nexport function SiCountingworkspro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.327.512c-3.806.034-7.447 3.19-7.181 7.75.102 1.547.88 3.382 2.981 5.733a.365.365 0 0 0 .635-.23l.053-2.266a.36.36 0 0 0-.1-.255 5.047 5.047 0 0 1 3.407-8.502c2.27-.104 4.011 1.236 4.753 2.744.34.693.527 1.45.55 2.222a.357.357 0 0 0 .343.344c.482.015.962.064 1.437.147a.359.359 0 0 0 .424-.344 7.237 7.237 0 0 0-2.769-5.788C15.02 1.404 13.564.52 11.327.512zm4.94 8.362a14.8 14.8 0 0 0-2.515.26.364.364 0 0 0-.17.635l1.695 1.435a.36.36 0 0 0 .316.073 5.026 5.026 0 0 1 3.123.281c1.78.787 2.92 2.414 3.042 4.304.208 3.187-2.48 5.539-5.277 5.37a5.032 5.032 0 0 1-1.751-.412.365.365 0 0 0-.443.115c-.289.385-.603.75-.94 1.094a.367.367 0 0 0 .09.573c1.887 1.073 3.936 1.16 6.014.32 3.303-1.304 4.63-4.523 4.545-6.847-.096-2.641-1.48-5.072-4.085-6.402-.921-.47-2.04-.812-3.643-.799zm-12.931 1.2a.364.364 0 0 0-.152.052c-1.41.827-2.216 2.057-2.798 3.777-.285.892-.386 1.51-.386 2.436a7.276 7.276 0 0 0 7.157 7.141c1.129.017 2.104-.235 2.962-.583 1.45-.62 3.142-1.597 4.65-4.912a.363.363 0 0 0-.459-.489l-2.365.867a.357.357 0 0 0-.195.174 5.03 5.03 0 0 1-2.268 2.224C6 22.428 2.473 19.784 2.235 16.74c-.145-1.741.494-3.053 1.37-3.982.293-.308.41-.477.663-.662a.36.36 0 0 0 .098-.471 9.173 9.173 0 0 1-.653-1.326.366.366 0 0 0-.377-.225z\"},\"child\":[]}]})(props);\n};\nexport function SiCoursera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.374 23.977c-4.183-.21-8.006-2.626-9.959-6.347-2.097-3.858-1.871-8.864.732-12.454C4.748 1.338 9.497-.698 14.281.23c4.583.857 8.351 4.494 9.358 8.911 1.122 4.344-.423 9.173-3.925 12.04-2.289 1.953-5.295 2.956-8.34 2.797zm7.705-8.05a588.737 588.737 0 0 0-3.171-1.887c-.903 1.483-2.885 2.248-4.57 1.665-2.024-.639-3.394-2.987-2.488-5.134.801-2.009 2.79-2.707 4.357-2.464a4.19 4.19 0 0 1 2.623 1.669c1.077-.631 2.128-1.218 3.173-1.855-2.03-3.118-6.151-4.294-9.656-2.754-3.13 1.423-4.89 4.68-4.388 7.919.54 3.598 3.73 6.486 7.716 6.404a7.664 7.664 0 0 0 6.404-3.563z\"},\"child\":[]}]})(props);\n};\nexport function SiCoveralls (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12v12h24V0H0zm13.195-6.187l1.167 3.515 2.255.005c1.238.005 2.916.019 3.727.037l1.472.028-2.968 2.152c-1.63 1.181-2.976 2.18-2.99 2.212-.01.033.487 1.627 1.106 3.54.619 1.917 1.12 3.487 1.116 3.492-.005.01-1.35-.947-2.986-2.119-1.636-1.177-3-2.147-3.033-2.161-.028-.01-1.411.947-3.07 2.138-1.655 1.185-3.02 2.151-3.024 2.142-.004-.005.497-1.575 1.116-3.492.619-1.913 1.115-3.507 1.106-3.54-.014-.032-1.36-1.03-2.99-2.212L2.23 9.398l1.472-.028c.811-.018 2.49-.032 3.727-.037l2.254-.005 1.168-3.515a512.54 512.54 0 011.171-3.516c.005 0 .53 1.58 1.172 3.516z\"},\"child\":[]}]})(props);\n};\nexport function SiCoze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.366 12.096a.61.61 0 0 0-.608.608v1.218a.609.609 0 1 0 1.217 0v-1.218a.61.61 0 0 0-.609-.608m.8 3.453a.605.605 0 0 1 0-.86.605.605 0 0 1 .859 0 1.52 1.52 0 0 0 2.149 0 .605.605 0 0 1 .859 0 .605.605 0 0 1 0 .86 2.73 2.73 0 0 1-3.867 0m4.062-2.24a.61.61 0 1 1 .609.609.606.606 0 0 1-.61-.609zM3.023 0A3.024 3.024 0 0 0 0 3.023v17.954A3.024 3.024 0 0 0 3.023 24h17.954A3.024 3.024 0 0 0 24 20.977V3.023A3.024 3.024 0 0 0 20.977 0ZM12.1 3.78h.004a6.287 6.287 0 0 1 6.283 6.286v2.635h1.508c1.73 0 2.12 2.426.476 2.97l-1.984.663v1.137a1.513 1.513 0 0 1-2.19 1.353l-1.101-.549c-.052-.024-.115 0-.131.055-.892 2.785-4.835 2.785-5.727 0a.095.095 0 0 0-.13-.055l-1.102.55a1.513 1.513 0 0 1-2.19-1.354v-1.139l-1.984-.66c-1.647-.541-1.254-2.97.477-2.97h1.507v-2.636A6.285 6.285 0 0 1 12.1 3.78\"},\"child\":[]}]})(props);\n};\nexport function SiCpanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.586 9.346a.538.538 0 00-.34.113.561.561 0 00-.197.299L2.74 14.654h.922a.528.528 0 00.332-.113.561.561 0 00.2-.291l.968-3.604h.744a.677.677 0 01.317.077.703.703 0 01.24.199.732.732 0 01.129.281.65.65 0 01-.01.326.698.698 0 01-.676.526h-.385a.538.538 0 00-.337.113.561.561 0 00-.2.291l-.24.896h1.201a1.939 1.939 0 001.62-.867 1.988 1.988 0 00.265-.586l.027-.1a1.854 1.854 0 00.026-.907 1.973 1.973 0 00-1.031-1.34 1.875 1.875 0 00-.88-.21H4.587zm18.447 0a.401.401 0 00-.25.082.377.377 0 00-.14.217l-1.334 5.01a1.7 1.7 0 00.57-.096 1.806 1.806 0 00.496-.266 1.74 1.74 0 00.385-.408 1.648 1.648 0 00.234-.531l.996-3.696a.23.23 0 00-.045-.217.246.246 0 00-.2-.095h-.712zM8.381 10.643l-.133.503a.564.564 0 00-.006.26.544.544 0 00.1.221.552.552 0 00.185.154.53.53 0 00.252.06h2.157a.101.101 0 01.084.038.098.098 0 01.015.088l-.02.072-.324 1.201-.013.055a.172.172 0 01-.067.105.205.205 0 01-.127.04H9.178a.147.147 0 01-.12-.057.136.136 0 01-.027-.13c.022-.074.071-.112.147-.112h.808a.53.53 0 00.332-.112.564.564 0 00.2-.293l.132-.498H8.84a1.131 1.131 0 00-.38.065 1.152 1.152 0 00-.323.176 1.194 1.194 0 00-.256.271 1.052 1.052 0 00-.156.346l-.028.1a1.095 1.095 0 00-.013.533 1.203 1.203 0 00.212.464 1.141 1.141 0 00.918.453l2.157.006a.899.899 0 00.875-.67l.525-1.95a1.101 1.101 0 00.01-.514 1.114 1.114 0 00-.205-.444 1.149 1.149 0 00-.377-.312 1.048 1.048 0 00-.498-.12H8.38zm-6.397.01a1.924 1.924 0 00-.638.107 1.989 1.989 0 00-.553.295 1.962 1.962 0 00-.7 1.045l-.027.1a1.936 1.936 0 00-.023.905 1.955 1.955 0 00.361.786 1.986 1.986 0 00.668.554 1.875 1.875 0 00.88.21h.464l.266-.983a.23.23 0 00-.043-.215.239.239 0 00-.198-.096h-.423a.702.702 0 01-.319-.074.67.67 0 01-.24-.195.732.732 0 01-.127-.281.706.706 0 01.01-.34.73.73 0 01.256-.377.675.675 0 01.42-.14h.697a.538.538 0 00.338-.114.561.561 0 00.199-.297l.232-.89h-1.5zm11.08 0l-.982 3.689a.23.23 0 00.045.217.238.238 0 00.195.095h.711a.413.413 0 00.248-.08.363.363 0 00.143-.21l.644-2.41h.745a.678.678 0 01.318.075.708.708 0 01.238.2.735.735 0 01.129.28.65.65 0 01-.01.327l-.398 1.506a.243.243 0 00.24.312h.713a.403.403 0 00.244-.08.366.366 0 00.143-.213l.332-1.248a1.897 1.897 0 00.029-.908 1.955 1.955 0 00-.361-.79 1.987 1.987 0 00-.668-.554 1.889 1.889 0 00-.885-.209h-1.813zm5.793 0a1.458 1.458 0 00-.488.081 1.489 1.489 0 00-.752.58 1.493 1.493 0 00-.205.454l-.406 1.505a1.018 1.018 0 00-.016.508 1.139 1.139 0 00.205.446 1.095 1.095 0 00.377.312 1.071 1.071 0 00.498.115h2.502a.528.528 0 00.332-.113.561.561 0 00.2-.291l.21-.791h-2.748a.2.2 0 01-.191-.252l.299-1.127a.34.34 0 01.113-.162.281.281 0 01.18-.064h1.232a.153.153 0 01.147.193l-.026.1c-.022.075-.071.113-.146.113h-.81a.538.538 0 00-.339.111.526.526 0 00-.191.293l-.133.49h2.004a.887.887 0 00.547-.181.864.864 0 00.32-.483l.12-.45a1.11 1.11 0 00.013-.513 1.076 1.076 0 00-.203-.443 1.146 1.146 0 00-.375-.313 1.047 1.047 0 00-.498-.119h-1.772Z\"},\"child\":[]}]})(props);\n};\nexport function SiCplusplus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.394 6c-.167-.29-.398-.543-.652-.69L12.926.22c-.509-.294-1.34-.294-1.848 0L2.26 5.31c-.508.293-.923 1.013-.923 1.6v10.18c0 .294.104.62.271.91.167.29.398.543.652.69l8.816 5.09c.508.293 1.34.293 1.848 0l8.816-5.09c.254-.147.485-.4.652-.69.167-.29.27-.616.27-.91V6.91c.003-.294-.1-.62-.268-.91zM12 19.11c-3.92 0-7.109-3.19-7.109-7.11 0-3.92 3.19-7.11 7.11-7.11a7.133 7.133 0 016.156 3.553l-3.076 1.78a3.567 3.567 0 00-3.08-1.78A3.56 3.56 0 008.444 12 3.56 3.56 0 0012 15.555a3.57 3.57 0 003.08-1.778l3.078 1.78A7.135 7.135 0 0112 19.11zm7.11-6.715h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79zm2.962 0h-.79v.79h-.79v-.79h-.79v-.79h.79v-.79h.79v.79h.79z\"},\"child\":[]}]})(props);\n};\nexport function SiCplusplusbuilder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9221 10.6596a11.8831 11.8831 0 0 0-.4604-2.2096 11.9248 11.9248 0 0 0-1.4694-3.0894 12.0016 12.0016 0 0 0-1.362-1.6917 11.9932 11.9932 0 0 0-3.016-2.2728 11.8487 11.8487 0 0 0-2.343-.9408A11.9156 11.9156 0 0 0 13.784.1352c-.462-.069-.9264-.1143-1.3937-.1243-.2363-.0051-.4732-.015-.709-.0041-.345.0158-.6907.0358-1.0333.077-.3853.0465-.7695.108-1.1504.1822-.5005.0975-.9894.2413-1.4707.4106C6.7778 1.116 5.633 1.745 4.5914 2.5627c-.4064.319-.7914.6619-1.1528 1.0307-.8094.8259-1.4886 1.748-2.0328 2.7688A11.9101 11.9101 0 0 0 .3947 8.9406c-.138.5238-.24 1.0545-.3055 1.5918-.0521.4286-.0804.859-.0876 1.2911a11.9165 11.9165 0 0 0 .0733 1.5263c.1376 1.2294.457 2.4101.9616 3.5401.5362 1.2003 1.2507 2.2836 2.1417 3.2497a11.9821 11.9821 0 0 0 2.9132 2.3115c.7261.4119 1.487.7436 2.2824.996.587.1865 1.1853.325 1.7943.4176.4813.0731.965.1188 1.4517.1334.0129.0004.8185-.0023.8686-.0043a12.0986 12.0986 0 0 0 1.5428-.1622c1.0769-.1821 2.1083-.5084 3.095-.9755 1.1356-.5374 2.1613-1.2374 3.0778-2.0967.9794-.9184 1.783-1.972 2.4107-3.1587.3707-.701.6675-1.4324.892-2.1936.162-.5497.29-1.107.3642-1.6746.0531-.4062.0874-.8155.1126-1.2246.0382-.6173.007-1.234-.0614-1.8483zm-5.83 7.5555c-.0433.2755-.1638.4786-.3244.7057-.1733.2452-.418.4183-.6565.5938-1.0293.758-2.411 1.342-3.6686 1.562-.4691.0821-2.9556.5044-5.3987-.692-1.1166-.5467-2.1688-1.337-2.987-2.2752-1.7593-2.0173-2.5604-4.628-2.2169-7.2537.3343-2.5551 1.7631-4.899 3.8588-6.3864 1.043-.7402 2.1724-1.2259 3.425-1.4724.6468-.1273 1.2975-.1739 1.9552-.1628.6693.0113 1.3357.1154 1.9852.2748.6248.1533 1.2305.3938 1.8061.6802.565.281 1.1685.6343 1.642 1.0556.449.3995.6651.9725.5918 1.5718-.0875.7152-.4475 1.1208-.9671 1.3602-.5055.233-1.1306.1911-1.5974-.1154-.2586-.1698-.4842-.3852-.7469-.5515-.2645-.1674-.5457-.2916-.834-.412-.607-.2537-1.2132-.359-1.8649-.3988-.6248-.0383-1.3603.0714-1.9586.258-1.207.3763-2.2592 1.0995-2.9727 2.1539-.7201 1.064-1.1075 2.3223-1.0308 3.6091.0745 1.2505.5554 2.4937 1.3412 3.4437.789.954 1.9214 1.5926 3.108 1.853 1.2702.279 2.6128.1413 3.7748-.4577.2829-.1458.5538-.2983.807-.492.2379-.182.4583-.363.7502-.4498.5772-.1716 1.2242-.0326 1.6698.3675.4274.3838.5974 1.07.5094 1.6304zm-7.3213-5.0234h-1.797c-.26 0-.4154-.1547-.4157-.4152a457.1574 457.1574 0 0 1 0-1.0488c.0002-.2555.1558-.4112.4135-.4118.3824-.0008.7649-.0002 1.1473-.0002h.7211V9.4452c0-.2565.155-.413.4116-.4136a331.056 331.056 0 0 1 1.0536 0c.2515.0002.4082.1563.4087.4106.001.541.0003 1.082.0003 1.623v.2505h1.8595c.2674 0 .4218.1533.4223.421.0008.3497.0007.6993 0 1.0489-.0004.2483-.1575.4055-.4075.4059-.599.0008-1.198.0002-1.797.0002h-.0773v1.8648c0 .2634-.154.4186-.4182.4193-.3492.0009-.6985.0006-1.0477 0-.2516-.0003-.4079-.1575-.4081-.4113-.0006-.5996-.0002-1.1992-.0002-1.7988v-.074h-.0692zm12.1067-.4061c-.0004.2483-.1576.4055-.4076.4059-.599.0008-1.198.0002-1.797.0002h-.0773v1.8648c0 .2634-.154.4186-.4182.4193-.3492.0009-.6985.0006-1.0477 0-.2515-.0003-.4078-.1575-.408-.4113-.0006-.5996-.0002-1.1992-.0002-1.7988v-.074h-1.8663c-.26 0-.4153-.1547-.4157-.4152a456.645 456.645 0 0 1 0-1.0488c.0002-.2555.1559-.4112.4136-.4118.3824-.0008.7648-.0002 1.1472-.0002h.7212V9.4452c0-.2565.155-.413.4115-.4136.3512-.0008.7024-.0004 1.0536 0 .2516.0002.4082.1563.4087.4106.001.541.0003 1.082.0003 1.623v.2505h1.8596c.2673 0 .4217.1533.4223.421.0007.3497.0007.6993 0 1.0489z\"},\"child\":[]}]})(props);\n};\nexport function SiCraftcms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.474 0H2.526A2.516 2.516 0 0 0 0 2.526v18.948A2.516 2.516 0 0 0 2.526 24h18.948A2.534 2.534 0 0 0 24 21.474V2.526A2.516 2.516 0 0 0 21.474 0m-9.516 14.625c.786 0 1.628-.31 2.442-1.039l1.123 1.291c-1.18.955-2.527 1.488-3.874 1.488-2.667 0-4.35-1.769-3.958-4.267.393-2.498 2.667-4.266 5.334-4.266 1.29 0 2.498.505 3.34 1.431l-1.572 1.291c-.45-.59-1.207-.982-2.05-.982-1.6 0-2.834 1.039-3.087 2.526-.224 1.488.674 2.527 2.302 2.527\"},\"child\":[]}]})(props);\n};\nexport function SiCraftsman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.428 9.572v4.899h23.144V9.572Zm1.543 1.143h.172l.886.014v.572h-.744v1.484h.744v.572H1.971l-.371-.37v-1.901zm1.7 0h1.243l.47.314v.985l-.37.244.601 1.086h-.73l-.528-.973v.973h-.685Zm2.815 0H7.5l.357.314v2.315h-.615v-.873h-.484v.873h-.63v-2.315zm2.07 0h1.329v.613H9.27v.516h.543v.57h-.543v.93h-.714Zm1.944 0h1.686l-.2.629h-.443v2h-.672v-2h-.57zm2.1 0h1.556l-.17.613h-.843l1.029 1.414-.201.615h-1.713l.185-.586h.942l-.942-1.386zm2.1 0h.814l.414.97.4-.97h.815v2.613h-.672v-1.57l-.399.957h-.3l-.4-.944v1.573h-.673zm3.571 0h1.014l.358.314v2.315h-.63v-.873h-.484v.873h-.615v-2.315zm2.057 0h.629l.615 1.414v-1.414h.627v2.629h-.627l-.615-1.416v1.416h-.629zm-13.586.556v.614h.487v-.614zm11.787 0v.614h.485v-.614zm-14.172.014v.572h.358v-.572ZM0 9.143h24v5.714H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiCratedb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9V3h-6v6H0v6h6v6h6v-6h12V9h-6z\"},\"child\":[]}]})(props);\n};\nexport function SiCrayon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.9485 16.5624C3.1842 17.7981 4.8 18.4159 6.416 18.4159c1.6158 0 3.2317-.6179 4.4673-1.8535l5.798-5.798-1.4257-1.4258-5.798 5.7505c-1.6634 1.6634-4.3723 1.6634-6.0832 0l-.095-.095c-1.6635-1.6634-1.6635-4.3723 0-6.0832l.095-.095c1.6633-1.6635 4.3723-1.6635 6.0832 0l.4752.5227 1.4258-1.4258-.4753-.5227c-2.4713-2.4713-6.5109-2.4713-8.9822 0l-.0475.1425c-2.4713 2.4713-2.4713 6.511 0 8.9823zm20.0556-9.1248c-1.2357-1.2357-2.8515-1.8535-4.4674-1.8535-1.6158 0-3.2317.6179-4.4673 1.8535l-5.798 5.798 1.4257 1.4258 5.798-5.7505c1.6634-1.6634 4.3723-1.6634 6.0832 0l.095.095c1.6634 1.6634 1.6634 4.3723 0 6.0832l-.095.095c-1.6633 1.6635-4.3723 1.6635-6.0832 0l-.4752-.4752-1.4258 1.4258.4753.4752c2.4713 2.4713 6.5109 2.4713 8.9822 0l.095-.095c2.4713-2.4713 2.4713-6.511 0-8.9823-.0475 0-.1425-.095-.1425-.095z\"},\"child\":[]}]})(props);\n};\nexport function SiCreality (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.215 10.33-1.772.01c-.785.029-1.42.737-1.443 1.613v.088c.018.903.69 1.629 1.51 1.629h1.705c.01 0 .02-.011.02-.024v-.603a.022.022 0 0 0-.02-.022H1.508c-.501 0-.92-.443-.928-1.001-.007-.569.405-1.034.912-1.034l1.723-.007c.01 0 .02-.01.02-.022v-.603c0-.013-.01-.024-.02-.024zm.412 0c-.011 0-.02.011-.02.024v3.292c0 .013.009.024.02.024h.54c.012 0 .02-.011.02-.024V11c0-.012.009-.021.02-.021h1.606c.168 0 .314.145.32.333.006.198-.137.36-.313.36l-1.533.002c-.018 0-.028.023-.016.037l1.75 1.95c.004.005.009.009.014.009H6.8c.017 0 .026-.025.014-.04L5.64 12.32h.183c.496 0 .898-.454.89-1.01-.006-.546-.416-.98-.905-.98h-2.18Zm4.873 0c-.827 0-1.5.75-1.5 1.67 0 .92.673 1.67 1.5 1.67h1.68c.01 0 .02-.011.02-.024v-.603c0-.012-.01-.022-.02-.022H8.5c-.404 0-.75-.292-.871-.697h2.55c.012 0 .02-.01.02-.023v-.604c0-.012-.008-.021-.02-.021h-2.55c.123-.405.468-.697.872-.697h1.68c.01 0 .02-.012.02-.024v-.601c0-.013-.01-.024-.02-.024zm3.709 0c-.013 0-.026.009-.033.024l-1.7 3.28c-.007.016 0 .036.016.036h.625a.02.02 0 0 0 .018-.012l1.056-2.045a.02.02 0 0 1 .036 0l.71 1.375c.008.015-.002.033-.017.033h-.928c-.007 0-.012.005-.015.012l-.313.602c-.008.015.002.033.018.033h2.242c.015 0 .025-.018.017-.033l-1.697-3.281a.041.041 0 0 0-.035-.024zm2.03.002c-.01 0-.02.01-.02.022v2.94c0 .207.15.376.336.376h2.148c.01 0 .022-.011.022-.024v-.603a.022.022 0 0 0-.022-.022H14.82A.022.022 0 0 1 14.8 13v-2.646c0-.013-.01-.022-.02-.022h-.54zm2.84 0c-.01 0-.02.01-.02.022v3.292c0 .013.01.024.02.024h.542c.01 0 .02-.011.02-.024v-3.292c0-.013-.01-.022-.02-.022h-.54zm.85 0c-.01 0-.02.01-.02.022v.601c0 .012.01.024.02.024h1.169c.01 0 .02.009.02.021v2.646c0 .013.01.022.02.022h.54c.01 0 .02-.01.02-.022V11a.02.02 0 0 1 .02-.021h1.172a.02.02 0 0 1 .015.007l1.018 1.354a.02.02 0 0 1 .004.014v1.292c0 .013.008.024.02.024h.54c.011 0 .02-.011.02-.024v-1.292c0-.006.003-.01.006-.014l1.482-1.97c.011-.016.001-.038-.016-.038h-.705a.02.02 0 0 0-.015.008l-1.026 1.363a.02.02 0 0 1-.03 0l-1.026-1.363a.02.02 0 0 0-.016-.008z\"},\"child\":[]}]})(props);\n};\nexport function SiCreatereactapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.92 10.846c0-1.223-1.44-2.308-3.655-2.97.533-2.25.3-4.04-.76-4.645a1.7 1.7 0 0 0-.85-.213c-.989 0-2.239.69-3.501 1.886-1.262-1.186-2.509-1.873-3.496-1.873a1.7 1.7 0 0 0-.863.216c-1.054.607-1.273 2.386-.747 4.625-2.203.659-3.636 1.735-3.64 2.953-.003 1.218 1.442 2.308 3.656 2.968-.533 2.251-.302 4.04.76 4.645.259.145.552.218.848.213.991 0 2.241-.69 3.503-1.886 1.26 1.186 2.507 1.873 3.496 1.873a1.7 1.7 0 0 0 .863-.216c1.054-.607 1.271-2.386.747-4.616 2.204-.668 3.636-1.744 3.638-2.96m-7.953-5.541c1.454-1.301 2.363-1.442 2.686-1.442a.84.84 0 0 1 .43.103c.508.29.71 1.31.549 2.663a10 10 0 0 1-.178 1.028 17 17 0 0 0-2.233-.367 17.5 17.5 0 0 0-1.463-1.79q.098-.098.21-.195m-4.401 6.548q.208.399.438.8c.153.268.313.54.49.808a17 17 0 0 1-1.391-.259c.124-.451.282-.895.463-1.35m-.492-3.38q.675-.158 1.408-.26c-.177.263-.33.533-.49.815s-.3.533-.437.802a21 21 0 0 1-.48-1.358M10 10.84q.33-.697.726-1.396c.267-.465.552-.918.847-1.35q.776-.06 1.598-.06c.549.002 1.065.022 1.578.063.295.43.577.887.844 1.34.266.453.511.927.731 1.39a20 20 0 0 1-1.571 2.747 20 20 0 0 1-3.176-.004 20 20 0 0 1-.845-1.34 21 21 0 0 1-.725-1.39zm5.834-2.623c.483.068.95.155 1.392.258-.131.438-.288.888-.469 1.34q-.209-.398-.44-.8a38 38 0 0 0-.476-.798zm.49 4.425q.229-.403.437-.805c.177.462.355.917.48 1.36q-.674.157-1.407.258.257-.395.497-.813zm-3.165-6.54q.48.513.94 1.107a23 23 0 0 0-.928-.021c-.314 0-.636 0-.946.021a15 15 0 0 1 .934-1.106M9.22 3.974a.86.86 0 0 1 .438-.099 2.3 2.3 0 0 1 .922.233 7 7 0 0 1 1.775 1.203l.208.19a17.5 17.5 0 0 0-1.449 1.776 18 18 0 0 0-2.246.365 9 9 0 0 1-.177-1.006c-.185-1.34.028-2.363.527-2.655zm-.94 9.002a10 10 0 0 1-.983-.355c-1.26-.533-2.042-1.216-2.042-1.8S6.04 9.554 7.3 9.031a10 10 0 0 1 .966-.345 17 17 0 0 0 .81 2.155 18 18 0 0 0-.794 2.133m4.084 3.39c-1.454 1.302-2.363 1.44-2.688 1.44a.83.83 0 0 1-.43-.102c-.507-.29-.71-1.31-.548-2.663a10 10 0 0 1 .177-1.027q1.105.255 2.234.366.672.945 1.463 1.79zm.811-.8q-.48-.511-.942-1.106.458.021.93.021c.314 0 .636 0 .946-.02q-.461.593-.935 1.105zm3.938 2.13a.86.86 0 0 1-.44.105c-.323 0-1.243-.142-2.692-1.438l-.207-.19a17.5 17.5 0 0 0 1.447-1.775 17 17 0 0 0 2.247-.366q.119.518.178 1.007c.176 1.338-.029 2.361-.535 2.65zm1.918-5.049q-.455.188-.966.343a17.5 17.5 0 0 0-.812-2.155q.469-1.04.798-2.13.5.152.983.354c1.259.533 2.042 1.216 2.04 1.8s-.785 1.257-2.045 1.781zm-5.873-.18c.322 0 .637-.096.905-.274a1.63 1.63 0 0 0 .601-.731 1.63 1.63 0 0 0 .094-.942 1.63 1.63 0 0 0-.445-.835 1.63 1.63 0 0 0-.834-.447 1.63 1.63 0 0 0-.942.092 1.63 1.63 0 0 0-.732.6 1.63 1.63 0 0 0-.276.905 1.6 1.6 0 0 0 .123.624 1.63 1.63 0 0 0 1.506 1.007M2.328 1.011v19.645H24V1.012zm20.825 18.8H3.176V1.859h19.977zm-15.09-6.019c-.533 2.251-.303 4.04.759 4.645.259.145.552.218.849.213.99 0 2.24-.69 3.503-1.886 1.26 1.186 2.506 1.873 3.495 1.873a1.7 1.7 0 0 0 .863-.216c1.055-.607 1.271-2.386.748-4.616 2.203-.66 3.636-1.737 3.637-2.953.002-1.216-1.44-2.308-3.653-2.97.532-2.25.3-4.04-.76-4.645a1.7 1.7 0 0 0-.85-.213c-.99 0-2.24.69-3.502 1.886-1.262-1.186-2.508-1.873-3.496-1.873a1.7 1.7 0 0 0-.862.216C7.739 3.862 7.52 5.64 8.046 7.88c-2.203.659-3.636 1.735-3.64 2.953-.003 1.218 1.444 2.297 3.658 2.961zm4.297 2.573c-1.454 1.301-2.363 1.44-2.688 1.44a.83.83 0 0 1-.43-.103c-.507-.29-.71-1.31-.548-2.663a10 10 0 0 1 .178-1.027 18 18 0 0 0 2.233.366q.672.945 1.463 1.79zm4.402-6.55a24 24 0 0 0-.44-.8c-.155-.269-.32-.533-.484-.798.483.068.95.155 1.392.258-.13.438-.286.888-.467 1.34zm.483 3.373q-.673.157-1.407.258a21 21 0 0 0 .927-1.617c.187.47.348.921.476 1.368zm-.925-2.37a20 20 0 0 1-1.572 2.747 20 20 0 0 1-3.176-.004 20 20 0 0 1-1.576-2.73q.33-.697.726-1.396c.266-.465.552-.918.847-1.35a20.6 20.6 0 0 1 3.176.004c.294.428.577.886.843 1.34.266.452.513.935.733 1.398zm-5.826 2.642a17 17 0 0 1-1.391-.259c.13-.437.289-.888.47-1.34q.208.399.438.8c.153.268.306.531.483.8M10 9.023q-.231.398-.437.802a18 18 0 0 1-.488-1.353q.675-.156 1.408-.259c-.165.263-.323.534-.483.81m3.175 6.542q-.48-.511-.943-1.106.458.021.93.021c.314 0 .636 0 .946-.02a16 16 0 0 1-.933 1.105m3.937 2.13a.86.86 0 0 1-.44.105c-.323 0-1.243-.142-2.691-1.438l-.208-.19a17.5 17.5 0 0 0 1.447-1.775 17 17 0 0 0 2.247-.366q.12.518.178 1.007c.178 1.338-.027 2.361-.533 2.65zm.938-8.994q.5.153.983.355c1.26.533 2.042 1.217 2.04 1.8-.001.585-.783 1.272-2.043 1.796q-.455.188-.966.342a17.5 17.5 0 0 0-.811-2.155q.468-1.046.797-2.145zm-4.084-3.389c1.454-1.301 2.363-1.442 2.687-1.442a.84.84 0 0 1 .43.103c.507.29.71 1.31.548 2.663a10 10 0 0 1-.178 1.028 17 17 0 0 0-2.233-.367 17.5 17.5 0 0 0-1.463-1.79q.101-.107.211-.202zm-.807.792q.48.511.94 1.106a23 23 0 0 0-.928-.021c-.314 0-.636 0-.946.02a15 15 0 0 1 .934-1.105M9.22 3.974a.86.86 0 0 1 .438-.1 2.3 2.3 0 0 1 .922.233 7 7 0 0 1 1.775 1.203l.208.19a17.5 17.5 0 0 0-1.449 1.776 18 18 0 0 0-2.246.365 9 9 0 0 1-.177-1.006c-.185-1.34.028-2.363.527-2.655zM7.299 9.031a10 10 0 0 1 .966-.345 17 17 0 0 0 .81 2.155 18 18 0 0 0-.798 2.13 10 10 0 0 1-.984-.354c-1.26-.533-2.041-1.216-2.041-1.8s.788-1.263 2.047-1.786m5.859.177a1.63 1.63 0 0 0-.906.274 1.63 1.63 0 0 0-.601.73 1.63 1.63 0 0 0-.094.942 1.63 1.63 0 0 0 3.229-.314 1.6 1.6 0 0 0-.12-.627 1.6 1.6 0 0 0-.353-.533 1.6 1.6 0 0 0-.53-.356 1.6 1.6 0 0 0-.625-.125za1.63 1.63 0 0 0-.906.274 1.63 1.63 0 0 0-.601.73 1.63 1.63 0 0 0-.094.942 1.63 1.63 0 0 0 3.229-.314 1.6 1.6 0 0 0-.12-.627 1.6 1.6 0 0 0-.353-.533 1.6 1.6 0 0 0-.53-.356 1.6 1.6 0 0 0-.625-.125za1.63 1.63 0 0 0-.906.274 1.63 1.63 0 0 0-.601.73 1.63 1.63 0 0 0-.094.942 1.63 1.63 0 0 0 3.229-.314 1.6 1.6 0 0 0-.12-.627 1.6 1.6 0 0 0-.353-.533 1.6 1.6 0 0 0-.53-.356 1.6 1.6 0 0 0-.625-.125zm8.761 1.64c0-1.223-1.44-2.307-3.654-2.97.533-2.25.3-4.039-.76-4.644a1.7 1.7 0 0 0-.85-.213c-.989 0-2.239.69-3.501 1.885-1.262-1.186-2.509-1.873-3.496-1.873a1.7 1.7 0 0 0-.863.217c-1.054.607-1.273 2.386-.747 4.625-2.203.658-3.636 1.734-3.64 2.952-.003 1.218 1.442 2.308 3.656 2.969-.533 2.25-.302 4.039.76 4.644.259.145.552.219.848.213.991 0 2.241-.69 3.503-1.885 1.26 1.186 2.507 1.873 3.496 1.873.302.005.6-.07.863-.217 1.054-.607 1.271-2.386.747-4.616 2.204-.671 3.636-1.747 3.638-2.963zm-7.952-5.544c1.454-1.301 2.363-1.442 2.686-1.442a.84.84 0 0 1 .43.103c.508.29.71 1.31.549 2.663a10 10 0 0 1-.178 1.028 17 17 0 0 0-2.233-.367 17.5 17.5 0 0 0-1.463-1.79q.098-.098.21-.195m-4.401 6.548q.208.399.438.8c.153.268.313.54.49.808a17 17 0 0 1-1.391-.259c.124-.451.282-.895.463-1.35m-.492-3.38q.675-.158 1.408-.26c-.177.263-.33.533-.49.815s-.3.533-.437.802a21 21 0 0 1-.48-1.358M10 10.84q.33-.697.726-1.396c.267-.465.552-.918.847-1.35q.776-.06 1.598-.06c.549.002 1.065.022 1.578.063.295.43.577.887.844 1.34.266.453.511.927.731 1.39a20 20 0 0 1-1.571 2.747 20 20 0 0 1-3.176-.004 20 20 0 0 1-.845-1.34 21 21 0 0 1-.725-1.39zm5.834-2.623c.483.068.95.155 1.392.258-.131.438-.288.888-.469 1.34q-.209-.398-.44-.8a38 38 0 0 0-.476-.798zm.49 4.425q.229-.403.437-.805c.177.462.355.917.48 1.36q-.674.157-1.407.258.257-.395.497-.813zm-3.165-6.54q.48.513.94 1.107a23 23 0 0 0-.928-.021c-.314 0-.636 0-.946.021a15 15 0 0 1 .934-1.106M9.22 3.974a.86.86 0 0 1 .438-.099 2.3 2.3 0 0 1 .922.233 7 7 0 0 1 1.775 1.203l.208.19a17.5 17.5 0 0 0-1.449 1.776 18 18 0 0 0-2.246.365 9 9 0 0 1-.177-1.006c-.185-1.34.028-2.363.527-2.655zm-.94 9.002a10 10 0 0 1-.983-.355c-1.26-.533-2.042-1.216-2.042-1.8S6.04 9.554 7.3 9.031a10 10 0 0 1 .966-.345 17 17 0 0 0 .81 2.155 18 18 0 0 0-.794 2.133m4.084 3.39c-1.454 1.302-2.363 1.44-2.688 1.44a.83.83 0 0 1-.43-.102c-.507-.29-.71-1.31-.548-2.663a10 10 0 0 1 .177-1.027q1.105.255 2.234.366.672.945 1.463 1.79zm.811-.8q-.48-.511-.942-1.106.458.021.93.021c.314 0 .636 0 .946-.02q-.461.593-.935 1.105zm3.938 2.13a.86.86 0 0 1-.44.105c-.323 0-1.243-.142-2.692-1.438l-.207-.19a17.5 17.5 0 0 0 1.447-1.775 17 17 0 0 0 2.247-.366q.119.518.178 1.007c.176 1.338-.029 2.361-.535 2.65zm1.918-5.049q-.455.188-.966.343a17.5 17.5 0 0 0-.812-2.155q.469-1.04.798-2.13.5.152.983.354c1.259.533 2.042 1.216 2.04 1.8s-.785 1.257-2.045 1.781zm-5.873-.18c.322 0 .637-.096.905-.274a1.63 1.63 0 0 0 .601-.731 1.63 1.63 0 0 0 .094-.942 1.63 1.63 0 0 0-.445-.835 1.63 1.63 0 0 0-.834-.447 1.63 1.63 0 0 0-.942.092 1.63 1.63 0 0 0-.732.6 1.63 1.63 0 0 0-.276.905 1.6 1.6 0 0 0 .123.624 1.63 1.63 0 0 0 1.506 1.007M.85 22.14V2.49L0 3.341v19.647h21.669l.849-.847z\"},\"child\":[]}]})(props);\n};\nexport function SiCreativecommons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.983 0c-3.292 0-6.19 1.217-8.428 3.485C1.25 5.819 0 8.844 0 12c0 3.189 1.217 6.148 3.522 8.45C5.827 22.75 8.822 24 11.983 24c3.16 0 6.222-1.25 8.593-3.583C22.815 18.214 24 15.287 24 12c0-3.255-1.186-6.214-3.458-8.483C18.238 1.217 15.275 0 11.983 0zm.033 2.17c2.7 0 5.103 1.02 6.98 2.893 1.843 1.841 2.83 4.274 2.83 6.937 0 2.696-.954 5.063-2.798 6.872-1.943 1.906-4.444 2.926-7.012 2.926-2.601 0-5.038-1.019-6.914-2.893-1.877-1.875-2.93-4.34-2.93-6.905 0-2.597 1.053-5.063 2.93-6.97 1.844-1.874 4.214-2.86 6.914-2.86zM8.68 8.278C6.723 8.278 5.165 9.66 5.165 12c0 2.38 1.465 3.722 3.581 3.722 1.358 0 2.516-.744 3.155-1.874l-1.491-.758c-.333.798-.839 1.037-1.478 1.037-1.105 0-1.61-.917-1.61-2.126 0-1.21.426-2.127 1.61-2.127.32 0 .96.173 1.332.97l1.597-.838c-.68-1.236-1.837-1.728-3.181-1.728zm6.932 0c-1.957 0-3.514 1.382-3.514 3.722 0 2.38 1.464 3.722 3.58 3.722 1.359 0 2.516-.744 3.155-1.874l-1.49-.758c-.333.798-.84 1.037-1.478 1.037-1.105 0-1.611-.917-1.611-2.126 0-1.21.426-2.127 1.61-2.127.32 0 .96.173 1.332.97l1.597-.838c-.68-1.236-1.837-1.728-3.181-1.728z\"},\"child\":[]}]})(props);\n};\nexport function SiCreativetechnology (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.48 13.248h-.593l-1.028-2.213-1.004 2.213h-.514l1.543-3.422 1.595 3.422M2.804 11.19s-.18-.103-.283-.155c-.206-.077-.489-.18-.798-.18-.617 0-1.183.283-1.183 1.004 0 .72.54 1.003 1.21 1.003.334 0 .668-.103.848-.257.103-.078.257-.232.257-.232l.283.437-.231.155c-.232.154-.54.36-1.21.36C.85 13.325 0 12.887 0 11.859c0-.927.797-1.467 1.775-1.467.437 0 .772.103 1.003.232.129 0 .309.128.309.128l-.283.438m7.537 2.546h3.138v.438h-3.138v-.438m12.116-2.135h.746v.54h-.746v-.54m-1.107-.051v-1.106H24v.437h-2.11v.669h-.54m.54.566v.694H24v.438h-2.65v-1.132h.54M4.786 11.6h.668c.283 0 .515-.103.515-.36s-.232-.386-.515-.386H4.27v2.367h-.54v-2.778h1.775c.669 0 1.029.36 1.029.797 0 .437-.283.772-.772.798l.746 1.029c.026.077.103.18.103.18h-.695L4.785 11.6m10.186 1.647h-.54V10.88h-1.106v-.437h2.804v.437h-1.106l-.052 2.367m2.238 0h-.54v-2.804h.54v2.804m3.138-2.804-.952 2.11-.951-2.11h-.618l1.312 2.804h.54l1.287-2.83h-.618M8.386 11.55h.746v.54h-.746v-.54m-1.106 0v-1.106h2.65v.437H7.82v.669h-.54m.566.566v.694h2.109v.438H7.28v-1.132h.566\"},\"child\":[]}]})(props);\n};\nexport function SiCredly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.8 13.154a.299.299 0 0 0-.101-.024.407.407 0 0 0-.202.048c-.06.028-.092.08-.127.136-.087.128-.15.268-.226.4-.107.187-.246.351-.38.515-.135.156-.286.291-.424.44-.028.027-.072.043-.107.027-.028-.016-.036-.056-.032-.088.04-.38.075-.763.123-1.138.02-.172.043-.336.063-.512.028-.247.056-.487.087-.735l.234-1.824c.02-.128.032-.372-.135-.52a.446.446 0 0 0-.233-.116.46.46 0 0 0-.254.06c-.226.16-.297.504-.365.76-.142.603-.178 1.241-.471 1.804a1.772 1.772 0 0 1-.202.316.668.668 0 0 1-.186.18.332.332 0 0 1-.246.051.365.365 0 0 1-.238-.207.871.87 0 0 1-.063-.324 4.499 4.499 0 0 1 .24-1.585c.045-.132.089-.252.104-.383.028-.156.028-.38-.114-.516-.131-.128-.337-.18-.504-.128-.194.056-.31.244-.372.392-.198.463-.25.95-.317 1.446-.044.327-.127.64-.293.926a2.717 2.717 0 0 1-.603.72c-.118.087-.222.123-.328.107a.376.376 0 0 1-.278-.208.875.875 0 0 1-.095-.315 3.361 3.36 0 0 1-.036-.616c.004-.223 0-.44.044-.658.075-.39.678-1.937.808-2.345.135-.407.262-.823.353-1.246.08-.38.123-.767.11-1.15-.007-.277-.07-.576-.288-.736a.611.61 0 0 0-.603-.048.968.968 0 0 0-.455.428 2.53 2.53 0 0 0-.226.59 12.01 12.01 0 0 0-.266 1.29c-.071.429-.138.848-.206 1.268-.06.355-.206 1.614-.261 1.88-.06.272-.175.54-.301.787-.131.268-.258.536-.408.791a.694.694 0 0 1-.175.224c-.08.06-.182.088-.27.048-.102-.048-.146-.176-.166-.292-.075-.435-.012-.875.072-1.302.083-.431.44-2.4.519-2.851.099-.532.24-1.05.285-1.59.028-.388.09-.88-.202-1.187-.115-.136-.31-.16-.44-.136-.174.036-.31.176-.388.296-.1.128-.186.28-.258.467-.115.284-.186.615-.261.91l-.032.129c-.083.383-.143.77-.186 1.162a16.95 16.948 0 0 0-.06.632c-.008.1-.016.203-.027.307 0 .08.007.168-.028.244a.304.304 0 0 1-.052.068c-.08.072-.202.06-.31.056-.557-.016-1.045.3-1.35.755-.18.252-.281.542-.39.834-.01.048-.034.1-.054.152-.051.143-.13.327-.222.511a3.037 3.037 0 0 1-.317.46 3.285 3.285 0 0 1-.384.41 1.123 1.123 0 0 1-.515.26c-.174.04-.384-.043-.543-.203a.916.916 0 0 1-.206-.54c-.004-.055-.004-.115.028-.163.05-.068.146-.072.23-.076a1.623 1.623 0 0 0 1.375-1.015c.138-.34.178-.698.122-1.046a1.193 1.193 0 0 0-.19-.48.9.9 0 0 0-.396-.323c-.293-.14-.658-.127-1.01.004-.575.232-.951.74-1.134 1.562l-.02.088c-.114.487-.23 1-.582 1.354-.127.12-.261.163-.368.143-.044-.004-.08-.04-.103-.075-.096-.16.003-.532.15-1a4.1 4.1 0 0 0 .1-.366.925.925 0 0 0-.108-.495.783.783 0 0 0-.372-.324c-.143-.064-.31-.06-.468-.06h-.047c-.044 0-.103 0-.151-.012a.215.215 0 0 1-.147-.127.485.485 0 0 1 .016-.232c.004-.02.012-.048.016-.072a.368.368 0 0 0-.162-.412.509.509 0 0 0-.468-.036.768.768 0 0 0-.364.348.769.769 0 0 0-.103.48c.04.13.07.32.043.475-.055.28-.222.51-.384.74-.04.05-.072.106-.107.16a4.96 4.96 0 0 1-.706.825c-.372.335-.804.575-1.232.67-.745.165-1.506-.06-1.91-.734-.222-.38-.32-.827-.348-1.266a5.425 5.425 0 0 1 .424-2.516c.328-.76.816-1.52 1.715-1.614.353-.04.753.083.912.4.115.23.075.506 0 .75-.072.244-.175.49-.18.75-.003.26.124.54.37.616.238.072.495-.08.634-.29.138-.21.186-.46.245-.704a6.282 6.281 0 0 1 .662-1.634c.139-.236.297-.488.254-.76a.543.543 0 0 0-.373-.415.543.543 0 0 0-.535.144c-.134.148-.206.371-.387.43-.17.06-.35-.055-.507-.134-.6-.32-1.336-.312-1.963-.048-.634.25-1.146.735-1.526 1.294C.462 8.53.098 9.508.022 10.48c-.027.34-.031.695 0 1.038.036.46.1.854.214 1.206.139.423.317.79.547 1.094.266.34.587.6.94.747.372.148.784.22 1.192.208a3.172 3.172 0 0 0 1.177-.283 4.29 4.29 0 0 0 1.026-.68c.309-.26.594-.559.84-.89.162-.224.309-.46.44-.708a4.83 4.83 0 0 0 .178-.383c.044-.104.087-.215.202-.26.056-.043.15-.02.202.013.064.04.115.075.135.135.048.116.02.232-.004.332v.012c-.028.1-.055.203-.091.303-.14.424-.238.811-.16 1.195.045.207.128.387.25.527a.84.84 0 0 0 .504.264c.246.04.51-.028.725-.132.143-.068.278-.156.397-.26.06-.06.122-.12.174-.184.044-.06.087-.147.178-.143a.15.15 0 0 1 .107.064c.028.031.04.071.06.115.23.52.776.84 1.335.84h.07c.27 0 .556-.093.79-.22.27-.14.48-.348.7-.552.02-.016.045-.04.073-.044.035-.008.07.012.099.044a.26.26 0 0 1 .047.1c.135.34.46.6.824.66a1.1 1.1 0 0 0 .99-.356c.056-.06.104-.128.167-.176.064-.044.15-.076.222-.044.107.04.135.164.182.268.107.235.357.371.615.375.289 0 .554-.148.764-.34.195-.183.353-.399.516-.61a.328.328 0 0 1 .106-.096c.04-.024.096-.028.13 0 .033.024.045.06.06.091.163.4.587.652 1.01.648.417-.004.809-.224 1.103-.516.095-.092.194-.2.32-.21.14-.017.207.114.254.22.072.142.115.238.25.338.158.116.36.152.547.1.17-.04.34-.156.47-.316.072-.088.112-.204.19-.284.092-.087.132.028.136.1.016.116.016.236.008.352-.016.236-.052.471-.08.703-.011.068-.02.136-.063.188-.06.068-.166.08-.253.064a2.898 2.898 0 0 0-.321-.028l-.14-.016c-.201-.012-.4-.036-.61-.044h-.185c-.404 0-.733.048-1.03.16-.48.187-.852.57-1.003 1.018a1.305 1.305 0 0 0-.052.64c.04.203.13.403.282.587.265.315.68.515 1.149.543.408.02.852-.064 1.292-.26.848-.367 1.482-1.094 1.696-1.95 0-.02.01-.039.023-.043.298-.104.57-.248.813-.428.245-.187.467-.399.65-.643.09-.12.174-.243.253-.37.07-.125.13-.257.202-.38a.906.906 0 0 0 .13-.316.411.411 0 0 0-.05-.328.257.257 0 0 0-.135-.124m-13.68-1.63c.017-.071.045-.14.06-.206a1.9 1.9 0 0 1 .262-.504c.04-.048.08-.1.135-.136a.246.246 0 0 1 .186-.048c.107.02.183.128.202.236.032.18-.04.396-.114.555a1.097 1.097 0 0 1-.31.415c-.06.044-.114.088-.178.116-.028.008-.063.028-.115.028h-.016c-.055 0-.114-.028-.126-.088a.827.827 0 0 1 .015-.367m4.308-.184c-.004.072-.024.148-.028.223a4.91 4.91 0 0 0 0 .779c.012.152.047.3-.016.444a1.069 1.069 0 0 1-.567.643.555.555 0 0 1-.245.056c-.02 0-.04-.004-.06-.004-.12 0-.214-.092-.265-.18a.871.87 0 0 1-.1-.272 2.129 2.129 0 0 1 .072-1.122c.08-.22.202-.435.38-.594a.874.874 0 0 1 .563-.24.31.31 0 0 1 .206.064c.04.044.06.104.056.164a.05.05 0 0 1 .004.04m6.43 4.653c-.015.044-.06.104-.08.14-.042.08-.102.163-.161.235a2.562 2.562 0 0 1-.317.304c-.238.18-.503.311-.777.387a2.025 2.025 0 0 1-.487.072h-.04a.795.795 0 0 1-.515-.18.433.433 0 0 1-.158-.25.537.537 0 0 1 .047-.305.776.776 0 0 1 .38-.383c.326-.16.682-.176 1.019-.16.139.004.265.012.4.02.107.004.218.012.325.024.056 0 .115.004.17.012.044.004.092-.004.135.008.06.004.068.036.06.076\"},\"child\":[]}]})(props);\n};\nexport function SiCrehana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,0C5.371,0,0,5.371,0,12c0,6.626,5.371,12,12,12s12-5.374,12-12C24,5.371,18.626,0,12,0z M17.94,9.843v7.915h-3.957 v-3.892h-3.895v3.83H6.13v-3.957h3.833V9.843H6.06V5.948h3.957v3.895h3.965V5.948h3.957V9.843z\"},\"child\":[]}]})(props);\n};\nexport function SiCrewunited (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.871 3.9121c-1.1458.046-2.2306.7013-2.7714 1.8027-.4605.9306-.4404 2.0292.0488 2.9454-.8955-.524-1.8989-.7774-3.0273-.7774-.2207 0-.4365.014-.6524.0332-3.3577.3502-5.7885 3.3541-5.4335 6.707.3261 3.1131 2.9584 5.4716 6.0859 5.4668l.7148-.043c.2063-.024.4177-.0574.6192-.1054.0336-.0096.068-.0138.1015-.0234.8059-.1967 1.5686-.5559 2.2305-1.0547l3.5352-2.8496c2.2353 2.523 6.0912 2.7567 8.6191.5215 2.5279-2.2353 2.7587-6.0913.5234-8.6192a6.1236 6.1236 0 0 0-4.5722-2.0527c-.3454 0-.6907.0284-1.0313.086L13.422 4.2323l.0059.0098a3.2322 3.2322 0 0 0-1.5567-.33ZM16.3146 6.75l6.668 3.2617c1.0792 2.811-.3268 5.9627-3.1329 7.0371-.6236.2447-1.2903.3653-1.957.3653-1.5494 0-3.0215-.6565-4.0528-1.8125l1.2852-1.0371c1.0025 1.2567 2.8302 1.4673 4.0918.4648 1.2615-1.0025 1.4674-2.8303.4648-4.0918-1.0025-1.2615-2.8302-1.4674-4.0918-.4648a2.9102 2.9102 0 0 0-.787.9687l-3.2696-1.6113a.6395.6395 0 0 1-.207-.8828c.1727-.283.5327-.3831.83-.2344l.4415.2148.5937.2891a5.4475 5.4475 0 0 1 3.123-2.4668Zm.3457 1.2813a4.6724 4.6724 0 0 0-2.4278 1.209l.6328.3163c.5469-.4652 1.214-.7676 1.9239-.8828ZM6.121 8.5351c3.0076 0 5.4492 2.4357 5.4492 5.4433.0048 2.763-2.0629 5.0899-4.8066 5.416l-.6719.039c-3.0076-.019-5.4285-2.4748-5.414-5.4823.0191-2.7678 2.1099-5.0854 4.8632-5.3828.1919-.0192.3882-.0284.58-.0332Zm4.8398 1.7265 5.2871 2.5137-4.6093 3.8379c.9881-2.077.7229-4.5288-.6778-6.3516z\"},\"child\":[]}]})(props);\n};\nexport function SiCriticalrole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.014 0c-.51.281-9.231 5.256-10.323 5.87a.23.23 0 00-.136.23v11.866l.089.15c.004.005 6.521 3.746 10.24 5.884h.14c.52-.295 9.26-5.28 10.263-5.842a.282.282 0 00.16-.272c-.006-3.915-.006-7.825 0-11.74 0-.145-.034-.253-.174-.309L12.094 0zm.324.863c3.066 1.763 6.123 3.516 9.19 5.279-.352.136-4.825 1.819-4.83 1.819l-.033.066c.038.084.07.173.099.262l.089.042c.117-.047 4.876-1.838 4.96-1.861v10.802c-.004-.005-3.282-5.692-3.624-6.282-.051-.085-.051-.085-.145-.07-.333.065-.207.037-.314.065l3.807 6.601h-8.754l-.089-.075-.042-1.256-.07-.061c-.366.065-.741.07-1.107.014l-.065.06v.517l-.047.051c-.807-.117-.643.01-1.937-1.547-.126-.15-.239-.31-.36-.464l-.01-.01.01-.098c.398-.478.745-.844.703-1.528a1.14 1.14 0 00-.586-.957c-.47-.277-1.05-.225-2.626-.225-.178 0-.22.178-.084.225l.22.028c.235.047.253.127.253.633.005 3.3.01 3.085-.051 3.723-.024.244-.16.173-.31.206l-.094.084.08.141c.099.028 1.505.024 1.58.005.16-.042.122-.22-.023-.23-.352-.028-.432-.019-.455-.225-.042-.347-.033-.3-.047-1.528l.084-.085c.624 0 .68-.033.783.113.338.46.68.914 1.027 1.369.338.445.652.59 1.004.595.97.01.862-.014.862.047v.417l-.08.08H2.553c-.089 0-.098.01-.06-.052l3.164-5.485-.038-.066c-.286-.018-.351-.06-.426.07l-3.005 5.205V6.47c.121.033 1.251.469 1.256.469.108.042.14.042.502-.24l-1.449-.543-.005-.019c3.034-1.73 6.067-3.46 9.1-5.185l.01.01h-.005c-1.34 2.32-2.686 4.65-4.041 6.985.16 0 .295.005.436-.005.084-.005 3.577-6.17 4.004-6.859.398.68 3.797 6.587 3.844 6.667.061.108.103.14.553.183l.014-.014zM11.93 4.05a.743.743 0 00-.675.76c.005.295.155.515.417.651l.075.131c-.019.328-.014.099-.047 1.388l-.084.084c-1.43-.009-1.482.01-1.744-.089-.094-.037-.14-.009-.16.09l-.154.843c-.01.052.07.277.183-.009.164-.417.37-.375 1.884-.399l.061.052a679.99 679.99 0 00-.173 5.687l-.094.127c-.544.173-1.153.801-.933 1.706.277 1.14 1.472 1.097 1.599 1.093 1.378-.066 1.575-1.191 1.51-1.744a1.153 1.153 0 00-.582-.905 3.21 3.21 0 00-.408-.188l-.056-.07-.174-5.725.047-.042c2.124.108 1.6.108 1.834.563l.121.01.038-.957-.122-.09a1.629 1.629 0 01-.258.038v.005c-.539.014-1.613.019-1.617.019l-.057-.052c-.051-1.613-.046-1.383-.046-1.411l.103-.202c.384-.244.436-.797.117-1.134a.687.687 0 00-.605-.23zm.07.394c.47 0 .45.703-.004.698-.45-.004-.455-.698.004-.698zM5.352 6.55c-.201.01-.417.037-.647.089-1.397.319-2.011 1.608-1.885 2.822.31 3.005 4.304 2.4 4.375 1.974 0-.01.075-.39.16-.895v-.047l-.141-.108c-.272.014.112.863-1.163.961-1.74.127-2.55-1.266-2.537-2.386.038-2.724 3.353-2.242 3.503-1.191.018.131-.005.422.187.342l.075-.108c.005-.037.052-.848.061-1.083.005-.131-.042-.173-.169-.187-.698-.09-1.214-.216-1.819-.183zm12.645 1.477l-.056.037c-.066.066-.014-.023-.863 1.95a6.97 6.97 0 01-.192.427.285.285 0 01-.277.16c-.112.004-.103.15.038.15h1.233c.183 0 .107-.15-.033-.174-.202-.042-.633.047-.572-.103.065-.174.136-.347.21-.516l.076-.047c.23-.014.455-.014.684-.004l.094.065c.061.16.127.32.192.478.09.207-.103.235.02.263l.168.038c.136.004-.506-.005 2.377.014.258 0 .192-.15.248-.483h-.004c.018-.108-.099-.263-.178.01-.052.177-.127.177-.75.158l-.15-.117c-.024-.108-.015-1.856-.015-1.931v-.02l.127-.116c.305-.033.169-.16.056-.16-1.06-.004-1.008 0-1.017.01-.117.112-.01.14.004.14.15.024.258-.01.258.202v1.936c-.004.15-.023.207-.197.202-.028 0-.206.033-.3-.094-.243-.338-.97-2.279-1.106-2.433l-.019-.019zm-2.363.028c-.399-.005-.867.08-1.196.408-.46.464-.66 1.603.324 2.123.623.333 1.458.17 1.533.16.31-.042.281-.59.281-.596-.042-.136-.089-.112-.145-.051-.047.051-.047.272-.324.356-.323.099-1.078.08-1.355-.647-.262-.694.043-1.781 1.276-1.416.21.061.337.202.356.427.01.112.127.117.16.014.009-.033.009-.206.028-.455.009-.136-.024-.192-.141-.22-.066-.014-.399-.099-.797-.103zm-4.534.051l-.895.005c-.155.052-.155.14.033.16.136.009.15.056.15.318-.01 2.124-.01 1.744-.024 1.904l-.103.098a.534.534 0 01-.464-.15c-.488-.51-.764-.867-.811-.924.098-.107.197-.21.29-.314.413-.468.038-1.012-.375-1.06-.347-.041-.853-.037-1.406-.032-.094 0-.277.122.051.16.132.013.155.07.155.23 0 .098-.014.674-.01 1.88 0 .332-.163.112-.276.285l.127.085h.914c.178 0 .178-.17-.042-.165-.188.005-.146-.056-.188-.825-.004-.093.31-.084.385.019.501.685.633.975 1.134.975.488-.004.97 0 1.458 0 .183 0 .118-.16 0-.16-.225.006-.234-.06-.239-.102-.014-.122-.033.051-.019-2.007.005-.169.02-.206.188-.216h.01c.168-.14-.029-.164-.043-.164zm1.735.005c-.084 0-.14.089-.019.145.07.033.22-.042.22.197-.009 2.208.052 2.133-.159 2.133-.16 0-.178.16 0 .16.37.005.708.005 1.013.005.122 0 .126-.155.005-.16-.146-.005-.282.024-.282-.169-.037-1.978 0-2.044 0-2.053.014-.131.15-.094.197-.117.108-.057.066-.104.019-.132zm-4.501.267a.493.493 0 01.581.432c.02.112.066.693-.572.628l-.098-.122c-.005-.23 0-.661 0-.872zm9.578.492l.286.741h-.576c.094-.244.187-.483.29-.74zM7.954 12.36c.174.004.361.037.408.051.708.207.868 1.144.586 1.824-.215.52-.66.399-1.2.342-.113-.01-.127-.028-.127-.14v-1.95c-.004-.104.16-.132.333-.127zm10.202.745c-.426.047-.06.024-1.744.028-.178 0-.169.16.028.16l.005.004c.178 0 .295-.23.183 2.406-.01.145-.14.112-.192.121-.113.02-.136.136-.01.16.033.004-.089.01 1.65.014.212 0 .216-.094.216-.113.019-.15.038-.3.061-.454.014-.113-.112-.136-.15-.029-.094.268.01.291-.769.268-.22-.005-.183-.188-.183-.765 0-.398-.117-.323.605-.28.174.009.117.154.174.248l.122-.014.051-.535c.01-.164-.122-.089-.14-.084-.254.089-.591.06-.737.07l-.075-.07v-.755l.075-.07c.633.028.718-.01.737.239.009.13.15.108.159.009.014-.16.033-.319.047-.478zm-3.061.028h-1.083c-.113 0-.132.132-.019.15.136.019.253 0 .267.174.01.15.028 1.495-.019 2.24-.009.15-.145.109-.239.132-.075.019-.07.145.02.16l1.79.009c.056 0 .258.056.244-.581 0-.01-.042-.155-.127-.052-.178.22.15.352-.881.295-.108-.004-.155-.065-.16-.168-.028-.582-.018-1.852-.018-1.946 0-.277.112-.24.234-.258.164-.014.145-.155-.01-.155zm-3.596.46c.014.093-.047 1.753-.052 1.847-.019.394 1.196.59 1.182.122 0-.024-.052-1.735-.052-1.833l.019-.005c.576.445.483 1.467.253 1.828a.844.844 0 01-1.05.333c-.98-.403-.961-1.94-.3-2.292zm1.28 4.402c9.039.005 8.504-.005 8.51.014-.723.417-8.459 4.815-9.256 5.275h-.159c-.825-.479-9.063-5.21-9.185-5.284h8.575c.094 0 .094 0 .094.094a67.963 67.963 0 01-.07 2.25c-.01.174.023.347.094.506.201.483.393.97.59 1.454.047.108.061.084.094.004.652-1.533.605-1.425.633-1.51.037-.116.056-.238.06-.36 0-.277-.055-2.358-.055-2.363z\"},\"child\":[]}]})(props);\n};\nexport function SiCrowdin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.119 17.793a2.619 2.619 0 0 1-1.667-.562c-.546-.436-1.004-1.09-1.018-1.858-.008-.388.414-.388.414-.388l1.018-.008c.332.008.43.47.445.586.128 1.04.717 1.495 1.168 1.702.273.123.204.513-.362.528zm-5.695-5.287L8.5 12.252c-.867-.214-.844-.982-.807-1.247a5.119 5.119 0 0 1 .814-2.125c.545-.804 1.303-1.508 2.29-2.073 1.856-1.074 4.45-1.673 7.31-1.673 2.09 0 4.256.27 4.29.27.197.025.328.213.333.437a.377.377 0 0 1-.355.393l-.92-.01c-2.902 0-4.968.394-6.506 1.248-1.527.837-2.57 2.117-3.287 4.012-.076.163-.335 1.12-1.24 1.022zm2.533 7.823c-1.44 0-2.797-.622-3.825-1.746-.87-.96-1.397-1.931-1.493-3.164-.06-.813.3-1.094.788-1.044l1.988.218c.45.092.75.34.825.854.397 2.736 2.122 3.814 3.15 4.046.18.042.292.157.283.365a.412.412 0 0 1-.322.398c-.458.074-.936.073-1.394.073zm-4.101 2.418a14.216 14.216 0 0 1-2.307-.214c-1.202-.214-2.208-.582-3.072-1.13C1.41 20.095.163 17.786.014 15.048c-.037-.65-.11-1.89 1.427-1.797.638.033 1.653.343 2.368.548.887.247 1.314.933 1.314 1.608 0 3.858 3.494 6.408 5.02 6.408.654 0 .414.701.127.779-.502.136-1.15.153-1.413.153zM3.525 11.419c-.605-.109-1.194-.358-1.768-.5C-.018 10.479.284 8.688.45 8.196c1.617-4.757 6.746-6.35 10.887-6.773 3.898-.4 7.978-.092 11.778.967.31.083 1.269.327.718.891-.35.358-1.7-.016-2.073-.041-2.23-.167-4.434-.192-6.656.15-2.349.357-4.768 1.099-6.71 2.665-.938.758-1.76 1.723-2.313 2.866-.144.3-.256.6-.354.9-.11.327-.47 1.91-2.215 1.6zm9.94.917c.332-1.488 1.81-3.848 6.385-3.686 1.05.033.57.749.052.731-2.586-.09-3.815 1.578-4.457 3.27-.219.546-.68.626-1.271.53-.415-.074-.866-.123-.71-.846Z\"},\"child\":[]}]})(props);\n};\nexport function SiCrowdsource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0002 1.7719c-1.1291 0-2.0448.9157-2.0448 2.0448s.9157 2.0468 2.0448 2.0468 2.0448-.9177 2.0448-2.0468-.9157-2.0448-2.0448-2.0448zM7.3637 5.4534c-1.1291 0-2.0448.9177-2.0448 2.0468S6.2346 9.545 7.3637 9.545s2.0448-.9157 2.0448-2.0448-.9157-2.0468-2.0448-2.0468zm9.2731 0c-1.1291 0-2.0448.9177-2.0448 2.0468s.9157 2.0448 2.0448 2.0448 2.0448-.9157 2.0448-2.0448-.9157-2.0468-2.0448-2.0468zM1.3463 7.6369a1.3178 1.3178 0 0 0-.9296.3594c-.495.465-.5563 1.2308-.1445 1.7695.6607.864 1.9925 2.604 2.6522 3.4647a5.401 5.401 0 0 1 1.1113 3.2831c0 1.5191.7096 2.9662 1.9491 3.8416.767.5425 1.6144.9821 2.5155 1.3002v-3.9329c0-.5925.1911-1.1709.4717-1.6529-.1028-.9491-.5204-1.8117-1.1982-2.4953L2.3424 8.1056c-.2617-.2888-.6256-.4685-.9961-.4687zm21.3098 0a1.3178 1.3178 0 0 0-.916.3906l-4.5447 4.574-.9687.9746c-.6773.682-1.0948 1.5476-1.1987 2.4937.2654.4549.4544.9933.4722 1.5491v4.0389a10.2809 10.2809 0 0 0 2.5155-1.3027c1.2382-.8755 1.9491-2.3226 1.9491-3.8416a5.4125 5.4125 0 0 1 1.1113-3.285c.5943-.778 2.0414-2.6661 2.6522-3.4628.4118-.5386.3491-1.3045-.1445-1.7695a1.3143 1.3143 0 0 0-.9277-.3593zm-10.6559 1.498c-1.1291 0-2.0448.9177-2.0448 2.0468s.9157 2.0448 2.0448 2.0448 2.0448-.9157 2.0448-2.0448c.0001-1.1291-.9157-2.0468-2.0448-2.0468zm.002 5.7283c-1.6582 0-3.0018 1.2802-3.0018 2.8593v4.0916c.9518.2673 1.9567.414 2.9999.414s2.0481-.1454 2.9999-.414v-4.1795c-.0492-1.5382-1.3712-2.7714-2.998-2.7714z\"},\"child\":[]}]})(props);\n};\nexport function SiCrunchbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.6 0H2.4A2.41 2.41 0 0 0 0 2.4v19.2A2.41 2.41 0 0 0 2.4 24h19.2a2.41 2.41 0 0 0 2.4-2.4V2.4A2.41 2.41 0 0 0 21.6 0zM7.045 14.465A2.11 2.11 0 0 0 9.84 13.42h1.66a3.69 3.69 0 1 1 0-1.75H9.84a2.11 2.11 0 1 0-2.795 2.795zm11.345.845a3.55 3.55 0 0 1-1.06.63 3.68 3.68 0 0 1-3.39-.38v.38h-1.51V5.37h1.5v4.11a3.74 3.74 0 0 1 1.8-.63H16a3.67 3.67 0 0 1 2.39 6.46zm-.223-2.766a2.104 2.104 0 1 1-4.207 0 2.104 2.104 0 0 1 4.207 0z\"},\"child\":[]}]})(props);\n};\nexport function SiCrunchyroll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.933 13.467a10.55 10.55 0 1 1 21.067-.8V12c0-6.627-5.373-12-12-12S0 5.373 0 12s5.373 12 12 12h.8a10.617 10.617 0 0 1-9.867-10.533zM19.2 14a3.85 3.85 0 0 1-1.333-7.467A7.89 7.89 0 0 0 14 5.6a8.4 8.4 0 1 0 8.4 8.4 6.492 6.492 0 0 0-.133-1.6A3.415 3.415 0 0 1 19.2 14z\"},\"child\":[]}]})(props);\n};\nexport function SiCryengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.714 14.8735c.296 0 .58.102.807.288l.014.012-.149.238c-.184-.168-.421-.26-.671-.26-.549 0-.995.446-.995.995 0 .549.446.995.995.995.497 0 .91-.366.983-.842l.002-.014h-.852l.173-.277h.966v.139c0 .702-.571 1.273-1.272 1.273-.702 0-1.272-.571-1.272-1.273-.002-.703.569-1.274 1.271-1.274zm-13.442 0c.347 0 .68.144.918.392l.012.013-.157.242c-.19-.235-.47-.37-.774-.37-.549 0-.995.446-.995.995 0 .549.446.995.995.995.287 0 .559-.123.748-.339l.01-.012.211.18c-.24.285-.594.448-.968.448-.701 0-1.272-.57-1.272-1.272 0-.701.571-1.272 1.272-1.272zm2.44.015c.639 0 .894.3.894.733 0 .363-.184.619-.621.706l-.014.003.702 1.075h-.336l-.663-1.058h-.478v1.058h-.273v-2.517zm5.88 2.273v.244H7.87v-.244zm-4.018-2.273l.691 1.149c.024.042.038.087.045.115.01-.029.019-.067.043-.109l.006-.01.688-1.145h.297l-1.564 2.518h-.271l.647-1.05-.882-1.468zm17.522 2.273v.244h-1.722v-.244zm-4.561-2.273l1.512 2.085c-.013-.059-.02-.081-.021-.127v-1.958h.272v2.518h-.258l-1.515-2.092c.01.033.023.078.024.142v1.95h-.272v-2.518zm-1.361 0v2.518h-.272v-2.518zm-6.395 0l1.512 2.085c-.013-.059-.02-.081-.021-.127v-1.958h.272v2.518h-.258l-1.515-2.092c.01.033.023.078.024.142v1.95h-.272v-2.518zm12.317 1.065v.248h-1.722v-.248zm-13.504 0v.248H7.87v-.248zm-5.876-.821h-.52v.967h.517c.384 0 .615-.112.615-.478-.001-.367-.232-.489-.612-.489zm19.991-.567c.162 0 .293.13.293.292 0 .162-.131.292-.293.292-.162 0-.293-.13-.293-.292.001-.162.132-.292.293-.292zm-.611.323v.244h-1.722v-.244zm-13.504 0v.244h-1.47l.151-.244zm14.115-.274c-.134 0-.242.108-.242.242s.108.242.242.242.243-.108.243-.242c0-.133-.109-.242-.243-.242zm.002.091c.075 0 .108.038.108.091 0 .04-.018.07-.059.084l-.006.002.08.123h-.058l-.067-.104c-.002-.002-.003-.007-.004-.011v-.003h-.058v.118h-.048v-.301h.112zm.001.046h-.065v.091h.064c.041 0 .06-.011.06-.045 0-.033-.019-.046-.059-.046zm-12.801-8.153l.088-.007c-2.36.549-3.761 2.332-3.761 2.564v.001c0 .001.001-.009.002.036v.006h.001c.048.253.745 1.475 3.441 2.201-3.09-.245-4.494-1.748-4.563-2.188l-.001-.014h-.001c0-.046-.001-.037-.001-.034l.001-.013c.037-.452 1.928-2.312 4.794-2.552l.088-.007zm.981-.019c3.209.167 5.076 2.075 5.093 2.609v-.001c0-.002-.001 0-.001.033v.006h-.002c-.025.268-1.045 1.358-2.571 1.86-1.865.613-4.866.39-4.866-1.948 0-1.097.894-1.99 1.992-1.99 1.108 0 1.997.897 1.997 1.995 0 .535-.231 1.053-.581 1.419.327-.006 1.517-.093 2.638-1.017.124-.121.203-.222.236-.284.009-.016.022-.045.02-.072.001-.24-1.288-2.084-3.955-2.61zm-.357 1.427c-.625 0-1.131.506-1.131 1.131s.506 1.131 1.131 1.131c.624 0 1.131-.506 1.131-1.131 0-.624-.506-1.131-1.131-1.131zm5.449 1.182z\"},\"child\":[]}]})(props);\n};\nexport function SiCryptpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.355 0 .008.717.153 12.23c.045 3.668 1.528 6.09 3.425 7.692 1.897 1.602 4.168 2.444 5.844 3.215l.317.146.308-.164c1.492-.788 3.779-1.625 5.72-3.209 1.943-1.584 3.515-3.997 3.515-7.69V5.97L15.22 0Zm9.729 1.416h1.604v6.016h6.542v3.879H15.4c-.055 1.091-.59 1.926-1.256 2.484l.938 4.97h-2.994v3.655l-.018.008c-1.691-.764-3.651-1.55-5.215-2.87-1.653-1.396-2.884-3.32-2.925-6.628l-.02-1.62h4.674c-.003-.054-.006-.108-.006-.164a3.424 3.424 0 0 1 3.41-3.41l.096.002zm3.02.408 4.513 4.194h-4.513zm-3.112 6.91a2.412 2.412 0 0 0-1.043 4.586l-.844 4.448h3.772l-.842-4.448a2.412 2.412 0 0 0-1.043-4.586z\"},\"child\":[]}]})(props);\n};\nexport function SiCrystal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.964 15.266l-8.687 8.669c-.034.035-.086.052-.121.035L3.29 20.79c-.052-.017-.087-.052-.087-.086L.007 8.856c-.018-.053 0-.087.035-.122L8.728.065c.035-.035.087-.052.121-.035l11.866 3.18c.052.017.087.052.087.086l3.18 11.848c.034.053.016.087-.018.122zm-11.64-9.433L.667 8.943c-.017 0-.035.034-.017.052l8.53 8.512c.017.017.052.017.052-.017l3.127-11.64c.017 0-.018-.035-.035-.017Z\"},\"child\":[]}]})(props);\n};\nexport function SiCsdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.693 13.638c-.497.568-1.363.63-1.712.63-.648 0-1.144-.164-1.474-.488-.313-.307-.478-.76-.489-1.346-.025-1.358.744-2.762 2.074-2.762.635 0 1.124.455 1.311.644a.337.337 0 0 0 .282.099.38.38 0 0 0 .241-.159c.068-.087.135-.237.138-.401s-.057-.344-.243-.49a2.642 2.642 0 0 0-1.668-.591c-.819 0-1.627.376-2.218 1.033-.621.691-.953 1.63-.935 2.646.015.815.282 1.5.773 1.982.528.518 1.3.791 2.235.791 1.097 0 1.776-.325 2.154-.597a.584.584 0 0 0 .24-.456.702.702 0 0 0-.208-.497c-.23-.248-.448-.101-.503-.037ZM9.663 11.488a7.471 7.471 0 0 0-.698-.248c-.157-.048-.309-.091-.45-.131-.922-.26-1.027-.5-1.017-.68.022-.363.515-.853 1.352-.792.607.045 1.015.509 1.205.781.149.214.371.135.434.095a.602.602 0 0 0 .309-.514.626.626 0 0 0-.209-.488 2.654 2.654 0 0 0-3.347-.273c-.456.323-.744.772-.77 1.202-.064 1.061 1.015 1.366 1.803 1.588.214.061.429.127.667.202 1.14.357 1.173.717 1.092 1.267-.082.556-.696.834-1.685.761-1.029-.076-1.464-.61-1.612-.901-.05-.098-.205-.248-.413-.156-.514.229-.473.731-.26.993.339.416 1.15 1.035 2.667 1.035 1.734 0 2.255-.875 2.378-1.64.092-.572-.022-1.028-.348-1.396-.236-.267-.592-.495-1.101-.706ZM16.44 9.323c-.598-.431-1.393-.61-2.36-.532-.712.058-1.274.243-1.335.263l-.006.002a.437.437 0 0 0-.297.379l-.47 5.201a.337.337 0 0 0 .247.35l.072.02.066.018.086.021a7.914 7.914 0 0 0 1.64.183c.972 0 1.765-.23 2.36-.684.764-.583 1.141-1.5 1.118-2.725-.021-1.135-.398-1.974-1.121-2.495Zm-.662 4.461c-.836.639-2.09.562-2.677.481a.128.128 0 0 1-.109-.137l.397-4.248a.113.113 0 0 1 .086-.1c.999-.241 1.777-.168 2.312.218.189.137.348.331.471.568.176.339.277.765.286 1.234.017.916-.24 1.583-.765 1.984ZM23.967 10.41a1.92 1.92 0 0 0-.432-.919c-.399-.465-1.029-.689-1.848-.689-.734 0-1.372.228-1.947.799.007-.086.019-.159.018-.223s-.017-.116-.066-.163c-.048-.045-.077-.067-.127-.077-.05-.01-.122-.008-.256-.006a.587.587 0 0 0-.589.54s-.325 3.874-.428 5.165a.308.308 0 0 0 .073.228.36.36 0 0 0 .26.131h.387a.224.224 0 0 0 .226-.205l.273-2.929.014-.147a1.902 1.902 0 0 1 .082-.412c.014-.045.03-.092.047-.14.245-.694.803-1.72 1.971-1.694.84.018 1.449.455 1.385 1.114-.101 1.034-.266 3.1-.358 4.14-.019.209.182.273.252.273h.304a.442.442 0 0 0 .444-.404s.185-2.127.294-3.352l.048-.532a1.959 1.959 0 0 0-.026-.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiCss3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.5 0h21l-1.91 21.563L11.977 24l-8.565-2.438L1.5 0zm17.09 4.413L5.41 4.41l.213 2.622 10.125.002-.255 2.716h-6.64l.24 2.573h6.182l-.366 3.523-2.91.804-2.956-.81-.188-2.11h-2.61l.29 3.855L12 19.288l5.373-1.53L18.59 4.414z\"},\"child\":[]}]})(props);\n};\nexport function SiCssdesignawards (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.46.93-7.46 7.38 3.73 3.73 3.74 3.65 3.73 3.65 3.74-3.65-7.47-7.38 7.47-7.4zm5.33 3.73-3.67 3.65 7.39 7.38-7.46 7.4h7.46l3.76-3.66 3.73-3.73-3.73-3.65-3.74-3.73z\"},\"child\":[]}]})(props);\n};\nexport function SiCssmodules (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.705 2.147v19.706H0V2.147h19.705ZM.141 21.712h19.423V2.288H.141v19.424Zm2.561-10.444c.428 0 .76.113.996.338.236.225.367.482.393.768h-.446a.926.926 0 0 0-.303-.517c-.15-.128-.362-.191-.635-.191-.333 0-.602.117-.808.352-.204.233-.306.59-.306 1.074 0 .396.092.717.276.964.186.245.462.368.828.368.338 0 .595-.13.771-.389.094-.136.163-.316.21-.538h.446c-.04.356-.172.654-.396.895-.268.29-.63.434-1.086.434-.392 0-.722-.118-.989-.356-.35-.315-.527-.8-.527-1.456 0-.499.132-.907.396-1.226.285-.347.679-.52 1.18-.52Zm2.28 2.38c.01.192.056.348.135.467.152.224.42.336.803.336.172 0 .328-.024.47-.073.272-.095.409-.266.409-.511 0-.184-.058-.315-.173-.393-.116-.077-.299-.144-.547-.2l-.458-.104c-.299-.067-.51-.142-.635-.223-.214-.141-.322-.352-.322-.633 0-.303.105-.553.315-.747.21-.195.508-.292.893-.292.354 0 .655.085.902.257.248.17.372.443.372.82h-.43a.847.847 0 0 0-.147-.417c-.14-.177-.377-.265-.71-.265-.27 0-.465.057-.583.17a.533.533 0 0 0-.177.396c0 .166.07.287.207.364.09.049.295.11.614.184l.474.108c.229.052.405.123.53.214.214.158.321.387.321.687 0 .375-.136.642-.41.803a1.822 1.822 0 0 1-.947.242c-.42 0-.75-.108-.987-.322-.237-.213-.354-.502-.35-.867h.43Zm3.137 0c.011.192.056.348.136.467.152.224.42.336.803.336.171 0 .328-.024.469-.073.273-.095.41-.266.41-.511 0-.184-.058-.315-.173-.393-.117-.077-.3-.144-.548-.2l-.457-.104c-.3-.067-.511-.142-.635-.223-.215-.141-.322-.352-.322-.633 0-.303.105-.553.315-.747.21-.195.508-.292.892-.292.355 0 .655.085.902.257.249.17.373.443.373.82h-.43a.847.847 0 0 0-.148-.417c-.14-.177-.376-.265-.71-.265-.27 0-.464.057-.582.17a.533.533 0 0 0-.177.396c0 .166.069.287.207.364.09.049.295.11.614.184l.474.108c.228.052.404.123.529.214.214.158.322.387.322.687 0 .375-.137.642-.41.803a1.822 1.822 0 0 1-.947.242c-.42 0-.75-.108-.987-.322-.238-.213-.355-.502-.35-.867h.43Zm-6.197 3.6.97 2.857.965-2.857h.648v3.38h-.434v-1.995c0-.07.001-.183.004-.343.003-.16.005-.33.005-.513l-.964 2.85h-.453l-.97-2.85v.104c0 .083 0 .21.004.38.004.168.007.292.007.372v1.994h-.437v-3.379h.655Zm4.743-.091c.597 0 1.038.191 1.325.575.224.299.336.681.336 1.147 0 .505-.128.924-.384 1.259-.3.392-.73.589-1.286.589-.52 0-.929-.172-1.226-.516-.265-.33-.398-.75-.398-1.256 0-.457.113-.848.34-1.173.292-.417.723-.625 1.293-.625Zm.046 3.16c.403 0 .695-.144.874-.432.181-.29.272-.623.272-.999 0-.397-.105-.717-.313-.959-.207-.242-.49-.363-.851-.363-.35 0-.635.12-.856.36-.22.24-.331.594-.331 1.061 0 .375.094.69.283.948.19.256.497.384.922.384Zm3.455-.08c.155 0 .283-.017.382-.049a.84.84 0 0 0 .437-.345c.09-.136.156-.311.196-.524a2 2 0 0 0 .034-.355c0-.418-.083-.743-.25-.975-.166-.231-.434-.347-.803-.347H9.35v2.595h.816ZM8.89 17.247h1.368c.465 0 .825.165 1.081.495.229.297.343.679.343 1.143 0 .36-.067.683-.202.973-.238.512-.647.769-1.226.769H8.89v-3.38Zm3.88 0v2.089c0 .245.046.45.138.612.136.245.367.368.69.368.388 0 .652-.133.791-.398.076-.144.113-.338.113-.582v-2.089h.465v1.898c0 .415-.056.735-.168.96-.206.407-.594.61-1.164.61s-.958-.203-1.162-.61c-.112-.225-.168-.545-.168-.96v-1.898h.465Zm2.899 0Zm.458 0v2.977h1.711v.402h-2.17v-3.379h.459Zm2.208 0h2.463v.414h-2.017v1.026h1.865v.391h-1.865v1.146h2.052v.402h-2.498v-3.379Zm3.402 2.29c.01.19.056.347.135.466.152.224.42.336.803.336.172 0 .328-.025.47-.074.272-.095.409-.265.409-.51 0-.184-.058-.315-.173-.394-.116-.076-.299-.143-.547-.2l-.458-.103c-.299-.068-.51-.142-.635-.223-.215-.141-.322-.352-.322-.633 0-.304.105-.553.315-.748.21-.194.508-.292.893-.292.354 0 .655.086.901.258.249.17.373.443.373.819h-.43a.847.847 0 0 0-.147-.416c-.14-.177-.377-.265-.711-.265-.27 0-.464.057-.582.17a.533.533 0 0 0-.177.396c0 .165.069.287.207.363.09.05.295.11.614.184l.474.108c.228.053.405.124.529.214.215.158.322.388.322.688 0 .374-.136.642-.41.803a1.822 1.822 0 0 1-.947.241c-.42 0-.75-.107-.987-.322-.238-.213-.354-.502-.35-.867h.43Z\"},\"child\":[]}]})(props);\n};\nexport function SiCsswizardry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 16.5V1.127C0 .502.506 0 1.127 0h21.748C23.498 0 24 .505 24 1.126V15.95c-.676-.413-1.467-.62-2.372-.62-1.258 0-2.212.296-2.862.886-.65.591-.974 1.333-.974 2.226 0 .979.336 1.698 1.008 2.158.397.276 1.114.53 2.151.765l1.056.237c.618.135 1.07.29 1.36.466.288.18.432.436.432.765 0 .564-.29.95-.872 1.157l-.024.008H20.68a1.528 1.528 0 0 1-.688-.462c-.185-.225-.31-.565-.372-1.021h-1.99c0 .56.109 1.053.325 1.483h-1.681c.196-.396.294-.837.294-1.32 0-.889-.297-1.568-.892-2.037-.384-.302-.952-.543-1.705-.724l-1.719-.412c-.663-.158-1.096-.296-1.299-.413a.858.858 0 0 1-.473-.799c0-.387.16-.69.48-.906.32-.217.75-.325 1.286-.325.482 0 .886.084 1.21.25.488.253.75.68.785 1.28h2.003c-.036-1.06-.425-1.869-1.167-2.426-.742-.557-1.639-.836-2.69-.836-1.258 0-2.212.296-2.861.886-.65.591-.975 1.333-.975 2.226 0 .979.336 1.698 1.008 2.158.397.276 1.114.53 2.152.765l1.055.237c.618.135 1.071.29 1.36.466.288.18.433.436.433.765 0 .564-.291.95-.873 1.157l-.025.008h-2.223a1.528 1.528 0 0 1-.688-.462c-.185-.225-.31-.565-.372-1.021h-1.99c0 .56.108 1.053.324 1.483H6.611a4.75 4.75 0 0 0 .667-1.801H5.215c-.14.514-.316.9-.528 1.157-.261.326-.603.54-1.026.644H2.42c-.45-.115-.839-.37-1.165-.762C.792 22.68.56 21.842.56 20.724c0-1.119.218-1.984.656-2.595.437-.611 1.035-.917 1.793-.917.744 0 1.305.217 1.684.65.212.243.386.604.52 1.082H7.3c-.032-.622-.262-1.242-.69-1.86-.776-1.1-2.003-1.65-3.68-1.65-1.168 0-2.145.355-2.929 1.067zm24 3.654v-1.562h-.518c-.036-.6-.298-1.026-.785-1.279-.325-.166-.728-.25-1.21-.25-.537 0-.966.108-1.286.325-.32.216-.48.518-.48.906 0 .357.157.623.473.799.203.117.636.255 1.299.413l1.718.412c.29.07.554.149.789.236z\"},\"child\":[]}]})(props);\n};\nexport function SiCts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.489 15.344c.05 0 .09.04.09.09v3.776c0 .05-.04.09-.09.09H16.44a.09.09 0 0 1-.075-.04.09.09 0 0 1-.007-.086l1.603-3.776a.09.09 0 0 1 .083-.055h1.444zm.97-7.892c1.083 0 2.183.358 3.272 1.065a.09.09 0 0 1 .03.12l-.86 1.537a.09.09 0 0 1-.13.033c-.803-.522-1.615-.786-2.412-.786-.6 0-1.312.13-1.312.746 0 .188.074.454.427.647.27.147.704.314 1.326.51.61.19 1.047.338 1.302.439.255.1.564.26.918.472.66.402.98 1.053.98 1.994 0 .944-.337 1.68-1.03 2.25-.604.494-1.36.776-2.253.838a.09.09 0 0 1-.097-.09v-1.762a.09.09 0 0 1 .078-.09c.22-.03.404-.097.55-.195a.694.694 0 0 0 .333-.6c0-.248-.15-.477-.45-.68-.286-.195-.703-.38-1.24-.548a14.265 14.265 0 0 1-1.22-.43 6.806 6.806 0 0 1-.956-.519c-.72-.448-1.07-1.094-1.07-1.975 0-.884.346-1.585 1.058-2.143.707-.553 1.633-.833 2.755-.833zm-15.786 0a.09.09 0 0 1 .096.09v2.106a.09.09 0 0 1-.076.09 2.662 2.662 0 0 0-1.38.668c-.52.471-.785 1.134-.785 1.971 0 .837.264 1.498.786 1.963.5.458 1.155.708 1.832.7.87 0 1.666-.416 2.368-1.238a.09.09 0 0 1 .068-.032.09.09 0 0 1 .068.03l1.393 1.566a.09.09 0 0 1-.004.124c-1.204 1.212-2.52 1.826-3.91 1.826-1.43 0-2.658-.459-3.644-1.362C.5 15.05 0 13.854 0 12.395S.506 9.733 1.503 8.82a5.097 5.097 0 0 1 3.17-1.367ZM16.831 4.7c.05 0 .09.04.09.09v2.13c0 .05-.04.09-.09.09h-3.417a.06.06 0 0 0-.06.06v8.545c0 .05-.04.09-.09.09h-2.51a.09.09 0 0 1-.09-.09V7.072a.06.06 0 0 0-.06-.06H7.186a.09.09 0 0 1-.09-.09V4.79a.09.09 0 0 1 .09-.09z\"},\"child\":[]}]})(props);\n};\nexport function SiCucumber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.16 0C7.523-.03 3.223 3.007 1.886 7.715.241 13.51 3.746 19.51 9.601 20.925V24l.626-.094c6.715-1.008 11.876-6.254 12.271-12.472.258-4.041-1.795-8.064-5.108-10.01a9.62 9.62 0 0 0-1.999-.895A10.606 10.606 0 0 0 12.16 0zm-.084 1.087h.013c1.011 0 2.015.161 2.976.477a8.511 8.511 0 0 1 1.769.792c2.97 1.744 4.809 5.363 4.576 9.008-.35 5.52-4.816 10.208-10.72 11.36V20.04l-.44-.085a9.518 9.518 0 0 1 1.826-18.868zm2.042 4.306a.958.958 0 0 0-.843.333 3.83 3.83 0 0 0-.366.632c-.321.743-.436 1.803.043 2.385l-.001.003a3.08 3.08 0 0 0 1.918-1.641 1.68 1.68 0 0 0 .165-.698.996.996 0 0 0-.916-1.014zm-4.061.092a1.014 1.014 0 0 0-.926.982c.01.241.07.478.18.694a3.282 3.282 0 0 0 2.062 1.6c.413-.593.216-1.65-.118-2.386a2.17 2.17 0 0 0-.377-.574.934.934 0 0 0-.821-.316zM7.628 8c-.858.035-1.2 1.126-.516 1.645.198.146.41.273.632.38a3 3 0 0 0 2.53-.07A3.17 3.17 0 0 0 8.54 8.167 1.993 1.993 0 0 0 7.628 8zm7.762 3.216a3.32 3.32 0 0 0-1.228.296 3.087 3.087 0 0 0 1.718 1.755c.236.105.49.161.747.166a.933.933 0 0 0 .681-1.663c-.659-.46-1.105-.575-1.918-.554zm-5.85.03c-.297-.012-.635.01-.983.026-.559 0-1.228.278-1.494.565-.695.61-.188 1.751.73 1.644a1.71 1.71 0 0 0 .747-.167c.744-.322 1.628-1.202 1.734-1.89-.182-.12-.438-.165-.735-.178zm2.086 1.214c-.863.32-1.56.975-1.93 1.817a1.601 1.601 0 0 0-.167.681c-.02.908 1.091 1.361 1.711.698.14-.199.262-.41.362-.632.322-.69.449-1.928.024-2.564zm1.497.173a2.792 2.792 0 0 0-.116 2.442c.089.211.21.408.362.58.577.627 1.81.186 1.763-.63a1.62 1.62 0 0 0-.167-.697 3.043 3.043 0 0 0-1.842-1.695z\"},\"child\":[]}]})(props);\n};\nexport function SiCultura (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.591 8.675C1.107 8.675 0 9.796 0 11.258c0 1.484 1.065 2.627 2.605 2.627 1.285 0 1.981-.817 1.981-.817l-.483-.66s-.59.639-1.463.639c-1.05 0-1.696-.845-1.697-1.803 0-.937.625-1.732 1.69-1.732.802 0 1.378.533 1.378.533l.44-.682s-.632-.69-1.86-.688zm6.778.084h-.895v3.911c0 1.037.618 1.165 1.115 1.165.149 0 .284-.021.284-.021v-.788s-.064.007-.135.007c-.235 0-.37-.1-.37-.497zm.877.433v.987h-.49v.717h.47v1.577c0 1.213 1 1.362 1.505 1.362.17 0 .276-.021.276-.021v-.788s-.064.014-.163.014c-.249 0-.716-.085-.716-.681v-1.463h1.118v1.612c0 .987.484 1.377 1.257 1.377.618 0 1.079-.376 1.257-.753h.013s-.013.114-.013.256v.411h.866v-3.62h-.902v1.661c0 .646-.362 1.221-1.015 1.221-.448 0-.56-.298-.56-.738V10.18h-2.022v-.987zm9.592.902c-.86 0-1.42.448-1.42.448l.34.645s.476-.347.994-.348c.398 0 .696.164.696.64v.049h-.12c-.59 0-2.145.078-2.144 1.228 0 .724.582 1.129 1.228 1.129.823 0 1.108-.639 1.1-.64h.015s-.015.114-.015.257v.298h.831v-2.264c0-.916-.554-1.442-1.505-1.442zm-1.715.035c-.553 0-.987.412-1.15.93h-.014a2.32 2.32 0 0 0 .014-.255v-.625h-.866V13.8h.902v-1.434c0-.214.02-.413.077-.59.171-.539.604-.759.987-.759.12 0 .214.014.214.014v-.887s-.079-.015-.164-.015zm-13.428.05v2.329c0 .987.482 1.377 1.257 1.377.618 0 1.08-.376 1.256-.753h.014s-.014.114-.014.256v.412h.866v-3.62h-.901v1.66c0 .646-.363 1.222-1.016 1.222-.448 0-.56-.299-.56-.739V10.18zm18.316 1.902c-.13 0-.277.015-.473.05a.164.164 0 0 0-.104.064.327.327 0 0 0-.046.102.165.165 0 0 0-.007.049.12.12 0 0 0 .04.092.116.116 0 0 0 .08.027.364.364 0 0 0 .048-.003s.065-.007.174-.013l.001.018c.003.042.007.102.007.177 0 .367-.081 1.078-.627 1.607-.443.43-.91.642-1.499.675a2.99 2.99 0 0 1-1.714-.431c-.575-.349-.948-.823-1.131-1.042-.028-.034-.05-.063-.073-.086-.021-.022-.042-.048-.086-.05a.078.078 0 0 0-.055.021.52.52 0 0 0-.099.15.507.507 0 0 0-.058.197v.004c.002.125 0 .588.39.973a1.9 1.9 0 0 0 .452.328c.14.072.248.11.308.115h.01a.087.087 0 0 0 .075-.041.14.14 0 0 0 .017-.07c-.002-.092-.052-.206-.052-.209l-.01-.022-.054-.017a1.621 1.621 0 0 1-.41-.234 1.227 1.227 0 0 1-.43-.681c.268.34.708.776 1.073.98.453.258 1.103.515 1.802.514a2.548 2.548 0 0 0 1.065-.225 2.67 2.67 0 0 0 1.236-1.069c.342-.543.384-1.18.384-1.472v-.088c.08.031.223.11.34.3.001 0 .026.044.07.062a.13.13 0 0 0 .05.008.226.226 0 0 0 .09-.021.513.513 0 0 0 .128-.088c.04-.038.076-.084.077-.148a.124.124 0 0 0-.012-.055c-.096-.19-.335-.358-.65-.416a1.778 1.778 0 0 0-.328-.032zm-2.712.065h.157v.085c0 .44-.342.95-.817.95-.369 0-.547-.226-.547-.467 0-.504.746-.568 1.207-.568z\"},\"child\":[]}]})(props);\n};\nexport function SiCurl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.803 14.8169c0-.5342.433-.9665.9665-.9665.5335 0 .9665.4323.9665.9665 0 .5335-.433.9657-.9665.9657-.5335 0-.9666-.4322-.9666-.9657m2.736 0c0-.1963-.0532-.376-.1119-.5525-.2344-.7024-.876-1.2169-1.6575-1.2169-.1249 0-.2344.0465-.3524.0708C.6149 13.2865 0 13.9646 0 14.817c0 .9764.7923 1.7694 1.7695 1.7694.9772 0 1.7694-.793 1.7694-1.7694m-1.7694-7.149c.5335 0 .9665.433.9665.9665 0 .5335-.433.9665-.9665.9665-.5343 0-.9666-.433-.9666-.9665 0-.5335.4323-.9665.9666-.9665m0 2.7359c.9772 0 1.7694-.7923 1.7694-1.7694 0-.1956-.0532-.376-.1119-.5525-.2344-.7024-.8767-1.2169-1.6575-1.2169-.1249 0-.2344.0465-.3524.0716C.6149 7.104 0 7.782 0 8.6344c0 .9771.7923 1.7694 1.7695 1.7694m13.221-5.694c-.5342 0-.9665-.433-.9665-.9664a.966.966 0 01.9666-.9665c.5335 0 .9658.4322.9658.9665 0 .5334-.4323.9664-.9658.9664m-9.6 16.5133c-.5335 0-.9666-.433-.9666-.9665 0-.5342.433-.9665.9666-.9665a.966.966 0 01.9665.9665c0 .5335-.4323.9665-.9665.9665m9.6-19.2491c-.978 0-1.7695.7922-1.7695 1.7694 0 .2085.0525.4025.1187.5882L5.039 18.5581c-.803.1681-1.4179.8462-1.4179 1.6985 0 .9772.7923 1.7694 1.7695 1.7694.9772 0 1.7694-.7922 1.7694-1.7694 0-.1963-.0525-.3759-.111-.5525l8.3427-14.2728c.7778-.1865 1.3683-.8531 1.3683-1.688 0-.977-.793-1.7693-1.7694-1.7693m7.24 2.7359c-.5343 0-.9666-.433-.9666-.9665a.966.966 0 01.9665-.9665c.5335 0 .9666.4322.9666.9665 0 .5334-.433.9665-.9666.9665M12.6313 21.223c-.5343 0-.9665-.433-.9665-.9665a.966.966 0 01.9665-.9665c.5335 0 .9658.4323.9658.9665 0 .5335-.4323.9665-.9658.9665M22.2305 1.974c-.9772 0-1.7694.7922-1.7694 1.7694 0 .2085.0525.4025.1187.5882l-8.3009 14.2265c-.8021.1681-1.417.8462-1.417 1.6985 0 .9772.7922 1.7694 1.7694 1.7694.9764 0 1.7687-.7922 1.7687-1.7694 0-.1963-.0525-.3759-.1111-.5525l8.3427-14.2728C23.4094 5.2448 24 4.5782 24 3.7433c0-.977-.7923-1.7693-1.7695-1.7693\"},\"child\":[]}]})(props);\n};\nexport function SiCurseforge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.326 9.2145S23.2261 8.4418 24 6.1882h-7.5066V4.4H0l2.0318 2.3576V9.173s5.1267-.2665 7.1098 1.2372c2.7146 2.516-3.053 5.917-3.053 5.917L5.0995 19.6c1.5465-1.4726 4.494-3.3775 9.8983-3.2857-2.0565.65-4.1245 1.6651-5.7344 3.2857h10.9248l-1.0288-3.2726s-7.918-4.6688-.8336-7.1127z\"},\"child\":[]}]})(props);\n};\nexport function SiCustomink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 23.986c1.864 0 3.398-1.508 3.398-3.451 0-.384-.106-.86-.238-1.19-.423-1.018-2.182-2.526-2.79-3.808-.08-.198-.21-.291-.356-.291-.145 0-.29.093-.357.29-.595 1.283-2.366 2.804-2.79 3.809-.132.33-.238.806-.238 1.19A3.37 3.37 0 0 0 12 23.985zm0-11.82a1.856 1.856 0 0 0 1.587-.9c.12-.185.066-.476-.29-.357a3.48 3.48 0 0 1-2.591 0c-.358-.119-.397.172-.292.357.33.53.873.886 1.587.9zm1.772-3.293c-.068-.2.03-.42.225-.502a.586.586 0 0 1 .198-.04.116.116 0 0 0 .092-.12c0-.039-.013-.065-.052-.092a.964.964 0 0 0-.582-.198.97.97 0 0 0-.965.965.97.97 0 0 0 .965.965c.436 0 .806-.29.925-.687a.14.14 0 0 0-.013-.106c-.026-.026-.053-.053-.092-.053-.04 0-.093.04-.146.053-.317.172-.502-.053-.555-.185Zm-3.292 0c-.068-.2.03-.42.225-.502a.586.586 0 0 1 .2-.04.116.116 0 0 0 .09-.12c0-.039-.012-.065-.052-.092a.964.964 0 0 0-.582-.198.97.97 0 0 0-.965.965c.008 1.105 1.565 1.334 1.89.278a.14.14 0 0 0-.012-.106c-.027-.026-.053-.053-.093-.053s-.092.04-.145.053c-.304.172-.503-.053-.556-.185Zm5.896-1.89c0 .581-.105 1.123-.317 1.626-.053.132-.04.264.093.317.185.08.515.172 1.057.185 1.243 0 3.094-.635 3.253-.661.78-.212 1.454-.304 2.155.026.384.185.78-.105.635-.515C21.572 3.399 17.46.014 11.988.014 6.515.014 2.4 3.4.723 7.961c-.146.41.25.7.634.515.7-.33 1.375-.238 2.156-.026.158.026 2.01.661 3.252.661.542-.013.873-.106 1.058-.185.132-.053.145-.185.092-.317a4.453 4.453 0 0 1-.317-1.627c0-2.406 1.957-4.35 4.377-4.35 2.445 0 4.401 1.944 4.401 4.35zM7.85 19.238c.106-.225 1.137-2.354 1.243-4.614.027-.37-.25-.556-.582-.331-1.335.688-2.34.727-3.61 1.15-1.493.344-2.42 1.296-2.458 2.684a2.806 2.806 0 0 0 2.71 2.896 2.78 2.78 0 0 0 2.697-1.785zM4.147 14.73c.225-.105 1.85-.978 3.292-2.657.252-.278.067-.542-.25-.608-2.063-.569-2.804-1.825-4.483-1.799-.793-.013-1.507.291-2.063.952a2.732 2.732 0 0 0 .344 3.861c.893.748 2.16.848 3.16.251zm12.005 4.509c1.141 2.949 5.53 2.05 5.42-1.11-.052-1.402-.978-2.354-2.46-2.685-1.268-.41-2.273-.462-3.61-1.15-.316-.225-.606-.04-.58.33.08 2.261 1.124 4.377 1.23 4.615zm3.701-4.509c-.225-.105-1.85-.978-3.29-2.657-.253-.278-.068-.542.25-.608 2.062-.569 2.802-1.825 4.482-1.799.793-.013 1.507.291 2.063.952a2.732 2.732 0 0 1-.344 3.861 2.736 2.736 0 0 1-3.16.251zm-9.372-5.857c-.068-.2.03-.42.224-.502a.586.586 0 0 1 .2-.04.116.116 0 0 0 .09-.12c0-.039-.012-.065-.052-.092a.964.964 0 0 0-.582-.198.97.97 0 0 0-.965.965c.008 1.105 1.565 1.334 1.89.278a.14.14 0 0 0-.012-.106c-.027-.026-.053-.053-.093-.053s-.092.04-.145.053c-.304.172-.503-.053-.556-.185Zm3.291 0c-.068-.2.03-.42.225-.502a.586.586 0 0 1 .198-.04.116.116 0 0 0 .092-.12c0-.039-.013-.065-.052-.092a.964.964 0 0 0-.582-.198.97.97 0 0 0-.965.965.97.97 0 0 0 .965.965c.436 0 .806-.29.925-.687a.14.14 0 0 0-.013-.106c-.026-.026-.053-.053-.092-.053-.04 0-.093.04-.146.053-.317.172-.502-.053-.555-.185Zm-1.771 3.292a1.856 1.856 0 0 0 1.586-.899c.12-.185.066-.476-.29-.357a3.48 3.48 0 0 1-2.591 0c-.358-.119-.397.172-.292.357.33.53.873.886 1.587.9zm0 11.821c1.863 0 3.397-1.508 3.397-3.451 0-.384-.106-.86-.238-1.19-.423-1.018-2.182-2.526-2.79-3.808-.08-.198-.21-.291-.356-.291-.145 0-.29.093-.357.29-.595 1.283-2.366 2.804-2.79 3.809-.132.33-.238.806-.238 1.19A3.37 3.37 0 0 0 12 23.985zm7.852-9.256c-.225-.105-1.85-.978-3.29-2.657-.253-.278-.068-.542.25-.608 2.062-.569 2.802-1.825 4.482-1.799.793-.013 1.48.3 2.063.952.661 1.593.68 1.594-.33 3.85l-.014.011a2.736 2.736 0 0 1-3.16.251zm-3.7 4.509c1.14 2.949 5.53 2.05 5.42-1.11-.053-1.402-.98-2.354-2.46-2.685-1.269-.41-2.274-.462-3.61-1.15-.317-.225-.607-.04-.58.33.08 2.261 1.123 4.377 1.23 4.615zM4.146 14.73c.225-.105 1.85-.978 3.292-2.657.252-.278.067-.542-.25-.608-2.063-.569-2.804-1.825-4.483-1.799-.793-.013-1.507.291-2.063.952a2.732 2.732 0 0 0 .344 3.861c.893.748 2.16.848 3.16.251zm3.702 4.509c.106-.225 1.137-2.354 1.243-4.614.027-.37-.25-.556-.582-.331-1.335.688-2.34.727-3.61 1.15-1.493.344-2.42 1.296-2.458 2.684a2.806 2.806 0 0 0 2.71 2.896 2.78 2.78 0 0 0 2.697-1.785zm8.527-12.257c0 .582-.105 1.124-.317 1.627-.053.132-.04.264.093.317.185.08.515.172 1.057.185 1.243 0 3.094-.635 3.253-.661.78-.212 1.454-.304 2.155.026.384.185.78-.105.635-.515C21.57 3.399 17.46.014 11.988.014 6.516.014 2.4 3.4.723 7.961c-.146.41.25.7.634.515.7-.33 1.375-.238 2.156-.026.158.026 2.01.661 3.252.661.542-.013.873-.106 1.058-.185.132-.053.145-.185.092-.317a4.453 4.453 0 0 1-.317-1.627c0-2.406 1.957-4.35 4.377-4.35 2.445 0 4.401 1.944 4.401 4.35z\"},\"child\":[]}]})(props);\n};\nexport function SiCyberdefenders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.918 17.48c-.126 2.727-2.384 4.696-5.364 4.696H7.34v-6.123l-2.185-.957V24h8.381c4.334 0 7.549-2.962 7.549-6.881v-.163c-.65.235-1.372.415-2.167.524Zm1.355-9.501C18.611 4.313 17.726.989 15.432.213c-1.336-.452-2.005-.091-2.637.217-.199.09-.235.361-.072.505.361.307.813.687 1.336 1.174-1.95-1.138-7.333-2.835-7.874-.776-.488 1.86-1.319 4.587-1.319 4.587S.603 5.487.116 7.293c-.488 1.806 3.323 5.274 9.627 7.134 6.303 1.861 11.198 1.373 13.311-.921 2.113-2.294.072-5.473-2.781-5.527Zm-1.247.036c-.487.47-2.077 1.68-5.563 1.427-3.738-.271-6.809-2.474-7.604-3.088-.126-.091-.18-.235-.126-.398.054-.18.126-.469.253-.849.072-.234.343-.343.542-.216 1.571.903 4.1 2.221 6.791 2.402 2.402.163 3.847-.542 4.786-1.066.199-.108.452-.018.542.199l.47 1.156c.036.162.018.325-.091.433Z\"},\"child\":[]}]})(props);\n};\nexport function SiCycling74 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.283 9.033c-.042-.354.425-.74.87-1.057.636-.453 1.682-.82 2.892-.962 1.093-.127 2.099-.045 2.816.189.632.206 1.263.503 1.31.906.046.4-.496.836-1.06 1.182-.644.394-1.606.708-2.703.837-1.206.14-2.306.025-3.03-.267-.509-.206-1.053-.473-1.095-.828zm16.77-1.542c.365-.022.742.614 1.05 1.216.438.861.772 2.244.87 3.818.087 1.422-.038 2.715-.307 3.62-.236.798-.566 1.586-.981 1.61-.413.026-.837-.712-1.169-1.47-.379-.867-.662-2.137-.75-3.563-.096-1.57.066-2.98.395-3.89.23-.639.527-1.319.893-1.341zm-8.16 6.443c-.022-.336.362-.674.726-.948.522-.391 1.367-.677 2.335-.74.874-.055 1.674.082 2.238.345.496.233.989.552 1.014.935.024.382-.422.762-.882 1.055-.525.336-1.302.576-2.179.632-.966.063-1.839-.111-2.406-.43-.399-.225-.824-.51-.846-.849zM18.16 6.41c.288.177.343.685.357 1.14.02.65-.233 1.503-.74 2.327-.457.745-1.028 1.317-1.568 1.624-.476.271-1.02.488-1.347.287-.327-.2-.38-.782-.355-1.326.028-.622.279-1.392.737-2.14.505-.822 1.149-1.434 1.736-1.71.413-.196.89-.379 1.18-.202zM.382 6.211c.294-.168.771.04 1.183.257.588.31 1.228.967 1.722 1.834.447.784.685 1.582.704 2.219.015.56-.048 1.155-.382 1.345-.333.19-.876-.056-1.349-.353-.54-.34-1.107-.952-1.555-1.738C.211 8.91-.028 8.027.003 7.363c.021-.467.085-.984.38-1.152zm11.85 4.283c.32.188.341.828.32 1.406-.032.827-.398 1.948-1.054 3.066-.593 1.01-1.305 1.814-1.958 2.277-.575.407-1.225.756-1.589.542-.362-.212-.375-.948-.301-1.645.084-.797.44-1.813 1.036-2.826.655-1.115 1.453-1.979 2.159-2.41.496-.303 1.066-.598 1.387-.41Z\"},\"child\":[]}]})(props);\n};\nexport function SiCypress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.998.0195c-.8642 0-1.6816.1101-2.1445.1934v.002C4.1731 1.2283 0 6.1368 0 12.0018c0 1.1265.1573 2.2328.4648 3.3028.0387.1453.0915.2993.1368.4473 1.607 4.865 6.2245 8.226 11.3925 8.2285.0651 0 .2518-.0003.502-.0118.8564-.0353 1.6228-.5734 1.9512-1.369l.4736-1.1544L20.4258 8.043H18.621l-2.3164 5.871-2.334-5.871h-1.9082l3.2734 8.0117c-.8115 1.9702-1.6252 3.9395-2.4355 5.9101-.0808.1945-.2655.3284-.4727.336-.144.005-.285.0098-.4316.0098-4.5848 0-8.6672-3.0695-9.9277-7.4649a10.3058 10.3058 0 0 1-.3985-2.8437c0-5.0887 3.6521-9.3404 8.6035-10.164.2214-.037.8885-.1446 1.7246-.1446 4.4166 0 8.269 2.732 9.7305 6.8476.0558.144.0977.293.1465.4395.299.9746.4531 1.9887.4531 3.0215 0 4.5696-2.9413 8.5326-7.3164 9.8613l.4863 1.5996c5.085-1.546 8.4995-6.1518 8.502-11.459 0-1.5491-.2983-2.8706-.6504-3.8926-.0432-.1212-.0873-.2422-.1309-.3633h-.002C21.4577 3.0954 17.0444.0195 11.998.0195ZM8.4336 7.8906c-1.1999 0-2.1747.3852-2.9805 1.1758-.8007.7856-1.205 1.7736-1.205 2.9356 0 1.1544.4068 2.1368 1.205 2.9199.8058.7906 1.7806 1.1738 2.9805 1.1738 1.705 0 3.1556-.955 3.7871-2.4883l.0332-.082-1.6289-.5547c-.168.4563-.7552 1.4883-2.1914 1.4883-.6745 0-1.2437-.2344-1.6934-.6992-.4572-.4699-.6875-1.0632-.6875-1.7578 0-.6998.2253-1.2809.6875-1.7735.4522-.4648 1.019-.7012 1.6934-.7012 1.438 0 2.0238 1.0815 2.1934 1.4883l1.627-.5527-.0333-.084c-.629-1.5358-2.082-2.4883-3.7871-2.4883Z\"},\"child\":[]}]})(props);\n};\nexport function SiCytoscapedotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0v24H0V0h24zm-4.8416 7.2596c-.939 0-1.7199.6988-1.8416 1.61l-2.7097.6834a1.8574 1.8574 0 00-1.5505-.834c-1.026 0-1.858.832-1.858 1.858 0 1.0259.832 1.8579 1.858 1.8579.2554 0 .5063-.052.7388-.1528l1.792 1.8298a2.0325 2.0325 0 00-.0493.0932l-2.3452-.316c-.1616-.868-.9238-1.5154-1.8264-1.5154-1.0259 0-1.858.832-1.858 1.858 0 1.0258.8321 1.858 1.858 1.858a1.859 1.859 0 001.6365-.9776l2.3456.316c.0214.1408.0573.2788.1074.412l-.984.8666a1.136 1.136 0 00-.3179-.0454c-.626 0-1.1337.5077-1.1337 1.1338 0 .6258.5078 1.1336 1.1337 1.1336.626 0 1.1336-.5078 1.1336-1.1336 0-.0496-.0031-.0988-.0096-.1476l.9446-.832c.34.2325.7417.3572 1.1578.3572.082 0 .1638-.0048.245-.0145l.8342 1.665a1.8536 1.8536 0 00-.5009 1.269c0 1.0258.8322 1.858 1.8581 1.858 1.026 0 1.858-.8322 1.858-1.858 0-1.026-.832-1.8581-1.858-1.8581-.0873 0-.1743.006-.2604.0182l-.8039-1.6046a2.0519 2.0519 0 00.6834-1.5305 2.0553 2.0553 0 00-.9357-1.724l.7343-2.4191c.9905-.04 1.7818-.856 1.7818-1.8565 0-1.0259-.8321-1.858-1.858-1.858zm-1.582 2.8326c.1244.2014.2862.3776.4762.5185l-.7442 2.4523a2.046 2.046 0 00-.8189.2015l-1.787-1.8249a1.8483 1.8483 0 00.2025-.6736z\"},\"child\":[]}]})(props);\n};\nexport function SiD (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.635 3.883a1.364 1.25 0 0 0-1.363 1.25 1.364 1.25 0 0 0 1.363 1.25A1.364 1.25 0 0 0 24 5.133a1.364 1.25 0 0 0-1.365-1.25zm-16.004.418-6.027.008c-.026 0-.051-.003-.076 0-.296.036-.527.273-.528.558l.018 14.574c0 .22.06.676.682.676l5.58-.021c1.595-.003 2.664-.031 3.3-.112h.016a11.43 11.43 0 0 0 1.955-.469c1.22-.38 2.3-.944 3.23-1.697a7.854 7.854 0 0 0 2.114-2.562 6.716 6.716 0 0 0 .646-1.987 4.244 3.89 0 0 0 .26.028 4.244 3.89 0 0 0 4.244-3.89 4.244 3.89 0 0 0-4.244-3.89 4.244 3.89 0 0 0-2.9 1.082 8.838 8.838 0 0 0-2.25-1.355c-1.536-.65-3.536-.948-6.02-.943zm-.262 3.004c1.215-.003 2.079.034 2.569.101a7.32 7.32 0 0 1 1.617.436c.57.218 1.068.483 1.496.814 1.177.915 1.732 1.999 1.734 3.432.003 1.468-.534 2.611-1.68 3.57a5.582 5.582 0 0 1-1.177.742c-.409.19-.942.355-1.615.496-.636.128-1.6.2-2.856.202l-2.673.004-.012-9.793 2.598-.004z\"},\"child\":[]}]})(props);\n};\nexport function SiD3Dotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.312 12C13.312 5.718 8.22.625 1.937.625H0v5h1.938c3.521 0 6.375 2.854 6.375 6.375s-2.854 6.375-6.375 6.375H0v5h1.938c6.281 0 11.374-5.093 11.374-11.375zM24 7.563C24 3.731 20.893.625 17.062.625h-8a13.4154 13.4154 0 0 1 4.686 5h3.314c1.069 0 1.938.868 1.938 1.938 0 1.07-.869 1.938-1.938 1.938h-1.938c.313 1.652.313 3.348 0 5h1.938c1.068 0 1.938.867 1.938 1.938s-.869 1.938-1.938 1.938h-3.314a13.4154 13.4154 0 0 1-4.686 5h8c1.621 0 3.191-.568 4.438-1.605 2.943-2.45 3.346-6.824.895-9.77A6.9459 6.9459 0 0 0 24 7.563z\"},\"child\":[]}]})(props);\n};\nexport function SiDacia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 8.646v2.23h8.252v2.248H0v2.23h9.112a.62.62 0 00.489-.201L12 12.819l2.399 2.334a.62.62 0 00.49.201H24v-2.23h-8.252v-2.248H24v-2.23h-9.112a.62.62 0 00-.489.201L12 11.181 9.601 8.847a.62.62 0 00-.49-.201Z\"},\"child\":[]}]})(props);\n};\nexport function SiDaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.649 12.782h-2.643V8.723H24v1.183h-4.351v.723h4.277v1.147h-4.277zm-7.51-3.039l-1.831 3.05H7.76l2.414-4.07h3.924l2.424 4.07h-5.364l.64-1.06h1.534zM.004 12.785V8.741h4.99c1.62 0 2.773.738 2.773 1.994 0 1.196-.914 2.05-2.82 2.05zm4.008-1.034c.621 0 .985-.53.985-.935 0-.413-.325-.896-.967-.896H2.671v1.831zM0 13.731h23.926v1.546H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiDailydotdev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.29 5.706a1.405 1.405 0 0 0-1.987 0L4.716 17.296l1.324-2.65-2.65-2.649 3.312-3.311 2.65 2.65 1.986-1.988-3.642-3.642a1.405 1.405 0 0 0-1.987 0L.411 11.004a1.404 1.404 0 0 0 0 1.987l4.305 4.304.993.993a1.405 1.405 0 0 0 1.987 0L19.285 6.7l-.993-.994Zm-.332 3.647 2.65 2.65-4.306 4.305a1.404 1.404 0 1 0 1.986 1.986l5.299-5.298a1.404 1.404 0 0 0 0-1.987l-4.305-4.304-1.324 2.648Z\"},\"child\":[]}]})(props);\n};\nexport function SiDailymotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.823 7.327a11.928 11.928 0 0 0-2.606-3.814 12.126 12.126 0 0 0-3.866-2.57A12.246 12.246 0 0 0 10.617 0H1.831a.602.602 0 0 0-.609.603v3.764c0 .162.064.312.179.426l4.164 4.123a.612.612 0 0 0 .439.177h4.56c.806 0 1.56.313 2.125.88.557.559.856 1.296.843 2.075-.029 1.571-1.343 2.849-2.931 2.849h-6.74a.613.613 0 0 0-.432.176.619.619 0 0 0-.178.427v3.764c0 .162.063.312.178.427l4.139 4.099a.647.647 0 0 0 .476.21h2.572a12.276 12.276 0 0 0 4.733-.945 12.145 12.145 0 0 0 3.866-2.571 11.959 11.959 0 0 0 2.607-3.813c.633-1.479.956-3.051.956-4.67 0-1.619-.321-3.19-.956-4.669l.001-.005ZM2.441 4.118V1.982l2.945 2.755.001 2.297-2.946-2.916Zm4.975 17.813-2.945-2.917v-2.137l2.945 2.755v2.299Zm-2.004-5.832h5.19c2.248 0 4.107-1.807 4.147-4.03a4.027 4.027 0 0 0-1.192-2.937 4.203 4.203 0 0 0-2.996-1.239H6.606V5.216h3.996c1.831 0 3.553.706 4.849 1.986a6.724 6.724 0 0 1-.152 9.736 6.875 6.875 0 0 1-4.697 1.84H8.275L5.412 16.1v-.001Zm15.289.1a10.753 10.753 0 0 1-2.345 3.431 10.91 10.91 0 0 1-3.48 2.314 11.018 11.018 0 0 1-4.26.847H8.633v-2.814h1.916c2.145 0 4.161-.802 5.675-2.254a7.88 7.88 0 0 0 2.451-5.728c0-2.177-.87-4.21-2.451-5.728-1.514-1.454-3.528-2.254-5.675-2.254h-4.16L3.383 1.202h7.234c1.479 0 2.911.285 4.259.847a10.957 10.957 0 0 1 3.48 2.313 10.769 10.769 0 0 1 2.345 3.432c.571 1.33.86 2.743.86 4.202 0 1.46-.289 2.873-.86 4.203Z\"},\"child\":[]}]})(props);\n};\nexport function SiDaisyui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C7.828.001 4.396 3.433 4.395 7.605c.001 4.172 3.433 7.604 7.605 7.605 4.172-.001 7.604-3.433 7.605-7.605C19.604 3.433 16.172.001 12 0Zm0 .286c4.016 0 7.32 3.304 7.32 7.32-.001 4.015-3.305 7.318-7.32 7.318-4.015 0-7.319-3.304-7.32-7.319 0-4.016 3.304-7.32 7.32-7.32zm0 4.04a3.294 3.294 0 0 0-3.279 3.279v.001A3.296 3.296 0 0 0 12 10.884a3.294 3.294 0 0 0 3.279-3.279A3.294 3.294 0 0 0 12 4.326ZM8.34 16.681h-.008a3.67 3.67 0 0 0-3.652 3.652v.015A3.67 3.67 0 0 0 8.332 24h7.336a3.67 3.67 0 0 0 3.652-3.652v-.016a3.67 3.67 0 0 0-3.652-3.652h-.008Z\"},\"child\":[]}]})(props);\n};\nexport function SiDapr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.6175 7.658h10.5093a.2456.2456 0 0 1 .2461.2461v.656a.2456.2456 0 0 1-.2461.2462H7.6175a.2456.2456 0 0 1-.2461-.2462v-.656a.2456.2456 0 0 1 .2461-.2462zm2.0329-4.476h6.533a.132.132 0 0 1 .1323.1324v4.5199a.132.132 0 0 1-.1323.1323h-6.533a.132.132 0 0 1-.1324-.1323v-4.52a.132.132 0 0 1 .1324-.1323zm5.8312 16.9-1.0503.736-1.0502-.736.1544-4.2073h1.7917zm-9.6058-4.244H4.0963v-.5588c-.17.2134-.3418.369-.5155.4666-.3038.17-.6492.255-1.0362.255-.6258 0-1.1828-.2152-1.671-.6457C.2911 14.8415 0 14.1614 0 13.315c0-.861.2984-1.5482.8952-2.0619.4738-.4088 1.0182-.6131 1.6331-.6131.358 0 .6945.076 1.0091.2279.1809.0868.3672.2297.5589.4286V7.6881h1.7795Zm-1.7253-2.5177c0-.3183-.1121-.5887-.3364-.8112-.2242-.2224-.4955-.3337-.8138-.3337-.3545 0-.6456.1339-.8735.4016-.1845.217-.2767.4648-.2767.7433 0 .2786.0922.5264.2767.7434.2243.2677.5154.4016.8735.4016.322 0 .5941-.1104.8166-.331.2224-.2207.3336-.492.3336-.814Zm8.3997 2.5178h-1.7796v-.559c-.17.2135-.3418.369-.5154.4667-.3038.17-.6492.255-1.0363.255-.6257 0-1.1827-.2152-1.671-.6457-.5824-.5136-.8735-1.1937-.8735-2.0402 0-.861.2984-1.5482.8952-2.0619.4738-.4088 1.0182-.6131 1.633-.6131.3581 0 .6945.076 1.0092.2279.1809.0868.3671.2297.5588.4286v-.4938h1.7796zm-1.7253-2.5178c0-.3183-.1121-.5887-.3364-.8112-.2242-.2224-.4955-.3337-.8138-.3337-.3545 0-.6457.1339-.8735.4016-.1845.217-.2767.4648-.2767.7433 0 .2786.0922.5264.2767.7434.2242.2677.5154.4016.8735.4016.3219 0 .594-.1104.8165-.331.2225-.2207.3337-.492.3337-.814zm8.6004.0054c0 .861-.2984 1.5483-.8952 2.062-.4738.4087-1.0182.6131-1.633.6131-.3582 0-.6945-.076-1.0092-.2279-.1809-.0868-.3672-.2297-.5589-.4286v3.0114h-1.7795v-7.553h1.7795v.5588c.1592-.2098.331-.3654.5155-.4666.3038-.17.6492-.255 1.0362-.255.6258 0 1.1828.2152 1.6711.6456.5823.5137.8735 1.1938.8735 2.0402zm-1.85-.0054c0-.2857-.0905-.5335-.2714-.7433-.2278-.2677-.5208-.4016-.8789-.4016-.322 0-.594.1104-.8165.331-.2225.2207-.3337.492-.3337.814 0 .3183.1121.5887.3364.8111.2242.2225.4955.3338.8138.3338.358 0 .6493-.1339.8735-.4016.1845-.217.2767-.4648.2767-.7434zM24 12.4467c-.2496-.1193-.5028-.179-.7596-.179-.586 0-.9657.2387-1.1393.7162-.0651.1737-.0977.407-.0977.7v2.1542h-1.7796v-5.0355h1.7796v.8248c.188-.293.3906-.5046.6077-.6348.293-.1737.6402-.2605 1.0417-.2605a4.51 4.51 0 0 1 .3472.0163z\"},\"child\":[]}]})(props);\n};\nexport function SiDarkreader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.281 8.572c-.18-1.671-.926-3.132-2.105-4.173A6.315 6.315 0 0012 2.824c-1.538 0-3.026.56-4.176 1.575C6.646 5.44 5.9 6.901 5.72 8.572a4.968 4.968 0 01.987-.101 4.587 4.587 0 014.24 2.827l2.107-.002a4.57 4.57 0 014.241-2.825 4.88 4.88 0 01.987.101zM3.624 16.494l-2.212 6.094H0l2.662-7.324a4.621 4.621 0 01-.401-1.046 4.803 4.803 0 01-.143-1.16 4.7 4.7 0 01.574-2.283 4.43 4.43 0 011.576-1.642c.08-2.207.943-4.178 2.43-5.593A7.7 7.7 0 0112 1.412c1.973 0 3.876.768 5.305 2.13 1.486 1.417 2.348 3.388 2.427 5.596a4.42 4.42 0 011.576 1.64c.383.693.576 1.478.574 2.28 0 .39-.047.78-.142 1.159-.091.362-.225.713-.402 1.045L24 22.588h-1.412l-2.212-6.097c-.41.367-.879.649-1.383.843a4.653 4.653 0 01-1.699.313 4.635 4.635 0 01-3.132-1.227c-.827-.765-1.344-1.814-1.443-3.008H11.28c-.103 1.192-.62 2.241-1.447 3.005a4.637 4.637 0 01-3.128 1.23 4.644 4.644 0 01-1.698-.31 4.514 4.514 0 01-1.384-.843zm11.2-3.445a2.462 2.462 0 002.489 2.48 2.47 2.47 0 00-.019-4.94 2.464 2.464 0 00-2.47 2.46zm-10.589.01a2.463 2.463 0 002.47 2.47 2.469 2.469 0 002.472-2.47 2.469 2.469 0 00-2.471-2.47 2.463 2.463 0 00-2.47 2.47zm5.647 6c.033-.423.327-.703.706-.706a.681.681 0 01.706.706v2.823a.681.681 0 01-.706.706c-.38-.003-.673-.283-.706-.706V19.06zm2.824 0c.033-.423.326-.703.706-.706a.681.681 0 01.706.706v2.823a.681.681 0 01-.706.706c-.38-.003-.673-.283-.706-.706V19.06zm2.823 1.412c.033-.423.327-.703.706-.706a.681.681 0 01.706.706v1.411a.681.681 0 01-.706.706c-.38-.003-.673-.283-.706-.706v-1.411zm-8.47 0c.033-.423.326-.703.706-.706a.681.681 0 01.706.706v1.411a.681.681 0 01-.706.706c-.38-.003-.673-.283-.706-.706v-1.411z\"},\"child\":[]}]})(props);\n};\nexport function SiDart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.105 4.105S9.158 1.58 11.684.316a3.079 3.079 0 0 1 1.481-.315c.766.047 1.677.788 1.677.788L24 9.948v9.789h-4.263V24H9.789l-9-9C.303 14.5 0 13.795 0 13.105c0-.319.18-.818.316-1.105l3.789-7.895zm.679.679v11.787c.002.543.021 1.024.498 1.508L10.204 23h8.533v-4.263L4.784 4.784zm12.055-.678c-.899-.896-1.809-1.78-2.74-2.643-.302-.267-.567-.468-1.07-.462-.37.014-.87.195-.87.195L6.341 4.105l10.498.001z\"},\"child\":[]}]})(props);\n};\nexport function SiDarty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm11.83 1.503A10.56 10.56 0 0 1 22.62 12.06c.06 5.76-4.68 10.5-10.56 10.5A10.56 10.56 0 0 1 1.5 12.06a10.56 10.56 0 0 1 9.77-10.53 10.56 10.56 0 0 1 .56-.027zM2.4 9.24s.18 1.2.18 2.82c0 1.56-.18 2.76-.18 2.76h2.04c.66 0 1.86-.48 1.86-2.76-.06-2.34-1.2-2.82-1.86-2.82zm4.68 0s-.12 1.44-.42 2.82c-.3 1.32-.72 2.76-.72 2.76h1.8s-.06-.24 0-.72.18-.72.18-.72h.84s.12.3.18.72c.06.48 0 .72 0 .72h3.42s-.12-.36-.18-.96 0-.96 0-.96.24.36.48.96c.18.6.18.96.18.96h1.98s-.3-.66-.72-1.38c-.42-.72-.66-1.08-.66-1.08s.96-.3.96-1.56v-.3c.12-.06.42-.12.9-.12 0 0 .06 1.02 0 1.98s-.18 2.52-.18 2.52h1.8s-.12-1.56-.18-2.52 0-1.98 0-1.98.48 0 .96.18V9.42c.18.36.72 1.5.96 2.64.3 1.44.12 2.76.12 2.76h1.8s-.18-1.38.12-2.76 1.08-2.82 1.08-2.82h-1.62l-.42 1.62-.42-1.62h-4.98v.96a1.35 1.35 0 0 0-1.2-.96h-2.52s.18 1.02.18 2.82c0 1.08-.06 1.92-.12 2.34-.18-.54-.42-1.44-.6-2.34-.3-1.32-.42-2.82-.42-2.82zm5.16.96s.6 0 .6.72c.06.72-.6.72-.6.72zm-8.187.115c.15-.009.747.058.747 1.685 0 1.92-.78 1.68-.78 1.68v-3.36s.012-.003.033-.005zm4.346.065.36 1.86h-.718z\"},\"child\":[]}]})(props);\n};\nexport function SiDaserste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.646.005C5.158.2-.001 5.57 0 12.127.135 18.724 5.468 24 12 24s11.865-5.276 12-11.873C24.001 5.291 18.41-.195 11.645.005zm5.138 4.93V16.96L8.78 19.92v-9.08l-3.9 1.386V9.263l11.903-4.328z\"},\"child\":[]}]})(props);\n};\nexport function SiDash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.21 9.967C.922 9.967.595 11.457.38 12.36.093 13.538 0 14.02 0 14.02h8.947c2.29 0 2.617-1.492 2.832-2.394.285-1.178.379-1.66.379-1.66zM15.72 2.26H6.982L6.26 6.307l7.884.01c3.885 0 5.03 1.41 4.997 3.748-.019 1.196-.537 3.225-.762 3.884-.598 1.753-1.827 3.749-6.435 3.744l-7.666-.004-.725 4.052h8.718c3.075 0 4.38-.36 5.767-.995 3.071-1.426 4.9-4.455 5.633-8.41C24.76 6.448 23.403 2.26 15.72 2.26z\"},\"child\":[]}]})(props);\n};\nexport function SiDashlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.89 7.7189c0-.1488-.1488-.2976-.3575-.3571l-2.502-.9221c-.4166-.1786-.8932.0297-.8932.3277V17.25c0 .1487.1488.3273.2977.3868l2.5614.9222c.3872.1487.8936-.0596.8936-.3873zm-4.676-3.663c0-.1492-.1489-.298-.3576-.3575l-2.5015-.9221c-.417-.1786-.8936.0297-.8936.3278v6.3723c0 .1488.1487.3273.2976.3873l2.5614.9221c.3873.1492.8937-.0595.8937-.3869zm0 11.4663c0-.1488-.1489-.2975-.3576-.3571l-2.5015-.9221c-.417-.1786-.8936.0297-.8936.3277v6.3724c0 .1488.1487.3273.2976.3869l2.5614.922c.3873.1493.8937-.0594.8937-.3872zm-4.6761 1.281c0-.1489-.1488-.298-.3575-.3576l-2.5015-.9221c-.4192-.1786-.8937.0297-.8937.3277v6.7903c0 .1487.1488.3277.2977.3872l2.5614.9222c.3872.1493.8936-.0595.8936-.387zm0-15.4579c0-.1488-.1488-.2976-.3575-.3571L8.6789.066c-.4192-.1786-.8937.0297-.8937.3277v6.7903c0 .1492.1488.3277.2977.3873l2.5614.922c.3872.1488.8936-.0594.8936-.3872zm-4.6752.2683c0-.1488-.1488-.298-.3575-.3576L4.0037.334C3.5867.1553 3.11.3636 3.11.6617v21.7409c0 .1487.1488.3273.298.3868l2.561.9222c.3874.1488.8937-.0595.8937-.3874z\"},\"child\":[]}]})(props);\n};\nexport function SiDask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.246 9.754 5.848-3.374a.202.202 0 0 0 .1-.175l.002-2.553c0-.324-.133-.645-.392-.841a1 1 0 0 0-1.118-.074l-2.425 1.4-6.436 3.712a1.007 1.007 0 0 0-.504.872l-.003 8.721v2.825c0 .324.132.645.39.842.335.253.766.278 1.12.074l2.363-1.364a.202.202 0 0 0 .101-.175l.003-8.244a1.902 1.902 0 0 1 .951-1.646Zm10.316-4.336a1.005 1.005 0 0 0-.504-.137.997.997 0 0 0-.503.137l-8.86 5.112a1.01 1.01 0 0 0-.505.87l-.003 11.591c0 .364.188.69.503.872a.995.995 0 0 0 1.007 0l8.86-5.112a1.01 1.01 0 0 0 .504-.872l.004-11.59a.997.997 0 0 0-.503-.871ZM6.378 7.074l6.334-3.655a.202.202 0 0 0 .1-.175l.001-2.193c0-.324-.133-.646-.392-.84a1 1 0 0 0-1.118-.075L2.443 5.25a1.007 1.007 0 0 0-.504.872l-.003 11.546c0 .324.133.645.39.842a1 1 0 0 0 1.12.074l1.877-1.082a.202.202 0 0 0 .1-.175l.003-8.605c0-.68.363-1.307.952-1.647z\"},\"child\":[]}]})(props);\n};\nexport function SiDassaultsystemes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.1854 8.0254c1.064.192 1.9321.34 2.1311.79.223.51-.936.541-1.52.552-2.7992.054-4.4862.11-4.5712 1.061-.11 1.2241 1.196 2.4572 2.486 4.1852 1.1781 1.577 2.5172 3.1351 2.1322 4.5862-.482 1.809-2.6991 2.192-4.8102 2.192-2.0211.001-3.9382-.323-4.7432-.482-1.002-.199-.852-.694-.585-.853.298-.178 2.002-.182 3.187-.252.9751-.058 3.8052-.056 4.2463-.781.54-.889-.783-2.4081-2.0001-4.0002-1.519-1.984-3.1862-4.0341-2.3031-5.5322 1.14-1.936 4.4842-1.803 6.3502-1.466m-13.6905 2.95c1.772-.104 3.9261.206 5.1342 1.1301a2.172 2.172 0 01.78 2.2771c-.698 2.7521-3.3041 6.0833-9.0933 8.6434-1.8411.813-3.2892 1.125-3.5932.906-.326-.234.624-2.052.909-2.6541.9251-1.952 2.0791-3.8532 3.2052-5.5952.414-.64 1.055-1.7521 1.634-1.6621.519.08-.089 1.26-.488 2.011-.672 1.2601-2.523 4.7603-1.912 4.9693 1.35.462 7.6803-4.3542 6.7462-7.0363-.432-1.245-3.1801-1.363-4.9122-1.363-.787 0-2.508.186-2.603-.417-.102-.5561 2.613-1.1161 4.192-1.2101M11.8672.013c2.068-.098 4.5141.342 4.9702 1.8021.747 2.3901-3.0402 5.8772-6.3383 7.5873-.809.42-1.3.536-1.504.507-.195-.027-.225-.221-.162-.355.118-.252.65-.764 1.361-1.322 3.7151-2.9001 4.9232-5.0282 4.2212-5.8903-.45-.552-2.3321-.937-4.2872-.937-.53 0-1.925.123-2.068-.367C7.942.634 9.814.108 11.866.012\"},\"child\":[]}]})(props);\n};\nexport function SiDatabricks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.95 14.184L12 20.403l9.919-5.55v2.21L12 22.662l-10.484-5.96-.565.308v.77L12 24l11.05-6.218v-4.317l-.515-.309L12 19.118l-9.867-5.653v-2.21L12 16.805l11.05-6.218V6.32l-.515-.308L12 11.974 2.647 6.681 12 1.388l7.76 4.368.668-.411v-.566L12 0 .95 6.27v.72L12 13.207l9.919-5.55v2.26L12 15.52 1.516 9.56l-.565.308Z\"},\"child\":[]}]})(props);\n};\nexport function SiDatacamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.946 18.151v-5.239L21.209 8.2 19.2 7.048l-6.254 3.567V5.36c0-.356-.192-.689-.5-.866L4.922.177a1.434 1.434 0 0 0-1.455.044 1.438 1.438 0 0 0-.676 1.224v14.777A1.44 1.44 0 0 0 4.92 17.49l6.032-3.44v4.683a1 1 0 0 0 .504.867l7.73 4.4 2.01-1.152-8.25-4.697zM10.953 5.938v5.814L4.785 15.27V2.4l6.168 3.539v-.001z\"},\"child\":[]}]})(props);\n};\nexport function SiDatadog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.57 17.04l-1.997-1.316-1.665 2.782-1.937-.567-1.706 2.604.087.82 9.274-1.71-.538-5.794zm-8.649-2.498l1.488-.204c.241.108.409.15.697.223.45.117.97.23 1.741-.16.18-.088.553-.43.704-.625l6.096-1.106.622 7.527-10.444 1.882zm11.325-2.712l-.602.115L20.488 0 .789 2.285l2.427 19.693 2.306-.334c-.184-.263-.471-.581-.96-.989-.68-.564-.44-1.522-.039-2.127.53-1.022 3.26-2.322 3.106-3.956-.056-.594-.15-1.368-.702-1.898-.02.22.017.432.017.432s-.227-.289-.34-.683c-.112-.15-.2-.199-.319-.4-.085.233-.073.503-.073.503s-.186-.437-.216-.807c-.11.166-.137.48-.137.48s-.241-.69-.186-1.062c-.11-.323-.436-.965-.343-2.424.6.421 1.924.321 2.44-.439.171-.251.288-.939-.086-2.293-.24-.868-.835-2.16-1.066-2.651l-.028.02c.122.395.374 1.223.47 1.625.293 1.218.372 1.642.234 2.204-.116.488-.397.808-1.107 1.165-.71.358-1.653-.514-1.713-.562-.69-.55-1.224-1.447-1.284-1.883-.062-.477.275-.763.445-1.153-.243.07-.514.192-.514.192s.323-.334.722-.624c.165-.109.262-.178.436-.323a9.762 9.762 0 0 0-.456.003s.42-.227.855-.392c-.318-.014-.623-.003-.623-.003s.937-.419 1.678-.727c.509-.208 1.006-.147 1.286.257.367.53.752.817 1.569.996.501-.223.653-.337 1.284-.509.554-.61.99-.688.99-.688s-.216.198-.274.51c.314-.249.66-.455.66-.455s-.134.164-.259.426l.03.043c.366-.22.797-.394.797-.394s-.123.156-.268.358c.277-.002.838.012 1.056.037 1.285.028 1.552-1.374 2.045-1.55.618-.22.894-.353 1.947.68.903.888 1.609 2.477 1.259 2.833-.294.295-.874-.115-1.516-.916a3.466 3.466 0 0 1-.716-1.562 1.533 1.533 0 0 0-.497-.85s.23.51.23.96c0 .246.03 1.165.424 1.68-.039.076-.057.374-.1.43-.458-.554-1.443-.95-1.604-1.067.544.445 1.793 1.468 2.273 2.449.453.927.186 1.777.416 1.997.065.063.976 1.197 1.15 1.767.306.994.019 2.038-.381 2.685l-1.117.174c-.163-.045-.273-.068-.42-.153.08-.143.241-.5.243-.572l-.063-.111c-.348.492-.93.97-1.414 1.245-.633.359-1.363.304-1.838.156-1.348-.415-2.623-1.327-2.93-1.566 0 0-.01.191.048.234.34.383 1.119 1.077 1.872 1.56l-1.605.177.759 5.908c-.337.048-.39.071-.757.124-.325-1.147-.946-1.895-1.624-2.332-.599-.384-1.424-.47-2.214-.314l-.05.059a2.851 2.851 0 0 1 1.863.444c.654.413 1.181 1.481 1.375 2.124.248.822.42 1.7-.248 2.632-.476.662-1.864 1.028-2.986.237.3.481.705.876 1.25.95.809.11 1.577-.03 2.106-.574.452-.464.69-1.434.628-2.456l.714-.104.258 1.834 11.827-1.424zM15.05 6.848c-.034.075-.085.125-.007.37l.004.014.013.032.032.073c.14.287.295.558.552.696.067-.011.136-.019.207-.023.242-.01.395.028.492.08.009-.048.01-.119.005-.222-.018-.364.072-.982-.626-1.308-.264-.122-.634-.084-.757.068a.302.302 0 0 1 .058.013c.186.066.06.13.027.207m1.958 3.392c-.092-.05-.52-.03-.821.005-.574.068-1.193.267-1.328.372-.247.191-.135.523.047.66.511.382.96.638 1.432.575.29-.038.546-.497.728-.914.124-.288.124-.598-.058-.698m-5.077-2.942c.162-.154-.805-.355-1.556.156-.554.378-.571 1.187-.041 1.646.053.046.096.078.137.104a4.77 4.77 0 0 1 1.396-.412c.113-.125.243-.345.21-.745-.044-.542-.455-.456-.146-.749\"},\"child\":[]}]})(props);\n};\nexport function SiDatadotai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.12 1.744.015 10.009 0 10.023l11.986 12.219.014.015 11.986-12.22.014-.014-8.115-8.273-.006-.006Zm1.207 1.02h5.326L11.99 5.41zm3.422 3.43 3.027-3.053L22.081 9.5h-6.054ZM8.211 3.14l3.04 3.072L7.999 9.5h-6.08Zm.62 6.977L12 6.876l3.169 3.242L12 19.842zm7.328.402h5.862l-8.793 9.005Zm-14.24 0h5.915l2.958 9.006Z\"},\"child\":[]}]})(props);\n};\nexport function SiDatagrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm17.1797 2.9477a5.452 5.452 0 0 1 3.9047 1.364L19.7078 5.972a3.672 3.672 0 0 0-2.596-1.0086c-1.6 0-2.8555 1.408-2.8555 3.096v.0282c0 1.816 1.2517 3.1523 3.0117 3.1523a3.492 3.492 0 0 0 2.064-.5921V9.2234h-2.2V7.336h4.3157v4.3157a6.436 6.436 0 0 1-4.2438 1.5757c-3.096 0-5.2242-2.1797-5.2242-5.1117v-.0281a5.1 5.1 0 0 1 5.2-5.1398zm-14.7438.1718h3.8758c3.12 0 5.2805 2.1439 5.2805 4.9399v.028c0 2.8-2.1605 4.968-5.2805 4.968H2.436Zm4.075 1.9688a2.852 2.852 0 0 0-.1992.003H4.6203v6h1.6914A2.832 2.832 0 0 0 9.304 8.1235v-.036a2.852 2.852 0 0 0-2.793-2.9991Zm-4.303 14.407h9v1.5h-9z\"},\"child\":[]}]})(props);\n};\nexport function SiDataiku (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 12 12A12 12 0 0 0 12 0zm6.527 15.34H12.5v-.934h6.026zm-.739-8.73s-.412.543-.193 1.995c.41 2.724-1.02 5.15-3.56 5.15h-1.87s-1.835-.092-2.933 1.01c-3.263 3.269-4.04 4.116-4.274 4.233-.15.08-.188-.093-.188-.093l9.644-11.891c-.203-2.145 2.34-2.715 3.278-1.13l.884-.248zm-1.599-.614a.476.476 0 1 0 .47.474.476.476 0 0 0-.47-.474z\"},\"child\":[]}]})(props);\n};\nexport function SiDatastax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.863 8.818v6.364l-2.181 1.683H0v-9.73h8.682l2.181 1.683Zm-9.18 6.366h7.498V8.818H1.683v6.366Zm13.243-6.296v2.26h6.919L24 12.793v2.318l-2.155 1.646h-8.153v-1.646h8.645v-2.318h-6.919l-2.155-1.645v-2.26l2.155-1.645h7.939v1.645h-8.431Z\"},\"child\":[]}]})(props);\n};\nexport function SiDatefns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.065 6.534C.355 8.246 0 10.068 0 11.999c0 1.932.355 3.754 1.065 5.466a13.768 13.768 0 0 0 3.068 4.549h2.685c-2.784-2.756-4.176-6.094-4.176-10.015 0-3.92 1.392-7.258 4.176-10.014H4.133a13.768 13.768 0 0 0-3.068 4.549Zm21.869 10.931c.71-1.712 1.066-3.534 1.066-5.466 0-1.931-.356-3.753-1.066-5.465a13.768 13.768 0 0 0-3.068-4.549h-2.685c2.784 2.756 4.176 6.094 4.176 10.014 0 3.921-1.392 7.259-4.176 10.015h2.685a13.768 13.768 0 0 0 3.068-4.549ZM11.63 3.299H9.854v10.21h1.776v-.033l7.218-7.218-1.151-1.151-6.067 6.067V3.299Z\"},\"child\":[]}]})(props);\n};\nexport function SiDatev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .165v16.9174h23.9147V.1651Zm.017 18.1842v5.4857h1.9809c1.4754 0 2.7429-1.1832 2.7429-2.7005-.042-1.686-1.0982-2.7852-2.5736-2.7852zm6.62 0-2.1079 5.4857H5.706l1.6422-4.3428 1.3546 3.454h-1.524v.8888h3.0392l-2.1502-5.4857Zm2.6498 0v.9312h1.7778v4.5545h1.219v-4.5545h1.727v-.9312zm5.1894 0v5.4857h3.7926v-.8889h-2.6159v-1.5153h2.3196v-.9313h-2.3196v-1.219h2.4889v-.9312zm3.962 0 2.1502 5.4857h1.3037L24 18.3492h-2.9037v.9312h1.3884l-1.2699 3.327-1.5577-4.2582zm-17.2869.9312h.9313c.9271 0 1.5576.6735 1.5153 1.8117-.042 1.1804-.8425 1.8116-1.8116 1.8116h-.635Z\"},\"child\":[]}]})(props);\n};\nexport function SiDatocms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0H.076v24H12c5.964 0 11.924-5.373 11.924-11.998C23.924 5.376 17.963 0 12 0zm0 17.453a5.453 5.453 0 115.455-5.451A5.45 5.45 0 0112 17.452z\"},\"child\":[]}]})(props);\n};\nexport function SiDatto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9141 10.6406c-.4547-.3844-.8766-.5485-1.4531-.5485C1.0078 10.0922 0 11.2734 0 12.9844c0 1.7203 1.0313 2.9391 2.4938 2.9391.5484 0 1.0313-.1875 1.4156-.5625v.4312h1.1813V8.0578l-1.1766.0047v2.5781zm-.1313 3.4079c-.1641.4312-.6422.7359-1.1719.7359-.8344 0-1.3688-.689-1.3688-1.7578 0-1.1109.5391-1.8047 1.4063-1.8047.525 0 1.0313.3281 1.1578.7594.0704.2109.0938.5015.0938 1.1015 0 .4735-.0328.7688-.1172.9657zm6.5437-.1266v-2.0531c0-.6656-.0703-.9235-.3609-1.2281-.3375-.3656-.9609-.5625-1.7344-.5625-.7828 0-1.5703.1875-2.3297.5719l.4922.9468c.7828-.3375 1.1719-.4312 1.7109-.4312.7266 0 1.0219.2578 1.0313.8906v.1781c-.9468.0938-1.2656.1312-1.6406.1969-1.1953.2344-1.7578.7593-1.7578 1.65 0 1.0547.9141 1.8516 2.1188 1.8516.6422 0 1.1484-.2344 1.5093-.689.1172.3843.4313.6187.9609.689l.6-.9141c-.5437-.2203-.6-.3375-.6-1.0969zm-1.1953.1031c0 .3281-.0469.4547-.2109.5953-.2109.1875-.5718.3188-.8765.3188-.5719 0-1.0453-.375-1.0453-.8344 0-.375.2485-.5953.7969-.7266.3657-.0844.6656-.1172 1.3359-.1875v.8344zm5.2313.6328.15 1.0406c-.3844.1031-.8203.1641-1.1953.1641-1.1016 0-1.5328-.4547-1.5328-1.5938v-3.0469h-1.0172v-1.0172h1.0172V8.4844l1.1813-.4219v2.1422h1.4719v1.0172h-1.4672v2.6531c0 .6891.1406.8531.7266.8531.1967 0 .4218-.0234.6655-.0703zm4.0828 0 .15 1.0406c-.3844.1031-.8203.1641-1.1953.1641-1.1016 0-1.5328-.4547-1.5328-1.5938v-3.0469H14.85v-1.0172h1.0172V8.4844l1.1813-.4219v2.1422h1.4672v1.0172h-1.4672l.0046 2.6531c0 .6891.1406.8531.7266.8531.1969 0 .4218-.0234.6656-.0703zm2.8125-4.5937c-1.5563 0-2.6016 1.1859-2.6016 2.9625 0 1.7203 1.1016 2.9156 2.6953 2.9156 1.5609 0 2.6484-1.2047 2.6484-2.9156.0001-1.7532-1.1109-2.9625-2.7421-2.9625zm.0469 4.725c-.8672 0-1.4391-.7125-1.4391-1.7813s.5859-1.8047 1.4531-1.8047c.8438 0 1.4063.7172 1.4063 1.8047 0 1.0641-.5766 1.7813-1.4203 1.7813z\"},\"child\":[]}]})(props);\n};\nexport function SiDavinciresolve (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.621 0 5.977.004c-1.37 0-2.756.345-3.762 1.11a4.925 4.925 0 0 0-1.61 2.003C.233 3.93 0 5.02 0 5.951l.012 12.2c.002 1.604.479 3.057 1.461 4.112.984 1.056 2.462 1.683 4.331 1.691L16.856 24c1.26.005 3.095-.036 4.303-.714 1.075-.605 2.025-1.556 2.497-2.984.278-.84.345-2.084.344-3.147l-.021-11.13c-.002-.888-.15-2.023-.547-2.934-.425-.976-1.181-1.815-2.322-2.425C20.353.26 19.123 0 17.622 0zm0 .93c1.378 0 2.538.295 3.04.565.977.523 1.544 1.166 1.889 1.96.315.721.47 1.793.473 2.572l.018 11.13c.002 1.013-.097 2.257-.298 2.86-.396 1.202-1.146 1.946-2.063 2.462-.814.457-2.612.593-3.82.588l-11.05-.044c-1.657-.007-2.832-.534-3.626-1.386-.792-.851-1.212-2.06-1.212-3.485L.999 5.95c0-.829.196-1.827.474-2.437.345-.757.75-1.207 1.365-1.674C3.585 1.27 4.868.97 6.08.97zm-5.66 3.423c-1.976.089-3.204 1.658-3.214 3.29.019 1.443 1.635 3.481 2.884 4.53.12.099.154.109.33.18.062.025.198-.047.327-.135.36-.245.993-.947 1.648-1.738a7.67 7.67 0 0 0 1.031-1.683c.409-.89.261-1.599.235-1.888a3.983 3.983 0 0 0-.99-1.692 3.36 3.36 0 0 0-2.251-.864zm4.172 7.922a10.185 10.185 0 0 0-3.244.61c-.15.058-.26.1-.374.17-.057.036-.11.135-.105.292.017.433.29 1.278.624 2.27.384 1.135 1.066 2.27 1.844 2.74a3.23 3.23 0 0 0 2.53.342c.832-.243 1.595-.868 1.962-1.546.986-1.818.19-3.548-1.121-4.417-.447-.296-1.133-.445-1.89-.46-.074 0-.15-.002-.226-.001zm-8.432.038a6.201 6.201 0 0 0-.752.047c-.596.078-.932.273-1.29.51a3.177 3.177 0 0 0-1.365 1.979c-.075.552-.086 1.053.033 1.507.433 1.389 1.326 2.222 2.847 2.452.636.028 1.37-.063 1.99-.45 1.269-.782 2.08-3.17 2.412-4.742.053-.176.035-.357-.013-.42-.005-.067-.044-.113-.19-.183-.398-.192-1.32-.417-2.375-.6a7.68 7.68 0 0 0-1.297-.1z\"},\"child\":[]}]})(props);\n};\nexport function SiDazhongdianping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.922 0c-2.407 0-3.28.25-4.16.72A4.905 4.905 0 0 0 .72 2.763C.25 3.642 0 4.515 0 6.922v10.156c0 2.407.25 3.28.72 4.16.471.88 1.162 1.57 2.042 2.041.88.47 1.753.721 4.16.721h10.156c2.407 0 3.28-.25 4.16-.72a4.907 4.907 0 0 0 2.041-2.042c.471-.88.721-1.753.721-4.16V6.922c0-2.407-.25-3.28-.72-4.16A4.905 4.905 0 0 0 21.237.72C20.358.25 19.485 0 17.078 0H6.922zm3.139 2.703a3.07 3.07 0 0 1 3.07 3.07 3.07 3.07 0 0 1-3.07 3.07 3.07 3.07 0 0 1-3.07-3.07 3.07 3.07 0 0 1 3.07-3.07zm6.994 1.617c.145.66.195 1.35.13 2.057-.17 1.88-1.105 3.52-2.48 4.656 3.177.427 5.685 2.65 6.514 5.5.08.22.148.486.217.723l-2.688.685c-.06-.222-.127-.452-.19-.67-.751-2.622-3.55-4.172-6.273-3.466-2.718.704-4.338 3.391-3.642 6.021l.199.729-2.688.687c-.07-.247-.132-.512-.195-.754a7.38 7.38 0 0 1-.215-2.554c.199-2.2 1.345-4.1 3.014-5.36-2.634-.47-4.716-2.312-5.506-4.678l2.62-.677c.566 1.534 2.012 2.689 3.8 2.84 2.446.207 4.604-1.544 4.818-3.91.036-.394.013-.78-.056-1.151l2.62-.678z\"},\"child\":[]}]})(props);\n};\nexport function SiDazn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.774 8.291l.772-2.596.79 2.596zm3.848 2.268l-2.025-6.128c-.045-.135-.097-.224-.154-.266-.059-.041-.152-.063-.28-.063h-1.12a.485.485 0 0 0-.284.068c-.06.045-.11.132-.149.261l-2.045 6.128c-.025.032-.038.096-.038.192 0 .149.09.223.27.223h.84c.076 0 .139-.003.187-.01a.207.207 0 0 0 .116-.048.326.326 0 0 0 .077-.116c.022-.051.046-.119.072-.202l.318-1.071h2.306l.327 1.051c.026.09.051.16.077.213a.395.395 0 0 0 .087.12c.031.028.07.047.114.053h.002c.045.006.103.01.173.01h.897c.18 0 .27-.074.27-.223a.59.59 0 0 0-.005-.09.878.878 0 0 0-.036-.108l.003.006zm-.994 2.467h-.646c-.168 0-.279.024-.333.072-.055.049-.082.147-.082.295v3.638l-1.91-3.647c-.076-.155-.152-.253-.226-.295-.074-.041-.204-.063-.39-.063h-.599c-.167 0-.278.025-.332.073-.055.048-.082.147-.082.294v6.138c0 .148.025.246.077.294.052.048.16.072.328.072h.656c.167 0 .278-.024.332-.072.055-.048.082-.146.082-.294v-3.648l1.91 3.657c.077.155.152.253.227.295.073.042.204.062.39.062h.598c.167 0 .278-.024.333-.072.054-.048.082-.146.082-.294v-6.138c0-.148-.028-.246-.082-.294-.055-.048-.166-.073-.333-.073zm3.203-.581l1.665 1.665v8.385H1.505V14.11l1.663-1.664a.63.63 0 0 0 0-.89L1.504 9.891V1.505h20.991v8.384l-1.665 1.666a.63.63 0 0 0 0 .89zM24 0H0v10.613L1.387 12 0 13.387V24h24V13.387L22.613 12 24 10.613zM10.67 18.469H7.96l2.855-4.014a.67.67 0 0 0 .087-.155.425.425 0 0 0 .019-.135v-.772c0-.148-.028-.246-.082-.294-.055-.048-.166-.073-.334-.073H6.382c-.149 0-.245.028-.29.082-.045.055-.068.169-.068.343v.58c0 .172.023.287.068.341.045.055.141.083.29.083h2.545L6.11 18.469a.438.438 0 0 0-.107.27v.792c0 .148.027.245.082.294.055.048.167.072.334.072h4.25c.148 0 .245-.027.29-.081.045-.055.068-.17.068-.344v-.579c0-.173-.023-.287-.068-.342-.045-.055-.142-.082-.29-.082zM9.408 8.233c0 .264-.017.484-.052.661-.036.177-.093.32-.174.43a.648.648 0 0 1-.318.231 1.523 1.523 0 0 1-.487.068h-.79v-4.17h.79c.366 0 .63.11.79.324.16.215.241.571.241 1.067v1.389zm1.38-2.789c-.225-.457-.533-.795-.921-1.013-.39-.219-.88-.328-1.47-.328H6.418c-.167 0-.278.024-.333.072-.054.049-.082.147-.082.294v6.138c0 .148.028.246.082.295.055.048.166.072.333.072h2.218c1.048 0 1.765-.447 2.15-1.342.09-.205.153-.413.188-.622a4.91 4.91 0 0 0 .054-.796V6.911c0-.367-.018-.656-.054-.868a2.2 2.2 0 0 0-.193-.612l.006.013z\"},\"child\":[]}]})(props);\n};\nexport function SiDbeaver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.1113 0a3.283 3.283 0 0 0-1.746.5508 8.4362 8.4362 0 0 0-2.7481 2.543 6.7216 6.7216 0 0 1-1.3438 0c-.3202 0-.7887.209-.5742.9628.2146.7538.798 1.4973.75 1.9239a3.6987 3.6987 0 0 0-.0683.8047c-.2979.4714-1.6906 2.743-2.1133 4.5488 0 0 .7957-7.967-1.6446-9.33C5.1828.6406 3.219 1.7271 2.5625 3.5233c-1.4027 3.833.6752 9.8253 3.6055 14.6621 2.9302 4.837 5.7128 5.7083 7.6855 5.795 3.2985.1443 2.3385-.57 3.5235-.6407 1.1848-.0705 1.0116.6411 2.9843.3653 1.438-.2085 1.685-1.1705 1.1407-1.6035-.5445-.433-.3626-1.4832.1562-3.7188.5188-2.2356-.224-6.17-.746-7.1836-.522-1.0136-.4643-1.5298.0897-2.5273a6.2125 6.2125 0 0 0 .8497-2.5059 3.858 3.858 0 0 0 0-1.043.0703.0703 0 0 0 0-.0214v-.0508s-.3439 1.3752-1.0196 1.8691a9.8362 9.8362 0 0 0-.3203.2442c.0673-.2566.3209-1.34-.041-1.9239 0 0-.1508 2.4876-1.4766 2.6192-1.3258.1315-3.202-1.2243-3.7304-1.7696.0385.21.0682.268.1093.4297.044.1514.0957.2998.1563.4453.1857.5999.3837 1.5177.086 2.0918-.4644.911-1.4756 2.313-1.3731 4.3145a8.4896 8.4896 0 0 0 .8027 3.5273c.3907.988.4929 1.8995.416 2.0567-.0768.1571.027.9613-1.8144-.418-1.8414-1.3792-2.338-2.8066-2.338-2.8066a5.9008 5.9008 0 0 0-.3358 2.496 15.5107 15.5107 0 0 0 .7773 3.5606s-2.4149-1.9574-2.543-5.877c-.1217-3.602 1.986-7.7686 2.3223-8.4101.0652.1444.1618.2733.2832.375.1214.1016.2645.1743.418.2129 0 0-.9392-.5175-.254-2.5254.6854-2.0079 2.0667-3.7942 3.463-4.58a3.9939 3.9939 0 0 1 3.871-.1973A3.2807 3.2807 0 0 0 17.377.0059 3.2584 3.2584 0 0 0 17.1113 0Zm-1.3906 1.8652a1.1517 1.1517 0 0 0-.2207.0254c-.3523.077-.5402.49-.2969 1a.8232.8232 0 0 1 .0664.3614.8266.8266 0 0 1-.0957.3554 4.9858 4.9858 0 0 1 .9102-.7168 4.3949 4.3949 0 0 1 1.2168-.4394 1.4291 1.4291 0 0 1-.7246-.2207 1.1402 1.1402 0 0 0-.4922-.3125 1.1424 1.1424 0 0 0-.3633-.0528Zm4.8711.1739c-.5036 0-1.1723.1135-1.6875.3164a1.3396 1.3396 0 0 0-.7617.5625c-.2786.6415 1.4175 1.7047 2.0996 1.5058.3202-.093.7957-.7883 1.0039-1.3945.141-.433.1598-.8185-.0996-.918-.1311-.049-.3258-.0722-.5547-.0722zm.2246 5.33s-.3464 1.1811-.5898 1.7168c-.2114.4747-.2786.4357-.4356.4903a4.3875 4.3875 0 0 0 .1758-.664c.0929-.3914 0-.4942 0-.4942a4.1717 4.1717 0 0 1-.4629 1.2832 1.0077 1.0077 0 0 1-.6406.039c-.2594-.1058-.3047-1.3259-.3047-1.3964a2.5126 2.5126 0 0 0 1.2559-.1915 2.5196 2.5196 0 0 0 1.002-.7832Z\"},\"child\":[]}]})(props);\n};\nexport function SiDblp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.075.002c-.096.013-.154.092-.094.31L4.97 7.73 3.1 8.6s-.56.26-.4.85l2.45 9.159s.16.59.72.33l6.169-2.869 1.3-.61s.52-.24.42-.79l-.01-.06-1.13-4.22-.658-2.45-.672-2.49v-.04s-.16-.59-.84-1L3.5.141s-.265-.16-.425-.139zM18.324 5.03a.724.724 0 0 0-.193.06l-5.602 2.6.862 3.2 1.09 4.08.01.06c.05.47-.411.79-.411.79l-1.88.87.5 1.89.04.1c.07.17.28.6.81.91l6.95 4.269s.68.41.52-.17l-1.981-7.4 1.861-.86s.56-.26.4-.85L18.85 5.42s-.116-.452-.526-.39z\"},\"child\":[]}]})(props);\n};\nexport function SiDbt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.9004 9.3763a8.1488 8.1488 0 0 0-3.0421-3.1206l1.7708.8385a10.2874 10.2874 0 0 1 3.74 3.0007l3.234-5.9295a2.8546 2.8546 0 0 0-.0611-2.9604C22.7566.0371 21.2112-.3409 19.9754.3327l-5.8749 3.2101a4.3612 4.3612 0 0 1-4.1761 0L4.1769.408a2.8545 2.8545 0 0 0-2.9592.0632c-1.1673.7853-1.5452 2.33-.8723 3.5655L3.55 9.9106a4.3612 4.3612 0 0 1 0 4.1772l-3.1272 5.743a2.86 2.86 0 0 0 .085 2.9974c.794 1.1438 2.3225 1.5054 3.5448.8385l6.0581-3.3049a10.2877 10.2877 0 0 1-3.0051-3.7454l-.8374-1.7708a8.148 8.148 0 0 0 3.1206 3.0421l10.5832 5.779c1.2213.666 2.7481.3055 3.5426-.8363a2.8699 2.8699 0 0 0 .0796-3.0018L17.9004 9.3763zm3.3801-7.7351c.6022 0 1.0904.4882 1.0904 1.0904s-.4882 1.0904-1.0904 1.0904-1.0904-.4882-1.0904-1.0904.4882-1.0904 1.0904-1.0904zM2.7442 3.822c-.6022 0-1.0904-.4882-1.0904-1.0904s.4882-1.0904 1.0904-1.0904 1.0904.4882 1.0904 1.0904S3.3464 3.822 2.7442 3.822zm0 18.5363c-.6022 0-1.0904-.4882-1.0904-1.0904 0-.6022.4882-1.0904 1.0904-1.0904s1.0904.4882 1.0904 1.0904c0 .6022-.4882 1.0904-1.0904 1.0904zm10.3585-11.4489c-1.2008-.0035-2.177.9672-2.1805 2.1679a2.1738 2.1738 0 0 0 .7052 1.6091c-1.4872-.2091-2.5234-1.5843-2.3142-3.0716.2091-1.4872 1.5843-2.5234 3.0716-2.3142a2.7194 2.7194 0 0 1 2.3142 2.3142 2.1623 2.1623 0 0 0-1.5963-.7054zm8.1778 11.4489c-.6022 0-1.0904-.4882-1.0904-1.0904 0-.6022.4882-1.0904 1.0904-1.0904s1.0904.4882 1.0904 1.0904c0 .6022-.4882 1.0904-1.0904 1.0904z\"},\"child\":[]}]})(props);\n};\nexport function SiDcentertainment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.215 8.787h2.154c.601 0 1.088.487 1.088 1.088v4.954c0 .6-.487 1.088-1.088 1.088H6.05V9.475a.159.159 0 00-.066-.129zM12 23.099a11.078 11.078 0 01-8.659-4.155.046.046 0 01.036-.074h5.936a.26.26 0 00.153-.05l2.27-1.648a.159.159 0 00.064-.128V7.616a.159.159 0 00-.065-.129L9.466 5.84a.261.261 0 00-.153-.05H2.886a.046.046 0 01-.037-.071A11.087 11.087 0 0112 .9c3.798 0 7.15 1.907 9.151 4.817a.046.046 0 01-.038.071h-1.597c-.052 0-.1.03-.123.079l-.353.757-1.082-.786a.26.26 0 00-.153-.05h-2.553a.261.261 0 00-.154.05L12.83 7.487a.159.159 0 00-.065.129v9.428c0 .05.024.098.065.128l2.27 1.648a.26.26 0 00.153.05h5.371c.038 0 .06.045.036.074A11.078 11.078 0 0112 23.1zM1.602 8.3l1.038.755c.043.03.068.08.068.132v8.73c0 .046-.06.063-.084.025A11.046 11.046 0 01.901 12c0-1.289.22-2.526.624-3.677a.05.05 0 01.077-.024zm13.67.488h3.225v1.776c0 .046.038.084.084.084h2.701a.098.098 0 00.096-.083l.535-3.374c.007-.044.066-.053.086-.013a11.053 11.053 0 011.1 4.823 11.05 11.05 0 01-1.39 5.382c-.022.04-.084.024-.084-.023v-3.084a.084.084 0 00-.084-.084h-2.96a.084.084 0 00-.084.084v1.642h-1.301a1.089 1.089 0 01-1.089-1.088V9.475a.159.159 0 00-.065-.129zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiDebian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.88 12.685c-.4 0 .08.2.601.28.14-.1.27-.22.39-.33a3.001 3.001 0 01-.99.05m2.14-.53c.23-.33.4-.69.47-1.06-.06.27-.2.5-.33.73-.75.47-.07-.27 0-.56-.8 1.01-.11.6-.14.89m.781-2.05c.05-.721-.14-.501-.2-.221.07.04.13.5.2.22M12.38.31c.2.04.45.07.42.12.23-.05.28-.1-.43-.12m.43.12l-.15.03.14-.01V.43m6.633 9.944c.02.64-.2.95-.38 1.5l-.35.181c-.28.54.03.35-.17.78-.44.39-1.34 1.22-1.62 1.301-.201 0 .14-.25.19-.34-.591.4-.481.6-1.371.85l-.03-.06c-2.221 1.04-5.303-1.02-5.253-3.842-.03.17-.07.13-.12.2a3.551 3.552 0 012.001-3.501 3.361 3.362 0 013.732.48 3.341 3.342 0 00-2.721-1.3c-1.18.01-2.281.76-2.651 1.57-.6.38-.67 1.47-.93 1.661-.361 2.601.66 3.722 2.38 5.042.27.19.08.21.12.35a4.702 4.702 0 01-1.53-1.16c.23.33.47.66.8.91-.55-.18-1.27-1.3-1.48-1.35.93 1.66 3.78 2.921 5.261 2.3a6.203 6.203 0 01-2.33-.28c-.33-.16-.77-.51-.7-.57a5.802 5.803 0 005.902-.84c.44-.35.93-.94 1.07-.95-.2.32.04.16-.12.44.44-.72-.2-.3.46-1.24l.24.33c-.09-.6.74-1.321.66-2.262.19-.3.2.3 0 .97.29-.74.08-.85.15-1.46.08.2.18.42.23.63-.18-.7.2-1.2.28-1.6-.09-.05-.28.3-.32-.53 0-.37.1-.2.14-.28-.08-.05-.26-.32-.38-.861.08-.13.22.33.34.34-.08-.42-.2-.75-.2-1.08-.34-.68-.12.1-.4-.3-.34-1.091.3-.25.34-.74.54.77.84 1.96.981 2.46-.1-.6-.28-1.2-.49-1.76.16.07-.26-1.241.21-.37A7.823 7.824 0 0017.702 1.6c.18.17.42.39.33.42-.75-.45-.62-.48-.73-.67-.61-.25-.65.02-1.06 0C15.082.73 14.862.8 13.8.4l.05.23c-.77-.25-.9.1-1.73 0-.05-.04.27-.14.53-.18-.741.1-.701-.14-1.431.03.17-.13.36-.21.55-.32-.6.04-1.44.35-1.18.07C9.6.68 7.847 1.3 6.867 2.22L6.838 2c-.45.54-1.96 1.611-2.08 2.311l-.131.03c-.23.4-.38.85-.57 1.261-.3.52-.45.2-.4.28-.6 1.22-.9 2.251-1.16 3.102.18.27 0 1.65.07 2.76-.3 5.463 3.84 10.776 8.363 12.006.67.23 1.65.23 2.49.25-.99-.28-1.12-.15-2.08-.49-.7-.32-.85-.7-1.34-1.13l.2.35c-.971-.34-.57-.42-1.361-.67l.21-.27c-.31-.03-.83-.53-.97-.81l-.34.01c-.41-.501-.63-.871-.61-1.161l-.111.2c-.13-.21-1.52-1.901-.8-1.511-.13-.12-.31-.2-.5-.55l.14-.17c-.35-.44-.64-1.02-.62-1.2.2.24.32.3.45.33-.88-2.172-.93-.12-1.601-2.202l.15-.02c-.1-.16-.18-.34-.26-.51l.06-.6c-.63-.74-.18-3.102-.09-4.402.07-.54.53-1.1.88-1.981l-.21-.04c.4-.71 2.341-2.872 3.241-2.761.43-.55-.09 0-.18-.14.96-.991 1.26-.7 1.901-.88.7-.401-.6.16-.27-.151 1.2-.3.85-.7 2.421-.85.16.1-.39.14-.52.26 1-.49 3.151-.37 4.562.27 1.63.77 3.461 3.011 3.531 5.132l.08.02c-.04.85.13 1.821-.17 2.711l.2-.42M9.54 13.236l-.05.28c.26.35.47.73.8 1.01-.24-.47-.42-.66-.75-1.3m.62-.02c-.14-.15-.22-.34-.31-.52.08.32.26.6.43.88l-.12-.36m10.945-2.382l-.07.15c-.1.76-.34 1.511-.69 2.212.4-.73.65-1.541.75-2.362M12.45.12c.27-.1.66-.05.95-.12-.37.03-.74.05-1.1.1l.15.02M3.006 5.142c.07.57-.43.8.11.42.3-.66-.11-.18-.1-.42m-.64 2.661c.12-.39.15-.62.2-.84-.35.44-.17.53-.2.83\"},\"child\":[]}]})(props);\n};\nexport function SiDebridlink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.225 5.549 0 5.778v2.484l.253.25h2.912c3.16 0 3.252.003 3.75.146 1.053.3 1.658 1.022 1.893 2.256.052.27.059.395.06 1.034 0 .635-.008.766-.058 1.044-.256 1.401-.98 2.149-2.308 2.382-.252.045-.446.05-2.14.05H2.497l-.013-2.335-.014-2.335-.222-.207H.227L0 10.769v7.379l.253.249h2.774c1.526-.001 2.96-.013 3.184-.027 1.906-.117 3.257-.803 4.114-2.09.512-.77.81-1.654.98-2.905.06-.456.07-2.266.012-2.736-.141-1.158-.44-2.1-.9-2.84-.67-1.077-1.743-1.81-3.056-2.087-.708-.15-.514-.142-3.951-.153Zm12.614.002-.233.232.01 4.94c.008 4.933.008 4.938.065 5.229.086.439.155.66.298.96.394.828.996 1.27 2.008 1.475.206.042.581.047 4.491.055l4.267.01L24 18.2v-2.489l-.24-.236-3.878-.013-3.878-.013-.152-.062a1.03 1.03 0 0 1-.601-.605c-.133-.35-.13-.258-.131-4.775l-.001-4.226-.23-.23h-1.026z\"},\"child\":[]}]})(props);\n};\nexport function SiDecapcms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.947 13.177c0 3.263-2 5.649-4.736 5.649h-2.773v-5.65H6.282v10.387h7.93c5.403 0 9.788-4.668 9.788-10.386h-5.052ZM7.894.476 0 1.212l.948 10.352 5.157-.456-.526-5.615 2.737-.245c2.737-.246 4.91 1.93 5.227 5.193l5.052-.458c-.49-5.752-5.297-9.998-10.7-9.507Z\"},\"child\":[]}]})(props);\n};\nexport function SiDecentraland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.9246 18.9776h3.1342l-3.1342-3.7778Zm-8.507-9.4221v6.6221h5.5072ZM12.0442 0C5.4177 0 0 5.3333 0 11.9555c0 1.4666.2687 2.8888.7612 4.1777l4.6565-5.5555L8.104 7.3333l6.537 7.8221 1.8805-2.2666 4.9252 5.8666h.403c1.388-1.9555 2.1491-4.311 2.1491-6.8444C24.0885 5.3333 18.6708 0 12.0442 0ZM8.0593 6.2666c-.9402 0-1.6566-.7555-1.6566-1.6444 0-.8889.7612-1.6444 1.6566-1.6444.9403 0 1.6567.7555 1.6567 1.6444 0 .8889-.7164 1.6444-1.6567 1.6444zm8.731 5.3777c-1.8358 0-3.3133-1.4666-3.3133-3.2888 0-1.8222 1.4775-3.2889 3.3133-3.2889 1.8357 0 3.3133 1.4667 3.3133 3.2889.0447 1.8222-1.4776 3.2888-3.3133 3.2888zm-3.985 5.7334H1.1642c.2686.5333.582 1.0222.8955 1.511h9.4473ZM4.4776 21.422h14.9993c.4925-.4 1.0298-.8889 1.3432-1.2444H3.1343c.4477.4444.8954.8889 1.3432 1.2444zm7.5668 2.5777c1.97 0 3.8506-.4444 5.5072-1.2889H6.5371C8.1937 23.5554 10.0295 24 12.0443 24z\"},\"child\":[]}]})(props);\n};\nexport function SiDedge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.986 0v8.338C16.09 2.93 7.61 2.8 3.74 8.733-.523 15.27 4.191 23.99 11.996 24h.001c5.447-.003 9.872-4.43 9.87-9.877V0Zm-7.99 6.14a8.004 8.004 0 0 1 7.99 7.988 7.986 7.986 0 0 1-4.93 7.381 7.986 7.986 0 0 1-8.707-1.73 7.985 7.985 0 0 1-1.733-8.707 7.986 7.986 0 0 1 7.38-4.932Z\"},\"child\":[]}]})(props);\n};\nexport function SiDeepcool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12v3.046H3.046V6h6V0H12v9.046H6.092V12H12Zm8.954 3.046V18h-5.908v6H12v-8.954h8.954Z\"},\"child\":[]}]})(props);\n};\nexport function SiDeepgram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.203 24H1.517a.364.364 0 0 1-.258-.62l6.239-6.275a.366.366 0 0 1 .259-.108h3.52c2.723 0 5.025-2.127 5.107-4.845a5.004 5.004 0 0 0-4.999-5.148H7.613v4.646c0 .2-.164.364-.365.364H.968a.365.365 0 0 1-.363-.364V.364C.605.164.768 0 .969 0h10.416c6.684 0 12.111 5.485 12.01 12.187C23.293 18.77 17.794 24 11.202 24z\"},\"child\":[]}]})(props);\n};\nexport function SiDeepin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.104.696c-1.724-.63-3.49-.8-5.205-.64-1.988.157-2.958.772-2.9.661-3.251 1.16-6 3.657-7.272 7.157-2.266 6.234.944 13.128 7.168 15.398 6.228 2.27 13.111-.945 15.378-7.179C25.54 9.86 22.33 2.966 16.104.696zM8.305 22.145a10.767 10.767 0 0 1-1.867-.904c2.9.223 6.686-.445 9.239-2.834 0 0 4.866-3.888 1.345-10.269 0 0 .568 2.572-.156 4.687 0 0-.69 2.877-3.757 3.712-4.517 1.231-9.664-1.93-11.816-3.463-.162-1.574-.018-3.2.56-4.788.855-2.352 2.463-4.188 4.427-5.42-.49 3.436-.102 6.6.456 7.925.749 1.777 2.05 3.85 4.59 4.115 2.54.267 3.94-2.11 3.94-2.11 1.304-1.98 1.508-4.823 1.488-4.892-.02-.07-.347-.257-.347-.257-.877 3.549-2.323 4.734-2.323 4.734-2.28 2.201-3.895.675-3.895.675-1.736-1.865-.52-4.895-.52-4.895.68-2.064 2.66-5.084 4.905-6.62.374.092.75.15 1.12.284a10.712 10.712 0 0 1 3.554 2.16c-1.641.599-4.291 1.865-4.291 1.865-4.201 1.77-4.485 4.446-4.485 4.446-.435 2.758 1.754 1.59 1.754 1.59 2.252-1.097 3.359-4.516 3.359-4.516-.703-.134-1.257.08-1.257.08-.899 2.22-2.733 3.132-2.733 3.132-.722.382-.89-.293-.89-.293-.122-.506.522-.592.522-.592 1-.389 1.639-1.439 1.784-1.868.144-.43.412-.464.412-.464a12.998 12.998 0 0 1 2.619-.535c1.7-.209 4.303.602 4.303.602.584.235 1.144.41 1.641.551.954 2.384 1.105 5.098.16 7.7-2.039 5.61-8.236 8.504-13.841 6.462z\"},\"child\":[]}]})(props);\n};\nexport function SiDeepl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.907 4.93953 12.68543.18573a1.3577 1.3577 0 0 0-1.3709 0L3.09298 4.9565a1.3766 1.3766 0 0 0-.68639 1.18233v9.52646a1.3766 1.3766 0 0 0 .68639 1.19363l8.22157 4.75946.06223.03583 4.04856 2.3458-.01131-2.06106.0075-1.1446.0038.01885v-.38467c0-.23006.1188-.43371.29605-.56005l.264-.15086.12633-.06977h-.0075l4.80283-2.7795a1.3803 1.3803 0 0 0 .68639-1.19551V6.13505a1.3803 1.3803 0 0 0-.68642-1.19552m-9.85269 9.68863a1.4275 1.4275 0 0 1-.39976 1.3841 1.4086 1.4086 0 0 1-1.97054 0 1.4199 1.4199 0 0 1 0-2.06294 1.4086 1.4086 0 0 1 2.0422.07543l3.32822-1.91585.6864.38656zm5.77019-2.41367a1.4086 1.4086 0 0 1-1.97054 0 1.4256 1.4256 0 0 1-.3696-1.47837l-.0132.0075-3.7525-2.1723-.05657.05656a1.4086 1.4086 0 0 1-1.97053 0 1.4199 1.4199 0 0 1 0-2.06293 1.4086 1.4086 0 0 1 1.97242 0c.3941.37713.52422.91832.39033 1.40672l3.7808 2.20059.01886-.01886a1.4086 1.4086 0 0 1 1.97242 0 1.42746 1.42746 0 0 1 0 2.06105z\"},\"child\":[]}]})(props);\n};\nexport function SiDeepnote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.22 11.506l.111.018c-.038-.006-.075-.011-.111-.018zm4.475 8.073c.636-2.816-2.172-4.8-6.955-4.814L.713 24h9.586c.132-.025.256-.056.384-.085 2.258-1.057 3.598-2.501 4.012-4.336zM10.299 24h.203l.021-.01c-.075.003-.148.008-.224.01zM24 11.319C24 3.15 18.711-.597 8.134.077L0 11.319h7.568c3.323 0 8.457.719 8.457 6.153 0 3.622-1.909 5.798-5.727 6.528.099-.003.194-.009.291-.013l-.011.001-.076.012h.912l.247-.077C19.885 23.27 24 19.07 24 11.319z\"},\"child\":[]}]})(props);\n};\nexport function SiDelicious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12H0v12h12V12zM24 0H12v12h12V0z\"},\"child\":[]}]})(props);\n};\nexport function SiDeliveroo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.861 0l-1.127 10.584L13.81 1.66 7.777 2.926l1.924 8.922-8.695 1.822 1.535 7.127L17.832 24l3.498-7.744L22.994.636 16.861 0zM11.39 13.61a.755.755 0 01.322.066c.208.093.56.29.63.592.103.434.004.799-.312 1.084v.002c-.315.284-.732.258-1.174.113-.441-.145-.637-.672-.47-1.309.124-.473.71-.544 1.004-.549zm4.142.548c.447-.012.832.186 1.05.543.217.357.107.75-.122 1.143h-.002c-.229.392-.83.445-1.422.16-.399-.193-.397-.684-.353-.983a.922.922 0 01.193-.447c.142-.177.381-.408.656-.416Z\"},\"child\":[]}]})(props);\n};\nexport function SiDell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.963 14.6V9.324h1.222v4.204h2.14v1.07h-3.362zm-9.784-3.288l2.98-2.292c.281.228.56.458.841.687l-2.827 2.14.611.535 2.827-2.216c.281.228.56.458.841.688a295.83 295.83 0 0 1-2.827 2.216l.61.536 2.83-2.295-.001-1.986h1.223v4.204h2.216v1.07h-3.362v-1.987c-.995.763-1.987 1.529-2.981 2.292l-2.981-2.292c-.144.729-.653 1.36-1.312 1.694-.285.147-.597.24-.915.276-.183.022-.367.017-.551.017H3.516V9.325H5.69a2.544 2.544 0 0 1 1.563.557c.454.36.778.872.927 1.43m-3.516-.917v3.21l.953-.001a1.377 1.377 0 0 0 1.036-.523 1.74 1.74 0 0 0 .182-1.889 1.494 1.494 0 0 0-.976-.766c-.166-.04-.338-.03-.507-.032h-.688zM11.82 0h.337a11.94 11.94 0 0 1 5.405 1.373 12.101 12.101 0 0 1 4.126 3.557A11.93 11.93 0 0 1 24 11.82v.36a11.963 11.963 0 0 1-3.236 8.033A11.967 11.967 0 0 1 12.182 24h-.361a11.993 11.993 0 0 1-4.145-.806 12.04 12.04 0 0 1-4.274-2.836A12.057 12.057 0 0 1 .576 15.67 12.006 12.006 0 0 1 0 12.181v-.361a11.924 11.924 0 0 1 1.992-6.396 12.211 12.211 0 0 1 4.71-4.172A11.875 11.875 0 0 1 11.82 0m-.153 1.23a10.724 10.724 0 0 0-6.43 2.375 10.78 10.78 0 0 0-3.319 4.573 10.858 10.858 0 0 0 .193 8.12 10.788 10.788 0 0 0 3.546 4.421 10.698 10.698 0 0 0 4.786 1.946c1.456.209 2.955.124 4.376-.26a10.756 10.756 0 0 0 5.075-3.062 10.742 10.742 0 0 0 2.686-5.28 10.915 10.915 0 0 0-.122-4.682 10.77 10.77 0 0 0-7.098-7.626 10.78 10.78 0 0 0-3.693-.525z\"},\"child\":[]}]})(props);\n};\nexport function SiDelonghi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.16 8.158H3.841A3.85 3.85 0 000 11.999a3.848 3.848 0 003.841 3.843H20.16A3.844 3.844 0 0024 11.999a3.846 3.846 0 00-3.84-3.841zm-.051 7.409H3.885A3.564 3.564 0 01.319 12a3.564 3.564 0 013.566-3.571h16.224A3.566 3.566 0 0123.68 12a3.564 3.564 0 01-3.571 3.567zm-3.84-3.864c.084 0 .142.013.177.043v1.034a.836.836 0 01-.177.043c-.062-.003-.107-.03-.133-.084a.671.671 0 01-.036-.252v-.544c0-.16.059-.24.169-.24zm-4.635.137v.829a.392.392 0 01-.036.195c-.026.035-.066.053-.119.053-.053 0-.097-.017-.124-.049-.023-.035-.036-.102-.036-.198V11.84c0-.147.053-.217.155-.217.107 0 .16.07.16.217zm-4.9-.062a.802.802 0 01.014.159h-.346c0-.062.005-.115.014-.164 0-.022.008-.044.013-.066.018-.058.067-.084.137-.084.08 0 .129.026.151.084.004.022.013.044.017.071zM4.24 11.02c.045.039.067.119.067.234v1.224c0 .115-.018.191-.054.226a.287.287 0 01-.177.062h-.12v-1.803h.08c.093 0 .16.018.204.057zm15.892-1.723H3.881a2.71 2.71 0 00-2.702 2.702 2.712 2.712 0 002.702 2.703h16.243a2.71 2.71 0 002.697-2.703c0-1.475-1.192-2.702-2.689-2.702zM5.676 10.574H7.55v.248H5.676v-.248zm-.39 1.288v.7c0 .15-.028.292-.085.42a.668.668 0 01-.302.325c-.142.084-.336.127-.58.127H2.84v-.562c.057-.023.093-.058.107-.103a.665.665 0 00.022-.185v-1.48a.488.488 0 00-.026-.181c-.013-.04-.049-.071-.102-.093v-.557h1.48c.222 0 .403.03.544.096.142.063.253.16.32.289.066.133.103.298.103.492v.712zm2.295.625H6.402v.209a.5.5 0 00.027.181c.023.044.067.072.137.072.071 0 .116-.023.133-.067a.469.469 0 00.031-.177v-.085h.851v.568c-.084.079-.226.15-.429.212a1.98 1.98 0 01-1.193 0 .597.597 0 01-.324-.27.934.934 0 01-.097-.456v-.895a.905.905 0 01.128-.417.581.581 0 01.329-.221c.146-.039.336-.062.571-.062.222 0 .399.018.537.057a.729.729 0 01.306.172c.07.076.115.159.137.254.013.066.027.137.031.217.005.039.005.084.005.127v.581zm2.644.947H7.922v-.562c.076-.045.111-.124.111-.239V11.059c0-.11-.036-.185-.111-.23v-.557h1.205v.557a.21.21 0 00-.088.107.575.575 0 00-.031.19.826.826 0 01.008.123v1.516h.124c.093-.009.155-.035.181-.089a.581.581 0 00.041-.252v-.522h.863v1.532zm2.274-1.165v.416a.909.909 0 01-.107.47.602.602 0 01-.319.258 1.58 1.58 0 01-.549.079c-.271-.005-.483-.031-.634-.084a.565.565 0 01-.332-.257c-.067-.119-.102-.279-.102-.487V11.853a.89.89 0 01.094-.434c.057-.116.164-.2.314-.258.151-.058.355-.084.611-.084.249 0 .448.026.594.071a.584.584 0 01.324.239c.071.115.107.274.107.479v.403zm2.499 1.165h-.922a1.142 1.142 0 01-.031-.225 2.403 2.403 0 01-.014-.235c-.004-.075-.004-.168-.004-.279v-.775a.195.195 0 00-.204-.204c-.04 0-.08.011-.11.023v.878c0 .088.004.153.013.195.013.039.04.075.088.106v.518h-1.076v-.518a.226.226 0 00.093-.096.414.414 0 00.017-.143v-.771a.59.59 0 00-.017-.172.242.242 0 00-.093-.102v-.528h.935v.151c.194-.137.389-.208.584-.208.182.005.319.044.412.119.094.076.155.16.181.253a.95.95 0 01.041.265v1.001c0 .053.009.098.018.137a.176.176 0 00.089.09v.52zm2.419-1.807a.187.187 0 00-.094.102.7.7 0 00-.017.164V13.487c0 .201-.027.368-.08.496a.597.597 0 01-.305.299c-.156.067-.373.101-.656.101a2.109 2.109 0 01-.492-.062 1.66 1.66 0 01-.47-.2v-.571h.797c0 .172.059.256.178.256.075-.003.12-.034.138-.088a.837.837 0 00.03-.234v-.169a.926.926 0 01-.527.159c-.235-.003-.408-.066-.518-.191-.106-.123-.164-.296-.164-.518v-.899c0-.244.048-.44.147-.581.094-.138.28-.209.545-.209.092 0 .19.013.288.045a.738.738 0 01.253.124v-.142h.949v.524zm2.503 1.807h-.917a4.698 4.698 0 01-.053-.553c.009-.066.009-.159.009-.274v-.643a.257.257 0 00-.062-.172.21.21 0 00-.155-.076.275.275 0 00-.097.023v.966c0 .111.031.186.097.213v.518H17.67v-.518a.225.225 0 00.093-.102.668.668 0 00.017-.187v-1.515c0-.195-.039-.307-.119-.324v-.517h.983v.947a.82.82 0 01.266-.128.863.863 0 01.27-.044.77.77 0 01.452.146c.124.094.19.253.19.483v.896a.431.431 0 01-.008.075.645.645 0 00.026.181c.009.032.04.062.08.085v.52zm.389-3.091a.526.526 0 01.328-.102c.084 0 .164.017.234.045a.36.36 0 01.173.124.294.294 0 01.067.19v.008a.317.317 0 01-.063.191.46.46 0 01-.172.124.675.675 0 01-.24.04.504.504 0 01-.323-.098.324.324 0 01-.004-.522zm.913 3.091h-1.081v-.518c.053-.035.084-.067.092-.106a.628.628 0 00.018-.183v-.743a.522.522 0 00-.018-.159.162.162 0 00-.092-.099v-.523h.974v1.604c0 .103.036.169.106.209v.518z\"},\"child\":[]}]})(props);\n};\nexport function SiDelphi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.922 10.66a11.925 11.925 0 0 0-1.93-5.299 12.002 12.002 0 0 0-1.362-1.692A11.993 11.993 0 0 0 15.271.455a11.916 11.916 0 0 0-2.88-.444c-.237-.005-.474-.015-.71-.004-.345.016-.69.036-1.033.077-.385.046-.77.108-1.15.182a11.947 11.947 0 0 0-4.906 2.297A12.012 12.012 0 0 0 .394 8.94a11.886 11.886 0 0 0-.393 2.883c-.009.51.016 1.019.073 1.526a11.954 11.954 0 0 0 3.103 6.79 11.982 11.982 0 0 0 8.442 3.858c.013 0 .818-.002.868-.004.518-.02 1.032-.076 1.543-.162a11.947 11.947 0 0 0 6.173-3.072 11.975 11.975 0 0 0 3.667-7.028c.053-.406.087-.815.113-1.224.038-.617.006-1.234-.062-1.848zM4.5 11.777c-.052.3-.094.601-.097.906-.003.253-.005.506.004.76.005.148.031.297.051.445.033.252-.067.455-.297.56a.473.473 0 0 1-.227.035c-.217-.019-.433-.05-.65-.077-.073-.01-.147-.017-.22-.03-.017-.003-.04-.025-.042-.041-.041-.249-.086-.497-.115-.747-.024-.206-.03-.413-.043-.62-.006-.118-.014-.236-.013-.355.002-.197.005-.394.017-.59.014-.218.034-.436.06-.653.02-.177.045-.355.083-.529.062-.29.134-.579.207-.867.07-.275.162-.542.273-.804.08-.187.15-.377.235-.56.09-.195.188-.387.295-.573.12-.21.251-.414.382-.619.083-.13.17-.259.26-.384.074-.102.155-.197.234-.295.072-.088.142-.178.217-.263a7.6 7.6 0 0 1 .25-.274c.123-.128.247-.254.373-.378.087-.085.176-.17.27-.248.173-.145.346-.293.528-.427.227-.168.46-.329.697-.483.186-.12.375-.235.572-.336.253-.129.513-.244.773-.359.159-.07.321-.133.486-.19a11.02 11.02 0 0 1 1.312-.359c.279-.05.56-.086.841-.12.194-.023.39-.042.586-.044.312-.003.625-.004.936.019.342.024.683.07 1.023.118.182.026.362.071.54.117.288.075.578.146.86.24.246.08.487.182.724.288.26.116.513.245.767.374.107.054.21.118.311.183.195.124.392.246.58.38.189.135.368.282.55.424.016.012.03.026.05.045-.165.109-.325.211-.481.318-.168.116-.334.235-.5.353-.105.073-.211.145-.315.219-.13.092-.258.187-.387.28l-.45.321c-.11.08-.218.162-.327.243-.129.096-.26.19-.387.288-.217.167-.443.138-.643.003a6.527 6.527 0 0 0-1.757-.83 5.884 5.884 0 0 0-1.33-.246c-.19-.013-.381-.018-.572-.025a4.367 4.367 0 0 0-.792.047 23.89 23.89 0 0 0-.62.105 5.084 5.084 0 0 0-.795.225 6.08 6.08 0 0 0-.527.218 7.22 7.22 0 0 0-.574.294c-.178.103-.347.222-.516.339-.108.073-.214.15-.313.233-.149.124-.292.255-.435.385-.26.235-.486.5-.697.778-.132.174-.25.36-.368.545a5.76 5.76 0 0 0-.489.967 6.298 6.298 0 0 0-.368 1.271zm13.278 5.496c-.175-.122-.353-.242-.527-.366a.5.5 0 0 1-.154-.237l-.222-.55-.21-.532c-.07-.17-.141-.34-.21-.512-.071-.176-.137-.355-.213-.53-.088-.204-.14-.427-.28-.606a4.738 4.738 0 0 0-.288-.337 2.613 2.613 0 0 0-.498-.413c-.14-.09-.298-.12-.457-.148-.449-.081-.896-.166-1.345-.248l-1.368-.246c-.39-.07-.78-.137-1.166-.218-.258-.054-.494.162-.518.407-.023.246.167.456.375.508.56.141 1.118.293 1.677.442.662.175 1.324.347 1.984.527.22.06.416.173.597.313.22.17.4.375.53.62.084.163.151.336.22.506.071.177.14.355.202.534.093.268.182.537.27.806.055.164.11.328.16.492.075.237.147.475.22.712.05.163.099.327.147.49l.184.638c.048.164.098.327.144.492.07.242.14.485.204.729.033.126-.065.268-.2.287-.273.038-.547.07-.821.104-.182.023-.364.043-.546.063l-.66.07c-.28.029-.558.06-.837.09-.118.012-.236.03-.355.028a1.03 1.03 0 0 1-.688-.261c-.144-.126-.223-.292-.316-.451-.078-.135-.152-.272-.235-.403a12.841 12.841 0 0 0-.398-.602c-.134-.187-.28-.365-.423-.544a6.035 6.035 0 0 0-.229-.265 6.95 6.95 0 0 0-.757-.737 8.876 8.876 0 0 0-.641-.488 5.608 5.608 0 0 0-1.755-.803c-.436-.112-.878-.195-1.333-.187a3.542 3.542 0 0 0-.678.07c-.16.034-.309.022-.441-.089-.073-.06-.104-.144-.146-.223-.017-.032-.027-.068-.044-.109.072-.02.143-.042.216-.058a1.93 1.93 0 0 1 .227-.042c.195-.023.39-.053.584-.058.281-.007.564-.01.844.012a7.816 7.816 0 0 1 1.592.321c.24.076.473.175.704.274.387.166.727.407 1.051.673.214.175.419.36.603.567.225.252.449.506.66.77.15.186.282.389.419.587.228.332.43.681.62 1.037.048.089.093.18.133.272.064.153.199.2.341.183l.572-.07.7-.08c.27-.028.54-.054.81-.084.208-.024.416-.05.624-.08.117-.018.202-.132.208-.254.006-.108-.045-.2-.077-.296-.089-.272-.184-.542-.276-.813-.09-.263-.177-.525-.266-.787-.092-.276-.183-.551-.277-.826-.064-.188-.131-.375-.196-.563-.054-.156-.104-.312-.16-.467-.067-.186-.137-.37-.208-.555-.037-.096-.074-.192-.12-.284a1.22 1.22 0 0 0-.482-.514c-.2-.12-.424-.159-.641-.22-.64-.18-1.28-.356-1.92-.533l-.825-.23c-.218-.06-.435-.129-.657-.177-.259-.057-.433-.212-.57-.427a1.32 1.32 0 0 1-.202-.583.867.867 0 0 1 .12-.546.919.919 0 0 1 .44-.382.7.7 0 0 1 .411-.041c.322.06.645.112.968.168.227.04.454.083.681.121.268.045.536.086.803.13.193.032.386.067.579.1.224.037.448.072.671.11.195.034.389.073.584.103.126.019.249.042.362.102.054.029.11.06.156.1.163.146.326.295.484.447.141.136.279.276.413.42a.945.945 0 0 1 .217.392c.033.115.077.227.117.34l.167.471.212.595c.062.178.122.356.185.534l.176.497.188.544.093.268-.013.01zm.708.363a3.104 3.104 0 0 1-.37-.169c-.03-.016-.039-.076-.054-.117-.07-.197-.138-.395-.206-.592l-.23-.664-.23-.653c-.094-.267-.185-.534-.279-.8a78.3 78.3 0 0 0-.2-.565c-.037-.101-.073-.203-.113-.304-.063-.161-.179-.285-.296-.407-.1-.104-.199-.209-.304-.306a18.166 18.166 0 0 0-.605-.537c-.149-.125-.334-.167-.522-.197a66.347 66.347 0 0 1-.603-.098c-.247-.04-.493-.083-.739-.125l-.665-.113-1.026-.172c-.279-.048-.557-.098-.836-.145-.197-.033-.393-.075-.591-.089-.11-.007-.226.026-.335.056a.939.939 0 0 0-.395.235c-.118.113-.21.247-.272.402-.12.306-.101.606.007.909.071.197.173.376.317.528.142.15.307.258.513.306.248.058.493.129.74.196.44.12.881.24 1.322.362l.842.233.841.235c.266.074.48.224.621.46.07.118.117.252.168.382.062.156.119.315.175.474.079.224.156.45.233.675l.194.567.163.489.167.477.19.562.278.816c.01.03.021.058.028.088.01.042-.015.066-.052.07-.167.02-.335.035-.503.054-.084.01-.169.023-.253.032-.177.02-.355.037-.532.058-.189.021-.377.046-.566.068l-.726.082a.5.5 0 0 1-.122.005.085.085 0 0 1-.057-.037c-.068-.127-.129-.257-.198-.382a12.05 12.05 0 0 0-.733-1.196 10.987 10.987 0 0 0-.99-1.204 7.197 7.197 0 0 0-.595-.552 5.461 5.461 0 0 0-.628-.452 3.313 3.313 0 0 0-.704-.345c-.288-.093-.568-.21-.859-.29-.288-.077-.586-.116-.879-.177-.277-.057-.558-.056-.838-.072-.125-.007-.251.003-.377.01-.143.008-.286.017-.428.031a2.592 2.592 0 0 0-.247.04c-.16.03-.318.062-.491.096-.051-.16-.107-.319-.154-.481a5.498 5.498 0 0 1-.2-1.027 5.23 5.23 0 0 1-.021-1.028c.033-.479.113-.951.258-1.41.095-.3.2-.599.344-.88.096-.187.191-.374.298-.554.08-.137.178-.265.271-.394.073-.1.146-.201.225-.297.07-.084.146-.165.223-.243.128-.13.257-.26.392-.383.09-.084.19-.159.288-.234.105-.08.21-.16.32-.232.148-.096.299-.187.45-.275.135-.078.27-.157.411-.22.211-.093.427-.176.643-.257a2.85 2.85 0 0 1 .383-.12c.247-.054.495-.104.744-.14.21-.03.423-.052.634-.052.27 0 .542.015.81.042.466.046.917.156 1.354.323a6.039 6.039 0 0 1 1.819 1.068c.207.175.409.356.583.564.196.231.388.466.57.708.056.074.081.174.112.266.072.213.141.428.208.643.086.274.167.55.252.824.064.208.133.414.198.622.072.231.14.464.211.696l.15.477.165.534c.05.163.103.325.153.489l.117.39c.037.118.077.236.114.355l.291.928.275.865c.01.035.024.07.035.105.02.065-.015.113-.076.09zm.157-12.752a.484.484 0 0 1-.272.408.062.062 0 0 1-.054-.005c-.077-.06-.148-.127-.227-.184-.237-.173-.471-.35-.716-.512a8.86 8.86 0 0 0-.706-.428c-.246-.132-.502-.244-.756-.358a5.709 5.709 0 0 0-.501-.201c-.28-.095-.563-.186-.848-.267a7.965 7.965 0 0 0-1.091-.215c-.3-.042-.6-.076-.903-.081-.176-.003-.352-.015-.528-.009-.28.01-.56.024-.84.047-.209.017-.416.05-.623.08-.289.04-.573.101-.852.183-.236.07-.471.14-.705.217a4.57 4.57 0 0 0-.422.16 10.614 10.614 0 0 0-1.438.718c-.18.107-.352.232-.525.354a7.506 7.506 0 0 0-.394.296 12.185 12.185 0 0 0-.962.865c-.114.115-.219.24-.325.363-.11.128-.223.254-.327.387a8.572 8.572 0 0 0-.653.956c-.098.164-.187.334-.276.503a8.949 8.949 0 0 0-.253.51c-.08.177-.147.358-.216.54a7.726 7.726 0 0 0-.311.986c-.074.335-.149.67-.2 1.01a10.101 10.101 0 0 0-.047 2.328c.028.268.073.534.11.805-.215 0-.4-.063-.512-.256a.766.766 0 0 1-.08-.242 7.924 7.924 0 0 1-.083-.53 12.5 12.5 0 0 1-.07-.702 8.464 8.464 0 0 1-.021-.723 10.525 10.525 0 0 1 .282-2.28c.092-.394.216-.778.363-1.153.078-.198.151-.398.242-.59.13-.273.268-.544.414-.81.105-.192.222-.38.346-.561.145-.214.3-.42.455-.627.102-.135.207-.268.317-.396.105-.121.217-.237.328-.353a9.419 9.419 0 0 1 .578-.56c.18-.155.359-.31.545-.456.145-.114.299-.216.45-.32.13-.09.258-.18.392-.26a13.292 13.292 0 0 1 .975-.531c.146-.07.297-.133.447-.196.116-.05.231-.101.35-.142.248-.084.497-.163.747-.24.137-.043.275-.084.416-.112.299-.062.598-.123.9-.17a7.19 7.19 0 0 1 .743-.078c.325-.016.65-.019.976-.015.216.003.433.022.648.045a9.735 9.735 0 0 1 2.377.532c.432.16.86.332 1.264.56.28.157.557.318.829.49.206.13.405.276.6.424.177.134.35.274.514.423a.43.43 0 0 1 .13.373z\"},\"child\":[]}]})(props);\n};\nexport function SiDelta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 13.455h-.689l-.288-.739h-1.2l-.289.739h-.644l1.233-2.96h.666zm-1.16-1.233l-.411-1.044-.411 1.044zm-4.315 1.233h.66v-2.438h.995v-.51h-2.644v.51h.989zm-3.826 0h1.927v-.511H15.36v-2.438h-.661zm-3.282-2.438h1.416v-.51h-2.077v2.948h2.121v-.511h-1.46v-.766h1.25v-.511h-1.25zm-4.981 2.438h1.038c1.072 0 1.71-.555 1.71-1.472 0-.916-.638-1.471-1.71-1.471H6.436zm.655-2.438h.383c.694 0 1.044.344 1.044.96 0 .617-.344.961-1.044.961h-.383zm-2.277 2.155a.15.15 0 0 1 .15.15.15.15 0 0 1-.15.15.15.15 0 0 1-.15-.15.15.15 0 0 1 .15-.15m0 .277a.13.13 0 0 0 .134-.127c0-.073-.056-.128-.134-.128a.126.126 0 0 0-.127.128c0 .072.055.127.127.127m-.033-.039H4.76v-.177h.067c.038 0 .055.016.055.05 0 .033-.022.044-.044.05l.055.077h-.028l-.05-.077h-.033zm0-.1h.028c.022 0 .05 0 .05-.027 0-.022-.022-.028-.039-.028h-.039zM0 13.85h4.626l-2.31-.978zm.172-.395l2.144-1.033 2.143 1.033-2.143-3.304Z\"},\"child\":[]}]})(props);\n};\nexport function SiDeluge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.766 10.341 12.006 0l-6.77 10.342c-1.945 2.97-2.191 6.432-.66 9.264C6.04 22.316 8.885 24 12.001 24c3.113 0 5.957-1.681 7.421-4.388 1.532-2.832 1.287-6.297-.657-9.27zm-10.082 6.9c1.433 2.554 3.608 3.045 6.585 2.102-1.7 1.848-5.188 2.337-7.557-.302-1.63-1.817-1.773-4.351-.642-6.468 1.132-2.117 3.388-2.706 5.012-1.551-3.723.09-4.43 4.38-3.398 6.218zm8.72-6.009c.723 1.107 1.152 2.267 1.314 3.418-3.354 5.763-7.862 4.879-9.062 1.377-.554-1.618 1.19-5.08 4.514-3.725-1.296-2.838-4.238-4.017-6.911-1.809a5.099 5.099 0 0 0-.609.66l5.355-8.179 5.398 8.258z\"},\"child\":[]}]})(props);\n};\nexport function SiDeno (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.105 18.02A11.9 11.9 0 0 1 0 12.985q0-.698.078-1.376a12 12 0 0 1 .231-1.34A12 12 0 0 1 4.025 4.02a12 12 0 0 1 5.46-2.771 12 12 0 0 1 3.428-.23c1.452.112 2.825.477 4.077 1.05a12 12 0 0 1 2.78 1.774 12.02 12.02 0 0 1 4.053 7.078A12 12 0 0 1 24 12.985q0 .454-.036.914a12 12 0 0 1-.728 3.305 12 12 0 0 1-2.38 3.875c-1.33 1.357-3.02 1.962-4.43 1.936a4.4 4.4 0 0 1-2.724-1.024c-.99-.853-1.391-1.83-1.53-2.919a5 5 0 0 1 .128-1.518c.105-.38.37-1.116.76-1.437-.455-.197-1.04-.624-1.226-.829-.045-.05-.04-.13 0-.183a.155.155 0 0 1 .177-.053c.392.134.869.267 1.372.35.66.111 1.484.25 2.317.292 2.03.1 4.153-.813 4.812-2.627s.403-3.609-1.96-4.685-3.454-2.356-5.363-3.128c-1.247-.505-2.636-.205-4.06.582-3.838 2.121-7.277 8.822-5.69 15.032a.191.191 0 0 1-.315.19 12 12 0 0 1-1.25-1.634 12 12 0 0 1-.769-1.404M11.57 6.087c.649-.051 1.214.501 1.31 1.236.13.979-.228 1.99-1.41 2.013-1.01.02-1.315-.997-1.248-1.614.066-.616.574-1.575 1.35-1.635\"},\"child\":[]}]})(props);\n};\nexport function SiDenon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.365 11.237 3.394 3.361v-5.07h-.778v3.16L8.58 9.406v5.077h.779V11.27l.006-.033m-4.497 3.245V9.528h2.79v.773H5.646v1.164h1.558v.772H5.646v1.472h1.999v.773H4.868M20.58 11.23 24 14.58V9.528h-.779v3.2l-.005-.015-3.422-3.311v5.08h.79v-3.234l-.003-.019M.78 13.747v-3.503h.688s1.755-.032 1.755 1.77c0 1.647-1.593 1.733-1.593 1.733H.78zM0 9.527v4.955h1.655s2.336-.193 2.336-2.496c0-2.374-2.343-2.458-2.343-2.458H0zm14.416 2.452c0 .552.187 1.006.56 1.361.713.724 1.931.702 2.618-.01.724-.689.724-1.991.007-2.676-.675-.726-1.966-.724-2.645 0-.36.357-.54.8-.54 1.325zm-.764-.01c0-.702.26-1.306.777-1.81.981-1.004 2.724-1.016 3.702.006 1.026.965 1.032 2.706-.003 3.66-.961.964-2.596 1.015-3.624.084-.568-.493-.852-1.14-.852-1.94z\"},\"child\":[]}]})(props);\n};\nexport function SiDependabot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.949.3136a1.918 1.918 0 012.102 0l9.3334 6.1182c.541.354.866.957.866 1.604v7.9283c0 .647-.326 1.25-.866 1.604l-9.3334 6.1183a1.918 1.918 0 01-2.102 0l-9.3334-6.1182a1.916 1.916 0 01-.866-1.604V8.0358c0-.647.326-1.25.866-1.604zm1.801 7.1862v.75H6.7498a.75.75 0 00-.75.7501V12h-.5a.25.25 0 00-.25.25v2.5c0 .1381.112.2501.25.2501h.5v1.5c0 .415.336.75.75.75h10.5004a.75.75 0 00.75-.75v-1.5h.5a.25.25 0 00.25-.25v-2.5a.25.25 0 00-.25-.2501h-.5V8.9999a.75.75 0 00-.75-.75H13.5V5.4998a.25.25 0 00-.25-.25H11.5a.25.25 0 00-.25.25v1.75c0 .138.112.25.25.25zm3.2861 5.0892l-1.572 1.572a.303.303 0 01-.428 0l-.947-.947a.303.303 0 010-.428l.322-.322a.303.303 0 01.428 0l.41.411 1.037-1.036a.303.303 0 01.428 0l.322.322a.303.303 0 010 .428zM9.464 14.16v.001a.303.303 0 01-.428 0l-.948-.947a.302.302 0 010-.428l.323-.322a.303.303 0 01.427 0l.412.411 1.036-1.037a.303.303 0 01.427 0l.323.322a.303.303 0 010 .428z\"},\"child\":[]}]})(props);\n};\nexport function SiDependencycheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.357 15.731H.016A13.74 13.74 0 0 0 4.58 24l1.63-1.634a11.452 11.452 0 0 1-3.853-6.635Zm.509 0a10.948 10.948 0 0 0 3.668 6.254l.03.026 1.124-1.126a9.38 9.38 0 0 1-3.206-5.154Zm6.623 3.349h-.084V8.252h4.222c.846 0 1.621.137 2.328.41a5.518 5.518 0 0 1 1.825 1.137c.168.159.318.331.461.508.291.363.535.761.722 1.201a5.37 5.37 0 0 1 .418 2.127v.03c0 .764-.139 1.475-.418 2.135a5.009 5.009 0 0 1-1.183 1.716 5.572 5.572 0 0 1-1.825 1.146 6.309 6.309 0 0 1-2.328.418zm7.01-7.027a3.022 3.022 0 0 0-.513-.738 2.971 2.971 0 0 0-1.028-.673 3.578 3.578 0 0 0-1.331-.24l-1.84.001v6.526h1.84c.484 0 .928-.078 1.331-.232a2.844 2.844 0 0 0 1.028-.665c.283-.288.505-.628.665-1.021.16-.391.24-.829.24-1.314v-.032c0-.473-.08-.913-.24-1.314-.043-.107-.101-.199-.152-.298zm-16.44-.796h2.35c1.635-7.184 7.887-8.654 9.203-8.922V0A13.782 13.782 0 0 0 .059 11.257Zm11.553-8.414a10.98 10.98 0 0 0-8.692 8.414h1.624a9.402 9.402 0 0 1 7.068-6.802Zm4.474.092v1.629a9.38 9.38 0 0 1 4.79 3.101l1.127-1.126a11.039 11.039 0 0 0-5.917-3.604Zm0-2.865v2.352a11.459 11.459 0 0 1 6.267 3.763l1.631-1.636A13.75 13.75 0 0 0 16.086.07z\"},\"child\":[]}]})(props);\n};\nexport function SiDepositphotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24c5.119 0 9.061-3.942 9.061-9.06S17.119 5.88 12 5.88c-5.117 0-9.059 3.942-9.059 9.06S6.883 24 12 24Zm0-5.598c-1.954 0-3.461-1.508-3.461-3.462 0-1.955 1.507-3.462 3.461-3.462 1.955 0 3.462 1.507 3.462 3.462 0 1.954-1.507 3.462-3.462 3.462Zm2.634-12.241h6.161V0h-6.161v6.161Z\"},\"child\":[]}]})(props);\n};\nexport function SiDerspiegel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.868 13.054v-2.108h.677v2.108zm1.29.19v-2.488a.346.346 0 0 0-.338-.337H0v.527h.254v2.108H0v.527h1.841a.33.33 0 0 0 .318-.337zm1.905-.78v.59h-.72v-.864h.953v-.527h-.952v-.717h.72v.442h.592v-.97H2.497v.528h.233v2.108h-.233v.527h2.16v-1.117zm1.778-.801v-.717h.699v.717zm1.334 1.391v-.759a.334.334 0 0 0-.339-.337c.19 0 .339-.148.339-.338v-.843c0-.169-.149-.337-.318-.337H4.974v.527h.275v2.108h-.275v.506h1.121v-.527h-.233v-.864h.699v.864h-.254v.527h1.1v-.527zm4.507-1.391v-.717h.72v.717zm1.334.19v-1.097a.334.334 0 0 0-.339-.337h-1.862v.527h.254v2.108h-.254v.527h1.1v-.527h-.233v-.864h.995c.19 0 .339-.148.339-.338zm1.08 1.201v-2.108h.253v-.527h-1.1v.527h.254v2.108h-.254v.527h1.1v-.527zm2.094-.59v.59h-.72v-.864h.953v-.527h-.952v-.717h.72v.442h.613v-.97h-2.18v.528h.233v2.108h-.233v.527h2.18v-1.117zm1.736-.801v.527h.487v.864h-.72v-2.108h.72v.442h.634v-.632a.334.334 0 0 0-.338-.337h-1.27a.325.325 0 0 0-.212.084c-.063.063-.127.148-.127.253v2.488a.3.3 0 0 0 .127.253.32.32 0 0 0 .233.084h1.587v-1.918zm2.984.8v.591h-.72v-.864h.953v-.527h-.953v-.717h.72v.442h.614v-.97h-2.18v.528h.233v2.108h-.233v.527h2.18v-1.117zm2.476 0v.591h-.698v-2.108h.254v-.527H21.82v.527h.254v2.108h-.254v.527H24v-1.117zm-12.846.8v-1.592H9.227v-.722h.699v.446h.635v-.637c0-.204-.19-.34-.381-.34H8.931a.335.335 0 0 0-.338.34v1.444h1.312v.87h-.699v-.594h-.613v.764c0 .19.148.34.338.34h1.249c.195 0 .36-.128.36-.319Z\"},\"child\":[]}]})(props);\n};\nexport function SiDeutschebahn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.6 3.6H2.4C1.08 3.6 0 4.68 0 6v12c0 1.32 1.08 2.4 2.4 2.4h19.2c1.32 0 2.4-1.08 2.4-2.424V6c0-1.32-1.08-2.4-2.4-2.4zm.648 14.376c.024.36-.264.672-.648.696H2.4c-.36 0-.648-.312-.648-.672V6a.667.667 0 0 1 .624-.696H21.6c.36 0 .648.312.648.672v12zM7.344 6.504H3.312v10.992h4.032c3.336-.024 4.416-2.376 4.416-5.544 0-3.672-1.56-5.448-4.416-5.448zm-.456 9.216h-.936V8.232h.528c2.376 0 2.616 1.728 2.616 3.936 0 2.424-.816 3.552-2.208 3.552zm11.832-3.984c1.128-.336 1.896-1.368 1.92-2.568 0-.24-.048-2.688-3.144-2.688h-4.584v10.992H16.8c1.032 0 4.248 0 4.248-3.096 0-.744-.336-2.208-2.328-2.64zm-2.352-3.528c1.176 0 1.656.408 1.656 1.32 0 .72-.528 1.32-1.44 1.32h-1.032v-2.64h.816zm.24 7.512h-1.08v-2.832h1.152c1.368 0 1.704.792 1.704 1.416 0 1.416-1.344 1.416-1.776 1.416z\"},\"child\":[]}]})(props);\n};\nexport function SiDeutschebank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.375 3.375v17.25h17.25V3.375H3.375zM0 0h24v24H0V0zm5.25 18.225 9.15-12.45h4.35L9.6 18.225H5.25z\"},\"child\":[]}]})(props);\n};\nexport function SiDeutschepost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.057 18.221 7.839 21.47H4.652l3.219-3.249zm-4.299 0L3.541 21.47H.354l3.219-3.249zm8.227 0 3.219 3.249h-3.187l-3.22-3.249zm4.3 0 3.217 3.249h-3.187l-3.218-3.249zM10.465 2.53c3.765-.003 6.88 2.74 6.865 6.676.553-1.502.937-3.789 1.016-5.39L24 5.22c-.452 6.621-5.43 12.42-12.815 12.416C2.832 17.635-.397 10.389.039 4.899l2.453-.779c-.399 3.125.57 5.378 1.238 6.41-.795-4.42 2.549-7.998 6.735-8m.011 2.301a4.519 4.519 0 0 0-4.524 4.514 4.519 4.519 0 0 0 4.524 4.514 4.518 4.518 0 0 0 4.525-4.514 4.518 4.518 0 0 0-4.525-4.514\"},\"child\":[]}]})(props);\n};\nexport function SiDeutschewelle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.143 5.182A6.854 6.854 0 0 0 12 7.493a6.855 6.855 0 0 0-5.143-2.311C3.07 5.182 0 8.234 0 12c0 3.766 3.07 6.818 6.857 6.818A6.855 6.855 0 0 0 12 16.507a6.854 6.854 0 0 0 5.143 2.311C20.929 18.818 24 15.766 24 12c0-3.766-3.07-6.818-6.857-6.818zm-6.04 10.05a5.349 5.349 0 0 1-4.246 2.086c-2.954 0-5.348-2.38-5.348-5.318 0-2.937 2.394-5.318 5.348-5.318 1.731 0 3.27.818 4.247 2.087A5.274 5.274 0 0 1 12.206 12a5.274 5.274 0 0 1-1.102 3.231zm8.88-.641h-1.608l-1.049-2.549-1.025 2.549h-1.605l-1.661-5.182h1.833l.779 2.602.972-2.602h1.434l.973 2.602.778-2.602h1.841zM7.058 9.273H4.083v5.454h2.975c1.534 0 3.107-.878 3.107-2.727 0-1.768-1.434-2.727-3.107-2.727zm-.161 3.874H5.729v-2.318h1.168c1.062 0 1.44.59 1.44 1.159.001.561-.375 1.159-1.44 1.159z\"},\"child\":[]}]})(props);\n};\nexport function SiDevdotto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.42 10.05c-.18-.16-.46-.23-.84-.23H6l.02 2.44.04 2.45.56-.02c.41 0 .63-.07.83-.26.24-.24.26-.36.26-2.2 0-1.91-.02-1.96-.29-2.18zM0 4.94v14.12h24V4.94H0zM8.56 15.3c-.44.58-1.06.77-2.53.77H4.71V8.53h1.4c1.67 0 2.16.18 2.6.9.27.43.29.6.32 2.57.05 2.23-.02 2.73-.47 3.3zm5.09-5.47h-2.47v1.77h1.52v1.28l-.72.04-.75.03v1.77l1.22.03 1.2.04v1.28h-1.6c-1.53 0-1.6-.01-1.87-.3l-.3-.28v-3.16c0-3.02.01-3.18.25-3.48.23-.31.25-.31 1.88-.31h1.64v1.3zm4.68 5.45c-.17.43-.64.79-1 .79-.18 0-.45-.15-.67-.39-.32-.32-.45-.63-.82-2.08l-.9-3.39-.45-1.67h.76c.4 0 .75.02.75.05 0 .06 1.16 4.54 1.26 4.83.04.15.32-.7.73-2.3l.66-2.52.74-.04c.4-.02.73 0 .73.04 0 .14-1.67 6.38-1.8 6.68z\"},\"child\":[]}]})(props);\n};\nexport function SiDevexpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.4 0h21.2c.8 0 1.4.6 1.4 1.4v1.1c0 .8-.6 1-.9 1C11.7 4.9 4.2 9.7 0 14.1V1.4C0 .6.6 0 1.4 0zm.022 19.567L1.7 19.2C5.3 14.6 12.4 8.3 24 6.3v16.3c0 .8-.6 1.4-1.4 1.4H1.4C.6 24 0 23.4 0 22.6v-.4c0-.3.2-.8.3-.9.252-.589.646-1.107 1.122-1.733z\"},\"child\":[]}]})(props);\n};\nexport function SiDeviantart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.207 4.794l.23-.43V0H15.07l-.436.44-2.058 3.925-.646.436H4.58v5.993h4.04l.36.436-4.175 7.98-.24.43V24H8.93l.436-.44 2.07-3.925.644-.436h7.35v-5.993h-4.05l-.36-.438 4.186-7.977z\"},\"child\":[]}]})(props);\n};\nexport function SiDevpost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.002 1.61L0 12.004 6.002 22.39h11.996L24 12.004 17.998 1.61zm1.593 4.084h3.947c3.605 0 6.276 1.695 6.276 6.31 0 4.436-3.21 6.302-6.456 6.302H7.595zm2.517 2.449v7.714h1.241c2.646 0 3.862-1.55 3.862-3.861.009-2.569-1.096-3.853-3.767-3.853Z\"},\"child\":[]}]})(props);\n};\nexport function SiDevrant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.72 0C5.482-.015 1.592 4.046 1.701 10.322c-.074 3.907 1.437 7.002 4.127 8.734.663.405 1.364.737 2.137.995l2.174 3.353c.333.848.7.774.848-.11l.59-2.69h.442c2.469.073 4.57-.517 6.228-1.585 2.616-1.733 4.126-4.791 4.053-8.697C22.41 3.948 18.431-.144 12.019.004c-.1-.002-.2-.004-.299-.004zm4.571 4.636c.258 0 .516.092.7.276h.001c.185.185.295.442.295.737 0 .148 0 .295-.074.406l-3.722 9.25c-.258.441-.627.552-.885.552a1.007 1.007 0 0 1-.994-.995c0-.148.037-.258.073-.406l3.685-9.212c.073-.147.148-.258.221-.332a.989.989 0 0 1 .7-.276zM9.456 7.5c.313 0 .626.12.866.359h.001c.221.221.368.516.331.848 0 .332-.147.589-.368.848-.222.258-.517.369-.848.369-.332 0-.59-.148-.848-.37-.259-.22-.37-.515-.37-.847s.149-.627.37-.848c.24-.24.552-.36.866-.36zm0 4.974c.313 0 .626.12.866.36h.001c.221.258.368.553.331.848a1.2 1.2 0 0 1-.368.848c-.221.258-.516.368-.848.368a1.2 1.2 0 0 1-.848-.368c-.259-.222-.37-.516-.37-.848s.149-.627.37-.848c.24-.24.552-.36.866-.36z\"},\"child\":[]}]})(props);\n};\nexport function SiDgraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.22 4.319c.226-.414.349-.892.349-1.403A2.917 2.917 0 0015.653 0c-1.37 0-2.522.944-2.838 2.218-.272-.013-.544-.033-.815-.033-5.58 0-10.1 4.513-10.1 10.1 0 2.74 1.1 5.23 2.871 7.047a2.916 2.916 0 00-.588 1.752A2.917 2.917 0 007.1 24c1.241 0 2.295-.782 2.728-1.869a10.092 10.092 0 0012.272-9.86 9.982 9.982 0 00-3.88-7.952zm-2.554.381c-.162 0-.304-.013-.446-.064l-1.21 3.523 1.772-.284-2.489 4.067 2.075-.511-7.002 8.34c.35.317.556.783.556 1.307a1.78 1.78 0 01-1.784 1.784c-.99 0-1.785-.795-1.785-1.784s.796-1.785 1.785-1.785c.226 0 .446.045.653.13l1.978-4.326-1.933.524 3.142-4.5-1.933.465L14.521 4.3c-.4-.337-.64-.828-.64-1.371 0-.99.796-1.785 1.785-1.785s1.784.796 1.784 1.785c.007.97-.795 1.771-1.784 1.771z\"},\"child\":[]}]})(props);\n};\nexport function SiDhl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.22 10.303l-.767 1.043h4.18c.21 0 .208.078.105.218-.105.142-.28.39-.386.534-.054.073-.154.207.171.207h1.71l.505-.69c.314-.426.028-1.312-1.095-1.312H4.22zm7.204 0l-1.475 2.002h5.39l1.473-2.002H14.61l-.843 1.146h-.985l.846-1.146h-2.203zm6.105 0l-1.474 2.002h2.334l1.472-2.002H17.53zm-12.845 1.3l-1.54 2.094h3.754c1.24 0 1.932-.844 2.145-1.136h-2.56c-.326 0-.226-.133-.172-.207.107-.143.283-.388.388-.53.104-.14.107-.22-.105-.22h-1.91zM0 12.562v.242h3.398l.176-.242H0zm9.762 0l-.836 1.136h2.203l.836-1.136H9.762zm3.185 0l-.836 1.136h2.203l.836-1.136h-2.203zm2.918 0s-.159.22-.238.326c-.276.374-.033.81.87.81h3.538l.834-1.136h-5.004zm5.408 0l-.177.242H24v-.242h-2.727zM0 13.01v.24h3.068l.178-.24H0zm20.943 0l-.175.24H24v-.24h-3.057zM0 13.457v.24h2.74l.176-.24H0zm20.615 0l-.177.24H24v-.24h-3.385z\"},\"child\":[]}]})(props);\n};\nexport function SiDiagramsdotnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 13.419h-2.527l-2.667-4.555a1.292 1.292 0 001.035-1.28V4.16c0-.725-.576-1.312-1.302-1.312H9.771c-.726 0-1.312.576-1.312 1.301v3.435c0 .619.426 1.152 1.034 1.28l-2.666 4.555H4.309c-.725 0-1.312.576-1.312 1.301v3.435c0 .725.576 1.312 1.302 1.312h4.458c.726 0 1.312-.576 1.312-1.302v-3.434c0-.726-.576-1.312-1.301-1.312h-.437l2.645-4.523h2.059l2.656 4.523h-.438c-.725 0-1.312.576-1.312 1.301v3.435c0 .725.576 1.312 1.302 1.312H19.7c.726 0 1.312-.576 1.312-1.302v-3.434c0-.726-.576-1.312-1.301-1.312zM24 22.976c0 .565-.459 1.024-1.013 1.024H1.024A1.022 1.022 0 010 22.987V1.024C0 .459.459 0 1.013 0h21.963C23.541 0 24 .459 24 1.013z\"},\"child\":[]}]})(props);\n};\nexport function SiDialogflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.996 0a1.639 1.639 0 0 0-.82.22L3.344 4.74a1.648 1.648 0 0 0-.535.498l9.136 5.28 9.213-5.32a1.652 1.652 0 0 0-.51-.458L12.818.22a1.639 1.639 0 0 0-.822-.22zm9.336 5.5l-9.387 5.422-9.3-5.373a1.648 1.648 0 0 0-.12.615v9.043a1.643 1.643 0 0 0 .819 1.42l3.918 2.266v4.617a.493.493 0 0 0 .74.424l12.654-7.303a1.639 1.639 0 0 0 .819-1.42V6.162a1.652 1.652 0 0 0-.143-.662z\"},\"child\":[]}]})(props);\n};\nexport function SiDiaspora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.257 21.928l-2.33-3.255c-.622-.87-1.128-1.549-1.155-1.55-.027 0-1.007 1.317-2.317 3.115-1.248 1.713-2.28 3.115-2.292 3.115-.035 0-4.5-3.145-4.51-3.178-.006-.016 1.003-1.497 2.242-3.292 1.239-1.794 2.252-3.29 2.252-3.325 0-.056-.401-.197-3.55-1.247a1604.93 1604.93 0 0 1-3.593-1.2c-.033-.013.153-.635.79-2.648.46-1.446.845-2.642.857-2.656.013-.015 1.71.528 3.772 1.207 2.062.678 3.766 1.233 3.787 1.233.021 0 .045-.032.053-.07.008-.039.026-1.794.04-3.902.013-2.107.036-3.848.05-3.87.02-.03.599-.038 2.725-.038 1.485 0 2.716.01 2.735.023.023.016.064 1.175.132 3.776.112 4.273.115 4.33.183 4.33.026 0 1.66-.547 3.631-1.216 1.97-.668 3.593-1.204 3.605-1.191.04.045 1.656 5.307 1.636 5.327-.011.01-1.656.574-3.655 1.252-2.75.932-3.638 1.244-3.645 1.284-.006.029.94 1.442 2.143 3.202 1.184 1.733 2.148 3.164 2.143 3.18-.012.036-4.442 3.299-4.48 3.299-.015 0-.577-.767-1.249-1.705z\"},\"child\":[]}]})(props);\n};\nexport function SiDictionarydotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.894.087 1.043 0a.3.3 0 0 0-.305.293V18.97a.331.331 0 0 0 .166.28l8.13 4.713a.268.268 0 0 0 .364-.092.27.27 0 0 0 .038-.138V6.275a.33.33 0 0 0-.176-.292L4.944 3.625a.173.173 0 0 1-.084-.21.173.173 0 0 1 .197-.112l7.804 1.333a.31.31 0 0 1 .252.302v15.717a.307.307 0 0 0 .309.308h.035c5.781-.645 9.72-4.693 9.804-10.308.078-6.28-4.595-10.48-11.367-10.568Z\"},\"child\":[]}]})(props);\n};\nexport function SiDigg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.76 8.16v8.16h3.84v.96h-3.84v1.92H24V8.16h-6.24zm-7.2 0v8.16h3.84v.96h-3.84v1.92h6.24V8.16h-6.24zM3.84 4.8v3.36H0v8.16h6.24V4.8h-2.4zM9.6 8.16H7.2v8.16h2.4V8.16zm12 6.24h-1.44v-4.32h1.44v4.32zm-17.76 0H2.4v-4.32h1.44v4.32zm10.56 0h-1.44v-4.32h1.44v4.32zM9.6 4.8H7.2v2.4h2.4V4.8z\"},\"child\":[]}]})(props);\n};\nexport function SiDigikeyelectronics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.246.221A11.786 11.786 0 0 1 23.89 10.418c.912 6.593-3.944 12.711-10.558 13.297-.454.04-.912.063-1.369.064l-10.705.003v-3.749H0V3.987h1.222V.218l11.024.003zM17.9 19.423l-8.26-7.422 8.25-7.422h-6.938L5.615 9.361V4.598H.56v14.803h5.105v-4.724l5.289 4.746H17.9z\"},\"child\":[]}]})(props);\n};\nexport function SiDigitalocean (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.04 0C5.408-.02.005 5.37.005 11.992h4.638c0-4.923 4.882-8.731 10.064-6.855a6.95 6.95 0 014.147 4.148c1.889 5.177-1.924 10.055-6.84 10.064v-4.61H7.391v4.623h4.61V24c7.86 0 13.967-7.588 11.397-15.83-1.115-3.59-3.985-6.446-7.575-7.575A12.8 12.8 0 0012.039 0zM7.39 19.362H3.828v3.564H7.39zm-3.563 0v-2.978H.85v2.978z\"},\"child\":[]}]})(props);\n};\nexport function SiDinersclub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.506 11.982a6.026 6.026 0 0 0-3.866-5.618V17.6a6.025 6.025 0 0 0 3.866-5.618zM8.33 17.598V6.365a6.03 6.03 0 0 0-3.863 5.617 6.028 6.028 0 0 0 3.863 5.616zm2.156-15.113A9.497 9.497 0 0 0 .99 11.982a9.495 9.495 0 0 0 9.495 9.494c5.245 0 9.495-4.25 9.496-9.494a9.499 9.499 0 0 0-9.496-9.497Zm-.023 19.888C4.723 22.4 0 17.75 0 12.09 0 5.905 4.723 1.626 10.463 1.627h2.69C18.822 1.627 24 5.903 24 12.09c0 5.658-5.176 10.283-10.848 10.283\"},\"child\":[]}]})(props);\n};\nexport function SiDior (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.0728 8.7751h3.1157c2.6789 0 3.7272 1.5724 3.7272 3.237 0 1.6937-1.3443 3.203-3.9019 3.203H.0776c-.0534 0-.0728-.034-.0728-.0631 0-.034.034-.0631.0825-.0631h.5484c.1699 0 .2815-.1019.2815-.2912V9.2022c0-.1407-.0679-.296-.2912-.296H.0679C.0243 8.9062 0 8.8771 0 8.8431c0-.0291.0097-.068.0728-.068m1.9461 6.1392c0 .1407.0631.1844.1553.1844h.825c2.0334 0 2.7711-1.5578 2.7711-3.1205S4.9889 8.9013 3.271 8.9013H2.1499c-.1165 0-.1262.0971-.1262.1407l-.0048 5.8723zm5.2073-6.1392c-.0485 0-.0922.0194-.0922.0582s.0243.0631.0679.0631h.5484c.1262 0 .2475.0874.2475.33v5.5762c0 .1165-.0874.2912-.2427.2912h-.5434c-.0631 0-.0679.0485-.0679.0679s-.0049.0534.0679.0534h2.6401c.0388 0 .0922-.0049.0922-.0437s-.0097-.0776-.0776-.0776h-.5097c-.0728 0-.2718-.0437-.2718-.2669V9.1682c0-.1602.1019-.2669.2863-.2669h.4999c.0437 0 .0679-.0243.0679-.0582 0-.034-.0243-.0631-.0825-.0631-.0005-.0048-2.6396.0092-2.6303-.0049zm4.1251 3.2225c0-1.7811.7959-3.2224 2.2906-3.2224 1.4656 0 2.2906 1.4414 2.2906 3.2224S15.1804 15.22 13.642 15.22c-1.4899.0049-2.2907-1.4414-2.2907-3.2224m2.2907 3.3583c2.1256 0 3.4651-1.5044 3.4651-3.3535s-1.3249-3.3583-3.4651-3.3583c-2.1353 0-3.4651 1.5044-3.4651 3.3535s1.3831 3.3583 3.4651 3.3583m10.2593-.1796c-.8347.0874-1.2958-1.2812-1.718-1.9315-.3154-.4805-.9852-.9706-1.6452-1.0677 1.0871-.0631 2.3052-.4125 2.3052-1.6452 0-.9997-.6163-1.7568-2.8779-1.7568h-2.6061c-.034 0-.0679.0194-.0679.0582s.034.0631.0679.0631h.5969c.1262 0 .2475.0874.2475.33v5.5762c0 .1165-.0874.2912-.2427.2912h-.587c-.0485 0-.0679.0388-.0679.0582s.0194.0631.0679.0631h2.7662c.0388 0 .0728-.0194.0728-.0582s-.0243-.0631-.0776-.0631h-.5581c-.0728 0-.2718-.0485-.2718-.2669v-2.6352h.2863c1.3686 0 1.4705 1.485 2.1499 2.3343.5824.728 1.3443.8202 1.7762.8202.1844 0 .3106-.0049.4271-.034.0728-.0243.0874-.1504-.0437-.1359m-4.3192-6.2798h.4028c.6891 0 1.8053.2718 1.8053 1.5724 0 1.1939-.99 1.5967-1.9073 1.5967h-.5872V9.1682c.0001-.165.102-.2717.2864-.2717\"},\"child\":[]}]})(props);\n};\nexport function SiDirectus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.187 13.909a1.74 1.74 0 0 1-.286-.092.657.657 0 0 1-.203-.139c.056-.488 0-.912.047-1.392.184-1.862 1.355-1.272 2.406-1.577.655-.184 1.31-.562 1.475-1.336a13.528 13.528 0 0 0-2.397-2.204c-2.85-2.028-6.574-2.84-9.958-2.277a5.113 5.113 0 0 0 2.238 2.074s-.917 0-1.703-.587c-.23.092-.692.274-.913.384a5.094 5.094 0 0 0 6.63.37c-.01.017-.185.285-.397 1.4-.47 2.38-1.826 2.195-3.504 1.596-3.485-1.264-5.403-.093-7.145-2.49-.507.286-.82.82-.82 1.402 0 .599.331 1.106.81 1.383.262-.348.38-.446.836-.446-.706.4-.79.75-1.094 1.718-.368 1.171-.212 2.37-1.936 2.683-.913.046-.894.664-1.226 1.586-.415 1.199-.968 1.678-2.047 2.812.443.535.904.6 1.374.406.968-.406 1.715-1.66 2.415-2.471.784-.904 2.665-.517 4.085-1.402.977-.599 1.457-1.41.811-2.784a2.72 2.72 0 0 1 .701 1.66c1.641-.213 3.836 1.788 5.836 2.12a3.574 3.574 0 0 1-.488-.82c-.23-.554-.304-1.06-.258-1.503.184 1.097 1.29 2.507 3.07 2.637.452.036.95-.019 1.466-.176.618-.184 1.19-.424 1.872-.295.507.093.977.35 1.272.784.443.645 1.41.784 1.844-.009-.977-2.554-3.67-2.72-4.813-3.015z\"},\"child\":[]}]})(props);\n};\nexport function SiDiscogs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.7422 11.982c0-5.6682 4.61-10.2782 10.2758-10.2782 1.8238 0 3.5372.48 5.0251 1.3175l.8135-1.4879C16.1768.588 14.2474.036 12.1908.0024h-.1944C5.4091.0144.072 5.3107 0 11.886v.1152c.0072 3.4389 1.4567 6.5345 3.7748 8.7207l1.1855-1.2814c-1.9798-1.8743-3.218-4.526-3.218-7.4585zM20.362 3.4053l-1.1543 1.2406c1.903 1.867 3.0885 4.4636 3.0885 7.3361 0 5.6658-4.61 10.2758-10.2758 10.2758-1.783 0-3.4605-.456-4.922-1.2575l-.8542 1.5214c1.7086.9384 3.6692 1.4735 5.7546 1.4759C18.6245 23.9976 24 18.6246 24 11.9988c-.0048-3.3717-1.399-6.4146-3.638-8.5935zM1.963 11.982c0 2.8701 1.2119 5.4619 3.146 7.2953l1.1808-1.2767c-1.591-1.5166-2.587-3.6524-2.587-6.0186 0-4.586 3.7293-8.3152 8.3152-8.3152 1.483 0 2.875.3912 4.082 1.0751l.8351-1.5262C15.481 2.395 13.8034 1.927 12.018 1.927 6.4746 1.9246 1.963 6.4362 1.963 11.982zm18.3702 0c0 4.586-3.7293 8.3152-8.3152 8.3152-1.4327 0-2.7837-.3648-3.962-1.0055l-.852 1.5166c1.4303.7823 3.0718 1.2287 4.814 1.2287 5.5434 0 10.055-4.5116 10.055-10.055 0-2.8077-1.1567-5.3467-3.0165-7.1729l-1.183 1.2743c1.519 1.507 2.4597 3.5924 2.4597 5.8986zm-1.9486 0c0 3.5109-2.8558 6.3642-6.3642 6.3642a6.3286 6.3286 0 01-3.0069-.756l-.8471 1.507c1.147.624 2.4597.9768 3.854.9768 4.4636 0 8.0944-3.6308 8.0944-8.0944 0-2.239-.9143-4.2692-2.3902-5.7378l-1.1783 1.267c1.1351 1.152 1.8383 2.731 1.8383 4.4732zm-14.4586 0c0 2.3014.9671 4.382 2.515 5.8578l1.1734-1.2695c-1.207-1.159-1.9606-2.786-1.9606-4.5883 0-3.5108 2.8557-6.3642 6.3642-6.3642 1.1423 0 2.215.3048 3.1437.8352l.8303-1.5167c-1.1759-.6647-2.5317-1.0487-3.974-1.0487-4.4612 0-8.092 3.6308-8.092 8.0944zm12.5292 0c0 2.4502-1.987 4.4372-4.4372 4.4372a4.4192 4.4192 0 01-2.0614-.5088l-.8351 1.4879a6.1135 6.1135 0 002.8965.727c3.3885 0 6.1434-2.7548 6.1434-6.1433 0-1.6774-.6767-3.1989-1.7686-4.3076l-1.1615 1.2503c.7559.7967 1.2239 1.8718 1.2239 3.0573zm-10.5806 0c0 1.7374.7247 3.3069 1.8886 4.4252L8.92 15.1569l.0144.0144c-.8351-.8063-1.3559-1.9366-1.3559-3.1869 0-2.4502 1.9846-4.4372 4.4372-4.4372.8087 0 1.5646.2184 2.2174.5976l.8207-1.4975a6.097 6.097 0 00-3.0381-.8063c-3.3837-.0048-6.141 2.7525-6.141 6.141zm6.681 0c0 .2952-.2424.5351-.5376.5351-.2952 0-.5375-.24-.5375-.5351 0-.2976.24-.5375.5375-.5375.2952 0 .5375.24.5375.5375zm-3.9405 0c0-1.879 1.5239-3.4029 3.4005-3.4029 1.879 0 3.4005 1.5215 3.4005 3.4029 0 1.879-1.5239 3.4005-3.4005 3.4005S8.6151 13.861 8.6151 11.982zm.1488 0c.0048 1.7974 1.4567 3.2493 3.2517 3.2517 1.795 0 3.254-1.4567 3.254-3.2517-.0023-1.7974-1.4566-3.2517-3.254-3.254-1.795 0-3.2517 1.4566-3.2517 3.254Z\"},\"child\":[]}]})(props);\n};\nexport function SiDiscord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z\"},\"child\":[]}]})(props);\n};\nexport function SiDiscourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563c-2.593-.003-4.996 1.352-6.337 3.57-1.33 2.208-1.387 4.957-.148 7.22L4.4 19.61l4.794-1.074c2.745 1.225 5.965.676 8.136-1.39 2.17-2.054 2.86-5.228 1.737-7.997-1.135-2.778-3.84-4.59-6.84-4.585h-.008z\"},\"child\":[]}]})(props);\n};\nexport function SiDiscover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.58 12a2.023 2.023 0 1 1-2.025-2.023h.002c1.118 0 2.023.906 2.023 2.023zm-5.2-2.001c-1.124 0-2.025.884-2.025 1.99 0 1.118.878 1.984 2.007 1.984.319 0 .593-.063.93-.221v-.873c-.296.297-.559.416-.895.416-.747 0-1.277-.542-1.277-1.312 0-.73.547-1.306 1.243-1.306.354 0 .622.126.93.428v-.873a1.898 1.898 0 0 0-.913-.233zm-3.352 1.545c-.445-.165-.576-.273-.576-.479 0-.239.233-.422.553-.422.222 0 .405.091.598.308l.388-.508a1.665 1.665 0 0 0-1.117-.422c-.673 0-1.186.467-1.186 1.089 0 .524.239.792.936 1.043.291.103.438.171.513.217a.456.456 0 0 1 .222.394c0 .308-.245.536-.576.536-.354 0-.639-.177-.809-.507l-.479.461c.342.502.752.724 1.317.724.771 0 1.311-.513 1.311-1.249-.002-.603-.252-.876-1.095-1.185zM24 10.3a.29.29 0 0 1-.288.291.29.29 0 0 1-.291-.291v-.003A.29.29 0 1 1 24 10.3zm-.059.001a.235.235 0 0 0-.231-.239.234.234 0 0 0-.232.239c0 .132.104.239.232.239a.235.235 0 0 0 .231-.239zM3.472 13.887h.742v-3.803h-.742v3.803zm12.702-1.248l-1.014-2.554h-.81l1.614 3.9h.399l1.643-3.9h-.804l-1.028 2.554zm2.166 1.248h2.104v-.644h-1.362v-1.027h1.312v-.644h-1.312v-.844h1.362v-.644H18.34v3.803zm5.409-3.557l.11.138h-.097l-.094-.13v.13h-.08v-.334h.107c.081 0 .126.036.126.103.001.046-.025.08-.072.093zm-.006-.092c0-.029-.021-.043-.06-.043h-.014v.087h.014c.039 0 .06-.014.06-.044zm-1.228 2.047l1.197 1.602H22.8l-1.027-1.528h-.097v1.528h-.741v-3.803h1.1c.855 0 1.346.411 1.346 1.123 0 .583-.308.965-.866 1.078zm.103-1.038c0-.37-.251-.563-.713-.563h-.228v1.152h.217c.473-.001.724-.207.724-.589zm-19.487.742a1.91 1.91 0 0 1-.69 1.46c-.365.303-.781.439-1.357.439H.001v-3.803H1.09c1.202 0 2.041.781 2.041 1.904zm-.764-.006c0-.364-.154-.718-.411-.947-.245-.222-.536-.308-1.015-.308H.742v2.515h.199c.479 0 .782-.092 1.015-.302.256-.228.411-.593.411-.958z\"},\"child\":[]}]})(props);\n};\nexport function SiDisqus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.438 23.654c-2.853 0-5.46-1.04-7.476-2.766L0 21.568l1.917-4.733C1.25 15.36.875 13.725.875 12 .875 5.564 6.05.346 12.44.346 18.82.346 24 5.564 24 12c0 6.438-5.176 11.654-11.562 11.654zm6.315-11.687v-.033c0-3.363-2.373-5.76-6.462-5.76H7.877V17.83h4.35c4.12 0 6.525-2.5 6.525-5.863h.004zm-6.415 2.998h-1.29V9.04h1.29c1.897 0 3.157 1.08 3.157 2.945v.03c0 1.884-1.26 2.95-3.157 2.95z\"},\"child\":[]}]})(props);\n};\nexport function SiDisroot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.976 2.856C2.321 3.296.603 4.491.122 5.536c-.144.315-.164.885-.04 1.133.178.35.343.384 1.387.24.817-.11 1.085-.117 1.985-.055 1.106.076 1.594.213 1.882.522.172.179 3.75 9.033 3.813 9.418.11.694-.234 1.312-1.189 2.143-.797.687-.927.907-.824 1.381.151.666.508.982 1.113.982.508 0 2.095-.268 3.297-.55 3.476-.817 6.437-1.923 8.504-3.173 1.944-1.168 3.25-2.555 3.765-3.984.15-.433.178-.618.185-1.326 0-.975-.11-1.38-.536-1.958-.858-1.16-1.8-2.005-3.338-2.988-2.96-1.902-3.778-2.294-6.67-3.215-2.521-.803-5.358-1.318-7.728-1.394-1.017-.027-1.147-.02-1.752.144zm9.411 6.526c1.477.563 2.823 1.47 4.554 3.07.838.777 1.024 1.072 1.058 1.732.076 1.23-.597 2.033-2.088 2.507-.708.22-2.191.536-2.253.474-.02-.014 0-.13.041-.254.048-.13.062-.447.048-.749-.027-.433-.096-.68-.364-1.319-.179-.433-.708-1.91-1.175-3.283l-.851-2.5.22.047c.123.028.487.151.81.275z\"},\"child\":[]}]})(props);\n};\nexport function SiDistrokid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 10.505h1.165c.94 0 1.589.645 1.589 1.486V12c0 .841-.65 1.495-1.59 1.495H0v-2.99zM1.165 12.9c.538 0 .901-.363.901-.892V12c.002-.53-.361-.903-.901-.903H.658v1.804h.507zm2.205-2.396h.658v2.99H3.37v-2.99zm1.201 2.554.389-.466c.269.222.55.363.892.363.27 0 .431-.107.431-.282v-.008c0-.167-.102-.252-.602-.38-.602-.154-.99-.32-.99-.914v-.009c0-.542.433-.9 1.046-.9a1.73 1.73 0 0 1 1.111.38l-.342.495c-.264-.184-.525-.295-.776-.295-.25 0-.384.116-.384.26v.01c0 .196.128.26.644.392.606.158.949.376.949.897v.009c0 .593-.453.927-1.098.927a1.903 1.903 0 0 1-1.27-.479zm3.57-1.948h-.909v-.605h2.477v.605H8.8v2.384h-.657V11.11zm2.072-.606h1.367c.38 0 .675.107.871.303.167.167.257.402.257.684v.008c0 .483-.26.786-.64.927l.73 1.068h-.77l-.64-.957h-.517v.957h-.658v-2.99zm1.324 1.452c.32 0 .504-.171.504-.423v-.008c0-.282-.196-.427-.516-.427h-.652v.858h.664zm1.632.052V12c0-.85.671-1.546 1.594-1.546s1.583.688 1.583 1.537V12c0 .85-.67 1.546-1.593 1.546s-1.584-.688-1.584-1.537zm2.49 0V12c0-.512-.375-.94-.905-.94s-.897.42-.897.932v.009c0 .512.376.94.906.94s.897-.42.897-.932zm1.4-1.504h.337v1.785l1.718-1.785h.435l-1.281 1.307 1.337 1.683h-.423l-1.15-1.448-.636.645v.803h-.337v-2.99zm3.1 0h.339v2.99h-.338v-2.99zm1.214 0h1.038c.94 0 1.589.645 1.589 1.486V12c0 .841-.65 1.495-1.589 1.495h-1.038v-2.99zm1.038 2.678c.756 0 1.239-.512 1.239-1.174V12c0-.662-.483-1.182-1.239-1.182h-.702v2.366l.702-.001z\"},\"child\":[]}]})(props);\n};\nexport function SiDjango (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.146 0h3.924v18.166c-2.013.382-3.491.535-5.096.535-4.791 0-7.288-2.166-7.288-6.32 0-4.002 2.65-6.6 6.753-6.6.637 0 1.121.05 1.707.203zm0 9.143a3.894 3.894 0 00-1.325-.204c-1.988 0-3.134 1.223-3.134 3.365 0 2.09 1.096 3.236 3.109 3.236.433 0 .79-.025 1.35-.102V9.142zM21.314 6.06v9.098c0 3.134-.229 4.638-.917 5.937-.637 1.249-1.478 2.039-3.211 2.905l-3.644-1.733c1.733-.815 2.574-1.53 3.109-2.625.561-1.121.739-2.421.739-5.835V6.059h3.924zM17.39.021h3.924v4.026H17.39z\"},\"child\":[]}]})(props);\n};\nexport function SiDji (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.2 7.8a716.856 716.856 0 0 0-1.232 4.63c-.202.772-.401 1.544-.634 2.308-.226.743-.504 1.535-.91 2.21-.422.703-.969 1.253-1.726 1.604-.3.137-.615.24-.939.306-.46.09-.926.146-1.394.165-1.163.065-3.628.056-4.79.056l.713-2.64c.539 0 1.078.002 1.617-.013.52-.014 1.092-.042 1.605-.163.56-.133.984-.36 1.355-.817.337-.416.564-.935.75-1.424.34-.893.688-2.173.934-3.093.277-1.041.544-2.085.812-3.129zm4.8 0-2.072 7.68h-3.84l2.073-7.68ZM11.339 4.92h3.84c-.403 1.5-.805 2.999-1.212 4.496-.283 1.044-.565 2.088-.872 3.124-.135.452-.269.903-.445 1.342-.141.352-.3.666-.591.93a1.908 1.908 0 0 1-.734.405c-.356.112-.717.154-1.085.184-.53.043-1.06.054-1.591.063-1.991.02-3.983.02-5.974-.001a21.408 21.408 0 0 1-.954-.034 5.319 5.319 0 0 1-.632-.07 1.851 1.851 0 0 1-.412-.119c-.44-.192-.664-.575-.677-1.043 0-.263.032-.525.093-.78.076-.367.171-.728.265-1.09.179-.691.506-1.966.762-2.638.2-.526.464-1.05.966-1.382.28-.186.576-.285.901-.35.241-.05.483-.075.728-.093.41-.03.82-.04 1.23-.047.582-.01 1.165-.013 1.748-.015L8.148 7.8h1.454l-.518 1.92c-.864 0-1.728-.002-2.593.003-.252.001-.504 0-.756.016a.968.968 0 0 0-.264.042c-.113.04-.17.11-.22.213-.073.15-.115.31-.162.468a84.804 84.804 0 0 0-.503 1.857c-.035.14-.07.28-.1.42-.022.099-.04.197-.05.298-.01.11-.014.242.053.345.068.103.182.127.29.143.12.018.241.021.363.025.199.006.398.007.597.008.544.003 1.089.003 1.633 0 .25-.002.501-.004.752-.014.173-.007.343-.013.513-.054.13-.031.23-.08.318-.186.056-.071.1-.15.133-.235.088-.209.15-.425.213-.641.245-.83.466-1.665.692-2.499l.675-2.503.67-2.505h3.84z\"},\"child\":[]}]})(props);\n};\nexport function SiDlib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.2188.0022c-.5082-.01-1.0158.015-1.5223.046v23.9085c.9724.068 1.954.055 2.9238-.032.2836-.9399.5742-1.8784.8605-2.8177 1.488-.2455 2.9172-.7078 4.192-1.361 1.04.5022 2.0797 1.0049 3.12 1.5067a14.2125 14.2125 0 0 0 2.0759-1.5805c-.6353-.8301-1.2734-1.6589-1.9098-2.4884.8294-1.02 1.4426-2.1614 1.7261-3.3565 1.1902-.2287 2.3801-.4583 3.5705-.6865a10.5282 10.5282 0 0 0-.0302-2.2869c-1.1825-.2277-2.3653-.4548-3.5479-.6824-.2922-1.1939-.8713-2.3444-1.7235-3.3545.6384-.8293 1.2757-1.6593 1.9148-2.4884-.6128-.5881-1.297-1.117-2.0432-1.5984-1.0537.5102-2.1086 1.019-3.1628 1.5285-1.2667-.6671-2.6973-1.1432-4.187-1.3868C7.1875 1.9292 6.898.987 6.6103.0442c-.463-.028-.927-.049-1.3914-.042Zm2.33 5.388c3.6866.8142 6.464 3.7461 6.2778 6.8008-.0934 2.8969-2.6816 5.6581-6.2426 6.3976-.1694-.2268-.0253-.7803-.0734-1.1335-.002-4.0243-.003-8.0486-.005-12.073l.0428.01z\"},\"child\":[]}]})(props);\n};\nexport function SiDlna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.255 12.667H13.02c-1.052 0-2.1.489-2.693 1.266v-.017a3.24 3.24 0 01-2.629 1.353 3.25 3.25 0 010-6.502c1.085 0 2.04.536 2.63 1.353v-.013c.591.776 1.64 1.273 2.692 1.273h10.129c.186-.005.873-.095.848-.981-.884-5.086-5.88-8.987-11.923-8.987-3.722 0-7.048 1.48-9.263 3.803-.356.527.014.689.35.734H9.77c1.05 0 2.1-.498 2.692-1.277v.018a3.242 3.242 0 012.63-1.355 3.252 3.252 0 010 6.503 3.24 3.24 0 01-2.63-1.355v.019c-.592-.78-1.642-1.266-2.692-1.266H2.55l.028.003s-1.068-.06-1.719.859C.361 8.9 0 10.62 0 12.002c0 1.388.198 2.65.867 3.923.564.908 1.71.85 1.71.85l-.042.005h7.233c1.05 0 2.1-.49 2.692-1.268v.02a3.242 3.242 0 012.63-1.356 3.251 3.251 0 010 6.502 3.242 3.242 0 01-2.63-1.354v.018c-.592-.779-1.642-1.277-2.692-1.277H3.164c-.328.042-.698.198-.379.7 2.216 2.336 5.555 3.823 9.289 3.823 6.054 0 11.056-3.91 11.926-9.009-.004-.713-.489-.877-.745-.912\"},\"child\":[]}]})(props);\n};\nexport function SiDm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.1 8.683c-1.237 0-1.943 1.726-1.943 2.95 0 .502.122.72.38.72.693 0 1.876-2.012 2.12-3.262l.068-.326a2.588 2.588 0 0 0-.625-.082m1.468 5.192H7.76c.082-.476.23-.992.49-1.7h-.028c-.57.952-1.372 1.863-2.391 1.863-1.047 0-1.577-.68-1.577-2.093 0-2.487 1.29-4.757 4.172-4.757a3.3 3.3 0 0 1 .57.055l.3-1.51v-.012a9.956 9.956 0 0 0-1.114-.136l.258-1.237c.91-.095 1.848-.163 2.949-.122zm10.83 0h-1.793l.653-4.023c.136-.652.04-.91-.258-.91-.612 0-1.7 1.603-1.957 3.18l-.286 1.753h-1.794l.666-4.023c.136-.652.04-.91-.258-.91-.612 0-1.672 1.59-1.97 3.139l-.34 1.794h-1.794l.965-5.056v-.04c-.286-.055-.72-.11-1.115-.137l.258-1.236a17.857 17.857 0 0 1 2.84-.123 12.31 12.31 0 0 1-.502 1.7h.027c.598-1.02 1.237-1.795 2.392-1.795.775 0 1.29.408 1.29 1.305 0 .163-.04.326-.108.598l.014.014c.598-1.088 1.345-1.903 2.5-1.903 1.278 0 1.55.924 1.305 2.16zm3.562 1.74s-.258.312-.802.665c-1.06.72-3.166 1.63-6.442.816a40.26 40.26 0 0 1-.897-.245c-2.99-.87-4.756-1.998-8.738-2.487-2.705.068-5.45.38-6.958.978 0 0 .407.422.53.598.068.136.203.53.34.938.149.435.285.843.285.843s1.699-.897 3.683-1.427c.938-.258 1.93-.408 2.84-.354 3.044.19 5.504 1.767 8.236 3.045 1.889.53 6.51.937 7.814.353-.013-.027.245-1.291.11-3.724m-.803.666c-1.06.72-3.166 1.63-6.442.816a40.26 40.26 0 0 1-.897-.245c-2.065-.897-4.158-1.848-5-2.487 2.364.367 5.897.734 11.605-.19 0 0 .544.856.734 2.106m-22.166.585L0 17.218s1.142 1.359 1.332 1.794l.286.775s3.6-1.985 8.833-1.686a9.99 9.99 0 0 1 2.23.408s-2.135-1.386-2.556-1.522a26.5 26.5 0 0 0-5.164-.707 19.904 19.904 0 0 0-3.683 1.427s-.15-.421-.286-.842\"},\"child\":[]}]})(props);\n};\nexport function SiDocker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288Z\"},\"child\":[]}]})(props);\n};\nexport function SiDocsdotrs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22.903 11.728-4.528-1.697V4.945a1.69 1.69 0 0 0-1.097-1.58l-4.687-1.757a1.668 1.668 0 0 0-1.186 0L6.717 3.366a1.687 1.687 0 0 0-1.097 1.58v5.085l-4.528 1.697A1.69 1.69 0 0 0 0 13.308v5.16c0 .638.36 1.224.933 1.51l4.687 2.344a1.68 1.68 0 0 0 1.51 0L12 19.884l4.87 2.438a1.68 1.68 0 0 0 1.51 0l4.687-2.344a1.69 1.69 0 0 0 .933-1.51v-5.16c0-.703-.436-1.331-1.097-1.58zm-6.122-1.66-3.984 1.496V8.367l3.984-1.734zM7.22 4.88 12 3.09l4.781 1.79v.028L12 6.848l-4.781-1.94Zm3.937 13.645-3.984 1.992V16.81l3.984-1.818zm0-5.25-4.781 1.94-4.781-1.94v-.028l4.781-1.79 4.781 1.79zm11.25 5.25-3.984 1.992V16.81l3.984-1.818zm0-5.25-4.781 1.94-4.781-1.94v-.028l4.781-1.79 4.781 1.79z\"},\"child\":[]}]})(props);\n};\nexport function SiDocsify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.862c-6.617 0-12 5.383-12 12 0 1.964.49 3.406 1.5 4.408 1.706 1.696 4.619 1.868 8.05 1.868.43 0 .87-.002 1.315-.005a217.6 217.6 0 0 1 2.765 0c3.792.024 7.066.044 8.88-1.758C23.511 18.378 24 16.9 24 14.862c0-6.617-5.383-12-12-12zm-8.852 8.154a.393.393 0 1 1 0-.787.393.393 0 0 1 0 .787zM5.113 8.48c-.55.637-1.01 1.361-1.01 1.361-.06.092-.167.099-.24.017l-.26-.29a.251.251 0 0 1-.02-.303s1.11-1.559 1.806-2.186c.25-.225.248-.239.891-.692.643-.453 1.4-.826 1.4-.826a.272.272 0 0 1 .308.059l.26.29c.075.082.056.186-.04.235 0 0-1.772.887-2.353 1.509-.394.422-.192.19-.742.826zm1.576 2.143a1.377 1.377 0 1 1 2.754 0 1.377 1.377 0 0 1-2.754 0zm5.41 7.929c-1.902 0-3.443-1.542-3.443-3.443s1.644-.854 3.545-.854 3.34-1.047 3.34.854-1.541 3.443-3.443 3.443zM16.72 12a1.377 1.377 0 1 1 0-2.754 1.377 1.377 0 0 1 0 2.754z\"},\"child\":[]}]})(props);\n};\nexport function SiDoctrine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.7912 0a2.2 2.2 0 0 0-.2543.016C7.3524.1581 6.4917 1.21 6.5867 2.399a2.215 2.215 0 0 0 .6658 1.4164l-.0029.0031L9.5845 6.02c-4.1783 1.1385-7.0612 5.115-6.7067 9.5563.3906 4.897 4.578 8.612 9.4866 8.4164s8.7873-4.2318 8.7873-9.1443l-.1159-1.4517c-.3219-2.004-1.2739-3.7555-2.6244-5.0794l.0015.0004-8.077-7.706-.0015.0014v.0002A2.22 2.22 0 0 0 8.7912 0m2.2149 8.5478a1.485 1.485 0 0 1 .9095.453l4.7471 4.7728a1.324 1.324 0 0 1 .4365.789l.0168.2108a1.326 1.326 0 0 1-.4514.998l-4.7785 4.8218a1.49 1.49 0 0 1-.999.438c-.7988.0316-1.4802-.5715-1.544-1.3666a1.481 1.481 0 0 1 .4386-1.1757l-.0006-.0006 2.4214-2.4216h-5.027v-.002c-.6961.0082-1.2837-.5247-1.3393-1.223-.0568-.711.4578-1.3402 1.166-1.4252a1.4 1.4 0 0 1 .144-.0096l.0169.0002c1.6577.0056 3.3154.0025 4.9731.0025L9.8564 11.13a1.475 1.475 0 0 1-.498-.9928c-.0633-.7922.5116-1.4933 1.3027-1.588a1.5 1.5 0 0 1 .345-.0013\"},\"child\":[]}]})(props);\n};\nexport function SiDocusaurus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.462 22.201h12.321a2.466 2.466 0 0 0 2.369-1.854c.026.004.052.008.079.008a.621.621 0 0 0 .615-.615.621.621 0 0 0-.615-.615c-.027 0-.053.004-.079.007l-.014-.055a.62.62 0 0 0 .378-.568.621.621 0 0 0-.615-.615.608.608 0 0 0-.371.127l-.042-.041a.606.606 0 0 0 .125-.368c0-.67-.919-.858-1.181-.241l-.055-.014c.003-.026.008-.052.008-.079a.622.622 0 0 0-.616-.615.621.621 0 0 0-.615.615h-.096a.617.617 0 0 0-1.033 0h-.717v-2.461h2.461c.115 0 .226-.017.331-.047a.307.307 0 1 0 .529-.304l.02-.021c.052.04.116.064.186.064h.002c.337 0 .428-.463.117-.591l.007-.028c.013.001.026.004.039.004a.31.31 0 0 0 .308-.308.31.31 0 0 0-.308-.308c-.013 0-.026.003-.039.004a.28.28 0 0 1-.007-.027c.327-.13-.028-.745-.305-.528l-.02-.021a.307.307 0 0 0 .062-.184c-.011-.326-.454-.416-.591-.12a1.238 1.238 0 0 0-.32-.047h-2.143a2.465 2.465 0 0 1 2.132-1.23h7.385V9.894l-8.618-.539a1.315 1.315 0 0 1-1.229-1.308c0-.688.542-1.265 1.229-1.307l8.618-.539v-1.23a2.473 2.473 0 0 0-2.462-2.462H8.615l-.307-.533a.356.356 0 0 0-.616 0l-.307.533-.308-.533a.355.355 0 0 0-.615 0l-.308.533-.308-.533a.355.355 0 0 0-.615 0l-.308.533-.008.001-.51-.51a.354.354 0 0 0-.594.159l-.168.628-.639-.171a.357.357 0 0 0-.436.435l.172.639-.628.169a.356.356 0 0 0-.16.594l.51.51v.008l-.533.307a.356.356 0 0 0 0 .616l.533.307-.533.308a.356.356 0 0 0 0 .616l.533.307-.533.308a.355.355 0 0 0 0 .615l.533.308-.533.308a.355.355 0 0 0 0 .615l.533.308-.533.307a.356.356 0 0 0 0 .616l.533.308-.533.307a.356.356 0 0 0 0 .616l.533.307-.533.308a.355.355 0 0 0 0 .615l.533.308-.533.308a.355.355 0 0 0 0 .615l.533.308-.533.308a.355.355 0 0 0 0 .615l.533.308-.533.307a.356.356 0 0 0 0 .616l.533.307-.533.308a.355.355 0 0 0 0 .615l.533.308-.533.308a.355.355 0 0 0 0 .615l.533.308a2.463 2.463 0 0 1-2.13-1.231A2.465 2.465 0 0 0 0 19.74c0 1.35 1.112 2.46 2.462 2.461zm19.692-5.204v2.743a2.473 2.473 0 0 1-2.461 2.461h-.001 1.231a2.466 2.466 0 0 0 2.383-1.854c.026.004.052.008.079.008A.621.621 0 0 0 24 19.74a.621.621 0 0 0-.615-.615c-.027 0-.053.004-.079.007l-.014-.055a.62.62 0 0 0 .378-.568.621.621 0 0 0-.615-.615.608.608 0 0 0-.371.127l-.042-.041a.612.612 0 0 0 .125-.368.623.623 0 0 0-.613-.615zm-4.067 2.62h2.223c.067 0 .123.056.123.123a.124.124 0 0 1-.123.123h-2.223a.845.845 0 0 0 0-.246zm-.33-1.231h2.553c.067 0 .123.056.123.123a.124.124 0 0 1-.123.123h-2.553a.845.845 0 0 0 0-.246zm-1.026-1.231h3.579c.067 0 .123.056.123.123a.124.124 0 0 1-.123.123h-3.474a.85.85 0 0 0-.105-.246zm3.579-.984h-6.159a.126.126 0 0 1-.123-.123c0-.068.056-.123.123-.123h6.159c.067 0 .123.056.123.123a.124.124 0 0 1-.123.123zm1.844-3.816v2.462c.115 0 .225-.017.331-.047a.308.308 0 1 0 .528-.304l.021-.021c.052.04.116.064.186.064a.312.312 0 0 0 .307-.308.306.306 0 0 0-.189-.283l.007-.028c.013.001.026.004.04.004a.312.312 0 0 0 .307-.308.312.312 0 0 0-.307-.308c-.014 0-.027.003-.04.004l-.007-.027a.31.31 0 0 0-.118-.592.306.306 0 0 0-.186.064l-.021-.021a.3.3 0 0 0 .063-.184c-.011-.326-.454-.416-.591-.12a1.24 1.24 0 0 0-.321-.047zm-6.059 2.339h4.215c.067 0 .123.056.123.123a.124.124 0 0 1-.123.123h-4.451a.564.564 0 0 0 .073-.19.553.553 0 0 0 .163-.056zm.454-1.208h3.761c.067 0 .123.056.123.123a.124.124 0 0 1-.123.123h-3.772a.552.552 0 0 0 .011-.246zm5.605-6.225h-.004c-.381.013-.561.393-.719.729-.166.35-.294.578-.504.572-.233-.009-.366-.271-.506-.549-.162-.32-.347-.682-.734-.668-.375.013-.556.344-.715.636-.169.311-.285.5-.507.491-.237-.008-.363-.222-.509-.469-.163-.275-.351-.585-.731-.574-.368.013-.549.294-.709.542-.169.262-.287.421-.513.412-.243-.009-.368-.186-.513-.391-.163-.231-.347-.491-.726-.479-.36.013-.541.243-.701.446-.151.192-.27.344-.52.335h-.005a.126.126 0 0 0-.123.123c0 .066.053.121.119.123.371.012.559-.222.723-.429.145-.184.27-.343.516-.352.237-.01.348.138.516.375.16.226.341.482.705.495.382.013.566-.273.729-.525.145-.226.271-.421.511-.429.22-.008.34.166.51.453.159.271.34.577.712.59.385.014.57-.322.732-.619.14-.257.273-.5.507-.508.221-.005.336.196.506.533.159.314.339.67.717.684h.021c.377 0 .556-.378.714-.713.14-.297.273-.576.501-.588zM7.385 6.509a.312.312 0 0 1-.308-.308c-.01-.532-.378-.911-.927-.922-.528-.011-.888.432-.919.922-.011.168-.139.307-.308.308a.31.31 0 0 1-.308-.308c0-.848.69-1.538 1.539-1.538.848 0 1.538.69 1.538 1.538a.312.312 0 0 1-.307.308zm9.846-2.308a.31.31 0 0 1 .308.308.31.31 0 0 1-.308.308.31.31 0 0 1-.308-.308.31.31 0 0 1 .308-.308zm2.461-.153a.31.31 0 0 1 .307.308.31.31 0 0 1-.308.308h-.001a.31.31 0 0 1-.307-.308.31.31 0 0 1 .308-.308z\"},\"child\":[]}]})(props);\n};\nexport function SiDogecoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.288 7.908h-1.715v3.38h2.697v1.415h-2.697v3.38h1.799c.462 0 3.794.052 3.789-3.933-.005-3.984-3.232-4.242-3.873-4.242zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.472 18.481H8.126v-5.778H6.594v-1.415h1.532V5.511h3.73c.882 0 6.727-.183 6.727 6.594-.001 6.888-6.111 6.376-6.111 6.376z\"},\"child\":[]}]})(props);\n};\nexport function SiDoi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.633-5.367 12-12 12S0 18.633 0 12 5.367 0 12 0s12 5.367 12 12ZM7.588 6.097v4.471c-.663-.925-1.403-1.373-2.406-1.373-2.046 0-3.244 1.441-3.244 3.847 0 2.357 1.325 3.848 3.166 3.848 1.12 0 1.88-.4 2.445-1.325l-.039 1.042h2.045V6.097Zm-1.763 8.942c-1.12 0-1.802-.76-1.802-2.045 0-1.325.682-2.085 1.802-2.085 1.081 0 1.802.76 1.802 2.085 0 1.285-.672 2.045-1.802 2.045Zm12.253-1.948c0-2.172-1.578-3.789-3.906-3.789-2.328 0-3.945 1.695-3.945 3.789 0 2.133 1.578 3.789 3.945 3.789 2.289 0 3.906-1.656 3.906-3.789Zm-2.094-.01c0 1.14-.711 1.89-1.851 1.89-1.139 0-1.851-.75-1.851-1.89 0-1.139.712-1.89 1.851-1.89 1.149 0 1.861.751 1.851 1.89Zm2.6-5.795c0 .633.517 1.227 1.189 1.227.633 0 1.188-.555 1.188-1.227a1.17 1.17 0 0 0-1.188-1.189c-.672 0-1.179.556-1.189 1.189Zm.166 9.341h2.055V9.604H18.75Z\"},\"child\":[]}]})(props);\n};\nexport function SiDolby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3.564v16.872h2.488c4.648 0 8.438-3.788 8.438-8.436s-3.79-8.436-8.438-8.436H0zm21.512 0c-4.648 0-8.438 3.788-8.438 8.436s3.79 8.436 8.438 8.436H24V3.564h-2.488z\"},\"child\":[]}]})(props);\n};\nexport function SiDoordash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.071 8.409a6.09 6.09 0 00-5.396-3.228H.584A.589.589 0 00.17 6.184L3.894 9.93a1.752 1.752 0 001.242.516h12.049a1.554 1.554 0 11.031 3.108H8.91a.589.589 0 00-.415 1.003l3.725 3.747a1.75 1.75 0 001.242.516h3.757c4.887 0 8.584-5.225 5.852-10.413\"},\"child\":[]}]})(props);\n};\nexport function SiDota2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 9.817 23.607 L 9.471 23.313 L 9.003 23.273 C 8.419 23.225 8.147 23.172 7.817 23.041 L 7.559 22.938 L 7.281 23.048 C 7.045 23.143 6.467 23.229 6.028 23.236 C 6.004 23.236 5.964 23.18 5.939 23.111 C 5.911 23.041 5.862 22.974 5.824 22.961 C 5.789 22.949 5.527 23.007 5.237 23.094 L 4.712 23.252 L 4.523 23.161 C 4.285 23.045 4.185 23.047 3.787 23.168 C 3.484 23.262 3.446 23.264 3.203 23.212 C 2.84 23.136 2.537 23.141 1.854 23.238 C 1.11 23.344 1.094 23.344 0.875 23.194 C 0.728 23.094 0.648 23.069 0.469 23.069 C 0.266 23.069 0.244 23.06 0.221 22.965 C 0.206 22.906 0.225 22.787 0.264 22.688 C 0.376 22.41 0.42 21.736 0.432 20.125 L 0.444 18.62 L 0.655 18.635 L 0.863 18.65 L 0.895 17.78 C 0.911 17.302 0.927 16.611 0.93 16.246 L 0.935 15.586 L 0.823 15.506 C 0.518 15.283 0.532 15.315 0.405 14.588 C 0.339 14.211 0.274 13.658 0.259 13.358 C 0.234 12.826 0.236 12.811 0.334 12.7 L 0.434 12.586 L 0.682 12.799 C 0.82 12.916 0.937 12.993 0.948 12.969 C 0.984 12.856 0.871 11.508 0.813 11.338 C 0.775 11.238 0.747 11.101 0.747 11.03 C 0.747 10.962 0.679 10.778 0.594 10.618 L 0.443 10.329 L 0.494 9.816 C 0.561 9.136 0.475 8.636 0.19 8.034 L 0.065 7.763 L 0.144 7.09 L 0.228 6.416 L 0.14 6.067 L 0.049 5.717 L 0.154 5.326 L 0.255 4.933 L 0.14 4.553 L 0.021 4.174 L 0.164 3.774 C 0.305 3.385 0.308 3.364 0.305 2.73 C 0.303 2.016 0.228 1.551 0.08 1.365 C -0.047 1.203 -0.026 1.092 0.163 0.919 C 0.253 0.834 0.328 0.726 0.328 0.681 C 0.328 0.612 0.359 0.599 0.549 0.595 C 0.669 0.595 1.039 0.563 1.372 0.525 L 1.979 0.452 L 2.773 0.569 C 3.565 0.684 3.566 0.684 4.652 0.638 L 5.74 0.591 L 5.997 0.746 L 6.257 0.899 L 7.312 0.884 L 8.368 0.869 L 8.724 0.74 C 8.918 0.669 9.229 0.545 9.414 0.461 C 9.596 0.377 9.927 0.264 10.144 0.204 L 10.542 0.099 L 11.056 0.261 L 11.57 0.425 L 12.014 0.276 L 12.456 0.127 L 12.933 0.285 C 13.196 0.371 13.684 0.583 14.022 0.757 L 14.633 1.069 L 15.273 1.051 C 15.758 1.036 15.924 1.018 15.95 0.973 C 15.97 0.942 16.031 0.758 16.083 0.566 L 16.178 0.215 L 16.783 0.235 C 17.236 0.251 17.642 0.299 18.384 0.429 L 19.379 0.605 L 19.638 0.501 C 19.778 0.444 20.046 0.375 20.233 0.351 C 20.546 0.309 20.6 0.314 21.027 0.422 C 21.425 0.522 21.562 0.537 22.109 0.537 C 22.454 0.537 22.812 0.522 22.907 0.506 C 23.07 0.478 23.097 0.489 23.428 0.728 C 23.621 0.866 23.792 1.001 23.807 1.03 C 23.824 1.057 23.86 1.203 23.884 1.354 L 23.93 1.632 L 23.721 2.028 C 23.604 2.246 23.507 2.443 23.507 2.466 C 23.507 2.489 23.555 2.527 23.611 2.554 C 23.668 2.579 23.764 2.677 23.826 2.771 L 23.937 2.941 L 23.912 5.226 C 23.897 6.483 23.872 7.604 23.858 7.715 L 23.831 7.919 L 23.486 7.897 L 23.142 7.87 L 23.113 8.061 C 23.097 8.164 23.084 8.353 23.084 8.485 C 23.084 8.677 23.054 8.778 22.924 9.031 L 22.761 9.342 L 22.851 9.471 C 22.901 9.543 23.072 9.736 23.231 9.901 L 23.523 10.206 L 23.434 10.529 L 23.344 10.854 L 23.451 11.542 C 23.575 12.369 23.566 12.577 23.363 13.293 C 23.282 13.58 23.217 13.846 23.217 13.886 C 23.217 13.961 23.272 13.98 23.644 14.031 C 23.809 14.052 23.844 14.072 23.844 14.147 C 23.844 14.196 23.87 15.251 23.904 16.492 C 24.011 20.567 24.021 21.456 23.971 22.38 C 23.944 22.862 23.913 23.262 23.904 23.271 C 23.894 23.28 23.563 23.147 23.166 22.976 L 22.443 22.668 L 22.131 22.803 C 21.809 22.942 21.777 22.978 21.735 23.245 C 21.706 23.422 21.728 23.414 20.935 23.576 L 20.468 23.672 L 20.014 23.52 C 19.594 23.379 19.537 23.369 19.206 23.391 C 18.959 23.406 18.789 23.394 18.644 23.351 C 18.436 23.292 18.436 23.292 18.087 23.453 L 17.735 23.612 L 16.435 23.612 C 15.066 23.61 14.784 23.632 13.841 23.807 C 13.189 23.927 12.96 23.922 11.819 23.785 L 11.217 23.711 L 10.796 23.807 C 10.562 23.861 10.326 23.903 10.27 23.901 C 10.202 23.901 10.046 23.8 9.819 23.607 L 9.817 23.607 Z M 7.284 19.918 C 8.289 19.539 9.118 19.223 9.123 19.216 C 9.136 19.202 5.206 15.39 4.684 14.909 C 4.539 14.775 4.409 14.672 4.399 14.682 C 4.39 14.693 4.07 15.547 3.69 16.577 C 3.27 17.715 3.011 18.476 3.032 18.508 C 3.057 18.55 5.424 20.599 5.451 20.605 C 5.454 20.605 6.279 20.296 7.284 19.918 Z M 20.796 17.829 C 21.319 16.564 21.732 15.519 21.718 15.504 C 21.699 15.483 11.888 8.858 5.02 4.226 L 4.469 3.855 L 3.569 4.262 C 3.072 4.484 2.673 4.687 2.68 4.709 C 2.69 4.737 6.011 8.219 10.064 12.449 L 17.432 20.141 L 18.638 20.133 L 19.847 20.125 L 20.796 17.829 Z M 19.434 6.972 C 19.607 6.01 19.75 5.191 19.75 5.151 C 19.75 5.108 19.497 4.902 19.074 4.605 C 18.702 4.343 18.373 4.115 18.344 4.096 C 18.291 4.063 14.442 5.104 14.447 5.149 C 14.451 5.179 19.091 8.748 19.107 8.731 C 19.115 8.725 19.261 7.932 19.434 6.972 Z\"},\"child\":[]}]})(props);\n};\nexport function SiDotenv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0v24H0V0h24ZM10.933 15.89H6.84v5.52h4.198v-.93H7.955v-1.503h2.77v-.93h-2.77v-1.224h2.978v-.934Zm2.146 0h-1.084v5.52h1.035v-3.6l2.226 3.6h1.118v-5.52h-1.036v3.686l-2.259-3.687Zm5.117 0h-1.208l1.973 5.52h1.19l1.976-5.52h-1.182l-1.352 4.085-1.397-4.086ZM5.4 19.68H3.72v1.68H5.4v-1.68Z\"},\"child\":[]}]})(props);\n};\nexport function SiDotnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.77h-2.468v7.565h-1.425V8.77h-2.462V7.53H24zm-6.852 7.565h-4.821V7.53h4.63v1.24h-3.205v2.494h2.953v1.234h-2.953v2.604h3.396zm-6.708 0H8.882L4.78 9.863a2.896 2.896 0 0 1-.258-.51h-.036c.032.189.048.592.048 1.21v5.772H3.157V7.53h1.659l3.965 6.32c.167.261.275.442.323.54h.024c-.04-.233-.06-.629-.06-1.185V7.529h1.372zm-8.703-.693a.868.829 0 0 1-.869.829.868.829 0 0 1-.868-.83.868.829 0 0 1 .868-.828.868.829 0 0 1 .869.829Z\"},\"child\":[]}]})(props);\n};\nexport function SiDouban (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.51 3.06h22.98V.755H.51V3.06Zm20.976 2.537v9.608h-2.137l-1.669 5.76H24v2.28H0v-2.28h6.32l-1.67-5.76H2.515V5.597h18.972Zm-5.066 9.608H7.58l1.67 5.76h5.501l1.67-5.76ZM18.367 7.9H5.634v5.025h12.733V7.9Z\"},\"child\":[]}]})(props);\n};\nexport function SiDoubanread (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.328 5.553c-2.648.906-4.008 4.372-7.101 4.833C4.827 10.833.752 7.205 0 6c0 0 .526.906 1.28 2.105C5.205 14.297 7.772 18.224 12 18.75c5.28.68 8.146-4.535 8.826-6.64.607-1.732 1.733-1.66 2.494-1.433l.68.227s-2.729-7.402-8.688-5.36l.016.008z\"},\"child\":[]}]})(props);\n};\nexport function SiDovecot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 8.784 8.39 C 8.581 8.391 8.382 8.458 8.22 8.582 L 0.118 14.772 C -0.04 14.897 -0.04 15.138 0.118 15.262 L 0.457 15.515 C 0.61 15.635 0.825 15.635 0.98 15.515 L 4.998 12.454 C 5.22 12.286 5.526 12.286 5.748 12.454 L 8.407 14.487 C 8.628 14.655 8.934 14.655 9.156 14.487 L 12.671 11.804 C 12.902 11.636 12.902 11.291 12.671 11.122 L 9.349 8.582 C 9.187 8.458 8.988 8.39 8.784 8.39 Z M 18.082 8.39 C 17.878 8.39 17.68 8.458 17.519 8.582 L 9.417 14.778 C 9.255 14.901 9.255 15.144 9.417 15.267 L 9.752 15.522 C 9.908 15.638 10.124 15.638 10.279 15.522 L 14.914 11.989 C 15.136 11.823 15.442 11.823 15.662 11.989 L 20.189 15.441 C 20.41 15.61 20.718 15.61 20.939 15.441 L 23.828 13.228 C 24.057 13.056 24.057 12.712 23.828 12.54 L 18.647 8.582 C 18.485 8.458 18.286 8.39 18.082 8.39 Z\"},\"child\":[]}]})(props);\n};\nexport function SiDovetail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.75 0 1.5 3l5.25 3v6L12 9V3Zm0 12L1.5 15l5.25 3v6L12 21v-6Zm10.5-6L12 8.966 17.25 12v6l5.25-3V9Z\"},\"child\":[]}]})(props);\n};\nexport function SiDowndetector (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.49 0 .257 5.362.257 12v12H12c6.51 0 11.743-5.362 11.743-12S18.51 0 12 0Zm0 3.51c.543 0 1.086.065 1.66.192.383.128.639.383.639.766l-.638 10.085c0 .255-.256.511-.512.511-.766.128-1.533.128-2.171 0-.383 0-.639-.256-.639-.51L9.701 4.467c0-.383.256-.638.638-.766A7.583 7.583 0 0 1 12 3.51Zm.065 12.99c.447 0 .892.031 1.339.095.255 0 .384.256.384.384.127.894.127 1.786 0 2.807 0 .256-.257.384-.384.384a9.427 9.427 0 0 1-2.68 0c-.256 0-.384-.256-.384-.384-.128-.893-.128-1.786 0-2.807 0-.255.256-.384.383-.384a9.478 9.478 0 0 1 1.342-.095z\"},\"child\":[]}]})(props);\n};\nexport function SiDoxygen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.371 13.934.013.892h-.059l-10.273.01-.015-.902h10.334zm-6.548-1.257c-.075-.206-.113-.436-.113-.693s.038-.487.113-.693a1.47 1.47 0 0 1 .32-.53 1.36 1.36 0 0 1 .5-.34c.193-.084.41-.125.652-.125.241 0 .46.04.653.123.198.078.366.192.504.34.138.145.246.322.32.532.076.206.113.437.113.693s-.037.487-.112.693c-.07.197-.178.378-.32.532-.142.146-.314.26-.505.334a1.73 1.73 0 0 1-.653.118c-.242 0-.46-.04-.653-.118a1.417 1.417 0 0 1-.499-.334 1.546 1.546 0 0 1-.32-.532zm.73-.693a2 2 0 0 0 .035.378c.024.12.064.229.12.328.06.095.136.17.23.229a.686.686 0 0 0 .357.086c.143 0 .26-.03.356-.086a.63.63 0 0 0 .231-.23.992.992 0 0 0 .125-.327c.048-.25.048-.505 0-.755a.949.949 0 0 0-.125-.328.63.63 0 0 0-.23-.229.64.64 0 0 0-.357-.093.64.64 0 0 0-.356.093.696.696 0 0 0-.232.23 1.029 1.029 0 0 0-.119.327c-.023.123-.035.25-.035.377zm12.927.68a2.07 2.07 0 0 1-.106-.68c0-.239.037-.462.112-.668.139-.394.432-.715.813-.89a1.55 1.55 0 0 1 .64-.13c.263 0 .49.053.684.16.194.104.352.244.475.421.126.177.217.38.273.606.055.227.075.464.059.712h-2.214c.012.285.08.49.208.618.126.128.309.192.546.192a.74.74 0 0 0 .439-.13c.123-.09.198-.185.226-.284h.742c-.12.383-.301.657-.547.822-.245.165-.541.248-.89.248-.241 0-.46-.04-.653-.118a1.388 1.388 0 0 1-.492-.346 1.595 1.595 0 0 1-.315-.532zm.736-1.026h1.372c-.04-.223-.111-.392-.214-.507-.1-.116-.252-.174-.457-.174a.7.7 0 0 0-.338.074.652.652 0 0 0-.214.174.734.734 0 0 0-.113.222c-.02.08-.032.15-.036.21v.001zM8.103 13.58l.642-1.008.64 1.008h.962l-1.134-1.7 1.01-1.498H9.29l-.534.835-.54-.835h-.96l1.008 1.515L7.16 13.58h.944zm5.408-3.198h-.872l-.67 2.19h-.014l-.694-2.19h-.896l1.074 3c.024.064.036.13.035.198a.44.44 0 0 1-.082.26.315.315 0 0 1-.244.136 1.677 1.677 0 0 1-.25-.006 49.755 49.755 0 0 1-.243-.025v.724c.087.008.173.014.256.018.087.008.174.013.261.013.29 0 .514-.056.676-.167s.29-.297.38-.557l1.283-3.594zm3.018 3.89a1.28 1.28 0 0 1-.48.366c-.21.099-.491.148-.843.148a1.8 1.8 0 0 1-.463-.062 1.413 1.413 0 0 1-.427-.18 1.103 1.103 0 0 1-.321-.32.95.95 0 0 1-.143-.464h.837c.04.165.117.278.232.34a.784.784 0 0 0 .398.099c.237 0 .409-.074.516-.223a.888.888 0 0 0 .16-.563v-.42h-.012a.863.863 0 0 1-.392.377 1.223 1.223 0 0 1-.528.118c-.23 0-.427-.042-.593-.124a1.18 1.18 0 0 1-.41-.347 1.548 1.548 0 0 1-.237-.513 2.669 2.669 0 0 1-.071-.625c0-.206.027-.404.083-.594a1.57 1.57 0 0 1 .255-.507c.11-.149.247-.266.41-.352a1.21 1.21 0 0 1 .57-.13c.2 0 .377.04.527.117.165.09.3.228.386.396h.012v-.427h.8v2.994c0 .128-.016.275-.052.44a1.05 1.05 0 0 1-.214.457zm-.534-2.33a1.91 1.91 0 0 0-.035-.373.957.957 0 0 0-.12-.315.626.626 0 0 0-.22-.216.67.67 0 0 0-.343-.08.614.614 0 0 0-.308.073.682.682 0 0 0-.214.204.914.914 0 0 0-.125.291c-.024.108-.036.22-.036.34 0 .117.01.232.03.348.024.11.062.212.113.303.055.09.127.165.214.222.097.06.21.09.326.087a.648.648 0 0 0 .54-.272.849.849 0 0 0 .13-.278c.032-.108.048-.22.048-.335zm5.824-.039c0-.325.052-.558.155-.698.103-.145.269-.217.498-.217.202 0 .343.066.422.198.079.128.118.324.118.587v1.807h.843v-1.967c0-.198-.018-.377-.053-.538a.996.996 0 0 0-.172-.414.793.793 0 0 0-.344-.267 1.322 1.322 0 0 0-.553-.099c-.178 0-.352.044-.522.13a.964.964 0 0 0-.415.402h-.018v-.445h-.801v3.198h.842v-1.677zm-21.737.694a2.465 2.465 0 0 1 0-1.262c.06-.202.144-.38.255-.532.115-.153.257-.274.428-.365a1.2 1.2 0 0 1 .593-.142c.182 0 .354.04.517.123a.895.895 0 0 1 .391.353h.012V9.164h.843v4.416h-.8v-.408h-.013a.9.9 0 0 1-.392.378 1.26 1.26 0 0 1-.54.11c-.23 0-.431-.044-.606-.135a1.302 1.302 0 0 1-.433-.378 1.875 1.875 0 0 1-.255-.55zm.76-.619c0 .124.014.248.042.37.027.125.07.237.13.336.063.095.14.173.231.235.103.06.22.089.34.086a.633.633 0 0 0 .57-.315c.054-.1.094-.21.117-.334a2.025 2.025 0 0 0 0-.76.887.887 0 0 0-.125-.324.66.66 0 0 0-.219-.228.633.633 0 0 0-.344-.087.663.663 0 0 0-.35.087.697.697 0 0 0-.232.228c-.058.103-.1.214-.124.33-.024.12-.036.244-.036.376zm12.816 1.999-.01-.047-.986.01-.013.04c-.091.282-.18.469-.407.705l-.095.1h2.006l-.133-.105c-.187-.146-.295-.356-.362-.703zm3.487-.061-.01.035c-.091.3-.272.565-.517.76l-.108.088 7.457-.04.033-.891-6.855.048z\"},\"child\":[]}]})(props);\n};\nexport function SiDpd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.01 10.71a.364.364 0 01-.343-.006l-.558-.331a.43.43 0 01-.182-.312l-.014-.65a.363.363 0 01.165-.3l6.7-3.902L12.377.085A.799.799 0 0012 0a.798.798 0 00-.377.085l-9.4 5.124 10.53 6.13c.098.054.172.181.172.295v8.944c0 .112-.08.241-.178.294l-.567.315c-.171.062-.256.043-.361 0l-.569-.315a.362.362 0 01-.175-.294v-7.973a.223.223 0 00-.095-.156L1.702 7.048v10.579c0 .236.167.528.371.648l9.556 5.636c.102.06.237.09.371.089a.745.745 0 00.371-.09l9.557-5.635a.835.835 0 00.37-.648V7.047Z\"},\"child\":[]}]})(props);\n};\nexport function SiDragonframe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.936.001A.937.937 0 0 0 0 .937v22.132c0 .519.42.93.936.93h9.968s-.519-.466-.611-.56a1.14 1.14 0 0 1-.237-.365c-.053-.128-.094-.383-.112-.51-.017-.128-.06-.222-.102-.332-.043-.112-.238-.381-.289-.45-.05-.068-.332-.39-.39-.459-.06-.068-.06-.145-.034-.195.024-.051-.018-.095-.086-.172-.068-.075-.382-.415-.518-.576-.136-.162-.068-.204-.033-.221.033-.018.27.136.391.196.092.045.325.168.433.197.048.013.073.011.083-.009.013-.02.26-.364.367-1.023.119-1.171-.12-1.867-.4-2.456a7.363 7.363 0 0 0-.714-1.206c-.145-.187-.815-.765-.927-.841-.11-.077-1.393-.918-1.538-1.038-.144-.118.025-.166.08-.142.143.064.428.178.558.238.151.065.91.33 1.054.364.145.033.126.03.103-.119-.017-.111-.23-.604-.332-.782-.103-.18-.553-.817-.859-1.113-.304-.297-.663-.681-.799-.892-.136-.213-.696-1.368-.868-1.792a12.048 12.048 0 0 0-.527-1.114c-.059-.101-.134-.154-.125-.24.007-.083.253.128.365.23.167.153.388.445.661.86.272.418.571.688.621.738.051.05.39.393.44.424.033.017.046.004.053-.024.02-.084 0-.295-.033-.46-.042-.221-.018-.748-.092-1.012-.078-.261-.113-.389-.469-1.02-.358-.628-.74-1.681-1.053-3.347a12.3 12.3 0 0 1-.163-3.264c.018-.163.085-.136.13-.128.04.01.065.265.065.265s-.015.612.731 2.609c.75 1.996 1.633 2.133 1.71 2.15.077.016.11.007.11-.035 0-.041-.213-.9-.136-1.57.076-.673.238-.945.33-1.04.071-.07.069-.014.069.196-.002.07-.002.158 0 .264.01.426.281.995.281.995s.118.5.323-.664c.296-1.954.018-2.995-.06-3.274C8.28.998 7.944 0 7.157 0Zm15.427 0c-.65 0-.895.997-.972 1.279-.076.278-.357 1.32-.059 3.274.204 1.164.323.664.323.664s.273-.57.281-.995c.002-.106 0-.193 0-.264-.002-.21-.002-.266.068-.195.092.094.255.366.33 1.039.077.67-.134 1.529-.134 1.57 0 .042.032.05.11.035.077-.017.96-.153 1.709-2.15.746-1.997.729-2.61.729-2.61s.027-.254.068-.264c.042-.008.111-.035.128.128a12.22 12.22 0 0 1-.16 3.264c-.316 1.666-.698 2.72-1.055 3.347-.356.631-.392.759-.469 1.02-.076.264-.05.79-.092 1.012-.032.165-.053.376-.032.46.006.028.02.041.05.024.053-.03.39-.374.44-.424.052-.05.35-.32.62-.738.273-.415.495-.707.664-.86.113-.102.356-.313.365-.23.009.086-.066.139-.125.24-.06.1-.359.688-.53 1.114-.169.424-.73 1.579-.866 1.792-.135.21-.494.595-.798.892-.306.296-.756.933-.86 1.113-.1.178-.313.67-.331.782-.023.15-.042.152.103.119.143-.033.9-.299 1.052-.364.132-.06.417-.174.56-.238.055-.024.225.024.08.142-.146.12-1.428.96-1.54 1.038-.11.076-.782.654-.925.84a7.129 7.129 0 0 0-.714 1.207c-.28.589-.519 1.285-.4 2.456.108.659.354 1.004.364 1.023.014.02.038.022.085.009.11-.029.34-.152.434-.197.119-.06.358-.214.39-.196.036.017.102.06-.032.221-.136.161-.45.501-.518.576-.068.077-.112.121-.086.172a.18.18 0 0 1-.035.195c-.06.068-.338.39-.391.46-.05.067-.246.337-.288.449-.042.11-.085.204-.103.332a2.416 2.416 0 0 1-.11.51 1.178 1.178 0 0 1-.237.364c-.095.095-.646.56-.646.56h10.256a.945.945 0 0 0 .936-.947V.937A.937.937 0 0 0 23.064 0ZM8.933 11.49a.078.078 0 0 0-.085.074c-.015.238-.038.422-.053.642-.017.25-.05.531.063.784.113.247.366.661.45.782.09.12.429.604.513.734.086.13.307.533.345.604.04.068.015.068.07.068.033 0 .04-.176.04-.325 0-.084-.003-.158-.003-.187 0-.494.018-.96-.147-1.432a1.266 1.266 0 0 0-.175-.345c-.123-.169-.255-.331-.383-.494-.05-.066-.1-.134-.16-.192-.09-.091-.327-.379-.382-.504-.04-.097-.055-.198-.084-.207a.038.038 0 0 0-.01-.002zm5.915 0a.034.034 0 0 0-.01.002c-.03.009-.044.11-.086.207-.053.125-.29.413-.383.504-.059.058-.107.126-.157.192-.13.163-.261.325-.382.494a1.25 1.25 0 0 0-.176.345c-.165.472-.147.938-.147 1.432 0 .077-.016.512.037.512.055 0 .03 0 .07-.068.037-.07.26-.475.343-.604.083-.13.425-.613.514-.734a7.1 7.1 0 0 0 .45-.782c.065-.143.082-.294.082-.443a4.3 4.3 0 0 0-.017-.34c-.019-.22-.038-.405-.054-.643-.003-.059-.056-.076-.084-.074zM10.7 19.994c-.006 0-.006.007-.006.029 0 .032-.02.16-.01.239.005.082.017.262.03.35.006.053.004.148.002.247v.192c.004.144-.015.412-.137.63 0 0-.034.035-.034.061 0 .03.024.042.05.093.046.087.194.272.249.33.052.057.155.181.272.087.044-.037.057-.095.057-.171 0-.12-.038-.288-.057-.494-.005-.035-.097-.407-.132-.567-.024-.119-.101-.464-.125-.578-.015-.067-.077-.274-.088-.314-.01-.037-.031-.12-.055-.13l-.016-.004zm2.345 0c-.004 0-.01.002-.019.005-.021.008-.04.092-.052.13-.01.039-.072.246-.088.313-.026.114-.1.46-.127.578-.033.16-.125.532-.13.567-.032.335-.114.569 0 .665.114.094.218-.03.273-.088.053-.057.201-.242.248-.33.026-.05.05-.063.05-.092 0-.026-.035-.06-.035-.06a1.277 1.277 0 0 1-.139-.631c.003-.057 0-.123 0-.19a2.476 2.476 0 0 1 .005-.25c.011-.087.022-.268.032-.349.008-.08-.012-.207-.012-.24 0-.021 0-.028-.006-.028z\"},\"child\":[]}]})(props);\n};\nexport function SiDraugiemdotlv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.12 7.694c4.3.056 6.808 2.693 3.96 6.3-1.307 1.662-3.517 3.303-6.465 4.373l-.422.144c-.278.09-.553.173-.823.258-.638.18-1.26.34-1.863.455-.645.134-1.268.229-1.87.298-.43.042-.844.07-1.245.078-2.743.07-4.806-.68-5.477-2.285-.81-1.919.83-4.592 4.116-6.627C4.597 11.661.188 13.96 0 17.256v.404a4.307 4.307 0 0 0 .193 1.029c.7 2.228 4.003 3.267 8.21 2.894a19.43 19.43 0 0 0 1.244-.147 24.08 24.08 0 0 0 3.733-.874c.137-.05.275-.09.414-.14.283-.09.561-.184.831-.29 3.64-1.322 6.342-3.087 7.921-5.101.898-1.155 1.364-2.236 1.454-3.185v-.723c-.26-2.403-3.064-3.815-6.88-3.43zm-2.788-1.192a1.237 1.237 0 0 0 .283-.033c.61-.152.908-.803.934-1.572.028-.815-.257-1.495-.934-1.592a.826.826 0 0 0-.18 0 1.111 1.111 0 0 0-1.065.79 2.526 2.526 0 0 0-.154.815 2.192 2.192 0 0 0 .154.954.993.993 0 0 0 .962.638zm-.013.273a2.946 2.946 0 0 0-.7.075l.057.077.103.185.085.196.07.2.046.206.036.208.02.217v.427l-.015.216v.213l-.028.216-.029.214-.041.216-.041.214-.041.208-.05.208-.04.201-.05.193-.048.188-.049.18-.041.172-.041.165-.02.105-.03.116-.025.126-.023.131-.026.14-.02.118v.025l-.029.155-.028.151-.02.16-.037.175-.02.167-.028.165-.021.175-.026.164-.023.175-.02.173-.021.172c.041.5.077.921.098 1.163a1.253 1.253 0 0 0 .167.61.772.772 0 0 0 .648.295.947.947 0 0 0 .597-.213 1.178 1.178 0 0 0 .278-.692c.11-.713.43-3.054.705-4.057.396-1.446 1.343-4.078-.983-4.278a2.259 2.259 0 0 0-.296-.016zm-2.83-.743h.016c.9 0 1.322-.829 1.322-1.84 0-1.01-.42-1.842-1.32-1.85h-.018c-.913 0-1.335.831-1.335 1.85 0 1.019.425 1.84 1.335 1.84zm-1.852 4.273c.082.352.167.679.237.97.283 1.155.56 3.84.663 4.65.103.811.389.991.97 1.045.574-.054.865-.226.963-1.044.097-.818.38-3.496.656-4.651.069-.291.159-.618.257-.97.257-1.06.463-2.316 0-3.108-.299-.515-.867-.854-1.863-.854-.995 0-1.58.34-1.87.854-.476.803-.27 2.048-.013 3.108zM8.402 6.469a1.237 1.237 0 0 0 .283.033.993.993 0 0 0 .952-.65 2.403 2.403 0 0 0 .152-.955 2.673 2.673 0 0 0-.152-.815 1.122 1.122 0 0 0-1.065-.79.803.803 0 0 0-.18 0c-.672.098-.962.772-.937 1.592.021.782.327 1.433.947 1.585zm-.288 8.654a1.13 1.13 0 0 0 .288.692.944.944 0 0 0 .594.214.772.772 0 0 0 .651-.296 1.451 1.451 0 0 0 .168-.61l.095-1.155v-.015l-.02-.173-.021-.172-.029-.175-.02-.165-.02-.175-.027-.164-.033-.157-.026-.165-.026-.17-.02-.151-.028-.155v-.02L9.616 12l-.028-.14-.028-.131-.02-.126-.026-.116-.029-.105-.036-.165-.049-.172-.04-.18-.047-.188-.049-.193-.049-.2-.041-.222-.049-.208-.041-.214-.036-.214-.026-.213-.028-.216-.02-.214V8.14l.02-.216.033-.208.05-.206.061-.2.09-.196.105-.186.055-.077a2.977 2.977 0 0 0-.7-.074 2.218 2.218 0 0 0-.296 0c-2.315.2-1.379 2.83-.983 4.278.275 1.014.594 3.355.705 4.067z\"},\"child\":[]}]})(props);\n};\nexport function SiDreamstime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.532 5.153C16.952-1.604 7.118-.402 2.764 4.628.586 7.105-.241 10.558.059 13.711c.3 2.478 1.201 4.73 2.478 6.231 3.378 4.13 9.234 4.58 13.063 1.953 5.405-3.755 5.03-9.834 2.102-13.214-5.255-6.006-14.264-.075-10.885 6.757.825 1.65 2.7 2.552 4.429 2.552 2.402 0 4.279-2.852 3.153-4.579-1.126-1.802-3.078 0-2.253 1.35.676 1.052-.75 1.653-1.35 1.503-1.577-.376-2.329-2.553-1.802-4.354.45-1.577 2.1-2.628 3.678-2.553 2.177.15 4.58 1.877 4.354 5.63-.525 6.082-8.484 7.208-11.636 2.853-4.955-6.982.9-16.366 9.835-13.513 4.58 1.5 7.958 6.907 5.855 12.688-.825 2.177-1.275 3.002-1.35 3.754-.377 2.777 8.408-5.856 1.8-15.617z\"},\"child\":[]}]})(props);\n};\nexport function SiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12-5.385 12-12 12zm10.12-10.358c-.35-.11-3.17-.953-6.384-.438 1.34 3.684 1.887 6.684 1.992 7.308 2.3-1.555 3.936-4.02 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4 1.73 1.358 3.92 2.166 6.29 2.166 1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765.135-.045.27-.084.405-.12-.26-.585-.54-1.167-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248-1.698-3.018-3.53-5.558-3.8-5.928-2.868 1.35-5.01 3.99-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6 3.645-1.365 5.19-3.44 5.373-3.702-1.81-1.61-4.19-2.586-6.795-2.586-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04.24.49.47.985.68 1.486.08.18.15.36.22.53 3.41-.43 6.8.26 7.14.33-.02-2.42-.88-4.64-2.31-6.38z\"},\"child\":[]}]})(props);\n};\nexport function SiDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.353 11.823a1.036 1.036 0 0 0-.395-1.422 1.063 1.063 0 0 0-1.437.399L.138 16.702a1.035 1.035 0 0 0 .395 1.422 1.063 1.063 0 0 0 1.437-.398l3.383-5.903Zm11.216 0a1.036 1.036 0 0 0-.394-1.422 1.064 1.064 0 0 0-1.438.399l-3.382 5.902a1.036 1.036 0 0 0 .394 1.422c.506.283 1.15.104 1.438-.398l3.382-5.903Zm7.293-4.525a1.036 1.036 0 0 0-.395-1.422 1.062 1.062 0 0 0-1.437.399l-3.383 5.902a1.036 1.036 0 0 0 .395 1.422 1.063 1.063 0 0 0 1.437-.399l3.383-5.902Zm-11.219 0a1.035 1.035 0 0 0-.394-1.422 1.064 1.064 0 0 0-1.438.398l-3.382 5.903a1.036 1.036 0 0 0 .394 1.422c.506.282 1.15.104 1.438-.399l3.382-5.902Z\"},\"child\":[]}]})(props);\n};\nexport function SiDrone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.07 13.633a3.07 3.07 0 1 1-6.14 0 3.07 3.07 0 0 1 6.14 0zM12 1.856c5.359.042 11.452 3.82 12 10.94h-7.256S15.809 8.863 12 8.889s-4.744 3.907-4.744 3.907H0C.353 5.802 6.344 1.812 12 1.856zM12.05 22.144c-3.996.011-7.729-3.005-9.259-7.674h4.465s.963 3.889 4.773 3.863 4.716-3.863 4.716-3.863h4.465c-.995 4.94-5.164 7.664-9.159 7.674z\"},\"child\":[]}]})(props);\n};\nexport function SiDrooble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.986a7.599 7.599 0 0 0-7-7.559v7.574a5 5 0 0 1-10 0c0-3.604 3.707-6.022 7-4.583V.17C6.615-1.069 0 4.63 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12v-.014m-14 .015a2 2 0 1 0 4 0 2 2 0 0 0-4 0m14-.015a7.599 7.599 0 0 0-7-7.559v7.574a5 5 0 0 1-10 0c0-3.604 3.707-6.022 7-4.583V.17C6.615-1.069 0 4.63 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12v-.014m-14 .015a2 2 0 1 0 4 0 2 2 0 0 0-4 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 1.807L0 5.629l6 3.822 6.001-3.822L6 1.807zM18 1.807l-6 3.822 6 3.822 6-3.822-6-3.822zM0 13.274l6 3.822 6.001-3.822L6 9.452l-6 3.822zM18 9.452l-6 3.822 6 3.822 6-3.822-6-3.822zM6 18.371l6.001 3.822 6-3.822-6-3.822L6 18.371z\"},\"child\":[]}]})(props);\n};\nexport function SiDrupal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.78 5.113C14.09 3.425 12.48 1.815 11.998 0c-.48 1.815-2.09 3.425-3.778 5.113-2.534 2.53-5.405 5.4-5.405 9.702a9.184 9.185 0 1018.368 0c0-4.303-2.871-7.171-5.405-9.702M6.72 16.954c-.563-.019-2.64-3.6 1.215-7.416l2.55 2.788a.218.218 0 01-.016.325c-.61.625-3.204 3.227-3.527 4.126-.066.186-.164.18-.222.177M12 21.677a3.158 3.158 0 01-3.158-3.159 3.291 3.291 0 01.787-2.087c.57-.696 2.37-2.655 2.37-2.655s1.774 1.988 2.367 2.649a3.09 3.09 0 01.792 2.093A3.158 3.158 0 0112 21.677m6.046-5.123c-.068.15-.223.398-.431.405-.371.014-.411-.177-.686-.583-.604-.892-5.864-6.39-6.848-7.455-.866-.935-.122-1.595.223-1.94C10.736 6.547 12 5.285 12 5.285s3.766 3.574 5.336 6.016c1.57 2.443 1.029 4.556.71 5.253\"},\"child\":[]}]})(props);\n};\nexport function SiDsautomobiles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.207 0v15.85l9.465-7.371a.87.87 0 0 0 .328-.41.756.756 0 0 0 .201.327c.687.657 3.8 3.614 4.635 6.143a4.81 4.81 0 0 1 .266 1.527 3.354 3.354 0 0 1-.266 1.272c-.378.962-1.223 1.972-2.084 2.865-.368.375-1.97 1.912-2.477 2.418a.877.877 0 0 0-.232.424 5.673 5.673 0 0 0-.04.656V24l9.462-7.371a.756.756 0 0 0 .328-.555.657.657 0 0 0-.234-.476c-.684-.657-3.798-3.613-4.635-6.143a4.927 4.927 0 0 1-.262-1.53 3.505 3.505 0 0 1 .262-1.282c.38-.986 1.229-2.007 2.09-2.891a272.66 272.66 0 0 1 2.472-2.436.884.884 0 0 0 .235-.43 4.425 4.425 0 0 0 .043-.591V0l-9.461 7.371a.857.857 0 0 0-.328.41.867.867 0 0 0-.313-.41L2.207 0zm.457.8c.384.3.93.747 1.666 1.315A22.338 22.338 0 0 1 6.543 4.11c1.166 1.203 2.06 2.51 2.06 3.805 0 1.294-.894 2.6-2.06 3.803a21.95 21.95 0 0 1-2.213 2.008c-.736.571-1.287 1.025-1.672 1.314-.033.026-.033-.056-.033-.101 0-.046 0-.116.023-.14.809-.722 3.99-3.158 4.926-5.478a3.44 3.44 0 0 0 0-2.806C6.651 4.194 3.47 1.76 2.648 1.035c-.023-.02-.023-.109-.023-.139 0-.03 0-.122.04-.095zm18.19.481c.023-.02.026.017.023.033a.256.256 0 0 1-.063.217 2.792 2.792 0 0 1-.25.223c-1.297 1.094-3.393 2.977-4.1 4.758a3.502 3.502 0 0 0 0 2.83 10.67 10.67 0 0 0 1.186 2.176c.214.285.31.407.448.601a.74.74 0 0 1 .125.344h-.028a1.314 1.314 0 0 1-.138-.115 10.304 10.304 0 0 1-.604-.59c-1.182-1.186-2.03-2.563-2.03-3.844 0-1.281.89-2.578 2.06-3.768a24.138 24.138 0 0 1 2.214-1.972c.3-.237.555-.44.801-.623l.356-.27zm-8.387 6.735h1.57c.598 0 .824.596 1.143 1.21a12.962 12.962 0 0 0 1.715 2.272.588.588 0 0 1 .119.281c.016.06 0 .079-.063.03-1.938-1.41-4.015-3.17-4.373-3.465-.108-.089-.358-.328-.111-.328zm-2.588.015H11.5c.246 0 .01.22-.102.313-.949.657-2.38 1.852-4.27 3.344-.035.026-.03-.085-.023-.118a.48.48 0 0 1 .057-.162 10.555 10.555 0 0 0 1.73-2.351c.33-.615.402-1.026.987-1.026zm4.934 2.727a.328.328 0 0 1 .177.07c.02.02.266.276.4.424.273.286.545.613.83.941 1.035 1.216 1.946 2.553 1.946 3.864 0 1.195-.847 2.376-1.97 3.486-.283.28-.802.772-1.475 1.363-.092.08-.162.135-.159.073.004-.063 0-.199.053-.245 1.143-1.126 2.28-2.374 2.69-3.373a3.45 3.45 0 0 0 .299-1.314 4.408 4.408 0 0 0-.247-1.432c-.377-1.074-1.21-2.24-2.078-3.252a34.12 34.12 0 0 1-.466-.552c-.024-.033-.024-.056 0-.053zm4.607 5.4h1.844c.279 0 .01.263-.116.352-1.077.759-2.686 2.072-4.841 3.777-.06.046-.05-.092-.047-.135a.299.299 0 0 1 .037-.14 12.19 12.19 0 0 0 1.986-2.694c.365-.696.457-1.16 1.137-1.16z\"},\"child\":[]}]})(props);\n};\nexport function SiDts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.556 14.346-1.194-1.173a.841.841 0 0 1 .604-1.445h.59a.346.346 0 0 0 .349-.343v-.636H18.97a1.492 1.492 0 0 0-1.507 1.477v.003c0 .396.16.775.444 1.05l1.201 1.18a.841.841 0 0 1-.604 1.446h-1.849a1.306 1.306 0 0 1-1.317-1.294v-2.876h1.135a.346.346 0 0 0 .35-.343v-.636h-1.485V7.587l-3.866 1.66v1.494h-1.87V7.123h-2.87a.986.986 0 0 0-.997.98v2.638H3.67C1.514 10.741 0 11.893 0 13.81c0 1.71 1.776 3.068 3.676 3.068h4.615a1.306 1.306 0 0 0 1.318-1.294v-3.855h1.863v2.503c0 1.423.874 2.646 2.65 2.646h8.371A1.492 1.492 0 0 0 24 15.4v-.003a1.444 1.444 0 0 0-.444-1.051zM5.729 15.683a.217.217 0 0 1-.219.214h-.13c-1.34 0-1.835-.908-1.85-2.088.015-1.216.525-2.088 1.85-2.088h.349v3.962z\"},\"child\":[]}]})(props);\n};\nexport function SiDtube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 1.6416v20.7168h8.5156c1.3133 0 2.4886-.1588 3.5371-.4766 1.038-.3177 1.9716-.7833 2.7871-1.4082 1.1545-.8896 2.0431-2.0456 2.668-3.4648.6143-1.4192.9316-3.0486.9316-4.8809-.0105-1.578-.243-3.0203-.709-4.3125-.466-1.2921-1.1116-2.3919-1.959-3.3027-.8366-.9109-1.8536-1.6108-3.0292-2.1191-1.1757-.4979-2.4784-.752-3.9082-.752zm5.2012 5.709l8.039 4.6601-8.039 4.6485zm15.9922 9.162c-1.4934 0-2.711 1.2177-2.711 2.711 0 1.4934 1.2176 2.711 2.711 2.711h.0957c1.4933 0 2.7109-1.2176 2.7109-2.711 0-1.4933-1.2176-2.711-2.711-2.711z\"},\"child\":[]}]})(props);\n};\nexport function SiDucati (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.14 3.895c-.326-1.307-1.96-2.001-3.103-2.45C17.302.383 13.382-.19 10.401.056c-2.94.245-6.738 1.062-8.575 2.45-.531.409-.899.776-1.021 1.715C.56 6.222 1.499 9.203 2.07 11c.163-.082.367-.327.857-.572.98-.49 2.164-.817 3.267-1.02 3.96-.817 9.473-.9 13.597-.9.49 0 .98 0 1.43.042.449 0 .98.04 1.429.04l.245-1.102c.204-1.02.49-2.573.245-3.593zM5.95 5.528c-.531 1.674-2.083 1.43-3.634 1.43L3.05 3.69c.326-.04.898 0 1.265 0 .45 0 .776 0 1.144.123.612.245.735.98.49 1.715zm1.837 1.51c-.898.042-1.715-.162-1.551-1.142.04-.245.449-2.124.49-2.206h1.306c-.04.368-.204.94-.286 1.307-.04.245-.081.408-.122.654-.04.204-.123.571.204.49.204-.041.245-.286.286-.49.122-.572.327-1.47.408-1.96H9.83c-.04.326-.163.816-.245 1.143-.204 1.062-.204 2.123-1.797 2.205zm3.308 0c-1.103 0-1.511-.693-1.266-1.755.367-1.756 2.205-1.92 2.94-1.51.408.244.49.53.408 1.102h-1.225c0-.164.041-.327-.081-.409-.123-.081-.327 0-.409.082-.204.204-.53 1.43-.286 1.593.286.204.49-.205.531-.409h1.225c-.081.817-.816 1.348-1.837 1.307zm4.165-.08v-.49h-.94l-.244.53H12.81c.04-.122.735-1.43.857-1.633l.899-1.634h1.715l.367 3.267c-.286-.04-1.225 0-1.388-.04zm3.757-2.41c-.082.163-.245.98-.286 1.184-.082.327-.164.858-.286 1.184h-1.307c-.04-.204.49-2.123.49-2.409h-.816l.204-.898h2.98c0 .122-.163.816-.204.898l-.775.041zm1.837 2.41h-1.347L20.2 3.69h1.306l-.653 3.267zm-2.327 2.94c-1.266.122-2.45.244-3.635.408-2.245.326-4.573.898-6.451 1.674-1.593.694-3.88 2.082-3.88 4.165 0 .326.041.326.286.694.368.53.858 1.266 1.225 1.756 1.184 1.51 3.308 4.124 4.982 5.063.49.286.898.49 1.51.204.45-.204.9-.53 1.226-.776 2.164-1.755 4.982-5.349 6.288-7.758.899-1.674 1.715-3.716 2.287-5.676-.368-.04-3.47.204-3.838.245zM15.219 5.61V4.425c-.082.082-.49 1.021-.53 1.185zM4.194 4.425l-.408 1.797c.571.041.735-.327.816-.776.123-.49.286-1.061-.408-1.02z\"},\"child\":[]}]})(props);\n};\nexport function SiDuckdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.363 0 0 5.363 0 12s5.363 12 12 12 12-5.363 12-12S18.637 0 12 0zM9.502 7.03a4.974 4.974 0 0 1 4.97 4.97 4.974 4.974 0 0 1-4.97 4.97A4.974 4.974 0 0 1 4.532 12a4.974 4.974 0 0 1 4.97-4.97zm6.563 3.183h2.351c.98 0 1.787.782 1.787 1.762s-.807 1.789-1.787 1.789h-2.351v-3.551z\"},\"child\":[]}]})(props);\n};\nexport function SiDuckduckgo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 23C5.925 23 1 18.074 1 12S5.926 1 12 1s11 4.925 11 11-4.925 11-11 11zm10.219-11c0 4.805-3.317 8.833-7.786 9.925-.27-.521-.53-1.017-.749-1.438.645.249 1.93.718 2.208.615.376-.144.282-3.149-.14-3.245-.338-.075-1.632.837-2.141 1.209l.034.156c.078.397.144.993.03 1.247-.001.004-.002.01-.004.013a.218.218 0 0 1-.068.088c-.284.188-1.081.284-1.503.188a.516.516 0 0 1-.064-.02c-.694.396-2.01 1.109-2.25.971-.329-.188-.377-2.676-.329-3.288.035-.46 1.653.286 2.442.679.174-.163.602-.272.98-.31-.57-1.389-.99-2.977-.733-4.105 0 .002.002.002.002.002.356.248 2.73 1.05 3.91 1.027 1.18-.024 3.114-.743 2.903-1.323-.212-.58-2.135.51-4.142.324-1.486-.138-1.748-.804-1.42-1.29.414-.611 1.168.116 2.411-.256 1.245-.371 2.987-1.035 3.632-1.397 1.494-.833-.625-1.177-1.125-.947-.474.22-2.123.637-2.889.82.428-1.516-.603-4.149-1.757-5.3-.376-.376-.951-.612-1.603-.736-.25-.344-.654-.671-1.225-.977a5.772 5.772 0 0 0-3.595-.584l-.024.004-.034.004.004.002c-.148.028-.237.08-.357.098.148.016.705.276 1.057.418-.174.068-.412.108-.596.184a.828.828 0 0 0-.204.056c-.173.08-.303.375-.3.515.84-.086 2.082-.026 2.991.246-.644.09-1.235.258-1.661.482-.016.008-.03.018-.048.028-.054.02-.106.042-.152.066-1.367.72-1.971 2.405-1.611 4.424.323 1.824 1.665 8.088 2.29 11.064-3.973-1.4-6.822-5.186-6.822-9.639C1.781 6.356 6.356 1.781 12 1.781S22.219 6.356 22.219 12zM9.095 9.581a.758.758 0 1 0 0 1.516.758.758 0 0 0 0-1.516zm.338.702a.196.196 0 1 1 0-.392.196.196 0 0 1 0 .392zm4.724-1.043a.65.65 0 1 0 0 1.299.65.65 0 0 0 0-1.3zm.29.601a.168.168 0 1 1 0-.336.168.168 0 0 1 0 .336zM9.313 8.146s-.571-.26-1.125.09c-.554.348-.534.704-.534.704s-.294-.656.49-.978c.786-.32 1.17.184 1.17.184zm5.236-.052s-.41-.234-.73-.23c-.654.008-.831.296-.831.296s.11-.688.945-.55a.84.84 0 0 1 .616.484z\"},\"child\":[]}]})(props);\n};\nexport function SiDungeonsanddragons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.921 2.217C4.859 1.297 6.122.742 7.988.838c2.944.152 4.358 2.096 4.358 4.193 0 1.011-.536 2.363-1.276 3.323-.045-.044-.083-.087-.13-.131a21.28 21.28 0 00-.49-.436c-.484-.421-1.03-.905-1.397-1.426.807-1.413.346-3.414-1.359-3.414-.998 0-1.83.88-1.759 2.047-.26.552-.387 1.352-.337 2.062-.489-.295-.901-.618-1.095-1.067l-.626-1.445-.493 1.492a2.515 2.515 0 00-.088 1.135l-.01-.001a3.27 3.27 0 01-.555-1.57c-.18-1.908.764-2.964 1.19-3.383zm-.45 6.824c.114-.434-.778-1.173-1.11-1.311 1.224-.047 1.833.175 1.833.175-.32-.454-.423-1.146-.242-1.695.667 1.539 3.052 1.786 3.642 3.062-.084-.55-.625-1.169-1.253-1.53-.337-.838-.085-2.383.327-2.808-.145 2.22 3.149 3.49 3.832 5.105-.4-1.383-1.936-2.258-2.664-3.086-.24-.55-.056-1.48.205-1.799-.077 1.488 1.592 2.648 2.483 3.48 1.051.979 1.349 1.845 1.207 2.553.23.058.547.273.493.638.336-.075.677-.445.76-.673.165 1.104-.51 2.273-1.266 2.621 0 0 .203-.527-.141-.93-.34-.398-1.305-.403-1.631-.38 0 0 .4-.57.242-.86-.2-.357-2.087-.2-2.93.094.287-.03.967.044 1.205.14-.132.189-.478.989-.23 1.229.23.22.53-.162.53-.162s-.294.875-.082 1.078c.21.203.662.059.662.059-.281.687-1.379 1.16-2.146 1.16.274-.084.725-.553.795-.836-.2.097-.726.153-.928.117.248-.097.746-.712.592-1.405-.229-1.009-1.69-1.137-2.425-.649.238-.678.95-1.312 1.507-1.52a7.523 7.523 0 00-1.117-.273c.468-.369 1.642-.67 2.241-.639-.914-.225-2.586.057-3.352.927.245 0 .875.114 1.118.19-1.048.182-2.478 1.122-2.898 1.566.11-.584.28-1.08.136-1.43-.202-.497-.826-.704-2.07-.457.84-.809 2.56-1.31 2.676-1.751zm5.724.783c.166.563.39 1.08 1.097 1.08 0 0-.248-.779-1.097-1.08zm10.479 6.203c.533.088 1.282.635 1.282 1.417 0 1.275-1.652 1.667-2.566 1.469.97-.648.84-2.512-.326-3.178.395 1.045-.79 2.082-1.942 1.172-.641-.506-2.123-1.694-2.785-2.206-.66-.511-1.434-.214-1.74-.437-.348-.254-.125-.97-.6-1.236-.399-.222-.79-.098-1.253-.246-.42-.133-.733-.448-.68-.872-.178.303-.19.83.129 1.186.316.352.844.57 1.062.957.282.5-.193 1.196 1.062 2.143.6.452 1.53 1.195 2.137 1.707 1.021.862.476 1.94.61 2.879.155 1.096 1.072 1.704 1.682 1.858-.526-.46-.725-1.62.014-2.33.038.916.725 2.35 2.292 2.753 1.667.427 3.439-.482 3.807-1.122-.643.28-1.854-.022-2.353-.472 1.956.267 3.686-1.038 3.686-2.712 0-1.633-1.645-2.898-3.518-2.73zm-8.5.793c-.667 1.1-2.088 2.531-3.529 2.531-2.651 0-3.98-3.61-1.007-6.564a1.435 1.435 0 00-.4-.06c-.255 0-.504.064-.668.174l-1.168.776.264-1.432a2.14 2.14 0 01.093-.225c-.675.322-1.339.782-1.588 1.045L2.02 14.28l.122-1.703c.025-.133.054-.262.08-.385.06-.275.135-.618.089-.732a.214.214 0 00-.083-.091C1.68 11.775.177 13.055 0 14.936c0 0 .291-.395.544-.487.167-.062.313.017.153.487-.061.184-1.51 3.96 1.34 6.57 0 0-.312-.768-.124-1 .092-.114.212-.123.376.08.123.156.251.306.438.51.187.205.447.447.729.657.853.575 2.011 1.037 3.329 1.037 3.526 0 5.395-2.34 6.43-4.305a1.551 1.551 0 00-.155-.15 57.001 57.001 0 00-1.887-1.515zm1.91-2.884c.208.067.42.158.627.319.244.188.603.471.987.776.306-.65 1.009-2.003 2.097-3.204.98-1.08 2.69-1.184 3.588-.526.577-.502 2.569-.974 3.617-.687-.639-.668-1.996-1.564-3.496-1.564-1.237 0-1.936.583-2.113.32-.228-.336.837-.833.837-.833-1.46.058-2.523 1.711-2.966 1.505-.262-.12.395-.92.395-.92-1.336.746-2.455 2.328-2.688 3.291 1.229-1.448 3.614-2.486 5.166-2.267-2.629.122-4.891 2.276-6.05 3.79Z\"},\"child\":[]}]})(props);\n};\nexport function SiDunked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.799 0v19.8599A4.2002 4.2002 0 0018.0003 24h4.2002V4.1411A4.2002 4.2002 0 0017.9992 0H13.798zM6.2983 15.0014a4.5008 4.5008 0 00-4.4988 4.3906v.2224a4.5008 4.5008 0 008.9986 0v-.2154a4.5008 4.5008 0 00-4.4998-4.3986z\"},\"child\":[]}]})(props);\n};\nexport function SiDunzo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.75 0A2.744 2.744 0 0 0 0 2.75v18.5A2.744 2.744 0 0 0 2.75 24h18.5A2.744 2.744 0 0 0 24 21.25V2.75A2.744 2.744 0 0 0 21.25 0Zm9.902 5.506c.91.006 1.781.197 2.594.605-.891 1.87-1.888 3.8-2.832 5.682-.017.029-.086.13-.225.031-.8-.638-1.581-1.304-2.369-1.959-.223-.195-.442-.105-.55.133-.515 1.027-.952 1.883-1.465 2.91-.7 1.398-1.398 2.673-2.098 4.07-.064.142-.143.043-.143.043.538-3.258 1.643-10.807 1.717-11.1.055-.213.183-.36.42-.394.09-.012.18-.023.27-.023ZM17.78 8c.01-.003.016.022.045.082.48.935.803 2.554.487 4.238-.25 1.328-.849 2.487-1.737 3.512a7.715 7.715 0 0 1-3.224 2.207c-.735.268-1.498.362-2.288.361H6.275c-.654 0-.725-.224-.709-.238a923.24 923.24 0 0 1 4.309-5.906c.235-.258.417-.022.668.224 1.105.957 2.139 1.826 2.28 1.94.08.066.163.051.222-.033A971.241 971.241 0 0 1 17.779 8z\"},\"child\":[]}]})(props);\n};\nexport function SiDuolingo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.484 18.213c1.142 1.033 2.657 1.662 4.316 1.662l.294-.001c1.985-.038 3.749-.976 4.905-2.422v1.98c0 2.522-2.043 4.568-4.567 4.568H4.569C2.045 23.998.002 21.954.002 19.43v-1.92c1.181 1.443 2.976 2.365 4.985 2.365l.35-.001c1.61-.027 3.076-.646 4.191-1.648.555.764 1.456 1.26 2.473 1.26 1.023 0 1.928-.502 2.483-1.273zm-5.349-.996c-.989 1.022-2.375 1.658-3.909 1.658h-.239c-2.229 0-4.146-1.343-4.987-3.262v-7.16c.281-.64.68-1.216 1.169-1.699-.035-.731.132-1.469.511-2.128.256-.44.867-.504 1.21-.124l.766.851c.007-.003.014-.003.021-.005-.098-.78.037-1.587.419-2.308.24-.45.757-.53 1.114-.164 0 0 3.939 3.979 4.035 4.084 1.542 1.348 4.066 1.287 5.686-.18.002-.003.007-.005.009-.007.042-.042 3.855-3.9 3.855-3.9.3361-.3451.8619-.3101 1.113.164.385.724.518 1.535.417 2.32.002.001.003.001.004.002l.007.002c.001 0 .002 0 .003.001l.776-.86c.342-.38.954-.316 1.207.124.387.673.553 1.427.509 2.173.496.501.897 1.099 1.169 1.762v6.941c-.816 1.978-2.761 3.373-5.032 3.373H18.8c-1.547 0-2.945-.648-3.936-1.686a.8386.8386 0 0 0-.009-.067c.313-.017.528-.162.688-.33.152-.16.299-.397.299-.776 0 0-.022-.312-.024-.324.693.767 1.696 1.249 2.811 1.249 2.092 0 3.787-1.696 3.787-3.787v-2.243c0-2.092-1.697-3.787-3.787-3.787-2.093 0-3.787 1.695-3.787 3.787v2.243c0 .266.027.526.079.776-.712-.784-1.744-1.278-2.842-1.278-1.239 0-2.339.523-3.064 1.355.063-.274.097-.56.097-.853v-2.243c0-2.092-1.697-3.787-3.788-3.787-2.09 0-3.787 1.695-3.787 3.787v2.243c0 2.093 1.697 3.787 3.787 3.787 1.151 0 2.182-.513 2.876-1.322-.008.035-.039.395-.039.395 0 .378.147.616.298.775.16.168.374.312.688.331a.7783.7783 0 0 0-.012.097zm.997.073c.729.131 1.733.305 1.792.305h.157c.059 0 1.789-.303 1.789-.303-.327.705-1.041 1.194-1.869 1.194-.829 0-1.543-.49-1.869-1.196zm-.971-1.379c.246-1.313 1.462-2.259 2.918-2.259 1.324 0 2.521.97 2.763 2.259v.105c0 .082-.029.115-.103.106l-2.658.473h-.157l-2.66-.476c-.075.01-.103-.023-.103-.105Zm8.023-6.392c.255-.14.549-.22.861-.22.992 0 1.798.804 1.798 1.798v1.919c0 .991-.804 1.797-1.798 1.797-.991 0-1.797-.803-1.797-1.797v-1.542c.034.003.068.005.103.005.64 0 1.16-.518 1.16-1.156 0-.312-.125-.596-.327-.804zM5.162 9.461c.227-.104.48-.162.746-.162.991 0 1.798.804 1.798 1.798v1.919c0 .991-.804 1.797-1.798 1.797-.991 0-1.797-.803-1.797-1.797v-1.571c.089.022.182.034.278.034.641 0 1.16-.518 1.16-1.156 0-.342-.149-.65-.387-.862ZM.002 6.554V4.568C.002 2.044 2.045 0 4.569 0h14.865c2.522 0 4.565 2.044 4.565 4.568v2.041a5.1847 5.1847 0 0 0-.164-.197 4.8592 4.8592 0 0 0-.646-2.284c-.433-.754-1.315-1.037-2.07-.786a4.785 4.785 0 0 0-.327-.774h-.001c-.287-.54-.758-.835-1.248-.908-.493-.073-1.033.072-1.464.515l-3.82 3.864c-1.226 1.11-3.127 1.199-4.313.205-.103-.109-4.025-4.071-4.025-4.071-.427-.438-.966-.584-1.46-.51-.489.073-.961.367-1.248.907v.002c-.133.25-.241.508-.327.771-.753-.252-1.635.029-2.071.782 0 0-.001.001-.001.002-.4.694-.613 1.459-.645 2.23-.057.065-.113.13-.167.197z\"},\"child\":[]}]})(props);\n};\nexport function SiDuplicati (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.571 1.286A1.72 1.72 0 0 0 6.857 3v10.286c0 .634.353 1.183.868 1.48.251.144.538.234.846.234h13.715A1.72 1.72 0 0 0 24 13.286V3a1.72 1.72 0 0 0-1.714-1.714Zm.56 12.087zm3.166 0zm-10.583-.087A1.72 1.72 0 0 0 0 15v6a1.72 1.72 0 0 0 1.714 1.714h8.572a1.715 1.715 0 0 0 1.473-.857c.148-.253.241-.544.241-.857v-4.286H8.571c-.296 0-.582-.042-.857-.114a3.439 3.439 0 0 1-2.571-3.314Zm18 3.428h-6V21H18a1.72 1.72 0 0 0 1.714-1.714z\"},\"child\":[]}]})(props);\n};\nexport function SiDvc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 4.935a.295.295 0 0 1 .09-.223.256.256 0 0 1 .201-.092h3.921c1.608.122 2.808.582 3.912 1.716 1.11 1.135 1.551 2.422 1.692 4.078.135 1.594-.516 2.974-1.62 4.108a5.42 5.42 0 0 1-1.818 1.28 5.316 5.316 0 0 1-2.166.431H.292a.28.28 0 0 1-.202-.092.315.315 0 0 1-.069-.104.322.322 0 0 1-.02-.123V4.935Zm2.508 8.84H4.05c.9 0 1.65-.326 2.244-.973a3.403 3.403 0 0 0 .891-2.39c0-.942-.3-1.737-.89-2.383a2.935 2.935 0 0 0-1.02-.734 2.88 2.88 0 0 0-1.225-.238H2.508zm12.064.062a.32.32 0 0 1 .028.311l-2.324 5.056c-.063.122-.153.18-.273.18h-.162c-.12 0-.21-.06-.276-.184l-2.28-4.993a.317.317 0 0 1 .033-.316 5.136 5.136 0 0 0 .961-3.17c-.002-.088.133-.123.168-.042l1.44 3.236h.098l1.494-3.354c.035-.078.16-.049.16.036 0 1.147.29 2.282.933 3.24zm1.196.728c-1.14-1.128-1.668-2.496-1.668-4.108 0-1.622.525-2.996 1.668-4.133a5.74 5.74 0 0 1 1.91-1.285 5.65 5.65 0 0 1 2.248-.423 5.692 5.692 0 0 1 3.94 1.503c.164.153.167.306.017.453l-1.269 1.31c-.14.128-.279.128-.408 0a3.21 3.21 0 0 0-2.199-.825c-.912 0-1.67.325-2.28.981a3.267 3.267 0 0 0-.87 2.345c0 .908.27 1.68.882 2.321a3.023 3.023 0 0 0 2.286.96 3.255 3.255 0 0 0 2.181-.776c.15-.129.291-.123.42.015l1.272 1.343c.141.141.135.285-.015.435a5.49 5.49 0 0 1-3.957 1.567 5.675 5.675 0 0 1-2.245-.415 5.795 5.795 0 0 1-1.913-1.27z\"},\"child\":[]}]})(props);\n};\nexport function SiDwavesystems (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.1062 12.0046c0 1.5815-1.2842 2.8636-2.8685 2.8636-1.5842 0-2.8684-1.282-2.8684-2.8636 0-1.5815 1.2842-2.8635 2.8684-2.8635 1.5843 0 2.8685 1.2821 2.8685 2.8635zM7.2377 0C5.6536 0 4.3693 1.2817 4.3693 2.8628s1.2842 2.8629 2.8684 2.8629c1.5842 0 2.8685-1.2817 2.8685-2.8629C10.1062 1.2817 8.822 0 7.2377 0zm9.5246 18.2781c-1.5838 0-2.8677 1.2764-2.8677 2.8636 0 1.5763 1.2835 2.8583 2.8677 2.8583 1.5845 0 2.8684-1.282 2.8684-2.8583 0-1.5872-1.2843-2.8636-2.8684-2.8636zm-2.8685-6.2735c0-1.5815 1.2842-2.8635 2.8685-2.8635 1.5842 0 2.8684 1.282 2.8684 2.8635 0 1.5815-1.2842 2.8636-2.8684 2.8636-1.5843 0-2.8685-1.282-2.8685-2.8636zm.5 0c0 1.3033 1.0625 2.3636 2.3685 2.3636s2.3684-1.0603 2.3684-2.3636c0-1.3032-1.0624-2.3635-2.3684-2.3635s-2.3685 1.0603-2.3685 2.3635z\"},\"child\":[]}]})(props);\n};\nexport function SiDwm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 11h6V7h2v8h2v-4h2v4h2v-4h10v6h-2v-4h-2v4h-2v-4h-2v4H2v-2h4v-2H2v4H0z\"},\"child\":[]}]})(props);\n};\nexport function SiDynatrace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.372 0c-.31.006-.93.09-1.521.654-.872.824-5.225 4.957-6.973 6.617-.79.754-.72 1.595-.72 1.664v.377c.067-.292.187-.5.427-.825.496-.616 1.3-.788 1.627-.822a64.238 64.238 0 01.002 0 64.238 64.238 0 016.528-.55c4.335-.136 7.197.226 7.197.226l6.085-5.794s-3.188-.6-6.82-1.027a93.4 93.4 0 00-5.64-.514c-.02 0-.09-.008-.192-.006zm13.56 2.508l-6.066 5.79s.222 2.881-.137 7.2c-.189 2.45-.584 4.866-.875 6.494-.052.326-.256 1.114-.925 1.594-.29.198-.49.295-.748.363 1.546-.51 1.091-7.047 1.091-7.047-4.335.137-7.214-.223-7.214-.223l-6.085 5.793s3.223.634 6.856 1.045c2.056.24 4.833.429 5.227.463.023 0 .045-.007.068-.012-.013.003-.022.009-.035.012.138 0 .26.015.38.015.084 0 .924.105 1.712-.648 1.748-1.663 6.084-5.81 6.94-6.634.789-.754.72-1.594.72-1.68a81.846 81.846 0 00-.206-5.654 101.75 101.75 0 00-.701-6.872zM3.855 8.306c-1.73.002-3.508.208-3.696 1.021.017 1.216.05 3.137.205 5.28.24 3.65.703 6.887.703 6.887l6.083-5.79c-.017.016-.24-2.88.12-7.2 0 0-1.684-.201-3.416-.2z\"},\"child\":[]}]})(props);\n};\nexport function SiE (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.004 12.004A12.012 12.012 0 0 0 12 24a2.27 2.27 0 0 0 2.266-2.266A2.27 2.27 0 0 0 12 19.467c-4.116 0-7.463-3.347-7.463-7.463S7.884 4.541 12 4.541c3.323 0 6.15 2.186 7.111 5.197H12a2.27 2.27 0 0 0-2.266 2.266A2.27 2.27 0 0 0 12 14.27h9.73a2.27 2.27 0 0 0 2.266-2.266A12.02 12.02 0 0 0 12 0C5.385.008.004 5.39.004 12.004\"},\"child\":[]}]})(props);\n};\nexport function SiE3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.0676 16.5185H4.7723v-2.6738h6.2615v-3.757H4.7723v-2.64h6.2615V3.691H0v16.6184h14.1476c0-.0339-2.7754-.7108-3.08-3.7908zm10.12-6.3969c1.8954 1.2862 2.8769 2.5385 2.8092 5.1108-.0677 2.6738-2.7754 5.043-5.72 5.043-2.0984 0-4.7723-.9477-5.7876-3.7569l3.4861-1.5569c.4738.88 1.1508 1.557 2.2 1.557 1.1507 0 1.9969-.88 2.0984-1.997.0339-.2708-.1353-2.2338-2.0984-2.3015l-2.2-.237 2.8092-4.5353h-6.3292v-3.757h11.5415z\"},\"child\":[]}]})(props);\n};\nexport function SiEa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.635 6.162l-5.928 9.377H4.24l1.508-2.3h4.024l1.474-2.335H2.264L.79 13.239h2.156L0 17.84h12.072l4.563-7.259 1.652 2.66h-1.401l-1.473 2.299h4.347l1.473 2.3H24zm-11.461.107L3.7 8.604l9.52-.035 1.474-2.3z\"},\"child\":[]}]})(props);\n};\nexport function SiEac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.667 24h2.667v-2.667H2.667v-8h2.667v-2.666H2.667v-8h2.667V0H0v24zm21.334-2.667h-2.668V2.667h2.668V0h-5.333v24h5.333zM13.334 0H8v24h2.667V13.335h2.667V24H16V0Zm0 10.667h-2.667v-8h2.667z\"},\"child\":[]}]})(props);\n};\nexport function SiEagle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.04 3.858c1.32.019 2.634.335 3.78.989.549.31.957.642 1.238.895a6.912 6.912 0 0 0-2.25 3.04c-.06.165-.123.354-.183.546a6.856 6.856 0 0 0-.252 1.605c-.003.162.002.374.003.578.012.242.05.519.08.789a7.013 7.013 0 0 0 1.753 3.586 6.889 6.889 0 0 0 1.87 1.42 7.792 7.792 0 0 1-2.629 2.166 7.717 7.717 0 0 1-3.846.808 9.16 9.16 0 0 1-.22-.013 7.695 7.695 0 0 1-1.504-.247 8.201 8.201 0 0 1-2.83-1.354 7.056 7.056 0 0 1-1.894-2.1c-.22-.38-1.49-2.644-.769-5.452A7.261 7.261 0 0 1 5.93 8.18a5.513 5.513 0 0 0-2.105 1.082C4.12 8.573 5.306 6 8.217 4.66a8.944 8.944 0 0 1 3.823-.8zm5.702 2.508c.202.126.464.309.736.572.108.103.478.468.82 1.054.413.703.549 1.327.62 1.65a5.52 5.52 0 0 1 .013 2.302 7.133 7.133 0 0 0-2.044-1.688 7.243 7.243 0 0 0-1.551.3 6.834 6.834 0 0 0-1.05.422 6.058 6.058 0 0 1 .267-1.563 5.923 5.923 0 0 1 .806-1.643 6.255 6.255 0 0 1 1.383-1.406Z\"},\"child\":[]}]})(props);\n};\nexport function SiEasyeda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.31 3.108a7.67 7.67 0 0 0-3.015.545 7.67 7.67 0 0 0-1.73.951 7.865 7.865 0 0 0-1.59 1.567 6.308 6.308 0 0 0-.764-.047C2.78 6.124 0 8.91 0 12.35a6.217 6.217 0 0 0 4.146 5.868 3.759 3.759 0 0 0 7.326-1.574l5.3-2.673-.04-.078.499-.257-1.021-2.027-.499.25-.047-.086-5.291 2.658a3.727 3.727 0 0 0-2.627-1.076 3.77 3.77 0 0 0-3.42 2.198 3.723 3.723 0 0 1-1.7-4.146 3.71 3.71 0 0 1 5.549-2.214 5.211 5.211 0 0 1 6.585-3.32 5.24 5.24 0 0 1 3.538 4.373 2.913 2.913 0 0 1 3.188 2.899 2.909 2.909 0 0 1-2.65 2.899h-2.135v2.517h2.244l.11-.016a5.407 5.407 0 0 0 4.925-5.852 5.459 5.459 0 0 0-1.574-3.375A5.355 5.355 0 0 0 20.3 8.01a7.725 7.725 0 0 0-6.99-4.901ZM7.748 15.367c.965 0 1.753.791 1.753 1.761a1.748 1.748 0 0 1-1.753 1.753 1.748 1.748 0 0 1-1.754-1.753 1.756 1.756 0 0 1 1.754-1.753Z\"},\"child\":[]}]})(props);\n};\nexport function SiEasyjet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.964 12.225H1.463c-.066 0-.099.029-.099.086 0 .138.075.269.225.391.15.122.311.184.484.184.102 0 .216-.02.34-.059.125-.039.227-.088.308-.145.072-.051.13-.077.172-.077.055 0 .11.034.163.102a.34.34 0 0 1 .08.211c0 .153-.096.301-.287.444-.339.253-.729.38-1.172.38-.447 0-.822-.13-1.124-.39a1.6 1.6 0 0 1-.364-.463 1.611 1.611 0 0 1-.189-.76c0-.358.109-.679.326-.964.187-.247.426-.431.715-.552.217-.092.452-.137.706-.137.404 0 .748.115 1.031.345.143.115.258.251.345.409.1.179.15.353.15.524a.617.617 0 0 1-.086.34c-.057.087-.132.131-.223.131zm-1.418-.597h.323c.136 0 .204-.063.204-.188a.4.4 0 0 0-.099-.281.335.335 0 0 0-.259-.109.328.328 0 0 0-.281.141.445.445 0 0 0-.096.265c0 .064.015.109.046.134.031.025.085.038.162.038zm3.693-1.156c.37 0 .684.094.942.281.136.1.232.215.286.343.054.129.081.306.081.532l-.006.476c0 .33.023.544.07.642.023.047.046.077.067.089a.41.41 0 0 0 .134.035c.068.011.102.055.102.134a.54.54 0 0 1-.123.319 1.024 1.024 0 0 1-.318.278.975.975 0 0 1-.501.141.659.659 0 0 1-.53-.23c-.045-.055-.086-.083-.125-.083-.043 0-.099.027-.169.08a1.202 1.202 0 0 1-.725.233c-.279 0-.505-.06-.677-.179a.842.842 0 0 1-.268-.308.85.85 0 0 1-.099-.398c0-.221.089-.417.268-.588.279-.268.696-.403 1.252-.406.123 0 .201-.012.233-.037.032-.024.048-.081.048-.171 0-.226-.023-.389-.07-.49-.047-.101-.123-.152-.23-.152a.27.27 0 0 0-.171.058c-.05.038-.112.109-.187.211-.19.27-.387.406-.594.406a.356.356 0 0 1-.255-.093.318.318 0 0 1-.099-.243c0-.102.041-.204.123-.307.082-.102.193-.192.334-.268a2.557 2.557 0 0 1 1.207-.305zm-.214 1.849a.317.317 0 0 0-.244.115.397.397 0 0 0-.104.275c0 .102.024.185.073.248a.234.234 0 0 0 .195.094c.17 0 .255-.144.255-.431 0-.117-.012-.196-.037-.236-.024-.042-.07-.063-.138-.065zm3.33-1.846c.106 0 .28.023.521.07a.685.685 0 0 0 .121.013.797.797 0 0 0 .211-.057.357.357 0 0 1 .125-.029c.098 0 .197.063.297.188.081.1.147.21.198.329a.81.81 0 0 1 .077.31.28.28 0 0 1-.089.212.315.315 0 0 1-.224.085.375.375 0 0 1-.2-.054 2.06 2.06 0 0 1-.283-.24c-.136-.132-.249-.198-.339-.198a.214.214 0 0 0-.155.065.21.21 0 0 0-.065.155c0 .104.1.202.3.294.36.162.636.339.827.53.162.162.243.36.243.594 0 .296-.13.543-.39.741a1.307 1.307 0 0 1-.821.259c-.083 0-.234-.014-.453-.041a7.38 7.38 0 0 0-.348-.035.505.505 0 0 0-.096.01 1.244 1.244 0 0 1-.134.013.342.342 0 0 1-.236-.077 1.107 1.107 0 0 1-.243-.372 1.111 1.111 0 0 1-.112-.436c0-.196.077-.294.23-.294.06 0 .114.02.164.059.05.039.155.144.315.315.087.094.16.158.217.193a.348.348 0 0 0 .185.053c.07 0 .127-.019.169-.056a.187.187 0 0 0 .064-.149c0-.096-.082-.183-.246-.262-.343-.168-.59-.342-.742-.521a.928.928 0 0 1-.228-.62c0-.253.078-.472.233-.655.221-.261.524-.392.907-.392zm4.994 1.571l-.422 1.159a4.405 4.405 0 0 1-.315.704 2.064 2.064 0 0 1-.359.465c-.277.264-.61.396-1 .396-.315 0-.571-.083-.766-.249a.613.613 0 0 1-.227-.489c0-.164.053-.302.158-.414a.512.512 0 0 1 .388-.168c.153 0 .277.051.37.153a.418.418 0 0 1 .089.125c.015.036.037.116.067.24.023.094.077.141.16.141a.204.204 0 0 0 .166-.086.336.336 0 0 0 .067-.214c0-.1-.055-.267-.166-.501l-.77-1.638a1.506 1.506 0 0 0-.182-.319.908.908 0 0 0-.268-.156.234.234 0 0 1-.11-.101.274.274 0 0 1-.046-.145c0-.189.188-.318.565-.386.251-.045.538-.067.859-.067.226 0 .403.023.533.07.175.062.262.167.262.316a.35.35 0 0 1-.073.188.332.332 0 0 0-.07.182c0 .051.011.104.034.16.022.055.07.149.142.281.081.149.152.224.214.224.066 0 .134-.065.204-.196a.802.802 0 0 0 .105-.378.357.357 0 0 0-.08-.24c-.081-.096-.121-.178-.121-.246 0-.109.072-.195.217-.26.145-.065.338-.097.581-.097.451 0 .677.109.677.326a.263.263 0 0 1-.069.19.658.658 0 0 1-.251.136.49.49 0 0 0-.243.192c-.091.139-.199.374-.32.702zm3.189-2.816c.238 0 .481.021.728.064.202.034.347.081.434.141.087.06.131.142.131.246a.23.23 0 0 1-.048.155.715.715 0 0 1-.208.136c-.123.064-.194.139-.212.225s-.035.421-.05 1.004c-.006.564-.012.903-.018 1.016a2.208 2.208 0 0 1-.04.329c-.062.311-.186.555-.374.731-.153.145-.35.259-.591.342a2.316 2.316 0 0 1-.76.125 2.81 2.81 0 0 1-.711-.093 2.26 2.26 0 0 1-.618-.255.975.975 0 0 1-.345-.362.985.985 0 0 1-.128-.487c0-.213.067-.389.201-.529a.672.672 0 0 1 .505-.209c.198 0 .366.059.505.176a.56.56 0 0 1 .208.441c0 .045-.013.119-.038.224a.38.38 0 0 0-.006.07.21.21 0 0 0 .073.166.285.285 0 0 0 .195.064.4.4 0 0 0 .345-.192c.087-.128.131-.296.131-.505l-.003-.291-.006-.782a20.503 20.503 0 0 0-.043-.838.438.438 0 0 0-.072-.206.28.28 0 0 0-.085-.083 1.304 1.304 0 0 0-.2-.061.217.217 0 0 1-.131-.089.259.259 0 0 1-.054-.156c0-.115.045-.207.136-.276.09-.069.238-.125.442-.168a3.3 3.3 0 0 1 .707-.073zm4.155 2.995h-1.501c-.066 0-.099.029-.099.086 0 .138.075.269.225.391.15.122.311.184.484.184.102 0 .216-.02.34-.059.125-.039.227-.088.308-.145.072-.051.13-.077.172-.077.055 0 .11.034.163.102a.34.34 0 0 1 .08.211c0 .153-.096.301-.287.444-.339.253-.729.38-1.172.38-.447 0-.822-.13-1.124-.39a1.616 1.616 0 0 1-.552-1.223c0-.358.109-.679.326-.964.187-.247.426-.431.715-.552.217-.092.452-.137.706-.137.404 0 .748.115 1.032.345.143.115.258.251.345.409.1.179.15.353.15.524a.617.617 0 0 1-.086.34c-.059.087-.133.131-.225.131zm-1.418-.597h.323c.136 0 .204-.063.204-.188a.4.4 0 0 0-.099-.281.335.335 0 0 0-.259-.109.328.328 0 0 0-.281.141.445.445 0 0 0-.096.265c0 .064.015.109.046.134.032.025.086.038.162.038zm3.761-.316v1.079c0 .128.031.232.094.313a.292.292 0 0 0 .241.121c.083 0 .193-.038.329-.115a.187.187 0 0 1 .096-.029c.051 0 .098.031.141.093a.352.352 0 0 1 .063.202c0 .132-.072.259-.217.38-.302.258-.669.386-1.099.386-.341 0-.614-.096-.821-.289-.207-.193-.31-.447-.31-.762v-1.475c0-.049-.006-.079-.018-.091-.012-.012-.042-.018-.091-.018h-.329c-.062 0-.101-.01-.118-.03-.017-.02-.026-.068-.026-.142v-.141c.002-.064.027-.111.073-.141l1.463-.92a.286.286 0 0 1 .134-.029h.259c.053 0 .089.012.107.037.018.024.027.073.027.145v.431c0 .064.01.105.03.125.02.019.063.029.129.029h.591c.079 0 .13.014.153.043.023.029.035.09.035.184v.188c0 .102-.015.173-.045.212-.03.039-.084.059-.163.059h-.578c-.06 0-.1.011-.121.032-.019.023-.029.063-.029.123z\"},\"child\":[]}]})(props);\n};\nexport function SiEbay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.056 12.132v-4.92h1.2v3.026c.59-.703 1.402-.906 2.202-.906 1.34 0 2.828.904 2.828 2.855 0 .233-.015.457-.06.668.24-.953 1.274-1.305 2.896-1.344.51-.018 1.095-.018 1.56-.018v-.135c0-.885-.556-1.244-1.53-1.244-.72 0-1.245.3-1.305.81h-1.275c.136-1.29 1.5-1.62 2.686-1.62 1.064 0 1.995.27 2.415 1.02l-.436-.84h1.41l2.055 4.125 2.055-4.126H24l-3.72 7.305h-1.346l1.07-2.04-2.33-4.38c.13.255.2.555.2.93v2.46c0 .346.01.69.04 1.005H16.8a6.543 6.543 0 01-.046-.765c-.603.734-1.32.96-2.32.96-1.48 0-2.272-.78-2.272-1.695 0-.15.015-.284.037-.405-.3 1.246-1.36 2.086-2.767 2.086-.87 0-1.694-.315-2.2-.93 0 .24-.015.494-.04.734h-1.18c.02-.39.04-.855.04-1.245v-1.05h-4.83c.065 1.095.818 1.74 1.853 1.74.718 0 1.355-.3 1.568-.93h1.24c-.24 1.29-1.61 1.725-2.79 1.725C.95 15.009 0 13.822 0 12.232c0-1.754.982-2.91 3.116-2.91 1.688 0 2.93.886 2.94 2.806v.005zm9.137.183c-1.095.034-1.77.233-1.77.95 0 .465.36.97 1.305.97 1.26 0 1.935-.69 1.935-1.814v-.13c-.45 0-.99.006-1.484.022h.012zm-6.06 1.875c1.11 0 1.876-.806 1.876-2.02s-.768-2.02-1.893-2.02c-1.11 0-1.89.806-1.89 2.02s.765 2.02 1.875 2.02h.03zm-4.35-2.514c-.044-1.125-.854-1.546-1.725-1.546-.944 0-1.694.474-1.815 1.546z\"},\"child\":[]}]})(props);\n};\nexport function SiEbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.939 14.973 10.97 6.4V24L.94 17.6v-2.626zm22.123 0v2.626l-10.971 6.4v-2.626l10.97-6.401ZM.939 10.66l10.97 6.4v2.627l-7.223-4.214-1.068.622-2.253-1.313 1.07-.623-1.496-.873V10.66zm22.123 0v2.626l-1.496.873 1.07.624-2.253 1.313-1.07-.623-7.224 4.214V17.06l10.972-6.4ZM.939 6.347l10.97 6.4v2.627l-3.525-2.057-1.067.622-2.252-1.314 1.067-.622-1.429-.833-1.066.622-2.253-1.314 1.068-.622-1.514-.883Zm22.123 0v2.626l-1.514.883 1.07.622-2.254 1.315-1.068-.623-1.428.833 1.068.622-2.252 1.314-1.07-.622-3.525 2.057v-2.627l10.972-6.4ZM12 8.584l3.236 1.885-2.252 1.314-.983-.573-.982.573-2.252-1.314 3.235-1.885Zm0-4.293 6.916 4.03-2.252 1.315L12 6.918 7.338 9.635 5.085 8.321ZM12 0l10.597 6.175-2.252 1.314L12 2.627 3.657 7.489 1.405 6.175 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiEclipseadoptium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.98 14.013-2.632 5.729 6.813 3.058c-1.55-2.754-2.82-5.852-4.18-8.787Zm11.033 4.645L16.277 4.064a3.952 3.952 0 0 1-.387 1.471l-3.6 7.82 3.871 8.361a3.76 3.76 0 0 0 3.445 2.245 3.734 3.734 0 0 0 3.755-3.755c0-.542-.155-1.045-.348-1.548zM15.735 3.755A3.734 3.734 0 0 0 11.982 0C10.51 0 9.27.852 8.65 2.052 6.119 7.582 3.544 13.127.988 18.658c-.232.464-.348 1.006-.348 1.587A3.734 3.734 0 0 0 4.394 24a3.76 3.76 0 0 0 3.445-2.245l7.587-16.413c.193-.503.31-1.045.31-1.587z\"},\"child\":[]}]})(props);\n};\nexport function SiEclipseche (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L1.604 6.021v7.452L12 7.494l3.941 2.254 6.455-3.727zm10.396 10.527L12 16.506l-7.334-4.217-3.062 1.76v3.93L12 24l10.396-6.021z\"},\"child\":[]}]})(props);\n};\nexport function SiEclipseide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.109.024a15.58 15.58 0 00-.737.023C6.728.361 3.469 2.517 1.579 5.86A12.53 12.53 0 00.021 11.11c-.04.517-.02 1.745.035 2.208.306 2.682 1.353 5.06 3.07 6.965 1.962 2.173 4.586 3.467 7.437 3.663.42.032 1.043.04 1.02.012a2.404 2.404 0 00-.338-.074c-1.674-.33-3.388-1.13-4.777-2.232a12.344 12.344 0 01-2.45-2.636A12.387 12.387 0 011.884 12.5a12.413 12.413 0 01.56-4.274c.785-2.522 2.37-4.726 4.475-6.228A11.073 11.073 0 0111.156.122l.443-.098zm1.474.51C10.646.65 8.807 1.299 7.301 2.4 5.426 3.77 3.995 5.644 3.22 7.746c-.145.397-.282.82-.282.879 0 .012 3.828.024 10.31.024 8.463 0 10.315-.008 10.315-.036 0-.047-.153-.525-.283-.878-.153-.42-.576-1.31-.82-1.722-.4-.683-.91-1.373-1.474-1.992-1.65-1.82-3.593-2.934-5.82-3.334-.785-.141-1.8-.2-2.585-.153zM23.83 9.97c-.02 0-4.792 0-10.609.004l-10.573.008-.011.059c-.036.16-.134 1.081-.134 1.242 0 .028 1.785.032 10.746.032H24v-.075c0-.102-.07-.791-.106-1.054-.02-.16-.04-.216-.063-.216zm-10.573 2.635c-9.37-.004-10.73 0-10.742.035-.02.04.024.557.075.973.02.157.035.298.035.314 0 .027 2.137.035 10.624.035h10.624l.024-.188c.043-.326.102-.97.094-1.067l-.008-.094zm.003 2.718c-8.882 0-10.321.004-10.321.035 0 .02.054.208.12.42a11.122 11.122 0 002.072 3.741c.282.342.945 1.036 1.228 1.287 1.568 1.4 3.247 2.216 5.18 2.53.605.094.886.113 1.75.11.91 0 1.297-.032 2.023-.177 2.11-.416 3.914-1.451 5.53-3.17 1.267-1.348 2.106-2.76 2.628-4.41l.117-.366z\"},\"child\":[]}]})(props);\n};\nexport function SiEclipsejetty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.9847 2.7514a.842.842 0 00-.8203.6525l-.617 2.673a.842.842 0 00.023.4591.842.842 0 00-.222.403L.986 17.1715c-.0428.0033-.0642.0065-.1198.0087a.842.842 0 00-.8086.821l-.0575 2.3853a.842.842 0 00.8446.8622c1.3542-.0049 2.7158-.0093 4.0669-.0156.543-.0142 1.0992-.2356 1.5074-.6331.4083-.3976.6578-.921.842-1.548a.8442.8442 0 00.0127-.048l.093-.4032a.842.842 0 00.8083.6073h2.5182a.842.842 0 00.763-.486l6.8882-14.773c.26-.558-.1472-1.1974-.7628-1.1976h-2.5181a.842.842 0 00-.763.4862L12.8664 6.313a.842.842 0 00-.209-.0265h-2.4478l.578-2.5039c.1216-.5275-.279-1.031-.8203-1.0312zm15.6543 0a.842.842 0 00-.763.4862l-6.8883 14.7728c-.26.5581.1473 1.1974.763 1.1976h2.518a.842.842 0 00.763-.486l6.8884-14.773c.26-.5581-.1473-1.1974-.763-1.1976zm-15.6543.842h4.9827l-.617 2.6729H4.3679zm10.0789 0h2.518l-6.8883 14.7728H8.1751l.3446-.739h1.9084a.842.842 0 00.8202-.6524l.856-3.7076c.1216-.5275-.279-1.031-.8202-1.0312h-.2506l.2603-.5581h.5077a.842.842 0 00.8202-.6526l.856-3.7075a.842.842 0 00.008-.3403zm5.5754 0h2.5182l-6.8885 14.7728h-2.518zM4.1685 7.1284h2.6244l-.8122 3.5182c-.1217.5275.2788 1.0311.8202 1.0313H8.101l-.129.558H6.2835a.842.842 0 00-.8203.6525l-.856 3.7076c-.1215.5275.279 1.031.8202 1.0312h1.3003l-.2741 1.1874c-.321 1.0921-.8075 1.5347-1.5882 1.5778l-4.0236.0144.0575-2.3855c.4885-.0192.7073.0034.851-.4182zm3.4882 0h5.0008l-.8559 3.7077H6.801zm1.3083 4.5495h1.4l-.2604.558H8.8361zm-2.6816 1.3999h5.0008l-.856 3.7076H5.4272Z\"},\"child\":[]}]})(props);\n};\nexport function SiEclipsemosquitto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.353 11.424c0 2.637.964 5.105 2.636 7.013l-1.007.903A11.968 11.968 0 010 11.424C0 8.065 1.38 5.029 3.604 2.85l.05.045L6.637 5.57a7.942 7.942 0 00-1.433 9.963l1.03-.923a6.59 6.59 0 011.416-8.132l1.02.915.909.814.941.844a2.778 2.778 0 00-1.311 2.367c0 1.23.795 2.273 1.899 2.646l.095 1.297a4.024 4.024 0 01-2.483-6.27l-.9-.809-.004-.003a5.233 5.233 0 00.205 6.546l-3.023 2.71a9.291 9.291 0 01-.21-11.97L3.777 4.66a10.599 10.599 0 00-2.407 6.14l-.006.008.005.004c-.011.203-.017.406-.017.612zm11.54 2.639a2.793 2.793 0 00.588-5.013l.941-.844.908-.814 1.021-.915a6.59 6.59 0 011.417 8.132l1.029.923a7.942 7.942 0 00-1.433-9.963l2.981-2.673.05-.045A11.964 11.964 0 0124 11.424c0 2.98-1.095 5.769-2.982 7.916l-1.007-.903a10.61 10.61 0 002.619-7.625l.005-.004-.006-.007a10.598 10.598 0 00-2.407-6.141l-1.008.904a9.291 9.291 0 01-.211 11.97l-3.023-2.71a5.233 5.233 0 00.205-6.546l-.004.003-.9.808a4.024 4.024 0 01-2.482 6.27zM12 21.149l.335-4.571.271-3.712a1.56 1.56 0 10-1.212 0l.271 3.712Z\"},\"child\":[]}]})(props);\n};\nexport function SiEclipsevertdotx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.356.01C1.566.01.027 1.269 0 2.938v1.436h2.515l3.861 8.896 4.028-8.791h5.078l2.182 3.986 2.56-3.986H24V2.946C24 1.281 22.44.011 20.645.011zM24 5.668l-8.874 13.56H12.44c-.02-.629-.188-1.237-.503-1.74l3.609-5.708-2.744-4.36-3.829 8.42-.036-.002a3.443 3.443 0 0 0-3.434 3.433c0 .021.003.042.004.063h-.263L0 7.5v13.553c0 1.665 1.56 2.935 3.356 2.935h17.289c1.812 0 3.355-1.276 3.355-2.935v-1.826h-3.587l-1.594-2.874 2.224-3.378L24 17.638zm-15.066 11.5a2.102 2.102 0 0 1 2.109 2.103 2.106 2.106 0 1 1-4.212 0c0-1.16.937-2.1 2.103-2.103Z\"},\"child\":[]}]})(props);\n};\nexport function SiEcosia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.198 6.818H8.786v10.48h6.412v-3.342h-3.98v-1.262H13.8V11.42h-2.584v-1.261h3.981zM11.972.06A12.003 12.003 0 0 0 0 12.064a12.003 12.003 0 0 0 10.083 11.848c.068-1.277.196-2.723.434-3.652v-.014c0-.005 0-.007-.01-.012 0-.005-.01-.007-.012-.009 0-.002-.01-.002-.014-.002h-.356c-2.307 0-5.943-.333-6.916-3.45-1.458-4.642 2.025-6.314 3.484-4.97 0 .004.012.008.019.008.01 0 .014 0 .02-.005.01-.005.013-.009.015-.016v-.021c-.322-.945-2.148-6.867 2.64-8.496 4.08-1.369 8.07 1.491 7.461 5.265v.017c0 .007.01.012.012.014 0 .002.012.005.016.005 0 0 .012-.002.016-.005.298-.246 1.603-1.186 2.919-.148 1.247.982.844 3.73-1.627 5.003-.01.002-.014.007-.02.014v.023c0 .01.01.014.015.02.01.004.016.004.023.001 1.596-.239 4.316 1.193 2.11 4.375-1.447 2.1-4.71 2.365-6.168 2.365h-1.071s-.01 0-.012.002c0 .002-.01.005-.012.007 0 .002 0 .005-.01.009v.012c-.021.751.331 2.304.693 3.688A12.003 12.003 0 0 0 24 12.063 12.003 12.003 0 0 0 11.997.06a12.003 12.003 0 0 0-.03 0z\"},\"child\":[]}]})(props);\n};\nexport function SiEcovacs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.066,19.071L19.065,19.07C17.256,20.88 14.755,22 11.994,22C9.233,22 6.732,20.88 4.924,19.07L4.924,19.071C4.743,18.89 4.492,18.779 4.217,18.779C3.956,18.779 3.722,18.879 3.543,19.041C3.343,19.223 3.217,19.485 3.217,19.779C3.217,20.049 3.325,20.295 3.499,20.475L3.51,20.485L3.521,20.496C5.692,22.661 8.686,24 11.994,24C15.3,24 18.295,22.662 20.466,20.498L20.48,20.484L20.491,20.472C20.665,20.293 20.772,20.048 20.772,19.779C20.772,19.485 20.645,19.223 20.445,19.041C20.267,18.879 20.031,18.779 19.773,18.779C19.496,18.779 19.247,18.89 19.066,19.071ZM15.394,14L11.395,14C10.29,14 9.395,13.105 9.395,12C9.395,10.896 10.29,10.001 11.395,10.001L15.394,10.001L16.794,8L11.395,8C9.185,8 7.394,9.791 7.394,12C7.394,14.209 9.185,16 11.395,16L16.794,16L15.394,14ZM14.994,11L14.963,11.001L14.963,11L11.994,11C11.441,11 10.995,11.448 10.995,12C10.995,12.553 11.441,13 11.994,13L14.963,13L14.963,12.998L14.994,13C15.546,13 15.994,12.553 15.994,12C15.994,11.448 15.546,11 14.994,11ZM11.977,0C8.68,0.003 5.69,1.339 3.523,3.497C3.342,3.677 3.228,3.926 3.228,4.202C3.227,4.496 3.353,4.758 3.553,4.941C3.73,5.103 3.966,5.204 4.225,5.205C4.501,5.206 4.751,5.094 4.933,4.915L4.933,4.914L4.934,4.913C6.748,3.107 9.25,1.994 12.011,2C14.772,2.007 17.27,3.13 19.075,4.945L19.075,4.944C19.256,5.125 19.505,5.239 19.781,5.24C20.041,5.24 20.277,5.14 20.455,4.978C20.656,4.796 20.783,4.535 20.783,4.242C20.784,3.965 20.673,3.716 20.493,3.536L20.492,3.534L20.491,3.533C18.325,1.357 15.328,0.007 12.015,0L11.977,0Z\"},\"child\":[]}]})(props);\n};\nexport function SiEdeka (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.901 18.997h2.688v.699h-1.857v.297h1.857v.699h-1.857v.295h1.857v.698h-2.688zm-6.476 0h2.686v.699H5.253v.297h1.858v.699H5.253v.295h1.858v.698H4.425ZM17.996 19l-.92 2.685h.827l.182-.552h1.066l.172.552h.834L19.233 19Zm.617.593.319.91h-.635ZM14.076 19h.827v1.024L15.839 19h1.089l-1.055 1.144 1.144 1.541h-1.053l-.673-.914-.387.402v.512h-.828zm-6.459 0v2.685h1.59a1.344 1.344 0 0 0 0-2.685zm.827.71h.652a.6335.6335 0 1 1 0 1.267h-.65ZM4.432 2.318h15.136V6.32H9.104v1.563h10.463v4.004H9.104v1.56h10.463v4.004H4.432ZM2.116 0v24h19.768V0Zm.176.177h19.413v23.647H2.291Zm2.1364 18.8206h2.6852v.6988H5.2564v.2967h1.8572v.6989H5.2564v.2943h1.8572v.6988H4.4284Zm6.4758 0h2.6876v.6988h-1.857v.2967h1.857v.6989h-1.857v.2943h1.857v.6988h-2.6876zM17.998 19l-.9199 2.6855h.8281l.1817-.5527h1.0644l.172.5527h.8359l-.9239-2.6855zm.6172.5937.3184.9082h-.6348ZM14.078 19h.828v1.0243L15.8417 19h1.0889l-1.0554 1.144 1.144 1.5412H15.966l-.6725-.9142-.3877.402v.5122h-.828zM7.621 19v2.6855H9.209c.7395-.0023 1.3384-.6081 1.336-1.3476-.0025-.7347-.599-1.3355-1.336-1.3379Zm.8262.711h.6504c.3494 0 .6347.2814.6347.6308 0 .3494-.2853.6348-.6347.6348h-.6504ZM4.4345 2.317h15.1347v4.004H9.106v1.5627h10.463v4.0039H9.1062v1.5604h10.463v4.0039H4.4346Z\"},\"child\":[]}]})(props);\n};\nexport function SiEdgeimpulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.008 10.287h4.51l1.348 3.53h-5.858c-.979 0-1.772-.79-1.772-1.766s.793-1.766 1.772-1.766v.002ZM.677 12.049a1.77 1.77 0 0 1 1.773-1.766h8.597a1.77 1.77 0 0 1 1.772 1.766c0 .976-.793 1.766-1.772 1.766H2.45c-.98 0-1.773-.79-1.773-1.766ZM24 19.613H4.448a2.515 2.515 0 0 1-1.93.899A2.514 2.514 0 0 1 0 18.002a2.514 2.514 0 0 1 2.518-2.509c.775 0 1.467.351 1.93.899h18.321L24 19.613ZM19.594 7.655H4.404a2.51 2.51 0 0 1-1.886.852A2.514 2.514 0 0 1 0 5.998a2.514 2.514 0 0 1 2.518-2.51c.797 0 1.506.371 1.967.946h13.878l1.231 3.221Z\"},\"child\":[]}]})(props);\n};\nexport function SiEditorconfig (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.325.402c-.242-.013-1.006.34-1.402.544-.897.472-1.14.632-1.806 1.54-.766 1.046-1.084 1.638-1.213 2.181-.383 1.392-.533 2.089-1.148 2.934-.457.344-.546.792-.911 1.305-.234.327-.862 1.43-.863 1.517-.003.163-.05.2-.539.184-.526-.018-.736.039-1.003.299-.24.232-.288.24-.289 1.054 0 .98.229 1.09.574 1.545C1.207 14.798.098 18.578 0 20.885c0 .195.015.706.131 1.741.137.296.337.514.587.671.822.062 1.762.302 3.39.302 1.315 0 3.857-.58 4.06-.635.693-.185 1.771-.76 2.51-1.187.174-.1 1.395-.542 1.856-.89.239-.181 1.461-.872 1.887-1.206.876-.687.96-.835 1.717-1.942.345-.505.497-.644.829-1.455l.01-.703c.262.09 2.184.608 2.41.743.367.219.012.448-.183.677-.14.165.092.323.224.203.192-.174.781-.564.744-.76 0-.134-.315-.328-.807-.572-.446-.221-.416-.218-.256-.265.905-.301 1.406-.437 2.032-.8 1.677-1.042 2.555-1.976 2.761-2.927.198-.876.09-1.52-.273-2.294-.183-.683-.513-.935-1.24-1.237-.848-.353-2.396-.51-3.012-.3-.517.175-1.777.738-2.416 1.057-.346.173-.633.307-.638.297-.156-.254-.32-.506-.463-.79-.252-.5-.37-.659-.624-.777-.133-.062-.385-.175-.684-.385-.496-.344-1.162-.82-2.723-1.243.892-1.545.904-1.74 1.039-2.587.125-.629.168-1.685.039-1.97-.117-.257-.617-.8-.955-.962-.66-.315-1.075-.287-1.627-.287zm.023.564c.172-.001.369.022.622.07.44.085.728.2 1.171.47l.3.182.065.525c.069.564.046.986-.073 1.348-.04.124-.134.424-.207.667-.145.484-.498 1.015-.636 1.236-.03.05-.125-.022-.166.08-.184.466-.4.487-.76.52-.113.01-.889-.046-1.687-.07-.963.028-1.337-.22-2.518.258-.253.096.528-1.41.61-1.56.21-.38 1.327-1.66 1.6-1.762.23-.086.456-.341.656-.532.33-.315.418-.348.765-.415.324-.063 1.066-.29 1.43-.037.225.178.381.537.346.821-.069.566-.149.792-.497 1.31-.824 1.227-.806 1.251-.699 1.313.105.06.085.094.067.161-.056.206.007.163.161.11.315-.11.802-.996 1.119-2.001.192-.611.19-.335.16-1.12-.017-.465-.029-.415-.182-.665-.227-.37-.45-.49-1.22-.49-.83-.002-1.143.033-1.676.515-.603.544-1.083.77-1.949 2.054-.427.461-.92 1.615-1.149 2.427-.029-.005-.043.02-.015-.366.043-.588.185-.988.79-2.225.429-.874.58-1.133.76-1.3.613-.57 1.66-1.217 2.34-1.445.153-.052.3-.078.472-.08zm1.285 6.017c1.406.541 2.34.62 3.442 1.654.68 1.108.9 2.22 1.246 3.435.343 1.06.33 2.738.321 2.97-.414-.157-.826-.197-1.292-.214-.06-.542-1.137-.636-1.531-.825-.512-.228-1.295-.364-2.3-.527-.96-.22-1.753-.111-2.722-.125-.11.1-.19.186-.278.317-.15-.08-.354-.275-.634-.264-.105 0-.117-.018-.08-.28.024-.168.102-.305.017-.383-.221-.204-.167-.218-.201-.316-1.107-.64-3.029-1.611-4.02-1.71.34-.476.195-.52.303-.691.272-.429.968-1.343 1.123-1.694 0-.229.723-.984 1.403-1.503 1.43-.28 3.565-.265 5.203.156zm8.519 1.505c1.605.041 2.166.236 2.697.777.524.55.698.877.698 1.31 0 .354-.278 1.343-.462 1.647-.7 1.152-2.265 2.404-3.6 2.88-.316.111-.478.133-1.096.148-.403.035-.91-.043-1.297-.13.22-2.561.026-2.73-.198-3.771.09-.22.505-.48.422-.611.776-.49 1.325-1.04 1.933-1.228.408-.15.493-.161 1.343-.186.802-.023.944-.014 1.224.075.597.19 1.265.746 1.265 1.053 0 .193.044.242.137.241.22-.002.151-.326.037-.559-.378-.704-.968-.954-1.533-1.081-.143-.03-.6-.099-1.013-.118-.591-.027-.84-.005-1.143.06-.48.102-.898.239-1.302.596-.31.275-.857.591-1.305.805-.106.015-.174-.17-.256-.267 1.053-.807 2.03-1.521 3.449-1.64zM2.718 10.96c-.304.488-.515.842-.524 1.226-.12.301-.227.595-.38.907-.373-.376-.254-1.176-.093-1.517.357-.69.368-.508.997-.616zm.798.111c1.097.336 2.247.64 3.698 1.535.278.167.13.5.024 1.034a1.675 1.675 0 0 1-1.133.607c.431-.434.878-1.195.402-1.714-.118-.156-.15-.181-.358-.166-.284.02-.288-.006-.44.389-.327.385-.492 1.292-.382 1.576-.566-.033-2.077-.152-2.95-.709.094-.243.335-.595.358-.914.119-.241.62-1.665.78-1.638zm2.7 1.709c.167.282-.192 1.135-.417 1.241-.165-.602.167-1.17.416-1.241zm3.534.831c.437 0 1.24.092 2.21.253.836.138.995.177 1.715.414.854.264.798.364 1.087.785.063.09.156.366.205.609.109.533-.402.943-1.44 1.157-.354.073-.673.097-1.23.093-.879-.007-1.19-.044-1.685-.2-.736-.231-1.114-.555-1.519-1.233-.22-.37-.273-.414-.242-.685.064-.562.183-.927.346-1.064.134-.113.203-.129.553-.129zm-1.984.085c.1-.003.586.224.683.29-.142.385-.009 1.322.383 1.777.092.143.318.465.535.68.684.683 1.13.795 2.656.796 1.278.002 1.65-.068 2.285-.272.589-.188.768-.428.837-.595.17-.402.252-.817.211-1.247l1.287.366c-.106.866-.587 1.375-.944 1.821-.266.428-.816 1.23-.971 1.364-.747.643-1.436 1.095-2.928 1.936-.439.248-1.618.706-1.924.859-.312.156-1.417.81-1.569.855a9.49 9.49 0 0 1-1.554.315c-.4.047-1.82.262-2.725.299-.66.014-.84-.054-1.657-.03-.438-.084-1.396-.301-1.396-.301-.285-.457-.359-.807-.439-1.336.664.778 1.063 1.041 1.595 1.041.479 0 .725-.18.92-.18.123 0 .454-.233.437-.385a1.03 1.03 0 0 0-.253-.605c-.23-.147-1.6-.691-1.832-.691-.64 0-.781.05-.85.18.395-2.142.909-4.616 1.67-6.62 1.174.514 3.097.887 4.043.568 1.452-.51 1.12-.685 1.5-.885zm3.817.15c-.168 0-.586.458-.744.815-.159.359-.202.911-.083 1.055.098.118.503.12.707-.004.398-.243.779-1.096.682-1.538-.035-.16-.33-.328-.562-.328zm.026.39c.148.178-.04.659-.213.85-.204.216-.406.247-.348.058.14-.353.456-.914.561-.908zM2.68 21.462c.156.049.353.27.315.33-.638.036-.998-.008-1.051-.012-.217-.017-.917-.32-.897-.657.027-.395 1.32.31 1.633.339z\"},\"child\":[]}]})(props);\n};\nexport function SiEdotleclerc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0006 0C5.4304 0 .104 5.373.104 12.0006.1041 18.628 5.4304 24 12.0006 24c6.57 0 11.8953-5.372 11.8953-11.9994C23.8959 5.373 18.5705 0 12.0006 0zm0 2.491c5.2064 0 9.4266 4.2576 9.4266 9.5096 0 5.2518-4.2202 9.5085-9.4266 9.5085-5.2065 0-9.4278-4.2567-9.4278-9.5085 0-5.252 4.2213-9.5097 9.4278-9.5097zm1.1477 1.9912c-1.4425 0-2.7735.4696-3.8562 1.266h3.1929V8.982c-.556.0284-1.0156.4782-1.0156 1.0436v5.4499h.9442c1.2058 0 1.5093-1.4532 1.5093-1.4532h2.836l.001 2.5939c1.7738-1.1835 2.9437-3.215 2.9437-5.5212 0-3.6525-2.9346-6.6128-6.5554-6.6128zM6.49 6.7322v1.6204c.5462.1418 1.018.6113 1.018 1.3817v5.4592c0 .6162-.4365 1.1693-1.018 1.315v2.0943h9.3003V15.004l-1.2344.007c-.348.8466-1.1771 1.4415-2.1422 1.4415h-1.913V9.691c0-.6981.4543-1.1824 1.0156-1.335V6.7322z\"},\"child\":[]}]})(props);\n};\nexport function SiEducative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 0H4a4 4 0 0 0-4 4v16a4 4 0 0 0 3.998 4h16A4 4 0 0 0 24 20V4a4 4 0 0 0-4-4ZM5.397 19.576l-1.828-1.673a.316.316 0 0 1-.018-.445l4.004-4.376a.314.314 0 0 0 .009-.415L3.82 8.217a.315.315 0 0 1 .038-.443l1.893-1.595a.315.315 0 0 1 .443.038l5.495 6.537a.316.316 0 0 1-.008.417L5.84 19.559a.315.315 0 0 1-.442.018zm15.147-.102c0 .174-.141.315-.315.315H11.74a.315.315 0 0 1-.314-.315v-2.332c0-.174.14-.315.314-.315h8.488c.174 0 .315.14.315.315z\"},\"child\":[]}]})(props);\n};\nexport function SiEdx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.359 10.416c.053.162.079.334.079.516a3.154 3.154 0 0 1-.011.231h-3c.065-.236.152-.451.262-.644.109-.193.239-.359.39-.497.15-.138.318-.246.503-.321.184-.075.383-.113.595-.113.209 0 .392.036.549.108.156.071.288.169.394.292.107.123.186.266.239.428zm5.444-.4a1.206 1.206 0 0 0-.436-.305 1.48 1.48 0 0 0-.58-.108c-.284 0-.547.063-.79.19a1.952 1.952 0 0 0-.631.528 2.61 2.61 0 0 0-.421.808 3.305 3.305 0 0 0-.154 1.029c0 .233.033.446.1.641s.16.362.28.5c.12.138.263.246.431.323.168.077.354.116.56.116.287 0 .553-.067.798-.203.244-.135.458-.32.639-.554a2.71 2.71 0 0 0 .426-.826c.102-.316.154-.658.154-1.024 0-.236-.033-.448-.098-.636a1.405 1.405 0 0 0-.278-.479zM24 7.468l-2.398 11.276H10.727l.625-2.852H0L2.227 5.256h13.577l-.462 2.212H24zM7.362 11.045a2.51 2.51 0 0 0-.169-.954 2.069 2.069 0 0 0-.457-.7 1.951 1.951 0 0 0-.669-.434 2.22 2.22 0 0 0-.809-.148 2.73 2.73 0 0 0-1.162.246 2.628 2.628 0 0 0-.911.695c-.253.3-.451.659-.593 1.077a4.346 4.346 0 0 0-.212 1.393c0 .373.059.703.177.99a2.01 2.01 0 0 0 1.198 1.172c.273.101.564.151.872.151.321 0 .616-.039.885-.115a2.55 2.55 0 0 0 .708-.318c.204-.135.372-.295.505-.48a1.84 1.84 0 0 0 .287-.595h-.938a1.279 1.279 0 0 1-.508.513c-.222.126-.517.19-.883.19-.168 0-.333-.028-.497-.085a1.202 1.202 0 0 1-.444-.274 1.41 1.41 0 0 1-.321-.49 1.913 1.913 0 0 1-.123-.726c0-.048.001-.094.003-.138.002-.044.004-.09.008-.138h3.986c.01-.051.019-.114.026-.187l.02-.226a6.153 6.153 0 0 0 .021-.419zm5.036 3.392L14.04 6.71h-.898l-.682 3.217h-.082a1.406 1.406 0 0 0-.228-.454 1.56 1.56 0 0 0-.375-.354 1.786 1.786 0 0 0-.487-.228 1.93 1.93 0 0 0-.567-.082 2.506 2.506 0 0 0-1.45.456 2.892 2.892 0 0 0-.575.534c-.173.208-.32.442-.444.7a3.925 3.925 0 0 0-.285.841c-.066.303-.1.62-.1.952 0 .342.053.652.159.929.106.277.25.513.434.708.183.195.395.345.639.449.243.105.503.157.78.157.352 0 .681-.076.985-.228.304-.152.557-.36.759-.623h.082l-.159.754h.852zm6.116-1.39l3.578-4.125H20.09l-2.184 2.704h-.108l-1.155-2.704h-2.025l1.736 3.928-3.748 4.44h1.976l2.406-2.852h.162l1.3 2.852h1.988l-1.924-4.243z\"},\"child\":[]}]})(props);\n};\nexport function SiEgghead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.998 0c-1.649 0-3.223.893-4.679 2.655-.934 1.134-1.818 2.638-2.567 4.368-1.338.207-2.399.48-3.143.814a2.04 2.04 0 0 0-1.21 1.93c.041 1.433.385 2.925.64 3.924.22.868.95 1.512 1.838 1.623v.018A9.121 9.121 0 0 0 11.997 24l-.003-.001a9.133 9.133 0 0 0 9.127-8.667v-.016a2.175 2.175 0 0 0 1.84-1.626c.255-.997.599-2.489.64-3.93a2.036 2.036 0 0 0-1.21-1.926c-.765-.34-1.825-.616-3.154-.816-.748-1.727-1.634-3.228-2.565-4.361C15.22.894 13.647 0 11.998 0zm-.008.828c1.412 0 2.786.797 4.084 2.37.948 1.15 1.844 2.71 2.585 4.512 1.206.163 2.448.413 3.33.806.491.217.8.71.784 1.245-.038 1.346-.371 2.785-.61 3.738a1.458 1.458 0 0 1-1.397 1.104h-.014c-.146 0-.291-.01-.437-.013a8.443 8.443 0 0 1-.558 3.29 8.335 8.335 0 0 1-7.763 5.287h-.002v-.001A8.344 8.344 0 0 1 4.23 17.88a8.446 8.446 0 0 1-.573-3.288c-.14.003-.278.013-.418.013h-.007a1.458 1.458 0 0 1-1.395-1.104c-.248-.955-.577-2.386-.616-3.73a1.325 1.325 0 0 1 .784-1.252c.837-.371 2.075-.63 3.313-.803C6.066 5.914 6.96 4.352 7.906 3.2 9.204 1.625 10.578.828 11.99.828zm0 .77a3.365 3.365 0 0 0-1.691.492c-1.831 1.058-3.25 3.558-4.108 5.528 1.096-.118 2.137-.181 2.788-.172.54-.005 1.06.21 1.44.594A3.868 3.868 0 0 1 12 7.674a3.867 3.867 0 0 1 1.582.365 1.994 1.994 0 0 1 1.427-.593c.43-.007 1.535.036 2.776.162-.852-1.958-2.273-4.461-4.104-5.518a3.374 3.374 0 0 0-1.692-.491zm3.215 7.045v.004a.922.922 0 0 0-.93.774c-.099.53-.164 1.064-.196 1.601-.007.614.214 1.034.651 1.25 1.252.558 2.66.898 4.27 1.034-.189-1.377-.578-2.958-1.112-4.495-1.087-.122-2.12-.177-2.683-.168zm-6.422.001a25.896 25.896 0 0 0-2.644.159c-.533 1.54-.924 3.123-1.108 4.5 1.59-.14 2.983-.48 4.226-1.034.44-.214.66-.636.653-1.252a12.746 12.746 0 0 0-.198-1.6.92.92 0 0 0-.93-.773zM5.29 8.91c-.624.09-1.242.21-1.79.364l1.509.533c.087-.299.183-.598.281-.897zm13.453.01c.096.29.188.581.274.872l1.46-.515a14.497 14.497 0 0 0-1.734-.357zm-6.746.34a.859.859 0 0 0-.478.144c-.303.2-.408.581-.378.868.122 1.139.07 2.388-1.229 3.01l-.015.008a11.37 11.37 0 0 1-1.93.707c-1.162.308-2.351.5-3.548.573a7.574 7.574 0 0 0 14.627 3.007 7.584 7.584 0 0 0 .506-3.009 18.16 18.16 0 0 1-3.525-.572c-.664-.175-1.31-.41-1.931-.7l-.014-.012c-1.303-.623-1.352-1.871-1.23-3.01.03-.287-.075-.668-.378-.87a.859.859 0 0 0-.477-.145zm-9.352 1.875c.113.726.271 1.422.407 1.95.044.17.196.29.37.29.289-.001.554-.024.83-.037.075-.612.197-1.27.35-1.95a203.22 203.22 0 0 1-1.957-.253zm18.695 0c-.746.099-1.506.198-1.909.246.155.683.275 1.344.352 1.96.26.01.508.034.778.036a.385.385 0 0 0 .37-.289c.136-.53.296-1.226.409-1.953Z\"},\"child\":[]}]})(props);\n};\nexport function SiEgnyte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.742 11.214l-.447-.78a.062.062 0 0 0-.082-.022l-2.014 1.162-1.986-1.167a.062.062 0 0 0-.082.021l-.458.78a.062.062 0 0 0 .021.083l2.009 1.178v2.363c0 .033.027.06.06.06h.89a.06.06 0 0 0 .06-.06v-2.374l2.007-1.162c.028-.016.039-.055.022-.082zm-3.863 1.583c-.017-.028-.055-.038-.088-.022l-1.342.797c-.027.016-.038.054-.022.087l.191.327c.016.028.055.039.087.022l1.343-.797c.027-.016.038-.054.022-.087zm1.533-3.69l-.442.006c-.016 0-.027.011-.027.033l.005 1.62c0 .017.011.028.033.028h.442c.016 0 .027-.01.027-.033l-.005-1.62a.035.035 0 0 0-.033-.033zm2.554 4.377l-1.413-.791c-.017-.005-.033-.005-.039.011l-.218.387c-.005.017-.005.033.011.039l1.413.79c.017.006.033.006.039-.01l.218-.388c.01-.01.005-.032-.011-.038zm-14.057.12h-1.9v-.584h1.687a.075.075 0 0 0 .076-.076v-.65a.075.075 0 0 0-.076-.076H1.01v-.556h1.87a.075.075 0 0 0 .077-.077v-.715a.075.075 0 0 0-.077-.076H.076A.075.075 0 0 0 0 10.87v3.526c0 .043.033.076.076.076H2.91a.075.075 0 0 0 .076-.076v-.715a.078.078 0 0 0-.076-.077zm3.967-1.282H5.26v.748h.725v.442c0 .005 0 .01-.005.01-.153.099-.338.148-.584.148-.584 0-.999-.426-.999-1.02v-.012c0-.562.41-1.01.939-1.01.338 0 .584.11.83.301.032.027.081.022.103-.01l.502-.607a.078.078 0 0 0-.01-.109c-.377-.305-.82-.485-1.436-.485-1.14 0-1.98.84-1.98 1.915v.01c0 1.114.856 1.905 2.002 1.905a2.49 2.49 0 0 0 1.572-.545.088.088 0 0 0 .027-.06v-1.545c.005-.043-.027-.076-.071-.076zm4.044-1.533h-.857a.075.075 0 0 0-.077.076v1.866l-1.49-1.915a.088.088 0 0 0-.06-.027h-.834a.075.075 0 0 0-.077.076v3.525c0 .044.033.077.077.077h.856a.075.075 0 0 0 .077-.077v-1.943l1.55 1.992a.088.088 0 0 0 .06.028h.78a.075.075 0 0 0 .076-.077v-3.525c-.005-.038-.043-.076-.081-.076zm9.571 0H17.42a.075.075 0 0 0-.077.076v.742c0 .044.033.076.077.076h1.026v2.713c0 .043.032.076.076.076h.868a.075.075 0 0 0 .076-.076v-2.702c0-.005.006-.01.011-.01h1.015a.075.075 0 0 0 .077-.077v-.742a.078.078 0 0 0-.077-.076zm3.433 2.815h-1.9v-.584h1.692a.075.075 0 0 0 .077-.076v-.65a.075.075 0 0 0-.077-.076h-1.691v-.556h1.871a.075.075 0 0 0 .077-.077v-.715a.075.075 0 0 0-.077-.076h-2.805a.075.075 0 0 0-.076.076v3.526c0 .043.033.076.076.076h2.833a.075.075 0 0 0 .076-.076v-.715a.075.075 0 0 0-.076-.077Z\"},\"child\":[]}]})(props);\n};\nexport function SiEight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.908 6.092a5.908 5.908 0 1 0 0 11.816 5.908 5.908 0 0 0 0-11.816zm9.23 0v2.955h5.909V6.092h-5.908zm5.909 2.955v5.906H24V9.047h-2.953zm0 5.906h-5.908v2.955h5.908v-2.955zm-5.908 0V9.047h-2.953v5.906h2.953zm-9.23-5.906A2.956 2.956 0 0 1 8.86 12a2.956 2.956 0 0 1-2.953 2.953A2.958 2.958 0 0 1 2.953 12a2.958 2.958 0 0 1 2.955-2.953z\"},\"child\":[]}]})(props);\n};\nexport function SiEightsleep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.847 7.28V4.105A4.104 4.104 0 0 0 15.745 0H8.258a4.104 4.104 0 0 0-4.105 4.102v3.183a4.092 4.092 0 0 0 2.415 3.738v.588a4.102 4.102 0 0 0-2.415 3.738v4.546A4.104 4.104 0 0 0 8.255 24h7.488a4.104 4.104 0 0 0 4.104-4.104v-4.553a4.102 4.102 0 0 0-2.415-3.738v-.587a4.102 4.102 0 0 0 2.415-3.738zM8.451 5.126c0-.818.662-1.482 1.48-1.483h4.133c.819 0 1.483.663 1.483 1.482v1.991c0 .819-.664 1.482-1.483 1.482H9.93a1.482 1.482 0 0 1-1.482-1.482l.003-1.99zm7.1 13.732c0 .818-.664 1.482-1.483 1.482H9.93a1.482 1.482 0 0 1-1.482-1.482v-2.752c0-.819.664-1.483 1.482-1.483h4.134c.819 0 1.483.664 1.483 1.483l.003 2.752z\"},\"child\":[]}]})(props);\n};\nexport function SiEjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.291 5.696-1.258-1.58 1.668-1.55 1.258 1.58-1.668 1.55zm2.34 2.048.205-1.55-5.412-.03-.204 1.55 3.945.022L7.8 17.852l-.839.77-.405-.004c.385.403.803.81 1.236 1.214l1.378-1.265 1.458-10.823h.004zm-6.757 7.254s2.925-.468 3.54.38c0 0-1.756-2.925-4.184-2.925 0-.074-.098-1.353 5.146-2.609l.206-1.53c-8.346 1.108-14.287 4.322.265 13.12 0 0-5.675-4.71-4.973-6.436zM13 6.223 11.216 7.86l-.526 4.037 1.316 1.638 5.675.058.556.702-.38 2.633-.713.685-.018.017h2.193l.556-4.037-1.345-1.638-5.646-.058-.556-.702.351-2.633.731-.702 5.032.058.556.673-.176 1.229h1.55l.264-1.902-1.317-1.667-6.318-.03zm2.882 11.908.545-.523-4.305-.035-.965-1.17-1.258 1.17 1.346 1.667 6.318.03 1.22-1.139h-2.901zM13.13 8.965a103.16 103.16 0 0 1 4.624-.554l-4.145-.048-.457.44-.022.162zm8.026-1.156-.025.179-.018.132c.92-.07 1.87-.139 2.887-.2 0 0-1.113-.067-2.844-.11zM1.914 18.392l1.404 1.784 2.66.02c-1.292-.875-2.393-1.708-3.296-2.499l-.768.695z\"},\"child\":[]}]})(props);\n};\nexport function SiElastic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.345 16.33l-3.959-.926-1.05-2.01 5.177-4.535a3.962 3.962 0 012.559 3.702 4.006 4.006 0 01-2.727 3.77m-2.976 4.68c-.616 0-1.22-.207-1.714-.587l.782-4.077 3.596.841c.115.31.172.642.172.987a2.839 2.839 0 01-2.836 2.836m-2.637-.586a5.92 5.92 0 01-4.908 2.6A5.947 5.947 0 014 15.905l5.167-4.67 5.272 2.403 1.167 2.23zM.928 11.443a4.007 4.007 0 012.726-3.77l3.95.933.927 1.98-5.05 4.565a3.97 3.97 0 01-2.553-3.708m5.703-8.45a2.841 2.841 0 011.723.58l-.789 4.092-3.598-.85a2.842 2.842 0 01-.172-.986A2.84 2.84 0 016.63 2.992m2.66.59A5.92 5.92 0 0120.1 6.93c0 .4-.038.781-.114 1.164l-5.299 4.643-5.251-2.394-1.026-2.19zM24 12.571a4.723 4.723 0 00-3.124-4.454 6.695 6.695 0 00.126-1.29A6.789 6.789 0 0014.22.047 6.769 6.769 0 008.727 2.86a3.586 3.586 0 00-2.204-.754A3.604 3.604 0 003.15 6.959 4.786 4.786 0 000 11.431 4.727 4.727 0 003.139 15.9a6.876 6.876 0 00-.124 1.289 6.773 6.773 0 006.765 6.765c2.19 0 4.22-1.052 5.49-2.824a3.568 3.568 0 002.207.769 3.603 3.603 0 003.374-4.854A4.785 4.785 0 0024 12.572\"},\"child\":[]}]})(props);\n};\nexport function SiElasticcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.318 0c-6.628 0-12 5.372-12 12 0 2.008.495 3.9 1.368 5.563a14.299 14.299 0 0 1 5.09-3.664c.307-.13.624-.22.948-.28A4.842 4.842 0 0 1 8.443 12a4.875 4.875 0 0 1 7.494-4.11 2.218 2.218 0 0 0 2.055.164 12.047 12.047 0 0 0 4.69-3.554A11.975 11.975 0 0 0 13.318 0zM9.426 15.77c-.266.01-.531.069-.783.175a12.044 12.044 0 0 0-4.69 3.555c2.2 2.742 5.576 4.5 9.365 4.5 3.789 0 7.165-1.758 9.364-4.5a12.048 12.048 0 0 0-4.69-3.555 2.217 2.217 0 0 0-2.055.165 4.845 4.845 0 0 1-2.62.765 4.846 4.846 0 0 1-2.618-.765 2.193 2.193 0 0 0-1.273-.34z\"},\"child\":[]}]})(props);\n};\nexport function SiElasticsearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.394 0C8.683 0 4.609 2.716 2.644 6.667h15.641a4.77 4.77 0 0 0 3.073-1.11c.446-.375.864-.785 1.247-1.243l.001-.002A11.974 11.974 0 0 0 13.394 0zM1.804 8.889a12.009 12.009 0 0 0 0 6.222h14.7a3.111 3.111 0 1 0 0-6.222zm.84 8.444C4.61 21.283 8.684 24 13.395 24c3.701 0 7.011-1.677 9.212-4.312l-.001-.002a9.958 9.958 0 0 0-1.247-1.243 4.77 4.77 0 0 0-3.073-1.11z\"},\"child\":[]}]})(props);\n};\nexport function SiElasticstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.875 0C.839 0 0 .84 0 1.875v4.792h24V1.875C24 .839 23.16 0 22.125 0zM0 8.889v6.222h24V8.89zm0 8.444v4.792C0 23.161.84 24 1.875 24h9v-6.667zm13.125 0V24h9C23.161 24 24 23.16 24 22.125v-4.792z\"},\"child\":[]}]})(props);\n};\nexport function SiElavon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.028 12.248c-.38.9-.752 1.867-1.123 2.908a62.992 62.992 0 00-1.016 3.13h.355a48.858 48.858 0 011.76-4.79c.222-.513.446-.992.669-1.463-.215.066-.43.132-.645.215zm7.32-5.717c-.389-1.148-.959-1.735-1.694-1.735h-.008c-1.347 0-3.024 1.983-4.693 5.403.29-.107.579-.206.86-.306 1.164-1.957 2.271-3.114 3.073-3.114h.074c.446.041.777.47.967 1.28.495 2.082-.05 6.163-1.264 10.467.933.058 1.751.29 2.437.678.933-5.362 1.098-10.17.248-12.673zM18.1 10.422c0-.429.85.132-.033-1.47-4.378.371-10.525 3.18-16.217 7.765-.644.52-1.263 1.041-1.85 1.57h.363c.108-.083.207-.174.314-.265 5.99-4.816 12.533-7.616 16.977-7.616.149 0 .297.008.446.016zm2.255-1.397c.072.629.11 1.26.116 1.893a4.01 4.01 0 011.33.893c.81.826 1.174 1.956 1.092 3.369-.058.958-.324 2.008-.77 3.115h.24c.967-1.76 1.536-3.412 1.627-4.85.075-1.355-.28-2.436-1.049-3.22-.627-.645-1.52-1.026-2.586-1.2Z\"},\"child\":[]}]})(props);\n};\nexport function SiElectron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0111 0c-.85 0-1.5392.6891-1.5392 1.5392 0 .8501.6891 1.5393 1.5392 1.5393.595 0 1.11-.338 1.3662-.832 2.2208 1.2675 3.847 5.4728 3.847 10.3623 0 2.0715-.2891 4.056-.825 5.7685a.3215.3215 0 0 0 .2107.403.322.322 0 0 0 .4033-.2111c.5558-1.7763.8542-3.8251.8542-5.9604 0-5.1927-1.7717-9.686-4.3206-11.0027.001-.0223.0035-.0443.0035-.0669 0-.85-.6891-1.5392-1.5393-1.5392zm0 .6432a.896.896 0 1 1 0 1.792.896.896 0 1 1 0-1.792zm-5.486 4.3052c-2.067.0074-3.6473.6646-4.3885 1.9485-.7375 1.2774-.5267 2.971.5113 4.7813a.3217.3217 0 0 0 .558-.32C2.271 9.7274 2.089 8.266 2.6938 7.2185c.821-1.422 3.033-1.9552 5.9321-1.4271a.3216.3216 0 0 0 .1153-.6329c-.784-.1428-1.5271-.2125-2.216-.21zm11.0522.0176a.3216.3216 0 0 0-.0084.6432c1.8337.0239 3.1556.5956 3.7502 1.6256.8192 1.419.1798 3.5947-1.7182 5.837a.322.322 0 0 0 .0377.4535.3215.3215 0 0 0 .4532-.0377c2.0535-2.426 2.7708-4.8661 1.7845-6.5744-.7257-1.257-2.26-1.9207-4.299-1.9472zm-2.6984.2924a.3225.3225 0 0 0-.0647.0072c-1.8568.3979-3.8333 1.1755-5.7314 2.2714-4.5699 2.6384-7.5924 6.4948-7.3601 9.3717-.4726.2628-.7928.7664-.7928 1.3455 0 .85.6892 1.5392 1.5393 1.5392.85 0 1.5392-.6891 1.5392-1.5392 0-.8501-.6891-1.5393-1.5392-1.5393-.038 0-.0754.003-.1128.0057-.1002-2.5597 2.7434-6.1412 7.048-8.6265 1.8413-1.063 3.7551-1.8163 5.5445-2.1997a.3217.3217 0 0 0-.07-.636zm-2.8787 6.2364a1.1192 1.1192 0 0 0-.2243.0255c-.6012.1301-.983.7225-.8533 1.3238.1302.6012.7226.9832 1.3238.8533.6012-.1302.9832-.7226.8533-1.3238-.1139-.526-.5816-.8844-1.0995-.8788zM4.532 13.341a.321.321 0 0 0-.2318.0835.3214.3214 0 0 0-.0214.4542c1.2682 1.3936 2.9157 2.701 4.7946 3.7857 4.4146 2.5489 9.1056 3.2849 11.5608 1.8392a1.53 1.53 0 0 0 .8966.2899c.8501 0 1.5392-.6891 1.5392-1.5392 0-.8501-.689-1.5393-1.5392-1.5393-.85 0-1.5392.6892-1.5392 1.5393 0 .276.0737.5344.201.7584-2.2448 1.214-6.631.5002-10.7976-1.9054-1.8228-1.0524-3.418-2.3181-4.6404-3.6614a.3206.3206 0 0 0-.2226-.1049zm-2.0628 4.0172a.896.896 0 1 1 0 1.792.896.896 0 1 1 0-1.792zm19.0616 0a.896.896 0 1 1 0 1.792.891.891 0 0 1-.5864-.2194c-.0025-.004-.0039-.0083-.0066-.0123a.3195.3195 0 0 0-.0957-.0914.896.896 0 0 1 .6887-1.4689zm-14.0045 1.368a.3215.3215 0 0 0-.3207.4296C8.2793 22.154 10.036 24 12.0111 24c1.4406 0 2.7735-.9822 3.8128-2.711a.3215.3215 0 0 0-.11-.4413.3219.3219 0 0 0-.4415.11c-.934 1.5537-2.0812 2.399-3.2613 2.399-1.6407 0-3.2075-1.6465-4.2-4.4179a.3216.3216 0 0 0-.2848-.2126z\"},\"child\":[]}]})(props);\n};\nexport function SiElectronbuilder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7.01a3.506 3.506 0 003.506-3.505A3.506 3.506 0 0012 0a3.506 3.506 0 00-3.506 3.506A3.506 3.506 0 0012 7.01m0 4.137C9.243 8.588 5.574 7.01 1.484 7.01v12.852C5.574 19.863 9.243 21.44 12 24c2.757-2.56 6.426-4.137 10.516-4.137V7.01c-4.09 0-7.759 1.578-10.516 4.137z\"},\"child\":[]}]})(props);\n};\nexport function SiElectronfiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 0c-.6312 0-1.1429.5117-1.1429 1.1429v13.8583c-1.9716.5075-3.4285 2.2973-3.4285 4.4274C3.4286 21.9533 5.4753 24 8 24c2.5247 0 4.5714-2.0467 4.5714-4.5714 0-2.1301-1.4569-3.92-3.4285-4.4274v-4.7155h4.7346c.541 0 .9796-.5117.9796-1.1428 0-.6312-.4386-1.1429-.9796-1.1429H9.143V2.2857h10.2857c.6312 0 1.1428-.5117 1.1428-1.1428C20.5714.5117 20.0598 0 19.4286 0Zm0 17.1429c1.2624 0 2.2857 1.0233 2.2857 2.2857 0 1.2623-1.0233 2.2857-2.2857 2.2857-1.2624 0-2.2857-1.0234-2.2857-2.2857 0-1.2624 1.0233-2.2857 2.2857-2.2857z\"},\"child\":[]}]})(props);\n};\nexport function SiElegoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.686 7.479c.54.829 1.032 1.665 1.476 2.505.64-1.217 1.849-2.086 3.328-2.086 2.217 0 3.826 1.954 3.826 4.102 0 2.149-1.609 4.102-3.826 4.102-.656 0-1.26-.171-1.784-.467l-.001-.001c-.635-.36-1.153-.905-1.509-1.553-.484-.804-.725-1.706-.991-2.657-.598-2.134-1.252-3.773-3.194-4.988-1.001-.626-2.196-.985-3.501-.985C2.815 5.451 0 8.323 0 12c0 3.727 2.761 6.549 6.51 6.549 1.955 0 3.639-.766 4.805-2.027-.543-.83-1.034-1.664-1.477-2.505-.641 1.217-1.849 2.085-3.328 2.085-2.218 0-3.827-1.953-3.827-4.102 0-2.148 1.609-4.102 3.827-4.102.655 0 1.26.171 1.783.469h.001c.635.36 1.154.904 1.509 1.553.574.951.807 2.041 1.144 3.188.555 1.89 1.285 3.339 3.002 4.432 1.008.642 2.217 1.009 3.541 1.009 3.694 0 6.51-2.872 6.51-6.549 0-3.727-2.76-6.549-6.51-6.549-1.954 0-3.64.766-4.804 2.028Z\"},\"child\":[]}]})(props);\n};\nexport function SiElement (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm-1.314 4.715c3.289 0 5.956 2.66 5.956 5.943 0 .484-.394.877-.879.877s-.879-.393-.879-.877c0-2.313-1.88-4.189-4.198-4.189-.486 0-.879-.393-.879-.877s.392-.877.879-.877zm-5.092 9.504c-.486 0-.879-.394-.879-.877 0-3.283 2.666-5.945 5.956-5.945.485 0 .879.393.879.877s-.394.876-.879.876c-2.319 0-4.198 1.877-4.198 4.191 0 .484-.395.878-.879.878zm7.735 5.067c-3.29 0-5.957-2.662-5.957-5.944 0-.484.394-.878.879-.878s.879.394.879.878c0 2.313 1.88 4.189 4.199 4.189.485 0 .879.393.879.877 0 .486-.394.878-.879.878zm0-2.683c-.485 0-.88-.393-.88-.876 0-.484.395-.878.88-.878 2.318 0 4.199-1.876 4.199-4.19 0-.484.393-.877.879-.877.485 0 .879.393.879.877 0 3.282-2.667 5.944-5.957 5.944z\"},\"child\":[]}]})(props);\n};\nexport function SiElementary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm0 1a11 11 0 0 1 10.59 8.01 19.09 19.09 0 0 1-4.66 6.08c-.94.81-1.96 1.53-3.08 2.04-1.13.5-2.37.8-3.6.72a6.23 6.23 0 0 1-2.66-.76 20.02 20.02 0 0 0 5.68-4.58 9.97 9.97 0 0 0 2.31-4.17c.18-.79.2-1.6.04-2.4a4.42 4.42 0 0 0-1.08-2.11 4.33 4.33 0 0 0-2-1.19 5.25 5.25 0 0 0-2.33-.08A7.8 7.8 0 0 0 7.2 4.85a9.77 9.77 0 0 0-2.94 7.49 7.88 7.88 0 0 0 1.95 4.59 18 18 0 0 1-3.56.85A11 11 0 0 1 12 1zm.07 2.22c.77 0 1.55.24 2.17.7.55.42.97 1.02 1.2 1.68.23.65.3 1.37.21 2.06a7.85 7.85 0 0 1-1.7 3.76 16.22 16.22 0 0 1-6.37 4.96c-.48-.42-.9-.92-1.2-1.48a6.61 6.61 0 0 1-.75-3.87c.12-1.32.58-2.6 1.2-3.79a7.92 7.92 0 0 1 3.02-3.42c.68-.37 1.45-.6 2.22-.6zm10.83 7.3A11 11 0 0 1 3.52 19a19.8 19.8 0 0 0 3.63-1.2c.51.4 1.08.71 1.67.94a8 8 0 0 0 5.44-.04 13.3 13.3 0 0 0 4.64-2.95 20 20 0 0 0 4-5.22z\"},\"child\":[]}]})(props);\n};\nexport function SiElementor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12c0 6.626 5.372 12 12 12s12-5.372 12-12c0-6.626-5.372-12-12-12ZM9 17H7V7H9Zm8 0H11V15h6Zm0-4H11V11h6Zm0-4H11V7h6Z\"},\"child\":[]}]})(props);\n};\nexport function SiElevenlabs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.6035 0v24h4.9317V0zm9.8613 0v24h4.9317V0z\"},\"child\":[]}]})(props);\n};\nexport function SiEleventy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.398 12V0h17.204v24H3.398zm13.17 6.07a1.07 1.07 0 00.373-.107c.432-.213.68-.672.877-1.626.076-.372 1.195-6.168 1.209-6.263.026-.186-.008-.382-.084-.476a.325.325 0 00-.087-.064l-.06-.031h-.291c-.253 0-.298 0-.348.02-.113.039-.207.156-.255.316-.011.038-.168.881-.348 1.873l-.328 1.802-.046-.21c-.56-2.547-.764-3.452-.794-3.532a.383.383 0 00-.103-.16c-.105-.107-.117-.11-.567-.11-.411 0-.422 0-.5.074-.086.079-.122.216-.111.42.006.115.045.27.688 2.784.663 2.587.751 2.943.787 3.177.046.3-.05.713-.208.893-.032.037-.037.039-.084.032-.028 0-.12-.027-.204-.051-.268-.078-.362-.072-.462.028-.096.096-.137.248-.138.51 0 .256.028.34.159.473.131.133.324.208.595.23.164.012.22.012.33-.001zm-1.896-1.712a.31.31 0 00.16-.192c.02-.058.022-.098.022-.356 0-.255-.003-.299-.021-.354-.04-.121-.136-.196-.278-.217-.041-.01-.2-.01-.355-.01-.365-.001-.378-.01-.446-.184-.068-.18-.096-.326-.113-.602a85.799 85.799 0 01-.012-1.94v-1.765h.35c.454 0 .507-.01.602-.113a.465.465 0 00.102-.24 3.273 3.273 0 000-.534c-.026-.16-.099-.271-.211-.322-.057-.025-.065-.026-.45-.03h-.392l-.003-1.22c-.003-1.09-.005-1.227-.021-1.278a.378.378 0 00-.201-.247c-.052-.024-.072-.025-.32-.029-.27 0-.356 0-.429.038-.087.042-.148.133-.185.278-.014.054-.032.346-.076 1.262l-.06 1.194s-.08 0-.18.01c-.206.01-.263.022-.327.086-.092.092-.12.19-.127.455-.01.334.02.487.115.588.075.081.134.1.345.106l.173.01v1.785c0 1.7.006 2.019.034 2.274.041.37.13.709.241.928.194.38.544.617.988.668h1.005l.07-.04zm-7.447 0c.098-.053.16-.154.2-.332.016-.077.018-.401.018-4.518 0-4.184-.001-4.44-.02-4.51-.05-.194-.19-.29-.378-.26-.035.01-.344.084-.686.175-.343.09-.684.18-.758.198-.17.043-.214.062-.281.126-.105.098-.122.185-.122.606 0 .416.016.5.12.604.094.095.189.1.456.03.103-.026.193-.048.2-.048.01 0 .014.784.017 3.763.003 3.436.005 3.77.021 3.84.048.202.113.296.236.34.034.013.133.016.487.014.435 0 .445 0 .49-.027zm3.203 0c.092-.046.152-.135.197-.29l.024-.084.003-4.435c.002-3.194 0-4.456-.01-4.509-.033-.2-.145-.308-.322-.308-.066 0-.198.03-.857.204-.56.147-.799.214-.849.239a.34.34 0 00-.17.184c-.024.06-.024.071-.024.479 0 .415 0 .417.026.483a.362.362 0 00.083.12c.1.1.172.105.456.034a5.46 5.46 0 01.208-.05c.008 0 .012 1.202.014 3.791l.003 3.79.026.086a.48.48 0 00.135.23c.078.062.085.063.57.06.414 0 .447 0 .487-.024z\"},\"child\":[]}]})(props);\n};\nexport function SiElgato (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.8818 8.3964.0261.0196 9.9494 5.7172c-.4884 2.729-1.9196 5.2223-4.0384 7.0253A11.9262 11.9262 0 0 1 12.097 24c-3.1925 0-6.1939-1.2477-8.4527-3.5144C1.3868 18.2188.1427 15.2044.1427 12c0-3.2042 1.244-6.2187 3.5015-8.4854C5.9019 1.248 8.9032 0 12.097 0c2.4394 0 4.7847.7333 6.783 2.1187 1.9526 1.354 3.4466 3.2357 4.3227 5.4422.1112.2829.2149.5736.3051.8657l-2.1255 1.2359a9.4924 9.4924 0 0 0-.2619-.8694c-1.354-3.8303-4.9813-6.4048-9.0237-6.4048C6.8171 2.3883 2.522 6.7005 2.522 12c0 5.2995 4.295 9.6115 9.5748 9.6115 2.052 0 4.0084-.6442 5.6596-1.8647 1.6172-1.1955 2.8036-2.8337 3.4309-4.7364l.0065-.0419L9.5906 8.3048v7.2256l4.0004-2.3138 2.06 1.1811-5.9962 3.4688-2.12-1.2126V7.1943l2.1174-1.2245 4.2309 2.4279-.0013-.0013\"},\"child\":[]}]})(props);\n};\nexport function SiElixir (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.793 16.575c0 3.752-2.927 7.426-7.743 7.426-5.249 0-7.843-3.71-7.843-8.29 0-5.21 3.892-12.952 8-15.647a.397.397 0 0 1 .61.371 9.716 9.716 0 0 0 1.694 6.518c.522.795 1.092 1.478 1.763 2.352.94 1.227 1.637 1.906 2.644 3.842l.015.028a7.107 7.107 0 0 1 .86 3.4z\"},\"child\":[]}]})(props);\n};\nexport function SiEljueves (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.2718 14.6722a1.1453 1.9092 0 01-1.1452 1.9092 1.1453 1.9092 0 01-1.1453-1.9092 1.1453 1.9092 0 011.1453-1.9092 1.1453 1.9092 0 011.1452 1.9092zm-3.8177 0a1.1453 1.9092 0 01-1.1453 1.9092 1.1453 1.9092 0 01-1.1453-1.9092 1.1453 1.9092 0 011.1453-1.9092 1.1453 1.9092 0 011.1453 1.9092zM15.3655 2.073a1.7777 1.8407 0 00-1.775 1.7777c-2.5466.4872-4.0567 2.173-4.5407 5.0449a7.6188 6.8373 0 00-.515.2363C7.4214 8.107 6.3713 7.614 5.3837 7.6602c-.9043.0424-1.7564.537-2.5553 1.4772a1.7777 1.8407 0 00-1.0508-.3581A1.7777 1.8407 0 000 10.6199a1.7777 1.8407 0 001.7777 1.8406A1.7777 1.8407 0 003.5554 10.62a1.7777 1.8407 0 00-.2063-.8567c1.054-.4705 2.054-.1291 2.9993 1.0152a7.6188 6.8373 0 00-1.7135 4.311 7.6188 6.8373 0 007.6192 6.8377 7.6188 6.8373 0 007.618-6.8376 7.6188 6.8373 0 00-2.0675-4.676c.5393-1.5004 1.4322-2.1684 2.6768-2.0058a1.7777 1.8407 0 00-.0368.3716 1.7777 1.8407 0 001.7777 1.8406A1.7777 1.8407 0 0024 8.7793a1.7777 1.8407 0 00-1.7777-1.842 1.7777 1.8407 0 00-1.3446.6382c-.8736-.4223-1.6929-.6431-2.4514-.6395-1.2713.006-2.3817.6123-3.33 1.8146a7.6188 6.8373 0 00-2.547-.485c-.0668-1.6928.333-2.8897 1.1997-3.5897a1.7777 1.8407 0 001.6165 1.0781 1.7777 1.8407 0 001.7777-1.8405 1.7777 1.8407 0 00-1.7776-1.8406zm-3.1114 8.6044c3.615 0 6.5453 2.2229 6.5453 4.9642 0 2.7415-2.9302 4.963-6.5453 4.963-3.615 0-6.5465-2.2215-6.5465-4.963 0-2.7413 2.9315-4.9642 6.5465-4.9642z\"},\"child\":[]}]})(props);\n};\nexport function SiEllo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.377 0 0 5.377 0 12s5.377 12 12 12 12-5.377 12-12S18.623 0 12 0zm6.96 13.8c-.8 3.16-3.68 5.4-6.96 5.4s-6.16-2.24-6.96-5.4c-.08-.36.12-.76.48-.84s.76.12.84.48c.68 2.56 3 4.36 5.64 4.36 2.64 0 4.96-1.8 5.64-4.36.08-.36.48-.6.84-.48.36.08.6.48.48.84z\"},\"child\":[]}]})(props);\n};\nexport function SiElm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.986 12.806V23.2l-5.197-5.197zM6.796 6.01H17.19l-5.197 5.197zm9.275-1.12H5.677L.8.015h10.394zm7.116 7.117L17.99 6.81l-5.197 5.197 5.197 5.197zm.813-.813L12.806 0H24zM0 23.2V.813l11.194 11.194zm23.187.8H.8l11.193-11.194Z\"},\"child\":[]}]})(props);\n};\nexport function SiElsevier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.687 11.326c.256-.137.405-.303.43-.497.042-.174-.116-.157-.153-.124-.145.116-.33.294-.509.414a1.862 1.862 0 00-.248.033c-.02-.009-.046-.042-.033-.054.161-.104.34-.207.455-.344.074-.086.041-.165-.103-.182-.162-.024-.352.042-.501.174-.253.215-.373.691-.397.993-.054.05-.07.05-.125.075a1.258 1.258 0 01.133-.98c.025-.063.008-.162-.083-.191-.054-.02-.079-.009-.103.05-.124.355-.34.508-.642.732-.029.025-.302.174-.372.215-.24-.074-.51-.521-.737-.857a.207.207 0 00-.198-.086c-.497.053-.865.016-1.13-.373-.12-.161-.174-.19-.323-.05-.165.174-.33.307-.496.447-.087.054-.15.038-.186-.074A3.132 3.132 0 011.2 9.604c0-.149.017-.372.02-.517a1.274 1.274 0 00-.314-.211C.488 8.677.004 8.214 0 8.077c0-.033.025-.116.14-.182.609-.269 1.08-.041 1.263-.07.153-.013.203-.124.178-.344a1.2 1.2 0 01.389-1.075c.207-.22.19-.464.14-.733-.024-.124-.053-.157-.178-.145-.33.075-.314.083-.376.373a1.476 1.476 0 01-.207.53c-.132.21-.31.388-.468.575-.053.074-.115.074-.194.024A1.084 1.084 0 01.26 5.66c.053-.144.132-.297.219-.376l.041.017c0 .025 0 .058-.008.082l-.1.307C.29 6.05.31 6.389.55 6.695c.079.1.15.128.19.083.154-.153.311-.298.443-.464.166-.186.211-.413.166-.65a4.121 4.121 0 00-.046-.268c-.024-.128-.078-.12-.14-.042-.15.15-.22.27-.29.547A.215.215 0 01.803 6a.29.29 0 01-.033-.145c.041-.248.099-.467.256-.629.104-.112.079-.174-.02-.203-.356-.099-.663-.198-.932-.53A.298.298 0 010 4.313c0-.07.037-.124.116-.182.314-.216.629-.439.94-.505.123-.025.19-.033.252-.042-.141-.438-.29-.964-.373-1.452 0-.1.07-.372.108-.451a.56.56 0 01.277.037c.145.05.277.14.41.224.128.074.165.074.248-.042.145-.21.31-.397.53-.509.074-.037.124-.062.173-.062.07 0 .125.042.195.15.12.194.223.417.33.62.125.211.257.223.448.087.21-.14.401-.277.596-.439.182-.14.231-.14.43-.004.178.124.372.352.468.55.02.038.434-.186.446-.285.017-.178.067-.306.133-.451.087-.178.21-.228.323-.228.103 0 .298.116.442.207l.315.182c.165.091.174.091.273-.062.112-.174.207-.207.439-.207.455 0 .869.116 1.183.493.058.074.112.082.182.012.128-.132.248-.182.488-.182h.422c.096 0 .158.008.245-.116.115-.165.248-.327.434-.327.298 0 .687.418.886.778l-.104.054a2.119 2.119 0 00-.778-.488c-.182-.075-.26 0-.236.186.025.22.083.443.137.662a.8.8 0 00.439.468l.012.074c-.033-.008-.075-.02-.124-.025a.906.906 0 00-.39.013c-.247.062-.475.17-.698.264-.112.054-.112.083-.017.174.124.116.24.249.38.352.402.302.8.24 1.242.07l.207-.07c.186-.033.385.041.538.182l.447.401c.14.137.174.257.083.427-.145.285-.307.575-.468.852a.277.277 0 01-.103.108c-.054-.042-.104-.145-.05-.236.198-.248.323-.596.364-.832.041-.232-.083-.34-.302-.281l-.186.07c-.079.029-.108 0-.124-.083-.03-.07-.067-.116-.091-.19-.05-.124-.125-.166-.228-.083a1.214 1.214 0 00-.43.414 1.568 1.568 0 00-.174.964c.004.041.037.07.062.095a.178.178 0 00.083-.082c.058-.145.095-.29.12-.447.012-.087.024-.245.053-.323.021-.042.087-.025.125-.013.095.038.132.083.144.15-.186.235-.302.587-.426.901-.02.042-.1.096-.149.096-.058-.004-.136-.054-.153-.104-.074-.198-.207-.393-.26-.592-.137-.674-.178-.711-.207-.753A4.146 4.146 0 009.095 3.34c-.033-.033-.05-.07-.074-.099.037-.017.066-.05.103-.062.128-.054.26-.104.393-.149a.616.616 0 00.356-.319c.046-.087.108-.173.157-.26.07-.124.062-.19-.029-.298a.641.641 0 00-.653-.203c-.253.062-.41.244-.489.484a.733.733 0 00-.041.27c0 .136.041.165.153.094.186-.153.393-.277.592-.41a1.093 1.093 0 01-.406.497c-.124.079-.248.145-.372.215-.104.075-.14.042-.174-.082-.029-.133-.017-.27-.017-.402a.877.877 0 00-.587-.881l-.327-.137a.314.314 0 00-.124.286c.025.36.078.62.14.927.058.124.195.173.336.198.082-.041.149-.157.037-.339l-.161-.319c-.017-.041-.038-.078-.05-.124-.004-.016-.012-.045 0-.066.02.008.041.008.083.05.207.223.372.476.48.79.041.124.004.174-.116.186-.273.025-.55.042-.815.1-.435.09-.58.248-.737.537-.066.125-.1.203-.103.278.153.012.327.004.575-.042a1.647 1.647 0 00.596-.194c.116-.137.207-.273.38-.397.05-.038.166-.05.211-.025A2.276 2.276 0 019.55 4.56c.017.05.067.1.091.14.05.059.03.08-.041.075-.1-.029-.207-.054-.298-.09-.037-.017-.066-.075-.083-.117l-.09-.256c-.05-.104-.075-.104-.179-.066-.053.02-.111.04-.198.082-.075.03-.112.042-.129-.041-.024-.124-.057-.248-.086-.36-.05-.137-.104-.166-.236-.1-.249.129-.43.32-.555.567-.116.24-.161.406-.054 1.043.025.124.125.277.24.315l1.076.33c.054 0 .087.063.021.104-.132.091-.277.17-.414.257-.07.041-.107.02-.14-.042a.844.844 0 00-.443-.405c-.07-.033-.108-.02-.137.054-.05.116-.103.285-.149.405-.025.062-.054.087-.124.042-.306-.257-.629-.27-1.005-.22-.187.025-.274.075-.228.26.103.518.554.758.94.924a.26.26 0 00.132-.104c.058-.083.041-.165-.042-.24-.149-.128-.463-.277-.62-.418-.025-.082.153-.157.248-.095.281.128.496.36.72.58.116.111.17.099.207-.063.041-.124.083-.314.12-.455.02-.074.066-.05.083-.004.029.108.062.248.062.372 0 .133-.046.249-.083.373-.025.124-.12.19-.224.165-.475-.045-.835.178-1.13.187a.894.894 0 01-.276-.075c-.104-.083.05-.09.082-.09.124 0 .31 0 .41-.055a.596.596 0 00-.128-.12c-.265-.215-.563.013-.79.129-.129.07-.137.086-.083.223.082.207.231.286.434.286.116 0 .228.016.348.012a.414.414 0 00.165-.041c.153-.058.29-.133.43-.195.174-.025.17.062.092.15l-.352.214c-.037.02-.079.033-.104.058-.05.037-.111.1-.103.124a.262.262 0 00.132.116c.166.05.331.075.489.112.256.05.364-.02.434-.273.037-.14.083-.273.149-.402.041-.082.091-.09.14-.008.175.323.357.637.543.952.033.07 0 .103-.066.095a23.741 23.741 0 01-1.2-.149c-.137-.02-.27-.108-.406-.165-.207-.096-.414-.183-.65-.174-.202.004-.318.124-.248.318.091.278.195.563.306.84.079.19.265.261.468.278.095.012.062-.054.037-.1l-.33-.716c-.042-.12-.01-.136.057-.037.182.273.372.534.538.811.1.174-.025.224-.149.228-.418-.042-.799-.186-1.2-.34-.041-.016-.1-.103-.087-.14.075-.07.166 0 .248 0 .096.016.137-.025.1-.1a.38.38 0 00-.203-.186 2.47 2.47 0 00-.596-.215c-.124-.025-.207.03-.182.14.033.146.1.274.174.423.02.041.02.1.008.14-.074-.004-.165.021-.476-.111-.31-.128-.314-.215-.314-.596 0-.083 0-.244.016-.319.033-.103.042-.124.137-.107.323.066.65.153.968.306.095.041.186.124.286.161.082.03.124 0 .111-.082a.29.29 0 00-.182-.249c-.339-.144-.678-.306-1.018-.442-.082-.034-.111-.07-.066-.158.137-.223.207-.484.15-.765 0-.02.024-.05.049-.075a.207.207 0 01.153.19c.025.24.186.406.343.568.319.33.319.33.766.223.058-.008.1-.05.149-.083-.042-.033-.083-.09-.14-.116-.084-.041-.175-.066-.266-.103-.298-.112-.385-.323-.285-.637a10.759 10.759 0 00.277-.865c.033-.137.041-.281.05-.426 0-.083.062-.083.111-.091l.65-.042c.166-.012.352-.207.418-.318l.215-.352a.451.451 0 00-.443-.066c.05-.162.116-.315.116-.468 0-.1-.025-.22-.066-.323-.041-.099-.112-.115-.194-.053-.158.132-.29.29-.34.504-.05.216-.14.609-.095.679.1-.074.232-.174.319-.199a.19.19 0 01.149.025 2.12 2.12 0 01-.48.331c-.12.054-.166-.016-.145-.132.14-.538.054-.58.008-.844a3.103 3.103 0 00-.401-.927c-.058-.075-.15-.05-.273.1-.199.24-.249.442-.352.856l-.025.082-.14.125-.063-.07c.054-.191.112-.303.112-.456a.525.525 0 00-.207-.422c-.153.1-.294.223-.33.29a.41.41 0 00.007.471c.158.278.133.555.083.882l-.041-.013a3.674 3.674 0 00-.116-.629c-.033-.132-.12-.244-.19-.36-.07-.103-.133-.327-.075-.418.083-.144.344-.219.443-.351.103-.158.054-.224.186-.364.079-.096.248-.29.372-.224.373.186.77.228 1.188.174.178-.025.215-.02.265-.199.041-.149.062-.05.21-.099.253-.083.386-.31.386-.58 0-.148.008-.301-.009-.454-.012-.133-.062-.261-.103-.381-.033-.079-.087-.062-.124-.004-.104.136-.277.405-.373.554-.053.087-.099.174-.144.265-.025.07-.058.087-.12.02a1.349 1.349 0 00-.22-.19c-.136-.087-.149-.36-.095-.533.058.033.1.099.137.186.05.116.074.248.165.29.12.061.24-.187.224-.356a.27.27 0 00-.042-.125c-.132-.235-.434-.426-.62-.426-.216 0-.352.265-.265.517.025.067.05.116.083.178-.51.27-.646.439-.849.675-.025.029-.05.112-.025.153.096.182.058.244-.136.352-.087.05-.207.095-.298.124-.012.008-.037-.013-.062-.017a.124.124 0 01.025-.05c.124-.277.26-.541.376-.823.124-.302-.149-.583-.393-.678-.161-.063-.29-.025-.397.12-.27.322-.327.848.05 1.344.058.083.04.116-.054.125-.215.016-.43.04-.654.053a.869.869 0 00-.662.352c-.05.075-.116.091-.186.041-.17-.103-.315-.078-.493.025-.29.153-.629.273-.815.273-.029 0-.066-.024-.09-.05.016-.024.04-.061.103-.082.177-.041.322-.087.48-.132.029-.03.04-.1.057-.129-.028-.041-.09-.095-.136-.1a2.185 2.185 0 00-.451 0c-.393.038-.683.22-.931.452-.116.116-.124.236 0 .331.29.207.6.414.993.31.273-.087.443-.29.62-.488.15-.157.332-.343.505-.145.253.29.303.592.716.538.158-.016.224-.07.265-.22l.033-.177c.013-.116-.05-.174-.161-.128-.075.024-.14.066-.215.082-.042.013-.087-.004-.137-.016.004-.042.013-.1.042-.124.074-.05.165-.091.248-.129.31-.082.604-.144.91-.206a.265.265 0 01.095 0l-.029.086c-.111.257-.26.336-.463.385a.479.479 0 00-.112.199c-.128.414-.054.844.224 1.142.099.112.223.203.351.281.216.124.273.331.352.55.05.137.104.274.166.41a1.386 1.386 0 00-.418.447c-.042.042-.075.025-.1-.025l-.12-.293c-.107-.261-.29-.427-.579-.451-.103-.009-.207-.025-.306-.038-.12-.012-.199.042-.24.178-.162.497-.008.927.467 1.192-.38.095-.695.248-.89.513.021.075.137.174.286.236.373.153.753.137 1.105.017.207-.075.215-.025.253.124l.103.463c.025.112-.037.174-.14.137-.568-.166-1.242-.439-1.73-.766a2.566 2.566 0 00-.642-.19c-.074.041-.136.095-.202.083a3.629 3.629 0 01-.613-.216c-.1-.058-.103-.087.02-.103.191 0 .539.083.717.083.173-.054.173-.083.066-.158-.418-.33-.89-.252-1.357-.173-.166.033-.178.111-.083.244.604.683 1.05.678 1.787.592.48.306.96.579 1.52.757l.011.083a8.155 8.155 0 00-1.142.165c-.182.037-.219.149-.12.315.15.24.385.351.654.417a.848.848 0 00.58-.037c.223-.103.368-.29.579-.405.124-.067.33.008.455.041.19.062.372.145.567.174.77.103 1.589.174 2.305.116a3.697 3.697 0 00-.207.484c-.037.1-.004.124.1.116a.436.436 0 00.36-.207c.012-.116.012-.22.036-.335.013-.062.03-.15.07-.158.03-.004.208.025.187.075a7.213 7.213 0 01-.19.496c.066.013.136.025.206.025.29 0 .336-.041.323-.33a1.2 1.2 0 00-.037-.245c-.037-.215.008-.364.194-.463.183-.091.373-.062.555-.042a3.393 3.393 0 011.568.708c.228.182.03.434.03.778 0 .215-.042.438-.038.55.008.178.083.273.149.323.199.153.418.306.629.443.215.14.323.227.58.314a.556.556 0 00.181.013.662.662 0 00-.012-.265c-.124-.083-.298-.124-.497-.19-.037-.013-.074-.063-.095-.108a.372.372 0 01.145-.083l.323-.07a.19.19 0 00.082-.07c-.016-.03-.04-.067-.066-.071-.132-.041-.306-.07-.418-.1-.041-.012-.062-.049-.095-.086a.406.406 0 01.157-.083l.331-.041a.174.174 0 00.087-.054c-.012-.033-.029-.075-.053-.087-.07-.033-.41-.157-.447-.195-.03-.028-.038-.07-.05-.124a.317.317 0 01.157-.033l.277.004a.178.178 0 00.112-.053.248.248 0 00-.074-.087c-.133-.083-.182-.141-.331-.207-.07-.042-.104-.083-.116-.17a.461.461 0 01.186-.008c.1.025.153.058.26.074a.284.284 0 00.117-.012.116.116 0 00-.03-.083c-.04-.041-.095-.062-.144-.1-.075-.049-.203-.173-.277-.235-.025-.02-.013-.083-.017-.104l.083.005c.1.02.248.062.33.074.15.029.13.008.067-.1-.091-.082-.186-.136-.273-.231-.025-.033-.017-.087-.013-.132.141.008.286.074.414.074.013-.025.021-.041.021-.074a2.11 2.11 0 00-.103-.249c-.038-.095.012-.132.082-.103.1.041.257.124.364.149.042.012.096 0 .15-.02-.05-.1-.108-.179-.174-.278-.013-.025 0-.062.02-.091.17.05.344.166.497.207.07.029.116 0 .132-.033.013-.042-.111-.166-.103-.215.004-.033.012-.042.029-.062l.29.09c.21.054.33.075.364.025.04-.012-.005-.111-.067-.227.166-.013.187.066.48.124.112.029 1.664-.19 2.293-.385.248-.083.538-.207.77-.314l.074.016c.178.455.554.596.94.637.11.013.23.021.35.025.113 0 .137-.029.104-.14a1.986 1.986 0 00-.575-.977l-.248-.153c-.108-.112-.095-.24.02-.331.2-.133.464-.26.663-.385.29-.186.389-.472.372-.774a.257.257 0 00-.107-.202.323.323 0 00-.15.103c-.078.165-.157.302-.227.447-.054.029-.112.041-.161.062-.013-.05-.042-.1-.03-.149.088-.257.315-.463.464-.629.062-.103-.029-.145-.074-.137-.166.038-.348.1-.472.24a3.335 3.335 0 00-.654 1.354c-.029.128-.083.173-.124.293-.054.182-.05.224.108.336.227.148.525.285.74.438.087.095.042.133-.05.128a.857.857 0 01-.62-.277c-.083-.09-.153-.149-.248-.161-.224.058-.534.149-.766.182-.132.025-.236.078-.306.203-.046.103-.14.124-.248.082-.166-.045-.331-.103-.497-.14a1.862 1.862 0 00-.828.058c-.111.016-.136-.009-.103-.116.029-.137.074-.27.1-.402.003-.058.012-.144-.042-.173-.054.024-.132.037-.157.074-.087.128-.153.265-.236.406-.054.111-.075.111-.19.062a2.11 2.11 0 01-.468-.286c-.112-.178-.232-.327-.29-.48-.02-.041.042-.074.095-.074.125.099.273.223.385.33.075.083.1.166.15.274.012.025.132.02.152-.025.017-.041.038-.103.054-.19a.587.587 0 00-.136-.542c-.183-.187-.307-.224-.56-.398-.314-.215-.36-.202-.475.009a1.232 1.232 0 00-.153.579c.083.505.203.712.815 1.026a.17.17 0 01-.05.083c-.04.033-.062.054-.132.054-.215-.009-.517-.013-.753-.033-.066-.005-.108-.025-.124-.063a3.103 3.103 0 01.273-2.234.372.372 0 01.149-.161c.128-.067.33-.153.455-.207.075-.033.112-.009.145.066.054.199.074.34.09.509.01.103.013.207.055.227.099.042.186-.04.236-.124a1.1 1.1 0 00.099-1.005c-.013-.033.016-.1.054-.12.422-.17.815-.344 1.241-.51.24-.012.546.013.972.084.07.008.22.132.373.219-.195.1-.48.306-.679.496-.054.058-.124.133-.074.29.165-.008.248-.054.372-.09.19-.055.31-.084.464-.084a.828.828 0 01.124.017.228.228 0 01-.058.128c-.054.05-.14.042-.203.075-.062.041-.124.103-.083.178.03.05.112.107.17.099.199-.013.38-.037.588-.1.09-.074.438-.53.24-.57-.112-.025-.352-.042-.456-.096a.207.207 0 01.125-.14c.107.016.231.05.397.066a2.441 2.441 0 00.815-.037c.112-.042.149-.083.112-.153a1.283 1.283 0 00-.758-.663c-.149-.04-.33-.008-.484-.008l-1.332-.012c-.03 0-.062-.025-.091-.042.025-.02.05-.045.074-.058.124-.074.27-.136.393-.223a.87.87 0 00.365-.55.228.228 0 000-.129c-.125-.455-.373-.786-.89-.844l-.257-.041c-.095-.008-.132.033-.132.12 0 .161.008.248 0 .414 0 .082.041.111.137.124a3.186 3.186 0 01.703.203c.137.053.165.136 0 .277l-.372.265c-.067.041-.096.008-.104-.054-.008-.1-.008-.207-.025-.302a.207.207 0 00-.054-.095.273.273 0 00-.198.165c-.05.133-.083.257-.104.385a.406.406 0 01-.285.331c-.075.02-.14-.008-.128-.079.012-.082.029-.165.053-.248.12-.29.182-.538.158-.81a5.834 5.834 0 01-.042-.572.17.17 0 01.124-.182c.224-.087.435-.174.67-.248.08-.03.146.004.208.082l.471.555c.125.132.158.128.265-.02.1-.141.207-.27.364-.357.083-.041.083-.12-.012-.157-.178-.066-.356-.103-.542-.165-.042-.013-.087-.013-.133-.03-.029-.012-.066-.049-.066-.074 0-.025.037-.062.066-.074.34-.12.621-.232.923-.348.083-.037.124-.103.112-.19-.008-.112-.041-.207-.058-.315-.017-.099-.083-.174-.186-.186-.414-.041-.662.075-.944.364a.257.257 0 00-.066.228c.05.008.091.008.128-.004a1.69 1.69 0 00.443-.187c.075-.082.133-.165.174-.165.025 0 .07.103.083.14-.042.05-.083.1-.41.24a9.447 9.447 0 01-1.812.625c-.083.009-.079-.045-.058-.082.116-.203.248-.414.376-.63.124-.074.158-.04.112.075a2.223 2.223 0 01-.137.257c-.012.083.025.103.075.095a.695.695 0 00.513-.617c0-.103-.05-.14-.157-.136-.157.012-.331.025-.484.07-.29.075-.464.277-.559.542a2.934 2.934 0 00-.091.377c-.025.136-.14.186-.26.252-.203.124-.307.1-.48.133a2.855 2.855 0 00-.435.099c0-.05-.013-.095 0-.124.1-.157.186-.31.29-.455.144-.211.107-.331-.125-.414a.86.86 0 00-.993.347c-.124.199-.215.435-.302.65-.054.128 0 .207.137.236.21.037.463-.041.654-.095-.013.062-.017.302-.038.351l-.124.27c-.078.132-.165.177-.31.107a6.538 6.538 0 01-.65-.352c-.248-.145-.488-.248-.765-.248a.372.372 0 01-.083-.008c-.091-.02-.095-.05-.042-.108.07-.07.075-.14.034-.227l-.286-.53a1.448 1.448 0 01-.136-.31c.07-.013.33.074.33.124.021.29.108.496.261.678.116.116.224.042.236-.074.02-.153-.186-.402.083-.973.116-.256.472-.695.703-.695.124 0 .228.054.302.236.042.083.07.282.108.364.033.083.074.124.165.116.224-.029.534-.165.787-.198.161-.025.285.376.364.52.124.216.182.402.323.17.24-.33.351-.703.608-.819a1.792 1.792 0 011.043-.178c.111.013.144.054.12.166-.021.066-.025.136-.042.207-.025.078.046.107.133.041.12-.07.207-.165.29-.273.214-.232.43-.348.852-.348.198 0 .351.042.53.104.136.05.157.07.12.207l-.12.397c-.042.182-.013.207.148.298.141.083.253.14.34.248a.29.29 0 00.178-.062 2.14 2.14 0 01.765-.865c.133-.074.166-.066.22.062.111.282.173.526.194.79.149-.173.323-.36.447-.496.447-.422.89-.418 1.49-.269.148.042.033.19-.054.306l-.116.174c-.037.062-.066.066-.116.013-.075-.087-.149-.24-.224-.315-.136-.136-.376-.058-.542.042a2.222 2.222 0 00-.802.823 4.345 4.345 0 01-.704.832c-.107.041-.107.037-.083-.075a2.959 2.959 0 00.489-1.535.368.368 0 00-.286.062c-.414.232-.62 1.055-.678 1.606-.013.115-.013.207-.116.264-.174.1-.24.141-.414.22-.041.008-.066 0-.104-.004.083-.365.025-.621-.186-.965-.037-.066-.083-.099-.161-.074-.041.025-.083.058-.178.132a1.56 1.56 0 00-.488 1.196c0 .083.082.083.14.042a.624.624 0 00.158-.19c.103-.174.19-.357.29-.53.016-.042.065-.07.103-.083.02.041.02.087.012.124l-.074.331a1.034 1.034 0 01-.331.455c-.03.042-.05.116.033.124.356.017.562-.024.869-.186.322-.165.538-.302.678-.285.095.012.58.153.621.186-.025.05-.062.066-.091.1-.05.04-.286.169-.389.256-.166.136-.223.198-.19.476.016.124.037.24.066.36.012.037.041.09.066.099.041 0 .083-.033.108-.062.136-.166.264-.348.401-.513a.314.314 0 01.083-.05c0 .033.008.062 0 .083-.03.203-.133.356-.257.505l-.083.103c-.107.153-.115.178-.008.331a.73.73 0 01.104.58c-.03.144-.075.36-.104.57-.26.12-.525.29-.745.44-.14.123-.165.223-.165.252.066.082.128.095.256.148.182.058.522-.012.584-.206a.577.577 0 00.041-.211c.066.012.124.012.14.066.067.207.125.347.257.484a.682.682 0 01-.099.182c-.078.128-.145.24-.256.215-.042-.004-.087-.016-.137-.016-.083 0-.165 0-.153.149.016.19.041.277 0 .471-.025.108-.058.224-.166.22-.26-.021-.43-.211-.682-.207a.981.981 0 01-.476-.083c-.133-.07-.228-.145-.29-.182a69.39 69.39 0 00-3.1.58c-.094.02-.09.082-.107.181-.05.228-.136.451-.174.679-.008.037.042.083.067.116.024-.025.062-.042.087-.075.053-.078.09-.17.153-.248.107-.116.389.008.438.165.042.096-.09.141-.082.249.008.09.14.174.14.29 0 .103-.041.17-.058.223.39.248.484.455.497.778.012.1.012.149.066.207.054.053.14.132.178.182.182.21.348.546.472.58.062.02.219.032.339.02l.025.066a.492.492 0 01-.248.244c-.286.091-.427-.335-.58-.58a2.069 2.069 0 00-.24-.318c-.124.137-.33.687-.314.948.083.351.29.7.426.951.095.158.281.212.463.282.154.054.265.083.422.037.083-.02.112-.025.15-.054l-.005-.318c.042-.58.133-1.159.17-1.655 0-.133.1-.356.269-.472a.539.539 0 00.24-.5.393.393 0 01.041-.208c.058-.116-.053-.116-.165-.132-.124-.02-.153-.066-.091-.178.116-.195.281-.36.414-.546.082-.133.124-.228.153-.307-.033-.16-.021-.4.14-.41.526-.061.745-.016 1.08.237.021.033.025.082.025.124 0 .041.095.074.273.252.137.128.27.488.038 1.043.115.07.111.178.099.302-.008.108.025.124.124.161.124.042.19.116.294.373.09.248.36.898.517 2.49-.029.502-.116.87-.215 1.28.107.765.227 1.704.323 2.991.078 1.217.099 1.842.124 2.342.215.017.281.062.327-.12l.041-.17c.041-.12.161-.078.166-.012l.132.39c.029.11.062.181.103.289.145.198.207.025.207-.12.017-.124.017-.228.017-.34.025-.144.1-.153.153-.053l.19.45c.07.158.145.2.174.104.025-.128.03-.356.025-.538-.029-.103-.075-.215-.091-.306 0-.124.1-.1.124-.062a14.441 14.441 0 01.675.881c.124.075.198-.053.165-.103-.008-.05-.07-.112-.07-.211.016-.157.165-.087.198-.03.137.137.228.315.307.46a.29.29 0 00.124.062.238.238 0 00.037-.145c-.008-.05-.066-.165-.083-.219.058-.095.174.025.211.062.042.042.083.112.137.199.074.116.198.215.471.252.005.025.017.058.017.083-.037.025-.1.054-.265.083a3.38 3.38 0 01-1.034.02 1.2 1.2 0 00-.762.166c-.165.095-.33.083-.525.074-.373-.016-.745-.016-1.126-.024-.786-.021-1.179.136-2.069.182-.29 0-.893-.15-.893-.335 0-.129.074-.236.074-.303 0-.082-.017-.103-.091-.124-.633-.111-1.258.033-1.833.141-.488.075-.745-.004-1.002-.207a1.295 1.295 0 01-.355-.376 5.057 5.057 0 00-.99-.94c-.413-.33-.939-.93-1.266-1.345-.074-.086-.202-.509-.248-.629a1.266 1.266 0 01-.058-.546c.05-.041.112-.09.157-.095.278-.008.621-.14.634-.223.029-.062-.017-.116-.07-.1a1.61 1.61 0 01-.489 0c-.083-.012-.182-.05-.22-.09.05-.063.083-.108.137-.137a1.452 1.452 0 00.646-.249.157.157 0 00-.017-.082c-.182-.009-.323-.009-.525-.058a.468.468 0 01-.199-.116.322.322 0 01.149-.124c.232-.075.401-.186.559-.331l-.004-.091a3.157 3.157 0 01-.63-.066c-.095-.05-.103-.058.005-.174.149-.038.422-.062.57-.112.112-.058.092-.153-.02-.186a3.393 3.393 0 01-.538-.058c-.112-.1-.124-.108.02-.174l.477-.1c.182-.061.153-.177 0-.223-.145-.016-.245-.05-.39-.074-.19-.095-.186-.104-.032-.166l.302-.082c.082-.021.165-.054.182-.116a.091.091 0 00-.009-.062c-.128-.038-.389-.013-.504-.05-.042-.008-.083-.054-.108-.108l.112-.062a1.72 1.72 0 00.41-.157.36.36 0 00.045-.103.269.269 0 00-.083-.042 3.53 3.53 0 01-.385-.132c-.082-.104-.078-.124.033-.17l.216-.058a1.378 1.378 0 00-.108-.215.215.215 0 00-.074-.074c-.125-.075-.303-.15-.435-.236-.248-.153-.509-.302-.703-.497a1.614 1.614 0 01-.522-.852 1.784 1.784 0 01-.004-.63c.025-.156.112-.322.195-.47.033-.055.057-.104.024-.15a3.26 3.26 0 00-.384-.414.654.654 0 00-.245-.124c-.492-.087-.794-.186-1.018-.157a.786.786 0 00-.19.285c.042.166.124.423.128.634.182.02.398.082.621.206.178.116.22.178.29.398.153.496.194 1.13.302 1.808.095.645-.244 1.18-.898 1.204-.356.017-.646-.054-.74-.294-.117-.339-.204-.625-.315-.964a7.437 7.437 0 00-1.449.513c-.434.207-.79.406-1.25.592-.872.36-1.836.58-2.701.58-.455 0-.964-.092-1.316-.232-.315-.125-.426-.253-.497-.65a3.77 3.77 0 01-.016-1.018c.041-.331.095-.563.323-1.183.099-.274.227-.402.438-.51a2.317 2.317 0 011.142-.227c.137.008.315.029.439.083.248.09.285.29.294.538 0 .145.008.29-.005.434-.012.116-.008.162-.008.207.315.046.973.029 1.283-.041.256-.054.36-.095.828-.315.322-.145.76-.472 1.27-.736zm9.906 5.532c.03.062.1.372.1.48 0 .252-.021.484-.05.877-.042.513.012 1.035-.058 1.54-.03.248-.091.633-.07.972.004.136.024.174.103.19.248.058.414.083.538.083.38 0 .629-.174.596-.385a5.172 5.172 0 01-.178-1.423l.1-.009c.14.58.26.865.301 1.167.05.273 0 .741.054.981.637.07 1.399.008 1.63-.041.058-.522.042-1.056-.186-1.254a6.44 6.44 0 00-.505-.385 2.851 2.851 0 01-.678-.753c-.273-.43-.348-.567-.588-.985-.223-.389-.372-.724-.525-.952a1.684 1.684 0 00-.22-.29 2.926 2.926 0 00-.58-.107c-.268-.029-.446-.058-.6-.227-.131-.133-.185-.24-.107-.418.042-.096-.012-.162-.082-.24-.08-.1-.058-.207.04-.282.237-.231.456-.347.766-.43l-.05-.215c-.123.016-.26.054-.508.054-.344 0-.654-.141-.778-.592-.046-.162-.248-.617-.306-.82-.042-.124.004-.277.062-.455-.108-.132-.199-.281-.29-.405-.186-.079-.41-.157-.559-.34-.062-.074-.09-.078-.144-.04-.05.036-.062.09-.133.152-.066.058-.203.062-.33.008-.125-.05-.187-.177-.183-.302.013-.165.095-.31.02-.376-.127-.137-.247-.29-.094-.397.041-.038.136-.03.194-.058a.414.414 0 00.199-.464c-.033-.136-.108-.198-.244-.21-.195-.013-.282-.113-.282-.24 0-.166.145-.237.278-.208a.421.421 0 01.173.083c.013.062.042.149.091.14.224-.024.398-.256.398-.475 0-.075-.05-.112-.195-.079-.265.042-.596.141-.923.253-.182.062-.207.207-.107.372.033.037.058.083.082.124.042.066.025.116-.04.153l-.084.062c-.099.075-.111.158-.05.27.017.04.042.07.075.099.075.066.075.124.004.207a.314.314 0 00-.066.335c.029.095.104.633.104.736-.005.278.05.555.033.815-.013.19.082.356.264.563.2.22.344.418.613.679.318.302.492.662.521 1.105.013.207.112.281.31.389.419.116.563.351.613.67.083.567-.194 1.117-.703 1.068-.261-.025-.39-.182-.39-.319 0-.145.075-.29.195-.331.02-.008.095 0 .112 0a.248.248 0 01.012.091c0 .037-.05.058-.066.132-.012.05-.012.15.037.211.054.07.15.096.249.062.115-.037.194-.136.248-.24.236-.426.116-.93-.335-1.042-.145-.042-.352-.062-.485.016-.28.174-.52.273-.757.489a.182.182 0 00-.058.136 23.143 23.143 0 00.199 2.814c0 .203.149.455.207.488.165-.12.207-.24.352-.467.07-.042.103-.017.124.045-.004.211-.046.414-.021.596.012.054.074.103.116.14.1-.09.103-.227.145-.33.111-.116.136.012.14.045-.008.137 0 .26.013.331.004.054.054.066.1.079.12-.24.272-.455.467-.588.116-.083.19-.012.124.104a2.934 2.934 0 00-.265.699.414.414 0 00.116-.012c.025-.009.062-.017.074-.083.083-.207.129-.232.224-.083.041.14.103.24.186.281.124-.033.132-.182.182-.29.132.01.14.154.207.224.045.037.422.05.492.042l-.012-.22c-.008-.438 0-.79.029-1.225.033-.455.083-.922.108-1.324.016-.33.058-.836.082-1.229zM22.792 8.4a7.541 7.541 0 00-.625-.041c-.091 0-.34 0-.348.128 0 .037.05.103.108.14.302.207 1.146.245 1.49.187a.574.574 0 00-.03-.253c-.082-.252-.393-.475-.678-.567a2.338 2.338 0 00-.919-.033l-.058-.153c.1-.447.087-.86.025-1.187a.962.962 0 00-.182-.414c-.058-.083-.124-.079-.198-.017-.05.042-.1.096-.187.207-.285.348-.273.58-.223 1.1.033.026.07.05.165.05.091 0 .133-.04.145-.165.009-.174.05-.356.075-.517.041.012.116.062.124.09.016.27-.07.551-.137.804.017.029.215.115.186.198-.024.062-.33.14-.546.157a1.092 1.092 0 00-.509-.417c-.124-.05-.26-.091-.157-.174l.166-.066c.29-.12.194-.286.182-.567-.013-.108-.054-.137-.153-.133a.795.795 0 00-.36.083c-.216.132-.381.352-.538.53-.03.029-.091.016-.141.016.083-.26.19-.546.273-.778.029-.082.066-.165.157-.145.447.104.902.017 1.217-.297.132-.141.132-.207-.037-.327a1.051 1.051 0 00-.952-.207c-.137.054-.228.132-.248.273-.013.083.401-.033.546-.02.041.003.07.04.1.061-.266.116-.572.174-.828.248-.083.021-.116 0-.129-.082a.36.36 0 01.129-.364c.194-.166.347-.36.389-.621.024-.14-.092-.352-.154-.472-.008-.033.009-.058.013-.083a1.8 1.8 0 01.525.249 1.171 1.171 0 00.815.902c.145.05.294.103.452.149.14.041.248.004.24-.15l-.009-.206c.124-.054.265-.095.298-.091.236.033.476.149.72.227.166.083.083.141-.033.125-.182-.03-.36-.083-.534-.125-.111-.024-.202.025-.219.133.074.132.414.29.538.34.182.065.869.144.86-.042a2.425 2.425 0 00-.082-.546c-.042-.154-.174-.24-.319-.278a3.724 3.724 0 00-.918-.107.84.84 0 00-.331.107l-.038-.202c-.066-.278-.198-.344-.405-.414.012-.083.012-.137.012-.224.182-.103.406-.277.493-.422-.075-.07-.207-.107-.278-.132-.281-.1-.31-.207-.5-.29a1.241 1.241 0 00-.447-.112c-.14-.004-.331.034-.373.087-.02.038 0 .096.083.153.124.096.385.166.513.257.083.046.042.066-.012.074a1.279 1.279 0 01-.505-.144c-.095-.05-.124-.091-.194-.116-.125-.042-.145-.008-.228.136-.062.104.012.158.1.207.297.166.517.26.893.302.041.042.05.112.062.195-.372-.05-.496-.054-.728-.137-.368-.198-.662-.356-1.018-.471-.066-.03-.091-.07-.017-.116.373-.224.729-.497 1.105-.704.054-.029.14-.016.207-.004.182.033.244.091.426.145.108.041.211.07.232-.03.054-.272.14-.475.22-.59.165-.253.4-.386.711-.58.116-.393.497-.795.633-.795.373 0 .745.675.82.927.05.182-.249.34-.05.34.174 0 .335.029.335.178 0 .26-.074.525-.207.715-.14.19-.29.398-.48.526l.012.066c.323.24.675.414.675.778 0 .195-.054.331-.166.426-.086.075-.157.15-.148.261.012.252.028.393.012.641-.012.166-.517.199-.588.273a2.069 2.069 0 01-.14 1.258l.103.19c.513.36.58.688.654.969-.14.137-.373.252-.455.252-.331 0-1.064-.248-1.209-.269-.058.104-.024.2.05.406.066.186.19.314.19.488 0 .083-.012.215-.248.253a1.663 1.663 0 01-1.105-.302c-.066-.038-.124-.083-.19-.112-.112-.062-.252-.017-.29.112l-.074.248c-.042.136-.112.149-.298.112-.526-.112-.77-.679-.77-1.18.025-.103.108-.062.124-.012.033.244.141.48.22.678.099.19.223.294.43.32.041 0 .1-.08.149-.166.112-.236.215-.394.182-.67a.672.672 0 00-.112-.32c-.033-.04-.087-.07-.149-.124.03-.045.075-.095.112-.082.232.082.406.082.55.004.091-.05.133-.112.195-.19a8.19 8.19 0 01.799-.162c.372 0 .703.05.98.174zM8.628 17.479c.198 0 .438.099.434.314l-.041.108a.112.112 0 01-.05-.013c-.074-.161-.194-.252-.389-.215a.835.835 0 00-.455.257c-.079.082.083.132.182.186l.207.124c0 .108-.282.894-.14.919.355.062.827-.427.876-1.118-.012-.248.129-.372.402-.463.323-.124.476-.269.422-.62-.025-.175.074-.125.17-.27l.107-.116c.017.05.054.166.041.216-.074.285-.016.509.125.765l.264.687c.063.066.12.012.183.083.227.46.484 1.146.831 1.44.286.236.588.65.857.898.157.14.265.492.463.558.14.05.137.124.116.253-.025.157.041.186.1.186.095-.012.186-.037.285-.041.215.045.165.19.008.215-.107.012-.21-.009-.318-.009a.613.613 0 00-.112.042.226.226 0 00.058.107c.174.096.298.108.467.145.033 0 .058.025.096.037-.013.03-.05.096-.083.112a.729.729 0 01-.19 0c-.154-.033-.294-.1-.44-.165-.049-.017-.082-.07-.127-.104-.038-.016-.083-.025-.125-.037 0 .05-.016.095-.012.137.033.066.103.182.074.206-.012.021-.111.083-.14.067-.124-.058-.224-.199-.34-.265-.148-.095-.285-.095-.426.004-.145.1-.273.186-.41.265-.169.111-.351.29-.554.29-.112 0-.389-.17-.513-.208-.232-.074-.306-.082-.554-.136-.207-.05-.39.029-.6.1-.257.078-.538.111-.816.16-.157.03-.339 0-.504-.008-.249-.008-.489-.029-.733-.025-.165 0-.34.03-.496.083a.855.855 0 01-.22.033.558.558 0 01-.322-.099.472.472 0 00-.352-.066c-.116.025-.344.066-.439-.02-.116-.117-.393-.348-.55-.32-.493.083-.728.365-1.208.236-.34-.086-.563-.165-.894-.057-.083.033-.298-.017-.385-.005-.124.017-.166-.008-.15-.132l.013-.066c.021-.128-.103-.224-.227-.178-.137.041-.215.182-.344.248-.236.116-.455.083-.711-.016-.174-.075-.352-.042-.518.041-.107.058-.281.31-.397.31-.041 0-.103-.066-.124-.124v-.12a.828.828 0 01.273-.252 1.552 1.552 0 01.944-.124c.149.024.31.041.45-.017.112-.05.228-.058.332-.112.186-.099.347-.186.558-.111.153-.07.236-.12.315-.236.037-.186-.03-.38.016-.563.042-.166.112-.372.166-.53.033-.082.09-.074.145-.066.149.22.33.426.24.63-.062.14.26.24.207.38-.054.107-.03.174.078.186l.083.008c.095 0 .1-.062.095-.182.004-.678-.215-1.15-.447-1.684-.095-.207-.078-.414-.004-.62l.14-.423a.794.794 0 01.427-.447c.025-.004.095.025.112.058.302.427.413.944.264 1.457a5.45 5.45 0 00-.103.48c-.008.041.004.083.012.124.03-.025.067-.05.091-.083.15-.223.303-.442.423-.682.115-.232.306-.327.546-.373.26-.054.335-.02.269.232a5.27 5.27 0 01-.137.43.857.857 0 01-.438.534c-.15.083-.286.194-.414.29-.05.066-.062.062-.009.128.05.062.125.025.187-.013.244-.177.496-.318.744-.455.092-.041.12-.008.112.1-.012.124-.029.293-.153.339-.136.045-.319.066-.439.124A.828.828 0 004.88 21c-.083.124-.083.207-.15.34-.012.028 0 .078.005.123.041-.016.083-.016.111-.033.162-.116.249-.248.41-.372.124-.095.153-.083.203.07.016.05.054.091.103.137.05-.033.104-.062.141-.112.145-.215.236-.645.426-.93.033 0 .075.024.1.036.04.095-.013.422-.005.493.005.198.067.24.249.149.14-.07.269-.145.405-.22.15-.074.27-.016.182.1-.045.07-.116.124-.157.198-.025.042-.02.112-.025.166.042 0 .1.008.14-.013.113-.029.216-.078.324-.124.144-.066.293-.045.455 0 .153.054.31.091.455.133.12.029.252-.025.36-.075a3.84 3.84 0 01.654-.252 2.11 2.11 0 00.815-.468c.054-.058.137-.087.199-.145.05-.041.09-.235.095-.298.041-.165-.025-.554.008-.728.02-.041.054-.132.083-.178l.07.02c.02.063.05.158.05.208-.013.298-.017.96-.05 1.25 0 .066-.116.173-.182.198-.521.19-1.047.39-1.572.538-.236.066-.497.029-.745.033-.199 0-.393-.029-.588-.016-.153.012-.372.153-.53.178-.43.066-.802.037-1.228.115-.393.075-.77.182-1.147.286a.697.697 0 00-.235.116c-.03.025-.038.07-.05.1.041.02.083.049.124.04.095-.008.174.021.273.009.232-.037.464-.062.704-.083a.32.32 0 01.161.066.444.444 0 00.364.075c.14-.033.265.004.39.095.214.174.268.182.516.041.19-.103.402-.103.613-.09.471.024.91.094 1.336.173a.91.91 0 00.878-.34 5.94 5.94 0 00.33-.45c.08-.104.166-.174.29-.174.265-.004.538-.066.799-.05.149.013.22.15.22.236-.01.087-.042.14-.146.137a9.13 9.13 0 01-.596-.05c-.206-.017-.372.041-.496.199-.066.074-.05.124.05.149.041.004.095.024.14.029.108.012.158.062.186.16.021.063.15.125.365.137.277.017.422.017.662-.062.099-.033.165-.149.236-.235.157-.228.264-.286.546-.228.198.037.33-.174.509-.161.327.04-.042-.617-.249-.832-.285-.211-.513-.63-.76-.94-.183-.227-.402-.314-.56-.591-.302-.5-.55-1.113-.885-1.515-.132-.136-.418-.041-.559.033a.393.393 0 00-.165.116c.405.344.422.82.281 1.171-.041.112-.083.108-.198.062a4.264 4.264 0 01-.32-.128c-.07-.037-.131-.02-.206.025-.306.186-.683.439-.745.376-.124-.124-.323-.496-.31-.686a.764.764 0 01.12-.377 3.103 3.103 0 01-.397-.257l-.005-.136c.257-.248.605-.488.874-.488zm-7.747-3.6c.033.244.137.442.373.533.34.141.786.224 1.167.228.45.012.943-.025 1.473-.124a9.6 9.6 0 002.383-.832 6.596 6.596 0 011.449-.55 3.277 3.277 0 011.6-.042c.237.054.286.054.253-.115-.016-.112-.05-.224-.066-.34-.058-.397-.041-.77-.19-1.109a.46.46 0 00-.22-.202 1.308 1.308 0 00-.38-.116 2.69 2.69 0 00-.803 0 4.03 4.03 0 00-1.208.372c-.414.203-.828.43-1.138.617a3.269 3.269 0 01-1.68.484c-.393 0-.654-.013-1.047-.054a3.74 3.74 0 01-1.544-.426c-.107-.054-.165-.037-.206.074a3.463 3.463 0 00-.207 1.597zm18.41 4.344c-.137.021-.422.058-.588.067a.786.786 0 01-.16-.021c.024-.05.04-.066.07-.079.202-.103.417-.198.566-.314.083-.062.066-.124.042-.178-.278.124-.538.178-.832.228-.02 0-.033-.021-.041-.034.227-.17.53-.306.695-.455.111-.09.029-.116-.009-.153-.24.083-.48.162-.732.232a.29.29 0 01-.116-.013c0-.05.05-.07.091-.095a3.86 3.86 0 00.704-.463l-.013-.062-.083-.009c-.194.034-.624.096-.86.12-.116 0-.095-.066-.075-.082.187-.083.331-.182.468-.327.05-.054.041-.104.025-.128-.224.103-.48.107-.63.124-.028-.038.01-.083.026-.1.182-.07.219-.128.314-.19.062-.041.195-.132.224-.182.012-.017.008-.066-.005-.083a2.897 2.897 0 01-.55.133.277.277 0 01-.1-.017c.017-.041.026-.074.05-.087.257-.132.394-.186.576-.298a.446.446 0 00.124-.161l-.017-.025c-.207.066-.418.137-.633.194-.041-.008-.062-.033-.1-.062a.252.252 0 01.075-.074 3.38 3.38 0 001.171-.675.922.922 0 00.224-.252l-.03-.05c-.413.29-.814.542-1.29.729-.095-.009-.075-.067-.042-.091.042-.042.166-.182.265-.315a3.737 3.737 0 001.084-.625c.025-.025.038-.095.021-.14-.211.095-.534.277-.815.38l-.054-.016a.564.564 0 01.066-.145c.19-.124.464-.319.679-.555.008-.029.02-.066 0-.099a3.77 3.77 0 01-.559.228c-.062-.042.013-.15.02-.174.262-.215.386-.356.514-.538.025-.041.025-.079 0-.145-.145.104-.352.166-.513.228l-.046-.013c-.008-.053 0-.041.017-.082.19-.174.352-.31.468-.51.012-.02.008-.074-.013-.111-.157.054-.277.1-.447.14a.132.132 0 01-.058-.012c.009-.054 0-.066.021-.107.116-.1.232-.236.34-.398.028-.041.024-.082.003-.111-.082.02-.231.041-.306.05-.033.008-.074-.03-.095-.067l.29-.207a.248.248 0 00.05-.078c-.038-.017-.067-.038-.092-.03-.124.017-.24.03-.364.054-.273.058-.273.096-.298.174a6.054 6.054 0 01-.302.902c-.037.083-.083.162-.165.195-.116.058-.091.12-.124.231-.05.224-.083.207-.174.427a1.2 1.2 0 01-.257.413h-.062l-.02-.31c-.025-.207-.067-.161-.1-.372-.02-.186.025-.385.05-.546.02-.187.041-.51.041-.692-.016-.012-.033-.04-.058-.057a.174.174 0 00-.058.082c-.037.141-.103.364-.124.51-.045.339.025.665 0 1.009a3.848 3.848 0 00-.041 1.068c.112-.013.103-.025.26-.087.207-.083.356-.112.567-.298.15-.129.125-.381.178-.588.07-.248.166-.34.265-.38.03-.009.058.004.087.012-.058.14-.091.215-.145.364-.05.128-.1.34.042.364l.103.017c.008.024.008.062-.012.082-.133.129-.24.282-.849.456-.07.02-.223.206-.231.277-.013.095-.013.207.008.364.062.608.364 1.18.703 1.742.286.48.497.844.807 1.159.145.132.298.231.538.12.128-.062.29-.162.331-.199.02-.025.025-.066.02-.103zm-8.276-8.755c.017.24-.029.302-.335.223-.323-.1-.472-.066-.679-.302-.124-.145-.281-.145-.413-.008-.062.074-.108.149-.207.165-.017-.033-.038-.078-.025-.116a.46.46 0 01.252-.314c.095-.05.211-.083.31-.112.286-.112.427-.281.427-.616 0-.19.058-.381.058-.58 0-.14-.05-.186-.186-.14-.236.09-.456.182-.691.281a.283.283 0 00-.166.157c-.066.124-.108.248-.166.373-.053.07-.099.037-.115.008a7.545 7.545 0 00-.365-.517c-.103-.124-.103-.166.013-.253l.385-.335c.19-.178.265-.414.285-.679v-.36c-.008-.157.025-.202.182-.182a.868.868 0 01.315.091c.174.075.347.174.521.265.091.058.157.137.166.253.004.136-.083.223-.207.173a3.807 3.807 0 00-.584-.202c-.099-.025-.198.029-.215.124-.041.227.153.24.137.302-.05.161-.31.207-.348.356-.029.136-.029.223.091.198.327-.066.646-.269.898-.372.215-.091.327-.058.356.182.116.703.223 1.308.302 1.937zm5.09-2.235c.062.017.14.054.19.1.12.277.377.587.7.753a.796.796 0 00.29.082c.028-.124.082-.33.082-.558a.739.739 0 00-.22-.538 2.152 2.152 0 00-.496-.373.211.211 0 00-.244.021c-.004.041-.004.103.02.14.08.137.27.261.352.39.03.132.021.124-.087.082a2.09 2.09 0 01-.591-.517c-.095-.107-.158-.107-.224.008a2.003 2.003 0 00-.298.89.91.91 0 00.497.952c.153.066.265.05.34-.095.078-.145.132-.27.181-.43.025-.083.025-.117-.037-.191a2.735 2.735 0 00-.248-.277.36.36 0 00-.124-.1.166.166 0 00-.034.104c.005.128.025.26.03.389 0 .033-.005.083-.025.112a.252.252 0 01-.141-.166c-.083-.306-.07-.575.087-.778zm-14.3-4.506l.24.285c.098.187.152.356.202.505.041.15.103.15.199.083a.337.337 0 00.14-.29.964.964 0 00-.054-.26c-.082-.323-.024-.596.257-.799.095-.066.165-.174.128-.29-.041-.161-.078-.314-.14-.463-.025-.066-.116-.083-.178-.05-.315.166-.687.642-.402 1.039.013.025-.004.1-.025.14-.26-.26-.773-.79-.926-.777-.042.074-.075.227-.042.538.037.302.116.612.344 1.034a.765.765 0 00.194.22c.054.049.166.103.248.103a.457.457 0 00.017-.248 9.55 9.55 0 00-.248-.758zM22.7 3.919c.219-.042.397-.104.48-.137.356-.136.591-.364.67-.753.025-.103-.037-.161-.149-.19l-.232-.062c-.227-.067-.273.029-.36.248-.066.165-.136.356-.314.496-.054.046-.24-.09-.29-.124.348-.207.575-.538.745-.935.041-.074 0-.149-.079-.174a.844.844 0 00-.355-.037 1.783 1.783 0 00-1.283.956c-.017.041 0 .136.029.149.05.02.174.008.227-.013.033-.004.05-.05.07-.082.146-.257.39-.414.671-.538.083-.042.112-.013.066.083-.054.07-.558.426-.57.475-.067.145.032.166.115.166l.153-.041a.677.677 0 00.402.513zm-7.655-.042c-.009.124-.054.195-.166.153-.232-.099-.372-.351-.633-.438-.095-.033-.153.054-.166.14-.041.265-.082.501-.082.6 0 .365.194.563.389.758.057.05.057.082-.005.111l-.798.447c-.075.05-.166.062-.248 0-.08-.07-.104-.157-.08-.244.096-.401.162-.815.266-1.208.165-.62.434-.832.885-.89.162-.025.282-.025.406-.025.132 0 .19.025.207.145.016.083.02.174.02.451zm.604 2.744c0-.302-.244-.39-.348-.646-.1-.252-.19-.252-.393-.07-.232.22-.372.41-.455.724a1.738 1.738 0 00.008.869c.02.087.07.186.166.157a.166.166 0 00.12-.165c0-.257.024-.505.153-.67a.38.38 0 01.116-.112c.04.062.024.136.024.149-.037.19-.066.384-.107.575-.025.128-.025.198.041.314.075.116.137.128.186.05.236-.377.489-.919.489-1.175zM2.73 7.457a2.317 2.317 0 00-.165-.745c-.1-.236-.249-.373-.348-.373-.091 0-.302.249-.372.451-.183.51-.083.923.21 1.411.042.062.125.178.236.062.091-.103.162-.177.249-.29a.805.805 0 00.19-.516zm11.148 7.986c-.054-.426-.373-.84-.91-1.2-.112-.046-.125.029-.125.124.054.592.124 1.187.199 1.713.02.116.074.149.182.091.161-.074.314-.153.467-.24.141-.083.228-.161.187-.488zm4.87-4.842c-.083-.207-.223-.293-.43-.31-.207-.025-.381-.054-.6-.087-.125.017-.207.116-.278.282.004.033.017.074.042.082.07.025.198.05.215.062a.41.41 0 01.124.17c-.016.058-.091.12-.186.137-.124.024-.124.124-.104.252a.728.728 0 00.162.36c.083-.05.124-.07.186-.137a.281.281 0 00.083-.24c-.017-.269.132-.463.318-.641l.042.025c-.03.153-.112.265-.129.418-.04.314-.144.58-.455.79.095.124.331.033.406-.041a.947.947 0 00.281-.439l.05-.157a.124.124 0 01.041.012c.062.116-.025.352.017.522a.389.389 0 00.153-.124c.116-.274.174-.68.062-.931zm3.898-6.372c-.054 0-.27.004-.331.017-.05.012-.075.128-.05.148.062.042.1.075.15.092.194.02.28.02.504.057a.171.171 0 01.112.063c-.021.016-.042.045-.083.053-.414.05-.538.042-.828-.153-.078-.033-.107.025-.082.1.041.14.157.256.372.343.17.074.335.165.509.161.265-.008.455-.024.674-.062.116-.016.232-.082.249-.14.02-.058 0-.187-.066-.27l-.158-.157c-.248-.26-.41-.426-.778-.389-.05.005-.124.137-.194.137zm.256 2.756c0-.153-.02-.265-.062-.402a.703.703 0 00-.612-.504c-.153-.005-.228.024-.166.165.017.05.154.195.207.31.07.141.137.286.137.41a.414.414 0 01-.037.166c-.091-.05-.141-.162-.162-.216-.041-.132-.05-.21-.09-.285-.038-.066-.084-.083-.104-.083-.058 0-.083.02-.087.1a1.188 1.188 0 00.65 1.187c.115.041.144.013.182-.09a2.483 2.483 0 00.144-.754zM2.483 5.388c-.058.219-.07.364-.062.488.004.157.082.29.227.356a2.772 2.772 0 001.378.215c.017 0 .062-.03.062-.041-.012-.096-.062-.112-.149-.137-.194-.066-.716-.207-.786-.29-.054-.074-.029-.153.058-.165a.442.442 0 01.228.037c.128.062.24.145.372.22.041.024.091.07.14 0 .038-.063.075-.117-.008-.179l-.306-.24c-.265-.21-.662-.31-1.158-.264zm9.463 3.426c-.02.045-.062.09-.107.145-.05-.05-.1-.083-.125-.137a9.943 9.943 0 01-.496-1.655c-.008-.108.033-.145.124-.14.236.024.443.132.65.24.033.024.058.094.062.144.041.468-.017.993-.108 1.399zm-10.192.952l-.033-.017c.021-.281.166-.683.112-.786a.58.58 0 00-.285.029c-.1.041-.141.14-.162.306-.025.368.033.745.112 1.076.025.124.074.136.165.05.236-.216.46-.489.638-.7.124-.161.145-.314.095-.467-.042-.129-.128-.178-.224-.178-.103 0-.14.078-.165.157-.058.203-.153.347-.253.525zm19.11-.849c.186 0 .339.037.388.054.224.083.323.182.365.26a.259.259 0 01.04.15.401.401 0 01-.367-.075c-.199-.186-.489-.265-.662-.186.012.128.136.29.24.372.347.27.653.315 1.026.228.062-.025.087-.112.083-.186-.013-.24.004-.497-.224-.704-.248-.236-.604-.227-.848-.124-.042.02-.104.05-.133.083a.212.212 0 00.091.124zM12.256 2.36c.074-.017.04.016.02.082-.041.211-.165.377-.314.526-.083.074-.1.19-.042.248.108.1.232.013.315-.066.165-.186.269-.414.364-.637.116-.278.091-.621-.041-.853-.07-.099-.178-.111-.261-.037a1.436 1.436 0 00-.505.993c0 .054.004.153.041.174.19-.083.307-.29.414-.426zm5.048 10.013c.02-.016.054 0 .066.009 0 .223.054.492.083.57a.257.257 0 00.083-.057l.062-.302c.14-.426.037-.766-.141-1.155-.033-.074-.083-.082-.157-.05-.054.025-.1.063-.054.137.041.062.037.112 0 .174-.058.112-.1.232-.161.364-.025.083-.03.15-.038.248l-.062 1.531c.025.083.075.067.104.017.033-.083.058-.161.074-.248.042-.24.112-.249.124-.489.021-.248.021-.496.013-.744zM3.285 2.917a.227.227 0 01.009-.095l.256.041c.124.025.187.009.228-.086.07-.183.033-.348-.157-.385-.29-.054-.58.041-.828.099-.161.054-.199.223-.083.34.187.177.364.355.559.512a.614.614 0 00.525.125c.083-.021.154-.075.154-.15a.207.207 0 00-.062-.148.559.559 0 00-.145-.083zm-.26 11.144c-.017.082-.054.153-.19.145a1.705 1.705 0 01-.373-.054c-.132-.038-.17-.087-.178-.137a2.261 2.261 0 01.042-.82c.016-.04.157-.123.215-.156.178.02.318.05.447.082.05.03.149.178.157.199a.83.83 0 01.025.248c-.05.207-.112.385-.145.493zm13.82 7.469c.332.124.588.161.687.14a.198.198 0 00.154-.223c-.005-.091-.05-.166-.166-.199-.252-.054-.513-.09-.753-.178-.14-.041-.248-.037-.373.058-.19.145-.372.22-.608.265a.29.29 0 00-.153.054c-.066.087-.05.149.054.207.41.037.794-.042 1.158-.124zm1.362.81c.207 0 .36-.04.5-.132a1.241 1.241 0 01.6-.265c.092-.016.183-.111.19-.186 0-.103-.082-.116-.152-.14-.199-.063-.435-.054-.637-.104-.067-.012-.162-.012-.216.03-.426.43-.509.33-.711.541-.054.07-.054.157.095.195.116.029.265.053.33.062zM11.123 6.162c0-.107.19-.273.294-.256.02.008.04.02.057.041l.042.224c.012.087.041.165.087.165.215.017.467-.132.587-.318.129-.2.22-.427.327-.642.1-.236.253-.09.199.054-.137.41-.306.828-.439 1.229-.041.149-.062.157-.207.108l-.682-.245a.352.352 0 01-.265-.36zm5.238 10.213c.112.054.104.033.253-.05a.34.34 0 00.132-.24l-.041-.898c0-.029-.042-.074-.058-.074-.124 0-.273-.025-.373.029-.19.103-.351.252-.525.389-.066.066-.004.132.095.124.083-.033.178-.075.26-.12l.158-.083a.141.141 0 01-.016.075c-.15.165-.261.364-.464.471-.054.009-.041.14.037.145a.681.681 0 00.228-.108c.124-.099.178-.16.302-.264.041.062.07.111.008.165l-.33.298c-.05.05-.013.1.045.091a.652.652 0 00.236-.09c.082-.055.153-.13.227-.208.004.009.05.054.042.058a3.715 3.715 0 01-.216.29zM5.772 5.967c-.05.5-.173 1.005-.397 1.233-.182-.348-.306-.753-.43-1.109.1-.124.223-.31.277-.455.025-.07.066-.083.128-.033.15.136.278.248.422.364zm.592 7.134a.414.414 0 01-.227.285.913.913 0 01-.39.104c-.074 0-.128-.017-.14-.083-.041-.232-.095-.447-.133-.67-.004-.054.042-.125.087-.166.145-.137.331-.174.526-.186.041 0 .178.058.199.095.04.207.062.393.078.62zm-1.808-2.678c-.265.042-.497.278-.455.373.004.207.045.405.157.583.07.104.124.129.232.058a1.986 1.986 0 00.794-.81c.05-.1-.054-.13-.153-.179-.132-.062-.273-.062-.348-.025-.074.038-.103.116-.115.178-.083.302-.1.31-.19.414a.803.803 0 01.078-.592zm1.792 11.36c.016-.034.024-.059.053-.063a.623.623 0 01.178 0c.236.066.455-.103.675-.137.05-.004.103-.012.161-.004.145.004.29.009.451-.033.066-.025.153.009.228.042.252.111.496.173.74.029a3.8 3.8 0 01.394-.236c.227-.087.248.062.256.149a.215.215 0 01-.124.128c-.786.281-1.465.285-2.346.178a1.986 1.986 0 01-.666-.054zm-4.925-8.277a.455.455 0 00.104.356l.037.037-.02.067a1.862 1.862 0 01-.406-.054c-.058-.021.103-.108.116-.207.029-.203.083-.538.083-.782 0-.042-.104-.083-.104-.124a.149.149 0 01.05-.083c.29.07.33.066.389.203.058.124.111.33.198.48.017-.009.042-.017.054-.03.013-.136.008-.335.013-.426.008-.074.04-.111.12-.111.062 0 .215.004.277.016.008.013.008.025.008.042 0 .041-.05.053-.062.058-.137.05-.145.062-.207.442l-.066.439c-.008.033-.017.1-.037.145-.038.004-.104 0-.116-.033a6.296 6.296 0 00-.34-.691l-.04-.004c-.034.09-.034.177-.055.264zm9.104 2.04a.86.86 0 000-.252c-.05-.14-.112-.277-.091-.402.062-.215.107-.438.087-.662a2.789 2.789 0 01.025-.827c.074.025.132.074.149.124.02.087.04.174.04.252.03.236.01.464-.003.691-.037.447-.075.861-.062 1.3.008.066.02.153.041.215.058.136.03.277-.078.43l-.067-.029c-.05-.186-.173-.438-.227-.637-.009-.037 0-.066.05-.075.082-.016.136-.066.14-.124zm4.303-3.29c-.182-.016-.368-.177-.356-.467-.09.124-.202.248-.302.294.009.1.253.24.422.31.096.128.166.19.29.331.075-.19.166-.352.195-.455a1.469 1.469 0 00-.145-.675c-.137-.153-.352-.28-.563-.417-.103.111.029.351.286.496a.423.423 0 00.202.538zm-12.372-.442c.128-.009.265-.03.418-.05.1-.025.21-.05.215-.174.008-.111-.124-.173-.215-.198a1.97 1.97 0 00-1.304.128 1.183 1.183 0 00-.264.19c-.1.108-.08.174-.005.232a.984.984 0 00.356.166c.021-.091.042-.24.07-.331.141-.232.539-.274.816-.282.066.013.066.095.012.112-.078.062-.236.05-.277.116 0 .07.066.095.178.087zm.885 2.4c-.004-.05.054-.112.058-.145.013-.066.013-.157.013-.228.008-.178-.03-.467-.03-.641l.096-.062c.033-.012.058.008.095.041.083.083.27.29.356.369.008 0 .02-.021.025-.025v-.133a.974.974 0 00-.042-.256c-.033-.112-.111-.19-.024-.199l.339-.025c-.033.067-.058.116-.07.216-.017.136-.042.26-.046.388.017.2.058.398.075.563 0 .013-.025.03-.05.042a.31.31 0 01-.095-.062c-.166-.166-.282-.32-.497-.522a.182.182 0 00-.029.091c.042.128.095.273.182.393.054.075.067.1-.07.15a.648.648 0 01-.281.04zm6.05.037c.195-.12.273-.521.224-.716a.257.257 0 00-.067-.136c-.062-.062-.132-.042-.165.066-.037.153-.054.318-.075.463a1.448 1.448 0 00-.438-.012c-.15.02-.439.107-.439.285 0 .29.666.224.96.05zm1.167-2.003a.331.331 0 00.083.232c.298.31.707.633.968.695.232.062.426.199.567.385l.136.186c.1.124.228.207.402.232.029.008.066 0 .1 0-.026-.104-.026-.116-.1-.19-.613-.547-1.262-.973-1.895-1.416-.062-.037-.174-.111-.261-.124zm-6.397 7.035v-.009c-.062-.26-.133-.513-.199-.765-.05-.091-.14-.025-.132.012-.066.187-.133.373-.19.567a.273.273 0 000 .174c.099.273.19.542.297.815.017.037.067.062.095.083.025-.033.063-.07.07-.103zm1.084-6.489c.016.05.041.112.05.17.004.042.004.075-.009.1-.004.012-.029.008-.054-.005-.128-.058-.273-.14-.389-.062-.04.03-.024.104.03.129l.364.149c.165.062.206.136.173.33-.029.187-.165.261-.327.307-.066.016-.136.025-.227.016-.012.058.004.124-.037.15-.03.016-.038.012-.067.024a1.597 1.597 0 01-.124-.451c0-.037.013-.041.025-.054.054.017.104.091.186.17.1.033.27.062.294.033.05-.062.07-.1.07-.124 0-.042-.057-.083-.107-.104-.128-.07-.199-.095-.331-.149-.124-.05-.145-.16-.145-.264 0-.112.058-.232.236-.29.054-.02.153-.041.207-.058a.82.82 0 00.029-.186c.029-.004.083-.013.09.008zM2.665 5c-.248 0-.406-.067-.654-.042-.178.013-.352.091-.525.157-.104.05-.083.096.008.133a.483.483 0 00.24.062c.513-.041 1.088-.1 1.601-.149.03-.041.054-.074.083-.14-.195-.129-.447-.104-.683-.174zm5.892 7.659a.523.523 0 00-.12.108.323.323 0 01-.103.074l-.07-.041.111-.27c.042-.103.083-.115.182-.049l.091.074c.075.063.174.112.265.07.087-.04.041-.165-.05-.21-.132-.083-.231-.108-.393-.207-.099-.058-.14-.145-.14-.27 0-.103.07-.227.202-.24.05-.011.112-.011.182-.011.087 0 .145-.013.2-.087.04-.054.086-.087.098-.03a.756.756 0 01-.024.406c-.03-.008-.05-.008-.075-.02-.079-.125-.182-.183-.269-.17-.083.012-.124.074-.062.14.112.116.269.178.401.253.19.103.178.248.154.352a.269.269 0 01-.278.223.527.527 0 01-.302-.095zm-.376-.38c.016.318-.24.434-.422.43-.17 0-.27-.038-.327-.207-.03-.1-.062-.402-.083-.513-.033-.042-.091-.058-.178-.083-.041-.008-.045-.042-.054-.079.062-.029.174-.062.253-.074.182-.03.182-.017.21.149.026.19.054.389.092.579.062.186.26.145.26-.012 0-.15.009-.319 0-.476-.029-.038-.082-.116-.14-.17-.07-.083-.075-.108.025-.145.231-.09.248-.149.28.157.013.116.084.294.084.443zm.215 1.63l.58-.137c.152-.041.24-.207.227-.352-.017-.111-.083-.173-.199-.198a1.572 1.572 0 00-.745.103c-.02.199.05.414.137.58zM3.074 11.85a1.03 1.03 0 00-.248.037.913.913 0 01-.364.038c-.083-.009-.215-.063-.294-.083-.087.008-.174.087-.207.21-.016.125.058.212.195.237.277.062.538.111.794.111.1 0 .112-.012.116-.095.013-.157.008-.29.008-.455zm6.621-5.917a1.676 1.676 0 01-.36-.112c-.041-.012-.07-.112-.07-.165.012-.145-.025-.29 0-.443.012-.083.058-.108.136-.091.112.025.216.05.323.083.14.057.352.446.29.583-.062.124-.174.14-.315.149zm-2.387 6.782a.414.414 0 01-.116.112c-.137.09-.385.144-.555.256-.083.058-.041-.14-.05-.215l-.086-.463a.604.604 0 00-.15-.249c-.049-.058.092-.083.162-.103l.27-.083c.098-.033.123.037.094.058-.136.1-.124.145-.107.273.02.124.02.26.024.364.021.05.05.116.087.162.083-.025.174-.087.174-.112l.02-.265c.1-.124.117-.062.133-.008.042.099.062.161.1.273zm.41-2.938a7.687 7.687 0 01-.158-.55c-.012-.075.05-.116.12-.104.248.054.492.112.74.178.083.017.083.083.03.137a1.763 1.763 0 01-.555.405c-.112.062-.116.017-.178-.066zm10.72-6.563a1.82 1.82 0 00-.285-.687c-.112-.14-.248-.153-.372-.025a.96.96 0 00-.108.125c-.124.157-.112.206.075.298.28.082.442.248.645.455zM5.289 19.291a1.159 1.159 0 00-.372.331c-.083.153-.174.298-.257.447-.029.07-.078.24-.099.352l.05.05a2.069 2.069 0 00.364-.27c.21-.207.26-.401.376-.815l.021-.05zM23.524 2.276a4.63 4.63 0 00-.405-.654c-.112-.14-.166-.153-.29-.025a1.008 1.008 0 00-.112.124c-.124.153-.198.344.004.373.174.029.41 0 .522.078.103.067.194.137.24.162zM2.544 13.394c-.032.303-.024.303-.024.514 0 .115.054.115.157.124.095.004.124-.083.145-.195l.062-.418c.017-.136.025-.215-.058-.227-.153-.021-.269.074-.281.202zM4.16 7.8a1.597 1.597 0 01-.39-.137c-.206-.107-.405-.33-.372-.537.017-.096.07-.125.153-.08.158.117.29.29.406.415a.818.818 0 01.207.339zm1.551 4.916c.004.083.075.327.1.467.012.075.029.133.136.12.14-.02.19-.082.17-.194-.017-.128-.05-.257-.075-.389-.024-.124-.078-.194-.19-.19-.116.012-.153.053-.14.186zm6.15-7.808c-.088.157-.166.314-.27.45-.078.112-.202.183-.314.278-.108.029-.112.02-.075-.087.162-.265.315-.472.489-.7.124-.066.17-.012.165.059zm8.3 4.295c0 .1-.017.19-.05.285l-.025.013c-.128-.323-.438-.844-.417-.898-.009-.037.074-.058.111-.05l.141.058c.083.19.166.372.24.592zm.902-6.857c.017.004.066.017.104.05.062.05.07.107-.013.14-.194.092-.521.265-.732.344-.042.02-.087.025-.07-.05.04-.124.537-.484.711-.484zm-7.08 8.992c-.136 0-.252.108-.252.215.004.12.157.248.293.248.125 0 .211-.082.211-.207.009-.148-.099-.256-.252-.256zM3.074 21.778c-.028 0-.082.091-.128.095-.165.013-.223.03-.223.1 0 .095.05.144.128.12.248-.075.306-.067.629-.042l.112-.132c-.038-.033-.066-.075-.112-.087a1.85 1.85 0 00-.406-.054zM17.648 9.869c-.054.033-.099.066-.082.128l.04.1c.096-.017.204-.025.303-.017.132.041.356.091.497.116.033.008.074-.03.099-.062.008-.004-.017-.03-.03-.054-.19-.19-.508-.194-.827-.207zM8.532 5.686l-.339-.15c-.02-.012-.033-.074-.012-.099.074-.111.153-.215.231-.314.042-.042.075-.037.096.016l.17.422c.032.083-.005.116-.146.125zM4.08 9.844c.083-.016.124.033.112.108-.009.041-.021.058-.087.09a1.497 1.497 0 01-.753.026c-.083-.013-.137-.03-.15-.05a.157.157 0 01.096-.066zm2.375-6.641c-.025.008-.054.029-.07.016-.22-.124-.534-.29-.733-.418-.045-.066-.016-.09.046-.082.161.053.443.136.604.198.104.05.137.145.153.286zm3.373 4.833c.024.037.05.074-.021.186-.112.174-.14.352-.215.592a.645.645 0 01-.075.14c-.025.025-.062.034-.09.05-.01-.029-.026-.066-.021-.09l.223-.73c.033-.086.1-.132.199-.148zm8.081-2.442a4.014 4.014 0 01-.869-.306c-.095-.082-.079-.078.046-.082l.815.219c.157.12.124.116.008.165zm-3.364 5.181a.277.277 0 00-.124-.153c-.042-.025-.12-.012-.166.025a.857.857 0 00-.132.116c-.062.087-.025.174.074.244.083.058.174.054.228-.025.05-.062.095-.108.12-.207zM9.09 6.778c-.029.062-.037.124-.079.17-.111.132-.235.26-.355.389-.12.053-.125-.021-.112-.08.112-.206.269-.38.414-.55.016-.016.062-.028.082-.016.021.012.033.041.05.083zM4.415 5.64c-.029.02-.467-.662-.521-.803 0-.025.07-.074.107-.103a.195.195 0 01.075.066c.14.298.385.803.364.823zM4.23 8.367l-.186-.083c-.137.03-.249.091-.402.108-.161.012-.227-.021-.29-.062.026-.05.112-.1.24-.124.075-.013.402-.042.688-.017zM21.07 4.89l.48.36c.05.033.042.1.062.14l-.107-.012c-.207-.103-.422-.186-.559-.389-.116-.17.075-.149.124-.099zm-12.157.592l-.054.083c-.02-.025-.05-.05-.062-.083-.041-.083-.041-.178-.05-.265-.024-.207-.012-.319.112-.443.05-.058.091-.025.091.03.009.26-.004.421-.037.678zM5.834 4.73c.046.016.125.509.178.761a.562.562 0 010 .186c-.02.058-.041.07-.09.02-.083-.26-.125-.525-.166-.773-.017-.074-.017-.153.078-.194zM19.87 7.72c.199.112.43.31.526.427.025.024.012.09 0 .14-.033-.012-.07-.016-.095-.037-.166-.103-.319-.22-.472-.327-.02-.016-.025-.136-.041-.161a.174.174 0 01.082-.042zM10.82 3.46c.034.021.05.042.071.07a.174.174 0 01-.07.075c-.141.054-.468.054-.604-.025a.422.422 0 01-.07-.082l.094-.054a1.29 1.29 0 01.58.02zm3.725.795c.132.207.19.405.248.629 0 .012-.008.016-.008.05-.033-.021-.05-.025-.062-.042a1.159 1.159 0 01-.331-.546c-.017-.05-.009-.091.053-.128a.224.224 0 01.1.037zM11.97 18.418c.157-.091.203-.161.343-.248.058-.033.05-.042.021-.096-.033-.062-.062-.062-.145-.04-.153.053-.215.09-.372.152-.066.025-.091.054-.02.104zM7.126 3.745c.19-.133.397-.203.608-.282.033-.008.083.005.12.038l-.075.066c-.165.116-.33.207-.488.302a.983.983 0 01-.165-.029.124.124 0 010-.095zM2.18 7.8c-.046-.223-.108-.497-.07-.695a.285.285 0 01.086-.124c.042.037.083.066.087.103.042.232-.025.497-.041.712zm10.77-4.994a3.53 3.53 0 01.56-.327 2.09 2.09 0 01-.572.608c-.012-.083-.041-.232.013-.281zm-2.648 8.644c0 .09.042.19.116.26.042-.033.075-.095.075-.124.016-.174.029-.352.029-.534.02-.07-.083-.09-.108-.016-.041.136-.107.273-.112.414zm9.087 7.158l-.765.257c.178.203.695.037.765-.257zM8.12 4.705c.012.203-.025.455-.137.641-.012.025-.041.042-.074.066-.013-.037-.05-.066-.042-.09.042-.208.095-.456.145-.663.008-.012.041-.025.058-.029zm10.717 14.632c.165 0 .323-.005.447-.042.111-.07.107-.215.145-.314l-.042-.013-.182.166a2.579 2.579 0 01-.372.074.258.258 0 00-.058.075c.02.029.041.05.066.054zm-1.531-8.202c.054-.12.103-.227.145-.34.008-.024-.03-.086-.075-.127a.323.323 0 00-.09.041 1.655 1.655 0 00-.24.364c.016.03.098.03.256.062zM4.494 7.895l.161-.414c.03-.008.054-.008.075.005.024.124.004.322-.009.4-.024.113-.066.179-.165.228a.674.674 0 01-.062-.219zm9.34 3.037c-.113 0-.2.067-.208.166 0 .083.091.161.19.161.104-.008.183-.082.19-.173 0-.1-.061-.154-.173-.154zm-.1 1.018c0-.111-.066-.186-.186-.186-.096 0-.166.062-.166.15 0 .098.104.198.207.19.091 0 .145-.067.145-.154zm-.418-1.042c0 .09-.058.144-.145.144-.116 0-.203-.07-.203-.178 0-.082.083-.165.166-.165.087-.008.182.074.182.199zm.074.413c-.099 0-.165.062-.165.145 0 .087.09.166.186.166.074 0 .145-.079.145-.166.004-.078-.07-.145-.166-.145zm-1.088 7.399c-.128 0-.24.062-.236.132.008.07.108.166.186.166.083 0 .129-.087.129-.199-.004-.082 0-.099-.079-.099zM4.415 3.062c-.062-.248-.033-.472.03-.724.103.215.11.563-.03.724zm9.31 7.25c-.066.041-.124.107-.115.136.008.05.062.095.095.145a.27.27 0 00.112-.132c.012-.03-.05-.083-.096-.15z\"},\"child\":[]}]})(props);\n};\nexport function SiEmbarcadero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a11.963 11.963 0 0 0-8.485 3.515A11.963 11.963 0 0 0 0 12.001c0 3.313 1.344 6.311 3.515 8.484A11.96 11.96 0 0 0 12 24a11.96 11.96 0 0 0 8.485-3.515A11.968 11.968 0 0 0 24 12.001c0-3.315-1.344-6.314-3.515-8.486A11.963 11.963 0 0 0 12 0zm.052 4.401c1.233 0 2.344.222 3.332.664.988.443 1.804 1.142 2.449 2.096.58.842.956 1.818 1.128 2.93.1.65.14 1.587.122 2.811H8.764c.058 1.421.552 2.418 1.482 2.99.565.355 1.246.533 2.042.533.844 0 1.53-.217 2.057-.65.288-.234.542-.56.762-.975h3.783c-.1.84-.558 1.694-1.374 2.56-1.269 1.378-3.045 2.067-5.33 2.067-1.886 0-3.549-.58-4.99-1.743-1.442-1.162-2.162-3.053-2.162-5.672 0-2.455.65-4.337 1.951-5.646C8.286 5.056 9.975 4.4 12.052 4.4zm.001 3.055c-.95 0-1.688.27-2.211.81-.524.54-.852 1.27-.987 2.192h6.382c-.067-.983-.396-1.73-.987-2.238-.59-.51-1.323-.764-2.197-.764Z\"},\"child\":[]}]})(props);\n};\nexport function SiEmbark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.658 16.662v-6.644C9.197 10.017 13.687 5.533 13.69 0h6.653c-.003 9.202-7.472 16.662-16.685 16.662ZM3.656 24v-6.672h16.689V24H3.657\"},\"child\":[]}]})(props);\n};\nexport function SiEmberdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm12.29 4.38c1.66-.03 2.83.42 3.84 1.85 2.25 5.58-6 8.4-6 8.4s-.23 1.48 2.02 1.42c2.78 0 5.7-2.15 6.81-3.06a.66.66 0 01.9.05l.84.87a.66.66 0 01.01.9c-.72.8-2.42 2.46-4.97 3.53 0 0-4.26 1.97-7.13.1a4.95 4.95 0 01-2.38-3.83s-2.08-.11-3.42-.63c-1.33-.52.01-2.1.01-2.1s.42-.65 1.2 0 2.24.36 2.24.36c.13-1.03.35-2.38.98-3.81 1.34-3 3.38-4.01 5.05-4.05zm.33 2.8c-1.1.07-2.8 1.78-2.88 4.93 0 0 .75.23 2.41-.91 1.67-1.14 2-2.97 1.11-3.81a.82.82 0 00-.64-.21Z\"},\"child\":[]}]})(props);\n};\nexport function SiEmby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.041 0c-.007 0-1.456 1.43-3.219 3.176L4.615 6.352l.512.513.512.512-2.819 2.791L0 12.961l1.83 1.848c1.006 1.016 2.438 2.46 3.182 3.209l1.351 1.359.508-.496c.28-.273.515-.498.524-.498.008 0 1.266 1.264 2.794 2.808L12.97 24l.187-.182c.23-.225 5.007-4.95 5.717-5.656l.52-.516-.502-.513c-.276-.282-.5-.52-.496-.53.003-.009 1.264-1.26 2.802-2.783 1.538-1.522 2.8-2.776 2.803-2.785.005-.012-3.617-3.684-6.107-6.193L17.65 4.6l-.505.505c-.279.278-.517.501-.53.497-.013-.005-1.27-1.267-2.793-2.805A449.655 449.655 0 0011.041 0zM9.223 7.367c.091.038 7.951 4.608 7.957 4.627.003.013-1.781 1.056-3.965 2.32a999.898 999.898 0 01-3.996 2.307c-.019.006-.026-1.266-.026-4.629 0-3.7.007-4.634.03-4.625Z\"},\"child\":[]}]})(props);\n};\nexport function SiEmirates (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.247 15.56l-1.386 1.385c.945.945 1.26 1.386 1.323 1.827.063-.063 1.323-1.134 1.323-1.512 0-.567-.378-.756-1.26-1.7m-3.15-2.458h-.755s.756.441.756 1.45v3.4c0 2.205 1.826 4.284 4.031 4.284h1.827c1.134 0 1.512-.252 2.142-.882l.692-.693c.378-.44.82-.755.82-1.952v-1.134c0-.945-.568-1.386-.82-1.638l-.63-.63v2.268s.441.504.693.63c.945.756.19 2.078-.692 2.078H7.066c-1.89-.063-3.402-1.637-3.465-3.527v-1.827c0-1.827-.503-1.827-.503-1.827m5.92 2.457l-1.385 1.386c.945.945 1.26 1.386 1.323 1.827.063-.063 1.323-1.134 1.323-1.512 0-.567-.378-.82-1.26-1.7M11.853 0l-.944.945c-.378.378-.252 1.134.504 1.89v1.89c0 .188-.19.377-.19.377s-1.133-1.008-2.14-1.008H7.57c-.945 0-1.7.882-1.827.945-.504.504-.504 1.45-.126 1.89L6.688 8s-.252-1.7 0-2.835c.063-.252.378-.567.693-.567l2.457 1.89-2.835 2.96c-.126.127-.504.379-.882.379-.44 0-.63-.252-.819-.504v1.386c0 .44.63.945 1.197.945h3.78c.252 0 .567-.063.819-.315l1.26-1.26c.188-.19.251-.441.251-.756V7.874c0-1.386-1.07-2.457-1.07-2.457s.251-.189.251-.756V3.213s.441.44.504.63l.82-.82c.377-.377-.253-1.07-.505-1.385C11.853.818 11.853 0 11.853 0M7.13 9.953c.378-.19.441-.315.756-.693l2.394-2.52s1.322 1.386 1.763 2.142c.19.378.441 1.07-.692 1.07H7.13M3.915 7.056h-.692c.44.252.755 1.008.755 1.449v2.772c0 .755.567 3.464 3.024 3.464h7.118v4.536c0 .755-.252 1.196-.44 1.385l-1.072 1.008h.504l1.953-1.763c.378-.441.819-.882.819-2.268V14.74l.819-.819 1.386-1.323c0 1.134.567 1.638 1.07 1.638a1.26 1.26 0 0 0 .756-.315l1.26-1.197c.567-.567.882-2.33-.504-2.33-.882 0-1.89 1.26-1.952 1.386-.315-.19-.567-.63-.567-.63v1.07c-.126.19-.693.63-1.134.63h-1.134v-1.07c0-.504.189-1.071.44-1.323l1.072-1.008h-.504l-2.142 1.953c-.378.44-.63 1.26-.63 1.448H6.058c-1.008 0-1.638-1.007-1.638-1.826v-2.08c0-1.7-.44-1.889-.504-1.889m16.315 6.047c-.189 0-.378-.063-.63-.252-.251-.189-.692-.819-.692-.819.126-.125.504-.251.818-.251.252 0 .504.063.567.189.441.566.378 1.133-.063 1.133M16.893 0L14.75 1.953c-.126.126-.63.882-.63 1.764v5.606c0 .378-.252.945-.44 1.134l-1.072 1.008h.504l2.016-1.827c.252-.252.756-.882.756-1.953V2.331c0-.82.378-1.26.567-1.45L17.397 0h-.504m.315 14.362v2.205l.756.819c.63.63.567 1.827-1.323 3.653a3.78 3.78 0 0 1-2.583 1.197h-3.401L12.672 24h1.386c1.386 0 2.646-.567 3.465-1.449.756-.819 1.197-1.89 1.134-3.023V16.63c0-1.008-.63-1.575-.756-1.7-.126 0-.693-.568-.693-.568Z\"},\"child\":[]}]})(props);\n};\nexport function SiEmlakjet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.65 16.105v-.24a3.543 3.543 0 00-1.267-2.471c-.724-.663-1.69-.965-2.655-.904-1.87.12-3.378 1.747-3.378 3.615 0 .784.12 1.567.422 2.471H4.55V6.946l7.42-5.123 7.482 5.122v11.692h-4.223c.18-.663.422-1.688.422-2.532m5.068-10.244L12.452.136c-.301-.181-.663-.181-.905 0L3.222 5.86c-.242.12-.362.361-.362.663V19.48c0 .482.362.844.844.844H9.92a.824.824 0 00.844-.844c0-.06 0-.18-.06-.24l-.06-.182c-.302-.723-.664-1.627-.664-2.53v-.182c-.06-.542.12-1.084.482-1.446a2.095 2.095 0 011.388-.723c.543-.06 1.026.12 1.448.482.422.362.664.844.724 1.386v.18c.06 1.206-.724 2.954-.845 3.135l-1.146 2.17-.18-.362c-.122-.181-.302-.362-.483-.422-.182-.06-.423-.06-.604.06-.18.12-.362.301-.422.482s-.06.422.06.603l.905 1.687c.121.241.423.422.724.422.302 0 .604-.18.724-.422l1.81-3.375h5.732a.824.824 0 00.844-.843V6.524c-.06-.302-.18-.543-.422-.663\"},\"child\":[]}]})(props);\n};\nexport function SiEmpirekred (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 4.678c0-2.08-1.674-3.774-3.727-3.774H3.725C1.67.904 0 2.597 0 4.684v7.535c0 .336.045.667.135.997.03.134.07.264.12.39.25.623.653 1.17 1.173 1.593.51.524 1.17 1.095 1.965 1.71l.105.074.435.33.52.397c1.19.912 3.205 2.453 6.165 4.71.483.366 1.038.676 1.383.676.342 0 .901-.31 1.382-.676 2.96-2.257 4.972-3.798 6.164-4.71l.972-.74h-.002l.11-.085c.798-.612 1.463-1.19 1.968-1.71.514-.418.908-.96 1.15-1.576.166-.44.252-.906.254-1.376v-7.15h-.003l.003-.003v-.39zm-4.14 6.242a6.42 6.42 0 00-.283-.045c-.105 0-.226-.015-.33-.015a1.883 1.883 0 00-.81.164c-.214.1-.4.248-.54.436-.135.196-.23.415-.286.646-.06.254-.09.524-.09.81v2.88h-5.027l-3.733-5.583-1.556 1.575v3.975h-2.72V3.393H7.2v5.13l4.83-5.127h3.395l-4.83 4.885 5.166 7.293V9.395h1.662v1.182h.023c.084-.195.195-.38.33-.547.144-.168.3-.312.483-.43.18-.106.375-.21.58-.27.205-.06.42-.09.64-.09.114 0 .24.03.38.06z\"},\"child\":[]}]})(props);\n};\nexport function SiEndeavouros (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.03 2.036v.002C13.303 2.138 0 18.46 0 18.46s.957.272 3.135.588c0 0 10.435-17.061 10.904-17.008-.001 0-.01-.006-.01-.004zM3.135 19.048c-.95 1.562-1.71 2.818-1.71 2.818s10.218.46 18.165-.606c11.308-1.516-2.324-15.96-5.537-19.214 2.542 3.36 13.473 17.751 2.459 17.937-3.89.066-13.377-.935-13.377-.935zm10.906-17.01v.002c.022.01 0 .002 0-.002zm-.037.797c-.055.073-.09.112-.156.205a61.39 61.39 0 0 0-1.285 1.9 356.805 356.805 0 0 0-3.723 5.842c-2.448 3.908-4.467 7.208-4.846 7.826 1.034.107 8.948.935 12.508.875 1.322-.022 2.274-.26 2.926-.623.652-.363 1.022-.839 1.228-1.447.413-1.217.063-3.047-.753-5.018-1.537-3.711-4.485-7.686-5.899-9.56z\"},\"child\":[]}]})(props);\n};\nexport function SiEngadget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 20.067a3.9 3.9 0 0 0 4 3.866h16v-4H4v-4h15.733A4.231 4.231 0 0 0 24 12.067V4.333A4.483 4.483 0 0 0 19.733.067H4a4.346 4.346 0 0 0-4 4.266Zm20-8.134H4v-8h16Z\"},\"child\":[]}]})(props);\n};\nexport function SiEnpass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.023 1.3366c2.6912 0 5.3825-.008 8.0745.004a3.8428 3.8428 0 0 1 2.9636 1.3079A3.7223 3.7223 0 0 1 24 4.9469a9.6627 9.6627 0 0 1-.2783 2.319c-.3571 2.0539-.7288 4.1038-1.0939 6.155-.3147 1.7665-.6162 3.5355-.9474 5.3006-.4644 2.038-2.1287 3.5843-4.1953 3.8978a6.3255 6.3255 0 0 1-.7428.0444c-3.1458.003-6.2916.003-9.4375 0-2.4536-.0049-4.551-1.7673-4.9784-4.1834A3553.0608 3553.0608 0 0 0 .4209 7.9092C.2949 7.2115.1559 6.5178.057 5.8148c-.3576-2.05 1.0018-4.0057 3.048-4.3848a5.003 5.003 0 0 1 .9713-.0888c2.6489-.0075 5.2978-.009 7.9467-.0046zM9.8874 18.0225c-.0302.6861.5343 1.2506 1.2204 1.2204h1.7472c.7367.071 1.3552-.548 1.2834-1.2847 0-1.3775 0-2.7556-.0067-4.133a.385.385 0 0 1 .218-.385c1.7016-1.0082 2.525-3.025 2.0155-4.936-.66-2.3766-3.103-3.7856-5.4906-3.1664a4.2099 4.2099 0 0 0-3.0345 2.5005c-.7947 2.0883-.0042 4.4472 1.8883 5.635a.2895.2895 0 0 1 .1636.287c-.0073 1.4795-.0046 2.7056-.0046 4.2622Z\"},\"child\":[]}]})(props);\n};\nexport function SiEnterprisedb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zM6.44 7.75c.072 0 .148.004.222.012l1.815.18a.384.384 0 0 1 .345.369v6.636c0 .186-.154.32-.345.301l-1.815-.18C5.47 14.95 4.5 13.918 4.5 12.762c0-.62.279-1.15.72-1.49-.441-.428-.72-1.011-.72-1.631 0-1.084.85-1.892 1.94-1.89zm11.12 0c1.09 0 1.94.807 1.94 1.89 0 .62-.278 1.204-.72 1.631.442.34.72.87.72 1.49 0 1.157-.967 2.19-2.16 2.307l-1.817.18c-.191.02-.345-.116-.345-.3V8.31c0-.185.154-.35.345-.369l1.817-.18c.074-.007.148-.011.22-.011zm-7.374 2H12c1.194 0 2.16.93 2.16 2.074v3.09c0 1.145-.972 2.086-2.166 2.086H10.18a.343.343 0 0 1-.34-.344v-.092c0-.34.187-.331.27-.34l.136-.011c1.216-.13 1.735-.404 1.754-.766h-1.82c-.202 0-.34-.195-.34-.388v-4.977c0-.184.154-.332.346-.332z\"},\"child\":[]}]})(props);\n};\nexport function SiEnvato (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.156 0a2.7 2.7 0 0 0-1.886.8L4 11.253c-.382.42-.558.978-.453 1.57.176.945 1.116 1.571 2.06 1.399l5.54-1.13c.12-.025.183.136.082.204L5.088 17.23c-.769.487-1.119 1.36-.875 2.234.244 1.151 1.398 1.814 2.516 1.537l9.183-2.26a.11.11 0 0 1 .113.176l-1.433 1.77c-.383.487.244 1.15.77.767l4.716-3.877c.84-.697.281-2.062-.803-1.957l-.011-.004-6.047.65a.111.111 0 0 1-.08-.199l5.918-4.609c.382-.315.628-.801.523-1.326-.105-.803-.767-1.328-1.607-1.223l-6.43.942c-.112.015-.174-.128-.084-.2l6.375-4.867c1.256-.978 1.36-2.898.209-4.015A2.6 2.6 0 0 0 16.156 0M13.1 21.855a1.07 1.07 0 0 0-1.073 1.073A1.07 1.07 0 0 0 13.1 24a1.07 1.07 0 0 0 1.072-1.072 1.07 1.07 0 0 0-1.072-1.073\"},\"child\":[]}]})(props);\n};\nexport function SiEnvoyproxy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.351 7.593-7.068-4.379a1.034 1.034 0 0 0-.84-.117c-.02.01-.052.021-.074.032L8.471 6.105a.695.695 0 0 0-.435.68l.17 7.355c.01.298.191.595.478.765l7.068 4.38c.255.159.574.201.84.116.02-.01.053-.021.074-.032l6.898-2.976a.705.705 0 0 0 .436-.68l-.17-7.355c-.011-.297-.192-.584-.479-.765m-7.185 10.044-6.143-3.805-.149-6.388 5.995-2.583 6.143 3.805.149 6.388zm.011-6.027a.832.832 0 0 0-.414-.67l-5.06-3.135-.159.064.032 1.52 4.007 2.487.095 4.06 1.53.946.086-.032zm-6.058 7.132L5.41 15.83l-.116-4.89 2.146-.924-.042-1.69-3.327 1.435a.611.611 0 0 0-.382.595l.138 5.74c0 .265.16.52.414.67l5.516 3.422c.224.138.5.18.734.106a.15.15 0 0 1 .064-.021l3.252-1.403-1.616-1zm-2.615-6.1-1.52-.947.032 1.446 1.52.946zm2.19 5.059-.032-1.414-1.329-.83c-.021-.01-.042-.031-.053-.042l.032 1.425zm-4.751 1.902-3.476-2.158-.085-3.613 1.7-.734-.031-1.445-2.72 1.17a.527.527 0 0 0-.33.51l.106 4.336c0 .223.138.446.35.574l4.167 2.582a.822.822 0 0 0 .627.096c.021-.01.043-.01.064-.021l2.561-1.106-1.392-.86Z\"},\"child\":[]}]})(props);\n};\nexport function SiEpel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.702 2.361c-1.188.11-.88.154 1.98.286 5.677.242 9.043 1.144 11.353 2.993 1.232 1.012 2.187 3.146 2.187 3.146s-3.639.836-7.797 1.65c-4.159.814-7.46 1.54-7.327 1.584.352.11 5.214-.484 10.319-1.276l4.87-.734c.078-.012.036.394.036.514 0 1.1-1.122 2.948-2.794 4.599-2.75 2.684-6.623 4.686-11.573 5.962-1.364.352-2.2.638-1.892.638 1.188.044 5.742-1.298 7.81-2.266 2.685-1.276 4.401-2.508 6.491-4.664 1.48-1.842 2.994-2.796 3.056-5.017l3.06-.506c1.629-.264 3.103-.55 3.28-.616.241-.088.285-.352.197-1.012-.154-1.21-1.1-2.156-3.014-3.037-2.904-1.342-5.88-1.603-7.442-.68-.173.101-.376.417-.534.486a1079.7 1079.7 0 00-2.365-.862C7.567 2.515 3.848 2.075.702 2.361zm19.032 2.773c1.628.484 4.18 2.014 3.792 2.09l-3.066.601-3.386.772c-.644-1.435-1.491-2.232-2.628-3.305l.133-.327c.322-.796 2.536-.602 5.155.169z\"},\"child\":[]}]})(props);\n};\nexport function SiEpicgames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.537 0C2.165 0 1.66.506 1.66 1.879V18.44a4.262 4.262 0 00.02.433c.031.3.037.59.316.92.027.033.311.245.311.245.153.075.258.13.43.2l8.335 3.491c.433.199.614.276.928.27h.002c.314.006.495-.071.928-.27l8.335-3.492c.172-.07.277-.124.43-.2 0 0 .284-.211.311-.243.28-.33.285-.621.316-.92a4.261 4.261 0 00.02-.434V1.879c0-1.373-.506-1.88-1.878-1.88zm13.366 3.11h.68c1.138 0 1.688.553 1.688 1.696v1.88h-1.374v-1.8c0-.369-.17-.54-.523-.54h-.235c-.367 0-.537.17-.537.539v5.81c0 .369.17.54.537.54h.262c.353 0 .523-.171.523-.54V8.619h1.373v2.143c0 1.144-.562 1.71-1.7 1.71h-.694c-1.138 0-1.7-.566-1.7-1.71V4.82c0-1.144.562-1.709 1.7-1.709zm-12.186.08h3.114v1.274H6.117v2.603h1.648v1.275H6.117v2.774h1.74v1.275h-3.14zm3.816 0h2.198c1.138 0 1.7.564 1.7 1.708v2.445c0 1.144-.562 1.71-1.7 1.71h-.799v3.338h-1.4zm4.53 0h1.4v9.201h-1.4zm-3.13 1.235v3.392h.575c.354 0 .523-.171.523-.54V4.965c0-.368-.17-.54-.523-.54zm-3.74 10.147a1.708 1.708 0 01.591.108 1.745 1.745 0 01.49.299l-.452.546a1.247 1.247 0 00-.308-.195.91.91 0 00-.363-.068.658.658 0 00-.28.06.703.703 0 00-.224.163.783.783 0 00-.151.243.799.799 0 00-.056.299v.008a.852.852 0 00.056.31.7.7 0 00.157.245.736.736 0 00.238.16.774.774 0 00.303.058.79.79 0 00.445-.116v-.339h-.548v-.565H7.37v1.255a2.019 2.019 0 01-.524.307 1.789 1.789 0 01-.683.123 1.642 1.642 0 01-.602-.107 1.46 1.46 0 01-.478-.3 1.371 1.371 0 01-.318-.455 1.438 1.438 0 01-.115-.58v-.008a1.426 1.426 0 01.113-.57 1.449 1.449 0 01.312-.46 1.418 1.418 0 01.474-.309 1.58 1.58 0 01.598-.111 1.708 1.708 0 01.045 0zm11.963.008a2.006 2.006 0 01.612.094 1.61 1.61 0 01.507.277l-.386.546a1.562 1.562 0 00-.39-.205 1.178 1.178 0 00-.388-.07.347.347 0 00-.208.052.154.154 0 00-.07.127v.008a.158.158 0 00.022.084.198.198 0 00.076.066.831.831 0 00.147.06c.062.02.14.04.236.061a3.389 3.389 0 01.43.122 1.292 1.292 0 01.328.17.678.678 0 01.207.24.739.739 0 01.071.337v.008a.865.865 0 01-.081.382.82.82 0 01-.229.285 1.032 1.032 0 01-.353.18 1.606 1.606 0 01-.46.061 2.16 2.16 0 01-.71-.116 1.718 1.718 0 01-.593-.346l.43-.514c.277.223.578.335.9.335a.457.457 0 00.236-.05.157.157 0 00.082-.142v-.008a.15.15 0 00-.02-.077.204.204 0 00-.073-.066.753.753 0 00-.143-.062 2.45 2.45 0 00-.233-.062 5.036 5.036 0 01-.413-.113 1.26 1.26 0 01-.331-.16.72.72 0 01-.222-.243.73.73 0 01-.082-.36v-.008a.863.863 0 01.074-.359.794.794 0 01.214-.283 1.007 1.007 0 01.34-.185 1.423 1.423 0 01.448-.066 2.006 2.006 0 01.025 0zm-9.358.025h.742l1.183 2.81h-.825l-.203-.499H8.623l-.198.498h-.81zm2.197.02h.814l.663 1.08.663-1.08h.814v2.79h-.766v-1.602l-.711 1.091h-.016l-.707-1.083v1.593h-.754zm3.469 0h2.235v.658h-1.473v.422h1.334v.61h-1.334v.442h1.493v.658h-2.255zm-5.3.897l-.315.793h.624zm-1.145 5.19h8.014l-4.09 1.348z\"},\"child\":[]}]})(props);\n};\nexport function SiEpson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.616 13.915c-1.029 0-1.428-.952-1.428-1.915 0-.975.398-1.927 1.428-1.927 1.03 0 1.429.952 1.429 1.927 0 .963-.399 1.915-1.429 1.915m0-4.805c-1.627 0-2.567 1.218-2.567 2.89s.94 2.89 2.567 2.89c1.628 0 2.568-1.218 2.568-2.89s-.94-2.89-2.568-2.89zM0 9.266h4.085v.974H1.141v1.207h2.745v.952H1.141v1.351h2.944v.975H0V9.266zM6.73 12.11H5.701v-1.871H6.73c.709 0 1.185.311 1.185.941 0 .621-.476.93-1.185.93m-2.168 2.614h1.14v-1.639H6.73c1.384 0 2.314-.687 2.314-1.904 0-1.229-.931-1.915-2.314-1.915H4.562v5.458zM20.768 9.266h-1.162v5.458h1.118v-2.215c0-.598-.022-1.14-.044-1.605.133.267.531 1.085.708 1.396l1.45 2.425H24V9.266h-1.106v2.158c0 .599.022 1.196.044 1.672-.133-.276-.531-1.096-.72-1.406l-1.45-2.424zM10.34 12.919c0 .73.608 1.019 1.251 1.019.421 0 1.118-.122 1.118-.687 0-.598-.842-.709-1.649-.919-.853-.232-1.672-.543-1.672-1.561 0-1.13 1.063-1.661 2.059-1.661 1.152 0 2.204.498 2.204 1.771h-1.13c-.044-.664-.554-.83-1.129-.83-.388 0-.875.154-.875.619 0 .421.277.487 1.661.842.398.11 1.66.354 1.66 1.595 0 1.018-.797 1.771-2.292 1.771-1.217 0-2.357-.598-2.347-1.959h1.141z\"},\"child\":[]}]})(props);\n};\nexport function SiEquinixmetal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.399 7.789v7.005l-1.599.56V7.231L16 5.557v11.472l-1.601.557V4.996L12 4.16l-2.4.836v12.59l-1.599-.557V5.557L3.2 7.232v8.121l-1.599-.56V7.79L0 8.349v7.582l4.801 1.676v-9.24l1.6-.558v10.356L11.2 19.84V6.133l.8-.28.8.28v13.708l4.801-1.676V7.809l1.599.558v9.24L24 15.93V8.349z\"},\"child\":[]}]})(props);\n};\nexport function SiEraser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.186 7.328c-.248 0-.482.168-.608.443l-3.476 7.51c-.283.61.057 1.39.605 1.39h10.682V7.329zm8.425 0-.002 9.344h7.205c.248 0 .482-.168.608-.443l3.476-7.51c.283-.61-.057-1.39-.605-1.39Z\"},\"child\":[]}]})(props);\n};\nexport function SiEricsson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.76 1.593A2.36 2.36 0 0 0 19.572.225c-.54-.27-1.188-.336-2.256.02L5.187 4.29c-1.068.357-1.548.795-1.818 1.338a2.36 2.36 0 0 0 1.059 3.174c.54.27 1.188.336 2.256-.021l12.129-4.044c1.068-.354 1.548-.795 1.818-1.338a2.35 2.35 0 0 0 .13-1.806zm0 7.485a2.36 2.36 0 0 0-1.188-1.368c-.54-.27-1.188-.336-2.256.021L5.187 11.775c-1.068.357-1.548.795-1.818 1.338a2.36 2.36 0 0 0 1.059 3.174c.54.27 1.188.336 2.256-.021l12.129-4.041c1.068-.357 1.548-.795 1.818-1.341a2.35 2.35 0 0 0 .13-1.806zm0 7.488a2.36 2.36 0 0 0-1.188-1.368c-.54-.27-1.188-.336-2.256.021L5.187 19.263c-1.068.357-1.548.795-1.818 1.338a2.36 2.36 0 0 0 1.059 3.174c.54.27 1.188.336 2.256-.02l12.129-4.045c1.068-.354 1.548-.795 1.818-1.338a2.35 2.35 0 0 0 .13-1.806z\"},\"child\":[]}]})(props);\n};\nexport function SiErlang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.859 7.889c.154-1.863 1.623-3.115 3.344-3.119 1.734.004 2.986 1.256 3.029 3.119zm12.11 11.707c.802-.86 1.52-1.872 2.172-3.03l-3.616-1.807c-1.27 2.064-3.127 3.965-5.694 3.977-3.738-.012-5.206-3.208-5.198-7.322h13.966c.019-.464.019-.68 0-.904.091-2.447-.558-4.504-1.737-6.106l-.007.005H24v15.186h-3.039zm-17.206-.001C1.901 17.62.811 14.894.813 11.64c-.002-2.877.902-5.35 2.456-7.232H0v15.187h3.761Z\"},\"child\":[]}]})(props);\n};\nexport function SiErpnext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 0C1.29 0 0 1.29 0 2.88v18.24C0 22.71 1.29 24 2.88 24h18.24c1.59 0 2.88-1.29 2.88-2.88V2.88C24 1.29 22.71 0 21.12 0Zm5.04 5.76h8.254v2.146H7.92Zm0 5.033h7.85v2.146h-5.233v2.954h5.703v2.146H7.92Z\"},\"child\":[]}]})(props);\n};\nexport function SiEsbuild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 000 12a12 12 0 0012 12 12 12 0 0012-12A12 12 0 0012 0zM6.718 5.282L13.436 12l-6.718 6.718-2.036-2.036L9.364 12 4.682 7.318zm7.2 0L20.636 12l-6.718 6.718-2.036-2.036L16.564 12l-4.682-4.682z\"},\"child\":[]}]})(props);\n};\nexport function SiEsea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.054 2.767L8.95 9.511 0 9.65l5.832 4.47L1.042 21l8.491-4.088 5.711 4.322V14.12L24 9.796l-17.255 4.02a12.575 12.575 0 001.589-1.955 5.475 5.475 0 00.617-1.786l5.593-.15z\"},\"child\":[]}]})(props);\n};\nexport function SiEslgaming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12s12-5.372 12-12c0-6.627-5.373-12-12-12zm.455 2.163a9.8 9.8 0 0 1 5.789 2.222L4.384 18.244a9.862 9.862 0 0 1-1.06-1.582zm7.191 3.632a9.802 9.802 0 0 1 2.192 5.806l-14.45 9.1a9.834 9.834 0 0 1-1.592-1.055zm1.979 8.292c-.888 4.45-5.619 8.892-11.9 7.494Z\"},\"child\":[]}]})(props);\n};\nexport function SiEslint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.257 9.132L11.816 6.5a.369.369 0 0 1 .368 0l4.559 2.632a.369.369 0 0 1 .184.32v5.263a.37.37 0 0 1-.184.319l-4.559 2.632a.369.369 0 0 1-.368 0l-4.559-2.632a.369.369 0 0 1-.184-.32V9.452a.37.37 0 0 1 .184-.32M23.852 11.53l-5.446-9.475c-.198-.343-.564-.596-.96-.596H6.555c-.396 0-.762.253-.96.596L.149 11.509a1.127 1.127 0 0 0 0 1.117l5.447 9.398c.197.342.563.517.959.517h10.893c.395 0 .76-.17.959-.512l5.446-9.413a1.069 1.069 0 0 0 0-1.086m-4.51 4.556a.4.4 0 0 1-.204.338L12.2 20.426a.395.395 0 0 1-.392 0l-6.943-4.002a.4.4 0 0 1-.205-.338V8.08c0-.14.083-.269.204-.338L11.8 3.74c.12-.07.272-.07.392 0l6.943 4.003a.4.4 0 0 1 .206.338z\"},\"child\":[]}]})(props);\n};\nexport function SiEsotericsoftware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.97 9.88C22.3 2.25 15.71-.68 10.15.13 4.37.97-.62 5.83.06 13.34c.28 3.08 1.85 5.97 4.17 7.94 2.58 2.2 6.08 3.16 9.39 2.53.08-.02.14-.1.12-.18 0-.04-.08-.06-.16-.05-3.18.42-6.51-.65-8.87-2.86a11.222 11.222 0 0 1-3.48-7.09C.66 6.99 5.42 2.51 10.64 1.97c4.25-.44 8.79 1.91 10.68 6.76.16.41-.08.81-.5.89-2.92.54-12.51 2.34-14.43 2.7-.17.03-.32-.08-.32-.26-.12-6.02 5.96-8.55 10.45-4.79.06.05.26.01.32-.05.03-.03.04-.22-.02-.28-5.39-5.33-13.24-.85-12.8 6.39.03.44.43.74.85.69l12.33-1.64c0 .08.02.14.02.14.37 6.24-5.86 8.98-10.43 5.15-.06-.05-.24-.03-.29.03-.02.03-.07.19 0 .25 5.25 5.19 12.85 1.06 12.81-5.86l3.38-.45c.85-.11 1.47-.91 1.28-1.77Z\"},\"child\":[]}]})(props);\n};\nexport function SiEsphome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.253 2.755c-.676 0-1.231.555-1.231 1.232v.976h-.083a.722.722 0 00-.717.716v11.682H.71v-.57h3.544a.355.355 0 00.354-.354v-1.279a.355.355 0 00-.354-.355H.709v-.565h3.544a.355.355 0 00.354-.355v-1.278a.355.355 0 00-.354-.355H.709v-.569h3.544a.355.355 0 00.354-.355V10.05a.355.355 0 00-.354-.354H.709V6.113a.355.355 0 00-.355-.355.355.355 0 00-.354.355v3.937a.355.355 0 00.354.355h3.544v.566H.354a.355.355 0 00-.354.355v1.279a.355.355 0 00.354.354h3.544v.57H.354a.355.355 0 00-.354.354v1.275a.355.355 0 00.354.355h3.544v.57H.354a.355.355 0 00-.354.354v1.278a.355.355 0 00.354.355h4.868v.086c0 .389.323.716.717.716h.083v1.14c0 .677.555 1.233 1.231 1.233.677 0 1.233-.556 1.233-1.232v-1.14h.477v1.137c0 .676.556 1.232 1.232 1.232.677 0 1.232-.556 1.232-1.232v-1.138h.481v1.138c0 .676.556 1.232 1.232 1.232.676 0 1.233-.556 1.233-1.232v-1.138h.48v1.138c0 .676.556 1.232 1.232 1.232.677 0 1.232-.556 1.232-1.232v-1.138h.481v1.138c0 .676.556 1.232 1.232 1.232.676 0 1.233-.556 1.233-1.232v-1.138h.477v1.138c0 .676.555 1.232 1.231 1.232.677 0 1.233-.556 1.233-1.232v-1.138h.079c.39 0 .717-.323.717-.716V5.679a.723.723 0 00-.714-.716h-.082v-.979c0-.676-.556-1.231-1.232-1.23h-.001c-.676.001-1.231.557-1.231 1.233v.976h-.477v-.98c0-.675-.557-1.23-1.233-1.228h-.001c-.676 0-1.23.556-1.23 1.232v.976h-.482v-.976c0-.677-.555-1.232-1.232-1.232-.676 0-1.232.555-1.232 1.232v.976h-.48v-.976c0-.677-.557-1.232-1.233-1.232s-1.232.555-1.232 1.232v.976h-.48v-.976c0-.677-.556-1.232-1.233-1.232-.676 0-1.232.555-1.232 1.232v.976h-.477v-.976c0-.677-.556-1.232-1.233-1.232zm0 .715a.51.51 0 01.517.517v.976H6.737v-.976a.51.51 0 01.516-.517zm2.942 0a.51.51 0 01.517.517v.976H9.679v-.976a.51.51 0 01.516-.517zm2.945 0a.51.51 0 01.516.517v.976h-1.032v-.976a.51.51 0 01.516-.517zm2.945 0a.51.51 0 01.517.517v.976h-1.033v-.976a.51.51 0 01.516-.517zm2.945 0h.001a.507.507 0 01.515.513v.98h-1.032v-.976a.51.51 0 01.516-.517zm2.942.001h.001a.507.507 0 01.515.513v.979h-1.032v-.976a.51.51 0 01.516-.516zM6.018 5.758h17.186v12.319H6.018zm8.63 2.777a.322.322 0 00-.234.095l-3.776 3.78a.322.322 0 00.228.55h.62v2.225a.322.322 0 00.323.322h5.67a.322.322 0 00.322-.322V12.96h.621a.322.322 0 00.228-.55l-.856-.859v-1.533a.322.322 0 00-.322-.323h-.591a.322.322 0 00-.323.323v.3L14.87 8.63a.322.322 0 00-.221-.095zm-7.91 10.337H7.77v1.14a.51.51 0 01-.517.517.51.51 0 01-.516-.516zm2.94 0h1.034v1.138a.51.51 0 01-.517.516.51.51 0 01-.516-.516zm2.946 0h1.032v1.138a.51.51 0 01-.516.516.51.51 0 01-.516-.516zm2.945 0h1.033v1.138a.51.51 0 01-.517.516.51.51 0 01-.516-.516zm2.945 0h1.032v1.138a.51.51 0 01-.516.516.51.51 0 01-.516-.516zm2.941 0h1.033v1.138a.51.51 0 01-.517.516.51.51 0 01-.516-.516z\"},\"child\":[]}]})(props);\n};\nexport function SiEspressif (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.926 19.324a7.6 7.6 0 00-2.983-6.754 7.44 7.44 0 00-3.828-1.554.697.697 0 01-.606-.731.674.674 0 01.743-.617 8.97 8.97 0 018 9.805 7.828 7.828 0 01-.298 1.542l1.989.56a11.039 11.039 0 001.714-.651 12.159 12.159 0 00.217-2.343A12.57 12.57 0 007.212 6.171a5.53 5.53 0 00-2 0 4.354 4.354 0 00-2.16 1.337 4.274 4.274 0 001.909 6.856 9.896 9.896 0 001.074.195 4.011 4.011 0 013.337 3.954 3.965 3.965 0 01-.64 2.16l1.371.88a10.182 10.182 0 002.057.342 7.52 7.52 0 00.754-2.628m.16 4.73A13.073 13.073 0 01.001 10.983 12.982 12.982 0 013.83 1.737l.743.697a12.067 12.067 0 000 17.141 12.067 12.067 0 0017.141 0l.697.697a12.97 12.97 0 01-9.336 3.726M24 10.993A10.993 10.993 0 0012.949 0c-.389 0-.766 0-1.143.057l-.252.732a18.912 18.912 0 0111.588 11.576l.731-.263c0-.366.069-.732.069-1.143m-1.269 5.165A17.53 17.53 0 007.818 1.27a11.119 11.119 0 00-2.457 1.77v1.635A13.919 13.919 0 0119.268 18.57h1.634a11.713 11.713 0 001.771-2.446M7.92 17.884a1.691 1.691 0 11-1.69-1.691 1.691 1.691 0 011.69 1.691\"},\"child\":[]}]})(props);\n};\nexport function SiEsri (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.63907.00273c-1.58143.03682-3.04264.4449-4.5349 1.06205-2.07095.87293-4.70641 2.88139-6.3117 6.6711-.37592 1.05578-1.8789 6.09024.79149 10.4125 2.16748 3.50692 4.95741 5.1768 8.37118 5.65348 3.407.47497 5.25533.06419 7.4101-.89245 5.03853-2.2369 8.88662-10.6343 5.03765-16.72016-1.51892-2.81012-5.49826-5.27459-9.85522-5.0841v.00203c-1.0304-.032-1.63648.10168-2.24524.22008-.18288-.04736-.52568.0027-.54516.39978 0 .21344.06847.37913.20393.4765.13463.09665 1.26407.93091 2.0938 1.81316-.39793.04416-.83039.11644-1.27404.20796-.4953-1.07017-2.08625-.09707-3.14374-.0545-.12362.0064-.24269.02388-.36546.03028-.116-.89409-.19886-1.82146-.17768-2.4734C8.46399.95065 11.11512.37795 12.91514.35002l.31498-.00807c.26416-.00253.28524-.21242.03635-.24634-.55902-.0764-1.10025-.10515-1.6274-.09288zm-.19181 1.53048c3.91137-.0172 7.3504 1.64094 8.92442 3.56977-.55965-.2912-1.76629-.7065-2.25735-.81572-.26503-.27008-.59885-.49013-.8884-.6764-.22862-.1456-.51429-.0915-.39575.16355.04487.0992.21919.26655.36142.4341-.83482-.2304-3.05425-.4063-4.11089-.30892-.69003-.77552-1.47719-1.71613-2.42292-2.34013.26453-.01646.5287-.0251.78947-.02625zm-4.85594.42603c-.01343.33869.07398 1.32823.18576 2.28158-.4826.04832-.96112.1076-1.43356.17768a10.2312 10.2312 0 0 0-2.63694 3.46074c-.09908-.89239-.15119-1.63544-.11307-2.09179 1.11167-1.55617 2.62028-3.07211 3.99781-3.82821Zm8.41763 2.64906c.48821.01708.98834.052 1.46587.10095-.85852.3072-1.23689 1.06143-1.65768 1.66172-.0086.0128-.02414.0228-.03432.03433a19.52175 19.52175 0 0 0-1.16503-1.7869c.4263-.02577.90295-.02717 1.39116-.0101zm-2.37446.12114a13.32749 13.32749 0 0 1 1.48 2.15236c-.68157.33021-1.59055.58218-1.96055 1.1105-.15324.22017-.1908.51855-.19585.84197a19.97303 19.97303 0 0 0-3.28305 1.0883c-.38355-1.12775-.71901-2.252-.951-3.25277 1.09728-1.04734 2.38035-1.21677 2.90952-1.6274a15.03184 15.03184 0 0 1 2.00093-.31296zm6.88917.634c.45127.17088 1.02885.40728 1.48606.6562.34713.43687 1.34084 1.41794 1.8717 4.16541.47752 2.47396-.05031 4.35392-.212 4.89834l-.16355.64005c-.116.43603-.50231 1.46609-.70467 1.8818.07706-.56134.14464-2.01894.12519-2.31187.13545.0416.4242-.12255.47246-.28671.04827-.16512-.4765-.41997-.4765-.41997a17.5617 17.5617 0 0 0-.14538-2.28562c.12023-.19489.24217-.38338.36748-.55526a10.22951 10.22951 0 0 0-.1575-1.3326c.10583.03456.20231.06196.27259.06259.23962.0032.23974-.1612.16354-.25239-.04912-.0592-.27844-.20134-.54515-.35536a10.17702 10.17702 0 0 0-2.35427-4.50461ZM1.86865 7.00497s.0517.8962.0949 1.55067c0 0-.66164.75067-.99946 1.34674.13463-1.22175.4228-1.85091.90456-2.89741Zm5.35263.2322c.19812 1.00074.4353 1.8284.7511 2.97817-1.18702.52323-3.28675 1.81816-4.21385 2.5158-.16765-.42503-.34209-1.02781-.49872-1.6476.21082-.62396.64191-1.06046 1.24982-1.1206 1.03971-.104 1.92998-1.65176 2.6632-2.6652.016-.0224.03322-.03914.04845-.06058zm-5.15274 2.2412.01413.11105c-.19472.7366-.31465 1.50207-.3392 2.2937.31328.3302.68222.87924 1.09031 1.44567-.26246.19488-.76785.54326-.88638.62794-.34714.24736-.34214.6363-.0949.85812.13632.12192.41646.07068.5189-.01013.30311-.24129.5554-.43255.90254-.65016.12701.33277.2466.63252.36344.9187-.14816.15904-.25318.3699-.28873.6764-.1143.99228.82833 1.76997 1.62336 1.99688.02976.0096.04997.01378.07874.0202.04233.06431.08029.1245.12519.18979-.41234.32006-.69452.64618-.8884.8985-.11179.1456-.23689.36469-.13529.40786.10413.04224.45398.0005.60977-.02826.39455-.07616.69856-.51352.97119-.67438.32766.45213.86082 1.03223 1.41539 1.59105.02463.10176.04676.20986.0747.29883.10583.34118.24894.67966.41998 1.01156.39877.18625.8147.33987 1.23972.4745a7.06464 7.06464 0 0 0-.52698.60979c-3.42563-1.07271-5.96304-3.96041-6.86898-6.9881a14.79562 14.79562 0 0 1-.55121-5.47984c.04742.0096.15677.06126.32103.01616.1143-.07872.52297-.3635.81168-.61583zm9.89157.18171c-.0066.28193-.03747.5502-.15345.76524-.16595.30976-.09014 1.20842.11307 1.50221.63923.9305 1.70123.41263 2.49964.74707.36661.15328.60998.40762.81572.71072-1.67133.10496-3.31108.49595-4.8317 1.19531C9.6219 12.92116 8.9476 10.7504 8.9476 10.7504v-.0021c.94828-.44874 1.9457-.81904 3.0125-1.0883ZM8.20257 11.0775c.42333 1.2624 1.02859 2.94991 1.44769 3.85244-.05927.0288-.12278.06248-.18374.09287a34.54682 34.54682 0 0 0-2.75607-.66023c-.84244-.1728-.87296-.1278-1.82123.14739-.13545.03904-.26553.075-.3917.11307a30.62419 30.62419 0 0 1-.37555-1.01763c1.21582-.93642 2.4406-1.72272 4.0806-2.5279Zm13.13626 1.9767c.05165.46314.08702.91557.10903 1.32453a7.83681 7.83681 0 0 0-.6562-.24835c.16594-.34458.3499-.71211.54717-1.07618zm-5.61108 1.17512c.16087.27936.34.55903.58554.80966.64093.6553-.372 1.59527-.08077 3.44862h-.0021c-.29971.032-.59767.06936-.86014.10903-.65194.1024-1.49203.32254-2.2735.6138-.44874-.71373-1.6503-2.44857-2.25736-3.75754 1.2209-.6003 2.92566-1.10421 4.88824-1.22357zm4.75498.55525c.35391.09984.68651.20722.97522.32507.03641.52157.03498 2.31123-.06663 3.18412-.1016.21409-.3635.58273-.53708.75717-.26416-.10657-.66046-.22014-1.07618-.31902.06605-.07968.13875-.15432.20393-.23624.22692-1.5206-.28641-2.0062.35536-3.39814zm-9.66947 2.3785c.48175.8111 1.05687 1.69252 1.50221 2.38254-.69342.33613-1.49939.85598-2.26139 1.4275.05248-.87802.07056-1.7466.24835-2.2089.24807-.64768.43971-1.12786.51083-1.60114zm8.54483 2.05342c.46313.05345.92549.13087 1.20742.20191-.62653.79249-1.49164 1.45313-2.41282 2.02718.01952-.34461.0334-.77986.04442-1.18117.41232-.32004.802-.66862 1.16098-1.04792zm-2.95192.01013c.09229.2896.21333.59656.37757.92677.16086.32343.34768.55909.5492.72082.07195-.0448.13884-.09663.20998-.14336-.0051.35559-.0153.71607-.03635 1.06407-.24215.16-1.41046.68857-1.86767.8359a19.83756 19.83756 0 0 1-2.06553-2.70962c.71459-.29985 1.81425-.56757 2.8328-.69458zm-3.62832 1.00148c.34036.5334 1.46049 2.1227 1.91006 2.63492-.81534.14208-1.95564.24903-2.85904.20999 0 0-1.35718-.89952-1.70008-1.24579.67987-.56474 1.78037-1.23506 2.64905-1.59912zM9.62198 22.2815c.39624.2624.81913.56327 1.15695.75716-.5207-.0592-1.13118-.07328-1.585-.22816.13124-.17183.26465-.38337.42805-.529Z\"},\"child\":[]}]})(props);\n};\nexport function SiEtcd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.985 10.715A1.565 1.565 0 1 1 9.42 9.151a1.566 1.566 0 0 1 1.565 1.564zm2.023 0a1.565 1.565 0 1 0 1.565-1.564 1.564 1.564 0 0 0-1.565 1.564zm10.653 1.698a4.295 4.295 0 0 1-.346.013 4.517 4.517 0 0 1-1.986-.462 18.448 18.448 0 0 0 .267-3.515 18.184 18.184 0 0 0-2.274-2.695 4.519 4.519 0 0 1 1.603-1.717l.294-.182-.23-.26a11.977 11.977 0 0 0-4.182-3.05l-.319-.138-.08.336a4.506 4.506 0 0 1-1.135 2.058 18.19 18.19 0 0 0-3.277-1.35 18.126 18.126 0 0 0-3.272 1.348A4.495 4.495 0 0 1 7.594.745L7.512.408l-.317.139a12.091 12.091 0 0 0-4.182 3.05l-.23.259.294.182a4.512 4.512 0 0 1 1.599 1.708 18.322 18.322 0 0 0-2.27 2.685 18.435 18.435 0 0 0 .26 3.538 4.505 4.505 0 0 1-1.975.458 4.224 4.224 0 0 1-.346-.013L0 12.386l.032.344a11.904 11.904 0 0 0 1.609 4.924l.175.298.263-.223a4.502 4.502 0 0 1 2.132-.998 18.29 18.29 0 0 0 1.824 2.971 18.473 18.473 0 0 0 3.457.85 4.493 4.493 0 0 1-.287 2.36l-.132.319.338.075a12.048 12.048 0 0 0 2.59.286l2.59-.286.338-.075-.131-.32a4.487 4.487 0 0 1-.287-2.361 18.476 18.476 0 0 0 3.443-.848 18.208 18.208 0 0 0 1.826-2.974 4.51 4.51 0 0 1 2.143.999l.263.223.175-.296a11.877 11.877 0 0 0 1.607-4.924l.032-.343zm-7.958 4.209a13.981 13.981 0 0 1-7.416 0 14.189 14.189 0 0 1-2.256-7.013 14.118 14.118 0 0 1 2.687-2.558 14.333 14.333 0 0 1 3.279-1.784 14.377 14.377 0 0 1 3.27 1.779 14.226 14.226 0 0 1 2.7 2.576 14.293 14.293 0 0 1-.675 3.652 14.365 14.365 0 0 1-1.59 3.348z\"},\"child\":[]}]})(props);\n};\nexport function SiEthereum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.944 17.97L4.58 13.62 11.943 24l7.37-10.38-7.372 4.35h.003zM12.056 0L4.69 12.223l7.365 4.354 7.365-4.35L12.056 0z\"},\"child\":[]}]})(props);\n};\nexport function SiEthers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 17.443c-12.547 1.64-21.503 3.61-21.636-4.474 0 0 .274-3.133 4.116-3.33 0 0 .13-2.782 3.065-3.097 1.578-.171 3.37 1.454 3.565 3.165 0 0 3.883-.719 4.051 3.067.059 1.32-.238 3.563-3.983 3.465 0 0-2.167-.294-2.461-3.644-.61 6.485 8.767 6.108 8.902.218.06-2.547-1.572-5.167-5.246-4.676-2.014-5.066-7.375-4.775-9.37-.076-2.854 0-5.035 2.196-5.003 5.064.11 9.23 12.954 6.447 24 4.318Z\"},\"child\":[]}]})(props);\n};\nexport function SiEthiopianairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.308 11.603c2.39-1.456 4.239-2.53 4.966-4.355 1.544-4.17.363-5.865-1.104-4.564C20.293 4.506 11.478 13.754.195 20.257c-.172.098-.2.322.558.091 4.48-1.572 14.23-6.705 17.555-8.745zm1.823-.333c.942-.586 1.976-.237.316 2.466-1.126 1.662-1.905 2.63-4.92 3.544-2.075.785-9.768 3.024-15.157 3.675-.401.033-.524-.114-.128-.246 5.135-1.306 17.984-8.21 19.889-9.44zm-8.977 10.47c2.204-.072 3.862.242 5.725-1.73 1.95-2.02 1.72-3.07.544-2.743-1.745.524-8.111 2.69-15.622 3.735-.338.046-.256.226.14.25 5.018.474 6.911.51 9.213.488Z\"},\"child\":[]}]})(props);\n};\nexport function SiEtihadairways (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.07 7.833s-.194.44-.533.66l.002.024c.007.067.046.092.084.117.046.03.091.06.096.168.005.08 0 1.734 0 1.734l-.43.45-.432-.45c0-.026-.006-1.66 0-1.736.005-.107.048-.136.094-.166.038-.025.078-.05.086-.12v-.033c-.307-.214-.533-.646-.533-.646v2.922l.517.51-.43.431.698.696.693-.696-.431-.431.52-.551zm.52 0v3.422h.424s-.008-2.39 0-2.469c.005-.104.06-.134.117-.164.048-.025.097-.05.107-.123v-.033c0-.04-.029-.054-.066-.07a1.165 1.165 0 0 1-.236-.17c-.219-.188-.271-.276-.272-.278zm-6.219.016s-.273.36-.648.636l.002.014v.023c.01.07.059.096.107.122.057.03.127.057.127.162v2.449h2.72v.05a.363.363 0 0 0-.003.067c0 .194.069.328.191.377a.32.32 0 0 0 .15.035c.068 0 .132-.02.194-.06l.047-.03-.043-.035c-.08-.06-.107-.237-.106-.37v-.034h1.014V9.003s-.135.301-.623.654c0 0 .016.098.102.145.126.07.117.136.117.136v.903h-.606v-.09c-.001-.228-.07-.758-.681-.758-.177.005-.37.01-.563.01-.362 0-.552-.04-.598-.127l-.021-.037-.033.023c-.066.043-.106.124-.106.223.002.146.082.307.227.318.09.004.221.006.353.006.236 0 .47-.004.471-.004.505.004.514.216.518.319v.117h-2.31zm2.76.416l-.32.322.32.32.322-.32.32.32.323-.322-.03-.025-.293-.295-.32.32-.03-.025zm-6.37.716v1.229c.717 0 1.433 0 2.15-.002.065.001.154.02.155.156v.983c0 .008-.002.21-.212.21-.338 0-.315-.17-.317-.17l.002-.552H6.762v.42h1.394v.34s-.044.36.705.36c.61 0 .63-.38.63-.384l.001-1.406c0-.08-.022-.34-.271-.344H7.096v-.154c0-.035.031-.047.056-.063.125-.076.145-.144.106-.17-.251-.143-.496-.453-.496-.453zm8.528 2.426l.287.291-.287.29-.29-.29zm1.045 1.713l-.422.442.469.496.484.488h-.818l-.447.469.095.066.106-.057a.134.134 0 0 1 .031-.01.771.771 0 0 1 .076-.001l1.399.002.964 1.03s-.015.018-.1.018h-.036v.104h1.092zm2.57 0v.086s.112.074.116.074v.317h2.552c.516 0 .894.069 1.123.203.365.213.543.49.543.846 0 .178-.046.34-.14.484a1.105 1.105 0 0 1-.426.363c-.247.128-.625.194-1.121.194h-1.33v-1.87h-.729v2.145l-.004.031a.283.283 0 0 1-.02.022l-.097.06v.088h2.184c.42 0 .749-.023.98-.07.317-.067.598-.183.836-.344.243-.163.418-.35.518-.56a1.242 1.242 0 0 0 .056-.877c-.115-.365-.38-.664-.785-.89-.365-.204-.883-.302-1.584-.302zm-14.81.002l-.444.557.09.031.014.004.137-.07a.208.208 0 0 1 .117-.038h1.758v2.356l-.008.033a.065.065 0 0 1-.022.018l-.1.066v.086h.981v-.088l-.101-.062-.024-.022-.002-.027v-2.36h1.56c.06.007.068.02.068.022v.084h.088l.483-.59zm4.806 0v.088l.098.064c.023.016.035.029.035.041v2.643l-.006.033a.315.315 0 0 1-.027.022l-.1.064v.088h.975v-.088l-.09-.062c-.012-.009-.018-.014-.021-.014h-.002v-2.682l.002-.027.023-.021.088-.06v-.089zm1.332 0v.088l.096.064c.007.006.018.01.026.014v2.672l-.006.035a.066.066 0 0 1-.018.018l-.098.066v.086h.983v-.088l-.104-.064c-.016-.009-.022-.014-.025-.014v-2.68l.002-.029c0-.001.008-.008.023-.016l.094-.056.01-.006v-.09zm.854 1.65l.105.034.137-.078a.22.22 0 0 1 .06-.03.169.169 0 0 1 .057-.008h2.051v.942l.733-.787v-1.557c0-.011.015-.021.015-.021l.106-.055v-.09h-.983v.088l.1.064c.029.018.031.032.031.041v.893H11.53zm-8.66-1.646c-.31 0-.553.01-.72.03a2.366 2.366 0 0 0-.893.292c-.329.186-.564.424-.7.705-.076.16-.114.337-.113.53 0 .49.264.882.785 1.164.235.129.5.218.787.265.215.035.51.053.877.053h2.03l.484-.588h-.041l-.108.004-.126.072c-.035.021-.056.028-.06.03l-2.18.005c-.499 0-.877-.063-1.126-.19-.376-.196-.56-.475-.56-.852 0-.17.048-.33.144-.477a1.26 1.26 0 0 1 .85-.54c.102-.018.2-.02.265-.02h1.125c.068-.003.057.012.06.019l-.013.078h.092l.483-.58zm13.289.553l-2.371 2.478h1.092v-.103h-.04c-.018 0-.033-.004-.048-.006a.141.141 0 0 1-.041-.012l1.832-1.906zm-14.576.58l-.32.476h2.867c.053.006.072.02.074.03l-.012.084h.098l.472-.59Z\"},\"child\":[]}]})(props);\n};\nexport function SiEtsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.559 2.445c0-.325.033-.52.59-.52h7.465c1.3 0 2.02 1.11 2.54 3.193l.42 1.666h1.27c.23-4.728.43-6.784.43-6.784s-3.196.36-5.09.36H6.635L1.521.196v1.37l1.725.326c1.21.24 1.5.496 1.6 1.606 0 0 .11 3.27.11 8.64 0 5.385-.09 8.61-.09 8.61 0 .973-.39 1.333-1.59 1.573l-1.722.33V24l5.13-.165h8.55c1.935 0 6.39.165 6.39.165.105-1.17.75-6.48.855-7.064h-1.2l-1.284 2.91c-1.005 2.28-2.476 2.445-4.11 2.445h-4.906c-1.63 0-2.415-.64-2.415-2.05V12.8s3.62 0 4.79.096c.912.064 1.463.325 1.76 1.598l.39 1.695h1.41l-.09-4.278.192-4.305h-1.391l-.45 1.89c-.283 1.244-.48 1.47-1.754 1.6-1.666.17-4.815.14-4.815.14V2.45h-.05z\"},\"child\":[]}]})(props);\n};\nexport function SiEventbrite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.542 5.81c2.653-.6 5.3.487 6.775 2.54L5.591 11c.405-2.479 2.298-4.591 4.951-5.19zm6.84 9.746a6.47 6.47 0 0 1-3.919 2.634c-2.67.604-5.335-.501-6.804-2.582l11.763-2.657 1.915-.433L24 11.691a11.57 11.57 0 0 0-.305-2.333C22.205 3.04 15.76-.9 9.303.558 2.846 2.017-1.18 8.322.31 14.642c1.491 6.319 7.935 10.259 14.392 8.8 3.805-.86 6.765-3.402 8.25-6.638z\"},\"child\":[]}]})(props);\n};\nexport function SiEventstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.785 3.414c.428-.251.874-.473 1.339-.666.981-.421 1.995-.659 3.036-.765l1.127 1.274-.525 1.319c-1.02.195-1.979.57-2.879 1.11l-.195.12-.178-1.737-1.725-.66v.005zM5.295 3.724l1.789.69.188 1.71c-.969.713-1.725 1.623-2.264 2.73-.051.099-.096.198-.139.3l-1.26-1.529-2.054.434c.511-1.104 1.201-2.091 2.063-2.96.515-.522 1.07-.979 1.667-1.376l.01.001zm11.782 12.052c.195-.324.354-.652.48-.99l1.938 2.35 3.255-.701c-.187.513-.407 1.015-.662 1.507-.671 1.291-1.553 2.409-2.648 3.36-1.112.962-2.369 1.665-3.771 2.107-.027.009-.056.016-.083.026l-2.411-2.039.629-2.775.051-.021c1.379-.6 2.457-1.529 3.224-2.835v.011zM21.153 4.805c.199.273.384.56.563.854.741 1.248 1.254 2.582 1.539 4.004.271 1.41.315 2.829.12 4.252-.105.684-.255 1.35-.464 2.002l-3.255.699-1.95-2.357c.226-.867.255-1.77.06-2.709-.225-1.114-.72-2.065-1.454-2.85l3.509-.42 1.306-3.476h.026zM1.338 8.584l2.1-.444 1.236 1.509c-.391 1.084-.48 2.21-.285 3.38.045.334.119.656.21.969l-2.22-.505-1.59 1.881c-.193-.833-.283-1.685-.283-2.554.003-1.451.27-2.85.807-4.199l.016-.039.009.002zM4.78 14.518c.319.844.788 1.614 1.409 2.316.465.539.99.975 1.563 1.319l-2.2 1.261.12 2.864c-.726-.451-1.395-.99-2-1.605-1.021-1.05-1.8-2.249-2.34-3.6-.149-.375-.27-.75-.375-1.125l1.635-1.919 2.22.509-.032-.02zM8.232 18.415c.473.236.979.416 1.518.54 1.207.28 2.385.233 3.529-.141l-.625 2.757 2.387 2.02c-1.193.313-2.414.445-3.659.401-1.455-.046-2.853-.354-4.19-.925-.36-.153-.705-.322-1.041-.51l-.119-2.882 2.2-1.26zM20.815 4.364L19.502 7.85l-3.614.435c-.105-.091-.213-.181-.327-.255-1.185-.9-2.52-1.426-4.004-1.575-.346-.029-.675-.029-.99-.029l1.26-3.226L9.1.095c.827-.09 1.637-.104 2.459-.09.49.015.975.051 1.459.113.68.089 1.351.239 2.015.42 1.405.4 2.685 1.034 3.842 1.93.729.559 1.376 1.191 1.94 1.896z\"},\"child\":[]}]})(props);\n};\nexport function SiEvernote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.222 5.393c0 .239-.02.637-.256.895-.257.24-.652.259-.888.259H4.552c-.73 0-1.165 0-1.46.04-.159.02-.356.1-.455.14-.04.019-.04 0-.02-.02L8.38.796c.02-.02.04-.02.02.02-.04.099-.118.298-.138.457-.04.298-.04.736-.04 1.472v2.647zm5.348 17.869c-.67-.438-1.026-1.015-1.164-1.373a2.924 2.924 0 01-.217-1.095 3.007 3.007 0 013-3.004c.493 0 .888.398.888.895a.88.88 0 01-.454.776c-.099.06-.237.1-.336.12-.098.02-.473.06-.65.218-.198.16-.356.418-.356.697 0 .298.118.577.316.776.355.358.829.557 1.342.557a2.436 2.436 0 002.427-2.447c0-1.214-.809-2.29-1.875-2.766-.158-.08-.414-.14-.651-.2a8.04 8.04 0 00-.592-.1c-.829-.1-2.901-.755-3.04-2.605 0 0-.611 2.785-1.835 3.54-.118.06-.276.12-.454.16-.177.04-.374.06-.434.06-1.993.12-4.105-.517-5.565-2.03 0 0-.987-.815-1.5-3.103-.118-.558-.355-1.553-.493-2.488-.06-.338-.08-.597-.099-.836 0-.975.592-1.631 1.342-1.73h4.026c.69 0 1.086-.18 1.342-.42.336-.317.415-.775.415-1.312V1.354C9.05.617 9.703 0 10.669 0h.474c.197 0 .434.02.651.04.158.02.296.06.533.12 1.204.298 1.46 1.532 1.46 1.532s2.27.398 3.415.597c1.085.199 3.77.378 4.282 3.104 1.204 6.487.474 12.775.415 12.775-.849 6.129-5.901 5.83-5.901 5.83a4.1 4.1 0 01-2.428-.736zm4.54-13.034c-.652-.06-1.204.2-1.402.697-.04.1-.079.219-.059.278.02.06.06.08.099.1.237.12.631.179 1.204.239.572.06.967.1 1.223.06.04 0 .08-.02.119-.08.04-.06.02-.18.02-.28-.06-.536-.553-.934-1.204-1.014z\"},\"child\":[]}]})(props);\n};\nexport function SiExcalidraw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9428 19.8058a.1962.1962 0 0 0-.1679-.0337c-1.26-1.8552-2.8727-3.6104-4.4186-5.3152l-.2521-.284c-.0016-.0732-.0667-.1207-.1342-.1504-.0284-.0277-.0562-.0558-.0843-.0837-.0505-.1005-.1685-.1673-.2858-.1005-.4706.2347-.9068.5855-1.3274.9195-.5536.4345-1.1085.8695-1.6296 1.354a5.0577 5.0577 0 0 0-.5879.6185c-.0842.1168-.0168.2172.0843.2672-.3701.3677-.7402.736-1.109 1.1198a.1896.1896 0 0 0-.0506.1342c0 .05.0337.1.0668.1168l.6559.5012v.0169c.9237.9194 2.5538 2.1729 4.2844 3.5268.2515.201.5205.4014.7727.6017.1173.1342.2346.2847.3357.4182.0506.0662.1685.0837.2353.0331.0337.0337.0843.0668.118.1005a.2395.2395 0 0 0 .1004.0337.1534.1534 0 0 0 .1348-.0668.2371.2371 0 0 0 .0331-.1004c.0175 0 .0169.0168.0337.0168a.1915.1915 0 0 0 .1348-.0505l3.058-3.3265c.1198-.1159.0135-.2668-.0005-.2672zm-7.6277-.1336-1.5459-1.1704-.151-.0998c-.0337-.0169-.0674-.0506-.1011-.0668l-.1174-.1005c.6597-.659 1.3297-1.3074 1.9996-1.9557-.4874.4844-1.4622 1.9057-1.2606 2.3733.0023 0 .0186.0419.0674.0842.3704.311.7398.6232 1.109.9357zm4.0997 3.1261-1.277-.97a26.9056 26.9056 0 0 0-1.5795-1.5044c.689.5181 1.2769.9694 1.3611 1.053.6722.585.6379.485 1.0922.8696l.5542.4008c-.0735.103-.151.1477-.151.151zm.3357.2503-.0337-.0168c.0506-.0331.1011-.0668.1517-.1168zM.5885 3.4751c.0331.2172.0843.4344.1174.6354.2015 1.103.4031 2.1061.7726 2.8583l.1516.568c.0506.2173.1342.485.2185.5519.8568.7521 2.1674 1.8714 3.5785 2.9419a.1775.1775 0 0 0 .2185 0s0 .0162.0168.0162a.1528.1528 0 0 0 .118.0506.1912.1912 0 0 0 .1341-.0506c1.798-1.9887 3.1418-3.6267 4.0997-4.9974.0674-.0668.0843-.1673.0843-.251.0668-.0668.1173-.1504.1847-.2004.0668-.0668.0668-.184 0-.2346l-.0168-.0163c0-.033-.0169-.0836-.0506-.1005-.42-.4007-.722-.6848-1.0416-.9856A93.5546 93.5546 0 0 1 6.822 1.9876c-.0169-.0169-.0337-.0337-.0674-.0337-.3358-.1168-1.0248-.2341-1.8817-.3845C3.596 1.3527 1.865 1.0519.3027.583c0 0-.1011 0-.118.0169L.1348.6505C.0498.7139.0222.7058 0 .7167.017.8172.017.884.0506 1.0013c0 .0331.0673.3009.0673.334zm7.1909 4.7802-.0337.0337a.0362.0362 0 0 1 .0337-.0337zM6.553 2.238c.101.1005.5211.5019.6216.5855-.4369-.201-1.5284-.7022-2.0333-.8695.5043.1005 1.1933.201 1.4117.284ZM.7901 1.4027c.2521.4344.4537 1.9388.6553 3.4095-.118-.4682-.2016-.9357-.3027-1.3708C.9917 2.673.84 1.9876.6385 1.3858c.1232 0 .1516.0212.1516.0169zm-.2858-.3683c0-.0162 0-.033-.0169-.033.0843 0 .1342.0168.2016.0499.0006.0057-.1448-.0169-.1847-.0169zM23.6738.8172c.0169-.0662-.3358-.367-.2184-.3845.2527-.0163.2527-.4008 0-.4008-.3358.0169-.6884.0999-1.008.1504-.5878.1168-1.1926.2341-1.781.3671-1.327.2846-2.6375.5855-3.9481.937-.4032.1167-.857.2003-1.2432.4007-.1348.0668-.118.2004-.0506.284-.0337.0169-.0505.0169-.0842.0337-.1174.0169-.2185.0337-.3358.05-.1011.0168-.1516.1004-.1348.201 0 .0162.0169.0499.0169.0661-.7059.9363-1.4954 1.9226-2.3523 2.9757-.84.9694-1.7306 1.9893-2.6212 3.0424-2.8396 3.3096-6.0487 7.0705-9.5936 10.38a.1613.1613 0 0 0 0 .2341c.0169.0163.0337.0331.0506.0331-.0506.0506-.1011.0843-.1517.1336-.0337.0337-.0505.0668-.0505.1005a.364.364 0 0 0-.0668.0837c-.0674.0667-.0674.1835.0169.234.0667.0662.1847.0662.2346-.0168.0175-.0169.0175-.0337.0337-.0337a.2648.2648 0 0 1 .3701 0c.2016.2178.4032.435.588.6186l-.4201-.3508c-.0674-.0668-.1847-.05-.2347.0168-.068.0662-.0511.1835.0163.234l4.4691 3.7273c.0337.0337.0674.0337.118.0337.0505 0 .0842-.0169.1173-.0506l.101-.0999c.017.0163.05.0163.0669.0163.0505 0 .0842-.0163.118-.05 6.0486-6.0505 10.9216-10.6141 16.4997-14.6927.05-.0331.0668-.1.0668-.1505.0674 0 .118-.05.151-.1167 1.0254-3.1255 1.227-5.9007 1.2938-7.2709 0-.0579.0169-.0371.0169-.0668.0168-.0337.0168-.0505.0168-.0505a.9784.9784 0 0 0-.0668-.6186zm-10.82 4.9144c.2684-.3008.5374-.6186.8064-.9026-1.7306 2.2734-4.6033 5.7665-8.67 9.9288C7.7626 11.699 10.5517 8.54 12.854 5.7316ZM5.1414 23.4662c-.0162-.0168-.0162-.0168 0-.0168zm2.5033-2.156c.1348-.1505.2695-.284.4206-.4345 0 0 0 .0163.0168.0163-.2236.1978-.4334.4182-.4374.4182zm.6896-.6686c.0994-.0993.14-.1724.2852-.3177.9917-1.0193 2.0164-2.0393 3.058-3.0755l.0169-.0168c.2521-.2004.5542-.4177.8232-.6186a228.0627 228.0627 0 0 0-4.1833 4.0286zm6.5187-16.732c-.5543.719-1.1759 1.6716-1.697 2.4238-1.6463 2.3733-6.9393 8.1735-7.0566 8.274A1189.6473 1189.6473 0 0 1 1.26 19.204l-.1005.1005c-.0843-.1005-.0843-.251.0168-.3346 7.476-7.0037 12.0132-12.837 13.845-15.3944-.0506.1167-.0843.2166-.1685.334zm2.9064 3.4269c-.6716-.3851-.9905-.9869-.8064-1.5712l.0506-.201a.7753.7753 0 0 1 .0842-.1666c.1848-.301.4538-.5518.7564-.7023.0163 0 .0331 0 .05-.0168-.0169-.0337-.0169-.0837-.0169-.1336.0169-.1005.0843-.1673.2016-.1673.2016 0 .8238.1841 1.059.3845.0669.05.1343.1168.2017.1836.0842.1004.2184.2677.2852.4013.0337.0169.0674.1841.118.2678.0336.1336.0667.284.0505.4176-.0169.0169 0 .1167-.0169.1167a1.6055 1.6055 0 0 1-.2184.6186c-.0307.0307.0064.0119-.0505.0668-.0843.1342-.2016.251-.319.3346-.3869.2672-.8238.3508-1.2606.234-.1105-.0473-.1672-.0667-.1685-.0667zm4.3692 1.4039c0 .0168-.0168.0499 0 .0667-.0337 0-.0505.0169-.0842.0337-1.3274.9689-2.6212 1.9888-3.915 3.0256 1.109-.9868 2.218-1.9894 3.3776-2.9756.3358-.3009.5711-.6854.6379-1.1199l.1685-1.003v-.0332c.0842-.201.4032-.1173.3526.1-.0042-.0012-.1731.795-.5374 1.9057z\"},\"child\":[]}]})(props);\n};\nexport function SiExercism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.35 1.66c-.959 0-1.686.298-2.181.893-.496.595-.744 1.464-.744 2.605v3.474c0 .805-.086 1.424-.259 1.858-.173.434-.493.84-.96 1.218-.138.113-.206.206-.206.278 0 .072.068.165.205.277.476.386.798.794.967 1.225.17.43.253 1.047.253 1.851v3.462c0 1.15.25 2.023.75 2.618.5.595 1.224.892 2.174.892h.882c.379 0 .618-.018.72-.054.1-.036.15-.127.15-.271 0-.201-.133-.334-.399-.398l-.483-.109c-1.063-.241-1.595-1.29-1.595-3.148v-3.293c0-1.247-.302-2.127-.906-2.642l-.23-.193c-.112-.096-.168-.169-.168-.217 0-.056.056-.129.169-.217l.23-.193c.603-.515.905-1.395.905-2.642V5.641c0-1.11.135-1.88.405-2.31.27-.43.832-.762 1.685-.995.258-.073.387-.19.387-.35 0-.217-.29-.326-.87-.326zm14.419.029c-.58 0-.87.108-.87.325 0 .161.128.278.386.35.854.233 1.416.565 1.686.995.27.43.405 1.2.405 2.31v3.294c0 1.246.302 2.126.906 2.641l.229.193c.113.089.17.161.17.217 0 .049-.057.121-.17.217l-.23.193c-.603.515-.905 1.396-.905 2.642v3.293c0 1.858-.532 2.907-1.595 3.149l-.484.108c-.266.064-.398.197-.398.398 0 .145.05.235.15.272.102.036.341.054.72.054h.882c.95 0 1.675-.298 2.174-.893.5-.595.75-1.467.75-2.617v-3.462c0-.805.084-1.422.253-1.852.17-.43.491-.838.967-1.224.137-.113.205-.205.205-.278 0-.072-.068-.165-.205-.277-.468-.378-.788-.784-.961-1.218-.173-.435-.26-1.054-.26-1.858V5.187c0-1.142-.247-2.01-.743-2.606-.495-.595-1.222-.892-2.18-.892zM7.683 9.735c-1.456 0-2.64 1.111-2.64 2.478h1.02c0-.838.727-1.52 1.62-1.52.892 0 1.619.682 1.619 1.52h1.02c0-1.367-1.183-2.478-2.64-2.478zm8.406 0c-1.456 0-2.639 1.111-2.639 2.478h1.02c0-.838.727-1.52 1.62-1.52.892 0 1.62.682 1.62 1.52h1.02c0-1.367-1.185-2.478-2.64-2.478zM9.71 14.36v.561c0 1.277 1.062 2.316 2.366 2.316 1.305 0 2.367-1.039 2.367-2.316v-.56h-.934v.56c0 .877-.76 1.426-1.433 1.426s-1.48-.273-1.48-1.426v-.56z\"},\"child\":[]}]})(props);\n};\nexport function SiExordo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 00-5.514 1.342l2.01 14.062 2.033-5.281a.375.375 0 01.334-.24.375.375 0 01.15.023.375.375 0 01.217.487L9.64 14.529 18.95 2.22a12 12 0 00-3.853-1.81l-.844 2.327-.318.828a.375.375 0 01-.485.215.375.375 0 01-.215-.484l.315-.822.812-2.239A12 12 0 0012 0zM5.785 1.736a12 12 0 00-5.691 8.762l.699.49a.375.375 0 01.09.524.375.375 0 01-.522.09l-.343-.243A12 12 0 000 12a12 12 0 001.129 5.078.375.375 0 01.21-.084l6.05-.422-5.213-3.693a.375.375 0 01-.088-.524.375.375 0 01.28-.158.375.375 0 01.243.069l5.205 3.691-2.03-14.22zm13.764.934L9.275 16.252l10.037-2.57-.126-.493a.375.375 0 01.27-.455.375.375 0 01.075-.011.375.375 0 01.38.279l.128.492 3.951-1.012A12 12 0 0024 12a12 12 0 00-4.451-9.33zm-7.48 1.607a.375.375 0 01.156.024l.826.316.826.315a.375.375 0 01.217.484.375.375 0 01-.485.215l-.826-.315-.828-.314a.375.375 0 01-.217-.484.375.375 0 01.33-.24zm.13 2.13a.375.375 0 01.155.023.375.375 0 01.214.484l-.271.711.389.148a.375.375 0 01.216.485.375.375 0 01-.482.217l-.393-.149-.091.238a.375.375 0 01-.485.215.375.375 0 01-.215-.484l.09-.236-.56-.215a.375.375 0 01-.217-.485.375.375 0 01.33-.24.375.375 0 01.154.024l.56.214.276-.71a.375.375 0 01.33-.24zm11.733 6.864l-3.705.95.127.49a.375.375 0 01-.27.459.375.375 0 01-.457-.27l-.127-.494-9.785 2.506 4.91 1.502a.375.375 0 01.248.467.375.375 0 01-.469.25l-4.922-1.504 1.032 1.17a.375.375 0 01-.034.53.375.375 0 01-.529-.034l-1.328-1.51-.52 5.567A12 12 0 0012 24a12 12 0 002.07-.18l-2.441-2.636-.303.265a.375.375 0 01-.53-.035.375.375 0 01.036-.53l.295-.257-.313-.354a.375.375 0 01.034-.529.375.375 0 01.252-.094.375.375 0 01.277.127l.312.354.383-.334a.375.375 0 01.252-.094.375.375 0 01.278.129.375.375 0 01-.036.53l-.373.327 2.729 2.95a12 12 0 005.164-2.772l-3.264-.998a.375.375 0 01-.25-.469.375.375 0 01.367-.265.375.375 0 01.102.017l3.654 1.118a12 12 0 003.237-6.999zM7.465 17.34l-5.912.562a12 12 0 002.728 3.285l.358-.427a.375.375 0 01.273-.137.375.375 0 01.256.086.375.375 0 01.049.527l-.344.416a12 12 0 002.5 1.418l.467-5.01-.559.678a.375.375 0 01-.527.051.375.375 0 01-.05-.527l.76-.922zm-2.541 1.88a.375.375 0 01.254.087l.681.562.684.563a.375.375 0 01.05.529.375.375 0 01-.529.05l-.681-.564-.682-.562a.375.375 0 01-.05-.528.375.375 0 01.273-.136Z\"},\"child\":[]}]})(props);\n};\nexport function SiExoscale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.608 0 22.392h1.665L12 4.593v2.929l-8.612 14.87H5.11L12 10.507v2.986l-5.167 8.9h1.722L12 16.477v2.929l-1.722 2.985H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiExpedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.067 0H4.933A4.94 4.94 0 0 0 0 4.933v14.134A4.932 4.932 0 0 0 4.933 24h14.134A4.932 4.932 0 0 0 24 19.067V4.933C24.01 2.213 21.797 0 19.067 0ZM7.336 19.341c0 .19-.148.337-.337.337h-2.33a.333.333 0 0 1-.337-.337v-2.33c0-.189.148-.336.337-.336H7c.19 0 .337.147.337.337zm12.121-1.486-2.308 2.298c-.169.168-.422.053-.422-.2V9.57l-6.44 6.44a.533.533 0 0 1-.421.17H8.169a.32.32 0 0 1-.338-.338v-1.697c0-.2.053-.316.169-.422l6.44-6.44H4.058c-.253 0-.369-.253-.2-.421l2.297-2.309c.137-.137.285-.232.517-.232H18.15c.854 0 1.539.686 1.539 1.54v11.478c-.01.231-.095.368-.232.516z\"},\"child\":[]}]})(props);\n};\nexport function SiExpensify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.16 17.52h7.68v-2.28h-4.872v-2.136h4.152v-2.328h-4.152v-2.04h4.872V6.48H8.16v11.04z M21.6 12a9.608 9.608 0 01-2.16 6.072l1.704 1.704A11.958 11.958 0 0024 12c0-2.928-1.056-5.616-2.784-7.68l-1.704 1.704A9.61 9.61 0 0121.6 12z M18.072 19.44a9.608 9.608 0 01-12.048.072L4.32 21.216A11.913 11.913 0 0012 24c2.976 0 5.688-1.08 7.776-2.856l-1.704-1.704z M4.632 18.168A9.613 9.613 0 012.4 12c0-5.304 4.296-9.6 9.6-9.6 2.352 0 4.488.84 6.168 2.232l1.704-1.704A12.02 12.02 0 0012 0C5.376 0 0 5.376 0 12c0 3 1.104 5.76 2.928 7.872l1.704-1.704z\"},\"child\":[]}]})(props);\n};\nexport function SiExpertsexchange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.28.9H0L8.36 12 0 23.1h7.28L15.64 12zM24 .9h-7.28l-2.3 3.06 3.64 4.82zM14.42 20.05l2.3 3.05H24l-5.94-7.88z\"},\"child\":[]}]})(props);\n};\nexport function SiExpo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 20.084c.043.53.23 1.063.718 1.778.58.849 1.576 1.315 2.303.567.49-.505 5.794-9.776 8.35-13.29a.761.761 0 011.248 0c2.556 3.514 7.86 12.785 8.35 13.29.727.748 1.723.282 2.303-.567.57-.835.728-1.42.728-2.046 0-.426-8.26-15.798-9.092-17.078-.8-1.23-1.044-1.498-2.397-1.542h-1.032c-1.353.044-1.597.311-2.398 1.542C8.267 3.991.33 18.758 0 19.77Z\"},\"child\":[]}]})(props);\n};\nexport function SiExpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 18.588a1.529 1.529 0 01-1.895-.72l-3.45-4.771-.5-.667-4.003 5.444a1.466 1.466 0 01-1.802.708l5.158-6.92-4.798-6.251a1.595 1.595 0 011.9.666l3.576 4.83 3.596-4.81a1.435 1.435 0 011.788-.668L21.708 7.9l-2.522 3.283a.666.666 0 000 .994l4.804 6.412zM.002 11.576l.42-2.075c1.154-4.103 5.858-5.81 9.094-3.27 1.895 1.489 2.368 3.597 2.275 5.973H1.116C.943 16.447 4.005 19.009 7.92 17.7a4.078 4.078 0 002.582-2.876c.207-.666.548-.78 1.174-.588a5.417 5.417 0 01-2.589 3.957 6.272 6.272 0 01-7.306-.933 6.575 6.575 0 01-1.64-3.858c0-.235-.08-.455-.134-.666A88.33 88.33 0 010 11.577zm1.127-.286h9.654c-.06-3.076-2.001-5.258-4.59-5.278-2.882-.04-4.944 2.094-5.071 5.264z\"},\"child\":[]}]})(props);\n};\nexport function SiExpressvpn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.705 2.349a4.874 4.874 0 00-4.39 2.797L6.033 7.893h14.606c.41 0 .692.308.692.668 0 .359-.282.666-.692.666H2.592L0 14.772h2.824c-.796 1.72-1.002 2.567-1.002 3.26 0 2.105 1.72 3.62 4.416 3.62h8.239c1.771 0 3.337-1.412 3.337-3.03 0-1.411-1.206-2.515-2.772-2.515H5.596c-.873 0-1.284-.59-.924-1.335h11.859c4.004 0 7.469-3.029 7.469-6.802 0-3.183-2.618-5.621-6.16-5.621z\"},\"child\":[]}]})(props);\n};\nexport function SiEyeem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.673 9.204v-1.04H0v5.722h3.68v-1.048H1.186V11.46h2.158v-1.017H1.186v-1.24zm2.162 6.633l2.532-5.906h-1.24l-.902 2.357-.91-2.357H4.081l1.546 3.604-1.01 2.303zm6.625-3.572v-.445c0-1.232-.75-1.966-1.89-1.966-1.179 0-2.013.78-2.013 2.059 0 1.27.834 2.057 2.043 2.057.926 0 1.684-.536 1.821-1.285l-1.124-.054c-.085.275-.337.436-.727.436-.505 0-.804-.314-.827-.803zm-1.898-1.539c.505 0 .75.314.773.796H9.743c.031-.505.345-.796.82-.796zm6.478-1.524v-1.04h-3.672v5.724h3.68v-1.048h-2.495V11.46h2.158v-1.018h-2.158v-1.24zm5.46.65c-.597 0-.987.269-1.216.629-.26-.406-.697-.627-1.24-.627s-.864.206-1.04.482v-.407h-1.056v3.956h1.117V11.69c0-.474.268-.796.711-.796.406 0 .643.283.643.788v2.205h1.117v-2.333c.046-.399.291-.659.689-.659.428 0 .658.284.658.789v2.204H24V11.46c0-1.002-.597-1.606-1.5-1.606z\"},\"child\":[]}]})(props);\n};\nexport function SiF1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.6 11.24h7.91L19.75 9H9.39c-2.85 0-3.62.34-5.17 1.81C2.71 12.3 0 15 0 15h3.38c.77-.75 2.2-2.13 2.85-2.75.92-.87 1.37-1.01 3.37-1.01zM20.39 9l-6 6H18l6-6h-3.61zm-3.25 2.61H9.88c-2.22 0-2.6.12-3.55 1.07C5.44 13.57 4 15 4 15h3.15l.75-.75c.49-.49.75-.55 1.78-.55h5.37l2.09-2.09z\"},\"child\":[]}]})(props);\n};\nexport function SiF5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12a11.943 11.943 0 002.336 7.1113c.509.004.8594-.111.8984-.33.046-.229.0068-.5825-.0332-.9395a55.067 55.067 0 01-.2344-7.4473c-.609.027-1.1547.055-1.6777.086.02-.471.046-.9188.084-1.3828.517-.05 1.064-.0936 1.666-.1446.026-.406.0568-.7983.0918-1.1953.27-2.43 2.828-3.9162 4.959-4.4902.946-.23 1.5245-.3022 1.9785-.3262.164-.005.3405-.0117.5175-.0117.442 0 .8899.0414 1.1739.2344.46.345.9135.6873 1.3965 1.0683.048.065.1024.1678-.0176.3438-.222.26-.4371.5084-.6621.7754-.13.157-.3454.1164-.5274.0664-.38-.194-.7462-.3728-1.1172-.5528-.672-.299-1.3666-.6061-2.1406-.5761-.483.039-.951.532-1 1.209a101.41 101.41 0 00-.1504 3.2285c1.343-.038 2.6837-.0624 4.0957-.0684l-.002.9453c-.46.206-.8954.413-1.3574.623-.953.011-1.8595.0202-2.7715.0352a125.13 125.13 0 00.1192 7.9317c.024.378.0424.7605.1504 1.0175.13.322.8798.5701 2.5098.6621.007.284.0153.5532.0253.8282-2.655-.077-5.205-.3302-7.248-.6992A11.962 11.962 0 0012 24c6.628 0 12-5.373 12-12a11.942 11.942 0 00-2.0957-6.7754c-.147.607-.2252 1.2378-.3672 1.8828-1.8-.234-3.9131-.4053-6.2871-.4883-.191.602-.3711 1.192-.5781 1.836 3.973.245 5.9048 1.2924 7.0508 2.5254 1.113 1.248 1.3501 2.6262 1.2851 3.9062-.143 2.081-1.0613 3.3971-2.3203 4.3711-1.274.96-2.8139 1.436-4.0469 1.539-1.819.137-4.2515-.2962-4.7695-.6132a178.03 178.03 0 01-.9492-2.2012c-.08-.166-.1294-.3371.0976-.5351.354-.339.6928-.6667 1.0508-1.0137.158-.155.3338-.2991.4668-.0781.489.755.9473 1.4477 1.4063 2.1367.522.77 1.3167 1.4695 3.0527 1.3535 1.459-.13 2.5675-1.2333 2.6855-2.4473.128-2.246-2.1446-3.8396-8.0546-4.3496a2571.27 2571.27 0 013.123-9.371c1.404.065 2.7043.1798 3.9453.3398.919.116 1.772.3287 2.627.4277A11.973 11.973 0 0012 0zm10.0195 21.1113c-.5006 0-.9082.4076-.9082.9082 0 .5007.4076.9082.9082.9082.5007 0 .9082-.4075.9082-.9082 0-.5006-.4075-.9082-.9082-.9082zm0 .127c.4318 0 .7793.3495.7793.7812a.7776.7776 0 01-.7793.7793c-.4317 0-.7812-.3475-.7812-.7793a.7809.7809 0 01.7812-.7812zm-.3652.2773v.9961h.1738v-.3926h.1387c.092 0 .1583.0112.1953.0332.062.037.0938.1146.0938.2286v.08l.002.0293a.07.07 0 01.0039.0118c0 .005-.0001.0068.0039.0098h.162l-.0058-.0137a.106.106 0 01-.0078-.0488.6846.6846 0 01-.004-.0743v-.0742a.276.276 0 00-.0527-.1543c-.037-.053-.0948-.0846-.1718-.0976A.408.408 0 0022.328 22c.066-.042.0977-.1103.0977-.1973 0-.124-.0503-.21-.1543-.252a.752.752 0 00-.2695-.035zm.1738.123h.1504a.45.45 0 01.211.0372c.042.024.0664.0735.0664.1445a.153.153 0 01-.1036.1563.451.451 0 01-.166.0214h-.1582z\"},\"child\":[]}]})(props);\n};\nexport function SiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z\"},\"child\":[]}]})(props);\n};\nexport function SiFacebookgaming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h15.67v-7.35H7.35v-9.3H24V0zm8.33 15.68h8.32V24H24V8.32H8.33Z\"},\"child\":[]}]})(props);\n};\nexport function SiFacebooklive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4777 7.8108a.4611.4611 0 0 0-.462.462v7.452a.461.461 0 0 0 .462.462H23.538v.0024a.4611.4611 0 0 0 .462-.462V8.2728a.4611.4611 0 0 0-.462-.462zm-5.2862.0072C1.879 7.818 0 9.6922 0 12.007c0 2.0922 1.533 3.8267 3.5376 4.1394V13.218h-1.071v-1.211h1.071v-.924c0-1.0497.6208-1.6326 1.578-1.6326.4573 0 .9336.0877.9336.0877v1.0236h-.5237c-.5213 0-.6871.327-.6871.6563v.7866h1.1634l-.1872 1.2108H4.836v2.9286c2.0093-.3104 3.5447-2.0448 3.5447-4.137 0-2.315-1.8766-4.1891-4.1892-4.1891zm7.1676 2.4073h.635v2.9926h1.6278v.5544H11.359zm2.9452 0h.635v3.547h-.635zm1.2439 0h.7014l.8932 2.8078h.0427l.8862-2.8078h.6752l-1.2273 3.547h-.7322zm3.81.0024h2.296v.5473h-1.6609v.9407h1.5709v.5165h-1.5709v.9928h1.661v.5497h-2.296Z\"},\"child\":[]}]})(props);\n};\nexport function SiFaceit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.999 2.705a.167.167 0 00-.312-.1 1141.27 1141.27 0 00-6.053 9.375H.218c-.221 0-.301.282-.11.352 7.227 2.73 17.667 6.836 23.5 9.134.15.06.39-.08.39-.18z\"},\"child\":[]}]})(props);\n};\nexport function SiFacepunch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.388 0 0 5.388 0 12s5.388 12 12 12 12-5.388 12-12S18.629 0 12 0zm0 21.314c-5.133 0-9.297-4.164-9.297-9.297S6.867 2.72 12 2.72s9.297 4.164 9.297 9.297-4.164 9.297-9.297 9.297zM10.028 12l1.48 1.479-1.922 1.92-1.478-1.478-1.428 1.444-1.92-1.92L6.203 12l-1.377-1.377 1.92-1.904 1.36 1.377 1.411-1.41 1.921 1.903L10.03 12zm9.162-1.462-1.411 1.411 1.479 1.479-1.92 1.904-1.48-1.48-1.444 1.446-1.904-1.921 1.445-1.428-1.377-1.377 1.904-1.92 1.376 1.376 1.411-1.41 1.92 1.92z\"},\"child\":[]}]})(props);\n};\nexport function SiFairphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.25 12.358c.124-.306.25-.612.38-.918.058.306.12.613.185.918H3.25zm.129-1.943a46.426 46.426 0 0 0-1.396 3.151h.649a.234.234 0 0 0 .216-.154c.05-.137.102-.273.155-.41h.957l.103.411a.2.2 0 0 0 .195.155h.667a38.402 38.402 0 0 1-.752-3.152l-.794-.001zm1.935 3.152h.784c.062-1.044.17-2.089.321-3.134h-.783a36.666 36.666 0 0 0-.322 3.134m3.23-2.018c-.029.25-.201.407-.467.407h-.388c.028-.273.06-.546.094-.819h.384c.262 0 .41.134.378.402v.009m.793-.04c0-.008.002-.016.003-.023.037-.318-.026-.56-.172-.734-.17-.206-.461-.318-.871-.318H6.882c-.035.234-.067.468-.096.703h.218c-.103.81-.178 1.62-.226 2.43h.78c.02-.323.043-.646.07-.97h.278c.128.285.26.57.394.856a.2.2 0 0 0 .183.115h.756a53.18 53.18 0 0 1-.542-1.137 1.11 1.11 0 0 0 .64-.922m2.093.062c-.031.264-.212.43-.487.43h-.274c.03-.293.062-.572.099-.865h.27c.283 0 .427.134.393.42l-.001.014m-.257-1.137H9.866c-.033.23-.066.473-.096.703h.217a36.478 36.478 0 0 0-.224 2.432h.78c.018-.303.04-.606.065-.909h.3c.669-.009 1.225-.367 1.31-1.12l.002-.017c.083-.703-.326-1.088-1.046-1.088m3.032 1.19h-.866c.044-.396.096-.793.154-1.19h-.784a36.105 36.105 0 0 0-.32 3.134h.784c.023-.403.053-.806.09-1.209h.867c-.037.403-.067.806-.09 1.21h.788a36.75 36.75 0 0 1 .321-3.135h-.789c-.058.397-.11.794-.154 1.19m6.068.386a52.412 52.412 0 0 1-.847-1.631l-.718.12a36.018 36.018 0 0 0-.312 3.07h.773c.031-.547.076-1.095.133-1.642.278.516.566 1.032.865 1.548a.188.188 0 0 0 .163.094h.59a36.75 36.75 0 0 1 .32-3.134h-.772c-.076.526-.142 1.051-.196 1.576M.941 11.713c.02-.185.042-.37.066-.556h1.427c.031-.24.064-.482.1-.724H.104c-.036.242-.069.483-.1.725h.218A35.93 35.93 0 0 0 0 13.568h.784c.023-.386.052-.773.087-1.16h.845a.247.247 0 0 0 .236-.221c.016-.158.032-.315.05-.473H.94zm21.461 1.147c.015-.18.03-.359.047-.538h.859a.247.247 0 0 0 .237-.221c.014-.149.03-.297.047-.446h-1.075c.02-.172.04-.343.062-.515h1.324c.03-.235.063-.471.097-.707h-2.317c-.035.236-.067.471-.097.707h.218a35.363 35.363 0 0 0-.225 2.427h2.119c.013-.236.03-.471.048-.707h-1.344zm-5.079-.795-.005.049c-.054.542-.293.782-.66.782-.36 0-.59-.332-.535-.874 0-.016.003-.033.005-.049.056-.542.349-.869.71-.869a.46.46 0 0 1 .408.225l-.11.106c.093.15.217.357.188.63m.414-1.202.108-.105c-.212-.243-.52-.383-.903-.383-.818 0-1.52.658-1.616 1.593l-.007.068c-.095.94.463 1.59 1.286 1.59.822 0 1.419-.572 1.513-1.508l.007-.067a1.545 1.545 0 0 0-.388-1.188\"},\"child\":[]}]})(props);\n};\nexport function SiFalco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.812 0c-.23.012-.416.112-.503.329-.155.382.043.66.298.916l10.186 10.17c.16.16.336.31.523.37l.742-.742c-.06-.187-.212-.363-.373-.523C10.291 7.129 6.897 3.739 3.5.35 3.31.16 3.107-.01 2.812 0Zm.95 4.485a.543.543 0 0 0-.434.178c-.265.262-.246.573-.037.867.094.128.198.248.312.36 2.439 2.436 4.88 4.87 7.323 7.302.165.164.363.333.578.404l.738-.738c-.094-.268-.316-.447-.51-.641a4831.46 4831.315 0 0 0-6.246-6.24c-.431-.43-.861-.865-1.306-1.281a.711.711 0 0 0-.418-.211ZM19.33 8.262a.301.301 0 0 0-.213.078c-1.708 1.699-3.417 3.395-5.127 5.092l-8.027 8.014-.02-.02a56.5 56.498 0 0 0-1.36 1.401c-.233.25-.32.57-.05.86.282.303.623.284.934.054.233-.172.434-.388.64-.594l.543-.54 1.506-1.503c3.656-3.647 7.307-7.298 10.953-10.955l2.637-.46c-.377-.38-1.794-1.44-2.416-1.427Zm-14.78.803a.582.582 0 0 0-.345.193c-.208.228-.206.492-.045.733.15.217.32.42.508.605a773.152 773.129 0 0 0 3.486 3.484c.394.393.787.787 1.195 1.164.09.087.2.15.32.184l.774-.774c-.05-.198-.184-.356-.332-.503a3008.15 3008.06 0 0 0-4.724-4.715 1.443 1.443 0 0 0-.452-.315.725.725 0 0 0-.384-.056Zm15.137 2.56c-.27.018-.485.208-.687.41l-9.86 9.844-.726.724c-.174.175-.352.367-.408.575-.045.164-.013.34.156.521.423.455.82.13 1.154-.205 3.568-3.559 7.134-7.117 10.7-10.68.169-.168.339-.34.357-.6a.562.562 0 0 0-.395-.542.71.71 0 0 0-.29-.046zm.057 3.58c-.226.012-.438.178-.625.364-1.357 1.346-2.706 2.702-4.063 4.05-.474.47-.452.91.018 1.37.796.782 1.59 1.565 2.363 2.37.433.45.907.732 1.518.613.14.01.249.03.353.02.446-.042 1.01-.012 1.024-.626.014-.633-.535-.636-.995-.619-.466.017-.809-.174-1.119-.5-.476-.5-.952-1.004-1.466-1.463-.456-.406-.391-.703.023-1.1 1.091-1.05 2.152-2.132 3.217-3.207.314-.318.593-.697.17-1.096-.143-.134-.283-.183-.418-.176z\"},\"child\":[]}]})(props);\n};\nexport function SiFalcon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.929 19.487c0 .035.264.2.592.364 1.578.835 2.55 1.742 2.914 2.75.164.435.171.592.028.92-.178.436-.207.429.95.393 1.043-.035 1.657-.15 1.657-.314 0-.078-.857-.885-1.171-1.093a1.431 1.431 0 0 1-.186-.15 7.636 7.636 0 0 0-.321-.257 11.96 11.96 0 0 1-.372-.278 6.126 6.126 0 0 0-.25-.193l-.45-.35a4.642 4.642 0 0 0-.535-.357c-.328-.178-.528-.307-.571-.357-.05-.057-1.036-.593-1.5-.814-.214-.1-.45-.214-.514-.25-.157-.086-.271-.093-.271-.014zm-5.75-1.536a4.78 4.78 0 0 0-.056.415c-.043.5-.379 1.164-.764 1.52-.465.436-.75.572-.993.48a3.353 3.353 0 0 0-.628-.115c-.357-.043-.486-.022-.657.078-.186.108-.222.179-.222.4 0 .315-.007.307.257.165a1.02 1.02 0 0 1 .3-.108c.15 0 .093.143-.093.229-.207.093-.264.271-.278.828-.007.422.121.586.236.286.035-.093.17-.221.3-.293A1.42 1.42 0 0 0 8 21.43c.186-.314.286-.364.286-.15 0 .457.236.479.436.036.121-.243.186-.307.271-.271.236.1.515.114.615.028.1-.086.092-.114-.043-.257-.086-.093-.15-.179-.129-.193.157-.114.5-.193.85-.193.628 0 .714-.107.714-.914 0-.82-.214-1.406-.564-1.556-.179-.072-.236-.079-.257-.008zM22.535 1.062a1.22 1.22 0 0 0-.193.315c-.414.885-1.785 1.72-3.949 2.392-.193.064-.535.164-.75.236-.214.064-.635.2-.928.285-3.635 1.107-4.27 1.678-5.57 4.963-.586 1.472-.893 1.964-1.5 2.364-.507.343-.92.457-2.07.6-1.829.221-2.536.436-3.107.943-.35.3-.464.614-.464 1.242 0 .286-.029.536-.057.557-.036.022-.1.214-.15.436-.072.3-.072.45-.007.643.1.292.378.535.628.535.178 0 .186-.05.05-.371-.029-.079.014-.179.136-.307.157-.157.235-.179.72-.179.558 0 .744-.057 1.008-.3.15-.135.157-.135.357.086.421.464 1.52 1.121 2.892 1.735.65.293 1.057.643 1.364 1.186.207.357.236.457.236.97 0 .836-.3 1.408-.886 1.68-.1.05-.243.113-.307.15-.071.035-.336.063-.593.063H8.93l-.15.336a8.087 8.087 0 0 1-.25.528c-.078.158-.078.208 0 .322.093.121.122.107.464-.243.358-.364.579-.471.579-.271 0 .057-.129.2-.279.321-.35.278-.4.478-.235.95.135.385.314.5.357.235.014-.078.121-.235.235-.35.115-.107.208-.242.208-.292 0-.05.05-.129.107-.179.157-.128.221.1.121.457-.064.243-.057.314.036.414.071.079.093.186.064.307-.029.129-.014.179.05.179.1 0 .336-.221.336-.314 0-.029.064-.15.15-.264.15-.215.157-.258.021-1.014-.021-.143-.014-.265.014-.265.15 0 .664.329.693.443.05.186.264.079.264-.136a.802.802 0 0 0-.428-.678c-.236-.1-.279-.257-.086-.314.45-.143.871-.4 1.25-.779.457-.442.535-.535.828-.964.407-.592.786-.857 1.221-.857.6 0 2.485.843 3.942 1.764.679.429 2.007 1.357 2.228 1.557.043.043.286.221.543.407.257.179.7.521.986.764.285.236.542.436.57.436.236 0 .315-.614.108-.8a5.417 5.417 0 0 0-.557-.343c-.521-.293-1.528-.971-1.964-1.335-.985-.807-2.242-2.385-3.078-3.864a9.517 9.517 0 0 1-.278-.485c-.6-1.05-1.743-2.385-2.05-2.385-.121 0-.121-.008.072-.929.057-.293.142-.792.185-1.107.129-.87.314-1.863.45-2.356.386-1.45 1.207-2.457 2.7-3.3 2.092-1.192 2.927-1.928 3.527-3.12.322-.636.386-.793.579-1.507.1-.364.221-1.25.171-1.25a.391.391 0 0 0-.1.057zM3.496.484C1.839 2.198 1.003 3.926 1.003 5.647c0 .393.029.729.072.75.043.021.071.114.071.2 0 .2.172.693.4 1.157.3.621.736 1.057 1.921 1.914.929.67 1.443 1.428 1.614 2.385l.093.514.257-.107c.65-.279 1.15-.379 2.642-.536.957-.1 1.328-.243 1.771-.678.629-.629.329-1.036-1.635-2.2-2.114-1.257-2.87-1.842-3.692-2.863-.657-.822-.993-1.5-1.157-2.343-.157-.785.057-2.028.536-3.142.135-.328.25-.614.25-.642 0-.15-.236.007-.65.428Z\"},\"child\":[]}]})(props);\n};\nexport function SiFampay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.828 23.971a.206.206 0 01-.233-.016c-.646-.407-3.892-2.571-6.089-5.288-1.34-1.677 3.783-4.173 3.783-3.844.005 1.782.5 6.467 2.603 8.747a.268.268 0 01-.013.356l-.051.035 M13.48 13.082l4.659-2.119a4.386 4.386 0 002.542-2.636l.581-1.634a.174.174 0 00-.11-.222.171.171 0 00-.125 0l-8.897 3.771.033-.142a.902.902 0 01.439-.626c1.505-.927 6.903-3.686 6.903-3.686a6.592 6.592 0 003.53-4.112L23.444.28a.225.225 0 00-.153-.268.222.222 0 00-.144 0s-8.123 3.156-10.734 4.425C9.8 5.707 7.126 7.34 6.2 12.142c-.376 1.945.313 3.592 1.607 5.46-.006-1.836 4.637-4.02 5.673-4.52z M2.026 4.86C1.289 4.299.662 4.25.553 4.299c-.049-.174.846-.597.956-.707.362-.346.565-.804.988-1.098.863-.611 1.93-.424 2.824.064.455.25 1.709 1.071 1.728 1.112A14.02 14.02 0 018.945 5.38a.241.241 0 010 .314c-.211.203-.418.348-.675.565-1.703 1.43-2.73 5.24-2.746 5.711V12s-.999-5.38-3.498-7.14z\"},\"child\":[]}]})(props);\n};\nexport function SiFandango (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.664 6.956L8.05 8.496 9.19 12.72l5.615-1.54L15.95 15.4l-5.615 1.49 1.093 4.224-5.615 1.49L4.42 17.54c.846-.995 1.194-2.386.846-3.728-.398-1.342-1.392-2.385-2.584-2.832L1.29 5.763 12.57 2.78zm7.106-.198L18.932.05 0 5.068l1.838 6.758c1.093.2 2.087 1.043 2.385 2.236.348 1.193-.1 2.385-.944 3.18l1.788 6.708L24 18.882l-1.79-6.708c-1.142-.2-2.086-1.043-2.434-2.236-.298-1.193.1-2.435.994-3.18z\"},\"child\":[]}]})(props);\n};\nexport function SiFandom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.123.008a.431.431 0 00-.512.42v9.746L4.104 6.666a.432.432 0 00-.66.064.428.428 0 00-.071.239v10.064a2.387 2.387 0 00.701 1.694l4.565 4.57a2.4 2.4 0 001.693.703h3.34c.635 0 1.242-.252 1.691-.701l4.565-4.572a2.394 2.394 0 00.699-1.694V13.41a2.39 2.39 0 00-.7-1.693L8.343.125a.427.427 0 00-.219-.117zM9.646 12.51a.719.719 0 01.508.21l1.848 1.85 1.844-1.85a.714.714 0 011.015 0l1.32 1.321a.724.724 0 01.212.508v1.406a.72.72 0 01-.21.508l-3.68 3.7a.72.72 0 01-1.019 0l-3.668-3.7a.716.716 0 01-.209-.506v-1.408a.71.71 0 01.211-.506l1.32-1.322a.713.713 0 01.508-.211Z\"},\"child\":[]}]})(props);\n};\nexport function SiFanfou (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.96.0655 1.369 2.082c-3.2662.9041-6.8623 1.5142-10.7875 1.8302v3.8061H22.736c-.448 4.4272-1.616 7.9444-3.5041 10.5525 1.239 1.475 2.8271 2.788 4.7682 3.9381l-1.7 1.6601a25.133 25.133 0 0 1-4.5823-3.7402 20.9459 20.9459 0 0 1-4.9932 3.7402l-1.528-1.726c2.143-1.2121 3.8151-2.4762 5.0192-3.7932-1.599-2.5201-2.6441-5.2913-3.1352-8.3124h-.54c.07 5.5593-.892 10.1604-2.8851 13.8056l-2.002-1.396c1.73-3.0302 2.594-7.2944 2.594-12.7916V1.8966c4.2872-.167 8.1904-.776 11.7125-1.8301Zm-1.8972 10.0384h-4.6102c.35 2.3001 1.115 4.4132 2.2921 6.3353 1.184-1.861 1.9571-3.9732 2.3181-6.3353zM9.4054 3.6227c-.123 1.984-.51 4.0441-1.159 6.1772l-2.1461-.618c.308-.887.584-1.9551.83-3.2002H3.583C2.96 7.4998 2.314 8.8299 1.646 9.9709L0 8.18C1.186 6.0817 2.138 3.3845 2.8581.0924l2.2401.646a63.5656 63.5656 0 0 1-.764 2.8842Zm-.961 15.7546c-1.6161 1.616-3.1532 2.9021-4.6102 3.8602L2.45 21.3274c.255-.22.382-.554.382-1.002V8.4308h2.3451v10.8404c.623-.483 1.396-1.185 2.3181-2.107z\"},\"child\":[]}]})(props);\n};\nexport function SiFantom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.9604.2299c.5833-.3065 1.4709-.3065 2.0542 0l5.9522 3.1279c.3513.1846.5442.4597.5788.7437h.0057V19.824c-.0077.3097-.2025.6174-.5845.8182l-5.9522 3.1279c-.5833.3065-1.4708.3065-2.0542 0l-5.9521-3.1279c-.3804-.1999-.563-.5098-.572-.8182a1.1165 1.1165 0 0 1-.0002-.0767V4.2025a.7965.7965 0 0 1-.0002-.051l.0004-.05h.0026c.0265-.2871.2106-.5552.5694-.7437Zm7.6538 12.643-5.5996 2.9427c-.5833.3066-1.4709.3066-2.0542 0l-5.5874-2.936v6.9132l5.5874 2.9207c.3155.1678.643.3313.9632.3521l.064.0021c.3336.0011.6575-.1674.986-.327l5.6406-2.973Zm-15.146 6.6093c0 .6022.0703.9982.21 1.2772.1158.2312.2896.4078.6068.6229l.0181.0122a7.138 7.138 0 0 0 .2397.153l.1101.067.3381.2032-.4849.7976-.3784-.2275-.0636-.0388a8.4255 8.4255 0 0 1-.2847-.1817c-.9042-.6065-1.2414-1.2677-1.248-2.6433l-.0001-.0419Zm8.0507-10.8233a.855.855 0 0 0-.121.0514l-5.9521 3.1279a.735.735 0 0 0-.0179.0097l-.005.0029.0093.0053.0136.0073 5.9522 3.1279a.8546.8546 0 0 0 .121.0514zm.9372 0v6.3839a.8538.8538 0 0 0 .121-.0514l5.9521-3.128a.8117.8117 0 0 0 .0179-.0096l.005-.003-.0094-.0052-.0136-.0073-5.9521-3.128a.8534.8534 0 0 0-.121-.0513zm6.1581-3.4421-5.3394 2.806 5.3394 2.8059zM5.373 5.2234v5.5987L10.7 8.0227Zm7.204-4.1692c-.3095-.1627-.8695-.1627-1.179 0L5.4458 4.182a.6432.6432 0 0 0-.0179.0097l-.005.003.0093.0052.0136.0074 5.9522 3.1279c.3095.1626.8695.1626 1.179 0l5.9522-3.128a.643.643 0 0 0 .0179-.0097l.005-.0029-.0094-.0053-.0136-.0073zm6.9169.343.3784.2273.0636.0389c.1094.0672.2.125.2847.1817.9042.6065 1.2414 1.2677 1.248 2.6433l.0001.0419h-.9368c0-.6024-.0704-.9983-.2101-1.2773-.1158-.2312-.2896-.4078-.6068-.6228l-.0181-.0122a7.2984 7.2984 0 0 0-.2397-.1532l-.1101-.067-.3381-.203z\"},\"child\":[]}]})(props);\n};\nexport function SiFarcaster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.24.24H5.76C2.5789.24 0 2.8188 0 6v12c0 3.1811 2.5789 5.76 5.76 5.76h12.48c3.1812 0 5.76-2.5789 5.76-5.76V6C24 2.8188 21.4212.24 18.24.24m.8155 17.1662v.504c.2868-.0256.5458.1905.5439.479v.5688h-5.1437v-.5688c-.0019-.2885.2576-.5047.5443-.479v-.504c0-.22.1525-.402.358-.458l-.0095-4.3645c-.1589-1.7366-1.6402-3.0979-3.4435-3.0979-1.8038 0-3.2846 1.3613-3.4435 3.0979l-.0096 4.3578c.2276.0424.5318.2083.5395.4648v.504c.2863-.0256.5457.1905.5438.479v.5688H4.3915v-.5688c-.0019-.2885.2575-.5047.5438-.479v-.504c0-.2529.2011-.4548.4536-.4724v-7.895h-.4905L4.2898 7.008l2.6405-.0005V5.0419h9.9495v1.9656h2.8219l-.6091 2.0314h-.4901v7.8949c.2519.0177.453.2195.453.4724\"},\"child\":[]}]})(props);\n};\nexport function SiFareharbor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.4746 3.9355c.0004.0135.002.0276.002.041 0 .7804-.6318 1.4122-1.4122 1.4122-.0197 0-.039-.0012-.0585-.002v1.4746c.0195-.0018.0385-.0058.0585-.0058.3534 0 .6387.2873.6387.6406a.6379.6379 0 0 1-.6387.6387c-.02 0-.039-.004-.0585-.0059v1.168c.0195-.0018.0385-.0059.0585-.0059a.6379.6379 0 0 1 .6387.6387c0 .3533-.2853.6406-.6387.6406-.02 0-.039-.004-.0585-.0059v1.166c.0195-.0018.0385-.0059.0585-.0059.3534 0 .6387.2873.6387.6407a.6379.6379 0 0 1-.6387.6386c-.02 0-.039-.004-.0585-.0059v1.4317c.0195-.0008.0388-.004.0585-.004.7804 0 1.4122.6338 1.4122 1.4141v.0117h19.0879v-.0117c0-.7803.6317-1.414 1.412-1.414.0064 0 .0114.0019.0176.002v-1.4258c-.0063.0002-.0112.002-.0175.002-.3534 0-.6407-.2854-.6407-.6387a.6412.6412 0 0 1 .6407-.6406c.0064 0 .0112.0018.0175.002v-1.1582c-.0063.0002-.0112.002-.0175.002a.6412.6412 0 0 1-.6407-.6406c0-.3534.2873-.6387.6407-.6387.0064 0 .0112.0018.0175.002V8.1327c-.0063.0002-.0112.002-.0175.002-.3534 0-.6407-.2854-.6407-.6387a.6412.6412 0 0 1 .6407-.6406c.0064 0 .0112.0017.0175.002V5.3886h-.0175c-.7804 0-1.4121-.6318-1.4121-1.4121 0-.0135.0016-.0276.002-.041zm9.5176.832c.035.0001.07.0088.1016.0274l3.3906 2.0059a.1996.1996 0 0 1 .121.1836.2015.2015 0 0 1-.2011.2011h-.8204v3.6094h1.0176v1.0567l-.6406.6015v1.795h5.371c.187 0 .34-.174.34-.3887V6.039c0-.2148-.153-.3887-.34-.3887h-4.7948V5.248h4.795c.4082 0 .7402.355.7402.791v7.8204c0 .436-.332.791-.7403.791H3.6836c-.4082 0-.7402-.355-.7402-.791V6.039c0-.4361.332-.791.7402-.791h4.7187v.4023H3.6836c-.1868 0-.3398.174-.3398.3887v7.8203c0 .2147.153.3886.3398.3886h5.3281v-1.8046l-.6308-.5918v-1.0567h1.0175V7.1855H8.582a.2032.2032 0 0 1-.1953-.1484.1993.1993 0 0 1 .0918-.2246l3.4121-2.0176a.1977.1977 0 0 1 .1016-.0273zm0 .4337-2.6777 1.582h5.3535zm7.1445 1.662a.203.203 0 0 1 .166.1485.2001.2001 0 0 1-.1406.2461l-3.2305.877a.2007.2007 0 0 1-.0527.0078.2008.2008 0 0 1-.1934-.1485.2002.2002 0 0 1 .1407-.246l3.2304-.879a.1993.1993 0 0 1 .0801-.0058zM5.0312 6.916a.202.202 0 0 1 .0801.0059l2.9278.8261a.201.201 0 0 1-.0547.3946.1996.1996 0 0 1-.0547-.0078l-2.9258-.8262a.201.201 0 0 1-.1387-.248.1983.1983 0 0 1 .166-.1446Zm4.7696.2695v3.6094h1.996v-.6094c-.5804-.0931-1.0253-.5967-1.0253-1.203 0-.6064.4449-1.11 1.0254-1.2032v-.5938zm2.3984 0v.5977c.5734.0992 1.0117.5979 1.0117 1.1992 0 .6014-.4383 1.102-1.0117 1.2012v.6113h1.9824V7.1855Zm-.207.9786c-.451 0-.8184.3674-.8184.8183 0 .451.3674.8184.8184.8184s.8164-.3674.8164-.8184-.3654-.8183-.8164-.8183zm-7.8477.6308h3.4297a.1998.1998 0 0 1 .1992.2012.1999.1999 0 0 1-.1992.2012H4.1445a.2015.2015 0 0 1-.2011-.2012.2015.2015 0 0 1 .2011-.2012zm12.1465 0h3.4297a.2015.2015 0 0 1 .2012.2012.2015.2015 0 0 1-.2012.2012H16.291a.2015.2015 0 0 1-.2012-.2012.2015.2015 0 0 1 .2012-.2012zm-8.2832.9024a.2011.2011 0 0 1 .17.1425.2009.2009 0 0 1-.1348.25l-2.7207.8204a.2043.2043 0 0 1-.0586.0078.2021.2021 0 0 1-.1934-.1426.2008.2008 0 0 1 .1348-.25l2.7226-.8203a.2033.2033 0 0 1 .0801-.0078zm7.8496 0a.204.204 0 0 1 .0801.0078l3.0762.9238a.2009.2009 0 0 1 .1347.25.2018.2018 0 0 1-.1933.1426.1912.1912 0 0 1-.0567-.0078l-3.0761-.9238a.201.201 0 0 1-.1348-.25.2007.2007 0 0 1 .17-.1426zm-7.0762 1.5v.4804l.5157.4825h5.3886l.5157-.4825v-.4804H9.3984Zm.631 1.3652v1.1563l3.0038-1.1563Zm4.121 0-4.0937 1.5762c-.009.0034-.0184.0018-.0274.0039v.1054h2.5352l2.6113-1.1074v-.5781Zm1.0254 1.0137-1.6074.6718h1.6074zM0 17.6172v2.4121h.5078v-.9336h1.1777v-.4824H.5078v-.5137h1.336v-.4824zm9.5195 0v2.4121h.4844v-1.0117h1.002v1.0117h.5058v-2.4121h-.5058v.9433h-1.002v-.9433zm10.9434.3476c-.6406 0-1.1074.4721-1.1074 1.0489v.0059c0 .5766.461 1.0449 1.1015 1.0449.6407 0 1.1055-.4742 1.1055-1.0508v-.0059c0-.5766-.459-1.043-1.0996-1.043zm-17.5645.0215-.8906 2.043h.4668l.1895-.455h.877l.1894.455h.4785l-.8906-2.043zm9.9805 0-.8887 2.043h.4649l.1894-.455h.879l.1894.455h.4766l-.8887-2.043ZM4.707 18v2.0293h.457v-.6504h.3575l.4453.6504H6.5l-.5059-.7246c.264-.0955.4454-.3015.4454-.629V18.67c0-.4173-.2939-.6699-.7832-.6699Zm2.4395 0v2.0293h1.582v-.3984h-1.127v-.4258h.9786v-.3965h-.9785v-.4121h1.1113V18Zm7.541 0v2.0293h.457v-.6504h.3594l.4453.6504h.5332l-.5078-.7246c.264-.0955.4453-.3015.4453-.629V18.67c0-.4173-.2938-.6699-.7832-.6699Zm2.3828 0v2.0293h.9863c.4686 0 .7774-.1857.7774-.5566v-.006c0-.2723-.1485-.4082-.3887-.498.1483-.081.2735-.2085.2735-.4375v-.0059c0-.3187-.2616-.5253-.6856-.5253Zm5.1348 0v2.0293h.457v-.6504h.3594l.4453.6504H24l-.5078-.7246c.264-.0955.4453-.3015.4453-.629V18.67c0-.4173-.2938-.6699-.7832-.6699Zm-1.748.377c.3678 0 .6269.289.6269.6367v.0059c0 .3476-.2534.6328-.6211.6328-.3677 0-.629-.2909-.629-.6387v-.0059c0-.3478.2555-.6308.6231-.6308zm-2.9434.0136h.4511c.1928 0 .3008.0758.3008.209v.006c0 .1506-.1285.2148-.33.2148h-.422zm-12.3496.0117h.453c.2225 0 .3595.0998.3595.291v.006c0 .171-.1272.287-.3496.287h-.463Zm9.9804 0h.4551c.2224 0 .3574.0998.3574.291v.006c0 .171-.1271.287-.3496.287h-.4629zm7.5176 0h.455c.2225 0 .3575.0998.3575.291v.006c0 .171-.1271.287-.3496.287h-.4629zm-19.5605.1192.2773.6582h-.5527Zm9.9824 0 .2754.6582h-.5508zm4.4297.67h.5293c.2343 0 .3379.0844.3379.2206v.006c0 .1506-.1225.2187-.3243.2187h-.543z\"},\"child\":[]}]})(props);\n};\nexport function SiFarfetch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.248V6.749H13.586c-3.062 0-4.737 1.837-4.737 4.488v2.231H4.321V8.599c0-3.425.332-5.074 4.212-5.074H24V0H6.259C2.336 0 0 2.589 0 6.386V24h4.321v-7.033h4.527V24h4.339v-7.033H24v-3.499H13.188v-1.155c0-1.461.232-2.064 2.257-2.064H24z\"},\"child\":[]}]})(props);\n};\nexport function SiFastapi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .0387C5.3729.0384.0003 5.3931 0 11.9988c-.001 6.6066 5.372 11.9628 12 11.9625 6.628.0003 12.001-5.3559 12-11.9625-.0003-6.6057-5.3729-11.9604-12-11.96m-.829 5.4153h7.55l-7.5805 5.3284h5.1828L5.279 18.5436q2.9466-6.5444 5.892-13.0896\"},\"child\":[]}]})(props);\n};\nexport function SiFastify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.245 6.49L24 4.533l-.031-.121-7.473 1.967c.797-1.153.523-2.078.523-2.078s-2.387 1.524-4.193 1.485c-1.804-.04-2.387-.52-5.155.362-2.768.882-3.551 3.59-4.351 4.173-.804.583-3.32 2.477-3.32 2.477l.006.034 2.27-.724s-.622.585-1.945 2.37l-.062-.057.002.011s1.064 1.626 2.107 1.324a2.14 2.14 0 0 0 .353-.147c.419.234.967.463 1.572.525 0 0-.41-.475-.752-1.017l.238-.154.865.318-.096-.812c.003-.003.006-.003.008-.006l.849.311-.105-.738a5.65 5.65 0 0 1 .322-.158l.885-3.345 3.662-2.497-.291.733c-.741 1.826-2.135 2.256-2.135 2.256l-.582.22c-.433.512-.614.637-.764 2.353.348-.088.682-.107.984-.028 1.564.421 2.107 2.307 1.685 2.827-.104.13-.356.354-.673.617H7.77l-.008.514-.065.051h-.645l-.009.504-.17.127c-.607.011-1.373-.518-1.373-.518 0 .481.401 1.225.401 1.225l.07-.034-.061.045s1.625 1.083 2.646.681c.91-.356 3.263-2.213 5.296-3.093l6.15-1.62.811-2.1-4.688 1.235v-1.889l5.5-1.448.811-2.1-6.31 1.662V8.367zm-11.163 4l1.459-.384.02.074-.455 1.179-1.513.398zm.503 2.526l-1.512.398.489-1.266 1.459-.385.02.074zm1.971-.424l-1.513.398.49-1.266 1.459-.385.02.073Z\"},\"child\":[]}]})(props);\n};\nexport function SiFastlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.144 19.182a1.445 1.445 0 00-1.237-.868l-1.615-4.976-.37-1.135c-.017.01-.112.052-.13.06-.008.01-.025.01-.033.018a.366.366 0 00-.07.037.472.472 0 01-.102.043c-.043.016-.078.034-.12.042-.035.01-.07.027-.104.036-.04.01-.083.025-.126.034-.034.01-.068.017-.103.026a.584.584 0 01-.137.017c-.035.01-.07.01-.103.017-.028 0-.054 0-.08.01h-.16c-.052 0-.095 0-.146-.01-.035 0-.07 0-.095-.01l-.165-.025c-.026-.01-.052-.01-.086-.017a2.456 2.456 0 01-.25-.06 2.498 2.498 0 01-1.633-3.137C1.7 7.97 3.102 7.23 4.417 7.65l.344-1.1A3.673 3.673 0 00.167 8.94a3.674 3.674 0 002.39 4.59 3.877 3.877 0 001.624.128l1.634 5.035a1.432 1.432 0 00-.232.267 1.47 1.47 0 00.387 2.053 1.47 1.47 0 002.2-.662 1.572 1.572 0 00-.03-1.167zM11.901.412a3.656 3.656 0 00-3.62 3.697c.01.54.147 1.09.38 1.58L4.381 8.8a1.468 1.468 0 00-.327-.138 1.47 1.47 0 00-1.83.997c-.233.78.214 1.596.996 1.83.103.032.207.05.31.05.404.025.8-.11 1.09-.38.2-.18.354-.4.43-.678a1.44 1.44 0 00.018-.764l4.237-3.08.962-.702c-.017-.018-.077-.086-.094-.103l-.026-.026c-.017-.018-.035-.036-.052-.06a.46.46 0 01-.07-.087 1.952 1.952 0 00-.076-.103c-.026-.026-.043-.06-.07-.086a1.027 1.027 0 01-.068-.11.56.56 0 00-.06-.096.746.746 0 01-.06-.12c-.017-.034-.034-.06-.043-.095l-.026-.07c-.006-.017-.014-.042-.023-.06-.01-.034-.025-.07-.034-.094-.016-.044-.025-.096-.042-.147l-.025-.096c-.01-.05-.017-.11-.026-.163 0-.025-.01-.05-.018-.085a2.269 2.269 0 01-.017-.26 2.502 2.502 0 012.475-2.526 2.502 2.502 0 012.526 2.475l1.152-.01C15.576 2.01 13.92.386 11.9.41zm11.908 8.664a3.664 3.664 0 00-4.632-2.303 3.803 3.803 0 00-1.385.851l-4.28-3.109c.026-.113.034-.233.034-.354a1.483 1.483 0 00-1.512-1.435 1.483 1.483 0 00-1.436 1.513 1.47 1.47 0 00.744 1.23c.232.128.5.205.782.197.267-.01.525-.086.73-.224l4.239 3.077.962.705.07-.12c.008-.008.008-.025.016-.034.008-.027.025-.044.034-.07.017-.034.034-.06.05-.094a.46.46 0 00.07-.112l.06-.085c.026-.035.052-.07.086-.104.026-.026.043-.05.07-.086l.094-.095.077-.078c.018-.017.035-.034.06-.05.018-.018.036-.027.053-.044a.282.282 0 01.086-.06c.04-.026.084-.052.12-.078a.528.528 0 01.084-.05c.052-.027.094-.053.146-.08.026-.008.052-.025.077-.033a2.51 2.51 0 013.412 1.477 2.507 2.507 0 01-1.572 3.17l.37 1.09c1.9-.627 2.93-2.7 2.294-4.615zm-2.166.62a1.474 1.474 0 00-1.881-.895 1.532 1.532 0 00-.284.14c-.344.214-.584.56-.662.945-.05.258-.043.533.052.8.094.257.24.463.438.627l-1.616 4.976-.37 1.134c.018 0 .112.026.138.026.017 0 .026 0 .043.01.028.008.054.008.08.017.035.01.07.017.104.025.043.01.086.026.13.035.033.01.068.017.102.034l.12.05c.035.018.07.027.103.044.04.017.076.043.12.06.033.017.06.034.093.052.026.01.043.025.06.043.018.01.035.024.052.033.026.018.06.035.086.06a.58.58 0 01.113.096c.025.016.05.042.077.06.043.033.077.076.12.12.02.016.043.034.06.06.06.06.11.13.164.197a2.505 2.505 0 01-.516 3.497 2.507 2.507 0 01-3.5-.515l-.927.686c1.205 1.616 3.5 1.96 5.116.757 1.615-1.203 1.96-3.497.756-5.112a3.82 3.82 0 00-1.237-1.058l1.632-5.036a1.479 1.479 0 001.238-1.968zM18.2 18.905a1.446 1.446 0 00-1.315-.558 1.38 1.38 0 00-.748.3c-.215.163-.37.378-.465.61H9.243c0 .017.01.12.02.137 0 .018 0 .026.01.043 0 .026.01.052.01.078 0 .034.007.07.007.112 0 .043 0 .086.01.128v.112c0 .043-.01.086-.01.13 0 .034-.01.068-.01.11-.01.044-.02.087-.02.138-.007.035-.007.07-.015.103-.01.025-.01.05-.017.08-.01.014-.01.04-.018.06-.01.03-.017.066-.026.1-.017.043-.034.095-.052.14-.01.032-.025.06-.034.092a2.771 2.771 0 01-.077.146c-.016.025-.024.05-.033.077a2.132 2.132 0 01-.138.215 2.504 2.504 0 01-3.49.583 2.501 2.501 0 01-.585-3.489l-.937-.67a3.658 3.658 0 00.86 5.096 3.656 3.656 0 005.095-.86c.318-.445.524-.97.628-1.502h5.294a1.479 1.479 0 002.252.567c.61-.508.73-1.436.232-2.08z\"},\"child\":[]}]})(props);\n};\nexport function SiFastly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.919 3.036V1.3h.632V0H9.377v1.3h.631v1.749a10.572 10.572 0 00-8.575 10.384C1.433 19.275 6.17 24 12 24c5.842 0 10.567-4.737 10.567-10.567 0-5.186-3.729-9.486-8.648-10.397zm-1.628 15.826v-.607h-.619v.607c-2.757-.158-4.955-2.38-5.101-5.137h.607v-.62h-.607a5.436 5.436 0 015.101-5.089v.607h.62v-.607a5.435 5.435 0 015.137 5.114h-.607v.619h.607a5.444 5.444 0 01-5.138 5.113zm2.26-7.712l-.39-.389-1.979 1.725a.912.912 0 00-.316-.06c-.534 0-.971.448-.971.995 0 .547.437.996.971.996.535 0 .972-.45.972-.996a.839.839 0 00-.049-.304Z\"},\"child\":[]}]})(props);\n};\nexport function SiFathom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.185 0c-1.702.008-3.693.467-6.068 1.331C.115 4.244-1.581 7.881 1.33 15.883c2.912 8.002 6.55 9.698 14.552 6.786 8.002-2.913 9.699-6.55 6.786-14.552C20.62 2.491 18.214-.018 14.185 0zm2.77 6.57h1.253a.25.25 0 01.199.098.25.25 0 01.043.217L15.672 17.22a.25.25 0 01-.241.186h-1.254a.25.25 0 01-.242-.315l.169-.628.123-.457 2.486-9.252a.25.25 0 01.241-.185zm-9.184.808h.504a.25.25 0 01.25.25v.844a.25.25 0 01-.25.25h-.428a1.7 1.7 0 00-.258.012.221.221 0 00-.12.048.197.197 0 00-.049.078.886.886 0 00-.043.315v.641h.898a.25.25 0 01.25.25v.844a.25.25 0 01-.25.25h-.898v5.094a.25.25 0 01-.25.25h-.985a.25.25 0 01-.25-.25v-7.23a1.723 1.723 0 01.169-.78 1.395 1.395 0 01.453-.523c.37-.257.826-.341 1.257-.343zm3.85 2.344c.767 0 1.419.218 1.883.622.465.404.725.994.723 1.668v1.683l-.755 2.809h-.48a.25.25 0 01-.25-.25v-.187a1.84 1.84 0 01-.223.167c-.335.213-.79.352-1.39.352a2.936 2.936 0 01-1.337-.29 1.898 1.898 0 01-.883-.907 2.193 2.193 0 01-.187-.916 1.907 1.907 0 01.245-.99 1.724 1.724 0 01.646-.618c.52-.293 1.16-.396 1.788-.48H11.4c.342-.046.616-.075.827-.103a1.968 1.968 0 00.431-.088.147.147 0 00.065-.04l.01-.021a.319.319 0 00.009-.086v-.035a.809.809 0 00-.274-.638c-.178-.155-.458-.26-.847-.261-.385 0-.686.106-.89.262a.821.821 0 00-.338.588.25.25 0 01-.249.228H9.101a.25.25 0 01-.25-.261 2.139 2.139 0 01.825-1.593c.491-.391 1.165-.615 1.945-.615zm1.121 3.783c-.09.024-.187.047-.296.068-.303.06-.67.113-1.025.163a2.855 2.855 0 00-.692.171c-.196.082-.333.186-.407.308a.569.569 0 00-.08.307v.007a.604.604 0 00.062.275.554.554 0 00.176.198c.16.115.428.194.79.194.56-.002.915-.164 1.14-.39.223-.228.33-.542.332-.896v-.404z\"},\"child\":[]}]})(props);\n};\nexport function SiFauna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.864 5.034c-1.454.496-2.155 1.385-2.632 2.77-.123.369-.43.778-.777 1.053l1.193 1.306-3.787-2.706L1.411 0s.754 5.003 1.015 6.844c.185 1.298.5 1.88 1.5 2.47l.401.22 1.724.928-1.024-.543 4.726 2.636-.031.07-5.087-2.407c.27.944.793 2.761 1.016 3.564.238.865.508 1.18 1.331 1.487l1.516.566.94-.378-1.194.81L2.28 24c3.963-3.76 7.319-5.097 9.774-6.19 3.132-1.385 5.018-2.274 6.249-5.468.877-2.242 1.562-5.113 2.432-6.222l1.855-2.423s-3.84 1.039-4.726 1.337z\"},\"child\":[]}]})(props);\n};\nexport function SiFavro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.586 1.655a6.623 6.623 0 0 0-6.62 6.62v.773a7.503 7.503 0 0 1 3.31 3.269V8.276a3.302 3.302 0 0 1 3.31-3.31A1.66 1.66 0 0 0 13.24 3.31a1.66 1.66 0 0 0-1.656-1.655zm-9.93 7.448A1.66 1.66 0 0 0 0 10.758c0 .91.745 1.655 1.655 1.655a3.302 3.302 0 0 1 3.31 3.31v4.966c0 .91.745 1.655 1.655 1.655a1.66 1.66 0 0 0 1.655-1.655v-4.966a6.623 6.623 0 0 0-6.62-6.621zm15.724 0a6.623 6.623 0 0 0-6.622 6.621 6.623 6.623 0 0 0 6.622 6.621 6.583 6.583 0 0 0 3.462-.979c.262.58.84.98 1.503.98A1.66 1.66 0 0 0 24 20.69v-9.93a1.66 1.66 0 0 0-1.655-1.655c-.676 0-1.241.4-1.503.979a6.574 6.574 0 0 0-3.462-.98zm0 3.311a3.303 3.303 0 0 1 3.31 3.31 3.303 3.303 0 0 1-3.31 3.31 3.302 3.302 0 0 1-3.31-3.31 3.303 3.303 0 0 1 3.31-3.31z\"},\"child\":[]}]})(props);\n};\nexport function SiFcc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.412 17.587A7.89 7.89 0 0 1 10.268 6.414a7.867 7.867 0 0 1 11.144 0 8 8 0 0 1 .839.996L24 6.116a10.03 10.03 0 0 0-8.16-4.196c-5.19 0-9.458 3.942-9.996 9.002h-3.82V4.328H6.78L8.508 1.92H0v20.16l2.024-1.488V13.08h3.82c.538 5.059 4.806 9 9.996 9A10.03 10.03 0 0 0 24 17.884l-1.749-1.296a8 8 0 0 1-.84.999m-5.57-9.205a3.61 3.61 0 0 1 2.97 1.572l1.752-1.296a5.77 5.77 0 0 0-4.723-2.456c-3.194 0-5.782 2.595-5.782 5.798s2.588 5.796 5.782 5.797a5.77 5.77 0 0 0 4.723-2.455l-1.751-1.296a3.61 3.61 0 1 1-2.972-5.664\"},\"child\":[]}]})(props);\n};\nexport function SiFdroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.472,10.081H3.528c-0.877,0-1.589,0.711-1.589,1.589v10.59c0,0.877,0.711,1.589,1.589,1.589h16.944 c0.877,0,1.589-0.711,1.589-1.589V11.67C22.061,10.792,21.349,10.081,20.472,10.081z M12,22.525c-3.066,0-5.56-2.494-5.56-5.56 s2.494-5.56,5.56-5.56c3.066,0,5.56,2.494,5.56,5.56S15.066,22.525,12,22.525z M12,12.411c-2.511,0-4.554,2.043-4.554,4.554 S9.489,21.519,12,21.519s4.554-2.043,4.554-4.554S14.511,12.411,12,12.411z M12,20.274c-1.563,0-2.881-1.103-3.221-2.568h1.67 c0.275,0.581,0.859,0.979,1.551,0.979c0.96,0,1.721-0.761,1.721-1.721c0-0.96-0.761-1.721-1.721-1.721 c-0.649,0-1.2,0.352-1.493,0.874H8.805c0.378-1.412,1.669-2.462,3.195-2.462c1.818,0,3.309,1.491,3.309,3.309 C15.309,18.783,13.818,20.274,12,20.274z M23.849,0.396c-0.001,0.001-0.002,0.002-0.002,0.003 c-0.002-0.002-0.004-0.003-0.006-0.005c0.001-0.001,0.002-0.003,0.004-0.004c-0.116-0.137-0.279-0.231-0.519-0.238 c-0.202,0.005-0.391,0.097-0.512,0.259l-1.818,2.353c-0.164-0.058-0.339-0.095-0.523-0.095H3.528c-0.184,0-0.358,0.038-0.523,0.095 L1.187,0.41c-0.121-0.162-0.31-0.253-0.512-0.259c-0.24,0.006-0.403,0.1-0.519,0.238c0.001,0.001,0.002,0.003,0.004,0.004 C0.157,0.395,0.155,0.397,0.153,0.399C0.153,0.398,0.152,0.397,0.151,0.396C0.085,0.474-0.146,0.822,0.139,1.22l1.909,2.471 C1.981,3.867,1.94,4.057,1.94,4.257v3.707c0,0.877,0.711,1.589,1.589,1.589h16.944c0.877,0,1.589-0.711,1.589-1.589V4.257 c0-0.2-0.041-0.39-0.109-0.566l1.909-2.471C24.146,0.822,23.915,0.474,23.849,0.396z M6.904,8.228c-0.987,0-1.787-0.8-1.787-1.787 s0.8-1.787,1.787-1.787s1.787,0.8,1.787,1.787S7.891,8.228,6.904,8.228z M17.229,8.228c-0.987,0-1.787-0.8-1.787-1.787 s0.8-1.787,1.787-1.787c0.987,0,1.787,0.8,1.787,1.787S18.216,8.228,17.229,8.228z\"},\"child\":[]}]})(props);\n};\nexport function SiFeathub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.571 0v6.857h6.858V0zM0 8.571v6.858h24V8.57zm8.571 8.572V24h6.858v-6.857z\"},\"child\":[]}]})(props);\n};\nexport function SiFedex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.498 14.298c-.016-.414.345-.751.75-.755a.745.745 0 0 1 .752.755.755.755 0 0 1-.751.745c-.395.002-.759-.346-.751-.745zm.759-.083c.067-.02.164-.042.162-.13.007-.09-.086-.133-.162-.134h-.163v.263c0 .001.165-.002.163.001zm-.163.107v.418h-.14v-.91h.327c.156-.021.294.092.286.253a.218.218 0 0 1-.156.19c.162.083.108.322.173.467h-.156a2.355 2.355 0 0 1-.04-.205c-.018-.093-.047-.229-.17-.213h-.124zm.76-.024a.603.603 0 0 0-.605-.632c-.338-.012-.62.302-.605.632a.619.619 0 0 0 .605.622.61.61 0 0 0 .605-.622zm-5.052-.579l-.878 1.008h-1.306l1.559-1.745-1.56-1.75h1.355l.902.997.878-.998h1.306l-1.543 1.743 1.559 1.753h-1.371l-.901-1.008zm-4.703-.352v-.827h1.904v-1.506l1.724 1.948-1.724 1.941v-1.556h-1.904zm1.56 1.36h-3.2V9.044h3.224v1.024H13.77v1.163h1.888v.958h-1.904v1.522h1.904v1.016zm-5.705-.655c-.54.017-.878-.552-.877-1.04-.01-.507.307-1.123.878-1.105.579-.025.871.6.845 1.103.023.501-.29 1.062-.846 1.042zM4.743 12.41c.076-.358.403-.67.78-.663a.788.788 0 0 1 .803.663H4.743zm15.182.564l1.815-2.047h-2.125l-.74.844-.763-.844h-4.037v-.548h1.912V8.741H10.84v2.58c-.362-.448-.981-.559-1.526-.492-.782.123-1.427.762-1.634 1.514-.254-.958-1.179-1.588-2.157-1.554-.781.009-1.6.365-1.987 1.071v-.818h-1.87v-.9h2.043v-1.4H0v6.287h1.666v-2.644h1.666a7.59 7.59 0 0 0-.082.622c-.013 1.232 1.042 2.27 2.274 2.236a2.204 2.204 0 0 0 2.157-1.432H6.254c-.14.268-.441.38-.73.36-.457.009-.83-.417-.829-.86h2.914c.083 1.027.988 1.966 2.043 1.947a1.53 1.53 0 0 0 1.19-.639v.41h7.215l.754-.86.754.86h2.192l-1.832-2.055z\"},\"child\":[]}]})(props);\n};\nexport function SiFedora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001 0C5.376 0 .008 5.369.004 11.992H.002v9.287h.002A2.726 2.726 0 0 0 2.73 24h9.275c6.626-.004 11.993-5.372 11.993-11.997C23.998 5.375 18.628 0 12 0zm2.431 4.94c2.015 0 3.917 1.543 3.917 3.671 0 .197.001.395-.03.619a1.002 1.002 0 0 1-1.137.893 1.002 1.002 0 0 1-.842-1.175 2.61 2.61 0 0 0 .013-.337c0-1.207-.987-1.672-1.92-1.672-.934 0-1.775.784-1.777 1.672.016 1.027 0 2.046 0 3.07l1.732-.012c1.352-.028 1.368 2.009.016 1.998l-1.748.013c-.004.826.006.677.002 1.093 0 0 .015 1.01-.016 1.776-.209 2.25-2.124 4.046-4.424 4.046-2.438 0-4.448-1.993-4.448-4.437.073-2.515 2.078-4.492 4.603-4.469l1.409-.01v1.996l-1.409.013h-.007c-1.388.04-2.577.984-2.6 2.47a2.438 2.438 0 0 0 2.452 2.439c1.356 0 2.441-.987 2.441-2.437l-.001-7.557c0-.14.005-.252.02-.407.23-1.848 1.883-3.256 3.754-3.256z\"},\"child\":[]}]})(props);\n};\nexport function SiFeedly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.85995 1.98852a2.60906 2.60906 0 00-3.72608 0L.76766 11.52674a2.72906 2.72906 0 000 3.79508l6.68415 6.80816a2.61806 2.61806 0 001.74004.66401h5.61313a2.61606 2.61606 0 001.87204-.79101l6.55415-6.67516a2.72606 2.72606 0 000-3.79508l-9.37021-9.54422zm-.26 17.4224l-.93502.95002a.372.372 0 01-.268.114h-.80003a.376.376 0 01-.247-.096l-.95402-.97002a.39.39 0 010-.54201l1.33703-1.36003a.37.37 0 01.531 0l1.33704 1.36103a.389.389 0 010 .543zm0-5.71113l-3.73709 3.80808a.374.374 0 01-.268.111h-.79902a.376.376 0 01-.25-.093l-.95103-.97002a.391.391 0 010-.54401l4.1391-4.2141a.372.372 0 01.531 0l1.33704 1.36204a.386.386 0 010 .54zm0-5.70713L7.0598 14.6528a.372.372 0 01-.268.113h-.80002a.373.373 0 01-.24901-.094l-.95302-.97202a.388.388 0 010-.54001L11.7329 6.0896a.372.372 0 01.531 0l1.33704 1.36004a.389.389 0 010 .543z\"},\"child\":[]}]})(props);\n};\nexport function SiFerrari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.543 0s-.01.141-.053.227c-.032.075-.118.128-.107.182.01.054.064.119.15.162.086.043.117.074.203.096.075.021.184.076.205.011.033-.064-.01-.151-.064-.226-.086-.14-.13-.172-.248-.365C11.607.044 11.586 0 11.543 0zm.678 0c-.022.011-.054.174-.108.313-.064.161-.022.236.01.3.043.065.098.108-.01.173-.107.064-.248.043-.248.043s-.118-.023-.215-.076a23.832 23.832 0 0 0-.3-.13s-.194-.053-.323-.042c-.129.01-.14.022-.236.033-.054 0-.075-.001-.129.01-.043.01-.096-.02-.096.033s.107.054.182.086c.075.032.247.031.215.074-.043.043-.204.054-.215.043-.01 0-.117-.021-.203-.021-.14.01-.15.01-.353.107-.033.01-.022.086.042.064a1.12 1.12 0 0 1 .301-.043c.13 0 .203.044.332.077.108.032.118.052.28.074.032 0 .095-.022.095.021 0 .022-.043.055-.043.055s-.096.02-.086.053c.022.043.108 0 .15 0 .044 0 .11.012.098.054l-.021.032a2.312 2.312 0 0 0-.291.097c-.269.108-.375.237-.633.366-.247.118-.644.267-.644.267s-.118.065-.29.107c-.171.044-.182.034-.3.055a.571.571 0 0 0-.27.086.52.52 0 0 0-.15.117l-.15.227-.087.127c-.021.043-.042.064-.052.107-.022.054-.033.076-.043.13-.032.128 0 .204.021.333.011.032.011.054.022.086.01.032.052.065.052.065l.043.01s.152-.01.248-.032c.097-.021.237-.055.237-.055l.181-.052.12-.043s.075 0 .086.043c.01.032-.022.086-.022.086s-.065.03-.119.052c-.054.022-.183.054-.193.065l-.14.043-.118.011s-.022.011-.043.043c-.022.033-.022.032-.022.053.022.022.033.043.055.065.043.032.064.053.117.064.075.032.118.022.193.022a.587.587 0 0 0 .27-.065c.086-.054.118-.053.236-.096a.543.543 0 0 1 .118-.021c.204-.022.32.01.525.043.204.032.302.097.506.129.215.032.343.096.568.043.108-.022.173-.076.227.031.053.097.043.15.043.15s-.001.066-.076.27c-.076.204-.311.709-.311.709l-.162.322s-.13.257-.43.59a54.284 54.284 0 0 1-.32.353s-.161.119-.322.323c-.161.204-.163.279-.313.43-.097.096-.15.15-.268.226-.118.075-.258.053-.634.31-.322.226-.494.41-.516.399-.021-.01-.129-.098-.172-.12-.032-.02-.654-.439-.654-.439l-.258-.172-.119-.076-.021-.043-.063-.086s-.097-.118-.215-.214a.92.92 0 0 0-.441-.237c-.183-.053-.3-.086-.482-.021a.646.646 0 0 0-.27.172c-.107.107-.129.193-.215.322s-.172.248-.215.312c-.043.065-.129.237-.129.237s-.214.343-.332.568c-.14.247-.193.399-.322.635-.204.376-.495.762-.57.933l-.084.194s-.023.095-.033.16c-.011.064-.011.172-.022.215a.312.312 0 0 1-.053.119c-.01.01-.129.257-.172.418-.043.16-.14.666-.021.73.118.065.987-.31 1.105-.676.076-.236-.236-.355-.15-.57.032-.075.054-.085.107-.16.086-.14.054-.429.215-.697.118-.193.354-.442.676-.807.204-.225.398-.59.398-.59s.043-.129.13-.107c.096.021.181.01.181.01l.043.033.086.086.129.193s.216.31.29.397c.076.086.151.15.259.236.118.107.16.161.31.28.215.171.139.236-.14.085a1.82 1.82 0 0 0-.364-.138c-.128-.033-.612-.162-.859-.194-.236-.032-.28-.021-.28-.021s-.118-.012-.257.074c-.14.086-.215.15-.215.15s-.161.183-.172.215c-.01.032-.086.16-.086.16s-.044.066-.054.14c-.022.076-.01.151-.01.151l.01.16.011.15s.033.377.108.753c.021.107.043.279.043.279l.052.387s.033.409.065.548c.032.13.054.14.076.225.043.161-.032.236.043.43.075.193.14.17.215.289.054.086.074.107.117.215.043.107.183.463.344.72.172.269.398.601.549.569.15-.033.257-.268.257-.268s.172-.463.065-.914c-.108-.462-.602-.245-.666-.578-.01-.075 0-.193 0-.193s-.012-.141-.033-.184c-.022-.043-.194-.364-.258-.633-.054-.204-.043-.86-.086-1.043-.118-.472-.129-.43-.065-.515.076-.086.141-.065.141-.065l.096.012.076.031.139.086c.043.032.193.15.193.15l.365.237s.205.119.291.162c.086.043.16.096.16.096l.096.064.162.12.031.03.022.043s.076.173.398.356c.258.15.484.106.58.225.022.021.203.27.29.42.107.171.236.374.279.439.043.064.312.396.312.396l.354.387.463.43.418.355.267.215s.237.226.506.408c.258.172.268.193.44.31.128.087.3.206.472.335.172.14.366.396.291.482-.054.032-.151-.106-.334-.267a4.298 4.298 0 0 0-.375-.301c-.193-.15-.291-.227-.506-.356-.107-.064-.3-.181-.31-.16-.075.226-.066.44-.055.719.01.193.043.386.107.633.054.236.108.366.194.591.086.226.248.58.248.58l.246.495.226.375.118.193.043.064s.053.13 0 .215-.119.269-.215.28c-.097.021-.322.033-.322.033l-1.278-.022-.666-.054s-.074-.043-.46-.043c-.226 0-.409.096-.538.107-.107.01-.634-.032-.988.107-.333.14-.484.172-.602.387-.086.161.42.42.838.516.677.15.483-.14.74-.322.033-.022.044-.042.077-.053.171-.054.267.084.44.084.192 0 .3-.064.493-.096.977-.129 2.502.332 2.502.332s.377.118.549.086c.204-.043.16-.118.224-.236.054-.097.033-.117.043-.225 0-.064-.01-.096-.021-.16-.043-.183-.16-.441-.16-.441s-.087-.193-.12-.29c-.042-.139-.085-.226-.107-.376-.064-.398-.053-.365-.053-.59 0-.408.043-.634.15-1.031.162-.58.463-.827.688-1.385.065-.15.064-.365.14-.387.085-.01.075.269.032.43-.14.558-.483.794-.644 1.363-.118.44-.183.697-.15 1.148.01.247.107.635.107.635s.129.429.193.59c.065.161.193.43.193.43l.29.515.15.246s.106.097.053.258c-.054.161-.16.26-.29.399-.364.43-1.212 1.062-1.427 1.212-.3.226-.291.291-.313.356-.118.344-.462.354-.837.762-.086.086-.311.321-.268.525.021.075.945.237 1.482.012.42-.183.054-.388.172-.592.086-.15.3-.15.397-.28.16-.214.053-.203.193-.374.462-.559.763-.88 1.59-1.385.075-.043.215-.107.215-.107s.117-.055.16-.12c.054-.086.043-.16.043-.257 0-.065-.01-.096-.01-.16 0-.076.01-.119-.012-.194-.021-.118-.095-.215-.138-.28a.772.772 0 0 1-.162-.355.894.894 0 0 1 .033-.6c.086-.225.279-.407.279-.407l.482-.323s.42-.301.55-.42c.139-.118.407-.365.6-.644.226-.311.344-.505.44-.88.032-.14.065-.354.065-.354s0-.15.086-.16c.085-.011.107.02.107.02s.074.042.096.257c.01.215-.053.463-.053.463s-.065.246-.086.396c-.01.097-.012.15-.012.258 0 .183.076.334.076.334s.043.032.043-.043a1.6 1.6 0 0 1 .055-.344c.032-.107.053-.087.117-.27.086-.236.01-.213.053-.353.022-.064.076-.129.14-.129.065 0 .075.086.075.086s.065.28.012.537c-.054.258-.248.612-.248.612l-.149.257s-.107.183-.15.301c-.043.129-.055.183-.033.3.032.13.13.303.183.27.043-.032-.064-.14.065-.398s.298-.418.298-.418.237-.28.344-.494c.097-.193.194-.506.194-.506s.076-.28.054-.516c-.01-.225-.054-.343-.054-.343l-.096-.172-.055-.127.022-.076c.021-.011.097.043.162.129a.854.854 0 0 1 .16.343 1.018 1.018 0 0 1 .043.301c0 .086-.031.44.097.666.054.108.183.354.194.246.021-.247-.087-.364-.076-.59.01-.257.076-.193.097-.322.022-.14.053-.173.032-.355a2.632 2.632 0 0 0-.096-.397l-.076-.172-.032-.064s.021-.031.053-.031l.258-.086s.334-.15.463-.258c.14-.097.3-.27.3-.27s.215-.267.323-.46c.258-.484.257-1.096.246-1.376-.01-.268-.086-.623-.086-.623s-.086-.43-.064-.709c.021-.279.043-.408.043-.408s-.01-.279.226-.58c.236-.3.342-.493.385-.719.043-.193-.022-.504-.108-.386-.096.129-.137.387-.277.601-.193.301-.474.666-.613.666-.075 0-.096-.172-.096-.172s-.096-.29.065-.656c.118-.258.181-.332.332-.525.14-.183.225-.28.322-.473.086-.172.106-.204.16-.472.01-.065-.01-.204-.074-.194-.086 0-.322.517-.569.807-.236.268-.677.611-.677.611s-.043.031-.043-.055c-.01-.075-.022-.3.021-.503a2.22 2.22 0 0 1 .291-.72c.204-.354.461-.6.59-.73.054-.053.215-.151.13-.205-.076-.043-.302.15-.474.28-.214.16-.289.205-.503.463-.215.257-.27.365-.27.365s-.204.332-.258.654c-.054.322-.053.504-.053.504s0 .291.032.463c.021.182.097.46.097.46s.108.313.15.507c.044.193.118.761.118.761s.054.409.021.795c-.032.387-.064.612-.107.73-.043.119-.16.43-.354.645-.182.204-.226.236-.226.236s-.193.16-.354.246a3.743 3.743 0 0 1-.505.227 2.211 2.211 0 0 1-.268.031h-.139l-.043-.03-.023-.087s-.106-.419-.234-.687c-.108-.226-.334-.537-.334-.537s-.387-.527-.688-.817c-.344-.343-.73-.6-.967-.783-.086-.064-.279-.184-.279-.184s-.783-.783-1.062-1.406c-.194-.43-.322-.74-.268-1.213.01-.107.053-.312.074-.312l.14.043c.012.01.14.129.259.172.064.021.181.043.181.043s.097.01.15.021c.054.022.151.054.215.086.065.032.16.098.16.098l.184.138.194.15s.106.076.138.087c.032.01.054.021.065.021h.043s.044-.012.054-.055c.011-.053-.053-.01-.15-.117a.698.698 0 0 1-.15-.181s-.022-.087-.108-.184-.193-.182-.193-.182-.076-.053-.184-.086c-.107-.032-.14-.033-.15-.076-.01-.043.129-.021.129-.021s.162.021.29.086c.13.064.204.14.204.14l.086.075.055.054.052.032s.054.053.065-.022c.01-.064-.011-.118-.022-.129l-.053-.053-.214-.183a1.076 1.076 0 0 0-.172-.15 1.303 1.303 0 0 0-.28-.15c-.107-.044-.171-.033-.279-.087-.075-.032-.14-.053-.183-.117-.011-.01-.064-.055.033-.033.096.021.16.054.267.076.172.043.28.042.442.096.064.021.15.064.15.064l.203.086s.28.151.473.162a.938.938 0 0 0 .42-.064.814.814 0 0 0 .215-.13.36.36 0 0 0 .052-.064l.022-.054v-.043c-.054-.065-.16.108-.332.14-.183.033-.173.053-.291.032a.477.477 0 0 1-.3-.15c-.173-.162-.236-.312-.462-.409-.096-.043-.27-.086-.27-.086s-.236-.075-.365-.15c-.096-.054-.298-.086-.234-.172.032-.043.29.107.482.129.14.021.237.011.344.011s.258-.033.28-.033c.021-.01.106 0 .181.022.075.021.118.053.193.086.076.032.163.086.184.086l.043.011.022-.021.01-.022-.01-.021-.034-.022-.064-.043s-.096-.054-.182-.14c-.086-.086-.162-.182-.29-.225-.13-.043-.28-.064-.28-.064l-.15-.012-.065-.01s-.107-.033-.021-.054a.888.888 0 0 1 .15-.032.495.495 0 0 1 .248.01c.086.032.226.107.236.107.011.011.14.109.28.141.14.032.322.043.322.043l.086-.021.043-.012.031-.022-.01-.052s0-.044-.064-.055a.697.697 0 0 1-.313-.117c-.118-.086-.203-.172-.203-.172s-.086-.076-.258-.12c-.16-.042-.214-.042-.214-.042l-.055-.022-.117-.052s-.055-.033-.098-.086c-.043-.054-.106-.152.076-.098.183.054.225.086.225.086s.097.097.183.107c.054.011.097.022.13-.021.053-.054-.098-.118-.206-.194a.725.725 0 0 1-.172-.193s-.063-.053.034-.031c.096.021.267.129.267.129s.086.042.13.053c.031.01.118.064.161.085.032.011.13.033.193.065.086.054.13.14.172.172.043.032.076.087.13.097.053.011.063.032.095.01a.418.418 0 0 0 .043-.031s.01-.023-.043-.055-.117-.117-.117-.117l-.022-.043-.011-.043-.053-.086-.098-.14s-.15-.204-.289-.28c-.129-.075-.226-.117-.226-.117s-.064-.031-.096-.053c-.054-.043-.076-.077-.12-.13-.053-.065-.073-.106-.138-.17-.118-.118-.483-.184-.344-.27.076-.043.172-.02.215-.01.043.011.14.052.237.084.064.022.107.024.171.045.065.022.14.031.172.053.032.021.065.065.086.076.011.01.096.15.246.225.15.075.227.128.377.138.118.011.31-.03.31-.03s.055-.023.012-.077c-.053-.054-.054-.064-.097-.074-.172-.065-.31-.043-.44-.172-.053-.054-.076-.065-.119-.15-.043-.086-.02-.107-.052-.16-.022-.054-.077-.13-.077-.13s-.16-.194-.332-.29a1.955 1.955 0 0 1-.334-.215c-.032-.022-.095-.108-.095-.108l-.055-.086-.031-.064c-.022-.118.192.033.31.076.194.064.291.15.485.215.107.032.172.031.279.074.182.075.236.258.43.28.107.01.322.053.279-.044-.043-.107-.258-.107-.365-.236-.054-.054-.054-.106-.108-.16-.086-.108-.29-.205-.29-.205s-.064-.053-.14-.203c-.064-.15-.225-.26-.515-.399-.193-.096-.58-.118-.43-.215.086-.064.161-.053.28-.021.118.043.16.098.257.14.097.044.14.054.16.065.022.01.097.043.13.043.02.01.183.032.226.043l.215.053.172.064s.085.033.138.033.141-.021.141-.021l.064-.043.01-.022s.033-.053-.053-.064a.986.986 0 0 0-.128-.012l-.077-.021-.03-.01s-.151-.118-.28-.172a4.841 4.841 0 0 1-.162-.064l-.053-.012-.064-.01s-.055 0-.141-.076c-.086-.075-.118-.118-.193-.193l-.096-.096s-.086-.066-.086-.12c.01-.085.193.098.193.098l.13.086s.107.076.3.086c.193.011.43-.054.43-.054s.031-.02.138.011.194.096.194.096l.086.076.129.139.021-.01c.01-.01.065-.065-.031-.183-.097-.119-.258-.225-.258-.225s-.215-.129-.43-.172c-.214-.043-.312-.043-.312-.043s-.161 0-.258-.107c-.097-.108-.16-.215-.16-.215l-.033-.15s-.053-.065-.16-.108c-.097-.043-.206-.107-.206-.107s-.16-.054-.172-.13c-.032-.139.27 0 .43.032.15.032.215.087.365.12a.915.915 0 0 0 .344.03c.075 0 .118-.008.193-.02.076 0 .13-.01.206 0 .107.022.15.075.257.118.065.032.097.063.172.074.065.011.194.055.172-.01l-.033-.043c-.054-.075-.117-.075-.182-.128-.14-.108-.204-.193-.365-.268a.932.932 0 0 0-.29-.098c-.087-.01-.151.012-.237-.01-.097-.032-.128-.075-.225-.128-.15-.086-.237-.162-.398-.227a2.663 2.663 0 0 0-.29-.086l-.076-.01-.03-.011c-.151-.054.267-.171.46-.225.097-.021.14-.044.236-.033.086.01.183.13.28.076.14-.075-.161-.28-.258-.312-.129-.054-.354-.01-.354-.01l-.494-.012-.14-.021s-.086 0-.15-.075c-.065-.075-.311-.377-.59-.42-.29-.043-.376 0-.397-.02-.247-.388-.506-.473-.7-.655-.053-.054-.138-.173-.16-.162zm1.173 1.14a.53.53 0 0 1 .051 0l.053.033a.54.54 0 0 1 .107.15c.011.043-.128-.01-.181-.022a.43.43 0 0 1-.15-.076s-.023-.032.03-.064a.197.197 0 0 1 .09-.022zm.252.53c.026 0 .045.006.045.006l.053.034a.538.538 0 0 1 .107.15c.011.043-.128-.01-.181-.022a.43.43 0 0 1-.15-.076s-.022-.032.043-.064a.133.133 0 0 1 .083-.027zm-1.882.014a.398.398 0 0 1 .08.004s.043 0 .107.031c.065.043.108.172.108.172s.01.022-.043.022c-.033 0-.033-.053-.065-.075-.043-.032-.075-.043-.129-.064-.053-.021-.128.01-.138-.043 0-.032.04-.044.08-.047zm-.844.125c.042-.012 0 .072 0 .072s-.139.225-.332.311-.322.13-.688.162c-.053 0-.03-.033-.03-.033s.417-.117.654-.246a2.36 2.36 0 0 0 .322-.215.25.25 0 0 1 .074-.05zm.752.06s.065.002.14.055c.076.054.14.237.14.237s.022.117-.032.16-.14-.031-.184-.096a.269.269 0 0 0-.16-.107c-.086-.032-.215.064-.236 0 0-.022.01-.076.01-.076s.022-.064.119-.117c.086-.054.203-.055.203-.055zm1.998.415c.043.004.103.037.15.037.14 0 .257 0 .354.021.086.022.107.075.064.075a.33.33 0 0 1-.096.011c-.096 0-.086-.043-.214.022-.13.064-.033.033-.215.097-.172.065-.13-.107-.13-.107s.013-.033.034-.12c.008-.031.027-.039.053-.036zm-4.844.498c.065 0 .184.044.184.14.01.097-.066.054-.12.086-.031.022-.052.033-.095.065-.054.043-.108.15-.14.117-.044-.032-.022-.15-.022-.15s.033-.086.076-.172c.054-.086.117-.086.117-.086zm5.137.111a.228.228 0 0 1 .05.008s.032.01.053.031c.022.022.108.098.108.14 0 .033-.139-.022-.203-.032-.065-.011-.15-.075-.15-.075s-.022-.02.042-.052a.21.21 0 0 1 .1-.02zm-1.895.088c.01 0 .009.015-.01.049-.042.086-.171.193-.171.193s-.15.214-.182.246c-.14.108-.312.044-.387.055-.064.01-.021-.055-.021-.055s.183-.074.3-.138c.158-.079.427-.35.471-.35zM9.86 3.17c.023 0 .041.01.041.043.011.075-.128.128-.128.128s-.042.011-.053-.064c-.01-.075.053-.086.053-.086s.05-.024.087-.021zm2.66.117c.018-.01.003.097.003.097s-.033.141-.108.184c-.096.054-.334.118-.355.086 0-.022.311-.12.45-.355a.034.034 0 0 1 .01-.012zm1.454.039a.239.239 0 0 1 .052.006s.03.01.063.03c.032.033.108.12.119.163.01.043-.14-.01-.215-.021-.064-.011-.162-.086-.162-.086s-.02-.033.045-.065a.175.175 0 0 1 .098-.027zm-1.301.244c.02-.006-.012.084-.012.084s-.043.14-.129.172c-.107.032-.514.042-.525.01-.01-.033.472-.076.654-.258a.026.026 0 0 1 .012-.008zm1.334.185a.3.3 0 0 1 .06.006s.033.01.065.032c.032.032.118.13.129.183.01.065-.15 0-.225-.021a.535.535 0 0 1-.184-.098s-.021-.031.043-.074a.207.207 0 0 1 .112-.028zm0 .537a.3.3 0 0 1 .06.006s.033.01.065.032c.032.032.118.13.129.183.01.054-.15-.011-.225-.033a.525.525 0 0 1-.184-.096s-.021-.021.043-.064a.207.207 0 0 1 .112-.027zm-1.568.514c.083.024.007.629-.153.91a4.718 4.718 0 0 1-.742.944c-.15.107-.053-.086-.053-.086s.418-.579.612-.987c.14-.29.226-.676.29-.752.02-.022.034-.032.046-.029zm1.55.008a.314.314 0 0 1 .069.01s.042.01.074.043c.032.032.14.151.15.205 0 .064-.182-.023-.267-.033a.54.54 0 0 1-.203-.108s-.023-.043.052-.086a.206.206 0 0 1 .125-.031zm-.068.52a.3.3 0 0 1 .06.005s.033.012.065.034c.032.032.118.128.129.181.01.054-.15-.01-.225-.021a.526.526 0 0 1-.182-.096s-.02-.033.043-.076a.201.201 0 0 1 .11-.027zm-.031.466a.482.482 0 0 1 .048 0l.055.033a.542.542 0 0 1 .108.15c0 .044-.13-.01-.194-.02-.064-.011-.15-.075-.15-.075s-.022-.032.043-.064a.2.2 0 0 1 .09-.024zm-.059.457a.32.32 0 0 1 .045.006l.043.022c.021.021.084.085.084.117 0 .043-.117-.01-.16-.01a.32.32 0 0 1-.117-.064s-.012-.023.03-.055c.022-.016.05-.017.075-.016zm-.09.422a.31.31 0 0 1 .037.002l.043.022c.022.021.074.075.074.107-.01.022-.107-.021-.15-.021a.475.475 0 0 1-.107-.053s-.01-.022.033-.043a.165.165 0 0 1 .07-.014zm-7.609.207c.118.022.14.032.129.086.01.054-.139.053-.139.053s-.216.044-.183-.031c.043-.076.193-.108.193-.108zm7.511.125c.022 0 .04.004.04.004l.043.022c.021.021.074.075.074.107-.011.032-.108-.01-.15-.021-.044-.011-.108-.055-.108-.055s-.01-.022.033-.043a.156.156 0 0 1 .068-.014zm-.12.377a.22.22 0 0 1 .03.002l.032.022c.01.01.064.064.064.086 0 .032-.076 0-.119-.01-.032-.01-.084-.043-.084-.043s-.01-.022.022-.043a.1.1 0 0 1 .054-.014zm-3.061.12a1.5 1.5 0 0 1 .182.011c.3.043.59.312.546.344-.043.032-.107 0-.129 0l-.107-.053-.162-.043s-.29-.065-.504-.055c-.215.011-.408.086-.408.086s-.086.044-.107-.01c-.011-.064.033-.097.033-.097l.01-.022s.246-.164.646-.162zm-5.113.128c.007 0 .01.002.01.002l.021.022c-.01 0 .032.107-.064.214-.097.108-.397.677-.461.58-.065-.075.29-.613.365-.72.056-.089.107-.098.129-.098zm8.05.117c.015 0 .026.002.026.002l.031.012.055.074c-.011.032-.076.011-.108 0-.032 0-.076-.043-.076-.043s-.01-.01.022-.03a.094.094 0 0 1 .05-.015zm-6.783.303c.017-.006.029.008.043.012l.053.021.033.032.108.107c.043.064.16.28.138.3-.096.097-.128-.032-.267-.193-.14-.15-.108-.279-.108-.279zm6.633.05a.079.079 0 0 1 .025.005l.032.01.054.076c0 .021-.065-.012-.097-.012-.033 0-.075-.043-.075-.043s-.022-.01.01-.021a.094.094 0 0 1 .051-.014zM8.4 8.497c.035.003-.013.065-.013.065s-.184.246-.291.397c-.14.203-.312.514-.344.482-.032-.032.151-.374.248-.557.107-.225.268-.343.332-.365a.173.173 0 0 1 .068-.021zm-3.052.805l.021.022s.011.042-.064.16-.13.119-.13.119c0-.01-.02-.053.044-.182s.129-.119.129-.119zm-1.317.42a.032.032 0 0 1 .016.01c.032.043-.064.236-.064.236s-.097.203-.13.117c-.032-.075.034-.214.034-.214.075-.066.108-.156.144-.149zm8.565.277c.096.011.086.194.086.237.032.311.162.624.398 1 .333.526.87.934.848.967-.054.053-.59-.366-.784-.602-.322-.387-.56-.806-.634-1.332-.022-.118-.022-.291.086-.27zm-6.324.15c.021 0 .117.034.117.034l.236.096c.01 0 .13.054.227.107l.234.15.066.055c0 .022.075.14-.076.108-.15-.033-.472-.28-.601-.344-.13-.064-.343-.086-.246-.172.01-.01.021-.033.043-.033zm-1.14.593a.058.058 0 0 1 .022 0c.065 0 .065.052.065.052v.033s-.001.194.01.344c0 .043.119.526.119.526s.021.043-.022.043c-.032 0-.064-.065-.064-.065s-.087-.128-.12-.224c-.031-.086-.042-.227-.042-.227s-.022-.182-.022-.246c.011-.086.011-.162.022-.205a.039.039 0 0 1 .031-.031zm-1.49.257a.06.06 0 0 1 .03 0c.064.011.031.128.031.182s-.062.15-.084.15c-.021 0-.065-.096-.054-.15.01-.047.018-.167.078-.182zm5.442.893c.122-.01.475.497.988 1.05.58.624 1.256 1.215 1.278 1.29.043.129-.473-.28-.752-.494-.741-.57-1.643-1.729-1.535-1.836a.036.036 0 0 1 .021-.01zm10.273.523c.02-.002.037.024.037.024l.022.031c0 .022.128.526.117.848-.022.45-.042.773-.31 1.117-.323.419-.882.85-.764.506.075-.204.57-.462.763-1.031.108-.344.13-.667.13-.667l-.022-.654s-.012-.053-.012-.129c.012-.032.027-.043.04-.045zm-5.478 1.12c.1.011.145.074.027.16-.14.096-.193.085-.28.181-.096.118-.127.517-.224.356-.096-.161-.032-.387.13-.559a.418.418 0 0 1 .347-.139zm-7.799.439c.041-.008.149.074.149.074.053.01.107.108.107.108s.022.076-.043.097c-.064.032-.107-.033-.107-.033s-.14-.193-.12-.236a.019.019 0 0 1 .014-.01zm10.307 1.525c.021 0 .065.022.119.13s-.086.868-.258.76c-.097-.064.053-.256.053-.417 0-.129-.022-.227-.022-.334 0-.107.108-.139.108-.139zM13.2 16.824c.038.004.048.058-.004.166-.075.161-.096.215-.107.366-.022.16.076.61-.074.44-.054-.076-.108-.43-.065-.602.047-.242.186-.375.25-.37zm-.82 2.118c.036-.005.054.013.054.013.022.043-.022.087-.033.098a.435.435 0 0 1-.129.043c-.064.01-.03-.043-.03-.043s.041-.066.095-.098a.134.134 0 0 1 .043-.013zm-2.877.228c.086 0 .086.043.086.043 0 .032-.033.044-.12.033-.074-.01-.084-.032-.073-.043 0-.01.021-.033.107-.033zm.652.031a.063.063 0 0 1 .024.002s.365.064.601.074c.172.011.258.023.43.012.097 0 .043-.012.193-.012.054-.01.022.066-.021.077-.161.043-.226.02-.365.031-.119.01-.173.021-.291.021-.204 0-.224.012-.514-.074-.054-.021-.12-.086-.098-.107a.055.055 0 0 1 .041-.024zm-2.435.065c.126.003.086.045.086.045s-.001.042-.076.095c-.076.054-.107.022-.118.022-.01 0-.086-.043-.086-.086.011-.043.13-.074.13-.074a.489.489 0 0 1 .064-.002zm6.761 1.48a.133.133 0 0 1 .026.002l.021.043c0 .01-.086.13-.129.13-.053-.012-.033-.075-.033-.075s-.021-.065.043-.086a.232.232 0 0 1 .072-.014zm-.802.318c.008 0 .018.001.023.006v.043c.01.033-.27.345-.463.528-.182.172-.494.408-.494.408h-.043v-.055l.012-.021.021-.032.022-.033.021-.03.065-.077.15-.139.15-.14.237-.237s.085-.095.117-.117c.032-.021.054-.043.086-.064.032-.016.07-.038.096-.04zm-1.553 1.293a.064.064 0 0 1 .05.014c.033.075-.02.096-.02.096l-.098.076c-.011 0-.075.054-.096.021-.022-.032.01-.075.01-.086 0-.01.065-.085.119-.107a.093.093 0 0 1 .035-.014zm-1.047.994c.044-.005.076.061.076.061s.022.031.022.074c0 .033-.097.022-.15.065-.065.043.065.173-.14.162-.117-.01-.053-.118-.042-.129l.074-.107c.054-.076.087-.087.14-.12a.046.046 0 0 1 .02-.006z\"},\"child\":[]}]})(props);\n};\nexport function SiFerrarinv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.297 13.283v-1.745c0-.541-.297-.646-1.135-.646-.908 0-1.222.122-1.222.751v.279h.768v-.227c0-.314.017-.367.419-.367.332 0 .349.035.349.367v.628h-.803c-.628 0-.82.297-.82.646h.785v-.017c0-.157.105-.297.262-.297h.593v.698c0 .244-.122.297-.297.297h-.314c-.192 0-.262-.122-.262-.297v-.384h-.785v.436c0 .367.279.663.716.663h2.06v-.471h-.314v-.314zm6.389.332v-2.653h-1.169v.436h.332v2.217h-.332v.454H24v-.454h-.314zm-2.95-2.723c-.436 0-.716.541-.908.768v-.716h-1.152v.436h.314v2.217h-.314v.471h1.431v-.471h-.297V12.41c0-.105.681-.96.681-.873v1.187h.803v-1.327c.001-.313-.191-.505-.558-.505M5.324 12.393h-.82v-.838c0-.157.052-.244.244-.244h.349c.14 0 .227.07.227.175v.907zm-.349-1.501h-.123c-.943 0-1.187.209-1.187.751v1.745c0 .593.349.698 1.204.716h.087c.925-.017 1.204-.087 1.204-.646v-.454h-.801v.227c0 .314-.052.332-.436.332-.454 0-.436-.035-.419-.332v-.541H6.18v-1.17c-.001-.436-.333-.628-1.205-.628zm17.89-.489h.855v-.559h-.855v.559zm-22.743 0h.489v3.299H0v.454h2.269v-.454h-.768v-1.466h.436v.419h.524v-1.309h-.524v.384h-.436v-1.327h20.701v-.559H.122v.559zm9.269.489c-.436 0-.716.541-.908.768v-.716H7.331v.436h.314v2.217h-.314v.471h1.431v-.471h-.297V12.41c0-.105.681-.96.681-.873v1.187h.803v-1.327c0-.313-.192-.505-.558-.505m3.665 0c-.436 0-.716.541-.908.768v-.716h-1.152v.436h.314v2.217h-.314v.471h1.431v-.471h-.297V12.41c0-.105.681-.96.681-.873v1.187h.803v-1.327c.001-.313-.191-.505-.558-.505\"},\"child\":[]}]})(props);\n};\nexport function SiFerretdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.736.223a7.834 7.834 0 0 0-1.48.12C8.821.744 6.504 2.14 5.02 4.086c-.817 1.098-1.203 1.737-1.04 1.737.045 0 .283-.134.52-.312 1.99-1.41 5.6-2.05 8.005-1.41 2.302.608 3.52 1.559 4.544 3.578.862 1.664 1.04 2.302 1.47 5.05l.105.579.282-.357c.505-.653 1.128-2.123 1.38-3.222.847-3.817-.771-6.995-4.44-8.747-1.03-.49-2.048-.742-3.11-.76zm-6.597 5.76c-.307.018-.637.27-1.12.76-.52.51-1.055 1.007-1.604 1.487C1.975 9.447.653 11.6.193 13.456c-.43 1.768-.12 4.352.727 6.03 1.292 2.584 4.738 4.336 8.42 4.291.728 0 .818-.03.565-.178-.832-.505-2.05-1.856-2.495-2.762-.445-.92-.475-1.07-.475-2.614 0-1.5.03-1.693.416-2.42.683-1.292 1.396-1.901 2.732-2.287 1.604-.46 2.406-1.233 2.852-2.733.178-.579.311-1.129.311-1.203 0-.312-.43-.49-1.559-.653-2.109-.282-3.371-.936-4.574-2.302-.386-.446-.668-.66-.974-.642Zm1.182 1.93c.186 0 .408.056.653.167.342.149.387.238.298.624-.268 1.233-.268 1.574 0 1.871.415.46.816.357 1.559-.356.653-.654.861-.728 1.648-.698.297.015.43.119.49.371.045.208.223.416.386.46.387.12.372.357-.074.98-1.544 2.11-4.633 2.095-5.717-.014-.49-.965-.357-2.376.326-3.238.097-.11.245-.167.431-.167Zm14.702 1.771c-.074 0-.208.342-.297.758-.564 2.613-2.54 5.569-4.678 6.95-1.663 1.084-2.346 1.262-4.99 1.277-1.262 0-2.658-.06-3.103-.119l-.802-.119.104.49c.133.713 1.069 1.976 2.004 2.748 1.708 1.396 3.312 1.9 5.51 1.782 3.906-.208 7.07-2.57 8.034-5.97.12-.446.209-1.381.194-2.302 0-1.292-.075-1.767-.401-2.718-.402-1.173-1.322-2.777-1.575-2.777z\"},\"child\":[]}]})(props);\n};\nexport function SiFfmpeg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.72 17.91V6.5l-.53-.49L9.05 18.52l-1.29-.06L24 1.53l-.33-.95-11.93 1-5.75 6.6v-.23l4.7-5.39-1.38-.77-9.11.77v2.85l1.91.46v.01l.19-.01-.56.66v10.6c.609-.126 1.22-.241 1.83-.36L14.12 5.22l.83-.04L0 21.44l9.67.82 1.35-.77 6.82-6.74v2.15l-5.72 5.57 11.26.95.35-.94v-3.16l-3.29-.18c.434-.403.858-.816 1.28-1.23z\"},\"child\":[]}]})(props);\n};\nexport function SiFi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.908 4.621c0-1.749 1.472-3.162 3.286-3.162 1.813 0 3.287 1.416 3.287 3.162s-1.472 3.162-3.287 3.162c-1.816 0-3.286-1.414-3.286-3.162zM24 17.077h-.735c-1.507 0-2.267-1.069-2.267-2.753v-3.162h-5.569v4.482c0 4.869 3.228 6.913 6.353 6.913H24ZM5.578 18.581c0-1.628.901-2.369 2.731-2.369h4.541v-5.064H5.578V9.057c0-1.654 1.427-2.552 3.132-2.552h4.133V1.443H7.289C2.925 1.443 0 3.753 0 8.594v13.95h5.578Z\"},\"child\":[]}]})(props);\n};\nexport function SiFiat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.175 6.25c.489 1.148.726 2.442.726 3.956 0 .818-.068 1.69-.206 2.666-.286 2.01-1.048 4.11-1.75 5.494-.114.223-.205.371-.388.533-.32.282-.602.352-.706.291-.084-.05-.131-.302-.114-.673.014-.316.089-.55.204-.924a36.261 36.261 0 0 0 1.2-5.416c.385-2.664.37-5.06-.201-6.52a2.224 2.224 0 0 0-.22-.427c-.062-.09-.106-.136-.106-.136-1.181-1.183-4.37-1.776-7.56-1.776-3.19 0-6.378.593-7.558 1.776 0 0-.045.045-.106.136a2.122 2.122 0 0 0-.221.426c-.572 1.46-.586 3.857-.201 6.521.26 1.807.672 3.72 1.227 5.504.096.307.158.516.173.84.016.369-.03.62-.114.67-.104.06-.389-.01-.71-.295-.23-.205-.345-.405-.49-.701-.68-1.385-1.393-3.397-1.667-5.323a18.884 18.884 0 0 1-.206-2.666c0-1.514.238-2.807.726-3.954.367-.86.983-1.58 1.782-2.083a13.892 13.892 0 0 1 6.526-2.122 13.9 13.9 0 0 1 .815-.026h.02c.274 0 .548.01.818.026 2.282.138 4.539.873 6.525 2.122a4.583 4.583 0 0 1 1.782 2.082zm-4.763 14.526c-.088.019-.361.083-.632.157-.243.067-.483.12-.597.143a16.51 16.51 0 0 1-3.115.285h-.028c-1.117 0-2.177-.103-3.114-.285a9.23 9.23 0 0 1-.56-.133 14.987 14.987 0 0 0-.604-.148c-.418-.095-.796-.163-.817-.083-.025.093.162.288.401.472.056.042.195.14.357.22.15.073.32.128.386.15 1.098.355 2.346.502 3.941.502h.022c1.563 0 2.794-.142 3.877-.483.371-.117.59-.211.853-.42.22-.174.385-.353.361-.44-.02-.075-.348-.021-.731.063zm-2.508-10.313c-.145-.81-.32-1.432-.518-1.85l-.002-.004h-.021l-.682-.006h-.01l-.027 2.998h1.426l-.001-.01c0-.005-.056-.522-.165-1.128zm5.76 1.687c-.322 2.228-.88 4.623-1.66 6.701-.13.35-.248.48-.53.7a6.23 6.23 0 0 1-2.431 1.028c-.897.175-1.908.272-2.974.272h-.029a15.66 15.66 0 0 1-2.973-.272 6.23 6.23 0 0 1-2.433-1.028c-.282-.22-.399-.35-.527-.7-.782-2.078-1.34-4.473-1.661-6.701-.373-2.577-.35-4.847.18-6.202.067-.17.138-.292.19-.369.046-.065.078-.1.078-.1 1.068-1.07 4.06-1.652 7.16-1.652 3.101 0 6.093.582 7.16 1.653 0 0 .032.033.078.1.052.076.124.197.19.368.531 1.355.554 3.625.182 6.202zM8.904 7.565L6.222 7.55l.267 9.337 1.122.012-.016-4.25h1.014v-1.097H7.595V8.66h1.31V7.564zm1.876-.02l-1.365.003.181 9.35h1.157l.027-9.352zm3.448.014h-2.732l.108 9.334h1.092l.009-4.222h1.418l.002.007c.128.797.138 4.171.138 4.205v.015h1.063l.009-.479c.048-2.42.13-6.469-1.107-8.86zm4.32-.013l-3.344.013v1.077h.998v.01l-.042 8.252h1.132l.275-8.262h.981v-1.09zM23.975 12c0 6.617-5.372 12-11.976 12C5.397 24 .025 18.617.025 12S5.397 0 12 0c6.604 0 11.976 5.383 11.976 12zm-.33-.008C23.64 5.561 18.418.33 11.998.33 5.642.33.46 5.463.358 11.811a1.71 1.71 0 0 1 .684-.78c.655-.388.834-1.385.893-1.981l.012-.062c-.039.395-.07.79-.07 1.218 0 .832.07 1.718.21 2.708.412 2.9 1.813 6.007 2.637 6.958l.046.05.192.202.007.006c2.01 1.647 3.857 2.23 7.061 2.23h.022c3.203 0 5.05-.583 7.06-2.23l.009-.006.185-.197.052-.056c.826-.954 2.226-4.057 2.638-6.957.14-.99.209-1.876.209-2.708 0-.454-.021-.89-.064-1.309l.006.006c.06.597.379 2.141.995 2.586.21.152.375.317.503.503z\"},\"child\":[]}]})(props);\n};\nexport function SiFidoalliance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.849 7.513a1.085 1.085 0 1 0 1.085 1.086v-.001c0-.599-.486-1.085-1.085-1.085zM4.942 10.553v1.418H6.89v4.793h.704V14.04h.509v2.724h.71v-6.211H4.941zM14.122 11.089H14.1c-.287-.416-.862-.702-1.639-.702-1.489 0-2.797 1.224-2.786 3.319 0 1.936 1.181 3.201 2.659 3.201.797 0 1.56-.361 1.935-1.04l.117.893h1.669V7.651h-1.934zm0 2.904c0 .158-.012.313-.034.465l.002-.017c-.11.532-.574.925-1.13.925h-.014.001c-.797 0-1.318-.659-1.318-1.723 0-.978.446-1.767 1.329-1.767.606 0 1.022.437 1.138.947.014.09.023.194.023.3l-.001.054v-.003zM4.802 8.89l.475-1.6a2.914 2.914 0 0 0-.384-.101l-.019-.003a3.654 3.654 0 0 0-.829-.092 3.73 3.73 0 0 0-1.084.159l.027-.007a2.022 2.022 0 0 0-.38.153l.011-.005a2.624 2.624 0 0 0-.663.475c-.5.49-.754 1.155-.754 1.975v.708H-.001v1.418h1.199v4.793h1.921V11.97h1.199v-1.416H3.119v-.75a1.019 1.019 0 0 1 .23-.713l-.001.002a.736.736 0 0 1 .063-.062l.001-.001s.414-.41 1.389-.14zM20.306 10.388c-2.01 0-3.327 1.286-3.327 3.307s1.393 3.212 3.213 3.212c1.664 0 3.276-1.04 3.276-3.327-.002-1.874-1.267-3.192-3.162-3.192zm-.063 5.126c-.832 0-1.276-.797-1.276-1.871 0-.915.361-1.861 1.276-1.861.871 0 1.234.936 1.234 1.851 0 1.137-.482 1.882-1.234 1.882zM22.493 9.761h.232v.589h.14v-.589h.231v-.117h-.603v.117zM23.799 9.644l-.182.505-.181-.505h-.203v.707h.13V9.78l.198.571h.113l.195-.571v.571h.13v-.707h-.201z\"},\"child\":[]}]})(props);\n};\nexport function SiFifa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 8.064v7.872h2.486v-2.843h1.728l.671-1.72H2.486V9.775h2.92l.637-1.711zm6.804 0L6.8 15.936h2.457V8.064zm4.15 0v7.872h2.484v-2.843h1.726l.677-1.72h-2.403V9.775h2.922L17 8.064zm7.658 0l-2.83 7.872h2.375l.306-1.058h2.769l.32 1.058H24l-2.837-7.872zm1.235 2.023l.981 3.277h-1.927z\"},\"child\":[]}]})(props);\n};\nexport function SiFig (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.543 0A4.543 4.543 0 0 0 0 4.543v14.914A4.543 4.543 0 0 0 4.543 24h14.914A4.543 4.543 0 0 0 24 19.457V4.543A4.543 4.543 0 0 0 19.457 0H4.543zm10.715 2.572h3.086a3.326 3.326 0 0 1 .656.065 3.28 3.28 0 0 1 .898.326c.093.05.181.106.268.164.087.058.172.12.252.186a3.264 3.264 0 0 1 .789.96c.05.093.098.188.139.286a3.21 3.21 0 0 1 .187.61 3.276 3.276 0 0 1 .067.66v12.343a3.276 3.276 0 0 1-.146.97 3.21 3.21 0 0 1-.108.3 3.259 3.259 0 0 1-.301.552 3.28 3.28 0 0 1-.627.694c-.08.066-.165.127-.252.185a3.242 3.242 0 0 1-.553.3 3.222 3.222 0 0 1-1.27.255h-3.085a3.326 3.326 0 0 1-.658-.065 3.242 3.242 0 0 1-2.344-1.922 3.222 3.222 0 0 1-.256-1.27V5.829a3.324 3.324 0 0 1 .393-1.555 3.221 3.221 0 0 1 1.04-1.146 3.241 3.241 0 0 1 .553-.3 3.26 3.26 0 0 1 1.272-.255z\"},\"child\":[]}]})(props);\n};\nexport function SiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.852 8.981h-4.588V0h4.588c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.491-4.49 4.491zM12.735 7.51h3.117c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-3.117V7.51zm0 1.471H8.148c-2.476 0-4.49-2.014-4.49-4.49S5.672 0 8.148 0h4.588v8.981zm-4.587-7.51c-1.665 0-3.019 1.355-3.019 3.019s1.354 3.02 3.019 3.02h3.117V1.471H8.148zm4.587 15.019H8.148c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h4.588v8.98zM8.148 8.981c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h3.117V8.981H8.148zM8.172 24c-2.489 0-4.515-2.014-4.515-4.49s2.014-4.49 4.49-4.49h4.588v4.441c0 2.503-2.047 4.539-4.563 4.539zm-.024-7.51a3.023 3.023 0 0 0-3.019 3.019c0 1.665 1.365 3.019 3.044 3.019 1.705 0 3.093-1.376 3.093-3.068v-2.97H8.148zm7.704 0h-.098c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h.098c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.49-4.49 4.49zm-.097-7.509c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h.098c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-.098z\"},\"child\":[]}]})(props);\n};\nexport function SiFigshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a1.0073 1.0073 0 00-1.0078 1.0078c0 .5566.4506 1.0098 1.0078 1.0098.5578 0 1.0078-.4532 1.0078-1.0098C13.0078.451 12.5578 0 12 0zM8.6895.541A1.0069 1.0069 0 008.291.588c-.528.1706-.8194.7408-.6465 1.2695.1719.5304.7419.8213 1.2696.6485.5302-.1724.8208-.7423.6484-1.2715-.128-.3986-.481-.6607-.873-.6934zm6.621 0c-.3917.0331-.7451.2948-.873.6934-.1724.5292.118 1.0991.6484 1.2715.5297.1728 1.0984-.1181 1.2715-.6485.171-.5287-.1205-1.0966-.6504-1.2695a.9976.9976 0 00-.3965-.0469zM10.588 1.9902A.8517.8517 0 0010.416 2c-.4648.0743-.7815.508-.707.9727a.85.85 0 00.9746.707c.4638-.073.7794-.5099.707-.9727a.8537.8537 0 00-.8027-.7168zm2.8242 0a.8498.8498 0 00-.8008.7168c-.0745.464.242.8998.7051.9727.4635.0734.8998-.2415.9746-.705.0717-.466-.2428-.9004-.707-.9747a.8536.8536 0 00-.1719-.0098zm-7.9082.1094a1.0023 1.0023 0 00-.5566.1914c-.4495.327-.5522.9586-.2246 1.4102.3278.4502.96.5508 1.4101.2226.4506-.326.5508-.959.2227-1.4101-.2047-.2816-.5278-.4251-.8516-.414zm12.9922 0c-.3237-.011-.6472.1325-.8516.414-.3284.4508-.2278 1.0832.2227 1.4102.4505.327 1.0817.2281 1.4101-.2226.327-.4516.2273-1.0831-.2226-1.4102a1.0095 1.0095 0 00-.5586-.1914zm-10.7676.7871a.8428.8428 0 00-.3242.0918c-.4186.2126-.5855.7256-.3711 1.1445a.8463.8463 0 001.1426.3711c.4167-.213.5856-.725.373-1.1445a.8538.8538 0 00-.8203-.4629zm8.543 0a.8538.8538 0 00-.8203.463.8513.8513 0 00.373 1.1444c.4194.2145.9317.0487 1.1426-.371.2137-.419.0495-.932-.3691-1.1446a.8521.8521 0 00-.3262-.0918zM12 3.5625a.7086.7086 0 00-.709.709c0 .3927.3168.709.709.709a.7081.7081 0 00.709-.709.7088.7088 0 00-.709-.709zm-2.3281.3809a.7062.7062 0 00-.2793.0332c-.3724.1203-.5755.5197-.4551.8925a.7088.7088 0 00.8926.4551c.3711-.121.5781-.5208.457-.8926a.7123.7123 0 00-.6152-.4882zm4.6562 0c-.2754.0236-.5246.209-.6152.4882-.1209.3718.0847.7717.457.8926.3726.1207.7724-.0833.8926-.455a.7081.7081 0 00-.455-.8926.7053.7053 0 00-.2794-.0332zm-11.1836.5878a1.0132 1.0132 0 00-.8535.416c-.3265.4494-.2245 1.0812.2246 1.4083.4506.3279 1.0804.228 1.4063-.2227.3292-.4505.2311-1.082-.2207-1.4101a.9945.9945 0 00-.5567-.1914zm17.713 0a1.0028 1.0028 0 00-.5587.1915c-.4513.3281-.5491.9596-.2226 1.4101.327.4508.9577.5494 1.4082.2227.4516-.3282.552-.96.2226-1.4102-.2039-.281-.526-.4248-.8496-.414zm-15.4141.0586a.8494.8494 0 00-.6016.25c-.3328.3324-.334.8725-.002 1.2051a.8547.8547 0 001.2051 0c.3306-.3326.332-.873 0-1.205a.847.847 0 00-.6015-.25zm13.1152 0a.8523.8523 0 00-.6035.25c-.3321.3318-.3321.8725 0 1.2051.3332.3315.8724.3321 1.205 0 .3335-.332.3335-.8724 0-1.205a.8474.8474 0 00-.6015-.25zm-11.125.4493a.709.709 0 00-.3926.1347c-.3156.231-.3868.6735-.1562.9903.2304.3178.6733.3855.9902.1562a.7065.7065 0 00.1563-.9883.7073.7073 0 00-.5977-.293zm9.1328 0a.7074.7074 0 00-.5977.293c-.2297.3172-.16.7595.1563.9882a.707.707 0 00.9902-.1562.7081.7081 0 00-.5488-1.125zm-5.5469.0097a.5897.5897 0 00-.1191.0078c-.3213.0512-.5435.3521-.4922.6739.051.322.3557.5427.6777.4922.3222-.0509.5407-.3532.4903-.6758a.5906.5906 0 00-.5567-.498zm1.961 0a.5882.5882 0 00-.5547.498c-.0515.3215.1675.625.4883.6759.3221.051.6259-.1702.6757-.4922.0524-.3229-.168-.6233-.4902-.6739a.5904.5904 0 00-.1191-.0078zm-3.9453.623a.6048.6048 0 00-.2286.0645.5902.5902 0 00-.2578.793.592.592 0 00.795.2598c.2898-.1497.4077-.5062.2597-.797a.589.589 0 00-.5683-.3202zm5.9316 0c-.2294-.0165-.4582.102-.5684.3204-.1503.2918-.034.648.2559.795a.5923.5923 0 00.7969-.2579.5898.5898 0 00-.2598-.793.5863.5863 0 00-.2246-.0644zM12 6.1876a.4885.4885 0 00-.4883.4883c0 .2703.2186.4883.4883.4883.2704 0 .4902-.218.4902-.4883 0-.2693-.2198-.4883-.4902-.4883zm-1.6035.2617a.4835.4835 0 00-.1914.0235c-.2574.0832-.3985.3588-.3145.6152.0827.2564.3594.396.6153.3125a.4884.4884 0 00.3144-.6152.4917.4917 0 00-.4238-.336zm3.207 0a.4865.4865 0 00-.4219.336.488.488 0 00.3125.6152c.2566.0824.5322-.0561.6153-.3125.0826-.2564-.0561-.5326-.3125-.6152a.4897.4897 0 00-.1934-.0235zm-7.83.2988a.705.705 0 00-.5977.293c-.2308.3153-.1596.7587.1562.9883.317.2307.7605.16.9903-.1563.2296-.3165.159-.759-.1582-.9902a.702.702 0 00-.3907-.1348zm12.455 0a.7098.7098 0 00-.3926.1348.707.707 0 00-.1582.9902c.231.3163.675.3879.9903.1582.3175-.2314.3883-.6749.1582-.9902a.705.705 0 00-.5977-.293zm-10.7832.1075a.592.592 0 00-.418.1738c-.2312.2296-.2301.6047 0 .834a.5895.5895 0 00.836 0 .591.591 0 00.002-.836.5924.5924 0 00-.42-.1718zm9.1094 0a.5885.5885 0 00-.418.1738.5867.5867 0 000 .834.5887.5887 0 00.834 0c.2301-.2302.2315-.6033.002-.834a.5884.5884 0 00-.418-.1738zm-12.7559.084a.856.856 0 00-.8203.4648.849.849 0 00.373 1.1426c.419.2149.9316.046 1.1446-.3711.2136-.4186.0454-.9303-.373-1.1446a.843.843 0 00-.3243-.0917zm16.4043 0a.8529.8529 0 00-.3261.0918c-.4193.2128-.5854.725-.373 1.1445.213.4182.7269.5845 1.1444.371.4195-.2143.5867-.725.373-1.1425a.8538.8538 0 00-.8183-.4648zM8.8535 7.205a.483.483 0 00-.2695.0918c-.2182.158-.2662.4657-.1074.6836.1584.217.4635.2664.6816.1074a.489.489 0 00.1074-.6816.4844.4844 0 00-.412-.2012zm6.293 0a.4847.4847 0 00-.4121.2012c-.16.2184-.1088.5237.1093.6816a.4876.4876 0 00.6817-.1074c.1598-.2179.1088-.5261-.1094-.6836a.4831.4831 0 00-.2695-.0918zm-3.8125.0683a.3879.3879 0 00-.08.004c-.2205.0349-.3718.2414-.336.4609.0338.2193.24.3675.461.334.2194-.035.3678-.2412.3339-.461-.03-.1906-.192-.3296-.379-.3379zm1.332 0a.4009.4009 0 00-.3789.338c-.0324.2176.117.4244.334.4609.2216.0335.4267-.115.461-.336.034-.2178-.1164-.4232-.334-.459a.4094.4094 0 00-.082-.0039zm-11.205.3243c-.3915.0344-.744.2965-.8731.6933-.172.5306.118 1.0999.6484 1.2715.5291.173 1.0974-.1166 1.2696-.6465.1715-.5304-.119-1.0994-.6485-1.2734a1.0013 1.0013 0 00-.3965-.045zm21.078 0a1.0009 1.0009 0 00-.3964.0449c-.5304.1734-.8208.743-.6485 1.2734.1738.53.7409.8195 1.2696.6465.5315-.1716.821-.741.6484-1.2715-.1292-.3968-.482-.6589-.873-.6933zm-12.5546.0996a.409.409 0 00-.1563.043c-.196.1004-.2756.342-.1758.539a.4005.4005 0 00.541.1758c.1973-.101.277-.342.1758-.539a.397.397 0 00-.3847-.2188zm4.0312 0a.3988.3988 0 00-.3847.2168.4012.4012 0 00.1757.541c.1975.1009.4374.022.5391-.1758a.4005.4005 0 00-.1758-.541.3983.3983 0 00-.1543-.041zm-6.3047.6855c-.1568-.0054-.3144.0641-.412.2012-.159.217-.1098.523.1074.6816.2181.1596.5225.1084.6816-.1093.1592-.2186.1093-.523-.1074-.6817a.4847.4847 0 00-.2696-.0918zm8.5801 0a.4904.4904 0 00-.2715.0918.4873.4873 0 00-.1074.6816c.1598.2178.464.268.6816.1094.2187-.1597.2672-.4645.1075-.6816a.481.481 0 00-.4102-.2012zm-9.9863.1035a.594.594 0 00-.5703.3223.5913.5913 0 00.2597.793.5867.5867 0 00.793-.2559c.1484-.292.0326-.649-.2578-.7969a.5837.5837 0 00-.2246-.0625zm11.3926 0a.59.59 0 00-.2266.0625c-.2913.1472-.4053.5048-.2578.7969a.5895.5895 0 00.793.2578.5898.5898 0 00.2578-.795.5867.5867 0 00-.5664-.3222zM8.9043 8.5a.4096.4096 0 00-.2871.1191.4023.4023 0 00.002.5684.4024.4024 0 00.5683 0 .4023.4023 0 000-.5684.4.4 0 00-.2832-.1191zm6.1934.002a.4004.4004 0 00-.2852.1171.3993.3993 0 00.002.5684.3998.3998 0 00.5664 0c.1577-.158.1568-.4129 0-.5684a.3991.3991 0 00-.2832-.1171zm-10.5079.4042c-.2752.0234-.5233.2071-.6132.4864-.1217.3721.0827.7708.455.8926a.7074.7074 0 00.8926-.4532c.12-.373-.0814-.7734-.455-.8925a.7026.7026 0 00-.2794-.0333zm14.8204 0a.703.703 0 00-.2793.0333c-.3729.1191-.5758.5195-.4551.8925.12.3718.5203.5743.8926.4532.3717-.1218.578-.5205.457-.8926a.7113.7113 0 00-.6152-.4863zM8.127 9.6113a.4015.4015 0 00-.3868.2188.4.4 0 00.1758.539.3974.3974 0 00.539-.1738.401.401 0 00-.1757-.541.3936.3936 0 00-.1523-.043zm7.746 0a.3923.3923 0 00-.1523.043.4008.4008 0 00-.1758.541.4031.4031 0 00.539.1738.3989.3989 0 00.1759-.541.4033.4033 0 00-.3868-.2168zm-13.0722.088a.8528.8528 0 00-.8028.7167.8519.8519 0 00.709.9727.8477.8477 0 00.9727-.7051c.0735-.4642-.2409-.9007-.705-.9746a.8745.8745 0 00-.174-.0098zm18.3984 0a.854.854 0 00-.1719.0097.8498.8498 0 00-.707.9746.8477.8477 0 00.9727.705.8494.8494 0 00.707-.9726c-.0643-.4055-.4057-.6986-.8008-.7168zm-14.3047.1679a.4876.4876 0 00-.4218.336.4873.4873 0 00.3144.6152c.2558.084.5329-.0558.6152-.3125.0838-.2558-.0578-.5337-.3144-.6172a.4888.4888 0 00-.1934-.0215zm10.211 0a.489.489 0 00-.1934.0215c-.2555.0835-.3971.3614-.3144.6172a.4896.4896 0 00.6171.3125c.2564-.0827.3947-.3593.3106-.6153-.0601-.192-.2299-.3192-.42-.336zm-11.4942.5332a.5899.5899 0 00-.5547.498c-.0511.323.1676.6266.4883.6778.3235.0518.6274-.1689.6778-.4903a.5926.5926 0 00-.4922-.6777.5862.5862 0 00-.1192-.0078zm12.7774 0a.593.593 0 00-.1192.0078.5923.5923 0 00-.4922.6777.5897.5897 0 00.6758.4903c.322-.0512.5414-.3548.4903-.6778a.5905.5905 0 00-.5547-.498zm-10.7325.5137c-.1853.0095-.3472.145-.3789.3359a.4024.4024 0 00.336.461.4009.4009 0 00.457-.332.4025.4025 0 00-.334-.463.3937.3937 0 00-.08-.002zm8.6875 0a.4169.4169 0 00-.082.0039.4023.4023 0 00-.332.461c.0341.2184.2406.3656.459.332a.4019.4019 0 00.334-.459c-.0301-.1928-.1917-.3291-.379-.338zm-15.3359.078C.4508 10.9922 0 11.4437 0 12c0 .5575.4503 1.0078 1.0078 1.0078A1.0069 1.0069 0 002.0156 12c0-.5564-.4506-1.0078-1.0078-1.0078zm21.9844 0c-.558 0-1.0098.4509-1.0098 1.0079 0 .5569.4518 1.0078 1.0098 1.0078C23.5466 13.0078 24 12.5575 24 12c0-.5564-.4534-1.0078-1.0078-1.0078zm-18.7207.299a.7086.7086 0 00-.709.7089c.001.3924.317.709.709.709a.7086.7086 0 00.709-.709.709.709 0 00-.709-.709zm15.457 0c-.3904 0-.709.3171-.709.7089 0 .3924.3186.709.709.709a.7062.7062 0 00.707-.709c0-.3918-.3146-.709-.707-.709zm-13.0527.2187c-.27 0-.4883.2213-.4883.4902 0 .269.2183.4879.4883.4863.269 0 .4883-.2174.4883-.4863 0-.269-.2194-.4902-.4883-.4902zm10.6484 0c-.2698 0-.4883.2213-.4883.4902a.486.486 0 00.4883.4863.4867.4867 0 00.4883-.4863c0-.269-.218-.4902-.4883-.4902zm-1.0176.7734c-.1861.0074-.3464.147-.377.3379-.0348.2202.1128.426.3321.461.2187.0331.4252-.1146.461-.334a.3976.3976 0 00-.334-.459.4076.4076 0 00-.082-.0059zm-8.6132.002a.4168.4168 0 00-.082.0039c-.2181.0347-.37.239-.334.459.035.2198.2407.3674.4609.334a.404.404 0 00.334-.461c-.0306-.192-.192-.3278-.379-.336zm-2.0274.1328a.6064.6064 0 00-.121.0058c-.3208.0504-.5395.3529-.4884.6758a.5894.5894 0 00.6739.4922.5917.5917 0 00.4922-.6777c-.0441-.2816-.2813-.4838-.5567-.4961zm12.668 0a.5905.5905 0 00-.5567.498c-.0513.3214.168.625.4903.6758.3231.0514.6244-.1701.6758-.4922.051-.323-.1671-.6254-.4903-.6758a.585.585 0 00-.1191-.0058zm-15.455.1816a.8538.8538 0 00-.172.0098c-.4638.0735-.7817.5105-.709.9746.074.4642.511.7812.9747.707.466-.0732.7808-.5105.707-.9746a.8497.8497 0 00-.8008-.7168zm18.242 0c-.396.0179-.7384.3103-.8026.7168-.0727.4641.2442.901.709.9746.4636.0739.8983-.243.9726-.707.0726-.4648-.2409-.9011-.705-.9746a.8735.8735 0 00-.174-.0098zm-14.1405.5586a.4917.4917 0 00-.1934.0215.4892.4892 0 00-.3144.6172c.082.2566.3585.3958.6152.3125.2566-.0827.397-.3606.3144-.6153a.4879.4879 0 00-.4218-.3359zm10.041 0a.4896.4896 0 00-.4238.336c-.0822.2546.0589.5325.3144.6152.2564.0833.532-.056.6133-.3125.084-.2572-.0542-.5337-.3106-.6172a.4916.4916 0 00-.1933-.0215zm-8.9512.4277a.3959.3959 0 00-.1523.043.3983.3983 0 00-.1758.541.399.399 0 00.5371.1758.3994.3994 0 00.1758-.539c-.0759-.1482-.2297-.2314-.3848-.2208zm7.8613 0a.4052.4052 0 00-.3886.2188.4037.4037 0 00.1758.541c.1983.101.4418.0231.543-.1758.1005-.196.0196-.4391-.1778-.541a.3905.3905 0 00-.1524-.043zm-11.2207.0938a.7048.7048 0 00-.2793.0332c-.3723.1218-.5767.5213-.455.8945a.7072.7072 0 00.8925.4531c.3737-.12.575-.5195.4551-.8925a.7111.7111 0 00-.6133-.4883zm14.5782 0a.7118.7118 0 00-.6133.4902c-.1196.372.0822.7705.455.8906a.7071.7071 0 00.8926-.453c.1226-.3733-.0833-.7728-.455-.8946a.7042.7042 0 00-.2793-.0332zm-13.0704.6543a.5803.5803 0 00-.2246.0625c-.2907.148-.4083.5042-.2597.795a.59.59 0 00.7949.2577.5864.5864 0 00.2578-.793.5911.5911 0 00-.5683-.3222zm11.5625 0a.5917.5917 0 00-.5683.3203.5902.5902 0 00.2578.795c.2907.1473.6475.0327.795-.2579.1488-.2907.0317-.6469-.2598-.795a.5784.5784 0 00-.2247-.0624zm-16.1484.0566a.992.992 0 00-.3965.0469c-.5303.1712-.8205.741-.6484 1.2715.172.5289.741.8182 1.2695.6465.53-.173.8197-.741.6485-1.2715a1.009 1.009 0 00-.873-.6934zm20.7344 0a1.0107 1.0107 0 00-.873.6934c-.1707.5305.118 1.0985.6484 1.2715.5292.1717 1.0972-.1176 1.2695-.6465.1726-.5306-.117-1.1003-.6484-1.2715a.992.992 0 00-.3965-.0469zm-14.6914.25a.4847.4847 0 00-.2695.0938c-.2175.159-.2663.4639-.1094.6816a.4893.4893 0 00.6836.1094c.2167-.1586.2683-.4658.1093-.6836a.494.494 0 00-.414-.2012zm8.6484 0a.4911.4911 0 00-.412.2012.4897.4897 0 00.1073.6836c.2185.1585.525.11.6817-.1094a.4875.4875 0 00-.1075-.6816.4844.4844 0 00-.2695-.0938zm-7.4199.0547c-.1028 0-.2064.037-.2852.1152a.4016.4016 0 000 .5684c.1582.1572.4118.1574.5684.002a.403.403 0 000-.5704.3973.3973 0 00-.2832-.1152zm6.1914 0a.3975.3975 0 00-.2832.1172c-.1579.1565-.1568.4122 0 .5684.1589.1565.4117.1565.5684 0a.4016.4016 0 000-.5684.4026.4026 0 00-.2852-.1172zm-11.42.666a.8422.8422 0 00-.3241.0899c-.4186.2135-.5862.7252-.373 1.1445.2132.4186.7252.5859 1.1444.373.4185-.2139.5867-.7263.373-1.1445-.1596-.3135-.4891-.4857-.8202-.4629zm16.6485 0a.8553.8553 0 00-.8203.463c-.2134.4181-.0462.9305.373 1.1445.4187.2128.9304.0455 1.1446-.3731.214-.4193.0459-.931-.373-1.1445a.8397.8397 0 00-.3243-.0899zM13.959 15.5a.4037.4037 0 00-.1543.043c-.195.1015-.2742.3435-.1738.541a.3988.3988 0 00.539.1758c.1964-.1017.277-.3433.1758-.541a.4006.4006 0 00-.3867-.2188zm-3.918.002c-.1569-.0107-.3114.0691-.3867.2167a.4012.4012 0 00.1758.541c.1978.1.4387.0222.539-.1757.1023-.198.0228-.4393-.1738-.541a.402.402 0 00-.1543-.041zm-1.1523.3164a.487.487 0 00-.4121.2011.4874.4874 0 10.789.5723c.158-.217.1098-.5226-.1074-.6816a.4826.4826 0 00-.2695-.0918zm6.2246 0a.4833.4833 0 00-.2696.0918c-.2181.159-.2675.4646-.1093.6816.1573.2192.4643.2671.6816.1094.2182-.159.2692-.4645.1094-.6817a.4863.4863 0 00-.4121-.2011zm-9.3906.0156a.6996.6996 0 00-.3907.1328c-.3158.2309-.3867.6757-.1562.9922a.7044.7044 0 00.9883.1562c.3172-.2307.3884-.6724.1582-.9882a.711.711 0 00-.5996-.293zm12.5546 0a.7134.7134 0 00-.5996.293.7052.7052 0 00.1582.9882c.3173.2312.761.162.9903-.1562.2301-.3165.1593-.7613-.1582-.9922a.699.699 0 00-.3907-.1328zm-6.9804.0879c-.188.008-.3496.1486-.3809.3418-.0333.2182.1183.4223.338.459.2195.0349.4232-.116.4589-.336.0335-.2184-.1165-.4225-.334-.459a.4123.4123 0 00-.082-.0058zm1.4062.002a.4108.4108 0 00-.082.0038c-.2196.035-.3667.2411-.332.461a.4013.4013 0 00.459.334.3987.3987 0 00.332-.459.3996.3996 0 00-.377-.3399zm-5.2578.039a.59.59 0 00-.418.1738.5905.5905 0 00.836.834c.2313-.2306.2324-.6037.002-.834a.5958.5958 0 00-.42-.1738zm9.1094 0a.5891.5891 0 00-.418.1738.5867.5867 0 000 .834.5875.5875 0 00.834 0 .5893.5893 0 000-.834.5849.5849 0 00-.416-.1738zm-6.2422.6133a.4878.4878 0 00-.4219.336.4857.4857 0 00.3145.6151.489.489 0 00.6152-.3125c.0834-.2569-.0579-.5344-.3144-.6171a.4904.4904 0 00-.1934-.0215zm3.375 0a.4907.4907 0 00-.1934.0215c-.255.0827-.3961.3602-.3125.6171.0824.2559.3589.3944.6153.3125a.4885.4885 0 00.3125-.6152.4877.4877 0 00-.4219-.336zM12 16.8359a.4878.4878 0 00-.4883.4883c0 .2698.2186.4883.4883.4883.2704 0 .4902-.2185.4902-.4883 0-.2703-.2198-.4883-.4902-.4883zm-2.8828.3125a.5908.5908 0 00-.5684.3204c-.1467.2916-.0318.6463.2578.7949a.5923.5923 0 00.797-.2578c.1469-.2902.0316-.6464-.2579-.795a.6008.6008 0 00-.2285-.0625zm5.7656 0a.59.59 0 00-.2265.0625c-.2917.1479-.4058.504-.2598.795.1494.291.5061.4064.7969.2578a.59.59 0 00.2558-.795.5864.5864 0 00-.5664-.3203zm-11.8105.3028a1.0037 1.0037 0 00-.5567.1933c-.4502.3271-.5514.9589-.2226 1.4102.327.4491.9581.549 1.4082.2207.4518-.3276.5497-.9583.2226-1.4082a1.0092 1.0092 0 00-.8515-.416zm17.8554.002c-.3235-.011-.6468.133-.8515.414-.3285.4499-.2287 1.0811.2226 1.4082.452.3284 1.082.2284 1.4082-.2207.3293-.4513.2284-1.083-.2226-1.4102a1.0005 1.0005 0 00-.5567-.1914zm-13.4453.0898a.7077.7077 0 00-.5976.293c-.2306.3159-.1594.7591.1562.9902.3175.23.7595.1583.9902-.1582.23-.317.1605-.7607-.1562-.9903a.704.704 0 00-.3926-.1347zm9.0352 0a.7037.7037 0 00-.3926.1347c-.316.2296-.386.6733-.1563.9903a.7096.7096 0 00.9903.1582c.317-.2302.387-.6743.1562-.9903a.707.707 0 00-.5976-.293zm-11.0742.162a.8466.8466 0 00-.6016.25c-.3328.3325-.3328.8713 0 1.2032.3322.3323.8696.3323 1.2031 0a.8518.8518 0 00-.6015-1.4531zm13.1152.002a.8552.8552 0 00-.6035.248.85.85 0 000 1.2032c.3332.3323.8707.3314 1.205 0a.85.85 0 000-1.2031.8443.8443 0 00-.6015-.248zm-7.5918.0625c-.2745.0126-.514.2163-.5586.498-.0513.322.1692.625.4922.6759a.5907.5907 0 00.6758-.4922c.0527-.3215-.168-.6227-.4903-.6739a.5935.5935 0 00-.1191-.0078zm2.0664 0a.5911.5911 0 00-.1191.0078c-.3208.0503-.5398.3524-.4883.6739.0505.3222.3509.5441.6738.4922a.5893.5893 0 00.4902-.6758c-.0436-.2818-.282-.486-.5566-.498zm-3.4824.873a.7095.7095 0 00-.6133.4884.708.708 0 00.455.8925c.3734.1214.7732-.0839.8946-.455.1211-.3726-.0859-.772-.457-.8926a.7066.7066 0 00-.2793-.0332zm4.8984 0a.7056.7056 0 00-.2793.0313c-.3723.1212-.5779.522-.457.8946.1208.3711.5218.5764.8945.455.3717-.1217.5762-.5197.4551-.8925a.7086.7086 0 00-.6133-.4883zM12 19.0196a.7086.7086 0 00-.709.709c0 .3916.3168.709.709.709a.7088.7088 0 00.709-.709.7089.7089 0 00-.709-.709zm-4.1504.3946a.8518.8518 0 00-.8183.4629c-.2126.4187-.0453.9295.373 1.1425.419.2138.9304.0484 1.1426-.3691.213-.419.0486-.9328-.3711-1.1465a.8503.8503 0 00-.3262-.0898zm8.3008 0a.8595.8595 0 00-.3281.0898c-.4181.2137-.5848.7261-.3711 1.1465.2138.4186.7278.5829 1.1465.3691.4175-.2125.5833-.7238.3691-1.1425a.8465.8465 0 00-.8164-.463zm-10.5762.4687a1.0087 1.0087 0 00-.8515.416c-.3276.4503-.225 1.0812.2246 1.4082a1.0076 1.0076 0 001.4082-.2226c.3281-.4506.2279-1.0811-.2227-1.4082a1.0096 1.0096 0 00-.5586-.1934zm12.8516 0a1.0122 1.0122 0 00-.5586.1934c-.4505.327-.5511.9576-.2227 1.4082.328.4513.9583.5508 1.4102.2226.45-.3265.5497-.958.2226-1.4082a1.0083 1.0083 0 00-.8515-.416zm-7.914.4258c-.3956.0179-.7384.3119-.8028.7187-.0739.4623.2422.8998.707.9727.4626.0743.9001-.244.9727-.709.0745-.4639-.242-.8983-.7051-.9726a.8516.8516 0 00-.1719-.0098zm2.9784 0a.8513.8513 0 00-.879.9844c.0734.4642.5083.7813.9728.707.4642-.0729.7806-.509.707-.9727-.0638-.4068-.4067-.7008-.8008-.7187zm-4.9726 1.1406c-.391.0338-.7442.2962-.873.6934-.173.5292.117 1.0971.6464 1.2695.5306.1726 1.1008-.1183 1.2715-.6484.1724-.5296-.1182-1.097-.6484-1.2696a.9986.9986 0 00-.3965-.0449zm6.9648 0a.9988.9988 0 00-.3965.045c-.529.1725-.8218.74-.6504 1.2695.1714.53.743.821 1.2715.6484.5299-.1724.8213-.7403.6504-1.2695-.1298-.3972-.4834-.6596-.875-.6934zM12 21.9824c-.5572 0-1.0078.4532-1.0078 1.0098S11.4428 24 12 24a1.007 1.007 0 001.0078-1.0078c0-.5566-.45-1.0098-1.0078-1.0098Z\"},\"child\":[]}]})(props);\n};\nexport function SiFila (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.814 8.027c-.614 0-1.113.498-1.113 1.113v5.72a1.113 1.113 0 0 0 2.226 0V9.14c0-.614-.498-1.113-1.113-1.113m-2.849.078H1.113a1.113 1.113 0 0 0 0 2.226h4.852a1.113 1.113 0 0 0 0-2.226m17.411 4.417L21.03 8.705c-.275-.444-.65-.658-1.125-.658-.488 0-.904.229-1.162.658l-2.715 4.5c-.186.308-.4.436-.753.436h-2.019a.275.275 0 0 1-.285-.284V9.102c0-.613-.497-1.075-1.11-1.075-.614 0-1.11.463-1.11 1.076v5.215c0 .784.774 1.544 1.544 1.544h4.064c.576 0 .963-.42 1.292-.996l2.114-3.627c.018-.04.053-.091.093-.091.043 0 .07.051.091.088l1.384 2.22c.058.094.069.141.032.225-.033.077-.108.093-.23.093h-1.943a1.044 1.044 0 1 0 0 2.088h3.17c.77 0 1.638-.734 1.638-1.693 0-.608-.117-.822-.624-1.647M5.431 10.954H1.113c-.615 0-1.113.498-1.113 1.113v2.715a1.113 1.113 0 1 0 2.226 0v-1.268c0-.185.15-.334.334-.334h2.87a1.113 1.113 0 0 0 0-2.226\"},\"child\":[]}]})(props);\n};\nexport function SiFilament (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.074 9.603c-.404 0-.866.122-1.128.596-.086.15-.151.336-.197.558l-.084.41H.149l-.149.71h.515c-.17.812-.337 1.623-.506 2.435h.925c.172-.811.34-1.624.508-2.436h.849l.149-.71h-.888l.058-.295a.664.664 0 0 1 .18-.364c.1-.086.229-.13.36-.122.173.003.344.044.5.12l.224-.757a2.173 2.173 0 0 0-.8-.145Zm3.865.007-.944.082c-.319 1.54-.64 3.08-.962 4.62h.928c.021-.104.491-2.381.978-4.702Zm-2.046.022c-.288-.01-.605.136-.654.473-.13.663.559.652.874.481.115-.064.19-.188.227-.37.054-.21-.027-.584-.447-.584Zm19.43.347-.95.167-.213 1.02h-.5l-.15.71h.503c-.091.448-.185.895-.279 1.342-.056.267-.05.488.02.662.13.348.483.517.961.517.127-.003.473-.031.664-.151l.1-.772a.818.818 0 0 1-.46.154c-.42 0-.37-.409-.326-.617l.235-1.135h.923l.149-.71h-.925s.074-.348.248-1.187zM7.542 11.08c-.562.001-1.147.192-1.204.211l-.146.825c.2-.087.66-.264 1.077-.264a.93.93 0 0 1 .357.058.336.336 0 0 1 .217.411c-.902.148-1.15.172-1.342.238-.38.116-.665.375-.728.762-.084.389.03.726.292.918a.809.809 0 0 0 .493.147c.402.008.714-.216.9-.495h.072l-.04.42h.8c.143-.661.28-1.324.416-1.987.056-.256.047-.476-.028-.662-.197-.485-.735-.582-1.136-.582Zm3.958 0c-.142 0-.28.025-.41.076-.258.1-.482.273-.644.498h-.08l.067-.536-.783.047c-.215 1.049-.436 2.097-.655 3.145h.929l.133-.65c.095-.438.183-.878.273-1.317.301-.357.501-.406.646-.406.335 0 .34.33.278.627-.077.365-.15.731-.225 1.097-.044.217-.088.434-.134.65h.925c.77-3.66-.303 1.396.417-1.998.053-.064.117-.116.175-.174.108-.099.266-.203.447-.203.328 0 .343.317.279.628l-.36 1.746h.928c.135-.673.278-1.345.419-2.017.08-.368.054-.661-.074-.882-.128-.22-.35-.331-.668-.331-.142 0-.28.026-.412.077a1.492 1.492 0 0 0-.658.51h-.068a.708.708 0 0 0-.204-.404c-.13-.122-.31-.183-.541-.183Zm4.752 0c-.29 0-.547.063-.773.188-.633.352-.825 1.049-.878 1.324-.087.437-.114 1.182.57 1.581.25.146.56.22.932.22.428 0 .825-.103.978-.196l.124-.8c-.089.05-.186.091-.292.124-.464.144-1.192.182-1.404-.304a.706.706 0 0 1-.053-.313l.001-.012h1.9c.048-.12.073-.249.109-.373.07-.287.07-.54-.003-.756a.9.9 0 0 0-.416-.503c-.205-.12-.47-.18-.795-.18zm3.956 0c-.147 0-.288.025-.424.076a1.41 1.41 0 0 0-.654.498h-.076l.064-.536-.782.047c-.088.426-.292 1.421-.655 3.145h.928c.136-.656.273-1.311.407-1.967a2.03 2.03 0 0 1 .203-.208.95.95 0 0 1 .218-.144c.168-.08.476-.097.556.117.044.115.045.267.004.456l-.36 1.746h.928l.138-.654c.093-.455.188-.909.284-1.363.124-.59.004-1.213-.779-1.213zm-16.63.08-.453.016-.058.212a.08.08 0 0 0 .03.074l.314.219-.366.024c-.03.002-.053.026-.06.058l-.03.137a.08.08 0 0 0 .03.074l.314.218-.366.024c-.03.002-.053.026-.06.058l-.029.135a.08.08 0 0 0 .03.075l.314.218-.367.025c-.028.002-.053.025-.06.057-.011.046-.02.092-.029.138a.08.08 0 0 0 .03.073l.314.218-.366.025c-.03.002-.053.025-.06.058l-.03.137a.08.08 0 0 0 .032.073l.313.22-.367.023c-.028.002-.053.025-.06.057l-.127.504h.41l.065-.274.513-.045c.03-.002.054-.025.06-.058l.03-.136a.08.08 0 0 0-.031-.074l-.314-.219.367-.024c.029-.002.053-.026.06-.058.011-.045.019-.091.028-.136a.08.08 0 0 0-.03-.074l-.313-.219.366-.025c.03 0 .054-.025.06-.057l.03-.137a.08.08 0 0 0-.03-.074l-.315-.218.367-.025c.029-.002.053-.025.06-.057l.028-.128v-.009a.08.08 0 0 0-.03-.074l-.313-.218.367-.024c.029-.002.053-.025.06-.057l.028-.128v-.01a.08.08 0 0 0-.03-.073l-.415-.292Zm12.693.585c.168 0 .286.07.357.208a.67.67 0 0 1 .057.398l-1.122.024.01-.028c.122-.368.392-.6.698-.602zM7.728 12.75l-.105.504c-.173.256-.409.405-.633.408-.099.004-.359-.054-.305-.368a.374.374 0 0 1 .252-.286c.234-.089.519-.113.685-.196a.691.691 0 0 0 .106-.062Z\"},\"child\":[]}]})(props);\n};\nexport function SiFiledotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.034 11.837a2.976 2.976 0 0 1-1.868 2.718l-4.385 1.401-.06-5.23c-.011-1.256-.514-2.48-1.135-2.727-2.024-.816-4.054-1.619-6.07-2.456a1.028 1.028 0 0 1-.509-.934c.001-.272.11-.532.303-.724.115-.061.236-.111.36-.149L18.049.084c1.051-.331 1.91.341 1.91 1.504l.075 10.249Zm-7.02 10.296c.011 1.256-.485 2.073-1.102 1.821-2.287-.916-4.565-1.869-6.854-2.773-.775-.509-.999-1.023-.999-2.653L3.975 7.471a4.295 4.295 0 0 1 .256-1.732 2.755 2.755 0 0 1 1.116-1.368c.063-.044.129-.085.196-.121-.195.19-.304.451-.303.723-.019.381.175.741.504.934l1.13.467 4.945 2.013c.616.252 1.135 1.47 1.135 2.726.027 3.673.043 7.347.06 11.02Z\"},\"child\":[]}]})(props);\n};\nexport function SiFiles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.367 2.453a.822.822 0 0 0-.576.238L.241 14.213a.822.822 0 0 0-.241.584v.066c0-.323.209-.608.516-.709l7.275-2.318a2.437 2.437 0 0 0 1.584-1.592l2.318-7.267a.757.757 0 0 1 .719-.524zM0 14.863v5.047c0 .904.733 1.637 1.637 1.637h20.726c.904 0 1.637-.733 1.637-1.637V4.09c0-.904-.733-1.637-1.637-1.637h-9.951v.5l.088 9.861c.01 1.175-.962 2.14-2.137 2.14L0 14.862zM12 3.66l-2.148 6.735v.001a2.94 2.94 0 0 1-1.909 1.916l-6.716 2.141h9.136c.905 0 1.638-.734 1.637-1.639zm-10.363.975c-.905 0-1.638.734-1.637 1.638v7.473l9.135-9.111Z\"},\"child\":[]}]})(props);\n};\nexport function SiFilezilla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.999 1.861V.803a.81.81 0 0 1-.568-.236.81.81 0 0 1-.234-.567h-1.06a.806.806 0 0 1-1.608 0h-1.06a.805.805 0 0 1-1.608 0h-1.059a.807.807 0 0 1-.845.765.808.808 0 0 1-.764-.765h-1.06a.806.806 0 0 1-1.609 0h-1.058a.805.805 0 0 1-1.608 0h-1.06a.794.794 0 0 1-.825.774A.803.803 0 0 1 7.197 0h-1.06A.806.806 0 0 1 4.53 0H3.47a.803.803 0 0 1-1.607 0H.803a.806.806 0 0 1-.802.803V1.86a.804.804 0 0 1 0 1.607v1.06a.803.803 0 0 1 0 1.607v1.059a.805.805 0 0 1 0 1.608v1.06a.803.803 0 1 1 0 1.607v1.06a.803.803 0 0 1 0 1.606v1.06a.803.803 0 1 1 0 1.608v1.06c.444.017.79.388.774.83a.801.801 0 0 1-.774.775v1.061a.803.803 0 1 1 0 1.608v1.06A.805.805 0 0 1 .804 24h1.06a.806.806 0 0 1 1.607 0h1.06a.806.806 0 0 1 1.608 0h1.059a.806.806 0 0 1 1.609 0h1.06a.804.804 0 0 1 1.607 0h1.06a.806.806 0 0 1 1.607 0H15.2a.807.807 0 0 1 1.61 0h1.058a.807.807 0 0 1 1.61 0h1.059a.804.804 0 0 1 1.606 0h1.054c0-.21.086-.418.235-.568a.808.808 0 0 1 .567-.234v-1.06a.805.805 0 0 1 0-1.606v-1.06a.805.805 0 0 1 0-1.608v-1.06a.806.806 0 0 1 0-1.608v-1.061a.804.804 0 0 1 0-1.608V11.47a.806.806 0 0 1 0-1.608v-1.06a.804.804 0 0 1 0-1.607v-1.06a.805.805 0 0 1 0-1.606v-1.06a.806.806 0 0 1 0-1.608zm-4.067 9.836L13.53 17.92c.58.09 1.14.225 1.742.225 1.464 0 3.147-.445 4.285-.916l-.584 2.745c-1.675.805-2.7.87-3.701.87-1.095 0-2.144-.356-3.215-.356-.602 0-1.473.045-2.008.4l-1.16-2.052 6.604-6.54h-7.6l-1.45 6.806h-3.17L6.577 3.528h10.487l-.67 3.145H9.097l-.624 2.924h11.973z\"},\"child\":[]}]})(props);\n};\nexport function SiFineco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.712 8.72a1.702 1.702 0 0 0-1.21.488A1.678 1.678 0 0 0 0 10.404v3.176a1.677 1.677 0 0 0 .496 1.207 1.702 1.702 0 0 0 1.216.493h20.576v-.016a1.702 1.702 0 0 0 1.21-.487A1.678 1.678 0 0 0 24 13.58v-3.176a1.677 1.677 0 0 0-.502-1.196 1.703 1.703 0 0 0-1.21-.488Zm18.256 1.462c1.136 0 2.048.81 2.048 1.795 0 .984-.912 1.794-2.048 1.794-1.136 0-2.048-.683-2.048-1.794 0-1.112.912-1.795 2.048-1.795zm-3.344.016a3.238 3.238 0 0 1 .96.143l-.16.524a2.416 2.416 0 0 0-.8-.127c-.992 0-1.792.397-1.792 1.254 0 .858.8 1.255 1.792 1.255a2.432 2.432 0 0 0 .784-.127l.16.524a3.238 3.238 0 0 1-.944.143c-1.52 0-2.464-.683-2.464-1.795 0-1.111 1.104-1.794 2.464-1.794zm-14.336.063h2.576v.508h-1.92v.97h1.824v.508H2.944v1.477h-.656Zm3.312 0h.656v3.469H5.6Zm1.504 0h.816l1.088 1.477a9.027 9.027 0 0 1 .72 1.16h.016a12.977 12.977 0 0 1-.064-1.446v-1.191h.656v3.462H9.6L8.496 12.2a11.58 11.58 0 0 1-.752-1.207h-.016c.032.444.032.905.032 1.477v1.238l-.656.016zm4 0h2.576v.524h-1.92v.953h1.824v.524H11.76v.953l1.92-.016v.524h-2.576zm8.864.445c-.768 0-1.392.397-1.392 1.27 0 .874.624 1.271 1.392 1.271.768 0 1.392-.572 1.392-1.27 0-.7-.624-1.271-1.392-1.271z\"},\"child\":[]}]})(props);\n};\nexport function SiFing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.706 9.583c1.359.018 2.375 1.094 2.347 2.485-.027 1.317-1.117 2.352-2.46 2.337-1.333-.015-2.352-1.113-2.334-2.515.018-1.334 1.069-2.325 2.447-2.307zm6.259-3.852c-.654-.716-1.447-1.271-2.316-1.726-.26-.136-.535-.241-.8-.367-.444-.211-.719-.539-.579-1.052.147-.537.547-.738 1.071-.597 1.196.323 2.198 1.004 3.15 1.769.114.092.225.189.333.288.194.179.346.542.611.459.254-.08.079-.446.129-.681.048-.228.161-.422.405-.402.256.021.519.141.511.455a46.98 46.98 0 0 1-.116 2.518c-.03.375-.31.509-.68.491a72.177 72.177 0 0 0-2.081-.068c-.329-.006-.679.012-.685-.439-.005-.435.333-.47.667-.483.118-.002.256.039.38-.165zm-4.422-3.714c-.007 1.068-.87 1.938-1.917 1.934-1.063-.004-1.98-.923-1.971-1.973.009-1.057.944-1.993 1.973-1.978 1.059.016 1.922.926 1.915 2.017zM5.465 20.792c-1.049-.013-1.895-.891-1.894-1.964.001-1.106.893-2.018 1.949-1.993 1.063.025 1.925.959 1.893 2.049-.032 1.081-.89 1.921-1.948 1.908zm5.267 1.174c.023-1.124.857-1.896 2.017-1.866 1.04.026 1.9.948 1.861 1.992-.039 1.04-.955 1.92-1.984 1.908-1.062-.013-1.917-.931-1.894-2.034zM5.649 6.814c-1.13.002-1.966-.822-1.964-1.937.001-1.051.875-1.947 1.911-1.96 1.046-.012 1.953.868 1.965 1.907.013 1.126-.816 1.988-1.912 1.99zm-2.954 7.082a1.92 1.92 0 0 1-1.927-1.923c-.004-1.08.894-1.988 1.96-1.981 1.08.007 1.94.912 1.916 2.014-.025 1.099-.845 1.894-1.949 1.89zm18.931 5.047c-.009 1.103-.872 1.926-1.997 1.906-1.077-.02-1.84-.844-1.831-1.979.009-1.11.811-1.921 1.899-1.92 1.077.002 1.938.892 1.929 1.993zm1.606-6.87a10.458 10.458 0 0 1-.856 4.046c-.188.443-.51.724-1.044.546-.495-.164-.75-.587-.542-1.095a9.8 9.8 0 0 0 .731-4.062c-.016-.522.304-.818.836-.814.487.003.793.245.843.75.021.208.022.419.032.629zm-6.363 7.897c.575-.027.804.255.925.598a.808.808 0 0 1-.351.989c-.404.25-.84.473-1.328.529-.418.048-.741-.114-.918-.502-.168-.369-.102-.738.216-.965a4.064 4.064 0 0 1 1.456-.649zM4.67 7.84c-.027.8-.622 1.588-1.179 1.563-.441-.02-.886-.47-.885-.896.001-.762.622-1.615 1.161-1.595.512.017.92.437.903.928zm5.254 13.317c.003.597-.317.906-.902.853-.495-.045-.914-.299-1.291-.586-.302-.23-.411-.589-.213-.958.192-.358.472-.564.919-.497.838.124 1.484.627 1.487 1.188zm-6.456-6.743c.531.002 1.093.781 1.075 1.491a.871.871 0 0 1-.859.835c-.508.009-1.082-.738-1.1-1.432-.011-.423.456-.895.884-.894zM9.102 2.002c.53.009.839.344.818.885-.021.528-.81 1.1-1.487 1.078-.47-.015-.783-.369-.778-.879.006-.596.675-1.097 1.447-1.084z\"},\"child\":[]}]})(props);\n};\nexport function SiFirebase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.455 8.369c-.538-.748-1.778-2.285-3.681-4.569-.826-.991-1.535-1.832-1.884-2.245a146 146 0 0 0-.488-.576l-.207-.245-.113-.133-.022-.032-.01-.005L12.57 0l-.609.488c-1.555 1.246-2.828 2.851-3.681 4.64-.523 1.064-.864 2.105-1.043 3.176-.047.241-.088.489-.121.738-.209-.017-.421-.028-.632-.033-.018-.001-.035-.002-.059-.003a7.46 7.46 0 0 0-2.28.274l-.317.089-.163.286c-.765 1.342-1.198 2.869-1.252 4.416-.07 2.01.477 3.954 1.583 5.625 1.082 1.633 2.61 2.882 4.42 3.611l.236.095.071.025.003-.001a9.59 9.59 0 0 0 2.941.568q.171.006.342.006c1.273 0 2.513-.249 3.69-.742l.008.004.313-.145a9.63 9.63 0 0 0 3.927-3.335c1.01-1.49 1.577-3.234 1.641-5.042.075-2.161-.643-4.304-2.133-6.371m-7.083 6.695c.328 1.244.264 2.44-.191 3.558-1.135-1.12-1.967-2.352-2.475-3.665-.543-1.404-.87-2.74-.974-3.975.48.157.922.366 1.315.622 1.132.737 1.914 1.902 2.325 3.461zm.207 6.022c.482.368.99.712 1.513 1.028-.771.21-1.565.302-2.369.273a8 8 0 0 1-.373-.022c.458-.394.869-.823 1.228-1.279zm1.347-6.431c-.516-1.957-1.527-3.437-3.002-4.398-.647-.421-1.385-.741-2.194-.95.011-.134.026-.268.043-.4.014-.113.03-.216.046-.313.133-.689.332-1.37.589-2.025.099-.25.206-.499.321-.74l.004-.008c.177-.358.376-.719.61-1.105l.092-.152-.003-.001c.544-.851 1.197-1.627 1.942-2.311l.288.341c.672.796 1.304 1.548 1.878 2.237 1.291 1.549 2.966 3.583 3.612 4.48 1.277 1.771 1.893 3.579 1.83 5.375-.049 1.395-.461 2.755-1.195 3.933-.694 1.116-1.661 2.05-2.8 2.708-.636-.318-1.559-.839-2.539-1.599.79-1.575.952-3.28.479-5.072zm-2.575 5.397c-.725.939-1.587 1.55-2.09 1.856-.081-.029-.163-.06-.243-.093l-.065-.026c-1.49-.616-2.747-1.656-3.635-3.01-.907-1.384-1.356-2.993-1.298-4.653.041-1.19.338-2.327.882-3.379.316-.07.638-.114.96-.131l.084-.002c.162-.003.324-.003.478 0 .227.011.454.035.677.07.073 1.513.445 3.145 1.105 4.852.637 1.644 1.694 3.162 3.144 4.515z\"},\"child\":[]}]})(props);\n};\nexport function SiFirefish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.771 0c-.68-.016-1.342.507-1.342 1.304V7.27c0 .719.582 1.301 1.3 1.301h5.967c1.16 0 1.74-1.401.92-2.22L17.65.383a1.275 1.275 0 0 0-.879-.383ZM6.573.106c-.672-.017-1.326.5-1.326 1.287v5.892c0 .71.575 1.285 1.285 1.285h5.892c1.145 0 1.718-1.384.908-2.194L7.44.484a1.259 1.259 0 0 0-.867-.379ZM1.286 10.287c-.71 0-1.286.576-1.286 1.286v11.142C0 23.425.576 24 1.286 24h11.143c.71 0 1.285-.575 1.285-1.285V11.573c0-.71-.575-1.286-1.285-1.286zm15.485 0c-.68-.017-1.342.507-1.342 1.304v5.966c0 .718.582 1.3 1.3 1.3h5.967c1.16 0 1.74-1.4.92-2.22L17.65 10.67a1.275 1.275 0 0 0-.879-.384zM3.43 17.144a1.714 1.714 0 1 1 0 3.428 1.714 1.714 0 0 1 0-3.428zm4.285 0a1.714 1.714 0 1 1 0 3.428 1.714 1.714 0 0 1 0-3.428z\"},\"child\":[]}]})(props);\n};\nexport function SiFireflyiii (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.107 0s.917 3.103-.842 4.91c-1.76 1.807-1.57 3.803-.856 4.754.713.951.665 1.664.095 2.187-.57.523-1.046.904-1.379.048-.333-.856-.713-.856-.856-1.284a43.535 43.535 0 0 0-.428-1.189s-.903 1.427-1.474 2.283c-.57.855-.57 2.187-.19 2.9.38.713.238 1.569-.047 2.757-.286 1.189.095 2.996 1.426 3.709 1.331.713 2.948 1.283 3.66 1.949.714.666 2.378 1.284 4.518.808 2.14-.475 4.85-2.662 5.324-4.136 0 0 1.237-1.379 1-3.185-.239-1.807-1.095-1.76-1.475-3.138-.38-1.38.823-1.04-.19-3.406 0 0-.452-1.127-2.168-1.939-1.102-.521-.352-2.88-2.3-5.258C11.974.393 10.106 0 10.106 0zm-.326 11.753c1.373-.01 2.14 1.376 2.14 1.376 1.78-.216 3.533.152 4.374.94.531.498.965.956 1.181 1.834-.1-.034-.282-.08-.52-.076a1.875 1.875 0 0 0-.902.256s-.99-.333-1.52.097c-.55.446-.604.968-.576 1.586 0 0 .476-1.628 1.68-1.208 0 0-.852 1.5.472 1.762 0 0 .313-.002.57-.158.247-.148.44-.424.361-.92 0 0-.16-.494-.577-.794 0 0 .378-.267 1.096-.104.035.238.056.503.063.802.047 2.057-1.326 3.402-1.326 3.402v.927c-.167.334-.445.445-1.39.445-.946 0-1.076-.26-1.076-.26v-.185c-1.446.186-2.234 0-2.234 0 0 .167 0 .195-.14.334-.138.139-1 .148-1.65.055-.649-.092-.574-.407-.574-.407v-.946a3.663 3.663 0 0 1-1.354-1.873l-.61.012c-.334 0-.477-.428-.477-.428v-1.379c0-.428.428-.523.428-.523l.594-.045c.201-1.426 1.688-2.522 1.688-2.522l-.083-1.966c.125-.023.246-.033.362-.034zm-.548 4.716a.352.352 0 0 0-.353.352.352.352 0 0 0 .353.352.352.352 0 0 0 .352-.352.352.352 0 0 0-.352-.352zm6.85.301s.124.031.39.469c.257.425-.182.635-.182.635-.827.063-.208-1.104-.208-1.104z\"},\"child\":[]}]})(props);\n};\nexport function SiFirefox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.452 3.445a11.002 11.002 0 00-2.482-1.908C16.944.997 15.098.093 12.477.032c-.734-.017-1.457.03-2.174.144-.72.114-1.398.292-2.118.56-1.017.377-1.996.975-2.574 1.554.583-.349 1.476-.733 2.55-.992a10.083 10.083 0 013.729-.167c2.341.34 4.178 1.381 5.48 2.625a8.066 8.066 0 011.298 1.587c1.468 2.382 1.33 5.376.184 7.142-.85 1.312-2.67 2.544-4.37 2.53-.583-.023-1.438-.152-2.25-.566-2.629-1.343-3.021-4.688-1.118-6.306-.632-.136-1.82.13-2.646 1.363-.742 1.107-.7 2.816-.242 4.028a6.473 6.473 0 01-.59-1.895 7.695 7.695 0 01.416-3.845A8.212 8.212 0 019.45 5.399c.896-1.069 1.908-1.72 2.75-2.005-.54-.471-1.411-.738-2.421-.767C8.31 2.583 6.327 3.061 4.7 4.41a8.148 8.148 0 00-1.976 2.414c-.455.836-.691 1.659-.697 1.678.122-1.445.704-2.994 1.248-4.055-.79.413-1.827 1.668-2.41 3.042C.095 9.37-.2 11.608.14 13.989c.966 5.668 5.9 9.982 11.843 9.982C18.62 23.971 24 18.591 24 11.956a11.93 11.93 0 00-3.548-8.511z\"},\"child\":[]}]})(props);\n};\nexport function SiFirefoxbrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.824 7.287c.008 0 .004 0 0 0zm-2.8-1.4c.006 0 .003 0 0 0zm16.754 2.161c-.505-1.215-1.53-2.528-2.333-2.943.654 1.283 1.033 2.57 1.177 3.53l.002.02c-1.314-3.278-3.544-4.6-5.366-7.477-.091-.147-.184-.292-.273-.446a3.545 3.545 0 01-.13-.24 2.118 2.118 0 01-.172-.46.03.03 0 00-.027-.03.038.038 0 00-.021 0l-.006.001a.037.037 0 00-.01.005L15.624 0c-2.585 1.515-3.657 4.168-3.932 5.856a6.197 6.197 0 00-2.305.587.297.297 0 00-.147.37c.057.162.24.24.396.17a5.622 5.622 0 012.008-.523l.067-.005a5.847 5.847 0 011.957.222l.095.03a5.816 5.816 0 01.616.228c.08.036.16.073.238.112l.107.055a5.835 5.835 0 01.368.211 5.953 5.953 0 012.034 2.104c-.62-.437-1.733-.868-2.803-.681 4.183 2.09 3.06 9.292-2.737 9.02a5.164 5.164 0 01-1.513-.292 4.42 4.42 0 01-.538-.232c-1.42-.735-2.593-2.121-2.74-3.806 0 0 .537-2 3.845-2 .357 0 1.38-.998 1.398-1.287-.005-.095-2.029-.9-2.817-1.677-.422-.416-.622-.616-.8-.767a3.47 3.47 0 00-.301-.227 5.388 5.388 0 01-.032-2.842c-1.195.544-2.124 1.403-2.8 2.163h-.006c-.46-.584-.428-2.51-.402-2.913-.006-.025-.343.176-.389.206-.406.29-.787.616-1.136.974-.397.403-.76.839-1.085 1.303a9.816 9.816 0 00-1.562 3.52c-.003.013-.11.487-.19 1.073-.013.09-.026.181-.037.272a7.8 7.8 0 00-.069.667l-.002.034-.023.387-.001.06C.386 18.795 5.593 24 12.016 24c5.752 0 10.527-4.176 11.463-9.661.02-.149.035-.298.052-.448.232-1.994-.025-4.09-.753-5.844z\"},\"child\":[]}]})(props);\n};\nexport function SiFireship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.245.05c-.042-.035-.14-.035-.22-.05-.041.06-.098.113-.113.166a3.114 3.114 0 0 0-.064.416 15.42 15.42 0 0 1-3.742 8.693c-1.258 1.474-2.51 2.982-3.44 4.585-2.293 3.972-.249 8.031 4.763 9.804.163.06.348.087.76.181-1.701-1.534-2.57-3.1-2.28-4.944.284-1.765 1.172-3.337 2.525-4.77a1.043 1.043 0 0 1 .099.549c-.068 1.572.453 2.96 2.063 4.055.741.507 1.41 1.081 2.079 1.644.684.57.884 1.263.688 2.015-.09.366-.227.725-.378 1.171 1.145-.11 2.203-.264 2.914-.9.68-.604 1.183-1.322 1.909-2.154.049.707.15 1.255.113 1.8-.045.566-.22 1.126-.336 1.689 3.477-.525 6.546-3.934 6.682-7.427.098-2.543-2.071-6.274-3.893-6.637l.302.688c.631 1.391.817 2.8.416 4.256-.4 1.448-2.426 3.073-4.214 3.277.06-.144.087-.28.17-.39 1.927-2.596 1.946-5.31.854-8.084C15.44 5.98 12.632 2.88 9.245.053Z\"},\"child\":[]}]})(props);\n};\nexport function SiFirewalla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.156 0c-3.602 4.89.391 7.768 2.61 11.893-.751 1.527-1.745 3.08-2.733 4.836l-.072.025c-.849-.983-1.99-1.85-3.033-2.967 2.606-5.783-.809-9.812-.809-9.812a12.555 12.555 0 0 0-1.916 2.021c-2.296 3.06-2.027 5.897-2.027 5.897C4.176 19.07 12.125 24 12.125 24a21.738 21.738 0 0 0 2.139-1.594c5.864-4.974 5.564-10.513 5.564-10.513.122-4.308-1.622-5.905-4.82-9.014A83.864 83.864 0 0 1 12.156 0zm.281 17.37zm.397.687a4.298 4.298 0 0 1 .14.328 4.463 4.463 0 0 0-.14-.328zm.266.718a4.289 4.289 0 0 1 .14.791c.024.286.023.588-.006.91a5.23 5.23 0 0 0 .006-.91 4.513 4.513 0 0 0-.14-.79z\"},\"child\":[]}]})(props);\n};\nexport function SiFirst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.318 20.734c.608.18 1.239.274 1.873.278.834 0 1.472-.189 2.02-.585.609-.432 1.001-1.098 1.001-1.702a1.33 1.33 0 0 0-.49-1.035c-.245-.198-.5-.352-1.02-.595l-.422-.198c-.137-.072-.206-.144-.206-.225 0-.216.275-.378.647-.378.28 0 .612.081 1.247.289l.438-1.626a5.305 5.305 0 0 0-1.4-.194c-1.746 0-3.09.954-3.09 2.188 0 .649.432 1.108 1.51 1.612.51.234.599.297.599.46 0 .242-.265.396-.696.396-.383 0-.873-.117-1.54-.36h-.001Zm-4.526-5.818.138-.018c.686-.08 1.54-.135 2.01-.135.785 0 1.393.09 1.854.28.589.242.942.774.942 1.413 0 .55-.187 1.072-.54 1.477-.304.35-.578.522-1.147.693l-.138.045c.06.045.079.063.108.09.167.19.667 1.162 1.09 2.125h-2.355a32.79 32.79 0 0 0-.795-2.053l-.47 2.053h-2.08Zm-2.697-.036h2.138L6.84 20.886H4.702Zm-4.702 0h4.139l-.39 1.594H3.158l-.196.837h2.07l-.36 1.477H2.628l-.49 2.098H0Zm17.419 0H24l-.363 1.739h-1.54l-1.02 4.267H18.94l1.02-4.267h-1.67zm-8.441 2.864c.687 0 1.168-.406 1.168-.982 0-.306-.226-.46-.667-.46a1.46 1.46 0 0 0-.334.037l-.324 1.387c.07.009.079.018.157.018zm10.89-9.72L16 2.996 14.232 4.84c-.73-.283-1.88-.51-2.753-.51-1.271 0-2.581.434-3.496 1L5.516 2.992v-.003h-.002l-.002-.001v.002l-.882.092-1.904 10.427.886.092v-.003l4.019-1.758.019.018c.956.843 2.39 1.38 3.996 1.38 1.113 0 2.144-.259 2.991-.699l1.615 1.551 5.01-5.216v-.849ZM3.651 13.38 5.486 3.166l2.618 2.48.82.777.626.594 1.488 1.418v.647l.632.607-1.975.9a3.582 3.582 0 0 1-1.138-.745l-.02-.021 1.516-.708-3.564-3.32-.07-.07-.086.46-.842 4.387-.13.682.223-.096.001-.005 1.145-.491c.18.377.436.728.755 1.042zm12.601-.14-1.068-1.026a4.28 4.28 0 0 0 1.05-1l.01-.016L18.842 8.5l.077-.083.34-.353-3.173-3.046-.713.742-.787.82-.536.558-1.01 1.052-.087.092.295.282 1.367 1.333c-.3.283-.68.526-1.109.704l-.903-.865-.886-.851-.602-.571 1.432-1.492.72-.75.781-.814 1.953-2.034 5.143 4.922zm-1.728-1.652a5.57 5.57 0 0 1-.604.263c-.72.266-1.497.4-2.307.4-1.15 0-2.238-.272-3.147-.79a4.517 4.517 0 0 1-1.254-1.03 3.556 3.556 0 0 1-.332-.472 3.001 3.001 0 0 1-.419-1.491c0-.55.158-1.08.47-1.577l.836.846a2.09 2.09 0 0 0-.025 1.08c.057.233.155.46.291.676.108.172.239.335.39.485.415.415.978.74 1.628.943a5.244 5.244 0 0 0 1.562.232c.438 0 .87-.052 1.287-.155.236-.06.465-.134.678-.223.493-.205.926-.49 1.253-.826a2.44 2.44 0 0 0 .652-1.131c.04-.166.06-.332.06-.493 0-.466-.175-.993-.46-1.396l.71-.741c.61.634.97 1.48.97 2.28 0 .147-.013.3-.038.456-.11.671-.466 1.31-1.03 1.848-.33.316-.724.59-1.17.816zm-2.534-1.59.853.82a5.183 5.183 0 0 1-2.923-.14l1.892-.85zm4.925-1.083c.023-.152.037-.302.037-.447 0-.853-.387-1.752-1.035-2.422l.169-.176 2.628 2.524-2.176 2.266c.23-.538.38-1.2.38-1.676a.992.992 0 0 0-.003-.069zm-10.6.04.004.018a.79.79 0 0 0-.004.063c0 .251.154.848.216 1.086l-.817.35.78-4.06.32.316a3.133 3.133 0 0 0-.54 1.74c0 .158.013.317.04.487zm8.415.827-1.24-1.209 1.05-1.094c.374.311.65.684.797 1.093-.009.067-.02.134-.037.201-.088.363-.28.701-.57 1.009zm-6.509-.348-.029-.04a2.109 2.109 0 0 1-.267-.62c-.006-.023-.008-.045-.013-.068a2.21 2.21 0 0 1 .283-.61l.994.982zm4.317-2.83-1.53 1.594-1.343-1.274c.626-.266 1.3-.4 1.98-.396.308 0 .607.027.893.076zm-1.101-2.075c.83 0 1.938.213 2.643.47l-.032.033-.782.814-.002.003a5.113 5.113 0 0 0-1.618-.257c-1.01 0-1.927.28-2.609.737l-.01-.01-.82-.777-.073-.069c.896-.541 2.06-.944 3.303-.944Zm1.881 16.205c.608.18 1.239.274 1.873.278.834 0 1.472-.189 2.02-.585.609-.432 1.001-1.098 1.001-1.702a1.33 1.33 0 0 0-.49-1.035c-.245-.198-.5-.352-1.02-.595l-.422-.198c-.137-.072-.206-.144-.206-.225 0-.216.275-.378.647-.378.28 0 .612.081 1.247.289l.438-1.626a5.305 5.305 0 0 0-1.4-.194c-1.746 0-3.09.954-3.09 2.188 0 .649.432 1.108 1.51 1.612.51.234.599.297.599.46 0 .242-.265.396-.696.396-.383 0-.873-.117-1.54-.36h-.001Zm-4.526-5.818.138-.018c.686-.08 1.54-.135 2.01-.135.785 0 1.393.09 1.854.28.589.242.942.774.942 1.413 0 .55-.187 1.072-.54 1.477-.304.35-.578.522-1.147.693l-.138.045c.06.045.079.063.108.09.167.19.667 1.162 1.09 2.125h-2.355a32.79 32.79 0 0 0-.795-2.053l-.47 2.053h-2.08Zm-2.697-.036h2.138L6.84 20.886H4.702Zm-4.702 0h4.139l-.39 1.594H3.158l-.196.837h2.07l-.36 1.477H2.628l-.49 2.098H0Zm17.419 0H24l-.363 1.739h-1.54l-1.02 4.267H18.94l1.02-4.267h-1.67zm-8.441 2.864c.687 0 1.168-.406 1.168-.982 0-.306-.226-.46-.667-.46a1.46 1.46 0 0 0-.334.037l-.324 1.387c.07.009.079.018.157.018zm10.89-9.72L16 2.996 14.232 4.84c-.73-.283-1.88-.51-2.753-.51-1.271 0-2.581.434-3.496 1L5.516 2.992v-.003h-.002l-.002-.001v.002l-.882.092-1.904 10.427.886.092v-.003l4.019-1.758.019.018c.956.843 2.39 1.38 3.996 1.38 1.113 0 2.144-.259 2.991-.699l1.615 1.551 5.01-5.216v-.849ZM3.651 13.38 5.486 3.166l2.618 2.48.82.777.626.594 1.488 1.418v.647l.632.607-1.975.9a3.582 3.582 0 0 1-1.138-.745l-.02-.021 1.516-.708-3.564-3.32-.07-.07-.086.46-.842 4.387-.13.682.223-.096.001-.005 1.145-.491c.18.377.436.728.755 1.042zm12.601-.14-1.068-1.026a4.28 4.28 0 0 0 1.05-1l.01-.016L18.842 8.5l.077-.083.34-.353-3.173-3.046-.713.742-.787.82-.536.558-1.01 1.052-.087.092.295.282 1.367 1.333c-.3.283-.68.526-1.109.704l-.903-.865-.886-.851-.602-.571 1.432-1.492.72-.75.781-.814 1.953-2.034 5.143 4.922zm-1.728-1.652a5.57 5.57 0 0 1-.604.263c-.72.266-1.497.4-2.307.4-1.15 0-2.238-.272-3.147-.79a4.517 4.517 0 0 1-1.254-1.03 3.556 3.556 0 0 1-.332-.472 3.001 3.001 0 0 1-.419-1.491c0-.55.158-1.08.47-1.577l.836.846a2.09 2.09 0 0 0-.025 1.08c.057.233.155.46.291.676.108.172.239.335.39.485.415.415.978.74 1.628.943a5.244 5.244 0 0 0 1.562.232c.438 0 .87-.052 1.287-.155.236-.06.465-.134.678-.223.493-.205.926-.49 1.253-.826a2.44 2.44 0 0 0 .652-1.131c.04-.166.06-.332.06-.493 0-.466-.175-.993-.46-1.396l.71-.741c.61.634.97 1.48.97 2.28 0 .147-.013.3-.038.456-.11.671-.466 1.31-1.03 1.848-.33.316-.724.59-1.17.816zm-2.534-1.59.853.82a5.183 5.183 0 0 1-2.923-.14l1.892-.85zm4.925-1.083c.023-.152.037-.302.037-.447 0-.853-.387-1.752-1.035-2.422l.169-.176 2.628 2.524-2.176 2.266c.23-.538.38-1.2.38-1.676a.992.992 0 0 0-.003-.069zm-10.6.04.004.018a.79.79 0 0 0-.004.063c0 .251.154.848.216 1.086l-.817.35.78-4.06.32.316a3.133 3.133 0 0 0-.54 1.74c0 .158.013.317.04.487zm8.415.827-1.24-1.209 1.05-1.094c.374.311.65.684.797 1.093-.009.067-.02.134-.037.201-.088.363-.28.701-.57 1.009zm-6.509-.348-.029-.04a2.109 2.109 0 0 1-.267-.62c-.006-.023-.008-.045-.013-.068a2.21 2.21 0 0 1 .283-.61l.994.982zm4.317-2.83-1.53 1.594-1.343-1.274c.626-.266 1.3-.4 1.98-.396.308 0 .607.027.893.076zm-1.101-2.075c.83 0 1.938.213 2.643.47l-.032.033-.782.814-.002.003a5.113 5.113 0 0 0-1.618-.257c-1.01 0-1.927.28-2.609.737l-.01-.01-.82-.777-.073-.069c.896-.541 2.06-.944 3.303-.944Z\"},\"child\":[]}]})(props);\n};\nexport function SiFishshell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.164 9.228-3.016 2.688v.527l3.016 2.688v-1.228l-1.936-1.723 1.936-1.724V9.228m-6.658.046v1.208l1.905 1.696-1.905 1.695v1.209l2.968-2.645v-.518l-2.968-2.645M9.781 7.847a6.519 6.519 0 0 0-2.038-.335c-.672 0-1.349.112-2.03.335a9.23 9.23 0 0 0-2.088 1.017v.723c.69-.4 1.377-.7 2.06-.897a7.388 7.388 0 0 1 2.058-.296c.684 0 1.368.098 2.052.296a9.452 9.452 0 0 1 2.075.897v-.723a9.229 9.229 0 0 0-2.09-1.017m.014 7.78a7.371 7.371 0 0 1-2.052.296 7.388 7.388 0 0 1-2.057-.296 9.18 9.18 0 0 1-2.061-.897v.723a9.228 9.228 0 0 0 2.088 1.017 6.492 6.492 0 0 0 2.03.335c.678 0 1.357-.112 2.038-.335a9.227 9.227 0 0 0 2.089-1.017v-.723c-.7.4-1.391.7-2.075.897m.602-11.23h-.51L7.28 6.92h1.19l1.672-1.62 1.671 1.62h1.191l-2.607-2.525m-2.965 13.68v-.824H6.427v.825l.786 1.527h.614l-.395-1.527M4.127 10.95v1.216H5.13V10.95H4.127m-1.16-1.695L0 11.901v.518l2.967 2.645v-1.208L1.063 12.16l1.904-1.695V9.256m20.68 3.28c-.235-.3-.574-.509-1.017-.626.395-.103.696-.278.902-.525.206-.247.31-.556.31-.926 0-.546-.197-.984-.59-1.314-.393-.33-.919-.495-1.575-.495-.22 0-.473.025-.758.073-.284.048-.61.12-.974.217v.84c.314-.12.613-.21.9-.27a4.05 4.05 0 0 1 .832-.091c.403 0 .714.093.933.278.218.185.328.451.328.798 0 .328-.118.584-.353.768-.235.184-.562.276-.98.276h-.697v.75h.696c.458 0 .821.116 1.09.346.268.23.402.542.402.934 0 .425-.134.75-.402.976-.269.226-.653.339-1.153.339a3.55 3.55 0 0 1-.89-.117 4.395 4.395 0 0 1-.91-.358v.909a6.1 6.1 0 0 0 .95.249c.323.057.639.085.95.085.738 0 1.315-.177 1.733-.53.417-.355.626-.842.626-1.463 0-.449-.118-.823-.353-1.123\"},\"child\":[]}]})(props);\n};\nexport function SiFitbit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.298 1.825c0 .976-.81 1.785-1.786 1.785-.972 0-1.784-.81-1.784-1.785 0-.973.813-1.785 1.784-1.785.976 0 1.786.813 1.786 1.785zm-1.786 3.243c-1.052 0-1.863.81-1.863 1.866 0 1.053.81 1.865 1.865 1.865 1.053 0 1.865-.811 1.865-1.865s-.825-1.866-1.875-1.866h.008zm0 5.029c-1.052 0-1.945.891-1.945 1.945s.894 1.945 1.947 1.945 1.946-.891 1.946-1.945-.894-1.945-1.946-1.945h-.002zm0 5.107c-1.052 0-1.863.81-1.863 1.864s.81 1.866 1.865 1.866c1.053 0 1.865-.811 1.865-1.866 0-.972-.825-1.864-1.875-1.864h.008zm0 5.191c-.972 0-1.784.809-1.784 1.784 0 .97.813 1.781 1.784 1.781.977 0 1.786-.809 1.786-1.784 0-.973-.81-1.781-1.786-1.781zM16.46 4.823c-1.136 0-2.108.977-2.108 2.111 0 1.134.973 2.107 2.108 2.107 1.135 0 2.106-.975 2.106-2.107 0-1.135-.972-2.109-2.106-2.109v-.002zm0 5.03c-1.216 0-2.19.973-2.19 2.19 0 1.216.975 2.187 2.19 2.187 1.215 0 2.189-.971 2.189-2.189 0-1.216-.974-2.188-2.189-2.188zm0 5.108c-1.136 0-2.108.976-2.108 2.107 0 1.135.973 2.109 2.108 2.109 1.135 0 2.106-.976 2.106-2.109s-.971-2.107-2.106-2.107zm5.106-5.353c-1.296 0-2.43 1.055-2.43 2.434 0 1.297 1.051 2.433 2.43 2.433 1.381 0 2.434-1.065 2.434-2.444-.082-1.382-1.135-2.431-2.434-2.431v.008zM6.486 5.312c-.892 0-1.62.73-1.62 1.623 0 .891.729 1.62 1.62 1.62.893 0 1.619-.729 1.619-1.62 0-.893-.727-1.62-1.619-1.62v-.003zm0 5.027c-.973 0-1.703.729-1.703 1.703 0 .975.721 1.703 1.695 1.703s1.695-.73 1.695-1.703c0-.975-.735-1.703-1.71-1.703h.023zm0 5.107c-.892 0-1.62.731-1.62 1.62 0 .895.729 1.623 1.62 1.623.893 0 1.619-.735 1.619-1.635s-.727-1.62-1.619-1.62v.012zm-5.025-4.863c-.813 0-1.461.646-1.461 1.459 0 .81.648 1.459 1.46 1.459.81 0 1.459-.648 1.459-1.459s-.648-1.459-1.458-1.459z\"},\"child\":[]}]})(props);\n};\nexport function SiFivem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.4 24h-5.225c-.117 0-.455-1.127-1.026-3.375-1.982-6.909-3.124-10.946-3.417-12.12l3.37-3.325h.099c.454 1.42 2.554 7.676 6.299 18.768ZM12.342 7.084h-.048a3.382 3.385 0 0 1-.098-.492v-.098a102.619 102.715 0 0 1 3.272-3.275c.13.196.196.356.196.491v.05a140.694 140.826 0 0 1-3.322 3.324ZM5.994 10.9h-.05c.67-2.12 1.076-3.209 1.223-3.275L14.492.343c.08 0 .258.524.533 1.562zm1.37-4.014h-.05C8.813 2.342 9.612.048 9.71 0h4.495v.05a664.971 664.971 0 0 1-6.841 6.839Zm-2.69 7.874h-.05c.166-.798.554-1.418 1.174-1.855a312.918 313.213 0 0 1 5.71-5.717h.05c-.117.672-.375 1.175-.781 1.52zM1.598 24l-.098-.05c1.399-4.172 2.148-6.322 2.248-6.45l6.74-6.694v.05C10.232 11.88 8.974 16.263 6.73 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiFiverr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.004 15.588a.995.995 0 1 0 .002-1.99.995.995 0 0 0-.002 1.99zm-.996-3.705h-.85c-.546 0-.84.41-.84 1.092v2.466h-1.61v-3.558h-.684c-.547 0-.84.41-.84 1.092v2.466h-1.61v-4.874h1.61v.74c.264-.574.626-.74 1.163-.74h1.972v.74c.264-.574.625-.74 1.162-.74h.527v1.316zm-6.786 1.501h-3.359c.088.546.43.858 1.006.858.43 0 .732-.175.83-.487l1.425.4c-.351.848-1.22 1.364-2.255 1.364-1.748 0-2.549-1.355-2.549-2.515 0-1.14.703-2.505 2.45-2.505 1.856 0 2.471 1.384 2.471 2.408 0 .224-.01.37-.02.477zm-1.562-.945c-.04-.42-.342-.81-.889-.81-.508 0-.81.225-.908.81h1.797zM7.508 15.44h1.416l1.767-4.874h-1.62l-.86 2.837-.878-2.837H5.72l1.787 4.874zm-6.6 0H2.51v-3.558h1.524v3.558h1.591v-4.874H2.51v-.302c0-.332.235-.536.606-.536h.918V8.412H2.85c-1.162 0-1.943.712-1.943 1.755v.4H0v1.316h.908v3.558z\"},\"child\":[]}]})(props);\n};\nexport function SiFizz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.822 17.813h3.274v-7.228H5.822Zm4.298-7.228v2.841h2.107l-2.243 4.387h6.779v-2.824h-2.24l2.24-4.399h-6.644v-.005zm13.88 0h-6.762v2.841h2.241l-2.24 4.387h6.633v-2.824H21.76ZM6.633 6.966l-1.23 2.736a1.587 1.587 0 0 0-.955-.324c-.56 0-1.012.363-1.012 1.125v.038H5.13v2.858H3.43v4.414H0v-7.804c0-2.292 1.737-3.822 3.895-3.822 1.056 0 2.023.351 2.738.779z\"},\"child\":[]}]})(props);\n};\nexport function SiFlashforge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.025 12 11.98-12 11.97 12-11.97 12Zm14.544 2.672-2.574 2.584v5.916L23.177 11.97 11.995.76v5.136L9.402 8.53v6.123l5.157-5.196Z\"},\"child\":[]}]})(props);\n};\nexport function SiFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.172 20.36c-.914-.72-1.89-1.41-2.556-2.38-1.402-1.712-2.482-3.694-3.22-5.777-.446-1.355-.6-2.808-1.174-4.11-.602-.944.103-1.978 1.138-2.28.46-.087 1.272-.522.293-.211-.878.644-.963-.585-.063-.662.615-.082.84-.585.63-1.037-.66-.43 1.6-.903.463-1.544C1.5 1.08 4.34.835 3.64 2.285 3.473 3.4 5.624 2.08 5.125 3.368c.507.619 1.9.14 1.865 1.009.74.05.993.672 1.687.72.72.325 2.022.58 2.266 1.39-.713.566-2.364-1.165-2.443.398.215 2.31.16 4.689 1.004 6.888.4 1.332 1.37 2.38 2.244 3.418.837 1.016 1.971 1.73 3.127 2.333 1.014.478 2.107.795 3.213.994.448-.343 1.24-1.617 1.938-1.08.033.604-1.388 1.263-.067 1.196.776-.234 1.314.6 1.953-.152.588.697 2.446-.446 2.027.98-.566.364-1.392.144-1.959.646-.935-.467-1.68.418-2.715.306a19.86 19.86 0 01-3.484.29c-1.912-.15-3.865-.214-5.684-.88-1.024-.297-2.023-.881-2.924-1.464zm1.615.7c1 .432 1.978.888 3.074 1.026 1.74.24 3.537.614 5.283.274-.79-.357-1.608.14-2.395-.255-.944.203-1.957-.052-2.917-.177-1.092-.486-2.27-.82-3.291-1.452-1.277-.466.66.598 1.005.685.798.453-.877-.233-1.114-.421-.668-.375-.754-.297-.066.084.139.08.276.166.42.235zm-1.904-1.346c.97.359-.004-.682-.45-.622-.196-.341-.751-.557-.36-.74-.704.244-.737-.93-1.07-.763-.744-.235-.29-1.07-1.176-1.58-.081-.54-.882-1.008-1.138-1.822-.113-.416-.905-1.613-.418-.5.414 1.072 1.143 1.99 1.75 2.907.47.873 1.027 1.786 1.885 2.33.29.278.568.703.977.79zM4.09 16.647c.033-.146.177.317 0 0zm3.954 3.497c.215-.096-.31-.12 0 0zm.526.192c-.054-.265-.24.148 0 0zm.66.275c.312-.3-.484-.188 0 0zm1.127.63c.191-.282-.61-.107 0 0zM8.19 19.728c.487-.315-.63-.004 0 0zm.494.246c-.014-.166-.176.075 0 0zm2.47 1.542c.397.25 2.32.55 1.115.103-.2.042-2.23-.574-1.116-.103zm-3.921-3.054c-.04-.167-.616-.185 0 0zm1.15.67c.3-.21-.621-.16 0 0zm.966.593c.43-.162-.696-.163 0 0zm-2.584-1.773c.466.358 1.88.046.714-.213-.53-.283-1.727-.476-.912.17zm3.24 1.978c.193-.33-.815-.19 0 0zm-.984-.783c1.14.323-.958-.72-.281-.118l.15.068.13.05zm1.973 1.14c1.08.01-.975-.147 0 0zm-4.644-2.96c-.042-.2-.266.018 0 0zm6.47 3.985c.028-.363-.353.27 0 0zm-4.63-2.856c-.064-.191-.336-.008 0 0zm-1.738-1.254c.62-.037-.848-.273 0 0zm-2.06-1.332c-.077-.297-.674-.534 0 0zm5.407 3.435c-.114-.13-.054.028 0 0zm3.366 2.065c-.01-.197-.183.075 0 0zm-3.664-2.373c.06-.255-.528-.077 0 0zm-2.506-1.592c.46-.05-.74-.311 0 0zm4.241 2.637c.718-.285-.7-.14 0 0zM9.03 18.545c.827.106-.985-.563-.181-.06zm2.876 1.768c.773-.462.518 1.082 1.311.13.782-.57-.675.707.29.103.696-.467 1.726.22 2.376.445.468-.023.923.405 1.403.145.923-.25-1.806-.37-1.09-.81-.845.245-1.47-.294-1.885-.835-.948-.22-2.044-.703-2.517-1.542-.192-.315.28.044-.166-.47-.57-.508-.856-1.085-1.24-1.702-.457-.244-.51-.963-.557-.024.004-.593-.553-.992-.688-.826-.002-.571.595-.285.176-.707-.09-.592-.386-1.21-.475-1.877-.138-.322-.02-1.011-.473-.282-.165.77-.055-.947.202-.38.337-.58-.12-.51-.14-.43.22-.488.14-1.18-.057-.916.117-.517.185-1.902-.175-1.656.218-.54.414-2.473-.534-1.736-.384.005-1.048.14-1.363.296.986.543-.1.196-.5.11-.052.502-.45.285-.946.29.793.098-.386.81-.841.534-.59.282.51.987.012 1.205.06.328-.905-.12-.83.64-.573-.241-.078.9.209.514.975.264.686.866.71 1.437-.158.333-.784-.783-.14-.731-.507-.827-.561-.3-.984.085-.1.028 1.079.547.34.803.65.1.668.67.8 1.03.39.407.31-.45.779.04-.296-.436-1.567-1.228-.544-.974-.005-.44-.185-.793.129-.784.31-.562-.325 1.387.375.672.193-.085.24-.563.59.045.505.498.182.858-.531.403.127.433.954.587.799 1.265.165.595.395.376.596.342.158.578.247.153.255-.123.72.155.552.58.778.88.497.224-.712-1.522.142-.526.898.81.337 1.15-.47 1.02.51-.041.675.69 1.313.664.582.277.975 1.34-.027.897-.348-.313-1.58-.7-.573-.104.929.43 1.665.688 2.561 1.227.64.458.918.982 1.16 1.086-.538.257-1.623-.206-.817-.348-.503-.091-1.068-.345-.587.28.41.343 1.45.306 1.637.345-.159.348-.43.376.006.403-.486.26.156.3.201.448zm-.994-2.808c-.296-.31-.373-.89-.053-.385.164.066.525.947.053.385zm3.238 2.057c.185-.011.006.14 0 0zm-3.706-2.816c-.01-.468.107.36 0 0zm-.322-.433c-.372-.72.47.204 0 0zm-3.9-2.692c.219-.06.108.374 0 0zm3.104 1.682c.134-.504.158.424 0 0zm-2.192-1.525c-.155-.278.323.26 0 0zm1.882.604c-.352-.79.25-.432.078.13zM5.77 12.217c-.158-.26-.418-1.02-.334-1.252.076.378.804 1.627.357.518-.494-.93.59.302.702.534.05.23-.305-.063-.064.478-.44-.617-.26.34-.661-.278zm-1.003-.691c.04-.603.23.413 0 0zm.45.155c.216-.455.366.634 0 0zm-1.084-.84c-.374-.37-.644-.713.017-.23.255.01-.566-.778.06-.25.66.12.327 1.082-.077.48zm.57-.015c.217-.215.115.212 0 0zm.35.113c-.328-.617.4.258 0 0zm-.697-.667c-1.086-.966 1.365.506.177.18zm3.11 1.808c-.47-.282-.123-1.984.037-.82.457-.148-.025.6.315.594-.053.473-.206.643-.35.226zm1.15.68c.048-.513.099.35 0 0zm-.2-.198c.054-.22.007.258 0 0zM4.57 9.955c-.697-.963 2.027.973.447.244-.165-.043-.364-.06-.447-.244zm2.216 1.175c-.066-.81.147.134 0 0zm1.682 1.079c.13-.462.01.305 0 0zM4.676 9.587c.415-.088 1.718.729.52.234-.132-.148-.416-.08-.52-.234zm3.56 1.775c.044-.83.248-.495.002.118zM4.985 9.299c.169-.248-.45-1.12.089-.313.232.185.672.31.283.387.61.539-.15.146-.372-.074zm3.075 1.804c.117-.944.103.553 0 0zM4.632 8.427c.129-.055.068.172 0 0zm.802.478c.206-.434.38.483 0 0zm2.263 1.259c-.002-.167.043.242 0 0zm-.131-.29c-.314-.776.292.41 0 0zm-.193-.51c-.053-.32.18.404 0 0zm.314-.51c-.216-.38.272-1.673.326-.87-.227.625-.065.975.093.136.293-.66-.063 1.303-.42.735zm.322-1.923c.094-.115.02.139 0 0zM7.47 17.544c-.128-.111.016.07 0 0zm1.11.56c.615.16.612-.095.055-.17-.3-.28-1.246-.575-.4-.035.057.142.235.139.344.206zM6.389 16.65c.34.253 1.28.719.484.096.269-.312-.514-.478-.254-.686-.66-.404-.52-.368-.058-.356-.794-.354.114-.328.07-.51-.305-.06-1.52-.54-.804.04-.726-.37-.173.138-.392.084-.743-.202.66.565-.118.375.425.337 1.146.864.18.357-.128.183.69.46.892.6zm1.16.667c1.41.454-.691-.556 0 0zm5.94 3.598c.02-.28-.193.24 0 0zm.611.257c.325-.315.013.503.54-.077.005-.415-.017-.66-.606-.156-.162.09-.234.473.066.233zm-9.692-6.087c-.1-.393-.7-.39 0 0zm.652.428c-.242-.402-.864-.364 0 0zm3.71 2.237c.362.32 1.662.236.44.04-.182-.27-1.151-.204-.44-.04zm5.097 3.149c.558-.468-.54.208 0 0zm1.16.796c.003-.15-.24.066 0 0zm.001-.21c.617-.654-.598.039 0 0zM2.805 13.743c-.526-.75-.327-1.088-.835-1.7-.096-.47-.87-1.533-.4-.406.43.659.558 1.679 1.235 2.106zm12.03 7.534c1.135-.734-.466-.32 0 0zm.866.34c.57-.488-.36-.102 0 0zM4.215 14.255c.163-.242-.42-.031 0 0zm11.305 7.129c.551-.355-.126-.3-.1.032zm-7.47-4.71c-.02-.24-.291.02 0 0zm.46.267c-.145-.297-.224.047 0 0zm7.894 4.684c.705-.51-.428-.098-.148.096zm-.27-.13c.574-.482-.607.213 0 0zm1.38.918c.386-.258-.469-.083 0 0zM4.57 14.08c.517.116 2.066 1.274 1.152.08-.468-.138-.187-1.283-.665-1.08.32.535.264.763-.41.426-.845-.413-.474.204-.31.374-.224.052.299.196.233.2zm-2.356-1.86c.092-.383-.853-2.107-.446-.864.146.26.13.754.446.864zm4.324 2.666c-.266-.223-.013-.032 0 0zm.656.152c0-.405-.725-.164 0 0zm5.681 3.583c-.108-.278-.428-.006 0 0zm.273.199c-.04-.155-.157.03 0 0zM15.4 20.24c.216-.16-.27-.02 0 0zM3.39 12.52c.62-.24-.664-.17 0 0zm8.984 5.662c-.007-.401-.395.1 0 0zm-9.23-6.231c.399-.135-.367-.09 0 0zm1.156.56c-.007-.133-.122.05 0 0zm14.09 8.64c.512-.104 1.678.26 1.866-.136-.62-.015-2.15-.438-2.222.1l.136.023.22.013zM4.667 12.603c.009-.407-.317-.015 0 0zM1.63 10.495c-.138-.775-.525-.118 0 0zm.724.182c.009-.25-.663-.224 0 0zm.414.203c-.12-.097-.094.122 0 0zm2.605 1.67c.122-.112-.29-.083 0 0zm-2.88-2.128c-.07-.585-.84-.088 0 0zm-1.486-.964c-.02-.27-.144.102 0 0zm.22-.167c-.035-.32-.19.04 0 0zm1.22.729c.518-.203-.94-.42-.104-.04zm16.334 10.089c.33-.303-.42-.094 0 0zm1.974 1.023c.132-.392-.334.05 0 0zM2.573 9.38c.055-.38-.41.075 0 0zM.837 8.218c-.093-.535-.08-1.474.812-1.156-1.191.236.824 1.48.57.498.5.024.98-.296.716.19.987-.11 1.67-.964 2.624-.845.742-.098 1.554-.172 2.354-.471.658-.048 1.29-.756.93-1.175-.896-.076-1.835.036-2.827.233-1.098.228-2.096.662-3.205.849-1.08.145.217.4-.092.456-.564.196.672.328-.073.534-.46-.088-.94-.246-.743-.73-1.035.133-1.945.563-1.127 1.616h.06zm2.494-1.27c.243-.894 1.3.735.398.118-.108-.08-.285-.146-.398-.12zm.047-.434c.35-.26.186.146 0 0zm.445.008c.032-.411 1.018.218.163.148zm.608-.245c.222-.26.064.23 0 0zm.156-.104c.37-.444 2.095-.283.832-.043-.338-.255-.598.15-.832.043zm2.25-.347c-.055-1.214 1.119.432 0 0zm.64-.004c.233-.612.906-.245.108-.123.017.065-.024.316-.108.123zM2.322 9.067c.697-.427-.741-.37 0 0zm.515.144c.245-.26-.531-.106 0 0zm-1.52-1.08c.399-.305-.471-.116 0 0zm20.602 12.89c.012-.355-.304.16 0 0zm-2.093-1.43c.06-.408-.27.037 0 0zm2.67 1.568c.557 0 1.688-.173.475-.173-.19.03-1.109.024-.476.173zM3.29 8.959c.45-.03.706-.497-.087-.47-1.23-.127 1.084.42-.158.264-.167.11.236.237.245.207zm.398.202c-.048-.29-.14.154 0 0zm.47-1.257c.197-.243-.27-.065 0 0zm-1.5-2.508c.806-.274 1.907-.581 2.287.135-.387-.466-.156-.924.21-.243.516.689.775-.313.438-.545.383.476.819.7.257.03.61-.734-1.223.097-1.64.088-.2.09-2.071.477-1.551.535zm.472-.903c.46-.347 1.588.206.864-.345-.07-.062-1.586.418-.864.345zm1.674.069c.538.013-.231-.722.409-.39-.105-.343-.746-.407-1.06-.544-.176.314.36.938.65.934zm-1.38-1.52c.186-.252-.326.128 0 0zm.684.164c.866-.115-.22-.373-.174-.01zm-1.277-1c-.61-.796 1.146.134.527-.7-.522-.415-1.023.468-.527.7zm7.824 4.215c.28-.496-1.155-.668-.188-.175.09.03.07.21.188.175z\"},\"child\":[]}]})(props);\n};\nexport function SiFlat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5455 17.4545v3.2728C6.5455 22.5348 5.0802 24 3.2727 24S0 22.5348 0 20.7273c0-1.8075 1.4652-3.2728 3.2727-3.2728Zm8.7272-8.7272V12c0 1.8075-1.4652 3.2727-3.2727 3.2727H5.4545c-1.8074 0-3.2727-1.4652-3.2727-3.2727 0-1.8075 1.4653-3.2727 3.2727-3.2727zM24 0v3.2727c0 1.8075-1.4652 3.2728-3.2727 3.2728H7.6363c-1.8074 0-3.2727-1.4653-3.2727-3.2728S5.829 0 7.6364 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiFlathub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.068 0a6 6 0 0 0-6 6 6 6 0 0 0 6 6 6 6 0 0 0 5.998-6 6 6 0 0 0-5.998-6Zm9.15.08a1.656 1.656 0 0 0-1.654 1.656v8.15a1.656 1.656 0 0 0 2.483 1.434l7.058-4.074a1.656 1.656 0 0 0 0-2.869l-1.044-.604-6.014-3.47a1.656 1.656 0 0 0-.828-.223Zm3.575 13.135a.815.815 0 0 0-.816.818v2.453h-2.454a.817.817 0 1 0 0 1.635h2.454v2.453a.817.817 0 1 0 1.635 0v-2.453h2.452a.817.817 0 1 0 0-1.635h-2.453v-2.453a.817.817 0 0 0-.818-.818zM2.865 13.5a2.794 2.794 0 0 0-2.799 2.8v4.9c0 1.55 1.248 2.8 2.8 2.8h4.9c1.55 0 2.8-1.25 2.8-2.8v-4.9c0-1.55-1.25-2.8-2.8-2.8Z\"},\"child\":[]}]})(props);\n};\nexport function SiFlatpak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.556 0-1.111.144-1.61.432l-7.603 4.39a3.217 3.217 0 0 0-1.61 2.788v8.78c0 1.151.612 2.212 1.61 2.788l7.603 4.39a3.217 3.217 0 0 0 3.22 0l7.603-4.39a3.217 3.217 0 0 0 1.61-2.788V7.61a3.217 3.217 0 0 0-1.61-2.788L13.61.432A3.218 3.218 0 0 0 12 0Zm0 2.358c.15 0 .299.039.431.115l7.604 4.39c.132.077.24.187.315.316L12 12v9.642a.863.863 0 0 1-.431-.116l-7.604-4.39a.866.866 0 0 1-.431-.746V7.61c0-.153.041-.302.116-.43L12 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiFlickr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.334 6.666C2.3884 6.666 0 9.055 0 12c0 2.9456 2.3884 5.334 5.334 5.334 2.9456 0 5.332-2.3884 5.332-5.334 0-2.945-2.3864-5.334-5.332-5.334zm13.332 0c-2.9456 0-5.332 2.389-5.332 5.334 0 2.9456 2.3864 5.334 5.332 5.334C21.6116 17.334 24 14.9456 24 12c0-2.945-2.3884-5.334-5.334-5.334Z\"},\"child\":[]}]})(props);\n};\nexport function SiFlightaware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.178 12.905-1.064 2.519h-.47l1.37-3.22h.322l1.443 3.22h-.47zm10.837 1.5h-1.477c.011.204.079.362.203.481a.667.667 0 0 0 .481.181c.272 0 .527-.085.759-.255v.408c-.13.085-.255.147-.38.181a1.674 1.674 0 0 1-.44.057c-.233 0-.42-.046-.561-.148a1.052 1.052 0 0 1-.345-.39 1.21 1.21 0 0 1-.13-.566c0-.322.09-.583.271-.78.181-.205.419-.3.708-.3.277 0 .503.095.667.294.165.198.25.458.25.786v.051zm-1.472-.249h1.064a.614.614 0 0 0-.147-.39.482.482 0 0 0-.356-.136.518.518 0 0 0-.368.136.674.674 0 0 0-.193.39m-1.76-.843v.48l.023-.033c.204-.328.408-.487.606-.487.158 0 .322.08.492.238l-.22.368c-.148-.136-.284-.204-.403-.204-.135 0-.249.062-.35.192a.718.718 0 0 0-.147.459v1.103h-.42v-2.11h.42zm-1.131.843v.9c0 .073.022.107.073.107s.13-.04.238-.113v.25c-.096.061-.17.101-.226.124a.49.49 0 0 1-.181.034c-.182 0-.283-.068-.317-.21a.922.922 0 0 1-.566.21.503.503 0 0 1-.515-.515.51.51 0 0 1 .141-.357 1.02 1.02 0 0 1 .408-.249l.532-.181v-.113c0-.255-.125-.385-.38-.385-.226 0-.447.119-.662.35v-.452c.164-.187.397-.283.696-.283.227 0 .408.063.55.181.045.04.084.09.124.153a.491.491 0 0 1 .068.193c.011.056.017.18.017.356m-.408.849v-.623l-.277.108a.93.93 0 0 0-.3.17.3.3 0 0 0-.09.215c0 .085.028.158.084.215.057.056.13.085.215.085a.567.567 0 0 0 .368-.17m-1.771-1.692h.447l-.928 2.156h-.141l-.623-1.477-.611 1.477h-.142l-.933-2.156h.447l.554 1.284.532-1.284h.312l.537 1.284zm7.526-4.182c.006.017-.028.062-.056.096-.045.045-.176.198-.696.311-.52.114-1.177.232-1.223.244-.045.005-.135-.012-.186.141a765.16 765.16 0 0 0-.623 2.218l-.175.04-.198-2.162s-1.228.244-1.353.244l-.311.826-.158.017.033-.838s-.17-.028-.198-.034c-.01 0-.022 0-.028-.017 0-.01.006-.017.017-.022.023-.017.17-.108.17-.108l-.368-.752.153-.051.617.634c.113-.051 1.335-.323 1.335-.323l-.685-2.066.176-.033s1.358 1.663 1.466 1.782c.107.119.18.068.226.057.045-.012.696-.164 1.217-.272.52-.107.701-.017.763.006.034.011.085.045.085.062zm-12.908 6.293a.16.16 0 0 1-.084-.023.147.147 0 0 1-.04-.21c.006-.01.17-.26.498-.65a.146.146 0 0 1 .21-.017c.062.05.073.147.016.21-.317.373-.475.616-.48.622a.133.133 0 0 1-.12.068zm1.025-1.228a.136.136 0 0 1-.102-.04.145.145 0 0 1-.006-.21c.187-.192.38-.384.577-.565a.15.15 0 0 1 .21.005.15.15 0 0 1-.006.21c-.192.18-.385.368-.566.554a.134.134 0 0 1-.107.046zm1.171-1.081a.132.132 0 0 1-.113-.057.146.146 0 0 1 .023-.21c.209-.169.424-.339.639-.491a.147.147 0 0 1 .21.033.147.147 0 0 1-.035.21c-.209.153-.424.317-.622.486a.23.23 0 0 1-.102.029zm1.296-.945a.142.142 0 0 1-.125-.068.154.154 0 0 1 .046-.21c.226-.147.458-.288.69-.418a.148.148 0 0 1 .204.056.148.148 0 0 1-.057.204c-.226.13-.458.266-.679.407a.114.114 0 0 1-.079.029zm1.392-.781a.149.149 0 0 1-.068-.283c.243-.119.487-.232.736-.334.073-.034.164.006.198.08a.152.152 0 0 1-.08.197c-.243.102-.486.21-.718.323a.196.196 0 0 1-.068.017zm1.471-.617a.151.151 0 0 1-.141-.102.154.154 0 0 1 .09-.192c.255-.085.515-.17.77-.238a.151.151 0 0 1 .187.102.151.151 0 0 1-.102.187c-.255.068-.51.147-.753.232-.017.011-.034.011-.05.011zm-8.601 2.875.786-.77v.436h.663v.373H9.63v1.042c0 .243.102.362.3.362.147 0 .306-.051.47-.147v.39c-.158.09-.334.136-.52.136a.68.68 0 0 1-.476-.17.446.446 0 0 1-.096-.113.553.553 0 0 1-.062-.164 1.866 1.866 0 0 1-.029-.39v-.94h-.367v-.045zM6.666 12.22h.419v1.363a.814.814 0 0 1 .645-.316.674.674 0 0 1 .628.401c.057.125.08.312.08.555v1.205h-.42v-1.307a.599.599 0 0 0-.113-.373.357.357 0 0 0-.3-.142.492.492 0 0 0-.26.074 1.07 1.07 0 0 0-.266.237v1.517h-.418v-3.214zm-2.224 1.822c0-.226.085-.402.25-.532.163-.13.39-.198.673-.198h.871v.322h-.424a.705.705 0 0 1 .17.232c.033.068.05.148.05.238 0 .113-.034.22-.096.328a.628.628 0 0 1-.243.244c-.102.056-.26.102-.487.135-.158.023-.237.08-.237.165 0 .05.028.09.09.118.057.034.164.063.323.097.26.056.424.101.498.135.073.034.141.08.198.136a.512.512 0 0 1 .152.38.56.56 0 0 1-.266.48c-.175.12-.418.181-.713.181-.3 0-.543-.062-.718-.18a.554.554 0 0 1-.272-.482c0-.288.176-.47.526-.554-.141-.09-.209-.181-.209-.266 0-.068.028-.13.09-.181a.518.518 0 0 1 .244-.12c-.311-.146-.47-.367-.47-.678m.69 1.482a.591.591 0 0 0-.345.091c-.09.062-.135.136-.135.232 0 .22.198.328.588.328a.97.97 0 0 0 .43-.079c.102-.057.153-.13.153-.232 0-.096-.062-.181-.192-.238a1.067 1.067 0 0 0-.498-.102m.096-1.85c-.113 0-.21.04-.289.113a.377.377 0 0 0 0 .55c.08.073.176.107.3.107a.41.41 0 0 0 .294-.108.356.356 0 0 0 .12-.272.36.36 0 0 0-.12-.277.453.453 0 0 0-.305-.113M3.622 12.43c.068 0 .13.023.175.074.051.045.074.107.074.175a.235.235 0 0 1-.074.175.235.235 0 0 1-.175.074.232.232 0 0 1-.17-.074.235.235 0 0 1-.074-.175c0-.062.023-.119.074-.17a.219.219 0 0 1 .17-.079m-.204.883h.419v2.11h-.419zM2.269 12.22h.419v3.203h-.419zM0 12.22h1.709v.407H.453v.9h1.256v.402H.453v1.494H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiFlipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm19.2 9.6h-4.8v4.8H9.6v4.8H4.8V4.8h14.4v4.8z\"},\"child\":[]}]})(props);\n};\nexport function SiFlipkart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.833 1.333a.993.993 0 0 0-.333.061V1c0-.551.449-1 1-1h14.667c.551 0 1 .449 1 1v.333H3.833zm17.334 2.334H2.833c-.551 0-1 .449-1 1V23c0 .551.449 1 1 1h7.3l1.098-5.645h-2.24c-.051 0-5.158-.241-5.158-.241l4.639-.327-.078-.366-1.978-.285 1.882-.158-.124-.449-3.075-.467s3.341-.373 3.392-.373h3.232l.247-1.331c.289-1.616.945-2.807 1.973-3.693 1.033-.892 2.344-1.332 3.937-1.332.643 0 1.053.151 1.231.463.118.186.201.516.279.859.074.352.14.671.095.903-.057.345-.461.465-1.197.465h-.253c-1.327 0-2.134.763-2.405 2.31l-.243 1.355h1.54c.574 0 .781.402.622 1.306-.17.941-.539 1.36-1.111 1.36H14.9L13.804 24h7.362c.551 0 1-.449 1-1V4.667a1 1 0 0 0-.999-1zM20.5 2.333A.334.334 0 0 0 20.167 2H3.833a.334.334 0 0 0-.333.333V3h17v-.667z\"},\"child\":[]}]})(props);\n};\nexport function SiFloatplane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.948,20.162c-1.81,1.527-4.078,2.366-6.466,2.366c-2.682,0-5.19-1.047-7.088-2.933c-1.897-1.897-2.933-4.416-2.933-7.088 c0-2.399,0.84-4.667,2.366-6.466L2.911,4.874C1.101,6.902,0,9.585,0,12.518C0,18.864,5.136,24,11.482,24 c2.933,0,5.616-1.101,7.644-2.911L17.948,20.162z M8.331,2.988c1.003-0.327,2.061-0.502,3.151-0.502c2.682,0,5.19,1.047,7.088,2.933 c1.897,1.897,2.933,4.416,2.933,7.088c0,1.09-0.174,2.148-0.502,3.151l1.134,1.134c0.534-1.319,0.829-2.77,0.829-4.285 c0-6.346-5.136-11.482-11.482-11.482c-1.516,0-2.966,0.294-4.285,0.829L8.331,2.988z M9.683,6.444L3.446,0l-0.97,1.516 C2.388,1.657,2.399,1.843,2.508,1.974L7.916,8.92L9.683,6.444z M7.655,14.96l-2.508-1.886l-0.458,0.774 c-0.055,0.087-0.044,0.196,0.033,0.273l2.115,2.29L7.655,14.96z M12.158,9.007l-0.578-0.6l0.153-0.611 c0.065-0.273,0.087-0.491,0.065-0.622c-0.087-0.393-0.273-0.687-0.273-0.687l-5.474,5.866c0,0,0.371,0.36,0.905-0.055 c0.24-0.185,1.189-0.96,2.203-1.799l0.927,1.189L12.158,9.007z M17.501,14.263l0.153-0.611c0.055-0.207,0.087-0.382,0.065-0.502 c-0.065-0.393-0.218-0.687-0.218-0.687l-5.866,5.474c0,0,0.36,0.371,0.916,0c0.273-0.185,1.428-0.992,2.584-1.821l6.891,5.365 c0.131,0.109,0.316,0.12,0.458,0.033L24,20.543L17.501,14.263z M9.061,16.389c0.883-0.676,2.115-1.625,3.217-2.475l1.243,0.97 l2.039-2.475l-0.676-0.654l0.218-0.774c0.109-0.393,0.153-0.698,0.12-0.883c-0.109-0.567-0.36-0.981-0.36-0.981l-8.069,8.069 c0,0,0.251,0.207,0.774,0l2.279,2.104c0.076,0.065,0.185,0.076,0.273,0.033l0.774-0.458L9.061,16.389z\"},\"child\":[]}]})(props);\n};\nexport function SiFlood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.683 16.283c-1.233-.066-1.85-1.533-2.15-2.433-.266-.767-.666-2.117-.966-2.933-.35-.95-.45-1.017-.65-1.017-.417 0-.734 1.183-1.05 2.067-.667 1.833-1.167 3.85-2.934 3.85-1.533 0-2.216-1.184-2.7-1.884-.45-.666-.716-.816-1.133-.816-.533 0-.783.466-1.267 1.283-.283.467-.6.95-.966 1.267-.1.083-.934.733-1.717.633-.45-.067-.767-.333-.767-.783 0-.617.684-.734 1.067-.884.333-.116.733-.716.933-1.05.534-.916 1.217-2.116 2.75-2.116 1.35 0 2 .866 2.5 1.55.45.616.717 1.116 1.234 1.133.433.017 1.033-1.617 1.383-2.75.533-1.733 1.233-3.333 2.633-3.333 1.884 0 2.434 2.633 3.017 4.65.083.3.283.933.333 1.016.267.567.484.934.717 1.05.267.15.7.434.567.934-.084.383-.434.583-.834.566zm-15.366-1.6c.016 0 .016 0 0 0 .016 0 .016 0 0 0zM12 0C5.367 0 0 5.367 0 12s5.367 12 12 12 12-5.367 12-12S18.633 0 12 0zm0 22.017A10.015 10.015 0 011.983 12 10.015 10.015 0 0112 1.983 10.015 10.015 0 0122.017 12 10.015 10.015 0 0112 22.017Z\"},\"child\":[]}]})(props);\n};\nexport function SiFluentbit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 4.02Zm.412-.503c-.038 0-.072 0-.102.01a.336.336 0 0 0-.087.035H.215a.325.325 0 0 0-.113.113.416.416 0 0 0-.053.1c-.008.021-.019.036-.023.067a.423.423 0 0 0-.015.071v-.01H.004v.018L0 3.936l.007-.023v.046L0 4.004v.015h.004l.003-.004v-.003a1.323 1.323 0 0 0 .095.472l.019.046v.007l.06.144.023.06.064.163a19.736 19.736 0 0 0 1.724 3.254L2 8.173l.023.038c.922 1.44 2.037 2.885 3.202 4.095l.037.04c.832.859 1.686 1.6 2.514 2.129a4 4 0 0 0 .37.216l.038.019-.026.019c-1.127 1.64-2.42 2.834-3.742 3.704C2.51 19.763.91 20.172.91 20.172s4.237 1.164 8.887-1.013c3.534-1.664 5.368-4.903 5.787-5.621l2.124-3.61c.333-.458.522-.647.54-.68.065-.065.538-.614 1.524-.946 1.46-.488 3.667-.783 4.188-.832a.113.113 0 0 0 .03-.132.076.076 0 0 0-.056-.05 4.177 4.177 0 0 0-.544-.037 9.234 9.234 0 0 0-1.399.068 18.39 18.39 0 0 0-1.383.204 29.78 29.78 0 0 0-1.066.204l-.053.012h-.023a3.493 3.493 0 0 1-.574.037 2.737 2.737 0 0 1-.473-.075 7.3 7.3 0 0 1-.465-.129 6.79 6.79 0 0 0-.484-.143 4.645 4.645 0 0 0-1.463-.152 2.797 2.797 0 0 0-.657.133l-.167.06a2.767 2.767 0 0 0-1.22.972c-.401.536-1.233 2.178-2.374 2.613l-.023-.023h.01a77.214 77.214 0 0 0-.9-.829l-.021-.015-.2-.189-.053-.042a60.73 60.73 0 0 0-2.307-2.014 28.411 28.411 0 0 0-1.504-1.13l-.227-.163a30.725 30.725 0 0 0-3.93-2.332c-.114-.064-.23-.102-.36-.166-.038-.016-.076-.038-.102-.038l.196.11-.079-.038h-.01V4.18a1.013 1.013 0 0 0-.054-.023l-.023-.015-.03-.015a1.01 1.01 0 0 1-.102-.05l-.072-.033a1.512 1.512 0 0 1-.098-.046c-.03-.01-.057-.022-.076-.022a1.296 1.296 0 0 0-.22-.08l-.007-.004-.015-.007h-.007l-.012-.004v-.004h-.022a.37.37 0 0 1-.038-.019l-.038-.018a.113.113 0 0 0-.034-.012h-.004l-.234-.094a2.854 2.854 0 0 0-.242-.087.601.601 0 0 0-.151-.03ZM0 3.891Zm.094.593.012.027Zm.012.03c.022.06.041.118.068.17zm.068.174.003.012zM16.757 8.3a.386.386 0 0 1 .113.015.386.386 0 0 1 .269.473.386.386 0 0 1-.473.264.386.386 0 0 1-.264-.468.386.386 0 0 1 .355-.284z\"},\"child\":[]}]})(props);\n};\nexport function SiFluentd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.83 2.195C1.279 2.191.8 2.377.425 2.82-.429 3.823.03 6.135 1.787 8.917l.02.028a10.177 10.177 0 0 0 .197.297c1.733 2.579 4.249 4.677 3.743 7.586a4.28 4.28 0 0 1-.599 1.564C3.615 20.797.003 21.047.003 21.047l.042.001-.045.005s4.355 1.344 8.533.438c.598-.13 1.192-.305 1.769-.537a12.331 12.331 0 0 0 .023-.01c.343-.138.667-.284.975-.437a12.331 12.331 0 0 0 .282-.145c.285-.15.556-.306.814-.467a12.331 12.331 0 0 0 .152-.095c.316-.204.61-.416.888-.635a12.331 12.331 0 0 0 .146-.116c.164-.134.323-.27.476-.407a12.331 12.331 0 0 0 .123-.105l.036-.04c.008-.008.015-.016.024-.023a12.842 12.842 0 0 0 .86-.888c.05-.056.1-.112.148-.169.059-.068.118-.135.175-.203l.1-.123c.127-.154.25-.31.372-.465l.032-.042c.679-.88 1.28-1.779 1.933-2.639l.216-.278c.294-.374.6-.74.932-1.091l.03-.031c.108-.114.22-.226.334-.337l.07-.067a10.997 10.997 0 0 1 .264-.243c.036-.032.072-.065.109-.096a5.003 5.003 0 0 1 .374-.293c.012-.01.025-.018.038-.027a5.003 5.003 0 0 1 .85-.48l-.065.03.022-.01.06-.027a5.623 5.623 0 0 1 1.63-.412h.001a5.623 5.623 0 0 1 .533-.026h.07a5.623 5.623 0 0 1 .115.002l.428-.003a.204.204 0 0 0 .088-.016c.062-.03.047-.102-.012-.186a1.38 1.38 0 0 0-.39-.343 3.688 3.688 0 0 1-.098-.052 3.871 3.871 0 0 1-.036-.022 3.688 3.688 0 0 1-.256-.161 3.871 3.871 0 0 1-.129-.096 3.688 3.688 0 0 1-.193-.15c-.205-.2-.432-.733-.523-.888a2.05 2.05 0 0 0-.24-.33c-.272-.306-.665-.533-1.302-.615-.891-.115-1.727.072-2.565.333l.1-.035c-1.168.354-2.334.87-3.655.94h-.04a5.553 5.553 0 0 1-.668-.01l-.06-.004a5.473 5.473 0 0 1-1.16-.233c-1.312-.412-3.154-1.88-5.047-3.316a113.017 113.017 0 0 0-.651-.49 51.56 51.56 0 0 0-.789-.58l-.222-.155-.236-.166-.086-.06a17.622 17.622 0 0 0-1.612-.997l-.019-.01a10.036 10.036 0 0 0-.367-.186c-.039-.019-.078-.035-.117-.053a7.732 7.732 0 0 0-.548-.23l-.05-.017a5.023 5.023 0 0 0-.316-.101l-.026-.007a3.055 3.055 0 0 0-.816-.125zM20.6 8.641a.504.5 0 0 1 .505.5.504.5 0 0 1-.505.5.504.5 0 0 1-.504-.5.504.5 0 0 1 .504-.5z\"},\"child\":[]}]})(props);\n};\nexport function SiFluke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.603 12.656h-.092v-.131h.08c.065 0 .078.013.078.065 0 .04-.026.066-.066.066zm.263.013c0 .157-.118.288-.276.288s-.275-.13-.275-.288c0-.158.105-.276.262-.289.17 0 .289.118.289.289zm-.118.197-.105-.17c.052-.014.091-.053.091-.106 0-.079-.052-.118-.13-.118h-.145v.394h.066v-.17h.065l.105.17h.053zM24 8.393v7.214H0V8.393h24zM6.44 11.567H4.222V11.2h2.203v-.498H3.633v2.308h.59v-.892h2.216v-.55zm2.819.866H7.384v-1.731h-.577v2.308h2.452v-.577zm3.462-1.731h-.577v1.77h-2.02v-1.77h-.576v1.875c.039.42.432.433.432.433h2.308s.38-.013.433-.433v-1.875zm3.568 2.308-1.837-1.18 1.745-1.128h-1.023l-1.299.8v-.8h-.577v2.308h.577v-.866l1.377.866h1.037zm3.239-2.308h-2.912v2.308h2.912v-.538h-2.335v-.328h2.335v-.537h-2.335v-.355h2.335v-.55zm1.403 1.967a.347.347 0 0 0-.34-.341.347.347 0 0 0-.342.34c0 .184.158.342.341.342a.347.347 0 0 0 .341-.341z\"},\"child\":[]}]})(props);\n};\nexport function SiFlutter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.314 0L2.3 12 6 15.7 21.684.013h-7.357zm.014 11.072L7.857 17.53l6.47 6.47H21.7l-6.46-6.468 6.46-6.46h-7.37z\"},\"child\":[]}]})(props);\n};\nexport function SiFlux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.402 23.747c.154.075.306.154.454.238.181.038.37.004.525-.097l.386-.251c-1.242-.831-2.622-1.251-3.998-1.602l2.633 1.712Zm-7.495-5.783a8.088 8.088 0 0 1-.222-.236.696.696 0 0 0 .112 1.075l2.304 1.498c1.019.422 2.085.686 3.134.944 1.636.403 3.2.79 4.554 1.728l.697-.453c-1.541-1.158-3.327-1.602-5.065-2.03-2.039-.503-3.965-.977-5.514-2.526Zm1.414-1.322-.665.432c.023.024.044.049.068.073 1.702 1.702 3.825 2.225 5.877 2.731 1.778.438 3.469.856 4.9 1.982l.682-.444c-1.612-1.357-3.532-1.834-5.395-2.293-2.019-.497-3.926-.969-5.467-2.481Zm7.502 2.084c1.596.412 3.096.904 4.367 2.036l.67-.436c-1.484-1.396-3.266-1.953-5.037-2.403v.803Zm.698-2.337a64.695 64.695 0 0 1-.698-.174v.802l.512.127c2.039.503 3.965.978 5.514 2.526l.007.009.663-.431c-.041-.042-.079-.086-.121-.128-1.702-1.701-3.824-2.225-5.877-2.731Zm-.698-1.928v.816c.624.19 1.255.347 1.879.501 2.039.502 3.965.977 5.513 2.526.077.077.153.157.226.239a.704.704 0 0 0-.238-.911l-3.064-1.992c-.744-.245-1.502-.433-2.251-.618a31.436 31.436 0 0 1-2.065-.561Zm-1.646 3.049c-1.526-.4-2.96-.888-4.185-1.955l-.674.439c1.439 1.326 3.151 1.88 4.859 2.319v-.803Zm0-1.772a8.543 8.543 0 0 1-2.492-1.283l-.686.446c.975.804 2.061 1.293 3.178 1.655v-.818Zm0-1.946a7.59 7.59 0 0 1-.776-.453l-.701.456c.462.337.957.627 1.477.865v-.868Zm3.533.269-1.887-1.226v.581c.614.257 1.244.473 1.887.645Zm5.493-8.863L12.381.112a.705.705 0 0 0-.762 0L3.797 5.198a.698.698 0 0 0 0 1.171l7.38 4.797V7.678a.414.414 0 0 0-.412-.412h-.543a.413.413 0 0 1-.356-.617l1.777-3.079a.412.412 0 0 1 .714 0l1.777 3.079a.413.413 0 0 1-.356.617h-.543a.414.414 0 0 0-.412.412v3.488l7.38-4.797a.7.7 0 0 0 0-1.171Z\"},\"child\":[]}]})(props);\n};\nexport function SiFluxus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.348 19.35a2738.241 2738.241 0 0 0-3.926-5.741 595.98 595.98 0 0 1-1.5-2.194 433.452 433.452 0 0 0-1.646-2.396c-.493-.712-.88-1.343-.86-1.404.021-.06.944-.73 2.05-1.489 4.797-3.285 8.82-6.032 8.962-6.117.124-.075.152.287.147 1.963l-.005 2.055-2.993 2.02c-1.647 1.111-2.975 2.072-2.953 2.136.117.326 2.53 3.694 2.645 3.694.11 0 1.55-.937 3.084-2.005.224-.156.227-.125.226 1.905v2.063l-.692.446c-.38.245-.692.49-.692.544 0 .054.313.545.694 1.09l.695.993-.03 3.543-.03 3.544z\"},\"child\":[]}]})(props);\n};\nexport function SiFlydotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.987 0c-2.45-.01-5.002.925-6.541 2.897-1.17 1.502-1.664 3.474-1.49 5.356.29 2.112 1.476 3.96 2.676 5.672a41.5 41.5 0 0 0 4.216 4.831c-1.063.832-1.943 2.286-1.357 3.644.821 2.32 4.665 2.05 5.122-.372.39-1.288-.694-2.533-1.428-3.309 2.388-2.431 4.706-5.036 6.17-8.145.595-1.32.902-2.802.614-4.24-.28-2.341-1.823-4.473-3.967-5.46C14.76.266 13.364.016 11.987 0m-.236 1.577v15.534C9.881 13.483 7.724 9.266 8.73 5.069c.35-1.539 1.253-3.309 3.02-3.492m1.996.04c1.534.357 3.031 1.096 3.906 2.48 1.3 1.93 1.318 4.55.1 6.521-1.268 2.395-3.06 4.463-4.916 6.415 1.472-2.974 3.074-6.106 3.182-9.5-.043-2.08-.438-4.612-2.272-5.916M11.97 20.103c.848.342 1.597 1.983.153 2.173-.664.15-1.367-.599-.995-1.222.213-.355.488-.73.842-.95\"},\"child\":[]}]})(props);\n};\nexport function SiFlyway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.02 21.055 1.12-.23c1.054-.219 2.114-.415 3.161-.66a4.955 4.952 0 0 0 3.696-3.915 6.06 6.057 0 0 0 .085-1.153l.366-.09a4.936 4.933 0 0 0 3.75-3.717 3.8 3.798 0 0 0 .128-1.06c-.002-.096 0-.193 0-.305.094-.023.18-.047.267-.067a4.552 4.549 0 0 0 2.68-1.755 5.772 5.769 0 0 0 1.005-4.854c-.021-.088-.035-.179-.061-.264a.63.629 0 0 0-.728-.432l-3.184.652-3.485.716-4.002.822q-2.186.449-4.373.893a1.125 1.125 0 0 1-.422.06c-.007-.074-.017-.14-.017-.204-.001-1.12.002-2.243-.005-3.364a.324.324 0 0 1 .174-.307 8.493 8.488 0 0 1 1.9-.86A17.205 17.194 0 0 1 7.827.315C8.373.23 8.922.181 9.47.12a26.795 26.777 0 0 1 3.526-.102c.496.01.992.051 1.487.097.542.051 1.085.11 1.623.192a14.482 14.472 0 0 1 4.007 1.124c.262.123.509.28.764.422a.215.215 0 0 1 .122.223c-.004.054 0 .11 0 .163v19.519c0 .347.045.28-.262.472a8.437 8.432 0 0 1-1.961.857 16.78 16.769 0 0 1-2.851.63c-.6.08-1.2.146-1.804.207-.277.03-.556.035-.835.043-.564.015-1.128.041-1.691.03-.636-.014-1.272-.059-1.907-.099a20.054 20.041 0 0 1-2.519-.332 13.423 13.415 0 0 1-3.224-.976c-.273-.13-.53-.29-.797-.435a.246.246 0 0 1-.144-.248c.008-.23 0-.46.003-.69 0-.049.01-.096.016-.163zm9.985-10.652a1.248 1.248 0 0 1-.09.55 2.624 2.622 0 0 1-2.045 1.84c-1.3.28-2.607.537-3.912.805l-.57.114a1.147 1.146 0 1 0 .403 2.256c.595-.11 1.186-.242 1.779-.363.064-.014.128-.022.209-.035a2.584 2.582 0 0 1-.55 1.41A2.801 2.8 0 0 1 6.516 18c-1.103.223-2.206.45-3.308.676-.052.01-.106.013-.156.02-.048-.146-.061-10.38-.014-10.63l14.048-2.883a1.523 1.522 0 0 1-.016.18 3.438 3.436 0 0 1-.738 1.502 2.399 2.397 0 0 1-1.426.804c-1.11.216-2.218.45-3.326.677l-.96.196a1.168 1.168 0 0 0-.953 1.057 1.147 1.147 0 0 0 .875 1.186 1.747 1.746 0 0 0 .807-.054c.492-.1.983-.203 1.475-.304.053-.01.108-.014.18-.023z\"},\"child\":[]}]})(props);\n};\nexport function SiFmod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.3522 10.17a.903.903 0 0 0-.903.903v4.0696H1.127v-2.8134H0v-1.318h1.1284a2.2252 2.2252 0 0 1 2.2238-2.1703H4.673v1.3222zm7.3257 1.8403a.2501.2501 0 0 0-.2378.1732l-.532 1.8348a1.564 1.564 0 0 1-3.0016 0l-.532-1.8348a.2515.2515 0 0 0-.4769 0l-.5319 1.8348a1.5723 1.5723 0 0 1-1.5118 1.123h-.3684v-1.3195h.3739a.2474.2474 0 0 0 .235-.1732l.5319-1.8348a1.5696 1.5696 0 0 1 3.0086 0l.536 1.8376a.246.246 0 0 0 .4714 0l.532-1.8349a1.5696 1.5696 0 0 1 3.0086 0l.5319 1.8349a.2474.2474 0 0 0 .235.1731h.3738v1.3195h-.3683a1.571 1.571 0 0 1-1.5119-1.123l-.5319-1.8348a.2515.2515 0 0 0-.2336-.1759zm2.6897.9058a2.2252 2.2252 0 1 1 2.2252 2.2251 2.2252 2.2252 0 0 1-2.2252-2.2251zm3.1282 0a.903.903 0 1 0-.903.903.903.903 0 0 0 .903-.903zm4.6744.4604a.962.962 0 0 0 .0673-.1237.6707.6707 0 0 1 1.2659.3079.6542.6542 0 0 1-.055.2625l-.0192.0398a2.2678 2.2678 0 0 1-2.0342 1.2755 2.2252 2.2252 0 0 1 0-4.4504h.0976a2.25 2.25 0 0 1 1.0143.2914V8.8409h1.3222v3.01a.7422.7422 0 0 1-.712.7215 1.5902 1.5902 0 0 1-1.0692-.3738.9016.9016 0 0 0-.5498-.191h-.0976a.903.903 0 1 0 .7752 1.3661zM4.2277 11.624a.7037.7037 0 0 1-.7037.7037.7037.7037 0 0 1-.7037-.7037.7037.7037 0 0 1 .7037-.7037.7037.7037 0 0 1 .7037.7037zm18.398 2.8354a.6872.6872 0 1 0 .6872-.6748.6776.6776 0 0 0-.6872.6748zm.1237 0a.5594.5594 0 1 1 .5608.5828.558.558 0 0 1-.565-.5828zm.2817.3821h.1237v-.3408h.1375l.2158.3408h.1374l-.2268-.3505a.2034.2034 0 0 0 .209-.2157c0-.1526-.0894-.2268-.275-.2268h-.3064zm.1237-.6872h.1581c.0838 0 .1746.0165.1746.121 0 .1044-.1004.1374-.209.1374h-.1292z\"},\"child\":[]}]})(props);\n};\nexport function SiFnac (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.874 7.2s-1.622-.106-1.684 1.369v.04c.062 1.476 1.684 1.39 1.684 1.39.737 0 1.137-.23 1.326-.652h.842l.232-1.495H22.18c-.19-.42-.569-.673-1.305-.652zm-4.59 1.516c-.147.19-.862.19-.862.19-.717.042-1.79.02-1.769.652.02.673.884.59 1.305.569.464-.021.863-.148 1.18-.548.294-.337.168-.842.146-.863.022-.021 0 0 0 0zM3.295 0l-1.01 6.358h.442c-.02-.19-.02-.97.547-1.474 0 0 .632-.632 2.485-.485 0 0 1.894.148 1.894 1.516H6.347s-.042-.757-1.22-.715c0 0-1.2-.021-1.096 1.137h3.621v.59c.106-.17.38-.443 1.074-.632 0 0 2.968-.654 3.284 1.474v2.989h-1.304V8.316C10.516 6.99 9.02 7.221 9.02 7.221c-1.011.084-1.306.673-1.369 1.095V10.8H6.347V7.263H4.052V10.8H2.747V7.263h-.59L.01 20.716 20.726 24l2.148-13.622c-.442.316-1.179.548-2.358.485-.484-.021-.863-.085-1.179-.21-.59-.21-1.536-.822-1.536-2.001v-.147c-.022-1.16.947-1.769 1.536-2 .316-.126.695-.17 1.18-.21 1.768-.106 2.525.483 2.841.989l.633-4.043zM16.37 10.799l-.043-.505v-.02c-.526.652-1.789.609-1.789.609-2.358.043-2.316-1.241-2.316-1.241-.19-1.348 1.537-1.327 2.968-1.41 1.432-.085 1.095-.653 1.095-.653-.063-.464-1.094-.506-1.094-.506-1.432-.105-1.453.757-1.453.757H12.39s0-1.136 1.411-1.452c.02 0 .842-.252 2.295 0 0 0 1.62.21 1.516 1.768l.042 2.674H16.37z\"},\"child\":[]}]})(props);\n};\nexport function SiFolium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.209 17.302v.558h-.558v-.558h.558zm-1.116-.558v.558h.558v-.558h-.558zm1.116 1.116v.558h.558v-.558h-.558zm-1.674-1.674v.558h.558v-.558h-.558zm2.232 2.233v.558h.558v-.558h-.558zm.559-4.466v.558h.558v-.558h-.558zM9.767 2.791v.558h.558v-.558h-.558zm.559 5.581v.558h.558v-.558h-.558zm0 10.605v.558h.558v-.558h-.558zm-2.233-7.256v-.558h-.558v.558h.558zm1.116-4.465v-.558h-.558v.558h.558zm-.558-.558V6.14h-.558v.558h.558zm1.116 1.116v-.558h-.558v.558h.558zM8.093 6.14v-.559h-.558v.559h.558zm1.116 6.697v-.558h-.558v.558h.558zm1.117 1.116v-.558h-.559v.558h.559zm-1.675-1.674v-.558h-.558v.558h.558zm1.116 1.116v-.558h-.558v.558h.558zm.559-5.023v-.558h-.559v.558h.559zM6.977 18.977v.558h.558v-.558h-.558zm1.116-15.07h-.558v.558h.558v-.558zm0 16.186v.558h.558v-.558h-.558zm-.558-3.907v-.558h-.558v-4.465h.558v-.558h-.558V5.581h.558V4.465h-.558v.558h-.558v13.953h.558v-2.791h.558zm0 3.349v.558h.558v-.558h-.558zm1.116 1.116v.558h.558v-.558h-.558zm1.675 1.675v.558h.558v-.558h-.558zm-.559-.559v.558h.558v-.558h-.558zm-.558-.558v.558h.558v-.558h-.558zm1.117-19.535h-.559v.558h.558v-.558zm0 1.675v.558h.558v-.558h-.558zm-.559-1.116h-.558v.558h.558v-.558zm1.117-1.117h-.558v.558h.558v-.558zM9.209 2.791h-.558v.558h.558v-.558zm-.558.558h-.558v.558h.558v-.558zm5.023 15.628h.558v-.558h-.558v.558zm.559-16.186h-.558v.558h.558v-.558zm0 15.628h.558v-.559h-.558v.559zm-1.117 1.116h.558v-.558h-.558v.558zm2.233-7.256h-.558v.558h.558v-.558zm.558 4.465h.558v-.558h-.558v.558zm-1.116 1.116h.558v-.558h-.558v.558zm.558-.558h.558v-.558h-.558v.558zm-1.675-3.349h-.558v.558h.558v-.558zm.559-.558h-.558v.558h.558v-.558zm.558-6.139h-.558v.558h.558v-.558zm.558-.558h-.558v.558h.558v-.558zm.558-.558h-.558v.558h.558V6.14zm-2.233-2.791h-.558v.558h.558v-.558zm1.117 9.488h-.558v.558h.558v-.558zm1.116-1.116h-.558v.558h.558v-.558zm-1.674-3.907h-.558v.558h.558v-.558zm-.559.558h-.558v.558h.558v-.558zm-.558 14.512h.558v-.558h-.558v.558zm1.675-1.675h.558v-.558h-.558v.558zm-.558.558h.558v-.558h-.558v.558zm1.674-10.046h.558v-.558h-.558v.558zm-.558 8.93h.558v-.558h-.558v.558zm.558-.558h.558v-.558h-.558v.558zm1.116-15.07v-.558h-.558v1.116h.558v5.023h-.558v.558h.558v4.465h-.558v.558h.558v2.791h.558V5.023h-.558zm-.558 14.512h.558v-.558h-.558v.558zm-2.791 2.791h.558v-.558h-.558v.558zm2.791-17.861v-.558h-.558v.558h.558zm-.558-.558v-.558h-.558v.558h.558zm-.558-.558v-.558h-.558v.558h.558zm.558 2.791h.558v-.559h-.558v.559zm-2.233-4.466v-.558h-.558v.558h.558zm1.117 1.117v-.558h-.558v.558h.558zm-2.233 17.302h.558v-.558h-.558V15.07h.558v-.558h-.558V9.488h.558V8.93h-.558V4.465h.558v-.558h-.558V1.116h.558V.558h-.558V0h-1.116v.558h-.558v.558h.558v2.791h-.558v.558h.558V8.93h-.558v.558h.558v5.023h-.558v.558h.558v4.465h-.558v.558h.558v2.791h-.558v.558h.558V24h1.116v-.558h.558v-.558h-.558v-2.791zm1.675-17.86v-.559h-.558v.558h.558z\"},\"child\":[]}]})(props);\n};\nexport function SiFonoma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.706 21.919a4.295 4.295 0 0 0 4.293-4.296 4.295 4.295 0 1 0-4.293 4.296zM4.296 10.672a4.295 4.295 0 0 0 4.293-4.295 4.295 4.295 0 1 0-4.294 4.295zm10.412 0h4.975a4.277 4.277 0 0 0 4.293-4.295 4.277 4.277 0 0 0-4.293-4.296h-4.975a4.277 4.277 0 0 0-4.294 4.296 4.277 4.277 0 0 0 4.294 4.295zM4.295 21.92h4.976a4.277 4.277 0 0 0 4.293-4.296 4.277 4.277 0 0 0-4.293-4.295H4.295a4.277 4.277 0 0 0-4.293 4.295c.068 2.318 1.976 4.296 4.293 4.296z\"},\"child\":[]}]})(props);\n};\nexport function SiFontawesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.3934 4.5c.6837-.4317 1.1379-1.194 1.1379-2.0625C5.5313 1.0913 4.4398 0 3.0938 0 1.7475 0 .6563 1.0913.6563 2.4375c0 .7805.3668 1.4753.9375 1.9214V24h3v-3h17.5126c.6834 0 1.2373-.554 1.2373-1.2373a1.237 1.237 0 0 0-.1066-.5027l-2.8934-6.51 2.8934-6.51a1.237 1.237 0 0 0 .1066-.5026c0-.6834-.5539-1.2374-1.2373-1.2374Z\"},\"child\":[]}]})(props);\n};\nexport function SiFontbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.079 13.996c-2.702-2.771-5.702-5.703-8.105-8.103-1.62-1.621-4.284-1.621-5.943 0-2.97 2.963-5.248 5.21-8.104 8.066a3.12 3.12 0 0 0 0 4.437 3.12 3.12 0 0 0 4.437 0l2.2-2.2 2.2 2.2a3.12 3.12 0 0 0 4.438 0 3.12 3.12 0 0 0 0-4.438l4.4 4.4a3.12 3.12 0 0 0 4.438 0c1.274-1.16 1.274-3.165.039-4.362z\"},\"child\":[]}]})(props);\n};\nexport function SiFontforge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c6.628 0 12-5.373 12-12S18.628 0 12 0Zm6.32 7.04c-.602 0-.305-1.375-1.156-1.375-.696 0-1.274 1.836-1.563 3.437h1.5c.172 0 .203.125.203.258 0 .359-.164.664-.46.664h-1.477s-.679 3.212-1.18 5.218c-.201.806-.527 1.439-.92 1.93l.02.01 2.461-2.272-.383-.016a.003.003 0 0 1-.002 0v-.003l.013-.337c0-.001.001-.002.003-.002l.614.024.024-.614.001-.002h.002l.337.013c.002 0 .003.002.003.003l-.025.614.614.024.002.001v.002l-.013.337a.003.003 0 0 1-.003.003l-.614-.024-.024.613v.002l-.003.001-.332-.013h-.005a.003.003 0 0 1-.002-.001.003.003 0 0 1 0-.002l.014-.36-2.448 2.26a.633.633 0 0 1-.268.854.631.631 0 0 1-.485.044.631.631 0 0 1-.147-.067l-2.389 2.205.34.013c.001 0 .003.002.003.004l-.014.337a.003.003 0 0 1-.003.002l-.614-.024-.024.613a.003.003 0 0 1-.003.003h-.001l-.336-.013a.003.003 0 0 1-.003-.003l.024-.614-.613-.024a.003.003 0 0 1-.003-.003l.013-.337c0-.002.002-.003.003-.003l.614.024.024-.613a.003.003 0 0 1 .001-.002l.002-.001.338.013.002.001v.002l-.016.403 2.424-2.237-.008-.016c-.758.515-1.59.7-2.233.7-.617 0-1.274-.218-1.711-.671-.586.601-1.476 1.078-2.43 1.078-.468 0-1.25-.313-1.25-.906 0-.336.337-.844.696-.844.633 0 .71.687 1.422.687.343 0 .582-.094.867-1.124.625-2.258 1.57-6.89 1.57-6.89H8.196c-.18 0-.203-.11-.203-.227 0-.312.117-.695.515-.695h1.04c.57-1.96 1.835-3.796 4.163-3.796.75 0 1.437.25 1.78.68.844-.852 1.633-1.087 2.313-1.087 1.094 0 1.437.696 1.437 1.156 0 .578-.367.985-.921.985zm-8.415 7.975c-.247.953-.454 1.488-.67 1.938.445.523 1.023.788 1.523.788.61 0 1.094-.203 1.39-1.265.703-2.53 1.485-6.452 1.485-6.452h-2.578c-.375 1.728-.787 3.591-1.15 4.991zm3.196-8.928c-1.101 0-1.601 1.827-1.843 3.015h2.609a9.07 9.07 0 0 1 .836-2.055c-.375-.593-1.024-.96-1.602-.96Z\"},\"child\":[]}]})(props);\n};\nexport function SiFoobar2000 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.3824 7.6193 15.3809 0l-2.3955 5.1661c-.5091-.1745-1.4618-.1757-1.9709 0L8.6191 0 5.6176 7.6193c-.8457 2.1469-1.6218 4.3796 0 6.8113.597.8951 6.3758 9.5793 6.3824 9.5694l6.3824-9.5694c1.6219-2.4317.8458-4.6644 0-6.8113zm-5.0072 7.2514c-.3362-.2978-.4172-.8447-.2281-1.54.1893-.696.626-1.4546 1.2295-2.136.6035-.6814 1.3039-1.2064 1.972-1.4784.6673-.2717 1.22-.2572 1.5562.0406.3362.2978.4172.8447.2281 1.5399-.1893.696-.626 1.4546-1.2296 2.136-.6035.6814-1.3039 1.2064-1.9719 1.4784-.6673.2717-1.2199.2573-1.5562-.0405zm.4448 4.8335c-.1573.0906-.3757.0798-.4889-.1165l-1.3283-2.3038L12 17.279l-1.3329 2.3114c-.0627.1087-.1625.1686-.2812.1686-.1385 0-.2784-.0811-.348-.2018-.0601-.1042-.0583-.2219.005-.3313l1.5555-2.6884c.0825-.1425.232-.2275.3999-.2275h.0004c.1703.0001.3216.0864.4048.2308l1.5477 2.6856c.1197.2073.0158.393-.1312.4778zm-4.7515-4.7929c-.6681-.272-1.3684-.797-1.9719-1.4784-.6035-.6814-1.0402-1.44-1.2295-2.136-.1892-.6952-.1081-1.2421.2281-1.5399.1762-.1561.4119-.2343.6924-.2343.2546 0 .5463.0645.8638.1938.6681.272 1.3684.797 1.9719 1.4784.6036.6814 1.0402 1.44 1.2295 2.136.1891.6952.1081 1.2421-.2281 1.54-.3361.2976-.8888.312-1.5562.0404z\"},\"child\":[]}]})(props);\n};\nexport function SiFoodpanda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.224 0a3.14 3.14 0 00-3.14 3.127 3.1 3.1 0 001.079 2.36 11.811 11.811 0 00-2.037 6.639C.126 18.68 5.458 24 12 24c6.542 0 11.874-5.32 11.874-11.874a11.69 11.69 0 00-2.025-6.614 3.136 3.136 0 001.09-2.373A3.132 3.132 0 0019.8.012a3.118 3.118 0 00-2.636 1.438A11.792 11.792 0 0012.012.264c-1.845 0-3.595.419-5.152 1.174A3.133 3.133 0 004.224 0zM12 1.198c1.713 0 3.331.396 4.78 1.102a10.995 10.995 0 014.29 3.715 10.89 10.89 0 011.882 6.135c.011 6.039-4.901 10.951-10.94 10.951-6.04 0-10.951-4.912-10.951-10.951 0-2.277.694-4.386 1.88-6.135A11.08 11.08 0 017.232 2.3 10.773 10.773 0 0112 1.198zM7.367 6.345c-.853.012-1.743.292-2.28.653-1.031.682-2.29 2.156-2.085 4.181.191 2.025 1.785 3.283 2.612 3.283.826 0 1.234-.42 1.485-1.45.252-1.018 1.115-2.192 2.217-3.45s-.024-2.469-.024-2.469c-.393-.513-1.052-.727-1.755-.747a3.952 3.952 0 00-.17-.001zm9.233.007l-.17.001c-.702.02-1.358.233-1.746.752 0 0-1.126 1.21-.024 2.469 1.114 1.258 1.965 2.432 2.217 3.45.251 1.019.659 1.438 1.485 1.45.827 0 2.409-1.258 2.612-3.283.204-2.025-1.054-3.51-2.084-4.182-.544-.36-1.437-.643-2.29-.657zm-8.962 2c.348 0 .624.275.624.623-.012.335-.288.623-.624.623a.619.619 0 01-.623-.623c0-.348.276-.624.623-.624zm8.891 0c.348 0 .623.275.623.623-.012.335-.287.623-.623.623a.619.619 0 01-.623-.623c0-.348.288-.624.623-.624zm-4.541 4.025c-.527 0-2.06.096-2.06.587 0 .887 1.88 1.522 2.06 1.474.18.048 2.06-.587 2.06-1.474 0-.49-1.52-.587-2.06-.587zM9.076 15.17c0 1.414 1.294 2.564 2.912 2.564 1.618 0 2.924-1.15 2.924-2.564z\"},\"child\":[]}]})(props);\n};\nexport function SiFord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.236C5.872 8.236.905 9.93.905 12.002S5.872 15.767 12 15.767c6.127 0 11.094-1.693 11.094-3.765 0-2.073-4.967-3.766-11.094-3.766zm-5.698 6.24c-.656.005-1.233-.4-1.3-1.101a1.415 1.415 0 0 1 .294-1.02c.195-.254.525-.465.804-.517.09-.017.213-.006.264.054.079.093.056.194-.023.234-.213.109-.47.295-.597.55a.675.675 0 0 0 .034.696c.263.397.997.408 1.679-.225.169-.156.32-.304.473-.48.3-.344.4-.47.8-1.024.005-.006.006-.014.004-.018-.003-.007-.009-.01-.02-.01-.267.007-.5.087-.725.255-.065.048-.159.041-.2-.021-.046-.07-.013-.163.062-.215.363-.253.76-.298 1.166-.367 0 0 .028.002.051-.03.167-.213.292-.405.47-.621.178-.22.41-.42.586-.572.246-.212.404-.283.564-.37.043-.022-.005-.049-.018-.049-.896-.168-1.827-.386-2.717-.056-.616.23-.887.718-.757 1.045.093.231.397.27.683.13a1.55 1.55 0 0 0 .611-.544c.087-.134.27-.038.171.195-.26.611-.757 1.097-1.363 1.118-.516.016-.849-.363-.848-.831.002-.924 1.03-1.532 2.11-1.622 1.301-.108 2.533.239 3.825.395.989.12 1.938.123 2.932-.106.118-.025.2.05.193.168-.01.172-.143.337-.47.516-.373.204-.763.266-1.17.27-.984.008-1.901-.376-2.85-.582.002.041.012.091-.023.117-.525.388-1 .782-1.318 1.334-.011.013-.005.025.013.024.277-.015.525-.022.783-.042.045-.004.047-.015.043-.048a.64.64 0 0 1 .2-.558c.172-.153.387-.17.53-.06.16.126.147.353.058.523a.63.63 0 0 1-.382.31s-.03.006-.026.034c.006.043.2.151.217.18.017.027.008.07-.021.102a.123.123 0 0 1-.095.045c-.033 0-.053-.012-.096-.035a.92.92 0 0 1-.27-.217c-.024-.031-.037-.032-.099-.029-.279.017-.714.059-1.009.096-.071.008-.082.022-.096.047-.47.775-.972 1.61-1.523 2.17-.592.6-1.083.758-1.604.762zM19.05 10.71c-.091.158-1.849 2.834-1.96 3.11-.035.088-.04.155-.004.204.092.124.297.051.425-.038.381-.262.645-.58.937-.858.017-.013.046-.018.065 0 .043.04.106.091.15.137a.04.04 0 0 1 .002.057 5.873 5.873 0 0 1-.904.911c-.47.364-.939.457-1.172.224a.508.508 0 0 1-.14-.316c-.002-.057-.031-.06-.058-.034-.278.275-.76.579-1.198.362-.366-.18-.451-.618-.383-.986.001-.008-.006-.06-.051-.03a1.28 1.28 0 0 1-.3.162.853.853 0 0 1-.366.077.518.518 0 0 1-.451-.253.759.759 0 0 1-.095-.347c-.001-.011-.017-.032-.033-.005-.3.457-.579.899-.875 1.363-.016.022-.03.036-.06.037l-.587.001c-.036 0-.053-.028-.034-.063.104-.2.674-1.03 1.06-1.736.107-.194.085-.294.019-.337-.083-.054-.248.027-.387.133-.379.287-.697.735-.859.935-.095.117-.185.291-.433.56-.391.425-.91.669-1.408.5a.848.848 0 0 1-.546-.58c-.015-.052-.044-.066-.073-.032-.08.1-.245.249-.383.342-.015.011-.052.033-.084.017a.851.851 0 0 1-.152-.199.07.07 0 0 1 .016-.08c.197-.173.305-.271.391-.38.064-.08.113-.17.17-.315.12-.302.393-.866.938-1.158a1.81 1.81 0 0 1 .652-.219c.1-.01.183.002.213.08.011.033.039.105.056.158.011.032.003.057-.035.071-.32.122-.643.311-.865.61-.253.338-.321.746-.152.98.123.17.322.2.514.139.29-.092.538-.363.666-.663.138-.329.16-.717.058-1.059-.016-.059-.001-.104.037-.136.077-.063.184-.112.215-.128a.14.14 0 0 1 .182.045c.106.157.163.378.17.607.006.049.026.05.05.025.19-.202.366-.418.568-.58.185-.147.422-.267.643-.262.286.006.428.2.419.546-.001.044.03.04.051.011a1.19 1.19 0 0 1 .24-.264c.198-.163.4-.236.611-.222.26.02.468.257.425.527a.53.53 0 0 1-.281.406.362.362 0 0 1-.405-.044.336.336 0 0 1-.096-.322c.005-.025-.027-.048-.054-.02-.254.264-.273.606-.107.76.183.17.458.056.658-.075.366-.239.65-.563.979-.813.218-.166.467-.314.746-.351a.87.87 0 0 1 .454.052c.2.081.326.25.342.396.004.043.036.048.063.01.158-.246 1.005-1.517 1.075-1.65.02-.041.044-.047.089-.047h.606c.035 0 .051.02.036.047zm-2.32 2.204a.053.053 0 0 0-.003.04c.003.02.03.04.056.05.01.003.015.01.004.032-.075.16-.143.252-.237.391a1.472 1.472 0 0 1-.3.325c-.178.147-.424.307-.628.2-.09-.047-.13-.174-.127-.276.004-.288.132-.584.369-.875.288-.355.607-.539.816-.438.216.103.148.354.05.55zm-5.949-1.881a.398.398 0 0 1 .132-.345c.057-.05.133-.062.18-.022.052.045.027.157-.026.234a.43.43 0 0 1-.245.177c-.018.004-.034-.004-.041-.044zM12 7.5C5.34 7.5 0 9.497 0 12c0 2.488 5.383 4.5 12 4.5s12-2.02 12-4.5-5.383-4.5-12-4.5zm0 8.608C5.649 16.108.5 14.27.5 12.002.5 9.733 5.65 7.895 12 7.895s11.498 1.838 11.498 4.107c0 2.268-5.148 4.106-11.498 4.106z\"},\"child\":[]}]})(props);\n};\nexport function SiForgejo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z\"},\"child\":[]}]})(props);\n};\nexport function SiFormik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.545 10.2945 17.792 8.712l.0011-3.3004 2.7531 1.5824Zm-.001 3.5897-2.7522-1.582.0011-3.1528 2.7522 1.5819zm.0263 3.6317-2.786-1.6013.0012-3.1529 2.786 1.6013zm-7.152-6.5068 3.9973-2.2977.0003-3.1523-3.9973 2.2978zm-2.4754 4.9833 6.4574-3.7118.0003-3.1522-6.4574 3.7118zm-4.3424 6.1423 10.8226-6.2208.0003-3.1522L6.601 18.9825zM9.5898 24l-2.7697-1.5927 10.7837-6.2013 2.7697 1.5927ZM3.455 13.7775 6.208 15.36l-.0011 3.3609-2.7531-1.5825Zm.0012-3.5897 2.7522 1.582-.001 3.1528-2.7523-1.5819zm-.0265-3.6114 2.786 1.6013-.001 3.1529-2.786-1.6013Zm7.1517 6.4856L6.584 15.3598l-.0004 3.1523 3.9973-2.2978zm2.4754-4.9832-6.4574 3.7117-.0004 3.1523 6.4574-3.7118zm4.3586-6.1516L6.5765 8.1573l-.0004 3.1522L17.415 5.0793ZM14.534 0l2.7697 1.5927L6.3961 7.8652 3.6264 6.2725Z\"},\"child\":[]}]})(props);\n};\nexport function SiFormspree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.333 2a2 2 0 0 1 2-2h17.334a2 2 0 0 1 2 2v2.857a2 2 0 0 1-2 2H3.333a2 2 0 0 1-2-2zm0 8.571a2 2 0 0 1 2-2h17.334a2 2 0 0 1 2 2v2.858a2 2 0 0 1-2 2H3.333a2 2 0 0 1-2-2zm2 6.572a2 2 0 0 0-2 2V22a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.857a2 2 0 0 0-2-2z\"},\"child\":[]}]})(props);\n};\nexport function SiFormstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19,4.035h1.4c0.331,0,0.6,0.269,0.6,0.6v14.73c0,0.331-0.269,0.6-0.6,0.6H19V4.035z M22,6.026h1.4 c0.331,0,0.6,0.269,0.6,0.6v10.747c0,0.331-0.269,0.6-0.6,0.6H22V6.026z M0.6,2.044h16.8c0.331,0,0.6,0.269,0.6,0.6v18.712 c0,0.331-0.269,0.6-0.6,0.6H0.6c-0.331,0-0.6-0.269-0.6-0.6V2.644C0,2.313,0.269,2.044,0.6,2.044z M4.2,5.23 c-0.11,0-0.2,0.09-0.2,0.2v7.35c0,0.045,0.015,0.089,0.044,0.125c0.069,0.086,0.195,0.101,0.281,0.032l9.228-7.35 c0.048-0.038,0.075-0.096,0.075-0.156c0-0.11-0.09-0.2-0.2-0.2L4.2,5.23z M4,17.185c0,0.04,0.012,0.08,0.035,0.113 c0.062,0.091,0.187,0.114,0.278,0.052l7.576-5.184c0.054-0.037,0.087-0.099,0.087-0.165c0-0.11-0.09-0.2-0.2-0.2H6.89 c-0.045,0-0.088,0.015-0.123,0.042l-2.69,2.102C4.028,13.983,4,14.041,4,14.103L4,17.185z M4.086,18.342 C4.032,18.379,4,18.441,4,18.506v0.087c0,0.106,0.086,0.192,0.192,0.192H7c0.11,0,0.2-0.09,0.2-0.2v-2.022 c0-0.041-0.012-0.081-0.036-0.114c-0.063-0.091-0.188-0.113-0.278-0.05L4.086,18.342z\"},\"child\":[]}]})(props);\n};\nexport function SiFortinet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.785h6.788v4.454H0zm8.666-6.33h6.668v4.453H8.666zm0 12.637h6.668v4.454H8.666zm8.522-6.307H24v4.454h-6.812zM2.792 3.455C1.372 3.814.265 5.404 0 7.425v.506h6.788V3.454zM0 16.091v.554c.24 1.926 1.276 3.466 2.624 3.9h4.188v-4.454zm24-8.184v-.506c-.265-1.998-1.372-3.587-2.792-3.972h-4.02v4.454H24zM21.376 20.57c1.324-.458 2.36-1.974 2.624-3.9v-.554h-6.812v4.454Z\"},\"child\":[]}]})(props);\n};\nexport function SiFortran (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.536 0H4.464A4.463 4.463 0 0 0 0 4.464v15.073A4.463 4.463 0 0 0 4.464 24h15.073A4.463 4.463 0 0 0 24 19.536V4.464A4.463 4.463 0 0 0 19.536 0zm1.193 6.493v3.871l-.922-.005c-.507-.003-.981-.021-1.052-.041-.128-.036-.131-.05-.192-.839-.079-1.013-.143-1.462-.306-2.136-.352-1.457-1.096-2.25-2.309-2.463-.509-.089-2.731-.176-4.558-.177L10.13 4.7v5.82l.662-.033c.757-.038 1.353-.129 1.64-.252.306-.131.629-.462.781-.799.158-.352.262-.815.345-1.542.033-.286.07-.572.083-.636.024-.116.028-.117 1.036-.117h1.012v9.3h-2.062l-.035-.536c-.063-.971-.252-1.891-.479-2.331-.311-.601-.922-.871-2.151-.95a11.422 11.422 0 0 1-.666-.059l-.172-.027.02 2.926c.021 3.086.03 3.206.265 3.465.241.266.381.284 2.827.368.05.002.065.246.065 1.041v1.039H3.271v-1.039c0-.954.007-1.039.091-1.041.05-.001.543-.023 1.097-.049.891-.042 1.033-.061 1.244-.167a.712.712 0 0 0 .345-.328c.106-.206.107-.254.107-6.78 0-6.133-.006-6.584-.09-6.737a.938.938 0 0 0-.553-.436c-.104-.032-.65-.07-1.215-.086l-1.026-.027V2.622h17.458v3.871z\"},\"child\":[]}]})(props);\n};\nexport function SiFossa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.398 9.516a.123.123 0 0 1 .036.087v.693a.123.123 0 0 1-.123.123H1.018v1.155h1.766a.123.123 0 0 1 .123.123v.693a.123.123 0 0 1-.123.12H1.018v1.9a.123.123 0 0 1-.124.123h-.77A.123.123 0 0 1 0 14.41V9.6a.123.123 0 0 1 .123-.12h3.188c.033 0 .064.013.087.036zm5.829 1.803a3.252 3.252 0 0 1 0 1.366c-.053.243-.14.477-.256.696a2.4 2.4 0 0 1-.45.621 2.074 2.074 0 0 1-.719.436 2.763 2.763 0 0 1-.992.17c-.34.005-.68-.053-1-.17a2.073 2.073 0 0 1-.718-.436 2.48 2.48 0 0 1-.462-.62 2.651 2.651 0 0 1-.26-.697 3.248 3.248 0 0 1 0-1.366c.054-.242.142-.475.26-.693.121-.23.278-.44.463-.62a2.12 2.12 0 0 1 .719-.441 2.73 2.73 0 0 1 .998-.173c.339-.005.675.054.992.173.266.097.51.247.718.44.183.182.335.392.451.621.116.219.202.452.256.693zm-.96.675c0-.111-.01-.222-.028-.332a2.204 2.204 0 0 0-.123-.426 1.706 1.706 0 0 0-.242-.434 1.163 1.163 0 0 0-.431-.325 1.458 1.458 0 0 0-.633-.126 1.503 1.503 0 0 0-.65.134c-.165.07-.312.18-.428.317a1.8 1.8 0 0 0-.243.437c-.058.137-.1.28-.124.426a1.953 1.953 0 0 0 .123 1.091c.06.158.143.306.246.44.116.141.263.253.43.328.202.093.423.139.646.134v.006c.219.003.435-.044.633-.138.165-.076.31-.188.425-.328.105-.134.188-.283.248-.442a2.048 2.048 0 0 0 .152-.762zm5.5.385a.954.954 0 0 0-.242-.27 4.435 4.435 0 0 0-.278-.21 2.08 2.08 0 0 0-.346-.172 8.157 8.157 0 0 0-.335-.134l-.353-.123a7.626 7.626 0 0 1-.368-.13 2.925 2.925 0 0 1-.268-.126.601.601 0 0 1-.224-.177.415.415 0 0 1-.067-.217c.015-.312.243-.469.685-.469.444.027.88.137 1.284.325a.123.123 0 0 0 .165-.072l.268-.628a.112.112 0 0 0-.058-.166 4.31 4.31 0 0 0-1.736-.41 1.735 1.735 0 0 0-1.183.397 1.353 1.353 0 0 0-.45 1.074c0 .532.25.933.751 1.203a6.37 6.37 0 0 0 1.039.382c.225.06.439.158.632.288a.401.401 0 0 1 .173.415.493.493 0 0 1-.254.349c-.17.093-.361.138-.554.13a3.273 3.273 0 0 1-1.353-.36.116.116 0 0 0-.093 0 .123.123 0 0 0-.07.064l-.332.629a.126.126 0 0 0 0 .093.11.11 0 0 0 .058.072c.57.297 1.204.451 1.847.45.466.019.924-.127 1.294-.411a1.387 1.387 0 0 0 .549-1.039 1.282 1.282 0 0 0-.18-.757zm4.637 0a.954.954 0 0 0-.242-.27 4.465 4.465 0 0 0-.278-.21 2.077 2.077 0 0 0-.346-.172 8.123 8.123 0 0 0-.335-.134l-.353-.123a7.545 7.545 0 0 1-.368-.13 2.925 2.925 0 0 1-.268-.126.601.601 0 0 1-.224-.177.415.415 0 0 1-.072-.217c.014-.312.242-.469.685-.469.446.027.883.137 1.288.325a.123.123 0 0 0 .166-.072l.267-.628a.11.11 0 0 0-.015-.14.11.11 0 0 0-.042-.026 4.31 4.31 0 0 0-1.74-.41c-.43-.02-.852.122-1.183.397a1.353 1.353 0 0 0-.451 1.074c0 .532.25.933.751 1.203.335.157.682.285 1.039.382.224.06.437.158.63.288a.404.404 0 0 1 .173.415.491.491 0 0 1-.256.353c-.169.092-.36.137-.551.13a3.273 3.273 0 0 1-1.353-.361.116.116 0 0 0-.093 0 .123.123 0 0 0-.073.061l-.332.629a.126.126 0 0 0 0 .093.11.11 0 0 0 .057.072c.57.297 1.205.451 1.848.45.465.018.921-.127 1.29-.41a1.388 1.388 0 0 0 .55-1.04 1.276 1.276 0 0 0-.04-.422 1.534 1.534 0 0 0-.129-.335zM24 14.452a.094.094 0 0 1-.01.04.071.071 0 0 1-.065.041h-.902a.16.16 0 0 1-.17-.115l-.436-1.068h-1.58l-.431 1.062a.168.168 0 0 1-.171.115h-.916a.07.07 0 0 1-.066-.04.1.1 0 0 1-.007-.083l2.208-4.924a.19.19 0 0 1 .15-.065.183.183 0 0 1 .165.066l2.222 4.93a.098.098 0 0 1 .009.041zm-1.93-1.912l-.451-1.133-.45 1.133h.901z\"},\"child\":[]}]})(props);\n};\nexport function SiFossilscm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.571 0c-.699.022-2.041.555-3.458 1.419C7.464 2.42 6.258 3.538 6.16 4.108c-.008.009-.019.014-.026.023-.563.746.203 2.277 1.711 3.414 1.408 1.063 2.958 1.397 3.617.832.518-.09 1.227-1.776 1.627-3.94.383-2.054.35-3.812-.045-4.214-.006-.02.001-.048-.01-.066-.069-.113-.23-.163-.463-.156zm-2.277 2.936c-.164.193-.329.383-.492.605-.217.296-.403.587-.568.866a5.705 5.705 0 00-.908-.432 14.052 14.052 0 001.785-.914c.067-.04.118-.084.183-.125zm.912 1.084c-.004.024-.01.043-.015.066a16.33 16.33 0 00-.227 1.78 6.106 6.106 0 00-.654-.674c.215-.241.436-.507.652-.801.093-.127.16-.246.244-.371zm-3.14 4.002c-.41-.075-.968 1.14-1.246 2.706-.276 1.566-.164 2.897.246 2.969.41.072.972-1.141 1.248-2.707.276-1.566.164-2.896-.248-2.968zm-5.56 2.708c-.072.032-.026.314.103.625.132.312.297.539.37.51.074-.031.025-.311-.104-.623-.13-.312-.295-.54-.37-.512zm-.602.506c-.035-.005-.061 0-.076.018-.062.067.083.298.322.512.24.215.483.332.545.265.06-.07-.084-.298-.324-.513-.18-.16-.361-.267-.467-.282zm-.224.684c-.118 0-.197.02-.205.058-.017.077.247.205.587.282.343.078.636.078.653.002.017-.08-.248-.204-.588-.284a2.163 2.163 0 00-.447-.058zm1.296.144c-.251.067-.235.954.036 1.98.27 1.03.695 1.81.945 1.745.25-.067.234-.954-.037-1.98-.271-1.03-.694-1.812-.944-1.745zm10.394.186c-.072-.031-.237.198-.369.51-.13.311-.178.59-.103.62.072.032.24-.197.369-.51.13-.31.178-.591.103-.62zm.61.504c-.105.015-.285.12-.463.281-.238.213-.382.445-.323.512.058.064.304-.057.541-.27.238-.213.38-.443.32-.508-.014-.016-.04-.02-.075-.015zm-7.625.593c-.34.035-.86.369-1.326.883-.621.686-.914 1.437-.652 1.672.261.237.978-.125 1.601-.81.621-.689.912-1.437.65-1.674-.065-.059-.16-.082-.273-.07zm7.85.092c-.119 0-.276.018-.446.057-.343.077-.607.202-.59.281.017.077.31.077.652 0 .34-.077.607-.202.588-.28-.008-.037-.087-.057-.205-.058zm-6.13.168a.15.15 0 00-.099.028c-.21.163.143.978.793 1.82.647.841 1.346 1.393 1.557 1.23.21-.16-.148-.977-.795-1.818-.567-.737-1.172-1.251-1.455-1.26zm4.557.043c-.267-.03-.843.36-1.387.96-.62.685-.966 1.386-.767 1.563.196.18.861-.232 1.482-.917.621-.686.964-1.385.768-1.565a.17.17 0 00-.096-.04zm-5.603.133c-.386.082-.48 1.2-.205 2.492.273 1.292.815 2.275 1.2 2.193.387-.081.481-1.2.208-2.49-.276-1.292-.815-2.279-1.203-2.195zm15.448 2.459c-.13-.055-.48.471-.78 1.174-.297.705-.432 1.323-.3 1.378.13.056.48-.47.777-1.173.297-.705.433-1.324.303-1.38zm-9.503.412c-.07.031-.024.31.105.621.132.312.298.542.367.514.072-.031.027-.31-.105-.621-.13-.312-.295-.543-.367-.514zm-.6.506c-.035-.005-.062 0-.078.017-.06.07.087.297.324.51.238.213.481.33.541.264.06-.067-.083-.297-.32-.51-.178-.158-.36-.266-.467-.281zm-.224.681c-.118 0-.195.019-.203.057-.017.079.245.204.585.283.343.077.636.077.653 0 .016-.077-.246-.204-.586-.281a2.133 2.133 0 00-.45-.059zm1.37.21c-.26 0-.476.75-.476 1.675s.215 1.676.477 1.676c.26 0 .478-.75.478-1.676 0-.926-.217-1.676-.478-1.676zm-5.175.333a.235.235 0 00-.133.045c-.294.216.04 1.17.744 2.13.703.962 1.514 1.564 1.807 1.35.295-.215-.035-1.171-.74-2.13-.617-.842-1.315-1.41-1.678-1.395zm13.02.522c-.105-.094-.601.297-1.105.873-.503.575-.824 1.119-.718 1.213.108.093.603-.298 1.107-.873.504-.576.825-1.12.717-1.213zm-11.014.443c-.113-.005-.194.019-.23.074-.144.223.46.875 1.353 1.453.89.58 1.73.872 1.875.649.146-.223-.46-.877-1.35-1.457-.667-.434-1.308-.704-1.648-.719zM8.73 20.451c-.266 0-.48.75-.48 1.675 0 .926.214 1.676.48 1.676s.482-.75.482-1.676c0-.925-.216-1.675-.482-1.675zm-3.644.06c-.072.031-.026.313.103.625.132.312.297.539.37.51.074-.031.025-.312-.104-.623-.13-.312-.295-.54-.37-.512zm14.296.477c-.368-.04-1.127.127-1.96.453-1.107.434-1.929.984-1.833 1.228.096.242 1.074.093 2.181-.342 1.11-.434 1.932-.985 1.836-1.23-.024-.06-.102-.096-.224-.11zm-14.898.029c-.035-.005-.061 0-.076.018-.062.067.082.298.322.511.24.216.483.333.545.266.06-.07-.084-.298-.324-.514-.18-.16-.362-.267-.467-.281zm-.223.685c-.118 0-.196.019-.205.057-.016.08.248.204.588.283.343.077.636.077.653 0 .016-.077-.248-.204-.588-.281a2.116 2.116 0 00-.448-.059zm1.29.047c-.114-.005-.194.019-.231.075-.144.223.461.875 1.353 1.453.89.58 1.731.871 1.875.648.147-.223-.46-.877-1.35-1.457-.666-.433-1.307-.704-1.648-.719zm6.628.09c-.865-.036-1.493.081-1.527.32-.046.317.98.73 2.289.92 1.311.19 2.415.087 2.46-.232.046-.317-.98-.73-2.292-.92a9.203 9.203 0 00-.93-.088z\"},\"child\":[]}]})(props);\n};\nexport function SiFoundryvirtualtabletop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.391 23.879-9.386-5.5c-.269-.158-.492-.546-.492-.86V6.48c0-.314.223-.7.494-.857L11.506.116c.274-.157.717-.154.988.003l9.499 5.561c.271.16.494.546.494.86v10.979c0 .314-.223.7-.494.857l-9.613 5.509c-.271.154-.717.154-.989-.006m1.221-.934 6.929-3.958c.274-.157.471-.354.443-.443-.029-.088-.309-.125-.62-.085l-6.684.877c-.311.04-.566.331-.566.646v2.674c0 .315.226.446.498.289M9.714 1.951l-6.766 3.92c-.272.158-.272.418 0 .575l2.208 1.288c.272.158.652.086.846-.162l4.075-5.204c.194-.248.306-.508.243-.577s-.335.003-.606.16m2.429 16.222 5.212-9.064c.157-.272.028-.494-.286-.494H6.725c-.314 0-.443.222-.289.497l5.141 9.058c.154.274.409.274.566.003m1.489-7.247s-.949.28-.952.958c0 .674 1.129 1.025 1.129 1.025v.669h-1.12c-.232-.151-.483-.237-.752-.237-.268 0-.523.086-.751.237H10.12v-.669c.36 0 1.086-.591 1.086-1.02 0-.428-.683-.517-.683-.517h-.54c-1.258 0-1.749-1.186-1.749-1.186h2.08v-.228h4.824v.731c-.646 0-1.506.237-1.506.237m-3.052-.58h4.303c.026 0 .049-.02.049-.048v-.029c0-.026-.02-.048-.049-.048H10.58c-.026 0-.049.02-.049.048v.029c0 .025.02.048.049.048m-.297.2v-.097c0-.014-.012-.023-.023-.023H8.868c-.02 0-.028.032-.008.043.211.112.351.1.351.1h1.049c.014 0 .023-.011.023-.023M2.17 7.166v7.972c0 .315.075.589.166.606s.266-.203.386-.494l2.617-6.252a.655.655 0 0 0-.28-.803L2.67 6.872c-.274-.152-.5-.02-.5.294m11.459-5.375c-.06.071.048.329.243.577l4.072 5.204c.194.248.574.32.845.162l2.209-1.288c.272-.157.272-.417 0-.575l-6.763-3.92c-.272-.157-.546-.229-.606-.16m8.172 13.347V7.166c0-.314-.226-.446-.5-.294l-2.389 1.323a.652.652 0 0 0-.28.803l2.618 6.252c.123.291.294.511.385.494.092-.02.166-.291.166-.606m-8.895 3.652 8.218-1.083c.311-.04.466-.311.346-.6l-3.201-7.644c-.123-.288-.348-.303-.505-.031l-5.141 8.938c-.154.271-.029.46.283.42m4.317-11.144-4.88-6.444c-.189-.251-.503-.254-.697-.005L6.594 7.649c-.195.248-.095.451.22.451h10.184c.314 0 .414-.203.225-.454M2.759 17.71l8.055 1.077c.314.043.44-.146.286-.42L6.036 9.44c-.157-.274-.38-.26-.5.032L2.41 17.104c-.12.292.037.563.349.606m8.841 4.946h-.003v-2.669c0-.314-.254-.605-.566-.648l-6.54-.878c-.312-.042-.592-.002-.621.083-.028.086.169.289.441.446l6.795 3.949c.271.16.494.032.494-.283\"},\"child\":[]}]})(props);\n};\nexport function SiFoursquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.376 0h7.338v1.204h-6.12v3.372h5.44V5.78h-5.44v4.874H2.376V0zm-.208 20.16l1.19-.268c.213 1.473 1.232 2.352 2.89 2.352 1.487 0 2.664-.694 2.664-1.828 0-.807-.595-1.487-2.919-2.18-2.635-.752-3.513-1.715-3.513-3.13 0-1.829 1.473-2.805 3.613-2.805 2.393 0 3.456 1.218 3.825 2.89l-1.19.269c-.299-1.374-1.233-1.955-2.679-1.955-1.36 0-2.323.51-2.323 1.487 0 .793.624 1.403 2.777 2.083 2.565.793 3.67 1.658 3.67 3.301 0 2.04-1.715 3.103-3.896 3.103-2.281-.003-3.84-1.193-4.11-3.318zm9.223-2.238c0-3.159 2.068-5.624 5.242-5.624 3.159 0 5.2 2.479 5.2 5.624 0 1.573-.525 2.933-1.404 3.925a36.155 36.155 0 011.247 1.303l-.879.85a57.16 57.16 0 00-1.303-1.346c-.807.524-1.771.822-2.861.822-3.061 0-5.242-2.352-5.242-5.554zm7.181 3.825a31.241 31.241 0 00-1.247-1.148l.85-.863a36.537 36.537 0 011.331 1.218c.638-.764 1.02-1.813 1.02-3.046 0-2.493-1.516-4.39-3.896-4.39s-3.91 1.897-3.91 4.39c0 2.565 1.658 4.363 3.91 4.363.725 0 1.375-.184 1.942-.524z\"},\"child\":[]}]})(props);\n};\nexport function SiFoursquarecityguide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.727 3.465l-.535 2.799c-.064.303-.445.623-.801.623H11.41c-.562 0-.963.391-.963.945v.614c0 .569.405.96.966.96h4.23c.395 0 .785.436.697.855l-.535 2.76c-.051.24-.314.63-.785.63h-3.457c-.63 0-.818.091-1.239.601-.42.524-4.206 5.069-4.206 5.069-.037.045-.074.029-.074-.015V3.42c0-.359.311-.78.776-.78h10.274c.375 0 .73.356.633.821v.004zm.451 10.98c.145-.578 1.746-8.784 2.281-11.385M18.486 0H5.683C3.918 0 3.4 1.328 3.4 2.164v20.34c0 .94.504 1.291.789 1.405.284.117 1.069.214 1.541-.328 0 0 6.044-7.014 6.146-7.117.165-.157.165-.157.315-.157h3.914c1.65 0 1.906-1.17 2.086-1.86.15-.569 1.754-8.774 2.279-11.385C20.875 1.08 20.365 0 18.49 0h-.004z\"},\"child\":[]}]})(props);\n};\nexport function SiFox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.069 9.7h3.42L6.3 6.932H0v10.136h3.069V13.8h2.789v-2.778H3.069ZM24 6.932h-3.291L19.48 9.1l-1.231-2.168h-3.292l2.871 5.076-2.871 5.06h3.308l1.215-2.142 1.213 2.142H24l-2.871-5.06Zm-12.592 0A5.067 5.067 0 1 0 16.475 12a5.067 5.067 0 0 0-5.067-5.065Zm.888 7.146a.867.867 0 0 1-.873.847.847.847 0 0 1-.837-.858V9.919a.882.882 0 0 1 .837-.9.913.913 0 0 1 .873.9Z\"},\"child\":[]}]})(props);\n};\nexport function SiFoxtel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.867 10.631l.341-1.024H0v4.779h1.16v-1.72h1.434l.341-1.024H1.16v-1.01zm3.03-1.085a2.454 2.454 0 1 0-.006 4.908 2.454 2.454 0 0 0 .007-4.908zm0 3.74a1.287 1.287 0 1 1-.007-2.574 1.287 1.287 0 0 1 .008 2.575zm6.506-3.679h-1.297l-.812 1.304-.82-1.304H8.177l1.468 2.335-1.536 2.444h1.297l.888-1.405.88 1.405h1.297l-1.529-2.444zm.102 1.024h1.413v3.755h1.16V10.63h1.23V9.607h-3.16zm7.304 0l.341-1.024h-3.208v4.779h2.867l.341-1.024h-2.046v-.915h1.432l.341-1.024h-1.773v-.792zm2.143 2.73V9.608h-1.16v4.779h2.867L24 13.362Z\"},\"child\":[]}]})(props);\n};\nexport function SiFozzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.494 20.48l-.998-2.095 5.787-11.273c.897 1.396 1.496 3.092 1.496 4.888 0 3.99-2.594 7.382-6.285 8.48zM12.998.029C5.615-.471-.47 5.615.028 12.998c.5 5.786 5.188 10.475 10.974 10.973 7.383.5 13.468-5.586 12.97-12.969C23.471 5.216 18.783.527 12.997.03zM7.112 4.717c1.297-.897 2.793-1.396 4.39-1.496L8.807 8.409 7.112 4.717zm3.491 7.383l4.19-8.38c.798.3 1.497.598 2.195 1.097L11.9 14.793 10.603 12.1zM3.221 12c0-1.796.599-3.492 1.496-4.888l6.485 13.667C6.712 20.38 3.22 16.589 3.22 12z\"},\"child\":[]}]})(props);\n};\nexport function SiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 0h16v8h-8zM4 8h8l8 8H4zM4 16h8v8z\"},\"child\":[]}]})(props);\n};\nexport function SiFramework (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.186 9.07 21.41 8.019a2.78 2.78 0 0 1-1.344-2.391V3.523c0-.431-.19-.837-.516-1.108A11.965 11.965 0 0 0 16.317.493a1.356 1.356 0 0 0-1.193.091L13.347 1.64a2.622 2.622 0 0 1-2.688 0L8.882.584a1.348 1.348 0 0 0-1.194-.09 11.93 11.93 0 0 0-3.231 1.918 1.44 1.44 0 0 0-.516 1.108v2.104c0 .986-.51 1.897-1.344 2.392L.823 9.068c-.363.215-.61.588-.675 1.013A12.24 12.24 0 0 0 0 12.001c0 .651.048 1.292.145 1.916.065.425.312.801.675 1.016l1.774 1.052a2.78 2.78 0 0 1 1.344 2.392v2.104c0 .431.191.837.516 1.108.965.8 2.054 1.452 3.231 1.919.393.155.831.124 1.194-.091l1.777-1.055a2.622 2.622 0 0 1 2.688 0l1.777 1.055c.363.215.804.246 1.193.091a11.973 11.973 0 0 0 3.232-1.92 1.44 1.44 0 0 0 .516-1.107v-2.104a2.78 2.78 0 0 1 1.344-2.392l1.774-1.052c.363-.215.61-.588.675-1.016.094-.624.145-1.265.145-1.916 0-.652-.048-1.293-.145-1.917a1.41 1.41 0 0 0-.67-1.013zM12.003 19.41c-3.981 0-7.21-3.317-7.21-7.407s3.229-7.406 7.21-7.406c3.98 0 7.21 3.316 7.21 7.406s-3.23 7.407-7.21 7.407z\"},\"child\":[]}]})(props);\n};\nexport function SiFramework7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12a11.95 11.95 0 012.713-7.6h18.574L8.037 23.33C3.358 21.694 0 17.24 0 12zm22.271-6.208A11.944 11.944 0 0124 12c0 6.627-5.373 12-12 12-.794 0-1.57-.077-2.32-.224zM4.295 2.8A11.952 11.952 0 0112 0c2.933 0 5.62 1.052 7.705 2.8z\"},\"child\":[]}]})(props);\n};\nexport function SiFranprix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.305c3.691 0 6.323-3.071 6.13-6.286-2.124-.17-5.069.791-6.13 3.79C10.939.81 7.993-.15 5.87.02 5.677 3.234 8.309 6.305 12 6.305m11.002 6.962c-.139-3.413-2.821-6.362-6.55-6.362-1.69 0-3.236.635-4.452 1.744-1.217-1.11-2.763-1.744-4.452-1.744-3.729 0-6.412 2.949-6.55 6.362C.758 19.19 5.913 24 12 24c6.087 0 11.242-4.81 11.002-10.733\"},\"child\":[]}]})(props);\n};\nexport function SiFrappe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.88 0C1.29 0 0 1.29 0 2.88v18.24C0 22.71 1.29 24 2.88 24h18.24c1.59 0 2.88-1.29 2.88-2.88V2.88C24 1.29 22.71 0 21.12 0H2.88zM8.4 6h8.024v2.111H8.4V6zm0 5.385h7.49v2.113h-4.93V18H8.4v-6.615z\"},\"child\":[]}]})(props);\n};\nexport function SiFraunhofergesellschaft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.06 23.99c5.681-2.926 14-7.653 23.88-14.567v-2.32C15.247 12.792 6.406 17.359.06 20.38zm0-6.93c6.325-2.575 15.166-6.558 23.88-11.74V4.174C15.751 8.238 7.24 10.781.06 12.366zM23.94 24V12.332A201.394 201.393 0 0 1 8.596 24zM5.542 24a166.927 166.926 0 0 0 14.7-9.765 323.136 324.76 0 0 0 3.698-2.81V9.98C16.257 15.74 8.413 20.542 2.287 24zM.06 10.668C7.044 9.44 15.589 7.231 23.94 3.262v-1.3C15.526 5.737 7.102 7.338.06 7.91zM.06 0v6.686c.522-.033 1.054-.07 1.596-.111C7.464 6.126 15.387 5.1 23.94 1.402V0z\"},\"child\":[]}]})(props);\n};\nexport function SiFreebsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.682 2.406c-.001-.149-.097-.187-.24-.189h-.25v.659h.108v-.282h.102l.17.282h.122l-.184-.29c.102-.012.175-.065.172-.18zm-.382.096v-.193h.13c.06-.002.145.011.143.089.005.09-.08.107-.153.103h-.12zM21.851 1.49c1.172 1.171-2.077 6.319-2.626 6.869-.549.548-1.944.044-3.115-1.128-1.172-1.171-1.676-2.566-1.127-3.115.549-.55 5.697-3.798 6.868-2.626zM1.652 6.61C.626 4.818-.544 2.215.276 1.395c.81-.81 3.355.319 5.144 1.334A11.003 11.003 0 0 0 1.652 6.61zm18.95.418a10.584 10.584 0 0 1 1.368 5.218c0 5.874-4.762 10.636-10.637 10.636C5.459 22.882.697 18.12.697 12.246.697 6.371 5.459 1.61 11.333 1.61c1.771 0 3.441.433 4.909 1.199-.361.201-.69.398-.969.574-.428-.077-.778-.017-.998.202-.402.402-.269 1.245.263 2.2.273.539.701 1.124 1.25 1.674.103.104.208.202.315.297 1.519 1.446 3.205 2.111 3.829 1.486.267-.267.297-.728.132-1.287.167-.27.35-.584.538-.927zm2.814-5.088c-.322 0-.584.266-.584.595s.261.595.584.595c.323 0 .584-.266.584-.595s-.261-.595-.584-.595zm0 1.087c-.252 0-.457-.22-.457-.492s.204-.492.457-.492c.252 0 .457.22.457.492s-.204.492-.457.492z\"},\"child\":[]}]})(props);\n};\nexport function SiFreecad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h5.6v-9.6h4.8V8.8H5.6V5.6h8V0Zm15.552 6.4-1.638.086a.4.4 0 0 0-.363.295l-.702 2.576-.714.342L10.9 9.16v5.74H6.404l.092 1.59a.4.4 0 0 0 .293.363l2.576.7.344.714-1.076 2.437a.4.4 0 0 0 .097.46l1.225 1.1a.4.4 0 0 0 .467.052l2.312-1.329.752.268.967 2.488a.4.4 0 0 0 .394.256l1.65-.092a.4.4 0 0 0 .366-.297l.691-2.578.713-.341 2.446 1.08a.4.4 0 0 0 .46-.1l1.102-1.225a.4.4 0 0 0 .049-.466l-1.328-2.315.261-.751 2.487-.967a.4.4 0 0 0 .256-.393l-.084-1.648a.4.4 0 0 0-.295-.365l-2.578-.692-.344-.714 1.072-2.45a.4.4 0 0 0-.1-.459l-1.224-1.101a.4.4 0 0 0-.467-.049l-2.314 1.326-.744-.258-.975-2.49a.4.4 0 0 0-.395-.253zm2.249 8.801a2.6 2.6 0 0 1-2.6 2.6 2.6 2.6 0 0 1-2.6-2.6 2.6 2.6 0 0 1 2.6-2.6 2.6 2.6 0 0 1 2.6 2.6\"},\"child\":[]}]})(props);\n};\nexport function SiFreecodecamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.885 3.906a.621.621 0 00-.354.12c-.08.08-.161.196-.161.313 0 .2.236.474.673.923 1.822 1.754 2.738 3.903 2.732 6.494-.007 2.867-.97 5.17-2.844 6.954-.394.353-.556.63-.557.867 0 .116.08.237.16.353.076.08.237.162.353.162.434 0 1.04-.512 1.833-1.509 1.542-1.89 2.24-3.978 2.279-6.824.036-2.847-.857-4.777-2.603-6.77-.63-.712-1.153-1.082-1.511-1.083zm-15.769.002c-.358 0-.882.37-1.51 1.083C.858 6.984-.035 8.914.001 11.761c.04 2.846.737 4.933 2.28 6.824.791.997 1.398 1.51 1.832 1.509a.573.573 0 00.352-.162c.08-.116.16-.237.16-.353 0-.237-.162-.514-.556-.866-1.873-1.785-2.837-4.087-2.844-6.955-.006-2.591.91-4.74 2.732-6.494.437-.449.674-.722.673-.923 0-.117-.08-.233-.161-.313a.621.621 0 00-.354-.12zm7.056.895s.655 2.081-2.649 6.727c-3.156 4.433 1.045 7.15 1.432 7.386-.281-.18-2.001-1.5.402-5.423.466-.77 1.076-1.47 1.834-3.041 0 0 .67.946.32 2.998-.523 3.101 2.271 2.214 2.314 2.257.976 1.15-.808 3.17-.917 3.233-.108.061 5.096-3.13 1.399-7.935-.253.253-.582 1.442-1.267 1.266-.684-.174 2.125-3.494-2.868-7.468zM9.955 18.916c.023.016.038.024.038.024l-.038-.024z\"},\"child\":[]}]})(props);\n};\nexport function SiFreedesktopdotorg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.855 13.112l-2.054-7.875a4.414 4.414 0 0 0-5.379-3.153L3.296 5.509a4.413 4.413 0 0 0-3.153 5.378l2.055 7.875a4.416 4.416 0 0 0 5.379 3.153l13.126-3.425a4.377 4.377 0 0 0 2.69-2.036 4.377 4.377 0 0 0 .462-3.342zm-1.047 3a3.701 3.701 0 0 1-2.277 1.723L7.406 21.26a3.735 3.735 0 0 1-4.551-2.668L.8 10.717a3.734 3.734 0 0 1 2.668-4.552L16.593 2.74a3.727 3.727 0 0 1 4.551 2.668l2.054 7.875a3.7 3.7 0 0 1-.39 2.829zm-2.362-9.893c-.482-2.061-2.122-2.941-4.369-2.437l-11.65 3.04c-2.426.706-3.104 2.014-2.621 4.261l1.748 6.698c.482 2.112 2.281 3.098 4.369 2.437l11.651-3.04c2.121-.504 3.104-2.095 2.622-4.261l-1.75-6.698zm-6.277 3.097l.173.663-4.117.475-.173-.663 4.117-.475zm-9.05 3.861a.639.639 0 0 1-.783-.46l-.777-2.975a.643.643 0 0 1 .459-.783l4.169-1.087a.644.644 0 0 1 .784.458l.776 2.975a.643.643 0 0 1-.459.784l-4.169 1.088zm5.618 1.76l-2.06-1.988.769-.201 2.03 1.959-.519.135a.944.944 0 0 0-.22.095zm3.397 1.93a.212.212 0 0 1-.128.097l-2.336.609a.21.21 0 0 1-.257-.151l-.435-1.667a.21.21 0 0 1 .151-.257l2.336-.609a.211.211 0 0 1 .256.15l.435 1.667a.214.214 0 0 1-.022.161zm.011-2.398a.882.882 0 0 0-.178-.142.882.882 0 0 0-.463-.119l1.562-2.351c.183.147.41.235.649.248l-1.57 2.364zm5.151-3.94l-3.401.887a.462.462 0 0 1-.563-.33l-.633-2.428a.461.461 0 0 1 .33-.563l3.401-.887a.47.47 0 0 1 .35.049.457.457 0 0 1 .213.282l.633 2.428a.46.46 0 0 1-.33.562z\"},\"child\":[]}]})(props);\n};\nexport function SiFreelancer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.096 3.076l1.634 2.292L24 3.076M5.503 20.924l4.474-4.374-2.692-2.89m6.133-10.584L11.027 5.23l4.022.15M4.124 3.077l.857 1.76 4.734.294m-3.058 7.072l3.497-6.522L0 5.13m7.064 7.485l3.303 3.548 3.643-3.57 1.13-6.652-4.439-.228Z\"},\"child\":[]}]})(props);\n};\nexport function SiFreelancermap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3723 0 0 5.3723 0 12s5.3723 12 12 12l-.0115-1.3962H12c5.857 0 10.6038-4.7469 10.6038-10.6038H24c0-6.6277-5.3723-12-12-12m0 21.2054c-5.0838 0-9.2054-4.1216-9.2054-9.2054S6.9162 2.7923 12 2.7923s9.2054 4.1215 9.2054 9.2054S17.0838 21.203 12 21.203zm6.3254-4.597c3.577-5.0492.173-10.2115-2.8639-11.6146-3.6092.5747-6.8607 3.9254-7.2323 7.9108 2.8177 4.8162 8.5039 4.223 10.0985 3.7039m-9.9115-1.4493c.2653 1.6362.7246 3.247 1.703 4.4377 3.4246.8839 6.45-.7823 7.9431-2.6423-3.15 1.463-6.6623.623-9.6438-1.7954M4.7054 9.0715c-1.897 4.9939 1.3246 9.1431 4.6754 10.3039-1.0754-1.3108-1.8531-3.1639-2.0516-4.9985-1.4307-1.4307-2.4115-3.2492-2.6261-5.3054M14.31 4.53c-3.09-1.0062-6.0508.1915-7.7423 1.7954.0438 2.0746.3761 3.6946.9092 5.07.7316-3.48 3.5516-6.3416 6.8331-6.863\"},\"child\":[]}]})(props);\n};\nexport function SiFreenas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.598 2.707h.143c.06 0 .101.01.124.032a.107.107 0 0 1 .034.083c0 .045-.017.077-.051.097a.307.307 0 0 1-.153.029h-.098v-.241zm0 .391h.09l.214.337h.203l-.242-.356v-.008a.29.29 0 0 0 .161-.081.237.237 0 0 0 .059-.168.254.254 0 0 0-.03-.125.241.241 0 0 0-.08-.082.349.349 0 0 0-.114-.045.645.645 0 0 0-.133-.013h-.303v.879h.175v-.338m-.485-.368a.628.628 0 0 1 .348-.367.688.688 0 0 1 .277-.053.64.64 0 0 1 .625.42.735.735 0 0 1 .049.27.74.74 0 0 1-.049.271.642.642 0 0 1-.348.366.675.675 0 0 1-.277.054.646.646 0 0 1-.624-.421.712.712 0 0 1-.049-.27c0-.095.015-.185.048-.27zm.014.884a.835.835 0 0 0 .273.179.884.884 0 0 0 .338.064c.12 0 .233-.021.339-.064A.83.83 0 0 0 20.598 3a.852.852 0 0 0-.249-.613.815.815 0 0 0-.272-.179c-.105-.043-.218-.064-.339-.064s-.233.021-.338.064a.82.82 0 0 0-.454.45.838.838 0 0 0-.067.342c0 .125.021.239.067.343a.796.796 0 0 0 .181.271m-1.864 12.361a3.268 3.268 0 0 1-.931 1.215 3.203 3.203 0 0 1-2.008.695 3.199 3.199 0 0 1-2.423-1.085 1.989 1.989 0 0 1-.439-.855 2.223 2.223 0 0 1-.06-.519c.002-.854.428-1.71.845-2.362.21-.326.418-.602.575-.794l.208.254.036.046a7.499 7.499 0 0 0 1.126 1.083c.766.597 1.85 1.197 3.126 1.229.012 0 .023.003.035.004a.172.172 0 0 1 .064 0 .16.16 0 0 1 .126.189c-.061.33-.158.628-.28.9zm6.719-7.025a5.339 5.339 0 0 1-.821.905c-.752.664-1.936 1.343-3.649 1.435l-.505.926a.173.173 0 0 1-.299.008l-.581-.954c-.275.051-.984.168-1.808.168-1.376-.03-1.807-.241-2.263-.532l1.538-2.072-3.297-.764 4.136-.795c1.208-2.437 1.583-4.521 1.675-5.157-4.638.514-8.102 1.666-10.329 2.632l-.179.079-.034.014-.249-.241a9.292 9.292 0 0 0-1.459-.985 9.404 9.404 0 0 0-4.516-1.175 8.05 8.05 0 0 0-.894.043c-.491.031-.253.153-.194.203.225.184.544.573.753 1.112.211.541.354 1.27.354 2.254 0 .275-.012.579-.036.896-.195.362-.376.741-.539 1.132C.311 9.227 0 10.479 0 11.767c0 2.291.9 4.378 2.181 6.074l.173.262-1.355 2.7a.063.063 0 0 0 .021.08c.011.007.023.01.035.01a.067.067 0 0 0 .047-.02l2.117-1.863.248.24a10.1 10.1 0 0 0 6.812 2.63c4.516 0 8.342-2.953 9.652-7.032l.288-.124a6.314 6.314 0 0 0 1.132-.555c.684-.424 1.502-1.107 2.045-2.141.362-.687.604-1.534.604-2.576 0-.163-.006-.33-.018-.502\"},\"child\":[]}]})(props);\n};\nexport function SiFreenet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.327 6.184c-.771-.17-1.577-.48-4.266-1.884C1.48 2.467.692 2.33.23 3.084c-.617.993-.051 3.512 2.415 8.103 1.594 3.015 4.112 6.904 4.574 7.418.103.102.223.137.326.068.103-.068.154-.154.069-.308-.377-.703-1.68-3.41-2.279-4.814-1.405-3.392-1.73-4.54-1.25-4.797.136-.068.308-.017.702.206 1.353.72 4.334 3.015 4.865 4.625.223.703.343 1.508.394 4.386.069 3.786.343 4.488 1.268 4.488 1.233 0 3.289-1.713 6.356-5.996 2.021-2.81 4.385-6.767 4.625-7.4.069-.138 0-.24-.086-.309-.102-.068-.222-.051-.308.086-.463.65-2.33 3.066-3.358 4.248-2.45 2.81-3.34 3.632-3.837 3.375-.137-.068-.171-.24-.171-.65 0-1.474.633-5.02 1.867-6.22.531-.53 1.25-1.027 3.906-2.5 3.512-1.954 4.009-2.519 3.546-3.29-.617-.993-3.22-1.799-8.771-2.124-3.615-.223-8.497-.137-9.2-.017-.154.017-.222.103-.24.222 0 .103.069.206.24.206.84.051 4.026.343 5.636.565 3.855.549 5.088.874 5.088 1.405 0 .137-.137.257-.53.463-1.388.788-5.02 2.038-6.75 1.661\"},\"child\":[]}]})(props);\n};\nexport function SiFreepik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.315 6.939c-.702.702-1.204 1.505-1.706 2.308l-.702-.402c-.1-.401-.602-.702-1.004-.702-.602.1-.903.502-.903 1.104 0 .501.502.903 1.004.803.1 0 .2 0 .3-.1l.703.4c-.401.904-.702 1.807-.803 2.81l1.204.201c.402-2.107 1.305-4.014 2.81-5.52Zm12.544 7.626c-1.204 0-2.107-1.003-2.107-2.107 0-1.204 1.004-2.107 2.107-2.107 1.205 0 2.108 1.003 2.108 2.107 0 1.204-.903 2.107-2.108 2.107zm-7.325 1.506a2.912 2.912 0 0 1-2.91-2.91c0-1.707 1.304-3.011 2.91-3.011a2.912 2.912 0 0 1 2.91 2.91c0 1.606-1.305 3.01-2.91 3.01zm3.311-10.337a9.422 9.422 0 0 0-9.433 9.434c0 .702.1 1.304.2 2.007 1.004.802 4.216 1.405 8.33 1.204 4.516-.301 8.23-1.505 10.437-3.412 0-.301 0-.602-.1-.903-.603-4.817-4.617-8.33-9.434-8.33Zm-.803 13.749c-.602 0-1.204.1-1.806.1-1.405 0-2.71-.1-3.914-.3-.602-.101-1.304-.302-2.007-.503 1.606 2.91 4.817 4.918 8.43 4.918 4.415 0 8.229-3.011 9.232-7.125a16.828 16.828 0 0 1-3.813 1.806c-1.806.602-3.914 1.003-6.122 1.104zM23.182 7.34c.501-.1.903-.502.803-1.104-.1-.502-.502-.903-1.004-.803-.502.1-.803.502-.803 1.004l-.702.602c-.703-.703-1.405-1.305-2.208-1.806l-.602 1.003a11.225 11.225 0 0 1 4.014 4.616l1.104-.501c-.402-.904-.903-1.706-1.505-2.51l.602-.601c.1.1.2.1.3.1zM12.845 3.326h-.803l-.1-1.004c.301-.2.502-.602.401-1.003-.1-.602-.602-1.104-1.204-1.004-.602.1-1.003.602-1.003 1.305.1.401.3.702.602.903l.1 1.004c-1.104.2-2.208.501-3.211 1.003l.502 1.104a10.425 10.425 0 0 1 4.616-1.104c.803 0 1.505.1 2.308.301l.2-1.204c-.702-.2-1.505-.301-2.408-.301Z\"},\"child\":[]}]})(props);\n};\nexport function SiFresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.144 1.913c-.818-.017-1.704.078-2.626.264-2.46.496-5.215 1.667-7.73 3.319-2.877 1.89-5.037 4.094-6.346 6.056-.656.981-1.1 1.9-1.309 2.708s-.192 1.536.187 2.067c.93 1.3 1.312 2.654 1.748 3.747.218.547.449 1.034.809 1.409s.868.606 1.49.606c.368 0 .685-.08.937-.247s.422-.407.537-.665a3.3 3.3 0 0 0 .178-.544c3.863 1.74 7.955 1.54 10.295.732 1.096 1.247 3.982.724 3.258-1.81 2.963-2.534 6.465-7.13 2.963-15.678a5 5 0 0 0-.88-.74q-.062-.063-.13-.125h-.002c-.674-.587-1.56-.92-2.586-1.044q-.384-.047-.793-.055m-.031.732q.374.01.72.05c.92.112 1.68.398 2.216.863.404.352.572.715.596 1.136s-.112.916-.407 1.463c-.59 1.091-1.797 2.349-3.265 3.559-2.937 2.42-6.922 4.68-9.034 5.52-2.462.98-3.108 2.701-3.389 4.043-.078.383-.14.73-.204 1.027v.003a5 5 0 0 1-.07.291q-.044.16-.097.282a1 1 0 0 1-.125.215.7.7 0 0 1-.15.14c-.112.076-.27.128-.537.128q-.173 0-.312-.024a1.04 1.04 0 0 1-.467-.192 1.5 1.5 0 0 1-.189-.167c-.244-.253-.452-.66-.659-1.176-.105-.268-.213-.566-.33-.881a28 28 0 0 0-.292-.756c-.034-.082-.065-.163-.102-.247A10.4 10.4 0 0 0 .91 15.905a1 1 0 0 1-.07-.12 1 1 0 0 1-.064-.184l-.011-.05a1.5 1.5 0 0 1-.032-.231 2 2 0 0 1 .002-.26l.004-.073a3 3 0 0 1 .044-.311v-.002q.022-.112.053-.232c.18-.695.586-1.556 1.207-2.488C3.287 10.09 5.388 7.94 8.187 6.101c2.443-1.604 5.13-2.743 7.474-3.216a11.2 11.2 0 0 1 2.452-.24m-2.007.923c-1.601.254-5.374 1.608-8.391 3.636-.679.456-.681.559-.291 1.118-.583 0-1.008-.102-1.653.469-3.576 3.162-4.71 6.603-2.183 6.603 1.167 0 3.236-.562 4.224-.932.17-.064.676-1.383.676-1.685 0-.906.906.85 1.171.725.954-.45 3.035-1.548 5.737-3.498 2.851-2.057 6.479-5.276 3.115-6.181-.295-.08-1.516.1-1.813.2 0-.202-.327-.444-.592-.455m-5.45 3.507c.235.337 1.2.44 1.776.507-.517.327-.764.617-1.05 1.525-1.06-.442-2.294-.22-3.18.304.714-.541 1.19-.732 1.521-1.829.41.087.608-.057.933-.507\"},\"child\":[]}]})(props);\n};\nexport function SiFrontendmentor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.1706 1.2719a.732.732 0 00-.7186.732v13.914a.732.732 0 00.732.732.732.732 0 00.7318-.732V2.004a.732.732 0 00-.7452-.732zm11.0741 4.1685a.7339.7339 0 00-.2764.063L16.686 8.307a.7329.7329 0 000 1.3361l6.2823 2.8134a.7378.7378 0 00.2993.0648.732.732 0 00.2973-1.401l-4.786-2.1443 4.786-2.1366a.7339.7339 0 00.3698-.9664.7339.7339 0 00-.69-.4327zm-22.499 5.032a.7316.7316 0 00-.7223.9149c1.736 6.677 7.7748 11.341 14.6822 11.341a.732.732 0 000-1.464 13.7055 13.7055 0 01-13.266-10.2449.7316.7316 0 00-.6939-.547z\"},\"child\":[]}]})(props);\n};\nexport function SiFrontify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.13 15.777-2.588-1.495a.752.752 0 0 1-.376-.649v-2.989a1.743 1.743 0 0 0-.872-1.508l-2.588-1.494a.755.755 0 0 1-.375-.651V4.002a1.748 1.748 0 0 0-.871-1.511L12 .496 8.54 2.491a1.748 1.748 0 0 0-.868 1.511v2.989a.755.755 0 0 1-.375.65L4.706 9.137a1.746 1.746 0 0 0-.87 1.508v2.99a.75.75 0 0 1-.375.648l-2.59 1.495A1.75 1.75 0 0 0 0 17.287v3.989l3.46 1.994a1.74 1.74 0 0 0 1.741 0l2.589-1.494a.753.753 0 0 1 .75 0l2.589 1.494a1.745 1.745 0 0 0 1.743 0l2.588-1.494a.753.753 0 0 1 .75 0L18.8 23.27a1.74 1.74 0 0 0 1.741 0L24 21.276v-3.99a1.75 1.75 0 0 0-.87-1.51ZM15.343 4.002v2.989a1.748 1.748 0 0 0 .872 1.508l2.588 1.495a.753.753 0 0 1 .376.65v2.99a1.746 1.746 0 0 0 .87 1.507l2.589 1.495a.752.752 0 0 1 .375.65v2.85l-10.517-6.07V1.928l2.468 1.425a.75.75 0 0 1 .38.65zM1.367 16.636l2.589-1.495a1.748 1.748 0 0 0 .871-1.508v-2.989a.752.752 0 0 1 .374-.65L7.79 8.499a1.748 1.748 0 0 0 .871-1.508V4.002a.753.753 0 0 1 .375-.649l2.471-1.425v12.138L.993 20.136v-2.85a.752.752 0 0 1 .374-.65Zm18.677 5.784a.753.753 0 0 1-.75 0l-2.588-1.494a1.74 1.74 0 0 0-1.742 0l-2.588 1.494a.753.753 0 0 1-.75 0l-2.589-1.494a1.743 1.743 0 0 0-1.743 0L4.706 22.42a.753.753 0 0 1-.75 0l-2.468-1.425L12 14.919l10.512 6.07Z\"},\"child\":[]}]})(props);\n};\nexport function SiFsecure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.928 2.946a35.921 35.921 0 0 0-22.228-.6A2.219 2.219 0 0 0 .08 5.094c.4 1.6.98 3.439 1.68 5.108.01.04.03.02.03-.02-.1-.78.5-1.77 1.679-2.13a27.546 27.546 0 0 1 17.381.23c.86.3 1.82-.17 2.099-1.059.7-2.248.98-3.778 1.05-4.157.01-.07-.05-.1-.07-.12zM6.658 7.893c-.86.18-2.05.46-2.94.76-1.778.61-1.698 2.778-.749 3.468.07-.4.5-.95.98-1.13 1.779-.7 3.688-1.119 5.617-1.289-.98-.4-1.94-.97-2.899-1.809m14.163 4.338a21.15 21.15 0 0 0-16.441-.65c-.85.32-1.38 1.35-.85 2.329a38.14 38.14 0 0 0 3.148 4.797c-.17-.58.13-1.659 1.27-2.009 3.148-.969 6.456-.56 8.655.33.62.25 1.5.1 1.99-.64a38.6 38.6 0 0 0 2.288-4.017c.03-.06 0-.11-.06-.14m-5.107 7.766a9.915 9.915 0 0 1-2.499-1.8c-.34-.34-.84-.829-1.37-1.409-1.199 0-2.368.12-3.617.52-1.16.36-1.27 1.7-.76 2.399.86 1.07 1.46 1.65 2.419 2.639a2.739 2.739 0 0 0 3.818.02 43.3 43.3 0 0 0 2.059-2.21c.05-.05.03-.14-.05-.16\"},\"child\":[]}]})(props);\n};\nexport function SiFsharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12 11.39.61v5.695L5.695 12l5.695 5.695v5.695L0 12zm7.322 0 4.068-4.068v8.136L7.322 12zM24 12 12.203.61v5.695L17.898 12l-5.695 5.695v5.695L24 12z\"},\"child\":[]}]})(props);\n};\nexport function SiFubo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.898 16.705H9.114v-.29c-.265.196-.656.416-1.32.416-2.158 0-2.996-1.167-2.996-3.43V9.809h1.783v3.592c-.006.616 0 1.778 1.284 1.778 1.241 0 1.248-1.1 1.248-1.765V9.809h1.783v6.896zM4.101 7.207c-1.961-.216-2.407.233-2.763.7-.316.413-.357.988-.357 1.401v.501H0v1.652h.999v5.244h1.783v-5.244h1.346V9.809h-1.31v-.465c0-.474.38-.533.571-.521l.392.018.32-1.634zM24 13.257c0-1.984-1.594-3.592-3.561-3.592-.835 0-1.603.29-2.21.775.384.44.677.965.85 1.543a1.707 1.707 0 0 1 1.337-.666c.975 0 1.765.86 1.765 1.922 0 1.061-.79 1.922-1.765 1.922-.969 0-1.757-.851-1.765-1.904 0-.913-.332-1.747-.878-2.381a3.447 3.447 0 0 0-2.617-1.211c-.651 0-1.261.183-1.783.502V7.259l-1.783.35v9.097h1.783v-.288c.522.319 1.132.432 1.783.432a3.42 3.42 0 0 0 2.176-.781 4.215 4.215 0 0 1-.876-1.537c-.321.429-.8.702-1.336.702-.965 0-1.747-.884-1.747-1.975s.782-1.975 1.747-1.975c.965 0 1.748.885 1.748 1.976 0 1.984 1.6 3.591 3.566 3.591C22.4 16.849 24 15.241 24 13.257\"},\"child\":[]}]})(props);\n};\nexport function SiFueler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c1.204 0 2.086 1.932 3.172 2.283 1.126.364 2.978-.67 3.915.009.946.685.527 2.762 1.216 3.704.682.933 2.8 1.175 3.165 2.295.353 1.081-1.207 2.51-1.207 3.709 0 1.198 1.56 2.628 1.207 3.709-.365 1.12-2.483 1.362-3.165 2.295-.69.942-.27 3.02-1.217 3.704-.937.68-2.789-.355-3.914.01C14.086 22.067 13.204 24 12 24c-1.204 0-2.086-1.932-3.172-2.283-1.126-.364-2.978.67-3.915-.009-.946-.685-.527-2.762-1.216-3.704-.682-.933-2.8-1.175-3.165-2.295-.353-1.081 1.207-2.51 1.207-3.709 0-1.198-1.56-2.628-1.207-3.709.365-1.12 2.483-1.362 3.166-2.295.688-.942.27-3.02 1.216-3.704.937-.68 2.789.355 3.914-.01C9.914 1.933 10.796 0 12 0Zm-.199 6.34-3.247 6.169c-.158.3.065.653.388.654h1.707c.234 0 .44.193.44.445v3.706c0 .459.603.618.825.218l3.39-6.11c.16-.289-.043-.662-.384-.663l-1.85-.002c-.243 0-.44-.2-.44-.445V6.549c0-.464-.613-.619-.829-.21Z\"},\"child\":[]}]})(props);\n};\nexport function SiFugacloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.0876 13.9765-1.1014-.6361v-2.5345l1.1013.6389 3.1738-1.8305v2.5275zm-14.1752.01h-.0067l-3.167-1.8341V9.625l3.1702 1.8284 1.0982-.6371v2.5345zm.0592-3.5472L1.7387 8.5686V5.9464l.971-.5568L11.9941 0l1.9539 1.1371 5.9567 3.4708.2013.1303 1.0303.5922.1657.095.9593.5686v2.5597l-3.1738 1.8349-1.1013-.6353V8.4341l-4.95-2.8903-1.0421-.6277-.971.5567-5.033 2.9495v1.4254l-1.0185.5883m0 4.4197 1.0184-.5805v1.2082l6.0633 3.5418.225-.1421.0473-.024 5.6725-3.3168-.0119-.4264v-.8918l1.1014.6313 3.1737-1.833v5.0193l-.9593.5568-1.196.6988-.2013.1185-5.9567 3.4826L11.994 24l-1.9302-1.1371-5.9685-3.4708-.2013-.1303-1.1842-.687-.9711-.5698v-4.6197l.0118-.3971 3.2211 1.8673\"},\"child\":[]}]})(props);\n};\nexport function SiFujifilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.288 10v3.129c0 .204.096.313.3.313h1.034v.352c0 .04-.028.068-.068.068h-1.672c-.518 0-.6-.284-.6-.544v-3.1c0-.148.056-.216.232-.216h.774m-1.916 0v3.656c0 .164-.068.204-.204.204h-.788v-3.655c0-.125.04-.205.216-.205h.776M0 10.532c0-.3 0-.53.49-.53h2.12v.366c0 .028-.012.054-.054.054H1.28c-.162 0-.244.083-.244.26v.979h1.496v.393c0 .04-.028.054-.056.054h-1.44v1.55c0 .15-.082.204-.246.204H0v-3.33m4.148-.531v2.95c0 .26.04.434.216.53.232.136.64.136.884 0 .164-.096.232-.244.232-.53v-2.76c0-.122.04-.19.218-.19h.774v2.853c0 .667-.42.94-.788 1.035a3.592 3.592 0 0 1-1.7 0c-.558-.164-.816-.49-.816-1.035v-2.663c0-.122.04-.204.19-.204h.79M22.872 10c-.19 0-.314.094-.354.272l-.626 2.663h-.014L21.212 10h-.884c-.176 0-.23.08-.23.23v3.644h.38c.054 0 .08-.026.08-.094v-3.06h.056l.802 3.14h.53c.204 0 .272-.08.328-.272l.72-2.868h.054v3.14h.708c.176 0 .244-.069.244-.23V10h-1.128m-11.708 2.093h-.992v1.767h.788c.136 0 .204-.04.204-.205v-1.562m-.054-.747c.04-.028.054-.056.054-.11V10h-.776c-.176 0-.216.08-.216.204v1.875l.938-.733m-3.4 2.216c.436-.055.572-.314.572-.695v-2.663c0-.164.08-.204.19-.204h.788v2.513c0 .612-.136.927-.49 1.198-.19.136-.516.3-1.25.3-.408 0-.6-.028-.626-.028-.04-.014-.054-.028-.054-.056v-.326c.204-.014.584 0 .87-.04M12.674 10c-.49 0-.49.244-.49.53v.992c0 .028-.014.028-.014.04l-.68.532h.694v1.766h.788c.164 0 .244-.054.244-.204v-1.562h1.442c.028 0 .054-.014.054-.056v-.394h-1.496v-.98c0-.176.082-.256.26-.256h1.278c.04 0 .054-.028.054-.056V10h-2.134\"},\"child\":[]}]})(props);\n};\nexport function SiFujitsu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.56 3C14.15 3 12.04 4.24 10.68 5.97L10.68 9.76C12.5 4.71 16.56 5.08 16.56 5.08C19.5 5.08 21.84 7.38 21.84 10.2C21.84 13.04 19.5 15.33 16.56 15.33A5.32 5.32 0 0 1 12.84 13.83L10.28 11.03A6.06 6.06 0 0 0 6.03 9.32C2.7 9.32 0 11.93 0 15.16C0 18.4 2.7 21 6.03 21C7.9 21 9.58 20.19 10.68 18.89L10.68 15.86C8.88 19.29 6.03 18.92 6.03 18.92C3.9 18.92 2.17 17.24 2.17 15.16C2.17 13.1 3.9 11.42 6.03 11.42C7.09 11.42 8.05 11.84 8.75 12.5L11.31 15.31A7.5 7.5 0 0 0 16.56 17.43C20.67 17.43 24 14.19 24 10.2C24 6.21 20.67 3 16.56 3Z\"},\"child\":[]}]})(props);\n};\nexport function SiFunimation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 12 12A12.001 12.001 0 0 0 12 0ZM7.428 16.06h9.188s-.449 3.278-4.601 3.278c-4.15 0-4.587-3.278-4.587-3.278z\"},\"child\":[]}]})(props);\n};\nexport function SiFuraffinity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.7 22.086c-.43-.11-1.068-.505-1.193-.74-.113-.21-.02-1.356.116-1.44.113-.07.113-.265 0-.444-.069-.109-.235-.081-.801.132-.89.335-1.195.336-1.839.01C1.348 19.282.7 18.557.273 17.69c-.45-.914-.388-1.097.518-1.538.392-.19.932-.485 1.2-.655l.485-.31-.049-.724-.05-.725.492-.525.492-.526-.185-.285-.438-.671c-.212-.323-.234-.424-.132-.615.158-.295.095-.347-.256-.213-.157.06-.33.108-.384.108-.133 0-.124-.387.016-.648.158-.296.036-.373-.221-.14-.157.141-.245.162-.331.076-.299-.299.627-2.522 1.193-2.867l.351-.214h-.447c-.247 0-.448-.04-.448-.09 0-.302 1.386-.99 2.37-1.175l.678-.128 1.169-1.878c.643-1.033 1.235-1.932 1.316-2 .313-.26.532-.028 1.471 1.548.524.879.982 1.628 1.018 1.664.037.037.371-.164.743-.446.83-.627 3.339-2.091 4.391-2.562.588-.262.817-.32.949-.237.142.09.206.518.355 2.364.1 1.24.18 2.61.177 3.045-.007 1.202.004 1.37.09 1.367.043 0 .265-.262.493-.58.702-.981.523-.945 2.491-.508l1.731.384 1.197 1.007c1.127.949 1.378 1.217 1.253 1.342-.03.029-.758.063-1.62.076-1.845.028-2.937.289-3.567.852-.328.294-.366.386-.377.907-.007.319-.009.612-.004.65.005.04.445-.114.977-.342.532-.227 1.042-.413 1.135-.413.092 0 .582.416 1.089.926l.921.925-.55 1.06-.552 1.06.5.57c.274.313.485.622.47.686-.044.179-1.023.99-1.195.99-.083 0-.151-.036-.152-.079 0-.043-.09-.228-.202-.41l-.201-.33-.718.199c-.956.265-1.105.253-1.456-.114-.358-.373-.478-.33-.478.173 0 .512-.368 1.125-.83 1.381-.409.227-2.396.944-3.438 1.24a7.784 7.784 0 0 0-1.13.43c-1.05.528-1.072.256-.089-1.108.608-.842.946-1.18 2.002-2.007.698-.547 1.29-1.068 1.316-1.16.025-.09.153-.944.284-1.896l.238-1.732-.52-.983c-.518-.978-.52-.984-.34-1.298.098-.173.16-.315.137-.315-.038 0-.784.414-.887.492-.023.018.085.132.24.255.323.253.724.99.904 1.659.137.507.04 2.034-.113 1.792-.057-.09-.09.025-.09.314-.003.465-.376 1.495-.542 1.495-.051 0-.093-.095-.093-.21 0-.117-.048-.212-.106-.212-.065 0-.081.16-.042.41l.066.41-.685-.015c-.502-.01-.738.032-.881.159-.287.253-2.584 1.447-3.396 1.766-1.069.419-1.14.494-1.498 1.602-.176.545-.389 1.096-.473 1.226-.34.521-1.547.87-2.326.67zm1.11-.594c.18-.204.327-.309.327-.231a.447.447 0 0 1-.125.265c-.068.069-.092.158-.051.198.1.1.344-.254.502-.734.153-.463.299-.61.226-.228-.027.143-.025.26.005.26.148 0 .537-.872.724-1.622.28-1.122.361-1.259 1.283-2.13.63-.596.816-.842.91-1.212.192-.748.233-.814.32-.516.044.145.055.382.025.527-.08.403.11.163.607-.763.543-1.011.668-1.105.617-.467l-.038.484.351-.338c.465-.447 1.386-1.672 1.387-1.845 0-.075-.13-.257-.289-.405-.276-.255-.231-.269.25-.075.139.056.156.023.091-.184-.424-1.372-.948-2.169-2.166-3.296-1-.925-1.51-1.273-2.411-1.645l-.727-.299-.658.386c-.614.36-3.89 3.406-3.89 3.617 0 .558 2.683-1.523 3.953-3.064.326-.397.607-.64.74-.64.392-.002 1.555.78 2.428 1.632 1.001.978 1.359 1.584 1.28 2.171-.06.442-.456 1.3-.691 1.495-.13.107-.146.075-.103-.215.027-.189.034-.343.014-.343-.02 0-.181.155-.36.343-.285.303-.317.315-.271.105.063-.289.046-.29-.729-.022a25.67 25.67 0 0 1-1.628.47c-1.125.287-1.701.505-2.13.81-.346.246-.372.402-.065.402.124 0 .388.172.586.383l.362.383.165-.236c.155-.221.728-.53.983-.53.063 0-.006.158-.153.35-.24.315-.267.443-.258 1.239.009.824-.03.993-.543 2.363-.303.811-.665 1.628-.804 1.815-.339.455-1.1.887-1.678.952-.444.05-.462.064-.303.24.284.314.759.464 1.05.331.209-.095.243-.088.194.038-.117.306.364.154.69-.219zm-1.664-.97a4.035 4.035 0 0 0-.251-.386c-.144-.192-.154-.188-.225.095-.08.317.047.47.39.473.147.001.166-.038.086-.183zm1.443-.68c.194-.194.152-.355-.127-.482-.326-.15-.387-.078-.255.3.118.338.191.372.382.182zm-3.1-.35c.21-.087.381-.178.381-.201 0-.175-1.24-.886-2.034-1.165a38.388 38.388 0 0 1-1.158-.421c-.306-.131.179.609.8 1.22.714.703 1.294.867 2.01.567zm-1.279-.127c-.158-.056-.177-.345-.023-.345.11 0 .269.295.195.359-.022.018-.1.012-.172-.014zm-.734-.688c-.2-.26-.242-.381-.149-.439.128-.08.664.352.588.474-.085.138-.32.12-.44-.035zm3.975.296c.813-.147.928-.198 1.245-.557.563-.638.986-1.455.948-1.834-.052-.525-.448-.75-1.425-.805-.451-.026-1.02.006-1.262.072-.582.157-1.206.863-1.45 1.64l-.184.583.276.47c.296.506.547.706.798.637.087-.024.561-.116 1.054-.206zm.1-.96c-.11-.134-.106-.192.03-.328.21-.21.397-.099.397.234 0 .293-.22.342-.426.094zm-.953-.638c-.27-.326.26-.736.594-.459.224.186.19.288-.152.465-.273.141-.32.14-.442-.006zm1.226-.526c-.161-.161-.162-.193-.013-.343.183-.182.338-.09.395.237.047.268-.162.326-.382.106zm4.412 1.437c.425-.182.99-.798.855-.932-.1-.1-1.189.63-1.3.873-.145.319-.157.317.445.06zm-8.732-.641c-.46-.23-.879-.458-.929-.508-.05-.05.19-.122.546-.163.7-.079 1.748-.36 1.662-.447-.03-.03-.426.017-.88.105-1.457.28-1.653.294-1.5.109.074-.089.363-.277.642-.418.544-.276.68-.42.236-.251-.602.229-1.204.657-1.204.857 0 .136.77.61 1.44.885.932.383.926.298-.013-.169zm10.603-.325c.972-.547.98-.556.391-.48-.636.084-1.04.274-1.04.49a.49.49 0 0 1-.127.299c-.218.218-.023.14.776-.309zm8.076-1.603c.037-.565-.019-.588-.69-.283-.496.225-.491.213-.34.761l.11.39.444-.189c.422-.179.446-.212.476-.679zm-5.436-.145c.046-.392-.033-.972-.179-1.32-.045-.107-.031-.185.032-.185.117 0 .546 1.053.546 1.342 0 .14.026.149.13.044.247-.246.077-1.808-.293-2.703-.169-.407.257.05.481.515l.208.433-.035-.527c-.062-.934-.38-1.46-1.203-1.993-1.042-.673-1.089-.759-.417-.753.563.004 1.724-.433 1.985-.747.099-.12.085-.133-.077-.071-.12.046-.042-.085.196-.33.518-.533.535-.822.026-.433-.445.338-.466.277-.08-.229.267-.349.293-.47.327-1.494.036-1.091.033-1.11-.165-.932-.123.111-.24.145-.3.086-.23-.227-.43.18-.615 1.258-.105.609-.253 1.258-.33 1.442-.143.347-.665.751-1.323 1.025l-.38.157-.58-.933-.582-.932.32-.064c.297-.06.306-.075.128-.205-.18-.131-.171-.146.113-.209.309-.068.85-.456.761-.545-.026-.026-.2-.005-.384.048-.39.112-.44-.006-.098-.234.13-.087.397-.453.593-.813.327-.603.338-.65.132-.585-.178.056-.246.014-.33-.206a1.805 1.805 0 0 1-.105-.53c0-.182-.045-.237-.157-.194-.222.085-.298-.192-.175-.637.057-.208.082-.378.055-.378-.118 0-1.311.811-1.962 1.334-.79.634-.854.828-.55 1.67.083.231.152.428.153.438 0 .01-.07.006-.158-.007-.088-.013-.337-.196-.553-.407-.573-.557-1.494-.93-2.448-.992-.83-.053-.883.098-.083.233.863.146.47.26-.896.26-1.059 0-1.615.052-2.222.207-.99.253-1.374.438-.732.353.554-.074 1.637.055 1.556.185-.033.054-.2.098-.373.098-.573 0-1.49.4-1.95.853-.402.394-1.07 1.528-.963 1.634.025.025.254-.07.509-.213.66-.366 1.57-.708 1.57-.59 0 .055-.102.154-.226.22-.53.285-1.46 1.31-1.46 1.611 0 .027.25-.018.553-.099.305-.08.673-.147.82-.148.248-.001.264.029.232.447l-.034.447.237-.316c.395-.528 2.1-2.244 2.853-2.872.39-.325.697-.604.682-.619-.015-.015-.204.013-.42.061-.609.138-.461-.06.214-.285l.606-.202-.395-.075c-.676-.127-.433-.245.304-.146 1.468.197 2.966 1.002 4.336 2.33 1.051 1.02 1.635 1.917 2.014 3.097l.311.972-.5.766c-.659 1.007-.906 1.438-.848 1.48.051.037 1.375.473 1.485.489.037.005.088-.167.113-.382zm-9.664-.727l1.053-1.013-.422.068-.421.068.263-.211c.312-.251.258-.269-.224-.072-.195.08-.474.182-.619.225-.262.08-.262.079-.063-.145.438-.49.006-.183-.76.54-.446.42-1 .92-1.232 1.108-.366.298-.387.336-.158.289.145-.03.5-.012.79.039.29.05.575.098.634.105.058.007.58-.444 1.159-1zm-1.747-.388c.327-.297.423-.452.375-.606-.068-.212-.262-.287-.262-.1a.106.106 0 0 1-.106.105c-.058 0-.105-.118-.105-.263 0-.34-.14-.335-.414.014-.276.351-.28.5-.008.355.249-.134.273-.017.056.27-.167.221-.22.718-.068.66.05-.019.29-.215.532-.435zm15.769-.113c.443-.196.754-.388.69-.427-.135-.084-1.518.504-1.573.669-.055.163-.008.15.883-.242zm-15.231-1.64c-.06-.112-.11-.35-.11-.527 0-.344-.173-.437-.283-.151-.07.183.254.882.41.882.05 0 .043-.092-.017-.204zm.38-.272c.063-.164-.127-.473-.291-.473-.108 0-.126.459-.023.562.117.117.25.08.314-.089zm4.212-.492l.347-.262c.023-.018-.078-.126-.225-.242-.319-.25-.641-.998-.552-1.28.087-.272-.09-.25-.445.056-.252.216-.295.33-.289.768.009.626.309 1.19.634 1.19.124 0 .363-.104.53-.23zm-4.962-1.33c-.078-.078-.396.107-.447.26-.02.058.072.155.204.214.211.095.244.077.275-.15.018-.142.004-.288-.032-.324zm5.232.016c.106-.096.192-.231.192-.3 0-.208-.378-.484-.564-.413-.203.078-.234.574-.047.76.163.164.189.161.419-.047zm5.653-1.38c.377-.361.427-.476.583-1.344.094-.521.244-1.517.334-2.213a87.1 87.1 0 0 1 .262-1.89c.055-.345.082-.644.06-.666-.021-.021-.261.616-.533 1.417-.272.8-.52 1.527-.552 1.614-.033.089.062.047.22-.098.152-.14.277-.216.277-.167 0 .271-.39 1.314-.599 1.601-.28.385-.317.542-.083.347.433-.36.226.322-.27.887-.304.345-.318.554-.017.254.238-.239.14.15-.103.41-.378.402-.023.274.421-.152zm-4.133-2.467c-.191-.273-.227-.183-.055.138.063.117.139.188.17.158.03-.03-.022-.163-.115-.296zm-.64-1.149c.16-.31.156-.343-.125-.817-.208-.352-.303-.44-.33-.31-.047.23-.22.235-.532.016-.24-.167-.24-.166-.172.2.038.201.025.394-.028.427-.054.033-.339-.103-.634-.302l-.537-.362-.069.314c-.038.173-.11.314-.16.314-.137 0-.419-.442-.419-.656 0-.331-.148-.201-.599.525l-.44.71.322.034c.177.02.373-.016.435-.079.187-.186 1.744-.127 2.337.089.729.265.763.261.952-.103zm1.1 14.733l-.47-.237v-1.264l.79-.394c.435-.216.824-.394.865-.395.106-.002.61.881.61 1.07 0 .159-1.114 1.457-1.25 1.457-.042 0-.287-.106-.545-.237zm-1.154-.657c-.196-.202-.335-.386-.31-.41.025-.024.223-.117.44-.207l.395-.164v.574c0 .316-.038.574-.084.574-.047 0-.245-.165-.44-.367zm2.876-1.33c-.278-.42-.282-.448-.097-.558.107-.063.51-.316.894-.561.691-.441.962-.54.962-.354 0 .116-1.2 1.748-1.356 1.845-.061.038-.243-.13-.403-.373z\"},\"child\":[]}]})(props);\n};\nexport function SiFurrynetwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.91 0C12.79 0 9.69 0 6.6.03c0 .05-.06.05-.09.08a10.5 10.5 0 0 0-3.66 2.57c-.84.87-1.52 1.9-2.06 3-.2.38-.38.79-.55 1.2-.02.08-.05.2-.13.25v6.22c.05.08.05.2.08.3a8.66 8.66 0 0 0 3.42 4.83c.03.03.05.09.11.06-.03-.03-.03-.06-.06-.08-.24-.36-.46-.69-.67-1.04a9.1 9.1 0 0 1-1.28-5.57 10.09 10.09 0 0 1 1.71-4.53 23.07 23.07 0 0 1 3.64-4.18A13.05 13.05 0 0 1 10.32.98 8.82 8.82 0 0 1 14.74.2c.7.06 1.39.17 2.07.27L17 .5c.08.03.13.03.21.03-.38-.16-.76-.33-1.14-.44-.05-.02-.1-.02-.16-.08zm-1.66.66c-.43.02-.84.05-1.27.13-.74.14-1.44.36-2.15.58a7.47 7.47 0 0 0-1.44.62c-.02 0-.08 0-.08.06h.05a28.12 28.12 0 0 1 3.05-.33c.51-.03 1.06 0 1.57.08.76.11 1.47.39 2.12.77a10.8 10.8 0 0 1 4.4 4.7 15.14 15.14 0 0 1 1.38 5.43c.06.65.06 1.34.03 2.02l-.08 1.14c-.03.33-.08.66-.14.99a6.1 6.1 0 0 1-.27 1.17 11.7 11.7 0 0 1-1.55 2.73c-.49.66-1.05 1.26-1.6 1.86-.08.08-.13.13-.19.22.06 0 .06-.03.08-.03a16.74 16.74 0 0 0 2.31-1.61 10.87 10.87 0 0 0 3.2-4.45l.17-.41h.03v5.87c0 .02 0-9.17.02-15 0 .02 0 .05-.02.07l-.03-.09a10.75 10.75 0 0 0-1.52-2.73 9.7 9.7 0 0 0-3.12-2.64A9.76 9.76 0 0 0 14.25.66zm9.63 6.54.01-.02zm-13-3.33c-.4-.04-.8.09-1.19.42a2.33 2.33 0 0 0-.62.9c-.33.8-.38 1.58-.22 2.4.11.63.4 1.18.92 1.58.52.44 1.12.5 1.66.2.33-.2.57-.44.76-.77.33-.57.46-1.2.46-1.85 0-.3-.02-.58-.08-.88a2.8 2.8 0 0 0-.62-1.4 1.69 1.69 0 0 0-1.08-.6zM16 5.15a2.38 2.38 0 0 0-1.72.83c-.3.27-.46.63-.65.98a3.04 3.04 0 0 0-.38 1.53c0 .38.05.74.21 1.1.28.65.8 1 1.44 1 .47 0 .85-.16 1.2-.43a3.75 3.75 0 0 0 1.5-2.57c.05-.46 0-.93-.17-1.4-.16-.4-.4-.75-.82-.92a1.61 1.61 0 0 0-.6-.12zM6.38 7.56c-.44.03-.84.2-1.11.6-.36.5-.47 1.07-.5 1.64-.02.6.12 1.15.39 1.67.22.43.51.82.92 1.1.52.34 1.17.34 1.63.02.27-.2.46-.47.6-.77.27-.63.32-1.3.16-1.99a3.3 3.3 0 0 0-1.06-1.86c-.3-.24-.62-.4-1.03-.4zm11.86 2.64a1.84 1.84 0 0 0-.9.2 3.5 3.5 0 0 0-1.81 1.97 2.44 2.44 0 0 0-.11 1.58c.14.5.4.85.9.99.19.05.4.08.6.08.32 0 .54-.03.8-.17.53-.24.93-.6 1.28-1.03a2.9 2.9 0 0 0 .63-2.46 1.3 1.3 0 0 0-1.09-1.12 1.87 1.87 0 0 0-.3-.04zm-7.11 1.65c-.08 0-.22 0-.35.03a3.58 3.58 0 0 0-1.5.4c-.6.34-1.1.77-1.57 1.26a10.07 10.07 0 0 0-1.39 1.83c-.21.38-.35.8-.32 1.23.03.25.03.47.14.68.3.39.7.66 1.19.77.46.08.92.03 1.38-.03.52-.05 1-.1 1.5-.08.78.05 1.5.3 2.12.79.24.2.46.41.73.6.51.36 1.06.52 1.68.38.52-.1.87-.43.98-.95.1-.44.08-.85.02-1.29a9.46 9.46 0 0 0-.37-1.5 9.95 9.95 0 0 0-1-2.26c-.3-.5-.66-.93-1.15-1.26a3.68 3.68 0 0 0-2.09-.6zM.11 14.64v2.13c.1.13.16.3.22.46a12.8 12.8 0 0 0 2.41 4.18 9.6 9.6 0 0 0 3.83 2.56c.03 0 .05.03.08.03h8.01c.03-.03.03-.03.05-.03a8.68 8.68 0 0 0 1.99-.9 11.4 11.4 0 0 0 4.26-4.8c.43-1.01.65-2.08.7-3.2a.4.4 0 0 0 0-.24c-.02.02-.05.05-.05.08l-.22.7a8.29 8.29 0 0 1-1.87 3.2 8.08 8.08 0 0 1-2.85 1.91c-.95.39-1.95.55-2.99.6-.76.03-1.49 0-2.22-.05a24.34 24.34 0 0 1-3.1-.44 15.48 15.48 0 0 1-3.75-1.36 10.15 10.15 0 0 1-3.3-2.76 7.5 7.5 0 0 1-1.2-2.07z\"},\"child\":[]}]})(props);\n};\nexport function SiFusionauth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a1.667 1.667 0 0 0-1.666 1.666A1.667 1.667 0 0 0 12 3.334a1.667 1.667 0 0 0 1.666-1.668A1.667 1.667 0 0 0 12 0ZM9.506 1.145A11.572 11.572 0 0 0 .442 12.317a.716.716 0 0 0 1.075.618.702.702 0 0 0 .358-.6 10.136 10.136 0 0 1 5.06-8.666c.843-.486 1.75-.848 2.696-1.074a2.55 2.55 0 0 1-.125-1.452Zm8.015 1.26a.712.712 0 0 0-.695.713.704.704 0 0 0 .34.61 10.133 10.133 0 0 1 4.545 11.587c.314.046.618.15.894.309.148.084.29.183.42.293a11.573 11.573 0 0 0-5.15-13.43.715.715 0 0 0-.354-.082Zm-5.519 3.791a6.247 6.247 0 1 0 .002 12.494 6.247 6.247 0 0 0-.002-12.494Zm0 1.43a4.819 4.819 0 0 1 3.41 8.222 4.817 4.817 0 1 1-3.41-8.222Zm-.01 2.295c-1.412.014-1.896 1.887-.668 2.584l-.435 2.207a.237.237 0 0 0 .234.281h1.772a.236.236 0 0 0 .234-.281l-.438-2.207c.43-.247.694-.706.692-1.202a1.38 1.38 0 0 0-1.39-1.382zm-9.324 6.242a1.667 1.667 0 0 0-1.666 1.666 1.667 1.667 0 0 0 1.666 1.668 1.667 1.667 0 0 0 1.666-1.668 1.667 1.667 0 0 0-1.666-1.666zm18.664 0a1.667 1.667 0 0 0-1.666 1.666 1.667 1.667 0 0 0 1.666 1.668 1.667 1.667 0 0 0 1.666-1.668 1.667 1.667 0 0 0-1.666-1.666zM4.655 19.427c-.195.244-.432.45-.702.608a2.584 2.584 0 0 1-.468.207 11.576 11.576 0 0 0 14.208 2.273.713.713 0 0 0 0-1.238.704.704 0 0 0-.703-.012 10.134 10.134 0 0 1-10.052-.05 10.17 10.17 0 0 1-2.283-1.788z\"},\"child\":[]}]})(props);\n};\nexport function SiFuturelearn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.081.61v7.566h-7.223v6.661H7.566v6.634H0v1.92h9.471v-6.649h7.306v-6.66H24V.61Z\"},\"child\":[]}]})(props);\n};\nexport function SiG2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24Zm.122 5.143c.45 0 .9.044 1.342.132l-1.342 2.806C9.962 8.08 8.203 9.84 8.203 12s1.76 3.92 3.92 3.92c.937 0 1.844-.338 2.553-.951l1.483 2.572A6.856 6.856 0 0 1 5.266 12a6.856 6.856 0 0 1 6.856-6.856Zm3.498.49a1.262 1.262 0 0 1 .026 0c.427 0 .792.113 1.101.34.31.229.466.546.466.946 0 .639-.36 1.03-1.035 1.376l-.377.191c-.403.204-.602.385-.657.706h2.05v.85h-3.101v-.144c0-.526.103-.96.314-1.306.211-.345.576-.65 1.102-.917l.242-.117c.427-.216.538-.401.538-.625 0-.266-.228-.458-.6-.458-.44 0-.773.228-1.004.694l-.592-.595c.13-.279.338-.502.619-.675a1.7 1.7 0 0 1 .908-.266Zm-2.094 5.388h3.394l1.697 2.937-1.697 2.94-1.697-2.94H11.83l1.696-2.937Z\"},\"child\":[]}]})(props);\n};\nexport function SiG2A (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 15.419s-1.8844-3.5895-3.1571-6.0153a1.6802 1.6802 0 0 0-.4674-.5659 1.3021 1.3021 0 0 0-.7927-.2572 1.239 1.239 0 0 0-.7715.2572 1.6802 1.6802 0 0 0-.4674.5659c-1.2726 2.4258-3.1783 6.0153-3.1783 6.0153l1.7391.0004 2.6781-5.1339 1.2586 2.4128h-1.9378l.6832 1.3053h1.9356l.7386 1.4154H24zM3.4872 13.9588c-1.071 0-1.9392-.8682-1.9392-1.9392s.8682-1.9392 1.9392-1.9392l3.9342-.0031V8.6212H3.3946C1.5174 8.6236-.0024 10.1473 0 12.0244c.0024 1.8738 1.5208 3.3922 3.3946 3.3946h4.0268v-4.1277H3.053v1.4571l2.8447-.0001v1.2141l-2.4105-.0036zm7.2305-1.2109 3.0641-.0002c1.1395 0 2.0633-.9238 2.0633-2.0633s-.9238-2.0633-2.0633-2.0633h-3.6463c-.804-.0002-1.4559.6515-1.4561 1.4555v.0006l4.9963-.0001a.6157.6157 0 0 1 .6201.591.6064.6064 0 0 1-.5894.6229l-.0159.0002h-3.185c-1.0725.0004-1.9417.8701-1.9413 1.9426v2.185h5.4523l.7727-1.4566h-4.7014v-.5841a.63.63 0 0 1 .6299-.6302z\"},\"child\":[]}]})(props);\n};\nexport function SiG2G (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v4.357h19.643v6.43H24V0H0zm0 6.44V24h24V12.805H6.648v4.36h12.995v2.478H4.357v-8.846h12.995V6.439H0z\"},\"child\":[]}]})(props);\n};\nexport function SiGalaxus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.181c3.604 0 6.53 3.111 6.53 6.943 0 3.831-2.926 6.942-6.53 6.942s-6.53-3.111-6.53-6.942c0-3.832 2.926-6.943 6.53-6.943m2.506-3.088c-.101.258-.209.531-.209.733 0 .245.072.458.144.673.043.127.086.254.114.389.024.11-.014.174-.078.283-.04.069-.092.157-.145.288a.738.738 0 0 0-.078-.019 7.36 7.36 0 0 0-4.515.002l-.023.005-.05.013a2.06 2.06 0 0 0-.146-.289c-.062-.107-.099-.169-.076-.277.03-.13.069-.258.114-.384.072-.216.145-.431.145-.676 0-.205-.108-.478-.21-.736-.091-.232-.178-.451-.178-.599 0-.192.384-.462.783-.744.253-.179.513-.362.685-.532.158-.156.315-.357.465-.55.271-.348.524-.673.739-.673h.039c.213.012.463.331.729.672.15.191.305.39.462.545.171.169.43.351.682.53.4.282.785.554.785.745 0 .148-.087.368-.178.601M5.054 9.69a3.45 3.45 0 0 0-1.467-.273c-1.659.036-1.694-3.348-1.384-3.553.257-.169 3.032-.061 4.656 1.293A8.079 8.079 0 0 0 5.054 9.69m1.361 10.137c-.163 1.58-3.578 1.29-3.748.971-.16-.3.184-3.356 2.311-4.417a8.111 8.111 0 0 0 1.661 2.494c-.107.246-.183.557-.224.952m12.607-3.445c2.135 1.068 2.542 4.185 2.382 4.486-.17.318-3.658.538-3.82-1.04a3.189 3.189 0 0 0-.224-.952 8.102 8.102 0 0 0 1.662-2.494m-6.96 4.78c.365 0 .73-.028 1.091-.082-.117 1.287.312 2.387 1.562 2.599a.277.277 0 0 0 .091-.002.323.323 0 0 1 .082-.004c-.53.251-1.112.397-1.728.293-1.43-.243-2.425-1.496-2.421-2.926.429.079.872.122 1.323.122m5.08-14.006c1.623-1.353 4.398-1.461 4.654-1.292.311.205.276 3.59-1.383 3.553a3.457 3.457 0 0 0-1.468.273 8.105 8.105 0 0 0-1.803-2.534\"},\"child\":[]}]})(props);\n};\nexport function SiGameandwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.595 1.912c.59 0 .985.279 1.21.74.078.164.134.338.164.518l.021.147.01.148v17.223c0 .59-.254.987-.677 1.21a1.652 1.652 0 0 1-.573.179l-.15.011H1.558c-.647 0-1.085-.245-1.337-.657a1.526 1.526 0 0 1-.208-.582L0 20.694V3.474C0 2.82.277 2.38.737 2.132a1.82 1.82 0 0 1 .52-.184l.146-.024.146-.011Zm0 .256H1.528a1.562 1.562 0 0 0-.668.186c-.344.188-.559.494-.598.959l-.007.16v17.218c.01.215.073.424.185.607.184.303.491.495.958.53l.162.006h21.036a1.39 1.39 0 0 0 .607-.16c.304-.16.496-.425.535-.829l.007-.158V3.467a1.705 1.705 0 0 0-.028-.252 1.682 1.682 0 0 0-.142-.451c-.184-.378-.495-.596-.98-.596zm-6.099 12.94c.97 0 1.822.531 2.296 1.303l.09.157h-1.03a1.835 1.835 0 0 0-1.356-.61 1.844 1.844 0 1 0 1.26 3.189l.11-.113h1.025a2.694 2.694 0 1 1-2.395-3.927zm-13.76.175v3.545l2.35-3.538v-.007h.879v3.545l2.353-3.542h1.055L5.965 20.42h-.88v-3.54l-2.348 3.54h-.88v-5.137zm8.072.001v5.135h-.88V19.32H8.303l-.728 1.096H6.52l3.408-5.132zm3.211 0v.878h-.994v4.256h-.88v-4.256l-.994.001v-.88zm5.968 0v2.067h1.588v-2.068h.88v5.135h-.88V18.23h-1.588v2.188h-.878v-5.135Zm-10.06 1.59-1.041 1.568h1.042Zm1.666-7.391c.331-.002.65.128.886.36.201.202.312.468.312.75 0 .471-.219.773-.489 1.01l-.092.078.676.623.454-1.023h.862l-.705 1.587 1.216 1.123-.536.58-1.022-.946c-.317.624-.73 1.027-1.562 1.027-.441 0-.84-.158-1.127-.444a1.555 1.555 0 0 1-.44-1.11c0-.762.426-1.13.916-1.477-.264-.232-.53-.545-.53-1.028 0-.695.6-1.11 1.18-1.11zm.955 3.581-.99-.914-.262.188c-.34.25-.481.422-.481.76a.76.76 0 0 0 .208.553c.153.145.359.221.57.212.438 0 .636-.133.878-.63zm-.955-2.792a.45.45 0 0 0-.243.068l-.067.052a.27.27 0 0 0-.083.2c0 .212.155.354.408.557.29-.214.396-.335.396-.556a.26.26 0 0 0-.082-.192.484.484 0 0 0-.33-.13zM6.97 5.07h-.933a1.88 1.88 0 1 0 .168 1.878h-1.66v-.855h2.65l.002.06A2.696 2.696 0 0 1 4.5 8.85 2.698 2.698 0 1 1 6.97 5.07Zm15.11-1.561v.879h-1.79v1.298h1.79v.879h-1.79v1.197h1.79v.879h-1.79l-.88.004V3.509zm-11.142 0v5.135h-.88v-1.1H8.433l-.728 1.098H6.65l3.408-5.133Zm7.761-.001v5.135h-.879V5.098l-2.35 3.539v.006h-.879V5.098L12.238 8.64h-1.055l3.408-5.132h.88v3.538l2.35-3.54zm-8.641 1.59L9.017 6.666h1.04z\"},\"child\":[]}]})(props);\n};\nexport function SiGamebanana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.249 0v3h1.5V1.5h1.505V3h-1.505V7.5h1.5V4.5h3.002v-1.5h-1.505V0Zm6.002 4.498v1.5h1.5V4.501Zm1.5 1.5v10.503h1.5V5.998Zm0 10.503h-1.5V19.5h1.5zm-1.5 2.998h-1.505v1.5h1.5zm-1.5 1.5h-3.002v1.5h3.001zm-3.002 1.5H6.75V24h9zm-8.999 0V21h-3v1.5zm-3-1.5v-1.497H2.248v1.5zm-1.501-1.497v-2.997H9.75v-1.5H.748v4.497zm7.502-4.497h2.997v-1.5H9.751Zm2.997-1.5h1.5v-1.501h-1.5zm1.5-1.501h1.501V7.506h-1.5z\"},\"child\":[]}]})(props);\n};\nexport function SiGamedeveloper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.955 11.956a.84.84 0 0 0-.837-.796H17.37V1.9c0-.019 0-.037-.002-.055a.84.84 0 0 0-.494-.806A11.89 11.89 0 0 0 12 0a11.89 11.89 0 0 0-8.454 3.515A11.983 11.983 0 0 0 .043 12c0 1.62.316 3.192.94 4.672a11.928 11.928 0 0 0 2.563 3.813 11.96 11.96 0 0 0 3.799 2.572C8.82 23.683 10.386 24 12 24c1.614 0 3.18-.317 4.655-.943a11.905 11.905 0 0 0 3.799-2.572A11.983 11.983 0 0 0 23.957 12c0-.014 0-.03-.002-.044Zm-4.685 7.343a10.24 10.24 0 0 1-7.272 3.022 10.228 10.228 0 0 1-7.273-3.022A10.305 10.305 0 0 1 1.714 12a10.312 10.312 0 0 1 6.281-9.511 10.212 10.212 0 0 1 4.003-.809 10.197 10.197 0 0 1 3.694.688v8.792h-3.765a.84.84 0 0 0 0 1.68h3.729a3.78 3.78 0 0 1-1.205 2.012 3.75 3.75 0 0 1-2.458.92A3.77 3.77 0 0 1 8.235 12a3.768 3.768 0 0 1 3.758-3.772.84.84 0 0 0 0-1.68 5.385 5.385 0 0 0-3.841 1.597A5.429 5.429 0 0 0 6.559 12c0 1.457.564 2.825 1.591 3.855a5.384 5.384 0 0 0 3.841 1.597 5.431 5.431 0 0 0 3.555-1.329 5.46 5.46 0 0 0 1.813-3.281h4.89a10.292 10.292 0 0 1-2.979 6.457Z\"},\"child\":[]}]})(props);\n};\nexport function SiGamejolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.353 0v2.824H4.94v2.823H3.53v2.824H2.118v2.823H.706v2.824h8.47v2.823H7.765v2.824H6.353v2.823h1.412v-1.412h1.411v-1.411h1.412v-1.412H12V16.94h1.412v-1.41h1.412v-1.411h1.411v-1.412h1.412v-1.412h1.412V9.882h1.412V8.471h1.411V7.059h-4.235V5.647h1.412V4.235h1.412V2.824h1.411V1.412h1.412V0zm0 22.588H4.94V24h1.412zM7.765 2.824h9.882v1.411h-1.412v1.412h-1.411V7.06h-1.412v1.41H12v1.411h1.412v1.412H12V9.882h-1.412v1.412H9.176V9.882H7.765v1.412H6.353V9.882H4.94V8.471h1.412V5.647h1.412zM6.353 8.47v1.411h1.412v-1.41zm2.823 1.411h1.412v-1.41H9.176zm5.648 0h1.411v1.412h-1.411Z\"},\"child\":[]}]})(props);\n};\nexport function SiGameloft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.841 18.938c.494.86 1.247 1.262 2.192 1.368 3.394.387 13.519.176 13.534.176 2.402 0 4.33-1.1 4.852-3.372.133-.579.238-2.54.117-4.619-.126-2.16-1.11-3.587-4.048-3.787-3.901-.264-9.42-.14-11.651.09-1.193.124-1.887.939-1.872 2.05.036 2.647.065 3.054.093 3.197 1.185.17 1.17.18 1.206.116.21-.385.596-.642 1.032-.688.503-.066.124-.046 10.598-.205.41 0 .653.185.729.588.086.522.102 1.054.047 1.58-.034.45-.404 1.166-1.08 1.175-.015 0-7.503.035-11.076-.13-1.08-.05-2.263-1.114-2.263-3.094 0-.841 0-3.548.07-4.39A2.235 2.235 0 0 1 5.174 6.96c1.333-.242 13.753-.095 14.542.085 2.241.513 2.43 3.198 2.437 3.255.21 1.543.23 3.283.211 4.855-.046 3.548-1.371 4.327-1.814 4.84-.133.154.039.225.3.415 1.115-.209 2.708-1.427 3.02-4.011.12-.999.213-3.283.02-7.382-.125-2.661-1.243-4.954-4.952-5.376-3.217-.366-10.3-.074-13.482 0C-.097 3.767.008 6.937.006 8.229c-.021 8.174-.014 9.233.836 10.709Z\"},\"child\":[]}]})(props);\n};\nexport function SiGamemaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.012 11.994 12.006 0l11.982 12.006h-6.831l-5.163-5.151-5.151 5.151 5.163 5.151v-5.151h5.151v6.903L12.006 24z\"},\"child\":[]}]})(props);\n};\nexport function SiGamescience (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.847 19.089c-.555-.137-.853-.305-1.213-.685-.613-.645-.76-1.273-.534-2.287.394-1.77 1.645-3.34 3.321-4.166 1.03-.508 1.64-.657 2.693-.656.759 0 .928.027 1.325.212l.456.213 4.263-2.841c2.344-1.563 4.276-2.828 4.294-2.81s-.177.987-.431 2.155c-.254 1.169-.462 2.176-.462 2.24 0 .063 1.865-1.167 4.144-2.734 4.153-2.856 4.42-3.037 4.265-2.883-.268.266-10.33 8.653-10.353 8.63-.015-.017.174-1.036.419-2.267s.436-2.28.426-2.334c-.011-.053-1.231.964-2.712 2.26l-2.693 2.356-.053.765c-.17 2.428-2.022 4.156-5.168 4.823-.69.146-1.42.15-1.987.009\"},\"child\":[]}]})(props);\n};\nexport function SiGarmin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.265 12.024a.289.289 0 0 0-.236-.146h-.182a.289.289 0 0 0-.234.146l-1.449 3.025c-.041.079.004.138.094.138h.335c.132 0 .193-.061.228-.134.037-.073.116-.234.13-.266.02-.045.083-.071.175-.071h1.559c.089 0 .148.016.175.071.018.035.098.179.136.256a.24.24 0 0 0 .234.142h.486c.089 0 .13-.069.098-.132-.034-.061-1.549-3.029-1.549-3.029zm-.914 2.224c-.089 0-.132-.067-.094-.148l.571-1.222c.039-.081.1-.081.136 0l.555 1.222c.037.081-.006.148-.096.148H5.351zm12.105-2.201v3.001c0 .083.073.138.163.138h.396c.089 0 .163-.057.163-.146v-2.998c0-.089-.059-.163-.148-.163h-.411c-.09-.001-.163.054-.163.168zm-6.631 1.88c-.051-.073-.022-.154.063-.181 0 0 .342-.102.506-.25.165-.146.246-.36.246-.636a1 1 0 0 0-.096-.457.787.787 0 0 0-.27-.303 1.276 1.276 0 0 0-.423-.171c-.165-.035-.386-.047-.386-.047a8.81 8.81 0 0 0-.325-.008H8.495a.164.164 0 0 0-.163.163v2.998c0 .089.073.146.163.146h.388c.089 0 .163-.057.163-.146v-1.193s.002 0 .002-.002l.738-.002c.089 0 .205.061.258.134l.766 1.077c.071.096.138.132.228.132h.508c.089 0 .104-.085.073-.128-.032-.038-.794-1.126-.794-1.126zm-.311-.61a1.57 1.57 0 0 1-.213.028 8.807 8.807 0 0 1-.325.006h-.763a.164.164 0 0 1-.163-.163v-.608c0-.089.073-.163.163-.163h.762c.089 0 .236.004.325.006 0 0 .114.004.213.028a.629.629 0 0 1 .24.098.358.358 0 0 1 .126.148.473.473 0 0 1 0 .374.352.352 0 0 1-.126.148.617.617 0 0 1-.239.098zm11.803-1.439c-.089 0-.163.059-.163.146v1.919c0 .089-.051.11-.114.047l-1.921-1.992a.376.376 0 0 0-.276-.118h-.362c-.114 0-.163.061-.163.122v3.068c0 .061.059.12.148.12h.362c.089 0 .152-.049.152-.132l.002-2.021c0-.089.051-.11.114-.045l2.004 2.082a.36.36 0 0 0 .279.116h.272a.164.164 0 0 0 .163-.163v-2.986a.164.164 0 0 0-.163-.163h-.334zm-7.835 1.87c-.043.079-.116.077-.159 0l-.939-1.724a.262.262 0 0 0-.236-.146h-.51a.164.164 0 0 0-.163.163v2.996c0 .089.059.15.163.15h.317c.089 0 .154-.057.154-.142 0-.041.002-2.179.004-2.179.004 0 1.173 2.177 1.173 2.177a.105.105 0 0 0 .189 0s1.179-2.173 1.181-2.173c.004 0 .002 2.11.002 2.173 0 .087.069.142.159.142h.364c.089 0 .163-.045.163-.163V12.04a.164.164 0 0 0-.163-.163h-.488a.265.265 0 0 0-.244.142l-.967 1.729zM0 13.529c0 1.616 1.653 1.697 1.984 1.697 1.098 0 1.561-.297 1.58-.309a.29.29 0 0 0 .152-.264v-1.116a.186.186 0 0 0-.187-.187H2.151c-.104 0-.171.083-.171.187v.116c0 .104.067.187.171.187h.797a.14.14 0 0 1 .14.14v.52c-.157.065-.874.274-1.451.136-.836-.199-.901-.89-.901-1.096 0-.173.053-1.043 1.079-1.13.831-.071 1.378.264 1.384.268.098.051.199.014.254-.089l.104-.209c.043-.085.028-.175-.077-.246-.006-.004-.59-.319-1.494-.319C.055 11.813 0 13.354 0 13.529zm22.134-2.478h-2.165c-.079 0-.148-.039-.187-.108s-.039-.146 0-.215l1.084-1.874a.21.21 0 0 1 .187-.108.21.21 0 0 1 .187.108l1.084 1.874a.203.203 0 0 1 0 .215.22.22 0 0 1-.19.108zm1.488 3.447c.207 0 .378.169.378.378a.379.379 0 0 1-.378.378.379.379 0 0 1-.378-.378.38.38 0 0 1 .378-.378zm.002.7c.173 0 .305-.14.305-.321s-.13-.321-.305-.321-.307.14-.307.321c0 .18.13.321.307.321zm-.146-.543h.169c.102 0 .152.041.152.124 0 .071-.045.122-.114.122l.126.195h-.077l-.124-.195h-.061v.195h-.073v-.441h.002zm.073.189h.085c.055 0 .091-.012.091-.069 0-.051-.045-.065-.091-.065h-.085v.134z\"},\"child\":[]}]})(props);\n};\nexport function SiGatling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.1361 17.306c.6633-.393 1.2406-.9211 1.6827-1.5598h.7738a.7129.7129 0 0 0 .7124-.7124.7129.7129 0 0 0-.7124-.7124h-.0614c.1474-.4545.2457-.9212.2702-1.4125h.7615a.7129.7129 0 0 0 .7124-.7124.7129.7129 0 0 0-.7124-.7124h-.786c-.0492-.4913-.172-.9703-.344-1.4125h.1474a.7129.7129 0 0 0 .7124-.7123.7129.7129 0 0 0-.7124-.7124h-.958c-.9826-1.2283-2.5302-2.0512-4.262-2.0512h-1.216c-.7615 0-1.4984.1597-2.1617.4545H14.26c2.9478 0 5.3674 2.4196 5.3674 5.3674 0 2.7267-2.0511 4.9867-4.6919 5.3306-.1597.0123-.3193.0246-.4913.0246H8.9171a6.5941 6.5941 0 0 0 2.2477-2.0266c.0368.0122.086.0122.1228.0122h4.8148a.7129.7129 0 0 0 .7123-.7123.7129.7129 0 0 0-.7123-.7124H11.914a6.8244 6.8244 0 0 0 .3685-1.4125h5.5148a.7129.7129 0 0 0 .7124-.7124.7129.7129 0 0 0-.7124-.7124H12.344c-.0368-.4913-.1351-.958-.2702-1.4125h4.0532a.7129.7129 0 0 0 .7124-.7124.7129.7129 0 0 0-.7124-.7123h-4.6796c-1.1423-1.9284-3.2549-3.2303-5.65-3.2303h-.4667C3.1443 5.4289 1.1914 6.522 0 8.18a5.8463 5.8463 0 0 1 4.434-2.0266c2.5302 0 4.6919 1.609 5.5025 3.8567H6.9642C6.3746 9.261 5.4534 8.782 4.434 8.782c-1.781.0246-3.218 1.4616-3.218 3.2426s1.4493 3.2303 3.2303 3.2303c1.0563 0 1.9897-.5036 2.5793-1.2897H3.955c0-1.4248 1.1545-2.567 2.567-2.567h3.7462c.0245.2088.0368.4176.0368.6264 0 3.2303-2.6284 5.8587-5.8587 5.8587-1.7073 0-3.2426-.737-4.3235-1.9038 1.2037 1.5722 3.0952 2.5916 5.22 2.5916h9.6296c4.9867 0 9.0276-.2947 9.0276-.6755 0-.2457-1.9775-.479-4.8639-.5896Z\"},\"child\":[]}]})(props);\n};\nexport function SiGatsby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm0 2.571c3.171 0 5.915 1.543 7.629 3.858l-1.286 1.115C16.886 5.572 14.571 4.286 12 4.286c-3.343 0-6.171 2.143-7.286 5.143l9.857 9.857c2.486-.857 4.373-3 4.973-5.572h-4.115V12h6c0 4.457-3.172 8.228-7.372 9.17L2.83 9.944C3.772 5.743 7.543 2.57 12 2.57zm-9.429 9.6l9.344 9.258c-2.4-.086-4.801-.943-6.601-2.743-1.8-1.8-2.743-4.201-2.743-6.515z\"},\"child\":[]}]})(props);\n};\nexport function SiGcore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2852 12c0 6.627-5.3608 12-11.973 12-2.6711 0-5.1385-.877-7.1298-2.3583 1.1668.6558 3.0299 1.4182 5.392 1.4187 2.7791 0 5.4545-1.0542 7.4915-2.9458a11.06 11.06 0 0 0 3.5004-7.2625 8.3 8.3 0 0 0 .05-.7875c.0099-.4174-.0662-1.0793-.075-1.2959l-.0103.0104a24 24 0 0 0-.1018-.8145h-8.6868c-.7485 1.398-1.486 2.8019-2.2262 4.2042h6.5644a6.91 6.91 0 0 1-1.0747 2.0187 6.82 6.82 0 0 1-2.403 1.9813 6.796 6.796 0 0 1-3.0306.7082c-.8044 0-1.6026-.1458-2.3572-.425a6.845 6.845 0 0 1-3.2635-2.5145A6.893 6.893 0 0 1 1.7148 12a6.88 6.88 0 0 1 .5218-2.6312 6.92 6.92 0 0 1 1.4862-2.2313 6.82 6.82 0 0 1 2.2263-1.4896c.8335-.3437 1.7252-.5229 2.6253-.5229a6.82 6.82 0 0 1 4.043 1.3208c.6626-1.2376 1.317-2.4795 1.9726-3.7208C11.1651.4884 6.7805.3489 3.2156 2.3292 5.205.8667 7.6577 0 10.3122 0c6.6122 0 11.973 5.373 11.973 12\"},\"child\":[]}]})(props);\n};\nexport function SiGdal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.32642 13.62652q.0173-.01611.03381-.0332l-.03424.03357ZM14.09705 13.85192c-.00366-.01709-.00659-.032-.008-.04266l.00476.04688ZM13.804 9.19l-.003.001h.025l-.022-.001M15.153 19.24066l.18909.70178a1.2597 1.2597 0 0 0-.01013-.49133.54159.54159 0 0 0-.17896-.21045ZM13.042 19.65h.493l-.246-1.015-.247 1.015M9.87977 21.60888a3.79211 3.79211 0 0 0 .71356-2.41742 3.147 3.147 0 0 0-1.02142-2.71429 2.65021 2.65021 0 0 0-1.59338-.44354H6.23994v6.47876h1.73858a2.30043 2.30043 0 0 0 1.90125-.90351Zm-.45984-1.99127a3.05194 3.05194 0 0 1-.39929 1.14139 1.31157 1.31157 0 0 1-1.12762.56927h-.54761v-4.10696h.54071a1.34787 1.34787 0 0 1 1.138.53156 2.34662 2.34662 0 0 1 .40558 1.45685 2.60466 2.60466 0 0 1-.00977.40789ZM16.03614 22.519v.29352h-.30042c.01422.01556.02765.03088.04285.04651a7.85132 7.85132 0 0 1-.8775.119c.05566-.06921.06915-.13-.10828-.13843.004-.01056.01245-.01709.01715-.027h-.52716l-.05554-.22943-.29358-1.21136H12.661l-.29047 1.21069-.05518.2301H10.4867l.10474-.37988 1.78656-6.47881.06079-.2204h.35962a.46174.46174 0 0 0-.111-.094c-.166-.07837-.25952.03418-.43475.01135a2.56431 2.56431 0 0 1-.51556-.24365.93778.93778 0 0 1-.56879-.54657 1.99741 1.99741 0 0 0-.40472-.559c-.16864-.20514-.22144-.38-.48138-.43457-.03052-.00659.06366.21533.07336.23315a5.19238 5.19238 0 0 0 .34454.4826c.1651.23267.09467.27637-.07318.05133-.19214-.25739-.41492-.51337-.58142-.786-.063-.103-.0509-.16962-.15472-.2674-.1004-.09454-.23169-.14056-.33276-.23047a1.17538 1.17538 0 0 1-.38824-.839 11.4318 11.4318 0 0 0-2.14563 2.12183.43649.43649 0 0 1-.35748.18665.45038.45038 0 0 1-.16614-.03253.43647.43647 0 0 1-.26447-.474l.5791-3.56317a8.43654 8.43654 0 0 0-.8754 7.30994v-2.32655h2.03875c1.32983 0 2.915.59991 2.915 3.458a4.09848 4.09848 0 0 1-.77826 2.60345 2.65178 2.65178 0 0 1-.7995.67523 8.75084 8.75084 0 0 0 9.3446.34235H16.115ZM5.72462 6.43475a.33025.33025 0 0 0 .10327.23016c.01727.01654.04523.01416.06573.02667a.316.316 0 0 0 .16388.06642l.006-.00171.00293.0011a.33287.33287 0 0 0 .16479-.04932l.70483-.43481.815.589-1.21869 7.49919a.13764.13764 0 0 0 .08337.14868.14377.14377 0 0 0 .051.00952.13623.13623 0 0 0 .11145-.05841 13.86614 13.86614 0 0 1 8.12085-4.905.13707.13707 0 0 0 .10828-.12317.13567.13567 0 0 0-.08917-.13745L7.95673 6.7409l-.16143-.99756.6864-.42334a.36654.36654 0 0 0-.0167-.57538l-.96722-.52148a.69958.69958 0 0 0-.09662-.27826l-.31372-.50854.28864-.178.2887.84869 3.32935-2.22754v-.00004l-.16229-.477L10.35481 0l-.00006.00006V0L9.402.63745 7.02546 2.22753l.27686.8139-.33209.20483-.42126-.683a.71267.71267 0 0 0-.97839-.23193l-.73474.45325A.71241.71241 0 0 0 4.604 3.763l.42133.683-.3006.1853-.29315-.86194-.00006.00006v-.00008L2.76685 4.88311 1.10218 5.99688l.63928 1.87946 1.99475-1.3346 1.3346-.89294-.2724-.8006.172-.10614.172-.106.31372.50854a.69144.69144 0 0 0 .23749.22571Zm2.2724.61017 6.39117 2.3457a14.42212 14.42212 0 0 0-7.50433 4.5036ZM7.88612 17.52142h-.2406v3.497l-.00037-.00042v.01h.00037v.00006H7.893a1.00689 1.00689 0 0 0 .884-.44446 2.33078 2.33078 0 0 0 .35248-1.3739 2.0705 2.0705 0 0 0-.34418-1.2749 1.05461 1.05461 0 0 0-.89918-.41338ZM15.06068 9.04589c.0116-.08856-.04041-.1001-.16583-.18481a1.52 1.52 0 0 0-.46069-.28589c-.20569-.04053-.286.01477-.32788.10284l.91339.33521c.01726.00623.02495.02447.04101.03265ZM11.05128 8.92217a3.59931 3.59931 0 0 1 .6134.00812c.08173.00989.35529.10052.42944.05914a.25037.25037 0 0 0 .05035-.10254l-.42877-.15747a.57211.57211 0 0 1-.38153.0545c-.21741-.02942-.44623-.10071-.63464.08734.10413.06174.38965.30201.35175.05091ZM9.09272 11.48962a.857.857 0 0 0-.05988-.073c-.02881-.04517-.10114-.15674-.10529-.16388a1.38356 1.38356 0 0 0-.27789-.37915c-.0752-.064-.2699-.21344-.45312-.33862a7.78108 7.78108 0 0 1 2.7077-2.10339l-1.244-.45648a8.76509 8.76509 0 0 0-1.73781 1.39971l-.58362 3.591a14.66961 14.66961 0 0 1 1.75391-1.47619ZM14.26783 6.65765a8.798 8.798 0 0 0-3.57068.76929l1.75214.643a.59106.59106 0 0 1 .22546-.24921h-.02765a7.81472 7.81472 0 0 1 2.67945-.09573c-.11993.062-.03131.10406-.11859.16748a3.28251 3.28251 0 0 1-.66132.29852c.25232-.00067.86292.23334.98047-.11578l-.24408-.037a2.15371 2.15371 0 0 1 .49963-.23889 7.80564 7.80564 0 0 1 4.12256 2.24591c-.00781-.00018-.0155-.00043-.02307-.00018a1.24316 1.24316 0 0 0-.757.17523.96716.96716 0 0 1-.28906.18988c-.11151.03094-.232.00378-.34265.04083-.39935.13367-.336.9776-.86224.8501-.24719-.05988-.42139-.348-.54584-.53619-.10956-.16559-.30908-.30243-.17432-.50964-.06152.0155-.12708-.0022-.18756.00916.08423-.18256.367-.16663.414-.26.11719-.23383-.32251-.2583-.447-.29071.15-.15778.226.0531.37415.01727.14233-.03455-.0752-.21948-.16046-.2403-.0307-.00745-.53192.1366-.24176-.11951q-.53723-.33774-1.07428-.67572c-.06036.25067.47662.393.652.48126-.02716.10352-.19037.25421-.31525.21008-.11768-.04163-.06995-.234-.24762-.21466-.12677.291.26825.20593.305.38428.04169.20306-.14935.117-.22284.11346-.01752-.00092-.15448-.14069-.16187-.03485-.00885.12567.21844.07672.23444.20367a.90278.90278 0 0 1-.59637-.21387.416.416 0 0 1-.27655.22565l-.023.00555a1.35584 1.35584 0 0 0 .1947.0553c.1488.01794.2334.22137.31451.30469.05383.05524.15027.17249.24438.15985.14941-.02026.08685-.14911.17352-.2085.23248-.15912.29376.057.38641.27307a.93987.93987 0 0 0 .32483.40857c.072.06067.38782.277.358.41028-.02026.08978-.381.22607-.47742.25616-.35254.11017-1.014-.18036-1.085.37128.13678-.05023.526-.36383.64258-.21521.05322.06744-.04218.16565-.01978.2326.06671.20081.22357.1308.38818.09839a.27866.27866 0 0 1-.03485.01831c.22491-.11407.20154-.09027.30481-.27521a1.31278 1.31278 0 0 1 .13123-.24988c.16351-.14844.1886-.04626.29.06824.02649.03021.27686.38586.18781.368a1.0612 1.0612 0 0 0-.8125.10718 2.21242 2.21242 0 0 1-.437.27338c-.03973.01428-.33484.04187-.29987-.00769.05084-.07239.22607-.1203.29517-.19849-.19159-.07782-.35144.094-.502.19458-.15973.07458-.19684.21356-.33295.33545-.05939.053-.17163.06213-.23.13208-.05652.06781-.06354.17444-.11719.239-.0376.045-.13391.01782-.17322.08569-.05115.08881.04675.17126.02533.23523-.03925.116-.26288.21442-.34912.29822a1.31213 1.31213 0 0 0-.22937.2254 2.45806 2.45806 0 0 1 .10138.5744c-.08978.26367-.26428-.14343-.335-.24854-.2431-.36133-.729-.11951-1.061-.08954a.72775.72775 0 0 0-.57843 1.023.51569.51569 0 0 0 .57965.24451c.21594-.04364.2807-.34149.48395-.34692.37354-.00983.00824.36108-.024.49725-.02991.126.04651.1377.178.169.09717.02289.23474-.041.319.01367a.09664.09664 0 0 1 .02887.04474h.4184l.05981.22211.11975.44446a.36922.36922 0 0 1 .06036.00073c.32281.08124.1687-.02423.45221-.19312.19135-.11377.22272.02136.35352.02191.08905.00037.14557-.12622.29437-.08942.12134.03027.16919.12262.31409.14386.05817.00848.1181-.02008.17389-.0155v-.535h1.70575v1.79755a.56866.56866 0 0 0 .1073-.07654h.00018a.56432.56432 0 0 1-.10748.07666v-.00012c-.04993.02826-.09778.04535-.09778.011 0 .02271.0509.057.09778.08661v.00006c.02344.01483.05023.03156.06055.03876.09381-.30066.248-.10718.43341-.03278a3.68275 3.68275 0 0 0 .52014.10632 1.41968 1.41968 0 0 1 .56354.24384c.12732.13855.03937.36365-.055.50159-.12329.18066-.30914.25018-.38611.46283a3.3724 3.3724 0 0 0-.04987.52557c-.04694.25293-.08453.16431-.24963.3186-.139.13-.00232.1073-.19147.19019-.19.08325-.35724.05853-.48877.26416a.34342.34342 0 0 0 .01318-.03943 1.69423 1.69423 0 0 0-.1095.285.65412.65412 0 0 1-.06049.0766v.45813h1.81726v1.2027a8.60156 8.60156 0 0 0 3.49837-6.9019 8.731 8.731 0 0 0-8.78961-8.67135ZM13.20747 8.034c.16559-.05945.638-.00409.69623-.15771a4.13028 4.13028 0 0 0-1.02838.227.82393.82393 0 0 0-.11877.07947l.24976.09161c.05626-.13155.03563-.18093.20116-.24037ZM14.44044 10.84155c.23077-.16809.17877-.17834.09576-.44623a1.69841 1.69841 0 0 1-.103-.4187 14.04165 14.04165 0 0 0-1.64868.50958c.19977.11017.46649.18182.615.24823.13184.0589.51715.13953.58893.23792.09625.1322-.08295.2561.118.349a.251.251 0 0 0 .25183-.02563c.08984-.09991-.0365-.12244-.058-.23779-.04179-.22212.02694-.13386.14016-.21638ZM12.66737 16.03363l-1.78656 6.47876h1.19788l.17279-.7204.17285-.7204h1.74542l.34918 1.4408h1.20465l-1.74548-6.47876Zm-.00684 3.91644.53387-2.19495a3.18756 3.18756 0 0 0 .08557-.5658h.02734c.0014.02423.00824.04779.01013.072a3.646 3.646 0 0 0 .072.511l.26355 1.08887.26349 1.08893ZM3.19733 19.98663h.98224v1.26514a1.15779 1.15779 0 0 1-.62976.14948 1.22144 1.22144 0 0 1-1.049-.54761 2.63419 2.63419 0 0 1-.38844-1.54464 2.59979 2.59979 0 0 1 .433-1.57434 1.33094 1.33094 0 0 1 1.12091-.58978 2.22557 2.22557 0 0 1 1.38947.43347v-1.369a3.16046 3.16046 0 0 0-1.37579-.28412 2.38651 2.38651 0 0 0-1.985.96179 3.94868 3.94868 0 0 0-.74616 2.48926 3.7552 3.7552 0 0 0 .6828 2.3844 2.2512 2.2512 0 0 0 1.867.86469 2.86845 2.86845 0 0 0 1.78656-.54645v-3.25819H3.19733ZM17.442 16.034h-1.106v6.478h2.923v-1.184h-1.817Z\"},\"child\":[]}]})(props);\n};\nexport function SiGeant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.31 14.857c-.027-.014-.04-.014-.027-.07.014-.068.041-.152.055-.207.028-.097.083-.153.25-.166.138-.014.305-.014.402-.056-.125.36-.5.263-.68.5zm3.314.57c-.07.304-.305.525-.513.512-.139-.014-.18-.153-.139-.305.056-.25.278-.513.5-.5.124.014.194.125.152.292m-.083-.486c-.458-.027-.818.305-.874.652-.332.347-.47.305-.443.18.041-.152.25-.54.263-.693 0-.083-.04-.14-.152-.152-.18-.014-.486.18-.777.415-.055.042-.083.014-.07-.027.042-.11.07-.167.112-.278.014-.027.014-.04-.014-.055a.314.314 0 0 0-.166-.083c-.056 0-.097.014-.125.07-.25.22-.735.886-.9.873-.029 0-.057-.014-.057-.056 0-.097.32-.75.32-.818 0-.04-.029-.055-.056-.055-.07 0-.416.11-.444.138-.014.014-.014.028-.028.056.042 0 .07.014.056.083-.042.152-.278.638-.278.735 0 .097.042.152.153.152.291.014.582-.194.97-.638-.097.195-.166.375-.18.5-.014.124.166.138.264.124.041 0 .041 0 .055-.04.042-.112.166-.334.444-.584.124-.11.29-.235.36-.22.056 0 .056.054.056.082-.028.125-.125.32-.195.5-.055.165.014.276.153.276.18.014.43-.097.68-.332.027.194.166.346.415.36.458.028.888-.305.915-.763.014-.22-.194-.388-.457-.402m-3.799.236c0 .014.014.014.028 0 .07-.028.152-.083.152-.14 0-.068-.083-.11-.346-.123-.402-.028-.75.11-.75.332 0 .278.542.32.542.555 0 .11-.125.208-.36.208-.167 0-.306-.056-.306-.18 0-.083.07-.167.32-.222-.029-.042-.056-.042-.098-.042-.29.042-.458.153-.458.29-.013.154.111.279.583.293.527.013.748-.222.748-.43 0-.236-.332-.36-.485-.472-.04-.027-.07-.07-.07-.097 0-.055.07-.124.264-.124.083 0 .18.027.208.055.042.014.042.055.028.097zm-2.44.68c-.08 0-.122-.056-.122-.125.014-.32.5-.707.97-.638-.236.54-.596.776-.845.762m1.29-.804c.024-.04.01-.083-.03-.097-.07-.014-.168-.027-.25-.04-.913-.057-1.551.47-1.58.886-.012.166.085.277.32.29.25 0 .569-.138.776-.29.055-.042.055-.028.055.014-.04.138-.028.263.11.277.152.014.346-.07.415-.097 0 0 .014-.028.014-.055-.083 0-.11-.084-.097-.167.014-.208.18-.568.263-.72m-1.383-.278c0 .028.014.028.027.028.208 0 .36-.14.36-.222 0-.083-.096-.208-.5-.208-1.177-.014-1.953.513-2.022 1.095-.084.777 1.053 1.18 2.024.943.222-.055.346-.125.346-.166v-.084a1.22 1.22 0 0 1-.208.07c-.79.235-1.733-.083-1.65-.804.056-.513.722-.93 1.429-.915a.27.27 0 0 1 .11.013c.098.014.14.056.14.11.013.07 0 .098-.056.14M7.28 8.909c.333-.152 1.969-1.123 2.024-1.15.07-.041.347-.07.5.208.152.277.152.554-.237.707-.388.138-2.024.388-2.287.235m2.274 2.052c-.056-.527-.36-.86-.832-.86s-.777.32-.832.86zm1.164 1.94c-.86.528-1.58.528-1.885.528-1.345 0-2.22-.79-2.22-2.01 0-1.414 1-2.12 2.19-2.12 1.125 0 2.04.886 1.998 2.272H7.93c.042.735.513 1.096 1.262 1.096.485 0 .79-.097 1.525-.527zm13.044-2.675h-1.179v1.692c0 .374.222.624.596.624.25 0 .375-.056.79-.222v.887c-.526.18-.83.25-1.206.25-.804 0-1.497-.374-1.497-1.456v-1.775h-.555v-.873h.583v-.86l1.29-.554v1.4h1.178zm-6.25-.36c.402-.444.801-.596 1.314-.596.638 0 1.483.388 1.483 1.54v2.55h-1.275v-2.37c0-.556-.277-.777-.638-.777-.319 0-.551.166-.884.637v2.51h-1.276V9.367h1.276zm-3.674 1.58c-.721.264-1.054.43-1.054.82 0 .22.18.414.388.414.222 0 .472-.11.666-.29zm1.733 1.637c-.32.208-.804.36-1.123.36-.402 0-.596-.125-.68-.444-.471.32-.845.444-1.261.444-.61 0-1.068-.47-1.068-.957 0-.93.777-1.178 2.385-1.69.028-.36-.18-.653-.707-.653-.486 0-.888.07-1.331.32l-.14-.736c.5-.32 1.096-.443 1.706-.443.97 0 1.789.43 1.789 1.275l.014 1.692c0 .194.055.235.18.235.083 0 .056 0 .236-.097v.666zM5.42 8.95c-.832-.43-1.178-.485-1.872-.485-1.54 0-2.08 1.22-2.08 2.08 0 1.025.79 1.913 1.97 1.913.346 0 .526-.028 1.04-.208v-.957h-.916v-.998h2.302v2.357c-.486.443-1.54.776-2.454.776-1.997 0-3.411-1.22-3.411-2.94 0-1.76 1.4-2.965 3.425-2.965.845 0 1.69.194 2.343.54z\"},\"child\":[]}]})(props);\n};\nexport function SiGeeksforgeeks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.45 14.315c-.143.28-.334.532-.565.745a3.691 3.691 0 0 1-1.104.695 4.51 4.51 0 0 1-3.116-.016 3.79 3.79 0 0 1-2.135-2.078 3.571 3.571 0 0 1-.13-.353h7.418a4.26 4.26 0 0 1-.368 1.008zm-11.99-.654a3.793 3.793 0 0 1-2.134 2.078 4.51 4.51 0 0 1-3.117.016 3.7 3.7 0 0 1-1.104-.695 2.652 2.652 0 0 1-.564-.745 4.221 4.221 0 0 1-.368-1.006H9.59c-.038.12-.08.238-.13.352zm14.501-1.758a3.849 3.849 0 0 0-.082-.475l-9.634-.008a3.932 3.932 0 0 1 1.143-2.348c.363-.35.79-.625 1.26-.809a3.97 3.97 0 0 1 4.484.957l1.521-1.49a5.7 5.7 0 0 0-1.922-1.357 6.283 6.283 0 0 0-2.544-.49 6.35 6.35 0 0 0-2.405.457 6.007 6.007 0 0 0-1.963 1.276 6.142 6.142 0 0 0-1.325 1.94 5.862 5.862 0 0 0-.466 1.864h-.063a5.857 5.857 0 0 0-.467-1.865 6.13 6.13 0 0 0-1.325-1.939A6 6 0 0 0 8.21 6.34a6.698 6.698 0 0 0-4.949.031A5.708 5.708 0 0 0 1.34 7.73l1.52 1.49a4.166 4.166 0 0 1 4.484-.958c.47.184.898.46 1.26.81.368.36.66.792.859 1.268.146.344.242.708.285 1.08l-9.635.008A4.714 4.714 0 0 0 0 12.457a6.493 6.493 0 0 0 .345 2.127 4.927 4.927 0 0 0 1.08 1.783c.528.56 1.17 1 1.88 1.293a6.454 6.454 0 0 0 2.504.457c.824.005 1.64-.15 2.404-.457a5.986 5.986 0 0 0 1.964-1.277 6.116 6.116 0 0 0 1.686-3.076h.273a6.13 6.13 0 0 0 1.686 3.077 5.99 5.99 0 0 0 1.964 1.276 6.345 6.345 0 0 0 2.405.457 6.45 6.45 0 0 0 2.502-.457 5.42 5.42 0 0 0 1.882-1.293 4.928 4.928 0 0 0 1.08-1.783A6.52 6.52 0 0 0 24 12.457a4.757 4.757 0 0 0-.039-.554z\"},\"child\":[]}]})(props);\n};\nexport function SiGeneralelectric (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001 24C5.385 24 0 18.647 0 11.999 0 5.385 5.385 0 12.001 0 18.614 0 24 5.385 24 11.999 24 18.647 18.614 24 12.001 24zm0-23.436C5.684.564.565 5.685.565 12c0 6.316 5.12 11.435 11.436 11.435 6.315 0 11.434-5.119 11.434-11.435C23.434 5.717 18.316.564 12.001.564zM22.169 15.42l-.062.013-.034-.043c.002-.019.403-1.202.4-2.56-.005-1.463-.599-2.36-1.363-2.36-.465 0-.798.334-.798.831 0 .898 1.097.964 1.097 2.926 0 .798-.166 1.561-.432 2.393-1.23 4.154-5.153 6.082-8.975 6.082-1.763 0-3.014-.361-3.387-.529-.015-.008-.028-.037-.016-.066l.048-.034c.151.06 1.226.397 2.556.397 1.463 0 2.327-.598 2.327-1.33a.823.823 0 0 0-.832-.829c-.898 0-.964 1.13-2.892 1.13-.831 0-1.561-.166-2.427-.432-4.122-1.263-6.087-5.154-6.084-9.01.002-1.878.527-3.372.536-3.388l.059-.01.035.043c-.049.155-.398 1.228-.398 2.556 0 1.463.598 2.327 1.362 2.327a.789.789 0 0 0 .799-.798c0-.898-1.098-.997-1.098-2.925 0-.831.167-1.562.432-2.426 1.265-4.12 5.154-6.052 8.977-6.081 1.776-.013 3.331.518 3.39.565l.011.06-.044.033c-.018-.002-1.029-.425-2.559-.425-1.429-.001-2.327.598-2.327 1.363 0 .432.333.798.831.798.898 0 .964-1.097 2.892-1.097.831 0 1.562.166 2.427.432 4.156 1.261 6.05 5.185 6.084 8.974.018 1.941-.529 3.41-.535 3.42zm-5.715-2.855c-1.13 0-1.995.832-1.995 1.828 0 .831.498 1.495 1.164 1.495.233 0 .465-.133.465-.432 0-.431-.573-.537-.528-1.184.028-.427.43-.711.828-.711.798 0 1.171.774 1.171 1.57-.034 1.23-.938 2.086-2.001 2.086-1.398 0-2.293-1.33-2.293-2.759 0-2.128 1.396-2.959 2.127-3.158.008-.001 1.911.34 1.852-.499-.026-.369-.575-.511-.974-.527-.441-.017-.885.142-.885.142-.233-.117-.393-.346-.492-.611 1.363-1.03 2.326-2.027 2.326-3.158 0-.598-.4-1.131-1.164-1.131-1.363 0-2.394 1.729-2.394 3.291 0 .266 0 .532.067.766-.865.631-1.507 1.023-2.671 1.721 0-.146.031-.521.128-1.008.399-.432.946-1.079.946-1.578 0-.233-.132-.432-.4-.432-.664 0-1.164.998-1.296 1.695-.3.366-.897.832-1.397.832-.399 0-.531-.366-.566-.498 1.263-.432 2.826-2.162 2.826-3.724 0-.333-.133-1.064-1.13-1.064-1.496 0-2.759 2.228-2.759 3.955-.532 0-.731-.565-.731-.996 0-.432.166-.865.166-.997 0-.134-.067-.3-.266-.3-.499 0-.798.664-.798 1.429.034 1.064.732 1.729 1.663 1.795.132.632.698 1.23 1.396 1.23.432 0 .964-.133 1.33-.465-.034.233-.067.431-.1.631-1.463.765-2.527 1.297-3.491 2.161-.762.698-1.195 1.628-1.195 2.359 0 .997.632 1.928 1.928 1.928 1.529 0 2.693-1.23 3.257-2.925.267-.798.373-1.958.44-3.022 1.529-.864 2.254-1.364 3.051-1.931.099.166.2.3.334.399-.699.366-2.36 1.397-2.36 3.823 0 1.729 1.164 3.656 3.457 3.656 1.895 0 3.191-1.562 3.191-3.057 0-1.362-.765-2.625-2.227-2.625zm-9.141 4.653c-.498.023-.83-.296-.83-.827 0-1.429 1.981-2.793 3.477-3.526-.266 1.996-.939 4.275-2.647 4.353zM8.41 9.374c0-1.097 1.082-3.182 1.745-2.962.781.26-.648 2.364-1.745 2.962zm6.283-.499c0-1.362.923-2.688 1.427-2.436.574.287-.43 1.572-1.427 2.436z\"},\"child\":[]}]})(props);\n};\nexport function SiGeneralmotors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.34 0A3.345 3.345 0 0 0 0 3.34v17.32A3.345 3.345 0 0 0 3.34 24h17.32A3.345 3.345 0 0 0 24 20.66V3.34C23.982 1.5 22.501 0 20.66 0zm0 1.535h17.32c.992 0 1.805.813 1.805 1.806v17.3c0 .993-.813 1.806-1.806 1.806H3.341a1.811 1.811 0 0 1-1.806-1.806v-17.3c0-.993.813-1.806 1.806-1.806zm2.98 4.677A1.877 1.877 0 0 0 4.442 8.09v4.569c0 1.03.85 1.86 1.879 1.878h1.552v.343c-.018.85-.505 1.337-1.679 1.355h-.74v1.535h.74c2.167 0 3.395-1.03 3.431-2.908v-8.65zm4.623 0v8.307h1.752V7.73h1.68v6.79h1.752V7.73h1.01c.362 0 .669.289.669.668v6.14h1.752V8.09c-.018-1.029-.85-1.878-1.879-1.878zM6.863 7.73h1.01v5.273h-1.01a.666.666 0 0 1-.669-.668V8.397c0-.36.29-.668.668-.668zm4.08 8.506v1.535h8.596v-1.535z\"},\"child\":[]}]})(props);\n};\nexport function SiGenius (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 6.827c0 2.164.79 4.133 2.167 5.51.393.393.786.59 1.18.983h.195c.197 0 .196-.196.196-.196-.393-.787-.588-1.77-.588-2.754 0-2.164.982-4.329 2.36-5.706V1.518c0-.197-.197-.196-.197-.196h-2.95C.789 2.896 0 4.664 0 6.827zm2.559 12.59c2.36 2.164 5.31 3.343 8.851 3.343 7.082 0 12.59-5.702 12.59-12.586 0-3.344-1.378-6.492-3.542-8.656h-.196c0-.197-.196 0-.196 0 .59 1.574.983 3.147.983 4.918 0 7.278-5.902 13.373-13.377 13.373-1.77 0-3.344-.393-4.917-.983-.197 0-.196.199-.196.395zm5.9-11.998c0 .59.395 1.178.788 1.571h.392c3.54 1.18 4.722-.193 4.722-1.767V5.056c0-.196.196-.196.196-.196h.787c.197 0 .196-.196.196-.196-.196-1.18-.784-2.358-1.571-3.342h-2.363c0-.197-.196 0-.196.196v2.95c0 1.574-1.18 2.754-2.754 2.951 0-.197-.196 0-.196 0z\"},\"child\":[]}]})(props);\n};\nexport function SiGentoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.94 0a7.31 7.31 0 00-1.26.116c-4.344.795-7.4 4.555-7.661 7.031-.126 1.215.53 2.125.89 2.526.977 1.085 2.924 1.914 4.175 2.601-1.81 1.543-2.64 2.296-3.457 3.154C1.403 16.712.543 18.125.54 19.138c0 .325-.053 1.365.371 2.187.16.309.613 1.338 1.98 2.109.874.494 2.119.675 3.337.501 3.772-.538 8.823-3.737 12.427-6.716 2.297-1.9 3.977-3.739 4.462-4.644.39-.731.434-2.043.207-2.866-.645-2.337-5.887-7.125-10.172-9.051A7.824 7.824 0 009.94 0zm-.008.068a7.4 7.4 0 013.344.755c3.46 1.7 9.308 6.482 9.739 8.886.534 2.972-9.931 11.017-16.297 12.272-2.47.485-4.576.618-5.537-1.99-.832-2.262.783-3.916 3.16-6.09a92.546 92.546 0 012.96-2.576c.065-.069-5.706-2.059-5.89-4.343C1.221 4.634 4.938.3 9.697.076c.08-.004.157-.007.235-.008zm-.112.52a5.647 5.647 0 00-.506.032c-2.337.245-2.785.547-4.903 2.149-.71.537-2.016 1.844-2.35 3.393-.128.59.024 1.1.448 1.458 1.36 1.144 3.639 2.072 5.509 2.97.547.263.185.74-.698 1.505-2.227 1.928-5.24 4.276-5.45 6.066-.099.842.19 1.988 1.213 2.574 1.195.685 3.676.238 5.333-.379 2.422-.902 5.602-2.892 8.127-4.848 2.625-2.034 5.067-4.617 5.188-5.038.148-.517.133-.996-.154-1.546-.448-.862-1.049-1.503-1.694-2.22-1.732-1.825-3.563-3.43-5.754-4.658C12.694 1.242 11.417.564 9.82.588zm1.075 3.623c.546 0 1.176.173 1.853.5 1.688.817 3.422 2.961-.015 4.195-.935.336-3.9-.824-3.81-2.407.09-1.57.854-2.289 1.972-2.288zm.285 1.367c-.317-.002-.575.079-.694.263-.557.861-.303 1.472.212 1.862.192-.457 2.156.043 2.148.472a.32.32 0 00.055-.032c1.704-1.282-.472-2.557-1.72-2.565z\"},\"child\":[]}]})(props);\n};\nexport function SiGeocaching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 11.239h1.918c.151-1.738.841-3.819 2.521-5.498C2.81 4.532 2.484 3.136 2.484 2.36h.652c.068.682.357 1.656 2.247 2.753C7.167 4.067 7.532 3.037 7.631 2.36h.652c0 .721-.317 2.082-1.951 3.38 1.366.89 2.506 2.195 2.928 4.237H7.576c-.294-1.461-1.04-2.616-2.193-3.504-1.169 1.143-1.774 3.023-1.811 4.766h6.57V1.098H0v10.141zM5.383 2.63c.469 0 .85.377.85.842 0 .465-.38.841-.85.841a.846.846 0 0 1-.85-.841.847.847 0 0 1 .85-.842zM3.574 12.779h6.567v6.567a7.338 7.338 0 0 1-3.775-1.528L5.195 18.99a8.978 8.978 0 0 0 4.946 2.012v1.919H0V12.779h1.919a8.98 8.98 0 0 0 2.03 4.968l1.171-1.171a7.33 7.33 0 0 1-1.546-3.797zm8.108-11.681h10.142V11.24h-1.919a8.981 8.981 0 0 0-2.012-4.947l-1.171 1.171a7.338 7.338 0 0 1 1.528 3.776h-6.568V4.672a7.347 7.347 0 0 1 3.798 1.545l1.171-1.171a8.987 8.987 0 0 0-4.968-2.03V1.098zm0 11.681h10.142V22.92h-5.988l-1.172-4.736c.473-.572.965-.836 2.137-1.018 2.184-.341 2.576-2.232 2.576-2.232-1.02.245-1.837.001-2.799-.234-.949-.231-1.859-.211-2.727.092-.659.23-.818.445-.818.445l1.907 7.683h-3.257V12.779zm11.4-11.7a.894.894 0 0 0-.913.918c0 .521.392.913.913.913A.894.894 0 0 0 24 1.997a.895.895 0 0 0-.918-.918zm0 1.679a.738.738 0 0 1-.753-.761c0-.437.319-.764.753-.764.437 0 .759.327.759.764a.741.741 0 0 1-.759.761zm.379-.907c0-.201-.149-.298-.327-.298h-.411v.889h.204v-.309h.084l.259.309h.22v-.04l-.251-.28c.118-.028.222-.122.222-.271zm-.335.133h-.199v-.262h.199c.076 0 .133.044.133.131.001.081-.057.131-.133.131z\"},\"child\":[]}]})(props);\n};\nexport function SiGeode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.30206 0-.60438.09583-.85742.28906L.5957 8.34375c-.4705.3593-.66703.97346-.49218 1.53906l4.05664 13.1211c.1829.59168.7303.99609 1.3496.99609h12.98047c.61931 0 1.1667-.40441 1.34961-.9961l4.05664-13.12109c.17485-.5656-.02168-1.17975-.49218-1.53906l-.97266-.74219-1.11914 3.51758-3.07031 9.99024c-.12005.3903-.48032.65624-.88868.65624H6.57813c-.40836 0-.76863-.26593-.88868-.65624l-3.36132-10.9336c-.11419-.37133.01411-.77514.32226-1.01172l8.74805-6.7168a.93.93 0 0 1 .10937-.07226L13.55273.82031l-.6953-.53125C12.60437.09583 12.30205 0 12 0m.06836 4.75781c-.16254 0-.32493.05197-.46094.15625l-6.52344 5.0039c-.25142.19277-.35688.52145-.26367.82423l.4336 1.4082 2.19726-1.61914 4.31445-3.37695c.13717-.10727.33159-.10727.46875 0l4.70508 3.68164c.12315.09628.17407.25661.1289.40625l-1.80858 5.99219c-.0483.15993-.19619.26953-.36329.26953H9.10352a.377.377 0 0 1-.07618-.0078H6.9004l.42774 1.39257c.0979.3179.39196.53516.7246.53516h8.0332c.33265 0 .62477-.21725.72266-.53516l2.50977-8.14648c.09321-.30278-.01225-.63146-.26367-.82422l-6.5254-5.00392c-.136-.10428-.29839-.15625-.46093-.15625Z\"},\"child\":[]}]})(props);\n};\nexport function SiGeopandas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0043 0C5.3911 0 0 5.3805 0 12c0 6.6108 5.3825 12 12.0043 12C18.6263 24 24 18.6108 24 12c0-6.6195-5.3824-12-11.9957-12Zm9.8288 12a9.7343 9.7343 0 0 1-.8234 3.925v-7.85c.5288 1.1958.8235 2.53.8235 3.925zm-4.0996 7.9798v-1.8715h-2.0889v3.0152a9.7946 9.7946 0 0 1-3.6403.7018c-.3033 0-.6067-.0173-.91-.0433V9.1928H9.0054v12.1646c-3.961-1.2736-6.8385-4.9906-6.8385-9.366 0-5.4239 4.4117-9.834 9.8374-9.834 2.6956 0 5.1485 1.0917 6.9253 2.8592v13.8888h.0607c-.39.3986-.8148.7538-1.2568 1.0744zM15.6446 9.2014h2.0889v4.3322h-2.0889zm-3.2849 5.3372h2.0888v4.3322h-2.0888Zm0-8.9068h2.0888v4.3321h-2.0888Zm3.285 9.1668h2.0888v2.0447h-2.0889Zm-3.285-3.5697h2.0888v2.0448h-2.0888Z\"},\"child\":[]}]})(props);\n};\nexport function SiGerrit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.648 2.678l-.245-.266c.004-.004.29-.268.413-.41.121-.146.342-.484.346-.486l.301.195c-.014.016-.234.359-.375.522-.137.165-.428.432-.44.445zm1.577 10.597c-.012-.004-.24-.154-.365-.221-.117-.059-.32-.146-.422-.191l.213-.612-.898-.444-.286.871c-.174.004-.713.053-1.51.389-.959.4-1.688 1.025-1.695 1.029l-.143.125.641.025.02-.016c.006-.006.721-.535 1.119-.705.088-.037.207-.074.33-.105-.209.105-.439.227-.6.32-.199.119-.57.381-.586.393l-.186.129.682.016.018-.01c.012-.008 1.164-.623 1.789-.76l.196-.047c.145-.037.246-.064.422-.064.156 0 .369.021.688.07.398.059.66.158.664.16l.24.094-.322-.436-.012-.008.003-.002zm-8.98-7.298h-.029l-1.006.916v.03c-.016.266.078.52.258.716.182.196.42.309.686.319h.043c.531 0 .965-.413.992-.94.023-.545-.399-1.01-.944-1.041zM5.2 7.808h-.041c-.117-.005-.23-.032-.33-.085.045.008.098.01.148.002.284-.035.481-.291.448-.575-.035-.279-.293-.48-.576-.442-.264.034-.457.267-.446.531-.031-.09-.045-.183-.045-.28l.912-.833c.446.042.79.431.768.882s-.391.8-.842.8H5.2zm9.329-3.725l-.293-.195-.41.265-.395-.285-.301.18.404.291-.416.27.297.18.4-.254.387.28.309-.169-.407-.296M24 19.525c-.213-.209-.418-.416-.629-.627-.48-.488-.957-.984-1.418-1.486-.547-.598-1.082-1.207-1.582-1.844-.225-.283-.441-.58-.646-.881-.254-.387-.469-.795-.668-1.215-.211-.445-.398-.9-.576-1.356.24.21.463.444.664.692.021-.215.041-.43.059-.648l.023-.322c0-.033.012-.066-.008-.096-.016-.029-.033-.051-.053-.075-.121-.149-.264-.282-.406-.413-.189-.181-.387-.36-.584-.533l-.18-.156c-.027-.027-.057-.051-.086-.074-.031-.03-.041-.096-.055-.136l-.154-.479c.607.285 1.109.741 1.578 1.215.004-.219.004-.436 0-.652 0-.114-.002-.229-.008-.346 0-.029.006-.1-.016-.127-.012-.02-.031-.036-.043-.055-.109-.117-.234-.217-.357-.314-.172-.143-.35-.277-.527-.408-.156-.117-.318-.232-.477-.345-.018-.016-.076-.039-.064-.06l.039-.08c.02-.035.014-.045.053-.029l.17.059c.406.156.779.368 1.143.608-.123-.45-.311-.885-.525-1.296-.389-.762-.893-1.468-1.463-2.105-.379-.426-.785-.824-1.219-1.193-.223-.19-.457-.369-.699-.533-.113-.074-.225-.149-.346-.217-.049-.03-.105-.056-.15-.094-.18-.144-.365-.284-.549-.429.238.098.469.21.689.338-.127-.194-.342-.331-.545-.436-.307-.159-.637-.276-.967-.378.113-.12.234-.228.346-.348.113-.12.223-.246.33-.372.127-.15.252-.3.375-.455l-1.156-.726-.48-.303c-.123.246-.277.476-.458.68-.18.203-.391.369-.6.539-.191.156-.379.316-.566.472-.047.04-.092.085-.145.12-.025.021-.096.004-.127.004H10.7c-.297.006-.596.029-.891.068-.058.007-.113.013-.175.008l-.178-.01c-.137-.008-.271-.016-.408-.016-.289-.004-.58 0-.871.025-.244.022-.489.055-.729.112-.238.056-.461.172-.66.312-.193.141-.387.32-.504.53s-.17.456-.213.689c-.135.013-.268.01-.4.016-.141.008-.277.021-.416.039-.27.037-.535.096-.795.18-.496.154-.945.405-1.336.75-.195.181-.377.38-.539.596-.02.025-.037.051-.063.068-.01.009-.027.016-.033.027-.015.027-.033.052-.051.076l-.134.212c-.168.285-.276.595-.383.906l-.045.123.033-.021c-.01.067-.02.135-.025.202l-.008.105v.053l-.066.013c-.135.026-.271.06-.4.101-.12.039-.233.086-.337.15-.105.066-.195.153-.285.239-.318.31-.562.698-.687 1.128-.1.348-.137.735-.059 1.092.021.09.049.188.107.262.074.09.199.126.313.095.131-.036.248-.124.371-.187l.314-.157c.455-.226.93-.446 1.438-.525.035-.005.1.067.131.091.049.037.1.074.148.104.109.069.221.129.334.181.262.114.541.174.818.231.502.105 1.014.171 1.529.18.207.004.416 0 .625-.018.225-.02.451-.049.678-.051.25-.005.496.025.74.055.254.031.51.068.764.105.518.079 1.031.169 1.543.279-.115.18-.227.362-.338.545-.008.013-.072 0-.088 0-.041-.002-.086-.002-.127 0-.074 0-.15.008-.225.019-.211.03-.416.083-.615.156-.49.181-.938.483-1.326.833-.221.195-.43.408-.609.641-.049.064-.094.129-.139.193.105-.023.211-.045.318-.07.061-.016.117-.027.176-.039.021-.008.029-.016.049-.027.219-.203.451-.393.695-.563.111-.08.225-.154.348-.215.166-.083.354-.131.533-.174-.33.18-.678.35-.977.584-.172.139-.328.291-.49.439l.654-.104c.01 0 .014-.004.023-.01l.17-.094c.113-.064.23-.125.346-.186.24-.123.482-.24.732-.34.236-.094.48-.178.732-.225.221-.046.428-.052.648 0 .342.074.67.232.969.414.021.014.035.033.055.014.016-.014.098-.074.09-.092l-.18-.334c-.016-.029-.023-.049-.051-.066l-.131-.077c-.176-.104-.348-.21-.51-.331-.037-.023-.078-.039-.082-.089-.004-.046.014-.093.029-.136.033-.09.08-.169.131-.248.033-.058.072-.111.109-.166.014-.018.01-.021.031-.014l.119.034c.236.077.469.159.711.22.27.068.545.123.82.176l.048.01c-.056-.03-.091-.09-.132-.136-.023-.03-.035-.05-.074-.06l-.105-.02c-.074-.016-.148-.03-.225-.049-.262-.057-.525-.119-.777-.209-.375-.13-.758-.232-1.145-.322-.486-.107-.977-.194-1.465-.275-.25-.041-.498-.074-.75-.109-.246-.034-.496-.07-.746-.087-.539-.034-1.074.087-1.615.081-.365-.004-.734-.055-1.096-.105l-.068-.009c.252-.093.5-.188.75-.285.236-.095.471-.192.705-.289.127-.052.25-.105.373-.157.113-.051.225-.1.328-.17.408-.279.676-.727.975-1.109.273-.361.586-.7.99-.908.129-.066.262-.117.4-.156-.283-.439-.549-.93-.623-1.455.029.012.061.025.094.037.035.012.064.016.072.045l.029.135c.026.091.053.176.086.262.072.191.16.375.26.551.219.396.484.766.766 1.12.539.686 1.145 1.305 1.736 1.941.145.158.275.324.41.492.15.187.303.375.457.561.121.141.234.285.356.426l.094.112c.016.018.037.026.061.036.604.3 1.213.6 1.822.895.434.209.869.42 1.309.623.236.109.471.219.711.32.029.014.066.029.098.039.016.01.029.016.047.023l.016.049c.027.072.051.145.076.217.049.141.098.279.148.416.33.912.695 1.814 1.145 2.676.346.656.715 1.301 1.09 1.939.4.68.811 1.354 1.225 2.025.332.535.666 1.072 1.008 1.605.146.227.289.459.439.688l.063.094.775-1.141.191-.283c.008-.006.082-.102.076-.109l-.156-.24c-.291-.451-.584-.898-.871-1.35l-.828-1.283-.105-.166.656.799 1.115 1.35c.121.146.236.289.354.438.219-.402.439-.801.662-1.201.086-.164.176-.33.266-.492M12.13 1.915c.309-.246.563-.563.757-.906l1.178.743.18.112c-.246.3-.496.604-.775.873-.035.034-.074.069-.107.104-.021.025-.047.051-.07.075l-.033.038c-.023-.007-.045-.016-.068-.02-.146-.041-.289-.08-.436-.111-.292-.066-.589-.117-.886-.152-.191-.021-.385-.04-.578-.058.275-.234.557-.467.838-.698m-1.754 1.37c.232-.096.482-.15.73-.191.49-.082.994-.094 1.489-.04.354.038.701.108 1.041.21l-.141.115-.225-.061c-.141-.029-.281-.06-.422-.082-.246-.037-.497-.06-.749-.065-.461-.008-.926.042-1.371.159-.301.078-.604.188-.879.332-.286.154-.555.346-.78.582-.134.137-.257.289-.359.455-.057.09-.105.18-.15.275-.024.047-.043.096-.061.144l-.029.075c-.004.015-.008.026-.012.038L8.39 5.22l-.082-.011c.234-.719.763-1.286 1.418-1.649.207-.114.426-.218.65-.279m-3.93.374c.266-.381.686-.649 1.139-.743.502-.101 1.016-.119 1.525-.107-.525.131-1.05.326-1.488.652-.34.075-.664.24-.934.459-.09.071-.17.15-.246.236-.035.037-.066.075-.097.116-.014.015-.027.03-.037.049h-.084c.023-.135.055-.27.098-.4.029-.09.064-.18.119-.26m.882.056c-.145.143-.27.303-.391.469-.047.069-.098.153-.18.191-.085.039-.194-.005-.28-.031.224-.279.521-.494.851-.629M2.308 6.585c.08-.16.182-.315.275-.465.016-.027.053-.046.074-.063.049-.034.096-.069.143-.106.309-.225.621-.446.939-.656.166-.107.33-.213.502-.307.182-.101.369-.18.565-.244.347-.112.707-.189 1.068-.244.174-.025.361-.057.531-.015-.33.188-.658.375-.99.558-.342.191-.689.367-1.035.552-.332.18-.66.375-.981.577-.336.206-.67.419-1.002.629-.08.051-.16.105-.24.155.045-.125.09-.251.151-.371m1.009 3.056c-.029.056-.134.042-.187.042-.094 0-.186 0-.279.006-.258.015-.51.06-.758.138-.475.147-.922.375-1.365.604-.1.055-.203.135-.316.162-.061.015-.131-.008-.166-.063-.035-.061-.053-.131-.064-.198-.027-.12-.035-.245-.033-.368 0-.33.076-.66.215-.96.096-.21.221-.401.371-.574.15-.175.326-.351.539-.45.355-.162.775-.213 1.164-.235.072-.005.145-.007.217-.007.1 0 .217-.016.311.019.074.027.121.105.15.173.045.105.074.225.1.336.061.26.123.525.145.791.01.119.016.239.004.359-.009.073-.014.156-.05.223m2.829-1.973c-.194.123-.403.218-.616.298-.215.077-.436.144-.66.181-.097.013-.195.025-.293.021-.101-.003-.193-.036-.293-.067-.195-.063-.393-.13-.57-.233-.064-.039-.135-.084-.174-.15-.029-.052-.029-.116-.023-.174.012-.231.094-.458.203-.66.187-.343.482-.612.84-.775.879-.396 1.865-.029 2.611.49l.08.061c-.154.165-.311.321-.473.477-.199.189-.404.381-.634.531M8.31 5.739c-.475-.203-.926-.458-1.356-.738.449.188.934.3 1.414.37.258.037.521.072.781.08.281.008.564-.021.84-.075.545-.103 1.068-.305 1.566-.551.494-.245.964-.537 1.413-.859.217-.155.43-.315.633-.487.021-.016.174-.161.184-.154l.041.031.537.416c.328.254.658.51.988.762-.906.326-1.826.629-2.752.904-.519.156-1.038.301-1.565.42-.412.098-.834.189-1.256.21-.507.022-1.006-.135-1.47-.33m8.85 3.942c.076.021.145.045.215.067l.094.033c.016.006.031.015.045.02l.021.06c.045.146.09.289.139.432-.15-.127-.301-.254-.451-.379l-.09-.074c-.021-.016-.045-.021-.029-.046l.059-.114m-.671 1.444l.035-.063.027-.046c.012-.018.008-.022.029-.012.129.054.258.111.385.17.24.11.475.23.703.364.107.065.217.135.322.205l.15.105.074.057c.033.027.041.063.057.102.104.282.219.564.338.844.078.189.162.379.248.566-.293-.371-.621-.715-.957-1.045-.346-.346-.705-.671-1.078-.981l-.323-.264m3.746 6.42l-.121.09.008.016.063.094.271.42.904 1.402c.311.48.621.963.932 1.445l.309.48.084.133c.004.004.029.041.029.045-.26.385-.523.77-.783 1.154-.027.037-.051.076-.074.111-.24-.373-.479-.744-.715-1.117-.4-.635-.795-1.277-1.184-1.916-.434-.709-.855-1.418-1.264-2.141-.383-.674-.75-1.361-1.059-2.076-.301-.697-.563-1.408-.811-2.121.486.193.98.367 1.48.521.145.045.289.09.436.127l.063.018c.008 0 .014-.039.018-.049.018-.064.031-.129.045-.195.031-.125.051-.254.074-.381.205.428.436.844.701 1.236.215.314.445.621.686.92.521.656 1.074 1.283 1.643 1.898.463.494.934.984 1.408 1.465l.389.389c.006.006.039.031.037.041l-.031.053-.148.275-.588 1.068c-.18-.219-.361-.436-.541-.658l-1.125-1.361c-.314-.387-.637-.773-.953-1.16l-.186-.225\"},\"child\":[]}]})(props);\n};\nexport function SiGetx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.643.934c-.302.067-.928.29-1.386.503-2.167 1.05-3.485 3.52-3.15 5.899a5.76 5.76 0 0 0 1.575 3.25c1.128 1.174 2.469 1.732 4.134 1.744 1.642 0 2.994-.57 4.133-1.743C19.39 7 17.055 1.113 12.095.867c-.492-.022-1.14 0-1.452.067zM13.77 3.17c.905.335 1.966 1.374 2.178 2.145.213.793.1 1.82-.29 2.547-.86 1.575-2.816 2.726-3.989 2.346-.536-.179-1.25-.994-1.642-1.855C9.18 6.464 8.9 4.833 9.291 4.073c.592-1.15 2.715-1.575 4.48-.904ZM4.107 11.86c-2.838.916-4.513 3.598-4.022 6.48.48 2.86 3.173 4.994 6.033 4.77 2.033-.145 3.765-1.24 4.681-2.96.503-.96.681-1.676.681-2.815 0-2.045-.971-3.799-2.737-4.894-1.24-.782-3.25-1.028-4.636-.58Zm2.436 1.799c2.737.447 4.222 2.737 3.15 4.882-.436.86-1.352 1.732-2.29 2.179-.637.29-.838.335-1.43.29-1.028-.067-1.486-.48-2.045-1.877-.67-1.642-.95-3.608-.614-4.245.413-.771 1.117-1.162 2.413-1.33.067 0 .424.045.816.101zm9.842-1.743c-3.34 1.173-4.837 4.882-3.273 8.077.435.894 1.463 1.944 2.38 2.425 2.356 1.24 4.904.871 6.78-.995 3.05-3.016 1.9-8.077-2.178-9.507-1.039-.368-2.67-.368-3.709 0zm3.419 1.978c1.184.38 2.368 1.485 2.636 2.48.179.659.078 1.609-.223 2.234-.548 1.129-1.91 2.145-3.251 2.413-1.81.358-2.737-.882-3.15-4.19-.247-1.999.3-2.915 1.91-3.16.67-.101 1.25-.046 2.078.223z\"},\"child\":[]}]})(props);\n};\nexport function SiGhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.256 2.313c2.47.005 5.116 2.008 5.898 2.962l.244.3c1.64 1.994 3.569 4.34 3.569 6.966 0 3.719-2.98 5.808-6.158 7.508-1.433.766-2.98 1.508-4.748 1.508-4.543 0-8.366-3.569-8.366-8.112 0-.706.17-1.425.342-2.15.122-.515.244-1.033.307-1.549.548-4.539 2.967-6.795 8.422-7.408a4.29 4.29 0 01.49-.026Z\"},\"child\":[]}]})(props);\n};\nexport function SiGhostery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.058 19.93c-1.01-2.29-1.185-4.228-1.212-4.99V8.67C20.846 3.882 16.886 0 12 0S3.15 3.882 3.15 8.671v6.36c-.037.82-.236 2.7-1.207 4.899-1.306 2.955-.226 2.603.742 2.36.968-.242 3.13-1.192 3.805-.022.675 1.17 1.238 2.184 2.814 1.523 1.576-.663 2.318-.883 2.543-.883h.306c.225 0 .968.22 2.543.882 1.576.662 2.14-.353 2.814-1.522.676-1.17 2.837-.22 3.805.022.968.243 2.048.595.743-2.36M9.268 4.728c.953 0 1.725 1.198 1.725 2.676 0 1.478-.772 2.677-1.725 2.677-.953 0-1.726-1.198-1.726-2.677 0-1.478.773-2.676 1.726-2.676m2.73 10.697c-2.1 0-3.867-2.025-4.4-4.279 1.029 1.387 2.617 2.277 4.4 2.277 1.784 0 3.372-.89 4.401-2.277-.533 2.254-2.3 4.28-4.4 4.28m2.73-5.345c-.953 0-1.725-1.198-1.725-2.677 0-1.478.772-2.676 1.726-2.676.953 0 1.725 1.198 1.725 2.676 0 1.478-.772 2.677-1.725 2.677Z\"},\"child\":[]}]})(props);\n};\nexport function SiGimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.848 1.636c-.106-.016-.228.107-.324.397-.157.47-1.073 3.203-5.504 4.326.596.512.976 1.242.976 2.059 0 1.547-1.344 2.8-3 2.8-1.655 0-2.997-1.254-2.998-2.8 0-.603.208-1.158.555-1.616-3.135-.322-4.49-3.123-4.49-3.123l-.096 4.163c-.025.564-.009 1.111-.27 1.636a3.335 2.365 54.527 0 0-.05-.072 3.335 2.365 54.527 0 0-2.849-1.654 3.335 2.365 54.527 0 0-1.013.334 3.335 2.365 54.527 0 0 .029 4.095 3.335 2.365 54.527 0 0 3.291 1.59c2.997 2.22 8.482 4.148 12.231 1.885l-2.025-1.629c-1.064.345-2.604.34-4.397-.295 2.9.582 4.47-.053 5.334-.722-.228-.296-.71-.526-.71-.526s.563.107.93.496c.147.155.198.387.218.653.553.298 1.183.656 1.875 1.062 2.06-2.06 3.253-5.933 2.52-12.617-.035-.269-.127-.425-.233-.442zM6.855 7.096c1.051-.001 1.903.795 1.903 1.777 0 .98-.853 1.776-1.903 1.775-1.05 0-1.9-.795-1.9-1.775 0-.981.85-1.777 1.9-1.778zm5.776.482a1.325 1.325 0 1 0-.002 2.65 1.325 1.325 0 0 0 .002-2.65zm-10.942.639a.964.947 0 0 1 .002 0 .964.947 0 0 1 .021 0 .964.947 0 0 1 .965.949.964.947 0 0 1-.965.947.964.947 0 0 1-.962-.947.964.947 0 0 1 .94-.95zm5.559.123a.84.84 0 1 0 .02 1.68.84.84 0 0 0-.02-1.68zm8.26 4.964c-.043.053-.103.099-.156.147l.21.115c-.017-.1-.033-.21-.054-.262zm-.55.1l-.733.361.06.05.198.157 1.994 1.606.015.012a81.76 81.76 0 0 0 1.952 1.513.543.543 0 0 0-.008.127l.26-.04.103.152 2.317 1.472c-.12.41-.065.953.207 1.457.79 1.465 2.677 2.094 2.677 2.094-.771-1.968-.209-3.569-1.73-4.133-.242-.09-.453-.093-.629-.033l-2.047-1.895-.174-.052-.025-.262a.839.839 0 0 0-.12.059c-.306-.26-.687-.537-1.09-.815-1.364-.835-2.257-1.3-3.228-1.83z\"},\"child\":[]}]})(props);\n};\nexport function SiGin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.836 23.977c-2.0587-.1046-3.3698-.3594-4.468-.8684-.131-.0606-.1153-.0272-.278-.596-.2755-.9627-.5534-2.128-.7848-3.29-.135-.678-.1535-.7614-.4716-2.1176-.5104-2.1762-.6402-2.831-.804-4.0557-.1064-.7962.1223-1.3156.2754-.6255.6026 2.7148 1.124 4.6969 1.6753 6.3684.1901.5764.1752.5525.3347.537.1095-.0105.1097-.0096.0278.1811-.1118.2604-.0573.3991.2913.7409.2612.256.2638.2712.0407.2387-.174-.0254-.1655-.0434-.1023.2138.0295.1199.0809.3448.1141.4997.2644 1.2314.6094 1.8336 1.1121 1.941 1.4684.3139 3.6012.4502 5.4794.3503 2.1817-.116 2.7037-.1989 3.3812-.5368.4582-.2286.8528-.6569.611-.6632-.1781-.0047-.1948-.0464-.0437-.109.329-.1365.468-.2818.4411-.4612-.008-.0535.0021-.1094.0422-.2318.1232-.3762.1439-.6822.1123-1.664-.0146-.4543-.0136-.487.021-.6574.0912-.449.132-.7886.199-1.6564.0474-.6126.0627-.766.1118-1.1186.0491-.3532.0648-.5537.0929-1.1868.0549-1.2385.116-1.7317.2287-1.8443.1884-.1885.1874-.289-.006-.5633-.2205-.3129-.2198-.4765.003-.711.1085-.1142.1132-.242.0391-1.0652-.019-.2114-.0394-.5284-.0452-.7045-.0073-.217-.0169-.3202-.0297-.3202-.041 0-.306.2264-.8894.76-.6635.6068-.8368.75-1.2089.9984-.7674.5123-1.5042.7633-2.7787.9462-1.2864.1847-2.8008.1411-3.7922-.1092-.6681-.1686-1.055-.3507-1.8085-.8512-.7058-.4688-.6674-1.2277.079-1.5624.3362-.1507.076-.3149-.5986-.3778-.5074-.0474-.2495-.1461.3996-.153.7887-.0083 1.349-.2884 2.0736-1.0363.3034-.3131.374-.3746.7782-.677.6428-.4808.8696-.6895.972-.8947.0776-.155.0733-.3082-.0094-.3397-.0271-.0103-.0404-.029-.0404-.0566 0-.0517.1571-.0442-2.5615-.122-2.8682-.0822-5.0395-.2118-6.1476-.367-.2164-.0304-.1133.1615.1509.2806.0836.0377.0914.0714.0198.0852-.1952.0377-.1844.01-.1284.3283.2173 1.235.5548 1.5418 1.2152 1.1047.1309-.0866.1765-.1027.4961-.1753.7-.1589 1.4556-.2464 2.5838-.2993 1.1633-.0545 1.2892-.0588 1.3032-.0448.0305.0304-.5599.1101-1.5935.215-1.07.1086-1.4287.1577-1.926.2638-.1342.0286-.2802.0521-.3245.0522-.2895.0008-.7114.2931-.8644.5988-.1926.3851-.0152.6153.5107.6627.1761.0159.6063.0923.6826.1213.0658.025.0525.0663-.0337.1044-.0932.0413-.093.039-.0085.0922.1688.1066.0969.0998-.37-.0351-.7785-.225-.9368-.2379-.723-.0588.1015.085.0972.1096-.0132.076-.1712-.0519-.1676-.0865-.0636.6052.1332.8858.031.8419-.1545-.0665-.2554-1.25-.6686-2.3144-.484-1.2466.04.2318.0853.4146.2197.888.1811.638.2872 1.2493.2237 1.2885-.0297.0184-.1904-.4844-.3028-.947-.124-.5102-.1767-.8005-.4328-2.3821-.1298-.802-.2425-1.3464-.378-1.8265-.0773-.2736-.0497-.403.128-.6008.3644-.4052 1.2746-.6528 1.2746-.3466 0 .147-.187.2458-.6436.3402-.5204.1076-.5632.1751-.2897.4578.2486.2569 1.8142.4808 3.7254.5327.3663.01.9119.0259 1.2124.0354 2.1339.0674 4.3877.0663 4.5184-.0022.015-.0079.0837-.105.1527-.2158.2825-.454.552-.795.9445-1.1954.2782-.2838.2865-.2942.2417-.3055-.132-.033-.1427-.5621-.0127-.6282.2383-.121.3542-.2918.7283-1.0725.198-.4133.3093-.5955.4777-.7825.1457-.1618.2569-.385.421-.8452.1614-.4524.2639-.6635.3799-.7823.223-.2285.2324-.103.0363.4903-.162.49-.7111 1.686-1.1268 2.4542-.355.656-.307.8451.1881.7427.0883-.0182.1706-.024.2462-.017.1306.0119.2723-.0174.6213-.1284.2892-.092.3264-.0769.201.0818-.0891.1128-.0887.1142.053.1799.1405.065.1301.0783-.0611.0783-.265 0-.4498.1059-.4766.2732-.0118.074-.0118.074-.1226-.0473-.3058-.335-.6452-.2808-.851.136-.072.1458-.1856.2528-.2684.2528-.0513 0-.0393-.0339.082-.232.293-.4784.2985-.5618.028-.4245-.308.1563-.7837.8261-.803 1.1308-.017.2655.2956.4083.5327.2434.9017-.627 1.348-.8748.9794-.5438-.0765.0687-.159.148-.1832.1762-.1744.2028-.3106.2933-.5656.3757-.8493.2745-.8493.6558 0 .6355.2265-.0055.4225-.0022.4774.0079.412.0756 2.2334-.2378 3.1616-.544.5878-.1938.6844-.4293.3229-.7867-.4647-.4592-.959-.3684-.6466.1189.1936.302-.3882.6232-1.3705.7565-.4425.06-.6113.0898-.7738.1363-.1108.0318-.4379.0719-.704.0863-.3523.019-.4642-.0274-.1925-.08.4158-.0804.5822-.105 1.0783-.1598 1.3303-.1468 1.7592-.3548 1.7627-.8548.0019-.2777-.2227-.3198-.8506-.1598-.201.0513-.2093.0324-.0248-.0564.2821-.1358.2599-.2519-.0717-.374-.1107-.0408-.1107-.0408.0516-.0538.7422-.0595 1.1048-.3546.7593-.6182-.0677-.0516-.0657-.0685.01-.0837.029-.0058.086-.0344.1266-.0635.1634-.1174.2997.246.1556.4144-.198.2313-.0359.5312.357.6602.403.1323.5887-.0506.4222-.4158-.03-.0657-.089-.2578-.131-.4269-.2398-.9631-.7595-2.0407-.9843-2.0407-.0216 0-.036-.0196-.0475-.064-.2147-.8343-.2878-.9893-.5348-1.1333-.4195-.2445-.551-.6687-.1636-.5275.8873.3236 1.8223 1.4494 2.5325 3.0495.5654 1.274.6932 3.168.3239 4.8039-.203.8994-.363 2.6656-.5462 6.0301-.0749 1.3745-.1492 2.3884-.2385 3.2532-.0223.216-.0453.4696-.051.5635-.0438.708-.2035 2.0275-.3607 2.98-.033.1995-.0473.3696-.0585.6915-.0422 1.2204-.4315 1.8227-1.2581 1.9468a2.7189 2.7189 0 0 0-.325.075c-1.0801.3317-2.166.471-4.3425.557-.728.0288-.7087.0288-1.3064-.0016zm.2615-.2356c.0474-.0474-.2411-.0896-.8847-.1297-.1644-.0102-.3527-.026-.4184-.0352-.4177-.058-1.1698-.1029-1.1698-.0699 0 .1276 2.3564.3514 2.473.2348zm-4.0952-.8634c0-.0406-.3364-1.3698-.4044-1.5977-.1252-.42-.3766-1.0159-.4231-1.003-.0697.0192.0988.9043.2754 1.447.1744.5358.5521 1.3252.5521 1.1537zm-.5246-.1305c.0433-.2745-.0418-.6732-.3351-1.5704-.176-.5382-.2341-.7414-.276-.9641-.0441-.2356-.0402-.2248-.0799-.2188-.1655.0246-.151.285.054.9752.1484.4996.1654.5673.1879.7506.064.5203.4057 1.3021.449 1.0275zm-.7904-3.2816c-.0001-.3436-.0485-.6234-.2044-1.1826-.1744-.6253-.2435-.896-.2825-1.1058-.0745-.4017-.2292-.621-.1807-.2564.026.1948.215 1.1792.2665 1.3878.0233.094.0618.3268.0857.5174.0662.5282.1018.6734.197.8049.0977.1347.1185.1055.1184-.1653zm5.7823-8.2201c.047-.0521.0384-.1659-.0348-.4592-.1-.3999-.0996-.5862.0013-.7401.1707-.2607-.8164-.3768-1.398-.1645-.53.1934-.648.5174-.3192.877.1613.1766-.0747.272-.2973.1203-.3041-.2074-.2766-.8612.0363-.8612.0362 0 .106-.073.106-.111 0-.0561-.0674-.1035-.211-.148-.1984-.0617-.1974-.0741.0085-.108.4832-.0793.939-.4219 1.6589-1.2467.935-1.0714 1.3075-1.3927.8116-.7002-.2504.3497-.4599.592-.8783 1.016-.7501.7603-.8434.9222-.5313.9222.472 0 .6826-.1937 1.1142-1.0246.4076-.7848.6084-.9866.8963-.901.1217.0362.121.0386-.2186.8754-.314.7736-.2997.986.0543.8106.1767-.0875.17-.0762.2403-.4093.173-.8206.5299-1.9468.617-1.9468.1153 0 .0463.5054-.1424 1.0417-.2842.8081-.298 1.0686-.0684 1.2959.2501.2476.5305.202.7474-.1216.0793-.1184.1145-.1023.1763.0809.046.1363.0536.1408.244.1434.2617.0037.6195-.091.6392-.169.0064-.0254.0206-.0402.035-.0364.1408.0369.1388-.1065-.0025-.1673-.0918-.0395-.0998-.0645-.032-.0992.1499-.0764.3061.038.3061.2243 0 .0784.0186.0885.205.11 1.2175.1412 1.9496-.176 2.364-1.024.0706-.1445.205-.4086.299-.587.3348-.6367.4726-1.1026.4121-1.3938-.0352-.1699-.0169-.164-.3792-.12-1.8582.2256-3.5292.3794-4.933.454-.2677.0141-.5553.0298-.639.0348-.1525.009-.1525.009-.4526.3035-.4846.4754-.9042.8606-1.7005 1.5606-.2254.1982-.4329.3853-.461.4158-.0804.0868-.3442.2954-.7344.5806-.815.5957-1.2381 1.0543-1.0973 1.189.1613.1545 1.371.3751 2.378.4339.1692.0099.4035.029.521.0426.3097.036.319.0367.4797.0397.1296.0024.1506-.0015.1793-.0333zm4.9335-2.6883c-.6352-.103-1.2474-.4616-1.8828-1.103-.419-.4228-.3704-.4557.2256-.1524.4367.2222.5944.2777.7778.2734.0704-.0017.1626-.0037.2049-.0045.1903-.0038.9252.4017.8551.4718-.024.024-.159-.0192-.4196-.1342-.8347-.3685-1.3685-.3711-.8026-.0041.5953.3862 1.2494.571 1.64.4632.146-.0402.186-.0393.1923.0044.0242.1694-.3493.257-.7907.1854zm-3.5168 2.6903c.0746-.0187.3623-.0728.6394-.1204 1.31-.2247 1.6092-.3389 2.4225-.9243.552-.3972.6191-.7887.1254-.731-.5517.0644-.6125.1133-.7745.6229-.1885.5932-.272.665-.7748.6656-.5271.0006-.7398-.181-.889-.7596-.0528-.2045-.067-.2222-.2166-.2715-.5559-.1833-.8321.1858-.8322 1.112 0 .1586-.0097.1672-.1927.1722-.2981.0081-.3303-.091-.1542-.4747.2334-.509.2423-.6089.0614-.6855-.392-.1659-.7831.2546-.7091.7622.0663.4551.3933.6953.8023.5892.116-.0301.116-.0301.2182.0226.123.0634.1069.0622.274.0203zm1.822-.7768c.2327-.0208.3877-.1848.3877-.4102 0-.3258-.2825-.4682-.6292-.317-.1015.0442-.1223.0476-.2064.034-.3571-.0575-.5023.2388-.2548.52.1594.1812.2799.2108.7026.1732zm-3.2106-.9502c.373-.1904.8327-1.1638.6843-1.4494-.0437-.0844-.0598-.0769-.158.0736-.048.0734-.1677.2402-.266.3708-.458.6076-.5777.8672-.4559.989.0617.0617.0998.0648.1956.016zM10.302 21.2613c-.1018-.013-.4553-.0772-.7855-.1426-.6434-.1273-.9326-.1714-1.1234-.1714-.1763 0-.2162-.0341-.1669-.1425.0536-.1175.2172-.105.7572.0579.3561.1074.6022.167.7437.1803.061.0057.1494.021.1964.0338.1346.037 1.2056.1779 1.3516.1779.0044 0 .0033.0077-.0025.017-.0158.0257-.751.0177-.9706-.0104zm1.7587-.7484c-.2231-.1093-.2921-.2537-.3514-.7354-.0621-.5045-.1591-.66-.4529-.7263a4.0909 4.0909 0 0 1-.1152-.0274c-.0404-.011-.0716-.173-.0565-.2939.034-.2724.2048-.4916.7172-.9203.1127-.0943.2348-.2026.2713-.2405.3605-.3747 1.5306.1053 1.9894.816.3258.5047.322.6185-.028.8492-.4315.2844-.4933.3657-.4846.6372.003.0892.0065.2044.008.2561.0095.3235-.1771.4074-.6452.29-.3964-.0994-.5232-.0838-.6829.0842-.0597.0628-.0632.063-.1692.0111zm1.1381-.2254c.31-.1586.3749-.5512.1474-.892-.244-.3652-.5598-.2393-.5485.2187.0139.5637.1544.7995.4011.6733zm-.8657-.0823c.245-.1105.326-.537.1665-.8751-.1556-.3297-.4463-.1355-.5016.335a3.7214 3.7214 0 0 1-.033.2215c-.0671.345.062.4567.3681.3186zm-.5397-1.1367c.2714-.1816.542-.19 1.3747-.043.4775.0845.8627.0285.8621-.1253-.0023-.5725-.3483-.7422-1.2293-.603-.5545.0876-.7589.0879-1.0083.0016-.2747-.095-.6015.1652-.5532.4404.045.2565.3721.451.554.3293zm-2.0236-.8882c-1.242-.2611-2.0297-1.7477-1.3788-2.6022.1995-.2618.2624-.1704.1232.1789-.5807 1.4577 1.2303 2.8224 2.6353 1.9858 1.027-.6115 1.0144-2.1067-.0221-2.619a3.1056 3.1056 0 0 1-.1964-.1114c-.4015-.247-.8534-.2309-1.7165.0612-.504.1705-.4886.1706-.3296-.0011.6047-.6532 1.8983-.6335 2.6865.041 1.4324 1.2255.1142 3.4695-1.8016 3.0668zm5.0377-.1125c-1.9591-.3-2.6203-2.1867-1.1535-3.2915 1.3107-.9873 3.3222-.0095 3.2577 1.5836-.0398.9811-1.1207 1.8585-2.1042 1.708zm.4013-.3203c1.5031-.02 2.0059-1.9306.735-2.7936-.7982-.5421-2.0927-.295-2.5552.4876-.542.9171.0474 2.1467 1.1115 2.3185.0282.0045.1473.0043.2647-.0006.1174-.005.3172-.0103.444-.012zm-1.504-.8356c-.4402-.1245-.5095-.6544-.1381-1.0566.3355-.3633.817-.2062 1.0182.3322.0892.2387.058.2748-.2225.2581-.1793-.0106-.2639.0025-.2635.041 0 .0067.0603.0566.134.1109.2197.162.2247.2153.0267.2836-.144.0497-.4316.0657-.5548.0308zm-4.6535.1072c-.4663-.0444-.6306-.2972-.4418-.6793.224-.453.732-.5855 1.0146-.2645.4276.4858.1102 1.0088-.5728.9438zM5.2609 4.894c-.0061-.01.0088-.0465.0331-.0811.0243-.0347.0641-.0913.0885-.1258.0243-.0345.0483-.0939.0534-.132.0058-.043.0197-.0722.037-.0775.0706-.0214.6893-.1486.9498-.1953.6694-.12.851-.132 2.3652-.156 2.81-.0445 3.8851-.08 4.9246-.1626.3576-.0284.3387-.0321.4233.0843.1331.1833.0163.311-.3377.3693-.4252.0699-2.1378.0258-2.5939-.0668-.4837-.0983-.636-.0931-.7755.0264-.0812.0694-.0633.0696-.2775-.0018-.27-.09-.507-.1186-.8766-.106-.3002.0103-.417.0236-1.1357.129-.1925.0283-.4615.0599-.5976.0701-.4723.0356-1.013.1356-1.7562.325-.4978.1267-.507.1285-.5242.1008Zm11.997-1.2081c0-.0854.1102-.209.595-.6678.2691-.2547.4638-.4815.4638-.5401 0-.0556.0477-.0598.0665-.006.1044.2996-.1068.597-.6983.9833a31.133 31.133 0 0 0-.3207.2115c-.0847.0578-.1062.0617-.1062.019z\"},\"child\":[]}]})(props);\n};\nexport function SiGiphy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.666 0v24h18.668V8.666l-2.668 2.668v10H5.334V2.668H10L12.666 0zm10.668 0v8h8V5.334h-2.668V2.668H16V0\"},\"child\":[]}]})(props);\n};\nexport function SiGit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.546 10.93L13.067.452c-.604-.603-1.582-.603-2.188 0L8.708 2.627l2.76 2.76c.645-.215 1.379-.07 1.889.441.516.515.658 1.258.438 1.9l2.658 2.66c.645-.223 1.387-.078 1.9.435.721.72.721 1.884 0 2.604-.719.719-1.881.719-2.6 0-.539-.541-.674-1.337-.404-1.996L12.86 8.955v6.525c.176.086.342.203.488.348.713.721.713 1.883 0 2.6-.719.721-1.889.721-2.609 0-.719-.719-.719-1.879 0-2.598.182-.18.387-.316.605-.406V8.835c-.217-.091-.424-.222-.6-.401-.545-.545-.676-1.342-.396-2.009L7.636 3.7.45 10.881c-.6.605-.6 1.584 0 2.189l10.48 10.477c.604.604 1.582.604 2.186 0l10.43-10.43c.605-.603.605-1.582 0-2.187\"},\"child\":[]}]})(props);\n};\nexport function SiGitbook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.513 1.097c-.645 0-1.233.34-2.407 1.017L3.675 5.82A7.233 7.233 0 0 0 0 12.063v.236a7.233 7.233 0 0 0 3.667 6.238L7.69 20.86c2.354 1.36 3.531 2.042 4.824 2.042 1.292.001 2.47-.678 4.825-2.038l4.251-2.453c1.177-.68 1.764-1.02 2.087-1.579.323-.56.324-1.24.323-2.6v-2.63a1.04 1.04 0 0 0-1.558-.903l-8.728 5.024c-.587.337-.88.507-1.201.507-.323 0-.616-.168-1.204-.506l-5.904-3.393c-.297-.171-.446-.256-.565-.271a.603.603 0 0 0-.634.368c-.045.111-.045.282-.043.625.002.252 0 .378.025.494.053.259.189.493.387.667.089.077.198.14.416.266l6.315 3.65c.589.34.884.51 1.207.51.324 0 .617-.17 1.206-.509l7.74-4.469c.202-.116.302-.172.377-.13.075.044.075.16.075.392v1.193c0 .34.001.51-.08.649-.08.14-.227.224-.522.394l-6.382 3.685c-1.178.68-1.767 1.02-2.413 1.02-.646 0-1.236-.34-2.412-1.022l-5.97-3.452-.043-.025a4.106 4.106 0 0 1-2.031-3.52V11.7c0-.801.427-1.541 1.12-1.944a1.979 1.979 0 0 1 1.982-.001l4.946 2.858c1.174.679 1.762 1.019 2.407 1.02.645 0 1.233-.34 2.41-1.017l7.482-4.306a1.091 1.091 0 0 0 0-1.891L14.92 2.11c-1.175-.675-1.762-1.013-2.406-1.013Z\"},\"child\":[]}]})(props);\n};\nexport function SiGitconnected (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.734 5.42C2.865 5.42 0 8.405 0 12.035c0 3.607 2.842 6.545 6.688 6.545 3.859 0 6.708-2.936 6.755-6.58l.002-.08c.03-2.19 1.504-3.967 3.797-3.967 2.268 0 3.87 1.838 3.87 4.082 0 2.222-1.483 4.037-3.823 4.037-1.334 0-2.43-.657-3.107-1.656a7.557 7.557 0 0 1-1.41 2.53c1.163 1.013 2.71 1.634 4.47 1.634 3.893 0 6.758-2.986 6.758-6.592 0-3.63-2.841-6.568-6.71-6.568-3.828 0-6.672 2.922-6.733 6.5-.015.04 0 .101 0 .115 0 2.222-1.482 4.037-3.823 4.037-2.244 0-3.845-1.84-3.845-4.084 0-2.221 1.482-4.035 3.799-4.035 1.232 0 2.254.554 2.943 1.41l1.385-2.449A6.75 6.75 0 0 0 6.734 5.42Z\"},\"child\":[]}]})(props);\n};\nexport function SiGitea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.209 4.603c-.247 0-.525.02-.84.088-.333.07-1.28.283-2.054 1.027C-.403 7.25.035 9.685.089 10.052c.065.446.263 1.687 1.21 2.768 1.749 2.141 5.513 2.092 5.513 2.092s.462 1.103 1.168 2.119c.955 1.263 1.936 2.248 2.89 2.367 2.406 0 7.212-.004 7.212-.004s.458.004 1.08-.394c.535-.324 1.013-.893 1.013-.893s.492-.527 1.18-1.73c.21-.37.385-.729.538-1.068 0 0 2.107-4.471 2.107-8.823-.042-1.318-.367-1.55-.443-1.627-.156-.156-.366-.153-.366-.153s-4.475.252-6.792.306c-.508.011-1.012.023-1.512.027v4.474l-.634-.301c0-1.39-.004-4.17-.004-4.17-1.107.016-3.405-.084-3.405-.084s-5.399-.27-5.987-.324c-.187-.011-.401-.032-.648-.032zm.354 1.832h.111s.271 2.269.6 3.597C5.549 11.147 6.22 13 6.22 13s-.996-.119-1.641-.348c-.99-.324-1.409-.714-1.409-.714s-.73-.511-1.096-1.52C1.444 8.73 2.021 7.7 2.021 7.7s.32-.859 1.47-1.145c.395-.106.863-.12 1.072-.12zm8.33 2.554c.26.003.509.127.509.127l.868.422-.529 1.075a.686.686 0 0 0-.614.359.685.685 0 0 0 .072.756l-.939 1.924a.69.69 0 0 0-.66.527.687.687 0 0 0 .347.763.686.686 0 0 0 .867-.206.688.688 0 0 0-.069-.882l.916-1.874a.667.667 0 0 0 .237-.02.657.657 0 0 0 .271-.137 8.826 8.826 0 0 1 1.016.512.761.761 0 0 1 .286.282c.073.21-.073.569-.073.569-.087.29-.702 1.55-.702 1.55a.692.692 0 0 0-.676.477.681.681 0 1 0 1.157-.252c.073-.141.141-.282.214-.431.19-.397.515-1.16.515-1.16.035-.066.218-.394.103-.814-.095-.435-.48-.638-.48-.638-.467-.301-1.116-.58-1.116-.58s0-.156-.042-.27a.688.688 0 0 0-.148-.241l.516-1.062 2.89 1.401s.48.218.583.619c.073.282-.019.534-.069.657-.24.587-2.1 4.317-2.1 4.317s-.232.554-.748.588a1.065 1.065 0 0 1-.393-.045l-.202-.08-4.31-2.1s-.417-.218-.49-.596c-.083-.31.104-.691.104-.691l2.073-4.272s.183-.37.466-.497a.855.855 0 0 1 .35-.077z\"},\"child\":[]}]})(props);\n};\nexport function SiGitee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.984 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.016 0zm6.09 5.333c.328 0 .593.266.592.593v1.482a.594.594 0 0 1-.593.592H9.777c-.982 0-1.778.796-1.778 1.778v5.63c0 .327.266.592.593.592h5.63c.982 0 1.778-.796 1.778-1.778v-.296a.593.593 0 0 0-.592-.593h-4.15a.592.592 0 0 1-.592-.592v-1.482a.593.593 0 0 1 .593-.592h6.815c.327 0 .593.265.593.592v3.408a4 4 0 0 1-4 4H5.926a.593.593 0 0 1-.593-.593V9.778a4.444 4.444 0 0 1 4.445-4.444h8.296Z\"},\"child\":[]}]})(props);\n};\nexport function SiGitextensions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.504 0l-4.631 4.875 2.533.004c0 2.604-1.327 4.58-3.32 6.16l-6.393 5.065c-2.559 2.027-3.859 4.392-3.859 7.886.01-.009 4.283.026 4.283 0 0-1.91.73-3.581 2.223-4.793l6.723-5.455c2.57-2.085 4.514-4.86 4.517-8.867h2.586zM1.834 4.873c0 3.78 1.833 6.398 4.148 8.518l1.11.88 3.222-2.554-1.078-.858C7.43 9.22 6.117 7.383 6.117 4.873c-1.423-.004-2.856 0-4.283 0zm12.592 10.115l-3.178 2.58.992.787c1.82 1.593 3.166 3.33 3.166 5.635h4.166c-.009-3.633-1.788-6.1-4.066-8.144-.356-.28-.722-.572-1.08-.858Z\"},\"child\":[]}]})(props);\n};\nexport function SiGitforwindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.976.0003a1.541 1.541 0 0 0-1.0928.4526L8.707 2.6287l2.7604 2.7604c.6417-.2166 1.377-.0715 1.8882.4399.514.5145.6583 1.2563.4362 1.9l.9101.9102 3.2768-3.2764L13.0684.4529A1.5394 1.5394 0 0 0 11.976.0003ZM7.638 3.698 5.926 5.4101l4.9095 4.9095c.1535.1536.332.267.5217.3423V8.831a1.8198 1.8198 0 0 1-.6024-.4011c-.5441-.5437-.6749-1.3422-.3958-2.0104Zm10.916 2.24-3.2765 3.2764 1.1743 1.1747c.6436-.2217 1.3862-.0782 1.9001.4366.7185.7183.7185 1.8823 0 2.6008-.7186.7187-1.8823.7187-2.6012 0-.5402-.5407-.674-1.3344-.4003-2l-1.1427-1.1423-.588.588c-.6036.604-.6036 1.5829 0 2.1865l4.9935 4.993 4.9342-4.9342c.6035-.6038.6035-1.5829 0-2.1865zM5.34 5.9956.4528 10.8825c-.6037.604-.6037 1.5828 0 2.1864l4.8395 4.8396 4.8873-4.8873c.6035-.6038.6035-1.5828 0-2.1865zm7.5293 2.9497v1.4986c.0516-.04.1048-.077.1522-.1243l.611-.611zm-1.5121 4.2224c-.2317.072-.4514.1927-.6349.376-1.6323 1.6325-3.2647 3.2649-4.8971 4.8972l5.1065 5.1062c.6033.6035 1.582.6035 2.1861 0l4.8967-4.8968-5.1065-5.1065c-.012-.012-.0264-.0202-.0387-.0317v1.9618a1.854 1.854 0 0 1 .4863.3477c.7183.7182.7183 1.8819 0 2.6012-.7185.7182-1.883.7182-2.6008 0-.7184-.7193-.7184-1.883 0-2.6012a1.8406 1.8406 0 0 1 .6024-.4012z\"},\"child\":[]}]})(props);\n};\nexport function SiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"},\"child\":[]}]})(props);\n};\nexport function SiGithubactions (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.984 13.836a.5.5 0 0 1-.353-.146l-.745-.743a.5.5 0 1 1 .706-.708l.392.391 1.181-1.18a.5.5 0 0 1 .708.707l-1.535 1.533a.504.504 0 0 1-.354.146zm9.353-.147l1.534-1.532a.5.5 0 0 0-.707-.707l-1.181 1.18-.392-.391a.5.5 0 1 0-.706.708l.746.743a.497.497 0 0 0 .706-.001zM4.527 7.452l2.557-1.585A1 1 0 0 0 7.09 4.17L4.533 2.56A1 1 0 0 0 3 3.406v3.196a1.001 1.001 0 0 0 1.527.85zm2.03-2.436L4 6.602V3.406l2.557 1.61zM24 12.5c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3h-2.08a3.503 3.503 0 0 1-3.46 3 3.502 3.502 0 0 1-3.46-3h-.558c-.972 0-1.85-.399-2.482-1.042V17c0 1.654 1.346 3 3 3h.04c.244-1.693 1.7-3 3.46-3 1.93 0 3.5 1.57 3.5 3.5S13.43 24 11.5 24a3.502 3.502 0 0 1-3.46-3H8c-2.206 0-4-1.794-4-4V9.899A5.008 5.008 0 0 1 0 5c0-2.757 2.243-5 5-5s5 2.243 5 5a5.005 5.005 0 0 1-4.952 4.998A2.482 2.482 0 0 0 7.482 12h.558c.244-1.693 1.7-3 3.46-3a3.502 3.502 0 0 1 3.46 3h2.08a3.503 3.503 0 0 1 3.46-3c1.93 0 3.5 1.57 3.5 3.5zm-15 8c0 1.378 1.122 2.5 2.5 2.5s2.5-1.122 2.5-2.5-1.122-2.5-2.5-2.5S9 19.122 9 20.5zM5 9c2.206 0 4-1.794 4-4S7.206 1 5 1 1 2.794 1 5s1.794 4 4 4zm9 3.5c0-1.378-1.122-2.5-2.5-2.5S9 11.122 9 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm9 0c0-1.378-1.122-2.5-2.5-2.5S18 11.122 18 12.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5zm-13 8a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm2 0a.5.5 0 1 0 1 0 .5.5 0 0 0-1 0zm12 0c0 1.93-1.57 3.5-3.5 3.5a3.503 3.503 0 0 1-3.46-3.002c-.007.001-.013.005-.021.005l-.506.017h-.017a.5.5 0 0 1-.016-.999l.506-.017c.018-.002.035.006.052.007A3.503 3.503 0 0 1 20.5 17c1.93 0 3.5 1.57 3.5 3.5zm-1 0c0-1.378-1.122-2.5-2.5-2.5S18 19.122 18 20.5s1.122 2.5 2.5 2.5 2.5-1.122 2.5-2.5z\"},\"child\":[]}]})(props);\n};\nexport function SiGithubcopilot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.922 16.997C23.061 18.492 18.063 22.02 12 22.02 5.937 22.02.939 18.492.078 16.997A.641.641 0 0 1 0 16.741v-2.869a.883.883 0 0 1 .053-.22c.372-.935 1.347-2.292 2.605-2.656.167-.429.414-1.055.644-1.517a10.098 10.098 0 0 1-.052-1.086c0-1.331.282-2.499 1.132-3.368.397-.406.89-.717 1.474-.952C7.255 2.937 9.248 1.98 11.978 1.98c2.731 0 4.767.957 6.166 2.093.584.235 1.077.546 1.474.952.85.869 1.132 2.037 1.132 3.368 0 .368-.014.733-.052 1.086.23.462.477 1.088.644 1.517 1.258.364 2.233 1.721 2.605 2.656a.841.841 0 0 1 .053.22v2.869a.641.641 0 0 1-.078.256Zm-11.75-5.992h-.344a4.359 4.359 0 0 1-.355.508c-.77.947-1.918 1.492-3.508 1.492-1.725 0-2.989-.359-3.782-1.259a2.137 2.137 0 0 1-.085-.104L4 11.746v6.585c1.435.779 4.514 2.179 8 2.179 3.486 0 6.565-1.4 8-2.179v-6.585l-.098-.104s-.033.045-.085.104c-.793.9-2.057 1.259-3.782 1.259-1.59 0-2.738-.545-3.508-1.492a4.359 4.359 0 0 1-.355-.508Zm2.328 3.25c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm-5 0c.549 0 1 .451 1 1v2c0 .549-.451 1-1 1-.549 0-1-.451-1-1v-2c0-.549.451-1 1-1Zm3.313-6.185c.136 1.057.403 1.913.878 2.497.442.544 1.134.938 2.344.938 1.573 0 2.292-.337 2.657-.751.384-.435.558-1.15.558-2.361 0-1.14-.243-1.847-.705-2.319-.477-.488-1.319-.862-2.824-1.025-1.487-.161-2.192.138-2.533.529-.269.307-.437.808-.438 1.578v.021c0 .265.021.562.063.893Zm-1.626 0c.042-.331.063-.628.063-.894v-.02c-.001-.77-.169-1.271-.438-1.578-.341-.391-1.046-.69-2.533-.529-1.505.163-2.347.537-2.824 1.025-.462.472-.705 1.179-.705 2.319 0 1.211.175 1.926.558 2.361.365.414 1.084.751 2.657.751 1.21 0 1.902-.394 2.344-.938.475-.584.742-1.44.878-2.497Z\"},\"child\":[]}]})(props);\n};\nexport function SiGithubpages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.088 13.126h-.296V9.858h.998c.815 0 1.094.47 1.094.98s-.28.98-1.094.98h-.701v1.308zm0-1.582h.74a.642.642 0 0 0 .733-.705.642.642 0 0 0-.732-.706h-.741zm2.881-.37a1.913 1.913 0 0 0-.653.11v-.262a1.756 1.756 0 0 1 .653-.118c.654 0 .824.297.824.732v1.49h-.17l-.066-.174a1.143 1.143 0 0 1-.657.218.663.663 0 0 1-.763-.702c0-.37.205-.645.776-.68l.575-.035v-.122c0-.318-.113-.457-.519-.457zm-.078.85c-.31.03-.445.192-.445.445 0 .196.048.431.462.431a1.056 1.056 0 0 0 .58-.174v-.758zm1.86.493a.252.252 0 0 0-.083.16c0 .11.053.158.166.17l.74.088c.41.044.598.205.598.584 0 .532-.532.74-1.133.74-.61 0-.976-.178-.976-.657a.609.609 0 0 1 .449-.575v-.005a.321.321 0 0 1-.14-.287.392.392 0 0 1 .166-.297.746.746 0 0 1-.349-.714c0-.449.192-.82.85-.82a1.36 1.36 0 0 1 .349.044h.74v.165l-.365.105a.908.908 0 0 1 .126.505c0 .449-.192.82-.85.82a1.397 1.397 0 0 1-.288-.027zm.127.588c-.288.065-.532.2-.532.48 0 .322.244.413.693.413.435 0 .845-.109.845-.48 0-.221-.105-.309-.37-.34zm.727-1.381c0-.288-.056-.554-.566-.554-.51 0-.567.266-.567.554 0 .288.057.553.567.553.51 0 .566-.266.566-.554zm1.637-.82c.74 0 .828.506.828 1.133v.14h-1.438c.018.379.118.723.61.723a1.665 1.665 0 0 0 .719-.122v.261a1.765 1.765 0 0 1-.719.131c-.736 0-.915-.505-.915-1.133s.179-1.133.915-1.133zm-.61 1.024h1.133c0-.387-.022-.753-.523-.753-.506 0-.597.36-.61.753zm2.601-.052c.619.057.767.266.767.623 0 .336-.213.671-.876.671a2.147 2.147 0 0 1-.649-.109V12.8a1.924 1.924 0 0 0 .654.1c.453 0 .575-.192.575-.397 0-.2-.061-.34-.492-.374-.632-.057-.763-.28-.763-.58 0-.31.2-.645.815-.645a1.627 1.627 0 0 1 .627.11v.26a1.799 1.799 0 0 0-.631-.1c-.432 0-.523.162-.523.376 0 .19.078.29.496.326zm-20.787-.659H1.38a.05.05 0 0 0-.05.05v.522a.05.05 0 0 0 .05.05h.416v.649a1.267 1.267 0 0 1-.351.032c-.305 0-.731-.112-.731-1.048s.443-1.06.86-1.06a1.69 1.69 0 0 1 .614.094.05.05 0 0 0 .06-.05l.12-.504a.047.047 0 0 0-.02-.039 1.715 1.715 0 0 0-.903-.165C.73 9.748 0 10.05 0 11.508s.837 1.675 1.542 1.675a1.736 1.736 0 0 0 .938-.25.043.043 0 0 0 .016-.038v-1.628a.05.05 0 0 0-.05-.05zm5.545-1.294a.05.05 0 0 0-.05-.05H7.34a.05.05 0 0 0-.05.05v1.161h-.936V9.923a.05.05 0 0 0-.05-.05h-.6a.05.05 0 0 0-.05.05v3.145a.05.05 0 0 0 .05.05h.6a.05.05 0 0 0 .05-.05v-1.345h.937l-.002 1.345a.05.05 0 0 0 .05.05h.603a.05.05 0 0 0 .05-.05zm-4.389.412a.388.388 0 1 0-.387.392.39.39 0 0 0 .387-.392zm-.042 2.068v-1.451a.05.05 0 0 0-.05-.05h-.6a.057.057 0 0 0-.051.056v2.08c0 .06.038.079.087.079h.54c.06 0 .074-.03.074-.08zm6.764-1.497h-.597a.05.05 0 0 0-.05.05v1.542a.673.673 0 0 1-.367.11c-.215 0-.272-.097-.272-.307v-1.344a.05.05 0 0 0-.05-.05h-.604a.05.05 0 0 0-.05.05v1.446c0 .626.348.779.828.779a1.398 1.398 0 0 0 .71-.217 1.274 1.274 0 0 0 .022.128.052.052 0 0 0 .044.027l.385-.002a.05.05 0 0 0 .05-.05v-2.112a.05.05 0 0 0-.05-.05zm1.662-.07a1.121 1.121 0 0 0-.569.15V9.923a.05.05 0 0 0-.05-.05h-.602a.05.05 0 0 0-.05.05v3.145a.05.05 0 0 0 .05.05h.418a.05.05 0 0 0 .044-.027.973.973 0 0 0 .025-.144 1.08 1.08 0 0 0 .713.233c.548 0 .862-.278.862-1.248s-.502-1.095-.841-1.095zm-.235 1.771a.716.716 0 0 1-.347-.1v-.996a.793.793 0 0 1 .308-.1c.215-.019.422.046.422.558 0 .54-.094.647-.383.639zm-6.475-1.706h-.45l-.002-.595c0-.023-.011-.034-.037-.034h-.615c-.024 0-.036.01-.036.033v.615l-.33.08a.05.05 0 0 0-.035.048v.387a.05.05 0 0 0 .05.05h.315v.93c0 .692.484.76.812.76a1.375 1.375 0 0 0 .357-.06.046.046 0 0 0 .028-.044l.001-.426a.05.05 0 0 0-.05-.05c-.026 0-.094.01-.163.01-.221 0-.296-.102-.296-.236v-.884h.451a.05.05 0 0 0 .05-.05v-.484a.05.05 0 0 0-.05-.05z\"},\"child\":[]}]})(props);\n};\nexport function SiGithubsponsors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.625 1.499c-2.32 0-4.354 1.203-5.625 3.03-1.271-1.827-3.305-3.03-5.625-3.03C3.129 1.499 0 4.253 0 8.249c0 4.275 3.068 7.847 5.828 10.227a33.14 33.14 0 0 0 5.616 3.876l.028.017.008.003-.001.003c.163.085.342.126.521.125.179.001.358-.041.521-.125l-.001-.003.008-.003.028-.017a33.14 33.14 0 0 0 5.616-3.876C20.932 16.096 24 12.524 24 8.249c0-3.996-3.129-6.75-6.375-6.75zm-.919 15.275a30.766 30.766 0 0 1-4.703 3.316l-.004-.002-.004.002a30.955 30.955 0 0 1-4.703-3.316c-2.677-2.307-5.047-5.298-5.047-8.523 0-2.754 2.121-4.5 4.125-4.5 2.06 0 3.914 1.479 4.544 3.684.143.495.596.797 1.086.796.49.001.943-.302 1.085-.796.63-2.205 2.484-3.684 4.544-3.684 2.004 0 4.125 1.746 4.125 4.5 0 3.225-2.37 6.216-5.048 8.523z\"},\"child\":[]}]})(props);\n};\nexport function SiGitignoredotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.08 7.143c-.958.57-1.977 1.065-3.743 1.02-2.082 0-3.55 1.11-3.55 2.91 0 1.035.405 1.74 1.409 2.28-.57.36-.884.93-.884 1.516 0 .84.719 1.575 2.456 1.575h1.257c.794 0 1.153.33 1.153.795 0 .525-.344.915-1.841.915-1.513 0-1.812-.315-1.812-1.005H7.428c0 1.575.794 2.565 3.849 2.565 2.815 0 4.252-1.005 4.252-2.64 0-1.335-1.183-2.31-3.024-2.31h-1.318c-.764 0-.869-.24-.869-.48 0-.18.09-.36.255-.45.284.06.584.09.928.09 2.052 0 3.37-1.125 3.37-2.67 0-1.036-.54-1.62-1.543-2.056 1.003 0 1.737-.09 2.291-.315zm-3.683 2.565c.793 0 1.212.42 1.212 1.305 0 .915-.434 1.395-1.212 1.395-.734 0-1.213-.495-1.213-1.365 0-.825.464-1.335 1.213-1.335zm9.135-5.423c-.826 0-1.412.588-1.412 1.341 0 .77.586 1.342 1.412 1.342s1.396-.573 1.396-1.341c0-.754-.57-1.341-1.396-1.341zm1.426 4.19h-4.55v1.627h2.178v4.747h-2.253v1.627H24V14.85h-2.042zM3.933 13.933l1.02 1.02-2.477 2.476-.62-.62v-.8l2.077-2.076Zm-2.695-.219v2.477L0 14.952l1.238-1.238Zm2.257-.219-1.638 1.639v-2.039l.619-.619 1.019 1.02z\"},\"child\":[]}]})(props);\n};\nexport function SiGitkraken (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.225 6.252a.478.478 0 00-.923.171c0 .053.013.119.026.171 2.15 5.71-.751 12.077-6.46 14.226a10.9 10.9 0 01-2.426.607v-5.155c.33-.066.646-.158.962-.264v4.338c5.445-1.332 8.794-6.817 7.463-12.262a10.147 10.147 0 00-4.958-6.487.472.472 0 00-.646.185.472.472 0 00.185.646c4.443 2.452 6.051 8.056 3.6 12.499a9.13 9.13 0 01-4.681 4.1v-3.836a1.472 1.472 0 001.028-1.398c0-.527-.264-1.002-.725-1.266.343-3.309 1.859-2.439 1.859-3.493v-.62c0-1.582-3.665-6.737-5.38-6.856h-.316c-1.714.119-5.379 5.274-5.379 6.856v.62c0 1.054 1.503.184 1.859 3.493a1.461 1.461 0 00-.725 1.266c0 .646.422 1.2 1.028 1.398v3.836C3.91 17.168 1.59 11.83 3.448 7.11a9.24 9.24 0 014.1-4.68.479.479 0 00.185-.66.487.487 0 00-.422-.237.444.444 0 00-.224.065 10.142 10.142 0 00-3.982 13.791 10.147 10.147 0 006.487 4.958V16.02c.316.106.633.198.962.264v5.155C4.503 20.636.257 15.085 1.062 9.034a10.9 10.9 0 01.606-2.426.489.489 0 00-.277-.62.494.494 0 00-.62.277c-2.333 6.21.805 13.131 7.015 15.452 1.2.448 2.452.699 3.73.751v-6.09c.172.012.489.012.489.012s.316 0 .488-.013v6.078c6.631-.277 11.773-5.867 11.496-12.499a12.458 12.458 0 00-.764-3.704zm-9.019 6.842a.995.995 0 011.398 0 .995.995 0 010 1.398.995.995 0 01-1.398 0 .988.988 0 010-1.398zm-4.43 1.398a.979.979 0 01-1.384 0 .995.995 0 010-1.398.995.995 0 011.398 0 .983.983 0 01-.013 1.398z\"},\"child\":[]}]})(props);\n};\nexport function SiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.6004 9.5927-.0337-.0862L20.3.9814a.851.851 0 0 0-.3362-.405.8748.8748 0 0 0-.9997.0539.8748.8748 0 0 0-.29.4399l-2.2055 6.748H7.5375l-2.2057-6.748a.8573.8573 0 0 0-.29-.4412.8748.8748 0 0 0-.9997-.0537.8585.8585 0 0 0-.3362.4049L.4332 9.5015l-.0325.0862a6.0657 6.0657 0 0 0 2.0119 7.0105l.0113.0087.03.0213 4.976 3.7264 2.462 1.8633 1.4995 1.1321a1.0085 1.0085 0 0 0 1.2197 0l1.4995-1.1321 2.4619-1.8633 5.006-3.7489.0125-.01a6.0682 6.0682 0 0 0 2.0094-7.003z\"},\"child\":[]}]})(props);\n};\nexport function SiGitlfs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.967.304L0 7.215v9.68l11.79 6.802V14.02l11.96-6.91-4.383-2.53-11.959 6.905v3.887l-2.775-1.601V9.886l11.965-6.91zM24 7.545L12.29 14.31v9.387L24 16.929V7.547z\"},\"child\":[]}]})(props);\n};\nexport function SiGitpod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.033 1.195a2.387 2.387 0 0 1-.87 3.235l-6.98 4.04a.602.602 0 0 0-.3.522v6.342a.6.6 0 0 0 .3.521l5.524 3.199a.585.585 0 0 0 .586 0l5.527-3.199a.603.603 0 0 0 .299-.52V11.39l-4.969 2.838a2.326 2.326 0 0 1-3.19-.9 2.388 2.388 0 0 1 .89-3.23l7.108-4.062C20.123 4.8 22.8 6.384 22.8 8.901v6.914a4.524 4.524 0 0 1-2.245 3.919l-6.345 3.672a4.407 4.407 0 0 1-4.422 0l-6.344-3.672A4.524 4.524 0 0 1 1.2 15.816V8.51a4.524 4.524 0 0 1 2.245-3.918l7.393-4.28a2.326 2.326 0 0 1 3.195.883z\"},\"child\":[]}]})(props);\n};\nexport function SiGitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.501 4.001H10.5V24H8.501V4.001zm6.999 0V24h-2V4.001h2zM3.5 0h2.001v15H3.5V0zm15 4.001h2V15h-2V4.001z\"},\"child\":[]}]})(props);\n};\nexport function SiGlassdoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.1093.0006c-.0749-.0074-.1348.0522-.1348.127v3.451c0 .0673.0537.1194.121.127 2.619.172 4.6092.9501 4.6092 3.6814H13.086a.1343.1343 0 0 0-.1348.1347v8.9644c0 .0748.06.1347.1348.1347h10.0034c.0748 0 .1347-.0599.1347-.1347V7.342c0-2.2374-.7996-4.0558-2.4159-5.3279C19.3191.8469 17.0874.1428 14.1093.0006ZM.9107 7.387a.1342.1342 0 0 0-.1347.1347v8.9566c0 .0748.06.1347.1347.1347h5.6189c0 2.7313-1.9902 3.5094-4.6091 3.6815-.0674.0075-.1192.0596-.1192.127v3.451c0 .0747.06.1343.1348.1269 2.9781-.1422 5.2078-.8463 6.6969-2.0136 1.6163-1.272 2.4159-3.0905 2.4159-5.3278V7.5217a.1343.1343 0 0 0-.1348-.1347z\"},\"child\":[]}]})(props);\n};\nexport function SiGlide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.8 17.52a6.72 6.72 0 0 1 6.72-6.72H24L10.8 24ZM0 13.2 13.2 0v6.48a6.72 6.72 0 0 1-6.72 6.72z\"},\"child\":[]}]})(props);\n};\nexport function SiGlitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.146 2.393c-.618 0-1.794 1.61-1.794 1.61s-.453 0-1.803.07c-1.35.07-2.553.67-4.159 1.934C-.216 7.27.011 8.537.011 8.537s1.498.507 1.498.781c0 .275-1.311.6-1.311.6.845 1.081 3.467 2.09 4.13 2.09h.524c-1.086.214-2.136.804-3.462 1.847-1.606 1.264-1.379 2.53-1.379 2.53s1.498.507 1.498.781c0 .275-1.311.6-1.311.6.845 1.081 3.467 2.09 4.13 2.09.635 0 1.079.018 1.882-.132.06.134.686 1.461 1.965 1.736 1.347.29 2.092.062 2.092.062s.067-.595-.24-1.189c1.17.115 2.495.145 3.792-.052 3.603-.547 5.382-1.413 5.963-1.528.582-.115 3.904 1.476 4.106 1.104.203-.373-.73-1.188-.295-2.288.434-1.1-.534-1.827.003-2.705.537-.879.43-2.219.292-2.29-.295-.15-3.423 1.407-4.106 1.28-1.686-.311-1.377-.513-3.647-1.027-.907-.206-.781-.084-.982-.236-.134-.102-.265-.116-.455-.306 3.015-.543 4.552-1.275 5.084-1.38.582-.116 3.904 1.476 4.106 1.103.202-.372-.73-1.187-.295-2.288.434-1.1-.534-1.826.003-2.705.537-.878.43-2.218.292-2.289-.295-.151-3.423 1.407-4.106 1.28-1.686-.312-1.377-.513-3.647-1.027-.907-.206-.781-.084-.982-.236-.2-.152-.39-.106-.782-.74-.392-.635-4.916-1.61-5.225-1.61zM8.09 5.158l.04.002.111.006.397.02a286.477 286.477 0 0 1 1.59.088c.348.02.64.038.865.054.861.06 2.172.26 3.177.464 1.556.315 2.82.778 4.81 1.673l.677.305c.131.059.195.228.143.377-.052.15-.201.222-.333.163a663.41 663.41 0 0 0-.675-.305c-1.962-.881-3.198-1.335-4.711-1.64-.988-.2-2.28-.397-3.12-.457a76.718 76.718 0 0 0-.859-.054l-.384-.022c-.383-.021-.793-.044-1.203-.065l-.126-.006a6.79 6.79 0 0 1 .339 1.187c.02.11.035.216.045.32.034.336-.028.816-.162 1.42-.044.2-.096.409-.153.624a21.303 21.303 0 0 1-.29.995l-.02.064-.008.023c-.05.15-.198.226-.33.17-.133-.057-.2-.225-.15-.375l.007-.02a11.841 11.841 0 0 0 .089-.283c.072-.236.144-.487.212-.741.055-.208.104-.408.146-.599.12-.54.175-.966.15-1.213a3.436 3.436 0 0 0-.038-.269 5.829 5.829 0 0 0-.21-.796 8.1 8.1 0 0 0-.264-.685c-.091-.199.041-.435.238-.425zm-1.653.17c.066.002.13.033.179.091a4.758 4.758 0 0 1 .417.627c.224.404.374.816.415 1.221.023.231.008.49-.038.771-.044.27-.115.555-.206.845a8.216 8.216 0 0 1-.25.688c-.063.144-.216.203-.343.132-.127-.07-.18-.245-.117-.389l.018-.044a7.595 7.595 0 0 0 .21-.582c.082-.263.146-.518.185-.755a2.42 2.42 0 0 0 .032-.6c-.03-.306-.153-.64-.34-.978a4.176 4.176 0 0 0-.356-.538.319.319 0 0 1 .01-.41.239.239 0 0 1 .184-.08zm-3.042.97c.62 0 1.122.57 1.122 1.272 0 .704-.503 1.273-1.122 1.273-.555 0-1.016-.457-1.106-1.058.077.452.428.793.849.793.477 0 .864-.44.864-.981 0-.542-.387-.981-.864-.981-.474 0-.86.432-.865.968V7.57c0-.703.502-1.273 1.122-1.273zM2.88 7.622a.234.265 0 0 1 .233.266.234.265 0 0 1-.233.265.234.265 0 0 1-.234-.265.234.265 0 0 1 .234-.266zm3.329 4.253l.006.013-.115.005.109-.018zm1.88 1.13l.04.003.111.005.397.02a286.463 286.463 0 0 1 1.59.088c.348.02.64.039.865.055.861.06 2.172.26 3.177.463 1.556.315 2.82.778 4.81 1.673l.677.305c.131.06.195.228.143.377-.052.15-.201.222-.333.163a663.41 663.41 0 0 0-.675-.305c-1.962-.881-3.198-1.334-4.711-1.64-.988-.2-2.28-.397-3.12-.456a76.718 76.718 0 0 0-1.243-.077l-1.203-.065-.126-.006a6.79 6.79 0 0 1 .339 1.187c.02.11.035.217.045.32.034.336-.028.817-.162 1.42-.044.2-.096.41-.153.625a21.303 21.303 0 0 1-.31 1.058l-.008.023c-.05.15-.198.226-.33.17-.133-.057-.2-.224-.15-.375l.007-.02a11.841 11.841 0 0 0 .089-.283c.072-.236.144-.487.212-.74.055-.208.104-.409.146-.6.12-.539.175-.966.15-1.213a3.436 3.436 0 0 0-.038-.268 5.829 5.829 0 0 0-.21-.796 8.1 8.1 0 0 0-.264-.686c-.091-.198.041-.434.238-.424zm-1.653.17c.066.002.13.033.179.091a4.758 4.758 0 0 1 .417.627c.224.405.374.816.415 1.222.023.23.008.489-.038.77-.044.27-.115.555-.206.845a8.215 8.215 0 0 1-.25.688c-.063.144-.216.204-.343.133-.127-.071-.18-.246-.117-.39a6.083 6.083 0 0 0 .07-.173 7.59 7.59 0 0 0 .158-.453c.082-.262.146-.518.185-.755a2.42 2.42 0 0 0 .032-.6c-.03-.305-.153-.64-.34-.978a4.176 4.176 0 0 0-.356-.537.319.319 0 0 1 .01-.411.239.239 0 0 1 .184-.079zm-3.042.97c.62 0 1.122.57 1.122 1.273s-.503 1.273-1.122 1.273c-.555 0-1.016-.458-1.106-1.058.077.451.428.792.849.792.477 0 .864-.439.864-.98 0-.543-.387-.982-.864-.982-.474 0-.86.433-.865.969v-.014c0-.703.502-1.273 1.122-1.273zm-.514 1.326a.234.265 0 0 1 .233.265.234.265 0 0 1-.233.265.234.265 0 0 1-.234-.265.234.265 0 0 1 .234-.265z\"},\"child\":[]}]})(props);\n};\nexport function SiGlobus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9977 4.3904c-3.8248 0-7.1506 1.6949-8.7866 4.1598-.39.022-.78.041-1.1699.067-.582.041-1.32.56-1.427 1.2399l-.182 1.133c-.18 1.1249-.327 2.0109-.4259 3.1598-.033.403.065.78.262 1.01.263.312.781.386.986.41.7289.067 1.4489.126 2.1638.18 1.698 2.3018 4.9058 3.8597 8.5796 3.8597 3.6748 0 6.8837-1.5599 8.5816-3.8618.442-.034.88-.064 1.326-.104.624-.057 1.1989-.582 1.3379-1.222.18-.8209.24-1.1399.305-1.5498.025-.132.048-.282.072-.454 0-.025.017-.114.033-.229.041-.246.1-.64.149-.92l.18-1.207a1.091 1.091 0 0 0-.27-.9349c-.213-.246-.584-.419-.953-.443a159.7123 159.7123 0 0 0-1.961-.12c-1.6298-2.4728-4.9617-4.1727-8.7995-4.1727Zm0 .329c3.5938 0 6.7257 1.5479 8.3276 3.8218l-.428-.02c-.773-.98-1.8579-1.807-3.1558-2.398-.336.09-.73.173-1.148.238a13.5993 13.5993 0 0 1 1.101 2.034 50.9275 50.9275 0 0 0-.556-.014 14.0593 14.0593 0 0 0-1.096-1.945c-.8289.106-1.7728.163-2.7578.18v.294h-.433c-.02 0-.04.002-.059.004v-.299a24.8788 24.8788 0 0 1-2.8318-.172 14.0733 14.0733 0 0 0-1.09 1.932l-.28.006h-.106l.007-.108a1.5 1.5 0 0 0-.01-.255 13.9993 13.9993 0 0 1 .93-1.649 11.3495 11.3495 0 0 1-1.173-.238c-1.2829.59-2.3538 1.406-3.1198 2.373-.145.007-.29.012-.435.02 1.606-2.265 4.7298-3.8048 8.3136-3.8048Zm-.213.418c-.686.009-1.357.084-2.0029.207a11.6894 11.6894 0 0 0-.508.6479c.771.082 1.625.13 2.511.139zm.5 0v.9859a24.7418 24.7418 0 0 0 2.4399-.14c-.28-.378-.477-.608-.51-.649a12.1924 12.1924 0 0 0-1.9299-.197Zm-3.2648.37c-.337.091-.666.1889-.986.3039.213.04.443.074.681.107.107-.156.215-.295.305-.41Zm5.9667 0c.09.116.188.2559.294.4029.23-.033.453-.074.666-.107a9.3076 9.3076 0 0 0-.96-.295Zm-3.0039 1.9198h.476c.189 0 .36.09.475.247a.808.808 0 0 1 .14.607c-.024.205-.057.402-.082.608.501 0 1.01.01 1.5099.017.189 0 .362.09.477.246a.81.81 0 0 1 .138.598c-.213 1.6658-.468 3.3327-.722 5.0077-.066.435-.41.77-.78.779-.722.008-1.4529.01-2.1749.01a.603.603 0 0 1-.485-.246.813.813 0 0 1-.138-.592v-.008c.32-2.421.673-4.8438 1.01-7.2647.057 0 .106 0 .156-.008zm-5.5667.141c.18 0 .33.074.436.213.115.148.156.36.115.582-.402 2.3729-.746 4.7047-.984 7.0196-.214-.008-.42-.025-.633-.033a.65.65 0 0 1-.484-.256.777.777 0 0 1-.157-.575 92.7355 92.7355 0 0 1 1.043-6.9096c.214-.008.418-.025.631-.033.008 0 .017 0 .033-.008zm3.8838 1.329c.197 0 .362.082.477.23a.841.841 0 0 1 .13.607c-.237 1.6828-.475 3.3567-.697 5.0317-.057.435-.394.764-.763.755a97.9953 97.9953 0 0 1-2.1759-.074.658.658 0 0 1-.492-.261.779.779 0 0 1-.157-.575 119.0943 119.0943 0 0 1 .682-4.9018c.066-.427.427-.771.805-.78.73-.016 1.46-.024 2.1909-.032Zm5.5407.05c.213.009.427.008.64.016.198 0 .37.09.485.246.123.156.181.37.148.592a131.9136 131.9136 0 0 1-.625 4.2337l.871-.023c.238-1.437.45-2.8579.631-4.2618.05-.419.394-.737.7719-.72l.69.023a86.6198 86.6198 0 0 1-.846 5.5738c-.074.41-.426.755-.803.771-.73.033-1.4529.066-2.1839.09a.551.551 0 0 1-.476-.228.78.78 0 0 1-.123-.584c.303-1.921.582-3.8398.82-5.7287zm-11.6554.114a.62.62 0 0 1 .492.205.779.779 0 0 1 .123.5839c-.074.41-.14.82-.205 1.222-.304 0-.606.008-.91.008a.4.4 0 0 1-.387-.402c0-.025.033-.213.033-.213-.311.008-.69.01-1.002.017-.057.238-.4749 3.0448-.4919 3.3658.312.016.69.04 1.002.056.115-.64.165-.836.198-1.066-.041-.008-.141-.008-.182-.008-.205-.008-.384-.23-.352-.469.041-.2869.082-.5499.131-.8449H4.07c.213 0 .46.073.402.45-.09.731-.213 1.808-.361 2.6529-.082.435-.28.664-.73.672-.436 0-1.5689-.08-2.2249-.188-.197-.032-.41-.09-.541-.238-.132-.156-.172-.41-.172-.6 0-.508.27-2.6679.582-4.3178.074-.394.55-.738.935-.779a25.7508 25.7508 0 0 1 2.2249-.107Zm16.5482.04h.025c1.256.025 1.814.083 2.1419.124.19.024.402.18.508.312.123.148.181.287.157.4839-.05.353-.107.708-.165 1.069-.295 0-.59-.01-.886-.01a.416.416 0 0 1-.395-.393c0-.024 0-.057.008-.081.008-.042.025-.083.033-.124l-.894-.025c-.025.18-.131.771-.172 1.025h1.502c.189 0 .361.076.476.215.115.1479.164.2789.131.5329-.123 1.035-.237 1.56-.385 2.1019-.098.378-.468.754-.845.795-1.076.123-1.4049.133-2.2009.174a.541.541 0 0 1-.475-.207.68.68 0 0 1-.115-.557 66.0968 66.0968 0 0 0 .213-1.232c.303-.017.606-.025.91-.034.205-.008.379.165.379.387 0 .033 0 .057-.008.09 0 .041-.01.09-.018.13.296-.007.592-.024.887-.04.033-.18.14-.73.182-.984-.296.008-1.43.007-1.43.007-.197.008-.344-.032-.46-.18-.114-.147-.195-.262-.212-.492.099-.9189.31-2.0598.352-2.3878.049-.402.378-.7.756-.7zm-7.9376 1.2399c-.033.247-.484 3.3918-.533 3.7448h.918c.04-.255.486-3.3828.535-3.7438zm-3.3239.009c-.304 0-.616.007-.92.007-.041.255-.4769 3.3428-.5099 3.6958.304.008.609.007.912.015.025-.246.46-3.3568.518-3.7178zm-5.5497 5.4367.454.031c.732.822 1.691 1.521 2.8129 2.043a10.8995 10.8995 0 0 1 1.1909-.264 14.0933 14.0933 0 0 1-.9-1.613l.57.024c.29.575.6 1.09.879 1.508.862-.115 1.8469-.18 2.8648-.188v-1.25l.287.002.205-.002v1.25a23.8268 23.8268 0 0 1 2.7839.188c.279-.42.587-.935.876-1.51.19-.007.38-.01.5689-.018a14.5593 14.5593 0 0 1-.904 1.62c.443.073.838.162 1.183.269 1.137-.522 2.1089-1.226 2.8479-2.057l.443-.033c-1.664 2.093-4.6678 3.4938-8.0857 3.4938-3.4168 0-6.4137-1.4009-8.0776-3.4938zm7.8716 2.033c-.903.008-1.7729.056-2.5528.147.271.3769.485.6239.56.7149.6399.115 1.3039.189 1.9928.197zm.492 0v1.0589a12.0944 12.0944 0 0 0 1.914-.198 13.1164 13.1164 0 0 0 .5499-.705 24.7188 24.7188 0 0 0-2.4639-.156zm-3.6028.22c-.263.042-.5.085-.73.1339a9.1156 9.1156 0 0 0 1.076.336c-.099-.132-.223-.289-.346-.47Zm6.6247.01a24.5778 24.5778 0 0 1-.336.4599c.361-.09.714-.197 1.058-.328-.221-.05-.468-.09-.722-.131z\"},\"child\":[]}]})(props);\n};\nexport function SiGlovo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.012 0C7.847 0 4.459 3.388 4.459 7.553c0 1.576.494 3.106 1.412 4.4l.211.281 3.93 5.555s.47.775 1.529.775h.941c1.036 0 1.53-.775 1.53-.775l3.93-5.555.187-.28a7.43 7.43 0 0 0 1.412-4.401C19.564 3.388 16.176 0 12.011 0Zm0 3.693a3.837 3.837 0 0 1 3.836 3.836c0 .824-.26 1.578-.73 2.237l-.212.28-2.894 4.095-2.895-4.07-.21-.305a3.848 3.848 0 0 1-.731-2.237 3.837 3.837 0 0 1 3.836-3.836zm-2.117 18.26c0 1.106.893 2.023 2.07 2.047 1.223 0 2.117-.917 2.117-2.059 0-1.14-.894-2.058-2.094-2.058-1.2 0-2.093.917-2.093 2.07z\"},\"child\":[]}]})(props);\n};\nexport function SiGltf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.67095 16.2902c.41193-.4619.62962-1.137.62962-2.04625V9.1635h-.86992v.79483h-.0106c-.16494-.30784-.39379-.53863-.68739-.69268-.2936-.15378-.61593-.23081-.96674-.23081-.47975 0-.88443.0913-1.21375.27378-.32932.18253-.59444.41723-.79483.70357-.20066.28634-.34383.60143-.4298.94526-.086.34383-.12893.68041-.12893 1.00973 0 .37955.0519.73957.15573 1.0795.10382.3402.25955.6391.46719.89697.20763.25788.46551.46188.77334.61231.30783.15043.66953.2255 1.08509.2255.17192 0 .3455-.0215.52105-.0645.17555-.043.3402-.10549.49425-.1881.15378-.0823.29165-.18615.41361-.31145.12168-.12531.22187-.2738.30085-.4457h.0212v.36504c0 .31508-.0304.60142-.0913.8593-.0608.25787-.15935.47807-.29527.66059-.13619.18252-.3081.3257-.51547.4298-.20763.10381-.46188.15572-.76245.15572-.15043 0-.30812-.0162-.4725-.0483a1.88243 1.88242 0 0 1-.17331-.0427 10.19466 10.1946 0 0 1-.18168-.0659c-.006-.002-.0112-.005-.0168-.007v.001c-2.35966-.88162-3.91221-2.37947-3.91221-4.07937 0-2.7113 3.94961-4.90909 8.82187-4.90909 2.7141 0 5.14772.61817 6.76613 1.69097-1.7666-1.79758-4.93366-3.06072-8.55506-3.06127C4.49689 5.7195.00056 8.52997 0 11.99816c-.00028 2.36719 2.09453 4.42878 5.18819 5.49962 2.48134.0849 3.74085-.37564 4.48266-1.20759zm-.37454-3.6895c-.0608.25787-.15573.48867-.28466.69268-.12894.20402-.2989.36896-.51017.49399-.21126.1253-.46718.1881-.76804.1881-.30085 0-.55147-.0625-.75185-.1881-.20067-.12503-.3617-.28997-.48338-.49399-.12196-.204-.20764-.43118-.25788-.68207-.0502-.25062-.0751-.50124-.0751-.75186 0-.26485.0304-.5191.0913-.76273.0608-.24336.1574-.45826.28997-.64441.1323-.18615.30253-.33463.51017-.4457.20764-.11108.45826-.16662.75186-.16662.28634 0 .5297.0575.73035.17192.2004.11471.36337.26681.48868.45659.12531.18977.21658.40272.2738.6391.0572.23638.086.4764.086.71976.00027.25759-.0301.51547-.091.77334zm.79819 4.21305c-.52608.47752-1.46604 1.02285-2.7462 1.2369.85708.14904 1.7602.22858 2.69289.22885 3.6069.00084 6.76558-1.25838 8.53665-3.04341-1.61813 1.06638-4.042 1.6731-6.74632 1.6731-.64218-.00027-1.13364-.0229-1.73702-.0954zm5.5535-2.0814h-1.31058v-4.4154h-1.64436V9.1942h4.5996v1.12275h-1.64438v4.4154zm3.63732 0h-1.31086V9.1942H22.021v1.12275h-2.73559v1.03624h2.39455v1.12276h-2.39455zm-8.2224-6.91794h.91289v6.90202h-.91289zm12.0908 1.54222h-.20514v.53332h-.17916v-.53332h-.20513v-.15406h.58914zm.0801-.15406h.26373l.11833.45826h.002l.11833-.45826H24v.68738h-.16857v-.52188h-.002l-.14429.52188h-.13675l-.14457-.52188h-.002v.52188h-.16849v-.68738Z\"},\"child\":[]}]})(props);\n};\nexport function SiGmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z\"},\"child\":[]}]})(props);\n};\nexport function SiGmx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.904 11.571v1.501H5.46c-.075.845-.712 1.274-1.539 1.274-1.255 0-1.934-1.157-1.934-2.3 0-1.118.65-2.317 1.906-2.317.77 0 1.321.468 1.586 1.166l1.812-.76C6.66 8.765 5.489 8.086 3.979 8.086 1.614 8.087 0 9.654 0 12.037c0 2.309 1.604 3.876 3.913 3.876 1.227 0 2.308-.439 3.025-1.44.651-.916.731-1.831.75-2.904zM13.65 8.3l-1.586 3.95-1.5-3.95H8.67l-1.255 7.392h1.91l.619-4.257h.019l1.695 4.257h.765l1.775-4.257h.024l.538 4.257h1.92L15.562 8.3zm7.708 3.473 2.086-3.475h-2.128l-1.11 1.767L19.012 8.3H16.68l2.459 3.47-2.46 3.922h2.333l1.33-2.223 1.576 2.223H24l-2.642-3.92\"},\"child\":[]}]})(props);\n};\nexport function SiGnome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.703 0c-4.99 0-5.927 7.111-3.12 7.111 2.81 0 8.113-7.111 3.12-7.111M11.99.872q-.119-.001-.25.016c-2.811.364-1.82 5.25-.324 5.34 1.449.09 3.032-5.347.574-5.356M7.123 2.803a1.4 1.4 0 0 0-.488.114c-2.259.933-.344 4.776.921 4.519 1.168-.24 1.319-4.671-.433-4.632Zm-3.6 3.016a1.05 1.05 0 0 0-.634.215c-1.807 1.248.607 4.269 1.671 3.799.93-.41.338-3.967-1.037-4.014m10.032 2.309c-3.835.033-8.716 1.978-9.567 5.784C3.044 18.14 7.875 24 12.915 24c2.48 0 5.34-2.24 5.875-5.077.409-2.163-4.81-1.295-4.623.137.225 1.715-1.258 2.561-2.711 1.454-4.623-3.52 7.658-5.276 6.847-10.086-.263-1.56-2.29-2.322-4.748-2.301Z\"},\"child\":[]}]})(props);\n};\nexport function SiGnometerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.846 0A1.841 1.841 0 000 1.846v18.463c0 1.022.823 1.845 1.846 1.845h20.308A1.841 1.841 0 0024 20.31V1.846A1.841 1.841 0 0022.154 0H1.846zm0 .924h20.308c.512 0 .922.41.922.922v18.463c0 .511-.41.921-.922.921H1.846a.919.919 0 01-.922-.921V1.846c0-.512.41-.922.922-.922zm0 .922v18.463h20.308V1.846H1.846zm1.845 2.14l3.235 1.758v.836L3.69 8.477V7.385l2.243-1.207v-.033L3.69 5.076v-1.09zM7.846 9.23h3.693v.924H7.846V9.23zM0 21.736v.418C0 23.177.823 24 1.846 24h20.308A1.841 1.841 0 0024 22.154v-.418a2.334 2.334 0 01-1.846.918H1.846A2.334 2.334 0 010 21.736Z\"},\"child\":[]}]})(props);\n};\nexport function SiGnu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.072 13.931a.62.62 0 00-.52.338c-.114.211-.388.242-.516.201-.21-.07-.48-.119-.744.068-.263.187-.546.045-.495-.297.05-.34.172-.645.5-.83.713-.41.216-.695.607-1.108.394-.412.307-.537.293-1.1-1.326-.2-2.077-.58-2.915-1.63C.442 8.528.117 7.664.03 6.35-.057 5.033.02 4.18.588 3.09 1.156 2 1.756 1.475 2.788.93 3.825.383 4.84.254 5.78.271c.938.014 1.563.082 2.093.386.53.303 1.016.684 1.324.685.24.015.477-.053.673-.192.04 1.02-.878 1.108-1.698 1.13-.82.02-1.324-.317-2.08-.192-.754.128-1.992.47-2.595 1.52-.603 1.05-.624 1.42-.573 2.3.05.879.806 1.535 1.234 1.543.428.007.523-.117.898-.36.374-.246 2.284-2.61 2.934-3.14.653-.53 1.296-.696 1.99-.705.695-.008.87.015 1.433.246.56.229.903.652 1.355.91.23-.135.375-.34.584-.495.76-.552 1.152-.702 2.053-.615.518.052 1.17.347 1.56.686.693.604 1.265 1.44 1.727 2.079.36.497.785 1.09 1.392 1.277.66.2 1.157-.652 1.23-1.13.043-.27.097-.505.097-.8 0-.297-.03-.655-.115-.965a3.453 3.453 0 00-.392-.87c-.258-.415-.68-.85-1.116-1.071-.246-.125-.826-.353-1.19-.36-.449-.01-.79.14-1.202.168-.5.034-1.396.146-1.786-.24-.25-.246-.283-.41-.324-.73a.76.76 0 00.4.162c.314.026.606-.23.86-.378.21-.123.504-.34.778-.45.704-.285 1.567-.278 2.31-.2.594.06 1.367.324 1.89.62.525.297 1.03.798 1.4 1.269.465.594.72 1.104.888 1.844.216.945.277 2.365.015 3.299-.205.734-.887 1.86-1.467 2.414-.573.547-1.235.81-1.986.955.03.149.033.29.071.416.056.178.163.375.38.313.086-.025.133-.047.246.053.115.1.056.484-.266.66-.164.085-.334.103-.595.11a5.61 5.61 0 01-.953-.046c-.283-.047-.45-.272-.765-.308-.484-.055-.854-.404-1.244-.653-.162-.104-.218-.104-.31-.158.05.154.117.314.15.465.034.145.02.284.037.403.02.12.052.21.07.308.077.068.103.173.233.207.13.035.334-.018.468-.037.135-.018.224-.09.327-.07.105.02.204.096.292.166s.164.08.234.254c.07.178.135.537.146.777.01.24-.018.455-.089.648-.07.19-.135.273-.327.463s-.505.465-.818.66c.058.084.083.162.173.254.09.094.277.197.36.295.083.098.126.168.126.277a.587.587 0 01-.092.373c-.223.3-.483.352-.803.492.054.334.098.572.02.906-.03.137-.102.445-.27.525-.17.08-.492.041-.698.074-.205.031-.32.063-.48.094-.097.141-.24.297-.29.422-.05.127-.034.172.006.3.042.128.185.315.225.468a.93.93 0 01.01.463.834.834 0 01-.23.396c-.128.135-.38.24-.508.346-.125.11-.252.123-.217.303.047.248.41.646.67.744a.793.793 0 00.557-.04c-.014.208-.195.353-.315.493.322-.094.636-.27.854-.504-.067.203-.3.529-.645.816-.345.287-.343.229-.517.344.314.06.606.045.85.002a1.69 1.69 0 01-.64.207 1.876 1.876 0 01-.73-.055c-.26-.063-.499-.301-.814-.465.03.119.053.26.185.38.136.12.335.183.55.284-.273-.03-.559-.037-.825-.096a2.083 2.083 0 01-.478-.164c-.144-.07-.255-.176-.384-.264.06.117.08.256.184.352.104.098.275.135.412.199-.143-.004-.28.029-.43-.01a1.166 1.166 0 01-.443-.21 3.165 3.165 0 01-.445-.395c-.132-.145-.296-.332-.345-.463-.048-.133.03-.225.044-.338-.09.06-.2.094-.272.18-.07.088-.131.166-.1.318.03.15.171.338.27.506-.295-.242-.46-.336-.53-.625-.064-.273.104-.52.233-.725.064-.104.161-.2.22-.3-.134-.128-.284-.24-.4-.388-.112-.15-.161-.352-.276-.492-.117-.143-.274-.232-.41-.348.119.256.317.572.359.77.044.2-.048.323-.12.43-.07.108-.183.134-.291.198-.11.068-.277.016-.342.113s-.083.246-.021.344l.256.398a1.173 1.173 0 01-.327-.28c-.074-.097-.186-.189-.2-.317-.015-.13-.022-.246.064-.363.084-.117.318-.156.422-.246.105-.09.162-.148.156-.264-.006-.117-.12-.2-.217-.273-.3-.225-.68-.43-.934-.699a.931.931 0 01-.24-.379c-.03-.105.002-.188.072-.314.072-.13.315-.305.346-.443.029-.14-.095-.172-.205-.22-.111-.05-.322.024-.425-.062-.103-.086.03-.266-.086-.365-.116-.099-.38-.045-.52-.15a.724.724 0 01-.24-.395.828.828 0 01-.02-.436c.032-.113.128-.133.187-.19.06-.058.108-.105.03-.192-.074-.088-.33.004-.476-.105-.15-.113-.06-.38-.163-.494-.104-.109-.287-.066-.386-.104-.097-.035-.135.09-.194-.109-.06-.199-.063-.797-.143-1.02-.08-.223-.238-.016-.31-.236-.076-.22-.005-.574-.038-.908l-.15-.91c-.52.352-.867.463-1.428.561-.047 1.373-.176 2.182.29 3.705.466 1.521 1.409 2.42 2.68 3.707-1.68-1.256-2.478-2.279-2.98-3.588-.501-1.31-.406-2.407-.356-3.666zm8.918-.553a.837.837 0 01.376.098c.09.061.188.107.27.19.206.21.36.462.428.751.044.186.05.422.064.64-.062-.2-.103-.409-.192-.589-.14-.285-.376-.56-.672-.688a.35.35 0 00-.214-.027c.023.041.063.076.065.133 0 .06-.012.174-.112.223-.16.078-.34.021-.464-.086a.414.414 0 01-.102-.459c.08-.194.375-.194.553-.186zm-1.62-.272c.016-.332.134-.609.432-.77.187-.107.392-.18.604-.215.207-.026.713-.008 1.018.13.232.105.39.271.597.394.205.121.35.201.546.338.3.211.475.44.682.576.1.066.24.057.374.098-.104.03-.24.064-.35.03a1.565 1.565 0 01-.438-.265 2.946 2.946 0 00-.497-.359c-.124-.072-.33-.158-.466-.246-.135-.09-.37-.283-.502-.349a1.618 1.618 0 00-.65-.125c-.256.008-.626.05-.822.228-.197.18-.27.336-.227.566.073-.084.123-.19.195-.254.154-.133.33-.139.52-.113.216.027.323.15.394.354-.047-.033-.135-.109-.204-.135a.495.495 0 00-.438.043c-.18.098-.13.24-.154.396-.013.076-.04.133-.06.2a.39.39 0 01-.18-.099c0 .076-.01.141.005.223.014.084.055.184.084.273-.126-.125-.256-.24-.335-.402a1.058 1.058 0 01-.13-.517zm.218-2.4c.09-.134.12-.343.174-.515-.02.217.02.453-.083.609-.105.158-.292.129-.443.176.118-.09.258-.131.352-.268zm-2.206 3.203c.119-.096.438-.02.676-.002l-.514.133c-.017.06-.01.123-.048.174-.04.051-.114.068-.171.104.006-.155-.062-.313.057-.409zm1.682-6.65c.143.075.32.178.45.18.123.004.157-.08.231-.131.115.38.25.797.448 1.142.083.146.136.079.2.224.063.145.09.439.15.626s.137.32.207.483c-.174-.25-.4-.566-.5-.773-.098-.207-.035-.225-.115-.421-.078-.198-.238-.504-.357-.756-.086.01-.19.026-.255.006-.065-.021-.054-.091-.112-.134-.06-.045-.158-.027-.24-.1-.08-.07-.1-.217-.107-.346zm-.766 1.875c.135-.012.299.023.425.017.126-.006.216-.04.324-.06-.02-.19-.002-.537-.175-.664-.115-.08-.578-.02-.701.006-.28.06-.604.227-.873.33.258-.18.48-.346.79-.44.189-.054.622-.128.814-.075.089.023.104.06.158.135.183.255.183.475.23.773.046.07.095.119.134.194a.91.91 0 01.068.289c-.048-.07-.018-.155-.15-.206-.134-.053-.335-.005-.515.014.13.096.195.186.2.384.007.233-.19.4-.397.417-.285.022-.434-.041-.55-.285-.05-.107-.015-.236-.017-.341-.346.024-.34.013-.592.222.139.2.224.315.45.436.126.066.27.133.426.16.157.027.415.053.58.027a.629.629 0 00.38-.187c.122-.112.134-.274.181-.403a1.2 1.2 0 01-.07.37c-.14.27-.38.353-.667.353-.275 0-.616-.063-.873-.17-.205-.084-.545-.324-.625-.533-.056-.143-.012-.318-.018-.477.285-.19.354-.143.689-.198.14-.025.239-.076.374-.088zm-1.655-1.28c.007-.113.02-.11.03-.166-.26-.07-.36.099-.514.41-.057.116 0 .187-.062.264-.06.076-.16.065-.257.139-.098.074-.196.215-.29.292-.188.156-.446.25-.666.358.15-.111.443-.28.538-.44.05-.085.042-.246.12-.324.078-.075.105-.13.205-.15.1-.018.06-.135.093-.228.032-.091.097-.158.165-.251s.156-.23.29-.282c.136-.05.348.005.45-.023.103-.03.044-.105.119-.15s.219-.023.32-.072c.176-.084.26-.227.367-.377.015.326.01.56-.107.869-.131.346-.266.55-.641.763-.128.072-.257.098-.365.137.062-.086.152-.123.188-.256.034-.136.009-.4.017-.512zM15.7 9.447c-.177.014-.22-.012-.363.09l.232.36c-.006-.236.018-.284.133-.45zm-.465-.172c.246-.104.46-.19.73-.207.107-.008.274.009.383.016.094-.137.21-.244.256-.4.028-.104.015-.584-.038-.71-.146-.36-.29-.376-.495-.584-.146-.15-.152-.38-.197-.638-.015-.094-.062-.213-.084-.31a3.9 3.9 0 00-.857-.045c.148-.143.29-.271.334-.486a.959.959 0 00-.113-.667c-.12-.191-.315-.36-.494-.517-.178-.155-.436-.284-.604-.412.22-.077.444-.194.66-.235.56-.108 1.043.057 1.584.384.315.19.573.37.902.716.33.344.735.975 1.053 1.348.317.375.575.67.853.893.276.226.528.289.792.43l.412.439.335-.413.535.06.111-.601.49-.136-.079-.811.354-.252-.267-.504.27-.553-.352-.63.135-.607-.407-.348-.053-.646-.569-.217-.227-.56-.64-.008-.315-.417-.43.03-.48-.053-.27-.2-.395.26-.477-.247-.947.36.618-.538.64-.102.49-.126.662.218.582-.147.563.33.596-.03.293.525.591.067.32.58.372.206.1.746.333.315-.148.653.39.494-.363.529.39.332-.499.443.506.529-.613.2.398.566-.5.088.327.622-.563-.008.285.466-.62-.074.147.672-.468-.411-.159.814-.322-.585-.175.73-.397-.537.011.765-.439-.688c.091.39.073.817.33 1.185.793-.107 1.311-.307 1.92-.892.552-.533 1.214-1.644 1.394-2.35.204-.802.21-2.281.01-3.101-.195-.787-.447-1.163-.897-1.807-.43-.455-.853-.94-1.399-1.264-.8-.48-1.828-.608-2.74-.596a3.22 3.22 0 00-1.147.215c-.527.19-.95.61-1.487.818-.175.067-.315.068-.454-.004.135.27.28.39.62.49.243.07.824.025 1.226-.012.43-.04.654-.167 1.238-.16.57.01 1.024.225 1.272.368.511.292.877.614 1.196 1.13.175.28.298.6.383.924.086.324.124.688.13 1.006.006.318-.019.602-.097.888-.182.669-.583 1.35-1.407 1.245-.504-.063-1.263-1.01-1.518-1.357-.514-.701-1.042-1.477-1.687-2.06a2.587 2.587 0 00-1.463-.65c-.992-.09-1.287.099-2.033.716.15.047.3.074.455.145.346.156.662.357.938.615.29.27.42.442.43.829.007.259-.204.465-.4.649-.117.114-.274.218-.37.307-.128.117-.286.246-.125.432.06.07.165.123.252.189.14.103.075.488-.108.592a.61.61 0 01-.713-.061c.246-.035.402-.068.395-.27-.002-.115-.15-.213-.297-.28-.35-.16-.614-.134-.963-.386-.353-.254-.36-.393-.455-.79-.17.017-.327.02-.554.097-.226.074-.478.254-.684.299-.52.11-.623.078-.907.006-.501-.132-1.15.09-1.8.299-.107.033-.543 0-.836.102a5.518 5.518 0 00-1.457.853c-.556.469-1.286 1.869-1.698 3.477-.045.49.095.817-.213 1.055-.308.24-.3.851-.405 1.023-.103.17-.225.094-.45.336-.223.24-.337.201-.332.654.195-.125.477-.273.725-.285.22-.006.222.283.785-.273.3-.299.88-.309 1.283-.439.402-.13 1.125-.402 1.85-1.21.725-.81 1.072-1.664 1.213-2.896.02.215.06.463-.033 1.065-.095.604-.296 1.28.13 2.092l.264.504c-.157-.215-.465-.566-.56-.815l-.21-.577c-.48.752-.59.885-1.256 1.423-.026.334-.033.682.076 1.002.108.32-.064.688.02.9.082.21.273.09.336.303s-.032.635.064.842c.1.207.337.082.453.15.115.066.154.158.215.246.063.088-.023.297.103.365.126.066.32.01.453.074.13.066.15.223.12.361-.033.141-.173.205-.234.348a.365.365 0 00.02.373c.074.131.236.201.4.27.162.064.39.027.559.12.169.09.32.272.408.405a.542.542 0 01.109.363 1.038 1.038 0 01-.137.434c-.074.135-.236.3.02.555.254.254.246.145.393.313-.017-.289-.135-.52-.05-.738.089-.217.35-.256.485-.352.139-.1.219-.232.326-.348 0 .148.015.31-.002.42-.033.227-.102.432.237.467.153.016.299-.082.458-.14-.084.147-.23.27-.252.45a.793.793 0 00.13.56c.123.18.34.312.498.415.158.105.244.115.365.174.006.176-.03.363-.01.53a.962.962 0 00.17.454c.098.14.252.22.398.32-.08-.188-.242-.365-.24-.56.002-.197.06-.335.252-.51.19-.175.64-.325.85-.495a1.03 1.03 0 00.355-.436c.075-.164.055-.43.07-.576.068.205.078.27.102.486.02.217-.127.521-.19.68a1.02 1.02 0 00.51-.525c.058.035.03.125.05.301.094-.092.2-.162.293-.25.094-.088.195-.164.243-.287.046-.12.027-.252-.007-.393-.035-.143-.193-.307-.28-.463-.083-.152.017-.305.01-.492-.17-.029-.313-.117-.51-.088-.196.03-.42.248-.622.252-.2 0-.314-.188-.478-.238-.165-.053-.33-.045-.495-.07.21-.199 1.02-.295 1.576-.385a9.794 9.794 0 011.47-.133c.22-.006.506.068.66.025.153-.045.12-.15.165-.264.13-.318.066-.604-.004-.924-.444-.053-.908-.115-1.356-.082-.438.033-.956.242-1.41.256-.39.014-.975-.074-1.31-.28-.414-.25-.732-.79-.846-.966-.184-.28-.415-.836-.56-1.088-.14-.254-.171-.324-.29-.43-.116-.105-.276-.113-.417-.17.16.014.336-.035.482.047.22.127.465.648.601.877.145-.486.11-.676.53-.95-.337.378-.347.665-.429 1.11.28.46.67 1.193 1.18 1.396.186.074.502.12.7.145.622.076 1.22-.119 1.83-.27.444-.11.896-.066 1.437-.035.183.012.616-.1.707-.283a.33.33 0 00-.024-.33c-.07-.105-.255-.158-.355-.254-.1-.098-.156-.21-.235-.314a6.51 6.51 0 01-1.062.115c.22-.09.433-.14.66-.23.237-.098.463-.219.676-.359.186-.123.303-.193.438-.334.133-.143.304-.289.403-.463.1-.174.114-.369.12-.584.004-.215-.005-.516-.088-.69-.084-.173-.243-.226-.37-.265-.128-.04-.217.063-.35.076-.134.014-.258.096-.452.006a1.68 1.68 0 01-.617-.548c-.196-.274-.335-.722-.534-1.067-.343-.596-.77-1.15-1.18-1.702a3.392 3.392 0 01-.1-.508c-.032-.322-.036-.656.064-.97.075-.24.188-.493.438-.591a.48.48 0 01.317-.022c.09.032.18.135.142.252-.04.129-.127.134-.188.198a.693.693 0 00-.183.33c.11-.004.262-.011.354.013.12.03.23.11.29.279-.142-.126-.212-.185-.39-.188-.082-.002-.18.026-.27.04-.034.109-.054.244-.1.33-.05.084-.142.063-.177.16a.992.992 0 00-.02.392h.004zm1.242-.15c.056.022.075.028.146.08.07.053.165.105.22.23a.878.878 0 01.04.4c-.048-.015-.113-.005-.163-.047-.05-.043-.08-.14-.143-.18-.065-.043-.117-.034-.188-.043.038.096.05.199.036.3-.036.204-.156.308-.352.33-.084.013-.22-.015-.292-.028.034.075.09.143.126.219.164-.023.285-.02.375-.061.088-.041.183-.135.296-.173.113-.04.214-.04.338-.06-.098.085-.162.168-.26.254l.215.623c.152.096.294.146.485.263.19.116.42.327.67.44.248.112.395.176.656.224.26.05.467.262.722.295.255.032.735.041.932.021.225-.02.516-.135.542-.38-.188.044-.475.004-.619-.35-.064-.156-.034-.446-.132-.63-.099-.187-.236-.246-.4-.475-.164-.23-.43-.59-.58-.895-.15-.308-.188-.654-.313-.93-.128-.273-.319-.494-.469-.707-.323-.463-.584-.777-1.12-1.011-.257-.112-.55-.143-.823-.213-.113.05-.268.104-.295.237a.536.536 0 00.12.42c.16.166.395.343.487.604.06.168.076.73.025.883-.054.16-.178.257-.282.36zm.052 1.332c-.05.043-.087.087-.167.122-.08.036-.19.045-.295.07.148.232.305.467.447.71.143.242.266.51.4.764-.006-.147.003-.301-.018-.437-.02-.136-.083-.254-.145-.461-.06-.206-.135-.484-.222-.768zm-4-5.087a3.32 3.32 0 00.065.806c.058.267.11.404.328.564.396.295.648.245.955.416.145.08.328.217.382.359.053.146-.036.3-.146.363.192.029.408-.19.318-.41-.045-.11-.255-.16-.32-.271a.41.41 0 01-.033-.335c.053-.202.454-.388.597-.546.218-.248.3-.453.177-.77-.172-.445-.842-.804-1.242-.98-.183-.08-.287-.083-.43-.128.293.174.602.31.75.69.124.32.016.444.022.72.002.13.172.197.248.277.064.072.06.125.008.223a.256.256 0 00-.11-.2c-.113-.08-.235-.062-.295-.224-.09-.248.09-.484-.112-.762-.15-.208-.353-.441-.625-.447a1.073 1.073 0 00-.36.058l-.183-.22-.005-.003c-.372-.34-.626-.62-1.146-.852-.522-.234-.78-.27-1.38-.256-.596.013-1.19.063-1.882.66-.694.6-2.48 2.888-2.915 3.177-.43.289-.527.389-1.068.389-.54 0-1.387-.766-1.42-1.723-.032-.956-.045-1.297.62-2.45.665-1.151 1.867-1.504 2.762-1.624.895-.12 1.432.194 2.092.195.66.002 1.314-.11 1.508-.637-.095.056-.221.12-.577.1-.355-.018-.85-.43-1.402-.705C7.157.548 6.54.515 5.75.501c-.79-.015-1.777.045-2.755.574C2.018 1.6 1.35 2.16.783 3.195.215 4.228.13 5.07.223 6.322.313 7.57.7 8.5 1.442 9.42c.744.914 1.485 1.363 2.823 1.529l.283-1.242-.504.72.014-.802-.455.565-.202-.767-.367.615-.183-.855-.535.432.17-.705-.707.078.324-.491-.644.006.375-.653-.57-.091.454-.596-.698-.206.578-.555-.573-.467.448-.348-.42-.56.448-.52-.167-.684.379-.33.113-.785.426-.214.365-.61.677-.073.334-.553.68.035.642-.348.666.154.756-.228.562.13.73.108.706.564-1.08-.377-.545.26-.45-.273-.31.21-.55.056-.492-.03-.358.436-.732.007-.26.59-.65.227-.06.678-.468.366.155.637-.401.664.31.58-.305.53.403.264-.09.853.563.14.125.634.613-.063.38.434.47-.461c.859-.428 1.213-.668 1.883-1.391.76-.823 1.196-1.584 2.208-2.147.73-.405 1.32-.551 2.139-.408.766.132 1.024.593 1.59 1.077.06-.11.07-.14.168-.218-.03.142-.08.287-.093.423z\"},\"child\":[]}]})(props);\n};\nexport function SiGnubash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.038,4.9l-7.577-4.498C13.009,0.134,12.505,0,12,0c-0.505,0-1.009,0.134-1.462,0.403L2.961,4.9 C2.057,5.437,1.5,6.429,1.5,7.503v8.995c0,1.073,0.557,2.066,1.462,2.603l7.577,4.497C10.991,23.866,11.495,24,12,24 c0.505,0,1.009-0.134,1.461-0.402l7.577-4.497c0.904-0.537,1.462-1.529,1.462-2.603V7.503C22.5,6.429,21.943,5.437,21.038,4.9z M15.17,18.946l0.013,0.646c0.001,0.078-0.05,0.167-0.111,0.198l-0.383,0.22c-0.061,0.031-0.111-0.007-0.112-0.085L14.57,19.29 c-0.328,0.136-0.66,0.169-0.872,0.084c-0.04-0.016-0.057-0.075-0.041-0.142l0.139-0.584c0.011-0.046,0.036-0.092,0.069-0.121 c0.012-0.011,0.024-0.02,0.036-0.026c0.022-0.011,0.043-0.014,0.062-0.006c0.229,0.077,0.521,0.041,0.802-0.101 c0.357-0.181,0.596-0.545,0.592-0.907c-0.003-0.328-0.181-0.465-0.613-0.468c-0.55,0.001-1.064-0.107-1.072-0.917 c-0.007-0.667,0.34-1.361,0.889-1.8l-0.007-0.652c-0.001-0.08,0.048-0.168,0.111-0.2l0.37-0.236 c0.061-0.031,0.111,0.007,0.112,0.087l0.006,0.653c0.273-0.109,0.511-0.138,0.726-0.088c0.047,0.012,0.067,0.076,0.048,0.151 l-0.144,0.578c-0.011,0.044-0.036,0.088-0.065,0.116c-0.012,0.012-0.025,0.021-0.038,0.028c-0.019,0.01-0.038,0.013-0.057,0.009 c-0.098-0.022-0.332-0.073-0.699,0.113c-0.385,0.195-0.52,0.53-0.517,0.778c0.003,0.297,0.155,0.387,0.681,0.396 c0.7,0.012,1.003,0.318,1.01,1.023C16.105,17.747,15.736,18.491,15.17,18.946z M19.143,17.859c0,0.06-0.008,0.116-0.058,0.145 l-1.916,1.164c-0.05,0.029-0.09,0.004-0.09-0.056v-0.494c0-0.06,0.037-0.093,0.087-0.122l1.887-1.129 c0.05-0.029,0.09-0.004,0.09,0.056V17.859z M20.459,6.797l-7.168,4.427c-0.894,0.523-1.553,1.109-1.553,2.187v8.833 c0,0.645,0.26,1.063,0.66,1.184c-0.131,0.023-0.264,0.039-0.398,0.039c-0.42,0-0.833-0.114-1.197-0.33L3.226,18.64 c-0.741-0.44-1.201-1.261-1.201-2.142V7.503c0-0.881,0.46-1.702,1.201-2.142l7.577-4.498c0.363-0.216,0.777-0.33,1.197-0.33 c0.419,0,0.833,0.114,1.197,0.33l7.577,4.498c0.624,0.371,1.046,1.013,1.164,1.732C21.686,6.557,21.12,6.411,20.459,6.797z\"},\"child\":[]}]})(props);\n};\nexport function SiGnuemacs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,24C5.448,24,0.118,18.617,0.118,12S5.448,0,12,0c6.552,0,11.882,5.383,11.882,12S18.552,24,12,24z M12,0.661 C5.813,0.661,0.779,5.748,0.779,12S5.813,23.339,12,23.339c6.187,0,11.221-5.086,11.221-11.339S18.187,0.661,12,0.661z M8.03,20.197 c0,0,0.978,0.069,2.236-0.042c0.51-0.045,2.444-0.235,3.891-0.552c0,0,1.764-0.377,2.707-0.725c0.987-0.364,1.524-0.673,1.766-1.11 c-0.011-0.09,0.074-0.408-0.381-0.599c-1.164-0.488-2.514-0.4-5.185-0.457c-2.962-0.102-3.948-0.598-4.472-0.997 c-0.503-0.405-0.25-1.526,1.907-2.513c1.086-0.526,5.345-1.496,5.345-1.496c-1.434-0.709-4.109-1.955-4.659-2.224 c-0.482-0.236-1.254-0.591-1.421-1.021c-0.19-0.413,0.448-0.768,0.804-0.87c1.147-0.331,2.766-0.536,4.24-0.56 c0.741-0.012,0.861-0.059,0.861-0.059c1.022-0.17,1.695-0.869,1.414-1.976c-0.252-1.13-1.579-1.795-2.84-1.565 c-1.188,0.217-4.05,1.048-4.05,1.048c3.539-0.031,4.131,0.028,4.395,0.398c0.156,0.218-0.071,0.518-1.015,0.672 c-1.027,0.168-3.163,0.37-3.163,0.37c-2.049,0.122-3.492,0.13-3.925,1.046C6.202,7.564,6.787,8.094,7.043,8.425 c1.082,1.204,2.646,1.853,3.652,2.331c0.379,0.18,1.49,0.52,1.49,0.52c-3.265-0.18-5.619,0.823-7.001,1.977 c-1.562,1.445-0.871,3.168,2.33,4.228c1.891,0.626,2.828,0.921,5.648,0.667c1.661-0.09,1.923-0.036,1.939,0.1 c0.023,0.192-1.845,0.669-2.355,0.816C11.448,19.438,8.047,20.193,8.03,20.197z\"},\"child\":[]}]})(props);\n};\nexport function SiGnuicecat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.437.001c-.365.006-.743.03-1.136.075-4.786.54-7.595 4.525-7.758 9.357C.423 11.63.094 14.213.821 16.74c1.392 4.841 6.201 7.767 11.143 7.187l.906-.107c4.944.327 5.999-1.021 7.182-4.308.125-.27.305-.768.568-1.57.007-.037.016-.076.021-.096.788-2.147.903-4.57.24-6.875a9.996 9.996 0 0 0-.272-.81c-.03-.19-.024-.42.009-.599.29-.474.648-.83 1.076-1.097l.272-1.871c.287-.322.177-.6.19-1.058.166-.08.258-.214.327-.43.077-.237.447-.686.861-1.034.064-.188.224-.572.222-.893-1.984.227-3.23.608-4.226-.61l-.53-.208c-.24-.372-.67-.584-.978-.95l-.35 1.21c-.43-.265-2.742-2.688-7.045-2.62zm.14.795c2.59.036 4.962 1.344 6.207 2.28l-.95.354-.596-.382-.27.787v.325l-.733 1.762-.08-.026.379-1.573.57-1.517-.191-.163-.84.92c-.18.979-.09 2.358-.541 2.93.14-1.15.34-2.155.352-3.498l-.488-.162c-.113.594-.265 1.275-.382 1.652l.163-1.706-.621.405v.976l-.163-.541-.056-.976-.216-.03-.162.625c.028.27-.015.542.216.813l.056 2.06.133.246-.243 1.165.027-1.139-.08-.08-.163-2.007-.271-1.085-.435-.27-.163-.46-.46-.03 1.03 3.69.08 1.109c-.117-.526-.112-1.1-.567-1.49.045-.553-.036-1.093-.706-1.573l-.976-2.005c-.033-.237-.366-.276-.597-.381-.07.319-.13.642.082 1.032.488.775.976 1.555 1.464 1.978l.027.949c-.16-.875-.602-1.347-.76-1.219-.005-.713-.79-.98-1.245-1.437l-.056-.786-.27-.056c.17.532-.217.57.542 1.626l.027.381c-.29-.196-.578-.563-.867-.975l-.352-.624c.038.427-.175.523.134 1.274.454.395.864.974 1.383 1.112 0 0 .109.19 0 .19-.108 0-.325-.084-.325-.084-.3-.137-.585-.259-1.165-.677l-.597-1.762-.272-.053.056.949.242.107.027.623c.106.37.227.517.408.462-.101.124-.22.15-.461.136-.2-.378-.324-.745-.733-1.192l-.27-.787-.162.163a2.23 2.23 0 0 0 0 .976c-.264-.157-.656-.592-1.122-.819C6.105 1.513 8.469.832 10.327.798c.084-.001.167-.003.25-.002zm7.553 2.188l.517.171 1.514.864 2.146.018c-.615.242-1.373.525-1.858.672l-.613-.018c-.485-.414-.874-.612-1.309-.875-.526.551-.837 1.033-1.01 1.736l.152-1.19.52-1.17zm-13.577.331l.547 1.09.026.243-.298-.107-.27-.623-.298.215-.216-.128c.156-.246.327-.476.51-.69zm3.519 2.309c1.613-.037 1.868 1.303 2.127 2.543v2.223c.186.019.567 1.135.488 1.49-.045.204.488 1.422.45 1.426.288.278.235.248.465.424.316.243.602 1.134.426 1.264-.167.124.22.4.312.6.566.506.987 1.013.978 1.52l.27.487.514.08.136.192.65.08c.375-.08.32-.485.435-.76.022-.278-.057-.598-.461-.949.021-.421.074-.836-.325-1.327.056-.503-.311-.92-.598-1.355-.034-.373-.196-.883-.32-1.378-.06-.244-.089-.497-.138-.738-.181-1.674.058-1.862.133-2.765.618-.93.943-1.376 1.493-1.573l.704.87c.347.631.198 1.44 1.058 1.599l.022.021c.439-.396 1.02-.383 1.493-.395l-.057.187c-.57-.06-1.035-.074-1.42.216l.383.374c.412-.536.98-.5 1.539-.52l.006.206c-.604-.08-1.181.021-1.494.362l.123.117h.005c.465-.363 1.022-.383 1.549-.39l-.104.184c-.53.044-.893.008-1.272.23.293.03.587.057.88.085l.11.243.676.056c.12.03.215.042.302.045.083.22.157.444.224.674a9.983 9.983 0 0 1 .058 5.27c-1.356 3.64-2.797 4.614-5.729 4.418-3.06-.205-5.53-3.605-7.706-8.264-.475-1.292-1.638-2.11-2.313-1.42-3.073 3.055.394 8.49 2.1 9.801a16.34 16.34 0 0 0 2.87 1.67c-3.38-.563-6.27-2.914-7.245-6.308-1.177-4.092.77-8.374 4.486-10.423l.014-.006c.694-.259 1.251-.376 1.703-.386zm10.22 2.04c.293.044.838.365 1.136.663.09.243-.135.353-.12.496.008.023.004.031.003.032-.001-.011-.001-.022-.003-.032-.023-.072-.42-.56-1.016-1.16zm1.804 2.18c-.003.254-.083.341-.192.475-.111.009-.39-.075-.512-.25.185-.212.469-.21.704-.224zm-2.834.172c-.059.07-.086.157-.156.305.092-.14.146-.2.207-.244zm.141.176c-.225.063-.386.418-.611.92.24-.296.406-.716.744-.85zm-11.84 2.91l.054 1.055-1.653.949-.027-.786c.689.179 1.147-.56 1.627-1.219zm.734 2.25l.242.623-2.087 1.138-.299-.706c2.09-.764 1.731-.759 2.144-1.056zm.757 1.436l.272.461c-.787.389-1.435.912-2.005 1.517l-.435-.866c.789-.24 1.53-.572 2.168-1.112zm1.005 1.301l.46.434c-.36.81-1.106 1.312-1.817 1.843l-.73-.84c.716-.469 1.626-.84 2.087-1.437zm1.539 1.503c.072.432-.222 1.073-1.214 2.021-.386-.174-.785-.336-1.032-.65 1.607-.814 2.02-1.253 2.139-1.468.042-.006.112.032.107.097zm1.01.667c.036.382-.041.829.188 1.082l.216.056c-.113.47-.34.821-.325 1.291-.857-.208-.951-.297-1.274-.504.996-1.549 1.186-1.913 1.194-1.925zm1.407.784l1.058 1.22c-.106.584-.097.933.299 1.085-.599-.033-1.186-.04-1.68-.344.43-.637.423-1.208.323-1.961zm5.325.475c.307.467.348.706.655.813-.405.393-.587.47-1.063.65.149-.303 0-.728-.134-1.244-.1-.192.4-.176.542-.219zm-2.993.284c1.786.534 1.18.872 1.729 1.405-.472.1-.904.205-1.656.163.555-.411.301-.87-.073-1.568z\"},\"child\":[]}]})(props);\n};\nexport function SiGnuprivacyguard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.968 11.583h1.274v-3.82A7.76 7.76 0 0 1 12.005 0a7.76 7.76 0 0 1 7.762 7.763v3.783c-.018.01-.037.028-.056.037l-.01.01-.008.009h-.01l-.01.01-.009.009H19.636l-.018.018h-.02l-.018.01h-.01l-.009.01-.009.009h-.01l-.009.009-.009.01-.01.009-.009.009-.028.019-.019.01-.028.018-.018.01-.02.009-.027.018-.019.01-.01.009-.027.019-.02.01-.046.027-.019.01-.018.009-.02.01h-.008l-.057.027h-.019c-.018.01-.037.02-.065.038h-.01l-.009.01-.028.018-.018.01-.029.018-.018.01h-.01l-.028.018-.018.01-.02.009c-.018.01-.046.019-.065.028l-.018.01-.02.009-.037.018-.037.02-.047.018-.047.019-.019.009-.037.019-.019.01c-1.545.739-4.017 1.516-8.708 1.853-3.362.244-5.403 1.723-6.724 3.502zm4.842 0h8.371v-3.82a4.184 4.184 0 0 0-4.186-4.186A4.184 4.184 0 0 0 7.81 7.763zm13.222 1.461V24H5.572c1.704-.946 2.968-.852 5.075-.787 2.865.094 6.03-1.105 7.585-2.696 1.554-1.592-.14-.375-1.901.074-1.76.45-5.17.497-7.454-.103 7.173.094 9.973-2.219 11.555-4.307 1.583-2.079-.683-.365-2.153.356-1.47.72-4.036 1.227-6.864.852 4.27-.01 7.52-2.144 9.607-4.345z\"},\"child\":[]}]})(props);\n};\nexport function SiGnusocial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.217 0C2.474 0 1.06 1.413 1.06 3.156V15.77c0 1.744 1.414 3.158 3.157 3.158h9.367C13.567 22.498 8.756 24 8.756 24s8.138-.038 9.305-5.072h1.72c1.744 0 3.157-1.414 3.157-3.157V3.157C22.938 1.413 21.524 0 19.782 0H4.218zm4.527 2.53c.073-.013.132-.003.174.034.335.3-.556.593-.484 2.063.032.646-.16 1.146 1.076 1.146.826 0 .483-.734 1.523-.734.656 0 .86.435.934.767.072-.33.274-.768.93-.768 1.04 0 .7.733 1.525.733 1.237 0 1.044-.5 1.076-1.146.072-1.47-.82-1.764-.484-2.063.042-.037.1-.042.172-.02.5.143 1.607 1.558 1.638 2.155.038.71.04 1.825-1.015 2.407 1.19 1.167 1.352 2.72 1.352 2.72l-2.045-.034s-.464-2.118-2.94-2.01c-2.474.108-2.796.538-2.796 3.156 0 2.617 1.147 3.517 2.905 3.585 2.76.108 2.51-1.433 2.51-1.433l-1.29.072-.718-1.937h4.41c0 2.116-.897 5.414-5.092 5.2-4.196-.216-5.128-3.515-5.164-5.74-.018-1.225.188-2.602 1.2-3.574-1.052-.58-1.033-1.7-1.033-2.414 0-.88 1.13-2.084 1.637-2.17z\"},\"child\":[]}]})(props);\n};\nexport function SiGo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z\"},\"child\":[]}]})(props);\n};\nexport function SiGocd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.043 13.237l-8.907 5.935a1.47 1.47 0 01-.823.25 1.449 1.449 0 01-.696-.173 1.48 1.48 0 01-.784-1.308V12a1.482 1.482 0 112.957 0v3.163L14.537 12 7.478 7.304A1.49 1.49 0 119.13 4.823l8.913 5.94a1.492 1.492 0 010 2.474M12 0a12 12 0 1012 12A12.012 12.012 0 0012 0\"},\"child\":[]}]})(props);\n};\nexport function SiGodaddy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.702 2.29c-2.494-1.554-5.778-1.187-8.706.654C9.076 1.104 5.79.736 3.3 2.29c-3.941 2.463-4.42 8.806-1.07 14.167 2.47 3.954 6.333 6.269 9.77 6.226 3.439.043 7.301-2.273 9.771-6.226 3.347-5.361 2.872-11.704-1.069-14.167zM4.042 15.328a12.838 12.838 0 01-1.546-3.541 10.12 10.12 0 01-.336-3.338c.15-1.98.956-3.524 2.27-4.345 1.315-.822 3.052-.87 4.903-.137.281.113.556.24.825.382A15.11 15.11 0 007.5 7.54c-2.035 3.255-2.655 6.878-1.945 9.765a13.247 13.247 0 01-1.514-1.98zm17.465-3.541a12.866 12.866 0 01-1.547 3.54 13.25 13.25 0 01-1.513 1.984c.635-2.589.203-5.76-1.353-8.734a.39.39 0 00-.563-.153l-4.852 3.032a.397.397 0 00-.126.546l.712 1.139a.395.395 0 00.547.126l3.145-1.965c.101.306.203.606.28.916.296 1.086.41 2.214.335 3.337-.15 1.982-.956 3.525-2.27 4.347a4.437 4.437 0 01-2.25.65h-.101a4.432 4.432 0 01-2.25-.65c-1.314-.822-2.121-2.365-2.27-4.347-.074-1.123.039-2.251.335-3.337a13.212 13.212 0 014.05-6.482 10.148 10.148 0 012.849-1.765c1.845-.733 3.586-.685 4.9.137 1.316.822 2.122 2.365 2.271 4.345a10.146 10.146 0 01-.33 3.334z\"},\"child\":[]}]})(props);\n};\nexport function SiGodotengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5598.683c-1.096.244-2.1812.5831-3.1983 1.0951.023.8981.081 1.7582.199 2.6323-.395.253-.81.47-1.178.766-.375.288-.7581.564-1.0971.9011-.6781-.448-1.3962-.869-2.1352-1.2411C1.3532 5.6934.608 6.6186 0 7.6546c.458.7411.936 1.4352 1.4521 2.0942h.014v6.3565c.012 0 .023 0 .035.003l3.8963.376c.204.02.364.184.378.3891l.12 1.7201 3.3994.242.234-1.587c.03-.206.207-.358.415-.358h4.1114c.208 0 .385.152.415.358l.234 1.587 3.3993-.242.12-1.72a.4196.4196 0 01.378-.3891l3.8954-.376c.012 0 .023-.003.035-.003v-.5071h.002V9.7498h.014c.516-.659.994-1.3531 1.4521-2.0942-.608-1.036-1.3541-1.9611-2.1512-2.8192-.739.372-1.4571.793-2.1352 1.2411-.339-.337-.721-.613-1.096-.901-.369-.296-.7841-.5131-1.1781-.7661.117-.8741.175-1.7342.199-2.6323-1.0171-.512-2.1012-.851-3.1983-1.095-.438.736-.838 1.533-1.1871 2.3121-.414-.069-.829-.094-1.2461-.099h-.016c-.417.005-.832.03-1.2461.099-.349-.779-.749-1.576-1.1881-2.3121l.001-.001zM6.4765 9.9889c1.2971 0 2.3492 1.0511 2.3492 2.3482s-1.052 2.3482-2.3492 2.3482c-1.296 0-2.3482-1.051-2.3482-2.3482 0-1.297 1.0511-2.3482 2.3482-2.3482zm11.049 0c1.296 0 2.3482 1.0511 2.3482 2.3482s-1.0511 2.3482-2.3482 2.3482-2.3492-1.051-2.3492-2.3482c0-1.297 1.051-2.3482 2.3492-2.3482zm-10.824.9301c-.861 0-1.559.698-1.559 1.5591s.698 1.5582 1.559 1.5582c.8611 0 1.5592-.698 1.5592-1.5582 0-.86-.697-1.559-1.5591-1.559zm10.598 0c-.8611 0-1.5582.698-1.5582 1.5591s.697 1.5582 1.5581 1.5582c.8611 0 1.5592-.698 1.5592-1.5582 0-.86-.697-1.559-1.5592-1.559zm-5.2985.453c.417 0 .757.308.757.6871v2.1622c0 .379-.339.687-.757.687s-.756-.308-.756-.687V12.059c0-.379.339-.687.756-.687zM1.4601 16.9464c.002.377.006.789.006.871 0 3.7014 4.6944 5.4795 10.5269 5.5005h.014c5.8325-.02 10.5259-1.7991 10.5259-5.5004 0-.084.005-.495.007-.871l-3.5023.338-.121 1.729a.421.421 0 01-.389.3901l-4.1814.296a.4203.4203 0 01-.415-.358l-.238-1.6141h-3.3863l-.238 1.6141a.4192.4192 0 01-.4451.357l-4.1513-.296c-.208-.015-.375-.181-.389-.389l-.12-1.7292-3.5044-.337z\"},\"child\":[]}]})(props);\n};\nexport function SiGofundme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.6236 4.0792l-4.2223 3.0705c-.6695.4892-.8127 1.4224-.3309 2.0922.4892.6698 1.4221.8128 2.0921.3312l4.2219-3.0706c.67-.4892.8127-1.4224.3313-2.0922a1.4883 1.4883 0 0 0-2.092-.3312zm-9.6483-1.1816c-.8278 0-1.4978.6698-1.4978 1.4976v2.5212c0 .8279.67 1.4977 1.4978 1.4977.8279 0 1.4974-.6698 1.4974-1.4977V4.3952c0-.8278-.6695-1.4976-1.4974-1.4976zM.2877 4.4103c-.4892.6698-.3387 1.603.3308 2.0922L4.841 9.573c.6695.4891 1.6029.3386 2.092-.3312.4893-.6698.3387-1.603-.3313-2.0922L2.3798 4.0792c-.6773-.4817-1.6107-.3387-2.092.331zm3.695 7.7893C6.1051 10.303 8.905 9.144 11.9753 9.144c3.0705 0 5.8702 1.159 7.9926 3.0555zm14.5556 1.6335c-1.3473 0-2.236.4433-2.8004.9926-.5948.587-1.0232 1.5058-1.0232 2.6497 0 1.302.5646 2.1445 1.0089 2.5885.843.843 1.926 1.0385 2.829 1.0385 1.4827 0 2.2804-.4586 2.7843-.9478.5043-.4892.7234-1.024.8284-1.4078H19.825c-.1056.2107-.279.3687-.4296.459-.3083.1656-.7368.1814-.797.1814-.5492 0-.8583-.1883-1.0088-.3388-.2933-.286-.4296-.7757-.4296-1.1445h5.095v-.2634c0-.7601-.12-1.9567-1.0833-2.8749-.8132-.7676-1.8358-.9325-2.6334-.9325zm.0601 1.5577c.241 0 .6845.0448 1.008.3684.1881.1882.3384.4744.399.7378h-2.77c.0455-.3085.2038-.5572.3694-.7378.2561-.2634.5797-.3684.9936-.3684zm-16.851-1.3549h2.446v.8279c.5795-.7 1.377-.9483 2.047-.9483.4893 0 .9482.1054 1.3171.3086.5044.2634.783.6397.948.9783.2786-.4892.6251-.7827.9335-.9482.4892-.2785.9632-.3387 1.4226-.3387.5038 0 1.3317.0753 1.8961.6247.61.5945.6397 1.4073.6397 1.8814v4.4553h-2.4459v-3.379c0-.7226-.0753-1.2117-.3533-1.4676-.1359-.1204-.324-.2258-.6397-.2258-.2786 0-.5044.0753-.7228.2785-.414.3988-.4437.9633-.4437 1.302v3.507H6.346v-3.3791c0-.6548-.0454-1.1816-.324-1.4676-.2106-.2258-.4891-.2784-.7374-.2784-.2634 0-.474.0451-.6695.2483-.429.414-.429 1.0687-.429 1.4977v3.3791H1.74v-6.856Z\"},\"child\":[]}]})(props);\n};\nexport function SiGogdotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.15 15.24H4.36a.4.4 0 0 0-.4.4v2c0 .21.18.4.4.4h2.8v1.32h-3.5c-.56 0-1.02-.46-1.02-1.03v-3.39c0-.56.46-1.02 1.03-1.02h3.48v1.32zM8.16 11.54c0 .58-.47 1.05-1.05 1.05H2.63v-1.35h3.78a.4.4 0 0 0 .4-.4V6.39a.4.4 0 0 0-.4-.4H4.39a.4.4 0 0 0-.41.4v2.02c0 .23.18.4.4.4H6v1.35H3.68c-.58 0-1.05-.46-1.05-1.04V5.68c0-.57.47-1.04 1.05-1.04H7.1c.58 0 1.05.47 1.05 1.04v5.86zM21.36 19.36h-1.32v-4.12h-.93a.4.4 0 0 0-.4.4v3.72h-1.33v-4.12h-.93a.4.4 0 0 0-.4.4v3.72h-1.33v-4.42c0-.56.46-1.02 1.03-1.02h5.61v5.44zM21.37 11.54c0 .58-.47 1.05-1.05 1.05h-4.48v-1.35h3.78a.4.4 0 0 0 .4-.4V6.39a.4.4 0 0 0-.4-.4h-2.03a.4.4 0 0 0-.4.4v2.02c0 .23.18.4.4.4h1.62v1.35H16.9c-.58 0-1.05-.46-1.05-1.04V5.68c0-.57.47-1.04 1.05-1.04h3.43c.58 0 1.05.47 1.05 1.04v5.86zM13.72 4.64h-3.44c-.58 0-1.04.47-1.04 1.04v3.44c0 .58.46 1.04 1.04 1.04h3.44c.57 0 1.04-.46 1.04-1.04V5.68c0-.57-.47-1.04-1.04-1.04m-.3 1.75v2.02a.4.4 0 0 1-.4.4h-2.03a.4.4 0 0 1-.4-.4V6.4c0-.22.17-.4.4-.4H13c.23 0 .4.18.4.4zM12.63 13.92H9.24c-.57 0-1.03.46-1.03 1.02v3.39c0 .57.46 1.03 1.03 1.03h3.39c.57 0 1.03-.46 1.03-1.03v-3.39c0-.56-.46-1.02-1.03-1.02m-.3 1.72v2a.4.4 0 0 1-.4.4v-.01H9.94a.4.4 0 0 1-.4-.4v-1.99c0-.22.18-.4.4-.4h2c.22 0 .4.18.4.4zM23.49 1.1a1.74 1.74 0 0 0-1.24-.52H1.75A1.74 1.74 0 0 0 0 2.33v19.34a1.74 1.74 0 0 0 1.75 1.75h20.5A1.74 1.74 0 0 0 24 21.67V2.33c0-.48-.2-.92-.51-1.24m0 20.58a1.23 1.23 0 0 1-1.24 1.24H1.75A1.23 1.23 0 0 1 .5 21.67V2.33a1.23 1.23 0 0 1 1.24-1.24h20.5a1.24 1.24 0 0 1 1.24 1.24v19.34z\"},\"child\":[]}]})(props);\n};\nexport function SiGojek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.072.713a15.38 15.38 0 0 0-.643.011C5.317.998.344 5.835.017 11.818c-.266 4.913 2.548 9.21 6.723 11.204 1.557.744 3.405-.19 3.706-1.861.203-1.126-.382-2.241-1.429-2.742-2.373-1.139-3.966-3.602-3.778-6.406.22-3.28 2.931-5.945 6.279-6.171 3.959-.267 7.257 2.797 7.257 6.619 0 2.623-1.553 4.888-3.809 5.965a2.511 2.511 0 0 0-1.395 2.706l.011.056c.295 1.644 2.111 2.578 3.643 1.852C21.233 21.139 24 17.117 24 12.461 23.996 5.995 18.664.749 12.072.711v.002Zm-.061 7.614c-2.331 0-4.225 1.856-4.225 4.139 0 2.282 1.894 4.137 4.225 4.137 2.33 0 4.225-1.855 4.225-4.137 0-2.283-1.895-4.139-4.225-4.139Z\"},\"child\":[]}]})(props);\n};\nexport function SiGoland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm6.764 3a5.448 5.448 0 0 1 3.892 1.356L9.284 6.012A3.652 3.652 0 0 0 6.696 5c-1.6 0-2.844 1.4-2.844 3.08v.028c0 1.812 1.244 3.14 3 3.14a3.468 3.468 0 0 0 2.048-.596V9.228H6.708v-1.88H11v4.296a6.428 6.428 0 0 1-4.228 1.572c-3.076 0-5.196-2.164-5.196-5.092v-.028A5.08 5.08 0 0 1 6.764 3Zm10.432 0c3.052 0 5.244 2.276 5.244 5.088v.028a5.116 5.116 0 0 1-5.272 5.12c-3.056-.02-5.248-2.296-5.248-5.112v-.028A5.116 5.116 0 0 1 17.196 3Zm-.028 2A2.96 2.96 0 0 0 14.2 8.068v.028a3.008 3.008 0 0 0 3 3.112 2.96 2.96 0 0 0 2.964-3.084v-.028A3.004 3.004 0 0 0 17.168 5ZM2.252 19.5h9V21h-9z\"},\"child\":[]}]})(props);\n};\nexport function SiGoldenline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.997 24a11.995 11.995 0 0 0 11.949-13.04h-6.781v2.943h1.226a6.667 6.667 0 1 1-.114-4.156h5.509A11.995 11.995 0 1 0 12 23.991z\"},\"child\":[]}]})(props);\n};\nexport function SiGoldmansachs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.963 9.264h1.452v2.378c-.484.098-.855.148-1.262.148C.561 11.79 0 10.878 0 9.377c0-1.614.778-2.526 2.329-2.526.196 0 .567.014 1.03.084v1.522h-.336l-.19-.582c-.183-.553-.4-.827-.744-.827-.596 0-.912.806-.912 2.315 0 1.515.126 2.23.904 2.23.106 0 .231-.014.351-.048V9.776l-.469-.323v-.189Zm1.424 6.382c0 .954-.651 1.501-1.802 1.501-.315 0-.778-.048-1.213-.119v-1.865h.337l.14.441c.315 1.017.54 1.353.94 1.353.421 0 .722-.371.722-.862 0-.399-.189-.68-.595-.898l-.702-.378c-.541-.287-.835-.736-.835-1.283 0-.828.68-1.326 1.796-1.326.252 0 .547.022 1.016.085v1.521h-.337l-.188-.581c-.19-.618-.393-.842-.764-.842-.415 0-.66.266-.66.652 0 .343.19.589.561.799l.708.399c.596.337.876.786.876 1.403Zm3.101 1.102.14.211v.106H5.556l-.05-.407c-.112.308-.407.491-.786.491-.561 0-.912-.351-.912-.926 0-.561.315-.933 1.283-1.311l.414-.161v-.525c0-.463-.085-.652-.344-.652-.21 0-.329.112-.533.623l-.231.573h-.315v-1.144c.414-.126.828-.21 1.185-.21.792 0 1.221.378 1.221 1.066v2.266Zm.405-6.824c0 1.192-.637 1.866-1.459 1.866-.82 0-1.457-.674-1.457-1.866 0-1.193.637-1.866 1.459-1.866.82 0 1.457.673 1.457 1.866Zm-1.387 6.235v-1.213l-.133.056c-.414.169-.569.547-.569 1.101 0 .414.099.652.329.652.231 0 .373-.225.373-.596Zm.357-6.235c0-1.347-.112-1.704-.427-1.704s-.428.357-.428 1.704c0 1.346.113 1.704.428 1.704s.427-.358.427-1.704Zm3.521 6.269.126.064c-.224.646-.511.89-1.066.89-.904 0-1.409-.679-1.409-1.865 0-1.185.589-1.866 1.55-1.866.258 0 .603.042.897.16v1.193h-.329l-.132-.449c-.176-.596-.273-.75-.449-.75-.281 0-.505.365-.505 1.754 0 1.114.168 1.521.595 1.521.287.001.532-.181.722-.652Zm-.779-4.488H7.342v-.104l.141-.211V7.476l-.141-.21V7.16l1.123-.084v4.313l.14.211v.105Zm1.726.085c-.772 0-1.235-.702-1.235-1.901 0-1.192.483-1.83 1.227-1.83.379 0 .589.147.68.441V7.476l-.141-.21V7.16l1.123-.084v4.313l.14.211v.104h-.996l-.077-.533c-.111.457-.321.619-.721.619Zm2.461 4.958.14.211v.106H11.67v-.106l.14-.211v-2.525c0-.301-.091-.483-.309-.483-.26 0-.449.218-.449.645v2.363l.141.211v.106H9.93v-.106l.14-.211v-3.914l-.14-.21v-.105l1.122-.084v1.451c.127-.301.414-.469.82-.469.576 0 .919.365.919 1.073v2.258h.001Zm-2.664-6.846c0 1.263.112 1.648.421 1.648.385 0 .455-.554.455-1.662 0-1.073-.077-1.606-.449-1.606-.315 0-.427.379-.427 1.62Zm7.041 1.487.14.211v.104h-1.262V11.6l.14-.211V8.787c0-.252-.084-.407-.281-.407-.244 0-.441.219-.441.638v2.371l.14.211v.104h-1.262V11.6l.14-.211V8.787c0-.252-.084-.407-.28-.407-.245 0-.442.219-.442.638v2.371l.141.211v.104h-1.263V11.6l.14-.211V8.535l-.14-.169v-.104l1.01-.12h.084l.028.393c.119-.309.414-.477.814-.477.427 0 .708.21.834.589.105-.365.435-.589.856-.589.553 0 .904.365.904 1.072v2.259Zm-1.311 4.644c0 .609-.393 1.114-1.339 1.114-.245 0-.575-.028-1.087-.119v-1.304h.287l.091.281c.224.715.441.982.785.982.323 0 .533-.232.533-.59 0-.294-.147-.497-.497-.687l-.603-.323c-.385-.21-.596-.539-.596-.946 0-.638.499-1.024 1.325-1.024.239 0 .547.034.884.105v1.024h-.287l-.148-.373c-.168-.449-.329-.595-.595-.595-.287 0-.456.168-.456.449 0 .238.141.399.484.595l.595.337c.406.232.624.561.624 1.074Zm4.538-4.644.14.211v.104h-1.073l-.048-.407c-.112.309-.407.491-.786.491-.561 0-.911-.35-.911-.926 0-.561.315-.932 1.283-1.311l.413-.16v-.526c0-.463-.084-.652-.343-.652-.211 0-.329.113-.533.624l-.231.575h-.317V8.27c.415-.127.828-.211 1.185-.211.792 0 1.221.379 1.221 1.066v2.264Zm-.982-.589V9.587l-.133.056c-.413.168-.567.547-.567 1.101 0 .414.098.653.329.653.23 0 .371-.225.371-.597Zm4.586.8v.104h-1.263V11.6l.141-.211V8.864c0-.302-.091-.484-.309-.484-.26 0-.449.219-.449.646v2.363l.14.211v.104h-1.262V11.6l.14-.211V8.535l-.14-.169v-.104l1.01-.12h.084l.028.393c.119-.309.407-.477.82-.477.575 0 .918.365.918 1.072v2.259L24 11.6Z\"},\"child\":[]}]})(props);\n};\nexport function SiGoodreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.43 23.995c-3.608-.208-6.274-2.077-6.448-5.078.695.007 1.375-.013 2.07-.006.224 1.342 1.065 2.43 2.683 3.026 1.583.496 3.737.46 5.082-.174 1.351-.636 2.145-1.822 2.503-3.577.212-1.042.236-1.734.231-2.92l-.005-1.631h-.059c-1.245 2.564-3.315 3.53-5.59 3.475-5.74-.054-7.68-4.534-7.528-8.606.01-5.241 3.22-8.537 7.557-8.495 2.354-.14 4.605 1.362 5.554 3.37l.059.002.002-2.918 2.099.004-.002 15.717c-.193 7.04-4.376 7.89-8.209 7.811zm6.1-15.633c-.096-3.26-1.601-6.62-5.503-6.645-3.954-.017-5.625 3.592-5.604 6.85-.013 3.439 1.643 6.305 4.703 6.762 4.532.591 6.551-3.411 6.404-6.967z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleadmob (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.46.033h-.052A11.993 11.993 0 0 0 0 11.922v.052c0 7.475 6.563 11.928 11.447 11.928h.17a3.086 3.086 0 0 0 3.125-3.047c0-1.693-1.433-2.917-3.152-2.917h-.039a6.016 6.016 0 0 1-5.508-6.368v-.052a6.016 6.016 0 0 1 5.573-5.509c1.719 0 3.125-1.237 3.125-2.917A3.086 3.086 0 0 0 11.604.02h-.143zm2.031.026a3.516 3.516 0 0 1 1.746 3.021 3.386 3.386 0 0 1-1.928 3.047c2.865.6 4.532 3.126 4.688 5.378v7.684a3.49 3.49 0 0 1 6.003.026v-7.736A12.046 12.046 0 0 0 13.491.045zm7.475 17.932a2.995 2.995 0 1 0 .04 0z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9998 22.9291C1.7908 22.9291 0 21.1383 0 18.9293s1.7908-3.9998 3.9998-3.9998 3.9998 1.7908 3.9998 3.9998-1.7908 3.9998-3.9998 3.9998zm19.4643-6.0004L15.4632 3.072C14.3586 1.1587 11.9121.5028 9.9988 1.6074S7.4295 5.1585 8.5341 7.0718l8.0009 13.8567c1.1046 1.9133 3.5511 2.5679 5.4644 1.4646 1.9134-1.1046 2.568-3.5511 1.4647-5.4644zM7.5137 4.8438L1.5645 15.1484A4.5 4.5 0 0 1 4 14.4297c2.5597-.0075 4.6248 2.1585 4.4941 4.7148l3.2168-5.5723-3.6094-6.25c-.4499-.7793-.6322-1.6394-.5878-2.4784z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleadsense (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.056 8.447a3.894 3.894 0 0 0-5.313 1.419l-3.889 6.72a3.874 3.874 0 0 0 1.415 5.293l.01.005a3.894 3.894 0 0 0 5.312-1.42l3.889-6.718a3.875 3.875 0 0 0-1.416-5.294l-.008-.005m-14.7 12.168c-1.08 1.888-3.514 2.583-5.384 1.493-1.87-1.09-2.533-3.455-1.453-5.343s3.494-2.586 5.365-1.496c1.87 1.09 2.554 3.457 1.474 5.344m4.131-19.228a3.935 3.935 0 0 0-3.267 2.189l-3.67 6.279a4.638 4.638 0 0 0-.227.387l-2.746 4.737c1.345-.86 3.09-.993 4.55-.143a4.456 4.456 0 0 1 2.22 4.041l2.77-4.763c.082-.124.157-.252.224-.385l3.67-6.281a3.86 3.86 0 0 0-1.283-5.55 3.958 3.958 0 0 0-2.24-.511z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleanalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.84 2.9982v17.9987c.0086 1.6473-1.3197 2.9897-2.967 2.9984a2.9808 2.9808 0 01-.3677-.0208c-1.528-.226-2.6477-1.5558-2.6105-3.1V3.1204c-.0369-1.5458 1.0856-2.8762 2.6157-3.1 1.6361-.1915 3.1178.9796 3.3093 2.6158.014.1201.0208.241.0202.3619zM4.1326 18.0548c-1.6417 0-2.9726 1.331-2.9726 2.9726C1.16 22.6691 2.4909 24 4.1326 24s2.9726-1.3309 2.9726-2.9726-1.331-2.9726-2.9726-2.9726zm7.8728-9.0098c-.0171 0-.0342 0-.0513.0003-1.6495.0904-2.9293 1.474-2.891 3.1256v7.9846c0 2.167.9535 3.4825 2.3505 3.763 1.6118.3266 3.1832-.7152 3.5098-2.327.04-.1974.06-.3983.0593-.5998v-8.9585c.003-1.6474-1.33-2.9852-2.9773-2.9882z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleappsscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.363 2.54a3.136 3.136 0 0 0-.376.022 2.864 2.864 0 0 0-1.589.828c-.562.58-.82 1.115-.773 1.943-.01.264.193 1.023.272 1.274 1.115 3.546 2.09 6.75 3.26 10.279.08.246.168.486.267.72.02.047.035.046.048-.004.077-.297.174-.612.29-.945.894-2.576 1.772-5.14 2.633-7.696a.345.345 0 0 0 .004-.217 163.054 163.054 0 0 0-1.49-4.572 2.603 2.603 0 0 0-.704-.933c-.55-.46-1.166-.694-1.842-.7Zm9.078.117a2.734 2.734 0 0 0-2.878 1.828l-4.576 13.289a2.734 2.734 0 0 0 1.695 3.475l.12.04a2.734 2.734 0 0 0 3.475-1.694L23.85 6.307a2.734 2.734 0 0 0-1.695-3.476c-.233-.1-.506-.124-.716-.174ZM12.375 3.96a1.396 1.396 0 1 1 0 2.791 1.395 1.395 0 0 1 0-2.79zm8.809.07a1.402 1.402 0 1 1 0 2.803 1.402 1.402 0 0 1 0-2.803zM5.419 7.605a2.853 2.853 0 0 0-.468.052 2.683 2.683 0 0 0-1.337.627 2.62 2.62 0 0 0-.924 1.833 3.808 3.808 0 0 0 0 .648 2.52 2.52 0 0 0 .673 1.52c.221.238.465.454.732.648 3.043 2.21 6.08 4.43 9.108 6.664a.78.78 0 0 0 .158.089c.03-.043.032-.098.007-.167a17.409 17.409 0 0 0-.317-1.066 532.752 532.752 0 0 1-2.02-6.251 41.91 41.91 0 0 0-.497-1.477c-.967-.849-2.078-1.6-3.023-2.302A3.848 3.848 0 0 0 6.153 7.7a2.388 2.388 0 0 0-.734-.094Zm.02 1.424a1.398 1.398 0 1 1 0 2.796 1.398 1.398 0 0 1 0-2.796zm-2.458 6.792c-.733-.006-1.375.202-1.927.622a2.72 2.72 0 0 0-.95 1.45 2.78 2.78 0 0 0-.09 1.04 2.74 2.74 0 0 0 .695 1.583c.664.578 1.26.85 2 .945 1.42-.005 2.84-.012 4.262-.02h.418c2.277-.003 4.513-.002 6.706.003.148.005.28.003.392-.01.06-.005.091-.031.092-.077a10.656 10.656 0 0 0-.834-.653 488.746 488.746 0 0 1-6.57-4.815.236.236 0 0 0-.14-.047c-1.34-.003-2.691-.01-4.054-.02zm-.19 1.418a1.402 1.402 0 1 1 0 2.803 1.402 1.402 0 0 1 0-2.803zm13.874.002a1.4 1.4 0 1 1 0 2.8 1.4 1.4 0 0 1 0-2.8z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleassistant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.365 8.729c.9 0 1.635-.735 1.635-1.635s-.735-1.636-1.635-1.636-1.636.735-1.636 1.636.723 1.635 1.636 1.635m-4.907 5.452a3.27 3.27 0 1 0 0-6.542 3.27 3.27 0 0 0 0 6.542m0 8.722c2.105 0 3.816-1.711 3.816-3.829s-1.711-3.816-3.829-3.816a3.82 3.82 0 0 0-3.816 3.816 3.825 3.825 0 0 0 3.829 3.83M6.542 14.18a6.542 6.542 0 1 0 0-13.084 6.542 6.542 0 1 0 0 13.084\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleauthenticator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.957 1.3379A2.0133 2.0133 0 0 0 6 1.6074c-.967.5583-1.2985 1.7947-.7402 2.7617L8.498 9.9785H2.0215C.9049 9.9785 0 10.8835 0 12c0 1.1166.905 2.0215 2.0215 2.0215H8.498l-3.2382 5.6094c-.5583.967-.2268 2.2034.7402 2.7617.967.5582 2.2034.2267 2.7617-.7403L12 16.045l3.2383 5.6074c.5583.967 1.7947 1.2985 2.7617.7403.967-.5583 1.2985-1.7947.7402-2.7617l-3.2382-5.6094h6.4765C23.0951 14.0215 24 13.1165 24 12c0-1.1166-.905-2.0215-2.0215-2.0215H15.502l3.2382-5.6094c.5583-.967.2268-2.2034-.7402-2.7617-.967-.5582-2.2034-.2267-2.7617.7403L12 7.955 8.7617 2.3477C8.378 1.6829 7.674 1.3193 6.957 1.3379Zm9.959 1.0058c.1932-.0127.3928.0317.5781.1387.4944.2854.6565.8866.3711 1.3809l-4.1132 7.125h8.2265c.5709 0 1.0117.4408 1.0117 1.0117s-.4408 1.0117-1.0117 1.0117H14.92l-1.168-2.0234-1.168-2.0235 3.5294-6.1113c.1783-.3089.4808-.4885.8027-.5098zm-9.9336.004c.3587-.0093.7081.166.9043.5058l3.5293 6.1113-1.168 2.0235-1.168 2.0234H2.0216c-.5709 0-1.0117-.4408-1.0117-1.0117s.4408-1.0117 1.0117-1.0117h8.2265l-4.1132-7.125c-.2854-.4943-.1233-1.0955.371-1.3809a.9891.9891 0 0 1 .4766-.1347ZM9.666 14.0215h4.668l3.5312 6.1152c.2854.4943.1233 1.0955-.371 1.3809-.4942.2852-1.0956.1231-1.381-.3711L12 14.0254l-4.1133 7.121c-.2853.4943-.8867.6564-1.3808.3712-.4944-.2854-.6565-.8866-.3711-1.3809Z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglebigquery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.676 10.595h2.052v5.244a5.892 5.892 0 0 1-2.052-2.088v-3.156zm18.179 10.836a.504.504 0 0 1 0 .708l-1.716 1.716a.504.504 0 0 1-.708 0l-4.248-4.248a.206.206 0 0 1-.007-.007c-.02-.02-.028-.045-.043-.066a10.736 10.736 0 0 1-6.334 2.065C4.835 21.599 0 16.764 0 10.799S4.835 0 10.8 0s10.799 4.835 10.799 10.8c0 2.369-.772 4.553-2.066 6.333.025.017.052.028.074.05l4.248 4.248zm-5.028-10.632a8.015 8.015 0 1 0-8.028 8.028h.024a8.016 8.016 0 0 0 8.004-8.028zm-4.86 4.98a6.002 6.002 0 0 0 2.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08 1.332.072.4.025.8.025 1.2 0V7.692H9.468v9.035z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglebigtable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.511.278s0-.4.456-.24c.267.094 3.728 2.243 5.88 3.533l.006.003.364.217c.004.003.007.009.011.011.322.2.656.42 1.006.673.27.165.43.463.42.78l-.06 7.566a.42.42 0 0 1-.192.396l-1.2.815V5.436c-.042-.034-.083-.07-.131-.098l-5.06-3.01c-.744-.466-1.5-1.642-1.5-2.05zm-2.89 12.171 4.39 2.614 4.388-2.566v-1.079L12.25 13.84a.78.78 0 0 1-.24.072.43.43 0 0 1-.24-.072l-4.149-2.47v1.08zm0 1.943c0 .17.086.327.228.42l3.933 2.398c.123.06.162.07.228.064.088-.003.173-.074.252-.112l3.933-2.398a.468.468 0 0 0 .228-.42v-.791L12.25 16.07a.432.432 0 0 1-.48 0L7.621 13.6v.79zm8.778-4.137v-.516a.467.467 0 0 0-.228-.408l-3.933-2.398a.444.444 0 0 0-.456 0L7.85 9.331a.492.492 0 0 0-.228.408v.516l4.39 2.614 4.388-2.614zm-4.473 11.332L6.95 18.625c-.041-.025-.06-.07-.096-.1v-8.63l-1.2.708a.491.491 0 0 0-.227.395v7.867a.9.9 0 0 0 .407.72l1.272.79c-.002 0-.003-.003-.005-.004l6.024 3.59a.216.216 0 0 0 .336-.216 3.262 3.262 0 0 0-1.535-2.158zM8.891 4.097a.845.845 0 0 1 .859.009L16.41 8.06V6.645a.444.444 0 0 0-.24-.371l-6.38-3.778a.81.81 0 0 0-.85-.012l-1.433.856C5.56 4.498 1.525 6.893 1.36 6.975a.276.276 0 0 0 0 .48 3.154 3.154 0 0 0 2.495-.312L8.89 4.097zM22.635 16.49a3.154 3.154 0 0 0-2.519.3l-5.036 2.986a.875.875 0 0 1-.887 0l-.018-.006-6.554-3.867v1.39c.021.152.093.292.204.397l6.356 3.765a.84.84 0 0 0 .887 0l1.415-.863h-.004l6.156-3.646a.252.252 0 0 0 0-.456zM10.967 6.13l-1.2-.708a.407.407 0 0 0-.431 0L3.688 8.756a.863.863 0 0 0-.456.767v8.862a.216.216 0 0 0 .36.156 3.297 3.297 0 0 0 1.043-2.398v-5.996a.9.9 0 0 1 .098-.367l6.234-3.65zm2.11 11.728 1.2.683a.42.42 0 0 0 .443 0l5.684-3.418c.335-.207.442-.408.442-.706l.002-.001V12.665c0 .006-.004.01-.004.017-.006-2.494-.013-6.831.004-7.104.024-.384-.372-.252-.372-.252a3.37 3.37 0 0 0-1.007 2.399v5.995a.97.97 0 0 1-.191.413l-6.2 3.725z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.316 5.684H24v12.632h-5.684V5.684zM5.684 24h12.632v-5.684H5.684V24zM18.316 5.684V0H1.895A1.894 1.894 0 0 0 0 1.895v16.421h5.684V5.684h12.632zm-7.207 6.25v-.065c.272-.144.5-.349.687-.617s.279-.595.279-.982c0-.379-.099-.72-.3-1.025a2.05 2.05 0 0 0-.832-.714 2.703 2.703 0 0 0-1.197-.257c-.6 0-1.094.156-1.481.467-.386.311-.65.671-.793 1.078l1.085.452c.086-.249.224-.461.413-.633.189-.172.445-.257.767-.257.33 0 .602.088.816.264a.86.86 0 0 1 .322.703c0 .33-.12.589-.36.778-.24.19-.535.284-.886.284h-.567v1.085h.633c.407 0 .748.109 1.02.327.272.218.407.499.407.843 0 .336-.129.614-.387.832s-.565.327-.924.327c-.351 0-.651-.103-.897-.311-.248-.208-.422-.502-.521-.881l-1.096.452c.178.616.505 1.082.977 1.401.472.319.984.478 1.538.477a2.84 2.84 0 0 0 1.293-.291c.382-.193.684-.458.902-.794.218-.336.327-.72.327-1.149 0-.429-.115-.797-.344-1.105a2.067 2.067 0 0 0-.881-.689zm2.093-1.931l.602.913L15 10.045v5.744h1.187V8.446h-.827l-2.158 1.557zM22.105 0h-3.289v5.184H24V1.895A1.894 1.894 0 0 0 22.105 0zm-3.289 23.5l4.684-4.684h-4.684V23.5zM0 22.105C0 23.152.848 24 1.895 24h3.289v-5.184H0v3.289z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecampaignmanager360 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.8203 0c-2.093.0002-4.1858.7997-5.7832 2.3965-1.3364 1.3364-2.112 3.0208-2.33 4.7617a8.731 8.731 0 0 1 .4726-.0137c1.7849-.0001 3.5658.5466 5.0763 1.6387-.2066-.8822.0681-1.8261.7127-2.4707 1.046-1.0459 2.7113-.9977 3.7149.0059 1.0827 1.0826 2.8372 1.0826 3.92 0 1.0826-1.084 1.0826-2.8392 0-3.922C20.006.7992 17.9133-.0001 15.8202 0Zm7.0781 4.0781c.0785.929-.234 1.8855-.9414 2.5938-.9808.9809-2.438 1.2037-3.6386.6738.3115.9383.065 1.9896-.6329 2.6875-.9913.9913-2.6633 1.0662-3.7255.0039-.0173-.0172-.0293-.0352-.046-.0527l-.003.002c-3.1988-3.142-8.3393-3.1251-11.5165.0507-3.1935 3.1935-3.1935 8.373 0 11.5664 1.1618 1.1618 3.0453 1.1618 4.207 0 1.1618-1.1618.8689-2.7562-.293-3.918-.9353-.9354-1.1225-2.5928-.0058-3.7109.9095-.9095 2.5376-1.1696 3.7266-.0078.0726.0726.1477.1405.2246.2031 3.208 2.9849 8.2258 2.9155 11.3496-.207 2.68-2.679 3.1113-6.7548 1.295-9.8848zM10.7246 15.1992c.2151.8774-.0348 1.8317-.7012 2.498-.6718.672-1.6786.924-2.5918.6583.2105.3921.3471.8085.3926 1.2363.088.8272-.1925 1.6886-.8691 2.3652-.7565.7566-1.781 1.0896-2.7735 1 3.1157 1.7478 7.1304 1.2962 9.7813-1.3535 1.337-1.3364 2.1102-3.0208 2.3281-4.7617-1.946.1045-3.9194-.4446-5.5664-1.6426z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecardboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.087 4.235a3.07 3.07 0 0 0-2.183.91A3.133 3.133 0 0 0 0 7.35v9.296a3.13 3.13 0 0 0 .903 2.206 3.066 3.066 0 0 0 2.184.913h4.28a3.078 3.078 0 0 0 2.713-1.645l1.209-2.276a.785.785 0 0 1 .703-.42.783.783 0 0 1 .701.42l1.21 2.276a3.08 3.08 0 0 0 2.718 1.645h4.292a3.07 3.07 0 0 0 2.184-.913A3.13 3.13 0 0 0 24 16.646V7.35c0-.825-.324-1.618-.904-2.205a3.065 3.065 0 0 0-2.183-.91zm3.495 5.656c1.138 0 2.06.937 2.06 2.092 0 1.157-.922 2.093-2.06 2.093-1.139 0-2.061-.936-2.061-2.093 0-1.155.922-2.092 2.06-2.092zm10.832 0c1.139 0 2.061.937 2.061 2.092 0 1.157-.922 2.093-2.06 2.093-1.14 0-2.063-.936-2.063-2.093 0-1.155.923-2.092 2.062-2.092z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglechat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.637 0C.733 0 0 .733 0 1.637v16.5c0 .904.733 1.636 1.637 1.636h3.955v3.323c0 .804.97 1.207 1.539.638l3.963-3.96h11.27c.903 0 1.636-.733 1.636-1.637V5.592L18.408 0Zm3.955 5.592h12.816v8.59H8.455l-2.863 2.863Z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglechrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C8.21 0 4.831 1.757 2.632 4.501l3.953 6.848A5.454 5.454 0 0 1 12 6.545h10.691A12 12 0 0 0 12 0zM1.931 5.47A11.943 11.943 0 0 0 0 12c0 6.012 4.42 10.991 10.189 11.864l3.953-6.847a5.45 5.45 0 0 1-6.865-2.29zm13.342 2.166a5.446 5.446 0 0 1 1.45 7.09l.002.001h-.002l-5.344 9.257c.206.01.413.016.621.016 6.627 0 12-5.373 12-12 0-1.54-.29-3.011-.818-4.364zM12 16.364a4.364 4.364 0 1 1 0-8.728 4.364 4.364 0 0 1 0 8.728Z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglechronicle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.719 4.812 4.812 3v4l-4.812 3Zm0 10 4.812-3v9.375l-3.914-2.389a1.875 1.875 0 0 1-.898-1.6ZM2.719 0h18.562v4.812H2.719Zm4.812 21.188 13.75-8.594v4.618c0 .626-.323 1.208-.854 1.539L12 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleclassroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.6367 1.6367C.7322 1.6367 0 2.369 0 3.2734v17.4532c0 .9045.7322 1.6367 1.6367 1.6367h20.7266c.9045 0 1.6367-.7322 1.6367-1.6367V3.2734c0-.9045-.7322-1.6367-1.6367-1.6367H1.6367zm.545 2.1817h19.6367v16.3632h-2.7266v-1.0898h-4.9102v1.0898h-12V3.8184zM12 8.1816c-.9046 0-1.6367.7322-1.6367 1.6368 0 .9045.7321 1.6367 1.6367 1.6367.9046 0 1.6367-.7322 1.6367-1.6367 0-.9046-.7321-1.6368-1.6367-1.6368zm-4.3633 1.9102c-.6773 0-1.2285.5493-1.2285 1.2266 0 .6772.5512 1.2265 1.2285 1.2265.6773 0 1.2266-.5493 1.2266-1.2265 0-.6773-.5493-1.2266-1.2266-1.2266zm8.7266 0c-.6773 0-1.2266.5493-1.2266 1.2266 0 .6772.5493 1.2265 1.2266 1.2265.6773 0 1.2285-.5493 1.2285-1.2265 0-.6773-.5512-1.2266-1.2285-1.2266zM12 12.5449c-1.179 0-2.4128.4012-3.1484 1.0059-.384-.1198-.8043-.1875-1.2149-.1875-1.3136 0-2.7285.695-2.7285 1.5586v.8965h14.1836v-.8965c0-.8637-1.4149-1.5586-2.7285-1.5586-.4106 0-.831.0677-1.2149.1875-.7356-.6047-1.9694-1.0059-3.1484-1.0059Z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.19 2.38a9.344 9.344 0 0 0-9.234 6.893c.053-.02-.055.013 0 0-3.875 2.551-3.922 8.11-.247 10.941l.006-.007-.007.03a6.717 6.717 0 0 0 4.077 1.356h5.173l.03.03h5.192c6.687.053 9.376-8.605 3.835-12.35a9.365 9.365 0 0 0-2.821-4.552l-.043.043.006-.05A9.344 9.344 0 0 0 12.19 2.38zm-.358 4.146c1.244-.04 2.518.368 3.486 1.15a5.186 5.186 0 0 1 1.862 4.078v.518c3.53-.07 3.53 5.262 0 5.193h-5.193l-.008.009v-.04H6.785a2.59 2.59 0 0 1-1.067-.23h.001a2.597 2.597 0 1 1 3.437-3.437l3.013-3.012A6.747 6.747 0 0 0 8.11 8.24c.018-.01.04-.026.054-.023a5.186 5.186 0 0 1 3.67-1.69z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecloudcomposer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.636 4.752h-6.42V0h17.556v4.728h-6.36v6.396H9.636V4.752zm-6.42 1.692h4.74v6.36h6.408V24H9.636v-6.42h-6.42V6.444zm12.84-.012h4.728V24h-4.728V6.432zM7.92 24H3.216v-4.728H7.92V24z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecloudspanner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 9.06 7.944 6.864V2.388L10.38.924v3.66l1.62.744 1.62-.744V.924l2.436 1.464v4.476L12 9.06zm-8.124 4.752L0 16.056v2.988l3.228-1.86 1.404.912.096 1.632-3.24 1.872 2.616 1.476 3.828-2.268-.132-4.596-3.924-2.4zm9.732-.9V8.758l-1.37.742-.238.129-.238-.13-1.37-.741v4.154l-3.613 2.09 1.282.783.231.142.008.27.046 1.612L12 15.696l3.595 2.079.045-1.59.008-.27.231-.142 1.301-.795-3.572-2.066zm7.164 4.272L24 19.044v-2.988L20.064 13.8l-3.924 2.4-.132 4.596 3.888 2.244 2.616-1.44-3.24-1.836.096-1.668 1.404-.912z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecloudstorage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 2.4v8.4h-2.4V2.4H24zM0 10.8h2.4V2.4H0v8.4zm3-8.4h18v8.4H3V2.4zm12.6 4.2a1.8 1.8 0 1 0 3.6 0 1.8 1.8 0 0 0-3.6 0zm-10.8.6H12V6H4.8v1.2zm16.8 14.4H24v-8.4h-2.4v8.4zM0 21.6h2.4v-8.4H0v8.4zm3-8.4h18v8.4H3v-8.4zm12.6 4.2a1.8 1.8 0 1 0 3.6 0 1.8 1.8 0 0 0-3.6 0zM4.8 18H12v-1.2H4.8V18z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecolab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.9414 4.9757a7.033 7.033 0 0 0-4.9308 2.0646 7.033 7.033 0 0 0-.1232 9.8068l2.395-2.395a3.6455 3.6455 0 0 1 5.1497-5.1478l2.397-2.3989a7.033 7.033 0 0 0-4.8877-1.9297zM7.07 4.9855a7.033 7.033 0 0 0-4.8878 1.9316l2.3911 2.3911a3.6434 3.6434 0 0 1 5.0227.1271l1.7341-2.9737-.0997-.0802A7.033 7.033 0 0 0 7.07 4.9855zm15.0093 2.1721l-2.3892 2.3911a3.6455 3.6455 0 0 1-5.1497 5.1497l-2.4067 2.4068a7.0362 7.0362 0 0 0 9.9456-9.9476zM1.932 7.1674a7.033 7.033 0 0 0-.002 9.6816l2.397-2.397a3.6434 3.6434 0 0 1-.004-4.8916zm7.664 7.4235c-1.38 1.3816-3.5863 1.411-5.0168.1134l-2.397 2.395c2.4693 2.3328 6.263 2.5753 9.0072.5455l.1368-.1115z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglecontaineroptimizedos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 21.6a9.6 9.6 0 0 1-5.016-1.416L11.28 17.7v-5.4L6.612 9.6v5.424l3.3 1.908-4.152 2.4A9.6 9.6 0 0 1 7.296 3.6v4.8L12 11.136 16.68 8.4 12 5.724 8.688 7.632V2.964a9.6 9.6 0 0 1 12.372 5.64A9.72 9.72 0 0 1 21.672 12v.084L17.352 9.6l-4.68 2.712v5.412l4.68-2.7v-3.816l4.14 2.4A9.6 9.6 0 0 1 12 21.6z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogledataflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.856 9.6 3.72 9.564l.036-2.46 6.312-3.516L5.94 1.14 8.028 0l4.092 2.436h.012L16.284.108h.06l1.992 1.188-4.188 2.352 6.168 3.684v2.46l-2.124-.036.012-1.284L13.116 5.4l-.024 2.076-1.224-.012v-.0022l-.84-.0098.024-2.076-5.172 2.94L5.856 9.6zm12.252 6.072-5.16 2.94.024-2.064-2.064-.024-.024 2.064-5.1-3.072.012-1.248H3.684v2.4l6.168 3.684 2.0111 1.1971.005.0149L15.972 24h.06l2.028-1.14-4.128-2.448-.02.0111.008-.0231 6.324-3.516.036-2.508-2.148-.024-.024 1.32zM5.664 22.704l1.992 1.188h.06l4.152-2.328-2.016-1.212-4.188 2.352zm13.68-12.024c-.7555 0-1.368.6125-1.368 1.368 0 .7555.6125 1.368 1.368 1.368.7556 0 1.368-.6125 1.368-1.368 0-.7555-.6124-1.368-1.368-1.368zM4.656 13.224c.7555 0 1.368-.6125 1.368-1.368 0-.7556-.6125-1.368-1.368-1.368-.7556 0-1.368.6124-1.368 1.368 0 .7555.6124 1.368 1.368 1.368zm7.416-5.004c-.7555 0-1.368.6125-1.368 1.368 0 .7556.6125 1.368 1.368 1.368s1.368-.6124 1.368-1.368c0-.7555-.6125-1.368-1.368-1.368zm-.108 4.812c-.7555 0-1.368.6125-1.368 1.368s.6125 1.368 1.368 1.368c.7555 0 1.368-.6125 1.368-1.368s-.6125-1.368-1.368-1.368z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogledataproc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.373 20.364a4.682 4.682 0 0 1-8.1 0 4.694 4.694 0 0 1 0-4.669c.326-.564.778-.995 1.272-1.358.472.198 3.394 1.421 3.917 1.717a2.291 2.291 0 0 0-3.109.842 2.304 2.304 0 0 0 0 2.267 2.267 2.267 0 0 0 2.564 1.053 2.254 2.254 0 0 0 1.375-1.053 2.328 2.328 0 0 0 0-2.279 2.478 2.478 0 0 0-.83-.83l-3.53-2.045-5.727-3.317a5.022 5.022 0 0 0 4.139-.36l6.32 3.641a4.682 4.682 0 0 1 1.709 6.391zm-14-2.01v.004l-3.558 2a2.27 2.27 0 0 1-3.102-.823 2.267 2.267 0 0 1 2.551-3.332c.591.161 1.089.56 1.375 1.102v-.05a2.27 2.27 0 0 1-.824 3.103c.559-.303 3.352-2.62 3.465-2.714-.304-1.744-1.573-3.24-3.396-3.72a4.608 4.608 0 0 0-3.558.479 4.67 4.67 0 0 0-1.694 6.383 4.682 4.682 0 0 0 2.865 2.192 4.657 4.657 0 0 0 3.66-.56l6.877-3.973c-.019-1.303.512-2.604 1.375-3.58l-6.036 3.49zm-2.4-4.703v-8.1h.012c.002-1.617.821-3.189 2.321-4.055a4.682 4.682 0 1 1 2.337 8.737 4.678 4.678 0 0 1-1.55-.28c-.016-.085-.733-3.796-.733-4.188L9.29 9.59v6.761a4.075 4.075 0 0 0-2.317-2.7zm2.403-8.1a2.279 2.279 0 1 0 4.546 0 2.23 2.23 0 0 0-.297-1.127 2.279 2.279 0 0 0-1.97-1.14 2.267 2.267 0 0 0-2.279 2.254v.013z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogledatastudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.197 23.002c-1.016-.613-1.697-1.728-1.697-3 0-1.273.681-2.388 1.697-3h-6.909a3.034 3.034 0 0 0-.252-.011c-1.656 0-3.022 1.355-3.036 3.011v.014c0 1.645 1.354 3 3 3 .096 0 .192-.005.288-.014h6.909Zm1.803-6c1.656 0 3 1.344 3 3s-1.344 3-3 3-3-1.344-3-3 1.344-3 3-3Zm-10.803-2.004c-1.016-.613-1.697-1.728-1.697-3 0-1.273.681-2.388 1.697-3H3.288a3.034 3.034 0 0 0-.252-.011C1.38 8.987.014 10.342 0 11.998v.014c0 1.645 1.354 3 3 3 .096 0 .192-.005.288-.014h6.909Zm1.803-6c1.656 0 3 1.344 3 3s-1.344 3-3 3-3-1.344-3-3 1.344-3 3-3Zm7.197-2.004c-1.016-.613-1.697-1.728-1.697-3 0-1.273.681-2.388 1.697-3h-6.909c-.08-.006-.16-.01-.24-.01C10.39.984 9.021 2.336 9 3.994v.014c0 1.645 1.354 3 3 3 .096 0 .192-.005.288-.014h6.909Zm1.803-6c1.656 0 3 1.344 3 3s-1.344 3-3 3-3-1.344-3-3 1.344-3 3-3Z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogledisplayandvideo360 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.421.01a2.947 2.947 0 0 0-2.828 1.52 2.967 2.967 0 0 0 1.094 4.076l10.6 6.064 4.79-2.672a3.546 3.546 0 0 1 1.811-.443L5.701.424A2.947 2.947 0 0 0 4.42.01ZM1.164 4.768v14.484a3.474 3.474 0 0 1 2.972-1.687 3.47 3.47 0 0 1 2.961 1.672l.004-10.53L2.44 6.04a3.433 3.433 0 0 1-1.275-1.271Zm18.42 4.289a3.08 3.08 0 0 0-1.264.379L7.6 15.414c.003 1.873-.011 3.745.003 5.617 0 .4-.072.988-.396 1.606l12.548-7.227 1.487-.83a2.978 2.978 0 0 0 1.463-3.511 3.08 3.08 0 0 0-3.121-2.012ZM4.136 18.065A2.967 2.967 0 1 0 4.134 24a2.967 2.967 0 0 0 .002-5.935z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogledocs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.727 6.727H14V0H4.91c-.905 0-1.637.732-1.637 1.636v20.728c0 .904.732 1.636 1.636 1.636h14.182c.904 0 1.636-.732 1.636-1.636V6.727h-6zm-.545 10.455H7.09v-1.364h7.09v1.364zm2.727-3.273H7.091v-1.364h9.818v1.364zm0-3.273H7.091V9.273h9.818v1.363zM14.727 6h6l-6-6v6z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogledrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 1.485c-2.082 0-3.754.02-3.743.047.01.02 1.708 3.001 3.774 6.62l3.76 6.574h3.76c2.081 0 3.753-.02 3.742-.047-.005-.02-1.708-3.001-3.775-6.62l-3.76-6.574zm-4.76 1.73a789.828 789.861 0 0 0-3.63 6.319L0 15.868l1.89 3.298 1.885 3.297 3.62-6.335 3.618-6.33-1.88-3.287C8.1 4.704 7.255 3.22 7.25 3.214zm2.259 12.653-.203.348c-.114.198-.96 1.672-1.88 3.287a423.93 423.948 0 0 1-1.698 2.97c-.01.026 3.24.042 7.222.042h7.244l1.796-3.157c.992-1.734 1.85-3.23 1.906-3.323l.104-.167h-7.249z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleearth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-1.326 0-2.597.22-3.787.613 4.94-1.243 8.575 1.72 11.096 5.606 1.725 2.695 2.813 2.83 4.207 2.412A11.956 11.956 0 0012 0zM7.658 2.156c-1.644.019-3.295.775-4.931 2.207A11.967 11.967 0 000 12c.184-2.823 2.163-5.128 4.87-5.07 2.104.044 4.648 1.518 7.13 5.289 4.87 7.468 10.917 5.483 11.863 1.51.081-.566.137-1.14.137-1.729 0-.176-.02-.347-.027-.521-1.645 1.725-4.899 2.35-8.264-2.97-2.59-4.363-5.31-6.383-8.05-6.353zM3.33 13.236c-1.675.13-2.657 1.804-2.242 3.756A11.955 11.955 0 0012 24c4.215 0 7.898-2.149 10.037-5.412v-.043c-2.836 3.49-8.946 4.255-13.855-2.182-1.814-2.386-3.544-3.228-4.852-3.127Z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleearthengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.853.717a1.19 1.19 0 00-.65.17L4.53 2.49c-.53.317-.732.984-.467 1.543l.93 1.958a9.217 9.217 0 00-1.745 3.076l-2.124.135A1.198 1.198 0 000 10.399v3.116a1.2 1.2 0 001.084 1.194l2.171.21a9.207 9.207 0 001.748 3.066l-.941 1.982a1.198 1.198 0 00.467 1.543l2.673 1.603a1.2 1.2 0 001.605-.347l1.22-1.771a9.22 9.22 0 001.971.216c.032 0 .064-.004.096-.004a9.245 9.245 0 001.876-.212l1.22 1.77a1.2 1.2 0 001.606.348l2.673-1.603c.53-.317.732-.984.467-1.543l-.941-1.982c.022-.025.048-.049.07-.076.066-.077.125-.159.188-.238a9.225 9.225 0 001.484-2.736l2.138-.137A1.198 1.198 0 0024 13.601v-3.116a1.2 1.2 0 00-1.084-1.194V9.29l-2.16-.21a9.182 9.182 0 00-1.501-2.786c-.063-.08-.124-.16-.19-.238-.018-.022-.039-.043-.058-.065l.93-1.958a1.198 1.198 0 00-.467-1.543L16.797.887a1.2 1.2 0 00-1.605.347L13.99 2.976a9.169 9.169 0 00-1.896-.219c-.033 0-.064-.004-.096-.004a9.2 9.2 0 00-1.992.223L8.808 1.234a1.2 1.2 0 00-.955-.517zm4.148 3.882c.574 0 1.13.072 1.668.197a7.41 7.41 0 015.384 4.993 7.36 7.36 0 01.332 2.193c0 .764-.116 1.5-.332 2.193a7.407 7.407 0 01-5.384 4.992 7.393 7.393 0 01-1.668.199c-4.071 0-7.384-3.313-7.384-7.384 0-4.07 3.313-7.383 7.384-7.383zM11.907 6C9.558 6 8.429 7.207 8.429 7.207c3.501-1.577 5.23 2.986 6.702 4.386 1.472 1.4 2.887.203 2.887.203-.012-.787-.252-1.533-.252-1.533-.968.168-1.398-.494-1.97-1.252C15.224 8.253 13.561 6 11.907 6zm-3.84 3.228c-.705.015-1.3.35-1.653 1-.868 1.601-.096 3.64-.096 3.64s.3-1.532 1.537-1.309c1.238.224 1.754 1.208 2.504 1.985.75.776 1.895 2.064 3.978 2.064 2.082 0 3.018-1.516 3.435-2.937v-.002l-.053.04c-1.265.98-3.335.882-4.548-.275-.89-.846-1.403-1.908-2.135-2.68-.981-1.038-2.065-1.545-2.97-1.526z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglefit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.218 4.868c-1.235-2.194-3.927-3.356-6.378-2.843-1.11.243-2.173.774-2.979 1.583-.622.613-1.242 1.229-1.864 1.841-.915-.91-1.788-1.937-2.882-2.648a5.98 5.98 0 0 0-3.904-.845c-4.757.578-6.936 6.346-3.615 9.85 3.481 3.418 6.937 6.863 10.413 10.288 3.291-3.251 6.573-6.51 9.871-9.752 2.132-1.831 2.8-5.026 1.338-7.474zM6.162 11.223c-.692-.755-1.511-1.404-2.141-2.208-.821-1.218-.158-3.012 1.26-3.397.781-.256 1.683-.031 2.279.527.627.609 1.236 1.237 1.866 1.843l.005.006a414.706 414.706 0 0 0-3.269 3.229zm5.846 5.758a3300.079 3300.079 0 0 1-3.255-3.22c2.555-2.516 5.103-5.042 7.65-7.566.393-.394.93-.646 1.487-.673 2.086-.154 3.285 2.372 1.801 3.866-2.549 2.542-5.121 5.062-7.683 7.593z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglefonts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 2.8A3.6 3.6 0 1 0 4 10a3.6 3.6 0 0 0 0-7.2zm7.6 0v18.4h7.2a5.2 5.2 0 1 1 0-10.4 4 4 0 1 1 0-8zm7.2 0v8a4 4 0 1 0 0-8zm0 8v10.4A5.2 5.2 0 0 0 24 16a5.2 5.2 0 0 0-5.2-5.2zm-7.7-7.206L0 21.199h8.8l2.3-3.64Z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleforms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.727 6h6l-6-6v6zm0 .727H14V0H4.91c-.905 0-1.637.732-1.637 1.636v20.728c0 .904.732 1.636 1.636 1.636h14.182c.904 0 1.636-.732 1.636-1.636V6.727h-6zM7.91 17.318a.819.819 0 1 1 .001-1.638.819.819 0 0 1 0 1.638zm0-3.273a.819.819 0 1 1 .001-1.637.819.819 0 0 1 0 1.637zm0-3.272a.819.819 0 1 1 .001-1.638.819.819 0 0 1 0 1.638zm9 6.409h-6.818v-1.364h6.818v1.364zm0-3.273h-6.818v-1.364h6.818v1.364zm0-3.273h-6.818V9.273h6.818v1.363z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglegemini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.04 19.32Q12 21.51 12 24q0-2.49.93-4.68.96-2.19 2.58-3.81t3.81-2.55Q21.51 12 24 12q-2.49 0-4.68-.93a12.3 12.3 0 0 1-3.81-2.58 12.3 12.3 0 0 1-2.58-3.81Q12 2.49 12 0q0 2.49-.96 4.68-.93 2.19-2.55 3.81a12.3 12.3 0 0 1-3.81 2.58Q2.49 12 0 12q2.49 0 4.68.96 2.19.93 3.81 2.55t2.55 3.81\"},\"child\":[]}]})(props);\n};\nexport function SiGooglehome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a1.44 1.44 0 0 0-.947.399L.547 10.762a1.26 1.26 0 0 0-.342.808v11.138c0 .768.53 1.292 1.311 1.292h20.968c.78 0 1.311-.522 1.311-1.292V11.57a1.25 1.25 0 0 0-.34-.804L15.68 3.097h-.001L12.947.4A1.454 1.454 0 0 0 12 0Zm0 6.727 6.552 6.456v5.65H5.446v-5.65z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglekeep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.908 0c-.904 0-1.635.733-1.635 1.637v20.726c0 .904.732 1.637 1.635 1.637H19.09c.904 0 1.637-.733 1.637-1.637V6.5h-6.5V0H4.908zm9.819 0v6h6l-6-6zM11.97 8.229c.224 0 .571.031.765.072.2.04.576.185.842.312.828.414 1.467 1.164 1.774 2.088.168.511.188 1.34.05 1.865a3.752 3.752 0 0 1-1.277 1.952l-.25.193h-1.87c-2.134 0-1.931.042-2.478-.494a3.349 3.349 0 0 1-.984-1.844c-.148-.766-.053-1.437.32-2.203.19-.399.303-.556.65-.899.68-.679 1.513-1.037 2.458-1.042zm-1.866 7.863h3.781v1.328h-3.779v-1.328z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglelens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 16.667a4.666 4.666 0 100-9.333 4.666 4.666 0 000 9.333m8 6a2.666 2.666 0 100-5.333 2.666 2.666 0 000 5.333m-13.333-2a3.343 3.343 0 01-3.334-3.334v-2.666H0v2.666A6.665 6.665 0 006.667 24h2.666v-3.333zm-3.334-14c0-1.834 1.5-3.334 3.334-3.334h2.666V0H6.667A6.665 6.665 0 000 6.667v2.666h3.333zm14-3.334c1.834 0 3.334 1.5 3.334 3.334v2.666H24V6.667A6.665 6.665 0 0017.333 0h-2.666v3.333Z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglemaps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.527 4.799c1.212 2.608.937 5.678-.405 8.173-1.101 2.047-2.744 3.74-4.098 5.614-.619.858-1.244 1.75-1.669 2.727-.141.325-.263.658-.383.992-.121.333-.224.673-.34 1.008-.109.314-.236.684-.627.687h-.007c-.466-.001-.579-.53-.695-.887-.284-.874-.581-1.713-1.019-2.525-.51-.944-1.145-1.817-1.79-2.671L19.527 4.799zM8.545 7.705l-3.959 4.707c.724 1.54 1.821 2.863 2.871 4.18.247.31.494.622.737.936l4.984-5.925-.029.01c-1.741.601-3.691-.291-4.392-1.987a3.377 3.377 0 0 1-.209-.716c-.063-.437-.077-.761-.004-1.198l.001-.007zM5.492 3.149l-.003.004c-1.947 2.466-2.281 5.88-1.117 8.77l4.785-5.689-.058-.05-3.607-3.035zM14.661.436l-3.838 4.563a.295.295 0 0 1 .027-.01c1.6-.551 3.403.15 4.22 1.626.176.319.323.683.377 1.045.068.446.085.773.012 1.22l-.003.016 3.836-4.561A8.382 8.382 0 0 0 14.67.439l-.009-.003zM9.466 5.868L14.162.285l-.047-.012A8.31 8.31 0 0 0 11.986 0a8.439 8.439 0 0 0-6.169 2.766l-.016.018 3.665 3.084z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglemarketingplatform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C8.926 0 5.852 1.17 3.511 3.511c-4.37 4.371-4.66 11.299-.869 16.01a3.138 3.138 0 0 1 .719-3.314 3.138 3.138 0 0 1 3.672-.56 6.163 6.163 0 0 1 9.324-8.004 2.921 2.921 0 1 0 4.132-4.132A11.968 11.968 0 0 0 12 0zm9.36 4.481a3.138 3.138 0 0 1-.72 3.313 3.138 3.138 0 0 1-3.672.56 6.165 6.165 0 0 1-.61 8.003 2.921 2.921 0 1 0 4.131 4.132c4.37-4.37 4.66-11.298.87-16.008zM5.576 15.501a2.92 2.92 0 0 0-2.922 2.922 2.92 2.92 0 0 0 2.922 2.922 2.92 2.92 0 0 0 2.922-2.922A2.92 2.92 0 0 0 5.577 15.5zm10.07 1.467a6.168 6.168 0 0 1-7.293 0 3.14 3.14 0 0 1-.56 3.672 3.136 3.136 0 0 1-3.314.718c4.376 3.523 10.665 3.523 15.04 0a3.136 3.136 0 0 1-3.313-.718 3.138 3.138 0 0 1-.56-3.672z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglemeet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.53 2.13 0 7.75h5.53zm.398 0v5.62h7.608v3.65l5.47-4.45c-.014-1.22.031-2.25-.025-3.46-.148-1.09-1.287-1.47-2.236-1.36zM23.1 4.32c-.802.295-1.358.995-2.047 1.49-2.506 2.05-4.982 4.12-7.468 6.19 3.025 2.59 6.04 5.18 9.065 7.76 1.218.671 1.428-.814 1.328-1.64v-13a.828.828 0 0 0-.877-.825zM.038 8.15v7.7h5.53v-7.7zm13.577 8.1H6.008v5.62c3.864-.006 7.737.011 11.58-.009 1.02-.07 1.618-1.12 1.468-2.07v-2.51l-5.47-4.68v3.65zm-13.577 0c.02 1.44-.041 2.88.033 4.31.162.948 1.158 1.43 2.047 1.31h3.464v-5.62z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglemessages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zM4.911 7.089h11.456a2.197 2.197 0 0 1 2.165 2.19v5.863a2.213 2.213 0 0 1-2.177 2.178H8.04c-1.174 0-2.04-.99-2.04-2.178v-4.639L4.503 7.905c-.31-.42-.05-.816.408-.816zm3.415 2.19c-.347 0-.68.21-.68.544 0 .334.333.544.68.544h7.905c.346 0 .68-.21.68-.544 0-.334-.334-.545-.68-.545zm0 2.177c-.347 0-.68.21-.68.544 0 .334.333.544.68.544h7.905c.346 0 .68-.21.68-.544 0-.334-.334-.544-.68-.544zm-.013 2.19c-.346 0-.68.21-.68.544 0 .334.334.544.68.544h5.728c.347 0 .68-.21.68-.544 0-.334-.333-.545-.68-.545z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglenearby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5459 12.0003L12.001 6.545l5.4541 5.4552-5.4541 5.454zm16.9763-1.154L13.158.48a1.635 1.635 0 00-2.314 0L.4778 10.8462a1.629 1.629 0 000 2.305L10.848 23.5226a1.629 1.629 0 002.304 0l10.3702-10.3712a1.629 1.629 0 000-2.305zM12 20.7263l-8.7272-8.7281L12 3.27l8.7272 8.7282z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglenews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.2666 21.2a.6141.6141 0 0 1-.6128.6128H3.3446a.614.614 0 0 1-.6128-.6128V8.1153a.6141.6141 0 0 1 .6128-.6128h17.3091a.6141.6141 0 0 1 .6128.6128V21.2zm-3.0315-3.4196v-1.1957a.0803.0803 0 0 0-.0803-.0803h-5.3725v1.3619h5.3725a.0817.0817 0 0 0 .0804-.083l-.0001-.0029zm.8171-2.5875v-1.2012a.0803.0803 0 0 0-.079-.0817h-6.191v1.3619h6.1896a.079.079 0 0 0 .0804-.0776v-.0041.0027zm-.8171-2.5875v-1.2066a.0803.0803 0 0 0-.0803-.0803h-5.3725v1.3619h5.3725a.0816.0816 0 0 0 .0803-.079v.004zM8.1492 14.0448v1.2257h1.7704c-.1457.749-.8049 1.2924-1.7704 1.2924-1.0906-.0405-1.9418-.9574-1.9013-2.048.0384-1.0338.8676-1.8629 1.9013-1.9013a1.77 1.77 0 0 1 1.2529.4903l.9342-.9329a3.1405 3.1405 0 0 0-2.1871-.8525c-1.8051 0-3.2684 1.4633-3.2684 3.2684 0 1.8051 1.4633 3.2684 3.2684 3.2684 1.8889 0 3.1323-1.3278 3.1323-3.1976a3.941 3.941 0 0 0-.0518-.6183l-3.0805.0054zM2.2701 7.6537a.6156.6156 0 0 1 .6128-.6128h12.1545l-1.2692-3.4904a.5952.5952 0 0 0-.7436-.3827L.3676 7.7749a.5938.5938 0 0 0-.3228.7749l2.2253 6.112V7.6537za.6156.6156 0 0 1 .6128-.6128h12.1545l-1.2692-3.4904a.5952.5952 0 0 0-.7436-.3827L.3676 7.7749a.5938.5938 0 0 0-.3228.7749l2.2253 6.112V7.6537zm21.3116-.3105l-8.803-2.3683.7517 2.0659h5.5836a.6141.6141 0 0 1 .6128.6128v8.7948l2.2471-8.3659a.5923.5923 0 0 0-.3922-.7393zm-4.4955-1.6738V2.7946a.6101.6101 0 0 0-.6115-.6074H5.5236a.6101.6101 0 0 0-.6156.6046v2.8368l8.3904-3.0519a.5937.5937 0 0 1 .7422.3895l.5447 1.498 4.5009 1.2052z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglepay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.963 7.235A3.963 3.963 0 00.422 9.419a3.963 3.963 0 000 3.559 3.963 3.963 0 003.541 2.184c1.07 0 1.97-.352 2.627-.957.748-.69 1.18-1.71 1.18-2.916a4.722 4.722 0 00-.07-.806H3.964v1.526h2.14a1.835 1.835 0 01-.79 1.205c-.356.241-.814.379-1.35.379-1.034 0-1.911-.697-2.225-1.636a2.375 2.375 0 010-1.517c.314-.94 1.191-1.636 2.225-1.636a2.152 2.152 0 011.52.594l1.132-1.13a3.808 3.808 0 00-2.652-1.033zm6.501.55v6.9h.886V11.89h1.465c.603 0 1.11-.196 1.522-.588a1.911 1.911 0 00.635-1.464 1.92 1.92 0 00-.635-1.456 2.125 2.125 0 00-1.522-.598zm2.427.85a1.156 1.156 0 01.823.365 1.176 1.176 0 010 1.686 1.171 1.171 0 01-.877.357H11.35V8.635h1.487a1.156 1.156 0 01.054 0zm4.124 1.175c-.842 0-1.477.308-1.907.925l.781.491c.288-.417.68-.626 1.175-.626a1.255 1.255 0 01.856.323 1.009 1.009 0 01.366.785v.202c-.34-.193-.774-.289-1.3-.289-.617 0-1.11.145-1.479.434-.37.288-.554.677-.554 1.165a1.476 1.476 0 00.525 1.156c.35.308.785.463 1.305.463.61 0 1.098-.27 1.465-.81h.038v.655h.848v-2.909c0-.61-.19-1.09-.568-1.44-.38-.35-.896-.525-1.551-.525zm2.263.154l1.946 4.422-1.098 2.38h.915L24 9.963h-.965l-1.368 3.391h-.02l-1.406-3.39zm-2.146 2.368c.494 0 .88.11 1.156.33 0 .372-.147.696-.44.973a1.413 1.413 0 01-.997.414 1.081 1.081 0 01-.69-.232.708.708 0 01-.293-.578c0-.257.12-.47.363-.647.24-.173.54-.26.9-.26Z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglephotos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.678 16.672c0 2.175.002 4.565-.001 6.494-.001.576-.244.814-.817.833-7.045.078-8.927-7.871-4.468-11.334-1.95.016-4.019.007-5.986.007-1.351 0-1.414-.01-1.405-1.351.258-6.583 7.946-8.275 11.323-3.936L11.308.928c-.001-.695.212-.906.906-.925 6.409-.187 9.16 7.308 4.426 11.326l6.131.002c1.097 0 1.241.105 1.228 1.217-.223 6.723-7.802 8.376-11.321 4.124zm.002-15.284l-.003 9.972c6.56-.465 6.598-9.532.003-9.972zm-1.36 21.224l-.001-9.97c-6.927.598-6.29 9.726.002 9.97zM1.4 11.315l9.95.008c-.527-6.829-9.762-6.367-9.95-.008zm11.238 1.365c.682 6.875 9.67 6.284 9.977.01z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.018 13.298l-3.919 2.218-3.515-3.493 3.543-3.521 3.891 2.202a1.49 1.49 0 0 1 0 2.594zM1.337.924a1.486 1.486 0 0 0-.112.568v21.017c0 .217.045.419.124.6l11.155-11.087L1.337.924zm12.207 10.065l3.258-3.238L3.45.195a1.466 1.466 0 0 0-.946-.179l11.04 10.973zm0 2.067l-11 10.933c.298.036.612-.016.906-.183l13.324-7.54-3.23-3.21z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglepubsub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.3 7.452a2.064 2.064 0 1 1 4.128 0 2.064 2.064 0 0 1-4.128 0zM3.636 9.516a2.064 2.064 0 1 0 0-4.128 2.064 2.064 0 0 0 0 4.128zM12 19.872A2.064 2.064 0 1 0 12 24a2.064 2.064 0 0 0 0-4.128zm-5.774-3.151a2.591 2.591 0 0 0-.118-.48c0-.002 0-.004-.002-.006a2.595 2.595 0 0 0-.2-.436l-.004-.008a2.618 2.618 0 0 0-.276-.39l-.001-.001a2.622 2.622 0 0 0-.346-.336 2.603 2.603 0 0 0-1.643-.592A2.628 2.628 0 1 0 6.264 17.1c0-.13-.02-.254-.038-.38zm8.499-2.53c.033-.047.063-.097.094-.147a3.32 3.32 0 0 0 .201-.37c.026-.055.052-.108.074-.164a3.301 3.301 0 0 0 .242-1.234c0-1.51-1.01-2.772-2.388-3.183a3.277 3.277 0 0 0-.42-.1A2.882 2.882 0 0 0 12 8.94c-.183 0-.359.021-.532.054a3.272 3.272 0 0 0-.428.103 3.325 3.325 0 0 0-2.376 3.179c0 .567.155 1.093.405 1.561.028.054.055.108.086.16.062.102.13.198.201.292.039.051.08.099.12.147a3.314 3.314 0 0 0 4.885.196c.135-.135.254-.284.364-.44zm-8.987.608c.473.433.818 1.002.956 1.651l2.575-1.486a3.83 3.83 0 0 1-.946-1.657L5.738 14.8zm5.302-9.21v2.988A3.79 3.79 0 0 1 12 8.44c.329 0 .643.055.948.133v-2.98c-.3.097-.615.163-.948.163-.337 0-.656-.067-.96-.166zm7.317 9.132L15.711 13.2a3.818 3.818 0 0 1-.914 1.683l2.542 1.46a3.115 3.115 0 0 1 1.018-1.622zm2.007-.249c-.58 0-1.112.194-1.547.513a2.633 2.633 0 0 0-.662.701l-.013.024c-.082.13-.155.265-.212.409-.008.02-.012.041-.02.061a2.588 2.588 0 0 0-.124.421 2.628 2.628 0 1 0 2.578-2.129zm-8.862-9.266a2.52 2.52 0 0 0 .99 0A2.626 2.626 0 0 0 12 0a2.627 2.627 0 0 0-.498 5.206z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglescholar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.242 13.769L0 9.5 12 0l12 9.5-5.242 4.269C17.548 11.249 14.978 9.5 12 9.5c-2.977 0-5.548 1.748-6.758 4.269zM12 10a7 7 0 1 0 0 14 7 7 0 0 0 0-14z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglesearchconsole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.548 1.156L6.832 2.872v1.682h1.716zm0 3.398v.035H6.832v-.035H3.386L0 7.844v3.577h2.826V8.94c0-.525.429-.954.954-.954h16.476c.525 0 .954.43.954.954v2.48h2.754V7.844l-3.386-3.29H17.3v.035h-1.717v-.035zm7.035 0H17.3V2.872l-1.717-1.716zM8.679 1.188V2.84h6.773V1.188zm11.471 7.07a.834.834 0 00-.132.01l-.543.002c-5.216.014-10.432-.008-15.648.01-.435-.063-.794.436-.716.883v2.264h17.812c-.016-.888.045-1.782-.034-2.666-.104-.342-.427-.502-.739-.502zm-15.422.634a.689.698 0 01.689.698.689.698 0 01-.689.697.689.698 0 01-.688-.697.689.698 0 01.688-.698zm2.134 0a.689.698 0 01.689.698.689.698 0 01-.689.697.689.698 0 01-.688-.697.689.698 0 01.688-.698zM.036 11.645v9.156c0 1.05.858 1.908 1.907 1.908h.883V11.645zm21.174 0v11.064h.882c1.05 0 1.908-.858 1.908-1.908v-9.156zM4.057 13.133v6.85h6.137v-6.85zm13.243.021v3.777l-1.708.977-1.708-.977v-3.758a4.006 4.006 0 000 7.23v2.441h3.457v-2.442a4.006 4.006 0 00-.041-7.248zm-13.243 8.26v1.43h7.925v-1.43z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglesheets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.318 12.545H7.91v-1.909h3.41v1.91zM14.728 0v6h6l-6-6zm1.363 10.636h-3.41v1.91h3.41v-1.91zm0 3.273h-3.41v1.91h3.41v-1.91zM20.727 6.5v15.864c0 .904-.732 1.636-1.636 1.636H4.909a1.636 1.636 0 0 1-1.636-1.636V1.636C3.273.732 4.005 0 4.909 0h9.318v6.5h6.5zm-3.273 2.773H6.545v7.909h10.91v-7.91zm-6.136 4.636H7.91v1.91h3.41v-1.91z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogleslides (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.09 15.273H7.91v-4.637h8.18v4.637zm1.728-8.523h2.91v15.614c0 .904-.733 1.636-1.637 1.636H4.909a1.636 1.636 0 0 1-1.636-1.636V1.636C3.273.732 4.005 0 4.909 0h9.068v6.75h3.841zm-.363 2.523H6.545v7.363h10.91V9.273zm-2.728-5.979V6h6.001l-6-6v3.294z\"},\"child\":[]}]})(props);\n};\nexport function SiGooglestreetview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.571 5.714a5.714 5.714 0 1 1 11.43 0 5.714 5.714 0 0 1-11.43 0zm2.264 5.165l-3.502 3.502c2.015-1.488 4.48-2.31 6.953-2.31 1.155 0 2.307.182 3.428.53v-1.709a6.176 6.176 0 0 1-3.428 1.037 6.177 6.177 0 0 1-3.45-1.05zm6.88 11.407V13.12a11.074 11.074 0 0 0-3.43-.55 11.25 11.25 0 0 0-6.731 2.265c-.425.34-.697.863-.697 1.45V24H20a1.72 1.72 0 0 0 1.714-1.714zM13.12 9.165L.001 22.285V4a1.72 1.72 0 0 1 1.713-1.714h11.394a6.176 6.176 0 0 0-1.037 3.428c0 1.276.388 2.463 1.05 3.45zm-5.246-1.95a2.7 2.7 0 0 0-.077-.644h-2.94v1.142h1.69c.001.303-.228.755-.625 1.025-.258.176-.606.298-1.066.298-.818 0-1.512-.552-1.76-1.295a1.887 1.887 0 0 1 0-1.196c.248-.743.942-1.295 1.76-1.295.6 0 .987.268 1.19.458l.913-.889A3.018 3.018 0 0 0 4.857 4a3.143 3.143 0 1 0 0 6.287c.848 0 1.563-.279 2.083-.759.593-.547.935-1.356.935-2.313zm2.482 9.07c0-.511.17-.995.471-1.399L1.714 24h8.643v-7.714z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogletagmanager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.003 0a3 3 0 0 0-2.121 5.121l6.865 6.865-4.446 4.541 1.745 1.836a3.432 3.432 0 0 1 .7.739l.012.011-.001.002a3.432 3.432 0 0 1 .609 1.953 3.432 3.432 0 0 1-.09.78l7.75-7.647c.031-.029.067-.05.098-.08.023-.023.038-.052.06-.076a2.994 2.994 0 0 0-.06-4.166l-9-9A2.99 2.99 0 0 0 12.003 0zM8.63 2.133L.88 9.809a2.998 2.998 0 0 0 0 4.238l7.7 7.75a3.432 3.432 0 0 1-.077-.729 3.432 3.432 0 0 1 3.431-3.431 3.432 3.432 0 0 1 .826.101l-5.523-5.81 4.371-4.373-2.08-2.08c-.903-.904-1.193-2.183-.898-3.342zm3.304 16.004a2.932 2.932 0 0 0-2.931 2.931A2.932 2.932 0 0 0 11.934 24a2.932 2.932 0 0 0 2.932-2.932 2.932 2.932 0 0 0-2.932-2.931z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogletasks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.383.617C5.097.617 0 5.714 0 12c0 6.286 5.097 11.383 11.383 11.383 6.286 0 11.38-5.097 11.38-11.383a11.34 11.34 0 0 0-.878-4.389l-3.203 3.203c.062.387.1.782.1 1.186a7.398 7.398 0 1 1-7.4-7.398c1.499 0 2.889.448 4.054 1.214l2.857-2.857a11.325 11.325 0 0 0-6.91-2.342zm9.674.756c-.292 0-.583.112-.805.334-2.97 2.965-5.934 5.934-8.9 8.902L9.596 8.854a1.139 1.139 0 0 0-1.61 0l-1.775 1.773a1.139 1.139 0 0 0 0 1.61l4.166 4.163a1.421 1.421 0 0 0 2.012 0L23.666 5.121a1.136 1.136 0 0 0 0-1.61l-1.805-1.804a1.136 1.136 0 0 0-.804-.334z\"},\"child\":[]}]})(props);\n};\nexport function SiGoogletranslate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.401 4.818h-9.927L10.927 0H1.599C.72 0 .002.719.002 1.599v16.275c0 .878.72 1.597 1.597 1.597h10L13.072 24H22.4c.878 0 1.597-.707 1.597-1.572V6.39c0-.865-.72-1.572-1.597-1.572zm-15.66 8.68c-2.07 0-3.75-1.68-3.75-3.75 0-2.07 1.68-3.75 3.75-3.75 1.012 0 1.86.375 2.512.976l-.99.952a2.194 2.194 0 0 0-1.522-.584c-1.305 0-2.363 1.08-2.363 2.409S5.436 12.16 6.74 12.16c1.507 0 2.13-1.08 2.19-1.808l-2.188-.002V9.066h3.51c.05.23.09.457.09.764 0 2.147-1.434 3.669-3.602 3.669zm16.757 8.93c0 .59-.492 1.072-1.097 1.072h-8.875l3.649-4.03h.005l-.74-2.302.006-.005s.568-.488 1.277-1.24c.712.771 1.63 1.699 2.818 2.805l.771-.772c-1.272-1.154-2.204-2.07-2.89-2.805.919-1.087 1.852-2.455 2.049-3.707h2.034v.002h.002v-.94h-4.532v-1.52h-1.471v1.52H14.3l-1.672-5.21.006.022h9.767c.605 0 1.097.48 1.097 1.072v16.038zm-6.484-7.311c-.536.548-.943.873-.943.873l-.008.004-1.46-4.548h4.764c-.307 1.084-.988 2.108-1.651 2.904-1.176-1.392-1.18-1.844-1.18-1.844h-1.222s.05.678 1.7 2.61z\"},\"child\":[]}]})(props);\n};\nexport function SiGotomeeting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3 13.72a3.158 3.158 0 0 0-3.462.124.632.632 0 0 1-.682.035l-3.137-1.81a.08.08 0 0 1 0-.137l3.12-1.8a.632.632 0 0 1 .685.036 3.158 3.158 0 0 0 3.47.139A3.194 3.194 0 0 0 22.442 6.1a3.158 3.158 0 0 0-5.924 1.773.633.633 0 0 1-.311.606l-3.136 1.811a.08.08 0 0 1-.118-.068V6.6a.632.632 0 0 1 .372-.573 3.158 3.158 0 1 0-2.64 0 .632.632 0 0 1 .373.573v3.622a.08.08 0 0 1-.119.068L7.804 8.48a.632.632 0 0 1-.311-.605 3.157 3.157 0 1 0-1.307 2.294.633.633 0 0 1 .687-.038l3.12 1.8a.08.08 0 0 1 0 .137L6.854 13.88a.632.632 0 0 1-.683-.035 3.158 3.158 0 0 0-3.461-.124 3.194 3.194 0 0 0-1.143 4.202 3.159 3.159 0 0 0 5.924-1.792.633.633 0 0 1 .31-.61l3.137-1.81a.08.08 0 0 1 .119.068V17.4a.632.632 0 0 1-.372.573 3.158 3.158 0 1 0 2.64 0 .633.633 0 0 1-.373-.573v-3.621a.08.08 0 0 1 .118-.069l3.137 1.812a.631.631 0 0 1 .31.609 3.159 3.159 0 0 0 5.924 1.792A3.194 3.194 0 0 0 21.3 13.72Z\"},\"child\":[]}]})(props);\n};\nexport function SiGrab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.129 10.863a2.927 2.927 0 00-2.079-.872c-.57 0-1.141.212-1.455.421-.651.434-1.186.904-2.149 2.148v.894c.817-1.064 1.59-1.903 2.177-2.364.386-.31.933-.501 1.427-.501 1.275 0 2.352 1.077 2.352 2.352v.538c0 .63-.247 1.223-.698 1.668a2.341 2.341 0 01-1.654.685c-1.048 0-1.97-.719-2.22-1.701l-.422.51c.307 1.03 1.417 1.789 2.642 1.789.778 0 1.516-.31 2.079-.872.562-.562.871-1.3.871-2.079v-.538c0-.778-.31-1.517-.871-2.078m-12.8-.274c.406 0 .757.087 1.074.266.149-.186.299-.337.411-.449-.335-.256-.903-.415-1.485-.415-.83 0-1.584.3-2.122.843-.534.54-.83 1.287-.83 2.107v3.489h.598V12.94c0-1.385.968-2.352 2.354-2.352m5.678 5.84v-3.488c0-1.072-.84-1.913-1.913-1.913-.5 0-.976.203-1.343.57a1.895 1.895 0 00-.57 1.343v.538c0 1.037.877 1.913 1.913 1.913.285 0 .671-.07.908-.264v-.631c-.232.187-.57.298-.908.298a1.302 1.302 0 01-1.315-1.316v-.538a1.3 1.3 0 011.315-1.314 1.3 1.3 0 011.316 1.314v3.489zM0 12.596v.193c0 1.036.393 2.003 1.107 2.722a3.759 3.759 0 002.689 1.112c.82 0 1.548-.186 2.162-.551.506-.302.73-.607.75-.635V12.22H3.65v.597H6.11v2.434l-.002.002c-.288.288-.972.77-2.312.77a3.165 3.165 0 01-2.279-.938 3.247 3.247 0 01-.92-2.297v-.193c0-.83.375-1.656 1.026-2.269a3.558 3.558 0 012.442-.967c.847 0 1.438.129 1.913.416v-.67c-.494-.21-1.085-.305-1.913-.305C1.862 8.8 0 10.538 0 12.595m10.329-.968c.226 0 .419.037.571.112.075-.186.151-.339.262-.525-.162-.116-.549-.186-.833-.186-1.09 0-1.913.823-1.913 1.913v3.489h.598V12.94c0-.774.54-1.314 1.315-1.314m-4.351-.702v-.707c-.541-.29-1.131-.419-1.913-.419-.799 0-1.555.293-2.132.824-.577.532-.895 1.233-.895 1.972v.193c0 1.542 1.237 2.796 2.758 2.796 1.237 0 1.745-.405 1.874-.533v-1.794H3.65v.598h1.46v.899l-.005.001c-.187.075-.578.231-1.31.231-.58 0-1.122-.225-1.528-.636a2.203 2.203 0 01-.632-1.562v-.193c0-1.192 1.113-2.198 2.43-2.198.91 0 1.45.147 1.913.528m14.105 1.126c.27-.27.623-.424.967-.424.737 0 1.315.577 1.315 1.314v.538c0 .738-.578 1.316-1.315 1.316-.357 0-.702-.196-.972-.55a2.151 2.151 0 01-.418-1.12l-.484.591c.095.452.33.885.665 1.19.344.313.774.486 1.209.486a1.915 1.915 0 001.913-1.913v-.538c0-.499-.202-.977-.57-1.343a1.896 1.896 0 00-1.343-.57c-.316 0-.818.114-1.417.652l-.002.002c-.16.16-.536.536-.765.804-.384.42-.943 1.054-1.42 1.688v.933c.529-.68.833-1.06 1.33-1.634.445-.519.996-1.15 1.307-1.422m-8.939 1.428c0 .779.31 1.517.872 2.08a2.93 2.93 0 002.078.87c.33 0 .669-.07.908-.188v-.597c-.28.117-.618.188-.908.188-1.274 0-2.352-1.077-2.352-2.353v-.538c0-1.275 1.078-2.352 2.352-2.352a2.34 2.34 0 012.353 2.353v3.488h.598v-3.604a2.979 2.979 0 00-.915-2.006 2.92 2.92 0 00-2.036-.83c-.778 0-1.516.31-2.078.873a2.926 2.926 0 00-.872 2.078zm6.918-2.313c.183-.22.372-.443.596-.631V7.378h-.596zm1.037-.876V7.378h.597V9.88a3.601 3.601 0 00-.597.41\"},\"child\":[]}]})(props);\n};\nexport function SiGradle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.695 4.297a3.807 3.807 0 0 0-5.29-.09.368.368 0 0 0 0 .533l.46.47a.363.363 0 0 0 .474.032 2.182 2.182 0 0 1 2.86 3.291c-3.023 3.02-7.056-5.447-16.211-1.083a1.24 1.24 0 0 0-.534 1.745l1.571 2.713a1.238 1.238 0 0 0 1.681.461l.037-.02-.029.02.688-.384a16.083 16.083 0 0 0 2.193-1.635.384.384 0 0 1 .499-.016.357.357 0 0 1 .016.534 16.435 16.435 0 0 1-2.316 1.741H8.77l-.696.39a1.958 1.958 0 0 1-.963.25 1.987 1.987 0 0 1-1.726-.989L3.9 9.696C1.06 11.72-.686 15.603.26 20.522a.363.363 0 0 0 .354.296h1.675a.363.363 0 0 0 .37-.331 2.478 2.478 0 0 1 4.915 0 .36.36 0 0 0 .357.317h1.638a.363.363 0 0 0 .357-.317 2.478 2.478 0 0 1 4.914 0 .363.363 0 0 0 .358.317h1.627a.363.363 0 0 0 .363-.357c.037-2.294.656-4.93 2.42-6.25 6.108-4.57 4.502-8.486 3.088-9.9zm-6.229 6.901l-1.165-.584a.73.73 0 1 1 1.165.587z\"},\"child\":[]}]})(props);\n};\nexport function SiGradleplaypublisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.191 6.777a1.409 1.409 0 0 0-1.384 1.41v7.62a1.406 1.406 0 0 0 2.109 1.218l6.633-3.832a1.38 1.38 0 0 0 0-2.392L9.916 6.969a1.39 1.39 0 0 0-.725-.192zm.381 1.33a.895.895 0 0 1 .602.106l5.22 3.014a.896.896 0 0 1 0 1.546l-5.22 3.014a.894.894 0 0 1-1.342-.773V8.986a.895.895 0 0 1 .74-.878zM8.154.633C3.414 2.233 0 6.716 0 12c0 6.626 5.374 12 12 12 5.161 0 9.568-3.266 11.258-7.84l-3.838-.844-5.148 5.149-8.465-2.272-2.272-8.465 5.059-5.056zM12 0c-.471 0-.929.025-1.387.076l.412 3.801 7.168 1.924 1.91 7.101 3.774.832c.084-.567.123-1.14.123-1.734 0-6.626-5.374-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function SiGrafana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.02 10.59a8.578 8.578 0 0 0-.862-3.034 8.911 8.911 0 0 0-1.789-2.445c.337-1.342-.413-2.505-.413-2.505-1.292-.08-2.113.4-2.416.62-.052-.02-.102-.044-.154-.064-.22-.089-.446-.172-.677-.247-.231-.073-.47-.14-.711-.197a9.867 9.867 0 0 0-.875-.161C14.557.753 12.94 0 12.94 0c-1.804 1.145-2.147 2.744-2.147 2.744l-.018.093c-.098.029-.2.057-.298.088-.138.042-.275.094-.413.143-.138.055-.275.107-.41.166a8.869 8.869 0 0 0-1.557.87l-.063-.029c-2.497-.955-4.716.195-4.716.195-.203 2.658.996 4.33 1.235 4.636a11.608 11.608 0 0 0-.607 2.635C1.636 12.677.953 15.014.953 15.014c1.926 2.214 4.171 2.351 4.171 2.351.003-.002.006-.002.006-.005.285.509.615.994.986 1.446.156.19.32.371.488.548-.704 2.009.099 3.68.099 3.68 2.144.08 3.553-.937 3.849-1.173a9.784 9.784 0 0 0 3.164.501h.08l.055-.003.107-.002.103-.005.003.002c1.01 1.44 2.788 1.646 2.788 1.646 1.264-1.332 1.337-2.653 1.337-2.94v-.058c0-.02-.003-.039-.003-.06.265-.187.52-.387.758-.6a7.875 7.875 0 0 0 1.415-1.7c1.43.083 2.437-.885 2.437-.885-.236-1.49-1.085-2.216-1.264-2.354l-.018-.013-.016-.013a.217.217 0 0 1-.031-.02c.008-.092.016-.18.02-.27.011-.162.016-.323.016-.48v-.253l-.005-.098-.008-.135a1.891 1.891 0 0 0-.01-.13c-.003-.042-.008-.083-.013-.125l-.016-.124-.018-.122a6.215 6.215 0 0 0-2.032-3.73 6.015 6.015 0 0 0-3.222-1.46 6.292 6.292 0 0 0-.85-.048l-.107.002h-.063l-.044.003-.104.008a4.777 4.777 0 0 0-3.335 1.695c-.332.4-.592.84-.768 1.297a4.594 4.594 0 0 0-.312 1.817l.003.091c.005.055.007.11.013.164a3.615 3.615 0 0 0 .698 1.82 3.53 3.53 0 0 0 1.827 1.282c.33.098.66.14.971.137.039 0 .078 0 .114-.002l.063-.003c.02 0 .041-.003.062-.003.034-.002.065-.007.099-.01.007 0 .018-.003.028-.003l.031-.005.06-.008a1.18 1.18 0 0 0 .112-.02c.036-.008.072-.013.109-.024a2.634 2.634 0 0 0 .914-.415c.028-.02.056-.041.085-.065a.248.248 0 0 0 .039-.35.244.244 0 0 0-.309-.06l-.078.042c-.09.044-.184.083-.283.116a2.476 2.476 0 0 1-.475.096c-.028.003-.054.006-.083.006l-.083.002c-.026 0-.054 0-.08-.002l-.102-.006h-.012l-.024.006c-.016-.003-.031-.003-.044-.006-.031-.002-.06-.007-.091-.01a2.59 2.59 0 0 1-.724-.213 2.557 2.557 0 0 1-.667-.438 2.52 2.52 0 0 1-.805-1.475 2.306 2.306 0 0 1-.029-.444l.006-.122v-.023l.002-.031c.003-.021.003-.04.005-.06a3.163 3.163 0 0 1 1.352-2.29 3.12 3.12 0 0 1 .937-.43 2.946 2.946 0 0 1 .776-.101h.06l.07.002.045.003h.026l.07.005a4.041 4.041 0 0 1 1.635.49 3.94 3.94 0 0 1 1.602 1.662 3.77 3.77 0 0 1 .397 1.414l.005.076.003.075c.002.026.002.05.002.075 0 .024.003.052 0 .07v.065l-.002.073-.008.174a6.195 6.195 0 0 1-.08.639 5.1 5.1 0 0 1-.267.927 5.31 5.31 0 0 1-.624 1.13 5.052 5.052 0 0 1-3.237 2.014 4.82 4.82 0 0 1-.649.066l-.039.003h-.287a6.607 6.607 0 0 1-1.716-.265 6.776 6.776 0 0 1-3.4-2.274 6.75 6.75 0 0 1-.746-1.15 6.616 6.616 0 0 1-.714-2.596l-.005-.083-.002-.02v-.056l-.003-.073v-.096l-.003-.104v-.07l.003-.163c.008-.22.026-.45.054-.678a8.707 8.707 0 0 1 .28-1.355c.128-.444.286-.872.473-1.277a7.04 7.04 0 0 1 1.456-2.1 5.925 5.925 0 0 1 .953-.763c.169-.111.343-.213.524-.306.089-.05.182-.091.273-.135.047-.02.093-.042.138-.062a7.177 7.177 0 0 1 .714-.267l.145-.045c.049-.015.098-.026.148-.041.098-.029.197-.052.296-.076.049-.013.1-.02.15-.033l.15-.032.151-.028.076-.013.075-.01.153-.024c.057-.01.114-.013.171-.023l.169-.021c.036-.003.073-.008.106-.01l.073-.008.036-.003.042-.002c.057-.003.114-.008.171-.01l.086-.006h.023l.037-.003.145-.007a7.999 7.999 0 0 1 1.708.125 7.917 7.917 0 0 1 2.048.68 8.253 8.253 0 0 1 1.672 1.09l.09.077.089.078c.06.052.114.107.171.159.057.052.112.106.166.16.052.055.107.107.159.164a8.671 8.671 0 0 1 1.41 1.978c.012.026.028.052.04.078l.04.078.075.156c.023.051.05.1.07.153l.065.15a8.848 8.848 0 0 1 .45 1.34.19.19 0 0 0 .201.142.186.186 0 0 0 .172-.184c.01-.246.002-.532-.024-.856z\"},\"child\":[]}]})(props);\n};\nexport function SiGrammarly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24H.032V12c0-3.314 1.341-6.314 3.504-8.486C5.703 1.344 8.694 0 12 0c3.305 0 6.297 1.344 8.463 3.514 2.164 2.172 3.505 5.172 3.505 8.486s-1.338 6.314-3.505 8.486C18.297 22.656 15.305 24 12 24m2.889-13.137-1.271 2.205h4.418c-.505 2.882-3.018 5.078-6.036 5.078-3.38 0-6.132-2.757-6.132-6.146S8.618 5.854 12 5.854c1.821 0 3.458.801 4.584 2.069l1.143-1.988c-1.493-1.418-3.506-2.29-5.725-2.29-4.6 0-8.332 3.74-8.332 8.355s3.73 8.354 8.332 8.354c4.603 0 8.332-3.739 8.332-8.354 0-.387-.029-.765-.079-1.137z\"},\"child\":[]}]})(props);\n};\nexport function SiGrandfrais (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.003 0a11.92 11.92 0 0 0-8.485 3.512A11.92 11.92 0 0 0 0 11.998c0 3.205 1.248 6.22 3.515 8.488A11.914 11.914 0 0 0 11.995 24a11.922 11.922 0 0 0 8.487-3.512A11.92 11.92 0 0 0 24 12.003c0-3.205-1.247-6.219-3.512-8.486A11.924 11.924 0 0 0 12.003 0zm0 1.336c5.879.002 10.66 4.785 10.66 10.664v.003l-.001.146H19.41c.488.15.816.594.884 1.233l.004.044-.933.103-.003-.046c-.04-.479-.313-.53-.428-.53-.258 0-.4.164-.4.463 0 .369.34.657.73.99.503.427 1.073.912 1.073 1.714 0 .845-.553 1.37-1.446 1.37-.9 0-1.341-.74-1.376-1.475l-.002-.04.933-.134.003.048c.031.469.208.738.485.738.298 0 .47-.156.47-.428 0-.443-.353-.737-.76-1.077-.489-.407-1.042-.868-1.042-1.698 0-.847.516-1.334 1.418-1.334.137 0 .266.02.386.057.627-.16.945-.667.945-1.513V8.61c.001-.545-.132-.953-.395-1.213-.237-.236-.584-.355-1.031-.355h-1.341l-.001 5.104h-.802l.002-5.104-.853-.002v.014l-.004 2.814a18946 18946 0 0 0-1.044-2.828h-.866l-.002 5.105h-.463l-.948-5.105h-1.145l-.951 5.105h-.314L9.46 9.874c.282-.136.613-.471.613-1.3 0-1.06-.47-1.533-1.525-1.534h-1.27v5.105h-.845l.001-2.589H4.93v.748h.565v.467c-.002.495-.126.679-.459.679-.263 0-.386-.162-.386-.509V8.318c0-.353.124-.53.366-.53.31 0 .479.148.479.934v.027h.898v-.353c0-.866-.532-1.427-1.355-1.427-.807 0-1.328.525-1.328 1.335v2.629c0 .576.241 1.008.645 1.21h1.1c.13-.073.239-.175.35-.303l.131.303h.451v.86H4.799v1.242h1.187v.863H4.799v2.288H3.82v-5.252H1.338l-.002-.146c0-2.85 1.11-5.527 3.126-7.541a10.591 10.591 0 0 1 7.54-3.121zm-3.785 6.48.287.001c.476 0 .628.184.628.757s-.152.757-.629.757h-.286zm10.307.003h.28c.454 0 .608.173.608.686v2.235c0 .282-.046.452-.149.554-.093.092-.235.132-.461.132h-.278zm-6.494.4.322 2.032h-.647l.056-.351.27-1.68zm2.84.884 1.073 3.04h.409v5.253h-.975v-5.25h-.507zm-6.243.985.609 2.058h-.49c1.001.03 1.45.514 1.45 1.565 0 .834-.324 1.18-.612 1.324l.76 2.361h-.997L8.72 15.26a4.527 4.527 0 0 1-.382.019v2.117h-.976v-5.253h.856v-2.037c.142 0 .303-.008.41-.018zm2.942.981h.92l.151 1.074h.635l.967 5.253h-.93l-.176-1.144h-.896l-.173 1.144h-.935l.968-5.25h-.682l.15-1.077zM8.338 12.96v1.5h.27c.47 0 .613-.175.613-.75 0-.574-.142-.75-.612-.75zm4.353.355-.328 2.151h.654z\"},\"child\":[]}]})(props);\n};\nexport function SiGrapheneos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.953 7.244 3.458-1.97a1.901 1.901 0 0 1-.108-.608c0-.835.608-1.525 1.407-1.67V0h.58v2.995a1.704 1.704 0 0 1 1.407 1.67c0 .219-.045.418-.118.609l3.468 1.97c.127-.146.281-.273.454-.382a1.705 1.705 0 0 1 2.151.382l2.596-1.498.29.508-2.595 1.498a1.69 1.69 0 0 1-1.244 2.242v4.012a1.69 1.69 0 0 1 1.244 2.242l2.596 1.498-.29.508-2.597-1.498a1.705 1.705 0 0 1-2.151.382 2.065 2.065 0 0 1-.454-.382c-1.153.654-2.306 1.317-3.468 1.97.073.19.118.39.118.608 0 .835-.608 1.525-1.407 1.67V24h-.58v-2.995a1.704 1.704 0 0 1-1.407-1.67c0-.219.045-.418.108-.609l-3.458-1.97a2.065 2.065 0 0 1-.454.382 1.705 1.705 0 0 1-2.151-.382l-2.596 1.498-.29-.508 2.595-1.498a1.69 1.69 0 0 1 1.244-2.242V9.994a1.69 1.69 0 0 1-1.244-2.242L1.461 6.254l.29-.508 2.597 1.498a1.705 1.705 0 0 1 2.151-.382c.173.11.327.236.454.382Zm9.803 9.004a1.682 1.682 0 0 1 .128-1.425 1.702 1.702 0 0 1 1.234-.835v-3.976a1.702 1.702 0 0 1-1.234-.835 1.682 1.682 0 0 1-.128-1.425L13.29 5.773c-.318.363-.772.59-1.289.59-.517 0-.971-.227-1.289-.59L7.244 7.752c.163.454.136.98-.128 1.425a1.702 1.702 0 0 1-1.234.835v3.976c.5.073.962.363 1.234.835.264.445.291.971.128 1.425l3.467 1.979c.318-.363.772-.59 1.289-.59.517 0 .971.227 1.289.59z\"},\"child\":[]}]})(props);\n};\nexport function SiGraphite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15.215 0-12 3.215-3.215 12L8.785 24l12-3.215 3.215-12L15.215 0Zm1.958 20.966H6.827L1.655 12l5.172-8.966h10.346L22.345 12l-5.172 8.966Zm.68-14.823L9.86 4 4.006 9.858l2.14 8 7.995 2.141 5.853-5.857-2.14-8Z\"},\"child\":[]}]})(props);\n};\nexport function SiGraphql (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002 0a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.54 4.931a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm0 9.862a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm-8.54 4.931a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.276zm-8.542-4.93a2.138 2.138 0 1 0 0 4.276 2.138 2.138 0 1 0 0-4.277zm0-9.863a2.138 2.138 0 1 0 0 4.277 2.138 2.138 0 1 0 0-4.277zm8.542-3.378L2.953 6.777v10.448l9.049 5.224 9.047-5.224V6.777zm0 1.601 7.66 13.27H4.34zm-1.387.371L3.97 15.037V7.363zm2.774 0 6.646 3.838v7.674zM5.355 17.44h13.293l-6.646 3.836z\"},\"child\":[]}]})(props);\n};\nexport function SiGrav (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm6.489 13.965c-1.251-.825-1.965-1.523-2.589-2.777-.427.859-1.421 2.135-3.098 3.139-.84 2.61-4.823 7.605-6.113 6.885-.381-.195-.452-.48-.367-.765.093-.704 1.566-2.34 1.566-2.34s.029.345.494 1.065c-.629-1.936 1.021-4.305 1.456-5.131.689-.209.734-1.095.734-1.095.046-1.364-.569-2.34-1.155-2.94.421.525.556 1.306.57 2.025v.255c-.029.601-.21 1.41-.585 1.41v.016c-.39-.016-.885.074-1.319.21l-.961.239s.51-.015.78.226c-.314.51-1.005 1.125-1.771 1.484-1.109.525-1.439-.51-.869-1.17.135-.165.285-.3.404-.404-.09-.09-.135-.21-.149-.36-.075-.345-.045-.78.45-1.485.09-.149.21-.3.345-.449l.015-.016.016-.015v-.015c.029-.046.074-.076.104-.12.57-.585 1.485-1.2 2.911-1.74 1.694-2.49 2.309-2.956 2.309-2.956.181-.179.511-.419.615-.479-.87-1.515-1.049-3.646-.824-4.215-.03.03-.046.06-.061.105.09-.195.135-.255.225-.36.24-.27 1.035-.42 1.336.18.15.315.18.735.18 1.035-.645-.029-1.215.69-1.215.69s.524-.24 1.186-.255c0 0 .179.164.389.449-.284.556-.779 1.725-.42 2.971.061.24.15.45.256.629.015.016.015.016.015.031l.03.029c.585.886 1.649.976 1.649.976-.495-.24-.915-.646-1.169-1.125-.136-.255-.227-.48-.271-.646-.285-1.08.135-1.725.375-2.145.54-.84 1.544-1.351 2.609-1.23 1.5.165 2.581 1.53 2.399 3.03-.104.915-.659 1.681-1.409 2.085.181.494-.015 1.08-.015 1.08.449.57.479.9.465 1.215-.585-.09-1.141.301-1.141.301s1.111-.256 1.756.314c.42.449.704.87.869 1.17.24.435 1.35.465 1.229 1.23-.135.779-.989.779-2.31-.09l.074-.151zm-4.824-4.61c-.22-.219-.574-.219-.795 0l-.465.468c-.222.21-.222.57 0 .796l.51.51c.222.225.577.21.795 0l.47-.466c.221-.225.221-.585 0-.794l-.515-.525v.011zm-2.205-.186c-.14.14-.14.368 0 .511.141.138.368.138.51 0 .14-.143.14-.371 0-.511-.142-.141-.369-.141-.51 0zm1.269-.252c.142-.139.142-.366 0-.51-.141-.138-.367-.138-.51 0-.139.144-.139.371 0 .51.142.142.369.142.51 0zm5.385-1.304c.591-1.131-.247-1.791-.825-2.332-.924-.87-1.846-1.245-2.9-.029-1.052 1.199-.383 2.609.58 3.284.96.69 2.535.226 3.135-.915l.01-.008zm-1.595-.463c-.372-.445.322-1.252.757-.77.8.89-.387 1.216-.757.77z\"},\"child\":[]}]})(props);\n};\nexport function SiGravatar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-1.326 0-2.4 1.074-2.4 2.4v8.4c0 1.324 1.074 2.398 2.4 2.398s2.4-1.074 2.4-2.398V5.21c2.795.99 4.799 3.654 4.799 6.789 0 3.975-3.225 7.199-7.199 7.199S4.801 15.975 4.801 12c0-1.989.805-3.789 2.108-5.091.938-.938.938-2.458 0-3.396s-2.458-.938-3.396 0C1.344 5.686 0 8.686 0 12c0 6.627 5.373 12 12 12s12-5.373 12-12S18.627 0 12 0\"},\"child\":[]}]})(props);\n};\nexport function SiGraylog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.93 11.369a.84.84 0 01.75.45h.705l1.112-2.675a.483.483 0 01.3-.278c.235-.042.47.086.513.321l1.177 5.177 1.198-6.974a.41.41 0 01.32-.342.44.44 0 01.535.321l1.284 5.24.663-1.946a.449.449 0 01.17-.235c.193-.129.471-.086.6.107l.556.791c.021.193.021.385.021.578a8.3 8.3 0 01-.043.748c-.085-.021-.15-.085-.213-.15l-.557-.77-.855 2.589a.448.448 0 01-.556.278.393.393 0 01-.278-.3l-1.156-4.663-1.219 7.08a.449.449 0 01-.492.364c-.192-.021-.32-.17-.363-.363l-1.305-5.99-.706 1.69a.439.439 0 01-.406.278H7.679a.863.863 0 01-.748.428.88.88 0 01-.877-.877c.02-.47.406-.877.877-.877zM12 .396c6.973 0 12 5.369 12 11.615 0 6.353-4.77 11.593-12 11.593S0 18.364 0 12.011C-.02 5.765 5.005.396 12 .396zM4.064 12.01c0 4.256 3.658 8 7.915 8 4.256 0 7.914-3.744 7.914-8 0-4.6-3.658-8.043-7.914-8.043-4.236 0-7.915 3.444-7.915 8.043z\"},\"child\":[]}]})(props);\n};\nexport function SiGreasyfork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.89 2.227a.28.28 0 0 1 .266.076l5.063 5.062c.54.54.509 1.652-.031 2.192l8.771 8.77c1.356 1.355-.36 3.097-1.73 1.728l-8.772-8.77c-.54.54-1.651.571-2.191.031l-5.063-5.06c-.304-.304.304-.911.608-.608l3.714 3.713L7.59 8.297 3.875 4.582c-.304-.304.304-.911.607-.607l3.715 3.714 1.067-1.066L5.549 2.91c-.228-.228.057-.626.342-.683ZM12 0C5.374 0 0 5.375 0 12s5.374 12 12 12c6.625 0 12-5.375 12-12S18.625 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiGreatlearning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.373 0c-6.617 0-12 5.383-12 12s5.383 12 12 12h.856c.958-1.175 1.911-2.354 2.867-3.531h-3.723c-4.669 0-8.469-3.8-8.469-8.469 0-4.67 3.8-8.469 8.469-8.469h4.375L21.615 0Zm3.723 20.469 3.531-4.354v-6.013h-7.502l-2.861 3.533h6.832z\"},\"child\":[]}]})(props);\n};\nexport function SiGreenhouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.279 7.13c0 1.16-.49 2.185-1.293 2.987-.891.891-2.184 1.114-2.184 1.872 0 1.025 1.65.713 3.231 2.295 1.048 1.047 1.694 2.43 1.694 4.034C17.727 21.482 15.187 24 12 24c-3.187 0-5.727-2.518-5.727-5.68 0-1.607.646-2.989 1.694-4.036 1.582-1.582 3.23-1.27 3.23-2.295 0-.758-1.292-.98-2.183-1.872-.802-.802-1.293-1.827-1.293-3.03 0-2.318 1.895-4.19 4.212-4.19.446 0 .847.067 1.181.067.602 0 .914-.268.914-.691 0-.245-.112-.557-.112-.891 0-.758.647-1.382 1.427-1.382s1.404.646 1.404 1.426c0 .825-.647 1.204-1.137 1.382-.401.134-.713.312-.713.713 0 .758 1.382 1.493 1.382 3.61zm-.446 11.19c0-2.206-1.627-3.99-3.833-3.99-2.206 0-3.833 1.784-3.833 3.99 0 2.184 1.627 3.989 3.833 3.989 2.206 0 3.833-1.808 3.833-3.99zM14.518 7.086c0-1.404-1.136-2.562-2.518-2.562S9.482 5.682 9.482 7.086 10.618 9.65 12 9.65s2.518-1.159 2.518-2.563z\"},\"child\":[]}]})(props);\n};\nexport function SiGreensock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.21 0c-.545.003-1.084.134-1.256.367-.11.165-.192 1.196-.11 1.718 0 0 .032.345.09.614a14.6 14.6 0 0 1-.02.182 7.024 7.024 0 0 1-.097.605c-.01.056-.207.095-.425.152a2.495 2.495 0 0 0-.138-.042c-.234-.069-.385.123-.618.26-.069-.04-.371-.178-.536-.082-.165.096-.275.193-.44.261-.082-.041-.302-.041-.48.028a1.27 1.27 0 0 0-.483.278c-2.314.58-4.813 1.635-5.012 1.741-1.017.522-2.679 1.415-3.434 2.033-1.291 1.071-2.06 2.322-2.363 3.242-.385 1.14-.275 1.827.096 1.387.298-.366 1.632-1.454 2.475-1.999l-.002.007a3.219 3.219 0 0 1 .44-.26l.233-.124.505-.323c.602.552.803 1.433.937 2.63.22 1.841 1.704 2.693 3.434 2.72 1.8.028 2.446.399 3.119 1.305.153.201.318.307.47.368a1.954 1.954 0 0 0-.16.405c-.075.17-.125.38-.157.608a.157.157 0 0 0-.03.075c-.068.536-.055 1.8-.068 2.473-.014.673-.028.77-.083.866-.055.11-.11.178-.178.467-.069.302-.193.384-.316.631-.206.385-.165.81.041 1.003.206.192.77.481 1.538.385.77-.096.88-.151.756-.893-.014-.11-.192-.605-.137-.797.082-.206-.096-.563-.055-.577.041-.014.096-.288.096-.426 0-.137-.014-.796.137-1.14.062-.14.193-.46.326-.785.442-.723.459-1.161.48-1.41.03-.202.046-.46.018-.744.055-.083.289-.275.316-.646 0 0 .644-.337 1.102-1.148.16.557.31.91.286 1.272-.499.39-.684.678-.76.959-.048-.02-.076-.037-.11-.04h-.027a.437.437 0 0 0-.106.029c-.192.068-.041 1.318.165 1.827.206.508.316.81.398 1.36.083.549-.192 1.222-.302 1.524 0 0-.179.536.233.824.358.248 1.704.18 2.308.18.605 0 1.511.219 2.088.109.715-.124.824-.55.399-.77-.426-.22-1.072-.329-1.91-.933-.22-.152-.522-.289-.563-.412-.041-.124-.041-.838-.027-1.457.013-.618.22-1.414.288-1.84.064-.398-.076-.388-.262-.351.032-.147.066-.292.097-.446.344-.632.193-1.223.193-1.223.82-1.044.4-3.27.22-4.048.64.303.96.188.96.188.102-.055.192-.134.274-.224.337-.362.51-.916.51-.916V11c.782-.783 1.151-1.936.26-2.692a1.331 1.331 0 0 0-.219-1.263 1.56 1.56 0 0 0-.37-1.731 1.36 1.36 0 0 0-.487-.297c-.2-.295-.245-.417-.572-.349-.15-.165-.178-.288-.494-.178 0 0-.096-.234-.275-.289a.25.25 0 0 0-.05-.015c-.302-.21-.576-.215-.772-.16-.064-.048-.061-.124-.07-.388-.008-.2-.019-.486-.031-.744.027-.328.102-.974.126-1.303.028-.37.042-.948-.123-1.195C18.303.12 17.754-.003 17.21 0zm-.005.34c.7 0 1.002.22 1.044.343.013.028.082.495.04.797-.013.11-.027.509-.054.687-.014.179-.069.385-.124.673-.041.234-.233.495-.384.536-.261.069-.742.055-1.017 0-.069-.014-.124-.055-.192-.096-.151-.248-.234-.44-.261-.742-.028-.289-.083-.412-.096-.632-.014-.33-.014-.55-.014-.55.014-.178.069-.618.069-.659.013-.123.233-.357.989-.357zm-1.133 2.702c.146.149.301.306.432.416.124.11.426.096.7.096.248 0 .468.028.564-.027.154-.077.355-.235.523-.394.011.152.022.304.026.435.01.295-.043.468.024.57-.082.048-.174.105-.269.156-.151.08-.306.136-.403.115h-.002c-.209-.035-.931-.215-1.331-.407-.167-.259-.335-.398-.326-.448.027-.137.04-.247.054-.425.004-.03.005-.058.008-.088zm-.853.69l.035.001c.424.036.65.152.808.284l.076.03.008-.027c.047.03.102.06.162.088.47.159 1.104.308 1.309.353.247.055.645-.192.838-.316.343-.22.783-.04.989.193.137.15.192.247.192.288.316-.11.357.041.508.206.385-.179.412.041.44.137-.122 0-.298.014-.538.04l-.012-.012c-.144-.153-.402-.289-.599-.384-.087-.031-.18-.049-.252-.097-.11-.055-.22-.137-.385-.123-.687.082-.824.315-1.415.178-.577-.134-.737-.254-1.333-.221l.001.026c-.105.016-.2.03-.22.03-.206.012-.722.067-1.153-.1a1.256 1.256 0 0 0-.161-.076l-.005-.002h-.001c-.18-.07-.39-.11-.63-.112h-.026c.218-.11.356-.259.56-.218.22.041.44.22.564.357a.858.858 0 0 0-.178-.288c.128-.09.245-.229.418-.234zm-1.1.545c.15.002.28.026.417.073.018.009.034.018.059.029.288.137.81.164 1.25.137a2.26 2.26 0 0 0 .563-.095c.322.024.514.11.977.216.31.07.502.045.695-.007.193-.053.386-.13.723-.17a.542.542 0 0 1 .188.013c.038.02.075.04.11.061.062.049.214.135.343.189.164.068.59.357.645.425a.1.1 0 0 0 .038.03c.242.314.407.755.396 1.21-.06.46-.426.214-.626.12-.412-.178-.824-.302-1.305-.302-.48 0-1.099.041-1.635.179-.741.206-.961.192-1.29.027-.33-.178-.907-.618-.907-.618v.01c-.007-.007-.012-.012-.014-.01-.042.069-.138.247-.193.33-.027.522-.343 1.346-.934 1.552a.547.547 0 0 1-.467-.041 2.503 2.503 0 0 0-.55-.275c.481.384.729.673.949 1.181.174.43.415 1.017 1.002 1.646.363-.004.725.097.962.346.137.137.357.289.33.426 0 .041-.083.151-.151.234a3.231 3.231 0 0 1-.207.22c-.054.04-.247.192-.288.22-.041.027-.096.095-.137.109-.138.069-.289.014-.426-.055s.027-.082-.124-.192c-.34-.24-.541-.411-.454-.832-.932-.794-2.561-1.26-2.911-2.108-.22-.55-.248-.824-.042-1.058.605-.687.371-1.346.825-1.634.425-.275.783.04.989.33-.124-.509-.55-.633-.55-.674 0-.632.605-1.071 1.21-1.181.218-.041.389-.062.54-.06zm-1.847.534c-.14.196-.231.435-.246.721-.206.028-.673.055-.907.907a3.39 3.39 0 0 1-.214.62c-.103.045-2.946 1.274-5.229 2.542l-.01-.007c-.32.18-.627.363-.919.546l-.125.077-.001.003c-1.136.723-2.04 1.45-2.637 2.112.412-2.679 2.528-4.08 3.53-4.698 2.42-1.489 4.629-2.225 6.758-2.823zm8.037.323c.26-.004.536.06.756.275.59.577.425 1.209.247 1.648.15.179.508.687.288 1.291-.04.138-.343.138-.563.495.55-.316.893-.233 1.017.165.192.618-.234 1.36-.605 1.772 0-.014-.014-.028-.014-.041-.055.206-.123.604-.535 1.044-.206.22-.371.192-.605.137-.215-.054-.322-.142-.543-.276-.036-.207-.102-.482-.102-.59 0-.044-.004-.141-.01-.243.032-.036.066-.074.106-.114 0 0 .178-.247.44-.233.26.014.535-.041.604-.11 0-.48-.55-.494-.357-1.319.013-.04.082-.11.302-.137-.33-.069-.48-.083-.714-.302l-.013-.013c.11-.253.224-.457.301-.605.193-.385.082-.852.082-.852.207-.069.385-.179.413-.247.203-.673-.164-1.322-.605-1.74.036-.003.073-.005.11-.006zm-5.46.925c.01.016.02.033.034.05.179.22.577.495 1.113.673.26.083.467.028.7-.027 1.123-.278 2.304-.346 3.33.155a1.82 1.82 0 0 1-.157 1.068c-.232.465-.533 1.068-.48 2.215-.246.044-1.419.144-1.992.037-.521-.097-1.416-.525-1.62-.69a6.703 6.703 0 0 1-.125-.848 1.37 1.37 0 0 0 .454-.343c-.412.068-.577.04-.825-.097-.235-.13-.642-.533-.87-.82.229-.29.393-.69.335-1.226.037-.05.07-.099.102-.147zm-4.38 1.598c-.09.253.093.654.224.953.508 1.179 2.07 1.29 3.127 2.18a.723.723 0 0 0 .06.388c.083.165.371.413.371.413-.055.054-.027.164-.027.164.204.217.504.243.547.246-.435 1.248-.816 2.626-.451 4.095-.179.244-.368.445-.531.668a.851.851 0 0 1-.444-.31c-.591-.852-1.457-1.416-3.023-1.374-2.349.055-3.283-.907-3.461-2.748-.094-.974-.357-1.922-.888-2.479C7.489 9.014 9.6 7.937 10.268 7.73a2.8 2.8 0 0 0 .2-.073zm3.496.18c.381.442.795.727 1.193.979.082.343.11.577.192 1.03h-.041l-.027.308a2.836 2.836 0 0 0-.62-.113l.001-.003c-.893-1.057-.7-1.47-1.058-2.019.097-.034.225-.094.36-.182zm5.911 1.086c.076.067.178.12.323.154-.327.68.33.912.37 1.17-.143.083-.367.037-.603.025-.115-.006-.229.065-.321.147l.032-.367c.006-.43.09-.809.2-1.13zM15.79 9.947c.024.035.178.131 1.002.352 1.026.275 2.323.12 2.55.09a.378.378 0 0 1-.022.089c0 .343.055.59.096.81.053.308.13.533.163.74l.008-.007c.234 1.367.561 3.133-.267 4.048.041.192.069.467.014.783a3.204 3.204 0 0 1-.151.535 2.29 2.29 0 0 0-.108.352c-1.1.142-1.755.055-2.06-.015.123-.374.407-.754.876-.735-.022-.911-.264-1.223-.511-1.891.395-.883.299-1.665.621-2.848-.247.261-.44 1.209-.604 1.786-.206.838-.563 1.648-1.525 2.294 0 .22-.069.384-.151.494-.179.261-.412.344-.494.77.11-.138.26-.261.26-.22a8.51 8.51 0 0 1-.025.493l.012.001c-.165 1.044-.522 1.525-.742 2.115-.151.426-.096 1.36-.151 1.374-.385.083-.975-.068-1.14-.15.162-1.14.019-2.278.436-3.6l-.015-.006c.16-.554.478-.878.939-1.464-.161-.52-.532-1.64.266-4.182.033-.014.067-.03.105-.049l.206-.137c.04-.028.096-.069.137-.096.069-.042.371-.371.412-.412.096-.097.165-.124.192-.234.055-.206-.247-.412-.37-.55-.018-.019-.03-.034-.043-.05.013-.039.027-.077.042-.114.01-.125.028-.26.042-.367zm.883 7.942c.05.002.174.122.751.158.66.04 1.539-.083 1.772-.138.234-.055.097.11.069.275l-.026.169c-.399.134-1.008.188-1.416.202-.393.013-.846-.012-1.161-.11-.048-.26-.063-.47-.007-.55a.024.024 0 0 1 .018-.006zm2.506.846c-.02.135-.035.223-.058.372-.388.12-.888.122-1.27.135a4.413 4.413 0 0 1-1.012-.07 2.065 2.065 0 0 1-.033-.109 11.343 11.343 0 0 1-.065-.252c.179.034.53.079 1.15.087a4.142 4.142 0 0 0 1.288-.163zm-.106.685c-.069.44-.055 1.786-.014 2.157.014.11.948.522 1.277.77.107.085.259.157.422.222.042.042.116.105.197.203.162.213.052.436-.135.526-.264-.007-.568-.052-1.074-.128-.695-.104-1.129-.101-1.73-.106v-.003c-.152-.275-.056-.728-.056-.728a2.2 2.2 0 0 1-.809-.18l.012-.026c.234-.48.22-.591.151-1.415-.047-.578-.196-.883-.335-1.195.169.016.409.035.857.041a4.567 4.567 0 0 0 1.237-.138zm-5.306 2.084c.243 0 .6.032.676.1v.014c.014.165.165.399.11.522-.027.069-.096-.041-.192-.068.041.26.151.741.316 1.112.11.248.041.426-.33.495-.33.014-.755 0-1.112-.083-.412-.206-.55-.316-.467-.7.068-.275.494-.59.865-.838-.206.014-.426.165-.398-.014.055-.357.206-.33.302-.508-.02-.02.084-.032.23-.032z\"},\"child\":[]}]})(props);\n};\nexport function SiGriddotai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.732 9.091v-3.52H6.506v12.816h5.612v-5.613h11.226V24h-5.613v-5.613H12.12V24h-4.5a6.965 6.965 0 0 1-6.964-6.964V6.966A6.966 6.966 0 0 1 7.619 0h8.762a6.965 6.965 0 0 1 6.964 6.964v2.127h-5.613z\"},\"child\":[]}]})(props);\n};\nexport function SiGridsome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.026.017l-.108.001C4.905.135-.102 5.975.002 11.956.025 19.286 6.02 24.13 12.083 23.98c7.208-.2 12.323-6.461 11.892-12.05a2.197 2.197 0 0 0-2.192-2.001h-3.15a2.155 2.155 0 0 0-2.161 2.147c0 1.187.967 2.148 2.16 2.148h.788c-.87 2.791-3.62 5.455-7.44 5.56-3.803.095-7.61-2.904-7.768-7.569a2.173 2.173 0 0 0 0-.159c-.148-3.72 2.895-7.637 7.88-7.845a2.096 2.096 0 0 0 2.003-2.183 2.095 2.095 0 0 0-2.07-2.011zm-.018 9.911a2.15 2.15 0 0 0-2.146 2.151 2.15 2.15 0 0 0 2.146 2.152 2.15 2.15 0 0 0 2.147-2.152 2.15 2.15 0 0 0-2.147-2.15Z\"},\"child\":[]}]})(props);\n};\nexport function SiGrocy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.621.068C7.527.786 3.608 4.618 2.345 10.082c-.316 1.35-.392 3.896-.163 5.203.62 3.57 2.96 6.574 6.15 7.913 1.36.577 2.1.73 3.842.784 1.22.043 1.862.01 2.722-.13 2.688-.447 5.399-1.699 6.65-3.092l.403-.447-.054-1.872a481.92 481.92 0 0 1-.12-5.344l-.065-3.473-2.907.087c-1.589.033-3.722.098-4.746.142l-1.85.065-.087 2.319c-.055 1.284-.076 2.34-.055 2.362.022.022.882.076 1.916.12l1.872.076v.294c0 .707-.13.98-.555 1.208-.653.326-1.872.479-2.623.326-2.71-.566-3.777-4.55-1.96-7.369C11.86 7.48 13.873 6.62 16.562 6.74c.74.043 1.665.163 2.123.272.446.12.838.174.87.12.098-.142.468-5.726.403-5.9-.087-.24-1.35-.697-2.569-.947-1.252-.25-3.722-.37-4.767-.218z\"},\"child\":[]}]})(props);\n};\nexport function SiGroupme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.1597 6.57419H12.8398V8.16898H11.1597V6.57419ZM18.1997 0H5.80011C3.14898 0 1 2.03979 1 4.55577V16.3243C1 18.8402 3.14898 20.88 5.80011 20.88H9.92715L11.9786 24L14.0306 20.88H18.1997C20.8506 20.88 23 18.8402 23 16.3243V4.55574C23 2.03976 20.8506 0 18.1997 0ZM7.56833 8.16895H9.34755V6.57416H7.56833V4.85447H9.34755V3.16587H11.1597V4.85447H12.8398V3.16587H14.6519V4.85447H16.4308V6.57416H14.6519V8.16895H16.4308V9.88852H14.6519V11.5772H12.8398V9.88852H11.1597V11.5772H9.34755V9.88852H7.56833V8.16895ZM20.3122 13.4321C20.3122 13.4321 17.9202 17.708 12.2406 17.708C12.1619 17.708 12.0843 17.707 12.007 17.7057C11.9299 17.707 11.8522 17.708 11.7737 17.708C6.09416 17.708 3.70211 13.4321 3.70211 13.4321C3.70211 13.4321 3.54729 13.1536 3.54729 12.8534C3.53754 12.6368 3.64915 12.3263 3.9421 12.1433C4.105 12.0417 4.259 11.9914 4.40179 11.9757C5.08566 11.9069 5.48202 12.3295 5.80794 12.8121C6.16788 13.3447 8.24445 15.678 12.007 15.7672C15.7698 15.678 17.8464 13.3447 18.2063 12.8121C18.5322 12.3295 18.9429 11.9062 19.6125 11.9757C19.7553 11.9914 19.9094 12.0417 20.0722 12.1433C20.3652 12.3263 20.4792 12.5839 20.469 12.8532C20.446 13.2494 20.3122 13.4321 20.3122 13.4321Z\"},\"child\":[]}]})(props);\n};\nexport function SiGroupon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.316 20.334C5.618 22.736 8.554 24 12.012 24c3.988 0 7.739-1.95 9.978-5.163 1.353-1.95 2.01-4.158 2.01-6.755 0-.484-.032-1.006-.063-1.529H10.595v4.61h6.687c-1.155 2.012-3.094 3.12-5.27 3.12-3.229 0-6.125-2.824-6.125-6.497 0-3.315 2.699-6.069 6.125-6.069 1.844 0 3.355.749 4.811 2.239h6.52C21.468 3.019 17.084 0 12.083 0c-3.323 0-6.22 1.17-8.53 3.409C1.25 5.647 0 8.572 0 11.754c-.008 3.417 1.108 6.271 3.316 8.58z\"},\"child\":[]}]})(props);\n};\nexport function SiGrubhub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.708 9.556h-.84c-.048 0-.072.048-.072.072v1.828h-.84V9.628c0-.048-.048-.072-.072-.072h-.84c-.048 0-.072.048-.072.072v4.692c0 .048.048.072.072.072h.84c.048 0 .072-.048.072-.072v-1.876h.84v1.876c0 .048.048.072.072.072h.84c.048 0 .072-.048.072-.072V9.628c0-.024-.024-.072-.072-.072m-7.08 0h-.84c-.048 0-.072.024-.072.072v3.324a.61.61 0 0 1-.12.384c-.072.096-.168.12-.288.12a.405.405 0 0 1-.288-.12.61.61 0 0 1-.12-.384V9.628c0-.048-.048-.072-.072-.072h-.84c-.048 0-.072.024-.072.072v3.348c0 .432.096.84.36 1.108.264.264.624.408 1.036.408.432 0 .796-.144 1.036-.408.264-.264.36-.648.36-1.108V9.628c-.004-.024-.028-.072-.08-.072m-8.232-.072c-.432 0-.796.144-1.036.408C.096 10.156 0 10.54 0 11v2c0 .432.096.84.36 1.108.264.264.624.408 1.036.408.432 0 .796-.144 1.036-.408.264-.264.36-.648.36-1.108v-1.104a.102.102 0 0 0-.096-.096H1.468a.102.102 0 0 0-.096.096v.82c0 .048.048.096.096.096h.316v.192a.676.676 0 0 1-.12.408c-.072.096-.168.12-.288.12a.405.405 0 0 1-.288-.12.69.69 0 0 1-.12-.408v-1.976c0-.168.048-.316.12-.408.072-.096.168-.12.288-.12.116 0 .216.048.288.12.072.096.12.24.12.408v.192c0 .048.048.072.072.072h.84c.048 0 .072-.024.072-.072v-.192c0-.432-.096-.84-.36-1.108-.216-.292-.604-.436-1.012-.436m10.832 3.828c-.072.096-.168.12-.316.12h-.48v-1.016h.48c.12 0 .216.048.288.12.079.104.121.23.12.36.008.2-.016.316-.092.416zm-.364-2.768c.12 0 .216.024.288.12.072.072.096.192.096.34s-.024.264-.096.36a.385.385 0 0 1-.264.12h-.432v-.94h.408zm.964 1.372c.144-.144.408-.48.408-.916 0-.508-.192-.82-.34-.988-.264-.288-.624-.432-1.036-.432h-1.316c-.048 0-.072.048-.072.072v4.696c0 .048.048.072.072.072h1.396c.432 0 .84-.168 1.108-.508.144-.192.316-.508.316-.988-.028-.576-.388-.916-.536-1.008zm-7.652-.46c-.072.096-.192.144-.34.144h-.408v-1.056h.408c.144 0 .264.048.34.144.096.096.12.216.12.384s-.02.288-.12.384zm.532.868c.096-.072.168-.12.24-.216.168-.192.384-.532.384-1.06 0-.508-.192-.84-.384-1.036-.24-.288-.6-.432-1.012-.456H3.54c-.048 0-.072.048-.072.072v4.692c0 .048.048.072.072.072h.84c.048 0 .072-.048.072-.072v-1.736h.288l.532 1.78c0 .024.048.048.072.048h.888c.024 0 .048-.024.072-.024s.024-.048.024-.072l-.62-1.992zm17.136.988c-.072.096-.168.12-.316.12h-.48v-1.016h.48c.12 0 .216.048.288.12.079.104.121.23.12.36.028.2-.016.316-.092.416zm-.34-2.768c.12 0 .216.024.288.12.072.072.096.192.096.34s-.024.264-.096.36a.385.385 0 0 1-.264.12h-.432v-.94h.408zm.964 1.372c.144-.144.408-.48.408-.916 0-.508-.192-.82-.34-.988-.264-.288-.624-.432-1.036-.432h-1.328c-.048 0-.072.048-.072.072v4.696c0 .048.048.072.072.072h1.404c.432 0 .84-.168 1.108-.508.144-.192.316-.508.316-.988a1.442 1.442 0 0 0-.532-1.008zm-3.224-2.36h-.84c-.048 0-.072.024-.072.072v3.324a.61.61 0 0 1-.12.384c-.072.096-.168.12-.288.12a.405.405 0 0 1-.288-.12.61.61 0 0 1-.12-.384V9.628c0-.048-.048-.072-.072-.072H17.6c-.048 0-.072.024-.072.072v3.348c0 .432.096.84.36 1.108.264.264.624.408 1.036.408.432 0 .796-.144 1.036-.408.264-.264.36-.648.36-1.108V9.628c.024-.024-.024-.072-.076-.072\"},\"child\":[]}]})(props);\n};\nexport function SiGrunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.04 0c-1.381.488-1.731 1.231-1.835 1.906-.355-.254-.316-1.079-.336-1.29-.353.041-1.366 1.025-1.32 2.265a7.96 7.96 0 00-.276.08c-.296-.402-1.167-1.472-2.314-1.842A3.647 3.647 0 005.832.936c-1.36 0-2.163.81-2.17.818l-.383.445.576.114c.01.002.966.201 1.362.826.065.104.083.31.101.527.012.13-.016.257-.043.379-.02.09-.038.181-.043.273-.358.014-.665.084-.914.211a1.255 1.255 0 00-.662.797c-.233.854.525 1.805.551 1.836.089.158.126 1.303-.078 1.762-.028.063-.103.126-.201.205-.03.024-.065.049-.102.076-.288.217-.722.548-.722 1.305 0 1.036 1.05 1.597 1.894 2.049.139.074.271.144.39.212l-.003.004c.126.073.57.534.57 1.223 0 .323-.028 1.859-.172 2.924-.541-.464-1.04-1.211-1.152-2.049 0 0-1.372 1.057-.969 3.32.246 1.385 1.087 2.16 2.203 2.565.405.89 1.365 2.143 3.155 2.326.677.554 1.613.913 2.978.914V24h.008c1.367-.001 2.305-.36 2.982-.916 1.786-.185 2.744-1.437 3.149-2.326 1.116-.406 1.957-1.18 2.203-2.565.402-2.263-.969-3.32-.969-3.32-.112.838-.61 1.585-1.152 2.049-.144-1.065-.174-2.601-.174-2.924 0-.689.446-1.15.572-1.223l-.004-.004c.12-.068.253-.138.39-.212.845-.452 1.893-1.013 1.893-2.05 0-.756-.434-1.087-.722-1.304l-.102-.076c-.097-.079-.173-.142-.2-.205-.205-.46-.168-1.604-.079-1.762.026-.03.784-.982.55-1.836a1.255 1.255 0 00-.661-.797c-.248-.127-.554-.197-.91-.21a1.655 1.655 0 00-.043-.276 1.289 1.289 0 01-.043-.379c.018-.218.036-.423.101-.527.396-.625 1.35-.825 1.36-.826l.576-.114-.381-.445c-.007-.008-.812-.818-2.172-.818-.371 0-.75.06-1.129.183-1.148.37-2.018 1.443-2.312 1.844a8.06 8.06 0 00-.45-.127c-.196-.74.42-1.803.42-1.803s-.635-.14-1.578.715C13 1.442 12.743.784 13.04 0zm5.118 1.637c.516 0 .936.14 1.158.234-.144.065-.3.15-.455.252a2.51 2.51 0 00-.43-.037 2.33 2.33 0 00-1.347.418c-.578.406-.846.793-.969 1.049a5.47 5.47 0 00-.552-.28c.285-.418.926-1.236 1.767-1.507.265-.086.543-.13.828-.13zm-12.314.002c.285 0 .564.043.828.129.839.27 1.481 1.086 1.767 1.505-.074.034-.15.068-.222.104a5.505 5.505 0 00-.33.176c-.124-.256-.392-.641-.969-1.047a2.32 2.32 0 00-1.346-.418c-.172 0-.32.017-.433.037a3.15 3.15 0 00-.453-.25 3.034 3.034 0 011.158-.236zm-.157.982c.349.014.655.123.913.328.386.308.572.844.634 1.057a2.965 2.965 0 00-.49.521 6.575 6.575 0 00-.543-.125C6.048 4.194 6.025 3.91 6 3.61c-.024-.29-.05-.588-.205-.834a1.932 1.932 0 00-.107-.154zm12.625.002a1.91 1.91 0 00-.105.15c-.155.246-.18.544-.205.834-.025.3-.05.587-.203.795-.197.037-.38.08-.541.125a2.952 2.952 0 00-.488-.52c.065-.221.256-.754.634-1.056.257-.204.562-.314.909-.328zm-6.31.727c1.307 0 2.477.25 3.482.74.667.325.916.57 1.01.705-1.596.709-2.483 2.164-2.492 2.18l-.162.273.262-.182.02-.015c.407-.321 1.827-1.395 3.003-1.768.329-.104.966-.28 1.541-.28.293 0 .53.045.707.136.166.085.27.206.314.369.117.425-.289 1.057-.439 1.246a.518.518 0 00-.06.1 6.35 6.35 0 01-.016-.672c-.188.41-.305 1.477-.238 2.017.168 1.373.736 2.078.736 2.078-.037-.073-.082-.362-.125-.699.034.03.068.057.101.084l.024.02c.214.172.416.333.416.853 0 .665-.72 1.056-1.416 1.432-.134.072-.267.143-.395.217-.406.234-.845.784-.894 1.603-.041.687.043 2.338.162 3.555-.584.226-1.253.3-1.861.318a5.246 5.246 0 01-.258-.617h.002c-.032-.092-.919-2.394-1.239-2.918.257 1.835.823 3.459 1.102 4.201a4.04 4.04 0 00-.549-.035l-2.736-.002h-.006l-2.736.002c-.206 0-.387.013-.55.035.28-.742.846-2.366 1.102-4.201-.319.524-1.205 2.826-1.236 2.918a5.244 5.244 0 01-.258.617c-.608-.017-1.277-.092-1.861-.318.12-1.217.201-2.868.16-3.555-.049-.819-.486-1.37-.892-1.603-.127-.074-.261-.145-.395-.217-.696-.376-1.416-.767-1.416-1.432 0-.52.202-.681.416-.853l.023-.02.102-.084c-.043.335-.089.623-.125.697.006-.007.569-.71.736-2.076.067-.54-.052-1.607-.24-2.017.008.227 0 .454-.016.67a.516.516 0 00-.058-.098c-.15-.189-.556-.821-.44-1.246a.575.575 0 01.315-.37c.176-.09.414-.134.707-.134.575 0 1.214.175 1.543.28C8.055 5.655 9.474 6.73 9.88 7.05l.02.015.26.182-.163-.273c-.01-.016-.895-1.471-2.49-2.18.094-.135.342-.38 1.01-.705 1.005-.49 2.177-.74 3.484-.74zm-1.281 4.613s.68.827 1.277.834v.002h.006c.597-.007 1.277-.834 1.277-.834v-.002c-.466.282-.884.38-1.281.389a2.495 2.495 0 01-1.28-.39zm-4.434.066c-.23.006-.47.036-.717.096.204.045.416.11.633.191l-.004.002c-.192.085-.3.323-.326.555-.054.47.244.898.244.898.03-.35.104-.6.19-.777.02.483.147 1.104.597 1.602.323.357 1.667 1.094 2.57.285.048.115.1.25.141.398.137.481-.125 1.184-.125 1.184s.705-.8.65-1.525c.507-.023 1.005-.394.99-.915 0 0-.883.488-1.663-.41-.4-.458-1.567-1.622-3.18-1.584zm11.428 0c-1.613-.038-2.781 1.126-3.18 1.584-.78.898-1.664.41-1.664.41-.014.52.482.892.988.915-.054.724.653 1.525.653 1.525s-.262-.703-.125-1.184c.042-.147.091-.282.138-.396.903.807 2.248.07 2.57-.287.452-.5.579-1.12.598-1.604.086.178.16.428.19.78 0 0 .3-.43.246-.899-.027-.232-.134-.47-.326-.555-.002 0-.004 0-.006-.002.217-.082.431-.146.635-.191a3.367 3.367 0 00-.717-.096zm-10.512.76c.915.514 1.754 1.204 2.104 1.736-.263.155-1.008.496-1.778-.076-.487-.362-.465-1.235-.326-1.66zm9.596 0c.14.425.161 1.298-.326 1.66-.77.572-1.517.23-1.78.076.35-.532 1.191-1.222 2.106-1.736zM4.455 16.197c.512 1.614 2.212 2.075 3.486 2.131a7.15 7.15 0 01-.34.485l-.052.052c-.339.366-.404.87-.194 1.494-1.057-.016-2.163-.468-2.724-1.392-.569-.936-.41-2.535-.176-2.77zm15.092 0c.233.235.393 1.834-.176 2.77-.561.923-1.664 1.373-2.72 1.39.21-.624.144-1.125-.194-1.49l-.002-.002c-.018-.02-.04-.04-.06-.06a7.1 7.1 0 01-.334-.477c1.274-.055 2.975-.517 3.486-2.13zM12 18.895l2.045.001h.74c.709 0 1.019.184 1.154.338.198.226.21.589.04 1.08v.002c-.31.886-1.14 3.03-3.979 3.034-2.839-.004-3.67-2.148-3.979-3.034-.17-.491-.157-.856.041-1.082.136-.154.446-.338 1.155-.338h.74L12 18.895zm-1.805.72l-.896.002h-.182c-.256 0-.384.074-.445.135-.089.09-.102.213-.041.37.163.415.533.756.642.85a.86.86 0 00.551.196l.002.002c.207 0 .39-.076.516-.211.352-.376.561-.782.611-.906.029-.071.062-.207-.04-.313-.081-.082-.221-.125-.417-.125h-.3zm3.31 0c-.194 0-.335.043-.415.125-.104.106-.07.242-.041.313.05.124.259.53.611.906v.002c.126.135.31.209.518.209a.861.861 0 00.55-.197c.11-.094.48-.434.643-.85.061-.156.048-.281-.04-.371-.061-.06-.188-.135-.444-.135h-.184l-.896-.002h-.301zm-6.728 1.387c.282.052.575.088.873.111.163.379.347.748.577 1.088a3.186 3.186 0 01-1.45-1.199zm10.446 0a3.19 3.19 0 01-1.442 1.195c.228-.34.413-.707.574-1.084a8.26 8.26 0 00.868-.111Z\"},\"child\":[]}]})(props);\n};\nexport function SiGsk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.769 13.5v2.114h1.49V12.3c0-.15.115-.174.2-.093l3.512 3.408H24L20.279 12 24 8.384h-2.034l-3.512 3.408c-.081.081-.2.058-.2-.093V8.384h-1.485v2.125c0 .763.5 1.225 1.386 1.468.035.011.035.046 0 .057-.89.243-1.386.705-1.386 1.466ZM8.323 11.191c0 .924.774 1.5 1.825 1.5h3.535a.388.388 0 0 1 .416.416v.6a.388.388 0 0 1-.416.416H8.7v1.49h5.014a1.793 1.793 0 0 0 1.837-1.838v-.657a1.791 1.791 0 0 0-1.836-1.837H10.2a.388.388 0 0 1-.416-.416v-.717a.255.255 0 0 1 .277-.277h4.9V8.384H10.76a1.011 1.011 0 0 0-1.016 1V9.8a.067.067 0 0 1-.065.069h-.005a1.269 1.269 0 0 0-1.351 1.322ZM6.666 11.284H4.274v.448a.957.957 0 0 0 .951.962h.585v1.155a.278.278 0 0 1-.278.277H1.907a.416.416 0 0 1-.416-.416v-3.42a.415.415 0 0 1 .415-.416H5.8v-1.49h-4a1.8 1.8 0 0 0-1.8 1.8v3.635a1.8 1.8 0 0 0 1.8 1.8h3.017A1.018 1.018 0 0 0 5.834 14.6v-.4a.067.067 0 0 1 .065-.07c.808-.023 1.328-.416 1.328-1.1v-1.746Z\"},\"child\":[]}]})(props);\n};\nexport function SiGsmarenadotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.324 22.992c-.905-.454-12.625-5.27-12.625-5.27a1.275 1.275 0 0 0-.389-.122c-.39-.056-.78.091-1.061.444 0 0-2.672 4.354-3.066 4.948C2.782 23.58 3.2 24 3.726 24h16.38c.644 0 .898-.67.218-1.008ZM19.688 0h-7.743c-.868 0-1.49.28-2.042 1.043L4.05 10.497c-.333.457-.14.985.336 1.185.974.412 2.766.977 3.68 1.388.718.326 1.157.204 1.552-.382l4.092-6.507.49-.005v7.405c0 .924.37 1.279.946 1.54.577.246 4.144 1.773 4.689 1.973.644.246 1.143-.05 1.143-.731V1.289c0-.706-.585-1.289-1.29-1.289Z\"},\"child\":[]}]})(props);\n};\nexport function SiGstreamer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.091 14.055c-.029-.586.226-1.949.811-1.82.25.055.181.399.1.77-.11.502-.3 1.049-.3 1.049s.714.028.7 0c.071-.9.26-1.878.785-1.805.435.061-.124 1.805-.124 1.805h.65c-.023-.296.136-.985.226-1.483.09-.498-.101-.716-.502-.72s-.798.347-.798.347c.016-.3-.38-.347-.38-.347-.421-.027-.826.257-.826.257l.038-.22h-.636s-.032.35-.16.99c-.129.638-.3 1.176-.3 1.176h.716zm4.354-2.22c-.87 0-1.259.614-1.259 1.242s.371 1.042 1.128 1.042c.355 0 .556-.328.556-.328s.012-.09-.055-.053c-.067.038-.25.116-.49.116s-.497-.227-.497-.791h1.37c.072-.229.118-1.229-.753-1.229zm.127.974h-.665c0-.46.368-.806.618-.683.228.106.047.683.047.683zm-8.306-.975c-.871 0-1.26.615-1.26 1.243s.372 1.042 1.128 1.042c.356 0 .557-.328.557-.328s.012-.09-.056-.053c-.067.038-.25.116-.489.116s-.497-.227-.497-.791h1.37c.072-.229.118-1.229-.753-1.229zm.127.975h-.665c0-.46.31-.757.56-.634.228.106.105.634.105.634zm9.623 1.28h-.703s.41-1.472.446-2.194c-.006.006.609 0 .609 0s-.053.163-.076.305c.174-.193.233-.366.705-.366.006 0 0 .609 0 .609s-.44-.11-.6.049c-.158.158-.328.285-.381 1.597zm-12.12 0h-.702s.41-1.472.446-2.194c-.006.006.609 0 .609 0s-.053.163-.076.305c.174-.193.233-.366.705-.366.006 0 0 .609 0 .609s-.44-.11-.6.049c-.158.158-.328.285-.382 1.597zm-.856-2.95-.574.198-.132.535h-.366v.352h.289s-.308 1.103-.25 1.44c.057.366.414.443.626.433s.27-.164.26-.221-.299.055-.328-.205c-.02-.154.24-1.447.24-1.447h.454v-.352h-.357l.138-.734zm5.985 2.916c.085-.07.028-.21-.045-.228-.084-.172.173-1.178.173-1.454s-.462-.828-1.416-.308c-.092.059-.058.155-.036.187s.066.053.086.032c.09-.098.48-.2.663-.007.125.115.12.339.033.425-.106.01-1.15-.02-1.276.644-.216 1.18 1.107.558 1.175.51s.06.14.172.219c.301.026.412.03.471-.02zm-.66-.493c-.107.282-.505.24-.528.04-.086-.668.603-.618.603-.618s.032.296-.075.578zm-6.948-1.04.2-.337s-.163-.347-.644-.347-.758.347-.758.758.915.721.694 1.128c-.37.379-.76-.24-.753-.28-.028.04-.219.304-.21.304.047.092.214.385.75.392.444.005.712-.324.72-.73.01-.546-.785-.823-.794-1.072-.01-.25.527-.537.795.184zm-1.048-.803c-.085-.08-.15.027-.342.107-.193.08-.257.07-.45.043-.316-.07-.871-.049-1.017.022-.975.391-.452 1.116-.293 1.26-.001 0-.238.125-.272.32-.044.251.071.387.075.39-.319.017-.524.338-.474.6.053.283.39.508.872.51 1.02.022 1.072-.63 1.072-.63.14-.793-.533-.83-1.012-.792-.173-.155-.038-.3-.045-.3 1.619.039 1.211-1.041 1.211-1.041.273-.067.81-.36.675-.489zm-2.168 2.272c.634.114.89-.031.933.292.018.316-.25.406-.561.425-.311.02-.538-.138-.551-.34-.012-.203.164-.182.179-.377zm.98-1.38c-.06.26-.239.44-.402.404-.163-.037-.248-.277-.19-.537.06-.26.239-.44.402-.403.163.037.248.277.19.537zM4.037 9.475c-.464 0-1.142-.378-1.802-.378s-1.055.378-1.124.43c-.069.05-.112.248.094.188.206-.06.378-.06.704-.06s1.107.446 1.896.446 1.45-.609 1.596-.823c.145-.215.008-.284-.103-.232-.112.051-.832.429-1.261.429zm2.012 1.175c-.487 0-1.199-.377-1.893-.377s-1.108.377-1.18.429c-.073.051-.118.248.099.188.216-.06.396-.06.739-.06.342 0 1.162.446 1.992.446s1.523-.609 1.676-.823c.153-.215.009-.283-.108-.232s-.874.43-1.325.43zm-2.8 1.297c-.506 0-1.244-.408-1.964-.408s-1.15.408-1.224.464-.122.268.103.203c.224-.065.41-.065.766-.065s1.206.482 2.066.482c.86 0 1.58-.658 1.738-.89.16-.23.01-.305-.112-.25-.121.056-.906.464-1.374.464z\"},\"child\":[]}]})(props);\n};\nexport function SiGtk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.01 23.773V14.45l-7.584 2.245Zm0-13.87L.91 3.828l.502 12.526 7.597-2.249ZM9.57 24l12.353-5.146-8.285-5.775-4.068 1.204ZM23.09 5.815l-9.257 2.849v4.148l8.237 5.741ZM9.57 9.975v3.964l3.932-1.164v-4.01Zm-.228-.52 4.16-1.28V0L1.231 3.37ZM22.715 5.34 13.833.052v8.021Z\"},\"child\":[]}]})(props);\n};\nexport function SiGuangzhoumetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.433 12.329A16.188 16.188 0 0 1 22.118.009L17.684 0a16.2 16.2 0 0 0-4.776 11.374V24h3.525zm-8.869 0A16.174 16.174 0 0 0 1.882.009L6.319 0a16.238 16.238 0 0 1 4.773 11.374V24H7.564z\"},\"child\":[]}]})(props);\n};\nexport function SiGuilded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.297 6.255s.02 2.846 1.481 5.79c1.502 2.834 3.572 4.654 5.28 5.38 1.765-.826 3.47-2.258 4.4-3.8h-4.845c-1.253-1.04-2.24-2.763-2.466-4.755H23.36c-.701 3.203-2.188 6.116-3.605 7.971a17.108 17.108 0 01-7.686 5.659h-.045c-5.098-2.031-7.84-5.23-9.65-8.84C1.214 11.347 0 7.147 0 1.5h24a34.23 34.23 0 01-.32 4.755z\"},\"child\":[]}]})(props);\n};\nexport function SiGuitarpro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.998 0C6.422 0 1.773 3.573 1.773 7.295S8.561 23.973 11.998 24c3.435.027 10.218-12.971 10.229-16.705C22.227 3.575 17.575 0 11.998 0zm3.842 5.078a2.292 2.292 0 0 1 2.389 2.34l.007 1.783a2.267 2.267 0 0 1-2.265 2.342 2.364 2.364 0 0 1-1.772-.799v3.115l-1.746.239V5.375l1.688-.287.058.785a2.292 2.292 0 0 1 1.64-.795zm-5.555.035h1.7l-.005 5.953c0 1.736-.931 2.973-2.58 2.973a4.946 4.946 0 0 1-2.423-.523l.207-1.748a3.297 3.297 0 0 0 1.996.843.946.946 0 0 0 1.056-.998v-.904l-.011.014a2.333 2.333 0 0 1-1.77.806 2.28 2.28 0 0 1-2.26-2.345V7.47a2.285 2.285 0 0 1 4.03-1.551zM9.082 6.385a1.156 1.156 0 0 0-1.139 1.273v1.26a1.164 1.164 0 0 0 1.139 1.258 1.183 1.183 0 0 0 1.154-1.139V7.55a1.158 1.158 0 0 0-1.154-1.153zm5.98.008a1.152 1.152 0 0 0-.874 1.228v1.33a1.18 1.18 0 0 0 1.152 1.26 1.166 1.166 0 0 0 1.14-1.26v-1.33a1.152 1.152 0 0 0-1.418-1.228z\"},\"child\":[]}]})(props);\n};\nexport function SiGulp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.936 4.694c-.336 0-.675.078-1.013.222-.34.145-.676.346-1.007.605a7.133 7.133 0 00-.97.917c-.313.354-.61.745-.887 1.164-.276.42-.533.867-.78 1.32h-.001v.001c-.239.473-.448.96-.63 1.455-.18.496-.324.993-.438 1.497-.11.5-.178.987-.2 1.465a.515.515 0 00-.01.091v.095c0 .261.038.53.075.776v.002l.001.002c.068.262.175.504.31.717a1.7 1.7 0 00.537.518c.217.138.474.207.776.207.263 0 .536-.06.817-.185.279-.125.557-.288.834-.479.268-.192.536-.412.794-.66.207-.192.396-.392.583-.59l-.196.608c-.085.293-.18.576-.257.853-.085.274-.152.52-.209.738-.057.216-.096.362-.096.456v.215c0 .241.025.411.104.518a.398.398 0 00.333.152.435.435 0 00.265-.095c.081-.06.15-.137.219-.224v-.002l.002-.001c.057-.087.115-.18.164-.278.05-.101.078-.19.107-.269v-.001l.067-.24.143-.495.19-.662c.076-.247.142-.495.227-.747l.225-.75c.072-.244.14-.465.203-.661.063-.2.116-.362.16-.493.02-.065.04-.116.054-.154l.014-.032.04.018.018-.048c.076-.218.151-.427.227-.626.076-.2.152-.4.21-.597a3.762 3.762 0 00.22-1.29.637.637 0 00-.05-.255.44.44 0 00-.124-.18.499.499 0 00-.174-.1.622.622 0 00-.19-.03.655.655 0 00-.378.127c-.129.086-.225.229-.297.422v.001l-.55 1.764a3.91 3.91 0 01-.317.513v.001a9.407 9.407 0 01-1.71 1.832c-.207.17-.404.301-.6.404a1.063 1.063 0 01-.5.146.48.48 0 01-.312-.103.637.637 0 01-.204-.275 1.582 1.582 0 01-.102-.387 3.182 3.182 0 01-.028-.422c0-.413.066-.874.198-1.394.132-.52.312-1.04.539-1.579.227-.54.492-1.06.786-1.571.293-.511.605-.965.926-1.362.32-.396.64-.706.97-.95.327-.244.62-.362.902-.362a.88.88 0 01.497.145c.152.098.29.263.42.496v-.001c.134.259.269.46.385.606.12.15.259.227.408.227a.51.51 0 00.416-.208c.115-.138.17-.327.17-.556 0-.096-.01-.2-.03-.307a.87.87 0 00-.14-.334c-.314-.47-.651-.807-1.01-1.024H7.06a2.216 2.216 0 00-1.125-.317zm10.961.855a.802.802 0 00-.41.12h-.001l-.001.001a.85.85 0 00-.318.43l-1.889 4.758-.417 1.045c-.153.38-.295.76-.447 1.148a4.792 4.792 0 00-.176.551 4.995 4.995 0 01-.257.215c-.207.16-.403.281-.589.365h-.002c-.184.093-.339.129-.463.129-.082 0-.137-.02-.172-.053-.035-.033-.056-.084-.056-.166 0-.185.028-.39.084-.615.057-.22.132-.451.217-.683a8.73 8.73 0 01.274-.69l.276-.644c.086-.2.153-.382.21-.534a1.15 1.15 0 00.089-.377.71.71 0 00-.143-.437.474.474 0 00-.39-.19.466.466 0 00-.378.179 1.514 1.514 0 00-.254.42 3.917 3.917 0 00-.201.537c-.056.19-.131.368-.207.535-.113.25-.246.524-.416.826a6.64 6.64 0 01-.565.849c-.207.26-.432.479-.675.654-.24.175-.495.257-.75.257-.083 0-.138-.03-.167-.088a.472.472 0 01-.052-.225c.01-.204.046-.419.112-.643.066-.222.141-.443.226-.66.085-.21.18-.424.283-.625.105-.201.2-.391.294-.56v-.001l.248-.47c.068-.136.107-.243.135-.33l.001-.002v-.001c.01-.04.021-.09.021-.145a.419.419 0 00-.054-.214v-.001l-.001-.001a.526.526 0 00-.335-.238.65.65 0 00-.588.103c-.132.091-.231.232-.319.426a23.085 23.085 0 00-.79 1.817c-.19.505-.323.914-.418 1.229a4.666 4.666 0 00-.163.7v.001l-.02.231v.002c0 .214.029.4.09.55v.002c.068.147.148.266.249.357a.893.893 0 00.36.191c.132.04.27.059.41.059.311 0 .598-.058.861-.155s.501-.232.714-.396c.21-.163.4-.346.563-.548.12-.14.21-.285.3-.427-.04.22-.078.437-.078.614 0 .33.063.57.202.717a.695.695 0 00.523.214c.208 0 .439-.057.694-.17.253-.113.51-.262.77-.446.065-.045.127-.093.19-.141l.005.036a1 1 0 00.15.35h.001l.001.002c.08.099.17.18.291.24.123.062.273.091.45.091.253 0 .516-.059.787-.175h.002c.268-.125.537-.279.805-.48.268-.201.545-.44.812-.697l.01-.009c-.046.106-.09.212-.138.319-.219.484-.442.972-.674 1.471-.233.5-.466.994-.684 1.488l-.001.003-.001.002a3.93 3.93 0 01-.104.278c-.036.092-.085.188-.115.298v.001c-.037.1-.075.198-.095.306-.03.11-.04.217-.04.315 0 .208.059.367.172.447a.67.67 0 00.398.115c.122 0 .234-.03.335-.08v-.001h.001a.95.95 0 00.263-.22c.076-.09.14-.192.198-.308.059-.117.107-.242.154-.365l.002-.004v-.004c.008-.037.037-.121.084-.244l.162-.436.19-.512.199-.522.17-.435c.048-.124.077-.21.095-.255v-.001c.019-.038.048-.095.085-.189l.133-.313.161-.37.172-.38.142-.342.103-.226.001-.001c.085-.17.188-.358.302-.566v-.001c.123-.207.255-.405.396-.612v-.001c.152-.2.302-.397.463-.585.161-.187.33-.347.5-.498.173-.14.346-.262.521-.345a1.14 1.14 0 01.499-.128c.086 0 .143.018.178.039a.135.135 0 01.042.103c0 .08-.043.207-.144.353v.001c-.104.16-.226.33-.377.519-.162.19-.323.389-.503.597-.18.21-.352.419-.514.628a6.18 6.18 0 00-.412.603v.001a1.518 1.518 0 00-.205.53v.007a.193.193 0 01-.004.022c-.003.01-.006.014-.006.035v.057c0 .257.092.465.274.606.183.152.441.22.76.22.349 0 .67-.068.97-.204.298-.134.605-.316.92-.556h.001c.315-.236.64-.517.991-.843.341-.325.739-.685 1.184-1.08a.847.847 0 00.262-.352c.059-.138.089-.275.089-.41a.635.635 0 00-.082-.324.278.278 0 00-.248-.148.369.369 0 00-.164.043c-.053.026-.109.06-.17.101-.104.033.017.063.03.108-.538.481-1.004.887-1.373 1.206-.38.332-.699.588-.946.788a5.893 5.893 0 01-.574.41c-.132.079-.233.117-.289.117-.078 0-.132-.02-.156-.043a.142.142 0 01-.043-.108c0-.007.01-.036.035-.075.026-.04.065-.091.117-.152l.398-.465c.162-.181.324-.381.504-.6.18-.22.35-.447.502-.682.16-.23.285-.467.39-.7.101-.233.156-.455.156-.666a.837.837 0 00-.106-.426.92.92 0 00-.277-.3c-.11-.08-.238-.14-.375-.181h-.001a1.557 1.557 0 00-1.043.073 3.064 3.064 0 00-.598.332 5.677 5.677 0 00-.565.45 9.89 9.89 0 00-.38.378l.036-.176c.015-.073.025-.141.034-.207v-.001c.01-.068.013-.116.013-.149a.529.529 0 00-.126-.373v-.001h-.002c-.087-.09-.222-.129-.4-.129-.122 0-.24.07-.34.19a2.18 2.18 0 00-.263.418 4.225 4.225 0 00-.202.48l-.133.378v.001c-.046.159-.097.321-.15.485-.014.004-.027.008-.041.014a.33.33 0 00-.136.089l.003-.003c-.118.114-.251.247-.399.389-.147.142-.303.284-.464.426-.162.133-.326.275-.49.407-.162.13-.32.245-.471.345-.15.101-.29.18-.419.241a.776.776 0 01-.309.088c-.06 0-.085-.014-.1-.042h-.001a.311.311 0 01-.032-.155c0-.113.02-.243.064-.39.042-.146.086-.274.13-.385l.028-.03.374-.952c.142-.365.294-.746.465-1.152l.513-1.254c.17-.427.342-.84.503-1.234l.475-1.102c.142-.336.266-.619.37-.848l-.001.002c.059-.117.097-.227.135-.32v-.002a.934.934 0 00.055-.297c0-.196-.061-.35-.18-.443a.6.6 0 00-.384-.133Z\"},\"child\":[]}]})(props);\n};\nexport function SiGumroad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0Zm-.007 5.12c4.48 0 5.995 3.025 6.064 4.744h-3.239c-.069-.962-.897-2.406-2.896-2.406-2.136 0-3.514 1.857-3.514 4.126 0 2.27 1.378 4.125 3.514 4.125 1.93 0 2.758-1.512 3.103-3.025h-3.103v-1.238h6.509v6.327h-2.855v-3.989c-.207 1.444-1.102 4.264-4.617 4.264-3.516 0-5.584-2.82-5.584-6.326 0-3.645 2.276-6.602 6.618-6.602z\"},\"child\":[]}]})(props);\n};\nexport function SiGumtree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.846 6.582a.698.698 0 0 1-.333-.599C18.181 2.66 15.39 0 12 0 8.609 0 5.75 2.593 5.485 5.983a.796.796 0 0 1-.332.599C3.49 7.778 2.36 9.707 2.36 11.9c0 2.991 2.061 5.584 4.853 6.316.465.133.998.2 1.13.066.333-.2.798-1.862.599-2.194-.134-.2-.533-.399-1.064-.532-1.662-.465-2.86-1.928-2.86-3.723 0-.997.4-1.861.998-2.592a2.927 2.927 0 0 1 .998-.798c.73-.4 1.13-1.13 1.13-1.928 0-.4.066-.798.2-1.196.531-1.53 1.927-2.66 3.656-2.66 1.728 0 3.125 1.13 3.656 2.66.132.399.2.798.2 1.196 0 .798.397 1.529 1.13 1.928.398.2.664.465.997.798a3.918 3.918 0 0 1 .997 2.592 3.859 3.859 0 0 1-3.855 3.856c-2.46 0-4.388 1.995-4.388 4.455v2.526c0 .465.066.997.2 1.13.266.267 1.995.267 2.26 0 .133-.133.2-.665.2-1.13v-2.593c0-.93.797-1.728 1.728-1.728 3.59 0 6.515-2.925 6.515-6.515-.002-2.128-1.133-4.056-2.794-5.252z\"},\"child\":[]}]})(props);\n};\nexport function SiGunicorn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.145 20.014c-.266-.085-.267-.122-.022-.865.244-.743.132-1.432-.32-1.974-.617-.737-.914-1.366-1.009-2.135-.08-.66-.107-.713-.376-.764-.18-.035-.43.034-1.023.281-.864.36-1.07.52-1.273.98-.108.242-.12.387-.06.667.075.342.378.892.494.893.03 0 .196.114.368.252.287.23.307.27.225.458-.176.408-.595.902-.764.902-.095 0-.482-.272-.91-.637-.836-.717-.872-.79-.96-1.965-.1-1.403.244-2.058 1.78-3.375l.964-.827.062-.5c.063-.518-.026-1.748-.177-2.427-.09-.4-.382-.783-.66-.86-.303-.084-.48.09-.712.694-.25.654-.486.882-.92.882-.27 0-.52-.173-.694-.477C4.033 9 3.96 7.691 4.035 7.002c.036-.33.038-.666.005-.745-.054-.128-.52-.405-1.62-.962a4.343 4.343 0 0 1-.518-.303 3.053 3.053 0 0 0-.49-.267C.994 4.54-.095 3.903.007 3.903c.193 0 1.01.252 1.446.445.266.118.52.215.565.215.045 0 .558.165 1.14.366.58.202 1.111.367 1.18.367.16 0 .185-.14.134-.746-.024-.275-.023-.5.002-.5s.132.053.238.118c.324.198 1.02.32 1.84.32.783.002 1.806.157 2.196.335.56.254 1.211 1.05 2.036 2.49.574 1.002 1.19 1.426 2.073 1.427.357 0 1.31-.147 2.6-.4 1.063-.21 2.467-.259 3.012-.103.665.19 1.545.7 2.27 1.314.68.576.786.704 1.204 1.468.5.912 1.05 2.207 1.54 3.622.07.202.216.54.326.753.294.568.28.603-.255.603-.58 0-.853-.092-1.233-.415-.365-.31-.46-.5-1.032-2.05-.292-.796-.577-1.273-.76-1.273-.124 0-.376.852-.376 1.273 0 .3.187.702.67 1.447.788 1.21 1.202 2.922 1.036 4.28l-.07.586-.526.022c-.825.034-.817.046-.817-1.135 0-1.257-.085-1.529-.64-2.035-.23-.21-.748-.81-1.149-1.33-.402-.52-.786-.946-.854-.946-.158 0-.236.428-.244 1.332-.006.595-.03.696-.205.88-.476.497-.81 1.403-1.016 2.754-.046.3-.085.355-.279.398-.285.064-1.075.075-1.143.015-.059-.05.044-.863.278-2.19.088-.504.185-1.18.214-1.503.053-.574-.065-1.65-.204-1.867-.058-.09-.353-.11-1.732-.116-.915-.003-1.918-.033-2.23-.066l-.565-.06v.25c0 .27.07.506.53 1.822.162.464.397 1.17.523 1.57l.227.728-.192.592a6.11 6.11 0 0 1-.348.867c-.152.266-.17.274-.595.27a2.97 2.97 0 0 1-.677-.083z\"},\"child\":[]}]})(props);\n};\nexport function SiGurobi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.036 0 7.032 1.359L24 18.37 18.37 24 0 17.635 1.805 5.952 11.036 0Zm12.389 18.239L17.887 2.36l-3.557 7.83 3.88 13.264 5.215-5.214Zm-5.822-16.46L11.138.528l-8.71 5.617 11.554 3.6 3.62-7.968Z\"},\"child\":[]}]})(props);\n};\nexport function SiGusto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.311 8.768c-1.482 0-2.69 1.212-2.69 2.702s1.208 2.701 2.69 2.701c1.483 0 2.689-1.212 2.689-2.701s-1.206-2.702-2.689-2.702Zm0 4.123a1.42 1.42 0 0 1-1.415-1.421 1.42 1.42 0 0 1 1.415-1.422c.78 0 1.415.638 1.415 1.422s-.635 1.42-1.415 1.42Zm-7.919-1.969-.47-.235c-.204-.102-.332-.18-.384-.239a.283.283 0 0 1-.078-.19c0-.091.04-.168.122-.228.08-.063.193-.091.338-.091.264 0 .556.16.878.48l.794-.797a2.09 2.09 0 0 0-.744-.63 2.06 2.06 0 0 0-.937-.22c-.484 0-.884.143-1.196.431a1.367 1.367 0 0 0-.468 1.04c0 .63.412 1.154 1.24 1.57l.433.218c.373.189.559.381.559.58 0 .108-.052.201-.155.284a.63.63 0 0 1-.409.122c-.156 0-.336-.054-.538-.163a1.81 1.81 0 0 1-.528-.427l-.79.864c.446.584 1.04.878 1.786.878.561 0 1.009-.153 1.34-.458.335-.304.502-.685.502-1.141 0-.342-.093-.642-.277-.897-.185-.255-.525-.504-1.018-.75Zm-7.985 2.66V8.876H4.131v.316a2.662 2.662 0 0 0-1.442-.423C1.206 8.768 0 9.98 0 11.47s1.206 2.701 2.689 2.701c.505 0 1-.142 1.427-.412l-.002.104a1.42 1.42 0 0 1-1.415 1.42c-.265 0-.524-.075-.748-.217l-.631 1.11c.416.255.894.39 1.382.39a2.713 2.713 0 0 0 2.705-2.702c0-.057.004-.227 0-.281ZM2.69 12.89a1.42 1.42 0 0 1-1.415-1.42c0-.784.636-1.422 1.415-1.422s1.415.638 1.415 1.422a1.42 1.42 0 0 1-1.415 1.42Zm7.803-4.016H9.21v2.568c.002.365.002.995-.265 1.264-.128.128-.269.245-.563.245a.707.707 0 0 1-.565-.245c-.269-.27-.266-.901-.265-1.264V8.874H6.27v2.56c-.004.528-.01 1.509.633 2.16.377.38.827.575 1.476.575.65 0 1.1-.193 1.477-.576.643-.65.637-1.633.633-2.159l.004-2.56Zm7.27 3.787c-.104.078-.353.253-.636.213-.23-.03-.418-.2-.447-.768v-2.13h1.507V8.87H16.68V7.434H15.4v.281h-.002v4.223c0 .671.17 2.231 1.726 2.231.788-.012 1.266-.441 1.467-.609l.026-.02-.767-.95a4.174 4.174 0 0 1-.089.07Z\"},\"child\":[]}]})(props);\n};\nexport function SiGutenberg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.34 0a.205.205 0 00-.18.116c-.05.105-.01.23.095.28.503.25.459.692.418.87-.08.352-.391.723-.8.723-.522 0-.772-.263-1.052-.746-.138-.236-.523-.81-1.113-.982a1.615 1.615 0 00-1.718.533 1.615 1.615 0 00-1.717-.533c-.59.172-.975.746-1.114.982-.28.483-.53.746-1.042.746H8.11a.833.833 0 01-.81-.62c-.04-.146-.124-.642.442-.98a.208.208 0 00.071-.286.208.208 0 00-.286-.071c-.652.388-.753 1.002-.631 1.447.148.55.637.921 1.21.925h.01c.787 0 1.138-.493 1.404-.952.088-.151.412-.658.871-.79.567-.164 1.17.099 1.407.615a.212.212 0 00.182.121h.024a.211.211 0 00.182-.121c.236-.516.84-.78 1.407-.614.459.135.783.638.87.79.267.462.618.95 1.414.95.479 0 1.046-.357 1.204-1.042.132-.566-.11-1.08-.64-1.34a.215.215 0 00-.102-.02zM3.821.093a.21.21 0 00-.21.209c0 .115.092.21.21.21H6.41a.21.21 0 00.209-.21.21.21 0 00-.21-.21zm13.863 0a.21.21 0 00-.209.209c0 .115.095.21.21.21h2.587a.21.21 0 00.21-.21.21.21 0 00-.21-.21zM2.904.096a.21.21 0 00-.206.21.21.21 0 00.21.208.21.21 0 00.209-.209.21.21 0 00-.21-.209.21.21 0 00-.003 0zm18.24 0a.21.21 0 00-.206.21.21.21 0 00.209.208.21.21 0 00.21-.209.21.21 0 00-.21-.209.21.21 0 00-.004 0zm-19.39 0a.209.209 0 00-.196.21v2.216c0 .115.091.21.206.21a.21.21 0 00.21-.21V.859l1.015 1.153a.209.209 0 00.313-.273L1.922.167a.211.211 0 00-.167-.07zm20.512 0a.21.21 0 00-.168.07l-1.38 1.57a.205.205 0 00.02.293c.082.078.213.068.29-.02L22.045.855V2.52c0 .114.095.209.21.209a.21.21 0 00.209-.21V.306a.208.208 0 00-.197-.208zM8.235.526a.564.564 0 10.563.563.564.564 0 00-.563-.563zm7.591 0a.564.564 0 000 1.126.565.565 0 000-1.126zm3.59.224a.208.208 0 00-.212.164c-.078.354-.034.637.134.846.243.304.635.314.679.314a.209.209 0 00.202-.158c.078-.29.047-.547-.094-.756-.226-.338-.641-.402-.689-.408a.214.214 0 00-.02-.002zm-14.835 0c-.007 0-.013 0-.02.002-.047.006-.459.07-.688.408-.139.209-.172.462-.098.759a.213.213 0 00.202.159c.044 0 .435-.01.678-.314.169-.21.213-.496.135-.847a.208.208 0 00-.209-.167zm3.654.19a.15.15 0 01.148.149.15.15 0 01-.148.148.15.15 0 01-.148-.148.15.15 0 01.148-.148zm7.591 0a.15.15 0 01.149.149.15.15 0 01-.149.148.15.15 0 01-.148-.148.15.15 0 01.148-.148zM4.41 1.234a.41.41 0 01-.078.267.395.395 0 01-.178.121c0-.088.023-.165.064-.226a.51.51 0 01.192-.162zm15.18 0c.07.034.144.088.192.162.04.064.064.138.064.226a.404.404 0 01-.176-.121.412.412 0 01-.08-.267zm-6.593.135a1.3 1.3 0 00-.439.07.206.206 0 00-.121.267.21.21 0 00.266.125c.034-.013.844-.283 1.464.682.04.06.108.094.176.094.037 0 .077-.01.111-.034a.208.208 0 00.064-.286c-.465-.72-1.07-.918-1.52-.918zm-1.989.003a1.577 1.577 0 00-.262.017c-.35.05-.853.25-1.272.901a.207.207 0 00.064.287.196.196 0 00.112.034.212.212 0 00.175-.095c.618-.965 1.427-.695 1.464-.681a.208.208 0 00.267-.125.211.211 0 00-.125-.27c-.023-.008-.184-.065-.423-.068zm.976.162a.21.21 0 00-.205.21.21.21 0 00.209.209.21.21 0 00.209-.21.21.21 0 00-.21-.209.21.21 0 00-.003 0zm6.779.303c-.2-.007-.455.052-.77.244a3.24 3.24 0 00-.533.415c-.513.452-.941.442-.965.442a.208.208 0 00-.1.395c.33.155.63.216.9.216.516 0 .928-.226 1.215-.463.458-.378.695-.853.705-.873a.206.206 0 00-.081-.27.777.777 0 00-.372-.106zm-13.434.002a.796.796 0 00-.372.104.206.206 0 00-.081.27c.01.02.246.495.705.873.287.237.695.463 1.214.463.274 0 .574-.061.901-.216a.207.207 0 00.112-.24.208.208 0 00-.213-.158c-.017 0-.449.013-.962-.44A3.237 3.237 0 006.1 2.08c-.315-.19-.57-.248-.77-.242zM12 2.114c-.263 0-.469.273-.627.634-1.677.074-3.762 1.157-3.85 1.201-1.427.719-2.898-.638-3.273-1.019-.057-.064-.097-.101-.1-.108a.208.208 0 00-.304.283l.26.294c.151.189.343.462.505.79.405.82.412 1.565.024 2.22a8.822 8.822 0 00-1.174 1.896c-1.13.368-1.535-.32-1.552-.351 0-.004-.003-.003-.003-.007-.213-.357-.129-.84.195-1.147.25-.236.685-.256.82-.256h.003c.453 0 .918-.071 1.219-.59.229-.399.168-.892-.156-1.219-.327-.334-.82-.391-1.258-.148a.206.206 0 00-.081.283.206.206 0 00.283.081c.28-.152.564-.125.76.078a.596.596 0 01.09.718c-.185.32-.438.385-.843.385h-.014c-.185 0-.617.027-.961.25V3.335a.21.21 0 00-.21-.21.21.21 0 00-.208.21v3.509c-.23.412-.243.914-.007 1.32.023.043.168.286.492.468.186.105.453.203.807.203.128 0 .27-.014.421-.044-.364.978-.546 2.03-.553 3.178v.037a9.1 9.1 0 002.052 5.729 9.45 9.45 0 004.527 3.047 3.84 3.84 0 00-3.634 1.491 1.391 1.391 0 00-.192-.206.77.77 0 00.375-.658.767.767 0 00-.989-.732 1.175 1.175 0 00-.087-.368c-.324-.725-.915-.847-1.445-.904-.175-.02-.765-.108-1.076-.472-.391-.442-.398-1.1-.023-1.525a.208.208 0 10-.31-.277c-.51.58-.507 1.474.006 2.082.067.08.145.148.226.209a1.738 1.738 0 00-.651.334c-.496.408-.75 1.09-.756 2.017a.212.212 0 00.095.22c.033.02.07.03.107.03.014 0 .03-.003.044-.007h.004c.006 0 .01-.003.017-.007.01-.003.023-.007.033-.013.004 0 .004-.003.007-.003a.242.242 0 00.084-.081c.081-.105.415-.237.692-.294 1.083-.236 1.31-.968 1.275-1.32a.208.208 0 10-.415.038c0 .003.004.064-.016.155-.051.21-.237.57-.932.722h-.006a2.772 2.772 0 00-.55.179c.06-.6.253-1.04.58-1.312.503-.419 1.167-.3 1.174-.297a.203.203 0 00.064 0 2.5 2.5 0 00.277.043c.557.061.897.183 1.11.658.165.375-.047.807-.334 1.023-.145.111-.533.33-.968-.027a.209.209 0 00-.267.32c.196.162.415.257.641.284-.29.236-.486.533-.573.688-.284.49-.513.752-.895.756v-1.461a.21.21 0 00-.209-.21.21.21 0 00-.209.21v1.694c0 .084.05.155.122.189.037.027.08.047.128.047h4.858a.212.212 0 00.176-.095.22.22 0 00.06-.1 1.686 1.686 0 013.192-.223h-.445a1.204 1.204 0 00-1.117-.75c-.543 0-1.022.368-1.167.891a.21.21 0 00.145.257.21.21 0 00.256-.145.791.791 0 011.407-.253h-.121a.21.21 0 00-.21.209c0 .114.095.209.21.209h.421l.024.003c.01 0 .02 0 .027-.003h.837a.21.21 0 00.209-.21c0-.01 0-.02-.004-.03a.257.257 0 00-.003-.087 2.106 2.106 0 00-4.035-.092h-1.09c.088-.28.206-.54.354-.782.01-.014.017-.027.027-.04a3.434 3.434 0 014.862-.97c.017.011.034.021.05.025.088.104.176.215.26.33l.058.081c-.02.429.212.877.695 1.336.017.05.034.095.044.128v.044c0 .115.094.21.209.21a.203.203 0 00.199-.156c0-.003.03-.104.091-.273.435-.425.651-.84.648-1.242a6.449 6.449 0 01.381-.496 3.393 3.393 0 011.947-.607 3.42 3.42 0 013.273 2.413h-1.09a2.1 2.1 0 00-2.004-1.461c-.948 0-1.782.637-2.031 1.552a.173.173 0 000 .1v.018c0 .114.094.209.209.209h1.828a.21.21 0 00.21-.21.21.21 0 00-.21-.208h-.664a.791.791 0 011.41.263.206.206 0 00.253.148.21.21 0 00.152-.253 1.21 1.21 0 00-2.288-.159h-.421a1.687 1.687 0 013.191.223c.004.017.014.034.02.05a.208.208 0 00.2.146h4.95a.21.21 0 00.208-.21v-.067c.004-.02.004-.04.004-.06 0-.004 0-.008-.004-.011v-1.582a.21.21 0 00-.209-.21.21.21 0 00-.209.21v1.417c-.35-.027-.57-.287-.84-.752a2.65 2.65 0 00-.54-.658c.186-.04.364-.129.53-.267a.209.209 0 00-.267-.32c-.432.357-.82.138-.968.027-.287-.216-.5-.652-.334-1.023.212-.475.553-.6 1.11-.658.07-.006.165-.02.277-.043.02.003.043.003.067 0 .007 0 .665-.122 1.17.296.331.274.527.712.584 1.316a2.762 2.762 0 00-.553-.182h-.007c-.691-.152-.88-.51-.93-.719a.468.468 0 01-.018-.155.208.208 0 10-.415-.037c-.033.354.193 1.083 1.28 1.32.28.06.633.198.698.303a.356.356 0 00.034.04l.01.007c.01.007.02.017.03.02.003.003.01.007.013.007.01.007.02.01.03.014l.014.003c.014.003.03.007.047.007.014 0 .024 0 .037-.003.004 0 .007 0 .01-.003.01-.003.02-.007.034-.01h.004c.01-.003.017-.01.027-.014l.003-.003c.007-.003.014-.01.017-.013.003-.003.01-.007.014-.014l.013-.013c.003-.007.01-.01.013-.017l.01-.017.01-.017c.004-.007.004-.014.007-.02.004-.007.004-.014.007-.02 0-.007.004-.014.004-.017 0-.007.003-.014.003-.024v-.003c-.003-.955-.26-1.646-.763-2.061a1.69 1.69 0 00-.65-.334c.08-.061.158-.132.225-.21.517-.607.52-1.5.007-2.081a.205.205 0 00-.293-.017.205.205 0 00-.017.293c.374.426.367 1.083-.014 1.536-.31.364-.9.452-1.076.472-.53.057-1.124.179-1.444.904-.05.111-.081.236-.088.371a.767.767 0 00-1.002.729c0 .29.162.543.402.671-.071.065-.139.135-.2.216a3.847 3.847 0 00-3.62-1.518 9.413 9.413 0 005.55-4.619 8.912 8.912 0 001.016-4.153V11.977a8.487 8.487 0 00-.644-3.168c.138.027.27.037.388.037.873 0 1.258-.6 1.299-.671a1.3 1.3 0 00.11-1.05c.004-.01.004-.023.004-.037V3.286a.21.21 0 00-.209-.21.21.21 0 00-.21.21V6.48c-.353-.307-.866-.34-1.079-.34-.411.003-.668-.062-.857-.385a.592.592 0 01.091-.72c.2-.202.483-.228.76-.077a.209.209 0 00.202-.364c-.439-.243-.931-.182-1.259.148-.323.331-.384.82-.155 1.218.3.517.756.59 1.205.59h.017c.135 0 .57.021.82.257.323.307.408.79.195 1.147 0 0-.003.004-.003.007-.017.03-.419.712-1.539.354a10.48 10.48 0 00-1.093-1.808l-.165.125.165-.128-.067-.088c-.719-1.205.111-2.487.543-3.03l.243-.277a.208.208 0 00-.304-.283 2.71 2.71 0 00-.101.108c-.375.381-1.839 1.73-3.26 1.026l-.04-.027-.02-.014c-1.272-.685-2.527-1.08-3.725-1.18-.155-.355-.36-.625-.62-.625zm-8.509.077a.21.21 0 00-.205.21.21.21 0 00.209.209.21.21 0 00.209-.21.21.21 0 00-.21-.209.21.21 0 00-.003 0zm16.91 0a.21.21 0 00-.206.21.21.21 0 00.21.209.21.21 0 00.209-.21.21.21 0 00-.21-.209.21.21 0 00-.003 0zm-15.017.061c.35.017.8.385.958.543l.01.01c.159.142.318.247.463.324-.73.007-1.212-.55-1.43-.877zm13.324 0a2.62 2.62 0 01-.46.513c-.303.25-.627.37-.97.364.14-.074.3-.182.461-.324l.01-.01c.159-.158.608-.526.959-.543zm-6.718.283c.186.071.473.945.56 1.539.017.118.027.226.027.314a.59.59 0 01-1.18 0 2.91 2.91 0 01.03-.31c.09-.632.401-1.475.563-1.543zm-8.84.313l-.02.001c-.047.007-.459.071-.688.408-.138.21-.172.463-.098.76a.213.213 0 00.203.158c.043 0 .435-.01.678-.314.168-.209.212-.496.135-.846a.206.206 0 00-.21-.167zm17.727 0a.208.208 0 00-.213.163c-.077.354-.033.638.135.847.25.304.641.314.682.317a.209.209 0 00.202-.158c.075-.297.044-.55-.097-.76-.226-.337-.641-.401-.689-.408a.213.213 0 00-.02-.001zm-8.11.325c1.082.122 2.212.493 3.363 1.11l.044.03.023.014c.334.169.692.253 1.063.253.392 0 .8-.094 1.211-.283l-1.08 1.231a.761.761 0 00-.732.047 7.877 7.877 0 00-3.69-1.46 6.766 6.766 0 00-.203-.942zm-1.556.007c-.101.34-.169.695-.203.938a7.879 7.879 0 00-3.735 1.504.752.752 0 00-.712-.03L5.429 4.3c.415.186.82.28 1.211.28a2.36 2.36 0 001.066-.253c.02-.01 1.947-1.012 3.506-1.147zm-8.23.152c0 .11-.026.199-.077.266a.395.395 0 01-.179.122c0-.088.024-.166.065-.226a.51.51 0 01.192-.162zm18.071 0a.51.51 0 01.193.162c.04.064.064.138.064.226a.404.404 0 01-.176-.122.412.412 0 01-.08-.266zm-10.05 1.207a.994.994 0 00.79.837v.145A6.472 6.472 0 007.83 7.036l-.297-.34a.76.76 0 00.037-.77 7.488 7.488 0 013.432-1.387zm1.983 0a7.472 7.472 0 013.398 1.353.755.755 0 00.044.746l-1.68 1.916a.205.205 0 00.02.294.212.212 0 00.297-.02l1.677-1.913a.752.752 0 00.749-.047 7.506 7.506 0 011.96 4.15 1.008 1.008 0 00-.715.769l-.24.01a6.48 6.48 0 00-1.69-4.157.208.208 0 00-.307.28 6.07 6.07 0 011.569 3.63l-2.244-2.236a.208.208 0 00-.294.293l2.41 2.409L12 17.954l-5.938-5.938 2.389-2.389a.208.208 0 00-.294-.293L5.941 11.55a6.07 6.07 0 011.855-3.92l1.046 1.194c.04.048.098.071.159.071a.219.219 0 00.138-.05.208.208 0 00.02-.294L8.11 7.353a6.043 6.043 0 013.428-1.396L9.757 7.72a.208.208 0 00.148.354c.054 0 .105-.02.149-.06l1.956-1.937 1.9 1.9a.208.208 0 00.293-.294l-1.727-1.727a6.03 6.03 0 012.976 1.049.21.21 0 00.29-.054.21.21 0 00-.054-.29 6.435 6.435 0 00-3.468-1.134V5.38c.39-.095.705-.429.765-.84zm-7.75.17l1.013 1.156a.76.76 0 00-.058.73 7.912 7.912 0 00-2.058 4.399c-.3.047-.698.175-.998.367.118-1.78.715-3.323 1.822-4.693l.016-.023c.351-.58.439-1.242.264-1.937zm13.435.003c-.182.695-.094 1.353.257 1.936l.088.118c.765 1.023 1.663 2.605 1.835 4.575a2.526 2.526 0 00-.989-.354 7.916 7.916 0 00-2.098-4.44.748.748 0 00-.05-.742zm-1.622 1.167h.043c.156.01.287.121.321.27.003.02.007.037.007.057-.004.004 0 .01 0 .017a.353.353 0 01-.24.33.38.38 0 01-.108.018h-.033a.344.344 0 01-.314-.345.348.348 0 01.324-.348zm-10.186.057h.023c.159 0 .294.108.334.257.007.03.014.06.014.09a.345.345 0 01-.32.344h-.028a.347.347 0 01-.344-.344c0-.016 0-.03.004-.046 0-.01.003-.017.003-.027a.345.345 0 01.314-.274zm-4.045.938a.621.621 0 100 1.243.621.621 0 000-1.243zm18.296 0a.621.621 0 10.001 1.243.621.621 0 000-1.243zM6.46 6.918a.78.78 0 00.756.054l.3.344a6.486 6.486 0 00-2.01 4.477l-.17-.01a1.008 1.008 0 00-.782-.786A7.49 7.49 0 016.46 6.918zm.223.368a.199.199 0 00-.145.064c-.054.054-1.296 1.343-1.508 3.165a.21.21 0 00.185.23h.024a.205.205 0 00.206-.186c.192-1.677 1.38-2.909 1.39-2.919a.208.208 0 00-.004-.293.207.207 0 00-.148-.06zm10.65.002a.208.208 0 00-.15.353c.013.013 1.2 1.244 1.393 2.921a.208.208 0 00.206.186h.023a.209.209 0 00.183-.233c-.21-1.822-1.455-3.111-1.509-3.165a.212.212 0 00-.146-.062zm-14.516.005c.11 0 .202.09.202.202a.203.203 0 01-.202.203.203.203 0 01-.203-.203c0-.111.091-.202.203-.202zm18.296 0c.112 0 .203.09.203.202a.203.203 0 01-.203.203.199.199 0 01-.202-.203c0-.111.09-.202.202-.202zM1.741 9.026a.206.206 0 00-.22.207v3.802a.202.202 0 00.206.206.21.21 0 00.209-.21V9.628c.337.156.668.145.688.145a.205.205 0 00.2-.215.205.205 0 00-.217-.2c-.003 0-.455.01-.728-.27a.21.21 0 00-.138-.061zm20.5 0a.213.213 0 00-.14.062c-.273.28-.721.27-.728.27h-.007a.21.21 0 00-.209.199.208.208 0 00.2.215c.02 0 .35.01.687-.145v3.405c0 .114.095.209.21.209a.21.21 0 00.209-.21V9.234a.214.214 0 00-.132-.193.216.216 0 00-.09-.014zm-10.234.824c-.49 0-.884.162-1.184.483-.284.3-.432.695-.449 1.18l-.003.102.003.948h-.003c0 .536.152.965.452 1.285.3.32.695.483 1.184.483.412 0 .752-.098 1.026-.297.25-.182.398-.422.448-.719l.01-1.06c.308-.074.726-.242.989-.64a.173.173 0 00-.044-.257.185.185 0 00-.256.05c-.334.504-1.043.53-1.08.53h-.017c-.874 0-1.208.746-1.221.777a.186.186 0 00.169.26c.07 0 .138-.041.168-.112.004-.007.233-.52.824-.553v.954a.668.668 0 01-.294.49c-.179.125-.418.189-.712.189-.35 0-.638-.122-.85-.361-.216-.24-.324-.58-.324-1.02l.003-1.052c.017-.388.122-.695.32-.914.217-.24.5-.361.851-.361.294 0 .533.064.712.189.179.125.28.297.297.52v.023a.233.233 0 00.466 0v-.024a1.076 1.076 0 00-.46-.796c-.273-.2-.613-.297-1.025-.297zm7.706 1.542c.06 0 .125.007.189.017.455.074.968.381.978.567v.01c-.006.189-.523.496-.978.57-.064.01-.128.017-.189.017a.592.592 0 01-.59-.59.592.592 0 01.59-.591zm-15.361.003a.59.59 0 01.59.59.591.591 0 01-.59.591c-.078 0-.166-.01-.257-.03-.428-.091-.971-.361-.978-.557v-.01c.007-.196.55-.466.978-.553.095-.02.182-.03.257-.03zm.981.807l.173.01a6.49 6.49 0 002.405 4.852 7.728 7.728 0 00-1.613-.193 7.5 7.5 0 01-1.744-3.903c.388-.081.695-.382.78-.766zm13.402 0c.08.36.354.65.711.749a7.492 7.492 0 01-1.747 3.92c-.462 0-.999.054-1.606.186a6.486 6.486 0 002.399-4.845zm-12.798.276l5.598 5.598a6.089 6.089 0 01-5.598-5.598zm12.123 0a6.085 6.085 0 01-3.533 5.065c-.135.054-.23.097-.276.118-.56.222-1.16.367-1.788.415zM3.137 12.6c.3.196.702.324.999.371a7.892 7.892 0 001.643 3.92 4.867 4.867 0 00-1.006.196A8.538 8.538 0 013.137 12.6zm17.723.023a8.481 8.481 0 01-.948 3.354c-.202.388-.435.76-.692 1.117a4.765 4.765 0 00-1.002-.2 7.944 7.944 0 001.643-3.913c.29-.034.692-.158 1-.358zm1.407.878a.21.21 0 00-.21.209.21.21 0 00.21.21.21.21 0 00.21-.21.21.21 0 00-.21-.21zm-20.55.01a.21.21 0 00-.206.209.21.21 0 00.209.21.21.21 0 00.21-.21.21.21 0 00-.21-.21.21.21 0 00-.004 0zm20.236.61a.21.21 0 00-.209.21c0 .114.095.209.21.209h.333a.21.21 0 00.21-.21.21.21 0 00-.21-.208zM1.7 14.129a.21.21 0 00-.21.21c0 .114.095.209.21.209h.334a.21.21 0 00.209-.21.21.21 0 00-.21-.209zm20.074.59a.21.21 0 00-.209.21c0 .115.095.209.21.209h.512a.21.21 0 00.21-.21.21.21 0 00-.21-.208zM1.7 14.723a.21.21 0 00-.21.21c0 .117.095.208.21.208h.513a.21.21 0 00.209-.209.21.21 0 00-.21-.209zm19.835.59a.21.21 0 00-.21.21c0 .114.095.209.21.209h.752a.21.21 0 00.21-.21.21.21 0 00-.21-.209zM1.7 15.32a.21.21 0 00-.21.21c0 .114.095.209.21.209h.752a.21.21 0 00.21-.21.21.21 0 00-.21-.209zm19.538.59a.21.21 0 00-.21.21c0 .114.095.209.21.209h1.05a.21.21 0 00.209-.21.21.21 0 00-.21-.208zM1.7 15.917a.21.21 0 00-.21.21c0 .114.095.209.21.209h1.05a.21.21 0 00.208-.21.21.21 0 00-.209-.209zm19.238.587a.21.21 0 00-.21.21c0 .114.095.209.21.209h1.35c.114 0 .209-.091.209-.21a.21.21 0 00-.21-.209zM1.7 16.51a.21.21 0 00-.21.21c0 .117.095.208.21.208h1.35a.21.21 0 00.209-.209.21.21 0 00-.21-.209zm18.877.584a.21.21 0 00-.21.209c0 .115.095.21.21.21h.52a.21.21 0 00.209-.21.21.21 0 00-.21-.21zm-17.686.01a.21.21 0 00-.21.21c0 .114.095.208.21.208h.52a.21.21 0 00.209-.209.21.21 0 00-.21-.209zm14.891.177c.386.005.78.05 1.162.157a8.757 8.757 0 01-.554.62c-.283-.077-1.005-.225-1.98-.12-1.06.114-2.618.566-4.21 2.037v-.368a.21.21 0 00-.21-.209.21.21 0 00-.209.21v.347c-1.582-1.454-3.134-1.903-4.187-2.018-.999-.108-1.73.054-1.997.128a9.934 9.934 0 01-.523-.587c-.01-.013-.02-.023-.03-.037 1.015-.28 2.125-.131 2.904.054.942.226 1.63.554 1.637.557l.003-.007a6.5 6.5 0 004.808.004l.02-.01c.088-.038.179-.075.263-.115.287-.118.77-.294 1.35-.432a7.204 7.204 0 011.753-.211zm2.322.407a.21.21 0 00-.209.209c0 .115.095.209.21.209h1.288c.115 0 .21-.091.21-.21a.21.21 0 00-.21-.208zm-17.51.01a.21.21 0 00-.21.209c0 .115.095.21.21.21h1.289a.21.21 0 00.209-.21.208.208 0 00-.21-.21zm16.974.587a.21.21 0 00-.21.209c0 .115.095.21.21.21h1.009a.21.21 0 00.209-.21.21.21 0 00-.21-.21zm1.855 0a.21.21 0 00-.205.209.21.21 0 00.209.21.21.21 0 00.21-.21.21.21 0 00-.21-.21.21.21 0 00-.004 0zm-18.86.007a.21.21 0 00-.209.209.21.21 0 00.21.209.21.21 0 00.209-.21.21.21 0 00-.21-.208zm.847 0a.21.21 0 00-.209.209c0 .114.095.209.21.209h1.008a.21.21 0 00.21-.21.21.21 0 00-.21-.208zm3.547.033c.192.001.401.012.623.037 1.873.21 3.31 1.28 4.211 2.177v.61a.983.983 0 00-.101.064 6.845 6.845 0 00-.867-.924c-.85-.753-2.281-1.603-4.258-1.367v.004a8.758 8.758 0 01-.604-.51c.232-.046.574-.092.996-.09zm10.096.002c.416-.002.755.042.987.086a7.807 7.807 0 01-.601.506c-1.97-.23-3.394.618-4.244 1.367a6.788 6.788 0 00-.878.94c-.04-.026-.077-.053-.11-.07v-.594c1.595-1.602 3.18-2.081 4.233-2.2.219-.024.424-.034.613-.035zm1.86.555a.21.21 0 00-.209.21c0 .114.095.208.21.208h.573a.21.21 0 00.21-.209.21.21 0 00-.21-.209zm1.171 0a.21.21 0 00-.209.21.21.21 0 00.21.208.21.21 0 00.208-.209.21.21 0 00-.209-.209zm-16.181.007a.21.21 0 00-.206.209.21.21 0 00.21.21.21.21 0 00.208-.21.21.21 0 00-.209-.21.21.21 0 00-.003 0zm.597 0a.21.21 0 00-.21.209c0 .115.095.21.21.21h.574a.21.21 0 00.209-.21.21.21 0 00-.21-.21zm2.71.41c1.225-.008 2.339.424 3.326 1.29.35.307.628.624.837.898-.064.07-.122.148-.172.236a5.338 5.338 0 00-1.259-1.174l.004-.01a.098.098 0 00-.03-.007 5.006 5.006 0 00-2.022-.76 8.77 8.77 0 01-.803-.472l.12-.002zm9.581 0l.118.001a8.91 8.91 0 01-.81.476c-1.443.22-2.432.968-3.066 1.69a4.511 4.511 0 00-.23.28 1.594 1.594 0 00-.168-.24c.209-.272.492-.6.85-.913.98-.863 2.09-1.296 3.306-1.294zm-11.727 1.77a.347.347 0 110 .693.347.347 0 010-.694zm13.856 0a.347.347 0 11.001.693.347.347 0 010-.694zm-6.93.445h.004c.023.013.047.03.077.05a1.16 1.16 0 01.307.294.763.763 0 01.139.32c.037.247-.068.517-.307.81a2.7 2.7 0 01-.213.226l-.003.003-.004.003v-.007c-.007-.007-.017-.013-.024-.023a2.324 2.324 0 01-.178-.193c-.247-.293-.355-.567-.317-.816.003-.02.006-.04.013-.061a.794.794 0 01.138-.283c.051-.068.108-.125.166-.176.05-.044.1-.08.145-.111.02-.014.037-.024.054-.034 0 0 .003 0 .003-.003zm.004 1.703c.003-.003 0-.003 0-.007zm0-1.116h.003zm7.625 0c.117 0 .237.016.354.05.459.135.783.638.87.79.108.189.253.438.466.634h-2.331a3.873 3.873 0 00-.372-.894c.2-.358.595-.577 1.013-.58zm-15.125.038c.381.005.713.19.9.512a3.999 3.999 0 00-.388.924H2.81a2.86 2.86 0 00.418-.59c.088-.152.412-.658.87-.79.136-.04.268-.058.396-.056z\"},\"child\":[]}]})(props);\n};\nexport function SiH3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.2364 6.1048c-.0992-.0445-.2566-.0838-.3729-.1728-.4858-.3746-.9596-.768-1.442-1.1478-.1728-.135-.195-.2788-.089-.4687.3097-.5576.5936-1.1324.9238-1.6763.1043-.1728.3096-.3319.5029-.3952.792-.2617 1.5925-.5012 2.3999-.7116.1916-.0496.4499-.0086.6295.0839.5234.2685 1.0246.5816 1.5327.8826.2651.1574.2908.2327.1813.5217-.2155.5662-.4396 1.1273-.6466 1.697-.1095.2976-.3216.472-.609.5576-.8792.26-1.7602.5114-2.6411.7646-.101.0257-.207.036-.3695.065zm-6.1067 4.9299c-.1317-.0838-.2943-.1437-.3918-.2583C1.3137 10.2769.91 9.7586.4926 9.2523.3541 9.0846.3695 8.9119.467 8.751c.4636-.7544.922-1.5105 1.4146-2.246.113-.1677.337-.2977.5372-.3627.8176-.2634 1.6455-.4943 2.4717-.7355.2583-.0753.491-.048.7082.1437.4413.39.8946.7697 1.3514 1.1444.1915.1556.2275.3284.1265.5422-.3729.7834-.727 1.5772-1.1324 2.3435-.1111.2121-.349.426-.5747.4978-1.0127.325-2.0407.602-3.0636.8929-.0462.0137-.0975.012-.1454.0171-.012.0188-.0206.0325-.0308.0462zm14.9281-9.1875c.1626.0462.337.0718.4876.1437.7167.342 1.4266.6945 2.1365 1.0486.2685.1334.4105.2822.3301.6448-.1368.6141-.231 1.2385-.3284 1.8611-.048.3062-.2156.4961-.496.5782-1.052.308-2.1058.6073-3.1595.9015-.2823.0787-.5525.0086-.7954-.1522-.6877-.4585-1.3753-.9186-2.063-1.377-.1967-.1318-.2651-.296-.1796-.527.2275-.6226.4328-1.252.6808-1.8662.0633-.1556.231-.325.3866-.3746.9254-.2976 1.8628-.5645 2.7968-.8382.0616-.0188.13-.012.195-.017.0034-.0087.0068-.0172.0086-.0257zm-7.405 10.8023c-.2002-.1095-.4345-.1848-.5953-.337-.609-.573-1.1923-1.1752-1.7927-1.7568-.2172-.212-.2668-.4379-.1437-.7099.3592-.7903.6996-1.589 1.088-2.3657.0957-.1916.3181-.378.5234-.4447.9425-.3062 1.897-.573 2.8498-.8416.26-.0736.52-.0377.7527.1248.6637.4653 1.3308.9289 1.9945 1.3959.313.219.3712.3848.2668.7577-.2326.828-.472 1.6542-.6996 2.482-.0992.3593-.3318.5817-.6774.6809-1.0776.3113-2.157.614-3.2364.9151-.094.0257-.1933.0274-.2908.0411a.8758.8758 0 0 0-.0393.0582zM0 16.098c.0907-.2292.1522-.4499.2583-.6466.4892-.9169.9921-1.827 1.4882-2.7404.1847-.342.4584-.5696.833-.6756.946-.2686 1.8902-.5372 2.8362-.8074.3575-.1027.6432-.0274.9049.2583.544.5918 1.1084 1.1632 1.673 1.7345.2685.2703.3369.5679.2018.9186-.4294 1.1153-.8553 2.2306-1.2881 3.3424-.166.426-.4807.6877-.9237.8074-1.105.301-2.2084.609-3.3134.9135-.5371.1488-.756.0633-1.0503-.4037-.4618-.7339-.9288-1.4677-1.3856-2.205-.0906-.1505-.1505-.3181-.2343-.496Zm23.9857-6.1872c-.0565.9511-.106 1.8697-.166 2.7848-.0359.5337-.207.7356-.727.8793-1.1837.3284-2.369.6483-3.5528.9784-.4636.1283-.8741.0394-1.2436-.2583-.8946-.7184-1.7858-1.4403-2.6839-2.1553-.3301-.2634-.455-.5696-.337-.9921.2292-.8194.4362-1.6456.645-2.4718.0854-.337.2976-.5405.6191-.6346 1.0076-.2925 2.0168-.5782 3.0243-.8673.3661-.1043.715-.0633 1.0435.1283.9562.556 1.909 1.1153 2.8652 1.6712.3712.219.5867.5183.5132.9374zM8.1612 18.3251c.0923-.2976.1556-.5337.2377-.7646.3473-.9699.7133-1.9346 1.0486-2.9097.171-.496.4841-.7834.9904-.9185 1.0212-.2686 2.0339-.5645 3.05-.8536.4276-.1215.7971-.048 1.1426.248.8588.7356 1.726 1.4608 2.5967 2.1844.4003.3336.5696.727.4687 1.2556-.2446 1.2863-.4602 2.5795-.6928 3.8693-.089.4892-.3797.8074-.8621.9374-1.3428.361-2.6873.7236-4.0336 1.0742-.4875.1266-.8826-.0444-1.1956-.4327-.5714-.7082-1.1461-1.413-1.7209-2.1194-.2429-.2994-.5063-.585-.7218-.9015-.142-.2104-.2156-.4636-.308-.6689z\"},\"child\":[]}]})(props);\n};\nexport function SiHabr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.14 9.295l.17.253c-.34-.01-.696-.043-.764-.189 0-.007.002-.014.004-.021.19-.05.353-.053.59-.043zm1.806.77l.082.25-.192.008.046-.256c.022 0 .042-.001.064-.003zM3.6 11.89c-.17.156-.301.26-.402.497-.14-.115-.213-.343-.258-.598-.05-.278-.066-.587-.104-.818l.012-.118.197-.014.502.95.053.1zm-.254-2.342a60.527 60.527 0 01.077-.512l.065-.004c-.048.172-.096.344-.142.516zm-.137-2.322l.9.244a1.975 1.975 0 00-.004.04c-.419.31-.806.446-1.014 1.006L3.17 7.27l.039-.043zm.84-1.29c-.058.58.024.836.125 1.196.16.114.224.183.172.352-.27-.134-.556-.274-.97-.252a2.799 2.799 0 01-.03-.035c.116-.457.342-.738.517-1.1l.187-.162zm1.294-.772l.039-.003c-.124.428-.174 1.415-.391 1.807-.513-.243-.503-1.296.071-1.712l.28-.092zm-.478 3.17l.432.469c-.17.522-.491.915-.627 1.52l-.255-.02c-.218-.609.327-1.601.42-2.045l.4.046c.05.125.098.25.147.376l-.517-.347zM6.047 5.16c-.044.507.068.77.098 1.162-.254.13-.509.258-.763.387a5.262 5.262 0 01.373-1.527l.292-.022zm.296-.77l.057-.004-.086.247-.169.011.13-.153.068-.101zM6.4 6.755l-.764.47c.016-.284.378-.667.681-.773l.07.038.013.265zm.51-1.778c-.047.262-.093.523-.138.785l-.143.09-.076.083c-.138-.194-.173-.67-.143-1.032l.5.074zm.508-.59c0 .01-.002.018-.003.026L7.22 4.6c-.13.05-.146.048-.31.042.021-.085.045-.17.068-.255h.44zm.51-1.032L7.7 3.87l-.79-.057.003-.042c.325-.15.61-.328 1.014-.417zm-.412 1.34l.084-.05.073.258-.255-.05.098-.159zm.666.763c-.303.118-.722.085-.965.22a77.912 77.912 0 00-.053-.31l.158-.207c.257.1.514.202.77.303l.09-.006zm-.651.464l-.346.013c-.008-.036-.014-.072-.021-.109.243-.099.651-.108 1.018-.149l-.387.213-.264.032zm.905 0c-.291.073-.57.33-.761.53-.037-.234.412-.646.627-.775.095.085.105.076.134.245zm.51-3.083l-.004.04-.306.185-.454.033.004-.04.76-.218zm-.412.774l-.098-.145c.23-.193.737-.087 1.019-.058l-.921.203zm2.278-.76c.425.035.814.135 1.11.32L12 3.168l-.047.066-.407.12c-.245-.034-.49-.07-.734-.105L9.2 3.02l.004-.033a5.375 5.375 0 011.608-.133zm1.693-.136l-.09.122a1.23 1.23 0 01-.67-.258l.764.097-.004.039zm1.356.954l.211-.08.219.188c-.03.215-.237.391-.396.6l-.122.008c-.332-.55-.751-1.151-1.486-1.363l-.032-.065.297-.12c.499.174.915.438 1.378.59.06.145.041.096-.07.242zm.614 1.223l-.058-.057-.126.009.21-.2-.026.248zm.225 2.848c.344.298.432.73.289 1.29-.148-.332-.295-.665-.444-.997.05-.074.097-.148.146-.222.003-.024.005-.048.009-.071zm.1-2.32l-.004.048-.181.207-.07-.137c.109-.195.03-.09.173-.11l.082-.008zm.212-.003l.806.299c-.001.027-.004.054-.007.08-.068.047-.136.092-.204.137l-.807-.298.007-.081.205-.137zm1.57 1.033l-.447-.297-.062-.12c.194-.12.166-.114.371-.074.045.164.092.327.138.49zm.254-.098l-.09.098c-.108-.056-.127-.127-.164-.259l.233.102.021.059zm-.19-.739l-.064.005c.07-.067.14-.134.212-.2-.05.065-.1.13-.148.195zm1.209 1.298l-.125.055a230.14 230.14 0 01-.681-.383 98.74 98.74 0 01-.213-.29c.353-.26.366.042.699.207l.32.411zm.254.228l-.254-.093.153-.08.101.173zm-.31.416c.092.185.092.133.31.105L17.718 8l-.373-.712.005-.044c.275-.059.363.04.632.08l.103.166-.285.067zm.056.463l.509-.278c-.102.23-.235.348-.392.516l-.117-.238zm1.018.985c-.138.119-.228.157-.489.179l.21.023-.004.037-.717.304-.018-.92.494-.585.09-.043.434 1.005zm-.255-1.412c1.406-.392 1.134.354.507.923-.17-.307-.339-.615-.507-.923zm1.273.149c-.518 2.434-.618 2.567-2.45 3.613-.03-.049-.063-.097-.096-.145l.065-.272c1.195-.34 1.874-.966 1.803-2.383l.599-.77.079-.043zm.062 0c-.02-.084-.04-.168-.062-.252l.19-.006-.128.258zm-3.117 2.367l.018-.269.016-.23.176-.059c.009 0 .017-.002.025-.003.05.305 0 .53-.1.775-.086-.055-.103-.078-.135-.214zm-1.018 2.258l.004-.045.334-.799.07-.168.588.04c.009.044.015.087.018.128.026.304-.079.547-.187.864l-.827-.02zm.255 1.036l.007-.4.01-.1.43.032.062-.005c-.099.163-.197.326-.294.49l-.215-.017zm-.252-1.67l.026-.013.203-.105.023-.002-.03.107-.119.409-.106-.364.003-.032zm-.397 1.285l-.115-.115c.112.078.039.002.115.115zm-.624-.307c.143-.09.298-.062.51-.06l-.063.207c-.175.07-.2.044-.397.023l-.05-.17zm.312.966l.197.466c-.152.103-.305.205-.457.309-.136-.187.012-.71.26-.775zm-.503-1.62l-.064.005.084-.191-.02.187zm.733.072l-.033-.021.112-.236.037-.001.106.248-.222.01zm1.763-3.355l-.014-.087c.067-.082.11-.133.225-.17l.03.152c-.05.033-.1.065-.149.099l-.092.006zm-.014.63c-.046.061-.128.095-.186.144l-.069-1.29.255 1.146zm-.467 1.73c.168-.094.192-.007.212.22h-.509l.009-.08.288-.14zm-.25-.713l.115-.098.093.166-.043.092-.212-.025.047-.135zm-.047.684l-.265.25-.173-.029-.07.007c.04-.079.082-.158.123-.236l.385.008zm-.96-.147c-.106-.074-.03-.064-.05-.12l.05.12zm.802-1.152l-.86-.446c.04-.59.112-1.268.054-1.876.663.24 1.258 1.319.806 2.322zm-.605 0c.211.112.2.214.493.304.051.191-.027.267-.149.47l-.312-.012c-.064-.34.006-.535-.032-.762zm.058 1.669c-.107-.074-.03-.064-.05-.12l.05.12zm1.723-2.484l.003-.048.23-.169c.04.264.025.704-.035 1.032-.136-.106-.161-.554-.198-.815zm0 .815c.052-.086.104-.172.154-.258l-.09.254-.064.004zm1.485-.771l.043-.003c.012.989-.598 1.169-1.4 1.54l-.128.009.5-1.036.985-.51zM17.32 7.103c.008.026.017.051.024.077l-.063.046-.191-.258.23.135zm-.23.43l.007-.045a3.35 3.35 0 01.056-.004l.192.258c-.148-.07-.172-.088-.255-.21zm.254.66l-.343.323-.737-1.07-.956-.83.21-.164c.463.2 1.273.581 1.436 1.057.053.155-.13.283-.006.412.148.154.296.044.397.271zm-2.148 1.613l.078.031.034.744-.119-.028c-.112-.083-.19-.467-.088-.634l.095-.113zm-.564 1.294l.082-.003.085.202-.13.05-.125.006c.03-.085.06-.17.088-.255zm-.232 4.126l-.11-.377c.157-.045.313-.09.47-.137l.04-.002a.527.527 0 00-.005.035l-.395.48zm-.365-1.032c.047-.152.08-.175.165-.259l.07.028.02.066-.157.154-.098.01zm.12.258l-.12-.132.255-.126-.066.253-.069.005zm-.268 1.17c-.036-.028-.07-.057-.106-.087l.078-.005.393-.304.038.31-.301.206-.102-.12zm.02 2.956c-.613.026-.98-.13-1.48-.174l-.573-1.133-.11-.114c.962-.114 1.567-.578 2.28-.899.252.24.823 1.462.32 2.003-.12.185-.255.204-.438.317zm-2.632-1.273l.23-.015c.347.233.583.65.749 1.033l-1.019-.295c.076-.258.108-.52.04-.723zm-.732-.974L11.691 16l1.804.176.032.091c-.537.242-1.148.446-1.764.758-.667.053-.828-.196-1.29-.36l.071-.334zm-.071 1.216l.023-.224.439-.033c.036.195.074.304.02.516l-.482-.26zm-.51.404l.171-.094c.21-.139.367.046.593.119l-.09.088-.673-.113zm.495-.403a15.96 15.96 0 01-.166-.075l-.074-.183.255.016-.015.242zm-.749 0l.255.219c0 .135-.012.12-.043.297l-.212-.516zm-.66-.967c.239-.073.557-.057.915-.065l-.333.258-.685-.067.103-.126zM8.436 3.648c.473-.452 1.659-.317 1.956-.03l.08-.007c-.395.369-1.007.411-1.383.776-.295-.196-.539-.322-.653-.739zm2.6.739l.2.227c-.178.01-.365.021-.552.037-.421.036-.837.099-1.128.25l-.038.002a51.163 51.163 0 01-.063-.099 3.644 3.644 0 011.544-.414l.037-.003zm.992-1.29c.329.33.82.526.99 1.032-.69-.321-1.752-.316-2.29-.827.474.101.878.063 1.3-.205zm.227 1.806l.944.13.074-.006-.757.65c-.12-.239-.148-.563-.261-.774zm1.213 1.104l-.195-.03.254-.042-.06.072zm-.195-.617l.233-.229.021.258-.169-.037-.085.008zm.462 8.54l-.112.005-.096-.09.074-.097.18-.07-.046.253zm-.203.472c.03-.036.062-.072.094-.108l.008-.1.148.235-.255.023.005-.05zm-.101.824l-.158-.19.509-.068-.243.25-.108.008zm.096.774l-.509-.061.36-.197.15.258zm-.357-.728l.103.098-.369.094-.395.02.55-.258.111.046zM11.746 4.129c.297.008.611.083.763.258-.205-.02-.574.013-.667-.145l-.096-.113zm.258 1.032c.145.127.196.277.17.516-.224-.077-.166-.322-.17-.516zm.25 1.627l.009-.044c.507-.11.616.066.385.224-.2-.028-.29-.103-.393-.18zm.653 6.631l.111.028a1.49 1.49 0 00-.004.036l-.25.194.104-.255.039-.003zm-.14-6.294l.19-.157.061.258-.254-.056.002-.045zm.76 6.9l-.615.161-.148.007c0-.008.002-.017.004-.025.23-.046.378-.122.514-.233l.216.04.03.05zm-.439-.606l-.07-.143.175-.115.08.043-.1.208-.085.007zm-1.597 1.785l.303-.236.938.08.032.07-.634.366c-.235-.039-.438-.143-.56-.286l-.08.006zm-.471.022l.47.258-.763-.135c.098-.04.195-.082.293-.123zm-.038.527a7.12 7.12 0 00-.003.062l-.145.08-.107.014.004-.062c.111-.147.092-.098.25-.094zM9.782 5.25a6.022 6.022 0 00-.073-.077c.253-.138.652-.204 1.044-.235.323-.027.641-.03.869-.035l.124.774c-.333-.036-.65-.08-.993-.095a5.2 5.2 0 00-.888.032 41.055 41.055 0 00-.083-.364zm.374 10.355l.062.11-.06.231-.703.054c.075-.23.187-.341.308-.516l.393.121zm-.868-.895c-.32-.018-.758-.252-.852-.516l1.019.259-.167.257zm.358-.014l-.191.014.006-.062.212-.196c-.01.081-.018.162-.027.244zm-.7-9.437l.31-.098.199.25-.21.008-.3-.16zm-.004 11.08c-.017.056-.032.113-.048.17-.025.001-.05.004-.074.007a92.65 92.65 0 00-.129-.258l.255.026-.004.055zm.141-1.113l.594.12.032.08-.461.574-.557-.082.392-.692zm4.444-8.088l.115-.169.042-.001.32.08.032.046-.357.132a41.52 41.52 0 00-.152-.088zm.689-.834l-.18-.11c.183.067.078-.009.18.11zm-.058 1.18l-.122-.104.255-.154-.133.258zm-.122 1.806l.396.098c.107.042.104.053.113.16-.17-.065-.454-.11-.509-.258zm.04-.703l.054-.07.161.257-.255-.05.04-.137zm-5.157 8.491l.027.068-.343.131-.167.013.004-.035.117-.183c.162-.075.166-.026.362.006zm-.737-12.95c.222.166.28.37.245 1.033-.146-.187-.235-.584-.245-1.032zm.146-.515L8.31 3.8l-.127.009.146-.196zm-.146.258c-.007.062-.012.124-.02.186l-.235-.043.194-.139.06-.004zm0 14.968l.126-1.314.892-.235-.938 1.501-.08.048zm.063-3.532l.137-.081c.125.148.013.361-.105.516-.098-.092-.109-.15-.083-.359l.05-.076zm-.827-.126l.293-.471.47.276c-.16.252-.323.504-.485.756-.146-.13-.236-.321-.278-.56zm0 2.021l.47-.428.221.02.073.12c-.02.126-.038.251-.056.376l-.708-.088zm-.763-.35l.56-.336.426.067.032.059-.449.39c-.224-.023-.373-.083-.49-.185l-.08.005zm-.075-.499l.205-.095.088.019.036.042-.593.197-.17-.06.434-.103zm-.689-.242l.15-.363c.278-.036.344.101.553.188l.06.092-.311.213-.253.017-.199-.147zm-.51 1.059l.371-.654c.246 0 .276.02.377.15.045.076.006.035-.092.052l-.023.225.386.06c-.076.189-.088.164-.202.284-.38.02-.551-.052-.816-.117zm-.428-.912l.647.195.036.077-.415.502-.603-.198.335-.576zM2.46 15.56l.008-.077.361.278.031.074c-.751.58.398 2.47 1.705 1.245l.562.226c-.216.385-.587.537-.978.755-.935.078-2.244-1.449-1.69-2.501zm.872.264l.014.175c-.07-.053-.14-.104-.208-.157l-.047-.101.24.083zm1.286 1.096l-.465.36c-.916.096-1.287-.538-1.317-1.317l.179-.216.078-.006c.461.363.869.917 1.495 1.1l.03.079zm-.887-3.76c-.083-.06-.088-.09-.13-.192l.174-.662.203-.178.131.192-.378.84zm-.13.223l.401-.949.082-.048c.185.326.453.474.534.917l-.604.631a1.223 1.223 0 01-.414-.55zm.763.79l.51-.497.253.517c-.254-.008-.508-.014-.763-.02zm1.272-5.215c-.241.515-.562.865-.754 1.364-.084-.453.422-1.104.585-1.504l.078-.045.091.185zm0-1.42c.379-.117.633-.331.904-.571l.115.344-.322.43-.697-.202zm1.273.027l-.138.176-.116-.02.002-.028.232-.21.02.082zm-.2-1.112l.04-.002.16.337-.06.179c-.233-.122-.224-.267-.14-.514zm-.048 7.481l.235.169-.241-.106a1.03 1.03 0 01.006-.063zm-.004.259l.252.109a.9.9 0 00-.004.03l-.54.377c-.155-.07-.174-.209-.22-.36l.005-.032.507-.124zm-.753-.517l.242.098-.13.075-.125.014.013-.187zm-.013-5.16c.306.086.209.028.222.257-.14-.082-.15-.121-.222-.258zm0 4.609l.021-.223c.119.083.16.132.234.258a61.01 61.01 0 00-.255-.035zm.51-3.223c-.096.123-.092.09-.255.161l.111-.258.143.097zm0-1.038l-.16.167c-.16-.09-.085-.054-.013-.221l.095-.037.077.091zm-.021-.439l-.234-.168c.18.069.138.027.234.168zm-.489 4.735l.255.203c-.13-.003-.2-.031-.255-.203zm.764-.01l-.104.01-.089-.164-.062-.08.138-.014c.039.083.077.166.117.248zm-.14-4.778L6.4 8.258c.112.078.038.002.114.115zm.015 4.25l-.13-.27.055-.222.032-.002.168.516a37.21 37.21 0 00-.125-.022zm-.667 3.003l.028.034L5.8 16a.697.697 0 01-.418-.516l.481.142zM5.127 16l.255.226c-.163-.072-.173-.069-.255-.226zm.44-2.288l.03.223-.215-.258.185.035zm-.252 1.207l-.188-.467c.223.085.397.34.51.516l-.322-.049zm.2-4.594l.063-.002-.186.258c-.03-.064.007-.125.11-.2l.013-.057zm-.133 2.218l-.051.102-.146-.113a116.8 116.8 0 01-.058-.123l.2-.022.055.156zM3.6 14.71c.51.332 1.377.64 1.527 1.29A4.234 4.234 0 013.6 14.71zm1.323-.25l.204.25-.509-.258.305.008zm1.864.766l-.387-.39.677-.642.087.707-.377.325zm.377.431l.067-.168.09-.005.097.258-.254-.085zm.343-.947l-.089-.258.185.034-.096.224zm-.343-8.69l.002-.023c.084-.02.168-.04.252-.062l-.176.258-.078-.173zm-2.567 5.335l-.233-.516c.299.065.25.278.233.516zm-.623.258c-.218-.151-.357-.452-.374-.774.447.105.422.281.51.689l-.136.085zm-.263-1.347c-.325-.307.148-1.535.356-1.818.11-.139.248-.136.43-.19l.121.031c-.306.542-.512 1.28-.585 2.034l-.322-.057zm-.475 4.186l.155.261-.139.325-.08.085c.114.016.14-.082.31-.221.33.535.834 1.047 1.39 1.338l-.303.534-.92-.592c-.105-.195.04-.419-.129-.538-.153-.108-.35.048-.506.001l-.432-.396c.127-.284.249-.562.5-.707l.154-.09zm-.88-2.846a6.65 6.65 0 01.149-.764l.034-.003.133.767.07.4c.2.558.402 1.115.604 1.671-.484-.264-.783-.875-.74-1.697-.116.265-.02.682.018.916-.297-.252-.335-.753-.269-1.29zm-.442.265a.941.941 0 01-.086-.31 2.031 2.031 0 01.004-.435l.044-.092.197-.195-.111.721-.048.31zm17.722 2.58l-.509-.196.494-.061.015.258zm-13.47 4.2l.133-.07-.154.257.02-.186zM2.327 9.807l-.217-.02c-.27-.089-.523-.404-.546-.754.413.037.553.233.757.472.002.1.005.201.006.302zm-.03-.021c.03-.557-.395-.905-.947-.89.094-.782.774-1.182 1.38-1.445l.117-.009c-.101.982-.024 1.828-.391 2.678-.271.626-1.232.614-1.18 1.58l.007.08c.137 1.284 1.533 1.545 1.726 2.674-2.07 1.053.453 5.478 2.09 2.879.294.042.555.175.92.047.17-.094.203-.17.269-.366l.585.303.03.074c-.536.416-.914.987-1.49 1.377l.055-.158-.15-.027-.083.045-.075.35c.329.336 1.326-.879 1.618-1.117-.165.577-.573.874-.8 1.402l.07.072c.43-.308.957-1.18 1.037-1.843l.644.107c-.807 1.091-2.88 3.491-3.97 4.132.166-.521.43-.919.564-1.347l-.078.006a14.401 14.401 0 00-.07-.072c-.265.522-.702.889-.78 1.593a.688.688 0 00.174.179c1.296-.216 3.46-3.473 4.494-4.363-.28 2.81-1.786 3.248-3.092 4.95 1.187-.592 1.907-2.102 2.922-2.94C7.781 20.91 7.502 23.533 6.8 24l.116-.009c.788-.49.834-2.505 1.097-3.535l.112-1.083 1.125-1.58.082-.045c.126.395.696.824 1.313.709l.443-.186 1.112.416c.146 1.6.09 2.497-.923 3.715 1.035-.529 1.415-2.567 1.07-3.649 2.407.279 2.31-.533 1.854-2.286l.423.007c-.078-.117-.289-.03-.45-.12-.073-.047-.059-.038-.104-.108.572-.645 1.95-.004 1.66 1.067.396-.888-.479-1.678-1.322-1.36.36-.427.796-.778 1.024-1.343l.082-.044 1.98 2.08.117-.009.09-.122c-.63-.746-1.259-1.493-1.887-2.24l.202-.092a.41.41 0 01.349-.121 22.552 22.552 0 01-.1-.05c1.011.101 2.303.944 3.358.672.097-.169.102-.26.043-.425 1.124.028 3.146-.348 3.79-.894-1.73.363-3.678.486-5.266.274l-1.407-.165-.079.006.379-.68c1.16-.022 4.202-.051 4.817-.779l-.136-.182-.53-.076c-.046.068-.053.132-.06.197l.42.045c-.912.23-3.452.715-4.281.432-.087-.106-.023-.474-.019-.739a.968.968 0 00-.006-.142c1.192-.356 2.077-1.158 2.44-2.368.207-.693.07-1.603.518-2.035.286.025.344.146.554.228-.111-.154-.27-.24-.469-.31l-.373.257c-.341.132-.698-.213-1.277.056-.47-.402-.735-1.037-1.37-1.28l-.065-.11.77-.749c-.252.211-.509.46-.766.71l-.516-.231-.03-.075c.588-.416 1.11-.57 1.779-.438.031.062.064.123.096.185-.031.053-.059.068-.086.083l-.225-.06c.097.057.198.075.299.093l.085-.083.013-.116c-.146-.13-.191-.224-.478-.234l.137-.202c-.328.226-.994.286-1.32.482l.754-.594.09-.121-1.395.832c-.298-.02-.615-.16-.776-.327a39.46 39.46 0 00-.077.006l1.656-1.12-.027-.113c-.628.366-1.257.732-1.884 1.099l-.602-.148.056-.541 4.317-3.39.077-.006-.061-.149c-.16-.076-.817.457-1.065.616-.956.613-1.801 1.376-2.741 1.93.388-.493 1.098-.984 1.216-1.702l-.19-.024-.296.252.322-.14c-.208.633-1.15 1.763-1.682 2.121l-.062-.149c.346-.582.687-1.365.527-2.112l-.29-.17-.311.023c.199.079.334.098.48.195.093.724-.263 1.214-.455 1.8l-.082.044c-.128-.237-.12-.351-.383-.394l-.023-.152.18-.244.124-.086c.042.08.044.051.057.188a.388.388 0 00.059-.196l-.147-.066-.389.412c-.325-.217-.683-.445-1.14-.53.259-.537 1.046-1.4.64-2.081-.496-.828-2.189.126-2.809.783a1.231 1.231 0 00-.186.244c.04-.032.104-.082.186-.144.612-.456 2.241-1.548 2.594-.675.37.487-.339 1.424-.532 1.805-.66-.067-1.35-.13-2.06-.116a7.422 7.422 0 00-2.201.354c-.36.119-1.896 1.039-1.955 1.027l-.7-.678-1.464-.735-.008.077-.086.083 1.876 1.588-.286.175c-.772-.585-1.304-.94-2.453-1.239l-.194.015c.671.462 1.347.885 2.022 1.309l.135.182c-.482.203-.686.625-1.093.887-.636-.304-1.225-.58-1.996-.813l-.054.158 1.444.93.078-.006-.249.172c-.115.387-.34.836-.528 1.382-.72.586-1.653.551-1.798 1.745-.23.063-.392.083-.602.237l-.016.155c.132.184 1.301.679 1.58.727l.172-.166zm8.54-8.256l.107.02-.143-.018c-.025 0-.05.002-.074.003.113-.21.445-.262.764-.239l-.022.152-.624.031-.008.05zm.446.277l.3-.098c.13-.216.204-.445.138-.654-.309-.061-.487.014-.776.136a49.67 49.67 0 00-.157.257l-.06.1a.57.57 0 00.06.06c.098.08.216.108.433.09.06.102-.01.057-.117.085l.18.024zm7.403 2.323l-.322.06.198-.014.227.098-.344.63c.177-.209.353-.357.428-.674l-.187-.1zm-1.85 10.065c-.08-.143-.167-.237-.254-.259.077.073.166.159.254.259zm-1.018 3.096l-.254.148.195-.018.06-.13zm1.018-3.096c.259.292.453.852.397 1.29.294-.635-.041-1.031-.397-1.29Z\"},\"child\":[]}]})(props);\n};\nexport function SiHackaday (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 4.124c0-.204.021-.401.06-.595l1.956 1.734 2.144-2.38L2.246 1.18c.259-.072.53-.114.812-.114a3.062 3.062 0 0 1 3.058 3.037v.021c0 .152-.012.304-.033.45l2.385 2.112a6.716 6.716 0 0 0-2.013 2.54L3.982 7.037a3.038 3.038 0 0 1-.924.145A3.06 3.06 0 0 1 0 4.124zm20.942 12.694c-.306 0-.601.045-.88.129l-2.308-2.044a6.862 6.862 0 0 1-1.819 2.706l1.993 1.765a3.05 3.05 0 0 0-.044.502 3.06 3.06 0 0 0 3.935 2.929l-1.992-1.77 2.14-2.365 1.981 1.76c.034-.181.052-.364.052-.554v-.026a3.057 3.057 0 0 0-3.058-3.032zm-3.397-7.592l2.473-2.189c.292.093.601.145.924.145A3.06 3.06 0 0 0 23.94 3.53l-1.956 1.734-2.144-2.38 1.914-1.703a3.049 3.049 0 0 0-.812-.114 3.062 3.062 0 0 0-3.058 3.037v.021c0 .152.012.304.033.45l-2.385 2.112a6.716 6.716 0 0 1 2.013 2.54zm-11.3 5.677l-2.307 2.044A3.057 3.057 0 0 0 0 19.85v.026c0 .19.018.373.052.554l1.982-1.76 2.14 2.365-1.993 1.77a3.06 3.06 0 0 0 3.935-2.929 3.05 3.05 0 0 0-.044-.502l1.993-1.765a6.862 6.862 0 0 1-1.82-2.706zm8.971 2.657a1.076 1.076 0 1 1-1.961.424h-.192a1.076 1.076 0 1 1-2.127 0h-.15A1.105 1.105 0 0 1 9.7 19.23c-.604 0-1.094-.5-1.094-1.115 0-.21.057-.405.156-.572-1.493-1.142-2.474-3.051-2.474-5.213 0-3.497 2.559-6.332 5.713-6.332s5.713 2.835 5.713 6.332c0 2.173-.991 4.091-2.497 5.231zm-4.194-5.914a1.995 1.995 0 0 0-.559-.66 1.804 1.804 0 0 0-.918-.264 1.45 1.45 0 0 0-.319.036c-.405.05-.747.327-.983.647-.207.257-.368.569-.372.905-.032.278.024.556.075.828.066.322.293.584.55.774.119.095.29.226.44.116.1-.134.016-.33.107-.478a.5.5 0 0 1 .258-.326c.263-.132.527-.262.808-.355.228-.067.416-.219.61-.349.255-.197.424-.558.303-.874zm.996 2.325c-.279-.007-.63 1.237-.574 1.78.175.72.237-.505.574-.506.323.014.275 1.255.53.504.078-.5-.224-1.77-.53-1.778zm4.036-.833c.051-.272.107-.55.075-.828-.004-.336-.165-.648-.372-.905-.236-.32-.578-.596-.983-.647a1.45 1.45 0 0 0-.319-.036c-.32-.001-.644.1-.918.264-.235.171-.42.406-.559.66-.121.316.048.677.303.874.194.13.382.282.61.35.28.092.545.222.808.354a.5.5 0 0 1 .258.326c.091.147.007.344.106.478.151.11.322-.021.44-.116.258-.19.485-.452.551-.774z\"},\"child\":[]}]})(props);\n};\nexport function SiHackclub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C2.4 0 0 2.4 0 12s2.4 12 12 12 12-2.4 12-12S21.6 0 12 0zm4.5 19.5094h-3.3094V13.003c0-.975-.1875-1.6218-.8343-1.6218-.7125 0-1.575 1.003-1.575 2.625v5.503H7.5V4.9689l3.2906-.5625v5.428c.7125-.6468 1.7063-.928 2.7188-.928 2.1562 0 2.9906 1.4156 2.9906 3.628z\"},\"child\":[]}]})(props);\n};\nexport function SiHackerearth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.447 20.936H5.553V19.66h12.894zM20.973 0H9.511v6.51h.104c.986-1.276 2.206-1.4 3.538-1.306 1.967.117 3.89 1.346 4.017 5.169v7.322c0 .089-.05.177-.138.177h-2.29c-.09 0-.253-.082-.253-.177V10.6c0-1.783-.58-3.115-2.341-3.115-1.282 0-2.637.892-2.637 2.77v7.417c0 .089-.008.072-.102.072h-2.29c-.09 0-.29.022-.29-.072V0H3.178c-.843 0-1.581.673-1.581 1.515v20.996c0 .843.738 1.489 1.58 1.489h17.797c.843 0 1.431-.646 1.431-1.489V1.515c0-.842-.588-1.515-1.43-1.515\"},\"child\":[]}]})(props);\n};\nexport function SiHackernoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.701 0v6.223H8.85V4.654h1.576v7.842H12V4.654h1.574v1.569h3.15V0zm11.024 6.223v3.136h1.574V6.223zm1.574 3.136v4.705h1.576v-1.568h1.574v-1.568h-1.574V9.359zm0 4.705h-1.574v3.137h1.574zm-1.574 3.137h-3.15v1.569H8.85V17.2H5.7V24h11.024zm-11.024 0v-3.137H4.125v3.137zm-1.576-3.137V9.36H2.551v4.705zm0-4.705h1.576V6.223H4.125Z\"},\"child\":[]}]})(props);\n};\nexport function SiHackerone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.207 0c-.4836 0-.8774.1018-1.1823.3002-.3044.2003-.4592.4627-.4592.7798v21.809c0 .2766.1581.5277.4752.7609.315.2335.7031.3501 1.1664.3501.4427 0 .8306-.1166 1.1678-.3501.3352-.231.5058-.4843.5058-.761V1.0815c0-.319-.1623-.5769-.4893-.7813C8.0644.1018 7.6702 0 7.207 0zm9.5234 8.662c-.4836 0-.8717.0981-1.1683.3007l-4.439 2.7822c-.1988.1861-.2841.4687-.2473.855.0342.3826.2108.747.5238 1.0907.3145.346.6662.5626 1.0684.6547.3963.0899.6973.041.8962-.143l1.7551-1.0951v9.7817c0 .2767.1522.5278.4607.761.3007.2335.6873.3501 1.1504.3501.463 0 .863-.1166 1.1983-.3501.3371-.2332.5058-.4843.5058-.761V9.7381c0-.3193-.165-.577-.4898-.7754-.3252-.2026-.7288-.3007-1.2143-.3007z\"},\"child\":[]}]})(props);\n};\nexport function SiHackerrank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm9.95 8.002h1.805c.061 0 .111.05.111.111v7.767c0 .061-.05.111-.11.111H9.95c-.061 0-.111-.05-.111-.11v-2.87H7.894v2.87c0 .06-.05.11-.11.11H5.976a.11.11 0 01-.11-.11V8.112c0-.06.05-.11.11-.11h1.806c.061 0 .11.05.11.11v2.869H9.84v-2.87c0-.06.05-.11.11-.11zm2.999 0h5.778c.061 0 .111.05.111.11v7.767a.11.11 0 01-.11.112h-5.78a.11.11 0 01-.11-.11V8.111c0-.06.05-.11.11-.11z\"},\"child\":[]}]})(props);\n};\nexport function SiHackster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.091 13.294c-.057.05-.247.09-.396.132l-4.778 1.306c-.15.041-.273-.052-.273-.208V13.29a.282.282 0 00-.283-.283H8.117a.282.282 0 01-.282-.282V11.29a.283.283 0 00-.283-.283H5.035c-.1 0-.18-.08-.18-.178 0-.058.025-.098.055-.126.056-.052.246-.093.397-.134l4.758-1.3c.15-.042.272.051.272.208v1.247c0 .156.128.283.284.283h5.24c.156 0 .282.126.282.283v1.42c0 .157.127.284.282.284h2.542a.18.18 0 01.18.179.158.158 0 01-.056.12m-2.948 2.288a.39.39 0 01-.272.356l-1.954.534c-.15.042-.273-.052-.273-.208v-.728c0-.157.127-.284.283-.284h1.933c.157 0 .283.127.283.284zm-5.81 1.586a.39.39 0 01-.272.357l-1.953.535c-.15.04-.273-.053-.273-.209v-3.758c0-.157.127-.284.283-.284h1.933c.156 0 .283.127.283.284zM7.836 8.46c0-.156.122-.316.273-.357l1.952-.534c.152-.042.274.052.274.208v.729a.283.283 0 01-.283.283H8.118a.283.283 0 01-.283-.283zm5.809-1.587c0-.157.122-.316.273-.358l1.954-.533c.15-.042.272.052.272.208v3.759a.283.283 0 01-.283.283h-1.933a.283.283 0 01-.283-.283zM12 0C5.384 0 0 5.384 0 12c0 6.617 5.384 12 12 12 6.618 0 12-5.383 12-12 0-6.616-5.382-12-12-12Z\"},\"child\":[]}]})(props);\n};\nexport function SiHackthebox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22.5106 6.4566.0008-.0123a.888.888 0 0 0-.2717-.6384c-.0084-.0084-.018-.0155-.0267-.0235-.0186-.0166-.0371-.0333-.0572-.0484-.0193-.0147-.04-.0276-.0607-.0406-.0096-.006-.0182-.0131-.0281-.0188L12.4576.1266a.891.891 0 0 0-.9223.0043L1.933 5.6744c-.0107.0062-.0203.014-.0307.0205-.0073.0047-.015.008-.0223.0128-.007.0047-.013.0106-.02.0155a.8769.8769 0 0 0-.147.1333l-.0026.003a.8872.8872 0 0 0-.2218.5847l.0009.014c-.0002.0088-.0015.0176-.0015.0264v11.0708c0 .3277.1802.6288.469.7836l9.5986 5.5417c.0076.0044.0158.0075.0236.0117a.8754.8754 0 0 0 .166.0687c.0134.004.0266.0083.0401.0117a.8793.8793 0 0 0 .072.0142c.0117.0019.0232.0045.0349.006a.835.835 0 0 0 .2157 0c.0117-.0015.0232-.0041.0348-.006a.9.9 0 0 0 .072-.0142c.0135-.0034.0267-.0077.04-.0117a.895.895 0 0 0 .0646-.0217.9134.9134 0 0 0 .1015-.047c.0078-.0042.016-.0072.0236-.0117l9.5986-5.5417a.8888.8888 0 0 0 .469-.7836V6.4779c0-.0071-.0012-.0142-.0014-.0213zM5.2543 6.0822l6.5367-3.774a.4182.4182 0 0 1 .4182 0l6.5366 3.774a.4182.4182 0 0 1 0 .7243l-6.5367 3.774a.4182.4182 0 0 1-.4182 0l-6.5366-3.774a.4182.4182 0 0 1 0-.7243zm5.6134 14.3449a.4172.4172 0 0 1-.626.3613L3.718 17.0218a.4173.4173 0 0 1-.2086-.3613V9.1279a.4172.4172 0 0 1 .6258-.3613l6.524 3.7666a.4172.4172 0 0 1 .2086.3614v7.5325zm9.623-3.7666a.4173.4173 0 0 1-.2086.3613l-6.5239 3.7666a.4172.4172 0 0 1-.6259-.3613v-7.5325c0-.149.0796-.2868.2087-.3614l6.5239-3.7666a.4172.4172 0 0 1 .6258.3613v7.5326z\"},\"child\":[]}]})(props);\n};\nexport function SiHal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.794 5.327c.48.485 1.118.75 1.797.755h.009a2.5 2.5 0 0 0 1.58-.553 12.106 12.106 0 0 0-3.548-3.615 2.555 2.555 0 0 0 .162 3.413zm-.647.71A7.056 7.056 0 0 1 16.058.624a11.977 11.977 0 0 0-2.64-.62 9.685 9.685 0 0 0 2.834 7.933 9.918 9.918 0 0 0 7.002 2.893h.036c.238 0 .476-.01.71-.027-.09-.92-.283-1.81-.566-2.66a7.269 7.269 0 0 1-5.287-2.106zm4.6 7.322a21.564 21.564 0 0 1-7.142-4.717 21.175 21.175 0 0 1-5.283-8.61 12.31 12.31 0 0 0-2.605.66 23.879 23.879 0 0 0 5.992 9.85 24.16 24.16 0 0 0 8.027 5.3c.49.198.988.383 1.487.549.323-.827.557-1.694.696-2.597-.39-.13-.786-.278-1.172-.435zm-1.316 6.145L4.54 2.493a12.037 12.037 0 0 0-1.913 1.882l16.907 17.029c.7-.562 1.334-1.2 1.896-1.9zm-10.974-5.885a24.16 24.16 0 0 0-8.027-5.3c-.57-.23-1.145-.436-1.725-.624a11.954 11.954 0 0 0-.67 2.6 21.564 21.564 0 0 1 8.53 5.224 21.239 21.239 0 0 1 5.216 8.405c.903-.135 1.77-.369 2.596-.692-.18-.553-.377-1.1-.602-1.644a23.767 23.767 0 0 0-5.318-7.969zm-2.542 2.606A9.91 9.91 0 0 0 0 13.372c.103.921.314 1.806.61 2.65.09-.004.18-.004.27-.004 1.865 0 3.729.705 5.144 2.111a7.056 7.056 0 0 1 2.097 5.044c0 .081-.004.167-.004.248.844.287 1.734.48 2.65.575.022-.27.036-.54.036-.814a9.688 9.688 0 0 0-2.888-6.957zm-2.538 2.61a2.55 2.55 0 0 0-3.437-.162 12.106 12.106 0 0 0 3.63 3.535c.35-.445.543-.993.548-1.568a2.523 2.523 0 0 0-.741-1.806z\"},\"child\":[]}]})(props);\n};\nexport function SiHandlebarsdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.1 4.948a3.45 3.45 0 0 0-.398.014C6.32 5.15 5.373 6.375 4.802 6.9c-.572.525-1.656 1.763-2.376 1.545-.721-.217-.924-1.107-.67-1.381s.454-.225.613 0c.097.18.145.383.14.587a1.36 1.36 0 0 0 .438-.665.792.792 0 0 0-.443-1.017c-1.3-.659-2.139.514-2.26.787-.122.273-.336.707-.2 1.695.135.989.612 1.902 2.104 2.261a6.31 6.31 0 0 0 4.238-.495l4.41-1.84a5.408 5.408 0 0 1 .556-.101v9.864c0 .506.316.913.708.913.391 0 .707-.407.707-.913V8.29a5.408 5.408 0 0 1 .437.088l4.41 1.84a6.31 6.31 0 0 0 4.238.494c1.492-.36 1.969-1.272 2.105-2.26.135-.989-.08-1.423-.2-1.696-.122-.273-.962-1.446-2.261-.787a.792.792 0 0 0-.443 1.017c.076.26.229.492.437.665a1.19 1.19 0 0 1 .141-.587c.159-.225.359-.274.613 0s.051 1.164-.67 1.382c-.72.217-1.804-1.02-2.376-1.546-.571-.525-1.518-1.75-3.9-1.938A3.45 3.45 0 0 0 12 6.653a3.45 3.45 0 0 0-2.9-1.705zm12.39 2.703v.004l.006.002c-.002-.002-.004-.004-.006-.004zm-18.98 0c-.002.002-.004.004-.006.004l.006-.001V7.65z\"},\"child\":[]}]})(props);\n};\nexport function SiHandm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.866 4.565c.871-.429 1.303-.372 1.313.061.012.565-.071 1.313-.131 1.857-.323 2.947-.864 5.356-.906 8.383 1.424-3.686 2.619-6.248 4.156-9.403.488-1.004.799-.818 1.2-.996 1.563-.695 1.622-.268 1.417.581-.758 3.15-2.695 13.068-2.992 14.595-.086.442-.566.255-.691.082-.556-.769-1.183-.781-1.112-1.293.348-2.546 1.603-8.934 1.93-10.439-1.669 3.42-3.398 7.694-4.286 10.118-.189.515-.531.477-.745.1-.3-.529-.883-.799-.979-1.424-.306-1.987.348-5.776.439-8.172-.908 2.618-2.433 7.701-3.101 9.997-.276.95-1.193.795-.949-.131 1.015-3.854 3.201-10.67 4.148-13.121.222-.576.805-.556 1.289-.795Zm-5.535-.474c.276.067.254.393.085.838-.499 1.314-1.19 3.04-1.981 5.076.497-.057.767-.076.767-.076.713-.088.846.269.645.648-.16.303-.353.101-1.02 1.096-.376.561-.99.709-1.332.784-.821 2.175-1.702 4.602-2.557 7.188-.125.377-.489.295-.598.142-.402-.562-.698-.58-1.01-1.034-.037-.074-.11-.173-.066-.354.229-.936.837-2.859 1.762-5.392-1.165.253-2.426.524-2.947.645-.624 1.651-1.234 3.308-1.811 4.944-.358 1.015-1.29.819-.963-.141.521-1.528 1.096-3.115 1.673-4.654-.646-.069-.864-.525-1.225-.906-.139-.147-.443-.126-.592-.332-.267-.371-.241-.536.377-.714.806-.233 1.617-.449 2.432-.649 1.044-2.694 1.987-5.006 2.49-6.239.388-.951 1.387-.862 1.008.075-.772 1.906-1.563 3.885-2.344 5.893.963-.217 1.931-.409 2.904-.576.713-1.831 1.462-3.648 2.247-5.449.055-.126.215-.304.381-.332.525-.09 1.379-.552 1.675-.481ZM9.543 16.426c.082-.05.163-.111.244-.178-.062-.183-.123-.366-.183-.55-.061.078-.12.157-.179.237-.349.479-.142.65.118.491Zm.465-2.275c.433-.489-.423-.693-.226.054.011.042.025.092.04.146.063-.065.125-.132.186-.2Zm.45 1.473c.429-.372.838-.003.414.624a6.955 6.955 0 0 1-.307.424c.045.128.091.255.14.381.219.562-.357.703-.542.237a7.29 7.29 0 0 1-.05-.129c-.35.31-.754.505-1.186.37-.711-.221-.892-1.222-.228-1.993.266-.309.466-.524.634-.695-.041-.133-.081-.267-.118-.401-.087-.312-.164-.675.148-1.046.586-.695 1.945-.078 1.257.992-.165.258-.359.501-.561.748.07.221.14.441.212.661.061-.06.123-.117.187-.173Z\"},\"child\":[]}]})(props);\n};\nexport function SiHandshakeProtocol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.348 7.829l-1.491-2.65 2.889.001c.077 0 .167.051.21.12l1.533 2.529zm-5.344 16.046c-.07.125-.161.125-.19.125h-2.956l4.591-8.243a.442.442 0 0 0-.384-.657l-7.825.01-1.556-2.694h11.397c.248-.017.362-.158.393-.231l1.879-3.473h3.101zm-3.91-.314l-1.522-2.506c-.023-.037-.034-.128.014-.214l2.694-4.853 3.034-.004zM5.92 18.403l-1.508-2.68 1.52-2.848 1.524 2.64c-.474.891-1.213 2.283-1.536 2.888zm-3.668.417a.268.268 0 0 1-.207-.12L.51 16.17h3.141l1.491 2.65-2.891-.001zM8.996.126C9.066 0 9.156 0 9.186 0h2.968L7.551 8.243c-.11.167-.11.712.58.657l7.63-.01c.527.92 1.002 1.752 1.51 2.642H5.922a.465.465 0 0 0-.397.234l-1.879 3.522h-3.1L8.996.126zm3.917.323l1.515 2.496c.023.037.034.128-.015.214L11.72 8.012l-3.032.004zm5.166 5.145l1.509 2.68-1.538 2.844c-.517-.905-.997-1.745-1.529-2.673.328-.6 1.195-2.189 1.558-2.851Z\"},\"child\":[]}]})(props);\n};\nexport function SiHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.728 0 16.49 24h-4.583l1.87-10.532-4.743 3.893L7.856 24H3.272L7.51 0h4.582L9.806 13.012l4.729-3.862L16.145 0h4.583z\"},\"child\":[]}]})(props);\n};\nexport function SiHappycow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.6946 1.2292a.931.931 0 0 0-.029.0006 3.4494 3.4494 0 0 0-1.1187.2308c-.8395.3397-1.563 1.1383-1.9712 2.1918a5.638 5.638 0 0 0-.1226 3.6034c.1814-.2945.3958-.5765.6498-.8325.3935-.3964.8505-.7006 1.3677-.9165-.1726-.8106-.4935-3.0758 1.1872-3.648 0 0-1.3698.9094-.606 3.4504a5.1974 5.1974 0 0 1 .3929-.0911c-.3527-.9004-.4079-1.6602-.1586-2.264a2.4787 2.4787 0 0 1 .5042-.641c.2636-.2702.5118-.5262.4776-.7799a.331.331 0 0 0-.181-.2206.931.931 0 0 0-.3923-.0834zm9.7635 1.9014a.3464.3464 0 0 0-.255.1191c-.1389.1964-.0409.5329.0617.8881a2.5008 2.5008 0 0 1 .1457.815c-.0942.8995-.8157 1.6027-1.3324 2.0141.102.0844.2052.1766.3083.2777 2.0197-1.9376 1.1994-3.4313 1.1994-3.4313 1.3398 1.4344-.4167 3.5091-.7752 3.9042.5643.718.8876 1.5399 1.0493 2.383a5.6182 5.6182 0 0 0 1.6068-3.2458c.1368-1.1208-.1202-2.1622-.706-2.8582-.236-.2813-.8605-.8626-1.2863-.866a.3464.3464 0 0 0-.0163 0zm-8.1467 1.1462c.3144.1489.8394.4732.9783 1.0292l.0244.0982-.0993-.019c-1.081-.2051-1.6887.3068-1.9458.6124a2.0099 2.0099 0 0 1 .7776-.1467 2.857 2.857 0 0 1 1.112.2383l.1643.077-.1764.0443c-.427.1103-.705.3034-.8263.5858-.1423.331-.0408.7103.0453.932.2824-1.1682 1.8752-1.3743 1.8972-1.3765h.0156a2.7115 2.7115 0 0 1 2.1036 1.3711c.0287-.3552-.0242-1.0856-.8825-1.4l-.1467-.0594.1433-.0651c.6486-.2956 1.8478.4126 2.2747.6884-.4247-1.1208-2.0153-1.2434-2.0319-1.2445l-.1258-.0088.0806-.097c.2835-.343 1.0038-.2536 1.3888-.1753-.973-.7722-2.0506-.1644-2.0628-.1577l-.0971.0562v-.1103a1.0899 1.0899 0 0 0-.321-.7468.9718.9718 0 0 0-.353.6354l-.0067.151-.1047-.1103c-.695-.728-1.4485-.8119-1.8257-.802zm-.6225.9633c-1.463-.0086-2.6392.4217-3.4944 1.2836-1.4268 1.4398-1.6029 3.7256-1.6027 4.7753a2.828 2.828 0 0 1 .3386-.087c.6472-.1217 1.1947-.0872 1.6985.042.0232-.6248.2125-3.2638 1.7999-3.1928.058.0026.1177.009.1794.0192 2.519.4057 1.3093 4.2599 1.1622 4.7016.4608.209.965.389 1.5493.506.6285.125 1.2128.1391 1.7605.0955.0267-.5659.278-4.1197 2.4481-4.1024.157.0012.324.0215.5016.0633 1.6989.408.958 2.7914.7347 3.411.4124-.013.821.0335 1.2343.183.2592.0926.4983.232.7153.4085.2933-1.7684.2803-4.0385-1.1145-5.6869a4.493 4.493 0 0 0-2.0089-1.3834l-.0902-.0172c.2026.2001.3674.4519.4487.773l.042.1676-.1424-.0993c-.0143-.0099-1.3732-.9553-2.1366-.8273 1.0402.504.7667 1.668.7633 1.68l-.0463.2009-.0728-.1942a2.5581 2.5581 0 0 0-2.087-1.476 3.1637 3.1637 0 0 0-.867.2648c-.5781.278-.8958.685-.9455 1.2067l-.0187.2008-.1015-.1788c-.0154-.0276-.3762-.674-.1368-1.2333.1191-.2768.364-.481.729-.6067-.3474-.1191-1.1548-.3199-1.8332.0927l-.1987.1215.1104-.2064a1.8036 1.8036 0 0 1 .5162-.5593 2.0228 2.0228 0 0 1 .7237-.3213 7.941 7.941 0 0 0-.5585-.0248zm-7.4413.9891v.0011c-.5383 0-1.113.1236-1.5829.5516a2.096 2.096 0 0 0-.6619 1.434A1.4605 1.4605 0 0 0 .389 9.2992c.7215.759 2.2063.6266 3.1892.5395h.0506l.086-.0078c.3599-.0293.6392-.061.8687-.0935.112-.6948.3348-1.5469.7814-2.3303a5.7726 5.7726 0 0 1-.1148-.4066c-.2422-.106-.4808-.2062-.6384-.266a9.6523 9.6523 0 0 0-1.4539-.4082 4.9188 4.9188 0 0 0-.91-.0971zm.1463.6757c.1684-.002.3423.0235.5255.0558.2868.0474.8825.2106 1.1296.4974.2471.2869.9852 1.359-.7467 1.6271-.5648.0574-1.464.1623-1.8954-.2966-.3927-.4214-.2294-1.1672.1722-1.55.2689-.251.5343-.3304.8148-.3337zm6.127 1.8604c-.749.0232-1.3424.9045-1.3237 1.9856a2.722 2.722 0 0 0 .1157.7407c.4005.173.7882.3932 1.196.625.2097.1196.422.24.641.357.4504-.3247.7624-.9968.7489-1.7757C9.88 9.6169 9.27 8.7421 8.521 8.7653zm11.9064.7157a8.6915 8.6915 0 0 0-.434.0102h-.0516a30.9709 30.9709 0 0 0-.4109.0252 5.7517 5.7517 0 0 1-.6438.7368c.097.575.122 1.1572.1 1.7208.225.1047.5127.2286.9226.3863l.0872.0343c.8748.3409 2.3297.9078 3.2497.471a1.294 1.294 0 0 0 .6929-.8351 1.7462 1.7462 0 0 0-.2032-1.379c-.4986-.7721-1.4592-.9927-2.2413-1.103a8.6915 8.6915 0 0 0-1.0676-.0675zm-11.8376.232a.4115.4115 0 0 1 .0041 0 .4148.4148 0 0 1 .4115.4115.4115.4115 0 1 1-.4156-.4115zm6.8613.2204c-.6017.0266-1.2382.5722-1.5644 1.3914-.293.7359-.2376 1.4806.0808 1.9386.3548-.0642.6957-.1407 1.0212-.2146.3923-.089.7719-.1766 1.1452-.2331a2.7766 2.7766 0 0 0 .2602-.4981c.4016-1.0083.162-2.0386-.5362-2.3166a.9754.9754 0 0 0-.4068-.0676zm5.6444.1842c.167.0013.3206.0144.4281.0288.4975.0706.909.1634 1.1958.6223.278.4401.2207 1.1197-.2868 1.369-.546.2647-1.3691-.0761-1.8953-.2868-1.5786-.7082-.5624-1.4165-.238-1.5941.2026-.111.518-.1414.7962-.1392zm-5.7558.6431a.4093.4093 0 0 1 .4036.4018.4115.4115 0 1 1-.4215-.4016.4093.4093 0 0 1 .018-.0002zm-9.6234.5035c-.2406-.001-.4944.0215-.766.0726-1.6248.3089-2.7136 2.0551-2.6474 4.247a6.8095 6.8095 0 0 0 1.7848 4.3584c1.3083 1.4429 3.2333 2.365 5.5675 2.6673v.0011c8.1046 1.0414 9.789-3.2795 10.1134-4.633.5118-2.1335-.32-4.387-1.817-4.922-.9564-.3432-1.8753-.1302-2.9387.1169-1.0634.2471-2.2769.5284-3.723.2404-1.1804-.236-2.067-.7412-2.8492-1.1858-.89-.5073-1.682-.958-2.7244-.9629zm1.6614 2.0098c.3983-.01.88.3147 1.1589.7973.3066.5516.2206 1.11-.2008 1.2346-.4214.1246-1.0149-.2206-1.3238-.7722-.3088-.5516-.2206-1.1099.2008-1.2345a.6354.6354 0 0 1 .1649-.0252zm-2.563.9443c.5186.0072 1.132.3163 1.5598.9154.6222.8715.6232 2.0385.086 2.4213-.5372.3828-1.5697.009-2.1918-.8614-.6222-.8703-.6212-1.904-.0763-2.2967.1703-.1227.3865-.1819.6222-.1786zm10.7383.173c.3082.0067.5432.1574.6018.427.0937.4313-.2869.9927-.8616 1.273-.5748.2779-1.1197.1533-1.2135-.278-.0937-.4313.287-.993.8616-1.2731.2156-.1051.4268-.153.6117-.149zm2.083 1.6323c.2403.0082.451.0856.6048.2387.4688.4666.2392 1.4637-.5264 2.2204-.7556.7557-1.7516.9928-2.2204.5262-.4689-.4666-.2295-1.4637.5261-2.2205.4723-.473 1.0385-.7424 1.5112-.7642a1.331 1.331 0 0 1 .1047-.0006zM7.3172 17.7818a.128.128 0 0 1 .0015 0 .128.128 0 0 1 .0662.0202.139.139 0 0 1 .0474.182.9255.9255 0 0 1-.2161.2429 4.1918 4.1918 0 0 0 3.0807 2.1222c2.0797.291 3.6596-.662 4.1025-.9659a.9928.9928 0 0 1-.1487-.2596.1191.1191 0 0 1 .086-.1622.149.149 0 0 1 .1721.0862.7181.7181 0 0 0 .4788.43.1445.1445 0 0 1 .1103.1534.1478.1478 0 0 1-.149.096H14.93a.9928.9928 0 0 1-.3378-.1591c-.4375.3218-2.1112 1.4116-4.315 1.0593-2.1977-.3512-3.0876-1.8351-3.3019-2.2633a.9255.9255 0 0 1-.3152.0614h-.0188l-.0045-.0043a.1269.1269 0 0 1-.1103-.1336.118.118 0 0 1 .1248-.1312.6453.6453 0 0 0 .5515-.3068.128.128 0 0 1 .1144-.0676z\"},\"child\":[]}]})(props);\n};\nexport function SiHarbor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.006 15.751 4.256 1.876.066.805-4.388-1.934.066-.747zm.304-3.435h-.605V11.21h.381V8.95h-.381v-.649l2.118-2.073v-.146c0-.11.09-.2.2-.2.11 0 .2.09.2.2v.146l2.12 2.073v.65h-.382v2.259h.381v1.106h-.514l.27 3.313L7.17 13.9l.14-1.583zm.39-1.106h.628v-.965c0-.383.313-.696.695-.696s.696.313.696.696v.965h.628V8.95H7.7v2.26zM6.89 17.05l-.066.747 4.618 2.035-.066-.805-4.486-1.977zm.23-2.6-.066.747 4.158 1.832-.065-.805-4.026-1.774zM24 12c0 6.617-5.383 12-12 12S0 18.617 0 12 5.383 0 12 0s12 5.383 12 12zm-2.43-.715a9.682 9.682 0 0 0-.223-1.523l-9.751.332 8.801-2.828-.019-.037A9.802 9.802 0 0 0 19.23 5.59l-7.786 4.03 5.712-5.941a9.675 9.675 0 0 0-5.14-1.474c-5.371 0-9.74 4.369-9.74 9.74 0 3.38 1.73 6.362 4.35 8.11l.151-1.704 4.715 2.078.102 1.246c.14.006.28.01.422.01 4.646 0 8.54-3.27 9.507-7.63l-10.08-3.497 10.128.727\"},\"child\":[]}]})(props);\n};\nexport function SiHarmonyos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.861 0H3.59v3.548h3.861V0H9.19v8.883H7.458V5.136H3.59v3.746H1.858Zm8.248 8.883ZM13.854 0h1.706l2.809 4.7h.1L21.278 0h1.719v8.883h-1.719v-4.38l.1-1.489h-.1l-2.334 3.983h-1.039l-2.347-3.983h-.1l.1 1.489v4.38h-1.706Zm4.702 21.648a4.082 4.082 0 0 1-1.154-.161 3.417 3.417 0 0 1-1.01-.484 3.5 3.5 0 0 1-.8-.782 3.817 3.817 0 0 1-.538-1.092l1.666-.62a2.411 2.411 0 0 0 .643 1.116 1.683 1.683 0 0 0 1.207.434 2.173 2.173 0 0 0 .524-.062 1.749 1.749 0 0 0 .459-.2 1.02 1.02 0 0 0 .328-.335.88.88 0 0 0 .118-.459 1.052 1.052 0 0 0-.092-.447 1.031 1.031 0 0 0-.315-.373 2.538 2.538 0 0 0-.564-.335 8.135 8.135 0 0 0-.852-.335l-.577-.2a4.753 4.753 0 0 1-.774-.335 3.44 3.44 0 0 1-.7-.509 2.662 2.662 0 0 1-.525-.695 2.093 2.093 0 0 1-.2-.918 2.248 2.248 0 0 1 .21-.968 2.433 2.433 0 0 1 .616-.794 2.87 2.87 0 0 1 .957-.533 3.726 3.726 0 0 1 1.246-.2 3.57 3.57 0 0 1 1.22.186 2.783 2.783 0 0 1 .879.459 2.468 2.468 0 0 1 .59.608 2.9 2.9 0 0 1 .328.633l-1.56.62a1.55 1.55 0 0 0-.485-.67 1.387 1.387 0 0 0-.944-.3 1.655 1.655 0 0 0-.957.261.754.754 0 0 0-.38.658.843.843 0 0 0 .367.682 4.232 4.232 0 0 0 1.167.534l.59.186a6.271 6.271 0 0 1 1.023.434 2.948 2.948 0 0 1 .8.57 2.191 2.191 0 0 1 .511.769 2.44 2.44 0 0 1 .183.98 2.317 2.317 0 0 1-.3 1.2 2.559 2.559 0 0 1-.747.819 3.361 3.361 0 0 1-1.036.484 4.184 4.184 0 0 1-1.128.161Zm-13.028 0a4.441 4.441 0 0 1-3.23-1.34 4.757 4.757 0 0 1-.956-1.476 4.912 4.912 0 0 1-.339-1.824 4.813 4.813 0 0 1 .339-1.811 4.569 4.569 0 0 1 .956-1.477 4.38 4.38 0 0 1 1.427-.992 4.5 4.5 0 0 1 1.8-.36 4.417 4.417 0 0 1 1.79.36 4.343 4.343 0 0 1 1.44.992 4.418 4.418 0 0 1 .944 1.477 4.67 4.67 0 0 1 .351 1.811 4.765 4.765 0 0 1-.351 1.824 4.589 4.589 0 0 1-.944 1.476 4.495 4.495 0 0 1-3.23 1.34Zm0-1.588a2.822 2.822 0 0 0 1.125-.223 2.761 2.761 0 0 0 .92-.621 2.723 2.723 0 0 0 .617-.955 3.321 3.321 0 0 0 .23-1.253 3.227 3.227 0 0 0-.23-1.24 2.7 2.7 0 0 0-.617-.968 2.759 2.759 0 0 0-.92-.62 2.821 2.821 0 0 0-1.125-.223 2.856 2.856 0 0 0-2.057.844 2.946 2.946 0 0 0-.617.968 3.388 3.388 0 0 0-.218 1.24 3.488 3.488 0 0 0 .218 1.253 2.972 2.972 0 0 0 .617.955 2.856 2.856 0 0 0 2.057.843Zm4.972 1.389Zm-8.269 1.039h6.5V24h-6.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiHashicorp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.114 4.094 4.215 7.5v13.09L.666 18.542V5.45L10.114 0v4.094zm3.772 13.37 3.549-2.049V2.05L13.885 0v10.426h-3.77v-3.89L6.562 8.585v13.357l3.551 2.054V13.599h3.772v3.865zM19.783 3.41V16.5l-5.897 3.405V24l9.448-5.45V5.458l-3.551-2.05z\"},\"child\":[]}]})(props);\n};\nexport function SiHashnode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.351 8.019l-6.37-6.37a5.63 5.63 0 0 0-7.962 0l-6.37 6.37a5.63 5.63 0 0 0 0 7.962l6.37 6.37a5.63 5.63 0 0 0 7.962 0l6.37-6.37a5.63 5.63 0 0 0 0-7.962zM12 15.953a3.953 3.953 0 1 1 0-7.906 3.953 3.953 0 0 1 0 7.906z\"},\"child\":[]}]})(props);\n};\nexport function SiHaskell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3.535L5.647 12 0 20.465h4.235L9.883 12 4.235 3.535zm5.647 0L11.294 12l-5.647 8.465h4.235l3.53-5.29 3.53 5.29h4.234L9.883 3.535zm8.941 4.938l1.883 2.822H24V8.473zm2.824 4.232l1.882 2.822H24v-2.822z\"},\"child\":[]}]})(props);\n};\nexport function SiHasura (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.558 8.172c.707-2.152.282-6.447-1.09-8.032a.419.419 0 0 0-.664.051l-1.69 2.59a1.322 1.322 0 0 1-1.737.276C16.544 1.885 14.354 1.204 12 1.204s-4.544.68-6.378 1.853a1.326 1.326 0 0 1-1.736-.276L2.196.191A.42.42 0 0 0 1.532.14C.16 1.728-.265 6.023.442 8.172c.236.716.3 1.472.16 2.207-.137.73-.276 1.61-.276 2.223C.326 18.898 5.553 24 11.997 24c6.447 0 11.671-5.105 11.671-11.398 0-.613-.138-1.494-.276-2.223a4.468 4.468 0 0 1 .166-2.207zm-11.56 13.284c-4.984 0-9.036-3.96-9.036-8.827 0-.16.005-.316.014-.473.18-3.316 2.243-6.15 5.16-7.5 1.17-.546 2.481-.848 3.864-.848s2.69.302 3.864.85c2.917 1.351 4.98 4.187 5.16 7.501.008.157.014.316.014.473-.003 4.864-4.057 8.824-9.04 8.824zm3.915-5.43-2.31-3.91-1.98-3.26a.26.26 0 0 0-.223-.125H9.508a.26.26 0 0 0-.227.13.246.246 0 0 0 .003.254l1.895 3.109-2.542 3.787a.25.25 0 0 0-.011.259.26.26 0 0 0 .23.132h1.905a.259.259 0 0 0 .218-.116l1.375-2.096 1.233 2.088a.263.263 0 0 0 .224.127h1.878c.094 0 .18-.049.224-.127a.241.241 0 0 0 0-.251z\"},\"child\":[]}]})(props);\n};\nexport function SiHatenabookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.47 0C22.42 0 24 1.58 24 3.53v16.94c0 1.95-1.58 3.53-3.53 3.53H3.53C1.58 24 0 22.42 0 20.47V3.53C0 1.58 1.58 0 3.53 0h16.94zm-3.705 14.47c-.78 0-1.41.63-1.41 1.41s.63 1.414 1.41 1.414 1.41-.645 1.41-1.425-.63-1.41-1.41-1.41zM8.61 17.247c1.2 0 2.056-.042 2.58-.12.526-.084.976-.222 1.32-.412.45-.232.78-.564 1.02-.99s.36-.915.36-1.48c0-.78-.21-1.403-.63-1.87-.42-.48-.99-.734-1.74-.794.66-.18 1.156-.45 1.456-.81.315-.344.465-.824.465-1.424 0-.48-.103-.885-.3-1.26-.21-.36-.493-.645-.883-.87-.345-.195-.735-.315-1.215-.405-.464-.074-1.29-.12-2.474-.12H5.654v10.486H8.61zm.736-4.185c.705 0 1.185.088 1.44.262.27.18.39.495.39.93 0 .405-.135.69-.42.855-.27.18-.765.254-1.44.254H8.31v-2.297h1.05zm8.656.706v-7.06h-2.46v7.06H18zM8.925 9.08c.71 0 1.185.08 1.432.24.245.16.367.435.367.83 0 .38-.13.646-.39.804-.265.154-.747.232-1.452.232h-.57V9.08h.615z\"},\"child\":[]}]})(props);\n};\nexport function SiHaveibeenpwned (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.03 2.37a2.09 2.09 0 0 0-.333.02.905.905 0 0 0-.244.067.527.527 0 0 0-.166.088.5.5 0 0 0-.133.144L.652 4.943a4.084 4.084 0 0 0-.308.532 2.184 2.184 0 0 0-.2.496c-.051.17-.089.351-.11.543A5.53 5.53 0 0 0 0 7.143c0 .199.022.356.066.474a.48.48 0 0 0 .188.266.745.745 0 0 0 .32.123c.133.023.288.031.465.031v.002c.184 0 .342-.01.475-.033a.857.857 0 0 0 .332-.123.56.56 0 0 0 .187-.266c.044-.118.067-.275.067-.474V5.729L3.547 2.71a.418.418 0 0 0 .045-.154.177.177 0 0 0-.067-.112.342.342 0 0 0-.177-.054 2.17 2.17 0 0 0-.319-.022zm4.347 5.61a2.03 2.03 0 0 0-.559.065.647.647 0 0 0-.343.205.813.813 0 0 0-.182.387 3.436 3.436 0 0 0-.043.6c0 .228.014.422.043.58a.883.883 0 0 0 .182.386.75.75 0 0 0 .343.205c.144.036.33.053.559.053a2.2 2.2 0 0 0 .547-.053.75.75 0 0 0 .344-.205.75.75 0 0 0 .183-.387c.036-.157.053-.35.053-.58a2.77 2.77 0 0 0-.053-.6.702.702 0 0 0-.183-.386.647.647 0 0 0-.344-.205 1.937 1.937 0 0 0-.547-.065zm4.05 3.69a.337.337 0 0 0-.308.172c-.068.114-.103.316-.103.605 0 .29.035.496.103.617.069.115.172.17.309.17h4.779c.13 0 .228-.055.297-.17.068-.114.101-.32.101-.617 0-.145-.01-.268-.033-.367a.637.637 0 0 0-.08-.24.25.25 0 0 0-.127-.137.335.335 0 0 0-.158-.033zm7.395 0a.337.337 0 0 0-.308.172c-.069.114-.104.316-.104.605 0 .29.035.496.104.617.068.115.171.17.308.17H23.6c.13 0 .228-.055.296-.17.07-.114.104-.32.104-.617 0-.145-.012-.268-.035-.367a.637.637 0 0 0-.08-.24.247.247 0 0 0-.125-.137.343.343 0 0 0-.16-.033zm-11.32 4.29c-.184 0-.342.012-.475.034a.857.857 0 0 0-.332.123.56.56 0 0 0-.187.266 1.383 1.383 0 0 0-.067.474v1.414L4.994 21.29a.418.418 0 0 0-.045.154c.007.044.03.082.067.112.036.03.096.046.177.054.089.013.195.022.32.022.133 0 .242-.006.33-.022a.905.905 0 0 0 .245-.066.527.527 0 0 0 .166-.088.5.5 0 0 0 .133-.144l1.504-2.254a4.12 4.12 0 0 0 .308-.532c.089-.162.153-.326.197-.496.052-.17.09-.351.112-.543.022-.191.033-.4.033-.629a1.38 1.38 0 0 0-.066-.474.477.477 0 0 0-.188-.266.745.745 0 0 0-.32-.123 2.795 2.795 0 0 0-.465-.031z\"},\"child\":[]}]})(props);\n};\nexport function SiHaxe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.784 0a.221.221 0 0 0-.043.003h-5.853a.221.221 0 0 0-.1.023L12 2.918 6.21.026a.221.221 0 0 0-.098-.023H.238a.221.221 0 0 0-.026 0 .221.221 0 0 0-.21.256v5.853a.221.221 0 0 0 .024.1l2.894 5.785L.026 17.79a.221.221 0 0 0-.024.099v5.84a.221.221 0 0 0 .002.078.221.221 0 0 0 .253.19h5.855a.221.221 0 0 0 .099-.023L12 21.076l5.789 2.898a.221.221 0 0 0 .099.023h5.877a.221.221 0 0 0 .232-.257V17.89a.221.221 0 0 0-.023-.1l-2.895-5.792 2.895-5.786a.221.221 0 0 0 .023-.099V.267a.221.221 0 0 0-.005-.098.221.221 0 0 0-.208-.169zM2.022.445H6.06l4.038 2.017zm15.918 0h4.038l-8.075 2.017zM.528.528l11.039 2.76-8.28 8.275-.238-.953zM23.47.535l-2.76 11.031-8.277-8.279zm.084 1.487V6.06l-2.019 4.035zm-23.11.003L2.29 9.398l.175.7L.445 6.06zM12 3.48L20.52 12l-8.517 8.516-8.241-8.234L3.48 12zm8.712 8.952l.088.351 2.672 10.688-11.04-2.76zm-17.424 0l8.274 8.274L.531 23.46l.266-1.065zm18.247 1.466l2.02 4.042v4.027zm-19.07 0l-2.02 8.08v-4.038zm7.626 7.638l-4.032 2.018H2.02zm3.818 0l8.071 2.018h-4.04z\"},\"child\":[]}]})(props);\n};\nexport function SiHbo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.042 16.896H4.414v-3.754H2.708v3.754H.01L0 7.22h2.708v3.6h1.706v-3.6h2.628zm12.043.046C21.795 16.94 24 14.689 24 11.978a4.89 4.89 0 0 0-4.915-4.92c-2.707-.002-4.09 1.991-4.432 2.795.003-1.207-1.187-2.632-2.58-2.634H7.59v9.674l4.181.001c1.686 0 2.886-1.46 2.888-2.713.385.788 1.72 2.762 4.427 2.76zm-7.665-3.936c.387 0 .692.382.692.817 0 .435-.305.817-.692.817h-1.33v-1.634zm.005-3.633c.387 0 .692.382.692.817 0 .436-.305.818-.692.818h-1.33V9.373zm1.77 2.607c.305-.039.813-.387.992-.61-.063.276-.068 1.074.006 1.35-.204-.314-.688-.701-.998-.74zm3.43 0a2.462 2.462 0 1 1 4.924 0 2.462 2.462 0 0 1-4.925 0zm2.462 1.936a1.936 1.936 0 1 0 0-3.872 1.936 1.936 0 0 0 0 3.872Z\"},\"child\":[]}]})(props);\n};\nexport function SiHcl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3968 10.4013l-1.0971 2.4399H24l-.3435.7629H17.294l1.4331-3.2028zm-6.3985 1.0896h2.4633c-.0152-.5377-.5358-.911-1.5672-1.0592-2.0348-.2994-4.2354-.1718-5.802.6934-1.2346.6859-1.329 1.7176-.099 2.2232 1.0357.4218 3.2106.4656 4.767.201 1.0077-.1712 1.7776-.502 2.2093-.9974H14.454c-.3262.251-.7526.376-1.25.3804-1.4124.0094-1.5988-.4182-1.3525-.9106.293-.5801.9075-.8966 1.8447-.9216.7381-.0199 1.1029.1436 1.3021.3908M0 13.6067h2.604l.5578-1.2789h2.553l-.5732 1.2771h2.635l1.4457-3.2031h-2.653l-.4769 1.0807H3.5421l.4831-1.0807-2.5781-.0006Z\"},\"child\":[]}]})(props);\n};\nexport function SiHdfcbank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.572 0v10.842h3.712V4.485h6.381V0Zm12.413 0v4.485h6.383v6.357h4.06V0Zm-4.64 8.53v6.938h6.963V8.53ZM.572 13.153V24h10.093v-4.486h-6.38v-6.361zm18.796 0v6.361h-6.383V24h10.443V13.153Z\"},\"child\":[]}]})(props);\n};\nexport function SiHeadlessui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.477 13.192c-.36-2.274-.584-3.711-.65-4.805-.062-1.035.051-1.354.1-1.468.169-.395.424-.746.746-1.029.093-.081.363-.288 1.366-.548 1.06-.275 2.496-.507 4.769-.867 2.274-.36 3.71-.584 4.804-.65 1.034-.062 1.354.051 1.468.1.395.169.746.424 1.029.747.08.093.287.362.547 1.366.242.933.45 2.156.743 3.987l-14.646 4.89c-.085-.515-.176-1.085-.276-1.723Zm-3.762.596C.018 9.387-.33 7.187.425 5.422a6.665 6.665 0 0 1 1.743-2.401C3.614 1.757 5.813 1.41 10.211.713c4.4-.698 6.6-1.046 8.367-.291.92.393 1.74.99 2.399 1.743 1.264 1.447 1.612 3.647 2.308 8.047.697 4.4 1.045 6.601.29 8.366a6.664 6.664 0 0 1-1.743 2.402c-1.445 1.263-3.645 1.611-8.045 2.308-4.398.697-6.598 1.045-8.363.29a6.666 6.666 0 0 1-2.4-1.743c-1.263-1.448-1.611-3.648-2.308-8.048H.715v.001Zm7.759 7.814c1.178-.072 2.695-.31 4.94-.665 2.247-.356 3.762-.599 4.905-.895 1.107-.288 1.617-.568 1.947-.856a4.286 4.286 0 0 0 1.12-1.543c.172-.402.281-.974.212-2.116-.071-1.178-.309-2.696-.665-4.942-.355-2.247-.598-3.763-.894-4.906-.287-1.107-.568-1.618-.855-1.947a4.285 4.285 0 0 0-1.543-1.12c-.402-.174-.974-.282-2.116-.213-1.178.071-2.694.309-4.94.664-2.246.357-3.762.6-4.905.896-1.107.287-1.616.568-1.946.855a4.286 4.286 0 0 0-1.12 1.543c-.173.403-.281.974-.212 2.116.07 1.179.308 2.696.664 4.943.356 2.246.598 3.762.895 4.905.287 1.108.567 1.618.855 1.947.423.485.95.868 1.543 1.121.402.173.973.282 2.116.213Z\"},\"child\":[]}]})(props);\n};\nexport function SiHeadphonezone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.63 4.702 17.96 0 9.086 2.484c-.463 1.754-.694 4.139.133 6.655.232-.067.463-.1.695-.133a4.724 4.724 0 0 1 5.133 4.305 4.724 4.724 0 0 1-4.305 5.133 4.724 4.724 0 0 1-5.132-4.305 4.618 4.618 0 0 1 1.159-3.543c-.86-1.325-1.987-3.609-1.954-6.49C1.107 6.623-.847 11.258.378 15.86c1.49 5.828 7.45 9.305 13.245 7.782 4.603-1.192 7.748-5.198 8.113-9.702l2.251-1.622-6.358-7.616Z\"},\"child\":[]}]})(props);\n};\nexport function SiHeadspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9711 11.8612c.279 3.8878-1.5272 6.0933-2.6155 7.6357-1.694 1.7856-3.8397 4.2203-9.291 4.3565-4.6237.1827-6.8957-1.8508-8.8034-3.617-2.487-2.7336-3.1366-4.3512-3.261-8.3752-.0118-2.467.9397-4.9292 2.6025-7.0954C4.934 1.4736 8.6408.3699 12.0646.1426c3.5923-.1392 6.4493 1.6723 8.3993 3.624 2.4963 2.632 3.2629 4.8923 3.5054 8.0946Z\"},\"child\":[]}]})(props);\n};\nexport function SiHearth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.1958 10.318v9.576L.4531 24v-9.3298zm7.6591-4.162 7.692 4.1616v9.5736L15.8532 24v-9.3302l-7.6577-4.3522ZM8.196 0v9.576L.453 13.8027v-9.648Z\"},\"child\":[]}]})(props);\n};\nexport function SiHearthisdotat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.485 3.515C15.799-1.17 8.2-1.17 3.515 3.515c-4.687 4.686-4.687 12.285 0 16.97 4.685 4.686 12.284 4.686 16.97 0 4.687-4.685 4.687-12.284 0-16.97zm-5.81 14.433c-.252.252-1.25.562-1.25-.012 0-.573-.157-3.089-2.028-4.958-1.88-1.88-4.55-2.192-5.056-2.192-.506 0-.331-1-.078-1.252.253-.253.558-.15 1.064-.15 0 0 3.445.464 5.326 2.345 1.868 1.869 2.173 5.153 2.173 5.153 0 .463.102.813-.15 1.066zm4.022-.509c-.36.36-1.786.803-1.786-.015 0-.82-.224-4.41-2.893-7.079C11.335 7.662 7.524 7.217 6.8 7.217c-.723 0-.473-1.426-.113-1.787.361-.36.799-.214 1.52-.214 0 0 4.918.663 7.603 3.348 2.666 2.667 3.1 7.356 3.1 7.356 0 .658.147 1.158-.214 1.52z\"},\"child\":[]}]})(props);\n};\nexport function SiHedera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24Zm4.9571 17.3963h-1.5812V14.01H8.6224v3.3777H7.0498V6.6037H8.631v3.3845h6.7535V6.6037h1.5812zm-1.5812-6.2592H8.6224v1.7241h6.7535Z\"},\"child\":[]}]})(props);\n};\nexport function SiHelium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.6274 0 12 5.3726 12 12s-5.3726 12-12 12S0 18.6274 0 12 5.3726 0 12 0Zm2.5535 5.6062a2.7033 2.7033 0 0 0-.7421 1.3856c-1.923-.7238-4.1285-.264-5.5968 1.2045-1.4696 1.4696-1.929 3.6777-1.2024 5.6018a2.7037 2.7037 0 0 0-1.3947.7441c-1.0604 1.0604-1.0604 2.7799 0 3.8403 1.0605 1.0604 2.7798 1.0604 3.8403 0a2.7035 2.7035 0 0 0 .746-1.4034 5.255 5.255 0 0 0 1.8373.332c1.3756 0 2.7344-.5344 3.7442-1.5442 1.463-1.463 1.9253-3.6579 1.2127-5.576a2.703 2.703 0 0 0 1.3957-.7444c1.0605-1.0604 1.0605-2.7798 0-3.8403-1.0604-1.0604-2.7798-1.0604-3.8402 0zm3.1724 3.1725c-.4029.403-.9577.5877-1.5231.5072a.3058.3058 0 0 0-.0793.0001.9214.9214 0 0 0-.9875.6035.9208.9208 0 0 0 .0307.7007c.602 1.3006.3253 2.8556-.6886 3.8695-1.014 1.0138-2.569 1.291-3.87.6884a.9211.9211 0 0 0-.7098-.0276.9212.9212 0 0 0-.5172.4781.9195.9195 0 0 0-.0831.4539.308.308 0 0 0 0 .0915 1.7992 1.7992 0 0 1-.5009 1.5636c-.6991.699-1.8368.699-2.5362 0a1.7821 1.7821 0 0 1-.5252-1.2681c0-.4791.1865-.9295.5252-1.2682.4028-.4029.9579-.5873 1.5516-.506a.921.921 0 0 0 .1824.0205c.13 0 .262-.0277.3877-.0858a.9213.9213 0 0 0 .4753-.5104.921.921 0 0 0-.0247-.7167c-.602-1.3006-.3253-2.8555.6886-3.8694 1.014-1.014 2.5692-1.2909 3.87-.6885a.9212.9212 0 0 0 .7074.0287.9218.9218 0 0 0 .5197-.4792c.083-.1793.103-.3715.07-.5583a1.7988 1.7988 0 0 1 .5009-1.5637c.6991-.6993 1.8369-.6993 2.536 0 .6993.6993.6993 1.837 0 2.5362zm-7.1177 1.8111c-.7758.7759-.7758 2.0337 0 2.8095.7759.776 2.0338.776 2.8096 0 .7758-.7758.7758-2.0336 0-2.8095-.7758-.7757-2.0337-.7757-2.8096 0z\"},\"child\":[]}]})(props);\n};\nexport function SiHelix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.968 4.97 4.364 0v3.55c0 .449.239.863.627 1.087l4.276 2.47zm5.339 3.083-3.7 2.138 4.86 2.807c.11-.19.17-.407.17-.633V9.552c0-.452-.241-.87-.633-1.096zm1.33 12.397c0-.449-.24-.863-.627-1.087l-4.253-2.456-3.7 2.137L19.637 24zm-13.92-4.49 3.7-2.137c-2.703-1.562-4.884-2.82-4.884-2.82a1.26 1.26 0 0 0-.17.632v2.813c0 .452.242.87.634 1.096zm-.287-1.252a.93.93 0 0 1 .343-.342l12.455-7.194-.01.007.786-.455c.392-.226.633-.643.633-1.096V2.815c0-.452-.241-.87-.633-1.096l-.765-.442a.944.944 0 0 1-.005 1.617l-.006.004-13.231 7.641a1.26 1.26 0 0 0-.633 1.096v2.813c0 .453.24.87.633 1.096l.72.416h.002a.944.944 0 0 1-.29-1.252m12.873-6.652a.945.945 0 0 1-.07 1.575l-.005.004-13.231 7.641a1.26 1.26 0 0 0-.633 1.096v2.813c0 .452.24.87.633 1.096l.765.442a.945.945 0 0 1 .01-1.62l12.456-7.194-.01.006.786-.454c.392-.226.633-.644.633-1.096V9.552c0-.453-.241-.87-.633-1.096l-.697-.403z\"},\"child\":[]}]})(props);\n};\nexport function SiHellofresh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.7894 22.2329c-.9661-.0974-2.0001-.326-3.042-.7589-.5912-.2456-1.1673-.5843-1.2123-.6109-.362-.2057-.6568-.457-1.2135-.7269-.7048-.3416-1.3836-.5276-2.1106-.611-.9842-.0661-1.038.0124-1.319-.0745-.1676-.0545-.3188-.1205-.495-.2848-.0526-.049-.125-.1304-.1607-.1808-.125-.1763-.1744-.3314-.194-.3997-.0284-.0981-.0424-.1563-.0423-.3324 0-.1565.0152-.2397.035-.3116.0763-.2788.173-.3408.4299-.8472.3285-.6476.5238-1.285.6176-1.9564a5.7292 5.7292 0 0 0 .0554-1.017c-.015-.5062-.0383-.6133-.0392-1.0444-.0026-1.2549.2374-2.3546.5533-3.2859.2061-.6079.3889-1.007.6046-1.4333.5845-1.1551 1.5013-2.4784 2.9354-3.6924.7732-.6545 1.9737-1.5002 3.5538-2.1176 1.3446-.5253 2.5225-.7015 3.064-.7614.664-.087 1.8067-.1234 2.975.0535.9966.151 2.2445.4867 3.5131 1.2.4312.2424.6815.4377 1.014.6296.814.4697 1.6498.7054 2.4477.8015.424.051 1.0618.0047 1.302.0666.1477.0381.2551.0862.3896.1755.1135.0755.3629.2761.4912.6485.061.1772.1243.6076-.0987.9911-.0365.063-.1066.183-.1557.2669-.0491.0838-.1423.2622-.2072.3964-.6611 1.3677-.6465 2.5461-.6009 3.263.0534.84.05 2.2341-.5417 3.9644-.1037.3032-.3364.9313-.7023 1.6143-.8281 1.5455-1.876 2.6331-2.5374 3.2256-1.474 1.3204-2.9634 2.038-3.9265 2.4021-.8975.3393-1.5834.5095-2.3024.6327-.6934.1188-1.8193.2425-3.0802.1154z\"},\"child\":[]}]})(props);\n};\nexport function SiHellyhansen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.912 5.945a1.089 1.089 0 10-.002 2.178 1.089 1.089 0 00.002-2.178zm.012.242a.85.85 0 110 1.7.85.85 0 010-1.7zm-.332.375v.952h.18v-.352h.171l.184.352h.207l-.213-.385c.046-.017.19-.067.19-.28 0-.166-.12-.287-.323-.287h-.396zm.18.157h.167c.124 0 .184.057.184.144 0 .089-.065.143-.156.143h-.196v-.287zM0 7.039v11.016h3.684v-3.78h3.523v3.78h1.42l2.15-11.016H7.221v3.854H3.695V7.039H0zm12.127 0L9.988 18.055h3.545V14.2h3.524v3.854h3.697V7.039H17.07v3.78h-3.525v-3.78h-1.418Z\"},\"child\":[]}]})(props);\n};\nexport function SiHelm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.337 0c-.475 0-.861 1.016-.861 2.269 0 .527.069 1.011.183 1.396a8.514 8.514 0 0 0-3.961 1.22 5.229 5.229 0 0 0-.595-1.093c-.606-.866-1.34-1.436-1.79-1.43a.381.381 0 0 0-.217.066c-.39.273-.123 1.326.596 2.353.267.381.559.705.84.948a8.683 8.683 0 0 0-1.528 1.716h1.734a7.179 7.179 0 0 1 5.381-2.421 7.18 7.18 0 0 1 5.382 2.42h1.733a8.687 8.687 0 0 0-1.32-1.53c.35-.249.735-.643 1.078-1.133.719-1.027.986-2.08.596-2.353a.382.382 0 0 0-.217-.065c-.45-.007-1.184.563-1.79 1.43a4.897 4.897 0 0 0-.676 1.325 8.52 8.52 0 0 0-3.899-1.42c.12-.39.193-.887.193-1.429 0-1.253-.386-2.269-.862-2.269zM1.624 9.443v5.162h1.358v-1.968h1.64v1.968h1.357V9.443H4.62v1.838H2.98V9.443zm5.912 0v5.162h3.21v-1.108H8.893v-.95h1.64v-1.142h-1.64v-.84h1.853V9.443zm4.698 0v5.162h3.218v-1.362h-1.86v-3.8zm4.706 0v5.162h1.364v-2.643l1.357 1.225 1.35-1.232v2.65h1.365V9.443h-.614l-2.1 1.914-2.109-1.914zm-11.82 7.28a8.688 8.688 0 0 0 1.412 1.548 5.206 5.206 0 0 0-.841.948c-.719 1.027-.985 2.08-.596 2.353.39.273 1.289-.338 2.007-1.364a5.23 5.23 0 0 0 .595-1.092 8.514 8.514 0 0 0 3.961 1.219 5.01 5.01 0 0 0-.183 1.396c0 1.253.386 2.269.861 2.269.476 0 .862-1.016.862-2.269 0-.542-.072-1.04-.193-1.43a8.52 8.52 0 0 0 3.9-1.42c.121.4.352.865.675 1.327.719 1.026 1.617 1.637 2.007 1.364.39-.273.123-1.326-.596-2.353-.343-.49-.727-.885-1.077-1.135a8.69 8.69 0 0 0 1.202-1.36h-1.771a7.174 7.174 0 0 1-5.227 2.252 7.174 7.174 0 0 1-5.226-2.252z\"},\"child\":[]}]})(props);\n};\nexport function SiHelpdesk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 10.71l6.12-5.31H12c-2.16 0-4.32.06-6.36.21-.84.06-1.5.69-1.56 1.53-.12 1.26-.18 2.85-.18 4.41v.87c0 1.59.06 3.15.18 4.41.09.81.75 1.47 1.56 1.5a90 90 0 0012.72 0c.81-.03 1.5-.69 1.56-1.5.09-1.2.15-2.67.18-4.17L24 9.3V12.66c0 1.59-.06 3.18-.18 4.47a5.57 5.57 0 01-5.19 5.1c-2.13.18-4.38.27-6.63.27s-4.5-.09-6.63-.24a5.57 5.57 0 01-5.19-5.1C.06 15.81 0 14.13 0 12.45v-.87C0 9.9.06 8.22.18 6.84a5.57 5.57 0 015.19-5.1C7.5 1.59 9.75 1.5 12 1.5h12v3.9L12 15.81l-5.61-4.86L9.33 8.4z\"},\"child\":[]}]})(props);\n};\nexport function SiHelpscout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.497 14.044 7.022-7.021a4.946 4.946 0 0 0 1.474-3.526A4.99 4.99 0 0 0 10.563 0L3.54 7.024a4.945 4.945 0 0 0-1.473 3.525c0 1.373.55 2.6 1.43 3.496zm17.007-4.103-7.023 7.022a4.946 4.946 0 0 0-1.473 3.525c0 1.36.55 2.601 1.43 3.497l7.022-7.022a4.943 4.943 0 0 0 1.474-3.526c0-1.373-.55-2.6-1.43-3.496zm-.044-2.904a4.944 4.944 0 0 0 1.474-3.525c0-1.36-.55-2.6-1.43-3.497L3.54 16.965A4.986 4.986 0 0 0 3.497 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiHepsiemlak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.7214 14.9904c0 .4768-.3982.7843-1.0803.7843-.3203 0-.74-.06-1.0463-.272l.2502-.4716c.2016.1308.4467.2262.8009.2262.2943 0 .4348-.081.4348-.217 0-.1109-.1188-.1736-.3911-.2122l-.1916-.0257c-.5435-.074-.8131-.3076-.8131-.7024 0-.4745.3739-.7553.9927-.7553.341-.0064.6784.0689.9832.2191l-.2137.4853c-.1882-.0905-.4852-.1848-.7499-.1885-.2405 0-.3618.0835-.3618.21 0 .1334.1697.1667.3836.1977l.2087.031c.51.0761.7937.3001.7937.6911zm-2.2784-.4613c0 .6757-.4832 1.1846-1.1238 1.1846-.312 0-.5322-.1184-.6832-.2929v.9614h-.6234v-2.9774h.611v.2486c.1514-.1838.374-.3091.693-.3091.6421 0 1.1264.5087 1.1264 1.1848zm-.6423 0c0-.3436-.23-.6202-.5991-.6202-.3549 0-.597.2646-.597.6202 0 .355.2421.6203.597.6203.3691 0 .5991-.2767.5991-.6203zm-2.0919.0277a1.7387 1.7387 0 0 1-.0121.2086H3.0679c.0666.3327.299.4805.5906.4805a.9243.9243 0 0 0 .5808-.2217l.363.4005c-.2612.2406-.5928.35-.9796.35-.704 0-1.1923-.4803-1.1923-1.208 0-.7276.474-1.2224 1.1618-1.2224.6617 0 1.1138.4933 1.1166 1.2125zm-.6213-.214c-.0567-.2956-.2347-.4623-.5-.4623-.292 0-.4626.1762-.517.4623h1.017zm6.0897 1.368h.6076v-2.2784h-.6076v2.2785zM4.709 14.5572v-.0014l-.0001.001v.0004zm.6076-4.4447 2.87 2.518 1.2312-1.415-4.1012-3.5977-4.1012 3.5978 1.2311 1.4149 2.8701-2.518zm-3.976 3.2444c-.2637 0-.52.0804-.6916.3077l.0004-.9898H0v3.038h.649v-1.2574c0-.3457.2315-.5186.5099-.5186.2964 0 .4703.1836.4703.5142v1.262h.6493V14.252c0-.5328-.3905-.8953-.938-.8953zm16.5835 2.3558h.6076v-3.0379h-.6076v3.038zm5.1964-1.2163.871-1.0811-.7676.0005-.6544.818h-.221l-.0006-1.559h-.6263l.0015 3.038.6262-.0004-.0004-.929h.2113l.6697.9287.7702-.0004-.8796-1.2153zm-1.7033-1.0903.0006 2.3084h-.6114v-.255c-.1506.1849-.3758.315-.6945.3154-.6397 0-1.1243-.5215-1.1244-1.2149-.0003-.6935.483-1.2152 1.1231-1.2156.319 0 .5418.1287.6953.3166v-.2549h.6113zm-.592 1.1533c-.0005-.3645-.2424-.6363-.5993-.6361-.3665 0-.5986.2838-.5986.6364 0 .3528.2326.636.5992.6357.3572 0 .5992-.2718.5986-.636zm-4.2813-1.2502c-.308.0003-.6144.1047-.7955.4019-.1572-.249-.4365-.4012-.7741-.4012-.266 0-.5224.0885-.689.3374v-.2756h-.6144v2.3426h.6314v-1.2841c-.0006-.3528.2247-.5295.4953-.5295.288 0 .4576.1877.4576.525v1.2876h.6313V14.429c-.0004-.3527.2247-.5295.4953-.5295.2855 0 .4572.1875.4572.525v1.2887h.6291v-1.4914l.0004.001c-.0004-.544-.3732-.9137-.9246-.9137zm-3.0249 1.2472a1.838 1.838 0 0 1-.0118.2089H11.878c.067.3325.2994.4803.591.4803a.9258.9258 0 0 0 .5804-.2216l.3633.4c-.2608.241-.5928.3508-.9792.3508-.704 0-1.1927-.4803-1.1928-1.2072-.0006-.7268.4734-1.2228 1.161-1.2232.6617 0 1.114.4925 1.1172 1.212zm-.6213-.2131c-.057-.2957-.235-.462-.5003-.462-.2917 0-.4622.1764-.5168.462h1.0171zm.6214.2134zm-3.0601-2.1814a.3796.3796 0 0 0-.351.2342.3794.3794 0 0 0 .0819.4139.3794.3794 0 0 0 .414.0824.38.38 0 0 0 .1233-.6193.379.379 0 0 0-.2682-.1112z\"},\"child\":[]}]})(props);\n};\nexport function SiHere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.29 1.007c-.697.036-1.367.384-2.008 1.036-.97.987-1.104 2.206-.679 3.316l-1.091-1.312c-.106.041-.306.203-.506.406-.572.596-.705 1.516-.558 2.125l-.734-.635-1.45 1.475 1.996 2.03c-1.583-1.326-3.007-1.259-4.323.082-1.331 1.353-1.252 3.006-.147 4.385l-.186-.189c-1.184-1.205-2.328-1.463-3.46-.298-.666.663-.772 1.314-.706 1.897l-2.794-2.83-1.625 1.651 5.372 5.48H0l3.312 3.37 3.282-3.34h3.128l-2.275-2.314c-.798-.8-1.039-1.354-.547-1.855.36-.379.773-.367 1.278.148l2.741 2.803 1.65-1.679-2.049-2.084c1.623 1.368 3.393 1.03 4.738-.351.706-.704 1.09-1.355 1.278-1.801l-1.452-.825a6.544 6.544 0 0 1-.878 1.218c-.799.812-1.543.812-2.048.392l2.94-2.992L17 12.25l1.65-1.678-1.782-1.815c-1.45-1.476-1.025-2.26-.691-2.599.212-.217.425-.378.572-.46a4.183 4.183 0 0 0 .797 1.096c1.728 1.774 3.62 1.53 5.07.042.865-.88 1.279-1.692 1.384-2.099l-1.424-.799a5.902 5.902 0 0 1-1.023 1.489c-.786.812-1.532.813-2.037.394l2.97-3.007-.374-.379C21.13 1.43 20.188.961 19.291 1.007zm-.055 1.918c.273-.002.558.113.838.35l-1.596 1.623c-.452-.527-.465-1.136 0-1.623.226-.23.485-.349.758-.35zm-7.357 7.486c.275-.002.564.113.85.35l-1.61 1.626c-.452-.528-.466-1.151 0-1.626.227-.23.486-.349.76-.35z\"},\"child\":[]}]})(props);\n};\nexport function SiHermes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.818 4.516-1.05 4.148h2.175L24 4.516M19.41 14.04h2.17l1.04-4.08h-2.178m-2.41 9.523h2.154l1.056-4.147h-2.16m.193-5.377H5.55v.92l3.341 3.161h9.349m2.41-9.525H0v1.116l3.206 3.032H19.6m-8.372 7.58 3.43 3.24h2.205l1.05-4.147h-6.685\"},\"child\":[]}]})(props);\n};\nexport function SiHeroku (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.61 0H3.39C2.189 0 1.23.96 1.23 2.16v19.681c0 1.198.959 2.159 2.16 2.159h17.22c1.2 0 2.159-.961 2.159-2.159V2.16C22.77.96 21.811 0 20.61 0zm.96 21.841c0 .539-.421.96-.96.96H3.39c-.54 0-.96-.421-.96-.96V2.16c0-.54.42-.961.96-.961h17.22c.539 0 .96.421.96.961v19.681zM6.63 20.399L9.33 18l-2.7-2.4v4.799zm9.72-9.719c-.479-.48-1.379-1.08-2.879-1.08-1.621 0-3.301.421-4.5.84V3.6h-2.4v10.38l1.68-.78s2.76-1.26 5.16-1.26c1.2 0 1.5.66 1.5 1.26v7.2h2.4v-7.2c.059-.179.059-1.501-.961-2.52zM13.17 7.5h2.4c1.08-1.26 1.62-2.521 1.8-3.9h-2.399c-.241 1.379-.841 2.64-1.801 3.9z\"},\"child\":[]}]})(props);\n};\nexport function SiHetzner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm4.602 4.025h2.244c.509 0 .716.215.716.717v5.64h8.883v-5.64c0-.509.215-.717.717-.717h2.229c.5 0 .71.23.724.717v14.516c0 .509-.215.717-.717.717h-2.23c-.51 0-.717-.215-.717-.717v-5.735H7.562v5.735c0 .516-.215.717-.716.717H4.602c-.51 0-.717-.208-.717-.717V4.742c0-.509.207-.717.717-.717z\"},\"child\":[]}]})(props);\n};\nexport function SiHevy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.76 2.489c1.473 0 2.672 1.16 2.716 2.607q.002 1.622.001 3.244c0 .572-.416 1.2-1.045 1.4-.63.202-1.013-.431-1.044-.975q-.002-1.794-.001-3.587a.624.624 0 0 0-.71-.615c-.375.047-.704.105-1.048.159l-.32.058q-1.33.253-2.122.584c-.338.142-.584.287-.737.423-.096.085-.133.141-.14.177-.041.167-.044.286-.069.449-.047.45-.057.749-.083 1.176l-.018.453c-.041 1.41-.049 2.343-.049 3.648.007 1.219.019 2.056.047 3.192.016.69.044 1.229.074 1.913q.02.348.046.696c.013.218.038.384.058.588q.025.026.053.05c.137.116.377.252.716.39q.495.203 1.212.39c.344.095.68.161 1.001.234.497.104.88.165 1.36.248a.626.626 0 0 0 .72-.512c.008-.033.006-.067.009-.1v-2.091a5.57 5.57 0 0 1 2.688-4.76l2.693-1.559a3.51 3.51 0 0 0 1.759-2.926c.005-.734.002-1.468.002-2.202 0-1.485 1.216-2.69 2.717-2.69q.22 0 .438.036c.506.08.85.148 1.323.236.268.052.478.102.744.16.139.032.271.065.415.1l.264.07c2.073.56 3.168 1.302 3.322 2.444.022.16.031.285.048.437q.023.28.043.56c.034.503.049.91.073 1.418.023.553.032.982.047 1.527l.019.914c.012.75.015 1.337.018 2.082l-.003.941q-.006.635-.015 1.27-.01.506-.026 1.012c-.011.387-.028.681-.044 1.053q-.015.263-.033.524c-.01.153-.026.305-.039.457-.014.167-.036.297-.056.462q-.02.138-.052.273c-.297 1.233-1.592 2.017-3.886 2.553-.243.058-.515.11-.733.156-.293.059-.52.094-.796.143q-.341.055-.682.104c-1.486.213-2.864-.807-3.078-2.277a3 3 0 0 1-.025-.256c-.007-1.09-.003-2.18-.003-3.269 0-.571.506-1.273 1.045-1.4s1.012.432 1.043.976c.004 1.188.002 2.376.002 3.564.003.38.341.67.717.614.335-.045.572-.09.872-.138.284-.048.5-.096.776-.149.249-.05.437-.102.679-.158.183-.046.322-.088.491-.135.116-.033.23-.072.344-.108.102-.034.201-.073.302-.109q.13-.051.258-.107c.073-.032.143-.07.214-.105.079-.039.134-.082.208-.127q.19-.137.219-.252c.091-.44.106-.946.134-1.327.09-1.976.081-3.96.064-5.744-.013-.934-.031-1.647-.058-2.548l-.031-.783c-.018-.403-.04-.715-.062-1.089-.01-.165-.029-.329-.043-.493l-.015-.128-.047-.044c-.136-.116-.375-.251-.713-.39q-.765-.313-2.063-.59c-.58-.124-1.01-.193-1.518-.282a.625.625 0 0 0-.726.564c-.005.713-.002 1.427-.002 2.14a5.57 5.57 0 0 1-2.689 4.759q-1.344.783-2.692 1.559a3.51 3.51 0 0 0-1.76 2.927v2.201q0 .217-.037.435c-.242 1.465-1.64 2.46-3.12 2.22-.366-.058-.646-.112-1.004-.176-.284-.052-.501-.101-.766-.155-.33-.068-.666-.16-.966-.234C1.52 20.31.421 19.57.255 18.434c-.038-.263-.047-.454-.075-.718-.033-.407-.047-.72-.07-1.12-.03-.593-.044-1.076-.063-1.677-.025-.877-.032-1.546-.043-2.391l-.003-.495L0 11.65l.002-.85c.004-.806.016-1.426.035-2.214.008-.305.022-.61.033-.916.011-.305.034-.61.052-.915.015-.24.037-.423.057-.653.013-.123.033-.246.049-.369.01-.077.029-.152.043-.228.272-1.18 1.41-1.955 3.4-2.48.249-.07.443-.106.679-.163.195-.043.391-.079.587-.118q.232-.043.466-.082c.24-.04.424-.065.654-.101l.342-.047q.18-.024.36-.024\"},\"child\":[]}]})(props);\n};\nexport function SiHexlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.732 7.099v6.422H7.268V7.099L4.563 6.085V24h2.705v-7.775h9.464V24h2.705V6.085l-2.705 1.014Zm3.043-4.057L12 0 4.225 3.042 12 5.746l7.775-2.704Z\"},\"child\":[]}]})(props);\n};\nexport function SiHexo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.02 0L1.596 6.02l-.02 12L11.978 24l10.426-6.02.02-12zm4.828 17.14l-.96.558-.969-.574V12.99H9.081v4.15l-.96.558-.969-.574V6.854l.964-.552.965.563v4.145h5.838V6.86l.965-.552.964.563z\"},\"child\":[]}]})(props);\n};\nexport function SiHey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.57 6.698a5.724 5.724 0 00-2.644 1.572c-.84-2.952-2.65-7.42-4.415-8.15a1.283 1.283 0 00-1.181.05c-1.104.643-1.823 2.709-1.194 6.624C7.71 2.353 6.863 2.36 6.472 2.353a.956.956 0 00-.873.597c-.263.584-.79 2.406.494 6.327C4.547 7.16 4.072 6.89 3.526 6.917a.969.969 0 00-.821.557c-.463.873-.41 3.068 1.027 6.34a2.946 2.946 0 00-1.773-.73 1.06 1.06 0 00-.853.544c-.584 1.073.642 4.083 2.157 6.124C4.49 21.427 6.947 24 10.515 24a8.047 8.047 0 001.489-.141.654.654 0 00-.25-1.284c-2.965.578-5.2-1.052-6.553-2.515-2.021-2.19-2.908-4.82-2.959-5.622.424.173 1.644.892 4.018 3.934a.65.65 0 001.059-.757c-3.337-5.066-3.664-8.132-3.555-9.166.982 1 3.433 4.671 5.28 7.445a.642.642 0 00.88.199.642.642 0 00.238-.873C6.312 8.16 6.446 4.952 6.67 3.874c.577.584 2.11 2.618 5.34 9.626a.642.642 0 00.84.327.642.642 0 00.366-.827c-3.132-8.504-1.772-11.385-1.252-11.712.674 0 2.567 3.247 3.748 7.502.07.263.141.52.205.77a4.094 4.094 0 00-.385.924c-.64 2.355-1.283 7.7-.045 9.17a1.194 1.194 0 001.04.444 1.688 1.688 0 001.232-.757c1.15-1.675.475-5.879-.443-9.557a4.832 4.832 0 012.567-1.84 1.283 1.283 0 011.284.307c.526.59 1.445 2.798-1.34 10.583a.654.654 0 001.231.436c2.22-6.206 2.568-10.204 1.084-11.886A2.528 2.528 0 0019.57 6.7zm-2.888 11.918a.41.41 0 01-.218.186c-.48-.571-.48-3.953.045-6.727.995 4.795.417 6.2.173 6.54z\"},\"child\":[]}]})(props);\n};\nexport function SiHibernate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.365 0L9.98 7.994h8.95L14.31 0H5.366zm-.431.248L.46 7.994l4.613 8.008L9.55 8.24 4.934.248zm13.992 7.75l-4.475 7.76 4.617 7.992 4.471-7.744-4.613-8.008zm-4.905 8.006l-8.95.002L9.688 24h8.946l-4.615-7.994.001-.002Z\"},\"child\":[]}]})(props);\n};\nexport function SiHibob (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.527 17.538c-2.077 0-3.767-1.705-3.767-3.8 0-2.096 1.69-3.8 3.767-3.8s3.767 1.704 3.767 3.8c0 2.095-1.69 3.8-3.766 3.8m0-6.408c-1.426 0-2.586 1.17-2.586 2.607 0 1.439 1.159 2.609 2.585 2.609s2.585-1.17 2.585-2.609c0-1.437-1.16-2.606-2.585-2.606M1.707 10.4V7.082a.858.858 0 0 0-.853-.86.856.856 0 0 0-.854.86v6.632c.002 2.244 1.81 4.065 4.03 4.065 2.221 0 4.029-1.823 4.029-4.065 0-2.24-1.808-4.063-4.029-4.063a3.98 3.98 0 0 0-2.323.748zm2.323 5.658a2.335 2.335 0 0 1-2.323-2.343 2.335 2.335 0 0 1 2.323-2.342 2.335 2.335 0 0 1 2.323 2.342 2.335 2.335 0 0 1-2.323 2.343m16.465-5.854a3.49 3.491 0 0 0-2.848 1.484V6.704a.33.33 0 0 0-.327-.331.33.33 0 0 0-.328.331v7.036c.002 1.949 1.572 3.533 3.504 3.533 1.931 0 3.504-1.586 3.504-3.536 0-1.949-1.573-3.534-3.505-3.534m0 6.408c-1.57 0-2.847-1.289-2.847-2.873s1.278-2.872 2.847-2.872c1.57 0 2.848 1.288 2.848 2.872 0 1.585-1.277 2.873-2.848 2.873\"},\"child\":[]}]})(props);\n};\nexport function SiHilton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.544v8.912h24V7.544H0zm23.588 8.503H.406V7.95h23.182v8.097zM3.682 14.41h-1.62v-.249l.324-.044V9.873l-.324-.045v-.242h1.62v.242l-.324.045v1.813h2.107V9.873l-.355-.045v-.242h1.647v.242l-.334.045v4.244l.334.044v.25H5.11v-.25l.355-.044v-1.933H3.358v1.933l.324.044v.25zm5.298 0H7.466v-.218l.31-.044V11.24l-.31-.045v-.218h1.203v3.17l.31.045v.218zm2.171.004H9.638v-.215l.303-.041V9.845l-.303-.044V9.59h1.203v4.568l.31.04v.216zm.941-3.116h-.634v-.32h.658v-.717l.88-.262v.978h.807v.32h-.81v2.043c0 .528.108.695.589.695.177 0 .334 0 .48-.037v.235c-.436.153-.804.218-1.114.218-.696 0-.856-.314-.856-.914v-2.24zm3.924 3.214c1.139 0 1.861-.715 1.861-1.786 0-1.176-.678-1.844-1.803-1.844-1.139 0-1.861.74-1.861 1.844 0 1.32.702 1.786 1.803 1.786zm.024-3.364c.525 0 .849.474.849 1.558 0 1.111-.304 1.544-.85 1.544-.51 0-.834-.453-.834-1.544 0-1.105.323-1.558.835-1.558zm3.72 3.262h-1.521v-.218l.31-.044v-2.884l-.31-.045v-.242h1.21v.478c.375-.3.74-.543 1.248-.543.678 0 .981.396.981 1.173v2.066l.31.041v.218h-1.513v-.218l.303-.044v-1.954c0-.542-.2-.784-.613-.784-.191 0-.495.133-.716.287v2.45l.31.045v.218zM7.738 10.07a.487.487 0 0 1 .975 0 .487.487 0 0 1-.488.485.485.485 0 0 1-.487-.485z\"},\"child\":[]}]})(props);\n};\nexport function SiHiltonhotelsandresorts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.1968 3.6956C4.749 3.6956 0 7.8018 0 12.1897c0 2.2672 1.2753 4.1769 2.8798 5.5006l.122-.083C1.7288 16.5531.5798 14.9.5798 12.6365.9163 7.836 6.8255 5.1298 12.0763 5.1298c3.7177 0 10.3932.8607 10.3932 7.0862 0 3.2484-3.4645 7.4727-10.7367 7.4727-3.7243 0-6.618-1.9984-6.618-4.87 0-2.4873 1.943-4.2578 4.8414-4.2578.7985 0 1.5469.1868 2.1176.3423-1.2086-.218-3.085.093-4.0559.8572v4.2045h3.5612v-4.7796a4.3988 4.3988 0 0 1 1.5513.5977v4.182h.9277c-.7295.8196-2.0877 1.3186-3.2642 1.135v.176c3.3839.2666 4.8157-1.341 4.8157-3.1501 0-2.1283-1.9933-3.3782-4.0305-3.634V7.3488H8.0178v3.1805c-2.3045.465-4.5605 1.8371-4.5605 4.1097 0 3.4981 4.88 5.6654 9.1253 5.6654C19.035 20.3044 24 17.1786 24 12.7934c0-5.3088-7.1681-9.0978-12.8032-9.0978m4.9079 10.5528c0-1.5458-1.0548-2.7842-2.9744-3.3821V7.3488h3.5568v8.6161H15.575c.391-.552.5297-1.1783.5297-1.7165\"},\"child\":[]}]})(props);\n};\nexport function SiHitachi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.787 11.41h-1.026a.852.852 0 00-.052-.284.714.714 0 00-.459-.427 1.417 1.417 0 00-.913.019.89.89 0 00-.535.542 2.318 2.318 0 00-.04 1.425.88.88 0 00.535.584 1.492 1.492 0 00.977.027.705.705 0 00.428-.384.976.976 0 00.08-.396h1.031a2.198 2.198 0 01-.049.351c-.09.365-.346.672-.684.814a3.254 3.254 0 01-2.251.104c-.477-.15-.89-.493-1.054-.96a2.375 2.375 0 01-.133-.788c0-.388.068-.764.254-1.077.192-.321.486-.569.842-.701a3.062 3.062 0 012.318.063 1.2 1.2 0 01.698.853c.017.076.028.156.033.235zm-3.979 2.436H12.72l-.32-.793h-1.834c-.001.001-.315.794-.319.793h-1.09l1.727-3.693c0 .002 1.199 0 1.199 0l1.725 3.693zm5.483.001h-.977s.005-3.693 0-3.693h.977v1.477h1.976c0 .005-.002-1.478 0-1.477h.979s.003 3.686 0 3.693h-.979v-1.626c0 .005-1.976 0-1.976 0 .002.007 0 1.624 0 1.626zm-18.312 0H0s.005-3.693 0-3.693h.979s-.002 1.487 0 1.477h1.976c0 .005-.004-1.478 0-1.477h.978s.004 3.686 0 3.693h-.978v-1.626c0 .005-1.976 0-1.976 0 0 .007-.002 1.625 0 1.626zm7.531-.001h-.977v-3.065H6.036s.002-.626 0-.627c.002.001 3.971 0 3.971 0v.627H8.51v3.065zm-3.801-3.692h.977v3.692h-.977v-3.692zm18.312 0H24v3.692h-.979v-3.692zm-11.537.627l-.681 1.68h1.361l-.68-1.68z\"},\"child\":[]}]})(props);\n};\nexport function SiHiveBlockchain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.076 1.637a.103.103 0 00-.09.05L.014 11.95a.102.102 0 000 .104l6.039 10.26c.04.068.14.068.18 0l5.972-10.262a.102.102 0 00-.002-.104L6.166 1.687a.103.103 0 00-.09-.05zm2.863 0c-.079 0-.13.085-.09.154l5.186 8.967a.105.105 0 00.09.053h3.117c.08 0 .13-.088.09-.157l-5.186-8.966a.104.104 0 00-.09-.051H8.94zm5.891 0a.102.102 0 00-.088.154L20.656 12l-5.914 10.209a.102.102 0 00.088.154h3.123a.1.1 0 00.088-.05l5.945-10.262a.1.1 0 000-.102L18.041 1.688a.1.1 0 00-.088-.051H14.83zm-.79 11.7a.1.1 0 00-.089.052l-5.101 8.82c-.04.069.01.154.09.154h3.117a.104.104 0 00.09-.05l5.1-8.82a.103.103 0 00-.09-.155h-3.118z\"},\"child\":[]}]})(props);\n};\nexport function SiHive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.442 21.355c.55-.19.74-.256.99-.373.342-.152.605-.39.605-.818a.846.846 0 00-.605-.813c-.318-.092-.703.042-.99.122l-5.42 1.46a7.808 7.808 0 01-4.057 0l-5.407-1.46c-.287-.08-.672-.214-.99-.122a.847.847 0 00-.605.813c0 .427.263.666.605.818.25.117.44.184.99.373l5.138 1.79c1.491.52 3.104.52 4.601 0zm-9.263-3.224a7.622 7.622 0 003.636 0l8.01-1.967c.507-.122.709-.165.99-.257.354-.116.605-.415.605-.806a.847.847 0 00-.605-.813c-.281-.08-.697.024-.99.08l-8.664 1.545a6.813 6.813 0 01-2.334 0l-8.652-1.545c-.293-.056-.708-.16-.99-.08a.847.847 0 00-.604.813c0 .39.25.69.604.806.282.092.483.135.99.257zM14.75.621a24.43 24.43 0 00-5.511 0L6.495.933c-.294.03-.715.055-.99.14-.28.092-.605.355-.605.807 0 .39.257.702.605.806.281.08.696.074.99.074h11.01c.293 0 .709.006.99-.074a.835.835 0 00.605-.806c0-.452-.324-.715-.605-.807-.275-.085-.697-.11-.99-.14zm6.037 6.767c.3-.019.709-.037.99-.116a.84.84 0 000-1.614c-.281-.085-.69-.073-.99-.073H3.214c-.3 0-.709-.012-.99.073a.84.84 0 000 1.614c.281.079.69.097.99.116l7.808.556c.642.042 1.308.042 1.943 0zm1.62 4.242c.513-.08.708-.104.989-.202.354-.121.605-.409.605-.806a.84.84 0 00-.605-.806c-.28-.086-.69-.019-.99.012l-9.232.929c-.776.079-1.582.079-2.358 0l-9.22-.93c-.3-.03-.715-.097-.99-.011a.84.84 0 00-.605.806c0 .397.25.685.605.806.275.092.476.123.99.202l8.823 1.418c1.038.165 2.12.165 3.158 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiHivemq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12,0C5.38,0,0,5.38,0,12s5.38,12,12,12,12-5.38,12-12S18.62,0,12,0Zm0,1.01c6.06,0,10.99,4.93,10.99,10.99s-4.93,10.99-10.99,10.99S1.01,18.06,1.01,12,5.94,1.01,12,1.0Zm0,.95C6.47,1.97,1.97,6.47,1.97,12s4.5,10.03,10.03,10.03,10.03-4.5,10.03-10.03S17.53,1.97,12,1.97Zm-.9,3.79c.05,0,.1.04.12.09l.23.5c.38-.12.8-.12,1.18,0l.23-.5c.03-.07.12-.11.2-.07.07.03.1.12.07.19l-.21.46v.02c.2.1.39.23.55.39.3.29.49.67.56,1.09.02.11.03.23.03.34,0,.31-.07.62-.21.9,2.77-1.25,5.03-1.6,5.57-.85.48.85-.49,1.92-2.12,3.31l-.04-.04c-.11-.11-.1-.29.01-.4.62-.58,1.98-1.96,1.2-2.36-.87-.44-3.23.17-5.85,1.56,3.73,2.16,6.26,4.74,5.66,5.78-.38.65-1.94.56-3.94-.14l.07-.12c.07-.11.2-.16.33-.12,1.39.42,2.25.62,2.55.17.42-.72-1.7-3.22-4.99-5.12-.08-.05-.17-.1-.25-.14l-.25.14c-3.29,1.9-5.41,4.39-4.99,5.12.3.45,1.16.25,2.55-.17.12-.04.26.01.33.12l.07.12c-2,.71-3.56.79-3.94.14-.6-1.04,1.94-3.62,5.66-5.78-.72-.38-1.47-.72-2.23-1.02-.73-.28-3.08-1.07-3.71-.47-.2.19-.19.54.23,1.12.32.44.78.9,1.07,1.17.11.11.12.28.01.4l-.04.04c-.6-.51-2.83-2.3-2.1-3.32.8-1.12,4.78.52,5.5.85-.48-1.01-.06-2.21.94-2.69l-.02-.04-.2-.45c-.03-.07,0-.16.07-.2.02-.01.05-.02.08-.01Zm.22.96c-.69.32-1.08,1.06-.97,1.82.69-.32,1.08-1.06.97-1.82Zm1.42,0c-.12.75.27,1.49.97,1.82.12-.75-.28-1.49-.97-1.82Zm-.7,4.58c.78.46,1.54.95,2.27,1.49.13.4.2.81.18,1.23h-4.91c-.02-.42.05-.83.18-1.23.73-.53,1.49-1.03,2.27-1.49Zm-2.31,3.57h4.63c-.11.37-.29.72-.52,1.02h-3.58c-.24-.3-.42-.65-.52-1.02Zm1.3,1.88h2.02c-.31.32-.55.61-1.01,1.44-.46-.83-.7-1.12-1.01-1.44Z\"},\"child\":[]}]})(props);\n};\nexport function SiHomarr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.2558 15.698a6.524 6.524 0 0 0 1.2498-3.8483c0-1.8533-.772-3.5259-2.011-4.7162a6.54 6.54 0 0 0-.8325-.6773c-.84-.5765-1.821-.9635-2.8813-1.0955 0 0-.002 0-.002.002L3.03 10.4628H0c.3086 2.3802 2.0065 4.3237 4.2532 4.9916l.4352 1.7718a6.56 6.56 0 0 0 1.5674-1.5277Zm14.714-5.2352 1.2514-5.1001-.002-.002c-1.0603.1315-2.0413.5185-2.8813 1.0955a6.6 6.6 0 0 0-.8326.6773c-1.239 1.1898-2.011 2.8625-2.011 4.7162a6.523 6.523 0 0 0 1.25 3.8483 6.56 6.56 0 0 0 1.5673 1.5277l.4352-1.7718c2.2467-.6684 3.944-2.6114 4.2532-4.9915h-3.0301zm-7.6152 3.5432a.8214.8214 0 0 0 .8216-.8216.8214.8214 0 0 0-.8216-.8217.8214.8214 0 0 0-.8217.8217c0 .454.3677.8216.8217.8216m-2.7087-1.6433a.8214.8214 0 0 0-.8216.8217c0 .454.3676.8216.8216.8216a.8214.8214 0 0 0 .8217-.8216.8214.8214 0 0 0-.8217-.8217m-.5378 2.8977c-1.6731.4019-3.0947 1.3153-4.1307 2.533a7.82 7.82 0 0 0-1.3416 2.252l2.1841.0125 12.4446.0556.002-.003c-1.369-3.6464-5.2739-5.784-9.158-4.8501Zm3.2465-4.9107c.0913 0 .178.0184.26.0462V7.263c0-1.35 1.0985-2.4486 2.4486-2.4486.8589 0 1.6145.4456 2.0517 1.1164.2376-.198.4872-.383.7487-.5518-.6068-.8995-1.6359-1.4925-2.8004-1.4925-1.8617 0-3.3765 1.5149-3.3765 3.3765v3.4326c.1489-.2084.3915-.3454.6674-.3454zM7.9368 4.8144c1.3501 0 2.4486 1.0985 2.4486 2.4486v3.1329c.0824-.0278.1687-.0462.26-.0462.276 0 .5185.137.6679.3459V7.263c0-1.8616-1.5143-3.3765-3.3765-3.3765-1.1645 0-2.193.593-2.8004 1.4925.2615.1687.511.3538.7487.5518.4372-.6708 1.1928-1.1164 2.0517-1.1164\"},\"child\":[]}]})(props);\n};\nexport function SiHomeadvisor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.98 2.442H8.02L0 10.46h2.275l6.882-6.88 6.881 6.881H24l-8.02-8.018m-.492 9.348L9.157 5.459 4.01 10.605v4.987a1.33 1.33 0 0 0 1.329 1.329h6.077l4.637 4.637v-4.637h2.598a1.33 1.33 0 0 0 1.33-1.33V11.79h-4.494Z\"},\"child\":[]}]})(props);\n};\nexport function SiHomeassistant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.939 10.627 13.061.749a1.505 1.505 0 0 0-2.121 0l-9.879 9.878C.478 11.21 0 12.363 0 13.187v9c0 .826.675 1.5 1.5 1.5h9.227l-4.063-4.062a2.034 2.034 0 0 1-.664.113c-1.13 0-2.05-.92-2.05-2.05s.92-2.05 2.05-2.05 2.05.92 2.05 2.05c0 .233-.041.456-.113.665l3.163 3.163V9.928a2.05 2.05 0 0 1-1.15-1.84c0-1.13.92-2.05 2.05-2.05s2.05.92 2.05 2.05a2.05 2.05 0 0 1-1.15 1.84v8.127l3.146-3.146A2.051 2.051 0 0 1 18 12.239c1.13 0 2.05.92 2.05 2.05s-.92 2.05-2.05 2.05c-.25 0-.488-.047-.709-.13L12.9 20.602v3.088h9.6c.825 0 1.5-.675 1.5-1.5v-9c0-.825-.477-1.977-1.061-2.561z\"},\"child\":[]}]})(props);\n};\nexport function SiHomeassistantcommunitystore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.63.47a.393.393 0 0 0-.39.39v2.417c0 .212.177.39.39.39h20.74c.213 0 .39-.178.39-.39V.859a.393.393 0 0 0-.39-.39zm-.045 4.126a.41.41 0 0 0-.407.337l-1.17 6.314C0 11.274 0 11.3 0 11.327v2.117c0 .23.186.416.416.416h23.168c.23 0 .416-.186.416-.416v-2.126c0-.027 0-.053-.009-.08l-1.169-6.305a.41.41 0 0 0-.407-.337zM1.7 14.781a.457.457 0 0 0-.46.46v7.829c0 .257.203.46.46.46h14.108c.257 0 .46-.203.46-.46v-6.589c0-.257.204-.46.461-.46h4.02c.258 0 .461.203.461.46v6.589c0 .257.204.46.46.46h.62a.456.456 0 0 0 .461-.46v-7.829a.458.458 0 0 0-.46-.46zm1.842 1.55h7.847c.212 0 .39.177.39.39V21.6c0 .212-.178.39-.39.39H3.542a.393.393 0 0 1-.39-.39v-4.88c0-.221.178-.39.39-.39Z\"},\"child\":[]}]})(props);\n};\nexport function SiHomebrew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.938 0a.214.214 0 0 0-.206.156c-.316 1.104.179 2.15.838 2.935.153.181.313.347.476.501a2.039 2.039 0 0 0-.665.02c-1.184.233-2.193.985-2.74 2.532a3.893 3.893 0 0 0-.2 1.466 1.565 1.565 0 0 0-1.156 1.504 1.59 1.59 0 0 0 1.227 1.541l.026 12.046c0 .195.1.377.264.482a.214.214 0 0 0 .008.005c.537.31 2.047.812 5.21.812 3.238 0 4.7-.678 5.181-1.04a.214.214 0 0 0 .008-.007.571.571 0 0 0 .206-.439c.002-.344.002-1.136.002-1.604a.143.143 0 0 1 .147-.144c.397.006.869.006 1.318.005a1.826 1.826 0 0 0 1.832-1.825v-5.804a1.826 1.826 0 0 0-1.825-1.826H16.56a.14.14 0 0 1-.143-.144V10.6h.007v-.001a1.573 1.573 0 0 0 1.356-1.556c0-.816-.627-1.489-1.424-1.563-.025-1.438-.437-2.126-.736-2.58a.214.214 0 0 0-.005-.007c-.364-.51-1.193-1.282-2.275-1.316-.503-.016-.842.124-1.125.254-.217.1-.42.177-.67.22.002-1.286.945-1.981.945-1.981a.214.214 0 0 0 .05-.298s-.087-.122-.21-.26c-.121-.136-.269-.294-.47-.378a.214.214 0 0 0-.079-.017.214.214 0 0 0-.145.055 4.308 4.308 0 0 0-.875 1.101 3.42 3.42 0 0 0-.133.273 3.497 3.497 0 0 0-.381-.846C9.794.978 9.063.436 8.017.016A.214.214 0 0 0 7.939 0zm.156.524c.85.378 1.43.83 1.79 1.403.274.438.426.962.484 1.584a3.07 3.07 0 0 0-.012.462 6.897 6.897 0 0 1-.168-.052 5.487 5.487 0 0 1-1.29-1.106c-.551-.657-.935-1.46-.804-2.291zM11.8 1.618c.07.054.141.101.212.18.034.039.032.04.058.073-.332.308-1.07 1.144-.952 2.453a.214.214 0 0 0 .222.195c.469-.017.782-.172 1.056-.299.273-.126.508-.228.931-.214.875.027 1.639.715 1.939 1.134.295.449.65 1 .663 2.36a1.66 1.66 0 0 0-.41.142 1.938 1.938 0 0 0-1.77-1.16 1.94 1.94 0 0 0-1.87 1.448 1.783 1.783 0 0 0-1.356-.64c-.484 0-.91.205-1.233.517a1.873 1.873 0 0 0-1.85-1.625c-.649 0-1.218.335-1.552.84a3.1 3.1 0 0 1 .157-.735c.51-1.437 1.355-2.045 2.42-2.254.367-.073.664-.011.99.095.325.106.671.262 1.094.342a.214.214 0 0 0 .252-.245c-.112-.67.073-1.266.336-1.744a3.71 3.71 0 0 1 .663-.863zM7.44 6.611a1.442 1.442 0 0 1 1.363 1.925.214.214 0 0 0 .168.283h.005a.214.214 0 0 0 .238-.146 1.373 1.373 0 0 1 2.613-.01.214.214 0 0 0 .417-.09 1.509 1.509 0 0 1 1.504-1.664c.678 0 1.249.445 1.442 1.056a.214.214 0 0 0 .259.143l.15-.04a.214.214 0 0 0 .051-.02 1.139 1.139 0 0 1 1.702.995 1.14 1.14 0 0 1-.985 1.131.214.214 0 0 0-.001 0 2.215 2.215 0 0 0-.485.126 10.65 10.65 0 0 1-1.176.365.214.214 0 0 0-.162.186 1.276 1.276 0 0 1-.146.478 2.07 2.07 0 0 0-.239 1.111l.001.151a.438.438 0 0 1-.16.36.665.665 0 0 1-.43.14.586.586 0 0 1-.588-.59.803.803 0 0 0-.38-.681.214.214 0 0 0-.002-.002c-.24-.145-.43-.37-.532-.636a.214.214 0 0 0-.207-.138 19.469 19.469 0 0 1-5.37-.6l-.003-.002a9.007 9.007 0 0 0-.838-.194h.003a1.16 1.16 0 0 1-.937-1.134c0-.619.488-1.118 1.101-1.14a.214.214 0 0 0 .204-.176 1.443 1.443 0 0 1 1.42-1.187zm8.549 4.106v.455c0 .314.259.573.572.573h1.329a1.397 1.397 0 0 1 1.397 1.397v5.804a1.396 1.396 0 0 1-1.402 1.396.214.214 0 0 0-.002 0c-.448.002-.918 0-1.31-.005a.573.573 0 0 0-.584.573c0 .468 0 1.262-.002 1.603a.214.214 0 0 0 0 .001c0 .042-.019.08-.05.107-.346.26-1.75.95-4.915.95-3.107 0-4.587-.52-4.99-.752a.143.143 0 0 1-.065-.118l-.025-11.955c.145.033.288.07.431.11a.214.214 0 0 0 .003 0c.115.031.246.064.383.097v10.37c0 .129.069.247.18.31.453.217 1.767.732 4.071.732 2.32 0 3.595-.626 4.022-.884a.357.357 0 0 0 .164-.3l.001-10.21c.267-.075.531-.158.792-.254zm-7.99.894a.493.493 0 0 1 .494.493v8.578a.493.493 0 0 1-.493.493.493.493 0 0 1-.494-.493v-8.578A.493.493 0 0 1 8 11.611zm8.652 1.14a.663.663 0 0 0-.662.662v5.208a.663.663 0 0 0 .662.662h1.14a.663.663 0 0 0 .662-.662v-5.209a.663.663 0 0 0-.662-.662zm0 .428h1.14a.233.233 0 0 1 .233.233v5.21a.233.233 0 0 1-.233.232h-1.14a.233.233 0 0 1-.233-.233v-5.209a.233.233 0 0 1 .233-.233z\"},\"child\":[]}]})(props);\n};\nexport function SiHomebridge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm8.116 12.262a.74.74 0 0 1-.741-.74c0-.008.005-.016.005-.025l-1.46-1.46a1.31 1.31 0 0 1-.38-.917V5.731a.285.285 0 0 0-.284-.283h-.915a.284.284 0 0 0-.284.283v2.413L12.17 4.383a.284.284 0 0 0-.4.003L4.438 11.72a.283.283 0 0 0 0 .4l.696.697a.286.286 0 0 0 .4 0l5.635-5.552a1.302 1.302 0 0 1 1.83.008l5.525 5.525a1.3 1.3 0 0 1 0 1.836l-.679.68a1.305 1.305 0 0 1-1.824.012l-3.876-3.766a.283.283 0 0 0-.4.004l-3.723 3.74a.285.285 0 0 0 0 .4l.687.69a.283.283 0 0 0 .4 0l2.013-1.986a1.302 1.302 0 0 1 1.824 0l1.994 1.96.007.007a1.299 1.299 0 0 1 0 1.837l-1.985 1.984v.013a.74.74 0 1 1-.74-.741c.009 0 .016.005.025.005l1.975-1.98a.284.284 0 0 0 .084-.201.28.28 0 0 0-.085-.2l-1.995-1.96a.285.285 0 0 0-.4 0l-2.006 1.98a1.3 1.3 0 0 1-1.83-.004l-.69-.689a1.301 1.301 0 0 1 0-1.834l3.72-3.74a1.303 1.303 0 0 1 1.826-.016l3.879 3.758a.285.285 0 0 0 .4 0l.679-.679a.285.285 0 0 0 0-.4L12.28 7.986a.284.284 0 0 0-.4 0l-5.637 5.555a1.301 1.301 0 0 1-1.829-.008l-.698-.694-.002-.003a1.296 1.296 0 0 1 .002-1.834l7.334-7.334a1.305 1.305 0 0 1 1.821-.015l2.166 2.097v-.019a1.3 1.3 0 0 1 1.299-1.298h.916a1.3 1.3 0 0 1 1.298 1.298v3.384a.282.282 0 0 0 .083.2l1.467 1.467h.014a.74.74 0 0 1 .001 1.48z\"},\"child\":[]}]})(props);\n};\nexport function SiHomepage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.992.034C1.217.166.602.841.416 1.769.388 1.901.36 21.858.388 23.895c0 .181 0 .181.923-.593.497-.416 1.328-1.128 1.801-1.516.34-.28.626-.543.637-.576.011-.039.022-1.148.017-2.466L3.76 16.35h1.516c.829 0 1.52.022 1.537.044.017.021.028.538.022 1.142 0 .61.011 1.104.022 1.104.017 0 .643-.522.725-.604.017-.017.401-.335.851-.714.923-.77.917-.764 1.373-1.148.28-.236.34-.264.412-.203.072.066 2.878 2.421 3.592 3.02a1239.37 1239.37 0 0 1 3.932 3.306c.003.003 2.02 1.74 2.076 1.702.021-.01.038-3.333.038-7.38-.006-6.574.005-7.365.082-7.381.044-.011.895-.017 1.884-.017h1.801l-.022-3.761c-.005-2.07-.033-3.817-.05-3.877-.142-.495-.51-1.022-.883-1.28-.473-.318.164-.302-10.566-.302-5.442-.005-9.99.011-10.11.033Z\"},\"child\":[]}]})(props);\n};\nexport function SiHomify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.383 10.561a1.727 1.727 0 0 1 0 .055l-.004.048c-.088 2.33-.057 11.357-.057 11.823.002 1.078-.826 1.943-1.596 1.283l-6.98-5.53a373.72 373.72 0 0 1-4.742 4.925c-.977.946-1.786-1.327-1.045-1.808.066-.042 2.223-1.95 4.61-4.05L5.4 13.214c-.446-.356-.618-.946-.363-1.261a.46.46 0 0 1 .328-.127.47.47 0 0 1 .164.037c1.596.722 3.962 2.492 6.314 4.329 2.45-2.15 4.805-4.191 5.116-4.364.38-.214.48.354.354.516-.131.166-2.169 2.326-4.408 4.678 2.204 1.732 4.294 3.389 5.614 4.137l.217-10.62c-.17-.206-5.332-7.163-5.892-7.746-.892.78-5.566 6.112-5.802 6.342 1.067.11 5.597.382 8.452.684.721.07 1.2.606-.346.59l-11.105-.015a.44.44 0 0 1-.394-.267.415.415 0 0 1 .094-.457C3.8 9.613 11.782.748 12.454.184A.702.702 0 0 1 12.935 0a.732.732 0 0 1 .483.227c.083.077 4.292 5.94 6.344 8.802.492.678.617 1.137.621 1.5z\"},\"child\":[]}]})(props);\n};\nexport function SiHonda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.902 6.87c-.33-3.218-2.47-3.895-4.354-4.204-.946-.16-2.63-.3-3.716-.34-.946-.06-3.168-.09-3.835-.09-.657 0-2.89.03-3.835.09-1.076.04-2.77.18-3.716.34C2.563 2.985.42 3.66.092 6.87c-.08.877-.1 2.023-.09 3.248.03 2.031.2 3.406.3 4.363.07.657.338 2.62.687 3.636.478 1.395.916 1.803 1.424 2.222.937.757 2.471.996 2.79 1.056 1.733.31 5.24.368 6.784.368 1.544 0 5.05-.05 6.784-.368.329-.06 1.863-.29 2.79-1.056.508-.419.946-.827 1.424-2.222.35-1.016.628-2.979.698-3.636.1-.957.279-2.332.299-4.363.04-1.225.01-2.371-.08-3.248m-1.176 5.4c-.19 2.57-.418 4.104-.747 5.22-.29.976-.637 1.623-1.165 2.092-.867.787-2.063.956-2.76 1.056-1.514.23-4.055.3-6.057.3-2.002 0-4.543-.08-6.057-.3-.697-.1-1.893-.269-2.76-1.056-.518-.469-.876-1.126-1.155-2.093-.329-1.105-.558-2.65-.747-5.22-.11-1.543-.09-4.054.08-5.4.258-2.011 1.255-3.018 3.387-3.396.996-.18 2.34-.31 3.606-.37 1.016-.07 2.7-.1 3.636-.09.936-.01 2.62.03 3.636.09 1.275.06 2.61.19 3.606.37 2.142.378 3.139 1.395 3.388 3.397.199 1.345.229 3.856.11 5.4m-5.202-8.39c-.548 2.462-.767 3.588-1.216 5.37-.428 1.715-.767 3.298-1.335 4.065-.587.777-1.365.947-1.893 1.006-.279.03-.478.04-1.066.05-.596 0-.796-.02-1.075-.05-.528-.06-1.315-.229-1.892-1.006-.578-.767-.907-2.35-1.335-4.064-.47-1.773-.678-2.91-1.236-5.37 0 0-.548.02-.797.04-.329.02-.588.05-.867.09.343 5.372.692 11.079 1.126 16.13a21.983 21.983 0 002.39.169c.33-1.266.748-3.02 1.207-3.767.378-.608.966-.677 1.295-.717.518-.07.956-.08 1.165-.08.2-.01.637 0 1.165.08.33.05.917.11 1.295.717.47.747.877 2.5 1.206 3.766 0 0 .358-.01 1.165-.05.41-.018.82-.058 1.226-.12.458-5.39.785-10.728 1.126-16.128-.28-.04-.538-.07-.867-.09-.23-.02-.787-.04-.787-.04z\"},\"child\":[]}]})(props);\n};\nexport function SiHoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.416 5.59c.04-.994.254-2.312.909-3.091.922-1.09 2.794-.914 3.102.658.146.767-.054 1.708-.402 2.367-.734 1.439-2.1 2.622-3.636 3.026.013-.901 0-2.071.027-2.96zm12.54 13.904c-.775.901-1.764 1.6-2.714 1.56-1.07-.04-.963-1.372-.963-2.124v-3.16c.014-.605.014-1.21-.053-1.802-.174-1.761-1.204-3.173-3.142-3.307-3.37-.135-4.706 3.132-5.695 5.821v-5.89c2.94-.456 7.02-2.11 7.14-5.875.2-6.4-10.563-6.629-10.523 1.426.014.618.014 1.802.014 2.42-1.445-.215-2.608-2.34-3.143-3.604a.35.35 0 0 0-.427-.215C.43 5.27.137 7.407 1.5 8.86c1.124 1.197 2.915 1.654 4.493 1.735-.013 4.664-.013 7.542-.013 12.194.067.66.962.835 1.484.848.588.013 1.684-.16 1.738-.928.187-2.286 2.125-9.036 4.76-9.036.613 0 .908.403.908.995v5.5c0 2.286 1.284 3.818 3.623 3.832 2.073 0 3.891-1.72 4.8-3.698.281-.632-.922-1.278-1.337-.807z\"},\"child\":[]}]})(props);\n};\nexport function SiHoneybadger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 0c-.346 0-.691.131-.955.395L.394 11.045a1.35 1.35 0 0 0 0 1.91l6.243 6.24.915-1.95L2.306 12l9.693-9.693 1.158 1.157 1.432-1.432L12.954.395A1.346 1.346 0 0 0 11.999 0Zm5.54 1.106a.331.331 0 0 0-.218.102l-1.777 1.778-1.432 1.432-8.393 8.392h4.726l-3.76 9.26c-.139.34.29.626.55.366l1.321-1.32v-.001l1.432-1.432h.001l8.56-8.561h-4.727l2.083-4.91v.001l.854-2.012 1.112-2.623c.108-.256-.108-.485-.333-.472Zm.25 4.125-.853 2.012 4.756 4.756L12 21.693l-1.056-1.055-1.432 1.432 1.533 1.534a1.35 1.35 0 0 0 1.91 0l10.65-10.65a1.35 1.35 0 0 0 0-1.91z\"},\"child\":[]}]})(props);\n};\nexport function SiHoneygain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.721 3.048a1.352 1.352 0 0 0-1.38 1.56 6.38 6.38 0 0 0-1.864 3.2l-.77-.001c-.63 0-1.35.003-2.12.016l-7.965-.028A4.394 4.394 0 0 0 3.4 16.463l.002.002-2.096 3.543 4.343-1.48c2.612 1.705 6.279 2.425 10.278 2.425a6.572 6.572 0 0 0 3.058-12.39 4.972 4.972 0 0 1 2.552-1.16 1.352 1.352 0 1 0-.096-1.377c-1.47.188-2.787.861-3.881 1.987-.22-.056-.443-.1-.67-.134a4.937 4.937 0 0 1 1.331-2.208 1.352 1.352 0 1 0 .5-2.623ZM4.391 9.167c.053 0 .106 0 .16.004l.033.001h.033l7.936.028-6.08 5.168-.021.018-.02.018a3.002 3.002 0 0 1-2.195.793 3.02 3.02 0 0 1-2.856-3.17 3.014 3.014 0 0 1 3.01-2.86Zm10.553.017h.455l.528.001a5.201 5.201 0 0 1 5.196 5.196 5.2 5.2 0 0 1-5.196 5.195c-.354 0-.701-.007-1.043-.018-1.779-1.578-2.676-3.269-2.665-5.026.021-3.025 2.698-5.325 2.725-5.348zm-3.628 2.875a7.142 7.142 0 0 0-.474 2.463c-.011 1.722.65 3.36 1.963 4.889a20.2 20.2 0 0 1-2.575-.45c-1.076-1.835-1.427-3.545-1.045-5.091Zm-3.659 3.11c.008 1.037.254 2.112.736 3.218-1.252-.488-2.297-1.124-3.118-1.898a4.393 4.393 0 0 0 2.089-1.071Zm9.237-4.08a1.7 1.7 0 1 0 0 3.4 1.7 1.7 0 0 0 0-3.4zm-.431.723a.545.545 0 0 1 .521.708.535.535 0 0 1-.309.341.538.538 0 0 1-.322.032.535.535 0 0 1-.311-.188.552.552 0 0 1-.122-.403.563.563 0 0 1 .09-.25.549.549 0 0 1 .453-.24z\"},\"child\":[]}]})(props);\n};\nexport function SiHono (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.445.002a45.529 45.529 0 0 0-5.252 8.146 8.595 8.595 0 0 1-.555-.53 27.796 27.796 0 0 0-1.205-1.542 8.762 8.762 0 0 0-1.251 2.12 20.743 20.743 0 0 0-1.448 5.88 8.867 8.867 0 0 0 .338 3.468c1.312 3.48 3.794 5.593 7.445 6.337 3.055.438 5.755-.333 8.097-2.312 2.677-2.59 3.359-5.634 2.047-9.132a33.287 33.287 0 0 0-2.988-5.59A91.34 91.34 0 0 0 12.615.053a.216.216 0 0 0-.17-.051Zm-.336 3.906a50.93 50.93 0 0 1 4.794 6.552c.448.767.817 1.57 1.108 2.41.606 2.386-.044 4.354-1.951 5.904-1.845 1.298-3.87 1.683-6.072 1.156-2.376-.737-3.75-2.335-4.121-4.794a5.107 5.107 0 0 1 .242-2.266c.358-.908.79-1.774 1.3-2.601l1.446-2.121a397.33 397.33 0 0 0 3.254-4.24Z\"},\"child\":[]}]})(props);\n};\nexport function SiHonor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.601 9.753v1.823H.807V9.753H0v4.498h.807v-1.874h1.794v1.874h.807V9.753h-.807Zm18.671.801h.898c.369 0 .667.297.667.662a.665.665 0 0 1-.667.663h-.898v-1.325Zm-.806-.801v4.498h.806v-2.002l1.68 2.002H24l-1.376-1.64a1.462 1.462 0 0 0-.444-2.858h-1.716.002Zm-7.63-.014v2.807l-1.959-2.807h-.644v4.498h.807v-2.82l1.968 2.82h.633V9.739h-.805Zm-7.532 2.26c0-.832.68-1.506 1.517-1.506A1.51 1.51 0 0 1 8.337 12c0 .832-.679 1.506-1.516 1.506-.403 0-.789-.159-1.073-.441A1.504 1.504 0 0 1 5.304 12v-.001ZM4.497 12c0 .933.566 1.774 1.434 2.132.869.357 1.868.16 2.533-.5.664-.66.863-1.653.503-2.515a2.324 2.324 0 0 0-2.146-1.425 2.316 2.316 0 0 0-2.323 2.307L4.497 12Zm11.04-.001a1.513 1.513 0 0 1 1.518-1.506c.838 0 1.516.675 1.516 1.507a1.513 1.513 0 0 1-1.518 1.506c-.402 0-.788-.159-1.072-.441a1.5 1.5 0 0 1-.444-1.066ZM14.73 12c0 .933.566 1.774 1.434 2.132.868.357 1.868.16 2.532-.5.665-.66.864-1.653.504-2.515a2.325 2.325 0 0 0-2.147-1.425 2.316 2.316 0 0 0-2.323 2.307V12Z\"},\"child\":[]}]})(props);\n};\nexport function SiHootsuite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.417 11.14c.505.75.28 1.572-.38 2.017-.66.444-1.505.343-2.01-.407-.506-.75-.282-1.572.378-2.017.66-.444 1.506-.343 2.012.407zm5.017-.274c-.66.444-.884 1.266-.379 2.016.506.75 1.352.852 2.012.407.66-.444.884-1.266.379-2.016-.506-.75-1.352-.852-2.012-.407zm7.422-7.086L19.03 6.638l.236.272c2.224 2.613 3.591 6.409 4.247 8.606a4.362 4.362 0 0 1-.638 3.8C21.449 21.295 18.398 24 12.369 24c-6.58 0-10-3.25-11.644-5.251a3.117 3.117 0 0 1-.51-3.067c.909-2.444 2.766-7.126 4.257-8.825a13.158 13.158 0 0 1 2.897-2.478L2.4.534c-.27-.208-.034-.632.285-.513l8.077 3.006c.38-.066.758-.1 1.13-.1 1.407 0 2.737.307 4.074 1.084l7.744-.695c.266-.024.378.331.147.464zm-8.218 13.656a4.126 4.126 0 0 1-3.316-.232c-.073-.037-.143.055-.087.115.457.49 1.273 1.35 1.766 1.775.102.088.259.077.35-.023l1.369-1.512c.053-.059-.008-.15-.082-.123zm.24-1.156-1.796-2.018a.34.34 0 0 0-.513.008l-1.44 1.716a.18.18 0 0 0 .031.262c.333.239 1.148.76 1.942.76.734 0 1.402-.285 1.724-.447a.18.18 0 0 0 .052-.281zm1.616-8.409c-.3-.034-.603.035-.862.188l-1.808 1.07c-.45.268-1.02.231-1.432-.091L11.819 7.82a4.669 4.669 0 0 0-1.776-.858c-2.698-.638-4.532.78-5.914 3.44-1.32 2.539-.583 6.184 2.672 7.05 3.438.914 5.71-2.903 6.618-4.175a.439.439 0 0 1 .712-.002c1.408 1.916 3.306 3.968 5.34 3.557 2.656-.535 2.342-3.905 1.512-5.7-.735-1.588-1.83-3.074-3.49-3.262z\"},\"child\":[]}]})(props);\n};\nexport function SiHoppscotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.632 4.746a8.894 8.894 0 0 1 5.29 7.938c1.867 1.47 3.723 3.527 2.86 5.465-.968 2.174-4.415 2.085-8.334.985A7.113 7.113 0 0 1 5.063 14.51C1.623 12.334-.75 9.832.218 7.658c.863-1.939 3.634-1.936 5.975-1.532a8.894 8.894 0 0 1 9.439-1.38ZM1.862 8.39c-.47 1.056 2.056 4.054 8.972 7.133 6.916 3.08 10.834 2.95 11.304 1.894.39-.874-1.212-2.554-3.046-3.856-1.426-1.02-3.38-2.143-5.929-3.278-.694-.309-.964-1.133-.673-1.788.292-.655.933-1.093 2.282-1.156.635-.002.718-.178.747-.329.036-.233-.287-.47-.62-.618-2.647-1.179-5.888-.685-8.134 1.68-2.195-.491-4.514-.556-4.903.318Zm11.083 5.666c-.24.54-.98.735-1.651.436s-1.02-.979-.78-1.518c.24-.54.979-.735 1.65-.436.671.299 1.021.979.78 1.518zm4.02 2.327c.703.202 1.404-.093 1.566-.658.162-.564-.276-1.186-.98-1.387-.702-.202-1.403.093-1.565.658-.162.564.276 1.186.98 1.387zM7.218 9.737c.62.388.87 1.106.559 1.604-.311.498-1.066.588-1.686.2-.62-.387-.87-1.105-.56-1.604.312-.498 1.067-.588 1.687-.2Z\"},\"child\":[]}]})(props);\n};\nexport function SiHostinger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.415 0v7.16l5.785 3.384V2.949L16.415 0ZM1.8 0v11.237h18.815L14.89 8.09l-7.457-.003V3.024L1.8 0Zm14.615 20.894v-5.019l-7.514-.005c.007.033-5.82-3.197-5.82-3.197l19.119.091V24l-5.785-3.106ZM1.8 13.551v7.343l5.633 2.949v-6.988L1.8 13.551Z\"},\"child\":[]}]})(props);\n};\nexport function SiHotelsdotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.064 0H4.936a4.937 4.937 0 0 0-4.93 4.93V19.06A4.94 4.94 0 0 0 4.935 24h14.128a4.926 4.926 0 0 0 4.93-4.941V4.93A4.93 4.93 0 0 0 19.065 0zM8.55 10.63v2.329a.32.32 0 0 1-.337.337H5.884a.32.32 0 0 1-.337-.337V10.63c0-.2.137-.337.337-.337h2.34c.2 0 .336.137.336.337h-.01zm5.162 7.491a.32.32 0 0 1-.337.337h-2.328a.32.32 0 0 1-.337-.337v-2.328c0-.2.136-.337.337-.337h2.328c.19 0 .337.136.337.337v2.328zm0-5.162a.32.32 0 0 1-.337.337h-2.328a.32.32 0 0 1-.337-.337V10.63c0-.2.136-.337.337-.337h2.328c.2 0 .337.137.337.337v2.329zm5.974 4.372a.654.654 0 0 1-.22.516l-2.308 2.297c-.18.168-.432.052-.432-.2V7.28H4.062c-.253 0-.369-.264-.2-.432L6.169 4.55c.137-.147.274-.232.506-.232h11.473c.854 0 1.538.685 1.538 1.539V17.33z\"},\"child\":[]}]})(props);\n};\nexport function SiHotjar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.119 9.814C12.899 8.27 16.704 6.155 16.704 0h-4.609c0 3.444-1.676 4.375-4.214 5.786C5.1 7.33 1.295 9.444 1.295 15.6h4.61c0-3.444 1.676-4.376 4.214-5.786zM18.096 8.4c0 3.444-1.677 4.376-4.215 5.785-2.778 1.544-6.585 3.66-6.585 9.815h4.609c0-3.444 1.676-4.376 4.214-5.786 2.78-1.544 6.586-3.658 6.586-9.814h-4.609z\"},\"child\":[]}]})(props);\n};\nexport function SiHotwire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.764 6.917-3.48.81L16.32 0 7.236 11.705l4.334-.854-4.087 7.982 2.364-.532L7.456 24l7.51-8.111-2.77.64 4.568-9.612z\"},\"child\":[]}]})(props);\n};\nexport function SiHoudini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 19.635V24h3.824A8.662 8.662 0 0 1 0 19.635zm16.042-4.555c0-4.037-3.253-7.92-8.111-8.089C4.483 6.873 1.801 8.136 0 10.005v4.209c1.224-3.549 4.595-5.158 7.419-5.128 3.531.041 6.251 2.703 6.275 5.72 0 2.878-1.183 4.992-4.436 5.516-1.774.296-4.548-.754-4.436-3.434.065-1.381 1.138-2.162 2.366-2.106-1.207 1.618.39 2.801 1.52 2.561a2.51 2.51 0 0 0 1.966-2.502c0-1.017-.958-2.662-3.333-2.6-2.936.068-4.785 2.183-4.85 4.797-.071 3.28 3.007 5.457 6.174 5.483 4.633.059 7.395-2.984 7.377-7.441zM0 0v6.906a12.855 12.855 0 0 1 7.931-2.609c6.801 0 11.134 4.762 11.131 10.765 0 4.17-1.946 7.308-4.995 8.938H24V0H0z\"},\"child\":[]}]})(props);\n};\nexport function SiHouzz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.27 0V24H9.32V16.44H14.68V24H22.73V10.37L6.61 5.75V0H1.27Z\"},\"child\":[]}]})(props);\n};\nexport function SiHp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0069 24h-.3572l2.459-6.7453h3.3796c.5907 0 1.2364-.4533 1.4424-1.0166l2.6652-7.3085c.4396-1.1952-.2473-2.1706-1.525-2.1706h-4.6983l-3.929 10.798-2.2255 6.127C3.929 22.434 0 17.6806 0 12.007 0 6.498 3.7092 1.8546 8.7647.4396L6.4705 6.759 2.6514 17.2547h2.5415L8.4488 8.339h1.9095l-3.2558 8.9158H9.644l3.0223-8.3251c.4396-1.1952-.2473-2.1706-1.525-2.1706h-2.143l2.459-6.7453C11.636 0 11.8145 0 11.9931 0 18.6285 0 24 5.3715 24 12.007c.0137 6.6216-5.3578 11.993-11.9931 11.993zM19.2742 8.325h-1.9096l-2.6789 7.336h1.9096l2.6789-7.336z\"},\"child\":[]}]})(props);\n};\nexport function SiHsbc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m24 12.007-5.996 5.997V5.996L24 12.007zm-5.996-6.01H6.01l5.996 6.01 5.997-6.01zM0 12.006l6.01 5.997V5.996L0 12.007zm6.01 5.997h11.994l-5.997-5.997-5.996 5.997z\"},\"child\":[]}]})(props);\n};\nexport function SiHtc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 14.75h-2.8c-.7-.05-1.15-.5-1.2-1.15v-1.15c.05-.65.6-1.25 1.2-1.25H24V9.95h-4.85c-.65.05-1.25.25-1.7.7-.4.4-.65 1.1-.7 1.75 0 .35-.05.85 0 1.15.05.75.3 1.3.7 1.7.4.45 1.05.7 1.7.7H24V14.7c0 .05-1.3.05-2 .05M8.5 10v1.25h2.95v4.7h1.25v-4.7h2.95V10Zm-1.3 2.35c0-.65-.25-1.25-.7-1.7-.5-.5-1.2-.7-1.7-.7H2.35c-.55 0-.95.2-1.15.35V8H0v8h1.25v-3.6c.05-.65.55-1.15 1.15-1.2.5-.05 1.95-.05 2.4 0 .65.05 1.1.55 1.15 1.2V16H7.2z\"},\"child\":[]}]})(props);\n};\nexport function SiHtcvive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.225 19.046a14.3 14.3 0 0 1-4.222.642 14.3 14.3 0 0 1-4.223-.642c-1.56-.505-2.525-2.066-2.203-3.672.596-2.938 2.111-5.508 4.268-7.482a3.19 3.19 0 0 1 4.36 0c2.112 1.928 3.627 4.544 4.27 7.482.275 1.606-.643 3.213-2.25 3.672m7.574-1.47L14.894 2.2a1.49 1.49 0 0 0-1.33-.78h-3.076a1.49 1.49 0 0 0-1.331.78L.207 17.577c-.276.505-.276 1.101 0 1.56l1.56 2.663c.276.504.78.78 1.331.78h17.763c.551 0 1.056-.276 1.331-.78l1.561-2.663c.321-.505.321-1.101.046-1.56\"},\"child\":[]}]})(props);\n};\nexport function SiHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.5 0h21l-1.91 21.563L11.977 24l-8.564-2.438L1.5 0zm7.031 9.75l-.232-2.718 10.059.003.23-2.622L5.412 4.41l.698 8.01h9.126l-.326 3.426-2.91.804-2.955-.81-.188-2.11H6.248l.33 4.171L12 19.351l5.379-1.443.744-8.157H8.531z\"},\"child\":[]}]})(props);\n};\nexport function SiHtmlacademy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L2.524.994v17.368L12 24l9.476-5.638V.994L12.099.01 12 0zm8.236 17.657L12 22.557l-8.236-4.9v-7.119l8.2 4.881.014.885-5.626-3.349-.008.86 5.648 3.394.015.908-5.647-3.36-.008.86L12 19.01l5.703-3.412v-.862l-.008.004v-2.805l2.54-1.517v7.238zm-.006-8.162l-2.254 1.328-1.04.613-4.96-2.951-.009.858 4.24 2.521-.037.023-.092.054-.602.355-3.5-2.083-.009.859 2.763 1.643-.652.436-.015.01-2.088-1.23-.008.858 1.37.807-1.395.837-8.16-4.85 8.172-4.912v.001l8.276 4.823zm.006-.864l-8.28-4.882h-.002l-8.19 4.877V2.11L12 1.246l8.237.864v6.52z\"},\"child\":[]}]})(props);\n};\nexport function SiHtmx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 13.01v-2l7.09-2.98.58 1.94-5.1 2.05 5.16 2.05-.63 1.9Zm16.37 1.03 5.18-2-5.16-2.09.65-1.88L24 10.95v2.12L17 16zm-2.85-9.98H16l-5.47 15.88H8.05Z\"},\"child\":[]}]})(props);\n};\nexport function SiHtop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.928 16.738v7.233h1.414v-7.233H6.928Zm10.912 0v7.233h1.414v-7.233H17.84Zm2.179 0v7.233h1.414v-7.233h-1.414Zm-4.366 0v7.233h1.414v-7.233h-1.414Zm-13.089 0v7.233h1.415v-7.233H2.564Zm2.183 0v7.233h1.414v-7.233H4.747ZM24 16.771l-.02 7.178-2.16-.008v-1.257h.827v-4.745h-.814V16.76l2.167.011Zm-24-.009.02 7.178 2.16-.008v-1.257h-.827v-4.744h.814v-1.18L0 16.762Zm6.928-8.356v7.233h1.414V8.406H6.928Zm2.182 0v7.233h1.414V8.406H9.11Zm2.181 0v7.233h1.414V8.406h-1.414Zm4.362 0v7.233h1.414V8.406h-1.414Zm2.187 0v7.233h1.414V8.406H17.84Zm2.179 0v7.233h1.414V8.406h-1.414Zm-17.455 0v7.233h1.415V8.406H2.564Zm2.183 0v7.233h1.414V8.406H4.747Zm8.726 0v7.233h1.415V8.406h-1.415ZM24 8.433l-.02 7.178-2.16-.008v-1.257h.827V9.601h-.814V8.422L24 8.433ZM0 8.43l.02 7.178 2.16-.008v-1.257h-.827V9.599h.814v-1.18L0 8.43ZM6.928.029v7.233h1.414V.029H6.928Zm8.725 0v7.233h1.414V.029h-1.414Zm4.366 0v7.233h1.414V.029h-1.414Zm-2.179 0v7.233h1.414V.029H17.84Zm-15.276 0v7.233h1.415V.029H2.564Zm2.183 0v7.233h1.414V.029H4.747ZM24 .055l-.02 7.178-2.16-.009V5.967h.827V1.223h-.814V.044L24 .055ZM0 .052.02 7.23l2.16-.008V5.965h-.827V1.221h.814V.041L0 .052Z\"},\"child\":[]}]})(props);\n};\nexport function SiHttpie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.28 0C4.4 0 1.992 2.279 1.933 5.155a5.263 5.263 0 0 0 5.26 5.358h4.223a.306.306 0 0 1 .122.584l-6.47 2.835a5.263 5.263 0 0 0-3.135 4.85C1.953 21.683 4.368 24 7.273 24h2.212c2.922 0 5.357-2.345 5.35-5.267a5.263 5.263 0 0 0-3.29-4.867.303.303 0 0 1-.007-.556l7.402-3.246a5.263 5.263 0 0 0 3.128-4.846C22.047 2.317 19.626.003 16.724.003z\"},\"child\":[]}]})(props);\n};\nexport function SiHuawei (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.67 6.14S1.82 7.91 1.72 9.78v.35c.08 1.51 1.22 2.4 1.22 2.4 1.83 1.79 6.26 4.04 7.3 4.55 0 0 .06.03.1-.01l.02-.04v-.04C7.52 10.8 3.67 6.14 3.67 6.14zM9.65 18.6c-.02-.08-.1-.08-.1-.08l-7.38.26c.8 1.43 2.15 2.53 3.56 2.2.96-.25 3.16-1.78 3.88-2.3.06-.05.04-.09.04-.09zm.08-.78C6.49 15.63.21 12.28.21 12.28c-.15.46-.2.9-.21 1.3v.07c0 1.07.4 1.82.4 1.82.8 1.69 2.34 2.2 2.34 2.2.7.3 1.4.31 1.4.31.12.02 4.4 0 5.54 0 .05 0 .08-.05.08-.05v-.06c0-.03-.03-.05-.03-.05zM9.06 3.19a3.42 3.42 0 00-2.57 3.15v.41c.03.6.16 1.05.16 1.05.66 2.9 3.86 7.65 4.55 8.65.05.05.1.03.1.03a.1.1 0 00.06-.1c1.06-10.6-1.11-13.42-1.11-13.42-.32.02-1.19.23-1.19.23zm8.299 2.27s-.49-1.8-2.44-2.28c0 0-.57-.14-1.17-.22 0 0-2.18 2.81-1.12 13.43.01.07.06.08.06.08.07.03.1-.03.1-.03.72-1.03 3.9-5.76 4.55-8.64 0 0 .36-1.4.02-2.34zm-2.92 13.07s-.07 0-.09.05c0 0-.01.07.03.1.7.51 2.85 2 3.88 2.3 0 0 .16.05.43.06h.14c.69-.02 1.9-.37 3-2.26l-7.4-.25zm7.83-8.41c.14-2.06-1.94-3.97-1.94-3.98 0 0-3.85 4.66-6.67 10.8 0 0-.03.08.02.13l.04.01h.06c1.06-.53 5.46-2.77 7.28-4.54 0 0 1.15-.93 1.21-2.42zm1.52 2.14s-6.28 3.37-9.52 5.55c0 0-.05.04-.03.11 0 0 .03.06.07.06 1.16 0 5.56 0 5.67-.02 0 0 .57-.02 1.27-.29 0 0 1.56-.5 2.37-2.27 0 0 .73-1.45.17-3.14z\"},\"child\":[]}]})(props);\n};\nexport function SiHubspot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.164 7.93V5.084a2.198 2.198 0 001.267-1.978v-.067A2.2 2.2 0 0017.238.845h-.067a2.2 2.2 0 00-2.193 2.193v.067a2.196 2.196 0 001.252 1.973l.013.006v2.852a6.22 6.22 0 00-2.969 1.31l.012-.01-7.828-6.095A2.497 2.497 0 104.3 4.656l-.012.006 7.697 5.991a6.176 6.176 0 00-1.038 3.446c0 1.343.425 2.588 1.147 3.607l-.013-.02-2.342 2.343a1.968 1.968 0 00-.58-.095h-.002a2.033 2.033 0 102.033 2.033 1.978 1.978 0 00-.1-.595l.005.014 2.317-2.317a6.247 6.247 0 104.782-11.134l-.036-.005zm-.964 9.378a3.206 3.206 0 113.215-3.207v.002a3.206 3.206 0 01-3.207 3.207z\"},\"child\":[]}]})(props);\n};\nexport function SiHuggingface (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.4446 11.5059c0 1.1021.1673 2.1585.4847 3.1563-.0378-.0028-.0691-.0058-.1058-.0058-.4209 0-.8015.16-1.0704.4512-.3454.3737-.4984.8335-.4316 1.293a1.576 1.576 0 0 0 .2148.5978c-.2319.1864-.4018.4456-.4844.7578-.0646.2448-.131.7543.2149 1.2794a1.4552 1.4552 0 0 0-.0625.1055c-.208.3923-.2207.8372-.0371 1.25.2783.6258.9696 1.1175 2.3126 1.6467.8356.3292 1.5988.5411 1.6056.543 1.1046.2847 2.104.4277 2.969.4277 1.4173 0 2.4754-.3849 3.1525-1.1446 1.538.2651 2.791.1403 3.592.006.6773.7555 1.7332 1.1387 3.1467 1.1387.8649 0 1.8643-.143 2.969-.4278.0068-.0019.77-.2138 1.6056-.543 1.343-.5292 2.0343-1.0208 2.3126-1.6466.1836-.4129.171-.8577-.037-1.25a1.4685 1.4685 0 0 0-.0626-.1056c.346-.525.2795-1.0346.2149-1.2793-.0826-.3122-.2525-.5714-.4844-.7579.11-.1816.1831-.3788.2148-.5977.0669-.4595-.0862-.9193-.4316-1.293-.2688-.2913-.6495-.4513-1.0704-.4513-.0209 0-.0376.0008-.0588.0018.3162-.9966.4846-2.0518.4846-3.1523 0-5.807-4.7362-10.5144-10.5789-10.5144-5.8426 0-10.5788 4.7073-10.5788 10.5144Zm10.5788-9.4831c5.2727 0 9.5476 4.246 9.5476 9.483a9.4201 9.4201 0 0 1-.2696 2.2365c-.0039-.0047-.0079-.011-.0117-.0156-.274-.3255-.6679-.5059-1.1075-.5059-.352 0-.714.1155-1.0763.3438-.2403.1517-.5058.422-.7793.7598-.2534-.3492-.608-.5832-1.0137-.6465a1.5174 1.5174 0 0 0-.2344-.0176c-.9263 0-1.4828.7993-1.6935 1.5177-.1046.2426-.6065 1.3482-1.3614 2.0978-1.1681 1.1601-1.4458 2.3534-.8396 3.6382-.843.1029-1.5836.0927-2.365-.006.5906-1.212.3626-2.4388-.8426-3.6322-.755-.7496-1.2568-1.8552-1.3614-2.0978-.2107-.7184-.7673-1.5177-1.6935-1.5177-.078 0-.1568.0054-.2344.0176-.4057.0633-.7604.2973-1.0137.6465-.2735-.3379-.539-.6081-.7794-.7598-.3622-.2283-.7243-.3438-1.0762-.3438-.4266 0-.8094.171-1.0821.4786a9.4208 9.4208 0 0 1-.2598-2.1936c0-5.237 4.2749-9.483 9.5475-9.483zM8.6443 7.0036c-.4838.0043-.9503.2667-1.1934.7227-.3536.6633-.1006 1.4873.5645 1.84.351.1862.4883-.5261.836-.6485.3107-.1095.841.399 1.0078.086.3536-.6634.1025-1.4874-.5625-1.84a1.3659 1.3659 0 0 0-.6524-.1602Zm6.8403 0c-.2199-.002-.4426.05-.6504.1602-.665.3526-.9181 1.1766-.5645 1.84.1669.313.6971-.1955 1.0079-.086.3476.1224.4867.8347.838.6485.6649-.3527.916-1.1767.5624-1.84-.243-.456-.7096-.7184-1.1934-.7227Zm-9.7565 1.418a.8768.8768 0 0 0-.877.877c0 .4846.3925.877.877.877a.8768.8768 0 0 0 .877-.877.8768.8768 0 0 0-.877-.877zm12.6434 0c-.4845 0-.879.3925-.879.877 0 .4846.3945.877.879.877a.8768.8768 0 0 0 .877-.877.8768.8768 0 0 0-.877-.877zM8.7927 11.459c-.179-.003-.2793.1107-.2793.416 0 .8097.3874 2.125 1.4279 2.924.207-.7123 1.3453-1.2832 1.5079-1.2012.2315.1167.2191.4417.6074.7266.3884-.285.374-.6098.6056-.7266.1627-.082 1.3009.4889 1.5079 1.2012 1.0404-.799 1.4278-2.1144 1.4278-2.924 0-1.2212-1.583.6402-3.5413.6485-1.4686-.0061-2.7266-1.0558-3.2639-1.0645zM4.312 14.4768c.5792.365 1.6964 2.2751 2.1056 3.0177.1371.2488.371.3536.582.3536.4188 0 .7465-.4138.0391-.9395-1.0636-.791-.6914-2.0846-.1836-2.1642a.4302.4302 0 0 1 .0664-.004c.4616 0 .666.7892.666.7892s.5959 1.4898 1.6213 2.508c.942.9356 1.062 1.703.4961 2.6661-.0164-.004-.0159.0236-.1484.2149-.1853.2673-.4322.4688-.7188.6152-.5062.2269-1.1397.2696-1.7833.2696-1.037 0-2.1017-.1824-2.6975-.336-.0293-.0075-3.6505-.9567-3.1916-1.8224.0771-.1454.2033-.2031.3633-.2031.6463 0 1.823.9551 2.3283.9551.113 0 .196-.0865.2285-.2031.2249-.8045-3.2787-1.0522-2.9846-2.1642.0519-.1967.193-.2757.3907-.2754.854 0 2.7704 1.4923 3.172 1.4923.0307 0 .0525-.0085.0645-.0274.2012-.3227.1096-.5865-1.3087-1.4395-1.4182-.8533-2.4315-1.329-1.8653-1.9416.0651-.0707.1574-.1015.2695-.1015.8611.0002 2.8948 1.84 2.8948 1.84s.5487.5683.8809.5683c.0762 0 .1416-.0315.1855-.1054.2355-.3946-2.1858-2.2183-2.3224-2.971-.0926-.51.0641-.7676.3555-.7676-.0006.008.1701-.0285.4942.1759zm16.2257.5918c-.1366.7526-2.5579 2.5764-2.3224 2.9709.044.074.1092.1055.1855.1055.3321 0 .881-.5684.881-.5684s2.0336-1.8397 2.8947-1.84c.1121 0 .2044.0308.2695.1016.5662.6125-.447 1.0882-1.8653 1.9415-1.4183.853-1.51 1.1168-1.3087 1.4396.012.0188.0337.0273.0644.0273.4016 0 2.3181-1.4923 3.1721-1.4923.1977-.0002.3388.0787.3907.2754.294 1.112-3.2095 1.3597-2.9846 2.1642.0325.1166.1156.2032.2285.2032.5054 0 1.682-.9552 2.3283-.9552.16 0 .2862.0577.3633.2032.459.8656-3.1623 1.8149-3.1916 1.8224-.5958.1535-1.6605.336-2.6975.336-.6351 0-1.261-.0409-1.7638-.2599-.2949-.1472-.5488-.3516-.7383-.625-.0411-.0682-.1026-.1476-.1426-.205-.5726-.9679-.455-1.7371.4903-2.676 1.0254-1.0182 1.6212-2.508 1.6212-2.508s.2044-.7891.666-.7891a.4318.4318 0 0 1 .0665.0039c.5078.0796.88 1.3732-.1836 2.1642-.7074.5257-.3797.9395.039.9395.211 0 .445-.1047.5821-.3535.4092-.7426 1.5264-2.6527 2.1056-3.0178.5588-.3524.99-.1816.8497.5918z\"},\"child\":[]}]})(props);\n};\nexport function SiHugo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.754 0a3.998 3.998 0 00-2.049.596L3.33 4.532a4.252 4.252 0 00-2.017 3.615v8.03c0 1.473.79 2.838 2.067 3.574l6.486 3.733a3.88 3.88 0 003.835.018l7.043-3.966a3.817 3.817 0 001.943-3.323V7.752a3.57 3.57 0 00-1.774-3.084L13.817.541a3.998 3.998 0 00-2.063-.54zm.022 1.674c.413-.006.828.1 1.2.315l7.095 4.127c.584.34.941.96.94 1.635v8.462c0 .774-.414 1.484-1.089 1.864l-7.042 3.966a2.199 2.199 0 01-2.179-.01l-6.485-3.734a2.447 2.447 0 01-1.228-2.123v-8.03c0-.893.461-1.72 1.221-2.19l6.376-3.935a2.323 2.323 0 011.19-.347zm-4.7 3.844V18.37h2.69v-5.62h4.46v5.62h2.696V5.518h-2.696v4.681h-4.46V5.518Z\"},\"child\":[]}]})(props);\n};\nexport function SiHumblebundle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.895 19.341c-3.384 0 1.826-19.186 1.826-19.186L16.233.151s-1.427 4.515-2.37 9.533h-3.005c.078-1.032.116-2.076.099-3.114-.135-8.26-4.974-6.73-7.14-4.835C1.758 3.538.033 6.962 0 9.6c.328-.016 1.624-.022 1.624-.022S2.702 4.66 6.086 4.66c3.385 0-1.834 19.187-1.834 19.187l3.49.002s1.803-5.136 2.7-10.872l2.87-.017c-.167 1.485-.22 3.124-.196 4.646.136 8.26 4.956 6.488 7.122 4.593 2.166-1.896 3.782-5.9 3.762-7.822.002-.002-1.645.013-1.665.013.006.152-1.056 4.951-4.44 4.951z\"},\"child\":[]}]})(props);\n};\nexport function SiHumhub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.709 7.7807c.1014-1.6778-.888-3.2298-2.4515-3.8452L11.9448.2695c-1.5655-.616-3.3488-.152-4.418 1.1463l-6.36 7.731C.0988 10.4444-.01 12.2912.8934 13.7087l5.387 8.4632c.9035 1.4175 2.6273 2.1289 4.2557 1.7076l9.6853-2.5096c1.627-.4213 2.7889-1.88 2.8903-3.5591l.0879-2.1924s.1657-1.3038-1.3694-1.3255c-1.1307-.0149-.9867.9616-1.9753 1.5676-.7933.4862-3.3583.7263-4.0237-1.93 0 0-.7784-2.3331.704-4.4944 1.481-2.1613 3.1675-1.0124 3.8255-.0967 1.3099 1.8238 3.252.9866 3.2386-.3828z\"},\"child\":[]}]})(props);\n};\nexport function SiHungryjacks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.868.215C1.284.215 0 1.476 0 3.032v17.936c0 1.555 1.284 2.817 2.868 2.817h18.264c1.584 0 2.868-1.262 2.868-2.817V3.032C24 1.476 22.716.215 21.132.215zm9.033 1.82c6.143 0 9.46 2.233 9.743 4.487.043.333.016 1.012.016 1.012v10.585s-.03.612-.325 1.112c-1.067 1.808-4.108 2.674-9.434 2.674s-8.367-.866-9.434-2.674c-.295-.5-.324-1.112-.324-1.112s0-10.679-.003-10.813v-.532c.003-.093.009-.18.018-.252.283-2.254 3.6-4.488 9.743-4.488zm-.13.537c-5.685 0-8.714 1.97-9.08 3.953-.086.455.197.611.48.611H20.37c.283 0 .566-.156.48-.611-.366-1.983-3.395-3.953-9.08-3.953zM6.692 8.21c-.19 0-.47.098-.47.325v1.917c0 .525.658.895 1.232.895s1.233-.37 1.233-.895V8.536c0-.227-.28-.325-.47-.325-.192 0-.471.098-.471.325v1.73c0 .127-.154.2-.292.2-.138 0-.29-.073-.29-.2v-1.73c0-.227-.28-.325-.471-.325zm2.75 0c-.195 0-.482.134-.482.38v2.531c0 .246.287.362.483.362s.481-.147.481-.362v-.943c0-.069.09-.055.132 0 0 0 .611.786.814 1.044.203.257.316.26.484.26.196 0 .482-.116.482-.36V8.59c0-.245-.286-.38-.482-.38s-.483.135-.483.38v.935c0 .07-.087.058-.148-.02l-.766-.996c-.117-.156-.265-.298-.514-.298zm4.325 0c-.978 0-1.658.666-1.658 1.628 0 1.133.725 1.645 1.649 1.645.715 0 1.364-.278 1.364-.789v-.89c0-.234-.152-.329-.396-.329h-.69c-.346 0-.422.228-.422.405 0 .177.06.419.413.419.097 0 .126.007.126.07.012.167-.1.266-.42.266-.392 0-.615-.354-.615-.784 0-.43.18-.815.699-.815.185 0 .275.003.58.141.307.138.475-.022.55-.126.077-.104.158-.332-.036-.504-.264-.23-.644-.337-1.144-.337zm-10.08.136c-.194 0-.477.11-.477.346v2.445c0 .234.283.346.476.346.194 0 .476-.112.476-.346v-.713c0-.076.054-.097.114-.097h.474c.06 0 .11.021.11.097v.713c0 .234.282.346.475.346.194 0 .476-.112.476-.346V8.693c0-.235-.282-.346-.476-.346-.193 0-.476.11-.476.346v.653c0 .073-.041.1-.105.1h-.486c-.056 0-.106-.027-.106-.1v-.653c0-.235-.282-.346-.476-.346zm12.185 0c-.23 0-.477.12-.477.345v2.465c0 .225.283.322.477.322.193 0 .475-.097.475-.322v-.638c0-.06.055-.079.093-.033l.677.862c.138.177.486.163.648.062.18-.111.313-.358.174-.534l-.53-.678c-.022-.03-.027-.056.018-.09.333-.222.417-.55.417-.836 0-.319-.274-.925-1.074-.925zm4.293 0c-.174-.008-.384.052-.463.2l-.36.566c-.029.05-.062.049-.09.004l-.358-.57c-.105-.197-.441-.233-.619-.168-.232.084-.343.337-.239.535l.706 1.154c.053.092.077.144.076.236v.834c0 .235.285.346.48.346s.48-.111.48-.346v-.834c0-.092.006-.133.074-.233l.707-1.157c.105-.198-.012-.445-.239-.535a.49.49 0 0 0-.155-.031zm-3.636.545c.305 0 .372.133.372.344 0 .21-.161.338-.354.338-.124 0-.193.003-.193-.056V8.96c.035-.046.063-.068.175-.068zM5.163 12.166c-.264 0-.649.164-.649.51v2.599c.028.413-.244.52-.349.214-.15-.367-.526-.287-.67-.214-.144.072-.351.26-.264.615.153.543.543.907 1.291.913 1 0 1.284-.625 1.284-1.297l.005-.07v-2.76c0-.346-.384-.51-.648-.51zm2.634 0c-.246.008-.654.115-.75.458L5.97 16.122c-.108.336.188.629.447.675.232.042.633-.132.702-.435l.062-.206c.017-.065.046-.08.1-.08h1.034c.074 0 .08.03.095.08l.062.206c.07.303.47.477.702.435.259-.046.556-.339.447-.675l-1.075-3.498c-.1-.349-.504-.45-.75-.458zm3.833 0c-1.252 0-2.122.949-2.122 2.318 0 1.37.87 2.32 2.122 2.32.542 0 .898-.152 1.148-.41.248-.244.143-.544.046-.692-.097-.149-.308-.366-.704-.18-.225.104-.248.128-.427.128-.663 0-.895-.548-.895-1.16h-.001c0-.613.233-1.175.896-1.175.187 0 .225.034.427.128.396.186.607-.031.704-.18.097-.148.202-.444-.046-.688-.279-.287-.618-.41-1.148-.41zm2.347 0c-.258 0-.635.164-.635.512v3.613c0 .348.377.512.635.512s.635-.164.635-.512V15.3l-.001.014c0-.213.12-.096.12-.096l1.173 1.428s.28.375.774-.06c.494-.437.014-.897.014-.897s-.721-.849-.883-1.064c-.145-.194.04-.387.04-.387l.908-1.115c.22-.275.167-.545-.087-.763-.286-.246-.639-.238-.875.067l-1.057 1.277c-.05.068-.12.062-.126-.047v.003l-.001-.013.001.01v-.978c0-.348-.377-.512-.635-.512zm3.254 0c-.182 0-.33.138-.33.31.007.21.132.273.173.288.041.016.03.047.026.066a.342.342 0 0 1-.116.17c-.14.086-.002.266.113.257.128-.01.644-.452.443-.892a.34.34 0 0 0-.31-.2zm1.979 0c-.996 0-1.608.678-1.61 1.684-.001.61.525 1.019 1.052 1.126l.27.055c.123.029.29.097.29.289 0 .191-.103.372-.334.372-.155 0-.197.04-.526-.13-.37-.19-.573.032-.665.175-.092.145-.19.433.045.67.3.282.66.396 1.266.396 1.102 0 1.609-.668 1.6-1.594-.006-.72-.502-1.133-1.073-1.28l-.305-.079c-.104-.028-.276-.105-.276-.263 0-.174.103-.317.301-.317.126 0 .178-.02.449.128.366.199.574-.031.666-.175.091-.143.19-.424-.045-.66-.308-.31-.565-.397-1.105-.397zM7.725 14.212c.027-.002.054.022.068.075l.202.668c.02.062-.001.075-.071.075H7.51c-.038 0-.07-.026-.05-.075l.202-.666c.01-.048.036-.076.062-.077zm-4.554 3.665c-.283 0-.566.11-.48.473.516 1.98 3.395 3.018 9.08 3.018 5.684 0 8.563-1.037 9.08-3.018.085-.363-.198-.473-.48-.473h-8.6zm17.161 2.685c.288 0 .534.228.534.536a.531.531 0 0 1-.534.538.532.532 0 0 1-.536-.538c0-.308.246-.536.536-.536zm0 .09a.431.431 0 0 0-.43.446c0 .259.189.45.43.45.239 0 .428-.191.428-.45a.43.43 0 0 0-.428-.446zm-.21.128h.232c.144 0 .216.055.216.177 0 .11-.07.159-.159.17l.174.273h-.104l-.16-.269h-.107v.269h-.092zm.092.08v.192h.11c.079 0 .149-.006.149-.101 0-.077-.069-.09-.133-.09Z\"},\"child\":[]}]})(props);\n};\nexport function SiHusqvarna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c1.022 0 1.687.18 1.968.242-.14 1.307-.1 2.354 0 2.657.34 1.005 2.276 1.474 3.058 1.011.86-.522.664-2.11.664-3.156 0 0 1.268.3 2.046.593.632.238 1.563.703 1.563.703.185 1.324.01 3.282-1.292 3.946.982.985 1.312 2.152 1.732 4.304.34 1.93.26 3.28.24 4.405-.1 1.53-.1 2.355-.46 3.743-.52 1.589-.829 2.335-1.883 3.439C17.496 24.132 14.007 24 12 23.998c-2.007.002-5.494.134-7.635-2.111-1.055-1.104-1.363-1.85-1.883-3.439-.36-1.388-.36-2.213-.46-3.743-.021-1.125-.1-2.474.24-4.405.42-2.154.75-3.319 1.732-4.304-1.302-.664-1.477-2.622-1.292-3.946 0 0 .933-.465 1.563-.703C5.043 1.055 6.31.754 6.31.754c0 1.047-.196 2.632.664 3.156.782.461 2.716-.006 3.058-1.011.1-.303.14-1.35 0-2.657C10.313.18 10.979 0 12 0m-.003 21.125c2.342 0 3.09 0 4.251-.322.4-.142 1.122-.342 1.644-1.167.96-1.65.96-4.748.96-6.235 0-1.49 0-4.124-.96-5.754-.52-.844-1.233-1.078-1.644-1.186-1.186-.316-1.948-.297-4.251-.302h.001c-2.303.005-3.065-.014-4.251.302-.41.11-1.122.342-1.644 1.186-.96 1.63-.96 4.266-.96 5.754s0 4.586.96 6.235c.52.825 1.241 1.025 1.644 1.167 1.16.324 1.909.322 4.25.322zM12 14.458c2.004 0 1.96.002 1.96.644v4.053h2.724V7.928H13.96V11.3c0 .664.044.662-1.96.662h.002c-2.003 0-1.96.002-1.96-.662V7.928H7.321v11.23h2.721v-4.056c0-.644-.04-.644 1.958-.644z\"},\"child\":[]}]})(props);\n};\nexport function SiHyper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.565 17.91H24v1.964H13.565zm-3.201-5.09l-9.187 8.003 2.86-7.004L0 11.179l9.187-8.002-3.11 7.451z\"},\"child\":[]}]})(props);\n};\nexport function SiHyperskill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 22.6a1.4 1.4 0 0 1-1.4 1.4h-1.2a1.4 1.4 0 0 1-1.4-1.4V1.4A1.4 1.4 0 0 1 19.4 0h1.2A1.4 1.4 0 0 1 22 1.4zm-8-14a1.4 1.4 0 0 1-1.4 1.4h-1.2A1.4 1.4 0 0 1 10 8.6V3.4A1.4 1.4 0 0 1 11.4 2h1.2A1.4 1.4 0 0 1 14 3.4zm-8.001 8a1.4 1.4 0 0 1-1.4 1.4H3.4A1.4 1.4 0 0 1 2 16.6V7.4A1.4 1.4 0 0 1 3.4 6h1.2A1.4 1.4 0 0 1 6 7.4v9.2zm8.001 4a1.4 1.4 0 0 1-1.4 1.4h-1.2a1.4 1.4 0 0 1-1.4-1.4v-5.2a1.4 1.4 0 0 1 1.4-1.4h1.2a1.4 1.4 0 0 1 1.4 1.4z\"},\"child\":[]}]})(props);\n};\nexport function SiHyperx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.428 5.234c-.036-.005-.055.05-.055.05-.935 2.297-2.446 4.096-4.25 5.503-2.157-1.445-4.476-2.16-6.477-2.5l.508-1.695H10.56l-.445 1.496c-2.12-.194-3.61.004-3.664.008-.085.007-.108.027-.106.056.004.042.084.043.084.043 4.228.324 7.684 1.789 10.367 3.528C9.926 16.098.15 15.826.15 15.826c-.123-.002-.149.019-.15.065-.004.07.113.07.113.07 12.395 1.527 17.776-2.796 18.238-3.143 3.685 2.82 5.513 5.867 5.513 5.867.034.05.069.092.105.079.056-.02.02-.106.02-.106-1.062-3.053-2.666-5.243-4.475-6.808 2.846-2.757 2.926-6.242 2.945-6.499.01-.113-.01-.115-.03-.117zM4.939 6.592l-1.313 4.384h1.582l1.314-4.384Zm1.39 2.023-.222.748h3.625c-.09.297-.483 1.613-.483 1.613h1.594l.422-1.414a21.95 21.949 0 0 0-4.936-.947z\"},\"child\":[]}]})(props);\n};\nexport function SiHypothesis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.425 0c-.93 0-1.71.768-1.71 1.72v17.14c0 .94.78 1.71 1.71 1.71h5.95l2.62 3.43 2.62-3.43h5.95c.93 0 1.72-.77 1.72-1.71V1.72c0-.95-.79-1.72-1.72-1.72H3.425m1.71 3.43h2.58v6s.86-1.71 2.56-1.71c1.72 0 3.46.85 3.46 3.52v5.9h-2.58V12c0-1.39-.88-1.93-1.73-1.71-.86.21-1.71 1.12-1.71 3v3.85h-2.58V3.43m12.86 10.29c.95 0 1.72.78 1.72 1.7a1.71 1.71 0 01-1.72 1.71 1.71 1.71 0 01-1.71-1.71c0-.92.76-1.71 1.71-1.71z\"},\"child\":[]}]})(props);\n};\nexport function SiHyprland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.0998.001c.071.0753.1162.1116.1476.1576.5693.8424 1.13 1.691 1.7078 2.5277.3326.4816.6866.9486 1.0416 1.4141.3433.451.7058.8869 1.0494 1.3378.3975.5215.8003 1.0402 1.1696 1.5813.473.6933.9496 1.388 1.3588 2.1188.348.6213.626 1.285.8919 1.9477.1882.4691.3144.9646.4491 1.4537.0624.2267.0799.4659.1163.6994.0449.2858.1211.5717.1258.8583.0125.7465.0773 1.4954-.0528 2.2386-.1433.8195-.3832 1.6041-.74 2.3609-.3607.7646-.7978 1.4708-1.3328 2.1241-.4848.5921-1.054 1.0812-1.6697 1.5296-.452.329-.93.6085-1.4387.8306-.4577.1996-.9293.3597-1.4148.4951-1.0961.3052-2.2076.3722-3.3269.2934-.6747-.0474-1.3574-.1301-2-.3729-.5284-.1996-1.0606-.3967-1.5657-.6462-.3988-.1968-.781-.4435-1.131-.7183-.4591-.3604-.9097-.7418-1.3072-1.167-.356-.3808-.6644-.8153-.941-1.2587-.2916-.468-.5486-.9629-.7693-1.4687-.2385-.546-.3925-1.121-.518-1.71-.1953-.9164-.1322-1.8336-.0923-2.748.0229-.525.1615-1.0504.2945-1.5634.14-.541.3094-1.0786.5147-1.5983.2057-.5205.4445-1.0324.718-1.5204.3432-.6124.7218-1.2066 1.1121-1.7905.3543-.5304.7372-1.0423 1.1218-1.5513.3098-.41.6477-.7988.9614-1.206.3172-.4116.6224-.8326.9293-1.2522.3247-.4441.652-.8865.9656-1.3385.3979-.5728.781-1.156 1.1753-1.7314.0563-.0823.1383-.1475.2082-.2206.0139.0078.0278.0157.042.0235.003.0631.0082.1262.0082.1893.0004.9386.0053 1.8771-.006 2.8157-.0019.1376-.0578.2905-.1327.4085-.303.4795-.6127.9553-.9403 1.4184-.3105.4388-.6459.8601-.9703 1.289-.2673.3532-.5336.7068-.8027 1.0587-.1868.2441-.3829.4812-.5654.7286-.2552.3465-.5115.6933-.7496 1.0515-.2873.432-.57.8684-.828 1.3179-.1847.3215-.3302.6662-.4845 1.0041-.0856.1875-.1644.3793-.2267.5754-.1105.3479-.199.7026-.3094 1.0505-.3109.9774-.245 1.983-.1754 2.9764.0353.5044.2178 1.0035.3707 1.4933.2142.6858.5817 1.294.9963 1.88.283.4003.6042.762.9675 1.0822.299.263.6238.5051.9649.71.3882.2332.7924.4553 1.2163.6085.4523.1637.9303.2849 1.4073.3451.5678.0717 1.1464.0563 1.72.0834.5325.025 1.049-.0816 1.5659-.1832.6562-.129 1.2558-.412 1.8386-.7222.6969-.3707 1.2826-.8958 1.7955-1.4875.5244-.605.9646-1.285 1.2448-2.0319.2955-.7878.5418-1.603.5044-2.4688-.0203-.468.0053-.939-.0378-1.4041-.0317-.3426-.129-.6813-.2196-1.016-.1062-.3932-.215-.7878-.3622-1.1667-.1465-.3775-.3336-.7396-.5175-1.1014-.163-.3205-.3323-.6388-.5226-.9432a16.5743 16.5743 0 0 0-.7372-1.0848c-.3939-.5311-.8106-1.0451-1.2088-1.5727-.4662-.6177-.9314-1.2362-1.382-1.8654-.3889-.5425-.7596-1.0982-1.1303-1.6536-.0595-.0891-.107-.2064-.108-.3108-.0082-1.0156-.0053-2.0312-.0046-3.0467 0-.0339.0086-.0681.0206-.1583z\"},\"child\":[]}]})(props);\n};\nexport function SiHyundai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 18.1622c-6.6275 0-12-2.7586-12-6.163 0-3.4028 5.3725-6.1614 12-6.1614 6.6278 0 12 2.7586 12 6.1614 0 3.4044-5.3722 6.163-12 6.163zM7.6023 7.17C3.701 7.9784.973 9.8302.973 11.9844c0 1.1929.8382 2.2932 2.248 3.1757.1174.0724.1941.0862.251.0826.1019-.006.1593-.0698.201-.146.028-.0485.0631-.1225.0972-.1968.4601-1.0834 2.0776-4.8333 4.2023-7.3758a1.1775 1.1775 0 0 0 .1048-.1461c.046-.084.0356-.1513.0006-.192-.0593-.0647-.2247-.065-.4756-.016zM9.742 8.8995c-1.1728 2.8492 1.0473 2.4961 1.6478 2.3637 1.0203-.2258 1.9944-.6128 2.7746-.925 2.2216-.8887 3.4012-1.7804 3.7925-2.123a1.9839 1.9839 0 0 0 .1076-.0988c.0557-.058.0976-.1192.0976-.2002 0-.0936-.081-.1687-.2374-.2231-.012-.0049-.0517-.021-.0641-.025-1.698-.5415-3.724-.8563-5.9016-.8563-.0168 0-.0586-.0022-.1169 0-.2608.0078-.5509.0664-.787.1888-.7777.4049-1.1163 1.4235-1.313 1.899zm10.5851.0037c-.0268.0487-.0612.1224-.0962.1974-.4599 1.0826-2.0774 4.831-4.2018 7.3733-.0515.063-.0796.1031-.1042.1467-.0492.0846-.0388.1535 0 .1935.0572.0641.2235.0654.474.0157 3.8998-.81 6.628-2.6606 6.628-4.8149 0-1.1925-.836-2.2928-2.2472-3.1745-.1161-.073-.1934-.0871-.25-.083-.1028.0067-.16.0699-.2026.1458zM14.258 15.099c1.173-2.849-1.0483-2.494-1.6467-2.3622-1.0218.225-1.996.613-2.7757.924-2.2226.8883-3.4017 1.782-3.7944 2.1234-.0468.0428-.0833.0742-.1066.0995-.0564.0573-.0967.1178-.0967.2007 0 .0923.08.1688.2362.2229.012.0048.0511.0213.0657.0255 1.696.54 3.722.8557 5.9.8557.0177 0 .0592.0016.1178 0 .2609-.0081.5522-.0677.7871-.1888.7781-.4052 1.1169-1.4234 1.3133-1.9007z\"},\"child\":[]}]})(props);\n};\nexport function SiI18Next (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.93646 2.48699v4.51684l5.0758 13.03647s1.5495 3.1839-2.8824 3.9597H7.01922s-4.13084-.4311-3.14053-3.7019L9.21276 7.00401V2.48699h5.7237Zm2.0894 13.10781c-4.4301-1.3742-8.15457-.6365-9.97498-.0788l-1.83572 4.4186c-.78296 2.499 2.27302 2.9417 2.59687 2.9813l.02755.0032h8.44448c3.5407-.5982 2.511-2.972 2.4147-3.1773l-.0068-.0142-1.6661-4.1328Zm-7.81345.7772c.78905.0004 1.42905.3862 1.42905.8646 0 .4764-.6404.864-1.42905.864-.7887 0-1.42711-.3878-1.42711-.864 0-.4784.6384-.8646 1.4271-.8646Zm5.08375 0c.7871.0004 1.4271.3862 1.4271.8646 0 .4764-.6403.864-1.4271.864-.791 0-1.429-.3878-1.429-.864 0-.4784.638-.8646 1.429-.8646Zm-4.5001-5.2131c-.55227 0-.99993.5395-.99993 1.2051 0 .6656.44766 1.2051.99993 1.2051.5522 0 .9998-.5395.9998-1.2051 0-.6656-.4476-1.2051-.9998-1.2051Zm3.6413-1.29686c-.6549 0-1.1862.63806-1.1862 1.42906 0 .7871.5313 1.4271 1.1862 1.4271.653 0 1.1862-.64 1.1862-1.4271 0-.7907-.5328-1.42906-1.1862-1.42906Zm6.0363-2.73783s-2.1219 1.54591-4.0858-.41975V4.55615s2.7243-.60065 4.0858 2.56806Zm-14.84367 0C5.9908 3.9555 8.71543 4.55615 8.71543 4.55615v2.14831c-1.96566 1.96566-4.08544.41975-4.08544.41975ZM15.04366 0c.4954 0 .8958.4387.8958.98109 0 .54203-.4006.98074-.8958.98074H8.95478c-.49315 0-.89428-.43871-.89428-.98074C8.0605.43871 8.46146 0 8.95478 0h6.08888Z\"},\"child\":[]}]})(props);\n};\nexport function SiI3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.933 9.09a1.341 1.341 0 0 0 .031 1.896l6.973 6.945a1.342 1.342 0 1 0 1.893-1.901l-6.973-6.945a1.344 1.344 0 0 0-1.924.005Zm-1.66 7.176a426.366 426.366 0 0 0-1.338-1.339c-.377-.369-.829-.843-1.401-.856a1.646 1.646 0 0 0-.615.132c-.123.05-.383.276-.383.276a1.34 1.34 0 0 0-.394 1.122c.051.414.364.728.653.993.066.063.142.132.262.25.305.298.755.751 1.312 1.312 1.114 1.123 2.658 2.688 4.39 4.414 1.508 1.501 3.668 1.701 5.549 1.149 1.881-.552 3.66-1.757 5.148-3.25 1.487-1.494 2.685-3.278 3.229-5.162s.335-4.042-1.173-5.544l-6.22-6.194a1.34 1.34 0 0 0-1.923.005 1.342 1.342 0 0 0 .03 1.896l6.22 6.194c.739.736.858 1.619.488 2.898-.369 1.28-1.325 2.781-2.552 4.013-1.228 1.233-2.725 2.195-4.002 2.57-1.278.374-2.162.259-2.9-.476-1.723-1.716-3.261-3.275-4.38-4.403Zm-4.946-4.947c.522.52.524 1.376.004 1.897a1.347 1.347 0 0 1-1.897.004 1.348 1.348 0 0 1-.004-1.897 1.348 1.348 0 0 1 1.897-.004Zm5.364-5.386c.522.519.524 1.376.004 1.897a1.347 1.347 0 0 1-1.897.004 1.348 1.348 0 0 1-.004-1.897 1.347 1.347 0 0 1 1.897-.004ZM13.213.388c.521.52.523 1.376.004 1.897a1.347 1.347 0 0 1-1.897.004 1.347 1.347 0 0 1-.004-1.897 1.348 1.348 0 0 1 1.897-.004Z\"},\"child\":[]}]})(props);\n};\nexport function SiIata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.417 19.695l.98-4.885H5.99l-.973 4.884zm4.808-1.6h1.012l-.26-1.792zm-2.235 1.6l2.412-4.885h1.57l.99 4.884H9.487l-.088-.58H7.827l-.25.58zm6.439 0l.547-3.674h-1.394l.238-1.233h4.28l-.237 1.233h-1.327L14 19.695zm5.354-1.6h1.012l-.26-1.792zm-2.23 1.6l2.407-4.885h1.57l.99 4.884h-1.487l-.073-.58h-1.57l-.25.58zM24 9.289h-7.495c-.276 1.372-1.228 2.517-3.125 3.308.215.652.95 1.255 1.714 1.255h4.066c.62 0 1.112-.52 1.31-.94h-4.13c-.254-.044-.265-.25-.01-.271h4.06c.524 0 1-.448 1.276-.935h-4.73c-.237-.04-.237-.238 0-.277h4.77c.48 0 .918-.558 1.1-.934h-5.232c-.26-.033-.26-.277 0-.282H22.9c.415 0 .819-.454 1.1-.924zm-24 0h7.495c.27 1.372 1.228 2.517 3.12 3.308-.216.652-.952 1.255-1.715 1.255H4.84c-.62 0-1.112-.52-1.311-.94h4.13c.25-.044.266-.25.01-.271H3.608c-.525 0-1-.448-1.272-.935H7.07c.238-.04.238-.238 0-.277H2.3c-.481 0-.918-.558-1.1-.934h5.232c.26-.033.26-.277 0-.282H1.106c-.42 0-.824-.454-1.106-.924zm9.569-4.114c.277.238.586.448.918.58.282-.553.675-1.028 1.129-1.45a4.05 4.05 0 0 0-2.047.87zM8.242 7.902h1.67a5.358 5.358 0 0 1 .454-1.91 4.021 4.021 0 0 1-1.002-.63 3.83 3.83 0 0 0-1.122 2.54zm3.628-1.567V7.9H10.2a4.62 4.62 0 0 1 .414-1.815c.399.143.83.237 1.256.25zm2.56-1.161a3.346 3.346 0 0 1-.917.58 5.243 5.243 0 0 0-1.134-1.443 3.993 3.993 0 0 1 2.052.863zM15.754 7.9h-1.665a5.096 5.096 0 0 0-.442-1.91c.354-.165.69-.375.984-.63a3.723 3.723 0 0 1 1.123 2.54zM12.14 6.335V7.9h1.66c0-.631-.155-1.234-.415-1.815a4.017 4.017 0 0 1-1.245.25zm-2.571 4.57c.277-.216.597-.454.918-.57.299.559.67 1.018 1.129 1.433a4.05 4.05 0 0 1-2.047-.863zM8.242 8.173h1.67c.039.69.182 1.3.454 1.924a4.202 4.202 0 0 0-1.002.625 3.864 3.864 0 0 1-1.122-2.55zm3.628 1.57v-1.57H10.2c.01.63.154 1.255.414 1.814.399-.144.83-.232 1.256-.244zm2.56 1.162a3.41 3.41 0 0 0-.917-.57 5.113 5.113 0 0 1-1.134 1.433 4.088 4.088 0 0 0 2.052-.863zm1.323-2.732h-1.665a5.075 5.075 0 0 1-.442 1.924c.354.166.674.366.984.625a3.806 3.806 0 0 0 1.123-2.55zm-3.612 1.57v-1.57h1.66c0 .63-.155 1.244-.415 1.814a4.01 4.01 0 0 0-1.245-.244zm-.271-5.276a4.387 4.387 0 0 0-1.123 1.382c.36.122.74.222 1.123.222zm.27 0c.444.365.847.846 1.113 1.382a3.26 3.26 0 0 1-1.112.222zm-.27 7.146a4.23 4.23 0 0 1-1.123-1.388c.36-.128.74-.2 1.123-.2zm.27.01c.444-.37.847-.867 1.113-1.4a3.715 3.715 0 0 0-1.112-.197z\"},\"child\":[]}]})(props);\n};\nexport function SiIbeacon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .053c-6.617 0-12 5.383-12 12 0 6.077 4.541 11.113 10.408 11.894v-.364C4.741 22.804.36 17.931.36 12.053.36 5.635 5.582.413 12 .413s11.64 5.222 11.64 11.64c0 5.878-4.38 10.751-10.048 11.53v.364C19.459 23.166 24 18.13 24 12.053c0-6.617-5.383-12-12-12zm0 1.696c-5.653 0-10.251 4.598-10.251 10.25 0 5.112 3.76 9.362 8.66 10.129v-.366c-4.7-.763-8.3-4.85-8.3-9.762 0-5.454 4.437-9.89 9.891-9.89s9.891 4.436 9.891 9.89c0 4.912-3.6 8.999-8.3 9.762v.366c4.9-.767 8.66-5.017 8.66-10.128 0-5.653-4.598-10.25-10.251-10.25zm0 1.736c-4.695 0-8.515 3.82-8.515 8.515 0 4.151 2.986 7.618 6.923 8.365v-.367C6.671 19.256 3.845 15.952 3.845 12c0-4.496 3.659-8.155 8.155-8.155 4.496 0 8.154 3.659 8.154 8.155 0 3.952-2.825 7.256-6.562 7.998v.367c3.937-.747 6.923-4.214 6.923-8.365 0-4.695-3.82-8.515-8.515-8.515zm0 1.725A6.798 6.798 0 0 0 5.21 12c0 3.196 2.22 5.883 5.198 6.602v-.372C7.63 17.52 5.57 14.996 5.57 12A6.437 6.437 0 0 1 12 5.57 6.437 6.437 0 0 1 18.43 12c0 2.996-2.06 5.52-4.838 6.23v.372c2.979-.719 5.198-3.406 5.198-6.602A6.798 6.798 0 0 0 12 5.21zm0 1.749A5.047 5.047 0 0 0 6.959 12a5.05 5.05 0 0 0 3.45 4.782v-.38A4.689 4.689 0 0 1 7.318 12c0-2.58 2.1-4.68 4.681-4.68s4.68 2.1 4.68 4.68a4.689 4.689 0 0 1-3.088 4.402v.38A5.05 5.05 0 0 0 17.042 12 5.047 5.047 0 0 0 12 6.96zm0 1.737A3.308 3.308 0 0 0 8.696 12c0 1.245.692 2.33 1.712 2.894v-.42a2.943 2.943 0 1 1 3.184 0v.42A3.306 3.306 0 0 0 15.304 12 3.308 3.308 0 0 0 12 8.696zm0 1.712A1.592 1.592 0 0 0 10.408 12 1.592 1.592 0 0 0 12 13.592 1.592 1.592 0 0 0 13.592 12 1.592 1.592 0 0 0 12 10.408Z\"},\"child\":[]}]})(props);\n};\nexport function SiIberia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.356 11.563c4.53-3.254 9.047-5.217 13.547-5.723L24 2.978c-6.662 0-7.57 1.457-9.873 3.752M0 21.021c14.719 0 18.189-3.46 20.213-8.17l1.7-4.434c-4.958.143-12.441 3.066-17.673 8.324\"},\"child\":[]}]})(props);\n};\nexport function SiIced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22.605 0-6.023 6.123 1.313 1.291 6.023-6.123L22.605 0zm-5.638.047L7.932 9.232l1.312 1.29 9.035-9.184L16.967.047zM9.699 1.775c-2.337 2.377-3.477 3.528-4.617 4.68a1972.17 1972.17 0 0 0-4.621 4.686l-.379.384 2.867 9.772L12.762 24l10.511-10.5-1.3-1.3-9.02 9.007-1.908-6.83 5.559-5.65-1.311-1.291-5.559 5.65-6.845-1.79C4.506 9.655 5.449 8.703 6.39 7.75c1.14-1.153 2.282-2.305 4.62-4.684L9.7 1.776zM21.605 6.73l-1.53 1.53-6.458 6.565 1.313 1.291 6.45-6.558 1.528-1.528-1.303-1.3zM2.46 13.088l6.812 1.781 1.895 6.783-6.738-1.857-1.969-6.707z\"},\"child\":[]}]})(props);\n};\nexport function SiIceland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.7442 13.9186c-.9419 0-1.2558-.4186-1.3256-.7674L9 12.593c0-1.8837-1.1512-2.2325-1.8837-2.2325-.9419 0-1.9884.6976-1.9884 2.1976 0 1.3256.907 2.1628 2.407 2.1628.4535 0 .9418-.1046 1.221-.2093l-.1396-.6976c-.2442.0697-.593.1046-.8721.1046zm-.628-2.7558c.3838 0 .6629.279.6978.8372l-1.5.314c.0348-.7326.314-1.1512.8023-1.1512zm6.0698-.8023c-.6627 0-1.2558.1744-1.6046.279 0 .035.1395.6977.1744.7675.3837-.1396.907-.2442 1.2558-.2442.5582 0 .8024.1744.8024.5581v.1744c-1.7442 0-2.4768.628-2.4768 1.4303 0 .907.8023 1.3953 1.9535 1.3953.7674 0 1.3953-.1395 1.6744-.2093v-2.7209c.0349-.9767-.5581-1.4302-1.779-1.4302zm.628 3.5232c-.1047.0349-.314.0349-.4187.0349-.3837 0-.8372-.1744-.8372-.628 0-.4534.3838-.6976 1.221-.6627v1.2558zm9-4.6046v1.186c-.1396-.0349-.314-.0698-.593-.0698-1.0117 0-2.093.6977-2.093 2.1977 0 1.3256.872 2.128 2.3022 2.128.593 0 1.2907-.1047 1.5698-.1745V9.2791Zm0 4.6395c-.1047.0349-.2442.0349-.314.0349-.7326 0-1.1512-.5233-1.1512-1.3954 0-.6628.2791-1.3604 1.0814-1.3604.1047 0 .314.0349.3838.0349zM0 9.2791h1.0814v5.2325H0Zm3.9767 5.4418c-1.2209 0-2.0232-.8372-2.0232-2.0581 0-1.3256.872-2.2675 2.0581-2.2675.2791 0 .628.0698.8372.1745l-.2093.7325c-.1395-.0349-.314-.1046-.4535-.1046-.6627 0-1.1162.5581-1.1162 1.3953 0 .8372.4186 1.3256 1.0465 1.3256.1744 0 .4186-.0349.6279-.1046l.1744.7325c-.2093.0698-.6279.1744-.9419.1744zM9.628 9.2791h1.0814v5.2325H9.6279ZM19.5 14.5116h-1.1512v-2.686c0-.5582-.279-.6977-.6976-.6977-.2093 0-.4535.0349-.628.0698v3.314h-1.1511v-3.942c.279-.0697 1.1163-.2092 1.814-.2092 1.2558 0 1.8139.4535 1.8139 1.3953z\"},\"child\":[]}]})(props);\n};\nexport function SiIcicibank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9258 2.0961C19.279-1.6476 12.698-.2426 7.2138 5.2416c-5.484 5.475-7.7865 12.9625-5.1397 16.7062.8728 1.2386 2.1837 1.902 3.7386 2.0522 1.0516.0078 1.9129-1.1846 2.6158-2.7774.7252-1.6678 1.1694-3.218 1.5138-4.6592.5077-2.2934.544-3.934.29-4.2786-.435-.5801-1.4321-.435-2.5561.2176-.544.2991-1.26.0997-.408-.9336.8612-1.0425 4.2605-3.5625 5.4933-3.9523 1.3415-.3898 2.8734.136 2.3568 1.6226-.3706 1.0847-5.0473 13.486-1.596 12.2719 1.1049-.747 2.205-1.6497 3.2639-2.7086 5.4841-5.475 7.7865-12.9625 5.1396-16.7063zm-5.3662 3.209c-1.0969 1.0968-2.52 1.4865-3.1364.852-.6617-.6345-.272-2.0577.8249-3.1726 1.1058-1.115 2.529-1.4594 3.1454-.834.6345.6436.2448 2.0487-.834 3.1545z\"},\"child\":[]}]})(props);\n};\nexport function SiIcinga (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.8285.0086a2.122 2.122 0 00-1.1546.4705c-.9134.7446-1.052 2.0897-.3057 3.0038.1738.2135.382.3803.6085.5076l-1.9992 4.1526c-1.3307-.5156-2.8925-.3242-4.0768.6411a4.1264 4.1264 0 00-.2805.2538L4.3895 7.2125c.124-.31.1253-.6679-.0326-.9913-.2979-.6072-1.0314-.859-1.6385-.561-.6079.2963-.8581 1.0298-.561 1.637.2979.6063 1.029.8595 1.637.5624.0991-.0483.1849-.1119.2642-.181l2.1846 1.7868c-1.1343 1.4732-1.1567 3.5843.0712 5.0876.2648.3253.5696.5978.9009.8193l-2.5067 3.5945c-.5002-.3428-1.1085-.5336-1.7602-.4838-1.522.114-2.663 1.4395-2.5482 2.9608.114 1.522 1.4403 2.663 2.9623 2.5483 1.522-.114 2.6622-1.4396 2.5482-2.9609-.0494-.6638-.3388-1.2483-.7658-1.6948l2.569-3.6836c1.1473.5518 2.5128.5527 3.6718-.0505l1.444 2.4117c-.1372.1332-.2392.3041-.2627.509-.0547.472.2836.899.7555.9529.471.054.8965-.2836.9528-.7555.054-.471-.2836-.898-.7554-.9528-.057-.007-.1097.0104-.1648.0148l-1.4856-2.4829c.072-.0512.1443-.1008.2137-.1573 1.0746-.8777 1.584-2.1864 1.493-3.4729l6.968-1.7186c.3257.484.888.7887 1.5108.742.9248-.0698 1.6171-.8747 1.548-1.7987-.07-.924-.8755-1.6156-1.7988-1.5464-.9247.0706-1.6163.874-1.5464 1.7972.007.0956.0267.1876.049.2776l-6.8092 1.68c-.1312-.6151-.4011-1.2094-.8252-1.7305-.3373-.4132-.7407-.7403-1.1799-.9854l2.017-4.1882c.6295.1558 1.3211.0324 1.8625-.4081.9134-.7447 1.0504-2.092.3058-3.0054-.466-.5709-1.1665-.8375-1.8492-.7762z\"},\"child\":[]}]})(props);\n};\nexport function SiIcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.762 4.29a6.51 6.51 0 0 0-5.669 3.332 3.571 3.571 0 0 0-1.558-.36 3.571 3.571 0 0 0-3.516 3A4.918 4.918 0 0 0 0 14.796a4.918 4.918 0 0 0 4.92 4.914 4.93 4.93 0 0 0 .617-.045h14.42c2.305-.272 4.041-2.258 4.043-4.589v-.009a4.594 4.594 0 0 0-3.727-4.508 6.51 6.51 0 0 0-6.511-6.27z\"},\"child\":[]}]})(props);\n};\nexport function SiIcomoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C10.34 0 8.79 .313 7.34 .938A12 12 0 0 0 3.5 3.5A12 12 0 0 0 .937 7.34C.313 8.79 0 10.34 0 12C0 13.66 .313 15.21 .938 16.66A12 12 0 0 0 3.5 20.5A12 12 0 0 0 7.34 23.06C8.79 23.69 10.34 24 12 24C13.66 24 15.21 23.69 16.66 23.06A12 12 0 0 0 20.5 20.5A12 12 0 0 0 23.06 16.66C23.69 15.21 24 13.66 24 12C24 10.34 23.69 8.79 23.06 7.34A12 12 0 0 0 20.5 3.5A12 12 0 0 0 16.66 .937C15.21 .313 13.66 0 12 0M8.88 1.5A11.65 11.65 0 0 1 11.37 3.42A12.31 12.31 0 0 1 13.27 5.87C13.8 6.77 14.2 7.73 14.5 8.77C14.78 9.8 14.93 10.88 14.93 12S14.78 14.2 14.5 15.23A11.71 11.71 0 0 1 13.27 18.13A12.31 12.31 0 0 1 11.37 20.58C10.62 21.33 9.79 21.96 8.88 22.5A11.91 11.91 0 0 1 6.42 20.58A12.31 12.31 0 0 1 4.5 18.13A11.71 11.71 0 0 1 3.31 15.23A11.63 11.63 0 0 1 2.86 12C2.86 10.88 3 9.8 3.31 8.77A11.71 11.71 0 0 1 4.5 5.87A12.31 12.31 0 0 1 6.42 3.42C7.17 2.67 8 2.04 8.88 1.5M8.86 9.23C8.09 9.23 7.44 9.5 6.9 10.04A2.67 2.67 0 0 0 6.09 12C6.09 12.77 6.36 13.42 6.9 13.96C7.44 14.5 8.09 14.77 8.86 14.77C9.63 14.77 10.28 14.5 10.82 13.96C11.36 13.42 11.63 12.77 11.63 12S11.36 10.58 10.82 10.04A2.67 2.67 0 0 0 8.86 9.23Z\"},\"child\":[]}]})(props);\n};\nexport function SiIcon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.92669 23.93457c-.93754-.17758-1.70436-.94464-1.88217-1.88241-.31993-1.6878 1.13237-3.1401 2.82018-2.82018.93754.17781 1.7046.94463 1.8824 1.88217.31993 1.68804-1.13237 3.14034-2.82041 2.82042zM21.13507 4.76808c-.93754-.1778-1.7046-.94463-1.8824-1.8824-.31993-1.68805 1.13284-3.14034 2.82065-2.82019.93777.17805 1.70436.94487 1.88217 1.88241.31992 1.6878-1.13261 3.1401-2.82042 2.82018zm-9.11415 1.24226c1.1475 0 2.21912.32347 3.13017.88292l2.58538-2.58562c-1.59582-1.1877-3.57352-1.89092-5.71555-1.89092-5.29278 0-9.58347 4.29045-9.58347 9.58323 0 2.14227.70321 4.11997 1.89116 5.7158l2.58538-2.5854c-.55945-.91105-.88268-1.9829-.88268-3.1304 0-3.30799 2.68162-5.98961 5.9896-5.98961zm5.10664 2.85936c.55969.91106.88292 1.98267.88292 3.13018 0 3.30798-2.68162 5.9896-5.98961 5.9896-1.1475 0-2.21935-.323-3.13041-.88268L6.30508 19.6922c1.59582 1.18794 3.57352 1.89115 5.71579 1.89115 5.29278 0 9.58323-4.29045 9.58323-9.58346 0-2.14227-.70345-4.11974-1.89092-5.7158Z\"},\"child\":[]}]})(props);\n};\nexport function SiIconfinder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C4.492 2.746-.885 11.312.502 19.963.502 19.963 4.989 24 12 24c7.01 0 11.496-4.037 11.496-4.037C24.882 11.312 19.508 2.746 12 0zm0 1.846s2.032.726 3.945 2.488c.073.067.13.163.129.277-.001.168-.128.287-.301.287a.496.496 0 01-.137-.027 6.537 6.537 0 00-2.316-.4 6.625 6.625 0 00-3.914 1.273l-.002.002a7.978 7.978 0 016.808.768C20.48 9.11 22.597 14.179 21.902 19c0 0-1.646 1.396-4.129 2.172a.369.369 0 01-.303-.026c-.144-.084-.185-.255-.1-.404a.492.492 0 01.094-.103 6.562 6.562 0 001.504-1.809 6.632 6.632 0 00.856-4.027l-.002-.002a7.949 7.949 0 01-3.838 5.383c-4.42 2.552-9.99 1.882-13.885-1.184 0 0-.388-2.124.182-4.662a.373.373 0 01.176-.25c.145-.084.31-.033.396.117a.448.448 0 01.045.13c.126.762.405 1.5.814 2.208a6.637 6.637 0 003.059 2.756 7.96 7.96 0 01-1.672-2.033 7.928 7.928 0 01-1.066-4.205C4.128 8.047 7.464 3.659 12 1.846zm0 7.623c-2.726 0-5.117.93-6.483 2.332-.064.32-.1.65-.1.984 0 3.146 2.947 5.695 6.583 5.695 3.635 0 6.584-2.549 6.584-5.695 0-.334-.038-.664-.102-.984C17.116 10.4 14.724 9.469 12 9.469zm0 .693a3.12 3.12 0 010 6.238 3.118 3.118 0 01-2.872-4.336 1.3 1.3 0 101.657-1.656A3.108 3.108 0 0112 10.162z\"},\"child\":[]}]})(props);\n};\nexport function SiIconify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19.5c3.75 0 7.159-3.379 6.768-4.125-.393-.75-2.268 1.875-6.768 1.875s-6-2.625-6.375-1.875S8.25 19.5 12 19.5zm4.125-12c.623 0 1.125.502 1.125 1.125v1.5c0 .623-.502 1.125-1.125 1.125A1.123 1.123 0 0115 10.125v-1.5c0-.623.502-1.125 1.125-1.125zm-8.25 0C8.498 7.5 9 8.002 9 8.625v1.5c0 .623-.502 1.125-1.125 1.125a1.123 1.123 0 01-1.125-1.125v-1.5c0-.623.502-1.125 1.125-1.125zM12 0C5.381 0 0 5.381 0 12s5.381 12 12 12 12-5.381 12-12S18.619 0 12 0zm0 1.5c5.808 0 10.5 4.692 10.5 10.5S17.808 22.5 12 22.5 1.5 17.808 1.5 12 6.192 1.5 12 1.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiIconjar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.15 5.875c-.492 0-.936-.453-.936-.954 0-1.155 2.858-2.01 6.11-2.01.295 0 .492 0 .492-.25 0-.452-.985-.602-.985-1.355C9.831.502 10.767 0 11.95 0c1.183 0 2.12.502 2.12 1.306 0 .753-.986.853-.986 1.355 0 .151.148.251.492.251 3.252 0 6.16.803 6.16 2.009a.944.944 0 01-.937.953H5.151zm14.732 4.568c1.183.753 1.626 2.109 1.43 3.365l-1.38 7.58C19.636 22.897 18.354 24 16.826 24H7.17c-1.526 0-2.808-1.104-3.104-2.611l-1.38-7.581a3.307 3.307 0 011.48-3.315c.69-.501.836-1.355 0-1.656-1.184-.452-.938-1.908.245-1.908h7.193c1.133 0 2.514.853 2.514 3.615 0 2.762-1.282 2.51-1.282 4.468 0 .854.69 1.758 1.527 1.859 1.43.15 2.267-.402 2.267-2.41 0-2.06-1.182-3.013-1.182-4.72 0-2.059 1.28-2.863 2.118-2.863h2.07c1.182 0 1.43 1.457.246 1.909-.837.35-.69 1.205 0 1.656z\"},\"child\":[]}]})(props);\n};\nexport function SiIcons8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0H0v24h12zM18 12c3.3137 0 6-2.6863 6-6s-2.6863-6-6-6-6 2.6863-6 6 2.6863 6 6 6zM18 24c3.3137 0 6-2.6863 6-6s-2.6863-6-6-6-6 2.6863-6 6 2.6863 6 6 6z\"},\"child\":[]}]})(props);\n};\nexport function SiIcq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.189 0a3.784 3.784 0 0 0-3.055 5.93l1.741 2.562a1.855 1.855 0 0 0 3.334-.13l1.454-2.929h-.006A3.784 3.784 0 0 0 10.189 0zm9.173 4.496a4.235 4.235 0 0 0-1.662.306 4.23 4.23 0 0 0-1.817 1.396l-2.214 2.837c-.025.032-.05.063-.074.096l-.01.012a2.088 2.088 0 0 0 1.509 3.306l3.614.536-.003-.007a4.259 4.259 0 0 0 4.532-5.807 4.264 4.264 0 0 0-3.875-2.675zM3.586 7.242A3.154 3.154 0 0 0 .55 9.628a3.151 3.151 0 0 0 3.903 3.804l2.539-.737a1.545 1.545 0 0 0 .742-2.673L5.79 8.118v.005a3.13 3.13 0 0 0-2.204-.881zM13.9 13.959a1.886 1.886 0 0 0-1.858 2.233l.387 3.263.005-.003a3.846 3.846 0 0 0 6.134 2.574 3.846 3.846 0 0 0-.9-6.645l-2.877-1.197a1.89 1.89 0 0 0-.89-.225zm-5.55.08c-.377 0-.75.104-1.076.3L4.06 16.018l.006.003a4.21 4.21 0 0 0-1.593 1.485 4.24 4.24 0 0 0 1.342 5.843 4.239 4.239 0 0 0 5.845-1.332 4.21 4.21 0 0 0 .647-2.172l.108-3.45a2.079 2.079 0 0 0-2.062-2.356z\"},\"child\":[]}]})(props);\n};\nexport function SiIeee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.74 14.973h-.05v-.064h.04c.022 0 .051.002.051.03 0 .028-.015.034-.04.034zm.101-.03c0-.06-.04-.079-.109-.079h-.099v.265h.057v-.111h.027l.061.111h.068l-.069-.116c.036-.003.064-.02.064-.07zm-.11.243c-.098 0-.176-.076-.176-.19 0-.113.078-.188.176-.188.095 0 .177.075.177.188 0 .114-.082.19-.177.19zm-.247-.19c0 .156.116.247.247.247.13 0 .247-.09.247-.247a.238.238 0 0 0-.247-.246.239.239 0 0 0-.247.246zM3.35 12.61c-.02.374-.025.72-.052 1.096.148.013.315.026.473.003l-.047-1.046-.009-.05c-.12.005-.234.01-.365-.003zm-.926-1.051c-.182.091-.45.23-.421.48.04.136.187.224.304.28.647.286 1.506.295 2.19.083.168-.065.395-.16.426-.366-.002-.171-.183-.279-.313-.344v-.008a.575.575 0 0 1 .144-.039v-.004c-.228-.041-.45-.101-.671-.16.043.097.073.2.109.301.067-.021.135-.038.207-.047.117.045.284.11.3.256.014.137-.136.204-.23.26-.501.181-1.065.2-1.588.06-.144-.045-.353-.103-.37-.287.102-.242.367-.292.588-.351-.114-.073-.23-.138-.34-.22-.119.007-.227.059-.335.106zm1.107-1.46l-.064.208-.326.932c.082.008.183 0 .263.008v.008l-.048 1.054.008.01c.104.01.234.016.34-.002V12.3l-.042-1.022.006-.035.286-.004a46.727 46.727 0 0 1-.414-1.14zm-.15-.469c.239-.163.453.065.639.195.717.578 1.393 1.238 1.909 1.984.065.096.094.246.036.355-.134.223-.314.426-.485.633v.011c-.426.454-.876.92-1.363 1.305-.237.144-.455.46-.761.264a11.007 11.007 0 0 1-1.927-1.82c-.096-.149-.246-.271-.312-.44-.093-.23.112-.394.229-.566.576-.71 1.291-1.407 2.034-1.92zm.6-.678l-.266-.376c-.032-.02-.073-.052-.108-.062-.079-.034-.163.007-.227.056l-.48.624c-.769.953-1.68 1.843-2.673 2.525-.079.061-.195.121-.22.222-.026.091.022.166.078.223a13.061 13.061 0 0 1 2.234 1.94c.12.127.217.252.335.37.198.265.43.53.613.813.057.06.066.158.156.187.07.024.156.04.223 0l.066-.067a13.269 13.269 0 0 1 3.034-3.06c.117-.103.34-.142.343-.336a.308.308 0 0 0-.137-.226l-.02-.003c-.6-.408-1.159-.87-1.686-1.394l-.582-.609a16.595 16.595 0 0 1-.684-.827zm.039.672c.206.157.42.336.61.518l.034.02a10.122 10.122 0 0 1 1.405 1.592c.065.1.122.212.086.343-.133.332-.403.597-.639.887-.51.55-1.05 1.081-1.652 1.506-.122.086-.287.166-.433.097-.444-.232-.818-.613-1.207-.96-.45-.417-.902-.904-1.244-1.413a.417.417 0 0 1-.064-.253c.044-.176.165-.32.279-.469.403-.514.897-1.002 1.397-1.447.011-.012.032-.036.05-.047.215-.186.428-.35.652-.511.234-.182.529-.031.726.137zm15.942-.197H24v1.028h-2.569v1.094h2.364v1.028H21.43V13.7H24v1.028h-4.038zm-4.859 0h4.037v1.028h-2.57v1.094h2.363v1.028H16.57V13.7h2.569v1.028h-4.037zm-4.86 0h4.037v1.028h-2.57v1.094h2.365v1.028H11.71V13.7h2.57v1.028h-4.038zm-2.24 0h1.469v5.301H8.004Z\"},\"child\":[]}]})(props);\n};\nexport function SiIfixit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.345 12.506l2.37 3.131c.198.261.211.69.025.961l-.119.177c-.181.27-.55.645-.814.831l-.285.201c-.266.195-.697.195-.956-.016l-3.135-2.369c-.255-.195-.681-.195-.94 0l-3.136 2.369c-.258.211-.689.211-.956.03l-.207-.135c-.27-.181-.641-.556-.825-.81l-.181-.256c-.186-.27-.18-.689.018-.96l2.377-3.149c.195-.256.195-.675 0-.945L6.197 8.43c-.194-.263-.203-.69-.013-.957l.2-.285c.187-.264.56-.629.828-.814l.175-.119c.27-.196.703-.182.961.014l3.135 2.37c.26.195.684.195.942 0l3.135-2.385c.258-.195.698-.226.979-.061l.33.195c.28.165.639.524.795.81l.12.21c.154.285.123.721-.075.99l-2.37 3.135c-.194.255-.194.676 0 .945l.006.028zM12 0C5.37 0 0 5.373 0 12s5.37 12 12 12c6.627 0 12-5.373 12-12S18.627 0 12 0z\"},\"child\":[]}]})(props);\n};\nexport function SiIfood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.428 1.67c-4.65 0-7.184 4.149-7.184 6.998 0 2.294 2.2 3.299 4.25 3.299l-.006-.006c4.244 0 7.184-3.854 7.184-6.998 0-2.29-2.175-3.293-4.244-3.293zm11.328 0c-4.65 0-7.184 4.149-7.184 6.998 0 2.294 2.2 3.299 4.25 3.299l-.006-.006C21.061 11.96 24 8.107 24 4.963c0-2.29-2.18-3.293-4.244-3.293zM14.172 14.52l2.435 1.834c-2.17 2.07-6.124 3.525-9.353 3.17A8.913 8.913 0 01.23 14.541H0a9.598 9.598 0 008.828 7.758c3.814.24 7.323-.905 9.947-3.13l-.004.007 1.08 2.988 1.555-7.623-7.234-.02Z\"},\"child\":[]}]})(props);\n};\nexport function SiIfttt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 8.82h2.024v6.36H0zm11.566 0h-3.47v2.024h1.446v4.337h2.024v-4.337h1.446V8.82zm5.494 0h-3.47v2.024h1.446v4.337h2.024v-4.337h1.446V8.82zm5.494 0h-3.47v2.024h1.446v4.337h2.024v-4.337H24V8.82zM7.518 10.843V8.82H2.892v6.36h2.024v-1.734H6.65v-2.024H4.916v-.578z\"},\"child\":[]}]})(props);\n};\nexport function SiIgdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 6.228c-8 .002-16 0-24 0v11.543a88.875 88.875 0 0 1 2.271-.333 74.051 74.051 0 0 1 17.038-.28c1.57.153 3.134.363 4.69.614V6.228zm-.706.707v10.013a74.747 74.747 0 0 0-22.588 0V6.934h22.588ZM7.729 8.84a2.624 2.624 0 0 0-1.857.72 2.55 2.55 0 0 0-.73 1.33c-.098.5-.063 1.03.112 1.51.177.488.515.917.954 1.196.547.354 1.224.472 1.865.401a3.242 3.242 0 0 0 1.786-.777c-.003-.724.002-1.449-.002-2.173-.725.004-1.45-.002-2.174.003.003.317 0 .634.001.951h1.105c.002.236 0 .473.002.71-.268.196-.603.286-.932.298-.32.02-.65-.05-.922-.225a1.464 1.464 0 0 1-.59-.744c-.18-.499-.134-1.085.163-1.53.23-.355.619-.61 1.043-.647a1.8 1.8 0 0 1 1.012.206c.152.082.286.192.424.295.228-.281.461-.559.692-.838a3.033 3.033 0 0 0-.595-.403c-.418-.212-.892-.285-1.357-.283Zm11.66.086c-.093 0-.187.002-.28 0-.68.002-1.359-.004-2.038.003.003 1.666 0 3.332.002 4.998h2.497c.239-.002.478-.034.709-.097.276-.076.546-.208.742-.422.194-.208.297-.492.304-.776.016-.278-.032-.572-.195-.804-.175-.252-.453-.408-.734-.514.211-.122.407-.285.521-.505.134-.246.149-.535.117-.807a1.156 1.156 0 0 0-.436-.73c-.264-.207-.599-.304-.93-.334a2.757 2.757 0 0 0-.279-.012Zm-16.715 0v5.002h1.102V8.927c-.368-.002-.735 0-1.102 0zm8.524 0v5.002h2.016a2.87 2.87 0 0 0 1.07-.211 2.445 2.445 0 0 0 1.174-.993c.34-.555.429-1.244.292-1.876a2.367 2.367 0 0 0-.828-1.338c-.478-.387-1.096-.577-1.707-.584h-2.017zm6.949.967c.392.002.784-.001 1.176.002.183.011.38.054.51.19.11.112.136.28.112.43a.436.436 0 0 1-.22.316 1.082 1.082 0 0 1-.483.116c-.365.002-.73-.001-1.094.001-.002-.351 0-.703-.001-1.054zm-5.031.026c.28 0 .567.053.815.19.274.149.491.396.607.685.113.272.138.574.107.865a1.456 1.456 0 0 1-.335.786 1.425 1.425 0 0 1-.865.466c-.168.031-.34.022-.51.023h-.632V9.92h.813zm5.03 1.948h1.36c.174.006.354.035.505.127.11.066.191.18.212.308.025.15.004.32-.099.44-.102.12-.258.176-.409.2-.172.032-.348.02-.522.022-.35-.001-.698.002-1.047-.001v-1.096z\"},\"child\":[]}]})(props);\n};\nexport function SiIgn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.38 7.66c.59-.9 1.359-1.67 2.26-2.26.13-1.18.31-2.26.52-3.21a10.602 10.602 0 0 0-6 6c.95-.22 2.03-.39 3.21-.52m10.97-2.3v.02c.9.59 1.67 1.37 2.27 2.27 1.18.13 2.26.31 3.21.52a10.632 10.632 0 0 0-6.02-6.01c.22.95.4 2.02.54 3.2m-8.7 13.26c-.9-.59-1.67-1.37-2.27-2.27h-.03c-1.19-.14-2.26-.32-3.19-.54 1.07 2.75 3.26 4.95 6.01 6.02-.22-.95-.39-2.03-.52-3.21m11-2.27h-.03c-.59.9-1.37 1.67-2.27 2.27v.03c-.14 1.17-.32 2.25-.54 3.19a10.593 10.593 0 0 0 6.03-6.03c-.94.22-2 .4-3.19.54M10.04.01h3.9c.85 1.85 1.2 4.59 1.3 5.52.04.22.06.43.06.63L12 9.12 8.7 6.16c0-.17.02-.35.05-.55.1-.95.43-3.75 1.29-5.61M8.7 17.84c0 .17.02.35.05.55.1.95.43 3.75 1.29 5.61h3.9c.85-1.84 1.2-4.59 1.3-5.52.04-.22.06-.43.06-.64L12 14.88l-3.3 2.96ZM6.16 8.69c-.17 0-.35.02-.55.05-.95.12-3.75.45-5.61 1.31v3.9c1.84.85 4.59 1.19 5.52 1.3.22.04.43.06.64.06l2.95-3.3-2.95-3.3v-.02ZM24 10.03c-1.86-.86-4.66-1.19-5.61-1.29-.2-.03-.38-.05-.55-.05l-2.96 3.3 2.96 3.3c.2 0 .41-.02.64-.06.93-.11 3.68-.45 5.52-1.3v-3.9Z\"},\"child\":[]}]})(props);\n};\nexport function SiIheartradio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.403 21.983c.597 0 1.023-.306 1.023-.817v-.012c0-.489-.375-.784-1.017-.784H3.182v1.613zm-1.67-1.8c0-.125.102-.228.221-.228h1.489c.488 0 .88.148 1.13.398.193.193.307.472.307.784v.011c0 .654-.443 1.034-1.062 1.154l.988 1.272c.046.051.074.102.074.164 0 .12-.114.222-.227.222-.091 0-.16-.05-.21-.12l-1.12-1.453H3.183v1.346a.228.228 0 01-.228.227.227.227 0 01-.221-.227v-3.55m6.674 2.29l-.914-2.035-.915 2.034zm-2.812 1.164l1.614-3.528c.056-.125.142-.2.284-.2h.022c.137 0 .228.075.279.2l1.613 3.522a.31.31 0 01.029.113c0 .12-.097.216-.216.216-.108 0-.182-.074-.222-.165l-.415-.914H7.402l-.415.926c-.04.097-.113.153-.216.153a.204.204 0 01-.204-.204.26.26 0 01.028-.12m6.078-.118c1.005 0 1.647-.682 1.647-1.563v-.011c0-.88-.642-1.574-1.647-1.574h-.932v3.148zm-1.38-3.335c0-.125.102-.228.221-.228h1.16c1.249 0 2.112.858 2.112 1.977v.012c0 1.119-.863 1.988-2.113 1.988h-1.159a.226.226 0 01-.221-.227v-3.522m4.481-.029c0-.124.103-.227.222-.227.125 0 .227.103.227.227v3.579a.228.228 0 01-.227.227.227.227 0 01-.222-.227v-3.579m5.027 1.801v-.011c0-.904-.659-1.642-1.568-1.642s-1.556.727-1.556 1.63v.012c0 .903.659 1.642 1.567 1.642.91 0 1.557-.728 1.557-1.631zm-3.59 0v-.011c0-1.097.824-2.057 2.033-2.057 1.21 0 2.023.949 2.023 2.045v.012c0 1.096-.824 2.056-2.034 2.056s-2.022-.949-2.022-2.045m2.03-17.192c0 1.397-.754 2.773-2.242 4.092a.345.345 0 01-.458-.517c1.333-1.182 2.01-2.385 2.01-3.575v-.016c0-.966-.606-2.103-1.38-2.588a.345.345 0 11.367-.586c.97.61 1.703 1.974 1.703 3.174zM14.76 7.677a.345.345 0 11-.337-.602c.799-.448 1.336-1.318 1.339-2.167a2.096 2.096 0 00-1.124-1.855.345.345 0 11.321-.611 2.785 2.785 0 011.493 2.46v.011c-.004 1.09-.683 2.199-1.692 2.764zm-2.772-1.015a1.498 1.498 0 11.001-2.997 1.498 1.498 0 01-.001 2.997zm-2.303.882a.345.345 0 01-.47.133c-1.009-.565-1.688-1.674-1.692-2.764v-.01a2.785 2.785 0 011.493-2.461.346.346 0 01.321.611 2.096 2.096 0 00-1.124 1.855c.003.849.54 1.719 1.34 2.166a.345.345 0 01.132.47zM7.464 8.825a.344.344 0 01-.488.03C5.49 7.536 4.734 6.16 4.734 4.763v-.016c0-1.2.732-2.564 1.703-3.174a.346.346 0 01.367.586c-.774.485-1.38 1.622-1.38 2.588v.016c0 1.19.677 2.393 2.01 3.575a.345.345 0 01.03.487zM16.152 0c-1.727 0-3.27.915-4.164 2.252C11.094.915 9.55 0 7.823 0A4.982 4.982 0 002.84 4.983c0 1.746 1.106 3.005 2.261 4.17l4.518 4.272a.371.371 0 00.626-.27V9.827c0-.963.78-1.743 1.743-1.745a1.745 1.745 0 011.742 1.745v3.328c0 .326.39.493.626.27l4.518-4.272c1.155-1.165 2.261-2.424 2.261-4.17A4.982 4.982 0 0016.152 0M4.582 14.766h1.194v1.612h1.532v-1.612H8.5v4.307H7.308v-1.637H5.776v1.637H4.582v-4.307m6.527 2.353a.563.563 0 00-.578-.587c-.308 0-.55.238-.578.587zm-2.264.305v-.012c0-.972.696-1.741 1.68-1.741 1.15 0 1.68.842 1.68 1.82 0 .075 0 .16-.007.24H9.971c.093.364.357.549.72.549.277 0 .498-.105.738-.34l.647.536c-.32.406-.782.677-1.447.677-1.045 0-1.784-.695-1.784-1.729m7.29-1.68h1.17v.67c.19-.454.498-.75 1.051-.725v1.23h-.098c-.609 0-.954.351-.954 1.12v1.034h-1.168v-3.329m2.95 2.295v-1.353h-.393v-.942h.393v-.842h1.17v.842h.775v.942h-.775v1.126c0 .234.105.332.32.332.153 0 .301-.043.442-.11v.916c-.209.117-.485.19-.812.19-.7 0-1.12-.307-1.12-1.1m-15.65-3.584a.62.62 0 100 1.24.62.62 0 000-1.24m10.502 3.952c-.303.013-.483-.161-.483-.371 0-.203.16-.307.454-.307h.667v.036c-.004.137-.06.617-.638.642zm1.746-1.008c0-1.033-.739-1.729-1.784-1.729-.665 0-1.126.271-1.447.677l.647.536c.24-.234.461-.34.738-.34.359 0 .621.182.716.537l.001.025-.77.003c-.956.013-1.458.37-1.458 1.045 0 .65.464.999 1.262.999.432 0 .764-.17.987-.401v.32h1.106v-1.628l.002-.032V17.4M3.458 15.99h-.043a.61.61 0 00-.61.61v2.474h1.263v-2.474a.61.61 0 00-.61-.61\"},\"child\":[]}]})(props);\n};\nexport function SiIkea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.2v9.6h24V7.2H0zm12.002 9.12C5.308 16.32.48 14.36.48 12s4.831-4.32 11.522-4.32c6.69 0 11.518 1.96 11.518 4.32s-4.824 4.32-11.518 4.32zm-.225-6.062h4.176v.964c-.103-.047-.203-.047-.306-.047h-1.758v.46h1.689v.732h-1.689v.457h1.758c.103 0 .203 0 .306-.05v.967h-4.176c.052-.101.052-.198.052-.299V10.56c0-.101 0-.198-.052-.302zm-7.076.302v2.881c0 .101 0 .198.052.299H2.4c.052-.101.052-.198.052-.299V10.56c0-.101 0-.198-.052-.299h2.353c-.052.101-.052.198-.052.299zm6.447 2.881c.076.107.158.208.255.299H8.805c0-.101-.1-.306-.21-.467-.11-.161-.705-1.044-.705-1.044v1.212c0 .101 0 .198.052.299H5.778c.052-.101.052-.198.052-.299V10.56c0-.101 0-.198-.052-.299h2.164c-.052.101-.052.198-.052.299v1.259s.691-.88.85-1.085c.12-.154.268-.373.268-.473h2.257c-.155.101-.327.282-.468.45l-.826.984s1.039 1.548 1.177 1.746zm10.546-3.005a.178.178 0 0 0-.175-.178h-.21v.551h.083v-.195h.12l.11.195h.093l-.12-.212a.184.184 0 0 0 .099-.161zm-.189.101h-.114v-.191h.124c.055 0 .093.047.093.101 0 .053-.048.093-.103.09zm-.021-.457h-.031a.444.444 0 0 0-.437.457c0 .007 0 .017-.003.023a.466.466 0 0 0 .482.447.464.464 0 0 0 .458-.47v-.017a.454.454 0 0 0-.469-.44zm0 .823a.372.372 0 0 1-.375-.366v-.027a.357.357 0 0 1 .375-.339c.206 0 .375.165.375.366s-.168.366-.375.366zm-.877-.339c-.038-.101-.093-.198-.065-.299h-3.017c.014.101-.024.198-.062.299l-1.07 2.881a.852.852 0 0 1-.162.299h1.785c-.014-.101.024-.198.058-.299.034-.101.072-.198.072-.198l.021-.054h1.304l.021.05c.048.118.083.198.083.198.041.101.079.198.069.299h2.263a.837.837 0 0 1-.169-.299 690.277 690.277 0 0 0-1.131-2.877zm-2.167 1.893c.155-.42.289-.772.299-.806.028-.074.048-.151.062-.228.017.077.041.154.069.228l.316.806h-.746z\"},\"child\":[]}]})(props);\n};\nexport function SiIledefrancemobilites (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.54.001A5.461 5.447 0 0 1 24 5.447v13.107A5.461 5.447 0 0 1 18.54 24H5.459A5.461 5.447 0 0 1 0 18.553V5.446A5.461 5.447 0 0 1 5.46 0h13.081Zm-9.781 15.26c-1.365 1.816-2.503 3.405-3.925 5.334-.34.454-.057.624.398.34.512-.34.967-.736 1.309-1.247.3-.421.857-1.175 1.448-1.977l.595-.808c.33-.445.646-.876.914-1.243.796-1.135 2.047-1.023 2.9.17a398.137 397.144 0 0 0 3.242 4.481c.739 1.02 2.957.851 3.924.794.17 0 .228-.17.17-.283a310.878 310.103 0 0 0-4.663-6.467c-2.047-2.894-4.606-1.42-6.312.907ZM17.8 7.32c-2.9 1.474-3.809 1.304-6.255 1.701-2.445.34-4.266.908-6.313 3.064-.51.567-.74 1.021.058.624 2.9-1.475 3.81-1.305 6.254-1.702 2.446-.34 4.267-.907 6.314-3.064.512-.566.796-1.02-.057-.623Zm-5.06-4.142c-.966-.454-2.218.17-2.786 1.419-.569 1.19-.228 2.553.74 3.007.966.454 2.217-.17 2.786-1.42.568-1.246.228-2.609-.74-3.006Z\"},\"child\":[]}]})(props);\n};\nexport function SiImagedotsc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.6584 15.8117h.2543a.437.437 0 0 1 .4369.4369v3.7998a.437.437 0 0 1-.4369.4369h-3.7998a.437.437 0 0 1-.437-.4369v-.1225L6.839 21.5736v.6354c0 .6148.4984 1.1132 1.1132 1.1132h8.121c.6148 0 1.1132-.4984 1.1132-1.1132v-8.121c0-.6148-.4984-1.1132-1.1132-1.1132h-4.0561zm-.807-3.3369 2.0123-3.5311c.3044-.5341.9843-.7204 1.5184-.416l7.0557 4.021c.5341.3044.7204.9843.416 1.5184l-4.021 7.0557c-.3044.5342-.9843.7205-1.5184.416l-.6279-.3578v-3.2653l.1554.0886a.437.437 0 0 0 .5959-.1633l1.8814-3.3013a.437.437 0 0 0-.1633-.5959l-3.3013-1.8814a.437.437 0 0 0-.5959.1633l-.1444.2534zm4.9282-6.5488a.437.437 0 0 1 .5972.1584l1.9084 3.2858a.437.437 0 0 1-.1583.5972l-.1035.0601 2.8511 1.6248.5456-.3169c.5317-.3088.7123-.9901.4035-1.5217l-4.0788-7.0225c-.3088-.5316-.9901-.7123-1.5217-.4035l-7.0224 4.0788c-.5317.3088-.7123.9901-.4036 1.5217l2.037 3.5071 1.6291-2.8436-.1277-.22a.437.437 0 0 1 .1584-.5973m-4.1524.3539h-.2541a.437.437 0 0 1-.437-.4369V3.9515a.437.437 0 0 1 .437-.4369h3.7997a.437.437 0 0 1 .437.4369v.1225l2.8369-1.6478V1.791c0-.6148-.4984-1.1132-1.1132-1.1132h-8.121c-.6148 0-1.1132.4984-1.1132 1.1132v8.121c0 .6148.4984 1.1132 1.1132 1.1132h4.0561zm-2.4558 3.3328-.1444.2534a.437.437 0 0 1-.5959.1633l-3.3013-1.8814a.437.437 0 0 1-.1633-.5961L5.5623 6.159a.437.437 0 0 1 .5959-.1633l.1554.0886V2.819l-.6279-.3578c-.5342-.3044-1.214-.1182-1.5184.416L.1463 9.9329c-.3044.5342-.1182 1.214.416 1.5184l7.0557 4.021c.5342.3044 1.2139.1182 1.5184-.416l2.0123-3.531zm3.2802.9837 2.037 3.507c.3088.5317.1281 1.213-.4035 1.5218l-7.0225 4.0787c-.5316.3088-1.213.1282-1.5217-.4035L.1764 14.1864c-.3088-.5317-.1281-1.213.4035-1.5218l.5457-.3169 2.851 1.6248-.1035.0601a.437.437 0 0 0-.1584.5973l1.9084 3.2858a.437.437 0 0 0 .5972.1584l3.2858-1.9084a.437.437 0 0 0 .1584-.5973l-.1278-.22z\"},\"child\":[]}]})(props);\n};\nexport function SiImagej (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.1286 17.5084h-8.072a.187.187 0 0 1-.187-.187v-.4442a.187.187 0 0 1 .187-.187h8.0721a.187.187 0 0 1 .187.187v.4442a.1872.1872 0 0 1-.1871.187zm5.6234-12.195c-1.4233.0033-4.2184-.0098-5.6414-.0065a.4035.4035 0 0 0-.4035.4035v3.6061c0 .2229.1807.4035.4035.4035h1.7475v8.19a1.8275 1.8275 0 0 1-.9112 1.5761 1.8277 1.8277 0 0 1-1.8224 0 1.8276 1.8276 0 0 1-.9113-1.5784H6.941c0 2.1705 1.1677 4.193 3.0473 5.2782.9398.5428 1.9936.8141 3.0474.8141s2.1076-.2713 3.0474-.8139c1.8795-1.0837 3.0444-3.1089 3.0473-5.274V5.692a.3785.3785 0 0 0-.3784-.3786zM7.4546 15.2306h3.276a.6403.6403 0 0 0 .6403-.6403V.6403A.6403.6403 0 0 0 10.7306 0h-3.276a.6403.6403 0 0 0-.6403.6403v13.95c0 .3536.2867.6403.6403.6403z\"},\"child\":[]}]})(props);\n};\nexport function SiImdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.3781 0H1.6218C.7411.0583.0587.7437.0018 1.5953l-.001 20.783c.0585.8761.7125 1.543 1.5559 1.6191A.337.337 0 0 0 1.6016 24h20.7971a.4579.4579 0 0 0 .0437-.002c.8727-.0768 1.5568-.8271 1.5568-1.7085V1.7098c0-.8914-.696-1.6416-1.584-1.7078A.3294.3294 0 0 0 22.3781 0zm0 .496a1.2144 1.2144 0 0 1 1.1252 1.2139v20.5797c0 .6377-.4875 1.1602-1.1045 1.2145H1.6016c-.5967-.0543-1.0645-.5297-1.1053-1.1258V1.6284C.5371 1.0185 1.0184.5364 1.6217.496h20.7564zM4.7954 8.2603v7.3636H2.8899V8.2603h1.9055zm6.5367 0v7.3636H9.6707v-4.9704l-.6711 4.9704H7.813l-.6986-4.8618-.0066 4.8618h-1.668V8.2603h2.468c.0748.4476.1492.9694.2307 1.5734l.2712 1.8713.4407-3.4447h2.4817zm2.9772 1.3289c.0742.0404.122.108.1417.2034.0279.0953.0345.3118.0345.6442v2.8548c0 .4881-.0345.7867-.0955.8954-.0609.1152-.2304.1695-.5018.1695V9.5211c.204 0 .3457.0205.4211.0681zm-.0211 6.0347c.4543 0 .8006-.0265 1.0245-.0742.2304-.0477.4204-.1357.5694-.2648.1556-.1218.2642-.298.3251-.5219.0611-.2238.1021-.6648.1021-1.3224v-2.5832c0-.6986-.0271-1.1668-.0742-1.4039-.041-.237-.1431-.4543-.3126-.6437-.1695-.1973-.4198-.3324-.7456-.421-.3191-.0808-.8542-.1285-1.7694-.1285h-1.4244v7.3636h2.3051zm5.14-1.7827c0 .3523-.0199.5762-.0544.6708-.033.0947-.1894.1424-.3046.1424-.1086 0-.19-.0477-.2238-.1351-.041-.0887-.0609-.2986-.0609-.6238v-1.9469c0-.3324.0199-.5423.0543-.6237.0338-.0808.1086-.122.2171-.122.1153 0 .2709.0412.3114.1425.041.0947.0609.2986.0609.6032v1.8926zm-2.4747-5.5809v7.3636h1.7157l.1152-.4675c.1556.1894.3251.3324.5152.4271.1828.0881.4608.1357.678.1357.3047 0 .5629-.0748.7802-.237.2165-.1562.3589-.3462.4198-.5628.0543-.2173.0887-.543.0887-.9841v-2.0675c0-.4409-.0139-.7324-.0344-.8681-.0199-.1357-.0742-.2781-.1695-.4204-.1021-.1425-.2437-.251-.4272-.3325-.1834-.0742-.3999-.1152-.6576-.1152-.2172 0-.4952.0477-.6846.1285-.1835.0887-.353.2238-.5086.4007V8.2603h-1.8309z\"},\"child\":[]}]})(props);\n};\nexport function SiImessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.285 0A5.273 5.273 0 0 0 0 5.285v13.43A5.273 5.273 0 0 0 5.285 24h13.43A5.273 5.273 0 0 0 24 18.715V5.285A5.273 5.273 0 0 0 18.715 0ZM12 4.154a8.809 7.337 0 0 1 8.809 7.338A8.809 7.337 0 0 1 12 18.828a8.809 7.337 0 0 1-2.492-.303A8.656 7.337 0 0 1 5.93 19.93a9.929 7.337 0 0 0 1.54-2.155 8.809 7.337 0 0 1-4.279-6.283A8.809 7.337 0 0 1 12 4.154\"},\"child\":[]}]})(props);\n};\nexport function SiImgur (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.147 3.043c-.002-.113-.069-.182-.189-.191a14.117 14.117 0 00-.51-.045l-.162-.01a21.998 21.998 0 00-1.085-.046l-.217-.005c-.172-.003-.35-.004-.532-.004l-.189-.001c-.295 0-.601.003-.919.01l-.106.003a55.86 55.86 0 00-.87.026l-.237.009c-.335.013-.676.029-1.027.049l-.012.001c-.357.021-.724.045-1.095.071l-.275.021c-.304.023-.609.048-.92.076l-.25.021c-.38.035-.766.074-1.156.115-.08.009-.161.019-.242.027-.319.035-.641.073-.965.113l-.33.042c-.403.051-.806.105-1.212.164a.547.547 0 00-.154.045.303.303 0 00-.097.074l-.003.002c-.045.055-.047.12.004.179.003.004.002.008.005.012l3.488 3.456-6.629 6.596c-.069.067-.068.165 0 .251.856 1.093 1.44 1.793 2.143 2.492.699.703 1.398 1.286 2.493 2.143a.216.216 0 00.132.051.167.167 0 00.119-.051l6.597-6.629 3.455 3.488a.143.143 0 00.101.047c.096 0 .187-.118.212-.292.746-5.141.882-10.051.634-12.31z M15.87 24l6.356-6.357.026-.026.156-.155-.006-.006a3.144 3.144 0 00.822-1.711c.804-5.53.903-10.591.654-12.952a2.904 2.904 0 00-.834-1.812 2.96 2.96 0 00-1.816-.855C20.458.042 19.476 0 18.318 0c-2.999 0-6.667.284-10.063.777a3.143 3.143 0 00-1.887.991L0 8.137V24H15.87zm1.528-6.707c-.151 0-.563.405-.563.613a.1.1 0 01-.099.1.1.1 0 01-.099-.1c0-.208-.411-.613-.563-.613a.1.1 0 01-.099-.1c0-.054.044-.098.099-.098.152 0 .563-.404.563-.614 0-.055.044-.098.099-.098.054 0 .099.043.099.098 0 .21.412.614.563.614a.1.1 0 010 .198zM5.4 7.045c.197 0 .735-.528.735-.801a.13.13 0 01.128-.129c.071 0 .128.058.128.129 0 .272.538.801.735.801.071 0 .128.057.128.128a.128.128 0 01-.128.128c-.197 0-.735.528-.735.801a.128.128 0 01-.128.128.128.128 0 01-.128-.128c0-.273-.538-.801-.735-.801a.128.128 0 010-.256zm-3.99 3.26c0-.065.057-.098.119-.118.69-.228 1.269-.8 1.403-1.554.011-.064.053-.118.118-.118.066 0 .107.054.119.118.133.754.711 1.326 1.401 1.554.062.02.118.053.118.118s-.056.098-.118.119c-.69.227-1.269.799-1.403 1.553-.011.064-.053.119-.119.119-.065 0-.106-.054-.118-.119-.134-.754-.713-1.326-1.403-1.553-.061-.022-.117-.054-.117-.119zm1.565 9.307c-.113 0-.42.302-.42.459 0 .04-.034.073-.074.073a.074.074 0 01-.074-.073c0-.157-.307-.459-.42-.459a.074.074 0 01-.074-.073c0-.039.034-.073.074-.073.113 0 .42-.302.42-.457 0-.042.033-.073.074-.073.04 0 .074.031.074.073 0 .155.307.457.42.457.04 0 .073.034.073.073a.073.073 0 01-.073.073zm.568-3.047c-.14 0-.521.375-.521.568a.092.092 0 11-.183 0c0-.193-.381-.568-.521-.568a.09.09 0 01-.091-.09c0-.051.041-.092.091-.092.14 0 .521-.375.521-.568a.09.09 0 01.092-.09.09.09 0 01.091.09c0 .193.381.568.521.568a.091.091 0 010 .182zm3.334 4.382c-.203 0-.758.546-.758.827 0 .073-.06.133-.132.133a.133.133 0 01-.133-.133c0-.281-.555-.827-.758-.827a.134.134 0 01-.133-.133c0-.073.059-.132.133-.132.204 0 .758-.545.758-.828 0-.071.06-.132.133-.132.073 0 .132.061.132.132 0 .283.555.828.758.828.074 0 .133.059.133.132a.133.133 0 01-.133.133zm1.922-.806c-1.086-.851-1.869-1.498-2.653-2.287-.789-.784-1.436-1.566-2.287-2.654-.626-.8-.566-1.897.144-2.607l.001-.001.002-.001L9.364 7.26 7.149 5.066l-.003-.003-.002-.003c-.52-.52-.7-1.27-.472-1.958.148-.447.464-.802.867-1.049a1.983 1.983 0 01.371-.19 2.1 2.1 0 01.468-.131c.005 0 .009-.003.014-.004C11.746 1.24 15.363.96 18.317.96h.002c1.125 0 2.072.041 2.818.121.469.046.903.249 1.228.576.328.331.525.767.562 1.237.243 2.311.144 7.253-.651 12.714-.001.01-.006.016-.007.025a2.258 2.258 0 01-.18.586c-.006.014-.01.028-.018.042-.333.699-1.001 1.163-1.771 1.163-.51 0-.992-.2-1.358-.567l-.003-.002-.004-.004-2.192-2.215-5.333 5.359-.001.002h-.001a1.94 1.94 0 01-1.378.573c-.44 0-.877-.151-1.231-.429zm2.576 2.09c-.139 0-.518.373-.518.566a.09.09 0 01-.091.09.09.09 0 01-.09-.09c0-.193-.379-.566-.519-.566a.09.09 0 110-.18c.139 0 .519-.373.519-.566a.09.09 0 01.09-.09c.05 0 .091.041.091.09 0 .193.379.566.518.566.05 0 .091.039.091.09s-.04.09-.091.09zm2.115-2.437c.248 0 .922-.662.922-1.003 0-.088.072-.161.161-.161.088 0 .161.073.161.161 0 .341.674 1.003.921 1.003.089 0 .161.073.161.161a.16.16 0 01-.161.161c-.247 0-.921.662-.921 1.005a.162.162 0 01-.161.162.162.162 0 01-.161-.162c0-.343-.674-1.005-.922-1.005a.161.161 0 010-.322z\"},\"child\":[]}]})(props);\n};\nexport function SiImmer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.2706 14.3327C1.0174 14.3327 0 13.3149 0 12.0612s1.0174-2.2714 2.2706-2.2714 2.2706 1.0178 2.2706 2.2714-1.0175 2.2715-2.2706 2.2715zm19.4594.8587a3.1215 3.1215 0 0 1-1.8217-.5845c-.7428.8369-1.0466 1.047-2.0669 1.047-1.5417 0-3.1201-2.3208-4.5579-4.3146 1.4966-2.3358 2.8703-3.8786 4.3307-3.8786 1.1153 0 2.1849.4937 2.7865 1.7668a3.1155 3.1155 0 0 1 1.3291-.2958 3.1051 3.1051 0 0 1 1.1697.2262c-.88-2.5989-2.9964-3.9134-5.1127-3.9134-2.3344 0-4.0593 2.16-5.5753 4.6292-1.7833-2.4318-3.4838-4.6292-5.9239-4.6292-2.0769 0-4.154 1.2863-5.0431 3.8295a3.1179 3.1179 0 0 1 .9355-.1423 3.113 3.113 0 0 1 1.7177.5139c.546-.7723 1.2454-1.2347 2.0074-1.2095 1.5368.0516 2.9282 1.8499 4.6866 4.3248-1.2802 1.9587-2.9227 3.8683-4.3102 3.8683-1.0566 0-2.0739-.4443-2.6895-1.5742a3.1139 3.1139 0 0 1-1.412.3362c-.371.0066-.7336-.0773-1.085-.1857.9316 2.417 2.9722 3.6396 5.0129 3.6396 2.326 0 3.9314-2.0555 5.5251-4.6143 1.7485 2.4637 3.4992 4.7244 5.9921 4.7244 2.0245 0 4.2973-1.3328 5.2229-3.7499-.3583.0875-.7236.1989-1.118.1861zm-.0006-5.4016c-1.2531 0-2.2705 1.0178-2.2705 2.2714s1.0174 2.2715 2.2705 2.2715c1.2532 0 2.2706-1.0178 2.2706-2.2715s-1.0174-2.2714-2.2706-2.2714z\"},\"child\":[]}]})(props);\n};\nexport function SiImmich (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9863.2695c-2.409 0-5.207 1.091-5.207 3.8946v.1523c1.3428.597 2.9347 1.6629 4.4121 2.9707 1.5713 1.3912 2.8374 2.8821 3.6524 4.2871 1.3997-2.5034 2.3358-5.4784 2.3476-7.373V4.164c0-2.8035-2.796-3.8946-5.205-3.8946m7.5117 4.4903c-.3778-.0081-.7747.0502-1.1914.1855-.0366.0118-.086.0278-.1445.0469-.1525 1.4611-.6756 3.304-1.4629 5.1133-.8373 1.9243-1.8627 3.5898-2.9472 4.7988 2.8132.558 5.9307.5273 7.7363-.0469.0126-.004.0246-.0065.0351-.0097 2.6665-.8666 2.84-3.8636 2.0957-6.1543-.6279-1.9332-2.081-3.89-4.121-3.9336m-14.996.039C2.4618 4.8424 1.0088 6.7973.3809 8.7305c-.7442 2.291-.5708 5.288 2.0957 6.1543l.1445.0468c.982-1.0926 2.4873-2.2761 4.1875-3.2773 1.8088-1.0646 3.619-1.808 5.207-2.1484-1.9483-2.1049-4.4884-3.9132-6.287-4.5098l-.0352-.0117c-.4167-.1354-.8136-.1936-1.1914-.1856m4.6718 6.7578c-2.6038 1.2025-5.1088 3.0598-6.2324 4.586l-.0215.0293c-1.6478 2.2683-.0272 4.7953 1.9219 6.211 1.9487 1.4159 4.8518 2.1765 6.5-.0919.0228-.0309.0536-.071.0898-.121-.7356-1.2717-1.396-3.0718-1.8222-4.9981-.4534-2.0492-.6023-4-.4356-5.6153m1.0723 3.338c.3387 2.8478 1.3315 5.8037 2.4355 7.3437l.0215.0293c1.6478 2.2683 4.551 1.5078 6.5.0918 1.9487-1.416 3.5697-3.943 1.9219-6.211-.0228-.0309-.0517-.073-.0879-.123-1.4367.3066-3.3522.3794-5.3164.1894-2.089-.2017-3.9895-.6623-5.4746-1.3203\"},\"child\":[]}]})(props);\n};\nexport function SiImou (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.6426 9.1484c-1.5747 0-2.8555 1.279-2.8555 2.8516 0 1.5724 1.2808 2.8516 2.8555 2.8516 1.5748 0 2.8554-1.2792 2.8554-2.8516 0-1.5725-1.2806-2.8516-2.8554-2.8516zm-9.8184.0059c-1.3802 0-2.502 1.12-2.502 2.498v2.9532c0 .0886.0714.1601.1602.1601h.9727a.1598.1598 0 0 0 .1601-.1601v-2.9532c0-.6656.5425-1.207 1.209-1.207.6667 0 1.209.5414 1.209 1.207v2.9532c0 .0886.0733.1601.1621.1601h.9707a.1615.1615 0 0 0 .1621-.1601v-2.9532c0-.6656.5423-1.207 1.209-1.207.6665 0 1.209.5414 1.209 1.207v2.9532c0 .0886.0714.1601.1601.1601h.9727a.1598.1598 0 0 0 .1602-.1601v-2.9532c0-1.378-1.122-2.498-2.502-2.498-.7367 0-1.397.3209-1.8555.8281-.4582-.5072-1.1209-.8281-1.8574-.8281zm-4.664.1309A.1596.1596 0 0 0 0 9.4453v5.1602c0 .0888.0714.1601.1602.1601h.9628a.1614.1614 0 0 0 .1622-.1601V9.4453a.1615.1615 0 0 0-.1622-.1601H.1602zm18.289 0a.1612.1612 0 0 0-.162.1601v1.4492c0 .089.073.1602.162.1602h.963a.1596.1596 0 0 0 .16-.1602V9.4453a.1596.1596 0 0 0-.16-.1601h-.963zm4.4278 0a.1612.1612 0 0 0-.1622.1601v1.4492c0 .089.0732.1602.1622.1602h.9628A.1596.1596 0 0 0 24 10.8945V9.4453a.1596.1596 0 0 0-.1602-.1601h-.9628zm-8.2344 1.1464c.8663 0 1.5703.7035 1.5703 1.5684 0 .865-.704 1.5684-1.5703 1.5684-.8664 0-1.5723-.7035-1.5723-1.5684 0-.865.706-1.5684 1.5723-1.5684zm3.8066 1.2579a.1615.1615 0 0 0-.162.1601v.08c0 1.5443 1.2004 2.8615 2.746 2.92C22.6579 14.9108 24 13.6088 24 12v-.1504a.1598.1598 0 0 0-.1602-.1601h-.9628a.1615.1615 0 0 0-.1622.1601V12c0 .8651-.704 1.5684-1.5703 1.5684-.8663 0-1.5722-.7033-1.5722-1.5684v-.1504a.1597.1597 0 0 0-.1602-.1601h-.9629Z\"},\"child\":[]}]})(props);\n};\nexport function SiImprovmx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.043 7.203 7.326 9.757 7.309 4.75h1.66l6.13-.026h1.66l.009 4.998zm1.72-5.875.008 2.077-3.482.009V1.337h3.473zm4.341 9.11-.025-7.041h-2.98L15.09 0 8.96.017v3.405H5.98l.018 7.041-2.767 1.499.92 3.32a5.79 5.79 0 0 1 1.387.068l-.75-2.724 6.59-3.559.018 8.548h1.328l-.026-8.548 6.615 3.525-.715 2.656a5.79 5.79 0 0 1 1.345.085l.937-3.414-2.784-1.481zm-2.81 7.654a4.623 4.623 0 0 1-6.58 0 5.951 5.951 0 0 0-8.403 0l.91.91a4.657 4.657 0 0 1 6.582 0A5.9 5.9 0 0 0 12 20.748a5.9 5.9 0 0 0 4.197-1.746 4.657 4.657 0 0 1 6.581 0l.911-.91a5.951 5.951 0 0 0-8.403 0m.009 3.252a4.623 4.623 0 0 1-6.581 0 5.874 5.874 0 0 0-3.346-1.652v1.286c.885.17 1.745.596 2.435 1.277A5.9 5.9 0 0 0 12 24a5.9 5.9 0 0 0 4.197-1.745 4.614 4.614 0 0 1 2.299-1.243v-1.303a5.91 5.91 0 0 0-3.21 1.635\"},\"child\":[]}]})(props);\n};\nexport function SiIndeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.566 21.5633v-8.762c.2553.0231.5009.0346.758.0346 1.2225 0 2.3739-.3206 3.3506-.8928v9.6182c0 .8219-.1957 1.4287-.5757 1.8338-.378.4033-.8808.6049-1.491.6049-.6007 0-1.0766-.2016-1.468-.6183-.3781-.4032-.5739-1.01-.5739-1.8184zM11.589.5659c2.5447-.8929 5.4424-.8449 7.6186.987.405.3687.8673.8334 1.0515 1.3806.2207.6913-.7695-.073-.9057-.167-.71-.4532-1.4182-.8334-2.2127-1.0946C12.8614.3873 8.8122 2.709 6.2945 6.315c-1.0516 1.5939-1.7367 3.2721-2.299 5.1174-.0614.2017-.1094.4647-.2207.6413-.1113.2036-.048-.5453-.048-.5702.0845-.7623.2438-1.4997.4414-2.237C5.3292 5.3375 7.897 2.0655 11.5891.5658zm4.9281 7.0587c0 1.6686-1.353 3.0224-3.0205 3.0224-1.6677 0-3.0186-1.3538-3.0186-3.0224 0-1.6687 1.351-3.0224 3.0186-3.0224 1.6676 0 3.0205 1.3518 3.0205 3.0224Z\"},\"child\":[]}]})(props);\n};\nexport function SiIndiansuperleague (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.59766.10938C8.95434.10104 7.5554.58357 6.94336.88086c-.11273.0545-.22433.1126-.35156.18164C4.78218 3.766 4.33554 6.69795 4.0957 7.8789c.26408.30678.52699.58814.80078.84962-1.07275.03838-2.03204-.00761-2.80859-.1543-.33058.63514-.61723 1.20155-.86719 1.73047C.99935 9.7809.8152 9.28492.75195 8.56445c-.3342.39607-.49852.77729-.55664 1.11524v.03125c-.09448.49055-.14861.97195-.17773 1.48437-.03625.67942-.01414 1.35171.0586 2.00586 0 .04657.03052.28815.03905.32227.06.41695.13848.8315.23829 1.23828.00803.03241-.0082-.01544.0371.1504.00014.00053.0699.25394.07227.2461.83843 2.8787 2.3119 4.76328 4.35742 6.38086.10029.01877.20602.03355.31446.04688.31308.28653.6532.56117 1.11328.88086.71513.30126 1.60352.67465 2.77539.99414.0836-.13436.19644-.2729.3418-.42188-.81711-.50461-1.3046-.81155-1.97462-1.44726.9546-.06846 1.9968-.1977 3.0332-.32813v-.0039c.07814-.66713.18119-1.26748.34766-2.02343.5766.48578 1.14455.91864 1.84766 1.4336-.04942.273-.07803.51066-.11523.85546.39197.21598.68197.37125.93945.50195-.47944.09048-.95232.17008-1.41211.23828-.0073.58867.00029.61018.13477 1.11524.85762.29796 1.03607.33892 1.77734.50976.3452-.0691.95215-.2225 1.35547-.3496h.0039c.07636-.30533.1012-.31144.2793-.76563a96.46696 96.46696 0 0 1-.33594-.18555c.61706-.11713 1.24963-.26233 1.87695-.42969 0 0 .32307-.53391 1.06445-1.89648-.18245-.15612-.61101-.51041-1.15234-.95508.3126-.82414.5334-1.42238.70898-1.92187a29.32447 29.32447 0 0 1 .7793-.16797c.47606-1.37368.65186-1.87142 1.50586-4.03711-.24974-.4401-.46855-.81353-.68945-1.16797.2034.17544.42375.36465.70117.60547.13448-.05449.26798-.1079.40234-.16602 1.02473-.4288 1.94057-.86248 2.73633-1.29492v-.002c.31259-1.56614.34283-2.41444.38282-3.59178-.923-.83938-1.5409-1.29324-2.47852-1.97265-.7449.40332-1.59923.81124-2.55859 1.21093-.12349.05087-.24777.1051-.375.15235-.16097 1.09869-.3181 1.83647-.52148 2.6875-.05766-.07247-.10876-.13865-.16993-.21485-1.47166.30159-2.98648.6827-4.47265 1.14063-.20145 1.05256-.33834 1.84446-.43555 2.63477-.60046.12875-1.1954.24428-1.78125.3457-.76223-.87702-1.36607-1.63645-1.86719-2.33594.21567.09574.42651.18967.66211.28906 1.3355-1.03594 2.35838-1.86542 3.28907-2.67968.33263.1617.68196.33024 1.0918.52539.9178-.7365 1.81918-1.51219 2.67187-2.30664-.58867-1.72975-.92008-2.41288-1.46875-3.54297a237.94319 237.94319 0 0 1-.97657-.27344C13.43207 1.4266 12.93946.52017 12.93946.48828c-.79715-.27026-1.59483-.37512-2.3418-.3789Zm6.88086.7832c-.87955.28476-1.62698.67187-1.64648.67187.25083.68316.41743 1.3906.5664 2.01563.9775.50143 1.67304.97418 2.23633 1.35937.58866-.28346 1.14003-.51649 1.65234-.6836-.14898-.9121-.35539-1.51436-.53711-2.04491-.84663-.61772-1.63557-1.00586-2.27148-1.31836ZM3.46094 3.38086l.00195.00195.00195-.00195zm.00195.00195c-.42072.41375-.8214.85235-1.1914 1.32031 0 0-.00225.012-.00587.01563-.22534.54867-.48457 1.3216-.66992 1.88477.14898.14535.33448.28349.54883.41796.33433-.46518.79364-1.06087 1.14258-1.5078.17073-.54143.43548-1.2525.64258-1.7793-.1844-.11215-.33993-.2322-.4668-.35157Zm11.31836.52734c.4485.92496.77407 1.66902 1.23633 2.98633-.6919.635-1.40973 1.25594-2.14453 1.85352a115.7121 115.7121 0 0 1-.60938-.29297c.70758-.63443 1.38006-1.27556 2.11719-2.01562-.35197-1.01946-.67735-1.88363-.97656-2.63672-.0004-.0004.01565.0047.37695.10546zM2.41406 9.0625c.86184.12732 1.86338.15634 2.9668.0996.72448.6061 1.55666 1.12022 2.66602 1.65821.58175.87448 1.2899 1.80434 2.23828 2.9082-.38338 1.3918-.64943 2.4489-.98243 4.17774.38721.37202.73084.68634 1.06055.97656-.1579.71876-.26302 1.30403-.3418 1.90235-1.17492.1452-2.34363.27701-3.33789.3164-.632-.35033-1.3539-.7714-2.11328-1.31054-.16764.16503-.30908.32691-.42383.48437-1.52965-1.4295-2.63206-3.1043-3.29101-5.55664-.02458-.09153-.04463-.18145-.0625-.27148.11145-.1633.245-.3306.39062-.50196-.03164-.76196-.06062-1.45003.00977-2.32226.29063-.7321.71661-1.58413 1.2207-2.56055Zm14.83203.93555c.08038.10142.15203.19551.22657.29101-.01035.0423-.0187.07781-.0293.1211.1479.12316.22428.18808.34765.29101.68221.89958 1.13217 1.59025 1.67969 2.54688-.67878 1.72765-.93478 2.43437-1.32226 3.55078-.07204.0152-.14459.03303-.2168.04883.09074-.26703.1829-.54496.29101-.8711-1.6134-1.5734-1.87347-1.8424-3.33789-3.33593-.59952.16079-1.2005.30816-1.79687.44336.0851-.64947.19884-1.3142.3496-2.11524 2.16083-.64889 3.79153-.95932 3.8086-.9707zM3.15625 13.0039c-.30533 1.12658-.38373 1.92205-.44922 2.62695.64316 1.1447 1.34364 2.0049 1.91406 2.69531.66758.07264 1.4184.09774 2.23438.07617.06911-.91212.24807-1.80775.4043-2.60351-.85389-1.07923-1.41037-1.98807-1.85743-2.71485-.81751.01812-1.57393-.00371-2.24609-.08007Zm19.29297 1.04297c-.69777.4288-1.42251.84293-2.16016 1.25-.21446.79576-.24948.91586-.68554 2.34765.3998.24218.89073.55728 1.4746.94727.64317-.34883 1.19204-.72708 1.79883-1.09766.06186-.03637.11571-.07273.17383-.10547.01206 0 .01952-.0156.02343-.02734-.01315-.01315.03383-.02245.22852-.47655.26522-.55955.48625-1.1407.66797-1.74024.01088-.02912.01843-.05888.0293-.08789-.3852-.37794-.39231-.3737-1.35156-1.13672-.06626.0425-.13282.08463-.19922.12695zm-3.07813 6.28125c-.32707.35607-.78398.80239-1.1328 1.13671.10078.15118.17596.29508.23046.43555.47184-.16336.93866-.35904 1.38867-.58398 0 0 .0039-.0042.0039-.0078.37432-.34158.85011-.83969 1.19532-1.20313-.06175-.1671-.14772-.33793-.26758-.51953-.46474.26217-.94274.4998-1.41797.74218zm-2.52343-.52344c.29259.24078.5342.43964.69921.57812-.41402.74796-.70587 1.26414-.75 1.3379-.63406.16403-1.26896.30608-1.88476.416-.71425-.30196-1.1466-.51623-1.8457-.89452.01997-.16895.04622-.33773.07813-.51758 1.19164-.20783 2.4245-.47919 3.66015-.8086.0143-.03711.02864-.07421.04296-.11132z\"},\"child\":[]}]})(props);\n};\nexport function SiIndiehackers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0Zm5.4 17.2h2.4V6.8H5.4v10.4Zm4.8 0h2.4v-4h3.6v4h2.4V6.8h-2.4v4h-3.6v-4h-2.4v10.4Z\"},\"child\":[]}]})(props);\n};\nexport function SiIndigo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.99 0c-.25 0-.5.096-.691.287a.983.983 0 0 0 0 1.386.975.975 0 0 0 1.382 0 .983.983 0 0 0 0-1.386A.975.975 0 0 0 22.99 0Zm-2.444 1.959c-.25 0-.5.096-.691.287a.983.983 0 0 0 0 1.386.977.977 0 0 0 1.382 0 .981.981 0 0 0-.691-1.673ZM6.384 4.408a.98.98 0 0 0 0 1.959.979.979 0 0 0 0-1.959Zm2.928 0a.979.979 0 0 0 0 1.959.978.978 0 1 0 0-1.959Zm3.42 0a.979.979 0 0 0 0 1.959.98.98 0 0 0 0-1.959Zm2.931 0a.979.979 0 0 0 0 1.959.979.979 0 0 0 0-1.959Zm2.931 0a.978.978 0 1 0-.001 1.961.978.978 0 0 0 .001-1.961Zm-2.931 2.939a.98.98 0 0 0 0 1.958.98.98 0 0 0 0-1.958Zm2.931 0a.98.98 0 0 0 0 1.959.977.977 0 0 0 .976-.979.978.978 0 0 0-.976-.98Zm-5.373 1.959a.97.97 0 0 0-.691.287.979.979 0 0 0 1.382 1.386.981.981 0 0 0-.691-1.673Zm5.373.98a.979.979 0 0 0 0 1.959.979.979 0 0 0 0-1.959Zm-7.327 1.469a.979.979 0 0 0 0 1.959.979.979 0 0 0 0-1.959Zm7.327 1.47a.98.98 0 0 0 0 1.958.978.978 0 0 0 0-1.958Zm-9.282.489a.981.981 0 0 0-.69 1.673.975.975 0 0 0 1.381 0 .981.981 0 0 0-.691-1.673Zm-8.303 2.45a.978.978 0 1 0 .004 1.956.978.978 0 0 0-.004-1.956Zm2.931 0a.978.978 0 1 0 .004 1.956.978.978 0 0 0-.004-1.956Zm2.931 0a.978.978 0 0 0 0 1.958.978.978 0 0 0 0-1.958Zm11.723.489a.98.98 0 0 0 0 1.958.978.978 0 0 0 0-1.958Zm-11.723 2.45a.978.978 0 0 0 0 1.958.978.978 0 0 0 0-1.958Zm0 2.938a.979.979 0 0 0 0 1.959.979.979 0 0 0 0-1.959Z\"},\"child\":[]}]})(props);\n};\nexport function SiInductiveautomation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.998c0-.616-2.647-4.598-2.647-4.598-.21-.362-.885-.362-1.507-.001-.622.361-.956.947-.745 1.31l.294.506.821 1.425H9.004l-1.43-.002c-.418 0-.758.61-.76 1.36v.004c.002.75.342 1.36.76 1.36l1.43-.001h3.932l-.82 1.424-.295.507c-.21.362.123.949.745 1.31.622.36 1.297.36 1.507-.002 0 0 2.647-3.982 2.647-4.598v-.004M12 19.473a7.472 7.472 0 1 1 0-14.945 7.472 7.472 0 1 1 0 14.945zM21.937 12c0-.322-.015-.64-.046-.955L24 9.63a12.032 12.032 0 0 0-.42-1.577l-2.534-.172a10.03 10.03 0 0 0-.958-1.655l1.116-2.274a12.27 12.27 0 0 0-1.156-1.157L17.773 3.91a9.909 9.909 0 0 0-1.656-.958L15.945.419A12.085 12.085 0 0 0 14.37 0l-1.415 2.108a10.124 10.124 0 0 0-1.912 0L9.631 0A12.02 12.02 0 0 0 8.05.422l-.17 2.531a9.905 9.905 0 0 0-1.657.958L3.95 2.795c-.41.36-.797.746-1.156 1.157l1.119 2.274a9.976 9.976 0 0 0-.959 1.655L.42 8.053A12.13 12.13 0 0 0 0 9.63l2.109 1.413a9.76 9.76 0 0 0 0 1.913L0 14.369a12.1 12.1 0 0 0 .42 1.579l2.534.17c.268.584.588 1.136.959 1.653l-1.12 2.275c.361.411.748.799 1.16 1.158l2.274-1.117c.517.368 1.07.69 1.654.957l.17 2.534c.513.173 1.038.317 1.578.422l1.415-2.11c.315.029.632.048.956.048.321 0 .642-.02.957-.049L14.372 24a12.208 12.208 0 0 0 1.573-.422l.172-2.534c.584-.267 1.14-.589 1.657-.957l2.274 1.117c.41-.36.796-.744 1.156-1.156l-1.115-2.274c.37-.518.69-1.07.957-1.656l2.532-.17a12.13 12.13 0 0 0 .422-1.58l-2.108-1.412a10 10 0 0 0 .045-.956m.658 6.056c.113 0 .315.021.315-.126 0-.094-.125-.111-.225-.111h-.246v.237zm.432.555h-.156l-.276-.425h-.155v.425h-.13v-.922h.401c.167 0 .329.045.329.243 0 .182-.126.25-.292.254zm.314-.457a.718.718 0 0 0-.716-.712.718.718 0 0 0-.717.712c0 .398.33.715.717.715a.72.72 0 0 0 .716-.715zm-1.563 0c0-.468.373-.841.847-.841a.84.84 0 0 1 .847.841.84.84 0 0 1-.847.844.839.839 0 0 1-.847-.844\"},\"child\":[]}]})(props);\n};\nexport function SiInertia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.901 5.331H0L6.669 12 0 18.669h6.901L13.571 12 6.9 5.331zm10.43 0H10.43L17.099 12l-6.67 6.669h6.902L24 12l-6.669-6.669z\"},\"child\":[]}]})(props);\n};\nexport function SiInfiniti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.953 11.643c0 1.51 1.83 2.69 4.601 3.344l4.841-5.523H12l-4.19 8.06C3.25 16.744 0 14.71 0 12.233c0-3.184 5.376-5.757 12-5.757s12 2.573 12 5.757c0 2.477-3.25 4.511-7.81 5.293L12 9.464h.605l4.84 5.523c2.772-.654 4.601-1.834 4.601-3.344 0-2.664-4.484-4.88-10.047-4.88-5.562 0-10.046 2.216-10.046 4.88z\"},\"child\":[]}]})(props);\n};\nexport function SiInfluxdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.778 14.482l-2.287-9.959c-.13-.545-.624-1.09-1.169-1.248L9.87.051C9.74 0 9.584 0 9.426 0c-.443 0-.909.18-1.222.443L.716 7.412C.3 7.776.092 8.504.222 9.024l2.445 10.662c.13.545.624 1.092 1.169 1.248l9.775 3.015c.13.051.285.051.443.051.443 0 .91-.18 1.223-.443l8.007-7.435c.418-.39.624-1.092.494-1.64zM10.962 2.417l7.175 2.21c.285.08.285.21 0 .286l-3.77.858c-.285.08-.674-.05-.883-.26l-2.626-2.834c-.235-.232-.184-.336.104-.26zm4.47 12.872c.079.286-.105.444-.39.365l-7.748-2.392c-.285-.079-.338-.313-.13-.52l5.93-5.514c.209-.209.443-.13.52.156zM2.667 8.267l6.293-5.85c.21-.209.545-.18.754.025L12.86 5.85c.209.21.18.545-.026.754l-6.293 5.85c-.21.21-.545.181-.754-.025L2.64 9.024a.536.536 0 01.026-.757zm1.536 9.284L2.54 10.244c-.08-.285.05-.34.234-.13L5.4 12.949c.209.209.285.624.209.909L4.462 17.55c-.079.285-.208.285-.26 0zm9.202 4.264l-8.217-2.522a.547.547 0 01-.364-.675l1.378-4.421a.547.547 0 01.675-.365l8.216 2.522c.285.079.443.39.364.675L14.08 21.45a.553.553 0 01-.674.365zm7.279-5.98L15.2 20.93c-.209.209-.31.13-.234-.155l1.144-3.694c.079-.285.39-.573.674-.624l3.77-.858c.288-.076.339.054.13.234zm.598-1.09l-4.523 1.039a.534.534 0 01-.65-.39l-1.922-8.372a.534.534 0 01.39-.65L19.1 5.335a.534.534 0 01.649.39l1.923 8.371c.079.31-.102.596-.39.65Z\"},\"child\":[]}]})(props);\n};\nexport function SiInfomaniak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.4 0A2.395 2.395 0 0 0 0 2.4v19.2C0 22.9296 1.0704 24 2.4 24h19.2c1.3296 0 2.4-1.0704 2.4-2.4V2.4C24 1.0704 22.9296 0 21.6 0H10.112v11.7119l3.648-4.128h6l-4.58 4.3506 4.868 8.1296h-5.52l-2.5938-5.0211L10.112 16.8v3.264H5.12V0Z\"},\"child\":[]}]})(props);\n};\nexport function SiInfoq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.931 8.321c-.448 0-.858.064-1.23.191a3.033 3.033 0 0 0-1.835 1.728c-.187.451-.28.962-.28 1.533 0 .819.19 1.508.564 2.07l.007.01c.018.027.036.054.056.08l.023.032a3.006 3.006 0 0 0 .143.18l.018.02a2.947 2.947 0 0 0 1.32.87 3.768 3.768 0 0 0 1.215.18c.33 0 .644-.035.94-.105a3.24 3.24 0 0 0 .81-.306 2.59 2.59 0 0 0 1.037.7c.243.089.505.147.786.175L24 14.504a2.581 2.581 0 0 1-.552-.122 2.343 2.343 0 0 1-.796-.465 2.885 2.885 0 0 0 .278-.454 3.05 3.05 0 0 0 .228-.633l.002-.006c.077-.318.116-.669.116-1.051 0-1.045-.305-1.88-.915-2.51-.61-.628-1.42-.942-2.43-.942ZM0 8.471v6.584h1.62V8.472Zm9.88 0c-.575 0-.989.115-1.241.344-.253.23-.38.604-.38 1.122a3.057 3.057 0 0 0 .02.342h-.753v.897h.752v3.879h1.48V11.176h.92v-.897h-.92v-.187c0-.2.044-.333.132-.4.087-.067.267-.1.54-.1h.248V8.567a3.35 3.35 0 0 0-.797-.095zm10.051 1.23c.522 0 .93.183 1.226.548.295.366.443.874.443 1.524 0 .277-.029.527-.083.753a2.384 2.384 0 0 1-.051.184l-.013.04a2.05 2.05 0 0 1-.056.142l-.027.06a1.829 1.829 0 0 1-.097.178l-.026.04a1.464 1.464 0 0 1-.322.353l-.008.006-.008.005a1.374 1.374 0 0 1-.27.162c-.003 0-.006.002-.008.003a1.527 1.527 0 0 1-.323.101h-.005l-.003.001c-.116.023-.239.034-.369.034-.521 0-.93-.183-1.225-.549a1.66 1.66 0 0 1-.102-.141l-.002-.002c-.031-.049-.06-.1-.087-.152l-.002-.004a1.925 1.925 0 0 1-.074-.163l-.012-.034a2.874 2.874 0 0 1-.164-1.017c0-.644.149-1.15.446-1.519.297-.369.704-.553 1.222-.553zm-6.577.3c-.79 0-1.43.24-1.915.72-.485.48-.728 1.109-.728 1.889 0 .072.004.141.008.21v.002a3.2 3.2 0 0 0 .024.239l.002.016c.01.07.022.139.036.206l.012.052a2.639 2.639 0 0 0 .126.395l.032.072c.021.046.042.091.066.135l.05.089c.023.036.044.073.068.109.027.041.058.08.088.12l.05.066a2.382 2.382 0 0 0 1.253.793c.085.022.172.04.26.055h.001c.18.03.368.045.567.045.793 0 1.433-.239 1.92-.717.058-.056.112-.115.163-.176v-.002c.036-.042.067-.086.098-.13.016-.02.033-.041.047-.063.032-.047.06-.096.088-.146.011-.02.024-.038.034-.058.031-.057.058-.117.084-.178l.015-.035c.028-.068.053-.138.075-.21l.004-.012v-.003a2.667 2.667 0 0 0 .099-.49 3.29 3.29 0 0 0 .02-.262v-.003c0-.04.004-.079.004-.12 0-.782-.242-1.412-.726-1.89s-1.126-.717-1.925-.717zm-7.74.046c-.298 0-.567.047-.807.14-.239.095-.454.238-.645.429v-.455h-1.48v4.894h1.48V12.173c0-.352.063-.6.19-.744.126-.144.338-.216.635-.216.252 0 .436.077.553.232.116.154.175.397.175.728v2.882h1.48V12.1c0-.695-.13-1.21-.39-1.548-.26-.337-.657-.505-1.19-.505zm7.74 1.102a.99.99 0 0 1 .825.396c.205.264.307.619.307 1.065 0 .055-.001.108-.004.16v.002c-.003.046-.008.09-.013.134v.003l-.013.083c-.003.018-.005.037-.009.054-.004.023-.01.046-.015.068a1.8 1.8 0 0 1-.075.242 1.397 1.397 0 0 1-.092.184l-.02.035a1.247 1.247 0 0 1-.068.096.992.992 0 0 1-.823.396.988.988 0 0 1-.822-.394 1.236 1.236 0 0 1-.065-.093l-.027-.045a1.29 1.29 0 0 1-.107-.232l-.012-.034a1.662 1.662 0 0 1-.026-.088l-.002-.007a2.03 2.03 0 0 1-.06-.364 2.637 2.637 0 0 1-.008-.2c0-.44.103-.794.31-1.06.206-.268.479-.401.819-.401z\"},\"child\":[]}]})(props);\n};\nexport function SiInformatica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0l3.547 10.788-4.5-1.255-.25 4.43 7.121 4.035V18h.001l5.919-6zm-.64.65L.162 12l6.32 6.407L12 24l5.184-5.255-9.736-3.856z\"},\"child\":[]}]})(props);\n};\nexport function SiInfosys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.2734 7.5703c-.3984 0-.7246.3282-.7246.7266 0 .4013.3262.7246.7246.7246.3982 0 .7266-.3233.7266-.7246 0-.3984-.3284-.7266-.7266-.7266zm0 .1074c.3395 0 .6192.2795.6192.6192 0 .3396-.2797.6172-.6192.6172-.3397 0-.6171-.2776-.6171-.6172 0-.3397.2774-.6192.6171-.6192zm-15.1367.0547c-.9001 0-1.549.5917-1.6387 1.6406h-.6953v.5215h.6856c.0028 1.6664-.002 3.334-.002 4.998h.7774c-.0022-1.6659-.002-3.3319-.002-4.998h1.748c-.646.5242-1.0663 1.3739-1.0663 2.334 0 1.593 1.1564 2.8848 2.582 2.8848 1.4258 0 2.582-1.2918 2.582-2.8848 0-.1896-.0174-.3753-.0488-.5547.2565.4131.7488.6133 1.4082.8985.7784.329 1.2129.6165 1.2129 1.1074 0 .5885-.556.8955-1.1817.8906-.611 0-1.0883-.249-1.6191-.7305v.9239c.3239.2088.8256.3281 1.3691.3281.6844-.0023 2.0918-.249 2.0918-1.6758-.0044-.8557-.715-1.2239-1.4863-1.5586-.9383-.4653-1.2965-.5629-1.2871-1.0957 0-.7088.6178-.9219 1.0996-.9219.2099 0 .3891.0293.5586.086.3163.1194.4209.3553.5332.6113.5283 1.2356 1.0344 2.4811 1.5488 3.7227-.2464.5637-.526 1.1519-.7168 1.5273l-.0039.0098-.1601.2969-.1797.336h.7617c.3322-.7342 1.7436-4.1688 2.0469-4.9083.1995.533.6857.7467 1.4297 1.0684.7783.329 1.2148.6166 1.2148 1.1074 0 .5886-.5562.8936-1.1816.8887-.6348 0-1.1257-.2685-1.6817-.7871l-.0507-.041v.9413c.3115.259.8713.4102 1.4824.4102.6844-.0022 2.0918-.249 2.0918-1.6758-.0042-.8557-.7151-1.2258-1.4863-1.5605-.9384-.4654-1.2593-.563-1.25-1.0957 0-.709.5787-.9219 1.0605-.9219.5483 0 .8958.2037 1.379.5547V9.584c-.3923-.1381-.7212-.1915-1.1642-.1895-.8912-.0018-1.6966.3234-1.9004 1.0762l-1.1054 2.7344-.1153.3437-.1015-.3437c-.5022-1.2089-.9934-2.4236-1.4863-3.6309-.3154-.0828-.8307-.201-1.1934-.1953-.0377-.0007-.0758-.0002-.1152 0-1.0302-.002-2.0235.4332-2.0235 1.457 0 .0596.0022.1155.006.17-.412-.9813-1.3036-1.6602-2.338-1.6602-.1245 0-.2472.0085-.3672.0273H7.254c-.1194-.733.2228-1.1503.7383-1.1503.6472-.0006.9242.192 1.205.4511 0 0 .0195-.0007.0274 0 .0038-.2457.002-.5318.002-.7949-.185-.0857-.5061-.1465-1.0899-.1465zM0 7.756v7.1367h.8594V7.7559zm23 .1386v.7657h.1387v-.3086h.164l.1192.3086h.1543l-.1407-.3301c.0494-.0248.1329-.0518.1329-.1875 0-.2224-.1673-.248-.3125-.248zm.1387.1328h.1543c.0834 0 .1289.0337.1289.1016 0 .068-.0524.0996-.1172.0996h-.166zM4.1719 9.3555c-.945 0-1.3429.3359-1.6582.6738a.2474.2474 0 00-.0352.0644h-.0078v-.043l-.0098-.623H1.707v5.4649h.7754v-3.9961c.0226-.4905.7134-.9746 1.252-.9746.6477 0 1.1777.4364 1.1777 1.039v3.9317h.7754c-.0019-1.429-.002-2.858-.002-4.2871-.0234-.4835-.6094-1.25-1.5136-1.25zm6.2832.5566c.9741-.0175 1.7825 1.0214 1.8047 2.3184.022 1.297-.7504 2.3614-1.7246 2.3789-.9742.0171-1.7825-1.0195-1.8047-2.3164-.0221-1.2971.7503-2.3634 1.7246-2.3809Z\"},\"child\":[]}]})(props);\n};\nexport function SiInfracost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5526 0.44419L8.04 7.98337H12.0699C14.7831 7.98337 16.02 10.546 16.02 11.9876V23.3593C16.02 23.7131 16.3058 24 16.6584 24H23.3217C23.6743 24 23.9601 23.7141 23.9606 23.3603C23.9652 20.0654 24 13.2819 24 7.98337C24 3.34017 20.3118 0.33410 16.6801 0.00515C16.2585 -0.03303 15.8518 0.14382 15.5526 0.44419Z M0 0.64C0 0.28654 0.28797 0 0.6432 0H1.4472C1.80243 0 2.0904 0.28654 2.0904 0.64V7.36C2.0904 7.71346 1.80243 8 1.4472 8H0.6432C0.28797 8 0 7.71346 0 7.36V0.64ZM3.618 0C3.26277 0 2.9748 0.28654 2.9748 0.64V7.36C2.9748 7.71346 3.26277 8 3.618 8H4.422C4.77723 8 5.0652 7.71346 5.0652 7.36V0.64C5.0652 0.28654 4.77723 0 4.422 0H3.618ZM6.5928 0C6.23757 0 5.9496 0.28654 5.9496 0.64V7.36C5.9496 7.71346 6.23757 8 6.5928 8H8.04L6.32638 9.7051C6.08514 9.94514 5.9496 10.2707 5.9496 10.6102V23.36C5.9496 23.7135 6.23757 24 6.5928 24H7.3968C7.75203 24 8.04 23.7135 8.04 23.36V8V0.64C8.04 0.28654 7.75203 0 7.3968 0H6.5928ZM0.37678 15.6251C0.13553 15.8651 0 16.1907 0 16.5302V23.36C0 23.7135 0.28797 24 0.6432 24H1.4472C1.80243 24 2.0904 23.7135 2.0904 23.36V14.3063C2.0904 14.1637 1.9172 14.0923 1.81589 14.1931L0.37678 15.6251ZM2.9748 13.5702C2.9748 13.2307 3.11033 12.9051 3.35158 12.6651L4.7907 11.2331C4.892 11.1323 5.0652 11.2037 5.0652 11.3463V23.36C5.0652 23.7135 4.77723 24 4.422 24H3.618C3.26277 24 2.9748 23.7135 2.9748 23.36V13.5702Z\"},\"child\":[]}]})(props);\n};\nexport function SiIngress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.55 6.55v10.9c0 .434-.184.749-.55.95l-9.45 5.45c-.367.2-.733.2-1.1 0L2 18.4c-.366-.201-.55-.516-.55-.95V6.55c0-.434.184-.749.55-.95L11.45.15c.367-.2.733-.2 1.1 0L22 5.6c.366.201.55.516.55.95zM21 17.8l-3.9-2.25.5-.9 3.9 2.249V6.549l-.05-.048-8.95-5.2v4.5h-1v-4.5l-9 5.2v10.398l3.9-2.248.5.899L3 17.8l8.95 5.15h.1L21 17.8zM4.55 7.675c0-.016.016-.025.05-.025h14.8c.033 0 .05.009.05.025v.075l-7.4 12.799c0 .034-.017.05-.05.05-.034 0-.05-.016-.05-.05L4.55 7.75v-.075zm6.95 5.076c0-.301-.15-.533-.45-.7L6.9 9.65h-.05v.05l4.6 7.9c.033 0 .05-.019.05-.051v-4.8zm.9-1.601l4.2-2.45H7.4l.05.051 4.15 2.399a.701.701 0 00.8 0zM17.15 9.7v-.05h-.05l-4.15 2.4c-.3.167-.45.417-.45.749v4.8h.1l4.55-7.899z\"},\"child\":[]}]})(props);\n};\nexport function SiInkdrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.8538 1.8124C9.423.8338 10.471.1434 11.607.0204c.9389-.1016 1.9145.1801 2.6558.7704a3.665 3.665 0 0 1 .873 1.0085c2.1647 3.7212 4.314 7.4514 6.471 11.1772.3424.5943.5005 1.282.4751 1.9621-.0216.5791-.1762 1.1527-.4632 1.6586-1.067 1.8622-2.1418 3.72-3.2127 5.58-.6375 1.1018-1.868 1.8129-3.134 1.8209-2.1693.0043-4.3387 0-6.508 0-1.2684-.0027-2.4975-.711-3.1373-1.8003-1.0817-1.8593-2.1556-3.7232-3.2335-5.585-.6362-1.1042-.6358-2.5271-.0076-3.6282 2.1483-3.7285 4.312-7.4481 6.468-11.1721ZM4.625 14.1495a1.1916 1.1916 0 0 0 0 1.183c1.074 1.864 2.085 3.6278 3.1744 5.4828a1.1875 1.1875 0 0 0 1.019.5845c2.1693.0046 4.2194.0135 6.3887 0a1.1873 1.1873 0 0 0 1.0179-.5912c1.0746-1.858 2.0949-3.6112 3.154-5.4781a1.1876 1.1876 0 0 0-.004-1.176c-2.1496-3.73-4.1723-7.26-6.3524-10.9724-.2298-.3875-.666-.6167-1.1181-.5809a1.1856 1.1856 0 0 0-.9324.5853 2974.9829 2974.9829 0 0 0-6.347 10.963Zm8.4659 4.0637a1.2598 1.2598 0 0 1-2.182 0L8.745 14.465a1.2597 1.2597 0 0 1 1.091-1.8896h4.328a1.2597 1.2597 0 0 1 1.091 1.8896l-2.164 3.7481Z\"},\"child\":[]}]})(props);\n};\nexport function SiInkscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.666 14.871c.237.147 3.818.875 4.693 1.02.303.064.088.376-.33.587-.943.251-5.517-1.607-4.363-1.607zm5.647-13.264l3.505 3.56c.333.34.328.998.142 1.187l-1.74-1.392-.342 2.061-1.455-.767-2.328 1.47-.771-3.1L9.073 6.79H7.16c-.78 0-.871-.99-.163-1.698 1.237-1.335 2.657-2.696 3.429-3.485.776-.793 2.127-.77 2.887 0zM9.786.97l-8.86 9.066c-2.993 3.707 2.038 3.276 4.194 4.343.774.791-2.965 1.375-2.191 2.166.773.791 4.678 1.524 5.453 2.314.773.791-1.584 1.63-.81 2.42.773.792 2.563.042 2.898 1.868.238 1.304 3.224.56 4.684-.508.774-.791-1.48-.717-.706-1.508 1.923-1.967 3.715-.714 4.373-2.686.325-.974-2.832-1.501-2.057-2.292 2.226-1.3 9.919-2.146 6.268-5.796L13.85.97c-1.123-1.078-2.998-1.09-4.063 0zm10.177 17.475c0 .45 3.314.745 3.314-.106-.472-1.366-2.922-1.274-3.314.106zm-14.928 2.39c.784.679 1.997-.169 2.36-1.116-.76-1.01-3.607.037-2.36 1.116zm14.512-1.466c-1.011.908.114 1.828 1.111 1.242.222-.225-.006-1.016-1.11-1.242Z\"},\"child\":[]}]})(props);\n};\nexport function SiInoreader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.627 0 12 5.373 12 12s-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0m3.6 4.8a3.6 3.6 0 1 0 0 7.2 3.6 3.6 0 0 0 0-7.2\"},\"child\":[]}]})(props);\n};\nexport function SiInsomnia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.1356 3.4577c4.7179 0 8.5424 3.8245 8.5424 8.5424 0 4.7178-3.8245 8.5423-8.5424 8.5423-4.7178 0-8.5423-3.8245-8.5423-8.5423 0-1.153.2284-2.2527.6425-3.2562.6046.8233 1.5796 1.3579 2.6795 1.3579 1.8347 0 3.322-1.4874 3.322-3.3221 0-1.0999-.5345-2.0749-1.3579-2.6795 1.0036-.414 2.1032-.6425 3.2562-.6425zM12 0C5.3726 0 0 5.3726 0 12s5.3726 12 12 12 12-5.3726 12-12S18.6274 0 12 0Zm0 1.2203c5.9534 0 10.7797 4.8263 10.7797 10.7797S17.9534 22.7797 12 22.7797 1.2203 17.9534 1.2203 12 6.0466 1.2203 12 1.2203Z\"},\"child\":[]}]})(props);\n};\nexport function SiInspire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm3.873 3.6875c1.0359-.0008 1.8758.8391 1.875 1.875-.0003 1.035-.8399 1.8738-1.875 1.873C2.8387 7.4352 2.0003 6.5968 2 5.5625c-.0008-1.035.838-1.8747 1.873-1.875zm4.4903.5078h3.5312l6.7344 10.8125h.045V4.1953H22v16.1172h-3.5469l-6.7168-10.791h-.0468v10.791H8.3633V4.1953zm-6.123 4.7871s.013.0041 3.3886 0v11.2754H2.2402V8.9824z\"},\"child\":[]}]})(props);\n};\nexport function SiInsta360 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.402 11.19c-.701.7-1.838.7-2.54 0a1.796 1.796 0 1 1 2.539 0m.998-3.614a6.17 6.17 0 0 0-4.39-1.818 6.17 6.17 0 0 0-4.392 1.818 6.217 6.217 0 0 0 0 8.782 6.169 6.169 0 0 0 4.39 1.819 6.169 6.169 0 0 0 4.392-1.82 6.217 6.217 0 0 0 0-8.78m1.554 10.33a8.353 8.353 0 0 1-5.945 2.462 8.353 8.353 0 0 1-5.944-2.46c-3.277-3.277-3.277-8.607 0-11.883a8.353 8.353 0 0 1 5.944-2.46 8.35 8.35 0 0 1 5.944 2.46c3.278 3.276 3.278 8.606 0 11.882m4.51-11.293a20.81 20.81 0 0 1-.137-.292 2.779 2.779 0 0 1 .485-3.007c.018-.014.08-.08.117-.118a.412.412 0 0 0 .053-.069.66.66 0 0 0-.097-.81.296.296 0 0 0-.026-.02 1.113 1.113 0 0 0-.18-.11l-.068-.034A19.08 19.08 0 0 0 9.71.443l-.016.022a11.708 11.708 0 0 0-6.012 3.218c-3.75 3.75-4.44 9.403-2.065 13.852.023.043.107.195.123.233a2.778 2.778 0 0 1-.556 2.919 4.39 4.39 0 0 0-.072.08.66.66 0 0 0 0 .934c.06.056.127.105.198.146l.01.006a19.08 19.08 0 0 0 13 1.677v.002a11.708 11.708 0 0 0 5.997-3.216c3.709-3.708 4.423-9.277 2.144-13.702\"},\"child\":[]}]})(props);\n};\nexport function SiInstacart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.629 9.619c1.421 1.429 2.58 3.766 1.917 5.152-1.778 3.715-15.04 10.226-16.169 9.1C.252 22.746 6.768 9.476 10.481 7.697c1.388-.66 3.724.51 5.152 1.92l-.005.014v-.012zm7.028-1.566c-.231-.855-.821-1.717-1.7-1.82-1.61-.186-4.151 2.663-3.971 3.339.181.69 3.766 1.875 5.1.915.691-.494.781-1.56.556-2.414l.015-.02zM17.666.158c1.198.324 2.407 1.148 2.551 2.382.261 2.259-3.732 5.819-4.68 5.564-.948-.251-2.618-5.284-1.269-7.162.695-.972 2.201-1.106 3.399-.788v.004h-.001z\"},\"child\":[]}]})(props);\n};\nexport function SiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077\"},\"child\":[]}]})(props);\n};\nexport function SiInstapaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.766 20.259c0 1.819.271 2.089 2.934 2.292V24H6.301v-1.449c2.666-.203 2.934-.473 2.934-2.292V3.708c0-1.784-.27-2.089-2.934-2.292V0h11.398v1.416c-2.662.203-2.934.506-2.934 2.292v16.551z\"},\"child\":[]}]})(props);\n};\nexport function SiInstatus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.994 21.028c3.5843-1.91 5.471-5.759 5.0561-9.5637-1.3206 1.0851-2.6237 2.3203-3.8709 3.6906-2.0656 2.2694-3.7476 4.6559-4.9953 6.9817 1.2946-0.09715 2.5907-0.45868 3.8101-1.1086zm-13.394-2.5626c-1.3408 1.8191-2.3771 4.4991-1.3032 5.3066 1.5151 1.1394 8.404-2.0133 13.908-8.8051 5.504-6.7918 7.3265-13.796 4.879-14.873-1.1283-0.49644-3.486 1.083-4.8394 2.3943l0.58412 0.31415c1.332-0.85276 3.5528-1.7338 1.4995 1.9758-0.0097 0.01768-0.01962 0.03541-0.02949 0.05317-2.9067-2.2075-6.9471-2.662-10.379-0.8328-4.7026 2.506-6.4831 8.3499-3.9771 13.052 0.58979 1.1067 1.3644 2.0516 2.2655 2.8168-3.5586 2.7493-2.6905 0.35965-2.1925-0.8162z\"},\"child\":[]}]})(props);\n};\nexport function SiInstructables (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4174.0004c-.1655-.0025-.319.0073-.4493.0363-.902.201-1.2372 1.1122-1.6211 1.9531-.1036.2255-.192.107-.5576.9754-1.1487-.137-2.5594-.1066-3.4065-.2041.1402.4845.8319.198 1.295.2041.7587.0061 1.5447.2011 2.1115.2042.0335.2102.2134.4414.25.6486.1188.6917.0764 1.3407-.1126 2.005-.1828.649-1.2492 1.1886-1.499 2.0448-.1037.3535.0118.6551-.1375 1.0909-.1097.137-.3256.1702-.475.2707-1.0572 1.1914-1.6729 3.178-1.9745 4.9026.7252.3382 1.3467.0185 1.7032.2714.2163.061.0916-.2255.2714-.2041.137.0213.1306.1828.2707.204-.1127 1.027.0673 1.7308.0673 2.7912 1.1152.4814 2.3768.399 3.9551.4112-.0182.2042.3868.9602.0578 1.4569.4875.4966-.2407 2.1783.7587 2.221-.332.4874-.5579 1.0785-.5457 1.9073-.2407.1066-.0396-.2316-.2041-.2041-1.691-.0427-2.6844-.3078-4.4943-.2042.5058.2072 1.4444.119 2.1787.2714.0792.0122.055.125.0672.2041.2956-.1401 1.1029-.0304 1.633 0-.2376.125.3325.2468.3416 0 .457.0701.8287.5852 1.2248.6797 1.3072.3138 2.0447-.6313 2.8613-1.2224.128.2681.7553.0152 1.1575 0-.3352-.198-1.1365-.134-1.499 0 .1218-.9629-.3534-1.3285-.8166-1.7032.189-.1067.3958-.1948.5451-.341.0183-1.3407-.0546-1.7948-.1368-2.9953.7252-.1493 1.7613-.2437 2.6572-.4082-.317.969-.1404 1.444-.2714 2.7238.1676.0823.399.101.6124.1375-.6704.3595-1.0573 1.8947-.2042 2.3823-.0761.1736-.3655.1344-.6123.1374.0091.3565.8498-.1221.7492.341.457-.3687 3.1811-.0394 4.2902.0673-.1188-.6094-1.453-.1192-2.0442-.5457.7648-.4876.7768-1.9618-.0673-2.3823.646-.4296.2683-2.1969.4755-3.1993.6186-.2682 1.5905-.1801 2.1115-.5458-.0152-.8714-.1825-1.5873-.341-2.3156.2164-.1493.7495-.3351 1.0206-.2041.1493-.0122.146-.174.137-.3416.0609-.1645.201.1526.4082.0673.0091-.8136-.3684-1.2249-.7493-1.9074-.5728-1.0238-1.3196-2.0295-2.453-2.453-.9538-1.6363-1.9711-3.2054-4.1528-3.6106-.1219-.3078-.049-.8135-.0672-1.2248.3016-.265.564-.573.5457-1.158.8288-.3535 2.1297.0852 2.928 0-.128-.4206-.8656-.1555-1.3623-.2042-.527-.0518-1.0481-.2803-1.499 0-.131-.387-.3533-1.1057-.591-.929-.1402-.3382-.1313-.8657-.0917-1.3836-.847-.1737-1.7762-.4385-2.7238-.5452-.4228-.048-1.0288-.1665-1.5253-.1737zm-.382.2374c1.5448.134 3.1656.1919 4.427.6124.2164 1.551-.085 2.9803.1375 4.6318-1.6484-.2803-3.5102-.6189-5.177-.3416.0793-1.6302.1463-3.434.6124-4.9026zM8.627.5092c-.0945 1.5387-.396 2.8426-.4083 4.6312-.323.2437-.6734.46-1.0908.6124-.0366-.5698.021-1.3403.1369-1.77.0975.1067.2652.143.4755.137.5545-.64.28-1.7428-.0673-2.5198.2803-.3991.4908-.8714.954-1.0908zm2.2626.7903c-.2944-.0043-.5763.0233-.8308.0964.3322.0061.7194-.037.954.0667-.4753.2072-.7955.5667-.7498 1.295.7282 1.0115 1.9712-.2254 1.2247-1.2248.4754-.0335 1.3378.3292 1.9746.2714-.6947-.1943-1.6894-.4917-2.5727-.5047zm.356.3535c.297.041.3246.751.2421 1.0284-.32.387-.9866.1405-1.0902-.2708.1615-.0853-.0248-.5212.2707-.4755-.0822.515.1649.701.5458.7498.0944-.131.1797-.2713.204-.4755-.0578-.2346-.2832-.3048-.4082-.4755.0644-.0464.1218-.0716.1726-.0797a.2142.2142 0 0 1 .0631-.0012zm-3.5726.4225c.1189.4175.2135 1.1727.0673 1.77-1.039-.0245-.7224-1.581-.0673-1.77zm3.1327 0c.2255.003.481-.0274.475.2042-.0366.0975-.1067.1645-.2042.204-.0853-.14-.3287-.1248-.2708-.4082zm1.6925.0238c-.2755.0209-.5396.2472-.535.7957.2407.1188.4021.3232.8165.2714.6685-.5656.1777-1.1018-.2815-1.067zm.0107.0429c.2986.0213.5146.119.475.4755-.2194-.0945-.2739-.3567-.475-.4755zm1.3617.1375c.393.4326.4144 1.7184-.2042 1.9073-.0243-.5667-.061-1.4412.2042-1.9073zm-1.4938.069c.0266.002.0497.0214.0649.0678-.189.1036-.009.4084.0702.4785-.2681.0396-.302-.1527-.3416-.3416.016-.0594.1267-.2109.2065-.2047zm.1321.135c.2133-.0304.3043.0606.2708.2709-.2133.0335-.3012-.0575-.2708-.2708zm-3.4064.8166c-.0792.0122-.0581.1249-.0673.2041 1.5266.1828 2.7729.6487 4.0861.5451-.2133-.3504-.7098-.1736-1.0206-.204-.9446-.0946-1.8924-.4537-2.8613-.475-.0793.0091-.1217-.0154-.137-.0702zm2.093 1.9014c.9318.0446 2.0293.469 2.5412.6183.1401.0396.3231-.0427.4755 0 .4844.134 1.1974.4724 1.499.6826.844.5911 1.4262 1.807 1.9747 2.7911.195.3535.5148.6095.6123.8867.3017.8593.3501 1.7671.7493 2.5198l.0732.341c.2163.7587.4269 1.8193.5457 2.453-3.0287.4297-5.872.7495-8.3096 1.0207-2.0232-.3291-4.1683-.1735-5.9934-.341-.3017-2.3036.3993-4.5952.2713-6.9474.0122-.192.2227-.1856.2714-.341-.1737-.0092-.3507-.0122-.3416-.2042.198-2.1054 2.4071-3.9675 4.6985-3.3368.2376-.0366.305-.1155.5457-.1369a2.8444 2.8444 0 0 1 .3868-.006zM9.894 8.9997a1.6087 1.6087 0 0 0-.3136.0226c-.2255.3474-.1552.6615-.137 1.1581 1.1142 1.1912 1.8694-1.134.4506-1.1807zm5.0633.0173c-1.3532.0321-.3819 2.6965.6837 1.3003.253-.8074-.1368-1.2554-.545-1.295a1.1653 1.1653 0 0 0-.1387-.0053zm-2.3609.0297c-.2254-.0106-.472.067-.7034.247-.0853.4174.0887.9444.3416 1.2248.518.0426.9107-.0429 1.1575-.2714.0943-.727-.2996-1.177-.7957-1.2004zm-7.3062.1095c.3595 1.0939-.0454 2.523-.0667 3.6779-.5667-.0915-1.0694-.2464-1.7032-.2708.329-1.3955.6638-2.7885 1.7699-3.407zm4.8847.0673a.264.264 0 0 1 .1523.0702c.1615.1615-.0121.3349 0 .5451-.2772.067-.2741-.006-.6123 0 .0487-.2529-.116-.2922-.0673-.5451.1943.0229.3695-.088.5273-.0702zm2.2995.003c.5982-.0527.9245.8043-.103.7498-.0761-.2194-.2739-.3172-.341-.5457.1538-.1314.306-.192.444-.2041zm2.5793.013c.2693-.001.52.1634.52.5327-.2345.2742-.4719.5575-.9533.4082-.0305-.1645.1215-.1496.0667-.3416-.1341.003-.085.1863-.2708.1375-.0857-.461.291-.7355.6374-.7368zm3.107.2583c1.0421.5028 1.6454 1.4442 2.1115 2.5198-.4966.0426-.7891-.1185-1.295-.0667-.1035-.5759-.4474-.9112-.4748-1.5663.1797-.003.4021.0362.4082-.1375-.0487-.262-.3507-.4692-.5457-.2041-.0091-.2408-.195-.3045-.2041-.5452zM4.879 9.702c-.0883.2894-.0607.5207.2714.545.1067-.1919-.0181-.28.0702-.545zm5.7227.204c.003.2073-.1432.2651-.2041.4083-.384.0214-.7133-.015-.7499-.341.3626.0762.6737.0912.954-.0672zm2.5864 0v.341c-.2712.125-1.2094.2804-.9534-.204.2468.3077.7675.0337.9534-.137zm2.3162.2042c-.0275.387-.762.582-.954.2041.4113.1097.7072.0122.954-.204zm-6.332 1.3652c.1279.5028-.1341.6338-.2042 1.0909.9263.067 1.9806-.0213 2.791-.003.0428-.061.0824-.1223 0-.1375H9.5109c2.5534-.5271 4.2109-.3652 7.014-.2708.0763.2133-.0186.1795.0667.341-1.6149.326-3.251-.402-4.8323.0673 1.5631-.0518 3.1962.1641 4.9026.2708.0365-.3474.0883-.8317 0-1.2248-.2468-.064-.07.2929-.2042.3416-1.8647-.1402-4.6772-.125-7.0813.2041-.0944-.0883-.0666-.2957-.0666-.4755 1.4595-.2468 4.305.253 5.4477-.2041-1.7002.1036-3.7235-.0122-5.5852 0zm6.5432.0637c-.3249-.0107-.6745.0136-.8909.003.3108.3016 1.2095.0152 1.633.204-.1173-.1507-.4172-.1964-.742-.207zm3.8957.6153c.3183.0018.6615.0695.7986.2048-.46-.1585-.911.1672-1.295-.1375.1234-.0457.3054-.0683.4964-.0673zm.1505.325c.2297-.0027.459.023.5779.0839-.2072.1432-1.0789.3626-1.1581 0 .1204-.0503.3506-.0813.5802-.084zm.9641.244c.2443-.0384.3716.3498.3636.6564-.2529.134-.4389-.3077-.4755-.6124.0397-.0244.077-.0386.112-.044zm-17.2756.044c.4083 0 1.3406.0668 1.7032.341-.588-.0945-1.3833.0216-1.7032-.341zm16.8894.1369c.2133.2681.25.4813.2714.8165-.262-.0549-.2836-.7099-.2714-.8165zm-.9504.0672h.2708c.006.3139.171.463.1374.8165-.387-.0213-.332-.4843-.4082-.8165zm.6094 0c.0396.2133.3197.542.1369.7493-.1067-.1463-.3106-.5482-.137-.7493zm-16.039.1298c.4297.0108.9446.1147 1.057.3451-.5455-.0883-1.134-.1336-1.6337-.2707.0914-.0538.3189-.081.5767-.0744zm-.25.3433c.1167.0012.2099.028.219.1423-.1493.1706-.0765.5575-.3416.6124 0-.1128-.1888-.0394-.204-.137.0944-.1766.2498-.2954.204-.6123a1.524 1.524 0 0 1 .1226-.0054zm-.3933.0054c-.0183.2529-.1069.4354-.2714.5451-.0213-.2925-.006-.5512.2714-.5451zm1.2247.1339c.1158.1371.0973.5514-.0672.6124-.1432-.0762-.274-.649.0672-.6124zm.4083.0702c.0152.125.1767.4507 0 .5452-.0214-.1189-.3139-.5238 0-.5452zm14.5738 2.0413c.2255.0244.1064.393.1369.6124-2.3797.582-4.5644.7128-7.1635 1.0997l-1.2158-.0089c-1.7916.131-4.171.1646-5.856-.2041-.0334-.2407-.1007-.4446-.0672-.7493 2.2822-.1676 4.6439.3136 6.9474.1369 2.526-.195 4.9512-.7831 7.2182-.8867zm-.4083.1369c-.0548.0365-.1096.0703-.204.0672.006.198.0239.3837.2707.341.0091-.1676.0126-.329-.0667-.4082zm-2.6572.3416c-.0152.2437.0979.3562.3416.341.0518-.061.0728-.152.0667-.2708-.0792-.0823-.2407-.0794-.4083-.0702zM5.97 16.582c-.0457.2285.116.25.2714.2714.0548-.061.0763-.1526.0702-.2714zm6.9474.0673c-.1006.2132-.0033.2772.1369.4082.1736-.006.1339-.2285.1339-.4082zm-4.1129.0743c-.057-.0037-.1187.0145-.1773.0625-.0152.2438.0972.3563.341.341.1348-.185.0074-.3923-.1637-.4035zm8.8113.1964c.0092.521-.0824.5822-.0702 1.1581-1.0207.0701-1.4718-.0978-2.3828-.1374.3108-.9111 1.5511-.8714 2.453-1.0207zm-5.5822.6826c.0457.2468.0947.4935.0673.8165-.8684.0275-1.7373-.222-2.5203-.0666-.0762-.2133-.0061-.1554 0-.4083.6033-.4022 1.9137-.2288 2.453-.3416zm3.9064.6636c.1382-.0064.3265.0284.451.153h-.204c-.5694-.0172-.4774-.1424-.247-.153zm1.3824.0036c.1326-.008.2384.0107.2262.1493-.0762.0914-.5362-.0058-.6124-.1368.0945.0304.2537-.0045.3862-.0125zm-6.395.2154c.1815.0066.3368.0398.4236.138-.2468-.003-.5362.0369-.6123-.1368a2.6671 2.6671 0 0 1 .1886-.0012zm5.2935.063c.4243-.0022.8604.043 1.261.2792-.9171-.2042-2.0204.11-2.453-.2708.355.0442.7677-.006 1.192-.0083zm-6.0756.1756c.6793-.0043 1.6155.0968 2.0222.378-.972-.125-1.743.0215-2.587-.341.1402-.0222.3384-.0355.5648-.037zm5.5144.1714c.6914.0055 1.3525.0443 1.8919.2065-.1158.1798-.009.5853-.137.7499-.6367-.067-1.828.128-2.5196 0-.0366-.3779.0361-.6432.0666-.954.2339-.0023.4676-.0042.698-.0024zm-6.0119.1363c.5729.1036 1.9195.189 2.5197.2744-.0883.4936.1676.9445 0 1.295-.5972.3534-1.5266.378-2.3828.4754-.1463-.5362-.3167-1.411-.1369-2.0448zm6.9474 1.0909c.9537-.0427 1.4072.7652 1.2914 1.4294-.2072 1.2036-2.5014 1.4865-3.132.475.009-.7161.0033-1.4503.5456-1.633.064.4905-.2193.591-.204.8867.0578 1.2096 2.2818 1.3774 2.4524.2713.131-.8562-.6213-.8993-.9534-1.4294zm-.7558.2404c.0436-.0153.0947.015.1036.0607.0036.0042.0088.0046.0119.0101.0365.07.043.1458.0583.222.0091.0457-.0217.0765-.0613.0887a.9213.9213 0 0 1-.2041.0333c-.061.003-.1189-.0612-.0762-.119.0548-.0762.0884-.161.125-.2524a.0721.0721 0 0 1 .0428-.0434zm1.0296.3053c.265.006.5516.4539.4755 1.0206-.2773.4875-1.5542.5269-1.5664.341.7953.0914 1.0362-.3714 1.3622-.7492.0214-.2743-.442-.4174-.2713-.6124zm-.3636.1654c.1848-.0061.3668.2504.4308.447-.3108.2102-.5.5453-.954.6123-.1706-.1676-.4478-.2345-.4082-.6123.4692-.0397.4177-.1583.7498.0672.1493-.1432-.0335-.195 0-.4082.058-.0724.12-.104.1816-.106zm-5.2912.31c.8866.0245 1.1762.6398 1.292 1.429.0304.1889-.2531.064-.2714.204.0792.0336.1554.073.2041.137-.46.8927-3.1687 1.4504-2.7238-.4083.07 1.1761 1.779.9509 2.2483.2714.2255-.9568-.4384-1.0389-.7492-1.633zm-.4755.5452c.088.0907.2554.1019.2755.2625a.313.313 0 0 1-.0012.0785c-.131.128-.171.0061-.3416 0 .0366-.1005-.079-.3532.0673-.341zm.545 0c1.4017.5515-.1582 2.0504-1.2247 1.2277-.0944-.265-.3105-.9659.0673-1.0908.1188.198.1612.4758.1369.817.2986.4724 1.3837.3046 1.4294-.2713-.2803-.0762-.1315-.4784-.4088-.6826zm.0673.4755c.0945.0884.0672.2957.0703.4785-.3322.0426-.71.2373-.8868-.1375.4175.0305.4905-.28.8165-.341zm8.503.532c-.0694-.005-.1785.0148-.3308.0834.393.1713.5394-.0684.3309-.0834Z\"},\"child\":[]}]})(props);\n};\nexport function SiInstructure (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.996 0-5.11 2.878L12 5.76l5.115-2.878ZM6.032 3.36.918 6.237 6.036 9.12l5.115-2.879Zm11.929 0-5.112 2.878 5.115 2.882 5.118-2.879zM12 11.52.918 17.76 12 24l11.082-6.241Z\"},\"child\":[]}]})(props);\n};\nexport function SiIntel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.42 7.345v9.18h1.651v-9.18zM0 7.475v1.737h1.737V7.474zm9.78.352v6.053c0 .513.044.945.13 1.292.087.34.235.618.44.828.203.21.475.359.803.451.334.093.754.136 1.255.136h.216v-1.533c-.24 0-.445-.012-.593-.037a.672.672 0 0 1-.39-.173.693.693 0 0 1-.173-.377 4.002 4.002 0 0 1-.037-.606v-2.182h1.193v-1.416h-1.193V7.827zm-3.505 2.312c-.396 0-.76.08-1.082.241-.327.161-.6.384-.822.668l-.087.117v-.902H2.658v6.256h1.639v-3.214c.018-.588.16-1.02.433-1.299.29-.297.642-.445 1.044-.445.476 0 .841.149 1.082.433.235.284.359.686.359 1.2v3.324h1.663V12.97c.006-.89-.229-1.595-.686-2.09-.458-.495-1.1-.742-1.917-.742zm10.065.006a3.252 3.252 0 0 0-2.306.946c-.29.29-.525.637-.692 1.033a3.145 3.145 0 0 0-.254 1.273c0 .452.08.878.241 1.274.161.395.39.742.674 1.032.284.29.637.526 1.045.693.408.173.86.26 1.342.26 1.397 0 2.262-.637 2.782-1.23l-1.187-.904c-.248.297-.841.699-1.583.699-.464 0-.847-.105-1.138-.321a1.588 1.588 0 0 1-.593-.872l-.019-.056h4.915v-.587c0-.451-.08-.872-.235-1.267a3.393 3.393 0 0 0-.661-1.033 3.013 3.013 0 0 0-1.02-.692 3.345 3.345 0 0 0-1.311-.248zm-16.297.118v6.256h1.651v-6.256zm16.278 1.286c1.132 0 1.664.797 1.664 1.255l-3.32.006c0-.458.525-1.255 1.656-1.261zm7.073 3.814a.606.606 0 0 0-.606.606.606.606 0 0 0 .606.606.606.606 0 0 0 .606-.606.606.606 0 0 0-.606-.606zm-.008.105a.5.5 0 0 1 .002 0 .5.5 0 0 1 .5.501.5.5 0 0 1-.5.5.5.5 0 0 1-.5-.5.5.5 0 0 1 .498-.5zm-.233.155v.699h.13v-.285h.093l.173.285h.136l-.18-.297a.191.191 0 0 0 .118-.056c.03-.03.05-.074.05-.136 0-.068-.02-.117-.063-.154-.037-.038-.105-.056-.185-.056zm.13.099h.154c.019 0 .037.006.056.012a.064.064 0 0 1 .037.031c.013.013.012.031.012.056a.124.124 0 0 1-.012.055.164.164 0 0 1-.037.031c-.019.006-.037.013-.056.013h-.154Z\"},\"child\":[]}]})(props);\n};\nexport function SiIntellijidea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm3.723 3.111h5v1.834h-1.39v6.277h1.39v1.834h-5v-1.834h1.444V4.945H3.723zm11.055 0H17v6.5c0 .612-.055 1.111-.222 1.556-.167.444-.39.777-.723 1.11-.277.279-.666.557-1.11.668a3.933 3.933 0 0 1-1.445.278c-.778 0-1.444-.167-1.944-.445a4.81 4.81 0 0 1-1.279-1.056l1.39-1.555c.277.334.555.555.833.722.277.167.611.278.945.278.389 0 .721-.111 1-.389.221-.278.333-.667.333-1.278zM2.222 19.5h9V21h-9z\"},\"child\":[]}]})(props);\n};\nexport function SiInteractiondesignfoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12.036C-.035 5.397 5.326.036 11.964 0c6.639-.035 12 5.326 12.036 11.965.035 6.639-5.326 11.999-11.964 12.035H12C5.397 24 .036 18.639 0 12.036Zm.355 0C.355 18.462 5.574 23.68 12 23.68c6.426 0 11.645-5.218 11.645-11.644S18.461.426 12.036.391H12C5.574.391.355 5.61.355 12.036Zm13.708 8.055a.603.603 0 0 1 .109.207.843.843 0 0 1 .036.247.808.808 0 0 1-.045.279.518.518 0 0 1-.312.33.68.68 0 0 1-.245.042.663.663 0 0 1-.263-.049.497.497 0 0 1-.188-.135.577.577 0 0 1-.112-.209.851.851 0 0 1-.038-.258.83.83 0 0 1 .036-.25.597.597 0 0 1 .113-.207.5.5 0 0 1 .189-.141.648.648 0 0 1 .264-.052.63.63 0 0 1 .269.053.534.534 0 0 1 .187.143Zm1.438 0a.586.586 0 0 1 .109.207.843.843 0 0 1 .036.247.808.808 0 0 1-.045.279.558.558 0 0 1-.122.204.51.51 0 0 1-.19.126.68.68 0 0 1-.245.042.663.663 0 0 1-.263-.049.497.497 0 0 1-.188-.135.592.592 0 0 1-.112-.209.851.851 0 0 1-.037-.258.83.83 0 0 1 .036-.25.595.595 0 0 1 .112-.207.5.5 0 0 1 .189-.141.648.648 0 0 1 .264-.052.63.63 0 0 1 .269.053.534.534 0 0 1 .187.143Zm-6.113.516a.3.3 0 0 1 .072.095c.017.036.025.08.025.132a.32.32 0 0 1-.117.256.458.458 0 0 1-.304.099.506.506 0 0 1-.3-.1l-.023.074h-.086l-.011-.392h.079a.508.508 0 0 0 .111.212.39.39 0 0 0 .107.085.282.282 0 0 0 .14.035c.073 0 .13-.017.169-.051.04-.033.06-.081.06-.143a.167.167 0 0 0-.019-.083.197.197 0 0 0-.055-.061.448.448 0 0 0-.093-.047 1.256 1.256 0 0 0-.123-.042 1.552 1.552 0 0 1-.119-.044.487.487 0 0 1-.113-.066.338.338 0 0 1-.082-.098.276.276 0 0 1-.032-.138c0-.092.034-.17.103-.234A.386.386 0 0 1 9.052 20a.534.534 0 0 1 .249.058l.026-.06h.082l.018.363h-.079a.365.365 0 0 0-.104-.198.27.27 0 0 0-.194-.076.211.211 0 0 0-.147.047.145.145 0 0 0-.054.114c0 .034.006.063.018.086a.146.146 0 0 0 .053.058.43.43 0 0 0 .086.043l.129.045c.05.016.098.035.142.056a.483.483 0 0 1 .111.071Zm.964.504c-.049.02-.096.037-.141.052a.54.54 0 0 1-.162.021c-.095 0-.161-.024-.2-.072a.316.316 0 0 1-.057-.202v-.764h-.204v-.11h.208v-.351h.208v.351h.324v.11h-.321v.63c0 .048.001.087.005.119a.212.212 0 0 0 .024.083.121.121 0 0 0 .055.05.232.232 0 0 0 .099.017.787.787 0 0 0 .162-.018v.084Zm.505-.083a.146.146 0 0 1-.047.109.147.147 0 0 1-.11.046.147.147 0 0 1-.11-.046.146.146 0 0 1-.047-.109.15.15 0 0 1 .047-.11.148.148 0 0 1 .11-.047c.043 0 .08.016.11.047a.15.15 0 0 1 .047.11Zm-2.35-.347-.031.479H7.128v-.082c.023-.001.053-.004.092-.009a.268.268 0 0 0 .074-.016.107.107 0 0 0 .051-.044.162.162 0 0 0 .014-.07v-1.167a.174.174 0 0 0-.012-.067.105.105 0 0 0-.053-.048.485.485 0 0 0-.083-.026.893.893 0 0 0-.083-.014v-.081h1.256v.391h-.086a.535.535 0 0 0-.098-.184c-.051-.065-.099-.101-.145-.107a.883.883 0 0 0-.085-.007c-.033-.002-.07-.002-.112-.002h-.255v.645h.183a.366.366 0 0 0 .129-.017.17.17 0 0 0 .071-.055.295.295 0 0 0 .043-.089.56.56 0 0 0 .024-.105h.085v.637h-.085a.6.6 0 0 0-.025-.117.277.277 0 0 0-.042-.088.168.168 0 0 0-.081-.059.426.426 0 0 0-.119-.013h-.183v.486c0 .049.003.087.01.116a.11.11 0 0 0 .04.064c.02.014.047.023.081.028.035.004.084.006.147.006h.099c.042 0 .076-.002.105-.005a.597.597 0 0 0 .089-.016.135.135 0 0 0 .066-.033.738.738 0 0 0 .111-.166c.038-.075.063-.129.073-.165h.083Zm8.455.479H15.89v-.157a.636.636 0 0 1 .086-.079 2.02 2.02 0 0 1 .24-.163l.145-.08c.06-.032.107-.06.139-.085a.422.422 0 0 0 .089-.09.307.307 0 0 0 .042-.089.537.537 0 0 0 .016-.151c0-.095-.025-.165-.077-.21a.29.29 0 0 0-.196-.067c-.05 0-.097.01-.141.029a.233.233 0 0 0-.1.081l.02.087a.423.423 0 0 1 .012.098.106.106 0 0 1-.036.078c-.024.022-.059.033-.107.033a.106.106 0 0 1-.088-.039.171.171 0 0 1-.031-.106c0-.041.012-.082.035-.124a.388.388 0 0 1 .098-.115.524.524 0 0 1 .156-.084.617.617 0 0 1 .2-.032c.156 0 .281.035.372.105.092.07.138.163.138.279a.453.453 0 0 1-.024.152.316.316 0 0 1-.08.122.622.622 0 0 1-.142.1 7.322 7.322 0 0 1-.248.116c-.066.029-.128.06-.185.093a.954.954 0 0 0-.141.094h.88v.204Zm-4.185 0h-1.072v-.157a.685.685 0 0 1 .085-.079 2.064 2.064 0 0 1 .386-.243c.06-.032.107-.06.139-.085a.447.447 0 0 0 .089-.09.307.307 0 0 0 .042-.089.537.537 0 0 0 .016-.151c0-.095-.026-.165-.077-.21a.29.29 0 0 0-.196-.067c-.05 0-.097.01-.141.029a.227.227 0 0 0-.1.081l.02.087a.423.423 0 0 1 .012.098.106.106 0 0 1-.036.078c-.024.022-.059.033-.107.033a.106.106 0 0 1-.088-.039.171.171 0 0 1-.031-.106c0-.041.012-.082.035-.124a.374.374 0 0 1 .098-.115.524.524 0 0 1 .156-.084.612.612 0 0 1 .2-.032.6.6 0 0 1 .372.105c.092.07.138.163.138.279a.429.429 0 0 1-.025.152.303.303 0 0 1-.079.122.622.622 0 0 1-.142.1 7.322 7.322 0 0 1-.248.116c-.067.029-.128.06-.186.093a.939.939 0 0 0-.14.094h.88v.204Zm1.178-.615c0-.181-.031-.322-.093-.422a.286.286 0 0 0-.254-.15.29.29 0 0 0-.256.15c-.062.1-.094.241-.094.422 0 .173.03.311.09.416.06.105.146.158.258.158.112 0 .198-.053.259-.158a.833.833 0 0 0 .09-.416Zm1.438 0c0-.181-.031-.322-.093-.422-.062-.1-.147-.15-.253-.15a.29.29 0 0 0-.257.15c-.062.1-.094.241-.094.422 0 .173.03.311.09.416.06.105.146.158.258.158a.285.285 0 0 0 .259-.158.833.833 0 0 0 .09-.416ZM5.148 19.456h-.071c-1.811-1.669-2.911-3.941-3.16-6.391.036-.071.071-.071.142-.071l.036.036a9.892 9.892 0 0 0 3.124 6.248c.036.036.036.107 0 .142h-.071v.036Zm13.739 0h-.142c-.035-.036-.035-.107 0-.142 1.776-1.634 2.876-3.87 3.125-6.284-.036-.071 0-.107.071-.142.071-.036.106 0 .142.071 0 .035 0 .071-.036.106a10.196 10.196 0 0 1-3.16 6.391ZM12.142 8.508a3.903 3.903 0 0 0-.284-1.407c.355 0 .675-.071.994-.213 0 .497.107.958.284 1.42-.35 0-.665.069-.98.207.518.242.815 1.446 1.087 1.958l-.462.249c.32.497.568 1.03.675 1.598l.568-.462-.249-.106c.178-.355.462-.639.817-.852.177.213.39.39.603.532a2.265 2.265 0 0 0-.781.852l-.319-.319c-.249.319-.462.71-.604 1.1.036.426 0 .888-.106 1.314a2.65 2.65 0 0 1 1.171-.355c.107-.426.355-.746.746-.959l-.391-.461c.426-.426 1.243-1.207 1.704-1.314.426.391.746.852.959 1.385a4.12 4.12 0 0 0-1.846.923l-.32-.462a1.568 1.568 0 0 0-.39.852c.532-.035 1.1 0 1.633.071.035-.213.071-.39.035-.603.284-.036 1.42 0 2.059.461-.142.462-.248.959-.248 1.456 0 0-1.314-.568-2.059-.426.071-.213.142-.462.177-.675a4.694 4.694 0 0 0-2.201.32l.71.142a.651.651 0 0 0 .071-.249c.391.071.746.284 1.03.568a1.374 1.374 0 0 0-.426.675 2.59 2.59 0 0 0-1.03-.533l.249-.39c-.32-.036-.639-.071-.959-.036l-.568.391a2.12 2.12 0 0 0-.497.745c.107.142.142.32.142.497.036.284-.106.533-.355.675 0 .39.142.781.391 1.065l.167.107h4.767v.177H5.858v-.177h4.694c.203-.116.357-.218.383-.32a4.21 4.21 0 0 0 0-1.882A2.444 2.444 0 0 0 9.55 14.84c-.213.036-.426.142-.639.249l.355.248a2.265 2.265 0 0 0-.781.852c-.177-.213-.39-.39-.603-.568.177-.355.461-.639.816-.852l.178.178c.142-.107.284-.213.461-.249-.603-.213-1.242-.39-1.881-.461v.639c-.71-.071-1.385 0-2.059.248 0-.071-.213-1.065.035-1.668.249-.604 1.598.035 2.166.142-.036.142-.071.319-.107.461a5.77 5.77 0 0 1 1.349-.071 1.939 1.939 0 0 0-.887-.71 3.934 3.934 0 0 1-.852-.523 3.625 3.625 0 0 1-.178-.116l.024-.014-.024-.021-.532.284c-.107-.675-.462-1.349-.923-1.846.532-.107 1.029-.32 1.491-.569.071.498.177 1.527.532 1.989a1.05 1.05 0 0 0-.544.163c.051.045.103.088.154.13.316.188.672.327 1.029.417a1.366 1.366 0 0 1 0-.533h-.248a2.68 2.68 0 0 1 .035-.923c.249-.035.497 0 .71.071a1.925 1.925 0 0 0-.213.888H8.13c0 .213.036.39.142.568.462.142.888.461 1.136.887l.959.249c0-.178-.036-.355-.107-.497l-.248.071a1.646 1.646 0 0 0-.426-.817c.213-.106.461-.213.71-.248.142.284.213.568.248.887h-.284c.107.178.178.355.213.568l.568.249a3.187 3.187 0 0 0-.745-2.308l-.568.462C9.55 12 8.45 11.042 8.45 11.042a4.497 4.497 0 0 0 1.171-.853c.675.355 1.172 1.385 1.278 1.669l-.532.284.639.533.248.355c.142-.107.249-.249.355-.426l-.355-.107c.249-.355.391-.745.462-1.171.248.177.533.284.817.319a2.485 2.485 0 0 1-.426 1.207l-.356-.177a1.497 1.497 0 0 1-.355.603c.213.462.355.994.568 1.491 1.279-1.065.924-3.088.675-4.011l-.603.461a4.804 4.804 0 0 0-1.669-1.598c.035-.035.781-.958 1.491-1.136a.435.435 0 0 1 .284.023v.013a.196.196 0 0 0 .014-.006.061.061 0 0 0-.014-.007Zm.675 7.823c.035-.142-.036-.284-.178-.355-.142.036-.213.178-.213.32-.035.142.036.284.178.355.142-.036.248-.178.213-.32Zm-.249-.639c-.248.071-.355.355-.284.746a.81.81 0 0 1 .249-.675c.106-.071.035-.106.035-.106v.035Zm5.787-2.059c.071-.248-.249-1.065-.533-1.633a5.358 5.358 0 0 0 2.308-.745c.071.568.249 1.136.533 1.633-.426-.071-1.811.461-2.308.745ZM5.61 11.787c-.142.178-.178.959-.142 1.491a5.948 5.948 0 0 0-2.095-.248c.142-.497.213-.994.142-1.491.319.248 1.598.284 2.095.248Zm-3.17.07.009.443-.05.001-.005-.054a.177.177 0 0 0-.009-.049.072.072 0 0 0-.025-.033.08.08 0 0 0-.044-.01l-.713.014a.095.095 0 0 0-.04.008c-.011.006-.02.018-.027.037a.33.33 0 0 0-.014.053.323.323 0 0 0-.008.051l-.049.001-.009-.443.05-.001c0 .015.002.032.006.052a.295.295 0 0 0 .012.051c.006.018.015.029.028.035a.083.083 0 0 0 .042.008l.712-.013a.088.088 0 0 0 .04-.011.065.065 0 0 0 .027-.035.315.315 0 0 0 .018-.104l.049-.001Zm20.033.454a.237.237 0 0 0-.012-.06.2.2 0 0 0-.023-.057c-.012-.016-.034-.027-.067-.032a.76.76 0 0 0-.125-.006l-.72.017-.002-.061.792-.614-.508.011a.65.65 0 0 0-.131.014.118.118 0 0 0-.064.035.371.371 0 0 0-.039.132l-.049.001-.01-.403.05-.001a.368.368 0 0 0 .038.117.097.097 0 0 0 .06.032.614.614 0 0 0 .136.006l.485-.011a.176.176 0 0 0 .063-.012.125.125 0 0 0 .049-.031.203.203 0 0 0 .037-.069.196.196 0 0 0 .016-.069l.05-.001.006.281-.737.57.467-.011a.58.58 0 0 0 .132-.014c.031-.008.051-.019.061-.033a.27.27 0 0 0 .024-.064.287.287 0 0 0 .012-.067l.05-.002.009.4-.05.002ZM15.16 9.976c.674-.355 1.349-1.633 1.349-1.633.319.391.674.71 1.1.994-.213.746-1.065 1.492-1.313 1.634-.107-.142-.213-.285-.355-.391a2.461 2.461 0 0 0-.604 1.065c.071-.426.249-.816.462-1.172l-.639-.497Zm2.094.639c.568-.355 1.349-1.1 1.527-1.704a5.46 5.46 0 0 0 1.278 1.278c-.497.284-1.491.888-1.811 1.421a2.674 2.674 0 0 0-.994-.995Zm-15.627-.171a.307.307 0 0 0 .005.06.179.179 0 0 0 .016.06c.009.018.03.031.062.04a.752.752 0 0 0 .124.021l.717.072-.006.06-.861.513.505.05a.606.606 0 0 0 .132.003c.031-.004.054-.013.068-.027a.156.156 0 0 0 .035-.062.38.38 0 0 0 .02-.064l.049.004-.04.402-.049-.005a.438.438 0 0 0-.023-.121.098.098 0 0 0-.056-.039.72.72 0 0 0-.135-.023l-.482-.048a.18.18 0 0 0-.065.005.115.115 0 0 0-.051.024.215.215 0 0 0-.046.064.236.236 0 0 0-.025.067l-.049-.005.028-.28.802-.476-.466-.046a.546.546 0 0 0-.133-.002c-.031.004-.052.013-.064.025a.273.273 0 0 0-.032.061.315.315 0 0 0-.02.065l-.049-.005.04-.398.049.005Zm12.326-.539c-.107.462-.32.924-.604 1.314a3.62 3.62 0 0 0 .355-1.385l-.568-.142c.355-.461.426-1.491.462-1.988.497.249.994.426 1.526.497-.426.355-.71 1.278-.781 1.917l-.39-.213Zm8.372.864a.477.477 0 0 1-.147.126.592.592 0 0 1-.204.068.575.575 0 0 1-.216-.005.474.474 0 0 1-.301-.21.461.461 0 0 1 .029-.532.56.56 0 0 1 .344-.188.584.584 0 0 1 .218.005.46.46 0 0 1 .356.572.439.439 0 0 1-.079.164Zm-.705.003c.045.02.095.031.149.035.055.003.114 0 .179-.01a.84.84 0 0 0 .181-.047.48.48 0 0 0 .134-.079.263.263 0 0 0 .089-.244.255.255 0 0 0-.059-.134.296.296 0 0 0-.116-.079.505.505 0 0 0-.149-.029.842.842 0 0 0-.348.054.452.452 0 0 0-.132.078.255.255 0 0 0-.094.247.266.266 0 0 0 .166.208Zm-12.78-.689c-.497.035-.958.213-1.384.461-.036-.674-.675-1.633-.994-2.13.639-.035 1.775-.603 1.775-.603-.142.639.213 1.633.603 2.272Zm-6.758-.72-.011.047a.473.473 0 0 0-.134.031.294.294 0 0 0-.064.032.086.086 0 0 0-.037.04l-.04.15.769.172a.104.104 0 0 0 .043 0 .075.075 0 0 0 .036-.027.334.334 0 0 0 .024-.048.324.324 0 0 0 .022-.059l.048.011-.101.453-.048-.01.008-.059a.22.22 0 0 0 .001-.057.06.06 0 0 0-.018-.038.083.083 0 0 0-.042-.02l-.774-.173-.019.091a.692.692 0 0 0-.009.061c-.002.015.004.032.016.052a.468.468 0 0 0 .153.141l-.01.047-.261-.058.187-.837.261.058Zm3.528.791c-.213-.568-1.101-1.243-1.101-1.243.32-.213.604-.426.852-.71.497.284.888.675 1.136 1.172-.319.213-.639.461-.887.781Zm15.639-.336-.112-.428.048-.013.017.052a.23.23 0 0 0 .021.046.07.07 0 0 0 .032.026.086.086 0 0 0 .045-.001l.689-.181a.096.096 0 0 0 .038-.018c.009-.008.015-.022.017-.042.002-.015.002-.033.002-.054a.314.314 0 0 0-.005-.052l.048-.013.112.429-.047.012a.671.671 0 0 0-.019-.048c-.007-.019-.016-.034-.024-.048-.01-.015-.021-.024-.035-.027a.086.086 0 0 0-.042.002l-.689.181a.078.078 0 0 0-.037.02.062.062 0 0 0-.018.04c-.002.01-.001.027 0 .049a.37.37 0 0 0 .007.056l-.048.012ZM8.521 8.343c.355-.142.71-.355.994-.639.106.497.319.959.639 1.385-.284.106-.568.248-.781.461-.142-.461-.462-.887-.852-1.207Zm-5.672.05.267.113-.27.768-.046-.016.013-.054a.333.333 0 0 0 .006-.046.063.063 0 0 0-.016-.038.086.086 0 0 0-.037-.022l-.664-.233a.126.126 0 0 0-.041-.007c-.013.001-.025.008-.038.021a.477.477 0 0 0-.056.086l-.046-.016.251-.715.223.078-.017.049a.312.312 0 0 0-.125.019c-.047.016-.077.036-.09.061l-.044.11-.051.146.367.129.037-.104a.213.213 0 0 0 .016-.077.114.114 0 0 0-.017-.052.166.166 0 0 0-.042-.042.305.305 0 0 0-.055-.034l.017-.049.362.127-.017.049a.26.26 0 0 0-.071-.009.161.161 0 0 0-.059.006.099.099 0 0 0-.049.034.261.261 0 0 0-.032.065l-.036.105.277.097c.028.01.05.015.068.017a.064.064 0 0 0 .044-.01.1.1 0 0 0 .032-.041l.053-.138a.72.72 0 0 0 .027-.115c.001-.019 0-.034-.006-.044a.668.668 0 0 0-.151-.171l.016-.047Zm18.91.508-.016-.044a.633.633 0 0 0 .097-.098.405.405 0 0 0 .037-.062.093.093 0 0 0 .009-.054l-.047-.148-.74.268a.09.09 0 0 0-.036.023.066.066 0 0 0-.016.042.277.277 0 0 0 .005.054.344.344 0 0 0 .013.061l-.047.017-.158-.437.047-.016.025.054c.012.024.021.04.029.048.01.012.022.02.035.023a.09.09 0 0 0 .047-.006l.745-.269-.032-.088-.025-.056c-.007-.014-.021-.025-.042-.035a.364.364 0 0 0-.143-.036.444.444 0 0 0-.062-.001l-.016-.046.251-.091.291.807-.251.09Zm-11.357-.7a4.626 4.626 0 0 0-1.349-1.633c.036-.035.817-.745 1.456-.887.639-.142.852 1.384 1.029 1.917l-.603.248a.985.985 0 0 1 0 .639c-.036-.177-.071-.39-.142-.568l-.391.284Zm8.237-.781c-.355.284-.675.639-.852 1.065a2.231 2.231 0 0 0-.781-.355c.142-.355.39-1.065.639-1.278.355.107.71.284.994.533v.035ZM3.647 7.362l-.117.239a5.958 5.958 0 0 0-.539.085l-.044.091.281.137a.084.084 0 0 0 .042.012c.013.001.026-.005.039-.017a.179.179 0 0 0 .028-.035l.027-.045.044.021-.183.375-.044-.022.017-.045a.16.16 0 0 0 .011-.044.063.063 0 0 0-.01-.039.107.107 0 0 0-.036-.028l-.64-.313a.122.122 0 0 0-.042-.012c-.013-.002-.027.004-.04.016a.472.472 0 0 0-.057.076l-.044-.022.2-.409a.5.5 0 0 1 .063-.1.34.34 0 0 1 .081-.071.225.225 0 0 1 .095-.03.212.212 0 0 1 .108.025.25.25 0 0 1 .083.06.216.216 0 0 1 .046.079.315.315 0 0 1 .013.09.624.624 0 0 1-.009.103l.396-.073a.316.316 0 0 0 .13-.053.178.178 0 0 0 .032-.034.477.477 0 0 0 .025-.038l.044.021Zm10.767.413c.213-.426.675-1.633.639-1.988.426.249.923.391 1.42.462a5.443 5.443 0 0 0-.603 1.952c-.462-.248-1.207-.532-1.42-.461l-.036.035Zm6.335.419-.183-.365.044-.022a.407.407 0 0 0 .052.074c.017.018.03.025.039.02l.013-.008.013-.011.16-.172-.155-.308a2.722 2.722 0 0 0-.09.009l-.118.021a.377.377 0 0 0-.029.011c-.017.008-.023.028-.019.058a.37.37 0 0 0 .028.096l-.044.023-.166-.331.044-.023a.226.226 0 0 0 .063.069.167.167 0 0 0 .118.022c.133-.011.281-.025.445-.041l.439-.042.025.049-.611.675a.173.173 0 0 0-.028.04.184.184 0 0 0-.013.048.183.183 0 0 0 .004.044.268.268 0 0 0 .013.042l-.044.022ZM2.827 7.368a.192.192 0 0 0-.15-.016c-.047.015-.084.051-.111.107l-.052.106.379.186.04-.082a.22.22 0 0 0 .015-.17.218.218 0 0 0-.121-.131Zm18.104.292.274-.305-.407.04.133.265ZM8.237 7.527s-.604-.888-1.101-1.065c.284-.213.533-.497.71-.781.462.248.817.603 1.065 1.065-.284.213-.497.497-.674.781ZM4.263 6.416l-.222.343L4 6.732a.38.38 0 0 0 .037-.083c.007-.023.006-.038-.002-.043l-.014-.008-.015-.005-.23-.051-.187.29c.02.028.038.053.054.072l.078.092a.25.25 0 0 0 .023.019c.016.01.036.006.06-.013a.374.374 0 0 0 .069-.073l.041.027-.201.311-.042-.027a.25.25 0 0 0 .018-.042.149.149 0 0 0 0-.104.249.249 0 0 0-.031-.056c-.077-.109-.164-.23-.261-.363a72.42 72.42 0 0 1-.258-.358l.03-.046.891.185a.143.143 0 0 0 .096-.009.132.132 0 0 0 .037-.026.253.253 0 0 0 .029-.032l.041.027Zm9.903.543a2.69 2.69 0 0 0-1.065 0c-.071-.462-.142-1.42.035-1.811a3.068 3.068 0 0 1 1.385.107c-.249.532-.391 1.1-.355 1.704Zm6.436-.109a.447.447 0 0 1-.401.065.547.547 0 0 1-.169-.092.696.696 0 0 1-.134-.147l-.228-.338.041-.027a.365.365 0 0 0 .063.071.053.053 0 0 0 .039.01.078.078 0 0 0 .041-.016l.589-.397a.095.095 0 0 0 .03-.03c.008-.011.01-.026.007-.043a.165.165 0 0 0-.013-.047l-.019-.039.041-.027.24.356a.572.572 0 0 1 .098.326.43.43 0 0 1-.058.203.543.543 0 0 1-.167.172Zm-.095-.141a.59.59 0 0 0 .134-.122.424.424 0 0 0 .072-.142.332.332 0 0 0 .009-.147.358.358 0 0 0-.06-.147l-.068-.096-.626.423c-.035.023-.053.05-.052.079 0 .03.014.065.043.108.033.048.07.085.112.11a.286.286 0 0 0 .131.04.381.381 0 0 0 .147-.024.705.705 0 0 0 .158-.082ZM3.711 6.53l-.402-.083.241.331.161-.248Zm8.857-.317a3.198 3.198 0 0 0-1.278.178 3.8 3.8 0 0 0-.71-1.846c.035-.036 1.029-.426 1.669-.32.639.107.355 1.456.319 1.988Zm-7.891-.277a.43.43 0 0 1-.303.153.466.466 0 0 1-.185-.026.574.574 0 0 1-.187-.107.59.59 0 0 1-.142-.165.487.487 0 0 1-.063-.183.432.432 0 0 1 .013-.182.47.47 0 0 1 .298-.309l-.018-.052.035-.043.274.22-.036.043a.841.841 0 0 0-.107-.045.423.423 0 0 0-.112-.025.253.253 0 0 0-.107.013.206.206 0 0 0-.087.064.277.277 0 0 0-.054.249.447.447 0 0 0 .07.14c.035.048.08.096.134.141.049.04.098.071.149.093a.468.468 0 0 0 .15.036.336.336 0 0 0 .139-.022.28.28 0 0 0 .112-.083.289.289 0 0 0 .054-.275.367.367 0 0 0-.037-.087l.052-.024c.05.093.07.178.06.255a.433.433 0 0 1-.102.221Zm15.552-.415a.247.247 0 0 0-.047-.038.246.246 0 0 0-.054-.029c-.02-.005-.044.001-.073.019a.758.758 0 0 0-.099.075l-.542.475-.04-.046.213-.979-.382.335a.582.582 0 0 0-.091.094c-.019.026-.028.048-.028.068 0 .015.007.037.022.068a.563.563 0 0 0 .033.059l-.037.032-.266-.303.037-.033a.423.423 0 0 0 .105.066.101.101 0 0 0 .067-.014.648.648 0 0 0 .108-.083l.365-.319a.196.196 0 0 0 .04-.05.118.118 0 0 0 .018-.055.288.288 0 0 0-.047-.141l.037-.032.185.212-.2.91.352-.308a.594.594 0 0 0 .092-.096c.018-.026.027-.047.025-.064A.234.234 0 0 0 20 5.279a.476.476 0 0 0-.034-.059l.037-.033.263.301-.037.033ZM5.165 4.342l-.034.033a.489.489 0 0 0-.203-.056c-.023 0-.041.004-.053.013l-.116.105.553.57a.085.085 0 0 0 .037.023.064.064 0 0 0 .045-.002.527.527 0 0 0 .098-.065l.035.036-.336.327-.035-.036a1.165 1.165 0 0 0 .072-.092.064.064 0 0 0 .006-.042.088.088 0 0 0-.024-.041l-.558-.574-.067.067a.565.565 0 0 0-.041.046c-.01.012-.015.03-.015.053a.304.304 0 0 0 .006.073.496.496 0 0 0 .045.131l-.035.034-.188-.193.62-.604.188.194Zm14.122.157a.337.337 0 0 0-.109-.055c-.019-.002-.042.007-.068.028a.694.694 0 0 0-.088.086l-.282.321a.284.284 0 0 1-.252.099.36.36 0 0 1-.122-.036.46.46 0 0 1-.247-.31.248.248 0 0 1 .06-.209l.384-.437a.102.102 0 0 0 .021-.035.079.079 0 0 0-.005-.044.325.325 0 0 0-.051-.076l.032-.037.308.271-.033.037a.427.427 0 0 0-.08-.049.051.051 0 0 0-.042 0 .107.107 0 0 0-.034.027l-.358.407a.344.344 0 0 0-.048.068.199.199 0 0 0-.014.178.28.28 0 0 0 .08.103.307.307 0 0 0 .112.066.203.203 0 0 0 .103.006.238.238 0 0 0 .082-.032.332.332 0 0 0 .063-.054l.266-.303a.576.576 0 0 0 .075-.101c.016-.03.022-.053.018-.07a.19.19 0 0 0-.032-.064.675.675 0 0 0-.041-.051l.033-.037.301.266-.032.037ZM6.206 4.436l-.344.274-.031-.039.04-.036a.238.238 0 0 0 .034-.038.067.067 0 0 0 .01-.039.075.075 0 0 0-.019-.041l-.44-.554a.094.094 0 0 0-.031-.027c-.011-.005-.026-.005-.045.001a.351.351 0 0 0-.096.045l-.031-.038.345-.274.03.038c-.01.01-.023.021-.036.036a.367.367 0 0 0-.034.041.055.055 0 0 0-.01.043.095.095 0 0 0 .018.038l.441.554c.009.012.02.02.033.025a.065.065 0 0 0 .044.001.41.41 0 0 0 .092-.049l.03.039Zm11.858-.874a.469.469 0 0 1-.007.193.584.584 0 0 1-.088.197.59.59 0 0 1-.15.156.487.487 0 0 1-.359.078.46.46 0 0 1-.171-.072.458.458 0 0 1-.2-.31.493.493 0 0 1 .01-.19.605.605 0 0 1 .236-.347.495.495 0 0 1 .177-.077.463.463 0 0 1 .552.372Zm-.475.521a.474.474 0 0 0 .126-.087.779.779 0 0 0 .115-.138.775.775 0 0 0 .087-.165.449.449 0 0 0 .033-.152.264.264 0 0 0-.119-.231.254.254 0 0 0-.138-.047.297.297 0 0 0-.136.031.495.495 0 0 0-.123.09.855.855 0 0 0-.196.292.473.473 0 0 0-.033.151.287.287 0 0 0 .025.131.26.26 0 0 0 .094.105.256.256 0 0 0 .13.046.279.279 0 0 0 .135-.026ZM6.645 3.099c.062.015.12.042.175.083.055.04.104.093.146.159a.59.59 0 0 1 .084.199.483.483 0 0 1 .001.193.455.455 0 0 1-.204.296.455.455 0 0 1-.364.061.486.486 0 0 1-.171-.084.591.591 0 0 1-.141-.153.56.56 0 0 1-.084-.2.502.502 0 0 1-.002-.193.445.445 0 0 1 .071-.169.48.48 0 0 1 .308-.198.459.459 0 0 1 .181.006Zm.291.643a.48.48 0 0 0-.029-.151.901.901 0 0 0-.199-.305.48.48 0 0 0-.127-.09.264.264 0 0 0-.259.018.253.253 0 0 0-.098.109.299.299 0 0 0-.025.137.5.5 0 0 0 .034.148.85.85 0 0 0 .192.296.471.471 0 0 0 .125.089.255.255 0 0 0 .264-.016.266.266 0 0 0 .122-.235Zm1.059-1.426a.294.294 0 0 0-.092.079c-.011.018-.011.043-.002.075a.69.69 0 0 0 .045.116l.308.652-.055.025-.883-.473.217.459c.024.052.046.09.066.114.019.025.039.04.058.045a.156.156 0 0 0 .071-.002.522.522 0 0 0 .066-.016l.021.045-.365.172-.021-.045a.343.343 0 0 0 .051-.039.179.179 0 0 0 .041-.043.102.102 0 0 0 .005-.068.73.73 0 0 0-.05-.127l-.208-.438a.188.188 0 0 0-.037-.053.122.122 0 0 0-.048-.032.19.19 0 0 0-.078-.006.23.23 0 0 0-.07.013l-.021-.044.254-.121.821.442-.2-.423a.632.632 0 0 0-.066-.115c-.02-.024-.039-.038-.055-.041a.218.218 0 0 0-.069.004.316.316 0 0 0-.066.016l-.021-.045.361-.171.022.045Zm9.026.746-.046-.023a.37.37 0 0 0 0-.133c-.009-.051-.024-.085-.048-.102l-.102-.059-.147-.076-.182.353.101.052a.28.28 0 0 0 .076.027.13.13 0 0 0 .059-.007.132.132 0 0 0 .044-.031.264.264 0 0 0 .045-.054l.047.023-.178.345-.047-.024a.325.325 0 0 0 .02-.068.191.191 0 0 0 .002-.062.103.103 0 0 0-.03-.055.275.275 0 0 0-.064-.044l-.101-.052-.156.302a.085.085 0 0 0-.01.04.07.07 0 0 0 .015.041.342.342 0 0 0 .078.062l-.023.044-.38-.196.023-.044a.682.682 0 0 0 .095.035.056.056 0 0 0 .039-.01.08.08 0 0 0 .028-.034l.327-.632a.107.107 0 0 0 .012-.04c.001-.013-.004-.026-.015-.04a.44.44 0 0 0-.079-.068l.023-.044.687.355-.113.219Zm-1.446-.907a.411.411 0 0 0-.06-.007.203.203 0 0 0-.061.004c-.02.006-.037.024-.052.054a.804.804 0 0 0-.045.117l-.21.689-.058-.018-.335-.944-.148.485a.583.583 0 0 0-.028.129.126.126 0 0 0 .012.072.174.174 0 0 0 .055.046.483.483 0 0 0 .059.033l-.015.047-.386-.118.015-.047a.528.528 0 0 0 .064.005c.031.001.051 0 .06-.005a.102.102 0 0 0 .049-.046.812.812 0 0 0 .048-.128l.142-.464a.19.19 0 0 0 .008-.064.132.132 0 0 0-.014-.056.23.23 0 0 0-.053-.057.24.24 0 0 0-.061-.037l.014-.047.269.082.31.879.136-.447a.536.536 0 0 0 .028-.13c.002-.031-.002-.054-.012-.068a.394.394 0 0 0-.113-.076l.014-.047.383.117-.015.047Zm-5.657.046a.447.447 0 0 1-.072.401.57.57 0 0 1-.144.128.664.664 0 0 1-.184.077l-.395.102-.012-.048c.013-.003.029-.009.049-.016a.156.156 0 0 0 .04-.02.056.056 0 0 0 .022-.033.094.094 0 0 0-.001-.044l-.178-.688a.1.1 0 0 0-.018-.039.062.062 0 0 0-.038-.022.199.199 0 0 0-.049-.003.367.367 0 0 0-.043.005l-.013-.048.417-.107a.555.555 0 0 1 .34.017.418.418 0 0 1 .173.123.523.523 0 0 1 .106.215Zm-.165.042a.575.575 0 0 0-.07-.167.407.407 0 0 0-.11-.116.355.355 0 0 0-.294-.05l-.113.032.189.733c.01.041.029.066.057.076a.213.213 0 0 0 .116-.005.358.358 0 0 0 .141-.069.269.269 0 0 0 .082-.111.383.383 0 0 0 .027-.146.703.703 0 0 0-.025-.177Zm4.389.062-.045-.001a.157.157 0 0 0-.047.005.057.057 0 0 0-.034.024.096.096 0 0 0-.016.043l-.031.187a.623.623 0 0 0-.006.048c-.066.017-.13.027-.193.032a.783.783 0 0 1-.182-.009.477.477 0 0 1-.308-.191.49.49 0 0 1-.076-.176.589.589 0 0 1 .069-.416.477.477 0 0 1 .506-.233.461.461 0 0 1 .24.111l.036-.042.055.009-.052.342-.056-.01a1.178 1.178 0 0 0-.017-.117.425.425 0 0 0-.038-.107.244.244 0 0 0-.182-.129.278.278 0 0 0-.252.08.419.419 0 0 0-.089.131.734.734 0 0 0-.063.365.42.42 0 0 0 .041.153.303.303 0 0 0 .229.175.306.306 0 0 0 .191-.027.82.82 0 0 0 .018-.071l.02-.116a.153.153 0 0 0 .001-.052.055.055 0 0 0-.027-.038.611.611 0 0 0-.119-.043l.009-.05.427.073-.009.05Zm-3.033-.08.019.289-.808.106-.006-.049c.013-.002.031-.007.054-.013a.191.191 0 0 0 .043-.015.06.06 0 0 0 .027-.031.097.097 0 0 0 .003-.043l-.092-.699a.095.095 0 0 0-.013-.039c-.006-.011-.018-.019-.035-.024a.301.301 0 0 0-.103-.011l-.006-.049.753-.099.031.234-.052.007a.317.317 0 0 0-.073-.103c-.036-.035-.068-.052-.096-.053l-.118.011-.153.02.051.386.109-.014a.218.218 0 0 0 .076-.02.112.112 0 0 0 .039-.039.182.182 0 0 0 .018-.057.243.243 0 0 0 .006-.064l.052-.007.05.381-.052.007a.253.253 0 0 0-.024-.068.147.147 0 0 0-.032-.049.098.098 0 0 0-.052-.029.257.257 0 0 0-.073.001l-.11.015.038.291a.294.294 0 0 0 .016.069.064.064 0 0 0 .029.035c.013.007.03.01.051.01l.148-.016a.622.622 0 0 0 .062-.01.627.627 0 0 0 .052-.017.095.095 0 0 0 .037-.025.442.442 0 0 0 .053-.109.603.603 0 0 0 .031-.104l.05-.006Zm1.76.301-.442-.028.003-.049.055-.001a.19.19 0 0 0 .05-.005.07.07 0 0 0 .035-.023.077.077 0 0 0 .013-.042l.046-.711a.086.086 0 0 0-.005-.041c-.004-.012-.016-.021-.034-.03a.469.469 0 0 0-.102-.031l.003-.049.442.029-.003.049a.324.324 0 0 0-.052.002.247.247 0 0 0-.052.008c-.018.004-.031.012-.037.024a.093.093 0 0 0-.012.041l-.046.711a.08.08 0 0 0 .007.041.07.07 0 0 0 .033.03c.009.005.025.01.046.015.022.006.04.01.056.011l-.004.049Zm-.84-.495a.252.252 0 0 1 .048.075.28.28 0 0 1 .016.096.274.274 0 0 1-.092.217.347.347 0 0 1-.237.089.429.429 0 0 1-.132-.018.452.452 0 0 1-.115-.047l-.029.051-.055.001-.017-.336.056-.001a.83.83 0 0 0 .043.111.382.382 0 0 0 .063.093.297.297 0 0 0 .086.064.263.263 0 0 0 .196.007.15.15 0 0 0 .057-.036.16.16 0 0 0 .032-.055.195.195 0 0 0 .009-.071.196.196 0 0 0-.035-.109.208.208 0 0 0-.101-.076l-.104-.037a1.465 1.465 0 0 1-.102-.04.318.318 0 0 1-.131-.095.256.256 0 0 1-.049-.157.237.237 0 0 1 .021-.106.265.265 0 0 1 .063-.088.336.336 0 0 1 .33-.062.563.563 0 0 1 .099.046l.028-.047.055-.002.012.327-.056.001a1.49 1.49 0 0 0-.036-.107.413.413 0 0 0-.052-.092.221.221 0 0 0-.074-.062.205.205 0 0 0-.106-.022.163.163 0 0 0-.111.044.134.134 0 0 0-.045.105.184.184 0 0 0 .032.105c.021.027.05.05.088.067l.196.076a.603.603 0 0 1 .081.039.298.298 0 0 1 .068.052Z\"},\"child\":[]}]})(props);\n};\nexport function SiInteractjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.382.01C12.255.006 12.128 0 12 0A11.999 11.999 0 0 0 1.804 18.327l9.911-17.17zm7.097 19.686L11.201 5.121 2.788 19.689l.007.007h16.684zm.184 1.538H4.337a11.998 11.998 0 0 0 15.326 0zm2.917-3.568A11.999 11.999 0 0 0 12.382.01l.667 1.148zM12.383.009l-.001.001h.001V.009z\"},\"child\":[]}]})(props);\n};\nexport function SiInterbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.6895 8.8296c-.0001.1303-.1149.2461-.2463.2487-.1312.0025-.2461-.11-.2486-.243-.0025-.1384.1004-.2475.2369-.2513.1402-.0039.258.1083.258.2456zm14.294 3.6783c-.0252.409-.0595.8184-.1126 1.2246-.0742.5675-.2022 1.1249-.3642 1.6746a11.8456 11.8456 0 0 1-.892 2.1936 11.9768 11.9768 0 0 1-2.4107 3.1587c-.9165.8593-1.9422 1.5593-3.0778 2.0967-.9867.467-2.0181.7934-3.095.9755-.511.0864-1.025.1418-1.5428.1622-.0501.002-.8557.0047-.8686.0043a12.0444 12.0444 0 0 1-1.4517-.1334 11.7612 11.7612 0 0 1-1.7943-.4175 11.9283 11.9283 0 0 1-2.2824-.9961 11.9821 11.9821 0 0 1-2.9132-2.3115c-.891-.9661-1.6055-2.0493-2.1417-3.2497-.5047-1.13-.824-2.3107-.9616-3.54a11.9165 11.9165 0 0 1-.0733-1.5264c.0072-.4321.0355-.8625.0876-1.2911.0655-.5373.1675-1.068.3055-1.5918.2367-.899.574-1.7584 1.011-2.5784.5443-1.0208 1.2235-1.943 2.0329-2.7688a11.8993 11.8993 0 0 1 1.1528-1.0307C5.633 1.745 6.7778 1.116 8.027.6766 8.5082.5073 8.9971.3635 9.4976.266c.381-.0742.7651-.1357 1.1504-.1821.3426-.0413.6883-.0613 1.0333-.0771.2358-.0108.4727-.001.709.004.4673.0101.9318.0555 1.3937.1244.5023.075.9982.1817 1.4873.32.8146.2305 1.596.5437 2.343.9409a11.9932 11.9932 0 0 1 3.016 2.2728 11.997 11.997 0 0 1 1.362 1.6917A11.9248 11.9248 0 0 1 23.4617 8.45c.2238.722.3769 1.4587.4604 2.2096.0684.6143.0996 1.231.0614 1.8483zM13.2143 8.6622c.0514.0869.1287.1346.2656.136.0284-.0127.089-.0306.1397-.0635.819-.5306 1.653-1.0357 2.5141-1.495.0686-.0366.1184-.0878.1499-.1589.1917-.4333.3843-.8663.5762-1.2996.0503-.1135.0477-.223-.041-.3166-.0885-.0933-.1993-.1082-.3132-.058-.1574.0692-.3165.1374-.4652.223-.3685.2121-.6932.484-1.0055.7705-.6483.595-1.225 1.2557-1.7792 1.9372a.4396.4396 0 0 0-.0413.057c-.0512.089-.0522.1799-.0001.2679zm8.1922-2.6436c-.0455-.01-.0931-.0125-.14-.015-.358-.0193-.7122.0157-1.064.0803-.6816.125-1.3331.3475-1.972.61-1.0279.4224-2.006.943-2.962 1.5069-1.0809.6376-2.1288 1.326-3.1393 2.0699-.2069.1522-.4372.082-.4876-.157-.0201-.0954-.0579-.187-.089-.28-.3483-1.0427-1.3356-1.6851-2.3812-1.6402-.3511.015-.6895.0997-1.0177.2225-.0924.0346-.1807.0392-.2755.0176-.1641-.0375-.3294-.0697-.4942-.1044l-4.449-.9366c-.2683-.0565-.5365-.1135-.8052-.1676-.0362-.0072-.0825-.0407-.116.0207.0332.053.0934.0526.1426.0672 1.8547.5505 3.7099 1.0995 5.5647 1.6495.0749.0222.1512.045.2203.0803.5374.2748.8673.7084.978 1.3029.0213.1147.0259.2336.0273.3507.0061.4937-.0127.9887.016 1.481.0558.9608.45 1.775 1.1374 2.4462.572.5585 1.1566 1.1044 1.7196 1.6717.7684.774 1.1923 1.7165 1.3017 2.8.0114.1128.0516.198.1314.2772.6285.6242 1.2543 1.2512 1.881 1.8773.0222.0222.0437.0453.0681.0648.0845.0671.1786.0796.2758.0347.101-.0467.1555-.1285.1584-.2413.0007-.0234-.0034-.0469-.006-.0702-.0738-.6595-.2042-1.3076-.3858-1.946-.2617-.92-.7002-1.744-1.3473-2.4494-.3018-.329-.628-.6354-.9433-.952-.0415-.0416-.0853-.081-.125-.1243-.1147-.1244-.1133-.265.0022-.3871.0269-.0285.0553-.0556.083-.0833l8.551-8.5444c.0304-.0304.0624-.0598.0899-.0928.1363-.164.0592-.3938-.1483-.4398z\"},\"child\":[]}]})(props);\n};\nexport function SiIntercom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 0H3C1.343 0 0 1.343 0 3v18c0 1.658 1.343 3 3 3h18c1.658 0 3-1.342 3-3V3c0-1.657-1.342-3-3-3zm-5.801 4.399c0-.44.36-.8.802-.8.44 0 .8.36.8.8v10.688c0 .442-.36.801-.8.801-.443 0-.802-.359-.802-.801V4.399zM11.2 3.994c0-.44.357-.799.8-.799s.8.359.8.799v11.602c0 .44-.357.8-.8.8s-.8-.36-.8-.8V3.994zm-4 .405c0-.44.359-.8.799-.8.443 0 .802.36.802.8v10.688c0 .442-.36.801-.802.801-.44 0-.799-.359-.799-.801V4.399zM3.199 6c0-.442.36-.8.802-.8.44 0 .799.358.799.8v7.195c0 .441-.359.8-.799.8-.443 0-.802-.36-.802-.8V6zM20.52 18.202c-.123.105-3.086 2.593-8.52 2.593-5.433 0-8.397-2.486-8.521-2.593-.335-.288-.375-.792-.086-1.128.285-.334.79-.375 1.125-.09.047.041 2.693 2.211 7.481 2.211 4.848 0 7.456-2.186 7.479-2.207.334-.289.839-.25 1.128.086.289.336.25.84-.086 1.128zm.281-5.007c0 .441-.36.8-.801.8-.441 0-.801-.36-.801-.8V6c0-.442.361-.8.801-.8.441 0 .801.357.801.8v7.195z\"},\"child\":[]}]})(props);\n};\nexport function SiIntermarche (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.948 13.05.677 1.18h12.782l.15-1.18zm1.961-2.556a3.209 3.209 0 0 0-.694.071 1.72 1.72 0 0 0-.537-.07 2.699 2.699 0 0 0-1.007.168l-.215 1.53.317.552h.384l.254-1.834a.648.648 0 0 1 .2-.03c.17 0 .229.086.23.192l-.234 1.672h.782l.215-1.525a1 1 0 0 0 .008-.093l.03-.214a.646.646 0 0 1 .201-.029c.197 0 .246.115.227.25l-.22 1.608h.778l.215-1.524c.062-.442-.185-.72-.93-.72M8.88 11.88a.725.725 0 0 0 .438-.593l.012-.078h-.004c.062-.442-.185-.72-.93-.72a2.699 2.699 0 0 0-1.007.17v.003L7.1 12.741h.778l.104-.74h.2l1.466 2c.097.13.219.23.375.23h.208l-1.355-2.352zm-.32-.755-.01.084-.025.165a.27.27 0 0 1-.3.247h-.19l.01-.078.09-.638a.64.64 0 0 1 .202-.03c.197 0 .247.114.227.25zm-3.84 1.503c.014-.102-.023-.174-.145-.174h-.09c-.197 0-.247-.114-.228-.25l.165-1.178v-.015l.01-.078h.21a.058.058 0 0 1 .02 0c.113 0 .207-.115.231-.289H4.47l.122-.871c-.558.061-.815.32-.871.705l-.066.434-.006.042-.004.03-.14 1.04c-.061.432.17.707.876.72h.322l.016-.114m1.416-2.14a2.699 2.699 0 0 0-1.007.17l-.119.846-.068.509c-.06.43.175.705.877.718h.853l.015-.102c.015-.103-.021-.186-.143-.186H5.92c-.197 0-.246-.114-.227-.25l.025-.186h.244c.714-.01 1.03-.283 1.092-.713l.012-.079h-.004c.06-.44-.187-.719-.931-.719zm.166.642-.011.085-.027.155a.27.27 0 0 1-.3.247h-.191l.01-.078.09-.638a.642.642 0 0 1 .202-.029c.196 0 .245.115.226.25zm16.764-.642a2.696 2.696 0 0 0-1.005.17l-.12.846-.068.509c-.06.43.175.705.876.718h.854l.015-.103c.015-.103-.022-.185-.144-.185h-.625c-.196 0-.246-.114-.226-.25l.025-.186h.244c.713-.01 1.03-.283 1.092-.713l.012-.079h-.004c.061-.44-.186-.719-.93-.719zm.163.642-.01.085-.025.164a.271.271 0 0 1-.3.247h-.191l.01-.077.09-.639a.643.643 0 0 1 .202-.028c.196-.01.246.105.226.24zm-9.025-.632h-.665c-.116 0-.208.115-.233.29h.794c.197 0 .246.121.227.253l-.034.247h-.258c-.703.013-1.017.284-1.078.713l-.012.078h.007c-.06.44.187.719.933.719.342.008.684-.05 1.005-.17l.12-.847.075-.564c.06-.43-.175-.713-.876-.726zm.024 1.245-.09.645a.642.642 0 0 1-.201.03c-.196 0-.245-.115-.227-.25l.01-.085.026-.165a.27.27 0 0 1 .298-.248h.192l-.01.077zm3.16-.456.012-.079h.005c.06-.44-.187-.718-.93-.718a2.698 2.698 0 0 0-1.007.17v.003l-.293 2.08h.778l.104-.74h.198l.437.739h.778l-.513-.862a.725.725 0 0 0 .438-.593zm-.747-.165-.01.085-.039.163a.27.27 0 0 1-.3.247h-.19l.01-.078.09-.638a.64.64 0 0 1 .201-.029c.201.001.25.115.232.25zm2.604 1.33.018-.132a3.28 3.28 0 0 1-.647.073h-.06c-.196 0-.245-.115-.227-.254l.065-.479.018-.136.07-.477a.27.27 0 0 1 .296-.254h.06c.21-.002.42.02.624.067l.018-.137c.016-.114.027-.207-.127-.236a3.265 3.265 0 0 0-.537-.037c-.744 0-1.07.277-1.13.718l-.117.835c-.06.44.188.719.932.719.194 0 .388-.015.58-.048.085-.02.14-.058.165-.236m1.486-1.946c-.072 0-.143.002-.21.006l.1-.73c-.558.061-.815.32-.87.706l-.071.507-.247 1.76h.778l.254-1.834a.646.646 0 0 1 .2-.029c.197 0 .246.114.227.25l-.227 1.613h.778l.216-1.524c.062-.442-.186-.72-.932-.72M.865 11.51l.007-.055.243-1.684h-.78l-.27 1.843v.007l-.056.424c-.054.385.128.646.67.706l.18-1.239m22.771-1.53h-1.07l-.042.29h.878c.115 0 .208-.116.233-.29M2.274 12.741l.227-1.613c.019-.135-.03-.25-.227-.25a.64.64 0 0 0-.2.03l-.254 1.833h-.78l.293-2.079a2.69 2.69 0 0 1 1.006-.17c.745 0 .992.28.93.72l-.214 1.525h-.778\"},\"child\":[]}]})(props);\n};\nexport function SiInternetarchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.667 22.884V24H1.333v-1.116zm-.842-1.675v1.396H2.175v-1.396zM4.233 6.14l.234.118.118 1.882.117 3.058v2.941l-.117 3.666-.02 2.47-.332.098H3.062l-.352-.098-.136-2.47-.118-3.646v-2.941l.118-3.078.107-1.892.244-.107zm16.842 0l.235.118.117 1.882.117 3.058v2.941l-.117 3.666-.02 2.47-.332.098h-1.171l-.352-.098-.137-2.47-.117-3.646v-2.941l.117-3.078.108-1.892.244-.107zm-11.79 0l.235.118.117 1.882.117 3.058v2.941l-.117 3.666-.02 2.47-.331.098H8.114l-.352-.098-.136-2.47-.117-3.646v-2.941l.117-3.078.107-1.892.244-.107zm6.457 0l.234.118.117 1.882.118 3.058v2.941l-.118 3.666-.019 2.47-.332.098H14.57l-.351-.098-.137-2.47-.117-3.646v-2.941l.117-3.078.108-1.892.244-.107zm6.083-2.511V5.58H2.175V3.628zM11.798 0l10.307 2.347-.413.723H1.951l-.618-.587Z\"},\"child\":[]}]})(props);\n};\nexport function SiInternetcomputer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.264 6.24c-2.52 0-5.376 3.024-6.264 3.984-.72-.792-3.696-3.984-6.264-3.984C2.568 6.24 0 8.832 0 12c0 3.168 2.568 5.76 5.736 5.76 2.52 0 5.376-3.024 6.264-3.984.72.792 3.696 3.984 6.264 3.984C21.432 17.76 24 15.168 24 12c0-3.168-2.568-5.76-5.736-5.76ZM5.736 15.384A3.38 3.38 0 0 1 2.352 12a3.395 3.395 0 0 1 3.384-3.384c1.176 0 3.24 1.8 4.68 3.384-.408.456-3.144 3.384-4.68 3.384zm12.528 0c-1.176 0-3.24-1.8-4.68-3.384.408-.456 3.168-3.384 4.68-3.384A3.38 3.38 0 0 1 21.648 12c-.024 1.872-1.536 3.384-3.384 3.384z\"},\"child\":[]}]})(props);\n};\nexport function SiIntigriti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.9133 6.0364c-1.1056.574-3.7632 1.924-5.8999 3.0084-3.7738 1.9134-7.0267 3.593-7.1117 3.6674-.032.0213.0106.404.085.8611.574 3.4123 2.1473 6.4526 4.316 8.3555l.691.6165.6909-.5953c1.839-1.6158 3.3273-4.2202 4.0502-7.0585.1488-.5634.2764-1.3076.287-1.6477l.0213-.6166-2.9553-1.5308-.7335.372c-.3933.202-.7229.3934-.7229.4253 0 .0319.6698.3933 1.4883.7973l1.4882.7335-.0637.3827c-.3934 2.1686-1.6158 4.7517-2.9234 6.1868l-.606.6698-.4464-.4253c-.9248-.893-1.9347-2.615-2.5194-4.3053-.3295-.946-.7229-2.4343-.659-2.4875.0212-.0212 3.0402-1.5414 6.7077-3.391l6.6546-3.3699.2126.3508c.6697 1.0843.7229 2.5407.1382 3.7313-.6484 1.3181-1.754 1.9879-3.3698 2.0623l-.978.0425-.0638.3189c-.0319.1807-.0638.4784-.0638.6803 0 .319.032.3615.3827.4253.574.1063 1.7647-.032 2.4556-.287 1.6796-.6273 2.849-1.9135 3.3699-3.7313.4464-1.5627-.032-3.423-1.265-4.8475-.2127-.2445-.4465-.4464-.5103-.4464-.0744.0106-1.0312.4783-2.1473 1.0524zM1.3739 5.4836C.1833 6.8762-.2632 8.6196.1514 10.2354c.4677 1.8071 1.6583 3.136 3.3698 3.7737.691.2552 1.8816.3934 2.4556.287.4146-.085.4571-.202.319-1.031l-.0638-.3934-.978-.0425c-1.6265-.0744-2.7214-.7442-3.3805-2.0836-.574-1.148-.5315-2.5406.085-3.6143l.2658-.4571 3.8482 1.956 3.8588 1.956.7123-.3508c.3933-.202.7122-.404.7122-.4465 0-.0638-9.3441-4.805-9.4823-4.805-.0425 0-.2658.2233-.4996.4997zm6.3144-3.6144l-.2657.404.2338.0638c.691.1807 1.6903.9567 2.1048 1.637l.2127.3402-.5953.8824c-.5953.893-1.212 2.0304-1.212 2.2323 0 .0957.9568.6379 1.1375.6379.0426 0 .287-.404.5316-.8824.5315-1.0417.9567-1.6583 1.6583-2.4024l.4996-.5315.4465.4783c.7016.7548 1.2119 1.4883 1.6902 2.4237.2445.4678.4678.8824.489.9143.0638.0744 1.2013-.5422 1.2013-.6591 0-.1914-.6485-1.3713-1.2225-2.2111l-.5953-.8717.2232-.3508c.3295-.5316 1.2012-1.2757 1.754-1.499.2658-.1169.4784-.255.4784-.3082 0-.0638-.1063-.2445-.2445-.4146l-.2445-.2976-.5209.2445c-.3083.1488-.8717.5846-1.3394 1.0524l-.808.8079-.659-.606-.6485-.6165-.6484.6165-.6591.6166-.7548-.7654C9.3254 2.1882 8.2943 1.476 8.018 1.476c-.032 0-.1808.1807-.3296.3933z\"},\"child\":[]}]})(props);\n};\nexport function SiIntuit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.32 12.38c0 1.174.974 2.033 2.211 2.033 1.237 0 2.212-.859 2.212-2.033v-2.7h-1.198v2.56c0 .633-.44 1.06-1.017 1.06s-1.017-.424-1.017-1.06V9.68h-1.198l.008 2.699zm7.624-1.619h1.429v3.563h1.198V10.76H24V9.68h-4.056v1.082zM19.17 9.68h-1.198v4.645h1.198V9.679zM7.482 10.761h1.43v3.563h1.197V10.76h1.428V9.68H7.482v1.082zM1.198 9.68H0v4.645h1.198V9.679zm5.653 1.94c0-1.174-.974-2.032-2.212-2.032-1.238 0-2.212.858-2.212 2.032v2.705h1.198v-2.56c0-.633.44-1.06 1.017-1.06s1.018.425 1.018 1.06v2.56h1.197L6.85 11.62h.001z\"},\"child\":[]}]})(props);\n};\nexport function SiInvision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.265 15.108a4.715 4.715 0 0 0-.124 1.036c0 1.215.658 2.021 2.058 2.021 1.16 0 2.102-.69 2.78-1.803l-.415 1.661h2.304l1.319-5.28c.329-1.338.966-2.032 1.934-2.032.761 0 1.235.473 1.235 1.255a2.46 2.46 0 0 1-.103.742l-.679 2.427a3.63 3.63 0 0 0-.144 1.03c0 1.151.679 1.996 2.099 1.996 1.214 0 2.182-.781 2.716-2.654l-.905-.35c-.453 1.255-.844 1.482-1.152 1.482-.308 0-.474-.206-.474-.618a2.737 2.737 0 0 1 .103-.638l.66-2.366a5.23 5.23 0 0 0 .226-1.5c0-1.771-1.07-2.695-2.368-2.695-1.214 0-2.449 1.096-3.066 2.249L13.721 9h-3.518l-.495 1.824h1.648l-1.014 4.055c-.797 1.77-2.26 1.799-2.443 1.758-.302-.068-.494-.183-.494-.576a3.847 3.847 0 0 1 .144-.942l1.544-6.124H5.184l-.493 1.824h1.625zm2.902-7.385a1.38 1.38 0 1 0-1.4-1.38 1.384 1.384 0 0 0 1.4 1.38zM0 0h24v24H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiInvoiceninja (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.247 10.326a1.164 1.164 0 11-2.328 0 1.164 1.164 0 012.328 0zm-6.288 0a1.164 1.164 0 11-2.329 0 1.164 1.164 0 012.329 0zm-.14 13.52c-4.712-.98-8.227-4.257-9.482-8.842-.421-1.537-.421-4.49 0-6.027C1.506 4.709 4.73 1.485 8.997.316c1.538-.421 4.49-.421 6.028 0 4.267 1.169 7.492 4.393 8.66 8.66.24.874.294 1.43.294 3.014 0 1.584-.054 2.14-.293 3.014-1.17 4.271-4.439 7.536-8.661 8.65-1.391.367-3.916.46-5.206.192zm6.64-9.315c-3.047-1.348-4.054-1.737-4.5-1.737-.446 0-1.433.38-4.38 1.684-2.091.926-3.828 1.76-3.86 1.79h16.663zm-9.873-.361c1.621-.729 3.06-1.387 3.196-1.464.258-.145.337-.09-5.285-3.682-.56-.358-1.023-.698-1.025-.65V15.564a790.1 790.1 0 003.114-1.394zm14.078-2.194V8.417c0-.11-1.676.993-3.496 2.12-3 1.854-3.281 2.06-3.004 2.185 1.345.611 6.42 2.862 6.5 2.872zm-8.169.11c.545.125.643.104 1.226-.263.349-.22.655-.419.681-.442.026-.024-.05-.181-.167-.35-.118-.168-.215-.5-.215-.739V9.86l-.569.21c-.726.267-2.28.27-3 .005l-.556-.205.013.452c.007.26-.088.563-.225.715-.232.256-.22.276.45.726.64.432.725.455 1.23.327a2.349 2.349 0 011.132-.002zm-4.23-2.65c-.105-.113-2.97-.954-3.033-.891-.03.03.504.414 1.186.854l1.24.8.34-.344c.186-.188.307-.377.268-.42zm9.76-.373c.473-.306.8-.555.728-.555-.155 0-2.877.804-3.027.894-.057.034.033.229.2.433l.304.37.47-.293c.257-.162.854-.544 1.326-.85zm-1.636-.555c2.11-.59 3.867-1.102 3.904-1.139H3.59c.187.187 7.779 2.195 8.323 2.202.41.005 2.014-.376 4.476-1.063z\"},\"child\":[]}]})(props);\n};\nexport function SiIobroker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.61 0-1.201.044-1.787.133v3.285a8.943 8.943 0 013.574.004V.139A11.83 11.83 0 0012 0zM9.38.295C4.084 1.5.13 6.283.13 12 .129 18.628 5.44 24 12 24s11.871-5.372 11.871-12c0-5.717-3.953-10.499-9.246-11.705v3.34c3.575 1.113 6.18 4.44 6.18 8.365 0 4.83-3.949 8.76-8.8 8.76-4.85 0-8.804-3.93-8.804-8.76 0-3.924 2.605-7.247 6.18-8.365V.295zM12 4.137c-.616 0-1.212.068-1.783.2V19.53A7.887 7.887 0 0012 19.73c.616 0 1.211-.068 1.787-.2V4.343A7.65 7.65 0 0012 4.137Z\"},\"child\":[]}]})(props);\n};\nexport function SiIonic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.922 7.027l-.103-.23-.169.188c-.408.464-.928.82-1.505 1.036l-.159.061.066.155a9.745 9.745 0 0 1 .75 3.759c0 5.405-4.397 9.806-9.806 9.806-5.409 0-9.802-4.397-9.802-9.802 0-5.405 4.402-9.806 9.806-9.806 1.467 0 2.883.319 4.2.947l.155.075.066-.155a3.767 3.767 0 0 1 1.106-1.453l.197-.159-.225-.117A11.905 11.905 0 0 0 12.001.001c-6.619 0-12 5.381-12 12s5.381 12 12 12 12-5.381 12-12c0-1.73-.361-3.403-1.078-4.973zM12 6.53A5.476 5.476 0 0 0 6.53 12 5.476 5.476 0 0 0 12 17.47 5.476 5.476 0 0 0 17.47 12 5.479 5.479 0 0 0 12 6.53zm10.345-2.007a2.494 2.494 0 1 1-4.988 0 2.494 2.494 0 0 1 4.988 0z\"},\"child\":[]}]})(props);\n};\nexport function SiIonos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.182 15.499a1.7634 1.7634 0 0 1-.3536-.0358 1.8319 1.8319 0 0 1-1.2086-.8632l-.0066-.012c-.1308-.2616-.0448-.5693.2-.7162a.5236.5236 0 0 1 .2689-.0743.5327.5327 0 0 1 .4632.272.558.558 0 0 0 .018.0299l.0564.0766.0757.0765a.7385.7385 0 0 0 .3453.167.7596.7596 0 0 0 .5954-.136.7206.7206 0 0 0 .299-.5386.7441.7441 0 0 0-.207-.578s-1.5994-1.6612-1.6712-1.7382a1.9604 1.9604 0 0 1-.1929-.229c-.2256-.3198-.2962-.697-.2614-1.0702a1.7361 1.7361 0 0 1 .2253-.7397s.0732-.124.0948-.1554c.0847-.1236.2515-.2834.3658-.3726a1.8813 1.8813 0 0 1 .3069-.1844 1.7494 1.7494 0 0 1 2.2815.7041.5186.5186 0 0 1 .0553.402.5298.5298 0 0 1-.2528.3263.5082.5082 0 0 1-.2593.0705.5283.5283 0 0 1-.46-.2706.6953.6953 0 0 0-.4656-.329.721.721 0 0 0-.5645.1269.688.688 0 0 0-.267.498.6998.6998 0 0 0 .1905.5398l1.6351 1.6862a1.8284 1.8284 0 0 1 .5071 1.3931c-.0465.5243-.3071.9994-.7152 1.3053a1.8425 1.8425 0 0 1-1.0984.369m-5.175-.0006a1.7608 1.7608 0 0 0 1.7585-1.7589v-3.4787a1.7587 1.7587 0 0 0-3.5173 0v3.4786a1.7608 1.7608 0 0 0 1.7587 1.7589m0-5.9342c.3777 0 .6968.319.6968.6967v3.4786a.6977.6977 0 0 1-.6968.6968.6894.6894 0 0 1-.6968-.6968v-3.4786a.6976.6976 0 0 1 .697-.6967m-7.8986.3224v5.0804a.5309.5309 0 0 0 1.0618 0V12.09Zm2.8802 2.0255V9.0328a.531.531 0 0 1 1.0619 0v5.0828zm1.053 2.9406v.1134a.533.533 0 0 1-1.0067.2408L9.1153 9.154v-.1212a.5261.5261 0 0 1 .3028-.4772.5253.5253 0 0 1 .7088.2475Zm-7.9067.6457a1.761 1.761 0 0 0 1.7586-1.7589v-3.4786a1.7587 1.7587 0 0 0-3.5173 0v3.4786a1.7609 1.7609 0 0 0 1.7587 1.7589m0-5.9342a.707.707 0 0 1 .6968.6967v3.4786a.6968.6968 0 1 1-1.3936 0v-3.4786a.6976.6976 0 0 1 .6968-.6967M0 14.9111a.5791.5791 0 1 0 1.1581 0V9.0803a.5791.5791 0 0 0-1.1582 0z\"},\"child\":[]}]})(props);\n};\nexport function SiIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.1 6.05C.486 6.05 0 6.53 0 7.13A1.08 1.08 0 0 0 1.1 8.21C1.72 8.21 2.21 7.73 2.21 7.13C2.21 6.53 1.72 6.05 1.1 6.05M8.71 6.07C5.35 6.07 3.25 8.36 3.25 12C3.25 15.67 5.35 17.95 8.71 17.95C12.05 17.95 14.16 15.67 14.16 12C14.16 8.36 12.05 6.07 8.71 6.07M19.55 6.07C17.05 6.07 15.27 7.45 15.27 9.5C15.27 11.13 16.28 12.15 18.4 12.64L19.89 13C21.34 13.33 21.93 13.81 21.93 14.64C21.93 15.6 20.96 16.28 19.58 16.28C18.17 16.28 17.11 15.59 17 14.53H15C15.08 16.65 16.82 17.95 19.46 17.95C22.25 17.95 24 16.58 24 14.4C24 12.69 23 11.72 20.68 11.19L19.35 10.89C17.94 10.55 17.36 10.1 17.36 9.34C17.36 8.38 18.24 7.74 19.54 7.74C20.85 7.74 21.75 8.39 21.85 9.46H23.81C23.76 7.44 22.09 6.07 19.55 6.07M8.71 7.82C10.75 7.82 12.06 9.45 12.06 12C12.06 14.57 10.75 16.2 8.71 16.2C6.65 16.2 5.35 14.57 5.35 12C5.35 9.45 6.65 7.82 8.71 7.82M.111 9.31V17.76H2.1V9.31H.11Z\"},\"child\":[]}]})(props);\n};\nexport function SiIota (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.4459 18.8235a.7393.7393 0 10-.7417-.7393.7401.7401 0 00.7417.7393zm9.1863 2.218a1.1578 1.1578 0 10-1.1602-1.1578 1.1586 1.1586 0 001.1602 1.1578zm-4.3951.392a.9858.9858 0 10-.9882-.9849.9866.9866 0 00.9882.985zm2.494 2.07a1.1578 1.1578 0 10-1.161-1.1578 1.1586 1.1586 0 001.161 1.1578zm-4.5448-.3944a.9858.9858 0 10-.9873-.985.9866.9866 0 00.9873.985zm-1.7035-2.1676a.8625.8625 0 10-.8649-.8601.8633.8633 0 00.865.8601zm2.0492-1.6747a.8625.8625 0 10-.8634-.8657.8641.8641 0 00.8634.8657zm3.631-.296a.9858.9858 0 10-.9882-.985.9866.9866 0 00.9882.985zm-1.729-2.1428a.8625.8625 0 10-.8634-.8625.8641.8641 0 00.8633.8625zm-2.939.32a.7393.7393 0 10-.741-.7393.7401.7401 0 00.741.7394zm-2.5188-.32a.6161.6161 0 10-.6177-.616.6169.6169 0 00.6177.616zm-.0248-1.7003a.5417.5417 0 10-.5433-.5417.5425.5425 0 00.5433.5417zm2.0995.0248a.6161.6161 0 10-.6169-.616.6169.6169 0 00.617.616zm2.37-.4672a.7393.7393 0 10-.74-.7394.741.741 0 00.74.7394zm-.4688-1.9708a.6161.6161 0 10-.617-.616.6169.6169 0 00.617.616zm-1.9508.7386a.5417.5417 0 10-.544-.5417.5425.5425 0 00.544.5417zm-1.7779.2216a.4433.4433 0 10-.4448-.4433.4449.4449 0 00.4448.4433zm2.4452-6.5515a.8625.8625 0 10-.8649-.8625.8633.8633 0 00.865.8625zm2.2468-.0256a.7393.7393 0 10-.7409-.7385.7401.7401 0 00.741.7385zm-.42-2.61a.7393.7393 0 10-.741-.7394.741.741 0 00.741.7394zm-2.2468-.0008a.8625.8625 0 10-.865-.8618.8633.8633 0 00.865.8618zm-2.618.5913a.9858.9858 0 10-.9898-.985.9858.9858 0 00.9897.985zm.4192 2.6116a.9858.9858 0 10-.9874-.9858.9874.9874 0 00.9874.9858zM3.1861 9.093a1.1578 1.1578 0 10-1.161-1.1578 1.1594 1.1594 0 001.161 1.1578zm-1.8035 5.2465A1.3794 1.3794 0 100 12.9602a1.381 1.381 0 001.3826 1.3794zm2.9637-2.3644a1.1578 1.1578 0 10-1.1602-1.1578 1.1594 1.1594 0 001.1602 1.1578zm2.8653-1.4034a.9858.9858 0 10-.9882-.9858.9866.9866 0 00.9882.9858zm2.6172-.5921a.8625.8625 0 10-.8673-.8602.8625.8625 0 00.8673.8602zm2.2476.0008a.7393.7393 0 10-.741-.7393.7401.7401 0 00.741.7393zm.6913-2.4884a.6161.6161 0 10-.6177-.6153.6169.6169 0 00.6177.6153zm-.4192-2.6133a.6161.6161 0 10-.6185-.616.6169.6169 0 00.6185.616zm7.1612 11.4803a.6161.6161 0 10-.6178-.6153.6161.6161 0 00.6178.6153zM13.755 5.599a.5425.5425 0 10-.5433-.5416.5417.5417 0 00.5433.5416zm1.0378.8338a.4433.4433 0 10-.445-.4433.444.444 0 00.445.4433zm-.593 1.7739a.5425.5425 0 10-.5432-.5417.5425.5425 0 00.5433.5417zm-.2712 2.1675a.6161.6161 0 10-.6177-.616.6169.6169 0 00.6177.616zm.0248 4.6312a.6161.6161 0 10-.6177-.616.6169.6169 0 00.6177.616zm1.6787 1.1818a.5417.5417 0 10-.5433-.5417.5425.5425 0 00.5433.5417zm1.1602 1.281a.4433.4433 0 10-.444-.4433.444.444 0 00.444.4433zm1.309-.3472a.5417.5417 0 10-.5433-.5417.5417.5417 0 00.5433.5417zm-1.0586-1.6971a.6161.6161 0 10-.6177-.6153.6161.6161 0 00.6177.6153zm-1.7074-1.6507a.7393.7393 0 10-.7402-.7393.7401.7401 0 00.7402.7393zm5.5569 1.3802a.7393.7393 0 10-.741-.7393.741.741 0 00.741.7393zm-2.494-.9361a.7393.7393 0 10-.741-.7393.7401.7401 0 00.741.7393zm3.7286-.8378a.8625.8625 0 10-.8642-.8617.8633.8633 0 00.8642.8617zM16.5459 12a.8625.8625 0 10-.8633-.8625.8641.8641 0 00.8634.8625zm3.087.4185a.8625.8625 0 10-.8642-.8618.8633.8633 0 00.8642.8618zm3.383-1.4035a.9858.9858 0 10-.9874-.9857.9874.9874 0 00.9873.9857zm-2.4693-.961a.9858.9858 0 10-.9881-.9849.9866.9866 0 00.9881.985zm-3.0869-.4184a.9858.9858 0 10-.9874-.9857.9874.9874 0 00.9874.9857zm3.4822-2.4884a1.1578 1.1578 0 10-1.1602-1.1578 1.1594 1.1594 0 001.1602 1.1578zm-3.087-.4433a1.1578 1.1578 0 10-1.161-1.1578 1.1586 1.1586 0 001.161 1.1578zm1.1603 16.0355a1.3794 1.3794 0 10-1.3827-1.3778 1.3818 1.3818 0 001.3827 1.3778zm-1.5555-19.484a1.3794 1.3794 0 10-1.3834-1.3795 1.3818 1.3818 0 001.3834 1.3795z\"},\"child\":[]}]})(props);\n};\nexport function SiIpfs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L1.608 6v12L12 24l10.392-6V6zm-1.073 1.445h.001a1.8 1.8 0 002.138 0l7.534 4.35a1.794 1.794 0 000 .403l-7.535 4.35a1.8 1.8 0 00-2.137 0l-7.536-4.35a1.795 1.795 0 000-.402zM21.324 7.4c.109.08.226.147.349.201v8.7a1.8 1.8 0 00-1.069 1.852l-7.535 4.35a1.8 1.8 0 00-.349-.2l-.009-8.653a1.8 1.8 0 001.07-1.851zm-18.648.048l7.535 4.35a1.8 1.8 0 001.069 1.852v8.7c-.124.054-.24.122-.349.202l-7.535-4.35a1.8 1.8 0 00-1.069-1.852v-8.7c.124-.054.24-.122.35-.202z\"},\"child\":[]}]})(props);\n};\nexport function SiIris (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.691 11.281c-1.26-.322-1.573-.479-1.573-.957v-.021c0-.354.323-.635.937-.635.578 0 1.174.239 1.779.639l.074.05c.026.01.055.002.074-.018l.775-1.121a.061.061 0 0 0-.009-.068c-.023-.015-.044-.034-.068-.05l-.007-.005c-.716-.541-1.584-.843-2.592-.843-1.492 0-2.552.874-2.552 2.196v.021c0 1.448.949 1.854 2.416 2.228 1.22.313 1.468.521 1.468.927v.021c0 .427-.396.687-1.052.687-.797 0-1.461-.315-2.092-.817l-.043-.035a.064.064 0 0 0-.075.012l-.881 1.049a.069.069 0 0 0 0 .073l.068.059a4.645 4.645 0 0 0 2.986 1.075c1.572 0 2.676-.813 2.676-2.259v-.018c.005-1.273-.828-1.805-2.309-2.19ZM5.765 8.42a.069.069 0 0 1 .068-.065h1.475a.068.068 0 0 1 .064.068v7.157a.064.064 0 0 1-.064.064H5.829a.068.068 0 0 1-.067-.064l.003-7.16ZM0 13.339c0-.035.029-.063.064-.063h1.475a.067.067 0 0 1 .065.063v2.241a.068.068 0 0 1-.065.064H.064A.064.064 0 0 1 0 15.58v-2.241ZM15.836 8.42c0-.035.029-.064.064-.064h1.476c.034 0 .063.029.063.064v7.16a.064.064 0 0 1-.063.064H15.9a.064.064 0 0 1-.064-.064V8.42Zm-.887 7.172-1.744-2.551c.926-.344 1.559-1.084 1.559-2.259v-.022c0-.688-.218-1.261-.624-1.667-.478-.477-1.193-.737-2.123-.737H8.749a.064.064 0 0 0-.063.064v7.16c0 .035.028.064.063.064h1.476a.064.064 0 0 0 .064-.064v-2.268h1.26l1.559 2.332h1.81c.038 0 .051-.024.031-.052ZM2.847 10.966a.068.068 0 0 1 .068-.063h1.47a.068.068 0 0 1 .064.063v4.61a.064.064 0 0 1-.064.063H2.909a.07.07 0 0 1-.068-.063l.006-4.61Zm7.448.93.008-2.093h1.578c.782 0 1.26.354 1.26 1.041v.021c0 .614-.447 1.031-1.228 1.031h-1.618Z\"},\"child\":[]}]})(props);\n};\nexport function SiIrobot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.848 8.166c.75-3.536-1.287-7.264-5.747-7.264h-6.955l-1.152 5.4h5.246c1.076 0 1.748.884 1.517 1.941-.23 1.076-1.267 1.903-2.344 1.903H9.11l7.111 13.143h7.437l-4.806-8.82c1.288-.692 4.21-2.632 4.997-6.303zM1.23 17.505 0 23.31h6.342l2.767-13.145c-3.863.135-6.9 2.71-7.88 7.34zM5.4 6.648a2.985 2.985 0 0 0 2.997-2.98A2.986 2.986 0 0 0 5.4.69a2.986 2.986 0 0 0-2.998 2.98c0 1.633 1.346 2.978 2.998 2.978z\"},\"child\":[]}]})(props);\n};\nexport function SiIsc2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.153 8.677c.876 0 1.592.333 2.196.839.014.012.063.051.077.064.059.049.071.052.142-.022l.068-.072.518-.566c.055-.065.046-.07.006-.112l-.071-.069c-.777-.69-1.776-1.183-2.936-1.183-2.454 0-4.366 1.972-4.366 4.45s1.912 4.438 4.366 4.438c1.16 0 2.161-.523 2.939-1.226.086-.074.118-.101.032-.187l-.528-.577c-.086-.087-.109-.066-.195.008-.604.505-1.372.861-2.248.861-1.763 0-3.194-1.431-3.194-3.317 0-1.898 1.431-3.329 3.194-3.329ZM4.1 9.824c0-.752.617-1.208 1.443-1.208.716 0 1.246.296 1.814.826.086.086.114.134.2.035l.512-.553c.087-.099.04-.123-.046-.209a3.317 3.317 0 0 0-2.492-1.159c-1.419 0-2.541.924-2.541 2.256 0 2.786 4.292 2.207 4.292 4.142 0 .789-.69 1.406-1.714 1.406-.985 0-1.504-.454-2.047-.971-.086-.087-.105-.107-.179-.033l-.585.553c-.087.074-.078.08-.017.179.561.756 1.607 1.344 2.828 1.344 1.53 0 2.849-1.011 2.849-2.429 0-2.934-4.317-2.28-4.317-4.179ZM1.147 7.639v7.616a.06.06 0 0 1-.019.044L.044 16.346c-.016.016-.044.004-.044-.019V7.639c0-.014.012-.026.026-.026h1.095c.014 0 .026.012.026.026Zm20.056-.066c-1.11 0-1.99.49-2.533 1.168a1.213 1.213 0 0 0-.057.081c-.04.061-.029.066.027.128.14.156.576.649.576.649.018.019.035.02.051.006l.075-.071c.346-.358.936-.95 1.849-.95 1.024 0 1.64.642 1.64 1.578 0 1.33-.762 1.962-2.459 3.389-.494.415-1.405 1.215-1.633 1.414a.158.158 0 0 0-.052.117v1.194c0 .053.063.082.103.047.468-.411 2.405-2.107 3.034-2.641 1.629-1.384 2.068-2.324 2.068-3.532 0-1.467-1.06-2.577-2.689-2.577Zm2.734 7.792H21.2a.064.064 0 0 0-.064.064v.81c0 .035.029.063.064.063h2.737a.063.063 0 0 0 .063-.063v-.81a.064.064 0 0 0-.063-.064Z\"},\"child\":[]}]})(props);\n};\nexport function SiIssuu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.996 0A.998.998 0 0 0 0 .996V12c0 6.628 5.372 12 12 12s12-5.372 12-12S18.628 0 12 0H.996zm11.17 3.582a8.333 8.333 0 0 1 8.254 8.41 8.333 8.333 0 0 1-8.41 8.252c-4.597-.045-8.296-3.81-8.254-8.41.045-4.6 3.81-8.296 8.41-8.252zm-.031 2.27a6.107 6.107 0 0 0-6.155 6.046 6.109 6.109 0 0 0 6.05 6.163 6.099 6.099 0 0 0 6.154-6.047 6.107 6.107 0 0 0-6.041-6.162h-.008zm-.02 3.013a3.098 3.098 0 0 1 3.063 3.123 3.088 3.088 0 0 1-3.121 3.06l.002-.001a3.091 3.091 0 0 1 .056-6.182z\"},\"child\":[]}]})(props);\n};\nexport function SiIstio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 21 20 21 10 24zM4 20 10 19 10 8zM11 19 20 20 11 0z\"},\"child\":[]}]})(props);\n};\nexport function SiItchdotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.13 1.338C2.08 1.96.02 4.328 0 4.95v1.03c0 1.303 1.22 2.45 2.325 2.45 1.33 0 2.436-1.102 2.436-2.41 0 1.308 1.07 2.41 2.4 2.41 1.328 0 2.362-1.102 2.362-2.41 0 1.308 1.137 2.41 2.466 2.41h.024c1.33 0 2.466-1.102 2.466-2.41 0 1.308 1.034 2.41 2.363 2.41 1.33 0 2.4-1.102 2.4-2.41 0 1.308 1.106 2.41 2.435 2.41C22.78 8.43 24 7.282 24 5.98V4.95c-.02-.62-2.082-2.99-3.13-3.612-3.253-.114-5.508-.134-8.87-.133-3.362 0-7.945.053-8.87.133zm6.376 6.477a2.74 2.74 0 0 1-.468.602c-.5.49-1.19.795-1.947.795a2.786 2.786 0 0 1-1.95-.795c-.182-.178-.32-.37-.446-.59-.127.222-.303.412-.486.59a2.788 2.788 0 0 1-1.95.795c-.092 0-.187-.025-.264-.052-.107 1.113-.152 2.176-.168 2.95v.005l-.006 1.167c.02 2.334-.23 7.564 1.03 8.85 1.952.454 5.545.662 9.15.663 3.605 0 7.198-.21 9.15-.664 1.26-1.284 1.01-6.514 1.03-8.848l-.006-1.167v-.004c-.016-.775-.06-1.838-.168-2.95-.077.026-.172.052-.263.052a2.788 2.788 0 0 1-1.95-.795c-.184-.178-.36-.368-.486-.59-.127.22-.265.412-.447.59a2.786 2.786 0 0 1-1.95.794c-.76 0-1.446-.303-1.948-.793a2.74 2.74 0 0 1-.468-.602 2.738 2.738 0 0 1-.463.602 2.787 2.787 0 0 1-1.95.794h-.16a2.787 2.787 0 0 1-1.95-.793 2.738 2.738 0 0 1-.464-.602zm-2.004 2.59v.002c.795.002 1.5 0 2.373.953.687-.072 1.406-.108 2.125-.107.72 0 1.438.035 2.125.107.873-.953 1.578-.95 2.372-.953.376 0 1.876 0 2.92 2.934l1.123 4.028c.832 2.995-.266 3.068-1.636 3.07-2.03-.075-3.156-1.55-3.156-3.025-1.124.184-2.436.276-3.748.277-1.312 0-2.624-.093-3.748-.277 0 1.475-1.125 2.95-3.156 3.026-1.37-.004-2.468-.077-1.636-3.072l1.122-4.027c1.045-2.934 2.545-2.934 2.92-2.934zM12 12.714c-.002.002-2.14 1.964-2.523 2.662l1.4-.056v1.22c0 .056.56.033 1.123.007.562.026 1.124.05 1.124-.008v-1.22l1.4.055C14.138 14.677 12 12.713 12 12.713z\"},\"child\":[]}]})(props);\n};\nexport function SiIterm2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.806 3.845h2.563v5.126h-2.563zm-1.531 1.65c-.14-.104-.272-.183-.397-.239-.126-.056-.28-.084-.463-.084-.167 0-.298.034-.391.102-.094.067-.141.161-.141.28 0 .092.045.168.135.227.089.06.202.117.337.17.135.054.282.11.439.168.157.057.304.128.439.212.135.083.248.186.337.307.09.121.135.274.135.457 0 .255-.091.471-.272.648s-.435.289-.761.337v.878h-.478v-.866c-.207-.02-.412-.073-.615-.158-.203-.086-.378-.19-.526-.314l.311-.471c.171.115.344.209.519.28.176.072.367.108.574.108.191 0 .335-.036.433-.108.097-.071.146-.167.146-.286 0-.104-.045-.189-.135-.257-.089-.068-.202-.13-.337-.188s-.281-.116-.436-.173c-.155-.058-.3-.129-.436-.212-.135-.084-.247-.184-.337-.302-.09-.117-.134-.266-.134-.445 0-.258.087-.469.262-.633.176-.163.412-.264.711-.304v-.782h.478v.776c.211.024.391.078.54.161.149.084.286.187.409.311zm-2.165-2.442c-.456.244-.813.601-1.057 1.057s-.373.908-.373 2.154v11.472c0 1.246.129 1.698.373 2.154s.601.813 1.057 1.057.908.373 2.154.373h11.472c1.246 0 1.698-.129 2.154-.373s.813-.601 1.057-1.057.373-.908.373-2.154v-11.472c0-1.246-.129-1.698-.373-2.154s-.601-.813-1.057-1.057-.908-.373-2.154-.373h-11.472c-1.246 0-1.698.129-2.154.373zm2.199-2.121h11.382c1.87 0 2.548.195 3.231.56.684.366 1.22.902 1.586 1.586.365.683.56 1.361.56 3.231v11.382c0 1.87-.195 2.548-.56 3.231-.366.684-.902 1.22-1.586 1.586-.683.365-1.361.56-3.231.56h-11.382c-1.87 0-2.548-.195-3.231-.56-.684-.366-1.22-.902-1.586-1.586-.365-.683-.56-1.361-.56-3.231v-11.382c0-1.87.195-2.548.56-3.231.366-.684.902-1.22 1.586-1.586.683-.365 1.361-.56 3.231-.56zm-3.567-.216c-.874.467-1.559 1.152-2.026 2.026-.467.873-.716 1.739-.716 4.128v10.26c0 2.389.249 3.255.716 4.128.467.874 1.152 1.559 2.026 2.026.873.467 1.739.716 4.128.716h10.26c2.389 0 3.255-.249 4.128-.716.874-.467 1.559-1.152 2.026-2.026.467-.873.716-1.739.716-4.128v-10.26c0-2.389-.249-3.255-.716-4.128-.467-.874-1.152-1.559-2.026-2.026-.873-.467-1.739-.716-4.128-.716h-10.26c-2.389 0-3.255.249-4.128.716z\"},\"child\":[]}]})(props);\n};\nexport function SiItunes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.977 23.999c-2.483 0-4.898-.777-6.954-2.262a11.928 11.928 0 01-4.814-7.806A11.954 11.954 0 012.3 4.994 11.85 11.85 0 0110.08.159a11.831 11.831 0 018.896 2.104 11.933 11.933 0 014.815 7.807 11.958 11.958 0 01-2.091 8.937 11.855 11.855 0 01-7.78 4.835 12.17 12.17 0 01-1.943.157zm-6.474-2.926a11.022 11.022 0 008.284 1.96 11.044 11.044 0 007.246-4.504c3.583-5.003 2.445-12.003-2.538-15.603a11.022 11.022 0 00-8.284-1.96A11.046 11.046 0 002.966 5.47C-.618 10.474.521 17.473 5.503 21.073zm10.606-3.552a2.08 2.08 0 001.458-1.468l.062-.216.008-5.786c.006-4.334 0-5.814-.024-5.895a.535.535 0 00-.118-.214.514.514 0 00-.276-.073c-.073 0-.325.035-.56.078-1.041.19-7.176 1.411-7.281 1.45a.786.786 0 00-.399.354l-.065.128s-.031 9.07-.078 9.172a.7.7 0 01-.376.35 9.425 9.425 0 01-.609.137c-1.231.245-1.688.421-2.075.801-.22.216-.382.51-.453.82-.067.294-.045.736.051 1.005.1.281.262.521.473.71.192.148.419.258.674.324.563.144 1.618-.016 2.158-.328a2.36 2.36 0 00.667-.629c.06-.089.15-.268.2-.399.176-.456.181-8.581.204-8.683a.44.44 0 01.32-.344c.147-.04 6.055-1.207 6.222-1.23.146-.02.284.027.36.12a.29.29 0 01.109.096c.048.07.051.213.058 2.785.008 2.96.012 2.892-.149 3.079-.117.136-.263.189-.864.31-.914.188-1.226.276-1.576.447-.437.213-.679.446-.867.835a1.58 1.58 0 00-.182.754c.001.49.169.871.55 1.245.035.034.069.066.104.097.192.148.387.238.633.294.37.082 1.124.025 1.641-.126z\"},\"child\":[]}]})(props);\n};\nexport function SiItvx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.91 11.018a59.87 59.87 0 0 0-.98-.27c-.1 0-.16.05-.2.17-.35 1.2-.9 2.53-1.38 3.36-.16-.3-.45-.83-.73-1.3l-1.04-1.83c-.22-.34-.36-.43-.64-.43-.57 0-1.42.51-1.42 1 0 .16.04.28.21.57.2.32.3.6.3.92 0 .82-.62 1.56-1.8 1.56-.55 0-.99-.16-1.27-.45-.27-.28-.4-.65-.4-1.27v-1.03c.2.08.44.12.73.12h.93c.13 0 .17-.05.17-.16v-1c0-.11-.04-.17-.17-.17H6.56v-1.63c0-.2-.05-.33-.16-.43-.16-.15-.5-.22-.89-.22-.4 0-.72.07-.89.22-.1.1-.16.24-.16.43v4c0 .66-.1 1.02-.34 1.27-.2.22-.53.34-.88.34s-.66-.12-.84-.31c-.2-.2-.29-.48-.29-.9v-2.6c0-.11-.04-.16-.16-.16H.18c-.12 0-.17.05-.17.16v2.35c0 .94.25 1.47.67 1.9.55.54 1.48.79 2.38.79.88 0 1.81-.32 2.36-.82a4 4 0 0 0 2.6.82c1.42 0 2.47-.6 3.08-1.6.27.43.47.74.67 1.02.28.42.54.58 1.12.58.54 0 .87-.13 1.17-.59.78-1.18 1.44-2.59 1.92-3.88.05-.16.1-.28.1-.35 0-.08-.05-.14-.17-.18zm-14.85-.92c.66 0 1.07-.46 1.07-1.05 0-.6-.4-1.06-1.07-1.06-.65-.01-1.06.46-1.06 1.05 0 .59.4 1.05 1.06 1.05zm22.84 5.1-2.28-3.13c-.05-.07-.05-.14 0-.2l2.1-3.07c.07-.09.11-.15.11-.28 0-.12-.07-.25-.19-.37a.51.51 0 0 0-.39-.17.4.4 0 0 0-.24.1l-2.9 2.22c-.06.05-.13.05-.2 0l-2.89-2.22a.4.4 0 0 0-.25-.1.51.51 0 0 0-.38.17c-.12.12-.2.25-.2.37 0 .13.05.2.11.28l2.11 3.07c.05.06.05.13 0 .2l-2.28 3.13a.42.42 0 0 0-.1.26c0 .14.06.26.18.38.11.11.24.18.38.18.1 0 .17-.04.26-.1l3.06-2.23a.17.17 0 0 1 .2 0l3.07 2.23c.09.06.16.1.26.1.14 0 .27-.07.38-.18.12-.12.18-.24.18-.38 0-.1-.04-.17-.1-.26z\"},\"child\":[]}]})(props);\n};\nexport function SiIveco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.084 10.059a.084.084 0 0 0-.084.084v3.574c0 .046.038.084.084.084h.912a.083.083 0 0 0 .082-.084v-3.574a.083.083 0 0 0-.082-.084zm1.775 0c-.062 0-.105.058-.076.11l1.895 3.257.011.02c.195.306.577.495 1.002.494.426-.001.807-.196.997-.508L7.75 10.17c.028-.046-.007-.111-.076-.111H6.658a.086.086 0 0 0-.074.039l-1.857 2.925c-.017.028-.064.023-.079.006L2.936 10.1a.085.085 0 0 0-.077-.04zm7.598 0c-.73-.001-1.324.488-1.324 1.091v1.557c0 .603.594 1.094 1.324 1.094h3.049a.082.082 0 0 0 .082-.084v-.733a.082.082 0 0 0-.082-.084H9.234c-.017 0-.03-.015-.03-.033V10.99c0-.017.013-.033.03-.033h3.272a.08.08 0 0 0 .082-.082v-.732a.082.082 0 0 0-.082-.084zm5.443 0c-.73-.001-1.324.488-1.324 1.091v1.557c0 .603.594 1.094 1.324 1.094h3.05a.084.084 0 0 0 .083-.084v-.733a.084.084 0 0 0-.084-.084h-3.271c-.018 0-.032-.015-.032-.033V10.99c0-.017.014-.033.032-.033h3.271a.082.082 0 0 0 .084-.082v-.732a.084.084 0 0 0-.084-.084zm5.334 0c-.73 0-1.324.49-1.324 1.093v1.555c0 .603.594 1.094 1.324 1.094h2.442c.73 0 1.324-.49 1.324-1.094v-1.555c0-.603-.594-1.093-1.324-1.093zm-.226.898h2.879c.015 0 .027.012.027.027v1.889a.027.027 0 0 1-.027.027h-2.88a.027.027 0 0 1-.027-.027v-1.889c0-.015.013-.027.028-.027zm-10.215.56a.05.05 0 0 0-.049.051v.73c0 .028.022.052.049.052h2.72a.05.05 0 0 0 .05-.051v-.73a.05.05 0 0 0-.05-.051z\"},\"child\":[]}]})(props);\n};\nexport function SiJabber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.597 11.737c0-.35-.065-.732-.268-1.025-.408-.588-1.283-.775-1.892-.405-.308.188-.48.515-.576.851-.191.668-.104 1.43.03 2.1.043.214.088.428.148.639.021.076.031.186.08.25.087.11.297.141.426.12.387-.065.291-.703.278-.974-.03-.634-.218-1.25-.036-1.881.076-.268.225-.568.494-.684.244-.105.49.023.586.261.156.385.117.83.215 1.23.033.137.07.272.131.399.018.037.043.113.094.108.126-.011.304-.22.398-.298.304-.25.616-.52.965-.705.165-.088.435-.23.603-.08a.612.612 0 0 1 .108.13c.198.31.002.55-.127.845-.166.38-.336.758-.577 1.098-.207.293-.49.549-.655.869-.107.205-.167.43-.123.663.036.188.181.301.373.257.143-.033.24-.156.322-.269.146-.202.281-.412.426-.615.28-.393.61-.76.846-1.183a3.41 3.41 0 0 0 .42-1.664c0-.474-.171-1.198-.723-1.298a.974.974 0 0 0-.326.01 1.432 1.432 0 0 0-.374.12 2.715 2.715 0 0 0-.818.637c-.146.16-.276.363-.449.495M9.078.016c-.435.058-.878.052-1.315.12-.838.129-1.64.389-2.425.703-.286.114-.568.241-.845.376-.103.05-.26.09-.343.17-.043.041-.039.139-.044.195-.014.156-.034.313-.05.47-.058.605-.1 1.229-.013 1.834.028.195.09.55.33.587.369.058.656-.397.837-.648.424-.586.905-1.132 1.6-1.394.817-.308 1.753-.381 2.618-.44 2.426-.167 5.078.277 6.865 2.064.254.254.495.524.7.82.8 1.159 1.223 2.477 1.427 3.86.096.65.161 1.308.013 1.955-.257 1.122-.932 2.1-1.706 2.931-.53.57-1.128 1.084-1.749 1.552-.347.261-.736.483-1.062.768-.375.329-.688.74-.925 1.179-.639 1.181-.81 2.602-.622 3.92.038.27.073.542.134.809.018.08.022.217.073.282.097.122.36.189.508.196.154.007.256-.11.294-.249.064-.236.026-.498-.012-.736-.076-.487-.147-.977-.125-1.471a3.71 3.71 0 0 1 1.026-2.425c.643-.673 1.512-1.061 2.243-1.625 1.474-1.136 2.794-2.668 3.301-4.492a5.194 5.194 0 0 0 .159-2.015c-.105-.849-.415-1.697-.708-2.497-.892-2.437-2.422-4.755-4.851-5.87-.964-.443-1.973-.645-3.016-.79-.49-.068-.98-.11-1.472-.132-.274-.012-.572-.042-.845-.006M5.277 15.796c-.473.068-.61.447-.523.876.112.548.543.965.97 1.295a6.03 6.03 0 0 0 3.884 1.238c.538-.023 1.124-.112 1.617-.34.265-.122.542-.563.181-.751a.59.59 0 0 0-.169-.051c-.157-.026-.333.041-.482.084-.263.075-.526.153-.797.196-.808.13-1.683-.055-2.352-.534-.542-.387-.98-.898-1.393-1.415-.253-.316-.482-.663-.936-.598M4.662 18.474c-.12.016-.259.011-.362.087-.215.158.022.476.135.62.328.417.76.763 1.192 1.068a7.832 7.832 0 0 0 4.03 1.442c.421.03.85 0 1.267-.07.152-.026.342-.037.482-.103.399-.186.284-.939-.072-1.106-.155-.073-.404.023-.567.046-.385.054-.771.06-1.158.05-1.015-.025-2.096-.338-2.98-.831a5.589 5.589 0 0 1-.966-.693c-.181-.16-.368-.42-.603-.502-.11-.037-.284-.023-.398-.008M4.903 20.73a.638.638 0 0 0-.413.236c-.078.088-.152.167-.197.278-.246.609.41 1.183.864 1.47.504.32 1.055.558 1.616.758 1.266.45 2.752.739 4.066.336.391-.12.778-.338 1.062-.634.16-.167.27-.419-.024-.526-.174-.063-.385.098-.543.162a4.57 4.57 0 0 1-1.158.312c-.527.064-1.001-.052-1.508-.179-.434-.108-.872-.217-1.291-.373a4.457 4.457 0 0 1-1.026-.513c-.094-.066-.206-.125-.282-.211-.25-.282-.439-.612-.707-.88-.116-.116-.281-.256-.459-.236\"},\"child\":[]}]})(props);\n};\nexport function SiJaeger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.816 22.3774c0 .0724-.1283.1311-.2865.1311-.1581 0-.2864-.0587-.2864-.131 0-.0725.1283-.1311.2864-.1311.1582 0 .2865.0586.2865.131Zm-.738.1554c0 .075-.126.136-.2815.136-.1555 0-.2816-.061-.2816-.136 0-.075.126-.136.2816-.136.1555 0 .2816.061.2816.136Zm-.7427.1408c0 .0697-.1739.1262-.3884.1262-.2145 0-.3884-.0565-.3884-.1262 0-.0697.174-.1263.3884-.1263.2145 0 .3884.0566.3884.1263Zm-1.136.1116c0 .0885-.1587.1602-.3544.1602-.1957 0-.3544-.0717-.3544-.1602 0-.0885.1587-.1602.3544-.1602.1957 0 .3544.0717.3544.1602Zm-1.1943.0389c0 .0965-.2369.1747-.5291.1747-.2923 0-.5292-.0782-.5292-.1747 0-.0966.237-.1748.5292-.1748s.5291.0782.5291.1748Zm1.107-.8787c.6116-.0292.7718-.1214.7912-.3253 0 0 .1214-.1505-.2913-.233-.4126-.0826-.9952-.0826-.8932-.4127.102-.335 1.1554-.3932 1.7865-.3932s1.3447-.0388 1.2525.301c-.0874.3398-.5486.3447-.5097.5728.0388.2282.4175.1602.3495.5195-.068.3592-1.7428.4903-2.9274.5923-1.1797.102-1.9321-.0195-1.7428-.3399.1893-.3204 1.573-.2524 2.1846-.2815Zm-9.9693 1.0755c.0066.045-.128.102-.3004.127-.1724.0251-.3176.0089-.3241-.0362-.0066-.0452.128-.102.3004-.1271.1725-.025.3176-.0088.3241.0363Zm.0918.226c.0077.053-.1474.1195-.3464.1484-.199.029-.3665.0094-.3742-.0437-.0078-.053.1473-.1195.3463-.1485.199-.0289.3666-.0093.3743.0438Zm.1648.204c.0077.053-.1473.1194-.3463.1484-.199.0289-.3666.0093-.3743-.0437-.0077-.0531.1473-.1196.3463-.1485.199-.029.3666-.0094.3743.0437Zm.7387.114c.0086.0638-.1501.138-.3547.166-.2046.0278-.3774-.0013-.3861-.065-.0087-.0638.15-.138.3546-.166.2046-.0278.3775.0013.3862.065Zm1.1803.1309c.0066.0828-.2394.17-.5494.1947s-.5667-.0225-.5733-.1053c-.0066-.0829.2394-.17.5494-.1947s.5667.0224.5733.1053Zm1.1926.0011c.0182.0838-.2006.2026-.4888.2653-.2882.0627-.5366.0456-.5548-.0382-.0182-.0839.2006-.2027.4888-.2654.2882-.0627.5366-.0455.5548.0383Zm1.2463-2.0331c.3544-.0777 1.9856-.0388 2.0292.2476.0534.2913-2.67.5437-3.2866.631-.6165.0875-.6408.2622-.6408.2622 0 .0146-.0534.1554.3495.1505.5632-.0097.9564.1068.7234.3787-.233.2719-2.8109.199-3.34 0-.5292-.199-.3204-.398-.0486-.5.2719-.0971 1.0438-.1894 1.937-.3593.8933-.1699 1.9274-.7282 2.2769-.8107Zm6.7917-9.7337a.6457.6457 0 1 1-1.2914 0 .6457.6457 0 0 1 1.2914 0ZM7.3155 13.44a.6457.6457 0 1 1-1.2914 0 .6457.6457 0 0 1 1.2914 0ZM4.325 20.023c-.3544 0-.602-.1409-.7573-.4176-.0631-.1068-.102-.2379-.1311-.3738-.0631-.335-.0437-.7282.0291-1.0972.0825-.4126.2282-.7961.3835-1.0389.1408-.2233.2719-.369.3884-.466a50.61 50.61 0 0 0 .5195 1.3205c.2378.5874.4563 1.1068.6165 1.4758-.0097.0194-.0243.034-.0388.0534-.233.3107-.5583.5437-1.0098.5437Zm15.0155-2.1944c0 .0146.0049.0388.0195.0728.0534.2913.233 1.0778.3543 1.5292-1.8642.2088-4.5051.3399-7.4325.3399-2.4759 0-4.7479-.0923-6.515-.2476a86.46 86.46 0 0 1-.6748-1.607c-.597-1.4563-1.3302-3.3933-1.5583-4.5779-.2088-1.0923-.4612-2.4176.1165-3.6119A28.5682 28.5682 0 0 1 3.32 9.697c-1.369-.1456-1.5535-.4127-1.6263-.5243-.0777-.1117-.0923-.2427-.0389-.3738.1214-.3059.534-.5826 1.0146-.8108a5.028 5.028 0 0 0 .136.2816c-.437.2088-.7768.432-.8593.6457-.0194.0437-.0097.0631.0049.0874.068.097.4611.398 2.6846.4709a.6316.6316 0 0 1-.5-.505.634.634 0 0 1 .0582-.3931c-.2039.1068-.4078.233-.602.364 0 0-1.6554-2.1748-.4709-2.8933.136-.0826.267-.1214.3981-.1214.9904 0 1.7234 2.1603 1.7234 2.1603s-.1456.0534-.3592.1505c.2621.0243.7816.1457 1.8302.568 1.068.4321 1.4952.4612 1.6118.4612A.625.625 0 0 1 9 9.3426l.034.034a22.885 22.885 0 0 0 .4563-.0389c.0485-.0048.1116-.0194.1942-.0388a.6277.6277 0 0 1 .2864-.5826.6193.6193 0 0 1 .733.0437.434.434 0 0 0 .0874-.034c.2719-.1359 1.2331-1.1602 1.9565-2.034a.616.616 0 0 1 .6117-.2137c.1941-.6553.9709-2.9759 2.1554-2.9759 1.3788 0 .5777 2.7283.4418 2.9225 0 0-.3204-.0242-.7573-.0242-.4855 0-1.1166.029-1.6312.165.0146.0097.034.0243.0534.0389.267.2184.301.6117.0825.8787-.1165.1359-.267.3204-.4417.5194.3592-.1456.733-.3058 1.1068-.466.6263-.2768 1.2089-.539 1.7234-.7914h.0098l.0048-.0097c.4418-.2136.8399-.4175 1.1748-.6068 1.17-.6554 1.3157-.9418 1.3302-1.0146.0097-.0486 0-.0631-.0048-.068-.0097-.0194-.0923-.097-.4612-.097-.403 0-.9661.0922-1.5535.2184a3.849 3.849 0 0 0 .0291-.3253c.5729-.1165 1.1214-.2039 1.5292-.2039.369 0 .5923.068.7088.2136.0534.0631.1068.1748.068.335-.0437.1893-.2428.5194-1.4807 1.2137a8.6623 8.6623 0 0 1-.3738.2039c-.0922.0534-.1942.102-.2961.1553.5582.471.9758 1.1748 1.2379 2.1943.5292 2.039.937 4.4275 1.2185 6.3208-.4612.0583-.7427.2767-.801.6311-.0631.3836.136.5923.3447.8156.2233.2379.4806.505.5631 1.1069Zm-4.84-12.331c0 .0244.0048.0195.0048.0195s.0242-.0437.063-.1165c.0438-.0728.102-.1748.17-.2961.0728-.1214.1553-.2573.2573-.3787.0485-.0583.1068-.1165.165-.1602.0632-.0437.1214-.0728.1845-.0825.0194 0 .034-.0049.0486-.0049.0145.0049.034 0 .0485.0049.0146.0048.034.0048.0486.0097l.0388.0097.0097.0048c0 .0049.0049.0049.0049.0097.0097.0146.0145.0437.0194.0777 0 .068-.0049.1505-.0194.2233-.0097.0729-.0292.1457-.0437.2136-.034.136-.0631.2476-.0826.3302-.0242.0825-.034.131-.034.131s.034-.034.0874-.102c.0534-.063.1214-.165.1942-.2912.034-.0631.0729-.136.102-.2185.0291-.0825.0582-.1747.068-.2815.0048-.0534.0048-.1165-.0195-.1845-.0048-.0194-.0145-.034-.0242-.0534l-.0146-.0243-.0194-.0243c-.0194-.029-.0971-.0776-.102-.0776l-.0097-.0049h-.0048l-.0146-.0048h-.0049l-.0194-.0097-.0437-.0146c-.0242-.0097-.0582-.0146-.0874-.0194-.029-.0049-.063-.0049-.0922-.0049-.0291.0049-.0631.0049-.0922.0097a.6844.6844 0 0 0-.3204.1554c-.0874.0728-.1505.1553-.204.2379-.1019.165-.1601.33-.199.4709-.034.1456-.0534.267-.0582.3495-.0049.0388-.0049.0728-.0049.097Zm-4.2868 3.578c-.0874.0534-.1116.165-.063.2524.0145.0195.0922.1311.2572.1942a.707.707 0 0 0 .2525.0437c.1456 0 .3058-.0388.4709-.1116.3592-.1602 1.2379-1.0487 2.2428-2.2575.0631-.0776.0534-.1942-.0242-.2573-.0437-.034-.0874-.0437-.1166-.0437a.1794.1794 0 0 0-.1407.068c-.4321.5195-1.6555 1.9225-2.0924 2.1458l-.0194.0097c-.0534.0194-.102.0388-.1505.0534l-.2233.0631-.1797-.1456c-.0291-.0292-.0728-.0437-.1165-.0437a.175.175 0 0 0-.097.029ZM9.17 14.304c.0582.335.5874.5243 1.1845.4272.5971-.097 1.039-.4515.9807-.7865-.0583-.335-.5875-.5243-1.1846-.4272-.5971.102-1.034.4564-.9806.7865ZM4.4172 7.9493a2.001 2.001 0 0 0 .0729.0922s-.0049-.0145-.0049-.034c-.0049-.0194-.0049-.0485-.0146-.0873-.0097-.0777-.0388-.1845-.0776-.3107a2.4088 2.4088 0 0 0-.1748-.4175 1.8868 1.8868 0 0 0-.1408-.2233c-.0534-.0729-.1165-.1457-.2039-.2136-.0485-.0292-.097-.0632-.165-.0826-.0146-.0048-.034-.0048-.0535-.0097h-.0728c-.0097 0-.0291.0049-.034.0049l-.029.0097-.0195.0048-.0049.0049-.0097.0048a.3371.3371 0 0 0-.1602.136.4473.4473 0 0 0-.0534.1747c-.0097.1068.0146.1942.034.272.0243.0776.0534.1504.0825.2087a1.493 1.493 0 0 0 .17.2718c.0242.0291.0436.0534.0582.068l.0243.0243s-.0097-.0437-.0243-.1166c-.0146-.0728-.0388-.1796-.0582-.301a2.2904 2.2904 0 0 1-.0243-.1941c-.0049-.068-.0049-.136.0097-.1894.0048-.0242.0146-.0437.0243-.0534.0097-.0048.0145-.0097.029-.0145h.0098l.0146-.0049c.0048 0 0 .0049 0 .0049h.0048a.2045.2045 0 0 1 .0631.034c.0486.0388.102.0922.1505.1504.0534.0632.102.1214.1457.1845.0873.1262.1747.2476.2476.3496a5.199 5.199 0 0 0 .1844.2524Zm.3544 1.0777.034.0049c.131.0146.5534.0922 1.5923.5097.8545.3447 1.5001.5195 1.9128.5195.3107 0 .3932-.0971.4223-.131.0437-.0535.0486-.1069.0437-.136-.0048-.0291-.0145-.0825-.068-.1262-.0436-.034-.0873-.0437-.1164-.0437-.0292 0-.0583.0048-.0826.0194l-.0874.0437h-.1165c-.2476 0-.7622-.0825-1.767-.4903-1.204-.4855-1.6458-.539-1.7769-.539-.0291 0-.0388 0-.0582.005-.0632.0145-.102.0533-.1166.0776-.0145.0194-.0388.0728-.029.136.0145.0873.0922.1504.1795.1504h.034Zm.0437 3.6945c0 1.1262.9127 2.0438 2.039 2.039 1.1263 0 2.039-.9128 2.039-2.039 0-1.1263-.9127-2.039-2.039-2.039s-2.039.9127-2.039 2.039Zm5.5246 3.3643c-.267.102-.5.2475-.7039.3738.0486.2184.199.7088.6311.5825.3544-.1068.1505-.733.0728-.9563Zm.6214.7816c.1166.0437.5778.0825.534-.4758-.0145-.1942-.029-.3301-.0388-.4224-.0437-.0048-.0825-.0048-.1213-.0048-.136 0-.2622-.0049-.369-.0049-.1117 0-.17.0049-.1942.0097a9.3046 9.3046 0 0 0-.1553.0292c.0388.2524.1456.7961.3446.869Zm1.7866-1.3788c.432-.1942.432-.5243.4078-.6942-.0292-.1796-.2962-.5583-1.3788-.568 0 0-.335.7816-1.2428.9273-.9078.1505-1.2962-.0243-1.4515-.2185 0 0-.8739.2573-.9467.8107-.0728.5535.6603.7477 1.0098.5535.3495-.1942.8738-.6166 1.573-.7088.3737-.0486 1.5971.0922 2.0292-.102Zm2.471-4.2333c0-1.1262-.9127-2.039-2.039-2.039s-2.039.9128-2.039 2.039c0 1.1263.9127 2.039 2.039 2.039s2.039-.9175 2.039-2.039ZM3.1162 18.1975c-.0437.267-.0728.6117-.0243.9564-.6602-.1408-1.034-.3058-1.034-.4757 0-.17.3835-.335 1.0583-.4807Zm18.4866.0389c.5729.136.8884.2864.8836.4418 0 .2476-.767.4757-2.0633.6553.233-.063.4952-.233.7962-.5146.1505-.1407.267-.3107.3495-.5a.5922.5922 0 0 0 .034-.0825Zm-.3495-.0728a1.0453 1.0453 0 0 1-.2767.3883c-.3884.369-.6214.4467-.7525.4467-.2573 0-.4466-.3593-.5583-1.0632-.0049-.0486-.0146-.0971-.0194-.1456-.0923-.6991-.4127-1.039-.6457-1.2817-.2039-.2136-.301-.3301-.2621-.5486.0534-.3155.4369-.3835.7476-.3835.1456 0 .2573.0146.2573.0146h.0194c.5728.0097 1.17.5291 1.4515 1.2525.1554.398.2185.903.0389 1.3205ZM4.7085 6.3618c-.1068-.1456-.2136-.267-.3253-.3592-.0097-.3981-.0097-.7574.0098-.8981.0388-.2622.6893-1.0244 1.2962-1.607.5097-.4903 1.4855-1.335 2.301-1.5.1263-.0243.272-.0389.4419-.0389 1.5535 0 4.6993 1.1651 4.8546 1.3205l.0097.0097c.0389-.3787.0777-.9078.0098-1.0583 0 0 .296.0922.3495.2767 0 0 .733-.738.6602-1.6554 0 0 .165 0 .1845.296 0 0 .5292-1.2524.9175-1.1408.3884.1117-.1262 1.8594-.4029 2.1895 0 0 .4418-.1068.4952-.403 0 0 .0534.2574-.0194.403 0 0 .9952-.8107.9563-1.1214 0 0 .1311.3155.0923.5534 0 0 .8253-.6602.8253-.937 0 0 .1262 1.6021-1.471 2.1895 0 0 .4224-.0534.6263-.0922 0 0-.1748.2281-.4418.5534-.1602-.102-.3496-.1505-.5632-.1505-.6408 0-1.2282.4855-1.7476 1.4419.0776-.4175-.0292-.7574-.1845-.7914-.0049-.0048-.0146-.0048-.0243-.0048-.1602 0-.3884.2767-.4806.6894-.0923.4369.0146.8058.1748.8398.0582.0146.131-.0194.2039-.0874-.1505.3593-.267.6942-.3447.9321-3.976 1.7914-6.5053 1.7527-7.656 1.573-.0825-.2137-.233-.5778-.4417-.9419-.0583-.097-.1166-.1941-.1748-.2815 2.7769.7476 6.4761-.6506 7.9568-1.2962-.0777-.2185-.0874-.5-.0194-.806.0631-.296.1942-.5485.3544-.7184-.0291-.1165-.0534-.199-.0728-.2427-.3399-.1845-3.1556-1.2331-4.6265-1.2331-.1457 0-.272.0145-.3787.034-1.301.267-3.277 2.5292-3.3497 2.8497-.0243.1553-.0146.6796.0048 1.2136Z\"},\"child\":[]}]})(props);\n};\nexport function SiJaguar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.241 6.609a6.93 6.93 0 0 0-.293.01s-1.6.072-2.1.798c0 0-.085.098-.037.203 0 0 .01.03-.01.05 0 0-.27.24-.406.455-.048.078-.102.209 0 .3 0 0 .045.035.063.065.039.064.075.159.123.215.07.084.211.228.41.193.073-.013.09-.04.09-.04.1.099.26.096.26.096-.02-.064-.09-.188-.1-.263a.421.421 0 0 1 .015-.162.701.701 0 0 1 .145-.271c.054-.054.192-.115.303-.038.088.063.194.268.106.56 0 .022-.1.23-.205.26 0 0-.01.004-.03.004-.07 0-.2-.073-.2-.073s0 .018.015.094c.012.043.027.09.04.127 0 0-.025.046-.042.072-.025.045-.046.131.01.17 0 0 .23.157.455.171.154.01.212-.095.212-.095.114-.156.2-.29.32-.399.327-.3.786-.38.786-.38.03-.004.533-.144 1.386.539-.244.02-.534.078-.756.117-.632.113-1.037.71-1.155.952-.307.633.32.851.32.851.01-.006.6-.052.886-.683 0 0 .104-.279.383-.188.182.059 1.79.62 2.152.716 0 0 1.077.28 1.482-.215.649.213 1.257.316 2.85.11.277-.036.495-.027.495-.027.372.027.712.278.815.442.42.671.95 2.003 2.796 1.841l.835-.076c.51-.03.924-.05 1.345.172.183.096.285.131.596.428.425.404.816.842 1.336.603.185-.085.393-.415.393-.415a.598.598 0 0 0-.253-.419c.473.113 1.54.185 1.952-.536.107-.168.118-.318.078-.408-.113-.253-.426-.17-.426-.17-.148.03-.317.2-.568.274-.538.16-.968-.026-.968-.026-.829-.359-3.493-1.884-4.848-2.55 0 0-1.555-.78-3.839-1.684 0 0-4.148-1.823-7.212-1.77zm0 .136c3-.051 7.113 1.739 7.154 1.758v.001c.368.146.716.289 1.043.425l-.475-.188a43.23 43.23 0 0 0-1.828-.645c-1.544-.533-2.22-.627-2.267-.633a5.54 5.54 0 0 0-.256-.038l-.278-.032.154.249c-1.09-.771-2.395-.81-2.459-.812-.263 0-.492.075-.67.16l.089-.165-.216-.01a6.333 6.333 0 0 0-.901.018 5.1 5.1 0 0 1 .908-.088zm-.319.198c.095 0 .197.003.307.008l-.036.067c-.077.146-.385.448-.892.336 0 0 0 .226.555.307 0 0 .497.088 1.341.767 0 0-.403-.802-1.088-1.01 0 0-.086-.018-.044-.072 0 0 .404-.38.967-.38 0 0 1.754.038 2.869 1.204 0 0-.05-.203-.225-.49l-.073-.12s.067.008.25.038c0 0 .67.083 2.243.626 0 0 1.179.388 1.824.643.97.387 3.398 1.327 4.947 2.172.276.15 3.077 1.61 3.077 1.61.775.349 1.312.137 1.312.137.175-.066.492-.31.63-.172.071.071.081.167.047.26-.04.14-.24.328-.483.435-.255.114-.787.144-1.094.094 0 0-.596-.06-1.117-.605-.165-.172-.367-.367-.554-.559a1.038 1.038 0 0 0-.62-.333c-.35-.047-1.205-.07-1.526-.177-.215-.072-.474-.217-.819-.728-.166-.244-.283-.311-.509-.455 0 0 .173.138.271.312.142.252.213.435.29.57.077.135.164.254.295.36.164.131.266.156.443.185.17.028.742.023 1.232.016.483-.008.699.148.857.282.147.124.4.477.554.632.184.184.32.372.684.556.127.064.334.222.323.374-.164.164-.367.207-.855.076.035.034.29.303.727.176a.558.558 0 0 1-.396.15c-.458-.026-.906-.59-1.158-.798-.19-.158-.213-.197-.537-.422-.493-.341-1.598-.245-1.598-.245l-.812.042c-1.58.12-2.244-1.28-2.419-1.572a2.422 2.422 0 0 0-.168-.25c-.08-.108-.512-.668-.949-.852 0 0 .43.37.404.614 0 0-.178-.083-.662-.014-2.081.297-2.79-.224-2.79-.224.097-.417-.194-.845-.194-.845.16.05 1.184.396 2.155.2 0 0-1.581.008-2.69-.877 0 0 .69.865.526 1.431 0 0-.113.603-1.316.36-.129-.025-.28-.068-2.08-.568-.424-.127-.57.075-.647.197 0 .178-.213.386-.318.45-.558-.1-.336-.617-.336-.617-.35.502.017.724.133.74-.07.033-.135.058-.19.078 0 0-.457-.271-.202-.715.355-.62.717-.819 1.38-.88.29-.027.531-.048.715-.022.48.066.782.338 1.502.407-1.528-.45-1.532-1.335-1.537-1.352V8.5c-.085.292-.038.538.037.746-.02-.008-.355-.228-.483-.305-.548-.335-.982-.394-.982-.394-.182-.023-.266-.244-.266-.244-.01-.011-.013-.022-.02-.032-.252-.432-.502-.44-.502-.44a.836.836 0 0 1 .136.372c.01.055.014.157.014.187 0 .462-.54.607-.54.607-.372.473-.353.483-.436.495-.083.012-.265-.08-.265-.08-.014-.008-.018-.029-.016-.042 0-.029.028-.047.028-.047.07-.055.127-.11.127-.11.394-.403.441-.6.393-.861-.1-.524-.474-.463-.474-.463-.182.018-.256.168-.256.168a4.576 4.576 0 0 0-.195.392c-.08.176-.164.215-.207.223a.396.396 0 0 1-.065.003c-.127-.005-.223-.121-.223-.121-.01-.006-.01-.013-.016-.018-.116-.124-.032-.287-.032-.287.156-.363.46-.416.5-.421l.182-.026c.385-.065.567-.466.567-.466a2.99 2.99 0 0 0-.386.014c-.256.045-.343.346-.343.345-.216.05-.21-.136-.172-.193.034-.052.16-.275.991-.467 0 0 .314-.095.978-.092zm-.159.12c-.2 0-.305.112-.305.123 0 .006.027.009.07.01l.07.003a.79.79 0 0 0 .32-.083.422.422 0 0 0 .092-.052l-.245-.002zm.164.363v.004c.03.081.108.11.143.12v-.001c.163.05.309.138.437.241-.39-.218-.613-.261-.628-.264a1.609 1.609 0 0 1-.157-.032.987.987 0 0 0 .208-.068zm-1.364.05s-.05.16-.247.194c0 0-.077.018-.108.019l.021-.06c0-.012.051-.138.165-.15 0 0 .066-.004.169-.004zm-.683.233a.213.213 0 0 0 .056.047c-.135.057-.485.432-.485.432.177-.262.408-.458.41-.46 0-.003.01-.006.01-.009 0-.003.01-.007.01-.01zm.737.315c.038-.005.217-.012.3.27a.433.433 0 0 0-.14-.185.339.339 0 0 0-.254-.055.2.2 0 0 1 .094-.03zm-1.282 7.398v.873c0 .255-.056.426-.18.55-.165.162-.437.228-.84.228H0v.256h1.428c.677 0 1.156-.092 1.405-.347.143-.146.212-.329.212-.63v-.93zm2.688 0L3.37 17.33h.412l.348-.406h2.104l.35.406h.796l-1.656-1.907zm4.086 0c-.483 0-.772.056-1.03.2a.831.831 0 0 0-.432.75c0 .385.175.666.557.82.229.093.532.137.917.137h2.055v-.875h-.707v.62H9.336c-.366 0-.58-.053-.737-.173-.15-.115-.229-.289-.229-.525 0-.229.075-.4.215-.513.158-.128.365-.186.745-.186h1.774v-.255zm5.656 0v.924c0 .24-.03.393-.122.52-.154.217-.397.295-.896.295h-.06c-.476 0-.741-.078-.895-.294-.091-.128-.122-.273-.122-.521v-.923h-.71v.95c0 .246.027.44.15.603.202.264.574.416 1.6.416h.011c1.032 0 1.402-.152 1.604-.416.124-.163.15-.357.15-.603v-.95zm2.677 0l-1.654 1.907h.412l.349-.406h2.103l.35.406h.796l-1.656-1.907zm2.986 0v1.908h.71v-.661h.933l1.064.66H24l-1.117-.673c.266-.009.493-.05.667-.143a.52.52 0 0 0 .267-.472c0-.255-.114-.418-.321-.51-.185-.08-.413-.108-.866-.108zm.71.24h1.399c.266 0 .384.026.465.086.077.058.105.146.105.283v.036c0 .123-.03.223-.12.286-.09.062-.214.075-.441.075h-1.408zM5.18 15.7l.84.977H4.342zm12.419 0l.84.977h-1.68z\"},\"child\":[]}]})(props);\n};\nexport function SiJamboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.143 0v7.877h7.783V0zm0 8.155v7.784h7.783V8.155zm-.28.005a7.926 7.923 0 0 0-7.789 7.917A7.926 7.923 0 0 0 12 24a7.926 7.923 0 0 0 7.918-7.78h-8.056Z\"},\"child\":[]}]})(props);\n};\nexport function SiJameson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.35 0a.01.01 0 0 1 .012.007l.014.052a.01.01 0 0 1-.004.01c-.594.406-1.168 1.487-.837 2.726l1.259 4.71 1.82 6.808c.373 1.398.892 2.173 1.611 2.28a.01.01 0 0 1 .008.006l.02.055a.01.01 0 0 1-.003.01c-.373.365-.678 1.27-1.064 2.102-.044.094-.084.19-.126.285-.444 1.036-1.388 3.244-4.223 4.331-3.415 1.308-6.886.483-8.35-1.94-.958-1.58-.729-3.739.827-4.614 1.35-.757 2.806-.26 3.354.86.532 1.085.165 2.242-.274 2.623-.09.08-.002.232.204.37.91.629 1.945.595 2.945.065 1.28-.677 1.735-1.84 1.071-4.323L9.278 3.94C8.947 2.7 7.91 2.05 7.194 1.998a.01.01 0 0 1-.008-.007l-.014-.052a.01.01 0 0 1 .007-.012zm1.142.288c.01-.003.017.008.01.015-.386.438-.643 1.101-.35 2.196L18.2 13.894c.534 1.997 1.44 2.106 1.869 2.233.014.004.019.021.009.032-.223.226-.78 1.574-1.043 2.227-.412 1.027-1.157 2.176-1.895 2.764-.009.006-.02-.004-.014-.013.673-1.065 1.271-2.549 1.68-3.579.195-.494.383-.937.552-1.151a.634.634 0 0 1 .056-.064c.012-.012.005-.032-.011-.033a1.228 1.228 0 0 1-.128-.016c-.35-.073-.71-.352-.97-.715-.265-.37-.491-.882-.666-1.535L14.631 2.8c-.327-1.222.144-2.287.861-2.511ZM8.715 16.25c.608.206 1.14.649 1.504 1.401a3.31 3.31 0 0 1 .165 2.502.02.02 0 0 1-.015.013.849.849 0 0 1-.533-.08.059.059 0 0 1-.029-.071c.272-.76.287-1.731-.153-2.638a2.818 2.818 0 0 0-.947-1.11c-.01-.006-.003-.02.008-.017z\"},\"child\":[]}]})(props);\n};\nexport function SiJamstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.365 0 0 5.364 0 12s5.365 12 12 12 12-5.364 12-12V0zm.496 3.318h8.17v8.17h-8.17zm-9.168 9.178h8.16v8.149c-4.382-.257-7.904-3.767-8.16-8.149zm9.168.016h8.152a8.684 8.684 0 01-8.152 8.148z\"},\"child\":[]}]})(props);\n};\nexport function SiJapanairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.1381.0342a11.9956 11.9956 0 0 0-8.789 4.8388 9.3446 9.3446 0 0 0 1.3511 7.8206.014.014 0 1 1-.0219.0172A8.229 8.229 0 0 1 1.598 6.0554c0-.0152-.0116-.019-.0188-.0078A11.8789 11.8789 0 0 0 .3624 9.0653a8.7616 8.7616 0 0 0 2.421 5.3574.015.015 0 0 1-.0188.0234A7.1718 7.1718 0 0 1 .125 10.4023c0-.0152-.0195-.0152-.0203 0a12.1316 12.1316 0 0 0-.0578 2.6552 7.2198 7.2198 0 0 0 2.193 3.1536c.0159.0144.0003.0353-.0157.0265a6.5064 6.5064 0 0 1-1.954-1.7806c-.0072-.0112-.0204-.0074-.0172.0062a11.9956 11.9956 0 0 0 23.4805 0c0-.0136-.0092-.0174-.0172-.0062a6.5008 6.5008 0 0 1-1.9555 1.7806c-.0176.0088-.0316-.0121-.0156-.0265a7.223 7.223 0 0 0 2.196-3.1536h.0125a12.1284 12.1284 0 0 0-.0593-2.6552c0-.0152-.0171-.0152-.0203 0a7.1742 7.1742 0 0 1-2.6397 4.0438.015.015 0 0 1-.0187-.0234 8.7576 8.7576 0 0 0 2.4194-5.3574 11.8789 11.8789 0 0 0-1.2167-3.0177c-.008-.0112-.022-.0074-.0188.0078a8.2322 8.2322 0 0 1-2.079 6.6554.0145.0145 0 1 1-.0233-.0172 9.3422 9.3422 0 0 0 1.3526-7.8206A11.9956 11.9956 0 0 0 11.138.0342zm.0438.3108a7.7212 7.7212 0 0 1 6.2383 13.1733l-.0016.0016c-2.4535 2.3871-6.1174.8622-5.7448-2.0695.2863-2.26 3.0575-4.5112 5.156-5.7323a.016.016 0 0 0 0-.0266c-.2751-.2623-.8466-.8526-1.2136-1.2964a2.4127 2.4127 0 0 0-3.8549.0672l-6.0321.5591a.0188.0188 0 0 0 0 .0375l6.4663.3749c1.1468.0647 1.5207 1.1057.4155 1.943-4.1073 3.1133-4.8401 6.4075-3.9189 9.0186a.0171.0171 0 0 1-.0312.014 5.3045 5.3045 0 0 1-.8138-1.8758A7.7212 7.7212 0 0 1 11.1818.345ZM9.12 17.3357h1.6353l-.8746 2.2804a2.1952 2.1952 0 0 1-2.3382 1.262 5.3005 5.3005 0 0 1-1.1387-.1124l.2796-.7279c.7485.0872 1.3905.0216 1.6416-.6326zm3.8658 0h1.4635l.328 3.43h-1.6369l-.025-.678H11.638l-.5435.678h-1.351l2.7395-3.1754a.7005.7005 0 0 1 .503-.2546zm3.5456 0h1.6353l-1.0387 2.7037h2.079l-.2796.7263h-3.7112zm-3.4707.998-.8793 1.0965h.92z\"},\"child\":[]}]})(props);\n};\nexport function SiJasmine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.591 19.649h.771v-3.786h-.77zm-6.874-5.03l-.238-.733 3.6-1.17.238.735-3.6 1.17m4.645-5.762L7.138 5.796l.624-.453 2.224 3.062-.624.454m5.315.028l-.624-.454 2.225-3.062.624.453-2.225 3.063m4.592 5.78l-3.6-1.17.238-.734 3.6 1.17-.238.733M12 .001C5.383.001 0 5.384 0 11.998 0 18.617 5.383 24 12 24s12-5.382 12-12c0-6.617-5.383-12-12-12zm0 2.43c5.284 0 9.569 4.283 9.569 9.567 0 5.287-4.285 9.573-9.569 9.573-5.286 0-9.57-4.286-9.57-9.573 0-5.284 4.285-9.567 9.57-9.567m1.552 7.96l.575 1.768.747.242 4.736-1.538-.86-2.645-4.736 1.539-.462.635m.337 2.5l-1.504 1.093v.785l2.927 4.03 2.25-1.636-2.927-4.029-.746-.243m-2.275 1.093l-1.504-1.093-.747.243-2.927 4.029 2.25 1.635 2.928-4.029v-.785M9.873 12.16l.574-1.767-.462-.635-4.736-1.54-.86 2.646 4.737 1.54.747-.244m1.198-2.22h1.859l.462-.636v-4.98H10.61v4.98l.461.636\"},\"child\":[]}]})(props);\n};\nexport function SiJavascript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z\"},\"child\":[]}]})(props);\n};\nexport function SiJbl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 5.2645l2.0221 4.5892 2.0217-4.5892zm2.0221 7.601c.6982 0 1.2656-.5655 1.2656-1.2606 0-.6985-.5674-1.2618-1.2656-1.2618-.7003 0-1.2661.5633-1.2661 1.2618 0 .6951.5658 1.2607 1.2661 1.2607zm-1.0937 3.361c0 .9572.862 2.509 3.3142 2.509 2.4529 0 3.3154-1.1872 3.3154-2.509V5.2645H5.3693l.0011 11.3428c0 .6196-.5037 1.1392-1.1261 1.1392-.6231 0-1.1279-.5045-1.1279-1.124l-.0016-2.3108H.9284zm8.2885 2.3119V5.2645h4.3745c.8441 0 2.187.693 2.187 2.1628v2.2611c0 .6612-.5798 1.8328-1.4412 1.8328.8614 0 1.4412.7422 1.4412 1.3045v3.9788c0 .6767-.5463 1.7339-2.187 1.7339zm3.3802-7.559c.7955 0 .9944-.134.9944-2.2147 0-2.0801-.199-2.246-.9944-2.246h-1.1948v4.4575zm.9944 3.8108c0-2.0812 0-2.6906-.8636-2.6906h-1.3256v5.3482l1.3255.0027c.8636 0 .8636-.5807.8636-2.6603zm3.779 3.7482H24v-4.2267h-2.1886l.0016 2.3107c0 .6196-.5047 1.1241-1.1273 1.1241-.622 0-1.1273-.5045-1.1273-1.124V5.2644h-2.188Z\"},\"child\":[]}]})(props);\n};\nexport function SiJcb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.05 9.8643c.9723.0736 1.7257.3671 2.3545.6843v-1.31s-1.2577-.3162-2.4408-.368c-4.1256-.1849-5.295 1.4344-5.295 3.1292 0 1.6947 1.1694 3.3145 5.295 3.1296 1.1831-.0536 2.4408-.3694 2.4408-.3694v-1.3086c-.6193.3081-1.3826.6107-2.3545.683-1.6793.1272-2.6898-.6907-2.6898-2.1342 0-1.4448 1.0105-2.2613 2.6898-2.1354m7.685 4.1223c-.0513.0105-.1581.02-.215.02h-1.8005V12.376H20.52c.0568 0 .1636.01.2149.02a.8056.8056 0 01.6325.7951c0 .4162-.2872.721-.6325.796zm-2.0155-4.0374h1.6325c.059 0 .1454.0077.1772.0137.3376.0572.6256.3307.6256.7392 0 .409-.288.6815-.626.7392a1.571 1.571 0 01-.1773.0137h-1.6311V9.9506zm3.4994 1.9856v-.0364c.9133-.1331 1.4149-.726 1.4149-1.4199 0-.8828-.7343-1.3916-1.7293-1.4416-.0772-.0032-.203-.011-.3044-.011h-5.3323v5.9467h5.7548c1.13 0 1.9774-.6043 1.9774-1.5466 0-.8701-.7724-1.4222-1.781-1.4917zm-17.8644.6788c0 .8787-.5906 1.5311-1.6656 1.5311-.917 0-1.8174-.2726-2.6889-.6938V14.76s1.4021.383 3.191.383c2.9714 0 3.8374-1.125 3.8374-2.529V9.0266H4.3541v3.5876Z\"},\"child\":[]}]})(props);\n};\nexport function SiJeep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.1651 7.1687v5.2011c0 .6762-.444 1.0777-1.1628 1.0777-.7185 0-1.0992-.5283-1.0992-1.0992v-.9299H0v.9514c0 .972.296 2.7068 3.0235 2.7068 2.7272 0 3.1082-1.8614 3.1082-2.7488V7.1687Zm4.9177 2.1562c-1.7973 0-2.6003 1.6485-2.6003 3.0657 0 1.4168.9094 2.7912 2.7695 2.7912 1.6285.021 2.707-1.0361 2.707-1.8187h-1.7977s-.2113.5078-.8458.5078c-.6343 0-.9934-.3596-.9934-1.2265h3.6576c0-2.7277-1.3526-3.3195-2.897-3.3195zm5.8471 0c-1.7968 0-2.6007 1.6485-2.6007 3.0657 0 1.4168.9094 2.7912 2.7705 2.7912 1.628.021 2.7067-1.0361 2.7067-1.8187h-1.7978s-.2116.5078-.8454.5078c-.6348 0-.9942-.3596-.9942-1.2265h3.6574c0-2.7277-1.3523-3.3195-2.8965-3.3195zm6.7435.0635c-.9132 0-1.3186.4962-1.3401.522-.1283.1538-.2875.3165-.2875-.0782v-.2959h-1.8193v7.295h1.8398V14.822c0-.148.1478-.126.2543 0 .1063.1277.5711.4443 1.3752.4443C23.155 15.2663 24 13.9978 24 12.264c0-2.2415-1.4162-2.8757-2.3266-2.8756Zm-12.401 1.1203c.6766 0 .972.5073.972 1.0365H8.3843c0-.5718.2327-1.0365.8882-1.0365zm5.8468 0c.6767 0 .9724.5073.9724 1.0365H14.231c0-.5718.2332-1.0365.8883-1.0365zm5.9204.296c.9318 0 1.1.7189 1.1 1.4593 0 .74-.1272 1.7124-1.0141 1.7124-.8884 0-1.1212-.5709-1.1017-1.6486.022-1.0788.4441-1.523 1.0158-1.523zm2.2813 4.5664a.5855.5855 0 0 0-.5856.5857c0 .3233.2617.5856.5856.5856.3218 0 .585-.2623.585-.5856 0-.3233-.2632-.5857-.585-.5857zm0 .062a.524.524 0 0 1 .5236.5237c0 .2884-.2346.5246-.5236.5246a.5258.5258 0 0 1-.525-.5246c0-.289.2352-.5236.525-.5236zm-.2108.2024v.6208h.0725v-.2689h.1764l.1159.269h.0806l-.1216-.2873c.0386-.0133.0514-.0227.072-.0447.0266-.0287.0434-.0739.0434-.115 0-.1034-.0796-.174-.195-.174zm.0705.0676h.1722c.072 0 .1177.041.1177.1045 0 .072-.0485.1168-.1278.1168h-.1621z\"},\"child\":[]}]})(props);\n};\nexport function SiJekyll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.073 24c-.348 0-.689-.063-1.02-.189-1.375-.525-2.104-2.02-1.726-3.402l-.015-.006.09-.226L12.399 2.01c.105-.27.057-.91.006-1.267-.016-.085-.016-.161.008-.24l.008-.023.006-.015V.458l.009-.019c.108-.292.45-.439 1.008-.439.673 0 1.602.21 2.551.573.797.307 1.523.689 2.033 1.075.602.45.842.854.707 1.2l-.031.045-.016.015c-.045.061-.09.12-.15.165-.314.271-.764.735-.84.945l-7.063 18.421-.016-.006c-.494.948-1.457 1.557-2.543 1.561H8.07l.003.006zm-2.187-3.718l-.02.05c-.447 1.201.162 2.557 1.364 3.018.271.105.551.154.837.154.971 0 1.83-.585 2.188-1.5l.027-.061 6.959-18.09c.146-.39.84-1.02.979-1.14l.016-.016c.012-.015.02-.015.02-.03 0-.06-.061-.27-.557-.645-.479-.36-1.154-.72-1.904-1.005-.868-.328-1.768-.539-2.368-.539-.39 0-.524.082-.545.126v.04c.016.104.147 1.035-.034 1.515l-6.962 18.12v.003zm8.95-11.507s-.964 1.109-1.843 1.509c-.88.398-1.529.293-2.32.756-.789.461-1.188 1.103-1.188 1.103L6.27 20.505c-.348.944.168 2.05 1.125 2.42.96.369 2.04-.12 2.412-1.056l5.029-13.094zM9.905 18.76c.104-.041.225 0 .266.105.042.104 0 .222-.105.264-.104.043-.225 0-.266-.104-.042-.097 0-.216.105-.265zm-1.014-1.802c-.152.068-.334 0-.397-.155-.07-.152 0-.334.154-.397.154-.07.335 0 .398.153.074.15.008.314-.155.39v.009zm.286-1.096c-.123-.288 0-.623.287-.758.285-.124.615 0 .75.285.121.289 0 .624-.285.757-.3.126-.629 0-.765-.285l.013.001zm2.426-2.258c.153-.074.335 0 .398.15.07.154 0 .336-.153.399-.155.07-.337 0-.399-.155-.074-.152 0-.334.154-.397v.003zm-1.293-1.379c.105-.042.226 0 .266.105.043.104 0 .226-.104.266-.104.042-.226 0-.265-.104-.044-.106.006-.227.103-.267zM13.681 1.14c.1-.261.993-.162 1.995.226.999.384 1.729.909 1.63 1.17-.104.264-.997.164-1.996-.221-1.005-.385-1.734-.91-1.632-1.176h.003z\"},\"child\":[]}]})(props);\n};\nexport function SiJellyfin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .002C8.826.002-1.398 18.537.16 21.666c1.56 3.129 22.14 3.094 23.682 0C25.384 18.573 15.177 0 12 0zm7.76 18.949c-1.008 2.028-14.493 2.05-15.514 0C3.224 16.9 9.92 4.755 12.003 4.755c2.081 0 8.77 12.166 7.759 14.196zM12 9.198c-1.054 0-4.446 6.15-3.93 7.189.518 1.04 7.348 1.027 7.86 0 .511-1.027-2.874-7.19-3.93-7.19z\"},\"child\":[]}]})(props);\n};\nexport function SiJenkins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.872 24h-.975a3.866 3.866 0 01-.07-.197c-.215-.666-.594-1.49-.692-2.154-.146-.984.78-1.039 1.374-1.465.915-.66 1.635-1.025 2.627-1.62.295-.179 1.182-.624 1.281-.829.201-.408-.345-.982-.49-1.3-.225-.507-.345-.937-.376-1.435-.824-.13-1.455-.627-1.844-1.185-.63-.925-1.066-2.635-.525-3.936.045-.103.254-.305.285-.463.06-.308-.105-.72-.12-1.048-.06-1.692.284-3.15 1.425-3.66.463-1.84 2.113-2.453 3.673-3.367.58-.342 1.224-.562 1.89-.807 2.372-.877 6.027-.712 7.994.783.836.633 2.176 1.97 2.656 2.939 1.262 2.555 1.17 6.825.287 9.934-.12.421-.29 1.032-.533 1.533-.168.35-.689 1.05-.625 1.36.064.314 1.19 1.17 1.432 1.395.434.422 1.26.975 1.324 1.5.07.557-.248 1.336-.41 1.875-.217.721-.436 1.441-.654 2.131H2.87zm11.104-3.54c-.545-.3-1.361-.622-2.065-.757-.87-.164-.78 1.188-.75 1.994.03.643.36 1.316.51 1.744.076.197.09.41.256.449.3.068 1.29-.326 1.575-.479.6-.328 1.064-.844 1.574-1.189.016-.17.016-.34.03-.508a2.648 2.648 0 00-1.095-.277c.314-.15.75-.15 1.035-.332l.016-.193c-.496-.03-.69-.254-1.021-.436zm7.454 2.935a17.78 17.78 0 00.465-1.752c.06-.287.215-.918.178-1.176-.059-.459-.684-.799-1.004-1.086-.584-.525-.95-.975-1.56-1.469-.249.375-.78.615-.983.914 1.447-.689 1.71 2.625 1.141 3.69.09.329.391.45.514.735l-.086.166h1.29c.013 0 .03 0 .044.014zm-6.634-.012c-.05-.074-.1-.135-.15-.209l-.301.195h.45zm2.77 0c.008-.209.018-.404.03-.598-.53.029-.825-.48-1.196-.527-.324-.045-.6.361-1.02.195-.095.105-.183.227-.284.316.154.18.295.375.424.584h.815c.014-.164.135-.285.3-.285.165 0 .284.121.284.27h.66zm2.116 0c-.314-.479-.947-.898-1.68-.555l-.03.541h1.71zm-8.51 0l-.104-.344c-.225-.72-.36-1.26-.405-1.68-.914-.436-1.875-.87-2.654-1.426-.15-.105-1.109-1.35-1.23-1.305-1.739.676-3.359 1.86-4.814 2.984.256.557.48 1.141.69 1.74h8.505zm8.265-2.113c-.029-.512-.164-1.56-.48-1.74-.66-.39-1.846.78-2.34.943.045.15.135.271.15.48.285-.074.645-.029.898.092-.299.03-.629.03-.824.164-.074.195.016.48-.029.764.69.197 1.5.303 2.385.332.164-.227.225-.645.211-1.082zm-4.08-.36c-.044.375.046.51.12.943 1.26.391 1.034-1.74-.135-.959zM8.76 19.5c-.45.457 1.27 1.082 1.814 1.115 0-.29.165-.564.135-.77-.65-.118-1.502-.042-1.945-.347zm5.565.215c0 .043-.061.03-.068.064.58.451 1.014.545 1.802.51.354-.262.67-.563 1.043-.807-.855.074-1.931.607-2.774.23zm3.42-17.726c-1.606-.906-4.35-1.591-6.076-.731-1.38.692-3.27 1.84-3.899 3.292.6 1.402-.166 2.686-.226 4.109-.018.757.36 1.42.391 2.242-.2.338-.825.38-1.26.356-.146-.729-.4-1.549-1.155-1.63-1.064-.116-1.845.764-1.89 1.683-.06 1.08.833 2.864 2.085 2.745.488-.046.608-.54 1.139-.54.285.57-.445.75-.523 1.154-.016.105.06.511.104.705.233.944.744 2.16 1.245 2.88.635.9 1.884 1.051 3.229 1.141.24-.525 1.125-.48 1.706-.346-.691-.27-1.336-.945-1.875-1.529-.615-.676-1.23-1.41-1.261-2.28 1.155 1.604 2.1 3 4.2 3.704 1.59.525 3.45-.254 4.664-1.109.51-.359.811-.93 1.17-1.439 1.35-1.936 1.98-4.71 1.846-7.394-.06-1.111-.06-2.221-.436-2.955-.389-.781-1.695-1.471-2.475-.781-.15-.764.63-1.23 1.545-.96-.66-.854-1.336-1.858-2.266-2.384zM13.58 14.896c.615 1.544 2.724 1.363 4.505 1.323-.084.194-.256.435-.465.515-.57.232-2.145.408-2.937-.012-.506-.27-.824-.873-1.102-1.227-.137-.172-.795-.608-.012-.609zm.164-.87c.893.464 2.52.517 3.731.48.066.267.066.593.068.913-1.55.08-3.386-.304-3.794-1.395h-.005zm6.675-.586c-.473.9-1.145 1.897-2.539 1.928-.023-.284-.045-.735 0-.904 1.064-.103 1.727-.646 2.543-1.017zm-.649-.667c-1.02.66-2.154 1.375-3.824 1.21-.351-.31-.485-1-.14-1.458.181.313.06.885.57.97.944.165 2.038-.579 2.73-.84.42-.713-.046-.976-.42-1.433-.782-.93-1.83-2.1-1.802-3.51.314-.224.346.346.391.45.404.96 1.424 2.175 2.174 3 .18.21.48.39.51.524.092.39-.254.854-.209 1.11zm-13.439-.675c-.314-.184-.393-.99-.768-1.01-.535-.03-.438 1.05-.436 1.68-.37-.33-.435-1.365-.164-1.89-.308-.15-.445.164-.618.284.22-1.59 2.34-.734 1.99.96zM4.713 5.995c-.685.756-.54 2.174-.459 3.188 1.244-.785 2.898.06 2.883 1.394.595-.016.223-.744.115-1.215-.353-1.528.592-3.187.041-4.59-1.064.084-1.939.52-2.578 1.215zm9.12 1.113c.307.562.404 1.148.84 1.57.195.19.574.424.387.95-.045.121-.365.391-.551.45-.674.195-2.254.03-1.721-.81.563.015 1.314.36 1.732-.045-.314-.524-.885-1.53-.674-2.13zm6.198-.013h.068c.33.668.6 1.375 1.004 1.965-.27.628-2.053 1.19-2.023.057.39-.17 1.05-.035 1.395-.25-.193-.556-.48-1.006-.434-1.771zm-6.927-1.617c-1.422-.33-2.131.592-2.56 1.553-.384-.094-.231-.615-.135-.883.255-.701 1.28-1.633 2.119-1.506.359.057.848.386.576.834zM9.642 1.593c-1.56.44-3.56 1.574-4.2 2.974.495-.07.84-.321 1.33-.351.186-.016.428.074.641.015.424-.104.78-1.065 1.102-1.41.31-.345.685-.496.94-.81.167-.09.409-.074.42-.33-.073-.075-.15-.135-.232-.105v.017z\"},\"child\":[]}]})(props);\n};\nexport function SiJest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.251 11.82a3.117 3.117 0 0 0-2.328-3.01L22.911 0H8.104L11.1 8.838a3.116 3.116 0 0 0-2.244 2.988c0 1.043.52 1.967 1.313 2.536a8.279 8.279 0 0 1-1.084 1.244 8.14 8.14 0 0 1-2.55 1.647c-.834-.563-1.195-1.556-.869-2.446a3.11 3.11 0 0 0-.91-6.08 3.117 3.117 0 0 0-3.113 3.113c0 .848.347 1.626.903 2.182-.048.097-.097.195-.146.299-.465.959-.993 2.043-1.195 3.259-.403 2.432.257 4.384 1.849 5.489A5.093 5.093 0 0 0 5.999 24c1.827 0 3.682-.917 5.475-1.807 1.279-.632 2.599-1.292 3.898-1.612.48-.118.98-.187 1.508-.264 1.07-.153 2.175-.312 3.168-.89a4.482 4.482 0 0 0 2.182-3.091c.174-.994 0-1.994-.444-2.87.298-.48.465-1.042.465-1.647zm-1.355 0c0 .965-.785 1.75-1.75 1.75a1.753 1.753 0 0 1-1.085-3.126l.007-.007c.056-.042.118-.084.18-.125 0 0 .008 0 .008-.007.028-.014.055-.035.083-.05.007 0 .014-.006.021-.006.028-.014.063-.028.097-.042.035-.014.07-.027.098-.041.007 0 .013-.007.02-.007.028-.007.056-.021.084-.028.007 0 .02-.007.028-.007.034-.007.062-.014.097-.02h.007l.104-.022c.007 0 .02 0 .028-.007.028 0 .055-.007.083-.007h.035c.035 0 .07-.007.111-.007h.09c.028 0 .05 0 .077.007h.014c.055.007.111.014.167.028a1.766 1.766 0 0 1 1.396 1.723zM10.043 1.39h10.93l-2.509 7.4c-.104.02-.208.055-.312.09l-2.64-5.385-2.648 5.35c-.104-.034-.216-.055-.327-.076l-2.494-7.38zm4.968 9.825a3.083 3.083 0 0 0-.938-1.668l1.438-2.904 1.452 2.967c-.43.43-.743.98-.868 1.605H15.01zm-3.481-1.098c.034-.007.062-.014.097-.02h.02c.029-.008.056-.008.084-.015h.028c.028 0 .049-.007.076-.007h.271c.028 0 .049.007.07.007.014 0 .02 0 .035.007.027.007.048.007.076.014.007 0 .014 0 .028.007l.097.02h.007c.028.008.056.015.083.029.007 0 .014.007.028.007.021.007.049.014.07.027.007 0 .014.007.02.007.028.014.056.021.084.035h.007a.374.374 0 0 1 .09.049h.007c.028.014.056.034.084.048.007 0 .007.007.013.007.028.014.05.035.077.049l.007.007c.083.062.16.132.236.201l.007.007a1.747 1.747 0 0 1 .48 1.209 1.752 1.752 0 0 1-3.502 0 1.742 1.742 0 0 1 1.32-1.695zm-6.838-.049c.966 0 1.751.786 1.751 1.751s-.785 1.751-1.75 1.751-1.752-.785-1.752-1.75.786-1.752 1.751-1.752zm16.163 6.025a3.07 3.07 0 0 1-1.508 2.133c-.758.438-1.689.577-2.669.716a17.29 17.29 0 0 0-1.64.291c-1.445.355-2.834 1.05-4.182 1.717-1.724.854-3.35 1.66-4.857 1.66a3.645 3.645 0 0 1-2.154-.688c-1.529-1.056-1.453-3.036-1.272-4.12.167-1.015.632-1.966 1.077-2.877.028-.055.049-.104.077-.16.152.056.312.098.479.126-.264 1.473.486 2.994 1.946 3.745l.264.139.284-.104c1.216-.431 2.342-1.133 3.336-2.071a9.334 9.334 0 0 0 1.445-1.716c.16.027.32.034.48.034a3.117 3.117 0 0 0 3.008-2.327h1.167a3.109 3.109 0 0 0 3.01 2.327c.576 0 1.11-.16 1.57-.43.18.52.236 1.063.139 1.605z\"},\"child\":[]}]})(props);\n};\nexport function SiJet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.778 19.044c3.048-.498 4.755-.73 8.219-2.395L24 13.81c-3.228 3.225-9.249 5.146-15.07 5.098-.75-.01-1.948.017-2.246-.024 3.1.49 6.18.556 9.094.159M3.836 15.764c.75.003 1.805-.014 2.403-.394.535-.467.93-1.106 1.247-1.828l1.545-4.697-2.157.013-1.199 3.664c-.225 1.161-.943 1.566-1.483 1.483l-1.354-.097-.515 1.676 1.513.18m13.29-.104l1.672-5.074h2.44l.543-1.665-5.907-.01-.556 1.662H16.6l-1.73 5.077 2.257.01m-3.859-.024l.564-1.718h-3.204l.297-.909h2.668l.543-1.641h-2.661l.262-.81h3.08l.57-1.713-5.267.027-2.205 6.757 5.353.007m1.245-9.809c1.883-.072 3.743.083 5.969.277-2.192-.809-5.7-1.407-8.344-1.407-4.344 0-8.644 1.054-12.117 2.675L0 11.07c3.321-3.387 9.114-5.298 14.513-5.243\"},\"child\":[]}]})(props);\n};\nexport function SiJetblue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.779 9.795h.926v4.986a1.265 1.265 0 0 1-1.344 1.256H0v-.869h.265c.316 0 .52-.147.52-.491V9.795M.779 7.96h.926v.926H.779V7.96Zm2.444 3.748a.98.98 0 0 1 .971-1.081.98.98 0 0 1 .97 1.081H3.223m2.867.762v-.762l.001-.074a1.877 1.877 0 0 0-1.868-1.868h-.029c-.887 0-1.897.565-1.897 2.365 0 1.885 1.095 2.337 2.043 2.337a2.117 2.117 0 0 0 1.665-.723l-.671-.564a1.452 1.452 0 0 1-1.005.446c-.024.002-.048.002-.072.002a1.037 1.037 0 0 1-1.029-1.131l2.862-.028Zm.734-4.047h.925v1.372h.672v.705h-.672v2.681c0 .254.102.344.328.344h.344v.869h-.48a1.06 1.06 0 0 1-1.129-1.128v-2.738H6.35v-.733h.462l.012-1.372Zm4.673 3.127a.981.981 0 0 1 1.081.971.981.981 0 0 1-1.081.97H9.99V11.55h1.507m-2.483 2.867h2.755a1.77 1.77 0 0 0 1.761-1.761l-.001-.073a1.449 1.449 0 0 0-1.05-1.49c.588-.201.977-.768.954-1.389 0-1.016-.655-1.732-1.913-1.732H9.019v6.456m2.393-5.587a.935.935 0 0 1 1.034.925.936.936 0 0 1-1.034.926H9.996V8.841h1.416Zm2.647-.881h.926v5.272c0 .209.119.316.344.316h.316v.869h-.406c-.672 0-1.18-.288-1.18-1.129V7.96Zm1.976 1.835h.925v2.737a.918.918 0 0 0 .912.986.918.918 0 0 0 .911-.986V9.795h.926v4.599h-.926v-.491a1.466 1.466 0 0 1-1.19.565 1.554 1.554 0 0 1-1.542-1.547l.001-.05-.017-3.076Zm5.096 1.913a.97.97 0 0 1 .971-1.072c.565 0 .943.372.971 1.072h-1.942m2.868.762v-.762l.001-.074a1.877 1.877 0 0 0-1.868-1.868h-.03c-.886 0-1.896.565-1.896 2.365 0 1.885 1.095 2.337 2.037 2.337a2.12 2.12 0 0 0 1.66-.745l-.672-.565a1.448 1.448 0 0 1-1.071.448 1.037 1.037 0 0 1-1.029-1.131l2.868-.005Z\"},\"child\":[]}]})(props);\n};\nexport function SiJetbrains (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.529 8.753h-.705v.941h.706c.376 0 .565-.188.565-.471-.001-.329-.236-.47-.566-.47zm-3.2.282c0-.235-.188-.329-.471-.329h-.705v.706h.659c.329-.047.517-.141.517-.377zm6.212 1.13h.847l-.423-1.083zm-6.588 0h-.847v.706h.847c.329 0 .518-.141.518-.376s-.189-.33-.518-.33zM0 0v24h24V0H0zm8.424 3.012h3.435v.941h-1.176v2.965H9.6V3.953H8.424v-.941zm-.236 0v.894h-2.07v.612H8v.847H6.118v.612h2.118v.941H5.082l-.047-3.906h3.153zm-2.635 7.623c0 .659-.565 1.082-1.459 1.082H2.071V7.812h2.023c.471 0 .847.141 1.082.329.142.141.236.377.236.659 0 .471-.235.706-.612.894.471.141.753.424.753.941zM2.682 5.647c.188.235.376.376.612.376.282 0 .424-.188.424-.565V2.965H4.8v2.494c0 .471-.141.847-.376 1.082s-.612.377-1.083.377c-.706.047-1.082-.236-1.364-.612l.705-.659zm8.377 15.341H2.071v-1.506h8.988v1.506zm.894-9.223l-.282-.706h-1.506l-.282.706h-1.13l.02-.047h-.679l-.8-1.176h-.47v1.176H5.741V7.812h1.835c.612 0 .988.141 1.271.424.235.235.329.518.329.894 0 .612-.329.988-.8 1.224l.605.878 1.465-3.419h1.035l1.647 3.953h-1.175zm2.4-.047h-1.082V7.812h1.082v3.906zm3.953 0h-.941L15.718 9.6v2.165h-1.082V7.812h.988l1.6 2.071V7.812h1.082v3.906zm1.929.047a2.488 2.488 0 0 1-1.835-.612l.612-.706c.376.329.8.471 1.271.471.282 0 .471-.094.471-.282s-.141-.235-.659-.376c-.847-.188-1.459-.424-1.459-1.224 0-.706.565-1.271 1.506-1.271.659 0 1.176.188 1.6.518l-.565.753c-.377-.236-.753-.377-1.083-.377-.282 0-.376.094-.376.235 0 .188.141.235.659.376.894.188 1.459.471 1.459 1.224-.001.8-.612 1.271-1.601 1.271z\"},\"child\":[]}]})(props);\n};\nexport function SiJetpackcompose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.135.003a2.577 2.577 0 0 0-1.42.344L2.55 5.06a2.577 2.577 0 0 0-.953.967l3.957 2.17a1.765 1.765 0 0 1 .603-.588l4.951-2.86a1.761 1.761 0 0 1 1.76 0l4.951 2.86a1.753 1.753 0 0 1 .526.46l3.921-2.265a2.577 2.577 0 0 0-.816-.744L13.291.347a2.577 2.577 0 0 0-1.152-.34Zm-.145 4.912a1.36 1.36 0 0 0-.68.182L6.36 7.953a1.345 1.345 0 0 0-.454.435l1.92 1.055a1.05 1.05 0 0 1 .31-.275l3.34-1.928a1.054 1.054 0 0 1 1.051 0l3.336 1.928a1.066 1.066 0 0 1 .238.199l.018-.01-.002-.002 1.877-1.08a1.353 1.353 0 0 0-.373-.322l-4.95-2.86a1.357 1.357 0 0 0-.68-.178Zm10.432 1.149-3.92 2.26a1.757 1.757 0 0 1 .2.812v5.715c0 .627-.332 1.21-.88 1.528l-4.95 2.86a1.761 1.761 0 0 1-.64.214v4.524a2.577 2.577 0 0 0 1.059-.313l8.162-4.713a2.577 2.577 0 0 0 1.289-2.23V7.297a2.577 2.577 0 0 0-.318-1.228Zm-20.937.238a2.577 2.577 0 0 0-.227.99v9.43c0 .918.491 1.767 1.293 2.229l8.162 4.713a2.57 2.57 0 0 0 1.225.336v-4.531a1.761 1.761 0 0 1-.833-.235L6.156 16.38a1.765 1.765 0 0 1-.877-1.528V9.136a1.776 1.776 0 0 1 .131-.676Zm16.67 2.223-1.89 1.092a1.058 1.058 0 0 1 .124.46v3.856c0 .378-.2.72-.526.907l-3.336 1.93a1.04 1.04 0 0 1-.295.107v2.17c.152-.027.304-.078.44-.157l4.949-2.859a1.36 1.36 0 0 0 .68-1.18V9.136a1.36 1.36 0 0 0-.147-.607Zm-12.387.13a1.36 1.36 0 0 0-.088.481v5.715a1.36 1.36 0 0 0 .68 1.18l4.95 2.86c.194.112.412.166.627.177v-2.174a1.054 1.054 0 0 1-.46-.123L8.14 14.843a1.054 1.054 0 0 1-.532-.908v-3.853a.99.99 0 0 1 .077-.38l-.034-.013z\"},\"child\":[]}]})(props);\n};\nexport function SiJfrog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.655 15.631l-1.268.353c.11.32.2.893.2 1.665v3.795h1.421v-4.015c.265-.32.552-.474.86-.474.156 0 .277.033.409.11l.386-1.312a1.05 1.05 0 00-.53-.122 1.22 1.22 0 00-.463.09c-.265.131-.596.43-.805.715 0-.32-.077-.573-.21-.805zM5.76 13.757h-.154v7.676h1.477v-3.398h1.864v-1.268H7.082v-1.764H9.41l.088-.673c-1.4-.1-2.668-.32-3.738-.573zm-3.452 8.7l.684.796c.662-.265 1.49-.86 1.71-1.81.077-.308.1-.506.1-1.51v-6.165H3.308v6.33c0 .828-.032 1.136-.142 1.423-.144.32-.486.695-.86.938zm13.422-3.892c0 1.346-.264 1.92-.871 1.92a.782.782 0 01-.717-.464c-.11-.286-.176-.773-.176-1.434 0-.563.055-.96.143-1.268.11-.353.386-.574.728-.574.254 0 .474.11.606.298.199.265.287.76.287 1.522zm.87 2.206c.465-.551.674-1.225.674-2.195 0-.916-.187-1.544-.617-2.073-.464-.574-1.06-.85-1.831-.85-1.456 0-2.426 1.18-2.426 2.967 0 1.787.96 2.934 2.426 2.934.827.01 1.367-.297 1.775-.783zm4.038-3.177c0 .52-.31.805-.86.805-.497 0-.828-.23-.828-.805 0-.529.31-.838.838-.838.53 0 .85.31.85.838zm2.503-1.213l-.585-.937c-.33.31-.727.485-1.113.485-.177 0-.276-.022-.662-.12a3.282 3.282 0 00-.97-.145c-1.38 0-2.272.75-2.272 1.92 0 .837.375 1.367 1.158 1.576-.32.077-.662.243-.816.43a.79.79 0 00-.166.52c0 .176.044.33.11.463a.68.68 0 00.31.275c.253.1.66.166 1.29.177.33 0 .529.01.595.01.386.023.584.09.739.166.143.089.253.287.253.508 0 .22-.132.44-.341.573-.188.132-.497.188-.894.188-.65 0-1.014-.243-1.014-.695 0-.2.022-.243.066-.364h-1.301c-.055.11-.122.265-.122.573 0 .386.144.717.442 1.004.485.474 1.279.606 2.04.606.838 0 1.654-.198 2.128-.727.298-.331.43-.695.43-1.17 0-.507-.143-.893-.463-1.212-.375-.364-.805-.497-1.632-.508l-.761-.01c-.143 0-.232-.056-.232-.133 0-.154.199-.288.563-.464.11.01.143.01.21.01 1.146 0 1.984-.705 1.984-1.686 0-.375-.11-.662-.32-.927.177.022.232.033.364.033.375 0 .673-.12.982-.419zM5.384 7.085c-1.764.43-2.966 1.279-2.966 2.25 0 .606.463 1.157 1.224 1.587a2.155 2.155 0 01-.353-1.157c.01-1.004.794-1.941 2.095-2.68zM24 10.889c0-.64-.397-1.224-1.059-1.709.055.2.1.397.1.596 0 1.82-2.548 3.385-6.165 4.036.408.044.827.066 1.268.066 3.23-.01 5.856-1.345 5.856-2.989zm-2.084-.992c0-.673-.574-1.29-1.555-1.798.23.276.353.574.353.883 0 1.62-3.44 2.933-7.698 2.933-4.246 0-7.698-1.312-7.698-2.933 0-.21.055-.408.165-.596-.683.452-1.07.97-1.07 1.522 0 1.753 3.916 3.176 8.747 3.176 4.83 0 8.756-1.445 8.756-3.187zM18.1 9.81c-1.786 1.147-7.279 1.588-9.639.11-1.853-1.158-1.213-3-6.518-7.036-.694-.53.133-1.092.651-.728.518.364.044.453 1.092 1.5 2.117 2.118 2.095.21 2.426.938.706 1.51 2.25 3.032 2.25 3.032 1.555 1.015 2.79 1.235 5.084-.32 1.456-.981.86 1.566 4.423-.275 1.3-.673 1.246-.22 2.569-2.063.55-.76 1.6.585.408.772-.474.078-1.28.596-1.621 1.412-.496 1.224-.287 2.128-1.125 2.658zM8.196 6.7c-.44-.199-.904-.95-1.08-1.246.496-.486.297-1.29.01-1.732-.275-.44-.617-.32-.98-.727-.376-.41.142-1.467.617-.651 1.775 3.055 2.944 1.786 4.39 1.599 1.39-.177 2.624.584 3-1.566.065-.353.407-.43.44.143.033.585.254 1.996 1.015 2.173.76.187 1.378-.177 1.555-.375.176-.2.275-.177.353.33.077.497.275 1.192 1.345.42 2.195-1.566 1.566-2.173 2.426-2.58.485-.232 1.257.518.144 1.08-1.588.805-1.754 1.797-2.757 2.426-1.688 1.059-1.17.044-3.882-.342-1.048-.143-1.38 1.015-2.195.684-1.864-.772-3.177-.618-4.4.364zm5.879-5.657c.066.463.143.452.309.485.165.044.375-.22.375-.463.01-.254-.11-.408-.353-.397-.254.01-.342.132-.331.375zm8.16.827c.2.187.728.066.85-.078.32-.352.33-.562.165-.805-.165-.231-.507-.198-.85.056-.341.253-.275.727-.164.827zm-.143 2.338c-.165.22-.176.386-.055.507.132.132.397.242.585.1.187-.155.187-.376.033-.563-.166-.2-.386-.2-.563-.044zM5.352 1.45c.253.077.374.32.584.044.11-.133.12-.32-.023-.52-.088-.12-.507-.21-.683-.032-.177.177-.01.464.121.508zM.178 1.295c.463.287.76.717 1.114.33.121-.131.264-.363.01-.826C1.117.457.511.325.301.457c-.22.12-.485.618-.121.838zM4.447 3.49c.143.154.397.143.551.055.144-.088.121-.32-.022-.518-.088-.122-.353-.188-.53 0-.176.187-.098.352 0 .463z\"},\"child\":[]}]})(props);\n};\nexport function SiJfrogpipelines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.844 0 .021 1.2C7.226 1.636 4.1 4.387 3.231 8.176c-1.041 4.517 1.518 9.036 5.783 10.55.042.015.639.18.96.272v.01l.203.047c1.848.43 1.777.347 2.132-1.27.304-.117.568-.095.882-.15a7.35 7.35 0 0 0 .764-.178c1.081 1.476.687 1.635 2.696.378 2.453-1.534 1.331-1.205.86-2.593l.98-1.336c1.309.313 1.657.537 1.974-.889.608-2.742.89-2.653-1.054-3.083-.109-.31-.233-1.25-.31-1.635.378-.337 1.272-.589 1.197-1.271-.013-.115-1.523-2.754-1.91-2.887-.538-.188-1.091.449-1.523.6-.244-.206-1.176-.798-1.305-1.058.15-.645.544-1.42-.34-1.735-.685-.25-1.501-.443-2.477-.577l.003.004.527.497-.82.904c.67.045 1.185.165 1.848.356-.404 1.974-.029 1.192 1.322 2.258.252.198.85.794 1.098.854.456.108.894-.363 1.219-.532l.71 1.185c-1.368.866-1.019.648-.663 2.224.371 1.645-.506 1.713 1.457 2.198l-.332 1.35c-1.964-.425-1.197-.007-2.256 1.328-.933 1.172-1.275 1.008-.355 2.333l-1.16.68c-.782-1.409-.777-.959-2.22-.652-1.626.335-1.732-.44-2.194 1.458l-.285-.07-1.137-.344C5.879 16.168 3.7 12.38 4.573 8.588a7.523 7.523 0 0 1 5.955-5.702c.123-.022.245-.04.366-.057l.021 1.176 1.92-2.118zm1.385 6.854a3.642 3.642 0 0 0-1.142.168c-4.232 1.296-2.575 7.69 1.83 6.567 4.049-1.031 2.777-6.665-.688-6.735zm-.108 1.389c2.233.046 2.91 3.542.239 4.095-1.201.248-2.176-.667-2.352-1.657-.228-1.284.665-2.222 1.647-2.4.162-.03.317-.041.466-.038zM1.534 22.392V24h20.932v-1.608z\"},\"child\":[]}]})(props);\n};\nexport function SiJhipster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.709 7.171c-2.455-.029-6.332 1.749-8.684 2.962-3.434-1.75-10.178-4.729-10.942-1.54-1.03 4.297-2.187 7.563.985 8.167 2.207.42 7.122-2.43 9.912-4.205 2.78 1.771 7.746 4.66 9.96 4.231 3.168-.616 2-3.896.961-8.208-.24-1-1.067-1.394-2.192-1.407z\"},\"child\":[]}]})(props);\n};\nexport function SiJinja (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.718.668l-.08.04s-4.563 2.174-8.244 2.651c-1.854.24-4.554.481-6.964.62a65.472 65.472 0 0 1-3.254.117c-.917.005-1.63-.032-1.95-.11a20.19 20.19 0 0 1-2.4-.732l-.252-.1.346 1.172-.92.81.248.436.44.033 1.052.131.162.514.635.057.318 1.078.092.006s1.338.115 1.762.115c.365 0 .93-.04 1.072-.05l.024.396.287.054v.315l-.8.71.157.028c-.14.01-.227.018-.5.03-.43.017-.934.02-1.203-.018-.586-.086-.71-.086-.71-.086H2.98l-.122.13-.046.446h.152l.055 1.111 2.933-.113-.205 3.682-.02.347-2.242-.127-.02-.761h.538l.057-.42.464-.106.223-.312-2.111-.51-1.705.506.465.388h.166l.025.334.494.028v.763l-.611.157.19.404.105.068v.825h.343v3.296l-.566.086.098 1.247.334.056-.055 2.342 1.803.033-.32-2.303 1.982-.048-.14 1.087-.25 1.032 2.609.033.027-2.28 1.322-.12-.072 1.294-.063.99h1.633l-.053-2.3.176.027.067-1.392h-.243l-.058-.34-.131-1.29.049-1.364h.295v-1.182l-.364.027.04-.806.43-.043.023-.352.172-.025.51-.389-1.827-.375-1.71.379.286.469.239-.02.054-.004.034.442.41-.02.004.674-1.526-.035.053-.877.059-.926v-1.213l.048-1.152 3.485-.178 4.155-.24.033.674-.152 1.949-.063 1.693-1.32-.023-.006-1.018.574-.021.028-.373.27-.041-.012-.057.152-.01.29-.388-2.01-.471-1.986.426.258.45.14-.01v.089h.246v.402l.524.008-.006.856h-.527l-.014.505.187.022-.021.978.393.02-.044 3.615-.523.108.016.423h.176v.985h.289l-.07 1.205-.112 1.314 2.17.057-.07-1.172-.138-.848-.022-.593 1.325-.024-.04 1.002-.009 1.33 1.033.082 1.252-.05.533-.157-.25-.76-.053-1-.08-.583 1.233-.045-.057.742-.006 1.515.738.069.631-.016.416-.13-.187-1.424-.049-.862.25-.027.006-.895.08-.017-.027-.43h-.303l-.049-.527-.023-2.692.222-.006v-.902l.096.014v-.461l-.334-.027.006-.836.57-.051-.033-.362.26-.021-.024-.117.58-.29-2.056-.413-1.88.38.231.432.223-.02.014.077h.203l.011.426.547-.006.035.773-1.67-.012-.212-1.457-.178-.826-.145-1.469.075-.746 3.847-.293.012-1.316.201-.05-.023-.38-.239-.138h-.037l-.357.05-.793.116a62.157 62.157 0 0 1-1.625.216l-.19.02-.015-.178-.785-.41.006-.275.271-.008.02-.672c.09-.006.352-.024.771-.062.484-.045 1.04-.105 1.361-.18.597-.14 1.452-.28 1.452-.28l.076-.013.408-1.108.805-.234.066-.184 1.78-.492.306-.252-.717-1.564.047-.236.344-.18.297-.906-.252-.223zM14.825 6.73l-.01.526.407.017-.016.32-.789.518-.086.258-1.86.09.01-.184.112-.18.01-.154.001-.228.067-.156.031-.16v-.092l.08-.323zm-5.18.461l-.043.264.199.234-.014.387.176.27-.047.328.025.035-1.847.074.02-.152-.653-.354-.022-.345.29-.014.029-.598zm4.014 8.5l1.258.082-.05 1.938.183 1.54-1.34-.046-.05-3.514zm-10.225.084l2.16.112L5.4 17.17v1.219l.137.523-2.09.098zm15.376.01v3.256l-1.29.094-.052-1.723-.158-1.592zm-11.494.076l1.538.006.017 2.996-1.43.026-.076-.928-.006-1.047z\"},\"child\":[]}]})(props);\n};\nexport function SiJira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.571 11.513H0a5.218 5.218 0 0 0 5.232 5.215h2.13v2.057A5.215 5.215 0 0 0 12.575 24V12.518a1.005 1.005 0 0 0-1.005-1.005zm5.723-5.756H5.736a5.215 5.215 0 0 0 5.215 5.214h2.129v2.058a5.218 5.218 0 0 0 5.215 5.214V6.758a1.001 1.001 0 0 0-1.001-1.001zM23.013 0H11.455a5.215 5.215 0 0 0 5.215 5.215h2.129v2.057A5.215 5.215 0 0 0 24 12.483V1.005A1.001 1.001 0 0 0 23.013 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiJirasoftware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.004 0c-2.35 2.395-2.365 6.185.133 8.585l3.412 3.413-3.197 3.198a6.501 6.501 0 0 1 1.412 7.04l9.566-9.566a.95.95 0 0 0 0-1.344L12.004 0zm-1.748 1.74L.67 11.327a.95.95 0 0 0 0 1.344C4.45 16.44 8.22 20.244 12 24c2.295-2.298 2.395-6.096-.08-8.533l-3.47-3.469 3.2-3.2c-1.918-1.955-2.363-4.725-1.394-7.057z\"},\"child\":[]}]})(props);\n};\nexport function SiJitpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.191 0c-2.03.393-3.466 1.199-4.325 2.318l2.883 1.664a2.81 2.81 0 0 1 1.882-.194c.181-1.091.048-2.358-.44-3.788Zm-4.94 3.06L5.83 10.715l4.734 2.736 1.113-1.925c-.505-.498-.716-1.256-.742-2.045-.032-.966.202-2.039.638-3.01.324-.72.759-1.387 1.308-1.892L10.252 3.06h-.001Zm10.498.15c-1.494.289-2.665.803-3.522 1.499a2.82 2.82 0 0 1 .777 1.731l2.874 1.658c.543-1.305.533-2.948-.129-4.888Zm-18.361.409L.459 6.961l5.186 2.173L8.737 3.78l-6.349-.161Zm12.539 1.016c-.332.005-.64.115-.943.297-.608.364-1.163 1.085-1.543 1.929-.38.844-.584 1.805-.558 2.588.026.782.271 1.325.652 1.546h.001c.382.219.974.16 1.664-.208.69-.369 1.421-1.026 1.962-1.776.541-.751.887-1.594.899-2.303.013-.708-.238-1.283-1.042-1.747-.402-.233-.759-.331-1.091-.326h-.001Zm2.991 2.853c-.163.728-.524 1.438-.985 2.079-.623.863-1.433 1.602-2.285 2.057-.699.373-1.464.57-2.15.378l-1.111 1.923 4.735 2.734 4.419-7.656-2.623-1.515Zm2.756 3.185-3.09 5.356 4.476 3.406 1.929-3.343-3.315-5.419Zm-14.066 1.59c-1.143.5-2.02 1.177-2.634 2l4.449 2.57c.408-.945.561-2.039.432-3.272l-2.247-1.298Zm-3.055 2.855-3.542 6.13v1.899l4.365-7.554-.823-.475Zm8.613.354c-1.143.501-2.02 1.177-2.634 2.001l4.449 2.569c.409-.945.562-2.04.432-3.273l-2.247-1.296v-.001Zm-6.869.653L.722 24h1.099l4.301-7.398-.825-.476v-.001Zm1.751 1.011L3.094 24H4.19l3.68-6.389-.822-.475Zm2.077 1.2L5.911 24h1.093l2.944-5.189-.823-.475Zm1.751 1.012L8.28 24h1.086l2.333-4.179-.823-.473Zm1.751 1.01L10.647 24h1.084l1.72-3.167-.824-.475Z\"},\"child\":[]}]})(props);\n};\nexport function SiJitsi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.6711 8.6222a2.31 2.31 0 0 0-.8952-.9978c-.4642-.2943-1.044-.3567-1.4482-.3567q-.2042 0-.4075.0211h-.01a3 3 0 0 1 .0335-.1862c.0202-.1028.0432-.2194.0562-.3408.0538-.5208-.1315-1.2216-.4728-1.7847-.0542-.0897-.0523-.1205-.0523-.1205a.4.4 0 0 1 .0595-.0696l.0312-.0326c.8069-.864 1.0507-1.814.7238-2.8291C16.6697 0 16.5036 0 16.3821 0a.192.192 0 0 0-.144.0629.224.224 0 0 0-.0484.1771c.0628.6384-.0812 1.5523-.1772 1.9003-.1176.4378-.528 1.0906-1.824 1.7112a3 3 0 0 1-.2784.1023c-.4228.1416-1.1294.3782-1.522.9187-.2962.347-.3678.6945-.496 1.322-.1141.5577-.2063 1.2369-.0258 2.0475a6 6 0 0 0 .0514.2074c.011.0428.0206.0797.0278.1118l.0154-.0033-.016.0043c.012.048.0045.0596-.0128.0716a1.3 1.3 0 0 1-.192.059c-.192.0307-.384.0648-.5674.1008-.5837.1003-2.3482.4046-3.1608 1.6982-.5016.7978-.5726 1.8398-.2122 3.1008.374 1.248 1.116 2.1058 1.6239 2.2805l.0081.0028q.0547.0246.1056.0418c0 .035-.0033.0778-.0076.1258a2 2 0 0 0-.0101.069c-.0557.4071-.2477.8459-.4435.8574-.1032-.0202-.5122-.252-.8016-.4421a31 31 0 0 1-.264-.1738c-.8079-.5347-1.2533-.8289-1.934-.9048a.7.7 0 0 0-.07-.0038c-.72 0-2.016 1.2125-2.0434 3.6288-.014 1.2106.1128 2.317.3778 3.289.189.697.3907 1.094.4492 1.2L5.0234 24l.1066-.48c.5616-2.544 1.2547-3.157 2.4081-3.8904.8453.792 1.9556 1.2096 3.2199 1.2096 1.0656 0 2.1806-.3096 3.1387-.8722.9413-.552 1.668-1.296 2.112-2.1556.0739.048.1632.1104.2222.1516.2112.1478.2559.179.3312.179h.0068c.0825-.0033.8611-.2644 1.6584-1.2384.4632-.5658.8453-1.2657 1.1352-2.0812.359-1.008.576-2.1984.65-3.5372.0815-1.124-.0327-2.0193-.3395-2.6606zm-2.9866-6.4708c.067.27.0756.551.0255.8246-.0749.5318-.3005 1.008-.6855 1.4424a8.21 8.21 0 0 0 .66-2.267m-.5568 3.301c.1173.1773.2068.3715.2655.576.065.268.0534.549-.0336.8106-.1378.3279-.3226.4935-.5496.4935h-.0303a.6.6 0 0 1-.2256-.0826c-.2918-.1709-.4497-.624-.336-.9561a.5.5 0 0 0 .0135-.0303c.0187-.048.072-.1401.2198-.2827.2112-.1867.5199-.4224.6754-.528zm-3.3792-.0903.003-.0053V5.352c.0623-.1536.492-.4022.777-.5669a6 6 0 0 1 .1067-.0619 4.1 4.1 0 0 1 .384-.1771c.469-.1997 1.2-.5107 1.8018-1.09-.1746.6124-.5952 1.644-1.2864 2.2684-.1536.1387-.4636.2616-.8232.4037-.3873.1526-.8529.336-1.3046.613.035-.3534.144-.9697.3394-1.3791zm-.3 1.9958c.2324-.192.6576-.4521 2.051-.912a6 6 0 0 1 .0313.1541c.0086.0418.0177.0893.0283.1411.0912.4503.192.9561 1.1294 1.237-.0873.192-.2668.5165-.3292.5783l-.0207.0178-.0144.0236c-.1824.2928-1.1683.9316-1.6099.9316a.33.33 0 0 1-.0566-.0042c-.266-.0514-.8765-.5938-1.056-.9946-.3471-.7868-.276-1.0704-.1556-1.1707zM8.9767 14.579c-.5107-.7598-.8976-2.0875-.6442-3.155v-.0048c.1224-.5808.528-.9226.6956-1.0426l.024-.0178c.2486-.2169.7574-.4458 1.4332-.646.096-.025.1488-.036.1512-.036.1243-.026.2602-.0572.3922-.0874a6.8 6.8 0 0 1 .7584-.1482 2.2 2.2 0 0 0 .189-.0308 1.45 1.45 0 0 1 .2526-.0326.324.324 0 0 1 .192.0508c.2506.2976.864.8852 1.2662.9198h.0255c.4579-.0246 1.1755-.4714 2.1336-1.3292.1627-.144.3139-.2698.4622-.3796l.0183-.014a3.52 3.52 0 0 1 .8553-.4776c-.1003.3284-.18.8894.144 1.68.1685.409.492 1.3306.7603 2.233.4618 1.5542.3975 1.8278.3884 1.8532a.53.53 0 0 1-.062.1498.37.37 0 0 1-.1032-.0364c-.2328-.1076-.494-.2996-.7992-.5252-.5664-.4152-1.2705-.9316-2.3011-1.3344-.757-.2952-1.5096-.4454-2.2358-.4454a4.67 4.67 0 0 0-.8967.0854c-1.6233.3202-2.4792 1.0358-2.9385 1.4208l-.0034.0029a.188.188 0 0 0-.059.2088.185.185 0 0 0 .1766.1215c.0418 0 .0826-.0116.2174-.0504a9.04 9.04 0 0 1 1.488-.3101q.271-.0316.5439-.0322c.7858 0 1.5086.24 2.2738.7599.1752.1464.2822.2433.347.3072l-.0662.0172-.4642.131c-1.1491.325-2.8863.816-3.7085.816a1.4 1.4 0 0 1-.1886-.011c-.2132-.0312-.4733-.254-.7148-.61zm-3.3893 5.8296a4.09 4.09 0 0 0-.7013 1.415c-.1545-.7406-.336-1.9588-.2328-2.9072.215-1.9652 1.1885-2.6232 1.333-2.6578h.0091c.0082 0 .0178 0 .037.0206.0777.0844.2457.4411.1233 1.9162-.0288.3038.0442.561.218.7646.1177.1346.2658.2392.432.3052a4.96 4.96 0 0 0-1.2202 1.144zM7.242 18.48a.43.43 0 0 1-.1608.0374.129.129 0 0 1-.1056-.0403c-.0312-.0327-.1018-.144-.0792-.4728.0158-.1618.0384-.3231.0595-.48a7 7 0 0 0 .0845-.8933c.5673.3715 1.1961.7651 1.6032.9466-.266.2356-.8194.6595-1.4016.9033zm7.404-.0528a5.35 5.35 0 0 1-3.47 1.632 6.3 6.3 0 0 1-.4627.0173c-1.7361 0-2.6184-.7368-3.024-1.1472 1.9618-.8463 2.3597-2.0563 2.5335-2.5849a2 2 0 0 1 .048-.1344c.0749-.0374.313-.144 1.0473-.419.576-.2074 1.2668-.4396 1.8759-.645.5073-.171.9456-.3193 1.1851-.4072l.0197-.0062a1 1 0 0 1 .096-.023l.0134.0173c.2232.2909.5914.468.5947.4704.2768.1236.5728.1983.875.2208-.0071 1.0488-.4862 2.1365-1.329 3.0087zm1.5216-3.5908c-.7263 0-.9811-.2338-1.2187-.5166-1.1794-1.4059-2.4831-1.6363-2.9895-1.6704a7.3 7.3 0 0 0-.4733-.0158c-.1277 0-.2525.0034-.3744.011a5.7 5.7 0 0 1 1.824-.3034c1.3008 0 2.5532.4608 3.721 1.369.4762.3701.8266.6326 1.1294.8434a28 28 0 0 1-.5976.168l-.096.0264a5.76 5.76 0 0 1-.9235.0883zm.4526 2.6586c-.0763-.0672-.192-.1742-.3115-.2832a4.7 4.7 0 0 0 .2477-.864c.0566-.3115.0921-.72.1085-.9364a8.6 8.6 0 0 0 1.0224-.2175c.4046-.1161.717-.2481.9398-.3984-.6946 1.7343-1.7006 2.496-2.007 2.6985zm2.4034-3.9662c-.1032-.8548-.4493-1.9118-.5847-2.3227-.0144-.048-.0264-.0825-.0345-.108-.0101-.0327-.0413-.1195-.1056-.2971-.1666-.4652-.5141-1.4318-.576-1.718-.0888-.4204.1118-.9988.24-1.0492a.35.35 0 0 1 .1238-.0226c.2362 0 .528.2232.7589.5832.2794.432.445 1.0046.4666 1.6076.048 1.3156-.074 2.4148-.288 3.3268\"},\"child\":[]}]})(props);\n};\nexport function SiJohndeere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9985 1.1609c-3.457.0002-6.9828.7454-10.2957 2.3475C.5331 6.3093 0 9.1929 0 12.0069c0 2.806.5258 5.6572 1.6956 8.4841 3.3292 1.61 6.8415 2.3481 10.3041 2.3481 3.4644 0 6.9774-.738 10.3029-2.348C23.4723 17.6637 24 14.8127 24 12.0068c0-2.814-.5345-5.6976-1.7034-8.4985-3.3123-1.602-6.8372-2.3473-10.2969-2.3475h-.0006zm0 .916c3.4185 0 6.6966.7568 9.5728 2.1054.9712 2.4297 1.5026 5.0671 1.5026 7.8246 0 2.7508-.5279 5.3856-1.496 7.8096-2.8779 1.3506-6.1578 2.1073-9.5794 2.1073-3.4197 0-6.6996-.7567-9.5775-2.1073-.967-2.424-1.4967-5.0586-1.4967-7.8096 0-2.7574.5304-5.3947 1.502-7.8246 2.8783-1.3487 6.155-2.1055 9.5722-2.1055zm-.0006.687c-3.1279 0-6.2393.6677-9.0219 1.9239-.8997 2.3398-1.3586 4.7996-1.3586 7.319 0 2.5135.4581 4.968 1.3532 7.3066 2.783 1.258 5.8979 1.9227 9.0273 1.9227 3.131 0 6.2453-.6647 9.0279-1.9227l.0041-.003-.0006-.0006c-.6049-.9957-1.4173-1.7997-1.4261-1.8073-.01-.005-.1691-.0544-.1691-.0544-1.7246-.53-2.8551-.9283-3.3548-1.1872-.6876-.3571-1.41-1.2241-1.4895-1.3216-.8061-.0608-1.4729-.0478-2.1145.0299l-.4087.0531c-.7793.1006-1.584.2073-2.3726.0807-.525-.086-1.0346-.2537-1.5749-.4296-.8324-.2726-1.685-.5524-2.6594-.5509H5.421l.0167.0347c.2214.4306 1.0958 1.7369 2.191 2.096.2416.058.4165.1223.4923.1816 0 .0026.4192.8556.5335 1.0862-.6814-.3094-2.789-1.3813-4.4894-3.4504v-.003c0-.0276-.044-.43-.0532-.518 1.0126-.3778 3.2927-.597 3.5496-.6214l.0186-.0018.0083-.0203c.1361-1.1996.4201-2.1597.9524-3.2109.0153-.0317.0245-.0608.0245-.086a.1175.1175 0 0 0-.0132-.052c-.0298-.0566-.1026-.0675-.1057-.0675L6.9946 9.219a222.297 222.297 0 0 0-.1678-.5126c1.1184-.416 2.4974-.8055 3.2867-.9769.1334-.213.1708-.3286.1708-.4678 0-.1181-.0569-.219-.1708-.2963-.5595-.3794-2.3215-.1508-4.104.533-.004-.0073-.0037-.0092-.009-.0168.3701-.2769 1.0317-.688 1.5223-.916l.0191-.0107-.006-.0185c-.133-.4509-1.0038-.796-1.1017-.8311.002-.0153.0039-.0252.0054-.037.8852-.0605 1.4727.3536 1.652.6488l.009.0143.0173-.0053c.1136-.0367.5135-.1639.9464-.2151l.0257-.0012-.0072-.0263c-.1422-.7583-.8658-1.2647-1.1125-1.4172.007-.0123.0093-.017.0162-.0257.8546.0661 1.6439.8023 1.8217 1.4244l.0047.0167.018.0018c.2294.008.5074.0332.6936.0645l.0192.0036.0071-.0161a1.3133 1.3133 0 0 0 .1034-.5174c0-.5602-.3164-1.1606-.7056-1.5403.0076-.0107.011-.0207.0209-.0299 1.1227.426 1.4082 1.2351 1.4082 1.9884 0 .5273-.1398 1.0297-.23 1.3497l-.0376.1326 1.7649-.2133c-.1682.213-.5309.5922-1.2547.9918 0-.0038-.7462-.095-.7462-.095l-.0192-.003-.0065.0192c-.0501.154-.487 1.5335-.4894 2.5476 0 .376.1068.6676.3167.8687.374.3599.9933.3801 1.4262.3633 1.8404-.0673 3.2765.0457 4.2731.3406l.0592.0161.009-.0137c.0619-.0953.1105-.272.1105-.5061 0-.4443-.1781-1.1067-.7762-1.8558.0065-.0053.0067-.0092.0144-.0149.099.0547 1.7136.9716 1.9292 2.3558-.0378.0146-.7737.315-.7737.315l.0239.0238c.6822.7143.9176 1.5776 1.1065 2.2686.1503.5476.3298.897.5676 1.1024.2757.2378 1.32.7366 1.6335.883.2607.3705.7092 1.0643 1.0343 1.6019a20.315 20.315 0 0 0 1.067-6.5077c0-2.5195-.46-4.9795-1.3586-7.3191-2.7818-1.2561-5.896-1.9239-9.0237-1.9239Z\"},\"child\":[]}]})(props);\n};\nexport function SiJoomla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.719 14.759L14.22 17.26l-2.37 2.37-.462.466c-1.368 1.365-3.297 1.83-5.047 1.397-.327 1.424-1.604 2.49-3.13 2.49C1.438 23.983 0 22.547 0 20.772c0-1.518 1.055-2.789 2.469-3.123-.446-1.76.016-3.705 1.396-5.08l.179-.18 2.37 2.37-.184.181c-.769.779-.769 2.024 0 2.789.771.78 2.022.78 2.787 0l.465-.465 2.367-2.371 2.502-2.506 2.368 2.372zm.924 6.652c-1.822.563-3.885.12-5.328-1.318l-.18-.185 2.365-2.369.18.184c.771.768 2.018.768 2.787 0 .765-.765.769-2.01-.004-2.781l-.466-.465-2.365-2.37-2.502-2.503 2.37-2.369 2.499 2.505 2.367 2.37.464.464c1.365 1.36 1.846 3.278 1.411 5.021 1.56.224 2.759 1.56 2.759 3.18 0 1.784-1.439 3.21-3.209 3.21-1.545 0-2.851-1.096-3.135-2.565l-.013-.009zM6.975 9.461l2.508-2.505 2.37-2.369.462-.461C13.74 2.7 15.772 2.251 17.58 2.79c.212-1.561 1.555-2.775 3.179-2.775 1.772 0 3.211 1.437 3.211 3.209 0 1.631-1.216 2.978-2.79 3.186.519 1.799.068 3.816-1.35 5.234l-.182.184-2.369-2.369.184-.184c.769-.77.769-2.016 0-2.783-.766-.766-2.011-.768-2.781.003l-.462.461-2.37 2.369-2.505 2.502-2.37-2.366zm-2.653 2.647l-.461-.462C2.43 10.215 1.986 8.17 2.529 6.358 1.1 6.029.03 4.754.03 3.224.03 1.454 1.47.015 3.24.015c1.596 0 2.92 1.166 3.17 2.691 1.73-.405 3.626.065 4.979 1.415l.184.185-2.37 2.37-.183-.181c-.77-.765-2.016-.765-2.785 0-.771.781-.77 2.025-.005 2.79l.465.466 2.37 2.369 2.505 2.505-2.367 2.37-2.51-2.505-2.371-2.37v-.012z\"},\"child\":[]}]})(props);\n};\nexport function SiJoplin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.969 0h-8.904c-.084 0-.152.068-.152.152v2.827c0 .095.077.172.172.172h1.221c.493 0 .894.38.937.863v13.378h-.001l-.017.363-.05.282c-.011.044-.02.089-.033.132-.081.258-.208.497-.384.708-.007.007-.015.014-.021.021-.054.063-.11.123-.172.18-.063.057-.13.11-.2.16-.498.353-1.169.508-1.918.436-.955-.089-1.903-.523-2.669-1.22-.765-.696-1.242-1.558-1.34-2.427-.089-.778.144-1.462.655-1.927.002-.001.003-.002.004-.003.02-.018.041-.033.062-.05.366-.307.842-.493 1.387-.544.006 0 .012-.001.017-.002l.298-.014.35.017c.008 0 .016.002.024.003.499.05.993.199 1.462.425.01 0 .022.003.036.011.143.079.17-.005.174-.061v-4.256c0-.122-.085-.23-.203-.256-2.527-.556-5.005.022-6.754 1.615-1.528 1.389-2.267 3.395-2.027 5.502.213 1.876 1.176 3.679 2.712 5.076 1.497 1.362 3.402 2.213 5.368 2.399.271.025.543.038.809.038 1.877 0 3.619-.644 4.905-1.814 1.218-1.109 1.948-2.632 2.055-4.288l.01-10.866h.001v-2.955c.011-.513.429-.926.945-.926h1.221c.095 0 .172-.077.172-.172v-2.827c0-.084-.068-.152-.152-.152z\"},\"child\":[]}]})(props);\n};\nexport function SiJordan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.55 2.194v-.075c0-.35.113-.663.338-.938.225-.275.512-.412.862-.412s.663.112.938.337.425.525.45.9c.025.375-.088.688-.338.938s-.55.375-.9.375l-.225.075.075.112-.075.413-.15 1.2c.05.05.075.1.075.15l-.15.75c-.05.1-.1.175-.15.225l-.075.3a22.59 22.59 0 01-.45 1.575v.15c-.05.25-.087.45-.112.6-.025.15-.113.4-.263.75-.1.2-.1.525 0 .975l.075.075c0 .15.063.325.188.525s.187.375.187.525c.05 1-.025 1.85-.225 2.55l.15.45c.6.3.775.625.525.975l.375.15c.6.3 1.025.562 1.275.787.25.225.5.463.75.713.2.05.35.125.45.225l.225.075c1.05.7 2.1 1.55 3.15 2.55l.3.225v.075l-.075.15.225.15h.075c.15.1.25.15.3.15h.075c.05 0 .1-.025.15-.075l.15-.075c.1-.1.2-.175.3-.225h.3c.05 0 .05.025 0 .075l-.3.15-.375.45h.525l.525.075c.15-.05.275-.1.375-.15l.375-.225c.15-.05.3 0 .45.15h.075c.05.05.025.125-.075.225l-.9.825c-.25.2-.475.325-.675.375l-.975.675c-.05.05-.1.05-.15 0l-.225-.3-.15-.3-.188-.263-.225-.3-.187-.225-.15-.187-.3-.225c-.1 0-.2-.025-.3-.075l-.975-.75c-.15 0-.325-.075-.525-.225-.75-.65-1.25-1.05-1.5-1.2l-.45-.3-.9-.15c-.3-.05-.7-.2-1.2-.45l-.6-.3c-.4-.2-.675-.3-.825-.3l-.3-.15c-.2-.05-.35-.1-.45-.15l-.15-.15c-.1 0-.2.025-.3.075l-1.5.75-1.875.825c-.5.4-.975.725-1.425.975l-.825.375-1.275.9c-.1.1-.2.1-.3 0l-.15.15c-.15.05-.25.075-.3.075l-.3.15v.15H3.2l-.15.225c-.1.2-.2.312-.3.337-.1.025-.162.063-.187.113a.434.434 0 01-.075.112l-.15.15-.225.15-.338-.037-.45.075-.3.075c-.25.05-.45.012-.6-.113-.15-.125-.275-.312-.375-.562-.1-.15-.05-.275.15-.375l.075-.075c.05-.05.125-.075.225-.075h.45l.6-.225.3-.075c0-.1.025-.175.075-.225.05-.05.125-.075.225-.075v-.075a.666.666 0 01-.075-.3c-.05-.1-.063-.175-.037-.225.025-.05.05-.075.075-.075h.037l.075.225c.05.25.125.325.225.225l.075-.15c.05-.1.125-.15.225-.15l.15.15.15-.15-.075-.075c0-.05.025-.075.075-.075l.3-.3c.25-.3.55-.575.9-.825.7-.55 1.45-.975 2.25-1.275.25-.25.525-.375.825-.375.2-.35.5-.725.9-1.125.35-.25.6-.425.75-.525.1-.2.225-.3.375-.3h.075l.15-.15c.1-.05.175-.1.225-.15v-.375c0-.25.025-.45.075-.6.05-.15.175-.225.375-.225l.3-.3c-.1-.2-.15-.425-.15-.675h-.075c-.1-.15-.15-.3-.15-.45-.15-.25-.25-.45-.3-.6H9.65c-.05.15-.175.25-.375.3l-.075.15c-.2.35-.375.612-.525.787-.15.175-.425.388-.825.638-.25.25-.425.525-.525.825-.05.15-.05.3 0 .45l-.075.15h.075c0 .1.025.15.075.15h.075c.1.05.15.112.15.187s-.075.1-.225.075a.606.606 0 01-.337-.15c-.075-.075-.138-.112-.188-.112l-.225.225c-.1.15-.2.212-.3.187-.1-.025-.125-.062-.075-.112l.075-.075c.05-.1.05-.15 0-.15l-.6.15c-.05.05-.112.05-.187 0s-.063-.1.037-.15l.375-.15c0-.05-.025-.075-.075-.075-.2.1-.4.125-.6.075l-.375-.075-.075-.075c0-.05.025-.075.075-.075.2.05.45.025.75-.075l.525-.225.6-.675.075-.15c.2-.4.413-.763.638-1.088a3.68 3.68 0 01.712-.787l.075-.3c.1-.2.2-.375.3-.525.1-.15.225-.35.375-.6l.225-.3c.2-.3.425-.45.675-.45l.225-.225c.05-.05.075-.125.075-.225l.15-.15-.075-.075c-.3-.25-.45-.475-.45-.675-.05-.35.063-.65.338-.9s.55-.363.825-.338c.275.025.487.113.637.263l.15.15c.05 0 .075.025.075.075l.3.15v.225c.1.1.15.175.15.225.1-.15.25-.325.45-.525l.375-1.2c0-.2.05-.4.15-.6l.15-.225v-.15l.225-.9h.15l.225-.9a.933.933 0 000-.525l-.3-.75-.15-.6z\"},\"child\":[]}]})(props);\n};\nexport function SiJouav (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.8218 13.1065.112-.069a1.35694 1.357 0 0 1-.48099-1.037 1.36994 1.37 0 0 1 1.37395-1.365c.40998 0 .77596.18 1.02995.462l.016-.027c.115-.203.226-.402.30999-.6.038-.078.066-.157.097-.233a2.2839 2.284 0 0 0-1.45194-.517 2.2869 2.287 0 0 0-2.2949 2.28c0 .562.20498 1.076.54397 1.473a2.4939 2.494 0 0 0 .141-.058c.19999-.086.39998-.195.60397-.309zm2.70189-2.642a4.8278 4.828 0 0 1-.312.787 6.70872 6.709 0 0 1-.11799.216 1.35994 1.36 0 0 1 .108.532 1.36994 1.37 0 0 1-1.87992 1.269 5.83176 5.832 0 0 1-.31599.175 4.8598 4.86 0 0 1-.67297.272l-.012.004a2.2929 2.293 0 0 0 1.50594.56 2.2869 2.287 0 0 0 2.2949-2.28 2.2569 2.257 0 0 0-.59797-1.535zm-6.20175-.673H2.7209v2.754c0 .592-.146 1.028-.43699 1.31-.29198.28-.74496.42-1.35994.42A3.70985 3.71 0 0 1 0 14.1605v-.959a1.41794 1.418 0 0 0 .44598.075c.31599 0 .53998-.077.67397-.23.135-.153.202-.418.202-.794v-2.46zm7.55469 0h1.39994v2.55c0 .374.065.644.199.812.13299.166.34598.25.63797.25.29998 0 .52698-.09.67997-.27.153-.178.22899-.443.22899-.792v-2.55h1.33194v2.55c0 .646-.18699 1.13-.55997 1.451-.37299.322-.93296.483-1.67993.483-.73997 0-1.29895-.162-1.67393-.486-.37599-.325-.56298-.807-.56298-1.448v-2.55zm6.91471 0h1.68693l1.98492 4.383h-1.49494l-.37198-.928h-2.01992l-.38998.928h-1.38495zm.81497.978-.67997 1.644h1.33694zm2.1739-.978h1.46195l1.16995 3.411 1.15595-3.41H24l-1.77793 4.382h-1.75392z\"},\"child\":[]}]})(props);\n};\nexport function SiJovian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.25 1.65C20.25.74 19.51 0 18.6 0H5.4c-.91 0-1.65.74-1.65 1.65v20.7c0 .91.74 1.65 1.65 1.65h13.2c.91 0 1.65-.74 1.65-1.65V1.65zm-5.275 4.341a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm.04 9.018a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zm-6.015 0a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z\"},\"child\":[]}]})(props);\n};\nexport function SiJpeg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.559 20.407c-.63 0-1.08-.026-1.08-.026V17.22h1.073c1.19 0 1.95.33 1.95 1.426 0 .93-.329 1.76-1.943 1.76m.028-3.965H6.61V24h.87v-2.797h1.275c1.783 0 2.634-1.096 2.634-2.483 0-1.413-.871-2.279-2.8-2.279M13.37 20.571h3.063v-.812H13.37v-2.55h3.548v-.768H12.5v7.42h4.566v-.768H13.37zM21.485 19.938v.753h1.289v1.866c-.395.587-1.452.587-1.452.587-.805 0-1.454-.277-1.927-.838-.47-.558-.707-1.158-.707-2.06 0-.947.235-1.675.711-2.257.482-.583 1.15-.905 1.982-.905.427 0 .884.131 1.33.405l.538-.602c-.482-.396-1.096-.593-1.84-.593-1.11 0-2.005.361-2.656 1.08-.657.715-.99 1.668-.99 2.832s.305 2.043.9 2.745c.591.692 1.42 1.047 2.44 1.047.46 0 .932-.043 1.423-.197.378-.12.508-.216 1.075-.216v-3.647zM3.856 16.441h-.584v.768h.584v3.571c0 1.101.033 1.746-.345 2.124a1.267 1.267 0 01-.865.367c-1.362 0-1.412-1.091-1.412-1.091H.4c.08 1.942 2.362 1.813 2.362 1.813.607-.033 1.087-.233 1.462-.609.495-.499.507-1.422.507-2.192v-4.75zM17.352 0H3.063v14.282h8.266V8.271h6.023zM18.038 9.067h5.213v5.216h-5.213z\"},\"child\":[]}]})(props);\n};\nexport function SiJquery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.525 5.87c-2.126 3.054-1.862 7.026-.237 10.269.037.079.078.154.118.229.023.052.049.1.077.15.013.027.031.056.047.082.026.052.054.102.081.152l.157.266c.03.049.057.097.09.146.056.094.12.187.178.281.026.04.05.078.079.117a6.368 6.368 0 00.31.445c.078.107.156.211.24.315.027.038.058.076.086.115l.22.269c.028.03.055.067.084.099.098.118.202.233.306.35l.005.006a3.134 3.134 0 00.425.44c.08.083.16.165.245.245l.101.097c.111.105.223.209.34.309.002 0 .003.002.005.003l.057.05c.102.089.205.178.31.26l.125.105c.085.068.174.133.26.2l.137.105c.093.07.192.139.287.207.035.025.07.05.106.073l.03.023.28.185.12.08c.148.094.294.184.44.272.041.02.084.044.123.068.108.062.22.125.329.183.06.034.122.063.184.094.075.042.153.083.234.125a.324.324 0 01.056.023c.033.015.064.031.096.047.12.06.245.118.375.175.024.01.05.02.076.034.144.063.289.123.438.182.034.01.07.027.105.04.135.051.274.103.411.152l.05.018c.154.052.305.102.46.15.036.01.073.023.111.033.16.048.314.105.474.137 10.273 1.872 13.258-6.177 13.258-6.177-2.508 3.266-6.958 4.127-11.174 3.169-.156-.036-.312-.086-.47-.132a13.539 13.539 0 01-.567-.182l-.062-.024c-.136-.046-.267-.097-.4-.148a1.615 1.615 0 00-.11-.04c-.148-.06-.29-.121-.433-.184-.031-.01-.057-.024-.088-.036a23.44 23.44 0 01-.362-.17 1.485 1.485 0 01-.106-.052c-.094-.044-.188-.095-.28-.143a3.947 3.947 0 01-.187-.096c-.114-.06-.227-.125-.34-.187-.034-.024-.073-.044-.112-.066a15.922 15.922 0 01-.439-.27 2.107 2.107 0 01-.118-.078 6.01 6.01 0 01-.312-.207c-.035-.023-.067-.048-.103-.073a9.553 9.553 0 01-.295-.212c-.042-.034-.087-.066-.132-.1-.088-.07-.177-.135-.265-.208l-.118-.095a10.593 10.593 0 01-.335-.28.258.258 0 00-.037-.031l-.347-.316-.1-.094c-.082-.084-.166-.164-.25-.246l-.098-.1a9.081 9.081 0 01-.309-.323l-.015-.016c-.106-.116-.21-.235-.313-.355-.027-.03-.053-.064-.08-.097l-.227-.277a21.275 21.275 0 01-.34-.449C2.152 11.79 1.306 7.384 3.177 3.771m4.943-.473c-1.54 2.211-1.454 5.169-.254 7.508a9.111 9.111 0 00.678 1.133c.23.33.484.721.793.988.107.122.223.24.344.36l.09.09c.114.11.232.217.35.325l.016.013a9.867 9.867 0 00.414.342c.034.023.063.05.096.073.14.108.282.212.428.316l.015.009c.062.045.128.086.198.13.028.018.06.042.09.06.106.068.21.132.318.197.017.007.032.016.048.023.09.055.188.108.282.157.033.02.065.035.1.054.066.033.132.068.197.102l.032.014c.135.067.273.129.408.19.034.014.063.025.092.039.111.048.224.094.336.137.05.017.097.037.144.052.102.038.21.073.31.108l.14.045c.147.045.295.104.449.13C22.164 17.206 24 11.098 24 11.098c-1.653 2.38-4.852 3.513-8.261 2.628a8.04 8.04 0 01-.449-.13c-.048-.014-.09-.029-.136-.043-.104-.036-.211-.07-.312-.109l-.144-.054c-.113-.045-.227-.087-.336-.135-.034-.015-.065-.025-.091-.04-.14-.063-.281-.125-.418-.192l-.206-.107-.119-.06a5.673 5.673 0 01-.265-.15.62.62 0 01-.062-.035c-.106-.066-.217-.13-.318-.198-.034-.019-.065-.042-.097-.062l-.208-.136c-.144-.1-.285-.208-.428-.313-.032-.029-.063-.053-.094-.079-1.499-1.178-2.681-2.79-3.242-4.613-.59-1.897-.46-4.023.56-5.75m4.292-.147c-.909 1.334-.996 2.99-.37 4.46.665 1.563 2.024 2.79 3.608 3.37.065.025.128.046.196.07l.088.027c.092.03.185.063.28.084 4.381.845 5.567-2.25 5.886-2.704-1.043 1.498-2.792 1.857-4.938 1.335a4.85 4.85 0 01-.516-.16 6.352 6.352 0 01-.618-.254 6.53 6.53 0 01-1.082-.66c-1.922-1.457-3.113-4.236-1.859-6.5\"},\"child\":[]}]})(props);\n};\nexport function SiJrgroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.955 13.653h1.089c2.684 0 2.684-4.123 2.684-4.123s0-4.162-2.684-4.162H9.18v8.869c0 1.556-3.112 1.478-3.112 1.478s-3.073.116-3.073-1.478v-3.423H0v4.395c0 3.19 5.68 3.384 6.107 3.423.428 0 6.107-.194 6.107-3.423V8.363h7.896c.661 0 .661 1.167.661 1.167s0 1.167-.66 1.167h-6.069l5.952 7.702H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiJsdelivr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.851 0L.811 4.02l1.56 14.7L11.85 24l9.6-5.28 1.74-14.76zm.062 4.622a6.668 6.75 0 0 1 2.666.572 12.507 12.507 0 0 0-2.59 1.95c-.045-.02-.092-.031-.138-.045a1.181 1.181 0 0 0-.346-.056c-.071 0-.141.01-.21.021a8.91 8.91 0 0 1-.615-2.318 6.668 6.75 0 0 1 1.171-.122 6.668 6.75 0 0 1 .062-.002zm-1.99.312a9.763 9.763 0 0 0 .69 2.504 1.213 1.213 0 0 0-.328.825 1.202 1.202 0 0 0 .18.63c-.937 1.294-1.656 2.803-1.905 4.31-.01.056-.013.11-.02.166-.282.09-.515.284-.656.54-.987-.333-1.885-.968-2.615-2.022a6.668 6.75 0 0 1-.026-.515 6.668 6.75 0 0 1 4.68-6.438zm5.507.709a6.668 6.75 0 0 1 2.53 2.9c-.377.953-1.049 1.892-1.893 2.727a1.242 1.242 0 0 0-.644-.184 1.243 1.243 0 0 0-.768.27c-.462-.354-.91-.737-1.318-1.168-.333-.35-.637-.73-.921-1.123.19-.215.31-.494.31-.802 0-.212-.061-.41-.159-.586 1.058-1.008 2.112-1.67 2.863-2.034zm-3.925 1.982a.624.624 0 0 1 .346.114.624.624 0 0 1 .292.524.624.624 0 0 1-.292.524.626.626 0 0 1-.346.113.634.634 0 0 1-.638-.637c0-.355.283-.638.638-.638zm-.441 1.771a1.205 1.205 0 0 0 .675.062c.036.05.075.097.112.148a11.438 11.438 0 0 0 .921 1.119 12.103 12.103 0 0 0 1.446 1.277c-.032.11-.054.224-.054.342a1.236 1.236 0 0 0 .066.38 9.91 9.91 0 0 1-2.118 1.042c-.087.029-.173.052-.261.078a7.735 7.735 0 0 1-1.87.332 1.15 1.15 0 0 0-.66-.773c.004-.024.005-.049.01-.073.219-1.333.873-2.73 1.733-3.934zm7.272.19a6.668 6.75 0 0 1 .245 1.786 6.668 6.75 0 0 1-.259 1.856 9.993 9.993 0 0 1-1.666-.63 1.243 1.243 0 0 0-.065-.713 9.434 9.434 0 0 0 1.745-2.3zm-2.913 2.101c.367 0 .657.291.657.658s-.291.657-.657.657c-.367 0-.658-.29-.658-.657s.29-.658.658-.658zm.837 1.59a10.79 10.79 0 0 0 1.802.688 6.668 6.75 0 0 1-6.149 4.157 6.668 6.75 0 0 1-.062-.004 6.668 6.75 0 0 1-.042 0c-.087-.042-.168-.08-.266-.129-.312-.154-.667-.352-.846-.5a3.796 3.796 0 0 1-1.294-2.03c.21-.111.38-.284.487-.495a8.428 8.428 0 0 0 1.96-.306 9.11 9.11 0 0 0 .513-.154 11.083 11.083 0 0 0 2.341-1.13c.205.143.452.23.719.23a1.248 1.248 0 0 0 .837-.328zm-10.707.116a5.761 5.761 0 0 0 2.212 1.298 1.146 1.146 0 0 0 .857.87 4.602 4.602 0 0 0 1.24 2.222 6.668 6.75 0 0 1-4.31-4.39zm3.327.464c.331 0 .595.263.595.596s-.264.595-.595.595a.59.59 0 0 1-.596-.595.591.591 0 0 1 .596-.596z\"},\"child\":[]}]})(props);\n};\nexport function SiJsfiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.9 3.602c-2.749 0-5.103 1.544-6.35 3.779-.536-.317-1.139-.54-1.806-.54-1.981 0-3.6 1.606-3.6 3.579 0 .263.063.513.118.762C.912 12.09 0 13.602 0 15.344c0 2.763 2.241 5.012 5.008 5.054a.421.421 0 00.008 0h14c2.746.017 4.984-2.206 4.984-4.937 0-1.946-1.153-3.602-2.799-4.41.003-.062.01-.115.01-.184 0-4.008-3.28-7.265-7.31-7.265zm0 .843c3.58 0 6.47 2.872 6.47 6.422 0 .115-.012.242-.02.387a.421.421 0 00.26.414 4.104 4.104 0 012.546 3.793 4.094 4.094 0 01-4.135 4.096.421.421 0 00-.003 0H5.02C2.702 19.52.844 17.653.844 15.344c0-1.545.834-2.883 2.08-3.62a.421.421 0 00.187-.49 2.701 2.701 0 01-.125-.814 2.741 2.741 0 012.758-2.736 2.75 2.75 0 011.686.576.421.421 0 00.636-.15A6.462 6.462 0 0113.9 4.444zm-5.33 6.877c-1.586 0-2.91 1.213-2.91 2.737 0 1.523 1.324 2.736 2.91 2.736 1.411 0 2.182-.931 2.496-1.266a.421.421 0 10-.613-.578c-.378.402-.819 1.002-1.883 1.002-1.162 0-2.068-.86-2.068-1.894 0-1.035.906-1.895 2.068-1.895.533 0 1.105.297 1.686.77.372.303.737.668 1.098 1.043a.421.421 0 00.085.123c.533.552 1.122 1.205 1.774 1.736.652.531 1.386.959 2.217.959 1.586 0 2.91-1.213 2.91-2.736 0-1.524-1.324-2.737-2.91-2.737-1.411 0-2.182.931-2.496 1.266a.421.421 0 10.613.578c.378-.402.819-1.002 1.883-1.002 1.162 0 2.068.86 2.068 1.895 0 1.034-.906 1.894-2.068 1.894-.533 0-1.105-.297-1.686-.77-.372-.303-.737-.67-1.098-1.044a.421.421 0 00-.085-.121c-.533-.552-1.122-1.208-1.774-1.739-.652-.53-1.386-.957-2.217-.957Z\"},\"child\":[]}]})(props);\n};\nexport function SiJson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.043 23.968c.479-.004.953-.029 1.426-.094a11.805 11.805 0 003.146-.863 12.404 12.404 0 003.793-2.542 11.977 11.977 0 002.44-3.427 11.794 11.794 0 001.02-3.476c.149-1.16.135-2.346-.045-3.499a11.96 11.96 0 00-.793-2.788 11.197 11.197 0 00-.854-1.617c-1.168-1.837-2.861-3.314-4.81-4.3a12.835 12.835 0 00-2.172-.87h-.005c.119.063.24.132.345.201.12.074.239.146.351.225a8.93 8.93 0 011.559 1.33c1.063 1.145 1.797 2.548 2.218 4.041.284.982.434 1.998.495 3.017.044.743.044 1.491-.047 2.229-.149 1.27-.554 2.51-1.228 3.596a7.475 7.475 0 01-1.903 2.084c-1.244.928-2.877 1.482-4.436 1.114a3.916 3.916 0 01-.748-.258 4.692 4.692 0 01-.779-.45 6.08 6.08 0 01-1.244-1.105 6.507 6.507 0 01-1.049-1.747 7.366 7.366 0 01-.494-2.54c-.03-1.273.225-2.553.854-3.67a6.43 6.43 0 011.663-1.918c.225-.178.464-.333.704-.479l.016-.007a5.121 5.121 0 00-1.441-.12 4.963 4.963 0 00-1.228.24c-.359.12-.704.27-1.019.45a6.146 6.146 0 00-.733.494c-.211.18-.42.36-.615.555-1.123 1.153-1.768 2.682-2.022 4.256-.15.973-.15 1.96-.091 2.95.105 1.395.391 2.787.945 4.062a8.518 8.518 0 001.348 2.173 8.14 8.14 0 003.132 2.23 7.934 7.934 0 002.113.54c.074.015.149.015.209.015zm-2.934-.398a4.102 4.102 0 01-.45-.228 8.5 8.5 0 01-2.038-1.534c-1.094-1.137-1.827-2.566-2.247-4.08a15.184 15.184 0 01-.495-3.172 12.14 12.14 0 01.046-2.082c.135-1.257.495-2.501 1.124-3.58a6.889 6.889 0 011.783-2.053 6.23 6.23 0 011.633-.9 5.363 5.363 0 013.522-.045c.029 0 .029 0 .045.03.015.015.045.015.06.03.045.016.104.045.165.074.239.12.479.271.704.42a6.294 6.294 0 012.097 2.502c.42.914.615 1.934.631 2.938.014 1.079-.18 2.157-.645 3.146a6.42 6.42 0 01-2.638 2.832c.09.03.18.045.271.075.225.044.449.074.688.074 1.468.045 2.892-.66 3.94-1.647.195-.18.375-.375.54-.585.225-.27.435-.54.614-.823.239-.375.435-.75.614-1.154a8.112 8.112 0 00.509-1.664c.196-1.004.211-2.022.149-3.026-.135-2.022-.673-4.045-1.842-5.724a9.054 9.054 0 00-.555-.719 9.868 9.868 0 00-1.063-1.034 8.477 8.477 0 00-1.363-.915 9.927 9.927 0 00-1.692-.598l-.3-.06c-.209-.03-.42-.044-.634-.06a8.453 8.453 0 00-1.015.016c-.704.045-1.412.16-2.112.337C5.799 1.227 2.863 3.566 1.3 6.67A11.834 11.834 0 00.238 9.801a11.81 11.81 0 00-.104 3.775c.12 1.02.374 2.023.778 2.977.227.57.511 1.124.825 1.648 1.094 1.783 2.683 3.236 4.51 4.24.688.39 1.408.69 2.157.944.226.074.45.15.689.21z\"},\"child\":[]}]})(props);\n};\nexport function SiJsonwebtokens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.2 0v6.456L12 8.928l1.8-2.472V0zm3.6 6.456v3.072l2.904-.96L20.52 3.36l-2.928-2.136zm2.904 2.112l-1.8 2.496 2.928.936 6.144-1.992-1.128-3.432zM17.832 12l-2.928.936 1.8 2.496 6.144 1.992 1.128-3.432zm-1.128 3.432l-2.904-.96v3.072l3.792 5.232 2.928-2.136zM13.8 17.544L12 15.072l-1.8 2.472V24h3.6zm-3.6 0v-3.072l-2.904.96L3.48 20.64l2.928 2.136zm-2.904-2.112l1.8-2.496L6.168 12 .024 13.992l1.128 3.432zM6.168 12l2.928-.936-1.8-2.496-6.144-1.992-1.128 3.432zm1.128-3.432l2.904.96V6.456L6.408 1.224 3.48 3.36Z\"},\"child\":[]}]})(props);\n};\nexport function SiJsr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.692 5.538v3.693H0v7.384h7.385v1.847h12.923v-3.693H24V7.385h-7.385V5.538Zm1.846 1.847h1.847v7.384H1.846v-3.692h1.846v1.846h1.846zm3.693 0h5.538V9.23h-3.692v1.846h3.692v5.538H9.231V14.77h3.692v-1.846H9.231Zm7.384 1.846h5.539v3.692h-1.846v-1.846h-1.846v5.538h-1.847z\"},\"child\":[]}]})(props);\n};\nexport function SiJss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2.5v19h19.2v-1.95c.506.263 1.124.42 1.857.42 1.687 0 2.943-.877 2.943-2.475 0-1.483-.852-2.143-2.36-2.79l-.444-.19c-.762-.33-1.092-.546-1.092-1.078 0-.431.33-.761.85-.761.51 0 .838.215 1.142.76l1.383-.887c-.585-1.029-1.396-1.422-2.525-1.422-.715 0-1.312.207-1.754.555V2.5zm.36.359h18.48v9.182a2.266 2.266 0 00-.487 1.432c0 .654.176 1.152.486 1.552v2.537l-1.018.592c.232.456.57.864 1.018 1.177v1.81H.361zm14.188 8.268c-1.586 0-2.6 1.014-2.6 2.346 0 1.445.85 2.13 2.132 2.675l.443.19c.81.355 1.293.57 1.293 1.18 0 .508-.47.875-1.205.875-.876 0-1.371-.457-1.752-1.078l-1.443.839c.521 1.03 1.587 1.816 3.236 1.816 1.687 0 2.943-.876 2.943-2.475 0-1.483-.852-2.143-2.361-2.79l-.444-.19c-.762-.33-1.092-.546-1.092-1.078 0-.431.33-.761.85-.761.51 0 .838.215 1.143.76l1.382-.887c-.584-1.029-1.396-1.422-2.525-1.422zm-5.868.101v6.038c0 .888-.368 1.116-.951 1.116-.61 0-.864-.418-1.143-.913l-1.446.875c.419.886 1.242 1.622 2.664 1.622 1.574 0 2.652-.837 2.652-2.676v-6.062zm10.52 4.173c.345.295.781.532 1.286.747l.443.19c.81.355 1.293.57 1.293 1.18 0 .508-.47.875-1.206.875-.876 0-1.37-.457-1.752-1.078l-.064.037z\"},\"child\":[]}]})(props);\n};\nexport function SiJuce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12S18.617 0 12 0zm0 22.402c-5.744 0-10.417-4.667-10.417-10.404S6.256 1.595 12 1.595s10.417 4.666 10.417 10.403S17.744 22.402 12 22.402zm8.097-5.04a9.77 9.77 0 0 1-2.5 2.572 1.23 1.23 0 0 1-1.787-.42c-.97-1.794-1.75-3.59-2.468-5.391a.504.504 0 0 1 .669-.648c1.729.749 3.503 1.46 5.414 2.04a1.227 1.227 0 0 1 .672 1.847zm1.615-5.36c0 .596-.053 1.179-.156 1.746a1.235 1.235 0 0 1-1.559.97c-2.01-.583-3.87-1.324-5.687-2.111l.002.001a.503.503 0 0 1 .013-.93c1.802-.713 3.606-1.48 5.416-2.437.727-.385 1.62.04 1.782.846.124.619.19 1.26.19 1.915zm-6.847 7.713c.383.726-.04 1.61-.842 1.78a9.67 9.67 0 0 1-2.021.212 9.702 9.702 0 0 1-1.607-.132 1.233 1.233 0 0 1-.98-1.56c.583-2.003 1.322-3.854 2.107-5.666a.503.503 0 0 1 .93.014h.002c.704 1.78 1.468 3.565 2.411 5.352zM9.181 4.276a1.232 1.232 0 0 1 .844-1.782 9.745 9.745 0 0 1 3.692-.05c.722.129 1.176.852.973 1.557-.585 2.028-1.33 3.9-2.125 5.73a.503.503 0 0 1-.93-.013h-.001c-.715-1.81-1.49-3.623-2.453-5.442zm-5.374 2.51a9.759 9.759 0 0 1 2.635-2.747 1.233 1.233 0 0 1 1.787.42c1.021 1.88 1.83 3.763 2.578 5.65a.504.504 0 0 1-.668.648c-1.802-.783-3.644-1.53-5.64-2.13a1.234 1.234 0 0 1-.692-1.842zm6.864 7.223c-.763 1.753-1.486 3.55-2.072 5.488a1.23 1.23 0 0 1-1.838.679 9.77 9.77 0 0 1-2.662-2.53 1.23 1.23 0 0 1 .414-1.794c1.834-.99 3.67-1.783 5.51-2.513a.504.504 0 0 1 .648.668v.002zm2.72-3.872c.775-1.777 1.51-3.6 2.103-5.57a1.23 1.23 0 0 1 1.85-.672A9.791 9.791 0 0 1 20 6.497a1.23 1.23 0 0 1-.425 1.779c-1.842.998-3.688 1.796-5.538 2.53a.504.504 0 0 1-.648-.67zm-9.098 4.78a1.229 1.229 0 0 1-1.773-.81 9.735 9.735 0 0 1-.103-3.683 1.234 1.234 0 0 1 1.56-.981c2.02.584 3.888 1.328 5.713 2.119a.503.503 0 0 1-.014.93c-1.79.71-3.585 1.474-5.383 2.425z\"},\"child\":[]}]})(props);\n};\nexport function SiJuejin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 14.316 7.454-5.88-2.022-1.625L12 11.1l-.004.003-5.432-4.288-2.02 1.624 7.452 5.88Zm0-7.247 2.89-2.298L12 2.453l-.004-.005-2.884 2.318 2.884 2.3Zm0 11.266-.005.002-9.975-7.87L0 12.088l.194.156 11.803 9.308 7.463-5.885L24 12.085l-2.023-1.624Z\"},\"child\":[]}]})(props);\n};\nexport function SiJuke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.965 15.778c-1.947 0-2.751-.929-2.751-2.58V8.409c0-.102.084-.184.188-.184h1.499c.104 0 .188.082.188.184v4.82a.87.87 0 0 0 .876.816c.466 0 .85-.358.876-.816v-4.82a.188.188 0 0 1 .188-.185h1.498c.104 0 .188.083.188.185v4.789c0 1.652-.805 2.58-2.751 2.58h.001Zm-4.495-2.66c0 1.652-.726 2.583-2.667 2.583H.188A.186.186 0 0 1 0 15.516v-1.367c0-.102.084-.185.188-.185h.677c.636 0 .73-.336.73-.735V9.582a.397.397 0 0 0-.157-.314L.259 8.456a.128.128 0 0 1-.042-.145.133.133 0 0 1 .125-.087h2.939c.104 0 .188.083.188.185v4.709h.001Zm10.927.106v2.195a.187.187 0 0 1-.188.185h-1.5a.187.187 0 0 1-.183-.18V8.409c0-.1.081-.182.183-.185h1.5c.104 0 .188.083.188.185v2.2c0 .108.045.122.101.028l1.323-2.251c.08-.136.159-.161.336-.161h1.772c.103 0 .137.084.075.185l-2.063 3.387a.248.248 0 0 0 0 .239l2.063 3.387c.057.101.028.185-.075.185h-1.772c-.179 0-.257-.03-.337-.161l-1.323-2.25c-.056-.094-.101-.082-.101.026l.001.001Zm9.602-1.308a.157.157 0 0 1-.093.13l-2.406 1.45a.102.102 0 0 0-.058.091c0 .039.023.074.057.091l2.446 1.694a.13.13 0 0 1 .042.145.134.134 0 0 1-.126.087h-4.299a.187.187 0 0 1-.188-.18V8.407c0-.102.084-.185.188-.185h4.305c.056 0 .107.035.125.087a.129.129 0 0 1-.042.145l-2.445 1.693a.1.1 0 0 0 0 .182l2.395 1.456c.065.037.098.08.098.13l.001.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiJulia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.138 17.569a5.569 5.569 0 1 1-11.138 0 5.569 5.569 0 1 1 11.138 0zm6.431-11.138a5.569 5.569 0 1 1-11.138 0 5.569 5.569 0 1 1 11.138 0zM24 17.569a5.569 5.569 0 1 1-11.138 0 5.569 5.569 0 1 1 11.138 0z\"},\"child\":[]}]})(props);\n};\nexport function SiJunipernetworks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.0864 13.1643c.0456 0 .0717-.0132.0717-.062 0-.0482-.0254-.0593-.0731-.0593h-.1023v.1213zm-.1037.0417v.1285h-.0445v-.334h.1487c.0846 0 .1172.0347.1172.1006 0 .054-.0229.0912-.0806.102l.0755.1314h-.0484l-.0746-.1285zm.0746-.2918a.2535.2535 0 0 0-.2533.2531c0 .1395.1136.2532.2533.2532a.2535.2535 0 0 0 .253-.2532.2534.2534 0 0 0-.253-.2531zm-.291.2531a.2912.2912 0 0 1 .291-.2908.291.291 0 0 1 .2905.2908.291.291 0 0 1-.2905.2907.2912.2912 0 0 1-.291-.2907zm-20.7445-.6602V8.8304h-.4212v3.6767c0 .8506.0337 1.5332-1.4404 1.5332A4.029 4.029 0 0 1 0 14.0369v.397a6.215 6.215 0 0 0 .1602.0022c1.7858 0 1.8616-.8002 1.8616-1.929zm15.5404-1.6972h3.1334c-.042-.918-.1011-1.7014-1.4404-1.7014-1.2887 0-1.6425.6992-1.693 1.7014zm1.7016-2.0889c1.794 0 1.853 1.2045 1.8447 2.4764h-3.5548c.0085 1.1204.2863 1.9544 1.7436 1.9544.775 0 1.1288-.2107 1.5079-.4886l.2357.3116c-.421.3117-.918.556-1.7436.556-1.8194 0-2.1565-1.053-2.1565-2.4091 0-1.356.3877-2.4007 2.123-2.4007zm-4.1484 2.7055c.7439 0 1.1135-.3625 1.1135-1.0949 0-.7322-.3988-1.0798-1.132-1.0798h-1.7285v2.1747zM15.109 8.839c1.0678 0 1.5519.5307 1.5519 1.474 0 .9497-.478 1.527-1.5578 1.527h-1.7348v1.5981h-.4124V8.839zm-2.9253 0v4.5991h-.4122V8.839zm-1.1939 4.5991h-.4296v-2.8134c0-.8086.0084-1.491-1.474-1.491-1.4743 0-1.4405.6824-1.4405 1.5331v2.7713h-.4212v-2.7713c0-1.1288.076-1.9289 1.8616-1.9289 1.7943 0 1.9037.8001 1.9037 1.8952zM2.7466 8.8304h.4297v2.8134c0 .8088-.0084 1.491 1.474 1.491 1.4742 0 1.4405-.6822 1.4405-1.533V8.8303h.4212v2.7713c0 1.1289-.0759 1.929-1.8616 1.929-1.7943 0-1.9038-.8001-1.9038-1.8952zm18.9675 1.8364v2.7713h.421v-2.7713c0-.8507-.0336-1.533 1.4407-1.533.1579 0 .298.0083.4242.023v-.4012a4.8535 4.8535 0 0 0-.4242-.0177c-1.7859 0-1.8617.8001-1.8617 1.929zm-.4315 4.3602c.1525.096.3017.1286.4542.1286.2624 0 .3789-.0737.3789-.2486 0-.18-.1508-.2057-.3789-.2468-.2743-.048-.4594-.0944-.4594-.3514 0-.2453.1577-.3413.4594-.3413.199 0 .3412.0447.4423.1132l-.072.1097c-.0908-.06-.2263-.0995-.3703-.0995-.228 0-.3257.0636-.3257.2144 0 .1612.132.192.3584.233.2776.0499.4782.091.4782.3635 0 .2521-.1612.3737-.5074.3737-.192 0-.3652-.0393-.5263-.1456zm-.7886-.4423l-.2538.2777v.396h-.132v-1.2703h.132v.7012l.643-.7012h.156l-.456.4989.5176.7715h-.1525l-.4543-.6738m-1.1006.0326c.18 0 .2914-.0549.2914-.2555 0-.1971-.108-.2485-.2965-.2485h-.4132v.504zm-.0377.1234h-.3806v.5178h-.132V13.988h.5486c.2948 0 .4286.1183.4286.3703 0 .2194-.1046.348-.3258.377l.3068.523h-.1439l-.3017-.5177m-.924-.1166c0-.3429-.1594-.528-.5058-.528-.3446 0-.5023.1851-.5023.528 0 .3446.1577.5298.5023.5298.3464 0 .5058-.1852.5058-.5298zm-.5058-.6566c.408 0 .6412.2024.6412.655 0 .4542-.2332.6565-.6412.6565-.4063 0-.6377-.2023-.6377-.6566 0-.4525.2314-.6549.6377-.6549zm-2.3571.0206l.3342 1.0508.3412-1.0508h.1166l.3394 1.0508.336-1.0508h.1303l-.408 1.2789h-.1165l-.343-1.0577-.341 1.0577h-.1183l-.4098-1.2789zm-1.392.1286v-.1286h1.0886v.1286h-.4766v1.1418h-.1355v-1.1418zm-.204-.1286v.1286h-.7046v.42h.6874v.127h-.6874v.4713h.7114v.1235h-.8468V13.988zm-2.0539 0l.7596 1.0475V13.988h.1303v1.2704h-.1235l-.7835-1.0784v1.0784h-.1303V13.988Z\"},\"child\":[]}]})(props);\n};\nexport function SiJunit5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.886 9.769c1.647 0 2.95.436 3.912 1.307.961.872 1.442 2.06 1.442 3.566 0 1.744-.548 3.107-1.643 4.09-1.088.977-2.638 1.465-4.65 1.465-1.826 0-3.26-.294-4.303-.883v-2.38a7.89 7.89 0 002.079.793c.782.186 1.509.28 2.18.28 1.184 0 2.086-.265 2.704-.794.619-.53.928-1.304.928-2.325 0-1.952-1.245-2.929-3.733-2.929-.35 0-.783.038-1.297.112-.514.067-.965.145-1.352.235l-1.174-.693.626-7.98H16.1v2.335H9.919l-.37 4.046c.262-.044.578-.096.95-.156.38-.06.843-.09 1.387-.09zM12 0C5.373 0 0 5.373 0 12a11.998 11.998 0 006.65 10.738v-3.675h.138c.01.004 4.86 2.466 8.021 0 3.163-2.468 1.62-5.785 1.08-6.557-.54-.771-3.317-2.083-5.708-1.851-2.391.231-2.391.308-2.391.308l.617-7.096 7.687-.074V.744A12 12 0 0011.999 0zm4.095.744V3.793l-7.688.074-.617 7.096s0-.077 2.391-.308c2.392-.232 5.169 1.08 5.708 1.851.54.772 2.083 4.089-1.08 6.557-3.16 2.467-8.013.004-8.02 0h-.14v3.675A12 12 0 0012 24c6.628 0 12-5.373 12-12A12.007 12.007 0 0016.35.83c-.085-.03-.17-.059-.255-.086zM6.299 22.556z\"},\"child\":[]}]})(props);\n};\nexport function SiJupyter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.157 22.201A1.784 1.799 0 0 1 5.374 24a1.784 1.799 0 0 1-1.784-1.799 1.784 1.799 0 0 1 1.784-1.799 1.784 1.799 0 0 1 1.783 1.799zM20.582 1.427a1.415 1.427 0 0 1-1.415 1.428 1.415 1.427 0 0 1-1.416-1.428A1.415 1.427 0 0 1 19.167 0a1.415 1.427 0 0 1 1.415 1.427zM4.992 3.336A1.047 1.056 0 0 1 3.946 4.39a1.047 1.056 0 0 1-1.047-1.055A1.047 1.056 0 0 1 3.946 2.28a1.047 1.056 0 0 1 1.046 1.056zm7.336 1.517c3.769 0 7.06 1.38 8.768 3.424a9.363 9.363 0 0 0-3.393-4.547 9.238 9.238 0 0 0-5.377-1.728A9.238 9.238 0 0 0 6.95 3.73a9.363 9.363 0 0 0-3.394 4.547c1.713-2.04 5.004-3.424 8.772-3.424zm.001 13.295c-3.768 0-7.06-1.381-8.768-3.425a9.363 9.363 0 0 0 3.394 4.547A9.238 9.238 0 0 0 12.33 21a9.238 9.238 0 0 0 5.377-1.729 9.363 9.363 0 0 0 3.393-4.547c-1.712 2.044-5.003 3.425-8.772 3.425Z\"},\"child\":[]}]})(props);\n};\nexport function SiJusteat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.196.232a1.376 1.376 0 0 1 1.528 0 33.157 33.157 0 0 1 3.384 2.438s.293.203.301-.14a5.367 5.367 0 0 1 .079-1.329.606.606 0 0 1 .562-.39s1.329.066 2.173.179c.377.05.671.352.711.73 0 0 .543 3.62.665 4.925 0 0 .105.664 1.067 1.79 0 0 1.953 2.735 2.18 3.259 0 0 .454.946-.523 1.074 0 0-1.783.18-1.955.22a.446.446 0 0 0-.39.484s-.094 6.296-.555 9.32c0 0-.121 1.2-.782 1.173 0 0-1.833-.059-2.259-.047 0 0-.183 0-.156-.246 0 0 .934-9.817.301-14.78 0 0-.028-.64-.516-.782 0 0-.445-.18-.871.391a15.574 15.574 0 0 0-2.9 8.86s-.05 1.563.188 1.953c0 0 .148.274.907.336l.96.13s.176 0 .16.233c0 0-.218 2.88-.28 3.393a1.018 1.018 0 0 1-.071.34s-.035.098-.336.086c0 0-4.236-.03-4.713 0 0 0-.2 0-.242-.105-.043-.106-.294-3.717-.286-4.229a.255.255 0 0 1 .149-.25 2.548 2.548 0 0 0 1.172-1.871c.052-.548.06-1.098.024-1.646 0 0 .156-5.522.195-6.41 0 0 .031-.3-.36-.355a.364.364 0 0 0-.437.27v.03c0 .032-.274 3.643-.223 5.081 0 0 .094.942-.558.961 0 0-.634.095-.665-.69 0 0 .047-3.542.203-5.292a.39.39 0 0 0-.348-.391.39.39 0 0 0-.437.316.065.065 0 0 0 0 .031s-.274 3.39-.223 5.179c0 0 .078.868-.614.836 0 0-.578.066-.61-.704 0 0 .157-4.85.2-5.224A.39.39 0 0 0 6.647 9h-.039a.391.391 0 0 0-.418.325.167.167 0 0 0 0 .035s-.258 5.8-.223 7.503c0 0-.023 1.751 1.27 2.462 0 0 .192.11.196.277 0 0 .145 3.076.277 4.069 0 0 .047.238-.164.238L4.291 24a.67.67 0 0 1-.665-.633 72.876 72.876 0 0 1-.601-9.829.5.5 0 0 0-.391-.535S.969 12.85.566 12.749a.692.692 0 0 1-.422-1.02A33.497 33.497 0 0 1 11.197.232Z\"},\"child\":[]}]})(props);\n};\nexport function SiJustgiving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.716 9.925H15.33l-4.898 4.919h6.727c-.885 1.975-2.865 3.061-5.16 3.061-3.104 0-5.639-2.67-5.639-5.771C6.36 9.02 8.896 6.42 12 6.42c1.134 0 2.189.295 3.061.871l4.542-4.561C17.541 1.031 14.893 0 12 0 5.37 0 0 5.367 0 12c0 6.623 5.37 12 12 12s12-5.115 12-11.738c0-.896-.103-1.35-.284-2.337z\"},\"child\":[]}]})(props);\n};\nexport function SiK3S (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.46 2.172H2.54A2.548 2.548 0 0 0 0 4.712v14.575a2.548 2.548 0 0 0 2.54 2.54h18.92a2.548 2.548 0 0 0 2.54-2.54V4.713a2.548 2.548 0 0 0-2.54-2.54ZM10.14 16.465 5.524 19.15a1.235 1.235 0 1 1-1.242-2.137L8.9 14.33a1.235 1.235 0 1 1 1.241 2.136zm1.817-4.088h-.006a1.235 1.235 0 0 1-1.23-1.24l.023-5.32a1.236 1.236 0 0 1 1.236-1.23h.005a1.235 1.235 0 0 1 1.23 1.241l-.023 5.32a1.236 1.236 0 0 1-1.235 1.23zm8.17 6.32a1.235 1.235 0 0 1-1.688.453l-4.624-2.67a1.235 1.235 0 1 1 1.235-2.14l4.624 2.67a1.235 1.235 0 0 1 .452 1.688z\"},\"child\":[]}]})(props);\n};\nexport function SiK6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 23.646H0L7.99 6.603l4.813 3.538L19.08.354Zm-8.8-3.681h.052a2.292 2.292 0 0 0 1.593-.64 2.088 2.088 0 0 0 .685-1.576 1.912 1.912 0 0 0-.66-1.511 2.008 2.008 0 0 0-1.37-.59h-.04a.716.716 0 0 0-.199.027l1.267-1.883-1.01-.705-.477.705-1.22 1.864c-.21.31-.386.582-.495.77-.112.2-.21.41-.29.625a1.942 1.942 0 0 0-.138.719 2.086 2.086 0 0 0 .676 1.558c.422.411.989.641 1.578.64Zm-5.365-2.027 1.398 1.978h1.496l-1.645-2.295 1.46-2.029-.97-.671-.427.565-1.314 1.853v-3.725l-1.31-1.068v7.37h1.31v-1.98Zm5.367.792a.963.963 0 1 1 0-1.927h.009a.941.941 0 0 1 .679.29.897.897 0 0 1 .29.668.978.978 0 0 1-.977.967Z\"},\"child\":[]}]})(props);\n};\nexport function SiKaggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.1025 7.3475c-.0681 0-.1022.0341-.1022.102v6.752c0 .0681.034.1022.1022.1022h.7049c.068 0 .1022-.034.1022-.1023v-1.481l.4187-.3985 1.5016 1.91c.041.0477.0884.0716.143.0716h.9091c.0476 0 .0748-.0135.0817-.0407.0135-.041.0066-.075-.0206-.1023l-1.9816-2.4618 1.9002-1.8384c.0204-.0205.0237-.051.01-.092-.0137-.0339-.0408-.051-.0816-.051h-.9398c-.0477 0-.0953.024-.143.0716L.9096 11.607V7.4496c0-.0679-.0342-.102-.1022-.102zm18.0417 0c-.068 0-.102.0341-.102.102v6.752c0 .0681.034.102.102.102h.705c.068 0 .102-.034.102-.102v-6.752c0-.068-.034-.102-.102-.102zM5.961 9.6254c-.5653 0-1.11.1806-1.6343.5415-.0545.0545-.0648.102-.0307.143l.3676.5208c.0272.0477.0717.0545.133.0204.3948-.2722.783-.4086 1.1644-.4086.2927 0 .5158.0886.669.2656.1532.1771.2197.3917.1992.6436-.6606.0681-1.1545.1495-1.4813.245-.8308.2383-1.2461.6913-1.2461 1.3586 0 .4222.1533.7695.4598 1.0419.3132.2654.6845.3982 1.1134.3982.4698 0 .8545-.1125 1.1542-.3372v.1432c0 .0682.0374.102.1123.102h.7048c.068 0 .102-.0338.102-.102V11.372c0-.6604-.2245-1.1406-.6739-1.4403-.3065-.2043-.6776-.3063-1.1134-.3063zm4.3225 0c-.6742 0-1.195.2622-1.5627.7865-.3133.4359-.4699.9671-.4699 1.5936 0 .6604.1634 1.2087.4903 1.6444.3744.4972.892.7455 1.5526.7455.5313 0 .9567-.1327 1.2768-.3982v.531c0 .858-.4122 1.287-1.236 1.287-.361 0-.732-.1907-1.1132-.572a.098.098 0 00-.0716-.0306c-.034 0-.0613.0102-.0817.0307l-.4802.48c-.0408.0613-.0375.1124.0103.1532.1361.1157.2554.2129.3576.2911.102.0783.1905.1413.2656.189.354.1975.7284.2961 1.1235.2961.6808 0 1.207-.1925 1.5781-.577.3711-.3848.5567-.9484.5567-1.6903V9.8196c0-.068-.034-.102-.102-.102h-.705c-.0682 0-.1021.034-.1021.102v.2043c-.3471-.2657-.7763-.3985-1.287-.3985zm4.8021 0c-.6742 0-1.195.2622-1.5627.7865-.3132.4359-.4699.9671-.4699 1.5936 0 .6604.1633 1.2087.4903 1.6444.3744.4972.892.7455 1.5526.7455.5311 0 .9566-.1327 1.2768-.3982v.531c0 .858-.4122 1.287-1.236 1.287-.361 0-.732-.1907-1.1133-.572a.098.098 0 00-.0716-.0306c-.034 0-.0612.0102-.0816.0307l-.48.48c-.0409.0613-.0376.1124.01.1532.1363.1157.2555.2129.3576.2911.1021.0783.1906.1413.2657.189.354.1975.7285.2961 1.1237.2961.6808 0 1.2068-.1925 1.5781-.577.371-.3848.5565-.9484.5565-1.6903V9.8196c0-.068-.034-.102-.102-.102h-.7049c-.0682 0-.1022.034-.1022.102v.2043c-.3474-.2657-.7763-.3985-1.287-.3985zm6.7457 0c-.6537 0-1.185.211-1.5936.6332-.4427.4632-.664 1.0283-.664 1.6956 0 .7083.225 1.2905.6743 1.7467.463.463 1.042.6945 1.7366.6945.6467 0 1.2154-.1838 1.7057-.5515.0545-.041.0545-.0884 0-.143l-.4802-.4903c-.041-.0409-.0919-.0409-.1533 0-.2998.2112-.6368.3167-1.0112.3167-.4222 0-.7729-.119-1.052-.3576-.2452-.2248-.3882-.5038-.429-.8375h3.3197c.0679 0 .1022-.0341.1022-.1023l.01-.2244c.0341-.6878-.1668-1.26-.6025-1.7162-.4224-.4426-.9432-.664-1.5627-.664zm-.0206.7865c.3268 0 .6062.1056.8377.3166.2452.211.371.4734.378.7865h-2.4618c.0613-.3269.2077-.5925.4392-.7968.2313-.2042.5004-.3063.8069-.3063zm-11.4249.102c.6196 0 1.0146.2181 1.1848.6538v1.6854c-.1702.4358-.5755.6538-1.2155.6538-.3133 0-.5687-.0986-.7661-.2963-.2656-.2518-.3983-.6538-.3983-1.2053 0-.9941.3984-1.4914 1.1951-1.4914zm4.802 0c.6196 0 1.0148.2181 1.1851.6538h-.0002v1.6854c-.1703.4358-.5755.6538-1.2155.6538-.3132 0-.5686-.0986-.7661-.2963-.2655-.2518-.3983-.6538-.3983-1.2053 0-.9941.3983-1.4914 1.195-1.4914zm-8.3586 1.6547v1.0215c-.286.286-.6675.412-1.1441.3779-.1703-.0135-.32-.0663-.4493-.1582-.1294-.0919-.2045-.2129-.2249-.3627-.0341-.2657.1158-.47.4495-.6129.2452-.1088.7013-.1974 1.3688-.2656z\"},\"child\":[]}]})(props);\n};\nexport function SiKagi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.4829 18.392h-5.109c-1.3827 0-1.6231-1.5076-1.3827-2.1106.1203-.3015.4208-.7236.6612-1.0251.9618.5427 2.1039.8442 3.306.8442 3.847 0 6.9126-3.1357 6.9126-6.9347 0-2.0502-.9016-3.8593-2.2843-5.186l.1805-.1808c.3605-.3618.9016-.603 1.4426-.5427l.8414.0603V0h-1.4425c-1.683 0-3.0656 1.0251-3.6667 2.4724-.6011-.181-1.2622-.3016-1.9234-.3016-3.847 0-6.9126 3.1357-6.9126 6.9347 0 1.5076.481 2.9548 1.3225 4.1005-.1203.1206-.3005.2412-.4208.3015l-.1803.181c-1.3826 1.3266-2.0436 3.015-1.6832 4.9448.1805 1.025 1.0821 2.1105 1.9838 2.7134.601.4222 1.3824.6031 2.1637.6031l5.7706-.2413c.6612 0 1.2623.3015 1.6228.9046L16.4065 24l3.5464-1.206-.6011-1.3268c-.9016-1.8692-2.765-3.0752-4.869-3.0752M12.0186 5.8493c1.8033 0 3.306 1.5075 3.306 3.3165s-1.5027 3.3166-3.306 3.3166-3.306-1.5075-3.306-3.3166c0-1.8693 1.4426-3.3166 3.306-3.3166\"},\"child\":[]}]})(props);\n};\nexport function SiKahoot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.557 18.87l2.747-17.513L16.174 0zM.696 2.348v19.078l4.035.14-.035-6.679 2.487-2.4 2.626 9.078h3.565L10.087 9.722l4.957-5.444-3.496-1.339L4.73 9.443V1.322zm18.295 17.86l-.99 2.331L20.12 24l2.088-1.235-.887-2.556Z\"},\"child\":[]}]})(props);\n};\nexport function SiKaios (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.3419.0001a3.6735 3.6735 0 0 0-3.647 3.6735 3.6727 3.6727 0 0 0 3.6735 3.6734 3.6735 3.6735 0 1 0-.0265-7.3469zM4.6233.16a2.7459 2.7459 0 0 0-2.7475 2.7473v18.167a2.7474 2.7474 0 1 0 5.4942 0V2.9071A2.749 2.749 0 0 0 4.6233.16zm6.9494 7.2078a2.729 2.729 0 0 0-2.237 4.2947l7.8107 11.1541a2.729 2.729 0 1 0 4.4706-3.1307L13.8062 8.5311a2.729 2.729 0 0 0-2.2335-1.1634z\"},\"child\":[]}]})(props);\n};\nexport function SiKakao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.0743 10.4403l.655.4728-1.6101 2.0192 1.8647 2.2373-.646.5004-2.201-2.6924zm-2.2376 5.102H0V8.5121l.8367-.182zm20.944-4.3837c-.4364 0-.7715.1637-1.0049.4912-.2338.3274-.3505.8064-.3505 1.437 0 .6247.1167 1.096.3505 1.4143.2334.3183.5685.4775 1.0049.4775.4423 0 .7804-.1593 1.0143-.4775.2332-.3182.35-.7896.35-1.4142 0-.6307-.1168-1.1097-.35-1.4371-.234-.3275-.572-.4912-1.0143-.4912m0-.673c.691 0 1.234.2245 1.6277.673.3944.4488.5916 1.0915.5916 1.9283 0 .8244-.1955 1.4583-.5868 1.901-.3909.4422-.9356.6637-1.6325.6637-.691 0-1.234-.2215-1.6277-.6638-.3944-.4426-.5916-1.0765-.5916-1.901 0-.8367.1984-1.4794.5957-1.9282.3973-.4485.9385-.673 1.6236-.673m-5.534 4.4658a1.496 1.496 0 0 0 .3576-.0456 2.8804 2.8804 0 0 0 .3713-.1181 2.0066 2.0066 0 0 0 .3488-.1774 2.0778 2.0778 0 0 0 .2895-.2229v-1.1641h-.8693c-.441 0-.7626.0758-.9645.2274-.2025.1516-.3031.391-.3031.7185 0 .5214.2563.7822.7697.7822m-1.5704-.7458c0-.5032.1682-.887.5045-1.1504.337-.2638.826-.396 1.4691-.396h.964v-.3182c0-.77-.3393-1.155-1.0185-1.155-.2184 0-.447.0304-.6869.091-.2398.0608-.4594.1365-.659.2274l-.2457-.5913c.2487-.1394.517-.2469.8047-.323.2878-.0754.5685-.1136.8414-.1136 1.176 0 1.7646.6276 1.7646 1.8826v3.1833h-.6188l-.1-.5457c-.2488.2001-.5134.3547-.796.464-.2817.1092-.55.1637-.8046.1637-.4429 0-.7899-.1258-1.0416-.3775-.2515-.2517-.3772-.5987-.3772-1.0413m-1.6508-3.7653l.655.4728-1.6095 2.0192 1.864 2.2373-.6454.5004-2.201-2.6924zm-2.237 5.102h-.8367V8.5121l.8368-.182zm-4.4936-.5909c.1148 0 .2339-.0151.3576-.0456a2.8794 2.8794 0 0 0 .3713-.1181 1.9842 1.9842 0 0 0 .3488-.1774 2.0477 2.0477 0 0 0 .29-.2229v-1.1641h-.8698c-.4404 0-.762.0758-.9645.2274-.202.1516-.3031.391-.3031.7185 0 .5214.2563.7822.7697.7822m-1.5704-.7458c0-.5032.1682-.887.5052-1.1504.3363-.2638.826-.396 1.4684-.396h.9646v-.3182c0-.77-.3399-1.155-1.019-1.155-.218 0-.4471.0304-.6863.091-.2398.0608-.4595.1365-.6597.2274l-.2457-.5913c.2487-.1394.517-.2469.8053-.323.2878-.0754.5684-.1136.8408-.1136 1.1766 0 1.7646.6276 1.7646 1.8826v3.1833h-.6182l-.1001-.5457c-.2487.2001-.514.3547-.7958.464-.282.1092-.5501.1637-.8053.1637-.4423 0-.7893-.1258-1.041-.3775-.2516-.2517-.3778-.5987-.3778-1.0413Z\"},\"child\":[]}]})(props);\n};\nexport function SiKakaotalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.125 0H1.875C.8394 0 0 .8394 0 1.875v20.25C0 23.1606.8394 24 1.875 24h20.25C23.1606 24 24 23.1606 24 22.125V1.875C24 .8394 23.1606 0 22.125 0zM12 18.75c-.591 0-1.1697-.0413-1.7317-.1209-.5626.3965-3.813 2.6797-4.1198 2.7225 0 0-.1258.0489-.2328-.0141s-.0876-.2282-.0876-.2282c.0322-.2198.8426-3.0183.992-3.5333-2.7452-1.36-4.5701-3.7686-4.5701-6.5135C2.25 6.8168 6.6152 3.375 12 3.375s9.75 3.4418 9.75 7.6875c0 4.2457-4.3652 7.6875-9.75 7.6875zM8.0496 9.8672h-.8777v3.3417c0 .2963-.2523.5372-.5625.5372s-.5625-.2409-.5625-.5372V9.8672h-.8777c-.3044 0-.552-.2471-.552-.5508s.2477-.5508.552-.5508h2.8804c.3044 0 .552.2471.552.5508s-.2477.5508-.552.5508zm10.9879 2.9566a.558.558 0 0 1 .108.4167.5588.5588 0 0 1-.2183.371.5572.5572 0 0 1-.3383.1135.558.558 0 0 1-.4493-.2236l-1.3192-1.7479-.1952.1952v1.2273a.5635.5635 0 0 1-.5627.5628.563.563 0 0 1-.5625-.5625V9.3281c0-.3102.2523-.5625.5625-.5625s.5625.2523.5625.5625v1.209l1.5694-1.5694c.0807-.0807.1916-.1252.312-.1252.1404 0 .2814.0606.3871.1661.0985.0984.1573.2251.1654.3566.0082.1327-.036.2542-.1241.3425l-1.2818 1.2817 1.3845 1.8344zm-8.3502-3.5023c-.095-.2699-.3829-.5475-.7503-.5557-.3663.0083-.6542.2858-.749.5551l-1.3455 3.5415c-.1708.5305-.0217.7272.1333.7988a.8568.8568 0 0 0 .3576.0776c.2346 0 .4139-.0952.4678-.2481l.2787-.7297 1.7152.0001.2785.7292c.0541.1532.2335.2484.4681.2484a.8601.8601 0 0 0 .3576-.0775c.1551-.0713.3041-.2681.1329-.7999l-1.3449-3.5398zm-1.3116 2.4433l.5618-1.5961.5618 1.5961H9.3757zm5.9056 1.3836c0 .2843-.2418.5156-.5391.5156h-1.8047c-.2973 0-.5391-.2314-.5391-.5156V9.3281c0-.3102.2576-.5625.5742-.5625s.5742.2523.5742.5625v3.3047h1.1953c.2974 0 .5392.2314.5392.5156z\"},\"child\":[]}]})(props);\n};\nexport function SiKalilinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.778 5.943s-1.97-.13-5.327.92c-3.42 1.07-5.36 2.587-5.36 2.587s5.098-2.847 10.852-3.008zm7.351 3.095l.257-.017s-1.468-1.78-4.278-2.648c1.58.642 2.954 1.493 4.021 2.665zm.42.74c.039-.068.166.217.263.337.004.024.01.039-.045.027-.005-.025-.013-.032-.013-.032s-.135-.08-.177-.137c-.041-.057-.049-.157-.028-.195zm3.448 8.479s.312-3.578-5.31-4.403a18.277 18.277 0 0 0-2.524-.187c-4.506.06-4.67-5.197-1.275-5.462 1.407-.116 3.087.643 4.73 1.408-.007.204.002.385.136.552.134.168.648.35.813.445.164.094.691.43 1.014.85.07-.131.654-.512.654-.512s-.14.003-.465-.119c-.326-.122-.713-.49-.722-.511-.01-.022-.015-.055.06-.07.059-.049-.072-.207-.13-.265-.058-.058-.445-.716-.454-.73-.009-.016-.012-.031-.04-.05-.085-.027-.46.04-.46.04s-.575-.283-.774-.893c.003.107-.099.224 0 .469-.3-.127-.558-.344-.762-.88-.12.305 0 .499 0 .499s-.707-.198-.82-.85c-.124.293 0 .469 0 .469s-1.153-.602-3.069-.61c-1.283-.118-1.55-2.374-1.43-2.754 0 0-1.85-.975-5.493-1.406-3.642-.43-6.628-.065-6.628-.065s6.45-.31 11.617 1.783c.176.785.704 2.094.989 2.723-.815.563-1.733 1.092-1.876 2.97-.143 1.878 1.472 3.53 3.474 3.58 1.9.102 3.214.116 4.806.942 1.52.84 2.766 3.4 2.89 5.703.132-1.709-.509-5.383-3.5-6.498 4.181.732 4.549 3.832 4.549 3.832zM12.68 5.663l-.15-.485s-2.484-.441-5.822-.204C3.37 5.211 0 6.38 0 6.38s6.896-1.735 12.68-.717Z\"},\"child\":[]}]})(props);\n};\nexport function SiKamailio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.647 13.643 1.113-2.62m-3.277.747 1.366-1.413H2.14L.577 12.009v-1.652H0v3.286h.577v-.953l.512-.526 1.122 1.479h.7L1.482 11.77zm11.06-.746.567 1.314h-.793l-.217.511h1.221l.334.794h.61l-1.446-3.31h-.535l-1.446 3.31h.592c.373-.88.736-1.741 1.112-2.62zm-7.783 0 .568 1.314h-.794l-.217.511H5.54l.333.794h.61l-1.445-3.31H4.5l-1.445 3.31h.591M24 11.995a1.718 1.718 0 0 0-.479-1.197 1.652 1.652 0 0 0-.54-.364 1.757 1.757 0 0 0-.694-.133 1.717 1.717 0 0 0-1.24.505 1.65 1.65 0 0 0-.356.541 1.719 1.719 0 0 0-.127.658 1.719 1.719 0 0 0 .479 1.196c.15.154.33.275.54.364.21.09.44.134.694.134a1.717 1.717 0 0 0 1.24-.505 1.65 1.65 0 0 0 .356-.542c.085-.206.127-.425.127-.657zm-.606.01c0 .16-.027.31-.082.453-.054.142-.13.265-.227.37a1.063 1.063 0 0 1-.798.34 1.076 1.076 0 0 1-.805-.347 1.151 1.151 0 0 1-.23-.373 1.25 1.25 0 0 1-.082-.453c0-.16.027-.31.082-.453.054-.142.13-.266.227-.37a1.063 1.063 0 0 1 .798-.34 1.075 1.075 0 0 1 .805.346c.099.107.176.231.23.374.055.142.082.293.082.453zm-4.14-1.648v3.286h.578v-3.286h-.578zm-2.938 3.286h2.305v-.526h-1.728v-2.76h-.577v3.286zm-1.455-3.286v3.286h.577v-3.286h-.577zm-5.163.93v2.356h.577v-3.286H9.66l-1 1.554-1-1.554h-.614v3.286h.568v-2.347l1.028 1.54h.018l1.038-1.55zm-.499-1.74c3.162-1.018 6.03-1.59 8.606-1.717 1.125-.056 2.34-.077 3.452.12.397.07.782.18 1.137.356.283.14.507.31.671.51.222-.77.045-1.333-.53-1.688-.54-.334-1.272-.413-1.889-.464-2.726-.224-6.542.737-11.447 2.882zm5.637 5.235c-3.192.918-6.077 1.4-8.656 1.447-1.126.02-2.341.003-3.446-.228a4.19 4.19 0 0 1-1.125-.391 2.014 2.014 0 0 1-.655-.53c-.246.763-.086 1.33.477 1.703.53.35 1.26.452 1.874.522 2.718.31 6.562-.532 11.53-2.523z\"},\"child\":[]}]})(props);\n};\nexport function SiKaniko (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.783 0h18.434c1.352 0 2.478.963 2.73 2.24a17.127 17.127 0 0 1-3.2 4.42 16.918 16.918 0 0 1-8.399 4.605V3.304h-.696V11.4c-.976.169-1.965.253-2.956.252v.696c1.011 0 1.998.086 2.956.252v8.096h.696v-7.961a16.918 16.918 0 0 1 8.399 4.605 17.127 17.127 0 0 1 3.2 4.42 2.783 2.783 0 0 1-2.73 2.24H2.783A2.783 2.783 0 0 1 0 21.217V2.783A2.783 2.783 0 0 1 2.783 0Zm18.456 7.152A17.712 17.712 0 0 0 24 3.572v16.856a17.712 17.712 0 0 0-2.761-3.58 17.802 17.802 0 0 0-8.891-4.815v-.066a17.802 17.802 0 0 0 8.891-4.815Z\"},\"child\":[]}]})(props);\n};\nexport function SiKarlsruherverkehrsverbund (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.91 6.089c-2.491 2.4-6.153 4.238-11.265 4.3l-.397 1.745h22.316L24 10.388H9.309c2.984-1.01 4.688-2.676 6.56-4.3zm10.45 6.721c-5.723.013-8.441 2.712-10.095 5.101h2.49c2.6-3.296 5.827-3.428 7.196-3.442zm-22.307.475L0 17.887h1.236l.488-2.173 1.097 2.173H4.27l-1.34-2.368 2.23-2.234H3.575l-1.723 1.869.436-1.87zm4.237 0l.509 4.602h1.517l2.63-4.602h-1.32l-1.852 3.463-.265-3.463zm4.89 0l.503 4.602h1.54l2.62-4.602h-1.32l-1.852 3.463-.268-3.463Z\"},\"child\":[]}]})(props);\n};\nexport function SiKasasmart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.5 0-1 .25-1.5.75L7.97 3.28l8.83 8.83c1 1 1.5 2 1.5 3V24h3.3c1.6 0 2.4-.8 2.4-2.4v-8.85c0-1-.5-2-1.5-3l-9-9C13 .25 12.5 0 12 0zM6.9 4.34L2.89 8.37 9.6 15.1c1 1 1.5 2 1.5 3V24h5.7v-8.89c-.03-.83-.6-1.46-1.06-1.94L6.91 4.34zm-5.08 5.1l-.32.31c-1 1-1.5 2-1.5 3v8.85C0 23.2.8 24 2.4 24h7.2v-5.9c-.03-.8-.56-1.42-1.06-1.95Z\"},\"child\":[]}]})(props);\n};\nexport function SiKashflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.278 2.141l-.83 2.702C8.007.174 2.958 4.724 2.958 4.724-1.638 8.564.49 14.678.495 14.678 1.252-.016 14.24 8.943 14.24 8.943c-.237 1.066-.996 2.63-.972 2.654l8.508-1.256zm7.228 7.181C22.747 24.016 9.76 15.057 9.76 15.057c.332-1.066 1.02-2.654 1.02-2.607L2.27 13.66l5.451 8.2.83-2.702c7.441 4.669 12.49.119 12.49.119 4.597-3.84 2.464-9.954 2.464-9.954z\"},\"child\":[]}]})(props);\n};\nexport function SiKaspersky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.812 12.014c0 .91-.555 1.34-1.25 1.34h-.424v-.546h.392c.419 0 .698-.226.698-.794 0-.563-.264-.844-.71-.844-.43 0-.738.265-.738.833v2.282H8.2v-3.589h.58v.309h.082a.94.94 0 0 1 .776-.375c.64 0 1.174.463 1.174 1.384zm-3.804-.237l-.386-.039c-.304-.027-.464-.11-.464-.287 0-.21.204-.33.497-.33.303 0 .496.143.512.347h.557c-.022-.518-.424-.838-1.064-.838-.645 0-1.08.342-1.08.843 0 .42.264.69.865.75l.392.039c.237.022.397.072.397.298 0 .204-.15.352-.54.352-.361 0-.539-.163-.601-.382H5.49c.06.5.481.89 1.203.89.678 0 1.12-.359 1.12-.888 0-.469-.31-.706-.805-.755zm6.047.753c-.091.208-.308.366-.616.366-.425 0-.739-.276-.739-.871 0-.568.292-.882.744-.882.403 0 .634.242.657.606h-1.043v.42h1.61v-.277c0-.766-.507-1.262-1.23-1.262-.672 0-1.317.457-1.317 1.395 0 .937.645 1.395 1.318 1.395.615 0 1.054-.38 1.19-.89zm-9.127-1.9c-.634 0-1.108.33-1.163.838h.623c.044-.188.215-.325.54-.325.42 0 .557.22.557.49v.91c-.237.27-.513.397-.788.397-.287 0-.486-.138-.486-.386 0-.237.155-.386.452-.386h.464v-.419h-.48c-.662 0-1.031.331-1.031.838 0 .474.358.833.948.833.331 0 .623-.133.838-.292h.083v.226h.579v-1.776c0-.656-.447-.948-1.136-.948zM0 13.354h.579v-3.64H0zm2.432-2.658h-.706l-.844 1.108v.348l.866 1.202h.717L1.45 11.975zm20.928 0l-.474 1.053c-.116.254-.226.502-.259.667h-.083c-.033-.165-.148-.408-.264-.661l-.474-1.059h-.64l1.114 2.387-.552 1.202h.618L24 10.696zm-2.322 0h-.706l-.843 1.108v.348l.865 1.202h.717l-1.015-1.379zm-3.625 1.08l-.386-.038c-.303-.027-.463-.11-.463-.287 0-.21.204-.33.496-.33.303 0 .496.143.513.347h.557c-.022-.518-.425-.838-1.064-.838-.645 0-1.081.342-1.081.843 0 .42.265.69.866.75l.391.039c.237.022.397.072.397.298 0 .204-.149.352-.54.352-.36 0-.538-.163-.6-.382h-.603c.06.5.481.89 1.203.89.678 0 1.12-.359 1.12-.888 0-.469-.31-.706-.806-.755zm1.193 1.578h.58v-3.64h-.58zm-3.817-2.35h-.083v-.308h-.579v2.658h.579v-1.39c0-.474.219-.75.65-.75h.367v-.584h-.212c-.4 0-.57.15-.722.375z\"},\"child\":[]}]})(props);\n};\nexport function SiKatacoda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.248 3.623a.926.926 0 00-.228.014c-.192.085-.35.463-.457 1.1-.186 1.094-.18 2.53.017 3.597l.05.262-.208-.182c-.23-.202-.622-.476-.807-.56a1.652 1.652 0 00-.957-.112 5.65 5.65 0 01-.363.055c-.34.04-.573.155-.834.414a1.71 1.71 0 00-.41.637c-.05.139-.057.189-.057.42.002.21.013.302.06.478.073.27.316.882.364.91.08.05.139.002.232-.2.105-.223.293-.444.43-.505.092-.043.24-.054.26-.021.015.024-.2.345-.436.654-.198.26-.258.385-.293.61-.078.51.19 1.074.612 1.279.254.124.383.146.795.146.37-.002.368-.001.619-.082a6.92 6.92 0 01.465-.135l.212-.05.018.046c.022.057.004.107-.111.32-.211.384-.243.425-.426.518-.44.229-1.054.33-1.361.225a3.43 3.43 0 00-.413-.09c-1.116-.174-1.183-.192-1.337-.334-.177-.163-.33-.504-.465-1.05-.046-.18-.09-.31-.096-.292l-.12.412c-.27.954-.315 1.05-.663 1.413a5.74 5.74 0 00-.303.33c-.041.058-.05.163-.016.185a.583.583 0 01.08.106c.072.12.606.643.815.802.253.194.393.269.807.432.722.285.896.318 1.978.38.396.025.736-.041.93-.183.046-.032.15-.083.234-.111.085-.026.234-.082.334-.121.098-.041.187-.074.196-.074.01 0 .05.149.09.33.04.183.08.346.089.36.007.016.026-.16.04-.39.025-.415.026-.42.085-.47l.059-.05.015.06c.01.034.032.13.05.214.049.203.146.44.24.59.084.129.359.472.373.46a5.202 5.202 0 00-.02-.36c-.015-.242-.017-.36-.002-.375.015-.015.059.036.133.158.527.86 1.424 1.722 2.387 2.295.95.566 2.434 1.126 3.845 1.453.333.076.91.188.973.188.02 0 .108.045.2.1.663.406 1.502.617 2.097.532.496-.071 1.106-.374 1.404-.7a.56.56 0 01.258-.161 6.48 6.48 0 001.068-.55c.44-.292.74-.58.96-.923a2.65 2.65 0 01.298-.347 5.15 5.15 0 001.12-1.73c.104-.273.218-.724.259-1.04a6.343 6.343 0 00-.023-1.365l-.038-.205.334-.318c1.226-1.174 1.973-2.355 2.237-3.541.093-.42.1-.884.013-1.051-.074-.144-.18-.123-.78.158-.86.405-1.337.55-1.98.607-.26.022-.694.003-.833-.04a.559.559 0 01-.14-.145c-.277-.381-.82-.934-1.243-1.278-.47-.376-1.142-.771-1.64-.96l-.19-.07.13-.073c.214-.12.628-.29.817-.334.098-.022.356-.067.578-.102l.404-.058-.49-.072c-1.012-.146-1.714-.207-2.443-.211-.274 0-.496-.006-.496-.01 0-.005.047-.063.103-.133.238-.283.408-.622.47-.937.016-.09.037-.286.046-.436l.016-.273-.163.218a2.495 2.495 0 01-.832.737c-.402.233-.77.335-1.502.418-1.56.174-2.654.333-3.144.457l-.205.052-.1-.07a19.734 19.734 0 01-.297-.21 9.984 9.984 0 00-1.96-1.143 7.619 7.619 0 01-1.032-.565c-.45-.28-.56-.325-.785-.334zm-.084.242c.02-.007.043-.004.08.002.044.007.136.037.2.063.067.026.265.137.439.246.464.29.716.427 1.12.607a9.07 9.07 0 011.642.938c.648.453.847.64 1.308 1.24.187.244.49.576.524.576.02 0-.15-.336-.344-.674a4.52 4.52 0 00-.404-.593c-.096-.116-.106-.106.156-.16l.158-.032.174.162c.093.09.253.216.35.282.195.128.35.28.488.47.122.168.15.225.27.58.119.344.157.434.198.45.08.026.13-.057.176-.29.096-.48.066-.75-.158-1.388a10.419 10.419 0 01-.152-.453c0-.018.907-.143 1.025-.141.024 0 .043.034.063.104.045.187.108.3.326.595.222.3.386.596.445.805.02.065.065.3.102.52.085.513.187.919.298 1.167.122.28.156.433.166.784.014.41.07.594.18.572.079-.015.205-.51.244-.97.048-.54.075-1.59.05-1.938-.034-.451-.034-1.217 0-1.237.014-.008.207-.02.429-.027l.408-.01.092.106c.135.157.178.259.178.42 0 .17.1.568.226.91.25.675.405 1.238.453 1.652a.95.95 0 01-.021.436c-.09.394-.121.66-.123 1.064-.003.418.017.537.097.58.166.087.363-.218.41-.642.01-.098.095-.473.186-.832.105-.427.173-.758.197-.948.029-.235.12-.85.205-1.353l.014-.084.26.176c.392.26.375.24.449.502.09.317.163.617.23.937.055.268.057.29.06 1.219 0 .84.005.955.038 1.027.026.057.052.082.084.082.072 0 .228-.163.313-.326.109-.205.139-.3.154-.473.017-.19.04-.314.133-.691.054-.218.08-.382.092-.578l.015-.272.098.13c.205.267.163.24.453.273.366.039.968.02 1.275-.041.497-.1.988-.276 1.623-.58.21-.1.39-.184.4-.184.014 0 .017.11.009.299-.033.81-.47 1.832-1.166 2.726-.436.562-1.25 1.407-1.274 1.325-.004-.016-.051-.144-.101-.284-.114-.317-.505-1.108-.536-1.08-.004.005.04.168.1.364.06.196.115.378.12.404.004.024.017.088.032.14.013.05.02.1.016.104-.024.024-.534.14-.832.19-.87.148-1.734.13-2.48-.045-.728-.17-1.364-.46-2.686-1.217-1.6-.92-2.058-1.113-2.97-1.252-.255-.04-.41-.05-.866-.05-.832-.003-1.47.084-2.71.362-.904.2-1.416.256-1.673.182-.117-.035-.131-.046-.22-.186-.053-.08-.115-.151-.14-.158-.034-.01-.055-.07-.12-.345-.113-.482-.11-.45-.078-.413.03.04.035.077-.098-.457a12.082 12.082 0 01-.322-1.742c-.035-.352-.035-1.596 0-1.97.082-.85.22-1.434.377-1.602.028-.03.046-.048.066-.055zm.37.973c.005.012.033.045.085.107.065.079.435.46.824.848.388.388.76.78.83.875.484.653.858 1.708.707 1.998-.093.183-.287.23-.47.113-.118-.074-.282-.284-.375-.482a2.926 2.926 0 01-.145-.424c-.041-.154-.075-.27-.08-.258l-.072.407c-.072.43-.103.882-.072 1.054.028.148.007.18-.063.098-.041-.05-.065-.12-.094-.281a31.518 31.518 0 00-.088-.463c-.056-.292-.05-.303-.11.304a6.308 6.308 0 01-.054.457c-.045.21-.196.39-.32.39-.1 0-.224-.07-.267-.15l-.045-.077.015.076c.02.106.124.332.172.37.057.047.245.038.35-.017a.573.573 0 00.25-.261c.037-.072.055-.09.084-.08.02.01.09.022.158.027.113.006.13.002.195-.057l.074-.066-.007-.338c-.005-.23 0-.34.015-.34.013 0 .024.009.024.018 0 .047.255.293.357.345A.632.632 0 009.049 9c.265-.194.293-.606.082-1.244a5.835 5.835 0 00-.553-1.123c-.276-.414-.89-.98-1.654-1.522-.15-.106-.308-.221-.35-.252-.034-.025-.047-.033-.04-.021zm9.333.12a.322.322 0 01-.035.105c-.057.124-.213.37-.31.476l-.071.084-.117-.115a.807.807 0 01-.115-.13c0-.008.084-.063.19-.124s.25-.155.32-.21a.666.666 0 01.138-.087zM3.734 7.942a1.83 1.83 0 01.512.016c.078.017.195.054.26.084.117.052.482.28.545.344.017.017.092.078.164.135.14.113.338.33.445.486.083.117.184.466.164.566-.015.092-.148.237-.38.42-.273.216-.35.333-.35.533 0 .185.108.447.27.664.056.072.056.078.019.118-.03.034-.056.04-.143.029-.146-.02-.34-.096-.404-.154-.046-.046-.054-.074-.065-.31l-.01-.257-.085.174c-.103.21-.112.373-.031.49.054.08.228.185.38.23l.102.032-.174-.012a.848.848 0 01-.574-.27c-.157-.156-.207-.258-.19-.378.02-.12.204-.468.352-.668.068-.09.137-.192.154-.227l.034-.066-.084.07a1.564 1.564 0 00-.163.153l-.193.222c-.324.368-.386.558-.26.809.124.242.508.516.772.55.218.029.228.034.228.09 0 .09.062.18.164.24.103.06.124.094.06.1a.35.35 0 00-.136.034 4.588 4.588 0 01-1.07.26c-.74.047-1.295-.446-1.254-1.114.013-.23.07-.36.283-.64.42-.552.795-1.207.93-1.628.144-.452.044-.782-.31-1.021-.118-.08-.123-.07.038-.104zm-.638.137c.043 0 .132.01.195.024.23.05.44.197.508.363.059.137.049.15-.086.14a.291.291 0 00-.217.047.937.937 0 00-.262.27c-.008.015.042 0 .112-.033.167-.077.375-.084.445-.012.068.067.047.142-.145.527l-.16.328-.072-.017a1.4 1.4 0 00-.215-.012.462.462 0 00-.26.065 1.35 1.35 0 00-.398.402.317.317 0 01-.06.086c-.024 0-.186-.47-.23-.664-.077-.353-.037-.652.138-.946.167-.283.52-.566.707-.568zM5.91 9.887c.033-.024.048.036.143.342l.09.285-.096.097a.573.573 0 00-.168.41v.104l-.125.02-.125.017-.086-.11c-.118-.154-.216-.368-.227-.503-.008-.105-.004-.116.075-.203.048-.053.158-.152.248-.22.089-.07.19-.155.228-.192.02-.021.032-.04.043-.047zm4.627.648a9.87 9.87 0 011.11.008c.139.013.37.046.519.074.703.137 1.175.348 2.564 1.143 2.014 1.154 2.807 1.424 4.19 1.424a6.56 6.56 0 001.816-.23c.13-.034.238-.06.24-.057.04.047.172.633.212.93.034.26.034.87 0 1.1a4.606 4.606 0 01-.213.827c-.244.64-.68 1.318-1.133 1.76l-.131.129-.172-.07-.232-.092c-.035-.014-.06-.041-.06-.061 0-.028-.003-.028-.022 0-.018.026-.022.028-.022.004 0-.015-.045-.071-.1-.12a3.952 3.952 0 01-.32-.36c-.268-.332-.493-.57-.693-.733-.124-.1-.157-.142-.194-.244a3.936 3.936 0 01-.17-.62l-.02-.122.167.082c.09.045.263.122.383.17.723.29 1.193.353 1.502.203.278-.135.647-.7.834-1.274l.066-.197.125-.027c.072-.016.17-.035.223-.041.05-.007.097-.02.1-.032.017-.024-.256-.185-.446-.261-.405-.166-.904-.231-1.281-.172-.246.04-.578.18-.807.334-.315.213-.654.644-.806 1.025l-.06.147-.017-.178a4.05 4.05 0 01.053-.89c.02-.12.03-.214.022-.21-.022.016-.144.353-.192.534a2.74 2.74 0 00-.013 1.378l.017.063-.084-.043c-.215-.107-.514-.186-.888-.234a1.979 1.979 0 00-.555-.01 3.761 3.761 0 00-.502.086c-.126.035-.347.092-.488.129a7.273 7.273 0 01-1.891.242c-.958-.002-1.504-.107-2.15-.416-.934-.45-1.9-1.24-3.018-2.48a22.018 22.018 0 00-1.344-1.327c-.305-.272-.4-.402-.476-.635-.053-.165-.045-.27.03-.36l.052-.056.056.086c.105.157.35.246.684.246.31 0 .725-.07 1.728-.293a13.633 13.633 0 011.48-.25l.327-.03zm-4.69.79c.048.004.082.019.096.046.02.033.017.1-.011.272-.035.213-.035.23 0 .308l.035.084-.092.196a6.64 6.64 0 00-.133.289l-.037.097-.055-.05c-.098-.092-.142-.216-.142-.397 0-.155-.005-.17-.057-.211-.032-.026-.07-.047-.084-.047a.202.202 0 01-.086-.045l-.056-.047.046-.082c.07-.124.305-.346.403-.38a.455.455 0 01.174-.032zm5.278.308c-.14 0-.28.01-.38.03-.262.053-.542.16-.974.372-.346.172-.615.328-.722.424-.011.009.053-.002.14-.023.09-.022.303-.062.477-.088.174-.024.342-.048.375-.055.05-.01.077.016.242.236.403.538.916 1.135 1.297 1.514.277.274.443.402.559.424.037.006.166.033.293.056.862.17 1.6.223 1.834.13.228-.088.66-.407 1.05-.766.12-.111.278-.25.35-.31.09-.071.113-.1.076-.09-.13.038-.314.06-.6.074-.337.015-.597-.013-.785-.082-.167-.064-.228-.112-.87-.696a9.217 9.217 0 00-.714-.607c-.22-.161-.54-.318-.69-.34a2.139 2.139 0 01-.24-.076 2.928 2.928 0 00-.343-.1 2.146 2.146 0 00-.375-.027zm-4.781.28l.066.058c.037.03.263.238.5.463.24.222.624.616.86.873.927 1.016 1.606 1.63 2.353 2.129 1.002.67 1.905.92 3.19.888.794-.017 1.389-.115 2.199-.357.699-.21 1.514-.12 2.1.236.317.194.557.418.91.854.343.424.438.509.716.648.13.068.252.126.27.133.048.015-.055.157-.283.396-.401.418-1.03.805-1.704 1.05a.524.524 0 00-.267.18c-.192.206-.47.385-.822.524-.6.238-1.267.156-2.088-.254-.275-.137-.336-.177-.43-.28a1.898 1.898 0 01-.176-.243l-.068-.125.014.11c.006.058.024.14.037.179.01.04.018.078.01.084-.023.024-1.395-.275-1.434-.314-.01-.01.005-.071.03-.141.056-.168.077-.374.04-.418-.041-.048-.157-.04-.277.02a.852.852 0 01-.313.08c-.113.013-.29.045-.392.076l-.19.052-.127-.042c-.263-.092-.903-.356-.896-.372a1.48 1.48 0 01.182-.146c.222-.163.439-.365.48-.443.04-.08.04-.204-.002-.24-.026-.02-.078-.015-.268.03a3.24 3.24 0 01-.384.069 2.47 2.47 0 00-.535.117.95.95 0 01-.483.049c-.16-.017-.183-.027-.392-.166a9.654 9.654 0 01-.85-.668l-.102-.094h.21c.193-.002.242-.01.538-.105.45-.144.654-.281.64-.434-.01-.083-.017-.086-.487-.144a4.665 4.665 0 01-.522-.098 4.231 4.231 0 00-.37-.086c-.151-.028-.27-.072-.513-.185a25.31 25.31 0 00-.44-.2c-.14-.054-.181-.11-.353-.457a3.124 3.124 0 00-.09-.172c-.012-.015-.18.18-.202.239-.014.03-.032.098-.047.152l-.028.098-.04-.131a2.516 2.516 0 01-.104-.69c0-.174.004-.194.039-.183.02.006.122.03.224.054.105.024.28.076.39.116.204.07.21.07.608.07.336 0 .438-.01.608-.05.435-.1.462-.154.164-.37a7.78 7.78 0 01-.326-.254 1.715 1.715 0 00-.5-.306 1.51 1.51 0 01-.238-.12c-.105-.07-.325-.3-.49-.511a1.495 1.495 0 00-.206-.221 1.797 1.797 0 00-.318-.184c-.03-.008.068-.242.242-.566zm4.802.247c.15.002.29.017.31.028.03.017.02.038-.071.16-.185.248-.28.607-.248.968.017.199.027.2-.164-.021a2.999 2.999 0 01-.446-.695c-.163-.34-.161-.33-.05-.36a2.06 2.06 0 01.67-.08zm.606.123c.006 0 .076.035.154.078.079.044.205.122.28.176l.14.098-.07.074c-.255.294-.283.767-.076 1.287.043.107.062.18.047.18-.042 0-.322-.142-.405-.203-.165-.124-.372-.354-.435-.48a.513.513 0 01-.065-.294c.002-.348.113-.642.31-.82a.848.848 0 01.12-.096zm-10.617.256c.008.009.045.09.082.182.128.309.28.504.469.6.145.073.443.145.785.189.5.065.715.104.883.158.29.09.783.06 1.18-.076.069-.024.124-.036.124-.026 0 .04-.241.237-.383.31-.463.245-1.168.33-1.656.21-.11-.028-.194-.044-.19-.035.02.03.617.213.817.248.194.033.442.033.586-.002.04-.011.034 0-.033.043a3.1 3.1 0 01-1.145.424 8.498 8.498 0 00-.472.09c-.242.054-.338.048-.623-.047-.35-.116-.66-.325-1.041-.695l-.225-.215.186-.19c.35-.367.4-.447.558-.93.046-.14.09-.248.098-.24zm4.338.174c.02-.015.044-.001.127.066.034.029.034.038.005.106a7 7 0 00-.22.812c-.052.244-.06.32-.063.71 0 .239.01.496.018.57l.017.134-.125.063c-.07.037-.17.078-.224.094a.68.68 0 00-.153.064c-.06.044-.152.075-.152.053a.24.24 0 01.04-.072.606.606 0 00.064-.123c.024-.068.148-.371.26-.64a.977.977 0 00.06-.155c-.002 0-.06.11-.125.246-.155.313-.36.622-.484.722-.207.17-.446.208-1.07.166-.69-.045-.91-.088-1.366-.254-.361-.13-.797-.314-.797-.335 0-.011.095.017.213.058.31.11.446.114.799.03.157-.04.398-.093.537-.124a4.14 4.14 0 00.426-.111c.372-.124.836-.4 1.133-.67.274-.255.678-.768.953-1.22.058-.096.116-.181.127-.19zm7.304.31c.009 0 .073.06.145.13.102.104.143.13.195.13.05 0 .09.023.153.09.087.087.088.09.085.256 0 .15-.008.18-.08.318-.143.272-.125.26-.441.272a3.808 3.808 0 01-.416-.01l-.137-.016.153-.185c.15-.187.302-.453.302-.527 0-.024-.04-.067-.097-.104-.055-.033-.098-.067-.098-.078 0-.01.054-.016.12-.016h.126l-.014-.13c-.006-.071-.004-.13.004-.13zm.752.74l.059.06c.033.034.128.162.213.288.148.22.153.23.105.246-.045.02-.623.024-.64.006a.595.595 0 01.08-.144 1.38 1.38 0 00.138-.3l.045-.155zm6.014.175c.015 0 .03.02.039.046.02.077.016.34-.006.354-.01.006-.027.066-.033.129-.06.46-.354.824-.732.9l-.075.014.05-.074c.09-.133.179-.343.196-.45.013-.104-.003-.378-.03-.42-.005-.01-.054-.02-.104-.02h-.092l.11-.071c.317-.205.655-.408.677-.408zm.223.187c.02-.022.21 0 .394.043.214.05.214.05.166.188-.183.518-.473.974-.693 1.087a.76.76 0 01-.414.047l-.084-.017.129-.092c.298-.22.484-.632.484-1.08 0-.087.007-.167.018-.176zm-1.36.772c.02.01.036.07.074.195.024.078.05.158.06.178.012.03-.014.025-.151-.032-.092-.037-.166-.075-.166-.086 0-.01.04-.08.09-.154.05-.074.074-.112.093-.101zm-2.066 1.375c-.011 0-.075.008-.14.017-.256.035-.508.14-.684.29l-.088.073.082.149c.159.292.412.563.654.71.14.083.137.076.043.407-.094.324-.09.32-.271.365-.13.033-.24.04-.553.04h-.393l-.222-.077c-.45-.16-.726-.37-.983-.756-.19-.28-.237-.33-.517-.53-.273-.191-.295-.23-.188-.317l.059-.047-.078-.002a.585.585 0 00-.541.36c-.048.13-.057.293-.022.36.035.064.05.053.106-.076a.687.687 0 01.128-.197c.094-.094.125-.091.297.018.246.159.402.315.582.588.096.145.206.298.243.34.087.102.27.254.363.304.04.022.15.105.24.186.09.08.22.174.293.207.15.07.477.172.762.242.357.085.773.05 1.039-.082l.1-.05.124.042c.445.152.95.07 1.235-.205.315-.303.432-.716.29-1.025-.051-.118-.212-.315-.255-.315-.01 0 .003.056.027.123.057.16.062.454.01.602a1.167 1.167 0 01-.266.427.957.957 0 01-.203.13c-.11.052-.143.056-.38.056-.242-.002-.275-.007-.432-.07a2.244 2.244 0 01-.307-.157l-.137-.091.05-.135c.028-.074.07-.23.099-.346l.049-.21.13-.05c.414-.148.69-.38.803-.675l.043-.116-.095-.086a1.954 1.954 0 00-.584-.328c-.14-.045-.44-.102-.512-.093z\"},\"child\":[]}]})(props);\n};\nexport function SiKatana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.016 22.762H12c-5.95-.009-10.765-4.84-10.756-10.789.009-5.95 4.839-10.766 10.789-10.757 5.943.009 10.756 4.829 10.756 10.773 0 5.95-4.823 10.773-10.773 10.773zm9.475-10.857a5.562 5.562 0 0 1-9.142 3.214 6.331 6.331 0 0 0 3.251-2.062l.104.169c.339.584.568 1.226.676 1.893a6.281 6.281 0 0 0-.349-2.656 6.328 6.328 0 0 0-8.94-8.63 5.563 5.563 0 0 1 7.418 6.256 6.334 6.334 0 0 0-3.425-1.762l.093-.175a5.53 5.53 0 0 1 1.304-1.533 6.31 6.31 0 0 0-2.122 1.636 6.327 6.327 0 0 0-3.016 12.044 5.564 5.564 0 0 1 1.713-9.562 6.33 6.33 0 0 0 .185 3.818h-.186a5.535 5.535 0 0 1-1.98-.36 6.295 6.295 0 0 0 2.471 1.025 6.328 6.328 0 0 0 8.513 2.758 6.319 6.319 0 0 0 3.432-6.073zm-11.018-1.443a5.582 5.582 0 0 1 3.6.998 5.584 5.584 0 0 1-2.667 2.618 5.57 5.57 0 0 1-.933-3.616z\"},\"child\":[]}]})(props);\n};\nexport function SiKaufland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24h24V0H0zm23.008-.989H.989V.989h22.022zM3.773 3.776h7.651v7.65H3.773zm8.801 0v7.652l7.653-7.652zm-8.801 8.8h7.651v7.651H3.773zm8.801-.004v7.652h7.653z\"},\"child\":[]}]})(props);\n};\nexport function SiKde (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.881 0L9.89.382v16.435l3.949-.594V9.216l5.308 7.772 4.162-1.317-5.436-7.475 5.479-7.05L19.105.17 13.84 7.22zM4.834 4.005a.203.203 0 0 0-.123.059L3.145 5.63a.203.203 0 0 0-.03.248L4.949 8.9a7.84 7.84 0 0 0-.772 1.759l-3.367.7a.203.203 0 0 0-.162.199v2.215c0 .093.064.174.155.196l3.268.8a7.83 7.83 0 0 0 .801 2.03L2.98 19.683a.203.203 0 0 0 .027.254l1.566 1.567a.204.204 0 0 0 .249.03l2.964-1.8c.582.336 1.21.6 1.874.78l.692 3.325c.02.094.102.161.198.161h2.215a.202.202 0 0 0 .197-.155l.815-3.332a7.807 7.807 0 0 0 1.927-.811l2.922 1.915c.08.053.186.042.254-.026l1.567-1.566a.202.202 0 0 0 .03-.248l-1.067-1.758-.345.11a.12.12 0 0 1-.135-.047L17.371 15.8a6.347 6.347 0 1 1-8.255-8.674V5.488c-.401.14-.79.31-1.159.511l-.001-.002-2.99-1.96a.203.203 0 0 0-.132-.033Z\"},\"child\":[]}]})(props);\n};\nexport function SiKdenlive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.727 1.554 2.727 4.334v16.558h1.091V5.889l2.728-4.335zm-6 4.948V9.8h7.091c.003-.83 0-1.672-.006-2.498 0-.383-.356-.732-.718-.8H2.727zm12.303.001c-.402.024-.835.41-.834.837l-.014 12.619c0 .57.767 1.065 1.207.727l8.28-6.331c.441-.335.44-1.12 0-1.455l-8.265-6.287a.553.553 0 0 0-.374-.11zM-.001 12v3.299h9.818V12zm4.363 5.497v3.3h5.455v-3.3z\"},\"child\":[]}]})(props);\n};\nexport function SiKdeplasma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 0c-.831 0-1.5.669-1.5 1.5S5.169 3 6 3s1.5-.669 1.5-1.5S6.831 0 6 0m10.5 0-3 3L18 7.5 13.5 12l3 3 4.5-4.5 3-3zM2.25 9A2.245 2.245 0 0 0 0 11.25a2.245 2.245 0 0 0 2.25 2.25 2.245 2.245 0 0 0 2.25-2.25A2.245 2.245 0 0 0 2.25 9M9 18c-1.662 0-3 1.338-3 3s1.338 3 3 3 3-1.338 3-3-1.338-3-3-3\"},\"child\":[]}]})(props);\n};\nexport function SiKedro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 0 12 12-12 12L0 12 12 0z\"},\"child\":[]}]})(props);\n};\nexport function SiKeenetic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.718 10.188 24 2.376h-6.588L9.788 9.812H4.33V2.376H0v19.248h4.33V14.14h7.623c3.2 0 5.412.706 6.588 2.07.706.8 1.035 1.883 1.035 3.248v2.165h4.33v-2.165c0-2.353-.706-4.424-2.07-6.024-1.46-1.647-3.483-2.776-6.118-3.247\"},\"child\":[]}]})(props);\n};\nexport function SiKeepachangelog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.803.179C9.108.174 8.413.24 7.72.38 5.639.797 3.974 1.828 2.77 3.445 1.232 5.515.367 8.072.049 11.492c-.125 1.353.008 2.711.181 4.216a9.97 9.97 0 0 0 2.144 5.214c.933 1.157 2.004 1.917 3.272 2.324a11.972 11.972 0 0 0 3.336.574 6.14 6.14 0 0 0 .795-.034l.416-.041a92.49 92.49 0 0 0 1.721-.186 21.41 21.41 0 0 0 7.393-2.257c2.007-1.048 3.41-2.594 4.17-4.597.354-.93.523-1.713.523-2.445a4.585 4.585 0 0 0-.064-.762c-.405-2.379-1.235-4.428-2.555-6.264-1.634-2.276-3.288-3.878-5.202-5.045C13.993.86 11.89.193 9.803.18Zm-.439 1.064c.77-.021 1.56.058 2.376.237h-.001c2.73.597 5.137 2.002 7.154 4.173 2.288 2.46 3.591 5.045 3.988 7.899.071.528-.013 1.114-.096 1.622-.388 2.327-1.663 4.063-3.786 5.16a20.998 20.998 0 0 1-7.166 2.182c-.558.066-1.12.123-1.757.187l-.088.01a6.84 6.84 0 0 1-1.658-.03c-.69-.098-1.472-.21-2.224-.389-1.767-.42-3.069-1.622-3.978-3.658-.684-1.538-1.038-3.245-1.081-5.233a17.918 17.918 0 0 1 1.149-6.798c.62-1.641 1.517-3.453 3.462-4.418a8.747 8.747 0 0 1 3.706-.944zm1.108 1.47a7.745 7.745 0 0 0-2.24.41c-1.6.525-2.718 1.304-3.523 2.438-1.499 2.118-2.275 4.58-2.31 7.325a10.123 10.123 0 0 0 .803 4.388c1.081 2.569 3.053 4.064 5.707 4.326 2.796.27 5.543-.381 8.178-1.937a8.122 8.122 0 0 0 2.772-2.624 7.104 7.104 0 0 0 1.168-3.86c0-2.162-1.015-4.47-3.049-6.862a6.403 6.403 0 0 0-.704-.707c-2.333-2.006-4.567-2.966-6.802-2.898zm.099 1.035c1.492-.022 3.015.475 4.672 1.508 1.783 1.117 3.161 2.763 4.091 4.909.887 2.02.905 3.938.058 5.696a6.809 6.809 0 0 1-2.907 2.988c-2.253 1.232-4.315 1.776-6.458 1.713h-.022c-1.55.06-2.89-.32-4.098-1.163-.7-.488-1.241-1.202-1.655-2.183a10.94 10.94 0 0 1-.872-4.273A12.65 12.65 0 0 1 4.404 8.09a12.156 12.156 0 0 1 .874-1.622l.163-.27c.67-1.108 1.725-1.639 3.103-2.099a6.756 6.756 0 0 1 2.027-.35zm.03 1.62c-1.18.037-2.28.465-3.289 1.283-1.395 1.13-2.23 2.72-2.63 4.993a7.241 7.241 0 0 0 .676 4.613c1.062 2.054 2.8 3.11 5.026 3.05h.008c2.958-.155 5.11-1.249 6.573-3.347a5.605 5.605 0 0 0 1.06-3.245 5.814 5.814 0 0 0-.242-1.639c-.72-2.435-2.161-4.145-4.29-5.085-1.009-.445-1.974-.652-2.892-.624Zm.312 1.064c.77.008 1.547.191 2.35.55 1.862.833 3.073 2.332 3.598 4.462.526 2.13-.27 4.205-2.066 5.423-1.479.999-2.93 1.447-4.438 1.367h-.04c-1.004.08-1.994-.226-2.943-.91a3.668 3.668 0 0 1-1.29-1.72 7.64 7.64 0 0 1-.514-2.727 8.474 8.474 0 0 1 .747-3.38c.676-1.556 1.724-2.503 3.215-2.893.46-.12.919-.178 1.38-.172zM9.455 8.758v6.882h1.155v-1.908l1.68 1.908h1.462l-2.273-2.5 1.871-1.958h-1.509l-1.231 1.337V8.758Z\"},\"child\":[]}]})(props);\n};\nexport function SiKeepassxc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.378 0 0 5.378 0 12c0 6.623 5.378 12 12 12 6.623 0 12-5.377 12-12 0-6.622-5.377-12-12-12zm0 .791a11.203 11.203 0 0 1 11.209 11.21A11.202 11.202 0 0 1 12 23.208 11.203 11.203 0 0 1 .791 12 11.203 11.203 0 0 1 12.001.791zm0 1.871a9.356 9.356 0 0 0-1.705.162A1.746 1.746 0 0 0 12 4.95a1.746 1.746 0 0 0 1.706-2.126A9.342 9.342 0 0 0 12 2.662zM7.2 4a9.338 9.338 0 0 0-4.54 8 9.338 9.338 0 0 0 18.677 0 9.338 9.338 0 0 0-4.54-7.998 4.888 4.888 0 0 1-2.701 5.365l-.12 2.066 1.482 1.483-1.483 1.482.989.989-.989.988.12 1.857L12 20.328l-2.096-2.096V9.367A4.89 4.89 0 0 1 7.2 4zm3.4 6.543v6.99h.7v-6.99z\"},\"child\":[]}]})(props);\n};\nexport function SiKeeper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm1.365 1.788 1.854.472v2.597l2.073-1.704 1.537 1.135-3.949 3.247-1.515-.008zm-9.067 15.54L2.445 15.75V8.7L4.298 7zm3.631 2.22L6.076 21.16V3l1.853 1.614zm9.363 1.555-2.073-1.705v2.597l-1.854.473v-5.74l1.515-.007 3.95 3.246zm2.733-2.473-4.604-3.674h-3.826v7.512H9.742v-9.365h6.329l5.11 4.078zm2.62-8.329-2.059 1.7 2.059 1.698-1.181 1.431L17.67 12l3.793-3.13zm-6.574.6H9.742V1.534h1.853v7.512h3.826l4.604-3.674 1.156 1.449z\"},\"child\":[]}]})(props);\n};\nexport function SiKeeweb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.4138 24c-.2293-.0004-.4838-.0966-.7462-.2342-.5598-.2937-.9436-.665-.6231-1.2759l7.786-14.8424a58 58 0 0 1-.2224-.1157C9.8007 6.059 8.5551 3.8816 9.5635 1.9594c1.159-2.2094 4.7486-2.6104 8.0176-.8956 3.269 1.7149 4.9794 4.8961 3.8204 7.1056-.9968 1.9001-3.5993 2.0696-6.2161.6968a85 85 0 0 0-.3215-.1672L7.0716 23.5533c-.1703.3246-.3979.4471-.6578.4467m-1.4335-3.1798-.1474-.0773-.0328-.0171-1.9943-1.0463-.4808-.2522a.1664.1664 0 0 1-.0701-.2247l.6312-1.2032a.1665.1665 0 0 1 .2235-.0707l.0013.0006.9615.5044a.1665.1665 0 0 0 .2247-.0701l.6312-1.2031a.1665.1665 0 0 0-.0701-.2248l-.4808-.2522-.4807-.2522a.1664.1664 0 0 1-.0701-.2247l.6311-1.2033a.1664.1664 0 0 1 .2247-.07l.4809.2522 1.2514.6565.7757.4069.001.0005.1465.0768-.663 1.2636-.0456.087v.0002l-.9405 1.7927-.0957.1823-.5355 1.0208-.0003.0007zm3.1515-6.0076-.1474-.0774-.7002-.3673-.5529-.29a.1665.1665 0 0 1-.0702-.2247l.6313-1.2032a.1665.1665 0 0 1 .2247-.0702l.5529.2901.7002.3674.001.0004.1465.077-.0774.1473-.3155.6016-.3156.6016-.0004.0006zm10.302-7.121c.4153.0008.74-.1664.9557-.5777.6575-1.2533-.5588-3.1869-2.7166-4.3188s-4.44-1.0336-5.0974.2197 1.1712 2.0762 3.329 3.2082c1.4498.7605 2.6792 1.467 3.5294 1.4687\"},\"child\":[]}]})(props);\n};\nexport function SiKentico (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm11.65 3.417c.698 0 1.566.216 1.566 1.279v2.72c0 1.5-2.433 1.533-2.433.018V3.63a.146.146 0 0 1 .118-.142c.15-.028.432-.072.75-.071zm5.508 1.76a.146.146 0 0 1 .079.026c.408.277 1.875 1.397.782 2.49L16.091 9.62c-1.06 1.06-2.803-.64-1.733-1.707l2.695-2.695a.146.146 0 0 1 .105-.041zm-10.27.4c.263.01.538.123.811.396l1.928 1.93c1.061 1.059-.64 2.803-1.707 1.73L5.226 6.94a.142.142 0 0 1-.018-.182c.209-.307.891-1.208 1.68-1.18zm5.104 4.65a1.773 1.773 0 0 1 .008 0A1.773 1.773 0 1 1 10.227 12a1.773 1.773 0 0 1 1.765-1.773zm-7.291.55h2.728c1.499 0 1.532 2.433.017 2.433h-3.81a.144.144 0 0 1-.142-.117c-.092-.48-.337-2.315 1.207-2.315zm11.859 0h3.802a.142.142 0 0 1 .142.117c.093.48.338 2.316-1.206 2.316h-2.72c-1.5 0-1.533-2.433-.018-2.433zm-1.238 3.24c.259.002.523.102.756.337l2.695 2.692a.146.146 0 0 1 .017.184c-.278.41-1.398 1.876-2.49.784l-1.929-1.93c-.829-.827.028-2.072.951-2.066zm-6.657.013c.93-.011 1.811 1.209.975 2.044l-2.694 2.692a.144.144 0 0 1-.184.018c-.408-.278-1.876-1.398-.783-2.49l1.928-1.93a1.08 1.08 0 0 1 .758-.334zm3.334 1.403c.608-.007 1.217.364 1.217 1.122v3.802a.144.144 0 0 1-.118.14c-.48.093-2.316.338-2.316-1.206v-2.72c0-.749.609-1.132 1.217-1.138z\"},\"child\":[]}]})(props);\n};\nexport function SiKeras (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0H0v24h24V0zM8.45 5.16l.2.17v6.24l6.46-6.45h1.96l.2.4-5.14 5.1 5.47 7.94-.2.3h-1.94l-4.65-6.88-2.16 2.08v4.6l-.19.2H7l-.2-.2V5.33l.17-.17h1.48z\"},\"child\":[]}]})(props);\n};\nexport function SiKeybase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.445 21.372a.953.953 0 1 1-.955-.954c.524 0 .951.43.951.955m5.923-.001a.953.953 0 1 1-.958-.954c.526 0 .954.43.954.955m4.544-9.16l-.156-.204c-.046-.06-.096-.116-.143-.175-.045-.06-.094-.113-.141-.169-.104-.12-.21-.239-.32-.359l-.075-.08-.091-.099-.135-.13c-.015-.019-.032-.035-.05-.054a10.87 10.87 0 0 0-3.955-2.504l-.23-.078.035-.083a4.109 4.109 0 0 0-.12-3.255 4.11 4.11 0 0 0-2.438-2.16c-.656-.216-1.23-.319-1.712-.305-.033-.105-.1-.577.496-1.848L10.662 0l-.287.399c-.33.455-.648.895-.945 1.328a1.857 1.857 0 0 0-1.245-.58L6.79 1.061h-.012c-.033-.003-.07-.003-.104-.003-.99 0-1.81.771-1.87 1.755l-.088 1.402v.003a1.876 1.876 0 0 0 1.755 1.98l1.002.06c-.065.84.073 1.62.405 2.306a11.28 11.28 0 0 0-3.66 2.484C.912 14.392.912 18.052.912 20.995v1.775l1.305-1.387c.266.93.652 1.807 1.145 2.615H5.06a9.197 9.197 0 0 1-1.68-3.848l1.913-2.03-.985 3.09 1.74-1.267c3.075-2.234 6.745-2.75 10.91-1.53 1.806.533 3.56.04 4.474-1.256l.104-.165c.09.498.14.998.14 1.496 0 1.563-.254 3.687-1.38 5.512h1.612c.776-1.563 1.181-3.432 1.181-5.512-.001-2.2-.786-4.421-2.184-6.274zM8.894 6.192c.122-1.002.577-1.949 1.23-2.97a1.36 1.36 0 0 0 1.283.749c.216-.008.604.025 1.233.232a2.706 2.706 0 0 1 1.608 1.425c.322.681.349 1.442.079 2.15a2.69 2.69 0 0 1-.806 1.108l-.408-.502-.002-.003a1.468 1.468 0 0 0-2.06-.205c-.334.27-.514.66-.534 1.058-1.2-.54-1.8-1.643-1.628-3.04zm4.304 5.11l-.52.425a.228.228 0 0 1-.323-.032l-.11-.135a.238.238 0 0 1 .034-.334l.51-.42-1.056-1.299a.307.307 0 0 1 .044-.436.303.303 0 0 1 .435.041l2.963 3.646a.309.309 0 0 1-.168.499.315.315 0 0 1-.31-.104l-.295-.365-1.045.854a.244.244 0 0 1-.154.055.237.237 0 0 1-.186-.09l-.477-.58a.24.24 0 0 1 .035-.335l1.05-.858-.425-.533zM7.752 4.866l-1.196-.075a.463.463 0 0 1-.435-.488l.09-1.4a.462.462 0 0 1 .461-.437h.024l1.401.091a.459.459 0 0 1 .433.488l-.007.101a9.27 9.27 0 0 0-.773 1.72zm12.525 11.482c-.565.805-1.687 1.08-2.924.718-3.886-1.141-7.397-.903-10.469.7l1.636-5.122-5.29 5.609c.098-3.762 2.452-6.967 5.757-8.312.471.373 1.034.66 1.673.841.16.044.322.074.48.102a1.41 1.41 0 0 0 .21 1.408l.075.09c-.172.45-.105.975.221 1.374l.476.582a1.39 1.39 0 0 0 1.079.513c.32 0 .635-.111.886-.314l.285-.232c.174.074.367.113.566.113a1.45 1.45 0 0 0 .928-.326c.623-.51.72-1.435.209-2.06l-1.67-2.057a4.07 4.07 0 0 0 .408-.38c.135.036.27.077.4.12.266.096.533.197.795.314a9.55 9.55 0 0 1 2.77 1.897c.03.03.06.055.086.083l.17.176c.038.039.076.079.11.12.08.085.16.175.24.267l.126.15c.045.053.086.104.13.16l.114.15c.04.05.079.102.117.154.838 1.149.987 2.329.404 3.157v.005zM7.718 4.115l-.835-.05.053-.836.834.051z\"},\"child\":[]}]})(props);\n};\nexport function SiKeycdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.3043 19.0607c.2259.01.4538.04.6667.12v-.003l.032.012 2.8091-2.7391.102.137c.146.1998.2999.3798.4638.5597l.06.068c.043.043.077.086.12.13l.3259.3249.077.07.07.06a7.4626 7.4626 0 004.6534 1.7753 7.5146 7.5146 0 004.0087-1.0396l.216.224c.2499.2658.5068.5327.7557.7997a8.8581 8.8581 0 01-5.0154 1.3995 8.8341 8.8341 0 01-5.4612-2.0623l.01-.015-1.8024 1.7764A2.2463 2.2463 0 110 21.305a2.2453 2.2453 0 012.2453-2.2453h.058zM19.4737 7.4765a8.8321 8.8321 0 011.2796 4.8264 8.7872 8.7872 0 01-2.2073 5.6152l.01.01 1.1066 1.1766c.4459-.06.8918.094 1.2017.4199a1.3935 1.3935 0 01-.052 1.9663 1.3935 1.3935 0 01-1.9664-.052 1.3826 1.3826 0 01-.3519-1.2196 336.5811 336.5811 0 00-1.9493-2.0693l-.11-.12.128-.103a6.9212 6.9212 0 00.9277-.8846 7.4256 7.4256 0 001.8793-4.7755 7.4376 7.4376 0 00-.9267-3.8118l1.0297-.9796zM3.8267 2.226c.395-.006.7648.15 1.0397.432.31.3258.4399.7817.353 1.2195L7.3475 6.111l-.128.104a6.9208 6.9208 0 00-.9276.8847 7.4906 7.4906 0 00-.9617 8.5942l-1.0217.9957A8.7602 8.7602 0 013.021 11.838c.044-2.0673.8498-4.0646 2.2033-5.6201L4.0517 4.9933a1.4005 1.4005 0 01-1.2026-.42 1.3955 1.3955 0 01.052-1.9673c.2169-.204.4968-.3349.7937-.3699.044-.006.09-.007.133-.01zM21.746.4427a2.2473 2.2473 0 11-.6998 4.3806l-.002.002-.033-.012-3.049 2.894-.102-.1379a7.1777 7.1777 0 00-.5328-.6268l-.034-.043-.2659-.2659-.12-.103-.077-.07-.06-.0499-.0769-.07a7.4556 7.4556 0 00-4.6185-1.7514A7.4336 7.4336 0 008.0724 5.629l-.9797-1.0216a8.8371 8.8371 0 015.0154-1.3996 8.7912 8.7912 0 015.4622 2.0694h.017l2.0194-1.9164A2.2463 2.2463 0 0121.75.4438zM11.956 5.4581c.254 0 .5069.02.7598.05 3.6228.4548 6.19 3.7608 5.7441 7.3846a6.6239 6.6239 0 01-7.3846 5.7451 6.6239 6.6239 0 01-5.7461-7.3846c.4318-3.3619 3.257-5.7831 6.6258-5.7951zm-.1 2.839c-1.4655.117-2.5271 1.2267-2.5651 2.6992.027 1.0537.5648 1.9394 1.5045 2.4252l-.5118 2.3993h3.4219l-.5099-2.3993c.9347-.5068 1.4896-1.3455 1.5046-2.4222-.02-1.5215-1.1977-2.6671-2.7052-2.7051l-.14.004zm.052-.015h-.01z\"},\"child\":[]}]})(props);\n};\nexport function SiKeycloak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18.742 1.182-12.493.002C4.155 4.784 2.079 8.393 0 12.002c2.071 3.612 4.162 7.214 6.252 10.816l12.49-.004 3.089-5.404h2.158v-.002H24L23.996 6.59h-2.168zM8.327 4.792h2.081l1.04 1.8-3.12 5.413 3.117 5.403-1.035 1.81H8.327a2047.566 2047.566 0 0 0-4.168-7.204C5.547 9.606 6.937 7.2 8.327 4.792Zm6.241 0 2.086.003c1.393 2.405 2.78 4.813 4.166 7.222l-4.167 7.2h-2.08c-.382-.562-1.038-1.808-1.038-1.808l3.123-5.405-3.124-5.413z\"},\"child\":[]}]})(props);\n};\nexport function SiKeystone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 0A4.5 4.5 0 000 4.5v15A4.5 4.5 0 004.5 24h15a4.5 4.5 0 004.5-4.5v-15A4.5 4.5 0 0019.5 0zm5.47 14.789v3.586H6.744V5.692H9.97v5.45h.167l4.218-5.45h3.463l-4.385 5.599 4.64 7.084h-3.788l-3.2-5.001z\"},\"child\":[]}]})(props);\n};\nexport function SiKfc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.893 8.23c-4.187.001-5.249 2.365-5.42 3.97-.194 1.802 1.053 3.57 4.127 3.57 1.294 0 2.14-.225 2.44-.32a.215.215 0 00.147-.166l.173-.91a.184.184 0 00-.236-.21c-.336.106-.93.252-1.685.252-1.469 0-2.53-.882-2.395-2.4.13-1.47 1.121-2.59 2.485-2.59.82 0 1.183.43 1.156 1.003v.033a.184.184 0 00.182.193h.557c.086 0 .16-.06.18-.143l.39-1.76a.215.215 0 00-.15-.255 7.21 7.21 0 00-1.95-.266zm-20.157.116a.2.2 0 00-.195.156l-.108.484a.198.198 0 00.13.23l.033.01c.208.082.45.266.348.748l-.792 3.62c-.207.987-.542 1.19-.86 1.226h-.01a.2.2 0 00-.176.157l-.102.464a.192.192 0 00.187.233h3.487c.085 0 .159-.06.177-.142l.12-.543a.184.184 0 00-.112-.21l-.022-.01c-.177-.07-.418-.224-.356-.51l.405-1.85c1.389 2.535 1.848 3.266 3.514 3.265H8.91a.181.181 0 00.177-.142l.105-.47a.195.195 0 00-.186-.238c-.376-.006-.56-.093-.935-.575l-1.932-2.614 2.51-2.088c.337-.264.748-.338.976-.368l.022-.002a.185.185 0 00.163-.144l.103-.464a.184.184 0 00-.18-.223h-3.02a.199.199 0 00-.193.155l-.102.46a.2.2 0 00.138.235c.178.069.217.24.063.366L4.046 11.7l.44-2.014a.683.683 0 01.477-.487l.025-.008a.199.199 0 00.135-.147l.106-.477a.181.181 0 00-.177-.22zm8.88 0a.2.2 0 00-.194.156l-.107.483a.19.19 0 00.122.221l.02.008c.204.077.487.274.364.758l-1.21 5.48a.182.182 0 00.178.222h2.777c.086 0 .16-.06.179-.143l.12-.547a.174.174 0 00-.098-.196 1.558 1.558 0 01-.027-.013c-.176-.086-.438-.285-.35-.67.009-.05.27-1.24.27-1.24h2.362c.086 0 .16-.06.18-.143l.221-1a.183.183 0 00-.18-.224h-2.28l.427-1.94 1.592-.003c.515 0 .672.27.642.728l-.002.024a.184.184 0 00.183.205h.587c.086 0 .16-.06.178-.144l.4-1.8a.184.184 0 00-.18-.222z\"},\"child\":[]}]})(props);\n};\nexport function SiKhanacademy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.724 4.973L13.418.328a3.214 3.214 0 0 0-2.828 0L2.276 4.973A3.05 3.05 0 0 0 .862 7.371v9.256a3.05 3.05 0 0 0 1.414 2.4l8.306 4.645a3.214 3.214 0 0 0 2.828 0l8.314-4.645a3.05 3.05 0 0 0 1.414-2.4V7.373a3.05 3.05 0 0 0-1.414-2.4zM12 4.921a2.571 2.571 0 1 1 .001 5.143A2.571 2.571 0 0 1 12 4.92zm3.094 13.627a9.119 9.119 0 0 1-3.103.549 8.972 8.972 0 0 1-3.076-.55 8.493 8.493 0 0 1-5.486-7.987v-.857c4.646.017 8.074 3.823 8.074 8.51v.198h.926v-.197c0-4.688 3.445-8.51 8.056-8.51.026.29.043.582.086.856a8.502 8.502 0 0 1-5.477 7.988z\"},\"child\":[]}]})(props);\n};\nexport function SiKhronosgroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.511 12.946H0v-2.615h.511v2.615zm.008-1.299l.791-1.316h.571l-.839 1.298.839 1.316h-.57l-.792-1.298zm3.11.238v1.061h-.511v-2.615h.511v1.061h.843v-1.061h.511v2.615h-.51v-1.061h-.844zm3.37 1.061h-.511v-2.615h.621c.198 0 .345.006.442.021a.787.787 0 0 1 .587.358.82.82 0 0 1 .117.439.806.806 0 0 1-.167.515.743.743 0 0 1-.453.269l.653 1.014h-.609l-.678-1.212-.002 1.211zm0-1.34h.114c.208 0 .365-.037.474-.112a.377.377 0 0 0 .161-.328c0-.139-.045-.241-.136-.307-.09-.066-.231-.099-.422-.099h-.191v.846zm8.51 1.34h-.502v-2.615h.485L16.574 12v-1.669h.502v2.615h-.475l-1.092-1.72v1.72zm2.962-1.313a1.353 1.353 0 0 1 .228-.765c.129-.189.292-.333.487-.435a1.358 1.358 0 0 1 1.141-.053 1.37 1.37 0 0 1 .731.729 1.413 1.413 0 0 1 .005 1.04c-.065.164-.159.31-.283.436a1.327 1.327 0 0 1-.963.413c-.195 0-.374-.035-.54-.105a1.27 1.27 0 0 1-.436-.309 1.34 1.34 0 0 1-.37-.951zm.535-.018a.854.854 0 0 0 .221.58.83.83 0 0 0 .274.201.765.765 0 0 0 .316.071.762.762 0 0 0 .576-.244.847.847 0 0 0 .232-.608.78.78 0 0 0-.235-.569.764.764 0 0 0-.564-.236.799.799 0 0 0-.582.235.775.775 0 0 0-.238.57zm3.389.522l.469-.001v.037c0 .11.028.198.085.263a.286.286 0 0 0 .227.099.32.32 0 0 0 .241-.092.347.347 0 0 0 .089-.25c0-.168-.12-.289-.36-.362a1.981 1.981 0 0 1-.074-.023c-.203-.063-.354-.154-.452-.27a.665.665 0 0 1-.147-.443c0-.245.068-.443.204-.591a.702.702 0 0 1 .544-.223c.212 0 .381.066.506.198s.196.318.21.555h-.464v-.022a.271.271 0 0 0-.076-.2.268.268 0 0 0-.198-.076c-.084 0-.15.026-.199.079s-.072.124-.072.214c0 .039.005.072.015.101.01.03.026.056.048.079.049.054.155.103.316.15.072.019.127.035.165.049.179.061.312.148.398.262s.13.259.13.436c0 .27-.075.485-.225.649a.768.768 0 0 1-.595.245.733.733 0 0 1-.566-.236c-.141-.16-.215-.369-.219-.627zm-5.032 1.337l-.07.077a.334.334 0 0 0-.103-.065.292.292 0 0 0-.111-.021.26.26 0 0 0-.2.084c-.054.056-.08.124-.08.205s.027.15.08.205c.054.056.12.084.2.084a.29.29 0 0 0 .189-.067v-.173h-.155v-.102h.266v.336a.619.619 0 0 1-.147.085.436.436 0 0 1-.152.028.383.383 0 0 1-.395-.395.4.4 0 0 1 .233-.363.428.428 0 0 1 .32-.002.332.332 0 0 1 .125.084zm1.091-.094h.143a.83.83 0 0 1 .099.006.247.247 0 0 1 .068.022c.032.017.058.043.076.076s.028.072.028.114a.182.182 0 0 1-.048.128.213.213 0 0 1-.128.067l.229.31-.106.045-.252-.365v.347l-.112.009.003-.759zm.113.1v.238h.04c.048 0 .085-.01.112-.032a.112.112 0 0 0 .04-.09.106.106 0 0 0-.037-.087.181.181 0 0 0-.111-.03h-.044v.001zm1.738-.119a.377.377 0 0 1 .256.095.403.403 0 0 1-.097.665.39.39 0 0 1-.161.032.395.395 0 0 1-.257-.095.404.404 0 0 1-.138-.302.4.4 0 0 1 .254-.371.402.402 0 0 1 .143-.024zm0 .104a.26.26 0 0 0-.2.084c-.054.056-.08.124-.08.205s.027.15.08.205c.054.056.12.083.201.083a.284.284 0 0 0 .281-.289.279.279 0 0 0-.282-.288zm1.563-.095v.426c0 .09.012.154.035.191.023.036.062.054.117.054s.096-.017.12-.052.037-.092.037-.172v-.436l.108-.01v.473c0 .061-.004.108-.013.141s-.025.061-.045.085a.216.216 0 0 1-.087.059.318.318 0 0 1-.115.022c-.09 0-.159-.026-.203-.076-.045-.05-.067-.128-.067-.231v-.461l.113-.013zm1.515.01h.199c.085 0 .151.019.196.058.045.039.067.096.067.169 0 .07-.026.125-.077.167a.335.335 0 0 1-.213.061.832.832 0 0 1-.057-.003h-.003v.297l-.112.009v-.758zm.112.1v.25l.031.004a.433.433 0 0 0 .037.001c.054 0 .096-.01.124-.032a.114.114 0 0 0 .043-.096c0-.044-.013-.076-.039-.097-.026-.021-.067-.031-.123-.031h-.073v.001zm-12.03-.704c-.897-.032-2.123-.442-2.377-1.033-.219-.538-.001-1.165 1.034-1.61.615-.256 1.544-.328 2.261-.262 1.016.093 1.985.618 1.986.621v.737l-.001.049s-.315-.285-.709-.515c-.371-.217-.71-.369-1.384-.431-.158-.014-.426-.05-.861.01-.176.025-.423.043-.981.288a2.342 2.342 0 0 0-.476.285 2.953 2.953 0 0 0-.223.201c-.159.199-.243.349-.203.62.046.204.137.332.399.527.114.085.127.084.177.11.469.243.843.332 1.378.399m.03-2.294c.9-.004 2.176.356 2.507.937.291.528.156 1.162-.817 1.646-.578.28-1.496.389-2.219.351-1.026-.053-2.062-.54-2.063-.541l-.098-.735-.006-.049s.352.272.776.487c.399.201.758.341 1.438.376.159.009.431.032.857-.044.172-.031.417-.059.94-.325a1.98 1.98 0 0 0 .632-.512c.132-.205.196-.358.12-.626-.074-.201-.181-.325-.467-.51-.124-.08-.137-.079-.191-.103-.5-.223-.884-.297-1.428-.343\"},\"child\":[]}]})(props);\n};\nexport function SiKia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.923 14.175c0 .046.015.072.041.072a.123.123 0 0 0 .058-.024l7.48-4.854a.72.72 0 0 1 .432-.13h1.644c.252 0 .422.168.422.42v3.139c0 .38-.084.6-.42.801l-1.994 1.2a.137.137 0 0 1-.067.024c-.024 0-.048-.019-.048-.088v-3.663c0-.043-.012-.071-.041-.071a.113.113 0 0 0-.058.024l-5.466 3.551a.733.733 0 0 1-.42.127h-3.624c-.254 0-.422-.168-.422-.422V9.757c0-.033-.015-.064-.044-.064a.118.118 0 0 0-.057.024L7.732 11.88c-.036.024-.046.041-.046.058 0 .014.008.029.032.055l2.577 2.575c.034.034.058.06.058.089 0 .024-.039.043-.084.043H7.94c-.183 0-.324-.026-.423-.125l-1.562-1.56a.067.067 0 0 0-.048-.024.103.103 0 0 0-.048.015l-2.61 1.57a.72.72 0 0 1-.423.122H.425C.168 14.7 0 14.53 0 14.279v-3.08c0-.38.084-.6.422-.8L2.43 9.192a.103.103 0 0 1 .052-.016c.032 0 .048.03.048.1V13.4c0 .043.01.063.041.063a.144.144 0 0 0 .06-.024L9.407 9.36a.733.733 0 0 1 .446-.124h3.648c.252 0 .422.168.422.42l-.002 4.518z\"},\"child\":[]}]})(props);\n};\nexport function SiKibana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.625 0v21.591L21.375 0zm10.864 12.47L3.477 24h17.522a18.755 18.755 0 0 0-7.51-11.53z\"},\"child\":[]}]})(props);\n};\nexport function SiKicad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.4668 7.3039c-.472.0238-.8477.4142-.8477.8906 0 .4918.3994.8906.8926.8906.4933 0 .8926-.3988.8926-.8906 0-.4918-.3993-.8906-.8926-.8906-.0154 0-.0297-.0008-.0449 0zM.25 8.0109c-.1394 0-.25.1214-.25.254v8.1777c0 .1325.1106.2539.25.2539h8.5215c.1394 0 .248-.1214.248-.254V8.2649c0-.1327-.1083-.2539-.248-.2539h-.2598c.011.0595.0176.121.0176.1836 0 .0605-.0054.1201-.0156.1777h.1445v7.963H.3613v-7.963h6.1485a1.0179 1.0179 0 0 1-.0157-.1777c0-.0628.0066-.1238.0176-.1836zm.2617.5117v7.664h7.9961v-7.664h-.0332a1.025 1.025 0 0 1-.4883.5703.8482.8482 0 0 1-.4746.1426.8483.8483 0 0 1-.4746-.1426 1.025 1.025 0 0 1-.4883-.5703zm21.5606.252c.0966.1084.1562.2266.1797.3555.0116.0615.0175.1992.0175.4101v1.664c-.2753-.2606-.6554-.3906-1.1386-.3906-.3662 0-.6896.1007-.9707.3028-.5946.4276-.8926 1.2249-.8926 2.3906 0 .3515.0469.67.1406.957.1347.41.3487.7335.6387.9707.3075.252.669.379 1.0879.379.495 0 .9034-.1574 1.2226-.4708v.373H24c-.1347-.1492-.2012-.4072-.2012-.7733v-6.168Zm-9.6328.2988c-.785 0-1.463.2873-2.0372.8613-.6209.621-.9316 1.4593-.9316 2.5137 0 .9402.253 1.7238.7598 2.3535.5447.6795 1.2746 1.0196 2.1914 1.0196.577 0 1.0987-.131 1.5644-.3946.2636-.1494.414-.22.4492-.211l-.7304-1.1952c-.3456.3807-.7404.5703-1.1856.5703-.249 0-.4834-.0782-.703-.2363-.4717-.3398-.7071-.9749-.7071-1.9063 0-.328.0322-.628.0996-.9004.205-.8318.6447-1.248 1.3183-1.248.4306 0 .7755.1641 1.0332.4922l.7872-1.1426c-.085-.009-.1964-.0508-.334-.127-.536-.2987-1.0617-.4492-1.5742-.4492zM.5605 9.175H2.625c-.164.164-.2461.4474-.246.8515v1.6133l1.2616-1.5957c.2578-.325.3867-.5674.3867-.7285 0-.0585-.0088-.1054-.0234-.1406h2.2012c-.167.0937-.375.2901-.627.5918-.0673.079-.1856.2247-.3554.4355L3.5703 12.259l1.9727 2.7148c.12.164.2725.3497.457.5547.0498.0527.1211.1144.2148.1875H3.957a.7156.7156 0 0 0 .0254-.1797c0-.1611-.1114-.3946-.334-.6992L2.379 13.1066v1.754c0 .407.082.6914.2461.8554H.5605c.1143-.1142.1866-.2442.2188-.3906.0175-.082.0273-.2355.0273-.461v-4.8379c0-.2255-.0098-.3789-.0273-.4609-.0322-.1464-.1045-.2764-.2188-.3906zm16.2032 1.6386c-.2373 0-.4561.0195-.6582.0605l-.5977.1504c-.2812.0703-.4717.1055-.5683.1055l.4355 1.0488c.41-.2167.8019-.3242 1.1738-.3242.4364 0 .6543.2511.6543.752-.2167-.0116-.3691-.0176-.457-.0176-.618 0-1.0987.083-1.4414.25-.5946.29-.8906.7384-.8906 1.3476 0 .2666.0469.506.1406.7168.1318.2959.3409.5244.6308.6856.2754.1522.5831.2276.92.2246.4745-.006.8623-.1632 1.164-.4707v.373h1.6387c-.0996-.1083-.1621-.2276-.1855-.3594-.0117-.0644-.0176-.2031-.0176-.414V12.794c0-.4305-.0587-.791-.1758-1.084-.2402-.5974-.8284-.8964-1.7656-.8964zm-10.211.0957h1.7266v4.0332c0 .211.0059.3497.0176.4141.0234.1318.086.251.1855.3594H6.5488c.0996-.1083.1602-.2276.1836-.3594.0117-.0644.0176-.2032.0176-.414V11.675c0-.2109-.0059-.3467-.0176-.4082-.0234-.1289-.083-.249-.1797-.3574zM21.623 11.929c.2373 0 .4532.082.6465.246v2.1934c-.2284.1845-.4668.2754-.7129.2754-.4715 0-.707-.4025-.707-1.211 0-1.0016.258-1.5038.7734-1.5038zm-4.793 1.6484c.123 0 .2403.009.3516.0293v.7617c-.1464.252-.38.377-.6992.377-.1728 0-.3154-.046-.4297-.1367-.126-.0996-.1894-.2315-.1894-.3985 0-.2226.1114-.3906.334-.502.1757-.0878.3867-.1308.6328-.1308z\"},\"child\":[]}]})(props);\n};\nexport function SiKick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.333 0h8v5.333H12V2.667h2.667V0h8v8H20v2.667h-2.667v2.666H20V16h2.667v8h-8v-2.667H12v-2.666H9.333V24h-8Z\"},\"child\":[]}]})(props);\n};\nexport function SiKickstarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.168 0c-3.2 0-5.797 2.579-5.797 5.758v12.484C1.371 21.42 3.968 24 7.168 24c1.981 0 3.716-.978 4.768-2.479l.794.79c2.26 2.245 5.943 2.245 8.203 0a5.724 5.724 0 001.696-4.075 5.724 5.724 0 00-1.696-4.074l-2.182-2.168 2.182-2.156a5.724 5.724 0 001.696-4.074 5.724 5.724 0 00-1.696-4.074c-2.26-2.246-5.942-2.246-8.203 0l-.794.789A5.797 5.797 0 007.168 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiKik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.482 16.752c-.01.688-.56 1.242-1.238 1.242-.689 0-1.23-.541-1.244-1.23h-.016v-6.243H9v-.029c0-.693.556-1.256 1.237-1.256s1.236.563 1.236 1.258v.045h.016v6.225h-.016l.009-.012zm11.137-4.889c.75 0 1.381.618 1.381 1.377 0 .76-.631 1.375-1.381 1.375-.766 0-1.395-.615-1.395-1.379 0-.766.615-1.381 1.379-1.381l.016.008zm-2.084 4.186c.121.195.193.432.193.686 0 .703-.553 1.26-1.244 1.26-.463 0-.869-.256-1.08-.631l-2.053-2.746-.631.586v1.635h-.014c-.039.652-.57 1.168-1.225 1.168-.674 0-1.221-.553-1.221-1.238v-.025h-.016v-9.45h.027v-.047c0-.69.551-1.253 1.23-1.253.674 0 1.225.562 1.225 1.253v.07h.016l.01 4.597 2.311-2.261c.229-.255.559-.405.928-.405.689 0 1.248.57 1.248 1.26 0 .346-.133.646-.344.871l.012.015-1.621 1.605 2.281 3.061-.016.016-.016-.027zm-13.246 0c.12.195.195.432.195.686 0 .703-.555 1.26-1.244 1.26-.466 0-.871-.256-1.081-.631l-2.054-2.746-.63.586v1.631H2.46c-.036.654-.57 1.17-1.221 1.17-.676 0-1.225-.555-1.225-1.238v-.027H0V7.29h.031c-.004-.015-.004-.029-.004-.044 0-.69.551-1.252 1.23-1.252.675 0 1.225.559 1.225 1.25v.07h.016l.01 4.6 2.311-2.261c.23-.255.562-.405.931-.405.687 0 1.245.57 1.245 1.26 0 .33-.131.646-.346.871l.016.015-1.627 1.605 2.271 3.061-.016.016-.004-.027z\"},\"child\":[]}]})(props);\n};\nexport function SiKingstontechnology (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.123.0007c-.5442-.0038-1.0301.008-1.4389.0204C7.185.1697 4.2115 1.7057 4.2115 1.7057s-.2967.1988-.148.8428c0 0 .0993.7921.1983 1.139l.0494.0996c-.099.099-.4958.2973-.6445.4954-.3468.446-.0493 2.4772-.0493 2.4772.3468 2.1303.6938 2.5265.6938 2.5265s.4956.6436 1.1892 1.0895c.2973.1486.2477.4954.2477.4954L3.3203 24h16.3492l-3.4187-7.4808c.6936 0 2.1306.3464 2.9232-1.883.7432-2.1303 1.1397-5.3502 1.1893-6.2915.099-.9414-.0999-2.9233-.0503-3.4187 0-.1486.3473-.6442.3473-.9415.0496-.4459-.0006-.8418-.0996-1.585-.0496-.2972-.0983-.644-.1974-.9908-.0496-.2478-.0999-.3964-.298-.4955C17.91.1701 15.7555.0124 14.123.0007Zm-1.4389.4171c.545 0 5.1027-.0492 7.233.8922.1983.1486.0498.8915-.0493 1.2879-.0495.2972-.3967.3967-.3967.3967-.3468.099-.446.3464-.446.3464s.4458 4.3102.4954 4.4589c.0495.1981-.1485.1981-.5448.2477-.1982 0-2.4772.0493-2.4772.0493s-.4956-.0491-.446-.3464c0-.1981.0992-.595.1983-.595h.4461s.991.0497.6938-.0494l-1.0402-.2477s-.2483.0004-.3474.149c-.0495.1486-.297.9415-.297.9415s-.0002.0491.0493.0987c.0495.0495 2.5768 1.883 2.5768 1.883s-2.1311-.199-2.7752-.0503c-.644.1486-1.9813.8422-2.8235.9908-.8422.1487-3.9636.4955-4.1618.4955l-1.2386-5.35s-.1484-1.3375-1.5356-1.288c-1.0404.0495-1.189.2967-1.2386.3958-.099.1981 0 .3967 0 .3967l3.3693 5.7468s-2.2792-1.0896-3.171-2.3282c-.4954-.644-.9416-3.8645-.6444-4.4095.2973-.4954 2.1306-.8915 2.9233-.7925.3963.0496.7433.4452.9415.6929.0495.099.0985.0501.148.0996 0 0-.1982-1.2383-.9909-1.2879-1.1394-.099-2.3774.3464-2.3774.3464s-.0995-.0004-.149-.149c-.0496-.1982-.1984-1.2386-.1984-1.2386s.0495-.198.2477-.297c0 0 3.2209-1.4863 8.0265-1.4863zm.6435 1.4273c-.0704.003-.0987.0096-.0987.0096-2.0808.8423-3.765 2.675-3.765 2.5759.1981.0495.594 0 .594 0 1.8332-1.5854 3.4187-2.2295 3.4187-2.2295 1.3377 0 3.6165.7927 3.765.7432.0496 0 .0498-.2475-.0493-.297-.2477-.0496-.7433-.2973-1.6846-.4955-1.3748-.2973-1.9688-.316-2.1801-.3067Zm6.788 1.3972c.1981.0496.198.049.297.148.1486.0992.0991.3966 0 .4461-.099.0991-.1484-.0988-.7925-.0493 0 0 .2973-.5943.4955-.5448zm-4.8711.1016c-.3623-.0186-.8641.0469-1.4215.1955-.7431.1982-2.2294.9415-2.2294.9415.5945.2477 1.5861.3468 2.5275.4954 1.0404.0991 2.179-.446 2.179-.446-.0495-.1487-.3963-1.0408-.743-1.14-.0868-.0247-.1919-.0402-.3126-.0464zm.7867 7.4015c.7242.0174 1.5759.1012 2.449.3241 0 0 .4957.3964.4461.7432 0 0-3.567.198-4.9543-.9416 0 0 .852-.1548 2.0592-.1257zm-9.7383.176 1.5356 1.0403 2.5265 11.5429H3.9145Zm11.8032 1.4554a8.479 8.479 0 0 1 .7315.031s.2973.2475-.4954 1.0401c-.9909.9414-2.7256 1.6843-4.2615 1.288 0 0 .5664-2.351 4.0254-2.3591zm-8.0875 4.1918s3.1216 1.9323 3.617 2.6755l.3464 4.3108h-2.2787Zm5.3007 3.9634s1.8335 1.6852 2.3785 3.0229h-3.0713z\"},\"child\":[]}]})(props);\n};\nexport function SiKinopoisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.049 0C5.45 0 .104 5.373.104 12S5.45 24 12.049 24c3.928 0 7.414-1.904 9.592-4.844l-9.803-5.174 6.256 6.418h-3.559l-4.373-6.086V20.4h-2.89V3.6h2.89v6.095L14.535 3.6h3.559l-6.422 6.627 9.98-5.368C19.476 1.911 15.984 0 12.05 0zm10.924 7.133-9.994 4.027 10.917-.713a11.963 11.963 0 0 0-.923-3.314zm-10.065 5.68 10.065 4.054c.458-1.036.774-2.149.923-3.314l-10.988-.74z\"},\"child\":[]}]})(props);\n};\nexport function SiKinsta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.2228 10.4037a1.9856 1.9856 0 0 0-.6276-.4289 1.9113 1.9113 0 0 0-.7624-.1548 1.9704 1.9704 0 0 0-.72.1348 1.9909 1.9909 0 0 0-.6166.3812l-.3169-.3678a.1816.1816 0 0 0-.1358-.0624h-.01a.1796.1796 0 0 0-.1796.18v4.0695a.1806.1806 0 0 0 .1796.181h.7662a.1806.1806 0 0 0 .1802-.181v-2.3478a.831.831 0 0 1 .0658-.3288.843.843 0 0 1 .181-.2706.8525.8525 0 0 1 .6066-.2478.8134.8134 0 0 1 .3255.0658.8515.8515 0 0 1 .4493.4522.8406.8406 0 0 1 .0658.3288v2.3511a.181.181 0 0 0 .1802.181h.7652a.1806.1806 0 0 0 .1797-.181v-2.3506a1.9537 1.9537 0 0 0-.1544-.772 2.0218 2.0218 0 0 0-.4217-.6318zm8.692-.4865h-3.0191a.1801.1801 0 0 0-.1792.1806v.7624a.1796.1796 0 0 0 .1792.1801h.1906a.1806.1806 0 0 1 .1801.1806v1.135a1.9504 1.9504 0 0 0 .154.7696 2.009 2.009 0 0 0 1.055 1.0574 1.906 1.906 0 0 0 .767.1554h.6744a.1806.1806 0 0 0 .18-.1811v-.7624a.1801.1801 0 0 0-.18-.1806h-.6762a.8396.8396 0 0 1-.3336-.0681.8749.8749 0 0 1-.2716-.1835.8477.8477 0 0 1-.1815-.2711.8387.8387 0 0 1-.0653-.3336v-1.135a.1806.1806 0 0 1 .1796-.1806h1.348a.1801.1801 0 0 0 .1802-.1801v-.7625a.1806.1806 0 0 0-.1816-.1825zm4.9081-.082h-.008a.1787.1787 0 0 0-.1396.0662l-.2645.3169a.1792.1792 0 0 1-.2535.0229 2.9934 2.9934 0 0 0-.202-.1568 2.5312 2.5312 0 0 0-.3774-.2235 2.2239 2.2239 0 0 0-.4079-.1491 1.7264 1.7264 0 0 0-.425-.0538 2.2506 2.2506 0 0 0-.8768.172 2.1862 2.1862 0 0 0-.719.4803 2.281 2.281 0 0 0-.4847.7424 2.4826 2.4826 0 0 0-.1768.9497 2.5998 2.5998 0 0 0 .1768.9888 2.1538 2.1538 0 0 0 .4846.7343 2.0795 2.0795 0 0 0 .7176.457 2.426 2.426 0 0 0 .8768.1577 1.684 1.684 0 0 0 .4227-.0543 2.3054 2.3054 0 0 0 .4064-.1468 2.4864 2.4864 0 0 0 .3774-.2197 3.3448 3.3448 0 0 0 .1959-.1472.1787.1787 0 0 1 .2583.0348l.2697.375a.1796.1796 0 0 0 .326-.1058v-4.0608a.1801.1801 0 0 0-.1788-.1806zm-1.0426 2.616a1.2947 1.2947 0 0 1-.2411.3846 1.2051 1.2051 0 0 1-.357.2687.9768.9768 0 0 1-.4354.101 1.2037 1.2037 0 0 1-.4346-.0785.9768.9768 0 0 1-.3545-.2321 1.086 1.086 0 0 1-.2383-.3779 1.5753 1.5753 0 0 1 0-1.0307 1.1022 1.1022 0 0 1 .2383-.3778.9864.9864 0 0 1 .3545-.2316 1.2075 1.2075 0 0 1 .4346-.0786.9711.9711 0 0 1 .4355.101 1.185 1.185 0 0 1 .3569.2687 1.2961 1.2961 0 0 1 .2411.3846 1.1913 1.1913 0 0 1 0 .8996zM.9561 9.9091H.1808a.1801.1801 0 0 0-.1806.18v4.0695a.181.181 0 0 0 .1806.181h.7738a.1806.1806 0 0 0 .1802-.181v-4.0694A.1801.1801 0 0 0 .955 9.909zm3.1688.3068a.181.181 0 0 0-.1363-.2987h-.8692a.1787.1787 0 0 0-.1362.0634L1.2367 12.011a.1796.1796 0 0 0 0 .2382l1.7465 2.03a.1787.1787 0 0 0 .1362.0629h.8682a.181.181 0 0 0 .1363-.2993l-1.551-1.794a.1806.1806 0 0 1 0-.2383zm1.6873-.3073h-.01a.1792.1792 0 0 0-.1363.0629l-.0362.0424-.72.8343a.1787.1787 0 0 0-.0438.1182v3.1927a.1801.1801 0 0 0 .1797.1805h.7652a.1806.1806 0 0 0 .1797-.1805v-4.07a.1806.1806 0 0 0-.1797-.1805Zm9.2043 2.0728a1.3819 1.3819 0 0 0-.4455-.2711 1.5248 1.5248 0 0 0-.5442-.0953H12.854a.2664.2664 0 0 1-.1982-.0848.283.283 0 0 1-.0824-.205.282.282 0 0 1 .2806-.281h2.1015a.1801.1801 0 0 0 .1796-.1802v-.7662a.1801.1801 0 0 0-.1796-.1806h-2.102a1.3819 1.3819 0 0 0-.5489.1096 1.391 1.391 0 0 0-.7438.7462 1.4367 1.4367 0 0 0 0 1.1007 1.4167 1.4167 0 0 0 .7438.753 1.3571 1.3571 0 0 0 .549.1114h1.2093a.2411.2411 0 0 1 .2416.2159.2383.2383 0 0 1-.2382.2597h-2.436a.1796.1796 0 0 0-.1791.1801v.7624a.1796.1796 0 0 0 .1792.1801h2.394a1.3905 1.3905 0 0 0 .9897-.4112 1.4624 1.4624 0 0 0 .3011-.447 1.3643 1.3643 0 0 0 .1115-.548 1.2666 1.2666 0 0 0-.1115-.5332 1.3009 1.3009 0 0 0-.2997-.415z\"},\"child\":[]}]})(props);\n};\nexport function SiKirby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.571 12l-2.857 1.48v.234h2.857V16H7.43v-2.286h2.857v-.25L7.429 12V9.143L12 11.598l4.571-2.455M12 0l10.286 5.999V18L12 24 1.714 18.001V6zM2.857 6.682v10.636L12 22.651l9.143-5.333V6.682L12 1.349Z\"},\"child\":[]}]})(props);\n};\nexport function SiKit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.5 11.633-2.434 2.408V8.687a.53.53 0 0 0-.533-.527.53.53 0 0 0-.533.527v6.624a.528.528 0 0 0 .532.526.533.533 0 0 0 .377-.153l2.974-2.939 2.974 2.94a.535.535 0 0 0 .754 0 .522.522 0 0 0 0-.746l-2.974-2.938L7.61 9.06a.522.522 0 0 0 0-.745.538.538 0 0 0-.753 0l-3.344 3.307c-.003 0-.005.003-.007.005l-.007.006v-.001zm8.826 4.206a.53.53 0 0 1-.533-.526V8.688a.53.53 0 0 1 .533-.528.53.53 0 0 1 .533.528v6.624a.53.53 0 0 1-.533.526v.001zm7.257-6.624v6.098c0 .29.238.526.532.526a.53.53 0 0 0 .533-.526V9.215h2.818A.53.53 0 0 0 24 8.688a.53.53 0 0 0-.533-.527h-6.702a.53.53 0 0 0-.533.527.53.53 0 0 0 .533.527h2.819-.001z\"},\"child\":[]}]})(props);\n};\nexport function SiKitsu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.429 5.441a12.478 12.478 0 0 0 1.916 2.056c.011.011.022.011.022.022.452.387 1.313.947 1.937 1.173 0 0 3.886 1.496 4.091 1.582a1.4 1.4 0 0 0 .237.075.694.694 0 0 0 .808-.549c.011-.065.022-.172.022-.248V5.161c.011-.667-.205-1.679-.398-2.239 0-.011-.011-.022-.011-.032A11.979 11.979 0 0 0 8.824.36L8.781.285a.697.697 0 0 0-.958-.162c-.054.032-.086.075-.129.119L7.608.36a4.743 4.743 0 0 0-.786 3.412 8.212 8.212 0 0 0-.775.463c-.043.032-.42.291-.71.56A4.803 4.803 0 0 0 1.87 4.3c-.043.011-.097.021-.14.032-.054.022-.107.043-.151.076a.702.702 0 0 0-.193.958l.043.075zM8.222 1.07c.366.614.678 1.249.925 1.917-.495.086-.98.215-1.453.388a3.918 3.918 0 0 1 .528-2.305zM4.658 5.463a7.467 7.467 0 0 0-.893 1.216 11.68 11.68 0 0 1-1.453-1.55 3.825 3.825 0 0 1 2.346.334zm13.048-.302a7.673 7.673 0 0 0-2.347-.474 7.583 7.583 0 0 0-3.811.818l-.215.108v3.918c0 .054 0 .258-.032.431a1.535 1.535 0 0 1-.646.98 1.545 1.545 0 0 1-1.152.247 2.618 2.618 0 0 1-.409-.118 747.6 747.6 0 0 1-3.402-1.313 8.9 8.9 0 0 0-.323-.129 30.597 30.597 0 0 0-3.822 3.832l-.075.086a.698.698 0 0 0 .538 1.098.676.676 0 0 0 .42-.118c.011-.011.022-.022.043-.032 1.313-.947 2.756-1.712 4.284-2.325a.7.7 0 0 1 .818.13.704.704 0 0 1 .054.915l-.237.388a20.277 20.277 0 0 0-1.97 4.306l-.032.129a.646.646 0 0 0 .108.538.713.713 0 0 0 .549.301.657.657 0 0 0 .42-.118c.054-.043.108-.086.151-.14l.043-.065a18.95 18.95 0 0 1 1.765-2.153 20.156 20.156 0 0 1 10.797-6.018c.032-.011.065-.011.097-.011.237.011.42.215.409.452a.424.424 0 0 1-.344.398c-3.908.829-10.948 5.469-8.483 12.208.043.108.075.172.129.269a.71.71 0 0 0 .538.301.742.742 0 0 0 .657-.398c.398-.754 1.152-1.593 3.326-2.497 6.061-2.508 7.062-6.093 7.17-8.364v-.129a7.716 7.716 0 0 0-5.016-7.451zm-6.083 17.762c-.56-1.669-.506-3.283.151-4.823 1.26 2.035 3.456 2.207 3.456 2.207-2.25.937-3.133 1.863-3.607 2.616z\"},\"child\":[]}]})(props);\n};\nexport function SiKlarna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.592 2v20H0V2h4.592zm11.46 0c0 4.194-1.583 8.105-4.415 11.068l-.278.283L17.702 22h-5.668l-6.893-9.4 1.779-1.332c2.858-2.14 4.535-5.378 4.637-8.924L11.562 2h4.49zM21.5 17a2.5 2.5 0 110 5 2.5 2.5 0 010-5z\"},\"child\":[]}]})(props);\n};\nexport function SiKleinanzeigen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.064 24c-3.234 0-4.816-2.245-5.137-2.71-.955.935-2.396 2.71-4.991 2.71-2.998 0-5.524-2.254-5.524-5.908V5.907C1.412 2.245 3.942 0 6.936 0c2.993 0 5.524 2.385 5.524 5.852a5.512 5.512 0 0 1 1.842-.314c3.083 0 5.524 2.515 5.524 5.538 0 .848-.161 1.602-.513 2.324a5.539 5.539 0 0 1 3.275 5.062c0 3.053-2.478 5.538-5.524 5.538zm-3.802-4.048c.795 1.383 2.132 2.202 3.802 2.202a3.692 3.692 0 0 0 3.683-3.692 3.689 3.689 0 0 0-2.518-3.505l-4.967 4.995zM6.936 1.846c-1.832 0-3.683 1.256-3.683 4.061v12.185c0 2.806 1.85 4.062 3.683 4.062 1.456 0 2.26-.736 3.557-2.037l.575-.576c-.297-.886-.45-1.869-.45-2.926V5.908c0-2.806-1.849-4.062-3.682-4.062zm5.524 6.031v8.738c0 .495.042.966.12 1.409l4.003-4.013c1.163-1.165 1.402-2.016 1.402-2.934 0-1.962-1.573-3.692-3.683-3.692-.657 0-1.285.169-1.842.493z\"},\"child\":[]}]})(props);\n};\nexport function SiKlm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.75 13.034H4.5l-2.25 2.257v-2.257H0v6.018h2.25v-2.257l2.25 2.257h3l-3.375-3.385zm3 0H7.5v6.018h6v-1.518H9.75zm10.5 0l-1.125 3.385L18 13.034h-3.75v6.018h2.25v-4.514l1.5 4.514h2.25l1.5-4.514v4.514H24v-6.018zM10.5 9.649c.725 0 1.313-.589 1.313-1.316s-.588-1.317-1.313-1.317-1.312.589-1.312 1.317.587 1.316 1.312 1.316zm1.688-1.316c0 .727.588 1.316 1.312 1.316.725 0 1.313-.589 1.313-1.316s-.588-1.317-1.313-1.317-1.312.589-1.312 1.317zm2.999 0c0 .727.588 1.316 1.312 1.316.725 0 1.313-.589 1.313-1.316s-.588-1.317-1.313-1.317-1.312.589-1.312 1.317zm-6.375 0c0-.727-.588-1.317-1.313-1.317s-1.312.589-1.312 1.317.588 1.316 1.313 1.316 1.312-.589 1.312-1.316zM7.5 10.025h9v1.505h-9zm4.125-2.821h.75v-.752h.75V5.7h-.75v-.753h-.75V5.7h-.75v.752h.75z\"},\"child\":[]}]})(props);\n};\nexport function SiKlook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.8 0A4.79 4.79 0 0 0 0 4.8v14.4C0 21.86 2.14 24 4.8 24h14.4c2.66 0 4.8-2.14 4.8-4.8V4.8C24 2.14 21.86 0 19.2 0H4.8zM12 3.449v.001c4.242 0 7.833 1.904 7.833 6.17 0 2.932-3.86 7.815-6.164 10.164-.99 1.008-2.32 1.036-3.338 0-2.303-2.349-6.164-7.232-6.164-10.164 0-4.162 3.476-6.171 7.833-6.171zm3.54 2.155l-5.05 4.96 5.05 4.956a1.84 1.84 0 0 0 0-2.634v-.001l-2.366-2.323 2.366-2.323a1.84 1.84 0 0 0 0-2.635zm-7.349.144v9.772a1.86 1.86 0 0 0 1.868-1.852V7.602a1.86 1.86 0 0 0-1.866-1.854h-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiKnative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.14 2.358 4.714 2.27-.915 1.584a.268.268 0 0 0-.032.182l.607 3.441a.263.263 0 0 0 .093.16l2.676 2.245c.048.041.11.064.174.064h1.878l.507 2.22a.492.492 0 0 1-.095.415l-5.237 6.567a.491.491 0 0 1-.383.184h-8.4a.491.491 0 0 1-.383-.184L.107 14.939a.492.492 0 0 1-.095-.415l1.869-8.189a.494.494 0 0 1 .266-.333l7.567-3.644a.49.49 0 0 1 .426 0ZM7.244 16.626h1.667v-2.429l.64-.784 1.822 3.213h1.965l-2.594-4.273 2.462-3.169h-2.065l-1.689 2.473c-.166.265-.342.53-.508.817h-.033v-3.29H7.244v7.442ZM19.281 2.352l2.975 1.083c.054.02.099.058.128.108l1.583 2.742c.029.05.039.108.029.165l-.55 3.118a.243.243 0 0 1-.083.145l-2.426 2.035a.245.245 0 0 1-.157.058h-3.166a.246.246 0 0 1-.158-.058l-2.425-2.035a.24.24 0 0 1-.084-.145l-.55-3.118a.244.244 0 0 1 .029-.165l1.583-2.742a.245.245 0 0 1 .129-.108l2.975-1.083a.243.243 0 0 1 .168 0Zm-.71 3.404c-.032-.092-.098-.137-.197-.137h-.487V8.57h.79V6.449c.088-.086.18-.153.278-.2a.694.694 0 0 1 .312-.072c.149 0 .261.045.338.136.076.091.114.218.114.382V8.57h.787V6.695c0-.164-.021-.315-.064-.452a.988.988 0 0 0-.192-.355.875.875 0 0 0-.313-.232 1.208 1.208 0 0 0-.697-.054 1.176 1.176 0 0 0-.436.203 1.956 1.956 0 0 0-.184.157l-.049-.206Z\"},\"child\":[]}]})(props);\n};\nexport function SiKnexdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.288v.126l-.095.249q-.02.052-.071.076l-2.847 1.29a.024.024 0 0 0 0 .044L24 13.444v.638q-.264.444-.722.655-.05.023-.1.002l-2.224-.902q-.05-.02-.1-.004l-.909.283a.086.087 59.4 0 1-.089-.023l-.822-.86q-.066-.067-.082.025-.3 1.698-1.343 3.057a.019.019 0 0 0 .015.03l1.364-.024q.049 0 .072.043l.416.795a.204.207 88 0 0 .104.095l2.142.908a.137.137 0 0 1 .078.086c.139.475.157 1.172-.426 1.334q-.05.014-.097-.004l-2.9-1.094a.028.028 0 0 0-.035.036l1.068 2.845q.019.05.002.1c-.183.563-.846.543-1.312.414a.176.175 86.1 0 1-.113-.1l-.901-2.137q-.023-.053-.074-.08l-.813-.415q-.047-.025-.047-.079l.018-1.148a.04.04 0 0 1 .004-.018q.024-.052.018-.107-.007-.075-.07-.031-1.44 1.026-3.137 1.247a.033.033 0 0 0-.019.056l.957.912q.045.043.027.102l-.263.826a.28.28 0 0 0 .008.19l.867 2.135q.018.043-.002.085-.19.403-.552.645h-.745l-1.3-2.866a.023.022 44.7 0 0-.04 0l-1.31 2.866h-.604q-.436-.246-.652-.7-.024-.05-.003-.1l.881-2.17q.02-.05.003-.101l-.28-.878a.093.093 0 0 1 .026-.098l.916-.861a.032.032 0 0 0-.016-.056q-1.623-.288-2.937-1.216-.051-.036-.05.026l.023 1.225q0 .055-.047.08l-.837.448a.15.149 87.5 0 0-.067.074l-.938 2.213q-.024.058-.084.075c-.488.144-1.19.164-1.376-.434q-.012-.043.003-.084l1.111-2.955q.037-.096-.06-.06l-2.867 1.08q-.057.021-.116.005c-.59-.162-.56-.902-.416-1.375q.018-.056.072-.08l2.208-.935q.055-.024.083-.077l.433-.83a.107.108 14.6 0 1 .098-.057l1.111.038q.091.003.039-.07a6.912 6.912 0 0 1-1.185-2.876.026.026 0 0 0-.044-.014l-.853.9q-.033.033-.078.019l-.904-.28a.19.184 41.8 0 0-.126.005l-2.222.9q-.048.02-.095-.002-.552-.26-.763-.797v-.327l.07-.15a.133.133 0 0 1 .065-.066l2.928-1.327a.023.023 0 0 0 0-.042L.2 10.734q-.051-.024-.074-.076c-.246-.56.232-1.032.696-1.259a.125.127 43.2 0 1 .105-.004l2.227.906q.05.02.103.004l.909-.287a.087.085 58.8 0 1 .086.023l.783.817q.052.056.066-.02.252-1.493 1.136-2.776.035-.05-.027-.05l-1.158.026a.09.089 75.4 0 1-.08-.047l-.416-.798a.273.272 87.6 0 0-.137-.126l-2.168-.918a.116.112 2.4 0 1-.061-.064c-.177-.475-.193-1.2.402-1.395q.045-.015.09.002L5.585 5.78q.085.032.053-.053L4.516 2.747a.13.13 0 0 1 0-.087c.206-.578.901-.573 1.389-.408a.133.132 88.3 0 1 .077.074l.934 2.21a.158.158 0 0 0 .07.075l.82.43q.049.024.05.079.028.584-.019 1.212-.006.08.058.032 1.21-.894 2.798-1.226.103-.02.027-.093l-.787-.748q-.044-.04-.026-.099l.288-.9q.016-.053-.004-.103L9.285.965q-.02-.05.003-.097c.22-.461.725-.976 1.261-.698q.055.029.081.085l1.282 2.824a.034.035 45.2 0 0 .063 0l1.313-2.9q.025-.056.08-.078c.568-.233 1.028.223 1.257.69q.028.058.004.115l-.906 2.23a.133.13 47.8 0 0-.003.09l.284.903a.106.103 60 0 1-.028.107l-.86.82a.028.029 28.1 0 0 .015.05 6.85 6.85 0 0 1 2.934 1.2q.058.042.057-.03l-.015-1.157q0-.047.041-.067l.827-.428q.058-.03.084-.09l.939-2.22q.02-.05.072-.066c.505-.153 1.192-.163 1.382.421q.014.042-.002.082l-1.094 2.924q-.028.073.045.046l2.961-1.114q.062-.024.125-.002c.577.192.553.888.408 1.377a.123.124 86.7 0 1-.07.078l-2.217.933q-.054.023-.081.075l-.434.832q-.03.059-.095.057l-1.202-.037q-.094-.003-.04.074.895 1.235 1.202 2.844.012.068.06.017l.779-.822q.028-.03.068-.018l.923.289q.053.016.103-.004l2.213-.897q.05-.02.1 0 .624.253.796.885zM10.04 9.025c.344-.205.719-.38 1.113-.461a.09.09 0 0 0 .072-.088V7.099q0-.075-.075-.061-1.2.22-2.162.94-.048.034-.006.076l.96.959q.045.045.1.012zm2.707-.469c.425.104.81.263 1.156.493q.058.037.105-.012l1.035-1.034a.032.032 0 0 0-.004-.049q-1.032-.744-2.278-.933-.062-.009-.062.053v1.42a.064.063 7.7 0 0 .048.062zm4.302 2.716a5.158 5.158 0 0 0-.9-2.192.055.055 0 0 0-.084-.007l-1.034 1.033q-.043.044-.01.096.314.5.442 1.079.013.06.075.06h1.45q.07 0 .06-.069zm-8.598.011c.089-.402.24-.773.462-1.12q.034-.053-.01-.097l-.966-.967a.03.03 0 0 0-.047.004q-.69.953-.89 2.171a.058.058 0 0 0 .058.067h1.32q.06 0 .073-.058zm5.15.785a1.644 1.644 0 0 0-1.643-1.644 1.644 1.644 0 0 0-1.644 1.644 1.644 1.644 0 0 0 1.644 1.643 1.644 1.644 0 0 0 1.644-1.643zm-6.592.807a5.07 5.07 0 0 0 .905 2.168q.037.051.083.007l.932-.933q.047-.048.01-.104-.342-.52-.48-1.136-.014-.062-.08-.062H7.062q-.061 0-.052.06zm9.067 2.246c.5-.66.824-1.425.962-2.248q.01-.059-.05-.059l-1.452.001a.08.08 0 0 0-.078.064q-.129.592-.481 1.144-.02.03.005.056l1.045 1.046q.026.026.049-.004zm-3.344 1.958a5.167 5.167 0 0 0 2.247-.885.048.048 0 0 0 .006-.072l-1.011-1.012q-.042-.041-.091-.01-.537.341-1.145.477-.066.014-.066.08v1.371q0 .06.06.05zm-3.68-.9a5.1 5.1 0 0 0 2.131.88q.067.012.067-.055l.001-1.351q0-.064-.063-.078-.61-.132-1.114-.45a.057.057 0 0 0-.07.007l-.958.96q-.048.048.006.087z\"},\"child\":[]}]})(props);\n};\nexport function SiKnime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.445 21.393 11.54-.775.451.775zM7.56 11.113l-5.092 10.28h-.904Zm10.427 2.652-6.43-9.505.452-.775zm2.57 5.216.627.896-10.652.707zM4.655 20.976l-1.143.09 4.709-9.488Zm6.173-14.667.476-.998 5.984 8.782zm8.272 11.055.847 1.015-8.685 1.413zM6.76 20.532l-1.32.224 3.11-8.162Zm3.406-12.189.472-1.207 5.558 6.732Zm7.403 7.54 1.13 1.016-6.378 1.98zm-8.759 4.08-1.46.448 1.46-6.44zm.8-9.539.363-1.48 4.868 4.477zm-.348 9.402v-7.851l.244-1.085 6.864 3.926.834.758L10.34 19.5zM12.01 1.694 0 22.306h24z\"},\"child\":[]}]})(props);\n};\nexport function SiKnip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5176 0C2.015 0 0 2.0149 0 4.5176v14.9648C0 21.985 2.0149 24 4.5176 24h14.9648C21.985 24 24 21.9851 24 19.4824V4.5176C24 2.015 21.9851 0 19.4824 0Zm12.9659 2.5467a3.4 3.4 0 0 1 .247.008l-5.5895 9.7468a1.935 1.935 0 0 1-.7084.9326c-.3034.1993-.468.1755-.7691.2833a1.08 1.08 0 0 0-.6235.5365l-.1038.3309c-.0933.2952-.2401.5905-.0203.8785.145.1894.4199.2598.7835.2474.3156.0641.6143.1936.8767.3801.2693.1999.4987.4485.6764.7328.5186 1.0066.5533 2.1165-.1739 3.3946-.8005 1.5062-1.9142 2.0284-3.194 2.0094-.8294-.1115-1.3981-.4927-1.7493-1.0958-.5398-.9266-.5312-1.9266-.1804-2.9074.26-.6607.5834-1.2947.9652-1.8933l.9865-2.4726.0964.091 5.1732-9.1073c.9693-1.4047 2.0802-2.0904 3.3073-2.0955M4.7507 7.4368c1.4697-.0032 2.4187.5759 3.0384 1.5236.1578.293.2594.613.2999.9434a2.31 2.31 0 0 1-.096.957c-.191.309-.2655.5828-.1715.8037.142.3332.4715.3512.7743.4158l.339.0729c.131.0057.2622-.012.3871-.0523l-.6167 1.1046-.0216-.0013.0058.0278-.0513.0906-2.559-.3521c-.709.0374-1.42.0057-2.1229-.0947-1.0254-.1774-1.9032-.6698-2.4392-1.59-.349-.5992-.403-1.2871-.0853-2.0598.615-1.1226 1.6225-1.8272 3.319-1.7892M4.7198 8.544a3.2 3.2 0 0 0-1.74.5275c-1.0344.7359-.6694 1.8267.2983 2.4018a2.557 2.557 0 0 0 1.4755.34 3.62 3.62 0 0 0 1.1605-.2512 1.82 1.82 0 0 0 .9709-.8359l-.0008-.0012c.3139-.6248.0415-1.2115-.454-1.6336-.3968-.339-.9306-.5205-1.5866-.5457a3 3 0 0 0-.1238-.0017m18.0086 2.5915c-.5746 1.1979-1.756 1.9016-3.5693 2.0616l-6.9009.005 1.1844-2.0227zm-11.7129.5823a.535.535 0 0 0-.2764.0725.536.536 0 0 0-.1338.8185.5363.5363 0 0 0 .8657-.6243.535.535 0 0 0-.4555-.2668zm-.7458 4.8196a1.822 1.822 0 0 0-1.2068.4308 3.59 3.59 0 0 0-.7912.8854 2.547 2.547 0 0 0-.433 1.45c.0229 1.1254.7918 1.9811 1.9428 1.4458a3.21 3.21 0 0 0 1.3815-1.354c.298-.5895.4042-1.142.3043-1.6558-.1227-.6392-.4978-1.1643-1.196-1.1996z\"},\"child\":[]}]})(props);\n};\nexport function SiKnowledgebase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.1 5.52V1.5h-.18c-3.36.15-6.15 2.31-7.83 4.02l-.09.09-.09-.09C10.2 3.81 7.44 1.65 4.08 1.5H3.9v4.02H0v6.93c0 1.68.06 3.36.18 4.74a5.57 5.57 0 005.19 5.1c2.13.12 4.38.21 6.63.21s4.5-.09 6.63-.24a5.57 5.57 0 005.19-5.1c.12-1.38.18-3.06.18-4.74v-6.9zm0 6.93c0 1.59-.06 3.15-.18 4.41-.09.81-.75 1.47-1.56 1.5a90 90 0 01-12.72 0c-.81-.03-1.5-.69-1.56-1.5-.12-1.26-.18-2.85-.18-4.41V5.52c2.82.12 5.64 3.15 6.48 4.32L12 12.09l1.62-2.25c.84-1.2 3.66-4.2 6.48-4.32z\"},\"child\":[]}]})(props);\n};\nexport function SiKnown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.387 16.926h.604v1.936h-6.086v-1.936h.904s.333-.072.26-.386l-2.392-3.776-1.893 1.847v1.322c0 .653.324.993.687.993h.844v1.936H5.414v-1.936h.741c.364 0 .688-.34.688-.993V7.992c0-.364-.324-.855-.688-.855h-.741V5.201h5.901v1.936h-.844c-.363 0-.687.491-.687.855v3.83l4.087-4.144a.316.316 0 0 0-.219-.541h-.747V5.201H19v1.936h-.872c-.363 0-.867.176-1.225.525l-3.058 2.985 3.396 5.276c.304.434.772 1.003 1.146 1.003zM24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12zm-1.684 0c0-5.697-4.619-10.316-10.316-10.316C6.303 1.684 1.684 6.303 1.684 12c0 5.697 4.619 10.316 10.316 10.316 5.697 0 10.316-4.619 10.316-10.316z\"},\"child\":[]}]})(props);\n};\nexport function SiKoa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 5.587v12.757h1.19v-4.099l.46-.527 3.147 4.626h1.19L2.33 12.97l2.773-3.13h-.17L1.19 14.058v-8.47zm11.039 4.185c-1.19 0-2.177.391-2.96 1.173-.77.783-1.156 1.883-1.156 3.3 0 1.418.374 2.467 1.122 3.147.749.68 1.718 1.02 2.909 1.02 1.202 0 2.188-.39 2.96-1.173.782-.783 1.173-1.883 1.173-3.3 0-1.417-.374-2.466-1.122-3.147-.749-.68-1.724-1.02-2.926-1.02zm8.896 0c-1.043 0-2.07.232-3.079.697l.068.12c.261-.148.67-.296 1.225-.443.567-.159 1.06-.238 1.48-.238.42 0 .76.057 1.02.17.26.102.442.227.545.374.102.148.18.3.238.46.068.147.09.272.068.374.007.97 0 1.988 0 2.976a9.269 9.269 0 00-.834-.034c-.306 0-.64.017-1.003.051-1.463.091-2.41.34-2.841.749-.215.204-.346.391-.391.561-.046.17-.068.329-.068.476 0 .136.011.273.034.409.193 1.292 1.003 1.939 2.432 1.939 1.225 0 2.115-.505 2.67-1.514v.357c0 .181.131.397.392.646.283.295.81.443 1.582.443H24v-.136h-.527l-.187-.034c-.136-.012-.272-.103-.409-.273-.124-.181-.187-.436-.187-.765v-5.698c0-.363-.147-.709-.442-1.038-.498-.557-1.564-.624-2.313-.63zm-8.862.136c.862 0 1.553.329 2.075.986.522.658.783 1.673.783 3.045 0 1.36-.284 2.427-.85 3.198-.568.76-1.282 1.14-2.144 1.14-.862 0-1.554-.33-2.075-.987-.522-.658-.783-1.667-.783-3.028 0-1.372.284-2.438.85-3.198.568-.77 1.282-1.156 2.144-1.156zm9.491 4.456c.318 0 .63.012.936.034v2.058c-.034.386-.295.789-.783 1.208a2.416 2.416 0 01-1.616.613c-.907 0-1.411-.601-1.513-1.803a3.155 3.155 0 01-.02-.307c0-.499.131-.89.392-1.173.26-.284.822-.477 1.684-.579.314-.038.64-.039.92-.05z\"},\"child\":[]}]})(props);\n};\nexport function SiKoc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.72 9.887c-1.313-3.731-5.036-3.932-5.414-3.943-1.667-.036-3.511.541-4.917 1.906-.568.506-.97 1.095-1.395 1.719-.426-.636-.828-1.213-1.395-1.719C9.204 6.485 7.36 5.908 5.694 5.944c-.39.011-4.114.211-5.414 3.943-.46 1.33-.354 3.06.331 4.33.686 1.46 2.329 2.66 4.066 2.543 1.253-.035 2.624-.824 3.132-2.107.426-1.141.296-2.377-.685-3.354.024.247.035.6-.213.918-.39.541-1.016.683-1.666.447-.568-.259-.78-.67-.721-1.212.035-.46.413-.812.803-.989.757-.33 1.454-.164 2.14.483 1.123 1.247 1.253 3.13 1.785 4.567.378 1.177.969 2.2 2.28 2.495.154.035.32.059.485.047.166 0 .331-.012.485-.047 1.312-.294 1.903-1.318 2.281-2.495.532-1.436.662-3.32 1.773-4.567.686-.647 1.383-.812 2.14-.483.39.177.756.53.803.989.06.541-.153.953-.72 1.212-.65.236-1.265.094-1.667-.447-.248-.318-.237-.671-.213-.918-.981.977-1.111 2.213-.686 3.354.509 1.283 1.88 2.072 3.133 2.107 1.725.118 3.368-1.07 4.054-2.542.674-1.271.78-3.001.32-4.331zm-2.637 4.449c-.792.694-1.844.894-2.695.506-.508-.248-.886-.683-1.004-1.154.72.718 2.02 1.071 3.203-.176 0 0 1.11-1.024.484-2.966-.319-.965-1.489-1.754-2.47-1.86-1.466-.235-2.837.259-3.794 1.589-1.123 1.73-1.265 3.66-2.092 5.59a.732.732 0 0 1-.721.448.732.732 0 0 1-.721-.447c-.816-1.919-.946-3.837-2.08-5.58-.958-1.33-2.341-1.824-3.795-1.588-.98.094-2.163.894-2.47 1.86-.627 1.941.484 2.965.484 2.965 1.194 1.248 2.483.883 3.204.177-.119.47-.485.906-1.005 1.153-.851.389-1.915.177-2.707-.506-1.17-1.153-1.347-2.636-.886-4.001.555-1.66 2.246-2.484 3.581-2.59 1.584-.141 3.77.824 4.645 2.484.201.376.627 1.365.627 1.365h2.222s.426-.989.626-1.365c.875-1.648 3.062-2.613 4.646-2.484 1.335.106 3.026.942 3.581 2.59.485 1.353.307 2.836-.863 3.99z\"},\"child\":[]}]})(props);\n};\nexport function SiKodak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.496 9.076a.735.735 0 0 0 .84-.844c0-.51-.255-.771-.84-.771s-.835.263-.835.77a.733.733 0 0 0 .835.845zm.128 2.126h-.82v1.538h.82c.448 0 .634-.307.634-.81 0-.494-.186-.728-.634-.728zM2.406 12.848a1.448 1.448 0 0 1-.346-.753 1.058 1.058 0 0 1 .173-.603l6.739-9.138a.447.447 0 0 0 .077-.282.51.51 0 0 0-.52-.51H1.54A1.56 1.56 0 0 0 0 3.106v17.805a1.53 1.53 0 0 0 1.536 1.526h6.993a.513.513 0 0 0 .52-.505v-.005a.63.63 0 0 0-.096-.32l-6.547-8.759zM20.03 16.01h.928l-.464-1.154-.464 1.154zm2.468-14.446h-6.782a2.223 2.223 0 0 0-1.522.716L2.905 11.887c-.1.106-.1.271 0 .377l11.59 9.74c.346.279.776.432 1.22.434h6.763A1.517 1.517 0 0 0 24 20.926V3.11a1.542 1.542 0 0 0-1.502-1.546zM19.25 3.306h.643v1.166l1.157-1.166h.896l-1.295 1.272 1.345 1.268h-.918l-1.184-1.162v1.162h-.644v-2.54zm1.332 3.621c.945 0 1.47.437 1.47 1.299 0 .846-.51 1.367-1.47 1.367s-1.47-.521-1.47-1.367c0-.863.527-1.299 1.472-1.299h-.002zm1.392 5c0 .824-.367 1.317-1.272 1.317h-1.447v-2.565h1.447c.905 0 1.272.425 1.272 1.248zm-.896 8.703-1.184-1.163v1.163h-.643v-2.54h.643v1.166l1.158-1.166h.855l-1.252 1.272L22 20.63h-.922zm.325-3.692-.18-.449h-1.286l-.176.449h-.685l1.1-2.586h.848l1.096 2.586h-.717z\"},\"child\":[]}]})(props);\n};\nexport function SiKodi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.03.047c-.226 0-.452.107-.669.324-.922.922-1.842 1.845-2.763 2.768-.233.233-.455.48-.703.695-.31.267-.405.583-.399.988.02 1.399.008 2.799.008 4.198 0 1.453-.002 2.907 0 4.36 0 .11.002.223.03.327.087.337.303.393.546.15 1.31-1.31 2.618-2.622 3.928-3.933l4.449-4.453c.43-.431.43-.905 0-1.336L12.697.37c-.216-.217-.442-.324-.668-.324zm7.224 7.23c-.223 0-.445.104-.65.309L14.82 11.37c-.428.429-.427.895 0 1.322l3.76 3.766c.44.44.908.44 1.346.002 1.215-1.216 2.427-2.433 3.644-3.647.182-.18.353-.364.43-.615v-.33c-.077-.251-.246-.436-.428-.617-1.224-1.22-2.443-2.445-3.666-3.668-.205-.205-.429-.307-.652-.307zM4.18 7.611c-.086.014-.145.094-.207.157L.209 11.572c-.28.284-.278.677.004.96l2.043 2.046c.59.59 1.177 1.182 1.767 1.772.169.168.33.139.416-.084.044-.114.062-.242.063-.364.004-1.283.004-2.567.004-3.851h-.002V8.184c0-.085-.01-.169-.022-.252-.019-.135-.072-.258-.207-.309a.186.186 0 0 0-.095-.012zm7.908 6.838c-.224 0-.447.106-.656.315L7.66 18.537c-.433.434-.433.899.002 1.334 1.215 1.216 2.43 2.43 3.643 3.649.18.18.361.354.611.433h.33c.244-.069.423-.226.598-.402 1.222-1.23 2.45-2.453 3.676-3.68.43-.43.427-.905-.004-1.338l-3.772-3.773c-.208-.208-.432-.311-.656-.31z\"},\"child\":[]}]})(props);\n};\nexport function SiKoenigsegg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.6396 2.2779A27.1802 27.1802 0 0 0 11.997 0a27.1795 27.1795 0 0 0-4.6366 2.2779C4.8482 3.8075 3.357 5.2707 3.357 5.2707a32.0542 32.0542 0 0 0 1.0293 7.2991C5.214 15.7228 7.3082 20.6134 11.997 24c4.6887-3.3866 6.7837-8.2771 7.6105-11.4302a32.058 32.058 0 0 0 1.0354-7.2991s-1.4911-1.4632-4.0033-2.9928zm2.7246 10.2285a21.9594 21.9594 0 0 1-2.33 5.5616 19.0142 19.0142 0 0 1-5.0372 5.6214 18.9938 18.9938 0 0 1-5.0372-5.6214 21.9617 21.9617 0 0 1-2.3292-5.5616 32.5174 32.5174 0 0 1-1.0271-7.1299 24.9492 24.9492 0 0 1 3.883-2.8848A27.3813 27.3813 0 0 1 11.997.2653a27.3813 27.3813 0 0 1 4.5104 2.225 24.9477 24.9477 0 0 1 3.8823 2.8862 32.6127 32.6127 0 0 1-1.0255 7.1299zm-2.9226-6.3636c-2.1796-.8207-3.682-1.2394-4.4469-1.2394-.764 0-2.2658.424-4.4461 1.2394-1.2546.4731-3.0579 1.241-3.0579 1.241a38.8137 38.8137 0 0 0 .8934 4.9246c.7497 2.8567 2.5068 7.1873 6.6106 10.4053 4.1068-3.2173 5.8617-7.5478 6.6107-10.4053a38.822 38.822 0 0 0 .894-4.9254s-1.8032-.7655-3.0578-1.2394zm1.841 6.081c-.7602 2.8983-2.4683 6.9733-6.2864 10.0621-3.8241-3.0888-5.523-7.1646-6.2864-10.0622a37.773 37.773 0 0 1-.8495-4.6313 91.5984 91.5984 0 0 1 2.8122-1.136c2.6678-1.0058 3.8242-1.219 4.3283-1.219.504 0 1.6611.2116 4.3275 1.2183a93.1855 93.1855 0 0 1 2.8129 1.136 37.7783 37.7783 0 0 1-.86 4.6312h.0014zm-3.32 6.2425c.2192-.3136.4247-.6295.619-.9455l-1.4163.5646zm1.3256-2.1985a19.7708 19.7708 0 0 0 .6447-1.3944l-2.021.8313zm1.0157-2.3467c.1716-.4776.3175-.9363.4422-1.3724l-2.2348.7633 1.7926.6084zm.6923-2.3489c.1119-.47.2116-.9401.2978-1.3928l-2.4079.7436zM16.261 8.5318l2.2166.6205c.081-.489.1414-.9326.1913-1.2939l-2.408.6726Zm-1.2825-2.1124c-1.8706-.6476-2.6626-.758-2.9823-.758-.3204 0-1.1117.1104-2.983.758l2.983.9168zm-2.9823 12.8677-1.6158.8797a17.133 17.133 0 0 0 1.6158 1.5614 17.1347 17.1347 0 0 0 1.6158-1.5614l-1.6158-.8805zm-3.8854-8.3686 3.8824 1.1918 3.8846-1.1926-3.8846-1.1918-3.8831 1.1926zm.3711 2.392 3.5113 1.1918 3.5113-1.1918-3.5113-1.1926zm-.749-4.781 4.2603 1.1911 4.2617-1.191-4.2617-1.1919-4.261 1.1918Zm2.8085-5.1331-.2441.2418a1.0959 1.0959 0 0 0 1.5281.0197v.6318h.35v-.6379a1.0959 1.0959 0 0 0 1.528-.0196l-.253-.2358a.7527.7527 0 0 1-1.2841-.5298.7482.7482 0 0 1 .464-.6923.7543.7543 0 0 1 .82.1625l.2434-.2426a1.1011 1.1011 0 0 0-1.5282-.0196v-.631h-.3431v.631a1.1011 1.1011 0 0 0-1.5274.0196l.2434.2419a.7527.7527 0 0 1 1.2832.5305.7467.7467 0 0 1-.464.6923.7543.7543 0 0 1-.8192-.1625ZM8.4026 17.5171c.1927.3159.399.6318.619.9447l.7912-.3764zm-1.3438-2.6437c.1905.4557.4036.9228.6447 1.3944l1.3762-.5646Zm-.8177-2.3247c.1247.436.2706.8948.4421 1.3717l1.7927-.6084ZM5.6924 10.18c.0862.452.1852.922.297 1.3921l2.1162-.6492-2.4132-.7436zm-.3718-2.3255c.046.3613.1103.8042.189 1.294l2.218-.6176Zm3.7606 7.8456 2.9135 1.1903 2.9142-1.1903-2.9142-1.194Zm.7414 2.3867 2.1751 1.1926 2.1766-1.1926-2.1766-1.1926z\"},\"child\":[]}]})(props);\n};\nexport function SiKofax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.38 12.94l.576-.5 1.273 1.698h1.835l-2.001-2.593 1.85-1.683h-1.82L1.38 11.545V9.862H0v4.276h1.38z M7.353 9.726c-1.455 0-2.683.5-2.683 2.274s1.228 2.274 2.683 2.274 2.684-.5 2.684-2.274-1.228-2.274-2.684-2.274zm0 3.593c-.728 0-1.228-.41-1.228-1.319 0-.894.5-1.319 1.228-1.319.743 0 1.228.425 1.228 1.32 0 .894-.5 1.318-1.228 1.318zM11.795 14.138v-1.653h2.365v-.925h-2.365v-.742h2.547v-.956h-3.926v4.276zM22.21 11.91l1.593-2.063h-1.638L21.407 11l-.758-1.153h-1.637l1.592 2.062-1.607 2.001-1.668-4.048h-1.683l-1.759 4.276h1.471l.243-.698h1.804l.242.698h2.896l.88-1.289.879 1.289H24zm-6.276.651l.576-1.622h.015l.577 1.622z\"},\"child\":[]}]})(props);\n};\nexport function SiKofi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.881 8.948c-.773-4.085-4.859-4.593-4.859-4.593H.723c-.604 0-.679.798-.679.798s-.082 7.324-.022 11.822c.164 2.424 2.586 2.672 2.586 2.672s8.267-.023 11.966-.049c2.438-.426 2.683-2.566 2.658-3.734 4.352.24 7.422-2.831 6.649-6.916zm-11.062 3.511c-1.246 1.453-4.011 3.976-4.011 3.976s-.121.119-.31.023c-.076-.057-.108-.09-.108-.09-.443-.441-3.368-3.049-4.034-3.954-.709-.965-1.041-2.7-.091-3.71.951-1.01 3.005-1.086 4.363.407 0 0 1.565-1.782 3.468-.963 1.904.82 1.832 3.011.723 4.311zm6.173.478c-.928.116-1.682.028-1.682.028V7.284h1.77s1.971.551 1.971 2.638c0 1.913-.985 2.667-2.059 3.015z\"},\"child\":[]}]})(props);\n};\nexport function SiKomoot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.8 14.829l2.2-3.43 2.2 3.43 5.962 5.962A11.946 11.946 0 0 1 12 24c-3.043 0-5.935-1.14-8.162-3.209zM0 12C0 5.385 5.385 0 12 0c6.62 0 12 5.385 12 12 0 2.663-.855 5.175-2.469 7.284l-6.018-6.018c.15-.412.226-.839.226-1.27A3.743 3.743 0 0 0 12 8.257a3.743 3.743 0 0 0-3.739 3.739c0 .431.075.858.226 1.27l-6.018 6.018A11.865 11.865 0 0 1 0 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiKonami (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.167 12.562.59-1.298a1.53 1.53 0 0 0 .062-.158h.012c.013.04.037.095.061.158l.575 1.298zm1.887 1.325h1.036l-1.635-3.537a.396.396 0 0 0-.359-.233h-.717c-.041 0-.041.04-.012.055.085.044.146.19.081.325l-1.582 3.39h.702l.39-.87h1.713zm-4.089-3.77v2.152c0 .107.004.174.008.269h-.008a6.068 6.068 0 0 0-.273-.348l-1.618-1.871c-.127-.147-.229-.202-.461-.202H8.79c-.037 0-.041.04-.013.055.123.056.22.123.22.345v3.37h.616v-2.425c0-.13-.004-.23-.008-.34h.008c.114.154.27.356.396.502l1.944 2.263h.322a.305.305 0 0 0 .306-.305v-3.465zm11.733 0h-.856c-.04 0-.045.04-.016.055.126.056.224.123.224.345v3.37H24v-3.465a.3.304 0 0 0-.302-.305m-1.386 3.77-.562-3.442a.401.401 0 0 0-.384-.328h-.53l-.921 2.144a1.866 1.866 0 0 0-.09.23h-.008a1.935 1.935 0 0 0-.081-.218l-.816-1.91a.401.401 0 0 0-.367-.246h-.807c-.04 0-.045.04-.016.055.11.048.192.131.155.34l-.55 3.375h.582l.367-2.382c.017-.118.041-.268.045-.344h.004c.037.1.086.218.139.34l1.015 2.386h.302l1.027-2.429c.057-.142.098-.245.126-.324h.004c.013.095.029.237.053.38l.38 2.373zm-16.205-.25c-.758 0-1.19-.739-1.19-1.59 0-.973.432-1.685 1.19-1.685s1.19.744 1.19 1.59c0 1.001-.432 1.686-1.19 1.686m0-3.66c-1.272 0-2.21.887-2.21 2.022 0 1.14.865 2.022 2.21 2.022 1.272 0 2.206-.883 2.206-2.022 0-1.135-.86-2.021-2.206-2.021M4.33 13.85c-.327-.07-.58-.225-.856-.506-.302-.309-1.387-1.586-1.387-1.586l1.729-1.642h-.934L1.305 11.66c-.07.067-.11.11-.147.154H1.15c.004-.051.004-.107.004-.158v-1.234a.3.304 0 0 0-.302-.305h-.82c-.036 0-.044.04-.012.055.123.056.22.123.22.345v3.37h.914V12.15c0-.047 0-.079-.004-.13h.008c.032.051.09.11.147.182 0 0 .962 1.131 1.064 1.238.407.427.978.578 1.957.483.053-.004.053-.06.004-.072\"},\"child\":[]}]})(props);\n};\nexport function SiKong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.88 18.96h4.405l2.286 2.876-.393.979h-5.69l.139-.979-1.341-2.117.594-.759Zm3.152-12.632 2.36-.004L24 18.97l-.824 3.845h-4.547l.283-1.083L9 9.912l2.032-3.584Zm4.17-5.144 4.932 3.876-.632.651.855 1.191v1.273l-2.458 2.004-4.135-4.884h-2.407l.969-1.777 2.876-2.334ZM4.852 13.597l3.44-2.989 4.565 5.494-1.296 2.012h-4.21l-2.912 3.822-.665.879H0v-4.689l3.517-4.529h1.335Z\"},\"child\":[]}]})(props);\n};\nexport function SiKongregate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.667 0A2.667 2.667 0 0 0 0 2.667v18.666A2.667 2.667 0 0 0 2.667 24h18.666A2.667 2.667 0 0 0 24 21.333V2.667A2.667 2.667 0 0 0 21.333 0ZM5.6 5.333h2.667v5.334H13.6v2.666H8.267v5.334H5.6Zm8 8h1.678a1.6 1.6 0 0 1 1.43.885L17.6 16h1.333v2.667h-2.666zm0-2.666 2.667-5.334h2.666V8H17.6l-.891 1.782a1.6 1.6 0 0 1-1.431.885z\"},\"child\":[]}]})(props);\n};\nexport function SiKonva (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm1.391 18.541-.239-3.76-2.391-1.608.152 5.129-4.325.152-.173-13.409L10.5 4.98l.087 5.346 2.217-1.608.109-3.781 4.412.283-.348 4.586-2.608 1.608 2.673 1.174.913 5.694-4.564.259z\"},\"child\":[]}]})(props);\n};\nexport function SiKotlin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 24H0V0h24L12 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiKoyeb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12.822V7.044L11.985.115 24 7.037v5.77L11.992 5.892Zm11.985 1.114L1.92 19.759 0 18.645v-3.557l11.985-6.93L24 15.089v3.542l-1.92 1.13Zm-3.028 9.949L3.95 21.004l8.036-4.656 8.066 4.656-5.009 2.88-3.05-1.759Z\"},\"child\":[]}]})(props);\n};\nexport function SiKrita (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.652.76a.625.625 0 00-.5.246c-.352.448-.035.898.362 1.262.206.189 1.77 1.794 3.428 3.527a11.054 11.054 0 011.815-1.983C3.667 2.515 1.694 1.266 1.461 1.1 1.201.914.917.762.652.76zm5.105 3.052c1.848 1.148 3.786 2.332 4.693 2.84 1.469.821 3.758 2.684 4.092 4.434.535.466 2.182 1.916 2.596 2.413.698-.211 1.518.133 2.06 1.12.866 1.583.227 3.747-1.968 4.988a5.42 5.42 0 01-.296.267l.296-.267c1.14-1.468-.714-2.44-1.175-3.864a2.06 2.06 0 01-.11-.78c-.533-.282-2.11-1.452-2.795-1.965-1.801.16-4.207-1.773-5.35-3.08-.7-.802-2.32-2.517-3.858-4.123a11.052 11.052 0 00-2.046 6.393A11.052 11.052 0 1012.948 1.136c-2.64.004-5.19.954-7.19 2.676zm8.71 7.552c-.515.126-.968.831-1.118 1.306-.038.115-.04.303.066.342.802.592 1.556 1.168 2.4 1.7.162-.393.746-.963 1.096-1.2zm-11.53 1.639c.812 1.898 5.798 7.17 12.06 2.695a2.07 2.07 0 00.114.715c.46 1.42 2.36 2.427 1.238 3.89-2.135 1.364-5 1.201-6.989.528-3.558-1.204-5.914-4.332-6.424-7.828zm13.782.7a.771.771 0 00-.065.049c-.004.003-.008.008-.011.008.003-.003.007-.008.01-.008.024-.015.044-.034.066-.048z\"},\"child\":[]}]})(props);\n};\nexport function SiKtm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 15.735h3.354l.843-2.06 1.55 2.06h7.225l2.234-2.081-.372 2.081h2.83L20 13.675l-.32 2.06h3.052L24 9.99h-3.068l-2.486 2.191.48-2.19h-2.942l-3.209 3.216 1.342-3.938h4.907l.225-1.003H6.381l-.378 1.003h4.732l-1.994 5.054-1.572-2.066L9.886 9.99H7.612l-2.787 2.23.938-2.23H2.44L0 15.735Z\"},\"child\":[]}]})(props);\n};\nexport function SiKtor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 0 0 8l8 8V8h8zm8 8v8H8l8 8 8-8z\"},\"child\":[]}]})(props);\n};\nexport function SiKuaishou (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.315 12.264c2.33 0 4.218 1.88 4.218 4.2V19.8c0 2.32-1.888 4.2-4.218 4.2h-6.202a4.218 4.218 0 0 1-4.023-2.938l-3.676 1.833a2.04 2.04 0 0 1-2.731-.903 2.015 2.015 0 0 1-.216-.907v-5.94a2.03 2.03 0 0 1 2.035-2.024 2.044 2.044 0 0 1 .919.218l3.673 1.85a4.218 4.218 0 0 1 4.02-2.925zm-.062 2.162h-6.078c-1.153 0-2.09.921-2.108 2.065v3.247c0 1.148.925 2.081 2.073 2.1h6.113c1.153 0 2.09-.922 2.109-2.065v-3.247a2.104 2.104 0 0 0-2.074-2.1zM4.18 15.72a.554.554 0 0 0-.555.542v3.734a.556.556 0 0 0 .798.496l.01-.004 3.463-1.756V17.51l-3.467-1.73a.557.557 0 0 0-.249-.06zM9.28 0a5.667 5.667 0 0 1 4.98 2.965 4.921 4.921 0 0 1 3.36-1.317c2.714 0 4.913 2.177 4.913 4.863 0 2.686-2.2 4.863-4.912 4.863a4.921 4.921 0 0 1-3.996-2.034 5.651 5.651 0 0 1-4.345 2.034c-3.131 0-5.67-2.546-5.67-5.687C3.61 2.546 6.149 0 9.28 0Zm8.34 3.926c-1.441 0-2.61 1.157-2.61 2.585s1.169 2.585 2.61 2.585c1.443 0 2.612-1.157 2.612-2.585s-1.169-2.585-2.611-2.585zM9.28 2.287a3.395 3.395 0 0 0-3.39 3.4c0 1.877 1.518 3.4 3.39 3.4a3.395 3.395 0 0 0 3.39-3.4c0-1.878-1.518-3.4-3.39-3.4z\"},\"child\":[]}]})(props);\n};\nexport function SiKubernetes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.204 14.35l.007.01-.999 2.413a5.171 5.171 0 0 1-2.075-2.597l2.578-.437.004.005a.44.44 0 0 1 .484.606zm-.833-2.129a.44.44 0 0 0 .173-.756l.002-.011L7.585 9.7a5.143 5.143 0 0 0-.73 3.255l2.514-.725.002-.009zm1.145-1.98a.44.44 0 0 0 .699-.337l.01-.005.15-2.62a5.144 5.144 0 0 0-3.01 1.442l2.147 1.523.004-.002zm.76 2.75l.723.349.722-.347.18-.78-.5-.623h-.804l-.5.623.179.779zm1.5-3.095a.44.44 0 0 0 .7.336l.008.003 2.134-1.513a5.188 5.188 0 0 0-2.992-1.442l.148 2.615.002.001zm10.876 5.97l-5.773 7.181a1.6 1.6 0 0 1-1.248.594l-9.261.003a1.6 1.6 0 0 1-1.247-.596l-5.776-7.18a1.583 1.583 0 0 1-.307-1.34L2.1 5.573c.108-.47.425-.864.863-1.073L11.305.513a1.606 1.606 0 0 1 1.385 0l8.345 3.985c.438.209.755.604.863 1.073l2.062 8.955c.108.47-.005.963-.308 1.34zm-3.289-2.057c-.042-.01-.103-.026-.145-.034-.174-.033-.315-.025-.479-.038-.35-.037-.638-.067-.895-.148-.105-.04-.18-.165-.216-.216l-.201-.059a6.45 6.45 0 0 0-.105-2.332 6.465 6.465 0 0 0-.936-2.163c.052-.047.15-.133.177-.159.008-.09.001-.183.094-.282.197-.185.444-.338.743-.522.142-.084.273-.137.415-.242.032-.024.076-.062.11-.089.24-.191.295-.52.123-.736-.172-.216-.506-.236-.745-.045-.034.027-.08.062-.111.088-.134.116-.217.23-.33.35-.246.25-.45.458-.673.609-.097.056-.239.037-.303.033l-.19.135a6.545 6.545 0 0 0-4.146-2.003l-.012-.223c-.065-.062-.143-.115-.163-.25-.022-.268.015-.557.057-.905.023-.163.061-.298.068-.475.001-.04-.001-.099-.001-.142 0-.306-.224-.555-.5-.555-.275 0-.499.249-.499.555l.001.014c0 .041-.002.092 0 .128.006.177.044.312.067.475.042.348.078.637.056.906a.545.545 0 0 1-.162.258l-.012.211a6.424 6.424 0 0 0-4.166 2.003 8.373 8.373 0 0 1-.18-.128c-.09.012-.18.04-.297-.029-.223-.15-.427-.358-.673-.608-.113-.12-.195-.234-.329-.349-.03-.026-.077-.062-.111-.088a.594.594 0 0 0-.348-.132.481.481 0 0 0-.398.176c-.172.216-.117.546.123.737l.007.005.104.083c.142.105.272.159.414.242.299.185.546.338.743.522.076.082.09.226.1.288l.16.143a6.462 6.462 0 0 0-1.02 4.506l-.208.06c-.055.072-.133.184-.215.217-.257.081-.546.11-.895.147-.164.014-.305.006-.48.039-.037.007-.09.02-.133.03l-.004.002-.007.002c-.295.071-.484.342-.423.608.061.267.349.429.645.365l.007-.001.01-.003.129-.029c.17-.046.294-.113.448-.172.33-.118.604-.217.87-.256.112-.009.23.069.288.101l.217-.037a6.5 6.5 0 0 0 2.88 3.596l-.09.218c.033.084.069.199.044.282-.097.252-.263.517-.452.813-.091.136-.185.242-.268.399-.02.037-.045.095-.064.134-.128.275-.034.591.213.71.248.12.556-.007.69-.282v-.002c.02-.039.046-.09.062-.127.07-.162.094-.301.144-.458.132-.332.205-.68.387-.897.05-.06.13-.082.215-.105l.113-.205a6.453 6.453 0 0 0 4.609.012l.106.192c.086.028.18.042.256.155.136.232.229.507.342.84.05.156.074.295.145.457.016.037.043.09.062.129.133.276.442.402.69.282.247-.118.341-.435.213-.71-.02-.039-.045-.096-.065-.134-.083-.156-.177-.261-.268-.398-.19-.296-.346-.541-.443-.793-.04-.13.007-.21.038-.294-.018-.022-.059-.144-.083-.202a6.499 6.499 0 0 0 2.88-3.622c.064.01.176.03.213.038.075-.05.144-.114.28-.104.266.039.54.138.87.256.154.06.277.128.448.173.036.01.088.019.13.028l.009.003.007.001c.297.064.584-.098.645-.365.06-.266-.128-.537-.423-.608zM16.4 9.701l-1.95 1.746v.005a.44.44 0 0 0 .173.757l.003.01 2.526.728a5.199 5.199 0 0 0-.108-1.674A5.208 5.208 0 0 0 16.4 9.7zm-4.013 5.325a.437.437 0 0 0-.404-.232.44.44 0 0 0-.372.233h-.002l-1.268 2.292a5.164 5.164 0 0 0 3.326.003l-1.27-2.296h-.01zm1.888-1.293a.44.44 0 0 0-.27.036.44.44 0 0 0-.214.572l-.003.004 1.01 2.438a5.15 5.15 0 0 0 2.081-2.615l-2.6-.44-.004.005z\"},\"child\":[]}]})(props);\n};\nexport function SiKubuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.257 14.292a.2065.2065 0 01.1097.2374l-.5765 1.5293a.2063.2063 0 01-.2033.155l-2.3369-.2283c-.0628.001-.1623-.008-.2776.1255-.0178.0207-.7472.9328-.9783 1.1832-.079.0708-.1067.1652-.0878.281l.5521 2.1962a.2064.2064 0 01-.098.2314l-1.513.8906a.2063.2063 0 01-.2556-.0418l-1.5494-1.7055c-.0516-.0555-.1551-.0994-.2271-.0759l-1.645.2391c-.0804.011-.1267.0635-.1603.1164l-.9938 2.0793a.2063.2063 0 01-.2353.089l-1.6687-.3945a.2065.2065 0 01-.1462-.1824.209.209 0 01.0105-.0815l.8812-3.244a.222.222 0 01.2828-.1373l.0033-.001a5.8423 5.8423 0 002.7168.2176c2.3222-.3696 4.1964-2.0953 4.756-4.3791l.011-.0407c.0277-.1194.1768-.1827.2963-.155 0 0 2.8684.9737 3.2936 1.0816a.2089.2089 0 01.0394.0143zM5.539 4.9898l.0001.0001a.2051.2051 0 01.0659.0489l2.392 2.3567a.222.222 0 01-.0186.3138l-.0008.0034A5.8422 5.8422 0 006.4594 9.976c-.8132 2.2063-.2244 4.685 1.494 6.29l.0353.0396c.0906.0827.0678.2335-.0148.3241 0 0-2.2452 2.0243-2.5472 2.3425a.2064.2064 0 01-.2924.007l-1.0521-1.2507a.2063.2063 0 01-.0358-.253l1.335-1.9253c.0297-.0553.0863-.1376.0262-.3035-.0092-.0256-.4482-1.108-.5536-1.432-.0232-.1035-.092-.1738-.2022-.214l-2.1789-.594a.2064.2064 0 01-.154-.1986l-.0368-1.7552a.2065.2065 0 01.1615-.2026l2.2384-.516c.0737-.0177.1625-.0866.1772-.1609l.5958-1.5517c.0298-.0755.0068-.1417-.023-.1968L4.111 6.5396a.2064.2064 0 01.0374-.2488l1.1602-1.2626a.2066.2066 0 01.2305-.0385zm10.4906-1.747a.2139.2139 0 01.0313.0147l1.5385.8455a.2065.2065 0 01.0947.2412l-.6793 2.198c-.0214.0727-.0062.1841.0508.234l1.046 1.2918c.0505.0636.1193.0767.182.0785l2.3-.2029a.2064.2064 0 01.1968.1567l.5134 1.6361a.2064.2064 0 01-.082.2189h-.0001a.205.205 0 01-.0753.0326l-3.244.8946a.222.222 0 01-.2624-.1729.012.012 0 01-.0025-.0024 5.8422 5.8422 0 00-1.201-2.4466c-1.5041-1.8073-3.9452-2.5368-6.1943-1.851l-.0402.0123c-.1169.0371-.248-.0597-.285-.1766 0 0-.6236-2.958-.7481-3.3786a.2063.2063 0 01.14-.2568l1.6093-.2858a.2063.2063 0 01.237.0955l.9929 2.1203c.033.0534.076.1436.2498.1744.0268.0048 1.1835.1658 1.5169.2366.1012.0316.1966.0073.2864-.068l1.6107-1.5916a.2064.2064 0 01.2177-.0486zM16.021.6955A11.9968 11.9968 0 007.794.763C1.5889 3.086-1.5582 9.9993.7647 16.2044c2.323 6.205 9.2362 9.3522 15.4413 7.0293 6.2051-2.3229 9.3522-9.2362 7.0293-15.4413A11.997 11.997 0 0016.021.6955z\"},\"child\":[]}]})(props);\n};\nexport function SiKucoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.928 11.996 7.122 7.122 4.49-4.49a2.004 2.004 0 0 1 2.865 0 2.004 2.004 0 0 1 0 2.865l-5.918 5.918a2.058 2.058 0 0 1-2.883 0l-8.541-8.542v5.07a2.034 2.034 0 1 1-4.07 0V4.043a2.034 2.034 0 1 1 4.07 0v5.088L13.604.589a2.058 2.058 0 0 1 2.883 0l5.918 5.918c.785.803.785 2.088 0 2.865-.804.785-2.089.785-2.865 0l-4.49-4.49zM15.05 9.96a2.038 2.038 0 0 0-2.053 2.035c0 1.133.902 2.052 2.035 2.052a2.038 2.038 0 0 0 2.053-2.035v-.018a2.07 2.07 0 0 0-2.035-2.034z\"},\"child\":[]}]})(props);\n};\nexport function SiKueski (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.403 7.989h-4.142c.029-1.022.506-1.33 1.48-1.95l2.294-1.47a2.161 2.161 0 0 0 1.048-1.776V.609c0-.62-.45-.787-1.038-.407l-3.043 1.962c-1.088.706-1.72 1.493-2.007 2.463-.194-1.02-.982-1.976-1.977-2.478L9.007.643C8.416.357 7.966.43 7.96 1.046L7.954 3.23a1.88 1.88 0 0 0 1.038 1.668l2.263 1.12c.933.47 1.47.648 1.491 1.97H4.592a.67.67 0 0 0-.674.667v2.665a.679.679 0 0 0 .2.472.67.67 0 0 0 .474.193h14.811a.67.67 0 0 0 .678-.665V8.655a.663.663 0 0 0-.2-.474.67.67 0 0 0-.478-.192zm0 0h-4.142c.029-1.022.506-1.33 1.48-1.95l2.294-1.47a2.161 2.161 0 0 0 1.048-1.776V.609c0-.62-.45-.787-1.038-.407l-3.043 1.962c-1.088.706-1.72 1.493-2.007 2.463-.194-1.02-.982-1.976-1.977-2.478L9.007.643C8.416.357 7.966.43 7.96 1.046L7.954 3.23a1.88 1.88 0 0 0 1.038 1.668l2.263 1.12c.933.47 1.47.648 1.491 1.97H4.592a.67.67 0 0 0-.674.667v2.665a.679.679 0 0 0 .2.472.67.67 0 0 0 .474.193h14.811a.67.67 0 0 0 .678-.665V8.655a.663.663 0 0 0-.2-.474.67.67 0 0 0-.478-.192zm-.007 5.903c0 .343-.657 6.288-.968 9.195-.09.857-.955.913-1.188.913H7.244c-1.04 0-1.411-.456-1.512-1-.106-.572-.658-6.161-.934-8.108l-.096-.967c0-.482.339-.896.81-.896h13.021a.867.867 0 0 1 .8.537.854.854 0 0 1 .063.332z\"},\"child\":[]}]})(props);\n};\nexport function SiKuma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.02 0c-1.118 0-1.935.362-2.474.946A.189.189 0 0 1 16.35 1a16.824 16.824 0 0 0-2.634-.623.184.184 0 0 0-.205.158.181.181 0 0 0 .003.07c.186.699 1.305 5.133 2.205 8.51.544 2.043-.866 4.05-2.98 4.044h-1.31c-2.136 0-3.433-2.014-2.94-4.022.83-3.393 1.968-7.792 2.152-8.517a.183.183 0 0 0-.13-.226.177.177 0 0 0-.07-.005 14.358 14.358 0 0 0-3.048.698.188.188 0 0 1-.208-.056C6.646.398 5.806.003 4.643.003c-2.254 0-3.287 1.473-3.287 3.29 0 .952.905 2.24 1.766 3.253a.188.188 0 0 1 .034.18l-1.468 4.259a.034.034 0 0 0 0 .011c-.038.148-.604 2.662 3.699 6.661 1.286 1.2 5.77 5.52 6.576 6.293a.182.182 0 0 0 .251 0l6.774-6.293c4.648-4.334 3.54-6.672 3.54-6.672L20.882 6.27a.183.183 0 0 1 .028-.175c.733-.925 1.4-1.991 1.4-2.808C22.31 1.473 21.274 0 19.02 0Zm-8.025 7.132a.525.525 0 0 0-.527.524l.217 2.157v.003a.525.525 0 0 0 .526.524h1.755a.525.525 0 0 0 .524-.53l.208-2.154a.525.525 0 0 0-.526-.524z\"},\"child\":[]}]})(props);\n};\nexport function SiKununu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.686 17.759a3.26 3.26 0 0 1-2.344-1.004 3.487 3.487 0 0 1-.971-2.422l.015-4.668a1.08 1.08 0 0 0-.302-.751 1.014 1.014 0 0 0-.728-.311c-.272 0-.534.112-.727.311-.192.2-.301.47-.3.752l-.015 4.669c0 .908-.349 1.78-.971 2.422a3.259 3.259 0 0 1-2.344 1.002 3.257 3.257 0 0 1-2.343-1.004 3.482 3.482 0 0 1-.97-2.422L8.7 9.665c0-.282-.109-.552-.302-.752a1.007 1.007 0 0 0-1.454.001c-.193.2-.301.47-.301.752l-.014 4.669a3.507 3.507 0 0 1-.56 1.902 3.338 3.338 0 0 1-1.487 1.26 3.214 3.214 0 0 1-1.914.195 3.276 3.276 0 0 1-1.696-.937 3.412 3.412 0 0 1-.721-1.111A3.513 3.513 0 0 1 0 14.333v-3.707c0-.313.121-.613.335-.835.214-.221.505-.346.808-.346.303 0 .594.125.808.346a1.2 1.2 0 0 1 .335.835v3.707c0 .282.108.552.301.751.193.2.455.312.728.312.272 0 .534-.112.727-.312.193-.199.301-.469.301-.751l.015-4.669c0-.908.349-1.779.971-2.422A3.259 3.259 0 0 1 7.673 6.24c.879 0 1.722.361 2.343 1.004s.97 1.514.97 2.423l-.014 4.667c0 .282.109.552.302.752.193.199.454.311.727.311.273 0 .534-.113.727-.312.193-.2.301-.47.301-.752l.014-4.668c.001-.909.35-1.78.972-2.422a3.26 3.26 0 0 1 2.344-1.003c.879 0 1.721.362 2.343 1.004.621.643.97 1.514.97 2.423l-.014 4.668c0 .282.108.552.301.751.194.199.455.311.728.311.273 0 .534-.112.727-.312.193-.2.301-.47.301-.752v-3.706c0-.313.12-.613.334-.835.215-.221.505-.346.809-.346.303 0 .593.124.808.346.214.222.334.522.334.835v3.706c0 .908-.349 1.78-.97 2.422a3.26 3.26 0 0 1-2.344 1.004Z\"},\"child\":[]}]})(props);\n};\nexport function SiKuula (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.388 0 0 5.388 0 12s5.388 12 12 12 12-5.388 12-12S18.612 0 12 0Zm0 2.547A9.433 9.433 0 0 1 21.453 12 9.433 9.433 0 0 1 12 21.453 9.433 9.433 0 0 1 2.547 12 9.433 9.433 0 0 1 12 2.547Zm-.606 5.366 4.372-.693 2.01 3.944-3.13 3.13-3.944-2.01z\"},\"child\":[]}]})(props);\n};\nexport function SiKx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 5.873h3.59v12.254H0V5.873Zm11.746 0L7.65 12l4.097 6.127H7.65L3.59 12l4.06-6.127h4.097Zm12.254 0L19.903 12 24 18.127h-4.097l-2.03-3.045-2.03 3.045h-4.097L15.843 12l-4.097-6.127h4.097l2.03 3.082 2.03-3.082H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiKyocera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.677 4.645L2.323 12V4.645h7.354zm-7.354 14.71h7.355L2.323 12v7.355zm7.354 0L17.032 12 9.677 4.645v14.71zM21.677 0h-7.355L9.677 4.645h7.355V12l4.645-4.645V0zm-12 19.355L14.323 24h7.355v-7.355L17.032 12v7.355H9.677z\"},\"child\":[]}]})(props);\n};\nexport function SiLabview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.176 4.469a.817.817 0 00-.768.816v7.055a.816.816 0 001.182.73l7.058-3.527a.818.818 0 000-1.463L9.59 4.553a.808.808 0 00-.414-.084zm1.918 3.107h.638v.916h.916v.639h-.916v.918h-.638V9.13h-.918v-.639h.918v-.916zm-4.752 7.51v.367h.262c.086 0 .136.05.136.137v3.869h.41v-.273a2.6 2.6 0 00-.011-.256h.011s.281.603 1.028.603c.82 0 1.41-.646 1.41-1.635 0-.97-.522-1.642-1.361-1.642-.802 0-1.065.598-1.065.598H7.15s.012-.113.012-.256v-1.131c0-.267-.112-.381-.379-.381h-.441zm2.855 0v.387h.063c.118 0 .18.018.224.136l1.436 3.85h.467l1.437-3.85c.044-.118.105-.136.223-.136h.834v3.601h-.41v.385h1.25v-.385h-.418v-3.601h.418v-.387h-1.805c-.31 0-.404.056-.516.361l-1.076 2.942c-.08.223-.168.566-.168.566h-.011s-.088-.343-.168-.566L9.9 15.447c-.105-.298-.199-.361-.51-.361h-.193zm5.922 0v.387h.404v3.607c0 .268.112.379.38.379h1.89c.268 0 .379-.111.379-.379v-.435h-.404v.29c0 .094-.05.14-.137.14h-1.535c-.087 0-.137-.046-.137-.14v-1.484h1.64v-.387h-1.64v-1.591h1.492c.087 0 .137.043.137.136v.293h.41v-.435c0-.268-.112-.381-.379-.381h-2.5zM0 15.088v.385h.268c.086 0 .136.043.136.136v3.471c0 .268.112.379.38.379h1.81c.267 0 .379-.111.379-.379v-.435h-.41v.29c0 .094-.05.137-.137.137H.976c-.086 0-.136-.043-.136-.136v-3.47c0-.267-.112-.378-.38-.378H0zm18.334 0v.385h.076c.118 0 .197.018.229.136l1.002 3.85h.515l.897-3.047c.08-.28.156-.64.156-.64h.012s.067.366.142.646l.815 3.041h.515l1.008-3.85c.031-.118.106-.136.23-.136H24v-.385h-.193c-.311 0-.453.055-.528.36l-.76 3.015c-.055.224-.1.467-.1.467h-.01s-.039-.243-.1-.467l-.877-3.358h-.43l-.963 3.358c-.062.224-.12.467-.12.467h-.01s-.039-.243-.095-.467l-.757-3.016c-.075-.304-.219-.36-.53-.36h-.193zM4.637 16.256c-.274 0-1.02.094-1.02.53v.298h.404v-.2c0-.23.454-.273.61-.273.572 0 .808.23.808.883v.037h-.173c-.542 0-1.916.038-1.916 1.076 0 .622.54.926 1.062.926.784 0 1.046-.678 1.04-.678h.01s-.005.094-.005.23c0 .256.106.374.373.374h.43v-.367h-.262c-.087 0-.137-.044-.137-.137v-1.498c0-.672-.236-1.201-1.224-1.201zm3.527.387c.578 0 .988.49.988 1.255 0 .796-.452 1.262-1.006 1.262-.671 0-.996-.628-.996-1.256 0-.889.492-1.261 1.014-1.261zm-2.906 1.224h.181v.143c0 .54-.362 1.162-.959 1.162-.466 0-.695-.298-.695-.59 0-.703.982-.715 1.473-.715Z\"},\"child\":[]}]})(props);\n};\nexport function SiLada (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.998 7.312c-5.908 0-10.82 1.669-11.81 3.866a1.974 1.974 0 0 0-.188.831c0 .193.028.508.227.895 1.078 2.156 5.94 3.784 11.775 3.784C18.629 16.688 24 14.588 24 12c0-2.589-5.375-4.688-12.002-4.688Zm-.89.993c.42.383.16 1.217-.642 2.368-.894 1.276-1.752 1.976-2.771 2.233L9.91 8.084h.01c.566-.025.949.005 1.188.22zm5.027 4.7c-.065-.04-.045-.139.03-.154l1-.201a.07.07 0 0 0 .052-.047l.16-.474c.015-.044-.018-.087-.063-.09l-1.866-.103a.305.305 0 0 0-.18.048l-.748.496a.385.385 0 0 0-.17.394c.209 1.09-.202 1.684-2.354 1.942-3.127.373-5.461 0-5.868-.074a.218.218 0 0 0-.234.121l-.213.463c-2.209-.657-3.742-1.653-4.112-2.793 0-.036-.081-.226-.081-.535 0-1.893 3.186-3.49 7.544-3.992h.016s-2.232 4.863-2.612 5.688a.088.088 0 0 0 .08.122h.124c1.31.044 2.892.091 4.87-.396 2.102-.518 3.688-2.005 4.296-3.087.616-1.099.263-1.943.195-2.232 3.878.596 6.359 2.095 6.413 3.84-.014.356-.11.704-.283 1.019-.728 1.214-2.796 2.22-5.55 2.76 1.084-1.188.236-2.27-.446-2.712z\"},\"child\":[]}]})(props);\n};\nexport function SiLamborghini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.192 13.826c-.032.02-.232.114-.288.136-.406.18-.772.152-1.18-.088-.294-.172-.566-.552-.672-.684-.084-.106-.186-.244-.332-.374-.272-.244-.638-.404-1.272-.392a.3.3 0 0 1-.146-.036c-.64-.338-1.746-.752-2.8-.7-.21.016-.24-.136-.31-.306a3.866 3.866 0 0 0-.46-.936c-.168-.238-.24-.24-.378-.278-.152-.042-.32-.06-.42-.236-.012-.022-.062-.116-.006-.182.14-.164.528-.388-.056-.718-.356-.2-.196-.33-.138-.36a.614.614 0 0 1 .392-.042 1 1 0 0 1 .56.36c.19.222.832 1.264 1.222 2.054.006.01.014.066.086.074.108.01.296.01.334.014.06.004.06-.044.054-.064-.552-1.836-1.19-4.124-2.296-5.714-.02-.046-.002-.094.068-.088.988.1 1.276 1.51 1.856 2.434.744 1.19 1.18.724 1.252-.08.048-.56-.1-1.272-.49-1.672-.092-.114-.258-.256-.326-.34-.024-.032-.028-.082.038-.1a.446.446 0 0 1 .118-.006c.458.034 1.092.404 1.36.816.546.846.506 1.3.43 1.6-.128.512-.368.806-.07 1.618.588 1.604.434 1.268.1 2.278-.03.076.018.134.084.128.77-.072 1.004.104 1.17.192.018.01.032.024.044.02.03-.01.04-.048.044-.098.064-.432-.026-.616-.124-.87-.06-.15-.124-.32-.146-.484a.8.8 0 0 1 .07-.488c.131-.274.16-.587.084-.882-.194-.856-.896-2.264-1.344-3.076-.13-.245-.26-.49-.392-.734-.032-.06-.02-.128.006-.184l.054-.136c.108-.274.164-.48.196-.72.104-.766-.098-1.312-.652-1.768-.516-.424-1.432-.612-2.654-.544l-.26.016c-1.148.066-2.452.14-3.434.06-.95-.08-1.504-.23-1.696-.46a.332.332 0 0 1-.076-.262A.844.844 0 0 1 9.74.96c.17-.13.37-.2.514-.18.254.012.536.156.86.322.29.15.62.32 1.004.428a3 3 0 0 0 .952.124c.29-.012.576-.072.846-.18a.892.892 0 0 0 .232-.132c.02-.016.026-.048.004-.08-.014-.016-.03-.016-.09-.016a4.5 4.5 0 0 1-1-.12c-.256-.064-.28-.124-.276-.148.006-.056.14-.108.294-.114.752-.034 1.328.006 1.71.034.161.017.323.022.486.016.022-.002.03-.016.032-.022a.04.04 0 0 0-.012-.04c-.264-.22-1.126-.55-2.11-.724-1.582-.28-2.642-.05-3.252.192a3.103 3.103 0 0 0-.714.4c-.306.238-.476.496-.508.77-.04.364.224.836 1.72 1.01 1.586.184 3.068.158 4.374.136l.402-.008c.828-.012 1.528.188 1.83.522.289.34.393.798.28 1.228-.03.115-.078.224-.14.324-.094.13-.2.168-.39.118-.612-.162-1.704-.52-2.232-.7-.472-.16-.844-.284-1.16-.362-.936-.23-1.228-.078-1.858.32-.152.096-.306.2-.484.322-.26.176-.55.376-.94.62-.285.172-.575.337-.868.494-.332.18-.674.37-1.01.572-1.076.632-1.248 1.48-1.448 2.46-.14.696-.3 1.484-.832 2.284-.058.086-.52.646-.616.804-.366.586-.56 1.092-.484 1.94.06.636-.16 1.188-.37 1.722-.164.42-.32.82-.346 1.244-.02.264-.01.51 0 .748.014.394.02.788-.1 1.128-.092.26-.328.52-.42.772a3.874 3.874 0 0 0-.198 1.212c-.006.36-.272.622-.554.9-.248.246-.508.504-.602.84-.014.044-.02.078-.038.104-.024.04-.06.064-.11.1a.962.962 0 0 0-.336.408c-.096.253-.089.533.02.78.016.028.058.096.122.104.044.004.088-.02.13-.07 0 0 .276-.318.382-.412a.086.086 0 0 1 .108-.008c.032.022.038.06.02.1-.012.024-.178.32-.274.568l-.002.008c-.014.034-.03.08-.006.114.022.036.076.056.17.06.04.004.08.004.12.004.508 0 .776-.136.914-.254a.342.342 0 0 0 .08-.124l.02-.04c.1-.272.168-.588.178-.824 0-.1.028-.128.096-.196.268-.272.268-.628.268-.974 0-.32 0-.648.21-.906.57-.64.866-1.384 1.152-2.104.296-.744.6-1.514 1.208-2.154.154-.158.302-.244.4-.228.05.008.088.04.116.094.13.24.09.562.052.874-.042.354-.082.686.104.904.126.162.16.334.098.494-.08.256-.324 1.032-.902 1.376a2.44 2.44 0 0 0-.216.164.404.404 0 0 0-.064.094.473.473 0 0 1-.312.262.964.964 0 0 0-.536.346c-.22.331-.314.73-.264 1.124.01.06.03.138.088.214.034.048.074.076.116.082a.132.132 0 0 0 .1-.028c.046-.04.088-.084.126-.132.08-.09.178-.204.3-.296.04-.03.08-.022.104-.006.02.016.032.04.024.06a.85.85 0 0 1-.094.174c-.06.094-.134.21-.192.348-.016.03-.018.06-.006.084.016.04.06.056.07.06.37.118.92-.022 1.23-.312a.762.762 0 0 0 .228-.59.36.36 0 0 1 .098-.228c.216-.186.306-.476.4-.784l.072-.222c.098-.317.287-.6.542-.812.406-.38.59-.74.706-.96.118-.238.144-.37.23-.508.17-.268.742-.32.954-.194.088.052.106.124.058.214-.032.058-.334.546-.476.88-.07.164-.228.226-.32.28-.568.332-.672.956-.688 1.212-.006.08.002.186.044.246a.14.14 0 0 0 .09.06.136.136 0 0 0 .106-.028c.032-.026.34-.336.376-.368.052-.044.096-.036.12-.016.022.02.032.062 0 .11-.04.062-.254.382-.228.452.04.118.162.116.282.116.974-.08 1.318-.774 1.318-.774.024-.04.052-.094.036-.238-.028-.26-.088-1.16.432-1.72.154-.172.246-.056.28.02.064.14.156.378.21.498.112.254.188.44.32.692.216.424.546.482.952.432.526-.066.888-.024 1.24.01.3.026.466.046.688-.156.12-.11.35-.31.504-.53.1-.138.128-.226.104-.44-.072-1.082.49-2.022 1.504-2.514.152-.062.32-.044.424.096.228.336.756 1.2.756 1.934a.746.746 0 0 1-.058.234c-.072.2-.16.45.004.79.012.294-.098.524-.194.728-.138.288-.246.516.13.74.141.08.293.14.45.18a.074.074 0 0 0 .04-.012.048.048 0 0 0 .024-.034c.01-.086.02-.38.036-.448.006-.028.02-.06.052-.064.03 0 .06.022.068.046.03.072.106.36.128.404.018.04.04.066.068.076.15.042.356-.216.432-.35.132-.274.078-.68-.138-1.036a.304.304 0 0 1-.036-.158.974.974 0 0 0-.04-.66 1.452 1.452 0 0 1-.088-.344c-.06-.508.254-2.12.282-2.284.054-.3.098-.514.116-.734a.856.856 0 0 0-.216-.62c-.136-.146-.3-.28-.46-.408a4.603 4.603 0 0 1-.378-.33.87.87 0 0 1-.228-.512c0-.02.004-.034.012-.04a.045.045 0 0 1 .026-.006c.24.018.434.176.676.38.22.18.466.384.81.536.684.304 1.332.26 1.984-.136.276-.196.362-.366.376-.388.018-.03-.008-.116-.088-.07ZM7.054 11.124c.04-.316.272-.65.374-1.044.146-.444.186-1.22.266-1.836.04-.308.156-.436.378-.464.146-.014.3.114.378.548.272 1.774.804 2.02 1.114 2.49a.328.328 0 0 1 .016.026c.08.148.104.284-.02.384-.072.06-.316.146-.728-.104-.496-.298-.57-.62-1.392.038 0 0-.11.084-.214.108-.09.02-.188-.014-.172-.146Zm4.3 6.51c-.03.02-.064.006-.112-.024-.326-.21-1.23-.374-1.992-.068-.786.314-1.504.76-1.552-.018-.01-.688.136-.988-.104-1.396l-.02-.032c-.02-.032.004-.04.012-.04 1.102-.086 1.398-.43 1.466-.55.014-.028-.004-.056-.032-.06-.254-.028-1.518-.066-2.024.008-.894.13-1.494 1.474-1.61 1.602-.134.146-.304.034-.304-.1 0-.224.134-1.314.22-1.692.14-.598.332-1.04.916-1.132.408-.062 1.412-.168 1.344-.44a2.388 2.388 0 0 1-.088-.5c0-.132.068-.16.202-.128.1.02.232.08.404.12 1.26.298 1.908.06 2.66-.274l.318-.144a.168.168 0 0 1 .23.222c-.04.086-.094.126-.21.236-.248.24-1.174 1-.616 2.284.434 1 .56 1.26.87 1.942.05.112.058.16.02.184h.002Zm2.346 1.732c-.062.096-.158.164-.34.164-.228 0-.388-.068-.484-.17a.758.758 0 0 1-.174-.688c.03-.12.1-.198.18-.22.032-.012.05-.008.068.014.034.054.156.248.184.288a.342.342 0 0 0 .142.108c.092.038.21.07.272.098.19.082.234.278.152.406Zm3.638-3.54c-.024.04-.046.046-.078.06-1.142.432-2.052 1.6-1.886 3a.338.338 0 0 1-.09.246s-.24.244-.39.348c-.052.036-.11.064-.244.056l-.51-.032c-.08-.014-.046-.084-.04-.1a.34.34 0 0 0 .016-.05c.044-.21.012-.504-.284-.614-.042-.024-.016-.064-.01-.076.126-.314.286-.7.412-1.242.09-.313.023-.65-.18-.906l-.18-.24c-.052-.058-.038-.12.034-.144l.254-.066c.06-.02.056-.114-.004-.13l-.13-.04a.61.61 0 0 1-.256-.228.57.57 0 0 1-.1-.226l-.014-.074c-.002-.038-.06-.04-.088-.012a.62.62 0 0 0-.114.754c.206.344.198.31.38.57.06.084.098.154.118.24.029.21.008.425-.06.626l-.208.632c-.126.28-.266.214-.344.16-.104-.068-.2-.244-.25-.432 0 0-.144-.526-.14-1.228-.008-.084-.066-.222-.25-.1l-.49.404c-.068.038-.188.018-.164-.142 0 0 .352-1.57.73-2.454.284-.72-.032-1.126-.408-1.572-.618-.788-.756-1.846.68-1.266.386.176.524-.052 1-.094.34-.028.452.11.48.168a.422.422 0 0 1 .04.14c0 .012-.004.02-.02.02-.804.048-1.764.716-1.02 1.766.726 1.028 2.73 1.372 3.626.392.012-.012.014-.042-.004-.056a.044.044 0 0 0-.046-.008 2.9 2.9 0 0 1-.556.16c-.428.07-1.334.02-1.76-.47-.246-.28-.24-.602.174-.652.23-.018.344.024.444.026.258-.004.31-.26.258-.38a.976.976 0 0 0-.292-.364c-.134-.094-.06-.194.026-.192.828.048 1.62.192 1.92 1.186.012.038.032.164.064.21.064.096.174.168.298.274.3.262.57.73-.344 2.152Zm1.076-.616c.146-.304.344-.1.44.234.12.426.136 1.108.084 1.46-.064.46-.28.368-.396.204-.184-.258-.38-.6-.52-.836a.294.294 0 0 1-.01-.022c-.064-.134-.074-.24-.006-.336.068-.106.34-.564.408-.704Z\"},\"child\":[]}]})(props);\n};\nexport function SiLandrover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.182 11.491h.717l.625-1.85.365 1.85h.718l.978-2.858-.75.001-.522 1.554-.299-1.554h-1.01l-.025.074.05.048c.053.053.05.114.005.246l-.852 2.489zm3.749-2.489l-.853 2.49h1.259c.54 0 .847-.12 1.098-.387.313-.332.6-1.195.59-1.67-.009-.485-.322-.8-.98-.8H13.9l-.024.073.05.048c.052.053.05.114.004.246m.685.31h.313c.213 0 .33.071.333.236.002.106-.027.252-.137.565-.098.28-.176.443-.287.562-.088.094-.207.135-.478.135h-.261l.517-1.498zm4.066.347H16.78l-.247.68h1.318l-1.497.509-.093.243 2.157-.71.264-.722zM5.043 11.492h1.95l.236-.682H6.095l.75-2.176h-.979l-.024.074.049.048c.053.053.051.114.005.246l-.853 2.49zm2.153-.001h.83l.359-.632h.859l.008.632h.753l-.162-2.857H8.716l-.025.074.036.036c.06.058.035.142-.184.49l-1.347 2.257zm1.996-2.067h.026l.014.864h-.527l.487-.864zM8.01 12.11H6.776l-.025.074.05.05c.053.051.05.113.004.245l-.862 2.49h.788l.337-.989h.267l.296.988h.792l-.372-1.01a.76.76 0 0 0 .433-.194c.149-.136.252-.326.337-.607.124-.407.049-.64-.031-.76-.11-.164-.342-.287-.78-.287m.068 1.038c-.05.122-.104.151-.175.18a.845.845 0 0 1-.245.026H7.28l.205-.591h.455c.136 0 .192.07.194.152a.759.759 0 0 1-.057.233m10.436-1.038H17.28l-.024.074.05.05c.053.051.05.113.005.245l-.863 2.49h.789l.336-.988h.267l.297.987h.79l-.37-1.01a.758.758 0 0 0 .431-.194c.15-.136.253-.326.338-.607.124-.407.05-.64-.03-.76-.11-.164-.343-.287-.782-.287m.069 1.038c-.05.122-.104.151-.174.18a.849.849 0 0 1-.245.026h-.376l.203-.591h.455c.136 0 .192.07.193.152a.747.747 0 0 1-.056.233m1.367-4.742c-2.365-1.222-5.31-1.69-7.95-1.69s-5.585.468-7.95 1.69C2.72 9.093 1.035 10.331 1.035 12c0 1.669 1.686 2.907 3.015 3.594 2.365 1.222 5.31 1.69 7.95 1.69 2.64 0 5.585-.467 7.95-1.69 1.329-.687 3.015-1.925 3.015-3.594 0-1.67-1.685-2.907-3.015-3.594m-.12 6.954c-2.33 1.203-5.227 1.66-7.83 1.66-2.603 0-5.5-.457-7.83-1.66C2.939 14.721 1.3 13.546 1.3 12c0-1.548 1.638-2.722 2.87-3.359C6.5 7.438 9.398 6.981 12 6.981c2.603 0 5.5.456 7.83 1.66 1.233.637 2.87 1.81 2.87 3.36 0 1.547-1.638 2.721-2.87 3.359m.595-7.873C18.171 6.322 15.18 5.681 12 5.681c-3.179 0-6.17.641-8.425 1.806C2.24 8.177 0 9.681 0 12s2.24 3.823 3.575 4.513C5.829 17.678 8.821 18.32 12 18.32c3.18 0 6.171-.641 8.425-1.806C21.76 15.823 24 14.32 24 12c0-2.32-2.24-3.823-3.575-4.513m-.293 8.46C17.967 17.064 15.08 17.68 12 17.68s-5.966-.616-8.132-1.735C1.786 14.87.638 13.468.638 12c0-1.469 1.148-2.87 3.23-3.946C6.034 6.936 8.921 6.32 12 6.32c3.08 0 5.967.617 8.132 1.735 2.083 1.075 3.23 2.477 3.23 3.946 0 1.468-1.147 2.87-3.23 3.946m-9.41-3.87h-.091c-.539 0-.846.144-1.099.412-.314.333-.609 1.23-.603 1.706.006.484.32.82.978.82h.096c.54 0 .848-.145 1.1-.413.314-.333.603-1.23.597-1.706-.006-.484-.32-.82-.979-.82m.046 1.515c-.098.281-.175.462-.288.581-.09.094-.207.161-.48.161-.212 0-.33-.087-.33-.251-.002-.107.027-.268.141-.582.098-.28.175-.462.289-.581.088-.094.207-.161.478-.161.213 0 .331.087.33.25.003.108-.026.27-.14.583M6.035 12.48l-2.157.709-.263.723h1.902l.248-.681H4.446l1.497-.507.092-.244zm7.846-.369l-1.046 2.055h-.022l-.053-2.055h-.875l-.034.074.075.046c.073.051.093.103.102.246l.119 2.492h.975l1.573-2.858h-.814zm2.396 1.712l.219-.597H15.49l.156-.457h1.088l.24-.66H14.92l-.029.084.05.049c.053.051.05.112.004.246l-.855 2.48h1.92l.232-.663h-1.12l.164-.482h.991z\"},\"child\":[]}]})(props);\n};\nexport function SiLangchain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.0988 5.9175C2.7359 5.9175 0 8.6462 0 12s2.736 6.0825 6.0988 6.0825h11.8024C21.2641 18.0825 24 15.3538 24 12s-2.736-6.0825-6.0988-6.0825ZM5.9774 7.851c.493.0124 1.02.2496 1.273.6228.3673.4592.4778 1.0668.8944 1.4932.5604.6118 1.199 1.1505 1.7161 1.802.4892.5954.8386 1.2937 1.1436 1.9975.1244.2335.1257.5202.31.7197.0908.1204.5346.4483.4383.5645.0555.1204.4702.286.3263.4027-.1944.04-.4129.0476-.5616-.1074-.0549.126-.183.0596-.2819.0432a4 4 0 0 0-.025.0736c-.3288.0219-.5754-.3126-.732-.565-.3111-.168-.6642-.2702-.982-.446-.0182.2895.0452.6485-.231.8353-.014.5565.8436.0656.9222.4804-.061.0067-.1286-.0095-.1774.0373-.2239.2172-.4805-.1645-.7385-.007-.3464.174-.3808.3161-.8096.352-.0237-.0359-.0143-.0592.0059-.0811.1207-.1399.1295-.3046.3356-.3643-.2122-.0334-.3899.0833-.5686.1757-.2323.095-.2304-.2141-.5878.0164-.0396-.0322-.0208-.0615.0018-.0864.0908-.1107.2102-.127.345-.1208-.663-.3686-.9751.4507-1.2813.0432-.092.0243-.1265.1068-.1845.1652-.05-.0548-.0123-.1212-.0099-.1857-.0598-.028-.1356-.041-.1179-.1366-.1171-.0395-.1988.0295-.286.0952-.0787-.0608.0532-.1492.0776-.2125.0702-.1216.23-.025.3111-.1126.2306-.1308.552.0814.8155.0455.203.0255.4544-.1825.3526-.39-.2171-.2767-.179-.6386-.1839-.9695-.0268-.1929-.491-.4382-.6252-.6462-.1659-.1873-.295-.4047-.4243-.6182-.4666-.9008-.3198-2.0584-.9077-2.8947-.266.1466-.6125.0774-.8418-.119-.1238.1125-.1292.2598-.139.4161-.297-.2962-.2593-.8559-.022-1.1855.0969-.1302.2127-.2373.342-.3316.0292-.0213.0391-.0419.0385-.0747.1174-.5267.5764-.7391 1.0694-.7267m12.4071.46c.5575 0 1.0806.2159 1.474.6082s.61.9145.61 1.4704c0 .556-.2167 1.078-.61 1.4698v.0006l-.902.8995a2.08 2.08 0 0 1-.8597.5166l-.0164.0047-.0058.0164a2.05 2.05 0 0 1-.474.7308l-.9018.8995c-.3934.3924-.917.6083-1.4745.6083s-1.0806-.216-1.474-.6083c-.813-.8107-.813-2.1294 0-2.9402l.9019-.8995a2.056 2.056 0 0 1 .858-.5143l.017-.0053.0058-.0158a2.07 2.07 0 0 1 .4752-.7337l.9018-.8995c.3934-.3924.9171-.6083 1.4745-.6083zm0 .8965a1.18 1.18 0 0 0-.8388.3462l-.9018.8995a1.181 1.181 0 0 0-.3427.9252l.0053.0572c.0323.2652.149.5044.3374.6917.13.1296.2733.2114.4471.2686a.9.9 0 0 1 .014.1582.884.884 0 0 1-.2609.6304l-.0554.0554c-.3013-.1028-.5525-.253-.7794-.4792a2.06 2.06 0 0 1-.5761-1.0968l-.0099-.0578-.0461.0368a1.1 1.1 0 0 0-.0876.0794l-.9024.8995c-.4623.461-.4623 1.212 0 1.673.2311.2305.535.346.8394.3461.3043 0 .6077-.1156.8388-.3462l.9019-.8995c.4623-.461.4623-1.2113 0-1.673a1.17 1.17 0 0 0-.4367-.2749 1 1 0 0 1-.014-.1611c0-.2591.1023-.505.2901-.6923.3019.1028.57.2694.7962.495.3007.2999.4994.679.5756 1.0968l.0105.0578.0455-.0373a1.1 1.1 0 0 0 .0887-.0794l.902-.8996c.4622-.461.4628-1.2124 0-1.6735a1.18 1.18 0 0 0-.8395-.3462Zm-9.973 5.1567-.0006.0006c-.0793.3078-.1048.8318-.506.847-.033.1776.1228.2445.2655.1874.141-.0645.2081.0508.2557.1657.2177.0317.5394-.0725.5516-.3298-.325-.1867-.4253-.5418-.5662-.8709\"},\"child\":[]}]})(props);\n};\nexport function SiLanguagetool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.28 20.494 0 18.865c.67-.938 1.36-1.66 2.088-2.171.805-.568 1.667-.869 2.555-.869.824 0 1.539.198 2.178.582.261.16.504.344.734.549.16.14.281.255.53.504.383.384.537.524.728.633.205.127.422.185.735.185s.53-.058.734-.185c.192-.109.351-.25.734-.633.25-.249.37-.364.537-.51a4.69 4.69 0 0 1 .728-.543c.639-.384 1.348-.582 2.171-.582.824 0 1.533.198 2.172.582.255.153.491.332.728.542.166.147.287.262.536.511.383.384.543.524.735.633.204.127.421.185.734.185.281 0 .588-.109.945-.358.44-.306.92-.81 1.418-1.507L24 18.042c-.67.938-1.36 1.666-2.088 2.17-.805.57-1.667.87-2.555.87-.824 0-1.539-.199-2.178-.582a5.072 5.072 0 0 1-.734-.543c-.166-.146-.281-.261-.537-.51v-.007c-.376-.377-.536-.517-.728-.626-.204-.127-.415-.185-.728-.185s-.523.058-.728.185c-.191.109-.35.25-.728.626v.007c-.255.249-.37.364-.536.51-.243.211-.48.39-.735.543-.638.383-1.354.581-2.177.581-.824 0-1.54-.198-2.178-.58a5.593 5.593 0 0 1-.735-.544 11.126 11.126 0 0 1-.53-.51c-.383-.384-.536-.524-.728-.633-.204-.127-.421-.185-.734-.185-.281 0-.588.109-.945.358-.44.313-.92.81-1.418 1.507zM3.417 2.919h2.33c.965 0 1.75.779 1.75 1.75v6.795h4.554v2.452H6.795c-.964 0-1.75-.786-1.75-1.75V5.371H3.417Zm17.818 1.75v1.82h-2.453V5.37h-1.928v8.545H14.4V5.37h-1.928v1.118H10.02v-1.82c0-.971.786-1.75 1.75-1.75h7.708c.971 0 1.757.779 1.757 1.75zm0 0\"},\"child\":[]}]})(props);\n};\nexport function SiLapce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.802 1.267 1.608 0v24L8 20.31v-2.535L3.802 20.2Zm4.208 13.9V6.231L18.003 12l-7.798 4.503v2.533L22.392 12 5.806 2.424V16.44Zm5.598-3.231L10.205 9.97v3.93Z\"},\"child\":[]}]})(props);\n};\nexport function SiLaragon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.843.979c-2.12-.096-3.477 1.439-3.477 1.439C2.52 2.5.791 8.429.75 8.552l-.248.74c-2.268 8.78 3.889 12.22 3.889 12.22.188.091.375-.066.375-.066.5-.31.252-.53.252-.53-1.43-1.742-1.595-5.864-1.596-5.899-.64-.532-1.248-1.318-1.111-2.342 0 0 .084-.51.584-.197 0 0 1.186.644 2.123.83-.001 0 .476.043.5.177 0 0 .374 1.752-.78 2.32.745.437 1.465.85 1.465.85.124 1.263.81 5.32.81 5.32.064.797.906.954.906.954.483.172 4.12.062 4.12.062 1.014-.044 1.062-.953 1.062-.953.015-.545.03-3.62.03-3.62.096-.575.766-.5.766-.5.703-.03.688.454.688.454-.017.515.045 3.496.045 3.496.03.858.781 1.125.781 1.125.488 0 .828-.004 1.365 0 .252.002 1.473 0 1.473 0 .55-.307 1.377-.969 1.377-.969 5.868-4.91 4.135-11.9 4.135-11.9C22.93 5.88 17.792 5.1 17.792 5.1c-.582-1.811-1.643-2.682-1.643-2.682-1.222-1.015-2.343-1.396-3.306-1.44zm5.006 4.273s1.845 3.08-1.727 7.86c.001.001-2.94 4.116-8.232 1.223 1.084.523 5.536 2.312 8.375-1.98 0 0 2.632-3.437 1.584-7.103zM6.703 8.868s1.296.036 1.341 1.82c0 0-1.02-2.668-3.271-.2 0 0 .404-1.729 1.93-1.62z\"},\"child\":[]}]})(props);\n};\nexport function SiLaravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.642 5.43a.364.364 0 01.014.1v5.149c0 .135-.073.26-.189.326l-4.323 2.49v4.934a.378.378 0 01-.188.326L9.93 23.949a.316.316 0 01-.066.027c-.008.002-.016.008-.024.01a.348.348 0 01-.192 0c-.011-.002-.02-.008-.03-.012-.02-.008-.042-.014-.062-.025L.533 18.755a.376.376 0 01-.189-.326V2.974c0-.033.005-.066.014-.098.003-.012.01-.02.014-.032a.369.369 0 01.023-.058c.004-.013.015-.022.023-.033l.033-.045c.012-.01.025-.018.037-.027.014-.012.027-.024.041-.034H.53L5.043.05a.375.375 0 01.375 0L9.93 2.647h.002c.015.01.027.021.04.033l.038.027c.013.014.02.03.033.045.008.011.02.021.025.033.01.02.017.038.024.058.003.011.01.021.013.032.01.031.014.064.014.098v9.652l3.76-2.164V5.527c0-.033.004-.066.013-.098.003-.01.01-.02.013-.032a.487.487 0 01.024-.059c.007-.012.018-.02.025-.033.012-.015.021-.03.033-.043.012-.012.025-.02.037-.028.014-.01.026-.023.041-.032h.001l4.513-2.598a.375.375 0 01.375 0l4.513 2.598c.016.01.027.021.042.031.012.01.025.018.036.028.013.014.022.03.034.044.008.012.019.021.024.033.011.02.018.04.024.06.006.01.012.021.015.032zm-.74 5.032V6.179l-1.578.908-2.182 1.256v4.283zm-4.51 7.75v-4.287l-2.147 1.225-6.126 3.498v4.325zM1.093 3.624v14.588l8.273 4.761v-4.325l-4.322-2.445-.002-.003H5.04c-.014-.01-.025-.021-.04-.031-.011-.01-.024-.018-.035-.027l-.001-.002c-.013-.012-.021-.025-.031-.04-.01-.011-.021-.022-.028-.036h-.002c-.008-.014-.013-.031-.02-.047-.006-.016-.014-.027-.018-.043a.49.49 0 01-.008-.057c-.002-.014-.006-.027-.006-.041V5.789l-2.18-1.257zM5.23.81L1.47 2.974l3.76 2.164 3.758-2.164zm1.956 13.505l2.182-1.256V3.624l-1.58.91-2.182 1.255v9.435zm11.581-10.95l-3.76 2.163 3.76 2.163 3.759-2.164zm-.376 4.978L16.21 7.087 14.63 6.18v4.283l2.182 1.256 1.58.908zm-8.65 9.654l5.514-3.148 2.756-1.572-3.757-2.163-4.323 2.489-3.941 2.27z\"},\"child\":[]}]})(props);\n};\nexport function SiLaravelhorizon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.486 3.516C15.8-1.171 8.202-1.172 3.516 3.513A11.963 11.963 0 0 0 0 11.998a11.975 11.975 0 0 0 4.2 9.13h.01a12 12 0 0 0 16.274-.642c4.687-4.685 4.688-12.283.002-16.97zM16 13.998c-4 0-4-4-8-4-2.5 0-3.44 1.565-4.765 2.74H3.23a8.801 8.801 0 0 1 17.54-1.48c-1.33 1.175-2.27 2.74-4.77 2.74z\"},\"child\":[]}]})(props);\n};\nexport function SiLaravelnova (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.333 4.319C16.56.386 9.453.632 4.973 5.057a7.571 7.571 0 0 0 0 10.8c3.018 2.982 7.912 2.982 10.931 0a3.245 3.245 0 0 0 0-4.628 3.342 3.342 0 0 0-4.685 0 1.114 1.114 0 0 1-1.561 0 1.082 1.082 0 0 1 0-1.543 5.57 5.57 0 0 1 7.808 0 5.408 5.408 0 0 1 0 7.714c-3.881 3.834-10.174 3.834-14.055 0a9.734 9.734 0 0 1-.015-13.87C5.596 1.35 8.638 0 12 0c3.75 0 7.105 1.68 9.333 4.319zm-.714 16.136A12.184 12.184 0 0 1 12 24a12.18 12.18 0 0 1-9.333-4.319c4.772 3.933 11.88 3.687 16.36-.738a7.571 7.571 0 0 0 0-10.8c-3.018-2.982-7.912-2.982-10.931 0a3.245 3.245 0 0 0 0 4.628 3.342 3.342 0 0 0 4.685 0 1.114 1.114 0 0 1 1.561 0 1.082 1.082 0 0 1 0 1.543 5.57 5.57 0 0 1-7.808 0 5.408 5.408 0 0 1 0-7.714c3.881-3.834 10.174-3.834 14.055 0a9.734 9.734 0 0 1 .03 13.855z\"},\"child\":[]}]})(props);\n};\nexport function SiLastdotfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.584 17.21l-.88-2.392s-1.43 1.594-3.573 1.594c-1.897 0-3.244-1.649-3.244-4.288 0-3.382 1.704-4.591 3.381-4.591 2.42 0 3.189 1.567 3.849 3.574l.88 2.749c.88 2.666 2.529 4.81 7.285 4.81 3.409 0 5.718-1.044 5.718-3.793 0-2.227-1.265-3.381-3.63-3.931l-1.758-.385c-1.21-.275-1.567-.77-1.567-1.595 0-.934.742-1.484 1.952-1.484 1.32 0 2.034.495 2.144 1.677l2.749-.33c-.22-2.474-1.924-3.492-4.729-3.492-2.474 0-4.893.935-4.893 3.932 0 1.87.907 3.051 3.189 3.601l1.87.44c1.402.33 1.869.907 1.869 1.704 0 1.017-.99 1.43-2.86 1.43-2.776 0-3.93-1.457-4.59-3.464l-.907-2.75c-1.155-3.573-2.997-4.893-6.653-4.893C2.144 5.333 0 7.89 0 12.233c0 4.18 2.144 6.434 5.993 6.434 3.106 0 4.591-1.457 4.591-1.457z\"},\"child\":[]}]})(props);\n};\nexport function SiLastpass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.629,6.857c0-0.379,0.304-0.686,0.686-0.686C23.693,6.171,24,6.483,24,6.857 v10.286c0,0.379-0.304,0.686-0.686,0.686c-0.379,0-0.686-0.312-0.686-0.686V6.857z M2.057,10.286c1.136,0,2.057,0.921,2.057,2.057 S3.193,14.4,2.057,14.4S0,13.479,0,12.343S0.921,10.286,2.057,10.286z M9.6,10.286c1.136,0,2.057,0.921,2.057,2.057 S10.736,14.4,9.6,14.4s-2.057-0.921-2.057-2.057S8.464,10.286,9.6,10.286z M17.143,10.286c1.136,0,2.057,0.921,2.057,2.057 S18.279,14.4,17.143,14.4s-2.057-0.921-2.057-2.057S16.007,10.286,17.143,10.286z\"},\"child\":[]}]})(props);\n};\nexport function SiLatex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.176 2.814c.233.42.476.78.73 1.09.247-.013 1.132.456 1.312.523.508.282 1.063.63 1.567.966.505.337.96.662 1.272.9.156.12.278.218.352.286a.483.483 0 01.078.082.08.08 0 01.01.021.06.06 0 01-.004.047.057.057 0 01-.04.03.077.077 0 01-.028 0c-.057 0-.203-.163-.497-.415a23.474 23.474 0 00-2.759-1.827c-.504-.28-.956-.542-1.264-.613a2.322 2.322 0 00-.36-.025 2.706 2.706 0 00-.788.133c.494.414.91.716 1.28.949-.57-.182-1.182-.21-1.902.133.526.329.967.567 1.354.745 1.103.156 2.258.696 3.224 1.309.483.307.904.615 1.219.867.157.125.29.237.39.328.098.091.174.154.197.21.03.073-.019.104-.084.058-.032-.022-.088-.102-.184-.191a7.35 7.35 0 00-.384-.327c-.312-.25-.729-.552-1.209-.857-.893-.562-2.232-1.013-3.173-1.397-.602-.11-1.225-.06-1.906.39.449.2.837.349 1.182.463.812 0 1.892.365 2.935.922 1.042.556 2.04 1.214 2.523 1.774.066.077-.016.126-.074.07-.52-.495-1.463-1.204-2.498-1.756-.639-.337-2.153-1.01-2.886-1.01l.004.002c-.567.02-1.13.195-1.679.716.477.118.885.196 1.244.249-.44.088-.87.3-1.289.722.324.07.616.122.882.162-.328.159-.639.404-.923.78.373.03.703.042 1 .044-.36.166-.696.43-.996.85.533.027.98.025 1.364.003-.422.172-.812.464-1.145.968.662.01 1.188-.022 1.628-.076l-.006.002c.99-.073 2.297.127 2.962.847.052.057-.024.118-.072.074-.648-.58-1.493-.827-2.89-.921h-.002c-.543.149-1.046.446-1.46 1.074.536.008.982-.013 1.366-.05-.469.257-.873.644-1.139 1.306.483-.092.888-.19 1.237-.292-.363.265-.668.636-.873 1.194.324-.072.612-.146.871-.221a2.519 2.519 0 00-.513 1.095c.352-.13.655-.254.926-.377-.257.3-.453.681-.55 1.19.495-.199.899-.388 1.238-.568-.31.333-.543.76-.635 1.356a11.816 11.816 0 001.442-.744c-.433.362-.764.843-.879 1.587.788-.348 1.339-.663 1.767-.955-.184.372-.282.806-.235 1.348.762-.584 1.243-1.056 1.602-1.473-.024.269-.003.56.077.884.546-.939 1.089-1.212 1.65-1.526-.895.451-.762.79-.762 1.184.683-.72 1.635-1.482 1.927-1.96-.39.585-.547 1.14-.65 1.63-1.993 1.054-3.207 1.329-4.568 1.75.528.194 1.093.383.859.652l-.624.622c.399-.124.805-.3 1.158-.059-.035.327-.447.492-.8.683.621-.224.756-.172.92-.12.081.393-.203.603-.388.862 1.565-1.19 3.606-2.13 5.044-2.522 2.022-.681 4.63-1.389 5.339-3.115l.712-2.847-.004.004c-.111-.034-.246-.063-.35-.133a.651.651 0 01-.235-.297c-.252.065-.44.03-.56-.088-.117-.117-.167-.296-.203-.491-.203.041-.362.016-.467-.077-.116-.101-.17-.26-.198-.444l-.008-.039.037-.015a.842.842 0 00.302-.194.257.257 0 00.07-.225l-.006-.037.03-.016c.163-.093.345-.169.428-.28a.274.274 0 00.053-.21.88.88 0 00-.155-.357l-.027-.04.04-.027c.118-.09.244-.179.308-.26.032-.04.048-.076.047-.11 0-.033-.015-.07-.064-.117l-.098-.094.135.006c.213.01.395-.007.538-.053a.504.504 0 00.274-.197c-.007-.033-.02-.063-.02-.098a.484.484 0 01.967 0c0 .044-.015.084-.026.125.177.014.347.01.507-.06l.002.001.035-.013c.236-.085.334.045.72-.456-1.69-2.19-4.157-.635-4.977 1.622-.21.576-1.405.578-1.751 0-1.37-2.95-5.53-6.068-9.07-7.218zm.86 2.145c.906.293 1.913.782 2.77 1.328.43.273.813.543 1.114.779.301.236.566.473.62.575.054.102 0 .14-.082.06-.081-.078-.303-.32-.6-.553-.298-.234-.68-.505-1.106-.777-.775-.49-1.982-.958-2.716-1.412zm-1.7 2.7c1.116.014 2.35.447 3.434.997.541.275 1.023.567 1.395.83.372.263.672.524.734.657.061.134-.02.13-.087.055a4.401 4.401 0 00-.704-.626 11.47 11.47 0 00-1.385-.826C3.76 8.264 2.439 7.82 1.336 7.66zm14.916.772a.381.381 0 100 .762.381.381 0 000-.762zM1.7 8.478c.822.072 1.72.368 2.534.75 1.086.509 2.035 1.158 2.434 1.667.035.045-.014.131-.08.062-.428-.44-1.322-1.131-2.397-1.635-.913-.421-2.282-.87-3.262-.78.251-.03.497-.088.771-.064zm16.339.01c-.366.475-.53.423-.703.464.094.43.35.586.585.77l-.06.012c2.315-.447 4.186-.286 6.139-.236l-5.961-1.01zm-.178 1.246h-.002l-.004.016.006-.016zm-.625-.757c-.183.074-.373.076-.563.059a.477.477 0 01-.42.26.483.483 0 01-.435-.278.609.609 0 01-.274.188c-.139.045-.308.057-.493.055.02.035.054.068.055.104a.273.273 0 01-.069.174c-.073.092-.189.17-.295.248.087.141.137.26.149.362a.39.39 0 01-.07.284c-.106.14-.288.21-.439.293a.374.374 0 01-.09.268.89.89 0 01-.297.198c.027.156.074.283.154.354.086.076.211.103.425.047l.055-.014.01.055c.033.207.088.385.187.483.1.099.244.135.503.055l.049-.015.016.048c.05.142.12.223.209.282.087.06.247.112.358.147.798-.869 1.525-1.772 1.884-2.86-.225-.177-.506-.338-.609-.797zm-16.23.386c1.165-.08 2.283.196 3.202.626.92.43 1.658.939 1.974 1.307.075.087-.019.12-.072.072a8.187 8.187 0 00-1.947-1.29c-.904-.414-2.193-.644-3.157-.715zm.864.802c.61.02 1.24.155 1.806.352.756.262 1.421.614 1.747.98.045.05-.007.127-.074.069-.349-.304-.961-.693-1.706-.951-.574-.195-1.613-.369-2.268-.397.197-.022.292-.06.495-.053zm1.05 1.788c.423.034.886.133 1.341.407.043.026.049.136-.049.09-.856-.402-1.326-.49-2.457-.31.386-.128.74-.221 1.164-.187zm-.04.788c.4-.035.784-.002 1.297.204.044.018.08.126-.033.094-.857-.243-1.167-.328-2.287.104.28-.229.622-.366 1.023-.402zm1.285.687c.317-.023.635-.026.934.006.052.006.055.105-.006.102a7.87 7.87 0 00-1.837.115c-.243.046-.423.043-1.405.458.287-.233.794-.452 1.385-.56a8.91 8.91 0 01.93-.12zm1.28.49c.099.003.062.104.006.103-.728-.01-1.304.132-1.875.295a9.78 9.78 0 00-1.318.525c.283-.23.713-.457 1.291-.622.579-.166 1.248-.326 1.896-.302zm.528.398c.036-.005.105.084.018.1-.73.137-1.244.267-1.794.454-.216.074-.58.207-1.243.587.26-.269.656-.492 1.213-.68.558-.19 1.196-.37 1.806-.46zm.311.507c.075-.012.097.087.02.102-1.217.241-1.76.556-2.54 1.144.504-.523 1.297-1.051 2.52-1.246zm.595.448c.087-.013.11.087.021.1-.872.13-1.477.553-2.255 1.33.295-.493 1.004-1.24 2.234-1.43zm.372.39c.046-.006.114.073.023.1a2.634 2.634 0 00-.669.3c-.182.118-.3.2-.597.507.111-.245.296-.434.542-.59.247-.157.509-.293.7-.317z\"},\"child\":[]}]})(props);\n};\nexport function SiLaunchpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.999 18.676l-4.432-2.556-4.783 2.764V24l9.215-5.324zM11.216 24v-5.119l-4.785-2.762-4.43 2.557L11.216 24zm.779-6.475l4.789-2.765V9.236l-4.785-2.76-4.783 2.76v5.527l4.781 2.761-.002.001zM1.22 6.682v10.641l4.432-2.559V9.239L1.219 6.68l.001.002zm19.615 1.121l-2.484 1.436v5.522l4.43 2.559V6.678l-1.946 1.125zM2.001 5.324l4.435 2.559 4.781-2.762V.003L2.001 5.324zm15.566 2.559l4.434-2.559L12.782 0v5.121l4.785 2.762z\"},\"child\":[]}]})(props);\n};\nexport function SiLazarus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.457.447c0 .198.035.367.092.367.123 0 .51.715.592 1.092.053.288.053.288-.45.398-1.225.248-1.532 1.092-.694 2.383.276.417.276.436.245 1.588-.017 1.092 0 1.192.195 1.589.213.397.5.655 1 .854.419.159 1.94.081 2.349-.13.51-.247 1.224-1.091 1.53-1.588.235-.606.164-1.49-.193-2.284-.357-.724-1.225-1.688-1.94-2.085-.408-.228-.582-.377-.745-.685a4.493 4.369 0 0 0-.531-.754C12.518.755 11.681 0 11.579 0c-.038 0-.075.169-.075.367zm-6.33 1.688a6.127 5.958 0 0 0-.162 1.986c.054.437.027.556-.154.873-.377.676-.53 1.291-.49 2.383.029.725.083.964.287 1.291.46.894 1.123 1.291 2.144 1.589.664.129 1.225.083 1.735-.189 1.634-.715 1.94-1.986.624-3.276-.512-.596-.756-1.093-.756-1.49 0-.526-.255-1.191-.572-1.49-.255-.228-.337-.237-.837-.198a6.772 6.586 0 0 0-.797.12c-.234.055-.276.026-.429-.368a2.144 2.085 0 0 1-.173-.774c.027-.348-.195-.835-.378-.835-.045 0-.133.17-.193.378zm16.338 3.078c-.036.198-.02.377.054.457.063.072.122.347.133.615l.008.487-.327.01c-.674.018-.756.044-1.123.377a2.552 2.482 0 0 0-.49.804c-.091.248-.43 1.092-.796 1.688-.358.725-.654 1.49-.675 1.688-.122.755.317 1.291 1.328 1.887.46.228.664.248 1.327.248.674 0 .858-.037 1.327-.288.736-.347 1.124-.755 1.532-1.49.215-.436.246-.615.235-1.489-.01-1.092-.204-1.688-.704-2.383a4.084 3.972 0 0 1-.46-.993c-.194-.685-.909-1.986-1.123-1.986-.074 0-.154.13-.195.318zM.022 11.17c-.1.17.154 1.688.368 2.284.123.308.285.854.357 1.192.378 1.886 1.736 3.177 3.267 3.276 1.123.074 2.042-.248 2.553-.923.745-.874.867-1.688.357-2.383-.153-.189-.592-.526-.99-.775-.388-.238-1.123-.675-1.532-.963-1.327-.874-1.531-.933-1.735-1.092-.49-.13-.838-.028-1.226.348l-.357.317-.194-.317c-.1-.17-.194-.378-.194-.497 0-.1-.122-.288-.255-.437-.286-.268-.358-.288-.429-.159Zm13.274 2.284c-.654.169-1.327.417-1.634.566-.674.348-1.225.894-1.532 1.49-.173.436-.204.565-.153 1.489.054.834.037.963-.163 1.29-.215.457-.878 1.192-1.226 1.291-.112.046-.295.239-.418.408-.633.933.235 2.78 1.635 3.574.653.348 1.53.497 2.347.417 2.962-.268 6.126-1.092 8.373-2.085 1.532-.695 2.144-1.688 2.144-3.078-.028-1.49-.787-2.383-2.043-2.383-1 0-2.042-.616-2.45-1.49-.317-.615-.939-1.191-1.532-1.588-.326-.13-.653-.199-1.327-.229-.745-.026-1.02.02-2.042.288z\"},\"child\":[]}]})(props);\n};\nexport function SiLazyvim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.87 0a2.5 2.5 0 0 0-.697.1q-.187.058-.351.147-.163.09-.297.213l-.008.006q-.133.124-.235.27a1.7 1.7 0 0 0-.27.643 1.8 1.8 0 0 0 .105 1.023q.072.164.176.308.105.14.24.26l.007.004q.137.12.299.205.159.084.348.14.32.093.682.092h2.8l-4.256 5.09-.618.733.01.008q-.046.06-.088.124l-.07.116L.59 9.6q-.03.06-.05.12l-.006.016a1.8 1.8 0 0 0-.122.66q0 .219.042.423.039.204.12.4.084.2.21.372a2 2 0 0 0 1.067.746h.002q.397.117.87.117H9.65q.169 0 .338-.02.163-.02.312-.06l.044-.013q.185-.056.344-.144a1.6 1.6 0 0 0 .297-.21l.012-.01a1.65 1.65 0 0 0 .414-.592q.063-.157.095-.33a2 2 0 0 0 .004-.672 1.6 1.6 0 0 0-.084-.304l-.02-.055a1.5 1.5 0 0 0-.436-.58l-.006-.005a1.65 1.65 0 0 0-.635-.325 2.7 2.7 0 0 0-.675-.087H5.918l4.157-4.95.243-.304a6 6 0 0 0 .353-.486 2.1 2.1 0 0 0 .262-.64q.075-.315.074-.674 0-.46-.142-.83a1.7 1.7 0 0 0-.437-.648 1.8 1.8 0 0 0-.66-.39A2.6 2.6 0 0 0 8.938 0Zm12.36 6.062q-.179 0-.347.024a2 2 0 0 0-.325.073q-.18.054-.338.142a1.6 1.6 0 0 0-.29.21l-.003.003a1.6 1.6 0 0 0-.394.56q-.065.15-.097.317-.03.165-.032.337a1.7 1.7 0 0 0 .135.655q.07.162.171.3.098.131.225.242l.01.012q.133.114.29.197.155.082.335.134a2.4 2.4 0 0 0 .658.09h2.673L13.82 14.24l-.594.703.01.008-.088.123a1 1 0 0 0-.066.113l-.057.112c-.015.036-.046.097-.055.133a1.8 1.8 0 0 0-.118.64 2.1 2.1 0 0 0 .158.796 1.87 1.87 0 0 0 .83.912q.19.102.406.166h.001q.192.057.404.085.214.03.437.03h6.678q.168 0 .325-.02.154-.02.304-.06l.042-.012a1.7 1.7 0 0 0 .33-.14q.155-.083.288-.203l.01-.01q.134-.124.233-.265.103-.146.168-.308.06-.152.093-.318.03-.166.03-.34a1.8 1.8 0 0 0-.112-.605l-.02-.05a1.5 1.5 0 0 0-.417-.56l-.004-.004a1.6 1.6 0 0 0-.29-.19 2 2 0 0 0-.332-.128 2.4 2.4 0 0 0-.65-.083h-3.575l3.727-4.435q.154-.182.262-.314l.234-.291a6 6 0 0 0 .34-.47q.085-.137.15-.293a2.4 2.4 0 0 0 .102-.324 2.8 2.8 0 0 0 .07-.65q0-.445-.14-.8a1.7 1.7 0 0 0-.423-.628 1.8 1.8 0 0 0-.639-.377 2.5 2.5 0 0 0-.804-.12Zm-11.39 9.23q-.127 0-.256.016a1.5 1.5 0 0 0-.498.162q-.12.068-.22.158l-.001.004a1.2 1.2 0 0 0-.37.665 1.2 1.2 0 0 0 .002.506 1.15 1.15 0 0 0 .374.65l.01.01a1.2 1.2 0 0 0 .47.25q.23.067.49.067h1.776l-2.833 3.39-.468.553.01.007-.078.124-.042.084c-.014.03-.027.068-.042.097a1.3 1.3 0 0 0-.09.48q0 .156.03.305.029.147.088.289.063.146.152.27a1.4 1.4 0 0 0 .47.413q.142.076.304.125.142.042.299.063.159.02.32.02h4.776q.118 0 .24-.014.118-.015.224-.044l.034-.01q.135-.041.249-.104.12-.066.219-.154l.007-.008a1.2 1.2 0 0 0 .303-.432q.048-.113.07-.24a1.4 1.4 0 0 0 .002-.486 1.2 1.2 0 0 0-.06-.222l-.016-.042a1.14 1.14 0 0 0-.322-.426 1.2 1.2 0 0 0-.467-.24 1.8 1.8 0 0 0-.483-.06h-2.42l2.768-3.294.167-.21.139-.183a2 2 0 0 0 .106-.158q.066-.104.112-.22a1.8 1.8 0 0 0 .115-.472q.014-.126.013-.247 0-.33-.103-.596a1.26 1.26 0 0 0-.32-.47 1.3 1.3 0 0 0-.478-.284 1.8 1.8 0 0 0-.596-.092z\"},\"child\":[]}]})(props);\n};\nexport function SiLbry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.3493 14.1894l.169-1.0651-1.0315-.1775.0676-.4142 1.4456.245-.2365 1.4795zm.152-5.495v1.1921l-11.7338 7.211-8.8425-4.3367.0169-.6677 8.7918 4.3282 11.1759-6.8644v-.4904L12.3592 3.9773.5917 11.2561v3.2547l11.142 5.5119 11.6322-7.135.33.5074-11.9284 7.3038L0 14.8828v-3.9563L12.3254 3.301z\"},\"child\":[]}]})(props);\n};\nexport function SiLeaderprice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.836 7.574h-1.1v3.97h2.822v-.965H1.836zM17.08 9.943h1.794V9.15H17.08v-.636h1.987v-.941H15.99v3.97h3.106v-.936h-2.021v-.665zm-12.075 0H6.8V9.15H5.005v-.636h1.992v-.941H3.92v3.97h3.106v-.936H5.005zm17.314.217c.492-.208.815-.613.815-1.22v-.01c0-.391-.12-.7-.352-.927-.265-.27-.685-.43-1.293-.43h-1.877v3.971h1.1v-1.201h.483l.8 1.201h1.27zm-.29-1.153c0 .29-.217.472-.588.472h-.724v-.95h.719c.367 0 .593.16.593.473zm-8.731-1.433h-1.53v3.97h1.51c1.428 0 2.263-.849 2.263-1.997v-.01c-.005-1.148-.825-1.963-2.243-1.963zm1.11 1.992c0 .642-.44 1.004-1.096 1.004h-.448V8.553h.448c.656 0 1.095.367 1.095 1.004zM11.734 0 5.497 6.238h12.475zm-2.88 7.574-1.68 3.97h1.149l.28-.704h1.52l.289.704h1.172l-1.679-3.97zm.072 2.417.444-1.158.439 1.158zm-.781 5.248h.482l.8 1.202h1.27l-.946-1.385c.492-.207.815-.613.815-1.22v-.01c0-.39-.12-.7-.352-.926-.265-.27-.685-.43-1.293-.43H7.046v3.966h1.1zm0-1.813h.718c.367 0 .594.159.594.472v.01c0 .29-.217.473-.589.473h-.723zm-1.54.453v-.01c0-.878-.646-1.394-1.65-1.394h-1.7v3.966h1.1v-1.134H4.9c.984 0 1.708-.492 1.708-1.428zm-1.1.048c0 .314-.236.516-.626.516h-.526v-1.046h.516c.396 0 .637.183.637.52zm6.788-1.457H11.19v3.966h1.104zm2.634 4.091c.695 0 1.341-.342 1.737-.916l.024-.034-.892-.613-.025.034a1.02 1.02 0 0 1-1.862-.574 1.02 1.02 0 0 1 1.023-1.018c.338 0 .651.164.84.444l.024.034.892-.613-.024-.034a2.103 2.103 0 0 0-1.737-.912 2.108 2.108 0 0 0-2.103 2.104c0 1.153.94 2.098 2.103 2.098zm3.295-1.056v-.666h1.906v-.791h-1.906v-.637h2.103v-.936h-3.193v3.966h3.218v-.936zM11.735 24l6.237-6.238H5.497z\"},\"child\":[]}]})(props);\n};\nexport function SiLeaflet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.69 0c-.355.574-8.432 4.74-10.856 8.649-2.424 3.91-3.116 6.988-2.237 9.882.879 2.893 2.559 2.763 3.516 3.717.958.954 2.257 2.113 4.332 1.645 2.717-.613 5.335-2.426 6.638-7.508 1.302-5.082.448-9.533-.103-11.99A35.395 35.395 0 0 0 17.69 0zm-.138.858l-9.22 21.585-.574-.577Z\"},\"child\":[]}]})(props);\n};\nexport function SiLeagueoflegends (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m1.912 0 1.212 2.474v19.053L1.912 24h14.73l1.337-4.682H8.33V0ZM12 1.516c-.913 0-1.798.112-2.648.312v1.74a9.738 9.738 0 0 1 2.648-.368c5.267 0 9.536 4.184 9.536 9.348a9.203 9.203 0 0 1-2.3 6.086l-.273.954-.602 2.112c2.952-1.993 4.89-5.335 4.89-9.122C23.25 6.468 18.213 1.516 12 1.516Zm0 2.673c-.924 0-1.814.148-2.648.414v13.713h8.817a8.246 8.246 0 0 0 2.36-5.768c0-4.617-3.818-8.359-8.529-8.359zM2.104 7.312A10.858 10.858 0 0 0 .75 12.576c0 1.906.492 3.7 1.355 5.266z\"},\"child\":[]}]})(props);\n};\nexport function SiLeanpub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.19 5.284c-.806-.454-2.93-1.478-5.652-1.478-2.445 0-3.837.751-4.538 1.234-.701-.483-2.093-1.235-4.538-1.235-2.723 0-4.846 1.025-5.651 1.479L0 20.194h.054a6.933 6.933 0 002.957-.673c1.032-.487 2.66-1.06 4.602-1.06 2.364 0 3.71 1.056 4.387 1.733.678-.677 2.023-1.732 4.387-1.732 1.943 0 3.57.572 4.602 1.06a6.933 6.933 0 002.957.672H24zM20.934 17.78a12.167 12.167 0 00-2.875-.801c-.558-.081-1.12-.122-1.674-.122-1.571 0-2.991.392-4.22 1.165l-.166.103-.165-.103c-1.23-.773-2.65-1.165-4.222-1.165-.552 0-1.115.04-1.673.122-.949.137-1.916.407-2.875.801l-1.218.501L3.3 6.321l.108-.048c1.225-.542 2.797-.865 4.205-.865 1.745 0 3.22.556 4.387 1.652 1.168-1.096 2.642-1.652 4.386-1.652 1.409 0 2.98.323 4.206.865l.108.048 1.453 11.961zm-4.085-1.328a11.99 11.99 0 00-.464-.009c-1.627 0-3.103.402-4.386 1.194-1.283-.792-2.759-1.194-4.387-1.194-.572 0-1.155.043-1.732.126-.983.143-1.983.421-2.973.829l-.565.232 1.34-11.025c1.159-.492 2.618-.783 3.93-.783 1.705 0 3.131.562 4.24 1.672L12 7.64l.146-.146c1.07-1.07 2.433-1.629 4.055-1.669z\"},\"child\":[]}]})(props);\n};\nexport function SiLeetcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.483 0a1.374 1.374 0 0 0-.961.438L7.116 6.226l-3.854 4.126a5.266 5.266 0 0 0-1.209 2.104 5.35 5.35 0 0 0-.125.513 5.527 5.527 0 0 0 .062 2.362 5.83 5.83 0 0 0 .349 1.017 5.938 5.938 0 0 0 1.271 1.818l4.277 4.193.039.038c2.248 2.165 5.852 2.133 8.063-.074l2.396-2.392c.54-.54.54-1.414.003-1.955a1.378 1.378 0 0 0-1.951-.003l-2.396 2.392a3.021 3.021 0 0 1-4.205.038l-.02-.019-4.276-4.193c-.652-.64-.972-1.469-.948-2.263a2.68 2.68 0 0 1 .066-.523 2.545 2.545 0 0 1 .619-1.164L9.13 8.114c1.058-1.134 3.204-1.27 4.43-.278l3.501 2.831c.593.48 1.461.387 1.94-.207a1.384 1.384 0 0 0-.207-1.943l-3.5-2.831c-.8-.647-1.766-1.045-2.774-1.202l2.015-2.158A1.384 1.384 0 0 0 13.483 0zm-2.866 12.815a1.38 1.38 0 0 0-1.38 1.382 1.38 1.38 0 0 0 1.38 1.382H20.79a1.38 1.38 0 0 0 1.38-1.382 1.38 1.38 0 0 0-1.38-1.382z\"},\"child\":[]}]})(props);\n};\nexport function SiLefthook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m5.4598 18.5173-.103.0303L0 16.1385l.121-.2724c.8535-1.9733 2.1186-3.7044 3.771-5.1934a22 22 0 0 1 .7143-.6174l-.2784-.5267-.339-.6355-.109-.2119-.0726-.1392.0666-.1392c.7445-1.5132 1.9067-2.3607 3.8013-2.8752 1.156-.3026 2.1245-.2845 2.9054.0848a17.4 17.4 0 0 1 4.6123-1.7978l.0606-.012L24 13.1845l-.0968.1816a193 193 0 0 1-2.2638 4.3945c-1.0472 1.9732-2.7844 2.6875-5.0422 2.3606-1.6948-.242-3.541-1.029-5.7503-2.288l-.6658-.3692c-1.023.1513-2.6028.5024-4.7274 1.0532Zm-1.1683-7.3907A14.36 14.36 0 0 0 .799 15.8298l3.7044 1.6706a31.3 31.3 0 0 1 3.7831-1.1077 1649 1649 0 0 0-3.8497-2.1549l-.2784-.1573 1.4103-2.2094L4.8968 10.6a21 21 0 0 0-.6053.5266m2.2518 2.9417h.006c2.288-.4055 4.0797-2.2214 4.7213-3.3715a13 13 0 0 0 .351-.5568l3.1355-5.5809a16.63 16.63 0 0 0-4.5276 1.9612l-.6537-.3026a23 23 0 0 1 .3269-.2058 4.13 4.13 0 0 0-2.0762.109c-1.6706.4418-2.6754 1.162-3.3412 2.415l.0423.0727.333.6355 1.1863 2.2396a3.05 3.05 0 0 0 1.15.0121c.5812-.0847 1.1138-.3026 1.5436-.6476.8535-.69 1.3074-1.2106 1.3437-1.6706.0424-.5448-.3147-1.2772-1.3135-2.6694 1.4104.9443 2.3728 2.4575 1.598 3.547v.0061a3.5 3.5 0 0 1-.2602.339c-.2543.2905-.563.575-.9867.92a3.84 3.84 0 0 1-1.834.7748 4 4 0 0 1-1.1561.0182l-1.1198 1.7553a1699 1699 0 0 1 2.9962 1.6707v-.0121c3.087-.1635 5.0845-2.0338 7.0154-5.1027-1.477 3.1354-3.305 5.145-6.1256 5.6172a99 99 0 0 1 1.61.908c3.0265-.1998 4.8545-1.8584 6.7673-4.897-1.4588 3.0992-3.1415 4.9272-5.8714 5.3993a33 33 0 0 0 .8898.4842l-.0303-.0302a14 14 0 0 0 .333.1816 25 25 0 0 0 .5023.242c3.0144-.1936 4.6971-1.6403 6.6099-4.6789-1.4043 2.9841-2.9055 4.6306-5.4295 5.145 1.8461.5448 3.3412.212 4.8423-.7263.5145-.3329 1.7493-2.0883 3.6923-5.2782L15.3322 4.765l-3.1839 5.6777a10.47 10.47 0 0 1-1.822 2.3244 5.69 5.69 0 0 1-3.777 1.3013z\"},\"child\":[]}]})(props);\n};\nexport function SiLegacygames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.62 5.985v12.033L11.992 24l10.37-5.987L22.38 6 11.988 0Zm19.146.955.002 10.123-8.793 5.045-8.758-5.023L3.216 6.94l8.77-5.06Zm-8.781-3.176a2.03 2.03 0 0 1 .87 3.863v2.936l3.863-2.256c.203-.118.427-.196.66-.227l1.602-.218a.104.104 0 0 1 .098.165l-.963 1.308a1.78 1.78 0 0 1-.54.485L13.6 12.13l2.393 1.403c.564-.41 1.393-.46 2.144-.082l.16.088c1.041.618 1.488 1.86.999 2.771-.49.913-1.731 1.15-2.772.532-.748-.444-1.19-1.21-1.198-1.944l-2.472-1.451v3.042a2.03 2.03 0 0 1 1.154 1.673l.006.16a2.03 2.03 0 1 1-2.899-1.833v-2.915l-4.236 2.46a.595.595 0 0 1-.242.079l-1.746.166a.104.104 0 0 1-.093-.165l1.043-1.399a.594.594 0 0 1 .177-.157l4.374-2.555-2.418-1.418c-.564.409-1.391.458-2.142.08l-.16-.087c-1.04-.619-1.488-1.86-.998-2.772.49-.912 1.73-1.15 2.772-.531.75.445 1.19 1.212 1.197 1.947l2.471 1.449.001-3.043a2.03 2.03 0 0 1-1.153-1.674l-.006-.16c0-1.12.908-2.03 2.029-2.03z\"},\"child\":[]}]})(props);\n};\nexport function SiLeica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.42 10.954c.198.011.35.146.343.29-.033.94-1.19.795-1.19.795s.17-1.126.846-1.085zm9.313 2.064c.794 0 .952-1.605.952-1.64a.41.41 0 0 0-.423-.398c-.66 0-.9 1.203-.9 1.508 0 .116.007.53.37.53zm-9.949-5.08c.036-.318-.12-.662-.555-.662-1.06 0-1.509 2.963-1.509 2.963s1.853-.438 2.064-2.301zm-6.244 5.82c-.207.021-.423.114-.423.344 0 .139.235.382.608.37.49-.014 1.085-.475 1.085-.475s-.506-.207-1.085-.239a1.026 1.026 0 0 0-.185 0zM24 12.003C24 18.628 18.627 24 12 24 5.37 24 0 18.628 0 12.003 0 5.374 5.371 0 12 0c6.627 0 12 5.374 12 12.003zM11.933 9.446c0 .446.377.555.794.555.418 0 .82-.18.82-.635 0-.456-.48-.555-.82-.555-.471 0-.794.193-.794.635zM9.366 10.53c-1.41 0-2.407.866-2.407 1.904 0 .948.808 1.35 1.852 1.35 1.184 0 2.354-.714 2.354-.714s.071.714 1.006.714c.964 0 1.72-.714 1.72-.714s.417.687 1.376.687c.98 0 1.72-.793 1.72-.793s.272.74 1.243.74c.759 0 1.164-.476 1.164-.476s.212.477.873.477c.808 0 1.402-.556 1.402-.556l-.132-.476s-.307.238-.529.238c-.168 0-.265-.137-.265-.291 0-.347.556-2.064.556-2.064l-1.35.026-.052.212s-.201-.37-.9-.37c-1.352 0-2.085 1.166-2.116 1.852-.007.149-.027.158-.027.158-.032.036-.497.583-1.085.583-.47 0-.555-.384-.555-.635 0-.273.233-1.35.873-1.35.348 0 .555.291.555.291l.186-.608s-.292-.236-.9-.238c-1.308-.001-2.19.967-2.222 1.852-.007.132-.03.176-.027.185-.043.053-.35.423-.767.423-.286 0-.291-.219-.291-.317 0-.135.555-2.064.555-2.064l-1.481.026-.503 1.879s-.826.581-1.958.661c-.584.04-.794-.32-.794-.529v-.08c.001 0 .246.027.424.027.14 0 1.878-.134 1.878-1.19 0-.605-.613-.82-1.376-.82zm12.568 3.889-.132-.476s-3.096 1.078-9.022 1.005c-4.089-.05-7.224-1.243-7.224-1.243s.119-.212.185-.344c.41-.835.9-2.514.9-2.514s2.805-.785 2.805-3.016c0-.706-.674-1.162-1.323-1.19-2.264-.089-2.877 3.128-3.017 3.677-.007.039-.026.053-.026.053-.698-.095-1.085-.238-1.085-.238l-.159.45c.471.223 1.165.29 1.165.29-.136.865-.82 2.488-.82 2.488s-.608-.186-1.376-.186c-1 0-1.35.47-1.376.768-.066.77.911 1.137 1.587 1.137 1.32 0 2.011-.714 2.011-.714s3.695 1.402 7.567 1.402c5.069 0 9.34-1.35 9.34-1.35z\"},\"child\":[]}]})(props);\n};\nexport function SiLemmy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.9595 4.2228a3.9132 3.9132 0 0 0-.332.019c-.8781.1012-1.67.5699-2.155 1.3862-.475.8-.5922 1.6809-.35 2.4971.2421.8162.8297 1.5575 1.6982 2.1449.0053.0035.0106.0076.0163.0114.746.4498 1.492.7431 2.2877.8994-.02.3318-.0272.6689-.006 1.0181.0634 1.0432.4368 2.0006.996 2.8492l-2.0061.8189a.4163.4163 0 0 0-.2276.2239.416.416 0 0 0 .0879.455.415.415 0 0 0 .2941.1231.4156.4156 0 0 0 .1595-.0312l2.2093-.9035c.408.4859.8695.9315 1.3723 1.318.0196.0151.0407.0264.0603.0423l-1.2918 1.7103a.416.416 0 0 0 .664.501l1.314-1.7385c.7185.4548 1.4782.7927 2.2294 1.0242.3833.7209 1.1379 1.1871 2.0202 1.1871.8907 0 1.6442-.501 2.0242-1.2072.744-.2347 1.4959-.5729 2.2073-1.0262l1.332 1.7606a.4157.4157 0 0 0 .7439-.1936.4165.4165 0 0 0-.0799-.3074l-1.3099-1.7345c.0083-.0075.0178-.0113.0261-.0188.4968-.3803.9549-.8175 1.3622-1.2939l2.155.8794a.4156.4156 0 0 0 .5412-.2276.4151.4151 0 0 0-.2273-.5432l-1.9438-.7928c.577-.8538.9697-1.8183 1.0504-2.8693.0268-.3507.0242-.6914.0079-1.0262.7905-.1572 1.5321-.4502 2.2737-.8974.0053-.0033.011-.0076.0163-.0113.8684-.5874 1.456-1.3287 1.6982-2.145.2421-.8161.125-1.697-.3501-2.497-.4849-.8163-1.2768-1.2852-2.155-1.3863a3.2175 3.2175 0 0 0-.332-.0189c-.7852-.0151-1.6231.229-2.4286.6942-.5926.342-1.1252.867-1.5433 1.4387-1.1699-.6703-2.6923-1.0476-4.5635-1.0785a15.5768 15.5768 0 0 0-.5111 0c-2.085.034-3.7537.43-5.0142 1.1449-.0033-.0038-.0045-.0114-.008-.0152-.4233-.5916-.973-1.1365-1.5835-1.489-.8055-.465-1.6434-.7083-2.4286-.6941Zm.2858.7365c.5568.042 1.1696.2358 1.7787.5875.485.28.9757.7554 1.346 1.2696a5.6875 5.6875 0 0 0-.4969.4085c-.9201.8516-1.4615 1.9597-1.668 3.2335-.6809-.1402-1.3183-.3945-1.984-.7948-.7553-.5128-1.2159-1.1225-1.4004-1.7445-.1851-.624-.1074-1.2712.2776-1.9196.3743-.63.9275-.9534 1.6118-1.0322a2.796 2.796 0 0 1 .5352-.0076Zm17.5094 0a2.797 2.797 0 0 1 .5353.0075c.6842.0786 1.2374.4021 1.6117 1.0322.385.6484.4627 1.2957.2776 1.9196-.1845.622-.645 1.2317-1.4004 1.7445-.6578.3955-1.2881.6472-1.9598.7888-.1942-1.2968-.7375-2.4338-1.666-3.302a5.5639 5.5639 0 0 0-.4709-.3923c.3645-.49.8287-.9428 1.2938-1.2113.6091-.3515 1.2219-.5454 1.7787-.5875ZM12.006 6.0036a14.832 14.832 0 0 1 .487 0c2.3901.0393 4.0848.67 5.1631 1.678 1.1501 1.0754 1.6423 2.6006 1.499 4.467-.1311 1.7079-1.2203 3.2281-2.652 4.324-.694.5313-1.4626.9354-2.2254 1.2294.0031-.0453.014-.0888.014-.1349.0029-1.1964-.9313-2.2133-2.2918-2.2133-1.3606 0-2.3222 1.0154-2.2918 2.2213.0013.0507.014.0972.0181.1471-.781-.2933-1.5696-.7013-2.2777-1.2456-1.4239-1.0945-2.4997-2.6129-2.6037-4.322-.1129-1.8567.3778-3.3382 1.5212-4.3965C7.5094 6.7 9.352 6.047 12.006 6.0036Zm-3.6419 6.8291c-.6053 0-1.0966.4903-1.0966 1.0966 0 .6063.4913 1.0986 1.0966 1.0986s1.0966-.4923 1.0966-1.0986c0-.6063-.4913-1.0966-1.0966-1.0966zm7.2819.0113c-.5998 0-1.0866.4859-1.0866 1.0866s.4868 1.0885 1.0866 1.0885c.5997 0 1.0865-.4878 1.0865-1.0885s-.4868-1.0866-1.0865-1.0866zM12 16.0835c1.0237 0 1.5654.638 1.5634 1.4829-.0018.7849-.6723 1.485-1.5634 1.485-.9167 0-1.54-.5629-1.5634-1.493-.0212-.8347.5397-1.4749 1.5634-1.4749Z\"},\"child\":[]}]})(props);\n};\nexport function SiLemonsqueezy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.4916 10.835 2.3748-6.5114a3.1497 3.1497 0 0 0-.065-2.3418C9.0315.183 6.9427-.398 5.2928.265 3.643.929 2.71 2.4348 3.512 4.3046l2.8197 6.5615c.219.509.97.489 1.16-.03m1.6798 1.0969 6.5334-2.7758c2.1699-.9219 2.7218-3.6907 1.022-5.2905l-.068-.063c-1.6669-1.5469-4.4217-1.002-5.3706 1.0359L8.3566 11.135c-.234.503.295 1.0199.8159.7979m.373.87 6.6454-2.5119c2.2078-.8349 4.6206.745 4.5886 3.0398l-.002.09c-.048 2.2358-2.3938 3.7376-4.5536 2.9467l-6.6724-2.4418a.595.595 0 0 1-.006-1.1229m-.386 1.9269 6.4375 2.9767a3.2997 3.2997 0 0 1 1.6658 1.6989c.769 1.7998-.283 3.6396-1.9328 4.3016-1.6499.662-3.4097.235-4.2097-1.6359l-2.8027-6.5694c-.217-.509.328-1.009.8419-.772\"},\"child\":[]}]})(props);\n};\nexport function SiLenovo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.044 12.288c0 .5-.343.867-.815.867-.464 0-.827-.38-.827-.867 0-.51.343-.868.815-.868.464 0 .827.381.827.868zm-14.305-.92a.787.787 0 0 0-.651.307.991.991 0 0 0-.172.738l1.479-.614a.708.708 0 0 0-.656-.43zm6.963.052c-.472 0-.816.358-.816.868 0 .486.364.867.828.867.472 0 .815-.368.815-.867 0-.487-.363-.868-.827-.868zM24 7.997v8.006H0V7.997h24zM5.01 13.05H3.088V9.825H2.23v4.003h2.78v-.777zm1.137-.094l2.163-.897a1.667 1.667 0 0 0-.37-.86c-.284-.33-.704-.505-1.216-.505-.931 0-1.633.686-1.633 1.593 0 .93.704 1.593 1.726 1.593.572 0 1.158-.272 1.432-.589l-.535-.411c-.357.264-.56.326-.885.326-.292 0-.52-.09-.682-.25zm5.57-1.039c0-.709-.507-1.223-1.252-1.223a1.28 1.28 0 0 0-1.005.494v-.442h-.846v3.081h.846v-1.753c0-.316.245-.651.698-.651.35 0 .712.243.712.651v1.753h.847v-1.91zm3.647.37c0-.904-.725-1.593-1.65-1.593-.933 0-1.663.7-1.663 1.593 0 .903.726 1.592 1.651 1.592.932 0 1.662-.7 1.662-1.592zm2.066 1.54l1.268-3.081h-.967l-.765 2.099-.765-2.1h-.966l1.268 3.081h.927zm4.449-1.54c0-.904-.725-1.593-1.65-1.593-.932 0-1.662.7-1.662 1.593 0 .903.725 1.592 1.65 1.592.932 0 1.662-.7 1.662-1.592z\"},\"child\":[]}]})(props);\n};\nexport function SiLens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.255 3.5H3.5v4.255l3.75 4.715ZM3.5 8.955v7.125h5.665ZM19.545 3.5H10.02L8.87 8.635Zm-.9 17H20.5v-8.4l-4.32-2.105Zm-5.79-12.95 7.645 3.72v-7.4ZM3.5 16.825V20.5h6.88l2.875-3.675zm7.83 3.675h6.545l-1.51-6.435zM0 0h24v24H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiLeptos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.097 17.876A6.207 6.207 0 0 1 5.834 12c0-3.393 2.773-6.166 6.166-6.166.248 0 .517.021.766.042a9.896 9.896 0 0 1 1.49-2.504 3.575 3.575 0 0 1-.85-2.296c0-.331.042-.662.146-.993A19.487 19.487 0 0 0 12 0C5.38 0 0 5.38 0 12c0 4.366 2.338 8.172 5.814 10.283l.124-.062a8.434 8.434 0 0 0 4.159-4.345Zm6.848-14.979c.662 0 1.262-.352 1.593-.952v-.02a12.32 12.32 0 0 0-3.269-1.49v.02a1.851 1.851 0 0 0-.124.642c0 .993.807 1.8 1.8 1.8ZM19.924 3c-.662 1.014-1.758 1.634-2.98 1.634a3.54 3.54 0 0 1-.806-.103 3.153 3.153 0 0 1-.476-.145 8.75 8.75 0 0 0-1.22 1.945c2.275.993 3.724 3.186 3.724 5.669 0 3.393-2.773 6.166-6.166 6.166h-.145a10.374 10.374 0 0 1-4.117 5.048C9.062 23.71 10.51 24 12 24c6.62 0 12-5.38 12-12 0-3.58-1.572-6.807-4.076-9Zm-8.848 4.67a4.428 4.428 0 1 0 1.849 8.661 4.428 4.428 0 1 0-1.85-8.66z\"},\"child\":[]}]})(props);\n};\nexport function SiLequipe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.109 9.885-.132.301H5l-.258.612h.399l-1.32 3.092h2.398l.265-.611H5.312l.454-1.051h1.172l.234-.557H6.008l.375-.866h1.164l.258-.611H6.711l.133-.309h-.735Zm3.575.27c-1.223.008-1.74.891-2.024 1.492-.811 1.722.479 2.232.773 2.285.168.031.505.031.674 0l.107.183h.635l-.215-.328c.475-.03 1.034-.678 1.278-1.195.245-.518.962-2.397-1.228-2.437Zm11.449.012-.269.63h.437l-1.317 3.077h2.422l.242-.551h-1.234l.461-1.078h1.235l.242-.567h-1.235l.383-.885h1.226l.274-.626h-2.867Zm-17.828.004-.27.625h.415c-.087.211-.192.477-.34.805.828-.195 1.249-.844 1.359-1.43H3.305Zm-2.109.001-.266.619h.398L0 13.89h2.445l.258-.603H1.539l1.336-3.115H1.196Zm10.749.009-.266.61h.415l-.766 1.804c-.312.682.141 1.31 1.149 1.318 1.038.009 1.39-.636 1.5-.904l1.203-2.828h-.664l-1.203 2.798c-.211.413-1.149.376-.883-.153l1.133-2.645h-1.618Zm5.688.008-.27.603h.426l-1.313 3.098h1.212l.546-1.29h1.203c.571 0 .974-.562 1.164-1.051.196-.502.063-1.36-.718-1.36h-2.25Zm-2.031.001-.258.605h.351l-1.32 3.103h1.211l1.601-3.708h-1.585Zm-5.918.555c.279-.012.553.172.448.431l-.842 1.972-.191-.312-.467.259.115.175c-.406 0-.336-.335-.237-.525l.734-1.715a.487.487 0 0 1 .44-.285Zm9.308.047h.36c.304 0 .124.61.07.719-.055.108-.211.471-.446.471h-.5l.516-1.19Z\"},\"child\":[]}]})(props);\n};\nexport function SiLerna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.452 18.006c-.147 0-.257.073-.367.147-1.764 3.38-5.329 5.034-10.583 5.034q-1.213 0-2.646-.11c-.074-.11-.257-.368-.551-.735-.22-.294-.331-.551-.368-.809.074-2.094.147-5.254.147-9.443 0-4.19.037-7.35.147-9.444.22-.698.698-1.03 1.47-1.03.147 0 .33 0 .551.038.258.036.441.036.551.036.552 0 .993-.147 1.287-.477V.772c0-.11-.037-.258-.147-.331C10.84.257 9.333.184 7.46.184H5.586C4.263.184 2.94.147 1.616 0c-.183.367-.256.661-.256.882q0 .495.771.551c.515.037 1.066.074 1.58.11.588.147.956.478 1.066 1.066a36 36 0 0 0 .037 3.38c.073 1.654.147 2.72.147 3.271 0 .845-.037 1.727-.184 2.572.037.441.074 1.507.184 3.234q.11 2.205.11 3.528c0 .918-.037 1.837-.147 2.719-.184.551-.33.882-.367.955q-.33.551-.882.551-.276.11-1.323.11c-.588 0-.992.111-1.176.368.147.368.367.551.625.625 1.102.037 2.241.037 3.49.037 1.287 0 3.124 0 5.512-.037 2.426-.037 4.226-.037 5.439-.037 1.654 0 3.16.037 4.593.11.294.037.478-.147.551-.514.11-.441.184-.698.258-.772-.037-.588.147-1.396.588-2.351s.624-1.728.588-2.279c-.11 0-.221-.036-.368-.073\"},\"child\":[]}]})(props);\n};\nexport function SiLeroymerlin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.407 7.419c-.17-.164-.329-.323-.478-.468.707-.722 1.414-1.444 2.116-2.166.239.234.468.453.687.683.02.02.01.084-.01.119-.22.433-.438.866-.657 1.3-.02.04-.04.074-.07.139l.134-.055c.449-.204.902-.403 1.35-.612.074-.035.12-.035.184.03.2.199.403.393.583.567-.722.742-1.434 1.464-2.136 2.181-.18-.174-.349-.343-.513-.503.348-.353.707-.717 1.065-1.075l-.015-.03-.11.045-1.284.582c-.07.03-.12.04-.174-.025-.075-.09-.21-.164-.224-.258-.015-.095.074-.215.124-.32.18-.393.364-.786.528-1.194-.368.358-.737.712-1.1 1.06zm11.71 10.357c.01-.045.016-.06.016-.074.194-.683.388-1.365.577-2.047.01-.04.02-.104-.005-.13-.234-.238-.473-.467-.722-.706l-2.116 2.16c.15.145.319.31.493.484.463-.454.941-.917 1.4-1.36 0-.015 0 0-.006.015-.159.667-.313 1.335-.483 1.997-.044.18-.035.304.115.428.17.14.319.309.488.478L24 16.851c-.144-.14-.309-.3-.503-.494-.443.458-.901.926-1.38 1.42zm-7.956-6.582c.124-.13.269-.274.433-.443-.299-.294-.612-.593-.906-.877.164-.164.314-.318.478-.488.234.234.478.478.717.712.14-.144.284-.289.458-.463-.239-.234-.493-.473-.717-.692l.334-.358c.313.308.627.612.936.916.134-.135.274-.28.413-.424-.498-.487-1.006-.98-1.519-1.483l-2.11 2.156c.487.468.99.96 1.483 1.444zM3.187 15.102c-.155-.139-.29-.264-.409-.373.294-.314.588-.622.887-.941-.13-.12-.27-.254-.414-.389-.488.478-.985.966-1.473 1.44l2.15 2.15c.489-.477.987-.96 1.49-1.453-.15-.14-.29-.27-.434-.409-.304.294-.617.603-.916.897l-.463-.434c.249-.264.488-.522.737-.786-.14-.13-.284-.264-.468-.439zm5.258-6.647c-.07-.025-.115-.02-.165.035-.149.154-.308.304-.463.453-.02.02-.034.045-.06.075.38.124.743.239 1.111.358.264.085.553.13.787.27.229.139.408.373.602.572.1.104.194.214.294.328.2-.214.373-.398.553-.587-.24-.244-.498-.503-.747-.767a.39.39 0 0 1-.09-.16c-.09-.363-.174-.731-.264-1.095-.07-.294-.144-.592-.219-.906-.214.21-.413.403-.607.598-.02.02-.02.074-.01.11.04.148.084.293.124.442.06.214.12.428.185.667-.364-.149-.698-.268-1.031-.393zm11.193 3.998-.558-.542c-.697.712-1.399 1.434-2.116 2.166.478.468.976.95 1.47 1.429.154-.16.323-.329.507-.518-.294-.289-.602-.588-.911-.886.548-.568 1.085-1.116 1.608-1.649zm-17.532 6.33c.498-.484.986-.962 1.479-1.445-.174-.16-.344-.319-.518-.478-.289.279-.592.578-.906.881-.548-.562-1.09-1.115-1.633-1.673-.18.19-.354.369-.528.558.692.707 1.394 1.43 2.106 2.156zm18.842-4.995c-.697.712-1.4 1.434-2.102 2.15.16.16.339.34.533.529.697-.712 1.404-1.434 2.106-2.156-.159-.16-.343-.334-.537-.523zm-2.973-1.759c-.294.23-.612.299-.976.16-.154.478-.309.946-.463 1.424-.19-.185-.368-.354-.543-.538-.025-.03-.015-.105-.005-.15.125-.572.25-1.145.379-1.722.005-.02.005-.04-.01-.075-.374.388-.747.777-1.116 1.155l-.552-.538 2.086-2.16c.468.452.921.87 1.344 1.319.284.289.195.856-.144 1.125zm-.543-.97c-.154-.17-.333-.32-.498-.474-.154.16-.318.324-.493.503.1.105.205.22.31.329.02.025.039.05.064.064.045.035.09.07.14.09.159.07.338.02.442-.114.115-.14.14-.29.035-.399zm-8.086.084c0 .812-.762 1.543-1.608 1.543-.807 0-1.549-.746-1.549-1.558 0-.901.657-1.569 1.554-1.569a1.582 1.582 0 0 1 1.603 1.584zm-.747 0a1.603 1.603 0 0 0-.752-.837.581.581 0 0 0-.642.05c-.21.15-.329.354-.304.623.04.428.657.99 1.086.985.398-.005.757-.463.612-.821zm-1.045 2.276c-.17.18-.334.359-.503.533-.025.025-.095.015-.14.005-.538-.14-1.075-.284-1.613-.423a.218.218 0 0 0-.115-.005l1.096 1.125c-.18.194-.359.384-.523.558L3.59 13.091c.03-.035.05-.06.07-.08.338-.338.682-.672 1.02-1.006.225-.219.493-.333.812-.293.408.05.707.378.717.801.005.15-.02.304-.03.463.463.145.926.299 1.375.443zm-2.063-.826c-.134-.135-.304-.164-.443-.055-.154.12-.294.259-.443.393.189.175.363.339.552.513.08-.074.185-.169.284-.264.04-.04.08-.074.11-.12.104-.158.084-.323-.06-.467zm15.86 6.622H2.554c-.015-.015-.025-.03-.04-.045.04-.02.085-.03.115-.06 1.305-1.289 2.604-2.579 3.904-3.863l4.566-4.521c.264-.264.533-.518.796-.787.085-.085.13-.085.215 0 1.483 1.494 2.977 2.982 4.466 4.471 1.568 1.569 3.132 3.137 4.7 4.7a.78.78 0 0 0 .1.08c-.01.01-.015.02-.025.025z\"},\"child\":[]}]})(props);\n};\nexport function SiLeslibraires (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.79.002a10.579 10.579 0 0 0-7.735 3.575C.18 7.958.593 14.647 4.981 18.518a10.557 10.557 0 0 0 5.3 2.51L12.002 24l1.717-2.971a10.56 10.56 0 0 0 6.227-3.437c3.876-4.38 3.461-11.07-.926-14.94a10.567 10.567 0 0 0-7.23-2.65zM11.277 7.5l.613.512-1.862 2.444c-.005.007-.048.06-.048.115 0 .056.045.112.045.113l1.866 2.461-.615.502-2.573-2.403a.883.883 0 0 1-.3-.667c0-.38.22-.596.304-.678zm3.265 0 .613.512-1.863 2.444c-.005.007-.048.06-.048.115 0 .056.045.112.046.113l1.866 2.461-.615.502-2.573-2.403a.883.883 0 0 1-.301-.667c0-.38.222-.596.305-.678z\"},\"child\":[]}]})(props);\n};\nexport function SiLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.598 7.15a7.961 7.961 0 0 0-1.054.068c-.281.041-.52.124-.717.249a1.19 1.19 0 0 0-.45.497c-.098.208-.14.47-.14.802V10.3c0 .428-.084.732-.253.884-.169.166-.492.25-.984.25v1.16c.478 0 .815.083.984.249.169.166.253.47.253.912v1.548c0 .594.183 1.009.548 1.23.38.207.984.318 1.813.318v-1.078c-.393 0-.646-.07-.773-.194-.126-.124-.183-.373-.183-.746v-1.465c0-.373-.098-.663-.28-.87-.184-.208-.479-.374-.886-.484.393-.125.688-.29.871-.512.183-.22.281-.511.281-.87V9.167c0-.36.057-.608.183-.733.122-.12.412-.195.787-.2v4.547c0 .416.03.764.09 1.044.059.28.164.52.314.724.15.203.356.35.616.443.26.093.589.14.984.14.098 0 .205-.007.32-.02a5.336 5.336 0 0 0 .65-.107l-.036-.98c-.27.038-.492.057-.667.057-.353 0-.59-.092-.713-.276-.122-.183-.183-.534-.183-1.051V7.149H3.598zm16.818-.001v1.092c.393 0 .647.069.773.193.127.125.183.373.183.733v1.465c0 .359.098.65.28.87.184.222.479.387.872.512-.407.11-.702.276-.885.483-.183.208-.281.498-.281.871v1.465c0 .373-.057.622-.183.746-.126.125-.38.194-.773.194v1.078c.83 0 1.434-.11 1.813-.318.365-.221.548-.636.548-1.23v-1.548c0-.442.085-.746.253-.912.169-.166.506-.249.984-.249v-1.16c-.492 0-.815-.084-.984-.25-.168-.151-.253-.456-.253-.884V8.766c0-.332-.042-.594-.14-.801a1.19 1.19 0 0 0-.45-.498 1.828 1.828 0 0 0-.717-.249 7.252 7.252 0 0 0-1.04-.069zm-6.479 1.975c-.675 0-1.209.14-1.588.421-.38.281-.576.689-.576 1.209 0 .422.112.773.351 1.026s.618.478 1.152.688c.043.015.14.057.296.113.45.183.758.31.913.436a.592.592 0 0 1 .239.478c0 .224-.084.393-.253.506-.169.112-.408.168-.717.168-.295 0-.632-.056-.984-.155a3.901 3.901 0 0 1-.885-.337l-.14 1.04c.505.296 1.18.436 2.037.436.717 0 1.265-.155 1.659-.464.393-.309.59-.759.59-1.335 0-.436-.126-.787-.38-1.054-.252-.267-.632-.492-1.166-.689-.382-.15-.84-.277-1.209-.506a.465.465 0 0 1-.224-.421c0-.183.084-.324.239-.422.154-.098.365-.14.646-.14.506 0 1.026.126 1.574.379l.365-.956c-.562-.28-1.208-.421-1.939-.421zm4.512 0c-.675 0-1.21.14-1.589.421-.38.281-.576.689-.576 1.209 0 .422.112.773.351 1.026.24.253.619.478 1.153.688.042.015.14.057.295.113.45.183.759.31.914.436a.592.592 0 0 1 .238.478c0 .224-.084.393-.253.506-.168.112-.407.168-.716.168a3.72 3.72 0 0 1-.984-.155 3.904 3.904 0 0 1-.886-.337l-.14 1.04c.506.296 1.18.436 2.038.436.702 0 1.265-.155 1.686-.464.394-.309.59-.759.59-1.335 0-.436-.126-.787-.379-1.054s-.632-.492-1.166-.689c-.392-.153-.842-.277-1.209-.506a.465.465 0 0 1-.225-.421c0-.183.085-.324.24-.422.154-.098.364-.14.646-.14.506 0 1.026.126 1.574.379l.337-.956c-.562-.28-1.209-.421-1.94-.421zm-9.46.014c-.842 0-1.503.267-1.995.815-.492.548-.73 1.279-.73 2.192 0 .956.252 1.687.772 2.22.52.535 1.237.802 2.165.802.8 0 1.49-.183 2.08-.52l-.197-.984a3.66 3.66 0 0 1-1.813.492c-.492 0-.886-.155-1.167-.45-.28-.295-.435-.716-.45-1.25h3.852v-.591c0-.829-.225-1.49-.661-1.982-.45-.491-1.054-.744-1.855-.744zm-.013.983c.38 0 .674.127.885.38.211.253.323.618.323 1.082H7.67c.042-.492.182-.857.407-1.096.253-.239.548-.366.9-.366Z\"},\"child\":[]}]})(props);\n};\nexport function SiLetsencrypt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9914 0a.8829.8829 0 00-.8718.817v3.0209A.8829.8829 0 0012 4.7207a.8829.8829 0 00.8803-.8803V.817a.8829.8829 0 00-.889-.817zm7.7048 3.1089a.8804.8804 0 00-.5214.1742l-2.374 1.9482a.8804.8804 0 00.5592 1.5622.8794.8794 0 00.5592-.2001l2.3714-1.9506a.8804.8804 0 00-.5944-1.534zm-15.3763.0133a.8829.8829 0 00-.611 1.5206l2.37 1.9506a.876.876 0 00.5606.2001v-.002a.8804.8804 0 00.5597-1.5602L4.8277 3.2831a.8829.8829 0 00-.5078-.161zm7.6598 3.2275a5.0456 5.0456 0 00-5.0262 5.0455v1.4876H5.787a.9672.9672 0 00-.9647.9643v9.1887a.9672.9672 0 00.9647.9643H18.213a.9672.9672 0 00.9643-.9643v-9.1907a.9672.9672 0 00-.9643-.9623h-1.1684v-1.4876a5.0456 5.0456 0 00-5.0649-5.0455zm.0127 2.8933a2.1522 2.1522 0 012.1593 2.1522v1.4876H9.8473v-1.4876a2.1522 2.1522 0 012.145-2.1522zm7.3812.5033a.8829.8829 0 10.0705 1.7632h3.0267a.8829.8829 0 000-1.7609H19.444a.8829.8829 0 00-.0705-.0023zm-17.8444.0023a.8829.8829 0 000 1.7609h2.9983a.8829.8829 0 000-1.7609zm10.4596 6.7746a1.2792 1.2792 0 01.641 2.3926v1.2453a.6298.6298 0 01-1.2595 0v-1.2453a1.2792 1.2792 0 01.6185-2.3926z\"},\"child\":[]}]})(props);\n};\nexport function SiLetterboxd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.224 14.352a4.447 4.447 0 0 1-3.775 2.092C1.992 16.444 0 14.454 0 12s1.992-4.444 4.45-4.444c1.592 0 2.988.836 3.774 2.092-.427.682-.673 1.488-.673 2.352s.246 1.67.673 2.352zM15.101 12c0-.864.247-1.67.674-2.352-.786-1.256-2.183-2.092-3.775-2.092s-2.989.836-3.775 2.092c.427.682.674 1.488.674 2.352s-.247 1.67-.674 2.352c.786 1.256 2.183 2.092 3.775 2.092s2.989-.836 3.775-2.092A4.42 4.42 0 0 1 15.1 12zm4.45-4.444a4.447 4.447 0 0 0-3.775 2.092c.427.682.673 1.488.673 2.352s-.246 1.67-.673 2.352a4.447 4.447 0 0 0 3.775 2.092C22.008 16.444 24 14.454 24 12s-1.992-4.444-4.45-4.444z\"},\"child\":[]}]})(props);\n};\nexport function SiLevelsdotfyi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.494 18.913h3.52v-3.52c0-.43.35-.78.781-.78h3.52v-3.52c0-.432.35-.783.781-.783h3.52V6.791c0-.432.35-.782.782-.782h3.519V2.49c0-.432.35-.782.782-.782h3.52c.43 0 .781.35.781.782v20.724c0 .432-.35.782-.782.782H2.494a.782.782 0 0 1-.782-.782v-3.52c0-.43.35-.78.782-.78ZM.172 15.928a.587.587 0 0 1 0-.83L15.102.168a.587.587 0 0 1 .83.83l-14.93 14.93c-.23.23-.6.23-.83 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiLg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.522 14.078h3.27v1.33h-4.847v-6.83h1.577v5.5zm6.74-1.274h1.284v1.195c-.236.09-.698.18-1.137.18-1.42 0-1.893-.721-1.893-2.186 0-1.398.45-2.221 1.869-2.221.791 0 1.24.248 1.612.722l.982-.903c-.6-.855-1.646-1.114-2.629-1.114-2.208 0-3.368 1.205-3.368 3.504 0 2.288 1.047 3.528 3.358 3.528 1.06 0 2.096-.27 2.66-.665V11.53h-2.739v1.274zM5.291 6.709a5.29 5.29 0 1 1 0 10.582 5.291 5.291 0 1 1 0-10.582m3.16 8.457a4.445 4.445 0 0 0 1.31-3.161v-.242l-.22.001H6.596v.494h2.662l-.001.015a3.985 3.985 0 0 1-3.965 3.708 3.95 3.95 0 0 1-2.811-1.165 3.952 3.952 0 0 1-1.164-2.811c0-1.061.414-2.059 1.164-2.81a3.951 3.951 0 0 1 2.81-1.164l.252.003v-.495l-.251-.003a4.475 4.475 0 0 0-4.47 4.469c0 1.194.465 2.316 1.309 3.161a4.444 4.444 0 0 0 3.16 1.31 4.444 4.444 0 0 0 3.162-1.31m-2.91-1.297V9.644H5.04v4.72h1.556v-.495H5.543zm-1.265-3.552a.676.676 0 1 0-.675.674.676.676 0 0 0 .675-.674\"},\"child\":[]}]})(props);\n};\nexport function SiLiberadotchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.26446 2.76095-1.22973 9.43224-1.6484 1.88226L9.67694 2.7735h-.003a9.86072 9.86072 0 0 0-.19917.04247l-.067.01256a12.0901 12.0901 0 0 0-.13158.0305l-.0646.01555a12.0503 12.0503 0 0 0-1.7393.55086l-.03709.01855 3.39788 11.26306-.1579.18062-1.59816-.70397-.10465.13457L3.4452 6.09902a10.69674 10.69674 0 0 0-.92767 1.0473 12.5862 12.5862 0 0 0-.55146.7596v.00598l6.48115 7.08106-1.02158 1.31285-7.20486-4.1497a11.70731 11.70731 0 0 0-.2207 2.30931l6.85377 2.57547L5.2778 19.0661l-4.31.02034a12.18198 12.18198 0 0 0 1.21297 2.15261h.003l1.69625-.37322h.45038l4.86266-6.22276 1.5832.70098 3.33807-3.81237c1.84965 3.14502 3.84345 6.17068 5.65635 9.33714h.45337l-.0083-.01376 1.61251.36246.01556-.01794a11.03054 11.03054 0 0 0 .77455-1.25604 11.3919 11.3919 0 0 0 .35228-.72551l-3.78784-.064-1.3332-2.19567 6.1468-2.24172v-.0311a6.93926 6.93926 0 0 0 .0036-.20217v-.31223l-.0036-.06398v-.0676l-.003-.06757-.003-.067-.003-.06757-.003-.067-.0059-.0646-.003-.06757-.0066-.067-.003-.06757-.006-.064-.006-.06757-.006-.06758-.0066-.067-.006-.06458a9.69536 9.69536 0 0 0-.11304-.7961v-.01555l-6.50625 3.71908-1.0467-1.72436 5.7365-6.49311a10.80699 10.80699 0 0 0-.8876-1.16997 11.89718 11.89718 0 0 0-.69202-.7285l-4.72569 7.45488-1.37147-2.25848 2.1526-7.75393-.05502-.02093a11.6277 11.6277 0 0 0-2.00607-.59453 12.20035 12.20035 0 0 0-.13158-.0275zm-.1591 9.33116-3.24596 3.72086-1.5832-.65853-4.48346 5.7078h.49584l4.10365-5.25144 1.57423.65195 3.08387-3.53664 4.8507 8.15167.47729-.009zm-.07357 1.30149-2.91221 3.34405-1.60474-.65254-3.74538 4.77413 12.63513.0066z\"},\"child\":[]}]})(props);\n};\nexport function SiLiberapay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.32 0A2.321 2.321 0 0 0 0 2.32v19.36A2.321 2.321 0 0 0 2.32 24h19.36A2.32 2.32 0 0 0 24 21.68V2.32A2.32 2.32 0 0 0 21.68 0zm9.208 3.98l-2.27 9.405a2.953 2.953 0 0 0-.073.539.853.853 0 0 0 .09.432.7.7 0 0 0 .334.302c.157.077.378.126.661.147l-.49 2.008c-.772 0-1.38-.1-1.82-.3-.441-.203-.757-.477-.947-.826a2.391 2.391 0 0 1-.278-1.2c.005-.452.068-.933.188-1.445l2.074-8.67zm3.9 3.888c.61 0 1.135.092 1.576.277.44.185.802.438 1.085.76.283.32.493.696.629 1.126.136.43.204.89.204 1.379v.001c0 .794-.13 1.52-.392 2.179a5.16 5.16 0 0 1-1.086 1.706 4.84 4.84 0 0 1-1.665 1.118c-.648.267-1.353.4-2.114.4-.37 0-.74-.033-1.11-.098l-.735 2.956H9.403l2.71-11.298c.435-.13.934-.248 1.494-.351a10.045 10.045 0 0 1 1.821-.155zm-.31 2.041a4.67 4.67 0 0 0-.98.098l-1.143 4.752c.185.044.413.065.685.065.425 0 .812-.079 1.16-.237a2.556 2.556 0 0 0 .89-.661c.244-.283.435-.623.571-1.02a4.03 4.03 0 0 0 .204-1.315c0-.468-.104-.865-.31-1.192-.207-.326-.566-.49-1.077-.49z\"},\"child\":[]}]})(props);\n};\nexport function SiLibrariesdotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.152 23.998c-1.164-.054-1.75.044-2.021-.48-.265-.306-.138-3.465-.185-4.694 1.702-1.365 3.42-2.688 5.145-4.025 0 2.892.147 8.186-.17 8.72-.27.56-1.33.474-2.77.479zm6.468-.62c-.304-.006-.171-6.048-.204-11.204 1.704-1.357 3.42-2.678 5.143-4.01-.028 5.924.123 14.775-.108 15.098-.334.71-1.064.543-2.467.585-1.094-.06-2.058.16-2.364-.469zm8.41.018c-.174-.33-.158-7.898-.104-15.204a500.566 500.566 0 015.12 3.977c-.027 1.216.103 11.184-.165 11.18-.28.47-.641.488-2.44.488-.933-.085-1.852.18-2.411-.441zM.979 15.564C.957 10.754.927 6.047.999 1.1c.028-.633.251-1.003.94-1.041.538-.07 3.012-.04 3.463.05a.867.867 0 01.624.65c.097 2.718.075 6.154.097 10.776-1.717 1.341-3.431 2.678-5.144 4.024zm8.458-6.656c-.048-2.518 0-7.016.03-7.696.077-1.552 1.087-1.115 2.41-1.2 1.977-.018 2.279.097 2.5.455.246.368.204 2.598.204 4.422-1.693 1.323-3.594 2.83-5.144 4.017zm13.583-.013c-1.706-1.338-3.353-2.633-5.064-3.964.015-1.322-.064-2.744.01-3.995.107-.54.257-.836 1.16-.866 1.118-.122 2.726-.09 3.419.142.524.124.52 1.379.485 5.226z\"},\"child\":[]}]})(props);\n};\nexport function SiLibrarything (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.16 0h7.68c2.66 0 3.508 0 4.708.4 1.4.5 2.552 1.65 3.052 3.05.4 1.2.4 2.05.4 4.71v7.68c0 2.66 0 3.51-.4 4.71a5.04 5.04 0 0 1-3.05 3.05c-1.2.4-2.05.4-4.71.4H8.16c-2.66 0-3.51 0-4.71-.4A5.043 5.043 0 0 1 .4 20.55C0 19.35 0 18.5 0 15.84V8.16C0 5.5 0 4.65.4 3.45A5.04 5.04 0 0 1 3.45.4C4.65 0 5.5 0 8.16 0zm2.834 6.682v-.297l-.023-.321c0-.092-.03-.23-.091-.412a1.552 1.552 0 0 1-.092-.481c0-.092.038-.168.115-.23a5.55 5.55 0 0 0 .24-.194c.1-.084.24-.126.424-.126.107 0 .282.015.527.046.214 0 .374-.046.481-.138.046-.03.13-.091.252-.183s.183-.199.183-.32c0-.2-.11-.36-.332-.482-.221-.122-.5-.183-.836-.183l-.94.069c-.213 0-.618.05-1.214.149-.595.099-1.061.149-1.397.149a5.04 5.04 0 0 1-.7-.08 5.174 5.174 0 0 0-.79-.08c-.168.06-.34.118-.515.171-.176.053-.263.134-.263.24l.045.207c.092.198.23.35.413.458l.183.091c.092.03.168.046.23.046.075 0 .19-.007.343-.023.122 0 .237.03.343.092l.252.229c.123.137.21.271.264.4.053.13.08.249.08.356 0 .076-.015.206-.046.39a2.86 2.86 0 0 0-.046.434c0 .138.035.336.104.596.068.26.103.473.103.641-.016.26-.023.52-.023.78v.778c0 .198.015.458.046.779.03.32.045.572.045.755l-.045.962-.023 1.535-.07 1.26c0 .168.031.39.093.664.06.275.091.496.091.664 0 .168-.023.382-.069.642-.045.26-.068.465-.068.618 0 .076.007.176.023.298a.808.808 0 0 1 0 .275.56.56 0 0 1-.126.263 37.9 37.9 0 0 1-.218.264c-.137.168-.29.297-.458.389-.168.092-.405.145-.71.16-.306.016-.527.08-.665.195-.137.115-.206.202-.206.263 0 .397.367.596 1.1.596l.16-.023a35.207 35.207 0 0 1 1.317-.137c.222-.016.478-.023.768-.023h.275c.275.015.55.023.825.023h2.2c.213-.016.415-.035.606-.058a4.37 4.37 0 0 1 .516-.034c.198 0 .473.05.825.149.35.1.649.133.893.103.015 0 .103-.023.264-.069a1.69 1.69 0 0 1 .47-.068c.014 0 .118.011.308.034.191.023.348.034.47.034.061 0 .168-.015.32-.046.383-.076.65-.221.803-.435a.767.767 0 0 0 .16-.435 3.704 3.704 0 0 1-.069-.435 2.77 2.77 0 0 1 0-.504c.077-.153.16-.305.252-.458.077-.199.13-.47.16-.813.031-.344.058-.573.081-.687a2.79 2.79 0 0 1 .195-.527c.107-.237.16-.44.16-.607a.974.974 0 0 0-.114-.481c-.077-.138-.176-.206-.298-.206-.077 0-.199.068-.367.206-.076.06-.141.175-.195.343a2.778 2.778 0 0 1-.126.344c-.183.275-.366.542-.55.802a3.768 3.768 0 0 0-.229.435c-.152.32-.274.542-.366.664-.03.046-.153.16-.367.344a1.124 1.124 0 0 0-.217.24c-.07.1-.165.256-.287.47l-.39.206-.274.069a1.894 1.894 0 0 0-.367.114c-.152.061-.267.1-.343.115a1.571 1.571 0 0 1-.298.022c-.138 0-.344-.022-.619-.068a4.242 4.242 0 0 0-.664-.069l-.481.023c-.55 0-.955-.298-1.215-.893-.168-.382-.297-.978-.39-1.787a2.327 2.327 0 0 1-.022-.366c0-.123.008-.329.023-.619 0-.076.019-.237.057-.48a4.07 4.07 0 0 0 .057-.596v-1.604c0-.137.008-.313.023-.527.016-.213.023-.366.023-.458a2.14 2.14 0 0 0-.023-.343c0-.092-.03-.222-.091-.39a1.244 1.244 0 0 1-.092-.389c0-.076.015-.183.046-.32.03-.138.046-.245.046-.321 0-.168-.008-.397-.023-.688a13.83 13.83 0 0 1-.023-.687c0-.198.03-.442.092-.733a3.6 3.6 0 0 0 .091-.71z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreoffice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.365 0a.597.597 0 00-.555.352.582.582 0 00.128.635l4.985 4.996a.605.605 0 00.635.133.59.59 0 00.363-.53V.577A.605.605 0 0021.335 0zM2.661 0a.59.59 0 00-.582.59v22.82a.59.59 0 00.582.59h18.67a.59.59 0 00.59-.59V8.716a.59.59 0 00-.17-.42L13.674.182a.59.59 0 00-.42-.181zm.59 1.184h9.754l7.733 7.77v13.863H3.251z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreofficebase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 13h-1v-1h1v1zm0 1h-1v1h1v-1zm0 2h-1v1h1v-1zm-.6-16H15l7 7V0h-5.6zM13 0l9 9v12c0 1.662-1.338 3-3 3H5c-1.662 0-3-1.338-3-3V3c0-1.662 1.338-3 3-3h8zM6 11c0 .552 1.343 1 3 1s3-.448 3-1v-1c0-.552-1.343-1-3-1s-3 .448-3 1v1zm0 2c0 .552 1.343 1 3 1s3-.448 3-1v-1c0 .552-1.343 1-3 1s-3-.448-3-1v1zm0 2c0 .552 1.343 1 3 1s3-.448 3-1v-1c0 .552-1.343 1-3 1s-3-.448-3-1v1zm0 2c0 .552 1.343 1 3 1s3-.448 3-1v-1c0 .552-1.343 1-3 1s-3-.448-3-1v1zm12-6h-5v7h5v-7zm-3 1h-1v1h1v-1zm0 4h-1v1h1v-1zm0-2h-1v1h1v-1z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreofficecalc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 13H7v-1h2v1zm6-3h-2v1h2v-1zm-6 0H7v1h2v-1zm3 0h-2v1h2v-1zm3-10 7 7V0h-7zM9 14H7v1h2v-1zm5 3h1v-3h-1v3zm2 0h1v-1h-1v1zm-4 0h1v-2h-1v2zm1-17 9 9v12c0 1.662-1.338 3-3 3H5c-1.662 0-3-1.338-3-3V3c0-1.662 1.338-3 3-3h8zm5 13h-7v5h7v-5zm-2-4H6v7h4.5v-1H10v-1h.5v-1H10v-1h2v.5h1V12h2v.5h1V9z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreofficedraw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 0C3.338 0 2 1.338 2 3v18c0 1.662 1.338 3 3 3h14c1.662 0 3-1.338 3-3V9l-9-9H5zm1 12a3 3 0 0 1 3-3c1.6 0 2.897 1.257 2.984 2.837L11.5 11l-2.298 3.98c-.068.004-.133.02-.203.02a3 3 0 0 1-3-3zm3.191 5 2.31-4 2.31 4H9.19zM18 16h-3.613L13 13.597V11h5v5zm4-16v7l-7-7h7zm-5 15h-3v-3h3v3z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreofficeimpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 0v7l-7-7h7zm-9 0 9 9v12c0 1.662-1.338 3-3 3H5c-1.662 0-3-1.338-3-3V3c0-1.662 1.338-3 3-3h8zM7 17H6v1h1v-1zm0-2H6v1h1v-1zm0-2H6v1h1v-1zm3 4H8v1h2v-1zm0-2H8v1h2v-1zm0-2H8v1h2v-1zm6-1v-1H8v1h8zm2 1h-7v5h7v-5zm0-4H6v1h12V9zm-4 6.707 1 1 2.207-2.207-.707-.707-1.5 1.5-1-1-2.207 2.207.707.707 1.5-1.5z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreofficemath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 0v7l-7-7h7zm-9 0 9 9v12c0 1.662-1.338 3-3 3H5c-1.662 0-3-1.338-3-3V3c0-1.662 1.338-3 3-3h8zM8 17H6v1h2v-1zm5 0h-2v1h2v-1zm2.293-1.293a1 1 0 0 0 1.414-1.414l-.793-.793.793-.793a1 1 0 0 0-1.414-1.414l-.793.793-.793-.793a1 1 0 1 0-1.414 1.414l.793.793-.793.793a1 1 0 0 0 1.414 1.414l.793-.793.793.793zM18 17h-2v1h2v-1zm0-8H9.862L8 13.653 7.338 12H6v1h.662L8 16.347 10.539 10H18V9z\"},\"child\":[]}]})(props);\n};\nexport function SiLibreofficewriter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 0v7l-7-7h7zm0 9v12c0 1.662-1.338 3-3 3H5c-1.662 0-3-1.338-3-3V3c0-1.662 1.338-3 3-3h8l9 9zM6 10h5V9H6v1zm0 2h5v-1H6v1zm0 2h5v-1H6v1zm5 3H6v1h5v-1zm7-2H6v1h12v-1zm0-6h-6v5h6V9zm-1.5 2a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1zM14 11l-1 2h3l-2-2z\"},\"child\":[]}]})(props);\n};\nexport function SiLibretranslate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.7835 0q-1.7162 4.666-8.892 7.991l1.3623 1.523q5.3951-2.6385 7.8192-5.996 2.4777 3.1857 8.1948 6.1247L23.544 8.066q-6.103-2.9283-8.4198-6.2425.118-.1824.4827-1.255ZM9.5467 7.991q-.3218 3.5075-1.4481 5.8028-1.1155 2.2953-3.6683 4.5692l1.4265 1.2763q2.8426-2.6064 4.1941-5.556 1.1799 1.0297 2.4133 2.6494l1.4588-1.3086q-1.1477-1.4587-3.2286-3.25.547-2.0271.7614-3.9793zm7.1007 0q-.1716 4.151-1.4158 6.3927-1.2444 2.2417-3.7328 3.8934l1.4051 1.298q3.5718-2.6065 4.7088-5.8242 1.7268 3.4644 4.8696 5.867l1.4051-1.3408q-1.7806-1.3192-3.0141-2.7887-1.2227-1.4801-1.8662-3.0461-.6328-1.5767-.6328-2.1452l.075-.751q.0859-.8366.0859-1.3942zM.1126 8.8018V24h9.4443v-1.7095H2.0515V8.8018Z\"},\"child\":[]}]})(props);\n};\nexport function SiLibretube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.12 0c-.2688.004-.5138.2196-.5138.5206v4.9981c0 .1875.1009.3604.2641.4525l9.8769 5.5768c.3522.199.3522.7062 0 .9051L1.8703 18.03a.52.52 0 0 0-.264.4526v4.997c0 .4016.436.6514.7824.4484L22.207 12.3121a.3777.3777 0 0 0-.0003-.652L2.3883.072A.516.516 0 0 0 2.1199 0zm-.005 7.9458c-.2671.006-.5088.2216-.5088.5203v7.056c0 .3982.4296.6484.776.452l6.222-3.528c.3512-.199.3512-.705 0-.904l-6.222-3.528a.515.515 0 0 0-.2674-.0683z\"},\"child\":[]}]})(props);\n};\nexport function SiLibrewolf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3726 0 0 5.3726 0 12s5.3726 12 12 12 12-5.3726 12-12A12 12 0 0 0 12 0m.0306 2.4174c2.539 0 4.7927.9097 6.619 2.6718.8799.849 1.47 1.654 1.9752 2.6953.6834 1.4085.96 2.6337.96 4.2503 0 2.1282-.6144 3.9841-1.891 5.7107-.3792.513-1.1202 1.2925-1.612 1.6955-1.3487 1.1057-3.068 1.8537-4.7739 2.0774-.5894.0772-1.982.0868-2.5232.0174v.0001c-1.681-.2156-3.2887-.8859-4.6919-1.9555-.4576-.3489-1.3163-1.213-1.6911-1.702-1.0497-1.3694-1.7025-2.9237-1.9179-4.5663-.0922-.7032-.0916-1.996.0011-2.6387.4635-3.213 2.4855-5.9688 5.389-7.3449 1.3505-.64 2.5868-.9111 4.1567-.9111m-.0315 1.4514c-1.4755-.0014-2.7693.3367-4.0497 1.0586-1.1657.6572-2.3708 1.8637-3.0308 3.0342-.486.862-.8417 1.8852-.9806 2.82-.091.613-.0929 1.8301-.0036 2.417.1786 1.1746.6241 2.3354 1.27 3.3091.3527.5317.3416.5259.6528.3479.5566-.3184.7018-.4726 1.005-1.0666.3546-.6946.7336-1.3016 1.0762-1.7232.3953-.4867.4496-.5732.648-1.0327.0997-.2312.2788-.5708.3978-.7546l.2165-.3341-.28-.2753c-.372-.3655-.6814-.7802-.7395-.991-.0595-.2152.0108-.3353.2902-.4967.2825-.1632.4845-.21 1.2396-.2877.3677-.0377.7668-.1069.8925-.1547.125-.0475.4988-.251.8305-.452.9577-.5807 1.0388-.6107 1.613-.5983.485.0106.4859.0103.7734-.1635.6026-.3642 1.4681-1.0215 2.607-1.9797.2183-.1838.4286-.328.4674-.3206.161.031.457.757.5019 1.2315.0272.2878-.0285.5725-.1992 1.018-.0466.1215-.068.2375-.0477.2577.0489.0486.2165-.1607.2165-.2703 0-.1397.0924-.1557.2182-.0377.0915.0859.1705.1105.3545.1105.201 0 .2507.0186.329.1232.1332.1775.1644.6616.0625.9682-.099.2983-.3986.6423-.6704.77-.2431.1143-.7354.5951-.9658.9432-.0882.1332-.2536.411-.3675.6172-.114.2063-.305.518-.4246.6925-.2354.3436-.437.823-.6316 1.5017-.1143.3987-.1238.5025-.1285 1.3918-.0057 1.0742-.0613 1.3378-.3518 1.6686-.3301.376-.6596 1.2018-.6873 1.7225-.0175.3286-.0682.649-.1401.8862-.0317.1045.0275.1032.38-.0079 1.027-.3237 1.8638-.7588 2.6718-1.3889.4296-.335 1.1722-1.0847 1.4835-1.4978.8445-1.1202 1.419-2.5235 1.5881-3.8785.0814-.6526.0342-2.0332-.0901-2.6325-.3293-1.5875-1.039-2.9284-2.1566-4.0759-.6968-.7154-1.3311-1.187-2.1473-1.5961-1.2384-.621-2.2994-.8718-3.6932-.8733m1.516 5.314-.6964.0976-.433.5544.6966-.0978z\"},\"child\":[]}]})(props);\n};\nexport function SiLibuv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.534 19.21c-.573.117-1.183.506-1.656.594-1.044.193-1.66.007-1.108-.22.8-.332 3.44-.415 3.716-2.374.276-1.96.083-2.843-.055-3.34a7.179 7.179 0 0 0-.351-.891 3.633 3.633 0 0 0-.134-.523 1.66 1.66 0 0 1-.074-.228s-.034-.241.076-.476c.098-.208.433-.659.456-1.095v-.08a.762.762 0 0 0-.008-.087l-.002-.026a.802.802 0 0 0-.374-.542c-.123-.082-.29-.107-.382-.224.073-.23.306-.313.404-.501.06-.167.011-.343-.081-.503-.178-.2-.528-.372-.842-.49-.393-.147-.792-.264-1.062-.475-.285-.152-.477-.445-.302-.833a.703.703 0 0 0 .064-.3v-.028c-.001-.02-.004-.037-.006-.055a.538.538 0 0 0-.008-.042l-.006-.024-.008-.027c-.072-.243-.453-.31-.59-.323-.307-.027-.506-.111-.67-.163.132.069.264.16.433.228.106.044.26.07.389.112 0 0 .239.048.304.214a.59.59 0 0 1 0 .403l-.01.027c-.024.073-.05.143-.056.215-.022.286.153.434.246.673.167.159.406.324.736.473.298.134.653.215.874.348.127.077.36.263.354.399-.004.104-.195.245-.272.348-.056.074-.083.171-.132.24-.043.069-.099.112-.162.112-.083 0-.271.032-.147.041.124.01.446.161.446.161.435.18.727.514.567.99-.134.399-.442.732-.463 1.17-.023.467.19.85.218 1.22.046.623-.043 1.051-.164 1.52-.056.218-.086.434-.136.647-.213.906-.76 1.299-1.5 1.718-.322.181-.666.516-1.01.622-.056.017-.141-.009-.192 0-.317.057-.602.215-.927.274-.306.057-.628.03-.991.121-.184.066-.42.165-.559.223-.213.097-.422.199-.631.3l-.693.396s-.386.224.042.059c.344-.134 1.527-.722 1.031-.377-.342.172-.527.416-.83.624 0 0-1.016.504-1.169.645-.167.155-.372.069-.507.22a1.19 1.19 0 0 1-.49.332c-.138.046-.294.35-.506.506-.211.156-.671.11-1.076.285a2.373 2.373 0 0 1-.824.177c-.04.004-.08.006-.116.007H9.56a1.553 1.553 0 0 1-.556-.096c-.169-.062-.231-.03-.193-.01.038.02.148.124.148.124-.472 0-.601-.315-.819-.548.1-.014.381.055.238-.028-.283-.135-.827-.145-.838-.47-.008-.255.11-.2.11-.2.197.346.809.38 1.254.375.83-.01 1.393-.466 1.937-.723a9.87 9.87 0 0 0 .382-.246v.004c.171-.112.345-.22.492-.355.256-.236.429-.543.655-.804a.697.697 0 0 1 .146-.153c.064-.06.132-.115.208-.164l.003.006.03-.02-.006-.01c.548-.311 1.058-.655 1.489-1.072l.003-.005c.062-.056.386-.418.542-.593.185-.246.318-.557.395-.87.028-.114.01-.251.054-.374.069-.19.242-.36.355-.548.117-.195.195-.408.273-.622.341-.938.736-1.685 1.473-2.191.355-.244.787-.402 1.037-.772a1.665 1.665 0 0 1-.703.408c-.811.267-1.338.95-1.603 1.385a5.167 5.167 0 0 0-.477 1.22 4.06 4.06 0 0 0-.355-1.395c-.16-.37-.303-.761-.6-.996 0 0-.011.001-.058-.027-.046-.027.767-.048.767-.048.143.006.287.026.434.045a.373.373 0 0 1 .103.006c.447.079.91-.088 1.2-.298.15-.11.412-.197.628-.256.004-.01.025-.02.08-.03 0 0 .33-.104.682-.2a3.27 3.27 0 0 0 .533-.175.779.779 0 0 0 .187-.162c.104-.127.106-.28.192-.498.085-.217.216-.386.218-.573.006-.611-.573-1.098-1.2-.772.617-.16 1.056.142.982.723-.092.716-1.172 1.248-1.829 1.518-.26.107-.565.243-.873.274-.443.045-.846-.05-1.227-.025-.49.032-.815.291-1.228.324-.355.028-.307-.212-.615-.239-.063-.036-.257 0-.45-.01-.532.14-.874-.103-1.309-.299-.314-.141-.648-.27-.982-.299-.838-.07-1.348.046-2.033-.027-.193-.02-.594-.045-.784-.116-.593-.222-1.047-.141-1.69-.15-.469-.007-.903-.032-1.196.02-.08.014-.16.034-.245.05-.628.109-1.583.166-1.555.721.046-.032.033-.118.109-.124-.003.102-.006.204.027.274-.365-.01-.58-.262-.573-.548.012-.487.796-.69 1.337-.822.542-.13 1.105-.284 1.5-.348-.947.139-1.95.228-2.673.572a.778.778 0 0 1-.021-.108c-.058-.263-.183-.666-.27-1.058-.102-.451.055-1.242.055-1.242l.004.004c.065-.402.148-.58.228-.821.172-.513.726-.674 1.114-.723a1.742 1.742 0 0 0-.668.901c-.017.137-.03.264-.039.377.294-.914 1.113-1.256 1.113-1.256l.262-.283-.003.013c.452-.438 1.05-.777 1.809-.798.383-.01.845.09.844.466 0 .212-.167.392-.393.491a.311.311 0 0 0 .183-.019l.235-.263c.078-.192.07-.435-.06-.581.346-.296.884.036.845.428.101-.085.163-.247.094-.375.465-.273.726.39 1.194.235-.044-.133-.27-.106-.338-.217.612-.087 1.15.128 1.764.08.038.033.08.066.124.1-1.149.126-.215.126-.215.126.147-.014.5-.038.638-.014.225.04.37-.014.569-.092.004.009.024.008.036-.014.103-.041.222-.086.373-.127a.98.98 0 0 0 .174-.042l.024-.005.004-.004c.079-.027.153-.06.216-.09.58-.279 1.06-.934 1.554-1.278.819-.569 1.595.134 2.165.59l-.004.006c.143.098.332.218.537.344.537.233 1.245.437 1.623.811.302.299.405.684.535 1.083.122.373.357.702.49 1.12a.163.163 0 0 0 .05-.092c-.004-.036-.01-.073 0-.097l.008.007a1.047 1.047 0 0 0-.043-.249c-.112-.229-.309-.49-.285-.693 0 0 .697.36 1.488.718.273.123.522.326.74.559l.063-.002a.136.136 0 0 0-.004.065c.384.43.657.944.752 1.24a4.416 4.416 0 0 0 .16.412h.001c.014.025.023.05.032.074.115.247.227.448.258.503.1.124.181.285.268.42a11.375 11.375 0 0 1-2.465 8.17c-.09.011-.214.032-.378.066zm-.718 1.12c-.549.18-1.11.516-1.467.55-1.076.102-1.27-.376-.41-.455.325-.03.805-.067 1.188-.248.564-.269 1.142-.529 1.528-.722-.264.306-.544.598-.839.875zm-11.735.052c-.092.03-.092-.015-.092-.015s-.165-.236-.19-.456c-.026-.218.03-.412.084-.44.055-.03.067.097.112.256.045.16.268.49.268.49.032.067-.09.134-.182.165zm.575.1c-.105.036-.105-.016-.105-.016s-.189-.269-.217-.519c-.03-.247.036-.468.099-.5.063-.035.076.11.127.29.051.183.307.558.307.558.036.077-.105.153-.211.188zm.194-.697c-.036-.313.048-.593.129-.636.08-.043.098.14.162.37.065.231.39.706.39.706.046.098-.134.194-.27.238-.135.044-.134-.02-.134-.02s-.24-.34-.277-.658zm4.669-3.587c.056-.05.116.056.226.176.11.122.5.313.5.313.063.046-.062.162-.164.232-.1.07-.117.03-.117.03s-.287-.136-.396-.321c-.108-.183-.106-.379-.05-.43zm-.924.492c.069-.065.143.073.281.229.14.16.631.414.631.414.08.06-.076.21-.203.3-.127.091-.148.038-.148.038s-.359-.182-.495-.423c-.136-.237-.136-.493-.066-.558zm-.825 1.11c-.122-.256-.111-.52-.04-.584.07-.064.138.083.266.255.131.175.602.467.602.467.075.067-.084.215-.212.301-.128.087-.147.03-.147.03s-.344-.21-.469-.47zm-.754.63c-.102-.269-.075-.54-.003-.6.073-.06.128.097.24.28.115.189.55.522.55.522.069.075-.094.214-.224.292-.129.078-.142.018-.142.018s-.318-.24-.421-.512zm-1.017 1.654c-.136.041-.134-.021-.134-.021s-.23-.331-.257-.637c-.026-.304.066-.574.148-.614.082-.041.094.136.15.358.059.225.37.686.37.686.043.094-.14.186-.277.228zm.275-1.059c-.066-.304-.002-.59.08-.642.082-.054.116.124.205.34.089.218.48.646.48.646.058.09-.125.21-.267.273-.14.062-.145-.004-.145-.004s-.286-.305-.353-.613zm3.688-7.155s.08.013.043.126c-.035.112-.042.46.066.61.11.15-.075.093-.219-.059-.144-.15-.246-.43-.215-.619 0 0-.008-.08.325-.058zm-.51.921c.176.195-.092.143-.316-.049-.223-.191-.406-.565-.39-.834 0 0-.022-.11.447-.13 0 0 .114.007.079.17-.033.163.006.65.18.843zm-1.19 1.016c1.017.067 1.747-.286 2.264-.647.136-.095.316-.326.546-.174-.098.203-.358.337-.573.448-.377.195-.712.365-1.146.473.732-.112 1.253-.417 1.8-.697.068.14.143.423.192.662h.008s.05.133.034.264c.003.063-.01.116-.055.146a.23.23 0 0 1-.055.052c-.2.13-.794.42-1.27.455-.016 0-.03.003-.046.004l-.035.01-.001-.006c-.432.05-.711.228-.16.137.553-.091 1.736-.292 1.305-.13h.002c-.538.21-1.245.415-1.938.348-.448-.043-.91-.263-1.31-.473-.397-.21-.775-.485-1.2-.573-.323-.067-.59.027-.873.075-.188.032-.45.108-.563-.01-.048-.056-.01-.115-.01-.115.108-.266.421-.423.682-.498.819-.235 1.611.198 2.401.25zm.23-.891c.171.248-.126.148-.353-.105-.227-.253-.38-.71-.323-1.017 0 0-.01-.13.529-.08 0 0 .129.025.066.206-.064.182-.09.747.08.996zm-1.084-.119c.169.283-.146.159-.376-.132-.23-.29-.367-.802-.284-1.136 0 0-.002-.144.58-.064 0 0 .137.035.057.232-.08.196-.145.818.023 1.1zm-1.12-.156c.172.286-.147.164-.38-.13-.234-.292-.376-.812-.293-1.155 0 0-.003-.145.585-.072 0 0 .14.034.059.236-.08.2-.143.836.029 1.121zm-1.027.323c.212.37-.159.213-.441-.166-.283-.379-.472-1.053-.397-1.5 0 0-.011-.19.662-.099 0 0 .161.042.081.306-.08.263-.116 1.089.095 1.46zm-1.09-.275c.211.323-.16.2-.441-.128-.282-.328-.467-.927-.389-1.332 0 0-.01-.171.665-.12 0 0 .162.032.08.272-.082.24-.125.985.085 1.308zm-1.154-.376c.149.277-.14.154-.345-.133-.205-.285-.318-.787-.232-1.115 0 0 .002-.14.54-.058 0 0 .127.035.046.226-.08.193-.158.802-.009 1.08zm-.88-.24c.14.221-.114.125-.303-.102-.189-.227-.308-.628-.248-.892 0 0-.005-.113.46-.053 0 0 .11.026.05.182-.06.154-.1.644.04.865zm-.925.16c.17.248-.126.149-.353-.105-.227-.254-.38-.71-.322-1.017 0 0-.01-.13.528-.08 0 0 .129.025.066.206-.064.182-.09.747.081.996zm-.746-.066c.175.195-.093.143-.316-.049-.224-.191-.407-.565-.39-.834 0 0-.023-.111.446-.13 0 0 .115.007.08.17-.034.163.005.65.18.843zm10.24 10.242c-.516.179-1.435.627-2.173 1.003-.177.008-.354.012-.533.012C5.69 23.423.577 18.31.577 12c0-4.888 3.07-9.057 7.387-10.688.022.02.045.04.07.058.048.039.129.059.17.109.057.067.033.203.058.287.075.259.235.497.501.691.04.029.114.043.148.08.074.085.052.227.108.324.06.102.16.226.284.321.067.052.169.08.232.143.052.05.066.14.103.216.1.204.362.44.488.653a.47.47 0 0 1 .041.088c.053.108.18.338.353.444 0 0 .018.319.336.682-.644-.035-1.265-.399-1.743-.037-.138-.15-.58-.269-.77-.058-.139-.242-.88-.398-1.025-.014-1.053-.472-2.325.202-2.734.878a2.86 2.86 0 0 0-.214.114 1.196 1.196 0 0 0-1.102.187c-.417.301-.853 1.65-.778 2.584.008.1.198.336.266.81.068.469.12.623.12.623-.093.162-.204.234-.219.423-.033.41.318.632.646.842.117.054.249.093.392.099.087.137.42.6.973.6l.04-.001c.211.177.431.225.28.006a.442.442 0 0 1-.034-.059.88.88 0 0 0 .334.13c.002 0 .054.013.097.013.015 0 .06 0 .076-.035s-.016-.072-.027-.084c-.044-.051-.094-.184-.131-.307.04.074.084.144.134.205.262.322.63.475.425.154a.957.957 0 0 1-.122-.392.95.95 0 0 0 .562.33c.235.223.528.315.352.077a.574.574 0 0 1-.091-.225c.142.17.382.389.676.389h.027c.202.136.371.158.22-.038a.692.692 0 0 1-.117-.33c.134.272.39.646.834.767.003 0 .08.022.143.022.049 0 .08-.013.094-.04.022-.038-.006-.083-.016-.098a1.094 1.094 0 0 1-.078-.16c.2.117.346.127.191-.063a.746.746 0 0 1-.14-.379c.108.29.329.695.764.96.003.002.081.04.168.04a.25.25 0 0 0 .112-.026.101.101 0 0 0 .053-.067c.022-.09-.063-.22-.071-.23a1.88 1.88 0 0 1-.134-.35l.003.003c.315.254.723.371.471.118-.153-.154-.212-.417-.217-.632.092.257.315.704.778.792.003 0 .075.014.128.014.029 0 .064-.003.077-.031.005-.012.007-.032-.014-.055a.817.817 0 0 1-.11-.251c.022.016.044.034.067.049.224.147.489.224.523.176.072.06.184.136.337.204.014.032.028.065.04.098 0 0 .07.198.098.305-.363-.094-.984-.276-1.446-.174-.365.08-1.317.606-1.086.976a.17.17 0 0 0 .057.056l.014.005a.962.962 0 0 0 .42.075l.061-.001a2.74 2.74 0 0 0 .442-.07c.254-.084.482-.034.482-.034l-.004.003c.181.02.372.084.569.185.212.107.5.285.573.373.132.16-.07.532-.146.761l-.013.042-.005.019a1.63 1.63 0 0 1-.039.1.42.42 0 0 1-.033-.047c-.072-.121-.11-.228-.148-.179-.038.05-.04.244.032.427a.496.496 0 0 0 .026.055c-.082.15-.182.307-.287.458a1.218 1.218 0 0 1-.204-.234c-.093-.16-.142-.3-.19-.235-.048.064-.05.322.042.565a.86.86 0 0 0 .123.213 5.25 5.25 0 0 1-.307.352 1.736 1.736 0 0 1-.276-.345c-.089-.178-.135-.33-.185-.265-.05.065-.06.338.024.603.034.108.094.207.152.287a16.61 16.61 0 0 1-.345.32 1.455 1.455 0 0 1-.178-.284c-.079-.192-.116-.355-.17-.293-.052.063-.075.347-.005.63.018.07.045.137.075.199-.12.107-.235.209-.34.3a1.261 1.261 0 0 1-.072-.183c-.062-.23-.085-.419-.146-.36-.061.056-.114.361-.069.685.004.032.01.062.017.093l-.03.026c-.069.06-.144.132-.222.21a1.239 1.239 0 0 1-.042-.164c-.04-.24-.045-.43-.108-.385-.062.045-.137.34-.122.67.002.051.008.103.017.155-.091.103-.182.209-.267.313A2.156 2.156 0 0 1 8 19.008c-.045-.25-.055-.45-.119-.401-.058.044-.122.312-.115.623-.064.047-.147.264-.15.51a.935.935 0 0 0 .035.246c-.042.058-.114.099-.164.17-.261.365-.155.8.409.896.173.532.61.79 1.282.797.09 0 .185-.03.273-.025.1.007.182.047.273.05.49.015.746-.14 1.118-.25.278-.08.564-.106.737-.173.265-.104.39-.389.6-.523.079-.05.226-.074.355-.15.11-.064.204-.18.3-.224.085-.038.225-.03.328-.074.17-.075.36-.235.573-.35a16.92 16.92 0 0 1 1.282-.622c.227-.1.467-.333.6-.348.158-.018.341.113.464.1.25.297.338.713.327 1.248.015.001.004.132.004.132s.087 1.148-1.705 1.768zM7.583.205c.188.052.397.159.197.477-.122-.131-.164-.304-.197-.477zm.358.42c.06-.105 0-.159.032-.222.539.07.585.448.352.984-.359-.121-.455-.361-.523-.605C7.86.72 7.904.69 7.94.625zm.588.106c.502.221.58.776.234 1.499a.94.94 0 0 1-.278-.274c-.053-.082-.127-.216-.11-.326.01-.075.07-.177.1-.261.089-.244.123-.463.054-.638zm2.403 2.105c-.009-.026.01-.025.031-.045.75.152.81.884.487 1.435-.152.261-.302.399-.536.326-.194-.06-.22-.217-.314-.324.382-.556.375-.966.332-1.392zm-.866-.55c-.004-.068-.016-.144.011-.21a.74.74 0 0 1 .27.07c.422.223.596 1.018.351 1.486-.105.2-.211.298-.408.241-.317-.09-.409-.45-.537-.599.346-.368.326-.692.313-.988zM9.05 1.287l.02-.01c.825.29 1.299.84.549 1.85-.286-.144-.447-.335-.521-.552-.044-.127-.078-.143-.048-.3.064-.341.085-.717 0-.988zm3.201 4.238l-.052.024c-.1.051-.206.082-.306.1-.62-.134-.807-.84-.807-.84.58-.256.907-.99.7-1.393.006-.015.02-.012.033-.01.263.117.54.311.673.522.256.399.331 1 .119 1.482-.095.022-.156.044-.232.07a.543.543 0 0 0-.04.012l-.07.026-.007.003-.011.004zm1-.501l-.122.104c-.036.068-.145.158-.284.217.11-.335.124-.691.132-.955.228.119.38.282.468.467l-.087.075a.62.62 0 0 0-.163-.194c.032.093.05.188.057.286zM12 .577c5.596 0 10.251 4.023 11.232 9.335a1.862 1.862 0 0 0-.358-.198c-.28-1.248-.882-2.037-2.118-2.487-.414-.151-.807-.326-1.216-.504.024-1.328-1.52-1.3-2.482-1.984-.418-.298-.893-.848-1.371-.95-.926-.197-1.495.448-2.042.899-.134-.146-.335-.29-.627-.42 0 0-.522-.744-.765-.884a.123.123 0 0 1-.034-.026c-.134-.063-.303-.098-.422-.177-.117-.077-.14-.26-.257-.348a1.08 1.08 0 0 0-.225-.122c-.095-.038-.256-.03-.351-.083-.117-.064-.127-.272-.211-.376a.842.842 0 0 0-.408-.273c-.08-.026-.198-.028-.27-.066-.079-.043-.098-.177-.16-.26-.143-.192-.384-.341-.66-.439-.06-.02-.139-.02-.182-.05-.051-.034-.057-.119-.088-.184C9.945.718 10.956.577 12 .577zm11.343 10.068c-.116-.199-.223-.39-.263-.559.08.052.148.11.212.172.02.128.036.257.051.387zM12 0a12 12 0 0 0-3.55.535.27.27 0 0 0-.044-.062c-.103-.1-.226-.177-.482-.112A.647.647 0 0 0 7.52.11l-.006.01c.025.233.058.468.235.629l-.003.028C3.22 2.494 0 6.87 0 12c0 6.628 5.372 12 12 12 6.627 0 12-5.372 12-12S18.627 0 12 0zM5.9 6.312s-.471.107-.6.942c0 0-.022.42.11.328-.111-.506.37-.735.48-.787.155-.069.283-.046.293.086.01.142-.152.205-.2.352.172-.098.558-.326.518-.623-.03-.218-.235-.412-.6-.298zm6.206.512c-.81-.475-2.907-.393-3.4-.43-.484-.038-.726.579-.726.579-.007.13.1-.02.1-.02.317-.57.595-.466.595-.466 1.003.293 1.182 1.767 1.224 2.108.041.34.127.119.127.119.097-.848-.52-1.882-.65-2.015-.13-.131-.007-.206.408-.09 1.247.35 1.364 2.349 1.44 2.59.075.242.122.01.122.01-.17-1.837-.868-2.29-1.054-2.543-.077-.105.554-.12.831.06 1.568 1.013 1.392 2.953 1.534 2.676.143-.283-.395-2.038-1.15-2.636-.152-.119.524.09.773.319 1.18 1.09 1.324 2.271 1.415 2.612.09.34.133.225.133.225.016-1.155-.899-2.617-1.722-3.098zm2.274-.804c.174-.094.379-.707.8-.452.314.189.463.236.463.236s-.219.062-.319.226-.218.29-.566.239c-.366-.055-.433.003-.617.033 0 0 .065-.187.239-.282zm-.673.49c.269.059.516.163.764.324.275.179.573.507.983.474.13-.01.368-.137.463-.2.12-.078.404-.263.328-.547-.034-.126-.184-.147-.273-.25-.124-.143-.12-.283-.218-.448.216.044.34.172.572.2a3.983 3.983 0 0 0-1.31-.797c.04-.022.065-.113.192-.15.115-.033.484.024.246-.025-.24-.067-.389.002-.546.1-.362.226-.656.745-1.037.971-.165.099-.327.076-.464.25.089.177.18.072.3.099zm2.838-.323c-.09.052.057.1.082.125.104.102.336.29.409.448.15.323.103.817-.164.996-.18.12-1.06.449-1.446.448-1.083-.001-1.193-1.191-1.855-1.594.012.114.095.353.19.476.372.486.727 1.487 1.773 1.32.37-.059 1.061-.314 1.339-.488.301-.188.525-.909.218-1.308-.138-.178-.467-.405-.546-.423z\"},\"child\":[]}]})(props);\n};\nexport function SiLichess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.457 6.161a.237.237 0 0 0-.296.165c-.8 2.785 2.819 5.579 5.214 7.428.653.504 1.216.939 1.591 1.292 1.745 1.642 2.564 2.851 2.733 3.178a.24.24 0 0 0 .275.122c.047-.013 4.726-1.3 3.934-4.574a.257.257 0 0 0-.023-.06L18.204 3.407 18.93.295a.24.24 0 0 0-.262-.293c-1.7.201-3.115.435-4.5 1.425-4.844-.323-8.718.9-11.213 3.539C.334 7.737-.246 11.515.085 14.128c.763 5.655 5.191 8.631 9.081 9.532.993.229 1.974.34 2.923.34 3.344 0 6.297-1.381 7.946-3.85a.24.24 0 0 0-.372-.3c-3.411 3.527-9.002 4.134-13.296 1.444-4.485-2.81-6.202-8.41-3.91-12.749C4.741 4.221 8.801 2.362 13.888 3.31c.056.01.115 0 .165-.029l.335-.197c.926-.546 1.961-1.157 2.873-1.279l-.694 1.993a.243.243 0 0 0 .02.202l6.082 10.192c-.193 2.028-1.706 2.506-2.226 2.611-.287-.645-.814-1.364-2.306-2.803-.422-.407-1.21-.941-2.124-1.56-2.364-1.601-5.937-4.02-5.391-5.984a.239.239 0 0 0-.165-.295z\"},\"child\":[]}]})(props);\n};\nexport function SiLidl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm.209.209h23.582v23.582H.209zm11.789.625C5.83.834.83 5.834.83 12.002c0 6.168 5 11.168 11.168 11.168 6.167 0 11.167-5 11.168-11.166C23.165 5.837 18.166.837 12 .834zm.002.709c5.777 0 10.46 4.682 10.46 10.459v.004c-.004 5.773-4.686 10.452-10.46 10.453-5.777 0-10.46-4.68-10.46-10.457C1.54 6.225 6.222 1.543 12 1.543zM9.229 7.85c-.645 0-1.166.521-1.166 1.166v.004c0 1.044 1.261 1.567 1.999.829.738-.738.215-2-.829-1.999zM2.73 10.059v.71h.551v2.465h-.55v.713h4.644v-.65l.537-.54 1.486 1.491-.55.547.357.36 2.973-2.977v-.713l-.826.83-1.848-1.848-2.129 2.133v-.576l-1.904 1.06V10.77h.549v-.711zm8.905 0v.71h.549v2.465h-.555v.713h3.129c2.325 0 2.355-3.888.008-3.888zm4.963 0v.71h.55v2.465h-.55v.713h4.648v-1.943l-1.906 1.06V10.77h.55v-.711zm-2.43 1.21h.133c.687 0 .685 1.461.023 1.461h-.156v-1.46z\"},\"child\":[]}]})(props);\n};\nexport function SiLifx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.128 8.2a3.11 3.11 0 0 0-2.212.92A3.148 3.148 0 0 0 0 11.347a3.144 3.144 0 0 0 .916 2.226l.27.266.014-.014a2.729 2.729 0 0 1 1.932-.795 2.739 2.739 0 0 1 1.931.795l.015.014.266-.27a3.157 3.157 0 0 0 .916-2.226c0-.806-.305-1.612-.916-2.226A3.139 3.139 0 0 0 3.128 8.2zm0 .725a2.39 2.39 0 0 1 1.701.707 2.431 2.431 0 0 1 .156 3.252 3.42 3.42 0 0 0-3.72 0 2.45 2.45 0 0 1-.544-1.537c0-.618.234-1.24.706-1.715a2.38 2.38 0 0 1 1.701-.707zm5.316.082v6.025h3.167v-1.487H9.928l.004-4.538zm4.247 0v6.022h1.487V9.007zm2.585 0v6.025h1.487V13.15h1.918v-1.41h-1.918v-1.228h3.047l.863 1.545-1.662 2.975h1.662l.813-1.53.696 1.53h1.779l-1.665-2.975L24 9.007h-1.779l-.735 1.686-.735-1.686zM3.128 13.75c-.518 0-1.04.202-1.438.6l.444.443a1.41 1.41 0 0 1 1.996 0l.443-.443c-.4-.398-.92-.6-1.445-.6zm0 1.324a.707.707 0 0 0-.507.213l.507.511.508-.511a.701.701 0 0 0-.508-.213Z\"},\"child\":[]}]})(props);\n};\nexport function SiLightburn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.419 23.947c-.481-.13-.956-.505-1.18-.933-.248-.475-.228.159-.228-7.504V8.606l.214-.312A9.388 9.388 0 0 1 2.968 5.7c1.18-.723 2.468-1.173 3.925-1.372.546-.075 1.87-.103 2.382-.051 2.234.227 4.417 1.19 5.777 2.549l.338.338-.289.295c-.159.162-.323.334-.364.38l-.076.086.524.022c1.01.042 2.43.423 3.41.916.154.078.287.14.296.14.01 0-.074-.172-.185-.384-.615-1.175-1.069-2.77-1.019-3.583l.018-.295-.347.363-.347.364-.24-.221c-1.801-1.663-3.841-2.598-6.406-2.935-1.354-.178-3.068-.145-4.362.085a11.764 11.764 0 0 0-3.339 1.095c-.892.437-1.708.97-2.405 1.57l-.248.213v-1.86C.014 1.583.015 1.555.09 1.333.311.682.83.207 1.485.052 1.68.006 2.908 0 11.978 0c8.925 0 10.303.007 10.511.05.677.143 1.22.653 1.448 1.361.055.168.058.876.049 10.572-.009 8.875-.018 10.42-.06 10.587-.148.597-.595 1.086-1.208 1.325l-.229.089-2.217.01c-1.22.005-2.217 0-2.217-.01 0-.012.022-.063.048-.113.194-.38.386-1.304.421-2.032.02-.408.025-.435.083-.404.168.09.469.884.48 1.265.01.373.094.473.199.234a6.57 6.57 0 0 0 .256-.92c.143-.837.166-2.06.052-2.827-.175-1.179-.472-2.208-.923-3.199-.352-.771-.841-1.574-1.294-2.122l-.21-.253c-.051-.062-.048-.064.083-.041.431.074.922.339 1.211.652.079.086.152.155.162.155.04 0-.42-.634-.652-.9-.719-.822-1.597-1.403-2.73-1.808-.542-.194-1.292-.373-1.56-.373-.089 0-.114-.016-.131-.086-.082-.324.252-.841.79-1.223.219-.156.23-.169.12-.146a4.962 4.962 0 0 0-.84.291c-.309.147-.795.582-1.13 1.007l-.103.132-.323-.007a2.099 2.099 0 0 1-.34-.022c-.066-.066.422-.755.796-1.122.3-.294.781-.69.941-.774.044-.023.073-.049.064-.058-.02-.02-.749.27-1.154.458-.537.25-1.139.7-1.713 1.281-.431.437-.463.449-.912.337-.429-.106-1.039-.13-1.415-.053-.9.182-1.457.794-1.434 1.577l.006.205-.447.76c-.49.835-.737 1.178-1.092 1.522-.349.338-.51.444-.616.404-.126-.048-.36-.039-.527.02a.766.766 0 0 0-.45.375c-.118.24-.418.34-.526.174-.085-.128-.327-.233-.476-.205-.174.032-.438.282-.563.531-.213.426-.268 1.07-.126 1.472a.94.94 0 0 0 .621.576c.04.012.168.134.286.271.205.238.292.3.211.149-.057-.107-.045-.296.023-.355.105-.092.198-.126.543-.2.327-.072.338-.072.372-.01.121.22.633.628.79.628.046 0 .044-.015-.017-.1-.122-.171-.206-.39-.206-.54-.001-.204.102-.307.544-.542.333-.176.419-.241.713-.544.579-.597.692-.7.979-.89.574-.38 1.267-.673 1.773-.748.241-.035.277-.032.478.041.18.066.477.227.477.26 0 .004-.22.135-.488.29-.269.155-.588.347-.71.427-.67.434-1.402 1.156-1.937 1.909-.42.59-.703.888-.998 1.045-.237.126-.467.168-1.116.2-.319.016-.468.036-.46.062.028.086.47.298.797.382.508.13 1.012.149 1.434.051.6-.138.94-.362 1.346-.887.536-.693.79-.955 1.151-1.194.917-.607 1.463-.734 2.299-.536.72.17.93.15 1.332-.138.166-.118.308-.276.622-.692.468-.62.751-.937.714-.8-.032.115-.296.64-.587 1.166l-.239.431.13.109c.178.15.335.479.36.759.029.302-.049.59-.265.979-.273.494-.582.878-1.209 1.505a12.559 12.559 0 0 1-3.495 2.503L7.766 24l-3.081-.002c-2.576-.002-3.112-.01-3.266-.052zm6.004-9.468c.126-.427.521-.941.846-1.1a1.55 1.55 0 0 1 1.252-.026l.15.066-.08.142c-.283.505-1.09.92-1.906.98l-.287.02z\"},\"child\":[]}]})(props);\n};\nexport function SiLighthouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0l5.5 3.5v5H20v3h-2.25l2 12.5H4.25l2-12.5H4v-3h2.5V3.53zm2.94 13.25l-6.22 2.26L8 20.04l7.5-2.75zM12 3.56L9.5 5.17V8.5h5V5.15Z\"},\"child\":[]}]})(props);\n};\nexport function SiLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L1.75 6v12L12 24l10.25-6V6zm-1.775 18l1.08-4.657-2.428-2.397L13.79 6l-1.082 4.665 2.414 2.384z\"},\"child\":[]}]})(props);\n};\nexport function SiLimesurvey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9339 2.3012c.7181 0 1.4363.1657 2.1544.3867.6629.221 1.3258.5524 1.9887.8839.6077.3314 1.2153.7181 1.823 1.16l.8286.663c.1657.1104.2762.221.3867.3314.0553.0552.1105.1105.221.1657l.1105.1658.1105.1104H9.5685l.1658-.221.1657-.1656.3314-.3315c.221-.2762.442-.4972.663-.7181.221-.221.4971-.442.718-.6077.1106-.1105.2763-.221.3868-.2762l.1657-.1657.1657-.1658c.4972-.3867 1.0496-.7181 1.602-1.0496.5525-.3314 1.1049-.6076 1.7126-.8838 1.16-.5525 2.3754-.9392 3.5907-1.2154.6076-.1104 1.2706-.221 1.8782-.2762.663-.1105 1.3258-.1105 1.9335-.0552l-.8286.4972c-.1105.0552-.2763.1657-.3867.221-.0553.0552-.1105.0552-.221.1104l-.221.1105c-.4972.3315-1.0496.6077-1.5468.9391-.939.663-1.8782 1.2706-2.8725 1.9335-.9944.6629-1.8783 1.3258-2.8174 1.9887l-.6629.4972c-.221.1657-.442.3314-.6629.5524-.221.221-.442.3867-.6629.5524-.1105.1105-.221.1657-.3314.2762l-.2762.2762-1.2154 1.0496-.7734-1.0496-.0552-.0552-.0552-.1105-.221-.1657-.3315-.3867c-.221-.2762-.4419-.4972-.6629-.7182L6.917 5.0633c-.442-.4972-.8838-.9944-1.381-1.4363-.4972-.4972-1.0496-.9391-1.602-1.3258Zm16.4068 11.9925c0-1.2153-.221-2.4307-.6629-3.5355l-3.4802 1.4915c.9943 2.7621-.1657 5.8557-2.7621 7.2367l1.4915 3.4803c3.3145-1.602 5.4137-4.9718 5.4137-8.673zm-3.867-7.7339-3.3144 2.4307c1.1048.5524 2.044 1.4362 2.5963 2.4858l3.4803-1.4915c-.6077-1.3258-1.5468-2.4859-2.7621-3.425ZM4.7626 14.2937c0-2.044 1.1048-3.9774 2.8173-5.027L5.1492 6.3388c-3.646 2.486-5.1375 7.1815-3.5907 11.3246l3.5354-1.4915c-.221-.6077-.3314-1.2706-.3314-1.8782Zm5.8556 5.9109c-2.2096 0-4.2536-1.2706-5.248-3.2593L1.89 18.4368c2.1544 4.5851 7.513 6.7395 12.2637 4.9166l-1.4915-3.4803c-.663.221-1.3258.3315-2.044.3315z\"},\"child\":[]}]})(props);\n};\nexport function SiLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314\"},\"child\":[]}]})(props);\n};\nexport function SiLineageos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.64526 12.05735a2.40391 2.40391 0 0 0-1.80293.7993l-.13823-.0541a17.80096 17.80096 0 0 0-2.86666-.8594 4.80782 4.80782 0 0 0-9.61565 0h-.13221a17.74687 17.74687 0 0 0-2.7645.83537l-.13822.05409a2.40391 2.40391 0 1 0 .5589 1.06974 16.599 16.599 0 0 1 2.5782-.77526 4.80782 4.80782 0 0 0 9.35722 0 16.55693 16.55693 0 0 1 2.5782.76925 2.40391 2.40391 0 1 0 2.38588-1.839zM2.41397 15.6632a1.20196 1.20196 0 1 1 1.20196-1.20195 1.20196 1.20196 0 0 1-1.20196 1.20195zm9.61565 0a3.60587 3.60587 0 1 1 3.60586-3.60586 3.60587 3.60587 0 0 1-3.60586 3.60586zm9.61564 0a1.20196 1.20196 0 1 1 1.20196-1.20195 1.20196 1.20196 0 0 1-1.20196 1.20195zm-7.81271-3.60586a1.80293 1.80293 0 1 1-1.80293-1.80294 1.80293 1.80293 0 0 1 1.80293 1.80294z\"},\"child\":[]}]})(props);\n};\nexport function SiLinear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z\"},\"child\":[]}]})(props);\n};\nexport function SiLining (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.926 8.815c-.261-.004-.696.011-1.422.084-1.937.194-2.398.828-2.398.828L0 15.177h1.017c4.279-4.664 8.291-6.278 8.291-6.278s.052-.075-.382-.084Zm2.332 1.571c-1.71-.008-3.181.092-3.803.366-1.422.625-3.838 2.271-6.035 4.425 0 0 .864.115 1.902-.48 0 0 3.416-2.586 6.165-2.07 2.75.516 5.169 1.829 5.169 1.829s1.751 1 3.39.438c1.64-.563 5.954-2.898 5.954-2.898s-3.266-.776-6.265-1.182c-1.687-.229-4.279-.418-6.477-.428Z\"},\"child\":[]}]})(props);\n};\nexport function SiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"},\"child\":[]}]})(props);\n};\nexport function SiLinkerd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.329 5.04v9.034l1.666.964V6.004l-1.666-.964ZM0 15.038l1.666-.964V5.04L0 6.004v9.034Zm8.165-.089 7.665 4.424V17.45l-7.176-4.142-.489.282v1.359Zm8.105 6.989-8.105-4.681v1.923l2.164 1.25-2.604 1.503a.263.263 0 0 0 0 .454l1.27.737 3-1.73 3 1.73 1.27-.737c.178-.093.178-.35.005-.449Zm6.059-11.511v8.012c0 .202.218.331.396.227l1.142-.657a.267.267 0 0 0 .133-.228V9.468l-1.671.959Zm-3.271 10.354 1.072-.623a.39.39 0 0 0 .198-.341v-8.233l-1.666.963v8.012c0 .198.218.326.396.222Zm-4.063 2.348 1.537-.885a.265.265 0 0 0 .134-.227v-8.318l-1.671.964v8.466Zm-7.532-.89L9 23.124v-8.461l-1.666-.964v8.313c0 .094.05.183.129.227Zm-3.598-2.076 1.072.623a.265.265 0 0 0 .396-.227v-8.017l-1.666-.963v8.238c0 .144.074.277.198.346ZM.198 18.048l1.072.623a.265.265 0 0 0 .396-.228v-8.016L0 9.468v8.239c0 .138.074.267.198.341ZM23.995 6.004l-1.666-.964-3 1.73-1.996-1.152 2.604-1.502a.264.264 0 0 0 0-.455l-1.077-.623a.403.403 0 0 0-.395 0l-2.803 1.616-1.996-1.151L16.27 2a.263.263 0 0 0 0-.454L15.193.923a.405.405 0 0 0-.396 0l-2.802 1.616L9.193.923a.405.405 0 0 0-.396 0l-1.077.623a.263.263 0 0 0 0 .454l14.6 8.432 1.665-.964-3-1.73 3.01-1.734ZM5.135 3.038l-1.072.623a.264.264 0 0 0 0 .455l14.599 8.431 1.666-.963L5.53 3.038a.403.403 0 0 0-.395 0ZM0 6.004l3 1.729-3 1.735 1.671.959 2.995-1.73 2.001 1.157-3 1.73 1.666.963 3-1.734 1.996 1.156-3 1.73L9 14.663l2.995-1.735 3 1.735 1.666-.964L1.666 5.04 0 6.004Z\"},\"child\":[]}]})(props);\n};\nexport function SiLinkfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.08 1.997A10.041 10.042 0 0 0 0 12.006a10.041 10.042 0 0 0 10.08 10 10.037 10.038 0 0 0 7.12-2.933c2.883-2.796 4.509-8.065 5.775-12.861l.038-.152.09-.343a.227.227 0 0 0-.038-.197.234.234 0 0 0-.185-.09h-1.711a.23.23 0 0 1-.215-.14.227.227 0 0 1 .053-.25l2.925-2.646v-.011a.23.23 0 0 0 .053-.246.23.23 0 0 0-.216-.143zm.385 4.645h3.847a1.686 1.686 0 0 1 1.682 1.686v3.844a1.686 1.686 0 0 1-1.682 1.686H10.47a1.686 1.686 0 0 1-1.684-1.686v-.722h1.442v.722a.246.246 0 0 0 .242.242h3.848a.242.242 0 0 0 .242-.242V8.324a.242.242 0 0 0-.242-.242H10.47a.242.242 0 0 0-.242.242v.722H8.784v-.718a1.686 1.686 0 0 1 1.684-1.686zM7.582 9.526h3.84a1.686 1.686 0 0 1 1.684 1.686v.718h-1.44v-.718a.242.242 0 0 0-.24-.242H7.577a.242.242 0 0 0-.242.242v3.847a.242.242 0 0 0 .242.242h3.847a.242.242 0 0 0 .241-.242v-.718h1.448v.718a1.686 1.686 0 0 1-1.686 1.682H7.582a1.686 1.686 0 0 1-1.69-1.682v-3.847a1.686 1.686 0 0 1 1.69-1.686z\"},\"child\":[]}]})(props);\n};\nexport function SiLinksys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.871 0c-1.7024 0-3.082 1.38-3.082 3.082 0 1.7025 1.38 3.08 3.082 3.082 1.7026 0 3.082-1.3795 3.082-3.082 0-1.7024-1.3795-3.082-3.082-3.082ZM1.047.488V24h21.3105v-3.469H5.166V.488Zm7.156 0v17.156h14.154v-3.4707h-10.039V.488Z\"},\"child\":[]}]})(props);\n};\nexport function SiLinktree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.73635 5.85251 4.00467-4.11665 2.3248 2.3808-4.20064 4.00466h5.9085v3.30473h-5.9365l4.22865 4.10766-2.3248 2.3338L12.0005 12.099l-5.74052 5.76852-2.3248-2.3248 4.22864-4.10766h-5.9375V8.12132h5.9085L3.93417 4.11666l2.3248-2.3808 4.00468 4.11665V0h3.4727zm-3.4727 10.30614h3.4727V24h-3.4727z\"},\"child\":[]}]})(props);\n};\nexport function SiLinphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.976.001C.87-.005.787.01.737.047c-.533.41 1.518 4.677 1.518 4.677s-2.38 3.282-2.01 4.76C.232 9.425 1.804 7.76 1.804 7.76c.082.451 3.897 1.56 3.897 1.56.507.322.682.554.78 1.066v1.97c1.318.82 2.529 1.091 5.456 1.271 3.111-.133 4.396-.408 5.539-1.272 0 0-.123-1.518 0-2.051.123-.534.396-.838.82-.985 1.583-.362 2.365-.758 3.857-1.518l1.64 1.682c-.249-1.849-.677-2.873-1.968-4.676-1.026-1.172-1.683-1.786-3.036-2.79-1.472-.87-2.288-1.201-3.734-1.6-2.509-.514-3.892-.512-6.318 0-1.486.448-2.227.786-3.323 1.6 0 0-3.403-1.954-4.438-2.016zm22.738 14.44c-1.648 1.293-2.719 2.048-4.759 2.995-2.524.996-3.993 1.315-6.728 1.395-3.186-.055-4.74-.37-7.139-1.395-1.905-.834-2.938-1.464-4.717-2.871.427 1.77.826 2.703 1.805 4.266 1.042 1.411 1.683 2.04 2.912 2.913 1.33.913 2.128 1.312 3.652 1.805 1.369.33 2.132.434 3.487.451 1.381-.069 2.098-.22 3.282-.492 1.306-.52 1.97-.848 3.077-1.477 1.834 1.036 4.102 2.216 4.43 1.723.329-.492-1.476-4.472-1.476-4.472 1.204-1.724 1.696-2.885 2.174-4.84z\"},\"child\":[]}]})(props);\n};\nexport function SiLintcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.11 0 5.064 10.467l4.797 6.142 1.322-2.289-3.149-4.032 4.722-8.184A902.354 902.354 0 0 0 11.11 0Zm3.029 7.391L12.817 9.68l3.148 4.032-4.721 8.184c.546.703 1.095 1.404 1.646 2.104l6.045-10.469-4.796-6.14Z\"},\"child\":[]}]})(props);\n};\nexport function SiLinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.504 0c-.155 0-.315.008-.48.021-4.226.333-3.105 4.807-3.17 6.298-.076 1.092-.3 1.953-1.05 3.02-.885 1.051-2.127 2.75-2.716 4.521-.278.832-.41 1.684-.287 2.489a.424.424 0 00-.11.135c-.26.268-.45.6-.663.839-.199.199-.485.267-.797.4-.313.136-.658.269-.864.68-.09.189-.136.394-.132.602 0 .199.027.4.055.536.058.399.116.728.04.97-.249.68-.28 1.145-.106 1.484.174.334.535.47.94.601.81.2 1.91.135 2.774.6.926.466 1.866.67 2.616.47.526-.116.97-.464 1.208-.946.587-.003 1.23-.269 2.26-.334.699-.058 1.574.267 2.577.2.025.134.063.198.114.333l.003.003c.391.778 1.113 1.132 1.884 1.071.771-.06 1.592-.536 2.257-1.306.631-.765 1.683-1.084 2.378-1.503.348-.199.629-.469.649-.853.023-.4-.2-.811-.714-1.376v-.097l-.003-.003c-.17-.2-.25-.535-.338-.926-.085-.401-.182-.786-.492-1.046h-.003c-.059-.054-.123-.067-.188-.135a.357.357 0 00-.19-.064c.431-1.278.264-2.55-.173-3.694-.533-1.41-1.465-2.638-2.175-3.483-.796-1.005-1.576-1.957-1.56-3.368.026-2.152.236-6.133-3.544-6.139zm.529 3.405h.013c.213 0 .396.062.584.198.19.135.33.332.438.533.105.259.158.459.166.724 0-.02.006-.04.006-.06v.105a.086.086 0 01-.004-.021l-.004-.024a1.807 1.807 0 01-.15.706.953.953 0 01-.213.335.71.71 0 00-.088-.042c-.104-.045-.198-.064-.284-.133a1.312 1.312 0 00-.22-.066c.05-.06.146-.133.183-.198.053-.128.082-.264.088-.402v-.02a1.21 1.21 0 00-.061-.4c-.045-.134-.101-.2-.183-.333-.084-.066-.167-.132-.267-.132h-.016c-.093 0-.176.03-.262.132a.8.8 0 00-.205.334 1.18 1.18 0 00-.09.4v.019c.002.089.008.179.02.267-.193-.067-.438-.135-.607-.202a1.635 1.635 0 01-.018-.2v-.02a1.772 1.772 0 01.15-.768c.082-.22.232-.406.43-.533a.985.985 0 01.594-.2zm-2.962.059h.036c.142 0 .27.048.399.135.146.129.264.288.344.465.09.199.14.4.153.667v.004c.007.134.006.2-.002.266v.08c-.03.007-.056.018-.083.024-.152.055-.274.135-.393.2.012-.09.013-.18.003-.267v-.015c-.012-.133-.04-.2-.082-.333a.613.613 0 00-.166-.267.248.248 0 00-.183-.064h-.021c-.071.006-.13.04-.186.132a.552.552 0 00-.12.27.944.944 0 00-.023.33v.015c.012.135.037.2.08.334.046.134.098.2.166.268.01.009.02.018.034.024-.07.057-.117.07-.176.136a.304.304 0 01-.131.068 2.62 2.62 0 01-.275-.402 1.772 1.772 0 01-.155-.667 1.759 1.759 0 01.08-.668 1.43 1.43 0 01.283-.535c.128-.133.26-.2.418-.2zm1.37 1.706c.332 0 .733.065 1.216.399.293.2.523.269 1.052.468h.003c.255.136.405.266.478.399v-.131a.571.571 0 01.016.47c-.123.31-.516.643-1.063.842v.002c-.268.135-.501.333-.775.465-.276.135-.588.292-1.012.267a1.139 1.139 0 01-.448-.067 3.566 3.566 0 01-.322-.198c-.195-.135-.363-.332-.612-.465v-.005h-.005c-.4-.246-.616-.512-.686-.71-.07-.268-.005-.47.193-.6.224-.135.38-.271.483-.336.104-.074.143-.102.176-.131h.002v-.003c.169-.202.436-.47.839-.601.139-.036.294-.065.466-.065zm2.8 2.142c.358 1.417 1.196 3.475 1.735 4.473.286.534.855 1.659 1.102 3.024.156-.005.33.018.513.064.646-1.671-.546-3.467-1.089-3.966-.22-.2-.232-.335-.123-.335.59.534 1.365 1.572 1.646 2.757.13.535.16 1.104.021 1.67.067.028.135.06.205.067 1.032.534 1.413.938 1.23 1.537v-.043c-.06-.003-.12 0-.18 0h-.016c.151-.467-.182-.825-1.065-1.224-.915-.4-1.646-.336-1.77.465-.008.043-.013.066-.018.135-.068.023-.139.053-.209.064-.43.268-.662.669-.793 1.187-.13.533-.17 1.156-.205 1.869v.003c-.02.334-.17.838-.319 1.35-1.5 1.072-3.58 1.538-5.348.334a2.645 2.645 0 00-.402-.533 1.45 1.45 0 00-.275-.333c.182 0 .338-.03.465-.067a.615.615 0 00.314-.334c.108-.267 0-.697-.345-1.163-.345-.467-.931-.995-1.788-1.521-.63-.4-.986-.87-1.15-1.396-.165-.534-.143-1.085-.015-1.645.245-1.07.873-2.11 1.274-2.763.107-.065.037.135-.408.974-.396.751-1.14 2.497-.122 3.854a8.123 8.123 0 01.647-2.876c.564-1.278 1.743-3.504 1.836-5.268.048.036.217.135.289.202.218.133.38.333.59.465.21.201.477.335.876.335.039.003.075.006.11.006.412 0 .73-.134.997-.268.29-.134.52-.334.74-.4h.005c.467-.135.835-.402 1.044-.7zm2.185 8.958c.037.6.343 1.245.882 1.377.588.134 1.434-.333 1.791-.765l.211-.01c.315-.007.577.01.847.268l.003.003c.208.199.305.53.391.876.085.4.154.78.409 1.066.486.527.645.906.636 1.14l.003-.007v.018l-.003-.012c-.015.262-.185.396-.498.595-.63.401-1.746.712-2.457 1.57-.618.737-1.37 1.14-2.036 1.191-.664.053-1.237-.2-1.574-.898l-.005-.003c-.21-.4-.12-1.025.056-1.69.176-.668.428-1.344.463-1.897.037-.714.076-1.335.195-1.814.12-.465.308-.797.641-.984l.045-.022zm-10.814.049h.01c.053 0 .105.005.157.014.376.055.706.333 1.023.752l.91 1.664.003.003c.243.533.754 1.064 1.189 1.637.434.598.77 1.131.729 1.57v.006c-.057.744-.48 1.148-1.125 1.294-.645.135-1.52.002-2.395-.464-.968-.536-2.118-.469-2.857-.602-.369-.066-.61-.2-.723-.4-.11-.2-.113-.602.123-1.23v-.004l.002-.003c.117-.334.03-.752-.027-1.118-.055-.401-.083-.71.043-.94.16-.334.396-.4.69-.533.294-.135.64-.202.915-.47h.002v-.002c.256-.268.445-.601.668-.838.19-.201.38-.336.663-.336zm7.159-9.074c-.435.201-.945.535-1.488.535-.542 0-.97-.267-1.28-.466-.154-.134-.28-.268-.373-.335-.164-.134-.144-.333-.074-.333.109.016.129.134.199.2.096.066.215.2.36.333.292.2.68.467 1.167.467.485 0 1.053-.267 1.398-.466.195-.135.445-.334.648-.467.156-.136.149-.267.279-.267.128.016.034.134-.147.332a8.097 8.097 0 01-.69.468zm-1.082-1.583V5.64c-.006-.02.013-.042.029-.05.074-.043.18-.027.26.004.063 0 .16.067.15.135-.006.049-.085.066-.135.066-.055 0-.092-.043-.141-.068-.052-.018-.146-.008-.163-.065zm-.551 0c-.02.058-.113.049-.166.066-.047.025-.086.068-.14.068-.05 0-.13-.02-.136-.068-.01-.066.088-.133.15-.133.08-.031.184-.047.259-.005.019.009.036.03.03.05v.02h.003z\"},\"child\":[]}]})(props);\n};\nexport function SiLinuxcontainers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.15 8.98l1.647.951-5.756 3.345.005-1.911L10.15 8.98zm1.723-1.001l-1.553.902 1.548.893.005-1.795zM6.028 5.33L6.025 6.4l.543.316 3.602 2.079 1.632-.948-2.19-1.279-3.231-1.887-.351-.203-.002.852zm.072-.983l.359.209 6.321 3.65 5.258 3.037 5.858-3.405L11.956.943 6.1 4.347zm6.002 12.602l-.005 1.924 5.858-3.404.005-1.924-5.858 3.404zm-.077-9.009l-.005 1.922 5.94 3.428.005-1.92-5.94-3.43zm-10.13.945l4.075 2.352 4.031-2.342-4.075-2.353-4.031 2.343zM24 7.982l-5.858 3.404-.015 3.982 5.858-3.404L24 7.982zm-12.048 10.04l.003-1.073L7.6 14.436l-1.565-.903v.001l-.939-.542L.015 10.06.01 11.979l11.94 6.895.002-.852zm5.935-4.605l-5.922-3.411-5.853 3.401 5.917 3.414 5.858-3.404zm6.072-1.238l-11.862 6.864-.01 4.013 11.863-6.894.009-3.983zM11.944 21.27l.005-2.227L.01 12.148 0 16.162l11.94 6.895.004-1.787zM.021 9.802L1.6 8.885.025 7.976.021 9.802zm5.832-3.39l.024-1.636.001-.296L.099 7.848l1.647.951 4.107-2.387zm.041 4.951L1.749 8.97l-.46.267-1.195.695 5.795 3.345.005-1.914z\"},\"child\":[]}]})(props);\n};\nexport function SiLinuxfoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.8 19.2h9.6V24H0V9.6h4.8v9.6zM0 0v7.2h4.8V4.822h14.4V19.2h-2.4V24H24V0H0z\"},\"child\":[]}]})(props);\n};\nexport function SiLinuxmint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.438 5.906v8.438c0 2.06 1.69 3.75 3.75 3.75h5.625c2.06 0 3.75-1.69 3.75-3.75V9.656a2.827 2.827 0 0 0-2.813-2.812 2.8 2.8 0 0 0-1.875.737A2.8 2.8 0 0 0 12 6.844a2.827 2.827 0 0 0-2.812 2.812v4.688h1.875V9.656c0-.529.408-.937.937-.937s.938.408.938.937v4.688h1.875V9.656c0-.529.408-.937.937-.937s.938.408.938.937v4.688a1.86 1.86 0 0 1-1.875 1.875H9.188a1.86 1.86 0 0 1-1.875-1.875V5.906ZM12 0C5.384 0 0 5.384 0 12s5.384 12 12 12 12-5.384 12-12S18.616 0 12 0m0 1.875A10.11 10.11 0 0 1 22.125 12 10.11 10.11 0 0 1 12 22.125 10.11 10.11 0 0 1 1.875 12 10.11 10.11 0 0 1 12 1.875\"},\"child\":[]}]})(props);\n};\nexport function SiLinuxprofessionalinstitute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12-.0002c-6.6273 0-12 5.3728-12 11.9997 0 6.627 5.3727 12.0007 12 12.0007s12-5.3728 12-12.0007S18.627-.0002 12-.0002Zm0 20.987c-4.9632 0-8.987-4.0231-8.987-8.9866 0-4.9635 4.0238-8.9867 8.987-8.9867 4.9632 0 8.987 4.0235 8.987 8.9867 0 4.9631-4.0238 8.9867-8.987 8.9867zm5.1043-3.0031.7995-2.9975h-7.1631L13.5062 4.495h-2.9978L6.9118 17.9837Zm.2896-10.4938c0 .8225-.6697 1.4938-1.4938 1.4938s-1.4897-.6716-1.4897-1.4938c0-.8223.6675-1.4907 1.4897-1.4907s1.4938.6688 1.4938 1.4907\"},\"child\":[]}]})(props);\n};\nexport function SiLinuxserver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.256.719C.3116 3.7066-1.888 12.1209 1.8164 17.6298h.002a12.0306 12.0306 0 0 0 5.1193 4.5022v-.002c8.7205 4.3354 19.3091-4.3021 16.6433-13.7935-.212-.8906-1.0814-3.8234-3.7424-6.094C18.6023 1.1092 15.6758.6356 13.6294 1.09a.4526.4526 0 0 0-.1485.0644c-.667.4347-1.4822.5953-2.2637.7383a.356.356 0 0 0-.291.3399c-.0107.3518.1813.7607.3125 1.0371.3304.6431.9258 1.0205 1.629 1.1095 2.584.7393 4.5834 3.0838 4.8146 5.8283-1.9676 1.2478-4.6033 1.4143-6.885-.4765-.0361-.03-.072-.0585-.1075-.0899-.7389-.5984-1.8837.3137-1.3887 1.209 1.929 2.527 5.0078 3.4105 7.8421 2.9084-3.1817.5923-7.13 1.0496-10.184-.0176-.7053-1.455-1.7714-2.7333-3.0802-3.6486-.1575-1.5748.2295-3.209 1-4.4982.6043-.926-.7959-1.8365-1.4043-.9356C2.706 5.7782 2.226 7.073 2.0058 8.4087c.019-.1339.0385-.2666.0606-.4004C2.5478 5.1615 3.8621 2.4204 6.256.719Zm10.6684.7187c.047.0044.0606.0113.0606.004.3944.0319.783.2053.8164.4453.0251.1875-.1708.3715-.4355.502a1.873 1.873 0 0 1-.547.168c-.473.0661-.0355-.2467-.078-.5528-.0426-.3062-.5505-.4882-.0762-.5547.1321-.0178.2127-.016.2597-.0118zm-2.8927.4727c.4785.032.4773.4963 0 .5293-.4776-.033-.478-.4973 0-.5293zm-3.9572 4.4768a.6359.6359 0 0 0-.6367.6328v2.1388c.3486-.1712.7823-.1672 1.1876-.0176.5723.3414 1.2689.7013 2.0196.9766a.6359.6359 0 0 0 .5352-.629V7.02a.6362.6362 0 0 0-.6368-.6328Zm-1.8711 3.922a.6362.6362 0 0 0-.6348.6368v2.4688a.6355.6355 0 0 0 .6348.6348h2.4688a.635.635 0 0 0 .6368-.6348v-.1504c-.9005-.518-1.7222-1.2152-2.4064-2.1114l-.0215-.0293-.0175-.0332a1.3752 1.3752 0 0 1-.17-.7813Zm5.0314 0c.6898.1998 1.4073.313 2.1076.2598a.6359.6359 0 0 0-.5098-.2598zm-1.4922 3.1896a.6355.6355 0 0 0 .6211.5508h.7989a8.3544 8.3544 0 0 1-1.42-.5508Z\"},\"child\":[]}]})(props);\n};\nexport function SiLionair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.4726 7.088h-.0965v.192l.0965.0962c.0712.971-.8655 1.5373-.8655 1.5373-.0153-.603-.4807-.6726-.4807-.6726-1.1311-.291-1.4421 1.0571-1.4421 1.0571-.1277 1.1309.673 1.1531.673 1.1531.4498.125.8651-.3842.8651-.3842v.192l-.0963.8649c-.2261.7658-1.2496.4804-1.2496.4804-.444-.1825-.4804.0963-.4804.0963.049 1.3386.6726 1.8258.6726 1.8258.733.358.673.4804.673.4804.1577.301-.1923.4807-.1923.4807-.3246.168-.3844.3842-.3844.3842-.1285.284.3844.8649.3844.8649.1914.0195.2885.3845.2885.3845-.0473.4682-.481.4804-.481.4804-.134.0857-.3841.8646-.3841.8646-.993 3.2198-4.3638 3.6777-5.0618 3.7387.0713.7728.077 1.7885-.3216 2.1226 0 0-.4228.5305-1.4418.1922 0 0 1.0585-.876.8649-3.2671 0 0-.3072-.0481-.4807-.096 0 0-.2323 3.74-2.2111 3.8433 0 0-.8855.0303-1.1534-.4805 0 0 2.1354-.6843 2.7878-3.5553l-.3842-.192s-1.3874 3.682-3.7495 3.7473c0 0-.8872.1255-1.4419-.9611 0 0 2.7694-.204 4.7104-3.1706l-.3845-.2882s-2.869 3.3155-5.287 2.786c0 0-1.6773-.366-1.6344-1.8254 0 0 3.2968 1.0983 6.537-1.5373l-.2883-.4804S7.53 19.8337 4.8805 19.3875c0 0-3.4866-.6666-2.4033-3.1708 0 0 3.5714 2.3604 8.171 1.153v-.5766s-8.8734.7561-9.1322-4.0358c0 0 .1133-1.2791.6724-1.3453 0 0 2.346 3.597 8.4599 4.7087v-.4805s-8.6145-2.96-8.6518-8.264c0 0 .0737-2.2096 1.8266-1.922 0 0 .1625 5.0857 7.0174 9.5134l.192-.3845S4.5817 10.5165 4.688 2.8598c0 0 .3761-3.8936 3.2685-2.5944 0 0-1.8978 8.1023 3.557 13.549 0 0 .7906-1.4944 3.076-1.4413 0 0 3.5413-.1446 3.9414 3.7479 0 0 .3068 3.757-3.7495 4.1317 0 0 .0364.1889.0751.4743 3.4649-.2468 4.0588-3.6449 4.0588-3.6449.5158-3.73-2.8837-4.9012-2.8837-4.9012-2.6751-1.0162-4.6147.9609-4.6147.9609-2.6016-2.1196-2.8834-6.3423-2.8834-6.3423l.673-.2882c-.846-.556-.4808-1.7295-.4808-1.7295.4404.3639 2.0188-.2882 2.0188-.2882-.2261-.8941.2882-1.0571.2882-1.0571.4605-.0637 2.6916 0 2.6916 0 0-.9295.673-.8647.673-.8647.2227.2488 1.0573.3842 1.0573.3842 1.3668.5815 1.25.6724 1.25.6724.0698.1633.1919.0963.1919.0963-.0147-.8148.8652-.4805.8652-.4805.0882.8697 2.4993 2.0178 2.4993 2.0178.3533.2381 0 .6726 0 .6726l.3844.2883h.3848l.192.096.961.0962c.3887.0926.2894.673.2894.673zm-7.114-2.114s-.534.2557-.1922.8647c0 0 .1494.2145.4807.3844 0 0-.681-1.1984.865-.8649 0 0-.3425-.6604-1.1535-.3842zm4.5182 1.3451h-.6727v.1922l.4804.4805.3848-.7687Z\"},\"child\":[]}]})(props);\n};\nexport function SiLiquibase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01884 0C6.64997 0 2.96561 1.92248 2.96477 3.64555c0 1.72307 3.7271 3.64555 9.05571 3.64555 5.32776 0 9.05407-1.92248 9.05407-3.64555S17.34745 0 12.01885 0Zm9.0557 6.45057c-1.60226 1.28266-3.48576 1.72252-7.33205 2.64446-5.3286 1.24155-10.81704 2.5238-10.81704 7.53195v.56035c2.00297-1.72282 5.60817-2.5234 9.13435-3.32441h.0016c4.40704-1.00153 9.01311-2.04399 9.01311-4.60732zm0 5.84927c-1.92272 1.56284-5.328 2.32433-8.6936 3.0852-4.64743 1.0419-9.45549 2.123-9.45549 5.0071 0 .64174.52143 1.3229 1.4828 1.92353 1.92356-1.28181 4.92803-2.0026 7.81212-2.68377 4.36724-1.04106 8.85418-2.12278 8.85418-4.80721zm0 5.64937c-1.88329 1.60227-5.2489 2.40461-8.49371 3.16548-2.36398.56206-4.76777 1.1223-6.45057 1.96286C7.65283 23.63961 9.69593 24 12.02048 24c5.28834 0 9.05407-1.88469 9.05407-3.64719z\"},\"child\":[]}]})(props);\n};\nexport function SiListmonk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0m0 5.1953A6.8047 6.8047 0 0 1 18.8047 12 6.8047 6.8047 0 0 1 12 18.8047 6.8047 6.8047 0 0 1 5.1953 12 6.8047 6.8047 0 0 1 12 5.1953\"},\"child\":[]}]})(props);\n};\nexport function SiLit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.4 9.6l4.8 4.8V24l-4.8-4.8V9.6zm4.8-4.8v9.6L12 9.6V0L7.2 4.8zM12 9.6v9.6l4.8-4.8V4.8L12 9.6zm4.8 4.8V24l4.8-4.8V9.6l-4.8 4.8z\"},\"child\":[]}]})(props);\n};\nexport function SiLitecoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1012 12A12 12 0 0012 0zm-.2617 3.6777h2.584a.3425.3425 0 01.33.4356l-2.0312 6.918 1.9062-.582-.4082 1.3847-1.9238.5605-1.248 4.213h6.6757a.3425.3425 0 01.3282.4374l-.582 2a.4586.4586 0 01-.4395.3301H6.7324l1.7227-5.8223-1.9063.5801.42-1.3613 1.9101-.58 2.4219-8.1798a.4557.4557 0 01.4375-.334Z\"},\"child\":[]}]})(props);\n};\nexport function SiLiteral (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.148 5.719.128-1.798 3.234.223-1.52-2.902 1.63-.836L16.176 3.4l1.966-2.75 1.495 1.05-1.916 2.665 3.212.221-.128 1.797-3.167-.217 1.498 2.878-1.628.836-1.578-3.017-1.99 2.771-1.495-1.05L14.36 5.94zm-8.129 9.513L5.197 0l2.569.355-1.817 12.708 5.978.825-.361 2.525zM20.981 21.7 4.328 24l-.36-2.524 16.652-2.3z\"},\"child\":[]}]})(props);\n};\nexport function SiLitiengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 12.018 2.09 2.088L11.987 24l2.146-2.146-9.897-9.893 6.586-6.582-2.09-2.089Zm13.211 6.624 2.08 2.078 5.425-5.422-2.08-2.078zM9.85 2.151l6.606 6.602L9.9 15.306l2.134 2.133 6.555-6.553 3.258 3.257L24 11.993 12 0Zm-3.276 9.853 2.035 2.034 5.453-5.45-2.035-2.035z\"},\"child\":[]}]})(props);\n};\nexport function SiLivechat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.849 14.91c-.24 2.94-2.73 5.22-5.7 5.19h-3.15l-6 3.9v-3.9l6-3.9h3.15c.93.03 1.71-.66 1.83-1.59.18-3 .18-6-.06-9-.06-.84-.75-1.47-1.56-1.53-2.04-.09-4.2-.18-6.36-.18s-4.32.06-6.36.21c-.84.06-1.5.69-1.56 1.53-.21 3-.24 6-.06 9 .09.93.9 1.59 1.83 1.56h3.15v3.9h-3.15a5.644 5.644 0 01-5.7-5.19c-.21-3.21-.18-6.39.06-9.6a5.57 5.57 0 015.19-5.1c2.1-.15 4.35-.21 6.6-.21s4.5.06 6.63.24a5.57 5.57 0 015.19 5.1c.21 3.18.24 6.39.03 9.57z\"},\"child\":[]}]})(props);\n};\nexport function SiLivejournal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.09 14.696c-1.512.664-2.726 1.885-3.381 3.399l4.27.883-.886-4.282h-.003zM2.475 8.317L0 5.85C1.125 3.237 3.216 1.14 5.823 0h.006l2.469 2.463c1.368-.591 2.876-.921 4.463-.921C18.967 1.542 24 6.569 24 12.771 24 18.973 18.967 24 12.761 24 6.551 24 1.52 18.976 1.52 12.771c0-1.591.355-3.081.952-4.451l9.143 9.114c1.125-2.613 3.218-4.71 5.823-5.85l-9.135-9.12h-.008c-2.606 1.14-4.695 3.24-5.823 5.85l.003.003z\"},\"child\":[]}]})(props);\n};\nexport function SiLivewire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001 0C6.1735 0 1.4482 4.9569 1.4482 11.0723c0 2.0888.5518 4.0417 1.5098 5.709.2492.2796.544.4843.9649.4843 1.3388 0 1.2678-2.0644 2.6074-2.0644 1.3395 0 1.4111 2.0644 2.75 2.0644 1.3388 0 1.2659-2.0644 2.6054-2.0644.5845 0 .9278.3967 1.2403.8398-.2213-.2055-.4794-.3476-.8203-.3476-1.1956 0-1.3063 1.6771-2.2012 2.1406v4.5097c0 .9145.7418 1.6563 1.6562 1.6563.9145 0 1.6563-.7418 1.6563-1.6563v-5.8925c.308.4332.647.8144 1.2207.8144 1.3388 0 1.266-2.0644 2.6055-2.0644.465 0 .7734.2552 1.039.58-.1294-.0533-.2695-.0878-.4297-.0878-1.1582 0-1.296 1.574-2.1171 2.0937v2.4356c0 .823.6672 1.4902 1.4902 1.4902s1.4902-.6672 1.4902-1.4902V16.371c.3234.4657.6684.8945 1.2774.8945.7955 0 1.093-.7287 1.4843-1.3203.6878-1.4704 1.0743-3.1245 1.0743-4.873C22.5518 4.9569 17.8284 0 12.001 0zm-.5664 2.877c2.8797 0 5.2148 2.7836 5.2148 5.8066 0 3.023-1.5455 5.1504-5.2148 5.1504-3.6693 0-5.2149-2.1274-5.2149-5.1504S8.5548 2.877 11.4346 2.877zM10.0322 4.537a1.9554 2.1583 0 00-1.955 2.1582 1.9554 2.1583 0 001.955 2.1582 1.9554 2.1583 0 001.9551-2.1582 1.9554 2.1583 0 00-1.955-2.1582zm-.3261.664a.9777.9961 0 01.9785.9962.9777.9961 0 01-.9785.996.9777.9961 0 01-.9766-.996.9777.9961 0 01.9766-.9961zM6.7568 15.6935c-1.0746 0-1.2724 1.3542-1.9511 1.9648v1.7813c0 .823.6672 1.4902 1.4902 1.4902s1.4902-.6672 1.4902-1.4902v-3.1817c-.2643-.3237-.5767-.5644-1.0293-.5644Z\"},\"child\":[]}]})(props);\n};\nexport function SiLlvm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.83 2.978l-.086.095a16.245 16.245 0 0 0-1.19 1.487 5.773 5.773 0 0 0-.446.719 2.88 2.88 0 0 0-.249.596.497.497 0 0 0-.033.177v.004a.297.297 0 0 0-.21.29.3.3 0 0 0 .187.284c.038.371.08 1.142.07 2.2l-.004.142a8.001 8.001 0 0 1-.434 2.327c-.016-.01-.03-.014-.04-.013-.03.003-.11.12-.19.251-.058.09-.119.195-.154.291a.37.37 0 0 0-.03.14.249.249 0 0 0 .01.088c.01.037.022.058.022.058a6.836 6.836 0 0 1-.003.007.144.144 0 0 0-.028.067l-.012.029a6.836 6.836 0 0 1-.257.527l-.077.142a6.836 6.836 0 0 1-.07.115.157.157 0 0 0-.022-.014.16.16 0 0 0-.113.024c-.047.035-.151.194-.498.368a1.384 1.384 0 0 1-.32.114 14.1 14.1 0 0 0 .248-2.07 5.072 5.072 0 0 0-.064-1.057c.003-.01.003-.017.003-.017l-.005.01a4.345 4.345 0 0 0-.104-.458 3.554 3.554 0 0 0-.724-1.385c-.631-.754-1.496-1.14-2.256-1.165l-.125-.002c0-.008 0-.015.002-.022.02-.098.024-.127-.087-.032a.872.872 0 0 0-.057.054 2.986 2.986 0 0 0-.146.007.716.716 0 0 1-.003-.108c.004-.076.024-.127-.087-.032a.553.553 0 0 0-.142.167c-.05.008-.08.015-.08.015l.045-.002-.047.008c-.016-.042-.053-.105-.048-.16.01-.118.043-.14-.037-.065-.098.09-.202.226-.22.3l-.096.03c-.018-.019-.074-.07-.086-.179-.013-.11-.012-.166-.08-.05a1.14 1.14 0 0 0-.13.348c-.032.015-.063.03-.093.046a.27.27 0 0 1-.057-.173c-.005-.144.04-.26-.067-.068a1.634 1.634 0 0 0-.146.406 1.6 1.6 0 0 0-.105.08 2.7 2.7 0 0 1-.008-.17c-.002-.143.021-.296-.067-.026a1.832 1.832 0 0 0-.07.321c-.404.385-.65.917-.644 1.572v.007a3.42 3.42 0 0 0 .014.33c.02.238.057.438.107.605-.095.13-.103.689-.01.818.073.104.496.35.586.399a.367.367 0 0 1 .094.093c.115.188.115.567.027.762-.107.238.107.285.285.32.178.036.415-.023.463-.118.047-.095-.154-.31-.237-.748-.084-.439.13-.474.13-.474s.095.024.237.249c.11.175.227.313.336.413a.727.727 0 0 1-.201.172c.12.005.24-.051.304-.087a.77.77 0 0 0 .07.045 1.015 1.015 0 0 1-.05.05.506.506 0 0 0 .109-.022.295.295 0 0 0 .084.022c.155.012.57-.368.57-.439 0-.018-.015-.04-.038-.063-.042-.045-.12-.1-.207-.177a1.03 1.03 0 0 1-.11-.116.723.723 0 0 1-.141-.374v-.01l-.003-.031s.007-.007.016-.02v.004l.004-.01c.052-.08.15-.379-.47-1.078a3.045 3.045 0 0 0-.924-.706c-.042-.472.15-.913.626-1.13l-.005.005.008-.006c.227-.102.517-.155.877-.136.69.036 1.22.36 1.59.845.514.712.738 1.78.575 2.856-.068.065-.055.075-.013.077a4.616 4.616 0 0 1-.055.273l-.027.015c-.123.074-.071.073 0 .092l-.006.02a3.98 3.98 0 0 1-.066.193.956.956 0 0 0-.087.03c-.135.053-.08.06-.012.09l.044.023a5.62 5.62 0 0 1-.101.237.746.746 0 0 0-.08.017c-.142.036-.088.05-.024.09a.52.52 0 0 1 .04.027 6.783 6.783 0 0 1-.107.214.76.76 0 0 0-.153.025c-.14.036-.087.05-.023.09.034.02.06.04.08.059a8.021 8.021 0 0 1-.094.165l-.023.036a.59.59 0 0 0-.206.024c-.142.036-.088.05-.024.09a.67.67 0 0 1 .104.079 8.61 8.61 0 0 1-.126.18.514.514 0 0 0-.23-.005c-.144.02-.092.04-.033.086.068.053.1.099.118.118l-.062.084c-.044-.058-.15-.124-.246-.193a.85.85 0 0 0-.29-.13c-.048 0-.2.268-1.017.197-.819-.071-.87-.15-.942-.15a.978.978 0 0 0-.228.059l-.034-.02a11.03 11.03 0 0 1-.972-.674c-.464-.37-.72-.647-.72-.647s.137-.125-.047-.284a3.32 3.32 0 0 0-.338-.277 2.157 2.157 0 0 0-.242-.166 3.57 3.57 0 0 1-.088-.127 11.485 11.485 0 0 1-.363-.628 10.455 10.455 0 0 1-.25-.527c-.16-.36-.27-.682-.346-.964a5.62 5.62 0 0 1-.148-.923 2.257 2.257 0 0 1 .004-.242.411.411 0 0 0 .158-.323.411.411 0 0 0-.358-.407c-.204-.427-.982-1.477-3.881-3.68l-.127-.097.005.004-.036-.027C7.067 6.599 7.644 7.587 7.795 8a.411.411 0 0 0-.027.033 18.69 18.69 0 0 0-.018-.013c.018 0 .025-.005.025-.005s-.672-.546-1.787-1.23c-1.118-.687-1.748-.849-1.88-.877l-.026-.006s.206.19.174.285c-.01.032-.168.022-.421.028a3.948 3.948 0 0 0-.725.07 4.1 4.1 0 0 0-1.567.63C.238 7.785 0 8.401 0 8.401s.55-.768 1.58-1.305c-.014.337-.047 1.97.445 4.12.53 2.32 1.53 4.487 1.614 4.665.004.178.016.272.016.272s.148-1.79.756-3.647c.175.283.758 1.117 2.075 2.096 1.628 1.21 2.37 1.536 2.4 1.548.001.157.005.24.005.24s.005-.1.018-.263a4.69 4.69 0 0 1 .552-.67 3.58 3.58 0 0 1 .54-.435c.032.11.063.204.093.276-.02-.097-.036-.19-.052-.282.107.01.538.066 1.206.393.343.168.609.395.798.595a.167.167 0 0 0-.014.006s.123.112.269.403a2.416 2.416 0 0 0-.73.084 2.913 2.913 0 0 0-.098-.19.484.484 0 0 0-.039-.134c-.027-.061-.095-.1-.164-.14a.397.397 0 0 0-.104-.073.225.225 0 0 1-.055-.073c-.084-.184-.798.012-.942.18-.175.204-.209.464-.14.608.021.045.07.082.138.11.002.22.137.75.404 1.133a4.964 4.964 0 0 1-.108-.666c-.009-.16 0-.274.015-.35.047.328.174.684.577 1.124-.248-.54-.22-.861-.195-1.143l.01-.044.005-.001c.036.263.142.534.482.963a.412.412 0 0 1-.014-.028l.014.021a1.626 1.626 0 0 1-.167-1.03l.008-.002c.046.03.091.07.134.126.128.172.188.349.212.47a.528.528 0 0 0 .067.383 18.33 18.33 0 0 1-.72.501c-.23.15-.49.313-.757.47-.14.08-.279.158-.414.23l-.135-.077h.002l-.008-.004c-.97-.559-1.69-.932-2.518-1.082-.93-.166-1.786.283-1.982 1.082a1.284 1.284 0 0 0 .552 1.38l.012.008c.013.01.026.017.04.026l.06.036h.002a2.1 2.1 0 0 0 .69.237l.028.005h.006a3.5 3.5 0 0 0 .412.044c.975.047 2.156-.408 3.323-.982.1.054.202.108.306.166 2.547 1.403 4.098 1.585 6.154.728-.502.151-1.208.356-2.094.344a.05.05 0 0 0-.02-.006v.006a5.46 5.46 0 0 1-.647-.05l-.03-.004v-.003a.267.267 0 0 0-.001.002 6.25 6.25 0 0 1-1.556-.436 7.792 7.792 0 0 1-.745-.362 57.065 57.065 0 0 1-1.006-.569c.348-.178.692-.363 1.026-.545.355-.189.672-.362.918-.5l.009-.004h.007s.083-.019.16-.043c.17-.052.41-.149.695-.283.028.117.095.215.195.253.235.091.407.027.522-.102l.018-.01.047-.037c.05-.03.107-.067.156-.09a1.14 1.14 0 0 1 .053-.022c.04-.01.078-.023.116-.037l.033-.01c-.145.297-.091.581-.091.581.043-.37.22-.608.392-.715.064-.027.13-.05.2-.067.064 0 .116.023.144.07.07.12.217.194.364.226.024.15-.045.404-.4.866l.09-.062.004-.003.072-.053c.143-.108.252-.21.334-.305a.97.97 0 0 0 .19-.305c.013.2-.042.507-.31 1.036 0 0 .317-.276.514-.63.006.191-.01.443-.063.785.345-.673.325-1.085.239-1.326l-.01-.036a.433.433 0 0 0-.01-.065l.042-.057c.118-.166-.048-.344-.154-.414-.06-.04-.2-.154-.454-.157-.225-.27-.51-.15-.958.145a1.297 1.297 0 0 1-.166.092.725.725 0 0 0-.055-.116c.16-.096.326-.2.494-.308.317-.207.553-.416.728-.615.51-.517.69-1.02 1.21-1.446h-.013l.06-.031c.854-.458 1.306-.547 1.338-.553l-.003.128.018-.125a1.795 1.795 0 0 1 .481.344 2.12 2.12 0 0 1 .362.487l.044.3s0-.116-.01-.33c.153-.151 1.02-1.043 1.724-2.466.694-1.404.944-2.523 1.017-2.924a18.188 18.188 0 0 1 .665 2.466s-.002-.133-.03-.374c.096-.336.515-1.872.626-3.756.1-1.68-.065-2.78-.14-3.173.648.536.995 1.306.995 1.306s-.04-.163-.188-.437l.02.027s-.236-.455-.644-.904a6.45 6.45 0 0 0-.157-.172c-.432-.46-.854-.617-1.17-.672a1.57 1.57 0 0 0-.308-.03h-.019c-.125-.003-.2.002-.207-.026-.02-.095.11-.285.11-.285s-.177.046-.554.33c-.23.167-.52.41-.853.76a13.689 13.689 0 0 0-.89.994l-.075.095a.203.203 0 0 0-.023-.017c.076-.33.362-1.117 1.788-3.111zM11.92 14.09a.351.351 0 0 1 .012.006zm-.263 2.606c.088.044.19.106.303.194h-.005a.484.484 0 0 0-.155.07.956.956 0 0 1-.126-.224zm-4.855 1.57c.132 0 .276.013.432.047l.02.005.017.004c.11.027.223.062.337.102l.057.021c.191.074.395.156.611.248.32.14.62.277.838.375l.183.088c-.22.106-.424.196-.577.261-1.014.416-1.83.536-2.338.391-.944-.269-.76-1.536.42-1.542z\"},\"child\":[]}]})(props);\n};\nexport function SiLmms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.714 0A1.71 1.71 0 000 1.714v20.572C0 23.236.765 24 1.714 24h20.572A1.71 1.71 0 0024 22.286V1.714A1.71 1.71 0 0022.286 0zM12 3l9 5.143v10.286l-3 1.714-3-1.714V15l3-1.714V9.857L12 6.43 6 9.857v3.429L9 15v3.429l-3 1.714-3-1.714V8.143Z\"},\"child\":[]}]})(props);\n};\nexport function SiLobsters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm5.414 4.02h7.86c.105 0 .15.014.15.134-.015.285 0 .556 0 .841v.12c-.21.015-.42 0-.615.03-.3.045-.6.089-.885.164-.525.165-.793.527-.853 1.022a5.09 5.09 0 0 0-.047.674v9.586c0 .405.046.808.091 1.198.045.435.33.72.736.87.345.135.718.167 1.078.182.945.03 1.877.014 2.792-.226 1.32-.33 2.204-1.156 2.64-2.46.134-.42.193-.855.298-1.29.015-.03.046-.09.076-.09h.99c-.03 1.8.03 3.599 0 5.399H5.25v-.944c0-.165 0-.149.15-.164.344-.03.689-.045 1.034-.105.69-.12 1.005-.467 1.11-1.172.03-.21.047-.434.047-.644V7.035c0-.27-.032-.54-.062-.795-.045-.465-.344-.749-.779-.914-.405-.15-.825-.166-1.245-.196h-.226v-.976c0-.105.03-.134.135-.134z\"},\"child\":[]}]})(props);\n};\nexport function SiLocal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.49 11.97 6.682-6.681a.638.638 0 0 0 .204-.476V.838a.7.7 0 0 0-.42-.624.68.68 0 0 0-.736.148L1.4 9.193c-.94.94-1.388 1.85-1.4 2.805s.434 1.85 1.36 2.774l8.858 8.86a.638.638 0 0 0 .476.203.39.39 0 0 0 .26-.082.68.68 0 0 0 .42-.626v-4a.692.692 0 0 0-.204-.476L4.489 11.97h.002zm-2.64 1.32c-.34-.45-.502-.872-.502-1.28.012-.57.34-1.182 1.007-1.85l7.66-7.662v2.057l-7.06 7.06A4.355 4.355 0 0 0 1.85 13.29zm8.166 8.205-6.451-6.45a.748.748 0 0 0-.094-.12c-.204-.207-.816-.819.094-1.961l6.45 6.449v2.082zM13.782.376a.668.668 0 0 0-.734-.15.68.68 0 0 0-.422.626v4.015c.004.18.076.35.204.476l6.681 6.68-6.681 6.682a.638.638 0 0 0-.204.476v3.96a.682.682 0 0 0 1.156.49l8.817-8.817c.94-.94 1.389-1.85 1.4-2.804.017-.952-.433-1.85-1.36-2.775L13.782.376zm.204 4.205V2.5l6.451 6.448c.026.044.06.084.094.122.204.204.816.817-.094 1.96l-6.449-6.45-.002.002zm7.647 9.267-7.66 7.661v-2.04l7.06-7.077a4.451 4.451 0 0 0 1.104-1.674c.34.45.504.872.504 1.28-.014.57-.34 1.17-1.008 1.85zm-4.626-1.294H6.9a.516.516 0 0 1-.516-.516v-.054c0-.286.23-.518.516-.518h10.11a.52.52 0 0 1 .518.518v.054a.526.526 0 0 1-.518.516h-.004zm-1.44-2.544v.056a.516.516 0 0 1-.52.516H8.842a.516.516 0 0 1-.518-.516v-.056c0-.285.232-.517.518-.517h6.205c.286 0 .516.232.516.517h.002zm-1.92-1.987v.054a.516.516 0 0 1-.517.518h-2.464a.516.516 0 0 1-.516-.518v-.054c0-.286.232-.516.516-.516h2.464a.508.508 0 0 1 .516.516zm-.517 7.443c.284 0 .516.232.516.518v.054a.516.516 0 0 1-.516.516h-2.464a.516.516 0 0 1-.516-.516v-.054c0-.286.232-.518.516-.518h2.464zm1.918-.912H8.843a.516.516 0 0 1-.518-.516v-.054a.52.52 0 0 1 .518-.518h6.205c.286 0 .516.232.516.518v.054a.516.516 0 0 1-.516.516z\"},\"child\":[]}]})(props);\n};\nexport function SiLodash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 20.253h24v2.542h-24zm18.061-15.041.223.031c1.933-.071 3.885 1.006 4.882 2.674.844 1.566.976 3.458.712 5.187-.204 1.657-1.149 3.234-2.644 4.027-2.177 1.139-5.085 1.017-7.017-.59-1.994-1.942-2.461-5.136-1.444-7.678.711-2.207 3-3.661 5.288-3.63zm.234 1.8h-.183c-1.424-.03-2.777.915-3.285 2.237-.732 1.831-.732 4.17.691 5.695 1.17 1.434 3.458 1.597 4.882.438 1.525-1.312 1.83-3.59 1.322-5.451-.275-1.648-1.78-2.929-3.458-2.929zm-18.295-5.807h2.237v14.847h8.848v1.831h-11.085z\"},\"child\":[]}]})(props);\n};\nexport function SiLogitech (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 5.098a1.35 1.35 0 0 1-1.35 1.35 1.35 1.35 0 0 1-1.352-1.35 1.35 1.35 0 0 1 1.351-1.351A1.35 1.35 0 0 1 24 5.097zM16.549 18.31a2.289 2.289 0 0 1-2.322-2.322H12.2c0 2.449 1.9 4.264 4.306 4.264s4.348-1.857 4.348-4.264H18.87c-.043 1.351-1.056 2.322-2.322 2.322zm5.108-2.828h1.984V7.377h-1.984zM0 15.483h1.984V4H0v11.483zm7.135-8.359c-2.449 0-4.307 1.858-4.307 4.264a4.27 4.27 0 0 0 4.307 4.306c2.406 0 4.306-1.858 4.306-4.264S9.583 7.124 7.135 7.124zm0 6.628c-1.31 0-2.322-1.013-2.322-2.364a2.289 2.289 0 0 1 2.322-2.322 2.289 2.289 0 0 1 2.321 2.322c0 1.309-.97 2.364-2.321 2.364zm13.635-4.77V7.377h-2.828c-.464-.21-.929-.253-1.393-.253-2.449 0-4.348 1.858-4.348 4.306 0 2.449 1.9 4.264 4.306 4.264s4.306-1.858 4.306-4.264c0-.844-.254-1.604-.676-2.195zm-4.221 4.77c-1.309 0-2.322-1.013-2.322-2.364a2.289 2.289 0 0 1 2.322-2.322 2.289 2.289 0 0 1 2.322 2.322c0 1.309-1.056 2.364-2.322 2.364Z\"},\"child\":[]}]})(props);\n};\nexport function SiLogitechg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.5664 0C10.9101 0 9.352.3143 7.8887.9414c-1.4794.6271-2.766 1.483-3.8594 2.5684-1.0935 1.0854-1.9549 2.359-2.582 3.8222-.6432 1.4473-.9575 3-.9414 4.6563 0 1.6563.3142 3.2164.9414 4.6797.8537 1.9702 2.6764 4.7711 6.4414 6.3672C9.352 23.6784 10.91 24 12.5664 24v-4.9922c-.9809 0-1.8977-.1848-2.75-.5547-1.6852-.7313-2.9903-2.0167-3.7383-3.7402-.7467-1.7207-.736-3.755 0-5.4512.737-1.6981 2.0318-2.9977 3.7383-3.7383.8523-.3698 1.7691-.5546 2.75-.5546Zm.17 9.8418v4.9434h5.8124v5.8144h4.9453V9.8418Z\"},\"child\":[]}]})(props);\n};\nexport function SiLogmein (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.373 0 12s5.372 12 12 12 12-5.373 12-12S18.628 0 12 0zM5.379 4.768h1.74c.147 0 .288.004.424.01a.376.376 0 01.303.152.684.684 0 01.11.364c.007.149.01.31.01.484v12.093c0 .176.004.37.01.587.006.216-.024.377-.091.485-.054.094-.174.17-.363.222a.754.754 0 01-.304.02 2.533 2.533 0 00-.323-.02H5.702c-.149 0-.286-.006-.415-.02a.572.572 0 01-.314-.12.48.48 0 01-.12-.304 4.164 4.164 0 01-.02-.424V6.203c0-.188-.004-.41-.01-.667-.007-.255.024-.437.09-.545a.595.595 0 01.264-.202c.04 0 .078-.004.11-.01a.536.536 0 01.092-.011zm10.527 3.687c.201-.008.386-.001.548.019.565.032 1.053.144 1.464.338.539.257.963.634 1.273 1.133.095.148.168.307.222.475.055.169.11.34.164.515.026.108.042.21.05.304.005.094.023.19.05.284 0 .08.007.134.02.16.027.19.04.385.04.587v5.661c0 .257-.004.503-.01.738-.008.237-.105.39-.294.456a.91.91 0 01-.283.04h-1.415c-.163 0-.307-.01-.435-.03a.418.418 0 01-.293-.173.613.613 0 01-.09-.313 8.825 8.825 0 01-.01-.416v-4.426c0-.5-.02-.961-.06-1.386-.042-.424-.163-.785-.365-1.082a1.427 1.427 0 00-.668-.51c-.186-.095-.488-.156-.827-.156-.397 0-.74.083-.912.207-.139.057-.26.124-.362.197-.433.31-.688.762-.77 1.354-.08.594-.123 1.261-.123 2.002v4.125c0 .121-.02.223-.06.304a.42.42 0 01-.323.262c-.149.027-.33.04-.545.04H10.88c-.15 0-.297-.006-.446-.02-.148-.013-.256-.06-.323-.142-.095-.12-.139-.294-.131-.525.006-.23.009-.446.009-.647V9.6c0-.147.004-.282.01-.403a.507.507 0 01.112-.305.24.24 0 01.132-.09c.06-.02.124-.037.191-.05h.102c.068-.014.138-.022.212-.022h1.06c.109 0 .214.005.316.012.1.006.19.023.271.05.095.04.16.1.193.181.03.072.03.147.054.24.056.23.118.486.291.508.08.01.159-.025.224-.09.031-.022.114-.11.14-.144.095-.114.28-.278.388-.346.078-.058.142-.1.202-.136.192-.134.483-.261.832-.36.014-.006.028-.012.042-.016.112-.036.225-.062.342-.077l.159-.029c.224-.038.442-.06.643-.068Z\"},\"child\":[]}]})(props);\n};\nexport function SiLogseq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.3 9.838c-2.677-1.366-5.467-1.56-8.316-.607-1.738.58-3.197 1.58-4.267 3.088-1.031 1.452-1.45 3.071-1.184 4.837.268 1.781 1.164 3.228 2.505 4.4C9.96 23.231 12.24 23.942 15.092 24c.41-.053 1.157-.103 1.883-.255 2.004-.418 3.754-1.325 5.08-2.915 1.621-1.942 2.108-4.148 1.272-6.562-.704-2.034-2.138-3.467-4.027-4.43ZM7.515 6.295c.507-2.162-.88-4.664-2.988-5.37-1.106-.37-2.156-.267-3.075.492C.61 2.114.294 3.064.271 4.146c.009.135.016.285.029.435.01.102.021.205.042.305.351 1.703 1.262 2.98 2.9 3.636 1.912.766 3.808-.244 4.273-2.227Zm4.064-1.146c1.075.377 2.152.31 3.22-.033.94-.3 1.755-.793 2.341-1.609.803-1.117.5-2.387-.717-3.027-.6-.317-1.246-.438-1.927-.48-.47.076-.95.117-1.41.234-1.068.27-2.002.781-2.653 1.7-.495.697-.64 1.45-.174 2.227.303.504.779.799 1.32.988Z\"},\"child\":[]}]})(props);\n};\nexport function SiLogstash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.745 24h8.291v-9.164h-8.29zm-2.618 0h.437v-9.164h-9.6A9.163 9.163 0 0011.127 24m.438-9.164h-9.6V0h.873a8.727 8.727 0 018.727 8.727z\"},\"child\":[]}]})(props);\n};\nexport function SiLooker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9475 0c-1.1598.0021-2.0982.944-2.096 2.1038a2.1 2.1 0 00.356 1.166l.895-.8959a.884.884 0 11.565.564l-.895.895c.9593.6478 2.2621.3953 2.91-.564.6478-.9593.3953-2.262-.564-2.91A2.096 2.096 0 0011.9475 0zm-.835 6.1128a3.2629 3.2629 0 00-.653-1.965l-1.164 1.162a1.667 1.667 0 01-.318 2.012l.632 1.5449a3.2819 3.2819 0 001.503-2.754zm-3.2499 1.666h-.03c-.9217.0009-1.6697-.7455-1.6707-1.6673-.001-.9217.7454-1.6697 1.6672-1.6707a1.669 1.669 0 01.9195.275l1.152-1.152c-1.4069-1.141-3.4724-.9257-4.6135.4811s-.9257 3.4723.481 4.6135a3.2799 3.2799 0 002.7275.6652l-.633-1.5439v-.001zm4.1279 1.3359c-.728 0-1.452.106-2.15.315l.922 2.2519c2.6872-.6819 5.4184.9438 6.1002 3.631.6818 2.6873-.9439 5.4184-3.6311 6.1002s-5.4184-.9439-6.1002-3.631c-.5682-2.2394.4655-4.5774 2.5041-5.6643l-.91-2.2449c-3.6908 1.808-5.2173 6.2657-3.4093 9.9567l.0005.001c1.808 3.6909 6.2657 5.2173 9.9567 3.4093l.001-.0005c3.6913-1.8071 5.2187-6.2645 3.4116-9.9558a7.4417 7.4417 0 00-6.6865-4.1696h-.008l-.001.001z\"},\"child\":[]}]})(props);\n};\nexport function SiLoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.665h-7.018l6.078-3.509-1.335-2.312-6.078 3.509 3.508-6.077L16.843.94l-3.508 6.077V0h-2.67v7.018L7.156.94 4.844 2.275l3.509 6.077-6.078-3.508L.94 7.156l6.078 3.509H0v2.67h7.017L.94 16.844l1.335 2.313 6.077-3.508-3.509 6.077 2.312 1.335 3.509-6.078V24h2.67v-7.017l3.508 6.077 2.312-1.335-3.509-6.078 6.078 3.509 1.335-2.313-6.077-3.508h7.017v-2.67H24zm-12 4.966a3.645 3.645 0 1 1 0-7.29 3.645 3.645 0 0 1 0 7.29z\"},\"child\":[]}]})(props);\n};\nexport function SiLoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,0C5.371,0,0,5.371,0,12s5.371,12,12,12s12-5.371,12-12C24.011,5.371,18.629,0,12,0z M12.7,22.611 C6.837,22.611,2.089,17.863,2.089,12S6.837,1.389,12.7,1.389S23.311,6.137,23.311,12S18.563,22.611,12.7,22.611z M7.045,3.413 c-4.747,2.735-6.366,8.795-3.632,13.542c2.735,4.737,8.806,6.366,13.542,3.632c4.747-2.735,6.366-8.806,3.632-13.542 C17.852,2.297,11.792,0.678,7.045,3.413z M16.868,19.034c-4.08,2.352-9.287,0.952-11.639-3.118 c-2.352-4.08-0.952-9.287,3.118-11.639c4.08-2.352,9.287-0.952,11.639,3.118C22.337,11.464,20.948,16.682,16.868,19.034z M5.229,8.084c-2.166,3.741-0.875,8.532,2.866,10.687c3.741,2.166,8.532,0.875,10.698-2.866s0.875-8.532-2.866-10.687 C12.175,3.063,7.384,4.343,5.229,8.084z M18.071,14.702c-1.827,3.161-5.863,4.244-9.025,2.417 c-3.161-1.827-4.244-5.863-2.418-9.025s5.863-4.244,9.025-2.418C18.815,7.493,19.898,11.541,18.071,14.702z M6.093,12 c0,3.271,2.647,5.918,5.918,5.918s5.918-2.647,5.918-5.918s-2.647-5.918-5.918-5.918C8.74,6.082,6.093,8.729,6.093,12z M16.704,11.3c0,2.593-2.1,4.693-4.693,4.693s-4.693-2.1-4.693-4.693s2.1-4.693,4.693-4.693C14.593,6.607,16.704,8.707,16.704,11.3 z\"},\"child\":[]}]})(props);\n};\nexport function SiLoopback (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.333 18.413 2.512-1.615 3.179 1.814 3.209-1.876 2.656 1.515-5.849 3.418-5.707-3.256ZM5.273 6.239l6.687-3.907 6.73 3.839.022 6.755-2.654-1.513-.011-3.701-4.071-2.322-4.05 2.367.011 3.698-.903.526-1.739 1.118-.022-6.86Zm3.608 2.463 1.913 1.089-1.906 1.11-.007-2.199Zm4.337 5.514 2.634-1.544 3.271 1.862 2.221-1.296-.013-2.571-1.677-.957-.01-3.054 4.355 2.485.001 5.611-4.859 2.841-5.923-3.377Zm-13.189.661L0 9.249l4.322-2.525.009 3.061-1.675.979.013 2.57 2.234 1.274L15.098 8.66l.009 3.062-10.189 5.944-4.889-2.789Z\"},\"child\":[]}]})(props);\n};\nexport function SiLootcrate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.895 11.048a.116.116 0 0 0 .031.201c1.621.579 2.393.66 2.393 2.081v4.011c0 .716-.051.88-.531 1.254-.877.683-6.185 4.747-6.392 4.913-.774.62-1.169.556-2.054.339a515.44 515.44 0 0 1-9.945-2.577c-1.746-.47-1.701-2.064-1.701-3.203 0-3.945-.015-7.468-.015-11.202 0-1.186.049-1.222.95-1.881.83-.607 4.296-3.135 6.153-4.499.553-.406.828-.607 1.618-.406 1.616.41 6.664 1.649 9.382 2.339 2.083.529 2.535.893 2.535 2.326V8.38c0 .465-.007.638-.408.981-.202.173-1.348 1.14-2.016 1.687Zm1.624-2.556a.113.113 0 0 0 .141-.112c.001-1.414.011-2.495.011-3.666 0-.622-.35-1.137-1.121-1.343C16.501 2.29 10.486.866 10.191.778c-.197-.059-.322.108-.322.199-.001 4.294.029 7.832.029 11.854 0 .741.408 1.525 1.292 1.765 3.582.973 6.578 1.655 10.331 2.667a.115.115 0 0 0 .143-.112c.001-.848.014-1.405.014-1.95 0-2.27.279-2.679-1.57-3.194-2.198-.612-5.306-1.378-5.554-1.441-.485-.124-.548-.266-.548-.591 0-.122-.011-2.346-.003-2.869.002-.157.006-.31.157-.397.134-.077.264-.046.664.053.448.111 4.598 1.186 6.695 1.73Zm-7.65 14.735a.114.114 0 0 0 .142-.111c.001-1.185.017-2.484.017-3.352 0-1.475.182-1.334-1.064-1.639-1.474-.36-4.433-1.146-5.967-1.552-.355-.094-.459-.424-.459-.998 0-1.726-.006-4.575-.006-6.577 0-1.834.193-1.599-.703-1.832-.565-.146-2.468-.637-3.313-.828-.144-.032-.225.085-.225.224-.003 3.939.053 8.211.053 11.994 0 1.228.439 1.815 1.321 2.051 3.589.963 6.446 1.652 10.204 2.62Z\"},\"child\":[]}]})(props);\n};\nexport function SiLospec (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.23 0v24h15.541v-8.4004h-7.1719v3.5996H11.402V0z\"},\"child\":[]}]})(props);\n};\nexport function SiLotpolishairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3754 0 0 5.3754 0 12s5.3754 12 12 12 12-5.3754 12-12S18.6246 0 12 0zM.7445 12C.7445 5.7792 5.7792.7445 12 .7445c1.2871 0 2.511.2271 3.6593.6183L9.388 13.9306 1.2745 15.407A11.256 11.256 0 0 1 .7445 12zM12 23.2555c-4.9968 0-9.2366-3.2682-10.7003-7.7728h7.836l7.0788 6.9526c-1.2997.5174-2.7256.8202-4.2145.8202zm4.2271-.8328a2.246 2.246 0 0 0 .6309-1.5647c0-.7066-.328-1.3501-.8454-1.7539l-4.7319-3.6214h11.4195c-1.0346 3.1545-3.4194 5.7034-6.4731 6.94zm5.1609-8.0883h-2.7003l.2019.2902h.9211l.4669.5678h-5.0851c0-1.0094-.8202-1.8422-1.8423-1.8422-.101 0-.2019.0126-.2902.0252l-1.8297.2776 5.4006-8.9842c.2146-.3533.3281-.7571.3281-1.1861 0-.9085-.5047-1.7161-1.2492-2.0946C20.1009 2.9148 23.2555 7.0788 23.2555 12c0 1.1104-.164 2.1829-.4669 3.1924a1.7505 1.7505 0 0 1-1.4006-.858z\"},\"child\":[]}]})(props);\n};\nexport function SiLtspice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.3267 3.4848c-.7965.627-.9744 1.6212-1.1644 3.3173-.3653 3.257-.641 5.1982-1.0473 8.658-.199 1.7013.9756 1.9015 2.3646 1.8861h2.8841c.2604.002.3525.1229.3193.3807-.1241.9654-.2579 2.7882-1.19 2.7882L0 20.4933s2.8304-1.032 3.165-3.3723L4.5047 6.234c.2086-1.357 1.2885-2.7492 2.634-2.7492h2.188zm5.5567 17.0306c1.3454 0 2.4254-1.3922 2.634-2.7491L18.857 6.8792c.3346-2.3404 3.165-3.3723 3.165-3.3723L10.529 3.485c-.9321 0-1.0658 1.8228-1.19 2.7882-.0332.2578.0589.3787.3193.3806h2.8841c1.389-.0153 2.5636.185 2.3646 1.8861-.4062 3.46-.682 5.401-1.0473 8.6581-.19 1.696-.3679 2.6903-1.1644 3.3173h2.188zM23.202 6.6528c.259.0006.4964-.2092.5284-.4658l.2662-2.2309c.0313-.2565-.1549-.4715-.4133-.4715h-.8797c-1.0883 0-2.2022 1.7952-2.2559 2.696-.0339.2585.151.4696.4114.4722h2.3429z\"},\"child\":[]}]})(props);\n};\nexport function SiLua (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.38 10.377l-.272-.037c-.048.344-.082.695-.101 1.041l.275.016c.018-.34.051-.682.098-1.02zM4.136 3.289l-.184-.205c-.258.232-.509.48-.746.734l.202.188c.231-.248.476-.49.728-.717zM5.769 2.059l-.146-.235c-.296.186-.586.385-.863.594l.166.219c.27-.203.554-.399.843-.578zM1.824 18.369c.185.297.384.586.593.863l.22-.164c-.205-.271-.399-.555-.58-.844l-.233.145zM1.127 16.402l-.255.104c.129.318.274.635.431.943l.005.01.245-.125-.005-.01c-.153-.301-.295-.611-.421-.922zM.298 9.309l.269.063c.076-.332.168-.664.272-.986l-.261-.087c-.108.332-.202.672-.28 1.01zM.274 12.42l-.275.01c.012.348.04.699.083 1.043l.273-.033c-.042-.336-.069-.68-.081-1.02zM.256 14.506c.073.34.162.682.264 1.014l.263-.08c-.1-.326-.187-.658-.258-.99l-.269.056zM11.573.275L11.563 0c-.348.012-.699.039-1.044.082l.034.273c.338-.041.68-.068 1.02-.08zM23.221 8.566c.1.326.186.66.256.992l.27-.059c-.072-.34-.16-.682-.262-1.014l-.264.081zM17.621 1.389c-.309-.164-.627-.314-.947-.449l-.107.252c.314.133.625.281.926.439l.128-.242zM15.693.572c-.332-.105-.67-.199-1.01-.277l-.063.268c.332.076.664.168.988.273l.085-.264zM6.674 1.545c.298-.15.606-.291.916-.418L7.486.873c-.317.127-.632.272-.937.428l-.015.008.125.244.015-.008zM23.727 11.588l.275-.01a11.797 11.797 0 0 0-.082-1.045l-.273.033c.041.338.068.682.08 1.022zM13.654.105c-.346-.047-.696-.08-1.043-.098l-.014.273c.339.018.683.051 1.019.098l.038-.273zM9.544.527l-.058-.27c-.34.072-.681.16-1.014.264l.081.262c.325-.099.659-.185.991-.256zM1.921 5.469l.231.15c.185-.285.384-.566.592-.834l-.217-.17c-.213.276-.417.563-.606.854zM.943 7.318l.253.107c.132-.313.28-.625.439-.924l-.243-.128c-.163.307-.314.625-.449.945zM18.223 21.943l.145.234c.295-.186.586-.385.863-.594l-.164-.219c-.272.204-.557.4-.844.579zM21.248 19.219l.217.17c.215-.273.418-.561.607-.854l-.23-.148c-.186.285-.385.564-.594.832zM19.855 20.715l.184.203c.258-.23.51-.479.746-.732l-.201-.188c-.23.248-.477.488-.729.717zM22.359 17.504l.244.129c.162-.307.314-.625.449-.945l-.254-.107a11.27 11.27 0 0 1-.439.923zM23.617 13.629l.273.039c.049-.346.082-.695.102-1.043l-.275-.014c-.018.338-.051.682-.1 1.018zM23.156 15.621l.264.086c.107-.332.201-.67.279-1.01l-.268-.063c-.077.333-.169.665-.275.987zM22.453 6.672c.154.303.297.617.424.932l.256-.104c-.131-.322-.277-.643-.436-.953l-.244.125zM8.296 23.418c.331.107.67.201 1.009.279l.062-.268c-.331-.076-.663-.168-.986-.273l-.085.262zM10.335 23.889c.345.049.696.082 1.043.102l.014-.275c-.339-.018-.682-.051-1.019-.098l-.038.271zM17.326 22.449c-.303.154-.613.297-.926.424l.104.256c.318-.131.639-.275.947-.434l.004-.002-.123-.246-.006.002zM4.613 21.467c.274.213.562.418.854.605l.149-.23c-.285-.184-.565-.385-.833-.592l-.17.217zM12.417 23.725l.009.275c.348-.014.699-.041 1.045-.084l-.035-.271c-.336.041-.68.068-1.019.08zM6.37 22.604c.307.162.625.314.946.449l.107-.254c-.313-.133-.624-.279-.924-.439l-.129.244zM3.083 20.041c.233.258.48.51.734.746l.188-.201c-.249-.23-.49-.477-.717-.729l-.205.184zM14.445 23.475l.059.27c.34-.074.68-.162 1.014-.266l-.082-.262c-.325.099-.659.185-.991.258zM21.18.129A2.689 2.689 0 1 0 21.18 5.507 2.689 2.689 0 1 0 21.18.129zM15.324 15.447c0 .471.314.66.852.66.67 0 1.297-.396 1.297-1.016v-.645c-.23.107-.379.141-1.107.24-.735.109-1.042.306-1.042.761zM12 2.818c-5.07 0-9.18 4.109-9.18 9.18 0 5.068 4.11 9.18 9.18 9.18 5.07 0 9.18-4.111 9.18-9.18 0-5.07-4.11-9.18-9.18-9.18zm-2.487 13.77H5.771v-6.023h.769v5.346h2.974v.677zm4.13 0h-.619v-.67c-.405.57-.811.793-1.446.793-.843 0-1.38-.463-1.38-1.182v-3.271h.686v3c0 .52.347.85.893.85.719 0 1.181-.578 1.181-1.461v-2.389h.686v4.33zm-.53-8.393c0-1.484 1.205-2.689 2.689-2.689s2.688 1.205 2.688 2.689-1.203 2.688-2.688 2.688-2.689-1.203-2.689-2.688zm5.567 7.856v.52c-.223.059-.33.074-.471.074-.34 0-.637-.238-.711-.57-.381.406-.918.637-1.471.637-.877 0-1.422-.463-1.422-1.248 0-.527.256-.916.76-1.123.266-.107.414-.141 1.389-.264.545-.066.719-.191.719-.48v-.182c0-.412-.348-.645-.967-.645-.645 0-.957.24-1.016.77h-.693c.041-1 .686-1.404 1.734-1.404 1.066 0 1.627.412 1.627 1.182v2.412c0 .215.133.338.373.338.041-.002.074-.002.149-.017z\"},\"child\":[]}]})(props);\n};\nexport function SiLubuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0m1.287 4.723q.316-.031.63.004a3.17 3.17 0 0 1 2.41 1.642l5.665.781h-6.458a2.58 2.58 0 0 0-1.66-.955 2.57 2.57 0 0 0-1.371.192c-.43.19-.8.495-1.068.88-.268.387-.424.84-.451 1.31-.026.468.078.935.3 1.349a3.13 3.13 0 0 1-.795-1.68 3.13 3.13 0 0 1 .305-1.832 3.14 3.14 0 0 1 1.299-1.332 3.1 3.1 0 0 1 1.195-.36m-9.88 1.09 8.673 6.232-7.154-4.012a3.6 3.6 0 0 0-.072 2.022 3.57 3.57 0 0 0 1.998 2.34l4.748 1.334-6.002-.983c.061.58.275 1.133.619 1.604a3.33 3.33 0 0 0 2.652 1.33 3.95 3.95 0 0 1-3.062-.451 3.9 3.9 0 0 1-1.432-1.563 3.9 3.9 0 0 1-.398-2.08l1.32.371a4.7 4.7 0 0 1-1.246-.986 4.7 4.7 0 0 1-1.111-2.48 4.67 4.67 0 0 1 .466-2.678m11.667 3.132q-.01.138-.008.278c.007 1.143.535 2.21 1.057 3.226.523 1.017 1.064 2.076 1.094 3.22.024.95-.32 1.895-.899 2.651-.578.756-1.377 1.328-2.255 1.696a6.5 6.5 0 0 1-3.91.338l-1 2.373v-3.327a6.23 6.23 0 0 0 3.665-.31c.7-.285 1.352-.707 1.862-1.264s.875-1.255.986-2.002c.15-1-.151-2.007-.447-2.974s-.595-1.977-.436-2.975a3.3 3.3 0 0 1 .291-.93\"},\"child\":[]}]})(props);\n};\nexport function SiLucia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.382 20.714 12 0 3.618 20.714 2.288 24h19.423zM12 13.61l-5.73 7.058 1.288-3.184L12 6.505l4.442 10.978 1.289 3.184z\"},\"child\":[]}]})(props);\n};\nexport function SiLucid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0 3.694 4.8V24L12 19.2Zm0 19.2v4.502h8.305V14.4Z\"},\"child\":[]}]})(props);\n};\nexport function SiLucide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.483 1.123a1.09 1.09 0 0 0-.752.362 1.09 1.09 0 0 0 .088 1.54 11.956 11.956 0 0 1 4 8.946 7.62 7.62 0 0 1-7.637 7.636 7.62 7.62 0 0 1-7.637-7.636 3.255 3.255 0 0 1 3.273-3.273c1.82 0 3.273 1.45 3.273 3.273a1.09 1.09 0 0 0 1.09 1.09 1.09 1.09 0 0 0 1.092-1.09c0-3-2.455-5.455-5.455-5.455s-5.454 2.455-5.454 5.455c0 5.408 4.408 9.818 9.818 9.818 5.41 0 9.818-4.41 9.818-9.818A14.16 14.16 0 0 0 19.272 1.4a1.09 1.09 0 0 0-.789-.277ZM9.818 2.15C4.408 2.151 0 6.561 0 11.97a14.16 14.16 0 0 0 4.8 10.637 1.09 1.09 0 0 0 1.54-.096 1.09 1.09 0 0 0-.095-1.54 11.957 11.957 0 0 1-4.063-9 7.62 7.62 0 0 1 7.636-7.637 7.62 7.62 0 0 1 7.637 7.636 3.256 3.256 0 0 1-3.273 3.273 3.256 3.256 0 0 1-3.273-3.273 1.09 1.09 0 0 0-1.09-1.09 1.09 1.09 0 0 0-1.092 1.09c0 3 2.455 5.455 5.455 5.455s5.454-2.455 5.454-5.455c0-5.408-4.408-9.818-9.818-9.818z\"},\"child\":[]}]})(props);\n};\nexport function SiLudwig (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0Zm13.714 10.286V3.429h-3.428v10.285H20.57V3.43h-3.428v6.857h-3.429Zm-6.857 6.857V3.429H3.43V20.57h17.14v-3.428H6.857Z\"},\"child\":[]}]})(props);\n};\nexport function SiLufthansa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24,12c0-6.648-5.352-12-12-12C5.376,0,0,5.352,0,12c0,6.624,5.376,12,12,12C18.648,24,24,18.624,24,12z M23.136,12c0,6.12-4.992,11.136-11.136,11.136C5.88,23.136,0.864,18.121,0.864,12C0.864,5.856,5.88,0.864,12,0.864 C18.144,0.864,23.136,5.856,23.136,12z M16.248,11.28c-0.264,0-0.6,0-1.032,0.024l0.312-0.528h0.504c1.8,0,3.144,0.096,4.368,0.312 l0.552-0.528c-1.368-0.24-3.024-0.384-4.704-0.384H15.84l0.264-0.504h0.456c1.752,0,3.336,0.144,4.872,0.432l0.576-0.552 c-1.728-0.336-3.576-0.503-5.568-0.503c-0.849,0.003-1.698,0.043-2.544,0.12c-0.96,2.063-2.496,3.264-4.224,3.24 C9,12.384,8.159,12.097,7.08,11.52l-1.008-0.576l0.312-0.288l2.328,1.008l0.504-0.384L4.512,9.144l-0.72,0.552L2.112,9l0.024,0.696 c2.256,1.032,3.192,1.608,5.568,3.312c3.096,2.208,5.856,3.408,9.696,4.176l1.008-0.96h-0.24c-2.544,0-4.824-0.84-6.144-2.256 c1.104-0.672,2.471-0.983,4.368-0.983c0.504,0,1.224,0.047,1.896,0.119l0.576-0.552c-0.9-0.11-1.805-0.166-2.712-0.168 c-0.609-0.001-1.217,0.023-1.824,0.072l0.432-0.528c0.511-0.03,1.024-0.046,1.536-0.048c1.272,0,2.112,0.048,3.072,0.192 l0.552-0.528C18.912,11.377,17.52,11.28,16.248,11.28z\"},\"child\":[]}]})(props);\n};\nexport function SiLumen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.649 0a.75.75 0 00-.342.072l-4.878 2.23a.75.751 0 10.624 1.366l4.878-2.23A.75.75 0 0011.649 0zm5.624.354a.75.75 0 00-.341.074L6.425 5.306a.75.75 0 00.632 1.362L17.563 1.79a.75.75 0 00-.29-1.436zm0 3.002a.75.75 0 00-.341.074L6.425 8.31a.75.75 0 00.632 1.362l10.506-4.88a.75.75 0 00-.29-1.436zm0 3.002a.75.75 0 00-.341.074L6.425 11.311a.75.75 0 00.632 1.361l10.506-4.878a.75.75 0 00-.29-1.436zm.009 3.003a.75.75 0 00-.342.07l-3.753 1.688a.75.75 0 00-.442.685v3.518a.75.75 0 00.001.047h-1.503a.75.75 0 000-.047v-2.58a.75.75 0 00-.761-.761.75.75 0 00-.74.761v2.58a.75.75 0 00.002.047h-.94a.461.461 0 00-.47.555l.19 1.14a.687.687 0 00.656.557h2.28l-2.537.476a.375.375 0 10.139.737l6.003-1.126a.375.375 0 00.307-.41.625.625 0 00.092-.232l.19-1.142a.461.461 0 00-.47-.555h-.94a.75.75 0 00.002-.047V12.29l3.31-1.49a.75.75 0 00-.274-1.438zm-2.292 9.385a.375.375 0 00-.063.007l-6.004 1.126a.375.375 0 10.139.737l6.003-1.125a.375.375 0 00-.075-.745zm0 1.876a.375.375 0 00-.063.008l-6.004 1.125a.375.375 0 10.139.737l6.003-1.125a.375.375 0 00-.075-.745zm-.743 1.876a.375.375 0 00-.064.006l-4.471.751a.375.375 0 10.124.74l4.472-.75a.375.375 0 00-.061-.747z\"},\"child\":[]}]})(props);\n};\nexport function SiLunacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.031 6h-6v12h11.996v-6l-5.996 5.996Zm6.563 2.309a4.013 4.013 0 0 1-2.371-2.375 4.03 4.03 0 0 1-2.375 2.375 4.04 4.04 0 0 1 2.375 2.375 4.013 4.013 0 0 1 2.37-2.375ZM0 9.602c0-3.364 0-5.043.652-6.325A6.044 6.044 0 0 1 3.277.652C4.56 0 6.238 0 9.602 0h4.796c3.364 0 5.043 0 6.325.652a6.044 6.044 0 0 1 2.625 2.625C24 4.56 24 6.238 24 9.602v4.796c0 3.364 0 5.043-.652 6.325a6.044 6.044 0 0 1-2.625 2.625C19.44 24 17.762 24 14.398 24H9.602c-3.364 0-5.043 0-6.325-.652a6.044 6.044 0 0 1-2.625-2.625C0 19.44 0 17.762 0 14.398Z\"},\"child\":[]}]})(props);\n};\nexport function SiLutris (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.231 18.89.001-.002c-1.293 3.243-5.218 5.232-9.447 5.105C5.3 23.993 0 18.48 0 11.906S5.276.001 11.785.001c1.793 0 3.493.406 5.015 1.13.081-.177.271-.544.451-.557.238-.017.374.137.526.309.154.172.46.429.46.429s1.393-.481 2.955.377c1.563.858 1.783 1.116 2.09 1.716.152.301.195.829.2 1.282a.796.796 0 0 0-.07-.003c-.496 0-.96.455-.96 1.08 0 .263.082.496.215.678l-.01.007a1.505 1.505 0 0 0-.132.01 18.704 18.704 0 0 0-.389-.142 2.53 2.53 0 0 1-.82-.472 1.402 1.402 0 0 0-1.196-2.112c-.383 0-.73.156-.982.41-.472-.271-1.174-.482-2.527-.565l-.407-.011c-2.282.012-3.611.279-5.979 1.301-.603.283-1.206.615-1.785 1.001-.423.3-.639.67-.709 1.137a1.326 1.326 0 0 0 1.23 1.373h.042c1.27.06 2.039 1.99 2.063 2.497.004.05.004.023.003.08-.032.727-.37 1.267-1.088 1.246a1.231 1.231 0 0 1-.976-.494c-.063-.077-.103-.172-.159-.254-.666-1.081-1.732-1.36-2.771-1.523-.438-.068-1.073-.122-1.31.25a8.28 8.28 0 0 0-.577 3.063c-.02 5.036 4.041 9.118 9.026 9.118 2.575 0 5.349-.952 6.993-2.7l-.035.03c-1.772 1.473-4.66 1.941-6.027 1.941-4.302 0-7.818-3.232-7.818-7.578 0-1.276.288-2.396.814-3.36.495.183.947.483 1.28 1.022a.24.24 0 0 0 .013.021c.064.092.111.197.182.284.424.524.881.658 1.342.68h.01c.43.013.768-.12 1.024-.342.347-.3.55-.79.577-1.382v-.014c.002-.085 0-.053-.004-.112-.024-.376-.333-1.318-.906-2.027-.266-.331-.587-.607-.95-.774l.12-.074c.756-.457 2.364-.977 4.592-.638 1.13.173 2.055.419 3.483.879 1.657.534 2.579 1.279 3.854 1.427.15.017.301.018.45.003.41 1.129.634 2.35.634 3.621 0 2.068-.59 3.995-1.611 5.62zm1.947-12.274s-.115.201-.364.322c-.103.05-.282-.075-.45.1-.359.726.516 1.332.923 1.315.408-.017.73-.432.712-.793-.017-.558-.82-.944-.82-.944zm.234-1.432c.255 0 .462.26.462.58 0 .32-.207.58-.462.58-.254 0-.46-.26-.46-.58 0-.32.206-.58.46-.58zm-3.292-.951c.492 0 .89.403.89.9a.895.895 0 0 1-.89.898.895.895 0 0 1-.89-.899c0-.496.399-.899.89-.899z\"},\"child\":[]}]})(props);\n};\nexport function SiLvgl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.23 16.615h5.54c.51 0 .922.412.922.923v5.539a.921.921 0 0 1-.923.923H9.231a.921.921 0 0 1-.923-.923v-5.539c0-.511.411-.923.923-.923zM0 17.538c0-.51.413-.923.923-.923h5.539c.51 0 .923.413.923.923v5.539c0 .51-.414.923-.923.923H2.769A2.77 2.77 0 0 1 0 21.23zm.923-9.23h5.539c.511 0 .923.411.923.922v5.539a.921.921 0 0 1-.923.923H.923A.921.921 0 0 1 0 14.769V9.23c0-.511.412-.923.923-.923zM2.77 0A2.77 2.77 0 0 0 0 2.769V6.46c0 .51.413.923.923.923h5.539c1.02 0 1.846.827 1.846 1.846v5.539c0 .51.413.923.923.923h5.538c1.02 0 1.847.826 1.847 1.846v5.539c0 .51.413.923.923.923h3.692A2.77 2.77 0 0 0 24 21.23V2.77a2.77 2.77 0 0 0-2.77-2.77zm18 1.846a1.385 1.385 0 1 1 0 2.769 1.385 1.385 0 0 1 0-2.77z\"},\"child\":[]}]})(props);\n};\nexport function SiLydia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm5.895 17.611a.421.421 0 01-.168.035h-1.155a.608.608 0 01-.56-.377l-4-9.613-3.991 9.607a.61.61 0 01-.56.377H6.273a.42.42 0 01-.385-.59L10.91 5.575a.793.793 0 01.726-.475h.748a.792.792 0 01.726.48l5.003 11.482a.42.42 0 01-.218.549z\"},\"child\":[]}]})(props);\n};\nexport function SiLyft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.38 15.883c.036.042.125.135.125.135s-.094.059-.152.086a3.046 3.046 0 0 1-1.28.286C1.593 16.39 0 15.29 0 12.878v-8.78h3.512v9.365c0 .95.306 1.781.867 2.42zM24 11.122V7.61h-1.253c-.524-2.76-3.425-4.574-6.341-3.484-1.624.607-2.943 2.548-2.943 4.282v7.979a1608.8 1608.8 0 0 0 .153 0 3.495 3.495 0 0 0 2.38-1.077c.632-.658.98-1.522.98-2.432h1.463V9.366h-1.463V8.4c0-.375.198-.726.526-.909.9-.5 1.815.143 1.815.996v3.22c0 1.273.48 2.456 1.354 3.329a4.666 4.666 0 0 0 3.178 1.351H24v-3.51a1.17 1.17 0 0 1-1.17-1.17v-.586H24zm-14.927 1.17a.585.585 0 0 1-1.17 0V7.61H4.39v5.853a2.928 2.928 0 0 0 4.83 2.224c-.055.433-.294.792-.69 1.04-.373.234-.857.357-1.402.357a3.83 3.83 0 0 1-1.65-.382s-.093-.044-.21-.11v3.119a6.65 6.65 0 0 0 2.468.484c1.312 0 2.51-.41 3.371-1.155.967-.836 1.478-2.056 1.478-3.528V7.61H9.073v4.683z\"},\"child\":[]}]})(props);\n};\nexport function SiMaas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.383 0 0 5.384 0 12s5.383 12 12 12 12-5.384 12-12S18.617 0 12 0zM6.343 6.257h11.314c.284 0 .514.23.514.515v.685c0 .285-.23.515-.514.515H6.343a.515.515 0 0 1-.515-.515v-.685c0-.284.23-.515.515-.515zm0 3.257h11.314c.284 0 .514.23.514.515v.685c0 .285-.23.515-.514.515H6.343a.515.515 0 0 1-.515-.515v-.685c0-.284.23-.515.515-.515zm0 3.257h11.314c.284 0 .514.23.514.515v.685c0 .285-.23.515-.514.515H6.343a.515.515 0 0 1-.514-.515v-.685c0-.284.23-.515.514-.515zm0 3.258h11.314c.284 0 .514.23.514.513v.687c0 .284-.23.515-.514.515H6.343a.515.515 0 0 1-.514-.515v-.687c0-.284.23-.513.514-.513z\"},\"child\":[]}]})(props);\n};\nexport function SiMacos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 14.727h.941v-2.453c0-.484.318-.835.771-.835.439 0 .71.276.71.722v2.566h.915V12.25c0-.48.31-.812.764-.812.46 0 .718.28.718.77v2.518h.94v-2.748c0-.801-.517-1.334-1.307-1.334-.578 0-1.054.31-1.247.805h-.023c-.147-.514-.552-.805-1.118-.805-.545 0-.968.306-1.142.771H.903v-.695H0v4.006zm7.82-.646c-.408 0-.68-.208-.68-.537 0-.318.26-.522.714-.552l.926-.057v.307c0 .483-.427.839-.96.839zm-.284.71c.514 0 1.017-.268 1.248-.703h.018v.639h.908v-2.76c0-.804-.647-1.33-1.64-1.33-1.021 0-1.66.537-1.701 1.285h.873c.06-.332.344-.548.79-.548.464 0 .748.242.748.662v.287l-1.058.06c-.976.061-1.524.488-1.524 1.199 0 .721.564 1.209 1.338 1.209zm6.305-2.642c-.065-.843-.719-1.512-1.777-1.512-1.164 0-1.92.805-1.92 2.087 0 1.3.756 2.082 1.928 2.082 1.005 0 1.697-.59 1.772-1.485h-.888c-.087.453-.397.725-.873.725-.597 0-.982-.483-.982-1.322 0-.824.381-1.323.975-1.323.502 0 .8.321.876.748h.889zm2.906-2.967c-1.591 0-2.589 1.085-2.589 2.82 0 1.735.998 2.816 2.59 2.816 1.586 0 2.584-1.081 2.584-2.816 0-1.735-.997-2.82-2.585-2.82zm0 .832c.971 0 1.591.77 1.591 1.988 0 1.213-.62 1.984-1.59 1.984-.976 0-1.592-.77-1.592-1.984 0-1.217.616-1.988 1.591-1.988zm2.982 3.178c.042 1.006.866 1.626 2.12 1.626 1.32 0 2.151-.65 2.151-1.686 0-.813-.469-1.27-1.576-1.523l-.627-.144c-.67-.158-.945-.37-.945-.733 0-.453.415-.756 1.032-.756.623 0 1.05.306 1.096.817h.93c-.023-.96-.817-1.61-2.019-1.61-1.187 0-2.03.653-2.03 1.62 0 .78.477 1.263 1.482 1.494l.707.166c.688.163.967.39.967.782 0 .454-.457.779-1.115.779-.665 0-1.167-.329-1.228-.832h-.945z\"},\"child\":[]}]})(props);\n};\nexport function SiMacpaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.622.21c.235-.126 1.12-.432 1.38.06.26.492-.483 1.061-.736 1.196-.252.136-.664.122-.898-.321A.675.675 0 0 1 9.622.21zm2.634 4.822c.236-.126 1.12-.431 1.38.06.26.492-.482 1.061-.735 1.196-.253.136-.664.123-.899-.32a.675.675 0 0 1 .254-.936ZM12 24a11.403 11.403 0 0 1-8.08-3.345 11.38 11.38 0 0 1-3.35-8.077 11.378 11.378 0 0 1 3.35-8.077 11.392 11.392 0 0 1 3.632-2.446 2.835 2.835 0 0 1 3.719 1.508 2.84 2.84 0 0 1-1.508 3.716c-.684.289-1.3.704-1.83 1.233a5.71 5.71 0 0 0-1.684 4.067 5.705 5.705 0 0 0 1.684 4.065A5.727 5.727 0 0 0 12 18.327a5.727 5.727 0 0 0 4.068-1.683 5.712 5.712 0 0 0 1.685-4.065 2.84 2.84 0 0 1 2.838-2.837 2.84 2.84 0 0 1 2.838 2.836 11.34 11.34 0 0 1-.9 4.447 11.367 11.367 0 0 1-2.447 3.63A11.422 11.422 0 0 1 12 24Zm.426-21.111c.263-.14 1.346-.533 1.635.016.29.549-.633 1.235-.915 1.386-.282.15-.742.136-1.003-.359a.754.754 0 0 1 .283-1.043Zm-1.004-1.806c.263-.14 1.32-.518 1.61.03.29.55-.608 1.221-.89 1.372-.282.151-.741.136-1.003-.358a.754.754 0 0 1 .283-1.044Z\"},\"child\":[]}]})(props);\n};\nexport function SiMacys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.015.624L9.19 9.293H0l7.445 5.384-2.819 8.673L12 17.986l7.422 5.393-2.835-8.713L24 9.292h-9.162L12.015.622v.002z\"},\"child\":[]}]})(props);\n};\nexport function SiMagasinsu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.49 7.179h-3.51c-.642 0-.73.26-.73.654v5.7c-.044 1.305-.53 1.723-1.46 1.723-.956 0-1.444-.44-1.464-1.828V7.833c0-.393-.092-.654-.734-.654h-3.51v6.78c0 1.5.29 2.134.912 2.778.962 1 2.645 1.423 4.794 1.423 2.15 0 3.834-.422 4.798-1.423.62-.644.911-1.278.911-2.778zM14.26.906C8.425-.23 2.7 3.809 1.47 9.924.246 16.042 3.98 21.92 9.817 23.054c5.84 1.132 11.565-2.905 12.792-9.02C23.834 7.917 20.1 2.038 14.261.904m-2.465 21.384c-5.664 0-10.253-4.582-10.253-10.234 0-5.65 4.59-10.23 10.253-10.23 5.661 0 10.253 4.58 10.253 10.23 0 5.652-4.592 10.234-10.253 10.234M.026 11.136C-.4 17.289 4.367 22.646 10.869 23.2c-.348-.03-.699-.08-1.052-.147C3.981 21.92.244 16.04 1.471 9.924 2.69 3.85 8.346-.172 14.14.884c-.488-.094-.98-.16-1.486-.196C6.041.235.46 4.91.028 11.138M13.388.755a7.678 7.678 0 0 0-.774-.037 9.913 9.913 0 0 1 1.648.186c5.836 1.134 9.573 7.01 8.346 13.128-1.228 6.114-6.953 10.153-12.79 9.02a10.052 10.052 0 0 1-.767-.182c.992.306 2.06.473 3.183.473 1.126 0 1.996-.152 2.827-.34 3.604-.816 6.523-3.342 7.98-6.506.635-1.421.961-2.96.959-4.515-.001-6.26-4.916-10.743-10.613-11.226\"},\"child\":[]}]})(props);\n};\nexport function SiMagento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24l-4.455-2.572v-12l2.97-1.715v12.001l1.485.902 1.485-.902V7.713l2.971 1.715v12L12 24zM22.391 6v12l-2.969 1.714V7.713L12 3.43 4.574 7.713v12.001L1.609 18V6L12 0l10.391 6z\"},\"child\":[]}]})(props);\n};\nexport function SiMagic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a29.658 29.658 0 0 1-3.611 3.53A27.326 27.326 0 0 1 9.729 12c0 2.948-.47 5.792-1.34 8.47A29.658 29.658 0 0 1 12 24a29.658 29.658 0 0 1 3.611-3.53 27.326 27.326 0 0 1-1.34-8.47c0-2.948.47-5.792 1.34-8.47A29.658 29.658 0 0 1 12 0Zm6.109 5.381A27.362 27.362 0 0 0 17.3 12c0 2.278.28 4.494.809 6.619a30.696 30.696 0 0 1 4.391-2.424A13.662 13.662 0 0 1 21.843 12c0-1.46.23-2.868.657-4.195a30.698 30.698 0 0 1-4.391-2.424Zm-12.218 0A30.7 30.7 0 0 1 1.5 7.805c.427 1.327.657 2.736.657 4.195 0 1.46-.23 2.868-.657 4.195a30.696 30.696 0 0 1 4.391 2.424C6.42 16.494 6.7 14.278 6.7 12c0-2.278-.28-4.494-.809-6.619z\"},\"child\":[]}]})(props);\n};\nexport function SiMagisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.857 14.458s.155.921-.034 2.952c-.236 2.546.97 6.59.97 6.59s1.645-4.052 1.358-6.67c-.236-2.152.107-2.904.034-2.803-1.264 1.746-2.328-.069-2.328-.069zm3.082 2.185c.206 1.591-.023 2.462-.32 4.164-.15.861 3.068-2.589 4.302-4.645.206-.343-1.18 1.337-2.55.137-.952-.832-1.115-1.085-1.854-1.808-.249-.244.277 1.014.423 2.151zm-3.512-2.025c-.739.723-.903.976-1.853 1.808-1.371 1.2-2.757-.48-2.551-.137 1.234 2.057 4.452 5.506 4.302 4.645-.297-1.703-.526-2.574-.32-4.164.147-1.137.673-2.395.423-2.15zm3.166-2.839c1.504.434 2.088 2.523 3.606 2.781.314.053.667.148 1.08.128.77-.037 1.743-.472 3.044-2.318.385-.546-.955 3.514-4.313 3.563-2.46.036-2.747-2.408-4.387-2.482-.592-.027-.629-1.156-.629-1.156s.706-.774 1.598-.517zm-3.186-.012c-1.504.434-2.088 2.523-3.606 2.781-.314.053-.667.148-1.08.128-.77-.037-1.743-.472-3.044-2.318-.385-.546.955 3.514 4.313 3.563 2.46.036 2.747-2.408 4.387-2.482.592-.027.629-1.156.629-1.156s-.706-.774-1.598-.517zm5.626-.02c1.513 1.146 1.062 2.408 1.911 2.048 2.86-1.212 2.36-7.434 2.128-6.682-1.303 4.242-4.143 4.48-6.876 2.528-.534-.38 1.985 1.46 2.837 2.105zm-5.24-2.106C8.06 11.592 5.22 11.355 3.917 7.113c-.231-.752-.731 5.47 2.128 6.682.849.36.398-.902 1.91-2.048.853-.646 3.372-2.486 2.838-2.105zm5.526.584c3.3-.136 3.91-5.545 3.65-4.885-1.165 2.963-5.574 1.848-5.995 3.718-.083.367.747 1.233 2.345 1.167zm-6.304-1.167c-.421-1.87-4.831-.755-5.995-3.718-.26-.66.35 4.75 3.65 4.885 1.599.066 2.428-.8 2.345-1.167zm3.753-.824s1.794-.964 3.33-1.384c1.435-.393 2.512-1.359 2.631-2.38.09-.76-1.11-2.197-1.11-2.197s-.84 2.334-1.945 3.501c-1.2 1.27-.745 1.1-2.906 2.46zm-6.453-2.46c-1.104-1.167-1.945-3.5-1.945-3.5S4.17 3.708 4.26 4.47c.12 1.021 1.196 1.987 2.63 2.38 1.537.421 3.331 1.384 3.331 1.384-2.162-1.36-1.705-1.19-2.906-2.46zm6.235 2.312c1.943-1.594 2.976-3.673 4.657-5.949.317-.429-1.419-1.465-2.105-1.533-.686-.068-1.262 2.453-1.327 3.936-.059 1.354-1.486 3.761-1.224 3.547zM9.214 4.54C9.149 3.056 8.573.535 7.887.603 7.2.671 5.465 1.707 5.782 2.136c1.68 2.276 2.713 4.356 4.657 5.95.261.213-1.165-2.194-1.224-3.548zm4.531-1.602c.137-1.098.631-1.9 1.613-2.574-.868-.29-1.591-.526-1.968-.217-.377.309-1.403 1.342-1.266 3.023s.007 7.962.305 7.846c.16-4.302 1.522-5.538 1.316-8.077zm-2.186 8.077c.297.116.167-6.165.305-7.846.138-1.681-.888-2.714-1.266-3.023-.377-.309-1.1-.073-1.968.217.983.674 1.476 1.476 1.613 2.574-.206 2.54 1.156 3.775 1.316 8.077z\"},\"child\":[]}]})(props);\n};\nexport function SiMahindra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.145 11.311H6.78a.67.67 0 0 1 .674.66v1.509H5.009a.408.408 0 0 1-.41-.404v-.524a.38.38 0 0 1 .383-.375h1.354l-.144.306h-.998c-.043 0-.092.034-.092.081v.412c0 .047.049.082.092.082h1.73v-.99c0-.191-.169-.338-.357-.338H4.945l.2-.419zm13.427-.787v2.959h-2.383a.408.408 0 0 1-.41-.403v-1.11a.67.67 0 0 1 .675-.659h1.357l-.2.422h-.948c-.188 0-.357.147-.357.337v.91c0 .046.049.08.092.08h1.644v-2.536h.53zM10.2 13.483h.527v-1.51a.67.67 0 0 0-.674-.659H8.932l-.2.422h1.111c.188 0 .357.147.357.337v1.41zm-2.195-2.96v2.96h.527v-2.96h-.527zm-4.4 2.96h.527v-1.51a.67.67 0 0 0-.674-.659H0v2.169h.526v-1.669c0-.047.05-.081.093-.081h1.09c.043 0 .092.034.092.081v1.669h.527v-1.669c0-.047.049-.081.092-.081h.828c.188 0 .357.147.357.337v1.413zm17.72-2.172H20a.67.67 0 0 0-.674.66v1.509h.527v-1.41c0-.19.169-.337.357-.337h.914l.2-.422zm-6.753 0a.67.67 0 0 1 .675.66v1.509h-.527v-1.41c0-.19-.17-.337-.357-.337h-1.268v1.75h-.527v-2.169c.665 0 1.333-.003 2.004-.003zm-3.19.137.527-.306v2.338h-.526v-2.032zm.53-.609v-.322h-.526v.625l.526-.303zm9.782.472h1.632a.67.67 0 0 1 .674.66v1.509h-2.445a.408.408 0 0 1-.41-.404v-.524a.38.38 0 0 1 .383-.375h1.354l-.144.306h-.998c-.043 0-.092.034-.092.081v.412c0 .047.049.082.092.082h1.73v-.99c0-.191-.169-.338-.357-.338h-1.622l.203-.419z\"},\"child\":[]}]})(props);\n};\nexport function SiMailboxdotorg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.229 22.844H24V10.501l-8.628 5.882c-.613.419-1.226-.003-1.226-.003L0 6.646v13.969s0 2.229 2.229 2.229m12.558-9.273L24 7.261V1.156H2.229S0 1.156 0 3.384v.06l14.787 10.127Z\"},\"child\":[]}]})(props);\n};\nexport function SiMailchimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.267 0C6.791-.015-1.82 10.246 1.397 12.964l.79.669a3.88 3.88 0 0 0-.22 1.792c.084.84.518 1.644 1.22 2.266.666.59 1.542.964 2.392.964 1.406 3.24 4.62 5.228 8.386 5.34 4.04.12 7.433-1.776 8.854-5.182.093-.24.488-1.316.488-2.267 0-.956-.54-1.352-.885-1.352-.01-.037-.078-.286-.172-.586-.093-.3-.19-.51-.19-.51.375-.563.382-1.065.332-1.35-.053-.353-.2-.653-.496-.964-.296-.311-.902-.63-1.753-.868l-.446-.124c-.002-.019-.024-1.053-.043-1.497-.014-.32-.042-.822-.197-1.315-.186-.668-.508-1.253-.911-1.627 1.112-1.152 1.806-2.422 1.804-3.511-.003-2.095-2.576-2.729-5.746-1.416l-.672.285A678.22 678.22 0 0 0 12.7.504C12.304.159 11.817.002 11.267 0zm.073.873c.166 0 .322.019.465.058.297.084 1.28 1.224 1.28 1.224s-1.826 1.013-3.52 2.426c-2.28 1.757-4.005 4.311-5.037 7.082-.811.158-1.526.618-1.963 1.253-.261-.218-.748-.64-.834-.804-.698-1.326.761-3.902 1.781-5.357C5.834 3.44 9.37.867 11.34.873zm3.286 3.273c.04-.002.06.05.028.074-.143.11-.299.26-.413.414a.04.04 0 0 0 .031.064c.659.004 1.587.235 2.192.574.041.023.012.103-.034.092-.915-.21-2.414-.369-3.97.01-1.39.34-2.45.863-3.224 1.426-.04.028-.086-.023-.055-.06.896-1.035 1.999-1.935 2.987-2.44.034-.018.07.019.052.052-.079.143-.23.447-.278.678-.007.035.032.063.062.042.615-.42 1.684-.868 2.622-.926zm3.023 3.205l.056.001a.896.896 0 0 1 .456.146c.534.355.61 1.216.638 1.845.015.36.059 1.229.074 1.478.034.571.184.651.487.751.17.057.33.098.563.164.706.198 1.125.4 1.39.658.157.162.23.333.253.497.083.608-.472 1.36-1.942 2.041-1.607.746-3.557.935-4.904.785l-.471-.053c-1.078-.145-1.693 1.247-1.046 2.201.417.615 1.552 1.015 2.688 1.015 2.604 0 4.605-1.111 5.35-2.072a.987.987 0 0 0 .06-.085c.036-.055.006-.085-.04-.054-.608.416-3.31 2.069-6.2 1.571 0 0-.351-.057-.672-.182-.255-.1-.788-.344-.853-.891 2.333.72 3.801.039 3.801.039a.072.072 0 0 0 .042-.072.067.067 0 0 0-.074-.06s-1.911.283-3.718-.378c.197-.64.72-.408 1.51-.345a11.045 11.045 0 0 0 3.647-.394c.818-.234 1.892-.697 2.727-1.356.281.618.38 1.299.38 1.299s.219-.04.4.073c.173.106.299.326.213.895-.176 1.063-.628 1.926-1.387 2.72a5.714 5.714 0 0 1-1.666 1.244c-.34.18-.704.334-1.087.46-2.863.935-5.794-.093-6.739-2.3a3.545 3.545 0 0 1-.189-.522c-.403-1.455-.06-3.2 1.008-4.299.065-.07.132-.153.132-.256 0-.087-.055-.179-.102-.243-.374-.543-1.669-1.466-1.409-3.254.187-1.284 1.31-2.189 2.357-2.135.089.004.177.01.266.015.453.027.85.085 1.223.1.625.028 1.187-.063 1.853-.618.225-.187.405-.35.71-.401.028-.005.092-.028.215-.028zm.022 2.18a.42.42 0 0 0-.06.005c-.335.054-.347.468-.228 1.04.068.32.187.595.32.765.175-.02.343-.022.498 0 .089-.205.104-.557.024-.942-.112-.535-.261-.872-.554-.868zm-3.66 1.546a1.724 1.724 0 0 0-1.016.326c-.16.117-.311.28-.29.378.008.032.031.056.088.063.131.015.592-.217 1.122-.25.374-.023.684.094.923.2.239.104.386.173.443.113.037-.038.026-.11-.031-.204-.118-.192-.36-.387-.618-.497a1.601 1.601 0 0 0-.621-.129zm4.082.81c-.171-.003-.313.186-.317.42-.004.236.131.43.303.432.172.003.314-.185.318-.42.004-.236-.132-.429-.304-.432zm-3.58.172c-.05 0-.102.002-.155.008-.311.05-.483.152-.593.247-.094.082-.152.173-.152.237a.075.075 0 0 0 .075.076c.07 0 .228-.063.228-.063a1.98 1.98 0 0 1 1.001-.104c.157.018.23.027.265-.026.01-.016.022-.049-.01-.1-.063-.103-.311-.269-.66-.275zm2.26.4c-.127 0-.235.051-.283.148-.075.154.035.363.246.466.21.104.443.063.52-.09.075-.155-.035-.364-.246-.467a.542.542 0 0 0-.237-.058zm-11.635.024c.048 0 .098 0 .149.003.73.04 1.806.6 2.052 2.19.217 1.41-.128 2.843-1.449 3.069-.123.02-.248.029-.374.026-1.22-.033-2.539-1.132-2.67-2.435-.145-1.44.591-2.548 1.894-2.811.117-.024.252-.04.398-.042zm-.07.927a1.144 1.144 0 0 0-.847.364c-.38.418-.439.988-.366 1.19.027.073.07.094.1.098.064.008.16-.039.22-.2a1.2 1.2 0 0 0 .017-.052 1.58 1.58 0 0 1 .157-.37.689.689 0 0 1 .955-.199c.266.174.369.5.255.81-.058.161-.154.469-.133.721.043.511.357.717.64.738.274.01.466-.143.515-.256.029-.067.005-.107-.011-.125-.043-.053-.113-.037-.18-.021a.638.638 0 0 1-.16.022.347.347 0 0 1-.294-.148c-.078-.12-.073-.3.013-.504.011-.028.025-.058.04-.092.138-.308.368-.825.11-1.317-.195-.37-.513-.602-.894-.65a1.135 1.135 0 0 0-.138-.01z\"},\"child\":[]}]})(props);\n};\nexport function SiMaildotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.017-.0085H0V15.66c0 1.4057.96 2.5714 2.2457 2.9143L24 24.0085V5.9915c.0172-3.3086-2.6743-6-5.9828-6zm3 15.6685H18V8.7857c0-.6685-.223-2.2285-2.2115-2.2285-1.32 0-2.28.9085-2.28 2.2285V15.66h-3.0171V8.7857c0-.6685-.2057-2.2285-2.1943-2.2285-1.3543 0-2.28.9085-2.28 2.2285V15.66H3V3.6086h5.297c1.5943 0 2.8971.6343 3.7371 1.6629.8915-1.0286 2.2115-1.6629 3.7372-1.6629 3.2914 0 5.2285 2.1771 5.2285 5.2457l.0172 6.8057z\"},\"child\":[]}]})(props);\n};\nexport function SiMaildotru (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.61 12c0 1.99-1.62 3.61-3.61 3.61-1.99 0-3.61-1.62-3.61-3.61 0-1.99 1.62-3.61 3.61-3.61 1.99 0 3.61 1.62 3.61 3.61M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12c2.424 0 4.761-.722 6.76-2.087l.034-.024-1.617-1.879-.027.017A9.494 9.494 0 0 1 12 21.54c-5.26 0-9.54-4.28-9.54-9.54 0-5.26 4.28-9.54 9.54-9.54 5.26 0 9.54 4.28 9.54 9.54a9.63 9.63 0 0 1-.225 2.05c-.301 1.239-1.169 1.618-1.82 1.568-.654-.053-1.42-.52-1.426-1.661V12A6.076 6.076 0 0 0 12 5.93 6.076 6.076 0 0 0 5.93 12 6.076 6.076 0 0 0 12 18.07a6.02 6.02 0 0 0 4.3-1.792 3.9 3.9 0 0 0 3.32 1.805c.874 0 1.74-.292 2.437-.821.719-.547 1.256-1.336 1.553-2.285.047-.154.135-.504.135-.507l.002-.013c.175-.76.253-1.52.253-2.457 0-6.617-5.383-12-12-12\"},\"child\":[]}]})(props);\n};\nexport function SiMailgun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.837 0c6.602 0 11.984 5.381 11.984 11.994-.017 2.99-3.264 4.84-5.844 3.331a3.805 3.805 0 0 1-.06-.035l-.055-.033-.022.055c-2.554 4.63-9.162 4.758-11.894.232-2.732-4.527.46-10.313 5.746-10.416a6.868 6.868 0 0 1 7.002 6.866 1.265 1.265 0 0 0 2.52 0c0-5.18-4.197-9.38-9.377-9.387C4.611 2.594.081 10.41 3.683 16.673c3.238 5.632 11.08 6.351 15.289 1.402l1.997 1.686A11.95 11.95 0 0 1 11.837 24C2.6 23.72-2.87 13.543 1.992 5.684A12.006 12.006 0 0 1 11.837 0Zm0 7.745c-3.276-.163-5.5 3.281-4.003 6.2a4.26 4.26 0 0 0 4.014 2.31c3.276-.171 5.137-3.824 3.35-6.575a4.26 4.26 0 0 0-3.36-1.935Zm0 2.53c1.324 0 2.152 1.433 1.49 2.58a1.72 1.72 0 0 1-1.49.86 1.72 1.72 0 1 1 0-3.44Z\"},\"child\":[]}]})(props);\n};\nexport function SiMailtrap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.37146 17.60681 3.33477 18.8148c-.27629.18168-.15004.49398 0 .55693l7.90979 4.43194c.46722.26178 1.04287.26178 1.51009 0l8.01458-4.49068c.24282-.14382.20298-.43614 0-.53479l-2.15348-1.16353c-.18174-.11994-.58711-.08004-.73069.01758l-5.13041 2.87463c-.46722.26178-1.04287.26178-1.51009 0l-5.17584-2.90007c-.19295-.11868-.4986-.11196-.69726 0ZM11.24492.19634c.46722-.26179 1.04281-.26179 1.51003 0l6.36966 3.56896c.25428.12865.27732.47404 0 .62979-.41988.23442-.98311.54855-1.45045.80916-.54595.30446-1.21057.30357-1.75592-.00201l-3.16329-1.7724c-.46722-.26179-1.04281-.26179-1.51003 0l-3.16701 1.7745c-.54577.30577-1.21096.30634-1.75727.00163-.48583-.27097-1.07519-.59951-1.49988-.83566-.23557-.10117-.28461-.40149 0-.57448L11.24492.19634Zm10.72402 5.37209c.46723.26179.75505.74561.75505 1.26917v10.32526c0 .51102-.32004.60637-.66139.42786l-2.3588-1.27315V9.37593l-6.94878 3.8935c-.46722.26178-1.04281.26178-1.51003 0l-6.94881-3.8935v6.9408L2.1528 17.58922c-.25545.16242-.87679.2136-.87679-.42636V6.8376c0-.52356.28782-1.00739.75504-1.26917.75174-.39366 1.52849 0 1.52849 0l8.44043 4.73955 8.42726-4.73955s.74839-.45137 1.54171 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiMainwp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0m0 2.4004c1.3251 0 2.4004 1.0752 2.4004 2.4004a2.397 2.397 0 0 1-.7031 1.6953 2.4 2.4 0 0 1-.5957.4355L16.08 19.1992 12 21.6016l-4.08-2.4024 2.9784-12.2676a2.4 2.4 0 0 1-.5937-.4355 2.397 2.397 0 0 1-.7031-1.6953c0-1.3252 1.0732-2.4004 2.3984-2.4004\"},\"child\":[]}]})(props);\n};\nexport function SiMajorleaguehacking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.769 6.947c.063 0 .119.02.16.063a.225.225 0 0 1 .071.161v7.778a.213.213 0 0 1-.07.161.222.222 0 0 1-.161.064H22.07a.228.228 0 0 1-.231-.224v-2.715a.206.206 0 0 0-.063-.154c-.042-.042-.091-.056-.162-.056h-2.377a.25.25 0 0 0-.161.056.212.212 0 0 0-.07.154v2.714c0 .147-.078.225-.232.225h-1.683c-.155 0-.232-.078-.232-.225V7.171c0-.147.077-.224.232-.224h1.683c.154 0 .231.077.231.224v2.63c0 .148.078.225.232.225h2.377c.064 0 .12-.021.162-.063a.222.222 0 0 0 .063-.162v-2.63a.21.21 0 0 1 .07-.161.222.222 0 0 1 .161-.063zm-8.374 6.207c.063 0 .119.02.154.063a.222.222 0 0 1 .063.161v1.55a.234.234 0 0 1-.063.161.206.206 0 0 1-.154.064h-5.45c-.154 0-.231-.078-.231-.225V7.171c0-.147.077-.224.231-.224h1.67c.154 0 .23.077.23.224v5.78a.19.19 0 0 0 .07.154c.043.042.099.056.162.056h3.318zm-7.75-6.102c.161.07.301.168.42.288.12.119.21.26.288.42.07.162.105.337.105.52v6.648a.206.206 0 0 1-.063.154.206.206 0 0 1-.154.064H6.649a.181.181 0 0 1-.148-.064.231.231 0 0 1-.056-.154V8.883H5.162v6.045a.231.231 0 0 1-.056.154.191.191 0 0 1-.147.064H3.514a.206.206 0 0 1-.155-.064.206.206 0 0 1-.063-.154V8.883H2.013v6.045c0 .147-.07.218-.218.218H.217c-.147 0-.217-.07-.217-.218V7.164c0-.147.07-.217.217-.217H7.12c.189 0 .357.035.526.105zm16.341 9.314c.007.007.007.014.007.02v.45c0 .028-.007.056-.014.084-.014.028-.028.049-.042.07a.146.146 0 0 1-.07.042c-.028.014-.056.014-.084.014h-.639a.352.352 0 0 1-.084-.014c-.028-.014-.049-.028-.07-.042a.146.146 0 0 1-.042-.07c-.014-.028-.014-.056-.014-.084v-.842c0-.028.007-.056.014-.084.007-.028.028-.05.042-.07a.146.146 0 0 1 .07-.042c.028-.014.056-.014.084-.014h.75c.008 0 .022 0 .022.007.007.007.007.014.007.02v.24c0 .006 0 .02-.007.02-.007.007-.014.007-.021.007h-.603c-.007 0-.021 0-.021.007-.007.007-.007.014-.007.021v.59c0 .007 0 .014.007.02.007.008.014.008.02.008h.358c.007 0 .014 0 .021-.007.007-.007.007-.014.007-.022v-.315c0-.007 0-.021.007-.021.007-.007.014-.007.021-.007h.253c.014 0 .021.007.028.014zm-1.466-.568c.028.014.05.028.07.042a.146.146 0 0 1 .042.07c.014.028.014.056.014.084v1.024c0 .007 0 .021-.007.021-.007.007-.014.007-.02.007h-.253c-.007 0-.014 0-.021-.007-.007-.007-.007-.014-.007-.02v-.892c0-.007 0-.014-.007-.02-.007-.008-.014-.008-.021-.008h-.358c-.007 0-.021 0-.021.007s-.007.014-.007.021v.891c0 .021-.014.035-.035.035h-.253a.034.034 0 0 1-.035-.035v-1.2c0-.02.014-.034.035-.034h.821c.014-.007.042 0 .063.014zM21.3 17.01c0 .021-.014.035-.035.035h-.253a.034.034 0 0 1-.035-.035v-1.2c0-.02.014-.034.035-.034h.253c.02 0 .035.014.035.035zm-.975-.701c-.007.007-.007.007 0 .014l.42.694c.008.007.008.014 0 .021-.006.007-.006.007-.02.007h-.302c-.007 0-.02 0-.028-.007l-.02-.02-.274-.492c-.007-.007-.007-.007-.007 0l-.148.161c-.007.007-.014.015-.014.029-.007.014-.007.02-.007.035v.266c0 .021-.014.035-.035.035h-.245c-.021 0-.035-.014-.035-.035v-1.2c0-.02.014-.034.035-.034h.252c.021 0 .035.014.035.035v.54l.47-.547a.097.097 0 0 1 .028-.021c.014-.007.021-.007.028-.007h.302c.007 0 .014 0 .014.007s0 .014-.007.02zm-1.648-.218c-.007.007-.007.014-.007.021v.59c0 .007 0 .014.007.02.007.008.014.008.02.008h.583c.007 0 .021 0 .021.007.007.007.007.014.007.02v.24c0 .006 0 .02-.007.02-.007.007-.014.007-.021.007h-.722a.352.352 0 0 1-.085-.014.617.617 0 0 1-.07-.042.146.146 0 0 1-.042-.07c-.014-.028-.014-.056-.014-.084v-.849c0-.028.007-.056.014-.084a.538.538 0 0 1 .042-.07.146.146 0 0 1 .07-.042c.028-.014.057-.014.085-.014h.722c.007 0 .021 0 .021.007.007.007.007.014.007.02v.24c0 .006 0 .02-.007.02-.007.007-.014.007-.021.007h-.582c-.007.035-.014.042-.021.042zm-.82-.315c.027 0 .055.007.083.014.028.014.05.028.07.042a.146.146 0 0 1 .043.07.351.351 0 0 1 .014.084v1.024c0 .007 0 .021-.007.021-.007.007-.014.007-.021.007h-.253c-.007 0-.021 0-.021-.007-.007-.007-.007-.014-.007-.02v-.324c0-.007 0-.02-.007-.02-.007-.008-.014-.008-.021-.008h-.358c-.007 0-.02 0-.02.007-.008.007-.008.014-.008.021v.323c0 .021-.014.035-.035.035h-.252c-.021 0-.035-.014-.035-.035v-1.024c0-.028.007-.056.014-.084a.617.617 0 0 1 .042-.07.146.146 0 0 1 .07-.042c.028-.014.056-.014.084-.014zm-.106.603v-.316h-.428v.316zm-1.066-.603c.007 0 .021 0 .021.007.007.007.007.014.007.02v1.2c0 .007 0 .021-.007.021-.007.007-.014.007-.021.007h-.253c-.007 0-.02 0-.02-.007-.008-.007-.008-.014-.008-.02v-.422c0-.007 0-.014-.007-.02-.007-.008-.014-.008-.02-.008h-.358c-.007 0-.021 0-.021.007-.007.007-.007.014-.007.021v.421c0 .021-.014.035-.035.035h-.253a.034.034 0 0 1-.035-.035v-1.2c0-.02.014-.034.035-.034h.253c.02 0 .035.014.035.035v.407c0 .02.014.035.035.035h.357c.007 0 .014 0 .021-.007.007-.007.007-.014.007-.021v-.407c0-.007 0-.021.007-.021.007-.007.014-.007.022-.007h.245zm-1.943.014c.007.007.007.014.007.02v.232c0 .007 0 .014-.007.021-.007.007-.014.007-.02.007h-.604c-.007 0-.007 0-.007.007v.197c0 .007 0 .007.007.007h.52c.006 0 .013 0 .02.007.007.007.007.014.007.02v.183c0 .007 0 .021-.007.021-.007.007-.014.007-.02.007h-.52c-.007 0-.007 0-.007.007v.197c0 .007 0 .007.007.007h.604c.006 0 .02 0 .02.007.007.007.007.014.007.02v.225c0 .007 0 .021-.007.021-.007.007-.014.007-.02.007h-.899a.034.034 0 0 1-.035-.035v-1.199c0-.007 0-.021.007-.021.007-.007.014-.007.021-.007h.898a.132.132 0 0 0 .028.042zm-1.255 0c.007.007.007.014.007.02v1.025a.352.352 0 0 1-.014.084c-.014.028-.028.049-.042.07a.146.146 0 0 1-.07.042c-.028.014-.056.014-.085.014h-.638a.352.352 0 0 1-.084-.014c-.028-.014-.049-.028-.07-.042a.146.146 0 0 1-.042-.07c-.014-.028-.014-.056-.014-.084v-1.024c0-.021.014-.035.035-.035h.252c.021 0 .035.014.035.035v.89c0 .008 0 .015.007.022.007.007.014.007.022.007h.357c.007 0 .014 0 .021-.007.007-.007.007-.014.007-.021v-.891c0-.007 0-.021.007-.021.007-.007.014-.007.021-.007h.253c.02-.007.028 0 .035.007zm-1.333.575c.007.007.007.014.007.02v.45a.352.352 0 0 1-.014.084c-.014.028-.028.049-.042.07a.146.146 0 0 1-.07.042c-.028.014-.056.014-.084.014h-.638a.352.352 0 0 1-.084-.014.478.478 0 0 1-.07-.042.146.146 0 0 1-.043-.07c-.014-.028-.014-.056-.014-.084v-.842c0-.028.007-.056.014-.084.007-.028.028-.05.042-.07a.146.146 0 0 1 .07-.042c.029-.014.057-.014.085-.014h.75c.007 0 .021 0 .021.007.007.007.007.014.007.02v.24c0 .006 0 .02-.007.02-.007.007-.014.007-.02.007h-.604c-.007 0-.021 0-.021.007-.007.007-.007.014-.007.021v.59c0 .007 0 .014.007.02.007.008.014.008.021.008h.358c.007 0 .014 0 .02-.007.008-.007.008-.014.008-.022v-.315c0-.007 0-.021.007-.021.007-.007.014-.007.02-.007h.253c.007 0 .021.007.028.014zm-1.55-.59c.028 0 .056.008.084.015.029.014.05.028.07.042a.146.146 0 0 1 .043.07.352.352 0 0 1 .014.084v1.024c0 .007 0 .021-.007.021-.007.007-.014.007-.021.007h-.26c-.007 0-.02 0-.02-.007-.008-.007-.008-.014-.008-.02v-.324c0-.007 0-.02-.007-.02-.007-.008-.014-.008-.02-.008h-.366c-.007 0-.02 0-.02.007-.008.007-.008.014-.008.021v.323c0 .021-.014.035-.035.035h-.252c-.021 0-.035-.014-.035-.035v-1.024c0-.028.007-.056.014-.084a.617.617 0 0 1 .042-.07.146.146 0 0 1 .07-.042c.028-.014.056-.014.084-.014zm-.112.604v-.316h-.428v.316zm-1.038-.59c.007.008.007.015.007.022v.231c0 .007 0 .014-.007.021-.007.007-.014.007-.02.007H8.83c-.007 0-.007 0-.007.007v.197c0 .007 0 .007.007.007h.519c.007 0 .014 0 .021.007.007.007.007.014.007.02v.183c0 .007 0 .021-.007.021-.007.007-.014.007-.021.007h-.52c-.006 0-.006 0-.006.007v.197c0 .007 0 .007.007.007h.604c.006 0 .02 0 .02.007.007.007.007.014.007.02v.225c0 .007 0 .021-.007.021-.007.007-.014.007-.02.007h-.899a.034.034 0 0 1-.035-.035v-1.199c0-.007 0-.021.007-.021.007-.007.014-.007.021-.007h.898a.132.132 0 0 0 .028.042zm-1.171.948c.007 0 .014 0 .02.007.008.007.008.014.008.02v.24c0 .006 0 .02-.007.02-.007.007-.014.007-.021.007h-.779a.034.034 0 0 1-.035-.035v-1.2c0-.02.014-.034.035-.034h.253c.02 0 .035.014.035.035v.89c0 .007 0 .015.007.022.007.007.014.007.021.007h.463zm-1.704.28c.007.007.007.014 0 .021-.007.007-.007.007-.021.007H6.27c-.007 0-.021 0-.028-.007l-.021-.02-.19-.345c0-.007-.006-.007-.013-.007H5.8c-.007 0-.007 0-.007.007v.337c0 .021-.014.035-.035.035h-.252c-.021 0-.036-.014-.036-.035v-1.2c0-.02.015-.034.036-.034h.82c.028 0 .056.007.084.014.028.014.05.028.07.042a.146.146 0 0 1 .043.07.178.178 0 0 1 .014.084v.477a.21.21 0 0 1-.043.126.23.23 0 0 1-.105.077h-.007c-.007 0-.007.007-.007.014v.007zm-.358-.947h-.435v.309h.435zm-1.241-.294c.028 0 .056.007.084.014.028.014.049.028.07.042a.146.146 0 0 1 .042.07.352.352 0 0 1 .014.084v.842c0 .028-.007.056-.014.084-.014.028-.028.049-.042.07a.146.146 0 0 1-.07.042c-.028.014-.056.014-.084.014h-.64c-.028 0-.056-.007-.084-.014-.028-.014-.049-.028-.07-.042a.146.146 0 0 1-.042-.07c-.014-.028-.014-.056-.014-.084v-.842c0-.028.007-.056.014-.084.007-.028.028-.05.042-.07a.146.146 0 0 1 .07-.042c.028-.014.056-.014.084-.014zm-.113.308H4.44v.653h.427zm-1.03-.294c.006.007.006.014.006.02v1.025c0 .028-.007.056-.014.084-.014.028-.028.049-.042.07a.146.146 0 0 1-.07.042c-.028.014-.056.014-.084.014h-.547a.352.352 0 0 1-.084-.014.538.538 0 0 1-.07-.042.146.146 0 0 1-.042-.07c-.014-.028-.014-.056-.014-.084v-.386c0-.021.014-.035.035-.035h.252c.021 0 .035.014.035.035v.26c0 .007 0 .014.007.02.007.008.014.008.021.008h.26c.007 0 .02 0 .02-.007.008-.007.008-.014.008-.021v-.891c0-.007 0-.021.007-.021.007-.007.014-.007.02-.007h.253c.021-.014.035-.007.042 0zm-1.354-.014c.028 0 .056.007.084.014.028.014.049.028.07.042a.146.146 0 0 1 .042.07.352.352 0 0 1 .014.084v1.024c0 .007 0 .021-.007.021-.007.007-.014.007-.02.007h-.253c-.007 0-.021 0-.021-.007-.007-.007-.007-.014-.007-.02v-.324c0-.007 0-.02-.007-.02-.007-.008-.014-.008-.021-.008h-.358c-.007 0-.021 0-.021.007-.007.007-.007.014-.007.021v.323c0 .021-.014.035-.035.035h-.253a.034.034 0 0 1-.035-.035v-1.024c0-.028.007-.056.014-.084a.617.617 0 0 1 .042-.07.146.146 0 0 1 .07-.042c.028-.014.057-.014.085-.014zm-.112.603v-.316h-.428v.316zm-1.158-.582c.028.014.05.028.07.042a.146.146 0 0 1 .043.07.352.352 0 0 1 .014.084v1.024c0 .007 0 .021-.007.021-.007.007-.014.007-.021.007h-.253c-.007 0-.014 0-.021-.007-.007-.007-.007-.014-.007-.02v-.927H.828v.926c0 .007 0 .021-.007.021-.007.007-.014.007-.021.007H.568c-.007 0-.021 0-.021-.007-.007-.007-.007-.014-.007-.02v-.927H.337v.926c0 .021-.014.035-.035.035H.049a.034.034 0 0 1-.035-.035v-1.2c0-.02.014-.034.035-.034h1.094c.021-.007.05 0 .07.014Z\"},\"child\":[]}]})(props);\n};\nexport function SiMake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.38 3.498c-.27 0-.511.19-.566.465L9.85 18.986a.578.578 0 0 0 .453.678l4.095.826a.58.58 0 0 0 .682-.455l2.963-15.021a.578.578 0 0 0-.453-.678l-4.096-.826a.589.589 0 0 0-.113-.012zm-5.876.098a.576.576 0 0 0-.516.318L.062 17.697a.575.575 0 0 0 .256.774l3.733 1.877a.578.578 0 0 0 .775-.258l6.926-13.781a.577.577 0 0 0-.256-.776L7.762 3.658a.571.571 0 0 0-.258-.062zm11.74.115a.576.576 0 0 0-.576.576v15.426c0 .318.258.578.576.578h4.178a.58.58 0 0 0 .578-.578V4.287a.578.578 0 0 0-.578-.576Z\"},\"child\":[]}]})(props);\n};\nexport function SiMakerbot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.055 7.328c-.604-1.428-1.47-2.714-2.569-3.813C19.382 2.414 18.1 1.551 16.672.944 15.189.315 13.619 0 12 0c-1.62 0-3.19.318-4.672.945-1.428.604-2.711 1.47-3.813 2.57C2.414 4.615 1.551 5.9.943 7.328.315 8.81 0 10.38 0 12c0 1.619.318 3.189.945 4.671.604 1.429 1.47 2.714 2.569 3.814 1.103 1.1 2.386 1.964 3.813 2.57C8.81 23.686 10.38 24 12 24c1.619 0 3.189-.314 4.671-.944 1.429-.601 2.711-1.471 3.814-2.564 1.1-1.095 1.964-2.386 2.57-3.811.63-1.47.944-3.045.944-4.665 0-1.619-.314-3.18-.944-4.664v-.024zM12 22.335C6.293 22.335 1.665 17.707 1.665 12S6.293 1.665 12 1.665 22.335 6.293 22.335 12 17.707 22.335 12 22.335zm3.242-18.214H8.757c-.922 0-1.7.324-2.333.975-.635.644-.953 1.425-.953 2.334v10.182c0 .449.135.81.4 1.095.267.269.615.42 1.051.42.445 0 .805-.135 1.079-.405.272-.271.409-.63.409-1.08V7.08h2.141v10.529c0 .445.131.806.391 1.08.259.273.611.411 1.059.411.446 0 .799-.138 1.059-.411.26-.274.39-.635.39-1.08V7.08h2.142v10.529c0 .445.135.806.408 1.08.275.273.635.411 1.08.411.435 0 .783-.141 1.05-.423.268-.28.401-.638.401-1.069V7.426c0-.91-.318-1.688-.953-2.336-.633-.648-1.41-.975-2.334-.975v.006z\"},\"child\":[]}]})(props);\n};\nexport function SiMalt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.195 8.581c-.069 0-.285.026-.484.113-.432.181-.597.311-.597.58v5.023c0 .277.26.355.735.355.467 0 .649-.087.649-.355V8.858c0-.173-.113-.277-.303-.277zm3.502 4.903c-.345.087-.45.113-.57.113-.147 0-.2-.044-.2-.2v-2.161h.788c.207 0 .285-.078.285-.285 0-.173-.078-.26-.285-.26h-.787v-.839c0-.259-.087-.363-.268-.363-.173 0-.415.156-.934.597-.528.45-.83.744-.83.951 0 .121.086.199.224.199h.424v2.335c0 .683.337 1.08.925 1.08.39 0 .675-.146 1.012-.406.311-.242.51-.432.51-.596 0-.139-.103-.217-.294-.165zm-15.21-3.078c-.13 0-.285.026-.484.112-.433.19-.597.312-.597.58v3.2c0 .276.26.354.735.354.467 0 .649-.087.649-.355v-3.614c0-.173-.113-.277-.303-.277Zm1.816 0c-.355 0-.675.121-.986.363-.173.138-.32.294-.32.424 0 .112.078.173.19.173.19 0 .251-.078.416-.078.164 0 .25.173.25.476v2.533c0 .277.26.355.735.355.467 0 .649-.087.649-.355v-2.776c0-.657-.39-1.115-.934-1.115zm2.43 0c-.337 0-.692.121-1.003.363-.173.138-.32.294-.32.424 0 .112.078.173.19.173.19 0 .25-.078.432-.078s.268.173.268.476v2.533c0 .277.26.355.735.355.467 0 .649-.087.649-.355v-2.776c0-.657-.39-1.115-.951-1.115zm5.335 0a1.29 1.29 0 0 0-.484.112c-.26.113-.398.2-.467.312-.26-.303-.597-.398-.977-.398-1.116 0-1.911.942-1.911 2.283 0 1.124.605 1.954 1.461 1.954.26 0 .493-.104.77-.363.216-.2.32-.329.32-.45a.14.14 0 0 0-.147-.147c-.121 0-.251.104-.416.104-.354 0-.596-.545-.596-1.35 0-.803.32-1.348.804-1.348.32 0 .562.242.562.657v2.525c0 .277.26.355.735.355.467 0 .649-.087.649-.355v-3.614c0-.173-.113-.277-.303-.277ZM3.499 13.563l-.21.21.619.618c.304.304.79.598 1.244.144.339-.34.26-.695.073-.98-.06.004-1.726.008-1.726.008zm-.963-2.325.21-.21-.608-.607c-.304-.303-.765-.621-1.243-.143-.351.35-.273.692-.087.97Zm2.86.416c-.037.043-1.511 1.524-1.511 1.524h1.154c.43 0 .981-.101.981-.777 0-.496-.296-.683-.624-.747zm-3.244-.031H.981c-.43 0-.981.135-.981.778 0 .479.307.676.641.745.04-.046 1.511-1.523 1.511-1.523zm1.484 3.04-.618-.618-.608.607a2.613 2.613 0 0 1-.137.128c.07.333.266.639.745.639s.676-.307.745-.641c-.043-.037-.085-.073-.127-.115zM2.41 10.15l.608.607.618-.618a2.25 2.25 0 0 1 .128-.118c-.065-.327-.251-.623-.747-.623s-.682.297-.746.625c.046.04.092.08.14.127zm2.742.117c-.455-.454-.94-.16-1.244.144l-2.87 2.87c-.303.303-.621.765-.143 1.243.478.478.94.16 1.243-.143l2.87-2.87c.304-.304.598-.79.144-1.244Z\"},\"child\":[]}]})(props);\n};\nexport function SiMalwarebytes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.87 22.9027c.1571 0 .2796-.1236.2796-.2824 0-.124-.0874-.2828-.2445-.2828h-.088l-.1926-.0352c-3.2382-.636-5.6358-3.5505-5.6358-6.96 0-1.4478.4376-2.8256 1.19-3.938.1229-.1593.315-.2828.5254-.0884l5.1113 5.2277c.0342.0352.122.0883.1921.0883.0875 0 .1576-.0353.1927-.0883l5.1458-5.1924c.1927-.1944.368-.1588.473.0352a7.1 7.1 0 0 1 1.19 3.9385c0 1.819-.6826 3.4622-1.8032 4.7164-.0347.0353-.087.0883-.1222.1236 0 .0353-.035.0883-.035.1235 0 .1593.1225.2828.28.2828h.0351c.035 0 .0875-.0352.1225-.0352 6.8262-2.897 6.5116-9.75 6.5116-9.75 0-3.9036-1.8384-7.4184-4.6737-9.6263-.1224-.0883-.3151-.0883-.403.0352l-6.7033 6.8534c-.1228.1235-.3154.1235-.4376 0L5.0234 1.1949c-.1225-.1235-.2797-.1235-.4022-.0352C1.8379 3.3676 0 6.8293 0 10.786c0 6.2875 4.7086 11.4806 10.7825 12.1167Z\"},\"child\":[]}]})(props);\n};\nexport function SiMambaui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.0454 15.831c1.3027.3488 2.4956.7732 3.9102 1.0423a30.7131 30.7131 0 0 0 .4045 6.0695c-1.6978-1.9082-4.1376-5.1865-4.3147-7.1117Zm15.8426 0c-1.2583.3488-2.4104.7732-3.7766 1.0423a31.7724 31.7724 0 0 1-.3904 6.0695c1.6439-1.9082 4.0012-5.1865 4.167-7.1117zM6.7826 1.0573c2.3175 4.1689 9.686 3.6288 11.4596 0a6.223 6.223 0 0 1 2.3374 1.3862c-.0862 3.607-2.3374 4.8974-2.3374 4.8974l.0777.8376c2.5657-.7428 3.5217-.6632 3.336-5.0216 1.2895 1.0583 2.4559 3.067 2.3355 4.3584-.125 1.3416-2.037 5.3768-1.8002 5.3058a87.7487 87.7487 0 0 1-8.4447 3.2043 2.9305 2.9305 0 0 0-1.9433-1.6723 12.7813 12.7813 0 0 0-1.784 1.7794c-2.347-.8527-4.4238-1.8002-6.5944-2.7211l-1.7055-.6282-.776-1.9897c-1.0422-2.579-1.5159-4.0154.1554-6.2789.3639-.4917.9977-1.5604 1.5558-1.7945-.109 3.6952-1.2242 5.4537 2.9438 5.4574l.0776-.8375s-1.8096-.2265-2.2492-4.8975zm2.073 11.2029c-.2074.2785-.3363.3486-.5428.6282.052.1392-.2066.1743-.1554.3136A2.8651 2.8651 0 0 0 9.01 14.353a2.6643 2.6643 0 0 0 1.7054-1.1511c-.2065-.4397-1.443-1.1626-1.8599-.9409Zm5.663 0c-.414.2785-.9048.6632-1.3188.9418.1288.2094.8015.7324.9313.9417.3904.235.2957.4274.776.2094a1.4013 1.4013 0 0 0 .8527-1.2554c-.2065-.2444-.414-.593-.6205-.8375Z\"},\"child\":[]}]})(props);\n};\nexport function SiMamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.102 9.629c.245-1.695 2.139-6.979 7.454-7.98 3.137-.592 7.005 1.034 9.72 3.788-1.354.929-2.259 1.732-2.944 2.708.511 1.892 2.018 2.663 3.078 2.984-1.175-.711-1.917-1.381-2.376-2.812 2.513-2.988 5.205-3.954 5.432-3.978 2.102 1.677 3.586 4.735 3.532 7.955-.062 3.728-2.09 7.569-4.415 9.121-.318.151-1.053-.25-1.153-.687.476-1.105 1.601-3.795 1.74-5.806.131-1.928-1.146-3.061-2.219-1.667-1.489 2.494-2.139 5.592-2.789 8.934-1.095.313-2.952.392-3.756-.036-.101-2.068.381-5.601-.991-6.84-.588-.533-1.169-.285-1.562.205-.992 1.227-.972 4.414-.78 6.479-1.109.686-2.99.543-4.179.117-.477-3.245-1.597-7.202-2.512-10.23-.255 1.216-.379 2.664-.34 3.908-.611-.498-1.308-3.116-.94-6.163z\"},\"child\":[]}]})(props);\n};\nexport function SiMan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.979 14.943h2.05L15.46 18.7h-2.054l-.263-.409h-2.278l-.264.41H8.548zm1.025 1.568l-.458.711h.916l-.458-.712zM0 17.372C0 10.704 5.372 5.3 12 5.3s12 5.405 12 12.073c0 .449-.024.892-.072 1.328H22.58c.054-.435.082-.878.082-1.328 0-5.924-4.774-10.726-10.662-10.726-5.889 0-10.661 4.802-10.661 10.726 0 .45.027.893.08 1.328H.073A12.254 12.274 0 0 1 0 17.372zm2.237-2.43h1.83l1.22 1.228 1.22-1.227h1.831V18.7H6.363v-1.38l-1.075 1.082-1.076-1.082v1.38H2.237v-3.757zm13.42 0h1.927l2.17 1.62v-1.62h1.975V18.7h-1.942l-2.156-1.605V18.7h-1.975Z\"},\"child\":[]}]})(props);\n};\nexport function SiManageiq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.095.1C5.718.094.544 5.26.538 11.637v.022c0 2.069.547 4.005 1.496 5.683l2.869-2.868a7.685 7.685 0 0 1-.54-2.815c0-4.262 3.47-7.73 7.732-7.73s7.732 3.468 7.732 7.73-3.47 7.732-7.732 7.732a7.685 7.685 0 0 1-2.6-.46L6.596 21.83a11.515 11.515 0 0 0 5.499 1.388c2.316 0 4.467-.686 6.275-1.856l2.393 2.392L24 20.512l-2.349-2.349c1.262-1.852 2-4.09 2-6.505C23.66 5.269 18.452.078 12.096.101L12.095.1zm0 9.34c-1.225 0-2.214.991-2.214 2.217s.989 2.215 2.214 2.215a2.216 2.216 0 1 0 0-4.432zm-4.24 3.368C7.57 13.09.273 20.39 0 20.662L3.24 23.9l7.855-7.855-3.24-3.238v.001z\"},\"child\":[]}]})(props);\n};\nexport function SiManjaro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h6.75V6.75h8.625V0H0zm8.625 8.625V24h6.75V8.625h-6.75zM17.25 0v24H24V0h-6.75z\"},\"child\":[]}]})(props);\n};\nexport function SiMantine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.377 0 0 5.377 0 12s5.377 12 12 12 12-5.377 12-12S18.623 0 12 0zm-1.613 6.15a.91.91 0 0 1 .59.176c.43.317.825.68 1.177 1.082h2.588a.91.91 0 0 1 .912.906.909.909 0 0 1-.912.907h-1.43c.4.908.604 1.889.602 2.88a7.133 7.133 0 0 1-.601 2.883h1.427a.91.91 0 0 1 .914.907.91.91 0 0 1-.914.906h-2.588a7.399 7.399 0 0 1-1.175 1.082.919.919 0 0 1-1.28-.19.904.904 0 0 1 .191-1.268 5.322 5.322 0 0 0 2.2-4.32c0-1.715-.801-3.29-2.2-4.32a.906.906 0 0 1-.191-1.268H9.7a.916.916 0 0 1 .688-.363zm-.778 4.295a1.36 1.36 0 0 1 1.354 1.354v.033a1.36 1.36 0 0 1-1.354 1.32 1.36 1.36 0 0 1-1.353-1.32v-.033a1.36 1.36 0 0 1 1.353-1.354z\"},\"child\":[]}]})(props);\n};\nexport function SiMapbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zm5.696 14.943c-4.103 4.103-11.433 2.794-11.433 2.794S4.94 10.421 9.057 6.304c2.281-2.281 6.061-2.187 8.45.189s2.471 6.168.189 8.45zm-4.319-7.91l-1.174 2.416-2.416 1.174 2.416 1.174 1.174 2.416 1.174-2.416 2.416-1.174-2.416-1.174-1.174-2.416z\"},\"child\":[]}]})(props);\n};\nexport function SiMapillary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.362 11.812c-.564-.305-.46-1.099.25-1.302.602-.17 5.495-1.81 6.975-2.308a.897.897 0 0 0 .565-.558L10.528.671C10.75.02 11.555.017 11.884.65c.117.224 4.546 8.25 4.7 8.591.154.341.055.718-.295.935-.35.218-.918.544-1.117.667-.36.223-.704.068-.869-.277-.163-.346-1.427-2.577-1.942-3.525-.258-.472-1.033-.654-1.295.111-.187.553-.627 1.842-.857 2.514a.93.93 0 0 1-.567.564l-2.582.855c-.509.168-.756.948-.069 1.277.144.07 3.24 1.73 3.56 1.882.32.152.497.59.31.9-.255.425-.582.962-.7 1.138a.728.728 0 0 1-.948.224c-.34-.179-8.651-4.584-8.853-4.692zm22.528 11.91c-.334-.18-10.918-5.78-11.355-6.003-.436-.222-.542-.606-.308-1.021.118-.211.376-.633.586-.972.288-.467.709-.468.946-.33.238.138 3.598 1.906 3.816 2.025.512.284 1.27-.363.93-.93-.163-.27-1.579-2.853-2.03-3.705-.203-.387-.147-.736.31-.968a17.5 17.5 0 0 0 .98-.568c.357-.216.834-.052 1.028.27.193.325 5.926 10.887 6.109 11.215.362.651-.343 1.348-1.011.988\"},\"child\":[]}]})(props);\n};\nexport function SiMaplibre (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm0 3.19c2.937 0 5.371 2.265 5.371 5.035 0 4.111-4.364 7.635-5.035 8.138-.084 0-.084.084-.084.084-.084.084-.168.084-.168.084s-.168 0-.168-.084l-.084-.084c-.84-.503-5.203-3.943-5.203-8.138 0-2.77 2.434-5.036 5.371-5.036zm0 2.601c-1.427 0-2.602 1.173-2.602 2.684 0 1.51 1.175 2.685 2.602 2.685 1.427 0 2.602-1.175 2.602-2.685S13.427 5.79 12 5.79zM8.979 17.287h6.042a.66.66 0 0 1 .67.672v2.014a.66.66 0 0 1-.67.67H8.98a.66.66 0 0 1-.67-.67v-2.014a.66.66 0 0 1 .67-.672zm.755 1.258v.924h4.448v-.924H9.734z\"},\"child\":[]}]})(props);\n};\nexport function SiMaptiler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.794 1.655 4.188 4.188 4.204-4.204A6.13 6.13 0 0 0 12 0a6.136 6.136 0 0 0-4.204 1.655ZM3.25 6.197 7.455 1.99l4.19 4.19-4.206 4.207Zm-.315 8.697 4.168-4.168-2.889-2.89-1.298-1.299a6.19 6.19 0 0 0 .02 8.357zm14.728-5.64 3.073-3.073-4.208-4.207-4.207 4.207 4.207 4.206Zm-6.015 6.013L7.44 11.061l-4.172 4.172 4.206 4.208zm5.216-4.543 4.185 4.185a6.18 6.18 0 0 0 .02-8.387l-4.205 4.202zm-2.448 6.639 2.093 2.092 4.207-4.206-4.188-4.188-4.207 4.206zM11.968 24a3007.16 3007.16 0 0 0 4.2-4.208l-4.187-4.188-4.17 4.174c1.386 1.407 2.773 2.813 4.157 4.222Z\"},\"child\":[]}]})(props);\n};\nexport function SiMariadb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.157 4.412c-.676.284-.79.31-1.673.372-.65.045-.757.057-1.212.209-.75.246-1.395.75-2.02 1.59-.296.398-1.249 1.913-1.249 1.988 0 .057-.65.998-.915 1.32-.574.713-1.08 1.079-2.14 1.59-.77.36-1.224.524-4.102 1.477-1.073.353-2.133.738-2.367.864-.852.449-1.515 1.036-2.203 1.938-1.003 1.32-.972 1.313-3.042.947a12.264 12.264 0 00-.675-.063c-.644-.05-1.023.044-1.332.334L0 17.193l.177.088c.094.05.353.234.561.398.215.17.461.347.55.391.088.044.17.088.183.101.012.013-.089.17-.228.353-.435.581-.593.871-.574 1.048.019.164.032.17.43.17.517-.006.826-.056 1.261-.208.65-.233 2.058-.94 2.784-1.4.776-.5 1.717-.998 1.956-1.042.082-.02.354-.07.594-.114.58-.107 1.464-.095 2.587.05.108.013.373.045.6.064.227.025.43.057.454.076.026.012.474.037.998.056.934.026 1.104.007 1.3-.189.126-.133.385-.631.498-.985.209-.643.417-.921.366-.492-.113.966-.322 1.692-.713 2.411-.259.499-.663 1.092-.934 1.395-.322.347-.315.36.088.315.619-.063 1.471-.397 2.096-.82.827-.562 1.647-1.691 2.19-3.03.107-.27.22-.22.183.083-.013.094-.038.315-.057.498l-.031.328.353-.202c.833-.48 1.414-1.262 2.127-2.884.227-.518.877-2.922 1.073-3.976a9.64 9.64 0 01.271-1.042c.127-.429.196-.555.48-.858.183-.19.625-.555.978-.808.72-.505.953-.75 1.187-1.205.208-.417.284-1.13.132-1.357-.132-.202-.284-.196-.763.006Z\"},\"child\":[]}]})(props);\n};\nexport function SiMariadbfoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.475 4.031c-.369.013-.262.179-1.06.376-.805.198-1.78.077-2.646.441-2.267.95-2.634 4.624-5.335 6.045-1.77 1-3.576 1.229-5.19 1.735-1.295.52-2.101.864-3.051 1.683-.737.635-.917 1.252-1.687 2.05-.782 1.062-3.744.118-4.506 1.45.402.26.634.332 1.34.24-.146.276-1.074.64-.906 1.048 0 0 2.245.409 4.137-.733.882-.359 1.71-1.119 3.08-1.301 1.777-.236 3.778.373 5.925.544-.444.877-.902 1.395-1.391 2.119-.152.163.13.307.65.209.937-.232 1.615-.483 2.289-.949.878-.606 1.256-1.16 1.997-2.039.644 1.032 2.914 1.26 3.38.367-.867-.367-1.052-2.277-.755-3.101.35-.786.603-1.896.886-2.928.256-.93.413-2.349.718-3.075.365-.903 1.073-1.185 1.605-1.664.532-.479 1.06-.878 1.045-1.974-.006-.356-.19-.553-.525-.543zm-.573.445c.09.307.231.448.841.504-.089.774-.606 1.196-1.183 1.602-.509.356-1.066.7-1.424 1.258-.367.57-.951 2.23-1.52 4.159-.492 1.668-1.065 2.807-2.276 3.807-.15-.36.17-.568.03-.897-.175.496-.558 1.218-.789 1.66-.76 1.454-2.019 2.63-3.901 2.962.893-1.21 1.787-2.543 1.896-4.627-.4.087-.432 1.164-1.078 1.56-.415.045-.995-.05-1.573-.12-1.726-.203-3.465-.282-5.087.24-1.105.353-2.356 1.447-3.292 1.853-1.1.478-1.477.515-2.869.473-.174-.234 1.002-.536.936-1.047-.536-.058-.848.071-1.314-.14a.707.707 0 01.223-.24c.854-.59 3.278-.14 3.927-.777.401-.392.663-.804.935-1.204.265-.388.538-.765.953-1.105.154-.125.394-.341.571-.463.709-.484 1.51-.831 2.373-1.133 1.174-.413 2.361-.552 3.613-1.03.774-.296 1.508-.576 2.193-1.088.162-.121.407-.326.55-.465 2.22-2.192 2.361-5.177 5.415-5.49.37-.038.672-.026.948-.034.317-.01.597-.047.902-.218zm-.15.197c-.017 0-.049.015-.093.056-.265.272-.79.884-.98 1.454-.05.155.048.11.082.01.189-.584.788-1.226.971-1.42.045-.052.051-.099.02-.1zm.08.133c-.017.002-.046.022-.084.069-.224.306-.657.77-.766 1.36-.027.16.064.103.082-.001.106-.605.608-1.11.763-1.327.037-.058.036-.105.006-.101zm.098.12c-.017.004-.044.026-.077.076-.199.325-.46.699-.519 1.295-.013.162.073.097.083-.008.052-.612.379-1.032.515-1.262.032-.06.028-.107-.002-.1zm.107.091c-.018.005-.042.03-.071.082-.169.34-.328.6-.334 1.2.002.163.08.09.081-.015 0-.614.22-.925.335-1.166.026-.063.018-.11-.011-.1zm-2.064.294c-.526.013-.837.242-.938.68.432.375 1.338.074 1.177-.672a2.218 2.218 0 00-.24-.008Z\"},\"child\":[]}]})(props);\n};\nexport function SiMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.27 19.385H1.73A1.73 1.73 0 010 17.655V6.345a1.73 1.73 0 011.73-1.73h20.54A1.73 1.73 0 0124 6.345v11.308a1.73 1.73 0 01-1.73 1.731zM5.769 15.923v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.46v7.847zM21.232 12h-2.309V8.077h-2.307V12h-2.308l3.461 4.039z\"},\"child\":[]}]})(props);\n};\nexport function SiMarketo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.146 0v24l6.134-4.886V3.334zM13.293 18.758l-4.939 2.157V2.086l4.939 1.462zM1.721 18.205l3.78-.999V5.188l-3.762-.606z\"},\"child\":[]}]})(props);\n};\nexport function SiMarko (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.4 5.46h-3.39l-2.3 3.77L7.4 5.46H4l-4 6.55 4 6.53h3.39l-4-6.54L5.7 8.23 8.01 12h3.39l2.31-3.78L16.03 12l-4.01 6.54h3.39l4-6.54zm4.6 0h-3.39l4 6.54-4.01 6.54h3.39L24 12z\"},\"child\":[]}]})(props);\n};\nexport function SiMarriott (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.802 11.083l-1.178 2.41c-.8 1.425-1.931 3.167-3.646 3.603-.668.232-1.255.023-1.9-.023L0 20.476a1.626 1.626 0 0 0 .59.386c3.647 1.39 5.122-.1 8.722-8.238l3.403 7.249h4.53l-2.14-4.893 1.213-2.53 3.345 7.311 4.337.027-7.59-16.677-3.475 1.738 2.738 6.222-1.201 2.445L9.45 2.678l-3.7 1.877Z\"},\"child\":[]}]})(props);\n};\nexport function SiMarvelapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.339 8.13c1.373 0-1.162 7.076-.845 10.138.317 3.063 3.696 2.218 3.485.423-.423-3.063 1.69-12.672 3.696-12.672 1.478 0-1.69 6.547-1.056 10.665.422 2.64 4.012 1.901 3.59.106-1.162-5.386 2.64-10.56 2.112-14.361C21.11.845 20.159 0 19.209 0c-3.379 0-6.125 6.97-6.125 6.97s.423-3.908-2.428-4.119C6.643 2.64 2.525 12.777 2.63 21.964c.106 2.957 3.696 2.429 3.485.106-.211-4.12 2.112-13.94 4.225-13.94z\"},\"child\":[]}]})(props);\n};\nexport function SiMaserati (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.678 21.213h4.67v.909h-4.67v-.909zm.87 2.787h2.93v-1.409h-2.93V24zm-.844-5.313c.575.523.881 1.28.83 2.056h2.944a2.575 2.575 0 0 1 .818-2.056H9.704zm-3.052-2.17v.683h10.696v-.683H6.652zm.478 3.087a3.833 3.833 0 0 0 1.74-.917H7.009l.121.917zm9.74 0l.121-.917h-1.86c.49.451 1.089.768 1.739.917zm-8.666-4.556A73.645 73.645 0 0 0 5.913 8.63c.644.102 1.283.237 1.913.405A18.885 18.885 0 0 0 3.51 5.583c1.226 2.378 2.378 5.987 2.965 9.465h1.73zm9.326 0c.587-3.478 1.74-7.087 2.961-9.465a18.877 18.877 0 0 0-4.308 3.452c.63-.169 1.268-.304 1.913-.405a65.966 65.966 0 0 0-2.292 6.418h1.726zM6.087 16.17h11.83v-.679H6.087v.679zm5.135-1.144c.312-.74.569-1.5.77-2.278.203.777.462 1.538.773 2.278h2.052c-1.743-2.87-2.234-6.665-2.343-10-.009-.343.13-.43.46-.283l1.053.474A15.501 15.501 0 0 1 11.991 0 15.494 15.494 0 0 1 10 5.217l1.052-.474c.33-.152.457-.06.457.283-.109 3.313-.6 7.109-2.34 10h2.053zm-5.135 3.191h11.83v-.678H6.087v.678z\"},\"child\":[]}]})(props);\n};\nexport function SiMastercard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.343 18.031c.058.049.12.098.181.146-1.177.783-2.59 1.238-4.107 1.238C3.32 19.416 0 16.096 0 12c0-4.095 3.32-7.416 7.416-7.416 1.518 0 2.931.456 4.105 1.238-.06.051-.12.098-.165.15C9.6 7.489 8.595 9.688 8.595 12c0 2.311 1.001 4.51 2.748 6.031zm5.241-13.447c-1.52 0-2.931.456-4.105 1.238.06.051.12.098.165.15C14.4 7.489 15.405 9.688 15.405 12c0 2.31-1.001 4.507-2.748 6.031-.058.049-.12.098-.181.146 1.177.783 2.588 1.238 4.107 1.238C20.68 19.416 24 16.096 24 12c0-4.094-3.32-7.416-7.416-7.416zM12 6.174c-.096.075-.189.15-.28.231C10.156 7.764 9.169 9.765 9.169 12c0 2.236.987 4.236 2.551 5.595.09.08.185.158.28.232.096-.074.189-.152.28-.232 1.563-1.359 2.551-3.359 2.551-5.595 0-2.235-.987-4.236-2.551-5.595-.09-.08-.184-.156-.28-.231z\"},\"child\":[]}]})(props);\n};\nexport function SiMastercomfig (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.479 0 .174 5.304.174 11.826V24h1.337v-6.716C3.486 21.064 7.446 23.65 12 23.65c4.554 0 8.514-2.586 10.49-6.367V24h1.336V11.826h-1.337c0 5.798-4.69 10.489-10.489 10.489-5.798 0-10.49-4.691-10.49-10.49C1.51 6.028 6.203 1.338 12 1.338zm0 3.72a8.107 8.107 0 100 16.214 8.107 8.107 0 000-16.215zm0 1.336a6.77 6.77 0 110 13.538 6.77 6.77 0 010-13.538z\"},\"child\":[]}]})(props);\n};\nexport function SiMastodon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z\"},\"child\":[]}]})(props);\n};\nexport function SiMaterialdesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.377 0 0 5.377 0 12s5.377 12 12 12 12-5.377 12-12S18.623 0 12 0zm0 .75c2.871 0 5.482 1.082 7.469 2.85H4.53A11.197 11.197 0 0 1 12 .75zm-7.186 3.6h14.372L12 18.723 4.814 4.35zM3.6 4.53V19.47A11.197 11.197 0 0 1 .75 12c0-2.87 1.082-5.481 2.85-7.468zm16.8 0A11.197 11.197 0 0 1 23.25 12c0 2.871-1.082 5.482-2.85 7.469V4.53zM4.35 5.1l7.275 14.55H4.35V5.1zm15.3 0v14.55h-7.275L19.651 5.1zM4.533 20.4H19.469A11.197 11.197 0 0 1 12 23.25a11.197 11.197 0 0 1-7.468-2.85z\"},\"child\":[]}]})(props);\n};\nexport function SiMaterialdesignicons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h7.2v2.4h9.6V0H24v7.2h-2.4v9.6H24V24h-7.2v-2.4H7.2V24H0v-7.2h2.4V7.2H0V0m16.8 7.2V4.8H7.2v2.4H4.8v9.6h2.4v2.4h9.6v-2.4h2.4V7.2M2.4 2.4v2.4h2.4V2.4m14.4 0v2.4h2.4V2.4M2.4 19.2v2.4h2.4v-2.4m14.4 0v2.4h2.4v-2.4z\"},\"child\":[]}]})(props);\n};\nexport function SiMaterialformkdocs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.029 18.772.777 1.166-5.417 2.709L0 16.451V4.063l5.417-2.709 5.298 7.948 7.867-5.24L24 1.354V16.84l-5.417 2.709zm2.023-13.827v13.253l3.949-1.975V2.97zM5.076 2.642 1.458 4.45 12.73 21.358l3.618-1.809z\"},\"child\":[]}]})(props);\n};\nexport function SiMatillion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.552 0-1.104.142-1.598.428L2.777 4.831A3.195 3.195 0 0 0 1.18 7.597v8.806c0 1.141.609 2.195 1.597 2.766l7.625 4.403a3.194 3.194 0 0 0 3.195 0l7.626-4.403a3.195 3.195 0 0 0 1.597-2.766V7.597a3.194 3.194 0 0 0-1.597-2.766L13.597.428A3.183 3.183 0 0 0 12 0Zm.033 6.215a1.383 1.383 0 0 1 1.012 2.286l-7.277 8.403a1.382 1.382 0 0 1-2.09-1.81l7.278-8.402a1.374 1.374 0 0 1 1.077-.477Zm2.689 3.105.025.001.059.002.082.005.055.007a1.373 1.373 0 0 1 .135.026l.073.019.035.012.091.034.038.017c.03.013.058.027.087.043l.033.018c.026.015.052.031.077.048l.045.031.071.055c.005.005.012.008.018.013l.019.019c.023.02.044.041.065.062l.037.039.031.033 4.533 5.296a1.38 1.38 0 0 1-1.049 2.281h-.001a1.38 1.38 0 0 1-1.05-.484l-3.484-4.07-3.482 4.07a1.38 1.38 0 0 1-1.051.484h-.001A1.38 1.38 0 0 1 9.164 15.1l4.533-5.296.03-.033.037-.039.062-.059.023-.022.022-.017.066-.05c.016-.011.031-.023.047-.033a1.23 1.23 0 0 1 .067-.042l.049-.027.072-.036a1.12 1.12 0 0 1 .177-.066.932.932 0 0 1 .141-.035l.06-.01.058-.007.081-.005.033-.003Z\"},\"child\":[]}]})(props);\n};\nexport function SiMatomo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.664 15.37a3.336 3.336 0 0 1-3.332 3.332C1.495 18.702 0 17.208 0 15.37s1.495-3.333 3.332-3.333a3.338 3.338 0 0 1 3.332 3.333zm11.565-3.644a3.658 3.658 0 0 1-1.987.591 3.642 3.642 0 0 1-1.872-.529l.008.012a3.728 3.728 0 0 1-1.235-1.19l-2.612-3.693a.17.17 0 0 1-.027-.033A3.312 3.312 0 0 0 7.67 5.298a3.318 3.318 0 0 0-2.848 1.586.146.146 0 0 1-.021.028l-3.428 5.343a3.663 3.663 0 0 1 5.094 1.18.13.13 0 0 1 .015.018l2.756 3.869a3.305 3.305 0 0 0 2.699 1.38 3.31 3.31 0 0 0 2.711-1.379l.009-.013c.073-.103.137-.202.195-.305l1.442-2.255 1.935-3.024zm5.275 1.902l-.014-.028-.044-.066a1.109 1.109 0 0 0-.029-.044l-3.525-5.37c.024.168.052.335.052.51 0 .741-.219 1.457-.634 2.068l-2.803 4.38 1.416 2.179-.002.002a.131.131 0 0 1 .024.028 3.338 3.338 0 0 0 2.723 1.415A3.335 3.335 0 0 0 24 15.37c0-.613-.171-1.216-.496-1.742zm-7.262-1.666a3.336 3.336 0 0 0 3.332-3.333 3.336 3.336 0 0 0-3.332-3.332 3.336 3.336 0 0 0-3.332 3.332 3.338 3.338 0 0 0 3.332 3.333z\"},\"child\":[]}]})(props);\n};\nexport function SiMatrix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01-.559-.032-.812a1.755 1.755 0 0 0-.18-.66 1.106 1.106 0 0 0-.438-.448c-.194-.11-.457-.166-.785-.166-.332 0-.6.064-.803.189a1.38 1.38 0 0 0-.48.499 1.946 1.946 0 0 0-.231.696 5.56 5.56 0 0 0-.06.785v4.768h-2.35v-4.8c0-.254-.004-.503-.018-.752a2.074 2.074 0 0 0-.143-.688 1.052 1.052 0 0 0-.415-.503c-.194-.125-.476-.19-.854-.19-.111 0-.259.024-.439.074-.18.051-.36.143-.53.282-.171.138-.319.337-.439.595-.12.259-.18.6-.18 1.02v4.966H5.46V7.81zm15.693 15.64V.55H21.72V0H24v24h-2.28v-.55z\"},\"child\":[]}]})(props);\n};\nexport function SiMatterdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.494 9.614c-.152 0-.265.046-.333.121a.412.412 0 0 0-.114.296c0 .314.14.469.416.469.167 0 .288-.038.364-.114a.416.416 0 0 0 .11-.302c0-.314-.137-.47-.417-.47h-.023zm-17.341.038-1.078 1.866L0 13.383h2.85v-1.9l-.058-.722Zm18.086.015v3.394l.25-.461.022.007a2.232 2.232 0 0 0 .73.224.31.31 0 0 0 .179-.053c.049-.03.068-.065.068-.125 0-.065-.027-.114-.099-.155a1.298 1.298 0 0 0-.17-.091 2.811 2.811 0 0 1-.738-.39c-.151-.129-.227-.322-.227-.567a.757.757 0 0 1 .303-.625 1.196 1.196 0 0 1 .753-.227c.295 0 .53.076.704.212a.844.844 0 0 1 .302.587v.022l-.726.14-.008-.03c-.011-.114-.038-.185-.087-.238a.299.299 0 0 0-.223-.08.227.227 0 0 0-.163.057c-.045.042-.068.087-.068.129 0 .049.008.079.019.102a.254.254 0 0 0 .05.068l.075.064a.802.802 0 0 0 .094.053l.13.05c.04.026.147.075.313.15v-.01a1.392 1.392 0 0 1 .44.275c.116.114.177.28.177.489 0 .211-.098.4-.291.567a1.022 1.022 0 0 1-.492.227H24V9.667Zm-10.08.292-.726.215-.03.504-.333.045-.072.503h.39v1.124c0 .386.049.662.15.832.107.17.322.254.655.254a1.43 1.43 0 0 0 .704-.197l-.136-.446a1.574 1.574 0 0 1-.288.049c-.113 0-.196-.034-.242-.102-.05-.065-.072-.186-.072-.356v-1.162h.59l.091-.556h-.68zm1.903 0-.726.215-.03.504-.333.045-.076.503h.394v1.124c0 .386.049.662.15.832.103.17.323.254.655.254a1.415 1.415 0 0 0 .7-.197l-.136-.446a1.574 1.574 0 0 1-.287.049c-.114 0-.193-.034-.242-.102-.046-.065-.069-.186-.069-.356v-1.162h.59l.091-.556h-.68zm-7.862.67a.848.848 0 0 0-.677.332h-.02l-.071-.31-.598.076.053.757v1.891h.772v-2.001a.39.39 0 0 1 .306-.148c.182 0 .277.114.277.33v1.82h.768v-2.002a.378.378 0 0 1 .31-.148c.178 0 .265.114.265.33v1.82h.78v-1.783c0-.643-.262-.965-.78-.965a.897.897 0 0 0-.727.33c-.12-.22-.333-.33-.628-.33Zm3.61 0a2.244 2.244 0 0 0-.564.086 2.126 2.126 0 0 0-.473.174l.215.477a2.584 2.584 0 0 1 .666-.151c.137 0 .227.03.273.083.049.05.072.133.072.242v.2l-.44.076a1.389 1.389 0 0 0-.665.273c-.151.132-.227.33-.227.594 0 .503.242.757.726.757a.908.908 0 0 0 .742-.379h.019a.957.957 0 0 0 .386.379l.435-.413a.757.757 0 0 1-.167-.25 1.07 1.07 0 0 1-.034-.302v-.95a1.62 1.62 0 0 0-.03-.34.742.742 0 0 0-.113-.277.518.518 0 0 0-.292-.211 1.472 1.472 0 0 0-.492-.069zm6.337 0c-.39.007-.68.136-.881.382a1.612 1.612 0 0 0-.303 1.033c0 .93.393 1.392 1.173 1.392a2.005 2.005 0 0 0 1.003-.273l-.16-.472a2.085 2.085 0 0 1-.688.147c-.19 0-.318-.05-.393-.147a.757.757 0 0 1-.114-.45h1.04l.36-.05c0-.212-.004-.39-.015-.53-.03-.352-.114-.605-.242-.756-.16-.186-.405-.277-.742-.277zm2.683 0a.598.598 0 0 0-.378.155.866.866 0 0 0-.254.423h-.019l-.094-.556-.583.076.057.749v1.9h.768v-1.514c0-.19.053-.33.159-.428a.522.522 0 0 1 .355-.147.984.984 0 0 1 .273.049l.178-.605a.946.946 0 0 0-.432-.099h-.026zm3.05.018-.772.08v2.395a1.513 1.513 0 0 1-.053.507c-.034.087-.133.19-.295.31l.423.447a1.892 1.892 0 0 0 .56-.466 1.06 1.06 0 0 0 .137-.598zm1.43 0a1.162 1.162 0 0 0-.727.224.692.692 0 0 0-.28.575c0 .242.076.408.216.526a2.747 2.747 0 0 0 .719.386 1.699 1.699 0 0 1 .182.102c.079.045.12.113.12.189a.19.19 0 0 1-.09.174.367.367 0 0 1-.208.05 2.126 2.126 0 0 1-.73-.205l-.25.45c.329.19.654.288.983.288a1.135 1.135 0 0 0 .769-.235c.185-.163.272-.337.272-.533a.61.61 0 0 0-.163-.454 1.29 1.29 0 0 0-.416-.258 3.746 3.746 0 0 1-.325-.147l-.114-.05a1.022 1.022 0 0 1-.113-.06l-.08-.068a.31.31 0 0 1-.06-.08.375.375 0 0 1-.015-.125.22.22 0 0 1 .075-.166.284.284 0 0 1 .197-.072c.106 0 .19.038.253.099a.439.439 0 0 1 .103.242l.62-.118a.795.795 0 0 0-.265-.53 1.014 1.014 0 0 0-.673-.204Zm-7.204.58h.022c.118 0 .193.037.227.113.034.075.05.212.05.4h-.613a.829.829 0 0 1 .083-.381c.049-.084.125-.125.23-.133zm-6.103 1.01v.472a.47.47 0 0 1-.341.144c-.178 0-.265-.083-.265-.25 0-.113.05-.189.14-.242a1.4 1.4 0 0 1 .466-.125zm-4.295.128v1.007h.48v-.174zm14.094.064a.488.488 0 0 0-.454.489.488.488 0 0 0 .492.488.488.488 0 0 0 .484-.492.488.488 0 0 0-.488-.485.488.488 0 0 0-.037 0zm2.437.742v.257h.704a2.176 2.176 0 0 1-.704-.257z\"},\"child\":[]}]})(props);\n};\nexport function SiMattermost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.081 0C7.048-.034 2.339 3.125.637 8.153c-2.125 6.276 1.24 13.086 7.516 15.21 6.276 2.125 13.086-1.24 15.21-7.516 1.727-5.1-.172-10.552-4.311-13.557l.126 2.547c2.065 2.282 2.88 5.512 1.852 8.549-1.534 4.532-6.594 6.915-11.3 5.321-4.708-1.593-7.28-6.559-5.745-11.092 1.031-3.046 3.655-5.121 6.694-5.67l1.642-1.94A4.87 4.87 0 0 0 12.08 0zm3.528 1.094a.284.284 0 0 0-.123.024l-.004.001a.33.33 0 0 0-.109.071c-.145.142-.657.828-.657.828L13.6 3.4l-1.3 1.585-2.232 2.776s-1.024 1.278-.798 2.851c.226 1.574 1.396 2.34 2.304 2.648.907.307 2.302.408 3.438-.704 1.135-1.112 1.098-2.75 1.098-2.75l-.087-3.56-.07-2.05-.047-1.775s.01-.856-.02-1.057a.33.33 0 0 0-.035-.107l-.006-.012-.007-.011a.277.277 0 0 0-.229-.14z\"},\"child\":[]}]})(props);\n};\nexport function SiMatternet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.229 4.18l-4.066 2.327V1.826L11.993 0 8.827 1.83v4.677L4.78 4.17 1.606 6v3.664L5.657 12l-4.054 2.343V18l3.165 1.831 4.044-2.338v4.681L11.983 24l3.174-1.831v-4.676l4.052 2.327 3.173-1.829v-3.646L18.339 12l4.058-2.336V6l-3.164-1.82h-.004zm.373 3.429V5.715l1.639.942v1.905l-1.636-.953h-.003zm1.638 9.286l-6.075-3.504 1.65-.945L21.239 15v1.896l.001-.001zm-6.827-3.95L12.763 12l6.452-3.726 1.641.944-6.446 3.727h.003zM3.134 9.219l1.641-.944L11.228 12l-1.639.945-6.455-3.726zm5.69 4.17l-6.075 3.508V15l4.435-2.555 1.641.945v-.001zM2.749 8.564V6.66l1.64-.945v1.898l-1.64.951zm9.627 0V1.55l1.641.937V7.61l-1.641.953v.001zm-2.402-.96V2.493l1.64-.944v7.004l-1.64-.949zm8.866-1.889v1.898l-6.456 3.734V9.442l6.456-3.727zm-7.228 3.724v1.897L5.153 7.609V5.715l6.46 3.721-.001.003zm-2.403 6.513l-4.435 2.555-1.64-.944 6.074-3.508v1.897zm.765-2.343l1.64-.945v7.453l-1.64.959v-7.467zm3.656 8.115l-1.639.954-1.64-.951 1.64-.946 1.639.946v-.003zm.394-.657l-1.648-.95v-7.441l1.648.944zm6.831-3.504l-1.641.944-4.425-2.555v-1.897l6.075 3.508h-.009z\"},\"child\":[]}]})(props);\n};\nexport function SiMautic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.394 0 0 5.374 0 12s5.394 12 12 12c6.626 0 12-5.394 12-11.98a11.88 11.88 0 0 0-.727-4.12.815.815 0 0 0-1.05-.486.815.815 0 0 0-.486 1.05c.425 1.132.627 2.324.627 3.556 0 5.717-4.647 10.364-10.364 10.364-5.717 0-10.363-4.647-10.363-10.364C1.637 6.303 6.283 1.657 12 1.657c1.374 0 2.707.262 3.98.787A.843.843 0 0 0 17.05 2a.843.843 0 0 0-.444-1.07A11.588 11.588 0 0 0 12 0zm8.08 4.323-3.595.707.646.647L12 11.111 7.616 6.606 5.091 17.051h2.343l1.394-5.799L12 14.707l6.788-7.394.646.667zm-2.828 6.445-1.858 1.94 1.03 4.343h2.344z\"},\"child\":[]}]})(props);\n};\nexport function SiMax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.769 0A1.77 1.77 0 0 0 0 1.769V22.23A1.77 1.77 0 0 0 1.769 24H22.23A1.77 1.77 0 0 0 24 22.231V1.77A1.77 1.77 0 0 0 22.231 0zm12.485 3.28a4.301 4.301 0 0 1 4.3 4.302 4.301 4.301 0 0 1-1.993 3.63 6.085 6.085 0 0 1 1.054 3.422 6.085 6.085 0 0 1-6.085 6.085 6.085 6.085 0 0 1-6.085-6.085 6.085 6.085 0 0 1 4.66-5.916 4.301 4.301 0 0 1-.152-1.136 4.301 4.301 0 0 1 4.301-4.301zm0 1.849a2.453 2.453 0 0 0-2.453 2.453 2.453 2.453 0 0 0 2.453 2.453 2.453 2.453 0 0 0 2.453-2.453 2.453 2.453 0 0 0-2.453-2.453zm-2.724 5.268a4.237 4.237 0 0 0-4.237 4.237 4.237 4.237 0 0 0 4.237 4.237 4.237 4.237 0 0 0 4.237-4.237 4.237 4.237 0 0 0-4.237-4.237zm.032 2.54a1.781 1.781 0 1 1 0 3.562 1.781 1.781 0 0 1 0-3.562Z\"},\"child\":[]}]})(props);\n};\nexport function SiMaxplanckgesellschaft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 12 12A12.011 12.011 0 0 0 12 0zm-.049.331A11.669 11.669 0 0 1 23.67 12 11.68 11.68 0 0 1 12 23.669 11.669 11.669 0 0 1 11.951.33zM12 1.464A10.56 10.56 0 0 0 1.45 12c0 3.371 1.715 6.617 4.503 8.64a1.543 1.543 0 0 0 .32.183.126.126 0 0 0 .126-.023l.034-.057a.114.114 0 0 0 .035-.092c0-.08-.103-.148-.24-.343a3.166 3.166 0 0 1-.537-1.725 2.526 2.526 0 0 1 .514-1.566c.423.446 1.337 1.246 1.314 1.989-.023.743-.789.777-.617 1.394.103.389.389.229.446.526.08.503.765.834 1.062.788.08-.011.138.046.275.194.137.15.708.183.937.138.228-.046.468.16.914.103.446-.057.697-.103.937-.103.24 0 2.572-.035 4.115.205.274.046.354-.08.24-.285-.56-.983-.64-1.806-.32-2.858.57.046 1.394.195 2.468-.457a1.257 1.257 0 0 0 .583-1.085c-.011-.24-.114-.537-.057-.766.057-.229.148-.308.24-.366.411-.297.114-.525.046-.548a.389.389 0 0 0 .125-.526c-.08-.08-.308-.709-.045-.834.262-.126.605-.206.925-.355a.514.514 0 0 0 .275-.685 124.62 124.62 0 0 0-1.029-2.4c-.16-.355-.057-.583-.103-.835-.046-.251-.308-.8-.491-1.234-.08-.194.434-.148.046-.868 0-.023.537-.229 0-.629a3.017 3.017 0 0 1-.686-.766.114.114 0 0 1 0-.148c.308-.274.32-.663-.012-.857-.331-.195-.514 0-.765.16-.08.057-.126.09-.218.057l-.205-.137c.308-.298.377-.595.354-.64-.023-.046-.526-.149-1.166.114l-.045-.034c.263-.446.114-.766.102-.79h-.011a9.257 9.257 0 0 1 1.417-1.519h.012c.022-.034.034-.069-.023-.103l-.115-.068A10.56 10.56 0 0 0 12 1.464zm-.073.316a10.206 10.206 0 0 1 4.805 1.169.046.046 0 0 1 .012.08 11.12 11.12 0 0 0-1.166 1.302 8.354 8.354 0 0 0-3.577-.8A8.491 8.491 0 0 0 3.531 12a8.24 8.24 0 0 0 2.046 5.508 2.64 2.64 0 0 0-.217 1.075 2.926 2.926 0 0 0 .377 1.451C3.268 18.07 1.783 15.097 1.783 12A10.206 10.206 0 0 1 11.926 1.78zm.28.266c-.034 0-.046.023-.057.046l-.103 1.142a.046.046 0 0 0 .046.046h.125c.023.011.046-.011.046-.034l.114-1.143a.057.057 0 0 0-.046-.057zm-1.686.111c-.006 0-.011 0-.017.003h-.137c-.023.011-.046.034-.035.057l.218 1.132c0 .034.023.045.057.045l.125-.023c.023 0 .046-.022.035-.045l-.217-1.132a.038.038 0 0 0-.03-.037zm3.514.106L13.59 3.36a.046.046 0 0 0 .034.069l.126.034a.057.057 0 0 0 .057-.034l.434-1.075a.046.046 0 0 0-.034-.068l-.137-.023zm-5.313.34a.046.046 0 0 0-.013.003l-.114.034a.046.046 0 0 0-.034.068l.514 1.04.057.023.126-.045a.046.046 0 0 0 .035-.069L8.766 2.63a.046.046 0 0 0-.045-.026zm6.913.134a.046.046 0 0 0-.034.017l-.743.949c-.023.023-.011.057.023.068l.126.046c.023.012.034 0 .057-.011l.743-.949a.057.057 0 0 0-.023-.068l-.126-.046a.046.046 0 0 0-.023-.006zm-8.592.639a.028.028 0 0 0-.025.007l-.114.068c-.034.012-.034.046-.011.07l.765.879c.012.023.034.023.057.011l.115-.068a.046.046 0 0 0 .011-.069l-.766-.88a.06.06 0 0 0-.032-.018zm4.93.498a8.137 8.137 0 0 1 .028 0 8.011 8.011 0 0 1 3.383.732 2.583 2.583 0 0 0-.469.297A7.211 7.211 0 0 0 12 4.32 7.691 7.691 0 0 0 4.32 12c0 1.84.571 3.451 1.691 4.8-.057.103-.148.24-.251.4h-.011A7.909 7.909 0 0 1 3.874 12a8.137 8.137 0 0 1 8.098-8.126zm-6.51.618l-.102.09a.057.057 0 0 0 0 .08l.971.675c.023.011.046.012.058-.011l.103-.08a.057.057 0 0 0 0-.08l-.972-.674zm10.177.191c.008 0 .014 0 .018.003.069.034-.091.64-.446.983-.354.342-.925.708-.982.697-.058-.012.194-.674.491-1.017.3-.365.8-.659.919-.666zm-3.616.025a6.491 6.491 0 0 1 2.56.526 3.577 3.577 0 0 0-.423.755c0-.218-.057-.389-.046-.526.012-.137-.582.103-1.108.948a2.274 2.274 0 0 0-.252.606c-.011-.32-.08-.56-.103-.56a1.84 1.84 0 0 0-.971 1.006 2.56 2.56 0 0 0-.126.388c-.023-.217-.08-.365-.103-.365-.023 0-.674.263-.982 1.017a1.76 1.76 0 0 0-.126.526c-.057-.263-.16-.423-.194-.389-.217.274-.652.4-.87 1.097a1.509 1.509 0 0 0-.079.48c-.091-.228-.229-.366-.263-.366s-.697.629-.8 1.246a1.806 1.806 0 0 0 .023.663c-.126-.206-.286-.343-.354-.549-.103.058-.652.572-.663 1.223a2.251 2.251 0 0 0 .08.697c-.183-.331-.434-.48-.469-.468-.034.011-.457.468-.548 1.268a1.349 1.349 0 0 0 .045.526c-.171-.194-.32-.297-.33-.286a2.56 2.56 0 0 0-.413 1.018A7.474 7.474 0 0 1 4.651 12c-.16-4.046 3.235-7.303 7.372-7.292zm4.571.618a2.023 2.023 0 0 1 .035 0c.091.011-.218.548-.755.777-.537.228-.971.285-1.017.263-.046-.023.469-.663.914-.858a2.023 2.023 0 0 1 .823-.182zm-2.643.316c.003 0 .004 0 .003.004-.011.045.24.754-.297 1.188a2.4 2.4 0 0 0-.64.732c-.057.102-.217-.572.194-1.212.236-.375.693-.71.74-.712zM4.15 5.89a.031.031 0 0 0-.024.018l-.08.103a.046.046 0 0 0 .023.08l1.12.435a.046.046 0 0 0 .045-.023l.092-.103c.023-.023.011-.057-.023-.069l-1.12-.434a.057.057 0 0 0-.033-.007zm13.44.1c.048 0 .09.014.124.044.297.298-.331.469-.206.697a3.509 3.509 0 0 0 .858.96c.137.115.16.355-.377.469-.538.114-2.697.674-3.84 1.886-1.429 1.508-2.332 3.463-2.457 3.2-.126-.263-.412-.32-.366-.4 2.045-3.52 5.257-6.298 6.011-6.766a.468.468 0 0 1 .254-.09zm-1.339.113l.183.126c.115.068.16.09.103.137C13.943 8.57 12 11.372 11.154 12.72c-.023.046-.068.034-.148.034-.903-.068-1.417 1.017-1.017 2.035-.046.205-.48.605-.515.628-.034.023-.114.16.034.149.15-.012.48-.366.618-.515.045.069.251.229.148.32a7.269 7.269 0 0 1-1.588 1.2c-.297.138.48.24 1.794-.948.08-.069.171.274.286.423-.229.743.331 2.183.24 2.628a.32.32 0 0 1-.32.309c-1.303.034-1.429-.034-2.092.16-.308.091-.228.297-.011.24.217-.057.526-.172 1.931-.08.355.011.743-.069.743-.652s-.411-2.102-.274-2.32a.789.789 0 0 0 .4.16c-.023.515.8 2.172.434 3.086-.137.343-.731.309-1.76.206-1.748-.172-2.32.206-2.354 0-.034-.229.183-.446.183-.937 0-.492-.755-1.44-1.269-1.977a2.229 2.229 0 0 0 .903-.218c.754-.354.903-1.154.926-1.188a1.257 1.257 0 0 0-.435-.046l.092-.046c.731-.4.925-1.257.891-1.268a1.943 1.943 0 0 0-.457-.034l.229-.08c.777-.309.994-1.177.971-1.212a1.84 1.84 0 0 0-.4-.046l.217-.091c.709-.354.96-1.154.926-1.177a1.2 1.2 0 0 0-.377-.046 2.709 2.709 0 0 0 .514-.171c.766-.332 1.017-1.063.983-1.097a1.246 1.246 0 0 0-.343-.057 3.943 3.943 0 0 0 .503-.15c.754-.25 1.051-.97 1.006-.982l-.423-.091a2.8 2.8 0 0 0 .754-.149c.812-.274 1.097-.766 1.12-.983a.686.686 0 0 0-.263-.091 3.349 3.349 0 0 0 .538-.138c.754-.308 1.074-1.062 1.097-1.12a3.349 3.349 0 0 0 .445-.182zm-1.28.5a2.057 2.057 0 0 1 .229.014c.034.023-.286.56-.811.766-.526.206-1.006.217-1.075.171-.057-.034.492-.651.937-.823a2.057 2.057 0 0 1 .72-.127zm-2.468.105c.057-.01.217.664 0 .984-.389.582-.412.377-.834.948-.023.023-.023-.743.125-1.074.24-.538.652-.846.709-.858zm-9.36.823l-.057.023a.617.617 0 0 1-.057.126.046.046 0 0 0 .034.069l1.2.171c.023 0 .045-.011.045-.034l.07-.115a.046.046 0 0 0-.035-.068zm10.289.233a1.874 1.874 0 0 1 .476.065c.058.022-.32.571-.88.742-.56.172-1.108.149-1.097.115.012-.035.469-.675.926-.835a1.874 1.874 0 0 1 .575-.087zm-2.152.019c.068-.012.194.651-.046 1.063-.194.343-.377.263-.708.765-.035.046-.126-.411.08-1.04a1.44 1.44 0 0 1 .674-.788zm6.96.673c.034.005.06.035.034.104-.114.331-1.04.629-.994.4.046-.229 0-.251.069-.263.068-.011.4-.126.857-.24a.085.085 0 0 1 .035-.001zm-1.368.317c.03 0 .05.004.054.016.034.091-.206.685-.537.8-.332.114-.537.103-.526.045a1.257 1.257 0 0 0 .057-.468c-.02-.12.739-.389.952-.393zm1.286.187a.091.091 0 0 1 .093.069c.423 1.017.595 1.291.56 1.805-.034.515.995 2.457 1.075 2.64.08.183.091.389 0 .48-.377.332-.949.355-1.178.56-.228.206-.17.286-.045.594.126.31.125.195-.126.263-.251.069-.468.663-1.006.56-.205-.034-.057.092.023.103.297.035.423-.057.526-.16.103-.103.252-.274.412-.331.16-.057.33-.057.342.068.012.126-.217.24-.308.286.114.057.445.217.16.411-.286.195-.526-.057-.56-.08-.035-.022-.194-.022-.149.035.046.057.595.148.515.251-.4.537-.07.858-.195 1.406-.126.549-.88.857-1.463.96-1.988.354-3.92-1.326-5.051-2.606.103-.24.091-.548-.012-.434-.102.114-.08.274-.32.331-.445.115-.65-.674-.788-.81-.549-.538-.766-1.304-.446-1.978.32-.674 1.029-.537 1.303-.126.274.412.194.8.388.949.195.148.55.023.618 0 .068-.023.194.491.914.468.72-.023.674-1.222.789-1.325.982-.96.48-1.818.297-2.012-.183-.194.114-.411.171-.423a1.486 1.486 0 0 0 1.074-.88s.96-.023 1.303-.708c.092-.183.378.171 1.018-.332a.091.091 0 0 1 .066-.034zm-8.085.015c.13-.046.188.654-.016 1.094-.206.445-.331.457-.571.731-.035.046-.206-.423-.046-1.006.16-.583.457-.64.606-.8a.07.07 0 0 1 .027-.02zm1.82.027c.247.007.444.077.53.084.137.011-.149.514-.754.731-.606.217-1.029.206-1.109.172-.023-.023.389-.72.846-.903a1.21 1.21 0 0 1 .486-.084zm-8.22.22a.046.046 0 0 0-.004 0l-1.235.115-.045.034-.035.137c0 .035.023.07.057.058l1.223-.115a.034.034 0 0 0 .035-.034.869.869 0 0 0 .045-.125.046.046 0 0 0-.04-.07zm11.806.203c.032.003.044.032.052.083a1.211 1.211 0 0 1-.297.858c-.262.285-.525.263-.663.297-.137.034-.091.263-.274.388-.251.172-.606-.057-.537-.16a4.994 4.994 0 0 1 1.314-1.257c.243-.15.352-.215.405-.21zm-6.622.724c.092 0 .24.365.24.674a1.177 1.177 0 0 1-.046.343c-.148.491-.445.708-.605.926a1.794 1.794 0 0 1-.183-.663 1.737 1.737 0 0 1 .594-1.28zm2.106.104a1.783 1.783 0 0 1 .294.021c.034.035-.217.629-.743.857a2.766 2.766 0 0 1-1.177.206c-.034-.023.503-.731.96-.948a1.783 1.783 0 0 1 .665-.136zm6.614.033c-.56.023-1.211.708-1.417.8-.206.091-.149.171-.023.125.126-.045.674-.537 1.223-.731.549-.194.411.206.571.183.16-.023-.034-.389-.354-.377zm-14.262.544a.07.07 0 0 0-.023.004l-1.19.412c-.022.011-.033.023-.033.045 0 .023-.012.092-.012.138a.046.046 0 0 0 .069.045l1.177-.411a.034.034 0 0 0 .034-.034c0-.046.012-.103.012-.15 0-.033-.013-.048-.034-.049zm14.388.004c-.046.012.045.252-.195.263-.525.034-.948.537-1.268.686a1.474 1.474 0 0 1-.434.16.035.035 0 0 0 .011.068c1.337.183 1.851.126 1.863.08.011-.045-.068-.137-.046-.194a1.291 1.291 0 0 0 .012-.629c-.023-.09.205-.034.205-.148 0-.114-.068-.297-.148-.286zm-.297.537a.091.091 0 0 1 .091.069 1.211 1.211 0 0 1 0 .457c-.023.103-.628.057-.948.023-.08 0-.206-.011.034-.16s.469-.32.823-.389zm-3.848.003c.121.01.24.169.248.34.034.412-.206.64-.446.823-.24.183-.354.503-.297.583a.171.171 0 0 0 .217-.103c.171-.377.686-.56.766-.766.08-.205.034-.503.023-.64-.012-.137.102-.137.182-.125.08.011.16.16.206.308.332.857-.491 1.372-.628 1.577-.138.206.125.789-.229 1.006-.457.286-.709-.251-.777-.354a.423.423 0 0 1-.057-.355c.034-.16.057-.377-.046-1.062-.046-.309.571-1.052.72-1.189a.151.151 0 0 1 .118-.043zm-5.855.169c.057.205.423.365.423.743a1.703 1.703 0 0 1-.583 1.234 2.023 2.023 0 0 1-.251-.869c-.023-.72.274-.971.41-1.108zm2.283.046a2 2 0 0 1 .197.011c.034.011-.206.617-.709.869-.503.251-1.177.285-1.154.228.023-.046.4-.731.846-.937a2 2 0 0 1 .82-.17zm-6.738.875a.057.057 0 0 0-.025.004l-1.074.72c-.023 0-.023.023-.023.046s.011.092.011.137a.057.057 0 0 0 .08.035l1.075-.709c.01-.011.022-.023.01-.034v-.149a.057.057 0 0 0-.054-.05zm9.195.438a.057.057 0 0 1 .06.047c.068.468 0 1.12-.411 1.028-.115-.023-.16-.24-.138-.331.023-.092.355-.595.457-.732a.057.057 0 0 1 .032-.012zm-3.26.012a2.103 2.103 0 0 1 .234.012c.057.022-.194.64-.663.868-.468.229-.743.103-1.223.252.035-.172.343-.743.812-.949a2.103 2.103 0 0 1 .84-.183zm-2.44.092c.206.103.446.388.468.937.023.548-.365.994-.525 1.074-.103-.423-.297-.503-.297-.914a2.057 2.057 0 0 1 .354-1.097zm4.152.227c-.347.016-.568.511-.518 1.041a.914.914 0 0 0 .583.812c.263.091.069.457.423.457.16 0 .194-.24.103-.275-.08-.034-.057.138-.16.115-.103-.023-.023-.149-.206-.343-.183-.194-.32-.137-.491-.411-.172-.275-.035-1.372.354-1.235.388.137.183.572.114.914-.068.343.286.32.32.24.034-.08-.126-.102-.16-.217-.034-.114.4-.868-.206-1.074a.42.42 0 0 0-.156-.024zm7.24.093a.079.079 0 0 0-.066.068 4.217 4.217 0 0 1-.08.606c-.046.206.137.457.411.308.274-.148.549-.33.834-.388.069-.011.08-.114.012-.114-.103 0-.515.183-.675.286-.16.102-.502.308-.48-.092.012-.149.103-.503.103-.606 0-.051-.028-.071-.058-.068zm-14.64.772a.046.046 0 0 0-.032.016l-.88.972c-.012.011-.023.034-.012.045a.625.625 0 0 1 .046.138.046.046 0 0 0 .08.023l.869-.96c.011-.012.011-.023.011-.046l-.034-.149a.046.046 0 0 0-.047-.039zm4.976.149a.72.72 0 0 1 .226.016c.023.023-.171.674-.674.937s-1.086.309-1.143.24c-.057-.069.172-.777.697-1.006.329-.142.675-.183.894-.187zm-2.523.264c.107.011.59.419.6.997a1.646 1.646 0 0 1-.388 1.052c-.149-.137-.469-.491-.503-.949v-.068c0-.492.217-.983.274-1.029.004-.003.01-.004.017-.003zm1.985 1.07c.133.003.217.018.204.03-.034.035-.206.663-.708.915a1.383 1.383 0 0 1-.995.148c.263-.297.206-.731.64-.937.279-.129.638-.159.86-.155zm-3.866.133a.057.057 0 0 0-.044.023l-.617 1.177c-.012.012 0 .035 0 .046l.08.137a.046.046 0 0 0 .08-.011l.617-1.166c0-.011.011-.023 0-.046l-.069-.137a.057.057 0 0 0-.047-.023zm7.66.829c.014.002.03.011.044.028 1.783 1.932 2.915 2.31 3.532 2.492.057.023.046.091.023.16-.286 1.005-.435 1.406 0 2.503.057.148.103.262-.023.24-.88-.16-1.075-.297-3.852-.069-.194.023.069-.388.035-.663.251-.034.663-.148.743-.56.08-.411-.24-.868-.206-.937.4-.766-.023-1.611-.354-3.04-.026-.103.012-.16.057-.154zm-6.873.5c-.017.003-.031.014-.031.031l-.331 1.372c-.012.023 0 .034 0 .046l.114.114a.046.046 0 0 0 .08-.012l.32-1.36c.011-.011 0-.023 0-.034l-.103-.137a.049.049 0 0 0-.049-.02zm2.489 2.851c.056.007.111.04.154.083.114.115-.08.32-.103.492-.08.022-.331.034-.274-.309.036-.214.13-.277.223-.266zm1.583.096c.155-.01.304.046.297.124-.035.492-.24 1.052.137 1.612.149.217-.594.251-.731-.32-.092-.423-.126-1.143.045-1.314a.394.394 0 0 1 .252-.102zm.962.04c.203-.002.475.028.546.05.115.034-.091.777.777 1.12.08.034-.011 1.006-1.28.686-.182-.046-.685-.846-.274-1.806.013-.034.11-.048.23-.05zm1.938.018c.23.031.238.746-.112.866-.674.229-.948-.56-.834-.731.114-.172.503.114.834-.103a.164.164 0 0 1 .112-.032zm-3.78.073c.128-.004.245.022.251.085.012.126-.126.617.034 1.165-.034.08-.525.046-.662-.32-.069-.308-.046-.72.057-.834.051-.057.191-.091.32-.096z\"},\"child\":[]}]})(props);\n};\nexport function SiMaytag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.167 9.864c-.714 0-1.193.194-1.513.465-.65.55-.648 1.373-.648 1.627 0 .297.025 1.285.61 1.784.338.286.72.396 1.312.396.62 0 .962-.407.962-.407h.026s.065.102.179.196c.105.085.256.16.256.16h.358s-.026-.249-.026-.716v-.662c0-.093.027-.159.081-.198a.483.483 0 0 1 .236-.073v-.31h-1.803v.31c.066 0 .272.008.348.056.077.048.15.09.15.262v.418c0 .134.036.266.036.266-.226.213-.731.242-.954.16-.343-.126-.532-.321-.532-1.635 0-.36-.025-1.078.281-1.409.178-.192.47-.23.678-.23.38 0 .622.11.794.47.075.159.246.561.246.561h.325l-.056-1.282c-.206-.082-.57-.209-1.346-.209zM.015 9.902v.345c.423 0 .582.077.582.287v2.843c0 .139-.05.238-.15.295-.099.056-.248.084-.447.084v.349h1.56v-.349c-.202 0-.344-.029-.428-.087-.083-.058-.125-.158-.125-.3v-2.7h.037l1.195 3.436h.579l1.047-3.435h.045v2.776c0 .108-.012.212-.118.268-.078.043-.274.042-.354.042v.349h3.526v-.349c-.09.002-.326-.016-.416-.054-.096-.04-.212-.159-.081-.58l.142-.462h1.303l.121.38c.15.465.195.595.078.66-.103.056-.303.056-.387.056v.349h2.064v-.35c-.045-.002-.158.002-.259-.07-.12-.096-.18-.268-.212-.367a68.88 68.88 0 0 1-.874-2.836 16.625 16.625 0 0 1-.155-.58H7.163l-1.03 3.099c-.08.24-.173.47-.28.6-.116.142-.297.155-.42.155-.279 0-.376-.05-.376-.31v-2.912c0-.21.16-.287.583-.287v-.345H3.659l-.749 2.623h-.037l-.878-2.623zm9.229 0v.345c.149 0 .262.017.33.049a.393.393 0 0 1 .171.192 74.949 74.949 0 0 1 1.026 2.23v.752a.281.281 0 0 1-.035.149.227.227 0 0 1-.113.087.709.709 0 0 1-.203.04 3.98 3.98 0 0 1-.283.01v.349h2.288v-.351a3.448 3.448 0 0 1-.14-.007.701.701 0 0 1-.212-.043.243.243 0 0 1-.118-.09.263.263 0 0 1-.037-.148v-.848l.816-1.78c.063-.147.167-.367.263-.434.096-.068.213-.064.41-.066.3-.002.357.04.405.104.042.057.052.184.051.363v2.669c0 .098-.053.17-.158.215a1.213 1.213 0 0 1-.403.064v.352h2.273v-.352a1.216 1.216 0 0 1-.403-.064c-.105-.045-.158-.117-.158-.215v-2.67c0-.178.009-.303.048-.358.047-.068.104-.108.404-.108.243 0 .338.006.413.066.12.096.21.31.275.457l.176.386h.294l-.067-1.345h-4.583v.349c.138 0 .272.02.315.113.058.125-.012.398-.167.786-.225.564-.389.956-.389.956H11.7l-.562-1.223c-.132-.287-.198-.464-.198-.53 0-.055.01-.105.33-.105v-.346zm8.309 0l-1.029 3.099c-.08.24-.167.44-.273.57a.468.468 0 0 1-.321.175v.359h1.424v-.349c-.09.002-.325-.016-.416-.054-.096-.04-.212-.159-.081-.58L17 12.66h1.3l.123.38c.15.465.194.595.077.66-.103.056-.303.056-.387.056v.349h2.065v-.35c-.046-.002-.159.002-.26-.07-.12-.096-.18-.268-.212-.367a70.46 70.46 0 0 1-.874-2.836c-.066-.24-.118-.424-.155-.58zm-10.247.66h.027l.475 1.761h-1.08zm10.39 0h.027l.475 1.761h-1.08Z\"},\"child\":[]}]})(props);\n};\nexport function SiMazda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 12.876c-.036 0-.105-.046-.222-.26a7.531 7.531 0 00-1.975-2.353A8.255 8.255 0 007.7 9.065a17.945 17.945 0 00-.345-.136c-1.012-.4-2.061-.813-3.035-1.377A8.982 8.982 0 014 7.362c.194-.34.42-.665.67-.962a6.055 6.055 0 011.253-1.131 7.126 7.126 0 011.618-.806c1.218-.434 2.677-.647 4.458-.649 1.783.002 3.241.215 4.459.65a7.097 7.097 0 011.619.805c.471.319.892.699 1.253 1.13.25.298.475.623.67.963-.103.064-.212.129-.32.192-.976.564-2.023.977-3.037 1.376l-.345.136a8.26 8.26 0 00-2.1 1.198 7.519 7.519 0 00-1.975 2.354c-.117.213-.187.259-.224.259m0 7.072c-1.544-.002-2.798-.129-3.83-.387-1.013-.252-1.855-.64-2.576-1.188a5.792 5.792 0 01-1.392-1.537 7.607 7.607 0 01-.81-1.768 10.298 10.298 0 01-.467-2.983c0-.674.047-1.313.135-1.901 1.106.596 2.153.895 3.08 1.16l.215.06c1.29.371 2.314.857 3.135 1.488.475.368.89.793 1.23 1.264.369.508.663 1.088.877 1.725.096.289.2.468.403.468.207 0 .308-.18.405-.468a6.124 6.124 0 012.107-2.988c.82-.632 1.845-1.118 3.135-1.489l.216-.06c.926-.265 1.973-.564 3.078-1.16.09.589.136 1.227.136 1.9 0 .458-.046 1.664-.465 2.984a7.626 7.626 0 01-.809 1.768 5.789 5.789 0 01-1.396 1.537c-.723.548-1.565.936-2.574 1.188-1.035.258-2.288.385-3.833.387m9.692-14.556c-1.909-2.05-4.99-2.99-9.692-2.995-4.7.005-7.781.944-9.69 2.994C.89 6.913 0 9.018 0 11.874c0 1.579.39 5.6 3.564 7.676 1.9 1.242 4.354 2.046 8.435 2.052 4.083-.006 6.536-.81 8.437-2.052C23.609 17.474 24 13.452 24 11.874c0-2.848-.897-4.968-2.31-6.483Z\"},\"child\":[]}]})(props);\n};\nexport function SiMaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.126 16.547c-1.5013-1.4881-1.5013-3.9009 0-5.389l4.0778-4.042c1.2692-1.258 3.205-1.4525 4.6803-.5836.4564.2687.4524.8852.077 1.2573-.3753.372-.988.34-1.4975.1923-.6524-.1891-1.386-.0287-1.9006.4813l-4.0777 4.0419a1.8935 1.8935 0 0 0 0 2.6945c.7506.744 1.9678.744 2.7184 0l8.1555-8.0836c1.5014-1.4882 3.9355-1.4882 5.437 0l4.0778 4.0418c1.5013 1.4881 1.5013 3.901 0 5.389-1.5014 1.4882-3.9356 1.4882-5.437 0l-1.3593-1.3472-1.699 1.684c-1.2692 1.258-3.205 1.4526-4.6804.5837-.4563-.2687-.4523-.8852-.077-1.2573.3754-.372.988-.34 1.4975-.1923.6524.1892 1.386.0287 1.9006-.4813l1.7476-1.7322c.724-.7175 1.8975-.7175 2.6214 0l1.4078 1.3954c.7507.744 1.9678.744 2.7186 0a1.8936 1.8936 0 0 0 0-2.6945l-4.0779-4.0419c-.7507-.744-1.9678-.744-2.7185 0L6.563 16.5471c-1.5014 1.4882-3.9356 1.4881-5.437 0\"},\"child\":[]}]})(props);\n};\nexport function SiMcafee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.8233L1.5793 0v19.1767L12 24l10.4207-4.8233V0zm6.172 11.626l-6.143 2.8428-6.1438-2.8429V6.6894l6.1439 2.8418 6.1429-2.8418z\"},\"child\":[]}]})(props);\n};\nexport function SiMcdonalds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.243 3.006c2.066 0 3.742 8.714 3.742 19.478H24c0-11.588-3.042-20.968-6.766-20.968-2.127 0-4.007 2.81-5.248 7.227-1.241-4.416-3.121-7.227-5.231-7.227C3.031 1.516 0 10.888 0 22.476h3.014c0-10.763 1.658-19.47 3.724-19.47 2.066 0 3.741 8.05 3.741 17.98h2.997c0-9.93 1.684-17.98 3.75-17.98Z\"},\"child\":[]}]})(props);\n};\nexport function SiMclaren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.062 11.713c3.305-2.139 7.748-2.208 2.564 1.248l.082-.11c1.467-2.016-1.522-1.563-2.578-1.166l-.068.028zM6.967 13.236h1.399v.549H6.747c-.686 0-.987-.206-.987-.754v-.123c0-.466.274-.768.96-.768h1.646v.549H6.967a.248.248 0 0 0-.247.247v.069a.246.246 0 0 0 .247.231zM9.6 11.864v1.371h.823v.549h-1.92v-1.92H9.6zm-5.198.247c.191-.154.427-.241.672-.247h.549v1.92H4.525v-.96l-1.056.96H2.468v-.96l-1.221.96H0l2.18-1.646c.206-.151.343-.274.699-.274h.686v.96l.837-.713zm9.312.206a.316.316 0 0 1 .343-.316h1.303v.549h-.686v1.234h-.96v-1.467zm6.431-.316c.823 0 1.111.178 1.111.782v1.001h-.96v-.686a.411.411 0 0 0-.411-.411h-.411v1.097h-.96v-1.783h1.631zm-7.487 0c.631 0 .919.261.919.699v.411c0 .507-.288.672-.987.672h-1.083c-.398 0-.686-.041-.837-.178a.495.495 0 0 1-.11-.315v-.069c0-.274.165-.535.686-.535h1.234c0-.123.014-.137-.137-.137h-1.646V12h1.961zm-.179 1.166v-.069h-.754a.07.07 0 0 0 0 .138h.686a.068.068 0 0 0 .068-.069zm5.02-1.166c.727 0 .878.219.878.521v.069c0 .329-.261.507-.686.507h-1.234c0 .123.123.137.274.137h1.508v.549H16.36c-.59 0-.864-.247-.864-.699v-.315c0-.521.288-.768.946-.768h1.057zm-.151.686a.07.07 0 0 0 0-.138h-.823a.07.07 0 0 0-.069.069v.069h.892z\"},\"child\":[]}]})(props);\n};\nexport function SiMdbook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.77 5.343c.023.337 0 .613-.073.817l-4.314 14.227c-.072.252-.24.445-.504.6a1.67 1.67 0 0 1-.805.23H3.772c-1.154 0-1.839-.337-2.079-1.01-.096-.264-.096-.469.012-.625.108-.144.288-.216.553-.216h12.52c.89 0 1.514-.168 1.85-.493.337-.324.686-1.07 1.034-2.21l3.954-13.05c.216-.71.12-1.334-.265-1.875-.384-.54-.937-.817-1.646-.817H8.735c-.12 0-.373.048-.734.132l.012-.048A2.458 2.458 0 0 0 7.33.933a.979.979 0 0 0-.517.168 1.794 1.794 0 0 0-.385.337c-.096.12-.18.264-.276.456a5.76 5.76 0 0 0-.228.517 7.95 7.95 0 0 1-.217.505c-.084.18-.156.324-.24.444-.06.073-.144.18-.24.3-.096.121-.193.241-.265.337a.776.776 0 0 0-.132.265c-.024.084-.012.216.024.384.036.168.048.289.048.373-.036.36-.168.829-.396 1.394-.229.564-.433.973-.613 1.213a5.201 5.201 0 0 1-.312.325c-.169.168-.277.312-.313.444-.036.048-.036.18-.012.409.036.216.048.372.036.456-.036.325-.156.757-.36 1.298a9.47 9.47 0 0 1-.601 1.322c-.024.06-.108.168-.24.336-.133.168-.217.3-.24.409-.025.072-.013.216.011.408.024.193.024.337-.012.433-.072.36-.216.805-.432 1.322-.217.516-.433.949-.65 1.321-.06.097-.131.205-.24.337-.096.132-.18.24-.24.336a.927.927 0 0 0-.12.3.53.53 0 0 0 .048.277c.036.132.048.228.048.313-.012.132-.024.312-.06.528-.024.216-.048.349-.048.385-.216.576-.204 1.19.024 1.826.264.745.745 1.382 1.43 1.899.685.516 1.406.769 2.139.769H17.05c.625 0 1.214-.205 1.767-.625.553-.42.925-.937 1.105-1.55l3.966-13.05c.216-.696.12-1.31-.265-1.862-.204-.3-.48-.505-.853-.649ZM7.16 15.677l1.707-5.143h1.297c.457 0 3.46-.204 3.052 2.103-.408 2.307-2.259 3.028-4.422 3.052-2.162.024-1.634-.012-1.634-.012zm2.283-.721c.565-.012 2.271-.349 2.656-2.055.384-1.706-1.382-1.61-1.382-1.61h-1.07l-1.225 3.665c.012.012.469.012 1.021 0zm-.396-5.78 1.646-5.107h1.178l.096 4.086 2.835-4.086h1.19l-1.634 5.107h-.853l1.502-4.253-2.944 4.253h-.817l-.096-4.205-1.298 4.205z\"},\"child\":[]}]})(props);\n};\nexport function SiMdnwebdocs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.538 1.1-6.745 21.8h-2.77L18.77 1.1ZM24 1.1v21.8h-2.462V1.1Zm-12 0v21.8H9.538V1.1Zm-2.462 0L2.77 22.9H0L6.746 1.1Z\"},\"child\":[]}]})(props);\n};\nexport function SiMdx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.79 7.12h22.42c.436 0 .79.355.79.792v8.176c0 .436-.354.79-.79.79H.79a.79.79 0 0 1-.79-.79V7.912a.79.79 0 0 1 .79-.791V7.12Zm2.507 7.605v-3.122l1.89 1.89L7.12 11.56v3.122h1.055v-5.67l-2.99 2.99L2.24 9.056v5.67h1.055v-.001Zm8.44-1.845-1.474-1.473-.746.746 2.747 2.747 2.745-2.747-.746-.746-1.473 1.473v-4h-1.054v4Zm10.041.987-2.175-2.175 2.22-2.22-.746-.746-2.22 2.22-2.22-2.22-.747.746 2.22 2.22-2.176 2.177.746.746 2.177-2.177 2.176 2.175.745-.746Z\"},\"child\":[]}]})(props);\n};\nexport function SiMediafire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.13 7.171c-.496.42 2.943-.458 2.6 1.239-.332 1.633-3.62-.343-7.223-.176-1.594.073-3.054.53-3.985 1.668.973-1.108 2.901-.844 2.398-.081-1.172 1.776-3.376.497-4.92 3.975.185-.4.685-1.196 2.843-1.526 1.586-.242 4.214-.016 5.054 1.297.924 1.444-3.759 1.28-1.167 1.573 3.593.406 6.299 3.31 9.813 3.311 4.55 0 7.422-2.324 7.457-6.146.063-6.923-9.101-8.318-12.87-5.134zm6.768 7.554c-1.195-.033-2.404-.512-3.364-.98-2.365-1.155-3.338-1.553-3.338-1.608 0-.067 1.42.484 3.813-.789 1.383-.735 1.432-1.377 2.89-1.505 1.73-.152 2.962 1.13 2.962 2.478 0 1.349-1.222 2.453-2.963 2.404z\"},\"child\":[]}]})(props);\n};\nexport function SiMediamarkt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.829 22.075c-.064.192 2.63-2.76 2.63-2.76-.256-2.759-1.54-5.775-1.54-5.775-2.117-4.428-6.801-5.904-9.56-3.53-.129.065-.322.129-.45.193 2.118-2.952 6.93-2.695 10.075.963 0 0 1.412 1.732 2.438 4.363.257-.898.45-1.86.514-2.823-1.669-2.31-3.594-3.658-3.594-3.658-3.978-2.695-8.663-1.732-9.946 1.604-.129.193-.257.385-.321.578.385-3.594 4.684-5.84 9.176-4.3 0 0 2.182.835 4.428 2.631 0-.128-.064-.256-.128-.449-.257-.962-.578-1.86-1.027-2.695-2.567-1.155-4.877-1.347-4.877-1.347-4.877-.321-8.535 3.08-7.765 6.802v.513c-1.668-3.337.963-7.636 5.776-8.535 0 0 2.246-.385 5.005 0a11.844 11.844 0 0 0-2.374-1.989c-2.76.32-4.813 1.283-4.813 1.283-4.428 2.182-5.84 7.06-3.401 9.819.064.192.192.32.32.449-3.08-2.054-2.887-7.123.77-10.396 0 0 1.733-1.476 4.3-2.503C14.375.193 13.283 0 12.193 0 10.01 1.668 8.79 3.465 8.79 3.465c-2.759 4.171-1.604 9.113 1.99 10.268h.064c.128.064.192.128.32.192-3.657-.192-6.031-4.684-4.427-9.369 0 0 .77-2.053 2.374-4.171-.962.257-1.796.578-2.63 1.09-1.027 2.568-1.284 4.75-1.284 4.75-.321 4.94 3.016 8.599 6.61 7.893H12c.128 0 .257 0 .385-.065-3.273 1.669-7.444-1.026-8.406-5.903 0 0-.385-2.182 0-4.941-.77.77-1.476 1.604-2.054 2.63.321 2.696 1.284 4.685 1.284 4.685 2.181 4.492 6.994 5.968 9.754 3.401l.064-.064c.128-.064.256-.128.32-.257-1.989 3.145-6.994 3.016-10.203-.77 0 0-1.604-2.117-2.438-4.556 0-.064-.642 3.209-.642 3.209 1.604 1.925 3.658 3.529 3.658 3.529 3.979 2.695 8.663 1.668 9.946-1.668a1.39 1.39 0 0 0 .321-.514c-.385 3.594-4.684 5.84-9.176 4.236 0 0-1.99-.77-4.107-2.439 0 .064.064.193.064.257a15.14 15.14 0 0 0 1.091 2.823c2.438 1.027 4.62 1.22 4.62 1.22 4.877.32 8.47-3.08 7.765-6.674v-.514c1.54 3.337-1.09 7.508-5.84 8.47 0 0-2.117.386-4.748 0a11.229 11.229 0 0 0 2.117 1.798c2.76-.321 4.813-1.284 4.813-1.284 4.3-2.117 5.776-6.802 3.53-9.625-.065-.193-.193-.385-.321-.578 2.952 2.118 2.76 7.059-.899 10.267 0 0-1.796 1.476-4.427 2.567 1.026.321 2.117.578 3.208.642 2.246-1.733 3.594-3.658 3.594-3.658 2.76-4.17 1.604-9.112-1.925-10.267a1.04 1.04 0 0 0-.45-.257c3.722.193 6.032 4.685 4.428 9.37 0 0-.77 2.245-2.567 4.491.129 0 .257-.064.45-.128a17.58 17.58 0 0 0 2.566-.963c1.091-2.63 1.284-4.94 1.284-4.94.32-4.878-2.888-8.472-6.417-7.958-.129 0-.321-.064-.45-.064h-.128c3.273-1.412 7.316 1.219 8.214 5.968 0 0 .578 2.246.128 4.94-.064.386-.256.963-.577 1.54z\"},\"child\":[]}]})(props);\n};\nexport function SiMediapipe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.182 0C1 0 .037.94.002 2.114L0 2.182v6.545a2.182 2.182 0 0 0 4.364 0V2.182A2.182 2.182 0 0 0 2.182 0Zm6.545 0c-1.182 0-2.145.94-2.18 2.114l-.002.068v13.09a2.182 2.182 0 0 0 4.364 0V2.183A2.182 2.182 0 0 0 8.727 0Zm6.546 0a2.182 2.182 0 0 0-2.182 2.182 2.182 2.182 0 0 0 2.182 2.182 2.182 2.182 0 0 0 2.182-2.182A2.182 2.182 0 0 0 15.273 0Zm6.545 0c-1.182 0-2.145.94-2.18 2.114l-.002.068v19.636a2.182 2.182 0 0 0 4.364 0V2.182A2.182 2.182 0 0 0 21.818 0Zm-6.545 6.545c-1.183 0-2.145.94-2.181 2.114l-.001.068v13.091a2.182 2.182 0 0 0 4.364 0V8.728a2.182 2.182 0 0 0-2.182-2.183zM2.182 13.091c-1.182 0-2.145.94-2.18 2.114L0 15.273v6.545a2.182 2.182 0 0 0 4.364 0v-6.545a2.182 2.182 0 0 0-2.182-2.182zm6.545 6.545a2.182 2.182 0 0 0-2.182 2.182A2.182 2.182 0 0 0 8.727 24a2.182 2.182 0 0 0 2.182-2.182 2.182 2.182 0 0 0-2.182-2.182Z\"},\"child\":[]}]})(props);\n};\nexport function SiMediatek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.863 8.996c-.296 0-.664.21-.815.467L.064 14.537c-.15.257-.029.467.267.467h19.805c.297 0 .665-.21.816-.467l2.983-5.074c.15-.257.03-.467-.268-.467zm3.41 1.975h1.09l-.232.402h-.776c-.238 0-.312.093-.312.338v.807h1.37l-.233.402H6.502v-1.197c0-.589.307-.752.771-.752zm1.444 0h.937c.703 0 1.002.27 1.002.959 0 .73-.301.99-.976.99h-.963zm7.832 0h1.09l-.233.402h-.775c-.239 0-.313.093-.313.338-.004.264-.002.539-.002.807h1.372l-.233.402h-1.678v-1.197c0-.589.308-.752.772-.752zm-11.567.004v.986l.569-.984.65-.002v1.941h-.547v-1.191l-.672 1.191h-.546v-1.191l-.688 1.19h-.535l1.121-1.938zm5.98 0h.546v1.941h-.545zm1.798 0h.781v1.941h-.553v-1.383l-.797 1.383h-.552zm1.256 0h1.714l-.232.404h-.504v1.537h-.533v-1.537h-.68zm3.873 0h.547v1.941h-.547zm1.345 0h.545l-.558.968-.002.004h.002l.558.969h-.545l-.56-.97zm-9.994.398v1.145h.297c.432 0 .567-.104.567-.586 0-.483-.135-.559-.567-.559zm-1.847.416h.87l-.185.318h-.86zm9.255 0h.872l-.186.318h-.86Z\"},\"child\":[]}]})(props);\n};\nexport function SiMedibangpaint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.516 0H6.478L4.417.164a5.158 5.158 0 0 0-3.184 1.827 5.479 5.479 0 0 0-.981 2.06C-.068 5.336.015 6.992.015 8.548v7.284c0 2.377.038 4.504 1.007 5.878a5.153 5.153 0 0 0 2.435 1.873c1.232.332 2.509.467 3.783.401h6.967c.622 0 1.25.007 1.87.007 2.149 0 4.19-.092 5.504-.921a5.073 5.073 0 0 0 2.013-2.53c.459-1.308.398-3.127.398-4.871V9.415c0-3.264.115-5.748-1.335-7.565C21.208.033 18.727 0 15.516 0Zm0 .327a23.237 23.237 0 0 1 4.167.237 4.316 4.316 0 0 1 2.718 1.49 5.645 5.645 0 0 1 1.108 2.823c.143 1.284.195 2.576.156 3.867v7.475c.005 1.52.011 3.092-.382 4.212a4.724 4.724 0 0 1-1.878 2.36 5.749 5.749 0 0 1-2.307.724 23.456 23.456 0 0 1-3.021.147l-1.87-.008H7.241a11.983 11.983 0 0 1-3.675-.381 4.828 4.828 0 0 1-2.276-1.754 5.279 5.279 0 0 1-.81-2.414 26.103 26.103 0 0 1-.137-3.272V8.548c0-.268 0-.545-.005-.812A15.618 15.618 0 0 1 .567 4.13a5.19 5.19 0 0 1 .927-1.94A4.833 4.833 0 0 1 4.464.491L5.852.382l.639-.055h9.025Zm2.147 8.845-.174-.286-.26-.357a7.147 7.147 0 0 0-.267-.331c-.029-.034-.055-.061-.085-.094.362 7.124-6.189 10.879-10.683 7.917a6.694 6.694 0 0 0 5.716 3.224c3.665 0 6.68-3.015 6.68-6.679 0-1.194-.32-2.366-.927-3.394ZM5.674 14.978c.081.207.636.521.795.626 4.195 2.764 10.247-.825 9.908-7.474-.007-.148-.006-.538-.089-.61a7.696 7.696 0 0 0-1.44-.995c-1.103 3.961-6.324 6.303-9.404 4.362a6.615 6.615 0 0 0 .23 4.091Zm-.075-4.598c.033.033.07.061.111.084 1.117.704 2.547.769 3.922.385 2.116-.591 4.119-2.248 4.735-4.458.014-.05.039-.156.028-.165a3.428 3.428 0 0 1-.341-.296c-.679-.715-.826-.975-.382-2.603-3.168.512-6.771 4.01-7.534 5.87-.003.007-.003.015-.005.022a6.7 6.7 0 0 0-.534 1.161Z\"},\"child\":[]}]})(props);\n};\nexport function SiMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.21 0A4.201 4.201 0 0 0 0 4.21v15.58A4.201 4.201 0 0 0 4.21 24h15.58A4.201 4.201 0 0 0 24 19.79v-1.093c-.137.013-.278.02-.422.02-2.577 0-4.027-2.146-4.09-4.832a7.592 7.592 0 0 1 .022-.708c.093-1.186.475-2.241 1.105-3.022a3.885 3.885 0 0 1 1.395-1.1c.468-.237 1.127-.367 1.664-.367h.023c.101 0 .202.004.303.01V4.211A4.201 4.201 0 0 0 19.79 0Zm.198 5.583h4.165l3.588 8.435 3.59-8.435h3.864v.146l-.019.004c-.705.16-1.063.397-1.063 1.254h-.003l.003 10.274c.06.676.424.885 1.063 1.03l.02.004v.145h-4.923v-.145l.019-.005c.639-.144.994-.353 1.054-1.03V7.267l-4.745 11.15h-.261L6.15 7.569v9.445c0 .857.358 1.094 1.063 1.253l.02.004v.147H4.405v-.147l.019-.004c.705-.16 1.065-.397 1.065-1.253V6.987c0-.857-.358-1.094-1.064-1.254l-.018-.004zm19.25 3.668c-1.086.023-1.733 1.323-1.813 3.124H24V9.298a1.378 1.378 0 0 0-.342-.047Zm-1.862 3.632c-.1 1.756.86 3.239 2.204 3.634v-3.634z\"},\"child\":[]}]})(props);\n};\nexport function SiMedusa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.325 3.8958 14.8913.7692a5.7283 5.7283 0 0 0-5.7342 0L3.6983 3.8958C1.9455 4.9213.8437 6.8223.8437 8.8484v6.2783c0 2.051 1.1018 3.927 2.8546 4.9526l5.4337 3.1515a5.7283 5.7283 0 0 0 5.7343 0l5.4338-3.1515c1.7778-1.0256 2.8545-2.9015 2.8545-4.9526V8.8484c.0501-2.026-1.0517-3.927-2.8296-4.9526Zm-8.3133 13.6821c-3.08 0-5.584-2.5013-5.584-5.5778 0-3.0767 2.504-5.578 5.584-5.578 3.08 0 5.609 2.5013 5.609 5.578 0 3.0765-2.504 5.5778-5.609 5.5778z\"},\"child\":[]}]})(props);\n};\nexport function SiMeetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.98.555a.518.518 0 0 0-.105.011.53.53 0 1 0 .222 1.04.533.533 0 0 0 .409-.633.531.531 0 0 0-.526-.418zm6.455.638a.984.984 0 0 0-.514.143.99.99 0 1 0 1.02 1.699.99.99 0 0 0 .34-1.36.992.992 0 0 0-.846-.482zm-3.03 2.236a5.029 5.029 0 0 0-4.668 3.248 3.33 3.33 0 0 0-1.46.551 3.374 3.374 0 0 0-.94 4.562 3.634 3.634 0 0 0-.605 4.649 3.603 3.603 0 0 0 2.465 1.597c.018.732.238 1.466.686 2.114a3.9 3.9 0 0 0 5.423.992c.068-.047.12-.106.184-.157.987.881 2.47 1.026 3.607.24a2.91 2.91 0 0 0 1.162-1.69 4.238 4.238 0 0 0 2.584-.739 4.274 4.274 0 0 0 1.19-5.789 2.466 2.466 0 0 0 .433-3.308 2.448 2.448 0 0 0-1.316-.934 4.436 4.436 0 0 0-.776-2.873 4.467 4.467 0 0 0-5.195-1.656 5.106 5.106 0 0 0-2.773-.807zm-5.603.817a.759.759 0 0 0-.423.135.758.758 0 1 0 .863 1.248.757.757 0 0 0 .193-1.055.758.758 0 0 0-.633-.328zm15.994 2.37a.842.842 0 0 0-.47.151.845.845 0 1 0 1.175.215.845.845 0 0 0-.705-.365zm-8.15 1.028c.063 0 .124.005.182.014a.901.901 0 0 1 .45.187c.169.134.273.241.432.393.24.227.414.089.534.02.208-.122.369-.219.984-.208.633.011 1.363.237 1.514 1.317.168 1.199-1.966 4.289-1.817 5.722.106 1.01 1.815.299 1.96 1.22.186 1.198-2.136.753-2.667.493-.832-.408-1.337-1.34-1.12-2.26.16-.688 1.7-3.498 1.757-3.93.059-.44-.177-.476-.324-.484-.19-.01-.34.081-.526.362-.169.255-2.082 4.085-2.248 4.398-.296.56-.67.694-1.044.674-.548-.029-.798-.32-.72-.848.047-.31 1.26-3.049 1.323-3.476.039-.265-.013-.546-.275-.68-.263-.135-.572.07-.664.227-.128.215-1.848 4.706-2.032 5.038-.316.576-.65.76-1.152.784-1.186.056-2.065-.92-1.678-2.116.173-.532 1.316-4.571 1.895-5.599.389-.69 1.468-1.216 2.217-.892.387.167.925.437 1.084.507.366.163.759-.277.913-.412.155-.134.302-.276.49-.357.142-.06.343-.095.532-.094zm10.88 2.057a.468.468 0 0 0-.093.011.467.467 0 0 0-.36.555.47.47 0 0 0 .557.36.47.47 0 0 0 .36-.557.47.47 0 0 0-.464-.37zm-22.518.81a.997.997 0 0 0-.832.434 1 1 0 1 0 1.39-.258 1 1 0 0 0-.558-.176zm21.294 2.094a.635.635 0 0 0-.127.013.627.627 0 0 0-.48.746.628.628 0 0 0 .746.483.628.628 0 0 0 .482-.746.63.63 0 0 0-.621-.496zm-18.24 6.097a.453.453 0 0 0-.092.012.464.464 0 1 0 .195.908.464.464 0 0 0 .356-.553.465.465 0 0 0-.459-.367zm13.675 1.55a1.044 1.044 0 0 0-.583.187 1.047 1.047 0 1 0 1.456.265 1.044 1.044 0 0 0-.873-.451zM11.4 22.154a.643.643 0 0 0-.36.115.646.646 0 0 0-.164.899.646.646 0 0 0 .899.164.646.646 0 0 0 .164-.898.646.646 0 0 0-.54-.28z\"},\"child\":[]}]})(props);\n};\nexport function SiMega (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zm6.23 16.244a.371.371 0 0 1-.373.372H16.29a.371.371 0 0 1-.372-.372v-4.828c0-.04-.046-.06-.08-.033l-3.32 3.32a.742.742 0 0 1-1.043 0l-3.32-3.32c-.027-.027-.08-.007-.08.033v4.828a.371.371 0 0 1-.372.372H6.136a.371.371 0 0 1-.372-.372V7.757c0-.206.166-.372.372-.372h1.076a.75.75 0 0 1 .525.22l4.13 4.13a.18.18 0 0 0 .26 0l4.13-4.13c.14-.14.325-.22.525-.22h1.075c.206 0 .372.166.372.372z\"},\"child\":[]}]})(props);\n};\nexport function SiMeilisearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.505 18.998 4.434-11.345a4.168 4.168 0 0 1 3.882-2.651h2.674l-4.434 11.345a4.169 4.169 0 0 1-3.883 2.651H6.505Zm6.505 0 4.434-11.345a4.169 4.169 0 0 1 3.883-2.651H24l-4.434 11.345a4.168 4.168 0 0 1-3.882 2.651H13.01Zm-13.01 0L4.434 7.653a4.168 4.168 0 0 1 3.882-2.651h2.674L6.556 16.347a4.169 4.169 0 0 1-3.883 2.651H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiMeituan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.923 0c-2.408 0-3.28.25-4.16.721A4.906 4.907 0 0 0 .722 2.763C.25 3.643 0 4.516 0 6.923v10.154c0 2.407.25 3.28.72 4.16a4.905 4.906 0 0 0 2.042 2.042c.88.47 1.752.721 4.16.721h10.156c2.407 0 3.28-.25 4.16-.721a4.906 4.907 0 0 0 2.04-2.042c.471-.88.722-1.753.722-4.16V6.923c0-2.407-.25-3.28-.722-4.16A4.906 4.907 0 0 0 21.238.72C20.357.251 19.484 0 17.077 0ZM4.17 7.51h1.084c.04.24.07.488.11.737h3.47c.05-.25.08-.497.1-.736h1.105a9.849 9.85 0 0 1-.09.736h1.562v.866H7.62v.696h3.642v.855h-3.64v.667h3.64v.854h-3.64v.816h3.89v.865H7.88c.775.935 2.218 1.532 3.78 1.651l-.538.936c-1.442-.17-3.103-.846-4.028-2.04-.856 1.194-2.487 1.92-4.525 2.07l.318-1.005c1.382-.02 2.814-.736 3.431-1.612h-3.62v-.865h3.86v-.816h-3.64v-.854h3.64v-.667h-3.64v-.855h3.64v-.697H2.7v-.866h1.56zm8.603.182h7.976c.358 0 .567.198.567.547v8.146H13.33c-.358 0-.557-.199-.557-.547zm1.044.885V15.5h6.455V8.577Zm3.999.476h1.024v.756h.975v.835h-.975V13c0 .806-.1 1.402-.318 2.02h-1.113c.338-.717.408-1.224.408-1.99v-2.387h-.935c-.14 1.541-.736 3.451-1.363 4.376h-1.134c.607-.855 1.303-2.526 1.472-4.376h-1.512v-.835h3.472z\"},\"child\":[]}]})(props);\n};\nexport function SiMeizu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.045 18.818h3.546A.41.41 0 0 0 24 18.41v-3.545a.41.41 0 0 0-.41-.41h-3.545a.41.41 0 0 0-.409.41v3.545c0 .226.184.41.41.41zM13.8 12.11a.095.095 0 0 1-.163-.068V5.591a.41.41 0 0 0-.409-.41H10.59a.545.545 0 0 0-.385.16L.16 15.387a.545.545 0 0 0-.16.385v2.638c0 .226.183.41.41.41h2.637a.547.547 0 0 0 .385-.16l6.769-6.769a.096.096 0 0 1 .163.068v6.451c0 .226.183.41.409.41h2.638a.547.547 0 0 0 .385-.16L23.84 8.613A.545.545 0 0 0 24 8.23V5.59a.41.41 0 0 0-.41-.41h-2.637a.546.546 0 0 0-.386.16z\"},\"child\":[]}]})(props);\n};\nexport function SiMendeley (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0037 9.1684h.019a2.355 2.355 0 011.5038 4.1655 1.8076 1.8076 0 01-.8561.452 2.348 2.348 0 01-.6487.0923h-.019c-.2246 0-.4421-.033-.6487-.0922a1.8126 1.8126 0 01-.8561-.4521 2.346 2.346 0 01-.8511-1.8106 2.358 2.358 0 012.3569-2.355m-9.9731 9.474c1.2652.1583 2.388-.762 2.5073-2.0573a2.4442 2.4442 0 00-.2136-1.236c-1.7724-3.8889 6.9726-3.978 5.4949-.3078l-.01.016c-.6988 1.1178-.3198 2.5695.841 3.2402.4272.2486.9003.3508 1.3625.3308.4622.02.9354-.0822 1.3624-.3308 1.161-.6717 1.54-2.1224.8412-3.2402l-.01-.016c-1.4778-3.6703 7.2682-3.581 5.4938.3077a2.4462 2.4462 0 00-.2126 1.2361c.1203 1.2953 1.2422 2.2156 2.5083 2.0572a2.345 2.345 0 001.4246-.7368s.5885-.4883.5795-1.7334c-.008-1.0156-.5795-1.578-.5795-1.578a2.2116 2.2116 0 00-1.8145-.6456c-1.6231-.036-1.8637-1.3073-1.4056-3.7033.1685-.4251.2416-.8802.2266-1.3354a3.4166 3.4166 0 00-2.1304-3.2953c-.039-.017-.0782-.03-.1183-.0461a1.5138 1.5138 0 00-.1343-.0461 3.4156 3.4156 0 00-4.004 1.4526c-.8171.8973-1.187 1.4417-2.0272 1.4417-.799 0-1.211-.5444-2.0271-1.4417a3.4126 3.4126 0 00-4.1374-1.4075c-.0401.016-.0792.029-.1193.0461a3.4156 3.4156 0 00-2.1294 3.2953c-.016.4552.0582.9103.2256 1.3354.4581 2.397.2175 3.6672-1.4045 3.7033-.795-.0852-1.3885.2426-1.988.8431-.6016.5995-.5514 2.2056 0 2.9063.4.5103.9423.8632 1.598.9454\"},\"child\":[]}]})(props);\n};\nexport function SiMentorcruise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0Zm-.387 3.791v8.08H6.947c1.557-2.693 3.111-5.386 4.666-8.08Zm.774 0c1.554 2.694 3.11 5.387 4.666 8.08h-4.666Zm-9.244 8.854h17.714l-1.68 2.91H4.823Zm2.125 3.683h13.464l-1.68 2.908H6.948Z\"},\"child\":[]}]})(props);\n};\nexport function SiMercadopago (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.115 16.479a.93.927 0 0 1-.939-.886c-.002-.042-.006-.155-.103-.155-.04 0-.074.023-.113.059-.112.103-.254.206-.46.206a.816.814 0 0 1-.305-.066c-.535-.214-.542-.578-.521-.725.006-.038.007-.08-.02-.11l-.032-.03h-.034c-.027 0-.055.012-.093.039a.788.786 0 0 1-.454.16.7.699 0 0 1-.253-.05c-.708-.27-.65-.928-.617-1.126.005-.041-.005-.072-.03-.092l-.05-.04-.047.043a.728.726 0 0 1-.505.203.73.728 0 0 1-.732-.725c0-.4.328-.722.732-.722.364 0 .675.27.721.63l.026.195.11-.165c.01-.018.307-.46.852-.46.102 0 .21.016.316.05.434.13.508.52.519.68.008.094.075.1.09.1.037 0 .064-.024.083-.045a.746.744 0 0 1 .54-.225c.128 0 .263.03.402.09.69.293.379 1.158.374 1.167-.058.144-.061.207-.005.244l.027.013h.02c.03 0 .07-.014.134-.035.093-.032.235-.08.367-.08a.944.942 0 0 1 .94.93.936.934 0 0 1-.94.928zm7.302-4.171c-1.138-.98-3.768-3.24-4.481-3.77-.406-.302-.685-.462-.928-.533a1.559 1.554 0 0 0-.456-.07c-.182 0-.376.032-.58.095-.46.145-.918.505-1.362.854l-.023.018c-.414.324-.84.66-1.164.73a1.986 1.98 0 0 1-.43.049c-.362 0-.687-.104-.81-.258-.02-.025-.007-.066.04-.125l.008-.008 1-1.067c.783-.774 1.525-1.506 3.23-1.545h.085c1.062 0 2.12.469 2.24.524a7.03 7.03 0 0 0 3.056.724c1.076 0 2.188-.263 3.354-.795a9.135 9.11 0 0 0-.405-.317c-1.025.44-2.003.66-2.946.66-.962 0-1.925-.229-2.858-.68-.05-.022-1.22-.567-2.44-.57-.032 0-.065 0-.096.002-1.434.033-2.24.536-2.782.976-.528.013-.982.138-1.388.25-.361.1-.673.186-.979.185-.125 0-.35-.01-.37-.012-.35-.01-2.115-.437-3.518-.962-.143.1-.28.203-.415.31 1.466.593 3.25 1.053 3.812 1.089.157.01.323.027.491.027.372 0 .744-.103 1.104-.203.213-.059.446-.123.692-.17l-.196.194-1.017 1.087c-.08.08-.254.294-.14.557a.705.703 0 0 0 .268.292c.243.162.677.27 1.08.271.152 0 .297-.015.43-.044.427-.095.874-.448 1.349-.82.377-.296.913-.672 1.323-.782a1.494 1.49 0 0 1 .37-.05.611.61 0 0 1 .095.005c.27.034.533.125 1.003.472.835.62 4.531 3.815 4.566 3.846.002.002.238.203.22.537-.007.186-.11.352-.294.466a.902.9 0 0 1-.484.15.804.802 0 0 1-.428-.124c-.014-.01-1.28-1.157-1.746-1.543-.074-.06-.146-.115-.22-.115a.122.122 0 0 0-.096.045c-.073.09.01.212.105.294l1.48 1.47c.002 0 .184.17.204.395.012.244-.106.447-.35.606a.957.955 0 0 1-.526.171.766.764 0 0 1-.42-.127l-.214-.206a21.035 20.978 0 0 0-1.08-1.009c-.072-.058-.148-.112-.221-.112a.127.127 0 0 0-.094.038c-.033.037-.056.103.028.212a.698.696 0 0 0 .075.083l1.078 1.198c.01.01.222.26.024.511l-.038.048a1.18 1.178 0 0 1-.1.096c-.184.15-.43.164-.527.164a.8.798 0 0 1-.147-.012c-.106-.018-.178-.048-.212-.089l-.013-.013c-.06-.06-.602-.609-1.054-.98-.059-.05-.133-.11-.21-.11a.128.128 0 0 0-.096.042c-.09.096.044.24.1.293l.92 1.003a.204.204 0 0 1-.033.062c-.033.044-.144.155-.479.196a.91.907 0 0 1-.122.007c-.345 0-.712-.164-.902-.264a1.343 1.34 0 0 0 .13-.576 1.368 1.365 0 0 0-1.42-1.357c.024-.342-.025-.99-.697-1.274a1.455 1.452 0 0 0-.575-.125c-.146 0-.287.025-.42.075a1.153 1.15 0 0 0-.671-.564 1.52 1.515 0 0 0-.494-.085c-.28 0-.537.08-.767.242a1.168 1.165 0 0 0-.903-.43 1.173 1.17 0 0 0-.82.335c-.287-.217-1.425-.93-4.467-1.613a17.39 17.344 0 0 1-.692-.189 4.822 4.82 0 0 0-.077.494l.67.157c3.108.682 4.136 1.391 4.309 1.525a1.145 1.142 0 0 0-.09.442 1.16 1.158 0 0 0 1.378 1.132c.096.467.406.821.879 1.003a1.165 1.162 0 0 0 .415.08c.09 0 .179-.012.266-.034.086.22.282.493.722.668a1.233 1.23 0 0 0 .457.094c.122 0 .241-.022.355-.063a1.373 1.37 0 0 0 1.269.841c.37.002.726-.147.985-.41.221.121.688.341 1.163.341.06 0 .118-.002.175-.01.47-.059.689-.24.789-.382a.571.57 0 0 0 .048-.078c.11.032.234.058.373.058.255 0 .501-.086.75-.265.244-.174.418-.424.444-.637v-.01c.083.017.167.026.251.026.265 0 .527-.082.773-.242.48-.31.562-.715.554-.98a1.28 1.279 0 0 0 .978-.194 1.04 1.04 0 0 0 .502-.808 1.088 1.085 0 0 0-.16-.653c.804-.342 2.636-1.003 4.795-1.483a4.734 4.721 0 0 0-.067-.492 27.742 27.667 0 0 0-5.049 1.62zm5.123-.763c0 4.027-5.166 7.293-11.537 7.293-6.372 0-11.538-3.266-11.538-7.293 0-4.028 5.165-7.293 11.539-7.293 6.371 0 11.537 3.265 11.537 7.293zm.46.004c0-4.272-5.374-7.755-12-7.755S.002 7.277.002 11.55L0 12.004c0 4.533 4.695 8.203 11.999 8.203 7.347 0 12-3.67 12-8.204z\"},\"child\":[]}]})(props);\n};\nexport function SiMercedes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.623 0 12 5.377 12 12s-5.377 12-12 12S0 18.623 0 12 5.377 0 12 0zM3.245 17.539A10.357 10.357 0 0012 22.36c3.681 0 6.917-1.924 8.755-4.821L12 14.203zm10.663-6.641l7.267 5.915A10.306 10.306 0 0022.36 12c0-5.577-4.417-10.131-9.94-10.352zm-2.328-9.25C6.057 1.869 1.64 6.423 1.64 12c0 1.737.428 3.374 1.185 4.813l7.267-5.915z\"},\"child\":[]}]})(props);\n};\nexport function SiMerck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 6a6 6 0 0112 0zm0 12a6 6 0 016-6 6 6 0 01-6-6 6 6 0 000 12 a6 6 0 1012 0zm6-6a6 6 0 016 6 6 6 0 100-12c0 3.314-2.686 6-6 6\"},\"child\":[]}]})(props);\n};\nexport function SiMercurial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.8216.4314a10.2734 10.2734 0 0 0-1.422.0774c-7.083.8757-7.1976 8.3303-.9554 10.1015 7.0706 1.0703 2.8125 6.4047 2.2086 9.0945-.5415 2.4111 5.714 2.8074 8.6079-6.7688C23.9967 7.9324 20.6996.5375 13.8216.4314zm6.165 2.0953c-.0213.015.0002.066.1032.1748 1.01 1.0662 1.488 1.6912 2.4688 3.871 2.1907 4.8693-2.1648 12.5904-4.9951 14.1949-1.133.6421-2.568.7072-3.2275.6494-.4143-.036-.8177.4385-.5541.866.993 1.6114 3.5415.7206 5.72-.8322 2.1737-1.5493 3.6586-5.1331 4.0895-6.7171.6186-2.277.704-5.9062-.9593-8.9594-.9845-1.8072-1.9445-2.917-2.4906-3.2037-.0698-.0368-.1337-.0587-.155-.0437zm-13.7838.9554c-1.9467 3.1875-.2826 7.6562 4.7727 9.0905 6.6367 1.8846 1.3715 6.0926 1.5253 8.8959.1545 2.8028 5.7706 3.82 10.1988-3.5413.0536-.0891.1003-.1817.151-.2721-4.4262 7.3375-10.0304 6.3212-10.185 3.5214-.1539-2.8035 5.1114-7.0132-1.5253-8.8979-4.9023-1.3909-6.6137-5.634-4.9375-8.7965zm-.2304 2.9057c-.0678.0542-.0356.251.002.4866.1057.66.5196 1.8234 1.3347 2.8898 1.1057 1.4462 3.0177 2.0604 4.5005 2.5005 1.899.5634 2.3417 1.6578 2.5602 1.5234.2166-.1337.1632-1.3185-.4807-1.867-.6262-.5335-2.4769-.987-3.3704-1.1936C9.514 10.495 8.307 9.855 7.444 8.7612c-.863-1.0936-1.4403-2.3986-1.4717-2.3734zM2.8363 8.5904c-.5909-.0306-1.2788.1537-1.7617.5938-.549.5002-.7018 1.3363-.4866 2.014.0884.2783.3155.685.7925.7527.6369.0904.7673.3777 1.5194.2284.752-.1493 1.321-.7641 1.5491-1.4459.2612-.9433-.1284-1.4321-.717-1.867-.2206-.163-.5412-.2577-.8957-.276zm1.7895.7388c-.0482-.0289-.06.0299.0179.2443.3929 1.083-.3704 2.097-1.0288 2.5661-.6583.469-1.4924.247-1.8332.143-.341-.104-.5218.0143-.5065.1946.0087.101.092.221.2423.3178-.718-.3548-1.2561-1.088-1.3406-1.9603-.0444-.458.032-.885.2145-1.273-.2936.452-.4354.9885-.3794 1.567.1317 1.359 1.337 2.354 2.6952 2.2224.7147-.07 1.3579-.4514 1.7538-1.003.7892-.8576.7857-2.326.3733-2.7388-.0751-.1344-.1603-.2512-.2085-.28zm-1.1202.6276c.2173.0172.4146.1174.5462.3258.3794.6012-.3834 1.388-.9613 1.5392-.6124.1604-.8983.0048-.854-.8202.0276-.5155.5464-.9574 1.0467-1.0348a.9639.9639 0 0 1 .2224-.01zm18.6915.0298c.183.084.193 1.6217-.1092 2.737-.522 1.924-2.3254 4.9016-3.5334 6.28-.9264 1.0576-1.9623 1.499-3.2115 1.6843-2.5991.5065.158-3.82 2.0735-3.583 1.9155.237 3.9722-3.7315 4.437-6.155.1416-.738.2604-1.0015.3436-.9633zm-17.3667.6217c.014.0026.0246.0907.0357.2105-.0694 1.2463-1.2154 1.933-1.871 2.0239-.1768.0245-.4884.0113-.3395-.1231.0979-.0882.593-.0533 1.0407-.294.4474-.2407.9796-.7677 1.0745-1.5174.028-.2201.0456-.3025.0596-.2999zm3.9345.1112c.4061.1481.7337.3238 1.0566.423.5893.1805 1.2778.3457 1.7002.429.6572.1298 1.3422.4507 1.7497.586.6025.1997.8736.5768.852 1.0149-.0206.4376-.2303-.0553-.56-.276-.3111-.208-1.054-.6418-2.58-1.1421-1.2634-.4143-1.9051-.769-2.2185-1.0348zm14.908 2.1172c.1264.5153-.6948 4.0971-3.015 7.1243-.7777 1.0147-1.8407 1.7682-2.8899 2.294-.7741.388-1.3433.4632-2.0159.564-.5247.0787-.9144.0117-.8858-.3277.0375-.4468.567-.1635 1.3327-.3495 2.7515-.668 3.9457-2.0453 5.591-4.6317 1.281-2.0136 1.8405-4.2479 1.8828-4.6734zm-16.471 2.5304c-1.0004-.034-2.0805.3943-2.7469 1.2334-1.4419 1.8739-.3481 3.9568.0953 3.9643.4435.0074.7109.0702 1.16.3853.8876.3689 2.5196.136 3.273-.856.7536-.992.7777-2.36.4907-3.1858-.3512-1.0106-1.2719-1.5073-2.2722-1.5412zm2.4945 1.1638c-.0169.0077-.0174.0443.006.1152.622 1.8982.0475 3.3992-1.0249 4.1729-1.0515.7588-2.4974.8859-3.6545.286-.3397-.1761-.4804.0796-.3217.2264 2.9364 2.721 7.3564-1.0167 5.4102-4.3178-.164-.278-.3644-.5057-.4151-.4827zm-6.1153.3456a3.7751 3.7751 0 0 0-.4489 2.9534c.5275 2.0173 2.5906 3.225 4.6079 2.6972a3.7751 3.7751 0 0 0 2.419-1.9603A3.7751 3.7751 0 0 1 7.905 22.233c-2.0166.528-4.0794-.6786-4.6078-2.6952a3.7751 3.7751 0 0 1 .284-2.6614zm5.438.6098c.0599-.0072.1022.0754.1291.284.2837 2.1959-1.227 2.8104-1.72 2.9395-1.6646.4357-1.855-.621-.1529-1.1858.9128-.3029 1.4845-2.0066 1.7438-2.0377zm1.1937 1.581c.0214-.004.0165.0991-.006.2502-.2294 1.5421-1.6872 2.6788-2.9275 2.721-.2517.0259-.5818-.0826-.2741-.147.3738-.0786 2.5478-.6426 3.0586-2.431.0796-.2788.1276-.3893.149-.3933Z\"},\"child\":[]}]})(props);\n};\nexport function SiMermaid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.99 2.115A12.223 12.223 0 0 0 12 10.149 12.223 12.223 0 0 0 .01 2.115a12.23 12.23 0 0 0 5.32 10.604 6.562 6.562 0 0 1 2.845 5.423v3.754h7.65v-3.754a6.561 6.561 0 0 1 2.844-5.423 12.223 12.223 0 0 0 5.32-10.604Z\"},\"child\":[]}]})(props);\n};\nexport function SiMessenger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.001 11.639C.001 4.949 5.241 0 12.001 0S24 4.95 24 11.639c0 6.689-5.24 11.638-12 11.638-1.21 0-2.38-.16-3.47-.46a.96.96 0 00-.64.05l-2.39 1.05a.96.96 0 01-1.35-.85l-.07-2.14a.97.97 0 00-.32-.68A11.39 11.389 0 01.002 11.64zm8.32-2.19l-3.52 5.6c-.35.53.32 1.139.82.75l3.79-2.87c.26-.2.6-.2.87 0l2.8 2.1c.84.63 2.04.4 2.6-.48l3.52-5.6c.35-.53-.32-1.13-.82-.75l-3.79 2.87c-.25.2-.6.2-.86 0l-2.8-2.1a1.8 1.8 0 00-2.61.48z\"},\"child\":[]}]})(props);\n};\nexport function SiMeta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.915 4.03c-1.968 0-3.683 1.28-4.871 3.113C.704 9.208 0 11.883 0 14.449c0 .706.07 1.369.21 1.973a6.624 6.624 0 0 0 .265.86 5.297 5.297 0 0 0 .371.761c.696 1.159 1.818 1.927 3.593 1.927 1.497 0 2.633-.671 3.965-2.444.76-1.012 1.144-1.626 2.663-4.32l.756-1.339.186-.325c.061.1.121.196.183.3l2.152 3.595c.724 1.21 1.665 2.556 2.47 3.314 1.046.987 1.992 1.22 3.06 1.22 1.075 0 1.876-.355 2.455-.843a3.743 3.743 0 0 0 .81-.973c.542-.939.861-2.127.861-3.745 0-2.72-.681-5.357-2.084-7.45-1.282-1.912-2.957-2.93-4.716-2.93-1.047 0-2.088.467-3.053 1.308-.652.57-1.257 1.29-1.82 2.05-.69-.875-1.335-1.547-1.958-2.056-1.182-.966-2.315-1.303-3.454-1.303zm10.16 2.053c1.147 0 2.188.758 2.992 1.999 1.132 1.748 1.647 4.195 1.647 6.4 0 1.548-.368 2.9-1.839 2.9-.58 0-1.027-.23-1.664-1.004-.496-.601-1.343-1.878-2.832-4.358l-.617-1.028a44.908 44.908 0 0 0-1.255-1.98c.07-.109.141-.224.211-.327 1.12-1.667 2.118-2.602 3.358-2.602zm-10.201.553c1.265 0 2.058.791 2.675 1.446.307.327.737.871 1.234 1.579l-1.02 1.566c-.757 1.163-1.882 3.017-2.837 4.338-1.191 1.649-1.81 1.817-2.486 1.817-.524 0-1.038-.237-1.383-.794-.263-.426-.464-1.13-.464-2.046 0-2.221.63-4.535 1.66-6.088.454-.687.964-1.226 1.533-1.533a2.264 2.264 0 0 1 1.088-.285z\"},\"child\":[]}]})(props);\n};\nexport function SiMetabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.385 6.136c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-1.438 2.63c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.644-1.461-1.438-1.461zm5.465-2.63c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.499-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zm-1.088 5.592c.794 0 1.438-.654 1.438-1.461s-.644-1.461-1.438-1.461-1.438.654-1.438 1.461.643 1.461 1.438 1.461zm5.464-5.592c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111S11.4 7.247 12 7.247s1.088-.498 1.088-1.111zm.35-4.675c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461S11.206 0 12 0s1.438.654 1.438 1.461zm-.35 0C13.088.848 12.6.35 12 .35s-1.088.498-1.088 1.111S11.4 2.572 12 2.572s1.088-.498 1.088-1.111zm.35 8.806c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.499 1.088-1.111zm4.376-4.131c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zm2.939 1.461c.794 0 1.438-.654 1.438-1.461s-.644-1.461-1.438-1.461-1.438.654-1.438 1.461.644 1.461 1.438 1.461zm-4.027 1.209c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.643-1.461-1.438-1.461zm4.027 0c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.644-1.461-1.438-1.461zM3.947 12.857a1.45 1.45 0 0 0-1.438 1.461c0 .807.644 1.461 1.438 1.461s1.438-.654 1.438-1.461a1.45 1.45 0 0 0-1.438-1.461zm5.465 1.5c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.655 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zM12 12.896c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.644-1.461-1.438-1.461zm5.464 1.461c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.655 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zm2.939-1.461c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.644-1.461-1.438-1.461zM3.947 16.948c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.644-1.461-1.438-1.461zm5.465 1.5c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zm4.376 0c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zm.35 4.091c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111S11.4 23.65 12 23.65s1.088-.498 1.088-1.111zm4.376-4.091c0 .807-.644 1.461-1.438 1.461s-1.438-.654-1.438-1.461.644-1.461 1.438-1.461 1.438.654 1.438 1.461zm-.35 0c0-.613-.488-1.111-1.088-1.111s-1.088.498-1.088 1.111.488 1.111 1.088 1.111 1.088-.498 1.088-1.111zm2.939-1.461c-.794 0-1.438.654-1.438 1.461s.644 1.461 1.438 1.461 1.438-.654 1.438-1.461-.644-1.461-1.438-1.461z\"},\"child\":[]}]})(props);\n};\nexport function SiMetacritic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.99 0A12 12 0 1 0 24 12v-.014A12 12 0 0 0 11.99 0Zm-.055 2.564a9.399 9.399 0 0 1 9.407 9.389v.01a9.399 9.399 0 1 1-9.408-9.399Zm-1.61 17.198 2.046-2.046-3.94-3.94c-.165-.166-.345-.373-.442-.608-.221-.47-.318-1.203.221-1.742.664-.664 1.548-.387 2.406.47l3.788 3.788 2.046-2.046-3.954-3.954a2.48 2.48 0 0 1-.456-.622c-.263-.539-.25-1.216.235-1.7.677-.678 1.562-.429 2.544.553l3.677 3.677 2.046-2.046-3.982-3.982c-2.018-2.018-3.912-1.949-5.212-.65-.498.499-.802 1.024-.954 1.618a4.026 4.026 0 0 0-.055 1.686l-.027.028c-.996-.414-2.13-.166-3 .705-1.162 1.161-1.12 2.392-.982 3.11l-.042.043-1.009-.816-1.77 1.77a64.1 64.1 0 0 1 2.213 2.1z\"},\"child\":[]}]})(props);\n};\nexport function SiMetafilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.548 5.26l-.87 4.894h3.558l-.519 2.83h-3.592l-1.602 8.639h-2.857l3.586-19.248H24l-.537 2.885h-4.915zm-7.331-2.884L7.19 13.472V2.376H3.581L0 21.624h2.452L5.198 6.728l-.251 14.896h1.421l5.225-14.896-2.786 14.896h2.48l3.581-19.248h-3.651z\"},\"child\":[]}]})(props);\n};\nexport function SiMetasploit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.353 0h1.368q4.19.218 8.144 1.616.217.077.216.309-.015 4.033-.002 12.102 0 .81-.093 1.173c-.217.845-.76 1.635-1.326 2.325q-.318.388-1.024 1.046-2.955 2.75-6.01 5.094-.183.14-.516.335h-.17q-.627-.42-.945-.673-3.992-3.184-5.442-4.459-1.348-1.185-2.169-2.611c-.369-.64-.466-1.287-.465-2.099q.01-6.048.002-12.218c0-.183.09-.264.261-.325Q7.145.227 11.352 0ZM7.474 7.864q0-.094.069-.031l2.797 2.516a.374.372 21.2 0 1 .122.276l-.006 4.333a.182.182 0 0 0 .183.184l2.524-.018a.11.11 89.8 0 0 .108-.11q-.007-2.201.01-4.461.002-.173.146-.29 1.397-1.145 2.946-2.393.068-.055.068.032v10.881q0 .092.063.024.794-.865 1.628-1.838.71-.83.984-1.87.26-.989.262-1.997.007-4.754.009-9.768a.136.136 0 0 0-.137-.136q-1.15.004-2.424 0c-.287-.002-.441-.022-.619.149Q14.16 5.317 11.982 7.4a.046.046 0 0 1-.062 0Q9.782 5.437 7.769 3.525c-.234-.222-.515-.381-.843-.373q-1.09.026-2.33.005-.184-.004-.184.18-.003 4.54.005 9.032.002.536.036 1.027c.076 1.093.2 2.126.803 3.021.574.852 1.329 1.656 2.126 2.405q.023.022.054.026.04.006.04-.034z\"},\"child\":[]}]})(props);\n};\nexport function SiMeteor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .234l21.912 20.537s.412.575-.124 1.151c-.535.576-1.236.083-1.236.083L0 .234zm6.508 2.058l17.01 15.638s.413.576-.123 1.152c-.534.576-1.235.083-1.235.083L6.508 2.292zM1.936 6.696l17.01 15.638s.412.576-.123 1.152-1.235.082-1.235.082L1.936 6.696zm10.073-2.635l11.886 10.927s.287.401-.087.805-.863.058-.863.058L12.009 4.061zm-8.567 7.737l11.886 10.926s.285.4-.088.803c-.375.403-.863.059-.863.059L3.442 11.798zm14.187-5.185l5.426 4.955s.142.188-.044.377c-.185.188-.428.027-.428.027l-4.954-5.358v-.001zM6.178 17.231l5.425 4.956s.144.188-.042.377-.427.026-.427.026l-4.956-5.359z\"},\"child\":[]}]})(props);\n};\nexport function SiMetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.655 0-1.31.143-1.807.43l-7.31 4.22c-.99.574-1.806 1.98-1.806 3.129v8.442c0 1.14.813 2.555 1.805 3.128l7.311 4.221c.994.573 2.619.573 3.612 0l7.311-4.22c.994-.574 1.807-1.982 1.807-3.129V7.779c0-1.14-.813-2.555-1.807-3.128L13.806.43C13.308.143 12.653 0 11.998 0zm.005 2.606c.29 0 .577.073.834.209l4.718 2.724-1.76 1.067L12 4.414 8.21 6.602 6.448 5.534l4.71-2.72c.26-.137.551-.21.847-.208zm7.577 4.237a.905.905 0 0 1 .909.9c-.001 2.472 0 5.432-.008 8.313a1.761 1.761 0 0 1-.84 1.46l-6.8 3.927a1.694 1.694 0 0 1-.843.215 1.7 1.7 0 0 1-.844-.215l-6.802-3.927a1.763 1.763 0 0 1-.842-1.46V7.75a.905.905 0 0 1 1.376-.765C7.188 8.381 9.626 9.835 12 11.3c2.375-1.443 4.757-2.897 7.115-4.322a.895.895 0 0 1 .467-.135zM5.32 9.355v6.632L12 19.844l6.682-3.857V9.355l-6.213 3.773a.899.899 0 0 1-.937 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiMetrodelaciudaddemexico (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.965 8.704V24H.008V6.864h2.097c1.066 0 1.86.774 1.86 1.84m2.366-1.84c.268.521.521 1.315.521 1.84V24h3.685V8.704a1.784 1.784 0 0 0-1.84-1.84M17.4 24V8.704a1.795 1.795 0 0 0-1.844-1.84h-2.382c.269.521.269 1.315.269 1.84V24M.008 3.953V0h15.549c4.75 0 8.435 3.953 8.435 8.704V24h-3.685V8.704a4.735 4.735 0 0 0-4.75-4.75z\"},\"child\":[]}]})(props);\n};\nexport function SiMetrodemadrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.74L0 12l12 7.26L24 12 12 4.74zm0 2.905l3.45 2.087h-6.9L12 7.645zM7.2 10.64h.786l.606 1.77.564-1.77h.79v2.568h-.524l-.006-1.82-.627 1.82h-.432l-.632-1.805v1.805h-.526V10.64zm5.275.148h.51l.001.559h.371v.343h-.37v.92c0 .174.041.215.212.215a.69.69 0 0 0 .158-.014v.4a1.907 1.907 0 0 1-.298.018c-.313 0-.584-.073-.584-.443V11.69h-.307v-.341h.307v-.559zm5.222.303l1.5.908-1.5.908v-1.816zM6.3 11.094v1.812L4.8 12l1.498-.906zm8.455.203a.345.345 0 0 1 .11.017v.475a.81.81 0 0 0-.18-.018c-.37 0-.5.27-.5.598v.842h-.508v-1.863h.48l.006.345a.653.653 0 0 1 .592-.396zm1.127 0c.58 0 .957.39.957.982s-.377.98-.957.98c-.578 0-.953-.39-.953-.98 0-.593.375-.98.953-.982zm-4.738.002c.628 0 .932.532.896 1.103v.004h-1.334c.015.325.172.473.455.473.204 0 .368-.126.4-.24h.446c-.141.439-.445.625-.863.625-.581 0-.942-.407-.942-.98 0-.56.382-.985.942-.985zm-.012.383c-.322 0-.416.252-.422.396h.824c-.045-.262-.156-.396-.402-.396zm4.75 0c-.343 0-.445.3-.445.597 0 .295.102.596.445.596.349 0 .45-.3.45-.596 0-.3-.104-.597-.45-.597zM8.55 14.268h6.9L12 16.355l-3.451-2.087z\"},\"child\":[]}]})(props);\n};\nexport function SiMetrodeparis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.708 18.099c-.202.152-.44.228-.714.228-.242 0-.471-.076-.688-.228-.218-.152-.327-.373-.327-.66V9.626h-.023l-2.984 6.057a1.453 1.453 0 0 1-.385.505c-.145.112-.337.168-.578.168-.24 0-.433-.056-.577-.168a1.442 1.442 0 0 1-.385-.505L8.063 9.627H8.04v7.811a.748.748 0 0 1-.339.66 1.23 1.23 0 0 1-.7.229c-.275 0-.508-.076-.702-.228-.193-.152-.29-.373-.29-.66V6.958c0-.304.096-.589.29-.853.192-.264.537-.396 1.036-.396.37 0 .655.084.856.252.2.169.38.421.542.757l3.277 6.754h.024l3.253-6.754c.16-.336.342-.588.543-.757.2-.168.485-.252.855-.252.498 0 .844.132 1.036.396.193.265.29.55.29.854v10.478c0 .288-.101.509-.302.66zm-5.732 4.156c5.658 0 10.279-4.64 10.279-10.327 0-5.62-4.603-10.183-10.279-10.183-5.674 0-10.23 4.536-10.23 10.183 0 5.59 4.715 10.327 10.23 10.327zm0 1.745C5.495 24 0 18.48 0 11.928 0 5.315 5.34 0 11.976 0 18.613 0 24 5.34 24 11.928 24 18.577 18.6 24 11.976 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiMewe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.029 7.712a.768.768 0 100 1.536.768.768 0 000-1.536zm7.883 0a.768.768 0 100 1.536.768.768 0 000-1.536zm4.414 0a.768.768 0 100 1.536.768.768 0 000-1.536zm4.418 0a.768.768 0 100 1.537.768.768 0 000-1.537zm-4.447 2.307c-.27 0-.453.175-.54.428l-1.378 4.175-1.403-4.193a.546.546 0 00-.532-.392c-.296 0-.55.227-.55.523 0 .07.018.148.044.21l1.805 5.056c.105.279.296.444.558.444h.105c.261 0 .461-.165.557-.444l1.36-3.985 1.36 3.985c.096.279.288.444.55.444h.105c.261 0 .462-.174.558-.444l1.804-5.057a.617.617 0 00.052-.218.525.525 0 00-.531-.514c-.262 0-.445.166-.523.383l-1.404 4.202-1.377-4.175c-.079-.253-.27-.428-.541-.428zM.54 10.045a.538.538 0 00-.54.541v5.117c0 .297.227.523.523.523a.52.52 0 00.532-.523V12.05l1.482 2.224c.113.174.253.279.444.279.201 0 .34-.105.454-.28l1.49-2.24v3.661a.54.54 0 00.533.532.53.53 0 00.54-.532v-5.108a.538.538 0 00-.54-.54h-.114a.54.54 0 00-.488.278L3 13.227 1.15 10.333a.565.565 0 00-.497-.288zm8.368 1.439c-1.316 0-2.25 1.081-2.25 2.397v.018c0 1.42 1.03 2.389 2.363 2.389.715 0 1.239-.236 1.657-.61a.46.46 0 00.14-.323.415.415 0 00-.419-.427.391.391 0 00-.27.096 1.655 1.655 0 01-1.09.4c-.68 0-1.212-.418-1.325-1.168h2.885c.27 0 .497-.209.497-.505 0-1.064-.723-2.267-2.188-2.267zm12.904 0c-1.317 0-2.25 1.081-2.25 2.397v.018c0 1.42 1.029 2.389 2.363 2.389.715 0 1.238-.236 1.657-.61a.46.46 0 00.139-.323.415.415 0 00-.418-.427.392.392 0 00-.271.096 1.652 1.652 0 01-1.09.4c-.68 0-1.211-.418-1.325-1.168h2.886c.27 0 .497-.209.497-.505 0-1.064-.724-2.267-2.188-2.267zm-12.913.863c.698 0 1.099.532 1.169 1.212H7.705c.096-.715.549-1.212 1.194-1.212zm12.904 0c.697 0 1.098.532 1.168 1.212h-2.363c.096-.715.55-1.212 1.195-1.212z\"},\"child\":[]}]})(props);\n};\nexport function SiMg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.835 8.428c-.015-.184-.034-.368-.053-.552-.016-.138-.034-.274-.052-.411a.592.592 0 0 0-.104-.243c-.087-.11-.175-.217-.266-.323l-.365-.429a42.198 42.198 0 0 0-2.509-2.638A42.774 42.774 0 0 0 17.3 1.064c-.11-.088-.222-.174-.336-.257a.664.664 0 0 0-.252-.1 21.852 21.852 0 0 0-1-.102 45.346 45.346 0 0 0-3.71-.158 45.291 45.291 0 0 0-4.286.211c-.142.015-.284.03-.426.048a.664.664 0 0 0-.253.1c-.113.085-.225.17-.337.258a42.775 42.775 0 0 0-3.185 2.768A42.467 42.467 0 0 0 .641 6.898c-.09.107-.18.215-.267.324a.609.609 0 0 0-.105.243c-.019.137-.035.273-.05.41-.02.185-.038.37-.056.553A41.387 41.387 0 0 0 0 12.001a41.35 41.35 0 0 0 .163 3.574l.057.552c.014.138.03.274.05.41.015.087.052.17.104.244a24.04 24.04 0 0 0 .633.753 42.577 42.577 0 0 0 2.507 2.636A42.394 42.394 0 0 0 6.7 22.938c.112.087.224.172.337.255a.663.663 0 0 0 .253.102l.426.048c.19.018.383.037.574.053 1.234.103 2.473.157 3.712.157 1.237 0 2.476-.054 3.71-.157.193-.016.384-.035.573-.053.144-.015.287-.031.427-.048a.66.66 0 0 0 .252-.102c.115-.083.227-.168.336-.255a42.392 42.392 0 0 0 3.187-2.767 42.424 42.424 0 0 0 2.509-2.637l.365-.43c.09-.106.18-.215.266-.323a.596.596 0 0 0 .104-.243c.018-.137.036-.273.052-.411A39.963 39.963 0 0 0 24 12c0-1.191-.058-2.384-.165-3.573m-1.805 6.601c-.013.156-.029.313-.044.469l-.044.348a.499.499 0 0 1-.089.205c-.073.092-.148.185-.225.276l-.31.363a35.829 35.829 0 0 1-2.126 2.234c-.86.827-1.762 1.61-2.7 2.346a7.787 7.787 0 0 1-.285.216.551.551 0 0 1-.214.087l-.362.04a38.171 38.171 0 0 1-3.63.178c-1.05 0-2.1-.045-3.146-.132l-.486-.045-.362-.041a.547.547 0 0 1-.214-.087 9.555 9.555 0 0 1-.285-.216c-.127-.099-.251-.2-.376-.3a35.855 35.855 0 0 1-2.324-2.046 36.03 36.03 0 0 1-2.125-2.234c-.182-.21-.361-.423-.536-.639a.515.515 0 0 1-.089-.205 33.972 33.972 0 0 1-.09-.817 34.723 34.723 0 0 1-.138-3.028c.003-1.01.047-2.02.138-3.029.015-.155.03-.311.048-.467.012-.118.026-.232.042-.348a.506.506 0 0 1 .089-.206 21.379 21.379 0 0 1 .536-.638 36.255 36.255 0 0 1 2.125-2.236 36.3 36.3 0 0 1 2.7-2.346c.094-.073.189-.146.285-.218a.553.553 0 0 1 .214-.084c.282-.035.565-.063.848-.086a38.642 38.642 0 0 1 3.146-.135 38.792 38.792 0 0 1 3.63.18c.122.012.243.026.362.04a.56.56 0 0 1 .214.085 26.752 26.752 0 0 1 .662.517 36.24 36.24 0 0 1 2.323 2.047c.74.715 1.45 1.46 2.126 2.236l.31.364c.077.09.152.181.225.274a.5.5 0 0 1 .089.205l.044.349c.015.155.031.312.044.467.091 1.009.14 2.019.14 3.029 0 1.01-.048 2.021-.14 3.028m-1.225-3c-.098-.01-.981-.012-1.456-.017-.622-.005-1.042 0-1.246-.001-.06 0-.068-.003-.135 0-.003.047-.003.071-.005.13-.002.043-.01.19-.018.384-.012.326-.026.787-.018 1.116l.001.114c.036.002.616.002 1.007.005.053 0 .057.001.11.003-.001.027 0 .052.001.097 0 .048-.055.74-.088.94-.1.149-.163.23-.367.456-.217.24-.256.3-.934.984-.704.712-2.035 1.867-2.513 2.263a9.84 9.84 0 0 0-.303.257s.007-.243-.002-.361c.018-4.565.013-7.807-.004-12.84.008-.114-.005-.209 0-.347.15.117.156.123.259.208.7.594 1.438 1.203 2.024 1.79.81.815 1.156 1.174 1.74 1.863.058.073.069.088.108.15.01.064.01.076.021.157.023.193.062.588.068.696.002.062.009.091.007.151.06.006.1 0 .16.004.352.006.77.008 1.167.006.133-.001.265-.003.39-.006.068 0 .072.002.128 0a1.427 1.427 0 0 0 0-.17 12.32 12.32 0 0 0-.097-1.292 2.536 2.536 0 0 0-.032-.267c-.05-.068-.081-.1-.128-.155A28.182 28.182 0 0 0 18.5 6.02c-1.795-1.721-2.75-2.375-2.75-2.375s-.077-.057-.134-.095c-.075-.014-.058-.01-.13-.02a31.483 31.483 0 0 0-2.608-.168c-.124-.004-.16-.007-.293-.001.006.15.002.153-.002.267.014 6.216-.02 10.641-.009 16.813v.188s.088.008.203.004c.734 0 2.167-.08 2.534-.14.142-.022.219-.027.319-.056.075-.043.115-.074.176-.126a36.5 36.5 0 0 0 2.616-2.267c.983-.941 1.876-1.96 2.09-2.2.09-.099.15-.176.256-.315.045-.166.034-.215.054-.347.093-1.076.167-1.752.167-2.977-.004-.064-.002-.095-.007-.169-.089-.005-.128-.004-.177-.008m-9.539-8.672c-.152.006-.43-.003-.942.026-.537.031-.85.064-.977.075-.073.007-.117.007-.17.013-.022.048-.019.042-.042.103-.779 1.95-1.788 4.655-2.627 6.666-.042.085-.128.3-.128.3s-.039-.064-.139-.267A85.298 85.298 0 0 0 4.67 7.276c-.046-.077-.128-.246-.128-.246s-.123.132-.204.204c-.173.155-.805.878-.93 1.046-.064.083-.085.107-.157.21-.03.117-.036.187-.058.316-.045.257-.153 1.364-.18 2.852.004 1.21.076 2.292.186 3.498l.031.322s.137.186.166.219c.605.71 1.046 1.217 1.463 1.643l.358.365s-.018-.257-.025-.39l-.024-.413c-.082-1.297-.244-3.484-.29-4.621-.008-.144.018-.824.018-.824l1.742 3.508s.13-.315.188-.447c.7-1.754 1.366-3.327 2.05-5.081.047-.11.294-.77.294-.77s.007.712 0 .866c-.034 4.924-.019 7.741-.012 10.444l.001.249c0 .138-.003.156-.003.247.181.03.163.03.261.042.317.04.313.051.686.075.385.024.806.035 1.142.043.086-.004.133-.004.175-.006.003-.08.003-.118.003-.193-.029-6.302.044-16.917.044-16.917s.003-.057 0-.162a2.544 2.544 0 0 0-.2.001\"},\"child\":[]}]})(props);\n};\nexport function SiMicrobit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.857 5.143A6.865 6.865 0 000 12a6.864 6.864 0 006.857 6.857h10.287A6.863 6.863 0 0024 12c0-3.781-3.075-6.857-6.856-6.857zm0 2.744h10.287A4.117 4.117 0 0121.257 12a4.119 4.119 0 01-4.113 4.116H6.857A4.12 4.12 0 012.743 12a4.118 4.118 0 014.114-4.113zm10.168 2.729a1.385 1.385 0 10.003 2.77 1.385 1.385 0 00-.003-2.77zm-10.166 0a1.385 1.385 0 10-.003 2.771 1.385 1.385 0 00.003-2.77Z\"},\"child\":[]}]})(props);\n};\nexport function SiMicrodotblog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.4 0 0 4.9 0 10.95 0 17 5.4 21.9 12 21.9c1.4 0 2.85-.25 4.2-.7.15-.05.35 0 .45.1 1 1.35 2.55 2.3 4.25 2.7l.25-.1v-.3a4.65 4.65 0 01.2-5.9C22.9 15.85 24 13.5 24 10.95 24 4.9 18.55 0 12 0zm-.05 5.2c.15 0 .3.1.35.25L13.55 9l3.85.1c.15 0 .3.1.35.2.05.15 0 .3-.15.4L14.55 12l1.1 3.6c.05.15 0 .3-.15.4h-.4l-3.15-2.15L8.8 16h-.4c-.15-.1-.2-.25-.15-.4l1.1-3.6L6.3 9.7c-.15-.1-.2-.25-.15-.4.05-.1.2-.2.35-.2l3.85-.1 1.25-3.55c.05-.15.2-.25.35-.25z\"},\"child\":[]}]})(props);\n};\nexport function SiMicroeditor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0Zm5.698 13.628c-.117.465-.303.837-.558 1.14-.233.302-.466.488-.721.58-.256.094-.512.14-.791.14-.28 0-.512-.046-.698-.162-.186-.093-.325-.256-.442-.442a1.922 1.922 0 0 1-.232-.675 4.688 4.688 0 0 1-.07-.837c0-.116 0-.232.023-.395.022-.163.047-.372.07-.372h-.047c-.373.93-.883 1.604-1.534 2.14-.652.534-1.372.79-2.164.79-.535 0-.977-.21-1.28-.605-.325-.395-.487-1-.487-1.79 0-.117 0-.233.022-.373.023-.116.023-.162.046-.395h-.163c-.209.465-.395 1.116-.534 1.698-.14.58-.255 1.116-.326 1.604-.093.489-.14.93-.186 1.303-.047.372-.07.628-.093.767.023.116.046.233.07.372.046.14.07.28.116.396.046.116.07.255.093.372.023.116.046.209.046.279 0 .325-.07.58-.209.744-.14.162-.302.255-.465.255a.83.83 0 0 1-.535-.186c-.163-.14-.232-.35-.232-.628 0-.396.07-.907.21-1.512.14-.604.348-1.372.604-2.279.14-.418.255-.837.395-1.256.14-.418.256-.814.372-1.162.116-.35.21-.675.302-.954a3.71 3.71 0 0 0 .163-.65c.023-.07.047-.234.07-.466.023-.233.046-.489.093-.79.046-.303.07-.629.116-.954.047-.35.093-.652.116-.93.047-.21.07-.443.117-.698.046-.255.116-.512.209-.72.093-.233.233-.42.395-.583.163-.162.372-.232.628-.232.28 0 .465.093.558.256.093.162.14.372.117.604-.023.233-.047.49-.117.744-.07.256-.14.49-.21.675-.185.581-.371 1.116-.58 1.558-.21.442-.396.93-.558 1.442-.14.35-.186.674-.186.953 0 .512.162.884.465 1.163.325.28.697.395 1.14.395a1.63 1.63 0 0 0 1.022-.372c.326-.255.628-.558.907-.907.28-.348.512-.72.698-1.14a8.3 8.3 0 0 0 .419-1.069c.023-.046.046-.14.07-.325.046-.187.07-.396.116-.628.046-.233.093-.465.14-.72.046-.257.091-.466.116-.629.046-.186.07-.372.116-.605.046-.232.116-.442.21-.65.092-.21.232-.373.371-.513a.87.87 0 0 1 .605-.209c.302 0 .488.093.605.256.093.163.14.372.14.605a3.58 3.58 0 0 1-.117.697c-.07.233-.116.42-.163.558a23.236 23.236 0 0 1-.558 1.558c-.186.466-.349.884-.512 1.21-.14.349-.256.604-.349.814-.093.21-.14.349-.14.418 0 .605.14 1.047.396 1.303.256.255.535.395.837.395.512 0 .907-.163 1.21-.465.302-.326.535-.907.674-1.605h.186a5.386 5.386 0 0 1-.14 1.698z\"},\"child\":[]}]})(props);\n};\nexport function SiMicrogenetics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.008 6c2.595 0 4.31 1.263 5.583 2.726l.248.293c.082.101.164.2.242.3.434.569.809 1.146 1.17 1.674.24.356.465.693.689 1.008l.227.32c.074.105.148.211.24.31.928 1.171 1.889 1.9 3.283 1.991.195-.845.301-1.721.301-2.621s-.105-1.776-.301-2.621c-1.395.091-2.355.819-3.301 1.991-.18-.246-.357-.51-.555-.796-.375-.566-.809-1.208-1.32-1.845 1.006-1.169 2.25-2.175 3.932-2.557C20.453 2.49 16.523 0 12.008 0c-4.5 0-8.44 2.49-10.49 6.173 1.681.384 2.923 1.388 3.931 2.556.086.09.168.18.249.285l.237.3c.479.615.914 1.245 1.305 1.845l.555.826.24.329c.074.104.165.21.239.315 1.051 1.439 2.115 2.43 3.75 2.43 1.65 0 2.701-.99 3.765-2.43l.375.555c.451.66.932 1.38 1.455 2.055-1.273 1.471-3 2.73-5.595 2.73-2.594 0-4.304-1.275-5.579-2.73l-.24-.3-.24-.3c-.435-.57-.81-1.154-1.17-1.68-.239-.36-.465-.69-.689-1.006l-.226-.33c-.074-.104-.149-.21-.24-.314C2.664 10.2 1.703 9.465.309 9.375c-.195.849-.3 1.725-.3 2.625s.102 1.776.29 2.621c1.398-.091 2.355-.819 3.295-1.991.172.246.354.51.544.796.375.566.806 1.208 1.313 1.845-1.009 1.169-2.253 2.175-3.93 2.557C3.566 21.51 7.494 24 12.008 24c4.515 0 8.441-2.49 10.49-6.173-1.68-.384-2.922-1.388-3.93-2.556-.086-.09-.17-.18-.25-.285l-.236-.3c-.48-.615-.916-1.245-1.305-1.845L16.223 12c-.074-.111-.154-.225-.23-.33-.078-.111-.154-.219-.232-.325-1.051-1.44-2.1-2.431-3.75-2.431s-2.699.99-3.75 2.431l-.375-.56c-.436-.669-.916-1.38-1.456-2.059C7.703 7.263 9.383 6 12.008 6\"},\"child\":[]}]})(props);\n};\nexport function SiMicropython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h11.509v18.737h.982V0H24v24h-5.263V5.263h-.983V24H6.246V5.263l-.983.035V24H0zm22.246 19.509h-1.404v2.386h1.404z\"},\"child\":[]}]})(props);\n};\nexport function SiMicrostation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 .357c-.938.217-3.086.22-3.631 1.15l-.55.922c-1.376 2.348-4.833 11.069-8.183 11.181-3.35.113 1.762-10.712 2.27-11.797-2.08.489-4.078.193-4.826 2.326-.775 2.212-1.54 4.425-2.363 6.62-1.71 4.532-3.795 8.89-6.634 12.767.064-.086.127-.171-.083.117 2.111-.422 4.03-.352 5.295-2.253 1.17-1.759 1.92-3.73 2.712-5.68l.377-.927.303.286c3.017 2.844 5.334 0 7.697-2.219l.349-.327 1.322 4.977 2.932-3.144a33.47 33.47 0 0 1-.713-1.342l-.037-.08C18.302 8.742 21.6 3.935 23.861.566Z\"},\"child\":[]}]})(props);\n};\nexport function SiMicrostrategy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.095 2.572h5.827v18.856H9.096zM0 2.572h5.825v18.856H.001zm18.174 0v18.854H24V8.33z\"},\"child\":[]}]})(props);\n};\nexport function SiMidi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.775 7.517H24v8.966h-2.225zm-8.562 0h6.506c.66 0 1.045.57 1.045 1.247v6.607c0 .84-.35 1.112-1.112 1.112h-6.439v-5.696h2.225v3.505h3.135V9.54h-5.36zm-3.235 0h2.19v8.966h-2.19zM0 7.517h7.854c.66 0 1.045.57 1.045 1.247v7.72H6.708V9.774H5.427v6.708H3.438V9.775H2.191v6.708H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiMigadu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.082 1.8984c-3.8526 0-6.9911 3.0832-7.08 6.9141.0017 7.003-.0042 3.8683 0 5.9219-.0635 3.5183 2.4066 7.254 7.082 7.3672h.0058l.0176-4.3106c-.0094-.0072-.0333.0062-.0234-.0176a3.2156 3.2156 0 0 1-.1777-.0078c-.4723-.0681-.883-.1891-1.2286-.3633-.7129-.4136-1.2188-1.2338-1.3496-2.0156-.075-2.2967 1.6707-3.1776 2.754-3.1347 1.789.0708 2.8546 1.4727 2.7538 3.2539v6.5957h4.3282v-7.082a2.816 2.816 0 0 1 .1093-.7716c.2989-1.0394 1.2046-1.8632 2.4453-1.9824h.3829c1.4318.118 2.5303 1.269 2.5703 2.7188v7.1172H24c-.0058-2.3606.0002-4.7215 0-7.082 0-3.8933-3.1478-7.0575-7.0352-7.0821-.8926-.0027-1.8444.1522-2.8007.5566l-.0176-.0097c-.2552-3.6775-3.3229-6.586-7.0645-6.586zm-2.7617 8.3203a1.0235 1.0235 0 0 1 1.0235 1.0235 1.0235 1.0235 0 0 1-1.0235 1.0234 1.0235 1.0235 0 0 1-1.0234-1.0234 1.0235 1.0235 0 0 1 1.0234-1.0235z\"},\"child\":[]}]})(props);\n};\nexport function SiMihoyo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.939 8.8a.65.65 0 0 0-.653.653.65.65 0 0 0 .653.653.65.65 0 0 0 .653-.653.65.65 0 0 0-.653-.653m-5.506 1.886A1.43 1.43 0 0 0 0 12.118v2.474a.59.59 0 0 0 .592.592.59.59 0 0 0 .592-.592v-2.25a.464.464 0 0 1 .465-.464.464.464 0 0 1 .465.465v2.249a.59.59 0 1 0 1.184 0v-2.25a.464.464 0 0 1 .465-.464.464.464 0 0 1 .465.465v1.208c.001.914.736 1.649 1.65 1.649s1.649-.735 1.649-1.649V11.49a.59.59 0 0 0-.592-.592.59.59 0 0 0-.592.592v2.037a.464.464 0 0 1-.465.465.464.464 0 0 1-.466-.465v-1.409a1.43 1.43 0 0 0-1.433-1.432c-.448 0-.853.202-1.115.525-.033.04-.08.079-.158.079s-.125-.038-.158-.079a1.43 1.43 0 0 0-1.115-.525M9.057 9.16a.59.59 0 0 0-.592.591v4.84a.59.59 0 0 0 .592.593.59.59 0 0 0 .592-.592v-1.588a.27.27 0 0 1 .27-.27h.636a.27.27 0 0 1 .27.27v1.588a.59.59 0 0 0 .591.592.59.59 0 0 0 .592-.592V9.75a.59.59 0 0 0-.592-.592.59.59 0 0 0-.592.592v1.465a.27.27 0 0 1-.269.27h-.637a.27.27 0 0 1-.269-.27V9.751a.59.59 0 0 0-.592-.592m7.784 0a.286.286 0 0 0-.203.47l1.166 2.11v2.853a.59.59 0 0 0 .592.592.59.59 0 0 0 .592-.592v-2.853l1.166-2.11c.168-.233-.015-.47-.203-.47h-.606a.27.27 0 0 0-.218.126l-.65 1.188c-.017.03-.046.041-.077.041s-.063-.01-.08-.04l-.655-1.19a.27.27 0 0 0-.218-.125zm-3.776 1.2c-.032 0-.053.155-.053.368s.041.416.082.416c.04 0 .04-.025.237-.196s.228-.171.228-.22-.073-.09-.245-.213c-.171-.122-.216-.155-.249-.155m3.437 0c-.032 0-.077.033-.249.155s-.245.164-.245.213.033.048.229.22.196.196.237.196.081-.204.081-.416-.02-.368-.053-.368m-1.718.343c-1.082 0-1.96 1.006-1.96 2.245s.878 2.245 1.96 2.245 1.959-1.005 1.959-2.245-.877-2.245-1.96-2.245m0 1.118c.541 0 .98.506.98 1.127 0 .622-.438 1.126-.98 1.126s-.979-.504-.979-1.126c0-.62.44-1.127.98-1.127m8.685-1.33c-.334 0-.498.147-.596.22s-.18.147-.269.147c-.229 0-.392-.155-.849-.155-1.082 0-1.96 1.005-1.96 2.245s.878 2.245 1.96 2.245 1.96-1.005 1.96-2.245c0-.452-.12-.894-.343-1.267-.037-.096-.05-.194-.05-.386 0-.265.128-.46.27-.56a.8.8 0 0 1 .408-.138 1.2 1.2 0 0 0-.53-.106m-1.715 1.33c.54 0 .98.505.98 1.127s-.439 1.126-.98 1.126-.98-.504-.98-1.126c0-.62.44-1.126.98-1.127\"},\"child\":[]}]})(props);\n};\nexport function SiMikrotik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.041 6.188a1.404 1.404 0 0 0-.218-.36c-.24-.296-.634-.586-1.14-.864l-4.052-2.22L13.576.519C13.074.243 12.61.065 12.22.013A1.772 1.772 0 0 0 12 0c-.432 0-.974.192-1.576.52L6.37 2.74 2.317 4.96c-.504.279-.9.569-1.14.867a1.59 1.59 0 0 0-.122.17 1.654 1.654 0 0 0-.096.19c-.15.348-.22.816-.22 1.368v8.887c0 .66.1 1.2.316 1.558.216.356.66.706 1.262 1.036l4.054 2.22 4.053 2.223c.504.276.966.456 1.36.506.145.02.291.02.436 0 .39-.05.852-.228 1.356-.506l8.107-4.443c.6-.33 1.046-.68 1.262-1.036.036-.06.068-.123.096-.188.15-.348.22-.818.22-1.37V7.556c0-.552-.07-1.02-.22-1.368zM7.233 16.618c0 .2-.218.33-.396.233l-1.45-.796a1.066 1.066 0 0 1-.552-.934v-4.296c0-.2.216-.33.394-.235l1.728.947a.53.53 0 0 1 .276.468v4.612zm11.934-1.497c0 .39-.213.748-.554.936l-1.45.794a.266.266 0 0 1-.394-.234v-5.692c0-.2-.217-.33-.395-.232l-2.62 1.434c-.34.187-.552.545-.552.934v5.646a.532.532 0 0 1-.278.468l-.41.224c-.32.176-.707.176-1.026 0l-.408-.224a.532.532 0 0 1-.278-.468v-5.646c0-.389-.212-.747-.552-.934L4.835 9.16v-.28c0-.388.212-.746.552-.934l.6-.328a1.064 1.064 0 0 1 1.022 0l4.48 2.452c.318.176.704.176 1.021 0l2.07-1.134a.266.266 0 0 0 0-.468L9.932 5.922a.266.266 0 0 1 0-.468l1.556-.852c.32-.176.707-.176 1.026 0l6.1 3.34c.342.188.554.547.553.936v6.243z\"},\"child\":[]}]})(props);\n};\nexport function SiMilanote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.627 0 12 5.373 12 12s-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0Zm0 12.943L15.057 16H8.943Zm4-4v6.114L12.943 12Zm-8 6.114V8.943L11.057 12Zm8.917 2.227a.665.665 0 0 0 .367-.367l-.003.009a.665.665 0 0 0 .052-.26V7.334a.667.667 0 0 0-1.138-.471L12 11.057 7.805 6.862a.667.667 0 0 0-1.138.471v9.334a.667.667 0 0 0 .666.666h9.334c.092 0 .18-.018.26-.052l-.01.004z\"},\"child\":[]}]})(props);\n};\nexport function SiMilvus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.536 11.997a4.005 4.005 0 0 1-4.015 4.018c-2.36-.005-4.05-1.954-4.01-4.08a4.013 4.013 0 0 1 8.025.061zm8.463-.04a.823.823 0 0 1-.25.616q-1.122 1.128-2.248 2.25c-.082.083-.165.1-.25.054-.091-.048-.124-.121-.098-.242a12.764 12.764 0 0 0 .25-1.626 12.153 12.153 0 0 0 .028-1.49 11.56 11.56 0 0 0-.27-2.114.255.255 0 0 1 .017-.213.194.194 0 0 1 .273-.052.628.628 0 0 1 .086.075l2.174 2.174c.171.17.29.366.289.567zM11.226 20c-1.89-.002-3.488-.565-4.926-1.611a8.317 8.317 0 0 1-.952-.816q-1.125-1.112-2.253-2.221l-1.931-1.899c-.291-.285-.583-.57-.873-.857-.393-.39-.387-.83.012-1.217.296-.288.59-.579.885-.868q1.433-1.41 2.867-2.818c.532-.522 1.057-1.051 1.604-1.555a7.996 7.996 0 0 1 3.786-1.95A7.668 7.668 0 0 1 11.135 4c1.89.015 3.612.546 5.113 1.723a7.987 7.987 0 0 1 2.282 2.77 7.567 7.567 0 0 1 .76 2.556c.255 2.404-.414 4.518-2.046 6.312a7.772 7.772 0 0 1-3.927 2.366 8.995 8.995 0 0 1-2.091.274zm.364-2.137a5.819 5.819 0 0 0 .605-.036 5.35 5.35 0 0 0 .38-.05c1.525-.28 2.76-1.051 3.704-2.263.92-1.178 1.28-2.542 1.168-4.028a5.626 5.626 0 0 0-.631-2.168c-.627-1.213-1.596-2.067-2.817-2.646-1.096-.519-2.248-.649-3.443-.464A5.814 5.814 0 0 0 7.33 7.8c-.858.83-1.707 1.669-2.56 2.504-.426.419-.85.841-1.28 1.257-.274.266-.286.588-.013.857q.804.793 1.61 1.583c.722.709 1.44 1.42 2.165 2.126 1.184 1.153 2.604 1.737 4.339 1.738z\"},\"child\":[]}]})(props);\n};\nexport function SiMinds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.496 18.381a.052.052 0 0 0 .03-.033l.693-2.217 3.192-4.791a.052.052 0 0 0 .003-.004.052.052 0 0 0 .001-.002.052.052 0 0 0 .001-.002.052.052 0 0 0 .002-.005.052.052 0 0 0 0-.003.052.052 0 0 0 .002-.003.052.052 0 0 0 0-.004.052.052 0 0 0 0-.005.052.052 0 0 0 0-.003.052.052 0 0 0 0-.003l-.416-6.947a.052.052 0 0 0 0-.001.052.052 0 0 0 0-.005.052.052 0 0 0 0-.002.052.052 0 0 0-.004-.008.052.052 0 0 0-.002-.005.052.052 0 0 0-.002-.004.052.052 0 0 0-.003-.005.052.052 0 0 0-.003-.003.052.052 0 0 0 0-.001L14.818.016V.014a.052.052 0 0 0-.005-.003.052.052 0 0 0-.003-.002.052.052 0 0 0-.003-.002.052.052 0 0 0-.002-.001.052.052 0 0 0-.002-.001.052.052 0 0 0-.002-.001.052.052 0 0 0 0-.001.052.052 0 0 0-.003 0 .052.052 0 0 0-.002-.001A.052.052 0 0 0 14.79 0a.052.052 0 0 0-.004 0 .052.052 0 0 0-.002 0 .052.052 0 0 0-.002 0 .052.052 0 0 0-.003 0 .052.052 0 0 0-.002 0H9.22a.052.052 0 0 0-.003 0 .052.052 0 0 0-.004 0 .052.052 0 0 0-.004 0 .052.052 0 0 0-.003.001.052.052 0 0 0-.003.001.052.052 0 0 0-.005.002.052.052 0 0 0-.004.003.052.052 0 0 0-.004.002.052.052 0 0 0-.001 0 .052.052 0 0 0-.003.004.052.052 0 0 0-.001 0 .052.052 0 0 0-.003.003L5.01 4.326a.052.052 0 0 0-.003.005.052.052 0 0 0-.006.009.052.052 0 0 0-.002.005.052.052 0 0 0-.002.008.052.052 0 0 0 0 .002.052.052 0 0 0-.001.003.052.052 0 0 0 0 .003l-.417 6.95a.052.052 0 0 0 0 .002.052.052 0 0 0 0 .005.052.052 0 0 0 0 .004.052.052 0 0 0 0 .002.052.052 0 0 0 0 .005.052.052 0 0 0 0 .003.052.052 0 0 0 .002.002.052.052 0 0 0 0 .002.052.052 0 0 0 .002.002.052.052 0 0 0 .003.004.052.052 0 0 0 0 .003l3.195 4.79.692 2.215v.002a.052.052 0 0 0 0 .001.052.052 0 0 0 .001.002.052.052 0 0 0 .002.003.052.052 0 0 0 0 .001.052.052 0 0 0 .001.002.052.052 0 0 0 0 .001.052.052 0 0 0 .002.001.052.052 0 0 0 .001.003.052.052 0 0 0 .001.001.052.052 0 0 0 .001.001.052.052 0 0 0 .002.002.052.052 0 0 0 .003.004.052.052 0 0 0 .002.001.052.052 0 0 0 .002.002.052.052 0 0 0 .001 0 .052.052 0 0 0 .003.003.052.052 0 0 0 .001 0 .052.052 0 0 0 .002.001.052.052 0 0 0 .002.002.052.052 0 0 0 .001 0 .052.052 0 0 0 .001 0 .052.052 0 0 0 .001.001.052.052 0 0 0 .002 0 .052.052 0 0 0 .001.001.052.052 0 0 0 .001 0 .052.052 0 0 0 .003.001.052.052 0 0 0 .002 0 .052.052 0 0 0 0 .001.052.052 0 0 0 .003 0 .052.052 0 0 0 .002 0 .052.052 0 0 0 .003.001.052.052 0 0 0 .001 0 .052.052 0 0 0 .002 0h6.954a.052.052 0 0 0 .02-.004zm-.058-.1H8.889l7.203-2.095zm.618-2.193L8.619 18.25l2.704-5.678zm.068-.08L11.39 12.49l5.14-4.125zm.11-.087l.4-7.542 2.668 2.937zm-7.7 2.27l-.647-2.07 3.232-3.36zm-.698-2.166l-3.094-4.641 6.457 1.143zm11.472-4.858l-2.655-2.92 2.256-3.718zm-7.975 1.236L9.3 5.283l7.188 2.983zm-.102.024l-6.508-1.152 4.475-5.966zm5.285-4.26L9.315 5.175 14.748.15zm.095-.053L14.87.217l4.015 4.15zM4.693 11.14l.403-6.72 4.03.807zm4.474-6.011l-4.015-.803L9.167.178zm.104-.056V.1h5.376zm-.748 13.36v4.143l1.672-1.403zm.057 4.232l1.53.612 1.81.723-1.67-2.737zM12.081 24l3.339-1.335-1.67-1.402zm3.395-1.424v-4.144l-1.67 2.74zm-6.86-4.192L12 23.932l3.383-5.548z\"},\"child\":[]}]})(props);\n};\nexport function SiMinetest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.69 12.436l-.406.24-2.31 1.355v.558l-1.087.667v1.11l-1.087.664v2.857l4.89-2.872v-4.044zm-.543.96v3.298l-3.803 2.234v-1.583l1.087-.666v-1.11l1.086-.666v-.551zm-3.77-7.854l-1.128.792v4.746l.139.08 1.004.577 1.03-.603V6.152zm.026.654l.475.278v4.339l-.49.286-.597-.344v-4.13zM6.215 0l-4.24 2.491V7.03l.136.08 2.907 1.708v2.205l.134.08 1.061.637 1.196-.717V8.816l2.662-1.565V2.327zm-.003.643l3.316 2V6.93L6.213 8.878 2.52 6.708V2.812zm.654 8.492v1.57l-.653.39-.651-.39V9.135l.651.383zm8.947 2.074l-7.88 4.54v1.434l.869.5v1.107l3.208 1.881 6.79-4.102v-1.166l1.087-.666v-1.15zm-.002.638l3.533 2.061v.515l-1.086.665v1.164l-6.251 3.777-2.66-1.56v-1.11l-.87-.5v-.785zm-2.98-9.03a.258.258 0 00-.143.038l-2.616 1.543v.64l2.753-1.624 3.529 2.067-4.317 2.533a.28.28 0 00-.001.48l3.23 1.92-7.058 4.069-7.067-4.175 3.202-1.89-.544-.32-3.337 1.97a.28.28 0 000 .48l7.608 4.494c.083.049.185.05.27 0l7.606-4.382a.28.28 0 00.003-.482l-3.235-1.922 4.32-2.535a.28.28 0 000-.48L12.96 2.853a.312.312 0 00-.13-.038zm4.207 2.427zm.1.104zm.033.137a.275.275 0 01-.136.237l-.407.24v.468l-3.515 2.062.542.322 3.38-1.983a.279.279 0 00.136-.24zm-14.128 8.17v1.1l-1.086-.665v3.978l6.412 3.82v-1.752l-.924-.555V18.47l-1.141-.666v-2.218zm.544.963l2.173 1.286v2.22l1.141.667V19.9l.925.554v.467L2.5 17.75v-2.681l1.087.666v-.49zM11.88 3.33l-1.809 1.065v.003l1.81-1.067zM3.79 8.095L.309 10.147v6.979L11.99 24l11.681-7.042v-6.7l-3.25-1.909v.64l2.707 1.59v6.062l-11.141 6.716L.85 16.805v-6.027l-.389-.23a.28.28 0 010-.48L3.8 8.098zm19.9 4.34l-.406.24-2.31 1.356v.558l-1.087.666v1.11l-1.087.665v2.857l4.89-2.872v-4.044zm-.543.96v3.3l-3.803 2.233v-1.584l1.086-.665v-1.11l1.087-.666v-.551zm-3.77-7.853l-1.129.792v4.746l.14.08 1.003.577 1.031-.603V6.152zm.025.654l.476.278v4.338l-.49.287-.597-.344v-4.13zM6.216 0l-4.24 2.491V7.03l.136.08L5.02 8.817v2.205l.134.08 1.06.637 1.197-.717V8.815l2.662-1.564V2.327zm-.003.643l3.316 2V6.93L6.214 8.878 2.52 6.708V2.812zm.654 8.492v1.57l-.653.39-.651-.39V9.135l.651.383zm8.947 2.074l-7.88 4.54v1.434l.869.5v1.107l3.208 1.881 6.79-4.102v-1.166l1.087-.666v-1.15zm-.002.638l3.533 2.061v.515l-1.087.665v1.164l-6.25 3.777-2.661-1.56v-1.11l-.87-.5v-.786zm-2.98-9.03a.258.258 0 00-.143.038l-2.616 1.543v.64l2.753-1.624 3.529 2.067-4.318 2.533a.28.28 0 000 .48l3.23 1.92-7.059 4.068-7.067-4.174 3.203-1.89-.544-.32-3.337 1.97a.28.28 0 000 .48L8.07 15.04c.084.05.186.05.27.001l7.607-4.382a.28.28 0 00.003-.482l-3.235-1.922 4.32-2.535a.28.28 0 000-.481L12.96 2.854a.31.31 0 00-.13-.038zm4.207 2.427zm.1.104zm.033.137a.275.275 0 01-.136.236l-.407.24v.47l-3.515 2.061.542.322 3.38-1.983a.279.279 0 00.136-.24zm0 .968v.137c0 .1-.052.191-.136.24l-.156.092 1.37.8v-.64zm3.252 1.897v.64l2.725 1.59v.512l-1.984 1.195-1.764 1.03-3.316-1.949v-.95c0-.098-.05-.19-.135-.24l-2.295-1.363-.543.319 2.43 1.444v.95c0 .1.052.192.137.242l3.586 2.107c.083.05.186.05.27.001l1.901-1.11h.004l1.709-1.03v.902l.001.026c.002.02.007.038.011.054.003.007.007.02.011.027.005.007.007.015.012.026l.014.023c.023.03.048.055.079.075l.022.015.026.011a.08.08 0 00.026.007.264.264 0 00.16-.007l.026-.011c.015-.007.034-.019.047-.027.007-.007.015-.01.022-.019.007-.007.011-.015.018-.018l.019-.023c.004-.007.011-.015.015-.023a.139.139 0 00.022-.05c.003-.008.004-.02.007-.027l.004-.027a.239.239 0 00.001-.026v-2.222c0-.1-.051-.192-.136-.242zm-17.38 5.305v1.1l-1.086-.665v3.978l6.412 3.819v-1.751l-.925-.555v-1.112l-1.14-.666v-2.218zm.544.963l2.173 1.286v2.22l1.14.667v1.107l.925.555v.467l-5.325-3.17v-2.681l1.087.666v-.49zM11.88 3.33l-1.808 1.065v.003l1.81-1.067zM3.792 8.095L.308 10.147v6.978L11.992 24l11.681-7.043v-6.699l-3.25-1.909v.64l2.707 1.59v6.062l-11.141 6.716L.852 16.805v-6.028l-.389-.23a.28.28 0 010-.48L3.8 8.1z\"},\"child\":[]}]})(props);\n};\nexport function SiMingww64 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m -3e-4,9.3955 4.187,-4.187 4.1869,4.187 -4.187,4.187 z m 0,10.417 4.187,-4.1869 4.1869,4.187 -4.187,4.1869 z m 5.2086,-5.2085 4.1869,-4.187 4.187,4.187 -4.187,4.187 z m 0,-10.417 L 9.3953,0 13.5822,4.187 9.3952,8.3738 Z m 5.2085,5.2084 4.187,-4.1869 4.1869,4.187 -4.187,4.1869 z M 15.6253,4.187 19.8123,0 l 4.1869,4.187 -4.187,4.1869 z m -5.208,15.626 4.187,-4.1869 4.1869,4.187 L 14.6042,24 Z m 5.2086,-5.2085 4.187,-4.187 4.1868,4.187 -4.1869,4.187 z\"},\"child\":[]}]})(props);\n};\nexport function SiMini (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.1723h7.5563c.48-.749 1.1108-1.3428 1.8935-1.7828.7822-.4393 1.6314-.659 2.5484-.659.9163 0 1.7673.2203 2.5526.6615.7852.4412 1.4154 1.035 1.8892 1.7803H24l-.7483.7483h-6.3994a4.278 4.278 0 0 1 .299.8886h5.2333l-.7483.749h-4.3692c.0129.1932.019.3396.019.4393 0 .0997-.0061.2468-.019.44h3.4904l-.7489.7483h-2.8572a4.0661 4.0661 0 0 1-.299.8844h2.264l-.7582.7483H16.44c-.4738.7464-1.104 1.3421-1.8892 1.7858-.7853.4437-1.6363.6652-2.5526.6652-.917 0-1.7662-.2209-2.5484-.6627-.7827-.4425-1.4135-1.0388-1.8935-1.7883H5.6418l-.744-.7483h2.2597a4.093 4.093 0 0 1-.296-.8844H4.0062l-.7582-.7483h3.4898c-.0129-.1932-.019-.3403-.019-.44 0-.0997.0061-.2461.019-.4393h-4.36l-.7581-.749h5.2418a4.306 4.306 0 0 1 .296-.8886H.7483zm7.8437 1.0714c-.2382.5581-.3575 1.1428-.3575 1.7538 0 .6111.1193 1.1963.3575 1.7545.2381.5575.5594 1.0394.963 1.4443.4038.405.8838.7268 1.44.9662.5564.2393 1.1404.3587 1.7515.3587.6104 0 1.195-.1194 1.7532-.3587.5575-.2394 1.0388-.5613 1.4424-.9662.4037-.405.725-.8868.9656-1.4443.24-.5582.36-1.1434.36-1.7545 0-.611-.12-1.1957-.36-1.7538-.2406-.5582-.5619-1.0388-.9656-1.4425-.4036-.403-.8849-.7243-1.4424-.9637-.5582-.2393-1.1428-.3587-1.7532-.3587-.6111 0-1.1951.1194-1.7514.3587-.5563.2394-1.0363.5607-1.44.9637-.4037.4037-.725.8843-.9631 1.4425zm.5538 2.9421h.4677l-.0135-1.7729.5661 1.773.52-.0032.5557-1.7606v1.7637h.4991v-2.3766l-.7028-.0006-.603 1.8954-.6148-1.893-.6745-.0018zm3.133 0h.4953v-2.3766h-.4953zm1.0332 0h.477v-1.712l.9488 1.712h.5754v-2.3766h-.4677v1.7219l-.9489-1.7219h-.5846zm2.5483 0h.4862v-2.3766h-.4862z\"},\"child\":[]}]})(props);\n};\nexport function SiMinio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.2072.006c-.6216-.0478-1.2.1943-1.6211.582a2.15 2.15 0 0 0-.0938 3.0352l3.4082 3.5507a3.042 3.042 0 0 1-.664 4.6875l-.463.2383V7.2853a15.4198 15.4198 0 0 0-8.0174 10.4862v.0176l6.5487-3.3281v7.621L13.7794 24V13.6817l.8965-.4629a4.4432 4.4432 0 0 0 1.2207-7.0292l-3.371-3.5254a.7489.7489 0 0 1 .037-1.0547.7522.7522 0 0 1 1.0567.0371l.4668.4863-.006.0059 4.0704 4.2441a.0566.0566 0 0 0 .082 0 .06.06 0 0 0 0-.0703l-3.1406-5.1425-.1484.1425.1484-.1445C14.4945.3926 13.8287.0538 13.2072.006Zm-.9024 9.8652v2.9941l-4.1523 2.1484a13.9787 13.9787 0 0 1 2.7676-3.9277 14.1784 14.1784 0 0 1 1.3847-1.2148z\"},\"child\":[]}]})(props);\n};\nexport function SiMintlify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.158.002a8.807 8.807 0 0 0-6.249 2.59l-.062.063h-.003L2.655 8.844a.605.605 0 0 0-.062.058 8.838 8.838 0 0 0-.83 11.55l6.251-6.249.065-.063a8.778 8.778 0 0 1-1.758-5.385 8.784 8.784 0 0 1 .283-2.151 8.993 8.993 0 0 1 2.151-.286 8.802 8.802 0 0 1 5.386 1.76 8.81 8.81 0 0 1 3.032 4.11 8.879 8.879 0 0 1 .225 5.21 8.784 8.784 0 0 0-.341.082 8.846 8.846 0 0 1-4.868-.303 8.679 8.679 0 0 1-2.323-1.25l-.064.065L3.55 22.24a8.85 8.85 0 0 0 11.548-.83l.06-.062 6.19-6.187a8.801 8.801 0 0 1-.367.337c.125-.11.247-.224.366-.341l.063-.058A8.817 8.817 0 0 0 24 8.844V.002ZM8.38 3.17a8.73 8.73 0 0 1 0 0Zm-.325.413Zm-.328.475Zm-.31.518Zm-.235.455Zm-.283.66zm-.156.447Zm14.147 9.44zm-.43.343zm-1.005.65zm-.533.274zm-.475.207z\"},\"child\":[]}]})(props);\n};\nexport function SiMinutemailer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.187 19.181L24 4.755 0 12.386l9.196 1.963.043 4.896 2.759-2.617-2.147-2.076 7.336 4.63z\"},\"child\":[]}]})(props);\n};\nexport function SiMiraheze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.677 12.923 3.768.011 1.949 3.369-1.926 3.323H2.666L.727 16.292l1.95-3.369Zm-.004-8.6 3.761.011 1.944 3.367-1.922 3.326H2.662L.727 7.69l1.946-3.367Zm14.882 0 3.768.011 1.95 3.367-1.928 3.326h-3.801L15.606 7.69l1.949-3.367Zm0 8.6 3.768.011 1.95 3.369-1.928 3.323h-3.802l-1.937-3.334 1.949-3.369Zm-7.456 4.373 3.767.011 1.951 3.368L13.889 24h-3.801l-1.939-3.336 1.95-3.368Zm0-17.296 3.767.011 1.951 3.369-1.928 3.324h-3.801L8.149 3.368 10.099 0Zm0 8.628 3.767.011 1.951 3.368-1.928 3.325h-3.801l-1.939-3.336 1.95-3.368Z\"},\"child\":[]}]})(props);\n};\nexport function SiMiro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.392 0H13.9L17 4.808 10.444 0H6.949l3.102 6.3L3.494 0H0l3.05 8.131L0 24h3.494L10.05 6.985 6.949 24h3.494L17 5.494 13.899 24h3.493L24 3.672 17.392 0z\"},\"child\":[]}]})(props);\n};\nexport function SiMisskey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.91076 16.8915c-1.03957.0038-1.93213-.6294-2.35267-1.366-.22516-.3217-.66989-.4364-.6761 0v2.0148c0 .8094-.29152 1.5097-.87581 2.1002-.56755.573-1.25977.8595-2.0779.8595-.80014 0-1.49298-.2865-2.07727-.8601C.28408 19.05 0 18.3497 0 17.5403V6.45968c0-.62378.17553-1.18863.52599-1.69455.36657-.52284.83426-.88582 1.4018-1.08769a2.84574 2.84574 0 0 1 1.00049-.17742c.90125 0 1.65239.35421 2.25281 1.06262l2.99713 3.51572c.06699.05016.263.43696.73192.43696.47016 0 .6916-.3868.75796-.43758l2.9717-3.5151c.6178-.70841 1.377-1.06262 2.2782-1.06262.3337 0 .6675.05893 1.0012.17742.5669.20187 1.0259.56422 1.377 1.08769.3665.50592.5501 1.07077.5501 1.69455V17.5403c0 .8094-.2915 1.5097-.8758 2.1002-.5675.573-1.2604.8595-2.0779.8595-.8008 0-1.493-.2865-2.0779-.8601-.5669-.5899-.8504-1.2902-.8504-2.0996v-2.0148c-.0496-.5499-.5303-.2032-.7009 0-.4503.8431-1.31369 1.3616-2.35264 1.366ZM21.447 8.60998c-.7009 0-1.3015-.24449-1.8019-.73348-.4838-.50571-.7257-1.11277-.7257-1.82118s.2419-1.30711.7257-1.79611c.5004-.50571 1.101-.75856 1.8019-.75856.7009 0 1.3017.25285 1.8025.75856.5003.489.7505 1.0877.7505 1.79611 0 .70841-.2502 1.31547-.7505 1.82118-.5008.48899-1.1016.73348-1.8025.73348Zm.0248.50655c.7009 0 1.2935.25285 1.7777.75856.5003.50571.7505 1.11301.7505 1.82181v6.2484c0 .7084-.2502 1.3155-.7505 1.8212-.4838.489-1.0764.7335-1.7777.7335-.7005 0-1.3011-.2445-1.8019-.7335-.5003-.5057-.7505-1.1128-.7505-1.8212v-6.2484c0-.7084.2502-1.3157.7505-1.82181.5004-.50571 1.101-.75856 1.8019-.75856Z\"},\"child\":[]}]})(props);\n};\nexport function SiMitsubishi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 22.38H0l4-6.92h8zm8 0h8l-4-6.92h-8zm0-13.84l-4-6.92-4 6.92 4 6.92Z\"},\"child\":[]}]})(props);\n};\nexport function SiMix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.001 0v21.61c0 1.32 1.074 2.39 2.4 2.39a2.396 2.396 0 0 0 2.402-2.39V8.54c0 .014-.005.026-.006.04V6.364a2.395 2.395 0 0 1 2.399-2.393 2.396 2.396 0 0 1 2.398 2.393v9.356a2.394 2.394 0 0 0 2.398 2.393 2.394 2.394 0 0 0 2.398-2.39v-3.692a2.398 2.398 0 0 1 2.385-2.078 2.4 2.4 0 0 1 2.41 2.389v1.214a2.397 2.397 0 0 0 2.408 2.389 2.399 2.399 0 0 0 2.406-2.39V.006a4.61 4.61 0 0 0-.145-.004c-1.31 0-2.558.264-3.693.74A9.449 9.449 0 0 1 23.841 0z\"},\"child\":[]}]})(props);\n};\nexport function SiMixcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.462 8.596l1.372 6.49h.319l1.372-6.49h2.462v6.808H6.742v-5.68l.232-.81h-.402l-1.43 6.49H2.854l-1.44-6.49h-.391l.222.81v5.68H0V8.596zM24 8.63v1.429L21.257 12 24 13.941v1.43l-3.235-2.329h-.348l-3.226 2.329v-1.43l2.734-1.94-2.733-1.942V8.63l3.225 2.338h.348zm-7.869 2.75v1.24H9.304v-1.24z\"},\"child\":[]}]})(props);\n};\nexport function SiMixpanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.967 9.996h3.053c-.763-.477-1.048-1.145-1.431-2.384L7.443 3.366C6.919 1.458 6.49.551 4.39.551H.004v1.145h.621c1.286 0 1.431.477 1.814 1.908L3.44 7.326c.524 1.814 1.337 2.67 3.53 2.67h-.003Zm7.06 0h3.053c2.194 0 2.956-.86 3.484-2.67l1.001-3.722c.382-1.431.57-1.908 1.814-1.908H24V.551h-4.34c-2.146 0-2.576.86-3.053 2.815l-1.145 4.246c-.384 1.286-.673 1.907-1.435 2.384Zm-4.007 4.008h4.007V9.996H10.02v4.008ZM0 23.449h4.39c2.1 0 2.529-.907 3.053-2.815l1.146-4.246c.383-1.239.668-1.907 1.431-2.384H6.967c-2.194 0-3.007.86-3.531 2.67l-1.001 3.722c-.383 1.431-.524 1.907-1.814 1.907H0v1.146Zm19.65 0h4.343v-1.146h-.622c-1.239 0-1.431-.476-1.814-1.907l-1.001-3.722c-.524-1.814-1.286-2.67-3.483-2.67h-3.046c.762.477 1.041 1.098 1.424 2.384l1.145 4.246c.477 1.955.907 2.815 3.054 2.815Z\"},\"child\":[]}]})(props);\n};\nexport function SiMlb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.003 5.53a1.988 1.988 0 011.99 1.827l.007.177v8.927a2.007 2.007 0 01-1.848 2.002l-.15.006H2.002a2.003 2.003 0 01-1.42-.586 1.979 1.979 0 01-.575-1.245L0 16.46V7.535a1.994 1.994 0 01.583-1.427 2.016 2.016 0 011.242-.57l.176-.007h20.002zm-7.5.703H2.001a1.312 1.312 0 00-.926.375 1.299 1.299 0 00-.374.926v8.927a1.282 1.282 0 00.374.922c.246.245.579.383.926.384h8.116a92.275 92.275 0 00-.495-.843H8.66c0-2.402.812-3.73 1.784-3.995.133-.024.07-.68-.1-.88h-.561c-.09 0-.038-.169-.038-.169l.456-.972-.062-.266H8.455l1.383-.967c.064-2.55 2.68-2.748 4.255-1.686.937.62 1.008 1.849.937 2.698-.012.054-.244.018-.244.018s-.16.937.257.937h1.838c.749-.03 1.472.478 1.472.478l.176-.643-4.026-5.244zm7.5 0h-5.59l3.207 5.36.296.038.187.245v.229l.202.041.188.255v.221l.21.037.211.23v.51c.252.228.536.418.843.563.283.108.315.562.486.803.213.352.505.493.444.69-.143.526-.682 1.414-1.184 1.456h-1.986v.85h2.488a1.3 1.3 0 001.294-1.311V7.534h-.002a1.285 1.285 0 00-1.294-1.3zM4.022 14.404a.888.888 0 01-.638 1.513.879.879 0 01-.88-.888.888.888 0 011.518-.625z\"},\"child\":[]}]})(props);\n};\nexport function SiMlflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.883.002a12.044 12.044 0 0 0-9.326 19.463l3.668-2.694A7.573 7.573 0 0 1 12.043 4.45v2.867l6.908-5.14A12.012 12.012 0 0 0 11.883.002zm9.562 4.533L17.777 7.23a7.573 7.573 0 0 1-5.818 12.322v-2.867l-6.908 5.14a12.046 12.046 0 0 0 16.394-17.29z\"},\"child\":[]}]})(props);\n};\nexport function SiMobx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.402 0C.625 0 0 .625 0 1.402v21.196C0 23.375.625 24 1.402 24h21.196c.777 0 1.402-.625 1.402-1.402V1.402C24 .625 23.375 0 22.598 0zm2.882 5.465h3.038v13.068H4.284v-.986h1.863V6.45H4.284zm12.394 0h3.038v.985h-1.863v11.098h1.863v.986h-3.038zm-7.856 3.55h1.35c.108.441.234.914.378 1.418.153.495.31.99.472 1.485.171.486.342.958.513 1.417.171.46.333.869.486 1.229.153-.36.315-.77.486-1.229.171-.459.338-.931.5-1.417.17-.495.328-.99.472-1.485.153-.504.284-.977.392-1.418h1.296a34.295 34.295 0 0 1-1.242 3.78 56.44 56.44 0 0 1-1.364 3.24h-1.134a63.191 63.191 0 0 1-1.377-3.24 36.226 36.226 0 0 1-1.228-3.78Z\"},\"child\":[]}]})(props);\n};\nexport function SiMobxstatetree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.4359.5918c-.5327.0013-1.073.2715-1.432.8068L.3056 17.5528c-.9402 1.9806.4223 3.8737 2.2691 4.4105 3.469.7726 6.646-1.2927 6.646-1.2927 4.68-2.9945 7.7024-4.6851 7.7024-4.6851 3.7297-1.8907 6.9926.4293 6.9995.4342L13.8248 1.3986c-.3309-.54-.8563-.808-1.389-.8068zm.0043 1.6599c.4191-.0013.8326.2102 1.093.635 2.4662 3.6608 5.2689 7.4349 7.6288 11.1616 0 0-2.252-1.1721-5.19.3173 0 0-2.3795 1.3306-6.0622 3.687 0 0-2.4992 1.6244-5.229 1.0164-1.4534-.4224-2.5263-1.9125-1.7865-3.4711l8.4195-12.7111c.2825-.4212.7072-.6342 1.1264-.6351zM20.86 16.4169c-4.0347.0998-7.5355 3.8695-10.387 4.9836 4.3352 5.2103 17.3143-.9708 12.454-4.4241-.6166-.4203-1.315-.578-2.067-.5595zm-.0247 1.0159c.5446.003 1.04.1454 1.4567.4783 2.288 2.2856-6.3047 6.2616-9.9585 3.647 1.1813-.0912 5.5606-4.1413 8.5018-4.1253Z\"},\"child\":[]}]})(props);\n};\nexport function SiMocha (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.325 0c-.907 1.116-2.442 2.302-.768 4.814.558.628.838 1.953.768 2.372 0 0 2.512-1.464.977-4.116-.907-1.395-1.326-2.582-.977-3.07zm-2.79 2.582c-.628.767-1.605 1.535-.489 3.279.35.349.489 1.256.489 1.535 0 0 1.673-.978.627-2.792-.628-.907-.906-1.743-.627-2.022zm-5.094 6a.699.699 0 0 0-.697.698c0 2.372.349 10.535 3.837 14.512.14.139.28.208.489.208h5.86c.21 0 .35-.069.489-.208 3.488-3.908 3.837-12.07 3.837-14.512a.7.7 0 0 0-.698-.699H12zm2.023 2.163h9.21c.349 0 .697.278.697.697 0 1.953-.348 7.465-2.72 10.326-.21.14-.35.208-.559.208H9.976a.633.633 0 0 1-.488-.208c-2.372-2.79-2.652-8.373-2.722-10.326 0-.35.28-.697.698-.697zm8.792 4.744s-.071.627-1.745 1.255c-2.303.837-6.348.28-6.348.28.349 1.465.906 2.86 1.743 3.907.07.14.28.209.419.209h3.489c.14 0 .279-.07.418-.209 1.186-1.395 1.745-3.558 2.024-5.442z\"},\"child\":[]}]})(props);\n};\nexport function SiMockserviceworker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.5 0A4.49 4.49 0 0 0 0 4.5v15A4.49 4.49 0 0 0 4.5 24h15a4.49 4.49 0 0 0 4.5-4.5v-15A4.49 4.49 0 0 0 19.5 0Zm1.633 4.43 11.715.013c.623.001 1.208.26 1.62.674.414.414.671 1 .67 1.623v.086l-1.224 11.799a2.31 2.31 0 0 1-.836 1.545 2.293 2.293 0 0 1-3.15-.246L4.426 8.262a2.31 2.31 0 0 1-.586-1.657A2.295 2.295 0 0 1 6.133 4.43Zm2.363 3.35 7.334 8.146.844-8.137zm1.123.501 3.244.004 2.92 3.244-.336 3.227zM4.678 9.287l3.017 3.354-.369 3.57 3.588.004 3.018 3.351-7.78-.01c-.623 0-1.208-.26-1.62-.673-.414-.414-.671-1-.67-1.623v-.086z\"},\"child\":[]}]})(props);\n};\nexport function SiModal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.89 5.57 0 14.002l2.521 4.4h5.05l4.396-7.718 4.512 7.709 4.996.037L24 14.057l-4.857-8.452-5.073-.015-2.076 3.598L9.94 5.57Zm.837.729h3.787l1.845 3.252H7.572Zm9.189.021 3.803.012 4.228 7.355-3.736-.027zm-9.82.346L6.94 9.914l-4.209 7.389-1.892-3.3Zm9.187.014 4.297 7.343-1.892 3.282-4.3-7.344zm-6.713 3.6h3.79l-4.212 7.394H3.361Zm11.64 4.109 3.74.027-1.893 3.281-3.74-.027z\"},\"child\":[]}]})(props);\n};\nexport function SiModin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.4403 7.3914H8.506a.3583.3583 0 0 0 .3536-.3536.3583.3583 0 0 0-.3536-.3583H6.4403a.3583.3583 0 1 0 0 .7119zm14.0794 7.0816a1.7402 1.7402 0 0 0-1.7727 1.7774 1.7727 1.7727 0 0 0 1.7727 1.796h1.703A1.7727 1.7727 0 0 0 24 16.2735a1.7448 1.7448 0 0 0-1.7773-1.7774zm1.703-4.9506A1.7448 1.7448 0 0 0 24 7.745a1.7727 1.7727 0 0 0-1.7773-1.7727h-1.703A1.7727 1.7727 0 0 0 18.747 7.745a1.7402 1.7402 0 0 0 1.7727 1.7774zm-1.703.6979a1.7774 1.7774 0 0 0-1.7727 1.7774 1.7402 1.7402 0 0 0 1.7727 1.7774h1.703A1.7448 1.7448 0 0 0 24 11.9977a1.7774 1.7774 0 0 0-1.7773-1.7728zm-4.8854 4.2527a1.7402 1.7402 0 0 0-1.7728 1.7774 1.768 1.768 0 0 0 1.7728 1.796h.6327a1.7727 1.7727 0 0 0 1.7774-1.7728 1.7448 1.7448 0 0 0-1.7774-1.8006zm.6327-4.9506a1.7448 1.7448 0 0 0 1.7774-1.7774 1.7727 1.7727 0 0 0-1.7774-1.7727h-.6514A1.768 1.768 0 0 0 13.843 7.745a1.7402 1.7402 0 0 0 1.7727 1.7774zm-.6514.6979a1.7774 1.7774 0 0 0-1.754 1.7774 1.7402 1.7402 0 0 0 1.7727 1.7774h.6327a1.7448 1.7448 0 0 0 1.796-1.7774 1.7774 1.7774 0 0 0-1.796-1.7774zM3.9138 8.8244h1.033a.3536.3536 0 0 0 .3582-.3536.363.363 0 0 0-.3583-.3582H3.9324a.3536.3536 0 0 0 0 .7072zm-3.15-2.131h.2699a.3536.3536 0 0 0 .3583-.3536.363.363 0 0 0-.3583-.3582H.7638a.3536.3536 0 0 0 0 .7072zm5.6765 9.9106H8.506a.3536.3536 0 0 1 .3536.3536.3583.3583 0 0 1-.3536.3583H6.4403a.3583.3583 0 1 1 0-.712zm-2.5079-1.4191h1.033a.3536.3536 0 1 1 0 .7072h-1.033a.3536.3536 0 0 1 0-.7072zm-3.15 2.131h.2699a.3536.3536 0 0 1 .3583.3536.363.363 0 0 1-.3583.3582H.7824a.3536.3536 0 0 1 0-.7072zm1.5867.7304h9.0264a1.7727 1.7727 0 0 0 1.7728-1.7727 1.7402 1.7402 0 0 0-1.7728-1.7774H1.6944a.3583.3583 0 0 0 0 .712h.9306a.3536.3536 0 0 1 0 .7072H.3172a.3583.3583 0 0 0 0 .7118H5.17a.3583.3583 0 0 1 0 .712H2.3784a.3536.3536 0 0 0-.3397.3535.3583.3583 0 0 0 .3536.3583Zm4.0712-6.3883H8.506a.3536.3536 0 0 0 .3536-.3536.3583.3583 0 0 0-.3536-.3583H6.4403a.363.363 0 0 0-.3583.3583.3583.3583 0 0 0 .3583.3536zm-2.5079 1.4238h1.033a.3583.3583 0 1 0 0-.7119h-1.033a.3536.3536 0 0 0-.3536.3536.3583.3583 0 0 0 .3536.3583zm-3.15-2.131h.2699a.3536.3536 0 1 0 0-.7072H.7824a.3583.3583 0 0 0-.3536.3536.3583.3583 0 0 0 .3536.3582zm1.5867-.7119h9.0264a1.7774 1.7774 0 0 1 1.7728 1.7588 1.7402 1.7402 0 0 1-1.7728 1.7774H1.6944a.3536.3536 0 0 1 0-.7073h.9306a.3583.3583 0 0 0 .3536-.3582.3583.3583 0 0 0-.3536-.3537H.3172a.3583.3583 0 0 1 0-.7118H5.17a.3583.3583 0 0 0 0-.712H2.3784a.3583.3583 0 0 1 0-.7118zm0-4.2527h9.0264a1.7727 1.7727 0 0 1 1.7728 1.7727 1.7402 1.7402 0 0 1-1.7728 1.7774H1.6944a.3583.3583 0 0 1-.3536-.3536.3536.3536 0 0 1 .3396-.3583h.9306a.3536.3536 0 0 0 0-.7072H.3172a.3583.3583 0 0 1 0-.7119H5.17a.3583.3583 0 0 0 0-.7118H2.3784a.3536.3536 0 0 1-.3397-.3537.3583.3583 0 0 1 .3304-.3908Z\"},\"child\":[]}]})(props);\n};\nexport function SiModrinth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.252.004a11.78 11.768 0 0 0-8.92 3.73 11 10.999 0 0 0-2.17 3.11 11.37 11.359 0 0 0-1.16 5.169c0 1.42.17 2.5.6 3.77.24.759.77 1.899 1.17 2.529a12.3 12.298 0 0 0 8.85 5.639c.44.05 2.54.07 2.76.02.2-.04.22.1-.26-1.7l-.36-1.37-1.01-.06a8.5 8.489 0 0 1-5.18-1.8 5.34 5.34 0 0 1-1.3-1.26c0-.05.34-.28.74-.5a37.572 37.545 0 0 1 2.88-1.629c.03 0 .5.45 1.06.98l1 .97 2.07-.43 2.06-.43 1.47-1.47c.8-.8 1.48-1.5 1.48-1.52 0-.09-.42-1.63-.46-1.7-.04-.06-.2-.03-1.02.18-.53.13-1.2.3-1.45.4l-.48.15-.53.53-.53.53-.93.1-.93.07-.52-.5a2.7 2.7 0 0 1-.96-1.7l-.13-.6.43-.57c.68-.9.68-.9 1.46-1.1.4-.1.65-.2.83-.33.13-.099.65-.579 1.14-1.069l.9-.9-.7-.7-.7-.7-1.95.54c-1.07.3-1.96.53-1.97.53-.03 0-2.23 2.48-2.63 2.97l-.29.35.28 1.03c.16.56.3 1.16.31 1.34l.03.3-.34.23c-.37.23-2.22 1.3-2.84 1.63-.36.2-.37.2-.44.1-.08-.1-.23-.6-.32-1.03-.18-.86-.17-2.75.02-3.73a8.84 8.839 0 0 1 7.9-6.93c.43-.03.77-.08.78-.1.06-.17.5-2.999.47-3.039-.01-.02-.1-.02-.2-.03Zm3.68.67c-.2 0-.3.1-.37.38-.06.23-.46 2.42-.46 2.52 0 .04.1.11.22.16a8.51 8.499 0 0 1 2.99 2 8.38 8.379 0 0 1 2.16 3.449 6.9 6.9 0 0 1 .4 2.8c0 1.07 0 1.27-.1 1.73a9.37 9.369 0 0 1-1.76 3.769c-.32.4-.98 1.06-1.37 1.38-.38.32-1.54 1.1-1.7 1.14-.1.03-.1.06-.07.26.03.18.64 2.56.7 2.78l.06.06a12.07 12.058 0 0 0 7.27-9.4c.13-.77.13-2.58 0-3.4a11.96 11.948 0 0 0-5.73-8.578c-.7-.42-2.05-1.06-2.25-1.06Z\"},\"child\":[]}]})(props);\n};\nexport function SiModx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.145 9.49l4.47-7.19H12.118l-1.24 2.023zM2.92 0v11.497l2.48 1.55 13.435-3.1zm18.16 24V12.503l-1.984-1.263-5.168 8.267zM5.165 14.053l-4.78 7.648h11.497L18.6 10.953Z\"},\"child\":[]}]})(props);\n};\nexport function SiMojeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.141 16.488c-.53 0-.824-.353-.824-1.147 0-.795.49-4.182.68-5.736.35-2.885-1.313-4.976-3.725-4.976-1.912 0-3.37.756-4.514 1.973-.776-1.173-1.648-1.973-3.343-1.973-1.652 0-2.676.605-3.684 1.574C6.189 5.138 5.222 4.63 3.777 4.63 2.578 4.629.967 5.23 0 5.825l1.077 2.44c.734-.409 1.336-.718 1.853-.718.566 0 .902.408.808 1.262-.09.824-1.09 10.268-1.09 10.268H5.9s.638-6.061.863-7.885c.264-2.137 1.299-3.49 2.774-3.49 1.294 0 1.735 1.018 1.642 2.21-.08 1.037-1.025 9.165-1.025 9.165h3.27s.72-6.738.946-8.408c.293-2.17 1.692-2.967 2.57-2.967 1.443 0 1.882 1.18 1.747 2.299-.11.91-.5 4.118-.62 5.782-.147 2.058.824 3.589 2.663 3.589 1.206 0 2.412-.344 3.27-.835l-.703-2.413c-.41.177-.797.364-1.155.364\"},\"child\":[]}]})(props);\n};\nexport function SiMoleculer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.442.718a2.58 2.58 0 0 0-2.579 2.579 2.58 2.58 0 0 0 1.368 2.275L12.809 8.27a3.505 3.505 0 0 0-1.077-.172 3.505 3.505 0 0 0-3.505 3.505 3.505 3.505 0 0 0 .085.745l-2.83 1.036a2.97 2.97 0 0 0-2.513-1.39A2.97 2.97 0 0 0 0 14.962a2.97 2.97 0 0 0 2.97 2.97 2.97 2.97 0 0 0 2.969-2.97 2.97 2.97 0 0 0-.072-.634l2.716-1.193a3.505 3.505 0 0 0 3.15 1.972 3.505 3.505 0 0 0 2.129-.724l2.276 2.167a4.305 4.305 0 0 0-.749 2.426 4.305 4.305 0 0 0 4.306 4.305A4.305 4.305 0 0 0 24 18.977a4.305 4.305 0 0 0-4.305-4.305 4.305 4.305 0 0 0-2.718.969l-2.424-1.964a3.505 3.505 0 0 0 .684-2.074 3.505 3.505 0 0 0-1.521-2.89l1.204-2.891a2.58 2.58 0 0 0 .522.054 2.58 2.58 0 0 0 2.58-2.58 2.58 2.58 0 0 0-2.58-2.578Z\"},\"child\":[]}]})(props);\n};\nexport function SiMomenteo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.925 6.615c-.6.01-1.154.323-1.472.831-.348.41-3.163 3.98-4.142 5.22l.765.968c1.036-1.306 4.096-5.169 4.243-5.348a.765.765 0 011.265 0c.344.42 1.624 2.047 2.703 3.408.482.591.926 1.213 1.328 1.862.626 1.043-.395 2.02-.792 2.457l-3.254-4.098a.811.811 0 00-1.25-.016L14.2 15.836 7.548 7.447a1.774 1.774 0 00-3.02.024c-.059.067-1.706 2.156-2.989 3.776-.528.701-.956 1.33-1.178 1.7-1.048 1.75.441 3.462 1.239 4.165.174.16.399.257.636.272a.727.727 0 00.677-.368l3.145-3.97s2.882 3.644 3.227 4.07a.64.64 0 001.033-.005c.198-.253.76-.962 1.373-1.733l-.765-.964c-.548.69-1.021 1.286-1.127 1.426l-3.118-3.938a.811.811 0 00-1.25.016l-3.254 4.099c-.397-.438-1.416-1.415-.792-2.458a17.57 17.57 0 011.329-1.861c1.078-1.362 2.358-2.989 2.703-3.408a.765.765 0 011.264 0l7 8.823a.64.64 0 001.034.005c.345-.426 3.227-4.07 3.227-4.07l3.146 3.968a.727.727 0 00.675.367c.238-.015.463-.11.638-.272.797-.702 2.286-2.414 1.238-4.165-.222-.37-.65-1-1.179-1.7-1.282-1.621-2.929-3.71-2.989-3.777a1.774 1.774 0 00-1.546-.854z\"},\"child\":[]}]})(props);\n};\nexport function SiMonero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.365 0 0 5.373 0 12.015c0 1.335.228 2.607.618 3.81h3.577V5.729L12 13.545l7.805-7.815v10.095h3.577c.389-1.203.618-2.475.618-3.81C24 5.375 18.635 0 12 0zm-1.788 15.307l-3.417-3.421v6.351H1.758C3.87 21.689 7.678 24 12 24s8.162-2.311 10.245-5.764h-5.04v-6.351l-3.386 3.421-1.788 1.79-1.814-1.79h-.005z\"},\"child\":[]}]})(props);\n};\nexport function SiMoneygram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.6274-5.3726 12-12 12S0 18.6274 0 12c0-1.8257.4071-3.5554 1.1374-5.1051C.6514 8.1257.433 9.3446.433 10.4863c0 5.4334 4.3868 6.2203 6.2537 6.2023 2.8371-.0257 6.1543-1.416 8.9485-3.9909l-.4714 2.6494c-.1054.606.2906 1.1392.8957 1.1426h.2503c.6274 0 1.0732-.5108 1.1863-1.1426l1.0063-5.6622c.12-.6283-.2932-1.14-.9214-1.14h-5.6726c-.6309 0-1.2077.3342-1.32.9677l-.0446.2554c-.09.6026.33 1.0569.9317 1.0569h2.9589a9.48 9.48 0 0 0-.1414.1388c-2.04 1.9312-4.5558 2.988-6.6403 2.988-2.0803 0-4.41-1.3123-4.41-4.2686C3.2426 3.5546 8.9906 0 12 0c6.6137 0 12 5.3726 12 12\"},\"child\":[]}]})(props);\n};\nexport function SiMongodb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.193 9.555c-1.264-5.58-4.252-7.414-4.573-8.115-.28-.394-.53-.954-.735-1.44-.036.495-.055.685-.523 1.184-.723.566-4.438 3.682-4.74 10.02-.282 5.912 4.27 9.435 4.888 9.884l.07.05A73.49 73.49 0 0111.91 24h.481c.114-1.032.284-2.056.51-3.07.417-.296.604-.463.85-.693a11.342 11.342 0 003.639-8.464c.01-.814-.103-1.662-.197-2.218zm-5.336 8.195s0-8.291.275-8.29c.213 0 .49 10.695.49 10.695-.381-.045-.765-1.76-.765-2.405z\"},\"child\":[]}]})(props);\n};\nexport function SiMongoose (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.014 7.37a9.162 9.162 0 0 0-.808.025c-.218.017-.434.072-.65.11.229.118.456.213.68.315.225.103.436.232.629.387-.253-.097-.499-.208-.752-.298a8.046 8.046 0 0 0-1.624-.421c-.273-.037-.546-.073-.819.005-.276.078-.354.18-.38.458-.04.46.098.887.281 1.298a4.432 4.432 0 0 0 1.185 1.573c.391.335.825.598 1.305.787.136.053.274.103.411.155l-.009.032c-.263-.072-.532-.126-.787-.22a4.14 4.14 0 0 1-1.222-.73 4.16 4.16 0 0 1-1.007-1.22 3.43 3.43 0 0 1-.43-1.609l-.012.005C4.891 7.488.402 11.595.035 11.94l-.034.014c-.002.005 0 .01.003.016L0 11.974l.005-.002c.004.008.01.016.013.024.087-.019.173-.042.26-.054l.069-.01c.324-.115.655-.205.997-.253.484-.069.985-.159 1.48-.156.468.002.943.074 1.402.153.129.022.255.052.38.087.335.075.65.21.933.391l.06.03c.403.19.758.47 1.038.811.052.057.141.116.187.178.096.114.142.236.303.363v-1.737h2.01l.939 1.733.942-1.733h2.07v3.357l.343-.226s.375-1 2.116-1.14l1.996-.064c-.308-.637-.307-.637-.159-.83.147-.19 1.28-.314 1.48-.433l2.912-.588c.007-.022.015.012.03.007.072-.022.147-.037.25-.061l.66-.16c.042-.025.093-.034.14-.05.308-.107.577-.245.726-.573.145-.319.339-.616.41-.967.022-.111.003-.208-.078-.288-.097-.096-.222-.138-.35-.171-.421-.173-.84-.35-1.264-.513-.261-.101-.529-.185-.795-.27a30.574 30.574 0 0 0-.794-.243c-.244-.072-.49-.138-.736-.205-.24-.066-.48-.133-.72-.192-.282-.07-.565-.13-.847-.195-.215-.05-.428-.102-.644-.146-.234-.047-.47-.089-.706-.13-.302-.053-.602-.112-.905-.153-.366-.05-.734-.082-1.101-.125-.345-.04-.691-.065-1.038-.07zm-3.303.767a.154.154 0 0 1 .056.007c.42.13.83.277 1.216.491.365.203.695.45.979.756.012.013.02.028.036.05l-.645-.293-.021.026.37.551-.022.022a1.986 1.986 0 0 0-.665-.322l-.02.02.633.74-.416-.136-.017.02c.163.27.376.505.58.775-.354-.2-.665-.42-.956-.669a4.488 4.488 0 0 1-1.01-1.185c-.107-.19-.201-.385-.222-.606a.468.468 0 0 1 .011-.15.123.123 0 0 1 .113-.097zm5.424.668c.154.002.311-.006.464.015.278.037.555.092.832.14.158.027.317.052.474.086.297.064.594.133.89.2.196.046.392.092.587.14l-.329.161c-.365.027-.731.055-1.097.057a3.268 3.268 0 0 1-.675-.074c-.28-.058-.514-.196-.652-.466-.02-.04-.09-.063-.14-.078-.18-.054-.362-.1-.544-.168.063-.005.126-.014.19-.013zm3.223 2.635.005.02c-.08.022-.16.042-.239.067-.455.14-.916.266-1.363.428-.28.101-.544.25-.81.388-.233.119-.315.322-.287.575.019.162.04.324.055.488a1.786 1.786 0 0 1-.288-.701c-.035-.169.058-.273.18-.365.238-.178.496-.318.777-.41.35-.117.702-.233 1.059-.325.251-.065.513-.09.77-.133.048-.008.094-.021.141-.032zM9.141 13.955v2.676h1.869l.064-.066v-2.61l-.97 1.495z\"},\"child\":[]}]})(props);\n};\nexport function SiMongoosedotws (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a4.863 4.863 0 0 0-3.456 1.43L1.43 8.545a4.879 4.879 0 0 0-.09 6.804L7.41 9.28a1.454 1.454 0 0 1 .37-1.434 1.471 1.471 0 0 1 2.079 0c.58.58.58 1.512.006 2.085-.37.37-.89.496-1.368.388l-6.099 6.1 6.147 6.146a4.887 4.887 0 0 0 6.911.007l6.243-6.243-2.951-2.951a1.453 1.453 0 0 1-1.434-.37 1.471 1.471 0 0 1 0-2.08 1.474 1.474 0 0 1 2.085-.006c.37.37.496.89.388 1.368l2.963 2.963a4.872 4.872 0 0 0-.185-6.708l-7.108-7.108A4.881 4.881 0 0 0 12 0Zm3.16 7.4c.122-.002.243.012.361.04.257.054.508.185.711.388.185.185.317.412.37.657a1.43 1.43 0 0 1-.364 1.428 1.47 1.47 0 0 1-1.368.388l-1.416 1.416a1.457 1.457 0 0 1-1.756 1.756 1.42 1.42 0 0 1-.71-.388 1.347 1.347 0 0 1-.371-.657A1.43 1.43 0 0 1 10.98 11a1.47 1.47 0 0 1 1.368-.388l1.416-1.416a1.46 1.46 0 0 1 1.396-1.795zm.033.733a.736.736 0 0 0-.52 1.254.737.737 0 0 0 1.046.006.737.737 0 0 0-.006-1.046.732.732 0 0 0-.52-.214zm-6.374.018a.735.735 0 0 0-.52 1.254.737.737 0 0 0 1.046.006.737.737 0 0 0-.006-1.045.733.733 0 0 0-.52-.215zm9.54 3.077a.745.745 0 0 0-.526.22.736.736 0 0 0 1.04 1.04.737.737 0 0 0 .006-1.046.73.73 0 0 0-.52-.214zm-6.329.078a.724.724 0 0 0-.41.119 1.01 1.01 0 0 0-.12.096c-.035.035-.065.077-.095.119a.737.737 0 0 0 .102.926.735.735 0 0 0 1.039-1.04.743.743 0 0 0-.516-.22z\"},\"child\":[]}]})(props);\n};\nexport function SiMonica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.99 1.13C1.88 1.13 0 3.369 0 5.575c0 1.4.827 2.505 1.73 3.127a17.048 17.048 0 0 0-.978 3.608c-1.205 7.394 5.824 10.56 11.441 10.56 5.617 0 11.85-3.612 11.063-10.56a14.743 14.743 0 0 0-.883-3.682C23.235 7.993 24 6.92 24 5.574c0-2.206-1.879-4.443-3.99-4.443-1.534 0-3.215.245-4.02 1.224a11.772 11.772 0 0 0-3.797-.609c-1.462 0-2.856.218-4.14.666-.787-1.026-2.5-1.281-4.063-1.281zm8.13 2.772c4.505 0 8.24 2.896 8.872 8.467.632 5.57-4.367 8.467-8.873 8.467-4.506 0-10.146-2.539-9.18-8.467.967-5.928 4.674-8.467 9.18-8.467zM7.604 9.08c-1.752 0-2.771 2.205-2.771 4.377 0 2.172.666 2.845 2.264 3.227 1.598.38 3.423-1.692 3.423-3.864 0-2.171-1.163-3.74-2.916-3.74zm8.852 0c-1.753 0-2.916 1.569-2.916 3.74 0 2.172 1.824 4.245 3.422 3.864 1.598-.382 2.266-1.055 2.266-3.227 0-2.172-1.02-4.377-2.772-4.377zm-8.38 1.58c.922 0 1.1.71 1.1 1.635 0 .924-.57 1.633-1.493 1.633-.435 0-.566-.11-.762-.36-.22-.28-.384-.603-.33-1.273.09-1.119.562-1.635 1.484-1.635zm7.91 0c.922 0 1.392.516 1.482 1.635.054.67-.11.994-.33 1.273-.197.25-.327.36-.762.36-.923 0-1.494-.709-1.494-1.633s.18-1.635 1.103-1.635zm-3.925 5.004c-.868 0-1.724.089-1.724.637s.868 1.826 1.736 1.826c.869 0 1.711-1.278 1.711-1.826s-.854-.637-1.723-.637z\"},\"child\":[]}]})(props);\n};\nexport function SiMonkeytie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002 0C9.79 0 7.575.71 5.722 2.127a.472.472 0 00-.093.658.46.46 0 00.654.093 9.404 9.404 0 0111.44 0c.202.16.5.116.653-.093a.474.474 0 00-.093-.658A10.323 10.323 0 0012.003 0zm.03 3.11a11.947 11.947 0 00-5.966 1.608 13.784 13.784 0 00-4.83 4.747c-.303.536.444 1.021.8.497a12.816 12.816 0 014.494-4.43 11.015 11.015 0 015.5-1.481c1.905.003 3.78.507 5.432 1.462 1.71.977 3.26 2.457 4.503 4.45a.46.46 0 00.414.23.46.46 0 00.4-.252.461.461 0 00-.022-.474v-.002c-1.31-2.12-2.982-3.71-4.834-4.77A11.795 11.795 0 0012.03 3.11zM12 6.164a9.27 9.27 0 00-3.71.73c-1.643.706-2.97 1.88-4.064 3.343-1.096 1.46-1.97 3.213-2.73 5.102a.474.474 0 00.262.612c.375.134.552-.144.6-.267.985-2.46 2.16-4.624 3.697-6.14a8.28 8.28 0 012.6-1.784 8.415 8.415 0 013.34-.648 9.51 9.51 0 012.98.447 7.345 7.345 0 013.39 2.25c.898 1.057 1.557 2.423 1.917 4.09.172.83.255 1.675.255 2.524a9.204 9.204 0 01-.17 1.837.47.47 0 00.355.556.472.472 0 00.558-.36c.134-.67.2-1.351.19-2.033 0-.916-.09-1.827-.272-2.722a11.155 11.155 0 00-1.207-3.2 8.394 8.394 0 00-3.288-3.232c-1.358-.731-2.95-1.104-4.7-1.104zm.102 3.076a7.51 7.51 0 00-2.214.3 5.317 5.317 0 00-1.45.7 6.552 6.552 0 00-1.787 1.906c-.702 1.093-1.19 2.33-1.698 3.479a17.31 17.31 0 01-.793 1.626c-.27.478-.594.92-.964 1.314-.418.459.216 1.094.665.662v.002c.763-.78 1.28-1.754 1.75-2.776.348-.76.664-1.541 1.007-2.277.247-.543.53-1.065.846-1.567A5.4 5.4 0 019.2 10.865c.718-.425 1.603-.685 2.802-.685a5.82 5.82 0 012.565.538c.518.25.986.59 1.385 1.003.6.633 1.05 1.395 1.322 2.226a8.63 8.63 0 01.438 2.776c-.002.98-.145 1.955-.425 2.895a8.869 8.869 0 01-1.21 2.563.472.472 0 00.122.65.465.465 0 00.646-.11 9.887 9.887 0 001.34-2.836c.3-1.024.458-2.09.46-3.157a9.76 9.76 0 00-.385-2.753c-.39-1.317-1.084-2.5-2.128-3.363a5.768 5.768 0 00-1.824-1.008 7.525 7.525 0 00-2.204-.364zm-.094 3.083c-.726.01-1.425.27-1.986.73a3.712 3.712 0 00-1.23 1.779c-.116.358-.185.749-.283 1.189a8.902 8.902 0 01-.782 2.249c-.438.838-1.11 1.757-2.22 2.72a.474.474 0 00-.052.66c.168.198.465.22.66.05.7-.6 1.32-1.285 1.846-2.038a8.727 8.727 0 001.266-2.705c.11-.393.187-.754.254-1.065a8.48 8.48 0 01.19-.777c.168-.525.49-.988.922-1.33a2.264 2.264 0 011.405-.522c.31.005.617.077.898.213.458.23.84.57 1.12.996.282.414.44.9.45 1.402.02 1.09-.11 2.18-.397 3.234a9.355 9.355 0 01-2.403 4.09c-.18.186-.18.48.002.665.272.242.566.113.662-.005a10.309 10.309 0 002.642-4.495 12.48 12.48 0 00.438-3.49 3.37 3.37 0 00-.284-1.327 3.843 3.843 0 00-1.245-1.567 3.125 3.125 0 00-1.873-.656zm-.015 3.08a.468.468 0 00-.466.47h.002a7.5 7.5 0 01-.244 1.972 7.319 7.319 0 01-1.163 2.395c-.61.819-1.27 1.59-1.994 2.308a.474.474 0 00.015.667.468.468 0 00.662-.016c1.05-1.096 1.958-2.1 2.622-3.252a7.46 7.46 0 00.76-1.868c.186-.72.282-1.461.274-2.205a.47.47 0 00-.468-.47z\"},\"child\":[]}]})(props);\n};\nexport function SiMonkeytype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 14.4a.8.8 0 1 1 0 1.6.8.8 0 0 1 0-1.6ZM8.8 14.4h4.8a.8.8 0 1 1 0 1.6H8.8a.8.8 0 1 1 0-1.6ZM7.2 9.6a.8.8 0 0 1 .8.8V12a.8.8 0 1 1-1.6 0v-1.6a.8.8 0 0 1 .8-.8Z M3.201 10.359A2.4 2.4 0 0 1 7.2 8.612a2.4 2.4 0 0 1 4 1.788V12a.8.8 0 1 1-1.6 0v-1.6a.8.8 0 1 0-1.6 0V12a.8.8 0 1 1-1.6 0v-1.6a.8.8 0 1 0-1.6 0V12a.8.8 0 1 1-1.6 0v-1.6l.001-.041ZM17.6 12.8v2.4a.8.8 0 1 1-1.6 0v-2.4h-2.306c-.493 0-.894-.358-.894-.8 0-.442.401-.8.894-.8h6.212c.493 0 .894.358.894.8 0 .442-.401.8-.894.8H17.6ZM16.8 8H20a.8.8 0 1 1 0 1.6h-3.2a.8.8 0 1 1 0-1.6ZM4 14.4h1.6a.8.8 0 1 1 0 1.6H4a.8.8 0 1 1 0-1.6ZM13.2 8h.4a.8.8 0 1 1 0 1.6h-.4a.8.8 0 1 1 0-1.6Z M1.6 14.4H0V8.8c0-2.208 1.792-4 4-4h16c2.208 0 4 1.792 4 4v6.4c0 2.208-1.792 4-4 4H4c-2.208 0-4-1.792-4-4v-1.6h1.6v1.6A2.4 2.4 0 0 0 4 17.6h16a2.4 2.4 0 0 0 2.4-2.4V8.8A2.4 2.4 0 0 0 20 6.4H4a2.4 2.4 0 0 0-2.4 2.4v5.6Z\"},\"child\":[]}]})(props);\n};\nexport function SiMonogame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.356V7.083a7.083 7.083 0 0 0-12-5.098A7.083 7.083 0 0 0 0 7.083v9.834A7.083 7.083 0 0 0 7.083 24h9.834a7.083 7.083 0 0 0 7.07-7.51H24v-4.332H9.834v4.332h9.834v.427a2.751 2.751 0 0 1-2.751 2.751H7.083a2.751 2.751 0 0 1-2.751-2.751V7.083a2.751 2.751 0 1 1 5.502 0v3.273h4.332V7.083a2.751 2.751 0 1 1 5.502 0v3.273z\"},\"child\":[]}]})(props);\n};\nexport function SiMonoprix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.072 8.042C21.072 3.612 16.981 0 12 0 6.991 0 2.928 3.612 2.928 8.042S6.99 16.085 12 16.085c.282 0 .564-.029.847-.043.62.339.747.706.761.988.142 1.608-2.44 5.08-4.303 6.49l.254.48c.113-.028 10.723-3.47 11.429-15.026.056-.283.07-.565.084-.875v-.043z\"},\"child\":[]}]})(props);\n};\nexport function SiMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0V24H5.42V12.39L12 18.19L18.58 12.39V24H24V0L12 11.23L0 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiMonzo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.244 1.174a.443.443 0 00-.271.13l-3.97 3.97-.001.001c3.884 3.882 8.093 8.092 11.748 11.748v-8.57L4.602 1.305a.443.443 0 00-.358-.131zm15.483 0a.443.443 0 00-.329.13L12.25 8.456v8.568L24 5.275c-1.316-1.322-2.647-2.648-3.97-3.97a.443.443 0 00-.301-.131zM0 5.979l.002 10.955c0 .294.118.577.326.785l4.973 4.976c.28.282.76.083.758-.314V12.037zm23.998.003l-6.06 6.061v10.338c-.004.399.48.6.76.314l4.974-4.976c.208-.208.326-.49.326-.785z\"},\"child\":[]}]})(props);\n};\nexport function SiMoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.964 24c-2.525 0-4.801-1.107-6.34-3.138-1.109-1.417-1.661-3.078-1.661-4.86 0-.555.06-1.109.185-1.602.299-1.785 1.59-4.678 3.93-8.678C9.805 2.767 11.215.554 11.289.554c.123-.246.308-.554.675-.554.372 0 .555.308.741.555 0 0 1.477 2.215 3.199 5.168 2.342 4 3.631 6.893 3.939 8.678.131.492.193 1.045.193 1.6 0 1.785-.555 3.445-1.65 4.861C16.766 22.834 14.424 24 11.964 24zm0-2.092c1.905 0 3.629-.861 4.801-2.341.799-1.044 1.229-2.337 1.229-3.69 0-.432-.059-.801-.123-1.229-.246-1.354-1.293-3.692-3.074-6.833-1.357-2.399-2.525-4.121-2.525-4.121l-.31-.433-.254.37s-1.171 1.785-2.521 4.125c-1.843 3.149-2.893 5.474-3.072 6.839-.061.431-.123.8-.123 1.229 0 1.355.429 2.587 1.229 3.693 1.11 1.538 2.831 2.399 4.74 2.399l.003-.008z\"},\"child\":[]}]})(props);\n};\nexport function SiMoodle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3726 0 0 5.3726 0 12s5.3726 12 12 12 12-5.3726 12-12S18.6274 0 12 0Zm1.1348 5.7402.0351.123-2.7363 1.9903c.3694.2606.7968.609 1.0078.8438l.0762.1035c-1.2878 2.2571-3.737 3.0557-6.3164 2.1816l.0195-.1601h-.002c-.0784-.5679-.0962-1.0524-.0585-1.463-.7507-.003-1.5298-.0402-2.2832-.0663l-.5157.0175c-.0994.8449-.0351 2.135-.0254 2.3223.3492 1.2819.2977 2.2907.295 3.5293-.4134-1.0028-.8995-2.097-.416-3.4668l-.0098-.3183c-.0007-.0143-.0683-1.1532.037-2.0625l-.4081.0136-.0371-.1191C5.7922 6.8402 8.5032 6.218 13.1348 5.7402Zm1.623 2.5137c1.2202 0 2.1885.2691 2.9043.8066.8138.601 1.2207 1.4866 1.2207 2.6582v5.6856h-2.7344v-5.3691c0-1.1225-.4634-1.6836-1.3906-1.6836-.9278 0-1.3906.561-1.3906 1.6836v5.3691h-2.7344v-5.3691c0-.5183-.0986-.9144-.293-1.1934.6172-.435 1.1534-1.0124 1.5723-1.7246.0297.029.0597.0574.0879.0879.5044-.6349 1.4233-.9512 2.7578-.9512zm-9.6094 3.2344c.932.3 1.8614.393 2.7364.287a3.5455 3.5455 0 0 0-.0098.2599v5.3691H5.1426v-5.6855c0-.0787.0022-.1544.0058-.2305z\"},\"child\":[]}]})(props);\n};\nexport function SiMoonrepo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 19.514 7.342 C 19.711 7.862 19.814 8.413 19.816 8.969 C 19.816 12.494 15.998 14.697 12.946 12.934 C 11.529 12.116 10.657 10.605 10.657 8.969 C 10.657 5.646 14.085 3.431 17.115 4.793 C 15.26 3.373 12.99 2.607 10.655 2.612 C 4.772 2.614 0.005 7.381 0 13.265 C 0.002 19.148 4.772 23.918 10.655 23.92 C 16.538 23.916 21.306 19.147 21.31 13.265 C 21.312 11.155 20.687 9.095 19.514 7.342 Z M 14.841 4.666 C 14.841 8.191 18.657 10.395 21.709 8.632 C 23.127 7.814 24 6.302 24 4.666 C 24 1.14 20.184 -1.061 17.13 0.699 C 15.714 1.519 14.841 3.03 14.841 4.666\"},\"child\":[]}]})(props);\n};\nexport function SiMoq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.1341.0013A13 13 0 0 0 10.853.05c-.7988.066-1.771.2708-2.6115.547-.6786.2161-2.672 1.152-2.672 1.248 0 .024-.0722.0733-.1562.1153-.3063.1381-1.3338.9726-1.9102 1.543-.5705.5764-1.405 1.602-1.543 1.9083-.042.084-.0893.1562-.1133.1562-.0961 0-1.0322 1.9829-1.2364 2.6134-.8106 2.5039-.8108 5.1452.0059 7.6252.1981.6004.8211 1.958 1.1094 2.4024.066.096.1742.282.2402.4082.066.12.1516.2226.1817.2226.036 0 .0585.0285.0585.0645 0 .114.7266.9728 1.375 1.6153 1.3812 1.375 2.9498 2.3192 4.8713 2.9317.7386.2342 1.4276.3646 2.4844.4727 1.0088.102 1.1066.102 2.1153 0 .5825-.0601 1.29-.1606 1.5782-.2266.6965-.1621 1.8325-.5533 2.463-.8536.4863-.2281 1.5728-.853 1.795-1.0332.054-.042.3178-.251.582-.455.6125-.4804 1.4044-1.2744 1.8848-1.8868.2041-.2642.415-.528.457-.582.1802-.2223.811-1.3088 1.0391-1.7892.2942-.6245.6835-1.7718.8516-2.4864.066-.2942.1686-1.0019.2227-1.5723.096-.9728.096-1.0987 0-2.1075-.2822-2.9182-1.4049-5.3442-3.4044-7.3498-.6425-.6485-1.5012-1.375-1.6153-1.375-.036 0-.0664-.0245-.0664-.0606 0-.03-.1026-.1136-.2227-.1797-.126-.066-.3061-.1741-.4082-.2402-.4263-.2762-1.7943-.9073-2.3887-1.1055C14.6354.2241 13.403.0167 12.134.0013M4.7433 8.312a1.5 1.5 0 0 1 .211 0c.1893.013.3817.0618.5664.1504l.252.1211.3242-.1328c.8046-.3363 1.7117-.0053 1.9219.6973.102.3482.102 5.0133 0 5.1153-.084.0841-.9363.0958-1.0684.0118-.078-.048-.0894-.3969-.1074-2.4024-.018-2.552-.0134-2.5037-.3496-2.3536l-.1426.0723v2.336c0 2.672.0414 2.4688-.541 2.4688s-.541.1963-.541-2.4337c0-2.0115-.0117-2.3165-.0958-2.3946-.048-.054-.1318-.0957-.1738-.0957s-.1258.0417-.1738.0957c-.0841.078-.0957.378-.0957 2.3595 0 1.6813-.0183 2.282-.0723 2.336-.1141.114-.9796.0966-1.0997-.0235-.084-.09-.0961-.3481-.078-2.5098.018-2.1677.0308-2.4324.1269-2.6485.2088-.4571.6494-.7339 1.1367-.7696m6.8244 0c.2812-.015.5753.0133.877.0899.5764.144 1.1221.607 1.4043 1.1894.1562.3303.1563.337.1563 1.8321 0 1.4592-.0045 1.5073-.1426 1.7716-.3002.5764-.6669.9003-1.2793 1.1465-.4324.1681-1.2727.1625-1.7891-.0176-.4804-.1741-.9316-.5893-1.1778-1.0996l-.1738-.3594v-3.004l.1562-.2989c.4053-.761 1.1253-1.205 1.9688-1.25m6.1389.086a2.8 2.8 0 0 1 .3613 0c.1395.0088.282.0285.4238.0586.1742.036.4265.1195.5586.1855.2522.1261.75.5718.75.6738 0 .03.036.1024.084.1504.042.054.1314.2457.1915.4258.168.4804.1699 2.6243.0078 3.1407-.1682.5285-.5473.9894-1.0997 1.3497-.4563.2942-.4618.3016-.4258.5898.036.3663.2458.666.582.834.3303.1682.3595.2213.3595.6837 0 .3963-.114.6074-.3301.6074-.2462 0-.8277-.2466-1.0919-.4688-.5104-.4143-.8594-1.0857-.8594-1.6621 0-.2462-.0893-.4512-.1914-.4512-.2281 0-.92-.6362-1.1602-1.0625-.2401-.4384-.2818-.786-.2578-2.209l.0176-1.3224.1816-.3535c.3448-.685 1.0686-1.1145 1.8985-1.17ZM11.724 9.5367c-.1321 0-.3293.0494-.4434.1035-.114.054-.266.1794-.332.2695-.1141.1561-.1246.2633-.1426 1.4102-.012 1.0929-.0002 1.267.0898 1.4532.3363.6485 1.32.6485 1.6563 0 .09-.1862.1019-.3603.0899-1.4532-.018-1.1469-.0285-1.254-.1426-1.4102-.1621-.2222-.4752-.373-.7754-.373m6.0177.0761c-.0783.0013-.1468.008-.1934.0215-.168.042-.4269.2992-.541.5274-.072.156-.0898.4333-.0898 1.334.006 1.261.0376 1.3858.4219 1.668.2762.2042.7918.2099 1.08.0117.3964-.2642.4263-.4068.4083-1.7578-.018-1.165-.024-1.2139-.1621-1.418-.084-.1201-.1977-.2451-.2637-.2872-.099-.0585-.4252-.1035-.6602-.0996\"},\"child\":[]}]})(props);\n};\nexport function SiMoqups (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.219 0c-2.367 0-3.55 0-4.824.41A5.053 5.053 0 0 0 .402 3.457c-.4 1.297-.4 2.501-.4 4.91v7.266c0 2.409 0 3.613.4 4.91a5.053 5.053 0 0 0 2.993 3.047c1.273.41 2.457.41 4.824.41h7.562c2.367 0 3.55 0 4.824-.41a5.053 5.053 0 0 0 2.993-3.047c.4-1.297.4-2.501.4-4.91V8.367c.003-2.409.002-3.613-.398-4.91A5.053 5.053 0 0 0 20.607.41C19.334 0 18.151 0 15.785 0ZM6.502 6.918a2.618 2.618 0 0 1 1.76.533c.266.226.456.528.545.865a4.309 4.309 0 0 1 3.056-1.398c.433-.017.86.102 1.221.342.342.266.547.67.559 1.103a5.014 5.014 0 0 1 1.564-1.123 3.984 3.984 0 0 1 1.563-.322c.502-.014.994.152 1.386.467.418.402.63.973.573 1.55-.001.201-.014.401-.04.6-.037.302-.044.359-.216 1.154l-.614 2.903a4.317 4.317 0 0 0-.115.842c-.02.16.032.321.143.439.145.09.316.13.486.113a1.76 1.76 0 0 0 1.037-.4c.229-.171.437-.368.62-.588a.08.08 0 0 1 .134.066h.004l-.395 1.895a.552.552 0 0 1-.228.348c-.676.453-1.477.772-2.395.775a2.12 2.12 0 0 1-1.386-.467 1.893 1.893 0 0 1-.573-1.55 6.34 6.34 0 0 1 .155-1.276c.244-1.126.48-2.253.716-3.38.066-.277.103-.559.114-.843a.542.542 0 0 0-.143-.439.785.785 0 0 0-.484-.115c-.38.018-.744.159-1.037.4a2.946 2.946 0 0 0-1.125 1.756l-1.157 5.463a.302.302 0 0 1-.294.24H9.98a.146.146 0 0 1-.142-.178l1.314-6.191a4.16 4.16 0 0 0 .133-.957.517.517 0 0 0-.142-.42.75.75 0 0 0-.465-.113c-.372.015-.73.149-1.02.383l-.01.005a3.063 3.063 0 0 0-1.187 1.838l-1.15 5.44a.244.244 0 0 1-.239.193h-2.08a.159.159 0 0 1-.156-.191l1.37-6.414c.056-.315.065-.586.067-.702a.764.764 0 0 0-.191-.533.56.56 0 0 0-.418-.21 1.42 1.42 0 0 0-.61.142 3.529 3.529 0 0 0-.59.353 3.1 3.1 0 0 0-.624.602l.451-2.094a.45.45 0 0 1 .201-.289c.146-.092.296-.177.45-.256a3.37 3.37 0 0 1 1.56-.361Z\"},\"child\":[]}]})(props);\n};\nexport function SiMorrisons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.514 11.486c0 .28-.224.523-.523.523a.511.511 0 0 1-.524-.523c0-.28.225-.523.524-.523.28 0 .504.243.523.523m2.318-2.112a.52.52 0 0 1-.505.523.519.519 0 0 1-.523-.504.52.52 0 0 1 .504-.524.507.507 0 0 1 .524.505m-1.234-1.57c0 .71-.617 1.103-.617 1.103s-.617-.393-.617-1.103.617-1.103.617-1.103.617.392.617 1.103M10 8.869s-.15.71.355 1.215c.505.505 1.215.337 1.215.337s.15-.71-.355-1.215C10.71 8.72 10 8.869 10 8.869m-.822 1.178c.616.355.654 1.065.654 1.065s-.654.337-1.271-.019c-.617-.355-.654-1.084-.654-1.084s.654-.317 1.27.038m-.317 2.336s.168.71.822.953c.673.243 1.253-.205 1.253-.205s-.15-.71-.823-.953c-.673-.243-1.252.205-1.252.205m4.448-.747c-.299.635-1.028.728-1.028.728s-.392-.616-.093-1.252c.299-.635 1.028-.729 1.028-.729s.392.598.093 1.253m2.785-1.608s-.654-.336-1.27.019c-.617.355-.655 1.084-.655 1.084s.654.336 1.271-.019c.617-.374.654-1.084.654-1.084m-1.757 3.308c-.672.243-1.252-.205-1.252-.205s.15-.71.823-.953c.672-.243 1.252.186 1.252.186s-.15.73-.823.972M5.607 17.28c-.86 0-1.514-.616-1.514-1.439 0-.822.655-1.44 1.514-1.44.86 0 1.514.618 1.514 1.44 0 .823-.654 1.44-1.514 1.44m0-2.15c-.392 0-.691.318-.691.729s.299.729.691.729c.393 0 .692-.318.692-.73 0-.41-.299-.728-.692-.728m6.804 2.056v-2.673a.04.04 0 0 0-.037-.037h-.73a.04.04 0 0 0-.037.037v2.673a.04.04 0 0 0 .038.037h.729a.04.04 0 0 0 .037-.037m4.449.093c-.86 0-1.514-.616-1.514-1.439 0-.822.654-1.44 1.514-1.44s1.514.618 1.514 1.44c0 .823-.654 1.44-1.514 1.44m0-2.15c-.393 0-.692.318-.692.729s.3.729.692.729c.392 0 .691-.318.691-.73 0-.41-.299-.728-.691-.728m4.486 2.056v-1.701c0-.71-.337-1.065-.99-1.065-.319 0-.636.13-.842.373v-.261a.04.04 0 0 0-.037-.038h-.71a.04.04 0 0 0-.038.038v2.654a.04.04 0 0 0 .037.037h.73a.04.04 0 0 0 .037-.037v-1.234c0-.112.018-.224.037-.317a.64.64 0 0 1 .617-.468c.243 0 .336.112.336.449v1.57a.04.04 0 0 0 .038.037h.729c.037 0 .056-.018.056-.037M3.7 17.224h-.748a.04.04 0 0 1-.037-.037c0-.841-.056-1.794-.094-2.094-.28.393-.523.823-.71 1.271 0 .02-.019.02-.037.02h-.411c-.02 0-.038 0-.038-.02a6.507 6.507 0 0 0-.71-1.27c-.019.299-.094 1.252-.094 2.093a.04.04 0 0 1-.037.037H.037A.04.04 0 0 1 0 17.187c0-1.14.075-2.636.28-3.402 0-.019.02-.019.038-.037h.58c.018 0 .018 0 .018.018.374.412.691.879.934 1.365a6.79 6.79 0 0 1 .935-1.365l.019-.018h.58a.04.04 0 0 1 .037.037c.186.766.28 2.262.28 3.402.037.019.019.037 0 .037m4.617-.037V16.12c0-.13.018-.261.056-.392a.662.662 0 0 1 .635-.486h.169l.018-.019v-.729a.04.04 0 0 0-.037-.037h-.094a.885.885 0 0 0-.747.411v-.336a.04.04 0 0 0-.038-.038h-.71a.04.04 0 0 0-.037.038v2.673a.04.04 0 0 0 .037.037h.73c0-.019.018-.037.018-.056m2 .037h-.73a.04.04 0 0 1-.037-.037v-2.673a.04.04 0 0 1 .038-.037h.71a.04.04 0 0 1 .037.037v.336a.984.984 0 0 1 .748-.41h.094a.04.04 0 0 1 .037.037v.71c0 .019 0 .019-.019.019 0 0-.018.018-.037 0h-.131a.66.66 0 0 0-.635.486c-.038.13-.057.261-.057.392v1.066c.02.056.02.074-.018.074.018 0 0 0 0 0m4.747-.86c0 .58-.43.898-1.158.898-.43 0-.767-.15-1.14-.412-.02 0-.02-.018-.02-.037v-.019l.318-.486c0-.018.02-.018.038-.018h.018c.318.205.543.299.823.299.187 0 .299-.056.299-.168v-.02c0-.13-.112-.186-.411-.28l-.112-.037c-.468-.13-.898-.336-.898-.86v-.018c0-.524.43-.86 1.103-.86.337 0 .654.093.954.261.018 0 .018.02.018.038v.019l-.28.542c0 .018-.019.018-.038.018h-.018c-.28-.13-.449-.187-.636-.187-.168 0-.28.075-.28.169v.018c0 .131.168.187.448.262l.094.037c.449.113.878.337.878.841m8.038-.86-.094-.037c-.28-.074-.448-.13-.448-.261v-.02c0-.111.112-.167.28-.167.187 0 .374.056.636.187h.018c.019 0 .019 0 .038-.02l.299-.485v-.019c0-.018 0-.018-.019-.037a1.925 1.925 0 0 0-.953-.262c-.673 0-1.103.318-1.103.86v.019c0 .523.43.729.897.86l.112.037c.28.093.412.15.412.28v.019c-.02.112-.113.168-.3.168-.28 0-.504-.093-.822-.299h-.019c-.018 0-.018 0-.037.019l-.318.486v.018c0 .02 0 .02.019.038.374.262.71.411 1.14.411.73 0 1.159-.318 1.159-.878v-.02c-.019-.522-.449-.747-.897-.896m-10.617-2c0 .28-.224.504-.505.504a.503.503 0 0 1-.504-.504c0-.28.224-.505.504-.505.28.019.505.224.505.505\"},\"child\":[]}]})(props);\n};\nexport function SiMoscowmetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.603 11.85l-2.481-6.26-2.092 3.66-2.092-3.66-2.481 6.262H6.74v.941h3.736v-.941h-.553l.538-1.555 1.569 2.57 1.569-2.57.538 1.555h-.553v.941h3.751v-.941zm5.335-1.912A9.933 9.933 0 0 0 12 0C6.516 0 2.062 4.453 2.062 9.938c0 2.75 1.121 5.23 2.914 7.023a.804.804 0 0 0 1.375-.568.825.825 0 0 0-.239-.582 8.303 8.303 0 0 1-2.42-5.873c0-4.588 3.72-8.324 8.308-8.324 4.588 0 8.324 3.736 8.324 8.324a8.289 8.289 0 0 1-2.436 5.888l-7.024 7.023L12 24l7.039-7.039a9.891 9.891 0 0 0 2.899-7.023Z\"},\"child\":[]}]})(props);\n};\nexport function SiMotorola (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12C24.002 5.375 18.632.002 12.007 0H12zm7.327 18.065s-.581-2.627-1.528-4.197c-.514-.857-1.308-1.553-2.368-1.532-.745 0-1.399.423-2.2 1.553-.469.77-.882 1.573-1.235 2.403 0 0-.29-.675-.63-1.343a8.038 8.038 0 0 0-.605-1.049c-.804-1.13-1.455-1.539-2.2-1.553-1.049-.021-1.854.675-2.364 1.528-.948 1.574-1.528 4.197-1.528 4.197h-.864l4.606-15.12 3.56 11.804.024.021.024-.021 3.56-11.804 4.61 15.113h-.862z\"},\"child\":[]}]})(props);\n};\nexport function SiMovistar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.512 5.187c-1.113.018-3.165.567-4.102 4.401-.409 1.67-.567 3.413-.217 5.485.322 1.912.893 3.562 1.278 4.471.132.314.339.64.498.842.456.579 1.217.542 1.536.384.348-.172.748-.586.605-1.534-.07-.458-.272-1.127-.386-1.499-.349-1.141-.814-2.518-.854-3.5-.054-1.311.463-1.483.806-1.56.576-.126 1.06.508 1.52 1.303.548.949 1.488 2.63 2.255 3.915.692 1.16 1.97 2.401 4.02 2.316 2.091-.087 3.633-.886 4.427-3.402.594-1.882.999-3.289 1.651-4.729.75-1.657 1.75-2.543 2.592-2.272.782.25.977 1.016.986 2.14.009.996-.107 2.093-.196 2.898-.032.293-.09.881-.066 1.207.047.643.325 1.284 1.046 1.386.77.109 1.387-.506 1.633-1.25.098-.293.18-.742.225-1.06.226-1.608.284-2.689.183-4.333-.12-1.924-.495-3.678-1.152-5.196-.627-1.452-1.635-2.382-2.927-2.464-1.43-.091-3.072.86-3.934 2.704-.793 1.7-1.428 3.444-1.814 4.336-.39.903-.965 1.459-1.847 1.552-1.08.114-2.01-.67-2.692-1.79-.593-.975-1.77-2.832-2.4-3.456-.592-.584-1.267-1.317-2.674-1.295z\"},\"child\":[]}]})(props);\n};\nexport function SiMozilla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm10.13 6.706c1.481 0 2.858.706 3.352 2.224.565-1.377 1.73-2.224 3.353-2.224 1.87 0 3.565 1.13 3.565 3.564v4.765h1.412v2.26h-4.341v-5.86c0-1.8-.6-2.47-1.765-2.47-1.412 0-1.976 1.024-1.976 2.435V15h1.376v2.259h-4.341v-5.824c0-1.8-.6-2.47-1.765-2.47-1.412 0-1.976 1.024-1.976 2.435V15H9v2.259H2.647V15h1.377V9.176H2.647V6.918H6.99V8.47c.635-1.095 1.693-1.765 3.14-1.765z\"},\"child\":[]}]})(props);\n};\nexport function SiMpv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm.312 22.775c-6.153 0-11.142-4.988-11.142-11.142S6.16.491 12.312.491c6.154 0 11.142 4.989 11.142 11.142s-4.988 11.142-11.142 11.142zm.643-20.464a8.587 8.587 0 1 0 0 17.174 8.587 8.587 0 0 0 0-17.174zm-1.113 15.257a5.517 5.517 0 1 1 0-11.034 5.517 5.517 0 0 1 0 11.034zm-1.399-7.995L14.4 11.97l-3.957 2.518V9.573z\"},\"child\":[]}]})(props);\n};\nexport function SiMqtt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.657 23.994h-9.45A1.212 1.212 0 0 1 0 22.788v-9.18h.071c5.784 0 10.504 4.65 10.586 10.386Zm7.606 0h-4.045C14.135 16.246 7.795 9.977 0 9.942V6.038h.071c9.983 0 18.121 8.044 18.192 17.956Zm4.53 0h-.97C21.754 12.071 11.995 2.407 0 2.372v-1.16C0 .55.544.006 1.207.006h7.64C15.733 2.49 21.257 7.789 24 14.508v8.291c0 .663-.544 1.195-1.207 1.195ZM16.713.006h6.092A1.19 1.19 0 0 1 24 1.2v5.914c-.91-1.242-2.046-2.65-3.158-3.762C19.588 2.11 18.122.987 16.714.005Z\"},\"child\":[]}]})(props);\n};\nexport function SiMsi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.362 10.042c-1.044.56-2.193 1.05-3.7 1.142a4.26 4.26 0 0 1-2.321-.556c-.155-.09-.51-.26-.503-.457.011-.242.582-.303.816-.306 5.262-.178 6.29-2.472 6.286-2.563 0-.083-.09.011-.09.011-1.38 1.777-4.937 1.973-4.937 1.973-.877.121-1.761-.08-2.215-.529a.794.794 0 0 1-.215-.39c-.102.122-.17.25-.291.379-.114.128-.458.499-.484.06-.019-.325.076-.393.2-.586a5.178 5.178 0 0 1 .193-.276c.374-.49.684-.997 1.123-1.402.037-.038.11-.075.09-.11a6.221 6.221 0 0 0-3.624 4.166 6.508 6.508 0 0 0-.23 1.72c0 .62.082 1.209.21 1.75.258 1.073.56 1.817 1.033 2.66.155-.211.219-.491.306-.752.098-.276.166-.642.302-.87.321-.528 2.079-.396 1.599-.763a3.613 3.613 0 0 1-.397-.359 7.083 7.083 0 0 1-.673-.831c-.412-.582-.756-1.285-.79-2.2.469 1.21 1.18 2.222 2.313 2.774.378.182.813.378 1.323.367-1.341-.253-2.162-1.285-2.717-2.374-.087-.17-.208-.332-.25-.476a.4.4 0 0 1-.011-.189c.076-.336.484-.17.726-.083a8.489 8.489 0 0 0 3.602.438 6.678 6.678 0 0 0 1.874-.476c.545-.227 1.04-.518 1.452-.896m-2.34 2.657a8.001 8.001 0 0 1-2.4-.189 3.969 3.969 0 0 1-1.754-.865c-.181-.166-.295-.469-.597-.397-.026.22.151.378.272.514a3.507 3.507 0 0 0 1.573.896c.835.257 2.003.283 2.906.038M11.35 10.22c-.178 0-.771-.098-.786.098-.012.121.245.212.381.25.53.136 1.255.086 1.784.037a8.515 8.515 0 0 0 2.098-.465c.99-.362 1.795-.88 2.457-1.55.181-.18.162-.234-.034-.067a6.365 6.365 0 0 1-1.769 1.032c-1.172.472-2.517.665-4.131.665m6.576-6.717c.136.034.299.027.37.068.133.08.133.273.224.431-.54.091-.718-.302-.972-.585.091.007.227.052.378.086M7.325 16.57c-.393-.613-2.39-3.19-.832-6.989 2.128-5.178 7.88-3.772 8.421-3.557.064-.434.257-.884.764-.994a1.712 1.712 0 0 1 .612 0c-.522.193-1.077.427-1.05.976.022.49.52.835.936.91 0 0 .33.072.567-.075a.019.019 0 0 0 .016-.012c.064-.037.12-.075.204-.105a.979.979 0 0 1 .529-.023c.049.011.143.09.227.087.052 0 .136-.076.211-.087.2-.038.397.072.582.147.125.053.465.099.488.273.011.12-.178.264-.28.34a1.765 1.765 0 0 1-.423.23c.56-.045 1.682-.48 1.512.246-.015.076-.057.14-.042.178.578-.197.76-.685.673-1.372-.076.022-.14.17-.2.215v-.004c0-.196.01-.491-.125-.612.068.359-.121.53-.382.654a6.176 6.176 0 0 0-.695-.975c-.027.113-.012.26-.046.37a.518.518 0 0 0-.438-.351c-.129-.02-.272.022-.427 0-.2-.034-.431-.174-.446-.325-.027-.25.423-.367.65-.428.049.163.117.295.17.45a1.693 1.693 0 0 1 .964-.43c.102 0 .329.037.363.113.079.162-.129.355-.19.427-.037.038-.098.08-.079.102.39-.102.567-.355.84-.544.143.189.196.59.173.858.31-.303.318-.824.291-1.376a1.761 1.761 0 0 1 .749.597 1.943 1.943 0 0 0-.68-.756c-.1-.064-.228-.094-.303-.166-.068-.068-.151-.303-.242-.322-.113-.022-.265.11-.397.118-.238.019-.367-.144-.416-.378-.578.158-.8-.197-.937-.632-.023-.075-.023-.18-.06-.264-.042-.106-.273-.212-.394-.257a1.092 1.092 0 0 0-.548-.068c-.17.026-.294.113-.491.12-.476.027-.971-.18-1.357-.37A8.289 8.289 0 0 1 12.896.113c-.03-.038-.053-.094-.11-.113.125.385.348.707.556 1.005.639.915 1.47 1.58 2.283 2.215a1.308 1.308 0 0 1-.805-.208 4.165 4.165 0 0 1-.65-.416c-.85.726-2.548.81-3.916 1.134.567-.019 1.417.163 1.916.246h-.015c-2.389.094-4.449.794-5.877 2.147.37-.136.706-.306 1.118-.405-.59.537-1.171 1.096-1.644 1.75-.468.647-.967 1.33-.986 2.404.287-.28.578-.642.979-.847a13.108 13.108 0 0 0-.85 2.268c-.197.718-.492 1.913-.02 2.582.03-.238.03-.51.19-.624.28.661.76 1.996 2.26 3.319m5.68-14.095c.114.102.333.273.465.265.208 0 .314-.189.458-.272-.719-.321-1.388-.786-2.034-1.168.098.151.227.28.355.435.239.272.477.506.756.74m-8.05 5.16c.075.155 0 .366.011.517.234-.635.688-1.134 1.119-1.572.023-.026.087-.08.049-.072-.227.11-.355.314-.665.34-.174-.196-.174-.793.06-.922.288.087.477-.162.446-.427-.056-.423-.578-.707-.816-.877.125.159.367.303.423.537.02.083.015.242-.075.268-.133.038-.208-.11-.34-.09-.114.018-.167.219-.19.359a2.76 2.76 0 0 0-.03.529c0 .087.034.219-.03.283-.08-.038-.098-.136-.132-.215-.125-.276-.34-.647-.254-1.013.057-.023.163.007.2-.03.02-.227-.143-.443-.29-.586a.983.983 0 0 0-.926-.227c.211.038.68.068.684.302 0 .087-.102.212-.129.28-.166.408.023.93.22 1.194.113.152.28.295.181.575-.128-.008-.246-.09-.363-.155-.166-.095-.34-.185-.423-.329-.083-.162-.09-.325-.204-.446-.284-.321-.896-.544-1.342-.272.378-.011.73.011.877.26a1.119 1.119 0 0 1 .12.454c.008.068-.01.16.023.208.057.098.235.083.34.144.14.08.227.298.382.435a1.02 1.02 0 0 0 .133.102c.242.143.816.196.937.446m3.046 10.057c-.578.306-.914.907-.986 1.67.113-.302.43-.46.767-.615.216-.099.601-.197.662-.397.053-.155.037-.405-.038-.507-.083-.113-.227-.147-.405-.15m1.406 2.683a1.708 1.708 0 0 0-.907 1.38c.117-.28.424-.398.734-.53.189-.076.517-.162.578-.317.045-.125.045-.326-.023-.416-.064-.095-.283-.167-.382-.121m1.701 1.625c-.321.287-.506.88-.476 1.444.08-.321.325-.446.605-.631.162-.102.491-.261.552-.42a.469.469 0 0 0-.118-.461c-.181-.151-.453-.026-.567.072m2.627.567c-.313.276-.415.831-.34 1.432.076-.302.238-.45.454-.635.128-.113.332-.264.374-.42.068-.256-.208-.51-.491-.377m.544-6.085c.174.022.34.113.476.158.011-.049-.05-.071-.08-.098-.385-.329-1.277-.196-1.473.208.034.072.155.076.173.162.016.091-.117.223-.185.295-.177.193-.344.303-.544.439-.098.068-.185.181-.302.17.06-.238.189-.333.29-.537.076-.136.25-.499.152-.646-.057-.095-.355-.046-.4-.151-.039-.087.03-.197.079-.25.14-.151.43-.234.687-.287-.393 0-1.103.132-1.27.457-.113.22-.015.53.231.556.095.306-.151.684-.333.824a.344.344 0 0 1-.15.083c-.303.038-.22-.31-.296-.53-.026-.075-.075-.139-.12-.2-.084.783.086 1.554.264 2.17-.019-.215.015-.43.151-.495.31-.151.726.075 1.089.098.378.019.597-.212.858-.22.136 0 .234.092.359.061.087-.022.159-.181.234-.28a1.017 1.017 0 0 1 .265-.256c.359-.208.73.075.967.208-.211-.39-.914-.688-1.451-.428-.113.053-.204.193-.336.265-.205.121-.48.087-.745.076-.09-.008-.189.019-.26-.042.067-.34.392-.351.634-.499.348-.208.68-.525.718-1.02 0-.068-.026-.163.027-.227.049-.068.174-.076.29-.06m3.138 5.204c-.136-.17-.446-.125-.488.087-.038.215.151.438.284.574a1.126 1.126 0 0 0 .514.36c.011 0 .019.018.022 0a1.01 1.01 0 0 1-.215-.477c-.038-.211-.026-.43-.12-.548m.585-9.343c.359.026.847.14.979.348-.087-.284-.631-1.867-3.156-1.758.503.151 1.077.321 1.512.597.132.08.325.204.302.405-.026.223-.446.434-.748.457-.325.023-.575-.128-.764-.227.321.409.847.715 1.591.635-.018-.094-.143-.204-.09-.347.038-.099.2-.125.374-.114m2.086 6.04c-.098.023-.219.163-.208.302.02.19.254.28.465.265a1.175 1.175 0 0 0 .718-.291c-.396.102-.672-.34-.975-.276m.34-.922c.235-.34.31-.896.393-1.414.042-.276.08-.529.16-.733.09-.22.241-.393.294-.616.05-.216-.038-.37-.113-.548-.174-.4-.348-.798-.673-1.002-.386-.245-.987-.177-1.535-.132a18.282 18.282 0 0 0-.767.076 5.216 5.216 0 0 1-.794.064c-1.096-.02-1.727-.548-1.848-1.542 0 0 0-.012-.011-.008-.151.99.408 1.576 1.21 1.75.064.136.21.257.162.446-.053.227-.424.234-.684.2a1.425 1.425 0 0 1-.658-.28 3.383 3.383 0 0 1-.854-1 2.699 2.699 0 0 0 2.721 1.836c.48-.034.919-.14 1.3-.287-.555 0-1.292.019-1.451-.367a.503.503 0 0 1 .06-.438c.47.056.889-.046 1.282-.068a2.744 2.744 0 0 1 .96.117 1.22 1.22 0 0 1 .642.438c.272.4.303.987.204 1.561a7.181 7.181 0 0 1-.453 1.41c-.37.922-1.111 2.317-1.697 2.835-.703.593-1.584.937-2.608 1.202a6.66 6.66 0 0 1-1.323.208c-1.054.045-1.901-.102-2.46-.598a2.445 2.445 0 0 1-.605-.914 6.474 6.474 0 0 1-.363-3.04c-.038-.007-.064.035-.083.046-.03.03-.057.065-.09.091-.371.333-1.146.813-1.834.488a.635.635 0 0 1-.314-.288c-.189-.363.095-.676.314-.846.162-.125.382-.284.654-.216.162.038.416.246.416.416 0 .098-.223.28-.394.28-.177 0-.29-.144-.377-.227-.016-.027-.046-.087-.087-.06-.19.83.986.8 1.39.404.348-.34.48-1.062.163-1.52-.189-.264-.54-.366-.93-.31-.347.053-.812.152-1.028.314-.302.235-.34.726-.46 1.111a3.651 3.651 0 0 1-.454.972c-.027.038-.072.064-.065.11.465.03.862.15 1.002.487a.907.907 0 0 1 .038.465c-.065.302-.238.555-.102.915.226.597 1.092.71 1.36 1.254.114.223.091.537.235.756.177.269.597.238.986.303.22.045.439.09.605.192.321.19.332.632.718.768.23.075.43-.038.624-.091.15-.042.31-.064.453-.09.337-.054.582.026.9.12a1.406 1.406 0 0 0 .895 0c.257-.098.443-.276.643-.438.408-.325.809-.631 1.353-.805.552-.174 1.21-.261 1.512-.643a2.124 2.124 0 0 0 .302-.839c.14-.631.344-1.202.639-1.652.151-.226.37-.4.525-.623m1.24-4.12c-.087.117-.28.132-.408.212-.027.46.476-.02.408-.216m.19 2.192c-.186.121-.553-.064-.711.095-.084.605.653.159.729-.068 0-.015 0-.03-.023-.027\"},\"child\":[]}]})(props);\n};\nexport function SiMsibusiness (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15.215 10.794 3.78 2.416h-2.663l-3.78-2.416h2.663zM5.656 8.518l-.438 1.626-.175.65-.652 2.416-.175.65-.437 1.622h1.869l.437-1.622.175-.65.651-2.416.175-.65.438-1.626H5.656zm6.06 5.342-.437 1.622h4.947l2.543-1.622h-7.053zm3.556-5.342-2.548 1.626h7.086l.438-1.626h-4.976zm6.86 0-.438 1.626-.175.65-.651 2.416-.175.65-.437 1.622h1.869l.437-1.622.175-.65.651-2.416.175-.65L24 8.518h-1.868zm-20.255 0-.438 1.626-.175.65-.651 2.416-.175.65L0 15.482h1.869l.437-1.622.175-.65.651-2.416.175-.65.438-1.626H1.877zm7.536 0-.438 1.626-.175.65-.651 2.416-.175.65-.437 1.622h1.869l.437-1.622.175-.65.651-2.416.175-.65.438-1.626H9.413z\"},\"child\":[]}]})(props);\n};\nexport function SiMta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.171 10.07l-1.293-.109v6.861l-1.926.34-.004-7.371-1.637-.145V6.944l4.86.85zm3.668 5.884l-1.142.198-.134-1-1.113.145-.14 1.1-1.473.26 1.458-8.651 1.385.24zm-1.48-2.492l-.305-2.642h-.068l-.31 2.682zM10.991 24c6.59 0 11.932-5.373 11.932-12 0-6.628-5.342-12-11.932-12C6.86 0 3.22 2.112 1.077 5.323l3.307.583.91 6.965c.003-.012.066-.004.066-.004l.998-6.615 3.309.58v10.735l-2.089.367V13.32s.078-1.987.032-2.327c0 0-.09.002-.092-.005l-1.246 7.18-2.075.366L2.672 10.8l-.092-.007c-.032.28.112 2.707.112 2.707v5.298l-1.364.24C3.498 22.044 7.016 24 10.991 24z\"},\"child\":[]}]})(props);\n};\nexport function SiMtr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.987 1.913c-1.9 0-3.693.321-5.298.883C2.756 4.268 0 7.826 0 12c0 4.147 2.756 7.706 6.689 9.204 1.632.562 3.425.883 5.325.883a16.74 16.74 0 0 0 5.27-.856C21.217 19.759 24 16.174 24 12.027V12c0-4.174-2.783-7.732-6.716-9.204a16.295 16.295 0 0 0-5.297-.883zM10.89 5.257h2.167v3.827c1.525-.402 2.702-1.766 2.782-3.399l2.168.027c-.16 2.73-2.22 4.95-4.897 5.378v1.793c2.676.428 4.736 2.675 4.924 5.404l-2.167.028c-.08-1.633-1.258-2.997-2.783-3.425v3.853h-2.167V14.89a3.775 3.775 0 0 0-2.81 3.425l-2.167-.028a5.868 5.868 0 0 1 4.923-5.404v-1.766C8.187 10.716 6.1 8.468 5.94 5.74l2.167-.027A3.711 3.711 0 0 0 10.89 9.11Z\"},\"child\":[]}]})(props);\n};\nexport function SiMubi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.357.033A3.357 3.357 0 0 0 0 3.39a3.357 3.357 0 0 0 3.357 3.357A3.357 3.357 0 0 0 6.713 3.39 3.357 3.357 0 0 0 3.357.033Zm8.643 0A3.357 3.357 0 0 0 8.645 3.39 3.357 3.357 0 0 0 12 6.746a3.357 3.357 0 0 0 3.357-3.357A3.357 3.357 0 0 0 12 .033Zm-8.643 8.61A3.357 3.357 0 0 0 0 12a3.357 3.357 0 0 0 3.357 3.355A3.357 3.357 0 0 0 6.713 12a3.357 3.357 0 0 0-3.356-3.357Zm8.643 0A3.357 3.357 0 0 0 8.645 12 3.357 3.357 0 0 0 12 15.355 3.357 3.357 0 0 0 15.357 12 3.357 3.357 0 0 0 12 8.643zm8.643 0A3.357 3.357 0 0 0 17.287 12a3.357 3.357 0 0 0 3.356 3.355A3.357 3.357 0 0 0 24 12a3.357 3.357 0 0 0-3.357-3.357Zm-17.286 8.61A3.357 3.357 0 0 0 0 20.612a3.357 3.357 0 0 0 3.357 3.356 3.357 3.357 0 0 0 3.356-3.356 3.357 3.357 0 0 0-3.356-3.357Zm8.643 0a3.357 3.357 0 0 0-3.355 3.358A3.357 3.357 0 0 0 12 23.967a3.357 3.357 0 0 0 3.357-3.356A3.357 3.357 0 0 0 12 17.254z\"},\"child\":[]}]})(props);\n};\nexport function SiMui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.229 15.793a.666.666 0 0 0 .244-.243.666.666 0 0 0 .09-.333l.012-3.858a.666.666 0 0 1 .09-.333.666.666 0 0 1 .245-.243L23 9.58a.667.667 0 0 1 .333-.088.667.667 0 0 1 .333.09.667.667 0 0 1 .244.243.666.666 0 0 1 .089.333v7.014a.667.667 0 0 1-.335.578l-7.893 4.534a.666.666 0 0 1-.662 0l-6.194-3.542a.667.667 0 0 1-.246-.244.667.667 0 0 1-.09-.335v-3.537c0-.004.004-.006.008-.004s.008 0 .008-.005v-.004c0-.003.002-.005.004-.007l5.102-2.93c.004-.003.002-.01-.003-.01a.005.005 0 0 1-.004-.002.005.005 0 0 1-.001-.004l.01-3.467a.667.667 0 0 0-.333-.58.667.667 0 0 0-.667 0L8.912 9.799a.667.667 0 0 1-.665 0l-3.804-2.19a.667.667 0 0 0-.999.577v6.267a.667.667 0 0 1-.332.577.666.666 0 0 1-.332.09.667.667 0 0 1-.333-.088L.336 13.825a.667.667 0 0 1-.246-.244.667.667 0 0 1-.09-.336L.019 2.292a.667.667 0 0 1 .998-.577l7.23 4.153a.667.667 0 0 0 .665 0l7.228-4.153a.666.666 0 0 1 .333-.088.666.666 0 0 1 .333.09.667.667 0 0 1 .244.244.667.667 0 0 1 .088.333V13.25c0 .117-.03.232-.089.334a.667.667 0 0 1-.245.244l-3.785 2.18a.667.667 0 0 0-.245.245.666.666 0 0 0-.089.334.667.667 0 0 0 .09.334.666.666 0 0 0 .247.244l2.088 1.189a.67.67 0 0 0 .33.087.667.667 0 0 0 .332-.089l4.457-2.56Zm.438-9.828a.666.666 0 0 0 .09.335.666.666 0 0 0 .248.244.667.667 0 0 0 .67-.008l2.001-1.2a.666.666 0 0 0 .237-.243.667.667 0 0 0 .087-.329V2.32a.667.667 0 0 0-.091-.335.667.667 0 0 0-.584-.33.667.667 0 0 0-.334.094l-2 1.2a.666.666 0 0 0-.238.243.668.668 0 0 0-.086.329v2.445Z\"},\"child\":[]}]})(props);\n};\nexport function SiMulesoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.373 12-12S18.627 0 12 0zm0 1.055c6.045 0 10.945 4.9 10.945 10.945S18.045 22.945 12 22.945 1.055 18.045 1.055 12c0-6.044 4.9-10.945 10.945-10.945zM7.33 4.364s-2.993 1.647-3.96 5.25c-.647 2.224-.39 4.702.903 6.914a8.957 8.957 0 0 0 3.95 3.596l.802-3.062c-1.801-.85-3.11-2.571-3.11-4.79a5.647 5.647 0 0 1 .943-3.141l3.752 5.866h2.792l3.753-5.866a5.647 5.647 0 0 1 .943 3.14c0 2.22-1.308 3.94-3.109 4.791l.802 3.062a8.957 8.957 0 0 0 3.948-3.594c1.294-2.213 1.551-4.692.904-6.916l.002.003c-.966-3.603-3.96-5.251-3.96-5.251l-.336.527-4.341 6.797h-.003L7.656 4.876z\"},\"child\":[]}]})(props);\n};\nexport function SiMuller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.433 14.671c-.056-1.287-.138-2.808-.138-3.013 0-.623.097-2.252.21-2.64.138-.47.76-.582.76-1.133 0-.868-1.388-.91-1.996-.91-1.833 0-1.843.414-2.553 1.711-.5.914-1.067 2.584-1.496 2.487-.613-.138-1.471-2.405-1.956-3.217-.419-.704-.388-.98-2.012-.98-1.113 0-2.4.189-2.4.98 0 .567.792.664.93.95.153.322.209.75.209 1.578 0 2.002-.128 3.288-.24 4.447-.107 1.134-.94.486-.94 1.272 0 .72 1.261.76 1.747.76.54 0 2.027-.03 2.027-.816 0-.746-.889-.056-.889-1.532 0-.455-.138-2.283.291-2.283.25 0 .399.419.485.598l.802 1.797c.832 1.864.945 1.833 1.17 1.864.439.056.939-1.522 1.245-2.155.332-.705.777-1.92 1.205-1.92.486 0 .21 2.375.154 2.61-.097.444-.72.525-.72 1.01 0 .884 1.9.828 2.471.828.608 0 2.507.04 2.507-.884 0-.623-.832-.403-.873-1.409zm5.004-4.157c-.75.787-1.317 1.15-2.343 1.492 1.031.362 1.598.735 2.343 1.531 1.297 1.39 1.609 2.635 1.548 4.632v5.81h-5.827c-1.833.016-3.104-.31-4.498-1.536-.843-.74-1.241-1.307-1.66-2.35-.347 1.032-.715 1.604-1.511 2.35-1.39 1.312-2.748 1.65-4.647 1.537H.005v-5.811c-.05-1.772.312-3.12 1.553-4.504.766-.858 1.358-1.261 2.435-1.66-1.077-.382-1.67-.776-2.435-1.618C.29 9.003.015 7.68.005 5.842V.001h5.837c1.9-.016 3.15.29 4.534 1.542.848.77 1.241 1.368 1.624 2.446.429-1.083.848-1.675 1.726-2.446C15.105.343 16.386.052 18.158 0h5.827v5.841c.092 1.87-.225 3.284-1.548 4.672zm-.893-8.042h-3.79c-1.68-.04-2.88.22-4.197 1.317-.76.634-1.123 1.119-1.531 2.017-.383-.893-.736-1.378-1.471-2.017-1.312-1.138-2.41-1.297-4.259-1.317H2.512l-.005 3.784c-.02 1.532.169 2.599 1.088 3.87.669.925 1.22 1.384 2.252 1.87-1.037.505-1.588.98-2.252 1.924-.888 1.262-1.088 2.155-1.072 3.794v3.769h3.773c1.793-.01 2.957-.158 4.274-1.302.73-.639 1.083-1.124 1.456-2.017.413.898.78 1.378 1.542 2.017 1.312 1.093 2.446 1.378 4.187 1.312h3.789v-3.779c-.01-1.521-.082-2.568-.97-3.824-.685-.965-1.282-1.44-2.375-1.895 1.098-.47 1.69-.955 2.375-1.93.878-1.25.934-2.323.97-3.794z\"},\"child\":[]}]})(props);\n};\nexport function SiMullvad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.371 0 0 5.362 0 12c0 6.629 5.381 12 12 12s12-5.371 12-12S18.629 0 12 0zm1.651 3.363c1.908-.02 4.059 1.28 4.701 2.951.381 1 .267 2.086-.057 3.086-.266.819-1.238 2-.876 2.886-.143-.038-3.124-1.048-3.98-1.505-1.344-.838-2.544-1.867-3.448-2.657l-.03-.029-3.047-1.447a1.037 1.037 0 0 1-.104-.058c.419.029 2.085.23 2.828.058-.143-.39-.105-.896.095-1.372.286-.657.83-1.095 1.343-1.095.105 0 .2.019.296.057A3.411 3.411 0 0 1 12.39 3.6a3.49 3.49 0 0 1 1.26-.237zm-2.499.97c-.457 0-.962.42-1.228 1.02-.2.447-.229.933-.086 1.304a.813.813 0 0 0 .41.457.696.696 0 0 0 .285.058c.457 0 .962-.42 1.22-1.02.161-.362.209-.742.152-1.076a.91.91 0 0 0-.467-.676.6.6 0 0 0-.286-.067zm0 .286c.057 0 .115.01.172.038.152.067.266.238.304.467.048.276.01.6-.133.905-.21.485-.619.838-.962.838a.444.444 0 0 1-.162-.029c-.142-.057-.219-.19-.257-.295-.114-.286-.085-.705.076-1.086.21-.495.62-.838.962-.838zM3.01 6.362 2.943 7.79l.133.037.943-1.123-.648 1.104c1.01-.2 2.658-.247 4.42-.114l1.837.895c.915.8 2.124 1.839 3.486 2.686l3.553 1.4.438.638h-.372l.781.943-.714-.114c.01.066.714.876.714.876l-.562.076c.02.067.572.753.572.753l-.42-.03c.03.106.677 1.153.677 1.163 0 .01-.229-.057-.381-.105.543 1.21 1.324 1.448 1.362 1.943-2.667 3.419-9.667 3.952-12.771.124-.067-.314.619-.838 1.057-1.429.21-.286.4-.59.533-.905.19-.58-.21-.533-.476-1.028-.047-.086-.086-.2-.047-.305.057-.19.38-.324.438-.286 1.314.877 3.762.59 5.266-1.142 0 0 .458.114.696.18l-.686-.457-.048-.028c-.028.019-.067.038-.095.057-3.124 2.38-5.152 1.352-5.152 1.352a3.243 3.243 0 0 0-.438-.39c-2.124-1.495-3.639-3.505-4.324-4.81l-.257 1.381.057-1.838-.914 1.276.676-1.371c-.505-.067-.79-.572-.676-.981.094-.426.63-.738 1.096-.527z\"},\"child\":[]}]})(props);\n};\nexport function SiMultisim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.3636 5.7778c-.1616.3232-.5656.5656-.9697.5656-.6464 0-1.1313-.4848-1.1313-1.1313s.4849-1.1313 1.1313-1.1313c.404 0 .7273.2424.9697.5657h3.5556V.1212H0v2.7475h15.0303c.1616-.3232.5657-.5657.9697-.5657.6465 0 1.1313.4849 1.1313 1.1313S16.6465 4.5657 16 4.5657c-.404 0-.7273-.2425-.9697-.5657H0v6.5455h2.101V6.505h10.586c.1616-.3232.5656-.5656.9697-.5656.6464 0 1.1313.4848 1.1313 1.1313s-.485 1.1313-1.1314 1.1313c-.404 0-.7273-.2424-.9697-.5656H3.313v3.0707h11.798c.1616-.3233.5657-.5657.9697-.5657.6465 0 1.1313.4849 1.1313 1.1313s-.4848 1.1313-1.1313 1.1313c-.404 0-.7273-.2424-.9697-.5656H0v3.0707h6.5455c.1616-.3232.5656-.5657.9697-.5657.6464 0 1.1313.4849 1.1313 1.1313 0 .6465-.4849 1.1314-1.1313 1.1314-.404 0-.7273-.2425-.9697-.5657H0v3.0707h7.6768c.1616-.3232.5656-.5657.9697-.5657.6464 0 1.1313.4849 1.1313 1.1314 0 .6464-.4849 1.1313-1.1313 1.1313-.404 0-.7273-.2424-.9697-.5657H0v3.6364h12.606v-7.4344c-.3232-.1616-.5656-.5656-.5656-.9697 0-.6464.4849-1.1313 1.1313-1.1313s1.1313.4849 1.1313 1.1313c0 .404-.2424.7273-.5656.9697v7.4344h2.6666v-5.6566c-.3232-.1616-.5656-.5656-.5656-.9697 0-.6464.4848-1.1313 1.1313-1.1313s1.1313.4849 1.1313 1.1313c0 .404-.2424.7273-.5656.9697v5.6566h2.6666v-8.3232c-.3232-.1617-.5656-.5657-.5656-.9697 0-.6465.4848-1.1314 1.1313-1.1314.6464 0 1.1313.4849 1.1313 1.1314 0 .404-.2424.7272-.5657.9697v8.3232H24V9.9798h-2.9899c-.1616.3232-.5657.5657-.9697.5657-.6465 0-1.1313-.4849-1.1313-1.1314s.4848-1.1313 1.1313-1.1313c.404 0 .7273.2425.9697.5657H24V5.697l-3.6364.0808z\"},\"child\":[]}]})(props);\n};\nexport function SiMumble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .08A12 11.92 0 000 12a12 11.92 0 0012 11.92A12 11.92 0 0024 12 12 11.92 0 0012 .08zM9.463 1.56c.393 0 .763.21.944.57-.013 1.409-.007 2.819-.008 4.23v.001c.013.303-.019.633.004.951.023.318.102.627.341.88.357.447.942.468 1.45.446h-.003.003c.736.093 1.468-.476 1.519-1.225v-.001c.013-1.74.008-3.479 0-5.218.115-.387.562-.669.973-.617h.006c1.457-.108 3.002.616 3.661 1.953l.001.002c.252.448.328 1.023.381 1.496v4.258a3.401 3.401 0 00-.757-.174l-.037-.004V9.389h-.022v-.193c0-.148-.13-.265-.285-.265h-.36a.305.305 0 00-.102.018c-.002-1.298.007-2.592-.01-3.895v-.001a2.212 2.212 0 00-.571-1.358c-.337-.368-.801-.606-1.33-.567l-.03.002v3.995c.104 1.115-.673 2.259-1.791 2.469-.742.09-1.498.028-2.252.047h-.002c-1.184.1-2.306-.88-2.39-2.06-.027-1.475-.004-2.952-.012-4.428v-.032h-.032c-.508-.006-.945.241-1.26.606a2.247 2.247 0 00-.534 1.319C6.94 6.383 6.95 7.71 6.948 9.04a.291.291 0 00-.156-.045H6.44c-.154 0-.28.118-.28.265v.122h-.007v-.217l-.036.004a3.394 3.394 0 00-.733.166V5.273c.007-.371.045-.734.139-1.117.401-1.573 2.014-2.627 3.604-2.588l.082.003.08.001h.003c.057-.01.114-.013.17-.013zM17.275 9h.36c.122 0 .217.088.217.196v10.736c0 .107-.095.196-.218.196h-.36c-.122 0-.217-.089-.217-.196V9.196c0-.108.095-.196.218-.196zM6.44 9.064h.353c.04 0 .079.011.11.03l.013.007a.186.186 0 01.035.028c.034.035.054.08.054.131v10.737c0 .108-.093.196-.212.196H6.44c-.12 0-.212-.088-.212-.196V9.26c0-.108.093-.196.212-.196zm11.567.118c.055.007.11.016.164.025 2.061.356 3.662 2.656 3.662 5.452 0 2.869-1.686 5.217-3.826 5.476zM6.09 9.241v10.952c-2.14-.259-3.826-2.607-3.826-5.476 0-2.775 1.578-5.063 3.618-5.444l.011-.002.034-.006c.054-.009.108-.017.163-.024zM17.92 19.883h.022v.326l.036-.004a3.35 3.35 0 00.371-.062.195.195 0 01-.09.173l-.002.001v.001s-.618.496-.947.707c-.314.187-.49.338-.758.455a1.718 1.718 0 01-.19.067.858.858 0 01-.14.032h-2.206a.134.134 0 01-.02-.002.68.68 0 00.052-.456h2.068s.127-.011.28-.085c.19-.091.39-.225.577-.347.209-.137.403-.283.607-.435.026-.02.05-.04.072-.06.148-.008.268-.12.268-.263zm-5.684.39c.487 0 .928.115 1.244.299.317.184.506.433.506.705 0 .271-.19.52-.506.705-.316.183-.757.299-1.244.299-.488 0-.93-.116-1.245-.3-.317-.183-.506-.433-.506-.704 0-.272.19-.521.506-.705.316-.184.757-.3 1.245-.3z\"},\"child\":[]}]})(props);\n};\nexport function SiMuo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.887 6.016 0 10.903v7.048h19.108l4.873-4.874v-7.06Zm5.46 3.57a.295.295 0 0 1 .314.314v3.652h3V9.9a.303.303 0 0 1 .331-.314.295.295 0 0 1 .315.314v3.72a.506.506 0 0 1-.56.552h-3.18a.502.502 0 0 1-.551-.552V9.9a.303.303 0 0 1 .33-.314zm-5.113.041a.597.597 0 0 1 .465.22l1.638 1.99L8.96 9.81a.47.47 0 0 1 .378-.183h.164a.18.18 0 0 1 .183.183.193.193 0 0 1-.046.128L7.668 12.4a.433.433 0 0 1-.33.19.443.443 0 0 1-.323-.185l-1.45-1.753v3.246a.303.303 0 0 1-.331.315.295.295 0 0 1-.315-.315V9.942a.295.295 0 0 1 .315-.315zm9.942 0h3.334a.502.502 0 0 1 .552.552v3.44a.502.502 0 0 1-.552.553h-3.334a.502.502 0 0 1-.552-.552v-3.44a.502.502 0 0 1 .552-.553zm.093.62v3.304h3.148v-3.303zm-5.775.584c.032 0 .191.012.191.25v2.817a.303.303 0 0 1-.33.315.295.295 0 0 1-.315-.315V11.49a.591.591 0 0 1 .133-.378l.131-.164.012-.013c.058-.058.104-.104.178-.104zM24 14.498l-3.486 3.486H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiMural (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.53 8.118H24v13.258h-3.47V8.118zM5.497 6.094A2.03 2.03 0 0 1 7.524 8.12h3.47a5.503 5.503 0 0 0-5.497-5.497A5.503 5.503 0 0 0 0 8.121h3.47a2.03 2.03 0 0 1 2.027-2.027zm2.027 15.285 3.47-.002V8.12h-3.47v13.258zm8.952-.005v-3.468h-3.47l-2.013.001v3.47l5.483-.003zm0-13.256a2.03 2.03 0 0 1 2.027-2.027V2.62a5.503 5.503 0 0 0-5.497 5.497v9.788h3.47V8.118zm4.055 0H24a5.503 5.503 0 0 0-5.497-5.497v3.47a2.03 2.03 0 0 1 2.027 2.027zM0 21.378h3.47V8.122H0V21.38z\"},\"child\":[]}]})(props);\n};\nexport function SiMusescore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.777 23.997a11.989 11.989 0 0 1-8.98-4.296 12.013 12.013 0 0 1-2.406-4.655A12.1 12.1 0 0 1 .273 9.44a11.926 11.926 0 0 1 1.72-4.064 12.056 12.056 0 0 1 4.056-3.799 11.94 11.94 0 0 1 4.13-1.44 12.211 12.211 0 0 1 3.693.007c1.708.27 3.302.89 4.751 1.848.873.577 1.692 1.29 2.385 2.08a11.966 11.966 0 0 1 2.68 5.196c.402 1.718.416 3.556.039 5.291a12.004 12.004 0 0 1-4.024 6.643 12.013 12.013 0 0 1-4.655 2.407c-.743.195-1.499.316-2.29.367a17.83 17.83 0 0 1-.809.026l-.172-.003zm-6.924-6.684a.488.488 0 0 0 .23-.133.548.548 0 0 0 .139-.232c.013-.043.014-.178.018-2.363.004-2.12.005-2.327.018-2.438.033-.298.076-.51.146-.72.101-.303.224-.516.406-.705.14-.144.26-.232.434-.315a1.76 1.76 0 0 1 .504-.148c.114-.017.382-.024.493-.012a1.803 1.803 0 0 1 1.308.807c.166.25.271.528.327.866l.017.106.004 2.438c.004 2.324.005 2.44.019 2.485a.555.555 0 0 0 .133.226.5.5 0 0 0 .201.128c.052.019.068.021.167.021a.462.462 0 0 0 .37-.145.507.507 0 0 0 .149-.3c.006-.042.008-.774.008-2.407 0-1.542.003-2.375.008-2.428.047-.48.222-.889.523-1.225.183-.204.464-.39.73-.482.21-.074.394-.101.626-.095.304.01.55.066.8.186.284.136.514.341.668.597.178.294.28.662.299 1.083.002.053.013.491.023.973.022 1.002.024 1.063.04 1.238.072.787.307 1.426.711 1.935.087.11.311.333.417.417.435.344.944.555 1.532.634.177.024.507.03.68.012.797-.082 1.53-.463 2.015-1.046.373-.45.606-.99.704-1.64.046-.302.043-.143.046-2.506.003-2.417.007-2.223-.054-2.346a.484.484 0 0 0-.332-.251.584.584 0 0 0-.416.06c-.1.06-.19.183-.22.304-.009.031-.012.478-.016 2.22-.005 2.415 0 2.23-.055 2.51-.18.917-.81 1.522-1.73 1.66a2.358 2.358 0 0 1-.512-.008c-.464-.07-.84-.256-1.13-.557-.332-.345-.53-.816-.601-1.432-.018-.151-.026-.387-.043-1.212-.018-.853-.026-1.05-.047-1.24-.129-1.123-.68-1.983-1.548-2.417a2.773 2.773 0 0 0-1.121-.294c-.55-.035-1.136.12-1.671.441a2.949 2.949 0 0 0-.813.707l-.038.049-.028-.038a2.542 2.542 0 0 0-.235-.261c-.457-.433-1.1-.722-1.78-.8a3.877 3.877 0 0 0-.65-.001c-.635.07-1.141.286-1.559.666-.48.437-.795 1.103-.912 1.926-.056.393-.057.436-.054 2.915l.002 2.184.022.064a.525.525 0 0 0 .359.339c.078.02.188.02.267 0zm11.99-8.863a.687.687 0 0 0 .546-.505.849.849 0 0 0 .008-.3.685.685 0 0 0-.455-.516.678.678 0 0 0-.895.649c0 .055.005.11.012.142a.684.684 0 0 0 .783.53zm-2.667-.138a.495.495 0 0 0 .32-.265c.046-.092.06-.158.067-.343a2.224 2.224 0 0 1 .617-1.49 1.934 1.934 0 0 1 1.146-.587c.145-.022.434-.024.581-.004.307.043.58.143.822.3.244.16.474.4.634.663.202.333.326.763.327 1.127 0 .1.012.184.036.26a.507.507 0 0 0 .94.068c.053-.111.06-.15.059-.35 0-.198-.01-.318-.043-.514-.217-1.298-1.165-2.294-2.426-2.545a2.47 2.47 0 0 0-.625-.055 3.031 3.031 0 0 0-2.738 1.638 3.3 3.3 0 0 0-.366 1.43c-.01.265.037.418.167.544a.509.509 0 0 0 .482.123z\"},\"child\":[]}]})(props);\n};\nexport function SiMusicbrainz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.582 0L1.418 5.832v12.336L11.582 24V10.01L7.1 12.668v3.664c.01.111.01.225 0 .336-.103.435-.54.804-1 1.111-.802.537-1.752.509-2.166-.111-.413-.62-.141-1.631.666-2.168.384-.28.863-.399 1.334-.332V6.619c0-.154.134-.252.226-.308L11.582 3zm.836 0v6.162c.574.03 1.14.16 1.668.387a2.225 2.225 0 0 0 1.656-.717 1.02 1.02 0 1 1 1.832-.803l.004.006a1.022 1.022 0 0 1-1.295 1.197c-.34.403-.792.698-1.297.85.34.263.641.576.891.928a1.04 1.04 0 0 1 .777.125c.768.486.568 1.657-.318 1.857-.886.2-1.574-.77-1.09-1.539.02-.03.042-.06.065-.09a3.598 3.598 0 0 0-1.436-1.166 4.142 4.142 0 0 0-1.457-.369v4.01c.855.06 1.256.493 1.555.834.227.256.356.39.578.402.323.018.568.008.806 0a5.44 5.44 0 0 1 .895.022c.94-.017 1.272-.226 1.605-.446a2.533 2.533 0 0 1 1.131-.463 1.027 1.027 0 0 1 .12-.263 1.04 1.04 0 0 1 .105-.137c.023-.025.047-.044.07-.066a4.775 4.775 0 0 1 0-2.405l-.012-.01a1.02 1.02 0 1 1 .692.272h-.057a4.288 4.288 0 0 0 0 1.877h.063a1.02 1.02 0 1 1-.545 1.883l-.047-.033a1 1 0 0 1-.352-.442 1.885 1.885 0 0 0-.814.354 3.03 3.03 0 0 1-.703.365c.757.555 1.772 1.6 2.199 2.299a1.03 1.03 0 0 1 .256-.033 1.02 1.02 0 1 1-.545 1.88l-.047-.03a1.017 1.017 0 0 1-.27-1.376.72.72 0 0 1 .051-.072c-.445-.775-2.026-2.28-2.46-2.387a4.037 4.037 0 0 0-1.31-.117c-.24.008-.513.018-.866 0-.515-.027-.783-.333-1.043-.629-.26-.296-.51-.56-1.055-.611V18.5a1.877 1.877 0 0 0 .426-.135.333.333 0 0 1 .058-.027c.56-.267 1.421-.91 2.096-2.447a1.02 1.02 0 0 1-.27-1.344 1.02 1.02 0 1 1 .915 1.54 6.273 6.273 0 0 1-1.432 2.136 1.785 1.785 0 0 1 .691.306.667.667 0 0 0 .37.168 3.31 3.31 0 0 0 .888-.222 1.02 1.02 0 0 1 1.787-.79v-.005a1.02 1.02 0 0 1-.773 1.683 1.022 1.022 0 0 1-.719-.287 3.935 3.935 0 0 1-1.168.287h-.05a1.313 1.313 0 0 1-.71-.275c-.262-.177-.51-.345-1.402-.12a2.098 2.098 0 0 1-.707.2V24l10.164-5.832V5.832zm4.154 4.904a.352.352 0 0 0-.197.639l.018.01c.163.1.378.053.484-.108v-.002a.352.352 0 0 0-.303-.539zm-4.99 1.928L7.082 9.5v2l4.5-2.668zm8.385.38a.352.352 0 0 0-.295.165v.002a.35.35 0 0 0 .096.473l.013.01a.357.357 0 0 0 .487-.108.352.352 0 0 0-.301-.541zM16.09 8.647a.352.352 0 0 0-.277.163.355.355 0 0 0 .296.54c.482 0 .463-.73-.02-.703zm3.877 2.477a.352.352 0 0 0-.295.164.35.35 0 0 0 .094.475l.015.01a.357.357 0 0 0 .485-.11.352.352 0 0 0-.3-.539zm-4.375 3.594a.352.352 0 0 0-.291.172.35.35 0 0 0-.04.265.352.352 0 1 0 .33-.437zm4.375.789a.352.352 0 0 0-.295.164v.002a.352.352 0 0 0 .094.473l.015.01a.357.357 0 0 0 .485-.108.352.352 0 0 0-.3-.54zm-2.803 2.488v.002a.347.347 0 0 0-.223.084.352.352 0 0 0 .23.62.347.347 0 0 0 .23-.085.348.348 0 0 0 .12-.24.353.353 0 0 0-.35-.38.347.347 0 0 0-.007 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiMxlinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001 13.301l3.277 3.819-.75.9-2.133-2.521-1.131-1.338.737-.86zM24 2.41v19.182c0 .655-.531 1.186-1.186 1.186H1.186A1.186 1.186 0 0 1 0 21.591V2.409c0-.655.531-1.186 1.186-1.186h21.628c.655 0 1.186.53 1.186 1.186zm-2.241 17.09l-2.116-2.542-2.115-2.541-.586.704-3.25-3.788 4.913-5.73-1.175-1.008-4.76 5.549-4.743-5.527-1.947 1.67 5 5.827-.73.851-1.24-1.465-3.384 4-3.385 4h19.518z\"},\"child\":[]}]})(props);\n};\nexport function SiMyanimelist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.273 7.247v8.423l-2.103-.003v-5.216l-2.03 2.404-1.989-2.458-.02 5.285H.001L0 7.247h2.203l1.865 2.545 2.015-2.546 2.19.001zm8.628 2.069l.025 6.335h-2.365l-.008-2.871h-2.8c.07.499.21 1.266.417 1.779.155.381.298.751.583 1.128l-1.705 1.125c-.349-.636-.622-1.337-.878-2.082a9.296 9.296 0 0 1-.507-2.179c-.085-.75-.097-1.471.107-2.212a3.908 3.908 0 0 1 1.161-1.866c.313-.293.749-.5 1.1-.687.351-.187.743-.264 1.107-.359a7.405 7.405 0 0 1 1.191-.183c.398-.034 1.107-.066 2.39-.028l.545 1.749H14.51c-.593.008-.878.001-1.341.209a2.236 2.236 0 0 0-1.278 1.92l2.663.033.038-1.81h2.309zm3.992-2.099v6.627l3.107.032-.43 1.775h-4.807V7.187l2.13.03z\"},\"child\":[]}]})(props);\n};\nexport function SiMyget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.96 0 1.1 4.34v14.28L11.9 24l11-5.38V13.8h-3.2v2.87l-7.8 3.83-7.64-3.83V8.02l7.64 3.72 10.8-5.6Zm-.24 3.53L16.02 6l-4.15 2.17-5.22-2.56Z\"},\"child\":[]}]})(props);\n};\nexport function SiMyob (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.7695 7.0312c-.9023 0-1.0547.6094-1.0664.914v6.5977h.6328c.5157.0117.6328-.3164.6446-.5039v-.0234-.0234c.3984.4219.9492.6563 1.5703.6563 1.3476 0 2.4492-1.1719 2.4492-2.6953 0-1.547-1.1016-2.7188-2.4492-2.7188-.5977 0-1.125.2227-1.5117.6094V7.0313h-.2696zm.2696 4.9219c0-.8203.5859-1.4883 1.3125-1.4883.7382 0 1.3242.6445 1.3242 1.4883 0 .832-.586 1.4648-1.3242 1.4648-.7266 0-1.3125-.6562-1.3125-1.4648zm-6.961 0c0 1.5469 1.1602 2.707 2.5899 2.707 1.4414 0 2.6015-1.1601 2.6015-2.707 0-1.5586-1.1601-2.7422-2.6015-2.7422-1.4297 0-2.5899 1.1836-2.5899 2.7422zm1.3242 0c0-.8906.5743-1.5234 1.2657-1.5234.703 0 1.2773.6328 1.2773 1.5234 0 .8789-.5742 1.4883-1.2773 1.4883-.6914 0-1.2657-.6094-1.2657-1.4883zM3.961 9.949c-.3632-.457-.9375-.7382-1.6406-.7382C.9141 9.211 0 10.207 0 11.5312v3.0117h.4336c.293-.0234.8672-.164.8906-1.0312v-2.004c0-.5859.4102-.996.9961-.996.879 0 .961.7031.961.996v3.0352h.4335c.293-.0234.8672-.164.8907-1.0195v-2.0156c0-.586.4218-.9961.996-.9961.879 0 .9727.7031.9727.996v3.0352h.4336c.293-.0234.879-.164.8906-1.043v-1.9687c0-1.3594-.8437-2.3203-2.2968-2.3203-.668 0-1.2422.2813-1.6407.7383zm7.7461-.0233l-1.1133 3.0937-1.207-3.2109c-.1758-.5039-.6562-.4805-.6562-.4805H7.6992L9.75 14.379c0-.0117 0-.0117-.0117-.0117 0 0 .0117 0 .0117.0117s.0117.0234.0117.0234L9.75 14.379c.0703.1992.0469.3164-.0117.5156l-.0469.129c-.2344.5976-.5742.7617-1.289.7148v.0117l.4921 1.2187c.9258-.0234 1.6055-.328 2.0742-1.4765l2.461-6.164h-.9258c-.0469 0-.5742.0116-.7969.5976zm8.0625-2.8945c-.9023 0-1.0547.6093-1.0664.914v6.5977h.6328c.5157.0117.6328-.3164.6446-.504v-.0233-.0234c.3984.4218.9492.6562 1.5703.6562 1.3476 0 2.4492-1.1719 2.4492-2.6953 0-1.5469-1.1016-2.7188-2.4492-2.7188-.5977 0-1.125.2227-1.5117.6094V7.0313h-.2696zm.2696 4.9218c0-.8203.5859-1.4882 1.3125-1.4882.7382 0 1.3242.6445 1.3242 1.4882 0 .832-.586 1.4649-1.3242 1.4649-.7266 0-1.3125-.6563-1.3125-1.4649zm-6.961 0c0 1.547 1.1602 2.707 2.5899 2.707 1.4414 0 2.6015-1.16 2.6015-2.707 0-1.5586-1.1601-2.7421-2.6015-2.7421-1.4297 0-2.5899 1.1835-2.5899 2.7421zm1.3242 0c0-.8906.5743-1.5234 1.2657-1.5234.703 0 1.2773.6328 1.2773 1.5234 0 .879-.5742 1.4883-1.2773 1.4883-.6914 0-1.2657-.6094-1.2657-1.4883zM3.961 9.9492c-.3632-.457-.9375-.7382-1.6406-.7382C.9141 9.211 0 10.207 0 11.5313v3.0117h.4336c.293-.0234.8672-.164.8906-1.0313v-2.0039c0-.586.4102-.996.9961-.996.879 0 .961.703.961.996v3.0352h.4335c.293-.0234.8672-.164.8907-1.0195v-2.0157c0-.586.4218-.996.996-.996.879 0 .9727.703.9727.996v3.0352h.4336c.293-.0234.879-.164.8906-1.043v-1.9687c0-1.3594-.8437-2.3204-2.2968-2.3204-.668 0-1.2422.2813-1.6407.7383zm7.7461-.0234l-1.1133 3.0938-1.207-3.211c-.1758-.5039-.6562-.4804-.6562-.4804H7.6992L9.75 14.379c0-.0117 0-.0117-.0117-.0117 0 0 .0117 0 .0117.0117s.0117.0234.0117.0234L9.75 14.379c.0703.1992.0469.3164-.0117.5156l-.0469.1289c-.2344.5976-.5742.7617-1.289.7148v.0117l.4921 1.2188c.9258-.0234 1.6055-.3282 2.0742-1.4766l2.461-6.164h-.9258c-.0469 0-.5742.0117-.7969.5976z\"},\"child\":[]}]})(props);\n};\nexport function SiMyspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.802 12.274A3.811 3.811 0 0023.62 8.47c0-2.101-1.71-3.795-3.818-3.795a3.816 3.816 0 00-3.818 3.81 3.817 3.817 0 003.818 3.811zm-8.602.705a3.43 3.43 0 003.435-3.424A3.43 3.43 0 0011.2 6.13a3.44 3.44 0 00-3.436 3.436A3.436 3.436 0 0011.2 13zm-7.8.635c1.71 0 3.093-1.38 3.093-3.081 0-1.704-1.395-3.084-3.105-3.084A3.086 3.086 0 00.3 10.539c0 1.7 1.387 3.078 3.095 3.078zm0 .705c-1.96 0-3.4 1.717-3.4 3.495v1.196c0 .17.138.31.31.31h6.18a.31.31 0 00.309-.31v-1.196c0-1.779-1.437-3.5-3.398-3.5zm7.8-.56c-2.18 0-3.78 1.915-3.78 3.891v1.331c0 .188.156.344.345.344h6.87a.344.344 0 00.342-.344V17.65c0-1.976-1.598-3.891-3.777-3.891zm8.602-.617c-2.422 0-4.197 2.126-4.197 4.323v1.477c0 .21.172.381.382.381h7.63c.21 0 .383-.171.383-.381v-1.477c-.001-2.197-1.776-4.323-4.198-4.323z\"},\"child\":[]}]})(props);\n};\nexport function SiMysql (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.405 5.501c-.115 0-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77 18.695h-.927a50.854 50.854 0 00-.27-4.41h-.008l-1.41 4.41H2.45l-1.4-4.41h-.01a72.892 72.892 0 00-.195 4.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335 4.064h.008l1.347-4.064h1.095c.242 2.015.384 3.86.428 5.53zm4.017-4.08c-.378 2.045-.876 3.533-1.492 4.46-.482.716-1.01 1.073-1.583 1.073-.153 0-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268 0 .483-.075.647-.222.197-.18.295-.382.295-.605 0-.155-.077-.47-.23-.944L6.23 14.615h.91l.727 2.36c.164.536.233.91.205 1.123.4-1.064.678-2.227.835-3.483zm12.325 4.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253 0-1.83-.718-2.746-2.155-2.746-.704 0-1.254.232-1.65.697-.43.508-.646 1.256-.646 2.245 0 .972.19 1.686.574 2.14.35.41.877.615 1.583.615.264 0 .506-.033.725-.098l1.325.772.36-.622zM15.5 17.588c-.225-.36-.337-.94-.337-1.736 0-1.393.424-2.09 1.27-2.09.443 0 .77.167.977.5.224.362.336.936.336 1.723 0 1.404-.424 2.108-1.27 2.108-.445 0-.77-.167-.978-.5zm-1.658-.425c0 .47-.172.856-.516 1.156-.344.3-.803.45-1.384.45-.543 0-1.064-.172-1.573-.515l.237-.476c.438.22.833.328 1.19.328.332 0 .593-.073.783-.22a.754.754 0 00.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177 0-.45.157-.81.47-1.085.315-.278.72-.415 1.22-.415.512 0 .98.136 1.4.41l-.213.476a2.726 2.726 0 00-1.064-.23c-.283 0-.502.068-.654.206a.685.685 0 00-.248.524c0 .328.234.61.666.85.393.215 1.187.67 1.187.67.433.305.648.63.648 1.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223 3.223 0 00-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867 8.867 0 00-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69 17.69 0 01-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422 1.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146 1.693.194 2.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445 3.445 0 01-.35-.4 8.76 8.76 0 01-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188 1.01-.027.007-.014 0-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478 2.478 0 01-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953 5.953 0 012.085 2.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z\"},\"child\":[]}]})(props);\n};\nexport function SiN26 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3.803v1.195h7.436V3.803H0zM12.69 7.29c-2.034 0-3.038 1.252-3.038 2.684 0 .234.027.468.092.728l1.393.135a3.697 3.697 0 0 1-.09-.793c0-1.072.71-1.586 1.598-1.586.866 0 1.507.485 1.507 1.652 0 1.186-.58 1.995-1.464 2.88-.925.923-2.4 2.027-3.112 2.534v1.092h6.135v-1.195h-4.168c.695-.48 1.69-1.279 2.133-1.72.502-.503 1.931-1.794 1.931-3.636 0-1.903-1.24-2.775-2.918-2.775zm8.34 0c-1.976 0-3.454 1.517-3.454 4.916 0 3.017 1.233 4.508 3.356 4.508 1.754 0 3.068-1.198 3.068-3.172 0-1.542-.823-3.066-2.793-3.066-1.1 0-1.884.51-2.281 1.263 0-1.78.62-3.33 2.094-3.33.937 0 1.309.538 1.507 1.422l1.366-.271c-.321-1.527-1.292-2.27-2.864-2.27zM.075 7.389v9.228h1.33v-6.312c0-.56-.013-.898-.039-1.223h.026c.136.372.298.699.539 1.123l3.732 6.412h1.69V7.39H6.04v6.31c0 .56.013.898.04 1.223h-.028a7.252 7.252 0 0 0-.537-1.123L1.783 7.389H.076zm20.817 4.185c1.114 0 1.744.822 1.744 1.992 0 1.256-.717 2.034-1.701 2.034-1.09 0-1.843-1.001-1.973-2.329.33-1.133 1.063-1.697 1.93-1.697zM0 19.008v1.19h7.436v-1.19H0z\"},\"child\":[]}]})(props);\n};\nexport function SiN8N (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.4737 5.6842c-1.1772 0-2.1663.8051-2.4468 1.8947h-2.8955c-1.235 0-2.289.893-2.492 2.111l-.1038.623a1.263 1.263 0 0 1-1.246 1.0555H11.289c-.2805-1.0896-1.2696-1.8947-2.4468-1.8947s-2.1663.8051-2.4467 1.8947H4.973c-.2805-1.0896-1.2696-1.8947-2.4468-1.8947C1.1311 9.4737 0 10.6047 0 12s1.131 2.5263 2.5263 2.5263c1.1772 0 2.1663-.8051 2.4468-1.8947h1.4223c.2804 1.0896 1.2696 1.8947 2.4467 1.8947 1.1772 0 2.1663-.8051 2.4468-1.8947h1.0008a1.263 1.263 0 0 1 1.2459 1.0555l.1038.623c.203 1.218 1.257 2.111 2.492 2.111h.3692c.2804 1.0895 1.2696 1.8947 2.4468 1.8947 1.3952 0 2.5263-1.131 2.5263-2.5263s-1.131-2.5263-2.5263-2.5263c-1.1772 0-2.1664.805-2.4468 1.8947h-.3692a1.263 1.263 0 0 1-1.246-1.0555l-.1037-.623A2.52 2.52 0 0 0 13.9607 12a2.52 2.52 0 0 0 .821-1.4794l.1038-.623a1.263 1.263 0 0 1 1.2459-1.0555h2.8955c.2805 1.0896 1.2696 1.8947 2.4468 1.8947 1.3952 0 2.5263-1.131 2.5263-2.5263s-1.131-2.5263-2.5263-2.5263m0 1.2632a1.263 1.263 0 0 1 1.2631 1.2631 1.263 1.263 0 0 1-1.2631 1.2632 1.263 1.263 0 0 1-1.2632-1.2632 1.263 1.263 0 0 1 1.2632-1.2631M2.5263 10.7368A1.263 1.263 0 0 1 3.7895 12a1.263 1.263 0 0 1-1.2632 1.2632A1.263 1.263 0 0 1 1.2632 12a1.263 1.263 0 0 1 1.2631-1.2632m6.3158 0A1.263 1.263 0 0 1 10.1053 12a1.263 1.263 0 0 1-1.2632 1.2632A1.263 1.263 0 0 1 7.579 12a1.263 1.263 0 0 1 1.2632-1.2632m10.1053 3.7895a1.263 1.263 0 0 1 1.2631 1.2632 1.263 1.263 0 0 1-1.2631 1.2631 1.263 1.263 0 0 1-1.2632-1.2631 1.263 1.263 0 0 1 1.2632-1.2632\"},\"child\":[]}]})(props);\n};\nexport function SiNamebase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.0978 2.406c0 1.3288-1.0516 2.406-2.3488 2.406s-2.3487-1.0772-2.3487-2.406S19.4519 0 20.7491 0s2.3487 1.0772 2.3487 2.406zm-11.5089.5415C5.6868 2.9475.9022 7.8488.9022 13.8948V24h6.5764V13.8948c0-2.3254 1.8403-4.2105 4.1103-4.2105s4.1103 1.8851 4.1103 4.2105V24h6.5764V13.8948c0-6.046-4.7846-10.9473-10.6867-10.9473z\"},\"child\":[]}]})(props);\n};\nexport function SiNamecheap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.295 17.484c.227.403.57.728.985.931-.309.15-.647.229-.99.232h-3.068a2.26 2.26 0 0 1-1.957-1.143L6.705 6.511a2.27 2.27 0 0 0-.974-.922c.309-.153.652-.233.997-.232h3.05c.81.003 1.558.438 1.959 1.143l5.558 10.984zm-9.329-7.392L6.269 6.755c-.209-.392-.582-.657-.984-.829-.204.165-.391.35-.522.581-.184.349-4.391 8.648-4.569 8.987a2.245 2.245 0 0 0 4.016 1.999l3.756-7.401zm15.846-1.593a2.245 2.245 0 0 0-1.162-2.955v-.001a2.243 2.243 0 0 0-.892-.187l-.003-.011c-.816 0-1.569.443-1.965 1.157l-3.749 7.414 1.689 3.323c.213.399.59.664.998.839.252-.2.473-.444.605-.742l4.479-8.837z\"},\"child\":[]}]})(props);\n};\nexport function SiNamemc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm4.8 4.8H16V8h3.2v11.2H16V8H8v11.2H4.8V8Z\"},\"child\":[]}]})(props);\n};\nexport function SiNamesilo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.65 0A4.65 4.65 0 0 0 0 4.65v14.7A4.65 4.65 0 0 0 4.65 24h14.7A4.65 4.65 0 0 0 24 19.35V4.65A4.65 4.65 0 0 0 19.35 0Zm7.21 4.2 4.64 3.048V8.86h-.006c-.124.4-2.156.718-4.644.718S7.33 9.26 7.206 8.86H7.2V7.248ZM7.2 9.384c0 .5 2.082.906 4.65.906 2.568 0 4.65-.406 4.65-.906v2.587c0 .5-2.082.905-4.65.905-2.568 0-4.65-.405-4.65-.905zm0 3.3c0 .5 2.082.906 4.65.906 2.568 0 4.65-.405 4.65-.905v2.586c0 .5-2.082.906-4.65.906-2.568 0-4.65-.406-4.65-.906zm0 3.301c0 .5 2.082.906 4.65.906 2.568 0 4.65-.406 4.65-.906v2.587c0 .5-2.082.906-4.65.906-2.568 0-4.65-.406-4.65-.906z\"},\"child\":[]}]})(props);\n};\nexport function SiNamuwiki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3724 0 0 5.372 0 12c0 6.6278 5.3723 12 12 12 6.6278 0 12-5.3722 12-12 0-6.628-5.3722-12-12-12zM6.4902 5.9219c1.1467-.0082 2.0869.918 2.0957 2.0644.005.6836-.324 1.2912-.832 1.6739l1.7871 4.2207 2.959-1.252-.3848-.9082c-.0923.013-.1852.0228-.2812.0234-1.1466.0088-2.0868-.9182-2.0957-2.0644-.0087-1.1472.9177-2.085 2.0644-2.0938 1.1466-.0081 2.087.9168 2.0957 2.0625.0048.655-.2955 1.2423-.7675 1.627l1.125 2.6562 3.5293-1.496a2.0834 2.0834 0 0 1-.045-.4122c-.0085-1.147.9178-2.0868 2.0645-2.0957 1.1465-.0088 2.0851.9163 2.0937 2.0625.0085 1.1473-.9162 2.0879-2.0625 2.0957-.6053.0044-1.1519-.2535-1.5351-.664l-3.6133 1.5293.496 1.1738a.5542.5542 0 0 1-.2929.7266.5546.5546 0 0 1-.7265-.295l-1.2305-2.9082-4.8828 2.0664c.0112.0845.0189.1702.0195.2559.0085 1.147-.9178 2.0863-2.0644 2.0957-1.146.0081-2.0875-.9174-2.0957-2.0644-.0088-1.1465.9176-2.0861 2.0644-2.0957.6647-.005 1.258.3045 1.6426.789l.9043-.3828-1.7969-4.2441a1.9538 1.9538 0 0 1-.2012.0117c-1.1467.0092-2.087-.916-2.0957-2.0625-.0087-1.1462.9159-2.087 2.0625-2.0957zM6.5 7.1406c-.4749.0036-.8573.3933-.8535.8672.0035.475.3925.8572.8672.8535.474-.0031.8573-.3927.8535-.8672-.0037-.4745-.393-.8574-.8672-.8535zm5.3125 1.6621c-.4749.0043-.859.3928-.8555.8672.0033.4745.3932.8571.8672.8535.4749-.0034.859-.3908.8555-.8652-.0035-.4739-.393-.8585-.8672-.8555zm7.957 2.3438c-.4537.0267-.8137.4075-.8105.8672.0034.4743.3924.8565.8672.8535.474-.0036.8565-.3922.8535-.8672-.0044-.474-.393-.8567-.8672-.8535-.0148.0001-.0283-.0009-.043 0zM5.9844 15.125c-.4749.0049-.8576.393-.8535.8672a.8613.8613 0 0 0 .8652.8555c.4739-.0036.8568-.3935.8535-.8672-.0036-.474-.3911-.8586-.8652-.8555z\"},\"child\":[]}]})(props);\n};\nexport function SiNano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2864 6.8576c-.9453 0-1.7135.7665-1.7135 1.7136 0 1.2843-.4275 1.7136-1.7136 1.7136-.9453 0-1.7135.7664-1.7135 1.7135 0 1.2843-.4276 1.7136-1.7136 1.7136-.9453 0-1.7135.7664-1.7135 1.7135 0 .9454.7665 1.7136 1.7135 1.7136.9454 0 1.7136-.7665 1.7136-1.7136 0-1.2843.4275-1.7135 1.7135-1.7135.9454 0 1.7136-.7665 1.7136-1.7136 0-1.2843.4275-1.7135 1.7135-1.7135.9454 0 1.7136-.7666 1.7136-1.7136 0-.9454-.7682-1.7136-1.7136-1.7136zm-13.717.0017c-.9453 0-1.7135.7665-1.7135 1.7136 0 1.2843-.4275 1.7136-1.7135 1.7136-.9454 0-1.7136.7664-1.7136 1.7135 0 .947.77 1.7135 1.7153 1.7135S6.8576 12.9471 6.8576 12c0-1.2843.4293-1.7135 1.7136-1.7135s1.7136.4275 1.7136 1.7135c0 .947.7698 1.7135 1.7152 1.7135.9453 0 1.7135-.7664 1.7135-1.7135 0-.9454-.7664-1.7135-1.7169-1.7135-1.2843 0-1.7135-.4276-1.7135-1.7136 0-.9453-.7683-1.7136-1.7136-1.7136zm-6.8559 6.856A1.7136 1.7136 0 0 0 0 15.4287a1.7136 1.7136 0 0 0 1.7135 1.7136 1.7136 1.7136 0 0 0 1.7136-1.7136 1.7136 1.7136 0 0 0-1.7135-1.7136Z\"},\"child\":[]}]})(props);\n};\nexport function SiNanostores (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.708 24 .6 14.822l7.679-2.995 11.235 7.867L13.708 24ZM10.292 0 23.4 9.178l-7.679 2.995L4.486 4.306 10.292 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiNapster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.495 4.543c-.22 0-.438 0-.657.03h-.031l-.032-.03C17.93 2.21 15.02.798 12.015.798c-3.004 0-5.945 1.412-7.76 3.775l-.031.03h-.031c-.22-.03-.439-.03-.658-.03H2.16v2.394l-.032.03A3.628 3.628 0 0 0 0 10.282c0 1.412.844 2.701 2.127 3.284h.063v.062c.031 5.278 4.443 9.575 9.825 9.575s9.794-4.297 9.825-9.575v-.062l.032-.03C23.155 12.92 24 11.632 24 10.25c0-1.412-.845-2.7-2.128-3.284l-.032-.03V4.542zM6.821 5.34a7.443 7.443 0 0 1 5.194-2.117c1.94 0 3.818.767 5.195 2.117l.062.062-.094.061c-.375.215-.72.43-1.064.675l-.03.031-.032-.03c-.908-.461-2.347-.983-4.005-.983s-3.098.522-4.006.982l-.03.031-.032-.03a10.22 10.22 0 0 0-1.064-.676l-.188-.061zm12.329 8.195c0 3.866-3.223 7.027-7.166 7.027-3.942 0-7.134-3.16-7.134-7.027V7.458l.094.03c1.252.308 2.44 1.658 2.722 1.996.313-.338 1.784-1.658 4.35-1.658 2.565 0 4.036 1.35 4.35 1.658.28-.338 1.438-1.688 2.721-1.995l.094-.031v6.077z\"},\"child\":[]}]})(props);\n};\nexport function SiNasa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.344 13.598c.075.281.195.39.407.39.22 0 .335-.132.335-.39V8.804h1.379v4.794c0 .675-.088.968-.43 1.31-.247.248-.703.439-1.278.439-.464 0-.909-.154-1.192-.438-.249-.25-.386-.505-.599-1.311l-.846-3.196c-.074-.281-.194-.39-.406-.39-.22 0-.336.132-.336.39v4.794H0v-4.794c0-.675.088-.968.43-1.31.247-.248.703-.439 1.278-.439.464 0 .909.154 1.192.438.249.25.385.505.599 1.311zM22.575 15.196l-1.591-4.98a.415.415 0 00-.06-.132.226.226 0 00-.186-.082.226.226 0 00-.185.082.414.414 0 00-.06.132l-1.591 4.98h-1.425l1.739-5.44c.09-.283.22-.524.384-.684.282-.275.614-.419 1.138-.419.525 0 .857.144 1.139.42.164.16.294.4.384.683L24 15.196h-1.425zM15.531 15.196c.903 0 1.344-.192 1.692-.538.385-.383.569-.802.569-1.427 0-.553-.202-1.064-.51-1.37-.403-.4-.903-.527-1.719-.527h-1.142c-.436 0-.61-.053-.748-.188-.094-.093-.139-.23-.139-.393 0-.168.04-.334.156-.448.103-.1.243-.147.511-.147h3.301V8.804h-3.049c-.903 0-1.343.192-1.691.538-.385.383-.57.802-.57 1.427 0 .553.203 1.064.51 1.37.404.4.904.527 1.72.527h1.141c.437 0 .61.053.748.188.095.093.14.23.14.393 0 .169-.041.335-.157.448-.102.1-.242.147-.51.147h-3.405l-1.306-4.086c-.09-.283-.22-.524-.384-.684-.282-.275-.615-.419-1.139-.419s-.857.144-1.138.42c-.165.16-.294.4-.385.683l-1.738 5.44h1.424l1.592-4.98a.415.415 0 01.06-.132.226.226 0 01.185-.082c.082 0 .142.028.186.082a.413.413 0 01.06.132l1.591 4.98h4.144z\"},\"child\":[]}]})(props);\n};\nexport function SiNationalgrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 11.06h.292v.415h.01c.106-.289.426-.485.764-.485.673 0 .877.355.877.928v1.547H1.65v-1.5c0-.415-.135-.728-.608-.728-.464 0-.742.355-.75.825v1.403H0zm2.467.736c.027-.563.422-.806.969-.806.422 0 .88.13.88.774v1.277c0 .112.056.177.172.177.033 0 .07-.01.093-.019v.247a.8.8 0 01-.19.019c-.297 0-.343-.168-.343-.42h-.01c-.204.313-.412.49-.871.49-.44 0-.803-.22-.803-.704 0-.676.655-.699 1.285-.773.241-.028.375-.061.375-.327 0-.396-.282-.494-.625-.494-.362 0-.63.168-.64.56zm1.557.355h-.008c-.038.07-.168.093-.246.107-.497.088-1.113.084-1.113.554 0 .294.26.476.533.476.445 0 .84-.285.834-.755zm1.443-1.091h.487v.247h-.487v1.622c0 .19.028.302.236.317.084 0 .167-.005.25-.015v.252c-.088 0-.171.01-.26.01-.388 0-.523-.13-.518-.541v-1.645h-.418v-.247h.418v-.722h.292zm1.308 2.405V11.06h-.293v2.405zm0-2.857v-.47h-.293v.47zm2.702 1.655c0 .69-.398 1.272-1.13 1.272-.734 0-1.132-.583-1.132-1.272 0-.69.398-1.273 1.131-1.273s1.131.583 1.131 1.273m-1.97 0c0 .512.278 1.025.84 1.025.56 0 .838-.513.838-1.025 0-.513-.278-1.026-.839-1.026-.56 0-.839.513-.839 1.026m2.401-1.203h.293v.415h.01c.106-.289.425-.485.764-.485.673 0 .877.355.877.928v1.547h-.292v-1.5c0-.415-.135-.728-.608-.728-.464 0-.742.355-.751.825v1.403h-.293zm2.467.736c.029-.563.422-.806.97-.806.421 0 .88.13.88.774v1.277c0 .112.056.177.172.177a.27.27 0 00.093-.019v.247a.804.804 0 01-.19.019c-.298 0-.344-.168-.344-.42h-.009c-.204.313-.412.49-.872.49-.44 0-.802-.22-.802-.704 0-.676.654-.699 1.285-.773.24-.028.375-.061.375-.327 0-.396-.283-.494-.626-.494-.361 0-.63.168-.64.56zm1.558.355h-.01c-.036.07-.166.093-.245.107-.496.088-1.113.084-1.113.554 0 .294.26.476.534.476.445 0 .839-.285.834-.755zm1.33 1.314v-3.328h-.291v3.328zm2.839-2.48v2.35c0 .428-.033 1.141-1.248 1.141-.51 0-1.047-.219-1.075-.746h.704c.028.126.08.252.455.252.347 0 .514-.168.514-.569v-.298l-.009-.009c-.106.191-.269.373-.658.373-.593 0-1.062-.415-1.062-1.282 0-.857.482-1.277 1.024-1.277.46 0 .645.27.724.434h.01v-.368zm-1.197 1.944c.441 0 .552-.378.552-.718 0-.4-.195-.727-.557-.727-.24 0-.51.178-.51.755 0 .317.13.69.515.69zm1.753-1.943h.62v.429h.01c.135-.252.283-.495.678-.495.041 0 .083.005.125.01v.661c-.056-.009-.125-.009-.186-.009-.505 0-.598.317-.598.592v1.29h-.649zm2.526 2.478v-2.495h-.648v2.495zm-.802-3.461l.477.479.477-.48-.477-.478zM24 13.465h-.635v-.312h-.01c-.157.28-.444.377-.713.377-.732 0-1.039-.652-1.039-1.333 0-.857.482-1.277 1.025-1.277a.79.79 0 01.714.387h.009V10.12H24zm-1.196-.47c.413 0 .575-.346.575-.714 0-.396-.111-.797-.556-.797-.413 0-.552.369-.552.76 0 .294.115.75.533.75z\"},\"child\":[]}]})(props);\n};\nexport function SiNationalrail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12C0 5.373 5.372 0 12 0c6.627 0 11.999 5.373 11.999 12 0 6.628-5.372 12-11.999 12-6.628 0-12-5.372-12-12Zm6.195-5.842 6.076 2.794H2.835v1.884h9.499l-4.616 2.246H2.835v1.868h4.883l5.778 2.795h4.333l-6.092-2.795h9.469v-1.868h-9.453l4.616-2.246h4.837V8.952h-4.868l-5.777-2.794H6.195\"},\"child\":[]}]})(props);\n};\nexport function SiNativescript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.77 1.76A5.68 5.68 0 0 1 5.8 0h12.6c1.37 0 2.65.6 3.83 1.76A5.43 5.43 0 0 1 24 5.7v12.77c0 1.34-.56 2.58-1.68 3.73A5.77 5.77 0 0 1 18.25 24H5.87a6.3 6.3 0 0 1-4.1-1.57C.69 21.45.1 20.03 0 18.13V5.73a5.21 5.21 0 0 1 1.77-3.97zm6.25 8.3l7.93 10.06h2.12c.49-.06.88-.2 1.17-.43.3-.23.5-.56.64-1v-4.94c.08-.95.67-1.54 1.77-1.75-1.1-.4-1.69-1.02-1.77-1.86V5.42c-.12-.44-.33-.8-.64-1.07a1.83 1.83 0 0 0-1.09-.47H16v10.2L8.02 3.87H5.79c-.56.1-.97.3-1.25.6S4.08 5.25 4 5.9v4.85c-.35.69-.9 1.1-1.65 1.25.85.16 1.4.61 1.65 1.36v4.77c.02.55.2 1 .54 1.37.33.36.7.53 1.1.5H8l.02-9.94z\"},\"child\":[]}]})(props);\n};\nexport function SiNatsdotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.004 0H.404v18.807h9.938l1.714 1.602v-.026L15.966 24v-5.193h7.63V0H12.003zm7.578 14.45H15.38L6.898 6.519v7.93H4.116V4.376h4.349l8.344 7.784V4.375h2.773V14.45z\"},\"child\":[]}]})(props);\n};\nexport function SiNaver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.273 12.845 7.376 0H0v24h7.726V11.156L16.624 24H24V0h-7.727v12.845Z\"},\"child\":[]}]})(props);\n};\nexport function SiNba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.19 0a2.486 2.486 0 0 0-2.485 2.484v19.029A2.488 2.488 0 0 0 9.19 24h5.615a2.493 2.493 0 0 0 2.49-2.487V2.484A2.488 2.488 0 0 0 14.81 0zm0 .584h3.21c-.62.237-.707.508-.73 1.366-.105.01-.325-.087-.25.434 0 0 .043.346.18.286-.133.918.023.99-.93 1.031l-.047.067c-.95.093-1.25-.027-2.05 1.603 0 0-.207.505-.268.714-.197.415-.674 1.328-.819 1.919-.046.2-.14.264-.01.553.185.417-.124.527.95.496V9.3s-.286.247-.346.398c-.061.147-.226.89-.22 1.237.019.917.767 1.683.992 2.597l.492.07c.282.634 1.495 2.355 1.743 2.582.057.159.365.355.545.551.149.141 1.025 1.1 2.054 1.692-.007-.001.164.344.249.618-.342.275.32.777.52 1.609.012.107-.19.222.114.495-.022 1.256-.402 1.918.241 2.266H9.191a1.9 1.9 0 0 1-1.9-1.901V2.486a1.9 1.9 0 0 1 1.9-1.902zm3.804.002h1.815a1.9 1.9 0 0 1 1.897 1.898v9.193a1.653 1.653 0 0 0-.22-.397c0-.255-.272-.249-.346-.344-.07-.081.067-.128-.407-.235-.09-.05-.158-.747-.158-.747-.07-.447-.229-.754-.467-1.227-.12-.243-.177-1.001-.305-1.386.071-1.767-.493-2.28-.95-2.569-.174-.11-.262-.191-.433-.29l-.005-.082c-.133-.126-.402-.264-.623-.362-.068-.07-.037-.22.01-.276.15-.02.348-.356.513-.703.129.009.174-.118.214-.19.138-.222.288-.413.096-.542.435-.777.154-1.301-.08-1.321-.095-.195-.26-.316-.551-.42zm.551 6.338c.06.319.34 1.929.456 2.187.123.259.535 1.05.73 1.54a1.69 1.69 0 0 0-1.294 1.646 1.692 1.692 0 0 0 1.693 1.691 1.692 1.692 0 0 0 1.576-1.066v8.59a1.887 1.887 0 0 1-1.598 1.877h-.017c.833-.502.319-1.46.16-2.022-.012-.033.014-.074.026-.1.045-.08-.045-.257-.045-.257-.098-.09-.127-.561-.182-.772-.089-.358.157-.971.157-1.18 0-.206-.156-.491-.445-.858-.069-.078-.276-1.86-.462-2.313-.258-.623-.339-.526-.64-1.266-.24-.525-.055-1.295-.59-3.085.005.006.12-.113.12-.113s-.422-1.55-.561-1.975c-.14-.426-.385-.456-.385-.456s.002-.172.012-.216c.02-.07.516-1.367.558-1.407.001-.03.717-.514.731-.445Z\"},\"child\":[]}]})(props);\n};\nexport function SiNbb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.714 11.176h.02l.167 4.327h2.105L6.5 8.482H4.652l-.915 4.288h-.02L3.63 8.482H1.495L0 15.503h1.79zm7.254.649l.01-.02c.462-.098 1.219-.481 1.453-1.583.248-1.16-.362-1.74-1.59-1.74H7.007l-1.494 7.02h2.94c1.209 0 2.153-.619 2.458-2.025.295-1.416-.549-1.613-.944-1.652zm-1.052 1.504c-.099.462-.354.757-.787.757h-.345l.334-1.602h.354c.454 0 .542.373.444.845zm.472-2.753c-.108.511-.452.669-.708.669h-.295l.285-1.347h.266c.403 0 .55.225.452.678zm6.83 2.901c.295-1.416-.55-1.613-.944-1.652l.01-.02c.462-.098 1.219-.481 1.453-1.583.248-1.16-.362-1.74-1.591-1.74h-2.831l-1.495 7.02h2.94c1.21 0 2.153-.619 2.458-2.025zm-1.996-.148c-.098.462-.354.757-.787.757h-.344l.335-1.602h.354c.452 0 .54.373.442.845zm.472-2.753c-.108.511-.453.669-.708.669h-.294l.285-1.347h.266c.402 0 .55.225.45.678zm4.97-2.094h-2.951c.75.615.51 1.669.51 1.669H19.2l2.338 1.857-2.167 1.834h-2.72c-.117.568-.712 1.424-1.125 1.676h4.148L24 12.01z\"},\"child\":[]}]})(props);\n};\nexport function SiNbc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.8281 4.6055c-1.4058.0067-2.5666 1.2083-2.416 2.7851h1.08s.5026-.0062.6485.338c0 0-1.594.6128-1.4668 1.6093l.9922 7.3281 3.4727-8.4316c.5296-1.279-.0616-3.1668-1.6973-3.5567a2.5497 2.5497 0 0 0-.6133-.0722zm-5.6426.002a2.5551 2.5551 0 0 0-.627.0722c-1.6356.3878-2.2268 2.2757-1.6972 3.5566l3.4727 8.4317 1.2422-9.1582c.2194-1.629-.9564-2.8876-2.3907-2.9024zM4.293 8.3104c-.5719.0213-1.1298.2465-1.5586.6583-.803.7737-1.4275 2.8792.371 4.1562l6.9532 4.9258-3.334-8.0762c-.4878-1.1698-1.4785-1.6994-2.4316-1.664zm15.2715 0c-.9075.0203-1.8246.5528-2.2891 1.6641l-3.332 8.0762 6.953-4.9258c1.7987-1.275 1.172-3.3825.3692-4.1563-.4638-.446-1.0802-.672-1.7011-.6582zm1.9394 5.7872c-.4523.0075-.9351.1573-1.42.502l-6.7694 4.7948h8.0253c1.8734 0 3.0648-1.5828 2.5332-3.4843-.2595-.9264-1.2131-1.8318-2.369-1.8125zm-19.0078.002C1.3405 14.081.3879 14.9851.127 15.9101c-.5316 1.9015.6597 3.4843 2.5332 3.4843h8.0253L3.916 14.5996c-.4848-.344-.9677-.4927-1.42-.5z\"},\"child\":[]}]})(props);\n};\nexport function SiNdr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.184 19.325l-3.137-5.648v5.649H0V9.64h2.149l3.267 6.025V9.641h2.047v9.684zm2.279-9.684V.537H8.61v9.104zm0 13.822v-4.138H8.61v4.138zM12.037 9.64c2.395 0 3.63 1.147 3.63 3.368v2.918c0 2.28-1.19 3.398-3.63 3.398H8.61V9.641zm-.19 7.855c1.163 0 1.728-.581 1.728-1.771v-2.498c0-1.176-.58-1.757-1.727-1.757h-1.03v6.026zm9.845 1.83l-1.728-3.718h-1.161v3.717h-2.15V9.641h3.384c2.381 0 3.513.944 3.513 2.962 0 1.335-.493 2.134-1.597 2.613L24 19.326zm-1.568-5.475c.857 0 1.365-.494 1.365-1.32 0-.858-.377-1.177-1.365-1.177H18.76v2.498h1.365z\"},\"child\":[]}]})(props);\n};\nexport function SiNear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.443 0c-.89 0-1.714.46-2.18 1.218l-5.017 7.448a.533.533 0 0 0 .792.7l4.938-4.282a.2.2 0 0 1 .334.151v13.41a.2.2 0 0 1-.354.128L5.03.905A2.555 2.555 0 0 0 3.078 0h-.521A2.557 2.557 0 0 0 0 2.557v18.886a2.557 2.557 0 0 0 4.736 1.338l5.017-7.448a.533.533 0 0 0-.792-.7l-4.938 4.283a.2.2 0 0 1-.333-.152V5.352a.2.2 0 0 1 .354-.128l14.924 17.87c.486.574 1.2.905 1.952.906h.521A2.558 2.558 0 0 0 24 21.445V2.557A2.558 2.558 0 0 0 21.443 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiNebula (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.417 9.307 0 14.693h9.167L12 23.413l2.833-8.72H24s-3.915-2.84-7.417-5.386l2.834-8.72L12 5.976C8.499 3.438 4.583.588 4.583.588z\"},\"child\":[]}]})(props);\n};\nexport function SiNec (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.496 8.8a13.892 13.892 0 0 0-2.453.198c-.6.11-1.165.223-1.693.57-.807.526-1.076 1.49-1.086 2.394-.012.98.283 2.06 1.21 2.54.735.384 1.537.552 2.355.624 1.397.118 2.792.1 4.171-.09v-.98c-1.04.19-2.107.31-3.184.152-1.652-.24-1.93-1.473-1.93-2.286 0-.451.06-.987.482-1.526.676-.865 2.667-.956 4.55-.59V8.95a22.777 22.777 0 0 0-2.422-.15zm-12.812.197v4.446c.03.744.295 1.518 1.834 1.581 1.814.075 3.54.045 5.334-.024v-.896c-.89.014-3.487.001-3.65 0-.704-.042-.973-.256-.998-.837a32.12 32.12 0 0 1-.02-1.055h4.177v-.834h-4.176V9.851h4.582v-.854zM0 8.997v5.999h1.146v-4.254l3.383 3.764c.41.404.763.478 1.122.49h2.015V8.997h-1.15v4.397l-3.39-3.757c-.232-.227-.753-.64-1.194-.64z\"},\"child\":[]}]})(props);\n};\nexport function SiNeo4J (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.629 13.227c-.593 0-1.139.2-1.58.533l-2.892-1.976a2.61 2.61 0 0 0 .101-.711 2.633 2.633 0 0 0-2.629-2.629A2.632 2.632 0 0 0 0 11.073a2.632 2.632 0 0 0 2.629 2.629c.593 0 1.139-.2 1.579-.533L7.1 15.145c-.063.226-.1.465-.1.711 0 .247.037.484.1.711l-2.892 1.976a2.608 2.608 0 0 0-1.579-.533A2.632 2.632 0 0 0 0 20.639a2.632 2.632 0 0 0 2.629 2.629 2.632 2.632 0 0 0 2.629-2.629c0-.247-.037-.485-.101-.711l2.892-1.976c.441.333.987.533 1.58.533a2.633 2.633 0 0 0 2.629-2.629c0-1.45-1.18-2.629-2.629-2.629ZM16.112.732c-4.72 0-7.888 2.748-7.888 8.082v3.802a3.525 3.525 0 0 1 3.071.008v-3.81c0-3.459 1.907-5.237 4.817-5.237s4.817 1.778 4.817 5.237v8.309H24V8.814C24 3.448 20.832.732 16.112.732Z\"},\"child\":[]}]})(props);\n};\nexport function SiNeovim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.214 4.954v13.615L7.655 24V10.314L3.312 3.845 2.214 4.954zm4.999 17.98l-4.557-4.548V5.136l.59-.596 3.967 5.908v12.485zm14.573-4.457l-.862.937-4.24-6.376V0l5.068 5.092.034 13.385zM7.431.001l12.998 19.835-3.637 3.637L3.787 3.683 7.43 0z\"},\"child\":[]}]})(props);\n};\nexport function SiNeptune (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.6196-5.3725 11.9857-12 11.9857-6.6274 0-12-5.3661-12-11.9857C0 5.3805 5.3726.0143 12 .0143 18.6275.0143 24 5.3805 24 12Zm-9.67-5.291c-.7538 0-1.1437.476-1.4374 1.0547-.3967.7807-.6057 1.656-.8184 2.6367-.27 1.2441-.4959 2.4964-.748 3.7441-.0597.2938-.0935.6393-.209.916-.0618.1491-.2103.3668-.3809.1973-.191-.1898-.257-.5676-.3125-.8281-.2944-1.4535-.5724-2.9115-.9023-4.3574-.1813-.779-.4272-1.5663-.7305-2.3399-.1225-.313-.297-.5328-.4922-.6816-.2388-.182-.51-.2596-.7675-.2695-.0608-.0003-.4824.0081-.8887.2753-.217.1427-.431.3582-.582.6875-.3584.7439-.6352 1.5872-.8711 2.6563-.1459.6557-.2279 1.1556-.2657 1.6191-.014.1694.0333.3434.125.4883.0922.1455.2293.2608.3867.3164.2413.0867.4809.0644.6778-.0566.1799-.111.3097-.301.3613-.541.107-.4968.202-1.0088.293-1.502.0456-.2486.313-1.5385.375-1.7012.028-.0905.0739-.2491.162-.3574.0838-.1028.1917-.1022.2696.0059.0877.1216.1256.2749.1621.418.0765.304.3007 1.5146.5703 2.7324.256 1.1827.4994 2.3682.8067 3.539.1411.5323.393 1.0008.58 1.3008.2437.3907.6322.6187 1.0626.627.3432.0105.6669-.1055.9433-.3243.269-.213.4945-.5249.6485-.918.3926-1.0015.6125-2.0977.8261-3.16.3598-1.8212.5395-2.7281.6211-3.125.0262-.1251.1762-.7535.2168-.8634.0334-.1236.0762-.2058.125-.2558.0638-.0653.1686-.0797.2363-.0137.1777.1728.3258.8109.4454 1.4102.112.5842.2403 1.1651.3593 1.748.199.9668.3964 1.9341.6075 2.8984.1847.8522.4237 1.4485.7675 1.9356.258.3644.5641.5767.8965.6445.3325.068.6962-.0074 1.0742-.2422.3192-.1983.6053-.5466.7793-.9629.2732-.6526.4326-1.4227.5782-2.1816.0583-.3051.1145-.6094.1738-.9004.0816-.394.116-.6466.0957-.9336-.0244-.3313-.3144-.6959-.6992-.7031-.4993-.0129-.7589.2422-.8457.705-.149.802-.2976 1.6034-.4512 2.4044-.0512.2594-.0205.5776-.211.787-.0292.0284-.1184.1086-.2363.088-.0745-.0131-.1732-.0775-.252-.248-.154-.4303-.5241-2.6424-1.0527-4.9552-.1812-.7787-.4274-1.5764-.7324-2.371-.2674-.6904-.6852-1.043-1.3398-1.043Zm-9.5488 8.4277c-.6472 0-1.1718.534-1.1718 1.1934 0 .6555.548 1.1956 1.1719 1.1953.5964-.0003 1.1718-.5359 1.1718-1.1953s-.5246-1.1934-1.1719-1.1934z\"},\"child\":[]}]})(props);\n};\nexport function SiNestjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.131.047c-.173 0-.334.037-.483.087.316.21.49.49.576.806.007.043.019.074.025.117a.681.681 0 0 1 .013.112c.024.545-.143.614-.26.936-.18.415-.13.861.086 1.22a.74.74 0 0 0 .074.137c-.235-1.568 1.073-1.803 1.314-2.293.019-.428-.334-.713-.613-.911a1.37 1.37 0 0 0-.732-.21zM16.102.4c-.024.143-.006.106-.012.18-.006.05-.006.112-.012.161-.013.05-.025.1-.044.149-.012.05-.03.1-.05.149l-.067.142c-.02.025-.031.05-.05.075l-.037.055a2.152 2.152 0 0 1-.093.124c-.037.038-.068.081-.112.112v.006c-.037.031-.074.068-.118.1-.13.099-.278.173-.415.266-.043.03-.087.056-.124.093a.906.906 0 0 0-.118.099c-.043.037-.074.074-.111.118-.031.037-.068.08-.093.124a1.582 1.582 0 0 0-.087.13c-.025.05-.043.093-.068.142-.019.05-.037.093-.05.143a2.007 2.007 0 0 0-.043.155c-.006.025-.006.056-.012.08-.007.025-.007.05-.013.075 0 .05-.006.105-.006.155 0 .037 0 .074.006.111 0 .05.006.1.019.155.006.05.018.1.03.15.02.049.032.098.05.148.013.03.031.062.044.087l-1.426-.552c-.241-.068-.477-.13-.719-.186l-.39-.093c-.372-.074-.75-.13-1.128-.167-.013 0-.019-.006-.031-.006A11.082 11.082 0 0 0 8.9 2.855c-.378.025-.756.074-1.134.136a12.45 12.45 0 0 0-.837.174l-.279.074c-.092.037-.18.08-.266.118l-.205.093c-.012.006-.024.006-.03.012-.063.031-.118.056-.174.087a2.738 2.738 0 0 0-.236.118c-.043.018-.086.043-.124.062a.559.559 0 0 1-.055.03c-.056.032-.112.063-.162.094a1.56 1.56 0 0 0-.148.093c-.044.03-.087.055-.124.086-.006.007-.013.007-.019.013-.037.025-.08.056-.118.087l-.012.012-.093.074c-.012.007-.025.019-.037.025-.031.025-.062.056-.093.08-.006.013-.019.02-.025.025-.037.038-.074.069-.111.106-.007 0-.007.006-.013.012a1.742 1.742 0 0 0-.111.106c-.007.006-.007.012-.013.012a1.454 1.454 0 0 0-.093.1c-.012.012-.03.024-.043.036a1.374 1.374 0 0 1-.106.112c-.006.012-.018.019-.024.03-.05.05-.093.1-.143.15l-.018.018c-.1.106-.205.211-.317.304-.111.1-.229.192-.347.273a3.777 3.777 0 0 1-.762.421c-.13.056-.267.106-.403.149-.26.056-.527.161-.756.18-.05 0-.105.012-.155.018l-.155.037-.149.056c-.05.019-.099.044-.148.068-.044.031-.093.056-.137.087a1.011 1.011 0 0 0-.124.106c-.043.03-.087.074-.124.111-.037.043-.074.08-.105.124-.031.05-.068.093-.093.143a1.092 1.092 0 0 0-.087.142c-.025.056-.05.106-.068.161-.019.05-.037.106-.056.161-.012.05-.025.1-.03.15 0 .005-.007.012-.007.018-.012.056-.012.13-.019.167C.006 7.95 0 7.986 0 8.03a.657.657 0 0 0 .074.31v.006c.019.037.044.075.069.112.024.037.05.074.08.111.031.031.068.069.106.1a.906.906 0 0 0 .117.099c.149.13.186.173.378.272.031.019.062.031.1.05.006 0 .012.006.018.006 0 .013 0 .019.006.031a1.272 1.272 0 0 0 .08.298c.02.037.032.074.05.111.007.013.013.025.02.031.024.05.049.093.073.137l.093.13c.031.037.069.08.106.118.037.037.074.068.118.105 0 0 .006.006.012.006.037.031.074.062.112.087a.986.986 0 0 0 .136.08c.043.025.093.05.142.069a.73.73 0 0 0 .124.043c.007.006.013.006.025.012.025.007.056.013.08.019-.018.335-.024.65.026.762.055.124.328-.254.6-.688-.036.428-.061.93 0 1.079.069.155.44-.329.763-.862 4.395-1.016 8.405 2.02 8.826 6.31-.08-.67-.905-1.041-1.283-.948-.186.458-.502 1.047-1.01 1.413.043-.41.025-.83-.062-1.24a4.009 4.009 0 0 1-.769 1.562c-.588.043-1.177-.242-1.487-.67-.025-.018-.031-.055-.05-.08-.018-.043-.037-.087-.05-.13a.515.515 0 0 1-.037-.13c-.006-.044-.006-.087-.006-.137v-.093a.992.992 0 0 1 .031-.13c.013-.043.025-.086.044-.13.024-.043.043-.087.074-.13.105-.298.105-.54-.087-.682a.706.706 0 0 0-.118-.062c-.024-.006-.055-.018-.08-.025l-.05-.018a.847.847 0 0 0-.13-.031.472.472 0 0 0-.13-.019 1.01 1.01 0 0 0-.136-.012c-.031 0-.062.006-.093.006a.484.484 0 0 0-.137.019c-.043.006-.086.012-.13.024a1.068 1.068 0 0 0-.13.044c-.043.018-.08.037-.124.056-.037.018-.074.043-.118.062-1.444.942-.582 3.148.403 3.787-.372.068-.75.148-.855.229l-.013.012c.267.161.546.298.837.416.397.13.818.247 1.004.297v.006a5.996 5.996 0 0 0 1.562.112c2.746-.192 4.996-2.281 5.405-5.033l.037.161c.019.112.043.23.056.347v.006c.012.056.018.112.025.162v.024c.006.056.012.112.012.162.006.068.012.136.012.204v.1c0 .03.007.067.007.098 0 .038-.007.075-.007.112v.087c0 .043-.006.08-.006.124 0 .025 0 .05-.006.08 0 .044-.006.087-.006.137-.006.018-.006.037-.006.055l-.02.143c0 .019 0 .037-.005.056-.007.062-.019.118-.025.18v.012l-.037.174v.018l-.037.167c0 .007-.007.02-.007.025a1.663 1.663 0 0 1-.043.168v.018c-.019.062-.037.118-.05.174-.006.006-.006.012-.006.012l-.056.186c-.024.062-.043.118-.068.18-.025.062-.043.124-.068.18-.025.062-.05.117-.074.18h-.007c-.024.055-.05.117-.08.173a.302.302 0 0 1-.019.043c-.006.006-.006.013-.012.019a5.867 5.867 0 0 1-1.742 2.082c-.05.031-.099.069-.149.106-.012.012-.03.018-.043.03a2.603 2.603 0 0 1-.136.094l.018.037h.007l.26-.037h.006c.161-.025.322-.056.483-.087.044-.006.093-.019.137-.031l.087-.019c.043-.006.086-.018.13-.024.037-.013.074-.02.111-.031.62-.15 1.221-.354 1.798-.595a9.926 9.926 0 0 1-3.85 3.142c.714-.05 1.426-.167 2.114-.366a9.903 9.903 0 0 0 5.857-4.68 9.893 9.893 0 0 1-1.667 3.986 9.758 9.758 0 0 0 1.655-1.376 9.824 9.824 0 0 0 2.61-5.268c.21.98.272 1.99.18 2.987 4.474-6.241.371-12.712-1.346-14.416-.006-.013-.012-.019-.012-.031-.006.006-.006.006-.006.012 0-.006 0-.006-.007-.012 0 .074-.006.148-.012.223a8.34 8.34 0 0 1-.062.415c-.03.136-.068.273-.105.41-.044.13-.093.266-.15.396a5.322 5.322 0 0 1-.185.378 4.735 4.735 0 0 1-.477.688c-.093.111-.192.21-.292.31a3.994 3.994 0 0 1-.18.155l-.142.124a3.459 3.459 0 0 1-.347.241 4.295 4.295 0 0 1-.366.211c-.13.062-.26.118-.39.174a4.364 4.364 0 0 1-.818.223c-.143.025-.285.037-.422.05a4.914 4.914 0 0 1-.297.012 4.66 4.66 0 0 1-.422-.025 3.137 3.137 0 0 1-.421-.062 3.136 3.136 0 0 1-.415-.105h-.007c.137-.013.273-.025.41-.05a4.493 4.493 0 0 0 .818-.223c.136-.05.266-.112.39-.174.13-.062.248-.13.372-.204.118-.08.235-.161.347-.248.112-.087.217-.18.316-.279.105-.093.198-.198.291-.304.093-.111.18-.223.26-.334.013-.019.026-.044.038-.062.062-.1.124-.199.18-.298a4.272 4.272 0 0 0 .334-.775c.044-.13.075-.266.106-.403.025-.142.05-.278.062-.415.012-.142.025-.285.025-.421 0-.1-.007-.199-.013-.298a6.726 6.726 0 0 0-.05-.415 4.493 4.493 0 0 0-.092-.415c-.044-.13-.087-.267-.137-.397-.05-.13-.111-.26-.173-.384-.069-.124-.137-.248-.211-.366a6.843 6.843 0 0 0-.248-.34c-.093-.106-.186-.212-.285-.317a3.878 3.878 0 0 0-.161-.155c-.28-.217-.57-.421-.862-.607a1.154 1.154 0 0 0-.124-.062 2.415 2.415 0 0 0-.589-.26Z\"},\"child\":[]}]})(props);\n};\nexport function SiNetapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2v20h9.33V10h5.34v12H24V2Z\"},\"child\":[]}]})(props);\n};\nexport function SiNetbsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.686 10.681c0-.181.064-.336.193-.464a.634.634 0 0 1 .464-.193c.182 0 .336.065.465.193a.633.633 0 0 1 .192.464.635.635 0 0 1-.192.465.632.632 0 0 1-.465.193.634.634 0 0 1-.464-.193.634.634 0 0 1-.193-.465zm1.206 0a.53.53 0 0 0-.16-.388.53.53 0 0 0-.389-.16.53.53 0 0 0-.388.16.528.528 0 0 0-.161.388.53.53 0 0 0 .16.389.53.53 0 0 0 .39.161.529.529 0 0 0 .388-.161.53.53 0 0 0 .16-.389zm-.344.396-.207-.349h-.117v.349h-.114v-.808h.207c.194 0 .292.074.292.223 0 .104-.053.177-.157.22l.221.365zm-.324-.71v.27l.076.001c.075 0 .126-.01.151-.028.026-.02.04-.056.04-.11 0-.09-.059-.134-.175-.134h-.092m-3.892 3.28c0 .403.014.667.146.82.132.147.344.213.607.213 1.266 0 1.698-1.127 1.698-2.122 0-1.318-.695-2.1-2.02-2.1-.197 0-.336.036-.38.095-.044.058-.051.197-.051.424v2.67zm-1.046-2.319c0-.695-.015-.834-.352-.87l-.139-.015c-.073-.037-.073-.25.015-.257a30.521 30.521 0 0 1 1.96-.065c.6 0 1.2.059 1.706.241.958.344 1.485 1.208 1.485 2.122 0 .981-.468 1.771-1.31 2.188-.497.25-1.097.344-1.85.344-.345 0-.71-.044-.974-.044-.351 0-.724.008-1.141.022-.059-.044-.059-.22 0-.256l.226-.036c.33-.059.374-.11.374-.783v-2.59m-2.405 3.76c-.673 0-1.09-.19-1.244-.277-.139-.161-.234-.688-.234-1.186.051-.095.22-.102.278-.022.146.476.636 1.149 1.258 1.149.542 0 .79-.373.79-.74 0-.592-.555-.943-.994-1.163-.527-.263-1.098-.702-1.105-1.427 0-.827.636-1.398 1.697-1.398.242 0 .542.03.834.118.095.029.161.043.25.058.057.161.13.556.13 1.047-.036.087-.219.095-.285.022-.124-.374-.439-.908-.965-.908-.483 0-.747.315-.747.68 0 .337.3.645.666.835l.483.256c.454.242 1.032.666 1.032 1.471 0 .9-.74 1.486-1.844 1.486m-4.2-1.354c0 .57.072.93.643.93.542 0 .827-.418.827-1.01 0-.637-.366-1.084-1.068-1.084-.403 0-.403.007-.403.3v.864zm0-1.69c0 .19.007.204.387.204.63 0 .863-.402.863-.841 0-.637-.395-.952-.9-.952-.343 0-.35.06-.35.381zm-1.01-.71c0-.74-.015-.82-.322-.857l-.198-.03c-.066-.036-.08-.255.03-.263.555-.036 1.09-.065 1.821-.065.703 0 1.171.08 1.493.27.314.19.505.498.505.93 0 .615-.52.856-.747.915-.073.014-.146.044-.146.08 0 .022.037.044.103.059.578.124 1.068.504 1.075 1.214.007.673-.395 1.069-.856 1.23-.461.16-1.01.183-1.456.183-.263 0-.541-.03-.754-.03-.358 0-.717.008-1.134.022-.058-.044-.058-.234 0-.256l.213-.044c.329-.065.373-.117.373-.775v-2.584M9.038 12.44c-.095 0-.102.007-.102.168v1.097c0 .41 0 .864.512.864.102 0 .22-.051.307-.11.073.022.117.103.102.19-.204.22-.6.425-1.053.425-.607 0-.82-.351-.82-.834v-1.632c0-.154-.007-.168-.139-.168H7.62c-.08-.03-.103-.176-.044-.227.226-.08.431-.213.607-.33.132-.095.315-.248.541-.57.051-.03.183-.022.22.036v.549c0 .139.007.146.139.146h.651c.037.03.059.074.059.14 0 .08-.022.211-.095.256h-.66m-2.627.475c.103 0 .22-.015.3-.066.037-.022.051-.095.051-.168 0-.241-.139-.402-.388-.402-.307 0-.57.292-.57.526 0 .103.102.11.336.11zm-.483.322c-.168 0-.183.015-.183.132 0 .549.351 1.083 1.032 1.083.205 0 .483-.044.68-.38.08-.015.19.043.19.168-.3.622-.84.834-1.28.834-.988 0-1.522-.695-1.522-1.493 0-.922.666-1.64 1.58-1.64.762 0 1.171.491 1.171 1.055 0 .139-.036.241-.263.241H5.927m-1.255.49c0 .476 0 .937.014 1.179-.05.087-.256.168-.431.168-.008 0-.25-.373-.593-.798l-1.69-2.093c-.417-.527-.666-.826-.798-.936-.036.073-.036.197-.036.468v1.42c0 .593.029 1.141.11 1.339.065.154.234.198.424.234l.205.03c.058.058.044.212 0 .255a26.585 26.585 0 0 0-.98-.022c-.271 0-.542.008-.82.022-.044-.043-.059-.197 0-.256l.124-.022c.198-.044.337-.087.403-.241.073-.198.102-.746.102-1.34v-1.858c0-.402 0-.52-.051-.622-.051-.124-.161-.198-.417-.249l-.205-.029c-.051-.059-.044-.234.03-.256.343.014.709.022 1.009.022.249 0 .46-.008.615-.022.073.33.548.885 1.207 1.668l.614.725c.33.38.535.636.703.805.03-.073.03-.198.03-.33v-1.01c0-.592-.03-1.141-.11-1.339-.067-.153-.227-.197-.425-.234l-.198-.029c-.058-.059-.043-.212 0-.256.396.014.68.022.98.022.272 0 .535-.008.82-.022.044.044.059.197 0 .256l-.131.022c-.19.044-.33.088-.396.242-.08.197-.11.746-.11 1.339v1.749M21.537 3.59c-2.848-1.367-5.425-.715-8.306.148-2.902.868-5.482 1.337-8.381.154l.79 1.41.87 1.557.79 1.41c2.309.652 4.22-.194 6.271-1.22 2.463-1.23 4.688-2.337 7.502-1.696-2.378-1.19-4.534-.895-7.02-.22 2.434-1.24 4.726-2.204 7.484-1.543M13.16 20.478l-2.272-4.385H9.91l2.283 4.826s.23.455.724.203c.493-.25.245-.644.245-.644M4.634 4.025s-.068-.159-.26-.053c-.16.089-.077.253-.077.253l3.004 6.351h.728L4.634 4.025\"},\"child\":[]}]})(props);\n};\nexport function SiNetcup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.25 0A5.239 5.239 0 0 0 0 5.25v13.5A5.239 5.239 0 0 0 5.25 24h13.5A5.239 5.239 0 0 0 24 18.75V5.25A5.239 5.239 0 0 0 18.75 0H5.25zm-.045 5.102h9.482c1.745 0 2.631.907 2.631 2.753v8.352h1.477v2.691h-4.666V8.58c0-.514-.298-.785-.889-.785H9.873v11.103H6.682V7.795H5.205V5.102z\"},\"child\":[]}]})(props);\n};\nexport function SiNetdata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.764 21.827H9.922L0 2.173h14.084c5.476.01 9.913 4.565 9.916 10.183-.009 5.235-4.14 9.47-9.238 9.47z\"},\"child\":[]}]})(props);\n};\nexport function SiNeteasecloudmusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.046 9.388a3.919 3.919 0 0 0-.66.19c-.809.312-1.447.991-1.666 1.775a2.269 2.269 0 0 0-.074.81c.048.546.333 1.05.764 1.35a1.483 1.483 0 0 0 2.01-.286c.406-.531.355-1.183.24-1.636-.098-.387-.22-.816-.345-1.249a64.76 64.76 0 0 1-.269-.954zm-.82 10.07c-3.984 0-7.224-3.24-7.224-7.223 0-.98.226-3.02 1.884-4.822A7.188 7.188 0 0 1 9.502 5.6a.792.792 0 1 1 .587 1.472 5.619 5.619 0 0 0-2.795 2.462 5.538 5.538 0 0 0-.707 2.7 5.645 5.645 0 0 0 5.638 5.638c1.844 0 3.627-.953 4.542-2.428 1.042-1.68.772-3.931-.627-5.238a3.299 3.299 0 0 0-1.437-.777c.172.589.334 1.18.494 1.772.284 1.12.1 2.181-.519 2.989-.39.51-.956.888-1.592 1.064a3.038 3.038 0 0 1-2.58-.44 3.45 3.45 0 0 1-1.44-2.514c-.04-.467.002-.93.128-1.376.35-1.256 1.356-2.339 2.622-2.826a5.5 5.5 0 0 1 .823-.246l-.134-.505c-.37-1.371.25-2.579 1.547-3.007.329-.109.68-.145 1.025-.105.792.09 1.476.592 1.709 1.023.258.507-.096 1.153-.706 1.153a.788.788 0 0 1-.54-.213c-.088-.08-.163-.174-.259-.247a.825.825 0 0 0-.632-.166.807.807 0 0 0-.634.551c-.056.191-.031.406.02.595.07.256.159.597.217.82 1.11.098 2.162.54 2.97 1.296 1.974 1.844 2.35 4.886.892 7.233-1.197 1.93-3.509 3.177-5.889 3.177zM0 12c0 6.627 5.373 12 12 12s12-5.373 12-12S18.627 0 12 0 0 5.373 0 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiNetflix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.398 0v.006c3.028 8.556 5.37 15.175 8.348 23.596 2.344.058 4.85.398 4.854.398-2.8-7.924-5.923-16.747-8.487-24zm8.489 0v9.63L18.6 22.951c-.043-7.86-.004-15.913.002-22.95zM5.398 1.05V24c1.873-.225 2.81-.312 4.715-.398v-9.22z\"},\"child\":[]}]})(props);\n};\nexport function SiNetgear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.496 12.459h.678c-.035.362-.296.545-.67.545-.566 0-.849-.496-.849-.982 0-.479.244-.991.811-.991.347 0 .598.2.716.499l.817-.324c-.285-.588-.813-.88-1.493-.88-1.068 0-1.746.672-1.746 1.691 0 .987.699 1.657 1.74 1.657.555 0 1.017-.186 1.341-.616.295-.391.329-.782.338-1.24h-1.683v.641ZM6.86 11.122h.833v2.449h.874v-2.449h.834v-.692H6.86v.692Zm-4.565 1.229h-.009L.861 10.43H0v3.141h.861v-1.924H.87l1.425 1.924h.861V10.43h-.861v1.921Zm15.414-1.921-1.157 3.141h.889l.19-.578h1.149l.189.578h.889l-1.156-3.141h-.993ZM4.174 13.571h2.098v-.691H5.036v-.543h1.185v-.69H5.036v-.525h1.236v-.692H4.174v3.141Zm9.761 0h2.099v-.691h-1.237v-.543h1.185v-.69h-1.185v-.525h1.237v-.692h-2.099v3.141Zm8.954-2.174c0-.67-.497-.967-1.15-.967h-1.34v3.141h.86v-1.208h.062l.785 1.208h1.046l-.987-1.287c.47-.079.724-.453.724-.887Zm-5.054.971.358-1.096h.024l.359 1.096h-.741Zm3.646-.53h-.222v-.782h.247c.282 0 .522.049.522.391s-.265.391-.547.391Zm2.133-1.408c-.202 0-.386.157-.386.378 0 .218.186.38.386.38.202 0 .386-.16.386-.38 0-.225-.18-.378-.386-.378Zm0 .688c-.164 0-.315-.13-.315-.31 0-.183.149-.311.316-.311.164 0 .316.132.316.311 0 .183-.15.31-.317.31Zm.184-.404c0-.104-.101-.122-.174-.122h-.161v.416h.11v-.164h.033l.075.164h.121l-.089-.182c.049-.016.085-.054.085-.112Zm-.185.061h-.04v-.111h.033c.037 0 .079.006.079.057 0 .045-.039.054-.072.054Z\"},\"child\":[]}]})(props);\n};\nexport function SiNetlify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.49 19.04h-.23L5.13 17.9v-.23l1.73-1.71h1.2l.15.15v1.2L6.5 19.04ZM5.13 6.31V6.1l1.13-1.13h.23L8.2 6.68v1.2l-.15.15h-1.2L5.13 6.31Zm9.96 9.09h-1.65l-.14-.13v-3.83c0-.68-.27-1.2-1.1-1.23-.42 0-.9 0-1.43.02l-.07.08v4.96l-.14.14H8.9l-.13-.14V8.73l.13-.14h3.7a2.6 2.6 0 0 1 2.61 2.6v4.08l-.13.14Zm-8.37-2.44H.14L0 12.82v-1.64l.14-.14h6.58l.14.14v1.64l-.14.14Zm17.14 0h-6.58l-.14-.14v-1.64l.14-.14h6.58l.14.14v1.64l-.14.14ZM11.05 6.55V1.64l.14-.14h1.65l.14.14v4.9l-.14.14h-1.65l-.14-.13Zm0 15.81v-4.9l.14-.14h1.65l.14.13v4.91l-.14.14h-1.65l-.14-.14Z\"},\"child\":[]}]})(props);\n};\nexport function SiNette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.244 14.334c-.341.243-.558.39-.65.443-.488.29-.934.437-1.338.437-.226 0-.446-.053-.663-.155a1.17 1.17 0 0 1-.486-.403.988.988 0 0 1-.162-.556c0-.292.099-.663.296-1.113.282-.658.433-1.01.452-1.057a.497.497 0 0 1-.015-.127 2.511 2.511 0 0 0-.268.127 7.1 7.1 0 0 0-.774.578 13.77 13.77 0 0 0-.691.676 6.005 6.005 0 0 0-.085 1.001c0 .253.015.507.043.761l-1.705.268A6.198 6.198 0 0 1 0 13.706c0-.292.028-.588.085-.889.056-.3.16-.638.309-1.014.104-.263.249-.592.437-.987l1.959-.324c-.122.301-.211.526-.267.677a9.26 9.26 0 0 0-.254.691c.47-.433.94-.767 1.409-1.001.376-.188.714-.282 1.015-.282.17 0 .343.032.522.098.178.066.307.17.387.311.08.141.12.309.12.507 0 .282-.08.629-.24 1.043-.188.47-.371.939-.549 1.409 0 .066.024.106.07.12a.49.49 0 0 0 .141.02c.189 0 .469-.098.841-.294a1.74 1.74 0 0 1-.052-.424c0-.226.032-.441.098-.648.066-.207.166-.423.297-.648.234-.386.564-.714.986-.987a3.45 3.45 0 0 1 1.339-.521c.17-.019.3-.029.395-.029.31 0 .587.052.831.156.244.103.446.272.606.507.094.15.141.301.141.45 0 .236-.117.466-.352.691-.169.16-.397.311-.684.451a6.777 6.777 0 0 1-.853.352c-.206.066-.498.147-.873.24.122.254.296.459.522.614.225.154.464.232.718.232.386 0 .771-.099 1.156-.296.018-.01.312-.195.883-.557a4.035 4.035 0 0 1 .096-.641l.047-.214 2.035-.121-.151.525a1.982 1.982 0 0 0-.092.529c0 .226.045.383.135.471.089.09.217.135.387.135.244 0 .563-.103.958-.31l.454-.274c.003-.075.009-.156.018-.241.014-.135.043-.303.084-.5l.048-.213 2.034-.122c-.048.17-.098.345-.151.525-.06.211-.092.388-.092.529 0 .226.045.383.135.471.089.09.218.135.387.135.245 0 .565-.103.959-.31l.294-.178a1.505 1.505 0 0 1-.013-.203c0-.226.034-.441.099-.648.066-.207.165-.423.296-.648.234-.386.564-.714.986-.987.424-.272.87-.447 1.339-.521.17-.019.302-.029.396-.029.309 0 .586.052.831.156.243.103.446.272.605.507.094.15.141.301.141.45 0 .236-.117.466-.352.691-.168.16-.396.311-.683.451a6.902 6.902 0 0 1-.853.352c-.207.066-.498.147-.874.24.122.254.296.459.522.614.226.154.465.232.718.232.386 0 .771-.099 1.156-.296.019-.01.338-.211.958-.606v.634c-.056.038-.281.198-.675.479a4.575 4.575 0 0 1-.72.437c-.47.207-.987.31-1.55.31-.375 0-.709-.045-1.001-.133a2.078 2.078 0 0 1-.803-.473 1.58 1.58 0 0 1-.357-.456c-.414.3-.732.513-.954.64-.497.281-.949.422-1.352.422-.227 0-.41-.014-.62-.113-.358-.15-.607-.345-.748-.584a1.504 1.504 0 0 1-.158-.397c-.435.316-.768.54-.997.672-.498.281-.949.422-1.353.422-.227 0-.41-.014-.62-.113-.358-.15-.606-.345-.748-.584a1.505 1.505 0 0 1-.177-.493c-.099.067-.307.216-.625.443a4.667 4.667 0 0 1-.719.437c-.47.207-.987.31-1.55.31-.377 0-.71-.045-1.001-.133a2.089 2.089 0 0 1-.804-.473 1.66 1.66 0 0 1-.224-.245zm2.832-2.574a.786.786 0 0 0 .013-.169c0-.244-.102-.366-.309-.366a.757.757 0 0 0-.155.028c-.282.066-.503.245-.663.536a1.885 1.885 0 0 0-.239.915c.395-.102.681-.206.859-.309.292-.16.456-.371.494-.635zm12.782 0a.715.715 0 0 0 .014-.169c0-.244-.103-.366-.31-.366a.768.768 0 0 0-.155.028c-.281.066-.503.245-.662.536-.16.291-.24.597-.24.915.395-.102.682-.206.86-.309.291-.16.455-.371.493-.635zm-10.838.043l.283-1.113.578-.028.549-1.509 2.085-.366-.591 1.776.944-.043-.253 1.057c-1.198.082-2.395.155-3.595.226zm3.877 0l.281-1.113.578-.028.549-1.509 2.086-.366-.592 1.776.944-.043-.253 1.057c-1.201.082-2.408.156-3.593.226z\"},\"child\":[]}]})(props);\n};\nexport function SiNetto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.878 6.859a.708.708 0 0 0-.434.157.638.638 0 0 0-.228.397L.01 13.625a.633.633 0 0 0 .12.506.62.62 0 0 0 .47.217h20.24v.012c.18 0 .373-.012.553-.036a2.735 2.735 0 0 0 1.084-.35 2.66 2.66 0 0 0 .843-.794c.144-.217.265-.446.361-.686.096-.23.168-.47.217-.723.048-.24.084-.481.096-.734.012-.241 0-.494-.012-.747a2.32 2.32 0 0 0-.145-.602 1.554 1.554 0 0 0-.313-.505 2.07 2.07 0 0 0-.47-.374 2.123 2.123 0 0 0-.565-.216 5.148 5.148 0 0 0-.458-.085 6.125 6.125 0 0 0-.47-.024h-.192a4.234 4.234 0 0 0-.41.049c-.131.024-.264.048-.384.084a1.997 1.997 0 0 0-.374.143c-.12.06-.228.12-.337.194a3.082 3.082 0 0 0-.313.24c-.06.06-.132.12-.18.192l.024-.107a.633.633 0 0 0-.12-.507.62.62 0 0 0-.47-.216h-.602l.096-.53a.633.633 0 0 0-.12-.505.62.62 0 0 0-.47-.217h-.963a.708.708 0 0 0-.433.157.638.638 0 0 0-.23.397l-.133.699h-1.08l.095-.53a.633.633 0 0 0-.12-.506.62.62 0 0 0-.47-.217h-.963a.707.707 0 0 0-.433.157.639.639 0 0 0-.23.397l-.132.699h-.313a.707.707 0 0 0-.433.156.638.638 0 0 0-.229.397l-.036.205a1.803 1.803 0 0 0-.518-.481 2.168 2.168 0 0 0-.674-.253 3.455 3.455 0 0 0-.807-.085c-.096 0-.18 0-.277.011a3.202 3.202 0 0 0-.819.146 2.114 2.114 0 0 0-.385.143c-.12.06-.24.12-.348.194a2.98 2.98 0 0 0-.326.252 8.369 8.368 0 0 0-.29.3 3.58 3.58 0 0 0-.24.35c-.024.037-.036.073-.06.109 0 0 0 .012-.012 0-.012 0 0-.012 0-.012l.47-2.409a.633.633 0 0 0-.12-.505.62.62 0 0 0-.47-.216H5.658a.707.707 0 0 0-.433.157.638.638 0 0 0-.23.396l-.408 2.13-.494-2.141a.502.502 0 0 0-.096-.217.633.633 0 0 0-.145-.168.707.707 0 0 0-.433-.157zm-.012.458h1.469c.108 0 .217.084.24.192l.952 4.118c0 .011.024.011.024 0l.806-4.119a.243.243 0 0 1 .23-.192h1.07c.12 0 .18.084.17.192l-1.193 6.128a.243.243 0 0 1-.228.194H3.9a.257.257 0 0 1-.241-.194l-.94-4.056c0-.013-.022-.013-.022 0l-.795 4.056a.243.243 0 0 1-.23.194H.603c-.11 0-.18-.085-.158-.194L1.637 7.51a.243.243 0 0 1 .229-.192zm14.846.42h.963c.108 0 .18.085.157.194l-.205 1.035c0 .012 0 .012.012.012h1.132c.108 0 .18.084.156.193l-.132.674a.243.243 0 0 1-.23.192h-1.131c-.012 0-.012 0-.012.012l-.41 2.144c-.06.324.085.552.314.59.325.06.674.01.95 0 .013 0 .013.011.013.011l-.144.746c-.012.06-.036.109-.097.133-.132.072-.445.192-1.06.192-1.3 0-1.469-.95-1.3-1.842l.385-1.986c0-.013 0-.012-.012-.012h-1.963v.047c-.012 0-.012 0-.012.013l-.409 2.143c-.06.325.084.554.313.59.325.06.674.012.951 0 .012 0 .012.012.012.012l-.144.746c-.012.06-.036.11-.097.133-.132.072-.445.192-1.06.192-1.3 0-1.456-.95-1.3-1.842l.386-1.987c0-.012 0-.01-.012-.01h-.674c-.109 0-.18-.086-.157-.194l.132-.674a.243.243 0 0 1 .23-.193h.673c.012 0 .012 0 .012-.011l.205-1.048a.243.243 0 0 1 .23-.193h.962c.11 0 .18.085.157.194l-.205 1.035c0 .011 0 .011.012.011h1.964c.012 0 .012 0 .012-.012l.204-1.047a.243.243 0 0 1 .229-.193zm4.919 1.21c.25.003.508.037.752.09.674.157 1.095.614 1.155 1.3.073.917-.072 1.819-.577 2.602-.374.566-.94.879-1.602.95-.373.037-.758.049-1.132-.023-.915-.17-1.348-.734-1.348-1.818.024-.494.12-1.095.36-1.65.41-.938 1.157-1.396 2.144-1.444a2.91 2.91 0 0 1 .248-.007zm-12.086.008c.241-.004.49.016.725.07.818.145 1.252.77 1.155 1.674-.12.95-.77 1.276-1.54 1.312-.494.024-1.626.012-1.783.012 0 0-.011 0-.011.012-.025.47.096.855 1.035.867.855.013 1.24-.083 1.722-.216.012-.013.024 0 .024.011l-.169.844c-.012.071-.06.12-.132.143a5.77 5.77 0 0 1-2.12.23c-1.312-.084-1.745-.831-1.733-1.673a4.65 4.65 0 0 1 .36-1.758c.423-.987 1.205-1.457 2.228-1.517a3.14 3.14 0 0 1 .24-.01zM9.36 9.998a1.036 1.036 0 0 0-.884.472c-.157.24-.205.433-.23.554 0 0 .001.012.013.012h1.348c.314.012.47-.097.506-.373.048-.325-.12-.553-.397-.625a1.513 1.513 0 0 0-.356-.04zm12.043.05c-.372.007-.706.185-.85.628-.145.42-.23.879-.265 1.336-.05.506.24.759.794.747.35.012.638-.157.807-.53.217-.482.289-1 .289-1.517 0-.337-.145-.542-.397-.614a1.416 1.416 0 0 0-.378-.05zm-13.361 5.47c-.096 0-.144.072-.18.156l-.241.747-.253-.76c-.024-.071-.084-.131-.168-.131-.097 0-.157.06-.17.156l-.276 1.168a.334.334 0 0 0-.012.108c0 .097.084.169.18.169.12 0 .17-.096.193-.193l.145-.662.204.71c.024.073.073.157.157.157a.166.166 0 0 0 .157-.12c0-.012.012-.025.012-.037l.216-.71.157.662c.024.109.06.193.192.193a.208.208 0 0 0 .157-.193c0-.036-.012-.072-.024-.108l-.277-1.156c-.024-.084-.084-.156-.169-.156zm8.85.012a.19.19 0 0 0-.192.192c0 .109.084.18.193.18.096 0 .18-.083.18-.18 0-.108-.084-.192-.18-.192zm-1.517.012c-.133 0-.205.072-.205.204V16.9c0 .133.072.205.205.205h.35c.24 0 .433-.048.614-.23a.757.757 0 0 0 .24-.553.79.79 0 0 0-.47-.722c-.132-.06-.229-.06-.385-.06zm-4.443.012c-.096 0-.157.084-.157.168v1.24c0 .097.06.169.157.169.096 0 .156-.084.156-.17v-.3l.374.398c.048.048.084.084.144.084.096-.024.17-.096.17-.18 0-.06-.049-.11-.086-.145l-.325-.313.301-.217c.06-.036.11-.084.11-.156a.16.16 0 0 0-.158-.157c-.06 0-.096.036-.144.072l-.386.3v-.625c0-.096-.048-.168-.156-.168zm12.245.06c-.096 0-.156.072-.156.168v.204c-.096 0-.18.036-.18.145 0 .108.084.144.18.144v.674c0 .097.06.169.156.169.097 0 .157-.084.157-.17v-.673h.06c.084 0 .157-.06.157-.144 0-.097-.073-.145-.157-.145h-.06v-.205c0-.096-.06-.168-.157-.168zm-7.426.265c.256.008.467.163.467.445 0 .193-.12.373-.3.434a.667.667 0 0 1-.218.024h-.157v-.903zm1.888.072c-.205 0-.41.108-.41.337 0 .12.073.229.17.277.083.048.18.06.276.096.048.012.097.024.097.085 0 .048-.06.096-.11.096-.18 0-.192-.133-.336-.157-.084-.012-.17.049-.17.133 0 .204.302.3.47.3.24 0 .447-.132.447-.384.036-.23-.145-.301-.301-.338l-.157-.036c-.036-.012-.096-.024-.096-.072 0-.048.036-.084.084-.084.156-.012.18.084.313.084a.128.128 0 0 0 .108-.108c.012-.157-.253-.23-.385-.23zm1.144 0a.586.586 0 0 0-.578.578c0 .325.265.59.59.59.132.012.457-.096.457-.277a.16.16 0 0 0-.156-.157c-.108 0-.145.12-.301.12a.267.267 0 0 1-.265-.264c0-.156.12-.265.277-.265.144 0 .18.108.277.108a.16.16 0 0 0 .156-.156c0-.18-.313-.277-.457-.277zm-8.694.012a.143.143 0 0 0-.144.12.206.206 0 0 0-.013.085v.77c0 .097.06.169.157.169.096 0 .157-.085.157-.17v-.516c0-.05 0-.145.072-.145.06 0 .096.06.168.06.097.012.193-.072.193-.18 0-.11-.096-.193-.205-.193a.358.358 0 0 0-.24.096.156.156 0 0 0-.145-.096zm2.312 0a.586.586 0 0 0-.578.578c0 .313.265.59.59.59.06 0 .108-.012.168-.024.11-.024.277-.12.277-.253-.012-.084-.048-.12-.144-.12h-.024c-.012 0-.012 0-.024.012-.024.012-.036.024-.06.036a.195.195 0 0 1-.085.048c-.024.012-.06.012-.108.012H12.4a.34.34 0 0 1-.193-.084l-.012-.012.566-.253c.072-.036.12-.072.12-.145 0-.24-.277-.385-.48-.385zm1.107 0c-.313 0-.505.253-.505.542v.433c0 .097.06.169.156.169.097 0 .157-.085.157-.17v-.468c0-.11.072-.205.192-.205.073 0 .145.048.17.108a.404.404 0 0 1 .023.169v.396c0 .097.06.169.157.169.12.012.168-.072.168-.157v-.421a.534.534 0 0 0-.518-.566zm6.406 0a.591.591 0 0 0-.59.59c0 .325.277.566.59.566a.56.56 0 0 0 .578-.566.589.589 0 0 0-.578-.59zm2.336 0c-.313 0-.505.253-.505.542v.433c0 .097.06.169.156.169s.157-.085.157-.17v-.468c0-.11.072-.205.192-.205a.19.19 0 0 1 .169.108c.024.049.024.109.024.169v.396c0 .097.06.169.156.169.109.012.169-.072.169-.157v-.421a.534.534 0 0 0-.157-.41.522.522 0 0 0-.36-.156zm-13.136.012c-.325 0-.542.265-.542.578 0 .313.229.59.542.59.12 0 .23-.048.325-.132.024.072.072.12.156.12.11-.012.17-.084.17-.18v-.807c0-.097-.06-.17-.17-.17-.084 0-.132.037-.156.12a.454.454 0 0 0-.325-.12zm11.655 0c-.096 0-.156.084-.156.169v.42c0 .158.036.29.144.41a.522.522 0 0 0 .36.157c.314 0 .507-.253.507-.554v-.433c0-.097-.06-.17-.156-.17-.097 0-.157.085-.157.17v.456c0 .109-.072.205-.193.205a.189.189 0 0 1-.168-.11c-.024-.048-.024-.108-.024-.156v-.397c0-.096-.06-.168-.157-.168zm-3.876.012c-.097 0-.157.084-.157.169v.794c0 .097.06.169.157.169.096 0 .156-.084.156-.17v-.793c0-.097-.06-.17-.156-.17zm-4.468.24c.084 0 .144.037.18.097l.012.012-.517.217v-.024c0-.156.144-.301.325-.301zm-3.25.037a.287.287 0 0 1 .264.277c0 .145-.12.265-.265.265-.156 0-.265-.12-.265-.277 0-.144.12-.265.265-.265zm10.756.024c.143.005.248.13.248.265 0 .145-.12.265-.265.265-.144 0-.276-.108-.276-.253a.27.27 0 0 1 .264-.277h.03zm-5.496.036c-.096 0-.168.06-.168.157 0 .096.072.156.168.156h.313c.085 0 .17-.06.17-.156s-.073-.157-.17-.157z\"},\"child\":[]}]})(props);\n};\nexport function SiNeutralinojs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.563 1.396a.951.951 0 0 0-.534.184c-.404.307-.501.9-.425 1.654.075.755.335 1.704.751 2.8.357.937.835 1.984 1.407 3.095-1.17.146-2.24.338-3.158.57-1.08.274-1.958.6-2.583.973C.397 11.045 0 11.484 0 12s.397.955 1.021 1.328c.55.33 1.308.618 2.217.87a.95.95 0 0 0-.006.097c0 .485.365.887.82.887.368 0 .678-.26.784-.616.593.114 1.227.213 1.898.297a30.81 30.81 0 0 0-1.408 3.067c-.421 1.093-.686 2.04-.765 2.795-.08.754.016 1.347.42 1.656.201.154.46.208.734.181.274-.026.572-.125.896-.287.649-.323 1.407-.894 2.244-1.67.962-.89 2.026-2.058 3.118-3.421 1.086 1.37 2.146 2.543 3.103 3.439.834.78 1.588 1.355 2.235 1.682.323.163.62.265.894.293.274.027.534-.025.736-.178.405-.307.502-.9.426-1.654-.054-.54-.206-1.18-.437-1.9a.91.91 0 0 0 .343-.72.924.924 0 0 0-.238-.625.795.795 0 0 0-.701-.251c-.312-.75-.69-1.557-1.125-2.4a26.536 26.536 0 0 0 3.187-.575c1.08-.273 1.958-.597 2.583-.97.624-.374 1.021-.813 1.021-1.329s-.397-.957-1.021-1.33c-.625-.373-1.503-.696-2.583-.969a26.47 26.47 0 0 0-3.156-.568 30.787 30.787 0 0 0 1.406-3.063c.422-1.093.687-2.04.766-2.795.08-.754-.017-1.347-.42-1.656a.948.948 0 0 0-.531-.185 1.34 1.34 0 0 0-.203.004c-.274.026-.57.127-.895.289-.51.254-1.092.665-1.722 1.205a.776.776 0 0 0-.418-.123c-.456 0-.82.4-.82.886 0 .118.02.231.06.334a35.03 35.03 0 0 0-2.465 2.791c-1.086-1.37-2.146-2.543-3.103-3.439-.834-.78-1.588-1.355-2.235-1.682-.323-.163-.62-.265-.894-.293a1.342 1.342 0 0 0-.204-.006zm.021.385a.988.988 0 0 1 .143.004c.205.02.462.105.757.254.592.298 1.33.855 2.147 1.62.955.893 2.022 2.077 3.119 3.466-.428.544-.859 1.12-1.29 1.72a41.53 41.53 0 0 0-3.29.235 30.845 30.845 0 0 1-1.453-3.184c-.409-1.075-.658-2.002-.729-2.7-.07-.7.05-1.136.276-1.307a.55.55 0 0 1 .32-.108zm12.854.033a.55.55 0 0 1 .32.108c.225.172.343.61.27 1.308-.074.699-.33 1.624-.743 2.698a30.8 30.8 0 0 1-1.455 3.15 41.54 41.54 0 0 0-3.312-.234 49.26 49.26 0 0 0-1.274-1.717 35.134 35.134 0 0 1 2.436-2.772.783.783 0 0 0 .543.223c.456 0 .82-.401.82-.887a.938.938 0 0 0-.133-.484c.61-.519 1.163-.909 1.625-1.139.297-.147.555-.23.76-.25a.993.993 0 0 1 .142-.004zm-6.442 5.622c.344.443.69.913 1.035 1.394-.34-.007-.683-.014-1.031-.014-.355 0-.704.006-1.05.014.35-.481.699-.95 1.046-1.394zM12 9.203c.445 0 .883.008 1.314.02.265.375.53.76.793 1.154.366.55.71 1.093 1.041 1.633a53.654 53.654 0 0 1-1.046 1.623c-.263.39-.527.768-.791 1.138-.431.013-.868.022-1.311.022-.456 0-.905-.009-1.348-.022a52.874 52.874 0 0 1-.789-1.148 51.736 51.736 0 0 1-1.04-1.633 52.64 52.64 0 0 1 1.84-2.765c.439-.013.884-.022 1.337-.022zm-1.824.04c-.21.296-.418.597-.625.905-.334.496-.647.988-.953 1.477a46.8 46.8 0 0 1-1.239-2.178 41.23 41.23 0 0 1 2.817-.205zm3.625 0a41.29 41.29 0 0 1 2.838.202 46.719 46.719 0 0 1-1.264 2.198 53.296 53.296 0 0 0-1.574-2.4zm3.248.251c1.213.146 2.317.34 3.252.576 1.057.268 1.907.587 2.478.928.571.341.834.689.834.998 0 .31-.263.655-.834.996-.57.342-1.421.662-2.478.93-.943.239-2.056.433-3.281.58a47.032 47.032 0 0 0-1.416-2.492 46.92 46.92 0 0 0 1.445-2.516zM6.95 9.496c.424.805.899 1.64 1.418 2.494a46.96 46.96 0 0 0-1.443 2.508 29.645 29.645 0 0 1-2.059-.318.912.912 0 0 0-.23-.508.795.795 0 0 0-.584-.262.806.806 0 0 0-.696.418c-.894-.247-1.63-.53-2.136-.832C.65 12.655.387 12.31.387 12c0-.31.263-.654.834-.996.57-.342 1.421-.662 2.478-.93.935-.237 2.039-.431 3.252-.578zm4.34.8c-.576 0-1.041.5-1.041 1.112 0 .484.29.897.695 1.049v.063c0 .612.466 1.109 1.041 1.109.576 0 1.041-.497 1.041-1.11 0-.016 0-.034-.002-.05.424-.141.73-.565.73-1.063 0-.294-.107-.575-.302-.783a1.013 1.013 0 0 0-.738-.326 1 1 0 0 0-.711.3 1.006 1.006 0 0 0-.713-.3zm-2.695 2.061a50.566 50.566 0 0 0 1.572 2.397c-.99-.04-1.941-.108-2.832-.205.381-.71.803-1.443 1.26-2.192zm6.779.02c.448.743.862 1.472 1.236 2.176a41.63 41.63 0 0 1-2.814.199c.208-.296.418-.595.625-.902.333-.495.647-.986.953-1.473zm-8.23 2.537c1.033.117 2.141.198 3.304.236.427.6.854 1.179 1.278 1.723-1.103 1.382-2.176 2.561-3.135 3.45-.821.76-1.562 1.31-2.155 1.605-.296.147-.554.23-.76.25-.205.02-.35-.018-.462-.104-.225-.172-.343-.61-.27-1.308.074-.698.329-1.624.742-2.698.366-.948.861-2.018 1.458-3.154zm9.656.004c.459.884.854 1.727 1.178 2.504a.91.91 0 0 0-.348.724c0 .486.364.887.82.887a.783.783 0 0 0 .123-.01c.218.686.36 1.293.408 1.782.07.698-.05 1.135-.275 1.306-.113.086-.258.124-.463.104-.205-.02-.462-.105-.758-.254-.59-.298-1.329-.855-2.146-1.62-.955-.893-2.023-2.077-3.12-3.466.43-.545.862-1.123 1.294-1.725a41.607 41.607 0 0 0 3.287-.232zm-3.776.246a48.82 48.82 0 0 1-1.05 1.4 48.875 48.875 0 0 1-1.04-1.398 47.325 47.325 0 0 0 2.09-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiNewbalance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.169 10.306l1.111-1.937 3.774-.242.132-.236-3.488-.242.82-1.414h6.47c1.99 0 3.46.715 2.887 2.8-.17.638-.979 2.233-3.356 2.899.507.06 1.76.616 1.54 2.057-.384 2.558-3.69 3.774-5.533 3.774l-7.641.006-.38-1.48 4.005-.28.137-.237-4.346-.264-.467-1.755 6.178-.363.137-.231-11.096-.693.534-.925 11.948-.775.138-.231-3.504-.231m5 .385l1.1-.006c.738-.005 1.502-.34 1.783-1.018.259-.632-.088-1.171-.55-1.166h-1.067l-1.266 2.19zm-1.27 2.195l-1.326 2.305h1.265c.589 0 1.64-.292 1.964-1.128.302-.781-.253-1.177-.638-1.177h-1.266zM6.26 16.445l-.77 1.315L0 17.77l.534-.923 5.726-.402zm.385-10.216l4.417.006.336 1.248-5.276-.33.523-.924zm5 2.245l.484 1.832-7.542-.495.528-.92 6.53-.417zm-3.84 5.281l-.957 1.661-5.32-.302.534-.924 5.743-.435z\"},\"child\":[]}]})(props);\n};\nexport function SiNewegg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.082 5.873c-.091 0-.183.004-.276.01-.73.05-1.504.281-2.256.64a9.635 9.635 0 0 0-3.024 2.3 7.076 7.076 0 0 0-.944 1.343c.393-.019.9-.043 1.023-.043.318-.003.547.097.71.246 0 0 .3-.033.416-.087l.002-.002a1.96 1.96 0 0 1 .799-.175c.354-.004.632.071.838.197a.515.515 0 0 1 .361-.15l.783-.01a.53.53 0 0 1 .209.042.508.508 0 0 1 .205-.046l.748-.005c.069 0 .135.013.197.039a.495.495 0 0 1 .199-.043l.783-.006a.52.52 0 0 1 .371.15l.102-.05c.246-.11.51-.17.793-.175h.008c.381 0 .673.09.887.233l.17.142.057-.058a1.17 1.17 0 0 1 .278-.197c-.044-1.63-.56-3.1-1.686-3.82-.514-.334-1.114-.48-1.753-.475Zm-4.481.039a4.28 4.28 0 0 0-.276.008c-.703.048-1.447.263-2.173.598-1.394.646-2.722 1.736-3.588 2.946a7.104 7.104 0 0 0-.238.357C3.661 12.5 4.193 15.878 6.52 17.37a4.482 4.482 0 0 0 2.222.695 10.312 10.312 0 0 1-.187.007 5.146 5.146 0 0 0 2.457-.435 4.318 4.318 0 0 1-.522-.284 4.515 4.515 0 0 1-1.466-1.541 5.106 5.106 0 0 1-.579-1.524h-.12a.518.518 0 0 1-.506-.647l.779-3.061a.52.52 0 0 1 .476-.39c.07-.13.142-.256.221-.383a8.027 8.027 0 0 1 1.118-1.396c.84-.848 1.88-1.572 2.946-2.024l-.002-.003c-.517-.331-1.117-.474-1.755-.472Zm-4.384.036C4.976 5.977 2.259 7.807.969 9.88c-1.666 2.675-1.13 6.055 1.197 7.546 1.34.86 2.988.903 4.459.27a4.4 4.4 0 0 1-.603-.324c-2.324-1.489-2.86-4.866-1.193-7.545.896-1.442 2.482-2.762 4.116-3.445-.51-.308-1.1-.442-1.728-.434Zm15.314 4.579a.744.744 0 0 0-.521.197c-.134.128-.24.34-.315.629l-.282 1.11a1.47 1.47 0 0 0-.06.468.374.374 0 0 0 .152.264c.09.068.217.1.383.097a.81.81 0 0 0 .288-.057 1.126 1.126 0 0 0 .29-.168l-.06.237a.849.849 0 0 1-.102.264c-.034.041-.088.062-.156.063-.098.002-.127-.068-.093-.207l-.889.01c-.07.297-.031.495.122.594.148.101.371.15.663.146a1.988 1.988 0 0 0 .61-.087 1.132 1.132 0 0 0 .429-.241.893.893 0 0 0 .227-.294 6.298 6.298 0 0 0 .18-.619l.603-2.36-.852.005-.124.233a.513.513 0 0 0-.493-.284zm-2.414.02a.74.74 0 0 0-.517.195c-.136.13-.239.34-.315.629l-.284 1.11a1.396 1.396 0 0 0-.06.468.364.364 0 0 0 .152.266c.089.068.215.1.381.1a.798.798 0 0 0 .286-.06 1.135 1.135 0 0 0 .294-.166l-.063.235a.804.804 0 0 1-.101.266c-.033.04-.084.062-.152.063-.098.002-.13-.067-.096-.205l-.904.004v.317c.007.141.039.216.138.282.151.1.373.145.665.142a1.9 1.9 0 0 0 .609-.083 1.166 1.166 0 0 0 .426-.242.888.888 0 0 0 .229-.298 5.244 5.244 0 0 0 .182-.617l.6-2.359-.847.004-.126.233a.52.52 0 0 0-.2-.213.592.592 0 0 0-.297-.07zm-1.988.02c-.21.004-.406.046-.588.128a1.08 1.08 0 0 0-.438.361c-.11.154-.202.365-.268.631l-.23.893c-.055.23-.085.4-.085.52a.665.665 0 0 0 .09.324.545.545 0 0 0 .284.235 1.243 1.243 0 0 0 .49.08 1.396 1.396 0 0 0 .52-.09 1.143 1.143 0 0 0 .393-.264 1.267 1.267 0 0 0 .248-.326 2.499 2.499 0 0 0 .146-.436l.059-.224-.87.009-.104.403a.995.995 0 0 1-.113.307.171.171 0 0 1-.159.08c-.054 0-.085-.018-.095-.058-.008-.04.005-.13.04-.268l.169-.661 1.18-.01.102-.408c.075-.297.1-.526.075-.69a.565.565 0 0 0-.25-.391c-.143-.096-.34-.144-.596-.144zm-5.59.057c-.21.002-.406.044-.59.128-.182.084-.33.203-.441.36-.11.155-.2.366-.266.632l-.23.895c-.058.225-.085.4-.085.517a.681.681 0 0 0 .09.327.556.556 0 0 0 .284.233c.135.056.298.081.49.081a1.446 1.446 0 0 0 .52-.091c.147-.06.277-.146.391-.264.114-.114.2-.223.248-.326a2.454 2.454 0 0 0 .146-.437l.057-.225-.87.006-.104.406a1.032 1.032 0 0 1-.114.308.177.177 0 0 1-.156.08c-.054.002-.088-.017-.097-.057-.008-.04.005-.13.04-.268l.169-.663 1.183-.01.105-.406c.075-.297.102-.528.075-.692a.56.56 0 0 0-.25-.388c-.142-.101-.34-.149-.596-.146zm-1.93.019a.752.752 0 0 0-.351.085c-.11.058-.215.141-.31.253l.089-.282-.935.01-.781 3.06.919-.008.527-2.07a2.446 2.446 0 0 1 .132-.424.155.155 0 0 1 .142-.08c.061-.003.091.023.093.066.002.047-.025.176-.079.386l-.54 2.12.917-.004.548-2.147c.067-.269.104-.46.104-.572a.374.374 0 0 0-.12-.284c-.08-.074-.197-.111-.355-.11zm6.252 0-.785.006a20.25 20.25 0 0 0-.655 1.763l.26-1.76-.749.005c-.394 1.058-.616 1.645-.66 1.763a558.387 558.387 0 0 1 .248-1.76l-.783.011-.391 3.057.983-.01.587-1.485c-.08.593-.144 1.073-.185 1.44 0 .016.011.022.01.035h.97zm5.968.428c.054 0 .084.016.092.054a.955.955 0 0 1-.045.27l-.241.948a1.373 1.373 0 0 1-.116.334c-.03.051-.077.073-.136.077-.054 0-.082-.019-.09-.06a.909.909 0 0 1 .044-.268l.263-1.029a.88.88 0 0 1 .098-.26.156.156 0 0 1 .131-.066zm-2.41.018c.054 0 .085.02.09.059a.89.89 0 0 1-.043.268l-.243.949a1.405 1.405 0 0 1-.112.337.162.162 0 0 1-.138.075c-.052 0-.084-.022-.09-.061a.966.966 0 0 1 .043-.268l.264-1.03a.725.725 0 0 1 .1-.26.156.156 0 0 1 .13-.07zm-2.393.02h.012c.05 0 .079.023.083.071a1.18 1.18 0 0 1-.055.307l-.055.227h-.267l.059-.225a1.511 1.511 0 0 1 .1-.319c.024-.038.066-.058.123-.06zm-5.583.057c.049 0 .074.023.079.069.005.047-.011.15-.05.308l-.06.226-.263.004.056-.226a1.458 1.458 0 0 1 .104-.32c.022-.039.068-.059.134-.06zm.442 2.806a1.674 1.674 0 0 1-.38.215l-.005.002c-.2.079-.433.124-.704.127h-.004c-.272 0-.501-.042-.69-.121a1.233 1.233 0 0 1-.25-.136.522.522 0 0 1-.418.215l-.917.004a.509.509 0 0 1-.137-.016.54.54 0 0 1-.136.018l-.305.004c.082.392.206.769.372 1.124a4.566 4.566 0 0 0 1.675 1.943 4.427 4.427 0 0 0 2.22.694c1.87.082 3.828-.952 5.008-2.846.138-.222.27-.46.388-.708l-.014-.008c-.175-.115-.28-.237-.331-.426l-.16.075a1.944 1.944 0 0 1-.706.126 1.738 1.738 0 0 1-.698-.122c-.204-.085-.765.091-.982.091h-.97a.534.534 0 0 1-.194-.038.52.52 0 0 1-.211.048l-.986.01a.521.521 0 0 1-.465-.275z\"},\"child\":[]}]})(props);\n};\nexport function SiNewjapanprowrestling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.95.086C10.875.082 9.814.24 8.69.563c-3.17.913-6.005 3.227-7.422 6.064a13 13 0 0 0-1.184 3.728c-.122.8-.11 2.422.025 3.3.204 1.327.562 2.498 1.08 3.536a11.8 11.8 0 0 0 2.295 3.187c2.015 2.007 4.58 3.207 7.502 3.51.516.053 1.876.018 2.479-.065 4.408-.602 8.04-3.365 9.696-7.376 1.065-2.578 1.12-5.86.14-8.506a15 15 0 0 0-1.058-2.156 12.04 12.04 0 0 0-4.65-4.299c-1.137-.59-2.306-.98-3.67-1.218A11.7 11.7 0 0 0 11.95.086m.05.207c6.465 0 11.705 5.24 11.705 11.707 0 6.466-5.24 11.706-11.705 11.706C5.534 23.706.293 18.466.293 12S5.533.293 12 .293m-.098.211c-.436 0-.86.018-1.162.053A12 12 0 0 0 2.594 5.24c-.779 1.04-1.52 2.592-1.86 3.9-.253.976-.316 1.513-.318 2.73-.003 1.18.028 1.516.232 2.523.68 3.336 2.987 6.31 6.096 7.856 1.43.71 2.564 1.036 4.334 1.244.41.048 2.023-.016 2.592-.103 3.306-.508 6.203-2.323 7.997-5.01.416-.622 1.028-1.803 1.268-2.45.215-.58.448-1.497.556-2.203.12-.774.12-2.62.004-3.372-.386-2.488-1.483-4.662-3.242-6.425-1.821-1.826-4.14-2.96-6.835-3.346a11 11 0 0 0-1.328-.08zm-.02.113c1.977-.005 3.637.39 5.407 1.287a11.25 11.25 0 0 1 4.638 4.34c1.073 1.834 1.55 3.598 1.553 5.74.002 1.91-.318 3.314-1.12 4.928-.956 1.925-2.185 3.34-3.901 4.491-2.154 1.446-5.024 2.185-7.494 1.93-2.242-.232-4.313-1.066-6.125-2.467-.533-.412-1.422-1.303-1.887-1.893-.68-.864-1.347-2.05-1.709-3.028-.856-2.316-.942-5.08-.226-7.263.166-.508.567-1.497.771-1.903C3.229 3.92 6.165 1.67 9.473.887 10.336.683 10.9.62 11.88.617m.074.211a10.5 10.5 0 0 0-1.518.106c-1.68.24-3.25.85-4.76 1.845-1.313.87-2.577 2.173-3.36 3.467-.498.827-1.036 2.129-1.284 3.11-.436 1.726-.404 3.704.088 5.568.776 2.94 2.922 5.576 5.692 6.99 1.437.733 2.666 1.076 4.496 1.255.35.034.967.027 1.49-.018a11.3 11.3 0 0 0 4.22-1.166 11.04 11.04 0 0 0 5.017-4.885c.848-1.622 1.212-3.13 1.215-5.047.004-1.895-.314-3.284-1.127-4.92-.934-1.882-2.11-3.227-3.811-4.364A11.66 11.66 0 0 0 11.955.83m.668.463q.116 0 .242.022c.37.06.467.15.496.46l.024.233h-.233c-.205 0-.233-.01-.246-.102-.012-.088-.048-.105-.234-.117-.17-.01-.224.002-.246.06-.038.1.035.143.32.18.469.063.627.21.627.594 0 .3-.078.468-.252.55-.18.087-.66.095-.894.015-.175-.06-.322-.285-.32-.49 0-.198.058-.245.265-.21.144.025.188.055.2.13.025.179.542.205.542.028 0-.11-.105-.16-.412-.195-.295-.033-.467-.143-.524-.34-.055-.192.007-.549.112-.654.108-.108.3-.166.533-.164m1.492.193c.038 0 .2.027.393.07.826.18.93.25.93.62 0 .305-.153.718-.3.814-.137.09-.293.09-.618.004l-.262-.068a2 2 0 0 0-.067.275c-.06.295-.075.304-.35.225-.081-.024-.148-.06-.148-.078 0-.02.094-.442.207-.938.114-.495.205-.91.205-.922zm-3.13.26.03.16c.036.19-.002.22-.312.264-.153.02-.22.053-.22.102 0 .056.04.064.218.04.12-.018.253-.043.297-.056.067-.02.08.006.08.16V2.6l-.268.052-.267.055.033.19c.04.216.006.257-.213.257l-.142.002-.1-.603c-.055-.332-.093-.61-.084-.62.01-.009.227-.056.482-.103zm3.56.367q-.055 0-.074.018a.4.4 0 0 0-.051.174c-.012.11.006.14.1.166.244.07.366.047.423-.078.047-.102.042-.128-.027-.178a.8.8 0 0 0-.371-.102m-5.11.033c.19 0 .23.017.33.15.243.33.286.75.094.927-.198.183-.6.29-.85.222-.105-.028-.312-.426-.345-.668a.57.57 0 0 1 .027-.306c.08-.147.485-.324.745-.324m6.803.075c.182-.008.608.135.785.27.215.162.273.342.207.636-.063.285-.407.896-.582 1.033-.153.12-.377.12-.691 0a1.15 1.15 0 0 1-.408-.28c-.16-.174-.168-.2-.14-.398.064-.474.527-1.205.796-1.257zm-9.113.258h.03c.154.004.28.088.398.254l.12.17-.194.12c-.192.12-.198.12-.272.034-.073-.085-.08-.086-.215-.006-.21.124-.286.224-.256.346.037.147.39.63.46.63.108 0 .443-.25.443-.332 0-.106-.072-.103-.233.012l-.13.094-.118-.174a1 1 0 0 1-.117-.205c0-.036.626-.45.68-.45.034 0 .282.36.37.536a.8.8 0 0 1 .052.285c0 .238-.173.44-.543.64-.283.15-.374.167-.545.1-.266-.108-.885-1.005-.885-1.283 0-.184.133-.36.414-.547.217-.145.393-.22.54-.224m2.276.09h-.01a1 1 0 0 0-.138.04c-.157.054-.174.11-.092.29.053.115.145.145.287.09.103-.04.08-.266-.04-.42Zm6.96.19a.22.22 0 0 0-.141.05c-.137.123-.342.626-.291.71.047.078.322.233.412.233.03 0 .126-.117.215-.26.224-.36.254-.51.115-.617a.5.5 0 0 0-.31-.117m1.695.398c.065 0 .87.65.92.742.038.07.036.143-.004.276-.065.215-.344.54-.465.54-.06 0-.088.033-.088.108 0 .06-.068.2-.152.31a3 3 0 0 0-.21.306c-.071.135-.108.13-.302-.04l-.162-.142.17-.23c.185-.252.178-.3-.051-.47l-.125-.093-.125.14a3 3 0 0 0-.2.247l-.075.107-.184-.146-.184-.145.602-.756c.33-.415.617-.754.635-.754m-12.567.32c.018 0 .315.322.66.715l.63.715-.198.203c-.11.112-.23.202-.265.202-.037 0-.286-.117-.553-.26-.522-.28-.523-.278-.065.242l.287.324-.15.145c-.082.08-.17.145-.193.144-.024 0-.327-.324-.674-.72l-.63-.72.14-.144c.28-.288.3-.29.84-.005.269.14.486.242.486.228s-.15-.2-.33-.416l-.328-.393.156-.13a.8.8 0 0 1 .187-.13m6.375.187c.67-.004 1.406.044 1.848.133 2.845.57 5.293 2.692 6.236 5.402.862 2.479.43 5.567-1.058 7.563-.353.472-1.135 1.292-1.57 1.646a8.4 8.4 0 0 1-3.641 1.704c-.447.09-.734.117-1.45.13-.493.01-1.052 0-1.24-.022-.64-.08-1.327-.23-1.797-.392-2.01-.7-3.853-2.35-4.81-4.308-.386-.79-.628-1.688-.733-2.723-.31-3.1 1.067-6.02 3.665-7.766 1.073-.72 2.087-1.1 3.49-1.302a8 8 0 0 1 1.06-.065m.162.14c-.645.003-1.346.05-1.744.13-1.626.328-3.092 1.156-4.302 2.43a7.6 7.6 0 0 0-1.37 1.95 7.8 7.8 0 0 0-.83 2.844c-.07.65-.024 1.777.096 2.383.48 2.416 2.187 4.635 4.426 5.75.718.358 1.74.66 2.668.787.45.062 1.982.025 2.424-.06 1.86-.35 3.39-1.16 4.623-2.456.642-.675.985-1.16 1.367-1.93.956-1.928 1.131-4.37.453-6.314-.211-.605-.69-1.542-1.041-2.035-.347-.487-1.103-1.292-1.565-1.668a7.97 7.97 0 0 0-4.183-1.773 9 9 0 0 0-1.024-.043m6.07.053c-.025.003-.05.03-.091.084-.084.11-.083.112.062.236q.257.22.35.043c.046-.086.009-.137-.242-.328q-.04-.032-.067-.035zm1.468.486.394.414c.216.228.437.47.49.535l.093.12-.176.18-.175.18-.165-.16c-.091-.088-.18-.16-.198-.16s-.267.215-.553.479l-.52.48-.15-.154c-.082-.085-.141-.176-.132-.2.009-.026.233-.25.498-.497.265-.248.487-.47.494-.498.007-.027-.05-.11-.125-.182-.076-.073-.137-.155-.135-.182s.084-.117.182-.2zm-8.737.2c.183.004.384.053.576.157.27.148.423.326.524.612.084.237.094.83.015.91-.08.08-.316.067-.453-.026a6 6 0 0 1-.32-.246 2 2 0 0 0-.41-.256c-.245-.107-.53-.406-.572-.6-.076-.344.238-.557.64-.55m2.432.098h.049a.65.65 0 0 1 .295.068c.306.168.346.57.088.898-.054.068-.296.224-.54.346-.243.123-.493.276-.554.342-.14.15-.168.15-.248-.006-.18-.352-.12-1.052.113-1.318.172-.196.508-.323.797-.33M9.34 4.84q.07 0 .15.004c.333.016.823.89.616 1.097-.073.073-.29.066-.518-.017a3.4 3.4 0 0 0-.604-.112c-.496-.05-.65-.11-.69-.267-.023-.097.01-.148.194-.317.31-.28.52-.38.852-.386Zm5.26.056c.16 0 .307.04.504.14.317.158.668.506.625.618-.041.107-.35.25-.698.323-.346.073-.43.076-.64.015-.203-.058-.33-.274-.33-.56 0-.192.02-.245.156-.38.135-.135.186-.155.383-.155M3.822 5.05h.022c.11.01.293.168.76.56.407.342.74.638.74.657s-.067.1-.15.18l-.147.144-.748-.62-.746-.618.09-.13c.072-.1.114-.167.18-.173m-.588.72c.014 0 .132.216.264.48l.24.483h.575c.315 0 .574.01.574.022s-.058.114-.127.228l-.125.21H3.67l.318.206c.175.114.326.215.336.225.022.022-.185.393-.218.39a23 23 0 0 1-.82-.48 38 38 0 0 1-.82-.498c-.03-.032.19-.395.24-.394.026 0 .158.072.296.16.138.087.27.16.29.16.023 0-.044-.16-.151-.354l-.196-.353.13-.244c.073-.133.145-.24.159-.24m13.02.047h.04l.147.008c.808.058.953.576.446 1.584q-.344.686-.56.356c-.111-.172-.05-.32.277-.66.33-.345.392-.45.392-.64q0-.325-.392-.36c-.347-.03-.6.118-.782.458-.176.332-.264.414-.513.485-.24.068-.283.156-.153.318.21.262.217.31.055.494-.11.125-.141.194-.117.266.017.053.042.173.054.266.03.22-.078.29-.578.379a3.5 3.5 0 0 0-.867.294c-.27.126-.53.236-.578.244-.17.03-.276.245-.27.555l.01.975.004.687-.138.125c-.162.147-.592.283-.797.252a1.5 1.5 0 0 1-.29-.082c-.12-.05-.158-.05-.218 0-.124.103-.09.32.072.455.373.315.453.412.453.545 0 .142.134.242.324.242.083 0 .088-.02.06-.226-.03-.226-.028-.227.202-.44.127-.116.245-.268.262-.336.05-.2.154-.277.537-.398.627-.198 1.162-.124 1.525.21.242.224.323.47.29.903-.023.339-.151.64-.344.82-.166.154-.196.137-.196-.1 0-.172-.017-.213-.103-.245-.181-.067-.714-.09-.79-.033-.038.028-.09.166-.116.304a1.4 1.4 0 0 1-.211.49c-.173.252-.46.505-.514.452-.017-.018-.03-.24-.03-.492 0-.425-.01-.465-.11-.545-.15-.122-.38-.154-.71-.1-.22.036-.317.032-.433-.016-.18-.073-.278-.045-.313.092-.022.09.072.749.147 1.026q.053.193-.237.015c-.077-.047-.28-.24-.45-.427l-.307-.344-.37-.053c-.667-.094-1.104-.41-1.41-1.02-.092-.183-.21-.36-.26-.392-.14-.09-.307.013-.38.236-.048.146-.108.21-.297.32-.13.076-.3.225-.375.33a1 1 0 0 1-.203.22q-.138.057-.295-.297c-.117-.264-.17-1.29-.076-1.514.037-.09.197-.243.443-.422.262-.19.416-.338.48-.46.05-.1.083-.19.073-.2s-.1.046-.2.125c-.098.08-.328.215-.51.303-.382.182-.504.177-.702-.036l-.125-.134-.05.125a2 2 0 0 0-.077.287c-.052.264-.144.395-.428.613a7 7 0 0 0-.637.6c-.2.215-.397.392-.435.392-.08 0-.108-.19-.155-1.035-.045-.81.067-1.314.38-1.705.23-.287.625-.455.939-.402.234.04.314.128.314.343 0 .437.094.419.324-.064.19-.398.268-.48.553-.572.18-.06.352-.215.297-.27-.02-.02-.18-.033-.36-.033-.294 0-.33-.01-.343-.092-.05-.323-.043-.32-.26-.097a.9.9 0 0 1-.4.26 3.1 3.1 0 0 0-.782.37.5.5 0 0 1-.2.086c-.132 0-.056-.33.134-.593a5 5 0 0 0 .322-.545c.272-.54.5-.743.832-.743.152 0 .173.017.24.184.04.1.1.184.13.184.12 0 .156-.164.11-.512-.112-.87-.021-1.33.296-1.48.285-.136.45-.086 1.03.312.35.24.394.258.646.258.147 0 .45-.045.673-.1.31-.076.554-.1 1.047-.103.612-.004.656.002.918.125.514.24.644.446.57.9-.025.156-.032.302-.017.326.08.127-.054.36-.422.737q-.385.395-.36.464c.022.057.14.073.587.09.6.023.723-.003.816-.178.052-.097.047-.137-.04-.304-.12-.234-.18-1.068-.101-1.363.1-.367.485-.647 1.11-.807a1.6 1.6 0 0 1 .633-.04c.817.083.885.072 1.504-.224.413-.198.529-.25.689-.256m4.401.135c.3 0 .648.46.65.856.002.16-.02.213-.16.336-.092.08-.19.136-.22.127s-.094-.094-.145-.188c-.077-.143-.08-.175-.027-.21.054-.032.055-.064.008-.18-.078-.186-.196-.287-.278-.237-.053.033-.038.096.082.358.237.513.186.683-.277.93-.276.147-.39.12-.651-.15-.226-.235-.346-.485-.346-.724 0-.113.34-.474.422-.447.026.01.09.09.144.182.09.156.092.172.02.252s-.07.096.025.267c.057.1.137.19.18.197.144.028.144-.133-.005-.435-.08-.162-.145-.328-.145-.37 0-.248.405-.564.723-.564M7.142 6.32c-.112-.003-.205.028-.256.102-.105.15-.095.618.02.928.082.216.265.44.36.44.016 0 .158-.116.315-.257.413-.368.458-.625.164-.92-.182-.182-.417-.287-.603-.293m10.422.567c.063.004.142.075.263.213.288.326.276.348-.222.435a.35.35 0 0 1-.205-.025c-.101-.06-.103-.234-.004-.442.059-.124.105-.186.168-.18m.355 1h.014a.7.7 0 0 1 .18.055c.266.102.648.442.777.69.105.203.139.63.056.713-.107.108-.32.096-.605-.033-.497-.226-.61-.398-.61-.922 0-.242.022-.342.087-.422.042-.053.064-.08.1-.082m-.95.037q.11.003.25.133c.142.132.289.526.3.806.007.15-.078.19-.27.125a3 3 0 0 1-.282-.133c-.215-.114-.276-.275-.23-.613.028-.213.114-.322.234-.318m-14.482.703a.74.74 0 0 1 .504.186c.292.255.362.586.197.923-.17.35-.62.52-.964.368-.523-.235-.66-.808-.29-1.217a.76.76 0 0 1 .553-.26m18.947.002c.212.003.427.09.582.27a.9.9 0 0 1 .185.359.784.784 0 0 1-.99.873.776.776 0 0 1-.457-1.1.74.74 0 0 1 .68-.402m-12.79.17c-.15 0-.272.009-.272.02 0 .01.043.265.094.568.19 1.128.38 1.367 1.27 1.586.773.19.864.262.827.666-.017.195-.007.298.04.367.058.082.156.132.156.08a2 2 0 0 0-.05-.162c-.04-.11-.038-.162.005-.213.04-.048.046-.167.023-.41-.028-.307-.02-.353.07-.475.09-.125.094-.153.044-.398a2.3 2.3 0 0 1-.024-.623c.03-.345.028-.365-.084-.477-.097-.097-.16-.117-.373-.117-.193 0-.322-.034-.53-.14A2.95 2.95 0 0 0 8.646 8.8m-6.197.062c-.346.027-.59.45-.437.758.158.333.68.41.906.11.19-.233.138-.634-.14-.778a.54.54 0 0 0-.286-.09Zm18.937.002c-.374.013-.623.5-.41.809.168.265.58.348.81.125.232-.196.254-.596.012-.79a.6.6 0 0 0-.412-.144m-6.011.188q.009 0 .012.002c.044.042-.293 1.034-.418 1.23q-.363.57-1.227.389a1.5 1.5 0 0 0-.4-.02l-.194.026.028-.31c.028-.318.095-.502.219-.604.063-.053.072-.037.072.127 0 .273.064.404.27.54.31.206.697.12.947-.208.116-.154.122-.56.01-.78-.045-.086-.066-.173-.046-.193.04-.04.632-.2.727-.2m-6.605.023c.016 0 .108.023.203.05l.172.054-.094.156c-.075.126-.087.204-.065.395.065.547.56.819 1.07.588.18-.083.43-.346.43-.456 0-.03.018-.052.04-.052.094 0 .178.142.208.35.018.122.043.265.055.318.02.09-.002.099-.36.127l-.61.05a1.4 1.4 0 0 1-.383-.017c-.323-.082-.52-.307-.625-.713-.07-.27-.098-.85-.04-.85m8.174.05c.122-.002.278.099.407.284.126.183.129.19.129.918 0 .503-.018.74-.053.752-.03.01-.164-.086-.303-.213-.368-.336-.468-.595-.432-1.111.016-.22.053-.45.082-.516a.18.18 0 0 1 .17-.115m-7.414.183q.046 0 .114.008c.513.057.74.533.365.765-.228.14-.413.123-.602-.055a.6.6 0 0 1-.187-.318c-.025-.144-.013-.188.09-.293.08-.08.127-.107.22-.107m4.72.095h.02c.05.002.089.025.15.07.092.07.128.14.139.274.025.342-.13.543-.457.596-.125.02-.175.002-.262-.092a.6.6 0 0 1-.133-.322c-.02-.176-.006-.223.092-.32a.86.86 0 0 1 .45-.206m-4.571.137c-.122.005-.203.08-.203.197 0 .23.328.302.423.092.07-.152.004-.267-.166-.287zm8.35.004q.078 0 .222.053c.45.16.93.587 1.125 1.004.245.52.246 1.447.004 1.69-.15.15-.277.104-.691-.247a21 21 0 0 0-.565-.463c-.192-.147-.342-.437-.344-.658 0-.08.03-.284.07-.453a2.6 2.6 0 0 0 .06-.574c-.013-.251.006-.35.12-.352m-3.922.127q-.23-.002-.228.24c0 .092.03.14.103.17.116.046.27.018.32-.06.052-.08.042-.234-.02-.295-.03-.03-.11-.055-.175-.055m2.659 1.285c.125 0 .406.335.447.535.053.26.038.738-.03 1.024-.07.3-.227.687-.28.687-.02 0-.117-.094-.217-.21-.277-.324-.316-.494-.198-.837.053-.153.107-.4.12-.545.06-.614.07-.654.158-.654M1.08 11.04l.287.025c.353.03 1.66.116 1.783.116.082 0 .09.027.08.283l-.015.283-.572.225a9 9 0 0 0-.596.246c-.013.012.253.008.588-.01l.607-.031-.013.199-.014.2-.873.079c-.48.043-.96.089-1.067.1l-.195.02.002-.35v-.35l.693-.228c.8-.265.793-.288-.109-.295l-.586-.004v-.254Zm21.001.307.076.002c.202.004.39.028.47.072.222.12.264.235.265.723 0 .537-.085.724-.37.81-.234.07-.648.068-1.052-.006-.522-.095-.65-.168-.713-.4-.06-.217-.033-.713.047-.861.06-.115.28-.231.435-.231.108 0 .117.016.117.2 0 .163-.018.207-.09.226-.135.035-.2.24-.138.428.04.124.08.158.22.187.243.052.733.032.811-.033.09-.076.093-.52.002-.594-.13-.108-.23-.037-.246.174l-.016.197-.214-.015-.215-.014v-.772l.138-.04a2 2 0 0 1 .473-.051zm-15.895.43c.036 0 .09.057.117.126.1.253.237.915.265 1.297.034.46 0 .552-.357.946-.127.14-.292.393-.367.56-.206.458-.317.55-.463.385-.19-.214-.492-1.225-.492-1.64 0-.242.18-.704.36-.923.16-.196.853-.752.937-.752m11.68.095q.053 0 .126.043c.177.1.735.852.85 1.147.143.367.142.903-.004 1.228-.108.242-.281.422-.402.422-.036 0-.261-.19-.502-.424-.605-.585-.7-.786-.54-1.164a6 6 0 0 0 .2-.68c.103-.42.163-.57.27-.572m-14.67.883q.025 0 .028.002c.026.026.248 1.097.23 1.11a3 3 0 0 1-.205.054c-.22.054-.185.103-.3-.42-.062-.28-.102-.33-.21-.262-.05.033-.05.099.012.395.04.195.074.362.074.369 0 .025-.464.124-.484.103a3 3 0 0 1-.1-.394c-.075-.36-.083-.375-.203-.375-.069 0-.137.019-.15.04-.014.023.015.223.064.446.05.224.075.42.057.436-.044.039-.47.18-.545.18-.033 0-.06-.013-.06-.028s-.076-.348-.165-.74a9 9 0 0 1-.148-.725c.032-.026 1.86-.19 2.105-.191m4.896.168c.096 0 .102.01.265.482.08.226.17.382.31.528.247.258.35.41.35.52 0 .116-.59.993-.67.993-.034 0-.13-.091-.212-.205a11 11 0 0 1-.38-.584c-.217-.358-.23-.392-.23-.7 0-.52.28-1.034.567-1.034m12.653.185c.414.006 2.005.093 2.03.118.018.018-.078.712-.102.734a18 18 0 0 1-.76.094c-.412.046-.723.09-.69.103.035.012.352.086.706.164.62.138.64.147.63.256-.03.31-.064.41-.14.406-.043-.002-.51-.143-1.037-.31-.528-.168-.96-.314-.96-.326l.032-.26.03-.236.56-.104c.31-.057.54-.112.514-.121a8 8 0 0 0-.504-.074l-.455-.057.015-.182a.7.7 0 0 1 .033-.2.5.5 0 0 1 .098-.005m-4.49.047c.083-.006.192.057.272.176.088.13.104.216.104.533 0 .454-.058.633-.397 1.227-.198.348-.276.447-.353.447-.054 0-.12-.027-.145-.06a22 22 0 0 1-.29-.424c-.214-.32-.24-.38-.214-.522.048-.253.145-.402.528-.808.197-.21.373-.425.39-.48s.057-.086.106-.09m-12.81.779c.04 0 .115.335.08.367a3 3 0 0 1-.405.2c-.202.09-.353.165-.336.165s.204-.04.414-.09.396-.092.414-.092c.037 0 .145.198.192.35.026.084-.025.124-.405.32-.238.124-.427.23-.42.237s.216-.05.46-.13c.247-.078.455-.134.464-.124s.05.093.088.185l.07.166-.746.235c-.41.129-.867.275-1.017.324a3 3 0 0 1-.305.09c-.017 0-.075-.107-.129-.237a1.5 1.5 0 0 1-.097-.29c0-.031.228-.164.505-.296.278-.131.504-.245.504-.253s-.22.044-.492.117a6 6 0 0 1-.568.133c-.048 0-.108-.094-.172-.26-.055-.143-.092-.265-.084-.274a90 90 0 0 1 1.984-.843m3.42.23c.176 0 .35.188.53.576.086.19.26.502.385.694.144.22.227.398.227.484 0 .075-.102.459-.227.854-.124.394-.24.796-.256.89-.015.099-.053.172-.088.172-.033 0-.214-.182-.402-.402-.434-.51-.748-.934-.902-1.227-.106-.2-.12-.284-.12-.643 0-.35.02-.451.126-.68.204-.44.484-.717.726-.718m10.427.086h.002c.098.005.208.082.35.229.428.445.647 1.477.337 1.595-.117.045-.285-.06-.41-.258-.083-.131-.147-.185-.224-.185-.163 0-.176.107-.053.434.174.462.19.672.072.916-.12.248-.377.486-.527.486-.095 0-.123-.044-.211-.31a5 5 0 0 0-.28-.635c-.248-.457-.24-.53.14-1.14a14 14 0 0 0 .456-.788c.12-.238.222-.35.348-.344m3.093.28c.043.002 2.034.59 2.047.607.02.024-.218.632-.246.63-.016 0-.463-.178-.993-.396s-.968-.4-.974-.404c-.023-.016.137-.436.166-.436m-11.095.229c.043 0 .138.088.213.195.295.422.43.892.43 1.514 0 .432-.003.447-.102.447-.067 0-.21-.111-.408-.318-.393-.41-.566-.758-.53-1.07.033-.273.288-.77.397-.77m1.873.048c.037 0 .375.688.375.763s-.222.244-.32.244a.2.2 0 0 1-.14-.07c-.098-.12-.11-.504-.022-.732.043-.113.09-.205.107-.205m2.023.023.065.16c.102.25.13.557.064.688-.07.137-.196.16-.367.066s-.158-.207.06-.594zm1.784.21q.1 0 .164.099c.089.143.18.785.146 1.017-.04.259-.23.477-.617.707-.36.214-.328.203-.414.149-.05-.032-.056-.105-.03-.332.02-.16.04-.426.048-.59.016-.368.15-.671.396-.893q.178-.16.307-.158zm-2.922.638c.072 0 .31.073.53.164.408.169.562.182 1.015.086.323-.07.338.209.027.482-.2.176-.323.177-.828.002-.553-.192-.79-.185-1.477.045-.3.1-.562.184-.58.184s-.1-.07-.185-.155c-.242-.242-.273-.535-.057-.533.058 0 .195.042.305.092.32.145.456.12.81-.14.2-.148.355-.227.44-.227m9.54.01.291.115.29.115-.276.59c-.153.325-.29.59-.305.59a24 24 0 0 1-.9-.48 44 44 0 0 0-.91-.495c-.044-.016.11-.353.163-.353.02 0 .325.143.674.318l.635.318.17-.36zm-1.94.542c.056 0 .377.14.377.17a1.5 1.5 0 0 1-.1.2c-.056.097-.092.186-.08.195.01.009.33.198.708.422l.7.414c.02.012-.238.43-.265.428a18 18 0 0 1-.71-.457l-.69-.455-.13.162-.13.16-.17-.123-.18-.133c-.01-.008.604-.92.66-.98q.004-.004.009-.003m-16.417.135.118.172a.8.8 0 0 1 .115.217c0 .026-.072.096-.16.156s-.16.135-.16.168c0 .075.222.342.285.342.04 0 .67-.42 1.058-.705l.127-.094.112.135a.7.7 0 0 1 .113.172c.004.089-.96.868-1.254 1.01-.262.13-.357.144-.512.08-.145-.057-.352-.294-.498-.563-.107-.198-.126-.277-.1-.41.036-.2.242-.416.542-.568zm12.547.047c.112 0 .292.263.344.504a1.65 1.65 0 0 1-.021.865c-.113.38-.3.544-1.1.963-.393.206-.72.373-.73.373-.007 0-.025-.19-.042-.424a3 3 0 0 0-.107-.638c-.11-.31-.04-.446.322-.637.342-.18.55-.338.96-.72.17-.158.34-.286.374-.286m-7.302.018q.035 0 .086.01c.24.047.385.135.718.445.17.158.395.354.5.435.31.24.343.456.2 1.338-.074.47-.107.572-.186.586-.037.007-.273-.104-.525-.246-.698-.393-.947-.573-1.1-.791-.124-.177-.142-.241-.156-.594-.022-.525.05-.837.244-1.04.1-.106.144-.143.22-.143m-3.208.986.152.148c.084.082.154.167.154.188s-.12.22-.267.44c-.416.62-.843 1.3-.827 1.316.01.008.325-.282.703-.645.38-.362.7-.661.713-.662.052-.004.558.45.666.598.2.27.137.473-.263.85-.136.13-.293.25-.348.269-.13.042-.368-.075-.562-.275-.085-.088-.177-.158-.204-.16-.026 0-.15.115-.28.257l-.231.26-.328-.38-.328-.376.136-.197a1 1 0 0 0 .133-.236c0-.021-.07-.118-.154-.217l-.155-.18-.222.098-.223.097-.172-.193a1.3 1.3 0 0 1-.172-.22c0-.016.468-.196 1.04-.403zm13.699.004c.112 0 .258.068.38.176.078.067.076.077-.04.199-.093.097-.152.12-.235.1-.082-.021-.144.005-.244.1-.15.145-.17.227-.062.269.04.015.08.027.088.027s.113-.082.236-.184c.288-.238.479-.292.7-.2.447.186.73.527.672.816-.036.18-.24.453-.47.627-.19.144-.424.174-.592.076a3 3 0 0 1-.273-.205l-.18-.15.17-.17.219.207.168-.186c.196-.218.208-.306.053-.377-.104-.047-.135-.032-.34.16-.334.312-.542.337-.828.096-.175-.147-.278-.337-.278-.512 0-.256.434-.7.686-.7m-8.297.469a.25.25 0 0 1 .13.033c.212.114.968 1.278.968 1.492 0 .162-.455.218-.79.098-.434-.155-.584-.396-.585-.936-.002-.424.105-.677.277-.687m-5.72.09c-.027.004-.12.038-.225.083-.214.092-.217.096-.137.184.08.09.083.09.23-.08a1 1 0 0 0 .14-.186zm8.519.13q.02 0 .039.002c.166.012.254.172.252.473-.005.5-.267.846-.73.967-.344.09-.38.088-.575-.01-.11-.055-.165-.116-.174-.195-.024-.21.466-.843.848-1.096q.2-.133.34-.14m4.562.158c.04.002.093.046.176.142l.152.178-.28.223c-.374.298-.362.279-.263.369.084.076.1.07.387-.174l.299-.254.164.203.166.2-.3.238c-.163.13-.298.263-.298.294 0 .032.036.092.08.13.075.068.108.053.42-.198.186-.15.353-.271.373-.271.042 0 .415.41.41.453-.002.024-.712.606-1.03.842l-.11.082-.201-.29c-.63-.89-.996-1.43-.996-1.46 0-.026.498-.453.816-.7a.05.05 0 0 1 .035-.01zm-12.176.529c-.02 0-.09.058-.16.13l-.127.132.196.164.197.162.127-.09c.07-.05.13-.12.13-.152 0-.063-.298-.346-.363-.346m1.23.394c.09-.005.415.18.415.244 0 .018-.12.453-.27.97-.15.514-.267.942-.26.95.007.006.216-.337.462-.766.594-1.036.505-.945.796-.823.232.096.242.106.22.241-.04.223-.09.99-.065.99.012 0 .11-.212.22-.47.108-.26.203-.476.208-.483a.7.7 0 0 1 .2.062c.145.058.185.095.163.15-.017.042-.185.5-.375 1.016-.19.518-.36.953-.375.97-.016.015-.163-.032-.326-.106a6 6 0 0 1-.303-.143c-.004-.005.037-.33.094-.72a10 10 0 0 0 .09-.73c-.008-.008-.153.262-.32.6-.17.336-.313.62-.32.628-.017.016-.78-.385-.878-.46-.04-.033-.033-.104.03-.29l.085-.248-.224-.145-.225-.145-.192.164c-.208.18-.227.177-.49-.048l-.15-.13.857-.617c.472-.341.885-.637.918-.657l.016-.002zm9.802.018c.226 0 .568.38.568.628q0 .15.066.15c.082 0 .287.205.553.55l.207.27-.226.137-.225.14-.232-.319c-.128-.175-.262-.32-.297-.32a.9.9 0 0 0-.252.107l-.186.107.203.358c.113.196.194.375.18.398-.026.042-.36.225-.41.225-.015 0-.234-.43-.486-.952l-.457-.95.103-.076c.184-.14.8-.453.89-.453m-.014.508a.4.4 0 0 0-.19.064c-.253.137-.253.14-.167.271a.4.4 0 0 0 .097.12c.01 0 .1-.053.2-.116.189-.12.204-.144.156-.27q-.027-.07-.096-.07m-1.03.005.342 1.024.342 1.024-.252.095a2 2 0 0 1-.304.098c-.03 0-.168-.227-.305-.504s-.252-.498-.26-.49c-.007.007.059.245.147.53.087.287.16.534.16.55 0 .027-.497.234-.563.234-.017 0-.061-.057-.097-.127-.1-.192-.856-1.8-.856-1.82 0-.023.276-.117.342-.117.029 0 .145.185.256.412.11.226.206.405.213.398a3 3 0 0 0-.1-.422 5 5 0 0 1-.113-.457c0-.043.452-.231.478-.2.007.01.11.2.23.42.12.223.226.397.235.388.01-.01-.053-.214-.138-.453l-.157-.435.2-.074zm-8.95.118c-.028 0-.094.05-.213.15-.107.092-.108.097-.024.16.124.094.163.068.227-.15.03-.106.04-.158.01-.16m2.802.475c.123-.005.908.187 1 .247a.37.37 0 0 1 .137.188c.052.207-.01.736-.105.898-.124.212-.27.252-.64.178-.35-.07-.36-.063-.407.27-.066.457-.046.438-.38.357-.19-.046-.197-.052-.167-.19.04-.187.53-1.925.547-1.945q.003-.002.015-.004m3.487.226c.207 0 .263.02.373.13.17.17.32.66.353 1.157.032.47-.04.674-.277.787-.216.103-.617.137-.805.07a.6.6 0 0 1-.24-.173c-.122-.165-.222-.69-.223-1.178 0-.385.01-.433.117-.56.136-.162.354-.233.702-.233m-1.674.045c.515 0 .574.01.652.096.124.136.153.683.045.847-.073.112-.074.125 0 .207.045.05.087.18.096.305.008.12.02.33.03.463l.019.242-.235-.014-.234-.013-.033-.344a3 3 0 0 0-.057-.402c-.013-.036-.11-.057-.252-.057h-.23v.826h-.252c-.21 0-.253-.013-.252-.08 0-.044.03-.504.068-1.02.037-.519.068-.968.068-.999 0-.043.145-.057.567-.057m-1.526.264q-.02 0-.025.006a1 1 0 0 0-.05.197l-.03.168.2.045.232.05c.018.001.054-.037.08-.085a.5.5 0 0 0 .047-.2c0-.097-.03-.118-.23-.158a1.4 1.4 0 0 0-.185-.023zm3.125.148a.54.54 0 0 0-.263.065c-.08.06-.083.093-.037.51.062.576.142.655.505.503l.164-.068-.025-.336a2 2 0 0 0-.096-.504c-.064-.153-.087-.17-.248-.17m-1.595.047c-.152 0-.16.005-.16.184 0 .178.007.183.16.183a.8.8 0 0 0 .228-.03c.042-.015.072-.08.072-.154 0-.142-.065-.183-.3-.183m2.888.057h.008c.026.028.157.37.147.38a3 3 0 0 1-.278.08l-.263.07-.026-.122-.04-.2c-.013-.062.038-.097.216-.15a2 2 0 0 1 .236-.058\"},\"child\":[]}]})(props);\n};\nexport function SiNewrelic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.0015 14.3091v7.384L12.0008 24V12.0008L1.6078 5.9996v4.6167ZM12.0008 0 2.8232 5.2976 6.8209 7.606l5.1799-2.9893 6.3936 3.6913v7.384l-5.1783 2.9908v4.6167l9.176-5.2991V5.9996Z\"},\"child\":[]}]})(props);\n};\nexport function SiNewyorktimes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.272,14.815h-0.098c-0.747,2.049-2.335,3.681-4.363,4.483v-4.483l2.444-2.182l-2.444-2.182V7.397 c2.138,0.006,3.885-1.703,3.927-3.84c0-2.629-2.509-3.556-3.927-3.556c-0.367-0.007-0.734,0.033-1.091,0.12v0.131h0.556 c0.801-0.141,1.565,0.394,1.706,1.195C17.99,1.491,17.996,1.537,18,1.583c-0.033,0.789-0.7,1.401-1.488,1.367 c-0.02-0.001-0.041-0.002-0.061-0.004c-2.444,0-5.323-1.985-8.454-1.985C5.547,0.83,3.448,2.692,3.284,5.139 C3.208,6.671,4.258,8.031,5.76,8.346v-0.12C5.301,7.931,5.041,7.407,5.084,6.862c0.074-1.015,0.957-1.779,1.973-1.705 C7.068,5.159,7.08,5.16,7.091,5.161c2.629,0,6.872,2.182,9.501,2.182h0.098v3.142l-2.444,2.182l2.444,2.182v4.549 c-0.978,0.322-2.003,0.481-3.033,0.469c-1.673,0.084-3.318-0.456-4.614-1.516l4.429-1.985V7.451l-6.196,2.727 c0.592-1.75,1.895-3.168,3.589-3.905V6.175c-4.516,1.004-8.138,4.243-8.138,8.705c0,5.193,4.025,9.12,9.818,9.12 c6.011,0,8.727-4.363,8.727-8.814V14.815z M8.858,18.186c-1.363-1.362-2.091-3.235-2.007-5.16c-0.016-0.88,0.109-1.756,0.371-2.596 l2.051-0.938v8.476L8.858,18.186z\"},\"child\":[]}]})(props);\n};\nexport function SiNexon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.138 10.158v3.693h3.775v-.783H6.126v-.706h2.787v-.789H6.126v-.632h2.787v-.783zm15.778 3.693v-2.234l2.34 2.234H24v-3.693h-.987v2.234l-2.34-2.234h-.745v3.693zm-2.051-3.701h-4.072v3.7h4.072zm-.988 2.918H15.78v-2.127h2.097zm-16.89.783v-2.234l2.34 2.234h.748v-3.693h-.99v2.234l-2.34-2.234H0v3.693zm10.241-1.844-1.633 1.844h1.249l1.009-1.14 1.012 1.14h1.249l-1.637-1.844 1.64-1.849h-1.25l-1.014 1.145-1.012-1.145H9.589z\"},\"child\":[]}]})(props);\n};\nexport function SiNextbilliondotai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.399 13.3694a6.3067 6.3067 0 0 0-.5655-.567 6.3754 6.3754 0 0 0-4.2337-1.5994h-4.7989V6.4007a6.3783 6.3783 0 0 0-1.5993-4.2338 6.1066 6.1066 0 0 0-.567-.5641A6.3973 6.3973 0 0 0 .002 6.4016v4.7989a1.5994 1.5994 0 0 0 1.5993 1.5993h9.5959v4.7989a6.3696 6.3696 0 0 0 .855 3.1985l.0842.1453a6.3445 6.3445 0 0 0 .6615.8942 6.6637 6.6637 0 0 0 .5641.5641 6.4689 6.4689 0 0 0 .8913.6586l.1453.0858a6.4074 6.4074 0 0 0 7.4324-.7444 6.6963 6.6963 0 0 0 .5655-.5655 6.3973 6.3973 0 0 0 0-8.4677zm-11.198-2.1708H1.6052v-4.799a4.7989 4.7989 0 0 1 9.5958 0zm6.3965 11.1951a4.7703 4.7703 0 0 1-3.1986-1.2243 4.1977 4.1977 0 0 1-.378-.3766 4.782 4.782 0 0 1-1.2211-3.1985v-4.7964h4.7988a4.7989 4.7989 0 0 1 0 9.5958z\"},\"child\":[]}]})(props);\n};\nexport function SiNextcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.018 6.537c-2.5 0-4.6 1.712-5.241 4.015-.56-1.232-1.793-2.105-3.225-2.105A3.569 3.569 0 0 0 0 12a3.569 3.569 0 0 0 3.552 3.553c1.432 0 2.664-.874 3.224-2.106.641 2.304 2.742 4.016 5.242 4.016 2.487 0 4.576-1.693 5.231-3.977.569 1.21 1.783 2.067 3.198 2.067A3.568 3.568 0 0 0 24 12a3.569 3.569 0 0 0-3.553-3.553c-1.416 0-2.63.858-3.199 2.067-.654-2.284-2.743-3.978-5.23-3.977zm0 2.085c1.878 0 3.378 1.5 3.378 3.378 0 1.878-1.5 3.378-3.378 3.378A3.362 3.362 0 0 1 8.641 12c0-1.878 1.5-3.378 3.377-3.378zm-8.466 1.91c.822 0 1.467.645 1.467 1.468s-.644 1.467-1.467 1.468A1.452 1.452 0 0 1 2.085 12c0-.823.644-1.467 1.467-1.467zm16.895 0c.823 0 1.468.645 1.468 1.468s-.645 1.468-1.468 1.468A1.452 1.452 0 0 1 18.98 12c0-.823.644-1.467 1.467-1.467z\"},\"child\":[]}]})(props);\n};\nexport function SiNextdns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22.195 6.512-.001-.019c-.01-.23-.017-.474-.022-.746a2.543 2.543 0 0 0-2.395-2.492c-2.759-.154-4.894-1.053-6.717-2.831l-.016-.015a1.536 1.536 0 0 0-2.087 0l-.016.015C9.117 2.202 6.982 3.101 4.223 3.256a2.543 2.543 0 0 0-2.395 2.492c-.004.269-.011.513-.022.745l-.001.044c-.053 2.813-.12 6.315 1.052 9.494.644 1.748 1.619 3.267 2.899 4.516 1.458 1.422 3.367 2.552 5.674 3.356.075.026.153.048.233.063a1.668 1.668 0 0 0 .675 0c.079-.015.158-.037.233-.063 2.305-.806 4.212-1.936 5.668-3.358 1.28-1.25 2.255-2.769 2.9-4.518 1.176-3.188 1.109-6.696 1.056-9.515Z\"},\"child\":[]}]})(props);\n};\nexport function SiNextdoor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.65 9.997a.069.069 0 0 0-.07.069v1.415c-.123-.177-.42-.37-.805-.37-.745 0-1.316.659-1.316 1.445 0 .787.571 1.447 1.316 1.447.386 0 .682-.194.806-.372v.221c0 .05.04.09.09.09h.607a.07.07 0 0 0 .07-.07v-3.806a.069.069 0 0 0-.07-.069zm-3.913.404a.07.07 0 0 0-.069.07c0 .779.064.7-.504.7a.09.09 0 0 0-.09.09v.486c0 .05.04.089.09.089h.504v1.136c0 .676.476 1.003 1.07 1.003.183 0 .32-.017.434-.046a.07.07 0 0 0 .052-.067v-.526a.07.07 0 0 0-.086-.066.984.984 0 0 1-.227.023c-.33 0-.476-.133-.476-.47v-.987h.608a.07.07 0 0 0 .07-.069v-.527a.069.069 0 0 0-.07-.069h-.608v-.701a.069.069 0 0 0-.069-.07zm-8.396.676c-.516 0-.955.236-1.201.598-.02.03-.055.095-.102.095-.226.002-.24-.276-.247-.524a.07.07 0 0 0-.069-.066l-.653-.004a.07.07 0 0 0-.069.07c.014.606.126 1.018.86 1.181.04.01.068.045.068.087v1.36c0 .037.03.068.069.068h.634a.07.07 0 0 0 .069-.07V12.47c0-.312.221-.667.64-.667.4 0 .642.355.642.667v1.404c0 .038.03.069.069.069h.634a.07.07 0 0 0 .069-.07v-1.508c0-.72-.616-1.287-1.413-1.287zm3.207.033c-.851 0-1.472.626-1.472 1.446 0 .876.65 1.431 1.483 1.447.655.012 1.09-.363 1.194-.494a.068.068 0 0 0-.015-.097l-.435-.34c-.047-.047-.084-.021-.112.001-.07.057-.203.22-.626.237-.37.015-.7-.205-.745-.576h2.03a.07.07 0 0 0 .069-.065c.006-.082.006-.142.006-.196 0-.897-.644-1.363-1.377-1.363zm11.652 0c-.812 0-1.472.637-1.472 1.446 0 .81.66 1.447 1.472 1.447.812 0 1.472-.638 1.472-1.447s-.66-1.446-1.472-1.446zm3.229 0c-.812 0-1.472.637-1.472 1.446 0 .81.66 1.447 1.472 1.447.812 0 1.472-.638 1.472-1.447s-.66-1.446-1.472-1.446zm3.314.028a.745.745 0 0 0-.695.476v-.374a.069.069 0 0 0-.069-.069h-.628a.069.069 0 0 0-.07.07v2.632a.07.07 0 0 0 .07.069h.628a.07.07 0 0 0 .07-.07v-1.255c0-.454.24-.737.604-.737.092 0 .175.013.26.035A.069.069 0 0 0 24 11.85v-.624a.07.07 0 0 0-.056-.068.938.938 0 0 0-.201-.02zm-16.666.033a.069.069 0 0 0-.058.108l.88 1.305L7 13.832a.07.07 0 0 0 .056.11h.745a.068.068 0 0 0 .056-.03l.564-.79.563.79a.069.069 0 0 0 .056.03h.74a.069.069 0 0 0 .057-.11l-.899-1.248.88-1.305a.069.069 0 0 0-.058-.108h-.738a.07.07 0 0 0-.058.03l-.548.818-.549-.817a.07.07 0 0 0-.057-.03zm-1.552.565c.286 0 .566.155.633.482h-1.31c.073-.338.392-.482.677-.482zm8.412.067c.42 0 .705.321.705.753 0 .433-.285.754-.705.754s-.705-.321-.705-.754c0-.432.285-.753.705-.753zm3.263.016c.403 0 .694.31.694.737s-.291.737-.694.737c-.403 0-.7-.31-.7-.737 0-.426.297-.737.7-.737zm3.229 0c.403 0 .694.31.694.737s-.291.737-.694.737c-.403 0-.7-.31-.7-.737 0-.426.297-.737.7-.737z\"},\"child\":[]}]})(props);\n};\nexport function SiNextdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.665 21.978C16.758 23.255 14.465 24 12 24 5.377 24 0 18.623 0 12S5.377 0 12 0s12 5.377 12 12c0 3.583-1.574 6.801-4.067 9.001L9.219 7.2H7.2v9.596h1.615V9.251l9.85 12.727Zm-3.332-8.533 1.6 2.061V7.2h-1.6v6.245Z\"},\"child\":[]}]})(props);\n};\nexport function SiNextra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.68 21.031c-4.98-4.98-4.98-13.083 0-18.063l.978-.978c.22-.22.342-.513.342-.825 0-.311-.122-.604-.342-.824-.44-.441-1.207-.44-1.648 0l-.979.978c-4.98 4.98-13.084 4.98-18.063 0L1.99.34a1.17 1.17 0 0 0-1.649 0 1.168 1.168 0 0 0 0 1.649l.978.978c4.98 4.98 4.98 13.083 0 18.063l-.977.978c-.221.22-.342.513-.342.825 0 .31.121.604.341.824.442.443 1.21.441 1.65 0l.977-.977c4.98-4.983 13.083-4.98 18.064 0l.978.977c.22.22.513.342.824.342.312 0 .605-.122.824-.342.22-.22.342-.512.342-.824 0-.313-.122-.605-.342-.825l-.977-.978z\"},\"child\":[]}]})(props);\n};\nexport function SiNextui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.353 0h11.294A6.353 6.353 0 0 1 24 6.353v11.294A6.353 6.353 0 0 1 17.647 24H6.353A6.353 6.353 0 0 1 0 17.647V6.353A6.353 6.353 0 0 1 6.353 0Zm7.755 6.913h-.933v6.702a2.88 2.88 0 0 1-.362 1.45c-.24.424-.596.77-1.025 1-.443.244-.96.365-1.553.365-.592 0-1.108-.121-1.55-.364a2.603 2.603 0 0 1-1.024-1 2.865 2.865 0 0 1-.365-1.45V6.912h-.933v6.767a3.558 3.558 0 0 0 .489 1.862c.327.547.798.994 1.362 1.292.582.316 1.256.474 2.021.474.769 0 1.444-.157 2.024-.471a3.473 3.473 0 0 0 1.36-1.293c.33-.565.5-1.21.49-1.864V6.913Zm3.648 10.22V6.914h-.933v10.22h.933Z\"},\"child\":[]}]})(props);\n};\nexport function SiNexusmods (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.376 0c-.993 0-2.18.686-2.907 1.182-1.676-.36-4.036-.545-6.787.635-1.365-.513-2.425-.562-3.32-.488a2.16 2.16 0 0 0-1.27.429c-.33.22-2.788 2.69-3.069 4.652C-.15 7.508.68 8.932 1.218 9.718c-.44 1.76-.2 4.572.517 6.188-.353 1.041-.713 2.089-.664 3.205.01.584.061 1.188.398 1.684C1.72 21.19 4.528 24 6.545 24c.957 0 1.93-.428 3.07-1.24 2.16.383 4.402.348 6.448-.532 2.573 1.001 4.224.625 4.84.162.587-.457 2.826-2.915 3.07-4.622.1-.672-.023-1.638-1.226-3.397a10.983 10.983 0 0 0-.501-6.455c.396-1.069.673-2.188.59-3.337-.015-.68-.221-1.167-.487-1.507-.209-.335-2.415-2.39-4.028-2.91A3.105 3.105 0 0 0 17.376 0m-.03 2.082c.65.015 2.155 1.093 3.01 1.906l.355.34c-.959-.163-2.125.428-3.26 1.55a10.28 10.28 0 0 0-1.358 1.595c-.28.384-.517.768-.753 1.285l1.18.635-3.895 1.477-1.122-4.18 1.033.547c1.358-3.102 2.524-3.973 3.232-4.416h.015a5.12 5.12 0 0 1 1.49-.724zM12 3.065a8.932 8.932 0 0 1 2.22.279 7.67 7.67 0 0 0-.42.488 8.403 8.403 0 0 0-1.8-.196 8.336 8.336 0 0 0-5.897 2.432 7.86 7.86 0 0 1-.37-.433A8.905 8.905 0 0 1 12 3.065m-7.076.305c.71-.002 1.309.127 2.2.466a9.526 9.526 0 0 0-1.713 1.337c-.327-.542-.624-1.156-.488-1.803m-.606.042c-.162.96.428 2.126 1.55 3.264.457.487 1.003.945 1.594 1.358.383.281.767.517 1.283.754l.62-1.182 1.49 3.914-4.176 1.122.546-1.033c-3.099-1.36-3.969-2.526-4.412-3.235v-.015a5.144 5.144 0 0 1-.723-1.491l-.015-.074c.015-.65 1.092-2.156 1.904-3.013Zm16.035 1.483a1.259 1.259 0 0 1 .26.015l.14.023a5.05 5.05 0 0 1-.13 1.137v.015c-.1.383-.228.765-.377 1.148a9.526 9.526 0 0 0-1.346-1.776c.547-.357 1.051-.546 1.453-.562M18.43 5.8a8.903 8.903 0 0 1 2.506 6.2 8.937 8.937 0 0 1-.27 2.183 7.658 7.658 0 0 0-.488-.425A8.407 8.407 0 0 0 20.364 12 8.334 8.334 0 0 0 18 6.173a7.904 7.904 0 0 1 .429-.373M3.315 9.905c.157.148.319.29.488.425A8.417 8.417 0 0 0 3.636 12c0 2.248.887 4.286 2.327 5.788a8.11 8.11 0 0 1-.426.376A8.902 8.902 0 0 1 3.065 12a8.937 8.937 0 0 1 .25-2.095m13.988 1.541-.546 1.034c3.098 1.359 3.969 2.526 4.412 3.235v.014c.34.488.575.99.723 1.492l.014.074c-.014.65-1.092 2.156-1.903 3.013l-.34.354c.163-.96-.427-2.127-1.549-3.264a10.298 10.298 0 0 0-1.594-1.359 7.008 7.008 0 0 0-1.283-.753l-.605 1.152-1.505-3.87zm-6.006 1.684 1.121 4.18-1.033-.547c-1.357 3.102-2.523 3.973-3.231 4.416h-.015c-.487.34-.989.576-1.49.724l-.074.015c-.65-.015-2.154-1.093-3.01-1.906l-.354-.34c.959.163 2.124-.428 3.26-1.55.488-.458.945-1.004 1.358-1.595.28-.384.517-.768.753-1.285l-1.166-.635ZM3.72 16.663A9.526 9.526 0 0 0 5.086 18.5c-.697.47-1.33.665-1.777.59l-.138-.024c0-.367.038-.748.128-1.137v-.015c.11-.417.254-.835.42-1.252m14.131 1.314c.129.14.253.283.372.43A8.904 8.904 0 0 1 12 20.936a8.932 8.932 0 0 1-2.282-.296 7.757 7.757 0 0 0 .417-.487 8.335 8.335 0 0 0 7.716-2.175m.696.889c.43.666.607 1.267.534 1.698l-.023.138a5.034 5.034 0 0 1-1.136-.128h-.014a10.718 10.718 0 0 1-1.114-.366 9.526 9.526 0 0 0 1.753-1.342\"},\"child\":[]}]})(props);\n};\nexport function SiNfc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.958 1.98C23.895 1 23.143.256 22.145.197c-1.102-.066-4.668-.12-5.693-.12 1.832 1.264 2.082 3.644 2.255 8.066.101 2.62.01 11.799.002 12.188l-.049 2.504-9.628-9.63v-3.014l7.656 7.658c.02-1.516.04-3.492.04-5.299 0-1.76-.026-3.354-.076-4.193-.288-4.819-.737-7.077-3.253-7.962-.77-.27-1.487-.335-2.683-.351C9.728.032 2.848.037 1.854.091.8.147.09.914.042 1.9c-.048.977-.064 19.174 0 20.165.062.98.815 1.724 1.812 1.782 1.102.067 4.668.075 5.694.075-1.832-1.264-2.083-3.643-2.255-8.066-.1-2.62-.009-11.8 0-12.188l.047-2.504 9.629 9.63v3.013L7.312 6.152c-.02 1.514-.04 3.49-.04 5.298 0 1.76.026 3.354.077 4.192.288 4.82.736 7.077 3.252 7.962.77.271 1.487.337 2.683.352.987.012 7.868.006 8.861-.047 1.056-.056 1.765-.822 1.813-1.811.048-.976.064-19.127 0-20.118\"},\"child\":[]}]})(props);\n};\nexport function SiNginx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L1.605 6v12L12 24l10.395-6V6L12 0zm6 16.59c0 .705-.646 1.29-1.529 1.29-.631 0-1.351-.255-1.801-.81l-6-7.141v6.66c0 .721-.57 1.29-1.274 1.29H7.32c-.721 0-1.29-.6-1.29-1.29V7.41c0-.705.63-1.29 1.5-1.29.646 0 1.38.255 1.83.81l5.97 7.141V7.41c0-.721.6-1.29 1.29-1.29h.075c.72 0 1.29.6 1.29 1.29v9.18H18z\"},\"child\":[]}]})(props);\n};\nexport function SiNginxproxymanager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.008 0A822.933 822.933 0 0 0 1.59 6.043V18c3.578 2.087 7.238 4.274 10.418 6 3.928-2.267 6.71-3.868 10.402-6v-3.043l-1.045.6v1.8l-1.545.9-1.56-.9v-1.8l1.56-.885v-.002l.268.156a8.15 8.15 0 0 0 .404-1.754v-.002a8.72 8.72 0 0 0 .072-1.072 9.885 9.885 0 0 0-.072-1.127 8.873 8.873 0 0 0-.515-1.97v-.003a8.137 8.137 0 0 0-1.301-2.242 7.113 7.113 0 0 0-.615-.699 10.271 10.271 0 0 0-.846-.728 7.91 7.91 0 0 0-1.902-1.116 4.776 4.776 0 0 0-.586-.213v-.957c.41.118.812.265 1.2.442a9.2 9.2 0 0 1 1.618.943 9.4 9.4 0 0 1 1.158.986c.273.277.53.568.774.872.532.686.97 1.44 1.302 2.244h-.002a9.45 9.45 0 0 1 .645 2.613c.04.317.06.637.056.957 0 .314-.014.614-.043.914-.082.838-.37 1.786-.542 2.373l.472.27 1.045-.602V8.986l-1.303-.742v-.002l1.303.744V6c-3.56-2.057-7.212-4.154-10.402-6Zm8.08 14.826c-.02.052.003.002.004.002zM12.035 1.213l1.56.9v1.801l-1.56.885-1.545-.885h-.002v-.328a8.458 8.458 0 0 0-1.744.516 8.178 8.178 0 0 0-1.889 1.07l-.001.002a6.77 6.77 0 0 0-.9.783 9.171 9.171 0 0 0-.616.672 8.84 8.84 0 0 0-1.3 2.228l.228.127 1.287-.742 1.203.686c1.929-1.112 3.397-1.961 5.252-3.014l.027.014c1.926 1.114 3.398 1.955 5.238 3.029.028 1.997.014 4.064.014 6.086-1.874 1.084-3.753 2.16-5.28 3.043a859.719 859.719 0 0 1-5.294-3.043V8.957l.043-.027-1.203-.688-1.287.744-.229-.129h-.002a8.376 8.376 0 0 0-.53 2.057c-.044.36-.068.723-.07 1.086.002.344.026.687.07 1.027v.002c.015.215.06.429.102.643l-.83.484a7.017 7.017 0 0 1-.2-1.199A7.065 7.065 0 0 1 2.52 12c0-.329.028-.672.056-1a9.77 9.77 0 0 1 .658-2.6 9.438 9.438 0 0 1 1.303-2.244c.243-.3.5-.57.758-.842.37-.372.773-.71 1.203-1.013-1.215-.084-1.215-.084 0-.002a9.394 9.394 0 0 1 1.645-.942 9.866 9.866 0 0 1 2.347-.7l-.002-.542-1.043-.601 1.045.6zm0 .773-.887.514v1.027l.887.516.887-.516V2.5Zm-.03 6.928c-.935.532-1.888 1.084-2.689 1.543v3.086c.933.535 1.892 1.095 2.692 1.557.926-.565 1.865-1.093 2.676-1.557v-3.086c-.945-.542-1.857-1.074-2.678-1.543Zm-7.74 5.758 1.546.885v1.8l-.329.186c.146.177.303.344.471.5.277.288.58.55.902.785a8.07 8.07 0 0 0 1.83 1.059h.002a8.14 8.14 0 0 0 2.061.57c.417.058.837.087 1.258.086a8.37 8.37 0 0 0 1.332-.1 8.64 8.64 0 0 0 2.017-.572 8.076 8.076 0 0 0 1.86-1.1c.172-.114.315-.242.472-.37l.83.47a9.79 9.79 0 0 1-.945.787l.946.541 1.302-.756-1.302.758-.946-.543c-.516.37-1.067.69-1.644.955l-.002.002a9.502 9.502 0 0 1-2.588.756c-.441.057-.885.086-1.33.086a12.048 12.048 0 0 1-1.26-.072v.002a9.38 9.38 0 0 1-2.605-.744 9.044 9.044 0 0 1-1.688-.971 9.625 9.625 0 0 1-1.775-1.658h-.002l-.412.244-1.56-.9v-1.801zm0 .756-.886.515v1.028l.887.515.886-.515v-1.028zm15.555 0-.902.515v1.028l.902.515.887-.515v-1.028z\"},\"child\":[]}]})(props);\n};\nexport function SiNgrok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.951 7.598v6.713h1.463v-1.69l1.61 1.69H24v-.08l-2.123-2.153 2.002-1.846v-.07H21.95l-1.537 1.496v-4.06zm-2.93 2.41a2.626 2.626 0 00-1.787.635 2.049 2.049 0 00-.703 1.556c-.002.75.311 1.287.7 1.643.526.478 1.221.626 1.767.623.666 0 1.34-.195 1.805-.62.521-.483.713-1.029.713-1.607 0-.73-.31-1.247-.71-1.603-.553-.475-1.202-.628-1.785-.627zm-9.062.039c-1.188-.005-2.1.977-2.104 2.25-.004 1.296.908 2.108 2.032 2.096.664.002.983-.244 1.308-.541v1.193h-1.37l-1.03 1.158v.2H9.66v-6.24H8.195v.435c-.381-.408-.772-.542-1.236-.551zm-4.805.11l-.691.786v-.771H0v4.15h1.463v-2.799c.547.002 1.023-.002 1.49-.003v2.802h1.465v-2.595c-.004-.547-.1-.819-.307-1.061a1.431 1.431 0 00-.914-.51zm8.114.005v4.15h1.468l.002-2.779h1.065l1.164-1.314v-.057h-1.598l-.635.715v-.715zm-2.946 1.115c.504 0 .96.444.948.948a.956.956 0 01-.948.945c-.523 0-.931-.403-.947-.945-.002-.52.443-.94.947-.948zm8.703.001c.525 0 .94.434.944.95-.027.544-.42.95-.944.95s-.934-.417-.95-.95a.955.955 0 01.95-.95z\"},\"child\":[]}]})(props);\n};\nexport function SiNgrx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.024.017V0L12 .008 11.976 0v.017L.812 3.892l1.605 14.875 9.559 5.207V24l.024-.013.024.013v-.026l9.559-5.207 1.605-14.875L12.024.017zm6.868 14.244c-1.094 2.632-3.104 4.02-6.031 4.166-2.829 0-4.661-1.7-4.66-1.7-1.163-.905-1.963-2.046-2.398-3.417-.695-.76-.702-.841-.774-1.145-.072-.303.045-.388.249-.685.136-.198.168-.483.098-.85-.173-.24-.273-.616-.3-1.128 0-.247.166-.508.496-.783.33-.275.533-.486.607-.632.056-.079.077-.423.065-1.031-.004-.598.328-.923.995-.975 1-.08 1.565-.832 1.879-1.174.21-.228.52-.339.91-.341.551-.026 1.052.185 1.484.62 1.075-.055 2.176.235 3.292.863 1.586.942 2.451 1.962 2.596 3.055-.17 1.439-2.102 1.4-5.788-.113-1.93.546-2.878 1.73-2.846 3.552-.001 1.672.808 2.886 2.422 3.643-.787-.772-1.122-1.422-1.01-1.959 1.637 1.937 3.5 2.662 5.588 2.173-.92.032-1.65-.264-2.198-.893 1.411-.035 2.743-.69 3.998-1.972-.724.576-1.482.794-2.284.657 2.173-1.709 2.942-3.702 2.307-5.98l-.002-.006a3.02 3.02 0 0 1 .788 2.03c.014.783-.249 1.61-.795 2.477.408-.318.88-1.002 1.413-2.047.23 2.117-.625 3.724-2.574 4.825.622-.057 1.448-.467 2.473-1.23zm-5.567-6.63a.319.319 0 1 1 .638 0 .319.319 0 0 1-.638 0z\"},\"child\":[]}]})(props);\n};\nexport function SiNhl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.455 0 4.61 2.314c-.262.72-.693 1.172-1.277 1.344l-1.914.565.812 1.843c.376.851.567 1.738.567 2.64 0 2.49-1.272 3.06-1.272 5.827 0 3.988 3.083 6.597 5.948 7.334 1.448.353 1.886.375 3.193.697L12 24l1.334-1.436c1.308-.322 1.744-.344 3.191-.697 2.865-.737 5.95-3.346 5.95-7.334 0-2.767-1.272-3.336-1.272-5.828 0-.9.191-1.788.567-2.639l.812-1.843-1.914-.565c-.585-.172-1.014-.624-1.277-1.344L18.545 0l-1.887 1.563c-.5.414-1.006.623-1.506.623-.668 0-1.429-.326-1.937-.829L12 .157l-1.215 1.2c-.508.503-1.269.829-1.937.829-.5 0-1.006-.21-1.506-.623L5.455 0zm.14.523 1.546 1.28c.508.42 1.09.697 1.707.697.827 0 1.646-.414 2.158-.92L12 .596l.996.984c.512.506 1.33.92 2.156.92.617 0 1.199-.276 1.707-.697l1.545-1.28.694 1.899c.298.817.796 1.335 1.48 1.537l1.572.463-.668 1.517a6.856 6.856 0 0 0-.591 2.766c0 2.591 1.271 3.108 1.271 5.828 0 3.643-2.711 6.257-5.713 7.03-1.484.375-2.177.413-3.283.722C13.022 22.436 12 23.54 12 23.54s-1.022-1.103-1.166-1.254c-1.106-.31-1.797-.347-3.281-.723-3.003-.772-5.715-3.386-5.715-7.029 0-2.72 1.271-3.237 1.271-5.828a6.87 6.87 0 0 0-.591-2.766L1.85 4.422l1.572-.463c.685-.202 1.183-.72 1.482-1.537L5.596.523zM12 1.607s-1.25 1.616-3.152 1.616c-1.475 0-2.93-1.498-2.93-1.498-.658 2.949-3.084 3.16-3.084 3.16s.988 1.746.988 3.814c0 2.654-1.27 3.406-1.27 5.834 0 2.675 1.833 5.482 5.178 6.328 1.59.402 2.687.504 3.495.795.103.097.775.826.775.826s.672-.729.775-.826c.808-.291 1.905-.393 3.495-.795 3.344-.846 5.177-3.653 5.177-6.328 0-2.428-1.267-3.18-1.267-5.834 0-2.068.986-3.814.986-3.814s-2.426-.211-3.084-3.16c0 0-1.455 1.498-2.93 1.498C13.251 3.223 12 1.607 12 1.607zm0 1.01s1.258 1.33 3.152 1.33c1.512 0 2.608-1.021 2.608-1.021.769 2.09 2.42 2.422 2.42 2.422s-.715 1.459-.715 3.351c0 2.809 1.27 3.623 1.27 5.834 0 3.091-2.41 5.058-4.643 5.625-1.769.45-2.925.5-3.701.875 0 0-.284.258-.391.377-.107-.119-.389-.377-.389-.377-.776-.375-1.934-.426-3.703-.875-2.233-.567-4.642-2.534-4.642-5.625 0-2.211 1.27-3.025 1.27-5.834 0-1.892-.716-3.351-.716-3.351s1.651-.333 2.42-2.422c0 0 1.096 1.021 2.608 1.021 1.894 0 3.152-1.33 3.152-1.33zm0 1.06c-.632.465-1.737 1.08-3.152 1.08-.934 0-1.729-.315-2.29-.628A4.515 4.515 0 0 1 4.862 5.79c.224.67.485 1.708.485 2.908 0 2.313-.79 3.396-1.123 4.705l11.582-8.697c-.209.033-.427.05-.653.05-1.414 0-2.52-.615-3.152-1.08zm5.674.805L4.08 14.69c.065 2.008 1.362 3.472 2.844 4.233l11.828-8.883c-.061-.4-.098-.84-.098-1.34 0-1.2.26-2.237.485-2.908a4.438 4.438 0 0 1-1.465-1.309zm-1.666 2.153v3.398l1.8-1.351s-.06.433 0 1.164l-2.822 2.12V8.304c0-.518-.494-.532-.494-.532l1.516-1.136zm-1.871 1.404v4.565l-.975.73v-1.668l-1.121.842v1.67l-1.023.767v-3.662c0-.518-.495-.531-.495-.531l1.518-1.139V11.3l1.121-.842V8.77l.975-.73zm4.838 3.012L7.949 19.33c.053.014.105.029.158.042 1.401.357 3.116.54 3.633.836.117.085.26.236.26.236s.143-.15.26-.236c.517-.296 2.232-.48 3.633-.836 1.941-.493 4.03-2.216 4.03-4.84 0-1.307-.573-2.168-.948-3.482zm-8.852.002v4.564l-1.053.791-1.133-1.738v2.59l-.996.746v-3.662c0-.518-.494-.531-.494-.531l1.41-1.06L9.13 14.7v-2.898l.994-.748zm10.346 9.799a.818.818 0 1 0 0 1.637.818.818 0 0 0 0-1.637zm0 .175a.643.643 0 1 1 0 1.285.643.643 0 0 1 0-1.285zm-.336.176v.934h.176v-.38h.125l.177.38h.194l-.184-.395a.276.276 0 0 0 .184-.262.277.277 0 0 0-.278-.277h-.394zm.176.176h.218a.101.101 0 1 1 0 .203h-.218v-.203z\"},\"child\":[]}]})(props);\n};\nexport function SiNicehash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24c6.627 0 12-5.373 12-12h-8a4 4 0 0 1-8 0H0c0 6.627 5.373 12 12 12zM8 4a4 4 0 0 1-4 4 4 4 0 0 1-4-4 4 4 0 0 1 4-4 4 4 0 0 1 4 4Zm4-4h12v8H12Z\"},\"child\":[]}]})(props);\n};\nexport function SiNiconico (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.4787 7.534v12.1279A2.0213 2.0213 0 0 0 2.5 21.6832h2.3888l1.323 2.0948a.4778.4778 0 0 0 .4043.2205.4778.4778 0 0 0 .441-.2205l1.323-2.0948h6.9828l1.323 2.0948a.4778.4778 0 0 0 .441.2205c.1838 0 .3308-.0735.4043-.2205l1.323-2.0948h2.6462a2.0213 2.0213 0 0 0 2.0213-2.0213V7.5339a2.0213 2.0213 0 0 0-2.0213-1.9845h-7.681l4.4468-4.4469L17.1637 0l-5.1452 5.1452L6.8 0 5.6973 1.1025l4.4102 4.4102H2.5367a2.0213 2.0213 0 0 0-2.058 2.058z\"},\"child\":[]}]})(props);\n};\nexport function SiNike (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 7.8L6.442 15.276c-1.456.616-2.679.925-3.668.925-1.12 0-1.933-.392-2.437-1.177-.317-.504-.41-1.143-.28-1.918.13-.775.476-1.6 1.036-2.478.467-.71 1.232-1.643 2.297-2.8a6.122 6.122 0 00-.784 1.848c-.28 1.195-.028 2.072.756 2.632.373.261.886.392 1.54.392.522 0 1.11-.084 1.764-.252L24 7.8z\"},\"child\":[]}]})(props);\n};\nexport function SiNikon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.267 8.681c-.69 0-1.054.463-1.054.873 0 .144.032.653.949.653.762 0 1.057-.488 1.057-.854 0-.244-.2-.672-.952-.672zm-6.87.215L0 15.146h1.72c.194-1 .455-2.056.711-3.138l1.206 3.136H5.27L6.681 8.9H5l-.715 3.176-1.18-3.18Zm8.587.004L8.6 15.144h1.663l.558-2.375.703 2.375h1.705l-.707-2.508 1.715-2.08h-1.91l-1.38 1.664.743-3.32zm6.608 1.465c-2.582 0-2.962 2.01-3.034 2.379-.19.93.02 2.137 1.235 2.457.8.21 2.051.187 2.855-.47.736-.6 1.1-1.619 1.088-2.575-.012-.92-.79-1.791-2.144-1.791zm6.193.072c-.573.038-1.156.35-1.486.807.044-.188.088-.404.14-.658h-1.7l-.999 4.558h1.695l.563-2.586c.104-.476.488-.68.826-.591.146.04.35.15.281.548l-.574 2.63h1.674l.767-3.51a.96.96 0 0 0-.627-1.14 1.594 1.594 0 0 0-.56-.058zm-15.66.121-1.02 4.586h1.676l1.022-4.586zm9.23 1.104c.372-.002.472.218.44.426-.09.545-.245 1.081-.362 1.539-.082.254-.321.4-.601.4-.286 0-.458-.178-.432-.406.04-.384.286-1.357.356-1.549.12-.334.451-.408.6-.41z\"},\"child\":[]}]})(props);\n};\nexport function SiNim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.095 3.2s-.92.778-1.857 1.55c-.964-.032-2.856.199-3.88.598C5.412 4.708 4.582 4 4.582 4s-.709 1.305-1.154 2.07c-.662.377-1.325.8-1.917 1.36C.824 7.14.026 6.782 0 6.77c.911 1.967 1.524 3.936 3.19 5.12 2.654-4.483 14.983-4.07 17.691-.025 1.75-.977 2.43-3.078 3.119-5.018-.075.026-1.012.362-1.619.61-.363-.423-1.217-1.072-1.702-1.385a96.008 96.008 0 00-1.131-2.122s-.794.632-1.715 1.322c-1.243-.246-2.747-.544-4.012-.47A52.988 52.988 0 0112.095 3.2zM.942 10.95l2.189 5.67c3.801 5.367 13.508 5.74 17.74.105 1.001-2.415 2.352-5.808 2.352-5.808-1.086 1.72-2.852 2.909-3.94 3.549-.774.453-2.558.727-2.558.727l-4.684-2.597-4.71 2.545s-1.761-.303-2.558-.701c-1.608-.92-2.69-2.004-3.83-3.49z\"},\"child\":[]}]})(props);\n};\nexport function SiNintendo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.447 12.546-1.202-1.942h-.864v2.793h.864v-1.942l1.202 1.942h.856v-2.793H4.44l.007 1.942Zm6.828-1.001v-.279h-.451v-.376h-.841v.376h-.458v.279h.458v1.852h.841v-1.852h.451Zm-5.491 1.844h.834v-1.852h-.834v1.852Zm0-2.213h.841v-.572h-.841v.572Zm14.663.233c-.676 0-1.224.467-1.224 1.039 0 .572.548 1.039 1.224 1.039.676 0 1.225-.467 1.225-1.039 0-.572-.549-1.039-1.225-1.039Zm.338 1.431c0 .293-.173.414-.338.414-.165 0-.346-.121-.346-.414v-.783c0-.294.173-.414.346-.414.165 0 .338.12.338.414v.783Zm-2.659-1.212a1.093 1.093 0 0 0-.473-.166c-.601-.053-1.067.482-1.067.971 0 .648.496.881.571.919.285.128.646.135.961-.068v.105h.827v-2.785h-.827c.008 0 .008.595.008 1.024Zm.008.828v.331c0 .286-.196.361-.331.361s-.331-.075-.331-.361v-.662c0-.287.196-.362.331-.362.128 0 .33.075.33.362v.331h.001Zm-9.556-1.001a1.02 1.02 0 0 0-.668.278v-.196h-.834v1.852h.834V12.17c0-.158.172-.339.398-.339.225 0 .383.181.383.339v1.219h.834v-1.008c0-.731-.631-.942-.947-.926Zm6.798 0a1.01 1.01 0 0 0-.668.278v-.196h-.834v1.852h.834V12.17c0-.158.173-.339.398-.339.225 0 .383.181.383.339v1.219h.834v-1.008c0-.731-.631-.942-.947-.926Zm-1.75 1.016c0-.572-.556-1.054-1.232-1.054-.683 0-1.232.467-1.232 1.039 0 .572.549 1.039 1.232 1.039.564 0 1.044-.324 1.187-.76h-.834v.112c0 .339-.225.414-.345.414-.128 0-.353-.075-.353-.413v-.385l1.577.008Zm-1.517-.655a.346.346 0 0 1 .293-.166c.112 0 .225.053.293.166.052.09.052.203.052.361h-.698c0-.158.007-.263.06-.361Zm9.893-.866c0-.09-.068-.135-.203-.135h-.188v.474h.113v-.196h.06l.09.196h.128l-.105-.211c.067-.022.105-.068.105-.128Zm-.218.068h-.06v-.136h.052c.068 0 .105.023.105.068 0 .053-.029.068-.097.068Zm.007-.392a.433.433 0 0 0-.428.43c0 .233.196.429.429.429a.429.429 0 0 0 0-.859h-.001Zm0 .776a.35.35 0 0 1-.345-.346.35.35 0 0 1 .346-.347.35.35 0 0 1 .345.347.35.35 0 0 1-.345.346h-.001Zm-.938-2.364H3.132C1.254 9.03 0 10.386 0 12.004s1.254 2.959 3.14 2.959h17.72c1.886 0 3.14-1.34 3.14-2.959-.007-1.618-1.269-2.966-3.147-2.966Zm-.008 5.202H3.14c-1.495.008-2.404-1.001-2.404-2.236 0-1.235.917-2.228 2.404-2.236h17.705c1.487 0 2.404 1.001 2.404 2.236 0 1.235-.909 2.236-2.404 2.236Z\"},\"child\":[]}]})(props);\n};\nexport function SiNintendo3Ds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.653 16.63a.712.712 0 1 0 1.424 0 .712.712 0 1 0-1.424 0m-9.45 4.238h7.575c.3 0 .524-.225.544-.524v-5.175c-.02-.282-.263-.525-.544-.507H8.203a.54.54 0 0 0-.544.525v5.156c0 .301.244.525.544.525zm13.051-3.525a.729.729 0 0 0 .73-.729.73.73 0 1 0-.73.729zm-1.443-.019a.714.714 0 1 0 .001 1.427.714.714 0 0 0-.001-1.427zm-.713-2.137a.712.712 0 1 0 1.424 0 .712.712 0 1 0-1.424 0M2.54 16.612a1.65 1.65 0 1 0 3.3 0 1.65 1.65 0 1 0-3.3 0M21.272 0H2.728A2.73 2.73 0 0 0-.01 2.72v18.542C.009 22.781 1.228 24 2.728 24h18.526a2.753 2.753 0 0 0 2.756-2.719V2.737C23.991 1.219 22.772 0 21.272 0zm1.913 21.281a1.92 1.92 0 0 1-1.912 1.912H2.728a1.92 1.92 0 0 1-1.913-1.912v-8.456h22.369v8.456zm0-9.694H.815v-8.85A1.92 1.92 0 0 1 2.728.824h18.544c1.049 0 1.912.863 1.912 1.913v8.85 M17.409 3.112H6.534c-.3 0-.544.263-.544.563V9.15c0 .3.226.563.544.563h10.875a.548.548 0 0 0 .544-.563V3.656a.543.543 0 0 0-.544-.544z\"},\"child\":[]}]})(props);\n};\nexport function SiNintendogamecube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.816 15.126l4.703 2.715v-5.433L6.814 9.695v5.432zm-2.025 1.168l6.73 3.882v3.82L1.481 18.206V6.616l3.31 1.91v7.769zM12 6.145L7.298 8.863 12 11.579l4.704-2.717L12 6.146zm0-2.332l5.659 3.274 3.31-1.91L12 0 1.975 5.79 5.28 7.695zm7.207 12.48v-3.947l-2.023 1.167v1.614l-4.703 2.715v.005-5.436L22.518 6.62v11.587L12.48 24v-3.817l6.727-3.887z\"},\"child\":[]}]})(props);\n};\nexport function SiNintendoswitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.176 24h3.674c3.376 0 6.15-2.774 6.15-6.15V6.15C24 2.775 21.226 0 17.85 0H14.1c-.074 0-.15.074-.15.15v23.7c-.001.076.075.15.226.15zm4.574-13.199c1.351 0 2.399 1.125 2.399 2.398 0 1.352-1.125 2.4-2.399 2.4-1.35 0-2.4-1.049-2.4-2.4-.075-1.349 1.05-2.398 2.4-2.398zM11.4 0H6.15C2.775 0 0 2.775 0 6.15v11.7C0 21.226 2.775 24 6.15 24h5.25c.074 0 .15-.074.15-.149V.15c.001-.076-.075-.15-.15-.15zM9.676 22.051H6.15c-2.326 0-4.201-1.875-4.201-4.201V6.15c0-2.326 1.875-4.201 4.201-4.201H9.6l.076 20.102zM3.75 7.199c0 1.275.975 2.25 2.25 2.25s2.25-.975 2.25-2.25c0-1.273-.975-2.25-2.25-2.25s-2.25.977-2.25 2.25z\"},\"child\":[]}]})(props);\n};\nexport function SiNissan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.576 14.955l-.01.028c-1.247 3.643-4.685 6.086-8.561 6.086-3.876 0-7.32-2.448-8.562-6.09l-.01-.029H.71v.329l1.133.133c.7.08.847.39 1.038.78l.048.096c1.638 3.495 5.204 5.752 9.08 5.752 3.877 0 7.443-2.257 9.081-5.747l.048-.095c.19-.39.338-.7 1.038-.781l1.134-.134v-.328zM3.443 9.012c1.247-3.643 4.686-6.09 8.562-6.09 3.876 0 7.319 2.447 8.562 6.09l.01.028h2.728v-.328l-1.134-.133c-.7-.081-.847-.39-1.038-.781l-.047-.096C19.448 4.217 15.88 1.96 12.005 1.96c-3.881 0-7.443 2.257-9.081 5.752l-.048.095c-.19.39-.338.7-1.038.781l-1.133.133v.329h2.724zm13.862 1.586l-1.743 2.795h.752l.31-.5h2.033l.31.5h.747l-1.743-2.795zm1.033 1.766h-1.395l.7-1.124zm2.81-1.066l2.071 2.095H24v-2.795h-.614v2.085l-2.062-2.085h-.795v2.795h.619zM0 13.393h.619v-2.095l2.076 2.095h.781v-2.795h-.619v2.085L.795 10.598H0zm4.843-2.795h.619v2.795h-.62zm4.486 2.204c-.02.005-.096.005-.124.005H6.743v.572h2.5c.019 0 .167 0 .195-.005.51-.048.743-.472.743-.843 0-.381-.243-.79-.705-.833-.09-.01-.166-.01-.2-.01H7.643a.83.83 0 0 1-.181-.014c-.129-.034-.176-.148-.176-.243 0-.086.047-.2.18-.238a.68.68 0 0 1 .172-.014h2.357v-.562H7.6c-.1 0-.176.004-.238.014a.792.792 0 0 0-.695.805c0 .343.214.743.685.81.086.009.205.009.258.009H9.2c.029 0 .1 0 .114.005.181.023.243.157.243.276a.262.262 0 0 1-.228.266zm4.657 0c-.02.005-.096.005-.129.005H11.4v.572h2.5c.019 0 .167 0 .195-.005.51-.048.743-.472.743-.843 0-.381-.243-.79-.705-.833-.09-.01-.166-.01-.2-.01H12.3a.83.83 0 0 1-.181-.014c-.129-.034-.176-.148-.176-.243 0-.086.047-.2.18-.238a.68.68 0 0 1 .172-.014h2.357v-.562h-2.395c-.1 0-.176.004-.238.014a.792.792 0 0 0-.695.805c0 .343.214.743.686.81.085.009.204.009.257.009h1.59c.029 0 .1 0 .114.005.181.023.243.157.243.276a.267.267 0 0 1-.228.266Z\"},\"child\":[]}]})(props);\n};\nexport function SiNixos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.352 1.592l-1.364.002L5.32 2.75l1.557 2.713-3.137-.008-1.32 2.34H14.11l-1.353-2.332-3.192-.006-2.214-3.865zm6.175 0l-2.687.025 5.846 10.127 1.341-2.34-1.59-2.765 2.24-3.85-.683-1.182h-1.336l-1.57 2.705-1.56-2.72zm6.887 4.195l-5.846 10.125 2.696-.008 1.601-2.76 4.453.016.682-1.183-.666-1.157-3.13-.008L21.778 8.1l-1.365-2.313zM9.432 8.086l-2.696.008-1.601 2.76-4.453-.016L0 12.02l.666 1.157 3.13.008-1.575 2.71 1.365 2.315L9.432 8.086zM7.33 12.25l-.006.01-.002-.004-1.342 2.34 1.59 2.765-2.24 3.85.684 1.182H7.35l.004-.006h.001l1.567-2.698 1.558 2.72 2.688-.026-.004-.006h.01L7.33 12.25zm2.55 3.93l1.354 2.332 3.192.006 2.215 3.865 1.363-.002.668-1.156-1.557-2.713 3.137.008 1.32-2.34H9.881Z\"},\"child\":[]}]})(props);\n};\nexport function SiNodedotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.998,24c-0.321,0-0.641-0.084-0.922-0.247l-2.936-1.737c-0.438-0.245-0.224-0.332-0.08-0.383 c0.585-0.203,0.703-0.25,1.328-0.604c0.065-0.037,0.151-0.023,0.218,0.017l2.256,1.339c0.082,0.045,0.197,0.045,0.272,0l8.795-5.076 c0.082-0.047,0.134-0.141,0.134-0.238V6.921c0-0.099-0.053-0.192-0.137-0.242l-8.791-5.072c-0.081-0.047-0.189-0.047-0.271,0 L3.075,6.68C2.99,6.729,2.936,6.825,2.936,6.921v10.15c0,0.097,0.054,0.189,0.139,0.235l2.409,1.392 c1.307,0.654,2.108-0.116,2.108-0.89V7.787c0-0.142,0.114-0.253,0.256-0.253h1.115c0.139,0,0.255,0.112,0.255,0.253v10.021 c0,1.745-0.95,2.745-2.604,2.745c-0.508,0-0.909,0-2.026-0.551L2.28,18.675c-0.57-0.329-0.922-0.945-0.922-1.604V6.921 c0-0.659,0.353-1.275,0.922-1.603l8.795-5.082c0.557-0.315,1.296-0.315,1.848,0l8.794,5.082c0.57,0.329,0.924,0.944,0.924,1.603 v10.15c0,0.659-0.354,1.273-0.924,1.604l-8.794,5.078C12.643,23.916,12.324,24,11.998,24z M19.099,13.993 c0-1.9-1.284-2.406-3.987-2.763c-2.731-0.361-3.009-0.548-3.009-1.187c0-0.528,0.235-1.233,2.258-1.233 c1.807,0,2.473,0.389,2.747,1.607c0.024,0.115,0.129,0.199,0.247,0.199h1.141c0.071,0,0.138-0.031,0.186-0.081 c0.048-0.054,0.074-0.123,0.067-0.196c-0.177-2.098-1.571-3.076-4.388-3.076c-2.508,0-4.004,1.058-4.004,2.833 c0,1.925,1.488,2.457,3.895,2.695c2.88,0.282,3.103,0.703,3.103,1.269c0,0.983-0.789,1.402-2.642,1.402 c-2.327,0-2.839-0.584-3.011-1.742c-0.02-0.124-0.126-0.215-0.253-0.215h-1.137c-0.141,0-0.254,0.112-0.254,0.253 c0,1.482,0.806,3.248,4.655,3.248C17.501,17.007,19.099,15.91,19.099,13.993z\"},\"child\":[]}]})(props);\n};\nexport function SiNodemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.33 7.851l-.716-.398c1.101-1.569 1.758-3.927.934-7.453 0 0-1.857 5.029-5.59 4.863l-4.37-2.431a1.171 1.171 0 0 0-.536-.15h-.101a1.183 1.183 0 0 0-.538.15L7.042 4.863C3.309 5.03 1.452 0 1.452 0c-.825 3.526-.166 5.884.934 7.453l-.716.398a1.133 1.133 0 0 0-.589.988l.022 14.591c0 .203.109.392.294.491a.58.58 0 0 0 .584 0l5.79-3.204c.366-.211.589-.582.589-.987v-6.817c0-.406.223-.783.588-.984l2.465-1.372a1.19 1.19 0 0 1 .59-.154c.2 0 .407.05.585.154l2.465 1.372c.365.201.588.578.588.984v6.817c0 .405.226.779.59.987l5.788 3.204a.59.59 0 0 0 .589 0 .564.564 0 0 0 .292-.491l.019-14.591a1.129 1.129 0 0 0-.589-.988z\"},\"child\":[]}]})(props);\n};\nexport function SiNodered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 0C1.338 0 0 1.338 0 3v6.107h2.858c1.092 0 1.97.868 1.964 1.96v.021c.812-.095 1.312-.352 1.674-.683.416-.382.69-.91 1.016-1.499.325-.59.71-1.244 1.408-1.723.575-.395 1.355-.644 2.384-.686v-.45c0-1.092.88-1.976 1.972-1.976h7.893c1.091 0 1.974.884 1.974 1.976v1.942c0 1.091-.883 2.029-1.974 2.029h-7.893c-1.092 0-1.972-.938-1.972-2.03v-.453c-.853.037-1.408.236-1.798.504-.48.33-.774.802-1.086 1.368-.312.565-.63 1.22-1.222 1.763l-.077.069c3.071.415 4.465 1.555 5.651 2.593 1.39 1.215 2.476 2.275 6.3 2.288v-.46c0-1.092.894-1.946 1.986-1.946H24V3c0-1.662-1.338-3-3-3zm10.276 5.41c-.369 0-.687.268-.687.637v1.942c0 .368.318.636.687.636h7.892a.614.614 0 0 0 .635-.636V6.047a.614.614 0 0 0-.635-.636zM0 10.448v3.267h2.858a.696.696 0 0 0 .678-.69v-1.942c0-.368-.31-.635-.678-.635zm4.821 1.67v.907A1.965 1.965 0 0 1 2.858 15H0v6c0 1.662 1.338 3 3 3h18c1.662 0 3-1.338 3-3v-1.393h-2.942c-1.092 0-1.986-.913-1.986-2.005v-.445c-4.046-.032-5.598-1.333-6.983-2.544-1.437-1.257-2.751-2.431-7.268-2.496zM21.058 15a.644.644 0 0 0-.647.66v1.942c0 .368.278.612.647.612H24V15z\"},\"child\":[]}]})(props);\n};\nexport function SiNokia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.59 9.348v5.304h.796V9.348Zm-8.497-.09c-1.55 0-2.752 1.127-2.752 2.742 0 1.687 1.202 2.742 2.752 2.742 1.55 0 2.754-1.055 2.751-2.742a2.72 2.72 0 0 0-2.751-2.742ZM10.05 12c0 1.195-.876 1.987-1.957 1.987-1.082 0-1.958-.792-1.958-1.987 0-1.174.876-1.987 1.958-1.987 1.08 0 1.957.813 1.957 1.987zM0 9.176v5.476h.812v-3.619l4.218 3.79v-1.135zM11.442 12l2.952 2.652h1.184L12.622 12l2.956-2.652h-1.184ZM24 14.652h-.875l-.64-1.175h-2.898l-.64 1.175h-.875l1.06-1.958h2.937l-1.465-2.72.432-.798Z\"},\"child\":[]}]})(props);\n};\nexport function SiNomad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.004 0-10.4 6v12l10.392 6 10.4-6V6L12.004 0zm4.639 13.204-2.77 1.6-3.347-1.832v3.826l-3.144 1.995V10.8L9.88 9.272l3.462 1.823V7.191l3.301-1.984v7.997z\"},\"child\":[]}]})(props);\n};\nexport function SiNorco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.055 2.707a.971.971 0 00-.688.387L0 16.78h4.049l7.27-9.597 1.927 5.74 1.42-1.875-2.578-7.676a.983.983 0 00-1.033-.666zM19.95 7.22l-7.27 9.597-1.927-5.74-1.42 1.875 2.578 7.676a.987.987 0 001.72.28L24 7.218z\"},\"child\":[]}]})(props);\n};\nexport function SiNordicsemiconductor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m11.3384 12.4477 12.0796 6.9917-2.8939 1.73-1.92 1.0924c-.2979.1987-.5627.298-.8938.1656h-.033c-.0331 0-.0663 0-.0994-.0331L6.1572 15.8067v6.72c-.2453 0-.3825-.0384-.5627-.1324L.5627 19.448C.2317 19.2495 0 18.8853 0 18.488V5.8713l10.7656 6.2395.5728.3369zm5.7544-10.7733-4.4662 2.5522 4.4662 2.5965V1.6744zm6.0465 2.546-4.4359-2.5489c-.2648-.1324-.5627-.1986-.8606-.1986v6.6538l-9.9642-5.793-1.1255-.629c-.4966-.2649-.9269-.298-1.4234-.0663L3.3765 2.7971.8607 4.2536c-.331.1986-.5628.4634-.7283.8276l.2437.1412 3.2623 1.8908 7.4234 4.3024-.6586-.3817.7385.428.577.3392 5.0774 2.939 6.9976 4.0502.107.062c.0662-.2318.0993-.6536.0993-.6536V5.7101c0-.629-.331-1.1917-.8607-1.4896zM6.9073 22.2528l4.4525-2.5792-4.4526-2.5683v5.1475z\"},\"child\":[]}]})(props);\n};\nexport function SiNordvpn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.2838 21.5414A11.9866 11.9866 0 010 14.4832C0 7.8418 5.3727 2.4586 12 2.4586c6.6279 0 12 5.3832 12 12.0246a11.9853 11.9853 0 01-2.2838 7.0582l-5.7636-9.3783-.5565.9419.5645 2.6186L12 8.9338l-2.45 4.1447.5707 2.6451-2.0764-3.5555-5.7605 9.3733z\"},\"child\":[]}]})(props);\n};\nexport function SiNormalizedotcss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.427 6.361v5.064l-5.381.705 7.058.924v-1.915l5.469 6.5v-5.064l5.382-.705-7.059-.924v1.914zM12 0l12 12-12 12L0 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiNorton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.978 12c0 6.617-5.373 12-11.978 12C5.395 24 .022 18.617.022 12S5.395 0 12 0c1.826 0 3.557.41 5.107 1.146l-1.99 2.567A8.787 8.787 0 0 0 12 3.145c-4.657 0-8.484 3.627-8.815 8.21a9.595 9.595 0 0 0-.023.645c0 4.883 3.964 8.855 8.838 8.855 4.874 0 8.838-3.972 8.838-8.855 0-.652-.07-1.29-.205-1.902l2.309-2.979A11.948 11.948 0 0 1 23.978 12m-2.442-7.253L19.518 7.35l-7.082 9.14-5.778-5.175L8.75 8.97l3.27 2.928L17.38 4.98l1.924-2.484a12.08 12.08 0 0 1 2.231 2.25\"},\"child\":[]}]})(props);\n};\nexport function SiNorwegian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.6958 11.0552c-.4325-.2169-.859-.4105-1.3045-.6303.0553-.1311.0729-.2447.0321-.3742l-.1936-.2126-.2752.0452-.2839.15c-.0366-.0248-.1802-.0952-.2285-.1151l.2096-.1309c.3495-.2431.7134-.4703 1.054-.7381.3306-.2533.6697-.5067.8895-.8575.0524-.1034.1325-.2169.1005-.348l-.0641-.1121-.1062-.0596-.2287-.0903c-.1961-.0356-.4086-.0768-.6128-.07-.262.0132-.5183.0656-.773.1325-.3639.0975-.7774.2839-1.2243.5212-.4746.2518-.9158.5532-1.3598.8749-.067-.0962-.2038-.198-.3407-.182-.2315.051-.447.2315-.626.3814-.0905-.0112-.2123-.0457-.3029-.0568-.4032-.0655-.8298-.1106-1.2258-.1529-.3014-.0495-.6115-.0873-.9157-.1178-.2591-.0263-.4513-.07-.6974-.0568l-.3086.1688-.2184.2025.0058.083c.1544.0771.3276.0858.479.1498.4331.1063.6198.1637 1.1268.2825.2605.0611.3276.0873.594.1615.2649.1092.5226.2446.773.3581-.2581.1862-.6244.4367-.9201.6158l-.2199.1034-.2198-.0655c-.3392-.1485-.5983-.265-.8996-.3975l-.2883.0758-.0917.0495-.0699.1064.0626.1295c.1703.1761.3291.3508.5008.5212l-.0073.0059c-.1194-.0175-.2824-.0335-.4192-.0467-.1369-.0422-.2985-.0014-.4164.0801l.0146.1426c.2925.1329.6685.1987.9724.3268-5.325 2.3881-10.4741 3.4815-12.5049 3.2365-1.8242-.2198-1.6145-3.2508 1.2753-5.6704l-.757.0015c-3.641 2.8811-4.8872 6.3881-2.341 6.9064 2.8282.5741 8.586-1.2302 14.5229-4.2179.1495.0589.2871-.0412.4133-.0688.3201.0788.6532.1774.9768.2489l.1864-.0596.0364-.0524c-.0495-.1587-.2038-.2214-.3072-.348.3058-.0903.6057-.1965.9056-.2985.4658-.1601.8633-.3537 1.2869-.5459.2722.0306.5401.0394.8095.0452.2242.0102.4381 0 .6566.0335.179.0058.3217.0334.5037.064.5126.0973 1.0251.186 1.5329.2985.1952.0495.364.0844.5562.1295.1864-.0087.3319-.1267.4906-.2052L24 11.2153l-.3042-.1601zm-5.9365-.2548c-.3493.1849-.7351.3989-1.2476.626-.1325.0597-.2737.0947-.4279.0655l-.2127-.0291c-.2119-.2186-.449-.4343-.658-.6595l.1209-.067h.0465c.3563.1553.6744.3307 1.0337.4834l.3072-.0859c.4521-.279.801-.4989 1.2228-.7657.1427.0582.2053.0873.3422.1426-.1791.1063-.3567.198-.5271.2897zm.7741-1.0166l-.0773-.1325.019-.2664.0539-.0466c.0755-.0582.2389-.1644.3245-.2053l.0146.2563.0698.1296c-.1367.0873-.2662.1892-.4045.2649zm2.0358-.8299c-.1499.0961-.4643.3567-.4731.3684-.2388-.0292-.463-.0349-.6901-.0597l.0465-.0248c.3029-.2475.5708-.4076.9071-.6129.2983-.1806.7395-.4164 1.1035-.5707.3276-.1267.6609-.2315 1.0176-.2838.198-.0291.3945-.0452.5926.0188-.2169.048-.348.0859-.5824.1835-.2038.0844-.5284.2154-.7905.3436-.3872.1936-.7118.3697-1.1312.6376z\"},\"child\":[]}]})(props);\n};\nexport function SiNotepadplusplus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.443 2.285c-.305.005-.6.06-.853.248-.256.168-.546.32-.723.578a6.273 6.273 0 00-.71 2.463c-1.009-.413-2.08-.716-3.177-.676a8.602 8.602 0 00-1.93.604c-1.26.657-2.058 1.943-2.53 3.246a6.84 6.84 0 00-.604 1.805c-.107.568-.322 1.115-.357 1.695-.002.394.029.788.023 1.182-.422.263-.926.245-1.398.328-.34-.008-.67-.18-1.014-.07-.36.172-.75.269-1.111.437-.087.51-.166 1.225.457 1.424 1.064-.002 2.132.002 3.195.021.192.98.38 1.99.898 2.86.613.987 1.213 2.025 2.147 2.75.888.593 2.02.617 3.039.441.387-.043.656-.35 1.004-.492.212-.126.527-.156.607-.428.698-1.13.163-2.531-.47-3.56-.403-.707-1.275-.853-2.018-.82-.436.065-.712.44-1.063.667-.388.235-.761.735-.468 1.186.251.473.561 1.107 1.193 1.074.399-.046.932-.136 1.106-.553.077-.505-.519-.748-.92-.838.019.247.045.494.07.743-.207-.143-.415-.28-.625-.418.128-.667.87-.65 1.38-.854.52.81 1.068 1.852.645 2.815-.489.612-1.37.535-2.054.375-.894-.137-1.487-.933-1.881-1.682-.594-1.035-1.323-2.145-1.196-3.387.417-.021.834-.02 1.25.004.398.094.752.438 1.182.27.922-.252 1.881-.1 2.822-.11.74-.052 1.484-.062 2.225-.031.268.073.411.4.72.38.358.12.558-.246.827-.4a17.954 17.954 0 011.79.002c.283.494.706 1.022 1.31 1.092.734.027 1.356-.493 1.753-1.064.52.117 1.082.282 1.586.021 1.095-.464 2.3-.464 3.43-.785v-.322c-.907-.61-2.027-.441-3.043-.695-.775-.133-1.562-.012-2.34-.022-.345-.236-.683-.509-1.119-.537-.134.059-.27.113-.404.168.356.04.728.12.994.38-.336-.02-.684-.004-1.002-.126-.428.157-.835.4-.902.894-.182-.255.083-.493.189-.72-.24-.507-.826-.768-.994-1.315a.289.289 0 01.48-.008c.234.345.426.715.573 1.104.217.013.435.027.654.045v-.25c-.109.045-.216.09-.322.142-.189-.412-.351-.837-.485-1.271.258.062.506.155.766.207 1.176-.184 2.439-.412 3.36-1.232.194-.2.542-.37.484-.698-.057-.474-.402-.841-.573-1.277.267-.101.535-.2.793-.32.918-.899 1.377-2.185 1.477-3.448-.092-.673-.282-1.413-.803-1.886-.95-.48-2.07-.324-3.035.025-.437.174-.76.527-1.123.813-.296-.066-.477-.41-.672-.633-.375-.64-.89-1.235-1.596-1.51-.293-.011-.608-.055-.914-.05zm.395.516c.59.02 1.109.506 1.443.972.222.37.524.682.885.916a5.218 5.218 0 01-.277 3.791c-.167.375-.519.605-.864.795-.91.267-1.874-.133-2.521-.783l.012-.094c-.458-.214-.537-.767-.616-1.21-.39-.893-.293-1.916-.006-2.823.212-.71.756-1.39 1.526-1.498a1.12 1.12 0 01.418-.066zm5.592 1.025c.616.002 1.29.28 1.44.926.48 1.112-.052 2.344-.688 3.273-.368.345-.792.627-1.137 1-.425-.844-1.359-1.219-2.223-1.437.16-.808.04-1.628.022-2.44.468-.835 1.44-1.154 2.326-1.304.084-.011.172-.018.26-.018zm.775 1.62a7.73 7.73 0 01-.523.138c-.125.181-.252.363-.381.545.141.372.636.718.984.38a1.297 1.297 0 00-.08-1.064c-.178-.318 0 0 0 0zm-11.988.046c.9-.011 1.793.272 2.601.653.38.153.353.6.438.933.065.26.14.516.217.774.126.383.292.78.62 1.037.546.418 1.108.867 1.794 1.025a2.425 2.425 0 001.787-.303c.45-.404.668-1.007 1.137-1.396.44.215.927.318 1.351.568.44.278.653.777.912 1.207.09.194.164.392.242.588-.786.782-1.936.988-2.974 1.23-.43.128-.829-.096-1.186-.304-.184.101-.367.209-.552.309a3.718 3.718 0 01-2.145.45 32.773 32.773 0 01-.55-.072c.084-.376.182-.749.259-1.127-.092.008-.277.02-.37.026-.31.476-.325 1.052-.263 1.597.015.207.028.413.037.62a1.573 1.573 0 01-.408-.932c.016-.391.065-.778.1-1.168-.41-.177-.571.292-.647.596 0 .168.012.335.024.502-.714.163-1.48.246-2.188.011-.514-.168-1.075-.182-1.557-.445-.016-.2-.033-.398-.054-.596-.141-.026-.282-.051-.422-.08-.189.507-.452 1.021-.424 1.575.095.365.401.634.629.925-.335.098-.791.022-1.016.334-.135.601.413.948.772 1.319-.516-.19-1.089-.463-1.266-1.03.26-.302.554-.57.881-.797-.471-.698-.676-1.743-.066-2.421-.118-.143-.257-.39-.477-.268-.172.162-.318.35-.484.52-.7.533-.976 1.386-1.399 2.12-.205-.007-.41-.013-.615-.013l-.01-.254a4.621 4.621 0 01-.023-1.014c.153-.596.418-1.158.568-1.755l.051-.194.086-.293c.452-1.231 1.008-2.494 2.012-3.379.642-.636 1.563-.81 2.396-1.07.06-.003.122-.007.182-.008zm5.12.496c-.38-.012-.738.145-.675.596-.055.394.323.572.592.76.602-.003.872-.686.707-1.178a1.264 1.264 0 00-.623-.178zm-8.064 5.79a1.865 1.865 0 00.225 1.622c-.391.203-.826.213-1.256.211-.09-.648.318-1.202.621-1.736.137-.03.275-.062.41-.098zm1.213.544c.353.101.773.09 1.051.358-.042.174-.083.348-.113.525a5.16 5.16 0 00-.654.465 1.747 1.747 0 01-.284-1.348zm7.168.324c.211.023.262.279.4.407.236.306.573.512.852.775-.67.018-1.475.102-1.88-.562-.271.074-.543.183-.684.445l-.4-.217c-.005-.25.004-.502.025-.752h.457c.412.003.824-.028 1.23-.096zm-5.306.147c.02.336.18.73-.07 1.02-.246-.021-.492-.041-.733-.084.326-.195.567-.505.674-.87zm2.51.117c.315.24.445.634.591.986-.938.036-1.878.023-2.814-.039.064-.31.17-.61.252-.916.655-.02 1.313 0 1.97-.03zm.826.535c.152.184.318.355.498.512.24-.277.775-.727.998-.193-.363.174-.813.305-.934.742l-.012.053c.076.381.178.756.307 1.123-.773-.505-.391-1.548-.857-2.237zm-10.815.293c-.02.295-.422.42-.373.727.091.29.21.57.354.838-.491-.023-.989.003-1.475-.088-.046-.256-.161-.635.11-.805.259-.16.47-.389.615-.658.255.04.516.036.77-.014zm.66.153c-.208.362-.461.81-.138 1.191l-.176.078a2.664 2.664 0 01-.361-.676c.102-.184.195-.374.28-.566.132-.006.263-.015.395-.027zm.518.086l.033.08.11-.047c-.04.227-.205.391-.346.562.233.014.296.764-.041.557a10.992 10.992 0 01-.127-.225c.024-.227-.012-.48.181-.648l.055-.067.086-.095.049-.117zm3.943.074c.347.082.895-.121 1.11.166.31.05.603.197.92.205 1.122-.329 2.316-.154 3.47-.154.006.1.02.298.028.398-.869.033-1.737.036-2.604.014-.452-.003-.881-.307-1.338-.17-.2.018-.424.229-.6.043-.28-.003-.562-.012-.843-.018-.045-.17-.1-.34-.143-.484zm-2.428.017c.375.05.849-.096 1.131.225l-.12.27c-.74-.036-1.48-.043-2.221-.065.151-.495.8-.404 1.21-.43zm15.87.016c.502-.022.98.166 1.478.215.003.207.065.428-.035.623-.608.116-1.185.383-1.81.398.011-.168.02-.336.023-.506l.287-.187.057-.543zm-1.61.014c.102 0 .205.004.307.01.229.044.396.227.588.347-.552.275-1.181.207-1.772.127-.456-.062-.93.022-1.377-.115l.125-.225c.708-.06 1.416-.151 2.13-.144zm-3.761.097c.217.002.434.006.652.006.022.22-.071.326-.28.319-.517.014-1.034.012-1.55-.018-.05-.306.34-.249.525-.295.217-.013.435-.014.653-.012zm-.516.647c.542 0 1.083.051 1.615.152.744-.097 1.494-.005 2.235-.135.306.024.95-.115.876.371-.349.042-.674-.177-1.027-.14-.694.043-1.393.107-2.08-.045-.787.165-1.591.088-2.387.137a17.27 17.27 0 00-.021-.305c.268-.03.546-.024.789-.035zm-10.418.012c.6 0 1.203.111 1.803.132l.125.143c-.808-.002-1.622.062-2.426-.022a13.543 13.543 0 01-.104-.209c.2-.032.402-.044.602-.044zm3.426.119c.34.003.683.008 1.025.002 1.337.016 2.672.035 4.006.125a6.16 6.16 0 00-.098.168c-1.304.043-2.606.02-3.91.015l-.822-.029c-.067-.094-.134-.19-.201-.281zm8.642.39c.43.192.857.393 1.305.543.259-.104.615-.671.826-.26-.328.305-.791.614-1.26.51-.36-.17-.59-.52-.87-.793zm-11.984.07l.33.05c.363.841.38 1.81.873 2.599.284.467.518.96.793 1.432.287.492.762.824 1.207 1.162.955.702 2.52.596 3.197-.438.427-.922-.104-1.898-.474-2.74-.634-.996-2.29-.238-2.242.848.364.218.767.663 1.222.384a10.497 10.497 0 01-.013-.533c.108.12.19.261.296.383-.255.329-.67.314-1.045.262-.151-.168-.307-.331-.46-.496-.188-1.083 1.193-1.994 2.11-1.446.655.42.838 1.228 1.099 1.91.301.821-.144 1.793-.924 2.159-.601.388-1.346.234-2.018.234-.917-.044-1.515-.793-2.117-1.387-.58-.712-.958-1.557-1.41-2.351a7.712 7.712 0 01-.424-2.031z\"},\"child\":[]}]})(props);\n};\nexport function SiNotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.459 4.208c.746.606 1.026.56 2.428.466l13.215-.793c.28 0 .047-.28-.046-.326L17.86 1.968c-.42-.326-.981-.7-2.055-.607L3.01 2.295c-.466.046-.56.28-.374.466zm.793 3.08v13.904c0 .747.373 1.027 1.214.98l14.523-.84c.841-.046.935-.56.935-1.167V6.354c0-.606-.233-.933-.748-.887l-15.177.887c-.56.047-.747.327-.747.933zm14.337.745c.093.42 0 .84-.42.888l-.7.14v10.264c-.608.327-1.168.514-1.635.514-.748 0-.935-.234-1.495-.933l-4.577-7.186v6.952L12.21 19s0 .84-1.168.84l-3.222.186c-.093-.186 0-.653.327-.746l.84-.233V9.854L7.822 9.76c-.094-.42.14-1.026.793-1.073l3.456-.233 4.764 7.279v-6.44l-1.215-.139c-.093-.514.28-.887.747-.933zM1.936 1.035l13.31-.98c1.634-.14 2.055-.047 3.082.7l4.249 2.986c.7.513.934.653.934 1.213v16.378c0 1.026-.373 1.634-1.68 1.726l-15.458.934c-.98.047-1.448-.093-1.962-.747l-3.129-4.06c-.56-.747-.793-1.306-.793-1.96V2.667c0-.839.374-1.54 1.447-1.632z\"},\"child\":[]}]})(props);\n};\nexport function SiNotist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.9327 3.8008c-1.099.11-2.288.4-3.038.74-1.069.499-1.259.869-.909 1.868.36 1.0401.19 2.3081-1.0001 7.5053-.878 3.876-1.027 4.686-.977 5.406.04.47.09.63.29.7901.22.179.33.189 1.688.129 3.408-.17 4.0571-.22 4.2671-.34.24-.13.25-.2.44-1.758.32-2.8681 1.788-7.1552 3.027-8.8942 1.0601-1.479 2.3591-2.128 3.0982-1.549.78.62.76 1.559-.13 4.147-.68 1.999-.79 2.428-.909 3.617-.15 1.4601.13 2.4891.96 3.4082.849.94 2.118 1.409 3.846 1.409 1.64 0 2.9681-.41 4.3771-1.339 1.29-.86 2.8281-2.608 3.0081-3.4281.1-.41-.07-.859-.35-.969-.41-.15-.65-.04-1.389.63-.859.78-1.249.949-2.008.889-1.0101-.08-1.4501-.66-1.4501-1.919 0-.899.09-1.349.65-3.3171.79-2.728.93-3.9671.58-5.0271-.57-1.768-2.978-2.538-5.6461-1.798-1.449.41-3.238 1.449-4.5971 2.688-.38.34-.68.59-.68.56 0-.02.07-.35.16-.72.34-1.499.2-2.248-.479-2.598-.39-.2-1.599-.26-2.8281-.13z\"},\"child\":[]}]})(props);\n};\nexport function SiNounproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.672 8.846H24v6.327h-6.328zM6.328 11.99a3.164 3.164 0 0 1-3.164 3.163A3.164 3.164 0 0 1 0 11.991a3.164 3.164 0 0 1 3.164-3.164 3.164 3.164 0 0 1 3.164 3.164m5.504 1.142l2.04 2.021 1.142-1.16-2.022-2.003 2.022-2.003-1.142-1.142-2.04 2.003L9.81 8.846 8.649 9.988l2.022 2.003-2.022 2.003 1.16 1.16Z\"},\"child\":[]}]})(props);\n};\nexport function SiNovu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.48 9.6193c0 .6452-.7834.9647-1.2347.5035L8.0067.6804C9.256.2398 10.6 0 12 0c2.387 0 4.611.6969 6.48 1.8983zm3.36-4.4895v4.4895c0 3.6564-4.4392 5.4669-6.9962 2.8534L4.9087 2.3185C1.9323 4.5022 0 8.0255 0 12c0 2.5553.7987 4.924 2.16 6.8701v-4.4654c0-3.6564 4.4392-5.4669 6.9963-2.8534l9.9214 10.1403C22.0617 19.5086 24 15.9806 24 12c0-2.5553-.7987-4.924-2.16-6.8702ZM6.7546 13.9012l9.2212 9.4245C14.7316 23.7625 13.3934 24 12 24c-2.3869 0-4.611-.6968-6.48-1.8983v-7.697c0-.6453.7834-.9647 1.2346-.5035z\"},\"child\":[]}]})(props);\n};\nexport function SiNow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.8009 11.9974c0-.974.7878-1.7634 1.7596-1.7634.9718 0 1.7596.7895 1.7596 1.7634 0 .9738-.7878 1.7634-1.7596 1.7634-.9718 0-1.7596-.7896-1.7596-1.7634zm13.0277-2.896l-1.2166 2.4524-.7878-2.3188-.0015-.0003c-.1566-.4505-.5822-.7737-1.0829-.7737-.399 0-.7505.2054-.956.517-.5255.8015-1.0497 1.6094-1.5735 2.414l-.2785-1.956c-.0963-.6296-.6807-1.0587-1.3048-.9624-.6249.096-1.0538.6778-.958 1.304l.0488.328c-.6427-1.0749-1.8162-1.7945-3.1575-1.7945-1.353 0-2.5352.7324-3.174 1.823l.07-.3434c.1223-.6008-.2645-1.1873-.864-1.31-.5993-.1223-1.1848.265-1.307.8659l-.4763 2.3382-1.752-2.7177c-.198-.3042-.5399-.5053-.9284-.5053-.5317 0-.976.3765-1.084.879l-1.0217 5.012c-.1223.6007.257 1.1846.8575 1.3121.0747.0159.1556.0235.2291.024.5139.0036.9763-.3579 1.0844-.892l.4763-2.3383c.5924.9217 1.1845 1.844 1.779 2.7641.196.2777.5281.4662.9018.4662.5462 0 1.0002-.398 1.0915-.9219l.469-2.302c.2292 1.815 1.7755 3.2187 3.6488 3.2187 1.7257 0 3.1736-1.191 3.5705-2.7972l.2613 1.759c.0736.579.5474 1.0371 1.1411 1.0371.4272 0 .7756-.2445.9972-.5841l1.8844-2.8942.905 2.6645c.1622.4752.5808.8138 1.0961.8138.4788 0 .855-.288 1.0609-.7155l2.402-4.845c.2834-.568.0528-1.2551-.5123-1.5403-.5647-.285-1.2558-.0524-1.5379.5196Z\"},\"child\":[]}]})(props);\n};\nexport function SiNpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z\"},\"child\":[]}]})(props);\n};\nexport function SiNrwl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.357 8.258a3.424 3.424 0 00-.845.123l.054-.02a3.437 3.437 0 00-.841.346 3.437 3.437 0 00-.262.168 3.437 3.437 0 00-.11.078 3.424 3.424 0 00-.025.022 3.437 3.437 0 00-.01.005 3.424 3.424 0 00-.103.084 3.437 3.437 0 00-.115.104 3.437 3.437 0 00-.05.045 3.424 3.424 0 00-.08.08 3.424 3.424 0 00-.099.107 3.437 3.437 0 00-.03.034 3.424 3.424 0 00-.071.086 3.437 3.437 0 00-.034.04 3.424 3.424 0 00-.066.088 3.437 3.437 0 00-.006.008 3.424 3.424 0 00-.072.1 3.437 3.437 0 00-.014.02 3.424 3.424 0 00-.082.132 3.424 3.424 0 00-.074.127 3.437 3.437 0 00-.012.026 3.424 3.424 0 00-.062.12 3.424 3.424 0 00-.067.143 3.424 3.424 0 00-.054.135 3.437 3.437 0 00-.008.02 3.424 3.424 0 00-.131.437 3.424 3.424 0 00-.031.152 3.424 3.424 0 00-.026.149 3.437 3.437 0 000 .013 3.424 3.424 0 00-.027.303A3.424 3.424 0 000 11.68a3.437 3.437 0 000 .04 3.424 3.424 0 00.004.124A3.424 3.424 0 00.016 12a3.424 3.424 0 00.015.14 3.437 3.437 0 00.01.057 3.424 3.424 0 00.018.108 3.437 3.437 0 000 .004 3.424 3.424 0 00.025.123 3.437 3.437 0 00.037.15 3.437 3.437 0 00.096.297 3.437 3.437 0 00.056.144 3.437 3.437 0 00.432.745c.014.02.025.024.04.043a3.424 3.424 0 00.007.01 3.424 3.424 0 00.305.33l.011.013c.1.09.16.132.137.129.008.006.02.01.03.018a3.424 3.424 0 00.017.017.711.711 0 01-.205-.08.683.683 0 00-.39-.088.696.696 0 00-.608.947 1.993 1.993 0 01.564-.12 2.088 2.088 0 01.34.007 1.707 1.707 0 00.283.006c.05-.004.098-.01.147-.018a1.714 1.714 0 00.584-.203 3.424 3.424 0 00.437.17 4.43 4.43 0 002.989-.193.528.528 0 00.115-.076.179.179 0 00.076.03l1.789.169v.863H8.75v-.734l1.12.105-4.204-.754a.111.111 0 00-.014-.004c-.01-.1-.095-.172-.13-.218a.134.134 0 01-.03-.07 1.64 1.64 0 00-1.496-1.52.504.504 0 00-.18-.193.503.503 0 01-.187-.4.56.56 0 00-.498.44 1.393 1.393 0 01-.377-2.222 1.798 1.798 0 011.312-.563A1.824 1.824 0 015.83 10.96a.914.914 0 01-.543.32.904.904 0 00-.736.748c.35 0 .585.477 1.236.477a.59.59 0 00.547-.367.592.592 0 00.549.367 1.17 1.17 0 00.49-.106v2.002l1.377.327v-1.592l2.193 2.605H12.1v-4.89h-1.38v2.605L8.53 10.852H7.373v.427c-.283-.05-.556-.255-.65-.52a3.424 3.424 0 00-3.366-2.501zM22.109 9.96v4.414c0 1.186.766 1.336 1.485 1.336.219 0 .406-.02.406-.02v-1.03s-.078.007-.164.007c-.305 0-.375-.12-.375-.453V9.96zm-6.816 1.932a2.057 2.057 0 00-.709.128 1.253 1.253 0 00-.535.385v-.453h-1.285v3.79h1.347v-1.74c0-.316.081-.551.244-.704.164-.154.39-.23.678-.23a2.937 2.937 0 01.307.017v-1.193a2.057 2.057 0 00-.047 0zm.584.06l1.094 3.787h1.306l.477-1.736.45 1.736h1.306l1.094-3.787h-1.186l-.54 1.932-.52-1.932h-1.15l-.542 1.912-.512-1.912zm-12.281 2.14c.03 0 .07.016.117.027.092.023.17.02.15.108a.171.171 0 01-.332-.08c.01-.044.033-.056.065-.055z\"},\"child\":[]}]})(props);\n};\nexport function SiNsis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.736 24H24l-5.132-4.919L13.736 24Zm-6.021-5.064 5.133 4.918 5.132-4.919-10.265.001Zm-6.539-5.272v9.838l5.132-4.919-1.503-1.441-3.629-3.478Zm21.648-1.626-5.132 4.919 5.132 4.919v-9.838Zm-4.844 6.193-5.132-4.92-5.132 4.92H17.98ZM1.696 13.165l5.132 4.92 5.132-4.92H1.696Zm20.608-1.625H12.039l5.133 4.919 5.132-4.919ZM6.828 7.541l-5.132 4.92H11.96l-5.132-4.92Zm-5.652 4.421 5.132-4.919-5.132-4.919v9.838Zm21.128-1.127-5.132-4.92-5.133 4.92h10.265Zm-6.02-5.065H6.02l5.132 4.919 5.132-4.919Zm6.54-5.272-5.132 4.919 5.132 4.92V.498Zm-6.539 4.567L11.152.146 6.02 5.065h10.265ZM10.264 0H0l5.132 4.919L10.264 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiNtfy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.597 13.693v2.156h6.205v-2.156ZM5.183 6.549v2.363l3.591 1.901.023.01-.023.009-3.591 1.901v2.35l.386-.211 5.456-2.969V9.729ZM3.659 2.037C1.915 2.037.42 3.41.42 5.154v.002L.438 18.73 0 21.963l5.956-1.583h14.806c1.744 0 3.238-1.374 3.238-3.118V5.154c0-1.744-1.493-3.116-3.237-3.117h-.001zm0 2.2h17.104c.613.001 1.037.447 1.037.917v12.108c0 .47-.424.916-1.038.916H5.633l-3.026.915.031-.179-.017-13.76c0-.47.424-.917 1.038-.917z\"},\"child\":[]}]})(props);\n};\nexport function SiNubank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.2795 5.4336c-1.1815 0-2.1846.4628-2.9432 1.252h-.002c-.0541-.0022-.1074-.002-.162-.002-1.5436 0-2.9925.8835-3.699 2.2559-.3088.5996-.4234 1.2442-.459 1.9003-.0321.589 0 1.1863 0 1.7696v5.6523H3.184s.0022-2.784 0-5.1777c-.0014-1.6112-.0118-3.0471 0-3.3418.056-1.3937.4372-2.3053 1.1484-3.0508 2.3585.0018 3.8852 1.6091 3.9705 4.168.0196.5874.0254 3.7304.0254 3.7304v3.672h3.1678v-4.965c0-1.5007.0127-2.8006-.0918-3.6952-.292-2.5-1.821-4.168-4.1248-4.168zm8.3903.3008l-3.166.0039v4.9648c0 1.5009-.0127 2.8007.0919 3.6953.2921 2.5001 1.821 4.168 4.1248 4.168 1.1815 0 2.1846-.4628 2.9432-1.252.0003-.0003.0016.0004.002 0 .0542.0023.1093.002.164.002 1.5435 0 2.9905-.8835 3.6971-2.2558.3088-.5997.4233-1.2442.459-1.9004.032-.5889 0-1.1862 0-1.7695V5.7383H20.816s-.0022 2.784 0 5.1777c.0015 1.6113.0119 3.047 0 3.3418-.056 1.3935-.4372 2.3053-1.1483 3.0508-2.3586-.0018-3.8853-1.6091-3.9706-4.168-.0196-.5874-.0273-2.0437-.0273-3.7324Z\"},\"child\":[]}]})(props);\n};\nexport function SiNucleo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.025 0a3.868 3.868 0 00-1.964.525L1.354 5.55V6.5h15.853a3.9 3.9 0 003.463-2.115L13.922.508A3.868 3.868 0 0012.025 0zm9.81 5.072L13.91 18.801a3.9 3.9 0 00.1 4.056l6.734-3.908a3.865 3.865 0 001.914-3.35V5.55l-.822-.477zM1.46 7.848a3.9 3.9 0 00-.117.004l.017 7.787a3.868 3.868 0 001.946 3.334L12.008 24l.824-.475-7.926-13.73A3.9 3.9 0 001.46 7.848zM11.992 9.1a2.6 2.6 0 00-2.584 2.6 2.6 2.6 0 002.6 2.599 2.6 2.6 0 002.6-2.6 2.6 2.6 0 00-2.6-2.6 2.6 2.6 0 00-.016 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiNuget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.998.342a1.997 1.997 0 1 0 0 3.995 1.997 1.997 0 0 0 0-3.995zm9.18 4.34a6.156 6.156 0 0 0-6.153 6.155v6.667c0 3.4 2.756 6.154 6.154 6.154h6.667c3.4 0 6.154-2.755 6.154-6.154v-6.667a6.154 6.154 0 0 0-6.154-6.155zm-1.477 2.8a2.496 2.496 0 1 1 0 4.993 2.496 2.496 0 0 1 0-4.993zm7.968 6.16a3.996 3.996 0 1 1-.002 7.992 3.996 3.996 0 0 1 .002-7.992z\"},\"child\":[]}]})(props);\n};\nexport function SiNuke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.293.004c6.625.162 11.865 5.664 11.703 12.29-.162 6.625-5.664 11.865-12.29 11.703C5.081 23.835-.159 18.333.003 11.707l.001-.025C.18 5.066 5.678-.158 12.293.004zm0 1.238c-5.941-.164-10.89 4.52-11.054 10.461s4.52 10.89 10.461 11.054c5.941.164 10.89-4.52 11.054-10.461l.001-.025c.15-5.932-4.53-10.866-10.462-11.029zm5.842 8.302h2.4c.976 0 .682-.873.682-.873a9.587 9.587 0 0 0-2.111-3.431l-.005.011a10.052 10.052 0 0 0-3.355-2.329.612.612 0 0 0-.894.622c-.044.802-.142 2.395-.142 2.395s.016.769-.627.769c-.813.011-1.489-.044-1.489-.044a2.314 2.314 0 0 1-1.255-.545L8.868 3.511a1.09 1.09 0 0 0-1.407-.196 9.758 9.758 0 0 0-4.713 5.384c-.256.714.333.806.731.806h6a2.086 2.086 0 0 1 1.68.627c.785.824 1.331 1.369 1.331 1.369s.48.54 1.26 1.358c.431.459.632 1.089.545 1.713 0 0-.295 5.744-.295 6-.027.398.038.993.769.775a9.756 9.756 0 0 0 5.618-4.424 1.091 1.091 0 0 0-.12-1.418l-2.471-2.607a2.303 2.303 0 0 1-.496-1.282s-.022-.682.033-1.489c.044-.643.802-.583.802-.583zm-2.362 1.374c-.475.469-1.484.229-2.22-.545-.736-.775-.924-1.801-.45-2.254.475-.453 1.502-.239 2.239.536.737.774.906 1.794.431 2.263z\"},\"child\":[]}]})(props);\n};\nexport function SiNumba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.419 15.204s7.235-5.335 4.305-8.786c-3.398-4.003-12.921 4.486-13.962 2.76-1.04-1.725 8.452-5.86 9.481-6.55.112-.075.144-.218.112-.383l1.099-.127-.685-.345.175-.685-.796.621C15.85 1.173 15.34.595 15.049.393c-1.035-.685-2.93-.52-5.685.86-2.756 1.38-9.147 5.685-5.877 10.51 2.93 4.306 11.35-3.094 12.756-1.9 1.205 1.035-8.095 7.411-8.095 7.411h3.965C11.43 18.999 8.148 24 8.148 24l11.934-8.621c-1.253-.186-3.663-.175-3.663-.175zM13.175.908a.776.776 0 01.823.716.776.776 0 01-.717.823.776.776 0 01-.823-.716.768.768 0 01.717-.823z\"},\"child\":[]}]})(props);\n};\nexport function SiNumpy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.315 4.876L6.3048 2.8517l-4.401 2.1965 4.1186 2.0683zm1.8381.9277l4.2045 2.1223-4.3622 2.1906-4.125-2.0718zm5.6153-2.9213l4.3193 2.1658-3.863 1.9402-4.2131-2.1252zm-1.859-.9329L12.021 0 8.1742 1.9193l4.0068 2.0208zm-3.0401 16.7443V24l4.7107-2.3507-.0053-5.3085zm4.7037-4.2057l-.0052-5.2528-4.6985 2.3356v5.2546zm5.6553-.9845v5.327l-4.0178 2.0052-.0029-5.3028zm0-1.8626V6.4214l-4.0253 2.001.0034 5.2633zM11.2062 11.571L8.0333 9.9756v6.895s-3.8804-8.2564-4.2399-8.998c-.0463-.0957-.2371-.2007-.2858-.2262C2.8118 7.2812.773 6.2485.773 6.2485V18.43l2.8204 1.5076v-6.3674s3.8392 7.3775 3.878 7.458c.0389.0807.4245.8582.8362 1.1314.5485.363 2.8992 1.7766 2.8992 1.7766z\"},\"child\":[]}]})(props);\n};\nexport function SiNunjucks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12v12h24V0H0v12zm8.2-1.9V3h3v17.3h-3c-.7-2.5-1.4-5-2.2-7.5v7.5H3V3h3c.8 2.3 1.5 4.7 2.2 7.1zM20.9 7v11.6c0 .2-.1.7-.5 1.1-.4.4-.8.5-.9.6h-5.1c-.2 0-.7-.1-1-.5-.4-.4-.5-.9-.6-1.2v-3.8c1-.2 2-.5 3-.7v3.1h2.1V7h3zM0 24\"},\"child\":[]}]})(props);\n};\nexport function SiNushell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 16.338h1.25v-5.7c.417-.624 1.205-1.309 2.127-1.309 1.176 0 1.34.64 1.34 2.247v4.762h1.25v-5.685c0-1.458-.67-2.32-2.202-2.32-.923 0-1.964.46-2.59 1.264l-.103-1.1H0Zm10.177-7.842h-1.25v5.698c0 1.46.745 2.307 2.263 2.307.921 0 1.889-.431 2.514-1.22l.104 1.057h1.072V8.496h-1.25v5.773c-.432.67-1.265 1.25-2.129 1.25-.907 0-1.324-.446-1.324-1.458zm8.11-.997-.61.952 5.251 3.229-5.251 3.244.669.922L24 12.32v-1.28z\"},\"child\":[]}]})(props);\n};\nexport function SiNutanix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.394 3.617a.395.395 0 0 0-.393.395c0 .12.054.225.14.297l8.506 7.404a.39.39 0 0 1-.013.588l-8.52 7.412a.393.393 0 0 0 .28.67h4.86a.39.39 0 0 0 .265-.104l9.17-7.98a.396.396 0 0 0 0-.596L5.52 3.721a.386.386 0 0 0-.264-.104zm18.358 0a.389.389 0 0 0-.273.113l-4.716 4.106a.392.392 0 0 0-.04.564l2.427 2.114a.393.393 0 0 0 .291.13.394.394 0 0 0 .278-.119l7.127-6.203a.389.389 0 0 0 .154-.31.395.395 0 0 0-.393-.395zm-2.31 9.742c-.116 0-.22.05-.292.13l-2.426 2.113a.392.392 0 0 0 .039.564l4.716 4.104c.07.07.166.113.273.113h4.855a.393.393 0 0 0 .239-.705l-7.127-6.203a.393.393 0 0 0-.278-.116z\"},\"child\":[]}]})(props);\n};\nexport function SiNuxtdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.4642 19.8295h8.9218c.2834 0 .5618-.0723.8072-.2098a1.5899 1.5899 0 0 0 .5908-.5732 1.5293 1.5293 0 0 0 .216-.783 1.529 1.529 0 0 0-.2167-.7828L17.7916 7.4142a1.5904 1.5904 0 0 0-.5907-.573 1.6524 1.6524 0 0 0-.807-.2099c-.2833 0-.5616.0724-.807.2098a1.5904 1.5904 0 0 0-.5907.5731L13.4642 9.99l-2.9954-5.0366a1.5913 1.5913 0 0 0-.591-.573 1.6533 1.6533 0 0 0-.8071-.2098c-.2834 0-.5617.0723-.8072.2097a1.5913 1.5913 0 0 0-.591.573L.2168 17.4808A1.5292 1.5292 0 0 0 0 18.2635c-.0001.2749.0744.545.216.783a1.59 1.59 0 0 0 .5908.5732c.2454.1375.5238.2098.8072.2098h5.6003c2.219 0 3.8554-.9454 4.9813-2.7899l2.7337-4.5922L16.3935 9.99l4.3944 7.382h-5.8586ZM7.123 17.3694l-3.9083-.0009 5.8586-9.8421 2.9232 4.921-1.9572 3.2892c-.7478 1.1967-1.5972 1.6328-2.9163 1.6328z\"},\"child\":[]}]})(props);\n};\nexport function SiNvidia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.948 8.798v-1.43a6.7 6.7 0 0 1 .424-.018c3.922-.124 6.493 3.374 6.493 3.374s-2.774 3.851-5.75 3.851c-.398 0-.787-.062-1.158-.185v-4.346c1.528.185 1.837.857 2.747 2.385l2.04-1.714s-1.492-1.952-4-1.952a6.016 6.016 0 0 0-.796.035m0-4.735v2.138l.424-.027c5.45-.185 9.01 4.47 9.01 4.47s-4.08 4.964-8.33 4.964c-.37 0-.733-.035-1.095-.097v1.325c.3.035.61.062.91.062 3.957 0 6.82-2.023 9.593-4.408.459.371 2.34 1.263 2.73 1.652-2.633 2.208-8.772 3.984-12.253 3.984-.335 0-.653-.018-.971-.053v1.864H24V4.063zm0 10.326v1.131c-3.657-.654-4.673-4.46-4.673-4.46s1.758-1.944 4.673-2.262v1.237H8.94c-1.528-.186-2.73 1.245-2.73 1.245s.68 2.412 2.739 3.11M2.456 10.9s2.164-3.197 6.5-3.533V6.201C4.153 6.59 0 10.653 0 10.653s2.35 6.802 8.948 7.42v-1.237c-4.84-.6-6.492-5.936-6.492-5.936z\"},\"child\":[]}]})(props);\n};\nexport function SiNvm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.178 7.98-.1986.004a.045.045 0 0 0-.0376.0684l.104.1715a.045.045 0 0 0 .0394.0216l.1986-.004a.045.045 0 0 0 .0376-.0684l-.104-.1715a.045.045 0 0 0-.0394-.0217m-1.2178.0846-.1625.0036a.045.045 0 0 0-.0375.0683l.085.1405a.045.045 0 0 0 .0396.0218l.1625-.0036a.045.045 0 0 0 .0376-.0684l-.0852-.1405a.045.045 0 0 0-.0395-.0217m.7111.3967-.281.0058a.045.045 0 0 0-.0375.0683l.1711.2824a.045.045 0 0 0 .0395.0218l.281-.006a.045.045 0 0 0 .0376-.0683l-.1712-.2823a.045.045 0 0 0-.0395-.0217m.843.2485-.3526.0077a.045.045 0 0 0-.0375.0684l.1846.3053a.045.045 0 0 0 .0395.0217l.353-.0077a.045.045 0 0 0 .0376-.0684l-.185-.3052a.045.045 0 0 0-.0396-.0218m8.7293.1253c-.076-.0006-.152.0215-.231.067q-1.3417.7729-2.6863 1.541l.1055-.1788c.0693-.1576.027-.2242-.1445-.2242-.6025-.0005-1.205.0008-1.8076-.0014-.0887-.0005-.145.0315-.189.109-.2027.357-.409.712-.6152 1.0672h-.0004c-.2714.468-.8423 1.4118-.9034 1.5135v.0003l-1.034 1.8842.0009-.0025-.0012.0025c.08.1268.1693.2628.2575.3978l.0413.065.0015.0011c.1298.1982.26.3967.3783.5821-.1306-.2098.114.1486.1918.231.1621.172.2995.1743.4607.0023.0635-.068.1193-.144.1738-.2197.2508-.3499.4688-.7205.6872-1.0907.4539-.769.8956-1.5454 1.3432-2.3182.2004-.3458.4035-.6898.6057-1.0348.0102-.0194.0211-.0383.0314-.0576.0031 1.4098.0034 2.82.006 4.2297.0005.25.1185.318.3337.1954.543-.3089 1.0839-.6227 1.6288-.9289.171-.0964.2467-.227.2445-.4256-.0072-.6543.0018-1.3081-.0055-1.9624-.0027-.2247.0824-.376.2814-.4795.2022-.105.399-.2212.593-.34.1671-.1023.3248-.1063.4932-.0027.194.1193.3904.236.593.3395.2072.1063.2895.2653.2873.495-.0068.6425.004 1.285-.0058 1.9272-.0036.2202.0806.3593.2702.4647.521.2896 1.0361.589 1.5535.8844.2833.1617.3823.1054.3832-.2179.0027-1.0573.0072-2.1143.004-3.1716-.0004-.1612.0613-.266.1941-.3422.2283-.1306.4562-.2612.6836-.3936.1513-.0882.2972-.0832.4471.0063.2004.1194.4008.241.6084.3477s.2891.2657.2869.4953c-.0068.6426.004 1.2852-.006 1.9273-.0035.2206.0815.3598.2707.4647.526.2923 1.0465.5944 1.5693.8921.2616.149.3661.0905.3665-.209.001-.73 0-1.4603 0-2.1903h.0072c0-.73-.003-1.4603.0018-2.1902.0014-.2085-.0766-.3509-.2607-.4553a313 313 0 0 1-2.7964-1.6053c-.1946-.113-.3638-.1113-.5566.0022-.5989.3526-1.2055.6921-1.8058 1.043-.0932.054-.1589.0544-.2526 0-.616-.359-1.2365-.7093-1.8534-1.0664-.0788-.0457-.1548-.0691-.2309-.0697zm-12.9129.0017c-.0803.0008-.1604.0264-.2455.0757A334 334 0 0 1 .2735 10.526c-.1968.1116-.276.259-.2734.4827.0081.7183.0032 1.4365.0032 2.1547h.0045c0 .7358-.001 1.4716 0 2.2074.0004.2918.113.354.3701.2071.5224-.2985 1.0415-.6016 1.568-.8934.1909-.1058.2733-.2444.2701-.4642-.009-.6538-.0013-1.3081-.0045-1.962-.0009-.1927.0649-.3364.2396-.4318.2256-.1234.4471-.2536.6687-.3837.145-.0852.286-.0837.4305.0014.2067.121.4111.2467.624.3557.209.1072.286.2684.2838.4967-.0068.648.0023 1.2964-.0049 1.9444-.0023.2062.0792.3368.2571.4359.5305.2958 1.056.6012 1.5833.9024.2553.146.3647.0824.3651-.2143.003-1.338.0037-2.6762.008-4.0142l2.0724 3.2579.7471-2.3635.121.2048-.301-.5165-.0796-.1373-.1828-.314a.045.045 0 0 0-.045-.0219l-.7254.0981-.0622-.113-.0005-.001-.2337-.4008a.045.045 0 0 0-.0395-.0223l-.258.0032a.045.045 0 0 0-.0384.0676l.0316.0543-.5535.0031-.131-.2256a.045.045 0 0 0-.0393-.0224l-.2862.0021c-.019-.1645-.1007-.2811-.2593-.3713a358 358 0 0 1-2.8265-1.623c-.0856-.0495-.166-.0734-.2462-.0725m2.8363.0235-.237.0049a.045.045 0 0 0-.0375.0683l.1442.2378a.045.045 0 0 0 .0395.0217l.2368-.0049a.045.045 0 0 0 .0376-.0683l-.1441-.2378a.045.045 0 0 0-.0395-.0217m.5498.4138-.2494.0055a.045.045 0 0 0-.0376.0683l.1305.2157a.045.045 0 0 0 .0395.0217l.2495-.0054a.045.045 0 0 0 .0376-.0684l-.1306-.2157a.045.045 0 0 0-.0395-.0217m.7551.0396-.3656.0077a.045.045 0 0 0-.0375.0684l.191.3156a.045.045 0 0 0 .0393.0217l.2244-.0044.1761.2907a.045.045 0 0 0 .0395.0217l.5196-.0108a.045.045 0 0 0 .0376-.0683l-.3165-.5224a.045.045 0 0 0-.0395-.0217l-.3775.008-.0515-.0845a.045.045 0 0 0-.0394-.0216zm-1.3612.0797-.199.004a.045.045 0 0 0-.0376.0684l.104.1715a.045.045 0 0 0 .0395.0218l.1986-.004a.045.045 0 0 0 .0375-.0684l-.1035-.1715a.045.045 0 0 0-.0395-.0218m.6017.459-.2882.0057a.045.045 0 0 0-.0377.0684l.1757.29a.045.045 0 0 0 .0395.0217l.077-.0017.15.2479a.045.045 0 0 0 .0395.0217l.4724-.0099a.045.045 0 0 0 .0376-.0683l-.2878-.4746a.045.045 0 0 0-.0394-.0217l-.261.0053-.0383-.0629a.045.045 0 0 0-.0393-.0216m1.925.643-.6449.014a.045.045 0 0 0-.0376.0683l.128.2108a.045.045 0 0 0 .0394.0216l.1713-.0035.1054.1733a.045.045 0 0 0 .0394.0216l.4472-.0095a.045.045 0 0 0 .0376-.0683l-.2464-.4066a.045.045 0 0 0-.0395-.0217z\"},\"child\":[]}]})(props);\n};\nexport function SiNx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.987 14.138l-3.132 4.923-5.193-8.427-.012 8.822H0V4.544h3.691l5.247 8.833.005-3.998 3.044 4.759zm.601-5.761c.024-.048 0-3.784.008-3.833h-3.65c.002.059-.005 3.776-.003 3.833h3.645zm5.634 4.134a2.061 2.061 0 0 0-1.969 1.336 1.963 1.963 0 0 1 2.343-.739c.396.161.917.422 1.33.283a2.1 2.1 0 0 0-1.704-.88zm3.39 1.061c-.375-.13-.8-.277-1.109-.681-.06-.08-.116-.17-.176-.265a2.143 2.143 0 0 0-.533-.642c-.294-.216-.68-.322-1.18-.322a2.482 2.482 0 0 0-2.294 1.536 2.325 2.325 0 0 1 4.002.388.75.75 0 0 0 .836.334c.493-.105.46.36 1.203.518v-.133c-.003-.446-.246-.55-.75-.733zm2.024 1.266a.723.723 0 0 0 .347-.638c-.01-2.957-2.41-5.487-5.37-5.487a5.364 5.364 0 0 0-4.487 2.418c-.01-.026-1.522-2.39-1.538-2.418H8.943l3.463 5.423-3.379 5.32h3.54l1.54-2.366 1.568 2.366h3.541l-3.21-5.052a.7.7 0 0 1-.084-.32 2.69 2.69 0 0 1 2.69-2.691h.001c1.488 0 1.736.89 2.057 1.308.634.826 1.9.464 1.9 1.541a.707.707 0 0 0 1.066.596zm.35.133c-.173.372-.56.338-.755.639-.176.271.114.412.114.412s.337.156.538-.311c.104-.231.14-.488.103-.74z\"},\"child\":[]}]})(props);\n};\nexport function SiNxp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.79652 7.91376 2.52079 4.08625-2.52079 4.08623-4.27103-4.93862.00088 4.93805-2.52138.00057L0 16.0792V7.91376h2.52402l4.27103 4.93864.0003-4.93864m14.85075 2.89478c0-.55173-.27337-.86734-1.0366-.86734h-3.18808v2.31194h3.40456c.59222 0 .82012-.5576.82012-1.04216v-.40244zm-.62975-2.89478C23.41922 7.91376 24 9.10757 24 10.70705v.96034c0 1.2164-.53502 2.61319-2.3231 2.61319h-4.259l.00117 1.80509h-.00117L14.8974 12l2.52079-4.08625h3.59816m-6.74569.0001h-.4614l-1.70183 2.71646-1.70184-2.71645H7.4184l2.52109 4.08596-2.52109 4.08623h2.9872l1.70184-2.71615 1.70183 2.71615h.4664l2.52019-.00029-2.5205-4.08594 2.5208-4.08596h-2.52549z\"},\"child\":[]}]})(props);\n};\nexport function SiNzxt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.763 8.936l2.101 3.04-.002-3.04h1.773v6.128H3.99l-2.218-3.227v3.227H0V8.936zm22.237 0v1.614h-1.612v4.514h-1.883V10.55h-1.611V8.936H24zm-9.598 0l.996 1.573 1.061-1.573h1.947l-1.98 3.034 2.013 3.094h-2.063l-1.005-1.558-.99 1.558h-2.015l1.975-3.038-2.004-3.09h2.065zm-2.652 0L9.327 13.51h2.372v1.554H6.573l2.379-4.584H6.704V8.936h5.046z\"},\"child\":[]}]})(props);\n};\nexport function SiO2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.473.191C3.827.191 0 4.271 0 9.917c0 5.317 3.86 9.726 9.472 9.726 5.61 0 9.433-4.409 9.433-9.726C18.905 4.27 15.116.19 9.473.19zm-.002 2.77c3.677 0 5.79 3.422 5.79 6.956 0 3.314-1.785 6.956-5.79 6.956-4.007 0-5.827-3.642-5.827-6.956 0-3.534 2.148-6.956 5.827-6.956zm11.69 12.48a5.47 5.47 0 0 0-2.44.588l.13 1.367c.543-.353 1.204-.66 1.9-.66.695 0 1.34.355 1.34 1.11 0 1.509-2.791 3.84-3.558 4.584v1.38H24v-1.298h-3.36c1.344-1.32 3.1-2.924 3.1-4.668 0-1.614-1.013-2.403-2.58-2.403z\"},\"child\":[]}]})(props);\n};\nexport function SiObb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.375 9.305-1.123 1.226c.304.426.471.934.471 1.469 0 .679-.264 1.317-.744 1.797s-1.118.744-1.797.744a2.525 2.525 0 0 1-1.797-.744A2.524 2.524 0 0 1 1.641 12a2.543 2.543 0 0 1 2.496-2.54l1.32-1.44a4.176 4.176 0 0 0-1.275-.202A4.187 4.187 0 0 0 0 12c0 1.117.435 2.167 1.225 2.957s1.84 1.225 2.957 1.225a4.153 4.153 0 0 0 2.957-1.225A4.154 4.154 0 0 0 8.364 12c0-.998-.35-1.941-.989-2.695M5.983 8.082v-.005L3.076 11.24h1.949l2.897-3.16H5.983m5.39 4.516h2.29c.314 0 .954.043.954.934 0 1.087-.764 1.108-1.269 1.108h-1.975zm0-3.162h1.998c.583 0 1.044.217 1.044.902 0 .63-.416.902-1.134.902h-1.908zm-1.684 6.563h3.693c.516 0 1.425-.076 1.987-.544.73-.608.853-1.26.853-1.673 0-.945-.494-1.64-.977-2a2.1 2.1 0 0 0 .775-1.63c0-.325-.157-2.075-2.952-2.075h-3.38v7.922m9.463-3.401h2.29c.314 0 .954.043.954.934 0 1.087-.764 1.108-1.269 1.108h-1.975zm0-3.162h1.998c.583 0 1.044.217 1.044.901 0 .63-.415.902-1.134.902h-1.908zm-1.684 6.563h3.693c.516 0 1.426-.076 1.987-.544.73-.608.853-1.26.853-1.673 0-.945-.494-1.64-.977-2a2.1 2.1 0 0 0 .775-1.63c0-.325-.157-2.075-2.952-2.075h-3.38l.001 7.922\"},\"child\":[]}]})(props);\n};\nexport function SiObservable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20c-1.065 0-1.988-.232-2.77-.696a4.7 4.7 0 0 1-1.794-1.89 9.97 9.97 0 0 1-.916-2.53A13.613 13.613 0 0 1 6.23 12c0-.766.05-1.499.152-2.2.1-.699.285-1.41.556-2.132A6.803 6.803 0 0 1 7.98 5.79a4.725 4.725 0 0 1 1.668-1.293C10.337 4.165 11.12 4 12 4c1.065 0 1.988.232 2.77.696a4.7 4.7 0 0 1 1.794 1.89c.418.795.723 1.639.916 2.53.192.891.29 1.853.29 2.884 0 .766-.05 1.499-.152 2.2a9.812 9.812 0 0 1-.567 2.132 7.226 7.226 0 0 1-1.042 1.878c-.418.53-.97.962-1.657 1.293-.688.332-1.471.497-2.352.497zm2.037-5.882c.551-.554.858-1.32.848-2.118 0-.824-.276-1.53-.827-2.118C13.506 9.294 12.82 9 12 9c-.82 0-1.506.294-2.058.882A2.987 2.987 0 0 0 9.115 12c0 .824.276 1.53.827 2.118.552.588 1.238.882 2.058.882.82 0 1.5-.294 2.037-.882zM12 24c6.372 0 11.538-5.373 11.538-12S18.372 0 12 0 .462 5.373.462 12 5.628 24 12 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiObsidian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.355 18.538a68.967 68.959 0 0 0 1.858-2.954.81.81 0 0 0-.062-.9c-.516-.685-1.504-2.075-2.042-3.362-.553-1.321-.636-3.375-.64-4.377a1.707 1.707 0 0 0-.358-1.05l-3.198-4.064a3.744 3.744 0 0 1-.076.543c-.106.503-.307 1.004-.536 1.5-.134.29-.29.6-.446.914l-.31.626c-.516 1.068-.997 2.227-1.132 3.59-.124 1.26.046 2.73.815 4.481.128.011.257.025.386.044a6.363 6.363 0 0 1 3.326 1.505c.916.79 1.744 1.922 2.415 3.5zM8.199 22.569c.073.012.146.02.22.02.78.024 2.095.092 3.16.29.87.16 2.593.64 4.01 1.055 1.083.316 2.198-.548 2.355-1.664.114-.814.33-1.735.725-2.58l-.01.005c-.67-1.87-1.522-3.078-2.416-3.849a5.295 5.295 0 0 0-2.778-1.257c-1.54-.216-2.952.19-3.84.45.532 2.218.368 4.829-1.425 7.531zM5.533 9.938c-.023.1-.056.197-.098.29L2.82 16.059a1.602 1.602 0 0 0 .313 1.772l4.116 4.24c2.103-3.101 1.796-6.02.836-8.3-.728-1.73-1.832-3.081-2.55-3.831zM9.32 14.01c.615-.183 1.606-.465 2.745-.534-.683-1.725-.848-3.233-.716-4.577.154-1.552.7-2.847 1.235-3.95.113-.235.223-.454.328-.664.149-.297.288-.577.419-.86.217-.47.379-.885.46-1.27.08-.38.08-.72-.014-1.043-.095-.325-.297-.675-.68-1.06a1.6 1.6 0 0 0-1.475.36l-4.95 4.452a1.602 1.602 0 0 0-.513.952l-.427 2.83c.672.59 2.328 2.316 3.335 4.711.09.21.175.43.253.653z\"},\"child\":[]}]})(props);\n};\nexport function SiObsstudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,24C5.383,24,0,18.617,0,12S5.383,0,12,0s12,5.383,12,12S18.617,24,12,24z M12,1.109 C5.995,1.109,1.11,5.995,1.11,12C1.11,18.005,5.995,22.89,12,22.89S22.89,18.005,22.89,12C22.89,5.995,18.005,1.109,12,1.109z M6.182,5.99c0.352-1.698,1.503-3.229,3.05-3.996c-0.269,0.273-0.595,0.483-0.844,0.78c-1.02,1.1-1.48,2.692-1.199,4.156 c0.355,2.235,2.455,4.06,4.732,4.028c1.765,0.079,3.485-0.937,4.348-2.468c1.848,0.063,3.645,1.017,4.7,2.548 c0.54,0.799,0.962,1.736,0.991,2.711c-0.342-1.295-1.202-2.446-2.375-3.095c-1.135-0.639-2.529-0.802-3.772-0.425 c-1.56,0.448-2.849,1.723-3.293,3.293c-0.377,1.25-0.216,2.628,0.377,3.772c-0.825,1.429-2.315,2.449-3.932,2.756 c-1.244,0.261-2.551,0.059-3.709-0.464c1.036,0.302,2.161,0.355,3.191-0.011c1.381-0.457,2.522-1.567,3.024-2.935 c0.556-1.49,0.345-3.261-0.591-4.54c-0.7-1.007-1.803-1.717-3.002-1.969c-0.38-0.068-0.764-0.098-1.148-0.134 c-0.611-1.231-0.834-2.66-0.528-3.996L6.182,5.99z\"},\"child\":[]}]})(props);\n};\nexport function SiOcaml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.178 21.637c-.085-.17-.187-.524-.255-.676-.067-.135-.27-.506-.37-.625-.22-.253-.27-.27-.338-.608-.12-.574-.405-1.588-.76-2.296-.187-.372-.49-.677-.761-.947-.236-.236-.777-.624-.878-.607-.895.169-1.166 1.046-1.587 1.739-.237.388-.473.71-.66 1.115-.167.371-.151.793-.439 1.115a2.952 2.952 0 00-.624 1.097c-.034.084-.101.929-.186 1.131l1.318-.084c1.233.085.877.557 2.787.456l3.022-.1a5.376 5.376 0 00-.27-.71zM20.96 1.539H3.023A3.02 3.02 0 000 4.56v6.587c.44-.152 1.047-1.08 1.25-1.3.337-.389.405-.895.574-1.2.389-.709.456-1.215 1.334-1.215.406 0 .575.1.845.473.186.253.523.743.675 1.064.186.371.474.86.609.962.1.068.185.136.27.17.135.05.253-.051.354-.12.118-.1.17-.286.287-.556.17-.39.339-.827.44-.997.169-.27.236-.608.422-.76.27-.236.641-.253.743-.27.557-.118.81.27 1.08.507.186.168.423.49.609.91.135.339.304.661.388.846.068.185.237.49.338.86.101.322.337.575.44.744 0 0 .152.406 1.03.778a7.505 7.505 0 00.81.286c.39.135.76.12 1.233.068.338 0 .524-.49.676-.878.084-.237.185-.895.236-1.081.05-.185-.085-.32.034-.49.135-.186.22-.203.287-.439.17-.523 1.114-.54 1.655-.54.456 0 .389.44 1.149.287.439-.085.86.05 1.318.185.388.102.76.22.98.473.134.17.489.997.134 1.031.033.033.067.118.118.151-.085.322-.422.085-.625.051-.253-.05-.44 0-.693.118-.439.187-1.063.17-1.452.49-.32.271-.32.861-.473 1.2 0 0-.422 1.063-1.317 1.722-.237.17-.692.574-1.672.726-.44.068-.86.068-1.318.05-.22-.016-.438-.016-.658-.016-.136 0-.575-.017-.558.034l-.05.119a.6.6 0 00.033.169c.017.1.017.185.034.27 0 .185-.017.388 0 .574.017.388.17.743.186 1.148.017.44.236.913.456 1.267.085.135.203.152.254.32.067.186 0 .406.033.609.118.794.355 1.638.71 2.364v.017c.439-.067.895-.236 1.47-.32 1.063-.153 2.532-.085 3.478-.17 2.399-.22 3.7.98 5.844.49V4.562a3.045 3.045 0 00-3.04-3.023zm-8.951 14.187c0-.034 0-.034 0 0zm-6.47 2.769c.17-.372.271-.778.406-1.15.135-.354.337-.86.693-1.046-.05-.05-.744-.068-.929-.085a7.406 7.406 0 01-.608-.084 22.976 22.976 0 01-1.15-.236c-.22-.051-.979-.322-1.13-.39-.39-.168-.642-.658-.93-.607-.185.034-.37.101-.49.287-.1.152-.134.423-.202.608-.084.203-.22.405-.32.608-.238.354-.626.676-.795 1.03-.033.085-.05.169-.084.254v4.07c.202.034.405.068.624.135 1.69.456 2.095.49 3.75.304l.152-.017c.118-.27.22-1.165.304-1.435.067-.22.153-.39.187-.591.033-.203 0-.406-.017-.59-.034-.491.354-.661.54-1.065z\"},\"child\":[]}]})(props);\n};\nexport function SiOclif (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.887 8.804a.583.583 0 0 0-.417-.172H.585A.586.586 0 0 0 0 9.219v5.562c0 .325.262.587.585.587H14.47a.583.583 0 0 0 .417-.172l2.633-2.774a.607.607 0 0 0 0-.837l-2.633-2.781zm-4.38 1.684c.07-.066.162-.1.257-.097.06.001.119.017.171.047.055.03.1.073.134.125a.31.31 0 0 1 .05.172.306.306 0 0 1-.05.173.367.367 0 0 1-.134.124.364.364 0 0 1-.486-.124.316.316 0 0 1-.048-.173.326.326 0 0 1 .106-.247zm-6.804 2.86a1.102 1.102 0 0 1-1.971 0 1.424 1.424 0 0 1-.15-.66c-.002-.221.05-.44.153-.635.095-.185.238-.342.413-.453.348-.22.792-.22 1.14 0 .175.111.318.268.413.453.103.195.155.414.153.635.003.23-.048.456-.151.66zm2.465-1.083c-.142-.21-.381-.357-.645-.34a.544.544 0 0 0-.318.1.688.688 0 0 0-.234.27 1.002 1.002 0 0 0-.084.422c0 .135.029.268.084.39a.581.581 0 0 0 .545.356c.089-.003.152-.01.191-.02a.567.567 0 0 0 .128-.054.858.858 0 0 0 .292-.243l.332.385a1.223 1.223 0 0 1-.948.426 1.196 1.196 0 0 1-.617-.16 1.136 1.136 0 0 1-.428-.45 1.348 1.348 0 0 1-.155-.645c-.002-.226.05-.448.155-.648.098-.189.246-.347.428-.458.19-.115.407-.174.628-.172.19-.001.379.04.552.12a.968.968 0 0 1 .404.345l-.31.376zm2.858 1.618H7.14v-.446h.655V10.87h-.619v-.453h1.2v3.02h.65v.446zm2.581 0H9.943v-.462h.574v-1.474h-.55v-.46h1.118v1.934h.514l.008.462zm2.812-2.8a1.2 1.2 0 0 0-.264-.194.56.56 0 0 0-.245-.052.44.44 0 0 0-.355.141.627.627 0 0 0-.12.417v.098h.732v.456h-.729v1.934h-.557v-1.94h-.514v-.457h.514v-.1c-.005-.192.04-.382.132-.55a.885.885 0 0 1 .357-.345c.153-.08.324-.121.497-.119.298-.003.585.118.792.334l-.24.377zm-11.213 1.18c.047.136.07.279.067.423.002.144-.02.286-.067.422a.637.637 0 0 1-.194.286.458.458 0 0 1-.297.101.446.446 0 0 1-.291-.1.635.635 0 0 1-.195-.279 1.272 1.272 0 0 1-.067-.43c-.003-.144.02-.287.068-.422a.613.613 0 0 1 .192-.273.455.455 0 0 1 .295-.088.477.477 0 0 1 .297.094c.087.07.154.16.192.266zM24 15.088a.28.28 0 0 1-.28.28h-4.67a.28.28 0 0 1-.279-.28v-.274a.28.28 0 0 1 .28-.28h4.671a.28.28 0 0 1 .278.28v.274z\"},\"child\":[]}]})(props);\n};\nexport function SiOctanerender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.71 0C8.24 3.9 6.92 6 6.64 9.14c-.01-.01-.03-.01-.04-.02-1.28-.73-2.3-2.22-2.91-3.73l-2.23.87c1.64 4.95 2.81 7.13 5.39 8.94-.02.01-.03.02-.05.03-1.27.74-3.07.89-4.68.66l-.36 2.37c5.11 1.06 7.59 1.15 10.46-.19v.06c0 1.47-.77 3.09-1.78 4.38L12.3 24c3.46-3.89 4.78-5.99 5.06-9.13.02.01.03.01.05.02 1.27.73 2.29 2.21 2.9 3.73l2.23-.87c-1.64-4.95-2.8-7.14-5.39-8.95.02-.01.03-.02.05-.03 1.27-.74 3.07-.88 4.68-.65l.36-2.38c-5.1-1.06-7.58-1.14-10.44.19v-.06c0-1.47.77-3.09 1.78-4.38L11.71 0zm.19 8.82a3.181 3.181 0 0 1 3.28 3.07 3.181 3.181 0 0 1-3.07 3.28 3.181 3.181 0 0 1-3.28-3.07 3.181 3.181 0 0 1 3.07-3.28z\"},\"child\":[]}]})(props);\n};\nexport function SiOctave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5.007c-2.414-.09-4.658.715-6.286 2.485C2.913 3.906 2.188 5.75 1.987 7.77h-.42C.703 7.77 0 8.473 0 9.335v4.743c0 .863.702 1.567 1.565 1.567h2.091a16.899 16.899 0 002.57 3.687c4.46 4.848 10.696 6.036 14.561 3.016h2.102c.577 0 1.05-.473 1.05-1.05V18.43a1.03 1.03 0 00-.257-.668c.858-3.433-.045-7.642-2.52-11.219.002-.017.01-.032.01-.049V4.482a.822.822 0 00-.816-.819h-1.703C16.142 1.372 13.218.11 10.5.007zm1.75 2.18c1.78-.01 3.69.62 5.425 1.85a.797.797 0 00-.15.445v2.013c0 .449.368.82.816.82h2.016a.788.788 0 00.392-.116c2.248 3.302 2.735 7.322 1.24 10.18h-1.964c-.579 0-1.052.475-1.052 1.051v1.794c-2.991 1.3-7.005.222-9.964-2.992a12.743 12.743 0 01-1.55-2.098c.256-.279.416-.647.416-1.056V9.335c0-.862-.702-1.565-1.565-1.565H5.9c.238-1.364.781-2.612 1.688-3.596 1.225-1.331 2.88-1.98 4.661-1.988zm6.091 2.01h2.016c.162 0 .283.123.283.285v2.013c0 .163-.12.285-.283.285H18.34a.28.28 0 01-.285-.285V4.482a.28.28 0 01.285-.285zM1.566 8.303h4.743c.578 0 1.033.456 1.033 1.032v4.743c0 .577-.455 1.033-1.032 1.033H1.567a1.024 1.024 0 01-1.034-1.032V9.335c0-.576.455-1.032 1.032-1.032zm18.459 9.61h2.865c.29 0 .52.226.52.518v2.865a.512.512 0 01-.52.519h-2.865a.51.51 0 01-.519-.519v-2.864a.51.51 0 01.519-.518z\"},\"child\":[]}]})(props);\n};\nexport function SiOctobercms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.949 11.496C20.573 5.365 13.894.06 11.143 0 8.391-.059 3.247 6.435 3.04 13.033 2.844 19.219 8.124 23.462 10.397 24c.063-2.91.296-13.627.335-14.877.082-2.553.207-6.527.634-6.659.244-.076.578 2.158.537 3.478-.008.252-.011 1.068-.011 2.226.46-.469.94-.955 1.233-1.242.8-.787 1.155-.693.77.009-.236.432-1.253 1.868-2.001 2.909.004 2.099.013 4.74.023 7.202 1.057-1.237 2.35-2.72 3.03-3.378 1.425-1.382 1.576-1.207.903.243-.413.888-2.434 3.258-3.925 5.127.009 2.185.016 4.021.018 4.898 4-.88 9.373-6.42 9.006-12.44\"},\"child\":[]}]})(props);\n};\nexport function SiOctoprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.942 4.613C2.424 5.987 1.107 7.473.476 9.71c-.634 2.248-.585 5.094-.145 7.398.44 2.303 1.12 4.107 1.873 5.83h13.179c-.31-.988-.761-1.967-1.446-3.237-.685-1.268-1.658-2.692-2.648-4.178-.99-1.486-1.985-3.077-1.851-4.472.094-.987.49-1.976 1.492-2.76 1.16-.909 2.289-1.437 3.353-1.595 3.325-.496 6.422.601 8.925 3.366.288.316.36.726.545 1.127l.166-.653c.15-.589.088-1.359-.152-2.371-.243-1.029-.563-1.792-1.46-2.973-.893-1.176-2.467-2.322-4.48-3.226-1.5-.673-3.305-1-5.798-.879-2.522.124-5.494 1.177-8.087 3.526Z\"},\"child\":[]}]})(props);\n};\nexport function SiOctopusdeploy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.18 18.212c1.805-1.162 3.928-3.162 3.122-5.51-.437-1.282-1.046-2.379-1.127-3.762a8.478 8.478 0 0 1 .515-3.46C6.31 1.14 11.126-.917 15.481.389c4.03 1.216 6.808 5.893 5.119 9.973-.965 2.356-1.395 4.173.755 6.006.582.496 2 1.24 1.992 2.123 0 1.163-2.27-.244-2.522-.445.286.503 3.138 3.487 1.325 3.688-1.67.194-3.147-2.139-4.15-3.142-1.686-1.682-1.395 2.042-1.403 2.81 0 1.212-.868 3.676-2.41 2.072-1.27-1.321-.775-3.433-1.674-4.905-.968-1.612-2.58 1.612-2.983 2.2-.45.66-2.713 3.844-3.596 2.147-.725-1.38.434-3.538 1.007-4.785-.209.453-1.685 1.123-2.115 1.34a5.738 5.738 0 0 1-3.057.706c-2.267-.163-.527-1.368.387-1.96l.023-.005z\"},\"child\":[]}]})(props);\n};\nexport function SiOculus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.135 13.949c-.319.221-.675.355-1.057.416s-.761.049-1.142.049H8.063c-.382 0-.762.014-1.145-.049-.381-.063-.734-.195-1.057-.416-.643-.451-1.027-1.17-1.027-1.951 0-.796.387-1.515 1.029-1.95.314-.225.674-.359 1.049-.42s.75-.061 1.141-.061h7.875c.375 0 .765-.014 1.14.046s.735.194 1.051.405c.645.434 1.02 1.17 1.02 1.949 0 .78-.391 1.5-1.035 1.95l.031.032zm3.174-7.555c-.845-.678-1.812-1.146-2.865-1.398-.6-.146-1.203-.211-1.822-.23-.449-.015-.899-.01-1.364-.01H8.76c-.457 0-.915-.005-1.372.01-.618.021-1.222.083-1.825.23-1.051.254-2.025.723-2.865 1.4C.99 7.761 0 9.82 0 12c0 2.182.99 4.241 2.689 5.606.846.678 1.815 1.146 2.865 1.4.603.146 1.206.211 1.823.229.45.016.9.012 1.365.012h6.496c.449 0 .914.004 1.364-.012.615-.018 1.215-.082 1.814-.229 1.05-.256 2.011-.723 2.866-1.402C23.01 16.24 24 14.18 24 12c0-2.181-.99-4.241-2.691-5.606z\"},\"child\":[]}]})(props);\n};\nexport function SiOdin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A11.999 11.999 0 0 0 1.607 18c.001 0 .143.279.545.861.456.661.725.939.725.939L14.194.2s-.468-.09-1.17-.158C12.56-.002 12 0 12 0m4.184.755L4.35 21.248a12 12 0 0 0 1.652 1.144c5.734 3.312 13.078 1.342 16.39-4.394 3.31-5.735 1.342-13.08-4.394-16.39 0 0-.42-.236-.926-.479-.403-.193-.891-.373-.891-.373m-5.38 1.317L2.806 15.926A9.98 9.98 0 0 1 3.34 7a9.99 9.99 0 0 1 7.463-4.928M17 3.34c4.78 2.759 6.42 8.88 3.66 13.66-2.758 4.779-8.881 6.42-13.66 3.66z\"},\"child\":[]}]})(props);\n};\nexport function SiOdnoklassniki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a6.2 6.2 0 0 0-6.194 6.195 6.2 6.2 0 0 0 6.195 6.192 6.2 6.2 0 0 0 6.193-6.192A6.2 6.2 0 0 0 12.001 0zm0 3.63a2.567 2.567 0 0 1 2.565 2.565 2.568 2.568 0 0 1-2.564 2.564 2.568 2.568 0 0 1-2.565-2.564 2.567 2.567 0 0 1 2.565-2.564zM6.807 12.6a1.814 1.814 0 0 0-.91 3.35 11.611 11.611 0 0 0 3.597 1.49l-3.462 3.463a1.815 1.815 0 0 0 2.567 2.566L12 20.066l3.405 3.403a1.813 1.813 0 0 0 2.564 0c.71-.709.71-1.858 0-2.566l-3.462-3.462a11.593 11.593 0 0 0 3.596-1.49 1.814 1.814 0 1 0-1.932-3.073 7.867 7.867 0 0 1-8.34 0c-.318-.2-.674-.29-1.024-.278z\"},\"child\":[]}]})(props);\n};\nexport function SiOdoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.1002 15.7957c-1.6015 0-2.8997-1.2983-2.8997-2.8998s1.2983-2.8997 2.8997-2.8997c1.6015 0 2.8998 1.2982 2.8998 2.8997 0 1.5999-1.2979 2.8998-2.8998 2.8998zm0-1.2c.9388.0006 1.7003-.7601 1.7008-1.6989.0004-.9388-.7602-1.7003-1.699-1.7007h-.0018c-.9388.0004-1.6994.7619-1.699 1.7007.0005.9381.761 1.6985 1.699 1.699zm-6.0655 1.2c-1.6014 0-2.8997-1.2983-2.8997-2.8998s1.2983-2.8997 2.8997-2.8997c1.6015 0 2.8998 1.2982 2.8998 2.8997 0 1.5999-1.2999 2.8998-2.8998 2.8998zm0-1.2c.9389.0006 1.7003-.7601 1.7008-1.6989.0005-.9388-.7602-1.7003-1.699-1.7007h-.0018c-.9388.0004-1.6994.7619-1.699 1.7007.0005.9381.761 1.6985 1.699 1.699zM11.865 12.858c0 1.6199-1.2979 2.9378-2.8977 2.9378s-2.8998-1.314-2.8998-2.9358 1.1799-2.8597 2.8998-2.8597c.6359 0 1.2239.134 1.6998.484v-1.68a.6.6 0 0 1 1.2 0v4.0537h-.002zm-2.8977 1.7399c.9388.0005 1.7002-.7602 1.7007-1.699.0005-.9388-.7602-1.7003-1.699-1.7007h-.0017c-.9389.0004-1.6995.7619-1.699 1.7007.0004.9381.7608 1.6985 1.699 1.699zm-6.0675 1.1979C1.2983 15.7957 0 14.4974 0 12.8959s1.2983-2.8997 2.8998-2.8997 2.8997 1.2982 2.8997 2.8997c0 1.5999-1.2999 2.8998-2.8997 2.8998zm0-1.2c.9388.0006 1.7002-.7601 1.7007-1.699.0005-.9387-.7602-1.7002-1.699-1.7006h-.0017c-.9388.0004-1.6995.7619-1.699 1.7007.0004.9381.7608 1.6985 1.699 1.699z\"},\"child\":[]}]})(props);\n};\nexport function SiOdysee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.965 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12 12 12 0 0 0-3.209-8.167 7.272 7.272 0 0 1-.799 3.218c-.548.957-2.281 2.77-3.264 3.699a.723.723 0 0 0 .056 1.104c.996.74 2.658 2.151 2.788 3.422.176 1.835 1.6 4.02 1.675 4.159a.67.67 0 0 1-.105.327 12.067 12.067 0 0 1-2.03 1.898 2.435 2.435 0 0 1-.807.126c-1.944-.04-1.526-1.866-1.712-2.905s-.78-3.085-2.716-2.788c0 0 .484 4.243-1.489 5.546s-5.843 2.27-6.55-.408 2.46-2.384 2.684-2.384c.223 0 2.233-.632 1.267-2.53-.967-1.898-2.01-3.5-2.01-3.5a11.37 11.37 0 0 0-2.735 1.285 5.42 5.42 0 0 0-1.061.82c-1.065 1.104-2.19 1.713-2.954 1.358a1.368 1.368 0 0 1-.32-.221A11.926 11.926 0 0 1 .1 13.503c.43-.641 2.082-2.038 3.696-2.906 1.304-.702 2.737-.988 3.118-1.355-.671-2.235-1.882-5.703.832-7.33C9.881.634 12.69-.142 13.77 2.958c1.08 3.1.802 3.796 1.267 3.796.465 0 1.608.223 2.09-1.75.356-1.445.574-2.685 1.379-3.087A12 12 0 0 0 12 0a12 12 0 0 0-.035 0zm-.498 2.125c-.353-.019-.78.05-1.303.224 0 0-1.895.52-1.749 2.53.13 1.777 1.08 2.753 3.053 2.01 1.972-.737 2.31-1.264 1.824-2.753-.364-1.117-.765-1.956-1.825-2.011zm.48.726a.249.249 0 0 1 .183.07 1.58 1.58 0 0 1 .232.346.253.253 0 0 1-.197.37.253.253 0 0 1-.233-.131 1.559 1.559 0 0 0-.148-.232.256.256 0 0 1 0-.353.249.249 0 0 1 .163-.07zm3.529.152a.22.22 0 0 1 .192.103.22.22 0 0 1-.07.305.22.22 0 1 1-.122-.408zM12.609 4.27a.253.253 0 0 1 .227.133 1.5 1.5 0 0 1 .102.982.253.253 0 0 1-.246.205h-.049a.253.253 0 0 1-.2-.295 1.013 1.013 0 0 0-.071-.697.253.253 0 0 1 .237-.328zm-8.035.552a.12.12 0 0 1 .029.003.12.12 0 1 1-.147.091.12.12 0 0 1 .118-.094zm15.77 3.419.273.539.593.12-.539.275-.123.592-.272-.539-.592-.123.538-.272zm-17.767.535a.22.22 0 0 1 .193.104.22.22 0 0 1-.07.304.22.22 0 1 1-.123-.408zm16.004 2.79a.258.258 0 0 1 .062.007.258.258 0 1 1-.31.195.258.258 0 0 1 .248-.202zM4.914 16.115a.17.17 0 0 1 .165.14.17.17 0 0 1-.137.197.17.17 0 1 1-.028-.337zm9.769 4.094a.2.2 0 0 1 .036.004.2.2 0 1 1-.233.15.2.2 0 0 1 .197-.154z\"},\"child\":[]}]})(props);\n};\nexport function SiOhdear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.811 9.3333c2.5345 0 4.5966 1.9939 4.5966 4.4444 0 2.4506-2.0621 4.4444-4.5966 4.4444-2.2139 0-4.0673-1.5215-4.5007-3.5397h-6.3101v-1.7972h6.3072c0.42873-2.0242 2.285-3.5519 4.5036-3.5519zm7.3308-3.5556v3.8766c0.60102-0.38439 1.3334-0.586 2.1395-0.586 1.7157 0 3.7189 1.1521 3.7189 4.3993v4.4583h-1.8453v-4.4583c0-1.0234-0.25022-1.7562-0.74385-2.1787-0.38875-0.33283-0.84479-0.40252-1.1591-0.40252-0.96256 0-2.1102 0.44768-2.1102 2.5812v4.4583h-1.8453v-12.148zm-7.3308 5.3741c-1.4978 0-2.7159 1.178-2.7159 2.6259s1.218 2.6259 2.7159 2.6259c1.4975 0 2.7155-1.178 2.7155-2.6259s-1.218-2.6259-2.7155-2.6259z\"},\"child\":[]}]})(props);\n};\nexport function SiOkcupid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.287 5.336c-1.656 0-2.609.886-2.831 2.632l-.106.804a.275.275 0 01-.382.218c-.67-.294-1.472-.45-2.397-.45C2.24 8.54 0 10.794 0 14.146 0 16.933 1.738 18.6 4.65 18.6c1.213 0 2.275-.27 3.142-.766a.268.268 0 01.323.045c.452.44 1.108.688 1.906.688.74 0 1.281-.072 1.702-.228l.489-.18a.28.28 0 01.248.03c.371.234.84.378 1.456.378 1.138 0 1.927-.218 2.474-.535a.275.275 0 01.272-.005c.19.101.394.188.61.264.623.244 1.355.374 2.198.374 3.635 0 4.38-1.791 4.38-2.838 0-.515-.127-1.04-.473-1.435-.01-.013-.027-.023-.038-.04-.387-.539-1.147-.349-1.324-.701-.09-.181-.016-.494.59-.466 1.09.05 1.395-1.399 1.395-2.172 0-.954-.449-2.556-3.455-2.556-1.144 0-2.151.247-2.993.697-.08.039-.162.076-.241.116a.268.268 0 01-.298-.034c-.435-.379-1.115-.661-2.177-.661-.225 0-.432.012-.625.039a.275.275 0 01-.312-.31l.118-.888.097-.727a.277.277 0 00-.106-.257l-.582-.447c-.735-.563-1.656-.648-2.14-.648zm.013 1.545c.46 0 .92.115 1.2.33l-.773 5.784c1.956-2.712 2.136-2.876 3.122-2.876 1.036 0 1.397.296 1.397.887 0 .345-.098.575-.263.756-.246-.016-.493-.016-.69-.016-.345 0-.542.082-1.512 1.413L14.9 15.18c.082.132.164.247.345.247.148 0 .395-.017.592-.066.164.115.23.346.23.559 0 .772-.773 1.101-2.137 1.101-.64 0-.87-.23-1.216-.97L11.612 13.8l-.411 3.09c-.312.115-.821.131-1.167.131-.723 0-1.051-.295-1.051-.92 0-.181.032-.493.098-.937l.92-7c.132-1.036.477-1.283 1.299-1.283zm-5.716 3.204c2.383 0 3.221 1.184 3.221 2.943 0 2.482-1.512 4.026-4.141 4.026-1.874 0-3.107-.822-3.107-2.909 0-2.432 1.48-4.06 4.027-4.06zm14.718.017c1.561 0 1.939.477 1.939 1.101 0 .345-.115.543-.329.707-.377-.115-.772-.18-1.38-.18-1.184 0-1.857.69-1.857 2.169 0 1.084.328 1.479 1.199 1.479.493 0 1.068-.116 1.693-.345.23.115.345.443.345.69 0 .838-.756 1.331-2.613 1.331-1.988 0-3.057-.805-3.057-2.893 0-2.596 1.578-4.059 4.06-4.059zM5.452 11.68c-1.002 0-1.56 1.019-1.56 2.383 0 .986.279 1.43 1.084 1.43.903 0 1.594-.872 1.594-2.367 0-.969-.263-1.446-1.117-1.446z\"},\"child\":[]}]})(props);\n};\nexport function SiOkta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.389 0 0 5.35 0 12s5.35 12 12 12 12-5.35 12-12S18.611 0 12 0zm0 18c-3.325 0-6-2.675-6-6s2.675-6 6-6 6 2.675 6 6-2.675 6-6 6z\"},\"child\":[]}]})(props);\n};\nexport function SiOkx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 7.15 8.685 C 7.18 8.705 7.2 8.745 7.2 8.785 L 7.2 15.225 C 7.2 15.265 7.18 15.305 7.15 15.325 C 7.121 15.355 7.082 15.372 7.04 15.375 L 0.16 15.375 C 0.118 15.372 0.079 15.355 0.05 15.325 C 0.02 15.3 0.002 15.264 0 15.225 L 0 8.785 C 0 8.745 0.02 8.705 0.05 8.685 C 0.079 8.655 0.118 8.638 0.16 8.635 L 7.04 8.635 C 7.08 8.635 7.12 8.655 7.15 8.685 Z M 4.8 11.035 C 4.798 10.996 4.78 10.96 4.75 10.935 C 4.721 10.905 4.682 10.887 4.64 10.885 L 2.56 10.885 C 2.52 10.885 2.481 10.899 2.45 10.925 C 2.42 10.95 2.402 10.986 2.4 11.025 L 2.4 12.975 C 2.4 13.015 2.42 13.055 2.45 13.075 C 2.48 13.115 2.52 13.125 2.56 13.125 L 4.64 13.125 C 4.68 13.125 4.72 13.115 4.75 13.085 C 4.78 13.06 4.798 13.024 4.8 12.985 L 4.8 11.035 Z M 21.6 11.035 L 21.6 12.975 C 21.6 13.065 21.53 13.125 21.44 13.125 L 19.36 13.125 C 19.27 13.125 19.2 13.065 19.2 12.975 L 19.2 11.035 C 19.2 10.955 19.27 10.885 19.36 10.885 L 21.44 10.885 C 21.53 10.885 21.6 10.945 21.6 11.035 Z M 19.2 8.785 L 19.2 10.735 C 19.2 10.815 19.13 10.885 19.04 10.885 L 16.96 10.885 C 16.87 10.885 16.8 10.815 16.8 10.735 L 16.8 8.785 C 16.8 8.705 16.87 8.635 16.96 8.635 L 19.04 8.635 C 19.13 8.635 19.2 8.705 19.2 8.785 Z M 24 8.785 L 24 10.735 C 24 10.815 23.93 10.885 23.84 10.885 L 21.76 10.885 C 21.67 10.885 21.6 10.815 21.6 10.735 L 21.6 8.785 C 21.6 8.705 21.67 8.635 21.76 8.635 L 23.84 8.635 C 23.93 8.635 24 8.705 24 8.785 Z M 19.2 13.285 L 19.2 15.225 C 19.2 15.305 19.13 15.375 19.04 15.375 L 16.96 15.375 C 16.87 15.375 16.8 15.305 16.8 15.225 L 16.8 13.275 C 16.8 13.195 16.87 13.125 16.96 13.125 L 19.04 13.125 C 19.13 13.125 19.2 13.195 19.2 13.275 L 19.2 13.285 Z M 24 13.285 L 24 15.225 C 24 15.305 23.93 15.375 23.84 15.375 L 21.76 15.375 C 21.67 15.375 21.6 15.305 21.6 15.225 L 21.6 13.275 C 21.6 13.195 21.67 13.125 21.76 13.125 L 23.84 13.125 C 23.93 13.125 24 13.195 24 13.275 L 24 13.285 Z M 15.6 8.785 L 15.6 10.735 C 15.6 10.815 15.53 10.885 15.44 10.885 L 13.36 10.885 C 13.27 10.885 13.2 10.815 13.2 10.735 L 13.2 8.785 C 13.2 8.705 13.27 8.635 13.36 8.635 L 15.44 8.635 C 15.53 8.635 15.6 8.705 15.6 8.785 Z M 15.6 13.285 L 15.6 15.225 C 15.6 15.305 15.53 15.375 15.44 15.375 L 13.36 15.375 C 13.27 15.375 13.2 15.305 13.2 15.225 L 13.2 13.275 C 13.2 13.195 13.27 13.125 13.36 13.125 L 15.44 13.125 C 15.53 13.125 15.6 13.195 15.6 13.275 L 15.6 13.285 Z M 13.2 12.985 C 13.195 13.069 13.125 13.135 13.04 13.135 L 10.8 13.135 L 10.8 15.215 C 10.8 15.255 10.78 15.295 10.75 15.325 C 10.719 15.351 10.68 15.365 10.64 15.365 L 8.56 15.365 C 8.516 15.368 8.473 15.353 8.44 15.325 C 8.414 15.298 8.399 15.262 8.4 15.225 L 8.4 8.775 C 8.4 8.735 8.41 8.695 8.44 8.675 C 8.472 8.643 8.515 8.625 8.56 8.625 L 10.64 8.625 C 10.68 8.625 10.72 8.645 10.75 8.675 C 10.78 8.695 10.8 8.735 10.8 8.775 L 10.8 10.875 L 13.04 10.875 C 13.08 10.875 13.12 10.885 13.15 10.915 C 13.18 10.945 13.2 10.985 13.2 11.015 L 13.2 12.965 L 13.2 12.985 Z\"},\"child\":[]}]})(props);\n};\nexport function SiOllama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.361 10.26a.894.894 0 0 0-.558.47l-.072.148.001.207c0 .193.004.217.059.353.076.193.152.312.291.448.24.238.51.3.872.205a.86.86 0 0 0 .517-.436.752.752 0 0 0 .08-.498c-.064-.453-.33-.782-.724-.897a1.06 1.06 0 0 0-.466 0zm-9.203.005c-.305.096-.533.32-.65.639a1.187 1.187 0 0 0-.06.52c.057.309.31.59.598.667.362.095.632.033.872-.205.14-.136.215-.255.291-.448.055-.136.059-.16.059-.353l.001-.207-.072-.148a.894.894 0 0 0-.565-.472 1.02 1.02 0 0 0-.474.007Zm4.184 2c-.131.071-.223.25-.195.383.031.143.157.288.353.407.105.063.112.072.117.136.004.038-.01.146-.029.243-.02.094-.036.194-.036.222.002.074.07.195.143.253.064.052.076.054.255.059.164.005.198.001.264-.03.169-.082.212-.234.15-.525-.052-.243-.042-.28.087-.355.137-.08.281-.219.324-.314a.365.365 0 0 0-.175-.48.394.394 0 0 0-.181-.033c-.126 0-.207.03-.355.124l-.085.053-.053-.032c-.219-.13-.259-.145-.391-.143a.396.396 0 0 0-.193.032zm.39-2.195c-.373.036-.475.05-.654.086-.291.06-.68.195-.951.328-.94.46-1.589 1.226-1.787 2.114-.04.176-.045.234-.045.53 0 .294.005.357.043.524.264 1.16 1.332 2.017 2.714 2.173.3.033 1.596.033 1.896 0 1.11-.125 2.064-.727 2.493-1.571.114-.226.169-.372.22-.602.039-.167.044-.23.044-.523 0-.297-.005-.355-.045-.531-.288-1.29-1.539-2.304-3.072-2.497a6.873 6.873 0 0 0-.855-.031zm.645.937a3.283 3.283 0 0 1 1.44.514c.223.148.537.458.671.662.166.251.26.508.303.82.02.143.01.251-.043.482-.08.345-.332.705-.672.957a3.115 3.115 0 0 1-.689.348c-.382.122-.632.144-1.525.138-.582-.006-.686-.01-.853-.042-.57-.107-1.022-.334-1.35-.68-.264-.28-.385-.535-.45-.946-.03-.192.025-.509.137-.776.136-.326.488-.73.836-.963.403-.269.934-.46 1.422-.512.187-.02.586-.02.773-.002zm-5.503-11a1.653 1.653 0 0 0-.683.298C5.617.74 5.173 1.666 4.985 2.819c-.07.436-.119 1.04-.119 1.503 0 .544.064 1.24.155 1.721.02.107.031.202.023.208a8.12 8.12 0 0 1-.187.152 5.324 5.324 0 0 0-.949 1.02 5.49 5.49 0 0 0-.94 2.339 6.625 6.625 0 0 0-.023 1.357c.091.78.325 1.438.727 2.04l.13.195-.037.064c-.269.452-.498 1.105-.605 1.732-.084.496-.095.629-.095 1.294 0 .67.009.803.088 1.266.095.555.288 1.143.503 1.534.071.128.243.393.264.407.007.003-.014.067-.046.141a7.405 7.405 0 0 0-.548 1.873c-.062.417-.071.552-.071.991 0 .56.031.832.148 1.279L3.42 24h1.478l-.05-.091c-.297-.552-.325-1.575-.068-2.597.117-.472.25-.819.498-1.296l.148-.29v-.177c0-.165-.003-.184-.057-.293a.915.915 0 0 0-.194-.25 1.74 1.74 0 0 1-.385-.543c-.424-.92-.506-2.286-.208-3.451.124-.486.329-.918.544-1.154a.787.787 0 0 0 .223-.531c0-.195-.07-.355-.224-.522a3.136 3.136 0 0 1-.817-1.729c-.14-.96.114-2.005.69-2.834.563-.814 1.353-1.336 2.237-1.475.199-.033.57-.028.776.01.226.04.367.028.512-.041.179-.085.268-.19.374-.431.093-.215.165-.333.36-.576.234-.29.46-.489.822-.729.413-.27.884-.467 1.352-.561.17-.035.25-.04.569-.04.319 0 .398.005.569.04a4.07 4.07 0 0 1 1.914.997c.117.109.398.457.488.602.034.057.095.177.132.267.105.241.195.346.374.43.14.068.286.082.503.045.343-.058.607-.053.943.016 1.144.23 2.14 1.173 2.581 2.437.385 1.108.276 2.267-.296 3.153-.097.15-.193.27-.333.419-.301.322-.301.722-.001 1.053.493.539.801 1.866.708 3.036-.062.772-.26 1.463-.533 1.854a2.096 2.096 0 0 1-.224.258.916.916 0 0 0-.194.25c-.054.109-.057.128-.057.293v.178l.148.29c.248.476.38.823.498 1.295.253 1.008.231 2.01-.059 2.581a.845.845 0 0 0-.044.098c0 .006.329.009.732.009h.73l.02-.074.036-.134c.019-.076.057-.3.088-.516.029-.217.029-1.016 0-1.258-.11-.875-.295-1.57-.597-2.226-.032-.074-.053-.138-.046-.141.008-.005.057-.074.108-.152.376-.569.607-1.284.724-2.228.031-.26.031-1.378 0-1.628-.083-.645-.182-1.082-.348-1.525a6.083 6.083 0 0 0-.329-.7l-.038-.064.131-.194c.402-.604.636-1.262.727-2.04a6.625 6.625 0 0 0-.024-1.358 5.512 5.512 0 0 0-.939-2.339 5.325 5.325 0 0 0-.95-1.02 8.097 8.097 0 0 1-.186-.152.692.692 0 0 1 .023-.208c.208-1.087.201-2.443-.017-3.503-.19-.924-.535-1.658-.98-2.082-.354-.338-.716-.482-1.15-.455-.996.059-1.8 1.205-2.116 3.01a6.805 6.805 0 0 0-.097.726c0 .036-.007.066-.015.066a.96.96 0 0 1-.149-.078A4.857 4.857 0 0 0 12 3.03c-.832 0-1.687.243-2.456.698a.958.958 0 0 1-.148.078c-.008 0-.015-.03-.015-.066a6.71 6.71 0 0 0-.097-.725C8.997 1.392 8.337.319 7.46.048a2.096 2.096 0 0 0-.585-.041Zm.293 1.402c.248.197.523.759.682 1.388.03.113.06.244.069.292.007.047.026.152.041.233.067.365.098.76.102 1.24l.002.475-.12.175-.118.178h-.278c-.324 0-.646.041-.954.124l-.238.06c-.033.007-.038-.003-.057-.144a8.438 8.438 0 0 1 .016-2.323c.124-.788.413-1.501.696-1.711.067-.05.079-.049.157.013zm9.825-.012c.17.126.358.46.498.888.28.854.36 2.028.212 3.145-.019.14-.024.151-.057.144l-.238-.06a3.693 3.693 0 0 0-.954-.124h-.278l-.119-.178-.119-.175.002-.474c.004-.669.066-1.19.214-1.772.157-.623.434-1.185.68-1.382.078-.062.09-.063.159-.012z\"},\"child\":[]}]})(props);\n};\nexport function SiOneplus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3.74V24h20.26V12.428h-2.256v9.317H2.254V5.995h9.318V3.742zM18.004 0v3.74h-3.758v2.256h3.758v3.758h2.255V5.996H24V3.74h-3.758V0zm-6.45 18.756V8.862H9.562c0 .682-.228 1.189-.577 1.504-.367.297-.91.437-1.556.437h-.245v1.625h2.133v6.31h2.237z\"},\"child\":[]}]})(props);\n};\nexport function SiOnlyfans (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 4.003h-4.015c-3.45 0-5.3.197-6.748 1.957a7.996 7.996 0 1 0 2.103 9.211c3.182-.231 5.39-2.134 6.085-5.173 0 0-2.399.585-4.43 0 4.018-.777 6.333-3.037 7.005-5.995zM5.61 11.999A2.391 2.391 0 0 1 9.28 9.97a2.966 2.966 0 0 1 2.998-2.528h.008c-.92 1.778-1.407 3.352-1.998 5.263A2.392 2.392 0 0 1 5.61 12Zm2.386-7.996a7.996 7.996 0 1 0 7.996 7.996 7.996 7.996 0 0 0-7.996-7.996Zm0 10.394A2.399 2.399 0 1 1 10.395 12a2.396 2.396 0 0 1-2.399 2.398Z\"},\"child\":[]}]})(props);\n};\nexport function SiOnlyoffice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.501 11.724.631 7.16c-.841-.399-.841-1.014 0-1.376l9.87-4.563c.841-.399 2.194-.399 2.998 0l9.87 4.563c.841.398.841 1.014 0 1.376l-9.87 4.563c-.841.362-2.194.362-2.998 0zm0 5.468-9.87-4.563c-.841-.399-.841-1.014 0-1.376l3.363-1.558 6.507 3.006c.841.398 2.194.398 2.998 0l6.507-3.006 3.363 1.558c.841.398.841 1.014 0 1.376l-9.87 4.563c-.841.398-2.194.398-2.998 0zm0 0.0001-9.87-4.563c-.841-.399-.841-1.014 0-1.376l3.363-1.558 6.507 3.006c.841.398 2.194.398 2.998 0l6.507-3.006 3.363 1.558c.841.398.841 1.014 0 1.376l-9.87 4.563c-.841.398-2.194.398-2.998 0zm0 5.613-9.87-4.563c-.841-.398-.841-1.014 0-1.376l3.436-1.593 6.398 2.97c.84.398 2.193.398 2.997 0l6.398-2.97 3.436 1.593c.841.399.841 1.014 0 1.376l-9.87 4.563c-.768.362-2.12.362-2.925 0z\"},\"child\":[]}]})(props);\n};\nexport function SiOnnx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.0325 11.2963c-.0503 0-.1006 0-.1508.0126l-4.021-7.4387c.0754-.1383.1131-.289.1131-.4524 0-.5403-.4398-.9675-.9675-.9675-.2765 0-.5278.113-.7037.3015L9.286 1.156C9.2357.6785 8.821.3016 8.3184.3016c-.5277 0-.9675.4398-.9675.9675 0 .1634.0377.3141.113.4524l-6.245 8.9591c-.0753-.0251-.1633-.0377-.2513-.0377-.5403 0-.9675.4398-.9675.9676 0 .5403.4398.9675.9675.9675h.0377l3.3676 8.3309c-.0503.1257-.088.2639-.088.402 0 .5404.4398.9676.9676.9676.2764 0 .5277-.113.7036-.3015l10.1152.9926c.1005.4273.49.7288.9424.7288.5403 0 .9676-.4398.9676-.9675 0-.2388-.088-.465-.2262-.6283l5.1141-8.8712c.0503.0126.1005.0126.1634.0126.5403 0 .9675-.4398.9675-.9676 0-.5403-.4272-.98-.9675-.98zM17.2272 4.021c.1131.1508.2765.264.4524.3267l-1.533 11.5728c-.1005.0252-.1885.0503-.2764.1005L7.4513 8.708c.0251-.0754.0377-.1634.0377-.2514 0-.0628-.0126-.1256-.0126-.1884zm4.8754 8.5068l-5.177 3.556a1.105 1.105 0 0 0-.1256-.0753L18.3455 4.335h.0126l3.9456 7.288c-.1508.1759-.2388.3895-.2388.6408 0 .1005.0126.1885.0377.2638zM6.3832 7.5016c-.4649.0754-.8293.4775-.8293.955v.0628l-3.4555 2.0481 5.378-7.7026zm.3519 1.91c.1256-.0252.2513-.088.3518-.1634l8.356 7.2628c-.0377.113-.0628.2262-.0628.3518v.0503l-9.311 3.845c-.1382-.201-.3518-.3518-.6031-.402zm8.8963 8.1172c.1257.1382.3016.2513.5026.289l.465 4.046c-.201.1006-.3519.264-.4524.4524l-9.8136-.955zm1.1435.2136c.3267-.1633.5403-.49.5403-.867 0-.088-.0126-.1634-.0377-.2513l4.7372-3.2545-4.8 8.331zm.2513-14.3497l-9.889 4.31-.1131-.0755 1.2565-5.3906h.0377c.3393 0 .6409-.1759.8168-.4397l7.891 1.5706zM1.935 11.6105c0-.0629-.0126-.1257-.0126-.1885l3.9079-2.2995c.0754.0754.1633.1508.2638.201L4.8252 20.243l-3.2043-7.9036c.1885-.176.3142-.4398.3142-.7288Z\"},\"child\":[]}]})(props);\n};\nexport function SiOnstar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zm-.049.763c6.233 0 11.304 5.066 11.304 11.294 0 6.229-5.07 11.295-11.304 11.295-6.233 0-11.304-5.066-11.304-11.295C.647 5.83 5.718.763 11.951.763zm0 .287C5.877 1.05.936 5.988.936 12.057c0 6.07 4.941 11.008 11.015 11.008 6.074 0 11.016-4.938 11.016-11.008 0-6.069-4.942-11.007-11.016-11.007zm4.73 3.25l.582 1.7 1.8.064-1.44 1.078.495 1.729-1.472-1.034-1.494 1.004.53-1.717-1.418-1.108 1.8-.028zM7.99 7.11c2.892 0 4.967 2.155 4.967 4.82v.027c0 2.664-2.102 4.847-4.994 4.847s-4.967-2.156-4.967-4.82v-.027c0-2.665 2.102-4.848 4.994-4.848zm-.027 1.9c-1.66 0-2.812 1.313-2.812 2.92v.027c0 1.606 1.179 2.945 2.839 2.945s2.812-1.312 2.812-2.918v-.027c0-1.607-1.178-2.946-2.839-2.946zm9.976.322c1.54 0 2.437 1.018 2.437 2.665v4.646h-2.035V12.64c0-.964-.455-1.46-1.232-1.46-.776 0-1.272.496-1.272 1.46v4.003h-2.035V9.466h2.035v1.018c.469-.603 1.071-1.152 2.102-1.152Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.291 4.57a7.46 7.46 0 0 0-7.338 5.006h.568a6.926 6.926 0 0 1 6.483-4.494 6.922 6.922 0 0 1 6.922 6.924c0 .116 0 .234-.01.351l.533.059c0-.134.01-.273.01-.4a7.46 7.46 0 0 0-7.168-7.446zM.869 10.113 0 10.566l13.25 1.44 3.63-1.893H.87zm3.682 1.483v.41a7.46 7.46 0 0 0 14.498 2.441h-.57a6.924 6.924 0 0 1-6.475 4.487 6.928 6.928 0 0 1-6.92-6.928v-.352l-.533-.058zm6.193.414-3.63 1.898h16.011l.873-.453v-.006l-13.254-1.44zm13.254 1.44H24l-.002-.007v.006z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenaccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.971 13.486a7.56 7.56 0 00-.54-1.043V6.415a6.375 6.375 0 00-1.88-4.535A6.374 6.374 0 0012.017 0h-.002a6.374 6.374 0 00-4.536 1.878 6.375 6.375 0 00-1.88 4.537v.877h2.57v-.877c0-1.026.4-1.992 1.127-2.72a3.822 3.822 0 012.72-1.125 3.852 3.852 0 013.847 3.845v3.508A7.52 7.52 0 0012 8.865a7.54 7.54 0 00-5.35 2.216 7.54 7.54 0 00-2.216 5.35 7.54 7.54 0 002.215 5.35A7.54 7.54 0 0012 24a7.54 7.54 0 005.35-2.216 7.54 7.54 0 002.216-5.35c0-1.021-.2-2.012-.595-2.946zM12 21.428a5.003 5.003 0 01-4.997-4.996A5.003 5.003 0 0112 11.435a5.002 5.002 0 014.997 4.997A5.002 5.002 0 0112 21.428zm2.145-4.973a2.12 2.12 0 11-4.24 0 2.12 2.12 0 014.24 0z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenaigym (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 9.736V9.72c0-.018-.009-.035-.009-.053-.008-.017-.008-.034-.017-.052 0-.009-.009-.009-.009-.017a.19.19 0 0 0-.026-.044v-.009c-.009-.017-.026-.026-.044-.043l-.008-.009c-.018-.009-.035-.026-.053-.035l-3.72-2.143V3.02c0-.018 0-.044-.008-.061V2.94a.124.124 0 0 0-.017-.052V2.88c-.01-.017-.018-.035-.027-.043 0-.01-.008-.01-.008-.01a.19.19 0 0 0-.035-.043c-.018-.008-.026-.026-.044-.034-.008 0-.008-.01-.017-.01l-.009-.008L16.055.476a.338.338 0 0 0-.34 0l-3.72 2.143L8.286.476a.338.338 0 0 0-.34 0L4.06 2.723c-.01 0-.01.01-.01.01-.008 0-.008.008-.017.008-.017.009-.026.026-.043.035a.153.153 0 0 0-.035.043l-.009.009c-.008.017-.017.026-.026.044v.008c-.009.018-.009.035-.017.052v.018c0 .017-.009.043-.009.06v4.296L.166 9.457c-.018.01-.035.026-.053.035l-.008.009-.044.043v.01c-.009.017-.017.025-.026.043 0 .008-.009.008-.009.017a.124.124 0 0 0-.017.052C0 9.684 0 9.701 0 9.72v4.521a.34.34 0 0 0 .166.296l3.72 2.143v4.295a.34.34 0 0 0 .165.296l3.885 2.248c.009.008.018.008.026.017 0 0 .009 0 .009.009.009 0 .017.008.026.008.009 0 .009 0 .018.01.008 0 .017 0 .026.008h.061a.35.35 0 0 0 .13-.026c.018-.009.026-.009.044-.018l3.72-2.143 3.72 2.143c.017.009.026.018.043.018a.35.35 0 0 0 .13.026h.062c.008 0 .017 0 .026-.009.008 0 .008 0 .017-.009.009 0 .018-.008.026-.008.009 0 .009 0 .009-.009.009 0 .017-.009.026-.017l3.885-2.248a.34.34 0 0 0 .166-.296V16.68l3.72-2.143a.34.34 0 0 0 .165-.296V9.754c.009-.01.009-.018.009-.018zM12.17 20.67s-.009 0-.009-.009c-.009-.008-.017-.008-.035-.017-.008 0-.017-.009-.026-.009-.009 0-.017-.009-.035-.009-.008 0-.026-.008-.035-.008h-.069c-.009 0-.026 0-.035.008-.009 0-.017 0-.035.01-.009 0-.017.008-.026.008-.009.009-.017.009-.035.017 0 0-.009 0-.009.009l-3.37 1.951v-3.702l3.545-2.047 3.545 2.047v3.702zM4.4 7.793c.017-.017.025-.026.034-.026.009-.008.018-.008.026-.017l.026-.026c.01-.009.018-.018.018-.026.009-.01.009-.018.017-.026.009-.01.009-.018.018-.027.008-.008.008-.017.008-.034 0-.01.01-.018.01-.035 0-.009 0-.018.008-.035V3.603L7.77 5.46v4.094L4.225 11.6 1.02 9.745zm7.596-4.381l3.545 2.047V9.16l-3.38-1.951s-.009 0-.009-.009c-.008-.009-.017-.009-.034-.017-.01 0-.018-.009-.027-.009-.008 0-.017-.009-.034-.009-.01 0-.018-.008-.035-.008h-.07c-.009 0-.026 0-.035.008-.008 0-.017 0-.035.009-.008 0-.017.009-.026.009-.008.008-.026.008-.035.017 0 0-.008 0-.008.009L8.45 9.16v-3.7zm0 12.675L8.45 14.04V9.945l3.546-2.047 3.545 2.047v4.095zm-7.431-3.903l3.206-1.856v3.947c0 .008 0 .017.008.035 0 .008.009.017.009.034 0 .01.009.018.009.035.008.009.008.018.017.026.009.01.009.018.018.027.008.008.017.017.017.026l.026.026c.009.009.018.017.026.017.009.009.018.018.026.018l.01.008 3.38 1.952-3.207 1.855-3.545-2.047zm11.325 6.15l-3.206-1.855 3.38-1.952.009-.008c.008-.009.017-.018.026-.018.008-.008.017-.008.026-.017l.026-.026c.009-.009.017-.018.017-.026.01-.01.01-.018.018-.027.009-.008.009-.017.017-.026.009-.008.009-.017.009-.035 0-.008.009-.017.009-.034 0-.01 0-.018.008-.035v-3.947l3.206 1.856v4.094zm3.885-6.734l-3.546-2.047V5.46l3.206-1.856V7.55c0 .008 0 .017.009.034 0 .01.009.018.009.035 0 .009.008.018.008.035.01.009.01.018.018.026.008.009.008.018.017.026.009.01.018.018.018.026.008.01.017.018.026.027.008.008.017.017.026.017.009.009.017.017.026.017l.009.01 3.38 1.95zM15.89 1.164l3.205 1.856-3.205 1.855-3.206-1.855zm-7.78 0l3.206 1.856L8.11 4.866 4.905 3.02zM.68 10.337l3.205 1.856v3.702L.68 14.04zM7.77 22.62l-3.205-1.855v-3.703l3.206 1.856zm11.665-1.846l-3.206 1.855v-3.702l3.206-1.856zm3.886-6.734l-3.206 1.855v-3.702l3.206-1.856Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenapiinitiative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.039 0a2.959 2.959 0 00-2.65 4.274l-6.447 6.447a2.96 2.96 0 101.335 1.336l6.447-6.447A2.959 2.959 0 1021.04 0zM10.628 2.745c-.072 0-.143.003-.214.004-.072.002-.143.002-.215.005-.447.018-.893.064-1.335.138l-.03.005-.185.033-.105.02a7.718 7.718 0 00-.289.062l-.032.008a10.69 10.69 0 00-2.55.95l-.155.089c-.063.034-.125.07-.187.105-.046.027-.093.051-.14.079H5.19l-.01.005-.036.02v.002l.111.184 3.15 5.23a4.168 4.168 0 01.38-.202 4.294 4.294 0 011.628-.413c.071-.004.143-.008.214-.008zm.428.01v6.333c.325.034.647.103.96.209l4.66-4.66c-.173-.12-.348-.237-.528-.347l-.026-.015c-.056-.035-.112-.067-.168-.1l-.098-.056-.099-.055a12.735 12.735 0 00-.171-.092l-.027-.014a10.628 10.628 0 00-1.425-.617c-.69-.241-1.403-.41-2.128-.505l-.089-.012-.09-.01a6.56 6.56 0 00-.17-.019l-.049-.004-.204-.017a6.44 6.44 0 00-.255-.015c-.031-.003-.062-.003-.093-.004zM4.782 4.498a9.92 9.92 0 00-1.36 1.062l4.461 4.461.018.018c.049-.04.098-.078.149-.116l-.011-.018zm-1.67 1.36c-.05.05-.098.103-.147.154l-.149.155c-.33.357-.63.73-.902 1.118l-.039.056a10.588 10.588 0 00-.216.326 10.6 10.6 0 00-1.65 5.276l-.006.215-.003.214h6.317c0-.072.007-.143.01-.214.005-.072.006-.144.013-.215.081-.822.399-1.625.952-2.3.045-.055.096-.106.144-.16.048-.052.093-.107.144-.158zm16.255 1.464l-4.663 4.663c.106.312.175.634.21.959h6.332l-.004-.094a11.579 11.579 0 00-.032-.456l-.005-.052a13.044 13.044 0 00-.026-.241v-.009l-.033-.24v-.009a10.618 10.618 0 00-.327-1.493l-.003-.01a15.839 15.839 0 00-.07-.228l-.01-.03a14.111 14.111 0 00-.069-.204l-.02-.055a5.65 5.65 0 00-.153-.405 7.84 7.84 0 00-.093-.227 16.67 16.67 0 00-.063-.144l-.037-.081a13.776 13.776 0 00-.08-.171l-.024-.052-.096-.194-.014-.027a11.2 11.2 0 00-.112-.212l-.004-.008a10.615 10.615 0 00-.604-.98zm-4.43 6.05c0 .071-.006.142-.01.214-.003.072-.005.143-.012.214a4.29 4.29 0 01-.952 2.301c-.045.055-.096.107-.144.16-.048.053-.093.108-.144.159l4.467 4.467c.051-.051.099-.104.148-.155.05-.052.1-.103.148-.155.331-.358.633-.733.905-1.122l.032-.046.098-.144.085-.13.04-.063a10.597 10.597 0 001.647-5.272c.003-.071.004-.143.006-.214.001-.071.004-.143.004-.214zM.01 13.8l.004.093.01.179.005.076.017.206.005.046c.007.076.015.153.024.228l.003.022a9.605 9.605 0 00.033.248c.072.505.182 1.005.327 1.497l.002.006c.022.077.047.154.071.23l.004.014.005.014a15.737 15.737 0 00.153.439l.03.08.059.148a7.702 7.702 0 00.093.228l.062.14.038.084.078.169.027.054a10.677 10.677 0 00.225.441l.025.043 5.408-3.258.02-.012a4.314 4.314 0 01-.395-1.414h-.025zm.505 2.846l-.206.058.002.005zm6.425-1.052l-5.415 3.262c.083.139.17.273.259.406l.008.014.004.005.008.014h.001c.007.012.014.022.022.032l.001.002v.001a10.634 10.634 0 00.298.417l.006.008a9.963 9.963 0 00.29.368l.033.04c.043.052.086.103.13.153l.057.065.112.127.064.069.029.031.083.09.035.035c.049.051.098.103.149.153L7.58 16.42a3.86 3.86 0 01-.285-.321 4.422 4.422 0 01-.356-.505zm6.416 1.111c-.05.04-.1.079-.15.116l.011.018 3.257 5.407c.151-.099.3-.2.446-.307.315-.232.62-.484.914-.756l-4.46-4.46zm-5.457.003l-.015.015-4.46 4.46a8.966 8.966 0 00.195.176c.022.02.043.04.065.058l.152.13a10.622 10.622 0 00.215.174l.023.017.191.148.008.005c.268.2.547.389.834.564l.03.018.164.097.101.057a5.458 5.458 0 00.27.148c.008.004.016.01.025.013.162.085.327.164.493.24l.158-.385 2.243-5.448.009-.02a4.328 4.328 0 01-.701-.467zm4.951.353c-.061.037-.124.07-.187.104a4.318 4.318 0 01-3.271.336c-.069-.02-.135-.047-.203-.071-.067-.024-.136-.044-.202-.072l-2.242 5.444-.088.213-.075.183v.001l.017.007a.137.137 0 00.019.007l.005.003c.052.021.106.04.159.06.067.027.133.053.2.077l.102.04c.702.247 1.43.42 2.168.518l.087.012.09.01.172.019a7.173 7.173 0 00.252.022c.023.001.048.001.071.003l.184.011.112.005a7.06 7.06 0 00.358.007h.05a10.667 10.667 0 001.793-.15l.185-.034.105-.02.109-.023.18-.04.032-.008a10.684 10.684 0 002.55-.95c.052-.028.104-.06.156-.089.063-.034.125-.07.187-.105.043-.024.087-.047.13-.073h.001l.002-.002.002-.001.002-.001.007-.004.042-.025-.11-.183-.11-.184zm3.262 5.414l-.042.025.042-.024zm-.05.029zm-.005.004h-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenbadges (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.43 18.584l-8.265-4.749 1.078-.641.719-.411.719.41 1.796 1.027 1.437.821 1.797 1.027 1.438.822 1.078.616zm-3.234 1.873l-8.24-4.774 1.797-1.027 8.24 4.75-1.797 1.051zm-3.209 1.848l-8.24-4.748 1.797-1.027 8.24 4.749zM3.03 14.246l8.24-4.748v2.079l-.719.41-1.797 1.027-1.438.821-1.796 1.027-1.437.822-1.053.615v-2.054zm0-3.722l8.24-4.749v2.08l-8.24 4.723v-2.054zm0-3.722l8.24-4.749v2.054L3.03 8.856V6.802zm9.677-4.749l1.797 1.027v9.523l-1.078-.616-.719-.41V2.052zm3.209 1.848l1.796 1.027v9.523l-1.797-1.027V3.901zm3.234 1.875l1.796 1.026v9.523l-1.796-1.027V5.775zm3.26.205l-1.49-.822-1.796-1.026-1.412-.847-1.797-1.027-1.437-.822L12.68.411 11.962 0l-.719.411-9.651 5.57v12.012l.718.41L11.987 24l1.438-.822 1.797-1.026 1.437-.821 1.797-1.027 1.437-.821 1.797-1.027.718-.411Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenbsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.695 1.653c-.202.47-.146 1.02-.293 1.509-.034.112-.146.452-.308.429-.333-.048-.16-.688-.545-.7l.12.934c-.577.073-.498-.829-.733-1.195-.27-.423-.335.192-.317.38.011.122.036.242.05.363.026.21.032.393.005.603-.552-.007-.35-.733-.754-.844l.03.874c-.612-.005-.89-.557-1.159-1.025-.112-.196-.261-.574-.53-.453.126.544.423 1.064.454 1.63.007.145-.13.516-.333.448-.469-.158-.406-1.008-.796-1.231-.08-.045-.204-.006-.29-.002 0 .45.198.996.356 1.418.034.09.129.41-.069.403-.353-.01-.441-.695-.8-.615.044.185.153.335.215.513.037.109.106.219.126.332.044.247-.269.267-.432.22-.384-.114-.66-.428-.935-.703-.076-.076-.277-.344-.404-.222-.141.135.136.373.215.464.234.271.488.589.6.935.049.148.058.36-.09.462-.146.1-.384-.083-.502-.16-.362-.239-.721-.654-1.176-.664l-.107.271.29.392.752.845-.875-.362c.035.229.583.506.475.742-.064.14-.38.142-.505.124-.446-.064-.762-.396-1.177-.515-.366-.105-.298.18-.09.343.072.057.141.117.211.177.125.108.245.219.362.336.183.183.343.378.513.573l-.875-.03v.06l.845.392-.151.603c-.244 0-.442-.067-.664-.163-.151-.066-.31-.175-.482-.163-.206.014-.328.202-.19.377.206.263.62.412.883.617.1.078.247.212.133.345-.225.264-.832-.074-1.128.013v.06c.275.161.839.253 1 .549.128.231-.232.756-.487.736-.227-.019-.436-.275-.603-.41-.401-.322-.83-.7-1.298-.923-.801-.38-1.597.226-2.232.622.081.256.402-.017.603.029.271.061.477.313.651.513.84.968 1.543 2.064 1.857 3.319.083.33.224.725-.023 1.021-.066.08-.165.09-.238.155-.055.05-.052.118.023.141.138.043.34-.021.475-.054.443-.107.949-.346 1.15-.78.125-.271.169-.797.48-.905.068.29.394.673.363.965-.029.259-.302.56-.461.751-.057.068-.193.217-.112.315.082.097.25-.112.3-.16.229-.216.73-.558.865-.062.118.432-.261 1.13-.45 1.509-.054.105-.297.435-.202.553.11.135.338-.218.387-.282.19-.249.856-.987 1.21-.722.431.324.282.555.119.994-.046.123-.216.433-.1.55.111.114.258.01.315-.098.104-.197.383-.78.661-.631.175.093.441.251.543.425.158.272.02.815-.022 1.111-.024.17-.207.702-.055.825.14.113.254-.228.296-.312.149-.295.32-.597.54-.845.08-.089.192-.237.327-.212.7.131-.015.829.273 1.185.058.072.215.067.3.083l.362-.935c.184.07.455.095.591.248.114.128.137.344.17.506.092.454.142.896.084 1.357.057.042.148.138.225.088.097-.062.11-.315.143-.42.106-.332.269-.65.42-.965.099-.207.37-.427.565-.142.2.292.12.804.246 1.138.32-.158.355-.825.362-1.147l.415.061.25.513.45 1.297c.234-.09.16-.538.187-.754.035-.293.103-.882.318-1.1.086-.087.258-.095.37-.137.129.312.199.666.354.965.06.116.198.242.337.17.133-.068.128-.224.111-.35-.042-.313-.113-.62-.138-.936.598-.042.95.441 1.325.845.145.155.271.362.485.422l-.31-.905-.172-.845c.217-.09.676-.534.905-.47.34.097.6 1.046 1.023.823.18-.095.088-.257.003-.383-.126-.188-.506-.639-.465-.874.03-.175.324-.379.494-.377.391.006 1.071.304 1.297.618l.272-.03c-.04-.54-.85-.787-.966-1.328a.404.404 0 01.004-.172c.086-.347.294-.195.51-.102.067.029.213.103.269.02.06-.091-.048-.212-.087-.289-.082-.156-.156-.337-.122-.513.282.074.455.242.694.4.056.038.18.131.251.08.075-.056-.036-.167-.071-.208-.106-.123-.432-.42-.4-.6.022-.122.227-.252.31-.335.276-.276.59-.556.815-.875h.03c.532.621 2.203.186 1.99-.754-.132.019-.256.123-.392.077-.594-.205-.45-1.157-1.116-1.163-.049-.62-.298-1.24-.599-1.78-.138-.247-.424-.473-.525-.725-.055-.14-.046-.36-.052-.512.349-.054.177-.407.05-.603-.142-.218-.292-.477-.475-.66-.226-.227-.562-.374-.533-.758.027-.357.642-.311.747-.633-.183.008-.363.053-.543.083-.449.075-.527-.076-.317-.475.183-.349.474-.613.73-.905.083-.093.336-.306.205-.441-.107-.112-.286.058-.377.119-.333.22-.705.384-1.086.502-.113.035-.448.166-.486-.035-.051-.272.463-.322.395-.628-.205.049-.61.374-.807.223-.238-.18.111-.643.149-.856.038-.216-.136-.224-.258-.09-.043.048-.081.1-.12.15-.07.087-.126.17-.17.271-.494-.288.44-.623.265-.89-.063-.095-.179 0-.235.05-.117.102-.558.61-.654.237-.106-.412.108-.908.22-1.297.028-.102.159-.376.032-.449-.185-.106-.266.253-.31.359a2.333 2.333 0 01-.615.839c-.086.077-.232.225-.36.19-.187-.051-.188-.57-.182-.728.003-.075.045-.205-.028-.26-.096-.071-.147.072-.16.14-.048.222-.186.856-.515.44-.298-.376.163-1.157-.444-1.315l-.332 1.056c-.398-.087-.31-.656-.211-.966l-.181-.06a3.303 3.303 0 01-.112.362c-.16.451-.375.539-.541.03-.127-.388-.082-.807-.145-1.207-.025-.159-.04-.32-.198-.392zm.03.905c.153.364-.008.82.237 1.176.25.364.716.168 1.02.397.108.081.022.256-.007.358-.1.347-.278.604-.465.905.655-.335.875-1.29.965-1.96h.03c-.026.596-.007 1.182 0 1.779.003.27-.037.582.272.633V4.46c.323.093.808.502 1.159.381.179-.061.342-.277.467-.411.094-.102.175-.212.244-.332h.03l-.12.965-.302-.06.663.473.261.226-.2.294-.875.636c.637-.094.958-.564 1.418-.935-.15.63-.491 1.262-.332 1.93h.03l.362-1.448c.274.13.37.476.633.633.383.228.919-.204 1.267-.331-.227.322-.57.548-.633.965l-.272-.12c.236.606.519 1.19.62 1.84.093.594-.024 1.183.016 1.78.02.275.133.517.179.784-.563.191-.666.98-1.207 1.236.043-.188.11-.377.11-.573 0-.14-.066-.282-.03-.422.073-.277.314-.508.412-.784.152-.43.05-.835-.009-1.267l.301.03-.758-1.177-.376-.573.139-.392c-.762.586-1.867 1.188-1.87 2.293l.271-.091.09.664-.422.06v.06c.353.1.722.149 1.056.306.244.114.514.265.682.479.56.71.112 1.818-.31 2.473-.213.33-.594.634-.734.996.382-.092.577-.457.792-.754.091-.127.17-.303.325-.362.24-.09.32.354.371.512.065.2.218.546.18.755-.071.401-.415.662-.34 1.116.166-.202.217-.604.482-.702.17-.062.347.095.513.12.36.053.73-.082.996-.326.285-.263.48-.686.408-1.083-.043-.24-.177-.476-.16-.724.012-.2.148-.362.22-.543.173-.427.152-.912-.257-1.189a.86.86 0 00-.362-.138c.033-.222.264-.706.53-.418.188.202.29.558.396.81.389.918.392 2.006-.163 2.865-.394.61-1.02 1.11-1.548 1.6l-.21-.604h-.061c-.07.36.185.772.332 1.086-.33-.075-.645-.415-.996-.362.099.17.748.572.242.754.003.148-.11.25-.2.362-.201.248-.454.618-.766.724l-.573-1.508h-.03c.084.661.314 1.305.61 1.9.154.307.403.611.506.935-.187-.159-.306-.413-.466-.603a6.313 6.313 0 00-.952-.892c-.227-.177-.45-.376-.754-.345.345.31.868.475.835 1.056-.01.165-.193.237-.322.296-.339.155-.67.322-1.026.438-.098.032-.279.12-.382.087-.11-.037-.097-.277-.109-.369-.037-.285.121-1.028-.172-1.146-.128 1.01.132 1.929.21 2.926h-.03c-.17-.737-.439-1.558-.838-2.202-.11-.177-.343-.597-.579-.543l.62 1.086.013.46-.452.08-1.297.033c.047-.373.13-.746.2-1.116.014-.081.074-.326-.078-.326-.14 0-.169.408-.189.507-.108.542-.204 1.106-.205 1.66h-.03c0-.913-.41-1.73-.784-2.535-.104.155.041.377.086.543.099.371.113.737.065 1.116-.612-.118-1.275-.278-1.84-.543.149-.357.576-.889.573-1.267-.554.556-.804 1.335-1.086 2.052h-.03l.12-1.448-.21-1.237c-.132.133-.06.399-.04.573.033.275.015.688-.188.9-.112.117-.226.014-.346-.034-.335-.136-.582-.36-.875-.564-.104-.072-.293-.15-.28-.302.032-.433.656-.638.672-1.026-.72.31-1.062 1.088-1.629 1.57.186-.785.782-1.703.634-2.535-.152.084-.145.295-.185.453a4.324 4.324 0 01-.388.965c-.4-.231-.72-.623-.983-.996-.073-.102-.233-.26-.235-.392-.002-.128.145-.274.225-.362.244-.265.54-.465.872-.603-.237-.147-.706.2-.965.272.175-.37.65-.732.513-1.177-.393.307-.66.97-.935 1.388h-.03l-.574-1.267.754.271c.023-.27-.36-.373-.573-.422.126-.328.476-.578.392-.965h-.06c-.087.28-.269.759-.573.844l-.09-.482h-.03c-.119.253.029.447-.04.687-.037.125-.217.106-.28.222-.085.158-.092.37-.164.539-.172.407-.5.706-.904.874l-.037-.54.459-.515-.483.361c-.062-.161-.203-.465-.12-.633.073-.145.254-.24.362-.362l-.483.241c-.163-.422.135-.3.302-.603-.122.07-.325.2-.471.133-.187-.085-.384-.64-.464-.827l.512-.09v-.03c-.242.03-.626.12-.663-.211h.633v-.03l-.712-.08-.194-.252-.421-.543c.251-.075.683-.075.935 0-.368-.387-1.024.182-1.327-.453l.754-.15v-.03c-.234 0-.67.135-.874.028-.054-.028-.094-.075-.134-.12-.388-.438.48-.478.766-.44.55.076.975.452 1.358.833.194.193.473.538.754.595.278.055.51-.122.724-.263 0 .212-.022.422.15.573 0-.416.005-.857.07-1.267.023-.152.083-.352.263-.38.225-.034.531.309.693.44.002-.234-.175-.432-.319-.603-.396-.47-1.025-.914-1.58-1.177v-.03c.823.142 1.442.625 2.322.392v-.06l-1.026-.15c.043-.321.276-.734.203-1.057-.1-.44-.568-.644-.746-1.025.306.118.63.29.966.297.188.005.336-.098.512-.14.485-.113.766.123 1.086.446.088-.305-.15-.559-.334-.784-.186-.229-.35-.46-.57-.659-.267-.24-.662-.52-.815-.85.25.049.49.256.694.402.359.255.715.503 1.116.691.211.1.578.265.754.054l-.965-.362c.07-.101.17-.188.221-.302.138-.307-.104-.568-.191-.844.185.068.345.227.543.26.464.078.734-.47 1.086-.653L9.11 6.45c.201-.168.112-.494.078-.724-.099-.664-.493-1.251-.59-1.9h.03c.381.816.835 1.696 1.598 2.201l-.277-.363-.477-.723c.095-.037.188-.077.269-.142.528-.423.078-1.012.002-1.517h.03c.065.155.14.314.235.453.441.638 1.023.536 1.696.482l-.18 1.328h.03c.089-.283.258-.516.318-.815.11-.544-.006-1.084-.017-1.629h.03c.048.322.179.63.282.936.162.482.293 1.01.653 1.387l-.331-1.357c.958-.001 1.219-.647 1.236-1.509zm-.271 2.082l-.483 2.172c.372-.227.45-1.053.483-1.448h.03c.065.348.096.696.238 1.025.056.13.117.305.275.302l-.386-1.357zm-2.956.392c.006.771.387 1.473.24 2.262.146-.088.15-.295.152-.452.004-.365-.06-.723-.06-1.086h.03c.105.364.39 1.09.814 1.146-.05-.196-.211-.344-.319-.513-.238-.374-.472-1.13-.857-1.357zm6.184.332c-.336.526-.736 1.245-1.237 1.629v.03c.38-.068.791-.549.905-.905h.03c-.005.536-.251 1.105-.03 1.629h.03c.16-.543.077-1.184.215-1.75.043-.177.203-.473.087-.633zM14.69 6.57c-.178.402-.265.775-.634 1.056v.06c.265.07.45-.262.513-.482h.03c.026.203.05.624.272.694l-.149-.694zm-6.456.03c.065.743 1.063 1.244.935 2.052.16-.094.119-.269.065-.423-.112-.317-.298-.596-.427-.905.289.264.716.562 1.117.393l-.633-.263zm4.163.242c-.091.3-.347.886-.241 1.176h.06l.211-.724h.03c.075.273.153.687.483.724l-.483-1.176zm-2.021.754l.15 1.267h.061l-.03-.905c.197.137.463.474.724.362-.1-.11-.247-.129-.362-.222-.187-.151-.286-.482-.543-.502zm6.636.18c-.318.32-.584.539-1.025.664v.061c.261.075.514-.07.724-.211-.035.177-.26.64-.09.754l.289-.875zm1.539.624c.138.01.242.186.323.282.239.279.508.575.612.935-.697-.144-1.452-.045-2.142.12.154-.405.446-.834.785-1.1.115-.092.258-.25.422-.237zm-6.697.07l-.181.936c.151-.115.187-.481.211-.664l.272.302a1.058 1.058 0 00-.302-.573zm2.956.091l-.573.573.543-.392.09.543c.106-.154.05-.578-.06-.724zm-6.334.078a.252.252 0 00-.06.013v.03c.253.256.463.61.621.935.088.179.063.376.253.483-.015-.353-.166-.62-.302-.935.214.124.5.31.754.24v-.06c-.342-.152-.607-.281-.905-.518-.11-.088-.224-.2-.361-.188zm-2.082.284c.029.255.237.35.422.49a3.5 3.5 0 01.687.657c.127.166.205.452.37.573-.036-.444-.298-.966-.725-1.147v-.03c.434.084.867.246 1.297.06v-.06l-.513-.02zm14.027.09c.296.115.613.522.724.815l-.664-.09zm-7.3.03l-.271.514.301-.332.181.302zm5.95.712a.536.536 0 01.172.031c.365.143.267.9.19 1.188-.061.234-.17.495-.4.604-.167-.3-.415-.496-.724-.64-.154-.073-.41-.101-.517-.243-.103-.137-.208-.646-.068-.78.152-.147.57-.117.766-.117.163 0 .392-.051.581-.043zm-3.054.013l-.513.392.453-.241-.06.362c.128-.09.175-.371.12-.513zm4.404.18c.136.011.37-.002.47.1.331.34.145 1.25-.259 1.44l-.12-.695c.032.002.062 0 .09-.003v.003h.09l-.04-.013c.356-.085.295-.577-.051-.59l-.09-.03.049.032-.018.001v-.003h-.06l.01.011c-.023.005-.046.01-.071.02zm-1.538.122c-.062.063-.152.11-.198.187-.318.545.886.559.546-.03-.039-.068-.108-.111-.167-.157l-.121.06h-.06zm-6.335.12c0 .154-.03.31.12.392v-.301l.363.12zm-1.676.086c-.046.002-.092.005-.134.005.053.194.137.36.302.482l-.181-.392.362.03c-.07-.127-.211-.131-.349-.125zm3.685.011c-.09.01-.168.168-.169.325l.15-.271.182.12c-.05-.132-.109-.18-.163-.174zm-4.845.084l-.513.09.423.513-.241-.422.361-.06zm-2.655.42c-.307.013-.66.365-.904.515v.06l.875.302c-.018-.229-.315-.297-.513-.331l.603-.544a.386.386 0 00-.06-.002zm1.6.063l-1.237.332v.06l.663.238.393.275c-.043-.32-.383-.375-.604-.543.28-.053.66-.058.785-.362zm3.107.332c-.129.02-.23.12-.091.21zm.995.18l-.03.212c.094-.056.11-.105.09-.211zm1.357 0c-.117.035-.214.118-.09.212zm1.117.302l-.302.09v.121zm1.146.03v.362c.113-.11.113-.25 0-.362zm4.272.179c.425.004.846.395.75.847-.062.29-.242.605-.528.718-.149.06-.486.04-.498-.175-.01-.2.388-.478.468-.694-.558.427-.9.79-1.659.694v-.03c.447-.331.634-.895 1.059-1.224a.645.645 0 01.408-.136zm-9.943.032c-.146.076-.235.236-.272.393l.362.09-.2-.193zm-4.585.061l-1.147.603c.04.225.262.104.423.093.23-.015.657.06.784.27l.211-.03c-.054-.342-.546-.342-.814-.363.197-.2.48-.259.543-.573zm5.822.241l-.332.423.422.15-.302-.18c.063-.132.31-.247.212-.393zm-2.625.09l-.362.333c.142.047.468.233.573.09l-.392-.15zm7.813 0l.422.333v.06l-.392.211a.938.938 0 00.543-.211.883.883 0 00-.573-.392zm-9.683.121c-.183.41-.464.743-.784 1.056-.184.179-.471.346-.543.603L7.45 13.8l.694-.14c-.414-.296-1.14.033-1.539.21.275-.55.813-.769.935-1.418l-.03-.03zm5.701.03c-.13.043-.146.149-.18.272l.18.03zm1.237.212l.03.332a.503.503 0 00.272-.332l-.212.15zm-4.193.422c-.13.038-.2.131-.06.211zm5.34.181l-.031.422-.271-.18c.028.182.156.27.332.3l.03-.542zm-6.758.03c-.22.069-.596.692-.694.905.2-.008.895.018.996-.12l-.664-.091zm3.7.059c-.166.01-.327.105-.502.105-.507 0-1.34-.252-1.775.092-.396.314-.42.734-.669 1.132-.121.194-.336.325-.512.465-.065.052-.184.127-.159.227.03.122.238.187.34.233.228.105.477.187.724.238.131.027.328.022.44.103.204.148.135.653.163.876.227-.13.524-.52.633-.755-.241.073-.347.31-.513.483l-.09-.633c.705-.062 1.015-.833 1.43-1.296.253-.282.57-.405.893-.575-.19-.227-.455.013-.634.15-.479.37-.755.816-1.176 1.238l.241-.633h-.03c-.131.314-.288.65-.603.814l.12-.422h-.03c-.127.303-.27.452-.603.452l.301-.694h-.03l-.392.664-.12-.03.301-.573h-.03c-.152.244-.313.59-.633.512l.27-.512c-.15.118-.216.4-.394.471-.081.032-.235-.027-.202-.135.042-.14.272-.278.363-.397.31-.405.56-1.067 1.018-1.316.376-.205.947.054 1.358.05.235-.004.503-.084.573-.333a.427.427 0 00-.072-.001zm-7.591.092l-.03.181.12-.181zm14.875.029c.228.004.48.037.61.214.133.18.101.427.17.632.052-.216.046-1.024.477-.57.349.367.256 1.162-.087 1.502-.216.213-.735.343-.992.144-.393-.303-.494-.926-.608-1.378-.027-.109-.154-.36-.084-.461.058-.086.209-.08.3-.082.065 0 .138-.002.214-.001zm2.65.182c.569.103.615.907 1.117 1.147v.06c-.285.143-.38-.002-.573-.211l.211.392c-.233-.036-.283-.262-.422-.423l.21.453c-.346 0-.493-.057-.633-.392h-.03l.06.271-.214-.152.114-.39zm-4.735.03c-.123.036-.188.105-.09.212zm-4.163.242l.332.362.15-.362-.15.241zm3.047 0l-.03.452-.302-.18c-.017.198.288.424.453.512l-.06-.784zm-8.175.512c-.094.452-.417.859-.707 1.207-.138.166-.35.333-.41.543.5-.144 1.063-.652 1.6-.603-.138-.268-.783.103-1.026.15.196-.29.463-.542.59-.874.052-.14.086-.327-.047-.423zm6.998.272c-.23.036-.218.264-.271.452-.128-.127-.258-.303-.452-.271l.573.694zm-2.805.03l-.302.272-.03-.151h-.09l.03.392c.176-.03.358-.347.392-.513zm.815.483l-.151.392h-.03l-.242-.332.211.694h.03c.08-.202.365-.572.182-.754zm3.348.18l-.09.031.18.995c-.192-.168-.785-.942-1.025-.663.555.177.786.825 1.267 1.116l-.15-.573zm1.508.242c-.153.374.22.775.362 1.116-.392-.202-.74-.539-1.207-.543v.12c.672.06 1.03.747 1.569 1.057-.005-.563-.488-1.21-.664-1.75zm-6.123.453l-.212.03c.072.169.197.306.256.482.065.196.023.466.227.573.095-.212.327-.557.271-.784-.17.085-.252.268-.27.453h-.031zm-2.806.03c0 .592-.08 1.148-.241 1.72.21.007.32-.211.433-.363.225-.299.45-.628.804-.784v-.03c-.359-.047-.807.49-.935.784h-.03c.106-.41.2-.924.03-1.327zm5.31.03c-.244.093-.182.42-.182.633l-.693-.482c.038.123.136.16.228.245.18.167.337.557.586.6zm1.538.573c-.213.377.097 1.154.15 1.569h-.03c-.168-.355-.492-.649-.754-.935-.037-.04-.228-.301-.296-.192-.071.114.278.385.343.463.241.286.459.609.642.935.105.189.197.44.397.543-.15-.778-.39-1.586-.392-2.383zm-10.045.302c.223.066.35.219.362.452l-.694.483zm5.007.24l-.03.031c.147.405.293.742.364 1.177.034.202.013.465.179.603.17-.322.23-.695.385-1.026.09-.19.234-.356.188-.573-.29.143-.461.787-.543 1.086-.15-.399-.104-1.092-.543-1.297zm2.051.303c.341.677.594 1.314.785 2.05.212-.118.183-.329.18-.542-.005-.497.186-.99.152-1.478-.143.048-.168.194-.193.332-.06.329-.06.669-.14.995-.163-.38-.293-1.279-.784-1.357zm6.365.24l.453.665-.664-.302zM8.657 19.18c.647.057.205.652-.06.935zm8.296.724l.272.845c-.224-.157-.488-.414-.604-.664zm-5.502.455l.344.058-.272.965h-.03l-.06-.754zm2.85.174c.062 0 .121.013.169.053.163.138-.067.805-.141.977l-.332-.965c.086-.022.2-.063.304-.065Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenbugbounty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.092 2.443a1.388 1.388 0 0 0-1.428 1.611c.42 2.567 2.11 4.115 3.58 4.998a14.12 14.12 0 0 0 .4 2.926H6.52a1.388 1.388 0 0 0 0 2.777h5.155c.39.767.85 1.475 1.37 2.108-1.816 1.36-3.516 3.734-4.34 4.983a1.388 1.388 0 1 0 2.316 1.531c1.376-2.08 3.15-4.046 4.09-4.604a8.208 8.208 0 0 0 3.757 1.416V6.492h-7.484c-.867-.588-1.753-1.506-1.979-2.886a1.388 1.388 0 0 0-1.313-1.163zM18.859 0c-2.971 0-5.501 1.967-6.577 4.765h6.577Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpencollective (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c2.54 0 4.894-.79 6.834-2.135l-3.107-3.109a7.715 7.715 0 1 1 0-13.512l3.107-3.109A11.943 11.943 0 0 0 12 0zm9.865 5.166l-3.109 3.107A7.67 7.67 0 0 1 19.715 12a7.682 7.682 0 0 1-.959 3.727l3.109 3.107A11.943 11.943 0 0 0 24 12c0-2.54-.79-4.894-2.135-6.834z\"},\"child\":[]}]})(props);\n};\nexport function SiOpencontainersinitiative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm20.547 20.431H3.448V3.573h17.104V20.43zm-5.155-9.979h3.436v8.255h-3.436zm0-5.16h3.436v3.436h-3.436zm-6.789 9.976V8.732h5.074v-3.44H5.164v13.415h8.513v-3.44Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpencv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.8992.8525C8.735.8525 6.17 3.4175 6.17 6.5817c0 2.102 1.1321 3.9398 2.8198 4.9366l1.6412-2.7849c.0411-.0699.0176-.1593-.0495-.2048-.6233-.4227-1.0328-1.137-1.0328-1.947 0-1.298 1.0524-2.3504 2.3505-2.3504 1.2981 0 2.3505 1.0524 2.3505 2.3505 0 .8098-.4095 1.5242-1.0328 1.947-.0671.0454-.0907.1348-.0495.2047l1.6414 2.785c1.6878-.9969 2.8199-2.8346 2.8199-4.9367 0-3.1642-2.5653-5.7292-5.7295-5.7292zm-6.17 10.8366C2.565 11.6891 0 14.2541 0 17.4183c0 3.1642 2.565 5.7292 5.7292 5.7292 3.1798 0 5.8074-2.6995 5.7275-5.8762H8.2313c-.0847 0-.1513.0717-.1519.1564-.0082 1.266-1.0644 2.3411-2.3502 2.3411-1.2981 0-2.3505-1.0524-2.3505-2.3505 0-1.2982 1.0524-2.3505 2.3505-2.3505.34 0 .663.0724.9547.2022.0713.0318.1566.0077.1962-.0595l1.6464-2.7935c-.8273-.4636-1.7815-.7279-2.7973-.7279zm15.4424.7614l-1.6366 2.7878c-.041.07-.0172.1594.05.2048.624.4217 1.0348 1.1354 1.0363 1.9452.0022 1.298-1.0483 2.352-2.3465 2.3542-1.298.0023-2.3523-1.0482-2.3545-2.3462-.0015-.8098.4068-1.5248 1.0294-1.9486.067-.0457.0905-.1353.0492-.2051l-1.6464-2.7818c-1.6859.9998-2.8146 2.8394-2.811 4.9415.0056 3.1641 2.575 5.7248 5.7393 5.7192 3.1641-.0054 5.7246-2.575 5.7192-5.7392-.0037-2.1022-1.139-3.938-2.8284-4.9318z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenfaas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.304 0A4.31 4.31 0 0 0 0 4.304v15.391A4.31 4.31 0 0 0 4.304 24h15.392A4.31 4.31 0 0 0 24 19.695V4.305A4.31 4.31 0 0 0 19.695 0zm-.006.776h15.398a3.532 3.532 0 0 1 3.528 3.528v15.391c0 .205-.019.409-.054.61-1.234-.015-1.858-.412-2.514-.834-.708-.454-1.51-.97-3.04-.97s-2.33.516-3.038.97c-.17.11-.338.217-.514.317a43.042 43.042 0 0 1-.775-1.907.806.806 0 0 1 .01-.739c.3-.489 1.23-.691 1.572-.729.361-.027 5.97-.555 6.306-7.153a.42.42 0 0 0-.72-.317c-.457.464-1.886 1.634-3 1.47a11.06 11.06 0 0 1-.693-.127c-1.425-.293-3.339-.685-4.972 1.72-1.633-2.406-3.548-2.012-4.972-1.72-.248.05-.48.098-.697.128-1.108.162-2.538-1.007-2.997-1.471a.42.42 0 0 0-.72.316c.336 6.58 5.914 7.124 6.304 7.153.086.012 1.1.16 1.48.717.15.237.184.529.092.793a19.35 19.35 0 0 1-.552 1.747c-.107-.065-.214-.13-.32-.198-.708-.454-1.51-.97-3.039-.97-1.53 0-2.332.516-3.04.97-.654.42-1.277.816-2.5.834a3.532 3.532 0 0 1-.055-.61V4.305A3.532 3.532 0 0 1 4.298.775zm4.474 2.108l-4.74 1.429 1.293 4.288 3.165-.955-.19 1.229 4.894.757.684-4.426-4.62-.715zm10.494.813l-4.938.348.315 4.466 4.938-.347Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpengl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.921 11.382v.376h.009a.696.696 0 0 1 .362-.336c.165-.07.346-.105.543-.105.219 0 .411.039.574.118.163.079.298.185.406.319a1.4 1.4 0 0 1 .244.464c.055.175.082.361.082.558 0 .197-.027.383-.08.558a1.325 1.325 0 0 1-.241.459 1.126 1.126 0 0 1-.406.308 1.345 1.345 0 0 1-.568.113 1.457 1.457 0 0 1-.488-.091.984.984 0 0 1-.239-.132.722.722 0 0 1-.189-.207h-.009v1.432H7.45v-3.835h.471zm1.671.986a1.01 1.01 0 0 0-.159-.33.78.78 0 0 0-.274-.231.849.849 0 0 0-.392-.086c-.157 0-.29.03-.4.091a.783.783 0 0 0-.268.239.992.992 0 0 0-.151.335 1.577 1.577 0 0 0 .003.775.966.966 0 0 0 .156.335.785.785 0 0 0 .276.233c.113.059.25.088.411.088.161 0 .295-.03.402-.091a.744.744 0 0 0 .26-.241c.066-.1.113-.214.142-.343.029-.129.044-.261.044-.397a1.343 1.343 0 0 0-.05-.377zm2.951 1.611c-.213.157-.48.236-.803.236a1.5 1.5 0 0 1-.591-.107 1.17 1.17 0 0 1-.421-.301 1.272 1.272 0 0 1-.256-.461 2.157 2.157 0 0 1-.096-.585c0-.211.033-.404.099-.579.066-.175.159-.327.278-.456a1.25 1.25 0 0 1 .424-.3c.163-.072.342-.107.537-.107.253 0 .463.051.63.153.167.102.301.232.402.39.101.158.171.33.209.516.039.186.054.364.047.532h-2.127c-.004.121.011.237.044.345a.779.779 0 0 0 .159.289.778.778 0 0 0 .28.201c.113.05.247.075.401.075a.826.826 0 0 0 .486-.134.654.654 0 0 0 .25-.408h.462c-.064.31-.201.544-.414.701zm-.114-1.78a.792.792 0 0 0-.743-.477.827.827 0 0 0-.326.062.737.737 0 0 0-.249.169.81.81 0 0 0-.164.249.926.926 0 0 0-.071.302h1.628a.93.93 0 0 0-.075-.305zm1.327-.817v.44h.009c.195-.337.504-.505.928-.505.188 0 .344.025.469.075.125.05.226.12.304.21.077.09.132.196.163.32s.047.261.047.411v1.827h-.471v-1.879a.546.546 0 0 0-.154-.408.582.582 0 0 0-.424-.15.978.978 0 0 0-.372.065.696.696 0 0 0-.262.183.785.785 0 0 0-.157.276 1.096 1.096 0 0 0-.052.346v1.568h-.471v-2.777h.443zm5.174 2.747a1.67 1.67 0 0 1-.644.131c-.342 0-.649-.058-.922-.174a1.976 1.976 0 0 1-.691-.48 2.112 2.112 0 0 1-.431-.719c-.1-.275-.15-.572-.15-.89 0-.326.05-.629.15-.909.1-.279.243-.523.43-.731.187-.208.417-.371.69-.49a2.3 2.3 0 0 1 .922-.177c.229 0 .451.034.665.101.215.068.408.167.581.297a1.6 1.6 0 0 1 .634 1.144h-.937c-.058-.244-.171-.427-.338-.55a1 1 0 0 0-.606-.183c-.221 0-.408.042-.563.125s-.279.196-.375.337a1.444 1.444 0 0 0-.209.48 2.327 2.327 0 0 0 0 1.092c.044.173.114.329.21.468.096.139.221.25.375.333.154.084.342.125.563.125.325 0 .577-.08.754-.241.177-.16.281-.393.31-.698h-.987v-.717h1.872v2.358h-.623l-.1-.495a1.44 1.44 0 0 1-.58.463zM21.825 9.8v3.55H24v.809h-3.154V9.8h.979zM3.801 13.98c.053.03.107.059.164.085.267.124.578.186.933.186.355 0 .666-.062.933-.186s.491-.292.67-.503c.179-.211.314-.454.404-.728.09-.274.135-.56.135-.856 0-.297-.045-.582-.135-.856a2.135 2.135 0 0 0-.404-.728 1.966 1.966 0 0 0-.67-.506 2.17 2.17 0 0 0-.933-.189c-.355 0-.666.063-.933.189l-.03.015c1.425-1.199 4.034-2.001 7.017-2.001 2.512 0 4.765.516 6.263 1.412-1.635-1.501-4.566-2.555-7.918-2.556C4.162 6.757 0 9.103 0 11.999c0 2.895 4.161 5.243 9.294 5.244 3.338.001 6.262-1.051 7.901-2.541-1.498.89-3.741 1.397-6.244 1.397-3.078-.001-5.759-.856-7.15-2.119zm.395-3.638c.196-.104.43-.156.702-.156.272 0 .506.052.702.156.196.104.357.241.483.412.125.171.217.363.276.577a2.43 2.43 0 0 1 0 1.3c-.059.214-.15.406-.276.576a1.393 1.393 0 0 1-.483.412c-.197.104-.43.155-.702.155a1.49 1.49 0 0 1-.702-.155 1.402 1.402 0 0 1-.483-.412 1.765 1.765 0 0 1-.276-.576 2.43 2.43 0 0 1 0-1.3 1.74 1.74 0 0 1 .276-.577c.125-.171.286-.308.483-.412z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenhab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 9.103-9.76 9.768c-.376-.553-.725-1.123-.998-1.738l9.39-9.397L12 6.368l1.368 1.368 6.931 6.931-.01.035-.136.403-.156.393-.174.384-.192.374-.175.304L12 9.103zM12 0C5.39 0 0 5.39 0 12c0 1.306.211 2.563.6 3.741l.893-.893.668-.67A10.039 10.039 0 0 1 1.922 12C1.922 6.45 6.45 1.922 12 1.922S22.078 6.449 22.078 12c0 5.55-4.527 10.078-10.078 10.078a10.06 10.06 0 0 1-7.698-3.588l-.012.012-.309.309-.308.309-.308.308-.424.425C5.144 22.39 8.39 24 12.001 24 18.61 24 24 18.61 24 12S18.61 0 12 0z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.54.889l-3.63 1.773v18.17c-4.15-.52-7.27-2.78-7.27-5.5 0-2.58 2.8-4.75 6.63-5.41v-2.31C4.42 8.322 0 11.502 0 15.332c0 3.96 4.74 7.24 10.91 7.78l3.63-1.71V.888m.64 6.724v2.31c1.43.25 2.71.7 3.76 1.31l-1.97 1.11 7.03 1.53-.5-5.21-1.87 1.06c-1.74-1.06-3.96-1.81-6.45-2.11z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenjdk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.915 0 11.7.215C9.515 2.4 7.47 6.39 6.046 10.483c-1.064 1.024-3.633 2.81-3.711 3.551-.093.87 1.746 2.611 1.55 3.235-.198.625-1.304 1.408-1.014 1.939.1.188.823.011 1.277-.491a13.389 13.389 0 0 0-.017 2.14c.076.906.27 1.668.643 2.232.372.563.956.911 1.667.911.397 0 .727-.114 1.024-.264.298-.149.571-.33.91-.5.68-.34 1.634-.666 3.53-.604 1.903.062 2.872.39 3.559.704.687.314 1.15.664 1.925.664.767 0 1.395-.336 1.807-.9.412-.563.631-1.33.72-2.24.06-.623.055-1.32 0-2.066.454.45 1.117.604 1.213.424.29-.53-.816-1.314-1.013-1.937-.198-.624 1.642-2.366 1.549-3.236-.08-.748-2.707-2.568-3.748-3.586C16.428 6.374 14.308 2.394 12.13.215zm.175 6.038a2.95 2.95 0 0 1 2.943 2.942 2.95 2.95 0 0 1-2.943 2.943A2.95 2.95 0 0 1 9.148 8.98a2.95 2.95 0 0 1 2.942-2.942zM8.685 7.983a3.515 3.515 0 0 0-.145.997c0 1.951 1.6 3.55 3.55 3.55 1.95 0 3.55-1.598 3.55-3.55 0-.329-.046-.648-.132-.951.334.095.64.208.915.336a42.699 42.699 0 0 1 2.042 5.829c.678 2.545 1.01 4.92.846 6.607-.082.844-.29 1.51-.606 1.94-.315.431-.713.651-1.315.651-.593 0-.932-.27-1.673-.61-.741-.338-1.825-.694-3.792-.758-1.974-.064-3.073.293-3.821.669-.375.188-.659.373-.911.5s-.466.2-.752.2c-.53 0-.876-.209-1.16-.64-.285-.43-.474-1.101-.545-1.948-.141-1.693.176-4.069.823-6.614a43.155 43.155 0 0 1 1.934-5.783c.348-.167.749-.31 1.192-.425zm-3.382 4.362a.216.216 0 0 1 .13.031c-.166.56-.323 1.116-.463 1.665a33.849 33.849 0 0 0-.547 2.555 3.9 3.9 0 0 0-.2-.39c-.58-1.012-.914-1.642-1.16-2.08.315-.24 1.679-1.755 2.24-1.781zm13.394.01c.562.027 1.926 1.543 2.24 1.783-.246.438-.58 1.068-1.16 2.08a4.428 4.428 0 0 0-.163.309 32.354 32.354 0 0 0-.562-2.49 40.579 40.579 0 0 0-.482-1.652.216.216 0 0 1 .127-.03z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenjsfoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.992 0 1.603 6v12L12 24l10.397-5.992V6L11.992 0M10.97 1.534 8.458 5.878H3.443l7.526-4.344M8.046 6.595 6.87 8.634 3.343 6.595h4.703M7.13 9.603 11.275 12 7.13 14.397 5.748 12 7.13 9.603m-.611-.351L5.343 11.29 2.985 7.214l3.534 2.038m-4.1-1.595L4.932 12 2.42 16.343V7.657m2.916 5.06 1.175 2.039-3.526 2.038 2.35-4.076m1.535 2.648 1.176 2.039H3.343l3.527-2.039m-3.427 2.756h5.015l2.511 4.344-7.526-4.344M11.64 22.2l-2.35-4.078h2.351V22.2m0-4.794h-2.77l-1.383-2.397 4.145-2.397v4.794h.008m0-6.023L7.496 8.985l1.382-2.397h2.763v4.794m0-5.504H9.29l2.351-4.076v4.076m5.832 3.374L21 7.214l-2.351 4.076-1.176-2.038M18.237 12l-1.382 2.397L12.71 12l4.145-2.397L18.236 12m-1.122-3.366L15.94 6.595h4.702l-3.527 2.039m3.428-2.756h-5.015l-2.504-4.344 7.519 4.344m-8.19-4.076 2.35 4.076h-2.351V1.802m0 4.793h2.763l1.382 2.397-4.145 2.397V6.595m0 6.023 4.145 2.397-1.382 2.39h-2.763v-4.787m0 5.504h2.351l-2.351 4.076v-4.076m.672 4.344 2.504-4.344h5.015l-7.52 4.344m2.917-5.061 1.175-2.039 3.527 2.039H15.94m1.534-2.657 1.176-2.038L21 16.786l-3.526-2.038m4.1 1.595L19.06 12l2.511-4.343v8.687\"},\"child\":[]}]})(props);\n};\nexport function SiOpenlayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.7 13.08a3.498 3.498 0 0 1-1.119 1.619l-7.426 6.196a5.137 5.137 0 0 1-6.317 0L1.412 14.7a3.578 3.578 0 0 1-1.12-1.62 3.298 3.298 0 0 0 1.12 3.639l7.426 6.196a5.137 5.137 0 0 0 6.317 0l7.426-6.196a3.298 3.298 0 0 0 1.12-3.639M8.838 1.086a5.137 5.137 0 0 1 6.317 0l7.426 6.196a3.298 3.298 0 0 1 0 5.258l-7.426 6.187a5.137 5.137 0 0 1-6.317 0L1.412 12.53a3.298 3.298 0 0 1 0-5.248z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenmediavault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.945 1.045A.947.947 0 0 0 0 1.988v20.024c0 .534.436.943.945.943h22.11a.944.944 0 0 0 .945-.943V1.988a.941.941 0 0 0-.945-.943Zm.118 1.064h21.875v19.784H1.063ZM3.53 4.385c-.198 0-.361.149-.361.334v3.699c0 .185.162.334.361.334h16.94c.198 0 .36-.15.36-.334v-3.7c0-.184-.161-.333-.36-.333zm2.057.886a1.3 1.3 0 0 1 1.297 1.297 1.3 1.3 0 0 1-1.297 1.3 1.3 1.3 0 0 1-1.299-1.3 1.3 1.3 0 0 1 1.299-1.297m-.002.62a.68.68 0 0 0-.676.677.68.68 0 0 0 .678.678.68.68 0 0 0 .678-.678.68.68 0 0 0-.678-.677ZM3.53 9.816c-.198 0-.361.15-.361.334v3.702c0 .184.162.332.361.332h16.94c.198 0 .36-.15.36-.334v-3.7c0-.184-.161-.334-.36-.334zm2.057.887A1.3 1.3 0 0 1 6.885 12a1.3 1.3 0 0 1-1.297 1.299A1.3 1.3 0 0 1 4.289 12a1.3 1.3 0 0 1 1.299-1.297m-.002.62A.68.68 0 0 0 4.91 12a.68.68 0 0 0 .678.68.68.68 0 0 0 0-1.358ZM3.53 15.247c-.198 0-.361.15-.361.334v3.701c0 .185.162.332.361.332h16.94c.198 0 .36-.15.36-.334v-3.699c0-.184-.161-.334-.36-.334zm2.057.887a1.3 1.3 0 0 1 1.297 1.297 1.3 1.3 0 0 1-1.297 1.298 1.3 1.3 0 0 1-1.299-1.298 1.3 1.3 0 0 1 1.299-1.297m-.002.619a.68.68 0 0 0 .002 1.358.68.68 0 0 0 0-1.358Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenmined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.486 0-.972.242-1.25.725L7.082 7.082.725 10.75a1.44 1.44 0 000 2.5l6.357 3.668 3.668 6.357a1.44 1.44 0 002.5 0l3.668-6.357 6.357-3.668c.967-.544.967-1.945 0-2.5l-6.357-3.668L13.25.725A1.429 1.429 0 0012 0zm.006 4.237l7.757 7.769-7.769 7.757-7.757-7.757zm-.012 3.112l-4.656 4.657 4.656 4.656 4.657-4.656z\"},\"child\":[]}]})(props);\n};\nexport function SiOpennebula (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.458 20.15v3.453s-.007.206-.087.283a.382.382 0 0 1-.294.113c-3.859-.005-7.718-.01-11.577-.003-1.576-.005-3.25-.173-4.532-1.117-.074-.08-.485-.289-.188-.259a91.722 91.722 0 0 0 14.367-1.92 92.308 92.308 0 0 0 2.31-.55zm-18.186.814c.206.302.36.766.71.898 5.88-.29 11.76-1.083 17.476-2.536v-3.391c-2.437 1.16-4.983 2.097-7.558 2.87a64.756 64.756 0 0 1-10.628 2.16zm-.66-1.886c.06.387.158.751.299 1.127 6.167-.726 12.276-2.236 17.925-4.864.207-.098.414-.198.62-.298v-3.278c-4.392 2.987-9.392 4.986-14.503 6.329-1.438.363-2.876.74-4.341.984zm10.85-6.692c-3.178 1.803-6.578 3.195-10.067 4.238-.257.14-.734.086-.732.469a5.21 5.21 0 0 0-.12 1.18c5.668-1.085 11.252-2.89 16.283-5.793a34.33 34.33 0 0 0 2.632-1.685V5.899c-2.213 2.657-5.019 4.774-7.997 6.487zM20.905.126c-.963.413-4.859 2.33-5.443 4.875-.236.323-.596-.08-.854-.163-2.209-1.091-5.008-.736-6.9.872C5.82 7.238 4.782 9.976 5.65 12.348c.136.279.277.653-.018.883-.35.243-.743.419-1.05.728-.625.527-1.17 1.204-1.5 1.926 5.184-1.574 10.26-3.834 14.504-7.283 1.423-1.183 2.757-2.503 3.87-3.982V.083c-.073-.154-.296-.067-.551.043z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35.37h-1.86a4.628 4.628 0 0 0-4.652 4.624v5.609H4.652A4.628 4.628 0 0 0 0 15.23v3.721c0 2.569 2.083 4.679 4.652 4.679h1.86c2.57 0 4.652-2.11 4.652-4.679v-3.72c0-.063 0-.158-.005-.158H8.373v3.88c0 1.026-.835 1.886-1.861 1.886h-1.86c-1.027 0-1.861-.864-1.861-1.886V15.23a1.839 1.839 0 0 1 1.86-1.833h14.697c2.57 0 4.652-2.11 4.652-4.679V4.997A4.628 4.628 0 0 0 19.35.37Zm1.861 8.345c0 1.026-.835 1.886-1.861 1.886h-3.721V4.997a1.839 1.839 0 0 1 1.86-1.833h1.86a1.839 1.839 0 0 1 1.862 1.833zm-8.373 9.706a.236.236 0 0 0 0 .03c0 .746.629 1.344 1.396 1.344.767 0 1.395-.594 1.395-1.34a.188.188 0 0 0 0-.034v-3.35h-2.791z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenscad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.065 2.418c-1.287.016-2.478.283-3.346.701-.895.432-1.426 1.014-1.426 1.627 0 .494.375.98.975 1.397.242-.178.493-.307.729-.422.235-.116.556-.147.976-.15.42-.004.856.09.856.09.008.001 1.498.644 1.498.644l.894-.418h.002s.592-.266 1.268-.258c.045 0 .09.003.136.006.187.013.355.038.655.107.3.07.591.239.777.39.562-.405.897-.879.897-1.364 0-.617-.501-1.203-1.364-1.639-.862-.436-2.068-.71-3.402-.71h-.125zm7.3.143c-.325-.02-.443.02-.695.13-.506.275-1.024.55-1.545.825a9.872 9.872 0 0 1 4.725 8.06c.418-.213.832-.427 1.229-.636 1.157-.844 1.234-3.073.177-5.194-.94-1.885-2.53-3.188-3.89-3.185ZM8.55 2.928a9.648 9.648 0 0 0-6.177 8.16c.425-.214.857-.424 1.294-.617l.002-.002h.002c.204-.086.418-.128.637-.133.22-.005.445.029.672.094.454.13.916.386 1.355.726.88.68 1.693 1.714 2.213 2.883.576 1.293.84 2.532.795 3.56-.045 1.029-.412 1.875-1.138 2.268l-.977.467a9.594 9.594 0 0 0 4.744 1.248 9.594 9.594 0 0 0 5.334-1.611c-.745.289-1.48.318-2.086-.006-.54-.29-.915-.833-1.082-1.541-.121-.413-.09-.715-.103-1.147.015-.475.141-.929.207-1.248.104-.434.377-1.154.775-1.865.398-.71.977-1.41 1.611-2.008.635-.598 1.253-.966 1.704-1.082.45-.116.742-.17 1.043-.174.3-.003.608.046.921.21.772.41 1.163 1.295 1.188 2.357.074-.226.108-1.16.129-1.525a9.636 9.636 0 0 0-5.123-8.516c.447.385.717.84.717 1.342 0 .618-.409 1.185-.92 1.523a6.2 6.2 0 0 1-1.498.744 7.273 7.273 0 0 1-2.211.377c-.738.002-1.25.012-1.664-.06a12.338 12.338 0 0 1-.844-.166c-.35-.067-.334-.053-.608-.15-.59-.21-.775-.29-1.377-.686-.601-.396-1.04-.972-1.04-1.604 0-.736.602-1.367 1.505-1.818zm1.498 2.9c.054.332.147.729.162 1.131.175.04.354.077.538.107.46-.227.863-.423 1.27-.62l-1.247-.538c-.003 0-.09-.015-.215-.033a9.161 9.161 0 0 0-.508-.047zm3.291.291-.869.405.022.638c.844-.032 1.631-.174 2.299-.406.02-.298.108-.59.152-.824-.145-.037-.305-.033-.693-.036-.388-.003-.91.223-.91.223zm1.85-.115c-.04.123-.082.25-.107.39-.014.074-.02.168-.028.256.267-.107.507-.227.725-.359a1.745 1.745 0 0 0-.59-.287zm-2.967.625c-.291.14-.64.306-.984.477.338.03.675.058 1.002.066l-.018-.543zm-7.904 3.959a1.459 1.459 0 0 0-.549.111c-.755.333-1.507.71-2.213 1.088.106.01.208.025.3.037.388.052.811.218 1.509.762.28.219.592.543.898.92.327.388.61.844.865 1.238.173.288.326.575.45.848.151.316.26.641.377.945.112.306.18.617.261.91.078.285.104.573.15.844.032.268.045.52.04.754-.011.449-.044.854-.168 1.215-.04.115-.092.224-.154.328a76.45 76.45 0 0 0 2.001-.941c1.25-.676 1.36-2.978.235-5.506-.88-1.978-2.652-3.574-4.002-3.553Zm14.44.666c.185.347.338.904.13 1.633-.066.172-.12.377-.215.556-.528 1.1-1.506 1.61-1.789 1.739 0 .047-.002.112-.039.463-.037.35-.063.497-.174.86-.11.365-.227.628-.384.88-.077.1-.15.257-.506.65-.436.271-1.008.453-1.313.453.17.567.445 1.027.871 1.256.671.358 1.554.239 2.452-.277.507-.292 1.013-.711 1.48-1.23.35-.405.666-.836 1.172-1.72.505-.882.814-2.064.79-3.044-.022-1.004-.384-1.783-1.054-2.14a1.478 1.478 0 0 0-.721-.163c-.248 0-.493.06-.7.084zm-.284.047c-.5.165-1.01.47-1.498.875.172.192.37.356.611.537a3.73 3.73 0 0 0 .909.502l.048-.113a3.14 3.14 0 0 0 .096-.284c.137-.48.102-.865.012-1.154a1.64 1.64 0 0 0-.178-.363zm-17.178.732a.8.8 0 0 0-.468.155c-.473.369-.779.918-.823 1.894-.043.977.211 2.185.774 3.45.503 1.13 1.298 2.135 2.138 2.784.841.65 1.727.944 2.481.6.62-.343.737-.999.758-1.877.021-.878-.241-2.098-.807-3.344-.474-1.044-1.459-2.381-2.139-2.912-.68-.53-1.04-.664-1.386-.71a2.995 2.995 0 0 0-.528-.04Zm15.475.323c-.582.582-1.084 1.197-1.45 1.796l1.444.793a3.24 3.24 0 0 0 .531-.312 3.503 3.503 0 0 0 1.065-1.192 4.335 4.335 0 0 1-.944-.539c-.356-.266-.509-.39-.646-.546zm-1.574 2.033a7.495 7.495 0 0 0-.658 1.715l1.955-1.004c-.41-.22-.87-.468-1.297-.711Zm1.42.935-2.225 1.159-.03.146c.226.053.475.128.782.291.427.227.627.39.781.53.052-.068.103-.139.153-.217.342-.548.472-1.156.523-1.586.012-.108.01-.218.016-.323z\"},\"child\":[]}]})(props);\n};\nexport function SiOpensea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.374 0 0 5.374 0 12s5.374 12 12 12 12-5.374 12-12S18.629 0 12 0ZM5.92 12.403l.051-.081 3.123-4.884a.107.107 0 0 1 .187.014c.52 1.169.972 2.623.76 3.528-.088.372-.335.876-.614 1.342a2.405 2.405 0 0 1-.117.199.106.106 0 0 1-.09.045H6.013a.106.106 0 0 1-.091-.163zm13.914 1.68a.109.109 0 0 1-.065.101c-.243.103-1.07.485-1.414.962-.878 1.222-1.548 2.97-3.048 2.97H9.053a4.019 4.019 0 0 1-4.013-4.028v-.072c0-.058.048-.106.108-.106h3.485c.07 0 .12.063.115.132-.026.226.017.459.125.67.206.42.636.682 1.099.682h1.726v-1.347H9.99a.11.11 0 0 1-.089-.173l.063-.09c.16-.231.391-.586.621-.992.156-.274.308-.566.43-.86.024-.052.043-.107.065-.16.033-.094.067-.182.091-.269a4.57 4.57 0 0 0 .065-.223c.057-.25.081-.514.081-.787 0-.108-.004-.221-.014-.327-.005-.117-.02-.235-.034-.352a3.415 3.415 0 0 0-.048-.312 6.494 6.494 0 0 0-.098-.468l-.014-.06c-.03-.108-.056-.21-.09-.317a11.824 11.824 0 0 0-.328-.972 5.212 5.212 0 0 0-.142-.355c-.072-.178-.146-.339-.213-.49a3.564 3.564 0 0 1-.094-.197 4.658 4.658 0 0 0-.103-.213c-.024-.053-.053-.104-.072-.152l-.211-.388c-.029-.053.019-.118.077-.101l1.32.357h.01l.173.05.192.054.07.019v-.783c0-.379.302-.686.679-.686a.66.66 0 0 1 .477.202.69.69 0 0 1 .2.484V6.65l.141.039c.01.005.022.01.031.017.034.024.084.062.147.11.05.038.103.086.165.137a10.351 10.351 0 0 1 .574.504c.214.199.454.432.684.691.065.074.127.146.192.226.062.079.132.156.19.232.079.104.16.212.235.324.033.053.074.108.105.161.096.142.178.288.257.435.034.067.067.141.096.213.089.197.159.396.202.598a.65.65 0 0 1 .029.132v.01c.014.057.019.12.024.184a2.057 2.057 0 0 1-.106.874c-.031.084-.06.17-.098.254-.075.17-.161.343-.264.502-.034.06-.075.122-.113.182-.043.063-.089.123-.127.18a3.89 3.89 0 0 1-.173.221c-.053.072-.106.144-.166.209-.081.098-.16.19-.245.278-.048.058-.1.118-.156.17-.052.06-.108.113-.156.161-.084.084-.15.147-.208.202l-.137.122a.102.102 0 0 1-.072.03h-1.051v1.346h1.322c.295 0 .576-.104.804-.298.077-.067.415-.36.816-.802a.094.094 0 0 1 .05-.03l3.65-1.057a.108.108 0 0 1 .138.103z\"},\"child\":[]}]})(props);\n};\nexport function SiOpensearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.1515 8.8125a.8484.8484 0 0 0-.8484.8485c0 6.982-5.6601 12.6421-12.6421 12.6421a.8485.8485 0 0 0 0 1.6969C17.5802 24 24 17.5802 24 9.661a.8485.8485 0 0 0-.8485-.8485Zm-5.121 5.4375c.816-1.3311 1.6051-3.1058 1.4498-5.5905-.3216-5.1468-4.9832-9.0512-9.3851-8.6281C8.372.1971 6.6025 1.6017 6.7598 4.1177c.0683 1.0934.6034 1.7386 1.473 2.2348.8279.4722 1.8914.7713 3.097 1.1104 1.4563.4096 3.1455.8697 4.4438 1.8265 1.5561 1.1467 2.6198 2.4759 2.2569 4.9606Zm-16.561-9C.6535 6.581-.1355 8.3558.0197 10.8405c.3216 5.1468 4.9832 9.0512 9.385 8.6281 1.7233-.1657 3.4927-1.5703 3.3355-4.0863-.0683-1.0934-.6034-1.7386-1.4731-2.2348-.8278-.4722-1.8913-.7713-3.0969-1.1104-1.4563-.4096-3.1455-.8697-4.4438-1.8265-1.5561-1.1467-2.6198-2.476-2.257-4.9606Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpensourcehardware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.87 11.525c.071.013.13.084.13.157v3.033a.166.166 0 0 1-.13.157l-2.875.535a.243.243 0 0 0-.17.151l-.898 2.242a.252.252 0 0 0 .017.229l1.633 2.379a.167.167 0 0 1-.02.204l-2.144 2.144a.167.167 0 0 1-.203.019l-2.338-1.604a.23.23 0 0 0-.224-.008l-1.03.55a.121.121 0 0 1-.17-.062l-2.125-5.135a.161.161 0 0 1 .062-.192l.258-.158c.048-.03.113-.08.163-.125a3.354 3.354 0 1 0-3.612 0c.05.046.115.096.163.125l.258.158a.16.16 0 0 1 .062.192L8.552 21.65a.121.121 0 0 1-.17.063l-1.03-.55a.23.23 0 0 0-.224.007L4.79 22.775a.168.168 0 0 1-.204-.019l-2.145-2.144a.167.167 0 0 1-.019-.204l1.633-2.38a.251.251 0 0 0 .017-.228l-.897-2.242a.244.244 0 0 0-.17-.15L.13 14.871a.166.166 0 0 1-.13-.157v-3.032c0-.073.059-.144.13-.157l2.947-.548a.253.253 0 0 0 .175-.15l.903-2.108a.246.246 0 0 0-.014-.227L2.424 5.989a.167.167 0 0 1 .019-.203L4.587 3.64a.166.166 0 0 1 .204-.019L7.337 5.37c.06.041.163.048.229.016l2.043-.836c.07-.023.137-.1.15-.173l.567-3.047a.167.167 0 0 1 .157-.131h3.034c.073 0 .143.059.157.13l.567 3.048a.25.25 0 0 0 .15.173l2.043.836a.252.252 0 0 0 .23-.016l2.546-1.748a.166.166 0 0 1 .203.02l2.144 2.144c.052.051.06.143.02.203l-1.718 2.503a.245.245 0 0 0-.014.227l.903 2.108a.256.256 0 0 0 .175.15l2.946.548\"},\"child\":[]}]})(props);\n};\nexport function SiOpensourceinitiative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.959.447A11.938 11.938 0 000 12.407c0 5.576 3.874 10.097 7.783 11.114.193.05.392-.05.467-.234l2.771-6.822a.396.396 0 00-.246-.528C9.365 15.47 8.53 14.32 8.48 12.4c-.024-1.828 1.5-3.45 3.561-3.447 1.931.003 3.479 1.632 3.479 3.453 0 .966-.203 1.687-.575 2.238-.371.552-.922.951-1.695 1.239a.396.396 0 00-.23.515l2.685 6.903a.396.396 0 00.465.24C20.163 22.534 24 18.062 24 12.406 24 5.804 18.603.447 11.959.447zm0 .791c6.22 0 11.25 4.997 11.25 11.168 0 5.138-3.423 9.208-6.895 10.272L13.9 16.47c.703-.308 1.302-.79 1.702-1.384.477-.708.709-1.602.709-2.68 0-2.266-1.898-4.24-4.27-4.244-2.48-.004-4.382 1.976-4.352 4.25.023 1.995.934 3.492 2.451 4.13L7.648 22.66C4.251 21.592.791 17.458.791 12.406A11.13 11.13 0 0111.959 1.238zm10.617 20.149a1.03 1.03 0 000 2.058 1.03 1.03 0 000-2.058zm0 .162c.48 0 .865.388.865.867a.856.856 0 01-.271.623l-.172-.342a.847.847 0 00-.111-.178.263.263 0 00-.114-.084.301.301 0 00.17-.117.356.356 0 00.061-.21c0-.13-.038-.227-.113-.292-.076-.064-.192-.095-.346-.095h-.41v1.343h.181v-.568h.2c.072 0 .128.015.17.045a.48.48 0 01.129.18l.171.343.157.001a.878.878 0 01-.567.216.865.865 0 010-1.732zm-.26.322h.229c.088 0 .155.018.2.059.044.04.066.099.066.177 0 .079-.022.14-.067.18-.044.04-.111.06-.2.06h-.228z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenssl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.961,13.532c-0.303,0-0.575-0.052-0.818-0.157c-0.243-0.105-0.448-0.25-0.616-0.437 c-0.168-0.187-0.298-0.408-0.389-0.664C0.046,12.018,0,11.741,0,11.442c0-0.299,0.046-0.576,0.137-0.832 c0.091-0.256,0.221-0.477,0.389-0.664C0.695,9.759,0.9,9.613,1.143,9.508c0.243-0.105,0.516-0.157,0.818-0.157 c0.303,0,0.575,0.052,0.818,0.157c0.243,0.105,0.448,0.25,0.616,0.437c0.168,0.187,0.298,0.408,0.389,0.664 c0.091,0.256,0.137,0.533,0.137,0.832c0,0.299-0.046,0.576-0.137,0.832c-0.092,0.256-0.221,0.477-0.389,0.664 c-0.168,0.187-0.374,0.333-0.616,0.437C2.536,13.479,2.264,13.532,1.961,13.532z M1.961,13.089c0.235,0,0.443-0.042,0.622-0.126 s0.331-0.199,0.454-0.345c0.123-0.146,0.216-0.319,0.277-0.521c0.062-0.202,0.092-0.42,0.092-0.656 c0-0.235-0.031-0.454-0.092-0.656c-0.062-0.202-0.154-0.376-0.277-0.524c-0.123-0.148-0.275-0.263-0.454-0.347 S2.197,9.789,1.961,9.789c-0.235,0-0.443,0.042-0.622,0.126c-0.179,0.084-0.331,0.2-0.454,0.347 c-0.123,0.148-0.216,0.322-0.277,0.524c-0.062,0.202-0.092,0.42-0.092,0.656c0,0.235,0.031,0.454,0.092,0.656 c0.062,0.202,0.154,0.375,0.277,0.521c0.123,0.146,0.275,0.261,0.454,0.345C1.519,13.047,1.726,13.089,1.961,13.089z M4.455,10.551 h0.454v0.409H4.92c0.108-0.149,0.237-0.266,0.387-0.35c0.149-0.084,0.331-0.126,0.544-0.126c0.183,0,0.351,0.035,0.504,0.104 c0.153,0.069,0.284,0.168,0.392,0.297c0.108,0.129,0.193,0.289,0.255,0.479c0.062,0.191,0.092,0.405,0.092,0.644 c0,0.232-0.029,0.442-0.087,0.63c-0.058,0.189-0.141,0.349-0.249,0.482c-0.108,0.133-0.241,0.234-0.398,0.305 c-0.157,0.071-0.333,0.106-0.527,0.106c-0.198,0-0.37-0.032-0.516-0.095c-0.146-0.063-0.278-0.174-0.398-0.331H4.909v1.557H4.455 V10.551z M5.8,13.151c0.138,0,0.26-0.029,0.364-0.087c0.105-0.058,0.191-0.137,0.261-0.238c0.069-0.101,0.12-0.22,0.154-0.359 c0.034-0.138,0.05-0.289,0.05-0.454c0-0.161-0.017-0.311-0.05-0.451c-0.034-0.14-0.085-0.261-0.154-0.364 c-0.069-0.103-0.155-0.183-0.258-0.241c-0.103-0.058-0.223-0.087-0.361-0.087c-0.157,0-0.294,0.03-0.412,0.09 c-0.118,0.06-0.214,0.142-0.289,0.247c-0.075,0.105-0.131,0.226-0.168,0.364c-0.037,0.138-0.056,0.286-0.056,0.443 c0,0.157,0.017,0.305,0.05,0.443c0.034,0.138,0.087,0.259,0.16,0.361c0.073,0.103,0.167,0.184,0.283,0.244 C5.49,13.121,5.632,13.151,5.8,13.151z M8.837,13.526c-0.22,0-0.417-0.04-0.591-0.12c-0.174-0.08-0.32-0.19-0.44-0.328 c-0.12-0.138-0.211-0.3-0.275-0.485c-0.064-0.185-0.095-0.382-0.095-0.591c0-0.209,0.033-0.406,0.098-0.591 c0.065-0.185,0.159-0.346,0.28-0.485c0.121-0.138,0.266-0.247,0.434-0.328c0.168-0.08,0.355-0.12,0.56-0.12 c0.217,0,0.408,0.04,0.574,0.12c0.166,0.08,0.305,0.192,0.417,0.336c0.112,0.144,0.197,0.316,0.255,0.516 c0.058,0.2,0.087,0.419,0.087,0.658H7.901c0.007,0.146,0.034,0.282,0.078,0.409c0.045,0.127,0.106,0.237,0.185,0.331 c0.078,0.093,0.174,0.166,0.286,0.219c0.112,0.052,0.241,0.078,0.387,0.078c0.213,0,0.387-0.049,0.521-0.148 c0.134-0.099,0.228-0.247,0.28-0.445h0.443c-0.067,0.314-0.209,0.555-0.426,0.723C9.438,13.442,9.165,13.526,8.837,13.526z M8.809,10.837c-0.134,0-0.254,0.023-0.359,0.07c-0.105,0.047-0.193,0.112-0.266,0.196c-0.073,0.084-0.133,0.183-0.179,0.297 c-0.047,0.114-0.078,0.236-0.092,0.367h1.743c-0.015-0.291-0.094-0.519-0.238-0.684C9.273,10.919,9.07,10.837,8.809,10.837z M11.12,10.932h0.011c0.105-0.138,0.231-0.247,0.378-0.328c0.148-0.08,0.328-0.12,0.541-0.12c0.303,0,0.541,0.079,0.714,0.238 c0.174,0.159,0.261,0.389,0.261,0.692v2.034h-0.454v-1.995c0-0.191-0.058-0.336-0.174-0.437c-0.116-0.101-0.276-0.151-0.482-0.151 c-0.116,0-0.222,0.02-0.319,0.059c-0.097,0.039-0.181,0.093-0.252,0.163c-0.071,0.069-0.126,0.153-0.165,0.252 c-0.039,0.099-0.059,0.208-0.059,0.328v1.782h-0.454v-2.897h0.454V10.932z M15.409,13.53c-0.549,0-0.972-0.116-1.271-0.347 c-0.299-0.231-0.456-0.561-0.47-0.989h0.8c0.03,0.244,0.116,0.418,0.259,0.521c0.143,0.103,0.359,0.155,0.648,0.155 c0.105,0,0.205-0.009,0.299-0.028c0.094-0.019,0.177-0.049,0.248-0.09c0.071-0.041,0.129-0.095,0.172-0.161 c0.043-0.066,0.065-0.146,0.065-0.24c0-0.098-0.024-0.178-0.07-0.242c-0.047-0.064-0.114-0.117-0.2-0.161 c-0.086-0.043-0.191-0.081-0.313-0.113c-0.122-0.032-0.26-0.065-0.414-0.099c-0.18-0.041-0.354-0.087-0.521-0.138 c-0.167-0.051-0.314-0.119-0.44-0.206c-0.126-0.086-0.227-0.197-0.304-0.332c-0.077-0.135-0.116-0.308-0.116-0.518 c0-0.199,0.038-0.374,0.116-0.524c0.077-0.15,0.184-0.276,0.321-0.378c0.137-0.101,0.3-0.178,0.487-0.228 c0.188-0.051,0.394-0.076,0.62-0.076c0.454,0,0.82,0.107,1.096,0.321c0.276,0.214,0.429,0.526,0.459,0.935h-0.783 c-0.023-0.203-0.105-0.355-0.248-0.456c-0.143-0.101-0.319-0.152-0.53-0.152c-0.222,0-0.398,0.043-0.53,0.13 c-0.132,0.086-0.197,0.201-0.197,0.344c0,0.083,0.018,0.151,0.054,0.206c0.036,0.055,0.09,0.102,0.163,0.144 c0.073,0.041,0.164,0.077,0.273,0.107c0.109,0.03,0.238,0.062,0.389,0.096c0.207,0.045,0.401,0.095,0.583,0.149 c0.182,0.055,0.342,0.127,0.479,0.217c0.137,0.09,0.245,0.205,0.324,0.344c0.079,0.139,0.118,0.318,0.118,0.535 c0,0.203-0.039,0.384-0.118,0.544c-0.079,0.16-0.188,0.293-0.327,0.4c-0.139,0.107-0.304,0.189-0.496,0.245 C15.843,13.501,15.635,13.53,15.409,13.53z M19.168,13.53c-0.549,0-0.972-0.116-1.271-0.347s-0.456-0.561-0.47-0.989h0.8 c0.03,0.244,0.116,0.418,0.259,0.521c0.143,0.103,0.359,0.155,0.648,0.155c0.105,0,0.205-0.009,0.299-0.028 c0.094-0.019,0.177-0.049,0.248-0.09c0.071-0.041,0.129-0.095,0.172-0.161c0.043-0.066,0.065-0.146,0.065-0.24 c0-0.098-0.024-0.178-0.07-0.242c-0.047-0.064-0.114-0.117-0.2-0.161c-0.086-0.043-0.191-0.081-0.313-0.113 c-0.122-0.032-0.26-0.065-0.414-0.099c-0.18-0.041-0.354-0.087-0.521-0.138c-0.167-0.051-0.314-0.119-0.44-0.206 c-0.126-0.086-0.227-0.197-0.304-0.332c-0.077-0.135-0.116-0.308-0.116-0.518c0-0.199,0.038-0.374,0.116-0.524 c0.077-0.15,0.184-0.276,0.321-0.378c0.137-0.101,0.3-0.178,0.487-0.228c0.188-0.051,0.394-0.076,0.62-0.076 c0.454,0,0.82,0.107,1.096,0.321c0.276,0.214,0.429,0.526,0.459,0.935h-0.783c-0.023-0.203-0.105-0.355-0.248-0.456 c-0.143-0.101-0.319-0.152-0.53-0.152c-0.222,0-0.398,0.043-0.53,0.13c-0.132,0.086-0.197,0.201-0.197,0.344 c0,0.083,0.018,0.151,0.054,0.206c0.036,0.055,0.09,0.102,0.163,0.144c0.073,0.041,0.164,0.077,0.273,0.107 c0.109,0.03,0.238,0.062,0.389,0.096c0.207,0.045,0.401,0.095,0.583,0.149c0.182,0.055,0.342,0.127,0.479,0.217 c0.137,0.09,0.245,0.205,0.324,0.344c0.079,0.139,0.118,0.318,0.118,0.535c0,0.203-0.039,0.384-0.118,0.544 c-0.079,0.16-0.188,0.293-0.327,0.4c-0.139,0.107-0.304,0.189-0.496,0.245C19.602,13.501,19.393,13.53,19.168,13.53z M21.29,9.41 h0.817v3.347H24v0.682h-2.71V9.41z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.575 9.29h5.418v5.42h-5.418zM0 9.29h5.419v5.42H0zm18.575 7.827a1.207 1.207 0 0 1-1.206 1.206H6.623a1.207 1.207 0 0 1-1.205-1.206v-.858H0v5.252a2.236 2.236 0 0 0 2.229 2.23h19.53A2.237 2.237 0 0 0 24 21.512V16.26h-5.425zM21.763.258H2.233a2.236 2.236 0 0 0-2.23 2.23V7.74h5.419v-.858a1.206 1.206 0 0 1 1.205-1.206h10.746a1.206 1.206 0 0 1 1.205 1.206v.858H24V2.487A2.237 2.237 0 0 0 21.763.258Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenstreetmap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.672 23.969c-.352-.089-.534-.234-1.471-1.168C.085 21.688.014 21.579.018 20.999c0-.645-.196-.414 3.368-3.986 3.6-3.608 3.415-3.451 4.064-3.449.302 0 .378.016.62.14l.277.14 1.744-1.744-.218-.343c-.425-.662-.825-1.629-1.006-2.429a7.657 7.657 0 0 1 1.479-6.44c2.49-3.12 6.959-3.812 10.26-1.588 1.812 1.218 2.99 3.099 3.328 5.314.07.467.07 1.579 0 2.074a7.554 7.554 0 0 1-2.205 4.402 6.712 6.712 0 0 1-1.943 1.401c-.959.483-1.775.71-2.881.803-1.573.131-3.32-.305-4.656-1.163l-.343-.218-1.744 1.744.14.28c.125.241.14.316.14.617.003.651.156.467-3.426 4.049-2.761 2.756-3.186 3.164-3.398 3.261-.271.125-.69.171-.945.106zM17.485 13.95a6.425 6.425 0 0 0 4.603-3.51c1.391-2.899.455-6.306-2.227-8.108-.638-.43-1.529-.794-2.367-.962-.581-.117-1.809-.104-2.414.025a6.593 6.593 0 0 0-2.452 1.064c-.444.315-1.177 1.048-1.487 1.487a6.384 6.384 0 0 0 .38 7.907 6.406 6.406 0 0 0 3.901 2.136c.509.078 1.542.058 2.065-.037zm-3.738 7.376a80.97 80.97 0 0 1-2.196-.651c-.025-.028 1.207-4.396 1.257-4.449.023-.026 4.242 1.152 4.414 1.236.062.026-.003.288-.525 2.102a398.513 398.513 0 0 0-.635 2.236c-.025.087-.069.156-.097.156-.028-.003-1.028-.287-2.219-.631zm2.912.524c0-.053 1.227-4.333 1.246-4.347.047-.034 4.324-1.23 4.341-1.211.019.019-1.199 4.337-1.23 4.36-.02.019-4.126 1.191-4.259 1.218-.054.011-.098 0-.098-.019zm-7.105-1.911c.846-.852 1.599-1.627 1.674-1.728.171-.218.405-.732.472-1.015.026-.118.053-.352.058-.522l.011-.307.182-.051c.103-.028.193-.044.202-.034.023.025-1.207 4.321-1.246 4.36-.02.016-.677.213-1.464.436l-1.425.405 1.537-1.542zm8.289-3.06a1.371 1.371 0 0 1-.059-.187l-.044-.156.156-.028c1.339-.227 2.776-.856 3.908-1.713.16-.125.252-.171.265-.134.054.165.272.95.265.959-.034.034-4.48 1.282-4.492 1.261zm-15.083-1.3c-.05-.039-1.179-3.866-1.264-4.29-.016-.084.146-.044 2.174.536 2.121.604 2.192.629 2.222.74.028.098.011.129-.125.223-.084.059-.769.724-1.523 1.479a63.877 63.877 0 0 1-1.39 1.367c-.016 0-.056-.025-.093-.054zm.821-4.378c-1.188-.343-2.164-.623-2.167-.626-.016-.012 1.261-4.433 1.285-4.46.022-.022 4.422 1.211 4.469 1.252.009.009-.269 1.017-.618 2.239-.576 2.02-.643 2.224-.723 2.22-.05-.003-1.059-.285-2.247-.626zm2.959.538c.012-.031.212-.723.444-1.534l.42-1.476.056.321c.093.556.265 1.188.464 1.741.106.296.187.539.181.545-.008.006-.332.101-.719.212-.389.109-.741.21-.786.224-.058.016-.075.006-.059-.034zM4.905 6.112c-1.187-.339-2.167-.635-2.18-.654-.04-.062-1.246-4.321-1.23-4.338.026-.025 4.31 1.204 4.351 1.246.047.051 1.28 4.379 1.246 4.376L4.91 6.113zm2.148-1.713l-.519-1.806-.078-.28 1.693-.483c.934-.265 1.724-.495 1.76-.508.034-.016-.083.14-.26.336A8.729 8.729 0 0 0 7.69 5.23a4.348 4.348 0 0 0-.132.561c0 .293-.115-.025-.505-1.39z\"},\"child\":[]}]})(props);\n};\nexport function SiOpensuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.724 0a12 12 0 0 0-9.448 4.623c1.464.391 2.5.727 2.81.832.005-.19.037-1.893.037-1.893s.004-.04.025-.06c.026-.026.065-.018.065-.018.385.056 8.602 1.274 12.066 3.292.427.25.638.517.902.786.958.99 2.223 5.108 2.359 5.957.005.033-.036.07-.054.083a5.177 5.177 0 0 1-.313.228c-.82.55-2.708 1.872-5.13 1.656-2.176-.193-5.018-1.44-8.445-3.699.336.79.668 1.58 1 2.371.497.258 5.287 2.7 7.651 2.651 1.904-.04 3.941-.968 4.756-1.458 0 0 .179-.108.257-.048.085.066.061.167.041.27-.05.234-.164.66-.242.863l-.065.165c-.093.25-.183.482-.356.625-.48.436-1.246.784-2.446 1.305-1.855.812-4.865 1.328-7.66 1.31-1.001-.022-1.968-.133-2.817-.232-1.743-.197-3.161-.357-4.026.269A12 12 0 0 0 10.724 24a12 12 0 0 0 12-12 12 12 0 0 0-12-12zM13.4 6.963a3.503 3.503 0 0 0-2.521.942 3.498 3.498 0 0 0-1.114 2.449 3.528 3.528 0 0 0 3.39 3.64 3.48 3.48 0 0 0 2.524-.946 3.504 3.504 0 0 0 1.114-2.446 3.527 3.527 0 0 0-3.393-3.64zm-.03 1.035a2.458 2.458 0 0 1 2.368 2.539 2.43 2.43 0 0 1-.774 1.706 2.456 2.456 0 0 1-1.762.659 2.461 2.461 0 0 1-2.364-2.542c.02-.655.3-1.26.777-1.707a2.419 2.419 0 0 1 1.756-.655zm.402 1.23c-.602 0-1.087.325-1.087.727 0 .4.485.725 1.087.725.6 0 1.088-.326 1.088-.725 0-.402-.487-.726-1.088-.726Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpentelemetry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.6974 13.1173c-1.0224 1.0224-1.0224 2.68 0 3.7024 1.0224 1.0224 2.68 1.0224 3.7024 0 1.0224-1.0223 1.0224-2.68 0-3.7024-1.0223-1.0223-2.68-1.0223-3.7024 0zm2.7677 2.7701c-.5063.5063-1.3267.5063-1.833 0s-.5063-1.3266 0-1.833c.5063-.5062 1.3267-.5062 1.833 0 .5063.504.5063 1.3267 0 1.833zM16.356.2355l-1.6041 1.6042c-.314.314-.314.83 0 1.144L21.015 9.247c.314.314.83.314 1.144 0l1.6042-1.6041c.314-.314.314-.83 0-1.144L17.4976.2354c-.314-.314-.8276-.314-1.1416 0zM5.1173 20.734c.2848-.2848.2848-.7497 0-1.0345l-.8155-.8155c-.2848-.2848-.7497-.2848-1.0345 0l-1.6845 1.6845-.0024.0024-.4625-.4625c-.2556-.2556-.6718-.2556-.925 0-.2556.2556-.2556.6718 0 .925l2.775 2.775c.2556.2556.6718.2556.925 0 .2532-.2556.2556-.6718 0-.925l-.4625-.4625.0024-.0024zm8.4856-15.893-3.5637 3.5637c-.3164.3164-.3164.8374 0 1.1538l2.2006 2.2005c1.5554-1.1197 3.7365-.981 5.1361.4187l1.7819-1.7818c.3164-.3165.3164-.8374 0-1.1538l-4.401-4.401c-.3165-.319-.8374-.319-1.1539 0zm-2.2881 7.8455-1.2999-1.2999c-.3043-.3043-.8033-.3043-1.1076 0l-4.5836 4.586c-.3042.3043-.3042.8033 0 1.1076l2.5973 2.5973c.3043.3043.8033.3043 1.1076 0l2.9478-2.9527c-.6231-1.2877-.5112-2.8431.3384-4.0383z\"},\"child\":[]}]})(props);\n};\nexport function SiOpentext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.412 11.809c0 .786-.468 1.637-1.7 1.637-.894 0-1.712-.49-1.712-1.637 0-.946.616-1.68 1.828-1.616 1.297.074 1.584 1.052 1.584 1.616zm-2.307-.596c-.117.17-.159.383-.159.596 0 .478.244.914.765.914.51 0 .755-.404.755-.872 0-.34-.085-.595-.266-.754a.727.727 0 0 0-.553-.17c-.255.01-.414.095-.542.286zm10.63-.67c.095-.095.148-.17.318-.244.149-.063.35-.106.585-.106.191 0 .404.032.563.117.33.17.425.446.425.935v2.126h-.946v-1.754c0-.276-.01-.382-.042-.467-.075-.17-.234-.234-.425-.234-.49 0-.49.382-.49.776v1.68h-.935v-3.105h.946v.277zm-1.393 2.02c-.085.181-.361.883-1.584.883-.946 0-1.605-.564-1.605-1.584 0-.744.383-1.669 1.637-1.669.191 0 .733-.021 1.148.404.415.436.436 1.042.446 1.392H8.1c0 .383.223.776.734.776s.69-.33.807-.542l.702.34zm-.935-1.148c-.022-.127-.043-.308-.181-.435a.66.66 0 0 0-.457-.17.67.67 0 0 0-.478.202c-.128.138-.16.276-.192.414l1.308-.01zm13.977-.5H24v-.637h-.616V9.62h-.936v.648H22.3l-.425.638h.574v1.478c0 .297.01.52.138.701.202.287.553.308.883.308.17 0 .297-.02.488-.053v-.712l-.329.01c-.255 0-.255-.159-.244-.35v-1.371zM14.073 9.62h.935v.648h.967l-.425.638h-.553v1.382c-.01.191-.01.35.245.35l.33-.01v.712c-.203.032-.32.053-.49.053-.318 0-.68-.02-.882-.308-.127-.18-.138-.404-.138-.701V9.619h.01zm4.836 2.944-.18.266c-.171.234-.48.606-1.383.606-.946 0-1.573-.563-1.573-1.584 0-.744.383-1.669 1.637-1.669.191 0 .733-.02 1.148.404.415.436.436 1.042.446 1.393H16.73c-.01.382.191.776.69.776.51 0 .66-.33.777-.542l.712.35zm-.872-1.148c-.021-.127-.042-.308-.18-.435a.66.66 0 0 0-.458-.17.67.67 0 0 0-.478.202c-.127.138-.16.276-.191.414l1.307-.01zm4.071 1.956-1.17-1.626.968-1.467h-1.063l-.457.691-.5-.69h-1.062l1.052 1.466-1.084 1.626h1.063l.563-.86.617.86h1.073zm-17.41-2.827c.085-.138.372-.35.829-.35.776 0 1.329.573 1.329 1.604 0 .638-.234 1.637-1.372 1.637-.403 0-.722-.223-.797-.35v1.296h-.935v-4.114h.946v.277zm.638.361c-.17 0-.351.064-.479.234-.138.16-.19.404-.19.68 0 .362.105.585.222.712a.588.588 0 0 0 .425.192c.457 0 .66-.468.66-.925 0-.383-.117-.786-.5-.872-.053-.01-.096-.02-.138-.02z\"},\"child\":[]}]})(props);\n};\nexport function SiOpentofu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.184 23.25.002-.01-.033-.017-8.388-4.611a1.6841 1.6841 0 0 1-.873-1.475V6.864c0-.614.335-1.18.873-1.476l9.424-5.18a1.6868 1.6868 0 0 1 1.622 0l8.31 4.568.022.012.006.002-.004-.001 1.09.599c.538.296.873.862.873 1.476v10.273c0 .614-.335 1.179-.873 1.475l-8.388 4.611-.03.016-1.006.553c-.505.277-1.117.277-1.622 0l-1.003-.552-.002.01Zm.603-1.158-.005-.001.012.006c.252.123.55-.055.558-.338l.001-9.147c0-.141-.078-.272-.202-.34L2.763 7.661c-.259-.142-.576.045-.576.341v9.135c0 .141.077.272.201.34l8.394 4.613.005.002Zm.556-.327Zm0 0Zm-2.539-4.802-.005.003-1.959-1.031-.003-.004c.001-.003.001-.007.001-.01.023-.305.153-.525.346-.632.194-.107.45-.101.72.041.272.143.508.397.671.691.163.293.252.628.229.935v.007ZM5.71 15.177l-.005.002-1.96-1.031-.002-.004.001-.01c.022-.304.152-.524.346-.632.194-.107.449-.101.72.042.271.143.508.396.671.69.162.294.252.628.229.935v.008Zm14.981-8.999-.003-.018a.382.382 0 0 0-.191-.25l-8.31-4.567a.3883.3883 0 0 0-.374 0L3.503 5.91c-.162.089-.226.265-.193.423l.009.007-.009-.007c.022.1.083.194.183.253l8.32 4.572c.116.064.258.064.374 0l8.321-4.573c.151-.089.212-.256.183-.407Zm-17.37.16Zm-.002.002c0-.001-.003-.003-.005-.006-.002-.002-.004-.004-.004-.003l.009.009Zm-.467-1.56-.003.002c.002.004.005.006.005.006l-.002-.008Zm.007.007c-.001.001-.002.001-.003.001h-.002l.005-.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.882 1.018C2.182 1.018 0 3.214 0 5.932c0 2.704 2.182 4.915 4.882 4.915Zm7.118 0c-2.686 0-4.882 2.196-4.882 4.914 0 2.704 2.182 4.915 4.882 4.915zm7.118 0c-2.696 0-4.881 2.2-4.881 4.914 0 2.714 2.185 4.915 4.88 4.915 2.697 0 4.883-2.2 4.883-4.915 0-2.714-2.186-4.914-4.882-4.914zm0 12.093c-2.696 0-4.881 2.2-4.881 4.915 0 2.714 2.185 4.914 4.88 4.914 2.697 0 4.883-2.2 4.883-4.914 0-2.714-2.186-4.915-4.882-4.915ZM12 13.126c-2.686 0-4.882 2.196-4.882 4.9S9.3 22.94 12 22.94zm-7.118.04c-2.7 0-4.882 2.197-4.882 4.9 0 2.719 2.182 4.916 4.882 4.916Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenvpn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .357C5.385.357 0 5.69 0 12.254c0 4.36 2.358 8.153 5.896 10.204l.77-5.076a7.046 7.046 0 01-1.846-4.719c0-3.897 3.18-7.076 7.13-7.076 3.948 0 7.126 3.18 7.126 7.076 0 1.847-.717 3.488-1.846 4.77L18 22.51c3.59-2.05 6-5.899 6-10.258C24 5.69 18.615.357 12 .357zm-.05 8.157a3.786 3.786 0 00-3.796 3.795 3.738 3.738 0 002.461 3.54L9.13 23.643h5.64l-1.435-7.795c1.385-.564 2.41-1.898 2.41-3.54a3.786 3.786 0 00-3.795-3.794z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenwrt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 0c-3.906 0-7.4465 1.5949-10.006 4.1543l1.6953 1.6953c2.1278-2.1278 5.069-3.4395 8.3105-3.4395 3.2416 0 6.1833 1.3122 8.3105 3.4395l1.6953-1.6953c-2.56-2.5594-6.0999-4.1543-10.006-4.1543zm0 4.3203c-2.7091 0-5.1685 1.1138-6.9473 2.8926l1.6953 1.6953c1.346-1.346 3.2079-2.1777 5.252-2.1777 2.0435 0 3.9053 0.83172 5.252 2.1777l1.6953-1.6953c-1.7782-1.7782-4.2381-2.8926-6.9473-2.8926zm-7.7285 3.7559c-1.3295 1.6792-2.1113 3.7906-2.1113 6.084 0 5.4189 4.4216 9.8398 9.8398 9.8398 5.4183 0 9.8398-4.4209 9.8398-9.8398 0-2.2934-0.79833-4.4048-2.1113-6.084l-1.7129 1.7129c0.8974 1.2298 1.4297 2.7427 1.4297 4.3711 0 4.1053-3.34 7.4473-7.4453 7.4473-4.1052 0-7.4473-3.342-7.4473-7.4473 0-1.6284 0.53174-3.1413 1.4297-4.3711l-1.7109-1.7129zm7.7285 0.56641c-1.5128 0-2.8928 0.61633-3.9062 1.6133l1.6953 1.6953c1.2219-1.2195 3.2006-1.2195 4.4219 0l1.6953-1.6953c-1.0354-1.0361-2.4416-1.6176-3.9062-1.6133zm0 3.8887c-0.8997 0-1.6289 0.72911-1.6289 1.6289 0 0.8992 0.72921 1.6289 1.6289 1.6289 0.8998 0 1.6289-0.72971 1.6289-1.6289-0.0019-0.8992-0.72971-1.6277-1.6289-1.6289z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenzeppelin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.783 24H9.317l2.196-3.69a5.23 5.23 0 0 1 4.494-2.558h6.775ZM1.217 0h21.566l-3.718 6.247H1.217ZM9.76 9.763a5.73 5.73 0 0 1 4.92-2.795h4.01L8.498 24h-7.26Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpenzfs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.3573 3.4035a.6337.6337 0 0 1-.9017 0 .64.64 0 0 1 0-.9043.6337.6337 0 0 1 .9017 0 .6287.6287 0 0 1 0 .9043m-.1407 17.8587c-.4348.4332-1.1383.4332-1.5731 0-.4349-.4396-.4349-1.1429 0-1.5762.4348-.4333 1.1447-.4333 1.5731 0a1.1038 1.1038 0 0 1 0 1.5762m-3.7218-2.1539c-.4348-.4333-.4348-1.1428 0-1.5698.4349-.4396 1.1447-.4396 1.5731 0 .4349.4332.4349 1.1428 0 1.5698-.4348.4396-1.1446.4396-1.5731 0m-.5755 2.1539c-.4349.4332-1.1447.4332-1.5732 0-.4348-.4396-.4348-1.1429 0-1.5762.4349-.4333 1.1447-.4333 1.5732 0 .4348.4333.4348 1.1429 0 1.5762m-3.7219-2.1539c-.4412-.4333-.4412-1.1428 0-1.5698a1.1032 1.1032 0 0 1 1.5732 0c.4348.4332.4348 1.1428 0 1.5698-.4349.4396-1.1447.4396-1.5732 0m-.5755 2.1539c-.4349.4332-1.1447.4332-1.5731 0-.4349-.4396-.4349-1.1429 0-1.5762.4348-.4333 1.1446-.4333 1.5731 0 .4349.4333.4349 1.1429 0 1.5762m-3.7282-2.1539c-.4349-.4333-.4349-1.1428 0-1.5698.4412-.4396 1.1447-.4396 1.5795 0 .4349.4332.4349 1.1428 0 1.5698-.4348.4333-1.1447.4396-1.5795 0m-.5692 2.1476c-.4348.4395-1.1446.4395-1.5731 0-.4412-.4333-.4412-1.1429 0-1.5699a1.1032 1.1032 0 0 1 1.5731 0c.4349.4333.4349 1.1429 0 1.5699M4.6043 2.5809c.2558-.2512.6587-.2512.908 0a.64.64 0 0 1 0 .9042c-.2493.2512-.6586.2512-.908 0-.243-.2512-.2494-.653 0-.9043M5.992 3.9686c.2494-.2512.6587-.2512.908 0a.64.64 0 0 1 0 .9042c-.2493.245-.6586.245-.908 0a.64.64 0 0 1 0-.9042m1.3877 1.3815c.2494-.245.6587-.245.908 0 .2495.2512.2495.6593 0 .9042-.2493.2512-.6586.2512-.908 0-.2494-.2449-.2494-.653 0-.9042m0-2.7693c.2494-.2511.6587-.2511.908 0a.64.64 0 0 1 0 .9043c-.2493.2512-.6586.2449-.908 0a.64.64 0 0 1 0-.9043m1.3877 4.157c.2494-.2449.6587-.2511.908 0a.64.64 0 0 1 0 .9043c-.2493.2511-.6586.2511-.908 0a.64.64 0 0 1 0-.9043m0-2.7692c.2494-.2512.6587-.2512.908 0a.64.64 0 0 1 0 .9042c-.2493.2512-.6586.2512-.908 0-.2494-.2511-.2494-.6593 0-.9042m1.3877-1.3878c.2494-.2511.6523-.2511.908 0a.64.64 0 0 1 0 .9043c-.2557.2512-.6586.2512-.908 0a.64.64 0 0 1 0-.9043m1.3877 4.157c.2494-.2511.6522-.2449.9016 0 .2494.2512.2494.6594 0 .9043-.243.2511-.6522.2511-.9016 0a.64.64 0 0 1 0-.9043m0-2.7692a.6337.6337 0 0 1 .9016 0c.2558.2449.2494.653 0 .9042-.2494.245-.6522.245-.9016 0-.2494-.2511-.2494-.6593 0-.9042m1.3877-1.3878a.6337.6337 0 0 1 .9016 0 .64.64 0 0 1 0 .9043.6337.6337 0 0 1-.9016 0 .64.64 0 0 1 0-.9043m.4284 12.8038c.4349-.4333 1.1447-.4333 1.5732 0 .4348.4396.4348 1.1429 0 1.5762-.4349.4332-1.1447.4332-1.5732 0-.4348-.4396-.4348-1.1429 0-1.5762m.4732-6.3924a.6337.6337 0 0 1-.9016 0c-.2494-.245-.2494-.6531 0-.9043a.6393.6393 0 0 1 .9016.0063c.2494.2449.2494.653 0 .898m0-2.7693a.6337.6337 0 0 1-.9016 0 .64.64 0 0 1 0-.9042.6337.6337 0 0 1 .9016 0 .64.64 0 0 1 0 .9042m-2.2893 3.2528c.2494-.245.6522-.245.9016 0 .2494.2511.2494.6593 0 .9042a.6337.6337 0 0 1-.9016 0 .64.64 0 0 1 0-.9042m-.339 3.7614c.4349-.4396 1.1447-.4396 1.5732 0a1.1038 1.1038 0 0 1 0 1.576c-.4349.4334-1.1383.4334-1.5732 0-.4348-.4395-.4348-1.1428 0-1.576m-.5691 2.1475c.4348.4396.4348 1.1429 0 1.5762-.4413.4332-1.1447.4332-1.5795 0-.4349-.4333-.4349-1.1429 0-1.5762.4348-.4333 1.1446-.4333 1.5795 0m-.4796-10.066c.2494-.2511.6523-.2511.908 0 .243.2513.243.6531 0 .9043-.2557.2512-.6586.2512-.908 0a.64.64 0 0 1 0-.9042m0 2.7755a.6394.6394 0 0 1 .9017-.0063c.2494.2512.2494.6593 0 .9105-.2494.245-.6523.245-.9017 0-.2494-.2512-.2494-.6593 0-.9042m4.163-1.3878a.6337.6337 0 0 1 .9017 0 .64.64 0 0 1 0 .9043.6337.6337 0 0 1-.9017 0 .64.64 0 0 1 0-.9043m0-2.7755c.2494-.2449.6523-.2449.9017 0 .2494.2512.2494.6594 0 .9043a.6337.6337 0 0 1-.9017 0c-.2494-.245-.2494-.6531 0-.9043m1.3877 1.3878a.6337.6337 0 0 1 .9017 0 .64.64 0 0 1 0 .9042.6337.6337 0 0 1-.9017 0 .64.64 0 0 1 0-.9042m0-2.7693a.6337.6337 0 0 1 .9017 0c.2494.245.2494.6531 0 .898a.6337.6337 0 0 1-.9017 0c-.2494-.2449-.2494-.653 0-.898m1.3877 1.3815c.2494-.2449.6523-.2449.9017 0a.64.64 0 0 1 0 .9043.6337.6337 0 0 1-.9017 0c-.2494-.245-.2494-.6531 0-.9043M24 1.8273C24 .8226 23.1878 0 22.171 0H1.8354C.825 0 0 .8163 0 1.8273V8.81h2.7242L0 15.19v6.9764C0 23.1711.8185 24 1.8353 24h20.3358C23.1815 24 24 23.1774 24 22.1664V15.19h-2.7242L24 8.81Z\"},\"child\":[]}]})(props);\n};\nexport function SiOpera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.051 5.238c-1.328 1.566-2.186 3.883-2.246 6.48v.564c.061 2.598.918 4.912 2.246 6.479 1.721 2.236 4.279 3.654 7.139 3.654 1.756 0 3.4-.537 4.807-1.471C17.879 22.846 15.074 24 12 24c-.192 0-.383-.004-.57-.014C5.064 23.689 0 18.436 0 12 0 5.371 5.373 0 12 0h.045c3.055.012 5.84 1.166 7.953 3.055-1.408-.93-3.051-1.471-4.81-1.471-2.858 0-5.417 1.42-7.14 3.654h.003zM24 12c0 3.556-1.545 6.748-4.002 8.945-3.078 1.5-5.946.451-6.896-.205 3.023-.664 5.307-4.32 5.307-8.74 0-4.422-2.283-8.075-5.307-8.74.949-.654 3.818-1.703 6.896-.205C22.455 5.25 24 8.445 24 12z\"},\"child\":[]}]})(props);\n};\nexport function SiOperagx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12.01c0 3.412-1.462 6.674-4.013 8.943A12 12 0 0 1 11.992 24c-.178 0-.385-.019-.563-.019C5.016 23.681 0 18.403 0 11.991 0 5.37 5.372 0 11.99 0h.038c2.944 0 5.775 1.087 7.96 3.047A12.04 12.04 0 0 1 24 12.009zm-9.14 10.443c-2.729-.056-5.279-1.397-7.041-3.684-1.388-1.64-2.203-4.013-2.269-6.516v-.544c.047-2.521.881-4.893 2.269-6.534 1.744-2.269 4.294-3.61 7.012-3.666a10.67 10.67 0 0 0-2.784-.384h-.038c-5.99 0-10.865 4.894-10.865 10.866 0 5.812 4.528 10.584 10.34 10.847a10.087 10.087 0 0 0 3.375-.385zm7.996-10.444c0-3.065-1.303-5.99-3.59-8.053a7.69 7.69 0 0 0-4.228-1.284c-2.447 0-4.754 1.181-6.357 3.244-1.247 1.462-1.969 3.59-2.025 5.83v.526c.056 2.25.778 4.369 2.006 5.812l.02.02c1.602 2.071 3.909 3.252 6.355 3.252a7.69 7.69 0 0 0 4.229-1.284 10.894 10.894 0 0 0 3.59-8.063zm-3.75 0c0 4.05-2.184 7.341-4.912 7.585 2.128-1.388 3.61-4.257 3.61-7.585 0-3.328-1.463-6.197-3.61-7.575 2.728.244 4.912 3.525 4.912 7.575z\"},\"child\":[]}]})(props);\n};\nexport function SiOpnsense (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.419 11.08h5.259v1.847h-5.254l1.66.885v1.847l-5.111-2.732h-.005V11.08l5.111-2.737v1.847l-1.66.89zm.005 5.54l5.255 2.808v1.841c.01 1.453-1.176 2.744-2.655 2.731H.322v-4.573l5.252-2.808H2.119v-1.847h1.297v1.719l3.216-1.719h2.395v1.846l-3.453 1.847h12.85l-3.455-1.847v-1.846h2.4l3.216 1.719v-1.719h1.297v1.847h-3.458zM3.949 20.307v-.972l-1.83.979v1.84h18.905c.481-.004.848-.393.857-.879v-.96l-1.764-.943v.936H3.949zm-.033-6.496v1.847l5.111-2.732V11.08L3.916 8.343v1.847l1.665.89H.322v1.847h5.254l-1.66.884zM23.679 0v4.572L18.42 7.386h3.462v1.847h-1.303V7.508l-3.222 1.725h-2.39V7.386l3.451-1.847H5.578l3.449 1.847v1.847H6.638L3.416 7.508v1.725H2.119V7.386h3.459L.322 4.572V2.731C.3 1.291 1.495-.012 2.976 0h20.703zm-1.798 1.846H2.976c-.488.009-.847.394-.857.88v.962l1.797.962v-.957h16.168v.956l1.797-.962V1.846z\"},\"child\":[]}]})(props);\n};\nexport function SiOppo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.85 12.786h-.001C1.639 12.774.858 12.2.858 11.321s.781-1.452 1.99-1.465c1.21.013 1.992.588 1.992 1.465s-.782 1.453-1.99 1.465zm.034-3.638h-.073C1.156 9.175 0 10.068 0 11.32s1.156 2.147 2.811 2.174h.073c1.655-.027 2.811-.921 2.811-2.174S4.54 9.175 2.885 9.148zm18.27 3.638c-1.21-.012-1.992-.587-1.992-1.465s.782-1.452 1.991-1.465c1.21.013 1.991.588 1.991 1.465s-.781 1.453-1.99 1.465zm.035-3.638h-.073c-1.655.027-2.811.92-2.811 2.173s1.156 2.147 2.81 2.174h.074C22.844 13.468 24 12.574 24 11.32s-1.156-2.146-2.811-2.173zm-6.126 3.638c-1.21-.012-1.99-.587-1.99-1.465s.78-1.452 1.99-1.465c1.21.013 1.991.588 1.991 1.465s-.781 1.453-1.99 1.465zm.036-3.638h-.073c-.789.013-1.464.222-1.955.574v-.37h-.857v5.5h.857v-1.931c.49.351 1.166.56 1.954.574h.074c1.655-.027 2.81-.921 2.81-2.174s-1.155-2.146-2.81-2.173zm-6.144 3.638c-1.21-.012-1.99-.587-1.99-1.465s.78-1.452 1.99-1.465c1.21.013 1.991.588 1.991 1.465s-.781 1.453-1.99 1.465zm.037-3.638H8.92c-.789.013-1.464.222-1.955.574v-.37h-.856v5.5h.856v-1.931c.491.351 1.166.56 1.955.574a3.728 3.728 0 0 0 .073 0c1.655-.027 2.811-.921 2.811-2.174s-1.156-2.146-2.81-2.173z\"},\"child\":[]}]})(props);\n};\nexport function SiOpsgenie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002 0a5.988 5.988 0 1 1 0 11.975 5.988 5.988 0 0 1 0-11.975zm9.723 13.026h-.03l-4.527-2.242a.671.671 0 0 0-.876.268 22.408 22.408 0 0 1-4.306 5.217 22.407 22.407 0 0 1-4.286-5.2.671.671 0 0 0-.876-.269l-4.535 2.226h-.03a.671.671 0 0 0-.248.902 28.85 28.85 0 0 0 4.55 5.933l-.002.001c.024.025.05.048.075.072.335.335.676.664 1.027.981.081.074.165.144.247.217.315.278.632.555.96.82.144.117.295.227.441.341.277.216.552.434.837.639.44.318.888.625 1.346.917a.963.963 0 0 0 1.007.017c.487-.312.962-.64 1.428-.98.068-.05.132-.103.2-.153.358-.266.713-.537 1.06-.82.234-.19.46-.39.688-.588.17-.147.34-.291.506-.442.295-.268.58-.545.864-.825.061-.06.127-.118.188-.179l-.004-.002a28.852 28.852 0 0 0 4.565-5.949.671.671 0 0 0-.269-.902z\"},\"child\":[]}]})(props);\n};\nexport function SiOpslevel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.246 4.86 13.527.411a3.074 3.074 0 0 0-3.071 0l-2.34 1.344v6.209l3.104-1.793a1.515 1.515 0 0 1 1.544 0l3.884 2.241c.482.282.764.78.764 1.328v4.482a1.54 1.54 0 0 1-.764 1.328l-3.884 2.241V24l8.482-4.897a3.082 3.082 0 0 0 1.544-2.656V7.532a3.054 3.054 0 0 0-1.544-2.672ZM6.588 14.222V2.652L2.754 4.876A3.082 3.082 0 0 0 1.21 7.532v8.915c0 1.095.581 2.108 1.544 2.656L11.236 24v-6.209L7.352 15.55a1.525 1.525 0 0 1-.764-1.328Z\"},\"child\":[]}]})(props);\n};\nexport function SiOptimism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0M9.6094 8.705c.4623 0 .8778.0784 1.2441.2345.3663.15.6532.3773.8633.6835.2101.3002.3164.6598.3164 1.0801 0 .1261-.0149.2864-.045.4785a20.4 20.4 0 0 1-.3241 1.5586c-.2102.8227-.5735 1.4375-1.0899 1.8457-.5164.4023-1.2076.6036-2.0722.6036-.7146 0-1.2996-.1677-1.756-.504q-.6755-.5133-.6757-1.459 0-.198.045-.4863c.078-.4323.1898-.9521.334-1.5586.4082-1.6512 1.4608-2.4765 3.16-2.4765m4.1699.09h2.3965q.9999-.0001 1.6035.414c.4083.2762.6113.6749.6113 1.1973 0 .15-.0186.3066-.0547.4687-.15.6905-.4518 1.201-.9082 1.5313-.4503.3302-1.0689.496-1.8554.496h-1.2168l-.414 1.9727a.26.26 0 0 1-.0997.1621c-.054.042-.11.0625-.17.0625h-1.2245c-.066 0-.1183-.0204-.1543-.0625-.03-.048-.0394-.102-.0274-.1621l1.2442-5.8555a.256.256 0 0 1 .0976-.162c.054-.042.1118-.0626.1719-.0626m-4.2871 1.207c-.3363 0-.6231.0987-.8633.2968-.2341.1982-.4019.5019-.5039.9102-.1081.4023-.2162.8941-.3242 1.4765a1.93 1.93 0 0 0-.0371.379c0 .5524.2888.828.8652.828q.5043.0002.8555-.2968c.2402-.1981.4116-.5019.5136-.9102.1381-.5644.2425-1.0562.3145-1.4765a2.1 2.1 0 0 0 .0371-.3887c0-.5464-.287-.8183-.8574-.8183m5.4492.0449-.3418 1.6113h1.0352c.2521 0 .472-.069.6582-.207.1921-.1381.3169-.3356.377-.5938.018-.102.0273-.1915.0273-.2695 0-.1742-.0503-.3064-.1524-.3965-.102-.096-.2772-.1445-.5234-.1445z\"},\"child\":[]}]})(props);\n};\nexport function SiOracle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.412 4.412h-8.82a7.588 7.588 0 0 0-.008 15.176h8.828a7.588 7.588 0 0 0 0-15.176zm-.193 12.502H7.786a4.915 4.915 0 0 1 0-9.828h8.433a4.914 4.914 0 1 1 0 9.828z\"},\"child\":[]}]})(props);\n};\nexport function SiOrange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0h24v24H0V0Zm3.43 20.572h17.143v-3.429H3.43v3.429Z\"},\"child\":[]}]})(props);\n};\nexport function SiOrcid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zM7.369 4.378c.525 0 .947.431.947.947s-.422.947-.947.947a.95.95 0 0 1-.947-.947c0-.525.422-.947.947-.947zm-.722 3.038h1.444v10.041H6.647V7.416zm3.562 0h3.9c3.712 0 5.344 2.653 5.344 5.025 0 2.578-2.016 5.025-5.325 5.025h-3.919V7.416zm1.444 1.303v7.444h2.297c3.272 0 4.022-2.484 4.022-3.722 0-2.016-1.284-3.722-4.097-3.722h-2.222z\"},\"child\":[]}]})(props);\n};\nexport function SiOreilly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.07 10.679v-.672H9.32v3.97h2.751v-.656H9.975v-1h2.002v-.657H9.975v-.985zm2.049 3.299v-3.971h.656v3.314h1.908v.657zm3.111 0v-3.971h.657v3.314h1.907v.657zm-4.456-3.971h.657v3.97h-.657zM1.079 11.023c-.25.25-.407.594-.407.985 0 .39.157.735.407 1a1.418 1.418 0 0 0 1.986 0c.25-.265.406-.61.406-1 0-.391-.156-.735-.407-.985a1.418 1.418 0 0 0-1.985 0M0 12.008c0-1.142.922-2.064 2.064-2.064 1.141 0 2.064.922 2.064 2.064a2.062 2.062 0 0 1-2.064 2.064A2.062 2.062 0 0 1 0 12.008Zm6.176-.344v-.985h1.329a.5.5 0 0 1 .5.485c0 .281-.234.5-.5.5zm1.657.61c.485-.141.829-.579.829-1.11 0-.642-.516-1.157-1.157-1.157H5.519v3.97h.657v-1.656h.922l.985 1.657h.782zM5.05 10.429a.477.477 0 0 1-.485.484.468.468 0 0 1-.484-.484c0-.266.203-.485.484-.485.266 0 .485.219.485.485zm17.684-.422h-.798l-1.016 1.47-1.016-1.47h-.813l1.485 2.157v1.814h.672v-1.814zm.781.813a.404.404 0 0 1-.406-.407c0-.219.172-.406.406-.406.22 0 .407.187.407.406a.414.414 0 0 1-.407.407m0-.892a.487.487 0 0 0-.484.485c0 .266.219.485.484.485a.487.487 0 0 0 .485-.485.487.487 0 0 0-.485-.485zm-.125.313h.203c.032 0 .063.031.063.063a.067.067 0 0 1-.063.062h-.203zm.344.063a.14.14 0 0 0-.14-.141h-.282v.5h.078v-.219h.14l.11.22h.094l-.11-.22a.15.15 0 0 0 .11-.14\"},\"child\":[]}]})(props);\n};\nexport function SiOrg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.169 0c-.566.004-2.16 3.312-3.376 5.94a2.19 2.19 0 01-.408-1.267c-.03-.582-1.089.237-.936 1.275-.068-.035-1.26.227-1.26.23-.23-.93-.802-1.618-1.15-.563-.701 1.663-.88 2.984.115 4.585-.908 4.058-6.948 6.053-6.32 9.33.175.004 1.634 3.48 6.337 2.057 5.557-1.577 8.624 2.116 8.978 2.375.52.526-1.348-4.573-5.302-6.865-2.339-1.276-.87-3.474-.703-4.25 0 0 1.874 1.312 3.232-.692 1.227.316 2.05-.224 3.105.158.64.28 3.336.11 2.334-1.396-.148.129.07.27-.075.46-.043.056-.128.232-.408.315-.314.149-.83.27-1.43-.37-.434-.32-.748-.04-.992-.063.152-.098.577-.315 1.264-.315.388 0 .594.336.854.338.174 0 .685-.262.787-.365.63-.41.697-.278 1.012-.905.17-.759-.215-.92-.332-1.129-.032-.483-.436-.67-.919-.326-1.106-.198-2.192-.105-2.728-.15-1.175-.164-2.153-.786-2.153-.786.143-.19.075-.6-.842-.628-.315-.104-.45-.2-.745-.307.61-1.37.674-2.007 1.418-4.004.261-1.053 1.039-2.685.643-2.682zm-4.297 8.093c.03-.086.443.138.952.176.395.03.805.048 1.296-.025.03-.005.172.095-.15.194-.02.01-.062-.01-.065.196 0 .022-.01.04-.02.046-.15.152-.708.223-1.065.1-.436-.17-.482-.316-.517-.443-.305-.147-.47-.123-.43-.244zM9.685 10.2C8.86 9 8.929 8.36 8.96 7.256 7.961 8.288 6.855 8.3 5.18 8.58c-1.299.234-3.657 2.447-4.025 4.742-.043.608-.08 2.183.424 3.498.492 1.13.828 1.727 1.844 2.335-.882-3.169 5.296-5.33 6.263-8.955z\"},\"child\":[]}]})(props);\n};\nexport function SiOrganicmaps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.99476 3.97191c.57344 1.52442-2.49444 5.23073-5.41889 6.18183-5.28984-1.83216-5.46185 1.24474-9.79128 4.16784 5.11784 3.5385 10.4794.7832 10.37901-2.69928-4.02829 2.30771-6.55139 2.55943-7.99932 2.48955 4.87411-.96505 10.1353-3.95804 11.23764-5.21687.001.0559.002.1118.002.16789C21.40392 15.0769 12.11446 24 12.11446 24s-4.86272-4.65635-7.55173-9.51937c-.37589-.005-2.63809.81712-3.47235-.28487-.93184-1.23071 2.5231-5.35664 5.51926-6.58743 5.36147 2.43362 8.3003-3.87413 9.97757-4.22377C11.58413.41946 6.63831 1.6363 6.07916 6.04191c2.78111-1.58044 6.193-2.47552 7.7699-2.40556-4.43003.90522-9.5045 4.18187-11.02408 5.4266C2.82498 4.05756 6.98404 0 12.11445 0c3.03397 0 5.72822 1.41895 7.42346 3.61379.0001 0 3.02726-.98455 3.45728.35812zm-1.0608.4475c-.39846-.54223-1.78554.0911-1.78554.0911.19411.32556.36823.66393.5204 1.01367a8.86 8.86 0 0 1 .39354 1.09643s1.41637-1.45988.8716-2.20117zm-19.814 9.26475c.43072.58597 1.93005-.0985 1.93005-.0985a9.66 9.66 0 0 1-.56258-1.09567 9.575 9.575 0 0 1-.4254-1.18507s-1.5309 1.57801-.94207 2.37928z\"},\"child\":[]}]})(props);\n};\nexport function SiOrigin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.588 3.11a8.78 8.78 0 013.417.919 8.775 8.775 0 012.706 2.094 9.113 9.113 0 011.715 2.963 8.65 8.65 0 01.465 3.502 8.224 8.224 0 01-.307 1.848 9.174 9.174 0 01-.674 1.703 19.96 19.96 0 01-1.47 2.412 17.61 17.61 0 01-1.762 2.118 18.61 18.61 0 01-4.286 3.281l-.037.026a.196.196 0 01-.109.023.293.293 0 01-.159-.097.266.266 0 01-.062-.173c0-.029.004-.059.012-.085a.186.186 0 01.037-.062c.277-.393.506-.806.686-1.235a5.42 5.42 0 00.368-1.359.118.118 0 00-.038-.085.11.11 0 00-.085-.038 9.155 9.155 0 01-.795.062 4.926 4.926 0 01-.796-.037 8.818 8.818 0 01-6.123-3.013 9.089 9.089 0 01-1.715-2.963 8.662 8.662 0 01-.465-3.502 8.224 8.224 0 01.306-1.848 8.598 8.598 0 01.675-1.68c.439-.864.93-1.676 1.469-2.436a18.035 18.035 0 011.76-2.119A18.801 18.801 0 0111.609.05l.038-.025a.187.187 0 01.11-.025.295.295 0 01.157.098.255.255 0 01.062.174.244.244 0 01-.012.084.164.164 0 01-.036.061 6.447 6.447 0 00-.687 1.237c-.18.433-.3.885-.366 1.358 0 .033.012.063.036.086a.117.117 0 00.085.037c.262-.033.527-.053.795-.06.272-.01.536.002.798.034zm-.807 12.367a3.32 3.32 0 002.521-.855c.72-.64 1.11-1.438 1.176-2.4a3.357 3.357 0 00-.856-2.535 3.294 3.294 0 00-2.4-1.162 3.36 3.36 0 00-2.534.855 3.3 3.3 0 00-1.164 2.4 3.381 3.381 0 00.846 2.535c.628.725 1.432 1.115 2.411 1.162z\"},\"child\":[]}]})(props);\n};\nexport function SiOsano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.091A5.909 5.909 0 1017.909 12 5.91 5.91 0 0012 6.091M12 0A12 12 0 110 12 12 12 0 0112 0z\"},\"child\":[]}]})(props);\n};\nexport function SiOsf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.088 0a2.984 2.984 0 0 0-2.986 2.984 2.984 2.984 0 0 0 .525 1.68 2.654 2.654 0 0 1 2.482-1.734c1.121 0 2.083.706 2.467 1.695a2.984 2.984 0 0 0 .496-1.64A2.984 2.984 0 0 0 12.088 0zM5.65 2.666A2.984 2.984 0 0 0 2.666 5.65 2.984 2.984 0 0 0 5.65 8.635 2.984 2.984 0 0 0 8.635 5.65 2.984 2.984 0 0 0 5.65 2.666zm12.7 0a2.984 2.984 0 0 0-2.985 2.984 2.984 2.984 0 0 0 2.985 2.985 2.984 2.984 0 0 0 2.986-2.985 2.984 2.984 0 0 0-2.986-2.984zm-6.24.764a2.147 2.147 0 0 0-2.147 2.146 2.147 2.147 0 0 0 2.146 2.147 2.147 2.147 0 0 0 2.147-2.147 2.147 2.147 0 0 0-2.147-2.146zM9.112 6.04a3.497 3.497 0 0 1-2.984 3.06 2.147 2.147 0 0 0 1.363.493A2.147 2.147 0 0 0 9.64 7.447a2.147 2.147 0 0 0-.526-1.406zm5.782.047a2.147 2.147 0 0 0-.489 1.36 2.147 2.147 0 0 0 2.147 2.146 2.147 2.147 0 0 0 1.355-.489 3.494 3.494 0 0 1-3.013-3.017zM2.985 9.016A2.984 2.984 0 0 0 0 12a2.984 2.984 0 0 0 2.984 2.984 2.984 2.984 0 0 0 1.659-.505A2.655 2.655 0 0 1 2.922 12c0-1.131.719-2.102 1.723-2.479a2.984 2.984 0 0 0-1.66-.505zm18.03 0a2.984 2.984 0 0 0-1.673.52 2.655 2.655 0 0 1 1.71 2.474c0 1.12-.705 2.082-1.695 2.467a2.984 2.984 0 0 0 1.659.507A2.984 2.984 0 0 0 24 12a2.984 2.984 0 0 0-2.984-2.984zm-15.447.838A2.147 2.147 0 0 0 3.422 12a2.147 2.147 0 0 0 2.146 2.146A2.147 2.147 0 0 0 7.715 12a2.147 2.147 0 0 0-2.147-2.146zm12.838.01a2.147 2.147 0 0 0-2.146 2.146 2.147 2.147 0 0 0 2.146 2.146 2.147 2.147 0 0 0 2.147-2.146 2.147 2.147 0 0 0-2.147-2.147zM7.492 14.376a2.147 2.147 0 0 0-1.398.518 3.496 3.496 0 0 1 3.015 3.037 2.147 2.147 0 0 0 .53-1.409 2.147 2.147 0 0 0-2.147-2.146zm9.06 0a2.147 2.147 0 0 0-2.146 2.146 2.147 2.147 0 0 0 .492 1.362 3.495 3.495 0 0 1 3.047-2.996 2.147 2.147 0 0 0-1.392-.512zm-10.902.988a2.984 2.984 0 0 0-2.984 2.985 2.984 2.984 0 0 0 2.984 2.986 2.984 2.984 0 0 0 2.985-2.986 2.984 2.984 0 0 0-2.985-2.985zm12.7 0a2.984 2.984 0 0 0-2.985 2.985 2.984 2.984 0 0 0 2.985 2.986 2.984 2.984 0 0 0 2.986-2.986 2.984 2.984 0 0 0-2.986-2.985zm-6.35.908a2.147 2.147 0 0 0-2.146 2.147A2.147 2.147 0 0 0 12 20.566a2.147 2.147 0 0 0 2.146-2.146A2.147 2.147 0 0 0 12 16.273zm2.268 3.504A2.65 2.65 0 0 1 12 21.067a2.65 2.65 0 0 1-2.188-1.16 2.734 2.635 0 0 0-.46 1.458A2.734 2.635 0 0 0 12.086 24a2.734 2.635 0 0 0 2.734-2.635 2.734 2.635 0 0 0-.552-1.588z\"},\"child\":[]}]})(props);\n};\nexport function SiOsgeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.38742 0 9.88227 2.63735c-4.10198.91912-7.20472 4.44855-7.4712 8.7637h2.41025c.29326-3.50262 3.07658-6.28647 6.5661-6.57945V2.42416Zm1.21236 2.41136V4.8216c3.48923.29298 6.27256 3.0763 6.56554 6.56554H23.99972l-2.6368-1.50459c-.91883-4.10198-4.44798-7.205-8.76314-7.4712Zm-.61286 3.28917-.7459 4.55497 1.4918.9986.9986 1.4918 4.55497-.75926-4.55497-.7459 1.97106-2.95685-2.9563 1.9716zm.7459 5.55358L8.28415 8.28443l2.97022 4.4481 4.4481 2.97021zm-1.47844 1.47843-.99916-1.49124L5.7008 12l4.5544.7459-1.97105 2.95685 2.9435-1.97105.75926 4.55441.7587-4.55441zm.73254-1.26524c.27958 0 .51934.23976.51934.51934 0 .27987-.22636.5199-.51934.5199s-.51935-.24003-.51935-.5199c0-.29298.23976-.51934.51935-.51934zM.00028 12.5995l2.63735 1.5046c.91912 4.10226 4.44799 7.20555 8.76315 7.47174v-2.4108c-3.50263-.29298-6.28593-3.0763-6.5789-6.56554H2.42444Zm19.16504 0c-.29298 3.48923-3.0763 6.27256-6.56554 6.56554V24l1.5046-2.63735c4.10197-.91883 7.20527-4.448 7.47174-8.76315z\"},\"child\":[]}]})(props);\n};\nexport function SiOshkosh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.925 9.864V7.232c0-.414.183-.517.449-.517h5.335c.265 0 .428.145.428.537v2.612h-1.57V8.657c0-.227 0-.29-.225-.29H10.72c-.246 0-.246.063-.246.27v1.227h-1.55zm4.641 4.979v.48c0 .226-.041.288-.224.288h-2.54c-.306 0-.327 0-.327-.289v-.479h-1.55v1.925c0 .413.163.517.428.517h5.335c.245 0 .449-.145.449-.538v-1.904h-1.57zm-2.036-1.905h.876v1.384h1.047V12.31c0-.087-.043-.433-.342-.433h-.534l.897-1.492h-1.111l-.833 1.297v-1.297h-.983v3.937h.983v-1.384zm11.466-1.072h-.898v-1.47h-1.004v3.915h1.004v-1.298h.898v1.298H24v-3.915h-1.004v1.47zm-18.34-.043v-.39h1.773v-1.037H3.886a.381.381 0 0 0-.385.367v1.73c0 .217.086.37.278.37h1.496v.432H3.5v1.016h2.564c.214 0 .364-.194.364-.41v-1.71a.362.362 0 0 0-.364-.368h-1.41zm14.07 0v-.39h1.772v-1.037h-2.542a.381.381 0 0 0-.385.367v1.73c0 .217.086.37.278.37h1.496v.432H17.57v1.016h2.564c.214 0 .363-.194.363-.41v-1.71a.362.362 0 0 0-.363-.368h-1.41zm-9.8.021H8.05v-1.448H7.024v3.915H8.05v-1.298h.876v1.298H9.95v-3.915H8.926v1.448zm-6.02-1.066v3.15c0 .21-.173.383-.383.383H.383A.384.384 0 0 1 0 13.928v-3.15c0-.21.172-.382.383-.382h2.14c.21 0 .383.172.383.382zm-1 .804a.17.17 0 0 0-.17-.17H1.17a.17.17 0 0 0-.17.17v1.542c0 .094.077.17.17.17h.567a.17.17 0 0 0 .17-.17v-1.542zm15.07-.804v3.15c0 .21-.173.383-.383.383h-2.14a.384.384 0 0 1-.383-.383v-3.15c0-.21.172-.382.383-.382h2.14c.21 0 .382.172.382.382zm-1 .804a.17.17 0 0 0-.17-.17h-.567a.17.17 0 0 0-.17.17v1.542c0 .094.076.17.17.17h.567a.17.17 0 0 0 .17-.17v-1.542z\"},\"child\":[]}]})(props);\n};\nexport function SiOsmc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.768 12.002c0 5.935-4.829 10.768-10.768 10.768-5.935-.005-10.763-4.833-10.763-10.768 0-5.94 4.828-10.767 10.768-10.767 5.934 0 10.763 4.828 10.763 10.767m.292-4.673a11.913 11.913 0 0 0-2.57-3.813 11.963 11.963 0 0 0-3.813-2.57A11.857 11.857 0 0 0 12.005 0a11.926 11.926 0 0 0-8.486 3.516A11.963 11.963 0 0 0 .948 7.33C.318 8.811.002 10.38.002 12.002s.316 3.192.942 4.673a11.913 11.913 0 0 0 2.57 3.813A11.963 11.963 0 0 0 12 24c1.619 0 3.191-.32 4.673-.942a11.913 11.913 0 0 0 3.813-2.57 11.963 11.963 0 0 0 3.512-8.486c0-1.623-.311-3.191-.938-4.673M8.566 14.631V9.263l2.574 2.684-2.574 2.684zM7.327 6.296v11.422l8.116-8.455v6.767c0 .343.279.618.617.618a.622.622 0 0 0 .622-.622v-9.74l-4.677 4.77-4.678-4.76z\"},\"child\":[]}]})(props);\n};\nexport function SiOsu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.698 10.362c-.1855-.2184-.4189-.3905-.7002-.5162-.2813-.1257-.6104-.1885-.9874-.1885s-.7046.0628-.9829.1885-.5088.2978-.6912.5162c-.1827.2185-.3203.4773-.413.7765-.0928.2993-.1391.6194-.1391.9605 0 .3412.0463.6584.1391.9516.0927.2933.2303.5491.413.7675.1824.2185.4129.3891.6912.5116.2783.1226.6059.1841.9829.1841s.7061-.0615.9875-.1841c.2813-.1226.5146-.2931.7002-.5116.1855-.2184.3231-.4742.413-.7675.0897-.2931.1346-.6104.1346-.9516 0-.3411-.0449-.6612-.1346-.9605-.0899-.2992-.2276-.558-.4131-.7765zm-.965 2.8096c-.1467.2484-.3875.3725-.7227.3725-.3291 0-.567-.1241-.7136-.3725-.1467-.2483-.2199-.6059-.2199-1.0727s.0732-.8243.2199-1.0727c.1466-.2482.3844-.3725.7136-.3725.3352 0 .5759.1243.7227.3725.1466.2484.2199.6059.2199 1.0727.0001.4668-.0733.8245-.2199 1.0727zm11.8894-.8303-.0898-4.3896a4.5409 4.5409 0 0 1 .6912-.0539c.2334 0 .4668.0179.7002.0539l-.0898 4.3896c-.2096.0359-.41.0538-.6015.0538a3.4957 3.4957 0 0 1-.6103-.0538zm1.3196 1.4003c0 .2215-.0179.443-.0538.6643a4.2055 4.2055 0 0 1-.6553.0538 4.1414 4.1414 0 0 1-.6642-.0538 4.0882 4.0882 0 0 1-.0539-.6553c0-.2154.018-.4367.0539-.6643a4.0876 4.0876 0 0 1 .6552-.0538c.2155 0 .4368.018.6643.0538.0359.2276.0538.446.0538.6553zm-3.2226-4.0305c.2095 0 .422.018.6373.0539v4.4614c-.1916.0659-.4443.1302-.7585.193-.3141.0629-.6418.0943-.9829.0943-.3052 0-.5985-.024-.8798-.0718-.2813-.0479-.5282-.1495-.7405-.3052-.2125-.1555-.3815-.3829-.5072-.6823-.1257-.2991-.1885-.697-.1885-1.1938V9.765a3.8725 3.8725 0 0 1 .6373-.0539c.2094 0 .4219.018.6373.0539v2.4596c0 .2455.0194.4474.0584.6059.0388.1586.0988.2843.1795.377a.6606.6606 0 0 0 .3007.1974c.1197.0391.2603.0584.4219.0584.2214 0 .407-.0209.5566-.0628V9.765a3.8218 3.8218 0 0 1 .6284-.0539zm-4.3625 2.6841c.0538.1497.0808.3321.0808.5476 0 .2215-.0464.428-.1392.6194-.0928.1916-.2274.3577-.4039.4982-.1766.1407-.3905.2514-.6418.3322-.2514.0808-.5356.1212-.8528.1212a5.2984 5.2984 0 0 1-.395-.0135 3.1226 3.1226 0 0 1-.3456-.0448 4.0482 4.0482 0 0 1-.3277-.0763 3.9336 3.9336 0 0 1-.35-.1166 2.5768 2.5768 0 0 1 .0852-.4893 3.0737 3.0737 0 0 1 .1751-.4802c.1975.0779.3844.1362.561.1751.1765.039.3605.0584.5521.0584.0838 0 .175-.0075.2738-.0225a.9945.9945 0 0 0 .2737-.0808.6467.6467 0 0 0 .2109-.1526c.0569-.0628.0853-.145.0853-.2469 0-.1436-.0434-.2469-.1302-.3097-.0868-.0628-.208-.1181-.3636-.1661l-.5565-.1616c-.3352-.0956-.5969-.2379-.7855-.4263-.1885-.1886-.2827-.4713-.2827-.8484 0-.4547.163-.8108.4892-1.0682.3261-.2573.7705-.386 1.333-.386.2334 0 .4638.0211.6913.0629.2273.0419.4578.1048.6912.1885-.012.1557-.0419.3173-.0897.4847-.048.1676-.1048.3142-.1706.4398a3.58 3.58 0 0 0-.4757-.1571 2.18 2.18 0 0 0-.5477-.0673c-.2034 0-.3621.0314-.4758.0943-.1137.0629-.1705.1631-.1705.3007 0 .1317.0403.2244.1211.2783.0809.0538.1959.1048.3456.1526l.5117.1526c.1675.048.3187.1063.4533.1751.1347.0688.2498.1541.3456.2558.0958.1016.1707.2272.2246.3768zM12 0C5.3726 0 0 5.3726 0 12.0001 0 18.6273 5.3726 24 12 24c6.6275 0 12-5.3727 12-11.9999C24 5.3726 18.6275 0 12 0zm0 22.8c-5.9647 0-10.8-4.8354-10.8-10.7999C1.2 6.0353 6.0353 1.2 12 1.2s10.8 4.8353 10.8 10.8001C22.8 17.9646 17.9647 22.8 12 22.8z\"},\"child\":[]}]})(props);\n};\nexport function SiOtto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.893 7.95c-1.195 0-2.168.37-2.855 1.132.097-.265.149-.588.156-.968h-4.191c-.914 0-1.437.402-1.796 1.437l.185-1.437H8.157c-.775 0-1.307.37-1.5 1.096-.524-.84-1.457-1.26-2.636-1.26C1.779 7.95.32 9.246.059 12.01l-.033.35c-.228 2.47 1.067 3.69 3.08 3.69 2.243 0 3.702-1.307 3.963-4.072l.033-.348c.059-.634.015-1.185-.114-1.655h1.899l-.545 4.66c-.108.925.392 1.35 1.23 1.35.512 0 .686-.034.882-.066l.675-5.944h2.21l-.544 4.66c-.11.925.392 1.35 1.23 1.35.511 0 .685-.034.881-.066l.675-5.944h1.089c.376 0 .68-.087.915-.26-.342.604-.566 1.366-.654 2.296l-.032.348c-.229 2.471 1.066 3.69 3.08 3.69 2.243 0 3.701-1.306 3.962-4.07l.033-.349c.229-2.46-1.067-3.68-3.08-3.68zM4.86 11.477l-.022.262c-.152 1.872-.762 2.449-1.513 2.449-.675 0-1.153-.457-1.055-1.676l.021-.272c.153-1.862.762-2.45 1.513-2.45.664 0 1.154.468 1.056 1.687zm16.873 0-.022.262c-.153 1.872-.762 2.449-1.513 2.449-.675 0-1.154-.457-1.056-1.676l.022-.272c.152-1.862.762-2.45 1.513-2.45.664 0 1.154.468 1.056 1.687z\"},\"child\":[]}]})(props);\n};\nexport function SiOutline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 15.081 21.857 L 15.081 22.459 C 15.081 23.636 13.812 24.378 12.785 23.8 L 3.543 18.602 C 3.058 18.329 2.758 17.816 2.758 17.26 L 2.758 6.742 C 2.758 6.185 3.058 5.672 3.543 5.399 L 12.785 0.201 C 13.812 -0.378 15.082 0.365 15.081 1.544 L 15.081 2.145 L 16.178 1.814 C 17.167 1.517 18.163 2.258 18.162 3.29 L 18.162 3.915 L 19.511 3.746 C 20.431 3.632 21.243 4.348 21.242 5.275 L 21.242 18.726 C 21.243 19.652 20.431 20.37 19.511 20.254 L 18.162 20.085 L 18.162 20.71 C 18.163 21.743 17.167 22.484 16.178 22.186 L 15.081 21.857 Z M 15.081 20.249 L 16.621 20.71 L 16.621 3.29 L 15.081 3.753 L 15.081 20.249 Z M 18.162 5.467 L 18.162 18.534 L 19.702 18.726 L 19.702 5.275 L 18.162 5.467 Z M 2.758 16.801 L 2.758 7.2 L 2.758 16.801 Z M 4.298 6.742 L 4.298 17.26 L 13.54 22.459 L 13.54 1.544 L 4.298 6.742 Z M 5.838 7.765 L 7.379 6.995 L 7.379 17.005 L 5.838 16.235 L 5.838 7.765 Z\"},\"child\":[]}]})(props);\n};\nexport function SiOvercast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.389 24.018.017 18.671 0 12.061V12C0 5.35 5.351 0 12 0s12 5.35 12 12c0 6.649-5.351 12-12 12zm0-4.751l.9-.899-.9-3.45-.9 3.45.9.899zm-1.15-.05L10.4 20.9l1.05-1.052-.6-.649zm2.3 0l-.6.601 1.05 1.051-.45-1.652zm.85 3.102L12 20.3l-2 2.001c.65.1 1.3.199 2 .199s1.35-.05 2-.199zM12 1.5C6.201 1.5 1.5 6.201 1.5 12c-.008 4.468 2.825 8.446 7.051 9.899l2.25-8.35c-.511-.372-.809-.968-.801-1.6 0-1.101.9-2.001 2-2.001s2 .9 2 2.001c0 .649-.301 1.2-.801 1.6l2.25 8.35c4.227-1.453 7.06-5.432 7.051-9.899 0-5.799-4.701-10.5-10.5-10.5zm6.85 15.7c-.255.319-.714.385-1.049.15-.313-.207-.4-.628-.194-.941.014-.021.028-.04.044-.06 0 0 1.35-1.799 1.35-4.35s-1.35-4.35-1.35-4.35c-.239-.289-.198-.719.091-.957.02-.016.039-.031.06-.044.335-.235.794-.169 1.049.15.1.101 1.65 2.15 1.65 5.2S18.949 17.1 18.85 17.2zm-3.651-1.95c-.3-.3-.249-.85.051-1.15 0 0 .75-.799.75-2.1s-.75-2.051-.75-2.1c-.3-.301-.3-.801-.051-1.15.232-.303.666-.357.969-.125.029.022.056.047.082.074C16.301 8.75 17.5 10 17.5 12s-1.199 3.25-1.25 3.301c-.301.299-.75.25-1.051-.051zm-6.398 0c-.301.301-.75.35-1.051.051C7.699 15.199 6.5 14 6.5 12s1.199-3.199 1.25-3.301c.301-.299.801-.299 1.051.051.3.3.249.85-.051 1.15 0 .049-.75.799-.75 2.1s.75 2.1.75 2.1c.3.3.351.799.051 1.15zm-2.602 2.101c-.335.234-.794.169-1.05-.15C5.051 17.1 3.5 15.05 3.5 12s1.551-5.1 1.649-5.2c.256-.319.715-.386 1.05-.15.313.206.4.628.194.941-.013.02-.028.04-.043.059C6.35 7.65 5 9.449 5 12s1.35 4.35 1.35 4.35c.25.3.15.75-.151 1.001z\"},\"child\":[]}]})(props);\n};\nexport function SiOverleaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.3515.7484C19.1109-.5101 7.365-.982 7.3452 6.0266c-3.4272 2.194-5.6967 5.768-5.6967 9.598a8.373 8.373 0 0 0 13.1225 6.898 8.373 8.373 0 0 0-1.7668-14.7194c-.6062-.2339-1.9234-.6481-2.9753-.559-1.5007.9544-3.3308 2.9155-4.1949 4.8693 2.5894-3.082 7.5046-2.425 9.1937 1.2287 1.6892 3.6538-.9944 7.8237-5.0198 7.7998a5.4995 5.4995 0 0 1-4.1949-1.9328c-1.485-1.7483-1.8678-3.6444-1.5615-5.4975 1.057-6.4947 8.759-10.1894 14.486-11.6094-1.8677.989-5.2373 2.6134-7.5948 4.3837C18.015 9.1382 19.1308 3.345 22.3515.7484z\"},\"child\":[]}]})(props);\n};\nexport function SiOvh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.881 10.095l2.563-4.45C23.434 7.389 24 9.404 24 11.555c0 2.88-1.017 5.523-2.71 7.594h-6.62l2.04-3.541h-2.696l3.176-5.513h2.691zm-2.32-5.243L9.333 19.14l.003.009H2.709C1.014 17.077 0 14.435 0 11.555c0-2.152.57-4.17 1.561-5.918L5.855 13.1 10.6 4.852h6.961z\"},\"child\":[]}]})(props);\n};\nexport function SiOwasp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.897 20.503c-.384 0-1.782-2.489-1.97-3.198-.393-1.486-.308-2.114-.285-2.314.072-.613.667-.92.703-1.748.01-.256.14-1.535.243-2.534a1.723 1.723 0 0 1-.733-.343c.676.908-.32 1.995-1.767 3.443-1.536 1.536-4.945 2.961-4.945 2.961s1.425-3.41 2.961-4.945c1.13-1.129 2.04-1.983 2.816-1.983.22 0 .427.067.627.216a1.722 1.722 0 0 1-.343-.733c-.999.103-2.278.232-2.534.244-.829.036-1.135.63-1.747.702-.07.008-.194.024-.388.024-.36 0-.963-.054-1.926-.31-.772-.203-3.648-1.84-3.14-2.045.26-.105 1.087-.176 2.175-.176 1.047 0 2.337.066 3.596.23 1.57.205 3.01.463 3.992.656.016-.053.035-.104.058-.154l-1.004-.48s-.8-.92-.715-.984a.02.02 0 0 1 .012-.003c.126 0 .767.733.829.816l.605.202-.284-.249s-.388-1.438-.287-1.472h.004c.106 0 .459 1.25.489 1.34.07.06.303.152.596.32l-.308-.79s.14-1.305.243-1.305h.003c.105.021-.02 1.089-.047 1.221l.51.783a1.31 1.31 0 0 1 .463-.082c.184 0 .374.036.558.107-.236-.502-.218-1.025.095-1.338a.84.84 0 0 1 .353-.209.462.462 0 0 1 .457-.383c.127 0 .254.05.352.148a.497.497 0 0 1 .147.335c.151-.311.329-.73.317-.867-.03-.307-.386-.852-.39-.857a.076.076 0 0 1 .064-.119c.025 0 .05.012.064.035.016.023.381.582.414.927.018.198-.21.696-.333.95a2.227 2.227 0 0 1 .873.874c.245-.12.715-.334.927-.334l.024.001c.345.033.904.399.927.414a.076.076 0 0 1-.084.128c-.005-.004-.55-.36-.857-.39h-.015c-.15 0-.552.171-.852.317.12.004.242.053.335.147a.482.482 0 0 1 .012.681.459.459 0 0 1-.247.128.845.845 0 0 1-.21.354.924.924 0 0 1-.67.255c-.212 0-.441-.055-.667-.16.132.343.142.708.025 1.02l.783.51c.095-.019.666-.088.993-.088.13 0 .222.011.228.04.02.106-1.305.247-1.305.247l-.79-.308c.168.293.26.527.32.596.091.03 1.374.392 1.34.493-.004.012-.026.017-.063.017-.283 0-1.41-.304-1.41-.304l-.248-.284.202.605c.087.065.876.755.813.841-.004.005-.009.007-.016.007-.139 0-.967-.722-.967-.722l-.481-1.004a1.18 1.18 0 0 1-.154.058c.193.982.451 2.422.656 3.992.335 2.569.26 5.261.054 5.77-.016.041-.042.06-.076.06M12 24C5.373 24 0 18.627 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12m0-22.153C6.393 1.847 1.847 6.393 1.847 12S6.393 22.153 12 22.153 22.153 17.607 22.153 12 17.607 1.847 12 1.847Z\"},\"child\":[]}]})(props);\n};\nexport function SiOwncloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.1888 9.5202c-.1375-.2475-.22-.5317-.22-.825 0-.926.7517-1.6776 1.6776-1.6776.3392 0 .66.1008.9259.2842a3.5233 3.5233 0 0 0-.3117 1.4576c0 .0916.009.1925.009.2841-.0642 0-.1284-.0091-.2017-.0091a3.6837 3.6837 0 0 0-1.8793.4858zm-.3667 6.518c-.9717-.7059-1.6135-1.8518-1.6135-3.1444 0-.33.0458-.6509.1192-.9534H3.227C1.4485 11.9404 0 13.3888 0 15.1673c0 1.7785 1.4485 3.2269 3.227 3.2269.6784 0 1.3109-.2109 1.8334-.5684-.2108-.33-.3392-.7334-.3392-1.155 0-.22.0367-.431.1009-.6326zm.1375-.3484c.2933-.5592.8159-.9717 1.4484-1.1.055-.0092.1192-.0184.1834-.0275.0642-.0092.1191-.0092.1833-.0184h.0825c.1009 0 .1925.0092.2934.0184-.0275-.22-.0458-.44-.0458-.6693 0-1.0817.3575-2.0901.9534-2.906-.1375-.165-.2567-.3483-.3575-.5409l-.0825-.165c-.0275-.055-.055-.11-.0733-.165-.0917-.2292-.165-.4675-.2109-.715-.0825-.0092-.165-.0092-.2475-.0092-.605 0-1.1826.1558-1.6776.4309-.055.0275-.11.0641-.165.0916-.055.0367-.1009.0642-.1559.1009-.5684.3942-1.0176.9534-1.2742 1.6043-.0183.055-.0458.1191-.0642.1741-.0183.055-.0367.1192-.055.1742a3.4222 3.4222 0 0 0-.1284.926c.009 1.1367.5592 2.1542 1.3935 2.796zm11.3216-4.1344c.4675-.2475.99-.3942 1.5493-.4309-.1467-1.65-1.531-2.9519-3.2177-2.9519-.0642 0-.1284 0-.1925.0092.0275.1834.0458.3759.0458.5684 0 .3025-.0367.5959-.11.8709.8067.4492 1.485 1.1184 1.925 1.9343zm-8.608-2.301c.009.0642.0274.1283.0366.1925.0367.1467.0733.2934.1284.4309.0275.0641.0458.1191.0733.1833.0275.055.055.1192.0825.1742.0825.165.1833.3208.2933.4675.2292-.2567.4767-.495.7517-.7059.055-.0366.1009-.0733.1559-.11l.165-.11c.7425-.4767 1.6226-.7517 2.5577-.7609h.0642c.0642 0 .1191 0 .1833.0092.0825 0 .165.0092.2475.0183.5684.0459 1.1.1926 1.5951.4217.0458-.2291.0733-.4583.0733-.7058 0-.1834-.0183-.3576-.0458-.5226-.009-.0641-.0183-.1192-.0367-.1833-.009-.0642-.0275-.1192-.0458-.1742-.3667-1.3751-1.6134-2.3652-3.0894-2.3652-1.2192 0-2.2826.6784-2.8327 1.6685-.0275.055-.0642.11-.0917.165-.0275.0642-.055.1192-.0825.1833-.1466.3759-.2383.7793-.2383 1.2101 0 .11.009.2109.0183.3209.0183.0641.0275.1283.0367.1925zm14.5576 5.4637a1.426 1.426 0 0 0-.2842.0275c.009.0825.009.165.009.2384 0 1.0267-.4034 1.9618-1.0634 2.6585.3209.3758.8067.6142 1.3384.6142.9718 0 1.7693-.7976 1.7693-1.7693 0-.9717-.7975-1.7693-1.7693-1.7693zm-.6509.1192c0-.0642-.009-.1284-.009-.1925-.009-.0642-.009-.1284-.0183-.1834-.2475-1.65-1.641-2.9243-3.3369-2.9794h-.1833c-.0642 0-.1192 0-.1834.0092a3.5512 3.5512 0 0 0-1.3934.3942c.2567.5592.4034 1.1735.4309 1.8152 0 .0641.009.1283.009.1925v.055c0 .0825 0 .165-.009.2475-.0733 1.2192-.596 2.3102-1.4026 3.126a3.5036 3.5036 0 0 0 2.6127 1.1643c.8892 0 1.705-.3392 2.3284-.8892.0458-.0459.0917-.0825.1376-.1284.0458-.0458.0917-.0916.1283-.1375.5684-.6234.9076-1.4484.9076-2.356a.563.563 0 0 1-.0183-.1375zM7.8656 16.5057c-.0367-.055-.0642-.11-.1008-.165a4.9471 4.9471 0 0 1-.5409-1.3934c-.1192-.0275-.2383-.0367-.3575-.0367h-.0367c-.0642 0-.1192.0092-.1834.0092-.0642.0092-.1191.0184-.1833.0367-.5225.1192-.9534.4767-1.1826.9442-.0275.055-.055.11-.0733.1742-.0183.055-.0367.1192-.055.1742a1.681 1.681 0 0 0-.055.4308c0 .3392.1009.66.2659.926.0367.055.0642.1008.11.1558.0367.0458.0733.0917.1192.1375a1.764 1.764 0 0 0 1.2834.55c.7517 0 1.3934-.4675 1.6501-1.1275-.1925-.2017-.3759-.4126-.5317-.651a.5052.5052 0 0 1-.1284-.165zm8.6356-2.2643c.009-.0733.009-.1558.009-.2383v-.1192c0-.6509-.1375-1.2651-.385-1.8243l-.0825-.165-.0825-.165c-.4034-.7334-.9992-1.3476-1.7235-1.7602-.055-.0275-.11-.0641-.165-.0916l-.165-.0825c-.5592-.2659-1.1734-.4126-1.8243-.4309h-.2292c-.0825 0-.1558.0092-.2291.0092a4.3878 4.3878 0 0 0-1.9618.6325c-.055.0367-.11.0642-.1559.1009-.055.0366-.1008.0733-.1558.11-.3025.22-.5776.4675-.816.7517-.0366.0458-.0824.0916-.119.1467-.0368.0458-.0734.1008-.11.1466-.5318.7426-.8435 1.641-.8435 2.6219 0 .2567.0183.5134.0642.7517.009.0733.0275.1375.0367.2108.0183.0734.0367.1467.055.2292.11.4126.2842.7976.5042 1.1551.0367.055.0642.11.1008.1559.0367.055.0733.1008.11.1558.0826.1192.1742.2292.2659.33.055.055.1008.1192.1558.1742.0458.055.1009.1008.1559.1467.8067.7425 1.8885 1.2009 3.071 1.2009 1.1368 0 2.1819-.4217 2.9794-1.1184.0458-.0367.0917-.0825.1375-.1192.0458-.0458.0917-.0825.1375-.1283.66-.6876 1.1093-1.5768 1.2376-2.5669a7.8659 7.8659 0 0 0 .0275-.22z\"},\"child\":[]}]})(props);\n};\nexport function SiOxygen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.89 12c0-6.627-5.324-12-11.89-12S.109 5.373.109 12 5.433 24 12 24c2.014 0 3.91-.508 5.573-1.4.62.354 1.338.558 2.105.558 2.326 0 4.212-1.865 4.212-4.165 0-.946-.319-1.818-.857-2.517.552-1.383.857-2.894.857-4.476zm-21.402.005c0-5.448 4.269-9.864 9.535-9.864s9.535 4.416 9.535 9.864c0 1.07-.166 2.099-.471 3.063a4.23 4.23 0 0 0-1.408-.239c-2.326 0-4.212 1.865-4.212 4.165 0 .72.185 1.397.51 1.988a9.21 9.21 0 0 1-3.953.888c-5.267-.001-9.536-4.418-9.536-9.865zm17.191 9.864c-1.514.021-2.84-1.267-2.819-2.788 0-1.54 1.262-2.788 2.819-2.788 1.507-.025 2.843 1.27 2.819 2.788 0 1.54-1.263 2.788-2.819 2.788z\"},\"child\":[]}]})(props);\n};\nexport function SiOyo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.843 16.185C22.135 16.185 24 14.307 24 12c0-2.309-1.865-4.185-4.157-4.185-2.293 0-4.158 1.876-4.158 4.185 0 2.307 1.865 4.185 4.158 4.185zm0-5.677c.817 0 1.482.67 1.482 1.492s-.666 1.49-1.483 1.49A1.488 1.488 0 0 1 18.36 12c0-.824.665-1.493 1.482-1.493zM4.157 16.185c2.293 0 4.158-1.878 4.158-4.185 0-2.309-1.865-4.185-4.158-4.185C1.866 7.815 0 9.691 0 12c0 2.307 1.866 4.185 4.157 4.185zm0-5.677c.818 0 1.483.67 1.483 1.492s-.665 1.49-1.483 1.49A1.488 1.488 0 0 1 2.677 12c0-.824.664-1.493 1.48-1.493zm7.84-.094L10.722 7.87H7.733l2.791 5.564v2.62h2.948v-2.62l2.791-5.564h-2.99l-1.275 2.544Z\"},\"child\":[]}]})(props);\n};\nexport function SiP5Dotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.345 9.122v.784h.035c.07-.11.161-.22.274-.333a1.85 1.85 0 0 1 .416-.305 2.557 2.557 0 0 1 1.253-.31 2.632 2.632 0 0 1 1.964.854c.242.266.429.578.561.936.133.36.2.745.2 1.159 0 .413-.065.801-.194 1.163a2.856 2.856 0 0 1-.549.948 2.642 2.642 0 0 1-.866.644c-.34.16-.723.24-1.152.24-.398 0-.763-.083-1.094-.246a1.86 1.86 0 0 1-.766-.668h-.024v3.558H0V9.12zm3.276 2.785c0-.219-.034-.435-.1-.65a1.82 1.82 0 0 0-.298-.579 1.503 1.503 0 0 0-.503-.416 1.53 1.53 0 0 0-.714-.157 1.44 1.44 0 0 0-.691.163 1.77 1.77 0 0 0-.52.421 1.795 1.795 0 0 0-.328.585 1.97 1.97 0 0 0 0 1.305 1.807 1.807 0 0 0 .328.58 1.687 1.687 0 0 0 .52.414c.203.105.434.159.691.159a1.483 1.483 0 0 0 1.217-.586c.132-.171.231-.366.297-.585a2.248 2.248 0 0 0 .1-.654zm13.682-3.054v6.223c0 .335-.028.653-.082.952a2.018 2.018 0 0 1-.31.785 1.623 1.623 0 0 1-.62.532c-.262.132-.602.199-1.024.199a2.676 2.676 0 0 1-.35-.024 3.507 3.507 0 0 1-.281-.047l.117-1.192a1.762 1.762 0 0 0 .386.047.752.752 0 0 0 .397-.094.627.627 0 0 0 .234-.258c.055-.109.09-.235.105-.38.016-.144.024-.298.024-.461V8.853zm4.784 1.765a1.621 1.621 0 0 0-.514-.427 1.449 1.449 0 0 0-.714-.18c-.226 0-.432.046-.62.14a.483.483 0 0 0-.28.467.47.47 0 0 0 .31.462c.206.09.508.182.906.276.21.047.423.109.638.187.214.077.41.18.585.31a1.53 1.53 0 0 1 .427.48c.109.19.163.423.163.695 0 .344-.064.634-.192.872-.13.238-.301.43-.515.58a2.169 2.169 0 0 1-.75.32 3.884 3.884 0 0 1-.883.101 3.507 3.507 0 0 1-1.275-.24 2.694 2.694 0 0 1-1.03-.685l.925-.866a1.828 1.828 0 0 0 1.44.703c.1 0 .204-.012.31-.035a1.052 1.052 0 0 0 .29-.112.607.607 0 0 0 .218-.205.58.58 0 0 0 .081-.316.52.52 0 0 0-.32-.503c-.216-.1-.538-.202-.967-.303a4.635 4.635 0 0 1-.614-.182 2.004 2.004 0 0 1-.531-.292 1.35 1.35 0 0 1-.375-.451 1.42 1.42 0 0 1-.14-.667c0-.311.064-.58.192-.806a1.66 1.66 0 0 1 .51-.556c.21-.145.447-.252.713-.322a3.184 3.184 0 0 1 .819-.105c.405 0 .801.07 1.187.21.386.14.692.355.919.643zm-8.29 2.931l.837-.252.164.505-.833.283.517.734-.436.316-.544-.721-.53.701-.423-.322.517-.708-.84-.302.165-.506.843.271v-.872h.564v.872zm-2.887-2.644a2.309 2.309 0 0 0-.602-.819 2.679 2.679 0 0 0-.907-.509 3.517 3.517 0 0 0-1.13-.175c-.148 0-.313.008-.497.024a2.435 2.435 0 0 0-.474.082l.082-1.79h3.382V6.453H7.05l-.14 4.527a3.487 3.487 0 0 1 .426-.175 6.564 6.564 0 0 1 .491-.147 4.487 4.487 0 0 1 .515-.099 3.78 3.78 0 0 1 .497-.035c.227 0 .45.025.668.076.218.05.415.14.591.269.174.129.317.298.426.509.11.21.164.476.164.795 0 .25-.04.474-.123.673a1.413 1.413 0 0 1-.333.497 1.443 1.443 0 0 1-.49.304c-.19.07-.388.106-.598.106-.375 0-.698-.1-.972-.299a1.631 1.631 0 0 1-.584-.79l-.015.006-1.016.952c.205.335.47.616.797.838.475.324 1.06.486 1.754.486a3.417 3.417 0 0 0 1.17-.2 2.705 2.705 0 0 0 1.609-1.491c.16-.362.24-.773.24-1.233 0-.422-.072-.794-.216-1.118z\"},\"child\":[]}]})(props);\n};\nexport function SiPackagist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.214 23.975c-.098-.053-.329-.062-1.615-.062h-1.26l-.017-.088-.096-.431a3.622 3.622 0 0 1-.07-.354c.005-.007-.012-.056-.038-.107l-.048-.094-.547.085c-.301.046-.598.1-.659.116-.1.03-.11.03-.103.004.038-.14.044-.201.028-.266-.018-.07-.017-.072.238-.645.276-.622.266-.594.237-.634-.018-.025-.042-.02-.307.07-.159.05-.294.093-.301.09a16.82 16.82 0 0 1 .414-.732c.451-.773.566-.976.566-1.003 0-.01-.12-.146-.271-.304-.15-.157-.311-.329-.357-.384a.584.584 0 0 0-.112-.11c-.05-.017-.264-.231-.738-.734a16.196 16.196 0 0 0-.525-.542c-.062-.05-.077-.074-.107-.175a6.511 6.511 0 0 0-.291-.714l-.096-.201v-.178c0-.271-.056-.542-.277-1.331l-.054-.191-.087-.01c-.193-.017-.283-.123-.431-.504a6.231 6.231 0 0 0-.231-.472c-.1-.191-.221-.428-.271-.532l-.086-.185-.08-.01a.72.72 0 0 0-.361.05c-.12.05-.345.063-.618.037l-.399-.038-.199-.02-.107-.191c-.161-.284-.161-.285-.238-.324-.09-.046-.161-.046-.572 0l-.325.035-.245-.035c-.645-.094-.797-.166-.797-.375 0-.042-.045-.261-.102-.489-.13-.528-.218-1.126-.195-1.332.034-.294.273-.996.636-1.87l.142-.341.023-.547c.142-3.274.178-3.76.284-3.951.035-.062.468-.431.644-.552.335-.224 1.503-.8 2.802-1.379l.384-.171.195-.012.193-.01.522.329.521.329.423-.2.658-.308c.235-.108.236-.11.367-.253.184-.201.492-.566.592-.703.118-.161.395-.388.816-.672.147-.098.185-.116.569-.264l.231-.09h.49c.451 0 .502.003.655.037.358.078.652.193.686.267.022.05.07.08.187.12.14.048.311.168 1.224.863.489.373.472.366 1.539.719l.298.1.176.211c.201.241.358.404.404.419.07.022.485-.08 1.009-.249.266-.085.303-.093.351-.077.03.01.175.02.321.02.271.005.514.034 1.117.137.153.027.281.048.283.048.002 0 .244.419.537.933.293.512.61 1.048.705 1.192.167.249.174.264.189.375.026.191.08 1.008.09 1.309l.023.896c.02.843.036 1.04.09 1.154.093.199.276.747.572 1.719l.12.401.008.930-.14.728-.158.813-.016.083-.439.264-.441.265-.321-.016c-.179-.01-.335-.016-.349-.016-.03 0-.066.113-.135.411-.04.176-.042.178-.092.187l-.666.106c-.92.145-1.037.181-1.341.424-.264.211-.264.208-.556 1.681a16.97 16.97 0 0 1-.185.856c-.105.317-.941 1.708-1.246 2.074l-.165.199.064.228c.035.126.073.265.083.309.016.07.314 1.206.421 1.609l.038.14-.201-.084-.328-.136a.549.549 0 0 0-.13-.046c-.003.004.033.15.08.327.08.288.187.763.177.773-.003 0-.15-.008-.331-.022a6.185 6.185 0 0 0-.381-.02l-.055.005-.181.662c-.1.363-.184.664-.187.667-.01.007-.536-.02-1.005-.05-.54-.035-.7-.032-.836.017-.125.045-.241.05-.306.014l.002-.001zm1.957-.348c0-.026.023-.181.05-.345.027-.165.05-.337.05-.383 0-.056.013-.116.04-.175.02-.05.036-.09.033-.093-.002-.002-.368-.03-.813-.062-.637-.046-.86-.067-1.053-.103l-.244-.046-.58.072c-.414.05-.588.078-.607.095-.02.02-.201.042-.712.094-.376.038-.717.075-.756.083l-.072.013.004.083c.003.065.02.115.083.231.06.113.088.191.12.331.02.1.042.184.046.188.003.003.973.014 2.157.023 2.034.016 2.154.018 2.191.045.046.035.064.02.064-.05l-.001-.001zm-4.782-1.179c.873-.123 1.226-.168 1.572-.194.387-.028.897-.087 1.259-.143.057-.01.248-.02.424-.026l.321-.01.377.097.379.098.682.04c.377.023.687.04.69.036a2.93 2.93 0 0 0-.07-.229c-.042-.122-.11-.333-.155-.468l-.077-.244-.231-.072-.231-.073-.156.066-.156.065-1.776.057-1.774.058-.118-.06-.118-.057H9.8l-.269.597c-.148.328-.271.602-.276.609-.008.016-.124.03 1.134-.147zm6.127-1.036c0-.017-.431-1.435-.444-1.457-.007-.012-.05.024-.115.096l-.105.115.154.568.153.568.169.06c.181.064.191.067.191.05zm-6.788-.713l.191-.355-.057-.083c-.032-.046-.063-.08-.068-.073-.007.006-.142.238-.303.515s-.297.511-.302.517c-.004.01.072-.026.171-.075l.176-.09.192-.356zm2.957-.072c.106-.306.193-.562.193-.57a.856.856 0 0 0-.198-.075 3.495 3.495 0 0 1-.201-.066.578.578 0 0 1 .063-.11l.068-.104.405-.02c.706-.033 1.114-.155 1.51-.451.15-.11.214-.128.296-.085.07.04.12.128.106.191-.01.042-.028.056-.241.197-.201.13-.876.428-1.114.492-.136.035-.289.12-.323.181-.04.066-.159.92-.132.947.006.006 1.148-.04 1.33-.056.11-.008.117-.01.161-.067.024-.032.13-.153.238-.267.106-.113.301-.333.431-.488.13-.154.328-.381.437-.502.171-.189.263-.318.619-.857.878-1.324.937-1.441 1.003-1.969.045-.375.067-.447.214-.697.146-.249.294-.965.213-1.033-.072-.06-.153-.032-.427.15-.512.341-1.039.841-1.114 1.053-.034.095-.223.373-.285.418l-.519.369c-.582.414-.52.349-.849.879l-.11.174-.327.173-.328.171-.616.015c-1.23.028-1.288.022-1.943-.207l-.431-.153-.344-.303c-.191-.168-.53-.47-.754-.672l-.407-.368-.142-.321a28.99 28.99 0 0 1-.497-1.15c-.084-.226-.09-.231-.275-.428-.341-.361-.529-.757-.757-1.612-.045-.165-.078-.259-.1-.281-.018-.016-.028-.022-.023-.012.006.01 0 .046-.012.082-.157.441-.209.768-.249 1.559-.02.359-.02.351.096.983.225 1.226.296 1.5.409 1.565.04.024.165.146.291.286.341.376.448.485.604.61.285.231.735.71.901.961.04.06.102.14.135.177.15.163.462.6.899 1.259l.314.475.13-.007c.09-.006.329.012.74.054.336.035.635.064.665.065h.056l.191-.555zm-2.276.455a1.103 1.103 0 0 0-.122-.201c-.075-.107-.14-.195-.15-.191-.01.003-.138.268-.181.374-.01.031.341.044.453.018zm2.766-2.758c.046-.033.127-.055.376-.105.311-.06.375-.083.628-.211a.309.309 0 0 0 .092-.11.74.74 0 0 1 .11-.138c.04-.036.055-.062.055-.098 0-.078.227-.275 1.091-.946a.9.9 0 0 0 .245-.268c.074-.11.158-.211.263-.309.085-.08.291-.284.459-.451.168-.171.391-.376.497-.462a3.44 3.44 0 0 0 .241-.204c.03-.032.157-.106.335-.196.159-.08.295-.156.301-.168.018-.03.09-.06.508-.217.889-.331 1.479-.492 1.79-.492.08 0 .096-.052.067-.219-.068-.395-.296-.552-.808-.552h-.181l-.063-.067c-.06-.065-.067-.087-.124-.325-.115-.485-.185-.532-.742-.516-.435.013-.552.06-1.754.718-.602.331-1.035.702-1.543 1.33a.964.964 0 0 1-.11.123c-.311-.002-.303-.472.017-.949l.106-.157-.084-.035c-.236-.107-.532-.123-.74-.04-.291.116-1.023.525-1.117.622-.098.103-.187.106-.187.007 0-.122.114-.285.289-.411.04-.032.11-.088.153-.127a1.63 1.63 0 0 1 .435-.261c.147-.06.142-.052.09-.15-.14-.255-.525-.546-.915-.689-.05-.02-.169-.07-.263-.112-.221-.102-.331-.124-.672-.136-.244-.01-.283-.014-.267-.033.074-.09.311-.133.79-.144l.384-.01.248.11c.697.301.963.462 1.074.645.076.128.084.133.194.112.266-.05.518.032.765.249.135.12.184.13.274.063a.773.773 0 0 0 .273-.502c.035-.271-.06-1.136-.153-1.385-.07-.188-.057-.196.087-.046.171.178.171.178.326-.11.04-.076.103-.176.138-.221.291-.367.281-1.047-.017-1.347-.15-.15-.404-.291-.815-.446-.403-.155-.47-.211-.77-.628-.361-.506-.425-.567-.724-.708-.617-.293-2.101-.562-2.57-.467-.441.09-1.04.447-1.32.789-.175.213-.63.377-1.274.462-.84.108-1.254.828-1.041 1.806.04.191.038.189.165.034.405-.505 1.209-.976 1.93-1.13.575-.12 1.475-.126 2.01-.01l.096.022h-.144c-.75.01-1.904.257-2.722.584l-.176.07-.016.087c-.015.083-.022.093-.281.351-.536.539-.69.796-.775 1.286-.04.239.036.589.15.678.027.022.047.05.042.06a2.825 2.825 0 0 0-.026.225c-.076.845.323 1.866.96 2.453l.144.133.108-.09c.317-.259.859-.614.888-.582.043.05.034.09-.033.155-.085.082-.196.226-.496.642l-.259.361.007.104c.01.13.076.337.147.451.03.046.09.15.136.229.167.284.321.52.424.642.096.117.184.241.284.401.028.046.05.064.07.06.04-.01.09.026.279.204.186.171.083.122.845.408.823.309 1.131.369 1.465.286.09-.022.097-.022.168.015.09.047.09.047.163-.002v.005zm-6.348-3.82c.003-.003.02-.103.037-.225.017-.12.053-.286.08-.367l.193-.644c.177-.602.159-.55.178-.52.025.042.015-.01-.016-.074a1.69 1.69 0 0 1-.066-.171l-.034-.108.034-.588.034-.589-.055-.397a6.234 6.234 0 0 0-.064-.406c-.032-.032-.464.145-.599.245-.175.13-.401.679-.492 1.194-.12.694-.008 1.647.226 1.916.07.08.226.378.357.68l.034.077.075-.01a.347.347 0 0 0 .078-.013zm14.775-1.31c.126-.088.238-.177.246-.196.015-.037.213-1.099.281-1.507l.042-.257-.042-.447-.042-.446-.125-.48c-.124-.475-.128-.484-.264-.755-.216-.431-.194-.236-.379-3.358l-.035-.578-.053-.055c-.07-.075-.337-.458-.963-1.388a14.255 14.255 0 0 0-.546-.781 16.04 16.04 0 0 0-.821-.146c-.395-.055-.736-.025-1.055.094-.128.048-.14.05-.201.03-.138-.047-.293-.003-.569.164l-.145.087-.166-.221c-.191-.251-.194-.255-.57-.502-.64-.416-.716-.449-1.632-.692-.353-.094-.311-.062-.993-.742l-.535-.532-.585.008c-.989.015-1.482.06-1.6.142-.712.508-1.094.888-1.538 1.531l-.103.15-.386.184c-.422.203-1.034.392-1.201.369-.092-.012-.421-.18-.658-.341-.438-.291-.739-.326-1.088-.124-.284.163-.483.269-1.286.675-.861.437-.965.496-1.246.705l-.164.123-.143.288c-.311.626-.305.602-.321 1.415-.03 1.52-.035 2.008-.016 2.122.03.179.036.374.016.505-.028.171-.387 1.387-.585 1.977-.066.199-.135.52-.159.736-.01.07 0 .175.036.391.026.164.07.451.097.64.066.464.12.562.358.64.209.07.309.063.732-.045.793-.203.813-.197 1.134.378.078.137.112.184.143.193.105.03.725.01.866-.027l.194-.05.056-.015-.02-.096a2.414 2.414 0 0 1-.023-.624c.024-.268.064-.506.153-.889.004-.017-.006-.004-.022.03l-.03.06-.035-.157a1.876 1.876 0 0 0-.291-.672 6.435 6.435 0 0 1-.421-.87l-.093-.231.01-.161c.05-.718.224-1.186.597-1.595.227-.248.293-.351.325-.522.025-.13.106-.807.171-1.395l.057-.547.241-.715c.13-.394.231-.722.225-.728a9.003 9.003 0 0 0-.693-.321c-.124-.035-.412-.023-.632.027-.705.161-1.224.532-1.25.893-.007.08-.362.827-.395.828-.02 0-.074-.098-.093-.169-.02-.074-.012-.115.073-.351.032-.088.097-.307.145-.487.12-.443.14-.477.405-.599l.467-.221c.675-.325 1.657-.578 1.899-.49.143.05.359.226.552.446l.092.104-.09.246c-.458 1.266-.575 1.617-.606 1.823-.071.458-.066 1.465.008 1.695.058.188.054.195-.223.377-.477.316-.953.919-.973 1.233-.013.211.09.634.221.888.052.105.589.913.606.913.006 0 .03-.04.057-.09a1.9 1.9 0 0 1 .704-.773c.316-.204.317-.204.341-.313.161-.725.425-1.144.88-1.385l.197-.105-.095-.035c-.145-.053-.271-.143-.428-.308-.697-.733-.966-1.566-.688-2.127.02-.04.052-.122.072-.184.245-.755.931-1.164 1.842-1.101.896.063 1.294.296 1.618.94.311.624.294 1.191-.055 1.751l-.066.106.06-.058c.068-.063.766-.374.946-.421.268-.07.659-.03 1.894.193.499.09.584.125.823.341.05.048.09.076.09.064s-.01-.104-.025-.206c-.083-.617.034-1.401.269-1.786.284-.466 1.375-.883 1.974-.754.301.065.769.355 1.021.635.032.036.06.056.06.045 0-.01-.02-.325-.04-.699a11.12 11.12 0 0 1-.03-.689c.008-.006.144-.084.306-.174l.293-.161.052.04c.044.032.169.063.78.191l.763.164c.027.006.085.09.216.307.097.164.271.448.388.632.425.68.502.856.411.941-.093.087-.108.086-.169-.007-.03-.045-.201-.314-.379-.595a16.068 16.068 0 0 0-.351-.539c-.02-.02-.998-.346-1.487-.497-.239-.073-.492 1.151-.434 2.099.02.319.02.321.291.57.169.156.858 1.126.993 1.397l.067.136-.006.826-.005.825-.105.177c-.441.742-.694 1.021-.985 1.096-.161.04-.339.175-.324.241.005.022.013.154.02.291.006.167.016.253.027.253.01 0 .073-.01.14-.023.455-.087.958-.057 1.261.073.11.047.116.064.128.344.017.375.042.407.353.457.348.055.468.114.695.344l.128.13.462.002.462.002.245-.168zM9.954 3.808a13.19 13.19 0 0 0-.833-.494c-.338-.171-.351-.201-.117-.309.341-.157.474-.11.908.315.168.165.369.349.448.411.156.118.328.275.328.297 0 .027-.115.14-.14.14a8.7 8.7 0 0 1-.594-.36zm3.987.19a.518.518 0 0 1-.235-.191l-.042-.07.03-.068c.04-.095.076-.13.231-.231.074-.05.159-.11.188-.134.159-.14 1.179-.558 1.358-.558.1 0 .13.02.176.125a.63.63 0 0 0 .065.12c.05.056-.06.115-.341.179-.15.034-.502.176-.818.328l-.258.125-.148.201c-.08.11-.15.201-.15.201L13.94 4l.001-.002zm2.25 8.609c.117-.103.612-.334.898-.418.104-.03.171-.307.171-.72v-.234l-.092-.191c-.097-.201-.203-.378-.221-.371-.006.002-.203.251-.437.556l-.427.552.01.249.01.444c0 .225-.006.218.09.134l-.002-.001zm1.639-1.799l.344-.132.112-.169c.391-.592.512-.901.529-1.379l.01-.308-.228-.361c-.386-.607-.636-1.018-.722-1.187a.36.36 0 0 0-.062-.1c-.062-.04-.245.12-.458.401-.15.201-.226.254-.674.478-.592.295-.876.341-1.292.213a7.003 7.003 0 0 0-.552-.156c-.042 0 .133.206.294.347.126.11.221.161.346.181.191.03.547.231 1.094.612.303.214.261.133.291.55l.027.351.08.078c.1.098.214.251.381.51.07.112.13.205.132.205l.348-.134zm-1.719-3.119c.446-.164.704-.665.527-1.023-.194-.391-.634-.702-.998-.702-.425 0-.979.482-.979.853 0 .008.058-.038.127-.104.329-.311.692-.346 1.05-.105.385.258.469.77.173 1.064-.078.08-.067.08.1.02v-.003zm-7.704-.16a.963.963 0 0 1-.026-.396c.145-.778 1.09-1.005 1.51-.364l.064.1-.009-.129c-.069-.971-1.094-1.234-1.726-.443-.356.447-.299 1.13.105 1.274.103.036.107.034.08-.042h.002zm8.86-.527c.261-.439.226-1.053-.088-1.53-.421-.642-1.084-.841-1.806-.542-.559.231-.776.517-.825 1.081-.022.251-.012.281.058.176.238-.354.644-.547 1.094-.522.712.038 1.24.539 1.385 1.316l.034.183.008.04.04-.05a1.56 1.56 0 0 0 .1-.154v.002zm-1.431.09a.125.125 0 0 0 .04-.096.127.127 0 0 0-.04-.095.128.128 0 0 0-.096-.04c-.04 0-.07.013-.097.04a.13.13 0 0 0-.038.096c0 .123.146.185.233.098l-.002-.003zm-8.218-.209c.138-.773.732-1.289 1.48-1.289.485 0 .838.274 1.043.809.054.14.06.143.087.035.07-.274-.01-.848-.163-1.149-.26-.518-1.032-.779-1.751-.591-.415.106-.9.64-.997 1.097-.1.468-.038.849.191 1.167.077.108.077.108.11-.08v.001zm1.928 0a.128.128 0 0 0 .04-.096c0-.04-.013-.07-.04-.097-.027-.028-.056-.041-.096-.041s-.07.013-.096.04a.128.128 0 0 0-.04.097.136.136 0 0 0 .232.097z\"},\"child\":[]}]})(props);\n};\nexport function SiPacker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.844 0v3.38l5.75 3.32v10.148l2.705 1.552c1.676.967 3.045.388 3.045-1.285V9.668c-.014-1.687-1.382-3.832-3.059-4.799L7.844 0zM4.656 2.932v16.574L12.436 24V7.426l-7.78-4.494Z\"},\"child\":[]}]})(props);\n};\nexport function SiPackt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.965 4.898c-.707 0-1.344.152-1.908.452a3.901 3.901 0 0 0-.891.642v-.937H7.488v14.047h2.657V14.1c.26.249.559.463.898.638.572.294 1.213.44 1.92.44.914 0 1.73-.224 2.453-.674 1.237-.77 2.328-2.27 2.328-4.453 0-2.206-1.09-3.704-2.328-4.477-.721-.45-1.537-.676-2.451-.676zM3.8 5.055 0 9.79l3.822 5.133H7.09L3.012 9.79l3.875-4.736Zm13.312 0 3.875 4.736-4.078 5.133h3.268L24 9.79l-3.8-4.736Zm-4.619 2.318c1.007 0 1.788.493 2.2 1.275.452.86.395 2.034 0 2.78-.221.419-.84 1.277-2.2 1.277-.49 0-.925-.11-1.299-.336a2.338 2.338 0 0 1-.879-.941c-.211-.403-.316-.869-.316-1.399s.105-.978.316-1.38c.393-.748 1.156-1.276 2.178-1.276z\"},\"child\":[]}]})(props);\n};\nexport function SiPaddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.363 7.904v.849a3.95 3.95 0 0 1 3.65 2.425c.198.476.3.987.299 1.502h.791c0-1.04.416-2.037 1.157-2.772a3.962 3.962 0 0 1 2.792-1.149V7.91a3.959 3.959 0 0 1-3.65-2.425 3.893 3.893 0 0 1-.299-1.502h-.791c0 1.04-.416 2.037-1.157 2.772a3.96 3.96 0 0 1-2.792 1.149M13.105 2.51H6.312V0h6.793c4.772 0 8.532 3.735 8.532 8.314 0 4.58-3.76 8.314-8.532 8.314H9.156V24H6.312v-9.882h6.793c3.319 0 5.688-2.352 5.688-5.804 0-3.451-2.37-5.804-5.688-5.804\"},\"child\":[]}]})(props);\n};\nexport function SiPaddlepaddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.17185 4.8315c-.6339 0-1.15033.51448-1.15033 1.14833s.51643 1.15033 1.15033 1.15033 1.14833-.51643 1.14833-1.15033-.51448-1.14833-1.14833-1.14833zm9.9916 0c-.6339 0-1.15033.51448-1.15033 1.14833s.51643 1.15033 1.15033 1.15033c.6339 0 1.14833-.51643 1.14833-1.15033S22.7973 4.8315 22.16345 4.8315zM6.67238 8.00711c-.0331 0-.06258.01885-.07617.04883l-1.95298 4.29274H.75286c-.05136 0-.09805.02932-.11913.07616l-.62691 1.39832c-.02155.04809.01363.10351.0664.10351h3.85327l-2.32796 5.1208c-.02545.0559.01465.12108.07617.12108h1.6561c.0331 0 .06438-.02064.07812-.05078l4.9977-10.99134c.02529-.0559-.01481-.11913-.07617-.11913zm3.4783 0c-.02484 0-.0483.01431-.0586.0371l-.58004 1.28513c-.01905.04216.01237.08984.05859.08984h1.02334c.21703-.00312.37745.01142.55466.03906.82499.12818 1.33602.73302 1.32412 1.5351-.01124.75786-.64035 1.36123-1.39832 1.36123H7.40865c-.06245 0-.11876.03691-.14452.09374l-.60935 1.33972c-.0295.0648.0188.13671.08984.13671h4.28495c1.77679 0 3.1942-1.5331 2.99592-3.2986-.1616-1.43981-1.34012-2.56875-2.81033-2.61894-.01327-.00047-.02641.0011-.03906.0039a.06152.06152 0 0 0-.02148-.0039zm6.4762 0c-.0331 0-.06438.0187-.07812.04883l-4.9977 10.99134c-.0253.0559.01676.12108.07812.12108h1.6561c.03294 0 .06259-.0208.07617-.05078l4.9997-10.99134c.02545-.0559-.01661-.11913-.07813-.11913zm3.4783 0c-.02498 0-.04633.01431-.05664.0371l-.58005 1.28513c-.01889.04216.01058.08984.05664.08984h1.02334c.21717-.00312.37744.01142.55465.03906.825.12818 1.33782.73302 1.32612 1.5351-.0114.75786-.64034 1.36123-1.39831 1.36123h-3.66778c-.06246 0-.11876.03691-.14452.09374l-.60935 1.33972c-.02934.0648.01864.13671.08984.13671h4.28494c1.7766 0 3.1961-1.5331 2.99782-3.2986-.16159-1.43981-1.34222-2.56875-2.81233-2.61894-.01343-.00047-.02642.0011-.03906.0039a.0611.0611 0 0 0-.02148-.0039z\"},\"child\":[]}]})(props);\n};\nexport function SiPaddypower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.014 3.713a18.383 18.383 0 0 0-1.626.084c-.816.082-1.714.245-2.53.408l.57 6.368.246 1.96.654 6.857 1.55-.083 1.796-.162v-.082l-.408-4.081v-.573a19.201 19.201 0 0 0 2.04-.408 10.164 10.164 0 0 0 1.633-.816 5.257 5.257 0 0 0 1.714-2.041 6.53 6.53 0 0 0 .409-2.774 4.751 4.751 0 0 0-2.858-4.082 7.347 7.347 0 0 0-2.694-.572 18.383 18.383 0 0 0-.496-.003zm-10.775.98a18.383 18.383 0 0 0-1.626.085A14.026 14.026 0 0 0 0 5.105l.572 6.366.163 1.96.654 6.857 1.551-.082 1.795-.164-.327-4.081v-.571a19.197 19.197 0 0 0 2.041-.408 10.164 10.164 0 0 0 1.633-.817 5.257 5.257 0 0 0 1.714-2.04 5.967 5.967 0 0 0 .408-2.695A4.653 4.653 0 0 0 7.43 5.267a7.347 7.347 0 0 0-2.695-.57 18.383 18.383 0 0 0-.496-.004zM15.1 6.731a1.233 1.233 0 0 1 .085.006 3.265 3.265 0 0 1 1.468.325 2.065 2.065 0 0 1 1.062 1.633 2.596 2.596 0 0 1-.164 1.143 1.861 1.861 0 0 1-.571.817 2.449 2.449 0 0 1-1.306.572 1.78 1.78 0 0 1-.653.081l-.409-4.49a1.233 1.233 0 0 1 .488-.087zm-10.942.98a1.233 1.233 0 0 1 .17.005 3.265 3.265 0 0 1 1.47.327 2.065 2.065 0 0 1 1.06 1.633 4.947 4.947 0 0 1-.163 1.143 1.861 1.861 0 0 1-.573.816 2.449 2.449 0 0 1-1.305.57 1.78 1.78 0 0 1-.653.082l-.408-4.49a1.233 1.233 0 0 1 .402-.086zm17.801 7.27A2.04 2.04 0 1 0 24 17.023a2.04 2.04 0 0 0-2.04-2.04z\"},\"child\":[]}]})(props);\n};\nexport function SiPagekit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.401 0v24h9.6v-3.527H5.929V3.526h12.146v13.421h-6.073v3.525H21.6V0H2.401z\"},\"child\":[]}]})(props);\n};\nexport function SiPagerduty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.965 1.18C15.085.164 13.769 0 10.683 0H3.73v14.55h6.926c2.743 0 4.8-.164 6.61-1.37 1.975-1.303 3.004-3.484 3.004-6.007 0-2.716-1.262-4.896-3.305-5.994zm-5.5 10.326h-4.21V3.113l3.977-.027c3.62-.028 5.43 1.234 5.43 4.128 0 3.113-2.248 4.292-5.197 4.292zM3.73 17.61h3.525V24H3.73Z\"},\"child\":[]}]})(props);\n};\nexport function SiPagespeedinsights (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.363 1.636H1.635C.732 1.636 0 2.37.001 3.273L0 20.727v.003c0 .903.733 1.634 1.635 1.634h20.73c.904 0 1.635-.734 1.635-1.637V3.273c.016-.89-.76-1.64-1.637-1.637zM3.979 2.886c.492-.507 1.279.28.77.772-.491.508-1.278-.279-.77-.771zM1.8 2.89c.507-.509 1.28.265.772.771-.493.502-1.274-.28-.772-.771zm21.7 17.838c.012.611-.524 1.148-1.137 1.136H1.635A1.137 1.137 0 0 1 .5 20.727L.501 4.91H23.5v15.819zM11 16.159l5.946-4.577c.235-.2.576.129.389.372l-.002-.002-3.936 6.35a1.638 1.638 0 0 1-2.448.405c-.785-.668-.811-1.835.05-2.548zm4.763-.75c.09-.168 2.002-3.181 2.06-3.35 2.056 1.813 3.029 4.382 2.898 7.026h-3.819c.073-1.39-.29-2.678-1.139-3.676zm-8.679 3.682H3.278c-.357-7.022 7.148-11.735 13.39-7.92l-3.461 2.618c-3.3-.762-6.364 1.71-6.123 5.302z\"},\"child\":[]}]})(props);\n};\nexport function SiPagseguro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.482 9.712c1.64 0 3.108.69 4.1 1.813.044-.388.087-.777.087-1.208C21.67 5.007 17.353.69 12 .69c-5.353 0-9.67 4.316-9.67 9.626 0 .345 0 .69.044 1.036a8.688 8.688 0 017.943-5.137c2.848 0 5.352 1.381 6.95 3.496h.215zm-7.122-2.72c-4.36 0-7.9 3.54-7.9 7.9s3.54 7.9 7.9 7.9c2.158 0 4.1-.864 5.525-2.245a5.53 5.53 0 01-3.928-5.31c0-2.676 1.9-4.92 4.446-5.438-1.468-1.684-3.626-2.806-6.043-2.806zM4.79 21.583A11.958 11.958 0 010 12C0 5.353 5.396 0 12 0s12 5.396 12 12-5.396 12-12 12c-1.554 0-3.022-.302-4.36-.82-1.079-.389-2.028-.907-2.849-1.597zm12.777-1.51a4.827 4.827 0 004.835-4.835 4.827 4.827 0 00-4.835-4.834 4.827 4.827 0 00-4.834 4.834 4.827 4.827 0 004.834 4.835Z\"},\"child\":[]}]})(props);\n};\nexport function SiPalantir (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.147 18L12 21.178 3.853 18 2.5 20.343 12 24l9.5-3.657L20.147 18zM12 0a9.5 9.5 0 1 0 0 19 9.5 9.5 0 0 0 0-19zm0 16.078a6.568 6.568 0 1 1 0-13.136 6.568 6.568 0 0 1 0 13.136z\"},\"child\":[]}]})(props);\n};\nexport function SiPaloaltonetworks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.278 15.443 1.705 1.705-3.426 3.426-3.427-3.426 8.592-8.591-1.705-1.705 3.426-3.426 3.427 3.426-8.592 8.591zM0 12.017l3.426 3.426 8.591-8.59-3.426-3.427L0 12.017zm11.983 5.13 3.426 3.427L24 11.983l-3.426-3.426-8.591 8.59z\"},\"child\":[]}]})(props);\n};\nexport function SiPaloaltosoftware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.995.005c-.58 0-1.158.228-1.615.685L.685 10.385c-.913.913-.913 2.318 0 3.231l.842.843 8.01-8.15a3.435 3.435 0 0 1 4.847 0l8.079 8.08.842-.843c.914-.843.915-2.248.072-3.161L13.612.69a2.279 2.279 0 0 0-1.617-.685zm0 6.463c-.58 0-1.158.228-1.615.684L.685 16.848c-.913.913-.913 2.318 0 3.23l3.231 3.232c.914.913 2.318.913 3.232 0l4.847-4.846 4.848 4.846c.913.913 2.318.913 3.231 0l3.231-3.231c.914-.843.915-2.318.072-3.231l-9.765-9.696a2.279 2.279 0 0 0-1.617-.684z\"},\"child\":[]}]})(props);\n};\nexport function SiPanasonic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.157 11.4852c.0399-.6914-.4884-1.2842-1.1798-1.324H0v3.58h1.084v-1.1h.66c.166 0 .333-.02.496-.059.497-.103.87-.52.917-1.025v-.072zm-1.081.005a.35.35 0 0 1-.337.301c-.081.007-.15.007-.23.007h-.425v-.777h.632a.36.36 0 0 1 .36.326.658.658 0 0 1 0 .143zm3.6781 1.45c0-.278-.01-.511-.01-.786a1.654 1.654 0 0 0-.057-.42.666.666 0 0 0-.332-.43 1.046 1.046 0 0 0-.316-.118 2.63 2.63 0 0 0-1.065-.02c-.1.015-.197.043-.29.082a.77.77 0 0 0-.455.5.597.597 0 0 0-.024.261.124.124 0 0 0 .014.048l.86.02a.386.386 0 0 1 .025-.153.262.262 0 0 1 .162-.162.49.49 0 0 1 .342 0 .23.23 0 0 1 .156.157.15.15 0 0 1-.02.13.22.22 0 0 1-.1.078l-.074.024c-.113.03-.228.055-.343.075a6.7928 6.7928 0 0 0-.276.05 3.2483 3.2483 0 0 0-.365.095.787.787 0 0 0-.295.173.621.621 0 0 0-.205.393.792.792 0 0 0 .012.299.71.71 0 0 0 .509.54c.277.084.574.068.841-.043a.83.83 0 0 0 .344-.248c.018.059.038.117.057.176.012.032.03.061.051.087h.948a.414.414 0 0 1-.068-.207c-.0138-.2-.0225-.4004-.026-.601zm-.956-.088a.431.431 0 0 1-.067.193.406.406 0 0 1-.182.145.627.627 0 0 1-.21.054.453.453 0 0 1-.163-.013.244.244 0 0 1-.12-.074.204.204 0 0 1-.057-.106.17.17 0 0 1 .064-.174.314.314 0 0 1 .105-.063c.095-.035.19-.066.288-.093.118-.034.232-.078.342-.131a.907.907 0 0 1 0 .262zm3.262-1.712a1.038 1.038 0 0 0-.755.054 1.662 1.662 0 0 0-.393.262l-.023-.27h-.919v2.559h.982v-1.42a.413.413 0 0 1 .06-.221.383.383 0 0 1 .482-.16c.081.032.142.1.167.183.013.043.02.087.02.131v1.484h1.01v-1.652a1.205 1.205 0 0 0-.06-.394.822.822 0 0 0-.572-.558l.001.002zm5.9501 1.25a1.076 1.076 0 0 0-.42-.231l-.106-.03a4.543 4.543 0 0 0-.58-.122 1.8502 1.8502 0 0 1-.156-.03.3.3 0 0 1-.068-.024.117.117 0 0 1-.059-.152v-.008a.222.222 0 0 1 .131-.105.491.491 0 0 1 .316 0c.107.03.178.133.17.244h.902a.9.9 0 0 0-.055-.31.551.551 0 0 0-.184-.255.848.848 0 0 0-.242-.138 1.196 1.196 0 0 0-.262-.073 2.627 2.627 0 0 0-.642-.037 2.033 2.033 0 0 0-.366.054 1.082 1.082 0 0 0-.444.211.693.693 0 0 0-.28.526.72.72 0 0 0 .052.316.675.675 0 0 0 .393.393c.09.036.183.064.278.082l.554.104c.07.01.138.028.205.051.06.018.103.07.113.131a.19.19 0 0 1-.052.176.304.304 0 0 1-.17.086.492.492 0 0 1-.262-.025.368.368 0 0 1-.105-.061.263.263 0 0 1-.089-.131.41.41 0 0 1-.02-.138h-.932v.055a.773.773 0 0 0 .256.555.99.99 0 0 0 .426.24c.329.098.676.12 1.014.065.16-.023.313-.073.455-.148a.935.935 0 0 0 .176-.118.778.778 0 0 0 .246-.852.632.632 0 0 0-.193-.302v.001zm6.1982-2.226h.957v.676h-.957v-.676zm0 1.024h.957v2.558h-.957v-2.558zm2.872 1.505a1.1666 1.1666 0 0 1-.018.154.393.393 0 0 1-.096.199.299.299 0 0 1-.185.098.364.364 0 0 1-.316-.1.53.53 0 0 1-.152-.26 1.168 1.168 0 0 1 .012-.703.41.41 0 0 1 .178-.232.36.36 0 0 1 .407.017c.092.068.153.17.17.284h.874a.78.78 0 0 0-.09-.417 1.12 1.12 0 0 0-.724-.564 1.711 1.711 0 0 0-.806-.02c-.48.094-.863.456-.984.93a1.383 1.383 0 0 0-.031.621c.023.149.075.291.152.42.095.171.227.32.385.435.189.148.416.239.655.262.18.02.36.012.538-.025a1.24 1.24 0 0 0 .685-.38.928.928 0 0 0 .263-.719h-.917zm-3.704-1.553a1.038 1.038 0 0 0-.755.054 1.656 1.656 0 0 0-.393.262l-.031-.27h-.9181v2.559h.984v-1.428a.425.425 0 0 1 .06-.221.393.393 0 0 1 .484-.16c.08.033.14.1.164.183a.453.453 0 0 1 .021.14v1.483h1.016v-1.652a1.2 1.2 0 0 0-.06-.394.822.822 0 0 0-.572-.558v.002zm-7.8792 1.8c0-.278-.01-.511-.012-.786 0-.142-.018-.283-.054-.42a.675.675 0 0 0-.333-.43 1.056 1.056 0 0 0-.315-.118 2.637 2.637 0 0 0-1.067-.02c-.1.015-.196.043-.289.082a.766.766 0 0 0-.456.5.617.617 0 0 0-.025.261.149.149 0 0 0 .015.048l.86.02a.384.384 0 0 1 .024-.153.262.262 0 0 1 .163-.162.49.49 0 0 1 .342 0 .23.23 0 0 1 .156.157.15.15 0 0 1-.021.13.213.213 0 0 1-.098.078l-.075.024c-.113.03-.228.055-.343.075a6.3141 6.3141 0 0 0-.274.05 3.2042 3.2042 0 0 0-.366.095.762.762 0 0 0-.296.173.617.617 0 0 0-.21.393.753.753 0 0 0 .012.299c.056.26.252.469.508.54.277.084.575.068.842-.043a.808.808 0 0 0 .335-.245c.017.058.036.116.057.173.01.032.029.062.052.087h.948a.418.418 0 0 1-.054-.207 13.4697 13.4697 0 0 1-.026-.601zm-.97-.084a.435.435 0 0 1-.07.189.371.371 0 0 1-.167.145.656.656 0 0 1-.205.054.466.466 0 0 1-.175-.015.248.248 0 0 1-.122-.073.214.214 0 0 1-.055-.105.172.172 0 0 1 .057-.17.344.344 0 0 1 .105-.063 4.83 4.83 0 0 1 .288-.093c.118-.035.233-.079.344-.131.01.087.01.175 0 .262zm5.483-1.72a1.858 1.858 0 0 0-.577 0 1.33 1.33 0 0 0-.747.371 1.21 1.21 0 0 0-.383.798c-.02.185-.003.372.048.551.073.278.239.522.47.693.147.117.32.197.504.235.26.055.527.055.787 0 .184-.038.359-.118.507-.235.23-.17.3961-.415.4681-.693a1.42 1.42 0 0 0 .05-.55 1.208 1.208 0 0 0-.383-.799 1.33 1.33 0 0 0-.743-.37l-.001-.001zm.06 1.814a.388.388 0 0 1-.513.193.371.371 0 0 1-.194-.193.903.903 0 0 1-.072-.246 1.42 1.42 0 0 1 .012-.515.657.657 0 0 1 .1-.247.374.374 0 0 1 .622 0 .627.627 0 0 1 .105.247c.034.17.038.344.01.515a.885.885 0 0 1-.07.246z\"},\"child\":[]}]})(props);\n};\nexport function SiPandas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.922 0h2.623v18.104h-2.623zm-4.126 12.94h2.623v2.57h-2.623zm0-7.037h2.623v5.446h-2.623zm0 11.197h2.623v5.446h-2.623zM4.456 5.896h2.622V24H4.455zm4.213 2.559h2.623v2.57H8.67zm0 4.151h2.623v5.447H8.67zm0-11.187h2.623v5.446H8.67Z\"},\"child\":[]}]})(props);\n};\nexport function SiPandora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.882 0v24H8.32a1.085 1.085 0 001.085-1.085v-4.61h1.612c7.88 0 11.103-4.442 11.103-9.636C22.119 2.257 17.247 0 12.662 0H1.882Z\"},\"child\":[]}]})(props);\n};\nexport function SiPantheon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.604 0L9.75 5.171H7.018l.904 2.276h5.535zm4.202 7.973l.724 1.752h3.09c.066 0 .223-.086.223-.877 0-.79-.157-.875-.224-.875zm-4.367 0c-.306 0-.474 0-.612.456-.166.544-.185 1.571-.185 3.57 0 2 .02 3.028.185 3.572.138.456.306.456.612.456h3.486l-1.727-4.202v.014l-.816-2.116h1.912l.884 2.119 1.826-.016-1.591-3.853zm5.235 2.1l.724 1.753h2.562c.068 0 .223-.086.223-.876s-.156-.876-.223-.876zm-3.742.076l2.633 6.403H8.346L14.297 24l-2.146-5.172h2.731l-.913-2.276H12.7l-2.634-6.403zm2.374 2.026l.724 1.752h3.93c.067 0 .223-.086.223-.876s-.155-.876-.223-.876zm.868 2.1l.723 1.752h2.722c.067 0 .223-.085.223-.875s-.156-.876-.223-.876zm4.624 1.2v.511h.103v-.391l.129.391h.096l.125-.391v.391h.107v-.511h-.15l-.127.394-.127-.394zm-.466 0v.092h.144v.42h.117v-.42h.144v-.092z\"},\"child\":[]}]})(props);\n};\nexport function SiPaperlessngx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.338 23.028c-.117-.56-.353-1.678-.382-1.678-4.977-2.975-4.388-8.128-2.739-11.073.353 3.71 6.92 6.273 3.092 10.808-.03.059.177.765.353 1.413.766-1.296 1.915-2.856 1.856-3.004C3.806 8.01 18.53 7.126 21.592 0c1.385 6.89-.706 17.55-12.544 20.26-.06.03-2.15 3.71-2.238 3.74 0-.059-.884-.03-.766-.324.059-.177.177-.412.294-.648zm-.147-2.768c1.502-1.737-.265-4.712-1.325-5.683 1.796 3.092 1.679 4.888 1.325 5.683z\"},\"child\":[]}]})(props);\n};\nexport function SiPaperspace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.832 10.848c0 3.04-1.883 6.402-4.471 8.879C16.774 22.202 13.275 24 10.093 24c-3.213 0-5.806-1.766-7.44-4.178C1.026 17.42.168 14.2.168 11.226c0-3.04 1.617-5.934 3.945-7.936C6.437 1.292 9.651 0 12.81 0c3.162 0 5.991 1.211 7.916 3.13 1.927 1.919 3.107 4.706 3.107 7.718Zm-11.023-9.69c-.446 0-.89.027-1.328.078.273-.02.547-.032.822-.034 2.931.017 5.67 1.04 7.58 2.725-1.77-1.753-4.154-2.768-7.074-2.768Zm-2.716 21.683a8.9 8.9 0 0 0 1.972-.23 9.39 9.39 0 0 1-1.844.192 8.132 8.132 0 0 1-4.128-1.11c1.125.732 2.445 1.148 4 1.148Zm9.052-18.02c-1.76-1.566-4.101-2.482-6.842-2.46-.91-.007-1.794.1-2.64.306.614-.096 1.25-.145 1.902-.145 2.748 0 5.439.772 7.36 2.208.388.29.75.615 1.083.97a8.986 8.986 0 0 0-.863-.88ZM10.22 21.643c.966 0 1.95-.178 2.922-.502-.928.24-1.869.369-2.785.369-1.347 0-2.56-.265-3.611-.736.99.557 2.138.869 3.474.869Zm8.01-15.986c-1.757-1.313-4.077-1.977-6.666-1.977-2.572 0-4.638.738-6.166 2.132-1.524 1.392-2.364 3.285-2.364 5.792 0 2.547.586 4.687 1.825 6.275 1.234 1.58 2.96 2.472 5.498 2.472 2.564 0 5.178-1.038 7.248-2.752 2.067-1.71 3.401-3.9 3.401-6.374 0-2.481-1.03-4.262-2.777-5.568Zm-9 .732h4.719c1.765 0 3.217 1.131 3.217 3.08 0 2.475-1.95 3.961-4.377 3.961H10.35l-.696 3.99H7.287L9.232 6.39Zm3.45 5.149c1.207 0 2.149-.62 2.149-1.874 0-.975-.757-1.377-1.595-1.377h-1.978l-.572 3.246h1.996v.005Z\"},\"child\":[]}]})(props);\n};\nexport function SiPaperswithcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2v20h4.4v-2.4h-2V4.4h2V2H0Zm19.6 0v2.4h2v15.2h-2V22H24V2h-4.4Zm-16 3.6v12.8H6V5.6H3.6Zm7.2 0v12.8h2.4V5.6h-2.4Zm7.2 0v12.8h2.4V5.6H18Zm-10.8.8v11.2h2.4V6.4H7.2Zm7.2 0v11.2h2.4V6.4h-2.4Z\"},\"child\":[]}]})(props);\n};\nexport function SiParamountplus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.347 21.373c.057-.084.151-.314-.025-.74l-.53-1.428c-.073-.182.084-.293.19-.173 0 0 1.004 1.157 1.264 1.64l.495.822c.425.028 1.6.06 2.732.06a3.26 3.26 0 0 1-.316-.364c-1.93-2.392-3.154-3.724-3.166-3.737-.391-.426-.572-.508-.87-.643a4.82 4.82 0 0 1-.138-.065v.364c0 .047-.057.073-.086.022l-2.846-5.001a1.598 1.598 0 0 0-.508-.587l-.277-.194-1.354 3.123c.212 0 .354.216.27.409l-1.25 2.893h1.147c.443 0 .883.087 1.294.255l.302.125s-.913 1.878-.913 2.867c0 .181.028.362.075.534h2.104l-.096-.595s1.266.294 2.502.413M12 2.437c-6.627 0-12 5.373-12 12 0 2.669.873 5.133 2.346 7.126.503-.218.783-.542.983-.791l2.234-2.858a.467.467 0 0 1 .179-.138l.336-.146 3.674-4.659.534-.417 1.094-1.524a.482.482 0 0 1 .101-.102l.478-.347a.34.34 0 0 1 .398-.004l.578.407c.308.216.557.504.726.84l2.322 4.077c.051.09.09.129.182.174.454.227.732.268 1.33.913.277.304 1.495 1.666 3.203 3.784.236.318.538.588.963.783A11.948 11.948 0 0 0 24 14.437c0-6.627-5.373-12-12-12M3.236 15.1l-.778-.253-.48.662v-.818l-.778-.253.778-.253v-.818l.48.662.778-.253-.48.662Zm-.185 2.676-.252.778-.253-.778h-.818l.661-.481-.253-.777.663.48.66-.48-.252.777.662.481Zm.156-6.195.253.778-.661-.48-.663.48.253-.778-.66-.48h.817l.253-.778.252.777h.818Zm1.314-1.76L4.04 9.16l-.778.253.48-.661-.48-.663.778.254.48-.662v.818l.778.253-.777.252Zm2.045-2.862-.253.777-.252-.777h-.818l.662-.48-.253-.778.661.48.661-.48-.252.777.662.48Zm2.577-1.313-.48.661V5.49l-.779-.254.778-.253v-.817l.48.66.78-.253-.481.663.48.66zm3.265-.75.253.778-.661-.48-.662.48.252-.777-.66-.481h.818L12 3.637l.252.778h.818zm2.93.595v.816l-.481-.661-.777.252.48-.662-.48-.662.777.253.48-.66v.817l.779.252zm5.426 8.285.778.253.48-.662v.818l.778.253-.778.253v.818l-.48-.662-.778.253.48-.662zm-3.077-6.04-.253-.777h-.818l.662-.48-.253-.778.662.48.662-.48-.254.778.662.48h-.818zm1.792 2.086v-.818l-.777-.252.777-.253V7.68l.481.662.777-.254-.48.663.48.66-.777-.252zm1.469 1.278.253-.777.254.777h.816l-.66.481.252.778-.662-.48-.661.48.253-.778-.662-.48zm.506 6.676-.253.778-.253-.778h-.817l.662-.481-.253-.777.66.48.663-.48-.253.777.661.481zm-12.08-.615.76-1.588c.024-.048-.032-.108-.067-.067l-.664.668c-.313.329-.847 1.25-.95 1.421l-.808 1.335a.109.109 0 0 1 .1.162l-.739 1.238c-.18.309.145.523.189.452 1.157-1.868 1.832-1.719 1.832-1.719l.387-.897c.022-.047-.001-.1-.05-.12-.12-.05-.316-.27.01-.885z\"},\"child\":[]}]})(props);\n};\nexport function SiParitysubstrate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.254 0L1.795 6.038l-.254-.152-.008.008v.652l.576-.33-.254-.144L12.313.034zm1.677.965L3.472 7.004l-.212-.128-1.727 1v.601l2.252-1.296-.211-.118 10.458-6.038zm1.677.966L5.148 7.969l-.169-.102-3.446 1.99v.56l3.93-2.27-.17-.093 10.45-6.039zm1.668.957l-6.512 3.777-.33-.186L8.57 7.554v.381L6.826 8.943l-.127-.076-5.166 2.972v.517l5.606-3.244-.127-.076 1.558-.898v.398l1.152.66L8.51 9.9l-.085-.051-6.885 3.98v.458l7.283-4.2-.084-.052 1.21-.703 1.178.686-2.55 1.465v.271L1.542 15.82v.407L8.58 12.16v.313l1.092.627-8.13 4.7v.178l.161.093 8.282-4.776 1.127.652-2.532 1.448v.33l-5.471 3.16.27.151 5.2-3.006v.381l3.414-1.973 1.024.593-1.008.584v.102l-7.19 4.15.23.126L12 15.98v.102l1.414-.813 1.118.643-1.82 1.059.16.093-.864.5v.144l-5.47 3.159.186.11 5.284-3.049v.144l1.305-.754.254.153 1.82-1.05v-.305l7.08-4.082v-.517l-7.071 4.09v-.186l-1.118-.643 8.19-4.726v-.457l-8.58 4.954-1.024-.593 2.532-1.473v-.34l7.071-4.072v-.407l-7.071 4.082v-.254l-1.143-.66 8.214-4.743-.008-.203-.153-.085-8.375 4.827-1.084-.618 2.54-1.474v-.372l5.505-3.176-.271-.152-5.242 3.023v-.313L11.975 9.51l-1.178-.686 8.376-4.835-.229-.127-8.358 4.835-1.144-.66 1.855-1.076-.347-.203 6.512-3.76zM11.983 10.5l1.084.627-1.211.703-1.33.762-1.084-.618zm1.389.813l1.152.66-2.558 1.466-1.135-.652L12 12.11zm9.087 2.134L12 19.486v.195l-3.743 2.16.135.084L12 19.842v.195l10.459-6.03zm0 1.931L12 21.417v.246L9.968 22.84l.101.05L12 21.782v.237l10.459-6.03zm0 1.94L12 23.347v.296l-.313.187.059.025.254-.144V24l10.459-6.03Z\"},\"child\":[]}]})(props);\n};\nexport function SiParrotsecurity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0Zm6.267 2.784L13.03 5.54l8.05-.179-8.05 3.333-2.154 2.688 5.007 9.038-1.536-1.605 1.645 3.456-4.937-5.527-6.268-6.28L2.77 12.11l.7-3.442 4.018-.261.823-4.06Z\"},\"child\":[]}]})(props);\n};\nexport function SiParsedotly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 0a.459.459 0 0 0-.29.1s-.724.561-1.193.967c-.47.406-.922.886-.922.886a.926.926 0 0 0-.271.615l.108 3.344c0 .2-.157.205-.226 0l-.868-2.106c-.06-.187-.21-.214-.334-.054a12.945 12.945 0 0 0-1.121 1.573 12.61 12.61 0 0 0-.777 1.717.76.76 0 0 0 .1.624l1.762 2.341c.124.16.093.363-.082.253l-1.844-.994c-.17-.11-.312-.033-.307.163a6.85 6.85 0 0 0 .307 1.898 7.581 7.581 0 0 0 2.034 2.91 14.342 14.342 0 0 1 2.83 4.159 3.544 3.544 0 0 1 2.16 0 14.478 14.478 0 0 1 2.811-4.15 7.69 7.69 0 0 0 1.926-2.63c.252-.7.39-1.435.415-2.178v-.01c0-.195-.132-.271-.307-.162l-1.835.994c-.17.11-.215-.093-.09-.253l1.762-2.332a.714.714 0 0 0 .127-.298.762.762 0 0 0-.018-.335c-.23-.626-.504-1.23-.823-1.817a13.322 13.322 0 0 0-1.075-1.482c-.125-.155-.27-.124-.335.063l-.859 2.124c-.064.187-.23.183-.226 0l.1-3.335a.944.944 0 0 0-.253-.642s-.513-.512-.922-.886A25.168 25.168 0 0 0 12.299.1a.459.459 0 0 0-.29-.1zM4.108 14.77c-.129 0-.173.081-.1.182l.778 1.41c.073.105.002.2-.109.117L2.98 15.114a1.399 1.399 0 0 0-.524-.208 1.385 1.385 0 0 0-.56.028c-.378.059-.923.171-.923.171a.235.235 0 0 0-.144.09.258.258 0 0 0-.055.172s.045.549.09.913a1.338 1.338 0 0 0 .462.977l1.771 1.256c.11.073.03.181-.09.136l-1.582-.353c-.12-.045-.181-.001-.144.136 0 0 .258.714.488 1.184.195.368.413.721.66 1.058a.523.523 0 0 0 .162.126.535.535 0 0 0 .2.063l1.906.046c.125 0 .152.144.037.18l-1.22.452c-.12.037-.13.13-.028.208.357.253.75.465 1.157.624.72.231 1.484.289 2.233.18a8.986 8.986 0 0 0 1.636-.379 3.669 3.669 0 0 1-.036-.46 3.51 3.51 0 0 1 .307-1.42c.2-.446.494-.838.859-1.166h-.018a.558.558 0 0 0-.027-.19 4.887 4.887 0 0 0-.796-2.07 5.275 5.275 0 0 0-.913-.913c-.1-.077-.194-.042-.199.081l-.09 1.284c0 .123-.144.128-.18 0l-.57-1.799a.5.5 0 0 0-.29-.29 9.056 9.056 0 0 0-1.166-.315c-.524-.092-1.283-.145-1.283-.145zm15.783.028s-.76.044-1.284.136a9.184 9.184 0 0 0-1.175.316.523.523 0 0 0-.172.117.521.521 0 0 0-.117.172l-.57 1.8c-.037.118-.176.113-.18 0l-.091-1.285c0-.123-.089-.158-.19-.08a5.34 5.34 0 0 0-.922.912 4.829 4.829 0 0 0-.795 2.052v.19a3.469 3.469 0 0 1 1.157 2.594 3.585 3.585 0 0 1-.027.452 9.08 9.08 0 0 0 1.636.389 4.983 4.983 0 0 0 2.233-.19c.407-.16.791-.362 1.148-.615.1-.077.092-.171-.028-.208l-1.22-.452c-.115-.036-.079-.176.045-.18l1.899-.046a.549.549 0 0 0 .37-.198c.227-.328.425-.667.606-1.022.235-.456.497-1.184.497-1.184.037-.119-.034-.181-.154-.136l-1.573.353c-.124.046-.196-.063-.09-.136l1.78-1.256a1.338 1.338 0 0 0 .461-.976c.047-.379.091-.913.091-.913l-.009-.018a.258.258 0 0 0-.054-.163.248.248 0 0 0-.145-.1s-.544-.108-.922-.162a1.4 1.4 0 0 0-.56-.027c-.186.03-.366.097-.524.198l-1.7 1.374c-.101.082-.182-.003-.108-.126l.777-1.41c.078-.1.039-.177-.09-.172zm-7.883 4.646c-.455 0-.905.13-1.283.38a2.28 2.28 0 0 0-.85 1.021 2.268 2.268 0 0 0 .506 2.486 2.319 2.319 0 0 0 2.504.497 2.294 2.294 0 0 0 1.42-2.106c0-.604-.238-1.19-.67-1.618a2.305 2.305 0 0 0-1.627-.66z\"},\"child\":[]}]})(props);\n};\nexport function SiPassport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.875 0A9.6 9.6 0 0 0 2.4 9.475h4.8A4.81 4.81 0 0 1 11.875 4.8zm.25 0v4.8A4.81 4.81 0 0 1 16.8 9.475h4.8A9.6 9.6 0 0 0 12.125 0zM2.4 9.725V24H12v-4.8H7.2V9.724zm9.6 9.474a9.599 9.599 0 0 0 9.6-9.474h-4.8A4.807 4.807 0 0 1 12 14.4z\"},\"child\":[]}]})(props);\n};\nexport function SiPastebin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.02 0a2.096 2.096 0 00-.722.123L2.624 5.003A2.1 2.1 0 001.35 7.69l5.324 14.915a2.101 2.101 0 002.685 1.272l7.746-2.765c.792-.307 1.345-.534 1.464-.608.543-.314.962-.817 1.964-2.334.904-1.362 1.859-3.323 2.097-4.28.24-.97.239-1.48-.502-3.674l-3.146-8.82A2.102 2.102 0 0017.02 0zm-.083.414c.72-.031 1.4.403 1.657 1.12l3.68 10.357c.103.433-.281 1.147-.736 1.35-.2.1-.71.293-1.142.429-1.397.463-2.05.878-2.458 1.547-.363.591-.315 1.18.16 2.377.462 1.142.533 1.864.225 2.4-.113.188-.301.322-1.354.733l-.002-.005-7.746 2.765a1.68 1.68 0 01-2.157-1.022L1.74 7.55a1.68 1.68 0 011.022-2.157L16.437.513c.165-.06.334-.092.5-.099zM15.9 2.25l-1.203.885.187.519.523-.316.803 2.235-.696.249c.045.145.216.642.238.664l2.166-.78-.238-.662-.687.248zm-3.29 1.182l-1.203.885.186.519.524-.316.803 2.235-.697.25c.046.144.216.64.238.663l2.167-.778-.238-.663-.687.247zM9.085 4.786c-.283 0-.56.076-.8.223-.732.448-.85 1.383-.332 2.558.337.776.873 1.218 1.462 1.215 1.345-.007 1.86-1.4 1.085-2.95-.307-.66-.837-1.036-1.415-1.046zm-.191.672c.168-.01.357.085.539.279.145.155.347.51.437.787.35.998.164 1.688-.414 1.546C8.855 7.93 8.21 6 8.62 5.585a.407.407 0 01.273-.127zm-3.765.75c-.283 0-.56.076-.8.223-.732.448-.85 1.382-.332 2.557.337.777.873 1.218 1.462 1.215 1.344-.007 1.86-1.398 1.085-2.95-.307-.66-.838-1.036-1.415-1.045zm-.192.672c.168-.01.358.085.54.278.145.155.347.51.437.787.35.999.164 1.689-.415 1.547-.6-.141-1.243-2.072-.834-2.485a.407.407 0 01.272-.127zm13.362.655c-.283 0-.56.076-.8.223-.732.448-.85 1.382-.332 2.558.337.776.873 1.218 1.462 1.215 1.345-.007 1.86-1.4 1.085-2.95-.307-.66-.837-1.036-1.415-1.046zm-.191.672c.168-.01.357.085.539.278.145.155.347.51.437.787.35.999.164 1.689-.414 1.547-.601-.141-1.244-2.072-.835-2.485a.407.407 0 01.273-.127zm-3.766.75a1.532 1.532 0 00-.8.222c-.73.448-.848 1.383-.331 2.558.337.776.873 1.218 1.462 1.215 1.344-.007 1.86-1.398 1.085-2.95-.307-.66-.838-1.036-1.416-1.045zm-.19.67c.167-.008.357.086.539.28.145.155.347.51.437.787.35.998.164 1.688-.415 1.547-.6-.142-1.244-2.072-.835-2.485a.408.408 0 01.273-.128zm-3.746.744c-.283-.001-.56.076-.8.223-.732.448-.85 1.382-.332 2.557.337.777.873 1.218 1.462 1.215 1.345-.007 1.86-1.398 1.085-2.95-.307-.66-.838-1.036-1.415-1.045zm-.192.672c.169-.01.358.085.54.278.145.155.347.51.437.787.35.999.164 1.689-.414 1.547-.601-.141-1.244-2.072-.835-2.485a.407.407 0 01.272-.127zm-3.515.616l-1.203.884.187.52.524-.316.802 2.233-.696.25c.045.145.216.641.238.663l2.166-.778-.238-.663-.687.247zm15.664 1.33c.034 0 .049.047.064.135.023.11-.064.545-.195.957-.47 1.435-2.052 4.223-3.08 5.396l-.407.47.05-.667c.03-.567-.015-.812-.376-1.71-.496-1.263-.533-1.73-.158-2.31.34-.514 1.028-.907 2.448-1.37.72-.238 1.175-.463 1.385-.664.132-.145.207-.22.253-.235a.048.048 0 01.015-.003zm-6.43 1.476l-1.202.885.187.52.523-.317.803 2.235-.696.25c.045.144.216.641.238.663l2.166-.779-.238-.662-.687.247-1.093-3.042zm-3.578 1.33c-.283 0-.56.077-.8.223-.731.448-.85 1.382-.332 2.558.337.776.873 1.218 1.462 1.215 1.345-.007 1.86-1.399 1.086-2.95-.307-.66-.838-1.036-1.416-1.046zm-.191.672c.168-.009.358.085.54.28.144.153.346.51.437.786.35.998.164 1.688-.415 1.546-.6-.14-1.244-2.072-.835-2.485a.407.407 0 01.273-.127zm-3.515.616l-1.204.885.187.52.524-.317.803 2.234-.697.25c.045.145.216.642.238.664l2.166-.779-.238-.663-.687.248-1.092-3.042z\"},\"child\":[]}]})(props);\n};\nexport function SiPatreon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.957 7.21c-.004-3.064-2.391-5.576-5.191-6.482-3.478-1.125-8.064-.962-11.384.604C2.357 3.231 1.093 7.391 1.046 11.54c-.039 3.411.302 12.396 5.369 12.46 3.765.047 4.326-4.804 6.068-7.141 1.24-1.662 2.836-2.132 4.801-2.618 3.376-.836 5.678-3.501 5.673-7.031Z\"},\"child\":[]}]})(props);\n};\nexport function SiPaychex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.118 11.891-.868-1.766h1.263l.365.977.75-.977H24l-1.57 1.766.919 1.994h-1.303l-.414-1.046-.879 1.046h-1.42Zm-3.907-1.766h3.108l-.197.967h-1.954l-.099.464h1.816l-.188.898h-1.815l-.1.464h1.994l-.197.967h-3.158Zm-3.691 0h1.164l-.276 1.303h1.056l.276-1.303h1.165l-.79 3.76h-1.154l.305-1.49h-1.055l-.316 1.49H12.74zm-.671 2.329c-.07.385-.365 1.52-1.935 1.52-1.095 0-1.618-.71-1.618-1.717 0-1.214.76-2.23 2.043-2.23.839 0 1.589.364 1.608 1.49h-1.095c.01-.356-.158-.553-.513-.553-.642 0-.878.74-.878 1.273 0 .316.078.79.611.79.365 0 .573-.247.642-.583zm-5.754.05-.809-2.379h1.165l.355 1.401.918-1.401h1.362L8.25 12.493l-.286 1.392H6.809Zm-1.894-1.086.138 1.125h-.72Zm-2.477 2.467h1.184l.286-.533h1.224l.059.533h1.135l-.573-3.76H4.895Zm-.987-2.793h.395c.246 0 .503.05.503.336 0 .246-.158.424-.622.424H1.58ZM0 13.885h1.145l.237-1.135h.78c.986 0 1.627-.651 1.627-1.411 0-.83-.444-1.214-1.134-1.214H.789Z\"},\"child\":[]}]})(props);\n};\nexport function SiPayhip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.695 0A3.696 3.696 0 0 0 0 3.695v12.92A7.384 7.384 0 0 0 7.385 24h12.92A3.696 3.696 0 0 0 24 20.305V0H3.695zm11.653 5.604a3.88 3.88 0 0 1 .166 0 3.88 3.88 0 0 1 2.677 1.132 3.88 3.88 0 0 1 0 5.48l-.36.356c-1.826-1.825-3.648-3.656-5.476-5.482l.358-.354a3.88 3.88 0 0 1 2.635-1.132zm-6.627.125a3.88 3.88 0 0 1 2.566 1c2.068 2.062 4.127 4.133 6.192 6.199l-5.481 5.482-6.19-6.203C3.549 9.7 5.346 5.702 8.722 5.729zm-1.744 1.71a.464.464 0 0 0-.465.465v1.817c0 .256.208.463.465.463h1.816a.464.464 0 0 0 .463-.463l.008-1.817A.464.464 0 0 0 8.8 7.44H6.977z\"},\"child\":[]}]})(props);\n};\nexport function SiPayloadcms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.068 0 22.08 6.625v12.573L13.787 24V11.427L2.769 4.808 11.068 0ZM1.92 18.302l8.31-4.812v9.812l-8.31-5Z\"},\"child\":[]}]})(props);\n};\nexport function SiPayoneer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.474 3.31c.234 1.802 1.035 5.642 1.398 7.263.095.459.201.853.298 1.013.501.865.907-.287.907-.287C5.644 6.616 3.17 3.597 2.38 2.787c-.139-.15-.384-.332-.608-.396-.32-.095-.374.086-.374.236.01.148.065.565.075.682zm21.835-1.463c.31.224 1.386 1.355 0 1.526-1.984.234-5.76.373-12.022 5.61C8.92 10.968 3.607 16.311.76 22.957a.181.181 0 01-.216.106c-.255-.074-.714-.352-.48-1.418.32-1.44 3.201-8.938 10.817-15.552 2.485-2.155 8.416-7.232 12.426-4.245z\"},\"child\":[]}]})(props);\n};\nexport function SiPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.016 19.198h-4.2a.562.562 0 0 1-.555-.65L5.093.584A.692.692 0 0 1 5.776 0h7.222c3.417 0 5.904 2.488 5.846 5.5-.006.25-.027.5-.066.747A6.794 6.794 0 0 1 12.071 12H8.743a.69.69 0 0 0-.682.583l-.325 2.056-.013.083-.692 4.39-.015.087zM19.79 6.142c-.01.087-.01.175-.023.261a7.76 7.76 0 0 1-7.695 6.598H9.007l-.283 1.795-.013.083-.692 4.39-.134.843-.014.088H6.86l-.497 3.15a.562.562 0 0 0 .555.65h3.612c.34 0 .63-.249.683-.585l.952-6.031a.692.692 0 0 1 .683-.584h2.126a6.793 6.793 0 0 0 6.707-5.752c.306-1.95-.466-3.744-1.89-4.906z\"},\"child\":[]}]})(props);\n};\nexport function SiPaytm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.85 8.167a.204.204 0 0 0-.04.004c-.68.19-.543 1.148-1.781 1.23h-.12a.23.23 0 0 0-.052.005h-.001a.24.24 0 0 0-.184.235v1.09c0 .134.106.241.237.241h.645v4.623c0 .132.104.238.233.238h1.058a.236.236 0 0 0 .233-.238v-4.623h.6c.13 0 .236-.107.236-.241v-1.09a.239.239 0 0 0-.236-.24h-.612V8.386a.218.218 0 0 0-.216-.22zm4.225 1.17c-.398 0-.762.15-1.042.395v-.124a.238.238 0 0 0-.234-.224h-1.07a.24.24 0 0 0-.236.242v5.92a.24.24 0 0 0 .236.242h1.07c.12 0 .217-.091.233-.209v-4.25a.393.393 0 0 1 .371-.408h.196a.41.41 0 0 1 .226.09.405.405 0 0 1 .145.319v4.074l.004.155a.24.24 0 0 0 .237.241h1.07a.239.239 0 0 0 .235-.23l-.001-4.246c0-.14.062-.266.174-.34a.419.419 0 0 1 .196-.068h.198c.23.02.37.2.37.408.005 1.396.004 2.8.004 4.224a.24.24 0 0 0 .237.241h1.07c.13 0 .236-.108.236-.241v-4.543c0-.31-.034-.442-.08-.577a1.601 1.601 0 0 0-1.51-1.09h-.015a1.58 1.58 0 0 0-1.152.5c-.291-.308-.7-.5-1.153-.5zM.232 9.4A.234.234 0 0 0 0 9.636v5.924c0 .132.096.238.216.241h1.09c.13 0 .237-.107.237-.24l.004-1.658H2.57c.857 0 1.453-.605 1.453-1.481v-1.538c0-.877-.596-1.484-1.453-1.484H.232zm9.032 0a.239.239 0 0 0-.237.241v2.47c0 .94.657 1.608 1.579 1.608h.675s.016 0 .037.004a.253.253 0 0 1 .222.253c0 .13-.096.235-.219.251l-.018.004-.303.006H9.739a.239.239 0 0 0-.236.24v1.09a.24.24 0 0 0 .236.242h1.75c.92 0 1.577-.669 1.577-1.608v-4.56a.239.239 0 0 0-.236-.24h-1.07a.239.239 0 0 0-.236.24c-.005.787 0 1.525 0 2.255a.253.253 0 0 1-.25.25h-.449a.253.253 0 0 1-.25-.255c.005-.754-.005-1.5-.005-2.25a.239.239 0 0 0-.236-.24zm-4.004.006a.232.232 0 0 0-.238.226v1.023c0 .132.113.24.252.24h1.413c.112.017.2.1.213.23v.14c-.013.124-.1.214-.207.224h-.7c-.93 0-1.594.63-1.594 1.515v1.269c0 .88.57 1.506 1.495 1.506h1.94c.348 0 .63-.27.63-.6v-4.136c0-1.004-.508-1.637-1.72-1.637zm-3.713 1.572h.678c.139 0 .25.115.25.256v.836a.253.253 0 0 1-.25.256h-.1c-.192.002-.386 0-.578 0zm4.67 1.977h.445c.139 0 .252.108.252.24v.932a.23.23 0 0 1-.014.076.25.25 0 0 1-.238.164h-.445a.247.247 0 0 1-.252-.24v-.933c0-.132.113-.239.252-.239Z\"},\"child\":[]}]})(props);\n};\nexport function SiPcgamingwiki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.726 0L3.453 3.461v17.425L12.792 24l7.754-1.034-.002-.598V1.183zm-.742.991l-.02 21.948-7.988-2.527L3.95 3.964zm1.349.114l6.4.869v20.189l-6.404.796zm.33.366l.007 21.139 5.748-.727V2.228zm-2.152.263L8.251 2.91v4.924l3.279-.422zm-3.61 1.353L4.264 4.274v4.023l3.66-.408zm2.11.015a.738.738 0 01.51.22c.531.502.583 1.41.44 2.076-.128.596-.537 1.477-1.278 1.411-.132-.012-.395-.079-.469-.207L9.212 6.6l.078-.205c.285.122.546.211.839.04.283-.166.471-.503.578-.803.211-.588.211-1.382-.171-1.9-.465-.63-1.126-.3-1.442.288a3.036 3.036 0 00-.25.937 2.14 2.14 0 00.017.441c.02.168.107.341.086.511-.006.052-.037.085-.095.095-.345-.58-.157-1.508.102-2.081.185-.41.615-.824 1.057-.82zM6.427 4.105l-.394 1.098.397-.213-1.151 2.655-.002-.002.502-1.908-.324.155.446-1.634zm3.416.201a.28.28 0 01.106.018c.424.162.294.884.11 1.167-.097.151-.262.157-.424.157v.003c-.066-.24.238-.404.306-.588.04-.108-.002-.199-.045-.29-.102-.053-.186-.022-.223.083a1.341 1.341 0 01-.26.457 1.078 1.078 0 01.136-.846.376.376 0 01.294-.16zm-.138.148c-.04 0-.073.052-.073.114 0 .063.033.114.073.114.04 0 .072-.052.072-.114 0-.064-.033-.114-.072-.114zm.282 0c-.04 0-.072.052-.072.114 0 .063.033.114.072.114.04 0 .073-.052.073-.114 0-.064-.033-.114-.073-.114zm-.46.264c-.04 0-.072.053-.072.115 0 .063.033.114.073.114.04 0 .072-.053.072-.114 0-.064-.033-.115-.072-.115zm.573.06c-.04 0-.072.053-.072.115 0 .063.033.114.072.114.04 0 .073-.053.073-.114 0-.064-.033-.115-.073-.115zm-.396.339h.002c.01.014.01.028.004.041-.195.44-.387.881-.583 1.324-.018-.008-.029-.008-.035-.014a1.234 1.234 0 01-.161-.271c-.019-.038.002-.075.025-.106l.677-.904a.227.227 0 01.07-.07zm.305.015c-.04 0-.072.053-.072.114 0 .064.033.115.072.115.041 0 .073-.053.073-.115 0-.063-.033-.114-.073-.114zm-.18.223c-.04 0-.073.052-.073.114 0 .064.033.114.073.114.04 0 .072-.052.072-.114 0-.064-.033-.114-.072-.114zm4.285.295l4.992.156.002.401-4.994-.06zm-2.64 2.3l-3.225.4-.006 6.944 3.206.1zm-3.561.434l-3.628.339.025 6.341 3.594.207zm8.936.54c.33.004.648.287.832.782l1.367.008.033 1.279-1.406.06c-.227 1.04-1.36.943-1.618.058l-1.908.064-.004-1.405 1.846-.068c.229-.542.548-.783.858-.778zm.018.41a.64 1.072 0 00-.64 1.07.64 1.072 0 00.64 1.073.64 1.072 0 00.64-1.072.64 1.072 0 00-.64-1.072zm-11.359.332l.368.319 1.617-.058.01.128-1.67.062-.41-.353zm-.246.215a.173.173 0 01.015.346.173.173 0 01-.163-.101l-.467.02-.006-.128.467-.02a.175.175 0 01.154-.117zm4.985.265c.054.108-.002.307.111.333.153.036.174.075.211.218.017.064-.008.095.058.132.072.041.157.029.159.126.002.133-.056.114-.157.114-.037 0-.05.07-.052.097-.008.098.009.118.104.145.122.035.1.068.1.18 0 .056.011.025-.063.04-.118.022-.145.006-.139.14.009.161.277.03.2.26-.032.1-.195.023-.195.11 0 .11-.023.16.111.17.132.01.124.188.008.228-.07.025-.095-.002-.12.082-.024.085-.022.174-.053.26-.126.092-.24-.036-.24.173 0 .056-.012.097-.022.15-.019.104-.046.015-.12.038-.02-.025 0-.163 0-.196 0-.098-.033-.12-.145-.112-.006.12-.004.248-.1.335-.06-.04-.083-.1-.088-.168-.006-.134.004-.138-.134-.171a.865.865 0 00-.03.3c-.108.054-.125-.112-.125-.178 0-.056.023-.118-.047-.139-.07-.018-.095.017-.097.08-.004.127-.01.183-.11.253-.04-.111-.006-.304-.136-.34-.145-.036-.163-.142-.165-.28-.003-.151-.184-.007-.184-.17 0-.016-.013-.101 0-.114.06-.043.12.025.175.002.027-.074.037-.186-.043-.205-.083-.018-.161-.028-.143-.124.023-.118.002-.111.13-.12.098-.006.062-.107.065-.173-.129-.06-.182.016-.182-.154 0-.115-.009-.105.107-.105.1 0 .07-.035.07-.13 0-.106-.19-.013-.198-.158-.004-.062.02-.116.08-.138.106-.042.118-.048.123-.162.006-.165.115-.184.247-.25l-.002-.002c-.002-.106 0-.207.066-.294.124.004.102.2.104.296.212.105.1-.224.21-.317.157-.016-.012.331.143.327.101-.002.08-.05.078-.138-.002-.081.009-.162.079-.213.17.064.016.376.231.326 0-.132-.02-.293.12-.364zm-2.987.13a.172.172 0 01.178.168.172.172 0 01-.168.178.172.172 0 01-.16-.097l-.523.015a.171.171 0 01-.329-.067.172.172 0 01.167-.178v-.002a.175.175 0 01.168.116l.508-.014a.174.174 0 01.159-.118zm-1.206.253l1.475 2.15-.11.068-1.448-2.092-1.322.081-.004-.124zm1.501.157l-.008.186-.136.197a.173.173 0 01-.023.192v-.002a.173.173 0 01-.244.017.171.171 0 01-.016-.242.172.172 0 01.186-.05zM6.858 11a.168.168 0 01.144.073c.041.06.041.135.004.193l.527.786.002.203-.634-.917a.169.169 0 01-.18-.068l-.002.002a.173.173 0 01.043-.24.171.171 0 01.096-.032zm-.856.071a.173.173 0 01.014.346.173.173 0 01-.163-.102l-1.181.06-.006-.128 1.181-.06a.175.175 0 01.155-.116zm.361.683l.393.49a.166.166 0 01.085-.022c.095 0 .173.078.173.173a.175.175 0 01-.173.174.175.175 0 01-.174-.174c0-.016.004-.033.008-.05l-.361-.46-1.626.04-.004-.13zm-1.117.436h.002c.059.001.11.032.138.077l.992.027.39.474a.166.166 0 01.085-.023c.095 0 .174.079.174.174a.175.175 0 01-.174.174.175.175 0 01-.174-.174.21.21 0 01.009-.05l-.36-.445-.919-.027a.164.164 0 01-.159.124.166.166 0 01-.002-.33h-.002zm-.447.205c.06 0 .104.014.15.085.136.213.264.432.394.65.064.107.13.215.196.32.095.153.12.166.302.178.13.009.262.009.394.009.137 0 .133-.114.263-.102.111.106.111.242 0 .348-.124.008-.11-.12-.203-.12H5.9c-.197 0-.256.043-.358-.116l-.694-1.109h-.171V12.4c.048 0 .088-.004.123-.004zm1.5.34a.172.172 0 01.178.167.172.172 0 01-.167.178.172.172 0 01-.161-.097l-.459.01a.172.172 0 01-.328-.066.172.172 0 01.167-.178v-.002a.175.175 0 01.167.116l.444-.01a.174.174 0 01.16-.118zm.965.181a.171.171 0 11-.023.34l-.516.76-.136.001.543-.827a.172.172 0 01.132-.274zm-2.437.013a.166.166 0 010 .331.166.166 0 010-.331zm.364.563c.045 0 .089.017.123.051a.171.171 0 010 .245.17.17 0 01-.244 0 .198.198 0 01-.03-.042l-.147-.006-.163.228-.095-.09.2-.266.192.006a.181.181 0 01.043-.075.168.168 0 01.121-.05zm2.157.136c.06.001.129.013.17.013.006.058.01.11-.03.161-.071.002-.14-.029-.21-.035l-.123.17c.024.053.103.003.117.074-.02.085-.184.01-.24.019-.028-.09.174-.317.226-.39a.204.204 0 01.09-.012zm8.472.317v7.742l-1.452.174-.004-7.838zM4.337 15.563l-.004 2.125 1.692.231.01-2.234zm1.948.128v4.864l2.927.882v-5.554zm3.313.224l.013 5.745.2.062c.15-.515.42-.316.438.14l.386.115c.004-.543.473-.348.395.117l.357.133-.012-6.188-.263-.017c.058.571-.512.565-.421-.027l-.42-.027c.067.549-.508.534-.419-.035zm-4.614.235l.276.607.17-.31.396.897-1.292-.2zm.71.013c.091 0 .163.072.163.163a.162.162 0 01-.163.164.162.162 0 01-.163-.164c0-.09.072-.163.163-.163zm4.103.498l1.402.147v1.382l-1.402-.205zm-2.24.019c.178.012.347.048.484.178.308.294-.238.863.008 1.208.221-.213.217-.478.384-.703.166.213.31.641.283.912-.142.172-.256.27-.597.294.01.076-.037.149-.016.238.182.194.382.163.622.149.033.17-.139.695-.267.821-.26-.118-.394-.37-.539-.602a.64.64 0 00-.132.126c.035.267.372.606.328.842a.636.636 0 01-.365.07c-.128-.018-.18-.088-.21-.225-.069-.303.065-.677-.19-.894-.125.246-.09.518-.123.785-.2-.05-.345-.45-.384-.621.035-.205.142-.356.266-.515.058-.075.077-.15.04-.236-.015-.033-.013-.075-.042-.102-.18.031-.287.17-.41.29-.14-.145-.108-.69.003-.85a.601.601 0 01.467.12c.11-.108.116-.213.019-.325-.075-.085-.304-.184-.345-.271-.033-.13.21-.57.357-.563.161.238.256.507.31.788.056.023.105.044.17.031.032-.32-.04-.626-.141-.926.01-.01.016-.019.02-.019zm-3.23 1.305v2.12l1.708.417.019-2.284zm5.472.245l1.4.225v1.395l-1.4-.3zm-4.6.3l.014 1.398-.337-.432-.301-.066v-.598l.283.041zm.398.095a.08.08 0 01.013.002c.037.085.08.172.105.265.103.393.103.773-.118 1.144l-.002-.002c-.04-.077-.029-.135-.002-.203.064-.168.122-.34.11-.521a1.544 1.544 0 00-.096-.464 4.151 4.151 0 01-.068-.186c.015-.022.03-.037.058-.035zm-.143.145c.02.001.028.014.034.027.043.088.074.177.093.275.02.113.01.225.018.337.006.072-.016.143-.027.211a.267.267 0 01-.134.197v.002h-.002l.002-.002c-.006-.067.019-.127.033-.187.02-.09.052-.182.064-.273.017-.116-.02-.227-.05-.34l-.045-.154c-.008-.033-.014-.064.004-.093h.01zm-.123.162c.011 0 .021.002.033.005a.96.96 0 01.074.424c-.002.056-.023.106-.035.158-.01.039-.037.062-.07.08-.027-.027-.019-.051-.013-.078.017-.077.033-.151.035-.23.005-.12-.033-.232-.06-.35h-.002a.1.1 0 01.038-.009zm4.468.835l1.396.318v1.383l-1.396-.385z\"},\"child\":[]}]})(props);\n};\nexport function SiPdm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.44.418a3.12 3.12 0 0 1 3.12 0l7.69 4.44a3.12 3.12 0 0 1 1.56 2.702v8.88a3.12 3.12 0 0 1-1.56 2.702l-7.69 4.44a3.12 3.12 0 0 1-3.12 0l-7.69-4.44a3.12 3.12 0 0 1-1.56-2.702V7.56a3.12 3.12 0 0 1 1.56-2.702Zm3.87 3.315L12.311 2.58a.624.624 0 0 0-.624 0l-7.69 4.44a.624.624 0 0 0-.312.54v3.774l10.623-6.133Zm2.496 13.643 1.255.725 1.941-1.12a.624.624 0 0 0 .312-.541V7.56a.624.624 0 0 0-.312-.54l-3.196-1.845Zm-2.497-1.441V8.083l-6.8 3.926ZM3.686 14.217v2.223c0 .223.119.429.312.54l7.69 4.44a.624.624 0 0 0 .624 0l3.252-1.878-10.55-6.091Z\"},\"child\":[]}]})(props);\n};\nexport function SiPdq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.813 7.373a4.655 4.655 0 0 0-3.323 1.354 4.621 4.621 0 0 0-1.2 2.078 4.213 4.213 0 0 0-.696-1.59 3.725 3.725 0 0 0-1.084-1.027c-.323-.2-.731-.4-1.184-.5-.479-.104-.994-.14-1.625-.14H6.707v8.891h3.502a4.493 4.493 0 0 0 1.727-.322c.502-.202.953-.51 1.324-.904.376-.409.664-.89.847-1.414.07-.191.127-.39.172-.596a4.463 4.463 0 0 0 1.237 2.09c.442.415.96.742 1.525.965a5 5 0 0 0 1.89.353c.848.001 1.654-.23 2.42-.693.206.221.492.394.858.52.397.13.813.192 1.23.187.188.004.374-.017.561-.025v-1.801c-.082-.001-.11.014-.188.013-.419 0-.744-.104-.976-.316.25-.365.447-.766.582-1.187.123-.412.185-.839.182-1.268a4.595 4.595 0 0 0-.368-1.838 4.532 4.532 0 0 0-1.017-1.482 4.888 4.888 0 0 0-3.402-1.348ZM0 7.549v8.89l2.18-.002v-2.785h.976c.633 0 1.15-.058 1.551-.173 1.117-.318 1.588-1.234 1.738-1.612.17-.41.256-.85.254-1.293a3.299 3.299 0 0 0-.267-1.332 2.7 2.7 0 0 0-1.256-1.34c-.319-.156-.746-.279-1.31-.32a11.989 11.989 0 0 0-.95-.033Zm18.81 1.824c.346-.003.689.06 1.01.188.653.259 1.098.772 1.319 1.334.127.322.19.665.187 1.011.003.227 0 .573-.308 1.32a19.46 19.46 0 0 1-.32-.372c-.24-.288-.534-.513-.91-.788-1.65-1.15-2.842-.697-3.37-.453.116-.693.389-1.24.816-1.64.428-.4.953-.6 1.577-.6Zm-16.63.174h.828c.535 0 .922.082 1.158.248.236.165.354.437.354.812 0 .698-.473 1.047-1.418 1.047H2.18zm6.8 0h.989c.695 0 1.23.214 1.605.64.375.427.56 1.04.56 1.84.001.782-.184 1.38-.554 1.793-.37.413-.912.62-1.625.62H8.98Zm8.467 3.43c.348-.003.692.075 1.004.226.242.105.467.243.668.412.227.202.432.427.615.668-.453.328-.762.337-.949.332-.455 0-.899-.142-1.27-.406a2.404 2.404 0 0 1-.869-1.086c.575-.197.792-.131.801-.146z\"},\"child\":[]}]})(props);\n};\nexport function SiPeakdesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m24 10.523-9.446 6.493-4.74-3.271 4.723-3.255 3.738 2.57 3.705-2.537zm-6.743 3.255-2.72-1.886-2.704 1.853 2.737 1.869zm-7.794-.284-3.738-2.57-3.706 2.554h-2.019l9.43-6.493 4.756 3.255zm-2.737-3.254 2.737 1.869 2.704-1.869-2.737-1.87z\"},\"child\":[]}]})(props);\n};\nexport function SiPearson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.22 1.546C12.596-1.648 5.258.088 2.096 6.928c-2.176 4.71-1.188 12.896 3.88 15.83 5.066 2.934 11.866.472 14.98-5.29 3.542-6.554 2.356-13.034-2.736-15.922zm-6.244 18.526a1.212 1.212 0 0 1-.76.248 1.59 1.59 0 0 1-.4-.054 1.078 1.078 0 0 1-.528-.306.942.942 0 0 1-.21-.474 1.15 1.15 0 0 1 .208-.854c.2-.298.532-.48.89-.49a1 1 0 0 1 .186.018c.188.04.366.12.518.24.286.217.456.553.462.912a.944.944 0 0 1-.366.76zm7.656-9.834c-.202 1.514-1.14 2.914-2.7 3.84-1.236.738-2.86 1.032-4.46 1.046-.012.248-.062 1.1-.088 1.236a.87.87 0 0 1-.196.42c-.172.218-.47.36-.766.44a2.493 2.493 0 0 1-.632.096.8.8 0 0 1-.568-.234.8.8 0 0 1-.204-.482l-.012-.17c-.034-.144-.22-7.496-.184-7.366.028-.88 1.48-1.034 2.27-.88.79.158.59 1.098.57 2.252 0 0-.04 1.52-.112 3.124a6.178 6.178 0 0 0 2.556-.684c1.512-.732 2.312-1.856 2.312-3.512s-1.648-3.51-4.688-3.51-4.346.75-5.818 1.94c-.332.27-.588.54-.83.72-.24.178-.882.204-1.054-.212-.208-.504.18-1.064.406-1.334.36-.426 1.24-1.284 2.218-1.78C8.772 4.616 10.14 4 12.048 3.954c1.724-.044 4.448.094 6.41 2.26l.014.014c1.02 1.066 1.34 2.684 1.16 4.01z\"},\"child\":[]}]})(props);\n};\nexport function SiPeerlist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C2.667 0 0 2.667 0 12s2.673 12 12 12 12-2.667 12-12S21.327 0 12 0zm8.892 20.894c-1.57 1.569-4.247 2.249-8.892 2.249s-7.322-.68-8.892-2.25C1.735 19.522 1.041 17.3.89 13.654A39.74 39.74 0 0 1 .857 12c0-1.162.043-2.201.13-3.13.177-1.859.537-3.278 1.106-4.366.284-.544.62-1.006 1.013-1.398s.854-.729 1.398-1.013C5.592 1.524 7.01 1.164 8.87.988 9.799.9 10.838.858 12 .858c4.645 0 7.322.68 8.892 2.248 1.569 1.569 2.25 4.246 2.25 8.894s-.681 7.325-2.25 8.894zM20.538 3.46C19.064 1.986 16.51 1.357 12 1.357c-4.513 0-7.067.629-8.54 2.103C1.986 4.933 1.357 7.487 1.357 12c0 4.511.63 7.065 2.105 8.54C4.936 22.014 7.49 22.643 12 22.643s7.064-.629 8.538-2.103c1.475-1.475 2.105-4.029 2.105-8.54s-.63-7.065-2.105-8.54zM14.25 16.49a6.097 6.097 0 0 1-2.442.59v2.706H10.45v.357H6.429V5.57h.357V4.214h5.676c3.565 0 6.467 2.81 6.467 6.262 0 2.852-1.981 5.26-4.68 6.013zm-1.788-8.728H10.45v5.428h2.011c1.532 0 2.802-1.2 2.802-2.714s-1.27-2.714-2.802-2.714zm.901 4.351c.117-.239.186-.502.186-.78 0-1.01-.855-1.857-1.945-1.857h-.296V8.62h1.154c1.09 0 1.945.847 1.945 1.857 0 .705-.422 1.323-1.044 1.637zm4.104 1.493c.043-.063.083-.129.123-.194a5.653 5.653 0 0 0 .526-1.103 5.56 5.56 0 0 0 .11-.362c.02-.076.042-.15.06-.227a5.58 5.58 0 0 0 .073-.41c.01-.068.025-.134.032-.203.024-.207.038-.417.038-.63 0-3.198-2.687-5.763-5.967-5.763H7.286v14.572h4.022v-3.048h1.154c1.43 0 2.747-.488 3.778-1.303a5.92 5.92 0 0 0 .46-.406c.035-.034.066-.07.1-.105.107-.11.21-.22.308-.337.044-.053.084-.108.126-.162.081-.104.16-.21.233-.319zm-5.005 1.775H10.45v3.048H8.143V5.57h4.319c2.837 0 5.11 2.211 5.11 4.905s-2.273 4.905-5.11 4.905z\"},\"child\":[]}]})(props);\n};\nexport function SiPeertube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.545v10.91L20.727 12M3.273 12v12L12 17.455M3.273 0v12L12 6.545\"},\"child\":[]}]})(props);\n};\nexport function SiPegasusairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5113 12.1013l-.5743 1.331H8.77l-.0493-.0901c-.3208.1335-.5936.1852-.9663.1852-.5925 0-1.0767-.4802-1.0767-1.0725 0-.0367.0004-.0731.0042-.1085.1518-1.3041 1.2565-2.3233 2.6013-2.3233.648 0 1.0171.1195 1.559.3832l-.1432.3418c-.0273.0667-.1053.1137-.1661.0842-.0643-.0292-.0496-.0689-.08-.1344-.0498-.1077-.1157-.1419-.1577-.1709-.2104-.1327-.3523-.1377-.4959-.1377-.3395 0-.6469.1272-.8821.337-.5085.4506-.8634 1.058-.9629 1.7978-.0438.2834.1802.5511.4678.5486.3227 0 .4995-.1865.6234-.4626l.2272-.5333c.0277-.0679-.0437-.1262-.0727-.13-.0487-.0189-.0808-.058-.0808-.1058 0-.0659.051-.1193.143-.1193l1.4158.0002c.0845-.0048.147.0872.113.1654-.0158.0401-.0473.0619-.1027.0687-.0997.0158-.1398.0582-.177.1453zm-3.9695-.6931a.1543.1543 0 0 0-.1314.0752c-.0485.0777-.0951.0859-.1759.0915l-.7152.0008.4796-1.1131h.8508c.0485-.0028.0746.0544.071.0821-.0017.0525.0231.0968.067.1159.0605.026.1348-.0118.1659-.0842l.2035-.4714h-2.701c-.092 0-.1468.0506-.1468.1163 0 .0481.0309.0884.0798.1073.042.0092.0983.0712.0752.1314l-1.2877 2.9854h2.9656l.1661-.3817c.0374-.076-.0232-.171-.1083-.1688a.1547.1547 0 0 0-.1314.0752c-.0535.0857-.118.1182-.2127.1182l-1.1895-.0008.5083-1.1807.7849.0006c.0468.0021.0659.0563.0638.0817-.0019.0523.0111.0968.0552.1157.0605.0258.135-.0118.1661-.0846l.1938-.4433c.0339-.0722-.0126-.1714-.0967-.1687zm-3.7169.7215h-.9761l-.4319 1.0146c-.0157.0281.0052.0631.0321.0743.0491.0187.08.0592.08.1069 0 .0661-.064.1195-.1432.1195H0l1.2982-3.0181c.0188-.0439-.0231-.0869-.0489-.0948-.0487-.0189-.08-.0592-.08-.1073 0-.0657.0643-.1191.1434-.1191.5136-.0003 1.7208-.0002 2.2211.0025.2461 0 .4636.1449.5543.3576.0519.1293.079.2692.079.4174 0 .2331-.0718.4495-.1934.6289-.2606.3862-.6877.6176-1.1488.6176zm.0168-1.613c-.0621-.0457-.205-.0606-.27-.0535l-.5476 1.2722.2138-.0013c.2719-.0019.4907-.1547.6412-.3998.1986-.3227.1818-.6887-.0374-.8176zm18.6699-.1285c.0552-.0067.0867-.0286.1027-.0687.0334-.0778-.0281-.1701-.1132-.1652l-1.3392-.0002-1.1658 2.7034a.4988.4988 0 0 1-.4577.3003c-.0403 0-.0876-.0128-.1249-.0216-.1258-.0334-.2219-.1436-.2219-.2986.0067-.1974.1262-.4812.1894-.6282l.7254-1.6735c.0372-.0874.0762-.1319.1762-.1476.0552-.0067.0867-.0286.1027-.0687.0334-.0777-.028-.17-.113-.1652h-1.4631c-.0789 0-.143.0533-.143.1193 0 .0479.0309.0882.0796.1071.0258.0077.0678.0512.0491.0945l-.5258 1.2178c-.1327.2845-.2091.6064-.2161.9381 0 .3233.1865.6037.4556.7422.2849.1367.6005.2137.9354.2137a2.3863 2.3863 0 0 0 2.2267-1.5181l.6624-1.5317c.0374-.0876.0786-.1334.1785-.1491zm1.1967-.3589c-.8626.0603-1.3988.6858-1.3482 1.4087.0181.2572.1119.4917.2553.6853 0 0 .6433.7727.6814.822.0223.0307.0827.1218.089.2116.0166.2392-.1042.4378-.4107.4594-.3559.025-.6517-.1283-.7807-.3578-.0202-.057-.0163-.1273-.0829-.1461-.0592-.0206-.1272.0202-.152.0909l-.1447.4132c.3229.2488.7532.3931 1.2955.354.8626-.0605 1.3988-.6858 1.348-1.4083-.0176-.2576-.1915-.4869-.3349-.6801-.1046-.1284-.4105-.4944-.5209-.6266-.0797-.1144-.1584-.2415-.1718-.3853-.0174-.2499.1537-.4655.4603-.4869.354-.025.6005.1228.7313.35.0198.0571.016.1273.0829.1461.0592.0206.127-.0202.1518-.0909l.143-.4064c-.3231-.2486-.7496-.3918-1.2917-.3528zm-5.6636.8504c-.067-.0189-.0631-.0891-.0831-.1461-.1308-.2272-.3773-.375-.7311-.35-.3068.0214-.4779.2371-.4607.4869.014.1437.092.2709.1722.3853.1119.1339.4147.4965.5205.6266.1438.1932.3173.4225.3353.6801.0504.7225-.4859 1.3478-1.3482 1.4083-.5424.0391-.9728-.1052-1.2957-.354l.0604-.1726h-1.3956c-.0792 0-.1419-.0527-.1419-.1186 0-.0479.0309-.0882.0796-.1069.0252-.0084.0656-.0475.0508-.0915l-.2308-.9879H11.528l-.6066.9827c-.0221.0454.0234.0855.0479.0941.0489.0189.0802.0588.0804.1069.0004.0657-.0634.1195-.1424.1199l-.6226.0015c-.0846.0042-.1492-.0882-.1138-.1659.0193-.046.0609-.063.1163-.0697.0781-.0126.1178-.0422.1543-.0968l1.8998-3.0053 1.1637-.0002c.079 0 .1428.0548.1428.1207 0 .0479-.0311.0882-.0798.1071-.021.0094-.0527.0311-.0517.0743l.7032 3.0205.0789-.2254c.0252-.0708.093-.1115.152-.0909.043.0151.0695.0554.0712.1054a.0869.0869 0 0 0 .012.0407c.1289.2295.4248.3828.7807.3578.3066-.0216.4273-.2203.4105-.4594-.0063-.0899-.0668-.181-.089-.2116-.038-.0493-.6811-.822-.6811-.822-.1434-.1936-.2373-.4281-.2553-.6853-.0506-.7229.4857-1.3484 1.3482-1.4087.5424-.039.9688.1042 1.2915.3528l-.1428.4067c-.0247.0704-.0928.1111-.1516.0905zm-4.562.8538l-.1919-.8304-.5125.8304h.7044z\"},\"child\":[]}]})(props);\n};\nexport function SiPelican (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.9418 0c.342 1.0548 1.8764 2.1857 2.9063 2.6238 1.3134.5583 2.5984.6849 3.7501.8122.895.0963 1.7019.2014 2.3439.4998.1622.0726.3288.148.4688.2499.4586.3364.9464.9876 1.2813 1.4368.7186.9583.5858 1.7451 1.4375 2.2178.089.0492.1683.083.2813.125.271.1018.667.2273.8437-.1563a.788.788 0 00.0625-.1874c-.0712-.229-.321-.4327-.4687-.531-.2618-.171-.3735-.274-.5625-.4685-.3494-.3583-.348-.9508-.5938-1.3744.3092-.131 1.9392-.3597 2.2813-.3124.7313.0326 1.31.0782 1.75.531.1727.1365.2497.2567.4064.3749.011.009.0202.024.0312.0312.6933.5037 1.3388.6705 1.9063.8434.1496.0454.2988.1054.4375.1562.213.0763.4065.1594.5938.281.2222.1474.6089.542.625.8747-.5587-.1783-.207.0323-1.0313-.0312-.4019-.0456-.8058-.0647-1.2187-.0937-.6422-.0454-1.273-.1043-1.8751-.2187-.1002-.0184-.2146-.0388-.3125-.0625-.0766-.0163-.146-.011-.2188-.0312-.0018.0308 0 .0353 0 .0625-.0166.6292.4214.9586-.5938 2.1553-.009.0127-.0204.0167-.0312.0312-.2695.3147-1.657.9163-2.0938 1.0308-1.8593.3728-3.292-.828-5.5315-.2187-.7877.2928-1.3567 1.5756-1.7188 2.5302-.482 1.2677-.8758 2.7956-1.3126 4.3106-.2.6982-.4178 1.4015-.6562 2.0616-.575 1.584-1.3113 2.9428-2.4064 3.717-.1638.1256-.787.41-.8125.6248.404.2037 4.185.056 4.8127 0 2.5033-.2184 3.6468-1.7733 4.4689-3.9045.5659-1.462 1.065-3.9864 2.0313-5.3102.0128-.0182.0183-.015.0313-.0312.1456-.1967.327-.3691.5-.4998.0454-.0347.0775-.0648.125-.0937.0344-.0219.1566-.0592.3438-.0937 1.7357-.3074 9.3491-1.3474 9.844-6.872.051-.5581.0158-1.1588-.0937-1.8117-.0543-.3364-.115-.6653-.2187-1.0308-.2457-.8691-.7981-1.614-1.5313-2.2177-.1926-.16-.405-.3285-.625-.4686-.846-.54-1.8774-.921-2.969-1.1557-.7332-.1582-1.4874-.239-2.25-.25C9.8402.0326 6.3978.2075.9418 0zm1.625 4.2169c.0235.0382.0389.0574.0625.0937C4.2284 6.8382 6.239 6.8135 8.067 7.0281c.666.0782 1.317.1849 1.9063.4686.262.1235.5116.2649.75.4685-.0292-.131-.076-.2564-.125-.3748-.444-1.0763-1.6487-1.6661-2.6875-1.9679-1.3938-.4984-2.4038-.0181-5.344-1.4056zm1.4063 3.186c.0107.0528.0094.0946.0313.1563.2199.6346 1.0403 1.6503 2.0938 1.8741.4567.1636.315.1174 1.0938.0937 1.1406-.0581 1.692-.0793 2.5.25-.02-.0493-.0423-.1091-.0624-.1563C9.0074 8.175 8.2593 8.421 5.8794 8.2464c-1.0188-.3074-1.2587-.3415-1.9063-.8434z\"},\"child\":[]}]})(props);\n};\nexport function SiPeloton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7283 5.7642l1.7307-3.0066c.5045-.8803.2077-2.0077-.6725-2.5121-.8802-.5044-2.0077-.2077-2.5121.6725l-1.7407 3.0066c-3.699-1.167-7.843.3462-9.8606 3.8473-1.2857 2.2253-1.444 4.7869-.6626 7.032l3.2044-5.5583c.732-1.2759 1.9286-2.1858 3.3528-2.5715 1.4242-.3857 2.9078-.188 4.1836.5539 2.6308 1.523 3.5407 4.9055 2.0176 7.5363-1.523 2.6308-4.8957 3.5407-7.5364 2.0176l1.8396-3.1846c.8803.5044 2.0077.2077 2.5122-.6726.5044-.8802.2076-2.0077-.6726-2.512-.8802-.5045-2.0077-.2078-2.5121.6725l-5.855 10.1572c-.5044.8803-.2077 2.0077.6725 2.5121.8802.5044 2.0077.2077 2.5121-.6725L9.47 20.0754c3.699 1.167 7.843-.3462 9.8606-3.8473 2.0176-3.4913 1.256-7.833-1.6022-10.4639z\"},\"child\":[]}]})(props);\n};\nexport function SiPenny (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.053 11.914h.368c.419 0 .675-.245.718-.556.043-.27-.154-.556-.547-.556H2.24zm18.611-.638.839-1.504h1.924l-2.908 4.399H18.56l.933-1.26-1.07-3.049-.727 4.309h-1.54l-.949-2.036-.342 2.036h-1.54l.745-4.4h1.582l.915 1.971.334-1.97h3.37l.393 1.504zm-7.21-1.504-.744 4.399h-1.54l-.949-2.036-.342 2.036h-1.54l.745-4.4h1.582l.915 1.971.334-1.97h1.539zM3.036 9.707c1.07 0 1.788.547 1.797 1.438l.23-1.373h3.49l-.188 1.112H6.517l-.094.523h1.668l-.188 1.104H6.235l-.094.548h1.873l-.188 1.112H4.32l.402-2.38c-.273.77-1.009 1.227-1.967 1.227h-.88l-.198 1.153H0l.753-4.464zM24 13.345c0 .523-.445.948-.992.948-.547 0-.992-.425-.992-.948 0-.523.445-.948.992-.948.556.008.992.425.992.948z\"},\"child\":[]}]})(props);\n};\nexport function SiPenpot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.654 0 5.13 3.554v2.01L2.934 6.608l-.02-.009v13.109l8.563 4.045L12 24l.523-.247 8.563-4.045V6.6l-.017.008-2.196-1.045V3.555l-.077-.108L16.349.001l-2.524 3.554v.004L11.989.973l-1.823 2.566-.065-.091zm.447 2.065.976 1.374H6.232l.964-1.358zm8.694 0 .976 1.374h-2.845l.965-1.358zm-4.36.971.976 1.375h-2.845l.965-1.359zM5.962 4.132h1.35v4.544l-1.35-.638Zm2.042 0h1.343v5.506l-1.343-.635zm6.652 0h1.35V9l-1.35.637V4.132zm2.042 0h1.343v3.905l-1.343.634zm-6.402.972h1.35v5.62l-1.35-.638zm2.042 0h1.343v4.993l-1.343.634zm6.534 1.493 1.188.486-1.188.561zM5.13 6.6v1.047l-1.187-.561ZM3.96 8.251l7.517 3.55v10.795l-7.516-3.55zm16.08 0v10.794l-7.517 3.55V11.802z\"},\"child\":[]}]})(props);\n};\nexport function SiPercy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.235 2.4s.569 1.169.616 1.547c0 0-1.856-.646-4.458-.891 0 0 1.25.872 1.734 1.538 0 0-1.84-.093-4.586 0 0 0 1.561.634 2.252 1.215 0 0-3.26.331-5.103.862 0 0 2.076.73 2.652 1.276 0 0-2.648.754-5.316 2.294 0 0 1.482.26 2.642.766 0 0-1.478 1.033-3.668 3.852 0 0 1.62-.309 2.73-.222 0 0-1.407 1.644-2.141 4.158 0 0 .813-.518 1.602-.706 0 0 .084 2.998 1.724 3.478v-.002a.774.774 0 0 0 .225.034c.08 0 .163-.012.248-.036.52-.15.915-.663 1.37-1.256.15-.195.303-.395.466-.59.2-.284.438-.54.706-.762.58-.478 1.38-.84 2.358-.695 1.1.093 1.78 1.189 2.327 2.07.283.458.659 1.27 1.289 1.27.696 0 .94-.834 1.25-1.862.292-.97.726-1.891 1.29-2.732 1.085-1.617 2.474-2.495 4.14-3.36 1.595-.83 3.102-1.614 3.858-2.803.379-.594.567-1.325.558-2.169a6.966 6.966 0 0 0-.31-1.909c-.139-.455-.505-.902-.939-.72a3.417 3.417 0 0 1-1.151.256c-.858-.805-3.379-2.4-5.038-3.303 0 0 .202.592.482 1.699 0 0-1.787-1.396-3.81-2.296zm0 2.7 3.81.945-1.233.255zM9.957 6.67l4.571.354-1.388.46Zm6.955 1.082-.678.514-2.383.134zm-5.784.514-1.088.73-3.018-.287Zm4.505 1.206-1.105.617-3.002-.176zm-8.282.77-.679 1.312-2.982 1.313zm4.135.533-.77 1.265-3.853.942zm-5.845 2.354-.118 1.313L3.6 16.2zm11.31 3.151c-1.093 1.127-2.002 2.806-2.232 4.121.39.58.746.867 1.08.873h.012c.346 0 .575-.233.68-.693.077-.343.094-.813.114-1.36.029-.844.067-1.894.346-2.94zm-7.904 2.512c-1.018.011-2.008.83-2.506 1.532v.001c.283.64.587.953.925.953a.53.53 0 0 0 .082-.007c.46-.072.886-.963 1.242-1.825a19.8 19.8 0 0 0 .257-.654z\"},\"child\":[]}]})(props);\n};\nexport function SiPerforce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.741 8.755c.164-.425.352-.834.573-1.219-.213-.196-.745-.613-.712-.646 2.774-3.322 6.391-4.32 9.59-3.74.655.09 1.31.246 1.956.483 4.583 1.702 6.898 6.75 5.18 11.284a9.33 9.33 0 0 1-.614 1.285c.254.22.81.63.778.663-3.077 3.641-7.177 4.484-10.589 3.47a11.18 11.18 0 0 1-.982-.295c-4.574-1.702-6.898-6.751-5.18-11.285zM19.371.982c-.581.556-1.277 1.227-1.62 1.53a11.886 11.886 0 0 0-1.727-.802C10.819-.221 5.337 1.964 2.317 6.03.738 8.364-.195 11.236.034 14.19c0 0 .009 5.556 5.14 8.83.417-.574.948-1.31 1.3-1.785a12.36 12.36 0 0 0 1.817.86c5.892 2.184 12.422-.606 14.557-6.228 0 0 1.563-3.428 1.048-7.176 0 0-.401-5.057-4.525-7.708z\"},\"child\":[]}]})(props);\n};\nexport function SiPerl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.638 0c-.148 0-.207.689-.252 2.925-.058 2.86-.07 2.949-.51 3.914-.36.793-1.623 2.676-2.037 3.04-.373.328-1.183 1.56-1.58 2.401-.71 1.504-.659 3.52-.04 5.047.518 1.194 1.262 2.156 2.46 3.182.94.805 1.23.919 1.375.544.049-.128-.162-.572-.483-1.018-.313-.436-.843-1.362-1.178-2.059-1.382-2.926-.7-5.357.902-8.045.89-1.393 1.403-2.642 1.579-3.852.22-1.515.043-6.079-.236-6.079zm-.757 1.215c-.186 0-.228.26-.228 1.422 0 .782-.08 1.654-.177 1.938-.312.914-1.154 1.737-3.482 3.404-1.684 1.205-3.096 2.652-3.64 3.732-1.666 3.299-.195 7.311 3.42 9.333 1.613.902 2.966 1.253 2.966.768 0-.126-.054-.228-.121-.228s-.632-.332-1.254-.738c-2.69-1.755-3.947-3.927-3.747-6.482.15-1.91.873-3.08 3.796-6.135 2.522-2.636 2.69-2.97 2.693-5.304.001-1.42-.036-1.71-.226-1.71zm1.508.632c-.103.017-.14.905-.142 2.903l-.004 2.926-.744 2.812c-.83 2.54-.954 5.133-.345 7.725.558 2.202.796 2.638 1.567 2.857.343.098.89.355 1.216.572.736.49 1.395.435 2.715-.232 1.92-.97 3.209-2.222 4.067-3.953.745-1.648.856-3.71.068-5.35-.7-1.414-1.882-2.554-4.358-4.197-2.162-1.436-2.617-1.82-3.15-2.652-.322-.503-.369-.724-.308-1.444.04-.468.126-.978.192-1.134.101-.239.069-.268-.202-.182-.26.082-.34.027-.42-.286-.061-.245-.112-.372-.152-.365zm.714 4.586c.034-.007.135.113.252.306.144.237 1.022 1 1.952 1.697 2.888 2.189 5.27 4.378 4.087 8.2-.405 1.146-.99 2.07-1.963 3.098-.544.575-1.266 1.09-1.53 1.09-.047 0 .252-.43.664-.954 1.337-1.7 1.972-3.718 1.79-5.674-.168-1.796-1.557-3.975-3.753-5.89-.912-.796-1.518-1.536-1.512-1.846 0-.016.005-.025.013-.027zm-1.089 15.492c-.208-.006-.297.349-.297 1.121 0 .94.018.988.342.942.302-.042.347-.15.387-.899.032-.613-.019-.902-.183-1.039-.097-.08-.18-.123-.249-.125zm-1.052.28c-.124-.002-.226.14-.327.43-.085.245-.253.481-.373.527-.322.124-.264.55.075.55.162 0 .402-.109.534-.24.441-.442.579-.824.382-1.062-.111-.134-.206-.203-.29-.205zm2.074.063c-.312 0-.28.61.053 1.034.309.392.908.567.908.264 0-.252-.775-1.298-.961-1.298z\"},\"child\":[]}]})(props);\n};\nexport function SiPerplexity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm12.7086.0248-5.7766-5.1509V9.0618l5.7766 5.7766v6.5588zm2.8882-5.0652h-1.733v-1.9723L13.3948 8.245h7.8478v8.087z\"},\"child\":[]}]})(props);\n};\nexport function SiPersistent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.92 3.984a5.866 5.866 0 0 0-1.2-2.09A5.757 5.757 0 0 0 19.814.49a5.505 5.505 0 0 0-4.542 0c-1.425.642-2.55 1.912-3.062 3.413a5.942 5.942 0 0 0-.268 1.158 7.588 7.588 0 0 0-.047 1.167l.02 2.247.034 4.496.011 2.248c.002.375-.002.75.004 1.124.002.186.008.378.007.56.002.18-.01.36-.014.541a7.641 7.641 0 0 1-.138 1.082c-.075.36-.189.71-.34 1.044a5.604 5.604 0 0 1-1.263 1.792c-1.076.998-2.549 1.543-3.992 1.416a5.072 5.072 0 0 1-2.073-.605 5.253 5.253 0 0 1-1.654-1.427 6.092 6.092 0 0 1-.594-.936 5.44 5.44 0 0 1-.412-1.034 5.224 5.224 0 0 1-.167-2.195c.053-.362.137-.72.248-1.063.115-.34.258-.668.428-.982.163-.305.356-.593.574-.86a4.31 4.31 0 0 1 .7-.71c1.007-.846 2.343-1.21 3.707-1.214 1.412.002 2.825.024 4.238.015l-.01-1.535c-1.408.03-2.815.128-4.22.235a7.174 7.174 0 0 0-2.287.569 6.44 6.44 0 0 0-1.04.57 5.997 5.997 0 0 0-1.66 1.646 6.194 6.194 0 0 0-.57 1.025 7.3 7.3 0 0 0-.62 2.267 7.553 7.553 0 0 0 .152 2.412c.187.805.518 1.57.976 2.258a6.4 6.4 0 0 0 1.79 1.788c.73.476 1.552.79 2.412.92.108.02.215.03.322.041.106.012.213.024.326.027.112.007.223.011.335.01a5.842 5.842 0 0 0 1.658-.24 6.783 6.783 0 0 0 1.253-.504c.402-.21.78-.47 1.135-.76a7.046 7.046 0 0 0 1.864-2.492c.05-.108.094-.216.136-.327a5.46 5.46 0 0 0 .219-.67 9.39 9.39 0 0 0 .25-1.384c.017-.233.04-.465.047-.697l.01-.302.015-.28.053-1.125.049-2.248.095-4.495.046-2.248.004-.282.002-.067.002-.047.005-.094a4.026 4.026 0 0 1 .223-1.087 3.91 3.91 0 0 1 .754-1.252 3.525 3.525 0 0 1 1.164-.856 3.421 3.421 0 0 1 1.402-.298c.487-.009.97.087 1.416.282.457.2.867.491 1.205.858.34.372.614.812.79 1.296.178.492.257 1.016.23 1.539a3.964 3.964 0 0 1-.378 1.529 3.765 3.765 0 0 1-2.35 2.016 3.836 3.836 0 0 1-.783.149l-.1.006c-.036.003-.06.006-.11.007l-.271.007-.543.015-2.02.056-.037 1.766 2.057.028.543.007.27.004.29-.003a5.584 5.584 0 0 0 3.29-1.204 5.812 5.812 0 0 0 1.523-1.861 6.19 6.19 0 0 0 .384-4.757\"},\"child\":[]}]})(props);\n};\nexport function SiPersonio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.603 24H2.47v-1.563h19.133Zm-6.167-4.044c.557.145 1.137-.244 1.303-.867.166-.624-.157-1.25-.713-1.39-.556-.142-1.137.24-1.304.865-.167.624.156 1.25.714 1.39zM22.37.676c-1.737-1.347-5.387-.43-8.145.576A41.707 41.705 0 0 0 5.64 5.625C3.624 6.985 1.135 8.987.748 10.814a1.43 1.43 0 0 0 .28 1.263c.505.59 1.354.576 1.516.568a.781.781 0 0 0 .51-1.368.783.783 0 0 0-.58-.193.877.877 0 0 1-.181-.016c.58-2.136 6.69-6.232 12.47-8.342 3.858-1.408 5.964-1.342 6.649-.81.284.22.433.487.23 1.062-.545 1.535-3.2 3.96-7.108 6.48-.725.467-1.434.898-2.11 1.29.544-1.92 1.1-3.88 1.582-5.561a.782.782 0 0 0-1.504-.43 2070.72 2070.634 0 0 0-2.002 7.05c-1.564.811-2.754 1.3-3.22 1.366a.783.783 0 0 0-1.025 1.095c.134.226.4.476.929.476.088 0 .177-.007.264-.02.54-.073 1.417-.395 2.485-.884-.758 2.702-1.373 4.975-1.407 5.282a.781.781 0 0 0 .69.858.668.668 0 0 0 .087 0 .783.783 0 0 0 .775-.685c.062-.38.822-3.133 1.746-6.42a58.241 58.239 0 0 0 4.01-2.401c5.435-3.587 7.007-5.917 7.362-7.241.277-1.02-.017-1.93-.825-2.557z\"},\"child\":[]}]})(props);\n};\nexport function SiPetsathome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.627 17.554c0-.7.399-1.209 1.19-1.209.791 0 1.138.574 1.138 1.203v.065c0 .068-.038.107-.107.107h-1.507c0 .282.227.57.72.57.204 0 .356-.052.551-.12.11-.039.198-.016.198.104 0 .23-.341.535-.928.535-.797 0-1.255-.493-1.255-1.255ZM7.778 16.066v.321h.383c.068 0 .107.039.107.107v.337c0 .068-.039.107-.107.107h-.383v1.025c0 .249.094.36.237.36a.49.49 0 0 0 .175-.043c.101-.042.159.01.159.104 0 .237-.269.425-.597.425-.505 0-.687-.318-.687-.756v-1.776c0-.042.023-.072.062-.091l.502-.211c.088-.039.149-.003.149.091Zm4.43 1.511c0-.756.46-1.232 1.189-1.232.73 0 1.19.476 1.19 1.232 0 .755-.46 1.232-1.19 1.232-.729 0-1.189-.477-1.189-1.232Zm-7.925 0c0-.756.409-1.232 1.031-1.232a.65.65 0 0 1 .613.389v-.24c0-.068.039-.107.107-.107h.499c.068 0 .107.039.107.107v2.163c0 .068-.039.107-.107.107h-.499c-.068 0-.107-.039-.107-.107v-.237a.649.649 0 0 1-.613.389c-.622 0-1.031-.477-1.031-1.232Zm12.574 1.19h-.499c-.068 0-.107-.039-.107-.107v-1.453c0-.243-.072-.288-.201-.288a.515.515 0 0 0-.383.172v1.566c0 .068-.039.107-.107.107h-.499c-.068 0-.107-.039-.107-.107v-1.998c0-.042.022-.071.061-.091l.503-.21c.091-.039.149-.004.149.091v.343c.13-.318.36-.45.678-.45.282 0 .489.132.587.428a.645.645 0 0 1 .638-.428c.38 0 .688.207.688.732v1.579c0 .068-.039.107-.107.107h-.5c-.068 0-.107-.039-.107-.107v-1.452c0-.243-.071-.289-.201-.289a.518.518 0 0 0-.382.172v1.566c.003.078-.036.117-.104.117Zm-6.922 0h-.532c-.068 0-.107-.039-.107-.107v-2.792c0-.068.039-.107.107-.107h.532c.068 0 .107.039.107.107v1.038h1.047v-1.038c0-.068.039-.107.107-.107h.532c.068 0 .107.039.107.107v2.792c0 .068-.039.107-.107.107h-.532c-.068 0-.107-.039-.107-.107v-1.184h-1.047v1.184c0 .068-.039.107-.107.107Zm3.459-.49c.302 0 .461-.236.461-.7 0-.464-.159-.7-.461-.7-.301 0-.46.236-.46.7 0 .464.162.7.46.7Zm-7.921 0c.302 0 .461-.236.461-.7 0-.464-.159-.7-.461-.7-.301 0-.46.236-.46.7 0 .464.159.7.46.7Zm14.805-.995c-.029-.289-.195-.448-.461-.448s-.428.159-.46.448h.921Zm1.734-6.598-.661-.159c-.726-.172-.992-.363-.992-.714 0-.353.353-.586.895-.586.619 0 1.076.214 1.835.726.084.052.159.097.214.097.107 0 .181-.042.201-.201a3.9 3.9 0 0 0 .032-.545c0-.321-.009-.535-.032-.651-.033-.182-.097-.276-.214-.354-.629-.395-1.333-.564-2.111-.564-1.751 0-2.892.853-2.892 2.166 0 .982.713 1.718 1.952 2.026l.694.172c.885.214.992.415.992.727 0 .363-.308.609-.82.609-.811 0-1.408-.298-2.069-.96-.097-.097-.159-.158-.276-.158a.278.278 0 0 0-.256.149c-.405.671-.713.917-1.141.917-.457 0-.778-.321-.778-.908V9.39h1.005c.133 0 .243-.11.243-.243V8.08a.245.245 0 0 0-.243-.243h-1.005V6.579c0-.276-.182-.383-.457-.266l-1.537.642a.288.288 0 0 0-.182.275v2.983c0 1.868-1.248 3.136-2.837 3.136-.833 0-1.589-.321-1.868-1.132.192.075.513.107.97.107 1.835 0 3.113-1.002 3.113-2.454 0-1.291-1.067-2.143-2.656-2.143-.59 0-1.157.113-1.647.321C9.092 6.323 7.415 5.191 5.1 5.191c-1.057 0-2.017.13-2.902.396-.246.074-.395.233-.395.479v4.212a2.958 2.958 0 0 1-1.281-.969C.447 9.212.392 9.15.276 9.15c-.172 0-.276.13-.276.298 0 .727.853 1.686 1.803 2.156v2.902c0 .133.11.244.243.244h1.903a.245.245 0 0 0 .243-.244v-2.198c.14.01.276.023.428.023 1.258 0 2.205-.198 2.896-.646.139 1.904 1.563 3.233 3.735 3.233 1.119 0 2.442-.395 3.178-1.397.353.852 1.183 1.397 2.198 1.397s1.621-.256 2.133-.843c.662.555 1.398.843 2.38.843 1.751 0 2.86-.875 2.86-2.25-.003-.983-.538-1.631-1.988-1.984ZM10.93 9.105c.512 0 .788.308.788.736 0 .713-.639 1.193-1.589 1.193-.331 0-.522-.023-.652-.075.004-1.105.568-1.854 1.453-1.854Zm-6.734 1.514V7.325c0-.202.084-.321.275-.351.289-.052.48-.052.639-.052 1.29 0 2.059.681 2.059 1.813.003 1.193-.914 1.855-2.973 1.884Z\"},\"child\":[]}]})(props);\n};\nexport function SiPeugeot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0001 0c3.499 0 7.1308.2987 10.8171.9349.055 1.4778.1175 3.762.0126 5.7004-.2349 4.3217-1.1861 7.676-2.9943 10.5564-1.8026 2.872-4.5938 5.3416-7.8354 6.8083-3.2416-1.4667-6.0331-3.9362-7.8356-6.8083-1.808-2.8804-2.7594-6.2348-2.9941-10.5564-.1053-1.9383-.0427-4.2226.0124-5.7004C4.8691.2987 8.5011 0 12.0001 0zm0 .4163c-3.4494 0-6.9514.2933-10.4139.8722-.076 2.1923-.076 3.9367-.0005 5.3243.2305 4.248 1.1619 7.5394 2.9309 10.3575 1.7688 2.8179 4.421 5.1457 7.4835 6.5718 3.0622-1.4261 5.7147-3.7539 7.4835-6.5718 1.769-2.8182 2.7001-6.1095 2.9309-10.3575.0755-1.3876.0755-3.132-.0005-5.3243C18.9515.7096 15.4493.4163 12.0001.4163zM11.97 13.0361s.0681.4045.0888.5218c.0116.0665.0141.0843-.0027.1495-.0477.1695-.3633 1.59-.5385 2.6258-.0822.4767-.1533.9498-.1947 1.3546-.0234.23-.0158.2851.0449.4892.172.5767.8082 2.0834.9304 2.3581a.3288.3288 0 0 1 .0257.0951l.0459.3553c-.2038-.3081-1.3115-2.3458-1.7465-3.4742-.0513-.1329-.0612-.1984-.0044-.4428.3025-1.2962 1.1211-3.4992 1.3511-4.0324zm-1.6153-3.1317c.0312.0913.2909.9805.3107 1.1919.016.1174.0133.149-.0284.2614-.2276.606-.9159 2.1129-1.1814 2.6161-.059.1107-.1145.1828-.2256.2958-.2535.2582-.7386.7462-1.039 1.0192-.1091.0993-.1385.1841-.1607.3126-.0358.2063-.0713.5584-.0812.7402-.0086.1599.0173.2347.1064.3931.5294.9451 2.2966 3.1194 2.8001 3.576.0365.0331.0632.0553.1402.1065.074.0494.3154.2061.3154.2061a.085.085 0 0 1 .0239.0257l.0874.1539c-.2256-.1123-.5874-.2928-.7742-.3929a.7527.7527 0 0 1-.1249-.0845c-.5896-.4902-2.3963-2.6064-2.9277-3.49-.1325-.2206-.1461-.292-.1283-.5008.0333-.3887.0849-.8774.1301-1.0916.0274-.1292.0558-.2051.1547-.3192.7533-.8648 2.2059-2.7743 2.6293-3.5908.0471-.0924.0511-.1245.0521-.2117.0027-.253-.078-.7457-.0992-.8702a.2385.2385 0 0 1-.0025-.0591l.0228-.2877zm4.931-.4748c.0812.0377.2137.0801.2732.1502.9366.9784 1.6856 1.9929 1.8356 2.2603.0289.0514.0486.1028.0558.1616.1683 1.4269.0237 2.9385-.3201 4.2535-.0311.1186-.0659.1794-.1799.2651-.7607.5713-2.5689 2.0716-3.176 2.6297a.996.996 0 0 0-.1718.2088c-.153.2511-.3419.6012-.462.825-.1234-.2696-.3924-.9273-.4847-1.1931-.0301-.0867-.0355-.1322-.0037-.2483.1505-.5512.862-2.1538 1.0005-2.4436-.0018.0372.0063.1347-.0079.1693-.0624.1895-.445 1.4526-.5227 2.0003-.0173.1218-.0158.1547 0 .2743.0341.2557.1868.7247.1868.7247.0174-.0414.1887-.3836.309-.4774.7089-.6984 2.1971-1.9725 3.0499-2.6638.0958-.0776.1315-.1295.1528-.2767.1056-.7254.1362-2.0275.0726-2.9751a1.012 1.012 0 0 0-.1708-.5003c-.231-.3417-.5072-.6651-.926-1.0805a.4152.4152 0 0 1-.1157-.2187c-.1222-.6524-.3949-1.8453-.3949-1.8453zm-7.9201 1.5091a.3306.3306 0 0 1 .1794-.0067c.267.0642.8322.2029 1.2594.3123.06.0153.1347.0714.1666.1245l.093.1549a.1822.1822 0 0 1 .0059.1774 21.7947 21.7947 0 0 1-.3055.5651l-.0886.1583c-.1631.2896-.3254.5691-.4176.7161-.0607.0971-.0945.1401-.2026.1784-.4203.148-.9423.3249-1.2525.4255-.0634.0205-.0849.0591-.0726.1295.0222.1282.0938.5636.1212.6906.0101.0469.0476.0843.1172.0709.1834-.0348.6715-.1544.6715-.1544s-.1439.1332-.23.2117a.1456.1456 0 0 1-.0545.0324c-.133.0445-.4578.1356-.559.1579-.079.017-.1293-.0141-.1496-.1035 0 0-.1385-.59-.1885-.7907a1.552 1.552 0 0 0-.0254-.0872c-.0375-.1161-.1276-.3444-.1784-.464a.108.108 0 0 1-.0087-.044c.0015-.1366.0267-.4415.0267-.4415s.2989.2804.4435.3817c.0326.023.0521.0277.0921.0175.1987-.0511.6555-.2024.9062-.2962a.3475.3475 0 0 0 .1463-.1048c.2594-.3135.5846-.8013.7725-1.1692a.2194.2194 0 0 0 .0146-.1631l-.0405-.1334c-.0118-.039-.0531-.083-.0911-.0976a34.0249 34.0249 0 0 0-1.1999-.4329l.0489-.0155zm8.7416-3.7975a.407.407 0 0 1 .2994.0069c.7409.3113 1.9867 1.0437 2.6792 1.5596.0669.0499.0935.0843.1111.1648.1626.7402.2243 1.8845.1219 2.8478-.0074.0692-.0212.1107-.0573.1846-.4388.8981-.9326 1.7434-1.4524 2.3954.0078-.0807.0446-.4617.0471-.6834a.0765.0765 0 0 1 .0304-.0605 9.0576 9.0576 0 0 0 .304-.2468c.0365-.0316.0568-.0553.0758-.086.2117-.3425.5903-1.0595.7428-1.4909a.787.787 0 0 0 .0429-.3281c-.0489-.6011-.1431-1.434-.2836-1.9776a.3337.3337 0 0 0-.1703-.2147c-.1212-.0623-.3588-.1707-.9-.3879a.7631.7631 0 0 1-.2068-.1238c-.3549-.2985-.9097-.7459-1.2549-1.0034a.4301.4301 0 0 0-.3527-.0749 21.4993 21.4993 0 0 0-.7517.1856c-.0612.0166-.0854.018-.1486.0106-.1009-.0117-.3007-.0275-.382-.0336.5871-.2761 1.152-.5142 1.5057-.6437zM8.274 12.0001c-.1836.3024-.403.6236-.5689.8243a.1988.1988 0 0 1-.0834.0588 14.1489 14.1489 0 0 1-.7063.2382l1.3586-1.1213zm-2.4267-.397l-.1083.7484-.3685-.4329c.0671-.1455.2633-.2829.4768-.3155zm-.6866-1.6986l-.133.0838c-.0333.0212-.0424.0304-.0563.0595a2.6968 2.6968 0 0 1-.0856.1616c-.0091.0158-.0336.0403-.0466.0504a16.6112 16.6112 0 0 1-.4773.3533c-.0089.0062-.0202.0035-.0279-.004-.0165-.0166-.0859-.0954-.0982-.1139a.0823.0823 0 0 1-.0151-.0489 2.0329 2.0329 0 0 1 .0062-.1337c.0039-.0509.0185-.0751.0805-.1394.0693-.0719.1449-.1475.2243-.2251.1947-.1641.6863-.5633 1.5642-1.1904a.1927.1927 0 0 0 .0437-.0423c.0921-.1244.354-.4644.4186-.5452a.1928.1928 0 0 1 .0308-.0311 2.4849 2.4849 0 0 1 .2595-.1833c.2445-.1542.7181-.4354.9834-.5898l-.1007.124c-.0056.0055-.0111.0106-.0167.0163a42.2875 42.2875 0 0 0-.5625.4314c-.0286.0227-.04.0425-.0466.0783-.0227.1266-.0605.367-.0716.5001-.0032.039-.02.0583-.0597.0744-.173.0704-.3781.1445-.5439.211-.0356.0141-.0454.0195-.0664.0356-.0166.0128-.2369.2098-.2369.2098s.479-.1181.6547-.1579c.042-.0094.06-.0069.0987.0114.0363.0168.0967.0408.1286.0524.0489.018.0748.0172.1288.0054.1979-.0442.5308-.1233.708-.1695.0921-.024.1424-.0489.2204-.1035.0849-.0591.2999-.2205.2999-.2205s-.004.0285-.0069.0443a.0591.0591 0 0 1-.0161.0318 3.986 3.986 0 0 1-.1581.1777c-.0871.0902-.1392.1223-.2485.168-.5035.21-1.3638.5362-2.0091.7598-.0423.0148-.0606.0269-.0919.059-.0341.0346-.0795.085-.0795.085s.5262.0383.6868.0568c.0521.0059.0893.023.1291.0573.132.1137.5691.5641.6999.7205 0 0-1.2426.2068-1.8184.3499-.0711.0175-.1066.0628-.1227.1198-.0476.1675-.1599.7062-.1599.7062s-.04-.0128-.0958-.045c-.0383-.022-.0577-.0403-.0997-.0847-.1362-.144-.3601-.4198-.4677-.5796-.0316-.0472-.0449-.1072-.0054-.1554.1167-.1438.3512-.4062.4805-.5411.0138-.0146.0313-.04.0499-.0766.0498-.1032.1038-.3175.1282-.4139zm8.0217-2.8166a.1805.1805 0 0 1 .1083.0148l.2564.1228a.0935.0935 0 0 1 .0503.0628c.0348.1468.0775.3412.1061.5065a.2993.2993 0 0 1-.036.1994c-.1061.1846-.324.5166-.446.695-.0271.04-.0304.0885-.022.1361.0553.3059.2858 1.374.2858 1.374l-.1451-.1322a.2102.2102 0 0 1-.0602-.0917c-.1032-.3022-.2962-.9335-.385-1.2406a.1588.1588 0 0 1 .0299-.145c.1513-.1838.3717-.4778.5005-.6641.036-.0524.0479-.1102.0267-.1534a4.6142 4.6142 0 0 0-.1273-.2369.1058.1058 0 0 0-.0597-.0489l-.174-.0558a.1452.1452 0 0 0-.093.0017c-.3791.1376-.8889.336-1.2009.4655-.0457.019-.0644.0205-.1197.0121-.0903-.0133-.3534-.0605-.4825-.0847a.0344.0344 0 0 1-.023-.0511l.153-.2654a.1474.1474 0 0 1 .0955-.0704c.4922-.1123 1.143-.2413 1.7619-.3505zM7.7369 8.3065a.0544.0544 0 0 1 .0548.0326c.0309.072.0225.1523-.0074.2209-.0116.028-.0474.0551-.0767.0616l-.2456.0546a.0227.0227 0 0 1-.0274-.0237l.023-.2886a.04.04 0 0 1 .0365-.0366l.2428-.0208zm2.7941-1.8543a.0366.0366 0 0 1 .0321.0549l-.5987 1.032a.2643.2643 0 0 1-.1552.126l-1.1227.3516a1.6503 1.6503 0 0 1-.3761.0712c-.249.0188-.9886.042-.9886.042l.0162-.0351a.0741.0741 0 0 1 .038-.0368l.35-.1487a.169.169 0 0 0 .0666-.0502l.5405-.6661c.0289-.0356.0666-.0697.1069-.0909.357-.1881.992-.4705 1.4368-.6192a.5085.5085 0 0 1 .1426-.0235l.5116-.0072zm-.6002-1.1984c1.2389-.109 2.9153-.1386 4.5168-.0173a.837.837 0 0 1 .2638.064c.5247.2209 1.4556.7042 2.4906 1.2969a.7764.7764 0 0 1 .1281.0917c.2742.2419.9689.9535.9689.9535l-.2167-.043a.2282.2282 0 0 1-.0844-.0351c-.4383-.2948-1.0782-.6785-1.6145-.949a.5915.5915 0 0 0-.2034-.0598 14.6895 14.6895 0 0 0-.8443-.0618c-.1138-.0047-.1913-.0237-.3026-.0803-.2127-.108-.728-.342-.9847-.44-.1098-.042-.1658-.0519-.2734-.0502-.441.0064-1.4457.0385-1.9588.0704a.2445.2445 0 0 1-.0521-.0025l-.2445-.0383c.6935-.1196 2.4077-.2725 3.1172-.3098l-.2887-.0966a.596.596 0 0 0-.1728-.0299c-.9698-.0218-2.3036-.0178-3.4321.067a.6098.6098 0 0 0-.2021.0504c-.3228.1419-1.11.5692-1.8994 1.0081-.2546.1416-.529.2952-.7731.4326 0 0 .0985-.1268.1175-.1515.0168-.0215.0219-.0255.0447-.0403.1018-.0684.4109-.2678.5343-.3585.2377-.1794.6128-.4956.8364-.6916a.6677.6677 0 0 0 .1288-.1529c.0723-.1171.1513-.2441.1999-.3145.0414-.0611.1123-.1038.2006-.1117zM4.655 2.404c.306-.0316.477.0875.477.3975v.1715c0 .3172-.171.4455-.477.4774a71.2552 71.2552 0 0 0-1.269.144v.4687c-.0886.0109-.1774.0218-.266.0331V2.5814a70.6625 70.6625 0 0 1 1.535-.1774zm14.2032-.0491a71.245 71.245 0 0 1 2.022.2263v.2444a68.7666 68.7666 0 0 0-.8741-.105v1.2707a94.0383 94.0383 0 0 0-.2663-.0299V2.6906a68.3322 68.3322 0 0 0-.8815-.0914v-.2443zM7.6494 2.1558v.2441a71.8527 71.8527 0 0 0-1.6641.1223v.3731a68.5725 68.5725 0 0 1 1.48-.1107v.2444a70.5409 70.5409 0 0 0-1.48.1104v.4094a69.7002 69.7002 0 0 1 1.6641-.1223v.2441a70.9377 70.9377 0 0 0-1.9245.145v-1.515a70.5346 70.5346 0 0 1 1.9245-.1448zm8.6326.4149c0-.3397.1683-.4097.5476-.384.3332.023.6658.0479.9988.0756.3295.0272.5469.1198.5469.4665v.6765c0 .3402-.1878.4015-.5469.3719a72.5525 72.5525 0 0 0-.9988-.0754c-.3628-.0245-.5476-.0946-.5476-.4546v-.6765zm-2.5812-.5284c.6426.0153 1.285.0395 1.9274.0726v.2441a70.7366 70.7366 0 0 0-1.6666-.0657v.3728c.4943.0139.9884.0327 1.4823.0567v.2444a70.4407 70.4407 0 0 0-1.4822-.0566v.4092a69.1564 69.1564 0 0 1 1.6666.066v.2441a71.29 71.29 0 0 0-1.9274-.0726v-1.515zm-3.344-.0013v1.0958c0 .3467-.1819.4228-.5484.4341a68.0289 68.0289 0 0 0-.9573.0361c-.3401.0153-.5479-.0494-.5479-.3926V2.1186l.2606-.0133v1.142c0 .0694.0595.126.1385.1223a70.1195 70.1195 0 0 1 1.2547-.0475c.0795-.0022.1323-.063.1323-.1324v-1.142c.089-.0025.1781-.0047.2675-.0067zm6.3245.3802c-.0792-.0054-.1387.0502-.1387.1295v.7491c0 .0694.0595.1423.1387.1478.4321.0287.8638.0613 1.2954.0978.0691.0059.1382-.0576.1382-.1268v-.7493c0-.0791-.0691-.1445-.1382-.1505a70.1864 70.1864 0 0 0-1.2954-.0976zm-5.1721-.3976c.479-.0035.958-.0017 1.4368.0047v.2441a72.1473 72.1473 0 0 0-1.536-.004c-.0693.0007-.1387.0608-.1387.1302v.759c0 .0694.0693.1381.1387.1374.4593-.004.9183-.0032 1.3776.002v-.4094a66.592 66.592 0 0 0-.7994-.0042v-.2443c.3534 0 .7068.0027 1.0602.0079v.8976a71.1228 71.1228 0 0 0-1.4896-.0064c-.3635.0025-.5484-.0603-.5484-.4136v-.6602c0-.3299.1651-.4383.4988-.4408zm-6.7546.6162l-.0206.0004a70.2289 70.2289 0 0 0-1.348.1522V3.35a71.0344 71.0344 0 0 1 1.348-.152c.0689-.0074.138-.0704.138-.1364v-.3068c0-.0694-.0691-.1218-.138-.1146l.0206-.0004z\"},\"child\":[]}]})(props);\n};\nexport function SiPexels (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.5 0A1.5 1.5 0 000 1.5v21A1.5 1.5 0 001.5 24h21a1.5 1.5 0 001.5-1.5v-21A1.5 1.5 0 0022.5 0h-21zm6.75 6.75h5.2715a3.843 3.843 0 01.627 7.6348V17.25H8.25V6.75zm1.5 1.5v7.5h2.8984v-2.8145h.873a2.343 2.343 0 100-4.6855H9.75Z\"},\"child\":[]}]})(props);\n};\nexport function SiPfsense (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.013 0C.898 0 0 .929 0 2.044v17.775L3.252 8.27h3.282L6.1 9.785h.063c.186-.217.433-.403.742-.62.31-.216.62-.402.96-.588.342-.186.713-.31 1.116-.433.402-.124.805-.155 1.208-.155.867 0 1.579.154 2.198.433.62.279 1.084.712 1.455 1.239.31.464.5 1.019.593 1.669.006.06.027.135.027.189.062.712-.031 1.518-.28 2.385a8.571 8.571 0 0 1-1.02 2.322 9.885 9.885 0 0 1-1.58 1.95 8.125 8.125 0 0 1-2.044 1.364 5.536 5.536 0 0 1-2.354.495 5.655 5.655 0 0 1-1.982-.34c-.588-.217-.99-.62-1.238-1.177h-.062L2.353 24h19.603A2.042 2.042 0 0 0 24 21.956V4.706c-.093-.03-.186-.06-.248-.092a2.771 2.771 0 0 0-.557-.062c-.557 0-1.022.124-1.394.372-.34.248-.65.743-.867 1.518l-.526 1.826h2.013l.495 1.58-1.3 1.27h-2.014l-2.446 8.67h-3.53l2.446-8.67h-1.455l.805-2.85h1.425l.557-2.044c.185-.619.403-1.238.681-1.795a4.996 4.996 0 0 1 1.053-1.487c.433-.434.99-.775 1.641-1.022.65-.248 1.487-.372 2.447-.372.248 0 .464 0 .712.031A2.082 2.082 0 0 0 21.988 0zm6.565 11.118c-.898 0-1.672.278-2.323.805-.65.526-1.083 1.239-1.331 2.106-.248.867-.217 1.579.155 2.105.31.557.929.805 1.858.805.898 0 1.672-.278 2.322-.805.65-.526 1.115-1.238 1.363-2.105.247-.867.185-1.58-.155-2.106-.34-.527-.991-.805-1.89-.805Z\"},\"child\":[]}]})(props);\n};\nexport function SiPhabricator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.18 10.018l-4.426-4.449C17.053 3.782 14.66 2.665 12 2.665S6.947 3.783 5.246 5.568L.821 10.02a2.802 2.802 0 0 0 0 3.962l4.542 4.578c1.692 1.711 4.04 2.773 6.637 2.773s4.945-1.062 6.637-2.774l4.543-4.579a2.802 2.802 0 0 0 0-3.962zM12 19.384a7.384 7.384 0 1 1 0-14.768 7.384 7.384 0 0 1 0 14.768zm3.651-7.572l.999-1.014-.447-1.028H14.78l-.456-.45-.038-1.437-1.008-.431-1.01.998h-.624l-1.047-1.006-1.022.415.035 1.406-.444.443-1.444-.014-.409 1.023 1.034 1.01.006.633-.996 1.007.44 1.031 1.428-.002.456.453.016 1.422 1.068.447.965-1.009.636.01 1.028 1.011 1.044-.423-.043-1.409.442-.44 1.43.013.423-1.03-1.03-1-.009-.629zm-3.715 1.806a1.533 1.533 0 1 1 0-3.065 1.533 1.533 0 0 1 0 3.065z\"},\"child\":[]}]})(props);\n};\nexport function SiPhilipshue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.672 9.6c-2.043 0-3.505 1.386-3.682 3.416h-.664c-.247 0-.395.144-.395.384 0 .24.148.384.395.384h.661c.152 2.09 1.652 3.423 3.915 3.423.944 0 1.685-.144 2.332-.453.158-.075.337-.217.292-.471a.334.334 0 0 0-.15-.242c-.104-.065-.25-.072-.422-.02a7.93 7.93 0 0 0-.352.12c-.414.146-.771.273-1.599.273-1.75 0-2.908-1.023-2.952-2.605v-.025h5.444c.313 0 .492-.164.505-.463v-.058C23.994 9.865 21.452 9.6 20.672 9.6zm2.376 3.416h-5l.004-.035c.121-1.58 1.161-2.601 2.649-2.601 1.134 0 2.347.685 2.347 2.606zM9.542 10.221c0-.335-.195-.534-.52-.534s-.52.2-.52.534v2.795h1.04zm4.29 3.817c0 1.324-.948 2.361-2.16 2.361-1.433 0-2.13-.763-2.13-2.333v-.282h-1.04v.34c0 2.046.965 3.083 2.868 3.083 1.12 0 1.943-.486 2.443-1.445l.02-.036v.861c0 .334.193.534.519.534.325 0 .52-.2.52-.534v-2.803h-1.04zm.52-4.351c-.326 0-.52.2-.52.534v2.795h1.04v-2.795c0-.335-.195-.534-.52-.534zM3.645 9.6c-1.66 0-2.31 1.072-2.471 1.4l-.135.278V7.355c0-.347-.199-.562-.52-.562-.32 0-.519.215-.519.562v5.661h1.039v-.015c0-1.249.72-2.592 2.304-2.592 1.29 0 2.001.828 2.001 2.332v.275h1.04v-.246c0-2.044-.973-3.17-2.739-3.17zM0 16.558c0 .347.199.563.52.563.32 0 .519-.216.519-.563v-2.774H0zm5.344 0c0 .347.2.563.52.563s.52-.216.52-.563v-2.774h-1.04z\"},\"child\":[]}]})(props);\n};\nexport function SiPhoenixframework (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.012 15.241-.188-.036c-1.34-.248-2.186-1.06-2.588-2.334-.25-.794.204-1.38 1.038-1.416.682-.032 1.15.36 1.562.816.532.588 1.02 1.216 1.542 1.814.754.86 1.64 1.412 2.854 1.24a5.404 5.404 0 0 0 2.86-1.308c.124-.108.26-.2.392-.302l-.084-.098a6.034 6.034 0 0 1-2.12.252c-1.092-.054-2.132-.282-3.064-.882-.848-.548-1.476-1.28-1.774-2.26-.24-.79.252-1.344 1.072-1.23.313.049.606.187.842.398.2.168.39.346.594.51.958.77 2.294.812 3.508-.022-1.996-.01-3.354-1.108-4.548-2.5-.466-.544-.922-1.1-1.4-1.636-.92-1.038-1.944-1.952-3.346-2.264-1.79-.398-3.518-.136-5.176.622A4.214 4.214 0 0 0 0 5.217h.352c.836-.022 1.464.35 1.916 1.034.328.498.482 1.06.6 1.64.176.86.086 1.734.188 2.598.26 2.22 1.394 3.768 3.506 4.56.774.292 1.568.39 2.45.19v.002zM3.674 5.113c-.334.084-.6-.05-.874-.328.47-.118.886-.164 1.332-.18a.562.562 0 0 1-.458.508zm10.938 12.96c-.03-.212-.212-.306-.356-.42-.634-.492-1.378-.668-2.164-.682a4.08 4.08 0 0 1-1.378-.208c-.204-.076-.43-.174-.426-.436.006-.266.238-.34.448-.404.174-.052.352-.084.548-.13-.5-.32-.988-.364-1.636-.102-1.024.41-2.032.36-3.052-.006-.574-.208-1.086-.534-1.618-.824l-.026.02c.44.722 1.038 1.304 1.71 1.8 1.296.96 2.712 1.53 4.37 1.276a22.8 22.8 0 0 1 1.614-.19c.676-.054 1.32.136 1.966.308v-.002zm-3.124-10.37c-.036-.026-.07-.09-.144-.024a5.258 5.258 0 0 0 2.284 1.776c1.488.604 3 .708 4.544.174 1.2-.414 2.06-.01 2.508 1.156.066-1.352-.73-2.338-1.996-2.53-.712-.11-1.37.128-2.038.32-1.856.54-3.584.274-5.16-.872h.002zm9.256 5.272.726.064c-.546-.48-1.212-.52-1.888-.48-1.026.058-1.766.65-2.44 1.356-.594.624-1.13 1.324-2.016 1.574l.02.04c.12.002.24.008.36.002 1.288-.058 2.5-.33 3.464-1.264.306-.294.576-.62.87-.926.226-.258.562-.394.904-.366zm-2.992-1.596c-.96.084-1.794.48-2.58 1.006-.602.404-1.248.594-1.972.468-.128-.022-.258-.04-.384-.058l-.006.054c.046.024.092.05.14.07.12.048.24.106.364.136 1.396.33 2.732.16 3.936-.618.76-.49 1.546-.582 2.398-.456.086.014.172.028.258.036.08.008.164.088.272 0a3.454 3.454 0 0 0-2.426-.638zm-3.434-3.26a2.68 2.68 0 0 0 1.534-.364c-.154.014-.22.014-.282.026a2.296 2.296 0 0 1-1.96-.472l-.646-.5c-.856-.652-1.836-.872-2.91-.852.018.052.02.088.038.106 1.168 1.18 2.52 1.996 4.226 2.054v.002zm8.452 6.06c-.724-.72-1.694-.81-2.59-.186.594.028 1.04.216 1.4.592.128.134.262.26.404.378.548.44 1.474.46 2.016.052-.636-.248-.636-.248-1.23-.838v.002zm-7.198 5.486c-.634-1.18-1.7-1.448-2.936-1.368.364.1.708.26 1.02.474.286.2.526.448.764.702.472.504 1.208.812 1.696.708-.224-.14-.546-.514-.546-.514h-.012l.008.006.004.018c.004-.02.006-.016.008-.01h.02l-.028-.012v.01l.01.004s.114.208-.008-.018z\"},\"child\":[]}]})(props);\n};\nexport function SiPhonepe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.206 9.941h2.949v4.692c-.402.201-.938.268-1.34.268-1.072 0-1.609-.536-1.609-1.743V9.941zm13.47 4.816c-1.523 6.449-7.985 10.442-14.433 8.919C2.794 22.154-1.199 15.691.324 9.243 1.847 2.794 8.309-1.199 14.757.324c6.449 1.523 10.442 7.985 8.919 14.433zm-6.231-5.888a.887.887 0 0 0-.871-.871h-1.609l-3.686-4.222c-.335-.402-.871-.536-1.407-.402l-1.274.401c-.201.067-.268.335-.134.469l4.021 3.82H6.386c-.201 0-.335.134-.335.335v.67c0 .469.402.871.871.871h.938v3.217c0 2.413 1.273 3.82 3.418 3.82.67 0 1.206-.067 1.877-.335v2.145c0 .603.469 1.072 1.072 1.072h.938a.432.432 0 0 0 .402-.402V9.874h1.542c.201 0 .335-.134.335-.335v-.67z\"},\"child\":[]}]})(props);\n};\nexport function SiPhosphoricons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.404.001H3.866a.618.618 0 0 0-.619.619v15.173A8.217 8.217 0 0 0 11.449 24a.617.617 0 0 0 .618-.619v-6.969h.332a8.204 8.204 0 0 0 7.715-5.031 8.216 8.216 0 0 0 0-6.349A8.214 8.214 0 0 0 12.399.001h.005Zm-1.579 22.736a6.98 6.98 0 0 1-6.317-6.317h6.317v6.317Zm0-9.562L4.869 1.238h5.967l-.011 11.937Zm1.579 2h-.331V1.238h.331a6.975 6.975 0 0 1 5.016 1.993 6.986 6.986 0 0 1 1.546 2.277 6.987 6.987 0 0 1 0 5.397 6.975 6.975 0 0 1-6.562 4.27Z\"},\"child\":[]}]})(props);\n};\nexport function SiPhotobucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9916 11.4983C23.7324 5.0509 18.4725 0 12.0083 0c-6.6146.0084-12 5.3854-12 12s5.3854 12 12 12c6.414 0 11.6488-4.984 11.975-11.3728 0-.0335 0-.0586.0084-.092zm-6.0125-7.1248c.0752.0251.1505.0586.2341.1004a7.8226 7.8226 0 0 0-1.9902-.2593c-3.9972 0-7.4007 3.1108-7.752 7.0913-.0078.131-.0167.262-.025.393 0 .1004-.0085.2008-.0085.3095 0 .1003 0 .2007.0084.2927 0 .0935.0252.12.0252.418.3512 3.9722 3.7547 7.0746 7.7519 7.0746.6857 0 1.3547-.092 1.9902-.2592-.0213 0-.1057.0492-.2341.092-.0787.0197-.0313.0141-.1088.0334-.195.078-.3957.1394-.5937.209-.3658.1046-.53.1442-.6188.159-.2014.0533-.962.2007-1.731.2007-4.524 0-8.2118-3.6795-8.2118-8.2119s3.6794-8.2119 8.2118-8.2119c.2592 0 .5185.0168.7944.0419.2059.0137.4498.0572.7694.117.1421.0303.2843.0614.4264.092.229.056.4517.1338.6774.2007.2886.105.2882.1128.3512.1338zm-8.6802 7.476v-.1004c.1255-2.1156 1.89-3.7798 4.014-3.7798 2.216 0 4.0223 1.8063 4.0223 4.0223s-1.8063 4.0223-4.0223 4.0223c-2.124 0-3.8885-1.6557-4.014-3.7547v-.0418c-.0183-.164 0-.2535 0-.368zm4.0224 5.0341c2.6926 0 4.8836-2.191 4.8836-4.8836 0-2.6927-2.191-4.8836-4.8836-4.8836-.1171 0-.2258.0083-.343.0167a5.06 5.06 0 0 1 1.3882-.1923c2.793 0 5.0593 2.2745 5.0593 5.0592 0 2.7847-2.2746 5.0592-5.0593 5.0592a5.105 5.105 0 0 1-1.3881-.1923c.1139.0129.2286.0112.3429.0167zM20.287 12c0-3.2279-2.6007-5.862-5.8119-5.9205a6.269 6.269 0 0 1 .8028-.0502c3.2948 0 5.9791 2.6843 5.9791 5.979 0 3.2949-2.6843 5.9792-5.979 5.9792-.276 0-.5436-.0168-.8029-.0502 3.2112-.0753 5.8119-2.7094 5.8119-5.9373zm-5.009 6.832c3.7714 0 6.8403-3.069 6.8403-6.8404s-3.069-6.8404-6.8404-6.8404h-.0752c.3345-.0502.669-.0836 1.0118-.0836 3.6711 0 6.6983 2.86 6.9073 6.5226v.8028c-.2007 3.6627-3.2362 6.5227-6.9073 6.5227 0-.0043-.3691.0152-1.0118-.0836h.0752zm-3.2698 4.2983C5.8703 23.1303.878 18.138.878 12S5.8704.8697 12.0083.8697c1.9401 0 3.7548.485 5.3436 1.3547-.1547-.0773-1.0103-.3596-1.1206-.3596-.1254-.0334-.2508-.0669-.368-.092-.2798-.0646-1.2458-.2676-2.3748-.2676C7.6934 1.4885 2.9854 6.205 2.9854 12s4.7163 10.5115 10.5115 10.5115c1.2478 0 2.2205-.2353 2.2829-.2509.2278-.0439.4826-.1254.5352-.1254.2102-.0418.8923-.2789 1.0536-.3595-1.5888.8613-3.4202 1.3547-5.3603 1.3547zm4.9339-2.124c-.2474.0927-.6369.2302-.9283.2927-.117.0334-.2341.0585-.3763.092-.027.0099-.056.0111-.0836.0167a3.5193 3.5193 0 0 1-.4098.0752 10.0077 10.0077 0 0 1-1.664.1422c-5.3186 0-9.6502-4.3317-9.6502-9.6502s4.34-9.6251 9.6585-9.6251c1.8086 0 3.0386.4746 3.671.7275l.3513.1505c.1505.067.2927.1422.4348.2175-.1375-.0525-.2787-.0948-.418-.1422-.3346-.1045-.7668-.1896-.8781-.2174-.4264-.0753-.6721-.107-.8446-.117-.2927-.0252-.5854-.0419-.8697-.0419-5.009 0-9.0816 4.0725-9.0816 9.0732s4.0725 9.0732 9.0732 9.0732c.2843 0 .577-.0168.8613-.0419.1548-.0085.792-.09 1.062-.1672.092-.0167.1757-.0418.2677-.0585.7113-.1779.7506-.2426.8195-.2426-.1422.0753-.2844.1505-.4349.2174-.2868.1119-.2934.1259-.5602.2259z\"},\"child\":[]}]})(props);\n};\nexport function SiPhotocrowd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.182 0C.977 0 0 1.058 0 2.364v19.462C0 23.026.977 24 2.182 24h19.636A2.179 2.179 0 0 0 24 21.826V2.364C24 1.058 23.023 0 21.818 0zM12 3.49a1.022 1.022 0 1 1 0 2.045 1.022 1.022 0 0 1 0-2.044zM8.326 4.498a1.022 1.022 0 1 1-.142 2.039 1.022 1.022 0 0 1 .142-2.04zm7.347 0a1.02 1.02 0 0 1 .955 1.529 1.021 1.021 0 1 1-.955-1.53zm-10.23 2.74a1.02 1.02 0 1 1 .145 2.037 1.02 1.02 0 0 1-.145-2.036zm13.113 0a1.02 1.02 0 1 1-.142 2.036 1.02 1.02 0 0 1 .142-2.035zm-7.497.116a1.021 1.021 0 1 1 .119 2.039 1.021 1.021 0 0 1-.12-2.04zm3.687.88a1.021 1.021 0 1 1 .001 2.042 1.021 1.021 0 0 1 0-2.043zm-6.308 1.864a1.02 1.02 0 1 1-.119 2.04 1.02 1.02 0 0 1 .12-2.04zm3.561.88a1.023 1.023 0 1 1-.001 2.047 1.023 1.023 0 0 1 .001-2.047zm-7.488.002a1.022 1.022 0 1 1-.001 2.044 1.022 1.022 0 0 1 0-2.044zm14.977 0a1.02 1.02 0 1 1-.001 2.042 1.02 1.02 0 0 1 0-2.042zm-3.793.881a1.02 1.02 0 1 1-.119 2.038 1.02 1.02 0 0 1 .12-2.038zm-6.442 1.866a1.021 1.021 0 1 1-.001 2.042 1.021 1.021 0 0 1 0-2.042zm3.568.883a1.02 1.02 0 1 1 .12 2.038 1.02 1.02 0 0 1-.12-2.038zm-7.235.116a1.02 1.02 0 0 1 .44 1.904 1.022 1.022 0 1 1-.44-1.904zm12.827 0a1.022 1.022 0 1 1 .142 2.038 1.022 1.022 0 0 1-.142-2.038zm-10.229 2.74a1.021 1.021 0 1 1 .142 2.038 1.021 1.021 0 0 1-.142-2.038zm7.63 0a1.02 1.02 0 0 1 .44 1.904 1.022 1.022 0 1 1-.44-1.904zM12 18.463a1.022 1.022 0 1 1 0 2.045 1.022 1.022 0 0 1 0-2.045z\"},\"child\":[]}]})(props);\n};\nexport function SiPhoton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.454 16.915-3.379 4.091a13.47 13.47 0 0 1-1.089-1.079l4.091-3.38c.123.116.252.246.377.368Zm1.045.809-2.517 4.679a11.334 11.334 0 0 1-1.281-.856l3.364-4.138c.357.262.434.262.434.315Zm-1.913-1.772-4.119 3.345a11.75 11.75 0 0 1-.856-1.277l4.682-2.518c.008.053.235.371.293.45ZM9.682 18.3l-1.558 5.063a12.111 12.111 0 0 1-1.419-.588l2.492-4.693c.416.192.478.177.485.217v.001ZM5.72 14.319c.059.163.125.324.198.481l-4.691 2.496a11.458 11.458 0 0 1-.589-1.423l5.082-1.554Zm5.23 4.292-.532 5.287a12.157 12.157 0 0 1-1.51-.315l1.532-5.073c.167.041.337.073.51.101Zm-5.56-5.56c.026.17.06.339.1.509L.402 15.09a11.897 11.897 0 0 1-.299-1.508l5.287-.531Zm-.079-1.306v.522l-5.286.513a11.623 11.623 0 0 1 0-1.539l5.286.504Zm6.948 6.942.51 5.29c-.513.03-1.026.03-1.539 0l.51-5.29c.173.007.346.007.519 0Zm2.832 4.912c-.496.137-1.001.242-1.51.315l-.532-5.287c.17-.026.343-.06.51-.1l1.532 5.072Zm-9.6-13.16c-.041.17-.076.339-.101.513l-5.286-.535c.067-.508.167-1.01.299-1.505l5.088 1.53v-.003Zm9.311 7.644 2.492 4.692c-.462.225-.937.422-1.423.588l-1.551-5.082c.16-.059.32-.125.482-.198ZM5.928 9.177a5.404 5.404 0 0 0-.201.481L.651 8.085c.168-.487.366-.962.595-1.423L5.928 9.18v-.003Zm10.003 8.232 3.364 4.126c-.409.311-.837.597-1.281.856L15.5 17.724c.148-.091.29-.186.431-.29v-.025ZM6.586 8.063a5.238 5.238 0 0 0-.29.431L1.617 5.976c.259-.443.545-.87.856-1.277l4.113 3.364Zm14.427 11.864a12.27 12.27 0 0 1-1.089 1.089l-3.379-4.101c.129-.116.245-.245.368-.368l4.1 3.38ZM4.075 2.987l3.379 4.091c-.129.115-.245.245-.368.368l-4.091-3.38c.688-.778 1.163-1.135 1.08-1.079Zm18.313 15.029a11.61 11.61 0 0 1-.856 1.281l-4.116-3.364a6.02 6.02 0 0 0 .29-.431l4.682 2.518v-.004ZM5.985 1.612l2.517 4.679a7.444 7.444 0 0 0-.434.29L4.704 2.468c.408-.314.835-.6 1.281-.856ZM23.36 15.873c-.163.487-.36.963-.588 1.423L18.08 14.8c.072-.157.138-.318.199-.481l5.081 1.554ZM8.137.633l1.548 5.085a5.78 5.78 0 0 0-.481.198L6.715 1.221A12.33 12.33 0 0 1 8.137.633Zm15.758 12.949a11.738 11.738 0 0 1-.315 1.508l-5.072-1.53c.041-.17.076-.339.101-.509l5.286.531ZM10.418.101l.532 5.287a7.537 7.537 0 0 0-.51.1L8.908.416a12.157 12.157 0 0 1 1.51-.315Zm13.556 11.131c.034.511.034 1.024 0 1.535l-5.286-.506v-.523l5.286-.506ZM12.769.022l-.51 5.29h-.519l-.51-5.29a13.17 13.17 0 0 1 1.539 0Zm10.827 8.89c.138.496.243.999.315 1.508l-5.286.535a6.368 6.368 0 0 0-.101-.513l5.072-1.53ZM15.1.416l-1.541 5.073a8.672 8.672 0 0 0-.51-.101l.532-5.287c.709.094 1.498.273 1.519.315Zm2.203.824-2.502 4.68a5.199 5.199 0 0 0-.481-.202L15.871.636c.745.255 1.413.572 1.432.604Zm5.466 5.47c.227.46.423.936.588 1.422l-5.078 1.573c-.06-.16-.129-.314-.202-.481l4.692-2.514Zm-6.854-.133a7.972 7.972 0 0 0-.434-.289l2.517-4.683c.446.257.874.543 1.281.856l-3.364 4.116Zm6.46-.613L17.7 8.481a6.825 6.825 0 0 0-.29-.434l4.11-3.367c0 .03.378.464.855 1.284Zm-1.362-1.892-4.091 3.383c-.113-.133-.245-.247-.368-.371l3.38-4.091c-.065-.044.476.387 1.079 1.079Z\"},\"child\":[]}]})(props);\n};\nexport function SiPhotopea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.098 0A3.899 3.899 0 0 1 24 3.903v16.194A3.899 3.899 0 0 1 20.098 24H6.393l-.051-10.34v-.074c0-3.92 3.112-7.09 6.963-7.09 2.31 0 4.177 1.902 4.177 4.254 0 2.352-1.867 4.254-4.177 4.254-.77 0-1.393-.634-1.393-1.418 0-.783.623-1.418 1.393-1.418.769 0 1.392-.634 1.392-1.418 0-.784-.623-1.418-1.392-1.418-2.31 0-4.178 1.9-4.178 4.253 0 2.352 1.868 4.254 4.178 4.254 3.85 0 6.962-3.169 6.962-7.09 0-3.92-3.112-7.089-6.962-7.089-5.39 0-9.75 4.436-9.75 9.925v.086l.023 10.315A3.899 3.899 0 0 1 0 20.097V3.903A3.899 3.899 0 0 1 3.902 0z\"},\"child\":[]}]})(props);\n};\nexport function SiPhp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.01 10.207h-.944l-.515 2.648h.838c.556 0 .97-.105 1.242-.314.272-.21.455-.559.55-1.049.092-.47.05-.802-.124-.995-.175-.193-.523-.29-1.047-.29zM12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12c0-3.486-5.373-6.312-12-6.312zm-3.26 7.451c-.261.25-.575.438-.917.551-.336.108-.765.164-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65c.797 0 1.378.209 1.744.628.366.418.476 1.002.33 1.752a2.836 2.836 0 0 1-.305.847c-.143.255-.33.49-.561.703zm4.024.715l.543-2.799c.063-.318.039-.536-.068-.651-.107-.116-.336-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218c.767 0 1.295.134 1.586.401s.378.7.263 1.299l-.572 2.944h-1.389zm7.597-2.265a2.782 2.782 0 0 1-.305.847c-.143.255-.33.49-.561.703a2.44 2.44 0 0 1-.917.551c-.336.108-.765.164-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649c.797 0 1.378.209 1.744.628.366.417.477 1.001.331 1.751zM17.766 10.207h-.943l-.516 2.648h.838c.557 0 .971-.105 1.242-.314.272-.21.455-.559.551-1.049.092-.47.049-.802-.125-.995s-.524-.29-1.047-.29z\"},\"child\":[]}]})(props);\n};\nexport function SiPhpmyadmin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.463 3.476C6.69 5.225 7.497 7.399 7.68 9.798a12.9 12.9 0 0 1-.672 5.254 4.29 4.29 0 0 1 2.969-1.523c.05-.004.099-.006.148-.008.08-.491.47-3.45-.977-6.68-1.068-2.386-3-3.16-3.685-3.365Zm1.777.037s2.406 1.066 3.326 5.547c.607 2.955.049 4.836-.402 5.773a7.347 7.347 0 0 1 4.506-1.994c.86-.065 1.695.02 2.482.233-.1-.741-.593-3.414-2.732-5.92-3.263-3.823-7.18-3.64-7.18-3.64Zm14.817 9.701-17.92 3.049a2.284 2.284 0 0 1 1.535 2.254 2.31 2.31 0 0 1-.106.61c.055-.027 2.689-1.275 6.342-2.034 3.238-.673 5.723-.36 6.285-.273a6.46 6.46 0 0 1 3.864-3.606zm-6.213 4.078c-2.318 0-4.641.495-6.614 1.166-2.868.976-2.951 1.348-5.55 1.043C1.844 19.286 0 18.386 0 18.386s2.406 1.97 4.914 2.127c1.986.125 3.505-.822 5.315-1.414 2.661-.871 4.511-.97 6.253-.975C19.361 18.116 24 19.353 24 19.353s-2.11-1.044-5.033-1.72a13.885 13.885 0 0 0-3.123-.34Z\"},\"child\":[]}]})(props);\n};\nexport function SiPhpstorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.833 6.611v-.055c0-1-.667-1.5-1.778-1.5H4.389v3.056h1.722c1.111-.001 1.722-.668 1.722-1.501zM0 0v24h24V0H0zm2.167 3.111h4.056c2.389 0 3.833 1.389 3.833 3.445v.055c0 2.333-1.778 3.5-4.056 3.5H4.333v3H2.167v-10zM11.278 21h-9v-1.5h9V21zM18.5 10.222c0 2-1.5 3.111-3.667 3.111-1.5-.056-3-.611-4.222-1.667l1.278-1.556c.89.722 1.833 1.222 3 1.222.889 0 1.444-.333 1.444-.944v-.056c0-.555-.333-.833-2-1.277C12.333 8.555 11 8 11 6v-.056c0-1.833 1.444-3 3.5-3 1.444 0 2.723.444 3.723 1.278l-1.167 1.667c-.889-.611-1.777-1-2.611-1-.833 0-1.278.389-1.278.889v.056c0 .667.445.889 2.167 1.333 2 .556 3.167 1.278 3.167 3v.055z\"},\"child\":[]}]})(props);\n};\nexport function SiPiaggiogroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.657 21.15h-.42v-2.495h.42v2.494zm-9.79.001h-.42v-2.495l.582.03c.293-.015.58.082.794.27a.964.964 0 0 1 .337.72.63.63 0 0 1-.033.242c-.127.478-.6.806-1.13.781l-.13.002v.45zm0-.82h.264a.696.696 0 0 0 .543-.422.528.528 0 0 0 .064-.24c0-.449-.419-.661-.872-.63v1.291zm10.144-.413c0-.698.608-1.264 1.359-1.264s1.358.566 1.358 1.264c-.003.7-.604 1.271-1.357 1.29h-.003c-.754-.018-1.355-.59-1.357-1.29zm.45.003c-.002.471.4.858.907.871a.94.94 0 0 0 .651-.257.81.81 0 0 0 .255-.614c.017-.482-.388-.886-.906-.903-.513.028-.912.425-.906.903zm-1.74 1.228v-1.317h-.42v.93c-1.034.209-1.066-.752-1.066-.843 0-.57.612-1.085 1.486-.842v-.421c-1.65-.33-1.972.925-1.972 1.262 0 0-.163 1.622 1.972 1.231zm-6.786-1.231v-1.262h-.453v2.493h.453v-1.231zm4.46 1.231.008.004V19.83h-.388v.09l-.032.842c-1.035.209-1.067-.752-1.067-.843 0-.57.581-1.085 1.487-.842v-.421c-1.649-.33-2.004.925-1.971 1.262 0 0-.17 1.622 1.962 1.231zm-3.813 0h-.388l.486-1.231.484-1.262h.362l.478 1.262.484 1.231h-.453l-.194-.45h-1.065l-.194.45zm.355-.812h.808l-.163-.421-.224-.63-.258.63-.163.421zm.589-14.813v-.06C11.454 2.4 8.06 2.34 8.06 2.34H5.474v6.217h2.53s3.522.093 3.522-3.033zM22.801 0v21.227c.005.281-.043.561-.141.827-.274.7-.939 1.075-1.937 1.075h-7.42L12.035 24l-1.306-.871h-7.39a2.306 2.306 0 0 1-1.537-.54l-.06-.056a1.76 1.76 0 0 1-.402-.614 1.952 1.952 0 0 1-.142-.73V0h21.603zM2.923 16.312h3.004v-.09c-.454 0-.453-.572-.453-1.022V9.162s2.908.06 4.04.06c.64-.002 1.277-.063 1.905-.18 1.422-.337 3.071-1.203 3.102-3.516l.002-.06c0-3.485-4.202-3.756-4.202-3.756H2.923v.103c.225 0 .453.25.453 1.04v12.349c0 .45-.083.992-.453.992v.118zM22.312.46 2.104 22.22l.02.018c.33.286.766.44 1.216.43h7.55l1.142.763 1.116-.764h7.58c1.088 0 1.584-.458 1.584-1.444V.46z\"},\"child\":[]}]})(props);\n};\nexport function SiPiapro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.988 0c-4.705 0-8.7 3.492-9.351 8.168-.06.207-.09.444-.09.68V24l5.21-3.403V9.44c0-2.338 1.893-4.261 4.231-4.261s4.261 1.894 4.261 4.232c0 2.337-1.894 4.261-4.231 4.261-.77 0-1.54-.207-2.22-.621v5.563A9.45 9.45 0 0 0 21.191 11.6C22.405 6.51 19.268 1.45 14.207.266A9.48 9.48 0 0 0 11.988 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiPicardsurgeles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.129 0 8.72.822c.08.149.501.88 1.337 1.368.007.003.575.35 1.172.472l.01.002V4.53l-.02-.001a5.286 5.286 0 0 1-2.248-.861c-.028-.016-1.112-.62-1.846-1.926l-1.413.829c.12.21.851 1.569.731 3.198 0 .008-.043.924-.385 1.745l-.017.037-.033-.02-1.552-.902-.027-.015.012-.029c.003-.006.257-.654.137-1.772-.002-.005-.158-.8-.463-1.321l-1.42.822c.08.15.416.836.23 1.607-.002.01-.223 1.186-1.449 1.636-.01.004-.3.125-.714.138v1.636c.168-.003.96-.034 1.692-.412a4.275 4.275 0 0 0 1.143-.85l.02-.019.022.014 1.559.895.035.02-.025.031c-.008.01-.73.922-1.655 1.414-.008.005-1.064.659-2.363.736l-.428.014v1.635a6.2 6.2 0 0 1 1.262.172c.045.007 1.606.282 2.89 1.675l.286.34.026.033-.036.022-1.572.901-.028.015-.017-.025c-.004-.005-.378-.503-1.294-.952-.007-.003-.792-.32-1.517-.32v1.64c.213.002 1.39.067 2 1.3.005.01.511 1.01-.07 2.083l1.417.814c.089-.15.52-.933.506-1.925 0-.008-.045-.85-.181-1.166l-.011-.029.026-.016 1.56-.91.032-.019.017.036c.003.007.31.71.393 1.737.002.011.119 1.172-.4 2.499-.012.026-.249.558-.346.723l1.42.827c.09-.18.584-1.083 1.72-1.855a5.628 5.628 0 0 1 2.373-.938l.02-.003v1.868l-.011.001c-.006.001-.574.078-1.437.65-.005.005-.732.548-1.07 1.19l1.415.823c.103-.173.686-1.058 1.865-1.103 1.18.045 1.763.93 1.865 1.103l1.415-.822c-.338-.643-1.064-1.186-1.07-1.19-.863-.573-1.432-.65-1.438-.65l-.01-.002V19.47l.02.002c1.39.2 2.365.932 2.373.938 1.136.772 1.63 1.674 1.721 1.855l1.42-.827a12.2 12.2 0 0 1-.346-.723c-.52-1.327-.402-2.488-.401-2.499.083-1.027.39-1.73.394-1.737l.016-.036.033.02 1.56.91.026.015-.013.029c-.136.315-.181 1.158-.181 1.165a3.913 3.913 0 0 0 .507 1.926l1.416-.814c-.581-1.072-.075-2.074-.07-2.083a2.278 2.278 0 0 1 2.001-1.3v-1.64c-.725 0-1.51.317-1.517.32-.916.449-1.29.947-1.294.952l-.018.025-.026-.015-1.573-.901-.036-.022.026-.032.286-.341c1.284-1.393 2.844-1.668 2.89-1.676a6.21 6.21 0 0 1 1.262-.17v-1.636l-.428-.013c-1.299-.077-2.355-.731-2.363-.736-.924-.493-1.647-1.405-1.655-1.414l-.025-.03.036-.022 1.558-.894.023-.014.018.02a4.27 4.27 0 0 0 1.144.85c.732.377 1.524.408 1.692.41V7.696a2.173 2.173 0 0 1-.714-.139c-1.226-.449-1.448-1.625-1.45-1.635-.186-.771.15-1.458.232-1.607l-1.42-.822c-.305.521-.462 1.316-.463 1.321-.12 1.118.134 1.766.136 1.772l.012.029-.027.015-1.552.902-.034.02-.015-.037c-.343-.821-.386-1.737-.386-1.745-.12-1.63.611-2.988.731-3.198l-1.413-.829c-.734 1.306-1.818 1.91-1.845 1.926a5.286 5.286 0 0 1-2.25.86l-.018.003V2.664l.01-.002c.596-.123 1.164-.469 1.17-.472A3.726 3.726 0 0 0 15.28.822L13.871 0c-.458.75-1.023.91-1.06.92a2.168 2.168 0 0 1-.811.181 2.164 2.164 0 0 1-.81-.181c-.038-.01-.603-.17-1.06-.92zM8.082 5.058l.056.037c.008.005.828.54 1.696.793.009.003.73.25 1.388.304l.016.001v.466h-.002L7.872 8.612l-.02-.012-.352-.2-.028-.016.013-.028c.004-.009.372-.878.454-1.442v-.006c.003-.006.172-.539.144-1.784zm7.835 0v.066c-.029 1.246.14 1.78.143 1.785v.006c.081.564.45 1.433.454 1.442l.013.028-.028.015-.352.2-.017.01-3.368-1.95v-.467h.016c.657-.056 1.38-.302 1.388-.305.869-.252 1.688-.788 1.696-.793zm-3.916 3.04 2.47 1.434.052.03-.052.031L12 11.033l-2.47-1.44-.053-.03.053-.03zM6.657 9.814l.37.211.018.01v.021l.012 3.9v.02l-.019.01-.355.196-.026.015-.018-.026c-.97-1.335-2.471-2.143-2.486-2.151l-.061-.034.062-.03c1.52-.723 2.475-2.102 2.485-2.116zm10.686 0 .019.026c.01.014.964 1.393 2.484 2.116l.062.03-.06.034c-.015.008-1.518.816-2.487 2.151l-.019.026-.026-.015-.354-.195-.018-.01v-.021l.011-3.9v-.02l.017-.01zm-8.626 1.232 2.503 1.446v2.886l-2.503-1.434zm6.566 0v2.898l-2.503 1.434v-2.886zM7.869 15.4l.018.01 3.35 1.943.001.001v.454h-.018c-.097 0-.582.09-.824.139a8.105 8.105 0 0 0-2.256.95l-.042.028-.01-.05a4.2 4.2 0 0 1 0-.423c.021-1.322-.588-2.8-.594-2.814l-.013-.03.03-.014.341-.185zm8.26 0 .018.009.343.185.029.015-.013.029c-.006.015-.615 1.492-.593 2.814.001.036.012.361 0 .422l-.012.05-.042-.028c-.01-.006-.95-.622-2.254-.95-.243-.048-.727-.138-.825-.138h-.018v-.454l.001-.001 3.35-1.943z\"},\"child\":[]}]})(props);\n};\nexport function SiPicartodottv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c6.628 0 12-5.373 12-12S18.628 0 12 0zM7.08 4.182h2.781c.233 0 .42.21.42.47v14.696c0 .26-.187.47-.42.47h-2.78c-.233 0-.42-.21-.42-.47V4.652c0-.26.187-.47.42-.47zm4.664 0a.624.624 0 0 1 .326.091c.355.209 7.451 4.42 8.057 4.78a.604.604 0 0 1 0 1.039c-.436.264-7.558 4.495-8.074 4.789a.577.577 0 0 1-.873-.512v-1.812c0-1.712 2.962-2.201 3.398-2.465a.604.604 0 0 0 0-1.04c-.605-.36-3.398-.746-3.398-2.452V4.79c0-.334.251-.605.564-.61z\"},\"child\":[]}]})(props);\n};\nexport function SiPicnic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm17.492 4.481c.851 0 1.635.279 2.261.749.037.029.068.073.027.158-.054.12-.183.413-.416.757a3.834 3.834 0 0 1-.424.555c-.12.117-.12.103-.27.012a2.294 2.294 0 0 0-1.155-.324c-.934 0-1.712.624-1.712 1.655l.005.1c.066 1.034.888 1.603 1.817 1.547a2.27 2.27 0 0 0 .73-.175c.143-.062.314-.153.455-.242.122-.076.148-.116.27-.007.12.114.252.287.395.502.238.345.398.661.458.776.06.1.022.13-.013.16-.412.355-.89.617-1.44.764-.309.09-.64.138-.988.138a4.73 4.73 0 0 1-.288-.009l-.091-.007c-.864-.058-1.64-.371-2.226-.916-.032-.027-.064-.06-.09-.084-.616-.605-.995-1.468-.995-2.547 0-2.26 1.653-3.562 3.69-3.562zm-5.567.108h.15c.752 0 .785.043.837.082a.116.116 0 0 1 .038.073c.037.207.052 1.437.048 2.658.004 1.221-.011 2.438-.048 2.645 0 0-.002.045-.038.075-.052.041-.085.08-.838.083h-.149c-.754-.003-.788-.042-.833-.083-.043-.03-.044-.075-.044-.075-.035-.207-.051-1.424-.047-2.645-.004-1.221.012-2.451.047-2.658 0 0 .001-.04.044-.073.045-.04.079-.082.833-.082zm-5.388.001c2.328.047 3.63.92 3.657 2.908v.091c0 1.895-1.357 2.909-3.657 2.909a8.94 8.94 0 0 1-.44-.012c-.008.419-.017.738-.03.817 0 0-.007.044-.043.076-.05.039-.083.079-.836.082h-.149c-.754-.003-.786-.043-.835-.082-.04-.032-.042-.076-.042-.076-.048-1.232-.045-2.183-.045-3.346-.002-1.223.009-2.991.045-3.181.017-.094.082-.113.155-.125.307-.038 1.661-.072 2.22-.06zm-.175 1.85a4.57 4.57 0 0 0-.249.014v2.162c.154.012.295.025.587.019.951-.016 1.502-.343 1.513-1.083v-.03C8.203 6.781 7.65 6.455 6.7 6.44a5.676 5.676 0 0 0-.338 0zM11.999 11c.891 0 1.337 1.077.707 1.707-.63.63-1.707.184-1.707-.707 0-.55.451-1 1-1zm5.493 1.392a3.76 3.76 0 0 1 2.261.748c.037.028.068.076.027.161-.054.117-.183.409-.416.757-.135.21-.248.36-.424.554-.12.118-.12.104-.27.012a2.263 2.263 0 0 0-1.155-.323c-.934 0-1.712.622-1.712 1.654l.005.1c.066 1.032.888 1.607 1.817 1.544a2.23 2.23 0 0 0 .73-.173c.143-.06.314-.153.455-.24.122-.077.148-.118.27-.007.12.112.252.287.395.5.238.344.398.66.458.776.06.097.022.129-.013.161-.412.353-.89.613-1.44.764a3.57 3.57 0 0 1-1.276.13l-.091-.007c-.864-.06-1.64-.373-2.226-.916l-.09-.088c-.616-.603-.995-1.465-.995-2.544 0-2.26 1.653-3.563 3.69-3.563zm-12.453.148h.149c.753 0 .786.045.836.085.009.009.02.023.03.031.456.833.806 1.402 1.057 1.826.478.806.674 1.164.9 1.556a89.525 89.525 0 0 1 .048-3.337s.004-.046.042-.076c.051-.04.084-.084.836-.085h.15c.751 0 .781.045.831.085.042.03.043.076.043.076.035.202.05 2.093.048 3.312.002 1.222-.013 3.022-.048 3.228 0 0 0 .043-.043.074-.05.04-.08.084-.831.086h-.15c-.752-.002-.785-.047-.836-.086a.076.076 0 0 1-.026-.029c-.024-.03-1.9-3.123-1.962-3.225.003 1.22-.013 2.976-.047 3.18 0 0-.007.043-.042.074-.05.04-.083.084-.836.086h-.149c-.754-.002-.786-.047-.835-.086-.04-.031-.042-.074-.042-.074-.034-.206-.046-2.01-.045-3.232-.001-1.221.011-3.106.045-3.308 0 0 .001-.046.042-.076.05-.04.081-.084.835-.085zm6.886 1.256h.149c.753 0 .786.041.838.082.021.02.035.045.038.074.037.205.052 1.424.048 2.644.004 1.222-.011 2.439-.048 2.645 0 0-.002.043-.038.074-.052.04-.085.084-.838.086h-.149c-.754-.002-.788-.047-.833-.086a.102.102 0 0 1-.044-.074c-.035-.206-.051-1.423-.047-2.645-.004-1.22.012-2.44.047-2.644 0 0 .001-.042.044-.074.045-.04.079-.082.833-.082Z\"},\"child\":[]}]})(props);\n};\nexport function SiPicpay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.463 1.587v7.537H24V1.587zm1.256 1.256h5.025v5.025h-5.025zm1.256 1.256v2.513h2.513V4.099zM3.77 5.355V8.53h3.376c2.142 0 3.358 1.04 3.358 2.939 0 1.947-1.216 3.011-3.358 3.011H3.769V8.53H0v13.884h3.769v-4.76h3.57c4.333 0 6.815-2.352 6.815-6.32 0-3.771-2.482-5.978-6.814-5.978Z\"},\"child\":[]}]})(props);\n};\nexport function SiPicrew (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.22164 10.83105a.03738.03738 0 0 1 .03859-.03979.6029.6029 0 0 1 .44012.21584 1.03699 1.03699 0 0 1 .2098.61978.03497.03497 0 0 1-.041.03738c-.47266-.0627-.59204-.22066-.6475-.8332Zm-.1471 0a.03738.03738 0 0 0-.03859-.03979.6029.6029 0 0 0-.44011.21584 1.03699 1.03699 0 0 0-.2074.61978.03497.03497 0 0 0 .041.03738c.47026-.0627.58963-.22066.6451-.8332zm-.64752 1.00202a.03617.03617 0 0 0-.03858.03497 1.0394 1.0394 0 0 0 .2098.6246.6029.6029 0 0 0 .43771.21946.03738.03738 0 0 0 .03859-.0398c-.05547-.61254-.17484-.7717-.64752-.83923Zm.79462.84406a.03738.03738 0 0 0 .03859.03979.6029.6029 0 0 0 .44012-.21584 1.0394 1.0394 0 0 0 .2098-.63304.03617.03617 0 0 0-.041-.0386c-.47267.07115-.59204.23032-.6475.84286zm2.61658-1.84608a.03738.03738 0 0 0-.03858-.03979.6029.6029 0 0 0-.44012.21584 1.03699 1.03699 0 0 0-.2098.61978.03497.03497 0 0 0 .041.03738c.47266-.0627.59204-.22066.6475-.8332zm.79462.84406a.03497.03497 0 0 0 .041-.03738 1.03699 1.03699 0 0 0-.2098-.6246.6029.6029 0 0 0-.44012-.21584.03738.03738 0 0 0-.03859.03979c.05547.60652.17484.76448.64751.832zm-.6475 1.00322a.03738.03738 0 0 0 .03858.0398.6029.6029 0 0 0 .44011-.21584 1.0394 1.0394 0 0 0 .20981-.63425.03617.03617 0 0 0-.041-.0386c-.47267.07115-.59204.23032-.6475.84286zm-.79463-.84405a.03617.03617 0 0 0-.041.03858 1.0394 1.0394 0 0 0 .20981.6246.6029.6029 0 0 0 .44012.21463.03738.03738 0 0 0 .03858-.03979c-.05546-.61254-.17484-.7717-.6475-.83923Zm17.2212-.96464a.2894.2894 0 0 0-.2894.28939v.88023a.2894.2894 0 1 0 .57758 0v-.88023a.28819.28819 0 0 0-.28819-.29421zm-2.15115-.3943a.28819.28819 0 0 0-.28818.28819v1.2709a.2894.2894 0 1 0 .57757 0v-1.27572a.28819.28819 0 0 0-.28939-.28819Zm4.30108 0a.28819.28819 0 0 0-.28819.28819v1.2709a.2894.2894 0 1 0 .57758 0v-1.27572a.28819.28819 0 0 0-.2894-.28819Zm-5.15117 1.56754a.2906.2906 0 0 1-.28939.2894h-2.7456v.1061a.2894.2894 0 0 1-.57757 0 2.4116 2.4116 0 0 1 .04944-.45459c.26286-1.44695 2.01247-1.97388 3.06151-1.02975a1.4964 1.4964 0 0 1 .50162 1.0804zm-2.88426-.29542h2.25001a.99117.99117 0 0 0-.26045-.3762 1.3107 1.3107 0 0 0-.89108-.32196 1.21906 1.21906 0 0 0-1.09848.69816zm-5.2621-1.27694a2.04985 2.04985 0 0 0-1.80146 1.03578 1.34688 1.34688 0 0 0-.78256-.24116 1.36134 1.36134 0 0 0-.6644.17002 4.29625 4.29625 0 0 0-.79341-1.91119.6849.6849 0 0 1-.09767-.15072c.01326-.95861-1.15274-1.40476-1.8316-.72348a.93837.93837 0 0 0-.05186.05667.7488.7488 0 0 1-.13263-.00724 5.1174 5.1174 0 0 0-.57879-.02893 6.85616 6.85616 0 0 0-.709.03979C2.17462 7.94679.9218 8.37123.93506 9.36722a.6849.6849 0 0 1-.09767.15072 4.38428 4.38428 0 0 0-.83682 2.2476.2894.2894 0 0 0 .57637.05065 3.7838 3.7838 0 0 1 .72348-1.94736.8103.8103 0 0 0 .2086-.50161.43288.43288 0 0 1 .2689-.43168.50885.50885 0 0 1 .59927.13626c.15193.18569.3099.24116.63063.19292a4.73999 4.73999 0 0 1 .52211-.02532 4.73999 4.73999 0 0 1 .52211.02532c.33763.04944.49197-.01808.6427-.2074a.50885.50885 0 0 1 .5836-.12057.43288.43288 0 0 1 .2689.43167.8103.8103 0 0 0 .21583.50161 3.7838 3.7838 0 0 1 .72348 1.94737c.0205.19775 0 .37018.17484.47026a.2894.2894 0 0 0 .39912-.12058.75362.75362 0 0 1 1.25161.01085.2894.2894 0 0 0 .52814-.06873 1.44696 1.44696 0 0 1 1.42405-1.0611 1.4783 1.4783 0 0 1 1.25282.65715.2894.2894 0 1 0 .48232-.31953 2.04985 2.04985 0 0 0-1.73514-.9152zm13.72076 2.92767a1.40475 1.40475 0 0 1-1.27332.98876 1.63627 1.63627 0 0 1-1.29985-.54623c-.63184.72348-1.85934.7488-2.38989-.06752-.5221.37139-1.32637.61375-2.11255.61375-1.0599-.03497-1.5796-.38826-2.29825-.9562-.76448-.71141-1.8521-.14469-2.35492.73795v1.2058a.2894.2894 0 0 1-.57758 0v-1.53136a2.08603 2.08603 0 0 1-1.4144.54381 2.04985 2.04985 0 0 1-1.80146-1.03457 1.36737 1.36737 0 0 1-1.55066.0096c-.58601 1.09607-1.81593 1.72429-3.37623 1.72429-1.2287 0-2.25001-.38586-2.91561-1.08522v1.3722a.2894.2894 0 0 1-.57879 0v-2.29946a.29421.29421 0 0 1 .12058-.24116.2894.2894 0 0 1 .416.09646c.4582 1.02493 1.52775 1.57718 2.953 1.58321 1.42525.006 2.7034-.62942 2.9964-1.78096a.28577.28577 0 0 1 .14832-.1652.2906.2906 0 0 1 .3762.12059c.2484.44976 1.00926.44855 1.25765 0a.2906.2906 0 0 1 .49197-.0205.27613.27613 0 0 1 .03979.09043 1.48675 1.48675 0 0 0 2.84689 0 .2894.2894 0 0 1 .5619.006c.01326.03497.006.43047.0072.47508.4389-.42082 1.00201-.69936 1.5-.69936.92003-.03135 1.23474.56431 1.87743.92243a2.55388 2.55388 0 0 0 1.27574.3533c.85732 0 1.65194-.3111 2.0583-.7488a.2918.2918 0 0 1 .42082.16158c.24115.78497 1.38184.7898 1.75443-.01688a.28819.28819 0 0 1 .52332-.03135 1.0394 1.0394 0 0 0 1.01045.63545.832.832 0 0 0 .75845-.58722.28867.28867 0 0 1 .54984.17605zm-16.30599.41118a.28819.28819 0 0 0-.28818.2894v1.27452a.2894.2894 0 1 0 .57757 0v-1.27453a.28819.28819 0 0 0-.28939-.28939Z\"},\"child\":[]}]})(props);\n};\nexport function SiPicsart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 0h-.012c-2.21 0-4.3.863-5.888 2.432-.15.148-.428.458-.428.458-.096.11-.188.22-.276.334l-.036.047a8.683 8.683 0 0 0-1.836 5.016v15.41a.32.32 0 0 0 .05.17.304.304 0 0 0 .254.133h2.881a.303.303 0 0 0 .305-.304v-7.843c0-.054.037-.08.053-.087a.1.1 0 0 1 .104.008 8.293 8.293 0 0 0 4.815 1.525c1.32 0 2.547-.305 3.68-.86 2.847-1.392 4.812-4.356 4.812-7.793 0-4.78-3.796-8.645-8.478-8.645zm-.013 13.994c-2.841 0-5.152-2.396-5.152-5.34 0-2.946 2.31-5.342 5.152-5.342 2.841 0 5.152 2.396 5.152 5.341 0 2.945-2.31 5.341-5.152 5.341z\"},\"child\":[]}]})(props);\n};\nexport function SiPicxy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.214 9.193a.742.742 0 0 0-.488.276c-.072.093-.124.205-.215.46a246.024 246.024 0 0 1-.792 2.17 40.979 40.979 0 0 0-.408 1.147 2.913 2.913 0 0 1-.053.167 7.924 7.924 0 0 1-.228-.553 178.6 178.6 0 0 0-1.23-3.074c-.08-.202-.094-.228-.157-.32a.59.59 0 0 0-.328-.247c-.07-.022-.08-.022-.485-.022h-.413v.893l.157.002c.185 0 .218.012.284.087.037.04.091.166.476 1.076a367.899 367.899 0 0 0 .653 1.54l.332.776c.18.435.406.982.408.994l.01.04c.01.042-.018.123-.12.369-.197.47-.3.644-.495.813-.258.23-.529.3-.807.21a2.95 2.95 0 0 1-.427-.206 1.035 1.035 0 0 0-.177-.086 5.68 5.68 0 0 0-.094.162c-.05.086-.095.16-.1.168-.02.024-.21.376-.21.387 0 .03.215.177.387.264a1.897 1.897 0 0 0 .903.215c.32 0 .56-.055.827-.19.42-.212.704-.57.982-1.242.12-.287.56-1.374 1.22-3.01.81-2.003.784-1.94.862-2.098.074-.148.106-.185.198-.234.047-.024.063-.027.183-.032L24 10.09v-.903h-.364c-.2-.002-.39 0-.422.006zM10.32 9.17c-.492.05-.865.169-1.238.389a2.75 2.75 0 0 0-.856.834 2.6 2.6 0 0 0-.39 1.098 4.8 4.8 0 0 0 .004.844c.044.348.112.579.252.862.1.2.157.292.285.45a2.863 2.863 0 0 0 1.71.984c.124.02.166.022.48.022.38 0 .5-.011.753-.072.422-.101.742-.256 1.137-.55.064-.048.157-.115.206-.15.065-.045.09-.07.09-.084 0-.021-.029-.082-.04-.088a1.463 1.463 0 0 0-.124-.204c-.013-.017-.02-.031-.017-.031.003 0-.002-.01-.013-.022-.01-.01-.017-.024-.015-.03.003-.003.001-.007-.002-.007-.006 0-.013-.008-.018-.02a7.3 7.3 0 0 0-.157-.26l-.032-.051-.314.21a3.806 3.806 0 0 1-.448.278c-.17.08-.36.145-.535.18a1.387 1.387 0 0 1-.359.027 1.599 1.599 0 0 1-.62-.093 2.378 2.378 0 0 1-.506-.258 2.19 2.19 0 0 1-.362-.36 1.741 1.741 0 0 1-.307-.64 1.983 1.983 0 0 1-.066-.532c0-.2.02-.343.07-.544.053-.208.101-.324.21-.504.28-.462.714-.746 1.245-.816a3.167 3.167 0 0 1 .533-.005c.131.015.281.052.367.092a.74.74 0 0 1 .317.267c.042.072.086.274.086.397v.06h.854v-.29c0-.321-.01-.392-.067-.541-.087-.225-.316-.462-.563-.586a2.73 2.73 0 0 0-.545-.194c-.213-.05-.328-.062-.656-.064a7.058 7.058 0 0 0-.349.002zm-4.765.028c-.004.004-.007.19-.007.413v.407h.256c.283 0 .3.003.363.068.067.072.063-.088.062 1.92 0 1.882.002 2.11.037 2.246.051.2.168.32.356.364.107.024.608.045.62.025.001-.004 0-1.12-.005-2.478l-.006-2.47-.02-.076c-.048-.175-.134-.29-.259-.352-.13-.065-.139-.066-.797-.07a12.303 12.303 0 0 0-.6.003zm7.484.006a9.846 9.846 0 0 0-.003.44l.003.427h.17c.13 0 .184.006.232.018.17.046.263.123.401.326a110.633 110.633 0 0 1 .952 1.405.126.126 0 0 1 .017.04c0 .006-.41.634-.908 1.395a371.04 371.04 0 0 0-.908 1.39c0 .002.26.004.576.004h.575l.643-1.003a321.842 321.842 0 0 1 .655-1.02c.011-.015.026.003.144.175.072.106.373.565.67 1.02l.536.828h.572c.541 0 .57-.002.562-.018l-.912-1.395c-.78-1.196-.9-1.382-.89-1.398.005-.01.216-.333.47-.717.48-.723.531-.795.662-.896a.993.993 0 0 1 .142-.084l.085-.041.418-.01v-.893h-.384c-.412 0-.483.006-.626.05a.813.813 0 0 0-.36.222c-.072.073-.108.124-.226.323-.165.28-.832 1.34-.838 1.335-.02-.012-.25-.372-.765-1.197-.225-.36-.266-.42-.352-.501-.197-.19-.406-.237-1.05-.237-.198 0-.26.003-.263.012zM.461 7.104a.4.4 0 0 0-.168.042.508.508 0 0 0-.276.338c-.02.072-.018-.307-.014 4.27v2.875l.529-.002.526-.003V11.89h.45c.8-.002 1.372-.015 1.557-.037.295-.037.503-.094.72-.2a2.03 2.03 0 0 0 .803-.71 2.21 2.21 0 0 0 .392-1.058 4.769 4.769 0 0 0 0-.79 2.185 2.185 0 0 0-.783-1.465 2.383 2.383 0 0 0-.95-.452 4.01 4.01 0 0 0-.461-.066A72.454 72.454 0 0 0 .46 7.105Zm2.15.953a1.498 1.498 0 0 1 .688.24c.09.058.265.227.338.326.164.219.252.453.28.743.014.125.014.11 0 .235-.028.29-.116.524-.28.743a1.855 1.855 0 0 1-.338.327 1.517 1.517 0 0 1-.693.24c-.124.013-.108.013-.233 0a1.52 1.52 0 0 1-.692-.24 1.9 1.9 0 0 1-.34-.327 1.423 1.423 0 0 1-.28-.743c-.012-.125-.012-.11 0-.235.03-.29.118-.524.28-.743a1.9 1.9 0 0 1 .34-.327c.2-.133.507-.237.706-.24a.39.39 0 0 0 .074-.01.072.072 0 0 1 .038-.002c.008.002.059.008.112.013zm-.13.58a.64.64 0 0 0-.422.428.872.872 0 0 0 0 .332c.047.16.163.304.302.376.11.057.163.07.294.07.13 0 .182-.013.294-.07a.633.633 0 0 0 .302-.376.872.872 0 0 0 0-.332.642.642 0 0 0-.43-.43.855.855 0 0 0-.34.003zM6.46 7.15a.634.634 0 0 0-.443.445.8.8 0 0 0-.015.155c0 .183.053.312.18.438a.565.565 0 0 0 .437.179.806.806 0 0 0 .156-.015.632.632 0 0 0 .446-.446.877.877 0 0 0 0-.311.633.633 0 0 0-.446-.447.876.876 0 0 0-.316.002z\"},\"child\":[]}]})(props);\n};\nexport function SiPihole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.344 0c.238 4.792 3.256 7.056 6.252 7.376.165-1.692-4.319-5.6-4.319-5.6-.008-.011.009-.025.019-.014 0 0 4.648 4.01 5.423 5.645 2.762-.15 5.196-1.947 5-4.912 0 0-4.12-.613-5 4.618C11.48 2.753 8.993 0 4.344 0zM12 7.682v.002a3.68 3.68 0 0 0-2.591 1.077L4.94 13.227a3.683 3.683 0 0 0-.86 1.356 3.31 3.31 0 0 0-.237 1.255A3.681 3.681 0 0 0 4.92 18.45l4.464 4.466a3.69 3.69 0 0 0 2.251 1.06l.002.001c.093.01.187.015.28.017l-.1-.008c.06.003.117.009.177.009l-.077-.001L12 24l-.004-.005a3.68 3.68 0 0 0 2.61-1.077l4.469-4.465a3.683 3.683 0 0 0 1.006-1.888l.012-.063a3.682 3.682 0 0 0 .057-.541l.003-.061c0-.017.003-.05.004-.06h-.002a3.683 3.683 0 0 0-1.077-2.607l-4.466-4.468a3.694 3.694 0 0 0-1.564-.927l-.07-.02a3.43 3.43 0 0 0-.946-.133L12 7.682zm3.165 3.357c.023 1.748-1.33 3.078-1.33 4.806.164 2.227 1.733 3.207 3.266 3.146-.035.003-.068.007-.104.009-1.847.135-3.209-1.326-5.002-1.326-2.23.164-3.21 1.736-3.147 3.27l-.008-.104c-.133-1.847 1.328-3.21 1.328-5.002-.173-2.32-1.867-3.284-3.46-3.132.1-.011.203-.021.31-.027 1.847-.133 3.209 1.328 5.002 1.328 2.082-.155 3.074-1.536 3.145-2.968zM4.344 0c.238 4.792 3.256 7.056 6.252 7.376.165-1.692-4.319-5.6-4.319-5.6-.008-.011.009-.025.019-.014 0 0 4.648 4.01 5.423 5.645 2.762-.15 5.196-1.947 5-4.912 0 0-4.12-.613-5 4.618C11.48 2.753 8.993 0 4.344 0zM12 7.682v.002a3.68 3.68 0 0 0-2.591 1.077L4.94 13.227a3.683 3.683 0 0 0-.86 1.356 3.31 3.31 0 0 0-.237 1.255A3.681 3.681 0 0 0 4.92 18.45l4.464 4.466a3.69 3.69 0 0 0 2.251 1.06l.002.001c.093.01.187.015.28.017l-.1-.008c.06.003.117.009.177.009l-.077-.001L12 24l-.004-.005a3.68 3.68 0 0 0 2.61-1.077l4.469-4.465a3.683 3.683 0 0 0 1.006-1.888l.012-.063a3.682 3.682 0 0 0 .057-.541l.003-.061c0-.017.003-.05.004-.06h-.002a3.683 3.683 0 0 0-1.077-2.607l-4.466-4.468a3.694 3.694 0 0 0-1.564-.927l-.07-.02a3.43 3.43 0 0 0-.946-.133L12 7.682zm3.165 3.357c.023 1.748-1.33 3.078-1.33 4.806.164 2.227 1.733 3.207 3.266 3.146-.035.003-.068.007-.104.009-1.847.135-3.209-1.326-5.002-1.326-2.23.164-3.21 1.736-3.147 3.27l-.008-.104c-.133-1.847 1.328-3.21 1.328-5.002-.173-2.32-1.867-3.284-3.46-3.132.1-.011.203-.021.31-.027 1.847-.133 3.209 1.328 5.002 1.328 2.082-.155 3.074-1.536 3.145-2.968z\"},\"child\":[]}]})(props);\n};\nexport function SiPimcore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.579c0 .262-.212.474-.474.474H22.19c-.047 0-.084.038-.084.084v.547H24v.158c0 .262-.212.474-.474.474h-1.421v.547c0 .046.038.084.084.084H24v.158c0 .261-.212.474-.474.474h-1.579a.4737.4737 0 01-.474-.474v-2.211c0-.261.212-.474.474-.474H24v.159m-5.589.474a.095.095 0 00-.095.095V12h1.421c.27 0 .487-.227.473-.5-.014-.253-.228-.448-.481-.448h-1.318m2.431.46c.005.44-.246.821-.614 1.004l.614 1.063h-.547c-.113 0-.217-.06-.273-.158l-.456-.789h-1.25v.474c0 .262-.212.474-.474.474h-.158v-2.684c0-.262.212-.474.474-.474h1.549c.61-.001 1.128.48 1.135 1.09m-5.368 1.435c.522 0 .947-.425.947-.947s-.425-.947-.947-.947c-.329 0-.619.169-.789.424l-.348.523.345.52c.17.257.461.427.792.427m0-2.526c.872 0 1.579.707 1.579 1.579s-.707 1.579-1.579 1.579c-.55 0-1.034-.281-1.316-.707l-.2-.3-.43.648c-.396.597-1.074.991-1.844.991-1.221 0-2.211-.99-2.211-2.211 0-1.221.99-2.211 2.211-2.211.767 0 1.442.39 1.839.983l.056.084-.379.573-.207-.313c-.284-.419-.764-.695-1.308-.695-.871 0-1.579.708-1.579 1.579s.708 1.579 1.579 1.579c.549 0 1.033-.281 1.316-.707l1.156-1.742c.282-.427.766-.709 1.317-.709m-7.393.13l-1.067 1.067a.0948.0948 0 01-.134 0l-1.065-1.065a.4468.4468 0 00-.763.316v2.711h.158c.261 0 .474-.212.474-.474v-1.69c0-.037.045-.056.072-.03l.856.856c.185.185.485.185.67 0l.856-.856a.0422.0422 0 01.072.03v2.163h.158c.261 0 .474-.212.474-.474v-2.242c0-.244-.198-.442-.442-.442h-.007c-.117 0-.229.047-.312.13m-4.134 3.028c.262 0 .474-.212.474-.474v-2.684h-.158c-.262 0-.474.212-.474.474v2.684h.158M2.039 12c.255 0 .475-.195.487-.45.013-.272-.204-.498-.473-.498H.726c-.052 0-.095.043-.095.095V12h1.408m-.015-1.579c.619 0 1.146.507 1.134 1.126-.011.601-.502 1.084-1.105 1.084H.632v.474c0 .261-.212.474-.474.474H0v-2.684c0-.262.212-.474.474-.474h1.55\"},\"child\":[]}]})(props);\n};\nexport function SiPinboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.352 14.585l-4.509 4.614.72-4.062L3.428 7.57 0 7.753 7.58 0v2.953l7.214 6.646 4.513-1.105-4.689 4.982L24 24l-10.648-9.415z\"},\"child\":[]}]})(props);\n};\nexport function SiPinescript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.785 16.14.124 21.287c-.311.437 0 1.044.536 1.044h22.681c.535 0 .846-.608.536-1.045l-4.2-5.927-1.979 1.161c-.037 1.063-.907 1.913-1.976 1.913-1.092 0-1.977-.887-1.977-1.982 0-.055.003-.11.007-.165l-3.173-2.328c-.341.278-.775.445-1.249.445-.56 0-1.065-.234-1.425-.609l-4.12 2.346Zm7.693-14.194L3.813 12.732c-.222.314-.132.751.197.95l.691.417 2.66-1.515a1.747 1.747 0 0 1-.007-.163c0-1.095.885-1.982 1.977-1.982 1.091 0 1.976.887 1.976 1.982 0 .138-.014.273-.041.403l3.047 2.237c.359-.366.858-.592 1.409-.592.634 0 1.198.299 1.56.764l2.831-1.66c.219-.222.258-.581.068-.849L12.553 1.948c-.262-.371-.812-.373-1.075-.002Z\"},\"child\":[]}]})(props);\n};\nexport function SiPinetwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .002c-6.628 0-12 5.371-12 12 0 6.628 5.372 11.996 12 11.996s12-5.371 12-12C24 5.37 18.624.002 12 .002zm0 1.719c5.679 0 10.281 4.602 10.281 10.281S17.68 22.283 12 22.283 1.719 17.681 1.719 12.002 6.32 1.721 12 1.721zM9.102 5.943c-.123 0-.227.1-.227.227v1.139c0 .122.1.226.227.226h1.56a.225.225 0 0 0 .227-.226v-1.14c0-.121-.1-.226-.227-.226h-1.56zm3.685 0c-.122 0-.226.1-.226.227v1.139c0 .122.1.226.226.226h1.559a.228.228 0 0 0 .226-.226v-1.14c0-.121-.1-.226-.226-.226h-1.559zm3.219 1.407v1.19H7.352c-1.895.026-1.975 2.042-1.975 2.042v1.461H7.43l.008-1.447h1.398v7.574c-.005.457.451.285.451.285l1.461-.516c.23-.099.186-.308.186-.308v-7.022h1.591v7.641c.014.357.366.213.366.213l1.591-.565c.14-.076.118-.195.118-.195l-.022-7.062 1.527-.04c1.909-.027 1.963-2.103 1.963-2.103V7.35h-2.062\"},\"child\":[]}]})(props);\n};\nexport function SiPingdom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.96 17.804l7.959-3.396-7.049 7.241c-.124-1.315-.432-2.61-.91-3.844v-.001zM24 11.118c-5.101-.236-10.208.414-15.087 1.92 1.024 1.073 1.881 2.292 2.535 3.621 4.042-2.25 9.646-5.123 12.552-5.531v-.015.005zm-12.574.275l.207-.06c1.538-.459 3.049-1.015 4.523-1.656 1.492-.585 2.896-1.38 4.159-2.367 1.345-1.069 2.355-2.499 2.915-4.122.12-.267.211-.549.267-.837-2.024 2.76-10.041 3.048-10.041 3.048l1.89-1.734C9.84 3.684 4.47 5.424 0 8.645c3.03.322 5.877 1.596 8.139 3.634 1.086-.336 2.196-.576 3.286-.879v-.006l.001-.001z\"},\"child\":[]}]})(props);\n};\nexport function SiPino (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.225 5.555 2.789 5.472 2.756-5.505L11.999 0M1.979 20.123h13.769v-.037L8.862 6.29m3.524 5.522 4.131 8.311h5.505L15.137 6.291M4.5 24h14.87l-1.554-3.188H6.056\"},\"child\":[]}]})(props);\n};\nexport function SiPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z\"},\"child\":[]}]})(props);\n};\nexport function SiPioneerdj (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.46 5.569c1.474 1.144 1.715 2.695 1.107 4.319-.565 1.503-1.833 2.96-3.827 4.087-2.21 1.227-4.498 1.554-6.993 1.554H0L4.212 4.308h5.051c2.548 0 4.7.1 6.197 1.26zm-3.112 4.235c.33-.884.246-2.202-.34-2.906-.658-.782-1.673-.873-3.138-.873l-.716.016s-.616-.07-.866.49c-.153.35.064-.263-2.412 6.341-.326.876.452.919.452.919s2.794.17 5.132-1.448c.991-.685 1.577-1.705 1.888-2.539zm5.938-1.467L24 8.366l-2.892 7.731c-.944 2.518-2.896 3.595-6.812 3.595l-3.058-.04.731-1.746c4.427.21 5.225-1.76 5.365-2.139l1.846-4.966s.317-.884-.402-.884h-1.132Z\"},\"child\":[]}]})(props);\n};\nexport function SiPiped (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.947 22.915c0 .6-1.207 1.085-2.7 1.085-1.492 0-2.698-.485-2.698-1.085s1.206-1.086 2.699-1.086c1.492 0 2.699.485 2.699 1.086zm-.018-.906V.789S9.593.58 9.06.33A7.333 7.333 0 0 0 8.1.07 8.257 8.257 0 0 0 6.986 0a8.07 8.07 0 0 0-1.043.144 6.31 6.31 0 0 0-.786.272A5.819 5.819 0 0 0 4.56.79v21.223c.609-.462 1.668-.684 2.687-.684 1.015 0 2.072.22 2.68.68zm1.906-17.195c.66 0 1.192-1 1.192-2.237S12.494.34 11.835.34c-.66 0-1.192 1-1.192 2.237s.533 2.237 1.192 2.237zm.045 4.488c-.66 0-1.192 1.102-1.192 2.464 0 1.363.533 2.465 1.192 2.465.66 0 1.192-1.102 1.192-2.465 0-1.362-.532-2.464-1.192-2.464zm7.556-2.16a12.19 12.19 0 0 0-.142-1.026 12.28 12.28 0 0 0-.27-.994 12.027 12.027 0 0 0-.388-.939c-.151-.293-.315-.58-.492-.859a10.837 10.837 0 0 0-.578-.76 10.181 10.181 0 0 0-.647-.65 9.626 9.626 0 0 0-1.412-.941 9.61 9.61 0 0 0-1.412-.492 10.987 10.987 0 0 0-.65-.102 6.299 6.299 0 0 0-.626-.053c.433.486.708 1.294.708 2.25 0 1-.3 1.836-.767 2.313.224.041.575.163.708.212.215.096.432.211.641.344.356.258.543.471.73.77.263.474.31.856.247 1.287-.135.651-.495 1.035-.937 1.33a4.3 4.3 0 0 1-.623.297c-.087.026-.438.13-.694.158.453.521.74 1.418.74 2.48 0 1.042-.278 1.923-.716 2.448.114-.002.22-.003.35-.007.414-.037.9-.107 1.395-.207.314-.085.862-.25 1.531-.55a8.856 8.856 0 0 0 1.422-.996c.213-.214.415-.438.605-.673a8.95 8.95 0 0 0 .504-.782c.145-.285.275-.577.39-.876.102-.308.19-.626.262-.951.058-.33.1-.664.129-1.003.02-.343-.001-.686-.008-1.028z\"},\"child\":[]}]})(props);\n};\nexport function SiPipx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.801 0c-.005-.001-.011.004-.02.017a34.051 34.051 0 0 0-1.451 2.245l.231-.662a.034.034 0 0 0-.058-.033l-.52.648a.104.104 0 0 0-.042.004l.353-.727a.037.037 0 0 0-.061-.04l-1.073 1.23c-.053.016-.076.014-.07-.007.313-.871.874-1.732 1.345-2.53a.05.05 0 0 0 .008-.028c0-.01-.002-.02-.005-.027-.013-.027-.029-.029-.047-.005-.143.192-.422.71-.602.817a.031.031 0 0 1-.047-.025c0-.005 0-.01.003-.013l.123-.281a.024.024 0 0 0-.025-.034.025.025 0 0 0-.017.009c-.417.53-.75 1.137-1.099 1.714-.225.373-.637.983-.902 1.515L11.13 8.52l-.934 1.756C9.44 9.075 8.838 7.75 8.15 6.503c-.15-.273-.353-.59-.518-.89a.025.025 0 0 0-.024-.014H7.59a.016.016 0 0 0-.015.021l.154.409a.057.057 0 0 1-.008.053l-.082.107a.077.077 0 0 0-.013.07l.15.505c.022.073.014.077-.024.01-.295-.515-.566-1.099-.845-1.646-.008-.017-.018-.018-.03-.004-.009.011-.01.023-.003.037.211.43.38.816.504 1.16.003.006 0 .01-.007.01h-.019a.012.012 0 0 1-.01-.007l-.387-.746a.037.037 0 0 0-.07.015.207.207 0 0 0 .07.174c.01.008.007.024-.005.027l-.024.008a.035.035 0 0 1-.041-.015l-.261-.432a.044.044 0 0 0-.076.002.043.043 0 0 0-.003.032l.46 1.592c.005.017-.001.025-.019.025-.019 0-.035-.015-.048-.042l-.47-1.017a.027.027 0 0 0-.051.017c.06.335.166.55.177.975.004.132.087.377.248.735.047.106.061.23.106.337a.009.009 0 0 1-.016.008c-.302-.554-.496-1.088-.902-1.61a.034.034 0 0 0-.06.031c.065.203.096.38.192.592.125.277.103.564.206.814.05.122.106.242.168.36a125.973 125.973 0 0 0 2.19 4.587c.02.039.015.095.016.137l-.34.53-1.024 1.834-.86 1.58-.339.614a.024.024 0 0 0 .035.032l.176-.118c.037-.026.05-.017.035.027a3.048 3.048 0 0 1-.295.659c-.018.029-.01.04.024.033l.173-.035c.003.155-.192.464-.257.64-.01.024.01.05.037.046a.036.036 0 0 0 .024-.015l.482-.714c.121.169-.044.328-.094.486a.044.044 0 0 0 .072.044l.322-.31c.026-.024.046-.02.058.014l.018.05a.045.045 0 0 0 .082.01l.194-.31a.034.034 0 0 1 .06.028l-.306.876a.031.031 0 0 0 .054.031l.906-1.054a4.227 4.227 0 0 1-.462.956.037.037 0 0 0-.007.022.05.05 0 0 0 .007.024c.013.022.027.023.043.001.246-.345.481-.698.707-1.057a.296.296 0 0 1 .117-.087l.016.15c.005.053.021.057.048.012.176-.295.396-.556.57-.838.317-.517.675-1.007 1.074-1.47.02-.024.037-.022.05.004l.11.202c.264.588.538 1.185.864 1.768.405.722.911 1.815 1.38 2.683.188.347.377.693.568 1.04.33.6.617 1.26.936 1.888.16.336.348.716.67.792.031.007.041-.004.03-.034l-.687-1.839c.275.221.502.47.682.747.02.032.042.05.065.051a.042.042 0 0 0 .045-.048l-.173-1.104c-.01.027-.01.027 0 0l.11-.156c.093.13.228.224.314.365.227.378.495.72.805 1.024a.05.05 0 0 0 .082-.023.048.048 0 0 0 0-.023c-.174-.731-.567-1.452-.783-2.215-.05-.177-.014-.198.11-.06.227.25.44.512.64.786.309.422.35.397.123-.073a13.823 13.823 0 0 0-.508-.924c-.643-1.281-1.338-2.527-1.997-3.8-.573-1.108-1.197-2.192-1.73-3.305a.184.184 0 0 1-.019-.065l-.006-.059c.116-.12.236-.283.358-.488.119-.199.381-.586.786-1.162.107-.152.313-.39.457-.63.098-.165.295-.439.589-.821 1.077-1.402 2.239-2.795 3.184-4.227a.022.022 0 1 0-.036-.026l-.427.52a.043.043 0 0 1-.077-.024l-.008-.13c-.003-.052-.021-.058-.055-.019l-.497.582h-.033c.008-.035.002-.072.02-.105.328-.605.672-1.206 1.032-1.8a.044.044 0 0 0-.07-.054c-.093.099-.182.21-.269.335-.058.083-.106.1-.144.05l.573-1.097a.024.024 0 0 0-.04-.025l-1.1 1.567-.672.938c-.013.018-.029.02-.047.01-.019-.011-.022-.027-.01-.049.317-.538.52-.892.609-1.062.238-.349.454-.723.647-1.124.117-.244.33-.514.429-.813a.03.03 0 0 0-.05-.027l-.604.773.392-.78c.245-.457.513-.924.804-1.4.204-.333.358-.658.518-1 .002-.004.001-.007-.001-.01a.226.226 0 0 1-.015-.014c-.012-.013-.022-.012-.03.003a24.15 24.15 0 0 1-1.123 1.598.862.862 0 0 0-.14.27c-.006.022-.017.024-.031.006a.078.078 0 0 0-.014-.014c-.02-.016-.023-.036-.012-.059.16-.319.298-.647.415-.984a.306.306 0 0 0 .021-.072c-.01-.079-.043-.089-.097-.029l-.448.491c-.026.036-.029.021-.009-.044a.124.124 0 0 1 .02-.04c.229-.335.416-.755.588-1.05.221-.376.436-.755.646-1.138a.078.078 0 0 0 .01-.045C17.81.009 17.806 0 17.801 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiPivotaltracker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002 0c-6.617 0-12 5.382-12 11.998 0 6.618 5.384 12.002 12 12.002S24 18.616 24 11.998C24 5.382 18.619 0 12.002 0zm0 2.43a9.568 9.568 0 0 1 9.568 9.568c0 5.286-4.283 9.572-9.568 9.572-5.285 0-9.57-4.286-9.57-9.572 0-5.285 4.285-9.568 9.57-9.568zm-.135 1.31L8.822 5.498V5.5l2.68 4.64c.425-.113.888-.08 1.31.118l1.41-2.442-2.355-4.076zm4.17 2.256l-2.68 4.643c.325.324.52.749.557 1.195h2.816l2.356-4.076-3.049-1.762zM4.781 7.984v3.55h.002v-.03h5.36a1.904 1.904 0 0 1 .756-1.08L9.49 7.984H4.781zm2.487 4.182L4.912 16.24l3.049 1.762 2.682-4.645a1.929 1.929 0 0 1-.557-1.191H7.268zm6.59.33a1.904 1.904 0 0 1-.756 1.078l1.41 2.442h4.707v-3.52h-5.362zm-2.67 1.244l-1.41 2.442 2.353 4.076 3.049-1.76-2.68-4.64c-.425.114-.89.08-1.313-.118z\"},\"child\":[]}]})(props);\n};\nexport function SiPiwigo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.712 12.777A4.713 4.713 0 0 1 12 17.49a4.713 4.713 0 0 1-4.713-4.713A4.713 4.713 0 0 1 12 8.066a4.713 4.713 0 0 1 4.712 4.711zm2.4-12.776c-2.572.058-2.358 1.544-8.237 1.555h-4.15A5.947 5.947 0 0 0 .777 7.503v10.55A5.947 5.947 0 0 0 6.725 24h10.55a5.947 5.947 0 0 0 5.948-5.947V4.081l-.008-.018c0-.014.004-.028.004-.043 0-2.227-1.88-4.02-4.108-4.02zm.09 2.545a1.409 1.409 0 0 1 1.407 1.41A1.409 1.409 0 0 1 19.2 5.364a1.409 1.409 0 0 1-1.41-1.408 1.409 1.409 0 0 1 1.41-1.41zM12 6.12a6.656 6.656 0 0 1 6.656 6.655A6.656 6.656 0 0 1 12 19.434a6.656 6.656 0 0 1-6.656-6.657A6.656 6.656 0 0 1 12 6.122z\"},\"child\":[]}]})(props);\n};\nexport function SiPix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.283 18.36a3.505 3.505 0 0 0 2.493-1.032l3.6-3.6a.684.684 0 0 1 .946 0l3.613 3.613a3.504 3.504 0 0 0 2.493 1.032h.71l-4.56 4.56a3.647 3.647 0 0 1-5.156 0L4.85 18.36ZM18.428 5.627a3.505 3.505 0 0 0-2.493 1.032l-3.613 3.614a.67.67 0 0 1-.946 0l-3.6-3.6A3.505 3.505 0 0 0 5.283 5.64h-.434l4.573-4.572a3.646 3.646 0 0 1 5.156 0l4.559 4.559ZM1.068 9.422 3.79 6.699h1.492a2.483 2.483 0 0 1 1.744.722l3.6 3.6a1.73 1.73 0 0 0 2.443 0l3.614-3.613a2.482 2.482 0 0 1 1.744-.723h1.767l2.737 2.737a3.646 3.646 0 0 1 0 5.156l-2.736 2.736h-1.768a2.482 2.482 0 0 1-1.744-.722l-3.613-3.613a1.77 1.77 0 0 0-2.444 0l-3.6 3.6a2.483 2.483 0 0 1-1.744.722H3.791l-2.723-2.723a3.646 3.646 0 0 1 0-5.156\"},\"child\":[]}]})(props);\n};\nexport function SiPixabay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.627 10.234a.888.888 0 01-.887-.888H1.7c0 .49-.398.888-.888.888H0v9.447h15.56v-9.447H5.64zm-.886 2.796h-3.04v-1.323h3.04v1.323zm5.344 5.234a3.271 3.271 0 01-3.267-3.269c0-1.802 1.466-3.193 3.267-3.193s3.267 1.39 3.267 3.193a3.271 3.271 0 01-3.267 3.269zm1.756-3.269c0 .969-.788 1.757-1.756 1.757a1.759 1.759 0 01-1.756-1.757c0-.969.788-1.757 1.756-1.757s1.756.788 1.756 1.757zM24 9.501l-3.93 10.156-3.164-1.226V16.7l2.242.869 2.765-7.146L11.55 6.407l-.96 2.482h-1.73l1.769-4.57L24 9.501Z\"},\"child\":[]}]})(props);\n};\nexport function SiPixelfed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.3726 24 0 18.6274 0 12S5.3726 0 12 0s12 5.3726 12 12-5.3726 12-12 12m-.9526-9.3802h2.2014c2.0738 0 3.7549-1.6366 3.7549-3.6554S15.3226 7.309 13.2488 7.309h-3.1772c-1.1964 0-2.1663.9442-2.1663 2.1089v8.208z\"},\"child\":[]}]})(props);\n};\nexport function SiPixiv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.935 0A4.924 4.924 0 0 0 0 4.935v14.13A4.924 4.924 0 0 0 4.935 24h14.13A4.924 4.924 0 0 0 24 19.065V4.935A4.924 4.924 0 0 0 19.065 0zm7.81 4.547c2.181 0 4.058.676 5.399 1.847a6.118 6.118 0 0 1 2.116 4.66c.005 1.854-.88 3.476-2.257 4.563-1.375 1.092-3.225 1.697-5.258 1.697-2.314 0-4.46-.842-4.46-.842v2.718c.397.116 1.048.365.635.779H5.79c-.41-.41.19-.65.644-.779V7.666c-1.053.81-1.593 1.51-1.868 2.031.32 1.02-.284.969-.284.969l-1.09-1.73s3.868-4.39 9.553-4.39zm-.19.971c-1.423-.003-3.184.473-4.27 1.244v8.646c.988.487 2.484.832 4.26.832h.01c1.596 0 2.98-.593 3.93-1.533.952-.948 1.486-2.183 1.492-3.683-.005-1.54-.504-2.864-1.42-3.86-.918-.992-2.274-1.645-4.002-1.646Z\"},\"child\":[]}]})(props);\n};\nexport function SiPixlr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.264 14.391a17.698 17.698 0 0 1-2.645-.299A16.016 16.016 0 0 1 0 11.821v.284c0 6.052 4.483 11.043 10.311 11.85a48.568 48.568 0 0 1-1.808-7.816c-.075-.552-.164-1.135-.239-1.748Zm6.276-4.633c.374-.418.613-.941.688-1.494.015-.12.03-.24.03-.344a2 2 0 0 0-.24-1.016 1.34 1.34 0 0 0-.657-.628c-1.195-.582-2.615.658-3.123 1.69 0 0 0 .014-.015.014-.717 1.36-.523 3.542-.523 3.542a8.27 8.27 0 0 0 2.929-1.031c.329-.195.642-.434.911-.733zM12 .045C6.486.045 1.853 3.765.463 8.847c.105.134.643.433.733.493.254.164.523.329.792.493 1.11.647 2.897 1.47 5.155 1.749.314.06.643.074.957.074 0-.12-.015-.239-.015-.358-.015-.583.015-1.18.074-1.764.03-.239.045-.463.09-.702.015-.045.015-.105.03-.15v-.044c.374-2.003 1.42-3.781 3.362-4.648 2.003-.882 4.29-.523 5.545 1.36a5.218 5.218 0 0 1-.12 5.484c-1.315 2.048-3.631 3.034-6.067 3.363a44.26 44.26 0 0 0 .642 4.035 48.25 48.25 0 0 0 .882 3.511c.015.06.03.12.06.18.194.672.418 1.345.642 2.002C19.278 23.328 24 18.217 24 12.015 23.97 5.41 18.605.045 12 .045\"},\"child\":[]}]})(props);\n};\nexport function SiPkgsrc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.908 8.763 9.157-5.132L11.25 0 1.62 4.42Zm1.5 2.29 9-5.368-.948 11.84-8.191 6.382zM.593 6.712 1.619 18.79 11.922 24l-.12-12.788Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlanet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.891 6.582c-1.159 0-2.4.457-3.217 1.633h-.033a1.59 1.59 0 0 0-1.59-1.59h-.048v10.86a1.792 1.792 0 0 0 1.784 1.784v-4.703h.034c.343.571 1.29 1.536 3.185 1.536 2.857 0 4.572-2.352 4.572-4.638.002-2.416-1.616-4.882-4.687-4.882zm-.066 7.975c-1.714 0-3.07-1.388-3.07-3.217 0-1.666 1.242-3.2 3.023-3.2 1.845 0 3.103 1.616 3.103 3.233-.001 1.905-1.455 3.184-3.056 3.184zM12.001 24A12 12 0 1 1 24 12.001 12.013 12.013 0 0 1 12.001 24zm0-22.856a10.861 10.861 0 1 0 10.861 10.862 10.87 10.87 0 0 0-10.86-10.862z\"},\"child\":[]}]})(props);\n};\nexport function SiPlanetscale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12C0 5.373 5.373 0 12 0c4.873 0 9.067 2.904 10.947 7.077l-15.87 15.87a11.981 11.981 0 0 1-1.935-1.099L14.99 12H12l-8.485 8.485A11.962 11.962 0 0 1 0 12Zm12.004 12L24 12.004C23.998 18.628 18.628 23.998 12.004 24Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlangrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.6 0c2.6 0 4.262.009 5.828 1.574C23.99 3.141 24 4.794 24 7.401v9.2c0 2.6-.01 4.261-1.574 5.828C20.859 23.991 19.207 24 16.598 24h-9.2c-2.599 0-4.26-.009-5.827-1.574C.01 20.861 0 19.207 0 16.599v-9.2C0 4.8.01 3.138 1.574 1.572 3.141.01 4.793 0 7.4 0h9.201-.001zm4.398 11.151C20.57 6.578 16.684 3.002 12 3.002c-4.971 0-9 4.027-9 8.998 0 4.801 3.752 8.734 8.485 9h7.136c1.313-.003 2.375-1.066 2.379-2.381v-7.47l-.002.002zm-2.285 8.589c-.564 0-1.023-.46-1.023-1.024 0-.566.459-1.024 1.023-1.024.566 0 1.025.458 1.025 1.024 0 .564-.459 1.024-1.025 1.024zM12 18.949C8.163 18.945 5.055 15.836 5.051 12 5.055 8.164 8.163 5.055 12 5.051c3.836.004 6.945 3.113 6.949 6.949-.004 3.836-3.113 6.945-6.949 6.949z\"},\"child\":[]}]})(props);\n};\nexport function SiPlatformdotsh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0H0v9.541h24V0zM24 20.755H0V24h24v-3.245zM0 12.618h24v4.892H0v-4.892z\"},\"child\":[]}]})(props);\n};\nexport function SiPlatformio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 23.992c1.25.211 7.051-3.743 9.113-8.217.253-.686.61-1.198.746-2.5.21-2.016-.41-3.912-1.59-5.419-.987-1.163-2.305-2.004-3.88-2.532l.683-2.583a1.371 1.371 0 1 0-.76-.189L15.64 5.1c-1.109-.288-2.328-.437-3.64-.444m5.978 11.667c-1.548 1.346-2.525 1.488-3.045 1.467-.274-.034-.75-.558-.919-1.104-.188-.612-.28-1.282-.273-2.2-.199-2.476 1.465-5.624 3.937-6.041 1.003-.186 2.39.493 2.889 2.088.506 1.422-.645 4.147-2.589 5.79zM12 4.656c-1.315.007-2.538.156-3.65.447l-.675-2.56A1.37 1.37 0 0 0 6.962 0a1.372 1.372 0 0 0-.044 2.742L7.6 5.328c-1.57.528-2.885 1.367-3.871 2.528-1.179 1.507-1.8 3.403-1.588 5.419.136 1.302.492 1.814.745 2.5 2.062 4.474 7.862 8.428 9.113 8.217m-1.507-9.507c.007.92-.086 1.589-.274 2.201-.167.546-.644 1.07-.918 1.104-.52.021-1.498-.121-3.045-1.467-1.944-1.643-3.095-4.368-2.589-5.79.5-1.595 1.886-2.274 2.889-2.088 2.471.417 4.136 3.565 3.937 6.04zm6.45-2.19a1.24 1.24 0 1 0 0 2.48 1.24 1.24 0 0 0 0-2.48zm.416 1.149a.325.325 0 1 1 0-.65.325.325 0 0 1 0 .65zM7.25 12.294a1.24 1.24 0 1 0 0 2.48 1.24 1.24 0 0 0 0-2.48zm-.418 1.15a.325.325 0 1 1 0-.65.325.325 0 0 1 0 .65z\"},\"child\":[]}]})(props);\n};\nexport function SiPlatzi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.6392 1.127L2.486 9.282a3.842 3.842 0 000 5.4361l8.1552 8.1552a3.842 3.842 0 005.4361 0l2.719-2.718-2.719-2.7181-2.718 2.718-8.1562-8.1551 8.1552-8.1552 5.437 5.4371-5.437 5.4361 2.718 2.719 5.4371-5.437a3.842 3.842 0 000-5.4372l-5.448-5.436a3.828 3.828 0 00-5.4252 0z\"},\"child\":[]}]})(props);\n};\nexport function SiPlausibleanalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.1835.0017c-.6378-.0097-1.2884.022-1.7246.0996C8.601.424 7.035 1.2116 5.7384 2.4782 4.406 3.7806 3.582 5.299 3.1818 7.1929l-.1387.6445c-.0118 5.3872-.0233 10.7744-.035 16.1617.2914.0081.591-.0392.8416-.0606 2.348-.2868 4.3442-1.7083 5.4315-3.8651.2749-.5497.472-1.182.6094-1.9707.1135-.6691.1195-.8915.1016-4.3807l-.0176-3.6737.1425-.3574c.1972-.49.7425-1.0352 1.2324-1.2324l.3574-.1426 3.3457-.0058c1.8401 0 3.4545-.025 3.58-.0489.5854-.1135 1.2118-.6027 1.4628-1.1464.0717-.1494.1671-.4415.209-.6387.0657-.3286.0604-.4186-.0352-.789-.2987-1.0993-1.3503-2.6234-2.4257-3.5136C16.6247 1.1638 15.2798.4887 13.828.1482c-.3824-.0866-1.0067-.1368-1.6445-.1465zm8.5369 6.8006c-.0506.1798-.098.3662-.172.5215-.3358.7278-1.0382 1.2776-1.8221 1.4296-3.6737.0566-2.5392.0561-3.6737.0566l-3.248.0059-.2695.1074c-.3135.1262-.827.6397-.9531.9531l-.1074.2676.0175 3.576c.0149 2.8888.007 3.5821-.0605 4.125a8.9918 8.9918 0 0 0 1.5683.1386c4.9662.0001 8.992-4.0258 8.992-8.992a8.9918 8.9918 0 0 0-.2715-2.1893Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaycanvas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.115 0l-.002 3.414 5.823 3.41-5.82 3.414-.003 3.412 11.774-6.826zm11.77 10.35L6.113 17.174 17.887 24l-.002-3.414-5.82-3.412 5.822-3.412z\"},\"child\":[]}]})(props);\n};\nexport function SiPlayerdotme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.981 0a8.957 8.957 0 0 0-8.956 8.957v.363C3.283 15.828 10.082 24 10.082 24V13.205c-1.638-.747-2.756-2.369-2.756-4.253a4.66 4.66 0 1 1 6.152 4.416l-.033.01v4.427c4.296-.713 7.531-4.401 7.531-8.845A8.959 8.959 0 0 0 12.017.001h-.038.002z\"},\"child\":[]}]})(props);\n};\nexport function SiPlayerfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.976 0a12 12 0 00-.347.012c-.323.021-.771.063-1.129.11-3.29.448-6.096 2.1-7.993 4.56a12.027 12.027 0 00-1.22 1.94 12 12 0 00-.173.358c-.092.198-.179.4-.261.603a12 12 0 00-.288.788l-.045.143A12 12 0 000 11.986v.037A12 12 0 0012 24a12 12 0 0011.939-10.79l.003-.024A12 12 0 0024 12.018v-.048a12 12 0 00-.769-4.182c-.04-.105-.081-.21-.125-.313a12 12 0 00-.226-.507c-1.487-3.15-4.299-5.59-7.698-6.506-.76-.208-1.978-.39-2.813-.444A12 12 0 0012.024 0h-.048zm2.321 2.88c.166.001.377.056.675.159 1.782.611 3.773 2.157 4.856 3.764.752 1.118 1.337 2.428 1.337 2.987 0 .358-.35.681-.725.681-.35 0-.708-.305-.804-.68-.13-.525-.83-1.852-1.345-2.534-.917-1.205-2.332-2.262-3.72-2.777-.979-.367-1.232-.795-.778-1.336.152-.182.29-.267.504-.265zm-3.885 1.4c.26.001.495.056.7.165 1.31.664 1.24 2.568-.122 3.092-1.686.637-2.533 1.319-3.084 2.437-1.153 2.34-.21 5.1 2.123 6.218 1.712.821 3.668.533 5.03-.725.62-.576.961-1.074 1.267-1.878.428-1.126.917-1.545 1.79-1.545 1.119 0 1.887.943 1.66 2.026-.463 2.13-2.253 4.27-4.42 5.275-1.196.55-1.851.69-3.362.69-1.485 0-2.131-.131-3.284-.655-3.144-1.424-5.075-4.83-4.673-8.21a8.123 8.123 0 015.511-6.734c.315-.105.603-.157.864-.156zm3.463.96c.217.004.499.105.914.306 1.686.803 3.083 2.279 3.834 4.035.28.672.14 1.109-.41 1.283-.42.123-.7-.104-1.066-.864-.681-1.441-1.65-2.437-3.013-3.11-.795-.384-.891-.471-.97-.847-.035-.2 0-.314.184-.532.157-.184.31-.276.527-.271zm-.398 2.443c.23-.001.496.108.84.334.961.629 2.044 1.983 2.044 2.55 0 .289-.28.656-.559.725-.376.097-.646-.087-1.04-.707-.427-.655-.925-1.153-1.44-1.415-.446-.227-.577-.402-.577-.769a.58.58 0 01.245-.515.727.727 0 01.487-.203z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.984 2.596v17.547l3.915 1.261V6.688c0-.69.304-1.151.794-.991.636.18.76.814.76 1.505v5.875c2.441 1.193 4.362-.002 4.362-3.152 0-3.237-1.126-4.675-4.438-5.827-1.307-.448-3.728-1.186-5.39-1.502zm4.656 16.241l6.296-2.275c.715-.258.826-.625.246-.818-.586-.192-1.637-.139-2.357.123l-4.205 1.5V14.98l.24-.085s1.201-.42 2.913-.615c1.696-.18 3.785.03 5.437.661 1.848.601 2.04 1.472 1.576 2.072-.465.6-1.622 1.036-1.622 1.036l-8.544 3.107V18.86zM1.807 18.6c-1.9-.545-2.214-1.668-1.352-2.32.801-.586 2.16-1.052 2.16-1.052l5.615-2.013v2.313L4.205 17c-.705.271-.825.632-.239.826.586.195 1.637.15 2.343-.12L8.247 17v2.074c-.12.03-.256.044-.39.073-1.939.331-3.996.196-6.038-.479z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.46 13.779v.292h4.142v-3.85h3.796V9.93h-4.115v3.85zm16.248-3.558v1.62h-7.195v2.23H24v-.292h-7.168v-1.646H24V9.929h-7.487v.292zm-16.513 0v1.62H0v2.23h.292v-1.938H7.46V9.929H0v.292Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystation3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.362 9.433h-3.148c-.97 0-1.446.6-1.446 1.38v2.365c0 .483-.228.83-.71.83H7.304a.035.035 0 00-.035.035v.47c0 .02.01.032.03.032h3.11c.97 0 1.45-.597 1.45-1.377v-2.363c0-.484.224-.832.71-.832h2.781c.02 0 .04-.014.04-.033v-.475c0-.02-.02-.035-.04-.035zm-9.266 0H.038c-.022 0-.038.017-.038.035v.477c0 .02.016.036.038.036h5.694c.48 0 .71.347.71.83s-.228.83-.71.83H1.228c-.7 0-1.227.586-1.227 1.365v1.513c0 .02.02.037.04.037h1.03c.02 0 .04-.016.04-.037v-1.513c0-.48.28-.82.68-.82H6.1c.97 0 1.444-.594 1.444-1.374 0-.778-.473-1.38-1.442-1.38zm17.453 2.498a.04.04 0 010-.056c.3-.25.45-.627.45-1.062 0-.778-.474-1.38-1.446-1.38h-6.057c-.02 0-.036.018-.036.038v.475c0 .02.02.04.04.04h5.7c.48 0 .715.35.715.83s-.23.83-.712.83h-5.7c-.02 0-.036.02-.036.04v.48c0 .02.016.033.037.033h5.7c.63.007.71.62.71.93v.06c0 .485-.23.833-.71.833h-5.7c-.02 0-.036.015-.036.034v.477c0 .02.015.037.036.037h6.05c.973 0 1.446-.645 1.446-1.38v-.057c0-.47-.15-.916-.45-1.19z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystation4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.302 13.18v-2.387c0-.486.227-.834.712-.834h2.99c.017 0 .035-.018.035-.036v-.475c0-.004 0-.008-.003-.012h-3.66c-.792.1-1.18.653-1.18 1.357v2.386c0 .482-.233.831-.71.831H7.332c-.018 0-.036.012-.036.036v.475c0 .02.01.035.023.04h3.584c.933-.025 1.393-.62 1.393-1.385zM.024 14.564h1.05a.042.042 0 00.025-.04v-1.52c0-.487.275-.823.676-.823h4.323c.974 0 1.445-.6 1.445-1.384 0-.705-.386-1.257-1.18-1.357H.006c0 .003-.006.005-.006.01v.475c0 .024.013.036.037.036h5.697c.484 0 .712.35.712.833 0 .484-.227.836-.712.836H1.226c-.7 0-1.226.592-1.226 1.373v1.519c0 .02.01.036.028.04zm15.998-.55h5.738c.017 0 .03.012.03.024v.483c0 .024.017.036.035.036h1.035c.018 0 .036-.01.036-.036v-.475c0-.018.02-.036.04-.036h1.028c.024 0 .036-.018.036-.036v-.484c0-.018-.01-.036-.035-.036h-1.03c-.02 0-.037-.017-.037-.035V9.96c0-.283-.104-.463-.28-.523h-.3a1.153 1.153 0 00-.303.132l-6.18 3.815c-.24.15-.323.318-.263.445.048.104.185.182.454.182zm.895-.637l4.79-2.961c.03-.024.09-.018.09.048v2.961c0 .018-.016.036-.034.036h-4.817c-.04 0-.06-.012-.065-.024-.006-.024.005-.042.036-.06z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystation5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.4499 14.56905a1.38287 1.38287 0 001.38287-1.38287v-2.37841a.83315.83315 0 01.83416-.83315h2.68403a.03732.03732 0 00.03631-.03732V9.4612a.03631.03631 0 00-.0363-.0363H12.1172a1.38287 1.38287 0 00-1.38388 1.38286v2.38043a.83416.83416 0 01-.83315.83415H7.25347a.03631.03631 0 00-.03631.03632v.47608a.03631.03631 0 00.03631.03631zm6.04488-3.21156V9.4612a.03631.03631 0 01.0363-.0363h7.30772a.03732.03732 0 01.03732.0363v.47609a.03833.03833 0 01-.03732.03732h-6.20929a.03631.03631 0 00-.0363.03631v1.2356a.3954.3954 0 00.3964.39741h4.62267a1.46457 1.46457 0 010 2.9251h-6.0812a.03631.03631 0 01-.0363-.0363v-.47407a.03631.03631 0 01.0363-.03632h5.53047a.91586.91586 0 10-.00706-1.8307h-4.72656a.83315.83315 0 01-.83315-.83416m-10.84608.28645a.83466.83466 0 000-1.66932H.03654a.03732.03732 0 01-.03632-.03732V9.4612a.03631.03631 0 01.03632-.0363h6.1528a1.38388 1.38388 0 010 2.76673H1.9328a.83315.83315 0 00-.83315.83416v1.51299a.03631.03631 0 01-.03631.0363H.03654a.03631.03631 0 01-.03632-.04034v-1.51298a1.38287 1.38287 0 011.38388-1.37783Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystationportable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.93v.296h7.182v1.626H.001v2.217h.295v-1.921h7.182V9.93zm11.29 0v3.844H7.478v.296h4.124v-3.844h3.813V9.93zm5.233 0v.296h7.182v1.626h-7.182v2.217h.296v-1.921H24V9.93z\"},\"child\":[]}]})(props);\n};\nexport function SiPlaystationvita (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.176 12.216H1.274c-.26 0-.453.198-.453.538v1.235H0v-1.19c0-.668.42-1.119 1.014-1.119h1.924c.471-.018.584-.252.584-.592 0-.26-.13-.616-.584-.58H0v-.49h3.176c.832 0 1.16.481 1.16 1.07 0 .669-.328 1.128-1.16 1.128zm3.488-1.122v1.813c0 .663-.299 1.076-1.126 1.076H3.761v-.49h1.55c.318 0 .507-.258.507-.586v-1.813c0-.578.28-1.077 1.102-1.077h1.765v.49H7.158c-.412-.017-.494.32-.494.587zm4.84 2.904c-.331-.018-.47-.27-.532-.377-.063-.107-1.92-3.609-1.92-3.609h.924l1.538 2.855c.08.16.262.2.36.012l1.53-2.867h.577s-1.798 3.404-1.87 3.52c-.071.117-.276.484-.607.466zm3.005-3.972h.84v3.96h-.84zm3.77.46l.003 3.477h-.826V10.49l-1.57-.002v-.483L19.859 10l-.002.489zm3.235-.481c-.314.005-.51.354-.579.467-.071.116-1.873 3.527-1.873 3.527h.578l.44-.84h2.541l.454.84H24s-1.86-3.508-1.923-3.616c-.062-.107-.201-.36-.533-.378h-.03zm-.18.996c.078-.005.155.047.2.138l.825 1.525h-2.004l.818-1.538c.043-.082.102-.12.162-.125Z\"},\"child\":[]}]})(props);\n};\nexport function SiPleroma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.36 0A1.868 1.868 0 004.49 1.868V24h5.964V0zm7.113 0v12h4.168a1.868 1.868 0 001.868-1.868V0zm0 18.036V24h4.168a1.868 1.868 0 001.868-1.868v-4.096Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlesk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.102 7.021v7.353h.736V7.02zm13.655.01v7.343h.735V7.032zm.735 4.633l2.479 2.71h1.019l-2.574-2.731L24 9.122h-.987zm-4.008-2.636c-.536 0-.972.125-1.31.378-.337.252-.505.609-.505 1.07 0 .26.049.474.148.642.1.168.226.306.38.415.154.108.328.198.522.267.194.07.39.134.59.19.175.049.342.1.5.152.158.052.297.117.418.194.12.077.216.17.286.278.07.109.104.244.104.405 0 .21-.095.388-.286.535-.19.147-.484.221-.88.221-.609 0-1.104-.245-1.485-.735l-.572.504c.286.315.59.54.913.678.322.136.693.204 1.11.204.272 0 .527-.033.766-.1a1.89 1.89 0 00.621-.294c.176-.13.316-.288.419-.478.102-.189.153-.402.153-.64 0-.26-.051-.474-.153-.646a1.46 1.46 0 00-.402-.436 2.284 2.284 0 00-.545-.289 13.019 13.019 0 00-.594-.205c-.161-.049-.317-.1-.467-.152a2.013 2.013 0 01-.397-.184.923.923 0 01-.275-.252.598.598 0 01-.104-.357c0-.203.075-.371.225-.504.15-.133.413-.2.787-.2.293 0 .546.055.759.163.213.109.41.278.594.51l.011.01.54-.494c-.272-.315-.556-.535-.853-.661a2.586 2.586 0 00-1.018-.19zm-14.688.041c-.588 0-1.187.095-1.796.284v7.626h.725v-2.72c.182.048.364.087.546.115a3.539 3.539 0 001.586-.11c.336-.102.635-.261.898-.478.263-.217.474-.494.636-.83.16-.336.241-.739.241-1.208 0-.385-.067-.742-.2-1.071a2.42 2.42 0 00-.572-.851 2.636 2.636 0 00-.898-.557c-.35-.133-.739-.2-1.166-.2zm8.886 0c-.322 0-.627.055-.914.163-.287.11-.54.275-.756.5a2.391 2.391 0 00-.515.845c-.126.34-.189.74-.189 1.202 0 .35.052.683.157.998.106.315.263.596.473.84.21.246.473.44.788.583.315.144.683.216 1.103.216.455 0 .844-.068 1.166-.205.322-.137.605-.338.85-.604l-.44-.462c-.204.224-.431.387-.683.488a2.226 2.226 0 01-.84.153c-.554 0-.992-.175-1.314-.526-.322-.35-.493-.822-.514-1.417h3.939c.013-.904-.176-1.592-.568-2.064-.392-.473-.973-.71-1.743-.71zm.031.62c.26 0 .487.04.683.121.196.08.355.187.478.32.122.133.217.295.284.484.066.189.1.392.1.609H9.074a2.126 2.126 0 01.494-1.103c.111-.126.264-.23.456-.31.193-.08.422-.12.688-.12zM1.86 9.7c.616 0 1.094.188 1.434.563.34.374.51.866.51 1.475 0 .659-.185 1.165-.552 1.518-.368.354-.863.53-1.486.53-.168 0-.342-.018-.52-.057a4.836 4.836 0 01-.52-.142V9.868c.182-.063.367-.107.557-.132.189-.024.38-.036.577-.036zm2.377 6.588v.692H8.66v-.692z\"},\"child\":[]}]})(props);\n};\nexport function SiPlex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.987 8.409c-.96 0-1.587.28-2.12.933v-.72H0v8.88s.038.018.127.037c.138.03.821.187 1.331-.249.441-.377.542-.814.542-1.318v-1.283c.533.573 1.147.813 2 .813 1.84 0 3.253-1.493 3.253-3.48 0-2.12-1.36-3.613-3.266-3.613Zm16.748 5.595.406.591c.391.614.894.906 1.492.908.621-.012 1.064-.562 1.226-.755 0 0-.307-.27-.686-.72-.517-.614-1.214-1.755-1.24-1.803l-1.198 1.779Zm-3.205-1.955c0-2.08-1.52-3.64-3.52-3.64s-3.467 1.587-3.467 3.573a3.48 3.48 0 0 0 3.507 3.52c1.413 0 2.626-.84 3.253-2.293h-2.04l-.093.093c-.427.4-.72.533-1.227.533-.787 0-1.373-.506-1.453-1.266h4.986c.04-.214.054-.307.054-.52Zm-7.671-.219c0 .769.11 1.701.868 2.722l.056.069c-.306.526-.742.88-1.248.88-.399 0-.814-.211-1.138-.579a2.177 2.177 0 0 1-.538-1.441V6.409H9.86l-.001 5.421Zm9.283 3.46h-2.39l2.247-3.332-2.247-3.335h2.39l2.248 3.335-2.248 3.332Zm1.593-1.286Zm-17.162-.342c-.933 0-1.68-.773-1.68-1.72s.76-1.666 1.68-1.666c.92 0 1.68.733 1.68 1.68 0 .946-.733 1.706-1.68 1.706Zm18.361-1.974L24 8.622h-2.391l-.87 1.293 1.195 1.773Zm-9.404-.466c.16-.706.72-1.133 1.493-1.133.773 0 1.373.467 1.507 1.133h-3Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlotly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.021 0C.967 0 .111.883.111 1.973v20.054c0 1.09.857 1.973 1.91 1.973H21.98c1.054 0 1.91-.884 1.91-1.973V1.973C23.89.883 23.034 0 21.98 0H2.02zM10.1 4.648a.72.72 0 0 1 .304.127 1.196 1.196 0 0 1 .356.373.212.212 0 0 1 .084.163c.165.388.135.857-.149 1.203-.19.232-.429.305-.648.263a.241.241 0 0 1-.096.04c-.41.13-.884-.218-.994-.663-.065-.26-.087-.674.076-.908a.367.367 0 0 1 .082-.086.917.917 0 0 1 .05-.264c.077-.214.256-.214.425-.148a.542.542 0 0 1 .09-.006 1.938 1.938 0 0 1 .158.008.277.277 0 0 1 .262-.102zm8.43 0c.098.012.204.06.304.127a1.196 1.196 0 0 1 .355.373.212.212 0 0 1 .084.163c.166.388.136.857-.148 1.203-.19.232-.43.305-.648.263a.241.241 0 0 1-.096.04c-.41.13-.885-.218-.994-.663-.065-.26-.087-.674.076-.908a.367.367 0 0 1 .082-.086.91.91 0 0 1 .049-.264c.077-.214.256-.214.424-.148a.57.57 0 0 1 .091-.006 1.938 1.938 0 0 1 .159.008.277.277 0 0 1 .261-.102zm-13.159.16c.224-.013.461.063.649.198a1.069 1.069 0 0 1 .23.223 1.518 1.518 0 0 1 .059.039c.341.244.312.679.074.992l-.004.008a.91.91 0 0 1-.897.558c-.302-.008-.611-.084-.82-.271-.2-.143-.34-.356-.332-.627a.131.131 0 0 1 .092-.127 1.042 1.042 0 0 1 .342-.6.704.704 0 0 1 .607-.393zm8.682.003c.224-.014.461.06.648.195a1.069 1.069 0 0 1 .229.224 1.518 1.518 0 0 1 .058.04c.342.244.315.679.076.992l-.005.006a.907.907 0 0 1-.895.558c-.302-.008-.614-.084-.822-.271a.73.73 0 0 1-.33-.627.131.131 0 0 1 .092-.125 1.04 1.04 0 0 1 .34-.6.705.705 0 0 1 .61-.393zm-8.282.496a.563.563 0 0 1 .034.04l.011.005a.126.126 0 0 1 .088.076.596.596 0 0 1 .225.125.659.659 0 0 0-.078-.135 1.161 1.161 0 0 0-.28-.111zm8.68 0a.563.563 0 0 1 .033.04l.012.005c.039.007.07.038.088.076a.596.596 0 0 1 .225.125.659.659 0 0 0-.079-.135 1.153 1.153 0 0 0-.279-.111zm-4.553.119a1.912 1.912 0 0 0-.005.295c.075-.042.081-.17.064-.262a.322.322 0 0 0-.059-.033zm8.428 0a1.943 1.943 0 0 0-.004.295c.076-.042.08-.17.063-.262l-.02-.014a.303.303 0 0 0-.039-.02zM5.55 5.65l-.086.028.01.04c.057-.032.133-.028.175.028a.435.435 0 0 0-.003-.057.335.335 0 0 1-.075-.023c-.008-.004-.014-.01-.021-.016zm8.68 0l-.086.028.011.04c.057-.032.134-.028.176.028a.435.435 0 0 0-.004-.057.335.335 0 0 1-.074-.023.153.153 0 0 1-.023-.016zm-9.032.088c.003.017.005.036.01.053a.888.888 0 0 0 .023.078c-.026-.029-.038-.073-.033-.13zm8.68.002a.866.866 0 0 0 .033.13c-.026-.029-.038-.072-.033-.13zm-3.18.02l-.011.017a.38.38 0 0 1-.13.237.183.183 0 0 0-.001.006.119.119 0 0 1-.04.119.9.9 0 0 1-.029.064 1.862 1.862 0 0 1-.148.285.572.572 0 0 0 .217-.205c.1-.156.147-.34.142-.523zm8.43 0l-.012.017a.378.378 0 0 1-.129.237c0 .001 0 .004-.002.006.013.043-.005.088-.039.119a1.163 1.163 0 0 1-.029.064 1.862 1.862 0 0 1-.148.285.566.566 0 0 0 .216-.205c.1-.156.148-.34.143-.523zm-9.961.039a1.314 1.314 0 0 0 .004.133c.017.185.078.383.219.513a.59.59 0 0 0 .086.067 1.038 1.038 0 0 1-.143-.278 2.565 2.565 0 0 1-.166-.435zm8.43 0a1.314 1.314 0 0 0 .004.133c.017.185.078.383.218.513a.59.59 0 0 0 .086.067 1.054 1.054 0 0 1-.142-.278 2.522 2.522 0 0 1-.166-.435zm-11.67.146a.434.434 0 0 1-.028.065l.036.068a.238.238 0 0 0-.008-.133zm8.681 0a.51.51 0 0 1-.029.065l.035.068a.241.241 0 0 0-.006-.133zm-9.09.41a.61.61 0 0 1-.18.038l-.013.015a.532.532 0 0 0 .229-.013.495.495 0 0 1-.035-.04zm8.68 0a.61.61 0 0 1-.18.038l-.013.015a.532.532 0 0 0 .228-.013.625.625 0 0 1-.035-.04zm-4.308 2.3a1.061 1.061 0 0 1 1.052 1.072v8.58c0 .592-.47 1.072-1.052 1.072-.583 0-1.055-.48-1.055-1.072v-8.58c0-.592.472-1.072 1.055-1.073zm8.431 0a1.062 1.062 0 0 1 1.053 1.072v8.58c0 .592-.47 1.072-1.053 1.072-.582 0-1.054-.48-1.054-1.072v-8.58c0-.592.472-1.072 1.054-1.073zm-12.95.105c.224-.013.461.06.649.195a1.075 1.075 0 0 1 .23.225 1.871 1.871 0 0 1 .059.039c.341.244.312.679.074.992l-.004.006a.91.91 0 0 1-.897.558c-.302-.007-.611-.083-.82-.271-.2-.142-.34-.354-.332-.625a.131.131 0 0 1 .092-.127 1.042 1.042 0 0 1 .342-.6.701.701 0 0 1 .607-.393zm8.682 0c.224-.013.461.06.648.195a1.075 1.075 0 0 1 .229.225 1.871 1.871 0 0 1 .058.039c.342.244.315.679.076.992l-.005.006a.907.907 0 0 1-.895.558c-.302-.007-.614-.083-.822-.271a.727.727 0 0 1-.33-.625.131.131 0 0 1 .092-.127 1.04 1.04 0 0 1 .34-.6.705.705 0 0 1 .61-.393zm-8.282.496a.567.567 0 0 1 .034.043l.011.002a.126.126 0 0 1 .088.076.599.599 0 0 1 .225.125.659.659 0 0 0-.078-.133 1.21 1.21 0 0 0-.28-.113zm8.68 0a.567.567 0 0 1 .033.043l.012.002c.039.007.07.038.088.076a.599.599 0 0 1 .225.125.659.659 0 0 0-.079-.133 1.2 1.2 0 0 0-.279-.113zM5.55 9.6l-.086.027.01.041c.057-.032.133-.029.175.027a.437.437 0 0 0-.003-.054.323.323 0 0 1-.075-.026c-.008-.004-.014-.01-.021-.015zm8.68 0l-.086.027.011.041c.057-.032.134-.029.176.027a.437.437 0 0 0-.004-.054.323.323 0 0 1-.074-.026.153.153 0 0 1-.023-.015zm-9.032.09a.575.575 0 0 0 .032.123.164.164 0 0 1-.032-.124zm8.68 0a.575.575 0 0 0 .031.123.169.169 0 0 1-.031-.124zm-7.951.206a.419.419 0 0 1-.028.063 18.358 18.358 0 0 1 .036.07.237.237 0 0 0-.008-.133zm8.681 0a.419.419 0 0 1-.029.063 18.358 18.358 0 0 1 .035.07.241.241 0 0 0-.006-.133zm-9.09.409a.627.627 0 0 1-.18.037v.002l-.013.015a.548.548 0 0 0 .229-.015.61.61 0 0 1-.035-.04zm8.68 0a.627.627 0 0 1-.18.037v.002l-.013.015a.548.548 0 0 0 .228-.015l-.035-.04zm-8.525 2.64c.582 0 1.053.48 1.053 1.073v4.289c0 .592-.47 1.072-1.053 1.072-.582 0-1.055-.48-1.055-1.072v-4.29c0-.592.473-1.072 1.055-1.072zm8.432 0c.581 0 1.054.48 1.054 1.073v4.289c0 .592-.473 1.072-1.054 1.072-.583 0-1.053-.48-1.053-1.072v-4.29c0-.592.47-1.072 1.053-1.072Z\"},\"child\":[]}]})(props);\n};\nexport function SiPlume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.528 9.532c0-.368.095-.735.284-1.063v-.001l2.94-5.093a3.776 3.776 0 0 1 3.27-1.887l6.644.002c.294 0 .526.262.476.565-.038.238-.261.402-.502.402l-6.618-.002c-1.004 0-1.93.535-2.433 1.404L5.65 8.95h.001a1.17 1.17 0 0 0-.002 1.16l-.001-.002 2.75 4.764a.087.087 0 0 1-.074.13h-.767a.348.348 0 0 1-.301-.173L4.81 10.592v-.001a2.127 2.127 0 0 1-.282-1.059Zm.819 6.926v.001a2.133 2.133 0 0 0 1.837 1.064h4.894c.124 0 .24-.065.301-.173l.384-.664a.087.087 0 0 0-.076-.13H7.186h.001a1.163 1.163 0 0 1-1.003-.583v.002l-2.94-5.092a2.809 2.809 0 0 1 0-2.81l3.312-5.73c.12-.208.089-.483-.098-.636a.483.483 0 0 0-.727.13L2.407 7.59a3.776 3.776 0 0 0 0 3.776Zm14.126-1.99c0 .368-.096.735-.284 1.063v.001l-2.941 5.093a3.776 3.776 0 0 1-3.27 1.887l-6.643-.002a.484.484 0 0 1-.477-.565c.038-.238.262-.402.502-.402l6.618.002a2.81 2.81 0 0 0 2.433-1.404l2.94-5.092a1.171 1.171 0 0 0 .001-1.16l-2.75-4.763a.087.087 0 0 1 .076-.13h.766c.124 0 .24.066.302.174l2.444 4.237.001.002c.188.328.282.694.282 1.059zm-6.937 5.525H6.655a3.776 3.776 0 0 1-3.27-1.888L.065 12.35a.483.483 0 0 1 .222-.683c.23-.104.503.005.63.224l3.306 5.73a2.809 2.809 0 0 0 2.432 1.405h5.88-.002a1.171 1.171 0 0 0 1.006-.578v.001l2.75-4.764a.087.087 0 0 1 .151 0l.383.663a.349.349 0 0 1 0 .349l-2.447 4.236v.001a2.128 2.128 0 0 1-1.84 1.06zm11.399-8.341-3.32-5.755a3.776 3.776 0 0 0-3.27-1.888h-5.88a2.134 2.134 0 0 0-1.84 1.059l-.001.002-2.447 4.236a.348.348 0 0 0 0 .348l.383.663a.087.087 0 0 0 .15 0l2.751-4.764v.001a1.163 1.163 0 0 1 1.005-.578h5.88c1.003 0 1.93.535 2.431 1.405l3.306 5.73c.127.22.4.328.63.224a.483.483 0 0 0 .222-.683zM18.653 7.54l2.94 5.093a3.775 3.775 0 0 1 0 3.775l-3.324 5.753a.484.484 0 0 1-.727.13c-.187-.152-.218-.427-.097-.636l3.31-5.73a2.81 2.81 0 0 0 .001-2.809l-2.94-5.09a1.173 1.173 0 0 0-1.003-.583h-5.5a.087.087 0 0 1-.076-.13l.384-.664a.348.348 0 0 1 .301-.174l4.892.001h.002a2.128 2.128 0 0 1 1.837 1.064z\"},\"child\":[]}]})(props);\n};\nexport function SiPluralsight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.72 1.755C10.08-.301 3.811 2.625 1.771 8.25c-2.071 5.699.854 11.956 6.494 14.01 5.655 2.055 11.956-.87 14.01-6.51 2.057-5.67-.87-11.939-6.524-13.995h-.031zM12 24C5.4 24 0 18.6 0 12S5.4 0 12 0s12 5.4 12 12-5.4 12-12 12M8.926 5.805v12.391L19.68 12 8.926 5.805zm1.049 1.769L17.625 12l-7.65 4.426V7.574M6.449 7.155v9.689L14.85 12 6.449 7.155zm1.051 1.8L12.811 12 7.5 15.061V8.939\"},\"child\":[]}]})(props);\n};\nexport function SiPlurk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.9017 1.9056a10.0652 10.0652 0 00-7.8802 3.707 10.1803 10.1803 0 00-.283.357l.004-.003c.232-.196.473-.345.717-.445l.058-.023c.299-.112.602-.147.9-.088 1.4401.289 2.1901 2.6091 1.6751 5.1832-.515 2.574-2.1 4.4271-3.54 4.139-1.0101-.202-1.6781-1.405-1.8121-2.992v-.005.052c-.003.132-.003.266 0 .4v.073l.002.059c.005.149.013.296.024.443.005.067.012.134.019.2a10.0322 10.0322 0 00.961 3.4431c.06.126.03.276-.078.363l-.277.226a.906.906 0 00-.29.97c0 .006.003.01.006.017a.955.955 0 00.059.142l.05-.039.23-.174a.2612.2612 0 11.316.416l-.245.186-.037.028 1.177 1.4481a.91.91 0 001.275.131l.258-.21a.298.298 0 01.374 0 10.0502 10.0502 0 006.5272 2.181 10.0422 10.0422 0 005.5722-1.855.298.298 0 01.38.025l.163.156a.909.909 0 001.179.059l-.004-.004-.21-.197a.262.262 0 01.358-.382l.225.21 1.26-1.326a.91.91 0 00-.033-1.282l-.263-.25a.297.297 0 01-.054-.36 10.0602 10.0602 0 001.103-6.6712c.301-.278.853-.824 1.0691-1.292.231-.502.29-1.02-.323-.792-.476.177-.842.291-1.286.19-1.417-3.5932-4.8472-6.1932-8.8513-6.4002a9.7102 9.7102 0 00-.473-.014zM2.2645 6.2466a1.228 1.228 0 00-1.082 1.7641 1.23 1.23 0 10.754 2.236c.177-.124.306-.289.395-.47.186.342.46.627.778.823a5.5901 5.5901 0 00.017.6001c.102 1.228.62 2.16 1.401 2.316 1.114.223 2.34-1.21 2.738-3.2.3991-1.99-.181-3.7841-1.295-4.0071-.434-.087-.885.08-1.298.432-.45.383-.854.988-1.14 1.73-.01-.002-.02-.003-.03-.007-.14-.04-.215-.131-.312-.152a1.23 1.23 0 00-.926-2.065zm2.862 1.2441c.054 0 .107.004.16.015.726.143 1.104 1.312.844 2.608-.259 1.2981-1.058 2.2301-1.783 2.0851-.493-.098-.824-.67-.905-1.433.181.07.37.113.56.122.527.024.871-.154 1.14-.513.346-.465.084-1.753-.374-1.92-.356-.13-.567.027-.884.05.16-.298.351-.544.557-.72.219-.185.453-.292.686-.295z\"},\"child\":[]}]})(props);\n};\nexport function SiPluscodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a2.4 2.4 0 00-2.4 2.4A2.4 2.4 0 0012 4.8a2.4 2.4 0 002.4-2.4A2.4 2.4 0 0012 0zM9.543 9.543v4.914h4.914V9.543zM2.4 9.6A2.4 2.4 0 000 12a2.4 2.4 0 002.4 2.4A2.4 2.4 0 004.8 12a2.4 2.4 0 00-2.4-2.4zm19.2 0a2.4 2.4 0 00-2.4 2.4 2.4 2.4 0 002.4 2.4A2.4 2.4 0 0024 12a2.4 2.4 0 00-2.4-2.4zM12 19.2a2.4 2.4 0 00-2.4 2.4A2.4 2.4 0 0012 24a2.4 2.4 0 002.4-2.4 2.4 2.4 0 00-2.4-2.4z\"},\"child\":[]}]})(props);\n};\nexport function SiPm2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.43 3.223c-.83 1.386-.906 1.499-1.21 1.81-.633.654-1.417 1.003-2.415 1.074-.187.013-1.265.033-2.702.05-.638.008-.75.011-.766.028-.01.011-.185.274-.39.586l-.37.565.104.005c.056.003.443-.003.858-.011a93.159 93.163 0 011.335-.019c.572 0 .58 0 .667.03.246.084.393.306.355.533a.504.504 0 01-.394.42c-.104.027-.375.034-2.821.075-.426.007-.78.015-.784.02a30.5 30.5 0 00-.747 1.145c.004.004.405 0 .893-.007 3.13-.051 5.844-.092 6.6-.1.727-.008.995-.02 1.19-.054.54-.092.954-.297 1.31-.65.253-.252.475-.572.852-1.23.125-.217.262-.45.307-.52l.138-.223c.033-.054.07-.11.082-.125.033-.038.1-.146.14-.23.034-.07.534-.906.75-1.257.15-.242.232-.312.42-.355.26-.06.58.102.653.332.06.188.033.305-.136.59-1.21 2.035-1.65 2.764-1.887 3.123-.672 1.018-1.684 1.564-2.991 1.613-.105.003-.773.015-1.486.026l-2.052.031-1.591.027a1166.545 1166.596 0 01-3.102.048c-.502.005-.761.013-.78.022a.723.723 0 00-.12.186 2.87 2.87 0 00-.285.793.427.427 0 01-.039.132c-.024.007-.02.787.003.81a.41.41 0 01.04.135c.057.285.197.616.395.932l.092.147 1.316.008c.724.004 2.597.015 4.164.021 1.692.008 2.914.019 3.01.027.318.026.488.052.75.118a3.374 3.374 0 011.652.95c.255.264.38.44.941 1.339.366.584 1.455 2.363 1.494 2.44.142.28.05.571-.223.7a.588.588 0 01-.518.01c-.145-.072-.152-.08-.9-1.29a85.42 85.42 0 00-.512-.822 26.09 26.091 0 01-.344-.565c-.37-.62-.588-.93-.82-1.162a2.367 2.367 0 00-1.164-.627c-.286-.064-.338-.066-2.328-.077a590.763 590.789 0 00-3.215-.014c-.738 0-1.634-.005-1.99-.008-.517-.008-.647-.007-.647.007 0 .008.156.27.348.578l.348.56.332.003c2.407.019 2.53.02 2.619.037.194.04.309.123.386.28a.35.35 0 01.05.212.43.43 0 01-.143.342.568.568 0 01-.251.142c-.075.022-.142.024-1.214.02-.92-.003-1.134 0-1.126.013.04.072.695 1.125.704 1.135.008.007.592.016 1.508.021 1.23.008 1.527.013 1.673.03 1.105.13 1.942.603 2.573 1.457.117.158.248.366.912 1.44l.466.754h.714c.392 0 .714-.003.714-.007s-.257-.42-.57-.924a493.191 493.213 0 01-1.49-2.407 12.643 12.644 0 00-.274-.43 2.395 2.395 0 00-1.434-.97c-.252-.061-.428-.077-.874-.083-.446-.006-.522-.016-.646-.08a.552.552 0 01-.231-.227c-.033-.065-.037-.088-.037-.211 0-.127.003-.145.037-.208a.557.557 0 01.357-.275c.07-.021.13-.024.52-.024.345 0 .48.005.625.024.937.12 1.64.445 2.224 1.027.276.276.397.443.758 1.042.127.209.412.672.636 1.028l1.05 1.686.644 1.04h.905c.722 0 .905-.005.9-.018a23.922 23.923 0 00-.24-.39c-.46-.737-.493-.796-.513-.943-.027-.206.118-.419.345-.5a.548.548 0 01.6.134c.064.063.414.61.936 1.465l.156.255.178-.009a3.32 3.32 0 001.31-.325c.065-.03.125-.056.134-.059a3.149 3.149 0 001.078-.886 541.326 541.35 0 002.393-3.65c2.484-3.806 2.433-3.724 2.554-4.086a2.682 2.682 0 00-.115-2.016c-.048-.103-.838-1.387-2.263-3.683a536.842 536.866 0 00-2.253-3.617 2.936 2.936 0 00-1.1-.915 3.19 3.191 0 00-.902-.316c-.18-.033-.193-.036-.183-.052.004-.008-.106-.01-.292-.01l-.298.005-.265.44c-.588.98-.643 1.068-.726 1.151a.568.568 0 01-.309.169c-.222.04-.496-.093-.59-.287-.03-.057-.033-.084-.033-.204 0-.187-.009-.167.504-1.01a3.41 3.41 0 00.147-.254c0-.007-.29-.012-.71-.012h-.71l-.019.03a441.636 441.636 0 01-1.829 3.028c-.21.347-.468.776-.57.953-.231.396-.326.54-.49.744a4.123 4.123 0 01-.563.56c-.53.411-1.17.66-1.92.747-.361.042-.884.048-1.072.013a.576.576 0 01-.384-.276c-.033-.065-.037-.083-.037-.21 0-.12.004-.147.034-.21a.542.542 0 01.352-.279c.073-.02.16-.027.515-.037.264-.007.485-.02.578-.033a3.15 3.15 0 00.599-.15c.164-.065.396-.19.532-.288a2.87 2.87 0 00.53-.526c.056-.074.325-.509.599-.966.273-.458.8-1.334 1.171-1.947.37-.614.677-1.124.68-1.135.006-.016-.098-.018-.703-.018h-.708l-.622 1.035zm7.036.536c0 .01.005.02.012.022.005.001.101.149.212.327.506.81.692 1.117.72 1.194.036.1.04.231.008.323a.646.646 0 01-.24.262.543.543 0 01-.657-.088c-.08-.075-.165-.201-.46-.685-.11-.182-.214-.346-.229-.366-.016-.024-.022-.046-.016-.066.01-.031.56-.88.601-.925.027-.03.05-.03.05.003zM16.08 5.896c-.004.007 0 .013.005.016.012.004 1.003 1.593 1.574 2.523.48.778.696 1.127.88 1.413.301.469.413.687.526 1.026.115.342.16.653.147 1.005-.007.24-.03.39-.088.624-.102.4-.325.866-.61 1.278-.09.128-.273.322-.304.322-.01 0-.02.005-.02.012 0 .006-.039.025-.086.04a.633.633 0 01-.39-.012.661.661 0 01-.294-.283c-.032-.067-.034-.087-.029-.19.007-.14.036-.202.231-.503.25-.385.352-.596.424-.885.124-.49.063-.976-.184-1.46-.049-.095-.36-.606-.692-1.138a342.675 342.69 0 01-1.16-1.867c-.308-.496-.569-.918-.584-.938-.014-.021-.024-.045-.02-.054.01-.027.59-.907.62-.938.02-.022.03-.026.043-.016.01.008.015.02.01.026zm3.142.909a.59.59 0 01.26.188c.095.117 1.425 2.23 1.911 3.04.28.462.41.75.5 1.103.062.243.086.431.086.689 0 .343-.037.57-.145.897-.126.382-.217.553-.658 1.236-.16.25-.998 1.548-1.858 2.887l-1.862 2.89c-.163.253-.303.47-.31.485-.008.013-.019.023-.027.02a20.635 20.636 0 01-.625-1.006c0-.009.012-.033.025-.052a8337.117 8337.482 0 013.846-5.967c.205-.318.266-.429.343-.62a1.95 1.95 0 00.15-.84c-.014-.316-.077-.54-.254-.894-.13-.266-.255-.476-.562-.95-.125-.193-.269-.42-.319-.504a76.564 76.567 0 00-.486-.789c-.764-1.226-.755-1.21-.757-1.35 0-.118.04-.212.128-.307a.67.67 0 01.32-.184.633.633 0 01.294.027zm-4.54 1.215l.2.325c1.091 1.747 1.137 1.824 1.247 2.043.461.919.465 1.832.014 2.735-.096.19-.135.255-.767 1.236-.848 1.32-.947 1.47-.974 1.5-.022.022-.025.024-.025.003 0-.012-.533-.881-1.184-1.93a193.219 193.227 0 01-1.184-1.918c0-.007.554-.858 1.233-1.892a612.753 612.78 0 001.314-2.007.706.706 0 01.096-.127c.007 0 .02.014.03.033zm2.437 6.843a.675.675 0 01.277.26.469.469 0 01.041.153c.01.133-.024.21-.264.588a820.264 820.3 0 01-1.25 1.954l-.125.194c-.022.04-.026.042-.048.026a29.746 29.747 0 01-.605-.97c-.012-.03 1.237-1.975 1.327-2.068a.55.55 0 01.446-.182.436.436 0 01.201.045z\"},\"child\":[]}]})(props);\n};\nexport function SiPnpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v7.5h7.5V0zm8.25 0v7.5h7.498V0zm8.25 0v7.5H24V0zM8.25 8.25v7.5h7.498v-7.5zm8.25 0v7.5H24v-7.5zM0 16.5V24h7.5v-7.5zm8.25 0V24h7.498v-7.5zm8.25 0V24H24v-7.5z\"},\"child\":[]}]})(props);\n};\nexport function SiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.813 10.259l-5.646 5.419c-.32.305-.73.458-1.141.458-.41 0-.821-.153-1.141-.458l-5.646-5.419c-.657-.628-.677-1.671-.049-2.326.63-.657 1.671-.679 2.325-.05l4.511 4.322 4.517-4.322c.66-.631 1.697-.607 2.326.049.631.645.615 1.695-.045 2.326l-.011.001zm5.083-7.546c-.299-.858-1.125-1.436-2.041-1.436H2.179c-.9 0-1.717.564-2.037 1.405-.094.25-.142.511-.142.774v7.245l.084 1.441c.348 3.277 2.047 6.142 4.682 8.139.045.036.094.07.143.105l.03.023c1.411 1.03 2.989 1.728 4.694 2.072.786.158 1.591.24 2.389.24.739 0 1.481-.067 2.209-.204.088-.029.176-.045.264-.06.023 0 .049-.015.074-.029 1.633-.36 3.148-1.036 4.508-2.025l.029-.031.135-.105c2.627-1.995 4.324-4.862 4.686-8.148L24 10.678V3.445c0-.251-.031-.5-.121-.742l.017.01z\"},\"child\":[]}]})(props);\n};\nexport function SiPocketbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.684 12a.632.632 0 0 1-.631-.632V4.421c0-.349.282-.632.631-.632h2.37c.46 0 .889.047 1.287.139.407.084.758.23 1.053.44.303.202.541.475.715.82.173.335.26.75.26 1.246 0 .479-.092.894-.273 1.247a2.373 2.373 0 0 1-.715.869 3.11 3.11 0 0 1-1.053.503c-.398.11-.823.164-1.273.164h-.46a.632.632 0 0 0-.632.632v1.52a.632.632 0 0 1-.632.631Zm1.279-4.888c0 .349.283.632.632.632h.343c1.04 0 1.56-.437 1.56-1.31 0-.428-.135-.73-.404-.907-.26-.176-.645-.264-1.156-.264h-.343a.632.632 0 0 0-.632.631Zm6.3 13.098a.632.632 0 0 1-.631-.631v-6.947a.63.63 0 0 1 .631-.632h2.203c.44 0 .845.034 1.216.1.38.06.708.169.984.328.276.16.492.37.647.63.164.26.246.587.246.982 0 .185-.03.37-.09.554a1.537 1.537 0 0 1-.26.516 1.857 1.857 0 0 1-1.076.7.031.031 0 0 0-.023.03c0 .015.01.028.025.03.591.111 1.04.32 1.346.626.311.31.466.743.466 1.297 0 .42-.082.78-.246 1.083a2.153 2.153 0 0 1-.685.755 3.4 3.4 0 0 1-1.036.441 5.477 5.477 0 0 1-1.268.139zm1.271-5.542c0 .349.283.631.632.631h.21c.465 0 .802-.088 1.009-.264.207-.176.31-.424.31-.743 0-.302-.107-.516-.323-.642-.207-.135-.535-.202-.984-.202h-.222a.632.632 0 0 0-.632.632Zm0 3.463c0 .349.283.631.632.631h.39c1.019 0 1.528-.369 1.528-1.108 0-.36-.125-.621-.376-.78-.241-.16-.625-.24-1.152-.24h-.39a.632.632 0 0 0-.632.632zM1.389 0C.629 0 0 .629 0 1.389V15.03a1.4 1.4 0 0 0 1.389 1.39H8.21a.632.632 0 0 0 .63-.632.632.632 0 0 0-.63-.63H1.389c-.078 0-.125-.05-.125-.128V1.39c0-.078.047-.125.125-.125H15.03c.078 0 .127.047.127.125v6.82a.632.632 0 0 0 .631.63.632.632 0 0 0 .633-.63V1.389A1.4 1.4 0 0 0 15.032 0ZM15.79 7.578a.632.632 0 0 0-.632.633.632.632 0 0 0 .631.63h6.822c.078 0 .125.05.125.128V22.61c0 .078-.047.125-.125.125H8.97c-.077 0-.127-.047-.127-.125v-6.82a.632.632 0 0 0-.631-.63.632.632 0 0 0-.633.63v6.822A1.4 1.4 0 0 0 8.968 24h13.643c.76 0 1.389-.629 1.389-1.389V8.97a1.4 1.4 0 0 0-1.389-1.39Z\"},\"child\":[]}]})(props);\n};\nexport function SiPocketcasts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,0C5.372,0,0,5.372,0,12c0,6.628,5.372,12,12,12c6.628,0,12-5.372,12-12 C24,5.372,18.628,0,12,0z M15.564,12c0-1.968-1.596-3.564-3.564-3.564c-1.968,0-3.564,1.595-3.564,3.564 c0,1.968,1.595,3.564,3.564,3.564V17.6c-3.093,0-5.6-2.507-5.6-5.6c0-3.093,2.507-5.6,5.6-5.6c3.093,0,5.6,2.507,5.6,5.6H15.564z M19,12c0-3.866-3.134-7-7-7c-3.866,0-7,3.134-7,7c0,3.866,3.134,7,7,7v2.333c-5.155,0-9.333-4.179-9.333-9.333 c0-5.155,4.179-9.333,9.333-9.333c5.155,0,9.333,4.179,9.333,9.333H19z\"},\"child\":[]}]})(props);\n};\nexport function SiPodcastaddict (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.36.037C2.41.037 0 2.447 0 5.397v13.207c0 2.95 2.41 5.36 5.36 5.36h13.28c2.945 0 5.36-2.41 5.36-5.36V5.396c0-2.95-2.415-5.36-5.36-5.36zm6.585 4.285a7.72 7.72 0 017.717 7.544l.005 7.896h-3.39v-1.326a7.68 7.68 0 01-4.327 1.326 7.777 7.777 0 01-2.384-.378v-4.63a3.647 3.647 0 002.416.91 3.666 3.666 0 003.599-2.97h-1.284a2.416 2.416 0 01-4.73-.66v-.031c0-1.095.728-2.023 1.728-2.316V8.403a3.67 3.67 0 00-2.975 3.6v6.852a7.72 7.72 0 013.625-14.533zm.031 1.87V7.43h.006a4.575 4.575 0 014.573 4.574v.01h1.237v-.01a5.81 5.81 0 00-5.81-5.81zm0 2.149v1.246h.006a2.413 2.413 0 012.415 2.416v.01h1.247v-.01a3.662 3.662 0 00-3.662-3.662zm0 2.252c-.78 0-1.409.629-1.409 1.41 0 .78.629 1.409 1.41 1.409.78 0 1.409-.629 1.409-1.41 0-.78-.629-1.409-1.41-1.409z\"},\"child\":[]}]})(props);\n};\nexport function SiPodcastindex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.0056.0056c-.2362.0208-.4667.1034-.6462.2366C1.7274 2.2537.1728 4.9759.2924 8.289c.1197 3.1949 1.6743 6.2709 4.067 8.0458.2393.1183.4795.2366.7188.2366.3589 0 .7172-.1182.9564-.4732.4786-.5917.3594-1.3013-.2388-1.6563-1.9142-1.3016-3.1105-3.7863-3.1105-6.1529 0-2.4848 1.0767-4.6157 3.1105-6.154.5982-.355.5977-1.183.2388-1.6562-.2243-.3698-.6353-.508-1.029-.4732Zm13.7533 0c-.314.0295-.613.1774-.7924.4732-.3589.4733-.3593 1.3012.2389 1.6562 2.0338 1.5383 3.1105 3.6692 3.1105 6.154 0 2.3666-1.1964 4.8513-3.1105 6.153-.5982.355-.7174 1.0645-.2389 1.6562.2393.355.5987.4732.9576.4732.2393 0 .4784-.1183.7176-.2366 2.5124-1.775 4.067-4.851 4.067-8.0458.1077-3.3131-1.435-6.0353-4.067-8.0468-.2392-.1775-.5687-.2662-.8828-.2366ZM16.4944 3.558c-.3065.0118-.609.1395-.8303.3761-.4546.4733-.4183 1.2307.0602 1.6686 1.5314 1.408 1.6627 3.7978-.0122 5.3716-.4666.4615-.4904 1.2075-.0357 1.6808.4546.4733 1.2078.4965 1.6863.0469 2.7158-2.5559 2.4881-6.5196-.0122-8.827-.2393-.2248-.5495-.3288-.856-.317zm-8.9933.0067c-.305-.0118-.6167.0914-.856.3103-2.5004 2.3074-2.7269 6.2711-.0111 8.827.4785.4496 1.2317.4264 1.6863-.0469.4547-.4733.4306-1.2189-.048-1.6685-1.6749-1.5738-1.5316-3.9647-.0122-5.3728.4785-.4496.5148-1.194.0602-1.6674-.2153-.2426-.514-.3699-.8192-.3817Zm4.499 2.1496a2.5714 2.5714 0 0 0-2.5715 2.5714 2.5714 2.5714 0 0 0 1.193 2.1696L7.7144 24h2.5246l2.8772-13.4018a2.5714 2.5714 0 0 0 1.4553-2.3125A2.5714 2.5714 0 0 0 12 5.7143Z\"},\"child\":[]}]})(props);\n};\nexport function SiPodman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.2.275L6.75.308a.259.259 0 0 0-.203.098L.056 8.602a.259.259 0 0 0-.05.219l2.356 10.194a.26.26 0 0 0 .14.174l9.43 4.511a.258.258 0 0 0 .224-.002l9.401-4.566a.259.259 0 0 0 .141-.175L23.993 8.75a.258.258 0 0 0-.051-.22L17.403.374A.259.259 0 0 0 17.2.275zm-.123.517l6.385 7.966-2.242 9.964-9.177 4.457-9.205-4.402L.54 8.827 6.875.824zM11.46 2.857c-.933 0-1.84.1-2.426.332h-.002c-1.554.569-2.725 2.105-3.074 3.952v.004c-.309 1.463-.392 2.703-.556 3.824-.07.481-.159.94-.283 1.387-.628.497-1.079 1.263-1.244 2.138v.004c-.116.547-.181 1.04-.237 1.5h-.644v.518h8.891c-.061.464-.122.996-.181 1.42H7.596v.517h7.939c-.242-.078-.486-.218-.756-.502h-.697l-.85.488-.232-.396.162-.092h-1.069c.113-.776.17-1.601.373-2.564v-.004c.22-1.164.96-2.112 1.895-2.453l.004-.002h.002c.318-.127.928-.205 1.543-.205.613 0 1.244.075 1.622.207.935.341 1.676 1.29 1.895 2.453v.004c.204.963.26 1.788.373 2.564h-.742l.162.092-.233.396-.85-.488h-.75c-.219.25-.474.412-.747.502h4.392v-.518h-.842c-.103-.743-.181-1.67-.382-2.623v-.002a4.14 4.14 0 0 0-.264-.863h1.863v-.517h-2.13a3.488 3.488 0 0 0-.8-.906h1.8v-.518H17.95a8.862 8.862 0 0 1-.193-.775h1.484v-.518h-1.576c-.013-.081-.027-.161-.039-.244-.164-1.12-.246-2.36-.555-3.824v-.004c-.348-1.848-1.52-3.383-3.075-3.952l-.002-.002h-.002c-.65-.227-1.596-.33-2.531-.33zm0 .386c.904 0 1.833.11 2.404.309h.002c1.4.514 2.5 1.934 2.826 3.666v.003c.303 1.436.385 2.66.552 3.805.076.515.173 1.013.315 1.505-.449-.135-1.05-.197-1.648-.197-.12 0-.236.003-.352.008l-1.863-1.865a2.17 2.17 0 0 0 .11-.246l2.13 1.23.13-.224-2.185-1.262c.016-.069.027-.14.036-.21l2.302.616.068-.248-2.354-.63c-.02-1.153-1.008-2.078-2.208-2.078-1.205 0-2.196.931-2.206 2.091l-2.303.617.066.25 2.252-.605c.01.076.024.151.041.224L7.436 11.24l.129.222 2.087-1.207c.034.089.074.176.12.258l-1.266 1.266a6.959 6.959 0 0 0-1.045-.075c-.603 0-1.186.064-1.578.22a2.668 2.668 0 0 0-.285.124c.076-.335.137-.675.187-1.021.168-1.144.248-2.37.551-3.805l.002-.001v-.002c.326-1.733 1.426-3.153 2.828-3.666h.002l.004-.002c.488-.194 1.381-.307 2.287-.307zM8.473 5.194a1.295 1.295 0 0 0-.965.502l-.117.153.306.236.12-.152a.923.923 0 0 1 .673-.352.92.92 0 0 1 .67.262l.139.134.271-.275-.136-.137a1.293 1.293 0 0 0-.961-.37zm6.39 0a1.289 1.289 0 0 0-.96.371l-.138.137.274.275.136-.134a.923.923 0 0 1 .672-.262.923.923 0 0 1 .674.352l.119.152.307-.236-.12-.153c-.23-.3-.587-.486-.964-.502zM8.53 6.708c-.642 0-1.164.538-1.164 1.19 0 .65.522 1.187 1.164 1.187.643 0 1.164-.536 1.164-1.188 0-.651-.521-1.19-1.164-1.19zm6.273 0c-.643 0-1.162.538-1.162 1.19 0 .65.52 1.187 1.162 1.187.643 0 1.164-.536 1.164-1.188 0-.651-.521-1.19-1.164-1.19zm-6.273.387c.428 0 .776.355.776.802 0 .447-.348.8-.776.8a.785.785 0 0 1-.775-.8c0-.035.002-.07.006-.103.07.191.248.318.445.318a.487.487 0 0 0 .477-.496.49.49 0 0 0-.383-.486.759.759 0 0 1 .23-.035zm6.273 0c.428 0 .777.355.777.802 0 .447-.349.8-.777.8a.785.785 0 0 1-.77-.9c.072.19.248.315.444.315a.486.486 0 0 0 .479-.496.491.491 0 0 0-.383-.484.755.755 0 0 1 .23-.037zm-3.08.716c1.012 0 1.819.775 1.819 1.723 0 .947-.807 1.722-1.819 1.722s-1.82-.775-1.82-1.722c0-.948.808-1.723 1.82-1.723zm-.002.528c-.142 0-.258.043-.355.076a.804.804 0 0 1-.232.054c-.107 0-.2.047-.268.127a.568.568 0 0 0-.104.207c-.04.134-.062.268-.08.315a.276.276 0 0 0 .032.25c.033.056.071.1.117.146.09.092.206.183.322.268.12.088.237.166.326.224l-.008.09c-.043.036-.14.102-.324.178a.533.533 0 0 1-.299.025.43.43 0 0 1-.236-.172c.015-.138.044-.293.068-.449l-.376-.095c-.05.238-.067.43-.094.64l.037.059c.143.224.318.344.506.392a.908.908 0 0 0 .52-.033 1.57 1.57 0 0 0 .444-.242c.088.067.244.174.446.242a.908.908 0 0 0 .52.033.868.868 0 0 0 .507-.392l.037-.059a6.292 6.292 0 0 0-.096-.637l-.377.092c.032.148.051.32.07.451a.434.434 0 0 1-.237.17.533.533 0 0 1-.3-.025c-.178-.068-.272-.14-.325-.178l-.006-.084c.09-.058.209-.137.336-.23.115-.085.231-.176.322-.268a.72.72 0 0 0 .117-.146.273.273 0 0 0 .031-.25c-.018-.047-.039-.181-.08-.315a.564.564 0 0 0-.103-.207.343.343 0 0 0-.268-.127.815.815 0 0 1-.234-.054c-.097-.033-.212-.076-.354-.076zm.002.386c.057 0 .134.024.23.057.09.03.208.07.337.076.04.102.06.237.09.338a.361.361 0 0 1-.041.045 2.66 2.66 0 0 1-.276.228c-.165.122-.271.188-.342.233a5.287 5.287 0 0 1-.34-.233 2.557 2.557 0 0 1-.275-.228.34.34 0 0 1-.04-.047c.035-.119.046-.234.089-.34.08.012.246-.042.336-.072a.837.837 0 0 1 .232-.057zm-3.234.61a.635.635 0 0 0-.611.517l1.084-.289a.614.614 0 0 0-.473-.228zm6.336 0a.61.61 0 0 0-.436.187c.352.096.69.184 1.033.275a.632.632 0 0 0-.597-.462zm-.623.607c-.007.035-.002.07-.002.103l.921.532a.648.648 0 0 0 .276-.313l-1.195-.322zm-5.086.05l-1.18.315c.078.15.207.264.362.316l.797-.46c.018-.059.015-.12.021-.17zm4.441.714l1.656 1.658a4.19 4.19 0 0 0-.826.146l-.95-1.647a2.51 2.51 0 0 0 .12-.157zm-3.646.03c.04.055.083.118.129.169l-.658 1.134a2.656 2.656 0 0 0-.276-.119l-.002-.002a3.3 3.3 0 0 0-.292-.082zm3.338.317l.892 1.547c-.623.251-1.149.725-1.523 1.33h-1.652c-.262-.75-.741-1.38-1.358-1.764l.623-1.082c.394.347.919.559 1.492.559a2.25 2.25 0 0 0 1.526-.59zM7.46 12.09c.574 0 1.167.073 1.518.195.867.319 1.555 1.203 1.76 2.285l.001.002v.002c.109.513.173.98.227 1.424H9.86a.386.386 0 0 0-.494 0H9.11a1.351 1.351 0 0 0-.078-.418.799.799 0 0 0 .569.238c.45 0 .814-.375.814-.828a.824.824 0 0 0-.814-.828.822.822 0 0 0-.791 1.016 1.495 1.495 0 0 0-1.18-.559c-.798 0-1.46.611-1.48 1.38h-.342a.386.386 0 0 0-.494 0H4.028c.054-.445.116-.912.224-1.425l.002-.002v-.002c.205-1.084.894-1.97 1.764-2.287h.002l.004-.002c.295-.117.863-.191 1.437-.19zm-1.91 1.105a.898.898 0 0 0-.67.348l-.119.154.307.237.119-.155a.525.525 0 0 1 .379-.197.52.52 0 0 1 .377.147l.138.136.272-.275-.137-.137a.895.895 0 0 0-.666-.258zm4.094 0a.9.9 0 0 0-.668.258l-.137.137.273.275.137-.136a.522.522 0 0 1 .377-.147.525.525 0 0 1 .379.197l.119.155.307-.237-.12-.154a.894.894 0 0 0-.667-.348zm4.222.735a.947.947 0 0 0-.707.365l-.117.154.306.237.12-.155a.568.568 0 0 1 .413-.213.571.571 0 0 1 .414.159l.14.136.27-.275-.138-.137a.942.942 0 0 0-.701-.271zm4.374 0a.942.942 0 0 0-.7.271l-.14.137.272.275.139-.136a.571.571 0 0 1 .414-.159.568.568 0 0 1 .414.213l.119.155.306-.237-.117-.154a.947.947 0 0 0-.707-.365zm-12.65.232a.824.824 0 0 0-.815.828c0 .453.365.828.814.828.45 0 .815-.375.815-.828a.824.824 0 0 0-.815-.828zm5.518.285h1.242a4.137 4.137 0 0 0-.263.864v.002c-.05.237-.092.464-.127.685h-.602a16.77 16.77 0 0 0-.236-1.5l-.002-.002c-.003-.016-.009-.032-.012-.049zm-5.519.102a.43.43 0 0 1 .426.441.43.43 0 0 1-.426.442c-.22 0-.4-.171-.422-.397a.298.298 0 0 0 .215.092.31.31 0 0 0 .305-.316.317.317 0 0 0-.129-.258c.01-.001.02-.004.031-.004zm4.014 0c.235 0 .427.193.427.441a.433.433 0 0 1-.427.442.427.427 0 0 1-.422-.405.3.3 0 0 0 .256.145.31.31 0 0 0 .304-.317.314.314 0 0 0-.207-.298c.023-.004.045-.008.069-.008zm4.304.414a.865.865 0 0 0-.856.87c0 .478.382.874.856.874a.868.868 0 0 0 .857-.873.867.867 0 0 0-.857-.871zm4.292 0a.867.867 0 0 0-.814 1.14 1.597 1.597 0 0 0-1.295-.652c-.846 0-1.546.65-1.568 1.463l-1.525.408.066.248 1.477-.394c.004.028.009.06.015.087l-1.418.817.131.222 1.367-.789c.235.552.801.94 1.455.94.66 0 1.233-.397 1.463-.957l1.398.806.13-.222-1.45-.836c.005-.025.008-.053.012-.078l1.511.404.067-.248-1.563-.418a1.438 1.438 0 0 0-.107-.5c.157.186.39.303.648.303a.867.867 0 0 0 .856-.873.865.865 0 0 0-.856-.871zm-10.567.043c.598 0 1.071.444 1.092.992h-.41c.007-.01.016-.02.023-.033a.24.24 0 0 0 .025-.22c-.005-.016-.021-.102-.05-.196a.416.416 0 0 0-.078-.156.282.282 0 0 0-.225-.108.499.499 0 0 1-.129-.031c-.062-.021-.142-.05-.248-.05-.106 0-.188.029-.25.05a.49.49 0 0 1-.127.031.29.29 0 0 0-.225.108.424.424 0 0 0-.08.156c-.029.094-.043.18-.048.195a.242.242 0 0 0 .023.22c.008.014.017.023.025.034h-.41c.02-.548.494-.992 1.092-.992zm6.275.344c.259 0 .47.211.47.484a.477.477 0 0 1-.47.486.472.472 0 0 1-.467-.453.322.322 0 0 0 .246.115c.18 0 .326-.15.326-.338a.34.34 0 0 0-.156-.289c.017-.002.033-.005.05-.005zm4.292 0c.26 0 .469.211.469.484 0 .272-.21.486-.469.486a.477.477 0 0 1-.47-.486c0-.016.002-.031.004-.047a.33.33 0 0 0 .312.24c.18 0 .326-.15.326-.338a.338.338 0 0 0-.256-.332.475.475 0 0 1 .084-.007zm-10.567.24c.021 0 .063.01.125.031.086.03.117.039.186.049.012.041.022.088.033.129a1.475 1.475 0 0 1-.168.138c-.038.028-.064.045-.088.061h-.176c-.024-.016-.052-.033-.09-.06a1.602 1.602 0 0 1-.168-.14l.034-.128c.107-.014.146-.04.185-.049a.504.504 0 0 1 .127-.031zm8.458.25c.661 0 1.184.502 1.184 1.113 0 .156-.035.304-.096.44l-.002-.024-.022-.156a2.443 2.443 0 0 0-.04-.24l-.377.093.044.274a.24.24 0 0 1-.115.074.299.299 0 0 1-.168-.014c-.087-.03-.132-.063-.18-.094.057-.037.13-.084.198-.134.08-.06.16-.123.226-.19a.542.542 0 0 0 .092-.111.245.245 0 0 0 .026-.225c-.008-.019-.022-.112-.053-.21a.444.444 0 0 0-.084-.163.286.286 0 0 0-.23-.107.566.566 0 0 1-.14-.037c-.065-.022-.152-.055-.263-.055-.11 0-.195.032-.262.055a.575.575 0 0 1-.14.037.294.294 0 0 0-.23.107.436.436 0 0 0-.083.162c-.03.1-.045.192-.052.211a.246.246 0 0 0 .025.225.534.534 0 0 0 .09.111c.066.067.146.13.226.19.068.05.138.095.194.132a.57.57 0 0 1-.18.096.305.305 0 0 1-.17.014.237.237 0 0 1-.111-.076c.008-.09.026-.177.04-.272l-.376-.094c-.032.146-.045.286-.063.409a1.052 1.052 0 0 1-.09-.428c0-.611.521-1.113 1.182-1.113zm0 .623c.026 0 .074.01.14.033.066.025.169.052.206.055l.035.156c-.04.04-.112.1-.184.152-.095.07-.14.095-.197.131-.056-.036-.1-.061-.195-.13a1.236 1.236 0 0 1-.184-.157l.035-.152a1.04 1.04 0 0 0 .206-.055.523.523 0 0 1 .138-.033zm-2.22.353a.43.43 0 0 0-.385.272l.656-.176a.416.416 0 0 0-.271-.096zm4.333 0a.414.414 0 0 0-.22.07l.603.16a.426.426 0 0 0-.383-.23zm-4.054.567l-.607.162a.436.436 0 0 0 .125.113zm3.925.002l.407.234a.443.443 0 0 0 .087-.102zm-1.986.234c.067.047.165.108.285.148a.68.68 0 0 0 .389.024.57.57 0 0 0 .232-.121 1.201 1.201 0 0 1-.904.394c-.356 0-.67-.145-.885-.375a.58.58 0 0 0 .207.102c.144.036.28.014.391-.024.12-.04.218-.1.285-.148zm-9.524 1.61v.517h6.214v-.518zm3.619 1.292v.517H15.3v-.517z\"},\"child\":[]}]})(props);\n};\nexport function SiPoe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12.513V8.36c0-.888-.717-1.608-1.603-1.615h-.013c-.498-.009-1.194-.123-1.688-.619-.44-.439-.584-1.172-.622-1.783l-.001.003c-.002-.014-.002-.03-.003-.044l-.001-.03a1.616 1.616 0 0 0-1.607-1.45H5.54a1.59 1.59 0 0 0-.164.008l-.055.009c-.034.004-.068.008-.102.015l-.069.017c-.028.008-.056.013-.083.022-.024.007-.045.015-.07.024-.026.01-.053.018-.08.03-.021.008-.042.02-.063.029-.027.013-.054.024-.08.038l-.059.034c-.025.015-.052.03-.077.047a.967.967 0 0 0-.061.045c-.021.015-.044.03-.065.05a1.21 1.21 0 0 0-.099.09c-.006.005-.013.01-.018.016l-.014.016a1.59 1.59 0 0 0-.094.102c-.017.02-.03.042-.046.062-.016.021-.033.042-.047.063l-.045.074-.037.062-.036.076a.682.682 0 0 0-.058.143l-.027.075-.02.074a.773.773 0 0 0-.018.078c-.006.03-.009.058-.013.088-.003.022-.008.045-.01.069-.003.022-.003.045-.004.068l-.002-.002c-.036.61-.182 1.345-.62 1.784-.496.495-1.191.61-1.69.618h-.012c-.05 0-.1.003-.147.007a1.27 1.27 0 0 0-.072.012c-.029.004-.057.007-.084.012l-.082.02-.072.018c-.026.009-.052.019-.079.027-.024.009-.048.016-.07.026-.024.01-.048.022-.072.034a.767.767 0 0 0-.072.033l-.068.04-.068.041a1.228 1.228 0 0 0-.072.054c-.018.014-.037.026-.053.04a1.627 1.627 0 0 0-.226.227c-.015.016-.027.036-.041.053a1.398 1.398 0 0 0-.054.074c-.016.022-.028.045-.041.067L.19 7.6c-.012.023-.022.047-.033.07l-.034.073c-.01.024-.017.046-.026.07-.01.027-.02.053-.027.08-.007.023-.012.047-.018.071l-.02.082-.012.084c-.003.024-.009.048-.01.072-.007.052-.01.106-.01.16v4.152c0 .888.717 1.609 1.603 1.616h.01c.5.008 1.196.123 1.69.618.43.43.577 1.143.618 1.746v4.13c0 .524.66.754.986.346l2.333-2.92h11.22c.861 0 1.563-.675 1.611-1.524l.001.003c.037-.61.183-1.344.622-1.783.495-.496 1.19-.61 1.689-.619h.012c.044 0 .088-.003.132-.007l.022-.001A1.613 1.613 0 0 0 24 12.513zm-3.85 1.69c-.502.503-1.215.613-1.717.619H5.566c-.501-.006-1.215-.114-1.717-.618-.408-.409-.565-1.117-.618-1.744V8.415c.052-.627.209-1.337.618-1.745.503-.503 1.216-.613 1.717-.619h12.867c.502.006 1.216.115 1.718.619.409.41.564 1.117.618 1.744v4.041c-.052.63-.209 1.339-.618 1.749zM8.424 7.99c-.892 0-1.615.723-1.615 1.615v1.616a1.615 1.615 0 1 0 3.23 0V9.604c0-.892-.723-1.615-1.615-1.615Zm7.154 0c-.893 0-1.616.723-1.616 1.615v1.616a1.615 1.615 0 1 0 3.231 0V9.604c0-.892-.723-1.615-1.615-1.615z\"},\"child\":[]}]})(props);\n};\nexport function SiPoetry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.604 0a19.144 19.144 0 0 1-5.268 13.213L2.396 0l13.583 13.583a19.149 19.149 0 0 1-13.583 5.624V0h19.208Zm-1.911 17.297A24.455 24.455 0 0 1 7.189 24l-4.053-4.053a19.91 19.91 0 0 0 13.37-5.838l3.187 3.188Z\"},\"child\":[]}]})(props);\n};\nexport function SiPointy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.076.025S4.52.234 2.833 2.751c-1.58 2.351-1.465 5.145-1.1 8.121C2.096 13.831 2.587 24 2.587 24c.002.003 11.235-11.526 11.23-11.506 1.75-1.805 2.408-4.468 2.395-5.961-.037-4.274-3.461-6.815-8.136-6.508zm.777 10.774c-1.991 0-3.604-1.632-3.604-3.645 0-2.015 1.614-3.649 3.604-3.649s3.642 1.512 3.642 3.527c0 2.011-1.652 3.767-3.642 3.767zm2.765-3.741a1.58 1.58 0 1 1-3.162 0 1.58 1.58 0 0 1 3.162 0zm10.879 1.431s-2.325.158-3.644.57c-1.317.413-2.502 1.076-2.502 1.076s.495-.852.705-2.361c.207-1.511-.14-2.652-.14-2.652l5.581 3.367Z\"},\"child\":[]}]})(props);\n};\nexport function SiPokemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.463 11.691c-.081-.436-.651-.676-1.217-.368l.146.498.23.737.104.335c.423-.272.85-.599.737-1.203zm-.562.67a56.82 56.82 0 0 0-.197-.636l-.059-.203a.54.54 0 0 1 .33.033c.053.026.146.084.166.196.047.25-.037.429-.24.608zm9.108-1.362a.774.774 0 1 0-.963 1.207l1.018-1.153a1.058 1.058 0 0 0-.055-.054zm-.961.812a.5.5 0 0 1 .618-.707zm7.551.225a.375.375 0 0 1 .013.105c-.01.215-.213.382-.454.37-.241-.008-.43-.191-.42-.405.007-.203.187-.362.409-.372a.712.712 0 0 0-.132-.017c-.405-.017-.735.27-.748.626-.017.38.289.692.686.709.406.015.735-.272.75-.651a.625.625 0 0 0-.103-.365m-12.255.436c0 .216-.197.39-.438.39-.242 0-.438-.173-.438-.39 0-.202.173-.368.394-.388a.736.736 0 0 0-.132-.012c-.404 0-.723.3-.723.656 0 .382.32.68.716.68.405 0 .723-.298.723-.68a.605.605 0 0 0-.119-.358c.01.03.017.065.017.102m14.768-2.185l-.18.739-.166-.82-2.218-.487.016 1.233.334.075-.024.223-.01-.007c-.414-.218-.927-.24-1.41-.058-.163.06-.314.143-.45.242l-.335-2.112h-1.475l-.04.244h-1.553l-.177 1.085-.13-.159a1.986 1.986 0 0 0-1.525-.73l1.318-.709-.918-1.37-1.663 1.913.287.35a2.19 2.19 0 0 0-.674.429L9.696 9.104l-.497.953.019-.916-2.226.712.057 1.196.379-.098.056.605c-.433-.193-.954-.19-1.436.014a2.12 2.12 0 0 0-.399.229 1.695 1.695 0 0 0-.077-1.058 1.904 1.904 0 0 0-.817-.9 1.958 1.958 0 0 0-.865-.308c-.77-.135-1.696.003-2.606.392a6.339 6.339 0 0 0-.928.483L0 10.634l.215.363.667 1.127s.204.346.205.345l.361-.177.05-.023 1.658 3.7.16.355.37-.118.896-.288.394-.125-.104-.4-.476-1.829c.137-.101.264-.209.383-.321-.027.219-.013.44.047.652.124.443.416.793.818.986.435.21.965.21 1.456.002.247-.104.467-.257.651-.439l.068.728 1.57-.231-.002-1.407 3.282 1.62v-1.57a3.335 3.335 0 0 0 1.347-.436l-.138.843 1.77.279.097-.637.461.854.283-.545.104.895 2.005.352-.106-.674a1.817 1.817 0 0 0 1.038-.198l-.08.718 1.336.189.01.547 1.39.438L24 10.745zm-7.839.81l.092-.097-.112.69-.289-.262zm-1.177-2.813l.487.661-1.39.689-.097-.146zm-9.202 5.091l.555 2.128-.898.287-1.841-4.112c-.1.053-.284.14-.455.223L.59 10.775c.266-.169.556-.319.865-.45.868-.369 1.697-.48 2.36-.362.233.027.481.095.7.24.298.168.525.406.657.711.32.74-.215 1.807-1.276 2.461zm4.126-.378c-.01.318-.127.634-.321.903a1.797 1.797 0 0 1-.749.605c-.779.33-1.557 0-1.764-.74-.203-.714.266-1.565 1.02-1.89.483-.202.966-.155 1.312.08.213.146.377.364.453.637a1.33 1.33 0 0 1 .049.406zm4.236 1.504l-3.254-1.629.006 1.707-.843.115-.059-.703c.26-.446.355-.972.22-1.454a1.526 1.526 0 0 0-.4-.68l-.121-1.433-.377.098-.017-.362 1.352-.404.083 1.396.997-1.4.974.927-1.362 1.436 1.28.507c.142.27.36.5.634.67.264.163.568.26.889.291v.918zm-1.69-2.36l-.454-.174.423-.41c-.019.188-.01.385.03.584zm3.542.427c-.312.259-.67.427-1.139.54a2.216 2.216 0 0 1-.302.051c-.747.073-1.374-.27-1.612-.826a1.191 1.191 0 0 1-.069-.209c-.11-.468-.016-.887.215-1.215a1.47 1.47 0 0 1 .235-.261 1.87 1.87 0 0 1 .812-.413c.712-.171 1.339.046 1.723.517l-1.355 1.444a.978.978 0 0 0 .345-.033c.323-.079.504-.25.663-.436l.542.486.164.15a3.016 3.016 0 0 1-.222.205zm2.877 1.927l-.294-1.954-.418 1.078-.625-1.348h-.007l-.246 1.56-1.041-.18.146-.87a4.17 4.17 0 0 0 .116-.114l.338-.348-.329-.294.35-2.073h1.05l.262 1.436.294-1.663h.752l.312 2.026c-.396.451-.59 1.06-.456 1.615a1.478 1.478 0 0 0 .865 1.035l.04.263zm2.595-.637a1.64 1.64 0 0 1-.377.2 1.397 1.397 0 0 1-.773.077 1.153 1.153 0 0 1-.448-.19 1.118 1.118 0 0 1-.43-.655c-.08-.336-.007-.696.174-1.012.091-.154.207-.298.344-.423.152-.137.33-.25.527-.325.459-.172.912-.112 1.23.116a1.08 1.08 0 0 1 .422.633c.098.406-.018.838-.274 1.187a1.75 1.75 0 0 1-.395.392zm2.343 1.841l-.77-.229-.066-2.838-.388 2.19-.84-.135.062-.63c.547-.464.838-1.195.679-1.856a1.457 1.457 0 0 0-.434-.744l.071-.743-.317-.085.02-.396 1.448.29.487 2.308.499-2.069 1.1.244z\"},\"child\":[]}]})(props);\n};\nexport function SiPolars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.954 7.714h.434c.106 0 .193.087.193.197v3.726a.197.197 0 0 1-.193.193h-.434a.197.197 0 0 1-.197-.193V7.911c0-.11.087-.197.197-.197zm1.213 1.085h.435c.105 0 .192.087.192.196v2.521a.197.197 0 0 1-.192.193h-.435a.197.197 0 0 1-.197-.193v-2.52c0-.114.087-.197.197-.197zm1.206 1.383h.43c.11 0 .197.087.197.197v.718a.197.197 0 0 1-.197.192h-.43a.197.197 0 0 1-.197-.196v-.718a.189.189 0 0 1 .197-.19zm-3.629-2.827h.431a.197.197 0 0 1 .197.196v.719a.197.197 0 0 1-.197.189h-.435a.197.197 0 0 1-.196-.19v-.718a.197.197 0 0 1 .196-.196Zm0 1.444h.431a.197.197 0 0 1 .197.196v.658a.197.197 0 0 1-.197.193h-.435a.197.197 0 0 1-.196-.193v-.658a.197.197 0 0 1 .196-.196zm0 1.387h.431a.197.197 0 0 1 .197.193v1.08a.197.197 0 0 1-.197.193h-.435a.197.197 0 0 1-.196-.192v-1.081a.197.197 0 0 1 .196-.193zm-1.24-3.133h.435a.197.197 0 0 1 .193.196v1.138a.197.197 0 0 1-.193.196h-.434a.197.197 0 0 1-.197-.196V7.249a.197.197 0 0 1 .197-.196Zm0 1.927h.435a.197.197 0 0 1 .193.197v2.162a.197.197 0 0 1-.193.192h-.434a.197.197 0 0 1-.197-.192V9.177a.197.197 0 0 1 .197-.197ZM17.3 6.694h.435a.197.197 0 0 1 .196.192v4.574a.197.197 0 0 1-.196.192H17.3a.197.197 0 0 1-.197-.192V6.886a.197.197 0 0 1 .197-.192zm0 10.174h.435a.197.197 0 0 1 .196.197v.718a.197.197 0 0 1-.196.192H17.3a.197.197 0 0 1-.197-.196v-.718a.197.197 0 0 1 .197-.19zm-1.24-.964h.435a.197.197 0 0 1 .196.197v1.678a.197.197 0 0 1-.196.196h-.431a.197.197 0 0 1-.193-.196V16.1a.197.197 0 0 1 .193-.197zm0-5.117h.435a.197.197 0 0 1 .196.196v1.134a.197.197 0 0 1-.196.2h-.431a.197.197 0 0 1-.193-.196v-1.138a.197.197 0 0 1 .193-.196zm0-4.396h.435a.197.197 0 0 1 .196.197v3.605a.197.197 0 0 1-.196.197h-.431a.197.197 0 0 1-.193-.197V6.588a.197.197 0 0 1 .193-.197zm-1.22.06h.434a.197.197 0 0 1 .197.197V8.75a.197.197 0 0 1-.197.192h-.435a.197.197 0 0 1-.192-.192V6.648a.197.197 0 0 1 .192-.196zm0 2.892h.434a.197.197 0 0 1 .197.193v6.138a.197.197 0 0 1-.197.196h-.435a.197.197 0 0 1-.192-.196V9.536a.197.197 0 0 1 .192-.193Zm0 6.924h.434a.197.197 0 0 1 .197.193v1.14a.197.197 0 0 1-.197.193h-.435a.197.197 0 0 1-.192-.193v-1.14a.197.197 0 0 1 .192-.193zm-1.21-9.638h.43a.197.197 0 0 1 .197.2v4.925a.197.197 0 0 1-.196.197h-.435a.197.197 0 0 1-.193-.197V6.83a.197.197 0 0 1 .193-.197Zm0 5.722h.43a.197.197 0 0 1 .197.197v3.908a.197.197 0 0 1-.196.197h-.435a.197.197 0 0 1-.193-.197v-3.908a.197.197 0 0 1 .193-.197Zm-1.217-5.9h.435a.197.197 0 0 1 .192.197v3.179a.197.197 0 0 1-.192.196h-.435a.197.197 0 0 1-.197-.196V6.652a.197.197 0 0 1 .197-.197zm0 3.977h.435a.197.197 0 0 1 .192.192v2.646a.197.197 0 0 1-.192.193h-.435a.197.197 0 0 1-.197-.193V10.62a.197.197 0 0 1 .197-.192zm0 3.428h.435a.197.197 0 0 1 .192.196v1.198a.197.197 0 0 1-.192.197h-.435a.197.197 0 0 1-.197-.197v-1.198a.197.197 0 0 1 .197-.196zm-1.22-7.522h.434a.197.197 0 0 1 .196.19v1.443a.197.197 0 0 1-.196.193h-.439a.197.197 0 0 1-.196-.193v-1.44a.197.197 0 0 1 .196-.196zm0 2.227h.434a.197.197 0 0 1 .196.192v5.534a.197.197 0 0 1-.196.196h-.439a.197.197 0 0 1-.196-.196V8.753a.197.197 0 0 1 .196-.192Zm-1.225 8.182h.434a.197.197 0 0 1 .197.197v.835a.197.197 0 0 1-.197.197h-.434a.197.197 0 0 1-.193-.197v-.835a.197.197 0 0 1 .193-.197zm0-10.658h.434a.197.197 0 0 1 .197.197v5.113a.197.197 0 0 1-.197.193h-.434a.197.197 0 0 1-.193-.193v-5.11a.197.197 0 0 1 .193-.196Zm0 5.904h.434a.197.197 0 0 1 .197.192v2.102a.197.197 0 0 1-.197.196h-.434a.197.197 0 0 1-.193-.196V12.18a.197.197 0 0 1 .193-.192zm-1.221 3.855h.434a.197.197 0 0 1 .193.189v1.742a.197.197 0 0 1-.193.197h-.434a.197.197 0 0 1-.197-.197v-1.738a.197.197 0 0 1 .197-.197zm0-6.025h.434a.197.197 0 0 1 .193.197v4.27a.197.197 0 0 1-.193.193h-.434a.197.197 0 0 1-.197-.196v-4.267a.197.197 0 0 1 .197-.19Zm0-3.794h.434a.197.197 0 0 1 .193.196v3.005a.197.197 0 0 1-.193.196h-.434a.197.197 0 0 1-.197-.196V6.22a.197.197 0 0 1 .197-.196Zm-1.221.06h.435a.197.197 0 0 1 .196.197V7a.197.197 0 0 1-.196.192h-.435A.197.197 0 0 1 7.332 7v-.718a.197.197 0 0 1 .193-.197Zm0 1.448h.435a.197.197 0 0 1 .196.192v5.541a.197.197 0 0 1-.196.193h-.435a.197.197 0 0 1-.193-.193V7.73a.197.197 0 0 1 .193-.193Zm0 6.323h.435a.197.197 0 0 1 .196.193v1.5a.197.197 0 0 1-.196.197h-.435a.197.197 0 0 1-.193-.197v-1.5a.197.197 0 0 1 .193-.193zm0 2.286h.435a.197.197 0 0 1 .196.197v.956a.197.197 0 0 1-.196.197h-.435a.197.197 0 0 1-.193-.197v-.956a.197.197 0 0 1 .193-.197ZM6.305 6.57h.434a.197.197 0 0 1 .193.196v3.606a.197.197 0 0 1-.193.193h-.435a.197.197 0 0 1-.196-.193V6.765a.197.197 0 0 1 .196-.196Zm0 4.395h.434a.197.197 0 0 1 .193.193v.84a.197.197 0 0 1-.193.196h-.435a.197.197 0 0 1-.196-.197v-.839a.197.197 0 0 1 .196-.193Zm0 1.505h.43a.197.197 0 0 1 .197.196v3.727a.197.197 0 0 1-.197.196h-.43a.197.197 0 0 1-.197-.196v-3.727a.197.197 0 0 1 .196-.196ZM5.018 9.577h.56a.136.136 0 0 1 .132.136v2.763a.136.136 0 0 1-.132.136h-.556a.136.136 0 0 1-.136-.136V9.717a.136.136 0 0 1 .136-.14zm0 3.432h.56a.136.136 0 0 1 .132.136v2.483a.136.136 0 0 1-.132.136h-.556a.136.136 0 0 1-.136-.136v-2.475a.136.136 0 0 1 .136-.136zm0-5.96h.56a.136.136 0 0 1 .132.136v1.92a.136.136 0 0 1-.132.136h-.556a.136.136 0 0 1-.136-.136v-1.92a.136.136 0 0 1 .136-.136Zm-1.217.597h.552a.136.136 0 0 1 .136.132v2.884a.136.136 0 0 1-.136.132h-.552a.136.136 0 0 1-.136-.132V7.778a.136.136 0 0 1 .136-.132Zm0 3.5h.552a.136.136 0 0 1 .136.136v3.904a.136.136 0 0 1-.136.136h-.556a.136.136 0 0 1-.132-.136v-3.9a.136.136 0 0 1 .132-.136Zm-1.168 5.722h.435a.197.197 0 0 1 .197.197v.718a.197.197 0 0 1-.197.192h-.43a.197.197 0 0 1-.194-.196v-.718a.197.197 0 0 1 .193-.19zm-.06-2.562h.563a.136.136 0 0 1 .136.136v1.262a.136.136 0 0 1-.136.136h-.56a.136.136 0 0 1-.132-.136v-1.262a.136.136 0 0 1 .133-.136zm0-4.725h.563a.136.136 0 0 1 .136.132v4.075a.136.136 0 0 1-.136.136h-.56a.136.136 0 0 1-.132-.136V9.713a.136.136 0 0 1 .133-.132Zm-1.213 5.95h.555a.136.136 0 0 1 .136.135v2.173a.136.136 0 0 1-.136.136h-.56a.136.136 0 0 1-.135-.136v-2.173a.136.136 0 0 1 .136-.136zm.06-3.225h.431a.197.197 0 0 1 .197.193v2.506a.197.197 0 0 1-.197.196h-.435a.197.197 0 0 1-.196-.196v-2.506a.197.197 0 0 1 .196-.193ZM.14 15.001h.552c.075 0 .136.06.136.136v2.052c0 .076-.06.136-.136.136H.136A.136.136 0 0 1 0 17.19v-2.052c0-.076.06-.136.136-.136z\"},\"child\":[]}]})(props);\n};\nexport function SiPolestar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.549 0-.457.555v11.191h11.19l.554-.457-9.4-1.89zM.719 12.26l-.555.457L9.563 14.6l1.886 9.4.457-.555V12.26Z\"},\"child\":[]}]})(props);\n};\nexport function SiPolkadot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12,0c2.39,0,4.328,1.127,4.328,2.517S14.39,5.034,12,5.034,7.672,3.907,7.672,2.517,9.61,0,12,0Zm0,18.966c2.39,0,4.328,1.127,4.328,2.517S14.39,24,12,24s-4.328-1.127-4.328-2.517S9.61,18.966,12,18.966ZM1.606,6C2.8,3.93,4.747,2.816,5.952,3.511s1.212,2.937.017,5.007S2.828,11.7,1.624,11.007.411,8.07,1.606,6Zm16.427,9.483c1.2-2.07,3.139-3.184,4.343-2.489s1.211,2.936.016,5.006-3.14,3.185-4.344,2.49S16.837,17.553,18.033,15.483ZM1.624,12.993c1.205-.7,3.15.419,4.346,2.489s1.187,4.311-.018,5.007S2.8,20.07,1.607,18,.42,13.689,1.624,12.993ZM18.049,3.512c1.2-.695,3.149.419,4.344,2.489s1.188,4.311-.016,5.007-3.148-.42-4.343-2.49S16.846,4.207,18.049,3.512Z\"},\"child\":[]}]})(props);\n};\nexport function SiPoly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.569 16.102c-2.244 0-4.064-1.834-4.064-4.096s1.82-4.095 4.064-4.095c2.244 0 4.063 1.833 4.063 4.095 0 2.262-1.82 4.096-4.063 4.096zm11.019-5.671l-4.296 2.5.02-.118.012-.104.014-.173v-.013l.001-.012.009-.211.001-.232-.003-.168-.01-.24-.016-.22-.024-.239-.016-.13-.034-.233-.04-.228-.047-.223-.052-.219-.037-.135-.062-.211-.07-.207-.061-.168-.08-.2-.087-.195-.092-.19-.099-.189-.105-.185-.01-.015-.113-.183-.12-.18-.127-.176-.135-.175-.143-.172-.016-.02-.152-.17-.16-.168-.168-.167-.179-.166-.014-.013-.189-.165-.201-.166-.202-.158-.226-.167-.245-.172-.183-.124-.28-.181-.316-.197-.105-.063-.388-.23-.096-.057-.244-.142L1.705 0v3.175l4.296 2.5-.11.041-.096.042-.156.074-.012.006-.01.006-.186.098-.2.114-.142.087-.202.13-.181.124-.193.14-.106.08-.182.145-.175.149-.168.152-.162.155-.098.1-.15.16-.143.163-.114.14-.131.169-.125.172-.117.176-.112.18-.107.185-.01.017-.099.19-.094.194-.088.199-.082.204-.077.211-.009.025-.07.217-.065.223-.06.23-.053.24-.004.02-.047.246-.042.258-.034.256-.031.281-.026.299-.014.223-.016.334-.01.374-.003.125-.004.452V24l2.727-1.588v-5l.092.077.083.063.143.099.01.006.007.005.178.114.2.118.144.08.214.112.195.096.219.1.114.048.218.087.217.08.217.071.215.064.132.035.214.051.214.044.173.03.213.03.212.022.206.015.213.008h.227l.215-.008.216-.015.216-.022.22-.031.221-.039.02-.004.224-.047.226-.055.23-.065.233-.074.013-.004.238-.083.245-.093.233-.096.259-.115.272-.128.194-.097.298-.154.33-.18.102-.057.394-.225.094-.054.244-.142 8.697-5.06-2.728-1.588Z\"},\"child\":[]}]})(props);\n};\nexport function SiPolygon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.82 16.342 5.692-3.287A.98.98 0 0 0 24 12.21V5.635a.98.98 0 0 0-.488-.846l-5.693-3.286a.98.98 0 0 0-.977 0L11.15 4.789a.98.98 0 0 0-.489.846v11.747L6.67 19.686l-3.992-2.304v-4.61l3.992-2.304 2.633 1.52V8.896L7.158 7.658a.98.98 0 0 0-.977 0L.488 10.945a.98.98 0 0 0-.488.846v6.573a.98.98 0 0 0 .488.847l5.693 3.286a.981.981 0 0 0 .977 0l5.692-3.286a.98.98 0 0 0 .489-.846V6.618l.072-.041 3.92-2.263 3.99 2.305v4.609l-3.99 2.304-2.63-1.517v3.092l2.14 1.236a.981.981 0 0 0 .978 0v-.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiPolymerproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.4 3.686L7.2 16.16 4.8 12l4.8-8.314H4.8L0 12l2.4 4.159 2.4 4.155h4.8l7.2-12.469L19.2 12l-4.8 8.314h4.8l2.4-4.155L24 12l-2.4-4.155-2.4-4.159Z\"},\"child\":[]}]})(props);\n};\nexport function SiPolywork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.125 0H4.875A4.865 4.865 0 0 0 0 4.875v14.25C0 21.825 2.175 24 4.875 24h6.6c2.7 0 4.875-2.175 4.875-4.875V16.65h2.775c2.7 0 4.875-2.175 4.875-4.875v-6.9C24 2.175 21.825 0 19.125 0zM16.5 1.275h2.625a3.6 3.6 0 0 1 3.6 3.6v2.7H16.5v-6.3zM15.075 9v6.45H8.85V9h6.225zM8.85 1.2h6.225v6.375H8.85V1.2zM1.275 4.8a3.6 3.6 0 0 1 3.6-3.6H7.5v6.375H1.275V4.8zM7.5 9v6.45H1.2V9h6.3zm0 13.725H4.8a3.6 3.6 0 0 1-3.6-3.6V16.8h6.3v5.925zm7.575-3.525a3.6 3.6 0 0 1-3.6 3.6H8.85v-5.925h6.225V19.2zm7.65-7.35a3.6 3.6 0 0 1-3.6 3.6H16.5V9h6.225v2.85z\"},\"child\":[]}]})(props);\n};\nexport function SiPond5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.504 11.385h.755c.92 0 1.747.286 1.741 1.388 0 1.047-.932 1.412-1.717 1.412-.993 0-1.75-.359-1.754-1.37v-.14h.944v.14c0 .384.442.53.798.53.233 0 .784-.085.784-.572.006-.475-.508-.572-.797-.572h-1.644V9.875h3.146v.853h-2.256Zm-4.167 2.745h-1.76V9.87h1.76c1.478 0 2.134.985 2.134 2.1 0 1.113-.632 2.16-2.134 2.16zm0-3.402h-.816v2.526h.816c.932 0 1.19-.682 1.19-1.297 0-.615-.295-1.23-1.19-1.23zm-6.055 1.14v2.262h-.955V9.81l.134-.023 2.598 2.33V9.869h.957v4.333l-.1.017-2.634-2.351zm-4.431 2.367c-1.374 0-2.319-.848-2.319-2.235 0-1.388.945-2.235 2.319-2.235 1.373 0 2.318.847 2.318 2.235 0 1.387-.944 2.234-2.318 2.234zm0-3.618c-.816 0-1.38.61-1.38 1.382 0 .798.564 1.376 1.38 1.376.834 0 1.38-.584 1.38-1.376 0-.779-.546-1.382-1.38-1.382zm-4.827 2.308h-.587v-.87h.587c.46 0 .686-.299.686-.64 0-.34-.232-.645-.686-.645H.957v3.36H0V9.87h2.024c1.097 0 1.642.705 1.642 1.527 0 .852-.552 1.516-1.643 1.528z\"},\"child\":[]}]})(props);\n};\nexport function SiPopos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.373 0 12c0 6.628 5.372 12 12 12 6.627 0 12-5.372 12-12 0-6.627-5.373-12-12-12ZM9.64 2.918c1.091-.026 1.548.229 2.182.635a4.459 4.459 0 0 1 1.902 2.764c.254 1.141.178 2.029-.127 2.664v.05c-.609 1.294-1.622 2.335-3.043 2.842l1.217 3.172c.228.583.432 1.192.254 1.75-.177.558-.989.736-1.572.127-1.116-1.192-4.871-8.702-5.15-9.26-.279-.558-.584-1.016-.584-1.574.026-.837 1.318-1.7 1.953-2.131.634-.431 1.877-1.014 2.968-1.039Zm-.996 2.311c-.789.022-.358 1.669-.197 2.129.178.507.661 1.572 1.193 2.105.127.127.254.229.407.254.152.027.457-.127.584-.33a.932.932 0 0 0 .15-.559 3.232 3.232 0 0 0-.049-1.216c-.228-.787-.711-1.548-1.346-2.055-.127-.102-.279-.229-.457-.279a.901.901 0 0 0-.285-.049Zm8.414 2.027a2.283 2.283 0 0 1 1.588.636c.305.279.33.582.229.963-.102.38-.457 1.194-.736 1.777l-.709 1.344c-1.37 2.435-1.649 2.689-2.03 2.537-.456-.178-.304-2.614.127-5.582.127-.812.329-1.217.557-1.42.171-.152.6-.248.975-.254l-.001-.001Zm-1.859 8.332c.554.011.789.7.656 1.232a.861.861 0 0 1-.379.559c-.203.127-.685.127-.965-.102-.278-.228-.33-.609-.254-.914.076-.304.331-.635.686-.736a.757.757 0 0 1 .256-.039Zm-8.604 2.805h10.809c.52 0 .938.419.938.939v.074c0 .52-.418.94-.938.94H6.595a.936.936 0 0 1-.937-.94v-.074c0-.52.417-.939.937-.939Z\"},\"child\":[]}]})(props);\n};\nexport function SiPorkbun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3708 0 .0176 5.3532.0176 11.9824.0176 18.6117 5.3708 24 12 24s11.9824-5.3532 11.9824-11.9824C23.9824 5.3883 18.6292 0 12 0ZM5.832 5.8848c1.0635.2481 2.092.6384 3.0137 1.1347-1.099.5318-1.9866 1.3824-2.6602 2.375-.4254-.5672-.6738-1.2767-.6738-2.0566 0-.5318.1076-.9923.3203-1.4531zm12.336 0c.2127.4254.3203.9213.3203 1.453 0 .78-.2484 1.4895-.6738 2.0567-.6736-.9926-1.5967-1.8432-2.6602-2.375a9.9821 9.9821 0 0 1 3.0137-1.1347zm-6.0723.8105c3.5286.0471 6.3547 2.9198 6.3203 6.457v3.8282c0 .638-.5318 1.1699-1.17 1.1699-.638 0-1.1698-.5318-1.1698-1.17v-.957H7.8516v.957c0 .6382-.5319 1.17-1.17 1.17-.638 0-1.1699-.5318-1.1699-1.17v-3.6503c0-3.5096 2.7307-6.489 6.2403-6.6309.1152-.0044.2299-.0054.3437-.0039zm1.5 3.7988c-.4963 0-.9219.4256-.9219.922 0 .248.0711.4242.213.6015.1417.2127.3536.3546.5663.461-.1418.0708-.3188.1425-.496.1425-.2128 0-.3907.176-.3907.3887s.178.3906.3906.3906h.1778c.6026 0 1.1346-.3553 1.3828-.8516.39-.1418.7092-.3896.9219-.7441.0709-.1064.0337-.2484-.0372-.2129-.1063-.0355-.2123-.034-.2832.0723-.1063.1418-.2485.2826-.4257.3535v-.1426c0-.39-.1409-.7086-.3536-.9922-.1772-.2481-.425-.3887-.7441-.3887zm0 .5313c.2127 0 .3532.1408.3887.3535v.1777c0 .1773-.0346.3543-.1055.4961-.2481-.0709-.4617-.213-.6035-.4257-.0355-.071-.0703-.14-.0703-.211 0-.2392.2063-.3906.3906-.3906z\"},\"child\":[]}]})(props);\n};\nexport function SiPorsche (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.972 0A25.68 25.68 0 0 0 9.93.091a27.858 27.858 0 0 0-4.248.685 23.565 23.565 0 0 0-2.975.966l-.06.022s.118 7.243.21 10.831a9.934 9.934 0 0 0 .569 3.098 14.899 14.899 0 0 0 1.622 3.214A12.884 12.884 0 0 0 7.56 21.66a11.234 11.234 0 0 0 1.192.873 15.214 15.214 0 0 0 2.038 1.031c.233.098.436.192.62.255A4.58 4.58 0 0 0 12 24a4.58 4.58 0 0 0 .59-.182c.182-.063.387-.156.62-.255a15.22 15.22 0 0 0 2.037-1.031 11.25 11.25 0 0 0 1.194-.873 12.88 12.88 0 0 0 2.511-2.752 14.889 14.889 0 0 0 1.622-3.214 9.934 9.934 0 0 0 .57-3.098c.091-3.588.21-10.827.21-10.827a.635.635 0 0 0-.057-.026 23.564 23.564 0 0 0-2.976-.966 27.856 27.856 0 0 0-4.248-.684A26.068 26.068 0 0 0 12.031 0zm0 .361h.057c.679.008 1.288.03 1.963.09a26.585 26.585 0 0 1 4.084.663 22.53 22.53 0 0 1 2.861.937.619.619 0 0 1 .057.025l-.038 2.274a.113.113 0 0 0-.019-.01 22.55 22.55 0 0 0-2.86-.937 26.61 26.61 0 0 0-4.085-.662c-.675-.06-1.281-.1-1.96-.108h-.058c-.679.009-1.29.048-1.965.108a26.608 26.608 0 0 0-4.084.665 22.547 22.547 0 0 0-2.861.938.116.116 0 0 0-.02.01l-.038-2.281.058-.022a22.527 22.527 0 0 1 2.86-.937A26.581 26.581 0 0 1 10.01.45c.675-.06 1.284-.08 1.963-.089zm.288.216a16.633 16.633 0 0 0-.902.008c-.121.005-.288.109-.29.23l-.007.648c-.002.132.172.236.305.239.462.01.87.002 1.318.03.033.003.062.023.062.056l-.003.13a.042.042 0 0 1-.045.046c-.521 0-1.066-.025-1.593.017-.028.002-.027-.005-.028.023l-.024.384-.002.03a16.318 16.318 0 0 1 1.882 0 .32.32 0 0 0 .305-.262l.006-.627c0-.129-.158-.224-.261-.23-.442-.028-.945-.013-1.394-.025a.046.046 0 0 1-.044-.05l.009-.145c0-.028.019-.036.047-.037.444-.016 1.107.005 1.562.019a.072.072 0 0 0 .06-.07V.674c0-.017-.032-.067-.063-.068V.605a33.113 33.113 0 0 0-.9-.028zm-1.88.064c-.423.008-1.341.125-1.862.19L8.515 2.64v.023l.47-.06a.014.014 0 0 0 .01-.006.014.014 0 0 0 .003-.01v-.523l.947-.102c.083-.015.18.046.256.169a.88.88 0 0 1 .114.339l.467-.035c.01 0 .03 0 .028-.01a.988.988 0 0 0-.307-.663.316.316 0 0 0 .197-.31 4.34 4.34 0 0 0-.022-.564.32.32 0 0 0-.3-.247zm3.59.019a.404.404 0 0 0-.413.332l-.01 1.195a.312.312 0 0 0 .24.289c.61.057 1.21.112 1.89.215.011 0 .032-.007.032-.017v-.416c0-.009-.02-.028-.027-.03-.454-.057-1.053-.137-1.589-.193a.076.076 0 0 1-.058-.07v-.812c0-.034.05-.052.084-.05.529.044 1.056.14 1.584.197.014.002.036-.007.037-.021l.01-.382a.037.037 0 0 0-.029-.033 36.382 36.382 0 0 0-1.75-.204zm1.98.237c-.012 0-.022.014-.022.025-.006.274-.045 1.457-.053 1.772v.027c.155.027.326.048.453.074.014.002.035-.008.035-.022-.002-.207 0-.448-.004-.636 0-.013.006-.014.02-.012a31.392 31.392 0 0 1 1.102.22c.008 0 .052.007.052.03-.003.217-.007.4-.013.617a.041.041 0 0 0 .027.04c.145.033.283.067.42.1.037.008.043.001.044-.012.022-.451.03-1.174.036-1.784 0-.008-.003-.02-.01-.022-.153-.035-.297-.072-.453-.105-.014-.003-.022.02-.023.035-.015.223-.009.43-.026.652 0 .008 0 .012-.009.01-.37-.076-.765-.158-1.132-.227-.01-.002-.006-.02-.005-.031l.003-.653a.033.033 0 0 0-.026-.03 23.196 23.196 0 0 0-.417-.068zM7.934.92a.303.303 0 0 0-.037 0c-.543.086-1.089.201-1.64.32a.5.5 0 0 0-.23.143.322.322 0 0 0-.102.205l.004 1.118a.434.434 0 0 0 .106.266.24.24 0 0 0 .204.11 38.518 38.518 0 0 1 1.633-.323.497.497 0 0 0 .268-.166.362.362 0 0 0 .098-.23L8.236 1.2a.28.28 0 0 0-.11-.198.303.303 0 0 0-.191-.08zm2.157.197a.076.076 0 0 1 .08.069l.003.189a.172.172 0 0 1-.14.166l-1.062.104-.009-.008V1.23l.009-.004 1.111-.108a.076.076 0 0 1 .008 0zm-2.52.29a.167.167 0 0 1 .078.022.117.117 0 0 1 .054.106l-.009.704a.125.125 0 0 1-.049.105.291.291 0 0 1-.12.047 61.16 61.16 0 0 1-.997.19.106.106 0 0 1-.088-.017.133.133 0 0 1-.03-.1v-.726a.143.143 0 0 1 .04-.097.243.243 0 0 1 .12-.06c.29-.054.67-.129.968-.172a.167.167 0 0 1 .033-.002zm10.81 0l-.001.001c-.008 0-.008.012-.008.019-.014.606-.03 1.167-.035 1.773 0 .013.006.03.018.033a22.245 22.245 0 0 1 2.158.7c.032.011.031-.013.031-.022.003-.138.01-.278.003-.416a.041.041 0 0 0-.025-.033 16.602 16.602 0 0 0-1.66-.541.028.028 0 0 1-.019-.026l.008-.18c0-.008.014-.01.022-.008a21.848 21.848 0 0 1 1.67.542c.01.003.01-.01.01-.019a5.121 5.121 0 0 0 0-.468.029.029 0 0 0-.02-.026 21.457 21.457 0 0 0-1.638-.523c-.008-.002-.018-.01-.018-.018v-.192c0-.008.013-.013.021-.01.564.144 1.184.36 1.615.519.038.014.06.008.06-.027 0-.157.006-.168-.002-.324-.002-.02-.004-.04-.022-.047a21.383 21.383 0 0 0-2.169-.707zm-12.97.064a.365.365 0 0 0-.084.009c-.65.166-1.303.414-1.956.652a.063.063 0 0 0-.03.052V3.65l.003.33s.471-.177.573-.21c.013-.004.013-.017.013-.031l-.01-.52c0-.015.002-.037.016-.04l1.625-.502a.306.306 0 0 0 .138-.101.237.237 0 0 0 .052-.156l-.017-.683a.272.272 0 0 0-.119-.197.365.365 0 0 0-.204-.068zm-.286.496c.036-.01.07.031.072.063a1.86 1.86 0 0 1 .012.25c-.001.045-.066.097-.11.11l-1.184.386c-.011.004-.031 0-.031-.012l.002-.358c0-.017.02-.031.036-.036a10.796 10.796 0 0 1 1.203-.403zm6.967.981c.653.01 1.246.03 1.9.088a26.591 26.591 0 0 1 4.083.663 22.501 22.501 0 0 1 2.861.937.107.107 0 0 1 .014.007 89.441 89.441 0 0 0-.007.448h-8.851zm-.317.002l-.001 4.618H8.827c-.043-.004-.015-.023.015-.052a1.71 1.71 0 0 1 .715-.312c.022-.002.028-.014-.003-.054a.898.898 0 0 0-.93-.212.985.985 0 0 0-.624.603.04.04 0 0 1-.04.031 6.734 6.734 0 0 1-.47.013c-.025 0-.037-.032-.035-.056a.737.737 0 0 1 .343-.484 1.1 1.1 0 0 1 .519-.178.04.04 0 0 0 .02-.063.515.515 0 0 0-.105-.093.758.758 0 0 0-.504-.077 1.053 1.053 0 0 0-.948.964c-.01.06.006.074-.053.094-.112.038-.322.064-.434.088-.02.003-.05-.043-.045-.063a1.309 1.309 0 0 1 .244-.522 1.006 1.006 0 0 1 .342-.291c.026-.013.05-.044.026-.064-.253-.22-.771.012-.98.241a1.37 1.37 0 0 0-.275.91c0 .016.014.041 0 .047a4.942 4.942 0 0 1-.4.15c-.012.003-.014-.028-.016-.04a.93.93 0 0 1 .147-.677.661.661 0 0 1 .244-.241c.01-.006.008-.018 0-.028-.115-.149-.569-.042-.708.094-.32.312-.297.615-.312 1.097-.001.023-.03.111-.056.123a.57.57 0 0 1-.184.07c-.021.006-.023.014-.028-.007a.39.39 0 0 0-.57-.222.356.356 0 0 0-.077.532c.015.017.02.034-.003.041a.42.42 0 0 0-.275.534.336.336 0 0 0 .296.21.628.628 0 0 0 .37-.108.043.043 0 0 1 .06.01.386.386 0 0 0 .531.124c.162-.107.234-.273.114-.559-.007-.016.02-.046.034-.054a6.615 6.615 0 0 1 3.144-.88 1.78 1.78 0 0 1 .456.101.094.094 0 0 1 .023.008l.002.941a.19.19 0 0 1-.034.025 1.005 1.005 0 0 0-.432.55c-.004.017-.006.021-.035.024-.193.019-.399.047-.591.062-.011.002-.032-.019-.028-.03a1.87 1.87 0 0 1 .725-.908.057.057 0 0 0 .01-.067.375.375 0 0 0-.168-.093 1.087 1.087 0 0 0-.895.362 1.418 1.418 0 0 0-.312.875c-.001.022.003.058-.019.065-.124.039-.261.074-.39.11-.015.004-.035-.011-.038-.027a1.006 1.006 0 0 1 .486-1.03c.051-.04-.038-.102-.102-.102a.963.963 0 0 0-.913.53 1.301 1.301 0 0 0-.03.793c.003.023.019.063-.006.069-.079.019-.265.09-.323.108-.021.007-.035-.003-.047-.03a1.041 1.041 0 0 1-.021-.488 1.102 1.102 0 0 1 .268-.493c.008-.01.011-.032 0-.037a.54.54 0 0 0-.378-.025.74.74 0 0 0-.477.38c-.159.297-.118.583.051 1.005.008.02.018.058 0 .07l-.137.08c-.017.013-.032.002-.044-.015-.055-.078-.124-.202-.21-.24a.415.415 0 0 0-.428.035.406.406 0 0 0-.12.431.875.875 0 0 0 .1.152c.01.014-.001.036-.013.047-.059.052-.14.09-.188.14a.395.395 0 0 0-.01.471.365.365 0 0 0 .45.123 1.624 1.624 0 0 0 .232-.122c.027-.018.045-.051.07-.025a.546.546 0 0 0 .224.153.427.427 0 0 0 .354-.062.305.305 0 0 0 .168-.338.875.875 0 0 0-.143-.27c-.033-.035-.035-.033 0-.054a7.435 7.435 0 0 1 1.66-.724 5.024 5.024 0 0 1 1.69-.207h.046l.003 1.949H3.206c-.054-2.133-.116-5.51-.156-7.836a.113.113 0 0 1 .014-.007 22.499 22.499 0 0 1 2.86-.937 26.59 26.59 0 0 1 4.084-.663 23.38 23.38 0 0 1 1.768-.086zm-3.088.816a1.237 1.237 0 0 0-.693.232c-.286.188-.456.773-.49.982a.044.044 0 0 1-.04.036 5.998 5.998 0 0 0-.676.125c-.007.001-.012-.01-.012-.017a.983.983 0 0 1 .258-.59 3.506 3.506 0 0 1 .493-.396c.013-.011.004-.045-.012-.051a1.035 1.035 0 0 0-.797.012 1.129 1.129 0 0 0-.675.867 2.062 2.062 0 0 0-.029.41c.002.017-.03.018-.045.023-.246.077-.504.167-.71.236-.01.004-.039.002-.039-.01a1.168 1.168 0 0 1 .175-.655c.12-.195.343-.305.505-.469.011-.012.028-.044.011-.051-.41-.165-.797.004-1.124.375a1.395 1.395 0 0 0-.2 1.124c.009.036 0 .075-.019.083a1.805 1.805 0 0 1-.23.089.025.025 0 0 1-.033-.02c-.093-.296-.44-.238-.597-.148a.361.361 0 0 0-.139.489.031.031 0 0 1-.01.044.442.442 0 0 0-.205.596.352.352 0 0 0 .428.137 1.208 1.208 0 0 0 .246-.129.027.027 0 0 1 .03.004.393.393 0 0 0 .566.08c.115-.082.16-.096.204-.244a.39.39 0 0 0-.09-.3c-.012-.01-.001-.04.013-.047A9.692 9.692 0 0 1 8.947 5.51a2.35 2.35 0 0 1 1.446.553.072.072 0 0 0 .062.031.098.098 0 0 0 .054-.056.66.66 0 0 0-.204-.678 1.21 1.21 0 0 0-.612-.344c-.012-.003-.02-.029-.01-.037a.968.968 0 0 1 .335-.22 3.587 3.587 0 0 1 .605-.05c.014-.001.035-.015.03-.028a.606.606 0 0 0-.527-.4 1.325 1.325 0 0 0-.693.1 1.118 1.118 0 0 0-.5.553.036.036 0 0 1-.032.02 12.139 12.139 0 0 0-.594-.007c-.014 0-.035 0-.035-.014a.943.943 0 0 1 .255-.517 1.989 1.989 0 0 1 .68-.386c.019-.006.04-.036.029-.051a.549.549 0 0 0-.201-.17 1.237 1.237 0 0 0-.347-.041zm3.405 1.607h8.845c-.012.686-.025 1.433-.04 2.195h-8.805zM8.681 7.801l6.666.003a.016.016 0 0 1 .017.013l-.002 5.138a2.354 2.354 0 0 1-.143.764 3.327 3.327 0 0 1-1.44 1.725 3.468 3.468 0 0 1-1.74.491 3.512 3.512 0 0 1-2.26-.86 3.078 3.078 0 0 1-1.105-2.31L8.667 7.82c0-.013.001-.019.014-.019zm6.994.086h5.217c-.012.645-.025 1.296-.034 1.926h-5.183V8.318zm-6.839.071c-.013 0-.014.005-.014.018l.007 4.753a2.97 2.97 0 0 0 1.054 2.225 3.333 3.333 0 0 0 2.153.827 3.284 3.284 0 0 0 1.66-.473 3.193 3.193 0 0 0 1.374-1.66 2.28 2.28 0 0 0 .136-.734l.002-4.94a.015.015 0 0 0-.016-.014zm4.436.304a.101.101 0 0 1 .001 0 .11.11 0 0 1 .087.071l.242.715a.079.079 0 0 1-.003.07.066.066 0 0 1-.054.024.065.065 0 0 1-.063-.044l-.038-.125h-.33l-.036.128c-.01.04-.04.044-.071.044a.063.063 0 0 1-.044-.028.057.057 0 0 1-.01-.052l.232-.728a.101.101 0 0 1 .087-.075zm-.763.007a.226.226 0 0 1 .023 0 .232.232 0 0 1 .235.157.046.046 0 0 1-.031.059.053.053 0 0 1-.07-.02.166.166 0 0 0-.132-.09.151.151 0 0 0-.133.1.498.498 0 0 0-.055.222.524.524 0 0 0 .046.228.159.159 0 0 0 .154.102.233.233 0 0 0 .166-.243v-.039h-.135a.057.057 0 0 1-.059-.063c0-.023.007-.05.059-.05h.192c.064 0 .073.048.073.09a.792.792 0 0 1-.011.152.399.399 0 0 1-.15.236.301.301 0 0 1-.15.043.257.257 0 0 1-.227-.145.618.618 0 0 1-.073-.31.577.577 0 0 1 .08-.304.226.226 0 0 1 .198-.125zm-2.988.002a.318.318 0 0 1 .004 0c.183.002.243.111.243.15 0 .035-.061.08-.095.039a.2.2 0 0 0-.157-.068.143.143 0 0 0-.15.096.114.114 0 0 0 .094.135.61.61 0 0 1 .267.08h-.001a.202.202 0 0 1 .081.18.247.247 0 0 1-.067.175.327.327 0 0 1-.247.088.297.297 0 0 1-.263-.14c-.004-.01-.01-.063.034-.078a.084.084 0 0 1 .082.026.239.239 0 0 0 .156.063.223.223 0 0 0 .148-.05.105.105 0 0 0 .024-.116.219.219 0 0 0-.193-.098.25.25 0 0 1-.172-.07.25.25 0 0 1-.069-.196.219.219 0 0 1 .1-.163.318.318 0 0 1 .181-.053zm1.649 0a.06.06 0 0 1 .001 0 .06.06 0 0 1 .006 0h.355a.06.06 0 1 1 0 .12l-.114.002v.682a.063.063 0 0 1-.125 0v-.683h-.116a.06.06 0 0 1-.007-.12zm.56 0a.06.06 0 0 1 .001 0 .06.06 0 0 1 .006 0h.354a.06.06 0 1 1 0 .12l-.114.002v.682a.063.063 0 0 1-.125 0v-.683h-.115a.06.06 0 0 1-.007-.12zm2.74 0a.06.06 0 0 1 .002 0 .06.06 0 0 1 .006 0h.353a.06.06 0 1 1 0 .12l-.112.002v.682a.063.063 0 0 1-.125 0v-.683h-.116a.06.06 0 0 1-.007-.12zm-.677.004a.063.063 0 0 1 .012 0h.19a.364.364 0 0 1 .208.058.278.278 0 0 1 .108.206.235.235 0 0 1-.071.198.305.305 0 0 1-.117.075l-.02.007.158.2a.086.086 0 0 1 .023.056c-.002.032-.023.05-.06.05a.066.066 0 0 1-.056-.027l-.187-.258h-.117v.23a.059.059 0 0 1-.063.067.06.06 0 0 1-.062-.067v-.726a.073.073 0 0 1 .016-.05.063.063 0 0 1 .038-.019zm-3.87.002a.06.06 0 0 1 .003 0h.357a.06.06 0 0 1 0 .121h-.116v.684a.063.063 0 0 1-.125 0v-.684h-.116a.06.06 0 0 1-.003-.12zm.583 0a.063.063 0 0 1 .002 0 .063.063 0 0 1 .065.064v.471a.258.258 0 0 0 .037.151.146.146 0 0 0 .127.056.138.138 0 0 0 .125-.056.265.265 0 0 0 .035-.15V8.34h.001a.063.063 0 0 1 .125 0v.432a.474.474 0 0 1-.056.262.25.25 0 0 1-.228.104.26.26 0 0 1-.23-.104.456.456 0 0 1-.061-.262V8.34a.063.063 0 0 1 .058-.063zm3.354.115v.328h.13a.18.18 0 0 0 .2-.174.15.15 0 0 0-.051-.109.178.178 0 0 0-.13-.045zm-.584.015l-.136.469h.278zm-1.14 1.005c.011 0 .021.002.022.011.002.018-.016.029-.042.042a.206.206 0 0 0-.094.08.31.31 0 0 0-.039.163.115.115 0 0 0 .063.079.298.298 0 0 0 .142.028.502.502 0 0 0 .215-.063.581.581 0 0 1 .276-.02.341.341 0 0 1 .194.063c.024.017.02.038.011.04-.014.005-.029-.012-.044-.01a.674.674 0 0 0-.142.03c-.06.027-.087.037-.116.09a.099.099 0 0 0-.007.073c.01.024.035.04.04.057a.446.446 0 0 0 .064.125.205.205 0 0 0 .03.023 2.668 2.668 0 0 1 .282.243.26.26 0 0 1 .04.093c.003.012-.007.03-.018.025a.255.255 0 0 1-.036-.029.178.178 0 0 0-.053-.039.368.368 0 0 0-.176-.025c-.027 0-.081.024-.05.036a.357.357 0 0 1 .132.116.43.43 0 0 1 .107.31c0 .006-.012.01-.015.006a.359.359 0 0 0-.102-.109.324.324 0 0 0-.21-.062c-.015.001-.06 0-.055.014a1.19 1.19 0 0 1 .123.191.562.562 0 0 1 .039.276c-.001.005-.02.01-.023.005a.61.61 0 0 0-.077-.076.349.349 0 0 0-.094-.06.29.29 0 0 0-.204.028.325.325 0 0 0-.13.132.492.492 0 0 0-.062.205.46.46 0 0 0 .042.257.368.368 0 0 0 .19.164.955.955 0 0 0 .334.044c.139.005.278-.016.417-.02a1.943 1.943 0 0 1 .396.003.88.88 0 0 1 .3.12 2.64 2.64 0 0 1 .215.183c.008.006.026-.003.035-.009a.462.462 0 0 0 .131-.233.346.346 0 0 0-.056-.246c-.047-.085-.116-.18-.17-.27a2.962 2.962 0 0 1-.202-.296.305.305 0 0 1-.017-.221.238.238 0 0 1 .107-.128c.011-.007.022.006.017.021a.184.184 0 0 0-.008.112.32.32 0 0 0 .089.14c.013.01.047-.005.055-.021.018-.043.007-.11.023-.154a.619.619 0 0 1 .108-.226 1.47 1.47 0 0 1 .36-.196c.033-.019.054-.105.091-.091.037.013.017.1-.011.142-.04.062-.087.1-.131.156a1.536 1.536 0 0 0-.157.247.222.222 0 0 0-.029.137.14.14 0 0 0 .073.094c.022.01.05-.01.07-.025a.385.385 0 0 0 .097-.103c.023-.038.01-.089.032-.128.006-.009.03-.007.037 0a.139.139 0 0 1 .044.084.393.393 0 0 1-.01.113c-.003.008-.024.027-.031.045a.244.244 0 0 1-.02.04c-.036.063-.078.116-.125.126-.01.001-.017.021-.01.03a.391.391 0 0 0 .113.132.198.198 0 0 0 .152.01c.027-.008.048-.027.079-.037.013-.004.005.004.005.017a.27.27 0 0 1-.015.086.19.19 0 0 1-.075.083.395.395 0 0 1-.166.05c-.027.005-.068.025-.058.051a.256.256 0 0 0 .042.085.122.122 0 0 0 .08.039.205.205 0 0 0 .125-.036c.04-.026.061-.074.096-.108.007-.006.026 0 .026.01a.36.36 0 0 1-.041.158.497.497 0 0 1-.128.138c-.015.013-.033.029-.033.049a.2.2 0 0 0 .044.084.134.134 0 0 0 .083.054.269.269 0 0 0 .1 0c.013 0 .01.023-.001.031a.253.253 0 0 1-.117.068.25.25 0 0 1-.128.008c-.081-.02-.134-.05-.214-.073a.23.23 0 0 0-.135-.009.227.227 0 0 0-.106.083.133.133 0 0 0-.03.064c-.006.063.025.13.005.192a1.415 1.415 0 0 1-.081.234 1.314 1.314 0 0 1-.115.165c-.04.054-.093.074-.12.133a.638.638 0 0 1-.038.063.515.515 0 0 0-.058.229.452.452 0 0 0 .085.209l.153.237a.149.149 0 0 1 .009.083.088.088 0 0 1-.044.07.893.893 0 0 0-.419.527l-.002.013v.004a.106.106 0 0 1-.021.042.334.334 0 0 1-.19.096c-.055.015-.11.029-.165.046a.077.077 0 0 0-.044.031.08.08 0 0 0 .009.097.137.137 0 0 1 .03.071.063.063 0 0 1-.013.042.108.108 0 0 1-.028.022.865.865 0 0 1-.216.087c-.05.011-.086-.002-.07-.059a3.075 3.075 0 0 1 .098-.293.42.42 0 0 1 .133-.14 2.289 2.289 0 0 1 .212-.162.411.411 0 0 0 .119-.126 3.299 3.299 0 0 1 .19-.275.163.163 0 0 0 .029-.129.246.246 0 0 0-.142-.185 1.052 1.052 0 0 0-.085-.034.534.534 0 0 1-.246-.175.09.09 0 0 0-.062-.04c-.063.002-.081.09-.083.138a1.17 1.17 0 0 0 .004.212.18.18 0 0 1 .004.072.055.055 0 0 1-.039.034 2.74 2.74 0 0 0-.565.279.24.24 0 0 0-.063.07l-.017.029a.187.187 0 0 1-.223.08.5.5 0 0 0-.044-.011.094.094 0 0 0-.064.017.162.162 0 0 0-.041.036.06.06 0 0 0-.01.019v.006a.057.057 0 0 0 0 .008.07.07 0 0 0 .004.017l.022.06a.066.066 0 0 1-.038.096.881.881 0 0 1-.203.055c-.04.005-.075-.01-.065-.057a1.1 1.1 0 0 1 .07-.237.094.094 0 0 1 .057-.06.79.79 0 0 0 .179-.14.266.266 0 0 1 .169-.073.512.512 0 0 0 .262-.1 1.73 1.73 0 0 0 .225-.186.37.37 0 0 0-.006-.46l-.02-.035c-.019-.03-.03-.073-.046-.104a.24.24 0 0 1-.039-.104c0-.068.027-.133.031-.201a.024.024 0 0 0-.016-.025.488.488 0 0 0-.137-.03 2.677 2.677 0 0 1-.56.006 1.423 1.423 0 0 1-.39-.18c-.053-.033-.085-.07-.139-.101-.014-.008-.015-.005-.028.006a.672.672 0 0 1-.459.125h-.002a1.766 1.766 0 0 1-.294-.077c-.073-.027-.19-.074-.26-.015-.029.025-.022.06-.022.093a1.244 1.244 0 0 1-.01.305.038.038 0 0 0 .003.032.044.044 0 0 0 .006.006.136.136 0 0 0 .036.02l.01.004c.028.01.033.023.05.058a.196.196 0 0 1 .016.062.159.159 0 0 1-.003.062.544.544 0 0 1-.009.039.207.207 0 0 0 .008.135.115.115 0 0 0 .042.053.073.073 0 0 0 .01.004.063.063 0 0 0 .01.003.068.068 0 0 0 .01 0h.01a.074.074 0 0 0 .02-.008l.004-.002a.05.05 0 0 1 .035-.012.046.046 0 0 1 .01.003.08.08 0 0 1 .063.074.484.484 0 0 1-.046.221.058.058 0 0 1-.077.03l-.018-.007a.445.445 0 0 1-.14-.117.19.19 0 0 1-.049-.112.12.12 0 0 0-.028-.082.09.09 0 0 0-.032-.016.144.144 0 0 1-.07-.046.268.268 0 0 1-.052-.219 1.5 1.5 0 0 0-.046-.64.149.149 0 0 1 .002-.108l.016-.043a.148.148 0 0 1 .007-.016.06.06 0 0 1 .042-.032.167.167 0 0 1 .029-.003 1.516 1.516 0 0 0 .45-.07.152.152 0 0 1 .062-.01.89.89 0 0 0 .073.002c.03 0 .06-.027.024-.05a.847.847 0 0 1-.084-.087.046.046 0 0 0-.052-.022.072.072 0 0 0-.01.005l-.009.005a.098.098 0 0 1-.152-.029.824.824 0 0 1-.087-.202.555.555 0 0 0-.109-.238.235.235 0 0 0-.19-.063.216.216 0 0 0-.13.098l-.063.088a.144.144 0 0 0-.031.067.107.107 0 0 0 0 .016.14.14 0 0 0 .008.032.133.133 0 0 1-.039.154l-.094.075a.087.087 0 0 0-.03.06.527.527 0 0 1-.012.06.13.13 0 0 0-.003.045.088.088 0 0 0 .002.012.081.081 0 0 0 .031.04.156.156 0 0 1 .013.012.074.074 0 0 1 .012.017.06.06 0 0 1-.012.07.219.219 0 0 1-.024.021.753.753 0 0 1-.19.108.098.098 0 0 1-.026.006c-.038.003-.05-.026-.052-.06-.003-.044-.003-.089-.003-.134a.207.207 0 0 1 .057-.137.36.36 0 0 0 .072-.225.197.197 0 0 1 .04-.13.305.305 0 0 0 .057-.09.257.257 0 0 1 .039-.066 3.861 3.861 0 0 0 .281-.384c.054-.086.155-.192.237-.073a.357.357 0 0 0 .078.084 2.395 2.395 0 0 0 .259.164c.094.053.109-.042.125-.121v-.003a.331.331 0 0 1 .038-.092 1.26 1.26 0 0 1 .202-.247c.043-.038.105-.076.15-.113.018-.016.023-.018.03-.04.009-.022.024-.05.034-.078.01-.027.015-.055.024-.076a.344.344 0 0 0 .044-.098v-.003a.023.023 0 0 0 0-.005v-.007l-.003-.007a.05.05 0 0 0-.021-.024.18.18 0 0 0-.102-.026h-.003a.384.384 0 0 0-.148.031.106.106 0 0 0-.054.054.226.226 0 0 1-.042.063.098.098 0 0 1-.13.006c-.024-.016-.014-.043 0-.063a.414.414 0 0 0 .035-.05.042.042 0 0 0 .005-.025v-.004l-.002-.005a.031.031 0 0 0-.005-.006.046.046 0 0 0-.045-.007.98.98 0 0 0-.083.027.064.064 0 0 1-.094-.047.174.174 0 0 1-.003-.055.055.055 0 0 1 .04-.05c.02-.006.05-.017.046-.042a.079.079 0 0 1 0-.023.052.052 0 0 1 .012-.024.14.14 0 0 1 .03-.025 3.869 3.869 0 0 0 .32-.234.05.05 0 0 1 .064-.01l.01.006a.223.223 0 0 0 .151.02.046.046 0 0 0 .041-.03.025.025 0 0 0 0-.005v-.005l-.002-.006-.003-.004a.071.071 0 0 0-.035-.021l-.058-.021a.269.269 0 0 1-.052-.025.053.053 0 0 1-.025-.059c.023-.113.147-.114.241-.105h.004a.505.505 0 0 0 .14-.022c.06-.021.106-.067.163-.094.057-.027.117-.057.176-.08.018-.006.033-.002.049-.009a.091.091 0 0 0 .035-.025.965.965 0 0 1 .142-.163.822.822 0 0 1 .236-.092.107.107 0 0 1 .03-.006zm-.425.557a.219.219 0 0 0-.105.026c-.009.005-.015.016-.008.024.018.021.049.03.07.05a.16.16 0 0 1 .035.046c.009.019.024.04.033.06a1.296 1.296 0 0 1 .045.123 1.227 1.227 0 0 1 .05.209c.01.057.007.117.01.175v.081c-.001.023-.001.047-.003.07a1.143 1.143 0 0 0-.004.098v.08c.002.07.013.12.044.12a.18.18 0 0 0 .084-.019.175.175 0 0 0 .085-.148 2.026 2.026 0 0 0-.003-.576.51.51 0 0 0-.188-.362.219.219 0 0 0-.144-.057zm3.96.161h5.177c-.017.825-.034 1.6-.05 2.263h-5.13l.004-1.862zm-.006 2.544h5.123a9.697 9.697 0 0 1-.545 2.911 14.495 14.495 0 0 1-1.56 3.118 12.45 12.45 0 0 1-2.415 2.669 10.809 10.809 0 0 1-1.147.848 14.592 14.592 0 0 1-1.96.999c-.224.096-.418.186-.596.247-.193.065-.358.125-.474.156v-.115l.003-7.295a3.552 3.552 0 0 0 .316-.023c.005.015.016.057.031.1a.333.333 0 0 0 .219.166.317.317 0 0 0 .306-.107.373.373 0 0 0 .388.067.235.235 0 0 0 .175-.227.43.43 0 0 0-.033-.208l-.036-.066a3.925 3.925 0 0 0 .744-.41l.02-.006c.373-.094 1.872-.631 2.791-.643a3.28 3.28 0 0 1 1.627.39 2.792 2.792 0 0 1 .682.56c.006.009.013.028.037.032a.036.036 0 0 0 .034-.022 1.139 1.139 0 0 0 .079-.516c-.02-.282-.3-.486-.383-.57-.003-.003-.01-.021.02-.041a.674.674 0 0 1 .105-.085.983.983 0 0 1 .562-.212c.03.003.02-.04.012-.076-.058-.25-.415-.412-.79-.354a.963.963 0 0 0-.613.417c-.007.011-.042.027-.056.013a2.926 2.926 0 0 0-.369-.107c-.045-.01-.021-.044-.019-.05a1.003 1.003 0 0 1 .304-.337 1.125 1.125 0 0 1 .494-.224c.022 0 .022-.03.016-.04a.55.55 0 0 0-.375-.302.844.844 0 0 0-.78.14 1.397 1.397 0 0 0-.445.673c-.014.02-.018.036-.036.032-.099-.02-.345-.007-.367-.022-.015-.007-.012-.03-.009-.045a.91.91 0 0 1 .222-.38.882.882 0 0 1 .364-.286.055.055 0 0 0 .01-.094.98.98 0 0 0-1.22.263 2.192 2.192 0 0 0-.304.696c-.002.009-.017.036-.036.036l-.508.112-.083.019-.022.023a3.29 3.29 0 0 0 .497-1.65zm-12.45.085h5.19v.09a3.145 3.145 0 0 0 .837 2.098H3.556a9.74 9.74 0 0 1-.342-2.188zm.415 2.443h5.863a2.566 2.566 0 0 0 .112.1 3.897 3.897 0 0 0 2.17.898v1.21h-7.22a13.789 13.789 0 0 1-.8-1.827 10.401 10.401 0 0 1-.125-.38zm10.584.29l-.01.012h-.002l-.002-.002a3.29 3.29 0 0 0 .015-.01zm1.738.185a.911.911 0 0 0-.507.155.934.934 0 0 0-.392.41 2.65 2.65 0 0 0-.172.775.063.063 0 0 1-.038.035 2.897 2.897 0 0 0-.335.087.026.026 0 0 1-.023-.02 1.105 1.105 0 0 1 .15-.727.886.886 0 0 1 .218-.263.037.037 0 0 0-.017-.068.98.98 0 0 0-.648.114.888.888 0 0 0-.452.667 1.589 1.589 0 0 0 .042.594c0 .006.006.027-.016.031-.076.037-.282.145-.355.18-.005.002-.019.005-.022-.006a.58.58 0 0 0-.268-.358.526.526 0 0 0-.446.022.548.548 0 0 0-.216.224.375.375 0 0 0 .127.455c.006.006.017.02 0 .025-.09.049-.092.06-.16.161a.428.428 0 0 0 .052.45.465.465 0 0 0 .7.082c.004-.003.018.005.025.02a.548.548 0 0 0 .143.151.463.463 0 0 0 .455 0 .413.413 0 0 0 .21-.415.378.378 0 0 0-.111-.262c-.013-.016 0-.024.034-.046a5.404 5.404 0 0 1 1.96-.666 3.121 3.121 0 0 1 1.076.022 1.504 1.504 0 0 1 .629.312 2.841 2.841 0 0 1 .406.402.164.164 0 0 0 .117-.025.66.66 0 0 0 .014-.517 1.604 1.604 0 0 0-.384-.59c-.003-.002-.003-.013-.003-.02-.004-.03.015-.045.052-.079a1.211 1.211 0 0 1 .562-.297c.027-.002.038-.022.02-.053a.656.656 0 0 0-.808-.298h-.001a.916.916 0 0 0-.454.416c-.006.011-.022.05-.037.038-.09-.008-.242-.032-.331-.04-.041-.002-.025-.039-.024-.045a.744.744 0 0 1 .194-.316 1.176 1.176 0 0 1 .444-.318.021.021 0 0 0 .016-.031.627.627 0 0 0-.465-.229.81.81 0 0 0-.617.238 1.255 1.255 0 0 0-.337.74c-.009.023-.02.035-.037.035a2 2 0 0 1-.278.025c-.015-.004-.014-.02-.014-.036a.91.91 0 0 1 .101-.406 1.491 1.491 0 0 1 .55-.582c.036-.025.038-.076.026-.082a.911.911 0 0 0-.355-.071zM4.707 17.692h7.069v2.19H6.213a11.237 11.237 0 0 1-.898-1.181 16.446 16.446 0 0 1-.609-1.01zm10.076 1.176a.497.497 0 0 0-.273.069.982.982 0 0 0-.475.56 1.09 1.09 0 0 0 .012.571c.003.007.012.024-.002.03-.078.03-.136.065-.213.096-.004 0-.024.005-.028-.005a.631.631 0 0 1 .088-.736c.017-.015.027-.035-.008-.047a.588.588 0 0 0-.531.193.677.677 0 0 0-.117.659.922.922 0 0 0 .099.261c.003.005.03.021.014.028l-.15.115c-.003.003-.014.008-.019 0a.486.486 0 0 0-.29-.238.341.341 0 0 0-.317.088.361.361 0 0 0 .147.602c.007.003.017.012.005.02a.587.587 0 0 0-.19.212.377.377 0 0 0 .085.406.37.37 0 0 0 .29.089.605.605 0 0 0 .357-.313c.002-.003.021-.017.031-.006a.531.531 0 0 0 .264.2.324.324 0 0 0 .323-.065.35.35 0 0 0 .111-.4.61.61 0 0 0-.201-.216c-.013-.01-.003-.035.023-.055a2.972 2.972 0 0 1 1.402-.62 1.801 1.801 0 0 1 1.025.166 1.547 1.547 0 0 1 .337.267c.013.007.05.02.063.008a.397.397 0 0 0 .035-.548.654.654 0 0 0-.206-.165.043.043 0 0 1-.007-.015.906.906 0 0 1 .301-.393 1.382 1.382 0 0 1 .295-.143c.022-.006.018-.02.007-.047-.128-.293-.635-.304-.874-.15a1.088 1.088 0 0 0-.346.396c-.005.01-.012.04-.025.031l-.213-.064c-.004 0-.004-.024-.002-.028a1.115 1.115 0 0 1 .696-.565c.015-.006.01-.02.007-.028-.11-.268-.661-.245-.93-.074a1.167 1.167 0 0 0-.493.714c-.003.02.006.037-.007.04a1.239 1.239 0 0 1-.23.055.024.024 0 0 1-.022-.023.642.642 0 0 1 .067-.392 2 2 0 0 1 .324-.408.043.043 0 0 0-.003-.063.497.497 0 0 0-.236-.07zm-3.006 1.296v3.417c-.098-.032-.214-.074-.342-.117-.178-.06-.373-.151-.597-.247a14.587 14.587 0 0 1-1.96-1 10.816 10.816 0 0 1-1.147-.847 12.861 12.861 0 0 1-1.266-1.206h5.31z\"},\"child\":[]}]})(props);\n};\nexport function SiPortainer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.504 0v1.023l-.01-.015-6.106 3.526H3.417v.751h5.359v3.638h1.942V5.284h1.786v10.416c.027 0 .54-.01.751.091V5.285h.531v10.608c.293.147.55.312.751.54V5.286h6.046v-.75h-1.267l-6.061-3.5V0zm0 1.87v2.664H7.889zm.751.031l4.56 2.633h-4.56zM9.142 5.285h1.21v1.686h-1.21zm-4.736 2.73v1.951h1.942v-1.95zm2.19 0v1.951h1.941v-1.95zm-2.19 2.171v1.951h1.942v-1.95zm2.19 0v1.951h1.941v-1.95zm2.18 0v1.951h1.942v-1.95zM4.36 12.43a3.73 3.73 0 00-.494 1.851c0 1.227.604 2.308 1.52 2.986.239-.064.477-.1.724-.11.1 0 .165.01.266.019.284-1.191 1.383-1.988 2.665-1.988.724 0 1.438.201 1.924.668.229-.476.302-1.007.302-1.575 0-.65-.165-1.292-.494-1.85zm4.828 3.16c-1.21 0-2.226.844-2.492 1.97a.922.922 0 00-.275-.009 2.559 2.559 0 00-2.564 2.556 2.565 2.565 0 003.096 2.5A2.579 2.579 0 009.233 24c.862 0 1.622-.43 2.09-1.081a2.557 2.557 0 004.186-1.97c0-.567-.193-1.099-.504-1.52a2.557 2.557 0 00-3.866-2.94 2.574 2.574 0 00-1.951-.898z\"},\"child\":[]}]})(props);\n};\nexport function SiPortswigger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h10.718v-3.805l3.496-4.272h-3.496v-5.205H4.427l6.291-7.767V0Zm13.282 0v3.884L9.786 8.155h3.496v5.205h6.291l-6.291 7.767V24H24V0Z\"},\"child\":[]}]})(props);\n};\nexport function SiPosit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .953v6.393l4.852 2.066-3.27 1.447v2.283l3.215 1.432L0 16.615v6.432l11.918-5.256.082-.035.082.035L24 23.047v-6.432l-4.797-2.04 3.215-1.433v-2.283l-3.27-1.447L24 7.346V.953L12 6.25Zm.879 1.352 10.039 4.431-4.96 2.19L.879 6.763Zm22.242 0v4.458l-5.066 2.162-4.973-2.19 10.04-4.431ZM12 7.209l4.945 2.19-4.95 2.107-4.94-2.108zM5.959 9.885l4.926 2.093-.006.002.006.002-4.979 2.12-3.446-1.529v-1.148l3.5-1.541zm12.082 0 3.514 1.54v1.15l-3.448 1.526-1.107.487-4.994 2.21L7 14.589l4.994-2.133L17 14.588l1.094-.487-4.973-2.12zM5.906 15.06l5.012 2.215-.066.03-9.973 4.404v-4.512zm12.201 0 5.014 2.137v4.512l-9.959-4.404-.066-.03z\"},\"child\":[]}]})(props);\n};\nexport function SiPostcss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.627.008q-.352.014-.706.065c-.226.024-.453.064-.672.097-.267.033-.534.05-.801.081-.252.033-.51.082-.762.123-.09.016-.178.048-.268.064-.194.04-.396.057-.59.122A16 16 0 0 0 6.79.917c-.316.13-.624.268-.923.43-.308.17-.6.373-.892.568q-.415.277-.82.592c-.257.203-.501.43-.736.657-.13.13-.235.284-.356.43-.203.236-.405.462-.6.706-.16.203-.308.414-.462.625-.275.373-.51.77-.728 1.168-.09.162-.17.325-.25.487-.123.243-.252.478-.366.73-.08.17-.146.357-.194.544a67 67 0 0 0-.332 1.2c-.098.358-.122.73-.13 1.096-.008.324.024.64.057.965.008.082-.04.18.056.244-.032.09-.008.138.04.154-.056.09.025.146-.007.227-.008.017.025.05.04.073 0 .025-.008.057 0 .08.01.074.04.147.04.229 0 .056.05.12.066.178.008.024 0 .065-.017.08-.048.058-.04.106.033.139.04.105.024.154.016.203.016.073-.008.097 0 .114.065.13.09.275.097.42 0 .034.016.066.033.107.008 0 0 .154 0 .154.04-.024.073-.032.113-.05q.036.16.081.294c.04.065.041.097.025.105.032.145.048.283.105.42 0-.153-.016-.307-.04-.453.113.04.21.08.275.08.008-.023.016-.055.025-.072-.049-.048-.09-.12-.138-.17.016.065 0 .09 0 .114a1 1 0 0 0-.114-.05c.033-.04.065-.08.114-.13 0-.072-.04-.137-.154-.13.05-.015.097-.04.154-.055.09-.048-.008-.138-.008-.25.008-.14-.073-.277-.097-.423-.04-.227-.033-.568-.057-.795-.049-.04-.09.065-.097.073q.04.293.064.584c-.048-.162-.08-.34-.12-.536-.01.057-.017.08-.017.114-.04.04-.008.09.016.146-.056-.025-.12-.016-.12-.016v.227c-.082-.08-.106-.146-.147-.203-.016-.065-.025-.13-.04-.194.015-.04 0-.065 0-.09l-.025-.195a1 1 0 0 0-.008-.13c.065.009.106.016.146.016-.08-.104-.025-.17.008-.234.016-.033.073-.04.09-.074.064-.12.17-.218.17-.373 0-.073.025-.154.032-.227q.027-.207.04-.414c.017-.178 0-.357.041-.527.065-.283.146-.568.235-.852.065-.203.138-.397.22-.6.12-.317.234-.633.388-.933.22-.438.47-.86.713-1.29.154-.268.316-.52.487-.78.16-.25.323-.51.51-.746.26-.332.543-.64.86-.917.323-.292.63-.592.98-.86a10 10 0 0 1 1.44-.925c.414-.219.843-.39 1.273-.552.275-.105.575-.154.859-.243.324-.106.648-.154.988-.162.219-.008.43-.033.648-.057a16 16 0 0 0 .6-.057.4.4 0 0 0-.04.065c-.09.13-.187.26-.276.39-.073.105-.154.218-.227.324-.13.17-.268.34-.39.52-.185.267-.356.543-.55.81-.194.26-.405.504-.608.755-.267.35-.518.706-.785 1.055-.244.332-.502.65-.737.982-.21.292-.398.6-.6.9-.3.446-.6.884-.9 1.33a84 84 0 0 1-.712 1.015c-.016.024-.04.032-.065.048-.064.105-.064.162-.09.21a4 4 0 0 1-.202.358c-.04.065-.097.122-.146.187-.008-.098.13-.147.065-.27-.04.067-.08.123-.12.188l-.1.194c.033.024.088.04.035.088-.005-.02-.032-.032-.053-.048a5 5 0 0 0-.194.293c.05.04.073.024.105-.033.03-.06.072-.104.11-.154l-.042.074a.3.3 0 0 0 .09-.08c0 .088-.05.16-.09.233-.033.065-.114.114-.17.163.008.008.065.032.073.04.073-.024.097-.064.106-.04.024-.033.048-.057.056-.08a.3.3 0 0 1 .162-.18q.046-.026.08-.064c.244-.252.495-.496.714-.764.34-.413.648-.843.973-1.265.137-.178.3-.357.445-.527.024.186.008.365 0 .535-.025.3-.04.6-.065.908-.008.122 0 .244-.008.366 0 .032-.025.056-.025.09 0 .08.025.17.025.25-.025.3-.057.592-.082.893-.008.064.024.13.04.186-.04.438.05.9-.024 1.364.057-.09.073-.147.073-.203.008-.05 0-.097 0-.154v-.08c.008-.147.04-.3.024-.448a1.5 1.5 0 0 1 .016-.47c.017-.065-.007-.146.033-.227v.12c-.008.463.01.926-.056 1.388-.008.04.024.114-.065.106-.073.146.016.252-.065.333-.016.016.016.09.024.138-.032.097-.032.097.016.105.008.18.025.34.033.51.13-.307.064-.624.122-.941.008.13.016.26.008.398 0 .21-.01.414-.017.625q-.002.06-.016.122c-.024.113-.032.227-.072.332-.033.08-.016.203-.016.3v.31c.032.137-.01.21.016.29-.025.083-.033.107-.025.13l.025.123c.162-.016.09.106.153.17-.048.065-.032.09-.032.122 0 .073-.008.138-.016.21 0 .188-.008.374-.008.553 0 .025.008.048.008.073l-.008.227c.016.024 0 .05-.025.073-.008 0-.032-1.03-.032-1.03h-.12c-.017.486.023.924-.066 1.38-.097.007-.13.023-.235.023q-.378-.002-.754.008c-.3 0-.59.008-.89.008-.147 0-.3.017-.446.017-.195 0-.397-.025-.59-.025-.3 0-.593.024-.893.032-.22.008-.437.008-.656.017-.146.008-.292.015-.438.032-.064.008-.12.032-.202.056-.025 0-.08-.008-.13 0-.08.017-.153.065-.235.082-.122.024-.154.056-.138.178v.08c-.008.017.178-.024.178-.024-.016 0-.024.05-.049.09.065-.025.106-.04.147-.057.121.057.226.025.323.05.316.08.64.113.964.145.21.016.414.025.624.032.3.017.6.033.9.033.25 0 .493-.025.744-.025.348 0 .697.016 1.045.025.073 0 .154-.008.235-.008h.592c.527-.016 1.053-.025 1.58-.04.3-.01.608-.025.907-.033l.924-.025c.357-.008.713-.008 1.062-.015.267 0 .526-.01.794-.017.3-.008.607-.032.907-.048.162-.008.324-.025.486-.04.195-.017.398-.04.592-.05.29-.016.59-.024.883-.04.365-.024.73-.057 1.102-.065.34-.016.689-.008 1.03-.016.3-.008.599-.025.907-.033l.51-.025s.34-.008.51-.024c.293-.016.584-.05.876-.057.186-.008.372 0 .559-.008.3-.008.606-.024.906-.024.113 0 .235.016.38.024-.064.057-.105.09-.153.13.032.008.064.025.097.04a.22.22 0 0 1-.13.04c-.016.042-.032.058-.048.139h.145c-.056 0-.105.073-.16.122-.066-.017-.123 0-.156.09.057.03.05.056.04.09-.096.03-.17.063-.128.169q-.05.022-.114.056c-.04.065-.113.08-.097.17.032.008.064.025.09.033-.042.016-.082.04-.123.056-.145.09-.08.13-.048.17q-.037.027-.073.04c.016.074.04.09.048.09l-.085.069.01-.027h-.032q0 .022.005.04l-.02.016c-.024.072-.056.104-.09.153-.03.048-.046.114-.087.162-.17.187-.292.406-.51.552-.081.057-.154.13-.227.203-.146.138-.276.292-.43.422a9 9 0 0 1-.631.478c-.267.187-.534.374-.802.552-.146.097-.308.17-.462.26s-.3.17-.454.26c-.097.064-.186.153-.291.202-.268.114-.551.211-.827.317-.268.114-.462.21-.664.284a5 5 0 0 1-.575.153c-.065.017-.138 0-.211.01-.138.024-.276.057-.414.073-.356.048-.713.08-1.07.13-.21.024-.413.064-.623.09-.146.007-.3-.009-.446-.009-.105 0-.218.025-.324.01-.17-.026-.34-.066-.51-.098-.04-.008-.097-.025-.13-.008-.064.032-.122-.016-.187 0-.04.008-.08-.025-.12-.025-.033-.008-.074.01-.115 0-.09-.024-.17-.056-.268-.048-.096.008-.194-.04-.298-.065l-.43-.097a.7.7 0 0 1-.162-.073c-.21 0-.348-.008-.478-.057-.113-.04-.22-.097-.34-.08-.032.007-.057-.009-.09-.009-.024-.033-.048-.098-.072-.098-.162.008-.26-.13-.397-.17-.073-.024-.13-.105-.202-.13-.18-.073-.324-.227-.527-.25-.064-.01-.13-.042-.202-.066.024.032.04.057.064.08-.235-.113-.453-.242-.672-.364-.032-.008-.056-.04-.08-.057l-.22-.147c-.12.024-.17-.025-.203-.04-.218-.154-.47-.252-.68-.421-.09-.074-.194-.122-.26-.212a1.3 1.3 0 0 0-.404-.316c-.122-.064-.235-.138-.348-.21-.057-.041-.114-.09-.114-.18 0-.056-.024-.113-.097-.08-.032-.05-.065-.106-.105-.122-.097-.04-.162-.114-.235-.18-.073-.064-.13-.153-.22-.185-.161-.065-.26-.203-.355-.316-.228-.268-.43-.56-.64-.844-.017-.024-.05-.04-.074-.065.033.09.073.162.114.243a.5.5 0 0 1-.186-.146c-.008.008.558.942.558.942.05.073.09.146.138.219a.25.25 0 0 1-.243-.13c-.073-.13-.154-.21-.316-.194a1.4 1.4 0 0 1-.04-.18.6.6 0 0 1-.114-.008c.114.179.21.333.316.51l-.08-.047c.145.154.25.349.436.446.04.187.25.276.3.454l-.114-.024c-.065-.081-.138-.162-.21-.251a.4.4 0 0 0 .072.145c.098.122.187.244.3.35.04.04.098.057.098.13.064.032.09.04.113.04.017.049-.008.122.09.106.064.12.128.12.218.08.105.105.162.114.235.05 0 .04.008.08.008.113.032-.017.025-.04.025-.081.04.033.064.049.08.065.08.114.154.219.268.307.154.13.29.268.437.39.283.235.6.43.916.608.39.22.762.455 1.16.665a6.2 6.2 0 0 0 1.513.545c.195.04.38.08.576.13.17.048.34.121.51.161.26.057.527.106.786.154l.179.025c.072.016.16-.016.177.008.04.065.073.032.122.024.057-.016.12-.016.186-.016.227.008.445.056.672.04.05 0 .122-.04.163.04.073-.032.113-.032.146-.04.008.073 0 .073-.016.08-.017.01-.04.017-.073.04.292.058.567.066.81 0a2.7 2.7 0 0 0 1.135-.136c.032.04.056.097.105.016.016-.025.056-.033.089-.04.073-.017.162-.05.227-.026.073.025.097-.04.154-.04.097 0 .186-.008.276-.024.048-.008.097-.033.153-.05a.4.4 0 0 0-.178-.04 7 7 0 0 1 .276-.13c-.017.025-.033.057-.065.057h.113c-.025 0-.057.073-.097.122.29-.073.558-.138.818-.204-.09-.17.097-.113.162-.21a3 3 0 0 1-.243.064c.275-.137.559-.26.834-.38-.04.048-.09.073-.162.114.049.008.08.008.106.015.129.04.097-.08.137-.154.154 0 .219-.024.292-.05q.12-.033.243-.08c.13-.056.25-.13.38-.194.025-.01.065 0 .098 0 .09-.057.12-.106.145-.098.114.017.194-.024.227-.13l.023-.015c.033.07.098.08.203.007q-.1-.002-.187-.016-.008.002-.011.006.06-.047.11-.08c.178-.096.347-.193.526-.29.065 0 .097 0 .113-.008a4 4 0 0 0 .3-.163c-.024-.008-.08-.04-.08-.04a1 1 0 0 0 .154-.04c.193-.23.46-.383.664-.56.089-.008.089-.032.089-.048.032-.041.064-.09.105-.122.177-.163.371-.3.533-.47q.354-.355.673-.732c.194-.227.39-.454.55-.705.228-.35.422-.706.625-1.072.146-.26.275-.52.422-.778.015-.025.048-.057.072-.057.22-.025.438-.04.65-.065.047-.008.104-.04.152-.065-.024-.04-.04-.09-.064-.13-.033-.05-.08-.09-.114-.138-.032-.04-.056-.09-.08-.138-.025-.04-.05-.072-.074-.114a3 3 0 0 1-.138-.275c-.008-.024-.025-.065-.016-.09.146-.315.202-.656.34-.972.138-.325.18-.69.243-1.04.057-.331.09-.664.13-.997.024-.235.057-.462.064-.697.05-.373.033-.723.025-1.072-.008-.308-.025-.624-.04-.933-.017-.317-.025-.633-.058-.95-.056-.43-.113-.868-.21-1.29a7 7 0 0 0-.316-1.014c-.154-.39-.308-.787-.503-1.16-.316-.6-.73-1.136-1.11-1.696-.252-.357-.576-.65-.82-1.014-.135-.21-.34-.39-.541-.55a14 14 0 0 0-1.004-.723 10 10 0 0 0-.794-.504c-.22-.122-.454-.22-.68-.325-.26-.12-.511-.268-.803-.324-.073-.016-.138-.04-.21-.065-.187-.065-.365-.138-.552-.195-.283-.089-.56-.194-.85-.267a8 8 0 0 0-.87-.163c-.323-.047-.655-.064-.98-.096a8 8 0 0 0-.623-.056c-.307-.018-.623-.018-.93-.025-.154-.008-.316-.024-.47-.016Zm.694.94q.156.027.3.041l.389.025c.292.023.583.04.875.08.243.033.486.081.737.122a10.4 10.4 0 0 1 1.572.405c.3.098.59.228.884.35.656.267 1.28.592 1.895.932.194.106.308.276.454.43.21.22.42.438.624.665.234.268.453.544.68.82.201.243.412.486.615.73.065.073.114.163.17.244.13.194.275.38.39.592.08.154.13.333.185.503.08.252.162.495.243.746.056.187.104.382.145.576.033.13.025.268.065.397.05.17 0 .358.05.528.007.017.015.04.023.057.033.032.057.065.008.114-.008.008-.008.04 0 .064.017-.016.025-.032.04-.057 0 .017.01.025.01.033 0 .032-.01.065 0 .097 0 .016.015.04.023.057.016-.017.032-.025.064-.05.073.276.082.552.082.836 0 .268.048.536-.065.795.024-.09-.033-.17-.008-.252l.003.002c-.008 0-.056-.05-.064-.057-.01.025 0 .05-.017.08-.008-.023-.064-.014-.064-.04-.01.115.048.228.04.34.024-.014.12-.023.146-.047a.1.1 0 0 0 .032.016c-.162.122-.12.244-.048.382.016.032.064.097.016.162-.016.016.008.065.016.106h.024v.015l-.073.025c-.016-.025-.113-.073-.113-.114v.414c.08.025.08.138.113.195a.2.2 0 0 0 .033-.064l.008.008q-.01.072-.032.146c-.016.072-.033.137-.04.21 0 .008.015.025.015.033-.09.203-.04.43-.072.64-.025.154 0 .317-.017.48a4 4 0 0 1-.08.42c-.009.025-.026.033-.066.05a.7.7 0 0 0-.008-.252c-.008 0-.114-.057-.122-.057 0 .114.065.268.09.398-.025-.008-.122-.065-.13-.065-.017.097-.017.227-.025.332-.008.082-.08.154-.09.244 0 .05.058.08.05.162h.064c0-.162.074-.308.074-.478h.023c.01.016.033.032.025.04-.016.09-.05.187-.04.276 0 .05.04.097.024.154a1 1 0 0 0-.033.17c-.008-.04-.016-.056-.016-.08l-.09-.008c-.007.05.058.097.05.138-.01.008-.017.008-.033.016l-.267-.39a82 82 0 0 1-.632-.932 2 2 0 0 1-.147-.244q-.372-.645-.833-1.24c-.235-.3-.422-.626-.64-.94-.203-.302-.405-.594-.608-.895-.073-.097-.162-.186-.227-.292-.21-.332-.397-.673-.607-1.006-.178-.276-.372-.544-.56-.81q-.097-.137-.194-.286a.1.1 0 0 1-.016-.055 12 12 0 0 1-.04-.528c0-.162.016-.324.016-.495V6.96c0-.04.008-.073.008-.113.008-.008.016-.025.024-.033-.235 0-.478-.01-.713 0-.154.008-.235-.057-.34-.17-.308-.35-.535-.747-.802-1.12a50 50 0 0 0-.77-1.055c-.211-.284-.422-.56-.632-.844-.236-.324-.462-.65-.705-.973q-.44-.585-.892-1.168c-.138-.179-.292-.35-.446-.536m-.752.426q.026.005.05.038c.218.276.437.56.655.835.163.204.325.398.48.61.185.26.364.52.55.778q.316.448.624.908c.308.455.6.91.907 1.363.227.333.454.658.672.99h-.413c-.38-.008-.77-.04-1.15-.024-.52.025-1.046.08-1.564.122a23 23 0 0 1-1.976.064c-.236 0-.47.033-.705.05-.284.016-.56.032-.843.04-.333.016-.656.024-.99.033-.185.008-.38 0-.582 0V7.18c.26-.357.527-.714.786-1.08.08-.105.145-.22.226-.324.025-.033.058-.05.098-.082l-.008-.015c.032-.04.064-.074.08-.106.042-.065.066-.138.099-.21a.1.1 0 0 1 .032-.033c.114.057.114-.064.154-.105a6 6 0 0 0 .21-.252c.05-.064.098-.12.139-.194.007-.025-.017-.065-.025-.098H9.05c.024-.016.049-.04.073-.056.008 0 .008 0 .016-.008a5 5 0 0 1 .146-.21c.097-.13.202-.26.315-.374q-.024.062-.048.113c.008 0 .008.008.016.008.097-.13.203-.252.3-.382q-.012-.014-.025-.016c-.04.04-.072.082-.113.122q-.012-.014-.025-.016c.082-.106.163-.21.243-.333.017.025.033.057.065.122.033-.08.065-.138.09-.195-.025.025-.057.05-.081.074l-.025-.025.146-.218c.154-.22.308-.447.462-.666.057-.08.13-.146.178-.227.154-.308.398-.552.584-.836.04-.056.097-.105.145-.154q.03-.035.056-.03zm-2.285 3.16c-.048.033-.09.057-.137.09-.01.008-.017.008-.01.008.01.04.01.073.017.13.057-.082.097-.147.146-.21zm6.838 3.342c.073 0 .113.025.154.09q.108.182.227.365c.008.016.024.04.024.064 0 .18 0 .365.008.544.008.187.025.365.032.552 0 .186-.016.38-.008.576.009.276.016.56.016.843h.002v.074c-.008 0-.016.008-.032.008-.033-.114-.065-.236-.106-.35a2.7 2.7 0 0 0-.316-.68c-.163-.228-.308-.463-.47-.698-.04-.057-.098-.106-.146-.154-.17-.187-.34-.382-.56-.52a6.6 6.6 0 0 0-1.012-.52 2 2 0 0 1-.284-.145h.194L15.23 7.9c.3-.008.59-.008.89-.024m-6.083.212q.088-.003.178.008c-.13.065-.26.13-.373.21-.146.098-.283.228-.43.334a2.4 2.4 0 0 0-.396.373c-.154.186-.324.348-.487.527-.113.13-.243.252-.34.39-.137.178-.26.372-.39.575.042-.77.09-1.533.058-2.312.382-.016.746-.04 1.12-.056.29-.017.59-.025.88-.04q.09-.008.18-.01zm2.033.415c.242.008.485.008.728.024.105.008.203.032.3.064.12.04.25.098.365.154q.204.11.397.244c.235.154.453.324.688.462.227.138.405.325.55.536.18.25.382.48.463.787l.12.535c.026.098.083.195.058.308-.04.203-.073.415-.105.617a1 1 0 0 0-.024.244c.015.252-.082.47-.18.698-.031.073-.08.146-.12.227a.2.2 0 0 0 .064.033l.073-.146c.009 0 .009 0 .016.008-.04.113-.072.235-.113.35-.097.25-.194.51-.316.753-.065.138-.178.25-.26.382-.08.113-.145.235-.226.34-.073.09-.145.18-.243.244a6 6 0 0 1-.68.454c-.146.09-.316.138-.478.178h.002c-.26.064-.527.138-.794.17-.227.033-.462.025-.697.025a8 8 0 0 1-.625-.025c-.235-.024-.47-.05-.696-.154-.195-.09-.398-.17-.591-.268-.196-.097-.39-.21-.536-.39-.105-.13-.251-.234-.38-.348a.38.38 0 0 0 .17.235c-.041.05-.098.025-.18-.106-.023.017-.047.025-.064.033.025-.057.049-.114.073-.162-.032-.065-.073-.138-.105-.204a7 7 0 0 1-.187-.324c-.016-.024-.016-.048-.032-.073a2 2 0 0 1-.114-.146c-.064-.097-.12-.202-.202-.3 0 .025.008.05.008.082-.008 0-.016.008-.016.008l-.17-.414c-.008 0-.008 0-.016.008l.145.535c-.008 0-.016.01-.024.01-.024-.034-.048-.066-.065-.106-.016-.066-.065-.066-.105-.04-.025.015-.041.072-.033.096q.088.207.187.414a1 1 0 0 0 .057.138c.008.016.032.032.032.056.033.065.057.13.098.187.073.097.154.195.227.292.072.097.137.203.2.3.009.016.034.016.04.025.043.12.18.21.277.162.025.186.227.25.308.43a4 4 0 0 1-.235-.106c-.008.008-.008.016-.016.032.097.05.195.098.283.154.082.05.163.098.236.155.097.09.21.138.348.17a.1.1 0 0 0-.016-.033c.227.106.462.22.64.308-.843.017-1.742.033-2.674.05 0-.155-.008-.3-.008-.455 0-.065.016-.122.008-.187-.025-.372-.025-.746-.073-1.11a8 8 0 0 1-.04-1.162c.007-.21-.01-.43-.017-.64 0-.284 0-.56.009-.844 0-.04.016-.073.032-.114h.025c.008.017 0 .04.015.05.025.024.066.064.082.056.048-.033.12-.065.138-.114a.8.8 0 0 0 .056-.3c0-.073.033-.12.065-.17.016-.025.025-.05.04-.08-.031-.025-.064-.042-.104-.074.032-.09.024-.195.146-.243.016-.008.016-.05.024-.073.008-.066.015-.14.024-.204.016.025.025.033.04.05q.015-.026.017-.026c0-.032-.008-.097 0-.097.097-.016.057-.122.105-.17.008-.01-.008-.033-.008-.05 0-.015 0-.04.008-.04.113-.024.097-.146.17-.203.024-.016.032-.04.065-.08.064.112-.05.17-.057.25.137-.08.178-.275.097-.332a.5.5 0 0 0 .089-.09c.09-.097.186-.186.267-.283.057-.073.09-.162.146-.235.033-.04.098-.073.146-.098.146-.08.284-.17.373-.307q.026-.025.064-.05c.025-.015.074-.015.082-.04.008-.016-.016-.057-.033-.08.032-.017.065-.05.13-.082-.025.05-.032.08-.05.114l.04.04c.074-.057.188-.12.26-.17 0-.008-.04-.04-.04-.04-.05.024-.121.065-.194.097.015-.024.015-.04.025-.05.113-.072.226-.144.348-.202.283-.13.567-.26.85-.38.049-.025.114-.01.17-.01.025 0 .04 0 .065-.006.13-.04.26-.082.39-.114a.7.7 0 0 1 .178-.024m-.316.12-.234.106c0 .008-.041.073-.033.073.04-.008.13-.073.178-.08.024 0 .057.007.082.015 0-.032 0-.065.007-.114m5.858 1.38c.08.107.17.204.227.309.187.34.43.634.656.942.195.268.373.56.552.835.218.333.429.665.648.998.162.252.332.503.502.747q.233.326.477.64c.137.187.283.374.42.56q.244.344.487.674c.08.113.17.227.26.34.05.065.121.114.17.154a.1.1 0 0 1-.032-.008q.034.05.056.073c.09.05.098.098.05.17v-.001c-.008.016-.025.033-.033.05-.008-.017-.008-.042-.016-.075-.05.13-.154.066-.227.066-.437.008-.883.008-1.32.008-.421 0-.85 0-1.271.008-.138 0-.284.032-.422.04a37 37 0 0 1-.997.033c-.024 0-.048-.04-.09-.073l-.048.073c-.008-.016-.024-.032-.04-.056l-.025.064h-.024c-.016-.113-.048-.22-.048-.332 0-.244.024-.487.032-.73.008-.114 0-.22 0-.325l.09.065a1 1 0 0 1 .048-.08s-.016-.008-.033-.025c.016-.008.033-.025.033-.033.008-.024.024-.05.024-.065 0-.057-.016-.105-.024-.153q.012.002.024-.008l.048.243h.025c-.032-.056.073-.106-.016-.17-.008-.008.008-.057.008-.082-.025-.048-.04-.097-.065-.162.008-.008.033-.016.057-.024q-.046-.026-.081-.04c.08-.073.08-.114.008-.195.016-.008.032-.008.032-.015 0-.074 0-.147-.016-.22-.016-.081.025-.178-.097-.227a.2.2 0 0 0 .032.065s-.024.008-.048.024c-.105-.097-.04-.228-.065-.373a1 1 0 0 1 .138.05c-.017-.058-.057-.123-.081-.196h-.033v-.536c0 .008.056.008.09.017 0-.008.007-.016.007-.025l-.09-.105.017-.016c-.065-.08-.032-.194-.032-.22v-.567c.08.082-.04.187.08.235v-.08h-.008c-.008-.122-.008-.244-.016-.366h-.016c-.008.017-.008.025-.016.04h-.016zm-13.65.665c-.098.113-.187.227-.276.34.015.008.04.065.055.082.09-.122.21-.276.3-.39-.008-.008-.072-.024-.08-.032m-.543.398c-.05.072-.17.202-.22.275.009.008.098-.032.106-.023.05-.073.098-.155.146-.228q-.022-.013-.032-.024m.17.12c-.05.034-.097.075-.146.107.016.016.016.025.016.04-.064-.007-.09.026-.12.114-.01.025-.05.033-.09.065-.01.016-.017.057-.033.097l.008.008a.1.1 0 0 1-.04.025c-.05.048-.106.09-.154.138q-.014.036-.016.073c.056-.057.153-.162.226-.227l.01.008c.03-.05.056-.098.09-.146.006.008.006.016.014.024-.024.065-.048.138-.073.203-.017.008-.04.024-.04.016-.033.025-.058.057-.09.08l-.146.098c-.08.073-.162.138-.25.21-.058.09-.114.17-.18.277.098-.025.122.016.114.097.113.016.122-.073.154-.138.008-.016.016-.05.032-.057.073-.065.154-.12.235-.186.017-.016.017-.05.017-.073 0-.008-.04-.008-.066-.017.073-.08.18-.218.25-.307.042-.025.083-.058.083-.082-.007-.075.032-.104.082-.13-.037.175-.144.325-.252.356.033.016.065.033.09.025s.04-.05.056-.074l.22-.316.072-.122-.032-.033c-.033.058-.065.107-.098.164l-.027-.014.002-.002c-.032-.025-.04-.05-.04-.057a.3.3 0 0 1 .04-.074c.017 0 .04-.008.04-.008.034-.056.034-.097.066-.146-.008-.008-.016-.008-.025-.016zm14.059.999h-.002v.006zm-.002.006a.2.2 0 0 0-.007.067q-.002-.034.007-.067m-.007.147v.008c.008.008.009.008.016 0-.008 0-.008 0-.016-.007zm0 .016c-.024.008-.05.008-.081.017.04.015.079.023.08.04zm0 .056v.002zm-1.192 1.422c-.016.925.09 1.833.21 2.75l-2.786.097a3.3 3.3 0 0 0 .94-.624 1 1 0 0 1 .13-.114c.34-.21.59-.503.818-.828.259-.373.429-.795.64-1.192a1 1 0 0 1 .048-.09m1.134.073.033.08c.04-.007.057-.007.073-.015q-.002-.012.008-.024c-.024-.01-.057-.024-.114-.04zm.024.074-.007.006c.008 0 .016.01.016.01l-.008-.01zM1.07 14.01a.2.2 0 0 0-.073.033c.032.08.073.17.105.252a.2.2 0 0 1 .065-.033c-.033-.08-.065-.17-.097-.252m-.228.333c-.024.04-.048.08-.04.113 0 .024.04.05.065.073 0-.008.008-.016.016-.023-.016-.057-.024-.106-.04-.163m21.657.008c0 .016.008.04 0 .057zm-21.235.18a.3.3 0 0 0-.073.03c.065.139.13.285.194.423.01 0 .073-.032.073-.032-.065-.14-.105-.293-.194-.422m-.162.324c0 .032-.04.024-.04.057-.049 0-.09-.008-.13-.008-.008.008.024.056.033.065h.17c0-.04-.008-.073-.008-.114zm7.453.316q.133.205.276.398l-.008.008c-.017-.008-.041-.017-.057-.033l-.194-.292a.1.1 0 0 1-.017-.08m9.043.438c-.008.097-.016.17-.016.243 0 .016.016.048.024.048.016.01.049-.008.065-.015a.06.06 0 0 0 .016-.032c-.024-.017-.048-.025-.073-.042.154-.08 0-.12-.016-.202m-14.114 4.59c.088.099.177.196.266.302-.048-.025-.105-.04-.13-.073-.056-.065-.104-.138-.16-.203zm.34.286c.024.04.04.089.064.138-.113-.008-.17-.057-.137-.122.024-.008.05-.008.073-.016m15.434 1.241c-.065.015-.114.024-.154.04-.016.033-.033.057-.05.09q.013.001.026.015c.049-.05.105-.09.178-.145m-.414.226c-.09.057-.186.113-.276.17.008.008.008.017.017.025a.8.8 0 0 0 .292-.146c-.008-.017-.025-.034-.033-.05m-3.97 1.542c-.371.106-.493.122-.534.065.187-.025.357-.04.535-.065m-.551.073c.008.016.008.032.016.048-.05 0-.081.017-.122.025-.113.024-.235.04-.348.057-.04.008-.09.05-.105-.025-.017.008-.033.008-.05.017.04.12.139.024.22.072-.18.025-.348.04-.52.065v-.016c.05-.008.107-.016.155-.025v-.024a2 2 0 0 0-.243-.016c-.024 0-.056.033-.08.04a.4.4 0 0 1-.106.017c-.138.008-.275.008-.405.016-.008 0-.025-.008-.033-.008v-.025c.543-.072 1.078-.145 1.62-.218zm-1.694.21v.024a4 4 0 0 1-.453.05v-.025z\"},\"child\":[]}]})(props);\n};\nexport function SiPostgresql (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.5594 14.7228a.5269.5269 0 0 0-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191 1.342-2.0482 2.445-4.522 3.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641 1.5641 0 0 0-.1509-.235C21.6931.9086 19.8007.0248 17.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449 9.449 0 0 0-.5159-.0816 8.044 8.044 0 0 0-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359 2.1526.3086 3.8733.4302 6.3043c.0409.818.5069 3.334 1.2423 5.7436.4598 1.5065.9387 2.7019 1.4334 3.582.553.9942 1.1259 1.5933 1.7143 1.7895.4474.1491 1.1327.1441 1.8581-.7279.8012-.9635 1.5903-1.8258 1.9446-2.2069.4351.2355.9064.3625 1.39.3772a.0569.0569 0 0 0 .0004.0041 11.0312 11.0312 0 0 0-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097 1.015.6331 1.3345.3335 2.5044.092 3.3714-.6787-.017 2.231.0775 4.4174.3454 5.0874.2212.5529.7618 1.9045 2.4692 1.9043.2505 0 .5263-.0291.8296-.0941 1.7819-.3821 2.5557-1.1696 2.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673 0 0 0 .0443.0068l.2539.0223.0149.001c.8468.0384 1.9114-.1426 2.5312-.4308.6438-.2988 1.8057-1.0323 1.5951-1.6698zM2.371 11.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829 1.5623-4.4927 1.8367-1.2986 4.8398-.5408 6.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238 2.044-1.9758 5.536-1.9708 5.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996 1.6804-.0735 2.9184-.1609 1.1504.1937 2.2764.9728 3.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004 1.1926-1.9025 2.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072 5.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409 1.2833-.2641 1.4815-.4506 1.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549 0 0 0 .0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043 1.2658-2.2216 1.2494-3.1676 1.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334 1.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621 1.6659-.9962 2.6429-.7724.4459.1022.7176.4057.8305.928.5846 2.7038.0774 3.8307-.3302 4.7363-.084.1866-.1633.3629-.2311.5454zm7.3637 4.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547 0 0 0-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794 1.0575-.11 1.4143-.8782 2.2267-2.4172 2.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824 6.5824 0 0 0-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529 0 0 0-.0153-.1126 1.4927 1.4927 0 0 0-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476 1.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716 5.6716 0 0 0-.1958.1041c.0918-1.1064.4386-3.1741 1.7357-4.4823a4.0306 4.0306 0 0 1 .3033-.276.3532.3532 0 0 0 .1447-.0644c.7524-.5706 1.6945-.8506 2.802-.8325.4091.0067.8017.0339 1.1742.081 1.939.3544 3.2439 1.4468 4.0359 2.3827.8143.9623 1.2552 1.9315 1.4312 2.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926 1.4189.543 4.1729 1.2811 5.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787 1.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552 1.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566 2.8566 0 0 0 .135-.0406 1.202 1.202 0 0 0 .1342.103c.5703.3765 1.5823.4213 3.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054 1.0017-.055.3576-.112.7274-.1264 1.1762-.0142.4368.0404.8909.0932 1.3301.1066.887.216 1.8003-.2075 2.7014a3.5272 3.5272 0 0 1-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427 1.3408-.5661 2.1781-.463zm.2284 7.0137a12.3762 12.3762 0 0 0-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066 1.2328-.2035 2.0244-.1859 2.0515.0456 3.6746.8135 4.8242 2.2824a.908.908 0 0 1 .0667.1002c.7231 1.3556-.2762 6.2751-2.9867 10.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821 0 0 1-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456 0 0 1-.075.0052c-.2935 0-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z\"},\"child\":[]}]})(props);\n};\nexport function SiPosthog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.854 14.5 5 9.647.854 5.5A.5.5 0 0 0 0 5.854V8.44a.5.5 0 0 0 .146.353L5 13.647l.147.146L9.854 18.5l.146.147v-.049c.065.03.134.049.207.049h2.586a.5.5 0 0 0 .353-.854L9.854 14.5zm0-5-4-4a.487.487 0 0 0-.409-.144.515.515 0 0 0-.356.21.493.493 0 0 0-.089.288V8.44a.5.5 0 0 0 .147.353l9 9a.5.5 0 0 0 .853-.354v-2.585a.5.5 0 0 0-.146-.354l-5-5zm1-4a.5.5 0 0 0-.854.354V8.44a.5.5 0 0 0 .147.353l4 4a.5.5 0 0 0 .853-.354V9.854a.5.5 0 0 0-.146-.354l-4-4zm12.647 11.515a3.863 3.863 0 0 1-2.232-1.1l-4.708-4.707a.5.5 0 0 0-.854.354v6.585a.5.5 0 0 0 .5.5H23.5a.5.5 0 0 0 .5-.5v-.6c0-.276-.225-.497-.499-.532zm-5.394.032a.8.8 0 1 1 0-1.6.8.8 0 0 1 0 1.6zM.854 15.5a.5.5 0 0 0-.854.354v2.293a.5.5 0 0 0 .5.5h2.293c.222 0 .39-.135.462-.309a.493.493 0 0 0-.109-.545L.854 15.501zM5 14.647.854 10.5a.5.5 0 0 0-.854.353v2.586a.5.5 0 0 0 .146.353L4.854 18.5l.146.147h2.793a.5.5 0 0 0 .353-.854L5 14.647z\"},\"child\":[]}]})(props);\n};\nexport function SiPostman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.527.099C6.955-.744.942 3.9.099 10.473c-.843 6.572 3.8 12.584 10.373 13.428 6.573.843 12.587-3.801 13.428-10.374C24.744 6.955 20.101.943 13.527.099zm2.471 7.485a.855.855 0 0 0-.593.25l-4.453 4.453-.307-.307-.643-.643c4.389-4.376 5.18-4.418 5.996-3.753zm-4.863 4.861l4.44-4.44a.62.62 0 1 1 .847.903l-4.699 4.125-.588-.588zm.33.694l-1.1.238a.06.06 0 0 1-.067-.032.06.06 0 0 1 .01-.073l.645-.645.512.512zm-2.803-.459l1.172-1.172.879.878-1.979.426a.074.074 0 0 1-.085-.039.072.072 0 0 1 .013-.093zm-3.646 6.058a.076.076 0 0 1-.069-.083.077.077 0 0 1 .022-.046h.002l.946-.946 1.222 1.222-2.123-.147zm2.425-1.256a.228.228 0 0 0-.117.256l.203.865a.125.125 0 0 1-.211.117h-.003l-.934-.934-.294-.295 3.762-3.758 1.82-.393.874.874c-1.255 1.102-2.971 2.201-5.1 3.268zm5.279-3.428h-.002l-.839-.839 4.699-4.125a.952.952 0 0 0 .119-.127c-.148 1.345-2.029 3.245-3.977 5.091zm3.657-6.46l-.003-.002a1.822 1.822 0 0 1 2.459-2.684l-1.61 1.613a.119.119 0 0 0 0 .169l1.247 1.247a1.817 1.817 0 0 1-2.093-.343zm2.578 0a1.714 1.714 0 0 1-.271.218h-.001l-1.207-1.207 1.533-1.533c.661.72.637 1.832-.054 2.522zM18.855 6.05a.143.143 0 0 0-.053.157.416.416 0 0 1-.053.45.14.14 0 0 0 .023.197.141.141 0 0 0 .084.03.14.14 0 0 0 .106-.05.691.691 0 0 0 .087-.751.138.138 0 0 0-.194-.033z\"},\"child\":[]}]})(props);\n};\nexport function SiPostmates (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.545 14.954l.44-1.284-1.138.692-1.08-.88.342 1.35-1.109.74 1.35.143.396 1.338.492-1.263 1.352.087zm5.308-2.61l-1.14.692-1.08-.88.342 1.349-1.108.74 1.35.144.396 1.336.493-1.261 1.352.087-1.046-.924zm-1.328 4.864l-1.139.692-1.08-.881.342 1.35-1.108.74 1.35.144.396 1.338.492-1.263 1.353.087-1.046-.924zM15.95 6.744l.72.041a.123.122 0 0 0 .092-.032l1.78-1.67a.032.032 0 0 0-.02-.056l-.7-.04a.189.189 0 0 0-.14.05l-1.754 1.646a.035.035 0 0 0 .022.06zm7.55 3.377a3.1 3.098 0 0 0-4.976-.342l-1.108-.83c.277-.113.857-.368.896-.525.022-.093-.273-.158-.727-.187l2.079-1.896a.047.047 0 0 0 .009-.053l-.529-.996a.04.04 0 0 0-.063-.01l-2.163 1.97c-.646 0-1.796.085-2.127-.123-.528-.333-.59-.822-.785-.997-.195-.176-.415-.197-.462-.346a.015.015 0 0 1 .011-.019c.102-.026.67-.186.8-.58.129-.396-.135-.932-.18-1.016a.018.018 0 0 1 0-.02l.604-.527a.018.018 0 0 0-.013-.03l-.886.108a.015.015 0 0 1-.015 0c-.047-.062-.4-.484-1.121-.189-.842.34-.687 1.068-.687 1.068.112.753.374.902.8 1.148.012 0 .017.02 0 .027-.274.228-3.035 2.494-5.585 3.378a.05.05 0 0 0 0 .093c.738.32 2.952.147 3.606-.232a.016.016 0 0 1 .025.018c-.072.273-.458 1.873.147 2.37l.034.026-.82.578a.21.21 0 0 0 .147.38l.422-.047a1.216 1.216 0 0 0 .725-.34l.148-.14 1.193.886-.158 1.261a3.1 3.098 0 1 0 2.56 1.623l.305-.195a.748.748 0 0 0 1.218-.756l1.262-.37a.205.205 0 0 0 .147-.24l-.008-.041a.207.207 0 0 0-.203-.164h-1.071a.018.018 0 0 1-.015-.01l-.322-.727.64-3.762 1.034.767a3.1 3.098 0 1 0 5.224 0zm-8.594-2.228l1.46-.025.192.361c-.338.012-.69.039-1.033.082-.247.03-.545-.287-.634-.387a.02.02 0 0 1 .015-.03zm-2.214 2.185c.122-.204.831-1.384.92-1.787a.018.018 0 0 1 .03-.007c.471.55 1.468.866 1.545.885a.009.009 0 0 0 .008 0l1.28-.394.287.213-1.34 1.229a.918.918 0 0 0-.52-.228c-.77-.098-1.975.076-2.194.11a.016.016 0 0 1-.006-.021zm3.31 4.029a.76.76 0 0 0-.249.074l-.915-.7a.015.015 0 0 1 0-.019l.458-.948a.016.016 0 0 1 .03 0l.752 1.18zm-1.942-1.025l-.626-.468 1.2-1.1zm0-1.623l-.974.894-.977-.727a11.265 11.258 0 0 0 1.97-.16zm-.778 1.553l.643.478-.077.211a.286.286 0 0 0 .172.369l1.34.488.04.03a.753.752 0 0 0-.019.473l-.295.192a3.09 3.088 0 0 0-1.919-1.217zm-.208 1.661a2.46 2.458 0 0 1 1.465.925l-1.717 1.092zm.822 4.48a2.46 2.46 0 1 1-1.235-4.53l-.309 2.456a.214.214 0 0 0 .096.203.207.207 0 0 0 .223 0l2.089-1.328a2.462 2.46 0 0 1-.866 3.198zm1.83-8.045a.01.01 0 0 1 0-.01 1.329 1.328 0 0 0-.063-.518l1.133-1.033-.49 2.875zm6.486 2.751a2.46 2.458 0 0 1-3.418-3.362l1.95 1.452a.207.207 0 0 0 .237.008.196.196 0 0 0 .054-.05.208.208 0 0 0-.043-.295l-1.953-1.45a2.385 2.384 0 0 1 .526-.443 2.46 2.46 0 1 1 2.644 4.147Z\"},\"child\":[]}]})(props);\n};\nexport function SiPowers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.31 12.347s-.008.73-.008 1.068c0 .34.339.544.777.544v.486h-2.988v-.486c.408 0 .79-.204.79-.544v-2.673c0-.545-.52-.557-.79-.595v-.466h2.55c1.042 0 2.403-.125 2.403 1.228 0 1.403-1.233 1.441-2.304 1.441zm-.017-2.212v1.559h.494c.35 0 .777-.063.777-.772 0-.749-.318-.795-.907-.795-.254 0-.364.008-.364.008zM12 4.551l12 7.45-12 7.448L0 12zm-8.645 7.45c2.764 1.713 7.373 4.575 8.645 5.364L20.644 12A7141.71 7141.71 0 0 0 12 6.636c-1.272.787-5.881 3.649-8.645 5.365Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrdotco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9998 4.67c1.876-.0025 3.7518.7157 5.1832 2.1468 1.026 1.0238 1.6037 2.1895 1.898 3.2853l1.7906-1.7905c.7157-.7157 1.8761-.7157 2.5916 0 .7157.7155.7157 1.8758 0 2.5913l-6.2802 6.2803c-1.4314 1.4314-3.3073 2.1469-5.1832 2.1469-1.8758 0-3.7517-.7155-5.1831-2.147-.9442-.944-1.5768-2.0815-1.898-3.2848L3.128 15.6886c-.7154.716-1.8758.716-2.5915 0-.7153-.7154-.7153-1.8758 0-2.5915 2.092-2.0933 4.1908-4.1889 5.9512-5.9502 1.6938-1.8595 3.7695-2.4746 5.5121-2.477zm2.5918 4.7384c-1.4314-1.4312-3.7521-1.4312-5.1834 0-1.4313 1.4312-1.4313 3.7522 0 5.1834 1.4313 1.4312 3.7518 1.431 5.1831-.0002 1.4313-1.4312 1.4313-3.752.0003-5.1832z\"},\"child\":[]}]})(props);\n};\nexport function SiPreact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 12,10.406 A 1.594,1.594 0 0 0 10.406,12 1.594,1.594 0 0 0 12,13.594 1.594,1.594 0 0 0 13.594,12 1.594,1.594 0 0 0 12,10.406 Z m 5.499,-4.33 a 2.998,2.998 0 0 1 0.643,0.054 1.668,1.668 0 0 1 0.48,0.172 1.085,1.085 0 0 1 0.29,0.235 1.032,1.032 0 0 1 0.185,0.315 1.454,1.454 0 0 1 0.084,0.452 c 0.007,0.195 -0.015,0.398 -0.058,0.603 -0.054,0.261 -0.14,0.521 -0.244,0.778 -0.137,0.334 -0.304,0.66 -0.49,0.978 -0.245,0.417 -0.52,0.818 -0.817,1.207 -0.145,0.191 -0.3,0.376 -0.455,0.561 -0.22,-0.238 -0.443,-0.472 -0.673,-0.7 a 23.61,23.61 0 0 0 -2.05,-1.797 l -0.23,0.296 0.23,-0.296 -0.018,-0.014 -0.461,0.592 0.018,0.014 a 22.864,22.864 0 0 1 1.984,1.74 c 0.241,0.237 0.475,0.48 0.703,0.73 -0.099,0.108 -0.194,0.22 -0.296,0.326 -0.099,0.104 -0.2,0.207 -0.301,0.308 l 0.53,0.53 c 0.106,-0.105 0.21,-0.212 0.313,-0.32 0.085,-0.088 0.164,-0.182 0.248,-0.272 0.065,0.078 0.135,0.152 0.198,0.231 a 13.317,13.317 0 0 1 0.909,1.262 c 0.211,0.336 0.404,0.681 0.564,1.036 a 5.23,5.23 0 0 1 0.293,0.806 3.019,3.019 0 0 1 0.102,0.637 c 0.008,0.178 -0.007,0.351 -0.05,0.508 -0.034,0.123 -0.087,0.239 -0.157,0.338 h -10e-4 c -0.068,0.098 -0.157,0.186 -0.26,0.256 -0.121,0.083 -0.264,0.146 -0.418,0.191 -0.188,0.054 -0.39,0.081 -0.6,0.09 -0.266,0.01 -0.538,-0.01 -0.814,-0.05 -0.357,-0.051 -0.713,-0.134 -1.067,-0.238 -0.464,-0.137 -0.92,-0.307 -1.369,-0.5 h -0.001 c -0.584,-0.253 -1.153,-0.543 -1.71,-0.86 L 12.708,16.26 c 0.578,-0.377 1.144,-0.77 1.686,-1.194 l -0.21,-0.27 0.211,0.27 0.018,-0.015 -0.463,-0.59 -0.017,0.014 c -0.695,0.542 -1.418,1.047 -2.168,1.505 A 18.53,18.53 0 0 1 9.938,16.963 C 9.465,17.182 8.984,17.378 8.494,17.539 A 8.68,8.68 0 0 1 7.352,17.835 C 7.066,17.887 6.781,17.921 6.499,17.925 6.277,17.928 6.061,17.912 5.856,17.87 5.681,17.834 5.518,17.778 5.376,17.698 5.265,17.635 5.166,17.556 5.086,17.464 5.007,17.373 4.944,17.265 4.901,17.149 4.85,17.012 4.823,16.857 4.817,16.696 a 2.54,2.54 0 0 1 0.058,-0.603 c 0.055,-0.261 0.14,-0.52 0.245,-0.777 a 7.704,7.704 0 0 1 0.49,-0.978 12.09,12.09 0 0 1 1.271,-1.767 c 0.232,0.251 0.469,0.497 0.712,0.737 a 23.645,23.645 0 0 0 2.02,1.765 l 0.461,-0.591 A 22.9,22.9 0 0 1 8.119,12.773 C 7.865,12.523 7.618,12.267 7.378,12.004 7.477,11.896 7.573,11.785 7.673,11.679 7.776,11.572 7.879,11.466 7.983,11.362 l -0.53,-0.53 C 7.345,10.94 7.238,11.05 7.132,11.16 7.047,11.249 6.967,11.343 6.884,11.433 6.829,11.367 6.77,11.305 6.715,11.238 6.386,10.832 6.077,10.411 5.799,9.975 5.585,9.637 5.391,9.292 5.228,8.935 5.102,8.66 4.995,8.38 4.92,8.097 4.863,7.882 4.826,7.669 4.818,7.46 A 1.67,1.67 0 0 1 4.868,6.953 C 4.902,6.829 4.955,6.714 5.025,6.614 H 5.026 C 5.094,6.516 5.184,6.428 5.286,6.358 A 1.446,1.446 0 0 1 5.705,6.168 C 5.892,6.113 6.094,6.086 6.304,6.078 a 4.545,4.545 0 0 1 0.814,0.048 7.708,7.708 0 0 1 1.067,0.24 12.092,12.092 0 0 1 1.369,0.5 17.248,17.248 0 0 1 1.736,0.874 24.003,24.003 0 0 0 -1.694,1.202 l 0.462,0.59 c 0.683,-0.534 1.393,-1.031 2.13,-1.484 0.594,-0.363 1.203,-0.697 1.83,-0.99 0.474,-0.222 0.956,-0.42 1.448,-0.583 A 8.816,8.816 0 0 1 16.612,6.172 C 16.91,6.116 17.207,6.08 17.499,6.076 Z m -0.01,-0.75 -0.001,0 C 17.142,5.331 16.804,5.373 16.474,5.434 A 9.546,9.546 0 0 0 15.229,5.763 14.202,14.202 0 0 0 13.7,6.379 C 13.117,6.651 12.554,6.961 12.004,7.289 11.883,7.216 11.761,7.144 11.637,7.074 11.06,6.745 10.466,6.442 9.852,6.177 9.38,5.974 8.897,5.792 8.397,5.646 8.017,5.534 7.625,5.442 7.225,5.384 6.916,5.34 6.599,5.316 6.275,5.329 6.021,5.339 5.759,5.372 5.499,5.446 5.281,5.51 5.063,5.602 4.863,5.74 A 1.774,1.774 0 0 0 4.146,6.754 C 4.078,7.001 4.059,7.251 4.069,7.491 a 3.728,3.728 0 0 0 0.127,0.798 6.016,6.016 0 0 0 0.351,0.959 9.548,9.548 0 0 0 0.62,1.128 14.203,14.203 0 0 0 0.967,1.335 c 0.08,0.098 0.166,0.19 0.248,0.286 C 6.193,12.219 6.007,12.443 5.83,12.676 5.519,13.084 5.226,13.51 4.963,13.958 A 8.44,8.44 0 0 0 4.425,15.033 5.28,5.28 0 0 0 4.142,15.941 C 4.089,16.19 4.059,16.453 4.069,16.723 a 2.182,2.182 0 0 0 0.13,0.688 v 10e-4 a 1.775,1.775 0 0 0 0.81,0.94 2.403,2.403 0 0 0 0.697,0.253 3.699,3.699 0 0 0 0.805,0.07 5.97,5.97 0 0 0 0.977,-0.102 l 10e-4,-0.001 a 9.412,9.412 0 0 0 1.24,-0.32 c 0.523,-0.173 1.031,-0.38 1.526,-0.61 0.599,-0.278 1.178,-0.593 1.742,-0.93 0.121,0.072 0.243,0.144 0.366,0.214 a 17.99,17.99 0 0 0 1.785,0.898 12.832,12.832 0 0 0 1.455,0.53 c 0.38,0.112 0.772,0.204 1.172,0.262 a 5.284,5.284 0 0 0 0.95,0.056 c 0.254,-0.01 0.516,-0.044 0.776,-0.118 0.218,-0.063 0.436,-0.156 0.636,-0.294 a 1.775,1.775 0 0 0 0.717,-1.014 c 0.068,-0.248 0.087,-0.497 0.077,-0.736 -0.011,-0.277 -0.06,-0.544 -0.127,-0.799 -0.085,-0.322 -0.202,-0.629 -0.335,-0.923 -0.178,-0.393 -0.387,-0.767 -0.612,-1.127 -0.294,-0.466 -0.618,-0.908 -0.959,-1.333 -0.09,-0.111 -0.188,-0.216 -0.28,-0.324 0.189,-0.222 0.374,-0.447 0.552,-0.679 0.311,-0.409 0.604,-0.835 0.867,-1.283 A 8.441,8.441 0 0 0 19.575,8.967 5.277,5.277 0 0 0 19.858,8.06 C 19.911,7.81 19.941,7.547 19.931,7.277 19.924,7.051 19.886,6.817 19.801,6.589 V 6.588 a 1.775,1.775 0 0 0 -0.81,-0.94 C 18.767,5.522 18.529,5.444 18.294,5.396 A 3.7,3.7 0 0 0 17.489,5.326 Z M 12,0 22.392,6 V 18 L 12,24 1.607,18 V 6 Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrecommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-.563 0-1.127.215-1.557.645L.645 10.443c-.86.86-.86 2.254 0 3.114l9.798 9.798c.86.86 2.254.86 3.114 0l9.798-9.798c.86-.86.86-2.254 0-3.114L13.557.645A2.195 2.195 0 0012 0zm0 1.74c.493 0 .987.186 1.361.56L21.7 10.64c.75.75.75 1.973 0 2.722L13.361 21.7c-.374.375-.868.56-1.361.56s-.987-.185-1.361-.56L2.3 13.361a1.93 1.93 0 010-2.722L10.639 2.3c.374-.375.868-.56 1.361-.56zm0 .62c-.333 0-.664.127-.92.382L2.742 11.08a1.295 1.295 0 000 1.84l8.338 8.338a1.296 1.296 0 001.84 0l8.338-8.338a1.295 1.295 0 000-1.84L12.92 2.742A1.296 1.296 0 0012 2.36zM9.207 7.624h3.959c.55 0 1.015.079 1.4.238.385.16.7.371.942.633.241.262.417.561.527.897a3.34 3.34 0 010 2.084c-.11.34-.286.64-.527.902a2.628 2.628 0 01-.942.633c-.385.16-.85.238-1.4.238h-2.043v3.156H9.207zm1.916 1.484v2.657h1.514c.222 0 .434-.016.64-.05.207-.032.39-.097.547-.193.158-.095.284-.23.38-.404.094-.174.142-.401.142-.682 0-.28-.048-.507-.143-.681a1.053 1.053 0 00-.379-.404 1.513 1.513 0 00-.547-.194 4.056 4.056 0 00-.64-.049z\"},\"child\":[]}]})(props);\n};\nexport function SiPrefect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.003 4.288 4.002 12 0l7.713 4v8.004L12 16v8l-7.71-4v-8L12 16V8.003Z\"},\"child\":[]}]})(props);\n};\nexport function SiPremierleague (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.176 0s-.681 1.938-.867 2.527C9.844 2.202 8.386 1.194 7.78.775c.14.806.356 2.124.403 2.403-.124-.093-.821-.698-1.875-1.194.589.682 1.008 1.736 1.271 2.588a10.566 10.566 0 0 1 5.238-1.379c.977 0 1.94.14 2.854.403.093-.884.279-1.968.682-2.758-.915.728-1.474 1.503-1.551 1.596-.031-.186-.093-1.52-.17-2.434-.372.403-1.8 2.016-2.063 2.264C12.384 1.938 11.176 0 11.176 0zm1.674 3.86c-1.674 0-3.3.386-4.696 1.115.713.046 1.224.668 1.395 1.164-.558-.45-1.442-.667-1.985-.078-.511.589-.464 1.688.047 2.572-1.193-.605-1.194-2.185-.775-2.867A10.392 10.392 0 0 0 3.61 9.594l1.07.172c-1.24 1.426-2.107 3.953-2.107 5.146l1.75-.543c-.31 1.054-.401 4.602.653 6.385 0 0 1.38-.96 2.945-3.363.65 2.17.356 3.985 0 5.767 2.82 1.581 6.09.696 8.012-.683l.357 1.35c2.248-1.489 3.488-3.628 3.72-6.124l.837.93c1.286-3.829.28-6.883-1.565-9.502l-.078.637-.79-.87s.17-.077.31-.263c.03-.078-.046-.495-.371-.774-.31.078-.56.264-.684.45a3.222 3.222 0 0 0-.93-.543c.062.077.604.79.65 1.007.466.388 1.102.837 1.52 1.395-.34-.403-1.984-.497-2.728-.078 0 0-.744-.868-1.426-1.473-.14-.511.326-.96.326-.96s-.48-.03-.93.42c-.682-.512-1.55-.745-1.55-.745-.961.14-1.612.82-1.612.82.217.14.512.327.776.42.511.217 1.006.139 1.332.139.263 0 .636.078.636.078s.635.495 1.565 1.565c-1.426-.574-2.915.062-3.969-.45-1.24-.62-1.146-1.595-1.146-1.595s-.836-.11-.836-.141c0 0 .618-.82 1.548-1.1l-.464-.402c.558-.465 1.534-1.085 3.115-1.24 0 0 .683.262 2.11 1.285.232-.326.308-1.008.308-1.008.728.248 2.217 1.333 2.806 1.984-.325-.759-.559-1.223-.636-2.013-.357-.357-1.24-1.101-3.069-1.551.295.605.264 1.115.264 1.115-.34-.45-1.055-1.146-1.55-1.332-.295-.015-.605-.047-.93-.047zm3.271 7.068a4.323 4.323 0 0 0 1.256.697v1.348c-.465.403-1.985 1.675-3.008 1.566-.573-1.1-1.115-2.107-1.115-2.107s1.565-1.318 2.867-1.504zm2.975.031c.465 1.131.59 2.48.078 3.379-.28-.605-.636-.947-1.008-1.35v-1.347s.418-.264.93-.682zm-.977 3.395c.465.511.559 1.068.559 1.068-.202 1.131-.836 1.846-1.301 2.14.046-.821-.172-1.519-.172-1.519-.34.372-1.13.743-1.596.836l-.697-1.3c.822-.032 2.201-1.194 2.201-1.194l1.006-.031z\"},\"child\":[]}]})(props);\n};\nexport function SiPrepbytes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.427 0 .0997 5.3717.1016 12c0 6.6283 5.3273 12 11.8984 12s11.8984-5.3736 11.8984-12c0-6.6283-5.3273-12-11.8984-12zm1.4082 7.1602h1.127v3.914l.2675-.1855a3.5647 3.5647 0 0 1 2.252-.6992c.0095 0 .0198.002.0293.002 1.924.1048 3.3998 1.7497 3.2969 3.6737-.2155 3.5392-5.069 4.5848-6.625 1.3946-.3757-.7761-.3483-.4843-.375-4.5059l.0273-3.5937zm-4.7324.1328a3.4259 3.4259 0 0 1 2.1308.7539c1.5084 1.1765 1.7943 3.3475.6387 4.873-1.167 1.5408-3.3616 1.8448-4.9023.6778-.0801-.0534-.1895-.1068-.2696-.1602-.0267 0-.0273.8561-.0273 1.9297v1.9297H5.119v-3.1895c0-3.8614.0013-4.0768.377-4.8281A3.6055 3.6055 0 0 1 7.91 7.375c.2541-.0572.5101-.0831.7657-.082zm-.0684 1.1035c-1.0545-.0057-1.9793.6966-2.2539 1.7148-.3337 1.2357.3992 2.51 1.6367 2.8438 1.2357.3337 2.5081-.3992 2.8418-1.6367.3337-1.2357-.3972-2.5081-1.6347-2.8418a2.2104 2.2104 0 0 0-.5899-.0801zm8.42 2.8965c-1.1232-.0687-2.142.659-2.4395 1.7441-.347 1.2662.3979 2.5748 1.664 2.9219 1.2662.347 2.5749-.398 2.922-1.664.347-1.2662-.398-2.5749-1.6641-2.922a1.48 1.48 0 0 0-.4825-.08z\"},\"child\":[]}]})(props);\n};\nexport function SiPrestashop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.558 1.034C5.174 1.034 0 6.21 0 12.592c0 1.258.201 2.47.574 3.597l.002-.007a12.415 12.415 0 01.53-1.787l.011-.03c.085-.222.179-.442.277-.66l.084-.181c.08-.171.165-.34.253-.507.036-.068.07-.136.108-.203.02-.038.044-.073.064-.11.094-.166.19-.332.29-.493l.075-.114c.125-.195.256-.386.393-.573l.035-.05c.144-.193.295-.38.451-.563l.1-.118c.155-.177.315-.35.481-.517l.099-.097a10.321 10.321 0 01.546-.503c.74-2.48 3.005-4.285 5.686-4.285 1.079 0 2.152.31 3.071.873a6.017 6.017 0 012.211 2.407l.007.015.04.074v.003l.004.002a9.925 9.925 0 011.567 1.198c.04.037.081.071.12.109.002 0 .006.005.007.006l-.002-.006-.001-.004v-.003l.042-.084c.377-2.384 1.43-4.102 2.67-4.102.934 0 1.762.975 2.276 2.476l.005.016.001.002c.145.158.287.331.424.521l.007.01.021.067-.02-.078c-1.542-4.569-5.863-7.857-10.952-7.857zM9.927 5.477C7.586 5.52 5.34 7.132 4.574 9.365l-.012.034a10.14 10.14 0 011.315-.895c2.806-1.656 6.479-1.646 9.278.016-.895-1.653-2.631-2.819-4.5-3.004a5.14 5.14 0 00-.728-.039zm9.834.5a1.36 1.36 0 00-.39.067c-1.265.562-1.719 2.073-2.031 3.303l-.016.072c.365-.62.808-1.215 1.396-1.642.835-.687 2.105-.655 2.916.053.308.326.141.008.031-.22-.342-.75-1.025-1.653-1.906-1.634zM21.67 7.98zm-9.32.335l-1.07 3.27-.002.005-.006.002-4.498 1.112h-.009l4.456 1.087c.105.11.227.205.36.28h.002c.042.024.085.045.129.065l.01.005c.041.018.083.033.126.047l.021.008c.04.013.08.023.12.032l.033.008a1.677 1.677 0 00.318.033 1.546 1.546 0 001.43-.948c.08-.186.123-.39.123-.604v-.011l-.001-.012c-.001-.054-.004-.107-.01-.16l-.001-.002a1.506 1.506 0 00-.026-.153l-.001-.004a1.511 1.511 0 00-.096-.288v-.003a1.521 1.521 0 00-.348-.49v-.003zm3.148.626c.048 1.008.036 2.046-.1 3.057-.17 2.018-1.19 3.798-1.972 5.616l-.03.08-.035.086c1.51-1.522 3.17-3.04 3.969-5.082.383-.636.118-1.342-.115-1.976-.17-.877-1.069-1.278-1.717-1.781zm6.172.572l-.588 2.688a1.764 1.764 0 00-.047.2c-.002.02-.007.04-.01.06a1.76 1.76 0 00-.016.222l-.002.031h.003c0 .628.297 1.136.663 1.137a.41.41 0 00.182-.045l.027-.015a.537.537 0 00.07-.047c.013-.01.024-.022.036-.033a.752.752 0 00.137-.168l.03-.054a1.23 1.23 0 00.052-.108l.017-.04c.02-.053.038-.108.053-.166l.002-.002.001-.003.404-.451-.407-.456v.001l-.02-.063zm-4.381.856c.69 1.716.85 3.707.091 5.43-.49 1.368-1.587 2.463-1.874 3.905.73.115 1.468.176 2.21.186 2.166.029 4.332-.42 6.284-1.365-2.04-2.869-4.121-5.755-6.711-8.156zm-4.948.977a.583.583 0 110 1.166.583.583 0 010-1.166zm9.352.37c.138 0 .249.19.249.426s-.111.426-.249.426c-.137 0-.248-.19-.248-.426 0-.235.11-.426.248-.426zm-4.044.184c-.016.112-.033.209-.05.29l-.006.023c-.01.05-.022.094-.033.128-.48 1.417-1.275 2.52-2.36 3.697-.147.16-.301.32-.459.484a58.883 58.883 0 01-1.196 1.205c-.112.11-.259.261-.425.436-.103.287-.22.61-.318.95-.044-.016-.086-.031-.131-.049-2.108-.815-3.519-1.904-3.519-1.904s1.086 1.414 2.915 2.74c.177.129.351.24.522.339-.075 1.194.452 2.34 2.83 2.682a4.81 4.81 0 001.228.008l-.01-.029a.062.062 0 00-.004-.01s-.167-.133-.379-.377a3.842 3.842 0 01-.584-.897 3.382 3.382 0 01-.266-.862 3.176 3.176 0 01-.006-.972c.017-.12.04-.241.072-.366.093-.374.255-.772.507-1.192l.002-.003.241-.404c1.103-1.86 1.797-3.275 1.506-5.441a8.943 8.943 0 00-.078-.476zm4.668.576zm.013.203l.003.036v.01c0 .013-.003.025-.003.038 0-.014.003-.028.003-.043 0-.014-.002-.026-.003-.04zm-.012.275v.001l-.002.01-.002.014.004-.025zm1.353 5.928c-2.553 1.138-5.44 1.44-8.192 1.007-.14 1.108.384 2.218 1.214 2.93l.012.01c2.703-.433 4.975-2.168 6.966-3.946z\"},\"child\":[]}]})(props);\n};\nexport function SiPresto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.3716 0C.6184 0 .0009.618.0009 1.3724v21.256C.0009 23.3825.6184 24 1.3716 24h21.256c.7545 0 1.3715-.6175 1.3715-1.3716V1.3724c0-.754-.617-1.3724-1.3715-1.3724zm11.9596 4.4849a.854.854 0 0 1 .032 0 .854.854 0 0 1 .854.854.854.854 0 0 1-.854.854.854.854 0 0 1-.854-.854.854.854 0 0 1 .822-.854zm-4.4458.094a.7595.7595 0 0 1 .007 0 .7595.7595 0 0 1 .76.76.7595.7595 0 0 1-.76.759.7595.7595 0 0 1-.759-.759.7595.7595 0 0 1 .752-.76zm-4.4636.095a.6645.6645 0 0 1 .664.665.6645.6645 0 0 1-.664.664.6645.6645 0 0 1-.6649-.664.6645.6645 0 0 1 .665-.665zm11.1766 1.9513a.9486.9486 0 0 1 .949.949.9486.9486 0 0 1-.949.948.9486.9486 0 0 1-.949-.948.9486.9486 0 0 1 .949-.949zm-4.5026.094a.8545.8545 0 0 1 .032 0 .8545.8545 0 0 1 .8549.854.8545.8545 0 0 1-.8549.855.8545.8545 0 0 1-.8549-.855.8545.8545 0 0 1 .823-.854zm-4.4458.095a.7595.7595 0 0 1 .0071 0 .7595.7595 0 0 1 .76.759.7595.7595 0 0 1-.76.76.7595.7595 0 0 1-.759-.76.7595.7595 0 0 1 .752-.759zm11.167 1.9513a1.0436 1.0436 0 0 1 .0177 0 1.0436 1.0436 0 0 1 1.043 1.0431 1.0436 1.0436 0 0 1-1.043 1.044 1.0436 1.0436 0 0 1-1.044-1.044 1.0436 1.0436 0 0 1 1.0262-1.043zm-4.4539.095a.9486.9486 0 0 1 .949.949.9486.9486 0 0 1-.949.9481.9486.9486 0 0 1-.949-.948.9486.9486 0 0 1 .949-.949zm-4.4706.0941a.854.854 0 0 1 .8549.854.854.854 0 0 1-.855.854.854.854 0 0 1-.854-.854.854.854 0 0 1 .854-.854zM20.069 10.906a1.1386 1.1386 0 0 1 1.139 1.139 1.1386 1.1386 0 0 1-1.139 1.138 1.1386 1.1386 0 0 1-1.139-1.138 1.1386 1.1386 0 0 1 1.139-1.139zm-4.4698.095a1.0436 1.0436 0 0 1 1.0431 1.044 1.0436 1.0436 0 0 1-1.043 1.043 1.0436 1.0436 0 0 1-1.044-1.043 1.0436 1.0436 0 0 1 1.044-1.044zm-4.4715.094a.949.949 0 0 1 .9499.949.949.949 0 0 1-.9499.949.949.949 0 0 1-.949-.949.949.949 0 0 1 .949-.949zm6.706 2.0463a1.1386 1.1386 0 0 1 1.139 1.139 1.1386 1.1386 0 0 1-1.139 1.138 1.1386 1.1386 0 0 1-1.139-1.138 1.1386 1.1386 0 0 1 1.139-1.139zm-4.4884.095a1.0436 1.0436 0 0 1 .0177 0 1.0436 1.0436 0 0 1 1.044 1.043 1.0436 1.0436 0 0 1-1.044 1.044 1.0436 1.0436 0 0 1-1.044-1.044 1.0436 1.0436 0 0 1 1.0263-1.043zm-4.46.284a.7595.7595 0 0 1 .007 0 .7595.7595 0 0 1 .76.759.7595.7595 0 0 1-.76.76.7595.7595 0 0 1-.759-.76.7595.7595 0 0 1 .752-.759zm6.6793 1.8563a1.1386 1.1386 0 0 1 .0337 0 1.1386 1.1386 0 0 1 1.139 1.138 1.1386 1.1386 0 0 1-1.139 1.139 1.1386 1.1386 0 0 1-1.139-1.139 1.1386 1.1386 0 0 1 1.1053-1.138zm-8.9146.379a.7595.7595 0 0 1 .007 0 .7595.7595 0 0 1 .76.759.7595.7595 0 0 1-.76.76.7595.7595 0 0 1-.759-.76.7595.7595 0 0 1 .752-.759zm4.4706 0a.7595.7595 0 0 1 .0071 0 .7595.7595 0 0 1 .76.759.7595.7595 0 0 1-.76.76.7595.7595 0 0 1-.759-.76.7595.7595 0 0 1 .7519-.759zM4.4157 17.99a.7595.7595 0 0 1 .007 0 .7595.7595 0 0 1 .76.76.7595.7595 0 0 1-.76.759.7595.7595 0 0 1-.7599-.759.7595.7595 0 0 1 .7528-.76zm4.4697.0009a.7595.7595 0 0 1 .007 0 .7595.7595 0 0 1 .76.759.7595.7595 0 0 1-.76.76.7595.7595 0 0 1-.759-.76.7595.7595 0 0 1 .752-.759zm4.4777.0009a.7591.7591 0 0 1 .538.222c.2954.2963.2954.7773 0 1.0732a.7603.7603 0 0 1-1.075 0c-.296-.2959-.296-.777 0-1.0733a.7563.7563 0 0 1 .537-.222Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrettier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.571 23.429A.571.571 0 0 1 8 24H2.286a.571.571 0 0 1 0-1.143H8c.316 0 .571.256.571.572zM8 20.57H6.857a.571.571 0 0 0 0 1.143H8a.571.571 0 0 0 0-1.143zm-5.714 1.143H4.57a.571.571 0 0 0 0-1.143H2.286a.571.571 0 0 0 0 1.143zM8 18.286H2.286a.571.571 0 0 0 0 1.143H8a.571.571 0 0 0 0-1.143zM16 16H5.714a.571.571 0 0 0 0 1.143H16A.571.571 0 0 0 16 16zM2.286 17.143h1.143a.571.571 0 0 0 0-1.143H2.286a.571.571 0 0 0 0 1.143zm17.143-3.429H16a.571.571 0 0 0 0 1.143h3.429a.571.571 0 0 0 0-1.143zM9.143 14.857h4.571a.571.571 0 0 0 0-1.143H9.143a.571.571 0 0 0 0 1.143zm-6.857 0h4.571a.571.571 0 0 0 0-1.143H2.286a.571.571 0 0 0 0 1.143zM20.57 11.43H11.43a.571.571 0 0 0 0 1.142h9.142a.571.571 0 0 0 0-1.142zM9.714 12a.571.571 0 0 0-.571-.571H5.714a.571.571 0 0 0 0 1.142h3.429A.571.571 0 0 0 9.714 12zm-7.428.571h1.143a.571.571 0 0 0 0-1.142H2.286a.571.571 0 0 0 0 1.142zm19.428-3.428H16a.571.571 0 0 0 0 1.143h5.714a.571.571 0 0 0 0-1.143zM2.286 10.286H8a.571.571 0 0 0 0-1.143H2.286a.571.571 0 0 0 0 1.143zm13.143-2.857c0 .315.255.571.571.571h5.714a.571.571 0 0 0 0-1.143H16a.571.571 0 0 0-.571.572zm-8.572-.572a.571.571 0 0 0 0 1.143H8a.571.571 0 0 0 0-1.143H6.857zM2.286 8H4.57a.571.571 0 0 0 0-1.143H2.286a.571.571 0 0 0 0 1.143zm16.571-2.857c0 .315.256.571.572.571h1.142a.571.571 0 0 0 0-1.143H19.43a.571.571 0 0 0-.572.572zm-1.143 0a.571.571 0 0 0-.571-.572H12.57a.571.571 0 0 0 0 1.143h4.572a.571.571 0 0 0 .571-.571zm-15.428.571h8a.571.571 0 0 0 0-1.143h-8a.571.571 0 0 0 0 1.143zm5.143-2.857c0 .316.255.572.571.572h11.429a.571.571 0 0 0 0-1.143H8a.571.571 0 0 0-.571.571zm-5.143.572h3.428a.571.571 0 0 0 0-1.143H2.286a.571.571 0 0 0 0 1.143zm0-2.286H16A.571.571 0 0 0 16 0H2.286a.571.571 0 0 0 0 1.143z\"},\"child\":[]}]})(props);\n};\nexport function SiPretzel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.439.03 10.757 6.516a.305.305 0 0 0-.142.236v5.426l2.72 1.704v-5.54a.303.303 0 0 1 .143-.235l6.24-3.48a.286.286 0 0 1 .415.237V15.186a2.807 2.807 0 0 1-1.38 2.555 2.827 2.827 0 0 1-2.909-.02l-6.24-3.951-.03-.03a5.569 5.569 0 0 0-6.245.333 5.524 5.524 0 0 0-1.977 5.917 5.462 5.462 0 0 0 2.662 3.331A5.656 5.656 0 0 0 6.676 24a5.961 5.961 0 0 0 1.597-.236 5.544 5.544 0 0 0 3.43-2.919l.09-.236-2.308-1.474-.237.56a2.792 2.792 0 0 1-1.74 1.478 2.836 2.836 0 0 1-2.189-.236 2.738 2.738 0 0 1-1.36-1.704c-.413-1.42.414-2.949 1.805-3.45.294-.105.604-.153.916-.142a2.834 2.834 0 0 1 1.449.413l6.241 3.977h.03a5.558 5.558 0 0 0 2.898.797 5.968 5.968 0 0 0 1.597-.236 5.572 5.572 0 0 0 2.896-2.049 5.544 5.544 0 0 0 1.067-3.377V.266A.29.29 0 0 0 22.576 0a.293.293 0 0 0-.137.03z\"},\"child\":[]}]})(props);\n};\nexport function SiPrevention (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.993 14.246h-.71v-1.891c0-.37-.211-.515-.508-.515-.327 0-.63.217-.63.768v1.638h-.689v-3.015h.688v.442h.015c.166-.298.478-.544.884-.544.565 0 .957.312.957.994zm-2.755-1.522c0 .986-.668 1.595-1.493 1.595-.826 0-1.479-.58-1.479-1.587 0-1.015.66-1.602 1.479-1.602.82 0 1.493.601 1.493 1.594zm-.725.008c0-.63-.304-.979-.768-.979s-.768.363-.768.971c0 .595.304.972.768.972s.768-.37.768-.965zm-2.283-2.138a.403.403 0 0 1-.413.384.396.396 0 0 1-.385-.384.403.403 0 0 1 .385-.414.402.402 0 0 1 .413.384zm-.76.68h.724v3.045h-.725zm-.146 2.85c-.181.115-.333.194-.725.194-.551 0-.855-.318-.855-1.058v-1.412h-.377v-.588h.377v-.746l.754-.327v1.073h.768v.595h-.768v1.334c0 .347.08.485.282.485a.72.72 0 0 0 .348-.094zm-2.102.122h-.71v-1.891c0-.37-.21-.515-.508-.515-.326 0-.623.217-.623.768v1.638h-.696v-3.015h.688v.442h.015c.167-.298.479-.544.883-.544.566 0 .959.312.959.994zm-4.762-1.82c.08-.47.412-.666.732-.666.42 0 .66.298.667.668zm.652-1.296c-.877 0-1.399.652-1.399 1.594 0 .972.623 1.595 1.515 1.595.58 0 .877-.08 1.138-.275l-.203-.58c-.226.137-.478.218-.884.218-.537 0-.805-.393-.826-.72h2.087c.036-1.064-.283-1.832-1.427-1.832zm-4.081.145h.811l.69 2.073.66-2.073h.739L8.879 14.32h-.804zm.218 1.682H5.16c.022.325.29.717.827.717.405 0 .659-.073.883-.217l.203.58c-.267.195-.565.275-1.138.275-.891.007-1.514-.609-1.514-1.588 0-.95.521-1.594 1.398-1.594 1.146 0 1.465.768 1.428 1.827zm-.682-.53c-.007-.37-.247-.66-.668-.66-.318 0-.65.196-.73.66zm-1.928-1.233-.153.704a.822.822 0 0 0-.26-.043c-.602 0-.617.564-.617.732v1.66H2.9V11.23h.703v.465h.015c.137-.356.362-.56.696-.56a.725.725 0 0 1 .326.058zm-1.885.11c0 1.254-.898 1.624-1.957 1.624v1.318H0V9.781a7.875 7.875 0 0 1 1.095-.101c.898 0 1.66.405 1.66 1.623zm-.804 0c0-.703-.384-.942-.884-.942-.08 0-.167.02-.26.028v1.842c.6.028 1.144-.175 1.144-.929z\"},\"child\":[]}]})(props);\n};\nexport function SiPrezi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.996 0c-.21 0-.42.005-.63.015l.134 2.547c.333-.02.66-.013.987 0L12.62.015A12.92 12.92 0 0011.996 0zm-1.89.148c-.413.067-.826.154-1.22.26l.667 2.467c.32-.086.64-.153.973-.206zm3.761 0l-.387 2.52c.334.054.66.12.974.207L15.1.408a12.652 12.652 0 00-1.233-.26zM7.699.795c-.393.154-.773.32-1.146.514l1.166 2.273c.294-.147.594-.28.894-.4zm8.608.007l-.92 2.38c.314.12.62.254.914.407l1.146-2.28c-.366-.187-.746-.36-1.14-.507zM5.46 1.935c-.353.227-.693.474-1.02.74l1.607 1.98c.26-.2.527-.4.807-.58zm13.062 0l-1.38 2.147c.28.18.547.374.8.58l1.62-1.973c-.333-.267-.68-.52-1.04-.754zm-6.528 1.56c-1.167 0-2.253.22-3.32.674a8.349 8.349 0 00-2.707 1.82 8.339 8.339 0 00-1.807 2.714c-.467 1.04-.674 2.14-.674 3.307 0 1.154.207 2.254.674 3.307a8.536 8.536 0 001.807 2.7 8.393 8.393 0 002.7 1.82 8.494 8.494 0 003.32.674 8.357 8.357 0 003.308-.673 8.748 8.748 0 002.714-1.82 8.462 8.462 0 001.806-2.7c.46-1.054.687-2.161.687-3.308a7.963 7.963 0 00-.68-3.307c-.413-1.04-1.04-1.934-1.807-2.714a8.633 8.633 0 00-2.713-1.82 8.358 8.358 0 00-3.308-.673zm8.495.027l-1.814 1.794c.234.24.46.487.674.753l1.98-1.62c-.26-.327-.547-.633-.84-.927zm-16.99.007c-.292.293-.566.6-.826.92l1.994 1.6c.2-.253.42-.493.653-.727zm8.489.667c1.066 0 2.073.193 3.033.606.947.4 1.76.96 2.474 1.68.72.72 1.28 1.548 1.68 2.474a7.7 7.7 0 01.627 3.054 7.67 7.67 0 01-.62 3.034c-.4.927-.96 1.76-1.68 2.48a7.748 7.748 0 01-2.474 1.68c-.96.4-1.967.607-3.034.607a7.848 7.848 0 01-3.033-.607c-.947-.4-1.76-.96-2.494-1.68a7.756 7.756 0 01-1.66-2.48 7.657 7.657 0 01-.607-3.034c0-1.073.193-2.08.607-3.054.386-.926.96-1.76 1.66-2.473a7.878 7.878 0 012.487-1.68 7.61 7.61 0 013.034-.607zm0 .686c-1.967 0-3.64.7-5.021 2.094-1.407 1.387-2.094 3.067-2.094 5.034 0 1.947.687 3.627 2.094 5 1.374 1.388 3.054 2.094 5.02 2.094 1.948 0 3.628-.706 5.021-2.093 1.394-1.374 2.074-3.054 2.074-5.001 0-1.967-.687-3.647-2.074-5.034-1.393-1.387-3.067-2.094-5.02-2.094zm10.074.587l-2.14 1.394c.187.273.347.56.494.853l2.273-1.167c-.187-.373-.4-.733-.627-1.08zm-20.136.007c-.226.353-.44.713-.633 1.093l2.274 1.16c.16-.306.326-.593.506-.873zm10.062.106c1.76 0 3.273.62 4.54 1.887 1.247 1.247 1.854 2.747 1.854 4.541 0 1.76-.607 3.274-1.854 4.52-1.26 1.248-2.78 1.868-4.54 1.868-1.774 0-3.294-.62-4.52-1.867-1.261-1.247-1.888-2.767-1.888-4.521 0-1.787.627-3.294 1.887-4.54 1.234-1.26 2.747-1.888 4.52-1.888zm0 .72c-1.567 0-2.927.547-4.04 1.66-1.121 1.121-1.661 2.461-1.661 4.041 0 1.567.54 2.907 1.66 4.028 1.12 1.12 2.474 1.68 4.04 1.68 1.58 0 2.908-.56 4.028-1.674 1.12-1.12 1.68-2.46 1.68-4.027 0-1.58-.56-2.927-1.68-4.04-1.12-1.12-2.44-1.667-4.027-1.667zM12 7.01c.086 0 .172.002.259.006 1.36.067 2.507.627 3.434 1.647.927 1.013 1.36 2.213 1.28 3.587-.047 1.387-.607 2.54-1.627 3.467-1.04.927-2.24 1.36-3.614 1.28-1.386-.08-2.54-.62-3.467-1.626-.913-1.04-1.34-2.234-1.28-3.628.08-1.373.62-2.527 1.66-3.447.944-.869 2.07-1.286 3.355-1.286zm11.2.68l-2.386.926c.12.3.22.614.306.934l2.467-.654c-.106-.413-.24-.813-.386-1.207zM.786 7.71c-.147.386-.28.78-.387 1.186l2.467.66c.087-.32.194-.633.307-.94zm11.222.133c-.16 0-.314.013-.467.026v8.262h.007c.14.033.3.033.46.033.16 0 .32 0 .46-.033h.006V7.869c-.153-.013-.306-.026-.466-.026zm-1.407.233a4.03 4.03 0 00-.927.467v6.907c.007.007.013.007.02.014.28.187.593.347.907.453zm2.814.007v7.841a3.978 3.978 0 00.926-.467v-6.9c-.293-.2-.6-.36-.926-.474zm-4.668 1.32a4.031 4.031 0 00-.907 2.594c0 .726.16 1.393.494 1.967.12.226.253.433.413.633zm6.521.013v5.174c.16-.193.294-.406.414-.613.32-.587.473-1.254.473-1.967 0-.987-.287-1.854-.887-2.594zm-15.129.707c-.06.414-.106.827-.126 1.247l2.547.133c.02-.333.053-.66.106-.987zm23.71 0l-2.52.4c.047.327.087.654.107.987v.007l2.547-.134v-.006c-.02-.427-.067-.84-.134-1.254zm-2.407 2.367c-.026.34-.06.674-.113 1l2.527.394c.067-.414.107-.834.133-1.26zm-18.876.013l-2.547.134c.02.42.067.827.127 1.227l2.52-.4a7.306 7.306 0 01-.1-.96zm18.563 1.947c-.087.32-.193.634-.307.94l2.387.914c.147-.393.28-.793.394-1.207zm-18.256.014l-2.467.653c.107.407.233.8.38 1.187l2.387-.9a12.78 12.78 0 01-.3-.94zm.7 1.827L1.3 17.458c.186.366.393.726.62 1.073l2.147-1.38c-.174-.274-.34-.56-.494-.86zm16.843.006a8.34 8.34 0 01-.494.854l2.14 1.393c.227-.353.44-.72.634-1.093zm-15.77 1.64l-1.98 1.614c.267.327.547.64.84.934l1.814-1.8a9.07 9.07 0 01-.673-.747zm14.683.014c-.2.26-.42.507-.654.733l1.8 1.807c.3-.3.58-.613.847-.94zm-13.276 1.4l-1.613 1.98c.327.267.667.514 1.02.74l1.4-2.133c-.28-.187-.546-.38-.807-.587zm11.882 0a8.39 8.39 0 01-.78.574l1.38 2.146c.354-.233.694-.48 1.02-.74zM7.706 20.425l-1.16 2.273c.373.187.76.36 1.153.514l.9-2.387a9.83 9.83 0 01-.893-.4zm8.588 0c-.293.146-.594.28-.9.393l.9 2.394c.4-.154.78-.327 1.16-.514zm-6.734.706l-.667 2.467c.4.107.807.194 1.22.26l.407-2.52a9.09 9.09 0 01-.96-.207zm4.887 0c-.32.087-.647.154-.973.207l.4 2.52a12.52 12.52 0 001.226-.26zm-2.94.307l-.147 2.547c.42.02.84.02 1.267 0l-.134-2.547c-.333.02-.66.02-.986 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.787 15.292c-.336-.43-2.222-.204-3.069-.103-.257.031-.296-.193-.065-.356 1.504-1.056 3.968-.75 4.255-.397.288.357-.076 2.827-1.485 4.007-.217.18-.423.084-.327-.155.317-.792 1.027-2.566.69-2.996m-1.093 1.248c-2.627 1.94-6.437 2.97-9.717 2.97-4.597 0-8.737-1.7-11.87-4.528-.246-.222-.026-.525.27-.353 3.38 1.967 7.559 3.151 11.876 3.151a23.63 23.63 0 0 0 9.06-1.854c.444-.188.816.293.381.614m.482-5.038c-.761 0-1.346-.209-1.755-.626-.409-.418-.613-1.017-.613-1.797 0-.799.209-1.425.627-1.88.418-.454.998-.682 1.741-.682.572 0 1.019.138 1.341.415.323.276.484.645.484 1.105 0 .461-.174.81-.52 1.046-.348.237-.86.355-1.535.355-.35 0-.654-.034-.912-.101.037.411.161.706.373.884.212.178.533.268.963.268.172 0 .34-.011.502-.033a6.208 6.208 0 0 0 .733-.157.304.304 0 0 1 .046-.004c.104 0 .156.07.156.212v.424c0 .098-.013.167-.04.207a.341.341 0 0 1-.162.106 3.954 3.954 0 0 1-1.429.258m-.304-2.893c.314 0 .541-.048.682-.143.142-.095.212-.241.212-.438 0-.387-.23-.58-.69-.58-.59 0-.931.362-1.024 1.087.246.05.52.074.82.074m-9.84 2.755c-.08 0-.139-.018-.176-.055-.036-.037-.055-.096-.055-.175V6.886c0-.086.019-.146.055-.18.037-.034.096-.05.176-.05h.663c.141 0 .227.067.258.202l.074.249c.325-.215.619-.367.88-.456.26-.09.53-.134.806-.134.553 0 .943.197 1.17.59a3.77 3.77 0 0 1 .885-.452c.276-.092.562-.138.857-.138.43 0 .763.12 1 .36.236.239.354.574.354 1.004v3.253c0 .08-.017.138-.05.175-.034.037-.094.055-.18.055h-.885c-.08 0-.138-.018-.175-.055-.037-.037-.055-.096-.055-.175V8.176c0-.418-.188-.627-.562-.627-.332 0-.667.08-1.005.24v3.345c0 .08-.017.138-.05.175-.034.037-.094.055-.18.055h-.884c-.08 0-.139-.018-.176-.055-.036-.037-.055-.096-.055-.175V8.176c0-.418-.187-.627-.562-.627-.344 0-.682.083-1.013.249v3.336c0 .08-.017.138-.051.175-.034.037-.094.055-.18.055zM9.987 5.927c-.234 0-.42-.064-.562-.193-.142-.129-.212-.304-.212-.525 0-.221.07-.397.212-.526.141-.129.328-.193.562-.193.233 0 .42.064.562.193a.676.676 0 0 1 .212.526c0 .22-.07.396-.212.525-.141.129-.329.193-.562.193m-.443 5.437c-.08 0-.138-.019-.175-.055-.037-.037-.055-.096-.055-.176V6.886c0-.086.018-.146.055-.18.037-.034.096-.05.175-.05h.885c.086 0 .146.016.18.05s.05.094.05.18v4.247c0 .08-.017.139-.05.176-.034.036-.094.055-.18.055zm-3.681 0c-.08 0-.139-.018-.176-.055-.036-.037-.055-.096-.055-.175V6.886c0-.086.019-.146.055-.18.037-.034.096-.05.176-.05h.663c.141 0 .227.067.258.202l.12.497c.245-.27.477-.462.695-.575.219-.114.45-.17.696-.17h.13c.085 0 .147.016.183.05.037.034.056.094.056.18v.773c0 .08-.017.139-.051.176-.034.036-.094.055-.18.055a1.93 1.93 0 0 1-.166-.01 2.968 2.968 0 0 0-.258-.009c-.14 0-.313.02-.516.06-.202.04-.374.091-.515.152v3.097c0 .08-.018.138-.051.175-.034.037-.094.055-.18.055zM.344 13.262c-.08 0-.138-.017-.175-.05-.037-.034-.055-.095-.055-.18V6.886c0-.086.018-.146.055-.18.037-.034.095-.05.175-.05h.664c.14 0 .227.067.258.202l.064.24a2.03 2.03 0 0 1 .668-.424 2.13 2.13 0 0 1 .797-.157c.596 0 1.067.218 1.414.654.348.437.521 1.026.521 1.77 0 .51-.086.955-.258 1.336-.172.38-.405.674-.7.88a1.727 1.727 0 0 1-1.014.308c-.252 0-.491-.04-.719-.12a1.74 1.74 0 0 1-.58-.331v2.018c0 .085-.017.146-.05.18-.034.033-.095.05-.18.05zm2.018-2.81c.344 0 .597-.117.76-.35.163-.234.245-.603.245-1.106 0-.51-.08-.882-.24-1.115-.16-.234-.415-.35-.765-.35-.32 0-.62.083-.903.248v2.424c.27.166.571.249.903.249Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrimefaces (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.43 0 3.875 2.564l3.833.367L8.988 0Zm3.104 0L8.081 3.465 1.5 2.931l1.094 4.58 7.853 2.931h1.095V0Zm2.74 0v10.442h1.278l7.853-2.93 1.095-4.58-6.756.547L14.283 0Zm2.556 0 1.28 2.931 3.834-.367L17.387 0ZM2.778 8.244v6.229l4.383 3.663v-5.68l1.278-1.83-1.643.366-2.009-2.016zm18.261 0-2.009.732-2.009 2.016-1.643-.367 1.278 1.832v5.68l4.383-3.664zM9.17 10.625l-1.462 2.199v8.243l1.097 1.65L10.083 24h3.652l1.278-1.284 1.096-1.649v-8.243l-1.46-2.199-.914.55h-3.652zm-4.383 6.23v2.38l2.374 2.382V18.87zm14.243 0-2.374 2.015v2.747l2.374-2.381z\"},\"child\":[]}]})(props);\n};\nexport function SiPrimeng (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0 .784 3.984l1.711 14.772L12 24l9.506-5.244 1.71-14.772ZM8.354 4.212h1.674L9.19 6.124l-2.51-.24Zm2.032 0h1.315v6.812h-.717L5.843 9.112l-.717-2.988 4.308.35Zm1.794 0h1.314l.953 2.261 4.427-.349-.717 2.988-5.14 1.912h-.837Zm1.673 0h1.674L17.2 5.885l-2.51.239zM5.963 9.59l1.315.478 1.315 1.315 1.076-.24-.837 1.196v3.704l-2.87-2.39zm11.955 0v4.063l-2.87 2.39v-3.704l-.837-1.195 1.077.239 1.314-1.315zm-7.786 1.536.596.36h2.384l.597-.36.953 1.437v5.388l-.715 1.078-.835.838h-2.384l-.834-.838-.715-1.078v-5.388zm-2.854 4.08 1.554 1.315v1.793L7.278 16.76Zm9.324 0v1.554l-1.553 1.554V16.52z\"},\"child\":[]}]})(props);\n};\nexport function SiPrimereact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.01 0c-1.212 0-2.297.62-2.903 1.66l-1.52 2.608H4.303A3.287 3.287 0 0 0 1.43 5.911a3.226 3.226 0 0 0 0 3.285l1.642 2.819-1.646 2.825a3.202 3.202 0 0 0 0 3.261 3.265 3.265 0 0 0 2.851 1.631h2.925l.865.856L9.09 22.34A3.322 3.322 0 0 0 11.991 24c1.211 0 2.296-.62 2.902-1.66l.816-1.4 1.22-1.208h2.77a3.287 3.287 0 0 0 2.87-1.643c.6-1.028.6-2.256 0-3.285l-1.642-2.82 1.646-2.824a3.202 3.202 0 0 0 0-3.261 3.265 3.265 0 0 0-2.851-1.631H16.43L14.91 1.66A3.322 3.322 0 0 0 12.01 0Zm0 .719c.948 0 1.798.486 2.273 1.3l1.31 2.249H8.425l1.31-2.248A2.603 2.603 0 0 1 12.01.719Zm.33 4.265v7.74h.962l5.904-2.174.014-.057.87 1.492-1.33 2.282.171-3.173-1.51.543-1.51 1.494-1.237-.27.962 1.357v4.212l1.452-1.296-.708 1.216v.001l-.744.622v.654l-.412.708V14.49l-1.098-1.63-.687.407h-2.746l-.687-.407-1.098 1.63v6.101l-.412-.706v-.912l-1.036-.867-.729-1.25 1.765 1.574v-4.212l.961-1.358-1.236.271-1.51-1.494-1.511-.543.188 3.455-1.477-2.534.942-1.617.122-.208.088.36 5.904 2.174h.824V4.985Zm1.512 0h.412l.96 2.17 1.935-.2.237.406-2.452.192zm-3.985.001h.412L9.187 7.552l-2.556-.205.072-.124.001.001.163-.28 2.04.21Zm-5.565.001h2.867L5.831 7.282l-1.592-.127.49 2.018-1.237 2.124-1.433-2.46a2.52 2.52 0 0 1 0-2.567 2.568 2.568 0 0 1 2.243-1.284Zm12.547 0h2.873c.928 0 1.759.476 2.223 1.272a2.497 2.497 0 0 1 0 2.543l-1.437 2.466-1.042-1.789.563-2.323-1.833.143Zm3.659 7.718 1.433 2.46a2.52 2.52 0 0 1 0 2.566 2.567 2.567 0 0 1-2.243 1.283h-2.277V18zm-17.016.03 3.22 5.525v.754H4.277a2.545 2.545 0 0 1-2.223-1.27 2.497 2.497 0 0 1 0-2.544z\"},\"child\":[]}]})(props);\n};\nexport function SiPrimevideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.508c0-.043.01-.073.028-.09.018-.017.047-.025.086-.025h.329c.07 0 .112.034.127.101l.032.119c.091-.088.202-.159.33-.21a1.04 1.04 0 0 1 .396-.079c.294 0 .528.109.7.326.171.217.257.51.257.88 0 .254-.042.475-.127.665-.086.19-.201.335-.347.437a.85.85 0 0 1-.502.154c-.125 0-.243-.02-.355-.06a.857.857 0 0 1-.288-.164v1.003c0 .043-.008.073-.025.09-.017.016-.046.025-.09.025H.115c-.04 0-.068-.009-.086-.025-.019-.017-.028-.047-.028-.09zm1.113.32a.868.868 0 0 0-.447.124v1.206a.834.834 0 0 0 .447.124c.17 0 .296-.058.376-.174.081-.117.121-.3.121-.55 0-.254-.04-.439-.118-.555-.08-.116-.206-.174-.379-.174zm2.248-.087c.121-.134.236-.23.344-.286a.733.733 0 0 1 .345-.085h.063c.043 0 .073.009.092.025.018.017.027.047.027.09v.385c0 .04-.008.068-.025.087-.017.018-.046.027-.089.027a.923.923 0 0 1-.082-.004 1.369 1.369 0 0 0-.383.025c-.1.02-.186.045-.256.076v1.54c0 .04-.008.069-.025.087-.016.018-.046.028-.089.028h-.437c-.04 0-.069-.01-.087-.028-.018-.018-.028-.047-.028-.087V9.508c0-.043.01-.073.028-.09.018-.017.047-.025.087-.025h.328c.07 0 .112.034.128.1zm1.526-.71a.396.396 0 0 1-.278-.096.338.338 0 0 1-.105-.262c0-.11.035-.197.105-.26a.395.395 0 0 1 .278-.097c.116 0 .208.032.278.096.07.064.105.151.105.261a.34.34 0 0 1-.105.262.396.396 0 0 1-.278.096zm-.333.477c0-.043.01-.073.027-.09.019-.017.048-.025.087-.025h.438c.043 0 .072.008.089.025s.025.047.025.09v2.113c0 .04-.008.069-.025.087-.017.018-.046.028-.09.028h-.437c-.04 0-.068-.01-.087-.028-.018-.018-.027-.047-.027-.087zm1.837.11c.161-.107.306-.183.435-.227.13-.045.263-.067.4-.067.273 0 .466.098.579.294.155-.104.3-.18.438-.225.137-.046.278-.069.424-.069.213 0 .377.06.495.179.117.12.175.286.175.5v1.618c0 .04-.008.069-.025.087-.017.019-.046.027-.089.027h-.438c-.04 0-.068-.008-.086-.027-.018-.018-.028-.047-.028-.087V10.15c0-.208-.092-.312-.278-.312-.164 0-.33.04-.497.119v1.664c0 .04-.008.069-.025.087-.017.019-.046.027-.09.027h-.437c-.04 0-.068-.008-.086-.027-.019-.018-.028-.047-.028-.087V10.15c0-.208-.093-.312-.278-.312-.17 0-.337.04-.502.123v1.66c0 .04-.008.069-.025.087-.017.019-.046.027-.089.027h-.438c-.039 0-.068-.008-.086-.027-.018-.018-.027-.047-.027-.087V9.508c0-.043.009-.073.027-.09.018-.017.047-.025.086-.025h.329c.07 0 .112.034.128.101zm4.387 1.16a1.81 1.81 0 0 1-.451-.05c.018.204.08.35.185.44.105.088.263.132.476.132.085 0 .168-.005.249-.016a3.08 3.08 0 0 0 .362-.078.143.143 0 0 1 .023-.002c.052 0 .078.035.078.105v.211c0 .049-.007.083-.02.103a.169.169 0 0 1-.08.053 1.953 1.953 0 0 1-.708.128c-.377 0-.666-.103-.868-.312-.203-.207-.304-.505-.304-.893 0-.398.104-.71.31-.935.207-.227.494-.34.862-.34.283 0 .504.069.664.206a.69.69 0 0 1 .24.55c0 .23-.087.403-.258.52-.172.119-.425.177-.76.177zm.064-.99c-.292 0-.46.18-.506.54.122.025.257.037.406.037.155 0 .267-.024.337-.071.07-.047.105-.12.105-.218 0-.193-.114-.289-.342-.289zm2.948 1.946a.21.21 0 0 1-.075-.011.119.119 0 0 1-.05-.037.274.274 0 0 1-.038-.071l-.777-2.04a1.863 1.863 0 0 1-.023-.063.162.162 0 0 1-.009-.05c0-.047.03-.07.091-.07h.454c.049 0 .084.01.107.028.023.018.04.049.052.092l.468 1.622.477-1.622a.175.175 0 0 1 .052-.092c.023-.018.058-.027.107-.027h.44c.061 0 .091.022.091.068a.16.16 0 0 1-.009.05l-.022.065-.777 2.039a.274.274 0 0 1-.039.07.122.122 0 0 1-.047.038.207.207 0 0 1-.078.01zm2.02-2.703a.393.393 0 0 1-.277-.097.338.338 0 0 1-.105-.26c0-.11.035-.198.105-.262a.393.393 0 0 1 .277-.096c.115 0 .207.032.277.096.07.064.104.151.104.261 0 .11-.034.197-.104.261a.393.393 0 0 1-.277.097zm-.218 2.703c-.04 0-.068-.01-.086-.028-.019-.018-.028-.047-.028-.087V9.507c0-.043.01-.072.028-.09.018-.016.047-.024.086-.024h.436c.042 0 .072.008.089.025.016.017.024.046.024.09v2.111c0 .04-.008.07-.024.087-.017.019-.047.028-.09.028zm1.948.05a.869.869 0 0 1-.513-.153.97.97 0 0 1-.334-.426 1.6 1.6 0 0 1-.116-.63c0-.38.09-.682.268-.91a.856.856 0 0 1 .709-.341.98.98 0 0 1 .622.206V8.458c0-.043.01-.073.027-.09.018-.016.047-.025.087-.025h.436c.042 0 .071.009.088.025.017.017.025.047.025.09v3.161c0 .04-.008.07-.025.087-.017.019-.046.028-.088.028h-.364a.135.135 0 0 1-.084-.023.137.137 0 0 1-.043-.078l-.027-.105a.958.958 0 0 1-.668.256zm.218-.504a.762.762 0 0 0 .418-.128v-1.21a.872.872 0 0 0-.45-.114c-.16 0-.28.06-.358.18-.08.121-.118.304-.118.548 0 .245.041.426.124.546.084.119.212.178.384.178zm2.588-.51c-.169 0-.315-.016-.44-.05.018.201.078.345.18.432.103.087.257.13.465.13.083 0 .164-.005.242-.016a2.997 2.997 0 0 0 .354-.076.135.135 0 0 1 .022-.002c.05 0 .075.035.075.103v.207c0 .048-.007.082-.02.101a.165.165 0 0 1-.077.052 1.895 1.895 0 0 1-.69.126c-.367 0-.65-.102-.846-.306-.197-.204-.296-.496-.296-.876 0-.39.1-.695.302-.917.202-.222.482-.333.84-.333.276 0 .492.068.647.203a.678.678 0 0 1 .234.539c0 .225-.084.395-.251.51-.168.115-.415.173-.74.173zm.063-.97c-.285 0-.45.176-.494.53.119.024.25.036.396.036.15 0 .26-.024.329-.07.068-.046.102-.117.102-.213 0-.19-.111-.284-.333-.284zm2.442 2.003c-.36 0-.642-.11-.845-.328-.203-.218-.304-.523-.304-.914 0-.388.101-.691.304-.91.203-.218.485-.327.845-.327s.642.109.845.327c.203.219.304.522.304.91 0 .39-.101.696-.304.914-.203.218-.485.328-.845.328zm0-.514c.318 0 .477-.242.477-.728 0-.483-.16-.724-.477-.724-.318 0-.477.241-.477.724 0 .486.16.728.477.728zm-6.844 1.886c.405-.306.944-.408 1.39-.408.418 0 .756.09.828.185.15.2-.039 1.584-.775 2.244-.112.102-.22.047-.17-.087.166-.442.536-1.436.36-1.677-.175-.242-1.158-.115-1.6-.058-.068.008-.107-.02-.112-.061v-.023c.004-.036.03-.078.079-.115zm-10.184-.172a.105.105 0 0 1 .106-.091c.027 0 .057.009.089.028a11.778 11.778 0 0 0 6.194 1.772c1.52 0 3.19-.34 4.726-1.043.232-.105.426.164.2.346-1.371 1.09-3.359 1.67-5.07 1.67-2.397 0-4.557-.956-6.191-2.547a.173.173 0 0 1-.054-.097Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrimevue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.4101 0-2.565 2.565 3.8487.3664L8.8776.226l2.6637 6.8825v.0012l.3498.903.3843-.9291v-.0013L14.75 1.0898v-.0012l.2748-.6663 1.0993 2.5091 3.8487-.3664L17.4066 0H8.9763Zm2.3913 1.7191L8.071 3.455l-2.8863-.2213-3.7226-.3022 1.0993 4.5804L7.8437 9.476l.0143.0262 2.5579.9446h.2439l-.0012-.0048h.8827V8.7967Zm6.2817.1606L12.2754 8.679v1.7632h1.0053l-.0012.0048.2439-.0048h.0345l.0024-.0012h.0238l2.3758-.878.0107-.0179 5.468-2.0332 1.0993-4.5803-4.0415.3188-2.7494.2058zM2.7446 8.2447v6.2281l4.3984 3.6643v-5.6797l1.2837-1.8321-1.6501.3664-2.0154-2.0142Zm18.3275 0-2.0166.7328-2.0153 2.0142-1.6501-.3664 1.2837 1.8321v5.6797l4.3983-3.6643zM9.137 10.599l-.3045.4866.0095.0167-1.148 1.7215v8.2447l1.0992 1.6489L10.0756 24h3.6655l1.2825-1.2825 1.1005-1.649V12.824l-1.1492-1.7227.0095-.0155-.1797-.2391-.1475-.2213-.0131.0071-.025-.0333-.7911.4866h-3.6548zm-4.3757 6.2555v2.3818l2.3818 2.3818V18.87zm14.2943 0L16.6739 18.87v2.7482l2.3818-2.3818z\"},\"child\":[]}]})(props);\n};\nexport function SiPrintables (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.678 4.8 12 9.6v9.6l8.322-4.8V4.8L12 0ZM12 19.2l-8.322-4.8V24Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrisma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.8068 18.2848L13.5528.7565c-.207-.4382-.639-.7273-1.1286-.7541-.5023-.0293-.9523.213-1.2062.6253L2.266 15.1271c-.2773.4518-.2718 1.0091.0158 1.4555l4.3759 6.7786c.2608.4046.7127.6388 1.1823.6388.1332 0 .267-.0188.3987-.0577l12.7019-3.7568c.3891-.1151.7072-.3904.8737-.7553s.1633-.7828-.0075-1.1454zm-1.8481.7519L9.1814 22.2242c-.3292.0975-.6448-.1873-.5756-.5194l3.8501-18.4386c.072-.3448.5486-.3996.699-.0803l7.1288 15.138c.1344.2856-.019.6224-.325.7128z\"},\"child\":[]}]})(props);\n};\nexport function SiPrismic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.7 0C5.033 0 4.066.278 3.09.8A5.447 5.447 0 0 0 .825 3.07c-.522.977-.8 1.947-.8 4.622v.998c0 .199.078.388.218.529l1.77 1.774a.15.15 0 0 0 .257-.106V8.019c0-2.006.208-2.733.6-3.467A4.088 4.088 0 0 1 4.568 2.85c.731-.392 1.457-.6 3.459-.6h2.164c.199 0 .39-.08.53-.221l1.77-1.772A.15.15 0 0 0 12.387 0zm7.605 0c-.2 0-.392.08-.532.22l-1.769 1.775a.147.147 0 0 0-.044.104c0 .083.068.15.15.15h2.862c2.002 0 2.728.21 3.46.601a4.089 4.089 0 0 1 1.698 1.702c.39.734.599 1.461.599 3.467v2.17c0 .198.078.39.218.53l1.77 1.774a.15.15 0 0 0 .257-.106V7.692c0-2.675-.278-3.645-.8-4.623A5.446 5.446 0 0 0 20.91.801C19.935.278 18.968 0 16.3 0zM6.761 3.75a2.995 2.995 0 0 0-2.993 2.999v5.691a.75.75 0 0 0 .219.529l1.77 1.776a.149.149 0 0 0 .255-.106v-7.14a1.5 1.5 0 0 1 .097-.53c.072-.2.188-.385.348-.545l2.308-2.421a.15.15 0 0 0-.11-.253zm4.802 0c-.2 0-.39.08-.53.22L9.26 5.744A.151.151 0 0 0 9.366 6h7.124c.186 0 .364.034.528.097.2.072.386.188.546.347l2.413 2.313a.15.15 0 0 0 .255-.108v-1.9a2.995 2.995 0 0 0-2.993-3zm6.573 5.463a.15.15 0 0 0-.15.15v7.139a1.5 1.5 0 0 1-.095.53 1.49 1.49 0 0 1-.348.546l-2.308 2.42a.15.15 0 0 0 .108.255h1.896a2.997 2.997 0 0 0 2.993-3.002v-5.69a.752.752 0 0 0-.219-.53l-1.77-1.774a.15.15 0 0 0-.107-.044zm-17.96 2.25a.15.15 0 0 0-.15.15v4.695c0 2.674.278 3.645.8 4.623a5.442 5.442 0 0 0 2.263 2.267c.976.522 1.943.802 4.612.802h.994c.2 0 .39-.08.53-.22l1.771-1.775a.149.149 0 0 0-.106-.255H8.027c-2.002 0-2.728-.208-3.46-.6a4.088 4.088 0 0 1-1.698-1.702c-.39-.734-.599-1.461-.599-3.467v-2.172a.749.749 0 0 0-.22-.528L.282 11.507a.15.15 0 0 0-.106-.044zm21.703 1.5a.15.15 0 0 0-.15.15v2.868c0 2.006-.208 2.733-.6 3.467a4.088 4.088 0 0 1-1.698 1.702c-.731.392-1.457.6-3.459.6h-2.164a.749.749 0 0 0-.532.22l-1.769 1.773a.151.151 0 0 0-.043.107c0 .083.065.15.148.15H16.3c2.67 0 3.636-.28 4.612-.802a5.442 5.442 0 0 0 2.263-2.267c.522-.978.8-1.948.8-4.623v-.998a.749.749 0 0 0-.22-.529l-1.769-1.774a.15.15 0 0 0-.106-.044zm-17.96 2.238a.15.15 0 0 0-.151.15v1.898a2.997 2.997 0 0 0 2.993 3.001h5.676c.2 0 .39-.08.53-.22l1.773-1.775a.146.146 0 0 0 .044-.104.15.15 0 0 0-.15-.15H7.51a1.48 1.48 0 0 1-.53-.098 1.49 1.49 0 0 1-.546-.347l-2.413-2.313a.147.147 0 0 0-.103-.042z\"},\"child\":[]}]})(props);\n};\nexport function SiPrivatedivision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.384.248A.422.422 0 0 0 11.998 0a.427.427 0 0 0-.387.248L6.172 12.002l5.441 11.752a.428.428 0 0 0 .616.18.428.428 0 0 0 .157-.18l5.443-11.752L12.384.248Zm-.386 18.449-3.101-6.695 3.101-6.697 3.1 6.697-3.1 6.695Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrivateinternetaccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.8078 5.7639a.812.812 0 1 0-.812.812.8115.8115 0 0 0 .812-.812m3.196-.8115a.812.812 0 1 0 .8114.8115.812.812 0 0 0-.8115-.8115m-.8757 2.1535a1.686 1.686 0 0 1-2.2571 0 .2106.2106 0 0 0-.2855.3092 2.0645 2.0645 0 0 0 2.8298 0 .2108.2108 0 1 0-.2866-.3092M11.9473 0C7.9939 0 4.789 3.2048 4.789 7.1582V8.543c0 .0084.0016.0202.002.0293-.7826.1443-1.3781.8232-1.3888 1.6464a2.3927 2.3927 0 0 0-.33 1.2208v9.1777a2.4154 2.4154 0 0 0 1.7851 2.3281A1.7667 1.7667 0 0 0 6.4727 24h2.0058a1.7627 1.7627 0 0 0 1.5762-.9668h3.6816c.3009.5943.9101.9678 1.5762.9668h2.0078a1.7718 1.7718 0 0 0 1.5899-1c1.1652-.1914 2.02-1.2 2.0175-2.3809v-9.1777a2.4275 2.4275 0 0 0-.3144-1.1973v-.0098c-.001-.7739-.5211-1.423-1.2305-1.625V7.1582C19.3828 3.2048 16.1761 0 12.2227 0Zm.0312 2.5586h.2149c2.4754 0 4.4824 2.005 4.4824 4.4805V8.543H15.668a1.6666 1.6666 0 0 0-1.1739.4804H9.5273a1.675 1.675 0 0 0-1.1836-.4804h-.8476V7.039c0-2.4754 2.007-4.4804 4.4824-4.4804zm.0254 9.4922v.0039a1.9739 1.9739 0 0 1 1.1055 3.6035.3126.3126 0 0 0-.1328.2988l.4863 3.2969a.307.307 0 0 1-.0703.2461.3137.3137 0 0 1-.2344.1074h-2.3164a.3097.3097 0 0 1-.3047-.3535l.4844-3.2969a.2934.2934 0 0 0-.129-.2949 1.975 1.975 0 0 1 .8848-3.5976 2.176 2.176 0 0 1 .2266-.0137z\"},\"child\":[]}]})(props);\n};\nexport function SiProbot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .04a1.743 1.743 0 0 0-.537 3.401l-.631 2.579H2.456A2.456 2.456 0 0 0 0 8.476v13.029a2.456 2.456 0 0 0 2.456 2.456h19.088c1.356 0 2.456-1.1 2.456-2.456V8.476c0-1.356-1.1-2.456-2.456-2.456h-8.403l-.616-2.575A1.743 1.743 0 0 0 11.999.04zM3.933 7.881h16.136c1.101 0 1.994.893 1.994 1.994v10.117a1.994 1.994 0 0 1-1.994 1.994H3.933a1.994 1.994 0 0 1-1.994-1.994V9.875c0-1.101.893-1.994 1.994-1.994zm3.254 2.312a4.575 4.575 0 1 0 0 9.15 4.575 4.575 0 0 0 0-9.15zm9.743 0a4.575 4.575 0 1 0 0 9.15 4.575 4.575 0 0 0 0-9.15zm-9.743 1.07a3.506 3.506 0 1 1 0 7.011 3.506 3.506 0 0 1 0-7.011zm9.743 0a3.506 3.506 0 1 1 0 7.011 3.506 3.506 0 0 1 0-7.011zm-9.743 1.663a1.843 1.843 0 1 0 0 3.686 1.843 1.843 0 0 0 0-3.686zm9.743 0a1.843 1.843 0 1 0 0 3.686 1.843 1.843 0 0 0 0-3.686zm-6.927 6.5v2.159h.706v-2.159h-.706zm1.077 0v2.159h.705v-2.159h-.705zm1.076 0v2.159h.706v-2.159h-.706zm1.077 0v2.159h.706v-2.159h-.706zm1.077.03v2.1a1.08 1.08 0 0 0 .829-1.049v-.001c0-.51-.354-.937-.829-1.05zm-4.678.028a1.08 1.08 0 0 0-.731 1.021v.001c0 .474.306.876.731 1.021v-2.043z\"},\"child\":[]}]})(props);\n};\nexport function SiProcessingfoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 0a12 12 0 100 24A12 12 0 0012 0zm1.183 5.255h.048c3.273 0 5.247 1.48 5.247 4.103 0 2.727-1.974 4.536-5.295 4.669v-1.742c1.837-.11 2.801-1.061 2.801-2.744 0-1.498-.957-2.442-2.8-2.516zm-1.773.026l.005 11.896c.779.052 1.583.18 2.26.337l-.269 1.324H6.788v-1.324a14.96 14.96 0 012.26-.337V6.993a14.71 14.71 0 01-2.26-.337V5.33h2.26c.64 0 1.469-.028 2.361-.05z\"},\"child\":[]}]})(props);\n};\nexport function SiProcesswire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.939 5.27C21.211 4.183 20 2.941 18.784 2.137 16.258.407 13.332-.207 10.744.061c-2.699.291-5.01 1.308-6.91 3.004C2.074 4.637.912 6.559.4 8.392c-.518 1.833-.449 3.53-.264 4.808.195 1.297.841 2.929.841 2.929.132.313.315.44.41.493.472.258 1.247.031 1.842-.637.03-.041.046-.098.03-.146-.166-.639-.226-1.12-.285-1.492-.135-.736-.195-1.969-.105-3.109.045-.617.165-1.277.375-1.969.406-1.367 1.262-2.794 2.6-3.98 1.441-1.277 3.289-2.066 5.046-2.27.616-.074 1.788-.145 3.199.203.301.075 1.593.412 2.975 1.348 1.006.684 1.816 1.528 2.374 2.363.568.797 1.185 2.141 1.366 3.125.256 1.12.256 2.307.074 3.463-.225 1.158-.631 2.284-1.262 3.275-.435.768-1.337 1.783-2.403 2.545-.961.676-2.058 1.164-3.184 1.434-.57.135-1.142.221-1.728.24-.521.016-1.212 0-1.697-.082-.721-.115-.871-.299-1.036-.549 0 0-.115-.18-.147-.662.011-4.405.009-3.229.009-5.516 0-.646-.021-1.232-.015-1.764.03-.873.104-1.473.728-2.123.451-.479 1.082-.768 1.777-.768.211 0 .938.01 1.577.541.685.572.8 1.354.827 1.563.156 1.223-.652 2.134-.962 2.365-.384.288-.729.428-.962.51-.496.166-1.041.214-1.531.182-.075-.005-.143.044-.158.119l-.165.856c-.161.65.2.888.41.972.671.207 1.266.293 1.971.24 1.081-.076 2.147-.502 3.052-1.346.77-.732 1.209-1.635 1.359-2.645.15-1.121-.045-2.328-.556-3.35-.562-1.127-1.532-2.068-2.81-2.583-1.291-.508-2.318-.526-3.642-.188l-.015.005c-.86.296-1.596.661-2.362 1.452-.525.546-.955 1.207-1.217 1.953-.26.752-.33 1.313-.342 2.185-.016.646.015 1.246.015 1.808v3.701c0 1.184-.04 1.389 0 1.998.022.404.078.861.255 1.352.182.541.564 1.096.826 1.352.367.391.834.705 1.293.9 1.051.467 2.478.541 3.635.496.766-.029 1.536-.135 2.291-.314 1.51-.359 2.96-1.012 4.235-1.918 1.367-.963 2.555-2.277 3.211-3.393.841-1.326 1.385-2.814 1.668-4.343.255-1.532.243-3.103-.099-4.612-.27-1.4-.991-2.936-1.823-4.176l.038.037z\"},\"child\":[]}]})(props);\n};\nexport function SiProducthunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.604 8.4h-3.405V12h3.405c.995 0 1.801-.806 1.801-1.801 0-.993-.805-1.799-1.801-1.799zM12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.372 12-12S18.628 0 12 0zm1.604 14.4h-3.405V18H7.801V6h5.804c2.319 0 4.2 1.88 4.2 4.199 0 2.321-1.881 4.201-4.201 4.201z\"},\"child\":[]}]})(props);\n};\nexport function SiProgate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.056 24a17.14 17.14 0 01-3.457-.698c-1.244-.364-2.899-1-2.913-2.319 0-.946.54-1.755 1.675-2.477a15.827 15.827 0 011.6-.844 39.6 39.6 0 012.2-.928V4.98l-4.41-.476v12.652a.848.848 0 01-.895.846.85.85 0 01-.904-.846V3.496a.906.906 0 01.904-.903.8.8 0 01.096.014l6.198.67a.902.902 0 01.8.9v11.826a61.194 61.194 0 002.399-1.03c2.27-1.036 3.799-2.091 4.668-3.237 1.056-1.374 1.218-3.075 1.168-4.259a6.264 6.264 0 00-1.254-3.515 5.498 5.498 0 00-2.095-1.725 6.208 6.208 0 00-1.663-.486c-.6-.082-.896-.51-.864-.938.032-.427.384-.75.888-.8.863-.071 1.503.147 2.375.536a7.76 7.76 0 012.86 2.32 8.167 8.167 0 011.6 4.522 8.967 8.967 0 01-.485 3.481 7.36 7.36 0 01-1.088 1.966c-1.584 2.065-4.39 3.34-5.31 3.764-.868.4-2.8 1.2-3.18 1.352V23.1a.908.908 0 01-.31.682.918.918 0 01-.567.218zm-.896-5.318c-.552.2-1.4.512-1.72.66-.32.147-1.215.565-1.61.91-.1.085-.417.385-.339.629.078.244.446.374 1.904.766.518.14 1.125.274 1.765.4z\"},\"child\":[]}]})(props);\n};\nexport function SiProgress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.235 6.825v11.997a.924.924 0 0 1-.419.725l-.393.235c-1.961 1.135-3.687 2.134-5.431 3.14V9.948L5.759 3.454C7.703 2.338 9.64 1.211 11.586.1a.927.927 0 0 1 .837 0l10.81 6.243v.482zm-8.741 4.562A9631.706 9631.706 0 0 0 6.8 6.943a.94.94 0 0 0-.837 0c-1.733 1.001-3.467 2-5.199 3.004l8.113 4.684V24c1.732-.999 3.46-2.006 5.197-2.995a.927.927 0 0 0 .419-.724zM.765 19.317l5.613 3.241V16.07Z\"},\"child\":[]}]})(props);\n};\nexport function SiPrometheus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12s12-5.373 12-12c0-6.628-5.373-12-12-12zm0 22.46c-1.885 0-3.414-1.26-3.414-2.814h6.828c0 1.553-1.528 2.813-3.414 2.813zm5.64-3.745H6.36v-2.046h11.28v2.046zm-.04-3.098H6.391c-.037-.043-.075-.086-.111-.13-1.155-1.401-1.427-2.133-1.69-2.879-.005-.025 1.4.287 2.395.511 0 0 .513.119 1.262.255-.72-.843-1.147-1.915-1.147-3.01 0-2.406 1.845-4.508 1.18-6.207.648.053 1.34 1.367 1.387 3.422.689-.951.977-2.69.977-3.755 0-1.103.727-2.385 1.454-2.429-.648 1.069.168 1.984.894 4.256.272.854.237 2.29.447 3.201.07-1.892.395-4.652 1.595-5.605-.529 1.2.079 2.702.494 3.424.671 1.164 1.078 2.047 1.078 3.716a4.642 4.642 0 01-1.11 2.996c.792-.149 1.34-.283 1.34-.283l2.573-.502s-.374 1.538-1.81 3.019z\"},\"child\":[]}]})(props);\n};\nexport function SiPronounsdotpage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.991 5.14c.058-.102.01-.185-.108-.185l-2.051.001a.414.414 0 0 0-.321.184l-5.027 8.503c-.702 1.156-1.681 1.411-2.622 1.297-1.615-.196-2.483-1.381-2.483-2.96a2.88 2.88 0 0 1 2.876-2.876h3.192c.117 0 .26-.083.319-.184l1.15-2.01c.058-.101.01-.184-.107-.184H5.254A5.26 5.26 0 0 0 0 11.98c0 1.4.547 2.91 1.542 3.897.98.972 2.29 1.328 3.688 1.357.789.009 2.956-.009 3.972-1.817a18678.91 18678.91 0 0 1 5.79-10.277Zm7.467 2.984c-.98-.972-2.29-1.329-3.688-1.357-.789-.01-2.956.009-3.972 1.816-1.138 2.024-5.79 10.277-5.79 10.277-.057.102-.008.185.109.185l2.051-.001a.414.414 0 0 0 .321-.184l5.027-8.503c.702-1.156 1.681-1.411 2.622-1.297 1.615.196 2.483 1.381 2.483 2.96a2.88 2.88 0 0 1-2.876 2.876h-3.192a.406.406 0 0 0-.319.184l-1.15 2.01c-.058.101-.01.184.107.184h4.555A5.26 5.26 0 0 0 24 12.02c0-1.4-.547-2.91-1.542-3.896z\"},\"child\":[]}]})(props);\n};\nexport function SiProsieben (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.24 0H23.68V6.64H.24M23.76 7.92V24H.24s2.88-7.84 10.48-12.48c7.12-4.4 13.04-3.6 13.04-3.6Z\"},\"child\":[]}]})(props);\n};\nexport function SiProteus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.4051 4.799c0-.6655.5397-1.2051 1.2052-1.2051s1.2052.5396 1.2052 1.2052c0 .0037-.002.0068-.0021.0105.6943.2851 1.4968.776 2.1966 1.2557.404.277.8184.5853 1.2354.9068-.1488.0862-.2953.1743-.426.2674l-.0673.048c-.34-.2577-.6797-.5123-1.0096-.7385C6.79 5.8961 6.123 5.5426 5.662 5.3552c-.1757.3306-.4955.5571-.88.6143.154.58.5529 1.366 1.1504 2.2896l.7181 1.0453c.1443.199.3067.4082.4636.6143.1975.2596.4063.525.6218.7934.0459.057.0926.1143.1393.1716.1894.2332.3847.4688.5868.7068.116.1362.2366.2737.3566.4111.1533.1763.3054.352.4651.5298.299.3319.6053.6654.9244.9997.2949.3091.5976.6089.9002.9073-.2669-.0057-.534-.0105-.7977-.0213a42.315 42.315 0 0 1-.4966-.51c-.4947-.5184-.9558-1.0318-1.4002-1.5404a44.4174 44.4174 0 0 1-.2897-.3354c-.4261-.4974-.8328-.9881-1.2026-1.463l-.0016-.002c-.3052-.392-.5937-.776-.8567-1.1459l-.0006.0001-.0077-.0113c-.003-.0044-.0068-.009-.0099-.0133l.0008-.0001-.1281-.1904-.1413-.2097-.3963-.5883c-.633-.9963-1.048-1.849-1.202-2.4905-.4506-.1744-.773-.6056-.773-1.1178zm15.292 13.2427c-.3277-.8145-.9133-1.8048-1.6373-2.8438-.1986.0293-.4067.0528-.6108.0789.7763 1.1025 1.3413 2.0677 1.6562 2.7927-.4707.152-.8131.5726-.832 1.0893-.6327-.267-1.4611-.762-2.418-1.468-.737-.5438-1.5182-1.1992-2.3035-1.9031a54.784 54.784 0 0 1-.4126.3664c2.0873 1.8717 4.0796 3.26 5.3385 3.6912.215.3298.5693.5608.9923.5608.6656 0 1.2052-.5395 1.2052-1.2051 0-.5851-.4252-1.0499-.978-1.1593zm-6.1818-2.4915a10.5432 10.5432 0 0 0-.2286.006c-.1007.0037-.2013.008-.3021.008-.0975 0-.1918-.0059-.289-.0065-.1271.1114-.2496.2096-.3755.3171a36.746 36.746 0 0 1-.8212.684l.0013.0003c-1.5544 1.251-2.9273 2.1365-3.842 2.5257 0-.0016.001-.0028.001-.0044 0-.5293-.3466-.9657-.8212-1.1276.2694-.6066.6953-1.3508 1.2896-2.2061.0993-.1429.2175-.294.3234-.4398-.2083-.0241-.4229-.0452-.6245-.0723-.7207 1.0148-1.2719 1.9393-1.5923 2.685-.5565.1066-.9854.5732-.9854 1.1608 0 .6656.5396 1.2052 1.2052 1.2052.3973 0 .7328-.205.9523-.5015 1.5528-.4942 4.027-2.3594 6.109-4.2339zm-5.664-4.6696a5.1697 5.1697 0 0 0-.0566.7578c0 .9375.2618 1.8091.6994 2.5662.062.0074.119.0169.1815.024.7378.0831 1.5005.1402 2.2768.179-.1066-.1088-.2135-.217-.3192-.3278-1.0172-1.066-1.9556-2.1502-2.7818-3.1992zm8.1693-3.3744c.2686.2001.5185.424.7431.6717.1871.2063.3567.4285.5087.6631.1858.2867.3327.5988.4595.9209-.6217.835-1.3012 1.6632-1.999 2.4467-.121.1357-.2404.2732-.3622.4057a30.224 30.224 0 0 1-.7613.8 40.0852 40.0852 0 0 1-.8573.8379l-.2022.1924c-.189.003-.3759.017-.5653.017-.1727 0-.3388-.0114-.5104-.0135l-.1904-.1877c-.3007-.2967-.6017-.5946-.8949-.9019a45.099 45.099 0 0 1-.7263-.783 43.538 43.538 0 0 1-.3657-.4083c-.7586-.8544-1.4649-1.7107-2.0874-2.5373.1081-.2542.23-.5012.3758-.7326a5.1611 5.1611 0 0 1 .5092-.6784c.2586-.2911.5522-.5493.87-.7758a5.1451 5.1451 0 0 1 .493-.3094c.7384-.4093 1.5851-.6474 2.4894-.6474.9462 0 1.8328.2552 2.5948.7003a5.166 5.166 0 0 1 .479.3196m-.9201 6.8916a33.7491 33.7491 0 0 0 2.1308-.1939c.0635-.0079.1213-.0194.1843-.0276.4277-.7507.6833-1.612.6833-2.5379 0-.1966-.021-.3877-.0425-.5786-.8503 1.0858-1.7729 2.1483-2.7046 3.0896-.0805.0812-.167.1652-.2513.2484zm-1.4447 1.1489c.3586.3226.7121.6338 1.0523.918.6598-.2425 1.2618-.604 1.7643-1.0768-.9283.0911-1.8717.1395-2.8166.1588zm-1.2003 1.1964c.1639.0159.3231.0475.4913.0475.1633 0 .3177-.0316.4771-.0465-.1558-.1355-.3154-.2854-.4727-.4263-.153.1332-.318.275-.4957.4253zm-3.0121-1.335c.5032.468 1.1047.825 1.763 1.0638.352-.2805.7146-.5802 1.09-.9038l-.0005-.0099.0067-.0094c-.9745-.017-1.9343-.0598-2.8592-.1407zM15.17 7.3057l.0569.0423c1.2568-.9717 2.3588-1.6635 3.1438-1.9497.1728.3392.4982.5716.8884.6309-.148.4568-.4793 1.1684-1.1632 2.2364l-.6367.9297c-.1963.2796-.409.5625-.6213.8451-.4366.5809-.9059 1.1628-1.391 1.7327-.0595.0695-.12.1378-.18.207-.48.555-.9742 1.0994-1.4798 1.6102-.287.29-.575.5691-.8627.843.2702-.0072.5407-.0111.8094-.0244a36.253 36.253 0 0 0 .4404-.4354c.46-.4647.9096-.9581 1.3514-1.4604a37.509 37.509 0 0 0 .2472-.2859c.4272-.496.8412-.9985 1.2334-1.5061l.0014-.0017c.3653-.4731.718-.946 1.0405-1.4123l.6296-.9325c.501-.795.9901-1.6879 1.19-2.3977.4501-.1748.7715-.6058.7715-1.1176 0-.6656-.5395-1.2052-1.2051-1.2052-.662 0-1.197.5342-1.203 1.1947-.9004.3423-2.1135 1.107-3.4811 2.1767.1372.0839.2742.1716.42.2802zm.941.9155c.1281.1564.2589.3104.3712.4838l.122.188c.233.0324.454.075.6828.1113l.3803-.5553c-.5083-.0847-1.0258-.164-1.5563-.2278zm-8.3719.056c-.453.0637-.8929.1472-1.3344.2278l.3714.5407c.1601-.028.3143-.0627.476-.0885l.1216-.1932c.1083-.1719.2387-.328.3654-.4867zm16.239 3.1232c-.2514-1.2987-2.5312-2.1148-4.3994-2.5707-.2506-.0612-.5305-.1094-.7955-.1646l-.3626.5371c.4351.0867.864.1775 1.2647.2824 2.2145.5793 3.5636 1.3194 3.7012 2.0304.039.2012-.031.407-.214.6288-.5461.6619-1.9944 1.3135-3.9736 1.7878-.8763.21-1.8361.3783-2.8395.5058-.0321.0051-.064.0104-.0973.0146a34.0673 34.0673 0 0 1-2.1084.1935c-.227.0139-.4584.0114-.687.021-.2716.0113-.191.0197-.464.0248h-.3523c-.2264.0247-.5233.0203-.7462.0203-1.5226 0-2.9098-.0829-4.2566-.2347-3.2265-.3637-5.76-1.1231-6.695-2.088-.2397-.247-.3573-.4964-.3496-.741.0116-.3722.7711-1.2159 3.5442-2.0175.4803-.1388.9839-.2633 1.5028-.375l-.3534-.5246c-.4477.1006-.8982.1997-1.3167.3207C2.5106 9.4763.0398 10.376.0007 11.629c-.013.4138.1617.8106.5191 1.1795 1.0945 1.1291 3.9797 1.979 7.6472 2.3296 1.2005.1148 2.526.175 3.8589.175.0139 0-.014 0 0 0 .2593-.0014.5138-.0146.7716-.0206 1.0077-.023 2.0027-.0758 2.951-.1772.184-.0197.3583-.0469.539-.0693.1413-.0174.2813-.0358.4214-.0542 3.3329-.4575 6.0209-1.3645 6.9284-2.4645.3004-.3642.415-.7433.3408-1.127z\"},\"child\":[]}]})(props);\n};\nexport function SiProtocolsdotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.55.927c-.723.046-1.266.47-1.614 1.261a4.653 4.653 0 0 0-.215.6 11.007 11.007 0 0 0-.42 3.585c.052 1.007-.187 1.888-.6 2.797C.858 11.024.27 12.967.03 15.004c-.136 1.164.169 2.15 1.13 2.871.41.308.834.603 1.28.855 1.24.702 2.573 1.192 3.924 1.634a.825.825 0 0 1 .297.162c1.12 1.033 2.423 1.75 3.846 2.276 1.011.373 2.005.364 3.016-.01 1.057-.391 2.089-.853 2.944-1.576.76-.642 1.612-1.011 2.527-1.334 1.307-.462 2.566-1.037 3.69-1.872.934-.695 1.413-1.596 1.298-2.778-.023-.238-.04-.476-.076-.712-.3-1.942-.888-3.802-1.705-5.58-.356-.776-.658-1.524-.441-2.403-.075-.856-.128-1.726-.233-2.588-.083-.687-.24-1.365-.574-1.983-.442-.82-1.126-1.164-2.037-1-.32.057-.642.144-.94.273-1.61.698-2.904 1.8-3.95 3.198-.1.137-.194.184-.368.182a190.382 190.382 0 0 0-3.329-.002c-.144 0-.24-.014-.334-.144-.623-.877-1.389-1.615-2.256-2.247-.735-.536-1.51-1-2.406-1.22a2.601 2.601 0 0 0-.783-.08zm.096 1.152c.087-.002.183.012.292.04a4.5 4.5 0 0 1 .996.357c1.43.747 2.596 1.793 3.443 3.174.088.144.178.186.338.178.904-.042 1.806-.097 2.71-.103.62-.004 1.24.06 1.86.103.164.012.25-.04.337-.182.855-1.387 2.024-2.44 3.469-3.182a4.55 4.55 0 0 1 .973-.348c.43-.107.702.006.863.418.188.484.352.99.43 1.5.123.816.166 1.643.226 2.282-.037.648-.07 1.108-.086 1.569a.68.68 0 0 0 .08.322 21.82 21.82 0 0 1 2.174 6.377c.073.416.077.85.064 1.273-.013.481-.324.812-.673 1.1-.873.72-1.888 1.188-2.926 1.602-.714.284-1.452.51-2.174.775-.15.055-.3.149-.418.259-1.224 1.13-2.625 1.94-4.26 2.285-.37.078-.805.014-1.175-.098-1.473-.445-2.788-1.18-3.892-2.27a.692.692 0 0 0-.272-.149c-1.35-.43-2.684-.905-3.931-1.588-.35-.19-.676-.42-1.014-.632-.81-.51-1.026-1.267-.893-2.166.355-2.387 1.13-4.632 2.235-6.772a.745.745 0 0 0 .07-.375c-.106-1.522-.064-3.034.293-4.525.064-.266.162-.529.281-.775.146-.299.32-.442.58-.449zm9.222 6.72c-.354.04-.54.264-.72.72-.031.084-.06.168-.081.253-.197.782-.122 1.563-.025 2.352.108.89.498 1.492 1.367 1.832 1.379.54 2.11 1.645 2.442 3.047.08.343.148.688.228 1.068.39-.138.764-.265 1.135-.404.998-.373 1.972-.794 2.863-1.39.15-.1.224-.212.195-.393-.091-.586-.142-1.18-.273-1.758-.409-1.806-1.407-3.178-3.08-4.018-.61-.305-1.222-.614-1.861-.845a9.586 9.586 0 0 0-1.774-.444 1.586 1.586 0 0 0-.416-.02zm-4.208.01a2.26 2.26 0 0 0-.264.036c-1.57.32-2.996.965-4.298 1.892-.489.348-.91.766-1.225 1.282-.727 1.193-1.073 2.5-1.152 3.886-.01.178.053.288.199.364.722.375 1.433.777 2.172 1.117.583.268 1.2.462 1.824.697.083-.39.15-.737.23-1.08.331-1.402 1.073-2.48 2.436-3.06.05-.02.093-.052.143-.069.723-.249 1.07-.77 1.185-1.516.143-.919.26-1.829-.03-2.736-.22-.7-.494-.872-1.22-.812zm2.594 7.503c-.96.045-1.653.137-2.274.505-.426.254-.559.555-.396.98.366.951 1 1.69 1.89 2.19.33.184.685.193 1.02.01.919-.498 1.555-1.252 1.929-2.22.14-.365.044-.626-.274-.864-.147-.11-.312-.219-.486-.266-.544-.146-1.097-.263-1.409-.335z\"},\"child\":[]}]})(props);\n};\nexport function SiProtodotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 11.997c-.728 0-1.316-.59-1.316-1.317S11.272 9.363 12 9.363s1.316.589 1.316 1.316-.588 1.318-1.316 1.318zm2.916-.021c0-2.828-1.109-5.397-2.916-7.298-1.807 1.9-2.916 4.47-2.916 7.298 0 1.297.234 2.535.66 3.683-.618.9-1.074 2.16-1.275 3.616.639-.767 1.422-1.306 2.292-1.591.363.555.78 1.096 1.239 1.574.461-.494.876-1.02 1.239-1.59.87.271 1.653.826 2.29 1.576-.199-1.456-.655-2.716-1.275-3.615.427-1.155.66-2.385.66-3.69l.002.037zM12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-22C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0z\"},\"child\":[]}]})(props);\n};\nexport function SiProton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.474 17.75V24h4.401v-5.979c0-.582.232-1.14.645-1.551a2.204 2.204 0 0 1 1.556-.643h4.513a7.955 7.955 0 0 0 5.612-2.318 7.907 7.907 0 0 0 2.325-5.595 7.91 7.91 0 0 0-2.325-5.596A7.958 7.958 0 0 0 13.587 0H2.474v7.812h4.401V4.129h6.416c.995 0 1.951.394 2.656 1.097.704.7 1.1 1.653 1.101 2.646a3.742 3.742 0 0 1-1.101 2.648 3.766 3.766 0 0 1-2.656 1.097H8.627a6.158 6.158 0 0 0-4.352 1.795 6.133 6.133 0 0 0-1.801 4.338Z\"},\"child\":[]}]})(props);\n};\nexport function SiProtoncalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.172 14.818V21.85h-4.276v-1.147c0-.584.21-1.151.592-1.596l3.684-4.288zm-4.93 5.884c0-.741.266-1.46.75-2.022l4.673-5.32c.522-.591 1.524-.92 2.262-.92h.967V7.007a1.919 1.919 0 0 0-1.928-1.914H0v14.295c0 1.36 1.11 2.462 2.482 2.462h7.76v-1.147zM18.8 5.197c.483.485.749 1.128.747 1.81v5.434H24V4.613c0-1.36-1.11-2.462-2.482-2.462H2.482A2.473 2.473 0 0 0 .006 4.438h16.96c.694 0 1.345.27 1.834.76zm.34 14.742c.817 0 1.45-.451 1.45-1.136a.953.953 0 0 0-.79-.971v-.013a.962.962 0 0 0 .485-.346.944.944 0 0 0 .185-.565c0-.632-.549-1.081-1.343-1.081-.99 0-1.384.712-1.415 1.21h.843a.54.54 0 0 1 .577-.495c.318 0 .549.196.549.48 0 .283-.213.473-.732.473h-.3v.713h.346c.536 0 .807.176.807.492s-.26.532-.655.532a.673.673 0 0 1-.686-.51h-.873c.063.733.683 1.222 1.551 1.217zm2-3.39v.806l.79-.532v3.06h.82v-3.988h-.635l-.974.655z\"},\"child\":[]}]})(props);\n};\nexport function SiProtondb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.744 0C.781 0 0 .781 0 1.744v20.512C0 23.219.781 24 1.744 24h20.512c.963 0 1.744-.782 1.744-1.74V1.744C24 .781 23.218 0 22.26 0zm14.729 2.205v.004c.37 0 .704.08.996.25 1.26.728 1.55 2.996.904 5.846 2.8.855 4.625 2.238 4.625 3.695 0 1.457-1.813 2.836-4.6 3.691.65 2.84.367 5.102-.894 5.83a2.03 2.03 0 01-1.012.25c-1.232 0-2.846-.869-4.478-2.384-1.633 1.525-3.245 2.404-4.477 2.404-.376 0-.712-.079-1.006-.25-1.26-.728-1.55-2.996-.904-5.846-2.8-.855-4.625-2.238-4.625-3.695 0-1.452 1.814-2.83 4.605-3.69-.65-2.84-.366-5.103.895-5.831a2.03 2.03 0 011.012-.25V3.23c-.206 0-.377.035-.514.118-.606.352-.866 1.687-.656 3.398.054.416.133.85.236 1.299.875-.22 1.838-.385 2.85-.492a21.401 21.401 0 011.851-2.24C9.82 3.962 8.446 3.227 7.518 3.227V2.225c1.231 0 2.846.87 4.478 2.384 1.633-1.525 3.245-2.404 4.477-2.404zm-.006 1.002c-.929.003-2.3.745-3.758 2.102.635.66 1.261 1.413 1.867 2.244 1.007.107 1.964.273 2.844.488.098-.455.181-.9.23-1.32.206-1.711-.059-3.04-.67-3.393a1.037 1.037 0 00-.513-.117zm-4.483 2.81c-.41.43-.824.91-1.23 1.438a26.105 26.105 0 012.478 0 17.822 17.822 0 00-1.248-1.437zM12 8.428c-.684 0-1.36.03-2.03.089a24.514 24.514 0 00-1.08 1.71c-.337.587-.648 1.188-.927 1.79.283.6.591 1.196.933 1.783.352.601.713 1.172 1.084 1.705.665.054 1.34.084 2.02.084.684 0 1.36-.03 2.03-.088a24.51 24.51 0 001.08-1.71c.332-.592.644-1.194.927-1.79a23.03 23.03 0 00-.933-1.785 25.587 25.587 0 00-1.086-1.705A25.016 25.016 0 0012 8.428zm-3.334.23c-.64.092-1.256.214-1.848.35.171.582.377 1.185.621 1.786a25.469 25.469 0 011.227-2.137zm6.658 0a23.32 23.32 0 011.23 2.127c.235-.597.442-1.194.608-1.77a18.82 18.82 0 00-1.838-.358zm2.81.62a22.088 22.088 0 01-.997 2.72c.415.938.753 1.85 1.008 2.73.435-.142.854-.287 1.24-.454 1.583-.674 2.61-1.57 2.625-2.27 0-.703-1.027-1.587-2.615-2.267a13.533 13.533 0 00-1.26-.459zm-12.282.006c-.435.142-.856.287-1.243.453-1.588.67-2.615 1.566-2.615 2.27s1.027 1.588 2.615 2.267c.391.167.812.318 1.252.46a22.04 22.04 0 01.996-2.717 21.563 21.563 0 01-1.005-2.733zm6.142.668A2.048 2.048 0 0114.043 12a2.048 2.048 0 01-2.049 2.049A2.048 2.048 0 019.947 12a2.048 2.048 0 012.047-2.049zm4.56 3.252c-.185.362-.374.723-.58 1.08a25.52 25.52 0 01-.646 1.06c.64-.092 1.261-.215 1.848-.357a18.93 18.93 0 00-.621-1.783zm-9.115.024c-.234.596-.439 1.192-.605 1.77.587.14 1.202.258 1.838.35a37.4 37.4 0 01-.647-1.044c-.21-.357-.4-.72-.586-1.076zm9.99 2.728c-.874.22-1.837.385-2.849.492a21.402 21.402 0 01-1.851 2.24c1.461 1.35 2.834 2.086 3.763 2.086.205 0 .377-.034.514-.117.606-.352.864-1.685.654-3.396-.054-.416-.133-.85-.23-1.305zm-10.845.01c-.098.454-.182.9-.23 1.32-.206 1.711.058 3.039.67 3.39.131.079.304.119.51.124.928 0 2.301-.743 3.763-2.102a21.53 21.53 0 01-1.867-2.244 21.806 21.806 0 01-2.846-.488zm4.18.586c.41.528.83 1.007 1.246 1.437.41-.43.831-.91 1.232-1.437a26.056 26.056 0 01-2.478 0z\"},\"child\":[]}]})(props);\n};\nexport function SiProtondrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 6.595v12.79c0 1.36-1.11 2.462-2.482 2.462h-1.62V9a2.925 2.925 0 0 0-2.93-2.914l-9.42.053a.943.943 0 0 1-.55-.172L4.905 4.493a2.918 2.918 0 0 0-1.694-.536H.1A2.47 2.47 0 0 1 2.482 2.15h4.657c.47 0 .928.148 1.305.424l1.559 1.134c.38.276.837.424 1.308.424h10.207A2.471 2.471 0 0 1 24 6.595zM18.897 9v12.85H2.482A2.471 2.471 0 0 1 0 19.387V4.957h3.21c.4 0 .792.122 1.118.353l2.095 1.476a1.94 1.94 0 0 0 1.13.353l9.402-.052A1.922 1.922 0 0 1 18.897 9z\"},\"child\":[]}]})(props);\n};\nexport function SiProtonmail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15.24 8.998 3.656-3.073v15.81H2.482C1.11 21.735 0 20.609 0 19.223V6.944l7.58 6.38a2.186 2.186 0 0 0 2.871-.042l4.792-4.284h-.003zm-5.456 3.538 1.809-1.616a2.438 2.438 0 0 1-1.178-.533L.905 2.395A.552.552 0 0 0 0 2.826v2.811l8.226 6.923a1.186 1.186 0 0 0 1.558-.024zM23.871 2.463a.551.551 0 0 0-.776-.068l-3.199 2.688v16.653h1.623c1.371 0 2.481-1.127 2.481-2.513V2.824a.551.551 0 0 0-.129-.36z\"},\"child\":[]}]})(props);\n};\nexport function SiProtonvpn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m10.176 20.058.858-1.28 6.513-9.838c.57-.86.026-2.014-1.005-2.131L.378 4.95l8.373 15.055a.84.84 0 0 0 1.424.052h.001zM23.586 7.14l-9.662 14.61c-1.036 1.567-3.38 1.478-4.293-.162l-.093-.168c.3-.01.594-.086.855-.235a1.85 1.85 0 0 0 .612-.57l.86-1.28 6.516-9.844c.46-.694.525-1.56.173-2.314a2.375 2.375 0 0 0-1.899-1.364L.493 3.956l-.476-.054C-.163 2.392 1.101.95 2.784 1.143l18.991 2.16c1.856.21 2.835 2.289 1.812 3.838z\"},\"child\":[]}]})(props);\n};\nexport function SiProtools (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.505 15.452Q.27 14.63.14 13.762.01 12.891.01 12q0-2.49.94-4.673.94-2.184 2.572-3.804Q5.155 1.902 7.339.938 9.523 0 12.012 0q2.465 0 4.65.94 2.183.962 3.815 2.583 1.633 1.62 2.572 3.804.94 2.184.94 4.673 0 .869-.118 1.714-.118.846-.352 1.644.21.047.34.07l.13.024-1.363 3.429-.188-.012-.54-.106Q21.1 19.937 20.02 20.9q-1.057.987-2.325 1.668-1.268.68-2.724 1.056-1.433.376-2.96.376-1.55 0-3.005-.376-1.433-.375-2.7-1.068-1.269-.693-2.35-1.656-1.08-.963-1.878-2.16-.282.094-.434.117l-.153.024-1.48-3.382.118.012.376-.059zM22.744 12q0-2.23-.846-4.18-.845-1.95-2.301-3.405-1.456-1.456-3.429-2.301-1.949-.846-4.156-.846-2.231 0-4.18.846-1.973.845-3.429 2.3Q2.947 5.872 2.102 7.82 1.256 9.77 1.256 12q0 .751.106 1.491.106.74.317 1.444.892-.516 2.02-1.972 1.127-1.456 1.808-2.912.352-.728.916-1.597.54-.869 1.338-1.632.799-.763 1.855-1.256 1.057-.517 2.396-.517 1.315 0 2.419.587 1.103.587 1.913 1.35.81.764 1.304 1.492.516.727.657.986.165.282.47.94.329.633.728 1.361.4.728.822 1.433.423.68.798 1.033.259.258.564.446.305.188.61.329.212-.728.33-1.48.117-.751.117-1.526zM12.012 22.732q1.338 0 2.583-.305 1.268-.33 2.383-.916 1.116-.587 2.055-1.41.94-.821 1.668-1.83-.94-.494-2.173-1.645-1.233-1.15-2.5-3.358-.142-.235-.494-.94-.352-.704-.857-1.455-.505-.752-1.115-1.339t-1.268-.587q-.681 0-1.386.634-.704.61-1.303 1.386-.6.775-1.022 1.503-.423.704-.54.916-1.174 2.066-2.477 3.205-1.304 1.139-2.29 1.656.728 1.01 1.667 1.831.963.846 2.079 1.433 1.115.587 2.36.892 1.268.329 2.63.329z\"},\"child\":[]}]})(props);\n};\nexport function SiProtractor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.37 0 0 5.372 0 12s5.371 12 12 12c6.628 0 12-5.372 12-12S18.627 0 12 0zm-.273 3.789v1.71h.545v-1.71a9.055 9.055 0 015.961 2.468l-1.277 1.278.386.386 1.277-1.278a9.057 9.057 0 012.469 5.96h-1.71v.546h1.717v2.001H2.905v-2H4.62v-.546h-1.71a9.058 9.058 0 012.469-5.96L6.658 7.92l.386-.386-1.278-1.278a9.056 9.056 0 015.96-2.468zM12 6.965a5.912 5.912 0 00-5.913 5.912h11.824A5.91 5.91 0 0012 6.965z\"},\"child\":[]}]})(props);\n};\nexport function SiProxmox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.928 1.825c-1.09.553-1.09.64-.07 1.78 5.655 6.295 7.004 7.782 7.107 7.782.139.017 7.971-8.542 8.058-8.801.034-.07-.208-.312-.519-.536-.415-.312-.864-.433-1.712-.467-1.59-.104-2.144.242-4.115 2.455-.899 1.003-1.66 1.833-1.66 1.833-.017 0-.76-.813-1.642-1.798S8.473 2.1 8.127 1.91c-.796-.45-2.421-.484-3.2-.086zM1.297 4.367C.45 4.695 0 5.007 0 5.248c0 .121 1.331 1.678 2.94 3.459 1.625 1.78 2.939 3.268 2.939 3.302 0 .035-1.331 1.522-2.94 3.303C1.314 17.11.017 18.683.035 18.822c.086.467 1.504 1.055 2.541 1.055 1.678-.018 2.058-.312 5.603-4.202 1.78-1.954 3.233-3.614 3.233-3.666 0-.069-1.435-1.694-3.199-3.63-2.3-2.508-3.423-3.632-3.96-3.874-.812-.398-2.126-.467-2.956-.138zm18.467.12c-.502.26-1.764 1.505-3.943 3.891-1.763 1.937-3.199 3.562-3.199 3.631 0 .07 1.453 1.712 3.234 3.666 3.544 3.89 3.925 4.184 5.602 4.202 1.038 0 2.455-.588 2.542-1.055.017-.156-1.28-1.712-2.905-3.493-1.608-1.78-2.94-3.285-2.94-3.32 0-.034 1.332-1.539 2.94-3.32C22.72 6.91 24.017 5.352 24 5.214c-.087-.45-1.366-.968-2.473-1.038-.795-.034-1.21.035-1.763.312zM7.954 16.973c-2.144 2.369-3.908 4.374-3.943 4.46-.034.07.208.312.52.537.414.311.864.432 1.711.467 1.574.103 2.161-.26 4.15-2.508.864-.968 1.608-1.78 1.625-1.78s.761.812 1.643 1.798c2.023 2.248 2.559 2.576 4.132 2.49.848-.035 1.297-.156 1.712-.467.311-.225.553-.467.519-.536-.087-.26-7.92-8.819-8.058-8.801-.069 0-1.867 1.954-4.011 4.34z\"},\"child\":[]}]})(props);\n};\nexport function SiPterodactyl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.236 3.775a8.404 8.404 0 0 0-.535.004c-.576 0-1.573.103-2.201.234-1.834.367-4.348 1.65-5.5 2.855-1.362 1.415-1.362 1.755 0 .917 1.074-.708 4.663-2.227 5.187-2.227.157 0 .287.106.287.264 0 .13.524-.132 1.153-.604.628-.445 1.363-.969 1.625-1.152.334-.197.372-.275-.016-.291zm1.262 2.449c-.475.01-.894.041-1.143.094-1.676.34-3.457 1.388-5.29 3.117-.97.917-1.782 1.571-1.782 1.414 0-.157.104-.367.262-.445.419-.262 2.698-3.56 2.54-3.692-.209-.236-3.902 1.57-5.605 2.723-1.99 1.362-4.19 3.746-4.95 5.422-.34.707-.575 1.336-.523 1.389.053.026.89-.525 1.86-1.258.969-.734 1.833-1.257 1.912-1.178.078.079-.42.732-1.127 1.44-.707.733-1.206 1.31-1.127 1.31.078 0 1.152-.42 2.357-.943l2.174-.916.395.601c1.283 1.991 3.325 2.882 6.547 2.803 1.729-.026 2.096.028 2.986.656.55.367 1.153.68 1.336.68.184 0 .393.183.498.393.079.21.418.394.733.394.524-.026.55-.053.158-.289-.262-.13-.473-.394-.473-.55 0-.158.21-.444.473-.628.419-.314.419-.34 0-.367-.236 0-.525.105-.604.262-.288.471-1.1.261-1.545-.367-.393-.629-.393-.655.577-.97l.968-.314-1.832-.89c-.995-.472-2.044-.865-2.306-.865-.42 0-.47-.13-.313-.864.603-2.829 3.325-4.794 8.46-6.103C23.133 8.02 24 7.733 24 7.628c0-.288-4.166-1.23-6.026-1.361a14.798 14.798 0 0 0-1.476-.043Zm-12.354 5.36c.157 0 .159.156-.05.392-.184.236-.394.341-.446.29-.183-.184.182-.683.496-.683zm13.07 6.023a.535.535 0 0 0-.417.264c-.079.13-.054.261.103.261.131 0 .342-.13.42-.261.079-.157.052-.264-.105-.264zm-2.827.787c-.577 0-.628.052-.34.393.183.21.628.392.968.392.577 0 .628-.052.34-.392-.183-.21-.628-.393-.968-.393z\"},\"child\":[]}]})(props);\n};\nexport function SiPubg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.425 20.693c-.107-.247-.132-.4-.131-.8 0-.376.015-.478.208-1.416a38 38 0 0 0 .2-1.015c-.1-.056-.481-.376-.7-.587-.49-.472-.799-.938-.942-1.415-.059-.195-.067-.282-.056-.592.013-.341.02-.378.127-.599a2 2 0 0 1 .257-.39c.14-.15.145-.161.188-.465.024-.171.072-.493.105-.715.054-.36.056-.424.018-.592a2.84 2.84 0 0 1 .082-1.529c.358-.99 1.39-1.681 3-2.007 1.226-.249 2.815-.265 4.374-.045 1.537.218 3.344.715 5.011 1.38.214.086.392.152.396.148.014-.014-1.28-.668-1.61-.814A17 17 0 0 0 8.28 8.073C7.472 7.92 7.22 7.9 6.147 7.9c-.931 0-1.068.007-1.46.073a7 7 0 0 0-.836.18c-.1.03-.056-.046.082-.141.516-.356 1.36-.69 2.23-.886.853-.191.851-.177.023-.165-.407.006-.74.002-.74-.009s.025-.041.055-.068a10 10 0 0 0 .342-.376c.493-.56 1.253-1.22 1.923-1.667 1.278-.854 2.553-1.345 4.124-1.588.51-.08 2.061-.08 2.6 0 1.682.245 2.964.707 4.14 1.49.554.37.864.624 1.339 1.101.953.958 1.613 2.02 2.191 3.527.31.808.601 1.76.756 2.474l.072.331.164.115c.09.063.183.152.206.198s.166.448.316.894c.151.445.286.814.3.82s.026.111.026.234c0 .213-.004.225-.086.264-.106.05-1.037.255-1.16.255-.127 0-.23-.11-.322-.343l-.177-.436c-.054-.128-.172-.416-.263-.638-.302-.739-.295-.725-.394-.766-.08-.033-.128-.026-.393.064-.166.057-.35.13-.407.165a.55.55 0 0 0-.221.4c-.001.091.23.762.289.84.067.089 1.591 1.11 1.688 1.131.06.013.253-.014.528-.074l.438-.094c.003 0 .016.215.028.478.021.45.018.486-.043.607-.104.204-.003.16-1.67.723-1.314.444-1.564.497-2.353.497a4.5 4.5 0 0 1-2.388-.644c-.48-.283-1.052-.767-1.224-1.037-.133-.209-.16-.04.34-2.195.1-.427.194-.781.211-.787.017-.005.09.1.163.236s.164.266.202.29.287.14.552.259c.409.182.515.217.695.228a.82.82 0 0 0 .79-.41c.083-.131.097-.2.213-1.07l.158-1.178c.098-.725.09-.957-.046-1.248-.153-.327-.328-.474-.881-.741-.918-.444-.862-.435-1.279-.204-.158.088-.29.161-.293.164a8 8 0 0 0 .313-.006l.318-.01.52.24c.408.19.555.275.678.392.301.29.393.655.31 1.241-.052.37-.085.458-.23.615-.185.202-.334.269-.596.27-.208 0-.243-.01-.732-.24-.509-.24-.516-.242-.79-.249l-.276-.007-.039.156-.166.685c-.162.673-.477 1.976-.735 3.038-.11.454-.258 1.063-.327 1.355-.159.668-.214.86-.307 1.075-.219.503-.689.99-1.2 1.245-.578.287-1.076.342-1.828.205a45 45 0 0 0-4.48-.615c-.606-.053-2.655-.053-3.051 0-.826.111-1.187.19-1.535.337a1.93 1.93 0 0 0-.847.672c-.174.257-.253.71-.191 1.092.029.177-.008.192-.079.03zm.317-3.394c0-.028.06-.365.165-.929.1-.538.212-.748.576-1.086.604-.56 1.758-.924 3.331-1.05.557-.045 2.451-.014 3.072.05 1.287.131 1.77.195 2.88.38.906.151.886.15.7.073a58 58 0 0 0-2.054-.744c-1.222-.412-1.941-.578-3.207-.74-.625-.08-2.496-.081-3.082-.001-1.13.154-1.95.382-2.568.717-.523.282-.895.643-1.049 1.02-.09.22-.075.702.03.956.124.299.332.586.65.9.436.428.556.526.556.454m-.558-4.09c.15-.107.649-.33.963-.43.525-.169.957-.256 1.805-.367.497-.065 2.617-.093 3.284-.043l.716.053c.286.022.316-.01.392-.418l.184-.974c.19-1 .248-1.318.249-1.375 0-.105-.107-.19-.281-.217-.792-.129-2.275-.198-3.255-.153-2.203.1-3.583.628-4.102 1.566a1.6 1.6 0 0 0-.219.662q-.018.188.01.105c.143-.436.52-.88.926-1.094.237-.125.26-.132.26-.088 0 .015-.063.058-.14.096q-.273.131-.513.593c-.153.295-.193.468-.297 1.291a61 61 0 0 1-.096.74c-.021.135-.008.14.114.053m9.586-.184c.066-.052.078-.085.078-.236 0-.159-.01-.184-.102-.266-.12-.108-.188-.114-.298-.028-.161.128-.122.44.069.544.11.06.16.057.253-.014m7.349-1.91c.223-.15.319-.421.251-.712-.118-.515-.662-.73-.966-.384-.283.322-.166.91.22 1.1.178.088.361.087.495-.004m-.321-.32c-.187-.102-.245-.433-.103-.586.108-.117.285-.115.4.006.166.172.172.42.016.551-.105.088-.19.096-.313.029m-6.548-.146c.098-.139.036-.446-.105-.521-.09-.049-.204-.039-.257.022-.14.16-.142.312-.003.476.1.12.29.132.366.023z\"},\"child\":[]}]})(props);\n};\nexport function SiPublons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm10.34 5.1c.083.014.114.096.156.158.054.354.1.71.154 1.065.157-.162.31-.328.49-.464.867-.666 2.05-.94 3.11-.63.72.21 1.315.72 1.756 1.316.187.263.348.547.45.855.198.582.225 1.206.198 1.815-.053 1.12-.433 2.244-1.169 3.103a4.029 4.029 0 01-2.616 1.41 4.418 4.418 0 01-2.188-.317c.019 1.01.032 2.018.038 3.028.021.465-.021.938.087 1.396.031.14.123.292.28.308.302.036.608.013.912.02.057 0 .13.037.126.101.004.186.009.373-.004.56-.046.092-.17.07-.255.072a44.358 44.358 0 00-4.437 0l-.07-.056c-.004-.22-.063-.467.034-.671.3-.035.606.02.904-.032.191-.048.268-.26.295-.434.04-.32.027-.642.042-.963V8.348c0-.156.006-.31-.008-.465a.888.888 0 00-.34-.656c-.203-.158-.438-.265-.662-.388-.082-.052-.181-.097-.229-.187a.985.985 0 01.008-.337c.056-.066.144-.086.219-.122.73-.315 1.456-.636 2.185-.952.17-.068.346-.144.533-.144zm1.99 1.146c-.053 0-.104 0-.156.013a2.12 2.12 0 00-1.493.86c.005 1.44 0 2.88.003 4.32.005.327.073.676.302.924.524.512 1.302.692 2.014.593.577-.096 1.037-.538 1.279-1.054.344-.736.395-1.571.335-2.371-.053-.655-.181-1.312-.449-1.915-.184-.407-.442-.793-.811-1.054a1.717 1.717 0 00-1.024-.313z\"},\"child\":[]}]})(props);\n};\nexport function SiPubmed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.23 7.982l.006-1.005C7.846 1.417 5.096 0 5.096 0l.048 2.291C3.73 1.056 2.6 1.444 2.6 1.444l.118 15.307s4.218-1.796 5.428 5.505C10.238 13.535 21.401 24 21.401 24V9S10.52-.18 8.231 7.982zm9.79 9.941l-1.046-5.232-1.904 4.507h-.96l-1.72-4.301-1.046 5.04H9.321l2.093-9.39h.802l2.491 5.543 2.508-5.557h.869l2.075 9.39h-2.138z\"},\"child\":[]}]})(props);\n};\nexport function SiPug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0938 4.6358c-2.0663 0-3.6817.204-4.9221.5704a6.4511 6.4511 0 0 0 .0918-.084c.0374-.0375-.0507-.0625-.2285-.0684-.5335-.0175-1.8672.1436-2.9904.7051-1.273.599-4.118 3.7446-4.0432 3.9318.075.1872 1.4594 1.3458 1.8712 1.795.2621.2995 1.0485 2.9592 1.7599 2.51.189-.131.2656-.651.33-1.2931.0582.4975.1155 1.013.1934 1.4805.1123.7488 1.087 1.3474 1.1993 2.0587.1391 1.0138.7614 1.7234 1.9805 2.174.4847.6681 1.2382.3299 1.801.6347.8984.4867 1.9091.2617 2.92.2617 1.0108 0 1.984.186 2.92-.3007.576-.2995 1.32.0311 1.8087-.5802 1.2254-.4494 1.8319-1.1633 1.9727-2.1895.1123-.7113 1.0479-1.3099 1.1602-2.0587.0633-.3799.1102-.802.1582-1.2032.0568.4994.13.9042.291 1.0157.674.4493 1.4978-2.2104 1.7599-2.5099.4118-.4492 1.7963-1.6078 1.8712-1.795.0748-.1872-2.8074-3.3327-4.0803-3.9318-1.1231-.5615-2.4568-.7226-2.9903-.705-.167.0054-.2454.0287-.2247.0624-1.1748-.308-2.6728-.4805-4.6095-.4805zm.0293.5c2.2035 0 3.8486.2253 5.01.6153.1335.0449.2387.098.3593.1465.6901.715 1.6233 1.831 2.0138 3.1173.0246.081.0405.1658.0625.248.0003.0013-.0003.0028 0 .004v.0039c.0453.77.3158 1.4169.2305 1.9903-.1536.9982-.2285 1.9726-.373 2.84l-.002.0039v.0039c-.0289.1922-.218.4762-.4786.8067-.2606.3305-.5955.7024-.6817 1.248v.006l-.0019.0038c-.1006.733-.4207 1.1997-1.17 1.5821.1252-.4447.2051-1.055.2051-1.963.0374-1.1231.0766-1.5722-.8594-2.6954-.7184-.9236-1.704-1.5746-2.793-1.8985-.1111-.3899-.7217-.836-1.551-.836-.8285 0-1.4147.422-1.5352.8204-1.1098.3182-2.116.9759-2.8458 1.9141-.936 1.1232-.8594 1.6097-.8594 2.6955 0 .9037.0795 1.5135.2031 1.961-.7697-.385-1.1078-.857-1.207-1.5802v-.0097c-.0875-.5541-.4371-.9235-.7071-1.254-.27-.3305-.4626-.6166-.4903-.8008l-.002-.004v-.0038c-.1444-.8669-.2196-1.8406-.373-2.838v-.002c-.0853-.5734.1833-1.2203.2285-1.9903v.0156c.0131-.1437.0173-.241.0254-.371.3604-1.1587 1.1531-2.1726 1.8048-2.8752a6.4135 6.4135 0 0 1 .7246-.289c1.1921-.3916 2.8593-.6153 5.0628-.6153zm-5.2092 3.805a1.6473 1.6473 0 0 0-1.6349 1.6484 1.6473 1.6473 0 0 0 1.6485 1.6466 1.6473 1.6473 0 0 0 .4415-.0606c.3487-.3747.7177-.7223 1.1113-1.041a1.6473 1.6473 0 0 0 .0938-.545 1.6473 1.6473 0 0 0-1.6466-1.6485 1.6473 1.6473 0 0 0-.0136 0zm10.2973 0a1.6473 1.6473 0 0 0-1.6368 1.6484 1.6473 1.6473 0 0 0 .1504.6836c.3125.2642.611.547.8945.8477a1.6473 1.6473 0 0 0 .6036.1153 1.6473 1.6473 0 0 0 1.6465-1.6466 1.6473 1.6473 0 0 0-1.6465-1.6485 1.6473 1.6473 0 0 0-.0117 0zm-9.8715.4863a.4118.4118 0 0 1 .4101.412.4118.4118 0 0 1-.4101.4122.4118.4118 0 0 1-.4122-.4121.4118.4118 0 0 1 .4122-.4121zm9.471 0a.4118.4118 0 0 1 .4122.412.4118.4118 0 0 1-.4121.4122.4118.4118 0 0 1-.4122-.4121.4118.4118 0 0 1 .4122-.4121zm-5.1095 1.4863a.1498.2995 17.23 0 1 .0293.004.1498.2995 17.23 0 1 .0547.33.1498.2995 17.23 0 1-.2325.2422.1498.2995 17.23 0 1-.0527-.33.1498.2995 17.23 0 1 .2012-.2462zm.6719.0215a.2995.1498 75.54 0 1 .205.254.2995.1498 75.54 0 1-.0703.328.2995.1498 75.54 0 1-.2207-.2519.2995.1498 75.54 0 1 .0703-.3281.2995.1498 75.54 0 1 .0157-.002zm-.3164.4766s.0358.226.1855.3008c.1498.0749.8614-.1504.8614-.1504-.337.262-.9727.263-.9727.338v.373c0 .4079.0263 1.4614-.0313 1.6856.8238.0045 2.09 1.1255 2.09 2.508v.0741c-.0375-1.3478-1.6091-2.4337-2.0958-2.4337-.4867 0-2.0603 1.0485-2.0978 2.4337v-.0742c0-1.3626 1.2326-2.47 2.0567-2.506-.0704-.5517-.0722-1.1372-.0722-1.6875v-.373c-.2145-.0954-.4322-.1714-.6563-.2364.1846.0326.371.0488.545.0488.1497-.0749.1875-.3008.1875-.3008zm-3.0412 1.3477a.1498.1498 0 0 1 .0078 0 .1498.1498 0 0 1 .1504.1504.1498.1498 0 0 1-.1504.1504.1498.1498 0 0 1-.1504-.1504.1498.1498 0 0 1 .1426-.1504zm1.1231 0a.1498.1498 0 0 1 .0078 0 .1498.1498 0 0 1 .1504.1504.1498.1498 0 0 1-.1504.1504.1498.1498 0 0 1-.1504-.1504.1498.1498 0 0 1 .1426-.1504zm3.67 0a.1498.1498 0 0 1 .0079 0 .1498.1498 0 0 1 .1504.1504.1498.1498 0 0 1-.1504.1504.1498.1498 0 0 1-.1504-.1504.1498.1498 0 0 1 .1426-.1504zm1.1232 0a.1498.1498 0 0 1 .0078 0 .1498.1498 0 0 1 .1504.1504.1498.1498 0 0 1-.1504.1504.1498.1498 0 0 1-.1504-.1504.1498.1498 0 0 1 .1426-.1504zm-5.6526.8985a.1498.1498 0 0 1 .0078 0 .1498.1498 0 0 1 .1484.1504.1498.1498 0 0 1-.1484.1504.1498.1498 0 0 1-.1504-.1504.1498.1498 0 0 1 .1426-.1504zm5.3908 0a.1498.1498 0 0 1 .006 0 .1498.1498 0 0 1 .1503.1504.1498.1498 0 0 1-.1504.1504.1498.1498 0 0 1-.1484-.1504.1498.1498 0 0 1 .1425-.1504Z\"},\"child\":[]}]})(props);\n};\nexport function SiPulumi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.997 0C10.226 0 8.79.83 8.79 1.856c0 1.025 1.436 1.856 3.207 1.856 1.772 0 3.208-.831 3.208-1.856C15.205.83 13.77 0 11.997 0zM5.95 3.488c-1.772 0-3.208.83-3.208 1.856C2.742 6.369 4.178 7.2 5.95 7.2c1.771 0 3.207-.831 3.207-1.856 0-1.025-1.436-1.856-3.207-1.856zm12.103 0c-1.772 0-3.208.83-3.208 1.856 0 1.025 1.436 1.856 3.208 1.856 1.771 0 3.207-.831 3.207-1.856 0-1.025-1.436-1.856-3.207-1.856zm-6.056 3.495c-1.771 0-3.207.831-3.207 1.856 0 1.025 1.436 1.856 3.207 1.856 1.772 0 3.208-.83 3.208-1.856 0-1.025-1.436-1.856-3.208-1.856zm-10.127.67a1.157 1.157 0 0 0-.55.151c-.888.513-.89 2.172-.004 3.706.886 1.534 2.324 2.362 3.211 1.85.888-.513.89-2.171.003-3.706-.72-1.246-1.803-2.027-2.66-2zm20.257.004c-.857-.026-1.941.754-2.661 2-.886 1.535-.884 3.194.003 3.707.888.512 2.325-.316 3.211-1.85.886-1.534.885-3.193-.003-3.706a1.157 1.157 0 0 0-.55-.15zm-6.048 3.492c-.857-.026-1.94.754-2.66 2-.886 1.535-.885 3.194.003 3.706.887.513 2.325-.316 3.21-1.85.887-1.534.885-3.193-.003-3.706a1.157 1.157 0 0 0-.55-.15zm-8.16.001a1.157 1.157 0 0 0-.55.151c-.888.513-.89 2.172-.004 3.706.886 1.535 2.324 2.363 3.211 1.85.888-.512.89-2.171.003-3.705-.72-1.247-1.803-2.028-2.66-2.002zm-6.047 3.494a1.157 1.157 0 0 0-.55.151c-.888.513-.89 2.172-.004 3.706.886 1.534 2.324 2.362 3.212 1.85.887-.513.888-2.172.003-3.706-.72-1.246-1.804-2.027-2.661-2.001zm20.258.002c-.857-.026-1.941.755-2.66 2.001-.887 1.535-.885 3.193.003 3.706.887.512 2.325-.316 3.21-1.85.886-1.534.885-3.193-.003-3.706a1.157 1.157 0 0 0-.55-.15zm-6.047 3.492c-.858-.026-1.942.754-2.661 2-.886 1.535-.885 3.194.003 3.706.888.513 2.325-.315 3.21-1.85.887-1.533.885-3.193-.002-3.705a1.157 1.157 0 0 0-.55-.151zm-8.163.003a1.157 1.157 0 0 0-.55.151c-.887.513-.889 2.172-.003 3.706.886 1.534 2.323 2.363 3.211 1.85.888-.512.89-2.171.004-3.706-.72-1.246-1.804-2.027-2.662-2z\"},\"child\":[]}]})(props);\n};\nexport function SiPuma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.845 3.008c-.417-.533-1.146-.106-1.467.08-2.284 1.346-2.621 3.716-3.417 5.077-.626 1.09-1.652 1.89-2.58 1.952-.686.049-1.43-.084-2.168-.405-1.807-.781-2.78-1.792-3.017-1.97-.487-.37-4.23-4.015-7.28-4.164 0 0-.372-.75-.465-.763-.222-.025-.45.451-.616.501-.15.053-.413-.512-.565-.487-.153.02-.302.586-.6.877-.22.213-.486.2-.637.463-.052.096-.034.265-.093.42-.127.32-.551.354-.555.697 0 .381.357.454.669.72.248.212.265.362.554.461.258.088.632-.187.964-.088.277.081.543.14.602.423.054.256 0 .658-.34.613-.112-.015-.598-.174-1.198-.11-.725.077-1.553.309-1.634 1.11-.041.447.514.97 1.055.866.371-.071.196-.506.399-.716.267-.27 1.772.944 3.172.944.593 0 1.031-.15 1.467-.605.04-.029.093-.102.155-.11a.632.632 0 01.195.088c1.131.897 1.984 2.7 6.13 2.721.582.007 1.25.279 1.796.777.48.433.764 1.125 1.037 1.825.418 1.053 1.161 2.069 2.292 3.203.06.068.99.78 1.06.833.012.01.084.167.053.255-.02.69-.123 2.67 1.365 2.753.366.02.275-.231.275-.41-.005-.341-.065-.685.113-1.04.253-.478-.526-.709-.509-1.756.019-.784-.645-.651-.984-1.25-.19-.343-.368-.532-.35-.946.073-2.38-.517-3.948-.805-4.327-.227-.294-.423-.403-.207-.54 1.24-.815 1.525-1.574 1.525-1.574.66-1.541 1.256-2.945 2.075-3.57.166-.12.589-.44.852-.56.763-.362 1.173-.578 1.388-.788.356-.337.635-1.053.294-1.48z\"},\"child\":[]}]})(props);\n};\nexport function SiPuppet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.984 21.611H6.595v-2.388h2.39zM6.595 2.39h2.39v2.388h-2.39zm13.198 6.028h-5.48l.001-.002-2.941-2.941V0H4.207v7.166h5.48l2.938 2.938.002-.001v3.794l-.003-.003-2.94 2.94H4.207V24h7.166v-5.477l2.94-2.94h5.48V8.417\"},\"child\":[]}]})(props);\n};\nexport function SiPuppeteer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.89 17.86h.397v.174h.028a.466.466 0 0 1 .619-.155l-.11.373a.364.364 0 0 0-.184-.043.288.288 0 0 0-.243.11.471.471 0 0 0-.082.29v.635h-.424zm-.26 1.048a.766.766 0 0 1-.27.28.741.741 0 0 1-.398.101.822.822 0 0 1-.3-.054.752.752 0 0 1-.237-.155.704.704 0 0 1-.214-.529c0-.1.018-.194.056-.282a.719.719 0 0 1 .156-.235.725.725 0 0 1 .529-.22.75.75 0 0 1 .302.056.642.642 0 0 1 .353.384.846.846 0 0 1 .037.402h-1.02c.02.09.063.156.127.198a.387.387 0 0 0 .214.062.345.345 0 0 0 .32-.18zm-.376-.54a.227.227 0 0 0-.03-.074.21.21 0 0 0-.058-.07.264.264 0 0 0-.093-.054.325.325 0 0 0-.43.198zm-1.242.54a.766.766 0 0 1-.27.28.741.741 0 0 1-.397.101.822.822 0 0 1-.3-.054.752.752 0 0 1-.237-.155.704.704 0 0 1-.215-.529c0-.1.019-.194.057-.282a.719.719 0 0 1 .155-.235.725.725 0 0 1 .529-.22c.115 0 .215.018.302.056a.642.642 0 0 1 .353.384.846.846 0 0 1 .037.402h-1.02c.02.09.063.156.127.198a.387.387 0 0 0 .215.062.345.345 0 0 0 .32-.18zm-.376-.54a.227.227 0 0 0-.028-.074.21.21 0 0 0-.06-.07.264.264 0 0 0-.093-.054.325.325 0 0 0-.43.198zm-1.918-.144l-.243-.004.004-.388.25.012-.007-.41.412.004-.016.39.367.02-.012.355-.365.008.013.47c-.012.092.022.145.027.194.08.1.137.068.137.068.02-.008.162-.027.177-.038l.04.388c-.138.082-.377.036-.377.036-.253-.037-.383-.217-.384-.293-.025-.068-.018-.21-.029-.29zm-.412.717c-.037.126-.172.218-.283.285a.772.772 0 0 1-.406.11.944.944 0 0 1-.32-.077c-.09-.038-.165-.113-.233-.18-.068-.065-.093-.142-.131-.23a.822.822 0 0 1-.045-.31c-.015-.194.126-.378.212-.505.28-.238.49-.22.49-.22.387-.075.696.288.718.437.03.086.022.18.022.28-.005.054 0 .05-.031.125h-1.037c.02.09.063.192.104.24.048.06.128.06.207.06.079 0 .163.002.214-.032.053-.034.172-.072.203-.125zm-.37-.558a.41.41 0 0 0-.04-.097c-.014-.026-.05-.046-.076-.066-.024-.023-.071-.037-.109-.05a.31.31 0 0 0-.121-.023.274.274 0 0 0-.168.053c-.057.037-.097.12-.123.19zm-2.34-.372h.028a.388.388 0 0 1 .147-.138.498.498 0 0 1 .254-.06.623.623 0 0 1 .467.207.696.696 0 0 1 .147.232c.036.09.053.19.053.3a.8.8 0 0 1-.053.3.729.729 0 0 1-.147.234.647.647 0 0 1-.467.203.518.518 0 0 1-.254-.056.409.409 0 0 1-.147-.142h-.028l.028.198v.565H10.2V17.86h.396zm.336.198a.34.34 0 0 0-.31.201.37.37 0 0 0-.026.141c0 .053.008.101.025.145a.362.362 0 0 0 .074.107c.032.028.068.05.107.068a.378.378 0 0 0 .257 0 .348.348 0 0 0 .108-.068.304.304 0 0 0 .073-.107.358.358 0 0 0 .028-.145.338.338 0 0 0-.336-.342zm-2.026-.198h.03a.388.388 0 0 1 .146-.138.498.498 0 0 1 .254-.06.623.623 0 0 1 .466.207.696.696 0 0 1 .147.232c.036.09.054.19.054.3a.8.8 0 0 1-.054.3.729.729 0 0 1-.147.234.647.647 0 0 1-.466.203.518.518 0 0 1-.254-.056.409.409 0 0 1-.147-.142h-.029l.03.198v.565H8.51V17.86h.395zm.337.198a.34.34 0 0 0-.31.201.37.37 0 0 0-.027.141c0 .053.01.101.026.145a.362.362 0 0 0 .073.107c.032.028.068.05.108.068a.378.378 0 0 0 .257 0 .348.348 0 0 0 .107-.068.303.303 0 0 0 .074-.107.358.358 0 0 0 .028-.145.338.338 0 0 0-.21-.316.32.32 0 0 0-.126-.026zm-1.433.86h-.028a.47.47 0 0 1-.424.22c-.174 0-.303-.055-.387-.167a.703.703 0 0 1-.128-.438v-.825h.424v.777c0 .076.018.138.054.187.036.047.091.07.167.07a.245.245 0 0 0 .217-.11.497.497 0 0 0 .077-.288v-.636h.424v1.385H7.81zm-2.594.175V17.22h.724a.82.82 0 0 1 .285.048.677.677 0 0 1 .23.136.589.589 0 0 1 .15.206.67.67 0 0 1 .053.27.657.657 0 0 1-.054.267.617.617 0 0 1-.379.342.818.818 0 0 1-.285.048h-.283v.707zm.738-1.125c.092 0 .16-.023.206-.068a.234.234 0 0 0 .068-.172.234.234 0 0 0-.068-.173c-.045-.045-.114-.068-.206-.068h-.297v.48zM18.04 2.758l-.594.05.236 2.932.626.363zm-12.016.01L5.728 6.01l.624-.3.266-2.89zm-.49 5.183l-.044.557-1.247 3.137c-.216.224-.308.514-.307.825L3.93 22.84c0 .669.49 1.16 1.158 1.16H18.82c.67 0 1.25-.444 1.25-1.11V12.485c0-.306-.1-.56-.286-.774L18.44 7.748l-.006-.068-.575.257.267 3.33H5.846l.237-2.615.226-.588L6.143 8l.002-.03zm13.112 2.34l.323.987c-.088-.014-.158-.006-.245-.01zm-13.316.232l-.084.744c-.058-.005-.12.005-.172.007zm-.18 1.134l13.67.008c.47 0 .853.344.853.815v.796H4.313v-.796c0-.47.364-.823.837-.823zm.135.553a.27.27 0 0 0-.272.27c0 .36.542.36.542 0a.27.27 0 0 0-.27-.27zm.92 0c-.36 0-.36.54 0 .54s.362-.54.002-.54zm.896 0c-.39-.034-.39.572 0 .538.33-.028.33-.51 0-.538zm-2.788 1.424h15.36v9.153c0 .595-.38.846-.853.845l-13.668-.004a.828.828 0 0 1-.84-.841zm1.883 4.42c.07-.117.07-.11.068-.186-.008-.073-.004-.076-.053-.135-.054-.054-.123-.138-.2-.134h-.387l-.02.55h.407c.122-.002.16-.084.185-.094zm-.185-.83a.58.58 0 0 1 .442.171c.11.117.164.273.164.465a.65.65 0 0 1-.16.462c-.117.12-.263.21-.43.203l-.4.008-.004.774-.412-.013-.005-2.088zm1.793 1.26l-.012-.624.366-.004.004 1.435-.36.004v-.122a.582.582 0 0 1-.432.15.557.557 0 0 1-.413-.156c-.103-.11-.13-.31-.123-.46l-.004-.847h.372l-.008.77a.328.328 0 0 0 .075.23.25.25 0 0 0 .198.09c.225 0 .336-.156.336-.468zm1.805.077a.36.36 0 0 0-.11-.272c-.07-.073-.115-.118-.218-.115-.1 0-.186.018-.266.094a.388.388 0 0 0-.116.293c0 .12.038.217.117.29.07.073.168.114.27.114.102.003.166-.053.238-.126.087-.094.06-.21.085-.278zm-.262-.76c.176 0 .333.11.466.245a.71.71 0 0 1 .197.515.7.7 0 0 1-.197.512c-.093.16-.31.255-.486.254-.16.005-.36-.066-.428-.197l.004.76-.4.006-.02-2.04.416-.02v.157c.126-.103.285-.2.448-.193zm2.002.764c-.014-.16-.044-.203-.117-.283-.072-.074-.117-.087-.22-.085-.1 0-.178-.005-.257.07a.388.388 0 0 0-.116.294c0 .12.038.217.116.29.07.073.168.114.27.114.102.003.154-.065.226-.137.073-.08.086-.175.098-.263zm-.318-.75c.177 0 .389.096.522.23a.712.712 0 0 1 .198.516.7.7 0 0 1-.198.512c-.105.15-.344.255-.522.254a.475.475 0 0 1-.392-.197v.75l-.405.01-.023-2.034h.428v.137c.126-.103.23-.183.392-.177zm1.268.576l.637-.008c-.017-.074-.063-.12-.124-.166a.357.357 0 0 0-.406.003c-.085.068-.054.056-.107.17zm.313-.575c.179-.003.425.078.552.203.133.13.157.308.166.512l-.031.125h-1.03c.02.095.044.186.104.244.059.056.153.07.234.07a.5.5 0 0 0 .383-.17l.316.141c-.046.14-.187.223-.304.296a.757.757 0 0 1-.408.094c-.184.003-.378-.116-.507-.247a.718.718 0 0 1-.2-.523c0-.21.094-.382.23-.518.13-.132.31-.232.495-.227zm1.673 1.127c.08-.003.11.002.178-.038l.04.388c-.107.063-.135.038-.26.042a.633.633 0 0 1-.416-.155c-.094-.09-.097-.26-.097-.443l-.012-.513-.243-.004.004-.388.25.012-.007-.41.412.004-.016.39.367.02-.012.355-.365.008.003.507c.002.155.042.225.175.225zm.75-.54h.654a.32.32 0 0 0-.12-.186.357.357 0 0 0-.407.003.3.3 0 0 0-.127.184zm.338-.587c.185 0 .368.092.5.22.133.13.173.295.183.5v.12h-1.03a.4.4 0 0 0 .12.228.31.31 0 0 0 .218.086c.155 0 .297-.06.367-.18l.3.15c-.05.13-.12.19-.238.262a.958.958 0 0 1-.452.125.712.712 0 0 1-.502-.224.77.77 0 0 1-.208-.542c0-.21.106-.382.24-.518.132-.132.316-.232.5-.227zm1.27.587h.654a.32.32 0 0 0-.12-.186.357.357 0 0 0-.407.003.3.3 0 0 0-.127.184zm.337-.587a.74.74 0 0 1 .5.22c.134.13.174.295.184.5v.12h-1.03a.4.4 0 0 0 .12.228.31.31 0 0 0 .217.086c.154 0 .297-.06.368-.18l.3.15c-.05.13-.12.19-.238.262a.957.957 0 0 1-.454.125.713.713 0 0 1-.5-.224.77.77 0 0 1-.208-.542c0-.21.106-.382.24-.518.13-.132.315-.232.5-.227zm1.938.04l-.067.364-.18-.023c-.322 0-.36.207-.36.595v.49l-.393.005.008-1.43h.365l-.004.22c.145-.17.215-.286.63-.22zM17.535 7.91l.02-.366 1.317-.687.007.396zM5.04 6.84l1.35.68-.008.393-1.314-.65zm7.21-1.748l4.839 2.448v.392l-4.851-2.46zM6.874 7.51l4.894-2.42-.007.374-4.893 2.444zm3.467-3.974L5.418 1.099 6.64.494l5.352 2.744L17.335.466l1.257.65-4.926 2.478c-.196.098-.13.388.067.486l4.838 2.42-1.22.622-5.353-2.697L6.62 7.129l-1.273-.634 4.998-2.483a.266.266 0 0 0-.004-.477zM5.059 1.888l.007-.377 4.607 2.276-.348.2zm9.648 2.077l-.41-.184 4.596-2.303-.028.412zm.422.306l4.124-2.07a.124.124 0 0 0 .07-.11v-.98c0-.046-.008-.136-.05-.157l-1.94-.94a.124.124 0 0 0-.113 0l-5.167 2.623a.123.123 0 0 1-.11 0L6.679.015a.124.124 0 0 0-.11 0L4.616.938c-.04.02-.02.11-.02.157v.995c0 .047.026.09.07.11l4.14 2.047L4.69 6.239c-.04.02-.108.062-.11.108l.017 1.034a.123.123 0 0 0 .068.113l1.933.986c.034.018.122.03.157.014l5.186-2.602a.124.124 0 0 1 .11 0l5.12 2.603a.124.124 0 0 0 .11 0l1.972-.954c.042-.02.103-.05.104-.096l-.007-1.033c0-.047-.047-.15-.09-.17z\"},\"child\":[]}]})(props);\n};\nexport function SiPurescript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.166 4.6l-1.24 1.24 3.97 3.97-3.97 3.97 1.24 1.24 4.58-4.6a.87.87 0 0 0 0-1.23zM6.955 6.74l1.87 1.75h8.23l-1.87-1.75zm-2.1 2.24l-4.6 4.6a.87.87 0 0 0 0 1.23l4.6 4.59 1.23-1.24-3.97-3.97 3.97-3.97-1.24-1.24zm3.97 2.14l-1.87 1.76h8.23l1.87-1.76zm-1.87 4.39l1.87 1.75h8.23l-1.87-1.75z\"},\"child\":[]}]})(props);\n};\nexport function SiPurgecss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12a12 12 0 0 0 9.764 11.791c.048-1.003.052-2.55.047-9.967 0-5.484.003-9.995.013-10.023.028-.08 2.26-.042 2.678.047a4.903 4.903 0 0 1 3.078 2.08 4.834 4.834 0 0 1-.7 6.164c-.924.878-2.041 1.334-3.29 1.334-.225 0-.29.012-.305.068-.01.043-.02 2.418-.014 5.287v5.196A12 12 0 0 0 12 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm-.691 4.31c-.013.004-.017.023-.02.063-.018.245-.023 8.358-.004 8.39.01.02.075-.014.145-.07 2.673-1.952 3.467-2.792 3.738-3.939.14-.746-.174-1.466-1.01-2.3-.699-.72-1.692-1.358-2.779-2.099-.038-.033-.058-.047-.07-.044z\"},\"child\":[]}]})(props);\n};\nexport function SiPurism (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 19.588H0V4.412h24zM2.824 16.765h18.352v-9.53H2.824Z\"},\"child\":[]}]})(props);\n};\nexport function SiPushbullet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm0 1.688A10.312 10.312 0 0 1 22.312 12 10.312 10.312 0 0 1 12 22.312 10.312 10.312 0 0 1 1.688 12 10.312 10.312 0 0 1 12 1.688zM7.258 6.92a.659.772 0 0 0-.659.772v8.643a.603.603 0 0 0 .603.603h1.733a.603.603 0 0 0 .603-.603V7.692a.659.772 0 0 0-.658-.772zm6.94.001c-.975.005-1.93.005-2.867.002-.28 0-.474.254-.534.499a1.7 1.7 0 0 0-.043.405c.004 2.854.007 5.677.007 8.47 0 .397.21.643.589.641 1.002-.004 1.967-.003 2.895 0 .058 0 .129.022.176.02.824-.018 1.552-.251 2.182-.698 2.02-1.43 2.554-4.264 1.662-6.47-.574-1.417-1.743-2.573-3.27-2.82a5.027 5.027 0 0 0-.797-.049z\"},\"child\":[]}]})(props);\n};\nexport function SiPusher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 23.966v-6.0166a.0348.0348 0 01.0182-.031l7.7319-4.4645a.0348.0348 0 00.0181-.031v-1.711a.0356.0356 0 00-.0537-.031l-7.6608 4.423a.0356.0356 0 01-.0537-.031v-1.7117a.0356.0356 0 01.0181-.031l7.732-4.4645a.037.037 0 00.0181-.031v-1.711a.0363.0363 0 00-.0537-.031l-7.6608 4.4229a.0356.0356 0 01-.0537-.031v-1.711a.0348.0348 0 01.0181-.031l7.732-4.4622a.0356.0356 0 00.0181-.031V4.515a.0757.0757 0 00-.0356-.062L12.0356.0096a.0704.0704 0 00-.0712 0L10.5002.855a.0356.0356 0 000 .062L18.161 5.34a.0363.0363 0 010 .062l-1.4642.8452a.0757.0757 0 01-.0719 0L8.9286 1.8038a.0757.0757 0 00-.0757 0l-1.4597.8445a.0356.0356 0 000 .062l7.6593 4.4236a.0356.0356 0 010 .0621l-1.4634.8452a.0757.0757 0 01-.0757 0l-7.6926-4.444a.0757.0757 0 00-.0756 0l-1.5134.8762v15.0492a.0348.0348 0 00.0181.031l1.4816.8558a.0356.0356 0 00.0538-.031V5.433a.0356.0356 0 01.0537-.031l1.4824.8558a.0356.0356 0 01.0174.031v15.028a.0356.0356 0 00.0181.031l1.4816.8559a.0363.0363 0 00.0545-.0318V7.227a.0356.0356 0 01.0537-.031l1.4817.855a.0356.0356 0 01.0181.0311v15.0288a.037.037 0 00.0174.031l1.4862.855A.0356.0356 0 0012 23.966z\"},\"child\":[]}]})(props);\n};\nexport function SiPwa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5967 7.482L24 16.518h-2.5098l-.5816-1.6184h-3.2452l.6933-1.7532h2.0019l-.95-2.6597 1.1881-3.0047zm-8.111 0l1.7722 5.8393L16.75 7.482h2.4154l-3.6433 9.036h-2.3833l-1.6395-5.2366-1.7196 5.2366h-2.377l-1.233-2.1161 1.2144-3.7415 1.342 2.6609 1.9029-5.8393h1.8566zm-8.7453 0c1.0635 0 1.8713.3055 2.4234.9166a2.647 2.647 0 01.2806.3684l-1.0753 3.3128-.3847 1.1854c-.352.1006-.7533.1509-1.204.1509H2.2928v3.102H0V7.482zm-.5816 1.7532h-.866v2.4276h.8597c.5577 0 .9406-.1194 1.1485-.3582.1896-.215.2845-.5058.2845-.8724 0-.364-.1079-.6544-.3235-.8714-.2157-.217-.5834-.3256-1.1032-.3256z\"},\"child\":[]}]})(props);\n};\nexport function SiPycharm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.833 6.666v-.055c0-1-.667-1.5-1.778-1.5H4.389v3.055h1.723c1.111 0 1.721-.666 1.721-1.5zM0 0v24h24V0H0zm2.223 3.167h4c2.389 0 3.833 1.389 3.833 3.445v.055c0 2.278-1.778 3.5-4.001 3.5H4.389v2.945H2.223V3.167zM11.277 21h-9v-1.5h9V21zm4.779-7.777c-2.944.055-5.111-2.223-5.111-5.057C10.944 5.333 13.056 3 16.111 3c1.889 0 3 .611 3.944 1.556l-1.389 1.61c-.778-.722-1.556-1.111-2.556-1.111-1.658 0-2.873 1.375-2.887 3.084.014 1.709 1.174 3.083 2.887 3.083 1.111 0 1.833-.445 2.61-1.167l1.39 1.389c-.999 1.112-2.166 1.779-4.054 1.779z\"},\"child\":[]}]})(props);\n};\nexport function SiPycqa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.256 6.935c-.176 1.188-.244 1.694.88 1.694l-.008.068H0l.008-.068c1.008 0 1.096-.55 1.283-1.694l.518-3.331c.187-1.187.275-1.693-.745-1.693l.008-.068H4.57c1.893 0 2.901.47 2.901 1.618 0 1.9-2.127 2.383-3.761 2.383h-.176l.008-.08h.148c1.371 0 1.733-1.47 1.733-2.654 0-.825-.335-1.195-1.108-1.195h-.274zm7.905-1.251-.04-.008c-.657 2.511-1.303 3.096-2.343 3.096-1.35 0-1.315-1.008-1.203-1.685l.478-2.929c.028-.195-.127-.343-.402-.255l-.028-.028c.342-.167 1.028-.382 1.498-.382.558 0 .753.207.646.872l-.51 3.136c-.08.462.007.745.314.745.598 0 1.08-1.127 1.439-2.586.167-.677.442-1.94.107-2.108l.028-.028c1.331-.099 1.981-.079 1.734 1.511l-.53 3.359c-.275 1.725-2.566 3.419-3.734 3.419-1.961 0-2.578-1.734-3.977-1.734-.597 0-.825.283-.825.558 0 .243.168.462.518.462.235 0 .53-.235.423-.518 1.343-.135 1.371 1.881-.08 1.881-.753 0-1.155-.538-1.155-1.175 0-.961.88-2.156 2.163-2.156 2.264 0 3.144 2.331 3.706 2.331.733 0 .988-1.833 1.096-2.363zM5.034 22.261c-2.094-.397-3.679-2.239-3.679-4.447 0-2.499 2.028-4.527 4.526-4.527 2.499 0 4.527 2.028 4.527 4.527a4.51 4.51 0 0 1-.549 2.162l-1.754-3.034zm3.071-4.32 2.534 4.383H5.575zm7.604-8.397c-.957-.821-1.563-2.039-1.563-3.398 0-2.469 2.005-4.474 4.475-4.474 2.469 0 4.474 2.005 4.474 4.474 0 1.23-.497 2.344-1.3 3.154l.009.034c-.518.522-1.175.921-1.932 1.136-1.511.43-3.06.031-4.163-.926m5.925-.807c.599-.696.961-1.601.961-2.591 0-1.777-1.168-3.283-2.778-3.791zm.481 10.831 1.594 2.76H13.397l5.156-8.929 2.371 4.106H17.89v1.893l4.055-.001c.052.062.109.119.17.171m-3.725-1.563h3.831c.162-.292.473-.49.831-.49.523 0 .948.425.948.948 0 .524-.425.949-.948.949a.951.951 0 0 1-.844-.514H18.39z\"},\"child\":[]}]})(props);\n};\nexport function SiPydantic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.826 17.316-4.23-5.866-6.847-9.496c-.348-.48-1.151-.48-1.497 0l-6.845 9.494-4.233 5.868a.925.925 0 0 0 .46 1.417l11.078 3.626h.002a.92.92 0 0 0 .572 0h.002l11.077-3.626c.28-.092.5-.31.59-.592a.916.916 0 0 0-.13-.825h.002ZM12.001 4.07l4.44 6.158-4.152-1.36c-.032-.01-.066-.008-.098-.016a.8.8 0 0 0-.096-.016c-.032-.004-.062-.016-.094-.016s-.062.012-.094.016a.74.74 0 0 0-.096.016c-.032.006-.066.006-.096.016L7.59 10.221l-.026.008 4.44-6.158h-.002Zm-6.273 8.7 4.834-1.583.516-.168v9.19L2.41 17.372l3.317-4.6Zm7.197 7.437V11.02l5.35 1.752 3.316 4.598-8.666 2.838Z\"},\"child\":[]}]})(props);\n};\nexport function SiPyg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m15.649 8.066-2.65 2.724a1.142 1.142 0 0 0-.531-.18l-.288-2.611a1.15 1.15 0 0 0 .804-.893l2.464.36c0 .053.004.106.013.158.03.159.095.31.188.442Zm-4.413 3.465H8.67a1.135 1.135 0 0 0-.337-.58l2.806-3.148c.172.135.38.218.597.24l.286 2.616a1.148 1.148 0 0 0-.787.872Zm-6.715-.427 1.886.596c-.01.103-.006.207.011.31a1.154 1.154 0 0 0 1.347.919c.062-.012.122-.03.18-.053l2.46 3.033a1.141 1.141 0 0 0-.23.837l-2.73.904a1.148 1.148 0 0 0-1.143-.583l-2.168-5.542a1.14 1.14 0 0 0 .387-.42Zm3.064 7.07c0-.034-.008-.068-.008-.103l2.732-.907a1.15 1.15 0 0 0 2.067-1.002l2.589-1.664c.139.174.326.305.538.374l-.319 3.825c-.03.008-.06.002-.09.008a1.152 1.152 0 0 0-.856.708l-6.653-1.238ZM9.464 4.729l1.487 1.456c-.212.26-.298.6-.237.93.025.124.07.244.135.354l-2.9 3.255a1.135 1.135 0 0 0-1.42.555l-1.872-.592a1.153 1.153 0 0 0-.008-.341 1.135 1.135 0 0 0-.258-.53l3.883-4.88a1.135 1.135 0 0 0 1.19-.206Zm7.212 3.827a.974.974 0 0 0 .54-.175l3.208 3.35a1.144 1.144 0 0 0-.206.703l-3.359.783a1.152 1.152 0 0 0-.69-.538l.504-4.123h.003Zm1.175-4.003-.929 1.754a1.135 1.135 0 0 0-1.415.723l-2.532-.373a1.135 1.135 0 0 0-1.681-.763L9.735 4.375c.052-.105.087-.218.103-.334l7.613-.134c.056.254.197.482.4.645Zm-3.058 8.815a1.135 1.135 0 0 0-.064.637c.007.033.022.067.032.103l-2.63 1.692a1.154 1.154 0 0 0-.397-.258l.597-2.633a1.135 1.135 0 0 0 .91-.41l1.552.87Zm.858-.719a1.135 1.135 0 0 0-.62.337l-1.574-.879a1.124 1.124 0 0 0-.146-1.011l2.65-2.725c.084.056.176.1.273.131l-.505 4.143c-.027.003-.053.002-.078.004Zm-7.325.001a1.15 1.15 0 0 0 .36-.676h2.548c.071.37.32.683.665.835l-.6 2.65a1.19 1.19 0 0 0-.2.018 1.143 1.143 0 0 0-.364.14L8.326 12.65ZM13.9 23.927l-8.674-1.816 1.068-2.767c.119.017.24.016.357-.005a1.15 1.15 0 0 0 .863-.73l6.642 1.237c-.002.43.241.822.627 1.012l-.883 3.07Zm-9.041-2.09-4.82-7.372 2.852-2.947c.246.16.544.22.833.168l2.151 5.52a1.144 1.144 0 0 0 0 2L4.86 21.838Zm16.61-2.668-7.068 4.62.804-2.804c.105.011.212.008.316-.01.523-.1.91-.546.935-1.078l5.013-.728Zm.07-18.79L24 12.717l-1.483-.31a1.15 1.15 0 0 0-1.285-1.159l-2.104-6.58a1.15 1.15 0 0 0 .58-1.22 1.129 1.129 0 0 0-.25-.515L21.54.379Zm2.432 12.783-1.977 5.48-5.604.814a1.126 1.126 0 0 0-.201-.352l4.639-5.697c.594.322 1.338.06 1.598-.565l1.545.32ZM0 13.87 1.773 5.4l5.86-1.105c.06.15.152.287.268.4L4.046 9.54a1.135 1.135 0 0 0-.742-.115 1.154 1.154 0 0 0-.92 1.342c.03.16.095.312.189.445L0 13.869Zm20.737-2.444-3.212-3.35a1.135 1.135 0 0 0-.215-1.556l.93-1.755c.15.047.31.061.468.043l2.104 6.581-.075.037ZM21.199.1l-2.08 2.557a1.135 1.135 0 0 0-1.51.385L10.21.073 21.2.099ZM2.306 4.848 9.387.218l8.059 3.233v.014L9.822 3.6a1.15 1.15 0 0 0-2.27.26l-5.246.989Zm13.536 13.976a1.18 1.18 0 0 0-.225-.091l.32-3.808a1.01 1.01 0 0 0 .135-.012 1.15 1.15 0 0 0 .929-1.28l3.316-.768c.043.095.1.183.167.263l-4.642 5.696Z\"},\"child\":[]}]})(props);\n};\nexport function SiPypi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.922 13.58v3.912L20.55 18.72l-.078.055.052.037 3.45-1.256.026-.036v-3.997l-.053-.036-.025.092z M23.621 5.618l-3.04 1.107v3.912l3.339-1.215V5.509zM23.92 13.457V9.544l-3.336 1.215v3.913zM20.47 14.71V10.8L17.17 12v3.913zM17.034 19.996v-3.912l-3.313 1.206v3.912zM17.17 16.057v3.868l3.314-1.206V14.85l-3.314 1.206zm2.093 1.882c-.367.134-.663-.074-.663-.463s.296-.814.663-.947c.365-.133.662.075.662.464s-.297.814-.662.946z M13.225 9.315l.365-.132-3.285-1.197-3.323 1.21.102.037 3.184 1.16zM20.507 10.664V6.751L17.17 7.965v3.913zM17.058 11.918V8.005l-3.302 1.202v3.912zM13.643 9.246l-3.336 1.215v3.913l3.336-1.215zM6.907 13.165l3.322 1.209v-3.913L6.907 9.252z M10.34 7.873l3.281 1.193V5.198l-3.28-1.193zM20.507 2.715L17.19 3.922v3.913l3.317-1.207zM16.95 3.903L13.724 2.73l-3.269 1.19 3.225 1.174zM15.365 4.606l-1.624.592v3.868l3.317-1.207V3.991l-1.693.615zm-.391 2.778c-.367.134-.662-.074-.662-.464s.295-.813.662-.946c.366-.133.663.074.663.464s-.297.813-.663.946z M10.229 18.41v-3.914l-3.322-1.209V17.2zM13.678 17.182v-3.913l-3.371 1.227v3.913z M13.756 17.154l3.3-1.2V12.04l-3.3 1.2zM13.678 21.217l-3.371 1.227v-3.912h-.078v3.912l-3.322-1.209v-3.913l-.053-.058-.025-.06-3.336-1.21v-3.948l.034.013 3.287 1.196.015-.078-3.261-1.187 3.26-1.187v-.109L3.876 9.62l-.307-.112 3.26-1.188v.877l.079-.055V6.769l3.257 1.185.058-.061L7.084 6.75l-.102-.037 3.24-1.179v-.083L6.854 6.677v.018l-.025.018v1.523L3.44 9.47v.02l-.025.017v4.007l-3.39 1.233v.019L0 14.784v3.995l.025.037 3.4 1.237.008-.006.007.01 3.4 1.238.008-.006.006.01 3.4 1.237.014-.009.012.01 3.45-1.256.026-.037-.078-.027zM3.493 9.563l3.257 1.185-3.257 1.187V9.562zM3.4 19.96L.078 18.752v-3.913l2.361.86.96.349v3.913zm.015-3.99L.335 14.85l-.182-.066 3.262-1.187v2.374zm3.399 5.231l-3.321-1.209v-3.912l3.321 1.209v3.912zM23.791 5.434l-3.21-1.17v2.338zM20.387 2.643l-3.24-1.18-3.27 1.19 3.247 1.182z\"},\"child\":[]}]})(props);\n};\nexport function SiPypy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.947 0c-.099 0-.2.005-.3.016a2.706 2.706 0 0 0-1.27.447c-.164.009-.324.038-.488.053-1.78.279-3.037 1.197-3.92 2.286-1.702 2.515-1.711 6.092-1.481 8.471a6.55 6.55 0 0 1 1.86-3.765c.069-.069.15-.136.22-.217l.034-.034c.09-.078.18-.154.272-.228a8.87 8.87 0 0 1 .416-.309c.028-.014.056-.027.084-.055l.436-.273.03-.016.068-.035a4.99 4.99 0 0 1 .478-.225c.029-.014.07-.029.098-.043.127-.056.268-.098.395-.14-.002-.003-.006-.004-.008-.006l.022-.008a2.162 2.162 0 0 0-.268-.238 1.827 1.827 0 0 0-.731-.268 3.248 3.248 0 0 0-.829-.041 4.37 4.37 0 0 0-.799.115c.248-.102.497-.19.77-.242.279-.07.573-.111.88-.112.265 0 .55.036.82.135l.002.004c.028.014.042.015.07.03.07.028.155.069.225.11.01.006.017.013.026.018l.002.012c.14.084.268.196.394.323l.014.013c.004 0 .006 0 .01-.002a2.821 2.821 0 0 0 2.407.944l.254-.04h.041l.557-.114c1.867-.435 2.185-.507 3.135-1.036.4-.321.562-.548.63-.762.07-.217.055-.455.073-.797l-.002.01c-.001-.374-.282-.8-.696-1.22-.41-.417-.932-.824-1.366-1.196-.53-.374-.785-.718-1.031-.973a1.669 1.669 0 0 0-.63-.434A2.778 2.778 0 0 0 12.947 0zm2.362.934c.12.113.231.224.405.346l.008.004.005.006c.425.365.963.78 1.402 1.225.438.446.795.93.797 1.465v.004l-.002.006c-.017.319.008.589-.088.885-.096.297-.311.588-.754.94l-.012.01-.012.008a9.773 9.773 0 0 1-.584.303c1.232.485 2.467 1.071 3.808 2.118v-.002c1.21.937 2.345 2.057 3.49 3.74-.105-5.25-3.649-9.647-8.463-11.058zM8.534.98a11.576 11.576 0 0 0-2.155.897c-.07.038-.14.08-.209.12a11.768 11.768 0 0 0-5.942 10.02c.033 1.843.683 3.221 1.708 4.232 1.061 1.048 2.528 1.703 4.109 2.034 1.585.333 3.247.442 4.743.362a6.236 6.236 0 0 1-1.92-.692 11.15 11.15 0 0 1-.55-.322 12.475 12.475 0 0 1-.45-.338l-.295-.252a1.697 1.697 0 0 1-.225-.225 6.776 6.776 0 0 1-1.237-1.702c-.028-.056-.056-.126-.084-.182a6.412 6.412 0 0 1-.318-.858c-.104-.294-.318-.938-.489-2.003v-.006c-.299-2.347-.525-6.536 1.464-9.467l.004-.006.004-.006A6.873 6.873 0 0 1 8.534.98zm4.776 3.853c.059-.001.12 0 .182.004.492.043.87.282.856.55-.028.252-.434.436-.926.408-.492-.042-.872-.282-.858-.55.012-.233.336-.401.746-.412zm2.699 1.491c-.164.061-.451.142-.657.2 1.835 1.094 3.106 3.045 3.215 5.315l.004.068c.003.077.006.153.007.233v.04c0 .037-.005.072-.006.108.101 2.366-.31 3.562-1.291 5.62v.002c-.99 2.092-3.237 4.63-5.012 6.089 6.255-.14 11.293-5.145 11.494-11.384-1.22-1.9-2.408-3.086-3.696-4.084-1.43-1.117-2.725-1.7-4.058-2.207zm2.104 8.256c-.045.118-.087.238-.138.352-.029.056-.056.126-.084.182a6.537 6.537 0 0 1-1.462 1.927l-.295.252c-.14.112-.295.225-.45.338a5.13 5.13 0 0 1-.549.322c-.183.1-.375.185-.568.268v.002l-.016.006a6.555 6.555 0 0 1-.412.154c-2.013.742-5.2.867-8.166.244-1.63-.341-3.157-1.02-4.282-2.13a5.941 5.941 0 0 1-1.164-1.625C1.703 20.009 6.232 23.859 11.694 24c1.76-1.35 4.256-4.096 5.27-6.241v-.002c.598-1.253.97-2.146 1.15-3.178z\"},\"child\":[]}]})(props);\n};\nexport function SiPyscaffold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.402 2.06C.357 2.06 0 5.626 0 5.626l5.36.996s-3.65.862-4.227 1.054c.167.456 1.701.623 1.701.623h5.434c.886 0 1.342-.815 1.342-.815h9.056c.193 0 1.366 0 1.366 1.582 0 1.583-1.366 1.777-1.366 1.777H7.787c-.175 0-1.577.258-2.765 1.361h.077v.11h-.184a5.18 5.18 0 00-1.352 2.327h4.57c.154-.072.27-.11.27-.11h10.208c1.819.003 3.51-.837 4.466-2.218h-.282v-.11h.331c.523-.907.865-2.176.874-3.068 0-3.73-2.84-5.527-4.72-5.527h-9.25c-.61-1.192-2.101-1.55-2.101-1.55h-.896l.316 1.096h-.283v4.02h.283c-.107.367-.212.736-.318 1.105l-.318-1.106h.261V3.155h-.26l.315-1.096zm.788 1.419a.557.557 0 01.566.56.553.553 0 01-.561.56c-.747.003-.752-1.117-.005-1.12zm2.019 8.726h.33v.108h-.33zm.44 0h.33v.108h-.33zm.439 0h.332v.108h-.331l-.001-.108zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.768 0v.108h-.327v-.11c.101.005.22.001.327.002zm.109 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.329v.108h-.33l.001-.108zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.329v.108h-.33l.001-.108zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.329v.108h-.33l.001-.108zm.439 0h.33v.108h-.33v-.11zm.44 0h.33v.108h-.33v-.11zm.44 0h.33v.108h-.33v-.11zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.329v.108h-.33l.001-.108zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.329v.108h-.33l.001-.108zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.33v.108h-.33zm.44 0h.329v.108h-.33l.001-.108zm.439 0h.33v.108h-.33zm.44 0h.33v.108h-.33v-.108zM3.52 14.812c-.015.061-.022.13-.036.193l.277-.192-.241-.001zm.543 0l-.622.43a7.27 7.27 0 00-.097.765l1.726-1.194zm1.306 0l-2.038 1.412c-.005.11-.019.208-.019.321 0 .184.017.351.03.524l3.262-2.256-1.235-.001zm1.532 0L3.354 17.27c.022.217.057.418.099.615 1.38-.925 2.753-1.89 4.123-2.838.09-.093.182-.17.273-.233-.314.001-.64-.001-.948-.002zm.404.627l-3.532 2.445h.992l2.337-1.62c.005-.284.073-.565.2-.825zm-.203 1.037l-2.039 1.408h1.003l1.149-.795a2.066 2.066 0 01-.113-.614zm.173.778l-.908.63h.843l.336-.233a1.539 1.539 0 01-.27-.398zm.397.517l-.163.113h.348c-.064-.041-.119-.055-.185-.113zm-4.186.283c.835 3.483 4.47 3.888 4.47 3.888h7.856c2.412 0 4.141-3.805 4.141-3.805-3.864.002-7.729-.007-11.593-.012 0 0-.092-.018-.224-.071H3.485zm9.045.099l.26 1h-.231v1.786h.23l-.259.98-.275-.98h.211v-1.787h-.21Z\"},\"child\":[]}]})(props);\n};\nexport function SiPysyft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.524 17.985 1.413-.46V13.64Zm6.485-5.632L24 9.305l-6.786-4.93zm-4.346-4.515 2.414 7.422 1.489-2.052zm.136 3.2 1.59 4.898-1.59 1.156zM9.732 20.19l3.688-1.198H8.863ZM12 22.03l4.159-3.023-5.747 1.87zm3.266 1.225 3.894-5.363-6.305 4.581zm4.149.158h-3.2l5.788-7.967Zm-9.657-1.947-6.305-4.581v2.532zm-5.175 1.947h8.377l-9.365-3.045Zm-.365-9.346-.607 1.87 4.16 3.021zm2.722 2.284-2.278-3.14.87-1.197ZM0 9.305l2.592 7.98V7.422Zm5.865-3.091-2.41.784v6.635Zm.952-.14-1.593 4.898 3.561-4.897Zm2.915.159 1.413.46-3.696 2.685zm4.863-3.761L11.998.587 5.206 5.52ZM8.946 5.213h7.81L15.267 3.16zm3.083.862 5.765 1.872-.61-1.872zm5.908 2.823v1.488l-3.702-2.688Z\"},\"child\":[]}]})(props);\n};\nexport function SiPytest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.6152 0v.8867h3.8399V0zm5.0215 0v.8867h3.8418V0zm4.957 0v.8867h3.8418V0zm4.9356 0v.8867h3.8418V0zM2.4473 1.8945a.935.935 0 0 0-.9356.9356c0 .517.4185.9375.9356.9375h19.1054c.5171 0 .9356-.4204.9356-.9375a.935.935 0 0 0-.9356-.9356zm.168 2.8477V24H6.455V4.7422zm5.0214 0V20.543h3.8418V4.7422zm4.957 0V15.291h3.8497V4.7422zm4.9356 0v6.4941h3.8418V4.7422z\"},\"child\":[]}]})(props);\n};\nexport function SiPython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\"},\"child\":[]}]})(props);\n};\nexport function SiPythonanywhere (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.435 20.69c-.09-.11-.219-.182-.328-.255-.092-.055-.128-.11-.11-.238.183-1.077.347-2.154.511-3.25.11-.73.22-1.46.347-2.227.165.11.329.22.475.329.036.036.018.091.018.128-.036.255-.073.53-.128.785l-.273 1.77-.274 1.753c-.019.146-.037.31-.073.457.073.018.11-.037.164-.055 1.387-.73 2.775-1.442 4.163-2.173l.11-.054c.036-.019.072-.037.109 0 .146.09.292.2.456.31-.073.036-.11.073-.164.091-1.607.84-3.195 1.68-4.802 2.52-.055.018-.11.036-.128.091l-.073.018zm-4.874-9.858c-.037.292-.091.547-.128.803-.128.84-.274 1.661-.402 2.501-.073.493-.164.986-.237 1.479-.018.091-.055.128-.128.146-.146.036-.31.091-.456.146-.018-.037 0-.073 0-.11.146-.912.292-1.807.438-2.72.146-.876.274-1.77.42-2.647.018-.073.036-.128.128-.146.127-.037.237-.073.365-.11.073-.036.128-.018.2.037l.932.93c.986.987 1.99 1.973 2.976 2.94.018.019.036.055.073.073-.183.073-.366.11-.53.183-.055.018-.091-.037-.11-.055-.237-.237-.474-.475-.73-.712a375.76 375.76 0 0 1-2.702-2.684c-.036 0-.054-.018-.11-.054m4.748 2.83a8.286 8.286 0 0 1-.402-.384c-.037-.037-.018-.091 0-.128.11-.328.219-.657.347-.986l1.205-3.45a.338.338 0 0 0 .036-.128c-.073-.018-.128.018-.182.036-1.497.475-2.976.932-4.473 1.406-.238.073-.165.092-.329-.073l-.274-.274c.037-.054.11-.054.165-.073 1.734-.547 3.468-1.095 5.185-1.643.127-.036.2-.018.292.073.054.073.146.146.219.22.073.054.073.127.054.2-.2.548-.383 1.096-.584 1.643-.401 1.15-.803 2.3-1.205 3.433a.318.318 0 0 1-.054.127m-.31 1.15a5.268 5.268 0 0 0-.074.53c0 .073-.055.073-.11.091-.401.128-.784.256-1.168.365-1.132.366-2.282.712-3.414 1.078-.036.018-.091.036-.146.054a.284.284 0 0 0 .146.11c1.278.876 2.556 1.77 3.834 2.647.11.073.183.146.128.292-.037.128-.037.256-.073.384-.055 0-.091-.037-.128-.055C8.496 19.284 7 18.244 5.502 17.22c-.091-.073-.128-.127-.11-.255.019-.11.055-.201.055-.31 0-.092.055-.128.128-.147 1.77-.566 3.56-1.113 5.33-1.68.02 0 .056 0 .092-.017M6.944 3.62c-.018.183-.055.365-.073.53 0 .073-.073.073-.128.073-.328.11-.675.2-1.004.31-1.205.365-2.391.73-3.596 1.095-.037.019-.092.019-.128.073.055.037.091.073.146.11 1.278.895 2.538 1.807 3.816 2.702.09.073.127.128.11.256a3.37 3.37 0 0 0-.074.42c-.055-.019-.091-.055-.146-.074L1.431 5.994c-.11-.074-.146-.147-.11-.256.018-.11.037-.2.055-.31 0-.073.036-.11.128-.147l1.26-.383c1.35-.402 2.683-.821 4.034-1.223.037-.037.091-.037.146-.055m5.477 3.725c-.146.054-.292.09-.438.146-.091.036-.164.018-.237-.055-.493-.511-1.004-1.004-1.516-1.516a183.922 183.922 0 0 0-1.825-1.807c-.037-.036-.055-.091-.128-.11a6.081 6.081 0 0 0-.091.566c-.146.859-.274 1.717-.42 2.556-.092.548-.183 1.078-.256 1.625-.018.092-.036.128-.128.146-.146.037-.31.092-.456.146-.018-.11.018-.2.036-.273l.548-3.396c.091-.603.201-1.205.292-1.808.019-.073.037-.11.11-.127.128-.037.237-.073.365-.11.091-.037.146-.018.219.055l1.46 1.46c.786.785 1.589 1.57 2.374 2.355.018.037.073.073.091.147m.672 7.755a3.728 3.728 0 0 1-.13-.76c-.115-.959-.014-1.885.36-2.774.572-1.388 1.56-2.417 2.904-3.073a8.12 8.12 0 0 1 2.116-.676c.05.059.027.13.023.185l.032.332c.013.074-.026.108-.1.12-.484.113-.97.262-1.423.469-1.228.536-2.164 1.367-2.76 2.57a4.954 4.954 0 0 0-.526 2.544c.02.24.04.478.078.719.013.074.009.129-.085.159a3.57 3.57 0 0 0-.489.185m2.53 1.77c.013-.183.006-.348.02-.53.004-.073.025-.108.117-.12.481-.076.947-.19 1.382-.397 1.606-.712 2.66-1.92 3.09-3.628.177-.683.207-1.376.146-2.076.002-.036-.012-.092-.01-.129.006-.072-.06-.169-.002-.22.04-.052.131-.045.205-.058.13-.028.242-.057.373-.102.057.242.075.5.077.737a7.32 7.32 0 0 1-.054 1.552 5.652 5.652 0 0 1-1.478 3.081c-.87.928-1.953 1.492-3.179 1.754a2.843 2.843 0 0 1-.687.135m5.343-10.442c.054.004.075-.032.113-.047a54.441 54.441 0 0 1 2.265-1.251c.039-.034.095-.048.147-.008.157.102.333.206.509.31a.555.555 0 0 1-.134.082c-.95.501-1.917.983-2.867 1.483a.865.865 0 0 0-.195.17c-.349.543-.718 1.103-1.067 1.646-.062.105-.062.105-.167.043-.106-.063-.193-.124-.299-.186-.105-.062-.105-.062-.044-.15l.677-1.05c.143-.21.268-.42.41-.63a.368.368 0 0 0 .07-.197 182.142 182.142 0 0 1 .211-3.297c.142.064.263.164.405.23.16.083.19.177.176.36a76.356 76.356 0 0 0-.16 2.038c-.01.145-.039.29-.05.454m-3.882 4.468c-.018.255-.316.6-.575.637a.458.458 0 0 1-.465-.16.43.43 0 0 1-.077-.463.87.87 0 0 1 .436-.482.445.445 0 0 1 .474.033c.156.12.238.255.207.435m1.856 1.21c-.018.255-.317.6-.577.655-.186.042-.328-.023-.464-.16a.4.4 0 0 1-.08-.445c.09-.232.23-.405.457-.5.322-.16.688.104.664.45M.883 6.432c.164.091.292.2.456.31.055.037.037.091.019.146l-.165 1.04c-.2 1.242-.401 2.465-.602 3.707 0 .036-.037.091 0 .146.055-.037.11-.055.164-.091l4.108-2.246c.11-.055.182-.055.274.018.11.092.219.165.347.256-.037.055-.092.073-.128.091-1.589.877-3.177 1.735-4.747 2.61-.11.056-.183.074-.274-.017-.073-.073-.164-.128-.255-.183-.073-.036-.092-.091-.073-.164.073-.438.146-.858.2-1.296.22-1.388.457-2.776.676-4.163a.253.253 0 0 1 0-.164\"},\"child\":[]}]})(props);\n};\nexport function SiPytorch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.005 0L4.952 7.053a9.865 9.865 0 000 14.022 9.866 9.866 0 0014.022 0c3.984-3.9 3.986-10.205.085-14.023l-1.744 1.743c2.904 2.905 2.904 7.634 0 10.538s-7.634 2.904-10.538 0-2.904-7.634 0-10.538l4.647-4.646.582-.665zm3.568 3.899a1.327 1.327 0 00-1.327 1.327 1.327 1.327 0 001.327 1.328A1.327 1.327 0 0016.9 5.226 1.327 1.327 0 0015.573 3.9z\"},\"child\":[]}]})(props);\n};\nexport function SiPyup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L1.608 6v12l3.984 2.3v-12L12 4.6l6.408 3.7v7.4L12 19.4l-2.95-1.705v4.602L12 24l10.392-6V6zm0 8.593l-2.95 1.703v3.408L12 15.407l2.95-1.703v-3.408z\"},\"child\":[]}]})(props);\n};\nexport function SiQantas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3.47l.218.572c1.925 5.006 5.566 2.689 10.415 7.139l.056.05c.652.599 1.1.044.888-.306a.76.76 0 0 1-.165-.532 6.7 6.7 0 0 1 2.606 1.369l-.06.126c-.366.73-3.959.421-4 1.943a.969.969 0 0 0 .607.923l.71.287a17.34 17.34 0 0 1 6.086 4.146.086.086 0 0 1-.063.147.079.079 0 0 1-.054-.018 17.32 17.32 0 0 0-8.173-3.61.467.467 0 0 1-.39-.41c-.548-5.089-5.575-5.434-7.492-8.705l5.313 13.94H24L9.979 6.449a10.022 10.022 0 0 0-7.045-2.98Z\"},\"child\":[]}]})(props);\n};\nexport function SiQase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.85 18.994s-.802.46-1.795.28c-.19-.03-.37-.1-.551-.19a11.768 11.768 0 0 0 2.367-7.088C23.87 5.428 18.525.1 11.935.1S0 5.428 0 11.996c0 6.568 5.346 11.897 11.935 11.897 2.087 0 4.042-.54 5.747-1.47.562.59 1.344 1.21 2.297 1.4 1.796.34 3.1-.48 3.631-1.58.451-.96.482-2.1.24-3.249m-11.925-.13c-3.79 0-6.88-3.079-6.88-6.858 0-3.779 3.09-6.858 6.88-6.858 3.792 0 6.89 3.07 6.89 6.848 0 1.16-.29 2.26-.812 3.22-.15-.19-.28-.37-.37-.49-.352-.48-.713-.97-1.064-1.47-.461-.65-1.524-1.95-2.989-2.23-1.795-.34-3.099.48-3.63 1.58-.452.96-.482 2.1-.251 3.239 0 0 .802-.46 1.795-.28.722.13 1.404.68 2.277 1.76.07.09.371.49.772 1.01-.802.34-1.685.53-2.618.53\"},\"child\":[]}]})(props);\n};\nexport function SiQatarairways (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.633 13.143c.011.283.008.564-.006.84-2.752.11-5.362.274-5.362.462 0 .183 2.552.347 5.27.454a7.221 7.221 0 0 1-.186.924c-2.68.11-5.17.273-5.17.456 0 .174 2.326.33 4.897.44-.116.33-.25.647-.396.954-2.21.105-4.04.247-4.04.402 0 .145 1.595.279 3.609.38a9.968 9.968 0 0 1-.354.536c-.134.184-.274.369-.422.55-1.26.094-2.123.203-2.123.32 0 .1.616.193 1.568.276a9.055 9.055 0 0 1-1.856 1.414s-.854-.733-1.557-1.592c-.63-.764-1.96-2.78-2.271-3.229-.314-.451-.52-.585-.887-.453-.491.173-1.063.26-1.238.26-.176 0-.271-.067.025-.184.291-.118 1.45-.665 2.023-1.799.64-1.274.077-3.033.077-3.033-.216.94-.705 1.29-.705 1.29.159-.872-.014-1.664-.446-2.22l-.24 1.107s-.15-.01-.525.304c-.37.314-.474.77-.474.77.296.12.644-.176.644-.176-.446 1.685-1.093 3.054-1.562 3.78-.472.724-.856.998-1.33 1.19-.396.159-.529-.028-.529-.028a7.17 7.17 0 0 1-.878-.902s-.021-.04.05-.036c.196.003.54-.327.616-.467.084-.158.078-.277.033-.286-.04-.007-.115.119-.492.353-.37.236-.537.074-.665-.06-.093-.1 0-.232.057-.312.06-.074 2.025-3.736 7.222-7.588 6.822-5.045 11.171-6.405 11.42-6.505.166-.065.434-.15.496-.088.065.071.1.128.088.211-.008.082-.05.123-.363.262-2.62 1.154-5.674 3.073-7.408 4.191-2.136 1.04-4.172 2.525-4.245 2.561-.164.101-.046.25.058.188 3.6-2.397 7.826-4.03 12.498-5.368.22-.062.342-.062.382-.014a.377.377 0 0 1 .064.187c.006.084-.064.13-.258.206-5.011 1.864-8.71 3.592-11.091 5.194 0 0-.245.146-.248.318 0 .065.132.073.132.073 1.19.021 2.784.092 3.538.136 0 0-.104.384-.83.692-.56.24-1.077.202-1.592.204-.117 0-.21.112-.122.238.047.06 1.14 1.816 5.104 2.217m-9.09 3.693c-.539.193-1.177.296-1.437.296-.451 0-1.189.25-1.45.476a337.1 337.1 0 0 0 3.413-.069 58.21 58.21 0 0 1-.322-.472 1.552 1.552 0 0 0-.187-.236c-.01.003-.008 0-.016.005M2.92 8.682c1.43 0 4.068-.035 6.675-.095.297-.239.606-.477.928-.718-2.89-.073-6.003-.119-7.603-.119-.676 0-1.226.21-1.226.466 0 .257.55.465 1.226.465m.407-2.247c0 .202.433.366.965.366 1.631 0 5.267-.059 7.918-.15.198-.138.395-.279.591-.411a283.4 283.4 0 0 0-8.509-.171c-.532 0-.965.164-.965.366m11.784 5.069c.29.173.647.348 1.085.508 1.387-.07 2.28-.147 2.28-.23 0-.1-1.374-.195-3.365-.278m-13.018-.982c1.214 0 3.196-.023 5.36-.064.309-.298.642-.6.991-.906a352.416 352.416 0 0 0-6.351-.082c-.762 0-1.378.236-1.378.526 0 .29.616.526 1.378.526m13.8-2.448a30.5 30.5 0 0 0-.606.322c1.023-.055 1.67-.115 1.67-.179 0-.05-.402-.097-1.063-.143m-9.433-2.8c1.556 0 6.286-.116 6.286-.258 0-.145-4.732-.261-6.286-.261-.301 0-.547.116-.547.26 0 .143.246.26.547.26M16.645 9.95a.89.89 0 0 1-.095.218c.862-.054 1.391-.113 1.391-.173 0-.058-.479-.113-1.264-.165zm-5.878 8.619c-2.952-.077-6.2-.124-7.846-.124-.676 0-1.226.209-1.226.466 0 .256.55.465 1.226.465 1.735 0 5.237-.053 8.314-.137-.156-.22-.313-.445-.468-.67m1.402 1.905c-2.654-.09-6.254-.148-7.876-.148-.532 0-.965.164-.965.367 0 .2.433.364.965.364 1.702 0 5.575-.062 8.245-.161a13.13 13.13 0 0 1-.37-.422m-6.253 1.638c0 .142.246.262.547.262 1.554 0 6.286-.12 6.286-.262 0-.143-4.73-.258-6.286-.258-.301 0-.547.115-.547.258m-2.798-6.218c.028-.13.087-.274.205-.43-.017.02-.024.039-.006.007.106-.183.244-.41.419-.671-.814-.009-1.53-.014-2.093-.014-.808 0-1.465.25-1.465.558 0 .309.657.558 1.465.558.415 0 .915-.003 1.475-.008m1.2 1.748c-.198-.193-.862-.957-.943-1.03-.483-.003-.918-.006-1.28-.006-.762 0-1.378.234-1.378.527 0 .288.616.525 1.378.525.587 0 1.348-.007 2.223-.016m-.105-3.532c.243-.327.517-.692.839-1.084-1.427-.019-2.678-.03-3.556-.03-.827 0-1.495.254-1.495.567 0 .313.668.568 1.495.568.698 0 1.644-.007 2.717-.02m-2.57-1.771c.97 0 2.404-.015 4.025-.039.298-.327.607-.67.949-1.023a298.993 298.993 0 0 0-4.974-.052c-.808 0-1.465.246-1.465.556 0 .31.657.558 1.465.558Z\"},\"child\":[]}]})(props);\n};\nexport function SiQbittorrent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.911 23.994c-1.31 0-2.605-.232-3.831-.705-3.4-1.024-6.2-3.865-7.433-7.58-1.23-3.708-.685-7.654 1.459-10.554C4.062 2.038 7.677.094 11.742.008c4.064-.079 7.758 1.703 9.882 4.785a12.066 12.066 0 0 1 2.369 7.145c.138 3.733-1.75 7.368-5.052 9.728-2.147 1.535-4.61 2.328-7.03 2.328zm.11-22.314c-.081 0-.162 0-.244.002-3.5.074-6.599 1.725-8.29 4.415-1.856 2.516-2.31 5.893-1.25 9.086 1.06 3.197 3.448 5.636 6.386 6.523 3.025 1.165 6.496.633 9.345-1.402 2.847-2.035 4.473-5.144 4.351-8.318v-.032c0-2.214-.73-4.41-2.055-6.185-1.78-2.58-4.84-4.09-8.243-4.09zM9.406 20.246v-4.578a2.663 2.663 0 0 1-.952.863 2.573 2.573 0 0 1-1.29.344c-1.016 0-1.893-.444-2.63-1.33-.731-.887-1.097-2.102-1.097-3.646 0-.939.148-1.781.444-2.527.301-.746.734-1.309 1.299-1.69A3.26 3.26 0 0 1 7.052 7.1c1.058 0 1.891.487 2.5 1.46v-1.25h1.306v12.935H9.406zm-4.477-8.285c0 1.203.232 2.108.694 2.711.463.6 1.016.9 1.662.9.619 0 1.15-.286 1.597-.855.446-.576.67-1.447.67-2.615 0-1.245-.237-2.18-.71-2.81-.468-.627-1.02-.941-1.654-.941-.63 0-1.164.293-1.605.88-.435.581-.654 1.491-.654 2.73m9.55 4.702h-1.346V3.755h1.452v4.604c.613-.84 1.395-1.258 2.347-1.258.526 0 1.024.117 1.492.351.464.222.864.558 1.161.978.307.416.546.922.718 1.514.172.593.258 1.227.258 1.902 0 1.603-.363 2.841-1.088 3.716-.727.874-1.598 1.312-2.614 1.312-1.011 0-1.804-.46-2.379-1.382v1.17m-.016-4.746c0 1.122.14 1.932.42 2.432.456.815 1.074 1.223 1.854 1.223.635 0 1.183-.3 1.646-.898.462-.604.693-1.503.693-2.695 0-1.22-.224-2.122-.67-2.703-.44-.58-.975-.872-1.605-.872-.634 0-1.182.303-1.645.907-.463.6-.694 1.468-.694 2.607\"},\"child\":[]}]})(props);\n};\nexport function SiQemu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.003.064C5.376.064 0 5.407 0 12s5.376 11.936 12.003 11.936c2.169 0 4.2-.57 5.955-1.57l.624 1.57h4.841l-1.893-4.679A11.845 11.845 0 0024 12C24 5.407 18.63.064 12.003.064zM8.818 2.03c.398.339.324.198.86.134.61-.397.893.942 1.147.195.748.097 1.542.34 2.25.584a3.447 3.447 0 011.859 1.128l-.014.007.35.463c.045.08.082.164.12.248.142 1.205 1.48 1.19 2.377 1.625.767.272 1.69.686 1.785 1.611-.193-.042-.941-.921-1.53-1.007a3.919 3.919 0 01-1.094-.255L14.86 6.38v-.007a3.035 3.035 0 01-.309-.053v.013l-2.927-.362c.048.033.1.077.148.12l3 .585v-.007l.209.053.839.188c.166.016.334.043.47.067.856.236 1.868.194 2.571.792-.184.352-1.21.153-1.719.108-.062-.012-.131-.023-.194-.034l-.034-.007c-.696-.113-1.411-.12-2.081.088h-.007a3.193 3.193 0 00-.671.302c-.968.563-2.164.767-2.967 1.577-.787.847-.739 2.012-.604 3.095h.033v.275c.013.095.028.19.04.282.41 2.19 1.5 4.2 1.84 6.412.065.843.203 1.932.309 2.618-.306-.091-.475-1.462-.544-1.007a38.196 38.196 0 00-3.565-5.25c-.853-1.004-1.697-2.06-2.712-2.894-.685-.528-.468-1.55-.537-2.302-.23-.926-.094-1.848.06-2.773.313-.963.418-1.968.846-2.893.653-.581.669-1.63 1.303-2.135.094.058.157.085.2.1l.068.008h.007c.09-.095-.888-1.116.02-.712.035-.537.854-.128.866-.597zm3.847 2.182c-.323.009-.574.13-.645.335-.114.33.273.755.866.96.594.205 1.168.109 1.282-.221.114-.33-.272-.762-.866-.967a1.842 1.842 0 00-.637-.107z\"},\"child\":[]}]})(props);\n};\nexport function SiQgis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.879 13.006v3.65l-3.004-3.048v-3.495h3.582l2.852 2.893h-3.43zm10.886 7.606V24h-3.654l-5.73-5.9v-3.55h3.354l6.03 6.062zm-10.828-1.448l3.372 3.371c-1.309.442-2.557.726-4.325.726C5.136 23.26 0 18.243 0 11.565 0 4.92 5.136 0 11.984 0 18.864 0 24 4.952 24 11.565c0 2.12-.523 4.076-1.457 5.759l-3.625-3.725a8.393 8.393 0 0 0 .24-2.005c0-4.291-3.148-7.527-7.1-7.527-3.954 0-7.248 3.236-7.248 7.527s3.33 7.6 7.247 7.6c.548 0 .661.017.88-.03z\"},\"child\":[]}]})(props);\n};\nexport function SiQi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5742 0c-.8422 0-1.525.6826-1.525 1.5247 0 .8424.6828 1.525 1.525 1.525s1.5247-.6826 1.5247-1.525C18.0989.6826 17.4164 0 16.5742 0zm-4.6371 2.856c-1.7103.0124-3.4264.5973-4.8392 1.7828-3.2263 2.7071-3.6471 7.5175-.94 10.7439 1.4616 1.7419 3.5365 2.6653 5.6439 2.7208.2966 0 .2966.293.2966.293v2.65s.0002 2.7624 2.6567 2.9532c.2952.0103.2953-.295.2953-.295V3.7857s0-.2943-.295-.415a7.665 7.665 0 0 0-2.8183-.5147zm4.7479 1.662c-.1097-.0016-.1097.1789-.1097.3891v11.1466c0 .2941 0 .5266.2948.2954.0104-.009.0211-.0175.0318-.0266 3.2265-2.707 3.6474-7.5175.94-10.7437a7.5925 7.5925 0 0 0-.9713-.9659c-.083-.0656-.1427-.0941-.1856-.0948zm-4.7515 1.3885c.165 0 .165.1642.165.1642v8.8198s0 .1644-.165.1644c-1.2823-.0192-2.5496-.5735-3.4386-1.633-1.6245-1.936-1.3719-4.8217.5639-6.4464.8395-.7046 1.8582-1.0549 2.8747-1.069z\"},\"child\":[]}]})(props);\n};\nexport function SiQiita (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.57 8.343a3.653 3.653 0 0 0-1.376.269 3.585 3.585 0 0 0-1.14.738 3.503 3.503 0 0 0-.773 1.102A3.297 3.297 0 0 0 0 11.814a3.28 3.28 0 0 0 .281 1.357 3.535 3.535 0 0 0 .775 1.107A3.636 3.636 0 0 0 3.6 15.29a3.731 3.731 0 0 0 .987-.13 3.657 3.657 0 0 0 .888-.374l.687.698a.579.579 0 0 0 .824 0 .58.58 0 0 0 0-.817l-.624-.624a3.533 3.533 0 0 0 .613-1.022 3.282 3.282 0 0 0 .226-1.208 3.297 3.297 0 0 0-.282-1.362 3.488 3.488 0 0 0-.775-1.102A3.614 3.614 0 0 0 5 8.612a3.657 3.657 0 0 0-1.398-.27 3.653 3.653 0 0 0-.031 0zm11.306.185v1.484h-.765v1.063h.765v2.142c0 .419.053.761.159 1.028a1.56 1.56 0 0 0 .433.63 1.511 1.511 0 0 0 .643.317 2.676 2.676 0 0 0 .694.086h.853v-1.013h-.736a1.25 1.25 0 0 1-.352-.048.713.713 0 0 1-.291-.169.81.81 0 0 1-.2-.324 1.575 1.575 0 0 1-.074-.519v-2.13h1.666v-1.063h-1.66V8.528zM9.4 8.856a.69.69 0 0 0-.69.691.69.69 0 0 0 .69.69.69.69 0 0 0 .691-.69.69.69 0 0 0-.69-.691zm2.771 0a.69.69 0 0 0-.69.691.69.69 0 0 0 .69.69.69.69 0 0 0 .691-.69.69.69 0 0 0-.69-.691zm-8.6.538a2.324 2.324 0 0 1 .03 0 2.35 2.35 0 0 1 .93.187 2.346 2.346 0 0 1 1.264 1.28 2.463 2.463 0 0 1 .186.957 2.444 2.444 0 0 1-.186.957 2.384 2.384 0 0 1-.506.767 2.363 2.363 0 0 1-1.688.698 2.324 2.324 0 0 1-.93-.186 2.376 2.376 0 0 1-.755-.512 2.427 2.427 0 0 1-.699-1.723 2.44 2.44 0 0 1 .699-1.727 2.384 2.384 0 0 1 .756-.511 2.324 2.324 0 0 1 .898-.187zm17.648.773a2.69 2.69 0 0 0-1.02.201 2.49 2.49 0 0 0-.815.552 2.432 2.432 0 0 0-.525.814 2.678 2.678 0 0 0-.186.998 2.644 2.644 0 0 0 .186.997 2.485 2.485 0 0 0 .525.814 2.436 2.436 0 0 0 .815.546 2.697 2.697 0 0 0 1.059.2 2.42 2.42 0 0 0 .518-.056 2.524 2.524 0 0 0 .46-.146 2.426 2.426 0 0 0 .394-.213 2.394 2.394 0 0 0 .329-.263l.065.53H24v-4.829h-.976l-.068.533a2.498 2.498 0 0 0-.322-.26 2.25 2.25 0 0 0-.394-.217 2.616 2.616 0 0 0-.462-.145 2.404 2.404 0 0 0-.521-.056 2.69 2.69 0 0 0-.038 0zm-12.375.844v4.138h1.113V11.01zm2.77 0v4.138h1.114V11.01zm9.72.145a1.592 1.592 0 0 1 .024 0 1.557 1.557 0 0 1 1.098.445 1.495 1.495 0 0 1 .334.495 1.61 1.61 0 0 1 .121.631 1.632 1.632 0 0 1-.121.64 1.551 1.551 0 0 1-.331.498 1.47 1.47 0 0 1-.49.324 1.642 1.642 0 0 1-1.207 0 1.502 1.502 0 0 1-.493-.324 1.52 1.52 0 0 1-.333-.5 1.64 1.64 0 0 1-.122-.638 1.628 1.628 0 0 1 .12-.637 1.524 1.524 0 0 1 .328-.495 1.474 1.474 0 0 1 .49-.323 1.592 1.592 0 0 1 .581-.116z\"},\"child\":[]}]})(props);\n};\nexport function SiQiskit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9686 0v.0013C7.7636.0111 3.8602 2.222 1.6966 5.8438-.5206 9.5553-.5677 14.1722 1.5734 17.928c2.0288 3.5587 5.7249 5.821 9.7863 6.0365a6.1732 6.1732 0 001.3664-.005c3.9417-.2393 7.5325-2.4066 9.572-5.8207a11.9785 11.9785 0 001.6939-5.9703 1.3484 1.3484 0 00.008-.1258v-.0342a1.4017 1.4017 0 00-.006-.1104 11.9779 11.9779 0 00-1.4163-5.5598C20.5388 2.5261 16.6048.1057 12.2812.0033c-.08-.0019-.1598-.0013-.2396-.0016C12.019.0015 11.9898 0 11.9686 0zm.008.8395c1.2294.0012 2.0657.2743 2.0657.5136 0 .2398-.857.5483-2.0567.5483-1.1997 0-2.0908-.2911-2.0908-.531 0-.2346.823-.5168 1.9984-.529.0279-.0002.0555-.0018.0834-.002zm2.8741.368a11.2001 11.2001 0 014.9964 2.8353c-1.9678-.7539-4.8296-1.1702-7.6044-1.1992-1.3468 0-2.703.0898-3.9768.2587-.277-.3393-.757-.513-1.2469-.2737-.27.132-.4365.3398-.5178.5704-.8623.1802-1.6528.4022-2.3352.6632a11.1854 11.1854 0 014.916-2.8296c-.0059.0445-.01.09-.01.1379 0 1.2334 2.0224 1.336 2.9137 1.336.8912 0 2.8794-.1198 2.8794-1.336 0-.0569-.0059-.1107-.0143-.163zm-2.608 2.4411c4.789.0599 8.3098 1.1517 9.1259 2.2488.0245.0374.0496.0743.0736.112.07.1219.1071.2434.1071.363 0 .8254-1.7313 1.7052-4.4467 2.2304-1.5337-.2227-3.1837-.3483-4.8083-.363-.5957 0-1.1928.0175-1.7869.0448L8.2666 4.4024c.1364-.1666.2082-.3464.2307-.5246 1.1424-.1443 2.4018-.2292 3.7454-.2292zm-5.6933.5568c.159.3323.4872.5848.946.5738.0456.0028.0912.0028.1369 0l2.0644 3.551c-.9554.0639-1.894.1597-2.7865.2913-2.7422-.5285-4.4367-1.4293-4.4367-2.249 0-.0962.0263-.1932.072-.2904.0497-.0794.1014-.1573.153-.2353.5158-.6194 1.9017-1.2233 3.8509-1.6414zM22.095 7.1838a11.1321 11.1321 0 01.9992 3.3529c-.873-.6681-2.3136-1.2006-4.0417-1.584 1.46-.4478 2.5653-1.0446 3.0425-1.7689zm-20.1695.0315c.4884.7285 1.5982 1.3203 3.0449 1.7612-1.7294.3856-3.1592.9152-4.0297 1.5702.0658-.4965.1638-.993.299-1.4865.176-.6428.4074-1.2586.6858-1.845zM12.277 9.0277c.2927.0031.58.0103.8643.0194-.4443.0189-.8956.0322-1.361.0322a31.6185 31.6185 0 01-.8262-.0208l-.0044-.008a39.8672 39.8672 0 011.3272-.0228zm4.918.3801c3.6492.5526 5.954 1.6152 5.9974 2.5807 0 .0152-.0007.0305-.0007.0458-.0524.9623-2.3803 1.9992-5.943 2.5525-1.0469-.2007-2.1789-.3418-3.3325-.4189L12.38 11.5287l-.9443-1.6357c.109.0023.2182.0072.327.0084 1.8753 0 3.7715-.1718 5.4323-.4935zm-10.374.016c1.1798.2266 2.4668.375 3.7672.4394l1.1575 1.991 1.3102 2.2676a31.8296 31.8296 0 00-.813-.0235c-1.895 0-3.8113.1731-5.4852.4986-3.4614-.535-5.6997-1.5307-5.9126-2.4592a11.1137 11.1137 0 01-.0003-.2637c.2145-.9349 2.522-1.9192 5.9762-2.4501zm16.2693 4.0773a11.1764 11.1764 0 01-.9765 3.2946c-.4665-.7202-1.5352-1.302-2.9364-1.7384 1.679-.3871 3.064-.912 3.9129-1.5562zM.947 13.5205c.852.6529 2.2333 1.1731 3.89 1.5535-1.3891.4357-2.4439 1.009-2.921 1.7023a11.1813 11.1813 0 01-.969-3.2558zm11.2956 1.3658c.4403.0069.8654.0254 1.2831.0485l.0084.0144a39.6667 39.6667 0 01-1.7885.0401 39.3883 39.3883 0 01-1.435-.0421 31.1187 31.1187 0 011.932-.061zm5.0929.5226c2.6122.5393 4.2197 1.4099 4.2308 2.2183 0 .1156-.0357.233-.1034.3503-.0116.0183-.0241.0362-.0358.0545-.4058.6113-1.6971 1.2205-3.5647 1.6596-.1728-.2433-.4515-.4161-.8208-.4196a1.0459 1.0459 0 00-.1544 0l-2.078-3.57c.8675-.07 1.717-.1666 2.5263-.2931zm-10.6667.012c1.6028.2481 3.3467.3868 5.0597.4076.758 0 1.5198-.0228 2.2726-.0673l2.235 3.8875a1.0464 1.0464 0 00-.2005.3858c-1.2744.1865-2.7086.2995-4.2556.2995-4.7015-.0588-8.1788-1.0996-9.0873-2.1725a11.162 11.162 0 01-.1855-.2934c-.0323-.0807-.0497-.1612-.0508-.241.0106-.8 1.6375-1.6662 4.2124-2.2061zm13.2643 4.468c-.062.0623-.123.1254-.1868.1864a11.1477 11.1477 0 01-4.7213 2.6894c.0506-.1196.0797-.2446.0797-.375 0-.5564-.4856-1.0308-1.2513-1.3217a28.8077 28.8077 0 002.295-.2455c.2498.4144.7751.6624 1.3193.4078.3507-.164.5338-.4565.5794-.7658.6904-.164 1.326-.3566 1.886-.5755zm-15.7843.0482c1.5918.6106 3.7654.9958 6.0014 1.139-.7448.2871-1.2155.749-1.2155 1.2965v.017c0 .1298.03.2548.082.3748a11.1695 11.1695 0 01-4.8679-2.8273zm7.8709 1.596c1.3883 0 2.2625.4968 2.2796.8565.0123.2569-.4576.5739-1.2255.7348a11.2018 11.2018 0 01-2.1983-.008c-.7142-.1748-1.135-.4912-1.135-.7267 0-.3426.891-.8566 2.2792-.8566z\"},\"child\":[]}]})(props);\n};\nexport function SiQiwi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.064 0C5.17 0 .391 4.778.391 10.673c0 5.895 4.779 10.673 10.674 10.673 1.567 0 3.118-.293 5.398-.31 2.033 0 4.267.714 6.718 2.886.248.217.574-.062.357-.326-2.405-3.056-4.64-3.63-6.873-4.126-2.73-.606-4.126-2.126-5.104-3.817-.186-.341-.28-.279-.295.156-.018.639.03 1.278.14 1.908h-.326a7.066 7.066 0 01-7.06-7.06A7.065 7.065 0 0111.08 3.6a7.064 7.064 0 017.013 7.88c-.528-.093-1.537-.108-2.25-.046-.264.031-.233.155-.031.187 2.327.434 3.925 1.877 4.297 4.499.015.062.093.077.124.03a10.739 10.739 0 001.505-5.476C21.738 4.778 16.96 0 11.064 0zm7.644 15.077a.312.312 0 00-.306.157c-.124.218-.03.636.202 1.009.232.372.45.558.606.558.155 0 .294-.186.232-.667-.03-.264-.186-.868-.59-1.024-.047-.021-.101-.023-.144-.033zm-2.214 1.787c-.217 0-.388.076-.497.216-.279.341-.155.962.28 1.335.186.17.466.263.73.263a.816.816 0 00.635-.278c.249-.342.11-.808-.372-1.211-.248-.217-.527-.325-.776-.325Z\"},\"child\":[]}]})(props);\n};\nexport function SiQlik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.7515 20.1367-3.13-2.6326c1.0862-1.7307 1.7303-3.7745 1.7303-5.9655 0-6.1684-5.008-11.1764-11.176-11.1764S0 5.3702 0 11.5386c0 6.168 5.008 11.176 11.1759 11.176 2.3934 0 4.6216-.7552 6.4443-2.0438l3.3324 2.7988s.4974.4236.921-.0738l1.9884-2.3568c-.0186 0 .3864-.4968-.1105-.9023zm-5.7078-8.598c0 3.7926-3.0747 6.8672-6.8678 6.8672-3.7926 0-6.8678-3.0746-6.8678-6.8673 0-3.793 3.0752-6.8678 6.8678-6.8678 3.7931 0 6.8678 3.0747 6.8678 6.8678zm-11.287 0c0-2.4304 1.9702-4.4006 4.4006-4.4006 2.4303 0 4.4005 1.9702 4.4005 4.4005 0 2.4304-1.9702 4.4006-4.4005 4.4006-2.4304 0-4.4005-1.9702-4.4005-4.4006z\"},\"child\":[]}]})(props);\n};\nexport function SiQmk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.78 0a.33.33 0 0 1 .33.33v2.127h1.453V.331c0-.16.114-.293.264-.324L8.894 0h.661a.33.33 0 0 1 .331.33v2.127h1.452V.331c0-.16.114-.293.265-.324L11.669 0h.662a.33.33 0 0 1 .33.33v2.127h1.452V.331c0-.16.114-.293.265-.324L14.445 0h.661a.33.33 0 0 1 .331.33l-.001 2.127h1.453V.331c0-.16.114-.293.264-.324L17.22 0h.662a.33.33 0 0 1 .33.33v2.127h.468a2.864 2.864 0 0 1 2.863 2.863l-.001.467h2.127c.16 0 .293.114.324.265l.007.067v.661a.33.33 0 0 1-.33.33h-2.128v1.453h2.127c.16 0 .293.114.324.264l.007.067v.661a.33.33 0 0 1-.33.331h-2.128v1.452h2.127c.16 0 .293.114.324.265l.007.066v.662a.33.33 0 0 1-.33.33h-2.128v1.452h2.127c.16 0 .293.114.324.265l.007.067v.661a.33.33 0 0 1-.33.331l-2.128-.001v1.453h2.127c.16 0 .293.114.324.264l.007.067v.662a.33.33 0 0 1-.33.33h-2.128v.468a2.864 2.864 0 0 1-2.862 2.863l-.468-.001v2.127a.33.33 0 0 1-.264.324l-.066.007h-.662a.33.33 0 0 1-.33-.33l-.001-2.128h-1.453l.001 2.127c0 .16-.114.293-.264.324l-.067.007h-.661a.331.331 0 0 1-.331-.33l-.001-2.128h-1.452v2.127a.33.33 0 0 1-.264.324l-.066.007h-.662a.33.33 0 0 1-.33-.33l-.001-2.128H9.886v2.127a.33.33 0 0 1-.264.324L9.555 24h-.661a.331.331 0 0 1-.331-.33v-2.128H7.11v2.127a.33.33 0 0 1-.33.331h-.662a.331.331 0 0 1-.33-.33l-.001-2.128H5.32a2.864 2.864 0 0 1-2.863-2.862v-.468H.331a.331.331 0 0 1-.324-.264L0 17.882v-.662a.33.33 0 0 1 .33-.33l2.127-.001v-1.453l-2.126.001a.331.331 0 0 1-.324-.264L0 15.106v-.661a.33.33 0 0 1 .33-.331l2.127-.001v-1.452H.331a.331.331 0 0 1-.324-.264L0 12.331v-.662a.33.33 0 0 1 .33-.33l2.127-.001V9.886H.331a.331.331 0 0 1-.324-.264L0 9.555v-.661a.33.33 0 0 1 .33-.33l2.127-.001V7.11H.331a.331.331 0 0 1-.324-.263L0 6.78v-.66a.33.33 0 0 1 .33-.331l2.127-.001V5.32A2.864 2.864 0 0 1 5.32 2.457h.467V.331c0-.16.114-.293.265-.324L6.118 0h.662Zm9.915 6.275c-.154 0-.278.006-.372.018a.952.952 0 0 0-.23.053.26.26 0 0 0-.125.088.204.204 0 0 0-.035.115v4.428c0 .472-.066.902-.2 1.288-.132.387-.33.718-.592.992-.263.275-.592.49-.988.646-.395.157-.859.238-1.39.244V6.549a.203.203 0 0 0-.035-.115.26.26 0 0 0-.124-.088.96.96 0 0 0-.235-.053 3.15 3.15 0 0 0-.368-.018c-.135 0-.252.006-.35.018a1.02 1.02 0 0 0-.238.053.292.292 0 0 0-.133.088.188.188 0 0 0-.04.115v7.598c-.531-.012-.996-.093-1.395-.244a2.597 2.597 0 0 1-.987-.637 2.637 2.637 0 0 1-.584-1 4.2 4.2 0 0 1-.195-1.324V6.549a.204.204 0 0 0-.036-.115.26.26 0 0 0-.124-.088.96.96 0 0 0-.234-.053 3.148 3.148 0 0 0-.368-.018c-.147 0-.27.006-.367.018a.887.887 0 0 0-.23.053.293.293 0 0 0-.124.088.188.188 0 0 0-.04.115v4.525c0 .697.106 1.314.318 1.851.213.537.52.99.921 1.36.402.368.892.65 1.47.845.579.195 1.237.301 1.975.319v2.116a.2.2 0 0 0 .04.124.263.263 0 0 0 .124.084c.056.02.133.037.23.049.097.012.22.017.367.017.148 0 .27-.005.368-.017a1.15 1.15 0 0 0 .235-.049c.059-.02.1-.049.124-.084a.218.218 0 0 0 .035-.124v-2.116c.726-.018 1.377-.133 1.953-.346a4.17 4.17 0 0 0 1.47-.903c.404-.39.715-.86.934-1.412.218-.552.327-1.176.327-1.873V6.549a.189.189 0 0 0-.04-.115.294.294 0 0 0-.124-.088.887.887 0 0 0-.23-.053 3.056 3.056 0 0 0-.358-.018Z\"},\"child\":[]}]})(props);\n};\nexport function SiQnap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.3164 9.955C.438 9.955 0 10.3094 0 11.0177v1.9512c0 .704.438 1.0566 1.3164 1.0566h2.5703c0-.0061.1487.0049.377-.0293-.2145-.3087-.6112-.6434-.9825-.9121l-.0683-.0488H1.6133v-2.1133H3.744v1.793c.6399.1993 1.0793.4554 1.379.6992.0507-.1283.0761-.2763.0761-.4454v-1.9511c0-.6699-.3928-1.0238-1.1758-1.0606v-.002zm4.9649.0528c-.1551 0-.274.044-.3575.1309-.1468.1535-.1164.3461-.1308.3535v3.5176h1.4453s-.0081-1.8582-.0117-2.4063c.0062-.036.0323-.088.1425-.0742 0 0 .0426.0012.0606.0332.2786.445 2.1035 2.4473 2.1035 2.4473h1.5v-4.002H9.5703v2.3281c-.022.0535-.095.044-.1308.006-.258-.399-1.2508-1.7643-1.5684-2.1993-.0202-.0243-.1248-.1348-.3555-.1348Zm6.584 0c-.3665 0-.6468.0763-.8438.2305-.202.1592-.3027.371-.3027.6387v3.1328h1.5273v-1.0664h2.1406v1.0664h1.5293V10.877c0-.2711-.0993-.4848-.2969-.6387-.197-.1542-.4793-.2305-.8457-.2305zm5.9179 0c-.366 0-.6481.0778-.8457.2324-.197.1533-.2976.361-.3027.6192v3.1504h1.5293v-1.045h2.4707c.6714 0 1.0078-.268 1.0078-.8085V10.873c0-.3081-.0845-.529-.248-.664-.2801-.2223-.743-.1877-.7032-.2012zm4.7246.0723c-.248.0126-.4473.2195-.4473.4707 0 .259.2116.4687.4707.4687A.4684.4684 0 0 0 24 10.5508c0-.2593-.2096-.4707-.4688-.4707-.008 0-.0154-.0004-.0234 0zm.002.0683c.0068-.0003.0146 0 .0215 0 .2213.0007.3998.1813.4004.4024a.3996.3996 0 0 1-.4004.3984c-.221-.0005-.4001-.1777-.4004-.3984.0003-.2142.1675-.391.379-.4024zm-.1894.1407v.5332h.0722v-.2364c.0404-.0023.081.0013.1211.002.0326.0073.0642.0456.0684.0508.0452.0579.0807.1224.121.1836h.088l-.0918-.1445a.3512.3512 0 0 0-.0586-.0703.1786.1786 0 0 0-.043-.0274c.0514-.007.0887-.023.1133-.0488.0434-.0465.05-.1157.0137-.1758-.0217-.036-.0561-.0664-.166-.0664zm.0722.0586h.168c.1513 0 .134.1407.0586.168-.0737.0188-.1513.0064-.2266.0097zm-10.1465.7011h2.1407v1.1582H13.246zm5.8965 0h1.9434v1.0371h-1.9434zm-16.3574 1.539c.4791.3043 1.3518.9071 1.6406 1.4571h1.0879c-.1858-.3314-.814-1.1293-2.7285-1.457Z\"},\"child\":[]}]})(props);\n};\nexport function SiQt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.693 3.162H3.33L0 6.49v14.348h20.671L24 17.51V3.162zM12.785 18.4l-1.562.728-1.35-2.217c-.196.057-.499.09-.924.09-1.579 0-2.683-.425-3.305-1.276-.622-.85-.932-2.2-.932-4.033 0-1.84.319-3.206.949-4.098.63-.892 1.726-1.341 3.288-1.341 1.562 0 2.658.441 3.28 1.333.63.883.94 2.25.94 4.098 0 1.219-.13 2.2-.384 2.945-.261.752-.679 1.325-1.268 1.718zm4.736-1.587c-.858 0-1.447-.196-1.766-.59-.32-.392-.483-1.136-.483-2.232v-3.534H14.11V9.051h1.162V6.843h1.644V9.05h2.094v1.415h-2.094v3.346c0 .622.05 1.03.14 1.227.09.204.326.303.695.303l1.243-.05.073 1.326c-.67.13-1.186.196-1.546.196zm-8.58-9.08c-.95 0-1.604.311-1.963.94-.352.63-.532 1.629-.532 3.011 0 1.374.172 2.364.515 2.953.344.589 1.006.892 1.98.892.973 0 1.628-.295 1.971-.876.335-.58.507-1.57.507-2.953 0-1.39-.172-2.396-.523-3.026-.352-.63-1.006-.94-1.955-.94Z\"},\"child\":[]}]})(props);\n};\nexport function SiQualcomm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C6.22933 0 1.5761 4.48645 1.5761 10.47394c0 6.00417 4.65323 10.47394 10.4239 10.47394.98402 0 1.93468-.13343 2.8353-.3836l1.13412 2.9187c.11675.31688.35025.51702.7672.51702h1.80125c.43364 0 .75052-.28353.55038-.83391l-1.46768-3.81932c2.88534-1.81793 4.80333-5.03683 4.80333-8.8895C22.4239 4.48644 17.77067 0 12 0m4.53648 16.5615l-1.31758-3.41904c-.11675-.28353-.35024-.55038-.85059-.55038h-1.71786c-.43363 0-.7672.28353-.56706.83391l1.73454 4.48645c-.56706.1501-1.18416.21682-1.81793.21682-4.2196 0-7.22168-3.31897-7.22168-7.65532C4.77832 6.1376 7.7804 2.81862 12 2.81862s7.22168 3.31898 7.22168 7.65532c0 2.5351-1.01737 4.70327-2.6852 6.08756\"},\"child\":[]}]})(props);\n};\nexport function SiQualtrics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.14 5.518l-2.695 9.538h-.034l-2.89-9.538H8.125l-2.19 3.893-2.318-3.893H.368l3.78 6.116L0 18.486h2.993l2.66-4.534 2.755 4.534h4.906v-8.99h.034q.102.564.195.966.093.402.175.744c.057.228.118.445.184.65.065.206.132.43.2.677l1.926 5.949h2.523l1.942-5.95q.213-.718.398-1.385a14.544 14.544 0 0 0 .32-1.506h.035v8.845H24V5.514zM7.373 11.651l3.383-5.616v11.118z\"},\"child\":[]}]})(props);\n};\nexport function SiQualys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9986 0C5.4353 0 2.1382 3.5117 2.1382 3.5117s-.3775 2.5993-.1366 7.8332C2.3654 19.2513 11.999 24.0005 11.9999 24c.001-.0005 9.6347-4.7488 9.9985-12.6551.2408-5.2339-.1364-7.8332-.1364-7.8332S18.562 0 11.9986 0zm-.6782 2.9194a7.3657 7.3657 0 0 1 8.0454 7.3343 7.1158 7.1158 0 0 1-2.7712 5.6342c-1.1788-.108-2.4098-.4423-2.9676-.7605 1.4379-.9177 3.3036-2.7033 3.3036-4.8737a4.9361 4.9361 0 0 0-4.9305-4.9305c-2.7165 0-4.9266 2.2743-4.9266 5.0698 0 2.332 1.2355 4.1624 3.6718 5.4404 1.5943.8363 3.9724 1.449 6.4852 1.7723-.418.6225-1.533 1.686-2.1847 2.0462-3.0087-.4934-5.6513-1.5354-7.4578-3.0964-1.9323-1.6699-2.9536-3.8488-2.9536-6.3018a7.3657 7.3657 0 0 1 6.686-7.3343Z\"},\"child\":[]}]})(props);\n};\nexport function SiQuantcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.548 10.96c-.306 0-.579.102-.806.43h-.011v-.353H10v2.724h.763v-1.548c0-.37.191-.634.497-.634.24 0 .408.132.408.525v1.66h.763v-1.851c0-.528-.227-.952-.884-.952zm-1.952 2.8v-1.917c0-.627-.562-.88-1.236-.88-.954 0-1.25.537-1.277.956h.73c.017-.245.202-.402.514-.402.334 0 .536.16.536.483v.126l-.705.043c-1.064.064-1.16.544-1.16.836 0 .621.526.832.955.832.318 0 .68-.096.933-.43h.01v.354zm-.73-.937c0 .328-.388.46-.626.46-.256 0-.478-.073-.478-.317 0-.197.118-.303.466-.334l.635-.06Zm11.831-1.065c0-.165.203-.244.402-.244.292 0 .455.138.466.365l.764-.017c-.042-.592-.503-.901-1.202-.901-.806 0-1.129.455-1.129.873 0 1.124 1.632.71 1.632 1.166 0 .222-.256.28-.45.28-.227 0-.46-.106-.471-.37h-.764c.064.806.825.921 1.207.921 1.124 0 1.242-.7 1.242-.913 0-1.098-1.697-.674-1.697-1.16zm-.983 2.003v-1.918c0-.627-.561-.88-1.235-.88-.955 0-1.25.537-1.278.956h.73c.017-.245.202-.402.514-.402.334 0 .537.16.537.483v.126l-.705.042c-1.065.065-1.16.545-1.16.837 0 .621.525.832.955.832.317 0 .68-.096.932-.43h.011v.354zm-.73-.938c0 .328-.387.46-.626.46-.255 0-.477-.073-.477-.317 0-.197.118-.303.466-.334l.635-.06v.25zm-2.769-.02c-.047.25-.196.416-.477.416-.399 0-.525-.402-.525-.764 0-.351.059-.848.53-.848.197 0 .413.084.439.44h.744l.05-.002c-.036-.579-.424-1.087-1.235-1.087-.826 0-1.326.59-1.326 1.463 0 .837.45 1.41 1.343 1.41.73 0 1.092-.432 1.207-1.03zm-3.201-1.755v-.795h.772v.795h.407v.59h-.407v1.393c0 .123.053.182.253.182a.617.617 0 0 0 .154-.017v.607c-.123.017-.247.03-.37.03-.503 0-.81-.123-.81-.718v-1.48h-.353v-.587zm9.807 0v-.795h.772v.795H24v.59h-.407v1.393c0 .123.053.182.253.182a.617.617 0 0 0 .154-.017v.607a2.75 2.75 0 0 1-.37.03c-.503 0-.81-.123-.81-.718v-1.48h-.353v-.587ZM5.94 12.584c0 .37-.191.635-.497.635-.24 0-.408-.132-.408-.525v-1.66h-.764v1.85c0 .526.298.95.955.95.306 0 .509-.101.736-.43h.011v.354h.73v-2.724H5.94Zm-3.27 1.163.25.43h.89l-.47-.815c.426-.388.648-.958.648-1.525 0-1-.685-2.013-1.994-2.013S0 10.837 0 11.837s.685 2.014 1.994 2.014c.244 0 .472-.037.677-.104zm-1.808-1.91c0-.649.348-1.303 1.126-1.303.778 0 1.126.654 1.126 1.303 0 .28-.064.565-.202.792h-.89l.272.472a1.17 1.17 0 0 1-.306.04c-.778 0-1.126-.655-1.126-1.304z\"},\"child\":[]}]})(props);\n};\nexport function SiQuantconnect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.0673 16.6635a12.1084 12.1084 0 0 1-6.404 6.4046A12.0185 12.0185 0 0 1 12.0002 24v-2.7975a8.63 8.63 0 0 0 3.5454-.7466 9.4574 9.4574 0 0 0 2.9836-1.9273 11.3659 11.3659 0 0 0 1.9273-2.922 9.1472 9.1472 0 0 0 .7465-3.6064 8.6298 8.6298 0 0 0-.7465-3.5454 8.9285 8.9285 0 0 0-4.9109-4.9122 9.5282 9.5282 0 0 0-7.091 0 9.4798 9.4798 0 0 0-4.9108 4.9122A9.7584 9.7584 0 0 0 2.7977 12H.0003A12.0115 12.0115 0 0 1 .932 7.3375 12.093 12.093 0 0 1 7.336.9328a12.121 12.121 0 0 1 9.326 0 11.5066 11.5066 0 0 1 3.7923 2.609 11.4988 11.4988 0 0 1 2.613 3.7963 12.1232 12.1232 0 0 1 0 9.3254zM11.998 9.8868V7.0892a4.7884 4.7884 0 0 0-3.4826 1.4296 4.7089 4.7089 0 0 0-1.4911 3.482 4.609 4.609 0 0 0 1.4911 3.4779c1.8316 1.923 4.8752 1.9972 6.7983.1656a4.7631 4.7631 0 0 0 .1656-.1656 4.34 4.34 0 0 0 1.4296-3.4786h-2.7976a2.0583 2.0583 0 0 1-.6215 1.4918 2.0189 2.0189 0 0 1-1.4918.6221c-1.1653-.0051-2.1088-.9485-2.114-2.114a2.0199 2.0199 0 0 1 .6216-1.4917 2.0637 2.0637 0 0 1 1.4924-.6215zm5.972 8.0798a7.0439 7.0439 0 0 0 1.806-2.6759 7.4712 7.4712 0 0 0 .6838-3.2953 7.655 7.655 0 0 0-.6837-3.2953 8.453 8.453 0 0 0-4.4767-4.4767 7.4678 7.4678 0 0 0-3.2953-.6836v2.7976a5.3066 5.3066 0 0 1 3.979 1.6784 5.4031 5.4031 0 0 1 1.6784 3.979c-.0338 3.1246-2.5943 5.6303-5.719 5.5964-3.077-.0333-5.5632-2.5195-5.5965-5.5964H3.5484a8.4 8.4 0 0 0 .616 3.298 9.2912 9.2912 0 0 0 4.5397 4.5381 9.0414 9.0414 0 0 0 6.59 0 7.9963 7.9963 0 0 0 2.6758-1.8643z\"},\"child\":[]}]})(props);\n};\nexport function SiQuarkus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.981 0A3.993 3.993 0 0 0 0 3.981V20.02A3.993 3.993 0 0 0 3.981 24h10.983L12 16.8l-2.15 4.546H3.98c-.72 0-1.327-.608-1.327-1.327V3.98c0-.72.608-1.327 1.327-1.327h16.04c.72 0 1.327.608 1.327 1.327v16.04c0 .72-.608 1.327-1.327 1.327h-3.48L17.63 24h2.388A3.993 3.993 0 0 0 24 20.019V3.98A3.993 3.993 0 0 0 20.019 0zm4.324 4.217v3.858l3.341-1.93zm7.39 0l-3.341 1.929 3.34 1.929zM12 6.35L8.305 8.483 12 10.617l3.695-2.134zM8.104 8.832v4.266l3.695 2.133v-4.266zm7.792 0L12.2 10.965v4.266l3.695-2.133zm-8.146.204l-3.34 1.93 3.34 1.928zm8.5 0v3.858l3.34-1.929zm-8.146 4.47v3.859l3.341-1.93zm7.792 0l-3.341 1.93 3.34 1.929z\"},\"child\":[]}]})(props);\n};\nexport function SiQuarto (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.65 12.854V24c6.042-.325 10.923-5.105 11.33-11.125H12.65Zm-1.504 0H.02c.427 5.94 5.166 10.699 11.105 11.105V12.854Zm1.505-1.505H24C23.675 5.247 18.753.325 12.65 0Zm-1.505 0V0C5.106.427.326 5.308 0 11.35Z\"},\"child\":[]}]})(props);\n};\nexport function SiQuasar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.7427 11.9996c0 .9622-.78 1.7421-1.742 1.7421s-1.7422-.78-1.7422-1.742c0-.9622.78-1.7421 1.7421-1.7421.962 0 1.742.7799 1.742 1.742zm5.585-1.65 1.2674-.7318a8.9288 8.9288 0 0 0-.8615-2.0836 8.9295 8.9295 0 0 0-1.3684-1.789l-2.014 1.1628a6.7085 6.7085 0 0 0-2.1027-1.2187c-.6876.697-1.2337 1.4754-1.6275 2.3222 2.2419-.1526 4.5572.6588 6.7066 2.3382zm-9.5618 8.8206v1.4635a8.9313 8.9313 0 0 0 2.2351.2957 8.9343 8.9343 0 0 0 2.2337-.2905v-2.3255a6.7085 6.7085 0 0 0 2.1067-1.2117c-.2597-.9439-.6609-1.8062-1.1973-2.5706-.9888 2.0179-2.8492 3.6173-5.3782 4.639zM5.4117 13.208c.9472.247 1.8946.3307 2.8248.2483-1.2531-1.8653-1.708-4.276-1.3285-6.9773l-1.2675-.7318a8.9239 8.9239 0 0 0-1.3738 1.788 8.9294 8.9294 0 0 0-.865 2.0796l2.014 1.1628a6.7071 6.7071 0 0 0-.0041 2.4304zm13.1736.0135a6.7081 6.7081 0 0 0 .004-2.4303c-.9471-.2471-1.8945-.3309-2.8247-.2484 1.253 1.8652 1.708 4.276 1.3284 6.9772l1.2674.732a8.9282 8.9282 0 0 0 1.3738-1.788 8.929 8.929 0 0 0 .8651-2.0797l-2.014-1.1628zm-13.912.428-1.2674.7319c.198.728.4874 1.4281.8615 2.0835a8.9318 8.9318 0 0 0 1.3684 1.789l2.014-1.1628A6.7095 6.7095 0 0 0 9.7524 18.31c.6876-.6968 1.2338-1.4754 1.6274-2.3222-2.2418.1526-4.5571-.6587-6.7066-2.338zm9.5619-8.8205V3.3655A8.9337 8.9337 0 0 0 12 3.0698a8.934 8.934 0 0 0-2.2336.2906V5.686a6.7085 6.7085 0 0 0-2.1068 1.2117c.2597.9439.6608 1.8061 1.1973 2.5705.9889-2.0177 2.8492-3.6171 5.3783-4.639zM24 12c0 6.6274-5.3726 12-12 12S0 18.6274 0 12 5.3726 0 12 0s12 5.3726 12 12zm-1.535 0c0-5.7704-4.6946-10.465-10.465-10.465S1.535 6.2296 1.535 12 6.2296 22.4649 12 22.4649 22.465 17.7704 22.465 12z\"},\"child\":[]}]})(props);\n};\nexport function SiQubesos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.893 20.79l-2.289-1.332 1.547-.895a2.402 2.402 0 0 0 1.2-2.08V7.098l-.003-.059a2.402 2.402 0 0 0-1.198-2.027l-3.899-2.255-4.21-2.436a2.473 2.473 0 0 0-.237-.118L12.77.187l-.093-.036-.052-.019c-.028-.01-.057-.018-.085-.027l-.062-.019-.079-.02-.072-.017-.073-.013-.079-.013-.068-.008-.087-.008-.063-.004A10.324 10.324 0 0 0 11.9 0h-.03l-.082.001-.076.002-.093.007-.064.006c-.037.004-.073.01-.11.016-.014.004-.029.006-.044.009a3.266 3.266 0 0 0-.154.034 2.39 2.39 0 0 0-.602.245L5.536 3.277l-3 1.736a2.407 2.407 0 0 0-1.201 2.083v9.385a2.405 2.405 0 0 0 1.2 2.08l8.108 4.693a2.395 2.395 0 0 0 2.4.002l1.804-1.044 2.302 1.339c1.03.599 2.687.599 3.716 0l1.03-.6c1.027-.597 1.027-1.562-.002-2.161zm-10.71-2.695l-4.46-2.583a1.324 1.324 0 0 1-.66-1.143V9.206c0-.236.063-.464.177-.662l.002.001c.116-.2.282-.368.482-.485l4.459-2.58c.092-.053.189-.093.289-.122l.034-.01c.035-.01.07-.015.105-.022.023-.004.045-.01.068-.013.031-.004.062-.004.093-.006.028 0 .055-.004.083-.004.036 0 .073.004.11.007.02.002.038.002.058.005.037.005.074.014.11.022.018.004.037.007.055.012.04.011.077.025.115.04l.045.015c.052.022.104.047.154.076l4.46 2.58c.198.116.364.283.48.483l.002.003-.003.002c.116.201.177.43.177.661v5.161c0 .15-.028.295-.076.433a1.32 1.32 0 0 1-.583.71l-4.46 2.582a1.312 1.312 0 0 1-1.316 0z\"},\"child\":[]}]})(props);\n};\nexport function SiQuest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.284 8.755c-.055 0-.11 0-.166.002-.096 0-.2.01-.296.029a3.225 3.225 0 0 0-2.82 3.325 3.243 3.243 0 0 0 3.354 3.115 3.211 3.211 0 0 0 1.79-.629l-.495-.362a.173.173 0 0 0-.19-.01c-.381.22-.82.334-1.296.324C1.86 14.521.784 13.463.717 12.16a2.519 2.519 0 0 1 2.744-2.62 2.518 2.518 0 0 1 2.276 2.324 2.525 2.525 0 0 1-.428 1.59.18.18 0 0 0 .038.249l.42.304c.485-.61.733-1.352.704-2.133a3.244 3.244 0 0 0-3.187-3.118zm2.482 5.251s-.095.124-.286.305c-.19.181-.343.296-.343.296l.553.41a.2.2 0 0 0 .229 0 3.338 3.338 0 0 0 .381-.372.177.177 0 0 0-.03-.267zm17.586-4.572c-.038 0-.076 0-.105.028a.198.198 0 0 0-.095.058.208.208 0 0 0-.067.085c-.01.029-.019.067-.028.105 0 .038 0 .076.019.114a.345.345 0 0 0 .067.096c.028.019.057.047.095.057.038.01.076.019.114.019.038 0 .076-.01.114-.02a.198.198 0 0 0 .096-.056c.019-.029.047-.058.057-.096a.479.479 0 0 0 .019-.114.412.412 0 0 0-.02-.114.225.225 0 0 0-.056-.086.903.903 0 0 0-.096-.057.477.477 0 0 0-.114-.02zm-2.124.01v1.295h-.277c-.114 0-.2.095-.2.2v.41h.477v2.276c0 1.086.552 1.601 1.486 1.601A2.08 2.08 0 0 0 24 14.797l-.22-.352a.186.186 0 0 0-.247-.067c-.228.124-.486.21-.762.21-.505 0-.857-.296-.857-.972v-2.267h1.152a.17.17 0 0 0 .172-.172v-.438h-1.334V9.624a.18.18 0 0 0-.18-.18zm2.124.037c.038 0 .067.01.095.02a.2.2 0 0 1 .077.047.203.203 0 0 1 .047.076c.01.029.02.057.02.096a.34.34 0 0 1-.02.095.207.207 0 0 1-.047.076.208.208 0 0 1-.077.048.338.338 0 0 1-.095.019.282.282 0 0 1-.095-.02.208.208 0 0 1-.076-.047.208.208 0 0 1-.048-.076c-.01-.038-.01-.067-.02-.095 0-.039.01-.067.02-.096a.207.207 0 0 1 .048-.076.208.208 0 0 1 .076-.048.282.282 0 0 1 .095-.019zm-.124.067v.333h.048V9.74h.057l.095.142h.058l-.096-.142a.464.464 0 0 0 .067-.029.087.087 0 0 0 .029-.067c0-.038-.01-.057-.03-.076a.19.19 0 0 0-.085-.019zm.067.038h.095s.01.01.02.01l.018.019c.01.01.01.019.01.028 0 .01 0 .02-.01.029 0 .01-.01.019-.019.019-.01.01-.019.01-.028.01h-.029v-.01h-.057zm-9.25 1.143c-1.23 0-2.144.924-2.144 2.249 0 1.343.915 2.248 2.191 2.248.639 0 1.239-.162 1.782-.677l-.257-.323a.177.177 0 0 0-.239-.029 1.99 1.99 0 0 1-1.248.438c-.78 0-1.438-.476-1.533-1.41h3.286a.19.19 0 0 0 .19-.19v-.067c-.009-1.315-.856-2.23-2.028-2.239zm-6.602.01a.18.18 0 0 0-.181.18v2.43c0 1.286.914 1.896 1.962 1.896 1.039 0 1.963-.61 1.963-1.896V10.91a.17.17 0 0 0-.172-.171h-.505v2.544c0 .895-.533 1.314-1.276 1.314s-1.286-.419-1.286-1.314v-2.544zm11.032 0c-1.039 0-1.725.495-1.725 1.315 0 .647.457 1.086 1.43 1.2l.514.057c.61.067.905.286.905.629 0 .457-.458.695-1.191.695-.62 0-1.02-.152-1.334-.352a.2.2 0 0 0-.276.066l-.21.334c.543.419 1.239.552 1.8.552 1.163 0 1.906-.523 1.906-1.343 0-.714-.533-1.095-1.448-1.21l-.514-.066c-.572-.067-.886-.248-.886-.61 0-.42.4-.676 1.019-.676.495 0 .962.152 1.267.314.086.047.19.019.238-.067l.134-.21a.184.184 0 0 0-.067-.247 3.263 3.263 0 0 0-1.562-.381zm-4.44.6c.734 0 1.267.524 1.353 1.334h-2.782c.105-.781.629-1.334 1.43-1.334z\"},\"child\":[]}]})(props);\n};\nexport function SiQuickbooks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm.642 4.1335c.9554 0 1.7296.776 1.7296 1.7332v9.0667h1.6c1.614 0 2.9275-1.3156 2.9275-2.933 0-1.6173-1.3136-2.9333-2.9276-2.9333h-.6654V7.3334h.6654c2.5722 0 4.6577 2.0897 4.6577 4.667 0 2.5774-2.0855 4.6666-4.6577 4.6666H12.642zM7.9837 7.333h3.3291v12.533c-.9555 0-1.73-.7759-1.73-1.7332V9.0662H7.9837c-1.6146 0-2.9277 1.316-2.9277 2.9334 0 1.6175 1.3131 2.9333 2.9277 2.9333h.6654v1.7332h-.6654c-2.5725 0-4.6577-2.0892-4.6577-4.6665 0-2.5771 2.0852-4.6666 4.6577-4.6666Z\"},\"child\":[]}]})(props);\n};\nexport function SiQuicklook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m22.682 19.189-.002-.002-3.07-3.068a7.027 7.027 0 0 0 1.332-4.12 7.068 7.068 0 0 0-7.068-7.067V1.037A1.04 1.04 0 0 0 12.653.016L1.67 1.965a.832.832 0 0 0-.687.818v18.434c0 .403.29.748.687.818l10.982 1.949a1.04 1.04 0 0 0 1.22-1.022v-3.894a7.027 7.027 0 0 0 4.12-1.332l3.069 3.07c.446.446 1.17.447 1.617 0h.001c.447-.447.448-1.17.002-1.617zm-8.808-.62a6.576 6.576 0 0 1-6.569-6.57 6.576 6.576 0 0 1 6.569-6.567A6.576 6.576 0 0 1 20.442 12a6.576 6.576 0 0 1-6.568 6.568zm5.28-6.57a5.287 5.287 0 0 1-5.28 5.282c-2.913 0-5.282-2.369-5.282-5.28s2.37-5.282 5.282-5.282a5.287 5.287 0 0 1 5.28 5.28z\"},\"child\":[]}]})(props);\n};\nexport function SiQuicktime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002 0a11.998 12 0 106.629 22l1.98 1.97h3.139l.25-.25v-3.15l-2-1.98A11.938 11.94 0 0024 12 11.998 12 0 0012.002 0m0 4.2a7.799 7.8 0 016.949 11.33l-5.25-5.26a2.404 2.404 0 10-3.4 3.4l5.27 5.26a7.759 7.76 0 01-3.57.87 7.799 7.8 0 010-15.6z\"},\"child\":[]}]})(props);\n};\nexport function SiQuicktype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.226 14.393a2.9 2.9 0 0 0 .612-.804c.538-1.032.365-2.246.047-2.983-.614-1.422-2.041-2.225-3.683-2.225-1.497 0-2.427.64-2.868 1.048-.474.44-1.144 1.31-1.144 2.729 0 .601.096 1.136.288 1.603.253.616.795 1.486 2.053 1.914a4.965 4.965 0 0 0 1.609.249h4.145c.466 0 .71-.405.705-.717a.694.694 0 0 0-.705-.683l-.29.005c-.516.04-.96.157-1.332.35l.563-.486zM12 24C5.373 24 0 18.627 0 12S5.373 0 12 0s12 5.373 12 12-5.373 12-12 12Zm1.424-15.41a.852.852 0 0 0 0 1.705h5a.852.852 0 1 0 0-1.705zm1.662 6.259c0 .478.375.865.838.865a.852.852 0 0 0 .838-.865V11.55c0-.478-.375-.656-.838-.656-.463 0-.838.178-.838.656zm-4.951-1.763c-.321.84-1.063 1.323-1.943 1.323-.875 0-1.612-.468-1.928-1.323-.18-.486-.227-1.19.005-1.79a1.998 1.998 0 0 1 1.103-1.146c.254-.107.53-.16.83-.16 1.032 0 1.675.604 1.938 1.306a2.666 2.666 0 0 1-.005 1.79z\"},\"child\":[]}]})(props);\n};\nexport function SiQuip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.154 22.154H12a10.06 10.06 0 01-7.4-3.201C2.66 16.89 1.69 14.19 1.868 11.35c.315-5.091 4.39-9.168 9.482-9.484.22-.014.44-.02.657-.02A10.058 10.059 0 0118.952 4.6a10.058 10.059 0 013.202 7.4zm-1.938-18.9C17.778.963 14.59-.186 11.236.024 5.218.399.398 5.219.024 11.237c-.207 3.353.94 6.543 3.231 8.98A12.047 12.048 0 0012 24h11.077c.51 0 .923-.413.923-.922V12a12.047 12.048 0 00-3.784-8.745m-4.062 11.976H7.846a.923.923 0 000 1.846h8.308a.923.923 0 000-1.846M7.846 8.77h8.308a.923.923 0 000-1.847H7.846a.923.923 0 000 1.847m-2.769 2.308a.923.923 0 000 1.845h13.846a.923.923 0 000-1.846H5.077Z\"},\"child\":[]}]})(props);\n};\nexport function SiQuizlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.779.025a11.789 11.789 0 0 0-5.338.896A11.829 11.829 0 0 0 3.058 4.11 11.928 11.928 0 0 0 .427 14.363a11.92 11.92 0 0 0 2.3 4.921 11.842 11.842 0 0 0 4.24 3.378 11.783 11.783 0 0 0 10.533-.226.327.327 0 0 1 .331.018 9.136 9.136 0 0 0 5.197 1.545.332.332 0 0 0 .332-.332v-4.038a.334.334 0 0 0-.276-.331 4.732 4.732 0 0 1-1.106-.319.329.329 0 0 1-.191-.352.33.33 0 0 1 .05-.133 11.943 11.943 0 0 0 .772-11.871 11.87 11.87 0 0 0-4.042-4.628A11.793 11.793 0 0 0 12.765.018l.013.007h.001ZM4.843 11.898a7.24 7.24 0 0 1 1.205-4.005 7.18 7.18 0 0 1 3.215-2.657 7.133 7.133 0 0 1 7.815 1.558 7.239 7.239 0 0 1 1.555 7.854 7.202 7.202 0 0 1-2.643 3.234 7.147 7.147 0 0 1-9.049-.896 7.228 7.228 0 0 1-2.103-5.089l.005.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiQuora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.3799.9483A11.9628 11.9628 0 0 1 21.248 19.5397l2.4096 2.4225c.7322.7362.21 1.9905-.8272 1.9905l-10.7105.01a12.52 12.52 0 0 1-.304 0h-.02A11.9628 11.9628 0 0 1 7.3818.9503Zm7.3217 4.428a7.1717 7.1717 0 1 0-5.4873 13.2512 7.1717 7.1717 0 0 0 5.4883-13.2511Z\"},\"child\":[]}]})(props);\n};\nexport function SiQwant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.313 5.163c4.289 0 7.766 2.589 7.766 7.616 0 4.759-3.072 7.301-7.003 7.59 1.87 1.142 4.693 1.143 6.45-.348l.547.297-.615 3.074-.226.285c-3.118.918-5.947-.099-7.921-3.329-3.816-.37-6.765-2.9-6.765-7.568 0-5.03 3.477-7.617 7.766-7.617zm0 13.88c2.756 0 4.08-2.804 4.08-6.264 0-3.46-1.148-6.264-4.08-6.264-2.85 0-4.08 2.805-4.08 6.264 0 3.46 1.182 6.264 4.08 6.264zm8.719-16.319L18.734 0h.263l.703 2.725 2.754.71v.248l-2.754.71-.703 2.725h-.263l-.702-2.725-2.696-.695V3.42z\"},\"child\":[]}]})(props);\n};\nexport function SiQwik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5469 0a2.957 2.957 0 0 0-2.5606 1.4785L.5332 9.1915a2.957 2.957 0 0 0 0 2.957l4.4531 7.7128A2.955 2.955 0 0 0 7.547 21.338H12l8.5938 2.6484c.2409.0742.4512-.1782.3359-.4023l-1.916-3.7227 4.4531-7.7129a2.957 2.957 0 0 0 0-2.957l-4.4531-7.7129A2.957 2.957 0 0 0 16.453 0zm0 .7656L17.7324 10.67l-1.8965 1.8985.5782 7.5332L6.2676 10.67l2.371-2.373z\"},\"child\":[]}]})(props);\n};\nexport function SiQwiklabs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.346 18.205A6.464 6.464 0 0 0 12 5.72a6.462 6.462 0 0 0-2.346 12.485.69.69 0 0 0 .961-.623v-5.4a1.385 1.385 0 1 1 2.77 0v5.4a.692.692 0 0 0 .961.623zm.809 5.558C20.252 22.378 24 17.718 24 12.182c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.536 3.748 10.196 8.845 11.581a.7.7 0 0 0 .049.013l.059.016.001-.002a1.385 1.385 0 0 0 .635-2.695 9.231 9.231 0 1 1 4.824-.001 1.385 1.385 0 0 0 .635 2.695l.001.002.059-.016.049-.013z\"},\"child\":[]}]})(props);\n};\nexport function SiQzone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9868 9.2012c-.032-.099-.127-.223-.334-.258-.207-.036-7.352-1.4063-7.352-1.4063s-.105-.022-.198-.07c-.092-.047-.127-.167-.127-.167S12.4472.954 12.3491.7679c-.099-.187-.245-.238-.349-.238-.104 0-.251.051-.349.238C11.5531.954 8.0245 7.3 8.0245 7.3s-.035.12-.128.167c-.092.047-.197.07-.197.07S.5546 8.9071.3466 8.9421c-.208.036-.302.16-.333.258a.477.477 0 00.125.4491L5.5013 15.14s.072.08.119.172c.016.104.005.21.005.21s-1.1891 7.243-1.2201 7.451c-.031.208.075.369.159.4301.083.062.233.106.421.013.189-.093 6.813-3.2614 6.813-3.2614s.098-.044.201-.061c.103-.017.201.061.201.061s6.624 3.1684 6.813 3.2614c.188.094.338.049.421-.013a.463.463 0 00.159-.43c-.021-.14-.93-5.6778-.93-5.6778.876-.5401 1.4251-1.0392 1.8492-1.7473-2.5944.9692-6.0069 1.7173-9.4163 1.8663-.9152.041-2.4104.097-3.4735-.015-.6781-.071-1.1702-.144-1.2432-.438-.053-.2151.054-.4601.5451-.8312a2640.8625 2640.8625 0 012.8614-2.1553c1.2852-.9681 3.5595-2.4703 3.5595-2.7314 0-.285-2.1443-.781-4.0376-.781-1.9452 0-2.2753.132-2.8114.168-.488.034-.769.005-.804-.138-.06-.2481.183-.3891.588-.5682.7091-.314 1.8603-.594 1.9843-.626.194-.052 3.0824-.8051 5.6188-.5351 1.3181.14 3.2444.668 3.2444 1.2762 0 .342-1.7212 1.4942-3.2254 2.5973-1.1492.8431-2.2173 1.5612-2.2173 1.6883 0 .342 3.5334 1.2411 6.6899 1.01l.003-.022c.048-.092.119-.172.119-.172l5.3627-5.4907a.477.477 0 00.127-.449z\"},\"child\":[]}]})(props);\n};\nexport function SiR (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.746c-6.627 0-12 3.599-12 8.037 0 3.897 4.144 7.144 9.64 7.88V16.26c-2.924-.915-4.925-2.755-4.925-4.877 0-3.035 4.084-5.494 9.12-5.494 5.038 0 8.757 1.683 8.757 5.494 0 1.976-.999 3.379-2.662 4.272.09.066.174.128.258.216.169.149.25.363.372.544 2.128-1.45 3.44-3.437 3.44-5.631 0-4.44-5.373-8.038-12-8.038zm-2.111 4.99v13.516l4.093-.002-.002-5.291h1.1c.225 0 .321.066.549.25.272.22.715.982.715.982l2.164 4.063 4.627-.002-2.864-4.826s-.086-.193-.265-.383a2.22 2.22 0 00-.582-.416c-.422-.214-1.149-.434-1.149-.434s3.578-.264 3.578-3.826c0-3.562-3.744-3.63-3.744-3.63zm4.127 2.93l2.478.002s1.149-.062 1.149 1.127c0 1.165-1.149 1.17-1.149 1.17h-2.478zm1.754 6.119c-.494.049-1.012.079-1.54.088v1.807a16.622 16.622 0 002.37-.473l-.471-.891s-.108-.183-.248-.394c-.039-.054-.08-.098-.111-.137z\"},\"child\":[]}]})(props);\n};\nexport function SiR3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 13.457c0 .841-.688 1.53-1.53 1.53-.842 0-1.53-.689-1.53-1.53a1.53 1.53 0 1 1 3.06 0zM6.147 2.853c-1.123 0-2.172.3-3.08.828v-.828H0v12.134h3.067V9a3.077 3.077 0 0 1 3.08-3.08l1.029-.007 2.105-3.06H6.147zm8.746 6.08 2.078-3.02v-3.06h-6.615l-2.104 3.06h4.99l-2.565 3.735 1.53 2.653a3.098 3.098 0 0 1 4.65 2.686c0 1.717-1.39 3.1-3.1 3.1-1.71 0-3.1-1.39-3.1-3.1h-3.06c0 3.4 2.76 6.16 6.154 6.16 3.4 0 6.16-2.76 6.16-6.16a6.162 6.162 0 0 0-5.018-6.054z\"},\"child\":[]}]})(props);\n};\nexport function SiRabbitmq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.035 9.601h-7.677a.956.956 0 01-.962-.962V.962a.956.956 0 00-.962-.956H10.56a.956.956 0 00-.962.956V8.64a.956.956 0 01-.962.962H5.762a.956.956 0 01-.961-.962V.962A.956.956 0 003.839 0H.959a.956.956 0 00-.956.962v22.076A.956.956 0 00.965 24h22.07a.956.956 0 00.962-.962V10.58a.956.956 0 00-.962-.98zm-3.86 8.152a1.437 1.437 0 01-1.437 1.443h-1.924a1.437 1.437 0 01-1.436-1.443v-1.917a1.437 1.437 0 011.436-1.443h1.924a1.437 1.437 0 011.437 1.443z\"},\"child\":[]}]})(props);\n};\nexport function SiRacket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a11.95 11.95 0 0 0-4.104.721c4.872 2.556 11.316 10.893 13.547 18.686A11.957 11.957 0 0 0 24 12c0-6.627-5.373-12-12-12zM4.093 2.974A11.971 11.971 0 0 0 0 12c0 3.026 1.12 5.789 2.968 7.9 1.629-4.894 4.691-9.611 7.313-12.246-1.872-2.016-3.968-3.618-6.188-4.68zm2.276 19.625A11.947 11.947 0 0 0 12 24c2.092 0 4.059-.536 5.772-1.478-.987-4.561-2.851-8.739-5.28-12.147-2.597 2.8-5.186 7.702-6.123 12.224z\"},\"child\":[]}]})(props);\n};\nexport function SiRadar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L2.197 23.975 12 19.952 21.803 24z\"},\"child\":[]}]})(props);\n};\nexport function SiRadarr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.274 0C3.189.039 1.19 1.547 1.19 4.705l.184 14.518c0 1.47 1.103 2.205 2.573 2.021L3.764 3.786c0-1.654.919-1.838 2.022-1.103l14.7 8.27c1.103.734 1.655 1.47 1.838 2.756.92-1.654.552-4.043-1.286-5.33L7.991.846A4.559 4.559 0 0 0 5.274.001zm1.982 6.91-.184 10.107 9.004-5.146Zm13.598 6.064-15.068 8.82c-.92.552-2.022.736-3.124.368.918 1.47 3.307 2.389 5.145 1.47l12.68-7.35c1.102-.736 1.286-2.022.367-3.308z\"},\"child\":[]}]})(props);\n};\nexport function SiRadiopublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.793 4.0692c3.0122-.2832 6.0245-1.9773 9.037-.5353v19.892c-4.1555-1.9892-8.3106 1.989-12.4656 0l-.0002-3.1517v-.3473c-3.0646.271-6.1294 1.988-9.1941.5392V.5742c4.2077 1.989 8.4155-1.989 12.6229 0zm2.2949 10.7988c.3625-.0852.725-.1737 1.0875-.2584 1.6054-.3793 2.2448-1.403 2.244-3.015V8.9974c.0004-1.5849-.4136-2.591-2.3648-2.1348-1.0875.2563-2.1747.5422-3.2626.6441v12.9706c.7652-.0717 1.5303-.2347 2.2959-.414zm0-2.1095V9.0973c.1435-.0335.2875-.068.431-.1023.5373-.1282.5864.1568.5876.6274-.0004.7207-.0004 1.441 0 2.1618-.0004.401-.0507.7437-.5876.872a82.0824 82.0824 0 0 1-.431.1023zm-9.148 4.3506v-5.5437c.1609-.0373.3223-.0754.4833-.1134.4667-.1102.6033.0151.6041.6253v3.7832c.0009.5754.0872.8338.2072.9464.7656-.1732 1.5304-.3227 2.2955-.3772v-.0872c-.0855-.1507-.1902-.3854-.1893-.9435v-4.4106c.0008-.9632-.622-1.3306-.9842-1.401.4303-.2724 1.019-.8019 1.0182-1.8793V5.6334c0-1.3907-.7072-2.1254-2.1057-1.8048-1.208.2724-2.4167.6057-3.625.7183v12.9705c.7655-.0712 1.5307-.2313 2.2958-.4083zm0-7.688V6.1437a73.198 73.198 0 0 0 .5177-.1217c.466-.1101.5693.041.5697.5988v1.761c0 .6101-.1715.8239-.6386.934-.1496.0353-.2993.071-.4489.1053z\"},\"child\":[]}]})(props);\n};\nexport function SiRadixui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.52 24a7.68 7.68 0 0 1-7.68-7.68 7.68 7.68 0 0 1 7.68-7.68V24Zm0-24v7.68H3.84V0h7.68Zm4.8 7.68a3.84 3.84 0 1 1 0-7.68 3.84 3.84 0 0 1 0 7.68Z\"},\"child\":[]}]})(props);\n};\nexport function SiRadstudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.1465 10.5337.7359 1.9534h-1.4716l.7357-1.9534zM4.8863 9.1476c-.4025.0044-.805.0008-1.2076.001-.019 0-.038.0018-.0614.003v2.0964c.0175.0016.0327.0043.048.0043.4142 0 .8285.0053 1.2426-.0018.6636-.0114 1.1412-.6091 1.0089-1.2605-.1016-.4999-.5468-.8477-1.0305-.8424zm19.0972 3.3603c-.0252.409-.0595.8184-.1126 1.2246-.0742.5675-.2022 1.1249-.3642 1.6746a11.8456 11.8456 0 0 1-.892 2.1936 11.9768 11.9768 0 0 1-2.4107 3.1587c-.9165.8593-1.9422 1.5593-3.0778 2.0967-.9867.467-2.0181.7934-3.095.9755-.511.0864-1.025.1418-1.5428.1622-.0501.002-.8557.0047-.8686.0043a12.0444 12.0444 0 0 1-1.4517-.1334 11.7612 11.7612 0 0 1-1.7943-.4175 11.9283 11.9283 0 0 1-2.2824-.9961 11.9821 11.9821 0 0 1-2.9132-2.3115c-.891-.9661-1.6055-2.0493-2.1417-3.2497-.5047-1.13-.824-2.3107-.9616-3.54a11.9165 11.9165 0 0 1-.0733-1.5264c.0072-.4321.0355-.8625.0876-1.2911.0655-.5373.1675-1.068.3055-1.5918.2367-.899.574-1.7584 1.011-2.5784.5443-1.0208 1.2235-1.943 2.0329-2.7688a11.8993 11.8993 0 0 1 1.1528-1.0307C5.633 1.745 6.7778 1.116 8.027.6766 8.5082.5073 8.9971.3635 9.4976.266c.381-.0742.7651-.1357 1.1504-.1821.3426-.0413.6883-.0613 1.0333-.0771.2358-.0108.4727-.001.709.004.4673.0101.9318.0555 1.3937.1244.5023.075.9982.1817 1.4873.32.8146.2305 1.596.5437 2.343.9409a11.9932 11.9932 0 0 1 3.016 2.2728 11.997 11.997 0 0 1 1.362 1.6917A11.9248 11.9248 0 0 1 23.4617 8.45c.2238.722.3769 1.4587.4604 2.2096.0684.6143.0996 1.231.0614 1.8483zM8.0166 14.8342c-.278-.6611-.5564-1.3221-.8356-1.9828-.0771-.1825-.174-.3545-.2985-.509-.0708-.0878-.1482-.1702-.2199-.252.0911-.1045.189-.2057.2746-.3164.7633-.9879.7042-2.4032-.1422-3.3218-.5123-.556-1.1557-.83-1.9078-.8393-.6724-.0084-1.3449-.0041-2.0173.0007-.1034.0007-.211.0215-.309.0553-.2904.1003-.483.3929-.483.7162-.0001 2.2343-.0003 4.4686.0011 6.703 0 .0772.0099.156.027.2315.0772.3384.3777.5771.7256.5814a.7718.7718 0 0 0 .7829-.774c.001-.7546.0002-1.5091.0003-2.2636v-.0725c.0228-.0016.0399-.0038.057-.0038.3733-.0003.7467-.0003 1.12.0001a.226.226 0 0 1 .0636.008c.1992.0601.3907.1383.5636.2559.1302.0886.2506.188.3171.337.0326.073.0643.1465.0955.2202.2588.6116.5169 1.2235.776 1.835a.7605.7605 0 0 0 1.013.4002c.386-.1724.561-.6172.396-1.0093zm7.3796.0008c-.1816-.4869-.3648-.9732-.5474-1.4598-.6555-1.7467-1.3107-3.4935-1.9666-5.2401-.1162-.3096-.3968-.5014-.7292-.5019-.3412-.0005-.6244.19-.7416.5022a7268.363 7268.363 0 0 0-2.509 6.6893c-.0359.0958-.0506.1994-.0644.2556.009.2562.0747.4425.222.5941.3843.3953 1.07.2492 1.2665-.2692.1677-.442.335-.8843.5002-1.3272.0175-.0471.0382-.0648.0908-.0647.823.002 1.646.002 2.469 0 .0522-.0001.0739.0162.0916.0638.1679.4503.3364.9004.5085 1.349.184.4797.8151.6317 1.199.2914.2523-.2235.3325-.5554.2106-.8825zm7.1412-3.6449c-.1495-1.092-.663-1.988-1.5232-2.679-.7198-.5782-1.5504-.867-2.4684-.8967-.4863-.0158-.9734-.0048-1.4602-.002a.733.733 0 0 0-.3641.0988c-.2612.1505-.3834.3844-.384.6798-.0023 1.1201-.001 2.2402-.001 3.3603 0 1.122-.0003 2.2442.0002 3.3662.0003.451.3323.7827.782.783.4399.0003.8797-.0002 1.3196.0002a4.0977 4.0977 0 0 0 1.3082-.212c.8541-.285 1.546-.7947 2.063-1.5313.6267-.8927.876-1.8864.728-2.9673zm-3.224-1.8945c-.4632-.1813-.9487-.1486-1.4309-.1439-.0015 0-.003.002-.0084.0059v5.2038c.0185.0014.0336.0036.0487.0036.1818.0001.3636.0019.5453-.0006.6462-.0086 1.2177-.2247 1.6953-.656.6695-.6046.9716-1.3701.8587-2.264-.1327-1.0498-.7238-1.7633-1.7088-2.1488z\"},\"child\":[]}]})(props);\n};\nexport function SiRailway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.113 10.27A13.026 13.026 0 000 11.48h18.23c-.064-.125-.15-.237-.235-.347-3.117-4.027-4.793-3.677-7.19-3.78-.8-.034-1.34-.048-4.524-.048-1.704 0-3.555.005-5.358.01-.234.63-.459 1.24-.567 1.737h9.342v1.216H.113v.002zm18.26 2.426H.009c.02.326.05.645.094.961h16.955c.754 0 1.179-.429 1.315-.96zm-17.318 4.28s2.81 6.902 10.93 7.024c4.855 0 9.027-2.883 10.92-7.024H1.056zM11.988 0C7.5 0 3.593 2.466 1.531 6.108l4.75-.005v-.002c3.71 0 3.849.016 4.573.047l.448.016c1.563.052 3.485.22 4.996 1.364.82.621 2.007 1.99 2.712 2.965.654.902.842 1.94.396 2.934-.408.914-1.289 1.458-2.353 1.458H.391s.099.42.249.886h22.748A12.026 12.026 0 0024 12.005C24 5.377 18.621 0 11.988 0z\"},\"child\":[]}]})(props);\n};\nexport function SiRainmeter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.7 1.088L12 0l-.7 1.088c-.751 1.168-7.342 11.525-7.342 15.366C3.958 20.615 7.565 24 12 24s8.042-3.385 8.042-7.546c0-3.84-6.591-14.197-7.342-15.366zM12 22.335c-3.516 0-6.377-2.638-6.377-5.881C5.623 13.908 9.732 6.756 12 3.1c2.268 3.656 6.377 10.809 6.377 13.355 0 3.242-2.861 5.88-6.377 5.88zm4.957-6.017c0 2.548-2.22 4.615-4.957 4.615-2.737 0-4.957-2.067-4.957-4.615 0-.163.021-.347.058-.549 0 0 1.306-2.616 4.847 0 2.999 2.215 4.95 0 4.95 0 .038.202.059.386.059.549z\"},\"child\":[]}]})(props);\n};\nexport function SiRakuten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.277 21.3L3.939 24 .722 21.3h22.555zM7.6 19.276H3.939V0h6.052a6.653 6.653 0 0 1 6.65 6.646c0 2.234-1.108 4.204-2.799 5.418l5.418 7.211h-4.585l-4.486-5.979H7.6v5.98zm0-9.64h2.392a2.992 2.992 0 0 0 2.989-2.989 2.994 2.994 0 0 0-2.989-2.986H7.6v5.975z\"},\"child\":[]}]})(props);\n};\nexport function SiRam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.46 22.432l-.515-1.14h-.024l-.579 1.14h1.118zm.222.755h-1.556L9.792 24H7.344l1.791-3.359h3.627L14.494 24h-2.448l-.364-.813zm9.516-1.122h-.105L20.048 24h-1.492l-1.042-1.926-.099.001L17.406 24h-2.239v-3.359h3.522l.627 1.056h.03l.686-1.056h3.403V24h-2.239l.002-1.935zm-18.319.1h.467c.501 0 .647-.161.65-.322.007-.311-.052-.553-.625-.553h-.492v.875zm.512.703h-.499V24H.564v-3.359h3.358c1.761 0 2.48.29 2.566 1.037.043.372-.161 1.043-.977 1.11L6.728 24H4.265l-.874-1.132zM11.844.412c-2.642.003-5.658.155-6.66.24-1.093.093-1.289.164-1.29 1.087l-.009.838c-.008.658-.02 1.587-.02 2.633 0 1.704.101 3.717.226 5.373.134 1.761.24 3.152 2.458 4.475 1.704 1.016 4.668 2.484 4.697 2.498.171.085.565.275.699.327a.531.531 0 0 0 .126 0c.137-.054.572-.27.786-.366.021-.009 2.077-.95 4.608-2.459 2.218-1.323 2.324-2.714 2.459-4.476.125-1.656.226-3.67.226-5.374 0-1.045-.012-1.974-.02-2.632l-.008-.838c-.004-.813-.158-.993-1.291-1.087-1.002-.083-4.018-.238-6.66-.241h-.327v.002zM12.173 0c2.632.003 5.647.139 6.7.243 1.337.131 1.662.194 1.662 1.496 0 1.027.047 5.619-.199 8.875-.138 1.806-.257 3.365-2.658 4.798a50.914 50.914 0 0 1-4.71 2.487c-.311.138-.721.37-.804.387a.884.884 0 0 1-.312 0c-.092-.019-.593-.265-.786-.36-.193-.094-3.067-1.525-4.726-2.514-2.401-1.432-2.52-2.991-2.658-4.798-.247-3.256-.2-7.849-.2-8.875 0-1.302.325-1.365 1.662-1.496C6.197.139 9.212.003 11.844 0h.329zM8.279 2.312c1.95 0 2.955 1.664 3.532 2.876l-.181.991c-1.01-2.1-2.215-3.436-3.674-3.436-1.577 0-2.465 2.012-2.693 2.351.407-1.034 1.591-2.782 3.016-2.782zm10.343 2.783c-.229-.339-1.116-2.351-2.693-2.351-1.459 0-2.663 1.336-3.674 3.436l-.182-.992c.576-1.212 1.581-2.876 3.532-2.876 1.426 0 2.611 1.748 3.017 2.783zm-3.444 4.12c-.163.071-.288.117-.288.117l.098-.846.522-.684c.161.769.149 1.203-.332 1.413zm-6.374 0c-.481-.21-.493-.644-.332-1.414l.522.684.098.846s-.126-.045-.288-.116zm8.367-4.41c-1.276-.025-2.381.961-3.127 3.352l.419.264-.173.998-.952.338-.187 1.292.462-.587.649-.132-.289.778-.895.499-.318 2.084.12.783-.92.356v.001l-.844-.357.12-.783-.318-2.084-.895-.499-.288-.778.649.132.462.587-.188-1.292-.952-.338-.173-.998.418-.264c-.745-2.39-1.85-3.376-3.127-3.352-1.02.02-1.778 1.209-1.693 2.466l.885.105c.317 1.773.612 4.025 1.28 4.025.203 0 .212-.319.212-.577 0-.627-.378-1.38-.378-2.575 0-.552.179-1.027.587-1.027.277 0 .402.074.532.315-.11.818-.114 1.52.525 1.953.141.095.446.382.446.382s.525 2.067.557 2.205c.03.126.104.298.161.403l.666 1.163s.199 1.249.241 1.465c.105.533.648.579 1.091.583h.123c.444-.003.986-.049 1.091-.583.042-.215.241-1.465.241-1.465l.666-1.163c.057-.105.132-.277.161-.403.032-.138.558-2.205.558-2.205s.305-.287.446-.382c.638-.433.635-1.135.524-1.953.131-.241.255-.315.532-.315.408 0 .587.475.587 1.027 0 1.196-.378 1.948-.378 2.575 0 .259.008.577.212.577.667 0 .963-2.252 1.279-4.025l.885-.105c.086-1.257-.672-2.446-1.692-2.466zm-4.953-3.33c1.928 0 5.848.197 6.1.222.326.029.541.074.614.153.073.074.095.158.107.344.012.173.023.858.023.859.007.612.018 1.475.018 2.446 0 .57-.004 1.176-.014 1.791l.132.086c.011-.644.015-1.281.015-1.877 0-.972-.011-1.836-.018-2.448 0-.001-.011-.684-.023-.866-.012-.189-.038-.323-.146-.43-.136-.13-.366-.157-.695-.192-.265-.026-4.175-.222-6.113-.223-.278.002-.571-.003-.854-.003-2.323 0-5.419.21-5.675.226-.379.025-.58.033-.717.189-.106.13-.137.323-.144.513-.005.185-.007.786-.007.787-.007.611-.018 1.476-.018 2.448 0 .587.004 1.214.015 1.848l.132-.086c-.01-.604-.013-1.201-.013-1.762 0-.971.011-1.835.018-2.447 0-.001.002-.603.008-.784.004-.176.041-.348.113-.431.074-.096.236-.12.621-.141.257-.016 3.349-.226 5.665-.226l.856.004zm7.121 6.071l-.146.277s-.582.061-.602.061c-.281 2.239-1.19 4.63-2.183 4.63-.327 0-.336-.507-.336-1.111 0-.257.036-.486.076-.687-.106.197-.289.918-.289 1.534 0 .72.405 1.116 1.097 1.116.702 0 1.289-.343 1.673-.981-.248.686-.732 1.281-1.767 1.903a45.997 45.997 0 0 1-4.298 2.27c-.181.081-.416.187-.601.266-.17-.079-.333-.161-.47-.228-.025-.012-2.769-1.371-4.34-2.308-.969-.581-1.455-1.14-1.716-1.772.382.551.915.85 1.565.85.692 0 1.097-.396 1.097-1.116 0-.616-.182-1.337-.289-1.534.041.201.076.43.076.687 0 .603-.009 1.111-.336 1.111-.993 0-1.905-2.402-2.185-4.641l-.564-.058-.18-.336s-.033 1.075.003 1.78c.036.706.11 1.312.337 2.17.043.164.093.318.15.462.198.946.658 1.729 1.974 2.509 1.58.942 4.322 2.3 4.349 2.313.149.073.349.173.527.254.194-.081.459-.201.658-.29.021-.01 1.971-.883 4.312-2.278 1.458-.864 1.865-1.731 2.029-2.82.013-.05.027-.1.039-.152.194-.868.274-1.322.31-2.028.032-.606.031-1.591.03-1.853z\"},\"child\":[]}]})(props);\n};\nexport function SiRancher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.727 9.007a.713.713 0 01-.726.855h-1.542V8.798h.468a.883.883 0 00.875-.875v-.388c0-.477.12-.875.269-.875.139 0 .328.388.407.865l.249 1.482zm-3.49-1.253c.486 0 .874.388.894.885v4.555a.883.883 0 01-.875.875h-2.357a.883.883 0 01-.875-.875v-1.79a.871.871 0 00-.348.696v1.502c0 .477.397.875.875.875h1.531v2.327a.535.535 0 01-.537.538h-2.884a.535.535 0 01-.537-.538v-2.168a.535.535 0 00-.537-.537h-7.2a.535.535 0 00-.538.537v2.168a.535.535 0 01-.537.538H2.428a.535.535 0 01-.537-.538V10.58L.588 11.603c-.06.04-.14.04-.189-.02l-.368-.438a.135.135 0 01-.01-.159l1.91-2.914a.536.536 0 01.487-.318h10.165a.54.54 0 01.527.627l-.21 1.243a.54.54 0 00.528.626h2.039a.535.535 0 00.527-.437c-.13.04-.269.06-.418.06h-1.452c-.487 0-.815-.388-.736-.866l.249-1.482c.08-.477.258-.865.407-.865.15 0 .269.398.269.875v.229c.02-.01.05-.01.08-.01h4.843zm3.65-.537c0-.388.288-.557.556-.557.269 0 .557.17.557.557 0 .378-.288.547-.557.547-.268 0-.557-.17-.557-.547zm.984 0c0-.308-.2-.438-.418-.438-.219 0-.428.13-.428.438 0 .298.21.438.428.438.219-.01.418-.14.418-.438zm-.607-.279h.199c.1 0 .199.03.199.17 0 .08-.06.129-.13.149l.13.228h-.12l-.119-.218h-.05v.218h-.109v-.547zm.199.25c.05 0 .09-.03.09-.08 0-.06-.05-.07-.09-.07h-.1v.15h.1z\"},\"child\":[]}]})(props);\n};\nexport function SiRapid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.028 15.798c-.212-.065-.228-.359.017-.457 4.216-1.993 3.938-6.519 3.938-6.519C19.967 4.232 16.6-.016 11.158 0 5.112.033 1.468 4.787 1.5 10.407 1.55 20.26 9.067 24.017 11.42 24l-.016-3.905c0-.62 0-1.11.375-1.11 0 0 2.42 2.434 5.116 2.417 4.183-.016 5.605-3.529 5.605-3.529zm-4.837-3.006a3.86 3.86 0 0 1-3.89-3.855 3.86 3.86 0 0 1 3.857-3.889 3.86 3.86 0 0 1 3.89 3.856c0 2.14-1.716 3.888-3.857 3.888z\"},\"child\":[]}]})(props);\n};\nexport function SiRarible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.8 0A4.79 4.79 0 000 4.8v14.4A4.79 4.79 0 004.8 24h14.4a4.79 4.79 0 004.8-4.8V4.8A4.79 4.79 0 0019.2 0zm1.32 7.68h8.202c2.06 0 3.666.44 3.666 2.334 0 1.137-.671 1.702-1.427 1.898.904.268 1.558 1 1.558 2.16v2.131h-3.451V14.18c0-.62-.37-.87-1-.87H9.572v2.893H6.12zm3.452 2.5v.834h4.155c.452 0 .726-.06.726-.416 0-.358-.274-.418-.726-.418z\"},\"child\":[]}]})(props);\n};\nexport function SiRasa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.848 15.852-3.882-2.034H.97V7.515h22.06v6.303h-2.182v2.034ZM0 6.545v8.243h16.727l5.091 2.667v-2.667H24V6.545H0Zm1.94 1.94h4.12v2.18l-1.33.517 1.362 1.666H4.84l-1.06-1.296-.87.339v.957h-.97V8.485ZM8 12.848h-.97V8.485h4.364v4.363h-.97v-1.454H8v1.454Zm4.364-1.696V8.485h4.363v.97h-3.394v.727h3.394v2.666h-4.363v-.97h3.394v-.726h-3.394Zm5.333-.243V8.485h4.364v4.363h-.97v-1.454h-2.424v1.454h-.97V10.91Zm-14.788-.06 2.182-.848v-.546H2.909v1.395ZM8 9.456v.97h2.424v-.97H8Zm13.09.97v-.97h-2.423v.97h2.424Z\"},\"child\":[]}]})(props);\n};\nexport function SiRaspberrypi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.8955 10.8961-.1726-.3028c.0068-2.1746-1.0022-3.061-2.1788-3.7348.356-.0938.7237-.1711.8245-.6182.6118-.1566.7397-.4398.8011-.7398.16-.1066.6955-.4061.6394-.9211.2998-.2069.4669-.4725.3819-.8487.3222-.3515.407-.6419.2702-.9096.3868-.4805.2152-.7295.05-.9817.2897-.5254.0341-1.0887-.7758-.9944-.3221-.4733-1.0244-.3659-1.133-.3637-.1215-.1519-.2819-.2821-.7755-.219-.3197-.2851-.6771-.2364-1.0458-.0964-.4378-.3403-.7275-.0675-1.0584.0356-.53-.1706-.6513.0631-.9117.1583-.5781-.1203-.7538.1416-1.0309.4182l-.3224-.0063c-.8719.5061-1.305 1.5366-1.4585 2.0664-.1536-.5299-.5858-1.5604-1.4575-2.0664l-.3223.0063C9.942.5014 9.7663.2394 9.1883.3597 8.9279.2646 8.807.0309 8.2766.2015c-.2172-.0677-.417-.2084-.6522-.2012l.0004.0002C7.5017.0041 7.369.049 7.2185.166c-.3688-.1401-.7262-.1887-1.0459.0964-.4936-.0631-.654.0671-.7756.219C5.2887.4791 4.5862.3717 4.264.845c-.8096-.0943-1.0655.4691-.7756.9944-.1653.2521-.3366.5013.05.9819-.1367.2677-.0519.5581.2703.9096-.085.3763.0822.6418.3819.8487-.0561.515.4795.8144.6394.9211.0614.3001.1894.5832.8011.7398.1008.4472.4685.5244.8245.6183-1.1766.6737-2.1856 1.56-2.1788 3.7348l-.1724.3028c-1.3491.8082-2.5629 3.4056-.6648 5.5167.124.6609.3319 1.1355.5171 1.6609.2769 2.117 2.0841 3.1082 2.5608 3.2255.6984.524 1.4423 1.0212 2.449 1.3696.949.964 1.977 1.3314 3.0107 1.3308.0152 0 .0306.0002.0457 0 1.0337.0006 2.0618-.3668 3.0107-1.3308 1.0067-.3483 1.7506-.8456 2.4491-1.3696.4766-.1173 2.2838-1.1085 2.5607-3.2255.1851-.5253.3931-1 .517-1.6609 1.8981-2.1113.6843-4.7089-.6649-5.517zm-1.0386-.3715c-.0704.8759-4.6354-3.0504-3.8472-3.1808 2.1391-.3558 3.9191.896 3.8472 3.1808zm-2.0155 4.3649c-1.1481.7409-2.8025.2626-3.6953-1.0681-.8928-1.3306-.6858-3.0101.4623-3.7509 1.1481-.7409 2.8025-.2627 3.6953 1.068.8927 1.3307.6858 3.0101-.4623 3.751zM13.6591 1.3721c.0396.1967.0843.321.1354.3577.2537-.272.4611-.5506.7878-.8123.0011.1537-.0776.3205.1169.4425.1752-.2356.4119-.4459.7263-.6244-.1514.2611-.026.3404.0554.4486.24-.2059.4681-.4144.9109-.5759-.121.1474-.2902.2914-.1108.4607.2473-.1544.496-.3086 1.0833-.4183-.1323.1475-.4059.295-.2401.4426.3104-.1186.6539-.2047 1.034-.2546-.182.1496-.3337.2963-.1846.4122.3323-.1022.7899-.2398 1.2372-.1212l-.2832.2849c-.0314.0382.6623.0297 1.1202.0364-.167.2321-.3375.4562-.437.8548.0454.0459.2723.0204.4862 0-.2194.4618-.6004.5783-.6893.776.134.1015.32.075.5232.006-.158.3254-.4892.5484-.7509.8123.0662.047.1818.075.4555.0425-.2418.257-.5339.492-.8802.7032.0614.0708.2722.0681.4678.0727-.3136.3069-.7173.466-1.0955.6668.1885.1288.3234.0988.4678.097-.2676.2198-.7225.3342-1.1448.4668.0803.1249.1607.1589.3324.194-.447.2473-1.0873.1343-1.2679.2607.0435.1243.1665.2053.3139.2728-.7197.0418-2.6879-.0262-3.0652-1.5156.7367-.8094 2.0813-1.7593 4.394-2.934-1.7994.6022-3.4229 1.405-4.7817 2.5096-1.5978-.7436-.4965-2.6197.283-3.3645zm-1.6126 5.3718c1.1329-.0123 2.5356.8325 2.53 1.6286-.005.7027-.9851 1.2715-2.5213 1.2607-1.5043-.0177-2.5172-.7148-2.5137-1.3957.003-.5603 1.2282-1.5263 2.505-1.4936zm-5.7646-.6006c.1717-.0351.252-.0692.3323-.194-.4223-.1327-.8772-.247-1.1448-.4668.1444.0018.2792.0318.4678-.097-.3783-.2008-.782-.3599-1.0956-.6668.1955-.0048.4064-.002.4677-.0728-.3462-.2113-.6383-.4463-.8801-.7033.2738.0325.3893.0045.4555-.0425-.2617-.264-.593-.487-.7509-.8123.2032.069.3892.0954.5232-.006-.089-.1977-.47-.3142-.6894-.776.214.0204.4409.0459.4863 0-.0994-.3985-.2698-.6226-.4369-.8547.4579-.0067 1.1516.0018 1.1202-.0364l-.2831-.2849c.4472-.1186.9049.019 1.2371.1213.1492-.1159-.0026-.2626-.1847-.4123.3801.05.7236.1361 1.034.2547.1659-.1476-.1076-.2951-.24-.4426.5872.1097.8361.2639 1.0833.4183.1794-.1694.0103-.3133-.1108-.4607.4428.1615.6709.37.911.5759.0814-.1082.2068-.1875.0554-.4486.3143.1785.5511.3888.7263.6244.1945-.122.1159-.2888.1169-.4426.3267.2618.534.5404.7879.8124.0511-.0366.0959-.161.1354-.3577.7794.7448 1.8807 2.6208.2831 3.3646-1.3589-1.1039-2.9817-1.9064-4.78-2.5086 2.3115 1.174 3.6556 2.1239 4.392 2.9328-.3773 1.4895-2.3455 1.5575-3.0651 1.5157.1473-.0676.2703-.1485.3139-.2728-.1806-.1264-.8209-.0134-1.2679-.2607zm2.8175 1.1334c.7881.1304-3.7769 4.0567-3.8472 3.1809-.0719-2.2846 1.7079-3.5367 3.8472-3.1809zm-4.847 8.7567c-1.1094-.8789-1.4668-3.4529.5901-4.6097 1.2394-.3273.4184 5.051-.5901 4.6097zm4.2656 4.5989c-.6257.3719-2.1452.2187-3.2252-1.3095-.7283-1.2823-.6345-2.5872-.123-2.9705.7648-.4589 1.9464.1609 2.8559 1.2003.7923.9405 1.1536 2.5927.4923 3.0797zm-1.2415-5.6086c-1.1481-.7409-1.3551-2.4203-.4623-3.7511.8928-1.3307 2.5472-1.8089 3.6952-1.068 1.1481.7409 1.3551 2.4203.4623 3.7509-.8926 1.3308-2.5471 1.809-3.6952 1.0682zm4.7948 8.2279c-1.3763.0584-2.7258-1.1105-2.7081-1.5157-.0206-.594 1.6758-1.0578 2.782-1.0306 1.1131-.0479 2.6068.3531 2.6097.8851.0184.5166-1.3547 1.6838-2.6836 1.6612zm2.7584-5.8578c.0081 1.3899-1.226 2.5225-2.7562 2.5299-1.5302.0073-2.7773-1.1135-2.7854-2.5033v-.0265c-.008-1.3899 1.2259-2.5226 2.7562-2.5299 1.5302-.0073 2.7773 1.1134 2.7853 2.5033a.7794.7794 0 0 1 .0001.0265zm3.855 2.0029c-1.186 1.6208-2.7916 1.684-3.3896 1.2325-.6255-.5811-.148-2.3854.7094-3.3747v-.0003c.9812-1.0912 2.0302-1.8037 2.7609-1.2469.4919.4828.7805 2.3008-.0807 3.3894zm1.0724-3.4301c-1.0086.4413-1.8298-4.9372-.5901-4.61 2.0568 1.1569 1.6994 3.731.5901 4.61zm-.0256-8.3279h.2985v-.5304h.2986c.1502 0 .2053.0624.2262.2052.0152.1088.0113.2395.0477.3253h.2984c-.0533-.0763-.0515-.2358-.0571-.3213-.0097-.1373-.0513-.2796-.1977-.3176v-.0037c.1502-.061.2149-.1807.2149-.341 0-.2048-.1539-.3738-.3974-.3738h-.732v1.3573zm.2985-1.1255h.3269c.1333 0 .2054.0573.2054.188 0 .1369-.0721.1942-.2054.1942H20.03v-.3822zm-1.0337.4633c0 .7009.5682 1.2694 1.2695 1.2694s1.2695-.5684 1.2695-1.2694c0-.7013-.5683-1.2697-1.2695-1.2697-.7013 0-1.2695.5684-1.2695 1.2697zm2.3275 0c0 .5845-.4737 1.058-1.058 1.058s-1.058-.4735-1.058-1.058c0-.5849.4737-1.058 1.058-1.058s1.058.4731 1.058 1.058z\"},\"child\":[]}]})(props);\n};\nexport function SiRavelry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9718 10.9238c-.0597-.51098-.084-1.02918-.1851-1.53174-.1227-.61046-.2793-1.21823-.4755-1.80886-.34288-1.03247-.84358-1.9895-1.52577-2.84163-.2955-.3691-.59489-.73971-.92998-1.07185-.699-.69252-1.47808-1.28586-2.32827-1.78481-.88588-.52-1.81527-.9414-2.80316-1.21913-.54449-.153-1.10068-.26842-1.65627-.37632-.3351-.06493-.67949-.08236-1.01938-.12264-.0156-.0018-.0297-.01773-.0444-.02735-.5319.0003-1.06379.0003-1.59568.0003-.1191.01924-.2376.04569-.3576.0568-.57748.05381-1.13818.18667-1.69287.35078-.68279.20169-1.33498.47912-1.96527.80825-.66029.34506-1.28548.74813-1.88187 1.19388-.3048.22783-.6063.46258-.88829.71747-.50279.45507-1.00678.91104-1.47897 1.39707-.6378.65676-1.18769 1.38595-1.66288 2.17196C1.05934 7.533.71345 8.2628.46776 9.03978c-.1773.56118-.3054 1.13197-.3801 1.7178-.0744.58431-.1062 1.17043-.0768 1.75565.0336.66577.0951 1.32944.2187 1.9886.1713.91345.4392 1.79083.82679 2.63394.3207.69703.72149 1.34267 1.18618 1.95344.3897.51187.83099.97476 1.30258 1.40428.63239.5759 1.32508 1.07546 2.06487 1.5116.87719.51728 1.79787.92937 2.76266 1.24918.65639.21762 1.32808.37271 2.00847.48603.3.0499.60659.06192.90988.09258.0204.0021.0393.01834.0588.02765h1.59568c.1239-.01924.2472-.04629.372-.05651.80728-.06583 1.58667-.2636 2.34686-.52961.85018-.29787 1.66557-.6784 2.41916-1.17705.4818-.31861.95849-.64624 1.42018-.9931.2859-.21491.54299-.4695.80579-.71447.1959-.18275.38369-.37452.56879-.56839.59639-.6261 1.11118-1.31471 1.55307-2.05773.4716-.79292.8577-1.62611 1.10219-2.51671.1413-.51459.2445-1.04.3468-1.5642.051-.2609.0618-.5299.0924-.79502.0018-.01563.0177-.02976.0273-.04448v-1.8314c-.0096-.02946-.0246-.058-.0282-.08807zm-7.96218-.05682s-.81899-.14728-1.40698-.14728c-1.34398 0-1.65897.7364-1.65897 1.8305v4.62885H9.31072V7.75303h3.63295v1.57802c.441-1.32554 1.32298-1.78842 3.06595-1.78842z\"},\"child\":[]}]})(props);\n};\nexport function SiRay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.153 12.826c-.63-.183-1.03.15-1.378.846-.58 1.13-1.643 1.644-2.888 1.594-1.245-.05-2.257-.63-2.788-1.776-.233-.498-.498-.664-1.046-.68-.93-.017-1.643.016-2.174 1.062-.631 1.261-2.258 1.693-3.619 1.261a3.234 3.234 0 0 1-2.257-3.22 3.198 3.198 0 0 1 2.29-3.02 3.276 3.276 0 0 1 3.702 1.327c.216.315.216.863.597.93.648.1 1.328.033 1.992.033.299 0 .316-.266.399-.465.58-1.295 1.61-1.959 2.987-1.975 1.361-.017 2.39.647 2.955 1.892.215.465.48.598.946.548.166-.017.332.016.498 0 .464-.083 1.062.282 1.344-.448.282-.73-.382-.913-.68-1.245-.847-.946-1.81-1.793-2.673-2.706-.415-.465-.763-.614-1.41-.415-1.876.614-3.619-.431-4.15-2.357-.448-1.676.714-3.535 2.44-3.917a3.293 3.293 0 0 1 3.95 2.457c.017.05.017.083.033.133.117.564.117 1.145-.132 1.626-.283.531-.133.83.249 1.195a152.61 152.61 0 0 1 3.286 3.27c.299.299.498.349.913.2 1.51-.565 2.97-.1 3.884 1.161a3.266 3.266 0 0 1-.067 3.801c-.896 1.195-2.357 1.643-3.834 1.079-.381-.15-.58-.1-.846.182a163.619 163.619 0 0 1-3.403 3.386c-.299.3-.415.532-.232.98a3.198 3.198 0 0 1-1.278 3.917A3.298 3.298 0 0 1 9.646 23c-1.062-1.062-1.228-2.688-.415-4.033a3.196 3.196 0 0 1 3.835-1.294c.498.182.78.083 1.145-.283 1.012-1.045 2.058-2.058 3.087-3.103.266-.266.68-.449.432-1.03-.233-.547-.631-.414-1.03-.431zM11.97 4.942c.913.016 1.643-.714 1.66-1.627v-.05a1.646 1.646 0 0 0-1.76-1.56 1.63 1.63 0 0 0-1.543 1.527 1.638 1.638 0 0 0 1.577 1.71zm.033 5.41a1.658 1.658 0 0 0-1.676 1.61v.084a1.73 1.73 0 0 0 1.643 1.66c.847.016 1.643-.78 1.677-1.627a1.648 1.648 0 0 0-1.577-1.71c-.017-.016-.05-.016-.067-.016zm7.088 1.694c.016.896.747 1.61 1.626 1.643a1.723 1.723 0 0 0 1.66-1.726 1.666 1.666 0 0 0-1.66-1.61 1.623 1.623 0 0 0-1.643 1.577c.017.05.017.083.017.116zM3.24 10.353a1.692 1.692 0 0 0-1.66 1.626c-.017.847.863 1.727 1.693 1.71a1.687 1.687 0 0 0 1.626-1.743 1.615 1.615 0 0 0-1.643-1.593Zm8.68 12c.98.033 1.71-.647 1.727-1.593a1.646 1.646 0 0 0-1.51-1.793 1.646 1.646 0 0 0-1.793 1.51v.233a1.609 1.609 0 0 0 1.543 1.66c0-.017.017-.017.033-.017z\"},\"child\":[]}]})(props);\n};\nexport function SiRaycast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.004 15.492v2.504L0 11.992l1.258-1.249Zm2.504 2.504H6.004L12.008 24l1.253-1.253zm14.24-4.747L24 11.997 12.003 0 10.75 1.251 15.491 6h-2.865L9.317 2.692 8.065 3.944l2.06 2.06H8.691v9.31H18v-1.432l2.06 2.06 1.252-1.252-3.312-3.32V8.506ZM6.63 5.372 5.38 6.625l1.342 1.343 1.251-1.253Zm10.655 10.655-1.247 1.251 1.342 1.343 1.253-1.251zM3.944 8.059 2.692 9.31l3.312 3.314v-2.506zm9.936 9.937h-2.504l3.314 3.312 1.25-1.252z\"},\"child\":[]}]})(props);\n};\nexport function SiRaylib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0Zm1.5 1.5h21v21h-21v-21Zm14.813 15.469v3.281h.937v-.469h-.469V16.97h-.468Zm1.406 0v.468h.468v-.468h-.468Zm.937 0v3.281H21v-2.344h-1.875v-.937h-.469Zm-10.781.937v2.344h.469v-1.875h1.875v-.469H7.875Zm2.813 0v.469h1.874v.469h-1.874v1.406h2.343v-2.344h-2.344Zm2.812 0v2.344h1.875v.469H13.5v.468h2.344v-3.28h-.469v1.874h-1.406v-1.875H13.5Zm4.219 0v2.344h.468v-2.344h-.468Zm1.406.469h1.406v1.406h-1.406v-1.406Zm-7.969.938h1.406v.468h-1.406v-.468Z\"},\"child\":[]}]})(props);\n};\nexport function SiRazer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.4 0a.385.385 0 00-.278.125L22.91.35l-.401.182a.711.711 0 00-.417 0 .305.305 0 01-.171 0 1.005 1.005 0 00-.567 0A.936.936 0 0021 .596a.877.877 0 00-.412.337l-.037.048a1.246 1.246 0 00-.898.684 1.07 1.07 0 00-.07.225 1.935 1.935 0 00-.337-.193 2.026 2.026 0 00-2.063.305 2.08 2.08 0 00-.69 2.139c.086.376.23.737.428 1.069.496.776 1.079 1.494 1.737 2.138.526.512.996 1.078 1.401 1.69l.053.096c.396.754.321 1.31-.219 1.647a1.358 1.358 0 01-.572.198 2.491 2.491 0 00-.144-2.07 2.342 2.342 0 00-.3-.406c-.79-.866-1.63-.674-1.962-.449a.385.385 0 00-.15.455l.027.058a.385.385 0 00.38.188 1.07 1.07 0 01.962.582c.23.384.23.862 0 1.246a4.812 4.812 0 01-.534-.535l-.07-.07-.037-.042a3.368 3.368 0 00-1.92-1.208 3.09 3.09 0 00-.406-1.455 4.368 4.368 0 00-1.358-1.48 2.673 2.673 0 00-.267-.16 3.085 3.085 0 00-2.251-2.717 2.7 2.7 0 00-2.968 1.139c-.053.086-.112.171-.165.267a12.26 12.26 0 00-1.038 2.78 11.64 11.64 0 01-.775 2.187l-.059.107c-.213.374-.406.583-.609.647a.406.406 0 01-.374-.064c-.203-.14-.155-.423 0-.973a3.33 3.33 0 00.128-.45c.07-.33-.005-.673-.203-.946a1.07 1.07 0 00-.786-.411c-.49-.018-.94.27-1.128.722l-.08.15a.968.968 0 00-.316-.46.936.936 0 00-.294-.129 1.016 1.016 0 00-.535-.198.342.342 0 01-.17-.053.711.711 0 00-.434-.097l-.326-.256-.144-.278c-.18-.35-.707-.238-.727.155a.385.385 0 00.032.727l.305.075.342.267c.026.14.093.268.192.37.043.04.072.092.086.149.058.184.167.347.315.47a.877.877 0 00.727.465h.06c.262.313.662.477 1.068.439a1.07 1.07 0 00.23-.054 1.935 1.935 0 000 .38 2.026 2.026 0 001.3 1.636 2.08 2.08 0 002.208-.481c.276-.26.51-.562.695-.893.422-.817.75-1.68.978-2.572.179-.711.433-1.401.76-2.058l.058-.096c.454-.722.973-.936 1.535-.637.18.096.338.231.46.396-.714.12-1.34.543-1.717 1.16-.084.146-.152.3-.203.46-.353 1.117.23 1.748.593 1.925.16.077.353.035.466-.102l.037-.053a.385.385 0 000-.423 1.07 1.07 0 010-1.128c.218-.384.627-.62 1.07-.615-.04.245-.1.486-.177.722l-.034.093a3.533 3.533 0 00-.084 2.324 3.09 3.09 0 00-1.07 1.07 4.368 4.368 0 00-.603 1.913 2.674 2.674 0 000 .31 3.085 3.085 0 00-1.23 3.31 2.7 2.7 0 002.47 2h.31a12.26 12.26 0 002.925-.493 11.64 11.64 0 012.283-.422h.117c.304-.037.61.035.866.203.102.09.152.224.134.358 0 .246-.289.348-.855.466a3.33 3.33 0 00-.45.117 1.192 1.192 0 00-.721.647 1.07 1.07 0 00.037.888c.229.435.704.683 1.193.62h.165a.968.968 0 00-.235.502.936.936 0 000 .364c-.019.183.013.368.091.535.03.054.045.115.043.176-.002.151.045.3.133.422l-.058.412-.166.262a.385.385 0 00.497.535c.287.265.74-.016.63-.39l-.085-.3.064-.433a.711.711 0 00.22-.353.305.305 0 01.085-.15c.131-.141.218-.318.252-.508a.936.936 0 00.122-.336.877.877 0 00-.085-.535v-.053c.134-.376.08-.794-.144-1.123a1.07 1.07 0 00-.16-.171c.115-.05.226-.11.33-.182a2.026 2.026 0 00.77-1.94 2.08 2.08 0 00-1.518-1.674 3.71 3.71 0 00-1.123-.155c-.919.043-1.83.19-2.716.438-.697.198-1.414.322-2.138.369h-.112c-.85-.032-1.294-.374-1.316-1.01-.007-.204.031-.407.113-.594.459.559 1.138.89 1.86.909.17 0 .338-.018.503-.054 1.144-.25 1.4-1.069 1.374-1.475a.385.385 0 00-.321-.353h-.064a.385.385 0 00-.353.235 1.07 1.07 0 01-.984.535 1.214 1.214 0 01-1.069-.631c.233-.088.473-.158.716-.209h.155a3.368 3.368 0 002.01-1.069c.449.243.95.372 1.46.374.679.01 1.35-.138 1.962-.433.094-.044.185-.094.273-.15a3.085 3.085 0 003.48-.587 2.7 2.7 0 00.498-3.139 6.884 6.884 0 00-.15-.273 12.259 12.259 0 00-1.887-2.288 11.64 11.64 0 01-1.508-1.764l-.064-.102a1.294 1.294 0 01-.257-.85.406.406 0 01.16-.267c.225-.107.444.08.83.508.1.118.21.228.326.331.25.225.584.334.92.3a1.07 1.07 0 00.748-.476c.263-.416.24-.951-.06-1.342l-.085-.145c.18.035.365.019.535-.048a.936.936 0 00.32-.197c.178-.076.33-.2.44-.359a.342.342 0 01.133-.123.711.711 0 00.3-.326l.384-.155h.31a.385.385 0 00.353-.577l-.005.01a.385.385 0 00-.118-.128A.385.385 0 0023.4 0zm.006.398l-.187.315.347.086-.395.005-.658.262a.262.262 0 01-.171.262c-.316.182-.198.321-.583.487-.08.032-.107.101-.256.176-.15.075-.407-.027-.535 0a.32.32 0 00-.203.535c.085.144.486.679.192 1.112a.711.711 0 01-1.107.102c-.368-.305-.866-1.214-1.577-.877-.71.336-.502 1.128-.085 1.796.882 1.39 2.705 2.673 3.523 4.277 1 2-1.107 4.336-3.673 3.117a2.326 2.326 0 01-.396.24c-1.069.535-2.512.578-3.395-.117-.395.941-1.79 1.182-2.031 1.24-.423.08-.832.22-1.214.418.487 1.614 2.47 1.454 2.908.427 0 0 .054.824-1.069 1.07a2.139 2.139 0 01-2.288-1.16c-.33.346-.507.81-.492 1.288.027.69.46 1.337 1.69 1.385 1.662.064 4.25-1.203 6.014-.669 1.344.335 1.723 2.065.642 2.93a2.732 2.732 0 01-1.23.385c-.182.01-.198.091-.181.145.016.053.117.053.278.053.582-.053 1.208.283.93 1.166-.043.123.155.352.117.534-.053.262-.112.203-.112.289-.07.412-.235.326-.337.679a.257.257 0 01-.203.208l-.101.706.112.38-.182-.321-.251.257.214-.332.101-.7a.262.262 0 01-.16-.267c0-.364-.182-.332-.128-.75.037-.085 0-.042 0-.31.016-.186.23-.341.272-.48.043-.14.054-.45-.369-.45-.198.006-.85.075-1.069-.39a.711.711 0 01.465-1.01c.45-.16 1.497-.123 1.556-.91.059-.785-.727-.999-1.513-.972-1.657.059-3.663 1.01-5.48.903-2.23-.128-3.198-3.133-.861-4.737a2.326 2.326 0 010-.465c.09-1.219.77-2.47 1.812-2.85-.593-.818-.128-2.149-.058-2.384.135-.4.213-.818.23-1.24-1.642-.37-2.497 1.411-1.824 2.304 0 0-.743-.369-.395-1.465a2.139 2.139 0 012.138-1.4 1.786 1.786 0 00-.871-1.07c-.61-.3-1.385-.267-2.043.77-.887 1.411-1.063 4.293-2.427 5.544-.961 1-2.652.463-2.86-.909a2.732 2.732 0 01.278-1.256c.08-.166.032-.214-.038-.23-.07-.016-.123.07-.187.214a.823.823 0 01-1.475.224c-.097-.107-.342.006-.535-.17-.192-.177-.128-.188-.192-.241-.321-.273-.16-.375-.418-.636a.257.257 0 01-.08-.284L.796 7.2.41 7.102h.38l-.102-.347.182.353.534.438a.262.262 0 01.31 0c.321.182.38.01.717.262.07.054.133.027.283.134.15.107.187.374.278.476a.32.32 0 00.572-.096c.086-.193.332-.77.866-.728.457.027.77.47.642.91-.091.47-.652 1.357 0 1.801.652.444 1.235-.134 1.604-.829.775-1.46.957-3.678 1.957-5.202 1.23-1.887 4.309-1.224 4.533 1.604.145.06.283.136.412.225 1.032.69 1.759 1.924 1.567 2.994 1.02-.129 1.919.957 2.09 1.138.28.328.606.612.968.845 1.165-1.23.037-2.865-1.07-2.732 0 0 .69-.46 1.466.39.61.728.666 1.772.139 2.561.465.113.956.034 1.363-.219.583-.353.925-1.07.353-2.138-.776-1.476-3.187-3.075-3.588-4.876-.384-1.333.928-2.528 2.219-2.021.38.21.705.51.946.871.102.155.166.134.214.086.048-.048-.005-.14-.096-.268a.823.823 0 01.534-1.39c.145-.027.161-.289.418-.374.256-.086.23-.016.31-.048.395-.15.406.043.759-.048.1-.038.212-.01.283.07l.68-.263zm-10.297 6.26c-.065.53-.348 1.647-.187 2.332.155.871.823.823 1.069.395.163-.332.2-.711.107-1.069a3.106 3.106 0 00-.984-1.636zm.256.872c.17.262.293.551.364.856a1.3 1.3 0 010 .759c-.086.187-.332.187-.423-.23-.04-.462-.02-.928.06-1.385zm1.727 2.661c-.517.012-.67.472-.47.82.207.31.521.534.882.63a3.106 3.106 0 001.908-.037c-.422-.32-1.25-1.123-1.903-1.342a1.255 1.255 0 00-.417-.07zm.088.401a.807.807 0 01.201.04c.429.197.83.45 1.192.753a2.82 2.82 0 01-.962-.107 1.3 1.3 0 01-.642-.396c-.095-.134-.036-.3.21-.29zm-2.285.183a1.54 1.54 0 00-.984.45 3.106 3.106 0 00-.936 1.673c.535-.203 1.604-.519 2.139-.973.663-.588.251-1.166-.22-1.15zm-.025.341c.188.008.276.217-.04.488a5.39 5.39 0 01-1.234.631c.134-.277.315-.528.534-.743a1.3 1.3 0 01.7-.374.284.284 0 01.04-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiRazorpay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.436 0l-11.91 7.773-1.174 4.276 6.625-4.297L11.65 24h4.391l6.395-24zM14.26 10.098L3.389 17.166 1.564 24h9.008l3.688-13.902Z\"},\"child\":[]}]})(props);\n};\nexport function SiRclone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.842.6258C9.3647.6813 6.9754 1.9906 5.646 4.2933c-.7593 1.3144-1.0647 2.7662-.966 4.1745a7.99 7.99 0 0 1 2.6568-.4541l1.4705-.0013c-.0093-.5594.1245-1.1284.4245-1.6482.8827-1.5284 2.837-2.0522 4.3654-1.1695 1.5284.8824 2.0519 2.8366 1.1695 4.365l-1.4782 2.5647 1.1955 2.0714 2.3914-.0004 1.4775-2.5655c2.0262-3.5088.8239-7.9959-2.6853-10.0217C14.4614.9118 13.1396.5967 11.842.6258m-1.5451 8.073-2.9605.0029C3.2844 8.7017 0 11.9867 0 16.0383c0 4.052 3.2844 7.3367 7.3364 7.3367 1.5174 0 2.9267-.4609 4.0967-1.2497a8 8 0 0 1-1.72-2.0748l-.7368-1.273c-.4799.288-1.0392.4565-1.6395.4565-1.765 0-3.1958-1.4307-3.1958-3.1958 0-1.7647 1.4307-3.1954 3.1958-3.1954l2.96-.0022 1.1962-2.0708zm9.587.7475a7.99 7.99 0 0 1-.935 2.5278l-.7344 1.2745c.4892.2717.915.6719 1.2153 1.192.8823 1.528.3585 3.4826-1.1699 4.365-1.528.8823-3.4828.3588-4.3651-1.1696l-1.482-2.5628h-2.3915L8.8256 17.144l1.483 2.5626c2.0262 3.5091 6.513 4.7112 10.022 2.685 3.5089-2.0257 4.7112-6.5125 2.6853-10.0216-.7588-1.3144-1.863-2.3052-3.132-2.9237\"},\"child\":[]}]})(props);\n};\nexport function SiReact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z\"},\"child\":[]}]})(props);\n};\nexport function SiReactbootstrap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.679.6264c-.5006 0-.948.1121-1.3298.333-.367.2125-.6755.5291-.917.9411-.2262.386-.393.856-.4957 1.3964-.1978 1.0417-.155 2.3459.124 3.7707.0353.1794.074.361.1157.5414a17 17 0 0 0-.6444.209c-1.345.469-2.4699 1.0817-3.2528 1.7723-.406.3576-.72.7357-.9349 1.1235C.1158 11.1263 0 11.5493 0 11.9712c0 .846.4686 1.703 1.355 2.4806.8347.7323 2.015 1.3717 3.4123 1.8496.1298.0441.262.087.3948.128a17 17 0 0 0-.1281.609c-.2658 1.3994-.2968 2.6799-.0903 3.7032.1073.53.2776.9912.5063 1.371.2432.4038.5519.7156.9174.9264.3851.222.8384.3346 1.3472.3346.6927 0 1.4672-.2054 2.302-.6105.8184-.3971 1.6537-.9659 2.4827-1.6905a13 13 0 0 0 .3909-.3556h.1963v-.0004h5.9501q1.3018 0 2.2457-.38c.6305-.2529 1.1436-.5942 1.5475-1.0227.4038-.4286.6983-.9399.8871-1.5339.1888-.589.2831-1.227.2831-1.9087.0005-1.1884-.2152-2.1719-.6416-2.9608q-.6346-1.1668-1.867-1.5139a.032.032 0 0 1-.0202-.0321.034.034 0 0 1 .0154-.0303c.6118-.3401 1.082-.8245 1.4115-1.4425q.498-.9348.498-2.2499c0-1.4464-.366-2.5224-1.0946-3.238-.7287-.7158-1.6988-1.0715-2.9064-1.0715h-6.5124a16 16 0 0 0-.308-.2819c-.8608-.7637-1.7192-1.363-2.552-1.7796C9.1688.8432 8.3802.6264 7.679.6264m.0072 1.6994c.4338 0 .9952.1703 1.623.4925.6806.3497 1.4185.8697 2.1341 1.5051q.0666.0591.1361.1228c-.6294.696-1.2497 1.4694-1.846 2.302-1.016.0992-1.9927.2474-2.9071.441a15 15 0 0 1-.0925-.4342l-.0027-.0149c-.218-1.1138-.2711-2.1316-.1536-2.9418.1015-.6963.3287-1.194.6245-1.3653.1228-.0712.2858-.1072.4842-.1072m5.1605 3.217v12.9119l-.7657-.9454-.5002-.6175c-.2525-.3117-.657-.8886-1.1391-1.624a29 29 0 0 1-.7951-1.2816l-.0145-.025c-.231-.3984-.4027-.7193-.5406-.977a39 39 0 0 1-.5065-.9813l.03-.0583.0018-.0033a31 31 0 0 1 .5659-1.0979l.0017-.003.2074-.4024.3063-.5075.002-.0033c.1143-.1947.233-.3912.3526-.584l.2108-.3482c.2806-.4645.5061-.8033.862-1.2943.1917-.2642.3735-.4962.6616-.8562l.0006-.0007.0142-.018.0055-.007c.117-.1491.235-.2961.3509-.4369l.0038-.0047.0023-.0028a83 83 0 0 1 .6822-.8317zm2.3907.2519h3.8286c.6423 0 1.1336.1804 1.4735.5363s.5097.9744.5097 1.8516c0 .7803-.1888 1.375-.5667 1.7942-.378.419-.85.624-1.4169.624h-3.8284c-.0141 0-.0256-.0149-.0256-.0332l.0002-4.7399c0-.0182.0113-.033.0256-.033M8.498 8.6164a31.5 31.5 0 0 0-.7931 1.375 23 23 0 0 1-.4173-1.1595 23 23 0 0 1 1.2104-.2155m-2.8646.6334c.288.8924.6483 1.8157 1.0715 2.7477l.0002.0001c-.4297.9474-.795 1.8853-1.087 2.791a12 12 0 0 1-.3005-.0982c-1.1617-.397-2.1292-.9097-2.798-1.4823-.5116-.4381-.817-.9003-.817-1.2364 0-.345.3055-.7895.8384-1.2203.6203-.5016 1.503-.96 2.551-1.3252a15 15 0 0 1 .5414-.1764m9.6038 3.5427h4.1484c.718 0 1.2696.2244 1.67.692s.597 1.1257.597 1.9883c.0002.8771-.2004 1.5595-.5968 2.037-.3932.4822-.952.7218-1.67.7218h-4.1486c-.0141 0-.0256-.0148-.0256-.033v-5.373c0-.0183.0113-.033.0256-.033M7.7065 14.001a31.4 31.4 0 0 0 .818 1.411 22 22 0 0 1-1.251-.2087v-.0001c.1291-.3932.2742-.7959.433-1.2022m-.8937 2.8444c.9022.1846 1.8901.3238 2.9408.414.602.8384 1.2275 1.617 1.8615 2.317-.0783.0721-.1572.143-.2357.212-.9178.8022-1.8394 1.3821-2.6649 1.6771l-.0171.0061c-.37.1306-.7003.1969-.9812.1969-.2073 0-.3747-.036-.4975-.1067-.299-.1725-.5317-.6594-.6384-1.336-.1247-.7884-.081-1.7816.126-2.872l.0001.0001c.0323-.1692.0677-.3393.1064-.5085\"},\"child\":[]}]})(props);\n};\nexport function SiReacthookform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.7754 17.3477H5.8065a.2815.2815 0 1 0 0 .563h4.9689a.2815.2815 0 1 0 0-.563zm7.3195 0h-4.9688a.2815.2815 0 1 0 0 .563h4.9688a.2815.2815 0 0 0 0-.563zm-7.3336-6.475H5.8065a.2815.2815 0 1 0 0 .563h4.9548a.2815.2815 0 1 0 0-.563zm7.3195 0h-4.9547a.2815.2815 0 1 0 0 .563h4.9547a.2815.2815 0 0 0 0-.563zm.5518-9.2001h-4.341a2.4042 2.4042 0 0 0-4.5804 0H5.3674c-1.7103 0-3.0968 1.3864-3.0968 3.0967v16.134C2.2706 22.6135 3.6571 24 5.3674 24h13.2652c1.7103 0 3.0968-1.3865 3.0968-3.0967V4.7693c0-1.7103-1.3865-3.0967-3.0968-3.0967zm-8.7046.563a.2815.2815 0 0 0 .2815-.2224 1.8411 1.8411 0 0 1 3.5979 0 .2815.2815 0 0 0 .2815.2224h1.5146v1.844a.8446.8446 0 0 1-.8446.8446H9.2552a.8446.8446 0 0 1-.8446-.8446v-1.844Zm11.2383 18.6677c0 1.3993-1.1344 2.5337-2.5337 2.5337H5.3674c-1.3993 0-2.5337-1.1344-2.5337-2.5337V4.7693c0-1.3993 1.1344-2.5337 2.5337-2.5337h2.4802v1.844c0 .7774.6302 1.4076 1.4076 1.4076h5.4896c.7774 0 1.4076-.6302 1.4076-1.4076v-1.844h2.4802c1.3993 0 2.5337 1.1344 2.5337 2.5337z\"},\"child\":[]}]})(props);\n};\nexport function SiReactiveresume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3.393v12.949h3.662v-3.44h2c1.8-.002 4.084-.395 5.276-2.183.468-.716.703-1.56.703-2.535 0-.986-.235-1.836-.704-2.551-.468-.728-1.135-1.284-1.998-1.666-.85-.382-1.836-.574-3.02-.574H0zm3.662 2.886h2.035c.765 0 1.331.167 1.701.5.382.332.575.8.575 1.405 0 .592-.193 1.055-.575 1.388-.37.333-.936.5-1.7.5H3.661V6.28zm8.906 4.301 3.764 5.012-3.764 5.015h3.92l1.795-2.388 1.795 2.388H24L16.488 10.58h-3.92zm7.51 0-1.369 1.834 1.969 2.61L24 10.58h-3.922zM9.096 12.912s-1.496.628-3.467.604l2.115 2.826h3.92l-2.568-3.43z\"},\"child\":[]}]})(props);\n};\nexport function SiReactivex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.402 2.343c-2.224.984-3.615 2.583-4.4 3.747-.852 1.268-1.184 2.319-1.184 2.328-.002.036.005-.017 0 .019-.246.7-.473 1.798-.473 1.807-.265 1.344-.142 2.593-.142 2.612l.029.246a9.58 9.58 0 01.132-1.012c.019-.133.37-2.016 1.694-3.511.142-.218 1.675-2.233 4.495-2.233.606 0 1.24.094 1.874.283h.019c.038.01.87.313 1.173.464.284.142.786.36.795.36h.02c2.715 1.325 5.062 1.75 5.081 1.76.672.114 1.278.17 1.817.17 1.079 0 1.855-.236 2.262-.69.237-.26.307-.559.293-.814.019-.985-.785-2.044-1.467-2.754a10.868 10.868 0 00-1.542-1.344c-2.044-1.514-4.23-2.28-6.52-2.28-2.347.009-3.937.832-3.956.842zm7.419 2.659c.284 0 .511.227.511.51a.509.509 0 01-.511.512.509.509 0 01-.511-.511c0-.284.227-.511.511-.511zm-6.605-1.94c.075 0 .123.019.142.019l3.227 1.003-.123.255-1.543-.482c-.548-.17-1.12-.351-1.656-.52-.01 0-.028-.01-.047-.01-.02 0-.048 0-.067.01-.293.075-1.097.359-1.334.785a.481.481 0 00-.038.378c0 .01.17.54.596 1.088l2.14-.104 1.428-.066-.142.293-3.549.17c-.53-.643-.738-1.286-.738-1.286C6.181 3.554 8.083 3.07 8.083 3.07c.045-.001.09-.006.133-.01zm11.223 15.747c2.177-.946 3.104-2.584 3.104-2.584 2.035-2.772 1.344-5.697 1.344-5.697-1.296 2.82-2.48 3.596-2.48 3.596 3.19-4.854.02-7.788.02-7.788C22.723 9.1 21 12.468 21 12.468c-1.448 3.048-3.502 4.136-3.502 4.136 2.29.426 3.975-1.117 3.975-1.117-3.284 3.549-6.842 3.379-6.842 3.379 1.495 1.675 3.738 1.533 3.738 1.533-2.934.69-5.688-.284-7.95-2.167-.425-.35-.832-.73-1.21-1.136-.144-.15-.28-.31-.417-.464-.047 1.751 1.779 3.379 1.779 3.379-2.29-.947-3.34-3-3.34-3s-1.543-2.631-.426-5.631c1.107-2.962 4.419-3.626 4.504-3.645-.251-.117-.644-.292-.814-.367-.293-.142-1.145-.455-1.145-.455a6.397 6.397 0 00-1.798-.274c-2.792 0-4.277 2.11-4.277 2.11-1.316 1.477-1.628 3.388-1.628 3.388-.37 1.827.028 3.748.028 3.748s.038.151.048.217c.303.72.69 1.43 1.145 2.101 2.46 3.672 6.454 4.94 6.454 4.94 5.914 2.006 9.955-.946 9.955-.946 3.72-2.555 4.467-5.508 4.467-5.508-3.01 2.338-4.306 2.12-4.306 2.12zM1.307 14.948a12.545 12.545 0 01-.36-1.78c-.01-.098-.025-.207-.037-.302 0 0-.133-1.287.151-2.697 0 0 .01-.038.02-.095.036-.203.093-.407.132-.577.085-.37.208-.814.33-1.174 0 0 1.307-4.287 5.726-6.245 0 0 1.524-.805 3.823-.862-.162-.16-.349-.329-.51-.435-1.08-.72-2.688-.956-3.663.057-.293.303-.54.634-.814.937-.312.34-.69.624-1.126.785-.378.142-.757.114-1.145.18-.397.066-.804.208-1.126.464-.35.284-.492.662-.53 1.097-.038.341-.028.691-.047 1.032-.048 1.003-.37 1.287-1.089 1.845-.303.227-.558.53-.747.852-.568 1.003.34 2.044.388 3.057.01.208-.01.416-.085.615-.076.217-.228.36-.35.54-.171.236-.285.52-.237.813.047.293.199.568.34.823.275.455.616.862.975 1.25.012.016.038.04.054.052l-.073-.232z\"},\"child\":[]}]})(props);\n};\nexport function SiReactos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.21 24c-1.148-.007-2.477-.334-3.89-.915-2.823-1.163-6.04-3.372-9.036-6.367C4.289 13.723 2.075 10.505.913 7.68-.25 4.857-.383 2.36.988.989 2.358-.38 4.855-.248 7.679.915c.306.125.617.265.932.415-.331.113-.658.24-.974.383l-.141-.058C4.832.558 2.698.519 1.607 1.609.517 2.7.557 4.83 1.653 7.494c1.097 2.663 3.235 5.793 6.147 8.704 2.91 2.911 6.044 5.05 8.708 6.147 2.664 1.097 4.79 1.136 5.88.045 1.091-1.09 1.056-3.22-.041-5.884-.108-.263-.23-.531-.358-.803.134-.317.25-.642.354-.973.282.54.53 1.07.744 1.589 1.163 2.823 1.292 5.32-.079 6.691-.685.685-1.651.997-2.799.99zM3.79 24c-1.148.008-2.117-.305-2.802-.99-1.37-1.37-1.238-3.868-.075-6.691.235-.572.517-1.16.836-1.76.098.333.212.66.34.978a17.67 17.67 0 00-.436.969C.556 19.169.521 21.3 1.611 22.39c1.091 1.091 3.221 1.051 5.885-.045.922-.38 3.021-1.69 4.026-2.308.216.162.433.32.649.474-1.157.733-3.415 2.13-4.492 2.574-1.412.581-2.74.907-3.888.915zm9.753-4.458c-.214-.14-.429-.282-.645-.433a34.547 34.547 0 003.302-2.911c2.912-2.911 5.05-6.04 6.147-8.704 1.097-2.664 1.132-4.794.042-5.885-1.091-1.09-3.217-1.055-5.88.042l-.072.029a10.726 10.726 0 00-.99-.379c.295-.14.587-.272.874-.39 2.824-1.163 5.321-1.292 6.691.078s1.238 3.864.075 6.688c-1.162 2.823-3.376 6.046-6.37 9.04a35.747 35.747 0 01-3.174 2.825zm1.95 1.156c-.325-.17-1.798-1.073-2.135-1.273 1.002-.806 2.423-1.97 3.396-2.944 1.718-1.718 3.981-4.787 5.162-6.555-.008.111-.093 2.49-.105 2.6a9.802 9.802 0 01-6.318 8.172zm-6.928-.034c-3.407-1.308-6.043-4.71-6.287-8.198-.01-.151-.06-.399-.054-.984.007-.602.056-1.423.159-1.283 1.036 1.42 3.976 5.455 5.352 6.83.973.973 1.927 1.624 2.929 2.43a112.45 112.45 0 01-2.1 1.205zm3.43-2.208a33.27 33.27 0 01-3.443-3.01c-2.54-2.54-4.462-5.254-5.568-7.582 1.45-3.597 4.973-6.138 9.087-6.138 4.051 0 7.53 2.465 9.02 5.976-1.093 2.363-3.045 5.145-5.643 7.743a33.161 33.161 0 01-3.452 3.011z\"},\"child\":[]}]})(props);\n};\nexport function SiReactquery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.9297 13.6875c.164-.0938.375-.0352.4687.1328l.0625.1055c.4805.8515.9805 1.6601 1.5 2.4258.6133.9023 1.3047 1.8164 2.0743 2.7421a.3455.3455 0 0 1-.0391.4844l-.0742.0664c-2.543 2.2227-4.1914 2.664-4.9532 1.332-.746-1.3046-.4765-3.6718.8086-7.1093a.3437.3437 0 0 1 .1524-.1797ZM17.75 16.3008c.1836-.0313.3594.086.3945.2695l.0196.1016c.6289 3.2851.1875 4.9297-1.3243 4.9297-1.4804 0-3.3593-1.4024-5.6484-4.2032a.3271.3271 0 0 1-.0742-.2226c0-.1875.1562-.3399.3437-.3399h.1211a32.9838 32.9838 0 0 0 2.8086-.0976c1.0703-.086 2.1914-.2305 3.3594-.4375zm.871-6.9766a.3528.3528 0 0 1 .4454-.211l.1016.0352c3.2617 1.1094 4.5039 2.332 3.7187 3.6641-.7656 1.3047-2.9922 2.254-6.6836 2.8477-.082.0117-.168-.004-.2383-.047-.168-.0976-.2265-.3085-.125-.4765l.0625-.1054c.504-.8438.957-1.6836 1.3672-2.5235.4766-.9883.9297-2.0508 1.3516-3.1836zM7.797 8.3398c.082-.0117.168.004.2383.047.168.0976.2265.3085.125.4765l-.0625.1054a34.0882 34.0882 0 0 0-1.3672 2.5235c-.4766.9883-.9297 2.0508-1.3516 3.1836a.3528.3528 0 0 1-.4453.211l-.1016-.0352c-3.2617-1.1094-4.5039-2.332-3.7187-3.6641.7656-1.3047 2.9922-2.254 6.6836-2.8477Zm5.2812-3.9843c2.543-2.2227 4.1914-2.664 4.9532-1.332.746 1.3046.4765 3.6718-.8086 7.1093a.3436.3436 0 0 1-.1524.1797c-.164.0938-.375.0352-.4687-.1328l-.0625-.1055c-.4805-.8515-.9805-1.6601-1.5-2.4258-.6133-.9023-1.3047-1.8164-2.0743-2.7421a.3455.3455 0 0 1 .0391-.4844Zm-5.793-2.082c1.4805 0 3.3633 1.4023 5.6485 4.203a.3488.3488 0 0 1 .0781.2188c-.0039.1914-.1562.3438-.3476.3438l-.1172-.004a34.5835 34.5835 0 0 0-2.8086.1016c-1.0742.086-2.1953.2305-3.3633.4375a.343.343 0 0 1-.3945-.2734l-.0196-.0977c-.629-3.2851-.1876-4.9297 1.3242-4.9297Zm2.8711 5.8124h3.6875a.638.638 0 0 1 .5508.3164l1.8477 3.2188a.6437.6437 0 0 1 0 .6289l-1.8477 3.2227a.638.638 0 0 1-.5507.3164h-3.6875c-.2266 0-.4375-.1211-.547-.3164L7.7579 12.25a.6437.6437 0 0 1 0-.629l1.8516-3.2187c.1093-.1953.3203-.3164.5468-.3164Zm3.2305.793a.638.638 0 0 1 .5508.3164l1.3906 2.4258a.6437.6437 0 0 1 0 .6289l-1.3906 2.4297a.638.638 0 0 1-.5508.3164h-2.7734c-.2266 0-.4375-.1211-.5469-.3164L8.672 12.25a.6437.6437 0 0 1 0-.629l1.3945-2.4257c.1094-.1953.3203-.3164.5469-.3164Zm-.4922.8672h-1.789c-.2266 0-.4336.1172-.547.3164l-.8983 1.5586a.6437.6437 0 0 0 0 .6289l.8984 1.5625a.6317.6317 0 0 0 .5469.3164h1.789a.6317.6317 0 0 0 .547-.3164l.8983-1.5625a.6437.6437 0 0 0 0-.629l-.8984-1.5585c-.1133-.1992-.3203-.3164-.5469-.3164Zm-.4765.8281c.2265 0 .4375.1211.5468.3164l.422.7305c.1132.1953.1132.4375 0 .6289l-.422.7344c-.1093.1953-.3203.3164-.5468.3164h-.836a.6317.6317 0 0 1-.5468-.3164l-.422-.7344c-.1132-.1914-.1132-.4336 0-.629l.422-.7304a.6317.6317 0 0 1 .5468-.3164zm-.418.8164a.548.548 0 0 0-.4727.2735c-.0976.168-.0976.375 0 .5468a.5444.5444 0 0 0 .4727.2696.5444.5444 0 0 0 .4727-.2696c.0976-.1718.0976-.3789 0-.5468A.548.548 0 0 0 12 11.3906Zm-4.4219.5469h.9805M18.9805 7.75c.3906-1.8945.4765-3.3438.2226-4.3984-.1484-.629-.4218-1.1368-.8398-1.5078-.4414-.3907-1-.582-1.625-.582-1.0352 0-2.1211.4726-3.2813 1.3671-.4726.3633-.9648.8047-1.4726 1.3164-.043-.0508-.086-.1015-.1367-.1445-1.4454-1.2852-2.6602-2.082-3.6993-2.3906-.6171-.1836-1.1953-.1993-1.7226-.0235-.5586.1875-1.004.5742-1.3164 1.1172-.5156.8945-.6524 2.0742-.461 3.5274.0782.5898.2149 1.2343.4024 1.9335a1.1187 1.1187 0 0 0-.2149.047C3.008 8.621 1.711 9.2694.9258 10.0155c-.4649.4414-.7695.9375-.8828 1.4805-.1133.5781 0 1.1562.3125 1.6992.5156.8945 1.4648 1.5977 2.8164 2.1563.543.2226 1.1562.4257 1.8437.6093a1.0227 1.0227 0 0 0-.0703.2266c-.3906 1.8906-.4765 3.3438-.2226 4.3945.1484.629.4257 1.1407.8398 1.5078.4414.3907 1 .582 1.625.582 1.0352 0 2.121-.4726 3.2813-1.3632.4765-.3711.9726-.8164 1.4882-1.336a1.2 1.2 0 0 0 .1953.2266c1.4454 1.2852 2.6602 2.082 3.6993 2.3906.6172.1836 1.1953.1993 1.7226.0235.5586-.1875 1.004-.5742 1.3164-1.1172.5157-.8945.6524-2.0742.461-3.5273-.082-.6133-.2227-1.2813-.4258-2.0118a1.2248 1.2248 0 0 0 .2383-.0468c1.828-.6094 3.125-1.2578 3.9101-2.004.4649-.4413.7696-.9374.8828-1.4804.1133-.5781 0-1.1563-.3125-1.6992-.5156-.8946-1.4648-1.5977-2.8164-2.1563-.5586-.2304-1.1953-.4414-1.9062-.625a.8647.8647 0 0 0 .0586-.1953z\"},\"child\":[]}]})(props);\n};\nexport function SiReactrouter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.118 5.466a2.306 2.306 0 00-.623.08c-.278.067-.702.332-.953.583-.41.423-.49.609-.662 1.469-.08.423.41 1.43.847 1.734.45.317 1.085.502 2.065.608 1.429.16 1.84.636 1.84 2.197 0 1.377-.385 1.747-1.96 1.906-1.707.172-2.58.834-2.765 2.117-.106.781.41 1.76 1.125 2.091 1.627.768 3.15-.198 3.467-2.196.211-1.284.622-1.642 1.998-1.747 1.588-.133 2.409-.675 2.713-1.787.278-1.02-.304-2.157-1.297-2.554-.264-.106-.873-.238-1.35-.291-1.495-.16-1.879-.424-2.038-1.39-.225-1.337-.317-1.562-.794-2.09a2.174 2.174 0 00-1.613-.73zm-4.785 4.36a2.145 2.145 0 00-.497.048c-1.469.318-2.17 2.051-1.35 3.295 1.178 1.774 3.944.953 3.97-1.177.012-1.193-.98-2.143-2.123-2.166zM2.089 14.19a2.22 2.22 0 00-.427.052c-2.158.476-2.237 3.626-.106 4.182.53.145.582.145 1.111.013 1.191-.318 1.866-1.456 1.549-2.607-.278-1.02-1.144-1.664-2.127-1.64zm19.824.008c-.233.002-.477.058-.784.162-1.39.477-1.866 2.092-.98 3.336.557.794 1.96 1.058 2.82.516 1.416-.874 1.363-3.057-.093-3.746-.38-.186-.663-.271-.963-.268z\"},\"child\":[]}]})(props);\n};\nexport function SiReacttable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.738 1.263c.626 0 1.183.192 1.624.581.417.369.692.88.842 1.507.253 1.054.169 2.505-.222 4.398a1.105 1.105 0 01-.06.195c.712.187 1.347.395 1.906.626 1.352.559 2.301 1.264 2.817 2.158.313.542.427 1.12.31 1.696-.11.546-.415 1.04-.882 1.482-.784.745-2.08 1.396-3.91 2.002a1.1 1.1 0 01-.236.05c.201.729.343 1.4.424 2.013.193 1.452.056 2.629-.46 3.524-.314.543-.758.93-1.316 1.118-.528.177-1.107.16-1.725-.023-1.039-.308-2.253-1.106-3.696-2.39a1.1 1.1 0 01-.195-.228c-.516.521-1.013.966-1.491 1.335-1.16.894-2.247 1.364-3.28 1.364-.626 0-1.183-.19-1.624-.58-.417-.37-.692-.88-.842-1.507-.253-1.054-.169-2.506.222-4.398.016-.079.04-.154.072-.224-.687-.183-1.301-.386-1.844-.61C1.82 14.793.871 14.088.355 13.194c-.313-.542-.427-1.12-.31-1.697.11-.545.415-1.039.882-1.482.784-.744 2.08-1.396 3.91-2.002.071-.023.143-.039.215-.048a14.937 14.937 0 01-.403-1.936c-.193-1.452-.056-2.629.46-3.524.314-.543.758-.93 1.316-1.118.528-.177 1.107-.16 1.725.023 1.039.308 2.253 1.106 3.696 2.39.05.045.097.094.137.147.51-.515 1.002-.954 1.475-1.32 1.16-.893 2.247-1.364 3.28-1.364zM7.359 13.761a.342.342 0 00-.582.106c-1.284 3.436-1.554 5.806-.809 7.11.762 1.332 2.413.889 4.953-1.33l.077-.068.053-.059a.351.351 0 00-.016-.427 36.239 36.239 0 01-2.074-2.743 34.032 34.032 0 01-1.502-2.425l-.06-.106zm10.46 2.534l-.067.005c-1.169.206-2.29.352-3.363.437-.91.072-1.845.105-2.808.1h-.12l-.07.006a.343.343 0 00-.198.554C13.48 20.2 15.361 21.6 16.84 21.6c1.512 0 1.954-1.643 1.326-4.928l-.02-.1-.02-.066a.342.342 0 00-.374-.206zm-6.231-1.137H9.385l.252.44a.632.632 0 00.548.318h1.403v-.758zm3.087 0h-2.203v.758h1.403a.632.632 0 00.548-.317l.252-.441zM19 9.098a.355.355 0 00-.379.226 35.885 35.885 0 01-1.352 3.184 33.75 33.75 0 01-1.366 2.525l-.063.106-.03.064a.345.345 0 00.155.412.36.36 0 00.237.044c3.692-.595 5.92-1.543 6.687-2.846.784-1.332-.456-2.554-3.72-3.666l-.1-.033zm-11.118-.76l-.082.003c-3.692.595-5.92 1.543-6.687 2.846-.784 1.332.456 2.554 3.72 3.666l.1.033.069.016c.161.021.321-.07.379-.226a35.885 35.885 0 011.352-3.184 33.75 33.75 0 011.366-2.525l.063-.106.03-.064a.345.345 0 00-.155-.412.36.36 0 00-.237-.044zm3.707 5.051H8.37l.507.885h2.71v-.885zm4.102 0h-3.218v.885h2.71l.508-.885zm-4.102-1.768H7.862l-.073.128a.632.632 0 000 .628l.073.128h3.726v-.884zm4.61 0h-3.726v.884h3.726l.073-.128a.632.632 0 000-.628l-.073-.128zm-4.61-1.768h-2.71l-.508.884h3.218v-.884zm3.595 0h-2.711v.884h3.218l-.507-.884zm2.849-6.83c-.762-1.332-2.413-.889-4.953 1.33l-.077.068-.053.059a.351.351 0 00.016.427c.768.926 1.46 1.84 2.074 2.743.52.765 1.021 1.573 1.502 2.425l.06.106.04.058a.342.342 0 00.582-.106c1.284-3.436 1.554-5.806.809-7.11zm-6.444 5.188h-1.403a.632.632 0 00-.548.317l-.253.44h2.204v-.757zm2.287 0h-1.403v.757h2.204l-.253-.44a.632.632 0 00-.548-.317zM7.286 2.274c-1.511 0-1.953 1.642-1.326 4.928l.02.1.02.065c.06.146.214.235.375.207a35.507 35.507 0 013.363-.437 33.252 33.252 0 012.807-.1h.12l.07-.006a.343.343 0 00.198-.554c-2.286-2.802-4.168-4.203-5.647-4.203z\"},\"child\":[]}]})(props);\n};\nexport function SiReaddotcv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.8315 3.36707L8.66861 0.10804C6.98928 -0.34192 5.26312 0.65467 4.81314 2.334L0.94304 16.7773C0.49306 18.4568 1.48966 20.1829 3.16899 20.6328L15.3319 23.892C17.0112 24.3419 18.7373 23.3453 19.1874 21.666L23.0574 7.22254C23.5073 5.54321 22.5108 3.81705 20.8315 3.36707ZM6.33349 2.74138C6.55849 1.90171 7.42156 1.40341 8.26123 1.62841L20.4241 4.88744C21.2637 5.11242 21.762 5.9755 21.537 6.81516L17.6669 21.2586C17.4421 22.0983 16.5789 22.5966 15.7393 22.3715L3.57639 19.1125C2.73671 18.8875 2.23842 18.0245 2.4634 17.1849L6.33349 2.74138ZM8.9669 5.07654C8.54705 4.96404 8.11552 5.2132 8.00302 5.63302C7.89054 6.05285 8.13968 6.4844 8.55952 6.59689L17.6817 9.04116C18.1015 9.15366 18.5331 8.90451 18.6455 8.48468C18.7581 8.06483 18.5089 7.6333 18.0891 7.52081L8.9669 5.07654ZM6.98458 9.43392C7.09708 9.01409 7.52862 8.76493 7.94844 8.87743L17.0706 11.3217C17.4904 11.4342 17.7395 11.8657 17.6271 12.2856C17.5146 12.7054 17.0831 12.9546 16.6632 12.8421L7.54107 10.3978C7.12124 10.2853 6.87208 9.85375 6.98458 9.43392ZM6.93 12.6783C6.51017 12.5658 6.07862 12.815 5.96614 13.2348C5.85364 13.6546 6.1028 14.0861 6.52263 14.1987L11.8439 15.6246C12.2637 15.737 12.6952 15.4879 12.8077 15.0679C12.9202 14.6481 12.6711 14.2167 12.2513 14.1041L6.93 12.6783Z\"},\"child\":[]}]})(props);\n};\nexport function SiReadme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.0113 3.269h-5.8219a4.2894 4.2894 0 0 0-4.1854 3.3452A4.2894 4.2894 0 0 0 7.8186 3.269h-5.818A2.0007 2.0007 0 0 0 0 5.2697v10.2434a2.0007 2.0007 0 0 0 2.0007 2.0007h3.7372c4.2574 0 5.5299 1.0244 6.138 3.133a.112.112 0 0 0 .1121.084h.024a.112.112 0 0 0 .112-.084c.6122-2.1086 1.8847-3.133 6.138-3.133h3.7373A2.0007 2.0007 0 0 0 24 15.5131V5.2697a2.0007 2.0007 0 0 0-1.9887-2.0006Zm-11.928 11.0557a.144.144 0 0 1-.144.144H3.2571a.144.144 0 0 1-.144-.144v-.9523a.144.144 0 0 1 .144-.144h6.6822a.144.144 0 0 1 .144.144zm0-2.5368a.144.144 0 0 1-.144.144H3.2571a.144.144 0 0 1-.144-.144v-.9523a.144.144 0 0 1 .144-.144h6.6822a.144.144 0 0 1 .144.144zm0-2.5368a.144.144 0 0 1-.144.144H3.2571a.144.144 0 0 1-.144-.144v-.9524a.144.144 0 0 1 .144-.144h6.6822a.144.144 0 0 1 .144.144zm10.8037 5.0696a.144.144 0 0 1-.144.144h-6.6823a.144.144 0 0 1-.144-.144v-.9523a.144.144 0 0 1 .144-.144h6.6822a.144.144 0 0 1 .144.144zm0-2.5368a.144.144 0 0 1-.144.144h-6.6823a.144.144 0 0 1-.144-.144v-.9523a.144.144 0 0 1 .144-.144h6.6822a.144.144 0 0 1 .144.144zm0-2.5368a.144.144 0 0 1-.144.144h-6.6823a.144.144 0 0 1-.144-.144v-.9484a.144.144 0 0 1 .144-.144h6.6822a.144.144 0 0 1 .144.144v.9524z\"},\"child\":[]}]})(props);\n};\nexport function SiReadthedocs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.732 0a59.316 59.316 0 0 0-4.977.218V24a62.933 62.933 0 0 1 3.619-.687c.17-.028.34-.053.509-.078.215-.033.43-.066.644-.096l.205-.03zm1.18.003V22.96a61.042 61.042 0 0 1 12.333-.213V1.485A60.859 60.859 0 0 0 8.912.003zm1.707 1.81a.59.59 0 0 1 .015 0c3.06.088 6.125.404 9.167.95a.59.59 0 0 1 .476.686.59.59 0 0 1-.569.484.59.59 0 0 1-.116-.009 60.622 60.622 0 0 0-8.992-.931.59.59 0 0 1-.573-.607.59.59 0 0 1 .592-.572zm-4.212.028a.59.59 0 0 1 .578.565.59.59 0 0 1-.564.614 59.74 59.74 0 0 0-2.355.144.59.59 0 0 1-.04.002.59.59 0 0 1-.595-.542.59.59 0 0 1 .54-.635c.8-.065 1.6-.114 2.401-.148a.59.59 0 0 1 .035 0zm4.202 2.834a.59.59 0 0 1 .015 0 61.6 61.6 0 0 1 9.167.8.59.59 0 0 1 .488.677.59.59 0 0 1-.602.494.59.59 0 0 1-.076-.006 60.376 60.376 0 0 0-8.99-.786.59.59 0 0 1-.584-.596.59.59 0 0 1 .582-.583zm-4.211.097a.59.59 0 0 1 .587.555.59.59 0 0 1-.554.622c-.786.046-1.572.107-2.356.184a.59.59 0 0 1-.04.003.59.59 0 0 1-.603-.533.59.59 0 0 1 .53-.644c.8-.078 1.599-.14 2.4-.187a.59.59 0 0 1 .036 0zM10.6 7.535a.59.59 0 0 1 .015 0c3.06-.013 6.125.204 9.167.65a.59.59 0 0 1 .498.67.59.59 0 0 1-.593.504.59.59 0 0 1-.076-.006 60.142 60.142 0 0 0-8.992-.638.59.59 0 0 1-.592-.588.59.59 0 0 1 .573-.592zm1.153 2.846a61.093 61.093 0 0 1 8.02.515.59.59 0 0 1 .509.66.59.59 0 0 1-.586.514.59.59 0 0 1-.076-.005 59.982 59.982 0 0 0-8.99-.492.59.59 0 0 1-.603-.577.59.59 0 0 1 .578-.603c.382-.008.765-.012 1.148-.012zm1.139 2.832a60.92 60.92 0 0 1 6.871.394.59.59 0 0 1 .52.652.59.59 0 0 1-.577.523.59.59 0 0 1-.076-.004 59.936 59.936 0 0 0-8.991-.344.59.59 0 0 1-.61-.568.59.59 0 0 1 .567-.611c.765-.028 1.53-.042 2.296-.042z\"},\"child\":[]}]})(props);\n};\nexport function SiRealm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .029a12.122 12.122 0 00-8.484 3.504v.003C1.291 5.76 0 8.855 0 11.998c0 3.142 1.285 6.244 3.516 8.465l.001.002a12.168 12.168 0 008.479 3.505H12c3.148 0 6.255-1.283 8.482-3.508l.002-.002A12.08 12.08 0 0024 12.005V12c0-3.14-1.287-6.242-3.518-8.464A12.116 12.116 0 0012 .03zm0 1.336c.48 0 .96.046 1.435.113-2.03.566-3.765 1.622-5.554 1.949a7.352 7.352 0 01-2.225.044C7.482 2.135 9.74 1.364 12 1.364zm4.135 1.072c.173 0 .348.01.521.023a10.59 10.59 0 012.883 2.022c.092.09.173.194.262.289a10.278 10.278 0 01-4.442 1.178c-2.43.06-4.958-.794-7.69-.823a12.662 12.662 0 00-4.362.744c.32-.457.672-.893 1.062-1.293 1.223.322 2.5.39 3.748.164h.002c2.264-.412 4.133-1.625 6.049-2.08a8.342 8.342 0 011.967-.225zM20.67 5.84a10.87 10.87 0 011.433 2.824 11.21 11.21 0 00-1.35-.644h-.001a11.305 11.305 0 00-6.62-.493h-.003c-1.489.345-2.841.968-4.154 1.524-.468.198-.933.383-1.399.553a10.83 10.83 0 00-1.445-.257h-.002a9.578 9.578 0 00-4.194.55 8.125 8.125 0 01-1.244-.536 10.9 10.9 0 01.53-1.557c1.671-.877 3.552-1.364 5.433-1.344 2.445.026 4.992.89 7.738.822h.004A11.626 11.626 0 0020.67 5.84zm-4.031 2.742c1.233 0 2.463.228 3.625.681a9.895 9.895 0 012.283 1.282c.036.252.064.504.082.758a10.71 10.71 0 00-2.244-.329 10.28 10.28 0 00-3.201.38c-.697.199-1.353.464-1.989.76-1.087-.371-2.166-.86-3.277-1.336a35.107 35.107 0 00-1.324-.538c1.3-.552 2.554-1.113 3.834-1.41a9.968 9.968 0 012.21-.248zM5.873 10.644c.374-.015.75-.004 1.125.032 1.475.148 2.935.704 4.393 1.33.717.309 1.453.625 2.203.928-1.1.604-2.156 1.225-3.237 1.7-1.05-.393-2.131-.757-3.302-.917-1.835-.25-3.717.06-5.387.828a10.467 10.467 0 01-.32-2.3c.403-.3.828-.57 1.28-.79a8.264 8.264 0 013.245-.81zm14.463 1.667c.775.029 1.547.16 2.29.379a10.709 10.709 0 01-.304 1.893c-.67.439-1.383.808-2.139 1.08-1.828.658-3.85.79-5.75.374-.78-.17-1.557-.45-2.341-.75 1.889-.973 3.598-2.12 5.457-2.646h.002a8.954 8.954 0 012.785-.33zM5.504 14.976a8.13 8.13 0 011.369.065c2.354.323 4.617 1.719 7.275 2.302.357.078.717.134 1.078.178-.35.1-.698.21-1.043.332v.002h-.001c-1.283.462-2.455 1.042-3.637 1.388-2.151.625-4.443.54-6.543-.23a10.723 10.723 0 01-1.926-3.18 8.615 8.615 0 013.428-.858zm16.144 1.5c-.067.145-.133.29-.207.433-.221-.017-.442-.04-.664-.048.298-.112.584-.251.871-.385zm-1.7 1.703a16.2 16.2 0 01.696.016c-.333.464-.696.911-1.105 1.323h-.002v.002c-1.966 1.963-4.754 3.113-7.535 3.113a10.814 10.814 0 01-5.793-1.725c1.57.19 3.173.065 4.71-.382h.003c1.332-.39 2.526-.987 3.71-1.414a16.091 16.091 0 015.315-.934z\"},\"child\":[]}]})(props);\n};\nexport function SiReason (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm11.52 21.89l-1.33-2.54H8.4v2.54H6v-9.2h4.13c2.44 0 3.83 1.19 3.83 3.24 0 1.39-.58 2.4-1.64 2.96l1.92 3h-2.72zm11.36 0H15.5v-9.2h7.24v1.92H17.9v1.72h4.38v1.9l-4.38.01v1.73h4.99v1.92zM11.68 16c0 .93-.56 1.43-1.53 1.43H8.4v-2.82h1.75c.97 0 1.53.49 1.53 1.4z\"},\"child\":[]}]})(props);\n};\nexport function SiReasonstudios (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.49 5.114l8.3-4.79a2.421 2.421 0 012.39-.017l.03.017 8.299 4.79c.74.427 1.2 1.212 1.211 2.065V16.79c0 .854-.451 1.645-1.184 2.08l-.027.016-8.299 4.79a2.42 2.42 0 01-2.39.017l-.03-.017-8.3-4.79a2.421 2.421 0 01-1.21-2.065V7.21c0-.855.45-1.645 1.184-2.08l.026-.016 8.3-4.79zM12 4.026L5.092 8.013v7.974L12 19.974V12l6.908-3.987z\"},\"child\":[]}]})(props);\n};\nexport function SiRecoil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.09 8.862a3.017 3.018 0 00-2.615-2.43l-.245-.03a1.662 1.662 0 01-1.453-1.645v-.856a2.028 2.028 0 10-1.602-.02v.874a3.263 3.264 0 002.855 3.236l.245.032c.764.096 1.144.66 1.246 1.155.1.495-.03 1.163-.698 1.55a2.569 2.569 0 01-1.055.337l-3.68.346a4.212 4.212 0 00-1.71.546 3.02 3.02 0 00-1.468 3.257 3.017 3.018 0 002.615 2.43l.245.032a1.662 1.662 0 011.453 1.644v.777a2.03 2.03 0 101.602.016v-.793a3.263 3.264 0 00-2.856-3.236l-.244-.032c-.764-.096-1.145-.66-1.246-1.155-.1-.495.03-1.163.697-1.55a2.569 2.569 0 011.057-.337l3.68-.345a4.212 4.212 0 001.71-.546 3.023 3.024 0 001.467-3.258zm-2.653 4.708a5.71 5.71 0 01-.436.06l-1.543.147 1.93 2.119a3.47 3.47 0 01.906 2.34H16.9a5.07 5.07 0 00-1.325-3.42zm-5.003-3.11a4.65 4.65 0 01.546-.08l1.427-.136L9.469 8.12a3.47 3.47 0 01-.905-2.34H6.963c0 1.267.47 2.483 1.324 3.42z\"},\"child\":[]}]})(props);\n};\nexport function SiRed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.679V0L8.655 4.945Zm0 1.976v6.69l7.673-4L16.327 6.4zm0-1.976 3.345-1.734L12 0Zm8.655 6.133L12 17.322V24l12-6.242ZM12 24v-6.679l-8.655-4.509L0 17.758ZM4.327 11.345l7.673 4v-6.69L7.673 6.4Z\"},\"child\":[]}]})(props);\n};\nexport function SiRedash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C6.775 0 2.546 4.238 2.546 9.455c0 4.971 3.842 9.05 8.727 9.423V24c3.405-3.49 5.837-6.072 7.307-7.756a9.5 9.5 0 0 0 1.532-1.93l.005-.006q.003-.007.007-.014a9.4 9.4 0 0 0 1.33-4.84C21.455 4.238 17.226 0 12 0m3.821 5.818h1.385c.337.001.611.25.612.558v6.157c-.001.308-.275.557-.612.558H15.82c-.337-.001-.611-.25-.612-.558V6.376c0-.307.275-.557.612-.558M9.297 7.921h1.386c.338 0 .611.25.613.558v4.054c-.002.308-.275.557-.613.558H9.297c-.337-.001-.61-.25-.61-.558V8.479c0-.308.273-.558.61-.558m3.222 1.534h1.396c.337 0 .61.25.61.558v2.52c0 .308-.273.557-.61.558h-1.396c-.338-.001-.612-.25-.613-.558v-2.52c.001-.308.275-.558.613-.558M6.067 10.71h1.396c.337.001.61.25.61.559v1.264c0 .308-.273.557-.61.558H6.067c-.338-.001-.611-.25-.612-.558v-1.264c0-.308.274-.558.612-.559\"},\"child\":[]}]})(props);\n};\nexport function SiRedbubble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.633 16.324h-3.199a.321.321 0 0 1-.32-.322V7.974a.32.32 0 0 1 .32-.32H16.4c2.226 0 2.693 1.31 2.693 2.408 0 .636-.169 1.14-.504 1.511.816.337 1.256 1.096 1.256 2.194 0 1.601-1.201 2.557-3.212 2.557m-4.644 0H5.345a.32.32 0 0 1-.32-.322V7.974a.32.32 0 0 1 .32-.32h3.103c1.939 0 3.096 1.043 3.096 2.791 0 1.163-.585 2.077-1.527 2.448l2.21 2.897a.322.322 0 0 1-.24.533M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12c6.628 0 12-5.373 12-12S18.63 0 12.001 0\"},\"child\":[]}]})(props);\n};\nexport function SiRedbull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.381 11.374c-.389 1.244-1.019 2.33-2.142 3.082l-.33.251-.264.236-.091.107-.025.041-.011.028-.004.016v.013l.001.009.002.007.002.006.005.007.002.002.01.008.012.007.011.004a.16.16 0 0 0 .046.006h.024c.178-.007.512-.141.629-.245l-.139.137-.164.149-.173.146-.18.141-.185.136-.197.134-.204.13-.206.123-.213.118-.223.115-.226.108-.225.1-.236.097-.045.018c-1.97.763-4.327.854-5.914-.44.353.344.787.728 1.199.98-.251-.043-.429-.237-.666-.311.004.008.575.751 2.282.946l.316.032.48.031.464.014.448-.009.44-.039.464-.084.401-.107.599-.181.294-.081.128-.033c.104-.026.214-.052.333-.077l.041-.009c.073.031-.524.339-1.344.57-.361.132-.739.2-1.119.227l-.269.012-.216.001-.218-.005-.264-.015-.315-.027-.31-.034-.056-.007c-.401-.049-.781-.107-1.122-.143h-.006.006c.03.015.209.096 1.067.402-.061.022-.346.061-1.536-.448 2.417 1.392 4.988.759 7.266-.585l.352-.215.053-.034.294-.191.151-.103c.178-.121.353-.246.526-.374 0 .009-.004.021-.004.031a.963.963 0 0 0 .075.01c-.014.041-.014.041-.214.279.435-.351.659-.896 1.12-1.225-.236.473-.538.813-1.1 1.361.033-.024.064-.051.095-.078l.028-.026-.028.026a7.88 7.88 0 0 1-3.682 1.965c.126-.014.251-.039.373-.073-.22.061-.227.068-.32.099.058-.007.058-.007.358-.068-.175.086-.377.127-.865.226 2.806-.444 5.721-2.571 5.956-5.449a.142.142 0 0 1-.152-.143c.009-.562-.147-.982-.42-1.302-.163.58-.413 1.136-1.027 2.072-.26.393-.72.41-1.005.771l-.021-.013-.032-.028-.005-.003-.004-.002-.001-.001h-.003l-.007.001h-.003l-.001.001a.193.193 0 0 0-.058.051l.062-.07.067-.092.016-.031.005-.014.002-.01v-.01l-.001-.009-.001-.003-.002-.004-.001-.003-.003-.003a.027.027 0 0 0-.005-.006l-.009-.006-.04-.019-.006-.004-.004-.004-.002-.003-.002-.002-.002-.006v-.006l.001-.007.004-.011.023-.034.014-.016c.622-.687 1.192-1.306 1.438-2.228l.006-.021-.027.032c-.087.103-.147.147-.24.265l.11-.39.035-.127.065-.26.052-.225a.859.859 0 0 0-.118-.055Zm-2.257 6.199a9.006 9.006 0 0 1-1.105.547c-.38.155-.768.279-1.152.354a10.026 10.026 0 0 0 2.257-.901Zm-6.505.203.051.02-.001-.012-.05-.008Zm3.644-2.807c-.372-.201-.515-.63-.744-.945-.6-.62-.701-1.681-.858-2.549-.158-.843-.878-1.467-1.378-2.119-.443-.361-1.599-1.457-2.145-1.632-.72-.299-1.348.267-1.947.544-.487.201-1.002.258-1.432.63-.674.865-1.079.173-1.861.858-1.165 1.22-1.606.146-3.207 1.575-.429.257-.831.515-1.348.487-.823-.039-1.103-1.145-.459-1.633.449-.502 1.552-1.019 1.004-1.831-.57-.508-1.24-.292-1.918-.858-.313.49.087 1.155.601 1.318.211.131.701-.078.802.227-.217.434-.81.669-1.088 1.089-.693.8-.009 2.112.973 2.173.363.117.825-.179 1.06-.057.028.286 0 .544.057.802.027.282.348.584.172.858-.285.245-.654.37-1.03.347-.195.225-.228.48-.344.744-.142.258-.428.372-.629.487-.133.201-.265.424-.545.458-.171.201-.2.458-.257.716.716.19.87.094 1.26-.515.143-.143.344-.029.486 0 .407-.049.711-.321 1.003-.573 1.042-.272 1.032.41 2.233-.372.201-.086.287-.315.373-.487.1-.192.378-.562.028-.658-.899 1.819-2.464.338-3.665 1.715-.184.051-.041-.235 0-.287.862-1.256 2.823-.15 3.493-1.776.117-.25.051-1.247.343-1.232.029 0 .115.029.115.086-.278 1.214-.094 1.591 1.202 1.378.444-.128 1.716.325 1.69-.286 0-.114-.115-.171 0-.257.028-.029.114 0 .143.028.081.49.511.85.919 1.06.823.56.49 1.291-.459 1.26-.315-.172-.4-.487-.63-.745-.267-.234-.633-.122-.944-.057-.155.233.212.511.286.745.143.086.344-.058.458.114.115.171.172.344.344.458.496.476 1.532-.36 2.061-.401.463.051.674-.371.831-.716.261-.477-.434-.948-.487-1.374-.158-.044-.368-.167-.487 0 .088.213.579.993.544 1.231-.064.173-.21.572-.429.544.058-.2.144-.428.144-.658-.105-.245-.565-.953-.602-1.203.092-.242.562-.102.744-.344.201-.315.258-.629.316-1.03a.127.127 0 0 1 .086-.087c.279.18-.005 1.042-.172 1.232-.016.297.568.098.687 0 .221.046.67-.175.773-.029a1.545 1.545 0 0 0-.286.573c-.172.2-.458.344-.458.63.031.18.273-.11.286.114-.249.317-.218.394-.143.745.261.368.761.065 1.088-.028.552-.217 1.172.126 1.604-.459.116.01.222.074.286.172.319.335.769.513 1.231.487.188-.13-.222-.233-.286-.287-.201-.114-.459-.286-.516-.515-.075-.32-.306-.613-.458-.916.669.01.739 1.406 1.716 1.203.048-.033.043-.069.029-.115l-.259-.057Zm-16.866.687c-.339.139-.159.558-.371.773 0 .028-.058.086 0 .115.142.028.257.086.429.114.076-.256.15-.541.2-.773-.058-.086-.143-.2-.258-.229Zm17.317-.39c-.085.109-.274.115-.356.19a.115.115 0 0 0-.023.082.24.24 0 0 1-.073.242c-.087.094-.25.136-.397.126-.734.008-1.092-.351-1.392-.523-.41.265-.665.37-1.201.287-.315-.025-.596.134-.902.212.434.372 2.193.844 1.545.524-1.072-.607-.295-.203.645.019a6.905 6.905 0 0 0 1.625.2 8.043 8.043 0 0 0 2.427-1.279.342.342 0 0 1-.118-.021.192.192 0 0 1-.095-.081c-.031-.052-.048-.136.023-.251.074-.119.286-.327.734-.651a.014.014 0 0 1 .004-.003c1.097-.736 1.71-1.8 2.088-3.015a4.09 4.09 0 0 0-.798-.2c-.405 1.006-.503 1.716-1.458 2.285-1.108.725-.414.539-.403.534.086-.035.168-.079.245-.132-.429.689-1.174 1.129-2.063 1.327a.206.206 0 0 1-.057.128Zm-16.687.39c.2-.115.315-.315.401-.487-.062-.096-.136-.223-.286-.172-.137.106-.28.201-.429.287-.072.194.107.439.315.372h-.001Zm8.648-.63c.114.143.114.343.258.458a.617.617 0 0 0 .486-.143c.086-.057-.028-.143-.057-.229-.086-.115-.028-.344-.229-.344-.217.051-.455-.012-.659.057 0 .087.172.087.201.201Zm5.125-.344a1.694 1.694 0 0 1-.4.057h-.029c-.169-.156.184-.468.372-.458h.086c.105.044.078.32-.029.401Zm7.828-3.179c-.038.169-.078.328-.12.489a.142.142 0 0 1 .133.177c-.243.936-.807 1.571-1.433 2.262l.003.005c.1-.07.207-.127.313-.184.163-.088.326-.176.442-.351.632-.962.872-1.515 1.032-2.115-.11-.106-.233-.2-.37-.283Zm-.948-2.516.117.073c1.725 1.116 2.457 3.197 1.833 4.905l.006-.005c.29-.834.408-1.718.349-2.599-.306-2.281-1.087-4.283-3.87-5.019 1.721.416 1.85.631 2.075.779-1.337-1.235-3.49-1.664-5.667-1.295 1.253-.404 3.303-.361 4.61.417l.031.019c-3.108-1.906-6.839-1.075-9.134 1.114.429.083.806.366 1.157.637l.109-.059.127-.064.131-.062.27-.119.281-.11.295-.105.306-.096.285-.079.323-.079.299-.064.273-.05.17-.027.17-.025.138-.018.172-.019c1.705-.182 3.539.045 4.907.946l.013.008a4.445 4.445 0 0 1 1.518 1.685c-.033.021-.065.016-.094-.001l-.038-.029-.108-.115-.02-.015c-.014-.005-.046-.036-.061-.043l-.209-.189-.248-.186-.266-.162-.044-.024c-.773-.418-1.714-.603-2.55-.779l-.051-.01.415.146.459.135.494.143.299.099.242.094.16.071.143.072.085.046.098.058Zm-1.112 4.436c.186-.409.62-.629.762-1.123-.021.073.134.103.195.103.245-.042.251-.379.33-.449-.061.766-.578 1.393-1.144 1.912a.255.255 0 0 0-.244-.011c-.024-.144.286-.344.101-.432Zm-5.023-.402c-.032.056-.081.202-.143.201-.062-.001-.089.009-.086-.057-.005-.193-.036-.429-.201-.544-.374-.582-.468.147-.601.057-.08-.162.046-.345.115-.487.032-.038.044-.083.086-.114.061-.353.383-.152.458.057.197.245.429.521.401.802-.029-.029-.029.028-.029.085Zm-.549-3.278c-.217-.28-.442-.582-.683-.803 1.207-.431 3.157-.54 4.121-.577.228-.007.352-.022.403-.037a.18.18 0 0 0 .087-.052.143.143 0 0 0 .037-.115.15.15 0 0 0-.066-.11.573.573 0 0 0-.18-.059 8.12 8.12 0 0 0-1.056-.106h-.002c-.657 0-1.409.067-2.124.192.255-.086.515-.156.779-.209a.142.142 0 0 0 .114-.146.143.143 0 0 0-.128-.134c-.122-.013-.895.075-1.605.241-.485.113-.938.266-1.149.438a.08.08 0 0 0-.013.013c-.071-.06-.143-.119-.213-.176 1.546-.816 4.032-1.269 6.157-.782 1.178.269 2.246.83 2.973 1.785-.868-.665-2.087-.901-3.134-1.122a.142.142 0 0 0-.082.27c.762.303 1.566.393 2.28.798 1.572.902 2.381 2.603 2.161 4.159.016-.994-.449-1.573-1.164-1.938-2.191-.92-4.263.309-6 .558v-.014l-.003-.005c-.1-.215.937-.435 1.075-.518.082-.085.222-.056.315-.132.092-.091.23-.111.353-.135.323-.165.679-.219 1.039-.226.127.019.245-.052.372-.043a.347.347 0 0 1 .188-.03c.385-.029.779-.065 1.111-.299.035-.021.153-.086.053-.099-.629-.17-.932.26-1.506-.256.009-.022-.181-.103-.208-.103-.304.061-.589.197-.905.202-.144.032-.201-.04-.345-.04-.193.045-.46.169-.657.184-.092-.017-.542.218-.551.056a.017.017 0 0 1-.01 0c-.048-.182 2.822-1.254 1.641-.532.065.056.447-.105.807-.132.404-.086.941.211 1.118-.185-.007-.065-.162-.046-.2-.019-.077.042-.16.014-.241.032-.135.016-.66-.079-.779-.071-.095-.081.528-.064.583-.073.205-.031.452-.077.657-.115.091-.011.183-.013.274-.006.186.044.684-.024.153-.153-.14-.027-.581-.041-.652-.019-.108.014-.576.153-.825.095-.225-.068.7-.106.59-.168-1.148-.145-2.457-.109-4.724 1-.072-.089-.15-.183-.236-.284Zm-2.543.902c-.029.029-.058.029-.115.029-.077-.29-.104-.592-.258-.831-.08-.079-.184-.181-.115-.315a.138.138 0 0 1 .173-.029c.262.196.306.469.315.802.057.057.028.229 0 .344Zm9.227-1.658Zm-7.497-.15.213-.075.252-.076.266-.068.313-.068.36-.067.313-.049.37-.049.442-.05.467-.042.53-.036.414-.023.446-.018.194-.018.035-.008.013-.005.005-.003v-.001l.003-.002v-.001l.001-.004c0-.002-.001-.004-.004-.007l-.004-.003-.006-.003c-.113-.058-.879-.133-1.149-.136-1.19 0-2.697.224-3.712.611l.238.201Zm2.074-1.11.027.001a6.503 6.503 0 0 0-.867.238l-.496.169-.452.166-.341.132-.285.117-.209-.174c.434-.355 1.968-.598 2.491-.642l.132-.007Zm3.546.188c.08.059.363.23.812.232a.143.143 0 0 0 .131-.086.143.143 0 0 0-.028-.154c-.09-.093-.249-.173-.434-.235-.245-.082-.537-.139-.734-.184a.14.14 0 0 0-.102.016.143.143 0 0 0-.068.083.14.14 0 0 0 .008.111c.01.021.039.059.094.09.075.041.234.099.321.127Zm-.287-.278c-.003-.004-.002-.008.003-.011.302.069.834.165 1.057.344l.04.035a1.47 1.47 0 0 1-.438-.066l-.099-.035-.092-.042-.065-.037a.216.216 0 0 1-.05-.036h.001l-.277-.103-.043-.021a.106.106 0 0 1-.037-.028Zm.305.284.002.001a.203.203 0 0 0-.002-.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiRedcandlegames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.387 3.168q.028.194.08.378l.004.02a3.3 3.3 0 0 0 .326.77l.014.025q.186.31.434.57a1.5 1.5 0 0 1 .631-1.212.21.21 0 0 1 .24 0c.393.28.627.73.63 1.211a3.2 3.2 0 0 0 .435-.569l.014-.025q.21-.358.327-.77l.005-.02q.048-.187.078-.378l.01-.065a4 4 0 0 0 .028-.41v-.012a3.29 3.29 0 0 0-1.326-2.64.215.215 0 0 0-.34.15 3.3 3.3 0 0 1-1.616 2.482l-.01.02q0 .21.027.41zM5.137 13.72a.205.205 0 0 0-.222.207l.003.344q0 1.602-.122 3.172a42 42 0 0 1-.49 3.973.204.204 0 0 0 .182.239q1.02.09 2.048.158a.466.466 0 0 0 .49-.383 42 42 0 0 0 .614-7.534l-.003-.003a82 82 0 0 1-2.5-.173m13.94.551.002-.344a.205.205 0 0 0-.22-.207q-1.246.106-2.501.171l-.004.003q-.015 1.89.133 3.74a42 42 0 0 0 .476 3.76c.045.253.272.43.528.415a85 85 0 0 0 2.015-.156.203.203 0 0 0 .183-.237 41 41 0 0 1-.49-3.973 42 42 0 0 1-.123-3.172m-6.48-6.908v.896c0 .229.186.414.415.413l.57-.008a88 88 0 0 0 2.83-.1.41.41 0 0 0 .384-.352q.075-.497.157-.992.079-.461.167-.922a.184.184 0 0 0-.19-.218q-.66.04-1.323.068c-.53.022-1.062.044-1.596.056q-.707.013-1.415.018zm-5.397.847a.41.41 0 0 0 .383.352q.515.026 1.03.045a78 78 0 0 0 2.396.063.41.41 0 0 0 .416-.413V6.224a83 83 0 0 1-1.417-.018c-.534-.012-1.065-.034-1.596-.056a74 74 0 0 1-1.347-.07.182.182 0 0 0-.19.217q.09.46.166.922.086.495.16.99m12.13 1.473q-1.371.12-2.745.198c-.42.024-.84.04-1.261.057a88 88 0 0 1-2.727.064c-.2.002-.398.008-.597.008-.193 0-.38-.006-.573-.008A89 89 0 0 1 8.7 9.938q-.645-.023-1.287-.056a83 83 0 0 1-3.77-.295.22.22 0 0 0-.238.248c.049.352.09.703.137 1.057.045.345.096.688.136 1.033a.46.46 0 0 0 .415.412q.39.038.784.07c.906.077 1.816.145 2.73.192.392.02.788.033 1.184.05q.012.643.016 1.292l.004.333a87 87 0 0 1-.533 9.412.22.22 0 0 0 .208.245q1.35.055 2.72.069a.22.22 0 0 0 .222-.221V12.704h1.17v11.071c0 .122.1.22.223.22q1.365-.012 2.719-.069a.22.22 0 0 0 .209-.245 82 82 0 0 1-.46-5.996 82 82 0 0 1-.074-3.415l.004-.333q.004-.648.016-1.292a75 75 0 0 0 1.16-.047 82 82 0 0 0 2.73-.192l.82-.074a.42.42 0 0 0 .374-.372c.041-.358.095-.713.142-1.07l.136-1.057a.22.22 0 0 0-.238-.248q-.515.053-1.028.097\"},\"child\":[]}]})(props);\n};\nexport function SiReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z\"},\"child\":[]}]})(props);\n};\nexport function SiRedhat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.009 13.386c1.577 0 3.86-.326 3.86-2.202a1.765 1.765 0 0 0-.04-.431l-.94-4.08c-.216-.898-.406-1.305-1.982-2.093-1.223-.625-3.888-1.658-4.676-1.658-.733 0-.947.946-1.822.946-.842 0-1.467-.706-2.255-.706-.757 0-1.25.515-1.63 1.576 0 0-1.06 2.99-1.197 3.424a.81.81 0 0 0-.028.245c0 1.162 4.577 4.974 10.71 4.974m4.101-1.435c.218 1.032.218 1.14.218 1.277 0 1.765-1.984 2.745-4.593 2.745-5.895.004-11.06-3.451-11.06-5.734a2.326 2.326 0 0 1 .19-.925C2.746 9.415 0 9.794 0 12.217c0 3.969 9.405 8.861 16.851 8.861 5.71 0 7.149-2.582 7.149-4.62 0-1.605-1.387-3.425-3.887-4.512\"},\"child\":[]}]})(props);\n};\nexport function SiRedhatopenshift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.665,11.812c-0.11-1.377-0.476-2.724-1.08-3.966L24,6.599c-0.268-0.556-0.585-1.092-0.943-1.595 l-1.601,0.583c-3.534-4.95-10.412-6.098-15.363-2.565c-3.144,2.244-4.883,5.972-4.582,9.823l1.604-0.584 c0.051,0.615,0.153,1.224,0.305,1.822L0,15.335c0.338,1.339,0.922,2.604,1.721,3.731l1.812-0.659 c3.526,4.95,10.398,6.106,15.349,2.58c1.555-1.107,2.796-2.6,3.599-4.332c0.802-1.715,1.144-3.61,0.991-5.497L21.665,11.812z M16.925,9.177c0.687,1.227,0.998,2.629,0.895,4.032l1.809-0.657c-0.063,0.856-0.282,1.694-0.646,2.471 c-1.67,3.584-5.928,5.138-9.514,3.472c-0.782-0.365-1.491-0.87-2.092-1.49l-1.813,0.66c-0.979-1.01-1.64-2.285-1.903-3.667 l3.426-1.242c-0.121-0.624-0.159-1.262-0.111-1.896H6.97l-1.604,0.583c0.294-3.932,3.72-6.881,7.652-6.587 c0.868,0.065,1.716,0.288,2.504,0.658V5.508c0.778,0.364,1.483,0.867,2.082,1.483l1.599-0.582c0.002,0.002,0.004,0.003,0.006,0.005 c0.441,0.454,0.82,0.965,1.128,1.518L16.925,9.177z\"},\"child\":[]}]})(props);\n};\nexport function SiRedis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.71 13.145c-1.66 2.092-3.452 4.483-7.038 4.483-3.203 0-4.397-2.825-4.48-5.12.701 1.484 2.073 2.685 4.214 2.63 4.117-.133 6.94-3.852 6.94-7.239 0-4.05-3.022-6.972-8.268-6.972-3.752 0-8.4 1.428-11.455 3.685C2.59 6.937 3.885 9.958 4.35 9.626c2.648-1.904 4.748-3.13 6.784-3.744C8.12 9.244.886 17.05 0 18.425c.1 1.261 1.66 4.648 2.424 4.648.232 0 .431-.133.664-.365a100.49 100.49 0 0 0 5.54-6.765c.222 3.104 1.748 6.898 6.014 6.898 3.819 0 7.604-2.756 9.33-8.965.2-.764-.73-1.361-1.261-.73zm-4.349-5.013c0 1.959-1.926 2.922-3.685 2.922-.941 0-1.664-.247-2.235-.568 1.051-1.592 2.092-3.225 3.21-4.973 1.972.334 2.71 1.43 2.71 2.619z\"},\"child\":[]}]})(props);\n};\nexport function SiRedmine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m1.092 15.088c.789.243 4.098 1.005 4.098 1.005.198.061.139.21.139.21-.228 1.798-.178 3.17-.178 3.644 0 .21-.153.18-.153.18h-4.83c-.209 0-.164-.19-.164-.19.04-.599.212-2.303.878-4.746 0 0 .033-.157.21-.103zm21.816 0c-.789.243-4.098 1.005-4.098 1.005-.198.061-.139.21-.139.21.228 1.798.178 3.17.178 3.644 0 .21.153.18.153.18h4.83c.21 0 .164-.19.164-.19-.04-.599-.212-2.303-.878-4.746 0 0-.034-.157-.21-.103zm-1.929-5.354-3.448 1.667c-.164.063-.082.212-.082.212.476 1.134.766 2.091.99 3.251.038.194.169.132.169.132l3.879-1.684s.116-.044.068-.193c-.172-.531-1.05-2.649-1.402-3.341 0 0-.062-.105-.174-.044zm-17.958 0 3.448 1.667c.164.063.082.212.082.212-.476 1.134-.766 2.091-.991 3.251-.037.194-.169.132-.169.132l-3.878-1.684s-.116-.044-.068-.193c.172-.531 1.05-2.649 1.402-3.341 0 0 .062-.105.174-.044zm4.085-4.368 2.302 2.681c.099.128-.032.222-.032.222-.923.498-1.59 1.25-2.161 2.111-.114.17-.236.046-.236.046l-2.917-2.184s-.126-.074-.016-.22c.854-1.134 1.63-1.934 2.871-2.689 0 0 .094-.089.189.033zm9.788 0-2.302 2.681c-.099.128.032.222.032.222.923.498 1.59 1.25 2.161 2.111.114.17.236.046.236.046l2.917-2.184s.126-.074.016-.22c-.854-1.134-1.63-1.934-2.871-2.689 0 0-.094-.089-.189.033zm-4.894 2.295c.388 0 1.105.037 1.444.093.177.03.221-.088.221-.088l1.449-3.028s.097-.114-.106-.188c-1.082-.396-1.657-.578-3.008-.578-1.335 0-1.926.182-3.008.578-.203.074-.106.188-.106.188l1.449 3.028s.044.118.221.088c.339-.056 1.056-.093 1.444-.093z\"},\"child\":[]}]})(props);\n};\nexport function SiRedox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.6935 6.0492a.2861.2861 0 0 0-.2578.242C3.5384 6.383 1.883 7.4011.912 8.9027H.9101a.2835.2835 0 0 0-.3866.2638c0 .0888.0423.1682.1073.2203A5.689 5.689 0 0 0 0 12.0001c0 .9415.2272 1.83.6312 2.6135a.2827.2827 0 0 0 .2808.4842c.9706 1.5016 2.6264 2.5198 4.5237 2.6116v.002a.2835.2835 0 0 0 .5605-.0023c1.8966-.0919 3.5509-1.1105 4.5215-2.6113h.0019a.285.285 0 0 0 .3885-.2638.2857.2857 0 0 0-.031-.1266l-.014-.0295-.029.0159a2.3482 2.3482 0 0 1-.459.1851l-.0313.0099.0098.0313a.3061.3061 0 0 0 .0216.0492 5.5177 5.5177 0 0 1-4.4202 2.5485v-.0019a.2827.2827 0 0 0-.4803.0038 5.5219 5.5219 0 0 1-4.4202-2.549l.0019-.0018a.2835.2835 0 0 0-.2419-.418A5.5003 5.5003 0 0 1 .1909 12c0-.9203.2252-1.7877.6232-2.5508a.2835.2835 0 0 0 .2404-.4195 5.5219 5.5219 0 0 1 4.4198-2.549.2827.2827 0 0 0 .4822 0 5.5219 5.5219 0 0 1 4.4183 2.5508.2816.2816 0 0 0-.0351.1346.285.285 0 0 0 .277.2835 5.4879 5.4879 0 0 1 .4649 1.232 2.369 2.369 0 0 1 .238.1894 5.6693 5.6693 0 0 0-.5192-1.4842.2827.2827 0 0 0 .1073-.2207.2854.2854 0 0 0-.3885-.2638A5.7112 5.7112 0 0 0 5.9958 6.293a.285.285 0 0 0-.2811-.2438c-.0076 0-.0144-.0007-.0216 0zm-.006 1.4177a.288.288 0 0 0-.248.2207c-2.245.1486-4.0233 2.0183-4.0233 4.3011 0 2.2802 1.7749 4.1492 4.0176 4.3004a.2835.2835 0 0 0 .2812.2441.2869.2869 0 0 0 .2812-.2418 4.3041 4.3041 0 0 0 2.945-1.4317 2.369 2.369 0 0 1-.1874-.0764 4.1083 4.1083 0 0 1-2.7969 1.3183.2854.2854 0 0 0-.2419-.1345.288.288 0 0 0-.2403.1326c-2.1582-.1304-3.8673-1.92-3.8673-4.111 0-2.1872 1.7027-3.9749 3.8552-4.1113v.0022a.283.283 0 0 0 .5064-.0022c1.5625.0907 2.8902 1.0492 3.5074 2.4026a2.369 2.369 0 0 1 .2034-.0159 4.3124 4.3124 0 0 0-3.6877-2.576v-.002a.285.285 0 0 0-.277-.2188c-.0099 0-.0182-.0008-.0277 0zM3.959 9.506v4.9849h.4958V9.9572h.703c.5099 0 .892.0605 1.1467.1815a.8504.8504 0 0 1 .389.3673c.0922.1648.1383.3614.1383.5896 0 .5496-.2415.8965-.7227 1.0394-.2282.0635-.6104.0956-1.1463.0956l1.6819 2.2602h.6187L5.8651 12.629c.4788-.0503.8455-.2056 1.096-.4649.2525-.2612.3787-.6145.3787-1.0605 0-.3031-.0623-.5685-.1851-.7967a1.3667 1.3667 0 0 0-.5318-.547c-.305-.1689-.7813-.254-1.4313-.254Zm11.6288 0v1.8811c-.3757-.4505-.8583-.6757-1.449-.6757-.3693 0-.703.0846-1.0043.2536a1.858 1.858 0 0 0-.7049.6992c-.1693.2967-.254.6259-.254.9902 0 .3606.0881.6883.2639.9827a1.8644 1.8644 0 0 0 .7207.6916c.3073.1663.6497.2495 1.0254.2495.3073 0 .5696-.059.7869-.1776.2196-.1183.424-.3118.6153-.5798v.6697h.502V9.506ZM9.697 10.7114a1.8905 1.8905 0 0 0-.9645.2536 1.8591 1.8591 0 0 0-.6916.6954 1.9106 1.9106 0 0 0-.254.9687c0 .2683.0514.5223.1523.7635a1.911 1.911 0 0 0 .4104.6236 1.9257 1.9257 0 0 0 .6229.412 1.9665 1.9665 0 0 0 .7657.1504 1.8172 1.8172 0 0 0 1.0957-.3576 1.948 1.948 0 0 0 .6992-.9471h-.5215a1.3172 1.3172 0 0 1-.5099.613 1.4003 1.4003 0 0 1-.777.2306 1.4237 1.4237 0 0 1-.9884-.3787c-.279-.2552-.4294-.5632-.4494-.928h3.338c0-.246-.0158-.4508-.049-.6133a1.8002 1.8002 0 0 0-.1716-.4804 1.7953 1.7953 0 0 0-.7012-.7363 1.9446 1.9446 0 0 0-1.006-.2694Zm9.0082 0c-.5432.0113-.9925.1954-1.3497.5506-.3693.3648-.5548.8266-.5548 1.3868 0 .3647.0846.6939.254.9883a1.833 1.833 0 0 0 .709.6916c.3008.1663.6365.2495 1.0076.2495.5427 0 .9918-.1822 1.3478-.5465.3556-.3647.5329-.8236.5329-1.3773 0-.3666-.0813-.6973-.2457-.994a1.7688 1.7688 0 0 0-.68-.6954c-.2875-.169-.6107-.2536-.9686-.2536h-.053zm2.1619.0895 1.285 1.809-1.285 1.8806h.5665l1.0016-1.4804.9902 1.4804H24l-1.291-1.8807L24 10.8008h-.5745l-.9902 1.4219-1.0016-1.4219zm-11.2343.3693c.0215-.0008.0427 0 .0642 0 .3583 0 .6652.1054.92.3182.257.2132.4263.5027.5102.8693H8.3006c.068-.3556.2313-.6417.4883-.8594a1.3444 1.3444 0 0 1 .844-.3281zm4.4005 0c.0242-.0011.0472 0 .0718 0 .4222 0 .7786.1421 1.0685.4278.2902.2835.4358.6286.4358 1.0371 0 .4082-.141.759-.4218 1.0489-.2812.2899-.6206.4335-1.016.4335-.4195 0-.7725-.1406-1.0605-.4237-.2854-.2857-.4275-.6357-.4275-1.0507 0-.4086.1372-.756.4139-1.0413.2596-.2698.5718-.4146.9358-.4316zm4.611 0c.025-.0011.0491 0 .0745 0 .4172 0 .7593.1387 1.0272.42.268.2788.4022.6371.4022 1.0722 0 .424-.1312.7725-.3923 1.0469-.2593.2721-.5919.4082-.9982.4082-.4173 0-.7627-.1372-1.0371-.4139-.2744-.277-.412-.6274-.412-1.0492 0-.426.1342-.7793.4022-1.0605.2513-.2653.5627-.407.9335-.4233z\"},\"child\":[]}]})(props);\n};\nexport function SiRedragon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.995 4.077v.06A10.963 10.963 0 0 1 16.22 8.42c.605 2.167.876 4.414.805 6.662a1.01 1.01 0 0 1 0 .113 6.278 6.278 0 0 0-.721-1.846 4.39 4.39 0 0 0-1.367-1.45c.025.064.059.113.059.168a7.04 7.04 0 0 1 .528 2.245 4.703 4.703 0 0 1-1.076 3.41 1.38 1.38 0 0 0-.113.203l-.069-.065a3.949 3.949 0 0 0-.138-2.374c-.578 2.216-2.068 3.538-4.047 4.437 2.404-.01 4.723-.375 6.697-1.856.015.533-.148.958-.696 1.841 1.673-.839 2.403-2.23 2.586-4.012.45.536.755 1.178.888 1.866.128.656.192 1.327.286 1.974.71-1.747.686-3.593.444-5.512 2.137 1.248 3.02 3.266 3.701 5.428a25.023 25.023 0 0 0-.133-3.494c-.17-1.698-.59-3.36-1.248-4.935a11.844 11.844 0 0 0-6.638-6.583 8.79 8.79 0 0 0-1.973-.563zm-2.734.11c-.306.522-.587 1.06-.933 1.539a18.019 18.019 0 0 1-1.14 1.524 1.313 1.313 0 0 1-.943.43l.445-2.083a.626.626 0 0 0-.143.188c-.3.46-.592.928-.908 1.372a.632.632 0 0 1-.726.247c-.493-.144-.987-.282-1.48-.44a.257.257 0 0 0-.326.08A18.356 18.356 0 0 1 3.785 8.42c-1.076.953-2.24 1.746-3.785 1.638v.065c.434 1.026.864 2.053 1.318 3.074a1.648 1.648 0 0 0 .69.74 12.216 12.216 0 0 1-.183-1.283c-.024-.523.094-.617.617-.667a.168.168 0 0 1 .203.129c.074.187.163.37.246.558.104-.227.193-.44.296-.642a.301.301 0 0 1 .149-.133c.222-.094.45-.168.686-.257l.177.356c.153-.35.296-.696.46-1.037a.375.375 0 0 1 .468-.173v.242a4.935 4.935 0 0 0 .493 2.626 4.244 4.244 0 0 1 .281 1.046c.04.162-.043.257-.196.257l-.4.044a1.655 1.655 0 0 1 .27.247c.075.094.179.27.144.32a.918.918 0 0 1-.39.267.536.536 0 0 1-.315 0 9.746 9.746 0 0 1-.81-.272 3.64 3.64 0 0 1-.414-.212l-.08.094.716.612a1.554 1.554 0 0 0 1.24.41.987.987 0 0 0 .986-.988c.045-.306.005-.616.045-.922a2.704 2.704 0 0 1 .927-1.974 2.561 2.561 0 0 0-1.214.74 6.366 6.366 0 0 1-.079-1.135 1.545 1.545 0 0 1 1.402-1.653 20.515 20.515 0 0 1 1.648-.281c.805-.08 1.599-.246 2.369-.494a4.367 4.367 0 0 0 1.406-.794 17.83 17.83 0 0 1-2.872.38 8.882 8.882 0 0 0 3.4-4.777c-1.056 1.48-2.202 2.867-3.87 3.701a22.7 22.7 0 0 0 1.447-4.086zM5.443 8.07c-.03.153-.054.305-.094.454-.074.29-.163.577-.237.868a.197.197 0 0 1-.198.178c-.384.045-.764.103-1.183.157zM9.4 10.775a4.206 4.206 0 0 0-.577.053 2.897 2.897 0 0 0-1.48.523.987.987 0 0 0-.43.923 1.1 1.1 0 0 1 .972-.671 3.065 3.065 0 0 1 1.762.34c.49.234.772.76.696 1.298a2.338 2.338 0 0 1-.687 1.377 5.797 5.797 0 0 1-1.914 1.308 9.695 9.695 0 0 0-2.32 1.41 3.95 3.95 0 0 0-1.396 2.567h5.921a2.023 2.023 0 0 1 .987-2.551l-.26 1.115a5.428 5.428 0 0 0 1.243-2.665c.171.407.245.848.216 1.288a5.615 5.615 0 0 0 .44-2.866l.518.561c-.049-.4-.09-.755-.134-1.11a3.097 3.097 0 0 0-1.865-2.585 4.197 4.197 0 0 0-1.692-.315z\"},\"child\":[]}]})(props);\n};\nexport function SiRedsys (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.626 24c-3.989-.108-7.476-2.03-9.89-5.873A10.9 10.9 0 0 1 .17 13.959a12.4 12.4 0 0 1 .239-4.996c.44-1.711 1.275-3.197 2.339-4.58.075-.099.169-.263.314-.174.098.061.023.207-.019.324-.473 1.36-.46 2.756.225 3.984.783 1.411 1.964 2.438 3.67 2.705 1.636.258 3.07-.211 4.21-1.317 1.378-1.34 1.95-2.99 1.415-4.946-.285-1.036-.768-1.922-1.612-2.578-1.092-.848-2.33-1.26-3.722-1.12-.098.01-.225.08-.267-.056s.103-.14.187-.178A11.9 11.9 0 0 1 12.071 0c1.74.01 3.427.384 5.006 1.125 2.152 1.008 3.91 2.498 5.133 4.552a12.4 12.4 0 0 1 1.688 4.93c.154 1.313.08 2.584-.188 3.863-.333 1.575-.942 3.028-1.875 4.34-.853 1.2-1.851 2.241-3.103 3.052-.998.647-2.025 1.177-3.16 1.538-1.115.356-2.245.544-3.946.595z\"},\"child\":[]}]})(props);\n};\nexport function SiRedux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.634 16.504c.87-.075 1.543-.84 1.5-1.754-.047-.914-.796-1.648-1.709-1.648h-.061a1.71 1.71 0 00-1.648 1.769c.03.479.226.869.494 1.153-1.048 2.038-2.621 3.536-5.005 4.795-1.603.838-3.296 1.154-4.944.93-1.378-.195-2.456-.81-3.116-1.799-.988-1.499-1.078-3.116-.255-4.734.6-1.17 1.499-2.023 2.099-2.443a9.96 9.96 0 01-.42-1.543C-.868 14.408-.416 18.752.932 20.805c1.004 1.498 3.057 2.456 5.304 2.456.6 0 1.23-.044 1.843-.194 3.897-.749 6.848-3.086 8.541-6.532zm5.348-3.746c-2.32-2.728-5.738-4.226-9.634-4.226h-.51c-.253-.554-.837-.899-1.498-.899h-.045c-.943 0-1.678.81-1.647 1.753.03.898.794 1.648 1.708 1.648h.074a1.69 1.69 0 001.499-1.049h.555c2.309 0 4.495.674 6.488 1.992 1.527 1.005 2.622 2.323 3.237 3.897.538 1.288.509 2.547-.045 3.597-.855 1.647-2.294 2.517-4.196 2.517-1.199 0-2.367-.375-2.967-.644-.36.298-.96.793-1.394 1.093 1.318.598 2.652.943 3.94.943 2.922 0 5.094-1.647 5.919-3.236.898-1.798.824-4.824-1.47-7.416zM6.49 17.042c.03.899.793 1.648 1.708 1.648h.06a1.688 1.688 0 001.648-1.768c0-.9-.779-1.647-1.693-1.647h-.06c-.06 0-.15 0-.226.029-1.243-2.098-1.768-4.347-1.572-6.772.12-1.828.72-3.417 1.797-4.735.9-1.124 2.593-1.68 3.747-1.708 3.236-.061 4.585 3.971 4.689 5.574l1.498.45C17.741 3.197 14.686.62 11.764.62 9.02.62 6.49 2.613 5.47 5.535 4.077 9.43 4.991 13.177 6.7 16.174c-.15.195-.24.539-.21.868z\"},\"child\":[]}]})(props);\n};\nexport function SiReduxsaga (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.871 4.678a3.315 3.315 0 0 0-1.953.631C4.455 6.35 3.724 8.235 3.534 10.007c-.204 1.938.23 4.166 1.398 5.638-.194.57.193 1.202.793 1.268a.975.975 0 0 0 1.06-.713c.197-.66-.425-1.342-1.13-1.189-.982-1.321-1.29-3.038-1.186-4.653.125-1.576.683-3.255 1.985-4.245.81-.602 1.828-.622 2.65-.075 1.107.742 1.763 2.132 1.97 3.43l.51.199.551.288c-.198-1.888-1.097-3.866-2.576-4.774a3.149 3.149 0 0 0-1.688-.503zm9.515 3.946a8.752 8.752 0 0 0-3.056.526.968.968 0 0 0-1.246.27c-.394.505-.162 1.297.475 1.495.615.211 1.29-.284 1.265-.918a7.778 7.778 0 0 1 2.839-.403c1.575.07 3.665.654 4.626 2.148.076.119.165.404.521.4a.484.484 0 0 0 .422-.7c-.526-.99-1.522-1.725-2.636-2.194-.984-.412-2.095-.62-3.21-.624zm-11.06.717c-.455-.003-.93.296-.979.933.012 1.233 1.657 1.33 1.912.24 1.887-.271 3.894.584 5.3 1.717.973.77 1.852 1.993 2.072 3.083.162.071.61.265 1.002.306-.146-1.638-1.215-3.101-2.452-4.127-1.568-1.33-4.123-2.328-6.218-1.903a.912.912 0 0 0-.636-.249zm-3.418 1.86c-.866.609-1.65 1.36-2.185 2.282C.008 14.668-.312 16.24.4 17.499c.66 1.218 2.082 1.78 3.41 1.812a7.263 7.263 0 0 0 2.265-.297c2.104-.59 4.373-2.222 5.274-4.362a.964.964 0 0 0 .79-.705c.2-.72-.463-1.372-1.169-1.191-.686.175-.966 1.012-.522 1.54-.607 1.389-1.8 2.449-3.112 3.161-1.493.804-3.306 1.188-4.758.659-.93-.304-1.642-1.13-1.618-2.215 0-1.297.924-2.677 2.062-3.573-.118-.538-.107-.74-.114-1.128zm20.103 1.53a.938.938 0 0 0-.672.292c-.344.327-.364.902-.092 1.248-.546.823-1.508 1.384-2.455 1.706-1.855.613-4.111.503-5.798-.38a4.48 4.48 0 0 1-.99-.674c-.141-.128-.183-.157-.296-.188-.5-.105-.783.486-.457.808 1.269 1.189 3.037 1.706 4.744 1.777.664.024 1.33-.02 1.983-.14 1.622-.302 3.318-1.107 4.168-2.521.639-.072 1.038-.775.769-1.344a.958.958 0 0 0-.904-.584zm-8.746 4.514c-.83 1.12-2.646 1.45-4.75.723-.19.13-.302.214-.433.3-.13.087-.29.17-.607.366 2.558 1.032 5.444 1.076 6.739-1.082a3.39 3.39 0 0 1-.949-.307z\"},\"child\":[]}]})(props);\n};\nexport function SiRedwoodjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.989 3.47l4.66 3.181c.105.07.228.108.354.111a.634.634 0 0 0 .354-.111l4.664-3.192a.637.637 0 0 0-.089-1.087L12.272.065a.64.64 0 0 0-.56 0L7.067 2.372a.636.636 0 0 0-.078 1.098zm6.597 4.179c0 .211.104.408.276.528l3.736 2.553a.628.628 0 0 0 .776-.05l3.134-2.803a.637.637 0 0 0-.028-.973l-2.992-2.393a.635.635 0 0 0-.751-.029l-3.874 2.65a.644.644 0 0 0-.277.517zm-9.291 3.474a.64.64 0 0 1 .209.538.625.625 0 0 1-.315.485l-2.231 1.337a.63.63 0 0 1-.718-.049.64.64 0 0 1-.21-.693l.825-2.596a.63.63 0 0 1 1.023-.281l1.417 1.259zm12.1.271l-4.033-2.76a.634.634 0 0 0-.708 0l-4.033 2.76a.646.646 0 0 0-.276.485.664.664 0 0 0 .212.521l4.03 3.605a.635.635 0 0 0 .842 0l4.03-3.605a.647.647 0 0 0-.064-1.006zm-10.758-.713l-3.13-2.803a.648.648 0 0 1-.213-.503.626.626 0 0 1 .237-.481l2.992-2.407a.641.641 0 0 1 .754-.029l3.87 2.65a.639.639 0 0 1 0 1.07l-3.732 2.553a.633.633 0 0 1-.778-.05zm16.073 4.026l-3.187-1.908a.627.627 0 0 0-.744.071l-3.895 3.477a.644.644 0 0 0-.204.587.636.636 0 0 0 .388.483l5.404 2.19a.634.634 0 0 0 .815-.332l1.675-3.752a.64.64 0 0 0-.252-.816zm.442-4.561l.825 2.596h-.007a.635.635 0 0 1-.927.742l-2.234-1.337a.623.623 0 0 1-.305-.485.631.631 0 0 1 .209-.538l1.416-1.262a.63.63 0 0 1 1.023.284zm-11.82 6.786a.637.637 0 0 0-.202-.585L6.235 12.87a.627.627 0 0 0-.744-.071l-3.187 1.908a.648.648 0 0 0-.255.813l1.678 3.752a.632.632 0 0 0 .814.332l5.4-2.19a.637.637 0 0 0 .391-.482zm1.912 1.07l4.334 1.755c.212.091.358.29.382.521a.635.635 0 0 1-.269.596l-4.338 3.013A.625.625 0 0 1 12 24a.64.64 0 0 1-.354-.114l-4.334-3.013a.635.635 0 0 1 .124-1.117l4.334-1.755a.642.642 0 0 1 .474.001z\"},\"child\":[]}]})(props);\n};\nexport function SiReebok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.991 11.48C17.744 10.38 19.458 9.748 24 8.64c-2.467.163-7.922.537-11.682 1.271l2.673 1.57m-8.56 3.651h3.6c.713-1.08 1.422-1.606 2.248-2.191a71.382 71.382 0 00-1.892-.701c-2.297 1.014-3.575 2.375-3.953 2.892m.709-3.928c-3.21 1.147-4.994 2.393-6.199 3.928h3.975c.387-.539 1.862-2.093 4.633-3.174a57.092 57.092 0 00-2.41-.754M8.79 8.788H0c8.862 1.6 13.133 3.66 20 6.572-.587-.439-10.051-6.013-11.209-6.572\"},\"child\":[]}]})(props);\n};\nexport function SiRefine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.789.422a4.001 4.001 0 0 0-3.578 0l-8 4A4.0011 4.0011 0 0 0 0 8v8c0 1.515.856 2.9 2.211 3.578l8 4a4.001 4.001 0 0 0 3.578 0l8-4A4.0011 4.0011 0 0 0 24 16V8c0-1.515-.856-2.9-2.211-3.578l-8-4ZM8 8c0-2.209 1.791-4 4-4s4 1.791 4 4v8c0 2.209-1.791 4-4 4s-4-1.791-4-4V8Zm6 0c0 1.105-.895 2-2 2s-2-.895-2-2 .895-2 2-2 2 .895 2 2Z\"},\"child\":[]}]})(props);\n};\nexport function SiRefinedgithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.906.614a3.4 3.4 0 0 0-.896.127c-.955.262-1.824.76-2.646 1.302a13.7 13.7 0 0 0-6.807-.002A11 11 0 0 0 6.71 1.016C6.136.78 5.526.585 4.899.622c-.113.01-.263.013-.315.135a5.8 5.8 0 0 0-.422 1.737 4.8 4.8 0 0 0 .223 1.923 5.4 5.4 0 0 0-1.36 3.053c-.05.453-.036.91-.015 1.365-.934-.237-1.93-.278-2.867-.035-.11.025-.174.16-.128.261.036.092.146.14.238.111.912-.232 1.881-.177 2.783.074q.045.412.107.821c-.798-.196-1.635-.093-2.42.11-.14.033-.18.238-.071.328.083.08.205.04.303.015.74-.18 1.536-.258 2.275-.027.072.248.13.5.226.741l.316.715c.321.63.806 1.167 1.365 1.596a6.8 6.8 0 0 0 1.73.942c.727.277 1.49.449 2.258.571a3.3 3.3 0 0 0-.376.498 3.2 3.2 0 0 0-.335.795c-.43.007-.865.05-1.288-.045a1.95 1.95 0 0 1-.864-.452 3.6 3.6 0 0 1-.62-.739 1 1 0 0 0-.618-.43.73.73 0 0 0-.57.11.67.67 0 0 0-.256.406c-.051.221-.011.452.059.665.122.365.351.687.626.954.485.467 1.089.799 1.726 1.006.535.17 1.112.257 1.667.143-.003.99.003 1.979-.003 2.968-.024.232-.134.45-.28.628-.1.128-.23.231-.377.301-.128.056-.268.102-.362.212a.43.43 0 0 0-.097.422.41.41 0 0 0 .265.25c.148.05.306.039.46.036.45-.013.907-.1 1.306-.318.55-.294.95-.897.925-1.532-.002-.679-.022-1.357-.032-2.036-.003-.385-.018-.771.016-1.155.028 1.009.034 2.019.054 3.028.002.324-.001.654-.09.97a1.8 1.8 0 0 1-.365.682c-.098.12-.226.22-.295.362-.06.114-.07.26.001.37.084.143.254.197.409.22.33.041.657-.073.95-.218a2.16 2.16 0 0 0 .86-.783c.209-.338.308-.736.316-1.13.01-.584.008-1.167.017-1.75.035-.297.021-.596.028-.894.005.175.003.35.004.525-.027.534-.003 1.07-.004 1.604.01.31-.013.624.049.93.062.324.195.636.398.897.234.3.551.53.902.678.294.123.63.204.943.105.156-.044.296-.18.3-.35.003-.169-.105-.312-.22-.427a1.87 1.87 0 0 1-.524-1.36V18.47c.004-.27-.012-.54.014-.809.049.405.034.814.033 1.22.004.733-.003 1.466.004 2.2.015.41.18.822.48 1.108.346.337.824.5 1.295.565q.36.05.719.026c.182-.016.37-.137.408-.324.039-.176-.059-.355-.2-.457-.093-.075-.215-.095-.318-.153-.292-.16-.5-.451-.588-.77-.045-.138-.022-.284-.028-.426.001-.89-.007-1.782.008-2.672.483.097.983.043 1.455-.084a4.6 4.6 0 0 0 1.794-.94c.334-.29.618-.651.761-1.073.068-.205.11-.426.068-.641a.7.7 0 0 0-.233-.414.72.72 0 0 0-.583-.137 1 1 0 0 0-.632.431c-.206.314-.445.612-.744.841a1.9 1.9 0 0 1-.718.346c-.43.103-.876.059-1.314.051a3.9 3.9 0 0 0-.72-1.269c-.032-.022.018-.042.036-.041 1.228-.18 2.453-.528 3.514-1.188a5.15 5.15 0 0 0 1.638-1.593 3 3 0 0 0 .21-.383c.096-.214.203-.423.285-.644a8 8 0 0 0 .218-.725c.661-.228 1.38-.193 2.057-.057q.187.037.375.084c.07.017.154.017.21-.036.104-.084.073-.278-.054-.323-.81-.218-1.677-.314-2.5-.104a9 9 0 0 0 .109-.792c0-.031.038-.032.06-.041.903-.252 1.874-.306 2.788-.073.12.038.227-.057.263-.165v-.037c-.031-.073-.074-.156-.16-.173-.956-.246-1.971-.197-2.92.052.038-.68.033-1.37-.125-2.037a5.5 5.5 0 0 0-1.251-2.399c.386-1.133.283-2.39-.134-3.499-.04-.105-.07-.249-.204-.27q-.15-.03-.3-.032\"},\"child\":[]}]})(props);\n};\nexport function SiRelay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.26428 4.93674C1.01354 4.93674 0 5.95018 0 7.20093c0 1.25074 1.01363 2.26428 2.26437 2.26428 1.05365 0 1.9393-.71975 2.1919-1.69462h10.3387c.98764 0 1.79128.80368 1.79128 1.79146 0 .98779-.80359 1.79156-1.79128 1.79156h-5.7309c-1.67246 0-3.03319 1.36067-3.03319 3.03318 0 1.67252 1.36063 3.03301 3.0332 3.03301h10.49429c.26987.9487 1.14197 1.64346 2.17735 1.64346 1.25074 0 2.26428-1.01344 2.26428-2.26419 0-1.25074-1.01354-2.26428-2.26428-2.26428-1.0353 0-1.9074.69469-2.17735 1.64328H9.06397c-.98777 0-1.79145-.80359-1.79145-1.79128 0-.98797.80358-1.79164 1.79146-1.79164h5.7309c1.67251 0 3.033-1.36063 3.033-3.0331 0-1.67246-1.36044-3.03319-3.033-3.03319H4.42718c-.2863-.92243-1.1464-1.59212-2.1629-1.59212Z\"},\"child\":[]}]})(props);\n};\nexport function SiRelianceindustrieslimited (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.65 18.44c.717-1.506 1.356-3.046 1.661-4.787.119 1.818 1.2 3.435 1.72 5.177.199.842.214 1.714-.107 2.584-.349.948-.911 1.759-1.582 2.488C7.528 21.936 6.97 20.11 7.65 18.44zm11.547 3.765c-.825.623-1.902.716-2.744.311 0 0-.229-.093-.439-.34-1.6-1.868-3.215-3.725-4.828-5.583 1.431.264 3-.438 3.805-1.712.81-1.212.777-2.942.016-4.154-.916-1.324-2.695-1.758-4.19-1.555-2.588.373-4.447 2.722-5.026 5.182-.595 2.799-.166 5.44.761 7.932a6.87 6.87 0 0 0 .856 1.538c-2.727-1.215-5.137-3.45-6.402-6.457-1.4-3.232-1.372-7.324.294-10.606C2.608 4.225 4.923 1.876 7.789.884c1.157-.49 2.47-.746 3.81-.786h.716c1.91.057 3.838.55 5.435 1.466 3.548 1.807 6.232 6.3 6.244 10.314.123 4.153-1.674 7.915-4.797 10.327z\"},\"child\":[]}]})(props);\n};\nexport function SiRemark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.204 18.089V12.66q0-2.477 1.156-3.947 1.156-1.47 3.108-1.47.494 0 1.03.092.54.088.953.245V5.976q-.279-.122-.754-.195-.478-.073-1.007-.073-1.76 0-2.902.88-1.144.881-1.458 2.497h-.157V6.01H0v1.186h2.737V18.09Zm-3.959 0H8.04v-1.187H.245ZM19.1 7.109q1.604 0 2.507 1.095.904 1.091.904 3.02H15.6q0-1.94.93-3.027.93-1.088 2.569-1.088zm4.846 7.998h-1.458q-.28.884-1.133 1.378-.854.494-2.087.494-1.68 0-2.676-1.114-.991-1.118-.991-3.013v-.414H24v-.953q0-1.807-.578-3.074-.574-1.267-1.67-1.933-1.094-.67-2.652-.67-1.493 0-2.615.658-1.118.655-1.738 1.838-.617 1.183-.617 2.775v1.761q0 2.58 1.352 4.016 1.351 1.436 3.786 1.436 1.221 0 2.205-.394.98-.39 1.627-1.11.643-.717.846-1.681z\"},\"child\":[]}]})(props);\n};\nexport function SiRemedyentertainment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.717 5.245v6.613a3.309 3.309 0 0 0 3.306-3.307 3.31 3.31 0 0 0-3.306-3.306Zm-4.594 0h-3.45v6.613h3.455a3.309 3.309 0 0 0 3.306-3.307 3.312 3.312 0 0 0-3.311-3.306Zm11.448 9.915v-1.507a8.578 8.578 0 0 1-2.714 2.379l2.714 4.792v-2.878L24 24h-7.574l-2.709-4.789V24h-1.656l-3.907-6.897H5.673V24H0V0h9.123a8.5 8.5 0 0 1 4.589 1.337V0a8.551 8.551 0 0 1 6.859 3.441V1.939a8.527 8.527 0 0 1 3.133 6.612 8.516 8.516 0 0 1-3.133 6.609Z\"},\"child\":[]}]})(props);\n};\nexport function SiRemix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.511 18.508c.216 2.773.216 4.073.216 5.492H15.31c0-.309.006-.592.011-.878.018-.892.036-1.821-.109-3.698-.19-2.747-1.374-3.358-3.55-3.358H1.574v-5h10.396c2.748 0 4.122-.835 4.122-3.049 0-1.946-1.374-3.125-4.122-3.125H1.573V0h11.541c6.221 0 9.313 2.938 9.313 7.632 0 3.511-2.176 5.8-5.114 6.182 2.48.497 3.93 1.909 4.198 4.694ZM1.573 24v-3.727h6.784c1.133 0 1.379.84 1.379 1.342V24Z\"},\"child\":[]}]})(props);\n};\nexport function SiRemovedotbg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.729 13.55-1.903-.995-9.134 4.776a1.497 1.497 0 0 1-1.383.002l-9.137-4.778-1.903.995a.5.5 0 0 0 0 .888l11.499 6.011a.495.495 0 0 0 .462 0l11.499-6.011a.5.5 0 0 0 0-.888zM.269 10.447l11.499 6.013a.495.495 0 0 0 .462 0l11.499-6.013a.5.5 0 0 0 0-.887l-11.5-6.012a.505.505 0 0 0-.462 0L.268 9.559a.5.5 0 0 0 .001.887z\"},\"child\":[]}]})(props);\n};\nexport function SiRenault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.463 11.99l-4.097-7.692-.924 1.707 3.213 5.985-5.483 10.283L4.69 11.99 11.096 0H9.27L2.882 11.99 9.269 24h1.807zm3.655 0L14.711 0h-1.807L6.517 11.99l4.117 7.712.904-1.707-3.193-6.005 5.463-10.263L19.29 11.99 12.904 24h1.807Z\"},\"child\":[]}]})(props);\n};\nexport function SiRender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.263.007c-3.121-.147-5.744 2.109-6.192 5.082-.018.138-.045.272-.067.405-.696 3.703-3.936 6.507-7.827 6.507-1.388 0-2.691-.356-3.825-.979a.2024.2024 0 0 0-.302.178V24H12v-8.999c0-1.656 1.338-3 2.987-3h2.988c3.382 0 6.103-2.817 5.97-6.244-.12-3.084-2.61-5.603-5.682-5.75\"},\"child\":[]}]})(props);\n};\nexport function SiRenovate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 12s5.372 12 12 12 12-5.371 12-12S18.63 0 12 0zM9.973 5.046L8.827 3.9l1.146-1.146 3.33 3.33-1.146 1.147-1.085-1.086L9.858 7.36 8.766 6.267 9.98 5.053zM6.445 3.933l1.147 1.146-1.147 1.144L5.3 5.077zM2.98 9.689L1.833 8.543l1.146-1.146 1.146 1.146zm2.283 2.323l-1.17-1.17 1.146-1.146 1.147 1.146L7.568 9.66l-1.123-1.12L5.3 7.391l1.146-1.146 2.27 2.269 1.143-1.144 1.062 1.062-1.18 1.181-3.438 3.439zm3.726 3.406a.35.35 0 01-.494 0l-1.58-1.578a.35.35 0 010-.494l6.668-6.669a.35.35 0 01.495 0l1.577 1.578a.35.35 0 010 .494zM19.81 19.01c-.24.248-.46.513-.76.7-.325.204-.951.15-1.22-.133-.127-.134-.263-.26-.392-.39-.877-.876-1.749-1.755-2.63-2.627-.274-.272-.433-.593-.347-.965.038-.157.134-.32.258-.504-.227-.225-.527-.549-.764-.802a1.687 1.687 0 01-.298-.42c-.236-.499-.096-.932.272-1.31.422-.43.853-.855 1.28-1.282l2.238-2.236c.045-.044.09-.084.13-.13.105-.13.105-.259.006-.39-.03-.04-.068-.075-.105-.112-.399-.399-.797-.797-1.196-1.193-.035-.036-.075-.07-.112-.106-.092-.082-.235-.077-.338-.005-.072.052-.138.115-.222.186l-.549-.535c.361-.6 1.163-.731 1.671-.258.504.467.99.952 1.458 1.454a1.132 1.132 0 01-.033 1.556l-.738.738-2.824 2.822a1.515 1.515 0 00-.085.09c-.159.175-.164.339.003.51.248.258.504.509.776.783.23-.164.457-.26.726-.256.305.005.553.122.764.333.52.523 1.043 1.043 1.564 1.564.464.464.911.942 1.394 1.385.392.36.525 1.064.073 1.533z\"},\"child\":[]}]})(props);\n};\nexport function SiRenpy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.166 0S6.908 1.035 6.25 4.744C4.885 5.647 4.194 6.368 4.19 6.66c0 .023.02.042.031.063.115-.054 5.565-2.614 9.422-2.967a8.31 8.31 0 01.707-.03c1.8-.007 4.532.365 4.569.37-.063-.269-1.722-1.02-2.817-1.217C13.504.009 10.166 0 10.166 0zm8.754 4.096c-.039-.003-3.665-.261-5.342-.096-3.94.388-9.242 2.675-9.356 2.725.16.27 1.288.38 1.848.384-.085 1.63-.804 4.532-.674 4.553.09.014.295-.547.295-.547s-.105.322-.201.692c.404-.02.597-.04.851-.018.057.005.143.01.184.078.134-.26.137-.494.137-.494s.056.211.043.494c.096-.082.209-.316.209-.316s-.009.201-.018.324c.08.048.213.033.213.033a6.8 6.8 0 01-.092.592c-.062.312-.16.488-.4.803-.297.002-.617.244-.748.57-.02.17.246.37.246.37l-.39 1.896a1.743 1.743 0 00-.583.937s-.078.912-.013 1.23c.04.202 1 .846 1.671.89.397.025 1.19-.618 1.19-.618l.506-.049c.276.346.528.441.931.553l.11.34s-.182.149-.182.26c0 .11.197.214.197.214s-1.108.156-1.074 1.53c.018.728 1.01 1.074 1.824 1.105.855.033 2.012-.513 2.012-.513s.184.066.412.048c.262-.02.549-.205.549-.205s-.426.331-.436 1.268c-.002.25.172.537.364.7.114.095.3.17.412.171.173.001-.359-.495-.375-.813-.028-.541.69-.626 1.135-.626.471-.001 1.812.614 2.82.626 1.57.02 2.583-1.212 2.613-2.16.037-1.14-.951-1.834-1.304-2.21-.052-.233-.324-.722-.604-.782-.487-.104-.963.09-.963.09s-.112-.03-.223-.088c.794-1.087.876-1.977.887-2.728.032-2.214-1.539-3.268-1.762-3.39.371-.38.53-.64.622-.847a27.5 27.5 0 00-.18 1.051l.369-.326v.379s.44-.45.504-.914c.039.377.021.914.021.914s.552-.561.737-1.92c.035.862.066 1.508.066 1.508s.29-1.837.192-3.75c-.048-.928-.144-2.02-.47-2.746.825-.647 1.245-.959 1.227-1.16 0-.004-.007-.009-.007-.012zM10.504.25s.961.233 1.406.578c.737.573 1.562 1.75 1.562 1.75s-.98-1.165-1.625-1.625C11.451.67 10.504.25 10.504.25zm-.516.031s-.72.785-1 1.235c-.42.672-1 2.156-1 2.156s.358-1.511.766-2.156C9.064 1.024 9.988.28 9.988.28zm3.914 2.56c.813.013 1.465.054 1.465.054s-2.596.027-3.867.253C9.48 3.508 6.77 4.686 6.77 4.686S9.273 3.36 11.478 2.96c.638-.116 1.611-.132 2.424-.12zm-3.031 3.07s-.122.283-.23.552c-.056-.01-.112-.027-.165-.026.19-.26.395-.527.395-.527zm1.293.01s-.513 1.13-.598 2.433c.17-.534.299-.83.299-.83s-.064.815.12 1.425c.131-1.169.774-1.955.774-1.955s-.209.81-.12 1.37c.107-.826.398-1.69.398-1.69s-.187 1.808.209 2.64c.385-.368.718-1.193.718-1.193s.074.246.045.508c.506-.967.452-2.574.452-2.574s.122.406.26.998c-.19.13-.315.271-.315.271s.136-.113.326-.215c.08.347.155.75.223 1.176-.005 0-.009-.004-.014-.004-.62-.006-.944.26-1.047.594-.288.935.01 1.18.453 1.18.836-.001.961-1.149.961-1.149s.119.33.094.57c-.01.104-.102.274-.102.274l.336-.242s-.092-.74-.394-1.069c.145-.587.24-1.068.285-1.42.05.023.097.052.143.085.063.634.133 1.446.117 2.066.171-.286.31-.586.31-.586l.01.52s-.344.88-.906 2.033c-1.185.85-1.903 1.111-3.17 1.181-.478.027-1.305-.175-1.305-.175s-.556-1.118-1.037-1.106c-.288.007-.719.22-.719.22s-.542-1.166-.232-4.009c.041-.38.674-.928.674-.928s-.258.515-.414 1.284a5.42 5.42 0 01-.116.14s.093-.094.112-.115a5.608 5.608 0 00-.102.713c.123-.289.29-.541.29-.541s-.064.57.12.84c.355-.915.75-1.59 1.063-2.053.013-.003.028-.012.04-.014.053-.009.122.01.183.016a5.67 5.67 0 00-.354 1.531c-.886.086-1.043 1.293-1.043 1.293l.324.309s-.104-.216-.105-.34c.273.375.461.746 1.025.74 1.124-.013.951-1.56.951-1.56l.07.023s-.376-.51-1.171-.477l-.006.002a8.303 8.303 0 01.851-1.384c.128.051.16.068.252.115-.154.395-.29.859-.27 1.312.138-.467.311-.861.48-1.209l.074.037-.069-.048a9.273 9.273 0 01.567-1.012zm-.344.013s-.222.368-.42.863c-.08-.057-.105-.075-.219-.139.362-.464.639-.724.639-.724zm3.767.375l.067.644a.698.698 0 00-.117-.055c.031-.307.05-.59.05-.59zm-4.539 2.105c.068.002.135.05.17.123.05.1.024.214-.056.252-.08.04-.184-.01-.233-.111-.049-.1-.023-.214.057-.252a.133.133 0 01.062-.012zm4.04.106c.058.002.121.05.16.123.053.1.042.211-.024.25-.065.038-.162-.01-.215-.11-.053-.1-.042-.211.024-.25a.098.098 0 01.054-.013zm-3.83.714s-.004.734-.805.793c-.556.042-.805-.445-.805-.445l.106.04s.077-.066.156-.028c.089.043.097.168.097.168s.06.075.399.066c.633-.016.851-.594.851-.594zm3.824.102s-.145.637-.72.648c-.606.012-.48-.527-.48-.527s.058.343.5.379c.428.035.7-.5.7-.5zm-2.578 1.5c-.239-.003-.704.125-.704.125l.157.453-.016-.36s.347-.075.523-.077c.158-.003.47.054.47.054l-.063.406.25-.476s-.408-.123-.618-.125zm-2.915.318c.529-.084 1.037 1.046 1.133 1.166.174.217.616.38.672.696.064.359-.46.992-.46.992s-.046-.26-.212-.352c.102.179.102.446.102.446s-.103.755-1.406.976c-1.3.22-1.557-.389-1.557-.389s-.117-.312-.035-.691c-.157.168-.088.541-.088.541s-.828-.338-.943-.717c-.09-.295.188-.58.265-.879.133-.514.024-1.275.602-1.486.329-.12.848.067 1.093.022.285-.054.413-.257.834-.325zm.008.244c-.29.017-.447.375-.492.72-.049.374.14 1.124.14 1.124s-.104-.738-.046-1.101c.052-.33.177-.575.414-.579.446-.006.625.344.68.72.05.342.023 1.038.023 1.038s.095-.72.055-1.078c-.044-.382-.3-.87-.774-.844zm-1.726.227c-.355.066-.533.52-.532.941.002.478.547 1.317.547 1.317s-.414-.843-.414-1.297c0-.474.111-.744.407-.813.3-.069.584.2.734.563.129.312.101 1.008.101 1.008s.062-.714-.023-1.055c-.1-.402-.474-.728-.82-.664zm7.156.32c1.36.023 2.372 1.958 2.365 2.94-.014 2.137-.426 2.398-1.25 3.58-1.214 1.742-4.018 3.821-5.699 3.9-1.064.05-1.817-.482-1.814-.912.006-1.313.996-1.441.996-1.441 2.425-.29 2.477-.52 4.117-2.2 1.587-1.625 1.808-3.87.273-4.552l-.379-.135s.227-1.2 1.39-1.18zm-1.022.098l.028.178s-.382.309-.477.867l-.783-.373.016-.315c.56-.016 1.216-.357 1.216-.357zm-3.046.314l.347.067-.021.187zm.486.051s.339.052.508.055c.22.003.68-.055.68-.055l.017.457-.271.592-.977-.713zm-1.846.297c-.104 0-.188.106-.187.236 0 .13.084.235.187.235.104 0 .19-.104.19-.235 0-.13-.085-.237-.19-.236zm.059.078c.05 0 .091.043.092.096 0 .054-.041.098-.092.098s-.093-.044-.092-.098c0-.053.042-.096.092-.096zm-1.307.164a.153.153 0 00-.056.012c-.098.037-.14.166-.092.287.046.121.162.19.26.152.098-.035.14-.165.093-.287-.036-.097-.12-.164-.205-.164zm.05.059c.041-.004.08.02.097.06.02.051-.003.108-.051.125-.048.02-.102-.007-.121-.058-.02-.05.003-.105.05-.123a.087.087 0 01.026-.004zm4.423.037l.732.768.254.199.22-.586s.868.283.89 1.662l-1.127-.623-.077.182 1.19.695c-.02.162-.054.325-.108.49-.02-.03-.04-.068-.06-.072-.562.133-1.453.492-1.453.492l.008 1.834c-.154.166-.308.337-.461.49l-.073-2.515.207-.586c-.042-.06-.314-.449-.377-.702-.029-.118.033-.245.004-.363-.035-.144-.186-.246-.209-.392-.017-.117-.014-.308.067-.348.044-.022.127.027.127.076 0 .088-.08.096-.082.154-.008.193.19.343.23.532.025.113-.022.235.006.347.049.197.222.479.28.569l.519-1.465-.695-.748-.352.375zm-5.953.053s-.26.496-.182.736c.124.381 1.002.84 1.002.84s-.59.247-.437 1.148c.12.714 1.125.633 1.125.633s.048.538-.004.932c-.055.407-.383.845-.383.845s.408-.413.474-.828c.027-.166.018-.5.018-.5s.093.16.125.246c.07.188.14.582.14.582s-.017-.385-.054-.574a6.832 6.832 0 00-.207-.687l.363-.047s.08.25.344.285c.161.022.488.004.488.004s.004.3-.05.457c-.095.27-.47.75-.47.75s-.255.372-.456.426c-.265.07-.682.025-.682.025s-.82.69-1.275.69c-.424 0-1.418-.674-1.508-.823-.105-.173.014-.723.01-1.084-.005-.327.597-.949.597-.949l.42-1.96s-.294-.213-.25-.348c.157-.478.645-.489.645-.489zm4.613.166l.758.254-.778-.16zm-.36.57l1.725 1.818-.178.43.075 2.584c-1.202 1.182-3.051 1.203-3.051 1.203s-.202-.063-.217-.183c-.013-.106.158-.235.158-.235-.171-.552-.21-.736-.224-1.34l-.155-.144s.312-.425.448-.701c.088-.18.075-.327.072-.598 0 0 .373-.11.535-.215.251-.162.201-.385.201-.385s.262.06.602-.015a.89.89 0 00.678-.856c.01-.811-.883-.953-.883-.953zm-1.285.035a.273.273 0 00-.103.526.273.273 0 01.209-.45c.035.001.07.008.101.022a.273.273 0 00-.207-.098zm-1.148.227a.273.273 0 00-.273.273c0 .11.067.208.168.25a.273.273 0 01.21-.447c.035 0 .07.008.102.021a.273.273 0 00-.207-.097zm2.135.263s.699.024.857.76c.081.377-.301.828-.767.881-.111.013-.409-.037-.409-.037s-.054-.114-.154-.115c-.227-.003-.342.138-.72.185-.3.038-.386-.011-.575.022-.214.037-.267.207-.267.207s-.325.063-.524.066c-.771.014-.883-.294-.941-.74-.083-.634.486-.797.486-.797s.025.108.35.258l-.23.068.06.264-.215.066.027.287.254-.027.045.26.266-.012-.051-.303.227-.05.025-.442c.218.039.474.063.826.033.345-.028.602-.147.82-.28a.671.671 0 00-.056.269c0 .38.316.687.707.687.39 0 .707-.308.707-.687a.697.697 0 00-.87-.668c.075-.089.122-.155.122-.155zm3 .188l1.1.615c0 .028-.009.058-.01.086l-1.13-.644zm-2.807.037c.05.002.1.02.137.06l.01.01a.198.198 0 01-.008.28l-.477.447a.198.198 0 01-.279-.01l-.008-.01a.195.195 0 01.008-.277l.094-.09.033.074a.15.15 0 10.185.147.15.15 0 00-.125-.147l.01-.17.28-.261a.195.195 0 01.14-.053zm-.006.059a.15.15 0 10.016.3.15.15 0 00-.016-.3zm.244.34c.05.001.1.02.137.06l.01.01a.198.198 0 01-.008.28l-.476.446a.198.198 0 01-.28-.01l-.008-.01a.195.195 0 01.008-.277l.477-.447a.195.195 0 01.14-.053zm-.007.058a.15.15 0 10.002 0zm-3.008.047l.136.232-.109.024zm1.537.35a.081.081 0 00-.049.04l-.062.118a.087.087 0 00.035.117.088.088 0 00.117-.037l.06-.117a.085.085 0 00-.035-.116.089.089 0 00-.066-.006zm1.014.025a.15.15 0 10.002 0zm-1.483.057a.088.088 0 00-.05.043l-.061.117a.085.085 0 00.035.115.085.085 0 00.115-.035l.063-.12a.085.085 0 00-.037-.115.084.084 0 00-.065-.005zm5.397.357c.024.008.04.04.054.07a4.003 4.003 0 01-.285.608l-.765.279s-.015-.196-.028-.293c-.02-.148-.281-.172-.281-.172s.896-.376 1.305-.492zm-4.43.045c.06-.002.11.016.14.064.154.25-.203.55-.722.637-.66.111-.89-.2-.73-.437.09-.137.498-.035.675-.059.17-.023.455-.2.637-.205zm3.125.54c.077.01.193.031.197.124.007.138.028.414.028.414l.74-.27a7.746 7.746 0 01-.576.78l-.065-.365v.449c-.11.132-.216.258-.332.385zm-2.006.032c-.324.004-.646.04-.973.108-.128.183-.072.564-.072.564l2.133-.105s-.014-.334-.106-.487a5.44 5.44 0 00-.982-.08zm-.076.09c.263-.007.551.008.992.05.068.152.067.34.067.34l-1.934.087s-.014-.204.035-.387c.339-.053.577-.083.84-.09zm1.066.59s-.11.838-.023 1.32c-.462.113-1.205.137-1.828.11-.056-.511-.086-1.22-.086-1.22s-.08.55-.008 1.36c.714-.004 1.466-.006 2.031-.14-.067-.742-.086-1.43-.086-1.43zm-1.222.246s-.03.34-.028.512c.002.188.04.562.04.562s.045-.37.042-.555c-.002-.174-.054-.519-.054-.519zm.484.098s-.043.285-.043.43c0 .147.047.44.047.44s.028-.29.027-.437c0-.145-.031-.433-.031-.433zm-2.465.539l.133.105c-.003.25.006.502.098.79-.258-.034-.617-.217-.782-.45.298-.122.346-.167.551-.445zm8.694.078c.25.139.459.393.457.611-.003.254-.264-.15-.557-.404.233.249.397.632.215.637-.238.006-.255-.311-.602-.514-.184-.107-.496-.152-.496-.152s.371-.174.983-.178zm-1.073.273c.741-.002.851.642 1.137.64.313-.003.172-.28.172-.28s.106.151.21.136c0 0 1.301 1.029 1.321 1.989.022 1.08-1.257 2.173-2.312 2.164-1.381-.02-2.043-.67-3.008-.68-.725.034-1.213.328-1.227.727-.006.193.174.558.174.558s-.306-.258-.322-.527c-.041-.738.523-1.603 1.402-1.666.953-.11 1.383.232 2.613.322.48.035 1.162-.482 1.149-.766-.038-.823-1.73-.808-1.73-.808l.343-.309c-.023-1.231-.637-1.086-.637-1.086l.36-.406s.21-.007.355-.008zm-.808.516c.161-.025.325 0 .453.187.138.203.176.746.176.746s-.448.437-.735.547c-.01-.128-.007-.244-.023-.402-.013-.123-.172-.28-.362-.309v-.171c.175-.192.341-.392.49-.598zm-.563.674v1.513c-.136.058-.245.115-.414.172-.255.087-.544-.005-.805.063-.285.073-.53.26-.804.367-.409.16-.95.176-.95.176s1.708-.936 2.973-2.291zm.072.16c.127.025.282.153.288.256.012.26.022.344.03.504.158-.017.427-.262.427-.262s.042.256-.055.406c-.081.125-.349.271-.69.42zm.85.549s1.6.075 1.602.71c0 .4-.705.64-1.125.641-.571.002-1.54-.344-1.54-.344s.913-.39 1.032-.574c.097-.151.031-.433.031-.433z\"},\"child\":[]}]})(props);\n};\nexport function SiRenren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.66 9.553V5.254A6.794 6.794 0 0 0 1.606 16.34c2.379-1.152 4.042-3.755 4.054-6.787zm1.132 4.115c-.423 1.752-1.687 3.25-3.262 4.245a6.76 6.76 0 0 0 3.26.833 6.772 6.772 0 0 0 3.264-.833c-1.575-.996-2.84-2.494-3.262-4.245zm5.184-6.103a6.79 6.79 0 0 0-4.052-2.31V9.52c0 3.045 1.667 5.663 4.051 6.818a6.767 6.767 0 0 1-1.607-4.387 6.755 6.755 0 0 1 1.608-4.386zc1.003 1.183 1.655 2.714 1.655 4.387 0 1.674-.65 3.203-1.655 4.388 2.38-1.15 4.088-3.755 4.1-6.787V5.254a6.9 6.901 0 0 0-4.1 2.31zM18.34 9.52c0 3.046 1.667 5.663 4.053 6.82A6.793 6.793 0 0 0 18.34 5.255zm-1.132 4.148c-.423 1.752-1.687 3.25-3.263 4.245a6.76 6.76 0 0 0 3.262.833 6.772 6.772 0 0 0 3.263-.833c-1.575-.996-2.839-2.494-3.262-4.245z\"},\"child\":[]}]})(props);\n};\nexport function SiReplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 1.5A1.5 1.5 0 0 1 3.5 0h7A1.5 1.5 0 0 1 12 1.5V8H3.5A1.5 1.5 0 0 1 2 6.5ZM12 8h8.5A1.5 1.5 0 0 1 22 9.5v5a1.5 1.5 0 0 1-1.5 1.5H12ZM2 17.5A1.5 1.5 0 0 1 3.5 16H12v6.5a1.5 1.5 0 0 1-1.5 1.5h-7A1.5 1.5 0 0 1 2 22.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiRepublicofgamers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3906 5.5833c-1.3467.0115-3.4338.19541-5.9375.97657-1.6024.49851-3.916 2.74203-8.22459 6.90823-.56973.3204-2.67017-.8912-3.88085-1.461 0 0 1.9929 3.1699 2.70507 4.0957 1.06825 1.46 3.02735 2.3145 3.02735 2.3145-.17804-.1781-1.53019-1.6029-1.92188-2.4219-.24926-.3917.03418-.9624 1.95703-2.3867C10.86 12.3268 17.0569 7.09358 23.0391 5.66924c0 0-.601-.09488-1.6485-.08593V5.5833ZM24 7.7708c-2.0653.21366-4.06.81878-5.9473 1.70899C14.2783 11.2602 7.9043 15.8177 7.9043 15.8177c.28486.178.5706.3556.85546.498 3.06234 1.3531 7.58484 2.1716 8.43944 1.8867 2.3858-.7833 5.056-5.8026 5.875-8.1172 0 0-2.4933.9968-5.0215 2.1719-2.1009.9971-4.414 2.1368-4.414 2.1368l5.875-1.7813s-1.5676 3.7036-3.6328 4.1309c-2.0653.4273-5.6973-1.0332-5.6973-1.0332.2849-.2493 4.1302-3.0629 13.1035-6.73051.3917-.28487.6417-.74608.7129-1.20898V7.7708ZM0 11.2942c.35608.9615.8194 1.8525 1.35352 2.7071.64094.819 3.27477 1.4952 3.63086 1.5664C3.34638 14.4282 0 11.2942 0 11.2942Z\"},\"child\":[]}]})(props);\n};\nexport function SiRescript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.29 1.8c-.3-.4-.6-.7-.9-.9-1.3-.9-2.899-.9-6.098-.9H7.696C4.498 0 2.9 0 1.8.8c-.4.3-.7.6-1 1C0 2.9 0 4.5 0 7.7v8.6c0 3.2 0 4.8.8 5.9.3.4.6.7.9.9 1.199.9 2.798.9 5.996.9h8.596c3.199 0 4.798 0 5.898-.8.4-.3.7-.6.9-.9.799-1.1.799-2.7.799-5.9V7.7c.2-3.2.2-4.8-.6-5.9ZM11.194 16.5c0 .2 0 .5-.1.8 0 .2-.1.3-.1.5-.1.1-.2.3-.4.5s-.4.3-.6.4c-.3.1-.7.1-1.399.1-.8 0-1.1 0-1.4-.1-.4-.2-.699-.5-.899-.9-.1-.3-.1-.7-.1-1.4v-8c0-.9 0-1.4.2-1.7.2-.3.4-.5.8-.7.3-.2.8-.2 1.699-.2h2.299zm5.097-4.9c-1.599 0-2.798-1.3-2.798-2.8 0-1.6 1.3-2.8 2.798-2.8 1.5 0 2.8 1.3 2.8 2.8 0 1.5-1.3 2.8-2.8 2.8z\"},\"child\":[]}]})(props);\n};\nexport function SiRescuetime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m24 7.626v8.749c0 .597-.485 1.092-1.091 1.092h-5.447v5.452c0 .596-.485 1.092-1.091 1.092h-8.742c-.596 0-1.091-.486-1.091-1.092v-5.452h-5.447c-.596 0-1.091-.485-1.091-1.092v-8.749c0-.597.485-1.092 1.091-1.092h5.447v-5.452c0-.596.485-1.092 1.091-1.092h8.742c.596 0 1.091.485 1.091 1.092v5.452h5.447c.596 0 1.091.495 1.091 1.092zm-3.325 4.339-2.192-1.649.333 1.042-4.891-.344c.152.304.243.638.243.992 0 .343-.081.667-.213.95l4.871-.364-.323 1.022zm-7.579.03-.495-8 1.021.324-1.647-2.185-1.647 2.195 1.04-.334-.454 8c0 .597.485 1.093 1.091 1.093.596 0 1.091-.486 1.091-1.093z\"},\"child\":[]}]})(props);\n};\nexport function SiResearchgate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.586 0c-.818 0-1.508.19-2.073.565-.563.377-.97.936-1.213 1.68a3.193 3.193 0 0 0-.112.437 8.365 8.365 0 0 0-.078.53 9 9 0 0 0-.05.727c-.01.282-.013.621-.013 1.016a31.121 31.123 0 0 0 .014 1.017 9 9 0 0 0 .05.727 7.946 7.946 0 0 0 .077.53h-.005a3.334 3.334 0 0 0 .113.438c.245.743.65 1.303 1.214 1.68.565.376 1.256.564 2.075.564.8 0 1.536-.213 2.105-.603.57-.39.94-.916 1.175-1.65.076-.235.135-.558.177-.93a10.9 10.9 0 0 0 .043-1.207v-.82c0-.095-.047-.142-.14-.142h-3.064c-.094 0-.14.047-.14.141v.956c0 .094.046.14.14.14h1.666c.056 0 .084.03.084.086 0 .36 0 .62-.036.865-.038.244-.1.447-.147.606-.108.385-.348.664-.638.876-.29.212-.738.35-1.227.35-.545 0-.901-.15-1.21-.353-.306-.203-.517-.454-.67-.915a3.136 3.136 0 0 1-.147-.762 17.366 17.367 0 0 1-.034-.656c-.01-.26-.014-.572-.014-.939a26.401 26.403 0 0 1 .014-.938 15.821 15.822 0 0 1 .035-.656 3.19 3.19 0 0 1 .148-.76 1.89 1.89 0 0 1 .742-1.01c.344-.244.593-.352 1.137-.352.508 0 .815.096 1.144.303.33.207.528.492.764.925.047.094.111.118.198.07l1.044-.43c.075-.048.09-.115.042-.199a3.549 3.549 0 0 0-.466-.742 3 3 0 0 0-.679-.607 3.313 3.313 0 0 0-.903-.41A4.068 4.068 0 0 0 19.586 0zM8.217 5.836c-1.69 0-3.036.086-4.297.086-1.146 0-2.291 0-3.007-.029v.831l1.088.2c.744.144 1.174.488 1.174 2.264v11.288c0 1.777-.43 2.12-1.174 2.263l-1.088.2v.832c.773-.029 2.12-.086 3.465-.086 1.29 0 2.951.057 3.667.086v-.831l-1.49-.2c-.773-.115-1.174-.487-1.174-2.264v-4.784c.688.057 1.29.057 2.206.057 1.748 3.123 3.41 5.472 4.355 6.56.86 1.032 2.177 1.691 3.839 1.691.487 0 1.003-.086 1.318-.23v-.744c-1.031 0-2.063-.716-2.808-1.518-1.26-1.376-2.95-3.582-4.355-6.074 2.32-.545 4.04-2.722 4.04-4.9 0-3.208-2.492-4.698-5.758-4.698zm-.515 1.29c2.406 0 3.839 1.26 3.839 3.552 0 2.263-1.547 3.782-4.097 3.782-.974 0-1.404-.03-2.063-.086v-7.19c.66-.059 1.547-.059 2.32-.059z\"},\"child\":[]}]})(props);\n};\nexport function SiResend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.023 0v24h5.553v-8.434h2.998L15.326 24h6.65l-5.372-9.258a7.652 7.652 0 0 0 3.316-3.016c.709-1.21 1.062-2.57 1.062-4.08 0-1.462-.353-2.767-1.062-3.91-.709-1.165-1.692-2.079-2.95-2.742C15.737.331 14.355 0 12.823 0Zm5.553 4.87h4.219c.731 0 1.349.125 1.851.376.526.252.925.618 1.2 1.098.274.457.412.994.412 1.611S15.132 9.12 14.88 9.6c-.229.48-.572.856-1.03 1.13-.434.252-.948.38-1.542.38H7.576Z\"},\"child\":[]}]})(props);\n};\nexport function SiResharper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0H0v24h24V0ZM3.006 19.476h9v1.5h-9v-1.5Zm9.824-9.392h-.98V8.432h1.264l.324-1.908h-1.136V4.872h1.416l.324-1.864h1.704l-.332 1.864h1.88l.324-1.864h1.7l-.304 1.864h.98v1.652h-1.28l-.324 1.908h1.136v1.652h-1.42l-.336 1.936h-1.7l.332-1.936h-1.868l-.32 1.936h-1.72l.336-1.936ZM3.014 3.008H7.15c1.144 0 2.021.304 2.632.912.529.553.808 1.3.772 2.064v.028a2.802 2.802 0 0 1-.536 1.784 3.065 3.065 0 0 1-1.404.992l2.204 3.224h-2.32L6.63 9.24H5.014v2.772h-2V3.008Zm13.672 5.424.328-1.908h-1.876l-.32 1.908h1.868ZM7.014 7.408c.415.014.821-.129 1.136-.4a1.2 1.2 0 0 0 .4-.928v-.028a1.156 1.156 0 0 0-.4-.968 1.836 1.836 0 0 0-1.148-.32H5.014v2.592l2 .052Z\"},\"child\":[]}]})(props);\n};\nexport function SiResurrectionremixos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 3.53l-9.952.078C9.142 3.647 6.994 8.265 0 16.345c1.569.753 3.323 1.24 4.338.119 1.703-1.883 4.275-5.48 7.154-8.346 1.793-1.784 6.01-.865 9.95-1.23 1.351-.125 2.41-2.48 2.558-3.359zm-.147 6.076l-7.326.044c-4.39 0-5.38 2.492-11.91 10.24 1.194.563 3.28.84 3.763.257 1.78-2.158 2.506-3.51 5.36-6.362 1.657-1.658 4.39-.687 7.86-1.01 1.267-.12 2.132-2.449 2.253-3.169z\"},\"child\":[]}]})(props);\n};\nexport function SiRetool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2.2A2.2 2.2 0 0 1 2.2 0h8.6A2.2 2.2 0 0 1 13 2.2v1.7A1.1 1.1 0 0 1 11.9 5H1.1A1.1 1.1 0 0 1 0 3.9V2.2zm0 6.9A1.1 1.1 0 0 1 1.1 8h20.7a2.2 2.2 0 0 1 2.2 2.2v5.7a1.1 1.1 0 0 1-1.1 1.1H2.2A2.2 2.2 0 0 1 0 14.8V9.1zm11 12a1.1 1.1 0 0 1 1.1-1.1h10.8a1.1 1.1 0 0 1 1.1 1.1v.7a2.2 2.2 0 0 1-2.2 2.2h-8.6a2.2 2.2 0 0 1-2.2-2.2v-.7z\"},\"child\":[]}]})(props);\n};\nexport function SiRetroarch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.84 5.76L8.4 7.68H5.28l-.72 2.88H2.64l.72-2.88H1.44L0 13.44h3.84l-.48 1.92h3.36L4.2 18.24h2.82l2.34-2.88h5.28l2.34 2.88h2.82l-2.52-2.88h3.36l-.48-1.92H24l-1.44-5.76h-1.92l.72 2.88h-1.92l-.72-2.88H15.6l1.56-1.92h-2.04l-1.68 1.92h-2.88L8.88 5.76zm.24 3.84H9v1.92H7.08zm7.925 0h1.92v1.92h-1.92Z\"},\"child\":[]}]})(props);\n};\nexport function SiRetropie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.923 0a3.59 3.59 0 0 0-1.531 6.839c.04.475.18 2.156.315 3.874a1.356 1.356 0 0 1-.126.016c-.25.016-.499-.027-.748-.007-.32.024-.59.197-.914.197-.298 0-.608-.006-.88.136-.446.232-1.106.086-1.474.467-.298.308-.859.153-1.199.475-.088.083-.101.222-.213.26-.126.043-.257.07-.383.113-.247.083-.51.226-.607.486-.061.166.022.188-.146.257a1.38 1.38 0 0 0-.33.182c-.182.141-.231.336-.258.568-.002.017.003.315.003.314a.918.918 0 0 0-.221.256c-.133.235-.107.484-.009.728.107.264.198.364.209.636-.012.13.05.266.098.383.192.47.307.835.831.884l1.48 3.964C6.564 23.015 9.25 24 11.949 24c2.72 0 5.448-1.001 6.204-2.986l1.522-4.002c.327-.06.603-.178.726-.538.086-.189.174-.393.202-.6a.674.674 0 0 0-.01-.249c.062-.08.123-.15.167-.243.211-.445.162-.964-.268-1.25.114-.407-.014-.695-.385-.91-.188-.109-.29-.091-.347-.296-.053-.19-.14-.339-.307-.437-.215-.126-.458-.15-.684-.243-.093-.242-.33-.385-.565-.462-.195-.064-.398-.073-.594-.126-.203-.054-.317-.242-.524-.318-.225-.081-.463-.089-.698-.113-.253-.027-.43-.18-.669-.243-.253-.066-.502-.05-.758-.065-.258-.015-.476-.15-.73-.182-.202-.026-.403-.009-.606-.001a2.01 2.01 0 0 1-.474-.053c.136-1.721.266-3.391.3-3.843A3.59 3.59 0 0 0 11.924 0zm.95.826c.292-.007.684.158 1.009.518.518.573.59 1.257.332 1.397-.261.145-.741-.145-1.187-.529-.438-.388-.721-.863-.536-1.193.068-.123.207-.19.382-.193zM10.766 6.99a3.584 3.584 0 0 0 2.312 0c-.197 2.54-.459 5.87-.486 6.08-.014.083-.098.176-.218.242a1 1 0 0 1-.464.102c-.027 0-.664-.005-.68-.409-.032-.825-.342-4.563-.464-6.015zm2.371 3.856c.077.017.156.032.237.04.302.025.597-.048.899.015.137.028.25.101.385.134.168.04.339.047.511.043a1.68 1.68 0 0 1 .463.052c.164.044.273.156.43.204.352.106.793.02 1.095.254.059.045.08.113.145.148.068.036.143.061.218.082.13.035.265.046.396.074.151.032.311.082.43.178a.31.31 0 0 1 .12.197c.009.072.088.1.156.13.215.094.453.11.657.232a.46.46 0 0 1 .205.227l.006.02.002.006.01.044c.004.034.014.132.027.222.057.04.12.073.186.099.18.071.474.207.537.4a.208.208 0 0 1 .003.007l.004.023a.24.24 0 0 1-.001.124c-.02.075-.066.238-.095.366.105.077.228.133.317.23.046.05.081.11.1.172l.001.001.002.007.007.03c.046.185-.041.53-.136.636a2.1 2.1 0 0 0-.182.253.44.44 0 0 1 .054.166l.002.018v.016l-.001.029-.002.012-.003.018a2.249 2.249 0 0 1-.18.53c-.12.387-.574.307-.864.408-.028.154-.164.81-.284.965-.237.305-.633.282-.969.27a1.17 1.17 0 0 0-.503.089.668.668 0 0 0-.2.13c-.078.075-.09.155-.121.254-.108.352-.47.512-.795.543-.271.025-.509-.057-.772-.102a1.548 1.548 0 0 0-.773.058.87.87 0 0 0-.322.187c-.086.082-.154.173-.253.24a1.3 1.3 0 0 1-.735.211c-.261 0-.525-.066-.754-.2a1.485 1.485 0 0 0-.747-.183c-.255 0-.522.05-.747.183a1.49 1.49 0 0 1-.757.203c-.337 0-.694-.112-.926-.38-.182-.211-.457-.3-.72-.328-.378-.04-.718.123-1.09.123-.33 0-.713-.112-.889-.431-.067-.123-.067-.267-.17-.367-.135-.132-.33-.192-.509-.214-.354-.044-.702.068-1.03-.14a.586.586 0 0 1-.263-.372c-.023-.084-.161-.562-.18-.663-.029-.15-.484-.048-.637-.135-.138-.08-.208-.29-.253-.389-.044-.098-.18-.405-.19-.5l.006-.005c-.001-.012-.004-.023-.004-.036a.423.423 0 0 1 .104-.283.697.697 0 0 1-.199-.194c-.044-.085-.255-.454-.19-.64l.005-.004a.523.523 0 0 1 .18-.262c.069-.057.16-.1.237-.154a.476.476 0 0 1-.058-.054c-.1-.136-.081-.427.014-.566l.012-.02.002-.003.003-.002a.254.254 0 0 1 .029-.036c.117-.124.279-.185.437-.248a.931.931 0 0 0 .187-.097c.009-.088.003-.189.01-.246a.27.27 0 0 1 .093-.178c.16-.17.522-.23.707-.296a.817.817 0 0 0 .22-.108c.04-.03.036-.133.07-.18.09-.126.259-.19.408-.23.167-.045.342-.053.508-.1a.778.778 0 0 0 .233-.098c.055-.039.082-.113.146-.154.323-.205.74-.116 1.093-.237.125-.043.211-.136.341-.177.176-.056.37-.073.555-.064.164.008.334-.009.493-.05.142-.035.26-.11.408-.136.327-.057.652.03.98-.02.043.551.083 1.081.11 1.475-.67.17-1.125.495-1.125.87 0 .553.983 1 2.195 1 1.212 0 2.195-.447 2.195-1 0-.366-.435-.683-1.08-.858.034-.404.072-.866.123-1.508zm3.865 2.053c-.318 0-.626.059-.891.17-.375.157-.6.407-.634.703a.645.645 0 0 0 .022.252l.02.409.01.2.002.027a1.288 1.288 0 0 0-.347-.207 2.306 2.306 0 0 0-.892-.17c-.319 0-.627.058-.892.169-.375.157-.6.407-.633.703a.645.645 0 0 0 .023.258l.02.402.01.201a.467.467 0 0 0 .073.268l.026.044c.117.214.336.388.63.501.232.09.493.137.754.137.34 0 .662-.078.93-.226.324-.178.51-.436.526-.725a.7.7 0 0 1 .006-.074c.004-.03.008-.058.011-.119l.023-.416a.656.656 0 0 0 .026-.173c0-.016-.003-.032-.004-.049.116.106.263.195.438.262.233.09.493.137.755.137.34 0 .661-.078.93-.226.324-.179.51-.436.525-.725.002-.042.004-.056.006-.074a.948.948 0 0 0 .011-.12l.023-.41a.656.656 0 0 0 .026-.178c.001-.299-.192-.56-.543-.735a2.312 2.312 0 0 0-.99-.216zm0 .27a2.03 2.03 0 0 1 .862.183c.164.082.402.243.401.498 0 .09-.033.175-.092.254l-.134.116a1.033 1.033 0 0 1-.217.143c-.01.004-.018.01-.028.013a2.06 2.06 0 0 1-.788.149c-.293 0-.571-.056-.807-.16l-.025-.01a1.037 1.037 0 0 1-.207-.14l-.132-.114a.414.414 0 0 1-.09-.299c.023-.194.19-.366.47-.484.232-.098.505-.149.787-.149zm-1.212 1.266c.074.06.16.112.256.157.017.011.037.017.054.024.268.128.58.198.906.198.327 0 .642-.068.912-.196l.023-.013a1.34 1.34 0 0 0 .274-.164c-.006.08-.011.077-.016.177-.012.228-.198.399-.385.502a1.68 1.68 0 0 1-.8.193 1.85 1.85 0 0 1-.658-.119c-.192-.074-.389-.194-.49-.38-.059-.103-.061-.08-.067-.194a57.658 57.658 0 0 0-.009-.185zm-1.498.117a2.03 2.03 0 0 1 .862.184c.164.08.401.242.4.497a.42.42 0 0 1-.093.255l-.132.115a1.03 1.03 0 0 1-.213.14 2.053 2.053 0 0 1-.82.165 2.02 2.02 0 0 1-.802-.157l-.03-.013a1.032 1.032 0 0 1-.207-.139l-.133-.116a.413.413 0 0 1-.089-.297c.022-.195.19-.367.47-.485a2.04 2.04 0 0 1 .787-.149zm-1.212 1.266c.08.064.173.122.28.17l.033.013c.268.127.577.196.903.196.327 0 .642-.067.912-.196l.025-.014c.103-.047.194-.102.271-.163-.005.08-.01.078-.016.177-.011.228-.197.4-.385.502a1.665 1.665 0 0 1-.8.193 1.82 1.82 0 0 1-.657-.119c-.192-.074-.389-.194-.491-.38-.058-.104-.06-.08-.066-.194l-.01-.185zm-8.06 2.297c.097.063.205.11.318.14.408.11 1.054-.132 1.236.345.208.541.85.741 1.381.698.43-.035 1.06-.306 1.41.092.404.46 1.092.576 1.665.425.525-.138.91-.457 1.478-.238.627.24 1.206.454 1.853.102.455-.247.623-.592 1.215-.492.522.089 1.02.2 1.503-.104.352-.22.362-.73.783-.78.37-.044.731.044 1.083-.139h.002l-.036.094-1.013 2.66c-.328.863-1.097 1.584-2.223 2.087-1.048.467-2.372.725-3.728.725-1.347 0-2.656-.255-3.686-.717-1.11-.498-1.866-1.217-2.188-2.08L5.02 18.115Z\"},\"child\":[]}]})(props);\n};\nexport function SiRevanced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.1 0a.28.28 0 0 0-.23.42l6.88 11.93a.28.28 0 0 0 .48 0L19.13.42A.28.28 0 0 0 18.9 0ZM.5 0a.33.33 0 0 0-.3.46L10.43 23.8c.05.12.17.2.3.2h2.54c.13 0 .25-.08.3-.2L23.8.46a.33.33 0 0 0-.3-.46h-2.32a.24.24 0 0 0-.21.14L12.2 20.08a.23.23 0 0 1-.42 0L3.03.14A.23.23 0 0 0 2.82 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiRevealdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.271 1.352a.774.774 0 0 0-.787.775v19.761c0 .49.45.857.93.758l6.676-1.382-2.77-.614-3.675.762V2.607l3.101.686 2.777-.574-6.097-1.35a.774.774 0 0 0-.155-.017zm15.315.002L5.145 4.344v15.092l14.43 3.195a.774.774 0 0 0 .94-.758V2.111a.773.773 0 0 0-.93-.757zM2.984 4.79l-2.367.49A.774.774 0 0 0 0 6.04v11.639a.774.774 0 0 0 .607.754l2.377.525V4.791zm18.034.252V6.23l1.822.405v11.011l-1.822.377v1.186l2.365-.49A.774.774 0 0 0 24 17.96V6.322a.774.774 0 0 0-.607-.754l-2.375-.525z\"},\"child\":[]}]})(props);\n};\nexport function SiReverbnation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 9.324l-9.143-.03L11.971.57 9.143 9.294 0 9.324h.031l7.367 5.355-2.855 8.749h.029l7.459-5.386 7.396 5.386-2.855-8.73L24 9.315\"},\"child\":[]}]})(props);\n};\nexport function SiRevoltdotchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.005 7.796c0 1.88-1.023 3.009-3.207 3.009h-3.615v-5.95H13.8c2.183 0 3.206 1.162 3.206 2.94zM.853 0l3.5 4.866v19.133h5.832v-9.06h1.398L16.563 24h6.583l-5.525-9.504a6.966 6.966 0 0 0 3.879-2.532 7 7 0 0 0 1.44-4.408C22.94 3.384 20.009 0 14.143 0h-9.79z\"},\"child\":[]}]})(props);\n};\nexport function SiRevolut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.9133 6.9566C20.9133 3.1208 17.7898 0 13.9503 0H2.424v3.8605h10.9782c1.7376 0 3.177 1.3651 3.2087 3.043.016.84-.2994 1.633-.8878 2.2324-.5886.5998-1.375.9303-2.2144.9303H9.2322a.2756.2756 0 0 0-.2755.2752v3.431c0 .0585.018.1142.052.1612L16.2646 24h5.3114l-7.2727-10.094c3.6625-.1838 6.61-3.2612 6.61-6.9494zM6.8943 5.9229H2.424V24h4.4704z\"},\"child\":[]}]})(props);\n};\nexport function SiRevue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.3 7.13c-1.62 0-3.42.871-4.196 2.558-.49 1.065.918 1.397.988 1.065.23-1.09 1.447-2.805 3.22-2.805.936 0 1.483.616 1.483 1.704 0 1.349-1.559 2.06-2.25 2.29.307-1.41.415-1.836.415-2.087 0-.554-.321-.646-.648-.646-.397 0-.684.29-.684.29.23.418-.159 1.904-.327 2.506-.203.73-.485 1.81-.661 2.496-.177.685 1.052.5 1.135.298.09-.22.326-1.027.54-1.876.358-.112.768-.27.768-.27.18 1.192 1.138 4.216 3.874 4.216 2.346 0 2.196-1.488 2.002-1.392-.235.118-.647.325-1.527.325-2.735 0-3.298-3.506-3.298-3.506s2.07-.873 2.07-2.644c0-1.774-1.445-2.521-2.903-2.521zM14.223 10c-.443 0-.781.383-.781.792 0 .674.552.693.542 1.236-.01.542-.876 2.082-1.46 2.082-.217 0-.251-.219-.251-.321 0-1.038.55-2.52.55-3.019 0-.47-.286-.59-.628-.59a.974.974 0 0 0-.703.287c.157.325.003 1.1-.172 1.846-.303.858-1.285 1.89-2.163 1.893-1.147.007-.98-1.2-.98-1.2s2.698.06 2.614-1.81c-.036-.787-.796-1.125-1.479-1.095-1.392.063-2.5 1.385-2.427 3.02.058 1.291 1.025 1.906 2.053 1.86.91-.04 1.59-.451 2.079-.93.064.537.402.937 1.049.937 1.687 0 3.021-2.429 3.021-3.935 0-.55-.289-1.052-.864-1.052zm8.326.117c-1.393.029-2.57 1.325-2.536 2.961.004.157.018.305.043.443-.18.236-.5.59-.789.59-.159 0-.218-.14-.218-.299 0-1.202.555-2.385.555-3.084 0-.424-.29-.546-.648-.546-.442 0-.688.288-.688.288.241.663-.616 3.641-1.518 3.641-.213 0-.25-.167-.25-.303 0-.893.551-2.388.551-3.057 0-.444-.296-.576-.646-.576-.414 0-.69.295-.69.295.298.572-.484 2.757-.484 3.39 0 .632.351 1.131.97 1.131 1.003 0 1.585-1.258 1.585-1.258s-.134 1.258 1.085 1.258c.625 0 1.122-.53 1.383-.884.321.602.95.897 1.803.88.612-.013 1.053-.189 1.393-.494.524-.472.175-1.195-.02-.982-.346.376-.781.664-1.263.674-.926.02-.814-1.161-.814-1.161s2.686.094 2.647-1.777c-.016-.788-.768-1.144-1.451-1.13zm-13.21.721c.165-.007.281.076.29.275.05 1.108-1.463 1.224-1.463 1.224.065-.542.574-1.472 1.174-1.499zm13.17.016c.184-.004.28.083.285.283.022 1.088-1.445 1.186-1.445 1.186.077-.54.496-1.455 1.16-1.469z\"},\"child\":[]}]})(props);\n};\nexport function SiRewe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.597 12.45h.025l.579-3.166c.066-.36.214-.488.63-.488h.58c.307 0 .481.118.481.395 0 .064-.009.135-.026.216l-1.278 5.285c-.078.357-.195.512-.635.512h-.696c-.396 0-.51-.138-.598-.495l-.799-3.449h-.015l-.807 3.455c-.081.363-.195.49-.588.49h-.697c-.449 0-.56-.145-.642-.497l-1.269-5.3c-.016-.082-.036-.153-.036-.216 0-.278.18-.396.49-.396h.69c.417 0 .57.126.635.488l.575 3.167h.015l.738-3.167c.085-.362.233-.488.63-.488h.653c.391 0 .543.126.63.488l.735 3.167zM.498 15.205c-.349 0-.498-.144-.498-.496V9.3c0-.355.15-.503.498-.503h1.835c1.984 0 2.736.747 2.736 2.02 0 .776-.42 1.425-1.35 1.75l1.467 2.025c.089.124.125.22.125.306 0 .205-.24.307-.508.307H3.72c-.32 0-.444-.126-.669-.49l-1.206-1.931h-.019v1.926c0 .353-.15.495-.51.495H.498zm19.479 0c-.35 0-.485-.127-.485-.478V9.285c0-.362.136-.49.485-.49h3.251c.356 0 .486.127.486.489v.462c0 .347-.13.478-.486.478h-1.867v1.061h1.583c.358 0 .484.13.484.49v.426c0 .348-.126.477-.485.477H21.36v1.095h2.143c.363 0 .497.133.497.49v.463c0 .351-.134.478-.497.478h-3.526zm-13.411 0c-.351 0-.498-.144-.498-.496V9.3c0-.355.147-.503.498-.503h3.211c.354 0 .504.149.504.503v.429c0 .347-.15.496-.504.496H7.928v1.06H9.49c.36 0 .511.146.511.507v.388c0 .35-.15.499-.51.499H7.927v1.094h2.131c.356 0 .51.146.51.512v.423c0 .352-.154.495-.51.495H6.566zM2.351 11.68c.557 0 .793-.234.793-.743s-.236-.745-.793-.745h-.526v1.488h.526Z\"},\"child\":[]}]})(props);\n};\nexport function SiRezgo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.147 16.705c-.015-3.076.004-6.175-.024-9.238 0-2.052.836-3.917 2.193-5.274A7.438 7.438 0 0 1 17.59 0c1.482.015 2.999.008 4.493.008v3.728c-1.494 0-3.012-.005-4.493.006a3.713 3.713 0 0 0-3.725 3.725c-.01 3.063.004 6.162.01 9.238zm-5.4-.633l-3.61.965c.845 3.15 3.287 5.236 6.274 6.253a13.74 13.74 0 0 0 4.026.704c1.385.039 2.78-.117 4.092-.469 3.31-.886 6.186-3 7.334-6.371l-3.538-1.199c-.699 2.053-2.574 3.374-4.76 3.96-.982.263-2.013.38-3.025.352a10 10 0 0 1-2.93-.514c-1.868-.636-3.378-1.87-3.862-3.681zM6.986 3.354a2.887 2.887 0 1 1-5.775 0 2.887 2.887 0 0 1 5.775 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiRhinoceros (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.823 3.103c-.1 0-.213.006-.34.017-.511.044-1.25.18-1.802.329a6.269 6.269 0 0 0-1.15.42c-.231.112-.33.178-.354.273-.023.094.028.217.16.436s.346.533.535.961c.19.428.356.97.361 1.651.006.68-.149 1.5-.245 1.962-.096.462-.133.568-.227.618-.094.05-.245.044-.525-.021-.281-.065-.69-.187-1.1-.259-.41-.072-.819-.093-1.122-.038-.304.056-.504.189-.645.369-.14.18-.224.406-.282.75A6.957 6.957 0 0 0 0 11.687c.005.317.047.49.136.584.088.094.223.109.492.054s.672-.18 1.224-.215a6.302 6.302 0 0 1 1.94.202c.685.182 1.353.49 1.95.93.598.438 1.127 1.007 1.566 1.593.438.586.787 1.189 1.004 1.541.217.353.304.455.372.42.068-.035.117-.207.145-.417a3.141 3.141 0 0 0-.02-.848 7.467 7.467 0 0 0-.32-1.365 5.617 5.617 0 0 0-.495-1.018c-.146-.247-.241-.408-.245-.51-.004-.103.085-.148.51-.315.424-.167 1.185-.457 1.958-.808.772-.351 1.556-.764 2.042-1.106.486-.341.674-.61.724-.937.05-.326-.039-.71-.16-1.076a6.93 6.93 0 0 0-.529-1.193A13.696 13.696 0 0 0 11.28 5.6a9.187 9.187 0 0 0-1.1-1.236c-.282-.255-.421-.31-.51-.29-.09.02-.131.115-.168.47-.037.356-.07.973-.144 1.559a7.468 7.468 0 0 1-.432 1.773 12.543 12.543 0 0 1-.99 1.982c-.388.64-.803 1.212-1.054 1.462-.25.25-.336.18-.477.064l-.486-.4c-.15-.125-.253-.213-.273-.293-.02-.08.045-.15.27-.448.227-.299.615-.825.96-1.478a7.75 7.75 0 0 0 .796-2.282 10.1 10.1 0 0 0 .095-2.338c-.044-.564-.124-.77-.306-.896-.137-.095-.332-.146-.638-.146zm6.48 7.034h-.012c-.084.01-.192.112-.415.294a6.86 6.86 0 0 1-1.017.7c-.458.257-1.038.507-1.51.734-.47.226-.831.429-1.004.712-.172.283-.155.648.04.85.194.204.566.246.883.259.318.013.58-.002.826.087.246.09.475.285.764.516.288.23.637.498.925.561.289.063.518-.079.766-.202.249-.124.516-.23.888-.225.371.005.847.12 1.318.37.47.248.938.63 1.184.866.247.236.272.327.245.362-.028.036-.108.018-.304-.14-.196-.157-.508-.454-.917-.688-.41-.234-.916-.404-1.4-.391-.482.013-.94.21-1.23.55-.29.34-.412.822-.546 1.164-.133.341-.28.543-.47.617-.19.074-.424.02-.703-.099-.28-.12-.604-.307-.874-.442-.269-.136-.484-.22-.62-.353-.136-.132-.195-.31-.203-.571-.01-.26.032-.6.05-.853.02-.25.018-.413-.038-.56a1.079 1.079 0 0 0-.232-.35c-.07-.07-.099-.075-.113-.058-.014.017-.012.058.01.158.023.1.067.26.05.581-.019.321-.098.803-.16 1.17-.062.366-.107.618-.02.808.087.191.306.322.707.54.4.22.982.527 1.518.855.537.327 1.027.673 1.562 1.089.534.415 1.112.9 1.5 1.238.39.339.588.532.742.59.154.059.264-.018.307-.138.044-.12.023-.285-.014-.429a1.174 1.174 0 0 0-.24-.46 4.92 4.92 0 0 0-.68-.704c-.287-.243-.614-.463-.803-.614-.19-.151-.242-.233-.212-.259.03-.026.14.004.302.108.162.103.375.28.612.459.237.178.499.356.733.584.235.228.443.506.583.706.14.201.214.324.294.372.08.049.165.022.277-.05a3.03 3.03 0 0 0 .426-.355c.178-.169.398-.393.551-.633.154-.24.242-.496.299-.772.056-.276.08-.572.247-.862.167-.29.476-.574.994-1.025.518-.451 1.244-1.07 1.891-1.664.648-.595 1.216-1.165 1.696-1.802.479-.638.87-1.342 1.067-1.743.199-.4.205-.498.14-.526-.063-.027-.198.015-.61.313-.414.297-1.106.849-1.886 1.43-.781.58-1.65 1.19-2.336 1.569-.686.378-1.19.524-1.55.562-.361.037-.58-.034-.724-.11-.143-.077-.21-.158-.224-.241-.013-.084.03-.17.135-.275.106-.106.277-.232.447-.392.17-.16.338-.354.468-.556.13-.202.22-.411.261-.592.042-.181.034-.333-.04-.376-.074-.043-.215.023-.376.11-.162.086-.343.192-.593.3a2.683 2.683 0 0 1-.92.235 1.626 1.626 0 0 1-1.088-.313c-.343-.26-.635-.71-.866-1.147-.23-.438-.398-.865-.512-1.12-.108-.242-.168-.33-.246-.33zm-2.215 4.075a.422.422 0 0 0-.294.115c-.094.086-.145.2-.034.338.112.137.385.297.636.469.252.172.481.357.666.42.184.064.323.006.402-.096.08-.102.1-.247-.003-.404-.103-.157-.327-.325-.564-.481-.238-.157-.488-.302-.681-.346a.574.574 0 0 0-.128-.015zm.252.208c.025 0 .053.003.083.01.118.026.272.115.418.211.145.096.283.2.333.289.05.089.014.163-.048.216a.255.255 0 0 1-.247.053c-.1-.031-.216-.126-.36-.219-.145-.093-.319-.184-.387-.268-.068-.084-.031-.162.029-.218a.26.26 0 0 1 .18-.074zm4.778 3.728c.211-.008.42.06.602.24.183.178.34.467.383.732.042.265-.03.505-.125.692a1.58 1.58 0 0 1-.289.397c-.074.074-.109.095-.14.095h-.003c-.033-.001-.062-.023-.208-.171a7.39 7.39 0 0 1-.573-.642c-.165-.22-.232-.383-.263-.568-.032-.185-.027-.39.082-.536.109-.146.323-.23.534-.239zm.093 1.111a.258.258 0 0 0-.153.046c-.058.041-.105.113-.093.185.012.073.085.146.174.255.089.11.195.255.264.335.068.08.1.093.127.091.029-.002.054-.018.086-.048a.349.349 0 0 0 .094-.157.518.518 0 0 0 .002-.316.668.668 0 0 0-.218-.282.476.476 0 0 0-.283-.109z\"},\"child\":[]}]})(props);\n};\nexport function SiRich (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.419 10.32v-.645c0-.531.437-.968.968-.968h3.225c.204 0 .395.065.552.175a2.295 2.295 0 0 0-.904.47h-2.873c-.177 0-.323.146-.323.323v3.224c0 .177.146.323.323.323h2.921l.048.067v.578h-2.969c-.531 0-.968-.437-.968-.968v-1.934h-5.13l.08.967h3.115v.645H4.423l.058.698c.651.192 1.323.309 2.001.347.901.038 1.789.229 2.625.564.138.04.244.146.288.276a4.183 4.183 0 0 0-1.771-.395H6.88c-.25 0-.485.065-.688.18a9.4449 9.4449 0 0 1-1.654-.286l.147 1.772c.267-.044.533-.095.798-.15.018.224.09.434.203.616-.314.067-.63.127-.947.179l.09 1.09c.03.332.31.589.643.591h2.101c-.335.14-.626.364-.846.645H5.472c-.666-.003-1.226-.519-1.285-1.183l-.548-6.556H2.358l.758 7.578c.081.821.78 1.453 1.605 1.451h1.565c.001.121.012.239.033.355-.293.04-.566.141-.806.29h-.792c-1.155.004-2.134-.882-2.246-2.032l-.794-7.933c-.001-.01-.001-.021-.001-.032 0-.088.036-.169.094-.228l2.58-2.58a.324.324 0 0 1 .228-.094h1.023a.9628.9628 0 0 1-.056-.323c0-.435.294-.819.713-.933a.9928.9928 0 0 1-.068-.357c0-.53.437-.967.968-.967h1.29c.531 0 .967.437.967.967 0 .099-.015.198-.045.293a.976.976 0 0 1 .436-.258.9719.9719 0 0 1-.068-.357c0-.531.437-.968.967-.968h1.29c.531 0 .968.437.968.968 0 .11-.019.219-.055.322h1.667c.331 0 .639.17.816.449a.9527.9527 0 0 1 .474-.126h2.58c.531 0 .968.436.968.967 0 .11-.019.219-.056.323h.461l-.282-.174 1.876-3.051h-2.645V3.87h.637a5.077 5.077 0 0 0-.027-.323c-.64-.002-.853-.011-1.57-.04l-.09-.004a2.6858 2.6858 0 0 1-.673-.089.4482.4482 0 0 1-.267-.189.4067.4067 0 0 1-.041-.282.455.455 0 0 1 .238-.274c.059-.032.12-.062.181-.089h-3.87v1.29h4.837v.645H2.579l1.087 1.766-.549.338-1.389-2.258a.3145.3145 0 0 1-.048-.169C1.68 1.802 3.205 0 5.227 0h.078c.403 0 .747.275.855.645h11.679c.107-.37.451-.645.854-.645h.078c2.023 0 3.548 1.802 3.548 4.192a.318.318 0 0 1-.067.196L20.191 7.74h.193c.53 0 .967.437.967.967 0 .224-.078.441-.22.614l1.083 1.082c.065.06.106.145.106.239 0 .011 0 .022-.001.032l-.794 7.933c-.11 1.131-1.059 2.006-2.188 2.032a2.053 2.053 0 0 0-.805-.29c.021-.116.032-.234.032-.355h.714c.824.002 1.524-.63 1.604-1.451l.76-7.578h-1.283l-.546 6.556c-.059.664-.62 1.18-1.287 1.183h-.403c-.094-.12-.201-.23-.319-.328v-.317h.722c.333-.002.613-.259.643-.591l.004-.054c-.578 0-1.099-.002-1.636-.018v-.645c.553.017 1.091.018 1.69.018l.08-.96c-.666.022-1.243.098-1.77.237v-.665c.549-.13 1.145-.201 1.824-.219l.081-.971c-.637.008-1.272.043-1.905.105v-.647a23.275 23.275 0 0 1 1.958-.103l.081-.969h-1.521c.134-.2.234-.417.298-.645h1.276l.081-.967h-1.276a2.2538 2.2538 0 0 0-.129-.645h2.079c.177 0 .322-.146.322-.323a.323.323 0 0 0-.322-.322.3248.3248 0 0 1-.323-.323c0-.177.146-.322.323-.322.177 0 .322-.146.322-.323a.323.323 0 0 0-.322-.322h-1.935a.3248.3248 0 0 1-.323-.323c0-.177.146-.322.323-.322.177 0 .322-.146.322-.323a.323.323 0 0 0-.322-.322h-2.58a.321.321 0 0 0-.277.161c-.057.1-.164.161-.279.161h-.089a.323.323 0 0 1-.322-.322c0-.177-.146-.323-.323-.323h-2.58a.323.323 0 0 1-.322-.322c0-.177.145-.323.322-.323.177 0 .323-.145.323-.322 0-.177-.146-.323-.323-.323h-1.29c-.177 0-.322.146-.322.323 0 .177.145.322.322.322.177 0 .323.146.323.323 0 .177-.146.322-.323.322h-.645a.323.323 0 0 0-.302.218.3227.3227 0 0 1-.305.215.327.327 0 0 1-.179-.054.3172.3172 0 0 0-.181-.056h-.645a.3248.3248 0 0 1-.323-.323c0-.177.146-.322.323-.322.177 0 .322-.146.322-.323a.323.323 0 0 0-.322-.322h-1.29c-.177 0-.323.145-.323.322 0 .177.146.323.323.323.177 0 .322.145.322.322 0 .177-.145.323-.322.323h-.645c-.177 0-.323.145-.323.322 0 .177.146.323.323.323.177 0 .322.145.322.322 0 .177-.145.323-.322.323H4.904c-.176 0-.322.145-.322.322 0 .177.146.323.322.323.177 0 .323.145.323.322 0 .177-.146.323-.323.323H4.26c-.177 0-.323.145-.323.322 0 .177.146.323.323.323h1.289a.3117.3117 0 0 0 .081-.013.3177.3177 0 0 1 .162 0c.026.007.053.012.08.013h2.58c.177 0 .322-.146.322-.323a.323.323 0 0 0-.322-.322h-.968V9.03h.968c.531 0 .967.436.967.967 0 .113-.019.222-.056.323h.056Zm3.225-6.45V1.29h-1.29v2.58h1.29Zm-10.309 0h1.609c.089-1.854.936-2.52 1.452-2.754A.2513.2513 0 0 0 5.55.89c0-.134-.11-.245-.244-.245h-.079C3.662.645 2.46 2.01 2.335 3.87Zm2.255 0h6.119V2.257c-1.154 0-2.459.001-3.508.003h-.077c.065.041.136.079.208.119.127.066.25.141.368.223a.43.43 0 0 1 .18.536.4527.4527 0 0 1-.258.228c-.223.079-.458.121-.696.123-.793.043-1.475.055-2.309.058-.012.102-.021.21-.027.323Zm14.663-.969c-.226-.759-.637-1.071-.917-1.198a.903.903 0 0 1-.434-.413h-4.613v.645c1.274 0 3.003 0 4.155.002h.055c.129-.006.259.004.385.032.259.037.451.267.44.528a.5407.5407 0 0 1-.265.373c.494.021.727.029 1.194.031ZM6.096 1.29a.8943.8943 0 0 1-.434.413c-.279.127-.691.439-.917 1.198.751-.003 1.383-.016 2.103-.054-.104-.06-.203-.129-.295-.207a.6246.6246 0 0 1-.235-.405c-.008-.263.164-.5.417-.572.132-.04.271-.056.409-.048h.055c1.051-.002 2.356-.003 3.51-.003V1.29H6.096Zm-3.315 9.03h.566a.9616.9616 0 0 1-.056-.323c0-.072.008-.143.024-.212l-.534.535Zm17.273-6.45h1.609C21.538 2.01 20.337.645 18.771.645h-.078a.245.245 0 0 0-.244.244c.002.099.063.188.154.226.516.235 1.362.901 1.451 2.755Zm-6.698 12.638c-.345.098-.701.162-1.062.19-.197.025-.395.047-.593.069-.056.004-.111.008-.167.014a3.995 3.995 0 0 0-.289-.618c.129-.015.257-.027.386-.037.193-.022.387-.043.58-.068.391-.027.776-.102 1.145-.222v.672Zm-.284-3.609h-2.363a.323.323 0 0 1-.322-.322v-2.58c0-.177.145-.322.322-.322h2.24c-.153.192-.275.409-.359.645h-1.558v1.934h1.627c.064.141.143.276.236.403l.177.242Zm-5.467 5.147.005-.01v.008l-.005.002ZM3.292 11.61v.644h-.645v-.644h.645Zm1.29 7.094v.645h-.645v-.645h.645Zm16.769-7.417v.645h-.645v-.645h.645Zm-1.29 7.417v.645h-.645v-.645h.645ZM8.774 11.932v.645h-.645v-.645h.645Zm3.548-1.29v1.29h-.645v-1.29h.645ZM4.064 6.927l.395.642-.549.338-.395-.642.549-.338Zm14.18 13.902c.875 0 1.586.712 1.586 1.585 0 .875-.711 1.586-1.586 1.586H6.606c-.875 0-1.585-.711-1.585-1.586 0-.873.71-1.585 1.585-1.585h.427c-.155-.246-.247-.534-.247-.845 0-.785.574-1.437 1.324-1.563v-.786c0-.385-.172-.744-.473-.986l-.034-.028a1.158 1.158 0 0 0-.723-.254c-.497 0-.902-.404-.902-.9s.405-.9.902-.9h.744c.836 0 1.653.288 2.304.812.866.697 1.363 1.733 1.363 2.842v.177h2.565v-5.272l-.557-.764c-.223-.306-.342-.666-.342-1.045v-.233c0-.979.799-1.775 1.781-1.775h1.418c.982 0 1.781.796 1.781 1.775v.233c0 .379-.118.739-.341 1.045l-.559.764v5.376c.599.226 1.027.805 1.027 1.482 0 .311-.092.599-.246.845h.426Zm-3.385-5.232a.263.263 0 0 1-.021-.372l.345-.389v-.794a1.7787 1.7787 0 0 1-.586-.196v4.552h1.7v-4.552c-.181.099-.379.165-.585.196v.794l.345.389a.264.264 0 0 1-.023.372.2624.2624 0 0 1-.175.068.2668.2668 0 0 1-.198-.089l-.214-.241-.214.241a.2668.2668 0 0 1-.198.089.2649.2649 0 0 1-.176-.068Zm-6.758.475c.476.384.75.953.75 1.563v.763h1.7v-.177a2.98 2.98 0 0 0-.076-.662l-.406-.062c-.733-.114-1.307-.704-1.398-1.438l-.072-.585a2.9598 2.9598 0 0 0-.975-.167H6.88c-.089 0-.162.072-.162.16 0 .088.073.159.162.159.431 0 .852.149 1.186.418l.035.028Zm8.342 7.188c.402-.819 1.152-1.415 2.057-1.616l.06-.012a.8101.8101 0 0 0-.316-.063H6.606c-.466 0-.845.38-.845.845 0 .467.379.846.845.846h.558l-.007-.006a.8244.8244 0 0 1-.265-.604c0-.409.307-.76.714-.816l.985-.136c.343-.047.696.071.942.315.309.309.41.773.255 1.182l-.025.065h6.68Zm-8.817-3.672a.836.836 0 0 0-.099.396c0 .466.379.845.846.845h4.31c.082-.551.464-1.022 1.001-1.211.419-.147.881-.106 1.266.114l.199.113c.374.214.636.574.73.984h.599c.466 0 .846-.379.846-.845 0-.467-.38-.846-.846-.846h-4.935l-.125.202c-.405.654-1.108 1.017-1.831 1.017-.348 0-.701-.085-1.028-.261l-.933-.508Zm6.072-8.271c0 .22.068.431.199.608l.709.971c.195.267.509.427.841.427.331 0 .646-.16.841-.427l.71-.971c.13-.177.199-.388.199-.608v-.233c0-.451-.293-.835-.698-.976v.301c0 .146-.119.265-.265.265a.2646.2646 0 0 1-.264-.265v-.359h-.258v.684c0 .146-.119.265-.265.265a.2646.2646 0 0 1-.264-.265v-.684h-.258v.359c0 .146-.119.265-.265.265a.2646.2646 0 0 1-.264-.265v-.301c-.406.141-.698.525-.698.976v.233Zm1.157.309c0 .166-.135.301-.303.301a.3015.3015 0 0 1-.302-.301.3026.3026 0 0 1 .605 0Zm1.672.012c0 .166-.136.302-.303.302a.3024.3024 0 0 1-.302-.302c0-.166.135-.301.302-.301.167 0 .303.135.303.301Z\"},\"child\":[]}]})(props);\n};\nexport function SiRider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm7.031 3.113A4.063 4.063 0 0 1 9.72 4.14a3.23 3.23 0 0 1 .84 2.28A3.16 3.16 0 0 1 8.4 9.54l2.46 3.6H8.28L6.12 9.9H4.38v3.24H2.16V3.12c1.61-.004 3.281.009 4.871-.007zm5.509.007h3.96c3.18 0 5.34 2.16 5.34 5.04 0 2.82-2.16 5.04-5.34 5.04h-3.96zm4.069 1.976c-.607.01-1.235.004-1.849.004v6.06h1.74a2.882 2.882 0 0 0 3.06-3 2.897 2.897 0 0 0-2.951-3.064zM4.319 5.1v2.88H6.6c1.08 0 1.68-.6 1.68-1.44 0-.96-.66-1.44-1.74-1.44zM2.16 19.5h9V21h-9Z\"},\"child\":[]}]})(props);\n};\nexport function SiRimacautomobili (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.422 1.317C18.428.488 15.194-.017 12.007 0 8.819-.017 5.586.487 2.594 1.317a.488.488 0 00-.342.455c0 7.95 2.976 17.802 9.479 22.142a.464.464 0 00.537 0c6.503-4.34 9.495-14.175 9.479-22.142.016-.21-.13-.39-.326-.455zM15.91 17.055c-1.025 1.723-2.244 3.267-3.691 4.454a.32.319 0 01-.407 0C7.845 18.241 5.537 12.47 4.658 6.893L3.65 6.356h7.479c2.407 0 2.715.78 2.715 1.35 0 .57-.308 1.35-2.714 1.35H8.934a.128.128 0 00-.13.13c0 .032.016.065.05.097l7.332 7.332.78.78zm1.333-2.65l-4.374-4.374c-.065-.065-.016-.162.065-.18l.862-.096c1.805-.195 2.845-1.106 2.845-2.244 0-1.317-1.398-2.049-3.723-2.049H4.446A24.735 24.733 0 014.268 3.3a.462.462 0 01.374-.487 32.298 32.296 0 017.3-.862h.13c2.39 0 4.878.293 7.301.862.227.049.39.26.373.487-.179 3.625-.99 7.593-2.503 11.104z\"},\"child\":[]}]})(props);\n};\nexport function SiRime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.733 0H2.267C1 0 0 1 0 2.267v19.466C0 23 1 24 2.267 24h19.466C23 24 24 23 24 21.733V2.267C24 1 22.933 0 21.733 0Zm-1.6 20.667H19.8c-.6 0-5.933-.134-7.733-.134-1.934 0-7.867.134-7.934.134H3.8v-1.134L3.733 18.4h.334c.066 0 4.2-.2 6.733-.267v-2.466c-2.733-.134-4.667-.867-5.933-2.134-1.934-2-1.8-4.866-1.734-7.933v-.867l2.4.067v.933c-.066 2.6-.2 4.867 1.067 6.134.8.8 2.133 1.266 4.2 1.4V3.533h2.4V13.2c2-.133 3.4-.6 4.2-1.4 1.2-1.267 1.133-3.533 1.067-6.133v-.934l2.4-.066v.866c.133 3.067.2 5.934-1.734 7.934-1.266 1.266-3.2 2-5.933 2.133v2.467c2.467.066 6.667.266 6.733.266h.334l-.067 1.134Z\"},\"child\":[]}]})(props);\n};\nexport function SiRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 16.375a3.05 3.05 0 0 1-.246 1.231 3.114 3.114 0 0 1-1.672 1.66 3.068 3.068 0 0 1-1.225.247 3.695 3.695 0 0 1-.71-.073 4.05 4.05 0 0 1-.739-.218 3.184 3.184 0 0 1-.676-.37 2.02 2.02 0 0 1-.507-.515.46.46 0 0 1-.08-.275.442.442 0 0 1 .152-.346.504.504 0 0 1 .346-.138.553.553 0 0 1 .201.04.392.392 0 0 1 .186.17.046.046 0 0 0 .016.032l.064.065a1.806 1.806 0 0 0 .798.507 3.052 3.052 0 0 0 .943.154 2.12 2.12 0 0 0 .846-.17 2.189 2.189 0 0 0 1.16-1.16 2.115 2.115 0 0 0 .176-.841v-1.109a3.132 3.132 0 0 1-.985.637 3.089 3.089 0 0 1-1.193.234 3.046 3.046 0 0 1-1.231-.246 3.137 3.137 0 0 1-1.66-1.66 3.04 3.04 0 0 1-.247-1.232v-2.544a3.058 3.058 0 0 1 .247-1.225 3.154 3.154 0 0 1 .668-1 3.202 3.202 0 0 1 .986-.669 3.15 3.15 0 0 1 2.463 0 3.09 3.09 0 0 1 1.668 1.668 3.066 3.066 0 0 1 .246 1.225v5.92zm-.967-5.92a2.118 2.118 0 0 0-.17-.846 2.189 2.189 0 0 0-1.16-1.16 2.201 2.201 0 0 0-1.692 0 2.191 2.191 0 0 0-1.166 1.16 2.134 2.134 0 0 0-.168.845v2.531a2.133 2.133 0 0 0 .168.853 2.194 2.194 0 0 0 .468.693 2.171 2.171 0 0 0 .694.467 2.201 2.201 0 0 0 1.692 0 2.189 2.189 0 0 0 1.16-1.16 2.117 2.117 0 0 0 .174-.853zm-7.252 5.356a.435.435 0 0 1-.154.363.511.511 0 0 1-.66 0 .434.434 0 0 1-.153-.363v-5.356a2.118 2.118 0 0 0-.17-.846 2.189 2.189 0 0 0-1.16-1.16 2.201 2.201 0 0 0-1.692 0 2.19 2.19 0 0 0-1.16 1.16 2.127 2.127 0 0 0-.17.846v5.356a.434.434 0 0 1-.152.363.511.511 0 0 1-.661 0 .434.434 0 0 1-.153-.363v-5.356a3.058 3.058 0 0 1 .246-1.225 3.163 3.163 0 0 1 .67-1 3.202 3.202 0 0 1 .984-.669 3.15 3.15 0 0 1 2.464 0 3.091 3.091 0 0 1 1.667 1.668 3.066 3.066 0 0 1 .247 1.225zm-8.383 0a.435.435 0 0 1-.152.363.511.511 0 0 1-.662 0 .434.434 0 0 1-.152-.363V7.956a.435.435 0 0 1 .152-.363.512.512 0 0 1 .662 0 .436.436 0 0 1 .152.363zM4.982 8.44a.463.463 0 0 1-.145.338.483.483 0 0 1-.355.142.503.503 0 0 1-.339-.145l-.016-.017a.149.149 0 0 0-.032-.024.123.123 0 0 1-.033-.025 1.9 1.9 0 0 0-1.24-.43q-.871 0-1.363.595-.491.596-.492 1.693v5.243a.435.435 0 0 1-.153.363.525.525 0 0 1-.33.123.525.525 0 0 1-.33-.123.434.434 0 0 1-.153-.363v-5.243A4.362 4.362 0 0 1 .18 9.303a3.034 3.034 0 0 1 .53-1.031 2.546 2.546 0 0 1 .878-.706 2.763 2.763 0 0 1 1.231-.257 3.08 3.08 0 0 1 1.065.209 2.573 2.573 0 0 1 .934.58.48.48 0 0 1 .163.343zm2.76-3.128a.826.826 0 0 1-.826.827.826.826 0 0 1-.827-.827.826.826 0 0 1 .827-.826.826.826 0 0 1 .826.826Z\"},\"child\":[]}]})(props);\n};\nexport function SiRiotgames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.458.86 0 7.093l3.353 12.761 2.552-.313-.701-8.024.838-.373 1.447 8.202 4.361-.535-.775-8.857.83-.37 1.591 9.025 4.412-.542-.849-9.708.84-.374 1.74 9.87L24 17.318V3.5Zm.316 19.356.222 1.256L24 23.14v-4.18l-10.22 1.256Z\"},\"child\":[]}]})(props);\n};\nexport function SiRipple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.55 14.65c-.846-.486-1.805-.632-2.752-.666-.79-.023-1.974-.541-1.974-1.985 0-1.072.868-1.94 1.985-1.985.947-.034 1.906-.18 2.752-.666A5.018 5.018 0 0022.4 2.502 5.04 5.04 0 0015.53.674a4.993 4.993 0 00-2.504 4.343c0 .97.35 1.861.79 2.696.372.699.553 1.996-.71 2.73-.948.54-2.132.202-2.719-.745-.496-.801-1.094-1.545-1.94-2.03C6.045 6.28 2.977 7.104 1.6 9.495A5.018 5.018 0 003.44 16.34a5.025 5.025 0 005.008 0c.846-.485 1.444-1.23 1.94-2.03.406-.654 1.433-1.489 2.718-.744.948.541 1.241 1.737.711 2.73-.44.823-.79 1.725-.79 2.695A5.011 5.011 0 0018.034 24a5.011 5.011 0 005.008-5.008 4.982 4.982 0 00-2.492-4.343z\"},\"child\":[]}]})(props);\n};\nexport function SiRiscv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.94945.05132h16.9479v6.2099l-10.42482 14.7424-.52374.73429-5.7888-6.84154c4.10309-.73955 6.2099-3.89648 6.2099-7.37054 0-3.47539-2.10681-7.0534-6.42044-7.4745zM1.47516 13.42121l8.73912 10.52747H0V3.4188h5.47428c2.94506 0 4.42154 1.9989 4.42154 4.10703 0 2.1068-1.47648 4.20967-4.42154 4.20967H1.47516v1.6857zm14.0693 10.52747H24V12.1566l-7.68505 10.73802-.77048 1.05406z\"},\"child\":[]}]})(props);\n};\nexport function SiRiseup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.5 24l-1.485-9.007-8.961-1.738L8.16 9.06 7.045 0l6.495 6.414 8.271-3.861-4.093 8.16 6.228 6.673-9.024-1.372z\"},\"child\":[]}]})(props);\n};\nexport function SiRitzcarlton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.543 16.862a2.83 2.83 0 0 1-1.168-.743h-.071c-.22.016-.692-.032-1.416-.142s-1.33-.519-1.817-1.227a2.332 2.332 0 0 1-1.086 1.097c-.487.244-1.093.374-1.817.39a4.241 4.241 0 0 1-1.215.696c-.417.15-.893.224-1.428.224-.63 0-1.2-.2-1.711-.602s-.767-.94-.767-1.616c0-.157.008-.315.024-.472.015-.157.047-.3.094-.425.299.393.637.68 1.015.861.377.181.708.272.991.272.44 0 .751-.165.932-.496.181-.33.272-.77.272-1.321v-.342c0-.118-.008-.233-.024-.343-.016-.613.02-1.22.106-1.817.087-.598.46-1.172 1.121-1.723l.236-.189c-.126.032-.24.06-.342.083a1.158 1.158 0 0 1-.248.035c-.11 0-.26-.118-.448-.354a1.661 1.661 0 0 1-.354-.731c-.047-.126-.036-.225.035-.295s.17-.154.295-.248h.024l.023-.024c-.015-.016-.039-.02-.07-.012a.496.496 0 0 1-.118.012.234.234 0 0 1-.107.024h-.13a1.477 1.477 0 0 1-.707-.165 6.459 6.459 0 0 1-.225-.095c-.07-.031-.145-.047-.224-.047s-.15.004-.212.012-.11.02-.142.035H5.7c-.031 0-.063-.02-.094-.059-.032-.04-.048-.098-.048-.177 0-.22.083-.377.248-.472.165-.094.31-.141.437-.141.11 0 .212.015.307.047l.283.094c.11.032.212.06.307.083a.4.4 0 0 0 .283-.036 7.087 7.087 0 0 1-.154-.247 6.626 6.626 0 0 0-.153-.248 3.455 3.455 0 0 1-.153.035.497.497 0 0 1-.083.012c-.142 0-.264-.079-.366-.236-.102-.157-.2-.527-.295-1.11a2.306 2.306 0 0 1-.271-.46.9.9 0 0 1-.083-.318c0-.142.055-.26.165-.354a2.48 2.48 0 0 1 .425-.283L8.39 2.289c.126-.315.256-.554.39-.72s.303-.271.507-.318c.236-.047.504-.087.802-.118.3-.032.622-.055.968-.071a1.36 1.36 0 0 1 .354-.33.785.785 0 0 1 .425-.118c.031 0 .067.004.106.011s.083.02.13.036c.078.016.161.031.248.047.086.016.184.024.295.024.078 0 .184-.004.318-.012s.295-.02.484-.036c.079-.063.2-.133.366-.212.165-.079.342-.157.53-.236.08-.047.166-.09.26-.13.095-.04.181-.075.26-.106.126.079.303.224.53.437s.398.436.508.672c1.007.173 1.633.413 1.876.72.244.307.366.72.366 1.239s.142.905.425 1.156c.283.252.503.417.66.496a.466.466 0 0 1-.341.141 1.18 1.18 0 0 1-.437-.094c.362.22.645.484.85.79.204.307.338.657.4 1.05-.157-.094-.322-.18-.495-.259s-.346-.134-.519-.165c.205.22.354.48.448.779.095.299.142.63.142.991 0 .283-.055.602-.165.956-.11.354-.315.727-.614 1.12.047.048.087.115.118.201s.047.193.047.319c0 .346-.07.653-.212.92s-.299.52-.472.756a9.739 9.739 0 0 0-.425.696 1.61 1.61 0 0 0-.189.79c0 .457.154.78.46.968s.61.283.91.283c.14 0 .314-.023.518-.07.205-.048.41-.15.614-.307.031.094.059.197.083.307s.035.228.035.354c0 .55-.185.995-.555 1.333s-.908.507-1.616.507c-.378 0-.79-.074-1.24-.224zm1.616 3.646a.51.51 0 0 1 .236.177c.048.071.055.154.024.248a3.32 3.32 0 0 1-.07.236l-.095.283c-.095.252-.193.535-.295.85s-.154.621-.154.92c0 .11.004.192.012.247s.012.098.012.13.004.059.012.082.012.052.012.083c0 .079-.028.138-.083.177s-.122.059-.2.059H6.571a.336.336 0 0 1-.2-.059c-.055-.04-.083-.098-.083-.177v-.083c0-.024.008-.05.024-.082 0-.032.004-.075.011-.13s.012-.138.012-.248c0-.298-.051-.605-.153-.92s-.2-.597-.295-.849a4.434 4.434 0 0 0-.095-.295 2.146 2.146 0 0 0-.094-.224.332.332 0 0 1 .047-.248.519.519 0 0 1 .236-.177l-1.557-3.587.118-.023c.078.11.247.26.507.448.26.189.594.283 1.003.283l.047.071a.712.712 0 0 0-.212.625c.031.244.15.366.354.366.141 0 .24-.047.295-.141a.834.834 0 0 0 .106-.284l.07-.023c.016 0 .04.012.072.035a11.104 11.104 0 0 1 .342.212c.086.056.145.099.177.13l-.047.236-.048.236a.932.932 0 0 0-.035.142.42.42 0 0 1-.035.118h-.071a.339.339 0 0 0-.165-.153.452.452 0 0 0-.142-.036.269.269 0 0 0-.224.106.429.429 0 0 0-.083.272c0 .189.055.358.165.507.11.15.3.224.567.224.283 0 .554-.07.814-.212s.39-.362.39-.66a.86.86 0 0 0-.154-.473 1.046 1.046 0 0 0-.484-.377v-.071a3.34 3.34 0 0 0 .449-.437c.141-.165.228-.295.26-.39h.07c.063.08.185.186.366.32.18.133.358.224.53.27v.072c-.157.157-.259.306-.306.448s-.07.26-.07.354c0 .252.086.448.259.59.173.142.487.212.944.212.33 0 .633-.059.908-.177.276-.118.413-.334.413-.649 0-.173-.05-.306-.153-.4a.52.52 0 0 0-.366-.142.502.502 0 0 0-.248.059.706.706 0 0 0-.224.247h-.07c0-.015-.016-.039-.048-.07a5.65 5.65 0 0 0-.189-.225 2.738 2.738 0 0 0-.26-.247v-.071c.064-.047.138-.122.225-.224a4.26 4.26 0 0 0 .271-.366h.071c.142.157.248.255.319.295.07.04.16.059.271.059a.587.587 0 0 0 .26-.071c.094-.047.141-.142.141-.283 0-.173-.086-.303-.26-.39s-.346-.16-.519-.224v-.07c.284-.11.547-.296.791-.555s.39-.484.437-.673h.094c.047.189.193.413.437.673s.507.444.79.554v.071c-.173.063-.346.138-.519.224s-.26.217-.26.39c0 .141.048.236.142.283a.584.584 0 0 0 .531.012c.07-.04.17-.138.295-.295h.094c.095.141.185.263.272.366.086.102.161.177.224.224v.07c-.11.095-.197.178-.26.248a5.65 5.65 0 0 0-.188.225c-.032.031-.048.055-.048.07h-.094a.706.706 0 0 0-.224-.247.455.455 0 0 0-.224-.06.52.52 0 0 0-.366.142.52.52 0 0 0-.154.401c0 .315.138.531.413.65.276.117.579.176.909.176.456 0 .77-.07.944-.212.173-.142.26-.338.26-.59 0-.094-.024-.212-.071-.354s-.15-.291-.307-.448v-.071c.173-.047.35-.138.53-.272.182-.133.296-.24.343-.318h.094c.032.094.115.224.248.39.134.164.28.31.437.436v.07a1.06 1.06 0 0 0-.46.378.86.86 0 0 0-.154.472c0 .299.13.52.39.66s.53.213.814.213c.267 0 .456-.074.566-.224a.834.834 0 0 0 .165-.507c0-.11-.027-.2-.082-.272a.269.269 0 0 0-.224-.106.561.561 0 0 0-.154.036.247.247 0 0 0-.153.153h-.07a.42.42 0 0 1-.036-.118.932.932 0 0 0-.036-.142l-.047-.236-.047-.236c.031-.031.09-.074.177-.13s.169-.106.248-.153c.031-.016.063-.035.094-.059s.055-.035.07-.035l.072.023a.834.834 0 0 0 .106.284c.055.094.145.141.271.141.22 0 .346-.122.378-.366a.712.712 0 0 0-.213-.625l.048-.07c.409 0 .743-.095 1.003-.284s.428-.338.507-.448l.118.023-1.558 3.587zM5.345 15.482a4.734 4.734 0 0 1-.566-.284c.157.583.452.948.885 1.098s.782.224 1.05.224c.299 0 .574-.035.826-.106.251-.071.495-.209.731-.413a2.085 2.085 0 0 1-.53-.095c-.134-.047-.217-.102-.248-.165.676-.078 1.058-.476 1.144-1.192.087-.715.122-1.42.106-2.112v-.661c0-.991.232-1.71.696-2.16.465-.448 1.507-1.018 3.127-1.71a7.818 7.818 0 0 0 1.582-.897c.55-.393.826-.905.826-1.534 0-.22-.087-.507-.26-.861s-.606-.704-1.298-1.05a.886.886 0 0 0-.094-.083.62.62 0 0 0-.095-.06l-.448-.471c.63-.126 1.274.035 1.935.484.66.448.991 1.026.991 1.734 0 .645-.228 1.22-.684 1.723s-1.22.999-2.29 1.487l-.117.047c-.929.409-1.704.83-2.325 1.263-.621.432-.932 1.128-.932 2.088a6.986 6.986 0 0 0 .189 1.652c.015-.645.15-1.38.4-2.207.253-.826.937-1.38 2.054-1.663a4.627 4.627 0 0 0-.401 1.911c0 .693.134 1.334.401 1.924.267.59.66 1.074 1.18 1.451.535.394 1.196.59 1.982.59-.912-.519-1.502-1.144-1.77-1.876a9.306 9.306 0 0 1-.519-2.089 2.643 2.643 0 0 0-.236.697c-.063.291-.07.523-.023.696a3.504 3.504 0 0 1-.295-.755 3.314 3.314 0 0 1-.107-.85c0-.472.095-.968.284-1.487.188-.52.676-.975 1.463-1.369a4.51 4.51 0 0 0-.531.756c-.15.267-.224.582-.224.944 0 .157.007.318.023.483.016.165.055.335.118.508.032-.425.17-.83.413-1.216s.515-.79.814-1.215c.22-.299.44-.614.661-.944.22-.33.41-.677.566-1.038.08.094.126.263.142.507s-.031.468-.142.673c.284-.205.496-.484.638-.838s.212-.775.212-1.263c0-.283-.063-.64-.189-1.074-.126-.432-.417-.869-.873-1.31.189.095.535.37 1.038.827s.756 1.077.756 1.864c0 .472-.193 1.038-.579 1.7-.385.66-1.042 1.336-1.97 2.029.63-.142 1.341-.464 2.136-.968.794-.503 1.191-1.345 1.191-2.525 0-.503-.24-1.176-.72-2.018s-1.301-1.333-2.465-1.475a.262.262 0 0 1 .106-.153c.055-.04.114-.075.177-.106.126-.079.247-.173.365-.283.118-.11.177-.268.177-.472 0-.19-.07-.394-.212-.614s-.385-.472-.731-.755c-.787.126-1.247.326-1.381.602s-.2.444-.2.507c0 .173.07.334.212.484s.338.31.59.484c.063.031.082.062.059.094-.024.031-.051.047-.083.047-.031 0-.075-.02-.13-.059-.055-.04-.13-.09-.224-.153-.22-.173-.53-.378-.932-.614s-.854-.354-1.357-.354c-.488 0-.948.02-1.38.06-.433.038-.697.082-.791.129-.11.047-.2.11-.272.189s-.106.165-.106.26c.11-.048.228-.091.354-.13a1.13 1.13 0 0 1 .33-.06c.08 0 .19.02.331.06.142.039.212.098.212.177H9.9c-.142 0-.236.015-.284.047s-.07.063-.07.094c0 .063.015.114.047.154a.25.25 0 0 0 .118.082.13.13 0 0 0 .094.012.323.323 0 0 1 .071-.012.176.176 0 0 1 .07-.023h.072c.015 0 .023.007.023.023v.047c0 .032-.027.079-.082.142s-.138.126-.248.189c.079-.016.165-.032.26-.047s.157-.024.188-.024c0 .016-.02.047-.059.094s-.067.079-.082.095a.148.148 0 0 1-.06.035.358.358 0 0 1-.106.012.56.56 0 0 0-.153.024 3.707 3.707 0 0 0-.153.047c-.11.047-.22.078-.33.094a.445.445 0 0 1-.26-.023l.094-.095.142-.047c-.173.016-.295-.004-.366-.06-.07-.054-.13-.192-.177-.412-.488.236-.92.448-1.298.637a22.47 22.47 0 0 0-.944.496c-.11.047-.165.11-.165.188 0 .08.04.166.118.26l.519-.236a.315.315 0 0 1 .083.06c.023.023.035.058.035.105 0 .047-.016.09-.047.13-.032.04-.063.083-.095.13a.907.907 0 0 0-.153.2.455.455 0 0 0-.059.225c0 .063.031.2.094.413.063.212.118.318.166.318a.21.21 0 0 0 .094-.023.37.37 0 0 0 .094-.071c.016 0 .032-.008.048-.024s.031-.023.047-.023a1.66 1.66 0 0 1 .39-.177c.164-.055.42-.099.766-.13.173-.157.303-.256.39-.295a.536.536 0 0 1 .2-.06c.079 0 .15.02.212.06.063.04.134.098.213.177l1.203 1.109-.047.378c-.362 0-.649.055-.861.165-.213.11-.492.338-.838.684a.887.887 0 0 1-.342.224c-.118.04-.224.067-.319.083a2.683 2.683 0 0 0-.224.083c-.055.023-.082.074-.082.153 0 .126.074.303.224.531.15.228.295.342.436.342.158 0 .41-.098.755-.295s.598-.42.756-.672c.204-.362.527-.61.967-.744.44-.134.779-.2 1.015-.2h.212c.078 0 .158.007.236.023h.332a.643.643 0 0 0 .436-.153c.118-.102.225-.287.319-.555-.11.063-.264.11-.46.142a4.242 4.242 0 0 1-.342.047c-.126 0-.209-.008-.248-.024s-.051-.039-.036-.07c.19-.079.335-.15.437-.213a.668.668 0 0 0 .2-.165.512.512 0 0 0 .024-.165v-.508c0-.102.032-.2.095-.295a.63.63 0 0 1 .212.236c.063.11.094.205.094.284.048-.11.083-.205.107-.284a.947.947 0 0 0-.024-.578.661.661 0 0 0-.2-.271c.314 0 .522.122.625.366.102.244.153.5.153.767 0 .629-.22 1.09-.66 1.38s-.976.578-1.605.862a4.538 4.538 0 0 0-.425.165l-.425.189C9.97 8.48 9.184 9.03 8.696 9.629c-.488.597-.731 1.675-.731 3.233v.047c0 .362-.075.905-.225 1.629-.15.723-.672 1.085-1.569 1.085-.33 0-.606-.047-.826-.141zm2.867-8.768c.008-.008.012-.02.012-.035.016-.016.032-.024.047-.024s.04.008.071.024c.016 0 .028.004.036.011l.035.036c.157-.11.33-.205.52-.283.188-.08.33-.118.424-.118a1.089 1.089 0 0 0-.307-.142 1.283 1.283 0 0 0-.354-.047c-.094 0-.193.016-.295.047a.916.916 0 0 0-.318.189l-.048.047a.275.275 0 0 1-.07.047c-.095.079-.22.17-.378.272-.157.102-.346.122-.566.059l-.19-.048a.524.524 0 0 1-.164-.07c-.08-.016-.15-.032-.213-.048s-.134-.023-.212-.023a.48.48 0 0 0-.272.07c-.07.048-.106.095-.106.142 0 .032.008.055.024.071.016.016.047.024.094.024a.105.105 0 0 0 .047-.012.105.105 0 0 1 .048-.012.388.388 0 0 0 .094-.012.496.496 0 0 1 .118-.012.58.58 0 0 1 .212.048c.079.031.166.063.26.094.094.047.2.094.319.142.118.047.24.07.365.07.22 0 .382-.05.484-.153.102-.102.185-.208.248-.319l.035-.035zm3.859 16.39h2.773c.841 0 1.6-.008 2.277-.023l.425-1.841a48.429 48.429 0 0 0-2.761-.295 35.074 35.074 0 0 0-5.44 0 48.8 48.8 0 0 0-2.75.295l.426 1.84a98.82 98.82 0 0 0 2.277.024h2.773zM7.41 3.67c.15-.055.28-.09.39-.107a.511.511 0 0 1-.13.307 1.59 1.59 0 0 1-.248.26v.023a.27.27 0 0 1-.154-.059.18.18 0 0 1-.082-.153c0-.126.074-.216.224-.271zm-.083 18.42c0 .015.044.07.13.165.087.094.138.141.154.141s.062-.047.141-.141.118-.15.118-.166c0-.047-.04-.114-.118-.2s-.126-.13-.141-.13-.067.043-.154.13c-.086.086-.13.153-.13.2zm.095-16.568c-.047.11-.04.236.023.378s.181.212.354.212c.016-.126.024-.248.024-.366s-.024-.216-.07-.295c-.08.016-.15.028-.213.036-.063.008-.103.02-.118.035zm1.227 1.652a.254.254 0 0 0-.13-.224.464.464 0 0 0-.248-.083c-.031.095-.047.181-.047.26s.016.15.047.212c.032 0 .083-.007.154-.023s.145-.063.224-.142zm-.378 15.4c-.031-.024-.047-.06-.047-.107v-.85c0-.062.016-.106.047-.13s.071-.035.118-.035l.732-.047c.252-.016.456-.024.613-.024.063 0 .115.02.154.06a.18.18 0 0 1 .059.13v.849c0 .063-.02.11-.06.141s-.09.048-.153.048H8.39a.191.191 0 0 1-.118-.036zm.425-.579c0 .016.055.087.165.212.11.126.181.19.213.19s.098-.064.2-.19c.103-.125.154-.196.154-.212 0-.047-.051-.13-.154-.248s-.169-.177-.2-.177-.103.06-.213.177-.165.2-.165.248zm2.584-8.708a6.56 6.56 0 0 0-.153-.59c-.063-.299-.126-.61-.189-.933a3.185 3.185 0 0 1-.024-1.026c-.298.33-.483.688-.554 1.073-.07.386-.122.776-.154 1.17-.031.455-.094.9-.188 1.332-.095.433-.339.846-.732 1.24.52 0 .991-.142 1.416-.425.425-.284.637-.716.637-1.298 0-.173-.02-.354-.059-.543zM9.97 3.94a3.111 3.111 0 0 0-.13.437.342.342 0 0 0 .06.295.65.65 0 0 0 .188.165c.08.047.166.094.26.141.142.063.291.142.448.236s.3.236.425.425l.024-.047a1.089 1.089 0 0 0-.26-.53 5.435 5.435 0 0 0-.377-.367c-.126-.094-.244-.2-.354-.318s-.19-.264-.236-.437H9.97zm.307 18.054c0 .016.044.07.13.165.087.095.138.142.153.142.016 0 .063-.047.142-.142.079-.094.118-.15.118-.165 0-.031-.04-.09-.118-.177-.079-.086-.126-.13-.142-.13-.015 0-.066.044-.153.13s-.13.146-.13.177zm2.455.66H11.41c-.063 0-.11-.019-.142-.058a.203.203 0 0 1-.047-.13v-.92c0-.063.016-.11.047-.142.032-.031.08-.047.142-.047h1.322c.063 0 .11.016.141.047.032.032.047.079.047.142v.92c0 .047-.015.09-.047.13-.031.04-.078.059-.141.059zm-1.062-.66c0 .016.055.087.165.212.11.126.189.19.236.19.016 0 .078-.064.189-.19.11-.125.165-.196.165-.212 0-.047-.055-.13-.165-.248-.11-.118-.173-.177-.19-.177-.046 0-.125.06-.235.177-.11.118-.165.2-.165.248zm2.194 0c0-.031-.043-.09-.13-.177s-.137-.13-.153-.13c-.016 0-.063.044-.141.13-.08.087-.118.146-.118.177 0 .016.039.07.118.165.078.095.125.142.141.142.016 0 .067-.047.154-.142.086-.094.13-.15.13-.165zm.2-20.083a.809.809 0 0 1-.129-.425c0-.095.032-.205.095-.33s.251-.244.566-.355c.016 0 .024.004.024.012V.85a.21.21 0 0 1-.024.094 1.581 1.581 0 0 0-.06.142.601.601 0 0 0-.034.212c0 .142.055.248.165.319.11.07.204.106.283.106.094 0 .169-.028.224-.083s.083-.114.083-.177c0-.047.004-.098.012-.153.007-.055.027-.083.059-.083a.58.58 0 0 1 .165.425.647.647 0 0 1-.177.437 1.606 1.606 0 0 1-.531.365l-.118-.07c-.315-.174-.516-.33-.602-.472zm2.821 7.882c-.393.189-.77.346-1.133.472-.456.157-.85.334-1.18.53-.33.197-.495.563-.495 1.098a1.78 1.78 0 0 0 .33 1.039c.016-.44.095-.81.236-1.11.142-.299.346-.519.614-.66a1.755 1.755 0 0 0-.283.672 3.79 3.79 0 0 0-.071.72c0 1.243.334 2.195 1.003 2.856.668.66 1.404.991 2.206.991.425 0 .751-.094.98-.283.228-.189.358-.472.389-.85a1.11 1.11 0 0 1-.484.2 3.016 3.016 0 0 1-.413.036c-.786 0-1.357-.283-1.71-.85-.355-.566-.445-1.25-.272-2.052-.095.298-.205.55-.33.755a1.44 1.44 0 0 1-.449.472c.047-.126.067-.264.06-.413a9.239 9.239 0 0 1-.013-.484 4.156 4.156 0 0 1-.047-.614c0-.393.11-.712.33-.956.22-.244.457-.484.708-.72.268-.22.512-.456.732-.708s.33-.582.33-.99a2.95 2.95 0 0 1-1.038.849zm-2.478 12.815c-.063 0-.114-.016-.153-.048s-.06-.078-.06-.141v-.85c0-.047.02-.09.06-.13a.209.209 0 0 1 .153-.059c.142 0 .342.008.602.024l.743.047c.047 0 .087.012.118.036s.047.067.047.13v.849c0 .047-.015.083-.047.106s-.07.036-.118.036h-1.345zm.307-.614c0 .016.055.087.165.212.11.126.181.19.213.19.015 0 .078-.064.188-.19.11-.125.165-.196.165-.212 0-.047-.055-.13-.165-.248s-.173-.177-.188-.177c-.032 0-.103.06-.213.177s-.165.2-.165.248zM16.2 1.971a.74.74 0 0 1-.024.318c.268.173.523.366.767.578.244.213.468.445.673.696a2.808 2.808 0 0 1-.142-.471 3.04 3.04 0 0 0-.319-.826c-.149-.268-.5-.465-1.05-.59a.994.994 0 0 1 .095.295zm.59 20.118c0-.047-.04-.114-.118-.2-.079-.087-.126-.13-.142-.13-.016 0-.067.043-.153.13s-.13.153-.13.2c0 .016.043.071.13.166s.137.141.153.141c.016 0 .063-.047.142-.141.078-.095.118-.15.118-.166z\"},\"child\":[]}]})(props);\n};\nexport function SiRive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.643 1.475c0 .814.668 1.475 1.49 1.475H14.49c1.408 0 2.568.43 3.48 1.29.91.861 1.366 1.967 1.366 3.32 0 1.25-.456 2.274-1.367 3.072-.911.78-2.07 1.168-3.479 1.168H9.12c-.824 0-1.491.66-1.491 1.475 0 .815.667 1.475 1.491 1.475h5.93l5.342 8.482c.332.512.797.768 1.398.768.663 0 1.129-.256 1.398-.768.269-.533.217-1.096-.155-1.69l-4.753-7.56c1.284-.574 2.299-1.414 3.044-2.52.746-1.127 1.119-2.427 1.119-3.902 0-1.496-.342-2.807-1.026-3.934-.662-1.127-1.594-2.008-2.795-2.643C17.42.327 16.044 0 14.49 0H2.134C1.311 0 .643.66.643 1.475Z\"},\"child\":[]}]})(props);\n};\nexport function SiRoadmapdotsh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.693 0H3.307A3.307 3.307 0 0 0 0 3.307v17.386A3.307 3.307 0 0 0 3.307 24h17.386A3.307 3.307 0 0 0 24 20.693V3.307A3.307 3.307 0 0 0 20.693 0zm-7.706 9.18c-.349.031-.689.078-1.021.142-.333.063-.65.134-.95.214a3.64 3.64 0 0 0-.736.237v8.097a5.522 5.522 0 0 1-.76.143c-.333.047-.68.07-1.045.07a5.87 5.87 0 0 1-.95-.07 1.588 1.588 0 0 1-.688-.285 1.476 1.476 0 0 1-.452-.57c-.095-.253-.142-.578-.142-.974V9.061c0-.364.063-.673.19-.926.142-.27.34-.507.594-.713a3.93 3.93 0 0 1 .926-.546 9.133 9.133 0 0 1 2.54-.736 8.093 8.093 0 0 1 1.378-.119c.76 0 1.361.15 1.804.451.444.285.665.76.665 1.425 0 .222-.032.443-.095.665a3.075 3.075 0 0 1-.237.57c-.341 0-.682.016-1.021.047zm5.113 8.453c-.412.443-.974.665-1.686.665s-1.274-.222-1.686-.665c-.412-.443-.617-.998-.617-1.662 0-.665.205-1.22.617-1.663.412-.443.974-.664 1.686-.664s1.274.221 1.686.664c.411.444.617.998.617 1.663 0 .664-.206 1.219-.617 1.662z\"},\"child\":[]}]})(props);\n};\nexport function SiRoamresearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.14.028C7.315.36 4.072 2.263 1.98 5.411.487 7.646-.232 10.589.067 13.211c.32 2.772 1.4 5.124 3.242 7.049 4.643 4.852 12.252 5.001 17.038.343 1.085-1.057 1.738-1.959 2.407-3.303a11.943 11.943 0 0 0-2.429-13.925C18.372 1.495 16.015.388 13.27.078c-.68-.083-1.56-.1-2.13-.05zm4.814 2.567c1.112.437 2.086 1.068 3.032 1.986.62.598 1.323 1.46 1.3 1.599-.016.072-1.626.725-1.792.725-.056 0-.078-.072-.078-.25 0-.138-.011-.248-.028-.248-.01 0-.758.459-1.654 1.023-.897.565-1.666 1.024-1.71 1.024-.05 0-.133-.061-.194-.139-.127-.16-.216-.171-.354-.044-.066.056-.1.166-.1.316v.226l-.824.46c-.46.249-.89.453-.968.453h-.144V8.161c0-.863.016-2.025.038-2.573.034-.99.04-1.007.155-1.007.117 0 .128-.028.155-.514.067-1.107.25-1.284 1.362-1.323l.514-.016.16-.233c.156-.226.167-.226.366-.171.116.028.46.15.764.271zm-7.05.011l.122.183.641-.006c.604 0 .659.011.902.15.355.21.482.497.526 1.145l.033.498.172.016.171.017.017 2.716.011 2.722-.232.138a3.024 3.024 0 0 0-.936.875l-.177.27h-5.24v-.325l-.592-.017-.598-.017-.398-.586c-.332-.493-.454-.626-.758-.825-.415-.265-.404-.193-.139-1.023.659-2.025 2.203-3.945 4.1-5.107.67-.409 1.932-.995 2.159-1.001.055-.005.155.078.216.177zm12.163 4.902c.354.686.725 1.588.725 1.765 0 .071-.1.149-.327.26-.326.154-.393.237-.393.503 0 .155-.166.36-.564.692l-.327.27h-.99v.333h-2.767v-.886l-.332-.42c-.183-.227-.332-.432-.332-.454 0-.022 1.073-.68 2.39-1.46 2.17-1.29 2.402-1.417 2.485-1.34.05.045.244.377.432.737zm-5.556 3.087c.243.354.454.664.46.686.01.027-.394.05-.892.05h-.918l-.2-.332c-.11-.183-.193-.36-.182-.388.028-.083 1.167-.708 1.234-.68.033.011.254.31.498.664zm-7.282 2.567c.254.398.442.741.415.769-.111.1-5.163 3.32-5.213 3.32-.155 0-.813-1.317-1.024-2.048-.249-.863-.265-.769.188-1.045.178-.111.371-.321.637-.703l.387-.548.603-.027.609-.028.017-.21.016-.205H7.77l.459.725zm1.815-.476c.066.122.127.249.127.288 0 .077-.996.686-1.057.647-.05-.028-.714-1.1-.714-1.15 0-.023.343-.028.758-.023l.758.017.128.221zm9.158-.044l.016.21.554.028c.597.027.525 0 1.184.481.011.006.06.194.11.41.095.425.128.459.493.547.288.072.293.133.072.78-.57 1.682-1.787 3.425-3.287 4.686-.642.542-.603.542-.559-.055.045-.614-.027-.935-.254-1.162-.26-.255-.526-.221-1.3.177-.51.26-.698.332-.897.332-.327 0-.631-.094-.825-.255l-.16-.127.393-.36c.42-.381.62-.73.525-.907-.16-.298-.453-.37-1.045-.26-.498.1-.864.105-1.013.028-.188-.105-.288-.376-.26-.741.028-.332.022-.343-.216-.62l-.238-.282v-1.765l.393-.271c.216-.144.559-.448.758-.675l.37-.404h5.17l.017.205zm-7.814 2.157v.758l-.276.282-.277.283.083.238c.1.282.105.52.022.674-.1.194-.293.222-.896.133a8.212 8.212 0 0 0-.764-.083c-.68 0-.703.482-.06 1.256.31.37.31.365-.084.564-.553.277-.902.25-1.389-.116-.41-.304-.647-.393-.968-.36-.21.017-.31.061-.443.2l-.177.177.006.686c0 .382-.011.691-.023.691-.06 0-1.023-.846-1.45-1.272-.442-.448-.995-1.123-.995-1.217 0-.044 1.516-.72 1.615-.72.034 0 .045.084.034.194-.011.105-.006.194.01.194.017 0 1.362-.747 2.989-1.66a204.276 204.276 0 0 1 3.005-1.66c.022 0 .038.343.038.758z\"},\"child\":[]}]})(props);\n};\nexport function SiRobinhood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.84 24h.53c.096 0 .192-.048.224-.128C7.591 13.696 11.94 8.656 14.67 5.638c.112-.128.064-.225-.096-.225h-4.88a.55.55 0 0 0-.45.225L5.746 9.972c-.514.642-.642 1.236-.642 2.086v4.43c-1.14 3.194-1.862 5.361-2.392 7.32-.032.125.016.192.129.192M20.447.646c-.754-.802-4.157-.834-5.73-.224a3 3 0 0 0-.786.465 41 41 0 0 0-3.323 3.178c-.112.113-.064.225.097.225h5.409c.497 0 .786.289.786.786v6.1c0 .16.128.208.225.064l3.258-4.254c.53-.69.69-.898.835-1.861.192-1.413.08-3.58-.77-4.479m-6.982 16.18 2.231-3.676a.7.7 0 0 0 .064-.29V6.73c0-.16-.112-.225-.224-.097-3.355 3.74-5.971 7.672-8.395 12.407-.06.12.016.225.16.177l5.009-1.54c.565-.174.882-.402 1.155-.852\"},\"child\":[]}]})(props);\n};\nexport function SiRoblox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.926 23.998 0 18.892 5.075.002 24 5.108ZM15.348 10.09l-5.282-1.453-1.414 5.273 5.282 1.453z\"},\"child\":[]}]})(props);\n};\nexport function SiRobloxstudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 13.936 15.356 L 1.826 12.112 L 0 18.93 L 18.928 24 L 21.608 14.01 L 14.79 12.18 L 13.936 15.356 Z M 5.072 0 L 2.394 9.992 L 9.21 11.822 L 10.064 8.644 L 22.174 11.89 L 24 5.072 L 5.072 0 Z\"},\"child\":[]}]})(props);\n};\nexport function SiRoboflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0m.512 3.6a9.6 9.6 0 0 1 2.594.39c1.764.52 3.511 1.747 3.823 3.68.066.41.065.829.007 1.24-.208 1.466-1.09 2.777-2.09 3.83-1.063 1.122-2.417 1.854-3.54 2.898-.657.611-.925 1.36-.132 1.995 1.084.553 1.986.266 2.97-.332.582-.353 1.08-.823 1.511-1.345.219-.264.422-.542.617-.825.164-.24.317-.517.537-.716a.8.8 0 0 1 .502-.267.69.69 0 0 1 .7.406c.118.28.013.64-.113.9-.652 1.346-1.368 2.25-1.867 2.78-1.486 1.653-3.809 2.736-5.955 1.846-1.234-.51-2.198-1.658-2.37-2.998-.32-2.502 2.588-3.95 4.12-5.368.937-.868 1.965-2.203 1.486-3.562-.459-1.302-1.988-1.868-3.246-2-1.24-.128-2.5.128-3.624.654-.882.412-1.625 1.038-2.32 1.711-.23.223-.45.46-.688.673-.206.184-.453.352-.732.39-.417.056-.813-.248-.76-.688.086-.712.592-1.332 1.036-1.862q.412-.493.884-.928a9.3 9.3 0 0 1 2.397-1.6 9.9 9.9 0 0 1 4.253-.901m-2.22 5.264c1.558-.055 1.92 1.034.882 1.843-1.763 1.372-3.997 2.745-4.224 4.95-.092.887.352 2.293.89 3.24.04.07.061.153.058.24-.01.231-.19.42-.428.409-.162-.008-.311-.09-.45-.176-.639-.395-1.238-.89-1.705-1.481a5 5 0 0 1-.665-1.116 4.6 4.6 0 0 1-.323-1.196 4.6 4.6 0 0 1 .011-1.238q.045-.315.128-.62c.673-2.49 3.377-4.564 5.498-4.828q.172-.021.328-.027\"},\"child\":[]}]})(props);\n};\nexport function SiRobotframework (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.9565 10.2246c0-1.8766 1.5257-3.4023 3.4-3.4023 1.8766 0 3.4024 1.5257 3.4024 3.4023 0 .6838-.5526 1.2364-1.2341 1.2364-.6818 0-1.2344-.5526-1.2344-1.2364 0-.513-.4185-.9296-.9338-.9296-.5129 0-.9317.4165-.9317.9296 0 .6838-.5523 1.2364-1.234 1.2364-.6818 0-1.2344-.5526-1.2344-1.2364m14.0868 5.717c0 .6842-.5524 1.2363-1.2341 1.2363H6.3575c-.6818 0-1.2344-.552-1.2344-1.2363 0-.6837.5526-1.2363 1.2344-1.2363h11.4517c.6817 0 1.234.5526 1.234 1.2363m-5.351-5.0244c-.3814-.5657-.2323-1.3328.3334-1.7143l2.8628-1.9334c.5613-.3902 1.3329-.2324 1.7144.3289.3815.5654.2323 1.3329-.3334 1.7144l-2.8628 1.9333c-.5442.3831-1.3348.2379-1.7144-.3289zm7.8393 7.6018a.8815.8815 0 0 1-.258.6227l-2.1277 2.1277a.8822.8822 0 0 1-.623.258H5.4772a.8822.8822 0 0 1-.623-.258l-2.1277-2.1277a.8815.8815 0 0 1-.258-.6227V5.4818a.8797.8797 0 0 1 .258-.6228l2.1277-2.1282a.8816.8816 0 0 1 .623-.2578h13.0456a.8816.8816 0 0 1 .623.2578l2.1277 2.1282a.8797.8797 0 0 1 .258.6228V18.519zm1.811-15.0835L20.5644.6577A2.2454 2.2454 0 0 0 18.9775 0H5.0207A2.2445 2.2445 0 0 0 3.433.658L.657 3.4359A2.2449 2.2449 0 0 0 0 5.0228v13.9547c0 .5953.2366 1.1667.6575 1.5872l2.778 2.7779c.421.421.9918.6573 1.5871.6573h13.9548a2.2448 2.2448 0 0 0 1.5872-.6573l2.7779-2.7779A2.2436 2.2436 0 0 0 24 18.9775V5.023a2.2451 2.2451 0 0 0-.6575-1.5875z\"},\"child\":[]}]})(props);\n};\nexport function SiRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.735.238V.236a.248.248 0 0 0-.2-.188c-.256-.04-6.336-.924-14.17 7.051a28.44 28.44 0 0 0-2.12 2.576l-4.047 1.166a.246.246 0 0 0-.124.08l-2.856 3.5a.248.248 0 0 0 .126.394l3.887 1.096.484-.566c.178-.208.37-.4.574-.58l.54-.472-.38.608a5.556 5.556 0 0 1-.482.66l-.52.606c.008.79.214 1.488.62 2.068L3.68 19.653c-.148.16-.036.272.12.428l1.11 1.086c.153.16.255.258.41.1l1.505-1.534c.34.122 1.162.334 2.4.14l.75-.576c.212-.164.438-.312.672-.442l.644-.36-.514.53c-.187.192-.387.37-.6.534l-.62.476 1.424 3.804a.246.246 0 0 0 .404.09l3.242-3.144a.248.248 0 0 0 .072-.136l.698-4.108c.884-.78 1.78-1.686 2.66-2.694 5.072-5.806 5.798-10.315 5.78-12.487-.008-.702-.094-1.094-.1-1.122h-.002zM16.49 11.165c-1.274 1.296-3.1 1.564-4.082.6-.98-.962-.744-2.794.53-4.09s3.1-1.566 4.08-.602c.982.964.746 2.796-.528 4.092z\"},\"child\":[]}]})(props);\n};\nexport function SiRocketdotchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.909 8.381c-.651-1.01-1.564-1.905-2.71-2.66-2.215-1.457-5.127-2.259-8.197-2.259-1.027 0-2.038.09-3.018.266a9.978 9.978 0 0 0-2.075-1.53C4.11.803 1.646 1.323.4 1.77a.598.598 0 0 0-.233.977c.879.907 2.332 2.698 1.974 4.327C.753 8.493 0 10.203 0 11.982c0 1.815.752 3.524 2.142 4.942.357 1.63-1.096 3.421-1.975 4.328a.597.597 0 0 0 .233.977c1.245.448 3.71.968 6.508-.427a10.031 10.031 0 0 0 2.075-1.53 17.06 17.06 0 0 0 3.018.265c3.071 0 5.983-.801 8.197-2.257 1.147-.755 2.06-1.65 2.71-2.661C23.633 14.493 24 13.28 24 12.017c.001-1.297-.366-2.508-1.091-3.636zM11.875 18.437c-1.328 0-2.594-.171-3.748-.48l-.844.81a7.716 7.716 0 0 1-1.556 1.154 6.118 6.118 0 0 1-2.2.621c.042-.074.079-.149.119-.224.844-1.553 1.073-2.948.683-4.186-1.382-1.086-2.212-2.476-2.212-3.99 0-3.476 4.369-6.294 9.757-6.294s9.757 2.818 9.757 6.294c.001 3.477-4.367 6.295-9.756 6.295zm-3.229-6.315c0 .788-.644 1.427-1.438 1.427a1.433 1.433 0 0 1-1.438-1.427c0-.788.644-1.426 1.438-1.426.794 0 1.438.638 1.438 1.426zm4.627 0c0 .788-.644 1.427-1.438 1.427a1.433 1.433 0 0 1-1.438-1.427c0-.788.644-1.426 1.438-1.426.794 0 1.438.638 1.438 1.426zm4.63 0c0 .788-.645 1.427-1.439 1.427a1.433 1.433 0 0 1-1.438-1.427c0-.788.644-1.426 1.438-1.426.794 0 1.438.638 1.438 1.426z\"},\"child\":[]}]})(props);\n};\nexport function SiRocksdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.299 2.519-2.102.985c.006.005.006.014.006.02a.81.81 0 0 0 .303.337c-2.557 1.32-3.643 3.104-3.643 3.104L4.09 12.228a1.183 1.183 0 0 1-1.598-.482 1.183 1.183 0 0 1 .483-1.596l2.771-1.492A2.226 2.226 0 0 0 6.912 6.84l-1.664.894-2.771 1.494a2.23 2.23 0 0 0 2.109 3.927l1.25-.674c-.09.493-.05 1.019.146 1.516.066.17.11.277.11.277.443.96-.14 1.713-.903 1.713h-.242l-.879 3.828a.93.93 0 0 0-.441-.255l-.438 1.802a.923.923 0 0 0 1.061-.521l1.992-3.578c2.522-.246 3.85-1.954 3.79-4.36 2.611.16 6.093-1.48 7.64-3.726 1.175 1.492 3.395 1.28 4.385.902l.19-.064a.93.93 0 0 0-.11.44l1.857-.02a.933.933 0 0 0-.94-.913h-.01l-3.192-.275-.73-1.914v-2.03a.982.982 0 0 0 .483.126c.527 0 .96-.406 1.01-.918l.764-.508-.035-1.03a.19.19 0 0 0-.192-.187l-.955-.014a.73.73 0 0 0-.898-.252zm.25.508c.166 0 .303.135.303.3a.305.305 0 0 1-.303.304.301.301 0 0 1-.295-.303c0-.166.13-.3.295-.3zM5.48 4.567a.528.528 0 0 0-.232.686l.127.22.924-.495-.12-.221a.528.528 0 0 0-.699-.19zm12.487.235c.156 0 .281.144.281.144s-.045.056-.115.096c.11.045.185.115.185.115s-.075.072-.185.117a.47.47 0 0 1 .115.094s-.125.147-.281.147c-.156 0-.281-.147-.281-.147s.044-.053.115-.094a.558.558 0 0 1-.186-.117s.075-.07.186-.115c-.07-.04-.115-.096-.115-.096s.125-.144.28-.144zm-1.461.693c.156 0 .281.145.281.145s-.045.05-.115.095c.11.046.185.116.185.116s-.075.07-.185.115c.07.04.115.095.115.095s-.125.147-.281.147c-.156 0-.281-.147-.281-.147s.045-.055.115-.095a.674.674 0 0 1-.186-.115s.075-.07.186-.116c-.07-.04-.115-.095-.115-.095s.125-.145.28-.145zm-9.9.05-.924.497.048.096c.09.17.137.352.141.533l.98-.53a2.125 2.125 0 0 0-.197-.501zm11.236.948c.156 0 .281.147.281.147s-.045.055-.115.095c.11.046.185.116.185.116s-.075.07-.185.115c.07.04.115.095.115.095s-.13.147-.281.147c-.156 0-.281-.147-.281-.147s.044-.055.115-.095a.674.674 0 0 1-.186-.115s.075-.07.186-.116c-.07-.04-.115-.095-.115-.095s.125-.147.28-.147zm-2.844.399c.156 0 .281.144.281.144s-.045.056-.115.096c.11.045.186.115.186.115s-.075.07-.186.115c.07.04.115.096.115.096s-.125.146-.281.146c-.156 0-.281-.146-.281-.146s.045-.056.115-.096c-.11-.045-.186-.115-.186-.115s.076-.07.186-.115c-.07-.04-.115-.096-.115-.096s.125-.144.281-.144zm7.807.18c-.015.004-.03.015-.045.025l.004-.004-2.711.972.326.866c.508-.13 1.286-.69 1.834-1.121a.94.94 0 0 0 .045.453L24 7.617a.932.932 0 0 0-1.195-.547zm-6.37.255c.156 0 .282.147.282.147s-.045.055-.115.095a.588.588 0 0 1 .185.116s-.075.07-.185.115c.07.04.115.095.115.095s-.126.147-.281.147c-.156 0-.282-.147-.282-.147s.045-.055.116-.095c-.111-.045-.186-.115-.186-.115s.075-.07.186-.116c-.07-.04-.116-.095-.116-.095s.126-.147.282-.147zm1.778.559c.156 0 .281.144.281.144s-.045.056-.115.096a.56.56 0 0 1 .185.115s-.075.072-.185.117a.47.47 0 0 1 .115.094s-.125.147-.281.147c-.156 0-.281-.147-.281-.147s.045-.053.115-.094c-.11-.045-.186-.117-.186-.117s.075-.07.186-.115c-.07-.04-.115-.096-.115-.096s.125-.144.28-.144zm-3.887.386c.156 0 .281.145.281.145s-.044.055-.115.096c.11.045.186.115.186.115s-.075.072-.186.117a.47.47 0 0 1 .115.094s-.125.146-.28.146c-.157 0-.282-.146-.282-.146s.045-.054.115-.094c-.11-.045-.185-.117-.185-.117s.075-.07.185-.115c-.07-.04-.115-.096-.115-.096s.125-.145.281-.145zm-1.904.25c.156 0 .281.147.281.147s-.045.055-.115.096c.11.045.185.115.185.115s-.075.07-.185.115c.07.04.115.096.115.096s-.125.146-.281.146c-.156 0-.281-.146-.281-.146s.045-.05.115-.096a.674.674 0 0 1-.186-.115s.075-.07.186-.115c-.07-.04-.115-.096-.115-.096s.125-.147.28-.147zm3.611.342c.156 0 .281.147.281.147s-.044.055-.115.095c.11.04.186.116.186.116s-.075.07-.186.115c.07.04.115.096.115.096s-.125.146-.28.146c-.157 0-.282-.146-.282-.146s.045-.056.115-.096c-.11-.045-.185-.115-.185-.115s.075-.07.185-.116c-.07-.04-.115-.095-.115-.095s.125-.147.281-.147zm-2.703.85c.156 0 .281.146.281.146s-.045.054-.115.094c.11.04.186.117.186.117s-.075.07-.186.116c.07.04.115.095.115.095s-.125.145-.28.145c-.157 0-.282-.145-.282-.145s.047-.055.117-.095c-.11-.046-.187-.116-.187-.116s.077-.072.187-.117a.506.506 0 0 1-.117-.094s.125-.146.281-.146zm-2.27.02c.156 0 .282.146.282.146s-.045.055-.115.096c.11.045.185.115.185.115s-.075.07-.185.115c.07.04.115.096.115.096s-.126.144-.281.144c-.156 0-.282-.144-.282-.144s.045-.056.116-.096c-.111-.045-.186-.115-.186-.115s.075-.07.186-.115c-.07-.04-.116-.096-.116-.096s.126-.147.282-.147zm3.758.306c.156 0 .282.146.282.146s-.045.056-.116.096c.11.045.186.115.186.115s-.075.07-.186.116c.07.04.116.095.116.095s-.126.145-.282.145c-.155 0-.28-.145-.28-.145s.044-.055.114-.095a.688.688 0 0 1-.185-.116s.075-.07.185-.115c-.07-.04-.115-.096-.115-.096s.126-.146.281-.146zm-5.662.322c.156 0 .281.145.281.145s-.044.055-.115.096c.11.04.186.115.186.115s-.075.07-.186.115c.07.04.116.096.116.096s-.126.146-.282.146c-.155 0-.281-.146-.281-.146s.045-.056.115-.096c-.11-.045-.185-.115-.185-.115s.075-.07.185-.115c-.07-.04-.115-.096-.115-.096s.126-.145.281-.145zm3.356.803c.155 0 .281.147.281.147s-.045.055-.115.095a.56.56 0 0 1 .185.115s-.075.07-.185.116c.07.04.115.095.115.095s-.126.145-.281.145c-.156 0-.282-.145-.282-.145s.045-.055.116-.095c-.11-.046-.186-.116-.186-.116s.075-.07.186-.115c-.07-.04-.116-.095-.116-.095s.126-.147.282-.147zm-1.848.262c.156 0 .281.146.281.146s-.045.054-.115.094a.49.49 0 0 1 .186.117s-.075.07-.186.115c.07.04.115.096.115.096s-.125.145-.28.145c-.157 0-.282-.145-.282-.145s.045-.055.115-.096c-.11-.045-.185-.115-.185-.115s.075-.072.185-.117c-.07-.04-.115-.094-.115-.094s.125-.146.281-.146zm-3.316.08c.155 0 .28.146.28.146s-.044.056-.114.096c.11.045.185.115.185.115s-.075.07-.185.115c.07.04.115.096.115.096s-.126.145-.281.145c-.156 0-.282-.145-.282-.145s.047-.055.118-.096a.72.72 0 0 1-.188-.115s.077-.07.188-.115c-.07-.04-.118-.096-.118-.096s.126-.146.282-.146zm16.646.527-5.705 1.428-2.23 2.53-3.25.08-1.227 2.814-3.193.834-2 1.824h16.093c.834 0 1.512-.68 1.512-1.514zm-15.053.217c.156 0 .282.144.282.144s-.045.056-.116.096c.11.04.186.115.186.115s-.075.07-.186.116c.07.04.116.095.116.095s-.126.147-.282.147c-.155 0-.28-.147-.28-.147s.044-.055.114-.095a.688.688 0 0 1-.185-.116s.075-.07.185-.115c-.07-.04-.115-.096-.115-.096s.126-.144.281-.144zm-1.898 1.014c.156 0 .281.146.281.146s-.047.056-.117.096a.72.72 0 0 1 .188.115s-.077.07-.188.115c.07.04.117.096.117.096s-.13.15-.281.145c-.156 0-.281-.145-.281-.145s.045-.056.115-.096c-.11-.045-.186-.115-.186-.115s.075-.07.186-.115c-.07-.04-.115-.096-.115-.096s.125-.146.281-.146zm1.582.552c.156 0 .281.147.281.147s-.045.055-.115.096c.11.045.186.115.186.115s-.075.07-.186.115c.07.04.115.096.115.096s-.125.144-.281.144c-.156 0-.281-.144-.281-.144s.045-.056.115-.096c-.11-.045-.186-.115-.186-.115s.075-.07.186-.115c-.07-.04-.115-.096-.115-.096s.125-.147.281-.147zm-1.086 1.256c.156 0 .281.147.281.147s-.045.055-.115.095c.11.04.186.116.186.116s-.075.07-.186.115c.07.04.115.096.115.096s-.125.144-.28.144c-.157 0-.282-.144-.282-.144s.045-.056.115-.096c-.11-.045-.186-.115-.186-.115s.076-.07.186-.116c-.07-.04-.115-.095-.115-.095s.125-.147.281-.147zm-3.203 1.155-2.709 2.325a.969.969 0 0 0-.205-.473L0 19.277a.928.928 0 0 0 1.195.192l2.649-1.201z\"},\"child\":[]}]})(props);\n};\nexport function SiRockstargames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.971 6.816h3.241c1.469 0 2.741-.448 2.741-2.084 0-1.3-1.117-1.576-2.19-1.576H6.748l-.777 3.66Zm12.834 8.753h5.168l-4.664 3.228.755 5.087-4.041-3.07L10.599 24l2.536-5.392s-2.95-3.075-2.947-3.075c-.198-.262-.265-.936-.265-1.226 0-.367.024-.739.049-1.134.028-.451.058-.933.058-1.476 0-1.338-.59-2.038-2.036-2.038H5.283l-1.18 5.525H.026L3.269 0h7.672c2.852 0 5.027.702 5.027 3.936 0 2.276-1.12 3.894-3.592 4.233v.045c1.162.276 1.598 1.062 1.598 2.527 0 .585-.018 1.098-.034 1.581-.015.428-.03.834-.03 1.243 0 .525.137 1.382.48 1.968h.567l3.028-5.06.82 5.096Zm-1.233-2.948-2.187 3.654h-3.457l2.103 2.189-1.73 3.672 3.777-2.218 2.976 2.263-.553-3.731 3.093-2.139h-3.43l-.592-3.69Z\"},\"child\":[]}]})(props);\n};\nexport function SiRockwellautomation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.1252 6.157-4.6678-4.6678a.7667.7667 0 0 0-.9801-.087l-8.983 6.0494c1.7005.1068 2.7313.7962 2.7313 2.3676 0 1.372-.74 2.2257-1.9913 2.3746v.0239c.5814.1067.9676.3763 1.254.74.0997.1264.1685.2752.2079.434l.7091 2.1498 3.0528-7.6475a.7082.7082 0 0 1 .6572-.4452h2.6821l3.5668 8.9325h-2.2075c-.448 0-.8664-.2837-1.056-.7078-.113-.3264-.229-.6527-.344-.9787h-3.2396l-.629 1.6865H9.0475c-.2584 0-.4789-.191-.5238-.4522l-.8046-2.3409c-.1124-.4002-.5098-.4634-.9016-.4634h-.7835v3.2565H3.2789v-5.4148l-1.6486 1.1093a.5568.5568 0 0 0-.2387.4564v3.4474c0 .222.132.4213.3342.5098l15.5408 6.5045a.7678.7678 0 0 0 .8468-.1601l5.0075-4.9865A2.983 2.983 0 0 0 24 15.7325v-7.465a2.9953 2.9953 0 0 0-.8748-2.1106ZM8.3749 10.2797c0-.806-.5504-.9226-1.1346-.9226H6.072v1.9h1.1262c.5954 0 1.1767-.0773 1.1767-.9774zm6.8682 2.4223h1.8143l-.8889-2.5234ZM6.8303 7.4348 16.431.3223c.1376-.1025.066-.3202-.1053-.3202H8.455a3.4405 3.4405 0 0 0-2.4336 1.0083L1.0083 6.022A3.4405 3.4405 0 0 0 0 8.4557v7.0886c0 .9128.3623 1.7876 1.0083 2.4336l5.0131 5.0117A3.4405 3.4405 0 0 0 8.455 23.998h6.8176c.1896 0 .2471-.257.0758-.3384l-13.5496-6.388a1.6147 1.6147 0 0 1-.9268-1.4604v-3.3997c0-.3552.1685-.6894.4536-.9l1.952-1.4465V7.4348Z\"},\"child\":[]}]})(props);\n};\nexport function SiRockylinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.332 15.957c.433-1.239.668-2.57.668-3.957 0-6.627-5.373-12-12-12S0 5.373 0 12c0 3.28 1.315 6.251 3.447 8.417L15.62 8.245l3.005 3.005zm-2.192 3.819l-5.52-5.52L6.975 22.9c1.528.706 3.23 1.1 5.025 1.1 3.661 0 6.94-1.64 9.14-4.224z\"},\"child\":[]}]})(props);\n};\nexport function SiRoku (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.34 9.853l-2.254 2.254v-2.26H12.13v5.744h1.957v-2.33l2.353 2.33h2.46l-2.988-2.99 2.477-2.476v3.411c0 1.133.679 2.177 2.393 2.177.815 0 1.56-.462 1.922-.88l.88.759H24v-5.74h-1.951v3.718c-.22.384-.528.627-1.002.627-.482 0-.703-.286-.703-1.198V9.853zm-4.591 2.869A3.004 3.004 0 1 1 8.738 9.73a2.997 2.997 0 0 1 3.011 2.99m-3.011-1.57c-.518 0-.956.704-.956 1.572 0 .867.438 1.57.956 1.57.528 0 .968-.702.968-1.57 0-.869-.438-1.572-.968-1.572zm-2.206 4.447H4.313L2.55 13.153h-.594v2.44H0V8.26h2.8c1.616 0 2.935 1.1 2.935 2.45 0 .826-.505 1.562-1.273 2.013l2.07 2.875m-2.75-4.888A1.226 1.226 0 0 0 2.56 9.478h-.604v2.453h.605a1.225 1.225 0 0 0 1.22-1.221Z\"},\"child\":[]}]})(props);\n};\nexport function SiRoll20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.383 0c-.02 0-.04.007-.06.014H11.286l-7.256 3.64a.247.247 0 0 0-.129.211c0 .136.11.239.239.239l-.008.013a.219.219 0 0 0 .096-.021l7.181-1.567a.245.245 0 0 0 .21-.236V.225A.238.238 0 0 0 11.382 0zm1.22.008c-.128 0-.23.1-.236.222V2.3c0 .122.094.217.21.23l-.007-.013 7.182 1.574a.236.236 0 0 0 .203-.428L12.7.02h-.008l-.027-.012h-.06zm.57 3.404a.24.24 0 0 0-.237.242c0 .048.013.09.04.123l6.749 11.868c.04.06.108.101.19.101.128 0 .229-.1.235-.223l2.428-9.921c0-.014.008-.02.008-.034a.239.239 0 0 0-.203-.23l-9.121-1.9.013-.006s-.027-.001-.04-.008l-.061-.012zm-2.38.012-.06.008c-.014 0-.028-.001-.042.006l-9.12 1.9a.239.239 0 0 0-.204.23c0 .014 0 .02.006.034h.014l2.427 9.921a.24.24 0 0 0 .239.23c.081 0 .148-.04.19-.1l6.747-11.87c.02-.04.041-.073.041-.12a.238.238 0 0 0-.238-.24zm1.193.306a.24.24 0 0 0-.195.108L4.676 16.404h.008a.224.224 0 0 0-.041.13c0 .135.109.237.238.237H19.1c.136 0 .237-.109.237-.238 0-.047-.02-.088-.041-.129L12.184 3.838a.244.244 0 0 0-.198-.108zM1.543 9.305a.239.239 0 0 0-.23.209v.035l.298 8.062v.008c0 .136.108.236.237.236.04 0 .075-.012.109-.033l1.268-.754h.005a.025.025 0 0 0 .008-.006l.014-.007a.236.236 0 0 0 .115-.203.09.09 0 0 0-.008-.041L1.773 9.514a.239.239 0 0 0-.23-.21zm20.908.006a.24.24 0 0 0-.23.21l-1.588 7.297c0 .014-.006.028-.006.041 0 .089.047.156.115.203l.02.014s.007 0 .013.006l1.268.76a.234.234 0 0 0 .346-.209v-.008l.299-8.063v-.007l-.006-.006V9.52a.24.24 0 0 0-.23-.21zm-12.105.828c1.064 0 1.492.698 1.492 1.35 0 .86-.611 1.193-1.317 1.58-.311.169-.671.393-.746.63h1.995s.054.028.054.055v.766s-.027.054-.054.054H8.799s-.053-.027-.053-.054v-.368h-.014c0-.99.638-1.465 1.323-1.838.786-.42.847-.603.847-.834 0-.142-.054-.474-.556-.474-.38 0-.623.279-.623.713a.054.054 0 0 1-.055.054h-.82s-.055-.027-.055-.054c0-.76.488-1.58 1.553-1.58zm3.431.013c.794 0 1.641.59 1.641 2.252s-.847 2.25-1.64 2.25c-.794 0-1.65-.588-1.65-2.25 0-1.661.856-2.252 1.65-2.252zm-.002.854c-.657 0-.724.97-.724 1.39 0 .326.053 1.383.724 1.383.672 0 .727-1.057.727-1.383 0-.413-.069-1.39-.727-1.39zM5.4 17.523a.236.236 0 0 0-.236.239c0 .074.04.142.094.19l6.578 5.993a.24.24 0 0 0 .15.055c.055 0 .108-.02.149-.055l6.578-5.994c.054-.047.096-.109.096-.183l.005-.006a.24.24 0 0 0-.23-.239H5.4zm-1.662.143c-.054 0-.1.02-.134.047H3.59l-1.235.74a.245.245 0 0 0-.12.21c0 .087.046.162.12.202l5.975 3.522c.034.013.075.033.115.033.136 0 .239-.11.239-.238a.243.243 0 0 0-.063-.155l.022-.007-4.748-4.307H3.88a.255.255 0 0 0-.143-.047zm16.496.006a.24.24 0 0 0-.136.049h-.014l-4.746 4.306a.282.282 0 0 0-.063.162c0 .136.11.237.239.237.04 0 .081-.013.115-.033l5.975-3.514a.245.245 0 0 0 .12-.21.228.228 0 0 0-.12-.202l.013-.008-1.234-.738h-.014a.252.252 0 0 0-.135-.05z\"},\"child\":[]}]})(props);\n};\nexport function SiRollsroyce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.363 3.663H9.961v6.865c-.41.196-.857.368-1.341.511a7.94 7.94 0 0 1-.776.182V3.968s.06-1.041-.519-1.393v-.13h5.434c.244.297.463.697.604 1.218zm.958 9.391c2.465-1.182 3.652-3.262 3.674-5.646.015-1.622-.557-2.618-1.197-3.148a1.883 1.883 0 0 0-.117-.089 6.454 6.454 0 0 0-.612-1.618c.118.017.227.036.324.057 1.788.38 3.225 1.436 3.905 3.474.554 1.662.285 3.724-.904 5.377-.281.391-1.03 1.226-1.89 1.842-.156.112-.25.174-.414.277 1.077 1.726 1.608 2.717 2.295 4.6.6 1.644 1.055 3.83 1.117 4.344.15 1.223.515 1.32.599 1.345V24h-4.295v-.13c.132-.07 1.293-.546 1.299-2.367.006-1.337-.32-2.808-.914-4.46a22.925 22.925 0 0 0-1.277-2.829l-.014-.021a8.355 8.355 0 0 1-.872.321c-.223-.516-.45-.983-.707-1.459zm-4.36-.144v1.116c.325-.014 1.34-.096 2.254-.274.207.468.387.912.511 1.257l.017.048a26.3 26.3 0 0 1-1.23.166 33.2 33.2 0 0 1-1.552.131v7.21c0 .159.037 1.008.59 1.306V24H7.254v-.13c.538-.283.59-1.147.59-1.305v-9.27a18.96 18.96 0 0 0 2.118-.385zm.457-11.66l-.462-.007H5.662v10.575c.426-.019 2.013-.152 3.052-.46 3.465-1.025 5.12-3.447 5.146-6.293.015-1.655-.568-2.672-1.222-3.212-.407-.337-.946-.496-1.338-.554-.22-.044-.71-.05-.882-.05zM3.502 20.557V1.554S3.564.492 2.972.133V0h7.346c.613.001 1.415.063 1.907.17 1.824.387 3.291 1.464 3.985 3.544.565 1.696.291 3.8-.922 5.487-.287.4-1.05 1.25-1.93 1.88a6.998 6.998 0 0 1-.422.281c1.1 1.762 1.641 2.773 2.343 4.695.612 1.677 1.076 3.909 1.14 4.432.151 1.248.525 1.374.61 1.4v.132h-4.382l-.001-.133c.136-.072 1.32-.583 1.326-2.442.007-1.363-.326-2.865-.932-4.55a23.36 23.36 0 0 0-1.305-2.887l-.014-.022c-.582.265-1.812.624-2.61.775-.571.108-1.15.197-1.865.277-.623.07-1.227.111-1.584.134v7.384c0 .161.038 1.028.603 1.332v.132H2.9v-.132c.549-.29.603-1.17.603-1.332Z\"},\"child\":[]}]})(props);\n};\nexport function SiRollupdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.42.0002a.37.37 0 00-.369.37V19.885c.577-1.488 1.557-3.6168 3.1378-6.5297C11.8885 2.876 12.6355 1.8191 15.6043 1.8191c1.56 0 3.1338.704 4.1518 1.9549A7.9616 7.9616 0 0013.1014.0002zM16.1393 2.544c-1.19.01-2.257.466-2.6979 1.498-.967 2.2558 1.624 4.7667 2.7569 4.5677 1.4419-.255-.255-3.5628-.255-3.5628 2.2049 4.1558 1.6969 2.8838-2.2899 6.6996C9.6666 15.5623 5.596 23.6188 5.002 23.9568a.477.477 0 01-.08.043H20.558a.373.373 0 00.33-.538l-4.0878-8.0915a.37.37 0 01.144-.488 7.9596 7.9596 0 004.0048-6.9126c0-1.4249-.373-2.7608-1.03-3.9198-.9269-.9519-2.4298-1.5159-3.7787-1.5059z\"},\"child\":[]}]})(props);\n};\nexport function SiRoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.29045 9.19816c.138-.02376.23432-.17068.23432-.32064a.31246.31246 0 0 0-.18305-.299s-.0877-.05976-.5772-.05976C1.05931 8.51876 0 9.59844 0 11.3365v3.79832a.35555.35555 0 0 0 .71104 0v-3.79832c0-1.37753.84717-2.1881 2.1359-2.1362.08608.00351.3352.0243.4435-.00213zm17.89042-.69322c-1.64076 0-2.8316 1.19085-2.8316 2.83161v3.79832a.35555.35555 0 1 0 .71103 0v-3.79832c0-1.22151.89185-2.10808 2.12057-2.10808 1.22158 0 2.10815.88657 2.10815 2.10808v3.79832a.35549.35549 0 1 0 .71098 0v-3.79832c0-1.64076-1.18557-2.8316-2.81913-2.8316Zm-6.89807 0c-1.83654 0-3.3305 1.57798-3.3305 3.51768 0 1.91213 1.49402 3.4678 3.3305 3.4678 1.84333 0 3.34306-1.55567 3.34306-3.4678 0-1.9397-1.49967-3.51768-3.34306-3.51768zm2.61953 3.51768c0 1.53385-1.17514 2.78167-2.61953 2.78167-1.44438 0-2.61953-1.24788-2.61953-2.78167 0-1.56136 1.17515-2.83161 2.61953-2.83161 1.44439 0 2.61953 1.27024 2.61953 2.83161zM6.87328 8.50494c-1.83654 0-3.33063 1.57798-3.33063 3.51768 0 1.91213 1.49409 3.4678 3.33063 3.4678 1.84334 0 3.343-1.55567 3.343-3.4678 0-1.9397-1.49966-3.51768-3.343-3.51768zm2.61947 3.51768c0 1.53385-1.17514 2.78167-2.61953 2.78167-1.44438 0-2.61953-1.24788-2.61953-2.78167 0-1.56136 1.17515-2.83161 2.61953-2.83161 1.44439 0 2.61953 1.27024 2.61953 2.83161z\"},\"child\":[]}]})(props);\n};\nexport function SiRootme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.364 9.897c0-.448-.029-.896-.096-1.325 0-.028-.009-.057-.009-.086-.582-3.785-3.452-6.894-7.228-7.723-.095-.429-.477-.753-.934-.753-.534 0-.964.429-.964.963 0 .457.325.839.754.934v3.519c0 .057.028.114.076.152.029.019.067.029.105.029.019 0 .048 0 .067-.01l1.411-.534c.095.143.238.239.41.286v1.659c-.715.878-1.602 1.669-2.546 2.375l-1.077-2.499c.2-.133.333-.352.333-.61 0-.4-.324-.734-.734-.734-.4 0-.734.324-.734.734 0 .401.324.734.734.734h.038l1.125 2.603c-.658.477-1.335.906-2.002 1.297l-3.204-.963c-.038-.009-.076-.009-.114.01l-.954.372c-.133-.182-.343-.296-.591-.296-.4 0-.734.324-.734.734 0 .401.324.734.734.734.401 0 .734-.324.734-.734 0-.028-.009-.057-.009-.086l.896-.352 2.794.839c-2.384 1.335-4.52 2.107-4.873 2.231l-.171.057a.9205.9205 0 0 0-.553-.181h-.029c-.448-1.058-.677-2.212-.677-3.366 0-.572.057-1.135.162-1.678H7.69c.086.315.362.543.706.543.4 0 .734-.324.734-.734 0-.4-.324-.734-.734-.734-.344 0-.62.229-.706.543h-4.1c.772-3.137 3.251-5.644 6.455-6.388.172.276.477.467.82.467.534 0 .963-.429.963-.963S11.399 0 10.865 0c-.467 0-.848.334-.944.763-4.205.953-7.285 4.739-7.285 9.125 0 1.249.248 2.498.735 3.642-.181.172-.286.42-.286.687 0 .429.276.782.658.915v3.757c0 .067.019.134.057.191l.21.143 2.851 2.012v2.403c0 .2.162.362.362.362h9.535c.2 0 .362-.162.362-.362v-2.403l2.861-2.012.21-.153a.3437.3437 0 0 0 .057-.19v-3.786c.353-.143.601-.486.601-.887 0-.248-.096-.476-.248-.648.505-1.135.763-2.393.763-3.662Zm-1.383 3.366h-.086c-.534 0-.963.429-.963.963 0 .41.258.763.629.897v3.509l-3.003 2.117c-.096.066-.153.181-.153.295v2.022c0 .114-.095.209-.21.209H15.08c-.115 0-.21-.095-.21-.209v-.725c0-.191-.133-.362-.324-.382-.219-.019-.401.153-.401.363v.753c0 .115-.095.21-.209.21h-1.364a.212.212 0 0 1-.21-.21v-1.116c0-.19-.133-.362-.324-.381-.219-.019-.4.153-.4.362v1.145c0 .114-.096.209-.21.209h-1.364a.2109.2109 0 0 1-.209-.209v-.744c0-.191-.134-.362-.325-.382-.219-.019-.4.153-.4.363v.753c0 .115-.095.21-.21.21H7.805c-.115 0-.21-.095-.21-.21v-2.021c0-.115-.057-.229-.153-.296l-2.994-2.117v-3.547a.9594.9594 0 0 0 .563-.877c0-.057-.01-.114-.019-.172.381-.133 3.289-1.173 6.15-2.956 3.871-2.412 6.017-5.149 6.264-7.961 1.669 1.344 2.823 3.289 3.157 5.473-.048 4.777-8.372 7.723-8.458 7.752-.019.009-.067.019-.105.038-.105-.019-.21-.038-.324-.057-.076-.019-.162-.029-.239-.048-.124-.019-.247-.048-.371-.076-.02-.01-.048-.01-.067-.01-.048-.009-.096-.019-.143-.028-.057-.01-.115-.029-.172-.039-.133-.028-.267-.057-.391-.095-.238-.057-.467-.124-.696-.181-.219-.067-.448-.124-.658-.191H8.92c-.162-.047-.315-.095-.467-.152a.9996.9996 0 0 0-.153-.048c-.076-.029-.143-.048-.209-.067-.124-.038-.239-.076-.344-.124h-.009a5.9785 5.9785 0 0 1-.458-.171c-.143-.058-.267-.105-.362-.143-.096-.048-.181-.077-.229-.105-.057-.029-.086-.038-.086-.038s.019.028.057.066c.038.048.096.115.181.191.077.076.182.172.306.267.124.095.267.2.419.305h.01c-.058.191-.096.401-.096.61 0 1.097.897 1.993 1.993 1.993.849 0 1.573-.534 1.86-1.287.095.01.2.019.295.029.172.009.334.009.486.009.01 0 .019.01.029.01l1.611 1.64c.41.41 1.049.477 1.526.162l2.517-1.411c.22-.143.363-.391.363-.658v-2.899c.972-.772 1.85-1.688 2.422-2.727-.105.753-.305 1.468-.601 2.145Zm-7.799 5.87-.002-.002c-.002-.002-.004-.003-.008-.003a.0437.0437 0 0 0-.013-.009l-.003-.002a.028.028 0 0 1-.013-.009c-.01 0-.019-.009-.029-.009-.009 0-.019-.01-.019-.01-.009 0-.019 0-.028-.009h-.115c-.009 0-.019 0-.028.009-.01 0-.019.01-.019.01-.01 0-.019.009-.029.009-.009 0-.019.01-.029.02-.009 0-.009.009-.019.009l-.038.038-.772.963c-.095.124-.076.296.048.391.047.038.114.057.171.057.086 0 .162-.038.219-.104l.01-.01c.286-.353.82-.353 1.097 0l.009.01c.057.066.134.104.219.104.058 0 .124-.019.172-.057.124-.095.143-.276.048-.391l-.782-.953c-.01-.01-.019-.019-.019-.029-.01-.009-.01-.009-.019-.019a.0127.0127 0 0 1-.009-.004Zm-1.622-2.265c-.038.076-.095.152-.143.219-.229.267-.572.439-.953.439-.382 0-.725-.172-.954-.439-.191-.219-.295-.505-.295-.81 0-.077.009-.144.019-.22.152.076.314.153.476.229.22.095.449.191.687.267.238.086.486.153.734.219.143.038.286.067.429.096Zm-6.503-2.184c-.114 0-.219-.048-.305-.114-.095-.086-.162-.21-.162-.344 0-.057.01-.114.029-.162.066-.171.238-.295.429-.295.085 0 .162.028.229.067.133.076.228.228.228.4 0 .086-.028.162-.066.229-.067.133-.21.219-.382.219Zm16.21-.181c-.086.105-.219.181-.362.181-.134 0-.248-.057-.334-.143-.076-.086-.124-.191-.124-.315 0-.2.124-.371.305-.429.048-.019.105-.028.162-.028.219 0 .41.162.458.372.009.028.009.057.009.095-.019.095-.057.191-.114.267Zm-5.845-9.869c0 .029.009.048.009.067l-1.163.438V1.897c.286-.047.525-.219.658-.457 1.02.229 1.974.639 2.823 1.201-.01 1.411-.554 2.708-1.412 3.881V5.34c.315-.086.544-.363.544-.706 0-.4-.324-.734-.734-.734-.401.009-.725.334-.725.734Zm-3.48-1.735c-.391 0-.716.305-.735.696l-1.458.534c-.077.028-.134.095-.134.181v.925H7.442c-.086-.315-.362-.544-.705-.544-.401 0-.735.324-.735.735 0 .4.325.734.735.734.343 0 .619-.229.705-.544h1.364c.105 0 .19-.086.19-.19v-.983l1.288-.476c.124.238.372.4.648.4.401 0 .734-.324.734-.734.01-.401-.324-.734-.724-.734Zm-.41-2.241a.4605.4605 0 0 1 .343-.153c.257 0 .467.21.467.468 0 .257-.21.467-.467.467-.096 0-.181-.029-.258-.076-.124-.086-.209-.229-.209-.382 0-.133.047-.248.124-.324Zm2.097.305c0-.257.21-.467.468-.467.133 0 .247.057.333.143.077.086.124.191.124.315 0 .152-.076.295-.2.381-.076.057-.162.086-.267.086-.248.009-.458-.2-.458-.458Z\"},\"child\":[]}]})(props);\n};\nexport function SiRoots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.513 12.27L2.6 18.177a.244.244 0 0 1-.174.072l-.02-.001a.248.248 0 0 1-.178-.102 11.973 11.973 0 0 1-.889-1.452.247.247 0 0 1 .045-.287l5.638-5.628a9.403 9.403 0 0 0 2.776-6.694.245.245 0 0 1 .49 0v3.911a6 6 0 0 1-1.774 4.274zM18 .842a.242.242 0 0 0-.245 0 .246.246 0 0 0-.122.212v10.855a6 6 0 0 0 1.773 4.273l1.997 1.995a.246.246 0 0 0 .173.072l.021-.001a.256.256 0 0 0 .18-.102A11.902 11.902 0 0 0 24 11.21c0-4.255-2.298-8.228-6-10.367zM6.367 4.085V1.054A.244.244 0 0 0 6 .842C2.3 2.982 0 6.954 0 11.21c0 .34.018.705.056 1.115.01.094.072.174.161.208a.294.294 0 0 0 .084.014.245.245 0 0 0 .172-.071l4.123-4.118a5.999 5.999 0 0 0 1.771-4.273zm10.614 14.52a9.402 9.402 0 0 1-2.778-6.696V7.996a.245.245 0 1 0-.489 0 9.401 9.401 0 0 1-2.776 6.696l-5.915 5.905a.244.244 0 0 0-.071.193.243.243 0 0 0 .102.18A11.929 11.929 0 0 0 12 23.192a11.93 11.93 0 0 0 6.947-2.222.237.237 0 0 0 .1-.18.239.239 0 0 0-.068-.193l-1.998-1.992Z\"},\"child\":[]}]})(props);\n};\nexport function SiRootsbedrock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.4 0L0 .4v5.2l.343.343 11.314-1.886L12 4.4V8l11.52-1.92.48-.48V.4l-.4-.4zm.08 9.92L0 10.4v3.2l.343.343L12 12V8zM12 12v4l11.52-1.92.48-.48v-3.2l-.343-.343zM.48 17.92L0 18.4v5.2l.4.4h23.2l.4-.4v-5.2l-.343-.343-11.314 1.886L12 19.6V16L.48 17.92z\"},\"child\":[]}]})(props);\n};\nexport function SiRootssage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.384 4.232l1.71 5.075-4.478-3.136L0 9.403l1.753 5.2.01.03H7.3L2.82 17.77l1.754 5.2.01.03h5.705L12 17.925l1.7 5.045.01.03h5.707l1.763-5.23-4.48-3.137h5.537L24 9.403l-4.616-3.232-4.479 3.136 1.711-5.075L12 1zm.105 10.342l1.723-5.111h5.576l1.723 5.111-4.51 3.16z\"},\"child\":[]}]})(props);\n};\nexport function SiRos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.807 0C1.353 0 .173 1.22.173 2.722c0 1.504 1.18 2.723 2.634 2.723 1.455 0 2.635-1.22 2.635-2.723S4.262 0 2.807 0zM12 0c-1.455 0-2.634 1.22-2.634 2.722 0 1.504 1.18 2.723 2.634 2.723 1.455 0 2.634-1.22 2.634-2.723S13.454 0 12 0zm9.193 0c-1.455 0-2.635 1.22-2.635 2.722 0 1.504 1.18 2.723 2.635 2.723 1.455 0 2.634-1.22 2.634-2.723S22.647 0 21.193 0zM2.807 9.277C1.353 9.277.173 10.497.173 12s1.18 2.722 2.634 2.722c1.455 0 2.635-1.219 2.635-2.722 0-1.504-1.18-2.723-2.635-2.723zm9.193 0c-1.455 0-2.634 1.22-2.634 2.723s1.18 2.722 2.634 2.722c1.455 0 2.634-1.219 2.634-2.722 0-1.504-1.18-2.723-2.634-2.723zm9.193 0c-1.455 0-2.635 1.22-2.635 2.723s1.18 2.722 2.635 2.722c1.455 0 2.634-1.219 2.634-2.722 0-1.504-1.18-2.723-2.634-2.723zM2.807 18.555c-1.454 0-2.634 1.22-2.634 2.722C.173 22.781 1.353 24 2.807 24c1.455 0 2.635-1.22 2.635-2.723s-1.18-2.722-2.635-2.722zm9.193 0c-1.455 0-2.634 1.22-2.634 2.722C9.366 22.781 10.546 24 12 24c1.455 0 2.634-1.22 2.634-2.723s-1.18-2.722-2.634-2.722zm9.193 0c-1.455 0-2.635 1.22-2.635 2.722 0 1.504 1.18 2.723 2.635 2.723 1.455 0 2.634-1.22 2.634-2.723s-1.18-2.722-2.634-2.722z\"},\"child\":[]}]})(props);\n};\nexport function SiRossmann (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.391 0 0 5.391 0 12s5.391 12 12 12 12-5.391 12-12S18.609 0 12 0m0 2.088a9.93 9.93 0 0 1 7.477 3.39H16l.348-.607c.347-.783-.958-1.392-1.393-.61l-.607 1.218H4.52C6.435 3.392 9.131 2.088 12 2.088m8.434 4.695A10.07 10.07 0 0 1 21.912 12c0 4.087-2.522 7.653-6.174 9.13l-3.912-3.911q-.13-.131 0-.262l1.39-2.783c.088-.087.174-.174.26-.174h2.436c.087 0 .088.087.088.174l-.697 1.478s0 .174.088.174l.869.61c.087.087.175-.001.261-.088l.956-2.26c.087-.087.174-.174.261-.174h.87s.087 0 .087.174L18 15.652s-.001.174.086.174l.957.61c.087.087.173-.001.26-.088 0-.087 1.045-2.26 1.045-2.434.26-.609.172-1.652-1.045-1.652h-1.39a.19.19 0 0 1-.175-.174v-4.61q0-.26.262-.26zm-16.782.088s9.13.434 9.217.434.26 0 .26.174c.087.173.87 2.174.957 2.261s.087.348-.348.348H4.87a1.15 1.15 0 0 0-1.13 1.13v3.305c0 .261.086.522.173.696.261.26.696.433.783.433.087.087.174.001.174-.086v-4.261c0-.087.087-.174.174-.174H6s.173 0 .086.088c-.348.435-.434.87-.434 1.652 0 1.217.87 1.999 1.217 2.26 0 0 .087.087 0 .174S6 17.044 6 17.13q-.13.131 0 .262l4.348 4.26c-4.696-.87-8.174-4.87-8.174-9.653 0-1.913.522-3.65 1.478-5.129M9.912 14h.957s.173 0 .086.174-1.39 2.696-1.39 2.783v.174l4.52 4.435c-.52.174-1.042.173-1.564.26l-4.435-4.433c-.087-.087 0-.175 0-.262s1.48-2.87 1.566-2.957c0-.087.086-.174.26-.174\"},\"child\":[]}]})(props);\n};\nexport function SiRotaryinternational (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.301 9.504c.09.03.125.129.152.227.467 1.572.467 2.916 0 4.5-.038.136-.093.211-.165.24-.105.032-.218-.043-.314-.113l-3.061-2.077c-.118-.078-.187-.186-.187-.3 0-.112.067-.219.187-.3l3.06-2.075c.14-.1.247-.131.328-.102zm-1.122 6.928c-1.134 1.195-2.296 1.867-3.893 2.25-.136.034-.23.023-.287-.025-.084-.07-.073-.21-.065-.331l.265-3.689c.017-.144.073-.252.175-.313.097-.053.223-.048.347.012l3.33 1.611c.154.076.237.152.253.236.017.092-.05.173-.125.25zm-5.177-2.327a2.163 2.163 0 0 1-2.162-2.16c0-.728.363-1.403.972-1.805a.436.436 0 0 1 .48.728A1.29 1.29 0 0 0 12 13.233a1.29 1.29 0 0 0 .709-2.366.437.437 0 0 1 .482-.728A2.162 2.162 0 0 1 12 14.105zm-.95 4.606c-.073.06-.174.04-.275.016-1.59-.38-2.757-1.052-3.895-2.25-.082-.087-.122-.163-.122-.23 0-.013 0-.02.002-.034.015-.104.144-.166.25-.218l3.33-1.615c.13-.06.255-.064.353-.006.096.057.157.166.167.305l.27 3.696c.01.175-.015.282-.08.336zm-5.018-4.33c-.145.1-.25.135-.333.106-.09-.032-.12-.13-.15-.23-.47-1.569-.47-2.915-.005-4.5.04-.135.097-.21.17-.237.105-.037.217.04.317.11l3.059 2.08c.115.076.183.182.183.298 0 .112-.068.218-.18.3zm.79-6.832h.001c1.138-1.196 2.304-1.87 3.894-2.25.099-.023.203-.042.273.02.067.053.092.162.079.339l-.27 3.685c-.008.142-.066.254-.166.309-.097.058-.224.055-.35-.007L6.959 8.033c-.108-.054-.235-.11-.257-.22-.01-.075.026-.164.122-.264Zm6.177-2.26c.077-.061.177-.042.277-.021 1.59.385 2.756 1.057 3.895 2.253.081.085.125.165.125.236l-.002.028c-.025.109-.146.166-.255.219l-3.328 1.61c-.131.063-.254.069-.35.01-.097-.057-.158-.166-.17-.31l-.267-3.685c-.012-.176.013-.285.076-.34zm-.996-1.272c-4.36 0-7.908 3.55-7.908 7.911 0 4.362 3.548 7.91 7.908 7.91 4.362 0 7.912-3.548 7.912-7.91 0-4.361-3.55-7.91-7.912-7.91m0 16.903c-4.955 0-8.99-4.034-8.99-8.994 0-4.958 4.035-8.99 8.99-8.99 4.96 0 8.993 4.032 8.993 8.99 0 4.96-4.033 8.994-8.993 8.994zm11.973-9.295-.002-.033-.026-.015c-.508-.308-1.176-.483-1.83-.497a57.713 57.713 0 0 1-.103-.785c.623-.176 1.222-.515 1.64-.95l.023-.02-.006-.032a3.568 3.568 0 0 0-.2-.753l-.013-.03-.032-.008c-.574-.164-1.261-.16-1.893 0a64.48 64.48 0 0 0-.296-.723c.555-.34 1.043-.82 1.336-1.34l.016-.025-.012-.033a3.88 3.88 0 0 0-.39-.674l-.016-.024h-.035c-.59-.013-1.25.167-1.833.48-.052-.07-.43-.563-.482-.631.454-.468.8-1.062.948-1.64l.008-.034-.022-.024a3.604 3.604 0 0 0-.546-.556l-.025-.019-.032.006c-.582.147-1.17.495-1.64.945l-.634-.497c.313-.553.497-1.192.497-1.78l-.004-.08-.025-.02a3.246 3.246 0 0 0-.675-.39l-.03-.01-.025.012c-.522.29-1 .775-1.335 1.33a67.567 67.567 0 0 1-.76-.317c.078-.313.127-.635.127-.958a3.19 3.19 0 0 0-.128-.932l-.007-.03-.033-.013a3.43 3.43 0 0 0-.745-.205l-.034-.003-.021.022c-.43.418-.769 1.014-.948 1.638a41.443 41.443 0 0 0-.8-.102c-.008-.647-.183-1.31-.491-1.825l-.016-.03h-.032a3.61 3.61 0 0 0-.78 0h-.034l-.015.03c-.306.51-.478 1.173-.49 1.824-.09.012-.717.088-.808.103-.18-.628-.52-1.226-.948-1.642L9.297.311l-.035.006c-.23.034-.55.12-.75.2l-.03.013-.01.03a3.6 3.6 0 0 0-.124.944c0 .316.05.64.124.95-.078.034-.683.293-.764.326-.337-.555-.817-1.044-1.337-1.337l-.028-.017-.032.011c-.2.088-.49.255-.672.393l-.028.017v.086c0 .583.18 1.224.49 1.781-.067.056-.52.41-.589.465-.467-.45-1.058-.799-1.642-.949l-.029-.007-.022.022c-.18.134-.42.37-.557.547l-.02.026.007.032c.146.58.494 1.17.944 1.644-.05.069-.444.583-.5.654-.564-.315-1.223-.503-1.825-.494l-.03.002-.02.027a3.693 3.693 0 0 0-.391.675l-.013.028.017.029c.288.518.778 1.003 1.335 1.342-.03.08-.259.637-.294.718-.642-.16-1.325-.16-1.896.006l-.031.008-.011.027c-.084.2-.171.516-.205.754l-.004.032.022.025c.417.429 1.015.768 1.64.94l-.105.791c-.649.013-1.318.184-1.828.491l-.028.015-.004.034a3.534 3.534 0 0 0 0 .78l.004.031.028.015c.51.306 1.173.48 1.827.49.012.09.1.724.11.811-.625.184-1.22.526-1.636.954l-.023.027.004.03c.036.234.122.556.203.75l.013.03.029.01c.579.164 1.263.157 1.898 0 .032.08.278.641.312.722-.555.333-1.043.815-1.337 1.335l-.014.03.01.03c.086.205.256.494.392.673l.021.027.028.002c.598.008 1.258-.17 1.83-.486.053.068.44.57.49.64-.448.46-.798 1.05-.946 1.637l-.008.03.02.027c.137.175.373.41.55.553l.025.022.03-.01c.58-.145 1.17-.49 1.641-.943l.647.496c-.308.566-.489 1.21-.489 1.798v.066l.03.02c.174.134.46.297.671.39l.03.012.03-.015c.523-.29 1.004-.78 1.342-1.342l.71.287a3.8 3.8 0 0 0-.123.945c0 .33.043.653.126.943l.008.03.032.014c.198.084.515.17.75.208l.034.005.022-.026c.432-.42.77-1.018.939-1.637.09.015.724.104.812.114.013.652.188 1.317.494 1.823l.013.028.035.005c.225.028.56.028.78 0l.03-.005.018-.028c.303-.506.478-1.172.494-1.827.088-.013.68-.095.77-.11.174.63.514 1.22.946 1.642l.023.02.03-.001c.235-.038.555-.121.754-.202l.028-.014.011-.03c.083-.292.122-.613.122-.943 0-.318-.045-.644-.122-.957.081-.03.655-.28.736-.315.34.557.82 1.046 1.338 1.34l.026.012.03-.01c.207-.086.5-.254.678-.394l.026-.016v-.087c0-.576-.18-1.217-.483-1.78l.61-.476c.474.45 1.064.795 1.643.945l.032.009.023-.021c.177-.14.417-.378.555-.55l.022-.03-.012-.026c-.143-.578-.488-1.17-.94-1.642.053-.07.435-.572.487-.643.574.315 1.235.495 1.828.484h.032l.02-.025a3.11 3.11 0 0 0 .39-.68l.014-.026-.016-.028c-.283-.51-.768-.996-1.324-1.346l.293-.713c.63.162 1.314.167 1.89 0l.027-.01.013-.028c.085-.203.17-.517.206-.75l.004-.033-.024-.025c-.417-.432-1.012-.767-1.631-.945.014-.087.097-.68.106-.77.656-.01 1.324-.185 1.833-.49l.026-.018.002-.035c.015-.108.02-.25.02-.389 0-.14-.005-.278-.02-.387\"},\"child\":[]}]})(props);\n};\nexport function SiRottentomatoes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.866 0L4.335 1.262l2.082 1.8c-2.629-.989-4.842 1.4-5.012 2.338 1.384-.323 2.24-.422 3.344-.335-7.042 4.634-4.978 13.148-1.434 16.094 5.784 4.612 13.77 3.202 17.91-1.316C27.26 13.363 22.993.65 10.86 2.766c.107-1.17.633-1.503 1.243-1.602-.89-1.493-3.67-.734-4.556 1.374C7.52 2.602 5.866 0 5.866 0zM4.422 7.217H6.9c2.673 0 2.898.012 3.55.202 1.06.307 1.868.973 2.313 1.904.05.106.092.206.13.305l7.623.008.027 2.912-2.745-.024v7.549l-2.982-.016v-7.522l-2.127.016a2.92 2.92 0 0 1-1.056 1.134c-.287.176-.3.19-.254.264.127.2 2.125 3.642 2.125 3.659l-3.39.019-2.013-3.376c-.034-.047-.122-.068-.344-.084l-.297-.02.037 3.48-3.075-.038zm3.016 2.288l.024.338c.014.186.024.729.024 1.206v.867l.582-.025c.32-.013.695-.049.833-.078.694-.146 1.048-.478 1.087-1.018.027-.378-.063-.636-.303-.87-.318-.309-.761-.416-1.733-.418Z\"},\"child\":[]}]})(props);\n};\nexport function SiRoundcube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002.072a8.302 8.302 0 0 0-8.266 7.512L.498 9.454l4.682 2.704A7.8 7.8 0 0 1 12.002.572a7.802 7.802 0 0 1 6.824 11.582l4.676-2.7-3.236-1.87A8.302 8.302 0 0 0 12.002.072zM0 9.742v7.399l11.75 6.787v-7.399L0 9.742zm24 0l-5.777 3.338-5.248 3.031h-.002l-.108.063-.615.355v7.399L24 17.14V9.744z\"},\"child\":[]}]})(props);\n};\nexport function SiRsocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.0017.0027a10.519 10.519 0 0 1-.707.0254c-2.729-.0032-5.4588.0152-8.1873-.0235-1.3307-.0188-2.5864.2591-3.8065.7383-1.888.7414-3.491 1.8872-4.8105 3.4335C3.3771 5.4811 2.6038 6.9602 2.1 8.5981c-.351 1.1412-.4421 2.316-.457 3.4843-.0491 3.8519-.03 7.704-.045 11.5563-.001.272.12.3397.3594.3399a747.047 747.047 0 0 1 3.8808.0156c.2057.0013.3034-.0698.3027-.2988-.0065-2.0774-.004-4.1549-.004-6.2323h.004c0-1.6147-.0051-3.2289.002-4.8436.0032-.7354.0408-1.4628.2011-2.1913.2935-1.3334.8763-2.4931 1.8007-3.5019 1.4113-1.5399 3.095-2.3874 5.2264-2.4062 2.7385-.024 5.4765-.017 8.2147-.0097.758.002.7573.0062.7597-.748.0038-1.1425.0089-2.2853.0137-3.4277.001-.2785-.081-.3503-.3574-.332zm.0722 6.4686a8.0464 8.0464 0 0 1-.5097.0175c-2.7098.0032-5.419.0064-8.1287.0078-.4452.0003-.899.0172-1.3222.1348-2.3604.6557-3.8665 2.6802-3.9921 4.9784-.1171 2.1443.8097 3.7936 2.5624 4.992.639.437 1.3534.7418 2.121.8027 1.5251.121 3.059.0446 4.5878.084.19.005.2812-.0765.2656-.2734-.007-.089-.0564-.2059.0528-.254.1102-.0484.1893.0542.2695.1153.5025.3832.9995.775 1.5078 1.1504.2049.1513.162.2592-.0058.3945-.4774.3848-.9511.776-1.4258 1.164-.0732.0599-.145.1317-.25.0977-.1193-.0386-.1036-.1468-.0976-.2383.0159-.243-.1108-.3032-.332-.3027-2.9551.0058-5.91.0073-8.865.0058-.4322-.0002-.4198-.0086-.416.412.0117 1.3027.0395 2.6042-.0176 3.9062-.0114.2586.094.3345.3281.334 1.5294-.0033 3.0584-.002 4.5878-.002v-.0332c.9158 0 1.8322.0067 2.748-.002.7262-.0069 1.4622.0436 2.1757-.1055 1.4784-.3089 2.6552-1.106 3.5057-2.3515 1.0026-1.4681 1.1873-3.0805.6836-4.7596-.3397-1.1324-1.0219-2.0666-1.9824-2.7577-.8843-.6363-1.8522-1.0606-2.9862-1.0644-1.1798-.004-2.3591-.0068-3.539-.0235-.2507-.0035-.2778.1322-.25.33.0116.0822.027.1789-.0644.2286-.0936.051-.1617-.0238-.2246-.0762-.515-.4283-1.0257-.8616-1.543-1.287-.1355-.1115-.1546-.2131-.0098-.3164.5468-.39 1.0515-.829 1.543-1.2852.0603-.056.1264-.1333.2207-.0761.0785.0475.051.1323.0449.207-.0266.3245.025.3792.3515.3808.6797.0034 1.3583-.03 2.037-.037 2.1146-.0223 4.2309-.0069 6.3456 0 .2361.0007.3523-.079.3516-.3243-.004-1.2932-.0035-2.5875-.0058-3.8807-.0004-.213-.1099-.3068-.3223-.293z\"},\"child\":[]}]})(props);\n};\nexport function SiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.199 24C19.199 13.467 10.533 4.8 0 4.8V0c13.165 0 24 10.835 24 24h-4.801zM3.291 17.415c1.814 0 3.293 1.479 3.293 3.295 0 1.813-1.485 3.29-3.301 3.29C1.47 24 0 22.526 0 20.71s1.475-3.294 3.291-3.295zM15.909 24h-4.665c0-6.169-5.075-11.245-11.244-11.245V8.09c8.727 0 15.909 7.184 15.909 15.91z\"},\"child\":[]}]})(props);\n};\nexport function SiRstudioide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.178.002a12.002 12.002 0 0 0-8.662 3.515 12.002 12.002 0 0 0 0 16.97 12.002 12.002 0 0 0 16.97 0 12.002 12.002 0 0 0 0-16.97A12.002 12.002 0 0 0 12.179.002zM7.77 5.995c.562.128 1.05.217 1.663.217.921 0 1.863-.217 2.786-.217 1.79 0 3.45.814 3.45 2.8 0 1.54-.921 2.517-2.35 2.93l2.788 4.107h1.301v1.01h-1.986l-3.293-4.934h-1.757v3.924h1.718v1.01H7.77v-1.01h1.483V7.134L7.77 6.951v-.957zm4.466 1.012c-.596 0-1.213.053-1.864.127v3.798l.941.02c2.298.034 3.183-.85 3.183-2.026 0-1.376-.997-1.919-2.26-1.919z\"},\"child\":[]}]})(props);\n};\nexport function SiRte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.983 12.857V9.038s.734-.018 1.615-.018c.131 0 .258.01.373.016 1.41.115 1.992.883 1.992 1.807 0 1.036-.82 1.819-1.992 1.986a3.5 3.5 0 0 1-.474.028zm2.84 1.244c1.736-.168 3.197-1.446 3.197-3.102 0-1.763-1.018-3.324-4.049-3.45a9.497 9.497 0 0 0-.393-.01c-2.098 0-3.537.1-3.537.1s.097 1.035.097 1.558v7.624C.138 17.522 0 18.26 0 18.26h2.118s-.135-.737-.135-1.577v-3.101l1.988 2.08 1.006 1.043c.62.677 1.702 1.555 1.702 1.555h2.8s-1.253-.878-1.835-1.438zm19.055-7.198a8.123 8.123 0 0 0-2.036-.284c-1.784 0-3.321.541-4.603 1.682l.02-1.261c1.36-.925 2.9-1.34 4.583-1.34.738 0 1.378.1 2.056.276l-.02.927M11.282 18.259s.117-.778.117-1.458V9.402h-.501c-.68 0-1.736 0-2.516.077l-.066-1.718h8.124l-.041 1.718c-.802-.077-1.838-.077-2.539-.077h-.617v7.399c0 .68.136 1.458.136 1.458h-2.097m10.419-1.524c-1.838 0-3.386-1.315-3.666-3.175h3.482c.385 0 1.222.082 1.222.082V12.1s-.822.061-1.28.061h-3.424c.347-1.822 1.845-3.08 3.666-3.08.96 0 2.139.438 2.139.438l.023-1.622s-.84-.318-2.162-.318c-3.063 0-5.741 2.34-5.741 5.32 0 3.223 2.678 5.4 5.74 5.4 1.44 0 2.3-.384 2.3-.384l-.04-1.676c-.001 0-1.062.496-2.26.496Z\"},\"child\":[]}]})(props);\n};\nexport function SiRtl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.889v4.222h7.498V9.89H0zm8.25 0v4.222h7.5V9.89h-7.5zm8.252 0v4.222H24V9.89h-7.498zm-14.365.966H4.12c.61 0 .945.275.945.733 0 .397-.254.662-.691.723l.977.824h-.754l-.926-.795H2.656v.795h-.52v-2.28zm8.281 0h3.164v.448H12.26v1.832h-.52v-1.832h-1.322v-.448zm8.414 0h.518v1.832h2.32v.448h-2.838v-2.28zm-16.176.428v.631H4.06c.325 0 .478-.103.478-.316 0-.214-.153-.315-.478-.315H2.656z\"},\"child\":[]}]})(props);\n};\nexport function SiRtlzwei (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h7.38v-3.69H3.692L3.69 3.69h9.229V0H0zm16.61 0v3.69h3.7v16.62h-9.238V24H24V0h-7.39zm-.003 6.49l-3.689.717v9.227l3.69-.715V6.49zm-5.535 1.076l-3.69.715v9.229l3.69-.717V7.566z\"},\"child\":[]}]})(props);\n};\nexport function SiRtm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.584 9.054H1.98l-.487 1.413h3.408c.54 0 .594.25.51.494-.084.244-.18.323-.719.323h-3.43L0 14.946h1.917l.892-2.454c.263 0 .33.024.436.257l1.043 2.197h2.084l-1.148-2.46c1.368-.15 1.985-.822 2.206-1.698.211-.837-.173-1.734-1.846-1.734m2.817 0-.487 1.413H10l-1.541 4.48 2.036-.001 1.54-4.479h1.94l.486-1.413H8.4zm7.89 0h-1.306l-.485 1.414h.624c.272 0 .416.22.322.493l-1.368 3.985h2.036l1.37-3.988c.37-1.08.053-1.905-1.194-1.904m3.186 0h-1.16l-.486 1.414h.48c.271 0 .415.22.322.493l-1.368 3.985H19.3l1.37-3.988c.37-1.08.053-1.904-1.194-1.904m3.185 0h-1.16l-.485 1.414h.479c.272 0 .416.22.323.493l-1.369 3.985h2.036l1.37-3.988c.37-1.08.054-1.904-1.194-1.904\"},\"child\":[]}]})(props);\n};\nexport function SiRubocop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.06 0C7.71 0 4.121 3.25 3.584 7.455h16.952C19.998 3.25 16.41 0 12.06 0zM3.93 7.95a1.54 1.54 0 0 0-1.537 1.537v.772c-.358.22-.598.613-.598 1.06v2.065c0 .448.24.842.598 1.061v.802a1.54 1.54 0 0 0 1.536 1.536h16.14a1.54 1.54 0 0 0 1.536-1.536v-.802c.358-.22.6-.612.6-1.06V11.32c0-.448-.242-.842-.6-1.061v-.772A1.54 1.54 0 0 0 20.07 7.95zm1.47 3.146h13.2c.622 0 1.132.51 1.132 1.134s-.51 1.133-1.133 1.133H5.4c-.624 0-1.134-.51-1.134-1.133s.51-1.134 1.134-1.134zm-1.42 5.998v3.276A3.64 3.64 0 0 0 7.61 24h8.94a3.64 3.64 0 0 0 3.628-3.63v-3.276h-1.995v3.267c0 .898-.735 1.633-1.633 1.633h-.89v-.003a.62.62 0 0 1-.48-.23h-.002l-1.063-1.358h-.002a.622.622 0 0 0-.488-.245h-3.093a.62.62 0 0 0-.463.214h-.002L8.98 21.758h-.002a.62.62 0 0 1-.481.23v.004h-.89a1.638 1.638 0 0 1-1.633-1.633v-3.267zm4.996.795-.82.95.774.67.515-.596h5.046l.516.596.774-.67-.82-.95z\"},\"child\":[]}]})(props);\n};\nexport function SiRuby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.156.083c3.033.525 3.893 2.598 3.829 4.77L24 4.822 22.635 22.71 4.89 23.926h.016C3.433 23.864.15 23.729 0 19.139l1.645-3 2.819 6.586.503 1.172 2.805-9.144-.03.007.016-.03 9.255 2.956-1.396-5.431-.99-3.9 8.82-.569-.615-.51L16.5 2.114 20.159.073l-.003.01zM0 19.089zM5.13 5.073c3.561-3.533 8.157-5.621 9.922-3.84 1.762 1.777-.105 6.105-3.673 9.636-3.563 3.532-8.103 5.734-9.864 3.957-1.766-1.777.045-6.217 3.612-9.75l.003-.003z\"},\"child\":[]}]})(props);\n};\nexport function SiRubygems (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.81 7.9l-2.97 2.95 7.19 7.18 2.96-2.95 4.22-4.23-2.96-2.96v-.01H7.8zM12 0L1.53 6v12L12 24l10.47-6V6L12 0zm8.47 16.85L12 21.73l-8.47-4.88V7.12L12 2.24l8.47 4.88v9.73z\"},\"child\":[]}]})(props);\n};\nexport function SiRubymine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm3.056 3H6.92q.945 0 1.665.347t1.106.977c.262.42.392.902.392 1.46q0 .835-.399 1.478a2.6 2.6 0 0 1-1.125.99 2 2 0 0 1-.297.103q-.066.02-.13.04L10.276 12H8.264l-1.94-3.4H4.811V12H3.056Zm8.51 0h2.444l1.851 5.907.154.773.136-.773L17.937 3h2.482v9h-1.736V5.578l.026-.47L16.613 12H15.34l-2.07-6.846.026.424V12h-1.73ZM4.812 4.459V7.14h1.993q.444-.001.771-.161.335-.167.515-.47c.12-.205.18-.439.18-.713q0-.411-.18-.707a1.17 1.17 0 0 0-.515-.462 1.7 1.7 0 0 0-.77-.168ZM2.996 19.2h9.6V21h-9.6z\"},\"child\":[]}]})(props);\n};\nexport function SiRubyonrails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.741 19.365h8.36s-1.598-7.291 3.693-10.243l.134-.066c1.286-.637 4.907-2.431 10.702 1.854.19-.159.37-.286.37-.286s-5.503-5.492-11.63-4.878c-3.079.275-6.867 3.079-9.09 6.783C1.058 16.233.741 19.365.741 19.365Zm8.804-.783a10.682 10.682 0 0 1-.127-1.333l1.143.412c.063.498.159.963.254 1.376l-1.27-.455Zm-7.799-4.317L.529 13.82c-.201.455-.423.984-.529 1.27l1.217.444c.137-.359.36-.878.529-1.269Zm7.831.296.857.677c.042-.413.116-.825.222-1.238l-.762-.603c-.137.391-.233.783-.317 1.164Zm2.042-2.646-.508-.762c.191-.243.413-.486.656-.709l.476.72a5.958 5.958 0 0 0-.624.751ZM4.19 8.878l.752.656c-.254.265-.498.551-.72.836l-.815-.698c.244-.265.508-.529.783-.794Zm9.799 1.027-.243-.73c.265-.117.571-.233.931-.339l.233.698a6.82 6.82 0 0 0-.921.371Zm3.122-.656.042-.667c.339.021.688.064 1.048.138l-.042.656a5.859 5.859 0 0 0-1.048-.127ZM8.942 6.392l-.476-.731c-.265.138-.54.286-.826.455l.487.741c.275-.169.54-.328.815-.465Zm9.217-.053.042-.709c-.095-.053-.36-.18-1.026-.371l-.043.699c.349.116.688.243 1.027.381ZM13.238 5.28h.106l-.212-.645c-.328 0-.666.021-1.016.063l.201.625a8.87 8.87 0 0 1 .921-.043Z\"},\"child\":[]}]})(props);\n};\nexport function SiRubysinatra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.224 10.525c-1.215.4-3.32 1.384-3.943 1.934-.069.06-.138.125-.207.194-.49.43-.76.851-.89 1.285A4.423 4.423 0 0 0 0 15.208c-.005.842.247 1.369.247 1.369.714 1.428 2.416 2.4 4.21 2.963 1.777.593 5.622.289 7.521.046 5.091-.684 8.389-1.657 10.319-3.237C23.924 15.042 24 13.644 24 13.127c0-.06-.007-.134-.02-.219-.032-.553-.258-1.62-1.49-2.38a2.96 2.96 0 0 0-.33-.197c-.125-.065-.25-.127-.375-.186l-.035-.027-.191-.078a12.313 12.313 0 0 0-.629-.264c-.515-.225-.971-.387-1.372-.477a69.929 69.929 0 0 1-.041-1.703c0-.7-.244-1.08-.441-1.277-.12-.119-.557-.265-.997-.4a19.118 19.118 0 0 0-.93-.287 4.657 4.657 0 0 0-.079-.027v.005l-.417-.12h-.001l-.448-.128a1.5 1.5 0 0 1-.094-.015l-.033-.01a2.161 2.161 0 0 0-.07-.02l-.028-.008a64.267 64.267 0 0 1-.641-.19 1.72 1.72 0 0 1-.091-.012v-.003a51.125 51.125 0 0 1-.213-.057v-.004a30.91 30.91 0 0 0-.32-.09v-.001a17.568 17.568 0 0 0-.669-.167 70.288 70.288 0 0 0-2.689-.502c-.182-.046-1.367-.152-1.367-.152a5.944 5.944 0 0 0-1.106.023 4.01 4.01 0 0 0-.779.19c-.113.024-.245.103-.383.216a1.363 1.363 0 0 0-.177.146l-.002.002a4.226 4.226 0 0 0-.125.12l-.007.008c-.217.217-.36.412-.454.584-.174.249-.304.479-.341.61-.032.119-.129.578-.228 1.044-.091.432-.184.871-.228 1.054-.048.2-.334.906-.601 1.567-.124.304-.243.598-.334.83Zm14.384.642c0-.06.076-.06.076.015 0 0 0 .016-.003.036a.092.092 0 0 1 .003.025c0 .03 0 .456-.03.957-.008.137-.02.281-.031.426-.011.144-.023.289-.03.425-.007.225-.008.431-.007.59.007.154.007.246.007.246v.106c0 .259-.152.593-.396.745l-.04.026h-.001l-.021.013c-.115.088-.251.166-.409.23-.22.106-.516.223-.942.339-.836.243-1.459.35-1.869.395-1.003.122-2.188.182-3.601.182-.29 0-1.414 0-1.687-.015-3.739-.106-5.988-1.23-5.988-2.036v-.106s.32-2.478.32-2.63c0-.151.09-.273.09-.182v.06c0 .03 0 .061.002.093.002.01.005.018.008.025.003.007.006.013.006.02.32 1.018 3.45 1.717 7.279 1.717h.638l.205-.003h.001c1.15-.012 3.818-.042 5.842-.954.35-.228.578-.456.578-.745z\"},\"child\":[]}]})(props);\n};\nexport function SiRuff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 0C1.338 0 0 1.338 0 3v18c0 1.662 1.338 3 3 3h18c1.662 0 3-1.338 3-3V3c0-1.662-1.338-3-3-3Zm4.2 7.2h8.641c.53 0 .959.43.959.959v3.266c0 .53-.43.959-.959.959h-.961v.768h1.92V16.8h-4.416v-2.88h-.768v2.88H7.2Zm3.648 3.648v.768h2.304v-.768z\"},\"child\":[]}]})(props);\n};\nexport function SiRumahweb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12.149c.028-.275.148-.543.36-.753l7.182-7.092a.972.972 0 0 1 .103-.091c.308-.265 1.807-1.473 3.743-1.553h.402c1.126.047 2.374.5 3.61 1.731 2.534 2.542 5.076 5.077 7.615 7.615 1.14 1.14 1.198 2.585.642 3.795a4.043 4.043 0 0 1-.819 1.173 3.973 3.973 0 0 1-1.188.823c-1.208.537-2.646.458-3.86-.753l-.053-.056-6.222-6.061a.93.93 0 0 0-1.03-.207 1.6 1.6 0 0 0-.499.325c-.15.141-.272.304-.352.473-.136.291-.141.627.085.907l6.806 6.802c.483.485.481 1.27-.005 1.752a1.246 1.246 0 0 1-1.758-.004l-6.889-6.89c-.999-1.138-1.021-2.48-.488-3.614a4.087 4.087 0 0 1 2.185-2.05c1.183-.468 2.553-.365 3.679.731 2.103 2.044 4.197 4.098 6.304 6.138.359.356.76.392 1.085.248a1.6 1.6 0 0 0 .76-.763c.154-.335.148-.726-.146-1.018-2.54-2.533-5.07-5.077-7.615-7.605-1.977-1.973-4.04-.345-4.347-.082l-7.178 7.086a1.245 1.245 0 0 1-1.757-.003A1.248 1.248 0 0 1 0 12.402v-.253Z\"},\"child\":[]}]})(props);\n};\nexport function SiRumble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.4528 13.5458c.8064-.6542.9297-1.8381.2756-2.6445a1.8802 1.8802 0 0 0-.2756-.2756 21.2127 21.2127 0 0 0-4.3121-2.776c-1.066-.51-2.256.2-2.4261 1.414a23.5226 23.5226 0 0 0-.14 5.5021c.116 1.23 1.292 1.964 2.372 1.492a19.6285 19.6285 0 0 0 4.5062-2.704v-.008zm6.9322-5.4002c2.0335 2.228 2.0396 5.637.014 7.8723A26.1487 26.1487 0 0 1 8.2946 23.846c-2.6848.6713-5.4168-.914-6.1662-3.5781-1.524-5.2002-1.3-11.0803.17-16.3045.772-2.744 3.3521-4.4661 6.0102-3.832 4.9242 1.174 9.5443 4.196 13.0764 8.0121v.002z\"},\"child\":[]}]})(props);\n};\nexport function SiRundeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.35 4.8 16.325 0H.115L3.14 4.8h16.21zM.115 24h16.21l3.025-4.8H3.14L.115 24zM6.163 9.6h16.21l1.512 2.4-1.512 2.4H6.163L7.675 12 6.163 9.6z\"},\"child\":[]}]})(props);\n};\nexport function SiRunkeeper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.429 10.42c-.52 0-1.091.318-1.45.619l.029.04c.556-.39 1.33-.644 1.544-.263.112.201-.079.607-.348.928.065-.142.022-.414-.353-.414-.624 0-1.851.826-1.851 1.672 0 .339.235.56.622.56 1.035 0 2.44-1.698 2.44-2.551 0-.301-.173-.59-.633-.59zm8.738.714v1.903h.454v-.306l.345-.229.628.535h.626l-.91-.764.891-.595h-.68l-.9.619v-1.163zm-7.464.19v1.712h.453v-.543h.98l.546.544h.58l-.589-.575a.773.773 0 0 0 .399-.196.485.485 0 0 0 .14-.357.495.495 0 0 0-.23-.433c-.152-.102-.363-.153-.634-.153zm-1.853.207c.297 0 .274.265.1.492l-.096.106c-.345.34-.664.52-.88.52v-.001c-.179 0-.265-.138-.22-.297.093-.33.69-.82 1.096-.82zm17.228.09a1.29 1.29 0 0 0-.012 0 1.251 1.251 0 0 0-.403.063.76.76 0 0 0-.292.166v-.172h-.45v1.902h.455v-.711a.778.778 0 0 0 .293.163 1.262 1.262 0 0 0 .397.061 1.29 1.29 0 0 0 .498-.092.816.816 0 0 0 .349-.26.648.648 0 0 0 0-.769.82.82 0 0 0-.349-.259 1.29 1.29 0 0 0-.486-.092zm-9.133 0a1.103 1.103 0 0 0-.011 0 .96.96 0 0 0-.44.096.71.71 0 0 0-.29.258v-.297h-.432v1.359h.454v-.568a.453.453 0 0 1 .081-.271.494.494 0 0 1 .22-.17.82.82 0 0 1 .312-.057.561.561 0 0 1 .261.06.441.441 0 0 1 .18.167.475.475 0 0 1 .065.248v.59h.456v-.663a.71.71 0 0 0-.117-.414.707.707 0 0 0-.314-.254 1.103 1.103 0 0 0-.425-.084zm6.667 0a1.487 1.487 0 0 0-.523.094.867.867 0 0 0-.364.263.594.594 0 0 0-.132.378.6.6 0 0 0 .133.385.849.849 0 0 0 .385.26c.168.061.366.092.594.091a2.573 2.573 0 0 0 .418-.03c.123-.02.256-.049.397-.085v-.33a5.593 5.593 0 0 1-.398.087 2.366 2.366 0 0 1-.4.03c-.178 0-.328-.024-.45-.073-.12-.049-.195-.12-.224-.213l1.569.003v-.078a.687.687 0 0 0-.131-.42.813.813 0 0 0-.36-.27 1.487 1.487 0 0 0-.514-.092zm7.388 0a1.465 1.465 0 0 0-.582.111c-.165.072-.279.167-.342.284v-.338h-.449v1.359h.454v-.5a.387.387 0 0 1 .144-.306.897.897 0 0 1 .357-.18 1.493 1.493 0 0 1 .418-.052zm-9.66 0a1.488 1.488 0 0 0-.524.094.87.87 0 0 0-.363.263.594.594 0 0 0-.133.378.601.601 0 0 0 .134.385.85.85 0 0 0 .385.26c.168.061.366.092.594.092a2.575 2.575 0 0 0 .418-.03c.123-.021.255-.05.397-.086v-.33a5.19 5.19 0 0 1-.398.087 2.367 2.367 0 0 1-.4.03c-.178 0-.328-.024-.45-.072-.12-.05-.195-.12-.224-.213l1.569.002v-.078a.687.687 0 0 0-.131-.42.813.813 0 0 0-.36-.27 1.488 1.488 0 0 0-.515-.092zm6.958 0a1.488 1.488 0 0 0-.523.094.87.87 0 0 0-.364.263.594.594 0 0 0-.132.378.601.601 0 0 0 .134.385.85.85 0 0 0 .385.26c.168.061.366.092.594.092a2.574 2.574 0 0 0 .418-.03c.123-.021.255-.05.397-.086v-.33c-.147.037-.28.067-.398.087a2.367 2.367 0 0 1-.4.03 1.23 1.23 0 0 1-.45-.072c-.12-.05-.195-.12-.224-.213l1.569.002v-.078a.687.687 0 0 0-.131-.42.813.813 0 0 0-.36-.27 1.488 1.488 0 0 0-.515-.092zm-17.142.057h1.15a.72.72 0 0 1 .304.054.183.183 0 0 1 .115.177c0 .08-.038.14-.115.176a.703.703 0 0 1-.304.056h-1.15zm3.837 0v.645a.359.359 0 0 1-.07.222.455.455 0 0 1-.197.146.75.75 0 0 1-.287.052.71.71 0 0 1-.279-.052.447.447 0 0 1-.192-.148.365.365 0 0 1-.07-.22v-.645h-.456v.645a.688.688 0 0 0 .123.407.781.781 0 0 0 .35.268c.15.063.327.095.53.095.204 0 .38-.032.532-.095a.786.786 0 0 0 .35-.268.687.687 0 0 0 .122-.407v-.645zm6.343.243c.14 0 .258.028.354.083a.345.345 0 0 1 .178.217h-1.09a.352.352 0 0 1 .188-.22c.1-.053.224-.08.37-.08zm2.272 0c.14 0 .258.028.355.083a.345.345 0 0 1 .177.217h-1.09a.352.352 0 0 1 .189-.22c.1-.053.223-.08.37-.08zm4.687 0c.14 0 .258.028.354.083a.345.345 0 0 1 .177.217h-1.089a.356.356 0 0 1 .188-.22c.1-.053.223-.08.37-.08zm-2.293.033a.866.866 0 0 1 .29.05.46.46 0 0 1 .203.143.331.331 0 0 1 .071.209.335.335 0 0 1-.07.211.458.458 0 0 1-.204.142.867.867 0 0 1-.312.05 1.004 1.004 0 0 1-.305-.044.52.52 0 0 1-.227-.137.313.313 0 0 1-.086-.222.305.305 0 0 1 .086-.22.541.541 0 0 1 .228-.135.981.981 0 0 1 .304-.047.866.866 0 0 1 .022 0z\"},\"child\":[]}]})(props);\n};\nexport function SiRunkit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.97 14.797a3 3 0 01-1.47 3.02l-9 5.2a3 3 0 01-3 0l-9-5.2a3 3 0 01-1.47-3.02l1.32-7.2a3 3 0 01.98-1.82 2.96 2.96 0 01.49-.35l7.55-4.37a3.01 3.01 0 013.28.02l7.53 4.35c.1.05.19.1.28.17a3 3 0 011.19 2zm-9.54-10.77l-7.72 1.59c-.43.08-.51.64-.14.86l5.6 3.23c.23.13.5.07.63-.19l1.58-3.6.53-1.22c.16-.35-.11-.75-.5-.67z\"},\"child\":[]}]})(props);\n};\nexport function SiRunrundotit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.933 10.995c.289-1.241.554-2.402.715-3.377.293-1.762.364-2.985.28-4.197h.134c2.995 0 4.642 1.256 4.642 3.364 0 2.769-2.795 4.174-5.771 4.21Zm10.006 7.318c-.544.701-1.352 1.4-2.306 1.4-1.844 0-3.433-2.808-3.71-6.624 3.514-.662 6.575-3.086 6.575-6.823C22.498 3.18 19.313 0 13.55 0 6.478 0 .471 3.84.471 8.648c0 1.696.886 3.249 2.396 3.249.874 0 1.775-.345 2.36-1.167-.4-.767-.622-1.376-.575-2.277.086-1.613 1.982-3.354 3.734-4.198.029 2.846-.402 5.014-1.105 8.305-.755 3.537-1.747 6.57-1.747 9.087 0 1.073.502 2.353 1.773 2.353 1.351 0 2.533-.789 3.302-1.663-.199-1.552-.226-3.313.25-6.255a55.23 55.23 0 0 1 .636-3.187c.43 4.649 2.332 11.045 6.867 11.045 2.742 0 5.167-1.693 5.167-3.918 0-1.012-.636-1.83-1.59-1.709\"},\"child\":[]}]})(props);\n};\nexport function SiRust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.8346 11.7033l-1.0073-.6236a13.7268 13.7268 0 00-.0283-.2936l.8656-.8069a.3483.3483 0 00-.1154-.578l-1.1066-.414a8.4958 8.4958 0 00-.087-.2856l.6904-.9587a.3462.3462 0 00-.2257-.5446l-1.1663-.1894a9.3574 9.3574 0 00-.1407-.2622l.49-1.0761a.3437.3437 0 00-.0274-.3361.3486.3486 0 00-.3006-.154l-1.1845.0416a6.7444 6.7444 0 00-.1873-.2268l.2723-1.153a.3472.3472 0 00-.417-.4172l-1.1532.2724a14.0183 14.0183 0 00-.2278-.1873l.0415-1.1845a.3442.3442 0 00-.49-.328l-1.076.491c-.0872-.0476-.1742-.0952-.2623-.1407l-.1903-1.1673A.3483.3483 0 0016.256.955l-.9597.6905a8.4867 8.4867 0 00-.2855-.086l-.414-1.1066a.3483.3483 0 00-.5781-.1154l-.8069.8666a9.2936 9.2936 0 00-.2936-.0284L12.2946.1683a.3462.3462 0 00-.5892 0l-.6236 1.0073a13.7383 13.7383 0 00-.2936.0284L9.9803.3374a.3462.3462 0 00-.578.1154l-.4141 1.1065c-.0962.0274-.1903.0567-.2855.086L7.744.955a.3483.3483 0 00-.5447.2258L7.009 2.348a9.3574 9.3574 0 00-.2622.1407l-1.0762-.491a.3462.3462 0 00-.49.328l.0416 1.1845a7.9826 7.9826 0 00-.2278.1873L3.8413 3.425a.3472.3472 0 00-.4171.4171l.2713 1.1531c-.0628.075-.1255.1509-.1863.2268l-1.1845-.0415a.3462.3462 0 00-.328.49l.491 1.0761a9.167 9.167 0 00-.1407.2622l-1.1662.1894a.3483.3483 0 00-.2258.5446l.6904.9587a13.303 13.303 0 00-.087.2855l-1.1065.414a.3483.3483 0 00-.1155.5781l.8656.807a9.2936 9.2936 0 00-.0283.2935l-1.0073.6236a.3442.3442 0 000 .5892l1.0073.6236c.008.0982.0182.1964.0283.2936l-.8656.8079a.3462.3462 0 00.1155.578l1.1065.4141c.0273.0962.0567.1914.087.2855l-.6904.9587a.3452.3452 0 00.2268.5447l1.1662.1893c.0456.088.0922.1751.1408.2622l-.491 1.0762a.3462.3462 0 00.328.49l1.1834-.0415c.0618.0769.1235.1528.1873.2277l-.2713 1.1541a.3462.3462 0 00.4171.4161l1.153-.2713c.075.0638.151.1255.2279.1863l-.0415 1.1845a.3442.3442 0 00.49.327l1.0761-.49c.087.0486.1741.0951.2622.1407l.1903 1.1662a.3483.3483 0 00.5447.2268l.9587-.6904a9.299 9.299 0 00.2855.087l.414 1.1066a.3452.3452 0 00.5781.1154l.8079-.8656c.0972.0111.1954.0203.2936.0294l.6236 1.0073a.3472.3472 0 00.5892 0l.6236-1.0073c.0982-.0091.1964-.0183.2936-.0294l.8069.8656a.3483.3483 0 00.578-.1154l.4141-1.1066a8.4626 8.4626 0 00.2855-.087l.9587.6904a.3452.3452 0 00.5447-.2268l.1903-1.1662c.088-.0456.1751-.0931.2622-.1407l1.0762.49a.3472.3472 0 00.49-.327l-.0415-1.1845a6.7267 6.7267 0 00.2267-.1863l1.1531.2713a.3472.3472 0 00.4171-.416l-.2713-1.1542c.0628-.0749.1255-.1508.1863-.2278l1.1845.0415a.3442.3442 0 00.328-.49l-.49-1.076c.0475-.0872.0951-.1742.1407-.2623l1.1662-.1893a.3483.3483 0 00.2258-.5447l-.6904-.9587.087-.2855 1.1066-.414a.3462.3462 0 00.1154-.5781l-.8656-.8079c.0101-.0972.0202-.1954.0283-.2936l1.0073-.6236a.3442.3442 0 000-.5892zm-6.7413 8.3551a.7138.7138 0 01.2986-1.396.714.714 0 11-.2997 1.396zm-.3422-2.3142a.649.649 0 00-.7715.5l-.3573 1.6685c-1.1035.501-2.3285.7795-3.6193.7795a8.7368 8.7368 0 01-3.6951-.814l-.3574-1.6684a.648.648 0 00-.7714-.499l-1.473.3158a8.7216 8.7216 0 01-.7613-.898h7.1676c.081 0 .1356-.0141.1356-.088v-2.536c0-.074-.0536-.0881-.1356-.0881h-2.0966v-1.6077h2.2677c.2065 0 1.1065.0587 1.394 1.2088.0901.3533.2875 1.5044.4232 1.8729.1346.413.6833 1.2381 1.2685 1.2381h3.5716a.7492.7492 0 00.1296-.0131 8.7874 8.7874 0 01-.8119.9526zM6.8369 20.024a.714.714 0 11-.2997-1.396.714.714 0 01.2997 1.396zM4.1177 8.9972a.7137.7137 0 11-1.304.5791.7137.7137 0 011.304-.579zm-.8352 1.9813l1.5347-.6824a.65.65 0 00.33-.8585l-.3158-.7147h1.2432v5.6025H3.5669a8.7753 8.7753 0 01-.2834-3.348zm6.7343-.5437V8.7836h2.9601c.153 0 1.0792.1772 1.0792.8697 0 .575-.7107.7815-1.2948.7815zm10.7574 1.4862c0 .2187-.008.4363-.0243.651h-.9c-.09 0-.1265.0586-.1265.1477v.413c0 .973-.5487 1.1846-1.0296 1.2382-.4576.0517-.9648-.1913-1.0275-.4717-.2704-1.5186-.7198-1.8436-1.4305-2.4034.8817-.5599 1.799-1.386 1.799-2.4915 0-1.1936-.819-1.9458-1.3769-2.3153-.7825-.5163-1.6491-.6195-1.883-.6195H5.4682a8.7651 8.7651 0 014.907-2.7699l1.0974 1.151a.648.648 0 00.9182.0213l1.227-1.1743a8.7753 8.7753 0 016.0044 4.2762l-.8403 1.8982a.652.652 0 00.33.8585l1.6178.7188c.0283.2875.0425.577.0425.8717zm-9.3006-9.5993a.7128.7128 0 11.984 1.0316.7137.7137 0 01-.984-1.0316zm8.3389 6.71a.7107.7107 0 01.9395-.3625.7137.7137 0 11-.9405.3635z\"},\"child\":[]}]})(props);\n};\nexport function SiRustdesk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.6081 5.6014-1.9708 1.9588c-.347.3111-.515.8114-.3203 1.2342 1.3127 2.7471.8142 6.0223-1.3403 8.175-2.1554 2.1516-5.4343 2.6492-8.1842 1.3375-.4052-.1819-.8806-.0277-1.1926.288l-2.0031 2.0003a1.0652 1.0652 0 0 0 .192 1.6708 12.0048 12.0048 0 0 0 14.6864-1.765A11.9725 11.9725 0 0 0 22.2808 5.836a1.0652 1.0652 0 0 0-1.6727-.2345zM3.5614 3.4737A11.9716 11.9716 0 0 0 1.6967 18.137a1.0652 1.0652 0 0 0 1.6727.2345L5.33 16.4238c.3554-.3102.528-.816.3314-1.2444-1.3136-2.747-.816-6.0222 1.3394-8.1749C9.1553 4.852 12.4351 4.3543 15.185 5.666c.4006.1791.8695.0305 1.1824-.2769l2.0142-2.0123a1.0634 1.0634 0 0 0-.192-1.6708A12.0085 12.0085 0 0 0 3.519 3.5272z\"},\"child\":[]}]})(props);\n};\nexport function SiRxdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.096 3.452h1.15v-1.15h1.151v1.15h6.411v4.932H4.192V1.15h1.15V2.3h1.151V0h1.15v1.15h1.152v2.302h1.15V1.151h1.151v2.301zM4.192 14.466h15.616V9.534H4.192v4.932zm15.616 1.15H4.192v4.932h6.41v1.15h1.151v-1.15h1.151v2.301h1.15v-2.301h1.152v2.301h1.15V24h1.151v-2.301h1.15v1.15h1.151v-7.233z\"},\"child\":[]}]})(props);\n};\nexport function SiRyanair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.847.008c-.718.047-1.464.288-1.986.81-.796.996-1.692 1.891-2.787 2.488a.3.3 0 0 1-.396 0c-.1-.299.198-.497.198-.696.1-.398.2-.895 0-1.393C4.478.72 3.583.62 2.886.72c-.298 0-.596.1-.994.2-.1 0-.3.098-.3.297.1.398-.098.897-.198 1.195-.1.2 0 .298 0 .597-.1 0 0 .099-.099.099 0 .497.697.298.995.596 0 .1.1.2.1.3.099.099.098.298.098.398C1.991 5.198.6 5.694.201 6.092-.396 6.888.7 7.187.7 7.585v.198c0 .497.198.797.198 1.195.398.995.994 1.89 1.591 2.885.2.299.4.696.698 1.193.1.2.197.398.396.498 1.99 1.99 4.676 3.183 6.467 5.172l1.195 1.493c.597.796 1.193 1.592 1.69 2.487.299.398.498.896.896 1.294.299-.1.1-.497.1-.696.099 0-.1-.001 0-.1-.1-.399-.3-.796-.4-1.194-.099-.1-.098-.198-.098-.198-.1-.497-.299-.995-.498-1.492-.398-.796-.695-1.692-1.193-2.487-.497-.796-1.193-1.593-2.089-2.19a5.537 5.537 0 0 1-1.593-1.394c-.597-.795-1.094-1.69-1.591-2.586-.2-.398-.298-.894-.597-1.292-.497-.696-1.59-1.095-1.69-1.89.1-.995.497-1.791 1.094-2.587 1.094-1.492 2.984-2.29 4.974-2.19 2.09-.1 4.08.797 6.368.896 1.193.1 2.486-.1 3.58-.398l.896-.298a9.874 9.874 0 0 0 2.686-1.393c.199-.1.198-.299.198-.398-.1-.1-.198 0-.297 0-.697.1-1.195.398-1.89.398h-1.095c-1.691-.199-3.284-.596-4.776-1.094C14.129.92 12.437.322 10.546.024a4.011 4.011 0 0 0-.7-.016zm.264 4.685c-.303.056-.51.28-.659.504a18.378 18.378 0 0 0-1.492 5.671c0 .2.001.498.2.597 0 .1.198.1.198 0 .796-1.89 1.195-3.78 2.29-5.57.099-.3.496-.598.197-.996-.099-.1-.199-.2-.398-.2a.88.88 0 0 0-.336-.006zm2.922.504c-.199 0-.197.1-.297.2-1.094 1.79-1.89 3.878-2.487 5.868-.299.895-.498 1.89-.3 2.786 0 .1.101.1.2.1.1 0 .2-.1.2-.199.596-2.387 1.988-4.577 3.083-6.766.199-.597.597-1.093.497-1.79-.199-.198-.597-.2-.896-.2zm6.568 0c-.398.1-.697.498-.797.796-.994 2.487-2.387 4.775-3.482 7.163-.795 2.188-1.79 4.279-1.89 6.666 0 .2 0 .398.2.597.1 0 .198.1.198 0 .299-.498.398-1.096.597-1.693.696-1.89 1.392-3.78 2.487-5.57 1.293-2.09 2.886-4.08 3.682-6.368.1-.398.298-.696.1-1.094-.2-.298-.597-.398-1.095-.497zm-3.284.099c-.398.1-.597.399-.796.697-.498 1.095-1.094 1.99-1.592 3.084-1.194 2.189-1.79 4.477-2.089 6.964 0 .299 0 .696.1.995.099 0 .299 0 .299-.1.199-.696.397-1.392.596-1.989.896-3.084 2.986-5.571 4.279-8.456.1-.2.298-.697 0-.896-.199-.1-.498-.2-.797-.3z\"},\"child\":[]}]})(props);\n};\nexport function SiRye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.372 0 0 5.372 0 11.999c0 5.422 3.597 10.003 8.536 11.49.011-.186.028-.406.049-.669.026-.316-.142-.784-.382-.963-2.67-1.997-3.534-4.125-2.906-7.394a.197.197 0 0 1 .335-.101c.72.747 1.234 1.218 1.988 2.094 1.121 1.305 1.557 2.839 1.42 4.59.123-.531.3-1.057.358-1.596.242-2.222.775-4.326 2.426-5.958.425-.42.939-.823 1.488-1.033 1.448-.552 2.953-.965 3.931-2.339.08.049-.451 1.869-.541 2.263-.645 2.193-.42 2.3-1.186 4.45-.506 1.417-1.596 2.404-3.125 2.798-1.504.386-2.349 1.4-2.56 2.898-.077.558-.123.947-.149 1.246.75.147 1.525.225 2.318.225 6.628 0 12-5.372 12-11.999C24 5.374 18.629 0 12 0Zm-1.158 13.463a1.425 1.425 0 0 1-.306.689c-.578.658-1.105 1.844-1.418 3.425-.567-1.75-2.556-3.304-3.273-4.606-.247-.448-.051-1.963.281-3.223.607-1.782.637-2.096.981-3.594 1.689 1.365 2.041 2.267 2.954 3.879.456.804.957 1.904.782 3.43zm4.227-2.272c-1.586.647-2.565 1.018-3.576 1.82.252-1.354-.602-2.944-1.137-4.146-.079-.177.948-1.858 1.13-2.14 1.205-1.498 1.17-1.767 2.83-2.38 1.354-.5 2.719-.97 4.065-1.449-.24 3.291-.805 7.273-3.312 8.295z\"},\"child\":[]}]})(props);\n};\nexport function SiS7Airlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.004 0C5.375 0 0 5.373 0 12.002 0 18.632 5.375 24 12.004 24 18.63 24 24 18.632 24 12.002 24 5.373 18.631 0 12.004 0zm-.875 5.739h1.705L12 7.825h-1.168c-1.255 0-2.061.004-2.496.148-.423.132-.735.29-.906.54-.157.202-.21.477-.21.716 0 .25.027.487.275.806.305.305.809.699 1.797 1.307 1.97 1.229 2.552 2.204 2.552 3.487 0 2.09-1.97 4.084-5.272 4.084-.992 0-2.377-.146-2.961-.332l-.307-.09c.12-.397.512-1.493.685-1.956l.31.078c.648.16 1.664.252 2.338.252 1.932 0 2.682-.872 2.682-1.638 0-.7-.382-1.084-2.299-2.246-1.796-1.11-2.417-2.076-2.417-3.409 0-1.6 1.03-2.818 2.522-3.399.888-.33 2.114-.434 4.004-.434zm2.959 0h5.871c.276 0 .329.195.223.407-.384.952-4.007 10.028-4.007 10.028h-2.421s2.861-7.291 3.336-8.377c-.33 0-.581.028-1.89.028h-1.947Z\"},\"child\":[]}]})(props);\n};\nexport function SiSabanci (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.3877 8.88a15.8031 15.8031 0 0 0-1.5366.1053c-1.1437.1457-1.5395.6461-1.5395 1.8724 0 .9713.2576 1.44.9035 1.661.3132.1092.8498.155 1.7434.155h1.6998a8.7053 8.7053 0 0 1 .923.0194c.3787.0365.5629.2113.5629.5246 0 .5463-.2429.6-2.4283.6a8.499 8.499 0 0 1-1.1724-.0631c-.2768-.0656-.34-.1751-.3595-.6365H2.3386v.3595c0 .8766.2959 1.3186.988 1.4935.4516.1214 1.0785.1579 2.4723.1579a23.1753 23.1753 0 0 0 2.5834-.0925c1.1704-.1263 1.6125-.6312 1.6125-1.8672 0-.6386-.129-1.1-.3766-1.3768-.2865-.3302-.6651-.442-1.5879-.4856-.4978-.0195-.8668-.0294-.9713-.0294H5.308a3.181 3.181 0 0 1-.7284-.036.471.471 0 0 1-.4127-.4857c0-.34.1652-.4716.6265-.508.2866-.017 1.117-.046 1.6998-.046 1.2652 0 1.44.0752 1.44.6095h1.804c0-1.0612-.2037-1.4862-.8204-1.717-.4711-.1748-.9595-.211-2.7589-.211a15.8031 15.8031 0 0 0-.7702-.0033Zm11.2217.0446-3.4603 6.1508h2.1224l.59-1.0975h3.9677l.6071 1.0975h2.0493l-3.3678-6.1508Zm1.236 1.3185 1.3379 2.4553H16.534ZM0 12.0012a6.1532 6.1532 0 0 1 11.998-1.928 6.1556 6.1556 0 1 1 0 3.8536A6.1532 6.1532 0 0 1 0 12.0012Z\"},\"child\":[]}]})(props);\n};\nexport function SiSafari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm-.004.953h.006c.063 0 .113.05.113.113v1.842c0 .063-.05.113-.113.113h-.006a.112.112 0 0 1-.113-.113V1.066c0-.063.05-.113.113-.113zm-.941.041c.056.001.104.046.11.104l.077.918a.112.112 0 0 1-.101.12h-.01a.11.11 0 0 1-.12-.1l-.08-.919a.112.112 0 0 1 .102-.12h.01l.012-.003zm1.892 0H12.965a.113.113 0 0 1 .103.121l-.08.92a.111.111 0 0 1-.12.102h-.009a.111.111 0 0 1-.101-.121l.078-.92a.112.112 0 0 1 .111-.102zm-2.838.123a.11.11 0 0 1 .106.092l.32 1.818c.01.06-.03.119-.09.13l-.01.001a.111.111 0 0 1-.128-.09l-.32-1.818a.111.111 0 0 1 .09-.129l.01-.002a.103.103 0 0 1 .022-.002zm3.784.002h.021l.008.002c.061.01.102.07.092.131l-.32 1.814c-.011.062-.07.101-.132.09h-.005a.113.113 0 0 1-.092-.13l.32-1.815a.111.111 0 0 1 .108-.092zm-4.715.203c.048.002.09.035.103.084l.239.893a.112.112 0 0 1-.079.139l-.005.001a.114.114 0 0 1-.14-.08l-.237-.894a.11.11 0 0 1 .078-.137l.006-.002a.123.123 0 0 1 .035-.004zm5.644 0a.11.11 0 0 1 .033.004l.006.002c.06.016.097.079.08.139l-.24.892a.112.112 0 0 1-.137.08l-.005-.002a.114.114 0 0 1-.08-.138l.24-.893a.112.112 0 0 1 .103-.084zm-6.562.285a.11.11 0 0 1 .107.073L9 3.42a.107.107 0 0 1-.064.139l-.012.005a.11.11 0 0 1-.14-.066L8.15 1.76a.11.11 0 0 1 .065-.14l.014-.005a.106.106 0 0 1 .03-.008zm7.469.002c.014 0 .028.001.042.006l.012.006c.057.02.087.082.067.139l-.633 1.738a.11.11 0 0 1-.14.066l-.013-.003A.11.11 0 0 1 15 3.42l.633-1.738a.108.108 0 0 1 .096-.073zm-8.352.366a.112.112 0 0 1 .105.064l.393.838a.112.112 0 0 1-.055.148l-.008.004a.11.11 0 0 1-.146-.054l-.395-.838a.112.112 0 0 1 .055-.149l.008-.004a.11.11 0 0 1 .043-.01zm9.246 0a.11.11 0 0 1 .043.01l.006.003a.11.11 0 0 1 .053.149l-.391.838a.112.112 0 0 1-.148.054l-.006-.002a.112.112 0 0 1-.055-.148l.393-.84a.112.112 0 0 1 .105-.064zm-10.092.44c.04-.002.08.018.102.056l.922 1.597a.113.113 0 0 1-.041.155l-.006.002a.113.113 0 0 1-.154-.041l-.922-1.598a.113.113 0 0 1 .04-.154l.007-.002a.11.11 0 0 1 .052-.016zm10.94.001c.018 0 .035.004.052.014l.004.002a.114.114 0 0 1 .041.156l-.923 1.596a.114.114 0 0 1-.157.04l-.004-.001a.112.112 0 0 1-.04-.155l.925-1.595a.113.113 0 0 1 .102-.057zM5.729 2.93a.11.11 0 0 1 .093.047l.532.753a.114.114 0 0 1-.028.159l-.004.002a.114.114 0 0 1-.158-.028l-.531-.752a.114.114 0 0 1 .027-.158l.006-.002a.113.113 0 0 1 .063-.021zm12.542 0a.11.11 0 0 1 .063.02l.006.003a.112.112 0 0 1 .027.156l-.531.756a.112.112 0 0 1-.156.028l-.006-.004a.112.112 0 0 1-.028-.157l.532-.755a.11.11 0 0 1 .093-.047zm.747.578a.11.11 0 0 1 .08.027l.006.004c.047.04.053.111.013.158L17.932 5.11a.11.11 0 0 1-.157.016l-.005-.006a.11.11 0 0 1-.014-.156l1.185-1.414a.114.114 0 0 1 .077-.041zM4.984 3.51a.11.11 0 0 1 .077.039L6.244 4.96a.112.112 0 0 1-.014.158l-.003.004a.112.112 0 0 1-.159-.014L4.883 3.697a.112.112 0 0 1 .013-.158l.006-.004a.111.111 0 0 1 .082-.025zm-.714.64c.027 0 .055.01.076.032l.658.66a.107.107 0 0 1 0 .152l-.01.01a.107.107 0 0 1-.152 0l-.66-.658a.11.11 0 0 1 0-.155l.01-.01a.111.111 0 0 1 .078-.03zm15.462 0c.028 0 .055.01.077.032l.007.007a.109.109 0 0 1 0 .155l-.658.66a.109.109 0 0 1-.154 0l-.008-.008a.109.109 0 0 1 0-.154l.658-.66a.11.11 0 0 1 .078-.032zm.707.66c.038 0 .071.02.092.075a.112.112 0 0 1-.023.117l-7.606 8.08c-3.084 2.024-6.149 4.04-9.222 6.05-.078.051-.17.082-.211-.028a.112.112 0 0 1 .023-.118l7.594-8.08c3.084-2.023 6.161-4.039 9.234-6.049a.247.247 0 0 1 .12-.046zm-16.824.045a.109.109 0 0 1 .08.026l1.416 1.187a.11.11 0 0 1 .014.157l-.006.005a.11.11 0 0 1-.156.014L3.549 5.057a.109.109 0 0 1-.014-.155l.006-.007a.108.108 0 0 1 .074-.04zm17.336.756c.036 0 .072.017.094.05l.004.003a.114.114 0 0 1-.028.158l-.753.53a.112.112 0 0 1-.157-.028l-.004-.004a.114.114 0 0 1 .028-.158l.754-.53a.113.113 0 0 1 .062-.02zm-17.904.002c.02 0 .042.007.06.02l.76.531c.05.035.06.103.026.152l-.006.01a.109.109 0 0 1-.153.026l-.76-.532a.109.109 0 0 1-.025-.152l.006-.01a.108.108 0 0 1 .092-.045zm-.512.803c.018 0 .036.006.053.016l1.596.923a.111.111 0 0 1 .04.153l-.003.006a.111.111 0 0 1-.153.04L2.473 6.63a.111.111 0 0 1-.041-.152l.004-.006a.11.11 0 0 1 .1-.055zm18.932 0a.11.11 0 0 1 .1.055l.001.004a.113.113 0 0 1-.04.154l-1.596.926a.113.113 0 0 1-.155-.041l-.002-.004a.113.113 0 0 1 .041-.155l1.596-.925a.115.115 0 0 1 .055-.014zm-19.373.846c.014 0 .029.003.043.01l.838.392a.11.11 0 0 1 .052.147l-.004.01a.11.11 0 0 1-.146.052l-.838-.393a.11.11 0 0 1-.053-.146l.004-.01a.109.109 0 0 1 .104-.062zm19.81.002a.11.11 0 0 1 .106.062l.002.008a.11.11 0 0 1-.053.146l-.838.393a.11.11 0 0 1-.146-.053l-.004-.008a.11.11 0 0 1 .052-.146l.838-.393a.11.11 0 0 1 .043-.01zm-20.183.88c.014 0 .028.001.043.006l1.732.631a.112.112 0 0 1 .067.145l-.002.006a.11.11 0 0 1-.143.066l-1.732-.63a.113.113 0 0 1-.069-.145l.002-.004a.115.115 0 0 1 .102-.074zm20.549 0a.113.113 0 0 1 .11.075l.003.004a.115.115 0 0 1-.069.146l-1.732.629a.112.112 0 0 1-.145-.066l-.001-.006a.113.113 0 0 1 .068-.145l1.732-.63a.11.11 0 0 1 .034-.006zm-20.836.909a.11.11 0 0 1 .033.004l.892.24c.06.016.096.077.08.137l-.002.007a.11.11 0 0 1-.136.079l-.895-.239a.113.113 0 0 1-.078-.138l.002-.006a.113.113 0 0 1 .104-.084zm21.13.002a.115.115 0 0 1 .106.084v.004a.112.112 0 0 1-.078.138l-.893.239a.112.112 0 0 1-.138-.079v-.005a.112.112 0 0 1 .078-.14l.892-.237a.11.11 0 0 1 .033-.004zm-21.335.93.023.001 1.814.323c.062.01.101.069.09.13v.006a.111.111 0 0 1-.13.09l-1.815-.322a.113.113 0 0 1-.092-.131l.002-.006a.11.11 0 0 1 .108-.092zm21.519.001h.022c.052.002.1.038.109.092v.006c.01.062-.03.12-.092.13l-1.814.321a.113.113 0 0 1-.131-.092v-.005a.113.113 0 0 1 .092-.131l1.814-.32zm-21.644.944h.011l.922.084a.11.11 0 0 1 .102.119l-.002.01a.11.11 0 0 1-.121.1l-.922-.083a.11.11 0 0 1-.1-.12v-.009a.111.111 0 0 1 .11-.101zm21.779.002h.012c.056 0 .106.043.11.101v.008a.111.111 0 0 1-.1.121l-.923.08a.111.111 0 0 1-.12-.101v-.008a.111.111 0 0 1 .1-.121l.92-.08zm-11.82.73L6.091 16.95c2.02-1.324 4.039-2.646 6.066-3.976l-1.095-1.31zm11.87.219c.063 0 .114.05.114.113v.004c0 .063-.05.113-.113.113l-1.844.004a.113.113 0 0 1-.113-.113v-.004c0-.063.05-.113.113-.113l1.844-.004zm-21.869.002h1.844c.062 0 .112.05.112.111v.008c0 .062-.05.111-.112.111H1.064a.111.111 0 0 1-.11-.111v-.008c0-.061.049-.111.11-.111zm.952.875h.011a.11.11 0 0 1 .11.101v.006a.111.111 0 0 1-.102.121l-.922.08a.11.11 0 0 1-.119-.101l-.002-.006a.111.111 0 0 1 .102-.121l.922-.08zm19.955 0h.011l.922.08a.11.11 0 0 1 .102.119v.008a.112.112 0 0 1-.121.101l-.922-.08a.11.11 0 0 1-.102-.119v-.008a.111.111 0 0 1 .11-.101zm-18.924.705c.053.001.098.04.107.094l.002.004c.011.061-.03.12-.092.13l-1.812.32a.113.113 0 0 1-.13-.091v-.004a.115.115 0 0 1 .09-.133l1.811-.318a.117.117 0 0 1 .024-.002zm17.902 0c.008 0 .016 0 .024.002l1.816.32c.061.011.1.07.09.131v.004a.113.113 0 0 1-.131.092l-1.816-.32a.112.112 0 0 1-.09-.131v-.004a.113.113 0 0 1 .107-.094zM2.332 14.477a.11.11 0 0 1 .104.082l.002.005c.016.06-.02.121-.08.137l-.891.24a.112.112 0 0 1-.137-.08l-.002-.006a.112.112 0 0 1 .08-.136l.89-.239a.112.112 0 0 1 .034-.003zm19.332 0c.011 0 .024 0 .035.003l.893.239c.06.016.096.077.08.136l-.002.006a.111.111 0 0 1-.137.078l-.894-.238a.111.111 0 0 1-.078-.137l.002-.005a.109.109 0 0 1 .101-.082zm-18.213.517a.11.11 0 0 1 .11.074l.002.004a.112.112 0 0 1-.067.145l-1.732.63a.113.113 0 0 1-.145-.068l-.002-.004a.113.113 0 0 1 .069-.144L3.418 15a.11.11 0 0 1 .033-.006zm17.086 0c.015 0 .029 0 .043.006l1.734.63a.111.111 0 0 1 .067.143l-.002.008a.111.111 0 0 1-.143.067l-1.734-.631a.111.111 0 0 1-.066-.143l.002-.008a.111.111 0 0 1 .1-.072zM2.92 16.117a.109.109 0 0 1 .103.063l.004.01a.108.108 0 0 1-.052.144l-.838.393a.11.11 0 0 1-.147-.055l-.004-.008a.11.11 0 0 1 .053-.146l.838-.391a.112.112 0 0 1 .043-.01zm18.158 0a.11.11 0 0 1 .043.01l.838.39c.056.027.08.093.055.149l-.002.004a.112.112 0 0 1-.149.055l-.838-.391a.112.112 0 0 1-.054-.148l.002-.004a.112.112 0 0 1 .105-.065zm-16.957.315c.04-.001.078.02.1.056l.004.004a.11.11 0 0 1-.041.153l-1.596.921a.113.113 0 0 1-.154-.04l-.002-.005a.113.113 0 0 1 .04-.154l1.596-.922a.109.109 0 0 1 .053-.013zm15.756 0c.018 0 .036.004.053.013l1.597.924a.11.11 0 0 1 .041.152l-.002.004a.11.11 0 0 1-.152.041l-1.598-.921a.113.113 0 0 1-.04-.155l.001-.002a.111.111 0 0 1 .1-.056zm.328 1.193a.11.11 0 0 1 .06.021l.758.534c.05.035.061.102.026.152l-.004.008a.111.111 0 0 1-.154.027l-.756-.535a.109.109 0 0 1-.028-.152l.006-.008a.11.11 0 0 1 .092-.047zm-16.412.002c.035 0 .072.016.094.047l.004.008a.109.109 0 0 1-.028.152l-.756.531a.108.108 0 0 1-.152-.025l-.006-.008a.109.109 0 0 1 .028-.152l.755-.534a.107.107 0 0 1 .061-.019zm15.162.102a.112.112 0 0 1 .082.025l1.414 1.187a.11.11 0 0 1 .014.157l-.004.004a.113.113 0 0 1-.158.013L18.89 17.93a.11.11 0 0 1-.014-.157l.004-.005a.108.108 0 0 1 .074-.04zm-12.812 1.12a.11.11 0 0 1 .08.026l.007.008a.11.11 0 0 1 .014.154L5.06 20.451a.11.11 0 0 1-.155.012l-.008-.006a.11.11 0 0 1-.013-.154l1.185-1.414a.11.11 0 0 1 .075-.04zm11.703 0c.032 0 .065.015.088.042l1.181 1.41c.04.048.035.12-.013.16l-.002.002a.114.114 0 0 1-.16-.014l-1.182-1.41a.114.114 0 0 1 .013-.16l.002-.002a.115.115 0 0 1 .073-.027zm-12.928.114c.027 0 .054.01.074.031l.014.012a.107.107 0 0 1 0 .15l-.662.66a.105.105 0 0 1-.149 0l-.011-.011a.105.105 0 0 1 0-.149l.66-.662a.105.105 0 0 1 .074-.031zm14.164 0c.027 0 .053.01.074.031l.66.662a.106.106 0 0 1 0 .15l-.011.012a.106.106 0 0 1-.15-.002l-.66-.66a.106.106 0 0 1 .001-.15l.01-.012a.108.108 0 0 1 .076-.031zm-11.627.797c.018 0 .034.006.05.015l.007.004a.11.11 0 0 1 .04.15l-.921 1.598a.11.11 0 0 1-.15.041l-.008-.004a.111.111 0 0 1-.04-.152l.922-1.596a.113.113 0 0 1 .1-.056zm9.088.002a.11.11 0 0 1 .1.054l.925 1.596a.113.113 0 0 1-.04.154h-.005a.11.11 0 0 1-.152-.039l-.926-1.595a.113.113 0 0 1 .041-.155l.004-.002a.108.108 0 0 1 .053-.013zm-10.285.324c.021 0 .043.008.062.021l.004.002c.051.036.063.106.028.157l-.53.755a.112.112 0 0 1-.156.028l-.004-.002a.112.112 0 0 1-.027-.156l.53-.756a.113.113 0 0 1 .093-.05zm11.484.002c.036 0 .072.015.094.047l.53.756c.035.05.023.12-.028.156l-.004.002a.112.112 0 0 1-.156-.028l-.53-.755a.112.112 0 0 1 .028-.157l.004-.002a.112.112 0 0 1 .062-.02zm-8.863.342a.11.11 0 0 1 .043.006l.012.005c.056.02.084.081.064.137l-.633 1.74a.105.105 0 0 1-.136.063l-.014-.004a.106.106 0 0 1-.065-.137l.633-1.74a.107.107 0 0 1 .096-.07zm6.232 0a.107.107 0 0 1 .106.07l.633 1.738a.107.107 0 0 1-.065.137l-.015.006a.107.107 0 0 1-.137-.065L15 20.578a.107.107 0 0 1 .064-.137l.014-.005a.117.117 0 0 1 .033-.006zm-4.695.41c.008 0 .014 0 .021.002l.006.002c.062.01.101.067.09.129l-.318 1.812a.113.113 0 0 1-.131.092l-.004-.002a.111.111 0 0 1-.092-.129l.32-1.812a.113.113 0 0 1 .108-.094zm3.146.002c.008-.002.015 0 .022 0a.111.111 0 0 1 .107.092l.32 1.812c.012.061-.03.12-.091.131l-.004.002a.113.113 0 0 1-.13-.092l-.321-1.812a.113.113 0 0 1 .092-.131l.005-.002zm-5.79.119a.11.11 0 0 1 .042.01l.004.002a.114.114 0 0 1 .055.15l-.393.834a.112.112 0 0 1-.148.055l-.004-.002a.112.112 0 0 1-.055-.149l.393-.836a.112.112 0 0 1 .105-.064zm8.458 0a.108.108 0 0 1 .104.062l.39.84a.11.11 0 0 1-.052.147l-.008.004a.11.11 0 0 1-.146-.055l-.391-.838a.11.11 0 0 1 .053-.146l.008-.004a.11.11 0 0 1 .042-.01zm-4.236.018H12c.063 0 .115.05.115.113l.002 1.84c0 .063-.05.113-.113.113h-.006a.113.113 0 0 1-.113-.113l-.004-1.838c0-.063.05-.115.113-.115zm-2.592.578c.011 0 .022 0 .034.004l.005.002c.06.016.095.077.079.136l-.24.893a.111.111 0 0 1-.137.078l-.006-.002a.111.111 0 0 1-.078-.137l.24-.89a.113.113 0 0 1 .103-.084zm5.196.002a.11.11 0 0 1 .103.082l.24.89a.11.11 0 0 1-.078.137l-.006.002a.11.11 0 0 1-.136-.078l-.24-.89a.11.11 0 0 1 .078-.138l.005-.002a.112.112 0 0 1 .034-.003zm-3.475.302h.01l.008.002c.061.006.107.06.101.121l-.08.92a.112.112 0 0 1-.121.102h-.008a.11.11 0 0 1-.1-.121l.08-.922a.111.111 0 0 1 .11-.102zm1.736 0h.02a.11.11 0 0 1 .107.102l.08.924a.11.11 0 0 1-.101.119l-.008.002a.11.11 0 0 1-.12-.102l-.08-.924a.112.112 0 0 1 .102-.12z\"},\"child\":[]}]})(props);\n};\nexport function SiSage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.702 5.316C1.167 5.316 0 6.48 0 7.972c0 1.635 1.167 2.267 2.46 2.655 1.224.387 1.804.818 1.804 1.666 0 .86-.64 1.465-1.477 1.465-.84 0-1.566-.604-1.566-1.535 0-.516.242-.647.242-.934 0-.33-.227-.574-.599-.574-.423 0-.864.647-.864 1.566 0 1.48 1.266 2.57 2.787 2.57 1.535 0 2.701-1.163 2.701-2.656 0-1.623-1.166-2.267-2.472-2.655-1.209-.372-1.792-.818-1.792-1.666 0-.845.626-1.45 1.463-1.45.867 0 1.565.617 1.577 1.465.016.388.285.617.599.617a.592.592 0 0 0 .61-.647c-.027-1.48-1.263-2.543-2.771-2.543zm6.171 9.52c.683 0 1.21-.23 1.21-.69a.57.57 0 0 0-.557-.574c-.2 0-.341.085-.668.085-.882 0-1.577-.76-1.577-1.65 0-.962.71-1.725 1.608-1.725 1.009 0 1.65.775 1.65 1.895v2.054c0 .36.284.604.625.604.327 0 .61-.244.61-.604v-2.097c0-1.72-1.178-2.984-2.858-2.984-1.566 0-2.86 1.22-2.86 2.856 0 1.58 1.282 2.83 2.817 2.83zm6.257 3.848c1.535 0 2.701-1.163 2.701-2.656 0-1.635-1.166-2.267-2.472-2.655-1.209-.387-1.792-.818-1.792-1.666s.64-1.465 1.463-1.465c.84 0 1.577.604 1.577 1.535 0 .519-.241.647-.241.934 0 .33.226.574.583.574.441 0 .882-.647.882-1.566 0-1.48-1.278-2.57-2.801-2.57-1.535 0-2.687 1.163-2.687 2.656 0 1.623 1.152 2.267 2.46 2.655 1.224.372 1.804.818 1.804 1.666 0 .86-.64 1.45-1.462 1.45-.883 0-1.566-.601-1.578-1.465-.015-.388-.3-.604-.598-.604-.327 0-.626.216-.61.631.011 1.499 1.247 2.546 2.77 2.546zm6.171-3.849c.795 0 1.424-.229 1.862-.503.426-.272.595-.504.595-.76 0-.272-.2-.516-.568-.516-.441 0-.795.66-1.877.66-.952 0-1.707-.76-1.707-1.722 0-.95.725-1.724 1.635-1.724.982 0 1.508.647 1.508 1.062 0 .116-.085.174-.2.174h-1.194c-.326 0-.568.216-.568.503 0 .314.242.546.568.546h1.636c.625 0 1.009-.33 1.009-.89 0-1.408-1.194-2.512-2.774-2.512-1.566 0-2.83 1.263-2.83 2.84s1.312 2.842 2.905 2.842z\"},\"child\":[]}]})(props);\n};\nexport function SiSahibinden (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm11.517 4.723c.563-.007 1.13-.004 1.69.063 2.412.054 4.853 2.18 4.879 4.508h-3.319c.009-.694-.603-1.555-1.279-1.732-1.105-.269-2.46-.355-3.43.294-.738.445-1.065 1.672-.095 2.056 2.288 1.083 5.158.846 7.224 2.372 1.698 1.21 1.598 3.666.274 5.086-1.718 1.84-4.636 2.132-7.099 1.782-2.448-.117-4.755-2.245-4.819-4.562h3.311c-.056.832.638 1.557 1.46 1.822 1.27.275 2.726.358 3.93-.19.96-.323 1.024-1.544.284-2.103-1.595-.897-3.565-.924-5.297-1.518-2.012-.39-3.643-2.278-3.26-4.197.424-2.342 3.127-3.727 5.546-3.681z\"},\"child\":[]}]})(props);\n};\nexport function SiSailfishos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.98132 5.10497a.31172.31172 0 0 0-.40763-.17385l-2.3379.81527a24.35014 24.35014 0 0 1-3.1292.82126c-2.16405.39565-3.71666-1.3368-3.71666-1.3368a.3237.3237 0 0 0-.35968-.1019 4.83167 4.83167 0 0 0-.45559.17384 13.1462 13.1462 0 0 1 1.70247-4.7957c.10211-.10285.10211-.26881 0-.37166a.36567.36567 0 0 0-.40763-.1139 27.1736 27.1736 0 0 0-4.19623 2.60166c-2.87742 2.236-4.47798 4.51395-4.6758 6.7979-.14987 1.85833 1.07303 3.07524 2.24198 4.19623l.20382.19783a4.50795 4.50795 0 0 1-.28774 3.59077c-1.04306 2.30193-3.35699 4.31013-6.25838 5.39516-.91118.34768-1.6785.59946-1.6785.59946-.15467.05152-.24352.21354-.20381.37166A.3237.3237 0 0 0 .32056 24H.3985a34.28921 34.28921 0 0 0 6.59408-2.35588l.59947-.29974c3.71666-1.93026 5.70088-4.19623 5.92867-6.68999.15586-1.58857-.7853-2.65561-1.79838-3.59677 1.29483-1.79838 5.49107-3.2251 5.52104-3.2251l4.14228-1.43871c1.32481-.41962 2.3439-.82126 2.39785-.84524a.29973.29973 0 0 0 .17984-.41963zM12.9692 5.6265a10.23281 10.23281 0 0 0-3.51285 2.72755 3.29105 3.29105 0 0 1-.2278-1.54062c.15587-1.70846 1.98422-3.69268 2.26597-3.99241a29.92513 29.92513 0 0 1 2.7935-1.75643 12.8045 12.8045 0 0 0-1.3488 4.5619ZM5.25413 21.74602a10.61047 10.61047 0 0 0 3.51285-4.09432 5.74284 5.74284 0 0 0 .5575-2.87742 3.03927 3.03927 0 0 1 .86922 2.25997c-.2278 2.18205-2.92537 3.74065-2.94935 3.76462-.64742.3417-1.31282.65342-1.99022.94715zm7.60717-7.14558c-.14986 1.71446-1.24688 3.17715-2.74553 4.38806a4.0104 4.0104 0 0 0 .6774-1.88231c.15585-1.63653-.98912-2.7755-2.11011-3.86653-1.121-1.09102-2.18804-2.15806-2.06215-3.72266.15586-1.83435 1.30083-3.47088 2.69758-4.85564a5.2393 5.2393 0 0 0-.76132 2.1281c-.20382 2.00819 1.14497 3.24908 2.31392 4.3401 1.16895 1.09102 2.1101 1.96024 1.98422 3.47088zm-1.65451-4.0164a9.38757 9.38757 0 0 1-1.4507-1.57058c1.09702-1.75643 3.59677-2.9014 4.32812-3.19513a5.14938 5.14938 0 0 0 2.84744 1.39674c-.61145.2218-4.3401 1.53462-5.72486 3.36898z\"},\"child\":[]}]})(props);\n};\nexport function SiSailsdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.23828 24S-6.9375 9.39844 11.9375 0v24H2.23828M14.85938 24V9.125s3.01171 4.91406 9.1328 14.875h-9.1328\"},\"child\":[]}]})(props);\n};\nexport function SiSalesforce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.006 5.415a4.195 4.195 0 013.045-1.306c1.56 0 2.954.9 3.69 2.205.63-.3 1.35-.45 2.1-.45 2.85 0 5.159 2.34 5.159 5.22s-2.31 5.22-5.176 5.22c-.345 0-.69-.044-1.02-.104a3.75 3.75 0 01-3.3 1.95c-.6 0-1.155-.15-1.65-.375A4.314 4.314 0 018.88 20.4a4.302 4.302 0 01-4.05-2.82c-.27.062-.54.076-.825.076-2.204 0-4.005-1.8-4.005-4.05 0-1.5.811-2.805 2.01-3.51-.255-.57-.39-1.2-.39-1.846 0-2.58 2.1-4.65 4.65-4.65 1.53 0 2.85.705 3.72 1.8\"},\"child\":[]}]})(props);\n};\nexport function SiSalla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.862 13.439a1.27 1.27 0 0 0-.81-.555 1.27 1.27 0 0 0-.964.18c-3.422 2.231-6.75 2.231-10.178 0a1.27 1.27 0 0 0-.964-.18 1.283 1.283 0 0 0-.434 2.327c2.142 1.394 4.326 2.1 6.49 2.1 2.166 0 4.348-.706 6.488-2.102a1.27 1.27 0 0 0 .555-.81 1.27 1.27 0 0 0-.18-.964zm5.103 2.82-1.171-9.764a5.24 5.24 0 0 0-5.2-4.614H6.406a5.236 5.236 0 0 0-5.198 4.612l-1.17 9.766a5.235 5.235 0 0 0 5.198 5.86h13.529a5.238 5.238 0 0 0 5.198-5.86zm-3.21 2.4c-.532.6-1.265.929-2.066.929H5.311c-.801 0-1.536-.33-2.066-.929a2.73 2.73 0 0 1-.676-2.16l1.157-9.657A2.764 2.764 0 0 1 6.468 4.41h11.064a2.765 2.765 0 0 1 2.742 2.432l1.157 9.656a2.72 2.72 0 0 1-.676 2.161\"},\"child\":[]}]})(props);\n};\nexport function SiSaltproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12v10.56h12L18 12h6V1.44H12L6 12Z\"},\"child\":[]}]})(props);\n};\nexport function SiSamsclub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m14.275 1.71 9.403 9.504a1.119 1.119 0 0 1 .001 1.569l-9.401 9.507-1.624-1.64a1.136 1.136 0 0 1 0-1.596L19.631 12l-6.917-6.99a1.225 1.225 0 0 1 0-1.72l1.56-1.579zm-3.026 1.572L9.695 1.71.34 11.17a1.186 1.186 0 0 0 0 1.663l9.356 9.457 1.553-1.57a1.237 1.237 0 0 0 0-1.737L4.341 12l6.909-6.985a1.235 1.235 0 0 0-.001-1.734z\"},\"child\":[]}]})(props);\n};\nexport function SiSamsung (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.8166 10.2808l.0459 2.6934h-.023l-.7793-2.6934h-1.2837v3.3925h.8481l-.0458-2.785h.023l.8366 2.785h1.2264v-3.3925zm-16.149 0l-.6418 3.427h.9284l.4699-3.1175h.0229l.4585 3.1174h.9169l-.6304-3.4269zm5.1805 0l-.424 2.6132h-.023l-.424-2.6132H6.5788l-.0688 3.427h.8596l.023-3.0832h.0114l.573 3.0831h.8711l.5731-3.083h.023l.0228 3.083h.8596l-.0802-3.4269zm-7.2664 2.4527c.0343.0802.0229.1949.0114.2522-.0229.1146-.1031.2292-.3324.2292-.2177 0-.3438-.126-.3438-.3095v-.3323H0v.2636c0 .7679.6074.9971 1.2493.9971.6189 0 1.1346-.2178 1.2149-.7794.0458-.298.0114-.4928 0-.5616-.1605-.722-1.467-.9283-1.5588-1.3295-.0114-.0688-.0114-.1375 0-.1834.023-.1146.1032-.2292.3095-.2292.2063 0 .321.126.321.3095v.2063h.8595v-.2407c0-.745-.6762-.8596-1.1576-.8596-.6074 0-1.1117.2063-1.2034.7564-.023.149-.0344.2866.0114.4585.1376.7106 1.364.9169 1.5358 1.3524m11.152 0c.0343.0803.0228.1834.0114.2522-.023.1146-.1032.2292-.3324.2292-.2178 0-.3438-.126-.3438-.3095v-.3323h-.917v.2636c0 .7564.596.9857 1.2379.9857.6189 0 1.1232-.2063 1.2034-.7794.0459-.298.0115-.4814 0-.5616-.1375-.7106-1.4327-.9284-1.5243-1.318-.0115-.0688-.0115-.1376 0-.1835.0229-.1146.1031-.2292.3094-.2292.1948 0 .321.126.321.3095v.2063h.848v-.2407c0-.745-.6647-.8596-1.146-.8596-.6075 0-1.1004.1948-1.192.7564-.023.149-.023.2866.0114.4585.1376.7106 1.341.9054 1.513 1.3524m2.8882.4585c.2407 0 .3094-.1605.3323-.2522.0115-.0343.0115-.0917.0115-.126v-2.533h.871v2.4642c0 .0688 0 .1948-.0114.2292-.0573.6419-.5616.8482-1.192.8482-.6303 0-1.1346-.2063-1.192-.8482 0-.0344-.0114-.1604-.0114-.2292v-2.4642h.871v2.533c0 .0458 0 .0916.0115.126 0 .0917.0688.2522.3095.2522m7.1518-.0344c.2522 0 .3324-.1605.3553-.2522.0115-.0343.0115-.0917.0115-.126v-.4929h-.3553v-.5043H24v.917c0 .0687 0 .1145-.0115.2292-.0573.6303-.596.8481-1.2034.8481-.6075 0-1.1461-.2178-1.2034-.8481-.0115-.1147-.0115-.1605-.0115-.2293v-1.444c0-.0574.0115-.172.0115-.2293.0802-.6419.596-.8482 1.2034-.8482s1.1347.2063 1.2034.8482c.0115.1031.0115.2292.0115.2292v.1146h-.8596v-.1948s0-.0803-.0115-.1261c-.0114-.0802-.0802-.2521-.3438-.2521-.2521 0-.321.1604-.3438.2521-.0115.0458-.0115.1032-.0115.1605v1.5702c0 .0458 0 .0916.0115.126 0 .0917.0917.2522.3323.2522\"},\"child\":[]}]})(props);\n};\nexport function SiSamsungpay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.703 17.387.617-1.5-1.205-2.795h.724l.817 1.98.776-1.98h.711l-1.752 4.295Zm-2.492-1.295c-.708 0-1.445-.569-1.445-1.528 0-.975.712-1.531 1.455-1.531.387 0 .735.16.946.411v-.352h.677v2.94h-.677v-.382a1.222 1.222 0 0 1-.956.442Zm-4.206-.06v-3.666h1.258c.759 0 1.32.581 1.32 1.305 0 .728-.562 1.312-1.325 1.312H.69v1.05zm4.315-.562c.503 0 .88-.407.88-.914 0-.497-.377-.906-.88-.906a.886.886 0 0 0-.888.906c0 .512.386.914.888.914zM.69 14.348h.52c.408 0 .686-.3.686-.677a.66.66 0 0 0-.685-.672H.69Zm.557-4.063C.603 10.285 0 10.055 0 9.29v-.265h.92l.002.333c0 .187.13.31.344.31.228 0 .305-.117.333-.232a.44.44 0 0 0-.005-.252C1.417 8.74.198 8.538.049 7.837a1.192 1.192 0 0 1-.007-.463c.09-.56.588-.76 1.198-.76.485 0 1.156.114 1.156.861v.242h-.854v-.213c0-.187-.12-.31-.32-.31-.215 0-.289.122-.313.232a.435.435 0 0 0 .002.18c.098.401 1.4.615 1.545 1.333.014.072.044.266.002.562-.081.573-.59.784-1.21.784zm11.154-.018c-.638 0-1.234-.227-1.234-.984V9.02h.911v.328c0 .185.129.31.341.31.227 0 .303-.117.331-.23a.438.438 0 0 0-.005-.25c-.175-.44-1.382-.641-1.529-1.336a1.166 1.166 0 0 1-.008-.458c.09-.554.585-.753 1.188-.753.48 0 1.143.115 1.143.855v.24h-.846v-.212c0-.185-.116-.307-.315-.307-.212 0-.289.12-.313.23a.435.435 0 0 0 .005.176c.096.398 1.385.61 1.529 1.32.015.073.044.265.003.558-.081.567-.586.776-1.2.776zm3.224-.013c-.63 0-1.138-.21-1.198-.85a2.792 2.792 0 0 1-.008-.223V6.72h.867v2.538c0 .044 0 .093.008.13.017.085.092.248.331.248.238 0 .311-.163.328-.248a.718.718 0 0 0 .008-.13V6.72h.867v2.461a2.94 2.94 0 0 1-.008.224c-.06.64-.564.849-1.195.849zm7.156-.037c-.608 0-1.148-.221-1.205-.846a2.518 2.518 0 0 1-.014-.227V7.702c0-.061.009-.17.016-.227.077-.641.595-.846 1.203-.846.608 0 1.14.203 1.203.846.011.11.008.227.008.227v.114h-.864v-.193s0-.08-.01-.13c-.016-.075-.082-.25-.345-.25-.249 0-.322.166-.34.25a.816.816 0 0 0-.014.162v1.567a.89.89 0 0 0 .008.13c.016.092.104.25.352.25s.333-.158.349-.25a.722.722 0 0 0 .008-.13v-.497h-.352v-.5H24v.92c0 .064-.003.112-.013.226-.057.625-.598.846-1.206.846zm-19.745-.065.636-3.432h1.526l.633 3.432h-.922l-.456-3.114-.02.002-.47 3.112Zm3.48 0L6.59 6.72h1.4l.421 2.625h.021l.422-2.625h1.399l.075 3.432h-.857l-.02-3.083H9.43l-.573 3.083h-.87L7.414 7.07h-.018l-.021 3.083Zm11.268-.036V6.72h1.273l.79 2.693h.018l-.047-2.693h.851v3.396h-1.221l-.849-2.787h-.018l.047 2.787z\"},\"child\":[]}]})(props);\n};\nexport function SiSandisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.5371 9.668C.6161 9.668 0 10.192 0 10.996c0 .7876.5978 1.1214 1.3809 1.3614.4935.1515 1.08.3577 1.08.8438 0 .2895-.2643.625-.7968.625-.4096 0-.678-.1436-.834-.3086-.156-.1605-.3078-.3158-.4473-.6113-.015-.039-.0412-.0743-.0742-.0743H.0703c-.033 0-.0586.0258-.0586.0723v.8965c0 .036.0207.0864.0567.1074.4575.2685 1.0625.3706 1.5605.3691.885-.0045 1.5742-.5935 1.5742-1.537-.006-1.0141-.9347-1.1435-1.6758-1.3985-.6465-.222-.7812-.4094-.7812-.6719 0-.2835.264-.5703.8281-.5703.1965 0 .4037.0655.5957.1856.12.0735.2438.196.3848.4375.015.0255.0484.0449.0664.0449h.2031c.03-.003.041-.0226.041-.0586 0-.1455.004-.5366.004-.7676 0-.0405-.0269-.071-.0704-.086-.384-.1274-.7577-.1874-1.2617-.1874zm17.6387.0332s-.0645.0515-.0645.164c0 .1125.0645.1739.0645.1739h.4277c.051 0 .0723.026.0723.08v3.6895c0 .054-.0255.08-.0645.08h-.4062s-.0645.0591-.0645.1641.0645.1739.0645.1739l1.7656-.004s.0469-.0733.0469-.1738c0-.099-.0469-.1601-.0469-.1601h-.291c-.036 0-.0684-.0297-.0684-.0762v-.8574c.0825-.087.232-.2388.25-.2598.054-.054.1092-.0328.1407.0137.036.057.7076 1.0828.7226 1.1113.03.051.0136.0742-.0254.0742l-.211.004s-.0507.075-.0507.162c0 .087.0469.1641.0469.1641l1.7597.004s.0567-.0726.0567-.1641c0-.0916-.0645-.17-.0645-.17s-.0478.002-.1093.002c-.1996 0-.3564-.0618-.4434-.1953-.0405-.0585-1.0908-1.6676-1.1133-1.7051.2655-.369.4032-.504.6387-.627.156-.0825.4426-.1425.6601-.1425.003 0 .0508-.0417.0508-.1602 0-.1185-.0547-.1621-.0547-.1621h-1.0547c-.039 0-.091.0295-.127.082-.0224.033-.8512 1.2215-1.0702 1.541v-2.709c0-.066-.0407-.1171-.1172-.1171h-1.3203zm-4.2676.0039c-.0435 0-.0696.0284-.08.0644l-.1641.5586c-.0225.0645.0104.1172.0644.1172h.8438c.048 0 .0828-.0215.0918-.0605l.1953-.6036c.015-.051-.0184-.0761-.0664-.0761h-.8848zm-4.4238.0078s-.088.0565-.088.1855c0 .159.088.1953.088.1953h.6543c.9495 0 1.5449.6339 1.5449 1.879 0 1.3425-.5888 1.9257-1.6328 1.9257h-.4219c-.066 0-.1157-.0797-.1172-.1172 0-.2505-.002-1.823-.002-1.955 0-.6466-.4435-1.002-1.162-1.002-.483 0-.8265.2165-1.0215.584v-.4062c0-.0646-.0393-.0938-.0918-.0938H7.0195s-.08.0693-.08.1953c0 .135.08.1856.08.1856h.2715c.072 0 .1485.079.1485.166v2.3281c0 .048-.0668.1094-.1133.1094h-.2598l-.121.334c.7905 0 1.7343.002 1.7343.002s.0605-.0559.0605-.1759c0-.1125-.0586-.1601-.0586-.1601h-.207c-.0615 0-.1074-.0525-.1074-.1035v-1.8125c.171-.4636.5009-.7364.7754-.7364.258 0 .4219.1934.4219.4844 0 .1515-.002 1.7736-.002 2.039 0 .0736-.0555.129-.1035.129h-.2461s-.0684.0476-.0684.1601c0 .117.0684.1758.0684.1758h2.039c2.0312 0 2.5547-1.2178 2.5547-2.2558.0105-1.6321-1.1233-2.2598-2.5859-2.2598h-.7363zm13.1328 1.0195c-.102 0-.1887.0365-.2637.1055-.0795.0735-.1191.1668-.1191.2793 0 .108.0388.198.1093.2715.0736.0735.165.1093.2715.1093.105 0 .196-.0354.2696-.1074.0765-.0735.1152-.1659.1152-.2754.0015-.1005-.0378-.194-.1113-.2675a.366.366 0 0 0-.2715-.1153zm-18.543.0547c-.447 0-.8015.0498-1.166.1758-.0405.015-.0508.0554-.0508.1094 0 .1815-.0039.2817-.0039.4902 0 .0435.031.0684.0625.0684h.1914c.039 0 .073-.0201.1074-.0606.108-.141.2398-.254.3418-.3125.0945-.054.2492-.1133.4082-.1133.3706 0 .5254.269.5254.584v.4961c-1.3966-.0825-1.9687.3313-1.9687.9883 0 .7515.5188 1.0664 1.0273 1.0664.4636 0 .8085-.1768 1.002-.4453.0405.2355.1787.3945.3633.3945h.7285l.1191-.332h-.1074c-.2205-.0225-.2455-.1533-.25-.2988v-1.7774c0-.261-.092-.5596-.3125-.7441-.273-.2295-.671-.289-1.0176-.289zm18.5469.0176c.087 0 .1611.0322.2227.0937.0615.0645.0917.1357.0917.2227-.003.087-.0322.1616-.0937.2246a.3029.3029 0 0 1-.2227.0918.3029.3029 0 0 1-.2226-.0918c-.0615-.0615-.0918-.1376-.0918-.2246s.0303-.1597.0918-.2227c.0615-.0645.1376-.0937.2246-.0937zm-5.9746.039c-.573 0-1.1934.3267-1.1934 1.0333 0 .603.4897.9309.9082 1.0449.714.192.918.295.918.5996 0 .264-.2079.4219-.5664.4219-.36 0-.697-.2653-.8965-.7364-.03-.048-.051-.0664-.084-.0664-.099-.003-.2 0-.2285 0-.0285 0-.0586.014-.0586.0606v.6933c0 .054.0742.1133.0742.1133s.2065.1275.4375.207c.192.066.4283.1172.7598.1172.8415 0 1.2422-.5237 1.2422-1.1328 0-.5565-.3106-.8964-1.0156-1.0644-.678-.1635-.8164-.283-.8164-.5215 0-.2025.1767-.418.5293-.418.351 0 .678.2082.828.4512.021.033.0484.0469.0919.0469h.166a.046.046 0 0 0 .0469-.043v-.584c0-.039-.015-.0807-.0645-.0957-.258-.0765-.6476-.127-1.0781-.127zm-3.3633.0665s-.0781.073-.0781.1855c0 .1155.0781.1895.0781.1895s.3046.002.33.002c.0256 0 .045.0177.045.0507l-.0039 2.461c0 .054-.047.0937-.086.0937h-.3769s-.0723.0461-.0723.1601c0 .108.0723.172.0723.172h1.875s.0606-.0698.0606-.1778c-.003-.102-.0645-.1524-.0645-.1524l-.3828.004c-.0585 0-.0899-.0379-.0899-.0919 0 0-.0039-2.688-.0039-2.7675 0-.0795-.0276-.129-.1191-.129h-1.1836zm9.164 0v.4238h.1094v-.1524h.0235l.0254.002c.018 0 .03.0033.039.0078.015.0075.0248.0143.0293.0293a.1932.1932 0 0 1 .0078.0547c0 .0255.0049.0466.0079.0586h.1074l-.002-.0137v-.0644c0-.0435-.0135-.0758-.039-.0938a.1602.1602 0 0 0-.0625-.0234.1424.1424 0 0 0 .0742-.0274c.021-.018.0293-.045.0293-.0781 0-.048-.0211-.082-.0586-.1016-.0225-.0135-.051-.02-.084-.0214h-.207zm.1153.0722h.0273a.2603.2603 0 0 1 .0664.0078c.0225.0105.0333.0264.0333.0489-.003.024-.0085.0422-.0235.0527-.015.0105-.035.0137-.0605.0137h-.043v-.123zM5.4941 12.5898v.8125h-.002c-.141.1846-.3735.3418-.621.3418-.3225 0-.502-.1586-.502-.5156 0-.4125.1965-.6387 1.125-.6387z\"},\"child\":[]}]})(props);\n};\nexport function SiSanfranciscomunicipalrailway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.62 15.698v-4.847s0-.232-.237-.232c-.225 0-.225.232-.225.232v6.678h-.924V9.925s-.022-1.154 1.15-1.154c1.153 0 1.153 1.153 1.153 1.153v4.156s0 1.618 1.616 1.618c1.615 0 1.615-1.618 1.615-1.618V6.448h.924v9.25s0 2.073-2.54 2.073c-2.532 0-2.532-2.073-2.532-2.073m-5.542-1.607V6.448h.925v6.71s-.023.233.23.233c.254 0 .23-.232.23-.232v-6.71h.923v7.631s.095 1.157-1.153 1.157c-1.247 0-1.155-1.146-1.155-1.146m-8.306 1.146L2.77 10.85s0-.232-.23-.232c-.232 0-.232.232-.232.232v6.678h-.922V9.925s0-1.154 1.154-1.154 1.154 1.153 1.154 1.153v4.156s0 1.618 1.613 1.618c1.618 0 1.618-1.618 1.618-1.618V9.925s-.02-1.154 1.15-1.154c1.158 0 1.158 1.153 1.158 1.153v7.605H8.31v-6.678s0-.232-.237-.232c-.225 0-.225.232-.225.232v4.386s-.03 2.534-2.542 2.534c-2.513 0-2.535-2.534-2.535-2.534m19.385-8.789H24V17.53h-1.843zM9.695 15.237V9.924s0-1.61-1.62-1.61c-1.612 0-1.612 1.61-1.612 1.61v4.156s0 1.157-1.156 1.157c-1.154 0-1.154-1.157-1.154-1.157V9.925s0-1.611-1.613-1.611c-1.616 0-1.616 1.61-1.616 1.61v7.605H0V8.771s0-2.543 2.54-2.543 2.54 2.543 2.54 2.543l.01 4.42s-.01.2.217.2c.242 0 .235-.232.235-.232V8.77s0-2.543 2.532-2.543c2.545 0 2.54 2.543 2.54 2.543l.005 5.31s-.075 1.617 1.613 1.617c1.69 0 1.614-1.618 1.614-1.618l.002-5.31s0-2.541 2.535-2.541c2.537 0 2.537 2.542 2.537 2.542l.008 4.388s-.008.232.225.232c.23 0 .23-.232.23-.232v-6.71h.924v7.631s0 1.157-1.154 1.157c-1.157 0-1.157-1.157-1.157-1.157V9.925s0-1.611-1.613-1.611c-1.611 0-1.611 1.61-1.611 1.61v5.313s0 2.534-2.54 2.534c-2.537 0-2.537-2.534-2.537-2.534Z\"},\"child\":[]}]})(props);\n};\nexport function SiSanic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.37 0 0 5.37 0 12s5.37 12 12 12 12-5.37 12-12S18.63 0 12 0Zm-.703 6.676c.584-.01.694-.037 1.379-.037.758 0 .758.064 1.507.064.548 0 .767-.027 1.114-.036.064 0 .137 0 .219.018a.511.511 0 0 1 .237.11.84.84 0 0 1 .265.52c.01.11 0 .22-.027.329a.836.836 0 0 1-.365.493c-.037.018-.083.027-.12.037-.1.009-.255.018-.383.027-.246 0-.475-.01-.94-.01-.758 0-.758.056-1.507.056H11.15c-.183-.01-.274.009-.411-.046a.69.69 0 0 1-.22-.21.62.62 0 0 1-.1-.292c-.027-.676.119-1.014.877-1.023zM5.516 8.21c.256-.466.703-.776 1.169-1.032.447-.274.922-.466 1.48-.466.365 0 .447-.027.73-.036.256.018.301.018.438.128.146.146.265.32.302.538a.817.817 0 0 1-.183.63c-.356.311-.667.183-1.288.183-.42 0-.758.256-1.04.53-.275.283-.466.62-.466 1.041 0 .42.118.831.392 1.114.283.274.694.466 1.114.466.75 0 .75-.11 1.507-.11.75 0 .75-.018 1.498-.018.758 0 .758.137 1.507.137.246 0 .511-.1.721.082a.842.842 0 0 1 .302.54c.009.118 0 .227-.028.337-.146.447-.155.548-.995.557-.75 0-.75-.146-1.507-.146-.749 0-.749.119-1.498.119-.758 0-.758-.12-1.507-.12-.557 0-1.04-.109-1.497-.364-.466-.274-.895-.594-1.17-1.06-.255-.447-.337-.995-.337-1.534.009-.539.1-1.068.356-1.516zm3.251 8.557a.817.817 0 0 1-.155.292.703.703 0 0 1-.256.21c-.2.092-.575.055-.886.064-.73 0-.776-.036-1.516-.036a.778.778 0 0 1-.776-.786c.01-.41.393-.748.804-.748.721 0 .758-.037 1.48-.037.693.018.83-.027 1.04.146a.842.842 0 0 1 .302.539c.009.128-.01.247-.037.356zm9.516-.95c-.274.466-.648.804-1.114 1.078-.448.256-.94.41-1.48.41-.757 0-.757.065-1.506.065-.758 0-.758-.028-1.507-.028-.75 0-.75.037-1.507.037-.877-.027-1.507.137-1.598-.621a.746.746 0 0 1 .045-.347c.037-.11.1-.22.174-.31a.834.834 0 0 1 .274-.229c.347-.146.712-.091 1.114-.091.758 0 .758.064 1.507.064.758 0 .758.027 1.507.027.749 0 .749.037 1.507.037.42 0 .858-.192 1.123-.466.274-.283.365-.703.365-1.142 0-.42-.192-.748-.475-1.022-.274-.284-.593-.503-1.023-.503-.547.019-.913.073-1.114-.2a.62.62 0 0 1-.1-.293.746.746 0 0 1 .046-.347c.036-.11.1-.22.173-.31a.834.834 0 0 1 .274-.229c.183-.091.402-.055.73-.055.54 0 1.097.019 1.553.274.466.256.749.758 1.005 1.224.255.439.557.923.557 1.47-.01.558-.265 1.06-.53 1.507zm-.164-7.643c-.484 0-.393.009-.557.009-.32.009-.594.009-.758-.265a.695.695 0 0 1-.092-.274c-.009-.11 0-.229.037-.338.036-.11.073-.21.137-.329.137-.219.256-.283.484-.32.137-.036.502-.045.767-.027.438 0 .721.42.703.859a.698.698 0 0 1-.721.684z\"},\"child\":[]}]})(props);\n};\nexport function SiSanity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.394 7.31a5.745 5.745 0 0 1-.833-.68c-.913-.91-1.38-2.067-1.38-3.568v-.575C6.699.929 9.039 0 11.828 0c5.394 0 8.515 2.8 9.285 6.74H16.22c-.54-1.554-1.89-2.764-4.352-2.764-2.422 0-4.136 1.276-4.473 3.334h-.002ZM4.683 3.062c0 3.236 2.034 5.162 6.106 6.177l4.316.983c3.854.87 6.2 3.03 6.2 6.55a6.61 6.61 0 0 1-1.436 4.239c0-3.511-1.85-5.409-6.31-6.55l-4.236-.946c-3.393-.76-6.011-2.536-6.011-6.36a6.578 6.578 0 0 1 1.37-4.093ZM17.18 16.484c-.292 2.235-2.092 3.495-4.698 3.495-2.314 0-4.048-.946-4.703-2.99H2.694C3.518 21.44 7.224 24 12.519 24c2.828 0 5.277-.87 6.85-2.439v-.55c0-1.66-.433-2.876-1.342-3.816a5.508 5.508 0 0 0-.847-.71v-.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiSaopaulometro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.366 6.543l5.092 5.456-5.092 5.456V6.543zM24 0v24H0V0h24zm-5.542 11.999l1.747-1.872L11.976 1.9l-8.227 8.228 1.747 1.871-1.747 1.871 8.227 8.229 8.228-8.229-1.746-1.871zm-7.87 5.455V6.543l-5.092 5.456 5.092 5.455z\"},\"child\":[]}]})(props);\n};\nexport function SiSap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 6.064v11.872h12.13L24 6.064zm3.264 2.208h.005c.863.001 1.915.245 2.676.633l-.82 1.43c-.835-.404-1.255-.442-1.73-.467-.708-.038-1.064.215-1.069.488-.007.332.669.633 1.305.838.964.306 2.19.715 2.377 1.9L7.77 8.437h2.046l2.064 5.576-.007-5.575h2.37c2.257 0 3.318.764 3.318 2.519 0 1.575-1.09 2.514-2.936 2.514h-.763l-.01 2.094-3.588-.003-.25-.908c-.37.122-.787.189-1.23.189-.456 0-.885-.071-1.263-.2l-.358.919-2 .006.09-.462c-.029.025-.057.05-.087.074-.535.43-1.208.629-2.037.644l-.213.002a5.075 5.075 0 0 1-2.581-.675l.73-1.448c.79.467 1.286.572 1.956.558.347-.007.598-.07.761-.239a.557.557 0 0 0 .156-.369c.007-.376-.53-.553-1.185-.756-.531-.164-1.135-.389-1.606-.735-.559-.41-.825-.924-.812-1.65a1.99 1.99 0 0 1 .566-1.377c.519-.537 1.357-.863 2.363-.863zm10.597 1.67v1.904h.521c.694 0 1.247-.23 1.248-.964 0-.709-.554-.94-1.248-.94zm-5.087.767l-.748 2.362c.223.085.481.133.757.133.268 0 .52-.047.742-.126l-.736-2.37z\"},\"child\":[]}]})(props);\n};\nexport function SiSartorius (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3766 12.4988c0 .6105-.2898 1.0715-.9317 1.0715s-.9315-.4733-.9315-1.0715V9.988h-.588v2.51c0 .8212.5135 1.5959 1.5195 1.5959.9829 0 1.5097-.7747 1.5097-1.5958v-.1646h-.578zm-3.8398 1.5133h.588V9.988h-.588Zm-5.3263-4.0183h-.095v.5125h.095c.8374 0 1.498.6697 1.498 1.5316 0 .8678-.6606 1.5375-1.498 1.5375s-1.4991-.6697-1.4991-1.5375h-.5463c0 1.1473.905 2.05 2.0454 2.05s2.0442-.9027 2.0442-2.05c0-1.1415-.9038-2.044-2.0442-2.044m11.052 1.7986c-.2856-.1283-.6287-.1934-.8787-.2983-.2737-.1168-.3738-.2753-.3738-.5377 0-.315.2618-.5543.6604-.5543.5237 0 .768.2568.7796.6302h.5294c.0178-.5835-.4045-1.1262-1.309-1.1262-.7437 0-1.2386.4611-1.2386 1.0445 0 .495.231.7768.5999.9751.2856.1517.5851.1868.8648.2917.4089.1513.5329.3598.5329.6551 0 .4044-.278.6626-.7362.6626h-.058v.4782h.0348c.8139 0 1.33-.5083 1.33-1.1435.0001-.4174-.2027-.8387-.7375-1.0774m-6.4054-.5346c0-.728-.5226-1.2695-1.277-1.2695h-1.194v.5302h1.1752c.38 0 .7484.297.7484.739 0 .4252-.3387.7455-.7662.7455h-.62v.53l.467-.0046.7814 1.484h.6475l-.8442-1.552c.4416-.1346.8819-.5913.8819-1.2032ZM11.3194 9.988H8.3478v.5293h.7138v3.495h.5819v-3.495h1.6759zm-7.312 0L2.469 14.0123h.5705l1.2708-3.3314 1.3126 3.3314h.6118L4.6132 9.988ZM.553 12.761v-.215H.0005v.2147c-.0178.652.4202 1.2525 1.412 1.2525h.0355v-.4887h-.0356c-.5287 0-.8594-.3379-.8594-.7632zm1.4118-.9614c-.2852-.128-.6474-.198-.897-.303-.2732-.1159-.3564-.2795-.3564-.5417 0-.3146.2608-.5534.6594-.5534.5227 0 .7662.2563.7781.6292h.5285c.0178-.5827-.4039-1.1245-1.3069-1.1245-.7426 0-1.2415.4602-1.2416 1.0433 0 .466.1903.7806.5822.9785.2852.145.594.1865.8733.2913.297.1107.41.204.4514.3671h.6c-.0829-.3437-.3146-.6229-.671-.7865zm6.1307-.5426c0-.728-.5226-1.2695-1.277-1.2695h-1.216v.53h1.1972c.38 0 .7483.297.7483.739 0 .4252-.3385.7454-.7661.7454h-.6415v.53l.4894-.0046.7812 1.484h.6474l-.8437-1.552c.4405-.1334.8808-.59.8808-1.202z\"},\"child\":[]}]})(props);\n};\nexport function SiSass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.627 0 12 5.373 12 12s-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0zM9.615 15.998c.175.645.156 1.248-.024 1.792l-.065.18c-.024.061-.052.12-.078.176-.14.29-.326.56-.555.81-.698.759-1.672 1.047-2.09.805-.45-.262-.226-1.335.584-2.19.871-.918 2.12-1.509 2.12-1.509v-.003l.108-.061zm9.911-10.861c-.542-2.133-4.077-2.834-7.422-1.645-1.989.707-4.144 1.818-5.693 3.267C4.568 8.48 4.275 9.98 4.396 10.607c.427 2.211 3.457 3.657 4.703 4.73v.006c-.367.18-3.056 1.529-3.686 2.925-.675 1.47.105 2.521.615 2.655 1.575.436 3.195-.36 4.065-1.649.84-1.261.766-2.881.404-3.676.496-.135 1.08-.195 1.83-.104 2.101.24 2.521 1.56 2.43 2.1-.09.539-.523.854-.674.944-.15.091-.195.12-.181.181.015.09.091.09.21.075.165-.03 1.096-.45 1.141-1.471.045-1.29-1.186-2.729-3.375-2.7-.9.016-1.471.091-1.875.256-.03-.045-.061-.075-.105-.105-1.35-1.455-3.855-2.475-3.75-4.41.03-.705.285-2.564 4.8-4.814 3.705-1.846 6.661-1.335 7.171-.21.733 1.604-1.576 4.59-5.431 5.024-1.47.165-2.235-.404-2.431-.615-.209-.225-.239-.24-.314-.194-.12.06-.045.255 0 .375.12.3.585.825 1.396 1.095.704.225 2.43.359 4.5-.45 2.324-.899 4.139-3.405 3.614-5.505l.073.067z\"},\"child\":[]}]})(props);\n};\nexport function SiSat1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.3437.0066c-.292.01-.586.028-.881.06-10.092 1.088-6.4994 16.6226-5.9704 18.1375-3.9647-8.4243-1.6329-13.7038.118-15.4917.049-.05-.004-.136-.05-.095C.6046 5.8241.2506 9.4498.2506 9.4498c-.684 3.9517 3.1578 7.8334 4.2457 8.7653C1.5295 16.2152.6556 14.7794.1146 12.7985c-.016-.06-.118-.08-.113 0 .081 1.064.185 2.4898 1.005 4.1737.7519.9729 2.8147 1.2469 3.4897 1.2459h.003l-.003-.006C5.3792 14.9634 7.17 9.2928 9.9908 5.473 12.7185 1.9356 14.8204.8237 15.3933.5687c.048-.023.025-.077-.03-.114-.128-.082-1.9788-.513-4.0196-.448zM4.4983 18.2191c.7149 1.2099 2.9297 4.5456 6.9754 5.6995 1.3818.277 5.6175-.02 8.6012-3.0108.054-.053.007-.175-.106-.099-1.9698 1.344-8.1393 2.6818-15.4706-2.5897zl-.003.002c-1.053.447-2.2199.28-2.7298.044-.065-.031-.125-.02-.09.044.748 1.2639 1.1659 1.6998 2.1098 2.5448.051.053.104.04.08-.064-.01-.046-.189-1.342.63-2.5648-.105.822-.206 3.1047.6919 3.7107 1.0579.7219 2.1468 1.4138 4.0836 1.8288.076.018.145-.071.071-.11-3.1657-1.5458-3.9116-3.4737-4.8445-5.4325zM17.612 1.3985c-.226.026-.462.215-1.0159.552C9.9728 6.36 5.0582 17.0342 4.4982 18.215c0 0 11.0691-2.3898 17.8545-9.2892 1.06-1.085 1.138-.85.64-2.0538-.239-.597-.866-1.8129-1.9499-3.0358-.8539-.9549-1.9698-1.7028-2.4658-2.0098-.52-.316-.7379-.454-.9649-.428zM4.4983 18.2151c1.3628.78 16.1146 7.0634 18.9573-2.7248.665-2.2838.576-4.6746.468-4.9636-.022-.062-.073-.034-.076-.014-.35.516-1.8279 2.4198-5.7795 4.4947C13.8265 17.1182 7.84 17.913 4.4993 18.215z\"},\"child\":[]}]})(props);\n};\nexport function SiSatellite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.413 7.62c.042 0 .063.02.105.02.062 0 .148-.02.21-.061l.736-.415c.21-.124.273-.372.148-.559l-.946-1.635a.374.374 0 0 0-.253-.187c-.105-.02-.23-.02-.315.042l-.735.414c-.211.125-.274.373-.148.56l.946 1.635c.042.082.147.145.252.186zm3.699 4.06-.735.413c-.21.125-.274.374-.148.56l.946 1.635a.373.373 0 0 0 .253.187c.041 0 .062.02.104.02a.409.409 0 0 0 .211-.062l.735-.414c.21-.125.274-.373.148-.56l-.946-1.635a.375.375 0 0 0-.252-.187.558.558 0 0 0-.316.042ZM11.989 0C6.105 0 1.333 4.7 1.333 10.499c0 .953.127 1.884.379 2.795.147.56.735.87 1.282.725.567-.145.882-.725.736-1.263a8.098 8.098 0 0 1-.316-2.237C3.436 5.86 7.28 2.071 11.99 2.071s8.555 3.79 8.555 8.428c0 3.189-1.787 6.067-4.667 7.517a6.35 6.35 0 0 1-.861.372c-.126.041-.252.104-.4.145a1.046 1.046 0 0 0-.735.994c0 .498.084 1.056.274 1.657l-2.46-1.305c-.987-.517-1.955-1.056-2.753-1.822-.904-.87-1.198-1.429-1.282-2.444-.084-.931.147-1.594.904-2.505.4-.497.924-.85 1.344-1.097.4-.25.82-.477 1.262-.685a2.097 2.097 0 0 0 2.27.146 2.053 2.053 0 0 0 .798-2.816c-.567-.995-1.849-1.347-2.858-.788a2.021 2.021 0 0 0-1.051 1.575c-.525.249-1.05.538-1.534.849-.547.331-1.262.828-1.87 1.573-.758.932-1.514 2.133-1.367 3.976.126 1.532.631 2.527 1.892 3.748 1.009.974 2.101 1.595 3.258 2.196l3.95 2.05c.211.103.463.165.694.165.379 0 .736-.145 1.009-.394a1.41 1.41 0 0 0 .315-1.656 7.646 7.646 0 0 1-.588-1.677c.252-.104.505-.229.756-.332 3.595-1.801 5.823-5.384 5.823-9.36C22.645 4.701 17.875 0 11.989 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiSaturn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.039 11.459c.001.015.022.244.03.407.006.113 0 .29 0 .3.003 0 .029.023.03.024 1.428 1.17 2.943 2.767 3.204 3.94.073.325.056.618-.072.868-.152.293-.439.503-.834.638-2.046.7-6.925-.642-10.907-2.609-2.845-1.406-5.342-3.081-7.032-4.719-1.57-1.523-1.995-2.71-1.59-3.427.155-.271.42-.472.776-.609 1.299-.507 3.788-.152 6.239.579-1.16.866-1.968 2.034-2.342 3.202l-.001.007a.051.051 0 0 1-.001.006c-.115 1.07 1.434 2.47 3 3.25-.002-.006.084.032.084.026-.002-.006-.015-.109-.017-.113-.366-2.66 1.648-6.64 3.765-7.513.136-.056.254-.09.27-.095l-.273-.027c-.074-.006-.148-.013-.228-.015a7.464 7.464 0 0 0-.272-.01 6.443 6.443 0 0 0-3.4.892C5.378 5.057 2.383 4.892 1.13 5.31c-.497.167-.833.418-1 .751-.174.35-.175.79-.002 1.306.57 1.704 3.058 4.032 6.211 6.099.457 2.407 2.615 4.875 5.703 5.204l.142.015a.278.278 0 0 1 .05 0 6.618 6.618 0 0 0-.173-.132c-.955-.736-1.813-1.949-2.107-3l.185.093.143.07c4.985 2.465 10.215 3.72 12.53 2.947.519-.174.9-.418 1.075-.768.167-.335.139-.78-.029-1.278-.436-1.3-2.304-3.284-4.675-5.052a5.003 5.003 0 0 0-.145-.107\"},\"child\":[]}]})(props);\n};\nexport function SiSaucelabs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.4337 7.344c-.5641-.7664-1.469-1.2197-2.4343-1.2197H13.999L11.9993 12h4.8377l-1.9998 5.8755H9.9995l-1.9997 5.8755h9.0001c1.2912 0 2.438-.8086 2.8466-2.0088L23.846 9.9922c.3049-.8957.1518-1.8807-.4123-2.647Zm-13.434 4.655H7.1618l1.9997-5.8756h4.8378l2.001-5.8743H7c-1.2912 0-2.438.8086-2.8466 2.0089L.154 14.0079c-.3049.8956-.1518 1.8807.4123 2.647.5641.7663 1.469 1.2196 2.4343 1.2196h7.0004l1.9998-5.8755H10.001z\"},\"child\":[]}]})(props);\n};\nexport function SiSaudia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.759 5.065c.9467.2206 1.5774.709 1.5774.709s-.5652-.8898-1.4944-1.2994c-.6905-.3046-1.3669-.3084-1.8968-.2284.0425-.085.0968-.1617.1663-.2254.163-.15.3462-.2365.3462-.2365s-.3924-.0987-.7332.0296c-.1759.0663-.3144.1633-.419.2553a2.8126 2.8126 0 0 0-.0561-.2997c-.0403-.1636-.233-.5137-.2496-.5435-.0165.0299-.2093.38-.2495.5435a2.8656 2.8656 0 0 0-.0562.2997c-.1045-.092-.243-.189-.419-.2553-.3408-.1283-.7332-.0296-.7332-.0296s.1833.0864.3463.2365c.0695.0638.1238.1404.1663.2254-.53-.08-1.2063-.0762-1.8968.2284-.9293.4096-1.4944 1.2994-1.4944 1.2994s.6306-.4884 1.5773-.709c.4664-.1084.899-.1047 1.2687-.0558-.5924.129-1.4224.4374-2.0342 1.2166-.5328.6783-.6693 1.627-.6693 1.627s.4324-.554 1.1608-1.172a5.3466 5.3466 0 0 1 1.2083-.773c-.4536.4305-.6782 1.091-.769 1.3414-.2762.7628-.0991 1.6102-.0991 1.6102s.1166-.5536.5411-1.2737c.3025-.5135.6921-.9026 1.0187-1.1704-.3908 1.4485.0125 2.8744.0125 2.8744s.2446-1.0975.6126-2.0282c.1566-.396.3362-.6952.5082-.9193.1721.2241.3517.5232.5083.9193.368.9307.6125 2.0282.6125 2.0282s.4033-1.4259.0125-2.8744c.3266.2678.7163.6569 1.0188 1.1704.4245.72.5411 1.2737.5411 1.2737s.177-.8474-.0992-1.6102c-.0908-.2504-.3154-.9109-.7688-1.3415a5.3497 5.3497 0 0 1 1.2082.7732c.7284.618 1.1607 1.172 1.1607 1.172s-.1364-.9488-.6693-1.627c-.6117-.7793-1.4418-1.0878-2.0343-1.2167.3696-.049.8023-.0526 1.2687.0559zM11.257 9.9964.1124 7.7623c-.0887-.0176-.1485.088-.0877.1547l3.5377 3.9094c1.0824-.1919 2.1748-.2009 3.2488.0342 1.6084.352 3.1082 1.0626 4.5816 1.7776zm-3.0057 7.0091-.6383-.7071c.4314-.2386.861-.4798 1.2878-.7262.7147-.4125 1.4164-.8508 2.1327-1.2622-1.6736-.961-2.9471-1.5586-4.0263-1.9281-1.089-.4295-2.2841-.5153-3.4447-.5554l4.0445 4.4695c-.0184.014-.153.1136-.377.246-1.339.7925-2.1517.9026-3.2395.983 1.0017.2088 1.4249.4835 2.892.1527.5157-.1161 1.3428-.649 1.3711-.6673l3.4057 3.7637-.2149-5.7579c-.8341.501-1.6592 1.0165-2.4817 1.5383m3.7805-6.558-.136 3.6418c1.4735-.715 2.9733-1.4256 4.5819-1.7776 1.0738-.235 2.1662-.226 3.2486-.0342l3.5377-3.9093c.0607-.0668.001-.1724-.0876-.1547m-3.4501 4.064-4.0445 4.4695c.0184.014.153.1136.377.2459 1.339.7926 2.1517.9027 3.2395.983-1.0016.209-1.4249.4836-2.892.1528-.5157-.1161-1.3428-.649-1.371-.6674l-3.4058 3.7638.2149-5.7579c1.0759.6445 2.134 1.3178 3.193 1.9894l.6383-.7072a80.1445 80.1445 0 0 1-1.2877-.7262c-.7147-.4125-1.4164-.8508-2.1327-1.2622 1.9488-1.1083 3.051-1.5941 4.0263-1.928 1.089-.4296 2.284-.5154 3.4447-.5555\"},\"child\":[]}]})(props);\n};\nexport function SiScala (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.589 24c4.537 0 13.81-1.516 14.821-3v-5.729c-.957 1.408-10.284 2.912-14.821 2.912V24zM4.589 16.365c4.537 0 13.81-1.516 14.821-3V7.636c-.957 1.408-10.284 2.912-14.821 2.912v5.817zM4.589 8.729c4.537 0 13.81-1.516 14.821-3V0C18.453 1.408 9.126 2.912 4.589 2.912v5.817z\"},\"child\":[]}]})(props);\n};\nexport function SiScaleway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.605 11.11v5.72a1.77 1.77 0 01-1.54 1.69h-4a1.43 1.43 0 01-1.31-1.22 1.09 1.09 0 010-.18 1.37 1.37 0 011.37-1.36h1.74a1 1 0 001-1v-3.62a1.4 1.4 0 011.18-1.39h.17a1.37 1.37 0 011.39 1.36zm-6.46 1.74V9.26a1 1 0 011-1h1.85a1.37 1.37 0 001.37-1.37 1 1 0 000-.17 1.45 1.45 0 00-1.41-1.2h-3.96a1.81 1.81 0 00-1.58 1.66v5.7a1.37 1.37 0 001.37 1.37h.21a1.4 1.4 0 001.15-1.4zm12-4.29V20a4.53 4.53 0 01-4.15 4h-7.58a8.57 8.57 0 01-8.56-8.57V4.54A4.54 4.54 0 016.395 0h7.18a8.56 8.56 0 018.56 8.56zm-2.74 0a5.83 5.83 0 00-5.82-5.82h-7.19a1.79 1.79 0 00-1.8 1.8v10.89a5.83 5.83 0 005.82 5.8h7.44a1.79 1.79 0 001.54-1.48z\"},\"child\":[]}]})(props);\n};\nexport function SiScania (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .6c-2.167 0-4.264.667-6.019 1.888a32.768 32.768 0 0 1-2.167-.48A12.262 12.262 0 0 0 0 8.615a32.75 32.75 0 0 1 1.5 1.636c-.3705 4.3908 2.0301 8.5486 6.018 10.423.247.699.47 1.404.668 2.117a12.266 12.266 0 0 0 7.629 0c.197-.713.42-1.419.667-2.118 3.9876-1.8737 6.3882-6.0307 6.018-10.421.482-.563.982-1.11 1.5-1.636a12.261 12.261 0 0 0-3.814-6.609c-.716.185-1.439.345-2.167.481A10.535 10.535 0 0 0 12 .6zm0 .642c1.806 0 3.562.494 5.086 1.407a32.724 32.724 0 0 1-10.172 0A9.896 9.896 0 0 1 12 1.242zM3.994 2.715c.431.107.865.204 1.301.293a10.537 10.537 0 0 0-3.687 6.387c-.295-.332-.597-.659-.904-.98a11.619 11.619 0 0 1 3.29-5.7zm16.012 0a11.62 11.62 0 0 1 3.29 5.7c-.307.321-.609.648-.904.98a10.537 10.537 0 0 0-3.687-6.387c.436-.089.87-.186 1.301-.293zm-13.873.454a33.353 33.353 0 0 0 11.734 0 9.885 9.885 0 0 1 3.966 6.873 33.352 33.352 0 0 0-5.866 10.16 9.89 9.89 0 0 1-7.935 0 33.367 33.367 0 0 0-5.866-10.16 9.895 9.895 0 0 1 3.967-6.873zm6.018.867a.662.662 0 0 0-.448 1.132.652.652 0 0 0-.971.573.652.652 0 0 0 1.03.535c-.241.404-.606.944-1.13.944-.547 0-.811-.228-1.052-.633a.548.548 0 0 0 .318-.021c.316-.105.493-.423.404-.823-.079-.354-.456-.55-.799-.45a.637.637 0 0 0-.291.18.698.698 0 0 0 .064-.519c-.098-.349-.512-.628-.873-.574l1.415 3.475c-.073.078-.18.196-.256.329-.302-.153-.909-.379-1.514-.135a1.553 1.553 0 0 0-.522.349c-.45.45-.676 1.2-.793 1.731a8.3307 8.3307 0 0 0-.08.415c.188-.141.31-.23.424-.306.102-.068.2-.124.336-.194.247-.127.583-.264.886-.264.163 0 .347.043.472.148.045.037.405.543 1.114.729.666.175.68.287.69.377 0 0-.116.19-.367.365a2.685 2.685 0 0 0-.346-.445c-.331-.346-.862-.532-1.296-.529-.413.004-.718.192-1.526.192-.82 0-1.39-.207-1.81-.454-.302-.164-.52-.37-.723-.535.108.263.213.472.307.684.07.151.327.667.648.947.413.35.822.465 1.224.465.408 0 .81-.119 1.206-.236.39-.116.766-.228 1.142-.228.487 0 .752.163.964.294a6.196 6.196 0 0 1-.225.15c-.3.191-.539.262-.771.262-.286 0-.801-.15-1.25-.33a1.2368 1.2368 0 0 0-.006.102v.116c0 .253.041.557.326.85.123.125.275.222.454.29.187.07.407.105.646.117-.109.1-.211.194-.31.316-.24.296-.435.692-.435 1.202 0 .262.046.481.111.691.047.149.093.284.157.445l.212-.255c.004-.004.236-.278.555-.51a2.98 2.98 0 0 0-.326 1.325c0 1.012.563 1.834 1.332 2.48 0 0 .183.163.312.263-.003-.162 0-.267 0-.408 0-.493.08-1.448.405-2.025.035.135.075.334.11.558.045.298.081.641.081.94 0 .496-.072.863-.156 1.127-.098.304-.18.42-.255.547a3.34 3.34 0 0 0 .882-.09 2.3 2.3 0 0 0 1.72-1.555c.09-.283.136-.596.136-.94 0-.198-.018-.403-.046-.603l-.024-.16c.055.044.093.085.14.138.18.207.343.524.343 1.036 0 .175-.01.445-.084.749.174-.058.351-.163.52-.27.204-.13.397-.284.572-.46.48-.48.811-1.117.818-1.845.005-.475-.096-.855-.32-1.299-.024-.048-.052-.097-.077-.146.052.022.101.05.147.08.255.164.42.424.53.718.066.177.114.35.147.554.074-.09.162-.212.262-.385.201-.348.414-.883.414-1.647 0-.375-.049-.806-.22-1.255a2.883 2.883 0 0 0-.85-1.202c.2643.0287.511.146.7.333.125.126.223.28.313.452l.095.19c.009-.093.008-.123.01-.204-.02-1.351-.397-2.34-1.626-2.978l-.007-.004c.43-.488.638-1.038.783-1.63-.296-.075-.843-.138-1.673.25l1.32-3.254c-.362-.054-.775.225-.873.574a.695.695 0 0 0 .065.519.642.642 0 0 0-.292-.181c-.343-.1-.72.097-.8.451-.088.4.089.718.405.822.134.04.177.045.318.021-.241.405-.494.629-1.041.629-.524 0-.892-.535-1.133-.94 0 0 .246.122.385.122a.651.651 0 0 0 .645-.657.652.652 0 0 0-.645-.658.634.634 0 0 0-.33.093.694.694 0 0 0 .202-.481.651.651 0 0 0-.645-.658zm3.608 3.585h.147l-.047.14c-.151.447-.629 1.516-1.802 1.779l.005.022.05.247c.497-.092.817-.303 1.107-.555.742.361 1.242.961 1.42 1.76l.034.157a.668.668 0 0 0-.114-.1 1.345 1.345 0 0 0-.719-.194c-.262 0-.489.063-.602.102.186.159.337.297.471.431.41.411.677.803.837 1.235.12.326.18.67.18 1.048 0 .403-.072.772-.213 1.098-.011.026-.04.092-.052.127a.706.706 0 0 0-.044-.126c-.341-.72-.91-.872-1.328-.872-.07 0-.13.004-.184.008l.006.01c.278.428.698 1.075.698 1.87 0 .26-.048.516-.142.759a2.4 2.4 0 0 1-.55.83c-.118.117-.222.214-.397.333l-.1.071a.465.465 0 0 0 .02-.12c.024-.897-.475-1.61-1.272-1.827l.018.076c.087.353.186.752.186 1.292 0 .583-.145 1.066-.43 1.436a1.954 1.954 0 0 1-.688.556 2.23 2.23 0 0 1-.652.219l-.109.018c.011-.014.034-.063.045-.087a1.0898 1.0898 0 0 0 .054-.161c.124-.455.127-1.001.127-1.069 0-.845-.21-1.618-.336-2.08l-.026-.098c-.1.074-.166.14-.211.186l-.02.021c-.263.263-.455.723-.57 1.367-.035.197-.052.362-.07.537l-.013.195-.003.121s-.072-.08-.09-.098a4.643 4.643 0 0 1-.188-.204 3.207 3.207 0 0 1-.483-.71 2.495 2.495 0 0 1-.177-.482 2.302 2.302 0 0 1-.07-.561c0-1.062.641-1.774.918-2.058l-.09.016a3.31 3.31 0 0 0-.326.08 2.172 2.172 0 0 0-.546.252 3.171 3.171 0 0 0-.603.513s-.018-.083-.021-.107a2.518 2.518 0 0 1-.04-.391c0-.441.168-.833.5-1.163.312-.313.551-.413 1.265-.712l.218-.091-.314.043c-.438.062-.638.09-1.009.09-.525 0-.887-.107-1.106-.327a.75.75 0 0 1-.123-.158 1.549 1.549 0 0 1-.117-.243l.272.099c.054.017.117.036.17.05a1.9 1.9 0 0 0 .49.07c.444 0 .804-.194 1.24-.508.182-.13.336-.258.456-.378.182-.182.221-.28.222-.297-.008-.269-.016-.523-.951-.768a1.782 1.782 0 0 1-.913-.59.8119.8119 0 0 0-.063-.068 1.046 1.046 0 0 0-.682-.229c-.196 0-.409.043-.651.132a4.7942 4.7942 0 0 0-.395.166l-.108.05.036-.113c.04-.132.085-.252.144-.391.05-.118.1-.22.156-.314.184-.31.412-.522.676-.629.138-.056.288-.084.447-.084.385 0 .732.167.875.247.01.71.438 1.12.93 1.12a.856.856 0 0 0 .643-.275c.121-.122.196-.258.244-.366.039-.087.067-.15.07-.2l.005.001a.496.496 0 0 1 .211.132l.236-.21a1.118 1.118 0 0 0-.401-.264 1.424 1.424 0 0 0-.464-.098 1.68 1.68 0 0 0-.36.026c-.123.02-.222.048-.396.048a.693.693 0 0 1-.358-.09 1.73 1.73 0 0 1 .525-.535l.006-.004h3.817l.074.003a3.287 3.287 0 0 0-.747.655l.215.17c.498-.622 1.272-1.01 2.02-1.01v.001zm-.457.494c-.621.08-1.182.635-1.182.635l.127.27c.293-.062.521-.22.69-.389.248-.248.347-.437.365-.516zm-5.542.543l.138.038c.055.016.132.032.207.042l.036.006.007.035a.27.27 0 0 0 .072.144.302.302 0 0 0 .43 0 .297.297 0 0 0 .088-.196l.002-.048.047-.002a2.6025 2.6025 0 0 1 .22 0l.117.008-.018.07a.852.852 0 0 1-.228.425.609.609 0 0 1-.469.192.578.578 0 0 1-.41-.175.81.81 0 0 1-.219-.43l-.02-.109zm4.513 1.49l-.133.416c.085.098.148.19.2.267.146.214.238.41.29.614.05.2.056.392.056.57 0 .142-.015.285-.046.425-.022.101-.053.21-.079.293-.024.08-.079.226-.079.226s-.008-.165-.023-.255-.029-.186-.053-.264a1.437 1.437 0 0 0-.353-.604 1.41 1.41 0 0 0-.35-.253 1.821 1.821 0 0 0-.284-.118c.022.083.045.173.07.28.064.276.093.504.093.716 0 .337-.075.622-.232.871a1.323 1.323 0 0 1-.187.234 2.039 2.039 0 0 1-.386.316c.036-.06.065-.122.1-.193.042-.087.068-.18.087-.248.186-.657-.121-1.063-.37-1.312a2.3783 2.3783 0 0 0-.103-.098c-.004.092-.008.184-.014.277-.022.318-.08.68-.35.948a1.942 1.942 0 0 1-.139.13c-.052.042-.111.092-.19.14.033-.064.06-.096.11-.218a.97.97 0 0 0-.029-.78l-.34.183c.01.025.017.052.024.076a.71.71 0 0 1-.086.577c-.05.08-.115.16-.204.25-.079.077-.162.152-.235.218l-.156.141.139-.001c.15-.002.35-.01.563-.047.34-.062.605-.192.813-.4a1.34 1.34 0 0 0 .218-.287c-.01.11-.037.222-.084.34a2.265 2.265 0 0 1-.239.436c-.065.095-.138.2-.232.315l-.086.105.134-.02c.162-.023.323-.056.48-.098a1.742 1.742 0 0 0 1.078-.777c.1-.158.172-.323.218-.504a2.35 2.35 0 0 0 .066-.696c.03.052.057.109.083.172.054.136.09.29.11.47.01.112.016.235.016.385v.03c0 .144 0 .281-.011.436l-.011.152.103-.112c.134-.147.279-.315.427-.55a2.543 2.543 0 0 0 .332-1.978 2.31 2.31 0 0 0-.359-.76 3.15 3.15 0 0 0-.349-.417l-.018-.019zm-3.275.165a.5.5 0 0 0-.215.049c.273.029.341.113.467.238.066.067.129.138.194.204.12.12.231.219.436.219a.613.613 0 0 0 .157-.022.981.981 0 0 0 .305-.141.528.528 0 0 1-.203.041c-.511 0-.663-.588-1.14-.588h-.001zm-5.83.1c.06.038.186.127.365.2.167.07.343.135.55.184.278.065.586.097.94.097.326 0 .717-.052 1.162-.153.143-.032.292-.062.413-.062.215 0 .424.035.578.116.153.082.261.17.395.279a2.71 2.71 0 0 0-.48-.071c-.143-.01-.34.003-.465.022-.28.041-.525.114-.783.19l-.03.01c-.39.115-.759.224-1.123.224-.422 0-.803-.157-1.101-.455-.065-.065-.171-.17-.242-.27a1.994 1.994 0 0 1-.179-.31v-.001zm-3.061.567a32.694 32.694 0 0 1 5.084 8.805 9.895 9.895 0 0 1-5.086-8.647c0-.054 0-.106.002-.158zm19.786 0l.002.157a9.895 9.895 0 0 1-5.086 8.648 32.665 32.665 0 0 1 5.085-8.805h-.001zM8.313 21.007a10.535 10.535 0 0 0 7.375 0c-.14.423-.273.847-.396 1.274a11.616 11.616 0 0 1-6.583 0 33.2233 33.2233 0 0 0-.397-1.273l.001-.001z\"},\"child\":[]}]})(props);\n};\nexport function SiSchneiderelectric (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.73.313c-3.56-.049-7.797 1.68-11.288 5.02-.87.83-1.607 1.725-2.28 2.642h3.042L5.497 9.99H1.864c-.346.636-.672 1.266-.922 1.906h4.307l-.687 2.016H.327c-.724 3.079-.262 5.953 1.559 7.777 3.54 3.538 11.01 2.292 16.591-3.048.977-.93 1.783-1.931 2.511-2.96h-3.906l.596-2.013h4.568c.334-.64.643-1.274.883-1.914h-4.992l.554-2.01h5.051c.623-2.917.132-5.62-1.638-7.39C20.76 1.01 18.867.34 16.73.312Zm-1.044 4.714h4.968l-.634 2.938h-3.002c-.323 0-.46.054-.592.201-.05.058-.07.115-.09.23l-1.639 6.22c-.385 2.179-3.065 4.359-6.555 4.359H3.288l.842-3.198h3.119a.984.984 0 0 0 .775-.347c.076-.09.177-.232.19-.377L9.509 9.62c.381-2.182 2.686-4.592 6.177-4.592Z\"},\"child\":[]}]})(props);\n};\nexport function SiScikitlearn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.601 5.53c-1.91.035-3.981.91-5.63 2.56-2.93 2.93-2.083 8.53-1.088 9.525.805.804 6.595 1.843 9.526-1.088a9.74 9.74 0 0 0 .584-.643c.043-.292.205-.66.489-1.106a1.848 1.848 0 0 1-.537.176c-.144.265-.37.55-.676.855-.354.335-.607.554-.76.656a.795.795 0 0 1-.437.152c-.35 0-.514-.308-.494-.924-.22.316-.425.549-.612.7a.914.914 0 0 1-.578.224c-.194 0-.36-.09-.496-.273a1.03 1.03 0 0 1-.193-.507 4.016 4.016 0 0 1-.726.583c-.224.132-.47.197-.74.197-.3 0-.543-.096-.727-.288a.978.978 0 0 1-.257-.524v.004c-.3.276-.564.48-.79.611a1.295 1.295 0 0 1-.649.197.693.693 0 0 1-.571-.275c-.145-.183-.218-.43-.218-.739 0-.464.101-1.02.302-1.67.201-.65.445-1.25.733-1.797l.842-.312a.21.21 0 0 1 .06-.013c.063 0 .116.047.157.14.04.095.061.221.061.38 0 .451-.104.888-.312 1.31-.207.422-.532.873-.974 1.352-.018.23-.027.388-.027.474 0 .193.036.345.106.458.071.113.165.169.282.169a.71.71 0 0 0 .382-.13c.132-.084.333-.26.602-.523.028-.418.187-.798.482-1.142.324-.38.685-.569 1.08-.569.206 0 .37.054.494.16a.524.524 0 0 1 .186.417c0 .458-.486.829-1.459 1.114.088.43.32.646.693.646a.807.807 0 0 0 .417-.117c.129-.076.321-.243.575-.497.032-.252.118-.495.259-.728.182-.3.416-.544.701-.73.285-.185.537-.278.756-.278.276 0 .47.127.58.381l.677-.374h.186l-.292.971c-.15.488-.226.823-.226 1.004 0 .19.067.285.202.285.086 0 .181-.045.285-.137.104-.092.25-.232.437-.42v.001c.143-.155.274-.32.392-.494-.19-.084-.285-.21-.285-.375 0-.17.058-.352.174-.545.116-.194.275-.29.479-.29.172 0 .258.088.258.265 0 .139-.05.338-.149.596.367-.04.687-.32.961-.842l.228-.01c1.059-2.438.828-5.075-.83-6.732-1.019-1.02-2.408-1.5-3.895-1.471zm4.725 8.203a8.938 8.938 0 0 1-1.333 2.151 1.09 1.09 0 0 0-.012.147c0 .168.047.309.14.423.092.113.206.17.34.17.296 0 .714-.264 1.254-.787-.001.04-.003.08-.003.121 0 .146.012.368.036.666l.733-.172c0-.2.003-.357.01-.474.01-.157.033-.33.066-.517.02-.11.07-.216.152-.315l.186-.216a5.276 5.276 0 0 1 .378-.397c.062-.055.116-.099.162-.13a.26.26 0 0 1 .123-.046c.055 0 .083.035.083.106 0 .07-.052.236-.156.497-.194.486-.292.848-.292 1.084 0 .175.046.314.136.418a.45.45 0 0 0 .358.155c.365 0 .803-.269 1.313-.808v-.381c-.361.426-.623.64-.784.64-.109 0-.163-.067-.163-.2 0-.1.065-.316.195-.65.19-.486.285-.836.285-1.048a.464.464 0 0 0-.112-.319.36.36 0 0 0-.282-.127c-.165 0-.354.077-.567.233-.213.156-.5.436-.863.84.053-.262.165-.622.335-1.08l-.809.156a6.54 6.54 0 0 0-.399 1.074c-.04.156-.07.316-.092.48a7.447 7.447 0 0 1-.49.45.38.38 0 0 1-.229.08.208.208 0 0 1-.174-.082.352.352 0 0 1-.064-.222c0-.1.019-.214.056-.343.038-.13.12-.373.249-.731l.308-.849zm-17.21-2.927c-.863-.016-1.67.263-2.261.854-1.352 1.352-1.07 3.827.631 5.527 1.7 1.701 4.95 1.21 5.527.632.467-.466 1.07-3.827-.631-5.527-.957-.957-2.158-1.465-3.267-1.486zm12.285.358h.166v.21H15.4zm.427 0h.166v.865l.46-.455h.195l-.364.362.428.684h-.198l-.357-.575-.164.166v.41h-.166zm1.016 0h.166v.21h-.166zm.481.122h.166v.288h.172v.135h-.172v.717c0 .037.006.062.02.075.012.013.037.02.074.02a.23.23 0 0 0 .078-.01v.141a.802.802 0 0 1-.136.014.23.23 0 0 1-.15-.043.15.15 0 0 1-.052-.123v-.79h-.141v-.136h.141zm-3.562.258c.081 0 .15.012.207.038.057.024.1.061.13.11s.045.106.045.173h-.176c-.006-.111-.075-.167-.208-.167a.285.285 0 0 0-.164.041.134.134 0 0 0-.06.117c0 .035.015.065.045.088.03.024.08.044.15.06l.16.039a.47.47 0 0 1 .224.105c.047.046.07.108.07.186a.3.3 0 0 1-.052.175.327.327 0 0 1-.152.116.585.585 0 0 1-.226.041c-.136 0-.24-.03-.309-.088-.069-.059-.105-.149-.109-.269h.176c.004.037.01.065.017.084a.166.166 0 0 0 .034.054c.044.043.112.065.204.065a.31.31 0 0 0 .177-.045.139.139 0 0 0 .067-.119.116.116 0 0 0-.038-.09.287.287 0 0 0-.124-.055l-.156-.038a1.248 1.248 0 0 1-.159-.05.359.359 0 0 1-.098-.061.22.22 0 0 1-.058-.083.32.32 0 0 1-.016-.108c0-.096.036-.174.109-.232a.45.45 0 0 1 .29-.087zm1.035 0a.46.46 0 0 1 .202.043.351.351 0 0 1 .187.212.577.577 0 0 1 .023.126h-.168a.256.256 0 0 0-.078-.168.242.242 0 0 0-.17-.06.248.248 0 0 0-.155.05.306.306 0 0 0-.1.144.662.662 0 0 0-.034.224.58.58 0 0 0 .035.214.299.299 0 0 0 .101.135.261.261 0 0 0 .157.048c.142 0 .227-.084.256-.252h.167a.519.519 0 0 1-.065.22.35.35 0 0 1-.146.138.464.464 0 0 1-.216.048.448.448 0 0 1-.246-.066.441.441 0 0 1-.161-.192.703.703 0 0 1-.057-.293c0-.085.01-.163.032-.233a.522.522 0 0 1 .095-.182.403.403 0 0 1 .15-.117.453.453 0 0 1 .191-.04zm.603.03h.166v1.046H15.4zm1.443 0h.166v1.046h-.166zm-5.05.618c-.08 0-.2.204-.356.611-.155.407-.308.977-.459 1.71.281-.312.509-.662.683-1.05.175-.387.262-.72.262-.999a.455.455 0 0 0-.036-.197c-.025-.05-.056-.075-.093-.075zm4.662 1.797c-.221 0-.431.188-.629.563-.197.376-.296.722-.296 1.038 0 .12.029.216.088.29a.273.273 0 0 0 .223.111c.221 0 .43-.188.625-.565.196-.377.294-.725.294-1.043a.457.457 0 0 0-.083-.29.269.269 0 0 0-.222-.104zm-2.848.007c-.146 0-.285.11-.417.333-.133.222-.2.51-.2.866.566-.159.849-.452.849-.881 0-.212-.077-.318-.232-.318Z\"},\"child\":[]}]})(props);\n};\nexport function SiScilab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.813 1.803c-1.103 0-1.99.888-1.99 1.99v16.414c0 1.102.887 1.99 1.99 1.99h16.375c1.102 0 1.99-.888 1.99-1.99V3.793c0-1.102-.888-1.99-1.99-1.99zm8.82 1.234a1.802 1.825 0 0 1 1.803 1.824 1.802 1.825 0 0 1-1.803 1.827A1.802 1.825 0 0 1 10.83 4.86a1.802 1.825 0 0 1 1.803-1.824Zm2.986 3.496a1.802 1.825 0 0 1 1.803 1.826 1.802 1.825 0 0 1-1.803 1.825 1.802 1.825 0 0 1-1.803-1.825 1.802 1.825 0 0 1 1.803-1.826Zm-7.346.26a1.802 1.825 0 0 1 1.803 1.824 1.802 1.825 0 0 1-1.803 1.826 1.802 1.825 0 0 1-1.802-1.826 1.802 1.825 0 0 1 1.802-1.824Zm3.98 2.633a1.802 1.825 0 0 1 1.804 1.826 1.802 1.825 0 0 1-1.803 1.824 1.802 1.825 0 0 1-1.803-1.824 1.802 1.825 0 0 1 1.803-1.826zm7.044.053a1.802 1.825 0 0 1 1.803 1.826 1.802 1.825 0 0 1-1.803 1.824 1.802 1.825 0 0 1-1.8-1.824 1.802 1.825 0 0 1 1.8-1.826zm-3.402 2.535a1.802 1.825 0 0 1 1.802 1.826 1.802 1.825 0 0 1-1.802 1.824 1.802 1.825 0 0 1-1.803-1.824 1.802 1.825 0 0 1 1.803-1.826zm-11.614.953a1.802 1.825 0 0 1 1.803 1.826 1.802 1.825 0 0 1-1.803 1.824 1.802 1.825 0 0 1-1.802-1.824 1.802 1.825 0 0 1 1.802-1.826Zm15.518.93a1.802 1.825 0 0 1 1.803 1.824 1.802 1.825 0 0 1-1.803 1.826 1.802 1.825 0 0 1-1.803-1.826 1.802 1.825 0 0 1 1.803-1.825zM7.81 15.665a1.802 1.825 0 0 1 1.802 1.824 1.802 1.825 0 0 1-1.802 1.826 1.802 1.825 0 0 1-1.803-1.826 1.802 1.825 0 0 1 1.803-1.824ZM3.564 0A3.556 3.556 0 0 0 0 3.564v16.872A3.556 3.556 0 0 0 3.564 24h16.872A3.556 3.556 0 0 0 24 20.436V3.564A3.556 3.556 0 0 0 20.436 0Zm-.002 1.021h16.875a2.536 2.536 0 0 1 2.542 2.542v16.875a2.536 2.536 0 0 1-2.542 2.54H3.563a2.536 2.536 0 0 1-2.54-2.54V3.563a2.536 2.536 0 0 1 2.54-2.542z\"},\"child\":[]}]})(props);\n};\nexport function SiScipy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.697 13.496c-.784-1.072-1.982-1.519-3.694-1.88l-1.592-.375-1.201-.515c-.631-.446-1.17-1.634-1.017-2.681a3 3 0 0 1 3.386-2.526 2.962 2.962 0 0 1 1.962 1.155L15.35 9.05c1.033 1.33 2.195 1.727 3.459 1.098l.637-.27a.22.22 0 0 1 .278.087l.127.19a.311.311 0 0 0 .156.131.326.326 0 0 0 .33-.058l1.467-1.384c.257-.22.182-.422.182-.422l-.354-.806s-.097-.193-.431-.149l-1.968.181a.327.327 0 0 0-.27.411l.071.227c.014.047.014.1-.005.148a.219.219 0 0 1-.124.125l-.556.235c-.582.341-1.244.123-1.686-.417l-.505-.67-1.438-1.91a4.421 4.421 0 0 0-2.929-1.72C9.355 3.733 7.095 5.42 6.741 7.84c-.179 1.22.187 2.375.855 3.302.485.674 1.373 1.06 1.854 1.18l1.262.36 1.208.277c.166.04.634.155.91.255.256.092.845.31 1.324.701.572.582.875 1.413.746 2.284a2.744 2.744 0 0 1-4.897 1.255l-1.726-2.292a2.294 2.294 0 0 0-1.514-.89 2.31 2.31 0 0 0-1.708.439l-3.632 2.71A11.002 11.002 0 0 1 0 12C0 5.798 5.133.768 11.465.768c4.715 0 8.761 2.788 10.523 6.77l.581-.27.393-1.072.411.144-.353.96.98.337-.148.402-1.095-.382-.603.277c.5 1.262.778 2.632.778 4.066 0 6.203-5.135 11.232-11.467 11.232a11.526 11.526 0 0 1-9.26-4.61l3.721-2.788a.855.855 0 0 1 1.163.19l1.826 2.455a4.186 4.186 0 0 0 2.673 1.502c2.302.322 4.439-1.273 4.773-3.563a4.14 4.14 0 0 0-.664-2.922\"},\"child\":[]}]})(props);\n};\nexport function SiScopus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 19.059l-.14-1.777c-1.426.772-2.945 1.076-4.465 1.076-3.319 0-5.96-2.782-5.96-6.475 0-3.903 2.595-6.31 5.633-6.31 1.917 0 3.39.303 4.792 1.075L24 4.895c-1.286-.608-2.337-.889-4.698-.889-4.534 0-7.97 3.53-7.97 8.017 0 5.12 4.09 7.924 7.9 7.924 1.916 0 3.506-.257 4.768-.888zm-14.954-3.46c0-2.22-1.964-3.225-3.857-4.347C3.716 10.364 2.15 9.756 2.15 8.12c0-1.215.889-2.548 2.642-2.548 1.519 0 2.57.234 3.903 1.029l.117-1.847c-1.239-.514-2.127-.748-4.137-.748C1.8 4.006.047 5.876.047 8.26c0 2.384 2.103 3.413 4.02 4.581 1.426.865 2.922 1.45 2.922 2.992 0 1.496-1.333 2.571-2.922 2.571-1.566 0-2.594-.35-3.786-1.075L0 19.176c1.215.56 2.454.818 4.16.818 2.385 0 4.885-1.473 4.885-4.395z\"},\"child\":[]}]})(props);\n};\nexport function SiScpfoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.577 5.064v.555l-.045.01c-.026 0-.148.015-.272.028a7.023 7.023 0 0 0-3.146 1.14A7.053 7.053 0 0 0 6.18 8.73a7.007 7.007 0 0 0-.507 6.893c.05.103.09.19.09.195 0 0-.236.145-.528.313a34.79 34.79 0 0 0-.544.317c-.014.01.013.063.196.38a8.68 8.68 0 0 0 .22.37 26.001 26.001 0 0 0 .55-.312c.297-.173.544-.313.55-.313.003 0 .052.063.106.14a7.057 7.057 0 0 0 1.801 1.74 7.258 7.258 0 0 0 1.69.826 6.992 6.992 0 0 0 4.41 0 7.228 7.228 0 0 0 1.69-.825 7.01 7.01 0 0 0 1.816-1.764c.063-.09.117-.162.12-.162.002 0 .244.138.536.306.292.17.539.31.548.314.013.01.064-.075.23-.362.192-.331.21-.371.195-.383-.01-.01-.255-.15-.546-.317a16.77 16.77 0 0 1-.527-.313s.036-.082.08-.174a7.033 7.033 0 0 0 .566-4.14 7.074 7.074 0 0 0-1.084-2.73 7.03 7.03 0 0 0-1.622-1.714 6.664 6.664 0 0 0-1.08-.663 6.834 6.834 0 0 0-2.378-.697l-.27-.028-.048-.01v-1.11h-.863zm0 3.102v1.25h-.492c-.285 0-.49 0-.487.01.01.032 1.428 2.775 1.432 2.775.004 0 1.42-2.743 1.434-2.774.002-.01-.213-.01-.51-.01h-.514V6.915h.05c.151 0 .606.076.912.152a5.304 5.304 0 0 1 1.137.42 5.64 5.64 0 0 1 1.165.755c.165.136.589.567.73.742.21.26.406.545.567.828.086.152.263.52.33.69a5.74 5.74 0 0 1 .115 3.918c-.096.29-.27.703-.294.703-.013 0-1.993-1.14-2.013-1.16-.013-.011.022-.08.223-.427.13-.228.24-.418.24-.424 0-.011.007-.011-.25-.022-.102 0-.195-.01-.204-.011-.01 0-.105-.01-.215-.01s-.224-.01-.254-.012c-.03 0-.126-.01-.216-.011-.088 0-.183-.01-.21-.011-.027 0-.134-.01-.237-.012-.104 0-.205-.01-.225-.01-.02 0-.118-.01-.22-.011-.102 0-.203-.01-.224-.011-.02 0-.13-.01-.243-.011-.112 0-.212-.01-.22-.011-.042-.01-.4-.018-.4-.012 0 0 .307.484.682 1.067l.843 1.31c.146.226.163.25.176.233.008-.011.124-.21.259-.443l.245-.424.032.019 1.013.584c.538.31.978.57.978.575 0 .016-.16.23-.29.39a8.634 8.634 0 0 1-.718.728 6.278 6.278 0 0 1-.76.54 7.585 7.585 0 0 1-.817.403 5.743 5.743 0 0 1-4.236 0c-.2-.08-.634-.292-.816-.403a6.23 6.23 0 0 1-.76-.54 8.363 8.363 0 0 1-.696-.7 4.14 4.14 0 0 1-.29-.383c.002 0 .443-.257.98-.567l1.01-.583.034-.021.235.407c.13.224.24.416.248.427.011.017.02.01.08-.086.036-.058.132-.21.213-.333l.267-.415c.114-.18.485-.756.583-.906l.242-.377.255-.396a.682.682 0 0 0 .058-.101c0-.01-.026-.01-.083-.01-.046 0-.15.01-.23.012-.08 0-.182.01-.226.01-.088.01-.239.014-.453.023-.075 0-.172.01-.216.01-.044 0-.14.01-.216.012-.137.01-.26.012-.45.022-.058 0-.212.01-.342.016-.13.01-.285.013-.342.016-.059 0-.153.01-.21.01-.263.014-.349.02-.349.027 0 0 .113.203.252.443l.253.437-.03.017c-.093.06-1.996 1.153-2.004 1.153-.013 0-.114-.214-.19-.406a5.79 5.79 0 0 1-.406-2.49 5.765 5.765 0 0 1 1.291-3.287c.143-.174.567-.606.732-.742.378-.313.73-.54 1.164-.756.4-.196.725-.317 1.137-.42.31-.077.733-.148.9-.15h.061zM8.531.806l-.168.964c-.088.513-.165.94-.17.947a.832.832 0 0 1-.164.077 10.594 10.594 0 0 0-6.498 8.22 2.255 2.255 0 0 1-.04.215c-.02.053-.064.467-.084.825a15.195 15.195 0 0 0 0 1.134c.013.235.033.455.066.736l.024.199-.043.04a44.252 44.252 0 0 1-.328.303l-.2.183c-.09.085-.106.1-.562.522-.198.18-.36.335-.364.34-.003 0 .132.246.299.536l1.738 3.01a200.286 200.286 0 0 0 1.446 2.484c.006 0 .091-.03.19-.066l.468-.171c.95-.348 1.182-.432 1.19-.432a.384.384 0 0 1 .075.053c.197.165.681.506 1 .704a11.19 11.19 0 0 0 1.898.926 10.64 10.64 0 0 0 4.967.593 10.69 10.69 0 0 0 2.583-.647c.106-.042.203-.078.215-.08.059-.01.404-.167.745-.34.553-.28 1.037-.58 1.545-.96l.208-.152.056.017.089.028a133.24 133.24 0 0 1 1.343.419c.015.01.077.025.14.043l.213.067a.612.612 0 0 0 .11.028c.013 0 3.486-6.017 3.482-6.027-.003-.01-.21-.182-1.076-.904l-.415-.347c-.02-.02-.02-.023.002-.18.12-.844.134-1.68.045-2.56a10.59 10.59 0 0 0-5.284-8.136 11.63 11.63 0 0 0-1.226-.6c-.05-.02-.092-.045-.094-.054-.003-.01-.104-.452-.223-.983l-.222-.984c-.005-.017-.18-.018-3.489-.018h-3.48Zm6.395.55a183.046 183.046 0 0 1 .426 1.832c.008.03.02.037.213.11.425.165.93.4 1.282.597a9.974 9.974 0 0 1 5.106 7.923c.035.432.042 1.199.012 1.558-.028.345-.081.75-.143 1.093l-.013.073.048.046a5.893 5.893 0 0 0 .255.219c.006.01.062.053.123.102l.214.177.41.344c.413.345.384.318.37.34-.004.01-.66 1.142-1.452 2.516-.867 1.503-1.45 2.5-1.458 2.5-.01 0-.095-.024-.191-.053l-.213-.064a44.667 44.667 0 0 1-.857-.262c-.012-.01-.043-.015-.07-.022-.027-.01-.058-.016-.07-.022-.012-.01-.055-.02-.097-.03l-.207-.062c-.13-.04-.132-.04-.16-.02l-.18.145c-.261.21-.743.56-.773.56a.77.77 0 0 0-.106.062 10.05 10.05 0 0 1-4.744 1.559 16.157 16.157 0 0 1-1.284 0c-1.405-.105-2.64-.443-3.845-1.05a10.14 10.14 0 0 1-1.764-1.131.565.565 0 0 0-.088-.066.995.995 0 0 1-.117-.095l-.104-.09-.05.01a5.057 5.057 0 0 0-.466.164 60.002 60.002 0 0 1-.528.195l-.529.193a2.303 2.303 0 0 1-.188.066c-.006 0-.666-1.134-1.466-2.52l-1.455-2.52.037-.031.214-.202.248-.233.173-.164c.056-.054.128-.12.16-.15l.1-.09a41.97 41.97 0 0 1 .41-.385l.072-.07-.015-.077a8.382 8.382 0 0 1-.118-1c0-.087-.006-.32-.01-.518A9.967 9.967 0 0 1 6.46 4.329a9.862 9.862 0 0 1 2.178-1.1c.124-.044.13-.048.138-.082.011-.043.081-.437.214-1.202l.103-.586.005-.024h2.91c2.765 0 2.912 0 2.918.018z\"},\"child\":[]}]})(props);\n};\nexport function SiScrapbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 3c.194 0 .388.04.535.117l4.93 2.592c.296.156.295.406 0 .562L12.32 8.977c-.177.092-.177.244 0 .337l5.145 2.706c.183.096.342.286.44.498l-4.987 2.623a.533.533 0 0 0-.281.476v.002a.536.536 0 0 0 .281.479l4.836 2.545a.948.948 0 0 1-.29.248l-4.929 2.591c-.296.156-.774.156-1.07 0l-4.93-2.591c-.296-.156-.295-.407 0-.563l5.145-2.705c.176-.092.177-.245 0-.338L6.535 12.58a1 1 0 0 1-.373-.367l4.942-2.57a.516.516 0 0 0 .279-.26.554.554 0 0 0 0-.48.515.515 0 0 0-.28-.258l-4.939-2.57a1 1 0 0 1 .371-.366l4.93-2.592A1.19 1.19 0 0 1 12 3zM6 7.176l3.781 1.967L6 11.109V7.176zm12 6.48v3.926l-3.732-1.963L18 13.656z\"},\"child\":[]}]})(props);\n};\nexport function SiScrapy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12c0 6.628 5.373 12 12 12 6.628 0 12-5.372 12-12 0-6.627-5.372-12-12-12Zm0 1.113c6.003 0 10.887 4.884 10.887 10.887S18.003 22.887 12 22.887 1.113 18.003 1.113 12 5.997 1.113 12 1.113Zm7.03 5.201c-.536-.002-1.28.304-2.255 1.098-1.052.858-3.814 3.045-3.814 3.045l1.025 1.3c4.694-2.558 6.19-3.167 6.116-4.294-.042-.634-.384-1.146-1.073-1.149Zm-.507.752c.147 0 .266.106.266.239 0 .132-.119.238-.266.238-.146 0-.265-.106-.265-.238 0-.171.162-.239.265-.239zm-1.58 1.489c0 .131-.118.238-.265.238-.147 0-.264-.107-.264-.238 0-.128.11-.234.24-.24.13-.006.29.077.29.24zm-2.109 1.01c.147 0 .266.106.266.238s-.12.238-.266.238c-.146 0-.266-.106-.266-.238 0-.148.139-.239.266-.239zm-2.445.972c-1.502.225-5.807.992-8.01 2.672l3.574 5.387s4.706-2.932 5.863-6.244z\"},\"child\":[]}]})(props);\n};\nexport function SiScratch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.406 11.312c-.78-.123-1.198-.654-.99-2.295l.023-.198c.175-1.426.321-1.743.996-1.706.198.013.426.14.654.33.211.247.68.568.945 1.204.19.466.254.77.281 1.098l.042.402v-.002a.68.68 0 0 0 1.342-.007c.008-.044.176-4.365.176-4.436 0-.38-.302-.69-.68-.696a.685.685 0 0 0-.682.688c0 .009-.001.605-.014 1.206-.536-.592-1.223-1.123-1.994-1.17-2.058-.11-2.283 1.811-2.419 2.918l-.02.196c-.278 2.189.441 3.569 2.13 3.837 1.838.293 3.063.72 3.074 1.868.007.446-.224.903-.627 1.254a2.163 2.163 0 0 1-1.749.507 3.233 3.233 0 0 1-.539-.141c-.24-.136-.847-.51-1.154-.942-.26-.364-.35-.937-.378-1.3.004-.163.005-.27.005-.283a.69.69 0 0 0-.669-.703.689.689 0 0 0-.696.682c0 .013-.017 1.367-.066 2.183-.07 1.313 0 2.426 0 2.474.028.382.35.67.727.644a.681.681 0 0 0 .635-.733c0-.006-.033-.545-.029-1.29a5.21 5.21 0 0 0 1.938.773 3.451 3.451 0 0 0 2.856-.82c.713-.619 1.122-1.464 1.11-2.32-.024-2.555-2.865-3.004-4.228-3.222M14.174 0a5.51 5.51 0 0 0-2.724.723h-.112c-2.637 0-4.937 1.392-6.15 3.728-.728 1.393-.9 2.75-.999 3.579-.012.089-.018.17-.028.262-.12.974-.123 1.904-.01 2.772a5.824 5.824 0 0 0-.625 2.529v.016a58.919 58.919 0 0 1-.057 1.95 29.72 29.72 0 0 0-.008 2.94l.013.209C3.698 21.676 6.159 24 9.083 24a5.516 5.516 0 0 0 3.463-1.21 8.357 8.357 0 0 0 5.195-2.08c1.826-1.587 2.859-3.845 2.83-6.19-.013-1.362-.346-2.638-.978-3.763.117-1.273.221-4.996.221-5.03 0-3.103-2.484-5.67-5.539-5.727zm.056 2.675c1.642.03 2.978 1.412 2.978 3.081 0 .038-.145 4.497-.215 4.883a3.152 3.152 0 0 1-.203.69c.756.89 1.165 2 1.175 3.256.021 1.555-.681 3.076-1.926 4.16a5.763 5.763 0 0 1-3.8 1.444 5.986 5.986 0 0 1-.718-.048 3.386 3.386 0 0 1-.172.215 2.97 2.97 0 0 1-2.264 1.038c-1.573 0-2.897-1.255-3.013-2.856l-.008-.122a27.366 27.366 0 0 1 .005-2.662c.039-.679.06-1.831.062-2.08a3.124 3.124 0 0 1 .783-2.025c-.237-.835-.312-1.836-.167-3.02l.024-.212c.083-.695.208-1.72.72-2.7.765-1.473 2.168-2.318 3.848-2.318a4.568 4.568 0 0 1 .824.07c.546-.5 1.27-.81 2.067-.794Z\"},\"child\":[]}]})(props);\n};\nexport function SiScreencastify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.898 2.347c-.472.008-.914.38-.914.891v4.278H1.1c-.541 0-1.1.437-1.1.978v7.02c0 .54.559.907 1.1.907h5.884V7.533h6.408c.542 0 .926.437.926.979v1.623l3.667-2.095v7.927l-3.667-2.095v1.676c0 .541-.384.908-.926.908H6.984v4.313c0 .68.786 1.1 1.38.768l9.638-5.535 5.553-3.195c.593-.402.593-1.257 0-1.59l-5.553-3.194L8.364 2.47a.886.886 0 00-.466-.123z\"},\"child\":[]}]})(props);\n};\nexport function SiScribd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.635 0C6.633 0 3.139 3.067 3.139 7.459v.06c.008.085.004.169.004.254 0 1.725.438 3.09 1.253 4.057.815.967 1.885 1.451 3.21 1.451 1.108 0 1.98-.336 2.617-1.008a3.384 3.384 0 0 0 .955-2.412c0-.96-.308-1.715-.926-2.263-.618-.549-1.278-.823-1.979-.823a4.47 4.47 0 0 0-.859.112c-.344.086-.573.129-.687.129-.51 0-.764-.308-.764-.924 0-1.035.516-1.925 1.547-2.67.302-.218.612-.406.927-.568.907-.411 1.988-.637 3.198-.637 2.33 0 4.423.61 6.238 1.816l-1.004 1.602 1.893 1.248 2.205-3.303-.799-.644C17.75.987 14.878 0 11.635 0Zm5.683 10.682c-1.108 0-1.98.336-2.617 1.007a3.384 3.384 0 0 0-.955 2.413c0 .96.31 1.715.928 2.263.617.548 1.276.823 1.976.823.217 0 .503-.038.86-.112.344-.086.572-.129.687-.129.51 0 .764.308.764.924 0 .222-.025.436-.072.645-.849 2.079-3.022 3.267-6.166 3.267-2.671 0-5.233-.848-7.319-2.408l1.233-1.52-1.785-1.39L2.25 19.63l.783.703C5.673 22.698 9.114 24 12.723 24c.402 0 .791-.018 1.172-.05 2.077-.094 4.15-.87 5.61-2.188 1.497-1.35 2.245-3.215 2.245-5.592 0-1.725-.407-3.07-1.223-4.037-.814-.968-1.884-1.451-3.209-1.451z\"},\"child\":[]}]})(props);\n};\nexport function SiScrimba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 6.222a2.222 2.222 0 01-2.222 2.222h-8.89a2.222 2.222 0 010-4.444h8.89C23.005 4 24 4.995 24 6.222zm-7.333 9.334h-8.89a2.222 2.222 0 000 4.444h8.89a2.222 2.222 0 000-4.444zm0-5.778H13.11a2.222 2.222 0 000 4.444h3.556a2.222 2.222 0 000-4.444zM2.222 15.556a2.222 2.222 0 100 4.444 2.222 2.222 0 000-4.444z\"},\"child\":[]}]})(props);\n};\nexport function SiScrollreveal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.714 2.857A1.71 1.71 0 0 0 0 4.571v6.858c0 .95.765 1.714 1.714 1.714a1.71 1.71 0 0 0 1.715-1.714V4.57a1.71 1.71 0 0 0-1.715-1.714zm6.857 0a1.71 1.71 0 0 0-1.714 1.714v1.143c0 .95.765 1.715 1.714 1.715a1.71 1.71 0 0 0 1.715-1.715V4.571A1.71 1.71 0 0 0 8.57 2.857zm6.858 0a1.71 1.71 0 0 0-1.715 1.714V19.43c0 .95.765 1.714 1.715 1.714a1.71 1.71 0 0 0 1.714-1.714V4.57a1.71 1.71 0 0 0-1.714-1.714zm6.857 0a1.71 1.71 0 0 0-1.715 1.714v6.858c0 .95.765 1.714 1.715 1.714A1.71 1.71 0 0 0 24 11.429V4.57a1.71 1.71 0 0 0-1.714-1.714zm-13.715 8a1.71 1.71 0 0 0-1.714 1.714v6.858c0 .95.765 1.714 1.714 1.714a1.71 1.71 0 0 0 1.715-1.714V12.57a1.71 1.71 0 0 0-1.715-1.714zm-6.857 5.714A1.71 1.71 0 0 0 0 18.286v1.143c0 .95.765 1.714 1.714 1.714a1.71 1.71 0 0 0 1.715-1.714v-1.143a1.71 1.71 0 0 0-1.715-1.715zm20.572 0a1.71 1.71 0 0 0-1.715 1.715v1.143c0 .95.765 1.714 1.715 1.714A1.71 1.71 0 0 0 24 19.429v-1.143a1.71 1.71 0 0 0-1.714-1.715Z\"},\"child\":[]}]})(props);\n};\nexport function SiScrumalliance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.6113 7.6836a.2999.2999 0 1 0 .3398.254.2998.2998 0 0 0-.3398-.254zm.879.002a.325.325 0 0 0-.295.3242.325.325 0 0 0 .3262.3261.325.325 0 0 0 .3242-.3261.325.325 0 0 0-.3242-.3243.325.325 0 0 0-.0313 0zM.8261 8.078a.2746.2746 0 0 0-.2325.3106c.022.15.1608.2524.3106.2304a.2711.2711 0 0 0 .2305-.3086c-.0216-.1493-.1591-.2543-.3086-.2324zm2.086.375a.349.349 0 0 0 .3495.3496.349.349 0 0 0 .3477-.3496.3481.3481 0 0 0-.3487-.3469.3481.3481 0 0 0-.3486.347zm3.9648.0274c-.6133 0-1.17.3394-1.17.9883 0 .9991 1.3438.7344 1.3438 1.4355 0 .3597-.287.6113-.6914.6113-.2958 0-.6265-.0989-.5742-.3926l.0468-.2617h-.4004l-.0605.332c-.0956.5637.5359.7442.9316.7442.6438 0 1.1953-.3976 1.1953-1.0605 0-1.0373-1.3437-.7678-1.3437-1.4356 0-.3362.2964-.545.666-.545.2175 0 .5124.0716.4688.299l-.0391.2323h.4004l.0703-.3613c.0826-.4308-.4827-.586-.8437-.586zm-6.541.287a.2454.2454 0 0 0-.207.2774.2435.2435 0 0 0 .2772.2051.2431.2431 0 0 0 .207-.2754.2457.2457 0 0 0-.2773-.207zm3.3261.127a.3674.3674 0 0 0-.3105.416.3674.3674 0 0 0 .416.3106.3668.3668 0 0 0 .3105-.416.367.367 0 0 0-.416-.3106zm5.664.5332c-.7783 0-1.4003.6805-1.4003 1.457 0 .6254.4032 1.0528 1.0469 1.0528.5787 0 .914-.3555.914-.3555l-.121-.3554s-.3147.3125-.754.3125c-.4087 0-.6562-.2707-.6562-.6875 0-.554.4472-1.0274.9258-1.0274.2087 0 .4523.0852.4218.2793l-.0293.1621h.373l.0528-.2754c.0696-.4262-.4557-.5625-.7734-.5625zm7.625 0c-.4132 0-.7684.369-.873.582h-.0097c.0305-.085.0664-.2712.0664-.328 0-.128-.0662-.1973-.2403-.1973h-.496l-.0645.3554h.2734c.0695 0 .0868.0362.0781.0977l-.3476 1.9434h.4219l.1914-1.0704c.087-.4735.4044-.9667.8261-.9667.2437 0 .3145.1378.3145.332 0 .0805-.0183.1747-.0313.2695l-.2558 1.4356h.42l.1972-1.0957c.0784-.4594.3917-.9414.8008-.9414.2522 0 .3203.1372.3203.3457 0 .2272-.1856 1.0272-.1856 1.25 0 .4072.2867.4492.4824.4492.1043 0 .1875-.0078.1875-.0078l.0645-.3555s-.0446.0098-.1055.0098c-.1087 0-.1953-.0292-.1953-.209 0-.1895.1914-.9814.1914-1.2657 0-.4072-.2293-.6328-.6035-.6328-.3654 0-.6956.2555-.8652.582h-.0098c-.0217-.3788-.2005-.582-.5527-.582zm-4.9628.0274c-.3479 0-.6431.2976-.791.6387h-.0098c.0349-.1138.0781-.3448.0781-.4063 0-.1375-.0647-.2031-.2343-.2031h-.4961l-.0704.3535h.2754c.0739 0 .087.0486.0782.1055l-.3438 1.9375h.4219l.1562-.8907c.0956-.5493.4607-1.0859.8653-1.0859.0565 0 .0956.011.1172.0156l.084-.455a.7813.7813 0 0 0-.131-.0098zm.4922.0293l-.0664.3535h.3652l-.2031 1.166a1.5665 1.5665 0 0 0-.0313.3027c0 .45.2823.6309.6172.6309.4612 0 .7665-.3281.9102-.5742h.0078c-.0304.3599.1437.5254.4394.5254a2.838 2.838 0 0 0 .2012-.0078l.0645-.3555s-.0403.0098-.1055.0098c-.1086 0-.1953-.0386-.1953-.209a.937.937 0 0 1 .0136-.1465l.3047-1.6953h-.787l-.0665.3535h.3653l-.129.7344c-.0784.4545-.4357.9472-.875.9472-.2478 0-.33-.1273-.33-.336 0-.0756.0134-.174.0351-.2733l.252-1.4258zm-12.2871.086a.2255.2255 0 0 0-.1914.2558c.0178.1238.134.209.2578.1914a.2254.2254 0 0 0 .1914-.2559.2277.2277 0 0 0-.2578-.1914zm.2187.7773a.1912.1912 0 0 0-.1621.2168.193.193 0 0 0 .2188.162.1911.1911 0 0 0 .162-.2167.1936.1936 0 0 0-.2187-.1621zm.4941.6484a.166.166 0 0 0-.1406.1875.1642.1642 0 0 0 .1875.1387.1659.1659 0 0 0 .1407-.1875.1644.1644 0 0 0-.1876-.1387zm2.4864.2207c-.222 0-.4024.179-.4024.4004 0 .2219.1805.4023.4024.4023a.4027.4027 0 0 0 .4023-.4023c0-.2214-.1804-.4004-.4023-.4004zm-1.8106.0762a.157.157 0 0 0-.1445.1562.157.157 0 0 0 .1582.1582.157.157 0 0 0 .1563-.1582.157.157 0 0 0-.1563-.1562.1566.1566 0 0 0-.0137 0zm.672.0918a.4355.4355 0 0 0-.418.4355.4355.4355 0 1 0 .4355-.4355.4365.4365 0 0 0-.0176 0zm2.205.1757c-.2024 0-.3652.165-.3652.3672 0 .2028.1628.3672.3652.3672a.3673.3673 0 0 0 .3672-.3672.3677.3677 0 0 0-.3672-.3672zm-3.0645.5098a.4664.4664 0 0 0-.4668.4668c0 .2583.2087.4668.4668.4668a.4663.4663 0 0 0 .4668-.4668.4664.4664 0 0 0-.4668-.4668zm3.8575.3223a.3187.3187 0 0 0-.3184.3203c0 .1774.1414.3203.3184.3203a.32.32 0 0 0 .3203-.3203.3205.3205 0 0 0-.3203-.3203zm2.8125.4824l-1.5743 3.0547h-.3086l-.0488.2754h.9785l.0528-.2754h-.3477l.4395-.8574h1.1914l.1347.8574h-.3535l-.0469.2754h.9649l.0488-.2754h-.3086l-.4844-3.0547zm1.6835 0l-.0488.2656h.3926l-.4395 2.4668c-.013.0663-.0214.1323-.0214.1797 0 .3742.2561.4316.4257.4316.0697 0 .1524-.0136.1524-.0136l.0469-.2754s-.0334.0098-.1075.0098c-.1043 0-.209-.014-.209-.213 0-.0378.0089-.0995.0176-.1562l.4785-2.6953zm1.1622 0l-.0489.2656h.3907l-.4375 2.4668c-.0132.0663-.0235.1323-.0235.1797 0 .3742.2581.4316.4277.4316.0697 0 .1524-.0136.1524-.0136l.0469-.2754s-.0336.0098-.1075.0098c-.1045 0-.209-.014-.209-.213 0-.0378.0089-.0995.0176-.1562l.4766-2.6953zm1.6386 0l-.0742.4023h.336l.0742-.4023zM.957 13.1738a.4928.4928 0 0 0-.4922.4922c0 .2718.2208.4902.4922.4902a.4905.4905 0 0 0 .4922-.4902.4925.4925 0 0 0-.4922-.4922zm22.5762.039c-.2566 0-.4629.2294-.4629.5177 0 .288.2063.5175.4629.5175.2592 0 .4668-.2296.4668-.5175 0-.2883-.2076-.5176-.4668-.5176zm-15.3555.004h.0078s.0003.104.0176.2129l.209 1.3633H7.3906l.7031-1.3633c.0523-.109.084-.2129.084-.2129zm15.3555.0918c.2097 0 .3711.1847.3711.4219 0 .237-.1614.4218-.3711.4218-.2073 0-.3672-.1848-.3672-.4218 0-.2372.1599-.422.3672-.422zm-17.9453.0976a.2965.2965 0 0 0-.2969.297c0 .164.1326.2968.2969.2968s.2988-.1328.2988-.2969c0-.1643-.1345-.2968-.2988-.2968zm17.7871.0547v.5352h.0918v-.207h.08l.0919.207h.1015l-.0937-.1973c-.0117-.0242-.0176-.0293-.0176-.0293v-.0039c.0404-.0112.0898-.0583.0898-.1406 0-.0993-.0617-.164-.1542-.164zm.0918.0762h.0781c.0482 0 .0801.0327.0801.0879 0 .0568-.0319.0898-.08.0898h-.0782zm-9.1602.2285c-.4568 0-.7949.2461-.7949.2461l.0899.2617s.2971-.2226.6582-.2226c.3349 0 .4472.1746.4472.4258 0 .085-.0351.2695-.0351.2695h-.1426c-.6003 0-1.4844.1555-1.4844.918 0 .3836.2884.5976.6406.5976.5177 0 .8091-.5117.8047-.5117h.0078c-.0217.3174.14.4648.3965.4648.0783 0 .164-.0097.164-.0097l.049-.2656s-.0393.0097-.1134.0097c-.1 0-.205-.024-.205-.2226 0-.199.2187-1.0175.2187-1.297 0-.4593-.2836-.664-.7012-.664zm2.92 0c-.5395 0-.8878.4272-.9746.6309h-.0098c.0393-.0995.0742-.327.0742-.379 0-.1231-.0554-.1952-.2207-.1952h-.418l-.0488.2656h.2969c.0695 0 .0867.0467.0781.1035l-.3613 2.0137h.2949l.1973-1.0938c.0956-.5587.53-1.043 1-1.043.2435 0 .3789.1285.3789.3985 0 .2652-.2051 1.1269-.2051 1.3398 0 .36.2613.4082.418.4082.0738 0 .1601-.0097.1601-.0097l.0488-.2656s-.0397.0097-.1093.0097c-.1042 0-.209-.019-.209-.2226 0-.1895.205-1.0562.205-1.3496 0-.393-.2129-.6114-.5956-.6114zm2.5312 0c-.7264 0-1.3789.6491-1.3789 1.459 0 .6394.4078 1.0371 1.004 1.0371.5567 0 .8886-.3555.8886-.3555l-.0957-.2656s-.3127.332-.7695.332c-.4262 0-.7227-.2891-.7227-.7675 0-.6487.5301-1.1504 1.039-1.1504.2132 0 .5096.09.4747.3125l-.0313.1758h.2754l.043-.252c.0652-.3881-.4308-.5254-.7266-.5254zm2.3106 0c-.7395 0-1.2793.7156-1.2793 1.4922 0 .6015.392 1.004.9921 1.004.461 0 .8223-.3126.8223-.3126l-.0918-.2656s-.323.289-.7187.289c-.461 0-.6992-.3262-.6992-.7382 0-.1185.0214-.2188.0214-.2188h1.6797s.0606-.204.0606-.3886c0-.4973-.2477-.8614-.7871-.8614zm-10.0586.0567l-.047.2656h.3907l-.2773 1.5351c-.0088.0664-.0235.1265-.0235.1739 0 .3742.2624.418.4278.418.0608 0 .1523-.0098.1523-.0098l.0469-.2656s-.0355.0097-.1094.0097c-.1045 0-.207-.0238-.207-.2226 0-.0379.003-.0846.0117-.1368l.3223-1.7675zm10.0449.2129c.2873 0 .5.1855.5.5644 0 .0948-.0176.1797-.0176.1797H21.168c.1565-.4833.526-.7441.8867-.7441zm-16.6035.4238c-.139 0-.252.113-.252.252 0 .1387.113.25.252.25s.252-.1113.252-.25c0-.139-.113-.252-.252-.252zm9.0508.5293h.127l-.0216.1035c-.0954.412-.4389.9043-.8476.9043-.2916 0-.4141-.1753-.4141-.379 0-.5872.7908-.6288 1.1563-.6288zm-9.5684.4043c-.1198 0-.2188.0966-.2188.2168a.22.22 0 0 0 .2188.2187c.12 0 .2168-.0988.2168-.2187a.2164.2164 0 0 0-.2168-.2168zm-.8086.5137a.2077.2077 0 0 0-.207.207c0 .114.0932.205.207.205a.2044.2044 0 0 0 .205-.205.2062.2062 0 0 0-.205-.207Z\"},\"child\":[]}]})(props);\n};\nexport function SiScrutinizerci (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.862 0L6.879.06a6.139 6.127 0 00-3.744 2.508 6.36 6.36 0 00-1.357 2.64l-.12.553-.12.857c-.06.8-.06 1.351.12 1.471h5.276c.06 0-.186-.246-.186-.672 0-.738.252-.924.552-1.23.552-.426 2.945-.12 4.728-.246 2.448 0 4.602-.06 4.848-.12 2.7-.427 5.03-2.388 5.522-4.536.12-.547.12-1.105.06-1.165C22.398 0 21.418 0 14.86 0zM9.194 9.007c-3.758-.015-7.47 0-7.53.06-.126.126-.06.798.06 1.35a5.64 5.64 0 001.843 2.761 7.549 7.549 0 003.312 1.59c.366.126 1.044.126 4.597.126 4.236 0 4.915.06 5.22.24a1.842 1.836 0 01.372.372c.18.24.18.307.18.98 0 .671-.065.731-.185 1.043a1.47 1.47 0 01-.426.366c-.186.12-.307.12-4.357.18-4.67 0-5.155 0-6.32.431a6.445 6.433 0 00-2.46 1.35c-1.163 1.04-1.841 2.203-1.961 3.428l.06.611a283.022 282.613 0 0015.404 0l.492-.12a4.543 4.537 0 00.737-.245l.367-.18a7.735 7.723 0 003.499-4.297 8.407 8.395 0 00-.373-6.06 8.527 8.521 0 00-2.328-2.88 6.937 6.925 0 00-2.394-.985c-.246-.06-4.051-.106-7.81-.12z\"},\"child\":[]}]})(props);\n};\nexport function SiScylladb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.992 2.435C17.229.868 14.75 0 12.004 0 9.259 0 6.779.868 5.017 2.435 3.246 4.012 2.272 6.244 2.272 8.706c0 2.373 2.382 13.567 2.479 14.045.169.735.815 1.24 1.541 1.24.089 0 .168-.009.257-.018.151-.026.292-.07.434-.141.301.133.638.186.965.124.248-.045.479-.151.673-.31a1.579 1.579 0 0 0 1.63.203c.23-.106.425-.265.576-.451a1.596 1.596 0 0 0 1.231.602 1.596 1.596 0 0 0 .823-.239 1.695 1.695 0 0 0 .408-.354c.248.301.611.513 1 .566.39.062.797-.035 1.116-.256.036-.018.062-.045.089-.071.186.15.407.257.637.301.169.035.337.044.505.026.151-.017.292-.053.434-.115.124.053.248.089.381.115a1.58 1.58 0 0 0 1.798-1.222c.097-.478 2.479-11.663 2.479-14.045.009-2.462-.965-4.685-2.736-6.271Zm-.186 20.219c-.124.558-.655.93-1.222.868a1.59 1.59 0 0 0 .443-.833l.07-.425.275-1.691c.088-.567.177-1.134.248-1.701a.156.156 0 0 0-.115-.168.16.16 0 0 0-.186.115c-.124.558-.239 1.125-.354 1.683l-.328 1.683-.08.416c-.026.115-.071.23-.124.327a.947.947 0 0 1-.221.275 1.05 1.05 0 0 1-.292.195 1.512 1.512 0 0 1-.337.097 1.142 1.142 0 0 1-.77-.195c.106-.159.194-.336.239-.531.017-.044.017-.097.026-.142 0-.026.009-.053.009-.071l.009-.062.08-.743.097-.992c.062-.665.124-1.329.168-1.993a.147.147 0 0 0-.133-.159.164.164 0 0 0-.177.132c-.097.656-.186 1.32-.274 1.975l-.186 1.488c-.018.16-.036.346-.071.461a1.101 1.101 0 0 1-.469.655 1.104 1.104 0 0 1-.78.168 1.107 1.107 0 0 1-.814-.566c.026-.071.044-.142.061-.204.036-.142.036-.292.036-.408l.009-.735c.009-.487.017-.983.017-1.47a40.02 40.02 0 0 0 0-1.47c0-.079-.062-.15-.141-.15a.145.145 0 0 0-.16.141c-.026.487-.062.983-.079 1.47-.027.488-.045.983-.071 1.471l-.036.735c0 .062 0 .124-.008.177 0 .053-.009.097-.018.15-.027.098-.053.195-.106.284a1.11 1.11 0 0 1-.992.593.893.893 0 0 1-.301-.044c-.098-.027-.186-.071-.275-.115a1.154 1.154 0 0 1-.416-.434 1.082 1.082 0 0 1-.106-.284c-.027-.097-.027-.195-.036-.327l-.035-.735c-.018-.488-.045-.983-.071-1.471l-.08-1.47a.154.154 0 0 0-.15-.141.15.15 0 0 0-.151.15v1.47c0 .487.009.983.018 1.47l.009.735c0 .116.008.266.035.408.018.071.035.142.062.212a1.169 1.169 0 0 1-.523.47 1.109 1.109 0 0 1-1.337-.346 1.002 1.002 0 0 1-.177-.327 1.392 1.392 0 0 1-.044-.186c-.009-.027-.009-.071-.018-.107l-.018-.115-.23-1.797c-.08-.603-.159-1.205-.257-1.798-.009-.08-.079-.133-.159-.133-.089.009-.151.08-.142.168.044.602.098 1.205.151 1.807l.177 1.806.009.116c0 .035.009.07.017.124.009.088.036.177.062.256.045.151.124.293.213.426a1.129 1.129 0 0 1-1.125.097 1.154 1.154 0 0 1-.629-.806l-.079-.416-.328-1.674c-.115-.558-.23-1.116-.354-1.674-.018-.08-.089-.133-.168-.115-.08.009-.142.089-.133.177.079.567.159 1.125.248 1.692l.274 1.682.071.425c.027.169.089.328.16.47.07.133.159.257.274.363-.018 0-.027.009-.044.009a1.126 1.126 0 0 1-1.276-.859c-.026-.115-2.47-11.619-2.47-13.949 0-2.338.921-4.437 2.586-5.933C6.956 1.284 9.33.461 11.96.461s5.004.823 6.678 2.32c1.673 1.488 2.586 3.595 2.586 5.933.053 2.33-2.392 13.834-2.418 13.94Zm-4.517-11.451a1.322 1.322 0 0 0-.726-.407h-.035a.235.235 0 0 0-.248.212.235.235 0 0 0 .212.248.824.824 0 0 1 .354.106 11.147 11.147 0 0 1-3.701 1.621 11.15 11.15 0 0 1-4.198.186.193.193 0 1 0-.062.381c.212.035.434.062.646.08 0 .008 0 .017.009.026.186.558.664 1.302 1.284 1.302a.78.78 0 0 0 .195-.027c.23-.053.611-.292.611-1.248 0-.018-.009-.027-.009-.045a12.213 12.213 0 0 0 1.612-.248c.053-.008.106-.026.151-.035.124.496.31 1.116.93 1.116.256 0 .531-.142.744-.381.177-.204.46-.664.371-1.435a11.47 11.47 0 0 0 1.745-.974.834.834 0 0 1 .115.292c.018.08.089.133.169.124a.15.15 0 0 0 .141-.168 1.184 1.184 0 0 0-.31-.726Zm-6.11 2.489c0 .442-.107.761-.266.797-.346.088-.7-.426-.868-.815.381.018.753.018 1.134 0 .008.009 0 .018 0 .018Zm3.551.106c-.115.133-.266.221-.39.221-.212 0-.336-.186-.487-.77.39-.115.779-.248 1.151-.399.018.381-.079.718-.274.948Zm-2.878-1.515a4.471 4.471 0 1 1 4.472-4.472 4.476 4.476 0 0 1-4.472 4.472Zm0-8.475A4.014 4.014 0 0 0 4.84 7.82a4.014 4.014 0 0 0 4.012 4.012 4.013 4.013 0 0 0 4.011-4.012 4.02 4.02 0 0 0-4.011-4.012Zm.876 1.231c-.735.151-.876 1.754-.442 2.196.292.293.876.381.876.585 0 .204-.584.292-.876.584-.443.443-.293 2.046.442 2.197.868.177 2.197-.877 2.197-2.781 0-1.904-1.329-2.958-2.197-2.781Z\"},\"child\":[]}]})(props);\n};\nexport function SiSeagate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.2279 22.6842c-.2642-1.0048-.5233-1.9919-.7764-2.9548.2734-.1324.4986-.2368.7965-.384 1.239-.528 2.4364-1.1329 3.5508-1.8929 1.3946-.9512 2.6975-2.0144 3.8322-3.2673.8904-.983 1.6324-2.0681 2.0558-3.3424.282-.8479.4202-1.7152.2962-2.6088-.103-.7409-.375-1.4175-.7962-2.0369-.5082-.747-1.1691-1.3149-1.9737-1.7209-1.0067-.5084-2.0802-.696-3.1976-.6628-.9912.0294-1.9456.2473-2.8748.5868C10.431 5.0247 8.863 5.9178 7.358 6.928c-.4391.2949-.8425.6364-1.1916 1.0376-.1904.2188-.3368.4606-.3985.7491-.1038.4872.1755.858.6724.8816.3477.0164.6577-.1181.9617-.262.9456-.4467 1.7992-1.049 2.6828-1.6.7256-.4527 1.458-.8945 2.255-1.2117.786-.313 1.5975-.4847 2.447-.3423.9257.1549 1.6704.5913 2.1225 1.4413.3168.5956.3421 1.2269.1754 1.871-.1903.733-.6147 1.3292-1.1168 1.8759-.6926.7545-1.49 1.3817-2.372 1.899-.924.5421-1.8403 1.1006-2.788 1.5986-1.1086.5827-2.2897.9958-3.4927 1.3446-1.0106.2934-2.0378.4258-3.0865.3328-.8788-.078-1.7068-.3332-2.4364-.8414-.659-.4593-1.1454-1.068-1.44-1.8192-.455-1.1608-.4317-2.3436-.1437-3.5352.3256-1.3464 1.008-2.5097 1.8502-3.5909.6395-.8209 1.3767-1.5472 2.1709-2.2152 1.1242-.9458 2.317-1.7969 3.5952-2.524.4327-.246.8736-.4777 1.285-.702l.4213.8667c-.3808.2048-.757.4008-1.1275.6072-1.5956.8886-3.0574 1.96-4.3596 3.2419-.707.6956-1.3047 1.4804-1.7574 2.3664-.4741.9285-.7285 1.9104-.6164 2.9584.1232 1.147.661 2.0288 1.7175 2.5579.6303.3158 1.303.4098 1.997.3947.9564-.0205 1.858-.2923 2.7487-.6108 1.3273-.475 2.5625-1.1374 3.7648-1.8638.7058-.4264 1.4094-.8594 2.0064-1.4363.315-.3047.6302-.6145.7914-1.0384.2862-.7533-.121-1.4058-.9281-1.4824-.4392-.0415-.8377.1044-1.2262.2842-1.026.4747-1.9486 1.125-2.9045 1.719-.7306.454-1.4693.8943-2.2732 1.2087-.5567.2175-1.1321.3535-1.7363.2843-1.0364-.1187-1.6846-.937-1.5719-1.9753.0886-.8158.4854-1.4814 1.0219-2.075.5934-.6566 1.2856-1.1949 2.0287-1.6697 1.141-.7293 2.299-1.428 3.5382-1.9832 1.4362-.6438 2.9097-1.1544 4.4904-1.2936 1.1439-.1006 2.2752-.0366 3.3912.2533.9863.2563 1.896.6732 2.7145 1.28.8112.6015 1.4645 1.347 1.959 2.2285.4462.7956.7005 1.6501.7756 2.5585.079.9561-.0343 1.8948-.3106 2.8077-.2695.89-.6313 1.7449-1.1264 2.5378-.6903 1.1051-1.5035 2.1103-2.4493 3.0074-.9636.9142-1.937 1.8156-3.034 2.572-1.4267.9841-2.9131 1.8594-4.5207 2.5189-.429.176-.8567.3563-1.3065.5436\"},\"child\":[]}]})(props);\n};\nexport function SiSearxng (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m13.716 17.261 6.873 6.582L24 20.282l-6.824-6.536a9.11 9.11 0 0 0 1.143-4.43c0-5.055-4.105-9.159-9.16-9.159S0 4.261 0 9.316c0 5.055 4.104 9.159 9.159 9.159a9.11 9.11 0 0 0 4.557-1.214ZM9.159 2.773a6.546 6.546 0 0 1 6.543 6.543 6.545 6.545 0 0 1-6.543 6.542 6.545 6.545 0 0 1-6.542-6.542 6.545 6.545 0 0 1 6.542-6.543ZM7.26 5.713a4.065 4.065 0 0 1 4.744.747 4.064 4.064 0 0 1 .707 4.749l1.157.611a5.376 5.376 0 0 0-.935-6.282 5.377 5.377 0 0 0-6.274-.987l.601 1.162Z\"},\"child\":[]}]})(props);\n};\nexport function SiSeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 10.325l23.98 4.46c-.021.657-.062 2.712-.103 3.903-.041 1.418-.35 2.281-.925 2.815-.801.72-1.747.884-4.007 1.007-5.219.288-10.54.247-17.219-.226-.699-.04-.966-.185-1.089-.267-.288-.205-.329-.431-.411-1.603-.062-.801-.164-3.123-.205-3.904 3.102.206 7.849.37 11.712.37.966 0 3.493.02 4.171.02.534 0 1.233-.143 1.582-.698L0 13.222zm.02-1.253c.021-.76.062-2.65.103-3.76.041-1.418.35-2.281.925-2.815.801-.72 1.747-.884 4.007-1.007 5.219-.288 10.54-.247 17.219.226.699.04.966.185 1.089.267.288.205.329.431.411 1.603.041.678.144 2.486.185 3.472-2.301-.123-6.206-.308-9.596-.35-3.39-.04-6.452.021-6.822.063-.74.102-1.089.452-1.192.595L24 10.634v2.568Z\"},\"child\":[]}]})(props);\n};\nexport function SiSeatgeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.866 11.277h-.177l-.703-.001v-.001c-1.337-.002-3.426-.009-3.845-.011v-7.37c2.111.089 4.044.121 4.044.121l.304 1.556c.001 0-.745.007-2.361-.03v1.394l1.486.022v1.31L9.128 8.25v1.452c.832.008 1.595.013 2.411.014l1.99-5.615c.3-.008 1.573-.041 1.886-.054l2.637 7.225c-.661.003-1.331-.009-1.993-.006l-.448-1.302c-.76.008-1.52.013-2.281.016l-.445 1.293c-.355 0-.685 0-1.019.004Zm2.607-4.625-.693 2.015c.461-.004.921-.009 1.38-.016l-.687-1.999Zm4.389-1.197c-.719.044-1.438.081-2.157.112l.307-1.594c1.904-.105 3.8-.271 5.694-.497l.306 1.645c-.719.071-1.439.134-2.16.192l-.01 5.953c-.66.006-1.32-.001-1.98.004V5.455ZM6.533 9.069c0 1.246-.901 2.401-2.674 2.401-1.61 0-2.42-.752-2.42-.752V8.699c1.101 1.043 3.266 1.745 3.266.482 0-.96-3.266-1.125-3.266-3.518 0-1.342 1.247-2.186 2.675-2.186 1.009 0 1.855.193 2.065.258l-.083 1.772c-.884-.521-2.801-.763-2.801.134 0 .992 3.239 1.002 3.238 3.428Zm14.861 11.155-1.957-3.596v3.433c-.673-.053-1.982-.133-1.982-.133V12.5l1.982.004c-.007 1.059.008 2.118 0 3.176l2.028-3.18h2.233l-2.314 3.569L24 20.525a90.598 90.598 0 0 0-2.606-.301ZM9.132 18.231c.892-.019 1.785-.029 2.678-.029l-.307 1.561c-.869.003-3.428.062-4.358.122v-7.374h4.038l.307 1.536s-.973-.007-2.358-.008v1.399l1.481-.013v1.323l-1.481.018v1.465Zm5.162-.001c.707.015 1.905.054 2.682.082l-.32 1.573a87.388 87.388 0 0 0-4.349-.121v-7.253l4.051.002.306 1.551-2.371-.015v1.389c.461.005.92.009 1.379.017v1.321c-.459-.011-.919-.018-1.379-.025l.001 1.479ZM3.617 15.549l2.604-.059v4.445s-.7.032-2.26.178C1.746 20.321 0 19.022 0 16.468c0-3.034 2.222-3.993 4.225-3.993.868 0 1.379.016 1.667.031l.328 1.723s-.58-.122-1.673-.122c-1.24 0-2.585.415-2.585 2.078 0 1.791.745 2.392 2.556 2.228l-.001-1.536-1.206.059.306-1.387Z\"},\"child\":[]}]})(props);\n};\nexport function SiSecurityscorecard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.3696 2.5006 12.0006 5 7.6303 7.5006v-5L12.0006 0Zm6.1177 3.499.0028 4.986-8.7282-4.9929 4.3564-2.4923Zm-4.369 9.5085-.0014 4.9972 4.3774-2.5007-.0028-5.018-4.3732-2.502zM7.6274 21.502 12.0006 24l4.369-2.4952v-4.9972zM7.6303 9.5v5.0014l4.3703 2.4992 4.369-2.4937V9.5001l-4.369-2.4993Zm-6.1248 8.5044.0028-5.0055 8.7464 5.0027-4.376 2.5008Zm4.376-14.504L1.5125 6.001l-.0028 4.9985 4.3718 2.502z\"},\"child\":[]}]})(props);\n};\nexport function SiSefaria (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.615 15.412c-.62 2.915-2.733 4.152-7.425 4.152-11.54 0-7.45-9.28-5.84-11.186.678-.85 1.152-1.553 2.874-1.553h3.273c4.567 0 5.437.217 6.582 2.55.617 1.258.975 3.971.536 6.036m1.238-5.79c-.385-2.492-.889-5.202-3.052-6.706-1.31-.911-2.663-.981-4.177-.981-1.026 0-4.666-.041-6.257-.041C5.833 1.893 4.779.618 4.779 0 3.777 1.234 3.001 2.597 3.272 4.245c.244 1.484 1.261 2.433 2.75 2.622C4.338 9.25 2.81 11.994 2.881 14.9c.046 1.83.467 9.1 8.686 9.1h1.497c3.507 0 5.632-2.606 6.25-3.614 1.822-2.963 2.122-7.548 1.537-10.764Z\"},\"child\":[]}]})(props);\n};\nexport function SiSega (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.229 4.14l-.006 3.33h-10.6c-.219 0-.397.181-.397.399 0 .221.18.399.397.399l2.76-.016c4.346 0 7.868 3.525 7.868 7.869 0 4.348-3.522 7.869-7.869 7.869L2.748 24l.005-3.375h10.635c2.487 0 4.504-2.016 4.504-4.504 0-2.49-2.017-4.506-4.506-4.506l-2.771-.03c-2.06 0-3.727-1.666-3.727-3.72 0-2.061 1.666-3.726 3.723-3.726h10.618zM2.763 19.843l-.004-3.331h10.609c.21 0 .383-.175.383-.387 0-.213-.173-.385-.384-.385h-2.744c-4.345 0-7.867-3.525-7.867-7.871S6.278 0 10.623 0l10.6.003.006 3.35-10.604.003c-2.49 0-4.5 2.019-4.5 4.507 0 2.489 2.024 4.504 4.515 4.504l2.775.03c2.055 0 3.72 1.668 3.72 3.724 0 2.055-1.665 3.719-3.72 3.719H2.765l-.002.003z\"},\"child\":[]}]})(props);\n};\nexport function SiSelenium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.174 3.468l-7.416 8.322a.228.228 0 0 1-.33 0l-3.786-3.9a.228.228 0 0 1 0-.282L12.872 6a.228.228 0 0 1 .366 0l2.106 2.346a.228.228 0 0 0 .342 0l5.94-8.094A.162.162 0 0 0 21.5 0H.716a.174.174 0 0 0-.174.174v23.652A.174.174 0 0 0 .716 24h22.566a.174.174 0 0 0 .174-.174V3.6a.162.162 0 0 0-.282-.132zM6.932 21.366a5.706 5.706 0 0 1-4.05-1.44.222.222 0 0 1 0-.288l.882-1.236a.222.222 0 0 1 .33-.036 4.338 4.338 0 0 0 2.964 1.158c1.158 0 1.722-.534 1.722-1.098 0-1.752-5.7-.552-5.7-4.278 0-1.65 1.428-3 3.756-3a5.568 5.568 0 0 1 3.708 1.242.222.222 0 0 1 0 .3l-.906 1.2a.222.222 0 0 1-.318.036 4.29 4.29 0 0 0-2.706-.936c-.906 0-1.41.402-1.41.996 0 1.572 5.688.522 5.688 4.2.006 1.812-1.284 3.18-3.96 3.18zm12.438-3.432a.192.192 0 0 1-.192.192h-5.202a.06.06 0 0 0-.06.066 1.986 1.986 0 0 0 2.106 1.638 3.264 3.264 0 0 0 1.8-.6.192.192 0 0 1 .276.042l.636.93a.198.198 0 0 1-.042.264 4.71 4.71 0 0 1-2.892.9 3.726 3.726 0 0 1-3.93-3.87 3.744 3.744 0 0 1 3.81-3.852c2.196 0 3.684 1.644 3.684 4.05zm-3.684-2.748a1.758 1.758 0 0 0-1.8 1.56.06.06 0 0 0 .06.066h3.492a.06.06 0 0 0 .06-.066 1.698 1.698 0 0 0-1.812-1.56Z\"},\"child\":[]}]})(props);\n};\nexport function SiSellfy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.179.818C15.533-.273 8.406-.273.8.818-.266 8.377-.266 15.424.8 22.946 4.511 23.491 8.22 24 12.005 24c3.748 0 7.459-.51 11.17-1.017 1.1-7.56 1.1-14.607 0-22.165h.004zm-11.54 18.314c-2.055 0-4.226-.689-5.179-1.199l.807-3.126c1.064.705 2.682 1.395 4.446 1.395 1.395 0 2.24-.436 2.24-1.305 0-.615-.435-.975-1.575-1.26l-2.279-.631c-2.416-.66-3.557-1.891-3.557-3.855 0-2.365 1.83-4.256 5.619-4.256 1.99 0 3.973.545 5.07 1.092l-.951 2.976c-1.104-.615-2.79-1.125-4.226-1.125-1.365 0-1.95.436-1.95 1.092 0 .619.404.87 1.291 1.092l2.488.734c2.566.736 3.707 1.966 3.707 3.885-.076 2.701-2.461 4.517-5.957 4.517l.006-.026z\"},\"child\":[]}]})(props);\n};\nexport function SiSemanticrelease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.952 14.4a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8zm0-.72a1.68 1.68 0 1 0 0-3.36 1.68 1.68 0 0 0 0 3.36zM8.304 3.12v1.728c.096.528 1.008 2.64 1.68 3.888C9.12 8.112 7.2 6.672 6.672 5.952a4.416 4.416 0 0 1-.816-1.392L2.448 6.48v4.128c.432.24 1.104.72 1.488.864.528.192 2.832.432 4.224.48-1.008.432-3.168 1.392-4.08 1.488-.768.144-1.296.048-1.632 0v4.08l3.312 1.872c.432-.192 1.152-.576 1.488-.816.432-.336 1.776-2.208 2.496-3.408-.096 1.056-.384 3.408-.72 4.272-.288.72-.624 1.104-.816 1.392L12 22.992l3.504-2.016c.048-.432.096-1.344 0-1.824-.048-.528-1.008-2.64-1.632-3.888.864.672 2.736 2.112 3.312 2.832.528.624.72 1.152.816 1.44l3.552-2.016v-4.032c-.384-.24-1.152-.72-1.632-.912-.48-.192-2.784-.432-4.176-.48 1.008-.48 3.168-1.392 4.08-1.488.864-.144 1.392-.048 1.728.048V6.48l-3.36-1.92-1.488.912c-.432.336-1.776 2.208-2.544 3.36.144-1.056.432-3.408.768-4.272.288-.72.624-1.152.864-1.392L12 1.008zM12 0l10.416 6v12L12 24 1.584 18V6z\"},\"child\":[]}]})(props);\n};\nexport function SiSemanticscholar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 8.609c-.848.536-1.436.83-2.146 1.245-4.152 2.509-8.15 5.295-11.247 8.981l-1.488 1.817-4.568-7.268c1.021.814 3.564 3.098 4.603 3.599l3.356-2.526c2.336-1.644 8.946-5.226 11.49-5.848ZM8.046 15.201c.346.277.692.537.969.744.761-3.668.121-7.613-1.886-11.039 3.374-.052 6.731-.087 10.105-.139a14.794 14.794 0 0 1 1.298 5.295c.294-.156.588-.294.883-.433-.104-1.868-.641-3.91-1.662-6.263-4.602-.018-9.188-.018-13.79-.018 2.993 3.547 4.36 7.839 4.083 11.853Zm-.623-.484c.087.086.191.155.277.225-.138-3.409-1.419-6.887-3.824-9.881H1.73c3.098 2.855 4.984 6.299 5.693 9.656Zm-.744-.658c.104.087.208.173.329.277-.9-2.526-2.492-5.018-4.741-7.198H0c2.89 2.076 5.122 4.481 6.679 6.921Z\"},\"child\":[]}]})(props);\n};\nexport function SiSemanticui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm12.086 3.648a7.762 7.762 0 0 1 5.51 2.141l-1.818 2.232c-.488-.302-2.51-1.465-4.122-1.136-1.223.25-1.35 1.088-1.356 1.162-.031.373.364.963.718 1.148 1.656.858 3.761 1.561 4.617 2.024 2.452 1.325 2.638 3.322 2.295 4.873-.902 4.092-6.821 4.835-10.516 2.638a7.119 7.119 0 0 1-1.424-1.097l2.037-2.442c.319.189.45.408 1.485.955 2.47 1.308 4.132.398 4.29.292.528-.356.547-.957.538-1.155-.03-.627-.502-.97-1.115-1.236-1.01-.438-2.7-1.108-3.87-1.647-1.687-.777-2.757-2.046-2.76-3.982-.003-3.209 2.827-4.261 3.91-4.547a6.916 6.916 0 0 1 1.58-.223Z\"},\"child\":[]}]})(props);\n};\nexport function SiSemanticuireact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.857 23.995C4.52 23.9-.237 17.431.012 11.775-.004 6.167 4.646.066 12.111 0c6.254.027 11.978 5.271 11.885 12.202-.072 6.813-5.84 11.973-12.14 11.793zm.175-4.92c.988.93 3.497 3.166 5.362 1.957 1.434-.93 1.157-3.975.75-5.5 1.597-.365 4.44-1.76 4.37-3.506-.078-2-2.615-3.057-4.408-3.545.347-1.495.913-4.317-.745-5.527-1.637-1.195-4.302.88-5.354 1.969-1.025-.879-3.361-3.096-5.22-2.046-1.46.824-1.513 3.087-.875 5.598-1.441.34-4.459 1.532-4.42 3.546.04 2.183 3.342 3.175 4.397 3.553-.495 1.639-.768 4.596.884 5.55 1.88 1.085 4.39-1.292 5.26-2.048zm-5.244-3.321c.126.039.216.054.362.113.035-.362.268-.685.486-.875-.221-.005-.544-.066-.615-.113.172-.562.439-1.357.657-1.782.25.375.393.674.6 1.1a3.35 3.35 0 0 1 .66-.68c-.645-1.294-1.514-2.837-1.896-4.38.227-.112.426-.116.618-.15.053-.324.162-.638.288-.95-.378-.003-.764.097-1.15.19-.525-1.693-.604-4.156.511-4.624 1.354-.48 3.525 1.331 4.052 2.013l-.337.351c.668-.123 1.305-.107 1.988.013a2.52 2.52 0 0 0-.358-.382c1.172-1.273 3.307-2.653 4.306-1.81.906.852.681 2.98.286 4.456-.466-.083-.72-.138-1.065-.194-.097.51-.163.523-.366.83.317.035.617.065 1.188.234-.19.624-.387 1.202-.662 1.776-.273-.415-.473-.829-.932-1.55l-.565.74c.725 1.284 1.45 2.526 2.143 4.79-.196.114-.309.103-.604.165a4.16 4.16 0 0 1-.333.96c.451-.087.794-.142 1.182-.233.4 1.242.676 3.872-.423 4.554-1.172.677-3.229-.943-4.141-1.918.086-.13.11-.172.26-.274-.594.062-1.29.082-1.779.044.13.108.169.163.207.245-1.43 1.496-3.372 2.559-4.275 1.822-.887-.724-.77-2.846-.293-4.481zm6.072 1.5c2.67-.512 3.576-3.241 2.114-4.976-.405-.48-1.479-1.024-2.257-1.275-1.523-.49-2.556-1.136-1.716-1.962.826-.81 2.851.083 3.182.503l1.155-1.49c-1.161-1.105-2.702-1.52-4.337-1.222C9.54 7.1 8.488 8.336 8.418 9.308c-.155 2.168.875 2.764 2.821 3.598 1.592.682 2.139.913 2.051 1.487-.246 1.618-2.867.959-3.977-.09l-1.361 1.58c1.696 1.405 3.33 1.653 4.908 1.371zM2.404 12.055c-.097-1.216 2.43-2.463 3.731-2.682.318.892.625 1.788 1.031 2.608-.412.86-.737 1.764-1.042 2.679-1.08-.236-3.616-1.31-3.72-2.605zm14.455-.082c.452-1.08.812-2.016 1.013-2.64 1.2.252 3.78 1.37 3.724 2.668-.061 1.442-2.362 2.165-3.703 2.669a29.043 29.043 0 0 0-1.034-2.697z\"},\"child\":[]}]})(props);\n};\nexport function SiSemanticweb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.602 0s-1.524 5.809-8.516 2.658c-.776-.35-.954-.444-.982-.469L2.074 6.301l10.043 4.896s.776-.326 2.026-.933C20.273 7.287 21.602 0 21.602 0zM1.59 8.486v10.448L10.947 24V13.242L1.59 8.486zm20.82 0l-9.357 4.756V24l9.357-5.066V8.486Z\"},\"child\":[]}]})(props);\n};\nexport function SiSemaphoreci (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m21.50314 13.2549-4.15781-4.22828a3.03814 3.03814 0 0 0-4.3591 0L9.6943 12.374a1.20701 1.20701 0 0 1-1.7213 0l-1.63096-1.6587 4.1578-4.22866a6.53247 6.53247 0 0 1 9.34234 0L24 10.71531zM8.82879 19.47925a6.52947 6.52947 0 0 1-4.67098-1.9657L0 13.295l2.48674-2.52872 4.15744 4.21816a3.05613 3.05613 0 0 0 4.3591 0l3.29191-3.34814a1.20701 1.20701 0 0 1 1.7213 0l1.63097 1.6587-4.14732 4.22866a6.5186 6.5186 0 0 1-4.67135 1.95558z\"},\"child\":[]}]})(props);\n};\nexport function SiSemrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.698 11.911c0 .444-.226.516-.79.516-.596 0-.706-.1-.77-.554-.118-1.152-.896-2.13-2.201-2.24-.418-.034-.518-.19-.518-.706 0-.48.074-.708.446-.708 2.265.01 3.833 1.832 3.833 3.69v.002zm3.3 0c0-3.456-2.338-7.11-7.74-7.11H5.52c-.218 0-.354.11-.354.31 0 .109.082.209.156.26.388.31.97.654 1.73 1.036.743.372 1.323.616 1.903.852.246.1.336.208.336.344 0 .19-.136.308-.4.308H.372c-.254 0-.372.164-.372.326 0 .136.044.254.162.372.69.726 1.796 1.596 3.4 2.604 1.466.91 2.98 1.74 4.533 2.492.236.11.308.236.308.372-.008.154-.126.28-.4.28H4.1c-.216 0-.344.12-.344.3 0 .1.08.226.19.326.888.808 2.311 1.688 4.207 2.494 2.53 1.08 5.094 1.721 7.98 1.721 5.465 0 7.867-4.087 7.867-7.289l-.002.002zm-7.133 5.104c-2.794 0-5.132-2.276-5.132-5.114 0-2.794 2.33-5.04 5.132-5.04 2.863 0 5.111 2.24 5.111 5.04a5.086 5.086 0 0 1-5.111 5.114z\"},\"child\":[]}]})(props);\n};\nexport function SiSemver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.357 9.024A12.07 12.07 0 002.97 19.867a12.051 12.051 0 0010.38 4.063c7.768-.703 13.086-9.799 9.517-16.8-.416-1.19-2.07-.368-1.903.596.287.7.526 1.421.713 2.155a9.983 9.983 0 01-3.926 10.25 9.965 9.965 0 01-14.807-3.809A9.984 9.984 0 014.44 5.448a9.968 9.968 0 014.85-3.044 9.868 9.868 0 017.02.631.333.333 0 01.155.429l-3.962 10.62c-.107.81-.69.786-.797 0l-2.38-7.37a1.572 1.572 0 00-.773-.988c-1.19-.56-3.093.667-2.379 2.155l3.914 10.441c.524 1.393 1.023 1.834 2.058 1.834s1.535-.44 2.058-1.834L20 3.94a1.036 1.036 0 00-.369-1.19C13.1-2.907 2.32.641.357 9.023z\"},\"child\":[]}]})(props);\n};\nexport function SiSencha (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.287,24c0.458-1.221,0.917-1.532,0.917-2.442c0-1.452-0.878-2.8-2.237-3.434 l-5.831-2.813C5.211,13.85,3.392,10.97,3.392,7.797c0-3.23,1.867-6.133,4.871-7.576L8.712,0C8.129,0.674,7.796,1.532,7.796,2.44 c0,1.453,0.878,2.801,2.237,3.435l5.831,2.813c2.926,1.462,4.744,4.342,4.744,7.514c0,3.23-1.867,6.133-4.871,7.577L15.287,24\"},\"child\":[]}]})(props);\n};\nexport function SiSendgrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.8 24h13.6c.88 0 1.6-.72 1.6-1.6v-4.8c0-.88-.72-1.6-1.6-1.6H9.6c-.88 0-1.6-.72-1.6-1.6V9.6C8 8.72 7.28 8 6.4 8H1.6C.72 8 0 8.72 0 9.6v13.6c0 .44.36.8.8.8zM23.2 0H9.6C8.72 0 8 .72 8 1.6v4.8C8 7.28 8.72 8 9.6 8h4.8c.88 0 1.6.72 1.6 1.6v4.8c0 .88.72 1.6 1.6 1.6h4.8c.88 0 1.6-.72 1.6-1.6V.8c0-.44-.36-.8-.8-.8Z\"},\"child\":[]}]})(props);\n};\nexport function SiSennheiser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3v18h24V3zm13.209 1.659c-1.428.548-2.799 1.757-3.905 4.182-.321.703-.925 2.062-1.2 2.67-2.224 4.882-3.364 5.932-6.72 5.932V4.35H13.15c.184-.011.235.25.06.309zm9.428 1.894V19.65H10.851c-.181.005-.227-.25-.055-.309 1.427-.548 2.798-1.757 3.904-4.182.321-.703.926-2.062 1.2-2.67 2.22-4.882 3.36-5.932 6.716-5.932z\"},\"child\":[]}]})(props);\n};\nexport function SiSensu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12L12 0 0 12l12 12 12-12zM12 3.197l4.418 4.418c-1.445-.386-2.93-.586-4.418-.586s-2.974.199-4.418.588L12 3.196zM8.069 16.87c1.19-.658 2.534-1.008 3.931-1.008s2.741.35 3.931 1.008L12 20.804 8.069 16.87zm9.509-1.647c-1.697-1.08-3.636-1.622-5.578-1.622s-3.881.542-5.578 1.622l-3.103-3.101C5.822 10.284 8.834 9.29 12 9.29s6.178.994 8.681 2.832l-3.103 3.101z\"},\"child\":[]}]})(props);\n};\nexport function SiSentry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.91 2.505c-.873-1.448-2.972-1.448-3.844 0L6.904 7.92a15.478 15.478 0 0 1 8.53 12.811h-2.221A13.301 13.301 0 0 0 5.784 9.814l-2.926 5.06a7.65 7.65 0 0 1 4.435 5.848H2.194a.365.365 0 0 1-.298-.534l1.413-2.402a5.16 5.16 0 0 0-1.614-.913L.296 19.275a2.182 2.182 0 0 0 .812 2.999 2.24 2.24 0 0 0 1.086.288h6.983a9.322 9.322 0 0 0-3.845-8.318l1.11-1.922a11.47 11.47 0 0 1 4.95 10.24h5.915a17.242 17.242 0 0 0-7.885-15.28l2.244-3.845a.37.37 0 0 1 .504-.13c.255.14 9.75 16.708 9.928 16.9a.365.365 0 0 1-.327.543h-2.287c.029.612.029 1.223 0 1.831h2.297a2.206 2.206 0 0 0 1.922-3.31z\"},\"child\":[]}]})(props);\n};\nexport function SiSepa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.553 8.72v6.56h1.766v-1.694h1.052l.293-.01c.579-.009.907-.02.984-.033.656-.086 1.09-.418 1.3-.994.106-.29.16-.769.16-1.434 0-.553-.049-.968-.145-1.243-.185-.524-.548-.871-1.09-1.04-.236-.074-.58-.111-1.031-.111zm6.79 0l-1.971 6.56h1.826l.317-1.134h2.36l.337 1.133H24l-1.995-6.558zm-9.339.031a3.36 3.36 0 0 0-1.888.574 3.272 3.272 0 0 0-1.199 1.455h-.742l-.464.996h.969a3.17 3.17 0 0 0 .004.526h-.467l-.465.995H6.94a3.333 3.333 0 0 0 3.064 1.973 3.37 3.37 0 0 0 1.876-.564l.013-.009v-1.241l-.05.056a2.293 2.293 0 0 1-3.618-.215h2.396l.465-.995H7.838a2.356 2.356 0 0 1-.012-.526h3.505l.008-.017.438-.939.019-.04H8.154a2.308 2.308 0 0 1 1.963-1.108c.694 0 1.344.31 1.783.85l.028.035.409-.875-.015-.014a3.359 3.359 0 0 0-2.318-.917zm-7.2.004c-.439 0-.837.016-1.196.048-.43.034-.785.15-1.062.348a1.082 1.082 0 0 0-.41.565c-.086.248-.128.578-.128.99 0 .54.079.943.236 1.21.179.314.537.52 1.074.621.205.035.57.071 1.094.109.654.044 1.02.078 1.098.103.211.063.316.239.316.528a1.1 1.1 0 0 1-.037.315.48.48 0 0 1-.298.287c-.084.032-.281.048-.589.048h-.604a.963.963 0 0 1-.41-.09c-.164-.081-.246-.264-.246-.549v-.136H0c0 .533.04.915.118 1.143.142.412.435.685.879.82.362.11 1.003.164 1.922.164.551 0 .96-.025 1.228-.075.64-.12 1.05-.404 1.233-.853.101-.245.151-.632.151-1.16 0-.23-.01-.435-.033-.617a1.186 1.186 0 0 0-.355-.74c-.252-.242-.66-.392-1.22-.448-.177-.019-.62-.052-1.33-.1l-.331-.023a.768.768 0 0 1-.35-.094c-.124-.075-.185-.233-.185-.471 0-.264.07-.435.208-.514.139-.079.423-.118.852-.118.441 0 .71.068.808.205.063.092.095.272.095.542h1.642c.01-.145.016-.253.016-.326 0-.884-.357-1.421-1.072-1.613-.293-.079-.784-.119-1.473-.119zm17.894 1.27l.827 2.843h-1.63zm-6.38.13h1.116c.18 0 .294.004.342.01.24.042.393.157.456.345.045.134.067.34.067.617a2.9 2.9 0 0 1-.033.512c-.035.172-.105.287-.21.344-.076.042-.288.069-.637.082h-1.1Z\"},\"child\":[]}]})(props);\n};\nexport function SiSequelize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0264 0 1.5947 5.9922v12.0156L12.0264 24l10.3789-5.9922V5.9922L12.0264 0zm-.0274 3.4844 7.4297 4.2266v8.5781l-7.4297 4.2266-7.3476-4.1817-.0801-8.623 7.4277-4.2266zm.0489.5898c-.9765.5627-1.9519 1.1274-2.9277 1.6914v.2539l2.6074 1.5234v.4824c.1355-.0781.2616-.1511.4023-.2324l.2559.1504v-.3359c.8844-.5068 1.8073-1.0412 2.5684-1.4805.0035-.1232.0027-.2534.0039-.373-.9703-.5596-1.9403-1.1197-2.9102-1.6797zM8.335 6.1387c-.9705.553-1.9312 1.1228-2.8926 1.6914v3.4023c.965.5553 1.9287 1.1127 2.8926 1.6699l.4023-.2324v-2.916c.8561-.4945 1.7522-1.0126 2.4902-1.4395v-.4843L8.335 6.1387zm7.4433.0879-2.8926 1.6699v.3379l2.6367 1.541v3.0664c.0854.0494.1705.0991.2559.1484l2.8926-1.6699V7.918l-2.8926-1.6914zm-3.6484 2.1445c-.9636.5584-1.9281 1.1151-2.8926 1.6719v3.4238c.965.5553 1.9287 1.1127 2.8926 1.6699l2.8926-1.6719v-3.4023l-2.8926-1.6914zm-6.1973 3.7227c-.1627.0962-.3275.1889-.4902.2852v3.4023c.9643.5571 1.9284 1.1145 2.8926 1.6719l.4023-.2324v-2.918c.1625-.0939.3086-.1787.4727-.2734-.1629-.0945-.3047-.1763-.4727-.2734v-.508l-.4023.2325c-.8251-.4771-1.6902-.976-2.4024-1.3867zm12.2481.0859-2.4023 1.3887c-.088-.0509-.1672-.0972-.2559-.1484v.334l-.4922.2852.4922.2871v3.0664c.0854.0494.1705.0991.2559.1484l2.8926-1.6719v-3.4023l-.4903-.2872zm-8.4688 2.1387c-.1581.0913-.3165.1821-.4746.2734v3.4238c.9637.5575 1.9282 1.1136 2.8926 1.6699l2.8926-1.6699v-3.4023l-.4902-.2871-2.4023 1.3887c-.8307-.4804-1.7013-.9829-2.4181-1.3965z\"},\"child\":[]}]})(props);\n};\nexport function SiServerfault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 18.185v2.274h-4.89v-2.274H24zm-24-.106h11.505v2.274H0zm12.89 0h4.89v2.274h-4.89zm6.221-3.607H24v2.274h-4.89l.001-2.274zM0 14.367h11.505v2.274H0v-2.274zm12.89 0h4.89v2.274h-4.89v-2.274zm6.221-3.346H24v2.273h-4.89l.001-2.273zM0 10.916h11.505v2.271H0v-2.271zm12.89 0h4.89v2.271h-4.89v-2.271zm6.22-3.609H24v2.279h-4.89V7.307zM0 7.206h11.505V9.48H0V7.201zm12.89 0h4.89V9.48h-4.89V7.201zm6.221-3.556H24v2.276h-4.89v-2.28l.001.004zM0 3.541h11.505v2.274H0V3.541zm12.89 0h4.89v2.274h-4.89V3.541z\"},\"child\":[]}]})(props);\n};\nexport function SiServerless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 17.57h4.248l-1.316 3.974H0zm0-7.557h6.75l-1.316 3.974H0zm0-7.557h9.252L7.936 6.431H0zm13.44 0H24v3.975H12.123zM9.62 13.987l1.317-3.974H24v3.974zM8.436 17.57H24v3.975H7.119Z\"},\"child\":[]}]})(props);\n};\nexport function SiSession (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.431 12.193-4.53-2.51h3.071a4.847 4.847 0 0 0 4.842-4.841A4.848 4.848 0 0 0 17.972 0H7.252a6.073 6.073 0 0 0-6.066 6.066 6.566 6.566 0 0 0 3.383 5.741l4.53 2.51H6.028a4.847 4.847 0 0 0-4.842 4.841A4.848 4.848 0 0 0 6.028 24h10.72a6.073 6.073 0 0 0 6.066-6.066 6.568 6.568 0 0 0-3.383-5.741zm-14.136-1.7a5.065 5.065 0 0 1-2.607-4.309C2.627 3.61 4.79 1.5 7.367 1.5h10.508c1.797 0 3.345 1.378 3.434 3.173a3.345 3.345 0 0 1-3.337 3.51H11.92a.67.67 0 0 0-.67.67l-.001 4.94zM16.633 22.5H6.124c-1.797 0-3.345-1.378-3.434-3.173a3.345 3.345 0 0 1 3.337-3.51h6.053c.37 0 .67-.3.67-.67v-4.94l5.954 3.3a5.065 5.065 0 0 1 2.608 4.309c.06 2.575-2.103 4.684-4.679 4.684\"},\"child\":[]}]})(props);\n};\nexport function SiSessionize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c6.628 0 12 5.372 12 12v10c0 1.097-.903 2-2 2h-7.5l-.001-.169c-.049-2.894-1.347-4.902-3.709-5.96L24 12l-.32-.109c-2.858-.999-5.251-2.462-7.18-4.391-1.928-1.928-3.392-4.322-4.391-7.181L12 0 4 18c0 .667.167 1.167.5 1.5.334.334.834.5 1.5.5l.187.001c3.771.04 5.313 1.295 5.313 3.999H2c-1.097 0-2-.903-2-2V2C0 .903.903 0 2 0h10Zm7.207 4.793c-.781-.781-1.73-1.097-2.121-.707-.39.39-.074 1.34.707 2.121.781.781 1.731 1.098 2.121.707.391-.39.074-1.34-.707-2.121Z\"},\"child\":[]}]})(props);\n};\nexport function SiSetapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.0949 8.1332a.619.619 0 0 1 0-.874l2.7712-2.7733a.619.619 0 0 1 .877 0l2.7703 2.7722a.619.619 0 0 1 0 .8751l-2.7703 2.7722a.619.619 0 0 1-.877 0zm-1.5331-1.5331L8.7906 3.8299a.618.618 0 0 1 0-.877L11.5618.1815a.619.619 0 0 1 .876 0l2.7732 2.7712a.619.619 0 0 1 0 .877L12.4378 6.6a.619.619 0 0 1-.876 0zm0 2.1902a.619.619 0 0 1 .876 0l2.7732 2.7712a.619.619 0 0 1 0 .877l-2.7732 2.7712a.619.619 0 0 1-.876 0l-2.7712-2.7692a.618.618 0 0 1 0-.877zm-4.3044 2.1151L4.4862 8.1332a.619.619 0 0 1 0-.876l2.7712-2.7713a.619.619 0 0 1 .8761 0l2.7722 2.7712a.621.621 0 0 1 0 .8761l-2.7732 2.7722a.619.619 0 0 1-.876 0zm9.4847 2.1902 2.7723 2.7712a.618.618 0 0 1 0 .875l-2.7703 2.7723a.619.619 0 0 1-.876 0l-2.7732-2.7722a.621.621 0 0 1 0-.8751l2.7732-2.7722a.619.619 0 0 1 .875 0zm-4.3043 4.3033 2.7722 2.7722a.618.618 0 0 1 0 .876l-2.7722 2.7713a.619.619 0 0 1-.876 0l-2.7712-2.7712a.619.619 0 0 1 0-.877l2.7712-2.7713a.619.619 0 0 1 .876 0zm-1.532-1.5321a.619.619 0 0 1 0 .875l-2.7723 2.7733a.621.621 0 0 1-.876 0l-2.7723-2.7722a.619.619 0 0 1 0-.8751l2.7722-2.7722a.619.619 0 0 1 .8761 0z\"},\"child\":[]}]})(props);\n};\nexport function SiSfml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.187.3336C11.1144.312 9.8776.863 7.9587 2.241L3.162 5.7258C.252 7.8401-.839 8.5272.6917 13.3288l1.8322 5.639c1.1115 3.4208 1.4278 4.6711 6.4675 4.6991H14.92c3.5969 0 4.884.085 6.4678-4.6991l1.8319-5.639c1.1115-3.421 1.5903-4.618-2.4703-7.603L15.953 2.241h-.0004C14.4069 1.1178 13.4026.358 12.187.3336zm-.1624 1.8837c.0652.0015.1303.0048.1953.01 1.0784.0831 1.6791.6384 2.3401 1.1186l.0193.0193-2.128 8.1684h-.9257L9.404 3.3652c.0067-.006.0118-.0137.0192-.0193.7741-.5944 1.5245-1.0708 2.4109-1.125l.1905-.0036zM16.128 4.489h.0008l.0896.0643 3.8771 2.8158c.9207.632 1.6776 1.2778 1.9282 2.3144.2542 1.0514-.0947 1.7946-.3472 2.5716l-2.1082 6.506c-.3166 1.0708-.699 1.9873-1.6073 2.5459-.9213.5666-1.7352.4693-2.5523.4693H8.568c-1.117.03-2.1064-.0413-2.9187-.7329-.8236-.7012-.982-1.5052-1.2344-2.2823l-2.1151-6.506c-.3745-1.0545-.6065-2.021-.1993-3.0087.4123-1 1.1262-1.397 1.7872-1.8773l3.8767-2.8158.0835-.0579.8358 3.208-.2121.1543-2.771 2.0058c-.5628.409-.667.5092-.7135.5465.012.0598.0363.2851.2379.8486l2.1279 6.5446c.1988.6723.2754.8034.2958.855.0652.0084.2856.0495.8743.0322h6.8853c.6295 0 .8264-.0174.8997-.0193.0264-.0569.1413-.252.3086-.8229l2.1281-6.551c.194-.5974.2404-.804.2571-.8615-.048-.0451-.2023-.2149-.6879-.5464l-2.803-2.0316-.2186-.1607.8358-3.208h-.0001z\"},\"child\":[]}]})(props);\n};\nexport function SiShadcnui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.219 11.784 11.784 22.219c-.407.407-.407 1.068 0 1.476.407.407 1.068.407 1.476 0L23.695 13.26c.407-.408.407-1.069 0-1.476-.408-.407-1.069-.407-1.476 0ZM20.132.305.305 20.132c-.407.407-.407 1.068 0 1.476.408.407 1.069.407 1.476 0L21.608 1.781c.407-.407.407-1.068 0-1.476-.408-.407-1.069-.407-1.476 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiShadow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3727 0 0 5.3727 0 12c0 3.5145 1.511 6.6754 3.9181 8.8702a4.457 4.457 0 01-.1998-1.3238c0-2.4597 1.9938-4.4535 4.4536-4.4535 2.4596 0 4.4535 1.9938 4.4535 4.4535 0 1.9565-1.262 3.6171-3.016 4.2153C10.382 23.9178 11.1815 24 12 24c6.6273 0 12-5.3727 12-12S18.6273 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiShanghaimetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.383 11.664h-1.716l-3.432-4.487-3.073 3.606L9.31 7.177l-3.513 4.487H3.63c.185-4.464 3.872-8.047 8.383-8.047 3.953 0 7.27 2.748 8.15 6.424h3.687C22.91 4.359 17.96.01 12 .01c-6.632 0-12 5.369-12 12 0 1.102.15 2.169.429 3.177h6.516l2.412-2.55 2.805 3.478 2.945-3.502 1.902 2.61h2.69c-1.287 2.967-4.256 5.495-7.699 5.495-2.84 0-5.357-1.681-6.875-3.942H.997C2.852 21.02 7.072 23.988 12 23.988c6.632 0 12-5.368 12-12 0-.116 0-.231-.012-.347l-3.605.023Z\"},\"child\":[]}]})(props);\n};\nexport function SiSharex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.217 15.774v.054c.083 3.469 2.543 6.416 5.99 7.607h-.002c1.095.377 2.246.568 3.404.565 5.159 0 9.347-3.697 9.389-8.275a7.49 7.49 0 0 0-.563-2.668c-1.19 3.446-4.138 5.906-7.607 5.987h-.176c-2.01 0-3.854-.8-5.294-2.13-1.656-1.53-2.78-3.765-3.01-6.295-1.3 1.407-2.093 3.2-2.13 5.155Zm3.01-10.557H8.17c-3.36.08-6.23 2.39-7.49 5.669l-.117.32A10.408 10.408 0 0 0 0 14.608c0 5.159 3.697 9.347 8.275 9.389a7.49 7.49 0 0 0 2.668-.563c-3.446-1.19-5.906-4.138-5.987-7.607v-.176c0-2.01.8-3.854 2.13-5.296 1.53-1.656 3.765-2.78 6.296-3.01-1.407-1.3-3.2-2.093-5.155-2.129Zm7.601 13.566.324-.015c3.327-.223 6.129-2.636 7.283-5.974A10.36 10.36 0 0 0 24 9.392c0-5.16-3.697-9.347-8.275-9.39a7.49 7.49 0 0 0-2.668.563c3.446 1.19 5.906 4.14 5.987 7.607v.176c0 2.01-.8 3.854-2.13 5.294-1.53 1.656-3.765 2.78-6.295 3.01 1.407 1.3 3.2 2.094 5.155 2.13zM.002 8.275a7.49 7.49 0 0 0 .563 2.668c1.19-3.446 4.14-5.906 7.607-5.987h.176c2.01 0 3.854.8 5.294 2.13.334.31.643.643.925.999 1.146 1.436 1.9 3.27 2.085 5.297 1.3-1.407 2.094-3.2 2.13-5.155V8.17C18.7 4.703 16.24 1.756 12.795.564A10.408 10.408 0 0 0 9.393 0C4.23 0 .045 3.697.002 8.275Z\"},\"child\":[]}]})(props);\n};\nexport function SiSharp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.2209.0875v5.9613l-3.7433.5012v3.5233l3.7433-.5012v3.5735l3.492-.4672V9.1047L24 8.2634l-.4631-3.4613-5.824.7794V.0875zM6.287 1.145v5.9618L0 7.9483l.4634 3.4613 5.8514-.7834 3.4644-.4637V1.145zm3.5198 9.7185l-3.492.4675v3.578l-6.183.8276.4633 3.4613 5.8239-.7796v5.4942h3.492v-5.962l3.6114-.4834V13.944l-3.7156.4973zm13.73 1.7405l-5.824.779-3.492.4673v9.0179h3.492v-5.9618L24 16.0652Z\"},\"child\":[]}]})(props);\n};\nexport function SiShazam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0-.001 5.371-.001 12c0 6.625 5.374 12 12.001 12s12-5.375 12-12c0-6.629-5.373-12-12-12M9.872 16.736c-1.287 0-2.573-.426-3.561-1.281-1.214-1.049-1.934-2.479-2.029-4.024-.09-1.499.42-2.944 1.436-4.067C6.86 6.101 8.907 4.139 8.993 4.055c.555-.532 1.435-.511 1.966.045.53.557.512 1.439-.044 1.971-.021.02-2.061 1.976-3.137 3.164-.508.564-.764 1.283-.719 2.027.049.789.428 1.529 1.07 2.086.844.73 2.51.891 3.553-.043.619-.559 1.372-1.377 1.38-1.386.52-.567 1.4-.603 1.965-.081.565.52.603 1.402.083 1.969-.035.035-.852.924-1.572 1.572-1.005.902-2.336 1.357-3.666 1.357m8.41-.099c-1.143 1.262-3.189 3.225-3.276 3.309-.27.256-.615.385-.96.385-.368 0-.732-.145-1.006-.43-.531-.559-.512-1.439.044-1.971.021-.02 2.063-1.977 3.137-3.166.508-.563.764-1.283.719-2.027-.048-.789-.428-1.529-1.07-2.084-.844-.73-2.51-.893-3.552.044-.621.556-1.373 1.376-1.38 1.384-.521.566-1.399.604-1.966.084-.564-.521-.604-1.404-.082-1.971.034-.037.85-.926 1.571-1.573 1.979-1.778 5.221-1.813 7.227-.077 1.214 1.051 1.935 2.48 2.028 4.025.092 1.497-.419 2.945-1.434 4.068\"},\"child\":[]}]})(props);\n};\nexport function SiShell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .863C5.34.863 0 6.251 0 12.98c0 .996.038 1.374.246 2.33l3.662 2.71.57 4.515h6.102l.326.227c.377.262.705.375 1.082.375.352 0 .732-.101 1.024-.313l.39-.289h6.094l.563-4.515 3.695-2.71c.208-.956.246-1.334.246-2.33C24 6.252 18.661.863 12 .863zm.996 2.258c.9 0 1.778.224 2.512.649l-2.465 12.548 3.42-12.062c1.059.36 1.863.941 2.508 1.814l.025.034-4.902 10.615 5.572-9.713.033.03c.758.708 1.247 1.567 1.492 2.648l-6.195 7.666 6.436-6.5.01.021c.253.563.417 1.36.417 1.996 0 .509-.024.712-.164 1.25l-3.554 2.602-.467 3.71h-4.475l-.517.395c-.199.158-.482.266-.682.266-.199 0-.483-.108-.682-.266l-.517-.394H6.322l-.445-3.61-3.627-2.666c-.11-.436-.16-.83-.16-1.261 0-.72.159-1.49.426-2.053l.013-.024 6.45 6.551L2.75 9.621c.25-1.063.874-2.09 1.64-2.713l5.542 9.776L4.979 6.1c.555-.814 1.45-1.455 2.546-1.827l3.424 12.069L8.355 3.816l.055-.03c.814-.45 1.598-.657 2.457-.657.195 0 .286.004.528.03l.587 13.05.46-13.059c.224-.025.309-.029.554-.029z\"},\"child\":[]}]})(props);\n};\nexport function SiShelly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12a12 12 0 0 0 .033.88c1.07-.443 2.495-.679 4.322-.679h5.762c-.167.61-.548 1.087-1.142 1.436-.532.308-1.14.463-1.823.463h-.927c-.89 0-1.663.154-2.32.463-.859.403-1.286 1-1.286 1.789 0 .893.59 1.594 1.774 2.1a7.423 7.423 0 0 0 2.927.581c1.318 0 2.416-.29 3.297-.867 1.024-.664 1.535-1.616 1.535-2.857 0-.854-.325-2.08-.976-3.676-.65-1.597-.975-2.837-.975-3.723 0-2.79 2.305-4.233 6.916-4.324.641-.01 1.337-.005 1.916-.004.593 0 1.144.05 1.66.147A12 12 0 0 0 12 0zm4.758 5.691c-1.206 0-1.809.502-1.809 1.506 0 .514.356 1.665 1.067 3.451.71 1.787 1.064 3.186 1.064 4.198 0 2.166-1.202 3.791-3.607 4.875-1.794.797-3.892 1.197-6.297 1.197-1.268 0-2.442-.114-3.543-.316A12 12 0 0 0 12 24c6.627 0 12-5.373 12-12a12 12 0 0 0-.781-4.256 3.404 3.404 0 0 1-.832.77h-4.371l1.425-2.828a299.94 299.94 0 0 0-2.683.005Z\"},\"child\":[]}]})(props);\n};\nexport function SiShenzhenmetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.27 0v.155c0 4.69 3.033 8.751 7.331 10.434v2.736C3.303 14.99.271 19.019.271 23.768V24H4.36v-.232c0-2.459 1.278-4.623 3.24-5.934V24h3.165v-7.384c.408-.065.82-.098 1.234-.1.423 0 .834.038 1.235.1V24h3.165v-6.148c1.925 1.313 3.163 3.469 3.163 5.916V24h4.168v-.232c0-4.691-3.033-8.751-7.331-10.434V10.6c4.298-1.665 7.33-5.696 7.33-10.446V.001h-4.09v.154c0 2.458-1.277 4.622-3.24 5.934V0h-3.165v7.305c-.408.066-.821.1-1.235.103a8.11 8.11 0 0 1-1.234-.103V.001H7.6V6.07C5.675 4.757 4.438 2.602 4.438.154V.001zm10.495 11.358c.82.084 1.648.084 2.469.001v1.205a12.236 12.236 0 0 0-2.47 0z\"},\"child\":[]}]})(props);\n};\nexport function SiShieldsdotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.084 13.11a.93.93 0 01-.187-.548l.347-.03c.013.254.183.5.434.572.295.108.65.096.916-.08.18-.137.226-.446.04-.597-.19-.16-.447-.182-.676-.25-.284-.068-.596-.137-.802-.36a.686.686 0 01.036-.903c.247-.256.633-.309.972-.275.298.03.613.162.758.44.051.11.132.272.08.377-.109.02-.22.018-.33.03-.01-.253-.21-.494-.468-.514-.23-.038-.488-.03-.69.098-.17.12-.224.407-.046.544.155.123.359.146.543.2.322.075.679.135.92.382.243.265.23.708-.01.971-.244.281-.643.36-.998.329-.314-.018-.645-.124-.839-.386zm2.827.343v-.746c.006-.217-.018-.438.032-.652.065-.288.415-.433.68-.336.167.054.24.235.243.398.004.446 0 .891.001 1.337h.341v-.907c-.006-.245.021-.493-.04-.732-.058-.247-.307-.394-.547-.413a.787.787 0 00-.71.271v-.996h-.34v2.777h.34zm2.161-2.776h-.341v.392h.341v-.392zm0 .765h-.341v2.012h.341v-2.012zm.451 1.382c-.102-.401-.049-.883.255-1.186.373-.364 1.054-.318 1.362.108.166.224.203.517.19.789h-1.5c-.016.35.276.727.649.686a.56.56 0 00.49-.415l.353.043c-.085.42-.527.7-.943.653-.392-.008-.78-.282-.856-.678zm.327-.57h1.123c.016-.336-.317-.657-.657-.57a.584.584 0 00-.466.57zm2.235-1.577h-.34v2.777h.34v-2.777zm1.835 2.777zm-1.403-.736c-.062-.335-.015-.7.168-.99.226-.328.723-.442 1.056-.211.051.028.124.139.157.123v-.963h.338v2.776h-.316V13.2c-.171.296-.579.371-.877.236-.288-.124-.481-.413-.526-.718zm.325-.268c-.009.272.078.589.339.721a.496.496 0 00.665-.259c.109-.242.09-.518.047-.773-.052-.237-.248-.461-.504-.461a.513.513 0 00-.497.385c-.04.125-.048.257-.05.387zm2.14.942c.16.082.344.107.522.108.256-.004.535-.08.692-.297.161-.209.156-.544-.048-.723-.181-.135-.41-.176-.623-.238-.136-.05-.29-.057-.411-.142-.104-.062-.114-.213-.038-.301.11-.118.286-.129.437-.12.187-.007.372.137.387.328l.333-.046a.748.748 0 00-.102-.289c-.12-.178-.346-.247-.55-.269-.252-.023-.536.011-.727.194a.526.526 0 00.012.762c.185.136.418.18.635.24.13.043.276.054.386.141.114.093.079.274-.02.365-.134.118-.33.129-.499.103-.209-.014-.377-.203-.392-.408l-.337.054v-.001c.03.217.15.429.344.539zm7.102-2.284c-.46-.341-1.219-.134-1.405.417a1.861 1.861 0 00-.082.582c-.046.518.35 1.072.894 1.085.46.027.916-.322.97-.788.095-.452.016-1.005-.377-1.296zM24 9.938v4.122c0 .575-.337 1.072-.823 1.308a.963.963 0 01-.51.146h-6.138l-.041.002c-.02 0-.041 0-.062-.002H1.455A1.456 1.456 0 010 14.06V9.938c0-.802.652-1.454 1.455-1.454H22.667c.187 0 .362.054.51.146.486.236.823.733.823 1.308zm-7.03-.484H1.455a.485.485 0 00-.485.484v4.122c0 .267.217.484.485.484H16.48a.485.485 0 00.489-.445V9.454zm1.714 1.223h-.368v2.777h.368v-2.777zm3.022.642c-.273-.594-1.04-.83-1.633-.618-.572.19-.888.823-.855 1.4 0 .272.07.543.204.78.396.718 1.518.836 2.07.236.443-.474.489-1.227.214-1.798z\"},\"child\":[]}]})(props);\n};\nexport function SiShikimori (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.8025.0025C2.7779.03 2.8332.1223 2.9834.3c.0981.1134.1594.2328.233.4444.0551.1594.1198.3157.1443.3464.0368.049.0396.037.0427-.1102V.8181l.218.3004c.331.4568.5365.6992.6744.7973.0706.046.1136.0919.0952.098-.049.0153-.4785-.2208-.6778-.374-.1012-.0767-.196-.1411-.2114-.1411-.0153 0-.0644-.0461-.1073-.1013-.0399-.0552-.1348-.1408-.2053-.1898-.1717-.1196-.3527-.2913-.3957-.374C2.763.7721 2.668.7323 2.668.7814c0 .049.245.377.435.5793.5825.6224 1.1776.932 2.7688 1.4287.3373.1043.6347.2085.6623.233.0246.0215.0737.0398.1074.0398.0306 0 .0795.0152.104.0305.0399.0245.0367.031-.0093.031-.0368 0-.0521.018-.046.0548.0092.0552.1595.1045.4477.1444.1287.0184.1593.0124.1593-.0244 0-.049-.0889-.083-.2207-.083-.049 0-.0858-.0151-.0858-.0304 0-.0184.031-.025.0708-.0188.0368.0092.1652.0306.2817.052.276.046.353.0768.353.135 0 .0644.0826.092.1377.046.0307-.0276.046-.0274.046-.0028 0 .0183.0151.0337.0304.0337.0184 0 .031-.0214.031-.046 0-.0582-.0309-.0586.4842.0212.3066.046.42.077.374.0923-.098.0368-.0428.0858.0952.0858.0705 0 .1195.0153.1195.0337 0 .0276.0704.0306.2452.0183.1594-.0123.2516-.0093.2639.0122.0122.0184.0643.0275.1195.0183.0521-.0092.1961.0034.3126.0248.3066.0583 1.1313.1044 2.977.1688 2.983.1042 5.157.3277 5.9726.6159.3617.1287.9075.4048 1.0087.509.1594.1686.2082.3066.1898.5334-.0092.1135-.0092.2149 0 .2241.089.089.2855-.0859.2855-.2545 0-.0338.0639-.1165.1467-.187.331-.2913.3803-.454.3436-1.1194-.0246-.4476-.031-.4782-.2302-1.1343-.2606-.8585-.3215-.9903-.6342-1.3214-.3679-.3863-.7023-.6072-1.1592-.7635-.1103-.0368-.3434-.1224-.5212-.1899-.2483-.098-.4262-.141-.788-.1931-.512-.0736-1.6126-.1256-1.956-.0919-.1226.0123-.6132 0-1.1498-.0337-.61-.0337-.984-.046-1.0729-.0277-.0766.0154-.2085.0274-.2944.0305-.1257 0-.1837.0187-.291.0984-.1257.092-.2149.1194-.5644.1777-.5641.092-.929.1653-1.0823.2175-.1196.0429-.3157.0706-.6192.089-.8309.0521-1.3029.0952-1.4071.129-.0706.0214-.3406.0274-.7913.0182-.5488-.0123-.6895-.006-.7171.0277-.0276.0306-.0155.0398.0581.0398.1809 0 1.7968.1258 1.8121.141.0154.0154-.273.003-1.0977-.0491-.2423-.0154-.4567-.0186-.472-.0094-.0583.0368-.4939.0307-.9108-.0122-.515-.0521-1.0115-.138-1.4714-.2545-.2146-.0521-.4662-.0916-.644-.1008-.328-.0153-.6778-.129-1.1714-.3773-.325-.1625-.3614-.1684-.3614-.0366v.1008L3.244.5331c-.0552-.0644-.1224-.1689-.15-.2302-.0552-.1165-.2609-.328-.2915-.3004zm.4584 3.1887c-.5697.0269-1.0938.4707-1.47 1.2628-.2238.4752-.2635.6593-.2789 1.291-.0122.4966-.0063.598.0642 1.0119.1503.8615.19.9625.5058 1.2721.3342.3312 1.1654.785 1.6284.8892.1594.0338.3464.0768.4139.0952.2575.0644.61.0885 1.4868.1008.8431.0153.9136.0125 1.027-.0427.0797-.0398.2486-.0707.4908-.089.2023-.0184.4165-.0459.4748-.0643.0582-.0153.1841-.0309.276-.0309.0951 0 .1903-.0182.2087-.0366.0735-.0735.4228-.1503.757-.1687.187-.0092.3621-.0273.3928-.0427.1011-.0551.052-.0859-.1135-.0675-.095.0092-.187.003-.2207-.0154-.0491-.0307-.034-.0335.0825-.0366.0766 0 .2269-.0093.3342-.0216.1655-.0153.1842-.0248.1382-.0585-.1134-.0828-.0153-.1041.4936-.1041.4568 0 .5886-.0215.4537-.0736-.0275-.0092-.1413-.0216-.2517-.0216-.1134-.003-.1624-.0119-.1134-.015.0521-.006.1628-.0277.2517-.043.0859-.0185.6255-.0399 1.1958-.046.5702-.0061 1.0542-.0124 1.0757-.0155.0276 0 .0338-.0215.0216-.0614-.0123-.043-.0061-.061.0276-.061.0245 0 .083-.049.129-.1073.0919-.1195.1161-.1137.156.0427l.0277.1012.2207.0094c.1748.0061.2333-.003.2916-.046.0398-.0306.1224-.0645.1837-.0768l.1135-.0216-.0183.1782c-.0184.144-.0152.1716.0215.1593.0246-.0092.1222-.0338.2203-.0553l.1749-.0337-.0675-.089c-.043-.0491-.1226-.098-.1931-.1163l-.1224-.031.1838-.006a4.812 4.812 0 0 1 .3004 0c.0644.003.1135-.0089.1135-.0272 0-.0184-.0182-.034-.0366-.037-.0215-.0031-.089-.0064-.1472-.0095-.0582-.006-.1564-.0398-.2147-.0735-.0582-.0368-.1317-.067-.1593-.067-.0307 0-.0553-.0157-.0553-.031 0-.0215.092-.0305.2545-.0244.2483.0092.2514.0091.2606.0919.0123.095.0122.095.0797.0675a.0498.0498 0 0 0 .0305-.0581c-.0184-.049.037-.0893.083-.0586.0183.0092.0918.0215.1593.0276.1655.0092.9718.0737 1.1803.0952.1103.0122.1593.0307.1593.0614 0 .0521.037.0549.083.0089.0245-.0245.1442-.021.4354.0066.3557.0337.4017.0425.4017.0946 0 .0368.0213.0556.0704.0586.0368 0 .1656.0121.2821.0244.1196.0123.2329.0181.2513.009.0214-.0062.0891-.0979.1504-.2021.1196-.1993.2208-.3253.2607-.3253.0153 0 .018.0219.0089.0464-.0123.0245-.003.046.0154.046.0215 0 .0338.0244.0277.052-.0061.0367.0213.0582.0919.0735.1134.0246.1657.0582.089.0582-.0276 0-.0525.0183-.0525.0398 0 .0215.1812.0984.4448.1842.2821.095.4444.1623.4444.1899 0 .0306-.095.0092-.3586-.0797-.6254-.2146-.898-.2606-.898-.1533 0 .046.0488.0676.285.1228.1532.0368.3002.0642.3248.0642.0214 0 .0798.0338.1289.0736.049.043.294.144.5638.233.273.092.5153.19.5644.233.049.0398.1349.0952.1931.1166.1932.0828.4693.3309.6778.6099.3005.4047.2973.3895.1317.3895-.0766 0-.2946-.0214-.4847-.046-.19-.0245-.429-.0461-.53-.0492-.2147-.0061-1.9684.0278-2.6245.0493l-.4449.0154-.0703-.1504c-.0398-.0828-.1533-.2298-.2545-.331-.1747-.1717-.1837-.175-.2236-.1167-.0245.0337-.1168.1626-.2057.2822l-.1622.2236-.1992.0065c-.1104 0-.2242.0031-.2517 0-.0675-.006-.0703.0305-.009.144l.0427.0857-.3126.0216c-.8524.0582-2.661.282-3.268.4078-.135.0276-.4203.049-.6778.052-.46.0061-.5028.0184-.794.187-.0522.0276-.0922.0339-.129.0155-.0337-.0215-.0643-.0154-.0858.0122-.0337.0398-.144.058-.9534.1439-.1778.0184-.475.0584-.665.089-.3312.0552-.3499.0552-.5246 0-.184-.0582-.7572-.135-1.2478-.1687l-.276-.0216-.1622.1472c-.092.0797-.218.2177-.2855.3066-.092.1257-.141.166-.1992.166-.1257 0-1.2448.1743-2.0573.3215-.8768.1594-1.2077.1904-1.4652.1382-.2668-.0551-.2701-.0583-.2578-.3956.0122-.2851.0093-.2941-.0643-.3309-.1686-.0858-.331-.0371-.5517.1622-.052.046-.1133.0675-.1992.0675-.0705-.003-.1993.0306-.3004.0797l-.181.083.009.1593c.006.0858-.0032.1868-.0216.2175-.0245.0368-.0306.1994-.0183.4692.0123.328.003.4476-.0398.607l-.052.1964.1471.2086c.2943.4139.503.7294.503.763 0 .0185.0916.1169.208.218.506.4446.7207.5642 1.2174.6685.5273.1134.6131.1072.9412-.0675.1502-.0828.3251-.1965.3895-.2578.0797-.0736.3067-.1931.742-.3863.6776-.3004.7631-.3342.7631-.2943 0 .0122.043.426.0952.9135.1073 1.024.1411 2.0052.0951 2.7595-.0368.5917-.0644.6743-.4814 1.4591-.6469 1.2172-1.4224 2.3947-2.008 3.0477-.1043.1196-.2636.325-.3525.4599-.1686.2544-.4815.595-.871.9445-.1317.1195-.2177.2206-.2085.2451.0092.0245.1046.0734.2119.1102.1042.0398.2052.083.2236.0984.049.049.1101.0303.337-.0924l.2207-.1223.0891.0614c.1073.0705.3006.0763.4631.015.0644-.0245.1932-.052.2883-.0581.19-.0184.3126-.0703.5118-.2236.0736-.0552.1687-.1073.2147-.1195.089-.0184.8585-.7976 1.2694-1.2881.1287-.1502.4506-.4905.7204-.7542.3771-.374.5457-.5148.7603-.6436.3096-.184.5548-.4076.5854-.5395.0123-.046.052-.1413.0919-.2118.095-.1625.2024-.5792.1748-.6835-.0092-.0429-.0552-.147-.1012-.233-.0797-.141-.0855-.1901-.1008-.5826-.0276-.6898-.138-1.0515-.4875-1.5941-.2023-.3127-.2516-.4231-.3773-.8278-.2085-.696-.2697-1.3493-.1655-1.8613.049-.2545.0735-.2883.279-.4078.1072-.0644.2484-.1656.3159-.227l.1256-.1162.5948-.0675c.328-.0398.6958-.0889.8123-.1134.1196-.0245.3831-.0797.5855-.1195.2054-.043.497-.1164.6473-.1655.1502-.0521.3616-.1137.472-.1383.2146-.049.9472-.1192.9717-.0946.0092.0092.0185.4476.0155.975 0 .8277-.0092 1.0515-.0797 1.6616-.1196 1.0455-.1442 1.3732-.1749 2.526-.0276 1.1466-.0365 1.1986-.2236 1.3335-.1349.0981-.2728.0802-.6806-.1007-.2023-.089-.6286-.264-.9505-.3928-.3189-.1288-.7727-.3277-1.0027-.4411-.233-.1165-.4232-.2028-.4232-.1936 0 .0092.1165.1595.2606.3342.144.1748.2606.325.2606.3342 0 .0092-.0274.0188-.0642.0188-.0552 0-.0584.006-.0155.0642.0276.0398.0369.101.0277.1654-.0123.0828-.0032.1106.058.1505.04.0276.1046.1041.1445.1716.0368.0643.1012.147.141.1776.04.0307.098.1044.1318.1627.0306.0582.1348.1654.233.239.098.0736.193.1687.2113.2086.0184.046.1077.1133.2119.1655.2422.1226.5975.4353.6557.5732.0338.0859.1015.1534.2977.2822.1564.1042.4321.3433.7387.6469.558.5518.5887.5703 1.0425.5427.2943-.0214.4416-.0768.6164-.2362.0705-.0644.1563-.1316.187-.15.0306-.0184.1072-.1072.1655-.1992.0582-.095.147-.1932.193-.2208.1288-.0766.3587-.402.3587-.5062 0-.1533.0582-.251.2606-.441.1778-.1656.2149-.2213.3253-.4941.1717-.417.2326-.6864.2878-1.223.0674-.6622.0616-1.4623-.015-1.962-.1257-.8156-.604-3.0876-.7481-3.5414-.1196-.377-.233-.8676-.233-1.0087 0-.0337.064-.0369.3155-.0215.23.0153.4108.0094.6745-.0305.3127-.046.4202-.049.7514-.0183.2115.0184.3923.0396.3984.0488.0245.0214.4968 1.5575.5765 1.8702.1656.6408.1688.687.2025 2.2996.0153.8431.0304 1.8426.0366 2.2228.0061.6407.0124.7111.089.9932.0981.3587.2054.5919.4261.9108.089.1257.2238.3464.3005.4874.1533.2852.3527.521.6103.7172.3372.2606.6652.4724.8676.5644.2422.1103.4382.2849.6314.5577.0797.1104.1932.2609.2545.3375.0613.0767.1378.1932.1716.2607.0582.1226.0766.1348.4078.233.1532.0459.5762.0548.8123.015.1318-.0216.1812-.052.3928-.2574.285-.276.42-.469.42-.607 0-.2146.0303-.279.156-.3281.0798-.0307.1196-.0673.1196-.1041 0-.1932-.2023-.9723-.3066-1.1747-.0674-.1349-.9471-1.324-1.686-2.2836-.7849-1.0148-1.061-1.4567-1.2234-1.935-.0521-.1624-.2481-1.2754-.3708-2.143-.0889-.6224-.2608-1.2386-.5306-1.9223-.092-.233-.1564-.4228-.141-.4228.0735 0 1.6526.4415 1.7445.4875.0583.0307.2974.159.5274.2878.23.1318.4537.2363.4935.2363.046 0 .239.1073.466.2606l.3895.2606.2025-.0155c.2912-.0276.346-.0398.4687-.1256.1748-.1196.2792-.138.4172-.0736.2667.1257.4507.1472.2883.0338-.2422-.1687-.2667-.2516-.1257-.4632.1687-.2575.1867-.2757.3614-.3646.279-.141.2976-.1745.3895-.6774.043-.2452.1011-.4848.1257-.5338.0705-.1472.0553-.2419-.0642-.3553-.0614-.0583-.1627-.1904-.2302-.2916-.095-.1472-.1223-.2175-.1223-.3248 0-.1196-.0124-.144-.1013-.1992a1.3114 1.3114 0 0 0-.218-.1074c-.1318-.046-.3369-.2635-.3093-.3248a2.3155 2.3155 0 0 0 .0337-.083c.0246-.0613-.2239-.1962-.4692-.2545-.2452-.0582-.2421-.0583-.1992-.1073.0215-.0276.0212-.1227.0028-.3005-.092-.84-.4321-1.4285-.9993-1.7259-.1226-.0644-.2299-.1288-.239-.1471-.0583-.089-.7818-.365-1.1803-.4477-.1257-.0245-.3744-.0857-.5522-.1378-.1778-.049-.4504-.1016-.6098-.12-.4568-.043-1.073-.147-1.2754-.2114-.1012-.0307-.3403-.0858-.5335-.1195-.1931-.0368-.3587-.0766-.368-.0919-.0122-.0184-.0858-.0156-.187.0028-.1164.0215-.2912.0217-.5671-.0028-.2177-.0215-.7573-.034-1.1957-.031-.6745.0031-.8585-.0057-1.2019-.0609-.2207-.0368-.518-.0646-.659-.0646-.3373-.0031-1.331-.1042-1.1531-.1196.0276 0 .1195-.0181.2053-.0365.141-.0307.1504-.0372.1228-.0985-.0306-.0644-.0458-.0673-.478-.0642-.368 0-.4539.0094-.4815.0492-.0306.0399-.0615.0428-.1964.0183-.144-.0306-.1533-.0368-.1073-.0736.049-.0368.0492-.046.0094-.0736-.0246-.0153-.0676-.031-.0952-.031-.0399 0-1.9562-.19-2.7533-.2727-.1564-.0184-.2941-.0365-.3033-.0488-.0092-.0092.0061-.0154.0337-.0154.0307 0 .052-.0124.052-.0277 0-.046-.156-.058-.3707-.0244-.1502.0215-.2303.0213-.2794-.0032-.0582-.0246-.0395-.0273.0924-.015.2912.0306.1683-.0401-.1383-.077-.1656-.0214-.3372-.043-.3801-.0491a.486.486 0 0 1-.1379-.046c-.0306-.0184-.3679-.0763-.748-.1284-.3802-.0521-.8065-.1291-.9506-.172-.4967-.141-.9532-.371-1.2169-.607l-.1382-.1224.0492-.1167c.1011-.2422.2299-.3832.4598-.4936.3158-.1533.46-.178 1.0762-.1964.561-.0122.693-.0365.6286-.1101-.0307-.043-.472-.1106-.6928-.1106-.138 0-.4815-.0674-.7973-.1594a1.2257 1.2257 0 0 0-.4003-.0488zm8.8497 2.9503a.3051.3051 0 0 0-.0675.0051c-.181.0307-.285.0734-.3769.15l-.0919.0736.1472.0033c.1564 0 .239-.0306.3525-.1317.0713-.0644.0838-.0963.0366-.1003zm5.7762.951c.0383-.0023.0814.0089.1626.0319.092.0276.193.0401.2236.031.0307-.0093.0674-.0033.0797.0182.0153.0276-.0305.0308-.1838.0155-.1349-.0154-.2025-.0126-.2025.0089 0 .0184.0368.04.0858.0492.2238.049.2607.0737.0675.0553-.1103-.0123-.276-.0213-.368-.0244-.1594 0-.1684.003-.1776.0797-.0092.0705-.0307.0856-.181.1163-.2053.0398-.1775.0428-.3308-.0277-.138-.0674-.4418-.141-.819-.1992-.141-.0215-.2112-.0396-.1621-.0427.0521 0 .3342.0307.6286.0736.5457.0767.6988.0919.6651.0582-.0092-.0092-.2483-.0644-.5334-.1196l-.5151-.1012.3004-.0033c.2637-.003.3098.0064.3895.0647.0675.049.1011.0583.1256.0337.0215-.0214.1133-.028.2574-.0187.1931.0153.2452.0095.3525-.0488.0628-.0322.0966-.0483.135-.0506zm-4.3466.5128c.0152-.0005.0284.0022.036.0099.0124.0092.0002.0306-.0243.0459-.0582.0368-.0828.037-.1073.0033-.0138-.0253.0499-.0575.0956-.059zm4.9869.09c.0057-.002.0158.0105.0342.0366.0214.0276.0673.052.098.052.049 0 .0524.006.0126.0305-.0245.0153-.0522.0276-.0614.0276-.0613-.0061-.0919-.0428-.0919-.098.0015-.0306.0027-.0468.0085-.0487zm-3.9515.1805c-.0613 0-.104.052-.104.1256 0 .0153.0702.0276.156.0276.1472 0 .1536-.003.1168-.052-.0613-.0797-.0983-.1012-.1688-.1012zm6.1901 1.8304c.0215-.0092.0738.012.1167.0426.0675.0521.0674.0584.0122.0553-.0858 0-.184-.0765-.1289-.098Z\"},\"child\":[]}]})(props);\n};\nexport function SiShopee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.9414 17.9633c.229-1.879-.981-3.077-4.1758-4.0969-1.548-.528-2.277-1.22-2.26-2.1719.065-1.056 1.048-1.825 2.352-1.85a5.2898 5.2898 0 0 1 2.8838.89c.116.072.197.06.263-.039.09-.145.315-.494.39-.62.051-.081.061-.187-.068-.281-.185-.1369-.704-.4149-.983-.5319a6.4697 6.4697 0 0 0-2.5118-.514c-1.909.008-3.4129 1.215-3.5389 2.826-.082 1.1629.494 2.1078 1.73 2.8278.262.152 1.6799.716 2.2438.892 1.774.552 2.695 1.5419 2.478 2.6969-.197 1.047-1.299 1.7239-2.818 1.7439-1.2039-.046-2.2878-.537-3.1278-1.19l-.141-.11c-.104-.08-.218-.075-.287.03-.05.077-.376.547-.458.67-.077.108-.035.168.045.234.35.293.817.613 1.134.775a6.7097 6.7097 0 0 0 2.8289.727 4.9048 4.9048 0 0 0 2.0759-.354c1.095-.465 1.8029-1.394 1.9449-2.554zM11.9986 1.4009c-2.068 0-3.7539 1.95-3.8329 4.3899h7.6657c-.08-2.44-1.765-4.3899-3.8328-4.3899zm7.8516 22.5981-.08.001-15.7843-.002c-1.074-.04-1.863-.91-1.971-1.991l-.01-.195L1.298 6.2858a.459.459 0 0 1 .45-.494h4.9748C6.8448 2.568 9.1607 0 11.9996 0c2.8388 0 5.1537 2.5689 5.2757 5.7898h4.9678a.459.459 0 0 1 .458.483l-.773 15.5883-.007.131c-.094 1.094-.979 1.9769-2.0709 2.0059z\"},\"child\":[]}]})(props);\n};\nexport function SiShopify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.337 23.979l7.216-1.561s-2.604-17.613-2.625-17.73c-.018-.116-.114-.192-.211-.192s-1.929-.136-1.929-.136-1.275-1.274-1.439-1.411c-.045-.037-.075-.057-.121-.074l-.914 21.104h.023zM11.71 11.305s-.81-.424-1.774-.424c-1.447 0-1.504.906-1.504 1.141 0 1.232 3.24 1.715 3.24 4.629 0 2.295-1.44 3.76-3.406 3.76-2.354 0-3.54-1.465-3.54-1.465l.646-2.086s1.245 1.066 2.28 1.066c.675 0 .975-.545.975-.932 0-1.619-2.654-1.694-2.654-4.359-.034-2.237 1.571-4.416 4.827-4.416 1.257 0 1.875.361 1.875.361l-.945 2.715-.02.01zM11.17.83c.136 0 .271.038.405.135-.984.465-2.064 1.639-2.508 3.992-.656.213-1.293.405-1.889.578C7.697 3.75 8.951.84 11.17.84V.83zm1.235 2.949v.135c-.754.232-1.583.484-2.394.736.466-1.777 1.333-2.645 2.085-2.971.193.501.309 1.176.309 2.1zm.539-2.234c.694.074 1.141.867 1.429 1.755-.349.114-.735.231-1.158.366v-.252c0-.752-.096-1.371-.271-1.871v.002zm2.992 1.289c-.02 0-.06.021-.078.021s-.289.075-.714.21c-.423-1.233-1.176-2.37-2.508-2.37h-.115C12.135.209 11.669 0 11.265 0 8.159 0 6.675 3.877 6.21 5.846c-1.194.365-2.063.636-2.16.674-.675.213-.694.232-.772.87-.075.462-1.83 14.063-1.83 14.063L15.009 24l.927-21.166z\"},\"child\":[]}]})(props);\n};\nexport function SiShopware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9477 10.8913a.1735.1735 0 00-.061-.1178c-2.5032-2.078-4.5288-2.9261-6.9905-2.9261-1.3127 0-2.32.2638-2.9916.7827-.5822.4492-.8896 1.0772-.8896 1.812 0 2.0605 2.5184 3.0003 5.4358 4.0883 1.5023.5604 3.057 1.1404 4.483 1.9319a.1626.1626 0 00.0828.0218.187.187 0 00.0589-.011c.0458-.0174.085-.0523.1025-.1002.545-1.3955.822-2.8673.822-4.374a13.082 13.082 0 00-.0523-1.1076zm-4.81 10.4791c-1.0423-.785-2.5795-1.3824-4.2061-2.0125-1.9362-.7501-4.132-1.6027-5.7803-2.913-1.8665-1.4871-2.7757-3.3623-2.7757-5.7324 0-2.1281.883-3.9466 2.5533-5.2614 1.873-1.474 4.7119-2.2546 8.2071-2.2546.966 0 1.8883.0589 2.743.1766a.1696.1696 0 00.1788-.098.17.17 0 00-.0414-.2007C17.814 1.0924 14.9664.0022 12.001.0022c-3.2052 0-6.2186 1.2472-8.4862 3.5148C1.2494 5.7825 0 8.796 0 11.999c0 3.2051 1.2472 6.2185 3.5149 8.484 2.2654 2.2654 5.2788 3.5148 8.4862 3.5148 2.5903 0 5.0564-.8133 7.1344-2.3505a.1714.1714 0 00.0697-.1374.1735.1735 0 00-.0676-.1395Z\"},\"child\":[]}]})(props);\n};\nexport function SiShortcut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 6a6 6 0 0 0-6-6H6a5.975 5.975 0 0 0-4.242 1.758 5.998 5.998 0 0 0 0 8.484l2.137 2.137A6.007 6.007 0 0 0 0 18a6 6 0 0 0 6 6h12a5.975 5.975 0 0 0 4.242-1.758 5.998 5.998 0 0 0 0-8.484l-2.137-2.137A6.002 6.002 0 0 0 24 6zM3.404 20.598c-.694-.694-1.075-1.615-1.075-2.596s.38-1.903 1.075-2.595a3.65 3.65 0 0 1 2.443-1.074l7.34 7.34H6a3.664 3.664 0 0 1-2.596-1.075zm17.192-5.194C21.29 16.1 21.67 17.02 21.67 18s-.38 1.904-1.075 2.596A3.644 3.644 0 0 1 18 21.67a3.64 3.64 0 0 1-2.596-1.075l-12-11.998C2.71 7.904 2.33 6.983 2.33 6.002s.38-1.903 1.075-2.595C4.1 2.712 5.02 2.33 6 2.33s1.904.381 2.596 1.076l12 11.997zm0-6.806a3.65 3.65 0 0 1-2.443 1.073l-7.34-7.342H18a3.64 3.64 0 0 1 2.596 1.075C21.29 4.1 21.67 5.02 21.67 6s-.38 1.904-1.075 2.598z\"},\"child\":[]}]})(props);\n};\nexport function SiShowpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.9872c0-.0894 0-.1787-.0128-.2808v-.0383c0-.0766-.0127-.1532-.0127-.2426v-.0128c-.2681-2.5787-2.3107-4.6085-4.8766-4.8766h-.0128c-.0766-.0128-.1532-.0128-.2426-.0128h-.0383c-.0893 0-.1787-.0128-.2808-.0128-1.4553 0-2.8468.5745-3.868 1.6086l-1.864 1.851 1.3533 1.3532 1.3404-1.3532h-.0128l.5107-.5105c.6638-.6766 1.583-1.0468 2.5276-1.0468h.2043c.051 0 .1021 0 .1532.0128h.0128c1.685.1787 3.0127 1.5063 3.1787 3.1787v.0128c0 .051.0128.1021.0128.1532v.4084c0 .0511-.0128.1022-.0128.1532-.1277 1.2255-.8809 2.2979-1.9787 2.834l-.0383.0129a.3813.3813 0 0 0-.1022.051l-.0766.0256-.0638.0255-.1149.0383-.0255.0128c-1.2894.4468-2.7192.1148-3.6894-.8554l-.4979-.4979-3.3702-3.3574-5.3617-5.3617-1.3532 1.3532L0 12l1.3532 1.3532 5.3872 5.3872 1.3532-1.3532 3.3702-3.3702-1.3532-1.3532-3.3702 3.3702L2.6936 12l4.0468-4.0468 2.017 2.0298 5.3873 5.3872.4979.4979c1.0212 1.034 2.4255 1.6085 3.8808 1.5957.6128 0 1.2128-.102 1.7872-.2936l.0511-.0128c.051-.0255.1149-.0383.166-.0638l.102-.0383.1022-.051.1532-.0767.051-.0255c1.698-.8298 2.8469-2.4766 3.0511-4.3532.0128-.0766.0128-.166.0128-.2425v-.3192z\"},\"child\":[]}]})(props);\n};\nexport function SiShowtime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.99 12.167c0-4.808 1.779-7.84 3.903-8.16C18.769 1.397 15.221 0 11.999 0 8.451 0 5.265 1.54 3.07 3.985c2.094.416 2.806 2.174 2.806 4.892H3.314c0-1.605-.334-2.436-1.284-2.436-.427 0-.758.217-.954.587-.027.06-.057.122-.084.184a2.115 2.115 0 0 0-.114.71c0 3.324 5.46 3.159 5.46 8.27 0 1.995-1.53 3.855-3.252 3.855C5.35 22.52 8.441 24 12 24c3.46 0 6.577-1.464 8.766-3.808-2.018-.509-3.776-3.413-3.776-8.025zm-1.142 7.921h-2.746V13.26h-2.967v6.83H7.384V4.327h2.746v6.348h2.972V4.327h2.746v15.761zM2.372 17.58c-1.32 0-2.399-2.32-2.372-5.8 1.905 1.72 3.681 2.11 3.681 4.145 0 .981-.543 1.655-1.309 1.655zM24 12.002c0 2.844-.896 5.409-2.1 5.409-1.445 0-2.181-2.703-2.181-5.498 0-2.654.771-5.308 2.181-5.308 1.676 0 2.1 4.102 2.1 5.397z\"},\"child\":[]}]})(props);\n};\nexport function SiShowwcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.554 2.938c.56-.103 1.126-.177 1.695-.22.128-.01.218-.031.273-.121.094-.153.26-.211.492-.228.624-.047 1.243-.05 1.869-.007.301.02.503.097.618.295.046.078.124.107.242.116.245.017.49.043.733.076.316.042.629.096.957.15a2.057 2.057 0 0 0-.244-.512c-.379-.605-.986-1.018-1.89-1.185-.679-.126-1.366-.114-2.054-.075-.43.025-.842.11-1.226.259-.8.307-1.193.831-1.466 1.452Zm-8.079.553c.272.103.527.245.757.423.503.385.849.843 1.17 1.313.356.522.637 1.067.901 1.62.053-.033.057-.07.068-.108.135-.437.293-.869.496-1.292.36-.75.841-1.444 1.718-1.953.088-.051.08-.087.015-.147a5.395 5.395 0 0 0-.927-.706 1.786 1.786 0 0 0-.955-.24c-.793.013-1.515.2-2.199.475-.394.158-.76.343-1.044.615Zm7.245-.165c-1.072.24-1.899.706-2.473 1.406-.458.557-.708 1.173-.936 1.793a15.233 15.233 0 0 0-.55 1.969 52.617 52.617 0 0 0-.589 3.215c-.122.783-.235 1.568-.34 2.354-.15 1.115-.285 2.23-.295 3.352-.01.985.021 1.966.44 2.916.274.623.746 1.135 1.54 1.477.823.353 1.724.544 2.647.688 1.366.213 2.755.283 4.148.3 1.498.016 2.994-.01 4.48-.167 1.09-.115 2.157-.29 3.168-.62.92-.3 1.59-.768 1.955-1.463.362-.69.486-1.408.528-2.136.095-1.644-.124-3.277-.354-4.91a83.408 83.408 0 0 0-.573-3.588c-.135-.73-.28-1.459-.468-2.182-.22-.84-.48-1.672-.931-2.466-.55-.967-1.473-1.65-2.876-1.944-3.4-.71-7.039-.326-8.521.006Zm14.169 9.746c0 .095.005.19.038.283l.111.766c-.016.048-.008.094.024.156.026-.064.083-.1.065-.155l.336-1.198c.023-.045.045-.089.033-.137.065-.11.08-.228.12-.342.244-.69.41-1.392.566-2.095.173-.773.321-1.55.512-2.32.236-.948.341-1.901.296-2.862-.017-.356-.04-.714-.172-1.083-.11.062-.206.108-.29.165-.386.26-.66.582-.906.915-.699.95-1.153 1.967-1.577 2.993-.021.052-.009.102.003.154.22.93.38 1.867.53 2.804.105.652.207 1.304.31 1.956zM.067 4.334c-.07.204-.066.412-.067.62-.002.941.139 1.874.308 2.807.147.81.352 1.613.551 2.417.191.78.391 1.558.6 2.335.2.739.272 1.487.348 2.236.005.054-.007.113.045.168.01-.016.023-.027.025-.039.136-1.097.292-2.191.469-3.282.172-1.064.337-2.129.58-3.186.032-.138.07-.272 0-.417-.141-.284-.247-.576-.382-.861-.357-.754-.737-1.502-1.306-2.189-.23-.278-.47-.555-.84-.754-.083-.052-.174-.145-.274-.112-.084.027-.053.141-.07.217-.002.013.008.027.013.04zm22.248-1.497a7.182 7.182 0 0 0-2.429-.4 1.25 1.25 0 0 0-.673.197c-.343.22-.58.494-.784.787-.042.06.003.084.056.116.233.139.45.303.646.49.676.643 1.022 1.392 1.307 2.16.087.234.164.47.256.734.28-.574.55-1.12.903-1.64.43-.632.893-1.249 1.699-1.682.063-.033.13-.056.195-.085.084-.022.033-.044 0-.066-.016-.048-.06-.082-.111-.112a.425.425 0 0 0-.19-.131 2.437 2.437 0 0 0-.596-.28c-.09-.035-.171-.083-.28-.088z\"},\"child\":[]}]})(props);\n};\nexport function SiShutterstock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.839 18.761h5.313a1.53 1.53 0 0 0 1.527-1.528v-5.76h5.237v5.76A6.767 6.767 0 0 1 15.152 24H9.839v-5.239M14.16 5.237H8.85a1.53 1.53 0 0 0-1.53 1.527v5.761H2.085V6.764A6.763 6.763 0 0 1 8.85 0h5.31v5.237Z\"},\"child\":[]}]})(props);\n};\nexport function SiSidekiq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.639 23.767C4.145 22.67 0 17.815 0 12 0 5.377 5.377 0 12 0c4.47 0 8.373 2.449 10.437 6.078-.159.124-.425.289-.625.467-.183.162-.566.362-1.149.598-.366-.328-.607-.465-.722-.411-.174.081-1.435.742-2.023.919s-2.621 1.601-3.156 1.734c-.534.132-.984.284-1.218.461-.234.176-.526.105-.857.14-.167.018-.435.303-.924.434-.062.06-.114.163-.156.308-.328.957-.564 1.586-.711 1.887-.146.3-.407.711-.784 1.232.312.356.467.6.467.733 0 .2-.034 1.332-.143 1.863-.072.353-.145 2.126-.22 5.317 0 .554-.055.896-.166 1.028-.167.197-.361.727-.361.871 0 .026-.019.064-.05.108M22.747 6.659C23.549 8.268 24 10.082 24 12c0 6.623-5.377 12-12 12-.53 0-1.052-.034-1.564-.101.26-.328.445-.295.597-.434.151-.139.425-.514.288-.677-.092-.109-.137-.347-.137-.713.207-.122.365-.184.472-.184.161 0 .03-.574.239-1.178.14-.402.471-2.497.996-6.286.321-.946.539-1.465.653-1.556s.568-.477 1.363-1.156c1.262-.781 1.966-1.235 2.111-1.361.219-.19 2.354-.798 2.646-1.185.195-.258.608-.556 1.241-.895v-.241c.398-.137.66-.205.783-.205.186 0 .435.113.567-.177.133-.291.046-.615.231-.767.075-.061.169-.141.261-.225M9.253 13.361c-.02.045-.029.074-.026.081-.047.233-.019.481 0 .615.104.721-.598.905-.598.905l.37.319c.744-.136.744-1.083.744-1.083-.035-.131-.07-.56-.052-.678.002.001.436-.513.81-1.309.192-.409.374-.921.498-1.258.12-.326.143-.536.125-.595 0 .02-.219-.072-.428-.129 0-.004.001-.007.001-.011l-.376-.345c.899-.346 1.41-.598 1.533-.757.184-.238.516-.958.516-1.231 0-.181.027-.812.08-1.891-.526.066-.832.066-.92 0-.132-.099-.256-.493-.256-.826 0-.221-.068-.52-.205-.896l-.372-.103c-.056-.276-.115-.415-.178-.415q-.093 0-.198.198c-.079.303-.118.492-.118.566 0 .11-.08.424.118.65.132.151.288.427.466.826-.111.409-.111.669 0 .781.167.167 0 .388 0 .516q0 .1275-.09.594c-1.023.177-1.608.236-1.757.177s-.384.005-.706.193l-.409.392c.07-.302.07-.525 0-.666-.106-.213-.165-.347-.165-.54 0-.08-.111-.264-.111-.397 0-.054.015-.144.045-.269l-.291-.276c.068-.003.107-.023.115-.058q.0135-.0525-.189-.141c-.956.048-1.579.237-1.87.568-.291.33-.313.792-.067 1.387.172.283.32.491.446.623.126.131.319.272.58.422l-.343.195-.237.723-.576 1.053-.959 2.359-.185.564c.124.733.234 1.142.329 1.226.094.084.267.118.519.103.253.282.417.382.493.302.03-.032.078-.079.056-.234-.01-.07-.107-.205-.099-.296.007-.087.089-.185.116-.373.011-.081.011-.238 0-.469l1.519-1.556.874.185 1.154.205z\"},\"child\":[]}]})(props);\n};\nexport function SiSidequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.409 18.689 1.21H8.065l2.518 4.359.769 1.331-.918 1.592H8.598l-.769-1.333-2.517-4.36L0 11.999l5.311 9.199 2.518-4.36.769-1.333h1.836l.919 1.593-.77 1.332-2.517 4.359H18.69L24 13.59h-6.571l-.919-1.591.919-1.59H24ZM5.288 5.328 6.27 7.03 4.763 9.64h6.334l3.169-5.486h-3.015l-.983-1.702h7.046l-5.183 8.977H1.763l3.525-6.101Zm4.98 16.219.983-1.703h3.015l-3.169-5.488H4.763l1.507 2.611-.982 1.704-3.525-6.104h10.368l1.364 2.363 3.819 6.617h-7.046Zm8.084-4.062 1.505-2.61h1.969l-3.525 6.102-3.109-5.382-2.077-3.596 2.459-4.257 2.727-4.72 3.525 6.102h-1.969l-1.505-2.611-3.17 5.486 3.17 5.486Z\"},\"child\":[]}]})(props);\n};\nexport function SiSiemens (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.478 10.016c.24 0 .59.046 1.046.14v.726a2.465 2.465 0 0 0-.946-.213c-.41 0-.615.118-.615.354 0 .088.041.16.124.216.069.045.258.14.568.286.446.208.743.388.89.541.176.182.264.417.264.705 0 .415-.172.73-.516.949-.279.176-.64.264-1.085.264-.375 0-.753-.046-1.133-.139v-.755c.41.135.774.203 1.09.203.437 0 .655-.121.655-.362a.302.302 0 0 0-.095-.227c-.065-.065-.232-.155-.5-.27-.481-.208-.795-.384-.94-.53a.999.999 0 0 1-.284-.73c0-.377.137-.666.413-.864.272-.196.626-.294 1.064-.294zm21.19 0c.246 0 .565.04.956.123l.09.016v.727a2.471 2.471 0 0 0-.948-.213c-.409 0-.612.118-.612.354 0 .088.04.16.123.216.066.043.256.139.57.286.443.208.74.388.889.541.176.182.264.417.264.705 0 .415-.172.73-.514.949-.28.176-.643.264-1.087.264-.376 0-.754-.046-1.134-.139v-.755c.407.135.77.203 1.09.203.437 0 .655-.121.655-.362 0-.09-.03-.166-.092-.227-.066-.065-.233-.155-.503-.27-.48-.206-.793-.382-.94-.53a.997.997 0 0 1-.284-.732c0-.376.137-.664.413-.862.272-.196.627-.294 1.064-.294zm-12.674.066l.92 2.444.942-2.444h1.257v3.825h-.968v-2.708l-1.072 2.747h-.632l-1.052-2.747v2.708H8.67v-3.825zm-5.587 0v3.825H3.386v-3.825zm3.554 0v.692H6.327v.864H7.75v.63H6.327v.908h1.677v.73h-2.66v-3.824zm8.707 0v.692h-1.634v.864h1.422v.63h-1.422v.908h1.677v.73H14.05v-3.824zm1.898 0l1.255 2.56v-2.56h.719v3.825h-1.15l-1.288-2.595v2.595h-.72v-3.825z\"},\"child\":[]}]})(props);\n};\nexport function SiSifive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.9056 12.4076 6.0245 2.737h11.9511l1.2129 3.7623H8.6317l-.6751 2.1342h11.92l1.792 5.5583L12 21.319l-9.1888-6.7771h6.2049l2.9565 2.1805 5.8505-4.3125-14.9175-.0023zM19.4166.4426H4.5835L0 14.7306l12 8.8268 12-8.8298L19.4165.4427z\"},\"child\":[]}]})(props);\n};\nexport function SiSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0q-.934 0-1.83.139l.17 1.111a11 11 0 0 1 3.32 0l.172-1.111A12 12 0 0 0 12 0M9.152.34A12 12 0 0 0 5.77 1.742l.584.961a10.8 10.8 0 0 1 3.066-1.27zm5.696 0-.268 1.094a10.8 10.8 0 0 1 3.066 1.27l.584-.962A12 12 0 0 0 14.848.34M12 2.25a9.75 9.75 0 0 0-8.539 14.459c.074.134.1.292.064.441l-1.013 4.338 4.338-1.013a.62.62 0 0 1 .441.064A9.7 9.7 0 0 0 12 21.75c5.385 0 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25m-7.092.068a12 12 0 0 0-2.59 2.59l.909.664a11 11 0 0 1 2.345-2.345zm14.184 0-.664.909a11 11 0 0 1 2.345 2.345l.909-.664a12 12 0 0 0-2.59-2.59M1.742 5.77A12 12 0 0 0 .34 9.152l1.094.268a10.8 10.8 0 0 1 1.269-3.066zm20.516 0-.961.584a10.8 10.8 0 0 1 1.27 3.066l1.093-.268a12 12 0 0 0-1.402-3.383M.138 10.168A12 12 0 0 0 0 12q0 .934.139 1.83l1.111-.17A11 11 0 0 1 1.125 12q0-.848.125-1.66zm23.723.002-1.111.17q.125.812.125 1.66c0 .848-.042 1.12-.125 1.66l1.111.172a12.1 12.1 0 0 0 0-3.662M1.434 14.58l-1.094.268a12 12 0 0 0 .96 2.591l-.265 1.14 1.096.255.36-1.539-.188-.365a10.8 10.8 0 0 1-.87-2.35m21.133 0a10.8 10.8 0 0 1-1.27 3.067l.962.584a12 12 0 0 0 1.402-3.383zm-1.793 3.848a11 11 0 0 1-2.345 2.345l.664.909a12 12 0 0 0 2.59-2.59zm-19.959 1.1L.357 21.48a1.8 1.8 0 0 0 2.162 2.161l1.954-.455-.256-1.095-1.953.455a.675.675 0 0 1-.81-.81l.454-1.954zm16.832 1.769a10.8 10.8 0 0 1-3.066 1.27l.268 1.093a12 12 0 0 0 3.382-1.402zm-10.94.213-1.54.36.256 1.095 1.139-.266c.814.415 1.683.74 2.591.961l.268-1.094a10.8 10.8 0 0 1-2.35-.869zm3.634 1.24-.172 1.111a12.1 12.1 0 0 0 3.662 0l-.17-1.111q-.812.125-1.66.125a11 11 0 0 1-1.66-.125\"},\"child\":[]}]})(props);\n};\nexport function SiSilverairways (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.102 20.437v-2.675a1.339 1.339 0 0 0-.06-.357.216.216 0 0 1-.007-.03 6.631 6.631 0 0 1-.03-.934c.016-.117.05-.234.075-.35 0-.004.011-.008.011-.011 0-.053.018-.12-.008-.153-.025-.033-.09.01-.128.029-.15.069-.313.099-.464.164-.193.083-.398.132-.591.217a3.616 3.616 0 0 1-.406.143c-.128.04-.25.095-.376.138-.126.043-.241.087-.361.129-.174.06-.346.125-.528.17a.435.435 0 0 0-.207.143.048.048 0 0 0-.008.043c.09.143 0 .254-.07.362-.068.108-.166.195-.228.305-.061.11-.142.193-.207.294-.114.173-.255.327-.383.49-.05.062-.096.127-.144.19a.636.636 0 0 1-.105.12.162.162 0 0 1-.109.012c-.009 0-.016-.045-.018-.069-.013-.152.052-.286.112-.418.101-.218.208-.434.32-.648a1.455 1.455 0 0 0 .139-.41c.013-.074.018-.147.029-.22.02-.123.1-.196.207-.26.171-.099.36-.15.54-.223.138-.056.276-.107.415-.16.207-.08.41-.158.614-.24.142-.057.286-.112.429-.168.207-.083.423-.157.634-.235.105-.04.211-.079.315-.12.153-.059.307-.116.457-.18a.225.225 0 0 0 .143-.177c.021-.112.048-.214 0-.324a.35.35 0 0 1 0-.132v-3.506a.576.576 0 0 0-.11-.336 1.678 1.678 0 0 0-.188-.222c-.116-.12-.212-.255-.319-.382a1.048 1.048 0 0 0-.523-.337.65.65 0 0 0-.219-.034c-.077.005-.155 0-.233 0-.217 0-.432.057-.65.033-.054-.006-.093.076-.163.014-.032-.028-.104-.011-.158-.013a.76.76 0 0 1-.182-.003c-.148-.044-.3-.07-.445-.128a11.382 11.382 0 0 0-.65-.234c-.22-.072-.426-.127-.63-.207a1.67 1.67 0 0 1-.715-.512 2.168 2.168 0 0 1-.304-.539c-.049-.125-.063-.26-.121-.38a.08.08 0 0 1-.006-.032c0-.08.012-.161-.034-.235 0-.305-.006-.61.006-.914a1.115 1.115 0 0 1 .03-.185c.014-.062.02-.126.034-.185.033-.134.086-.263.13-.395a3.477 3.477 0 0 1 .233-.5 2.48 2.48 0 0 1 .315-.469c.108-.126.198-.27.32-.38.192-.171.372-.357.59-.5.074-.048.137-.12.206-.176.175-.138.33-.295.506-.429.117-.09.217-.197.325-.296a2.23 2.23 0 0 0 .184-.154 2.256 2.256 0 0 0 .31-.42c.046-.086.091-.174.139-.256.069-.11.083-.232.121-.345a.71.71 0 0 0-.1-.339 1.672 1.672 0 0 0-.247-.232.258.258 0 0 0-.306-.01c-.121.068-.258.068-.384.116-.035.013-.083-.008-.124-.015-.016 0-.03-.016-.044-.015-.15.012-.276-.056-.397-.125-.07-.04-.148-.07-.221-.108a1.212 1.212 0 0 0-.223-.06.572.572 0 0 0-.356.054 1.52 1.52 0 0 0-.507.34 11.48 11.48 0 0 1-.457.423.89.89 0 0 1-.183.117c-.102.053-.154.018-.171-.092a.71.71 0 0 1 .041-.267 2.671 2.671 0 0 1 .092-.31c.036-.102.07-.207.1-.307A1.696 1.696 0 0 1 5.65.952c.182-.268.457-.392.74-.494A2.104 2.104 0 0 1 6.789.37a1.624 1.624 0 0 0 .397-.08c.118-.05.243-.08.362-.129a1.48 1.48 0 0 1 .436-.126c.063-.005.119-.044.186-.033.249.04.49.088.692.262a3.27 3.27 0 0 1 .276.25 2.42 2.42 0 0 1 .48.716 2.125 2.125 0 0 1 .162.599 3.135 3.135 0 0 1 .025.402c0 .096-.025.19-.03.286a1.763 1.763 0 0 1-.06.257 3.041 3.041 0 0 1-.309.82 2.143 2.143 0 0 1-.328.48c-.04.042-.069.097-.107.138a2.786 2.786 0 0 1-.617.477 3.847 3.847 0 0 0-.602.386c-.115.095-.24.19-.309.335-.188.163-.267.395-.374.609a3.387 3.387 0 0 0-.187.537c-.046.15-.042.31-.098.458a.133.133 0 0 0 0 .033c-.007.079.01.158-.03.237a.183.183 0 0 0 0 .16c.054.07 0 .148.053.214s.07.155.123.213a.577.577 0 0 0 .341.172 1.856 1.856 0 0 0 .297 0c.004-.092.01-.184.013-.276a.928.928 0 0 1 0-.116c.01-.07-.02-.146.027-.222.034-.053-.025-.139.038-.2.013-.255.133-.475.24-.698a1.93 1.93 0 0 1 .187-.287 2.666 2.666 0 0 1 .175-.207c.15-.17.346-.287.527-.415.228-.156.484-.243.743-.333a1.634 1.634 0 0 1 .622-.1c.133.006.266-.004.4 0 .084.004.166-.02.254.026.065.036.161-.022.233.038.099-.023.19.025.284.038.095.013.184.04.277.055.113.02.224.048.336.074.15.036.3.069.45.118l.337.107a7.576 7.576 0 0 1 1.202.508c.228.117.465.244.691.383.227.14.437.262.643.415.144.106.29.207.436.31.121.084.23.184.357.261.07.04.12.104.185.153.114.083.208.188.318.276.392.324.725.708 1.089 1.06.047.045.108.068.144.137a1.056 1.056 0 0 1 .078.168 1.568 1.568 0 0 0 .29.512 7.377 7.377 0 0 1 .46.622c.076.11.099.247.144.372a1.114 1.114 0 0 1 .069.438c-.006.1.007.2 0 .299a1.297 1.297 0 0 1-.132.493.4.4 0 0 1-.036.07.05.05 0 0 1-.042.013c-.01 0-.018-.024-.02-.038-.021-.09-.045-.183-.06-.276a1.994 1.994 0 0 0-.124-.382 7.084 7.084 0 0 0-.276-.665c-.12-.248-.315-.286-.507-.267-.01 0-.03.036-.025.047.04.094.085.186.13.276a5.817 5.817 0 0 1 .322.814c.069.216.113.44.175.659.005.017-.008.04-.013.06-.018-.006-.044-.007-.055-.02-.035-.04-.064-.085-.095-.126-.005-.006-.016-.008-.024-.013 0 .01-.012.022-.01.029.057.159.003.328.039.484a2.923 2.923 0 0 1 .027.37c.008.084.026.167.032.252.006.084 0 .166 0 .249 0 .018.022.035.028.054a.077.077 0 0 1-.055.085c-.04.006-.032-.028-.045-.05a.54.54 0 0 1-.069-.207 3.097 3.097 0 0 0-.074-.334c-.027-.105-.062-.207-.089-.312a5.035 5.035 0 0 0-.186-.604 6.155 6.155 0 0 0-.211-.477 3.158 3.158 0 0 0-.227-.356 3.42 3.42 0 0 0-.331-.36.465.465 0 0 0-.06-.058.058.058 0 0 0-.081.043v.3a.169.169 0 0 1 0 .064c-.006.013-.04.026-.049.02a.178.178 0 0 1-.048-.062 1.113 1.113 0 0 1-.093-.177 1.452 1.452 0 0 0-.288-.477 2.309 2.309 0 0 0-.438-.419 1.74 1.74 0 0 1-.228-.165c-.1-.093-.226-.11-.34-.15a.333.333 0 0 0-.294.069c-.077.063-.15.045-.228.054a.228.228 0 0 1-.16-.059c-.17-.118-.254-.116-.474-.08-.256.042-.463.169-.67.308a1.257 1.257 0 0 1-.516.202c-.108.016-.215.01-.32.03-.155.03-.317.025-.47.07a1.076 1.076 0 0 0-.245.127.38.38 0 0 0-.12.097c-.115.166-.118.283-.004.45.062.09.128.18.2.265q.2.239.387.484c.108.138.233.268.338.41.104.143.22.271.322.415.102.144.235.276.346.422.163.202.322.408.483.613a3.72 3.72 0 0 0 .473.5.776.776 0 0 1 .208.213c.011.023.038.05.033.07a.18.18 0 0 1-.058.084.956.956 0 0 1-.277.132c-.276.1-.553.193-.83.288-.276.094-.547.173-.813.282-.265.11-.542.158-.793.293-.012.007-.033 0-.047 0a.167.167 0 0 0-.139.177.612.612 0 0 0 .027.222c.026.073.006.163.006.246 0 .228-.008.455 0 .682.005.1-.043.187-.038.285a.91.91 0 0 1 0 .298c-.044.146-.006.294-.031.436-.047.266-.026.534-.03.8-.004.267.025.546-.007.814-.04.335-.018.667-.026 1-.008.333.024.667-.008.997-.045.484-.012.968-.026 1.452 0 .11.006.107.064.255.037.096.076.19.12.283a.224.224 0 0 1-.089.283.09.09 0 0 1-.044.013h-.265c-.089 0-.152.039-.236.037a29.968 29.968 0 0 0-1.03 0 .471.471 0 0 0-.171.026c-.09.034-.18-.034-.265-.07-.01-.003-.01-.063 0-.084a.338.338 0 0 1 .224-.139c.202-.046.399-.113.601-.153.128-.026.254-.062.384-.08a.814.814 0 0 0 .253-.07.22.22 0 0 0 .117-.18c.003-.04 0-.078 0-.117zm.465-5.566v.365c0 .033-.012.053.047.03.09-.036.179-.077.27-.109a9.12 9.12 0 0 0 .515-.198c.17-.07.355-.131.53-.202.175-.072.353-.139.531-.2a2.29 2.29 0 0 0 .24-.1c.063-.03.079-.08.045-.13-.081-.116-.16-.234-.247-.345a8.168 8.168 0 0 0-.435-.533c-.139-.156-.271-.32-.411-.477-.14-.156-.255-.305-.386-.454a12.227 12.227 0 0 1-.562-.663c-.008-.011-.033-.024-.04-.02a.07.07 0 0 0-.03.043c-.013.284 0 .566-.027.85-.031.301 0 .608-.008.912-.008.304.022.6-.03.899a2.034 2.034 0 0 0-.003.332z\"},\"child\":[]}]})(props);\n};\nexport function SiSimilarweb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.099 5.781c-1.283-2-3.14-3.67-5.27-4.52l-.63-.213a7.433 7.433 0 0 0-2.15-.331c-2.307.01-4.175 1.92-4.175 4.275a4.3 4.3 0 0 0 .867 2.602l-.26-.342c.124.186.26.37.417.556.663.802 1.604 1.635 2.822 2.58 2.999 2.32 4.943 4.378 5.104 6.93.038.344.062.696.062 1.051 0 1.297-.283 2.67-.764 3.635h.005s-.207.377-.077.487c.066.057.21.1.46-.053a12.104 12.104 0 0 0 3.4-3.33 12.111 12.111 0 0 0 2.088-6.635 12.098 12.098 0 0 0-1.9-6.692zm-9.096 8.718-1.878-1.55c-3.934-2.87-5.98-5.966-4.859-9.783a8.73 8.73 0 0 1 .37-1.016v-.004s.278-.583-.327-.295a12.067 12.067 0 0 0-6.292 9.975 12.11 12.11 0 0 0 2.053 7.421 9.394 9.394 0 0 0 2.154 2.168H4.22c4.148 3.053 7.706 1.446 7.706 1.446h.003a4.847 4.847 0 0 0 2.962-4.492 4.855 4.855 0 0 0-1.889-3.87z\"},\"child\":[]}]})(props);\n};\nexport function SiSimkl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.84 0A3.832 3.832 0 0 0 0 3.84v16.32A3.832 3.832 0 0 0 3.84 24h16.32A3.832 3.832 0 0 0 24 20.16V3.84A3.832 3.832 0 0 0 20.16 0zm8.567 4.11c2.074 0 3.538.061 4.393.186 1.127.168 1.94.46 2.438.877.672.578 1.009 1.613 1.009 3.104 0 .161-.004.417-.01.768h-4.234c-.014-.358-.039-.607-.074-.746-.098-.41-.42-.64-.966-.692-.484-.043-1.66-.066-3.53-.066-1.85 0-2.946.056-3.289.165-.385.133-.578.474-.578 1.024 0 .528.203.851.61.969.343.095 1.887.187 4.633.275 2.487.073 4.073.165 4.76.275.693.11 1.244.275 1.654.495.41.22.737.532.983.936.37.595.557 1.552.557 2.873 0 1.475-.182 2.557-.546 3.247-.364.683-.96 1.149-1.785 1.398-.812.25-3.05.374-6.71.374-2.226 0-3.832-.062-4.82-.187-1.204-.147-2.068-.434-2.593-.86-.567-.456-.903-1.1-1.008-1.93a10.522 10.522 0 0 1-.085-1.434v-.789H7.44c-.007.74.136 1.216.43 1.428.154.102.33.167.525.203.196.037.54.063 1.03.077a166.2 166.2 0 0 0 2.405.022c1.862-.007 2.94-.018 3.234-.033.553-.044.917-.12 1.092-.23.245-.161.368-.52.368-1.077 0-.38-.078-.648-.231-.802-.211-.212-.712-.325-1.503-.34-.547 0-1.688-.044-3.425-.132-1.794-.088-2.956-.14-3.488-.154-1.387-.044-2.364-.212-2.932-.505-.728-.373-1.205-1.01-1.429-1.91-.126-.498-.189-1.15-.189-1.956 0-1.698.309-2.895.925-3.59.462-.527 1.163-.875 2.102-1.044.848-.146 2.865-.22 6.053-.22z\"},\"child\":[]}]})(props);\n};\nexport function SiSimpleanalytics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.019 13.019h3.849V24h-3.85zm8.943-6.68h3.85V24h-3.85zM19.132 0h3.85v24h-3.85z\"},\"child\":[]}]})(props);\n};\nexport function SiSimpleicons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C8.688 0 6 2.688 6 6s2.688 6 6 6c4.64-.001 7.526 5.039 5.176 9.04h1.68A7.507 7.507 0 0 0 12 10.5 4.502 4.502 0 0 1 7.5 6c0-2.484 2.016-4.5 4.5-4.5s4.5 2.016 4.5 4.5H18c0-3.312-2.688-6-6-6Zm0 3a3 3 0 0 0 0 6c4 0 4-6 0-6Zm0 1.5A1.5 1.5 0 0 1 13.5 6v.002c-.002 1.336-1.617 2.003-2.561 1.058C9.995 6.115 10.664 4.5 12 4.5ZM7.5 15v1.5H9v6H4.5V24h15v-1.5H15v-6h1.5V15Zm3 1.5h3v6h-3zm-6 1.47c0 1.09.216 2.109.644 3.069h1.684A5.957 5.957 0 0 1 6 17.97Z\"},\"child\":[]}]})(props);\n};\nexport function SiSimplelogin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.451 3.672c.106.105.199.222.277.348.178.293.272.628.272.97v9.604c0 .342-.095.679-.274.971a1.899 1.899 0 0 1-.383.444c-.335.286-.76.443-1.201.443H11.727a9.773 9.773 0 0 1-5.2 4.365l-.136.049-.135-.052a9.741 9.741 0 0 1-4.499-3.526A9.702 9.702 0 0 1 0 11.701a9.794 9.794 0 0 1 .227-2.1l.052-.237.236-.058c.055-.013.109-.028.162-.042a11.979 11.979 0 0 0 5.568-3.262l.04-.043.232-.239v-.73c0-.343.095-.68.274-.972.078-.126.171-.242.278-.346a1.835 1.835 0 0 1 1.193-.537h13.994a1.84 1.84 0 0 1 1.195.537Zm-15.075.346c-.033 0-.066.001-.098.004h-.142l.023.021 6.815 6.029a.435.435 0 0 0 .576 0l6.815-6.029.023-.021h-.146a1.042 1.042 0 0 0-.098-.004H8.376Zm-.898.605a.945.945 0 0 0-.072.367v1.586a11.997 11.997 0 0 0 4.938 2.681l.114.029.057.015.237.058.051.239a8.49 8.49 0 0 1 .1.565l.417-.369-5.842-5.171ZM2.329 16.719a9.049 9.049 0 0 0 4.074 3.312 8.997 8.997 0 0 0 5.68-10.036 12.736 12.736 0 0 1-5.555-3.169 12.751 12.751 0 0 1-5.583 3.177 9.044 9.044 0 0 0-.161 1.698 9.038 9.038 0 0 0 1.545 5.018Zm10.684-5.098a9.709 9.709 0 0 1-.837 3.944h10.212l-.028-.025-5.826-5.153-.985.87a.43.43 0 0 1-.575 0l-.985-.87-.984.87c.005.122.008.242.008.364Zm10.029 3.339a.94.94 0 0 0 .072-.366l.001-9.603a.967.967 0 0 0-.071-.364l-5.84 5.168 5.838 5.165ZM6.609 8.206a10.24 10.24 0 0 0 4.379 2.464c.074.404.113.813.118 1.223v.082a7.233 7.233 0 0 1-1.705 4.655l-.007.008a7.234 7.234 0 0 1-2.97 2.095 7.259 7.259 0 0 1-4.515-6.692c0-.458.043-.915.129-1.365a10.252 10.252 0 0 0 4.486-2.551l.084.081h.001Zm-3.177 5.053 2.752 2.752h.001l3.831-3.831-.847-.846-2.983 2.984-1.908-1.907-.846.848Z\"},\"child\":[]}]})(props);\n};\nexport function SiSimplenote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.466 3.62c-.004.052-.014.104-.018.158-.406 4.626 2.747 8.548 8.03 9.994 2.024.553 5.374 2.018 5.06 5.599a5.063 5.063 0 0 1-1.803 3.46c-1.022.857-2.308 1.21-3.64 1.166C5.147 23.794 0 18.367 0 12.05c0-3.285 1.325-6.262 3.467-8.428zM9.82 1.032c.907-.762 2.056-1.078 3.235-1.027C18.996.27 24 5.67 24 11.936c0 2.855-1.001 5.478-2.667 7.536.332-4.908-2.94-8.897-8.59-10.441-2.337-.64-4.749-2.274-4.514-4.948A4.467 4.467 0 0 1 9.82 1.03z\"},\"child\":[]}]})(props);\n};\nexport function SiSimplex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.1 0-4.026 4.025L8.125.076 6.113 2.09l3.95 3.947-3.975 3.977L2.14 6.066.109 8.096l3.948 3.947L0 16.1l1.975 1.972 4.056-4.056 3.95 3.947 2.029-2.027-3.95-3.95 3.975-3.972 3.951 3.949-4.025 4.023v.002L9.947 18l-4.023 4.025L7.896 24l4.026-4.025 3.95 3.949 2.013-2.014-3.951-3.95 4.027-4.024 3.95 3.949 2.013-2.012-3.95-3.95L24 7.899l-1.975-1.972L18 9.949 14.049 6l4.025-4.025z\"},\"child\":[]}]})(props);\n};\nexport function SiSinaweibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.098 20.323c-3.977.391-7.414-1.406-7.672-4.02-.259-2.609 2.759-5.047 6.74-5.441 3.979-.394 7.413 1.404 7.671 4.018.259 2.6-2.759 5.049-6.737 5.439l-.002.004zM9.05 17.219c-.384.616-1.208.884-1.829.602-.612-.279-.793-.991-.406-1.593.379-.595 1.176-.861 1.793-.601.622.263.82.972.442 1.592zm1.27-1.627c-.141.237-.449.353-.689.253-.236-.09-.313-.361-.177-.586.138-.227.436-.346.672-.24.239.09.315.36.18.601l.014-.028zm.176-2.719c-1.893-.493-4.033.45-4.857 2.118-.836 1.704-.026 3.591 1.886 4.21 1.983.64 4.318-.341 5.132-2.179.8-1.793-.201-3.642-2.161-4.149zm7.563-1.224c-.346-.105-.57-.18-.405-.615.375-.977.42-1.804 0-2.404-.781-1.112-2.915-1.053-5.364-.03 0 0-.766.331-.571-.271.376-1.217.315-2.224-.27-2.809-1.338-1.337-4.869.045-7.888 3.08C1.309 10.87 0 13.273 0 15.348c0 3.981 5.099 6.395 10.086 6.395 6.536 0 10.888-3.801 10.888-6.82 0-1.822-1.547-2.854-2.915-3.284v.01zm1.908-5.092c-.766-.856-1.908-1.187-2.96-.962-.436.09-.706.511-.616.932.09.42.511.691.932.602.511-.105 1.067.044 1.442.465.376.421.466.977.316 1.473-.136.406.089.856.51.992.405.119.857-.105.992-.512.33-1.021.12-2.178-.646-3.035l.03.045zm2.418-2.195c-1.576-1.757-3.905-2.419-6.054-1.968-.496.104-.812.587-.706 1.081.104.496.586.813 1.082.707 1.532-.331 3.185.15 4.296 1.383 1.112 1.246 1.429 2.943.947 4.416-.165.48.106 1.007.586 1.157.479.165.991-.104 1.157-.586.675-2.088.241-4.478-1.338-6.235l.03.045z\"},\"child\":[]}]})(props);\n};\nexport function SiSingaporeairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.981 0 7.786 1.79c-.473.728-.062 1.51-.062 1.51l5.475 9.055c1.263 2.17-.536 4.535-.536 4.535L9.36 22.015h2.738c1.387 0 2.014-1.133 2.014-1.133l1.73-2.673c.628-.978 1.45-1.008 1.45-1.008h1.572c-.977.41-1.418 1.418-1.418 1.418l-1.946 2.993c-.76 1.133-1.643.969-1.643.969h-7.83l3.713-5.792c.875-1.318 0-2.42 0-2.42L4.796 6.355 3.756 7.93c-.907 1.45-.032 2.294-.032 2.294l3.56 5.722c.79 1.193.224 1.914.224 1.914l-4 6.14h10.513a2.97 2.97 0 0 0 2.674-1.574l2.232-3.364c.535-.852 1.728-.728 1.728-.728l-1.512-2.388h-2.17c-1.542 0-2.14 1.286-2.14 1.286l-2.045 3.117h-.002c-.187.225-.404.505-.628.35-.217-.155.093-.566.093-.566l2.744-4.28c.404-.666 1.133-1.986 1.133-3.148 0-1.162-.915-2.666-.915-2.666zM7.004 3.146 5.618 5.224c-.41.69 0 1.41 0 1.41l4.69 7.77c.659 1.161.154 2.262.154 2.262l-3.364 5.31h1.668l3.62-5.622c1.543-2.332.124-4.216.124-4.216z\"},\"child\":[]}]})(props);\n};\nexport function SiSinglestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.029 5.063c-.914-1.916-2.8-3.432-5.114-4.033C11.4.887 10.858.83 10.258.8c-.886 0-1.743.114-2.629.343-2.2.658-3.742 1.945-4.657 2.947C1.801 5.435 1.03 6.837.572 8.238c0 .029-.028.057-.028.115C.515 8.467.4 8.81.4 8.896c-.029.057-.029.143-.057.2l-.086.344c0 .028 0 .057-.028.086-.743 3.69.49 7.001 1.234 8.231.185.308.338.564.49.8C.27 9.403 5.116 5.035 10.63 4.92c2.886-.057 5.771 1.116 7.171 3.461-.086-1.287-.171-2.002-.771-3.318zM12.543 0c2.572.715 4.914 2.517 5.886 4.72 1.485 3.575 1.143 8.095-.486 10.784-1.371 2.203-3.485 3.375-5.914 3.347-3.771-.029-6.828-3.032-6.857-6.808 0-3.776 2.971-6.894 6.857-6.894.629 0 1.535.087 2.563.516 0 0-.739-.438-2.638-.732C6.497 4.218.058 8.353 1.544 17.878c2.057 3.662 6 6.15 10.485 6.122 6.6-.029 12-5.435 11.97-12.072C24 5.578 18.83.172 12.544 0z\"},\"child\":[]}]})(props);\n};\nexport function SiSitecore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.37 0 0 5.37 0 12s5.37 12 12 12 12-5.37 12-12S18.63 0 12 0Zm0 3.266A8.714 8.714 0 0 1 20.734 12c0 4.815-3.92 8.734-8.734 8.734A8.73 8.73 0 0 1 3.266 12 8.73 8.73 0 0 1 12 3.266Zm6.701 3.847-2.878 1.839c.87 1.379.991 2.879.314 4.403-.774 1.838-2.613 3.41-4.694 4.16a7.337 7.337 0 0 0 2.662-.87c2.032-1.137 3.194-3.073 3.29-5.468v-.218h2.83c-.168-1.427-.725-2.734-1.524-3.846Zm-.87 4.282c-.17 2.42-1.428 4.476-3.508 5.613a8.13 8.13 0 0 1-3.92.992 9.19 9.19 0 0 1-3.194-.58c1.259.774 2.662 1.21 4.113 1.21h.025c2.613 0 4.984-1.38 6.314-3.727l.121-.193 1.621 1.04A8.166 8.166 0 0 0 20.3 12c0-.194-.025-.387-.025-.605zm.072 3.943c-1.427 2.323-3.846 3.726-6.556 3.726-2.637 0-5.105-1.306-6.847-3.532 1.33 2.807 4.185 4.766 7.5 4.766a8.267 8.267 0 0 0 7.185-4.161z\"},\"child\":[]}]})(props);\n};\nexport function SiSitepoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.471 10.533l1.771 1.688 5.598 5.141 2.4-2.291c.21-.297.194-.705-.046-.985L9.99 12.184l.01-.005-2.371-2.266c-.279-.314-.27-.78.021-1.079l6.39-6.076L11.146 0 2.475 8.238c-.664.633-.664 1.66 0 2.295h-.004zm19.056 2.937l-1.77-1.691-5.595-5.142-2.411 2.291c-.221.3-.207.705.045.985l2.205 1.891h-.006l2.369 2.265c.27.314.27.766-.029 1.064l-6.391 6.075L12.855 24l8.67-8.238c.664-.633.666-1.659 0-2.295l.002.003z\"},\"child\":[]}]})(props);\n};\nexport function SiSiyuan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 8.455 6.818-6.819L12 6.818l5.182-5.182L24 8.455v13.909l-6.818-6.819v-2.314l5.182 5.182v-9.28L17.182 3.95v11.594L12 20.727l-5.182-5.182v-2.314L12 18.413v-9.28L6.818 3.95v11.594L0 22.364Z\"},\"child\":[]}]})(props);\n};\nexport function SiSkaffold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.602 20.097H24v3.836H6.602v-3.836zm-2.766-6.692h13.562v3.837H0V6.714h3.836v6.691zm13.562-9.502H0V.067h17.398v3.836zm2.766 6.692H6.602V6.758H24v10.528h-3.836v-6.691z\"},\"child\":[]}]})(props);\n};\nexport function SiSketch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.25l6.75 6.637V2L12 1.25zm0 0l-6.05 7h12.1l-6.05-7zm0 0L5.25 2v5.887L12 1.25zM5.25 2L0 9l4.416-.68L5.25 2zM0 9l11.959 13.703.008-.014L4.443 9H0zm18.75-7l.834 6.32L24 9l-5.25-7zM24 9h-4.506l-7.523 13.69.029.06L24 9zM12 22.75l-.031-.057-.008.012.039.045zM5.436 9l6.533 13.686L18.564 9H5.436Z\"},\"child\":[]}]})(props);\n};\nexport function SiSketchfab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.3 0A11.983 11.983 0 0 0 .037 11a13.656 13.656 0 0 0 0 2 11.983 11.983 0 0 0 11.29 11h1.346a12.045 12.045 0 0 0 11.3-11.36 13.836 13.836 0 0 0 0-1.7A12.049 12.049 0 0 0 12.674 0zM15 6.51l2.99 1.74s-6.064 3.24-6.084 3.24S5.812 8.27 5.8 8.26l2.994-1.77 2.992-1.76zm-6.476 5.126L11 13v5.92l-2.527-1.4-2.46-1.43v-5.76zm9.461 1.572v2.924L15.5 17.574 13 19.017v-6.024l2.489-1.345 2.5-1.355z\"},\"child\":[]}]})(props);\n};\nexport function SiSketchup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.968 9.027l7.717 4.428-.006 1.32-4.39-2.518-2.763 1.57 7.148 4.12.005 1.27-7.658-4.405c.02.516.488 2.106 1.383 3.337.91 1.247 1.946 1.776 1.946 1.776L11.428 24V11.849L.975 5.846zm22.064-3.8L15.22.723S13.982 0 12.008 0C9.952 0 8.76.746 8.76.746l-7.236 4.14 11.009 6.328V24l7.245-4.136s1.295-.715 2.279-2.414c.867-1.496.975-2.943.975-2.943zM11.251 7.308s1.615-.298 2.98.49l2.171 1.25s.003 1.097.003 2.736c0 1.313-1.112 2.674-1.112 2.674l.002-4.816zm6.402 10.562l-2.358 1.353v-1.269l1.835-1.05c1.748-1.26 2.037-3.117 2.037-3.761l-.007-5.705-5.006-2.881s-.76-.499-2.129-.499c-1.367 0-2.113.461-2.113.461L8.154 5.53l-1.11-.641L9.473 3.5s.95-.527 2.544-.527c1.462 0 2.6.571 2.6.571L20.27 6.81l-.007 6.226c.04.957-.406 3.296-2.61 4.835z\"},\"child\":[]}]})(props);\n};\nexport function SiSkillshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.783 6.056a.768.768 0 0 0-.773.764c0 .421.346.763.773.763a.768.768 0 0 0 .772-.763.768.768 0 0 0-.772-.764zM1.895 8.1C.821 8.1.111 8.622.111 9.413c0 .634.381 1.06 1.048 1.225l.836.21c.248.078.348.2.347.39 0 .21-.21.327-.424.337-.31.014-.537-.154-.554-.422H0c.02.8.802 1.362 1.974 1.362 1.108 0 1.827-.513 1.827-1.382 0-.634-.399-1.034-1.057-1.208l-.81-.224c-.274-.081-.369-.202-.369-.372 0-.185.146-.294.335-.316.274-.032.486.087.486.382v.02H3.78v-.02h-.001c0-.834-.706-1.294-1.884-1.294zm2.485.116v4.19h1.318v-1.821l1.274 1.82h1.62l-1.629-2.201 1.604-1.977h-1.56l-1.309 1.76v-1.77zm4.744 0v4.19h1.318v-4.19zm2.084 0v4.191h3.218v-1.244h-1.892V8.217zm3.937 0v4.191h3.218v-1.244h-1.892V8.217zm-13.25 5.308c-1.074 0-1.784.522-1.784 1.312 0 .635.381 1.06 1.048 1.225l.836.21c.248.078.348.2.347.39 0 .21-.21.328-.424.338-.31.014-.537-.155-.554-.423H0c.02.8.802 1.362 1.974 1.362 1.108 0 1.827-.512 1.827-1.382 0-.634-.399-1.034-1.057-1.207l-.81-.225c-.274-.081-.369-.201-.369-.371 0-.186.146-.295.335-.317.274-.032.486.087.486.383v.019H3.78v-.02h-.001c0-.834-.706-1.294-1.884-1.294zm9.19.015c-1.215 0-1.986.953-1.986 2.202 0 1.257.72 2.202 1.968 2.201.58 0 1.1-.286 1.326-.702v.59h1.318v-4.179h-1.318v.599c-.225-.425-.702-.711-1.309-.711zm8.751 0c-1.36 0-2.253.832-2.253 2.202 0 1.396.875 2.202 2.296 2.202 1.11 0 1.951-.546 2.08-1.37h-1.3c-.113.26-.373.373-.78.373-.59 0-.954-.295-.98-.841h3.087c.026-.234.035-.364.035-.581 0-1.179-.884-1.985-2.185-1.985zm-2.87.043c-.51 0-1.005.32-1.152.945v-.876h-1.327v4.179h1.327v-1.613c0-.927.382-1.395 1.1-1.395a2.8 2.8 0 0 1 .393.025l.007-1.23a1.28 1.28 0 0 0-.347-.035zM4.38 13.65v4.191h1.3v-1.485h1.59v1.485h1.3V13.65h-1.3v1.505H5.68V13.65zm15.448.781c.564 0 .876.295.885.85H18.9c.008-.511.356-.85.927-.85zm-8.38.217c.66 0 .997.494.997 1.093 0 .607-.337 1.1-.997 1.1-.616 0-.997-.468-.997-1.1 0-.634.382-1.093.997-1.093zm11.78 1.741a.768.768 0 0 0-.772.764c0 .422.345.764.772.764a.768.768 0 0 0 .772-.764.768.768 0 0 0-.772-.764z\"},\"child\":[]}]})(props);\n};\nexport function SiSkoda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.3726 0 0 5.3726 0 12s5.3726 12 12 12 12-5.3726 12-12S18.6274 0 12 0Zm0 22.9636C5.945 22.9636 1.0364 18.055 1.0364 12 1.0364 5.945 5.945 1.0364 12 1.0364S22.9636 5.945 22.9636 12 18.055 22.9636 12 22.9636Zm5.189-7.2325-.269.7263h-.984c.263-.7089 3.5783-8.6177-2.9362-13.9819a9.5254 9.5254 0 0 0-4.0531.4483c.2172.175 2.474 2.0276 3.5373 4.315l-.312.084c-.5861-.6387-2.7156-2.9833-4.7448-3.7379a9.6184 9.6184 0 0 0-2.8448 2.3597c.953.4875 3.4432 1.9748 4.3896 3.1302-.0542.0244-.267.139-.267.139-1.736-1.3195-4.8199-2.0043-4.9775-2.0383a9.5126 9.5126 0 0 0-1.2267 3.6098c4.7759.9613 6.0618 3.1715 6.2818 5.6721H7.878l-1.5545-.6776a.8563.8563 0 0 0-.2524-.0531H3.1767a9.587 9.587 0 0 0 1.9267 2.9155h1.2334c.1063 0 .1993-.0133.2923-.0664l1.2489-.6378h9.042l.269.7264a4.8386 4.8386 0 0 0 2.9466-1.4667 4.839 4.839 0 0 0-2.9467-1.4666zm-4.14-.5786a1.1863 1.1863 0 0 1-.5038-1.2162 1.1862 1.1862 0 0 1 .931-.9309 1.1863 1.1863 0 0 1 1.2161.5038c.3098.4636.2563 1.0924-.1473 1.496-.4032.4032-1.0318.4574-1.496.1473z\"},\"child\":[]}]})(props);\n};\nexport function SiSky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.387 13.656c0 1.423-.933 2.454-2.823 2.675-1.35.147-3.337-.025-4.294-.148-.025-.147-.074-.343-.074-.49 0-1.252.663-1.522 1.3-1.522.664 0 1.694.123 2.455.123.834 0 1.104-.295 1.104-.565 0-.368-.343-.515-1.006-.638l-1.767-.343C.785 12.453 0 11.423 0 10.343c0-1.325.933-2.454 2.798-2.65 1.398-.148 3.116.024 4.049.122.024.172.049.32.049.491 0 1.252-.663 1.522-1.276 1.522-.491 0-1.227-.099-2.086-.099-.884 0-1.227.246-1.227.54 0 .32.343.442.883.54l1.718.32c1.742.294 2.479 1.3 2.479 2.527m3.092 1.521c0 .761-.295 1.203-1.792 1.203-.196 0-.368-.025-.54-.05V6.22c0-.76.27-1.57 1.767-1.57.196 0 .393.024.565.049zm6.085 3.927c.197.098.59.22 1.105.245.859.025 1.325-.319 1.693-1.08L24 7.913a2.5 2.5 0 0 0-.957-.22c-.589 0-1.399.122-1.914 1.325l-1.497 3.534-2.945-4.81c-.196-.05-.662-.148-1.006-.148-1.03 0-1.62.393-2.233 1.031l-2.871 3.141 2.306 3.632c.418.663.982 1.006 1.89 1.006.589 0 1.104-.147 1.325-.245l-2.773-4.196 1.963-2.086 3.24 5.08Z\"},\"child\":[]}]})(props);\n};\nexport function SiSkypack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.82 11.27-5.997-2.994 5.999-2.993c.28-.14.453-.42.453-.734a.815.815 0 0 0-.454-.735L12.366.087a.814.814 0 0 0-.733 0L4.178 3.814a.815.815 0 0 0-.453.735v7.454c0 .28.15.548.384.699l.07.034 5.998 2.994-5.999 2.993a.815.815 0 0 0-.453.734c0 .314.174.594.453.735l7.455 3.727a.814.814 0 0 0 .361.081.814.814 0 0 0 .361-.081l7.454-3.727c.28-.14.455-.42.455-.735v-7.454a.785.785 0 0 0-.443-.733zm-7.814-9.54 5.625 2.819-5.625 2.818L6.38 4.55zm-6.64 4.135 4.811 2.41-4.81 2.412zm1.014 6.138 5.626-2.819 5.625 2.82-5.625 2.818zm4.81 5.044v4.81l-4.81-2.41zm7.455 1.91-5.824 2.911v-5.625l5.824-2.912v5.625z\"},\"child\":[]}]})(props);\n};\nexport function SiSkyrock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.416 14.39A3.189 3.189 0 0 0 9.81 12.8a10.005 10.005 0 0 0-1.877-.637l-2.964-.804c-.463-.133-.907-.315-1.276-.638-.247-.215-.4-.479-.401-.817-.002-.738.447-1.333 1.196-1.552.697-.204 1.407-.196 2.116-.064.775.144 1.37.527 1.728 1.261.238.488.249.736.249.736l2.684-.003v-.097a4.437 4.437 0 0 0-.088-.726c-.333-1.59-1.214-2.718-2.771-3.266-1.011-.356-2.06-.41-3.118-.356-.755.039-1.497.152-2.21.413-.996.364-1.775.98-2.24 1.951-.332.692-.414 1.428-.385 2.187.026.654.222 1.254.516 1.832.357.7.974 1.082 1.66 1.375.857.367 1.778.513 2.67.756.622.169 1.25.311 1.854.542.465.178.916.384 1.303.709.414.347.546.776.413 1.3-.15.584-.544.937-1.091 1.103-1.09.331-2.226.308-3.288-.126-.45-.184-.819-.479-1.052-.92a2.857 2.857 0 0 1-.28-.837s-.027-.148-.025-.196H1.695c-.444 0-1.014.003-1.458-.001l.009.12c.051.735.198 1.448.55 2.102.646 1.196 1.675 1.896 2.97 2.233.893.232 1.803.285 2.72.255.778-.025 1.545-.122 2.289-.364.87-.284 1.632-.73 2.183-1.487.457-.63.693-1.339.774-2.105.085-.789.025-1.56-.316-2.288Zm4.513.434 7.834-5.667-9.693.003L11.086 0l-1.7 5.172.102.048c.643.305 1.2.727 1.669 1.262.765.87 1.205 1.888 1.37 3.032.067.471.07.946.092 1.42l.006.174c1.579-.005 3.537-.003 5.116-.002l-4.127 2.968 1.4 4.27.177.537s-1.477-1.064-2.2-1.587a5.378 5.378 0 0 1-.667 1.804l-.053.09 5.803 4.196.848.616-1.485-4.555-1.508-4.62Z\"},\"child\":[]}]})(props);\n};\nexport function SiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z\"},\"child\":[]}]})(props);\n};\nexport function SiSlackware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.924 1.228c-.584-.01-1.251 0-1.485.027-2.46.282-4.138 1.3-4.753 2.891-.218.552-.274 1.002-.243 1.772.048 1.21.419 2.004 1.262 2.742 1.225 1.06 2.98 1.508 5.998 1.508 2.737 0 3.71.413 3.916 1.675.313 1.867-1.57 3.07-4.414 2.827-1.878-.16-3.496-.912-4.223-1.967a7.772 7.772 0 01-.355-.62c-.382-.76-.64-.978-1.176-.978-.43.005-.732.165-.918.494l-.133.24v4.03l.137.296c.165.344.4.546.744.63.35.09.794-.036 1.42-.402l.5-.29.826.185c1.82.403 2.75.523 4.065.523 1.103.005 1.548-.046 2.455-.285 1.124-.297 1.974-.785 2.717-1.57.8-.844 1.15-1.853 1.097-3.147-.069-1.628-.695-2.698-2-3.414-.96-.525-2.292-.79-4.377-.88-2.042-.086-2.794-.155-3.515-.32-.51-.12-.785-.25-1.076-.515-.653-.589-.59-1.755.136-2.482.642-.637 1.511-.928 2.774-.928 1.432.005 2.393.27 3.412.955.185.127.721.62 1.193 1.092.886.902 1.135 1.082 1.506 1.082.244 0 .59-.163.732-.344.26-.329.303-.63.303-2.2 0-1.66-.043-1.91-.377-2.282-.387-.425-.848-.42-1.75.031l-.59.297-.63-.17c-1.496-.392-2.038-.477-3.178-.504zM0 13.775v9h24v-1H1v-8z\"},\"child\":[]}]})(props);\n};\nexport function SiSlashdot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.777 0L7.037 24H1.868L14.605 0h5.172zm2.354 19.801c0 2.268-1.841 4.105-4.109 4.105s-4.107-1.838-4.107-4.105 1.839-4.107 4.107-4.107 4.109 1.839 4.109 4.107z\"},\"child\":[]}]})(props);\n};\nexport function SiSlickpic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.483 18.308L6.056 14.085l2.52-9.201L24 9.104l-2.517 9.204zm-13.414-5.37l12.263 3.354 1.654-6.033L9.72 6.9l-1.65 6.034v.004zM8.526 15.795l-4.891 1.311-1.625-6.045 4.146-1.11.501-1.835L0 9.902l2.478 9.215 9.178-2.467\"},\"child\":[]}]})(props);\n};\nexport function SiSlides (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.695.395 4.578.97l5.7.552zm-2.443.851-.04.406H6.44ZM0 2.152V21.85h19.697V2.152Zm20.197.836V20.24l1.66-17.092zm2.084.965-1.65 17.002L24 4.301ZM9.928 7.361c.595 0 1.127.075 1.593.227.467.152.7.321.7.508 0 .151-.068.347-.201.586-.135.239-.255.359-.36.359-.012 0-.086-.035-.226-.105a2.82 2.82 0 0 0-1.34-.315c-.496 0-.88.103-1.155.307a.95.95 0 0 0-.412.797c0 .326.103.583.307.77.204.186.55.355 1.041.507 1.097.339 1.841.709 2.232 1.111.391.403.586 1.01.586 1.82 0 .812-.289 1.481-.867 2.006-.578.526-1.269.788-2.074.788-.805 0-1.499-.12-2.082-.36-.584-.239-.875-.47-.875-.691 0-.117.073-.292.219-.526.145-.233.275-.35.392-.35.012 0 .106.056.281.167.176.11.426.223.752.334.327.11.72.166 1.182.166.461 0 .841-.132 1.139-.395.297-.262.445-.619.445-1.068 0-.45-.13-.8-.393-1.05-.262-.252-.786-.488-1.568-.71-.782-.221-1.347-.503-1.697-.848-.35-.344-.526-.866-.526-1.566 0-.7.268-1.287.805-1.76.537-.472 1.238-.709 2.102-.709Zm5.86 14.989 4.165.404.04-.404zm1.126.613 3.18.642.066-.328z\"},\"child\":[]}]})(props);\n};\nexport function SiSlideshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.222.21C1.762.21 1.06 1.337 1.06 2.497v7.883c-.53-.502-1.096-.15-1.058.295.038.439.59 1.546 1.436 2.517.843.968 1.924 1.776 2.94 2.268a11.19 11.19 0 00-.491 3.598c.09 1.096.378 1.95.903 2.75.918 1.407 2.32 1.985 3.674 1.985 1.209 0 2.494-.563 2.698-2.373v-4.694c1.308.552 3.47.363 4.47-.39.19-.14.326-.207.416-.113.095.09.106.166-.113.439a5.6 5.6 0 01-3.103 1.965l.008 2.72a2.532 2.532 0 002.543 2.446c1.64.015 2.48-.556 3.148-1.164.632-.567 1.399-1.754 1.558-3.243a10.128 10.128 0 00-.454-3.926 10.358 10.358 0 002.948-2.268C23.213 12.5 24 11.185 24 10.675c0-.51-.556-.782-1.036-.302V2.497c0-.824-.48-2.29-2.135-2.29zm.423 1.35H20.41c.756 0 1.17.28 1.17 1.224v8.904a8.73 8.73 0 01-3.555 1.534c-1.606.352-2.94.087-3.666.148-.718.06-1.428.529-1.296 1.79-.491-.154-1.236-.683-1.682-1.117-.438-.428-.87-.711-1.534-.692-1.013.03-1.663.102-2.57.01a9.656 9.656 0 01-4.838-1.786V2.78c0-.87.378-1.22 1.206-1.22zm4.497 4.988a2.994 2.994 0 100 5.987 2.993 2.993 0 000-5.983zm7.71 0a2.994 2.994 0 100 5.987 2.993 2.993 0 000-5.983z\"},\"child\":[]}]})(props);\n};\nexport function SiSlint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m6.503 23.914 13.61-9.399s.614-.351.614-.906c0-.739-.776-.979-.776-.979l-7.488-2.953c-.267-.104-.634.189-.29.56l2.479 2.471s.688.675.688 1.117-.423.836-.423.836l-9.02 8.684c-.32.31.113.87.606.569zM17.497.087 3.887 9.484s-.614.351-.614.906c0 .739.776.98.776.98l7.488 2.953c.267.103.636-.19.29-.559l-2.479-2.48s-.688-.673-.688-1.116c0-.444.423-.837.423-.837L18.097.654c.326-.31-.106-.87-.6-.567z\"},\"child\":[]}]})(props);\n};\nexport function SiSmart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.85.846A11.138 11.138 0 0 0 0 11.979v.04a11.136 11.136 0 0 0 10.844 11.135h.283a10.983 10.983 0 0 0 4.041-.758.395.395 0 0 0 .256-.369v-5.564a.21.21 0 0 0-.274-.195c-1.202.489-2.215.957-3.96.957a5.222 5.222 0 0 1-5.22-5.22 5.22 5.22 0 0 1 5.22-5.22c1.745 0 2.758.467 3.96.955a.21.21 0 0 0 .274-.193V1.979a.395.395 0 0 0-.256-.37 10.983 10.983 0 0 0-4.037-.763Zm5.863 1.82v18.67a.238.238 0 0 0 .377.19c3.413-2.122 6.91-8.16 6.91-9.52 0-1.36-3.497-7.396-6.91-9.522a.238.238 0 0 0-.377.182Z\"},\"child\":[]}]})(props);\n};\nexport function SiSmartthings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.51 0C8.338 0 5.034.537 2.694 2.694.5 5.174 0 8.464 0 11.525v.942c0 3.165.537 6.499 2.694 8.84C5.188 23.513 8.494 24 11.569 24h.854c3.18 0 6.528-.53 8.883-2.694C23.514 18.811 24 15.5 24 12.423v-.853c0-3.18-.53-6.528-2.694-8.876C18.826.494 15.544 0 12.482 0zM12 3.505c1.244 0 2.256.99 2.256 2.206 0 1.065-.685 1.976-1.715 2.181v1.59c1.48.214 2.528 1.43 2.528 2.934 0 1.654-1.377 3-3.07 3-1.692 0-3.068-1.346-3.068-3 0-.17.017-.335.045-.497l-1.536-.488a2.258 2.258 0 01-1.962 1.12c-.237 0-.471-.037-.698-.11-1.183-.375-1.833-1.622-1.449-2.78a2.246 2.246 0 012.146-1.524c.237 0 .471.036.698.108a2.23 2.23 0 011.313 1.098c.204.391.282.823.232 1.249l1.535.488c.44-.86 1.378-1.453 2.384-1.599V7.892c-1.029-.205-1.896-1.116-1.896-2.181 0-1.217 1.012-2.206 2.257-2.206zm0 .882c-.747 0-1.354.594-1.354 1.324 0 .73.607 1.324 1.354 1.324.746 0 1.354-.594 1.354-1.324 0-.73-.608-1.324-1.354-1.324zm6.522 3.75c.98 0 1.843.613 2.146 1.525.186.56.138 1.158-.135 1.683-.274.526-.74.915-1.314 1.096-.227.073-.461.11-.698.11a2.258 2.258 0 01-1.962-1.12l-.634.201-.278-.838.632-.202a2.21 2.21 0 011.546-2.347c.226-.072.46-.108.697-.108zM5.476 9.02c-.588 0-1.105.368-1.287.915-.23.694.159 1.442.869 1.668.136.043.277.065.419.065.588 0 1.105-.368 1.287-.915a1.29 1.29 0 00-.081-1.01 1.338 1.338 0 00-.788-.658 1.377 1.377 0 00-.42-.065zm13.045 0c-.142 0-.282.021-.419.065a1.32 1.32 0 00-.869 1.668c.182.547.7.915 1.287.915.142 0 .283-.022.42-.065.344-.11.623-.343.787-.659.165-.315.193-.673.082-1.009a1.348 1.348 0 00-1.288-.915zM12 10.474c-1.095 0-1.986.871-1.986 1.942 0 1.07.89 1.941 1.986 1.941 1.094 0 1.985-.87 1.985-1.94 0-1.072-.89-1.943-1.985-1.943zm-2.706 4.831l.73.519-.39.526c.709.757.801 1.925.16 2.787-.423.57-1.106.91-1.827.91-.478 0-.937-.147-1.325-.422a2.177 2.177 0 01-.499-3.082 2.28 2.28 0 012.76-.71zm5.41 0l.392.528a2.285 2.285 0 012.76.71 2.178 2.178 0 01-.499 3.082 2.275 2.275 0 01-1.325.421 2.28 2.28 0 01-1.827-.91 2.172 2.172 0 01.16-2.785l-.39-.527zm-6.734 1.21c-.433 0-.843.205-1.097.547-.44.59-.304 1.42.3 1.849a1.37 1.37 0 001.891-.293c.44-.59.305-1.42-.3-1.85a1.364 1.364 0 00-.794-.252zm8.059 0c-.287 0-.561.088-.795.254a1.307 1.307 0 00-.299 1.849 1.371 1.371 0 001.891.293 1.307 1.307 0 00.3-1.85 1.37 1.37 0 00-1.097-.545Z\"},\"child\":[]}]})(props);\n};\nexport function SiSmashdotgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.01 4.32c-.622.044-1.096.236-1.41.574a1.438 1.438 0 00-.332.546c-.138.366-.134.288-.142 2.57-.008 2.096-.002 2.328.066 2.628.142.612.524 1.03 1.124 1.228.342.114.58.14 1.192.128.586-.01.686-.028.962-.17a1.35 1.35 0 00.496-.494l.074-.14-.004.6c-.006.686-.01.7-.176.784l-.088.046H16.5v2h1.986c1.976 0 2.386-.012 2.714-.072.98-.178 1.508-.71 1.62-1.628.012-.11.02-1.616.02-4.394V4.3h-2.76v.93l-.048-.114c-.17-.412-.48-.664-.932-.756-.226-.046-.736-.066-1.09-.04zm1.844 2.124a.41.41 0 01.128.15l.048.096v2.94l-.048.096a.392.392 0 01-.128.15c-.08.052-.088.054-.392.054-.292 0-.316-.002-.388-.046-.152-.096-.144.004-.15-1.68-.004-1.018.002-1.53.016-1.584.052-.196.16-.242.552-.236.268.006.284.008.362.06zM10.17 4.32c-.62.044-1.048.214-1.384.55-.16.16-.194.21-.282.392-.112.23-.172.448-.204.738-.016.128-.02.872-.016 2.29.008 2.048.008 2.104.05 2.28.096.412.218.648.464.89.294.29.604.434 1.112.51.312.046 1.084.042 1.33-.01.398-.082.72-.314.886-.64l.076-.15-.006.61c-.006.698-.01.71-.176.794l-.088.046H8.66v2.002l2.176-.008c1.594-.006 2.22-.014 2.344-.032.6-.09 1.094-.314 1.372-.628.186-.21.314-.478.394-.824.042-.18.042-.184.048-4.506L15 4.3h-2.76v.474l-.002.476-.039-.104c-.147-.416-.48-.692-.944-.786-.222-.046-.733-.064-1.086-.04zm1.844 2.124a.41.41 0 01.128.15l.048.096.006 1.396c.004.91-.002 1.436-.016 1.51-.026.142-.094.246-.194.296-.064.032-.122.038-.376.038-.34 0-.402-.02-.48-.15-.04-.068-.04-.098-.04-1.62 0-1.52 0-1.552.04-1.62a.336.336 0 01.13-.116c.084-.044.11-.046.382-.04.278.006.294.008.372.06zM2.64 9.11v9.11H0v1.2h2.64V24h3.84v-4.58H24v-1.2H6.48V0H2.64z\"},\"child\":[]}]})(props);\n};\nexport function SiSmashingmagazine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.734 12.002c.766.524 1.662 1.01 2.708 1.443 1.785.742 2.985 1.387 3.601 1.936.615.547.928 1.248.928 2.104-.005 1.457-1.023 2.189-3.076 2.189-1.977 0-3.75-.627-5.326-1.875l-1.871 4.186c1.422.761 2.58 1.257 3.475 1.496l.141.033-1.798.416c-1.271.292-2.539-.503-2.832-1.771L.061 6.5c-.291-1.271.5-2.539 1.773-2.835l4.375-1.009c-.158.155-.307.316-.441.485l-.018.021c-.753.949-1.131 2.115-1.131 3.505 0 2.101 1.03 3.87 3.079 5.296l.046.029-.01.01zm10.358.072c-.84-.672-1.904-1.268-3.24-1.786-1.98-.784-3.271-1.41-3.871-1.872-.6-.465-.914-.981-.914-1.557 0-1.459.914-2.19 2.76-2.19 2.041 0 3.646.494 4.786 1.476l1.515-4.08c-1.095-.556-2.235-.96-3.405-1.216l-.06-.015c-.256-.061-.525-.12-.811-.164l2.625-.602c1.275-.285 2.535.511 2.836 1.771l3.63 15.647c.284 1.274-.51 2.551-1.784 2.835l-2.985.69c.824-1.051 1.245-2.34 1.245-3.87 0-1.575-.437-2.911-1.306-4.021-.285-.346-.615-.676-1.006-1.006l-.044-.029.029-.011z\"},\"child\":[]}]})(props);\n};\nexport function SiSmrt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.6535 13.753c.8096 4.4368 4.677 7.8105 9.3392 7.8105 4.677 0 8.6171-4.0882 9.3967-8.5422h-2.5631c-.7499 3.0597-3.5506 6.0385-6.8334 6.0385-2.3686 0-4.4526-1.1984-5.727-2.999h5.292c.435 0 .8542-.2304 1.214-.7029l1.2895-1.8584c.121-.2305.3448-.3601.6145-.3601h7.54L24 10.8318H13.6117c-.2535 0-.48.144-.6148.3284l-1.7089 2.2932c-.1037.1728-.2852.288-.4946.288zm18.6783-3.5063c-.8096-4.4396-4.6468-7.8102-9.3242-7.8102-4.677 0-8.4993 3.9755-9.2786 8.4299h2.5634c.7496-3.0598 3.4322-5.9265 6.7302-5.9265 2.3686 0 4.452 1.1985 5.7263 2.9964h-5.3065c-.4348 0-.8545.2305-1.2143.7058l-1.2892 1.8581c-.121.2305-.3448.3604-.6148.3604h-7.54L0 13.1365h10.3883c.2535 0 .48-.144.6148-.3284l1.7089-2.3107c.1037-.1729.2852-.2881.4946-.2881z\"},\"child\":[]}]})(props);\n};\nexport function SiSmugmug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.31 0l-.35.01c-1.55.13-2.46 1.2-2.6 2.28-.15 1.2.65 2.4 2.58 2.28 2.15-.12 3.09-1.2 3.1-2.28.02-1.15-1-2.28-2.73-2.29zM7.21.34A2.66 2.66 0 004.56 2.6C4.41 3.73 5.12 4.87 7 4.85c2.23-.04 3.31-1.37 3.16-2.57-.12-1-1.09-1.92-2.94-1.94zm12.35 8.71a7 7 0 00-.4.02c-5.28.54-5.54.6-15.26.82C-.2 9.9.62 24 9.38 24c8.2 0 18.12-15.15 10.18-14.95zm-1.1 2.7c3.18-.07-2.9 9.53-8.8 9.56-7.46 0-6.44-8.8-5.18-8.85 8.67-.35 10.88-.64 13.98-.71Z\"},\"child\":[]}]})(props);\n};\nexport function SiSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.206.793c.99 0 4.347.276 5.93 3.821.529 1.193.403 3.219.299 4.847l-.003.06c-.012.18-.022.345-.03.51.075.045.203.09.401.09.3-.016.659-.12 1.033-.301.165-.088.344-.104.464-.104.182 0 .359.029.509.09.45.149.734.479.734.838.015.449-.39.839-1.213 1.168-.089.029-.209.075-.344.119-.45.135-1.139.36-1.333.81-.09.224-.061.524.12.868l.015.015c.06.136 1.526 3.475 4.791 4.014.255.044.435.27.42.509 0 .075-.015.149-.045.225-.24.569-1.273.988-3.146 1.271-.059.091-.12.375-.164.57-.029.179-.074.36-.134.553-.076.271-.27.405-.555.405h-.03c-.135 0-.313-.031-.538-.074-.36-.075-.765-.135-1.273-.135-.3 0-.599.015-.913.074-.6.104-1.123.464-1.723.884-.853.599-1.826 1.288-3.294 1.288-.06 0-.119-.015-.18-.015h-.149c-1.468 0-2.427-.675-3.279-1.288-.599-.42-1.107-.779-1.707-.884-.314-.045-.629-.074-.928-.074-.54 0-.958.089-1.272.149-.211.043-.391.074-.54.074-.374 0-.523-.224-.583-.42-.061-.192-.09-.389-.135-.567-.046-.181-.105-.494-.166-.57-1.918-.222-2.95-.642-3.189-1.226-.031-.063-.052-.15-.055-.225-.015-.243.165-.465.42-.509 3.264-.54 4.73-3.879 4.791-4.02l.016-.029c.18-.345.224-.645.119-.869-.195-.434-.884-.658-1.332-.809-.121-.029-.24-.074-.346-.119-1.107-.435-1.257-.93-1.197-1.273.09-.479.674-.793 1.168-.793.146 0 .27.029.383.074.42.194.789.3 1.104.3.234 0 .384-.06.465-.105l-.046-.569c-.098-1.626-.225-3.651.307-4.837C7.392 1.077 10.739.807 11.727.807l.419-.015h.06z\"},\"child\":[]}]})(props);\n};\nexport function SiSnapcraft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.804 13.367V5.69l5.292 2.362-5.292 5.315zM3.701 23.514l6.49-12.22 2.847 2.843L3.7 23.514zM0 .486l13.355 4.848v8.484L0 .486zM21.803 5.334H14.11L24 9.748z\"},\"child\":[]}]})(props);\n};\nexport function SiSnapdragon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .016h-.351c-3.223.128-6.862 2.202-7.596 5.49-.032.127-.191.127-.223 0-.16-.799-.128-1.66.096-2.394a12.645 12.645 0 0 0-1.82 2.074 6.473 6.473 0 0 0-.638 1.34c-.447 1.405-.287 3.096.702 4.245.926 1.085 2.394 1.468 3.575 2.202 1.18.703 2.202 1.66 2.68 3 .511 1.405.416 3-.127 4.373-.032.127-.223.095-.223-.064.127-2.01-.894-3.894-2.777-4.787-.99-.447-2.106-.639-3.096-1.117C1.31 13.963.16 13.133 0 12.048c0 6.574 5.362 11.936 12 11.936 6.607 0 12-5.362 12-12S18.607.016 12 .016m8.745 18.638a11.663 11.663 0 0 1-3.255 2.872s0-.032.032-.032c-.83.479-1.724.894-2.681 1.15.734-.607 3.127-2.171 3.127-6.48 0-3.191-2.01-5.33-4.276-6.382C11.107 8.569 8.33 7.93 8.33 4.675c0-1.723 1.372-3.574 3.51-3.606.128-.032.288-.032.416-.032h.127a10.827 10.827 0 0 1 7.5 3.35 10.923 10.923 0 0 1 3.096 7.66v.064c0 1.34-.255 2.65-.702 3.862v.032c-.032.096-.096.223-.128.32-.032.063-.064.127-.064.159s-.032.032-.032.064a13.475 13.475 0 0 1-1.308 2.106\"},\"child\":[]}]})(props);\n};\nexport function SiSncf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.093 5.76c4.628 0 14.881.633 21.698 4.934.21.135.25.27.173.519-.039.115-2.151 6.74-2.151 6.74-.096.287-.25.287-.423.287H.384c-.25 0-.384-.172-.384-.384V6.182c0-.25.173-.384.46-.384.423 0 .96-.038 1.633-.038zm.288 6.355c-.384.941.71 1.517 1.67 1.959.788.345 1.345.71 1.133 1.113-.134.346-.71.5-1.478.5-.672 0-1.517-.212-2.19-.519l-.383.845c.5.211 1.478.519 2.342.557 1.594.038 2.65-.346 3.073-1.229.426-.976-.575-1.51-1.518-1.963l-.092-.045-.138-.066c-.787-.345-1.305-.557-1.17-.94.133-.461.92-.634 1.631-.596.346 0 .595.039.922.135l.25-.807c-.346-.077-.634-.096-1.057-.096-1.42-.038-2.688.346-2.995 1.152Zm13.595-1.21c-1.344 0-2.554.461-3.284 1.268 0 .038-.038.038-.077.038-.038 0-.038 0-.038-.038l.384-1.19h-1.133l-1.267 3.82c-.384-1.113-1.21-2.63-2.19-3.82H7.163l-.883 2.803c.442.345.576.595.73.921 0 0 0 .039.038.039 0 0 .038 0 .038-.039 0-.038.788-2.419.788-2.419a14.506 14.506 0 0 1 2.016 4.167h1.267l.634-1.997s0-.039.038-.039c0 0 .039 0 .039.039.172 1.229 1.44 2.074 3.225 2.074 1.133 0 2.19-.308 2.439-.423l.672-2.112h2.573l.25-.807h-2.612l.461-1.363h3.072l.288-.845h-4.34l-1.44 4.551c-.326.077-.71.096-1.094.096-.845 0-1.555-.211-1.94-.672a1.467 1.467 0 0 1-.326-1.267c.173-1.152 1.306-1.901 2.823-1.901.326 0 .634 0 .96.077l.327-.884c-.346-.076-.807-.076-1.23-.076z\"},\"child\":[]}]})(props);\n};\nexport function SiSnort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.53 14.994c.257-.027.46-.392.582-.555-.23-.163-.718.217-.582.555m11.815-1.747c-1.03 1.34-2.629 3.305-2.588 4.511.23-1.016 1.355-1.26 2.94-3.36.84-1.097 1.138-1.3 2.222-3.211.04-.054.718-.271.556-.474-1.315.474-2.575 1.829-3.13 2.534m4.43-5.054c-.325-.529-1.26-.773-1.991-.637-2.683.623-6.3-.23-7.276-.8-.068 0 .149-.528.013-.731.203-.136.271-.217.528-.15.461.204 1.03.123 1.49.055-.27-.528-.541-1.558-.948-2.154-.393.325-1.002.582-1.395.853-.732-1.978-3.211-2.33-5.217-1.192-.054.027-.108.027-.108.027s-.542-1.138-.772-1.667C7.38 2.217 6.757 2.8 6.486 2.8c-.542 0-1.192 0-1.72-.068 0 .922.352 1.992.392 2.792-.8.799-1.585 1.585-2.113 2.588-.583-.136-1.233-.23-1.843.027-.38.162-.827.636-.678 1.165.082.298.461.61 1.193.8-1.41 1.354-2.128 4.213-.84 5.202-.326.325-.719.637-.84 1.07-.15.57.176.773.569.854.731.136 1.26-.23 1.802-.555 1.138.677 1.91.623 3.238.69.135 0 .447.394.447.394s-.894-.095-1.355.04c-.623.19-1.165.772-.732 1.274.637.759 1.87 1.03 2.981.759.678.718.366 1.896-.772 2.37.99-.067 2.14-.731 2.263-2.1.027-.257-.122-.677-.325-.88-.136-.136-.312-.325-.312-.325s.555-1.057-.596-1.653c.46-.095 1.328-.461 1.328-.461s.352.406.663.46c.34.055.732-.135.868-.46.19-.488-.393-.867-.393-.867l.46-.732s.407.38.583.678c.57.948.678 1.896 1.206 2.831.27.461.732.84 1.192 1.044a2.5 2.5 0 0 0 1.274.08c.745-.135 1.341-.378 1.761-.636 2.954-1.761 5.027-4.065 6.83-7.33.446-.88 1.422-2.602.758-3.658m-8.4-3.943s.176.311.27.528c.136.325.394.962.394.962l-.529-.095-.501-.352s-.068.257-.352.474c-.136-.393.149-.582-.244-1.016.311-.203.962-.501.962-.501m-7.29 15.853c.122.704-.501 1.422-.935 1.693.38-.582.746-.84.312-2.046-.176-.474-.596-.813-1.03-1.097-.135-.095-.311-.15-.515-.203-.216-.055-.46.108-.664.311 0 0 .624.312 1.166.407.311.406-.312.42-.312.42-.068.067-1.788-.176-1.68-1.016.04-.326.69-.935 1.992-.434.731.284 1.558 1.3 1.666 1.965m-.732-2.48c.326.149.326.528.326.867 0 .068-.068.068-.136.136-.203-.366-.542-.542-.867-.8-.068-.054-.108-.081-.04-.149.216-.203.487-.176.717-.054m2.426-1.138c-.122.46-.556.38-.596.149-.04-.203.217-.271.298-.366.068.04.311.149.298.217m2.507 1.22c-.719-2.141-2.697-4.106-3.659-4.675-.054-.027-.176.149-.176.149s.867.813 1.003 1.409c.135.528-.163 1.097-.501 1.49-1.328 1.26-3.117 1.016-4.824.895-.528-.041-1.314-.393-.908-1.193-.596.461-1.517 1.328-2.195 1.057-.135-.054-.325-.38-.19-.69.244-.516 1.057-1.315 1.762-1.667.04-.068-.054-.204-.312-.082-.27.122-.8.637-1.016.529-1.206-.597-.434-2.819-.04-3.55.487-.908 1.124-1.07 1.788-1.274-.786-.135-1.396-.217-1.789-.623-.203-.271-.108-.474.095-.732a1.56 1.56 0 0 1 .705-.42c.27-.081.501-.04.759.014.65.135.69.474 1.016.406-.068-.149-.407-.46-.339-.596a5.95 5.95 0 0 1 1.572-1.978c.095-.082.162-.095.298-.095.203.068.122.27.244.46.203.34.745.326 1.07.068.664-.528.88-1.517 1.152-2.317 0-.067.217-.487-.15-.365-.175.731-.46 1.327-.866 1.991-.203.271-.434.502-.76.38-.067-.068-.202-.109-.23-.312-.135-.948-.325-2.723-.325-2.723s.922.122 1.274.04c.203-.04.664-.596 1.125-.786.325.461.636.908.921 1.355 1.328-.596 2.886-1.07 4.2-.08.461.392.962.893 1.111 1.34.122.34.19 1.166.109 1.789 1.124.596 2.235.935 3.495 1.179.556.108.99.162 1.532.203.27.027.907.108 2.167-.108-2.588.528-4.674 2.195-6.422 4.213-.867.99-2.412 3.415-2.615 4.296-.081.365-.095.555-.081 1.002Zm10.568-6.572c-.434 1.273-1.545 2.954-2.696 4.2-1.07 1.165-4.106 3.956-6.247 3.835-1.002-.055-1.395-1.084-1.03-2.236.678-2.181 3.7-6.612 7.534-8.197.8-.325 2.195-.474 2.52-.054.434.61.19 1.653-.08 2.452Zm-2.914-.068c.177-.339.38-.474.448-.745.068-.46.88-.163.921-.772-1.382.216-3.13 1.883-4.281 3.306-1.193 1.463-2.886 3.577-2.724 5.121.271-1.273.746-.745 2.683-3.103 1.057-1.273 2.141-2.303 2.954-3.807m-6.504-5.569c-.217-.23-.38.325-.501.23-.42-.311.23-1.409-.583-1.544-.664-.122-1.151.637-1.585 1.07.203.65.962-1.165 1.49-.636.217.216.204.677.312.935-.38-.136-.8.447-.637.934.054.15.23.258.312.176.149-.094-.081-.176-.095-.216a.61.61 0 0 1 .176-.637c.176-.15.15.095.081.311-.04.136-.149.217-.121.312.243.203.42-.623.42-.623s.528.217.731-.312m.082.474c-.068.068-.163.109-.19.244-.027.15-.163.34-.095.488.285.15.583-.298.501-.582 0-.082-.067-.23-.216-.15m.067.34c-.013.121-.027.108-.081.203s-.081.013-.095-.068.014-.095.054-.23c.027-.109.068-.095.082-.095.067 0 .054.067.04.19\"},\"child\":[]}]})(props);\n};\nexport function SiSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 3.459c0 .646-.418 1.18-1.141 1.18-.723 0-1.142-.534-1.142-1.18 0-.647.419-1.18 1.142-1.18.723 0 1.141.533 1.141 1.18zm-.228 0c0-.533-.38-.951-.913-.951s-.913.38-.913.95c0 .533.38.952.913.952.57 0 .913-.419.913-.951zm-1.37-.533h.495c.266 0 .456.152.456.38 0 .153-.076.229-.19.305l.19.266v.038h-.266l-.19-.266h-.229v.266h-.266zm.495.228h-.229v.267h.229c.114 0 .152-.038.152-.114.038-.077-.038-.153-.152-.153zM7.602 12.4c.038-.151.076-.304.076-.456 0-.114-.038-.228-.038-.342-.114-.343-.304-.647-.646-.838l-4.87-2.777c-.685-.38-1.56-.152-1.94.533-.381.685-.153 1.56.532 1.94l2.701 1.56-2.701 1.56c-.685.38-.913 1.256-.533 1.94.38.685 1.256.914 1.94.533l4.832-2.777c.343-.267.571-.533.647-.876zm1.332 2.626c-.266-.038-.57.038-.837.19l-4.832 2.777c-.685.38-.913 1.256-.532 1.94.38.686 1.255.914 1.94.533l2.701-1.56v3.12c0 .8.647 1.408 1.446 1.408.799 0 1.407-.647 1.407-1.408v-5.592c0-.761-.57-1.37-1.293-1.408zm4.946-6.088c.266.038.57-.038.837-.19l4.832-2.777c.685-.38.913-1.256.532-1.94-.38-.686-1.255-.914-1.94-.533l-2.701 1.56V1.975c0-.799-.647-1.408-1.446-1.408-.799 0-1.446.609-1.446 1.408V7.53c0 .76.609 1.37 1.332 1.407zM3.265 5.97l4.832 2.777c.266.152.533.19.837.19.723-.038 1.331-.684 1.331-1.407V1.975c0-.799-.646-1.408-1.407-1.408-.799 0-1.446.647-1.446 1.408v3.12l-2.701-1.56c-.685-.38-1.56-.152-1.94.533-.419.646-.19 1.521.494 1.902zm9.093 6.011a.412.412 0 00-.114-.266l-.57-.571a.346.346 0 00-.267-.114.412.412 0 00-.266.114l-.571.57a.411.411 0 00-.114.267c0 .076.038.19.114.267l.57.57a.345.345 0 00.267.114c.076 0 .19-.038.266-.114l.571-.57a.412.412 0 00.114-.267zm1.598.533L11.94 14.53c-.039.038-.153.114-.229.114h-.608a.411.411 0 01-.267-.114L8.82 12.514a.408.408 0 01-.076-.229v-.608c0-.076.038-.19.114-.267l2.016-2.016a.41.41 0 01.267-.114h.608a.41.41 0 01.267.114l2.016 2.016a.347.347 0 01.114.267v.608c-.076.077-.114.19-.19.229zm5.593 5.44l-4.832-2.777c-.266-.152-.57-.19-.837-.152-.723.038-1.332.684-1.332 1.408v5.554c0 .8.647 1.408 1.408 1.408.799 0 1.446-.647 1.446-1.408v-3.12l2.7 1.56c.686.38 1.561.152 1.941-.533.419-.646.19-1.521-.494-1.94zm2.549-7.533l-2.701 1.56 2.7 1.56c.686.38.914 1.256.533 1.94-.38.685-1.255.913-1.94.533l-4.832-2.778a1.644 1.644 0 01-.647-.798c-.037-.153-.076-.305-.076-.457 0-.114.039-.228.039-.342.114-.343.342-.647.646-.837l4.832-2.778c.685-.38 1.56-.152 1.94.533.457.609.19 1.484-.494 1.864\"},\"child\":[]}]})(props);\n};\nexport function SiSnowpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.8094 19.7512l-10.8-16.7999a1.2002 1.2002 0 00-2.0189 0L.1906 19.7512a1.2 1.2 0 00-.0439 1.224 1.2002 1.2002 0 001.0534.6247H22.8c.4391 0 .843-.2396 1.0534-.6251a1.1994 1.1994 0 00-.044-1.2236zM12 5.8193L15.202 10.8H12l-2.4 2.4-1.4272-1.4272z\"},\"child\":[]}]})(props);\n};\nexport function SiSnyk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.097 13.344c.143-.37.06-2.117-.222-4.675l-.004-.04.904-2.431v-.05c0-1.06-1.374-3.9-2.186-5.41L15.192 0l-.84 5.854-.503.829-.125-.042c-.351-.118-1.042-.316-1.728-.316-.65 0-1.294.171-1.72.315l-.125.042-.504-.827L8.807 0l-.396.737c-.812 1.51-2.186 4.35-2.186 5.411v.05l.904 2.432-.004.039c-.283 2.558-.366 4.305-.222 4.674.13.332.642 1.041 1.072 1.605l-.619 5.724.617.442.576-5.329c.012.414.064 1.277.275 2.068l-.389 3.592L12 24l4.279-3.067.375-.268-.62-5.73c.428-.561.934-1.262 1.063-1.591zM15.59 2.298c.694 1.408 1.421 3.08 1.471 3.779l-.388 1.045c-.935-1.31-1.228-3.441-1.253-3.636zm-1.124 7.8c.84 0 .212.712.138.792h-1.587c.144-.18.69-.792 1.45-.792zm-.452 1.468a.178.178 0 0 1-.175.153.292.292 0 1 0 .441-.31h.504v.024a.662.662 0 0 1-1.325 0v-.025h.511l-.008.007c.039.038.06.093.052.15zM12.39 19.29c.097.064.2.115.306.156-.168.19-.399.287-.697.287-.299 0-.53-.097-.697-.288.107-.04.21-.092.306-.156a.573.573 0 0 0 .391.114c.103 0 .255 0 .391-.113zm-2.62-7.724a.178.178 0 0 1-.174.153.292.292 0 1 0 .441-.31h.504v.024a.662.662 0 0 1-1.326 0v-.025h.511l-.008.007c.039.038.06.093.052.15zm-.374-.676c-.074-.08-.702-.792.138-.792.759 0 1.305.612 1.45.792zM6.948 6.077c.05-.699.778-2.37 1.471-3.78l.185 1.29c-.07.48-.393 2.37-1.257 3.56zM9.473 18.09c-.373-1.02-.377-2.446-.377-2.507v-.097l-.06-.076c-.551-.683-1.477-1.9-1.616-2.257l-.005-.014c-.124-.43.1-2.997.268-4.513l.008-.066-.187-.502.07-.075c.476-.497.88-1.213 1.203-2.126L9 5.223l.118.82.807 1.326.22-.094c.009-.004.934-.4 1.851-.4H12v.44h-.004c-.812 0-1.669.36-1.677.363l-.571.246-.797-1.308c-.27.62-.585 1.137-.94 1.543l.129.347-.019.169c-.24 2.156-.348 4.044-.285 4.332.086.2.523.812 1 1.437l.748-.218 1.17-1.334.184 3.458c-.011.015-.28.393-.28.609 0 .235.344.541.685.786.005-.01.007-.02.013-.03.12-.212.275-.251.346-.087.04.092.028.369.028.369l.005.002v.328c-.013.027-.302.674-1.014.674-.275 0-.948-.089-1.248-.911zm2.536 2.409c-.527 0-1.297-.257-1.374-.952.029.001.057.003.086.003.06 0 .119-.003.177-.01.235.455.665.6 1.102.6.436 0 .865-.146 1.1-.6.059.007.119.01.18.01.029 0 .057-.002.085-.003-.076.695-.835.952-1.356.952zm2.956-5.09l-.061.077v.097c0 .06-.004 1.487-.377 2.507-.3.822-.973.91-1.248.91-.71 0-1.002-.658-1.014-.686V18l.005-.004s-.012-.276.028-.368c.07-.164.226-.126.346.088.006.009.009.02.013.03.34-.246.686-.552.686-.787 0-.216-.269-.593-.28-.61l.183-3.457 1.17 1.334 1.2.35c-.23.304-.463.6-.651.834zm-8.472-1.907c-.22-.563-.022-2.916.187-4.817l-.895-2.409v-.128c0-.312.095-.734.246-1.207-1.177.253-1.808.49-1.808.49v12.996l2.67 1.914.577-5.332c-.538-.718-.868-1.226-.977-1.507zm3.853-7.346c.446-.136 1.042-.27 1.65-.27.61 0 1.21.135 1.658.27l.276-.453.184-1.288s-1.288-.068-2.103-.068c-.759 0-1.467.026-2.125.07l.184 1.286zm7.623-1.217c.151.474.247.896.247 1.21v.127l-.895 2.409c.208 1.901.406 4.253.186 4.818-.109.279-.435.782-.968 1.493l.578 5.337 2.66-1.906V5.432s-.632-.24-1.808-.493Z\"},\"child\":[]}]})(props);\n};\nexport function SiSocialblade (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.323 16.688H0v1.893h2.323v-1.893ZM5.935 13.591H3.613v4.99h2.322v-4.99ZM9.548 14.796H7.226v3.785h2.322v-3.785ZM13.161 13.935H10.84v4.646h2.322v-4.646ZM16.774 12.043h-2.322v6.538h2.322v-6.538ZM20.387 10.065h-2.323v8.516h2.323v-8.516ZM24 5.42h-2.323v13.16H24V5.42Z\"},\"child\":[]}]})(props);\n};\nexport function SiSociety6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm7.928 4.966l.042.876-.916.157c-.705.194-1.32.465-1.843.813s-.966.73-1.33 1.148a6.147 6.147 0 0 0-.888 1.339l-.016.036c-.243.506-.459 1.04-.65 1.599a4.992 4.992 0 0 1 1.31-.812l.033-.012c.521-.223 1.141-.335 1.864-.335.839 0 1.543.296 2.111.884s.853 1.355.853 2.298c0 1.409-.541 2.628-1.624 3.659s-2.414 1.547-3.992 1.547c-1.255 0-2.256-.374-3.003-1.122s-1.12-1.743-1.12-2.981c0-2.363.84-4.387 2.52-6.073s3.895-2.692 6.65-3.023zM7.925 9.103c.435 0 .838.027 1.211.081.388.055.739.159 1.065.307l-.024-.01c.286.13.524.322.705.56l.003.004c.169.232.252.513.252.844s-.118.614-.356.852c-.237.238-.549.356-.933.356-.332 0-.607-.091-.828-.272s-.399-.394-.537-.642c-.137-.253-.247-.516-.327-.784s-.146-.493-.197-.674c-.401.024-.765.178-1.094.459s-.495.629-.495 1.046c0 .253.039.452.116.596s.184.265.311.358l.003.002c.162.115.348.217.544.296l.018.006c.151.069.431.177.714.279l.132.041c.778.288 1.365.635 1.76 1.038.321.328.509.742.569 1.241-.008-.117.117 1.109.018.183.002.056.006.113.006.171 0 .433-.097.847-.289 1.245s-.464.728-.818.992a4.26 4.26 0 0 1-1.336.646l-.03.007c-.516.147-1.172.221-1.967.221-.722 0-1.318-.061-1.789-.184s-.845-.282-1.12-.474c-.281-.193-.473-.398-.575-.617s-.155-.425-.155-.617c0-.349.125-.655.373-.916s.58-.391.991-.391c.344 0 .631.092.863.278.236.193.43.426.574.691l.006.012c.136.244.259.528.352.824l.009.032c.035.09.106.322.172.556l.034.139c.647 0 1.137-.144 1.469-.436s.498-.691.498-1.196c0-.222-.05-.408-.15-.558s-.234-.283-.399-.398c-.166-.108-.377-.213-.635-.315s-.513-.198-.765-.289c-.693-.246-1.24-.587-1.644-1.023s-.605-.978-.605-1.628v-.013c0-.391.093-.76.259-1.087l-.006.014c.17-.34.434-.654.794-.944.355-.276.804-.496 1.348-.661s1.179-.249 1.906-.249zm8.017 1.874c-.329 0-.64.066-.933.199s-.605.397-.934.792c-.04.183-.109.534-.21 1.055s-.152 1.162-.152 1.923c0 .778.123 1.384.365 1.82s.566.655.968.655c.626 0 1.168-.432 1.628-1.295h.002c.46-.864.69-1.912.69-3.144 0-.618-.134-1.108-.402-1.468s-.608-.538-1.022-.538z\"},\"child\":[]}]})(props);\n};\nexport function SiSocketdotio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9362.0137a12.1694 12.1694 0 00-2.9748.378C4.2816 1.5547.5678 5.7944.0918 10.6012c-.59 4.5488 1.7079 9.2856 5.6437 11.6345 3.8608 2.4179 9.0926 2.3199 12.8734-.223 3.3969-2.206 5.5118-6.2277 5.3858-10.2845-.058-4.0159-2.31-7.9167-5.7588-9.9796C16.354.5876 14.1431.0047 11.9362.0137zm-.063 1.696c4.9448-.007 9.7886 3.8137 10.2815 8.9245.945 5.6597-3.7528 11.4125-9.4875 11.5795-5.4538.544-10.7245-4.0798-10.8795-9.5566-.407-4.4338 2.5159-8.8346 6.6977-10.2995a9.1126 9.1126 0 013.3878-.647zm5.0908 3.2248c-2.6869 2.0849-5.2598 4.3078-7.8886 6.4567 1.2029.017 2.4118.016 3.6208.01 1.41-2.165 2.8589-4.3008 4.2678-6.4667zm-5.6647 7.6536c-1.41 2.166-2.86 4.3088-4.2699 6.4737 2.693-2.0799 5.2548-4.3198 7.9017-6.4557a255.4132 255.4132 0 00-3.6318-.018z\"},\"child\":[]}]})(props);\n};\nexport function SiSoftpedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.88 18.093V24c4.526 0 9.959-.326 13.765-1.628a14.698 14.698 0 0 0 2.708-1.23c1.255-.752 2.208-1.668 2.844-2.763.317-.533.559-1.107.725-1.709l.197-1.723c0-.63-.09-1.23-.257-1.819a6.72 6.72 0 0 0-.696-1.531c-.484-.78-1.165-1.45-2.012-2.024a12.187 12.187 0 0 0-1.95-.999c-1.722-.642-4.38-1.295-5.356-1.654-.882-.294-1.784-.738-1.784-1.012H20.59V0H10.11C7.522 0 5.677 1.148 4.573 3.46c-1.18 2.461-.741 4.704 1.286 6.714.56.561 1.24 1.053 2.042 1.477.862.452 2.072.903 3.615 1.34 1.664.493 2.465.712 2.374.684.56.178 1 .342 1.332.493l.62.328c.272.191.332.506.18.957-.165.22-.437.452-.8.67-.938.574-2.375 1.026-4.311 1.34-2.39.424-5.4.63-9.03.63z\"},\"child\":[]}]})(props);\n};\nexport function SiSogou (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.801 22.74L17.79 24c1.561-.676 2.926-1.62 4.051-2.851l-.946-1.318c-1.11 1.289-2.475 2.279-4.08 2.909h-.014zM12 22.199c-5.775 0-10.455-4.619-10.455-10.35C1.545 6.15 6.225 1.53 12 1.53s10.456 4.65 10.456 10.35c0 2.55-.946 4.891-2.507 6.69l.945 1.261C22.801 17.729 24 14.939 24 11.88 24 5.295 18.63 0 12 0S0 5.311 0 11.85c0 6.57 5.37 11.88 12 11.88 1.71 0 3.33-.346 4.801-.99l-.961-1.26c-1.2.45-2.49.719-3.84.719zM18 12.646c-2.25-1.86-5.34-2.101-7.801-3.556-.75-.479-.148-1.395.602-1.425 2.699-.45 5.369.63 7.889 1.5l.151-2.655c-3.151-1.14-6.57-1.875-9.901-1.35-1.2.3-2.4.675-3.254 1.56-1.171 1.2-.961 3.36.389 4.32 2.236 1.755 5.176 2.011 7.621 3.36.96.39.555 1.68-.391 1.77-2.925.555-5.805-.721-8.325-2.1-.03 1.02-.06 2.01-.06 3 3.195 1.409 6.75 2.069 10.2 1.529 1.17-.225 2.37-.6 3.225-1.454 1.229-1.2 1.111-3.511-.33-4.5H18z\"},\"child\":[]}]})(props);\n};\nexport function SiSolana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.8764 18.0313-3.962 4.1393a.9201.9201 0 0 1-.306.2106.9407.9407 0 0 1-.367.0742H.4599a.4689.4689 0 0 1-.2522-.0733.4513.4513 0 0 1-.1696-.1962.4375.4375 0 0 1-.0314-.2545.4438.4438 0 0 1 .117-.2298l3.9649-4.1393a.92.92 0 0 1 .3052-.2102.9407.9407 0 0 1 .3658-.0746H23.54a.4692.4692 0 0 1 .2523.0734.4531.4531 0 0 1 .1697.196.438.438 0 0 1 .0313.2547.4442.4442 0 0 1-.1169.2297zm-3.962-8.3355a.9202.9202 0 0 0-.306-.2106.941.941 0 0 0-.367-.0742H.4599a.4687.4687 0 0 0-.2522.0734.4513.4513 0 0 0-.1696.1961.4376.4376 0 0 0-.0314.2546.444.444 0 0 0 .117.2297l3.9649 4.1394a.9204.9204 0 0 0 .3052.2102c.1154.049.24.0744.3658.0746H23.54a.469.469 0 0 0 .2523-.0734.453.453 0 0 0 .1697-.1961.4382.4382 0 0 0 .0313-.2546.4444.4444 0 0 0-.1169-.2297zM.46 6.7225h18.7815a.9411.9411 0 0 0 .367-.0742.9202.9202 0 0 0 .306-.2106l3.962-4.1394a.4442.4442 0 0 0 .117-.2297.4378.4378 0 0 0-.0314-.2546.453.453 0 0 0-.1697-.196.469.469 0 0 0-.2523-.0734H4.7596a.941.941 0 0 0-.3658.0745.9203.9203 0 0 0-.3052.2102L.1246 5.9687a.4438.4438 0 0 0-.1169.2295.4375.4375 0 0 0 .0312.2544.4512.4512 0 0 0 .1692.196.4689.4689 0 0 0 .2518.0739z\"},\"child\":[]}]})(props);\n};\nexport function SiSolid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.558.788A9.082 9.082 0 0 0 9.776.99l-.453.15c-.906.303-1.656.755-2.1 1.348l-.301.452-2.035 3.528c.426-.387.974-.698 1.643-.894h.001l.613-.154h.001a8.82 8.82 0 0 1 1.777-.206c2.916-.053 6.033 1.148 8.423 2.36 2.317 1.175 3.888 2.32 3.987 2.39L24 5.518c-.082-.06-1.66-1.21-3.991-2.386-2.393-1.206-5.521-2.396-8.45-2.343zM8.924 5.366a8.634 8.634 0 0 0-1.745.203l-.606.151c-1.278.376-2.095 1.16-2.43 2.108-.334.948-.188 2.065.487 3.116.33.43.747.813 1.216 1.147L12.328 10h.001a6.943 6.943 0 0 1 6.013 1.013l2.844-.963c-.17-.124-1.663-1.2-3.91-2.34-2.379-1.206-5.479-2.396-8.352-2.344zm5.435 4.497a6.791 6.791 0 0 0-1.984.283L2.94 13.189 0 18.334l9.276-2.992a6.945 6.945 0 0 1 7.408 2.314v.001c.695.903.89 1.906.66 2.808l2.572-4.63c.595-1.041.45-2.225-.302-3.429a6.792 6.792 0 0 0-5.255-2.543zm-3.031 5.341a6.787 6.787 0 0 0-2.006.283L.008 18.492c.175.131 2.02 1.498 4.687 2.768 2.797 1.332 6.37 2.467 9.468 1.712l.454-.152h.002c1.278-.376 2.134-1.162 2.487-2.09.353-.93.207-2.004-.541-2.978a6.791 6.791 0 0 0-5.237-2.548z\"},\"child\":[]}]})(props);\n};\nexport function SiSolidity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.409 6.608L7.981.255l3.572 6.353H4.409zM8.411 0l3.569 6.348L15.552 0H8.411zm4.036 17.392l3.572 6.354 3.575-6.354h-7.147zm-.608-10.284h-7.43l3.715 6.605 3.715-6.605zm.428-.25h7.428L15.982.255l-3.715 6.603zM15.589 24l-3.569-6.349L8.448 24h7.141zm-3.856-6.858H4.306l3.712 6.603 3.715-6.603zm.428-.25h7.433l-3.718-6.605-3.715 6.605z\"},\"child\":[]}]})(props);\n};\nexport function SiSololearn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.621 16.084a8.483 8.483 0 0 1-2.922 6.427c-.603.53-.19 1.522.613 1.442a9.039 9.039 0 0 0 1.587-.3 8.32 8.32 0 0 0 5.787-5.887 8.555 8.555 0 0 0-8.258-10.832 9.012 9.012 0 0 0-1.045.06c-.794.1-.995 1.161-.29 1.542 2.701 1.452 4.53 4.285 4.53 7.548zM7.906 18.597a8.538 8.538 0 0 1-6.45-2.913c-.532-.6-1.527-.19-1.446.61a8.943 8.943 0 0 0 .3 1.582c.794 2.823 3.064 5.026 5.907 5.766 5.727 1.492 10.87-2.773 10.87-8.229 0-.35-.02-.7-.06-1.04-.1-.792-1.165-.992-1.547-.29a8.597 8.597 0 0 1-7.574 4.514zM5.382 7.916a8.483 8.483 0 0 1 2.924-6.427c.603-.531.19-1.522-.613-1.442a9.93 9.93 0 0 0-1.598.29A8.339 8.339 0 0 0 .31 6.224a8.555 8.555 0 0 0 8.258 10.832c.352 0 .704-.02 1.045-.06.794-.1.995-1.162.29-1.542a8.54 8.541 0 0 1-4.52-7.538zm10.72-2.513a8.538 8.538 0 0 1 6.45 2.913c.53.6 1.526.19 1.445-.61a8.945 8.945 0 0 0-.3-1.583C22.902 3.3 20.632 1.098 17.788.357 12.071-1.145 6.928 3.12 6.928 8.576c0 .35.02.7.06 1.041.1.791 1.168.991 1.549.29A8.58 8.58 0 0 1 16.1 5.404z\"},\"child\":[]}]})(props);\n};\nexport function SiSolus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.453 0c-.18.587-.369 1.167-.565 1.75A11.638 11.638 0 0 0 0 12.364a11.638 11.638 0 0 0 .516 3.403l-.339.598L0 16.73l.279.143a3.448 3.448 0 0 0 .741.222A11.638 11.638 0 0 0 2 18.868c4.034.343 8.55.512 12.446-.056 3.192-.463 5.94-1.423 7.735-3.117.252-.233.474-.474.674-.722.019-.038.037-.053.06-.076.011 0 .026-.037.038-.052.015 0 .03-.038.041-.057.008 0 .015-.038.023-.038.33-.444.587-.892.801-1.31l.181-.365-.365-.365a5.936 5.936 0 0 0-.361-.35A11.638 11.638 0 0 0 11.635.722a11.638 11.638 0 0 0-3.211.463C7.96.508 7.596.041 7.453 0zm.365 1.637C9.06 3.82 10.13 5.06 11.454 7.457c.132 1.524.67 9.45.727 10.181-.392-.037-2.485-.24-5.104-.515-1.43-.147-2.899-.316-4.092-.49l-1.9-.447c2.149-3.787 5.551-9.727 6.737-14.548zm4.543 6.18s4.991 3.927 7.092 8.73c-2.56 1.26-4.916 1.098-6.361 1.09 1.023-2.634 1.023-6.21-.73-9.82zm3.456 2.184a45.14 45.14 0 0 1 2.91.907c1.768.629 3.417 1.49 4.365 2.364a6.956 6.956 0 0 1-2.91 2.91c.151-1.495-.39-2.933-1.456-4.002-.787-.787-1.822-1.453-2.91-2.183zm6.707 6.478c-2.352 1.667-5.126 2.68-7.965 3.112a41.026 41.026 0 0 1-3.715.34h-.323a53.48 53.48 0 0 1-3.727 0 85.763 85.763 0 0 1-4.178-.23h-.003c2.555 3.255 6.993 4.893 11.092 4.102a11.367 11.367 0 0 0 4.498-1.852 11.638 11.638 0 0 0 .007 0c.312-.214.614-.444.903-.685a11.638 11.638 0 0 0 .038-.037 11.555 11.555 0 0 0 3.376-4.762zM2.511 19.584a11.638 11.638 0 0 0 .023.038c-.008 0-.015-.038-.023-.038z\"},\"child\":[]}]})(props);\n};\nexport function SiSonar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.63 5.037a3.834 3.834 0 0 0-.702.044 14.875 14.875 0 0 1 1.018 5.465c0 5.693-3.172 10.745-7.802 12.587.234.015.469.024.707.024h.035a7.434 7.434 0 0 0 5.748-2.764c1.773-2.194 2.861-5.15 2.861-8.391a13.582 13.582 0 0 0-1.865-6.965Zm-.738 5.509a13.833 13.833 0 0 0-.98-5.172c-.136.056-.233.107-.304.142a.8.8 0 0 0-.424.804c.083.72.126 1.444.127 2.169 0 3.312-1.069 6.49-3.011 8.946-1.837 2.321-4.301 3.815-6.981 4.242l.023.014a5.457 5.457 0 0 0 5.103.153c3.782-1.854 6.447-6.22 6.447-11.298ZM24 12.002a11.104 11.104 0 0 0-.85-4.276 4.892 4.892 0 0 0-1.072-1.627 3.61 3.61 0 0 0-.842-.631A3.598 3.598 0 0 0 21 5.356a14.841 14.841 0 0 1 1.544 6.642c0 3.294-1.073 6.467-2.982 8.901A11.135 11.135 0 0 0 24 12.002Zm-3.147-7.771A11.118 11.118 0 0 0 12.856.843C6.691.843 1.64 5.95 1.702 12.115c.013 1.461.315 2.905.888 4.25-.184-.024-.369-.032-.555-.024-.5.023-1.207-.157-1.527-.247-.32-.089-.606.167-.476.465v.009c1.108 2.536 3.562 4.187 5.906 4.182.155 0 .311-.008.466-.024 5.488-.418 9.843-5.746 9.843-12.236 0-.409-.018-.816-.053-1.22a.238.238 0 0 0-.054-.132.237.237 0 0 0-.263-.075.24.24 0 0 0-.117.084c-1.518 2.009-3.766 5.541-6.579 3.7-1.084-.706-1.661-2.225-1.335-3.772.586-2.777 3.822-4.608 5.248-4.034.112.045.513.205.65.571.208.558-.421 1.018-.742 2.007-.345 1.071-.15 2.206.092 2.256.271.054.726-.94 1.845-1.844.813-.654 1.426-.839 1.811-1.534.371-.678-.29-1.392-.065-1.456.225-.063.435.717 1.105 1.105.559.325 1.058.122 1.794.092.273-.002.545.019.813.063 0 0 .144.02.372.067a.077.077 0 0 0 .052-.003.084.084 0 0 0 .04-.034.076.076 0 0 0 .012-.051.082.082 0 0 0-.02-.049Zm-8.314 8.599a.786.786 0 0 1 .508-.307.648.648 0 0 1 .499.135c.271.251.191.736-.042 1.015-.217.258-.644.427-.941.236a.678.678 0 0 1-.263-.542.8.8 0 0 1 .239-.537Z\"},\"child\":[]}]})(props);\n};\nexport function SiSonarcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.406 10.9a7.088 7.088 0 00-3.377-2.358v-.085c0-4.035-3.156-7.324-7.047-7.324-3.893 0-7.05 3.282-7.05 7.325v.1C2.081 9.492 0 12.268 0 15.542c0 4.035 3.159 7.325 7.05 7.325a6.907 6.907 0 004.952-2.108 6.885 6.885 0 004.947 2.108c3.884 0 7.051-3.282 7.051-7.325a7.572 7.572 0 00-1.594-4.643zM16.95 21.014c-2.903 0-5.267-2.456-5.267-5.474a.91.91 0 00-.89-.924.906.906 0 00-.892.925c0 1.368.367 2.651.994 3.748a5.156 5.156 0 01-3.845 1.733c-2.904 0-5.27-2.457-5.27-5.474 0-3.016 2.366-5.473 5.27-5.473.63 0 1.241.117 1.827.335.007 0 .013.007.02.007.203.071.489.21.578.287a.858.858 0 001.249-.1.942.942 0 00-.097-1.3c-.39-.342-.995-.575-1.144-.63a6.814 6.814 0 00-2.425-.443c-.113 0-.225 0-.338.007.12-2.916 2.433-5.247 5.27-5.247 2.903 0 5.267 2.456 5.267 5.474a5.569 5.569 0 01-2.215 4.463.948.948 0 00-.21 1.283c.171.25.45.39.727.39a.86.86 0 00.516-.172 7.381 7.381 0 002.709-4.02c2.035.785 3.449 2.829 3.449 5.139-.007 3.01-2.371 5.466-5.283 5.466z\"},\"child\":[]}]})(props);\n};\nexport function SiSonarlint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.412 0 0 5.342 0 12c0 6.66 5.411 12 12 12 6.59 0 12-5.41 12-12 0-6.658-5.41-12-12-12zm0 2.22A9.77 9.77 0 0 1 21.78 12 9.768 9.768 0 0 1 12 21.78 9.77 9.77 0 0 1 2.22 12 9.771 9.771 0 0 1 12 2.22zM5.203 9.988c-.763 0-1.179.763-1.456 1.387 0 0-.208.555-.347.763-.07.277-.486 1.18-.14 1.665.209.277.486-.139.694-.347.139-.208.418-.833.418-.833.346-.555.485-.832.831-.832.347 0 .555.278.832.902.347.625.695 1.388 1.458 1.388s1.179-.763 1.456-1.388c.278-.555.485-.902.832-.902s.556.278.833.902c.347.625.694 1.388 1.457 1.388.763 0 1.179-.763 1.456-1.388.278-.555.485-.902.832-.902s.556.278.833.902c.347.625.694 1.388 1.457 1.388.763 0 1.179-.763 1.456-1.388.277-.555.486-.902.833-.902s.555.278.832.902c0 0 .139.277.347.624.07.138.416.693.693.693.278 0 .347-.832.07-1.525-.278-.625-.485-1.11-.485-1.11-.347-.624-.694-1.387-1.457-1.387-.763 0-1.18.763-1.458 1.387-.277.555-.485.901-.831.901-.347 0-.555-.277-.832-.9-.347-.625-.695-1.388-1.458-1.388s-1.179.763-1.456 1.387c-.278.555-.485.901-.832.901s-.556-.277-.833-.9c-.347-.625-.694-1.388-1.457-1.388-.763 0-1.179.763-1.456 1.387-.278.555-.485.901-.832.901s-.556-.277-.833-.9c-.347-.625-.694-1.388-1.457-1.388z\"},\"child\":[]}]})(props);\n};\nexport function SiSonarqube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.685.386l-.465.766c3.477 2.112 6.305 5.27 7.966 8.89L24 9.67C22.266 5.887 19.313 2.59 15.685.386zM8.462.91l-.305 1.075c6.89 1.976 12.384 7.64 13.997 14.421l1.085-.258C21.535 8.977 15.735 2.997 8.462.909zM0 2.667v1.342c10.963 0 19.883 8.795 19.883 19.605h1.342c0-11.55-9.522-20.947-21.225-20.947z\"},\"child\":[]}]})(props);\n};\nexport function SiSonarr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.212 4.282c1.851 2.204 2.777 4.776 2.777 7.718 0 2.848-.867 5.344-2.602 7.489a934.355 934.355 0 0 1-2.101-2.095c-1.477-1.477-1.792-3.293-1.792-5.278 0-2.224.127-3.486 1.577-4.935l2.478-2.478a13.209 13.209 0 0 0-.337-.421Zm-17.7 16.193C1.708 18.678.6 16.59.188 14.213A11.84 11.84 0 0 1 .011 12c0-.28.006-.548.017-.802 0-.026.007-.052.022-.078.153-2.601 1.076-4.889 2.767-6.865-.108.127-.214.256-.316.387 0 0 1.351 1.346 2.329 2.323 1.408 1.409 1.726 3.215 1.726 5.151 0 1.985-.249 3.762-1.781 5.295-1.035 1.035-2.119 2.124-2.119 2.124.112.136.229.271.349.404.029-.027 1.297-1.348 2.123-2.175 1.638-1.637 1.928-3.528 1.928-5.648 0-2.072-.365-3.997-1.873-5.504a620.045 620.045 0 0 0-2.366-2.357c.168-.196.342-.388.523-.576l3.117 3.106-.194.195 1.903 1.898.547-.549L6.81 6.432l-.196.196L3.495 3.52c.01-.009.436-.416.643-.597.009.011 2.28 2.283 2.28 2.283 1.538 1.537 3.5 1.955 5.621 1.955 2.18 0 4.134-.442 5.731-2.038.907-.908 2.153-2.149 2.162-2.16.17.151.491.461.56.528l.013.013-3.111 3.028-.001.002-.197-.194-1.876 1.903.552.543 1.875-1.903-.197-.194 3.109-3.026c.193.203.377.41.553.619-.03.025-2.495 2.546-2.495 2.546-1.556 1.556-1.723 2.9-1.723 5.288 0 2.121.361 4.054 1.939 5.632a576.91 576.91 0 0 0 2.133 2.124c-.183.208-.599.645-.613.66l-3.066-3.174.195-.196-1.995-1.986-.546.549 1.995 1.986.195-.196 3.065 3.172c-.021.019-.385.362-.552.506-.01-.013-1.974-1.978-1.974-1.978-1.842-1.842-3.299-2.039-5.731-2.039-2.338 0-3.92.239-5.632 1.95-.944.944-2.078 2.085-2.089 2.099-.275-.23-.649-.594-.649-.594l3.019-3.024.199.192 1.854-1.925-.558-.538-1.854 1.926.199.191-3.016 3.022ZM12 8.672A3.33 3.33 0 0 0 8.672 12 3.33 3.33 0 0 0 12 15.328 3.33 3.33 0 0 0 15.328 12 3.33 3.33 0 0 0 12 8.672ZM4.52 2.6C6.665.867 9.162 0 12.011 0c2.88 0 5.394.88 7.541 2.639 0 0-1.215 1.209-2.136 2.13-1.496 1.496-3.334 1.892-5.377 1.892-1.985 0-3.829-.37-5.267-1.809L4.52 2.6Zm14.837 18.909a9.507 9.507 0 0 1-.342.256C16.994 23.255 14.659 24 12.011 24c-2.652 0-4.983-.745-6.993-2.235-.104-.074-.208-.15-.31-.227 0 0 1.096-1.101 2.053-2.058 1.602-1.602 3.09-1.804 5.278-1.804 2.28 0 3.651.166 5.377 1.892l1.941 1.941Z\"},\"child\":[]}]})(props);\n};\nexport function SiSonatype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.4568 20.5995c0 .5118-.4275.9032-1.2103.9032-.4938 0-.9454-.1565-1.2465-.4516l.289-.4577c.2048.2109.6082.4095.9876.4095.3794 0 .572-.1385.572-.3553 0-.2528-.307-.3432-.6624-.4215-.4997-.1083-1.0959-.2408-1.0959-.8912 0-.4756.4095-.8851 1.1441-.8851.4938 0 .8672.1745 1.1321.4095l-.265.4455c-.1745-.1987-.4998-.3492-.861-.3492-.3313 0-.542.1204-.542.3251 0 .2228.289.301.6323.3794.5058.1084 1.126.253 1.126.9394zm3.3115-.6263c0 .8371-.566 1.5295-1.4994 1.5295-.9214 0-1.4934-.6924-1.4934-1.5295 0-.831.572-1.5235 1.4934-1.5235.9334 0 1.4994.6926 1.4994 1.5235zm-.6564 0c0-.5118-.3011-.9634-.843-.9634-.536 0-.837.4516-.837.9634 0 .5179.301.9695.837.9695.5419 0 .843-.4516.843-.9695zm2.8117-1.5234c-.4577 0-.831.2408-1.0236.4696v-.3974h-.6323v2.9085H6.9v-2.0294c.1445-.1986.4215-.3913.7467-.3913.3553 0 .584.1505.584.6021v1.8186h.6323v-2.0474c0-.5962-.313-.9333-.9394-.9333zm4.0744 1.0537v1.927h-.6323v-.3132c-.2168.247-.554.3855-.9393.3855-.4757 0-1.0117-.3192-1.0117-.9635 0-.6685.536-.9454 1.0117-.9454.3913 0 .7286.1264.9393.3733v-.4336c0-.3371-.2769-.5419-.6804-.5419-.3251 0-.6082.1204-.861.3673l-.259-.4396c.3372-.3192.7587-.4697 1.2224-.4697.6443 0 1.2103.271 1.2103 1.0538zm-.6323.825c-.1444-.1987-.4154-.3011-.6924-.3011-.3553 0-.6203.2048-.6203.524 0 .313.265.5178.6203.5178.277 0 .548-.1024.6924-.3011v-.4395zm2.487.6142c-.1806 0-.277-.1445-.277-.3432V19.076h.5902v-.554h-.5902v-.7949h-.6322v.7949h-.4817v.554h.4817v1.68c0 .4817.259.7468.7467.7468.295 0 .4817-.0783.5961-.1867l-.1505-.4757c-.0482.0541-.1626.1023-.283.1023zm2.1175-.2409-.8491-2.1798h-.6744l1.1923 2.9446-.1445.3313c-.0843.1926-.2169.2528-.4155.2528-.0722 0-.1746-.018-.241-.0481l-.0962.566c.0903.0241.265.0422.3552.0422.4517-.006.801-.1626.9997-.6564l1.403-3.4324h-.6804l-.849 2.1798zm4.6887-.7286c0 .9575-.536 1.5295-1.2887 1.5295-.3674 0-.6986-.1626-.9334-.4757v1.5115h-.6323V18.522h.6323v.3974c.2168-.289.554-.4697.9334-.4697.7527 0 1.2887.566 1.2887 1.5235zm-.6565 0c0-.56-.3191-.9634-.819-.9634-.295 0-.608.1746-.7466.3913v1.1502c.1385.2108.4516.3914.7467.3914.4998 0 .819-.4034.819-.9695zM24 20.184h-2.2462c.0483.4396.3794.8009.9274.8009.283 0 .6203-.1144.825-.3192l.289.4155c-.289.277-.7165.4215-1.1802.4215-.8732 0-1.5234-.6081-1.5234-1.5295 0-.843.6141-1.5234 1.4752-1.5234.8732 0 1.4332.6684 1.4332 1.5836v.1506zm-.6142-.4457c-.012-.3432-.247-.7707-.819-.7707-.542 0-.7888.4155-.819.7707h1.638zm-5.4338-8.0399L12 15.1348l-5.952-3.4364V4.8256L12 1.3892l5.952 3.4364v6.8728zm-1.7072-5.8871L12 3.3607 7.7553 5.8113v4.9014L12 13.1635l4.2448-2.4506V5.8112z\"},\"child\":[]}]})(props);\n};\nexport function SiSongkick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.55 18.779c-1.855 0-3.372-.339-4.598-1.602l1.92-1.908c.63.631 1.74.853 2.715.853 1.186 0 1.739-.391 1.739-1.089 0-.291-.06-.529-.239-.717-.15-.154-.404-.273-.795-.324l-1.455-.205c-1.064-.152-1.891-.51-2.43-1.072-.555-.578-.84-1.395-.84-2.434C2.536 8.066 4.2 6.45 6.96 6.45c1.74 0 3.048.407 4.086 1.448L9.171 9.77c-.765-.766-1.77-.715-2.295-.715-1.039 0-1.465.597-1.465 1.125 0 .152.051.375.24.561.15.153.404.307.832.359l1.467.203c1.09.153 1.875.495 2.385 1.005.645.63.9 1.53.9 2.655 0 2.47-2.127 3.819-4.68 3.819l-.005-.003zM20.813 2.651C19.178 1.432 17.37.612 15.089.237v10.875l3.261-4.539h3.565l-4.095 5.72s.944 1.51 1.515 2.405c.586.899 1.139 1.14 1.965 1.14h.57v2.806h-.872c-1.812 0-2.9-.33-3.72-1.575-.504-.811-2.175-3.436-2.175-3.436v4.995H12.12V-.001H12c-3.852 0-6.509.931-8.811 2.652C-.132 5.137.001 8.451.001 11.997c0 3.547-.133 6.867 3.188 9.352C5.491 23.074 8.148 24 12 24s6.51-.927 8.812-2.651C24.131 18.865 24 15.544 24 11.997c0-3.546.132-6.859-3.188-9.346h.001z\"},\"child\":[]}]})(props);\n};\nexport function SiSongoda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.23 4.917c-1.414-.156-6.227-.945-10.604-4.688a.968.968 0 0 0-1.251 0C6.997 3.967 2.185 4.76.77 4.917a.435.435 0 0 0-.385.463c.29 3.924 1.918 14.211 10.998 18.482.39.184.844.184 1.234 0 9.079-4.27 10.708-14.557 10.998-18.482a.435.435 0 0 0-.385-.463zm-1.704 2.016c-.581 4.255-2.54 11.442-9.126 14.896a.87.87 0 0 1-.807 0C5.006 18.373 3.048 11.19 2.47 6.935a.365.365 0 0 1 .285-.404 22.733 22.733 0 0 0 2.208-.596v3.38c0 .489.402.89.89.89.489 0 .89-.401.89-.89V5.279a22.335 22.335 0 0 0 4.989-2.87.44.44 0 0 1 .534 0c3.338 2.556 6.805 3.656 8.975 4.12.186.04.31.217.285.405zm-5.831 7.812c0 .923-.347 1.671-1.04 2.246-.687.574-1.572.86-2.654.86-1.362 0-2.407-.37-3.135-1.114-.374-.385-.56-.739-.56-1.063a.771.771 0 0 1 .28-.584c.185-.175.43-.262.733-.262.355 0 .655.167.9.501.4.55.971.824 1.71.824.449 0 .81-.099 1.083-.297.344-.251.515-.632.515-1.14 0-.545-.25-1.021-.75-1.43-.361-.294-.891-.606-1.59-.936-.855-.404-1.501-.86-1.938-1.365-.448-.514-.672-1.158-.672-1.93 0-1.003.398-1.77 1.196-2.298.599-.404 1.352-.606 2.26-.606.995 0 1.813.267 2.454.801.407.34.611.686.611 1.04 0 .27-.137.492-.41.667a1.131 1.131 0 0 1-.627.188c-.36 0-.623-.124-.785-.374-.291-.454-.71-.681-1.258-.681-.588 0-.978.24-1.17.718a1.99 1.99 0 0 0-.14.741c-.005.3.108.591.315.809.297.329.83.683 1.598 1.062.92.454 1.593.874 2.018 1.258.704.654 1.056 1.442 1.056 2.365z\"},\"child\":[]}]})(props);\n};\nexport function SiSonicwall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.678 10.007a.31.31 0 0 0 .016.62.308.308 0 0 0 .306-.308.31.31 0 0 0-.302-.312.31.31 0 0 0-.02 0zm.016.043a.27.27 0 0 1 .27.269.27.27 0 1 1-.27-.27zm-9.503.053l-.614 1.863-.013.04-.013-.04-.624-1.855h-.619l.986 2.74h.508l.618-1.788.013-.037.013.037.619 1.787h.507l.986-2.74h-.603l-.622 1.856-.015.04-.013-.04-.613-1.863zm-5.48.006v2.743h.258V10.11zm-7.823 0a1.315 1.315 0 0 0-.038.002c-.481 0-.85.306-.85.712 0 .41.26.63.898.759.6.12.715.279.715.526 0 .288-.26.49-.631.49a1.228 1.228 0 0 1-.923-.37l-.02-.02v.313a1.477 1.477 0 0 0 .923.31c.524 0 .89-.302.89-.738.005-.393-.257-.614-.872-.738-.619-.127-.739-.288-.739-.541 0-.27.255-.464.608-.464a1.091 1.091 0 0 1 .759.287l.022.018v-.318a1.315 1.315 0 0 0-.742-.227zm4.92.002v2.747h.284v-2.081l1.813 2.08h.063v-2.746h-.272v2.106l-1.828-2.106zm11.672 0l-.642 1.721c-.637.117-1.051.393-.848.943.278.76 1.549 1.218 1.549 1.218s-1.285-.801-.613-1.34c.296-.238.819-.414 1.313-.54l.278.719h.541l-.322-.833c.403-.08.708-.122.708-.122s-.36-.043-.785-.077l-.653-1.69zm2.136 0v2.721h1.554v-.49h-1.034v-2.231zm2.106 0v2.721h1.555v-.49H22.24v-2.231zm-17.953.008a1.344 1.344 0 0 0-.042 0 1.327 1.327 0 0 0-.67.176 1.313 1.313 0 0 0-.491.499 1.377 1.377 0 0 0-.185.69 1.292 1.292 0 0 0 .397.953 1.318 1.318 0 0 0 .971.395 1.351 1.351 0 0 0 1.359-1.356 1.307 1.307 0 0 0-.397-.965 1.344 1.344 0 0 0-.942-.392zm7.3.002a1.381 1.381 0 0 0-.96.392 1.292 1.292 0 0 0-.4.96 1.377 1.377 0 0 0 .33.923 1.353 1.353 0 0 0 1.077.454 1.516 1.516 0 0 0 .65-.136 1.477 1.477 0 0 0 .265-.185v-.338a1.16 1.16 0 0 1-.899.412 1.134 1.134 0 0 1-.823-.325 1.067 1.067 0 0 1-.325-.794 1.097 1.097 0 0 1 .146-.565 1.073 1.073 0 0 1 .41-.402 1.156 1.156 0 0 1 .576-.15 1.196 1.196 0 0 1 .515.12 1.132 1.132 0 0 1 .4.314v-.35a1.477 1.477 0 0 0-.26-.185 1.477 1.477 0 0 0-.66-.145 1.381 1.381 0 0 0-.041 0zm12.661.009a.11.11 0 0 0-.012 0h-.162v.37h.094v-.142h.035l.085.142.11-.002-.103-.153a.103.103 0 0 0 .068-.102.11.11 0 0 0-.115-.113zm-.026.063a.048.048 0 0 1 .046.054c0 .032-.017.048-.054.048h-.046v-.101h.046a.048.048 0 0 1 .008 0zm-19.97.178a1.108 1.108 0 0 1 .006 0 1.093 1.093 0 0 1 .548.153 1.075 1.075 0 0 1 .405.399 1.097 1.097 0 0 1 .143.553 1.12 1.12 0 0 1-.143.564 1.047 1.047 0 0 1-.4.399 1.108 1.108 0 0 1-.553.145 1.087 1.087 0 0 1-1.091-1.095 1.119 1.119 0 0 1 .144-.564 1.108 1.108 0 0 1 .94-.554zm14.015.465l.368.931c-.032 0-.065-.003-.097-.004a7.414 7.414 0 0 0-.622.01h-.018z\"},\"child\":[]}]})(props);\n};\nexport function SiSonos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.988 12.36l-2.813-2.634v4.429h.837V11.7l2.813 2.633V9.905h-.837zM6.464 9.665A2.3 2.3 0 0 0 4.13 12c0 1.257 1.077 2.334 2.334 2.334A2.3 2.3 0 0 0 8.798 12a2.3 2.3 0 0 0-2.334-2.334m0 3.83A1.482 1.482 0 0 1 4.968 12c0-.838.658-1.496 1.496-1.496S7.96 11.162 7.96 12s-.658 1.496-1.496 1.496M2.694 12c-.24-.18-.54-.3-.958-.419-.838-.24-.838-.479-.838-.598 0-.24.299-.48.718-.48.36 0 .658.18.778.24l.06.06.658-.479-.06-.06s-.538-.598-1.436-.598c-.419 0-.838.12-1.137.359-.3.24-.479.598-.479.958s.18.718.479.957c.24.18.538.3.957.42.838.239.838.478.838.598 0 .239-.299.478-.718.478-.359 0-.658-.18-.778-.239l-.06-.06-.658.479.06.06s.538.598 1.436.598c.42 0 .838-.12 1.137-.359.3-.24.48-.598.48-.957 0-.36-.18-.659-.48-.958m14.843-2.334A2.3 2.3 0 0 0 15.202 12a2.337 2.337 0 0 0 2.334 2.334A2.3 2.3 0 0 0 19.87 12a2.337 2.337 0 0 0-2.334-2.334m0 3.83A1.482 1.482 0 0 1 16.04 12c0-.838.658-1.496 1.496-1.496s1.496.658 1.496 1.496-.718 1.496-1.496 1.496m3.77-1.556c.24.18.54.3.958.42.838.239.838.478.838.598 0 .239-.299.478-.718.478-.36 0-.658-.18-.778-.239h-.06l-.658.479.06.06s.538.598 1.436.598c.419 0 .838-.12 1.137-.359s.479-.598.479-.958-.18-.718-.479-.957c-.24-.18-.538-.3-.957-.42-.838-.239-.838-.478-.838-.598 0-.239.299-.478.718-.478.359 0 .658.18.778.239l.06.06.658-.479-.06-.06s-.538-.598-1.436-.598c-.42 0-.838.12-1.137.359-.3.24-.48.598-.48.957-.059.36.12.659.48.898\"},\"child\":[]}]})(props);\n};\nexport function SiSony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5505 9.8881c.921 0 1.6574.2303 2.2209.7423.3848.3485.5999.8454.5939 1.3665a1.9081 1.9081 0 0 1-.5939 1.3726c-.5272.4848-1.3483.7423-2.221.7423-.8725 0-1.6785-.2575-2.2148-.7423-.3908-.3485-.609-.8484-.603-1.3726 0-.518.2182-1.015.603-1.3665.5-.4545 1.3847-.7423 2.2149-.7423zm.003 3.6692c.4606 0 .8878-.1606 1.1878-.4575.2999-.2999.4332-.6605.4332-1.1029 0-.4242-.1484-.821-.4333-1.1029-.2938-.2908-.7332-.4545-1.1877-.4545s-.8938.1637-1.1907.4545c-.2848.2818-.4333.6787-.4333 1.103-.006.409.1485.806.4333 1.1029.2969.2939.7332.4575 1.1907.4575zm-4.8418-1.9665c.1605.0424.315.094.4666.1636a1.352 1.352 0 0 1 .3787.2576c.197.206.309.4817.306.7665a.9643.9643 0 0 1-.3787.7788 2.0662 2.0662 0 0 1-.709.3485 3.7231 3.7231 0 0 1-1.1938.1697c-.352 0-.5467-.0406-.8138-.0962l-.077-.016c-.294-.0666-.5817-.1575-.8575-.2787a.0695.0695 0 0 0-.0424-.0121c-.0454 0-.0818.0394-.0818.0848v.203H.1212v-1.4786h.5242a.7559.7559 0 0 0 .1363.418c.2121.2607.4394.3607.6575.4395.3666.1212.7514.1848 1.1362.1969.5526 0 .8756-.134.9455-.163l.009-.0037.0062-.0023c.0616-.0226.3119-.1143.3119-.3916 0-.2743-.2338-.334-.387-.373l-.022-.0058c-.1708-.046-.562-.0872-.9897-.1323l-.1526-.016c-.4848-.0515-.9696-.1273-1.1968-.1758-.4977-.1097-.6942-.2917-.816-.4045l-.0082-.0076A1.0192 1.0192 0 0 1 0 11.1608c0-.497.3394-.797.7575-.9817.4454-.2.9756-.288 1.4392-.288.8211.0031 1.4877.2697 1.727.394.097.0515.1455-.0121.1455-.0606v-.1484h.5272v1.2876h-.4727a.9056.9056 0 0 0-.2939-.4909 1.289 1.289 0 0 0-.297-.1787c-.3968-.1667-.821-.2515-1.2513-.2455-.4423 0-.8665.085-1.0786.2153-.1333.0818-.2.1848-.2.306 0 .1727.1454.2424.2182.2636.1967.0597.6328.103.972.1369.0736.0073.1426.0142.2036.0206.3272.0334 1.012.1243 1.315.2zm18.1673-.9966v-.4787H24v.4696h-.4757c-.1727 0-.2424.0334-.3727.1788l-1.4271 1.63a.098.098 0 0 0-.0182.0698v.7423a1.106 1.106 0 0 0 .0121.103.1496.1496 0 0 0 .1.0909.9368.9368 0 0 0 .1303.009h.4848v.4698h-2.5724v-.4697h.4606a.9343.9343 0 0 0 .1302-.0091.1627.1627 0 0 0 .1031-.091.5626.5626 0 0 0 .009-.1v-.7422c0-.0242 0-.0242-.0333-.0636a606.7592 606.7592 0 0 0-1.4119-1.6028c-.0758-.0788-.2061-.2061-.406-.2061h-.4576v-.4696h2.5876v.4696h-.3121c-.0697 0-.1182.0697-.0576.1455 0 0 .8696 1.0392.8787 1.0513.0091.0122.0152.0122.0273.003.0121-.009.8938-1.0453.8999-1.0543a.0912.0912 0 0 0-.0182-.1273.1095.1095 0 0 0-.0606-.0182zm-6.284-.0031h.4848c.2212 0 .2606.0848.2636.2909l.0273 1.5664-2.5815-2.324H11.944v.4697h.412c.297 0 .3182.1636.3182.309v2.2138c.0004.1285.0009.295-.1818.295h-.506v.4667h2.1634v-.4697h-.5273c-.212 0-.2211-.097-.2242-.303v-1.8816l2.9724 2.6511h.7575l-.0394-2.9966c.003-.218.0182-.2908.2424-.2908h.4726v-.4697H15.595Z\"},\"child\":[]}]})(props);\n};\nexport function SiSoriana (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.994 3.2c-1.16 0-2.772.494-3.94 2.104-.223.314-.39.664-.494 1.034a4.27 4.27 0 0 0 .678 3.692c.6.812 1.368 1.42 2.044 1.96.332.26 1.034.926 1.26 1.208.34.422.596.674.902 1.606.186.564.212 1.308.12 1.73C21.684 14.384 24 11.594 24 8.56c0-3.486-2.498-5.36-5.006-5.36M15.05 14.986c-.886-1.204-1.908-1.936-2.754-2.706-.368-.336-.772-.584-1.07-.88-1.434-1.424-2.102-3.18-1.764-5.34.268-1.692 1.108-2.806 2.124-3.622a7.098 7.098 0 0 0-4.278-1.372C3.274 1.066-.1 4.31.002 8.306c.184 7.22 9.224 13.37 12.948 14.628 1.992-1.02 3.05-2.928 3.05-4.884 0-1.426-.612-2.6-.95-3.064\"},\"child\":[]}]})(props);\n};\nexport function SiSoundcharts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.038 0h6.052v17.229h-.702v-4.333h-.413v4.333h-.29v-2.521h-.412v2.52h-.29v-4.04h-.413v4.04h-.289V13.98h-.414v3.25h-.33v-2.521h-.371v2.52h-.331v-3.791h-.413v3.792h-.289v-4.333h-.414v4.333h-.701c.02-5.73.02-11.457.02-17.229ZM8.995 7.624h6.01v9.605h-.66v-2.23h-.414v2.23h-.288v-3.5h-.414v3.5h-.289v-3.5h-.413v3.5h-.33v-2.77h-.372v2.77h-.331v-2.77h-.413v2.77h-.289V14.23h-.414v3h-.289v-3.793h-.412v3.793h-.703c.02-2.687.02-6.958.02-9.605zM7.28 12.896h-.414v4.29h-.288v-1.978h-.414v1.98h-.33v-2.772h-.372v2.77h-.33v-4.04h-.414v4.04H4.43v-2.228h-.414v2.229h-.289v-3.25h-.414v3.25h-.289v-3.75h-.412v3.75H1.91V11.54h6.011v5.646h-.66c.02-1.395.02-2.833.02-4.291zm5.969 5.5h.371V24h-.371Zm4.213 0h.33v5.52h-.33zm-7.436 5.396h-.33v-5.398h.33v5.397zm7.064-5.397v5.397h-.33v-5.398h.33zm-4.544 0h.33v5.23h-.33zm6.342 0h.33v5.23h-.33zm-9.894 0h.33v4.897h-.33v-4.898ZM19.92 23.25h-.33v-4.856h.33v4.855zm-9.17-.042h-.33v-4.833h.33zm4.254-.042h-.33v-4.79h.33v4.791zm-3.511-.374h-.372v-4.417h.372zm9.852.208h-.33v-4.625h.33zm-9.191-.208h-.33v-4.417h.33zm3.883-4.397h.331v4.417h-.33Zm-9.852 4.063v-4.082h.371v4.083h-.371Zm11.98-.042v-4.04h.371v4.041h-.371zM4.8 18.396h.33v4.25H4.8v-4.252Zm16.916 0h.372v4h-.372v-4.002ZM6.91 22.415v-4.04h.33v4.041h-.33Zm-1.426-.042v-3.998h.33v4h-.33Zm15.162 0h-.331v-3.998h.33v4zm-16.96-.04h-.33v-3.917h.33zm-.701-.23h-.372v-3.709h.372Zm10.967-3.709h.372v3.625h-.372zm-5.97 3.793h-.33v-3.793h.33zm-6.009-3.794h.33v3.584h-.33zm2.128 0h.33v3.584H4.1z\"},\"child\":[]}]})(props);\n};\nexport function SiSoundcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.999 14.165c-.052 1.796-1.612 3.169-3.4 3.169h-8.18a.68.68 0 0 1-.675-.683V7.862a.747.747 0 0 1 .452-.724s.75-.513 2.333-.513a5.364 5.364 0 0 1 2.763.755 5.433 5.433 0 0 1 2.57 3.54c.282-.08.574-.121.868-.12.884 0 1.73.358 2.347.992s.948 1.49.922 2.373ZM10.721 8.421c.247 2.98.427 5.697 0 8.672a.264.264 0 0 1-.53 0c-.395-2.946-.22-5.718 0-8.672a.264.264 0 0 1 .53 0ZM9.072 9.448c.285 2.659.37 4.986-.006 7.655a.277.277 0 0 1-.55 0c-.331-2.63-.256-5.02 0-7.655a.277.277 0 0 1 .556 0Zm-1.663-.257c.27 2.726.39 5.171 0 7.904a.266.266 0 0 1-.532 0c-.38-2.69-.257-5.21 0-7.904a.266.266 0 0 1 .532 0Zm-1.647.77a26.108 26.108 0 0 1-.008 7.147.272.272 0 0 1-.542 0 27.955 27.955 0 0 1 0-7.147.275.275 0 0 1 .55 0Zm-1.67 1.769c.421 1.865.228 3.5-.029 5.388a.257.257 0 0 1-.514 0c-.21-1.858-.398-3.549 0-5.389a.272.272 0 0 1 .543 0Zm-1.655-.273c.388 1.897.26 3.508-.01 5.412-.026.28-.514.283-.54 0-.244-1.878-.347-3.54-.01-5.412a.283.283 0 0 1 .56 0Zm-1.668.911c.4 1.268.257 2.292-.026 3.572a.257.257 0 0 1-.514 0c-.241-1.262-.354-2.312-.023-3.572a.283.283 0 0 1 .563 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiSourceengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.865.716h-.26L7.64.784a12.76 12.76 0 0 0-7.01 1.69l.002.001A1.211 1.211 0 0 0 1.21 4.75c.35 0 .662-.148.883-.383a10.321 10.321 0 0 1 8.818-.462c5.275 2.165 7.805 8.22 5.64 13.495a10.283 10.283 0 0 1-2.495 3.613l.01.013a1.21 1.21 0 1 0 1.63 1.69 12.638 12.638 0 0 0 3.04-4.419c.05-.118 4.952-12.06 4.964-12.093A3.992 3.992 0 0 0 21.522.996c-.55-.226-1.064-.278-1.657-.28zM6.067 6.851c-2.635 0-5.342.807-5.342 3.941 0 2.16 1.946 2.85 3.893 3.277 2.422.522 3.823.878 3.823 1.9 0 1.187-1.235 1.567-2.208 1.567-1.33 0-2.564-.594-2.588-2.066H.44c.143 3.252 2.92 4.32 5.77 4.32 2.801 0 5.603-1.044 5.603-4.273 0-2.28-1.923-2.992-3.894-3.443-1.923-.45-3.823-.617-3.823-1.828 0-.997 1.116-1.14 1.877-1.14 1.21 0 2.207.357 2.302 1.662h3.205c-.26-3.015-2.73-3.917-5.413-3.917z\"},\"child\":[]}]})(props);\n};\nexport function SiSourceforge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.998 1.4648c-.088 0-.1761.0395-.2402.1036L.1016 11.2148c-.1361.1281-.1361.3444 0 .4805l9.1523 9.1348c.064.072.1522.1054.2402.1054.0881 0 .1743-.0414.2383-.1054l1.3692-1.3848c.136-.128.136-.3444 0-.4805l-7.172-7.1738a.4682.4682 0 010-.664l9.0782-9.0782c.1201-.12.1123-.2728.0723-.377-.04-.096-.1444-.207-.3125-.207H9.998zm4.5313 1.5918c-.088 0-.1762.0415-.2402.1055l-1.3926 1.3926c-.1361.128-.1361.3444 0 .4805l7.1719 7.1816c.088.088.1367.208.1367.3281 0 .1201-.0487.24-.1367.3281l-9.0782 9.0782c-.12.12-.1123.2728-.0722.377.04.096.1443.207.3125.207v-.0079H14c.088 0 .1762-.0316.2402-.0957l9.6563-9.6543c.072-.064.1035-.1521.1035-.2402 0-.088-.0395-.1762-.1035-.2402l-9.127-9.1348c-.064-.072-.1521-.1055-.2402-.1055zM11.4336 6.213c-.1125.005-.2164.1007-.211.2383.1442 2.2176-2.6425 2.7635-2.6425 6.246v.0235c0 2.1216 1.6026 3.8418 3.58 3.8418 1.9775 0 3.5782-1.7202 3.5782-3.8418v-.0234c0-.9848-.3679-1.9225-.7442-2.627-.072-.136-.2896-.087-.2656.041.6725 2.9943-1.0156 4.8507-1.0156 2.545 0-3.931-1.3943-5.7162-2.1309-6.3887a.2072.2072 0 00-.1484-.0547Z\"},\"child\":[]}]})(props);\n};\nexport function SiSourcehut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.371 0 0 5.371 0 12s5.371 12 12 12 12-5.371 12-12S18.629 0 12 0Zm0 21.677A9.675 9.675 0 0 1 2.323 12 9.675 9.675 0 0 1 12 2.323 9.675 9.675 0 0 1 21.677 12 9.675 9.675 0 0 1 12 21.677Z\"},\"child\":[]}]})(props);\n};\nexport function SiSourcetree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 0C6.756 0 2.474 4.245 2.474 9.525c0 4.21 2.769 7.792 6.572 9.047v4.764c0 .37.295.664.664.664h4.506a.661.661 0 0 0 .664-.664v-4.764c.025-.008.049-.019.074-.027v.064c3.694-1.22 6.412-4.634 6.565-8.687.005-.124.007-.25.007-.375v-.022c0-.152-.006-.304-.013-.455C21.275 4.037 17.125 0 11.999 0Zm0 6.352a3.214 3.214 0 0 1 2.664 5.005v.002A3.218 3.218 0 0 1 12 12.775a3.212 3.212 0 0 1 0-6.424z\"},\"child\":[]}]})(props);\n};\nexport function SiSouthwestairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.163 2.419C21.038 1.219 19.35.58 17.437.58c-2.062 0-3.637.675-4.725 1.275 2.063 1.163 6.526 3.75 11.175 7.163.075-.45.113-.938.113-1.388-.038-2.175-.675-4.012-1.837-5.212zm1.35 8.212C18.186 6.244 15 4.031 11.55 1.97 10.612 1.406 8.775.58 6.675.58 4.688.581 3 1.22 1.837 2.42 1.087 3.206.563 4.18.262 5.38 3 7.294 10.462 12.656 18 18.581c2.512-2.362 4.613-5.1 5.512-7.95zM0 7.781c0 6.15 6.487 11.85 12 15.638 1.575-1.088 3.225-2.325 4.8-3.713A736.871 736.871 0 0 0 .15 6.131C.038 6.62 0 7.181 0 7.781Z\"},\"child\":[]}]})(props);\n};\nexport function SiSpacemacs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.997.011c-1.79.015-3.452.397-4.968 1.093l.005-.002c3.638 2.026 6.955 5.634 8.932 8.241.398.534.753 1.006 1.078 1.434l.004-.019c.412-1.738-.313-5.239-1.518-7.331-.117-.203-.201-.379-.187-.392l.006.002.002-.007c.098.024 1.031.995 1.373 1.433.599.767.832 1.213 1.162 2.23.858 2.645 1.424 4.801 1.901 7.249.239 1.228.675 3.458.731 3.884.007.057-.009.128-.01.143a5.164 5.164 0 0 0-.29-.264c-.645-.568-1.924-1.417-3.183-2.114-1.57-.87-3.118-1.614-6.575-3.162-3.156-1.413-4.61-2.086-5.751-2.661l-1.024-.51c.12.301.249.624.399 1.005 0 0 1.933 1.08 2.174 1.408 0 0 2.322 4.367 3.353 6.955.767 1.949 1.634 4.264 2.155 4.904l.06.069c-1.026-.251-5.745-2.598-5.745-2.598-.518-4.399-1.969-9.61-3.855-14.94a7.259 7.259 0 0 1-.125-.271c.001-.015.141.121.311.303C4.313 8.13 8.368 9.98 12.675 10.775a16.48 16.48 0 0 0 3.533.223c-.307-.392-.64-.821-1.009-1.302-3.418-4.455-6.774-6.326-9.78-7.469-.079-.028-.154-.061-.231-.088A11.902 11.902 0 0 0 .669 8.071a11.97 11.97 0 0 0-.67 4.016l.003-.088c.033 5.018 3.129 9.616 8.052 11.33 1.335.465 2.696.68 4.032.67l-.088-.003c5.018-.033 9.616-3.129 11.33-8.052.465-1.335.68-2.696.67-4.032l-.003.088c-.033-5.018-3.129-9.616-8.052-11.33A11.966 11.966 0 0 0 11.911 0l.088.003zm6.133 6.11l-.002.007c-.001 0 0 0 0 0l.002-.007c.531.511 1.376 1.503 2.336 2.062.789.99 1.216 1.963 1.748 2.629-.219-.188-1.111-.972-1.111-.972s-1.378-1.305-2.141-2.153c-.293-.326-.32-.38-.478-.628-.062-.097-.275-.825-.354-.935h-.001l.002-.007z\"},\"child\":[]}]})(props);\n};\nexport function SiSpaceship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9997 1.2529c1.0445 0 1.956.5689 2.441 1.4125l4.5883 7.9314 4.45 7.6915c.0466.074.2105.3585.27.4938.2216.4677.2505.9472.251 1.1595 0 1.5496-1.2587 2.8056-2.8116 2.8056-.2949 0-.579-.045-.8457-.129l-7.9011-2.6061a1.406 1.406 0 0 0-.4413-.0705 1.413 1.413 0 0 0-.442.0705L3.658 22.6183l-.1623.0456a2.8398 2.8398 0 0 1-.6838.0831c-1.5531 0-2.8119-1.256-2.8119-2.8056.002-.243.0234-.5533.168-.9578.0294-.0911.0743-.176.1115-.264.0712-.1487.1607-.2875.2411-.4313l4.4493-7.6916 4.5883-7.9313c.485-.8437 1.3971-1.4126 2.4416-1.4126z\"},\"child\":[]}]})(props);\n};\nexport function SiSpacex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 7.417C8.882 8.287 1.89 14.75.321 16.28L0 16.583h2.797C10.356 9.005 21.222 7.663 24 7.417zm-17.046 6.35c-.472.321-.945.68-1.398 1.02l2.457 1.796h2.778zM2.948 10.8H.189l3.25 2.381c.473-.321 1.02-.661 1.512-.945Z\"},\"child\":[]}]})(props);\n};\nexport function SiSpacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.001 11.213c-.55-.065-.591-.803-1.297-.738-.342 0-.66.143-.66.457 0 .473.73.517 1.17.636.75.228 1.476.383 1.476 1.199 0 1.035-.811 1.394-1.884 1.394-.897 0-1.806-.318-1.806-1.142 0-.228.22-.407.432-.407.269 0 .363.114.457.301.208.367.44.563 1.019.563.367 0 .742-.139.742-.457 0-.452-.46-.55-.937-.66C.869 12.122.143 12 .057 11.062c-.09-1.598 3.242-1.659 3.433-.257-.004.253-.24.408-.489.408ZM6.964 9.81c1.171 0 1.835.979 1.835 2.186 0 1.211-.644 2.185-1.835 2.185-.66 0-1.072-.281-1.37-.713v1.598c0 .481-.155.714-.505.714-.428 0-.506-.273-.506-.714v-4.648c0-.379.159-.612.506-.612.326 0 .505.257.505.612v.13c.331-.416.71-.738 1.37-.738Zm-.277 3.54c.685 0 .991-.632.991-1.37 0-.722-.31-1.37-.991-1.37-.714 0-1.044.587-1.044 1.37 0 .762.335 1.37 1.044 1.37Zm2.907-2.398c0-.84.967-1.142 1.904-1.142 1.317 0 1.86.384 1.86 1.656v1.223c0 .29.179.869.179 1.044 0 .265-.244.432-.505.432-.29 0-.506-.342-.661-.587-.428.342-.881.587-1.574.587-.766 0-1.37-.453-1.37-1.199 0-.66.473-1.039 1.044-1.17 0 .004 1.835-.432 1.835-.436 0-.563-.2-.812-.791-.812-.522 0-.787.143-.991.457-.163.237-.143.379-.457.379-.253-.004-.473-.175-.473-.432Zm1.566 2.524c.803 0 1.142-.424 1.142-1.268v-.18c-.216.074-1.089.29-1.325.327-.253.049-.506.236-.506.534.008.326.342.587.689.587Zm5.9-5.26c1.134 0 2.361.677 2.361 1.753a.49.49 0 0 1-.481.506c-.371 0-.424-.2-.587-.481-.273-.502-.596-.836-1.297-.836-1.085-.008-1.57.921-1.57 2.079 0 1.167.404 2.007 1.525 2.007.746 0 1.158-.433 1.37-.991.086-.257.241-.506.563-.506.253 0 .506.257.506.534 0 1.142-1.167 1.933-2.365 1.933-1.313 0-2.055-.555-2.463-1.476a3.48 3.48 0 0 1-.326-1.525c-.009-1.77 1.023-2.997 2.764-2.997Zm6.483 1.594c.29 0 .457.188.457.481 0 .119-.094.355-.13.482l-1.395 3.665c-.31.795-.542 1.346-1.598 1.346-.502 0-.938-.045-.938-.481 0-.253.191-.38.457-.38.048 0 .13.025.179.025.077 0 .13.024.179.024.53 0 .604-.542.791-.917L20.2 10.724c-.078-.18-.131-.302-.131-.408 0-.294.229-.506.534-.506.343 0 .478.269.563.563l.889 2.642.889-2.442c.134-.379.147-.763.599-.763Z\"},\"child\":[]}]})(props);\n};\nexport function SiSparkar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.199 20.001L20.801 12v8.001L11.999 24l-8.8-3.999zm8.8 3.999zm-.001-24L3.199 3.999V12l17.602-8.001L11.998 0zM3.803 12.275l7.592 3.453 8.803-4.002-7.594-3.45-8.801 3.999z\"},\"child\":[]}]})(props);\n};\nexport function SiSparkasse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.0602 12.3061v1.8455h14.175v6.7773c.0296 1.6615-1.4064 3.1066-3.0705 3.0705H5.8352c-1.6582.0306-3.1011-1.4121-3.0705-3.0705v-1.225H16.908v-1.8455H2.7648v-6.7773c-.0307-1.6579 1.4123-3.1012 3.0704-3.0704h12.3295c1.6641-.0363 3.1 1.4095 3.0705 3.0705v1.225H7.0602zm4.9241-6.1486c1.7003 0 3.0787-1.3784 3.0787-3.0787S13.6847 0 11.9843 0 8.9055 1.3784 8.9055 3.0788s1.3785 3.0787 3.0788 3.0787z\"},\"child\":[]}]})(props);\n};\nexport function SiSparkfun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.307 5.476c-.756.134-1.975-.615-2.59-1.362-.755-.922-.66-1.647-.071-2.29.883-.978 2.396-.6 2.396-.6s-2.772-2.432-5.658-.44c-2.571 1.77-1.833 4.183.487 6.288 2.09 1.902.42 3.988-1.686 3.717-1.443-.184-2.034-1.343-1.687-2.054.298-.608 1.335-.982 1.335-.982s-1.19-.484-2.592.044c-1.259.474-2.297 1.515-2.214 4.12V24s1.301-1.604 2.83-3.236c1.714-1.84 2.495-3.084 4.254-2.938 3.328.205 5.735-1.273 7.371-3.645 3.141-4.563.67-9.68-1.43-10.343 0 0 .34 1.438-.745 1.638z\"},\"child\":[]}]})(props);\n};\nexport function SiSparkpost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.2 9c-1.351.9-1.8 2.7-1.65 3.9-2.25-2.25 3.45-8.55-3-12.9C15.15 5.4 6 9.75 6 17.4c0 3 1.95 5.701 6 6.6 4.05-.898 6-3.6 6-6.6 0-4.5-2.7-6-1.8-8.4zM12 20.852c-1.8 0-3.45-1.5-3.45-3.451 0-1.801 1.5-3.45 3.45-3.45 1.8 0 3.45 1.5 3.45 3.45-.15 1.951-1.65 3.451-3.45 3.451z\"},\"child\":[]}]})(props);\n};\nexport function SiSpdx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24H8.222l2.089-2.373 2.09-2.374V13.2H18.978l2.51-2.488L24 8.223V0H12zm5.2 5.2h13.791L12.2 12c-3.735 3.74-6.838 6.8-6.896 6.8-.057 0-.104-3.06-.104-6.8zm8.4 8.8v10H24V14h-5.2z\"},\"child\":[]}]})(props);\n};\nexport function SiSpeakerdeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.025 13.875H4.687a4.688 4.688 0 0 1 0-9.375h6.227a1.875 1.875 0 0 1 0 3.75H4.592a.937.937 0 1 0 0 1.875h5.337a4.687 4.687 0 1 1 0 9.375H1.875a1.875 1.875 0 0 1 0-3.75h8.15a.938.938 0 0 0 0-1.875zM13.97 19.5a5.635 5.635 0 0 0 2.396-3.75h3.026a.93.93 0 0 0 .921-.938V9.189a.93.93 0 0 0-.921-.938h-5.497c.438-.498.704-1.155.704-1.875s-.266-1.377-.704-1.875h6.418C22.35 4.5 24 6.179 24 8.25v7.5c0 2.071-1.65 3.75-3.687 3.75H13.97z\"},\"child\":[]}]})(props);\n};\nexport function SiSpectrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 10.2A1.8 1.8 0 001.8 12h1.8a8.4 8.4 0 018.4 8.4v1.8a1.8 1.8 0 001.8 1.8h8.4a1.8 1.8 0 001.8-1.8v-1.8C24 9.133 14.867 0 3.6 0H1.8A1.8 1.8 0 000 1.8v8.4z\"},\"child\":[]}]})(props);\n};\nexport function SiSpeedtest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.628 16.186l-2.047-2.14 6.791-5.953 1.21 1.302zm8.837 6.047c2.14-2.14 3.535-5.117 3.535-8.466 0-6.604-5.395-12-12-12s-12 5.396-12 12c0 3.35 1.302 6.326 3.535 8.466l1.674-1.675c-1.767-1.767-2.79-4.093-2.79-6.79A9.568 9.568 0 0 1 12 4.185a9.568 9.568 0 0 1 9.581 9.581c0 2.605-1.116 5.024-2.79 6.791Z\"},\"child\":[]}]})(props);\n};\nexport function SiSpeedypage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.356 11.774a8.66 8.66 0 0 1-7.797 8.623C12.559 20.503 0 22.18 0 22.18l1.383-4.978 10.192-1.544v-.025a3.617 3.617 0 0 0 3.405-3.807 3.44 3.44 0 0 0-.212-1.01h5.534c.054.318.054.638.054.958zm-16.686.452c0-4.444 3.381-8.171 7.797-8.623C11.467 3.471 24 1.82 24 1.82l-1.41 4.978-10.19 1.57v.025a3.556 3.556 0 0 0-3.353 3.781c.026.346.08.664.214.984H3.724c-.026-.32-.054-.612-.054-.932z\"},\"child\":[]}]})(props);\n};\nexport function SiSphinx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.284 19.861c0-.654.177-1.834.393-2.623.499-1.822.774-4.079.497-4.079-.116 0-.959.762-1.873 1.694-3.472 3.54-7.197 5.543-10.312 5.543-1.778 0-2.987-.45-4.154-1.545C.128 18.186 0 17.858 0 16.703c0-1.188.117-1.468.909-2.175.718-.642 1.171-.813 2.157-.813.76.171 1.21.16 1.457.461.251.296.338 1.265.035 1.832-.162.303-.585.491-1.105.491-.49 0-.77-.116-.669-.278.315-.511-.135-.857-.713-.548-.699.374-.711 1.698-.021 2.322.969.878 3.65 1.208 5.262.648 1.743-.605 4.022-2.061 5.841-3.732l1.6-1.469-2.088-.013c-2.186-.012-3.608-.273-8.211-1.506-1.531-.41-3.003-.765-3.271-.789-.304-.026-.503-.274-.487-.656.027-.646.378-1.127.793-1.308.249-.109 1.977-.274 3.809-.761 7.136-1.898 7.569-1.629 12.323-.426 1.553.393 3.351.821 4.147.835 1.227.022 1.493.124 1.74.666.16.351.291.686.291.745 0 .058-.695.424-1.545.813-3.12 1.428-4.104 2.185-3.088 3.635.421.602.412.666-.14 1.052-.323.227-.59.687-.593 1.022-.009.908-.583 2.856-1.417 3.624l-.732.675v-1.189Zm1.594-8.328c1.242-.346 1.994-.738 3.539-1.562-1.272-.372-4.462-.895-4.462-.895-2.354-.472-2.108-.448-2.214.071a3.475 3.475 0 0 1-.45 1.105c-.541.848-2.521 1.026-3.656.483-.356-.171-.714-.821-.709-1.283.007-.65-.362-.801-.598-.714-.191.07-.813.079-2.179.448-4.514 1.217-5.132 1.078-2.189 1.495.353.05 2.223.572 3.136.815 2.239.597 2.658.641 5.556.581 2.015-.042 2.858-.163 4.226-.544ZM.732 6.258c.056-.577.088-.702 1.692-1.025.919-.185 3.185-.785 5.036-1.333 4.254-1.26 5.462-1.263 9.873-.026 1.904.535 4.037.973 4.74.975 1.097.002 1.668.487 1.668.487.505 1.16.412 1.24-1.558 1.24-1.374 0-2.558-.232-4.385-.857-1.389-.476-3.369-.923-4.451-1.004-1.974-.149-1.971-.15-8.072 1.529-1.072.295-2.553.624-3.29.732l-1.342.196.089-.914Z\"},\"child\":[]}]})(props);\n};\nexport function SiSpigotmc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.644 2.44c-.179.033-.456.182-.603.331-.245.2-.588.232-2.023.133l-1.713-.116.049.713.049.713h.652c.36-.016 1.207-.05 1.876-.083l1.224-.083v3.317l-.44.05c-.425.05-.457.1-.457.862 0 .713-.05.813-.36.863-.26.033-.39.182-.44.464-.016.232-.114.448-.18.497-.08.05-.228.597-.326 1.211-.228 1.526-.375 1.708-1.37 1.84-1.436.167-2.056.134-2.056-.148 0-.2-.244-.25-1.158-.25-1.012 0-1.158-.032-1.24-.33-.065-.25-.228-.333-.62-.333s-.555.083-.62.332c-.082.299-.228.332-1.224.332-1.011 0-1.158.033-1.256.332-.049.182-.18.331-.26.331-.082 0-.148.863-.148 1.99 0 1.609.05 1.99.229 1.99.13 0 .293.15.342.332.082.282.245.332 1.175.332.914 0 1.077.05 1.142.331.13.465 1.11.465 1.24 0 .065-.282.228-.331 1.158-.331.849 0 1.077-.05 1.077-.25 0-.397 2.121-.33 3.426.117 1.583.53 5.14.53 6.82 0 .653-.199 1.256-.332 1.338-.282.359.232.163.896-.343 1.178-.587.298-.587.563 0 1.956l.343.797 1.599-.067c1.73-.083 2.822-.48 3.915-1.41l.539-.464-.31-.912c-.327-.962-.734-1.327-1.518-1.327-.342 0-.473-.149-.766-.796-.506-1.144-1.224-1.758-2.758-2.355-.799-.315-1.582-.746-1.99-1.127-.604-.548-.685-.73-.832-1.775-.098-.63-.245-1.194-.326-1.244-.066-.05-.164-.265-.18-.497-.049-.282-.18-.431-.424-.464-.326-.05-.375-.15-.375-.863 0-.763-.033-.812-.44-.862-.458-.05-.458-.05-.507-1.526-.032-.929.017-1.542.13-1.658.115-.116.93-.183 2.09-.183h1.908l.05-.564c.032-.298-.017-.63-.099-.713-.098-.1-.816-.083-1.909.05-1.256.15-1.778.15-1.86.017-.146-.25-.848-.481-1.24-.398z\"},\"child\":[]}]})(props);\n};\nexport function SiSpine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.157 2.207c.066 2.004 1.454 3.117 4.221 3.55 2.345.368 4.46.181 5.151-1.829C17.874.01 14.681.985 11.915.55S7.051-1.013 7.157 2.207m.831 8.23c.257 1.497 1.652 2.355 3.786 2.297 2.135-.059 3.728-.892 3.949-2.507.409-2.988-1.946-1.832-4.08-1.774-2.136.059-4.161-.952-3.655 1.984m2.778 6.852c.424 1.117 1.587 1.589 3.159 1.253 1.569-.335 2.656-.856 2.568-2.129-.159-2.357-1.713-1.616-3.283-1.279-1.571.333-3.272-.039-2.444 2.155m1.348 5.221c.123.943.939 1.5 2.215 1.49 1.279-.011 2.248-.515 2.412-1.525.308-1.871-1.123-1.175-2.4-1.165-1.28.01-2.47-.65-2.227 1.2\"},\"child\":[]}]})(props);\n};\nexport function SiSpinnaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.343 0C17.785 8.741 11.317 21.987.815 23.882c10.806 1.064 19.481-5.327 21.646-8.066C24.627 13.076 21.343 0 21.343 0zM.815 23.882L.8 23.88v.004l.015-.003zM17.182 5.8C15.409 10.988 10.477 18.547 5.4 20.39c.885.033 1.74-.019 2.561-.132 3.989-3.221 7.14-8.037 9.577-12.771-.193-.981-.356-1.687-.356-1.687z\"},\"child\":[]}]})(props);\n};\nexport function SiSpinrilla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 8.816a3.184 3.184 0 1 0 0 6.368 3.184 3.184 0 1 0 0-6.368zM12 0v3.918A8.082 8.082 0 0 0 3.918 12H0A12 12 0 0 1 12 0zm0 24v-3.918A8.082 8.082 0 0 0 20.082 12H24a12 12 0 0 1-12 12z\"},\"child\":[]}]})(props);\n};\nexport function SiSplunk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.348 11.911l-2.241-1.091v-.65L24 11.621v.593l-2.893 1.438v-.636zm-5.397 1.841h-.961v-5.31h.961v3.116h.102l1.28-1.481.723.31-1.23 1.316 1.453 1.809-.888.311-1.44-1.996zm-2.577-.002v-2.068a2.685 2.685 0 0 0-.026-.42.791.791 0 0 0-.09-.26c-.113-.202-.308-.304-.59-.304a.888.888 0 0 0-.461.113.673.673 0 0 0-.286.33 1.012 1.012 0 0 0-.07.263c-.012.13-.019.262-.017.395v1.95h-.961v-3.614h.961l.002.485c.185-.2.373-.348.566-.437.192-.089.418-.134.673-.134.286 0 .527.058.721.177a1.016 1.016 0 0 1 .475.665 1.972 1.972 0 0 1 .054.448c.002.1.004.22.004.358v2.053zm-4.115.002l-.002-.485a1.783 1.783 0 0 1-.565.437 1.597 1.597 0 0 1-.674.135c-.285 0-.524-.057-.72-.17a.972.972 0 0 1-.425-.504.75.75 0 0 1-.054-.167 1.918 1.918 0 0 1-.033-.199 2.033 2.033 0 0 1-.017-.258 15.516 15.516 0 0 1-.005-.355V10.13h.956v2.07c-.003.141.006.282.026.42.015.092.045.18.09.26.113.204.308.306.59.306.36 0 .606-.15.74-.449.035-.082.06-.168.074-.257.017-.134.024-.269.022-.403v-1.95h.955v3.624zM7.184 8.44h.955v5.31h-.955zM5.759 11.9c0-.396-.08-.708-.24-.937a.759.759 0 0 0-.657-.345.804.804 0 0 0-.693.366c-.171.245-.256.574-.253.99 0 .405.084.723.25.957a.796.796 0 0 0 .69.347.685.685 0 0 0 .433-.135.985.985 0 0 0 .277-.34c.071-.14.121-.292.147-.448.03-.151.043-.3.046-.455m1.01-.036c.003.266-.04.532-.129.786-.082.23-.204.441-.364.626-.31.361-.764.567-1.24.563a1.67 1.67 0 0 1-.313-.028 1.041 1.041 0 0 1-.275-.098 1.33 1.33 0 0 1-.257-.178 2.379 2.379 0 0 1-.265-.268v2.293h-.929v-5.425h.93l.004.529c.169-.212.353-.368.55-.468.197-.1.426-.15.688-.147a1.509 1.509 0 0 1 1.156.507c.148.166.259.361.33.571.08.236.12.485.115.737m-4.21.89a.946.946 0 0 1-.102.441 1.007 1.007 0 0 1-.282.345c-.13.1-.275.173-.43.22a1.8 1.8 0 0 1-.546.08 1.985 1.985 0 0 1-.637-.097 1.964 1.964 0 0 1-.563-.32l.312-.505c.15.126.284.217.405.275.115.057.24.087.368.087a.557.557 0 0 0 .373-.12.396.396 0 0 0 .14-.322.475.475 0 0 0-.12-.318 1.306 1.306 0 0 0-.187-.173 9.231 9.231 0 0 0-.308-.232 6.787 6.787 0 0 1-.281-.21 2.11 2.11 0 0 1-.252-.232 1.039 1.039 0 0 1-.18-.275.826.826 0 0 1-.069-.347.893.893 0 0 1 .094-.409.935.935 0 0 1 .255-.314 1.22 1.22 0 0 1 .39-.203c.16-.05.327-.074.494-.072.184 0 .368.026.545.076.174.05.338.123.488.219l-.282.454a1.05 1.05 0 0 0-.608-.201.504.504 0 0 0-.323.102.307.307 0 0 0-.126.253c0 .098.041.193.113.26.074.078.203.186.385.325.185.136.336.253.457.355.104.085.202.182.286.286.065.08.115.173.145.273a.808.808 0 0 1 .046.299Z\"},\"child\":[]}]})(props);\n};\nexport function SiSpoj (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.143.056c-.522.127-.713.219-2.28 1.114-.88.506-1.68.957-1.76 1.008-.202.113-.417.236-.59.337-.587.337-3.293 1.893-3.453 1.973-1.05.581-1.72 1.453-2.013 2.587-.084.34-.084 9.532 0 9.865.282 1.131.957 2 2.013 2.587.152.084 2.866 1.64 3.453 1.973.173.102.388.224.59.337.085.051.882.507 1.774 1.012C10.89 24.005 10.89 24 12.01 24c1.11 0 1.125-.004 3-1.076.818-.468 1.546-.885 1.626-.928.072-.047.203-.119.283-.164l.295-.17c.08-.046.21-.118.286-.163.582-.337 3.293-1.893 3.44-1.973 1.05-.582 1.72-1.454 2.013-2.587.084-.341.084-9.532 0-9.866-.282-1.13-.957-2-2.013-2.586a860.394 860.394 0 0 1-3.726-2.137l-.295-.17c-.08-.046-.21-.118-.283-.164-.076-.042-.809-.46-1.626-.928C13.183.047 13.117.022 12.09.004c-.51-.013-.763.004-.95.051zm3.014 4.32c.838.156 2.493.759 2.493.91 0 .03-.207.62-.46 1.313-.384 1.058-.472 1.26-.536 1.251-.047 0-.3-.1-.566-.218-.92-.4-1.48-.515-2.546-.51-1.19 0-1.773.21-2.027.732-.088.186-.109.287-.109.548 0 .414.093.616.421.924.304.279.734.502 1.507.788 2.44.899 3.346 1.36 4.026 2.093.759.806 1.04 1.707.995 3.187-.021.83-.101 1.172-.41 1.786-.64 1.291-1.92 2.04-3.906 2.28-.472.059-.813.067-1.706.051-1.135-.021-1.494-.059-2.347-.244-.801-.173-2.16-.696-2.226-.852-.018-.05.838-2.586.893-2.64.01-.008.212.072.452.182 1.16.518 2.04.7 3.4.704 1.07 0 1.626-.131 2.026-.494.275-.244.355-.434.374-.894.017-.371.013-.406-.114-.663a1.533 1.533 0 0 0-.354-.464c-.304-.265-1.232-.717-2.187-1.055-.953-.34-1.36-.51-1.893-.776-1.176-.594-1.947-1.453-2.253-2.52-.088-.294-.096-.417-.094-1.171 0-.798.01-.864.12-1.223.35-1.142 1.032-1.946 2.12-2.506a6.482 6.482 0 0 1 1.613-.523c.218-.039.446-.076.507-.084a21.5 21.5 0 0 1 1.2-.005c.881.013 1.19.03 1.573.101z\"},\"child\":[]}]})(props);\n};\nexport function SiSpond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm-1.403 2.281a3.767 3.767 0 00-.17 2.847c.61 1.79 2.336 2.772 4.069 3.213 2.633.672 4.715 1.388 5.892 2.502 1.037.982 1.435 2.416.803 4.618-.17.59-.486 1.124-.802 1.643-.125-.706-.424-1.411-.924-2.094-3.269-4.462-10.438-3.57-13.174-7.307-.803-1.096-.747-2.236.092-3.288.979-1.226 2.69-1.917 4.214-2.134zm3.163.11c.138-.01.281.002.43.036a9.835 9.835 0 017.076 6.318c-1.514-1.132-3.655-1.86-6.233-2.517-1.528-.39-2.3-1.087-2.542-1.798-.326-.956.308-1.98 1.27-2.04zM3.611 6.895c.125.706.424 1.412.924 2.094 3.269 4.462 10.438 3.57 13.174 7.307.803 1.095.747 2.236-.092 3.288-.979 1.226-2.69 1.916-4.214 2.133.427-.89.489-1.91.17-2.846-.61-1.79-2.336-2.772-4.069-3.213-2.633-.672-4.715-1.388-5.892-2.502-1.037-.982-1.435-2.416-.803-4.618.17-.59.486-1.124.802-1.643zm-.877 8.36c1.514 1.13 3.655 1.858 6.233 2.516 1.528.39 2.3 1.087 2.542 1.798.336.985-.347 2.042-1.357 2.042-.11 0-.225-.012-.342-.039a9.835 9.835 0 01-7.076-6.318z\"},\"child\":[]}]})(props);\n};\nexport function SiSpotify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z\"},\"child\":[]}]})(props);\n};\nexport function SiSpotlight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.126 6.408c.008.101.008.194 0 .295-.034.589-.295 1.027-.656 1.388a2.093 2.093 0 0 1-1.464.606 2.106 2.106 0 0 1-1.498-.572 2.126 2.126 0 0 1-.126-2.996l.101-.101c.353-.345.757-.547 1.372-.606a2.112 2.112 0 0 1 1.582.555c.396.37.64.884.69 1.431zm8.465 7.288l-.631 1.22a3.73 3.73 0 0 0-.37 1.144l-.21 1.363a3.692 3.692 0 0 1-2.003 2.752l-1.229.614c-.362.185-.69.421-.976.707l-.968.985a3.703 3.703 0 0 1-3.24 1.052l-1.355-.227a3.625 3.625 0 0 0-1.203 0l-1.355.227a3.71 3.71 0 0 1-3.24-1.052l-.968-.985a3.669 3.669 0 0 0-.976-.707l-1.229-.614a3.71 3.71 0 0 1-2.003-2.752l-.21-1.363a3.58 3.58 0 0 0-.37-1.144l-.64-1.22a3.68 3.68 0 0 1 0-3.4l.631-1.22a3.73 3.73 0 0 0 .37-1.144l.21-1.363a3.692 3.692 0 0 1 2.003-2.752l1.229-.614c.362-.185.69-.421.976-.707l.968-.976a3.703 3.703 0 0 1 3.24-1.052l1.355.227c.396.067.808.067 1.203 0l1.355-.227a3.71 3.71 0 0 1 3.24 1.052l.968.976c.286.286.614.53.976.707l1.229.614a3.71 3.71 0 0 1 2.003 2.752l.21 1.363c.059.404.185.791.37 1.144l.631 1.22a3.703 3.703 0 0 1 .008 3.4zm-7.287-7.33a3.045 3.045 0 0 0-.345-1.296 3.38 3.38 0 0 0-3.223-1.826c-.135.017-.252.025-.37.042a3.316 3.316 0 0 0-1.868 1.052 3.255 3.255 0 0 0-.841 2.44c.076.926.488 1.717 1.086 2.23.438.379.993.715 1.691.816 1.338.202 2.365-.328 3.029-1.052a3.24 3.24 0 0 0 .841-2.407zm-9.736 6.766c.244-.135.48-.278.715-.412-.084-.968-.16-2.011-.236-2.903.985-.412 1.683-1.212 1.994-2.339.252-.909.143-1.977-.32-2.575a1.533 1.533 0 0 0-.597-.488c-.404-.151-.892-.034-1.229.109a2.902 2.902 0 0 0-.522.303c-.32.227-.614.48-.884.774.286 2.491.572 5.108.85 7.657.076-.034.151-.076.227-.126zm.126-7.153c.017-.076.202-.185.269-.236a.857.857 0 0 1 .429-.16c.463-.017.572.379.597.825.017.236.017.471 0 .707-.059.783-.429 1.287-1.043 1.54-.05-.488-.084-1.077-.143-1.641-.025-.227-.059-.53-.093-.799-.008-.076-.017-.151-.017-.236zm-1.136 6.278a6.08 6.08 0 0 0-.421-1.212 4.559 4.559 0 0 1-.37-1.237c-.067-.597.05-1.119.429-1.397-.143-.463-.261-.917-.404-1.372-.825.438-1.397 1.229-1.397 2.407 0 .724.269 1.195.53 1.717.177.345.328.698.446 1.069.118.396.227.833.194 1.245-.067.791-.396 1.346-.825 1.818-.042.05-.185.168-.185.202.025.059.05.109.084.16.168.353.32.656.488 1.001.025.05.05.151.084.168s.101-.067.143-.118c.143-.151.278-.311.404-.48.698-.968 1.119-2.474.799-3.972zm2.777 1.674c.345-.976.673-1.986.926-3.012.076-.303.168-.614.227-.926.008-.034.034-.109 0-.126-.446.135-.909.252-1.346.396-.185 1.523-.64 2.878-1.153 4.148s-1.144 2.44-1.801 3.559c.808.875 1.834 1.54 2.962 2.095.202-.337.421-.665.614-1.01-.69-.421-1.405-.825-1.994-1.346a39.617 39.617 0 0 0 1.565-3.778zm2.625-2.684c-.286-.194-.64-.337-.951-.505-.623 2.39-1.456 4.594-2.255 6.833.278.151.547.32.833.471.539-1.043.867-2.163 1.296-3.299.21-.555.387-1.128.564-1.708s.353-1.186.513-1.792zm2.424 6.993v-.993c0-.227-.008-.48-.017-.875-.597.076-1.203.126-1.792.21-.025.328-.025.673-.042 1.018.261.017.673-.034.934-.034 0 .488 0 .909.008 1.321 0 .16.025.32-.017.454-.059.202-.269.328-.539.303-.311-.034-.555-.353-.69-.614-.463-.909-.311-2.407-.126-3.416a5.324 5.324 0 0 1 .732-1.927c.345-.547.816-1.001 1.489-1.195 0-.278-.017-.656-.034-.968-.008-.143 0-.32-.034-.396-.008-.008-.025.008-.034.008a3.66 3.66 0 0 0-1.128.64 4.8 4.8 0 0 0-1.22 1.414 5.505 5.505 0 0 0-.286.589c-.362.808-.53 1.742-.631 2.777-.076.791-.084 1.515.034 2.23.042.227.109.454.194.673.295.774.867 1.422 2.028 1.262.446-.059.808-.236 1.186-.396 0-.74-.017-1.515-.017-2.087zm3.559-4.477a22.049 22.049 0 0 1-.109-1.691c-.025-.783 0-1.54.042-2.322 0-.008 0-.008-.008-.008-.303.236-.648.48-.976.715a.418.418 0 0 0-.126.118.853.853 0 0 0 0 .202c-.008 1.128.059 2.322.084 3.332-.278.118-.555.269-.833.379a88.942 88.942 0 0 1-.261-3.408c-.37.126-.707.278-1.069.412.076.555.151 1.086.202 1.599.093.816.135 1.632.143 2.449 0 .236 0 .471-.017.707-.034.496-.025 1.001-.059 1.498-.076.959-.067 1.986-.067 2.895.194-.084.379-.194.572-.286.194-.084.379-.185.564-.295 0-.362.017-.648.025-.959.034-1.186.067-2.179.025-3.231.32-.151.64-.303.976-.446.227 1.355.682 2.541 1.094 3.753.345-.261.64-.572.968-.858a22.97 22.97 0 0 1-.614-1.919 13.182 13.182 0 0 1-.555-2.634zm2.583-3.787c.194-.076.37-.194.555-.286s.362-.194.539-.303c-.337-.968-.757-1.851-1.338-2.609a10.081 10.081 0 0 0-1.977-1.986c0-.017-.025 0-.025.008a7.414 7.414 0 0 0-.513.724c-.034.059-.151.21-.143.269.05.067.109.126.177.177.067.067.135.118.185.168.303.311.555.589.833.926.042.05.143.16.143.21a1.388 1.388 0 0 1-.076.269c-.135.48-.227.951-.311 1.456a12.46 12.46 0 0 0-.151 2.962c.076 1.052.278 2.003.505 2.928.109.454.244.909.412 1.346.126.328.252.656.396.951.05.101.076.219.16.295.286-.37.589-.724.867-1.094-.421-.749-.707-1.666-.926-2.617a6.908 6.908 0 0 1-.177-1.01c-.126-1.372-.177-2.861.194-4.157.295.429.522.892.673 1.372z\"},\"child\":[]}]})(props);\n};\nexport function SiSpreadshirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 6.306L7.796 2.102 0 9.898l12 12 12-12-7.796-7.796zm0 12L3.592 9.898l4.204-4.204L12 9.898l4.184-4.184 4.204 4.204\"},\"child\":[]}]})(props);\n};\nexport function SiSpreaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.615 0l-5.64 6.54L.529 4.718l8.68 7.372-8.537 7.463 8.411-1.984L14.843 24l.71-8.601 7.918-3.483-7.963-3.33L14.621 0h-.006z\"},\"child\":[]}]})(props);\n};\nexport function SiSpringCreators (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.563 24c-1.839 0-4.435-.537-7.028-2.87l2.035-2.262c3.636 3.273 7.425 1.98 8.595.888.078-.079.156-.153.234-.23-3.83-.373-6.629-3.086-6.822-3.277-2.933-2.889-3.6-6.808-1.512-8.93s6.015-1.522 8.95 1.357c.257.246 3.116 3.052 3.677 6.605a6.776 6.776 0 002.727-5.426 6.62 6.62 0 00-1.995-4.791c-1.334-1.303-3.222-2.02-5.306-2.02V0c2.88 0 5.519 1.024 7.43 2.882 1.881 1.83 2.917 4.304 2.917 6.973a9.831 9.831 0 01-6.116 9.086c-.416 1.1-1.12 2.117-2.106 3.04-.97.905-2.865 1.908-5.28 2.01-.13.007-.262.009-.4.009zM7.283 9.077c-.425 0-.79.115-1.046.375-.749.762-.275 2.904 1.48 4.633l.008.009c.025.024 2.771 2.687 6.025 2.414v-.005c.015-2.873-2.808-5.597-2.837-5.625l-.02-.019C9.85 9.832 8.37 9.077 7.283 9.077Z\"},\"child\":[]}]})(props);\n};\nexport function SiSpring (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.8537 1.4158a10.4504 10.4504 0 0 1-1.284 2.2471A11.9666 11.9666 0 1 0 3.8518 20.7757l.4445.3951a11.9543 11.9543 0 0 0 19.6316-8.2971c.3457-3.0126-.568-6.8649-2.0743-11.458zM5.5805 20.8745a1.0174 1.0174 0 1 1-.1482-1.4323 1.0396 1.0396 0 0 1 .1482 1.4323zm16.1991-3.5806c-2.9385 3.9263-9.2601 2.5928-13.2852 2.7904 0 0-.7161.0494-1.4323.1481 0 0 .2717-.1234.6174-.2469 2.8398-.9877 4.1732-1.1853 5.9018-2.0743 3.2349-1.6545 6.4698-5.2844 7.1118-9.0379-1.2347 3.6053-4.9881 6.7167-8.3959 7.9761-2.3459.8643-6.5685 1.7039-6.5685 1.7039l-.1729-.0988c-2.8645-1.4076-2.9632-7.6304 2.2718-9.6306 2.2966-.889 4.4696-.395 6.9637-.9877 2.6422-.6174 5.7043-2.5929 6.939-5.1857 1.3828 4.1732 3.062 10.643.0493 14.6434z\"},\"child\":[]}]})(props);\n};\nexport function SiSpringboot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.693 10.7058-4.73-8.1844c-.4094-.7106-1.4166-1.2942-2.2402-1.2942H7.2725c-.819 0-1.8308.5836-2.2402 1.2942L.307 10.7058c-.4095.7106-.4095 1.873 0 2.5837l4.7252 8.189c.4094.7107 1.4166 1.2943 2.2402 1.2943h9.455c.819 0 1.826-.5836 2.2402-1.2942l4.7252-8.189c.4095-.7107.4095-1.8732 0-2.5838zM10.9763 5.7547c0-.5365.4377-.9742.9742-.9742s.9742.4377.9742.9742v5.8217c0 .5366-.4377.9742-.9742.9742s-.9742-.4376-.9742-.9742zm.9742 12.4294c-3.6427 0-6.6077-2.965-6.6077-6.6077.0047-2.0896.993-4.0521 2.6685-5.304a.8657.8657 0 0 1 1.2142.1788.8657.8657 0 0 1-.1788 1.2143c-2.1602 1.6048-2.612 4.6592-1.0072 6.8194 1.6049 2.1603 4.6593 2.612 6.8195 1.0072 1.2378-.9177 1.9673-2.372 1.9673-3.9157a4.8972 4.8972 0 0 0-1.9861-3.925c-.386-.2824-.466-.8284-.1836-1.2143.2824-.386.8283-.466 1.2143-.1835 1.6895 1.2471 2.6826 3.2238 2.6873 5.3228 0 3.6474-2.965 6.6077-6.6077 6.6077z\"},\"child\":[]}]})(props);\n};\nexport function SiSpringsecurity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 2.066 11.993 0 3.41 2.066v6.612h4.557a3.804 3.804 0 0 0 0 .954H3.41v3.106C3.41 19.867 11.994 24 11.994 24s8.582-4.133 8.582-11.258V9.635h-4.545a3.616 3.616 0 0 0 0-.954h4.558zM12 12.262h-.006a3.109 3.109 0 1 1 .006 0zm-.006-4.579a.804.804 0 0 0-.37 1.52v.208l.238.237v.159l.159.159v.159l-.14.14.15.246v.159l-.16.189.223.222.246-.246V9.218a.804.804 0 0 0-.346-1.535zm0 .836a.299.299 0 1 1 .298-.299.299.299 0 0 1-.298.3z\"},\"child\":[]}]})(props);\n};\nexport function SiSpyderide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.053.237a4.05 4.05 0 0 0-1.89.467A4.1 4.1 0 0 0 .524 2.29a7 7 0 0 0-.2.4c-.036.094-.076.186-.107.275a3.6 3.6 0 0 0-.147.567 4 4 0 0 0-.07.76v15.42a4 4 0 0 0 .4 1.756 4.05 4.05 0 0 0 3.654 2.295h8.234a.22.22 0 0 0 .22-.22v-.983a.22.22 0 0 0-.22-.219h-1.07l-3.188-6.46 7.276-9.642a.8.8 0 0 0 .137-.284l6.668 1.02v1.506a.22.22 0 0 0 .218.217h.99a.22.22 0 0 0 .218-.217v-4.19a4.04 4.04 0 0 0-1.506-3.146A4.04 4.04 0 0 0 19.48.237Zm0 1.42h2.97l.213 1.717-3.938-.601-1.242-.193a2.62 2.62 0 0 1 1.997-.923m9.586 0 .345 2.748-5.39-.821-.244-1.915zm1.318 0h4.304a2.855 2.855 0 0 1 2.848 2.848v1.142L15.326 4.61ZM2.13 3.92l4.924.756-2.749 3.653Zm6.394.98 5.508.843-6.65 8.824-2.43-4.927 3.57-4.733Zm-7.1.555 1.76 3.57-1.762.215Zm17.964 4.608c-2.625 0-4.98.368-4.98 3.069v.514c0 1.35.465 2.772 2.355 3.508l3.484 1.333c1.129.464 1.423.93 1.423 1.641v.295c0 1.055-.614 1.276-2.576 1.276h-4.539a.324.324 0 0 0-.368.368v1.08c0 .195.073.343.368.366.417.05 2.354.222 4.489.222 3.314 0 4.956-.536 4.956-3.284v-.273c0-1.35-.196-2.601-2.453-3.46l-3.263-1.3c-1.202-.442-1.52-1.033-1.52-1.717v-.32c0-.883.661-1.274 1.79-1.274h4.563a.326.326 0 0 0 .369-.369v-1.055a.363.363 0 0 0-.344-.393 31 31 0 0 0-3.754-.227m-15.592.203 2.464 4.98-4.838.608v-5.289Zm3.07 6.227 2.888 5.85H4.272a2.857 2.857 0 0 1-2.85-2.85v-2.316z\"},\"child\":[]}]})(props);\n};\nexport function SiSqlalchemy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.8 15.955a44.068 44.068 0 0 1-1.673-.691c-1.736-.757-1.981-.772-2.499-.143-.119.146-.25.236-.287.2-.111-.111.219-.644.617-.993.325-.285.433-.325.791-.285.228.025.985.29 1.682.586 1.573.669 2.034.811 2.635.811.731 0 1.106-.512.876-1.192-.057-.171-.04-.228.074-.228.213 0 .322.797.168 1.255a1.617 1.617 0 0 1-.424.614c-.251.211-.41.257-.879.254a3.853 3.853 0 0 1-1.082-.188h.001Zm.301-2.225c0-.048.179-.134.401-.188l.401-.099.086-1.446c.094-1.599.025-3.172-.148-3.383-.063-.074-.253-.165-.427-.205-.705-.156-.236-.264 1.133-.264 1.368 0 1.803.099 1.152.264-.561.14-.564.148-.564 2.43 0 1.266.046 2.22.111 2.342.092.171.228.207.752.207 1.081 0 1.453-.255 1.747-1.203.088-.284.315-.233.236.054-.037.134-.097.54-.134.91l-.068.669H14.44c-1.286 0-2.339-.04-2.339-.088Zm5.312-.068c0-.086.083-.171.219-.236.183-.086.302-.265.734-1.11.686-1.337 1.767-3.634 1.87-3.978.079-.262.097-.276.392-.31.171-.02.313-.031.316-.025l.527 1.152c.284.628.856 1.824 1.271 2.654.695 1.397.772 1.523 1.005 1.636.142.069.253.174.253.237 0 .099-.122.111-1.175.111-1.056 0-1.175-.012-1.175-.114 0-.068.091-.142.236-.191.134-.043.236-.122.236-.182 0-.057-.139-.432-.31-.834l-.31-.731h-2.35l-.225.495c-.421.928-.43 1.147-.037 1.252.196.054.25.097.227.185-.025.103-.127.117-.867.117-.794.006-.837 0-.837-.128Zm-15.652.025a10.933 10.933 0 0 1-.808-.196l-.549-.154.282-.518.281-.518-.227-.281c-.322-.399-.737-1.272-.74-1.554-.003-.657.851-1.61 1.898-2.122.72-.353 1.291-.362 2.009-.026l.54.253.157-.224c.085-.123.156-.285.156-.356 0-.071.071-.134.157-.134.085 0 .156.023.156.048 0 .063-.629 1.651-.669 1.691-.017.016-.187-.063-.381-.177-.546-.321-1.232-.535-1.764-.549-1.238-.031-1.667 1.178-.794 2.236l.308.373.839-.68c.942-.76 1.05-.777 1.784-.27.825.569.839 1.434.042 2.339-.705.805-1.431 1.027-2.677.819Zm5.984-.165c-.646-.301-1.229-.876-1.565-1.547-.538-1.076-.373-1.765.646-2.695.856-.782 1.556-1.087 2.498-1.087.68 0 .825.037 1.266.307 1.044.646 1.303 1.878.675 3.221-.737 1.577-2.294 2.37-3.52 1.801Zm-3.872-.702c.409-.322.381-.917-.063-1.389-.558-.592-.731-.566-1.713.253-.976.814-.982.783.185 1.155.771.251 1.255.242 1.591-.019Zm6.034-.046c.484-.239.817-1.343.68-2.259-.17-1.13-1.698-1.901-2.819-1.423-1.153.493-1.17 1.804-.037 2.985.791.828 1.471 1.044 2.176.697Zm11.359-1.414c.04-.071-.845-2.003-.928-2.023-.06-.017-.976 1.872-.976 2.014 0 .072 1.861.08 1.904.009Z\"},\"child\":[]}]})(props);\n};\nexport function SiSqlite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.678.521c-1.032-.92-2.28-.55-3.513.544a8.71 8.71 0 0 0-.547.535c-2.109 2.237-4.066 6.38-4.674 9.544.237.48.422 1.093.544 1.561a13.044 13.044 0 0 1 .164.703s-.019-.071-.096-.296l-.05-.146a1.689 1.689 0 0 0-.033-.08c-.138-.32-.518-.995-.686-1.289-.143.423-.27.818-.376 1.176.484.884.778 2.4.778 2.4s-.025-.099-.147-.442c-.107-.303-.644-1.244-.772-1.464-.217.804-.304 1.346-.226 1.478.152.256.296.698.422 1.186.286 1.1.485 2.44.485 2.44l.017.224a22.41 22.41 0 0 0 .056 2.748c.095 1.146.273 2.13.5 2.657l.155-.084c-.334-1.038-.47-2.399-.41-3.967.09-2.398.642-5.29 1.661-8.304 1.723-4.55 4.113-8.201 6.3-9.945-1.993 1.8-4.692 7.63-5.5 9.788-.904 2.416-1.545 4.684-1.931 6.857.666-2.037 2.821-2.912 2.821-2.912s1.057-1.304 2.292-3.166c-.74.169-1.955.458-2.362.629-.6.251-.762.337-.762.337s1.945-1.184 3.613-1.72C21.695 7.9 24.195 2.767 21.678.521m-18.573.543A1.842 1.842 0 0 0 1.27 2.9v16.608a1.84 1.84 0 0 0 1.835 1.834h9.418a22.953 22.953 0 0 1-.052-2.707c-.006-.062-.011-.141-.016-.2a27.01 27.01 0 0 0-.473-2.378c-.121-.47-.275-.898-.369-1.057-.116-.197-.098-.31-.097-.432 0-.12.015-.245.037-.386a9.98 9.98 0 0 1 .234-1.045l.217-.028c-.017-.035-.014-.065-.031-.097l-.041-.381a32.8 32.8 0 0 1 .382-1.194l.2-.019c-.008-.016-.01-.038-.018-.053l-.043-.316c.63-3.28 2.587-7.443 4.8-9.791.066-.069.133-.128.198-.194Z\"},\"child\":[]}]})(props);\n};\nexport function SiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.01 0A4.01 4.01 0 000 4.01v15.98c0 2.21 1.8 4 4.01 4.01h15.98C22.2 24 24 22.2 24 19.99V4A4.01 4.01 0 0019.99 0H4zm1.62 4.36h12.74c.7 0 1.26.57 1.26 1.27v12.74c0 .7-.56 1.27-1.26 1.27H5.63c-.7 0-1.26-.57-1.26-1.27V5.63a1.27 1.27 0 011.26-1.27zm3.83 4.35a.73.73 0 00-.73.73v5.09c0 .4.32.72.72.72h5.1a.73.73 0 00.73-.72V9.44a.73.73 0 00-.73-.73h-5.1Z\"},\"child\":[]}]})(props);\n};\nexport function SiSquareenix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.723 0v24h20.554v-4.496H7.037V4.088h15.006V0zm9.751 9.46v4.497h8.584V9.459z\"},\"child\":[]}]})(props);\n};\nexport function SiSquarespace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.655 8.719c-1.802-1.801-4.726-1.801-6.564 0l-7.351 7.35c-.45.45-.45 1.2 0 1.65.45.449 1.2.449 1.65 0l7.351-7.351c.899-.899 2.362-.899 3.264 0 .9.9.9 2.364 0 3.264l-7.239 7.239c.9.899 2.362.899 3.263 0l5.589-5.589c1.836-1.838 1.836-4.763.037-6.563zm-2.475 2.437c-.451-.45-1.201-.45-1.65 0l-7.354 7.389c-.9.899-2.361.899-3.262 0-.45-.45-1.2-.45-1.65 0s-.45 1.2 0 1.649c1.801 1.801 4.726 1.801 6.564 0l7.351-7.35c.449-.487.449-1.239.001-1.688zm-2.439-7.35c-1.801-1.801-4.726-1.801-6.564 0l-7.351 7.351c-.45.449-.45 1.199 0 1.649s1.2.45 1.65 0l7.395-7.351c.9-.899 2.371-.899 3.27 0 .451.45 1.201.45 1.65 0 .421-.487.421-1.199-.029-1.649h-.021zm-2.475 2.437c-.45-.45-1.2-.45-1.65 0l-7.351 7.389c-.899.9-2.363.9-3.265 0-.9-.899-.9-2.363 0-3.264l7.239-7.239c-.9-.9-2.362-.9-3.263 0L1.35 8.719c-1.8 1.8-1.8 4.725 0 6.563 1.801 1.801 4.725 1.801 6.564 0l7.35-7.351c.451-.488.451-1.238 0-1.688h.002z\"},\"child\":[]}]})(props);\n};\nexport function SiSrgssr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.861v8.278h24V7.86Zm2.979 2.135c.494 0 .883.032 1.06.057.08.012.122.047.11.138l-.073.457c-.024.135-.068.153-.226.141a11.818 11.818 0 0 0-.914-.043c-.281 0-.575.062-.575.379 0 .226.14.323.446.402l.45.116c.806.207 1.038.604 1.038 1.134 0 .903-.706 1.221-1.676 1.221-.433 0-.878-.032-1.055-.057-.079-.012-.123-.047-.11-.138l.073-.471c.025-.134.067-.153.225-.14.152.012.597.048.853.048.561 0 .793-.06.793-.402 0-.232-.157-.34-.529-.438l-.451-.117c-.592-.152-.934-.524-.934-1.152 0-.695.489-1.135 1.495-1.135zm7.275 0c.628 0 .903.037.945.043.128.012.151.068.133.19l-.072.439c-.025.134-.068.15-.227.139-.177-.012-.487-.03-.719-.03-.768 0-1.123.239-1.123 1.172 0 .738.214 1.274 1.043 1.274.14 0 .263-.006.3-.012v-.854h-.286c-.122 0-.16-.044-.16-.166v-.42c0-.121.038-.164.16-.164h1c.122 0 .158.043.158.164v1.958c0 .134-.038.184-.166.214s-.376.06-1.04.06c-1.483 0-1.96-.853-1.96-2.054 0-1.214.58-1.953 2.014-1.953zm4.129 0c.494 0 .885.03 1.062.055.08.012.122.049.11.14l-.075.457c-.024.135-.065.153-.224.141a11.818 11.818 0 0 0-.914-.043c-.28 0-.574.062-.574.379 0 .226.14.323.445.402l.451.116c.805.207 1.037.604 1.037 1.134 0 .903-.708 1.22-1.678 1.22a9.58 9.58 0 0 1-1.054-.056c-.08-.012-.122-.047-.11-.138l.075-.471c.024-.134.066-.153.224-.14.152.012.598.048.854.048.56 0 .793-.06.793-.402 0-.232-.16-.342-.532-.44l-.45-.115c-.592-.152-.932-.524-.932-1.152 0-.695.486-1.135 1.492-1.135zm3.154 0c.494 0 .884.03 1.06.055.08.012.122.049.11.14l-.072.457c-.024.135-.068.153-.227.141a11.813 11.813 0 0 0-.914-.043c-.28 0-.574.062-.574.379 0 .226.14.323.445.402l.451.116c.805.207 1.038.604 1.038 1.134 0 .903-.707 1.22-1.676 1.22-.433 0-.88-.031-1.057-.056-.08-.012-.122-.047-.11-.138l.075-.471c.024-.134.066-.153.225-.14.152.012.597.048.853.048.561 0 .793-.06.793-.402 0-.232-.157-.342-.53-.44l-.452-.115c-.592-.152-.932-.524-.932-1.152 0-.695.488-1.135 1.494-1.135zM4.98 10.04h1.359c.94 0 1.367.427 1.367 1.19 0 .591-.336.86-.635 1.048l.89 1.477c.099.152-.006.207-.09.207h-.665c-.146 0-.197-.043-.258-.147l-.724-1.304c-.075-.128-.071-.183-.037-.319l.06-.255c.055-.232.116-.152.293-.225.14-.061.281-.16.281-.47 0-.342-.177-.475-.543-.475h-.58v3.03c0 .123-.036.165-.158.165h-.56c-.122 0-.159-.042-.159-.164v-3.594c0-.122.037-.164.159-.164zm14.558 0h1.36c.939 0 1.365.427 1.365 1.19 0 .591-.334.86-.633 1.048l.89 1.477c.098.152-.006.207-.091.207h-.666c-.147 0-.195-.043-.256-.147l-.725-1.304c-.08-.14-.07-.184-.037-.319l.06-.255c.055-.232.117-.152.294-.225.14-.061.28-.16.28-.47 0-.342-.176-.475-.542-.475h-.58v3.029c0 .122-.036.166-.158.166h-.56c-.123 0-.16-.044-.16-.166v-3.592c0-.122.037-.164.16-.164z\"},\"child\":[]}]})(props);\n};\nexport function SiSsrn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.087 7.242c-1.704 0-2.878.996-2.878 2.395 0 .627.21 1.141.611 1.56.45.465.932.723 2.058 1.108 1.173.37 1.398.483 1.64.66.417.337.658.803.658 1.301 0 1.013-.964 1.833-2.154 1.833-.723 0-1.478-.29-1.945-.756-.353-.353-.594-.755-.803-1.366-.032-.08-.065-.128-.129-.128-.08 0-.145.08-.145.192 0 .129.065.499.177.852.097.338.161.563.161.595.097.482.113.498.241.611.338.257 1.334.498 2.074.498 1.848 0 3.166-1.173 3.166-2.813 0-1.205-.787-2.073-2.41-2.604-1.624-.53-1.705-.579-2.074-.98a1.476 1.476 0 0 1-.386-1.013c0-.868.707-1.495 1.688-1.495 1.173 0 2.266.691 2.572 1.64.08.257.112.305.209.305.064 0 .128-.08.128-.193 0-.048-.016-.16-.032-.29-.177-1.092-.193-1.14-.21-1.333 0-.225-.047-.322-.16-.322a.121.121 0 0 0-.064.032c-.16.129-.177.145-.257.145a.495.495 0 0 1-.129-.032c-.852-.354-.996-.402-1.607-.402zm5.256.032c-1.222 0-2.17.498-2.604 1.302l.096.659c.017.096.016.16.016.193 0 .257-.16.45-.369.498.048.499.257.933.61 1.286.45.466.933.724 2.058 1.11 1.158.385 1.399.482 1.64.658.418.322.659.804.659 1.302 0 1.013-.964 1.833-2.154 1.833-.723 0-1.48-.29-1.945-.755a2.82 2.82 0 0 1-.386-.483c-.096.225-.209.45-.338.643.097.45.113.483.242.579.337.257 1.334.498 2.073.498 1.833 0 3.167-1.173 3.167-2.813-.032-1.173-.836-2.025-2.46-2.572-1.64-.546-1.72-.578-2.073-.98a1.477 1.477 0 0 1-.386-1.013c0-.884.707-1.495 1.688-1.495 1.173 0 2.25.691 2.572 1.64.08.257.128.305.209.305.064 0 .129-.08.129-.193 0-.048-.017-.144-.033-.289-.177-1.093-.192-1.141-.209-1.334 0-.225-.048-.322-.16-.322-.032 0-.049.016-.065.032-.16.13-.176.145-.257.145-.032 0-.064-.016-.129-.032-.835-.37-.996-.402-1.591-.402zm4.662.177c-.306 0-.643.016-.98.032-.724.048-.724.048-1.062.048h-.128a.81.81 0 0 1 .048.306c.016.128.016.193.112.723l.113.707a1.1 1.1 0 0 1 .016.193.51.51 0 0 1-.145.37v2.524c.29.417.434.9.434 1.446 0 .627-.177 1.19-.482 1.656-.08.579-.29.723-.82.884-.128.032-.16.048-.16.129 0 .096.048.128.176.128.048 0 .21-.016.338-.032.225-.032.563-.048.884-.048.627 0 1.318.016 1.479.048.177.016.321.032.402.032.112 0 .209-.048.209-.128s-.08-.129-.241-.145c-.933-.096-1.238-.434-1.206-1.35v-2.38c.016-.224.048-.257.386-.24h.723c.29 0 .37.048.515.273.048.08.08.128.08.144l1.623 2.492c.66 1.013 1.238 1.399 2.042 1.399.482 0 .932-.129.932-.258 0-.048-.048-.096-.112-.096-.691.016-1.158-.37-1.977-1.624l-1.833-2.668c1.06-.547 1.64-1.318 1.64-2.299 0-.707-.29-1.334-.804-1.72-.514-.385-1.174-.546-2.202-.546zm10.802.112c-.08 0-.177.016-.322.033-.16.032-.321.048-.595.048-.385 0-1.028-.032-1.27-.048l-.289-.016c-.128 0-.193.048-.193.128 0 .096.049.145.193.177 1.254.177 1.367.466 1.334 3.536v3.15c0 .21-.016.258-.08.242-.032 0-.08-.048-.177-.16l-6.044-6.88c-.128-.145-.209-.193-.353-.193-.048 0-.129 0-.225.016h-.113c-.032 0-.321 0-.514-.016.08.048.16.112.24.16.58.434.933 1.174.933 1.977 0 .129-.016.258-.032.37v4.18l.16.24c.145.21.258.386.37.547v-4.71c0-.225.032-.289.129-.289.064 0 .08.016.16.096l5.546 6.366c.21.241.21.241.306.241.16 0 .209-.097.209-.386v-.128c.016-.386.016-.98.016-1.817v-4.276l.016-.417c-.016-1.592.048-1.753.659-1.913.096-.016.129-.049.129-.113 0-.08-.08-.145-.193-.145zm-11.156.338c.611 0 1.27.209 1.64.547.466.385.739 1.028.739 1.64 0 1.092-.691 1.767-1.849 1.767h-.739c-.434-.016-.466-.048-.466-.466V8.721c0-.45 0-.499.08-.611.097-.129.29-.209.595-.209z\"},\"child\":[]}]})(props);\n};\nexport function SiSst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.68 7.205h-3.776a.263.263 0 0 1-.223-.403l1.666-2.664a.897.897 0 0 0-.76-1.372H4.092c-.54 0-1.04.29-1.31.758C2.09 4.734.758 7.054.23 7.974a1.688 1.688 0 0 0-.223.839L0 15.77a1.499 1.499 0 0 0 1.499 1.5h4.78a.082.082 0 0 1 .067.127l-1.648 2.43a.9.9 0 0 0 .745 1.406h14.542a2.07 2.07 0 0 0 1.81-1.068c.465-.842 1.201-2.008 1.656-2.831.36-.653.549-1.387.549-2.133V8.526c0-.73-.591-1.32-1.32-1.32zm-18.65-1.9a1.43 1.43 0 0 1 1.43-1.43h13.278a.339.339 0 0 1 .284.525l-1.744 2.67a.299.299 0 0 1-.25.135H9.363c-.514 0-.993.26-1.274.69-.833 1.278-2.342 3.882-2.347 3.923h-.187a1.456 1.456 0 0 1-1.526-1.455V5.306zM2.255 16.35a.521.521 0 0 1-.41-.843l1.606-2.055a1.664 1.664 0 0 1 1.308-.64l14.028-.049a.321.321 0 0 1 .275.49l-1.233 2.015c-.194.316-.538.51-.91.51H7.854a1 1 0 0 0-.905.572H2.256zm19.934 1.113c-.366.635-.975 1.532-1.33 2.15-.25.433-.71.7-1.21.7H6.075a.27.27 0 0 1-.221-.425l1.968-2.793a.936.936 0 0 1 .765-.396h13.16a.51.51 0 0 1 .442.764zm.795-2.451a.766.766 0 0 1-.766.765h-2.631a.49.49 0 0 1-.416-.75l1.086-1.746a.968.968 0 0 0-.822-1.48H7.782a.389.389 0 0 1-.329-.597c.43-.675.936-1.767 1.371-2.452a1.346 1.346 0 0 1 1.136-.624h12.274a.75.75 0 0 1 .75.75v6.134z\"},\"child\":[]}]})(props);\n};\nexport function SiStackbit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.9488 2.306L1.1706 7.9673c-.784.4493-1.2385 1.3261-1.1623 2.242v3.7743c-.0664.9275.406 1.8084 1.2066 2.2495l9.7782 5.4725a2.2606 2.2606 0 002.2305 0l9.5937-5.4725c.7883-.45 1.2477-1.329 1.1752-2.2495v-3.7744c.0683-.9116-.3846-1.7816-1.1623-2.2325l-9.5937-5.6615A2.2646 2.2646 0 0012.0845 2c-.3917 0-.7833.102-1.1357.306zm.7749 14.0366l-9.7782-5.6615a.745.745 0 01-.2884-.2951c-.1974-.3648-.0683-.824.2884-1.0259l9.7782-5.6615a.7242.7242 0 01.738 0l9.5936 5.6747c.353.2086.474.6702.2703 1.0314-.2037.3612-.6551.485-1.0082.2764l-9.2284-5.452-8.2765 4.7915 8.638 5.001c.3567.2053.483.6675.2823 1.032-.1361.2477-.3874.3868-.6462.3868a.7266.7266 0 01-.363-.0978zm.0147 3.963L1.9602 14.833a.707.707 0 01-.0815-.0457c-.3443-.2232-.4465-.6897-.2282-1.0419.2178-.352.6741-.4567 1.0182-.2334l9.4203 5.2708 9.2376-5.2708c.3566-.2033.8068-.0723 1.0055.2925.1987.365.0706.8252-.286 1.0285l-9.5937 5.4728a.7239.7239 0 01-.714 0z\"},\"child\":[]}]})(props);\n};\nexport function SiStackblitz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.797 14.182H3.635L16.728 0l-3.525 9.818h7.162L7.272 24l3.524-9.818Z\"},\"child\":[]}]})(props);\n};\nexport function SiStackedit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 0C2.689 0 0 2.689 0 6v12c0 3.311 2.689 6 6 6h12c3.311 0 6-2.689 6-6V6c0-3.311-2.689-6-6-6H6zm.227 1.871h11.546A3.98 3.98 0 0 1 21.75 5.85v11.545a3.978 3.978 0 0 1-3.977 3.976H6.227a3.978 3.978 0 0 1-3.977-3.976V5.85a3.98 3.98 0 0 1 3.977-3.98zm-.223 2.31V6.01H4.633V7.7h1.37v1.903h-1.37v1.689h1.37v1.828h1.4v-1.828h1.695v1.828h1.398v-1.828h1.371v-1.69h-1.37v-1.9h1.37V6.01h-1.37V4.182h-1.4V6.01H7.403V4.182H6.004zm1.398 3.52h1.696v1.903H7.402V7.7z\"},\"child\":[]}]})(props);\n};\nexport function SiStackexchange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.728 15.577v1.036c0 1.754-1.395 3.177-3.1 3.177h-.904L13.645 24v-4.21H5.371c-1.704 0-3.099-1.423-3.099-3.181v-1.032h19.456zM2.275 10.463h19.323v3.979H2.275v-3.979zm0-5.141h19.323v3.979H2.275V5.322zM18.575 0c1.681 0 3.023 1.42 3.023 3.178v1.034H2.275V3.178C2.275 1.422 3.67 0 5.375 0h13.2z\"},\"child\":[]}]})(props);\n};\nexport function SiStackhawk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.674 6.989c.11.092.207.178.298.255L12 4.34l4.971 2.867.298-.256-5.27-3.039-5.325 3.077Zm12.33 6.063c-.12.06-.244.114-.37.162v2.612l-3.315 1.911c.096.025.16.037.16.037-.11.148-.383.258-.607.33l.22.197 3.91-2.256.002-2.993Zm-6.165 10.51 1.182-.683-.682-.46-.179.102c-.086.353-.193.7-.321 1.04Zm-4.32-5.788s.065-.013.161-.037l-3.308-1.911v-2.572a3.963 3.963 0 0 1-.37-.149v2.935l3.997 2.308.238-.22c-.23-.059-.592-.18-.718-.354ZM5.36 5.788c.14.137.282.27.42.399L12 2.594l6.154 3.554c.139-.129.278-.262.42-.4L12 1.953 5.36 5.788Zm15.34 5.74a7.444 7.444 0 0 1-.553.648v4.523L15.95 19.12a11 11 0 0 1 .388.418l4.363-2.52v-5.491ZM4.689 5.116l7.389-4.26L19.3 5.023c.177-.186.346-.374.508-.562L12.075 0 4.172 4.563c.168.18.34.368.517.553ZM9.416 21.61l-6.992-4.037V8.205c-.25-.27-.501-.579-.74-.891V18l7.698 4.443c-.005-.26.01-.548.034-.834ZM21.732 7.913v9.659l-6.997 4.04c.025.287.038.575.033.836L22.474 18V6.965c-.232.318-.485.647-.742.948ZM9.625 20.028l-.235-.136-.793.186.934.54c.039-.246.07-.45.094-.59Zm-1.476-.854L3.86 16.7v-4.414a6.965 6.965 0 0 1-.552-.619v5.353l4.459 2.575c.118-.139.248-.28.382-.42Zm3.16 4.384a9.053 9.053 0 0 1-.319-1.042l-.175-.1-.682.462 1.176.68Zm3.342-3.69-.143.083c.022.123.057.332.096.587l.841-.486-.794-.183Zm-2.91-7.697c.111.238.234.483.348.732.11-.25.233-.494.349-.732.8-1.658 1.202-2.62.175-3.15l-.045-.035c-.168-.166-.332-.25-.479-.25a.711.711 0 0 0-.477.25l-.046.035c-1.026.53-.625 1.493.176 3.15Zm11.14-7.228c-2.374 3.884-7.401 5.72-7.401 5.72 8.85-5.24 8.518-10.51 8.518-10.51-3.172 5.97-8.499 9.199-10.452 10.231-.118.593-.441 1.261-.773 1.948-.17.354-.348.722-.51 1.104l-.172.396-.17-.396c-.162-.377-.34-.744-.511-1.104-.311-.647-.616-1.278-.75-1.843C8.891 9.584 3.292 6.341.002.152c0 0-.332 5.27 8.518 10.51 0 0-5.025-1.836-7.402-5.72 0 0 1.694 5.123 6.799 6.284 0 0-3.221-.043-5.052-1.94 0 0-.105 2.282 4.808 2.626 0 0-2.415.586-3.597-.488 0 0 .058 1.157 3.672 1.268 0 0 1.593-.111 2.606.597-.033 1.296.27 2.64.574 3.645-.053.036-.069.293-1.866.86 0 .029 1.152.309 1.713-.22.12.127-1.305.516-2.642 2.188.016-.066 1.749-.631 2.97-1.177.014-.007-.901.904-1.088 3.617.032-.01.566-.884 1.406-1.857-.06 1.252.164 2.5.65 3.655a8.317 8.317 0 0 0 .653-3.494c.762.907 1.24 1.686 1.27 1.696-.185-2.713-1.104-3.624-1.089-3.617 1.216.546 2.956 1.106 2.971 1.177-1.335-1.672-2.771-2.061-2.643-2.187.56.526 1.717.246 1.713.22-1.818-.574-1.813-.829-1.868-.861.305-1.002.61-2.347.58-3.646 1.015-.704 2.597-.59 2.597-.59 3.614-.11 3.672-1.268 3.672-1.268-1.182 1.074-3.597.488-3.597.488 4.913-.343 4.808-2.625 4.808-2.625-1.834 1.89-5.05 1.933-5.05 1.933 5.1-1.16 6.793-6.283 6.793-6.283Z\"},\"child\":[]}]})(props);\n};\nexport function SiStackoverflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.725 0l-1.72 1.277 6.39 8.588 1.716-1.277L15.725 0zm-3.94 3.418l-1.369 1.644 8.225 6.85 1.369-1.644-8.225-6.85zm-3.15 4.465l-.905 1.94 9.702 4.517.904-1.94-9.701-4.517zm-1.85 4.86l-.44 2.093 10.473 2.201.44-2.092-10.473-2.203zM1.89 15.47V24h19.19v-8.53h-2.133v6.397H4.021v-6.396H1.89zm4.265 2.133v2.13h10.66v-2.13H6.154Z\"},\"child\":[]}]})(props);\n};\nexport function SiStackpath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.721 7.34c-1.01 0-1.84.23-2.5.7-.66.46-.99 1.08-.99 1.84 0 .78.276 1.38.83 1.79.55.42 1.4.8 2.54 1.16.55.2.93.38 1.14.56.22.17.32.42.32.74 0 .28-.1.51-.32.68-.21.19-.54.27-.97.27-.57 0-1-.12-1.27-.34-.3-.24-.44-.6-.44-1.12H.014l-.013.04c-.02.97.346 1.71 1.1 2.23.75.52 1.64.77 2.67.77 1.02 0 1.84-.22 2.46-.66.62-.46.94-1.09.94-1.88 0-.79-.26-1.4-.78-1.85-.53-.45-1.3-.83-2.33-1.13-.67-.25-1.12-.45-1.37-.61-.24-.16-.36-.37-.36-.63 0-.28.12-.51.36-.69.24-.21.57-.29 1-.29.43 0 .77.12 1.01.34.25.24.37.52.37.88h2.04l.01-.03c.03-.81-.29-1.48-.93-2-.64-.52-1.46-.77-2.47-.77m4.78.06v9.18h2.15v-3.15h1.3c1.09 0 1.95-.27 2.59-.83.64-.55.96-1.28.96-2.18 0-.92-.32-1.63-.96-2.19-.64-.56-1.5-.83-2.59-.83H8.5m9.609 0l-3.18 9.19h1.99l3.26-9.19m1.75 0l-3.18 9.19h1.99L24 7.4M10.65 9.04h1.3c.46 0 .82.13 1.05.39.25.26.37.57.37 1 0 .4-.12.73-.37.98-.23.26-.59.38-1.05.38h-1.3z\"},\"child\":[]}]})(props);\n};\nexport function SiStackshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.209 6.697c-.035-.274 0-.594 0-.594v-.01c.141-.714.771-1.254 1.525-1.254.005 0 .009.001.014.001h.002c.859 0 1.557.698 1.557 1.556s-.697 1.556-1.557 1.556c-.003 0-.006-.001-.009-.001h-.007c-.742-.001-1.38-.526-1.525-1.254zM24 1.54v20.92c0 .851-.646 1.54-1.443 1.54H1.444C.647 24 0 23.311 0 22.46V1.54C0 .69.647 0 1.444 0h21.113C23.354 0 24 .69 24 1.54zm-2.303 16.007c0-1.636-1.326-2.962-2.961-2.962-1.317 0-2.477.87-2.844 2.134h-1.758l-2.74-4.717-.002-.004.002-.004 2.736-4.709h1.748c.457 1.571 2.102 2.474 3.673 2.017 1.571-.457 2.475-2.102 2.017-3.673-.457-1.571-2.102-2.474-3.672-2.017a2.9638 2.9638 0 0 0-2.018 2.017h-2.665l-.026-.016-3.227 5.552-.025.042H8.018c-.457-1.571-2.102-2.474-3.673-2.016-1.571.458-2.474 2.102-2.017 3.673.458 1.571 2.103 2.474 3.673 2.017.973-.283 1.733-1.045 2.017-2.017h1.961l3.208 5.52.015-.009h2.69a2.9592 2.9592 0 0 0 2.842 2.134h.002c1.636 0 2.961-1.326 2.961-2.962zm-2.933-1.619c-.743.002-1.381.526-1.527 1.254-.004.029-.004.057-.007.085-.004.017-.015.029-.018.046-.041.301 0 .602 0 .602.173.842.995 1.383 1.837 1.209.573-.118 1.005-.548 1.164-1.088.065-.172.105-.356.105-.551 0-.859-.697-1.557-1.554-1.557zM5.2 10.417c-.858 0-1.556.698-1.556 1.557 0 .006.002.012.002.018 0 .003-.001.005-.001.008.001.854.693 1.547 1.548 1.548.541-.001 1.015-.278 1.292-.698.171-.249.272-.551.272-.875 0-.86-.698-1.558-1.557-1.558z\"},\"child\":[]}]})(props);\n};\nexport function SiStadia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5253 10.0302a18.279 18.279 0 0 1 15.7805.263c.263.1973.6575 0 .7233-.263l.9205-2.8273c.1315-.263 0-.6576-.3288-.789A22.3557 22.3557 0 0 0 .2788 8.6493a.6575.6575 0 0 0-.1972.8548l2.1698 4.7999c.1315.3287.526.526.8548.3945 2.4328-.9205 6.1807-1.841 9.9943-1.315-2.63.4602-4.6684 1.3807-6.3122 2.367a.6575.6575 0 0 0-.1972.8548L7.906 19.63c.1315.263.4603.3288.6575.1315.526-.526 1.052-.9205 1.5123-1.1835 2.104-1.1836 4.9972-2.1041 8.8765-1.9068a.6575.6575 0 0 0 .6576-.4603l.9862-2.9589c.1316-.263 0-.6575-.263-.789a20.0544 20.0544 0 0 0-13.8737-2.4328z\"},\"child\":[]}]})(props);\n};\nexport function SiStaffbase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.847 20.095a7.805 7.805 0 01-6.286-3.238l1.714-1.238C8.323 17.048 10.037 18 11.847 18s3.523-.857 4.571-2.381l1.714 1.238a7.805 7.805 0 01-6.285 3.238zm.19-18c1.62 0 3.238.476 4.762 1.334l1.048.476 2.857-.572-.477 2.857c2.381 3.715 2.191 9.239-1.047 12.667a9.748 9.748 0 01-7.048 3.048 9.98 9.98 0 01-6.857-2.762c-3.905-3.81-4-10-.286-13.905 1.905-2.095 4.477-3.143 7.048-3.143m0-2.095C8.799 0 5.751 1.333 3.466 3.714c-4.572 4.762-4.477 12.381.285 16.953A11.91 11.91 0 0012.037 24c3.238 0 6.381-1.333 8.571-3.619 3.62-3.714 4.286-9.81 1.81-14.571l.38-2.096.477-2.952-2.952.571-2.19.381-.382-.19C15.941.476 14.037 0 12.037 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiStagetimer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.127 2.639c0 .821.662 1.475 1.464 1.644a7.832 7.832 0 0 1 6.201 7.666c0 4.326-3.499 7.833-7.815 7.833a7.767 7.767 0 0 1-3.932-1.062c-.716-.419-1.66-.372-2.207.253l-.794.906c-.549.625-.491 1.586.196 2.053A11.946 11.946 0 0 0 11.977 24C18.617 24 24 18.605 24 11.949 24 5.86 19.495.826 13.644.013c-.829-.116-1.517.571-1.517 1.411v1.215ZM2.01 15.376c-.8.27-1.236 1.135-.866 1.886.255.518.546 1.016.871 1.492.473.693 1.449.752 2.085.202l.921-.797c.636-.551.686-1.502.26-2.224l-.035-.06c-.419-.726-1.277-1.158-2.077-.889l-1.159.39Zm-.322-1.384c-.807.162-1.6-.369-1.658-1.198-.04-.571-.04-1.143 0-1.714.058-.829.851-1.36 1.658-1.198l1.168.233c.807.162 1.316.957 1.312 1.788v.068c.004.831-.505 1.626-1.312 1.787l-1.168.234Z\"},\"child\":[]}]})(props);\n};\nexport function SiStandardjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.966 0 1.608 5.965v12.07L12.035 24l10.358-5.965V5.965Zm1.421 7.02h.651v3.483h-.651l.015-.3c-.116.218-.333.343-.647.343-.501 0-.93-.443-.93-1.075 0-.632.424-1.066.92-1.066.329 0 .512.13.642.333zm6.83 0h.65v3.483h-.65l.014-.3c-.116.218-.333.343-.646.343-.502 0-.931-.443-.931-1.075 0-.632.424-1.066.921-1.066.328 0 .511.13.641.333zm-14.928.358h.646v1.07h.526v.54h-.526v.763c0 .207.068.25.17.25.105 0 .183-.058.226-.086l.246.453a.865.865 0 0 1-.574.188c-.415 0-.714-.207-.714-.825v-.743h-.304v-.54h.304zM3.895 8.405c.338 0 .58.11.748.284l-.347.372a.634.634 0 0 0-.396-.154c-.15 0-.222.038-.222.12 0 .116.13.13.41.193.3.068.676.207.676.641 0 .377-.198.685-.845.685-.477 0-.757-.178-.935-.39l.38-.338a.74.74 0 0 0 .512.217c.212 0 .28-.039.28-.125 0-.111-.13-.111-.463-.198-.28-.072-.593-.227-.593-.656 0-.463.356-.651.795-.651zm4.018 0c.526 0 .926.284.926.93v1.168h-.646l.014-.285c-.154.237-.333.328-.608.328-.376 0-.723-.169-.723-.646 0-.439.333-.617.84-.617h.477c-.01-.237-.126-.343-.343-.343a.643.643 0 0 0-.468.188l-.361-.385c.193-.189.41-.338.892-.338zm2.71 0c.449 0 .772.328.772.911v1.187h-.651V9.36c0-.232-.11-.362-.342-.362-.26 0-.415.145-.415.405v1.1h-.651V8.448h.65l-.014.338a.703.703 0 0 1 .651-.381zm4.857 0c.526 0 .926.284.926.93v1.168h-.646l.014-.285c-.154.237-.332.328-.607.328-.376 0-.724-.169-.724-.646 0-.439.333-.617.84-.617h.477c-.01-.237-.125-.343-.343-.343a.643.643 0 0 0-.467.188l-.362-.385c.193-.189.41-.338.892-.338zm2.667 0c.135 0 .237.038.319.082l-.208.593a.567.567 0 0 0-.25-.063c-.295 0-.454.135-.454.574v.912h-.651V8.448h.651l-.01.372c.15-.338.391-.415.603-.415zm-5.204.574c-.275 0-.448.188-.448.492 0 .323.173.506.448.506.28 0 .463-.183.463-.506 0-.304-.183-.492-.463-.492zm6.83 0c-.275 0-.449.188-.449.492 0 .323.174.506.449.506.28 0 .463-.183.463-.506 0-.304-.184-.492-.463-.492zm-12.024.69c-.164 0-.236.072-.236.188s.096.183.28.183c.265 0 .4-.116.4-.29v-.082zm7.567 0c-.164 0-.236.072-.236.188s.096.183.28.183c.265 0 .4-.116.4-.29v-.082zm-1.261 2.478c.766 0 1.317.267 1.713.965l-.938.603c-.207-.37-.431-.517-.775-.517-.354 0-.578.224-.578.517 0 .361.224.508.741.732l.302.129c1.024.439 1.602.887 1.602 1.895 0 1.085-.853 1.679-1.999 1.679-1.12 0-1.843-.534-2.196-1.232l.982-.568c.258.422.594.732 1.189.732.5 0 .818-.25.818-.594 0-.414-.328-.56-.879-.801l-.301-.13c-.87-.37-1.447-.835-1.447-1.817 0-.904.689-1.593 1.766-1.593zm-3.988.069h1.206v4.117c0 1.249-.732 1.817-1.8 1.817-.965 0-1.525-.5-1.809-1.102l.982-.595c.19.336.362.62.775.62.396 0 .646-.155.646-.757z\"},\"child\":[]}]})(props);\n};\nexport function SiStandardresume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.524 17.138v-2.093h3.111v2.358c0 1.306.102 2.226.306 2.76.204.523.587.786 1.149.786.564 0 .934-.217 1.115-.654.187-.435.281-1.146.281-2.131 0-.987-.165-1.845-.49-2.573-.326-.736-.845-1.506-1.554-2.305L3.852 11.5a10.829 10.829 0 0 1-1.74-2.625C1.705 7.97 1.5 6.92 1.5 5.73c0-1.937.342-3.375 1.028-4.317C3.212.471 4.391 0 6.064 0s2.802.55 3.39 1.653c.595 1.092.893 2.691.893 4.797v1.452H7.324v-1.68c0-1.136-.09-1.95-.268-2.438-.18-.498-.525-.745-1.041-.745-.505 0-.871.186-1.101.56-.22.371-.33.932-.33 1.678 0 .747.114 1.341.342 1.785.23.445.64 1.014 1.236 1.707l1.775 2.091c.889 1.05 1.56 2.11 2.007 3.186.457 1.074.685 2.247.685 3.518 0 2.194-.338 3.815-1.016 4.864C8.938 23.475 7.75 24 6.053 24c-1.69 0-2.868-.582-3.537-1.746-.66-1.173-.99-2.878-.99-5.117Zm15.849-4.426-1.053-.052v11.073h-3.28V.28h5.422c1.125 0 1.965.248 2.52.746.555.489.918 1.177 1.09 2.066.18.878.269 2.034.269 3.464 0 1.422-.138 2.505-.416 3.252a2.405 2.405 0 0 1-1.542 1.505c.741.143 1.26.69 1.554 1.64.293.95.44 2.932.44 5.943 0 3.003.042 4.615.123 4.837h-3.28c-.082-.177-.122-2.98-.122-8.407 0-1.04-.114-1.728-.344-2.066-.228-.346-.69-.53-1.381-.547Zm-1.041-2.824h1.31c.415 0 .721-.102.918-.306.204-.206.342-.555.415-1.053.083-.498.123-1.257.123-2.28v-.144c0-1.27-.097-2.1-.294-2.492-.195-.391-.648-.586-1.357-.586h-1.115z\"},\"child\":[]}]})(props);\n};\nexport function SiStarbucks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.2072 5.2801c-.1052-.0188-.6126-.104-1.2072-.104s-1.102.0848-1.2072.104c-.0605.0108-.0837-.0484-.0377-.0828.0417-.0308 1.2445-.9463 1.2445-.9463l1.244.9463c.0469.0344.024.0936-.0364.0828zm-2.0783 5.9446s-.0636.0228-.0804.0788c.252.1937.4257.6343.9515.6343s.6995-.4406.9511-.6343c-.0164-.0564-.08-.0788-.08-.0788s-.3293.0776-.8711.0776c-.5418 0-.8711-.0776-.8711-.0776zM12 10.4832c-.146 0-.178-.0552-.2777-.0548-.0948.0004-.2789.076-.319.1453a.1542.1542 0 00.0413.0948c.2129.032.309.1505.5558.1505.2469 0 .3425-.1185.5558-.1505a.1579.1579 0 00.0412-.0948c-.0396-.0692-.224-.1445-.3193-.1453-.1-.0008-.1324.0548-.2781.0548zm11.9868 2.27a11.964 11.964 0 01-.076.8528c-1.359.2249-1.8447-.986-3.2368-.9252.0832.2954.1508.5963.2029.9036 1.148-.0008 1.6105 1.0724 2.8878.9143-.0672.3281-.148.6519-.2413.9708-1.01.0992-1.3657-.9044-2.5345-.8767.0096.1664.0148.3345.0148.5041l-.0048.2805 2.2696.866a12.04 12.04 0 01-.3965.9479c-.6823-.0376-.9175-.9127-1.9555-.8431a9.0882 9.0882 0 01-.118.665c.9015-.0632 1.0955.7667 1.7414.834a12.2317 12.2317 0 01-.5302.8767c-.3826-.205-.7143-.8231-1.4398-.8612a8.6035 8.6035 0 00.195-.6994c-.6435 0-1.3794-.2509-1.9964-.8127.2-1.1388-1.5674-2.2984-1.5674-3.1324 0-.9059.4582-1.4073.4582-2.6285 0-.9063-.4402-1.8895-1.104-2.5614a2.2175 2.2175 0 00-.4114-.3309c.6098.7547 1.078 1.6494 1.078 2.6858 0 1.15-.535 1.757-.535 2.8186 0 1.0612 1.5526 1.9796 1.5526 3.074 0 .4305-.1377.851-.5914 1.677.697.6962 1.605 1.076 2.1908 1.076.19 0 .292-.058.3601-.2073a9.0925 9.0925 0 00.1665-.391c.631.0245.9199.5979 1.2692.8268-.1916.2573-.393.5057-.6038.7462-.234-.2593-.5486-.6954-1.0092-.8167a9.2087 9.2087 0 01-.2613.473c.3966.108.6679.5082.878.7715a12.1305 12.1305 0 01-.7075.6754c-.1532-.2384-.3917-.541-.659-.7042a8.3639 8.3639 0 01-.3077.391c.2272.154.4277.4313.5586.6574-.2833.2272-.5763.443-.8796.6446-.1496-1.2192-1.8138-2.0548-1.3653-3.4693-.1472.2493-.3229.561-.3229.9364 0 1.024 1.0908 1.8366 1.1776 2.8542-.226.1353-.4573.2625-.693.383-.0392-1.1185-1.194-2.3425-1.194-3.2604 0-1.0248 1.342-2.054 1.342-3.2636 0-1.2105-1.5485-2.0484-1.5485-3.1112 0-1.062.6586-1.673.6586-3.0343 0-.9972-.4738-2.0063-1.2056-2.651-.1297-.1144-.2573-.2052-.4106-.2849.6903.828 1.0904 1.579 1.0904 2.7186 0 1.2801-.7546 1.9908-.7546 3.244 0 1.2537 1.5197 1.9507 1.5197 3.1192 0 1.1684-1.4145 2.1532-1.4145 3.3536 0 1.092 1.2468 2.182 1.2653 3.4777a11.7704 11.7704 0 01-.8327.3257c.1584-1.3089-1.245-2.659-1.245-3.727 0-1.1676 1.4674-2.1712 1.4674-3.43 0-1.2597-1.4917-1.8451-1.4917-3.138 0-1.292.9151-2.0075.9151-3.4352 0-1.1129-.5494-2.1136-1.352-2.7338l-.0509-.0385c-.0756-.056-.138.0116-.0844.078.5682.7095.8719 1.427.8719 2.4894 0 1.306-1.0512 2.3673-1.0512 3.6325 0 1.4934 1.4117 1.9203 1.4117 3.1456 0 1.2248-1.5137 2.2048-1.5137 3.5053 0 1.206 1.4325 2.5445 1.1868 3.9366a11.6645 11.6645 0 01-.8743.192c.2689-1.7334-1.1364-2.9782-1.1364-4.1122 0-1.2277 1.5677-2.322 1.5677-3.5217 0-1.1316-1.1252-1.5014-1.2732-2.659-.0204-.158-.1473-.2753-.3221-.2461-.2285.0416-.5214.192-.9816.192-.4602 0-.753-.1508-.982-.192-.1744-.0288-.3013.0884-.3217.246-.1476 1.1577-1.2736 1.527-1.2736 2.659 0 1.1997 1.5681 2.2937 1.5681 3.5218 0 1.134-1.4053 2.3788-1.1368 4.1123a12.1233 12.1233 0 01-.8743-.1921c-.2457-1.3921 1.1872-2.7306 1.1872-3.9366 0-1.3005-1.5141-2.2805-1.5141-3.5053 0-1.2253 1.412-1.6522 1.412-3.1456 0-1.2652-1.0515-2.326-1.0515-3.6325 0-1.062.3037-1.7795.8723-2.4893.0532-.0665-.0088-.134-.0848-.078l-.0504.0384c-.802.6186-1.351 1.6193-1.351 2.7322 0 1.4277.9152 2.1431.9152 3.4352 0 1.2925-1.4917 1.878-1.4917 3.138 0 1.2588 1.4673 2.2624 1.4673 3.43 0 1.0684-1.4033 2.4181-1.2445 3.727a11.8995 11.8995 0 01-.833-.3257c.0188-1.2957 1.2648-2.3861 1.2648-3.4777 0-1.2004-1.4137-2.1852-1.4137-3.3536 0-1.1685 1.519-1.8655 1.519-3.1192 0-1.2532-.7543-1.9639-.7543-3.244 0-1.1396.3997-1.8907 1.09-2.7186-.1537.0797-.281.1705-.4102.285-.7318.6446-1.2052 1.6537-1.2052 2.651 0 1.3612.6586 1.9722.6586 3.0342 0 1.0628-1.5485 1.9007-1.5485 3.1112 0 1.2096 1.342 2.2392 1.342 3.2636 0 .9183-1.1556 2.1423-1.1944 3.2604a11.8754 11.8754 0 01-.693-.383c.0872-1.0176 1.1776-1.8303 1.1776-2.8542 0-.3754-.1753-.687-.323-.9364.4486 1.4145-1.2156 2.25-1.3652 3.4693a12.1204 12.1204 0 01-.8796-.6446c.1305-.2257.331-.5034.5586-.6575a7.9134 7.9134 0 01-.3077-.391c-.2677.1633-.5066.4659-.6594.7043a12.2459 12.2459 0 01-.707-.6754c.21-.2633.4813-.6635.8779-.7715a9.0433 9.0433 0 01-.2613-.473c-.4606.1213-.7755.5574-1.0092.8167a12.141 12.141 0 01-.6038-.7462c.3493-.229.6382-.8027 1.2688-.8267.0529.1312.1085.2617.1669.3909.068.1493.1705.2073.3601.2073.5858 0 1.4934-.3798 2.1908-1.076-.4537-.826-.5914-1.2465-.5914-1.677 0-1.094 1.5526-2.0124 1.5526-3.074 0-1.0615-.535-1.6686-.535-2.8186 0-1.0364.4682-1.9311 1.078-2.6858a2.2175 2.2175 0 00-.4114.331c-.6638.6722-1.104 1.655-1.104 2.5613 0 1.2212.4586 1.7226.4586 2.6285 0 .834-1.7679 1.9936-1.5678 3.1324-.617.5618-1.3529.8127-1.9967.8127a9.305 9.305 0 00.1949.6994c-.7251.0385-1.0568.6567-1.4398.8612a12.0872 12.0872 0 01-.5302-.8768c.6455-.0672.84-.897 1.7419-.8339a9.1275 9.1275 0 01-.1185-.665c-1.038-.0696-1.2732.8059-1.9555.8431a12.04 12.04 0 01-.3965-.948l2.27-.8659-.0048-.2805c0-.1696.0052-.3377.0144-.5041-1.1688-.0273-1.5246.976-2.5345.8767a12.106 12.106 0 01-.241-.9708c1.2766.158 1.7395-.9151 2.888-.9143a8.7482 8.7482 0 01.2024-.9036c-1.392-.0604-1.8779 1.1505-3.2364.9252a11.7352 11.7352 0 01-.076-.8527c1.5794.1764 2.1716-1.122 3.6097-.9632a8.4303 8.4303 0 01.471-.9963c-1.803-.317-2.4153 1.1908-4.0935.9591C.1813 5.2805 5.4844.0898 12 .0898S23.8187 5.2805 24 11.753c-1.6786.2317-2.2908-1.2757-4.0935-.9591.1773.32.335.6526.471.9963 1.4373-.1592 2.0295 1.1396 3.6093.9632zm-17.147-5.035c-.884-.3613-1.954-.278-2.868.309-.1416-.8504-.603-1.6058-1.26-2.0616-.0908-.0628-.1853-.0032-.1769.102.1389 1.7967-.9115 3.3569-2.2032 4.7282 1.3313.4001 2.4645-1.3141 4.1912-.7159a9.0364 9.0364 0 012.3168-2.3617zM12 6.6314c-1.1144 0-2.048.6303-2.2924 1.4446-.0188.0624.0068.1028.0788.0704.2005-.09.4285-.1333.6762-.1333.4546 0 .8551.1669 1.092.4574.1049.3457.1137.8463-.0048 1.132-.1872-.042-.2545-.1868-.4373-.1868-.1829 0-.3245.1284-.6347.1284-.3097 0-.346-.1465-.5498-.1465-.2396 0-.2837.247-.2837.5254 0 1.2417 1.1413 2.9503 2.3553 2.9503 1.2136 0 2.3549-1.7086 2.3549-2.9503 0-.2785-.0573-.517-.3077-.5494-.1249.09-.2397.1705-.5254.1705-.3102 0-.3958-.1284-.5783-.1284-.2204 0-.1984.465-.4601.491-.1745-.4194-.1829-.9572-.038-1.4362.2373-.2905.6374-.4574 1.092-.4574.2477 0 .4773.0437.6758.1333.0724.0324.0976-.0084.0788-.0704-.244-.8143-1.1772-1.4446-2.2916-1.4446zm1.7743 1.7815c-.2673 0-.5807.082-.7775.3013-.0204.0596-.0204.1484.0084.2077.4845-.166.9119-.1725 1.1184.0584.11-.1.1452-.19.1452-.2945 0-.1613-.164-.273-.4945-.273zm-3.8979.5674c.2337-.234.7263-.224 1.238-.0352.0225-.2545-.4333-.5326-.8887-.5326-.3309 0-.4945.1116-.4945.2733 0 .1044.0352.1949.1452.2945zm7.6804-4.2031c-.8799.0628-1.6442.3649-2.2624.8683.2625-.7443.5958-1.3953 1.0184-2.0264-1.1204.1189-2.0572.5286-2.7406 1.2289l-.535-1.4025 1.1876-1.0488-1.5902-.1125L12 .8053l-.635 1.479-1.5902.1124 1.1876 1.0488-.5346 1.4025c-.6838-.7003-1.6206-1.11-2.7402-1.2289.4218.6315.7551 1.2825 1.0176 2.0264-.6178-.5038-1.3821-.806-2.262-.8683.5278.6786.9955 1.402 1.342 2.18.0393.0876.1233.1164.2141.0712 1.2053-.599 2.5634-.936 4.0003-.936 1.437 0 2.7946.3374 4.0007.936.0908.0452.1748.0164.2136-.0712.347-.778.8147-1.5014 1.343-2.18zm1.9211 5.3035c1.7259-.5982 2.8595 1.1156 4.1908.7159-1.2917-1.3713-2.3417-2.9315-2.2028-4.7282.0084-.1052-.0865-.1652-.1769-.102-.6574.4558-1.1188 1.2112-1.26 2.0615-.9144-.587-1.984-.6706-2.868-.3089a9.0431 9.0431 0 012.317 2.3617z\"},\"child\":[]}]})(props);\n};\nexport function SiStardock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.337 3.28c-.108 0-.22.007-.336.017-1.553.129-3.886.917-6.557 2.217a7.326 7.326 0 0 0-3.71-.994c-4.124 0-7.478 3.354-7.478 7.496 0 .674.093 1.33.262 1.95-3.224 2.697-5.04 5.153-4.385 6.221.712 1.125 3.992.412 8.115-1.556a7.55 7.55 0 0 0 3.484.863c4.124 0 7.48-3.356 7.48-7.478 0-.544-.058-1.086-.17-1.592 3.504-2.867 5.529-5.491 4.816-6.615-.24-.375-.768-.545-1.521-.53Zm-4.324 1.708c-1.912.769-4.666 1.706-5.64 3.711-.564 1.143.371 2.436.84 3.035.47.62 1.35 2.174-.13 3.786-1.5 1.63-7.028 3.318-7.028 3.318 1.78-.843 4.91-2.06 5.396-4.16.375-1.593-1.142-2.493-1.555-3.205-.412-.712-.842-1.93 1.313-3.54 2.156-1.631 6.804-2.945 6.804-2.945Zm1.02.758c.67-.007 1.153.151 1.378.498.43.675-.207 1.95-1.556 3.393a7.514 7.514 0 0 0-2.323-3.393c.975-.318 1.832-.49 2.502-.498zM4.8 14.79a7.627 7.627 0 0 0 2.305 3.074c-1.762.525-3.074.524-3.467-.113-.394-.618.075-1.706 1.162-2.96z\"},\"child\":[]}]})(props);\n};\nexport function SiStarlingbank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm2.738 3.822h.666v2.724h-.666a4.794 4.794 0 0 0-4.789 4.788V12H7.226v-.666c0-4.142 3.37-7.512 7.512-7.512zM14.05 12h2.723v.666c0 4.142-3.37 7.512-7.512 7.512h-.666v-2.724h.666a4.794 4.794 0 0 0 4.789-4.788z\"},\"child\":[]}]})(props);\n};\nexport function SiStarship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.521 9.62a1.057 1.057 0 11-2.115 0 1.057 1.057 0 012.115 0zM24 12c0 6.627-5.373 12-12 12-.35 0-.697-.015-1.04-.044 2.019-1.89 2.548-5.061 2.548-5.061l-3.226-1.053s-1.499 3.23-5.599 3.67A11.98 11.98 0 010 12C0 5.373 5.373 0 12 0s12 5.373 12 12zM8.628 6.606c-1.23-.13-1.885-.83-2.03-2.031-.142 1.159-.77 1.88-2.032 2.031 1.168.227 1.83.918 2.031 2.032-.02-1.154.666-1.825 2.031-2.032zm7.786 5.207c1.11-2.483.392-4.252-1.233-6.246-2.043 1.5-3.759 3.023-3.636 5.149-1.375.675-2.261 1.206-3.147 2.289l2.779 1.103-.368 1.267 3.637 1.062.443-1.181 2.825.651c.014-1.496-.38-3.097-1.3-4.094z\"},\"child\":[]}]})(props);\n};\nexport function SiStartpage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m16.885 14.254.04-.06a8.723 8.723 0 0 0 1.851-4.309c-1.334 0-2.648 0-3.982.04a4.901 4.901 0 0 1-4.758 3.696 4.948 4.948 0 0 1-4.56-3.044 89.632 89.632 0 0 0-3.941.514c1.035 3.697 4.46 6.405 8.501 6.405a8.76 8.76 0 0 0 3.743-.83l.06-.02.04.04 5.455 6.603c.378.454.916.711 1.513.711.458 0 .896-.158 1.234-.435.399-.336.657-.79.697-1.304.04-.514-.1-1.009-.438-1.424zM5.118 8.56c.1-2.59 2.27-4.685 4.918-4.685a4.911 4.911 0 0 1 4.898 4.389c1.314.02 2.608.04 3.922.099C18.616 3.717 14.754 0 10.036 0c-4.858 0-8.82 3.934-8.82 8.758v.178a86.7 86.7 0 0 1 3.902-.376z\"},\"child\":[]}]})(props);\n};\nexport function SiStartrek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.943 14.596c.094 0 .3.095.576.462a57.71 57.71 0 0 1 2.165 3.23c-1.627.646-3.595 1.01-5.684 1.01-.988 0-1.948-.097-2.856-.26 1.417-1.507 2.918-2.856 4.703-3.98.555-.278.819-.462 1.096-.462zm2.424-6.202c2.858 1.055 4.788 2.906 4.788 4.998 0 1.415-.881 2.73-2.338 3.755-.385-2.26-.898-4.477-1.644-6.616a38.69 38.69 0 0 0-.808-2.136zM7.73 8.077a38.965 38.965 0 0 0-1.096 3.288 56.361 56.361 0 0 0-1.327 6.404c-2.11-1.1-3.462-2.69-3.462-4.385.001-2.274 2.44-4.337 5.885-5.307zM12.463.086c-.095 0-.08-.007-.174.086a25.88 25.88 0 0 0-3.663 5.77C3.631 6.89 0 9.887 0 13.385c0 2.588 1.991 4.903 5.048 6.317a64.85 64.85 0 0 0-.347 4.01c0 .094.108.202.203.202h.086c.094 0 .08.007.173-.086a79.757 79.757 0 0 1 2.538-3.203c1.338.336 2.78.52 4.299.52 2.455 0 4.738-.48 6.635-1.298.46.772.908 1.555 1.385 2.395 0 .094.194.086.288.086a.175.175 0 0 0 .173-.173 69.569 69.569 0 0 0-.346-3.088c2.369-1.42 3.865-3.45 3.865-5.682 0-3.252-3.156-6.072-7.615-7.212a33.526 33.526 0 0 0-3.75-6c0-.094-.078-.087-.172-.087z\"},\"child\":[]}]})(props);\n};\nexport function SiStarz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.2695 9.2832C.3784 9.2832.131 10.4706.131 10.834c0 2.1989 2.9316 1.3955 2.9316 2.2363 0 .2073-.1641.4277-.7363.4277-.6317 0-.7598-.2895-.7598-.5097H0c.0054.4022.1675 1.7285 2.3262 1.7285 1.5989 0 2.287-.7516 2.287-1.7031 0-2.1804-2.996-1.3552-2.996-2.1797 0-.1628.1284-.4082.6308-.4082.5025 0 .631.2454.631.4082H4.369c0-.3917-.2084-1.5508-2.0996-1.5508zm2.2774.1465v1.4043h1.4199v3.7363h1.5488V10.834h1.4395V9.4297Zm5.6191 0L8.131 14.5703h1.6425l.1836-.5586h1.7989l.1855.5586h1.6406L11.547 9.4297Zm3.7422 0v5.1406h1.5488v-2.164l1.289 2.164h1.836l-1.3125-1.9023c.6997-.3145.9922-.9294.9922-1.5567h-.002c0-.928-.6126-1.6816-2.121-1.6816h-.002zm4.9297 0v1.4043h2.0371l-2.2246 3.7363h4.1816l.7793-1.4043h-2.4531l2.2227-3.7363Zm-3.3809 1.2656h.6817c.4166 0 .58.225.58.504 0 .2788-.1636.5058-.58.5058v-.002h-.6817zm-4.6015.6094.5586 1.6777h-1.1153zm12.836 2.7148c-.1708 0-.3087.1398-.3087.3106 0 .1707.1379.3086.3086.3086A.3082.3082 0 0 0 24 14.33c0-.1708-.1379-.3106-.3086-.3106zm-.0138.0606c.0042-.0002.0094 0 .0137 0 .1373 0 .248.1127.248.25a.2477.2477 0 0 1-.248.248c-.1372 0-.25-.1108-.25-.248 0-.133.105-.2433.2363-.25zm-.0937.084v.33h.0605v-.1289h.047l.0702.129h.0703l-.0781-.1368a.0987.0987 0 0 0 .0469-.0332.0949.0949 0 0 0 .0195-.0605c0-.059-.0416-.0996-.1055-.0996zm.0605.0625h.0645c.0314 0 .0488.013.0488.039 0 .026-.0174.039-.0488.039h-.0645z\"},\"child\":[]}]})(props);\n};\nexport function SiStatamic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.78 21.639c1.754 0 2.398-.756 2.398-2.607v-3.62c0-1.722.837-2.704 1.641-3.17.242-.145.242-.483 0-.644-.836-.531-1.64-1.642-1.64-3.122v-3.54c0-1.996-.548-2.575-2.302-2.575H4.123c-1.754 0-2.301.58-2.301 2.575v3.556c0 1.48-.805 2.59-1.641 3.122a.377.377 0 0 0 0 .643c.804.451 1.64 1.433 1.64 3.17v3.605c0 1.85.645 2.607 2.399 2.607zm-7.82-3.299c-1.883 0-3.25-.563-4.522-1.673a.891.891 0 0 1-.29-.676.83.83 0 0 1 .193-.563l.403-.515c.193-.242.402-.354.643-.354.274 0 .531.112.805.29a5.331 5.331 0 0 0 2.993.884c.885 0 1.593-.37 1.593-1.126 0-1.963-6.533-.885-6.533-5.294 0-2.366 1.93-3.685 4.441-3.685 1.77 0 3.074.515 4.04 1.126.24.161.402.483.402.805 0 .193-.049.37-.161.53l-.29.435c-.21.29-.45.435-.756.435-.21 0-.435-.08-.676-.193a5.07 5.07 0 0 0-2.398-.564c-.95 0-1.513.515-1.513 1.046 0 2.012 6.534.918 6.534 5.198 0 2.414-1.947 3.894-4.908 3.894z\"},\"child\":[]}]})(props);\n};\nexport function SiStatista (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.8597 0a.84.84 0 0 0-.8404.8404v15.2165H.14s3.6114-.0681 5.1428-.8739a10.89 10.89 0 0 0 3.337-3.0513l.903-1.2746.2857-.4062c.0343-.04.1821-.2571.2678-.3828s.4581-.6506.8181-1.1764a16.94 16.94 0 0 1 5.2623-4.7433c3.3371-1.7142 7.76-1.5424 7.76-1.5424h.0681V.8917A.84.84 0 0 0 23.1455 0Zm23.1195 7.9487a.9.9 0 0 1-.2166.029s-3.6054.068-5.154.8794a10.86 10.86 0 0 0-3.3382 3.0458l-.885 1.2801c-.1314.1829-.257.3652-.2913.4052l-.269.3828-.817 1.1774s-2.1776 3.1433-5.2633 4.7433c-3.2 1.6629-7.3882 1.5539-7.731 1.5425v1.7142A.84.84 0 0 0 .8541 24h22.2857a.84.84 0 0 0 .8393-.8404z\"},\"child\":[]}]})(props);\n};\nexport function SiStatuspage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.008 9.597a5.623 5.623 0 1 1 0 11.245 5.623 5.623 0 0 1 0-11.245zM.154 8.717l3.02 3.574a.639.639 0 0 0 .913.068c4.885-4.379 10.97-4.379 15.84 0a.642.642 0 0 0 .916-.068l3.006-3.574a.646.646 0 0 0-.075-.906c-7.1-6.204-16.462-6.204-23.555 0a.65.65 0 0 0-.065.906z\"},\"child\":[]}]})(props);\n};\nexport function SiStatuspal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.275 9.296c0-1.242-1.02-2.25-2.275-2.25-1.256 0-2.275 1.008-2.275 2.25 0 .936.58 1.737 1.403 2.077L5.934 24c1.896-1.1 3.98-1.651 6.066-1.651 2.085 0 4.17.55 6.066 1.65l-5.194-12.626a2.251 2.251 0 001.403-2.077zm1.187 12.01A13.44 13.44 0 0012 20.849a13.44 13.44 0 00-3.463.457L12 13.389zM16.55 13.5a5.58 5.58 0 00-.723-7.535 5.732 5.732 0 00-7.654 0A5.58 5.58 0 007.45 13.5a6.167 6.167 0 01.143-8.716c2.446-2.379 6.368-2.379 8.813 0a6.167 6.167 0 01.144 8.716zm0 3c3.047-1.988 4.416-5.716 3.366-9.174C18.867 3.867 15.65 1.5 12 1.5c-3.65 0-6.869 2.367-7.917 5.826-1.049 3.458.32 7.186 3.367 9.174-3.481-2.029-5.16-6.111-4.096-9.968C4.417 2.675 7.96 0 12 0c4.042 0 7.583 2.675 8.646 6.532 1.063 3.857-.615 7.94-4.096 9.968z\"},\"child\":[]}]})(props);\n};\nexport function SiSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.979 0C5.678 0 .511 4.86.022 11.037l6.432 2.658c.545-.371 1.203-.59 1.912-.59.063 0 .125.004.188.006l2.861-4.142V8.91c0-2.495 2.028-4.524 4.524-4.524 2.494 0 4.524 2.031 4.524 4.527s-2.03 4.525-4.524 4.525h-.105l-4.076 2.911c0 .052.004.105.004.159 0 1.875-1.515 3.396-3.39 3.396-1.635 0-3.016-1.173-3.331-2.727L.436 15.27C1.862 20.307 6.486 24 11.979 24c6.627 0 11.999-5.373 11.999-12S18.605 0 11.979 0zM7.54 18.21l-1.473-.61c.262.543.714.999 1.314 1.25 1.297.539 2.793-.076 3.332-1.375.263-.63.264-1.319.005-1.949s-.75-1.121-1.377-1.383c-.624-.26-1.29-.249-1.878-.03l1.523.63c.956.4 1.409 1.5 1.009 2.455-.397.957-1.497 1.41-2.454 1.012H7.54zm11.415-9.303c0-1.662-1.353-3.015-3.015-3.015-1.665 0-3.015 1.353-3.015 3.015 0 1.665 1.35 3.015 3.015 3.015 1.663 0 3.015-1.35 3.015-3.015zm-5.273-.005c0-1.252 1.013-2.266 2.265-2.266 1.249 0 2.266 1.014 2.266 2.266 0 1.251-1.017 2.265-2.266 2.265-1.253 0-2.265-1.014-2.265-2.265z\"},\"child\":[]}]})(props);\n};\nexport function SiSteamdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.981 0C5.72 0 .581 2.231.02 5.081l6.675 1.257c.544-.17 1.162-.244 1.8-.244l3.131-1.875c-.037-.469.244-.956.881-1.35.9-.581 2.307-.9 3.732-.9a8.582 8.582 0 012.812.412c2.1.713 2.569 2.082 1.069 3.057-.956.618-2.494.937-4.013.9l-4.125 1.48c-.037.3-.243.582-.637.845-1.106.712-3.263.88-4.8.356-.675-.225-1.125-.563-1.313-.9L.47 7.2c.431.675 1.125 1.294 2.025 1.838C.938 9.938 0 11.062 0 12.28c0 1.2.9 2.307 2.419 3.206C.9 16.37 0 17.476 0 18.675 0 21.619 5.363 24 12 24c6.619 0 12-2.381 12-5.325 0-1.2-.9-2.306-2.419-3.188C23.1 14.588 24 13.482 24 12.282c0-1.219-.938-2.362-2.512-3.262 1.556-.956 2.493-2.138 2.493-3.413 0-3.093-5.381-5.606-12-5.606zm4.275 2.663c-.975.018-1.912.225-2.512.618-1.031.675-.713 1.594.712 2.082 1.425.487 3.394.337 4.425-.338 1.032-.675.713-1.594-.712-2.062a6.376 6.376 0 00-1.913-.282zm.057.318c1.387 0 2.493.525 2.493 1.163 0 .637-1.106 1.162-2.493 1.162-1.388 0-2.494-.525-2.494-1.162 0-.638 1.106-1.163 2.494-1.163zM8.493 6.45c-.3.019-.58.038-.862.075l1.707.319a2.03.94 0 11-1.52 1.744l-1.668-.32c.188.17.45.32.806.45 1.2.413 2.888.282 3.75-.28.863-.563.6-1.35-.6-1.744-.487-.169-1.068-.244-1.612-.244zm11.944 3.113v1.743c0 2.063-3.787 3.732-8.437 3.732-4.669 0-8.437-1.67-8.437-3.732V9.581c2.156.994 5.137 1.613 8.418 1.613 3.3 0 6.3-.619 8.475-1.631zm0 6.487v1.65c0 2.063-3.787 3.731-8.437 3.731-4.669 0-8.437-1.668-8.437-3.731v-1.65c2.175.956 5.137 1.538 8.437 1.538s6.281-.582 8.438-1.538z\"},\"child\":[]}]})(props);\n};\nexport function SiSteamdeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.999 0v4.309c4.242 0 7.694 3.45 7.694 7.691s-3.452 7.691-7.694 7.691V24c6.617 0 12-5.383 12-12s-5.383-12-12-12Zm0 6.011c-3.313 0-6 2.687-5.998 6a5.999 5.999 0 1 0 5.998-6z\"},\"child\":[]}]})(props);\n};\nexport function SiSteamworks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.928 9.49v2.071h-1.503v1.503h1.503v-1.5H24V9.49zm-5.915.498v1.075h1.075V9.988zm2.326 2.572a.596.596 0 00-.382.144.497.497 0 00-.155.383.437.437 0 00.145.35.627.627 0 00.33.14l.103.015.112.02a1.071 1.071 0 01.163.037.366.366 0 01.102.065.34.34 0 01.1.268.353.353 0 01-.127.29.529.529 0 01-.347.105.736.736 0 01-.285-.05.747.747 0 01-.24-.175l-.098.102a.795.795 0 00.27.193.866.866 0 00.343.06.68.68 0 00.455-.144.508.508 0 00.175-.39.53.53 0 00-.043-.208.423.423 0 00-.12-.16.468.468 0 00-.13-.08.84.84 0 00-.2-.047l-.112-.02-.088-.013a.82.82 0 01-.152-.045.481.481 0 01-.123-.072.323.323 0 01-.095-.25.378.378 0 01.115-.287.442.442 0 01.313-.105.617.617 0 01.252.045.75.75 0 01.195.132l.09-.092a.713.713 0 00-.53-.21.596.596 0 00-.036 0zm-17.664.005a.673.673 0 00-.432.161.542.542 0 00-.175.42.516.516 0 00.132.375.602.602 0 00.359.157l.12.015.105.015a.278.278 0 01.172.076.23.23 0 01.05.155c0 .16-.11.237-.327.237a.783.783 0 01-.251-.037.47.47 0 01-.195-.123l-.233.24a.76.76 0 00.295.195 1.157 1.157 0 00.38.058.764.764 0 00.492-.156.53.53 0 00.193-.431.54.54 0 00-.143-.405.48.48 0 00-.145-.093.988.988 0 00-.21-.052l-.107-.015-.113-.015a.292.292 0 01-.167-.078.194.194 0 01-.058-.135.222.222 0 01.075-.172.305.305 0 01.213-.068.767.767 0 01.205.027.394.394 0 01.172.105l.228-.232a.72.72 0 00-.26-.17.977.977 0 00-.338-.053.673.673 0 00-.037 0zm12.091.003a.612.612 0 00-.238.05.645.645 0 00-.21.146.525.525 0 00-.097.134.607.607 0 00-.05.153 1.387 1.387 0 00-.02.19 8.383 8.383 0 000 .595 1.306 1.306 0 00.02.19.607.607 0 00.05.152.486.486 0 00.097.135.645.645 0 00.21.145.656.656 0 00.251.05.612.612 0 00.251-.05.645.645 0 00.21-.145.525.525 0 00.097-.135.606.606 0 00.05-.152 1.385 1.385 0 00.02-.19 8.36 8.36 0 000-.595 1.305 1.305 0 00-.02-.19.606.606 0 00-.05-.153.486.486 0 00-.097-.134.645.645 0 00-.21-.146.656.656 0 00-.25-.05.612.612 0 00-.014 0zm-10.949.015v.333H2.3v1.575h.36v-1.575h.482v-.333zm1.878 0v1.908h1.218v-.33h-.855v-.464h.727v-.333h-.727v-.448h.855v-.333zm2.298 0l-.673 1.908h.375l.113-.337h.655l.11.337h.377l-.675-1.908zm1.442 0v1.908h.36v-1.11l.355.722h.245l.352-.722v1.11h.36v-1.908h-.354l-.48 1.03-.483-1.03zm2.198 0l.46 1.908h.144l.437-1.66.435 1.66h.143l.46-1.908h-.147l-.39 1.658-.43-1.658H10.6l-.43 1.658-.39-1.658zm4.452 0v1.908h.14v-.882h.508l.44.882h.162l-.445-.882a.49.49 0 00.428-.516.486.486 0 00-.148-.374.55.55 0 00-.382-.136zm1.93 0v1.908h.14v-.515l.44-.553.593 1.068v-.002h.167l-.667-1.177.57-.728h-.168l-.935 1.192v-1.192zm3.188.033v.19h.026v-.128l.045.093h.024l.042-.093v.128h.028v-.19h-.028l-.055.118-.055-.118zm-.165.002v.025h.052v.163h.028v-.163h.052v-.025zm-6.26.08a.489.489 0 01.352.148.45.45 0 01.077.107.485.485 0 01.043.132 1.117 1.117 0 01.018.175 7.48 7.48 0 010 .556 1.117 1.117 0 01-.018.175.485.485 0 01-.043.132.506.506 0 01-.077.107.489.489 0 01-.7 0 .45.45 0 01-.078-.107.589.589 0 01-.042-.132 1.117 1.117 0 01-.018-.175 7.459 7.459 0 010-.556 1.117 1.117 0 01.018-.175.485.485 0 01.042-.132.506.506 0 01.078-.107.489.489 0 01.349-.148zm2.007.015a.433.433 0 01.28.098.35.35 0 01.11.289.358.358 0 01-.113.286.428.428 0 01-.294.098h-.543v-.77h.545a.433.433 0 01.015-.001zm-8.643.433l.228.692h-.46z\"},\"child\":[]}]})(props);\n};\nexport function SiSteelseries (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.08008 0c-1.00234 0-1.8125.80893-1.8125 1.8086v2.57226c-4.01871.7444-7.19505 3.9119-7.93946 7.91992H1.8125c-1.001 0-1.8125.80698-1.8125 1.80664 0 .99833.8115 1.8086 1.8125 1.8086h2.51563C5.18077 20.5094 9.22875 24 14.08008 24 19.54884 24 24 19.56148 24 14.10742c0-4.83662-3.50067-8.87524-8.10742-9.72656V1.80859C15.89258.80893 15.08108 0 14.08008 0ZM4.69336 3.17578c-1.00368 0-1.8164.80955-1.8164 1.81055 0 .99966.81272 1.8125 1.8164 1.8125 1.001 0 1.8164-.81284 1.8164-1.8125 0-1.001-.8154-1.81055-1.8164-1.81055zm9.38672 4.65625c3.46809 0 6.29297 2.81398 6.29297 6.2754 0 3.46006-2.82488 6.27734-6.29297 6.27734-3.46943 0-6.29297-2.81728-6.29297-6.27735 0-3.4614 2.82354-6.27539 6.29297-6.27539zm-.01758 2.4043c-2.14634 0-3.89258 1.73986-3.89258 3.88086S11.91616 18 14.0625 18c2.14634 0 3.89258-1.74182 3.89258-3.88281 0-2.141-1.74624-3.88086-3.89258-3.88086zm0 2.7168c.6455 0 1.16797.51989 1.16797 1.16406 0 .64283-.52246 1.16797-1.16797 1.16797-.64417 0-1.16992-.52514-1.16992-1.16797 0-.64417.52575-1.16407 1.16992-1.16407z\"},\"child\":[]}]})(props);\n};\nexport function SiSteem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.683 16.148l-.114.114c-.235.236-.486.46-.748.666l-.298.235a.11.11 0 01-.176-.11l.12-.53a3.3 3.3 0 00-.084-1.746l-.064-.195a7.193 7.193 0 00-.257-.671l-1.387-3.27-.149-.445a2.08 2.08 0 01-.093-.425l-.025-.223a2.065 2.065 0 01.59-1.696l.115-.114a8.33 8.33 0 01.747-.666l.299-.235a.109.109 0 01.126-.007c.04.025.06.071.049.117l-.119.53a3.3 3.3 0 00.083 1.746l.064.195c.074.227.16.453.257.671l1.387 3.27.15.445c.045.138.077.28.093.425l.025.223a2.065 2.065 0 01-.591 1.696zm-3.997 1.073l-.146.147c-.296.297-.612.579-.941.838l-.39.307a.12.12 0 01-.192-.12l.154-.687a4.169 4.169 0 00-.105-2.205l-.08-.248a9.058 9.058 0 00-.325-.848L9.91 10.28l-.188-.56a2.608 2.608 0 01-.117-.532l-.032-.285a2.586 2.586 0 01.74-2.124l.146-.147c.296-.297.612-.579.941-.838l.39-.307a.119.119 0 01.138-.007.119.119 0 01.054.127l-.154.687a4.168 4.168 0 00.105 2.205l.08.248c.094.287.204.572.325.848l1.75 4.125.188.56c.057.173.097.352.117.532l.032.285a2.586 2.586 0 01-.74 2.124zM9 16.148l-.114.114c-.234.236-.486.46-.747.666l-.299.235a.11.11 0 01-.175-.11l.12-.53a3.3 3.3 0 00-.084-1.746l-.064-.195a7.181 7.181 0 00-.257-.671l-1.387-3.27-.15-.445a2.076 2.076 0 01-.093-.425l-.025-.223a2.065 2.065 0 01.591-1.696l.114-.114a8.34 8.34 0 01.748-.666l.298-.235a.109.109 0 01.127-.007c.04.025.059.071.049.117l-.12.53a3.3 3.3 0 00.084 1.746l.064.195c.074.227.16.453.257.671l1.387 3.27.149.445c.046.138.077.28.093.425l.025.223a2.065 2.065 0 01-.59 1.696zM12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0\"},\"child\":[]}]})(props);\n};\nexport function SiSteemit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.982 7.246c-1-1-2.163-1.73-3.4-2.202.721-2.12 3.277-2.892 3.277-2.892S14.895-.944 8.31.29C6.114.64 4.008 1.988 2.468 3.768a9.152 9.152 0 0 0 .991 12.984c.598.512 1.934 1.308 1.958 1.349-.876 2.226-3.678 2.835-3.678 2.835s3.703 2.316 8.676 2.917c1.319.163 2.72.204 4.17.05 2.302-.188 4.596-1.406 6.34-3.12a9.525 9.525 0 0 0 .058-13.538zm-1.704 12.058c-1.41 1.382-3.515 2.26-5.137 2.381-1.147.114-2.376.13-3.555-.016-1.737-.212-2.99-.69-4.22-1.154.623-.601 1.246-1.43 1.5-2.145a1.652 1.652 0 0 0-.05-1.308 6.995 6.995 0 0 1 1.426-8.077 7.196 7.196 0 0 1 5.931-1.99 7.142 7.142 0 0 1 4.228 2.047c2.785 2.795 2.687 7.524-.123 10.262z\"},\"child\":[]}]})(props);\n};\nexport function SiSteinberg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4807 12.6291c.6422-.371.6422-1.0092 0-1.3792L14.711 8.4954c-.6422-.371-1.1952-.052-1.1952.6901v5.508c0 .741.553 1.0601 1.1952.69zm-7.4812-9.9036c5.1219 0 9.2745 4.1526 9.2745 9.2745s-4.1526 9.2745-9.2745 9.2745S2.726 17.122 2.726 12s4.1516-9.2745 9.2735-9.2745m0-2.7255C5.3834 0 .0005 5.3829.0005 12s5.3829 12 12 12 11.999-5.3829 11.999-12-5.3829-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function SiStellar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.283 1.851A10.154 10.154 0 001.846 12.002c0 .259.01.516.03.773A1.847 1.847 0 01.872 14.56L0 15.005v2.074l2.568-1.309.832-.424.82-.417 14.71-7.496 1.653-.842L24 4.85V2.776l-3.387 1.728-2.89 1.473-13.955 7.108a8.376 8.376 0 01-.07-1.086 8.313 8.313 0 0112.366-7.247l1.654-.843.247-.126a10.154 10.154 0 00-5.682-1.932zM24 6.925L5.055 16.571l-1.653.844L0 19.15v2.072L3.378 19.5l2.89-1.473 13.97-7.117a8.474 8.474 0 01.07 1.092A8.313 8.313 0 017.93 19.248l-.101.054-1.793.914a10.154 10.154 0 0016.119-8.214c0-.26-.01-.522-.03-.78a1.848 1.848 0 011.003-1.785L24 8.992Z\"},\"child\":[]}]})(props);\n};\nexport function SiStencil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.85 15.66h9.25l-5 5.34H3.9ZM24 9.328H4.997L0 14.672h19.003ZM10.884 3H20.1l-4.977 5.34H5.9Z\"},\"child\":[]}]})(props);\n};\nexport function SiStencyl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.36,2.675c-0.959,0.12-1.901,0.366-2.783,0.759L9.389,1.622l0.433,2.835 c-0.758,0.567-1.41,1.25-1.935,2.038L4.982,6l1.951,2.352c-0.31,0.817-0.502,1.677-0.589,2.548L3.374,12l2.952,1.099 c0.083,0.883,0.258,1.763,0.565,2.597l-1.894,2.283l2.819-0.426c0.541,0.811,1.229,1.518,2.025,2.08l-0.47,2.751l2.247-1.806 c0.864,0.333,1.78,0.523,2.705,0.597L15.372,24l1.059-2.846c1.418-0.144,2.841-0.46,4.103-1.144 c-0.229-1.019-0.468-2.035-0.692-3.055c-2.042,1.044-4.605,1.442-6.736,0.403c-1.763-0.896-2.773-2.842-2.911-4.785 c-0.152-2.15,0.502-4.51,2.314-5.801c1.724-1.192,4.024-1.208,5.964-0.586c0.428,0.149,0.836,0.353,1.224,0.603 c0.306-1.052,0.616-2.104,0.93-3.154c-1.32-0.674-2.811-0.98-4.291-1.044L15.372,0L14.36,2.675z\"},\"child\":[]}]})(props);\n};\nexport function SiStimulus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.704 0A.704.704 0 000 .704v2.824h5.648a3.064 3.064 0 011.312.36l3.232 1.9a.4.4 0 010 .712l-1.536.904a1.308 1.308 0 01-1.2 0l-1.2-.7a3.084 3.084 0 00-1.316-.36H0v4.236h4.94a3.028 3.028 0 001.316-.36l10.8-6.344a3.008 3.008 0 011.312-.36H24V.692A.704.704 0 0023.296 0zM19.06 6.352a3.084 3.084 0 00-1.316.36l-10.8 6.348a3.064 3.064 0 01-1.312.36H0v4.236h4.94a3.084 3.084 0 001.316-.36l10.8-6.348a3.064 3.064 0 011.312-.36H24V6.352h-3.376zm0 7.072a3.084 3.084 0 00-1.316.36l-10.8 6.344a3.008 3.008 0 01-1.312.36H0v2.824A.708.708 0 00.704 24h22.592a.708.708 0 00.704-.7v-2.824h-5.648a3.008 3.008 0 01-1.312-.36l-3.232-1.896a.4.4 0 010-.716l1.536-.9a1.308 1.308 0 011.2 0l1.2.696a3.028 3.028 0 001.316.36H24v-4.236h-3.376z\"},\"child\":[]}]})(props);\n};\nexport function SiStitcher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.59 8.516H24v6.928h-4.41zM0 8.854h4.41v7.803H0zm4.914-1.328h4.388v8.572H4.914zm4.892.725h4.388v8.81H9.806zm4.892-1.312h4.388v9.158h-4.388Z\"},\"child\":[]}]})(props);\n};\nexport function SiStmicroelectronics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 23.818 5.61 L 6.402 5.61 C 5.125 5.609 3.968 6.362 3.452 7.529 L 0.014 15.811 C -0.036 15.931 0.052 16.063 0.182 16.061 L 8.046 16.061 C 8.601 16.061 8.848 15.523 8.412 15.093 L 5.524 12.388 C 4.008 10.9 4.658 7.45 7.81 7.45 L 23.206 7.45 C 23.283 7.451 23.352 7.402 23.378 7.329 L 23.987 5.857 C 23.996 5.835 24.001 5.811 24 5.787 C 23.997 5.689 23.917 5.61 23.818 5.61 M 22.082 9.826 L 19.126 9.826 C 18.932 9.825 18.756 9.94 18.681 10.118 L 15.369 18.118 C 15.355 18.144 15.347 18.173 15.347 18.202 C 15.348 18.302 15.429 18.383 15.529 18.381 L 16.632 18.381 C 17.93 18.387 19.105 17.613 19.612 16.418 L 22.244 10.063 C 22.252 10.042 22.257 10.019 22.257 9.996 C 22.253 9.902 22.176 9.828 22.082 9.826 M 16.271 10.005 C 16.271 9.905 16.189 9.825 16.089 9.825 L 7.706 9.825 C 7.251 9.825 6.853 10.38 7.335 10.825 L 10.104 13.404 C 10.104 13.404 11.224 14.437 10.984 15.916 C 10.778 17.219 9.889 18.016 9.241 18.302 C 9.208 18.31 9.196 18.351 9.219 18.376 C 9.23 18.387 9.246 18.392 9.261 18.388 L 12.489 18.388 C 12.683 18.39 12.859 18.275 12.934 18.095 L 16.256 10.068 C 16.266 10.049 16.271 10.027 16.271 10.005\"},\"child\":[]}]})(props);\n};\nexport function SiStockx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.74 16.5 22.5 24v-6l-7-6 7-6V0L10.26 10.5v-3L1.5 0v6l7 6-7 6v6l12.24-10.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiStopstalk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 000 12a12 12 0 0012 12 12 12 0 0012-12A12 12 0 0012 0zm-.049 2.953a9.046 9.046 0 01.049 0 9.046 9.046 0 013.46.688L13.57 6.42l2.72.047 1.14-1.703A9.046 9.046 0 0121.047 12 9.046 9.046 0 0112 21.047a9.046 9.046 0 01-2.916-.483l1.937-2.828-2.72-.047-1.258 1.88A9.046 9.046 0 012.953 12a9.046 9.046 0 018.998-9.047zm1.713 4.072a.55.55 0 00-.42.172c-.17.156-.266.248-.297.264-.653-.28-1.196-.42-1.662-.42-.653 0-1.213.219-1.664.639-.45.435-.684.994-.684 1.724 0 .638.204 1.26.577 1.866.388.606 1.024 1.429 1.957 2.455.373.42.7.808.965 1.166.264.342.404.638.404.902 0 .14-.063.264-.188.357a.756.756 0 01-.466.14c-.513 0-1.025-.483-1.538-1.462-.14-.28-.248-.45-.326-.527-.077-.078-.328-.11-.732-.11-.311 0-.465.063-.465.172 0 .016.03.156.092.42l.435 2.004c.016.14.048.217.11.248.046.031.14.047.279.047.358 0 .59-.077.684-.232.046-.078.11-.125.187-.125a.88.88 0 01.358.109 3.19 3.19 0 001.212.248c.653 0 1.243-.217 1.772-.621.528-.42.809-1.01.809-1.787 0-.669-.156-1.259-.467-1.787-.311-.529-.965-1.384-1.975-2.58-.87-1.026-1.305-1.711-1.305-2.069 0-.28.14-.42.436-.42.404 0 .87.405 1.383 1.213.248.389.42.606.498.653.093.062.279.078.574.078.264 0 .42 0 .482-.032.063-.03.094-.076.094-.154 0-.015-.016-.079-.031-.187l-.467-2.051c-.03-.14-.078-.22-.14-.266a9.706 9.706 0 00-.48-.047Z\"},\"child\":[]}]})(props);\n};\nexport function SiStoryblok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.953 11.462H9.088v2.34h4.748c.281 0 .538-.118.749-.305.187-.187.304-.468.304-.819a1.404 1.404 0 0 0-.257-.842c-.188-.234-.398-.374-.679-.374zm.164-2.83c.21-.14.304-.445.304-.843 0-.35-.094-.608-.257-.771a.935.935 0 0 0-.608-.234H9.088v2.105h4.374c.234 0 .468-.117.655-.257zM21.251 0H2.89c-.585 0-1.053.468-1.053 1.03v18.385c0 .562.468.912 1.03.912H5.58V24l3.368-3.65h12.304c.562 0 .913-.35.913-.935V1.053c0-.562-.351-1.03-.936-1.03zm-3.087 14.9a2.827 2.827 0 0 1-1.006 1.03c-.445.28-.936.538-1.497.655-.562.14-1.17.257-1.801.257H5.579v-13.1h9.403c.468 0 .866.094 1.24.305.351.187.679.444.936.748.524.64.806 1.443.795 2.27 0 .608-.164 1.192-.468 1.754a2.924 2.924 0 0 1-1.403 1.263c.748.21 1.333.585 1.778 1.123.42.561.631 1.286.631 2.199 0 .584-.117 1.076-.35 1.497z\"},\"child\":[]}]})(props);\n};\nexport function SiStorybook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.71.243l-.12 2.71a.18.18 0 00.29.15l1.06-.8.9.7a.18.18 0 00.28-.14l-.1-2.76 1.33-.1a1.2 1.2 0 011.279 1.2v21.596a1.2 1.2 0 01-1.26 1.2l-16.096-.72a1.2 1.2 0 01-1.15-1.16l-.75-19.797a1.2 1.2 0 011.13-1.27L16.7.222zM13.64 9.3c0 .47 3.16.24 3.59-.08 0-3.2-1.72-4.89-4.859-4.89-3.15 0-4.899 1.72-4.899 4.29 0 4.45 5.999 4.53 5.999 6.959 0 .7-.32 1.1-1.05 1.1-.96 0-1.35-.49-1.3-2.16 0-.36-3.649-.48-3.769 0-.27 4.03 2.23 5.2 5.099 5.2 2.79 0 4.969-1.49 4.969-4.18 0-4.77-6.099-4.64-6.099-6.999 0-.97.72-1.1 1.13-1.1.45 0 1.25.07 1.19 1.87z\"},\"child\":[]}]})(props);\n};\nexport function SiStrapi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.32 0c-3.922 0-5.882 0-7.1 1.219C0 2.438 0 4.399 0 8.32v7.36c0 3.922 0 5.882 1.219 7.101C2.438 24 4.399 24 8.32 24h7.36c3.922 0 5.882 0 7.101-1.219C24 21.562 24 19.601 24 15.68V8.32c0-3.922 0-5.882-1.219-7.101C21.562 0 19.601 0 15.68 0H8.32zm.41 7.28h7.83a.16.16 0 0 1 .16.16v7.83h-3.87v-3.71a.41.41 0 0 0-.313-.398l-.086-.012h-3.72V7.28zm-.5.25v3.87H4.553a.08.08 0 0 1-.057-.136L8.23 7.529zm.25 4.12h3.87v3.87H8.64a.16.16 0 0 1-.16-.16v-3.71zm4.12 4.12h3.87l-3.734 3.734a.08.08 0 0 1-.136-.057V15.77z\"},\"child\":[]}]})(props);\n};\nexport function SiStrava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.387 17.944l-2.089-4.116h-3.065L15.387 24l5.15-10.172h-3.066m-7.008-5.599l2.836 5.598h4.172L10.463 0l-7 13.828h4.169\"},\"child\":[]}]})(props);\n};\nexport function SiStreamlabs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.6878 1.3459a1.365 1.365 0 0 0-.2734.0058c-.528.066-1.0133.1616-1.4843.3086A10.0568 10.0568 0 0 0 .3208 8.2697c-.147.471-.2445.9583-.3105 1.4863-.091.734.431 1.4041 1.166 1.4961.734.091 1.404-.43 1.496-1.164.05-.406.119-.7316.209-1.0196A7.3736 7.3736 0 0 1 7.727 4.221c.288-.09.6145-.157 1.0195-.207.735-.092 1.255-.7631 1.164-1.4981a1.3394 1.3394 0 0 0-1.2226-1.17Zm4.0488 5.2226c-2.629 0-3.9432.0007-4.9472.5117A4.684 4.684 0 0 0 5.7406 9.131c-.512 1.004-.5117 2.3183-.5117 4.9473v4.289c0 1.502-.001 2.2542.291 2.8282.257.505.6679.9149 1.1719 1.1719.574.292 1.326.291 2.828.291h6.9706c2.628 0 3.9442.0012 4.9472-.5098a4.6883 4.6883 0 0 0 2.0507-2.0508c.512-1.004.5117-2.3182.5117-4.9472v-1.0723c0-2.629.0003-3.9433-.5117-4.9473a4.6883 4.6883 0 0 0-2.0507-2.0508c-1.003-.511-2.3193-.5117-4.9472-.5117zm.537 6.7051c.741 0 1.3399.5998 1.3399 1.3398v2.6836c0 .74-.5988 1.3399-1.3398 1.3399-.74 0-1.3418-.5999-1.3418-1.3399v-2.6836c0-.74.6018-1.3398 1.3418-1.3398zm5.3632 0c.74 0 1.3399.5998 1.3399 1.3398v2.6836c0 .74-.5999 1.3399-1.3399 1.3399-.741 0-1.3398-.5999-1.3398-1.3399v-2.6836c0-.74.5989-1.3398 1.3398-1.3398z\"},\"child\":[]}]})(props);\n};\nexport function SiStreamlit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.673 11.32l6.862-3.618c.233-.136.554.12.442.387L20.463 17.1zm-8.556-.229l3.473-5.187c.203-.328.578-.316.793-.028l7.886 11.75zm-3.375 7.25c-.28 0-.835-.284-.993-.716l-3.72-9.46c-.118-.331.139-.614.48-.464l19.474 10.306c-.149.147-.453.337-.72.334z\"},\"child\":[]}]})(props);\n};\nexport function SiStreamrunners (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.572 12.737a.854.854 0 0 0 0-1.48l-12.66-7.31c-.695-.4-1.51.292-1.225 1.043l.98 2.587c.106.28-.1.578-.4.578H7.55c-.658 0-1.275.32-1.656.857L3.632 12.21h8.553c.02 0 .034.02.027.04-.847 2.253-1.69 4.508-2.537 6.761-.282.75.532 1.44 1.227 1.04zM.001 17.052a.005.005 0 0 0 0 .006h8.297a.64.64 0 0 0 .612-.452l.656-2.134a.64.64 0 0 0-.613-.83l-6.805.018a.078.078 0 0 0-.067.036C1.386 14.813.694 15.933 0 17.052Z\"},\"child\":[]}]})(props);\n};\nexport function SiStremio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a1.2 1.2 0 0 0-.85.354L.353 11.15c-.47.47-.47 1.227 0 1.697L11.15 23.647a1.2 1.2 0 0 0 1.7 0l10.797-10.8c.47-.47.47-1.226 0-1.696L12.85.354A1.2 1.2 0 0 0 12 0zm-1.674 7.586a.2.2 0 0 1 .002 0 .2.2 0 0 1 .129.04l5.729 4.214a.2.2 0 0 1 0 .323l-5.73 4.213a.2.2 0 0 1-.317-.16v-8.43a.2.2 0 0 1 .187-.2z\"},\"child\":[]}]})(props);\n};\nexport function SiStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z\"},\"child\":[]}]})(props);\n};\nexport function SiStrongswan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.803 5.24a3.161 3.161 0 0 0-1.647.5c-.245.185-.54.52-.518 1.165.022.32.031.294.112.58.232.433.458.622.826.94.06.047.079.06.133.099.275.258.553.556.79.823.207.256.432.54.604.825.229.392.263.369.546.928.287.645.398 1.392.226 2.068a4.62 4.62 0 0 1-.88 1.646l.347 1.137.303-1.115.463.003.298 1.114.34-1.112h.466l-.554 1.662c.3-.39.528-.74.763-1.197l.409.07c.036-.093.079-.155.145-.183.04-.018.063-.032.19-.032.1-.001.216.016.253.095.013.035.028.064.023.183a3.68 3.68 0 0 1-.436.104c-.302.059-.427.105-.521.192a.44.44 0 0 0-.152.355c0 .11.02.184.07.26.079.122.19.197.344.23.1.022.302.018.393-.008a.86.86 0 0 0 .27-.138l.07-.053.056.173h.482l-.015-.03a1.143 1.143 0 0 1-.075-.22c-.012-.054-.014-.132-.015-.548 0-.401-.003-.497-.014-.552-.022-.112-.04-.16-.102-.216a.46.46 0 0 0-.257-.14 1.74 1.74 0 0 0-.494-.025c-.216.018-.42.11-.49.22 0 .002 0 .002-.002.003.734-1.491 1.002-3.19.274-4.696-.42-.92-1.036-1.522-1.751-2.102.71.009 1.367.094 2.033.02.167-.012.3-.02.455-.056a.624.624 0 0 1 .318-.073c.335-.116.376-.214.379-.292-.021-.181-.335-.323-.487-.393l-.96.202c-.057-.04-.835-.292-.83-.595.003-.122.13-.138.16-.433l.001-.263-.058-.298c-.063-.082-.425-.313-.626-.421-.241-.12-.386-.19-.562-.235a3.181 3.181 0 0 0-1.096-.171zm-6.332.657c-1.667-.01-3.283.509-4.457 1.83-.55.579-1.06 1.274-1.458 1.923.396.083.697.186 1.165.32.438.097.78.378 1.082.488l.09-.048c-1.001-.5-.685-.4-.284-.266.723.654 1.823.52 2.545 1.162l.243.14c.113-.04-.322-.275-.248-.282l.063.004c-.022-.001-.862-.533-.795-.53-.085-.145-.267-.225-.358-.308.227.073.587.375.732.428l.074-.063c.033-.029.005.135.141.165l.1-.165c.017-.026.087.146.131.157.03.008.004-.061.074-.111-.123-.079-.14-.075-.26-.138-.154-.029-.183-.042-.459-.238.29-.024.326.09.46.15.44.126.9.28 1.274.562l.033-.04c.017-.02.546.385.51.35l.065-.083c.012-.015.132.172.142.161l.06-.067c.252.226.276.377.528.551.16.075.54.373.79.528.505.45.711.64-.029.077-.166-.093-.617-.525-.528-.161.166.125.671.372.446.387.008.004.039.076.375.265.143.081.447.298.447.298l.014-.025.176.16c-.012-.012-.127-.013-.188-.022-.282-.22-.27-.194-.296-.193-.211.236.208.156.032.3.154.084.302.212.417.327.012.122.13.19.264.317s.285.315.389.41c.846-.389 1.315-.976 1.551-1.524.295-.756.245-1.02.086-1.586-.178-.557-.711-1.153-1.183-1.527-.25-.223-.495-.368-.878-.655-.69-.751-.954-1.401-1.019-1.966-.076-.516.06-.998.168-1.315-.7-.07-1.452-.15-2.065-.145a7.912 7.912 0 0 0-.162-.002zM5.556 9.65c-.08-.014-.157-.028-.229-.03a.338.338 0 0 0-.252.089c.13.015.26.03.398.074zm-.083.133l-.08.126c.219.023.314.015.515.04.19.05.542.15.71.207.016.013.088-.033.05-.054-.39-.174-.815-.208-1.195-.319zm-.08.126h-.169l.14.045zm-.028.045l-.031.065c.216.031.986.29 1.045.297.043.005.063-.048.025-.065-.134-.052-.317-.096-.508-.154a5.804 5.804 0 0 0-.531-.143zm-.031.065c-.21-.043-.326-.098-.578-.169-.258-.106-1.13-.252-.557.03.042.098-.506-.041-.341-.095-.06.002-.98-.273-.721-.092-.392-.14-.308-.129-.365.069-.2-.123-.331-.165-.466-.166-.08 0-.163.015-.262.037-.348-.063-.124-.019-.166.143.114.124.781.278.922.31.322.069 1.115.315 1.085.254-.282-.164.146.009.267.068.144.088.58.079.55.225a.353.353 0 0 1 .21.077c.123-.215.245-.432.422-.69zm-.528-.254c.067.07.14.053.232.078.066-.006.292-.018.336-.013-.017-.004-.23-.063-.568-.065zm-.408.075c.095.002.427.224.194.138-.243-.065-.326-.128-.21-.135a.034.034 0 0 1 .016-.003zm-2.675.011c-.034-.003-.056.08.119.104.054.008-.078-.093-.12-.104zm.22.07c-.03.021.03.068.363.128.274.05-.301-.129-.362-.128zm2.878.03c.04 0 .237.123.165.115-.236-.028-.255-.116-.165-.115zm-2.507.19c.229.144.31.17.052.134.147.097.48.15.348.306.055.027.201-.006.224.047.023.053.016.063-.101.13-.08.05-.49-.063-.683-.09-.22-.057-.376-.06-.594-.09-.468-.046-.003.087-.672.046-.545-.032-.193.11-.244.122-.1.137-.284-.069-.313-.044-.044.057-.01.187-.287.006L0 10.862c.397-.01.522.146.597-.035.17.013.3.096.354.133.054.037-.134.11-.016.095.101-.112.172.067.24.057.044 0 .12-.082.17-.088.021.006.079.098.13.093.043-.004.129-.07.149-.057.389.066.488.097.556.176.252-.012.55.164.963.209.981.336-.904-.193-1.462-.16-.188.017-.872-.13-.538.058.288.127.482.255.624.159.048-.026.894.356.338.019.12.017.227-.01.326.045.303.163.47.058.565.134.277.156.474.111.698.135.126.022.411.06.476.104.114.023.067.014.212.038l.102-.267c-.671-.075-.693-.112-1.543-.368l.014-.056c.209.068.343.1.52.127l.012-.094c.09.022.47.105.489.091-.215-.094-.2-.044-.163-.114.11-.033.557.165.613.139.156-.005.123.003.162.007.154-.415.171-.38.276-.654a2.276 2.276 0 0 1-.245-.109c-.089.042.196.142-.306-.008-.147-.1-.125-.145-.153-.002-.054-.037-.089-.005-.339-.193-.351-.122-1.261-.338-1.507-.336zm2.274 1.301l-.104.268c.212.02.167.005.303-.01.135-.014.471.118.621.191.088.057.095.074.363.167.147.025.574.242.876.316.036-.01.363.114.526.15.102.04.193.093.28.157.147.061.207.087.38.11.164.071-.018.024.201.117.24.123.358.242.442.267.104-.053.34-.12.38-.13-.172-.04-.438-.242-.817-.388-.623-.15-1.137-.55-1.71-.804l-.419-.113c-.038.003-.043.021-.044.05.394.123.534.162.677.235.182.16.322.185.351.221-.325-.097-.295-.085-.59-.174-.237-.078-.274-.133-.58-.227-.158-.049-.356-.166-.536-.233a2.167 2.167 0 0 0-.6-.17zm-.206.535C3.678 13.9 3.315 14.845 1.76 15.86c-.364.229-.778.4-1.21.427v2.467c1.51.002 3.019.001 4.528.006-.276-2.279 1.124-4.583 3.202-5.505-.38-.288-.39-.202-.451-.172-.248-.181-1.15-.677-1.16-.688-.1-.011-.36-.125-.398-.075-.025.055.13.072.187.084.225.041 1.242.664 1.32.792-.448.025-.81-.41-1.181-.505l.008-.118c-.236-.12-.415-.122-.481-.166-.08.146-1.016-.346-1.17-.341-.23.033-.213-.036-.572-.089zm.938-1.331c-.017 0-.007.01.056.041.053.019.515.205.256.143-.168.117.425.013.244.116-.398-.111.547.306.308.07-.093-.147-.131-.088-.193-.12-.183-.093-.297-.127-.414-.178-.03-.009-.216-.07-.257-.072zm.257.072m-4.575-.052c.13 0 .266.01.313.014.366-.045.425.12.107.088-.03-.002-.108-.073-.233.049-.074-.009-.126-.086-.212-.104.071.1.293.142-.131.088-.258-.114-.06-.137.156-.135zm.741.033c.05-.002.111.017.128.077-.257-.015-.21-.074-.128-.077zm8.753.28l-.003.001c-.122.08.05.232.385.348-.099-.138-.042-.143-.195-.193.067.172-.15-.155-.187-.156zm-5.734.12c-.23.14.486.301.387.255-.042-.173.399.174.217-.043-.26-.058-.11-.103-.203-.096-.158.066-.295-.098-.401-.115zm-2.067.017c.005 0 .01.002.016.005.023.014.052.05.093.072.01.037-.029.04-.069.029-.04-.01-.081-.033-.078-.045.011-.047.023-.062.038-.062zm.845.09c.016 0 .048.025.095.102-.097-.004-.126-.1-.095-.101zm7.412.046c-.084.073.188.295.27.145-.136-.126.054.123-.27-.145zm-3.99.003c-.277.065-.275.007.053.197.3.138-.003.095-.126.012.004.03.25.217.22.19.118.083.454.215.32.042.12-.15-.193-.162-.194-.184a.867.867 0 0 1-.28-.183c-.185.014.119-.06.007-.074zm-.007.074h.004c-.004-.002-.005-.002-.004 0zm.28.183c.028.007.048.003.055-.017-.04.007-.055.013-.055.017zm.28 2.852v.485h-.192v.242h.192l.008 1.018c.008.224.129.388.334.447.17.028.32.013.478-.028l-.004-.264a.733.733 0 0 1-.245.058c-.17-.01-.23-.035-.275-.203l-.005-1.03.53.002v-.242h-.527v-.485zm4.614.436a.7.7 0 0 0-.459.179l-.056.045v-.175h-.293v1.689h.293v-1.259l.064-.047a.9.9 0 0 1 .258-.136.571.571 0 0 1 .236 0c.06.017.11.058.138.113.047.092.05.125.054.754l.004.575h.292l-.003-.625c-.003-.606-.004-.628-.022-.7-.05-.205-.167-.34-.344-.393a.725.725 0 0 0-.162-.02zm11.251.002a.751.751 0 0 0-.306.068.896.896 0 0 0-.228.168l-.034.039v-.237h-.444v1.715h.477l-.003-.893c-.01-.438.226-.504.398-.511.195.006.274.14.28.332-.002.358.001.715.004 1.072H24l-.003-.65c-.003-.591-.005-.656-.018-.71a.462.462 0 0 0-.286-.337.778.778 0 0 0-.313-.056zm-13.111 0a.901.901 0 0 0-.198.02c-.3.082-.498.337-.54.699-.016.131-.006.355.02.468.04.173.1.284.214.399a.524.524 0 0 0 .147.114.794.794 0 0 0 .234.077c.08.013.265.004.345-.015a.678.678 0 0 0 .44-.35c.076-.15.097-.247.103-.475a1.144 1.144 0 0 0-.048-.432.694.694 0 0 0-.717-.505zm3.394.001a.67.67 0 0 0-.477.196.688.688 0 0 0-.176.266c-.073.18-.093.425-.053.662.05.3.21.497.444.56a.845.845 0 0 0 .446-.02c.091-.04.154-.093.225-.148l-.002.135a1.05 1.05 0 0 1-.018.182c-.027.11-.072.184-.163.23a.537.537 0 0 1-.297.055c-.196-.004-.364-.073-.488-.116l-.004.307c.1.024.21.047.295.057.185.023.381.012.514-.03.256-.06.425-.299.448-.67v-1.62h-.266l-.014.07-.077-.042c-.156-.074-.264-.073-.337-.074zm-7.03.003a.79.79 0 0 0-.213.025c-.193.057-.337.192-.38.357a.647.647 0 0 0-.013.137c0 .15.038.247.13.333.09.085.186.118.471.177.202.042.28.078.313.177.02.175.002.215-.107.283a.726.726 0 0 1-.242.042c-.15.014-.372-.071-.554-.218H6.02v.32c.11.056.23.098.355.128.1.026.382.015.452-.008.149-.048.3-.15.358-.261a.453.453 0 0 0 .06-.254c-.001-.257-.122-.39-.418-.459l-.216-.05a.583.583 0 0 1-.23-.095c-.045-.041-.069-.136-.052-.206.015-.06.05-.098.108-.133.177-.108.498-.048.722.13h.023v-.308a1.34 1.34 0 0 0-.337-.105 2.395 2.395 0 0 0-.21-.012zm2.676.042a.678.678 0 0 0-.395.175l-.093.08.001-.253H8.54l.004 1.686.285.002-.004-1.199a.915.915 0 0 1 .251-.162c.148-.053.195-.04.363-.023v-.305h-.13zm.965.204c.051 0 .103.007.154.022.14.044.237.162.283.343.025.1.032.37.013.482-.038.219-.14.361-.296.413a.447.447 0 0 1-.43-.08c-.113-.106-.163-.247-.171-.486-.01-.277.04-.463.155-.578a.421.421 0 0 1 .292-.116zm3.42.008h.042a.802.802 0 0 1 .336.098v.918l-.05.035a.803.803 0 0 1-.24.11.619.619 0 0 1-.28 0c-.118-.038-.19-.122-.232-.276a1.28 1.28 0 0 1-.03-.335c.016-.214.066-.34.174-.442a.374.374 0 0 1 .28-.108zm3.96.105c-1.014.897-1.887 1.096-2.407 1.228.247.696.34 1.51.289 2.245 1.596-.265 3.04-.904 4.076-2.083l-.43-.001-.31-1.098-.299 1.098-.46.001zm3.78.58c.007.002.007.028.004.129-.005.156-.019.204-.078.27a.455.455 0 0 1-.2.114c-.111.028-.212.005-.283-.065-.112-.112-.073-.274.079-.33.045-.017.08-.026.329-.083a3.467 3.467 0 0 0 .149-.035z\"},\"child\":[]}]})(props);\n};\nexport function SiStryker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.852 0C5.34.08.079 5.341 0 11.852h1.857v.296H0C.08 18.66 5.34 23.921 11.852 24v-1.857h.296V24C18.66 23.92 23.921 18.66 24 12.148h-1.857v-.296H24C23.92 5.34 18.66.079 12.148 0v1.857h-.296Zm.505 2.83c1.44 0 2.561.31 3.373.894.812.583 1.441 1.373 1.88 2.371l.234.53-2.73.957-.191-.472c-.222-.545-.52-.973-.909-1.27-.384-.29-.924-.418-1.612-.418-.73 0-1.332.162-1.8.505-.425.313-.61.817-.61 1.49 0 .332.041.628.13.883.081.23.22.437.408.62.223.216.516.419.881.614.398.213.89.43 1.481.65a18.254 18.254 0 0 1 1.756.784 6.345 6.345 0 0 1 1.545 1.106A4.91 4.91 0 0 1 17.28 13.7c.26.624.399 1.382.399 2.277a4.88 4.88 0 0 1-.427 2.013 5.054 5.054 0 0 1-1.183 1.657 5.57 5.57 0 0 1-1.792 1.108 6.182 6.182 0 0 1-2.266.406c-.832 0-1.56-.107-2.183-.316a5.6 5.6 0 0 1-1.638-.84 4.988 4.988 0 0 1-1.145-1.198 6.109 6.109 0 0 1-.692-1.362l-.177-.496 2.662-.998.18.517a4.164 4.164 0 0 0 .38.797c.144.239.331.449.556.63.232.187.513.337.844.453.342.12.754.177 1.238.177a3.654 3.654 0 0 0 .966-.132 2.295 2.295 0 0 0 .813-.403 1.98 1.98 0 0 0 .569-.728c.154-.32.224-.711.224-1.173 0-.505-.057-.925-.184-1.258a2.133 2.133 0 0 0-.554-.81c-.278-.258-.641-.485-1.09-.688a57.733 57.733 0 0 0-1.798-.774c-1.342-.548-2.325-1.22-2.962-1.997-.666-.814-1.007-1.814-1.007-3.009 0-.656.122-1.273.364-1.85a4.245 4.245 0 0 1 1.079-1.527 5.073 5.073 0 0 1 1.683-.992c.644-.234 1.383-.355 2.22-.355z\"},\"child\":[]}]})(props);\n};\nexport function SiStubhub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.78 6.566L.21 8.148c-.116.008-.21.107-.21.227V8.4l.725 6.884v.004c.003.036.006.07.006.11 0 .123-.016.243-.048.347L.344 16.84c-.04.122.026.182.146.134l1.805-.75c.002 0 .004 0 .006-.002h.003c.13-.05.27-.076.418-.076h.036l20.04 1.29c.127 0 .23-.097.243-.222L24 6.784v-.02c0-.11-.09-.198-.2-.198h-.02zm-19.245 3.68h.053c.823 0 1.25.304 1.275.892v.045h-.516l-.006-.04c-.027-.26-.273-.386-.753-.386h-.045c-.48.008-.717.152-.717.434v.08c.005.055.03.102.07.136.052.048.117.087.19.11l1.204.403-.007-.005.01.004c.18.057.34.163.46.306.108.138.175.313.175.502v.117c0 .287-.14.54-.36.695-.235.18-.575.268-.997.268s-.75-.093-.99-.268v-.002c-.218-.155-.36-.41-.36-.7v-.07h.516v.05c0 .146.063.255.21.346s.358.137.628.137.49-.048.637-.136.22-.2.22-.346v-.072c0-.167-.098-.277-.3-.344L3.935 12c-.195-.062-.35-.157-.45-.28-.1-.12-.16-.274-.16-.444v-.084c0-.616.403-.935 1.21-.943zm8.292.08h.518v1.448h1.588v-1.447h.52v3.47h-.522v-1.52h-1.585v1.52h-.518v-3.47zm-6.495.007h.5v.945h.535v.51h-.535v.89c0 .208.056.37.168.487l-.002.004c.087.09.202.15.334.17h.035v.485l-.047-.004h-.004c-.265-.016-.504-.13-.68-.308-.203-.21-.305-.492-.305-.834v-2.346zm11.913 0h.5v1.12c.155-.157.367-.24.633-.24.755 0 1.14.395 1.142 1.175v.283c0 .342-.103.624-.305.835s-.486.316-.836.316-.628-.105-.83-.315-.306-.494-.306-.834v-2.337zm-8.084.002h.5v1.12c.156-.16.368-.243.634-.243.76 0 1.14.396 1.144 1.176v.283c0 .342-.105.624-.307.835s-.483.316-.833.316-.627-.105-.83-.315-.307-.494-.307-.834v-2.335zm-2.395.945h.492v1.367c0 .258.04.442.113.545.07.095.204.146.387.146h.016c.185 0 .31-.047.385-.146s.115-.287.115-.545H9.27V11.28h.49v1.367c0 .417-.08.72-.23.902-.146.173-.385.264-.71.272h-.115c-.325-.008-.564-.098-.71-.273-.156-.18-.23-.486-.23-.903V11.28zm8.077 0h.492v1.367c0 .258.04.442.115.545.07.095.2.146.384.146h.025c.18 0 .306-.05.378-.146.075-.104.115-.287.115-.545h-.004V11.28h.49v1.367c0 .417-.083.728-.23.902s-.384.264-.71.272h-.12c-.324-.008-.563-.098-.71-.273-.155-.18-.228-.486-.228-.903V11.28zm-4.548.422c-.207 0-.37.05-.473.156s-.16.285-.16.53v.288c0 .208.062.366.17.486s.26.182.464.182c.203 0 .357-.056.47-.18s.17-.28.17-.488v-.283c0-.247-.056-.423-.163-.53s-.266-.16-.476-.16zm8.083 0c-.207 0-.37.05-.473.156s-.16.285-.16.53v.288c0 .208.06.366.166.486s.267.182.467.182.355-.06.47-.18.17-.285.17-.488v-.283c0-.247-.056-.423-.163-.53s-.267-.16-.477-.16z\"},\"child\":[]}]})(props);\n};\nexport function SiStudio3T (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.336 3.194c-3.37.044-8.92 1.972-11.414 7.826-.16.384-.3.777-.418 1.177A12.825 12.825 0 0 0 .1 14.094l-.004-.002c-.405 4.071.519 6.19 1.877 6.62.909.288 1.707-.099 2.646-.888 1.032-.867 1.436-1.523 1.32-2.426-.12-.932-1.126-1.61-2.037-1.853-1.318-.383-.787-1.228-.787-1.228s1.421 1.02 3.711.763c2.089-.234 2.486-.672 2.486-.672-.003-2.155 1.152-3.657 2.664-3.802-1.05.495-1.656 2.205-1.654 3.593l.006 3.674.521.002c1.533.002 2.839-1.54 2.836-3.281v-.72s1.146-.623 2.774-.805c.77-.087 1.372-.006 1.892.15a2.15 2.15 0 0 1-.514-1.318c-.007-.225.362-.324.444 0 .29 1.302 1.035 1.859 2.898 2.418a3.84 3.84 0 0 0 1.057.021c.807-.111 1.615-.558 1.744-1.508.12-.89-.323-1.498-.776-2.12l-.109-.153a5.268 5.268 0 0 1-.48-.77 6.479 6.479 0 0 1-.293-.763c-.107-.318-.213-.634-.375-.922-2.136-3.785-5.939-4.958-9.611-4.91Zm8.058 6.287h.027c.29 0 .525.254.526.566 0 .312-.233.565-.524.565-.29 0-.527-.255-.527-.567 0-.302.22-.55.498-.564zm-6.035 4.728c.21 2.063-.963 2.934-.963 2.934 1.636-.098 3.485-1.592 3.392-3.51 0 0-.725-.105-2.429.576z\"},\"child\":[]}]})(props);\n};\nexport function SiStudyverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.267 21.4c1.552-.126 3.057-.622 4.325-1.536.55-.404 1.063-.881 1.427-1.462.186-.297.307-.62.297-.975a2.262 2.262 0 0 0-.59-1.566c-.385-.437-.852-.777-1.353-1.068a13.116 13.116 0 0 0-2.397-1.076c-2.426-.842-5.068-1.584-7.366-2.726-.746-.381-1.482-.808-2.089-1.392-.3-.301-.573-.656-.698-1.068-.226-.763-.227-1.605.1-2.34.107-.253.27-.453.421-.68-.063-.088-.094-.192-.217-.204-.206.027-.408.125-.6.202A7.641 7.641 0 0 0 .915 7.43C.523 7.89.172 8.462.06 9.062c-.174.972.03 1.99.605 2.797.706 1.02 1.889 1.715 3.015 2.18 2.748 1.094 5.544 2.072 8.304 3.134.352.139.695.234.968.512.173.178.296.428.184.673-.137.318-.539.46-.856.502-.742.093-1.476-.175-2.166-.41-2.105-.733-4.17-1.588-6.227-2.444-.116-.047-.167-.05-.268.03-.038.117-.013.208.05.31.411.69.89 1.342 1.427 1.938 1.107 1.229 2.507 2.307 4.097 2.814 1.01.328 2.023.348 3.074.302zm7.608-2.708c.233-.033.46-.147.676-.238a7.632 7.632 0 0 0 2.561-1.917c.51-.608.875-1.307.884-2.119a3.667 3.667 0 0 0-.81-2.481c-.722-.918-1.834-1.555-2.9-1.992-2.852-1.132-5.752-2.144-8.614-3.251-.295-.116-.58-.27-.754-.545-.105-.167-.136-.371-.035-.548.146-.276.5-.409.79-.455.693-.104 1.389.122 2.037.343 2.18.748 4.316 1.637 6.444 2.52.088.038.154.01.226-.045.041-.115.012-.212-.048-.312A12.242 12.242 0 0 0 18.59 5.38c-1.053-1.091-2.36-2.03-3.817-2.49-.727-.23-1.512-.316-2.272-.307a8.76 8.76 0 0 0-3.333.597c-1.012.4-1.992 1.007-2.729 1.814-.297.335-.6.737-.713 1.177a2.23 2.23 0 0 0 .191 1.443c.244.48.671.88 1.1 1.196 1.188.845 2.518 1.325 3.89 1.772 2.102.703 4.331 1.381 6.327 2.348.774.386 1.585.842 2.214 1.442.302.295.582.649.715 1.054.25.802.244 1.697-.123 2.463-.102.22-.257.392-.378.6.055.087.089.2.212.203z\"},\"child\":[]}]})(props);\n};\nexport function SiStyledcomponents (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.214 6.762l-.075.391c-.116.741-.074.953.244 1.228l.307.254-.318 1.418c-.19.846-.423 1.555-.571 1.788-.127.201-.275.497-.307.656-.053.19-.233.381-.508.55-.243.138-.72.508-1.058.805-.27.243-.456.392-.557.456l-.33.261c-.106.17-.166.307-.189.411-.023.107-.01.178.024.23.033.05.09.085.168.107a.954.954 0 00.282.023 3 3 0 00.632-.112c.07-.019.125-.037.173-.053.074-.091.245-.263.548-.562.804-.793 1.111-1.227.794-1.11-.117.042-.064-.064.137-.276.424-.413.667-1.037 1.175-2.994.402-1.545.402-1.567.698-1.567.139 0 .532.024.532.024V6.762h-.902zm3.839 3.165c-.064 0-.17.096-.233.202-.116.19.021.306 1.767 1.396 1.037.657 1.873 1.217 1.852 1.26-.021.031-.868.582-1.883 1.217-1.842 1.142-1.852 1.153-1.683 1.386.212.275 0 .37 2.391-1.122L24 13.155v-.836l-1.937-1.196c-1.047-.656-1.957-1.185-2.01-1.196zm-16.085.117c-.053 0-.963.54-2.01 1.185L0 12.425v.836l1.947 1.217c1.08.666 1.99 1.217 2.032 1.217.042 0 .127-.096.212-.212.127-.201.02-.286-1.768-1.418C.72 12.996.54 12.848.71 12.732c.106-.074.91-.572 1.778-1.111 1.979-1.217 1.873-1.133 1.714-1.387-.063-.105-.17-.2-.233-.19zm8.684.023c-.292-.002-.92.443-2.8 1.978-.081.193-.088.326-.051.412.024.059.068.1.129.13.06.03.138.048.224.055.171.015.373-.012.536-.044l.11-.025a.386.386 0 01.144-.118c.116-.064.603-.508 1.09-.984.857-.868 1.058-1.26.709-1.387a.24.24 0 00-.09-.017zm2.196.603c-.257.007-.72.305-1.513.938-.398.323-.65.497-.785.533l-.524.414c-.197.36-.226.583-.174.706a.25.25 0 00.138.134.644.644 0 00.24.045 2.18 2.18 0 00.58-.085 3.466 3.466 0 00.291-.092l.029-.012.053-.028c.1-.129.33-.372.618-.652.91-.878 1.375-1.502 1.28-1.735-.043-.113-.117-.17-.233-.166zm-2.424 1.08c-.074.008-.24.136-.539.398-.432.382-.903.602-1.066.504a3.97 3.97 0 01-.114.024c-.166.033-.373.06-.558.045a.708.708 0 01-.252-.063.337.337 0 01-.168-.17c-.037-.09-.037-.202.005-.345l-.65.534-1.471 1.217V15.867l4.82-3.797a.41.41 0 01.016-.123c.037-.134.035-.202-.023-.196zm2.074.639c-.073 0-.195.103-.39.31-.265.283-.682.557-.903.613l-.034.018a2.191 2.191 0 01-.11.042c-.06.02-.138.044-.228.068-.18.049-.404.094-.604.089a.732.732 0 01-.275-.054.344.344 0 01-.184-.18c-.058-.139-.035-.334.092-.611L7.61 16.033v1.205h1.868l3.962-3.112c.103-.114.258-.27.467-.465.56-.519.687-.698.687-.963 0-.206-.023-.31-.096-.31zm.943 1.95l-.339.338c-.19.18-.529.402-.761.497l-.046.02-.003.005-.01.01c-.009.007-.013.008-.02.011a3.432 3.432 0 01-.282.093 3.058 3.058 0 01-.65.115 1.035 1.035 0 01-.31-.027.364.364 0 01-.218-.144c-.048-.074-.062-.173-.035-.295a1.11 1.11 0 01.095-.25l-3.197 2.526h4.252l.508-.582c.698-.814 1.016-1.396 1.016-1.894z\"},\"child\":[]}]})(props);\n};\nexport function SiStylelint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.415.549L0 3.712 2.242 5.65.547 7.483l11.176 15.909h.114c-2.625-9.386-2.55-9.428-4.446-16.12l-.456.263c-.248.143-.451.026-.451-.26V4.084C5.98 2.321 5.586.958 5.47.549zm15.115 0c-.116.41-.51 1.772-1.014 3.535v3.191c0 .286-.203.403-.45.26l-.457-.264c-1.897 6.693-1.821 6.735-4.446 16.12-.017.07.06.09.114 0L23.453 7.484 21.757 5.65 24 3.712 20.585.549zm-11.496.75c-.118.007-.2.105-.2.271v5.127c0 .242.172.34.38.22l3.068-1.772a.336.336 0 01-.086-.222V3.287c0-.067.021-.129.056-.182L7.215 1.35a.333.333 0 00-.18-.051zm9.939 0a.331.331 0 00-.18.052l-3.038 1.753a.33.33 0 01.057.183v1.636a.335.335 0 01-.088.223l3.068 1.77c.21.122.38.023.38-.218V1.57c0-.166-.08-.264-.199-.27zm-6.35 1.863c-.101 0-.183.056-.183.125v1.636c0 .069.082.125.183.125h2.761c.101 0 .184-.056.184-.125V3.287c0-.07-.083-.125-.184-.125zm1.294 3.642a.829.829 0 00-.83.83.829.829 0 00.83.828.829.829 0 00.829-.829.829.829 0 00-.83-.829zm-.01 4.93a.829.829 0 00-.82.829.829.829 0 00.83.829.829.829 0 00.828-.83.829.829 0 00-.829-.828.829.829 0 00-.009 0zm.01 4.93a.829.829 0 00-.83.828.829.829 0 00.83.83.829.829 0 00.829-.83.829.829 0 00-.83-.829z\"},\"child\":[]}]})(props);\n};\nexport function SiStyleshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.752 7.22a2.04 2.04 0 0 0-2.049 2.048c0 .455.146.89.414 1.241l2.628 3.662c.31.537.124 1.242-.414 1.572-.538.311-1.241.125-1.572-.414a1.154 1.154 0 0 1 .372-1.551l.042-.021c.206-.145.269-.414.124-.621a.467.467 0 0 0-.373-.207.395.395 0 0 0-.207.063l-.041.021c-.951.6-1.262 1.861-.662 2.813.601.953 1.862 1.264 2.813.662.952-.6 1.263-1.861.662-2.813-.041-.063-.082-.104-.104-.166l-2.627-3.683a1.095 1.095 0 0 1-.145-.58c0-.641.517-1.138 1.138-1.138.62 0 1.138.517 1.138 1.138 0 .394-.207.745-.538.973-.021 0-.021.021-.041.021-.207.145-.27.414-.124.621.082.124.228.186.372.207a.4.4 0 0 0 .207-.062l.041-.021c.952-.6 1.263-1.862.662-2.814a2.027 2.027 0 0 0-1.716-.951zM14.752 15.311a.578.578 0 0 0 .579-.58.578.578 0 1 0-1.158 0c0 .332.268.58.579.58zM14.752 8.689a.578.578 0 0 0-.579.58.578.578 0 1 0 1.158 0c-.02-.331-.268-.58-.579-.58zM12 0C5.379 0 0 5.379 0 12c0 6.622 5.379 12 12 12s12-5.379 12-12S18.621 0 12 0zM9.269 17.357a2.613 2.613 0 0 1-2.627-2.605 2.62 2.62 0 0 1 1.593-2.421L7.138 10.8c-.848-1.18-.579-2.814.579-3.642s2.814-.58 3.641.579c.828 1.159.58 2.814-.579 3.642a2.58 2.58 0 0 1-.517.29l1.138 1.615a2.599 2.599 0 0 1-.703 3.619 2.49 2.49 0 0 1-1.428.454zm7.655-4.074c.808 1.199.497 2.813-.703 3.619s-2.814.498-3.621-.703a2.601 2.601 0 0 1 .704-3.621c.145-.104.289-.165.435-.248l-1.117-1.531a2.633 2.633 0 0 1 .579-3.662 2.634 2.634 0 0 1 3.662.58 2.635 2.635 0 0 1-.579 3.662 2.56 2.56 0 0 1-.518.29l1.158 1.614zM8.255 9.827a1.099 1.099 0 0 1-.145-.579c0-.641.517-1.138 1.138-1.138.642 0 1.138.517 1.138 1.138 0 .394-.207.766-.538.973l-.041.021c-.207.145-.269.414-.125.621.083.124.228.186.373.207a.403.403 0 0 0 .207-.062l.041-.021a2.055 2.055 0 0 0 .683-2.814 2.055 2.055 0 0 0-2.814-.684 2.069 2.069 0 0 0-.682 2.814c.042.063.083.125.124.166l2.627 3.663c.104.166.145.373.145.578 0 .643-.497 1.139-1.138 1.16a1.153 1.153 0 0 1-1.158-1.139c0-.393.207-.766.538-.973l.042-.02c.207-.146.269-.414.124-.621a.467.467 0 0 0-.373-.207.393.393 0 0 0-.207.063l-.042.021c-.952.599-1.262 1.863-.662 2.814s1.862 1.262 2.814.662c.6-.373.972-1.035.972-1.738 0-.455-.145-.889-.414-1.242L8.255 9.827zM9.269 15.311c.31 0 .579-.248.579-.58a.58.58 0 0 0-1.159 0c0 .332.249.58.58.58zM9.269 8.689a.575.575 0 0 0-.58.559c0 .311.249.58.559.58.311 0 .58-.249.58-.559a.562.562 0 0 0-.559-.58z\"},\"child\":[]}]})(props);\n};\nexport function SiStylus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.671 8.861c-.445-.354-1.697.239-2.05 1.118-.446 1.116-1.105 2.746-1.752 3.46-.683.75-.751.17-.683-.262.158-1.02 1.153-3.381 1.696-4.047-.202-.3-1.52-.256-2.435 1.166-.342.536-1.122 2.325-1.99 3.734-.19.305-.427.092-.243-.621.207-.825.818-3.089 1.604-4.871 2.064-.409 4.254-.696 5.933-.702.226-.06.377-.263 0-.275-1.447-.049-3.62.122-5.652.38.391-.782.812-1.404 1.239-1.667-.464-.293-1.404-.177-1.94.617a10.547 10.547 0 00-.702 1.244c-1.49.232-2.765.494-3.412.739-.671.256-.598 1.068-.19.915.85-.317 1.996-.647 3.272-.94-.812 1.831-1.447 3.992-1.599 4.87-.379 2.137.946 2.124 1.593 1.282.702-.922 2.166-4.163 2.392-4.504.067-.116.16-.055.11.048-1.635 3.265-1.496 4.529-.17 4.248.597-.128 1.629-1.153 1.897-1.684.055-.128.171-.116.146-.061-1.037 2.692-2.355 4.87-3.24 5.554-.805.616-1.404-.72 1.446-2.637.422-.286.226-.677-.25-.543-1.47.232-5.681 1.568-7.53 2.85-.142.098-.27.177-.264.379.006.116.208.073.306.012 2.393-1.435 4.351-1.995 6.597-2.466.03.013.067.019.097.007.104-.025.098.03.031.073a3.99 3.99 0 01-.342.177c-1.513.591-2.429 1.897-2.105 2.563.275.574 1.758.366 2.46-.012 1.72-.934 2.971-2.765 3.826-5.292.745-2.24 1.685-4.778 1.904-4.852zM3.7 16.094c.623-.745.696-1.514.214-2.942-.305-.903-.812-1.599-.44-2.16.397-.598 1.24-.019.538.78l.14.098c.842.098 1.257-1.056.628-1.386-1.66-.866-3.113.8-2.472 2.729.275.817.66 1.684.348 2.374-.268.592-.787.94-1.135.952-.726.037-.244-1.63.592-2.045.073-.036.177-.085.08-.207-1.032-.116-1.636.36-1.984 1.025-1.013 1.934 1.922 2.649 3.49.782zm19.974-2.064c-2.8-.366-8.842.122-11.509.831-.794.207-.574.628-.171.549.006 0 .177-.043.183-.043 2.191-.427 7.507-.8 10.607-.207.372.067 1.49-1.05.89-1.13zm-9.22-.329c.78-.39 1.94-2.808 2.702-4.131.055-.098.153-.02.098.048-1.928 3.32-1.11 3.705-.348 3.656 1.02-.061 1.96-1.526 2.167-1.856.086-.128.135-.024.086.068-.05.152-.226.421-.391.787-.232.519.012.72.214.812.317.153 1.183.055 1.317-.476-.865-.018 1.209-4.108 1.423-4.358-.58-.336-1.477.031-1.886.836-.872 1.727-1.605 3.119-2.063 3.143-.89.049 1.026-3.85 1.337-3.973-.19-.275-1.404-.159-2.082.89-.244.38-1.732 3.016-2.099 3.45-.647.769-.696.11-.513-.66.061-.262.165-.598.3-.97.427-.964.885-1.27 1.166-1.581 1.885-2.093 2.966-3.79 2.538-4.455-.378-.592-1.642-.33-2.453.89-1.496 2.241-2.874 5.31-3.051 6.715-.171 1.403.847 1.506 1.537 1.165zm7.372-3.296c.238.586.598 1.166.384 1.679-.177.439-.41.623-.665.665-.36.06-.263-1.068.354-1.404.055-.03.134-.177.06-.262-.78-.043-1.22.33-1.458.824-.69 1.447 1.563 1.842 2.667.42.44-.567.458-1.128.036-2.147-.267-.647-.676-1.13-.42-1.557.275-.45.933-.061.44.544l.11.06c.64.037.902-.817.414-1.03-1.287-.55-2.49.835-1.922 2.208zm-6.579-.811c.067-.153.11-.195.226-.452.67-1.477 1.514-3.033 2.093-3.759.36-.379.866.134-.049 1.538a14.165 14.165 0 01-1.812 2.264v.006c-.171.189-.324.348-.391.44-.049.06-.104.049-.067-.037z\"},\"child\":[]}]})(props);\n};\nexport function SiSubaru (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 4.983c3.004 0 6.224.612 8.786 2.239C22.451 8.286 24 9.9 24 12.002c0 2.456-2.097 4.242-4.106 5.287-2.391 1.238-5.216 1.728-7.894 1.728-3.003 0-6.217-.605-8.78-2.238C1.556 15.714 0 14.101 0 12.003 0 9.536 2.092 7.757 4.106 6.71 6.504 5.474 9.323 4.983 12 4.983zm-.025.746c-2.793 0-5.802.523-8.225 1.983-1.524.912-3.03 2.347-3.03 4.253 0 2.239 2.04 3.806 3.864 4.706 2.258 1.102 4.897 1.53 7.391 1.53 2.798 0 5.809-.523 8.232-1.983 1.517-.918 3.029-2.346 3.029-4.253 0-2.243-2.035-3.813-3.864-4.705-2.258-1.104-4.898-1.53-7.397-1.53zm-10.54 4.686l4.597-.784 1.384-3.003L8.794 9.63l4.596.784-4.596.792-1.378 3.01-1.384-3.01zm10.106 2.289l2.028-.356.605-1.359.606 1.359 2.028.356-2.028.35-.606 1.36-.605-1.36zm4.196-3.621l2.028-.35.605-1.365.606 1.364 2.028.35-2.028.357-.606 1.36-.606-1.36zM13.57 15.51l2.02-.35.607-1.365.612 1.365 2.027.35-2.027.357-.612 1.36-.606-1.36zm-6.23.491l2.028-.35.612-1.366.605 1.366 2.028.35-2.028.357-.605 1.359-.612-1.359zm10.196-3.353l2.022-.357.605-1.359.612 1.359 2.028.357-2.028.35-.612 1.357-.606-1.357Z\"},\"child\":[]}]})(props);\n};\nexport function SiSublimetext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.953.004a.397.397 0 0 0-.18.017L3.225 5.585c-.175.055-.323.214-.402.398a.42.42 0 0 0-.06.22v5.726a.42.42 0 0 0 .06.22c.079.183.227.341.402.397l7.454 2.364-7.454 2.363c-.255.08-.463.374-.463.655v5.688c0 .282.208.444.463.363l17.55-5.565c.237-.075.426-.336.452-.6.003-.022.013-.04.013-.065V12.06c0-.281-.208-.575-.463-.656L13.4 9.065l7.375-2.339c.255-.08.462-.375.462-.656V.384c0-.211-.117-.355-.283-.38z\"},\"child\":[]}]})(props);\n};\nexport function SiSubstack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z\"},\"child\":[]}]})(props);\n};\nexport function SiSubtitleedit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.858.02C1.744.23.16 1.91.02 4.09c-.038.598-.02 15.896.02 16.156.3 1.996 1.752 3.455 3.7 3.719.418.057 16.38.04 16.674-.018 1.433-.28 2.614-1.164 3.156-2.363.2-.443.304-.776.377-1.208.047-.282.075-16.036.029-16.509A4.266 4.266 0 0 0 20.348.048C20.065.008 4.261-.02 3.858.02m7.237 6.15c.707.707 1.285 1.299 1.285 1.315 0 .024-.57.03-2.79.03-3.106 0-2.95-.008-3.286.16-1.145.58-1.175 2.2-.052 2.8.34.18.265.174 1.725.192 1.404.018 1.475.023 1.976.153 1.495.388 2.688 1.64 3.015 3.164a4.2 4.2 0 0 1-3.547 5.057c-.347.046-6.605.05-6.605.004 0-.016.573-.602 1.273-1.302L5.36 16.47l1.87-.01c2.07-.009 1.97-.002 2.326-.172a1.566 1.566 0 0 0 .421-2.532c-.431-.43-.571-.461-2.05-.462-1.802 0-2.364-.125-3.253-.721-3.078-2.066-2.152-6.837 1.475-7.597.38-.08.522-.086 2.11-.089l1.551-.003 1.284 1.285m10.067-1.256c0 .017-.578.608-1.284 1.315l-1.284 1.286h-4.427l-1.296-1.298a68.614 68.608 0 0 1-1.296-1.315c0-.01 2.157-.018 4.793-.018 3.813 0 4.794.006 4.794.03m-2.562 7.06-.006 1.308h-4.449l-.033-.094c-.336-.942-.695-1.527-1.346-2.194a4.325 4.325 0 0 1-.292-.313c0-.01 1.38-.016 3.066-.016h3.066l-.006 1.309m1.278 5.78a67.498 67.492 0 0 1 1.284 1.302c0 .01-1.955.018-4.344.018-2.389 0-4.344-.008-4.344-.018 0-.01.103-.12.228-.243a5.453 5.453 0 0 0 1.38-2.185l.053-.16h4.458l1.285 1.285\"},\"child\":[]}]})(props);\n};\nexport function SiSubversion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 20.753v-6.306c-3.285 1.296-7.362 2.556-12.23 3.786-4.534 1.145-8.458 1.97-11.77 2.475v.045h24zM0 14.078v5.133c3.738-.55 7.116-1.206 10.13-1.967 2.962-.748 5.245-1.475 6.847-2.18 1.602-.703 2.34-1.297 2.22-1.78-.107-.42-.846-.635-2.217-.645-.703.01-1.67.06-2.904.15-1.236.09-2.774.234-4.61.426-2.85.304-5.216.537-7.1.694-.896.075-1.685.132-2.366.17zm1.035 2.95c.06 0 .114.025.16.07.046.046.07.103.07.166 0 .066-.024.12-.07.168-.047.045-.104.066-.164.066-.032 0-.064-.006-.092-.018-.03-.012-.054-.03-.075-.05-.023-.014-.04-.044-.05-.074 0-.015-.016-.045-.016-.09 0-.06.03-.12.075-.165s.105-.06.18-.06zm.81 0c.063 0 .117.025.165.07.045.046.066.103.066.166 0 .066-.022.12-.067.168-.06.045-.106.066-.18.066-.03 0-.06-.006-.09-.018s-.06-.03-.076-.05c-.03-.014-.045-.044-.06-.074-.015-.015-.015-.045-.015-.09 0-.06.014-.12.06-.165s.104-.06.164-.06zm-.81-1.51c.06 0 .114.022.16.07.046.045.07.1.07.165 0 .064-.024.12-.07.165s-.1.07-.164.07c-.065 0-.122-.024-.167-.07-.045-.045-.07-.102-.07-.165 0-.067.016-.123.06-.168s.106-.068.166-.068zm.81 0c.063 0 .117.022.165.07.045.045.066.1.066.165 0 .064-.022.12-.067.165-.06.045-.106.07-.18.07s-.12-.024-.166-.07c-.045-.045-.075-.102-.075-.165 0-.067.014-.123.06-.168s.104-.068.164-.068zM24 4.597V9.41c-1.635.1-3.68.277-6.138.534-2.49.27-4.52.48-6.093.615-1.576.15-2.713.226-3.41.24-1.363.03-2.09-.15-2.195-.554-.105-.45.705-1.05 2.445-1.77 1.74-.735 4.05-1.47 6.9-2.19 2.505-.63 5.34-1.185 8.49-1.65zm-.855-1.35c-3.255.605-6.627 1.35-10.114 2.23C7.587 6.852 3.244 8.22 0 9.573V3.248h23.146z\"},\"child\":[]}]})(props);\n};\nexport function SiSuckless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 4h24v4H4v2h20v10H0v-4h20v-2H0z\"},\"child\":[]}]})(props);\n};\nexport function SiSui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.636 10.009a7.16 7.16 0 0 1 1.565 4.474 7.2 7.2 0 0 1-1.608 4.53l-.087.106-.023-.135a7 7 0 0 0-.07-.349c-.502-2.21-2.142-4.106-4.84-5.642-1.823-1.034-2.866-2.278-3.14-3.693-.177-.915-.046-1.834.209-2.62.254-.787.631-1.446.953-1.843l1.05-1.284a.46.46 0 0 1 .713 0l5.28 6.456zm1.66-1.283L12.26.123a.336.336 0 0 0-.52 0L4.704 8.726l-.023.029a9.33 9.33 0 0 0-2.07 5.872C2.612 19.803 6.816 24 12 24s9.388-4.197 9.388-9.373a9.32 9.32 0 0 0-2.07-5.871zM6.389 9.981l.63-.77.018.142q.023.17.055.34c.408 2.136 1.862 3.917 4.294 5.297 2.114 1.203 3.345 2.586 3.7 4.103a5.3 5.3 0 0 1 .109 1.801l-.004.034-.03.014A7.2 7.2 0 0 1 12 21.67c-3.976 0-7.2-3.218-7.2-7.188 0-1.705.594-3.27 1.587-4.503z\"},\"child\":[]}]})(props);\n};\nexport function SiSumologic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.922 10.756v2.513h-.586v-.266c-.134.216-.379.341-.737.341-.595 0-.89-.308-.89-.799v-1.79h.64v1.62c0 .262.142.416.417.416.32 0 .516-.184.516-.52v-1.515zm4.161.757v1.756h-.64v-1.564c0-.3-.121-.483-.4-.483s-.441.208-.441.5v1.547h-.64v-1.564c0-.32-.134-.483-.4-.483-.283 0-.441.208-.441.5v1.547H5.48v-2.513h.595v.279c.146-.242.387-.362.716-.362.32 0 .561.133.699.37.17-.245.424-.37.753-.37.536 0 .84.32.84.84zm5.143 1.756h-.64V9.774h.64zm6.949 0h-.641v-2.513h.64zm-.654-2.892h.662v-.611h-.662zm3.055 2.035c-.263.279-.441.387-.683.387-.287 0-.49-.167-.582-.425v-.732c.095-.262.3-.428.59-.428.213 0 .383.074.654.328l.4-.395c-.321-.35-.633-.478-1.053-.478-.587 0-1.04.307-1.22.823v1.032c.175.516.62.82 1.203.82.453 0 .765-.15 1.115-.583zm-22.257-.69c-.175-.038-.3-.072-.37-.088-.088-.025-.154-.058-.188-.104v-.192c.059-.091.2-.15.396-.15.27 0 .457.063.753.296l.345-.416c-.35-.291-.649-.395-1.082-.395-.499 0-.844.204-.982.495v.632c.109.212.358.333.858.441.178.042.3.071.37.084.091.029.175.066.22.133v.22c-.062.1-.212.154-.407.154a.977.977 0 01-.408-.079 1.854 1.854 0 01-.454-.295L0 12.87c.4.353.736.474 1.215.474.512 0 .874-.196 1.011-.508V12.2c-.116-.237-.395-.362-.907-.479zm9.445-1.053c-.578 0-1.032.312-1.215.81v1.058c.183.5.641.811 1.215.811.574 0 1.028-.312 1.211-.807v-1.065c-.187-.495-.64-.807-1.21-.807zm.591 1.71c-.1.266-.312.424-.595.424s-.495-.158-.6-.424v-.741c.1-.266.313-.429.6-.429s.491.163.59.429zm4.585-1.71c-.578 0-1.032.312-1.219.81v1.058c.187.5.641.811 1.22.811.578 0 1.027-.312 1.21-.807v-1.065c-.183-.495-.636-.807-1.21-.807zm.591 1.71c-.1.266-.312.424-.59.424a.62.62 0 01-.6-.424v-.741c.1-.266.312-.429.6-.429.286 0 .49.163.59.429zm2.85-1.623v.279c-.162-.242-.416-.362-.765-.362-.475 0-.857.29-1.024.753v1.036c.163.462.545.749 1.024.749.32 0 .562-.108.732-.32v.2c0 .415-.241.61-.616.61-.278 0-.507-.082-.873-.299l-.313.462c.354.237.77.366 1.195.37.707 0 1.227-.378 1.227-1.086v-2.392zm-.079 1.527c-.095.237-.295.387-.545.387a.574.574 0 01-.545-.387v-.687a.572.572 0 01.545-.382c.254 0 .45.145.545.382z\"},\"child\":[]}]})(props);\n};\nexport function SiSuno (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 0C20.642 0 24 5.373 24 12h-9c0 6.627-3.358 12-7.5 12C3.358 24 0 18.627 0 12h9c0-6.627 3.358-12 7.5-12Z\"},\"child\":[]}]})(props);\n};\nexport function SiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0011 0A12 12 0 1 0 24 11.9989 12.0114 12.0114 0 0 0 12.0012 0m0 2.4639a9.53 9.53 0 0 1 9.5134 8.8891 9.53 9.53 0 0 1-.8622 4.6487H3.349a9.53 9.53 0 0 1 .6162-9.14 9.53 9.53 0 0 1 8.036-4.398\"},\"child\":[]}]})(props);\n};\nexport function SiSupabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9 1.036c-.015-.986-1.26-1.41-1.874-.637L.764 12.05C-.33 13.427.65 15.455 2.409 15.455h9.579l.113 7.51c.014.985 1.259 1.408 1.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z\"},\"child\":[]}]})(props);\n};\nexport function SiSupercrease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.13 5.553-.265.472s-.047.082-.082.15c-.045.014-4.562 1.305-5.752 1.651-.705.197-1.214.345-1.33.381-.115-.185-.38-.635-.38-.635l-1.087.324-1.224.358-.219.07s-.022.126-.059.299c-.08.439-.218 1.213-.242 1.305-.023.023-.149.22-.334.463-.173.254-.405.555-.601.843-.162.22-.312.415-.416.565L0 11.996s.058-.012.139-.035l1.017-.174c-.092.52-.279 1.525-.279 1.525l.209.29.601.83.417.566c.042 0 .086.004.128.012-.173.358-.486 1.005-.613 1.248a.396.396 0 0 1-.037.092l1.041.888.717.612.37.312.116.092.322.055-.011.023 3.027.115s-.553-.645-.59-.681c.705.023 2.37.093 2.37.093l-1.4-1.617-.09-.115s-.418.197-.602.277c-.012-.011-.012-.035-.024-.058l-.057.037-.082-.21-.127-.368.198-.266.717.232.61.21.694.218 1.446-.195.242-.035s.323-.265.623-.508c.093-.08.186-.163.267-.232.255.462.866 1.604 1.004 1.859-.058.139-.423 1.098-.423 1.098l1.523.08.799.035 1.744.092-.3-.704 1.628.08-.592-1.398-.844-.531s-.172.037-.195.037v-.15c.011-.012.045-.036.069-.059l.126-.103s.07-1.317.094-1.963a1.86 1.86 0 0 0 .01-.233c.082.035.269.117.512.233 1.317.6 4.574 2.078 4.99 2.275l.265-.174 1.133-.717-.336-.174.163-.38.347-.832.924-2.252-.785.705s-1.318 1.131-1.688 1.443c-.011-.011-.127-.092-.127-.092l.67-1.605-.935.277c-.195.081-.497.197-.705.29 0-.024-.38-.843-.52-1.132v-.011c.347-.185 1.387-.766 1.387-.766l-.035-.068-.416-.809-.59-1.164-.324-.623s-.753.808-.971 1.039c-.093-.046-.335-.196-.67-.393-.15-.08-.311-.185-.484-.289-1.029-.6-2.439-1.42-3.075-1.8-.207-.116-.335-.198-.335-.198s.023.094.046.198l.092.46a1.911 1.911 0 0 1-.277.024c-.254.035-.542.057-.797.08-.208.023-.369.035-.473.047-.058-.093-.207-.346-.38-.635h-.005c-.229-.373-.472-.773-.472-.773Zm.05.633 3.558 5.86-1.113.507-.127.058-3.324 1.537-.98.45-.987-3.198 2.857-5.007.116-.207Zm-.239.252-1.949 3.42-.865 1.517-.01.016 1.024 3.316.572-.262.5-.226.182.341.05.094-1.076.893-1.539.207-2.1-.639-1.212-.37.12-.198-.722-.047 1.752-2.584-2.02-3.383 7.293-2.095Zm3.016.375 4.031 2.36-2.093 2.253-.204.219-.615.584-.053-.258-1.02-4.961-.007-.035-.039-.162Zm-.039.251.998 4.795.02.092-.092.111-2.916-4.802 1.99-.196Zm-10.719.868.328.552.795 1.33 1.25 2.1-1.763 2.598-.116.156-1.775-.08H2.893l-.045-.002-.516-.02-1.041-1.414.338-1.802.006-.028.504-2.793 2.06-.597Zm15.678.404.973 1.9-2.334 1.274-2.645 1.326-.088.043v-.004l-.236.121.154-.166.059-.062.015-.018 3.036-3.264.273-.293.035-.037.758-.82Zm-18.121 1.82-.205 1.125-.696.125.9-1.25Zm17.742.914.79 1.686.097.367-.2.162-2.091-1.469.46-.236.602-.328.342-.182Zm-1.486.79 2.611 1.84.29.206.68.477.038.025.246.176.49.354-.797.476-5.588-2.543 2.03-1.012Zm-2.202.244-.437.548-.021.01.01.006-.425.533-.277-.574 1.15-.524Zm5.827.07-.69 1.648-.002.006-.691-.494.223-.18-.002-.004 1.101-.927.06-.05Zm-.305.146-.879.745-.088-.329-.006-.023.973-.393Zm-5.604.016-.005.176-.08.033-.116.045.202-.254Zm7.569.06-1.002 2.39-.58-.417.074-.092 1.465-1.826.043-.055Zm-7.438.141-.074.082-.103.111-.131-.062.25-.102.058-.029Zm-1.273.125.082.168.252.524.515-.649.188.09-.297.318.051.063.129-.069.19-.093-.114 2.299-.129.1v-.017l-1.119.938-.209.027v-.234l.197-.162.172-3.262.092-.04Zm-.176.08-.152 2.881-.016.3-.197.163-1.053.861-.201.04-1.242-2.313-.125-.234-.137-.255 3.123-1.443Zm8.502.004-1.14 1.424-.202-.274 1.342-1.15Zm-1.744.762.55.726-.072.086-.634-.443.156-.37Zm-16.307 1.07.639.041-.064.102-.008.013-.035.057-.563.947-.226.37-.053.085-.01.018-.023.037-.004.008-.014.021-.025.05-1.479-1.651 1.738.076.127-.174ZM2.8 14.67h.084l1.504 1.678-2.324-.174.736-1.504Zm2.676.146 1.132.344-.265.438-.084.14-.801-.894.018-.028Zm-.06.102.75.84-1.196-.09.445-.75Zm9.96.652v.582l-.877.153.877-.735Zm-10.453.176 1.322.1.026.029.015-.025.06.004.307.902-.527.25-.338.16-.162-.174-.1.045-.914-.771.248-.418.063-.102Zm1.4.041.014.04-.023-.026.01-.014Zm9.535.363.63.39.322.759-1.538-.076-.037-.102-.69-.445-.044.008-.373.066v-.305l.09-.015-.008.008 1.244-.215v-.004l.404-.069Zm-1.812.041v.573l-.889.154.889-.727ZM2.12 16.26l2.346.175.025.03.016-.027.043.003.318.907-.935.441-1.813-1.53Zm5.264.244.773.887-2.258-.088-.058-.073 1.543-.726Zm7.144.258.633.4.006.012.045.127h.008l.26.623-2.989-.145.272-.707.988-.174.373-.064.404-.072Zm-8.922.33.243.28.01.01.519.598-2.455-.093 1.015-.473.577-.28.091-.042Z\"},\"child\":[]}]})(props);\n};\nexport function SiSupermicro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.937 5.842c-.489-.007-.988.002-1.494.03-3.99.218-7.831 1.51-10.236 3.443-.469.379-1.18 1.133-1.453 1.543-.539.8-.754 1.444-.754 2.252 0 1.55 1.026 2.85 3.006 3.798 1.218.586 2.67.97 4.392 1.164 1.203.133 3.198.114 4.568-.046 3.963-.465 7.517-1.921 9.52-3.893.242-.242.77-.851.789-.914 0-.004.105.031.234.074.554.188 1.148-.078 1.398-.629.133-.28.121-.732-.023-1.025a1.149 1.149 0 0 0-.621-.57l-.188-.067v-.199c0-.855-.422-1.727-1.203-2.484-1.568-1.52-4.513-2.421-7.935-2.477Zm-.156.395c.638-.008 1.257.013 1.836.064 2.276.2 4.213.782 5.587 1.684.504.332 1.176 1.002 1.418 1.416.234.402.375.848.403 1.27l.02.331-.24.004a1.076 1.076 0 0 0-.823.41c-.196.25-.254.422-.25.778 0 .336.082.556.289.795l.129.144-.348.352c-.683.69-1.46 1.242-2.482 1.75-2.585 1.296-6.064 1.974-9.258 1.806-2.178-.113-3.916-.502-5.365-1.197-1.527-.73-2.478-1.723-2.72-2.82-.613-2.776 3.139-5.614 8.593-6.508a21.81 21.81 0 0 1 3.21-.28ZM23 7.784l-.01.002c-.03 0-.059 0-.088.01-.04.007-.079.026-.117.042a.44.44 0 0 0-.138.125c-.016.027-.035.052-.043.082a.35.35 0 0 0-.032.122.468.468 0 0 0 .016.152.436.436 0 0 0 .174.228.483.483 0 0 0 .187.067.456.456 0 0 0 .248-.047.408.408 0 0 0 .215-.281c.005-.035.013-.069.008-.104.001-.026-.006-.054-.01-.08a.435.435 0 0 0-.191-.26.485.485 0 0 0-.21-.058H23zm-.031.086h.06a.292.292 0 0 1 .112.033c.02.008.037.02.054.035.023.02.048.041.063.068a.3.3 0 0 1 .037.075c.012.027.013.057.02.086-.002.031.004.064-.004.095-.003.033-.018.062-.032.092-.006.019-.019.034-.029.05a.297.297 0 0 1-.076.075c-.017.015-.04.02-.059.03-.022.006-.044.016-.068.017-.006 0-.011 0-.018.002-.03 0-.061.004-.091-.002a.297.297 0 0 1-.154-.078.22.22 0 0 1-.044-.047c-.018-.02-.026-.045-.039-.068-.009-.02-.012-.042-.017-.063-.008-.027-.006-.056-.006-.084-.002-.039.01-.077.021-.113.014-.026.024-.054.043-.076.015-.024.039-.04.057-.059a.317.317 0 0 1 .066-.041c.023-.007.045-.018.069-.021a.141.141 0 0 1 .035-.006zm.047.12-.055.003h-.053l-.02.004-.019.002-.015.002-.016.001v.415h.094v-.17l.037.002.035.002.012.003.013.002.012.012.004.008.004.007.002.01.002.008.011.038.006.014.006.014h.104l-.006-.012-.008-.035-.01-.037-.006-.022-.006-.02-.007-.015-.008-.013-.01-.012-.01-.01-.015-.008-.014-.01v-.003l.012-.006.013-.006.012-.006.012-.008.01-.01.007-.013.006-.014.002-.02v-.019l-.002-.013-.002-.014-.008-.014-.008-.013-.01-.012-.01-.01-.015-.006-.015-.008-.018-.004-.018-.005-.029-.002zm-.055.07h.053l.017.005.016.006.014.012.01.01.001.007.004.01v.021l-.006.014-.005.01-.01.006-.01.01-.018.003-.013.008-.04.002h-.04v-.121l.013-.002zM4.203 10.318c-.071.004-.104.024-.104.054 0 .098-.058.102-.285.024a1.043 1.043 0 0 0-.703-.024.83.83 0 0 0-.574.825c0 .406.176.605.887 1.011.175.102.375.245.437.319.192.214.149.445-.094.547-.417.171-.863-.11-.94-.602-.024-.156-.032-.162-.157-.162h-.133v1.17h.133c.097 0 .137-.02.152-.074.02-.075.024-.075.262 0 .718.222 1.32-.048 1.445-.649.102-.48-.117-.775-.875-1.19-.57-.312-.73-.534-.52-.734a.436.436 0 0 1 .454-.117c.261.067.511.41.511.703 0 .055.032.07.137.07h.137V10.32h-.17zm15.046.584-.039.002c-.078 0-.12.023-.136.078-.024.074-.032.074-.149.012-.172-.086-.625-.106-.851-.032-.246.078-.551.364-.684.633-.086.176-.113.29-.125.555-.02.41.078.709.312.963.512.554 1.465.449 1.813-.2l.074-.144-.094-.074-.093-.078-.18.203c-.27.312-.524.379-.852.234-.32-.148-.48-.58-.398-1.088.086-.554.367-.812.797-.734.18.035.387.242.457.46.05.145.074.169.18.18l.125.012-.02-.246c-.061-.704-.058-.739-.137-.736zm-8.394.033v.14c0 .137.002.141.135.141.113 0 .144.02.176.102.023.054.039.45.039.875s-.016.818-.04.873c-.03.082-.062.101-.175.101-.129 0-.135.008-.135.137v.137h1.17v-.133c0-.129-.008-.137-.145-.148l-.148-.012-.012-.403c-.004-.218.004-.396.02-.392.015 0 .203.244.414.545l.379.543h1.523v-.137c0-.125-.012-.137-.11-.137-.19 0-.202-.043-.202-.703l.004-.603.347.779c.465 1.046.43 1.042.863.059l.329-.74.011.552c.004.305 0 .578-.008.606-.011.027-.082.05-.16.05-.129 0-.136.008-.136.137v.137h2.224v-.137c0-.125-.008-.137-.117-.137-.074 0-.129-.027-.156-.074-.043-.082-.055-1.635-.016-1.79.02-.067.055-.087.156-.087.125 0 .133-.008.133-.136v-.137h-1.865l-.34.77c-.187.425-.355.786-.37.802-.017.016-.189-.322-.384-.76l-.355-.793-.395-.011-.39-.012v.14c0 .125.008.137.117.137.094 0 .129.024.156.102.024.054.04.45.04.875s-.016.818-.04.873c-.027.082-.062.101-.164.101a.565.565 0 0 1-.254-.078c-.117-.07-.414-.432-.57-.697-.063-.11-.063-.11.078-.203.195-.129.281-.258.309-.473a.642.642 0 0 0-.329-.648c-.18-.102-.203-.106-.894-.117zm8.55 0v.137c0 .132.008.14.149.152l.145.012v1.912l-.145.012c-.14.011-.148.02-.148.148v.133h1.169v-.133c0-.129-.007-.137-.144-.148l-.149-.012-.011-.41c-.012-.488-.04-.5.453.195l.344.488.378.012.38.012v-.133c0-.125-.012-.137-.149-.156-.172-.032-.293-.149-.594-.575-.187-.265-.199-.29-.136-.33.039-.02.128-.09.199-.148.324-.277.238-.844-.157-1.055-.144-.074-.23-.086-.87-.097zm-14.876.008v.136c0 .13.008.137.133.137.086 0 .14.024.156.063.012.035.024.383.024.777 0 .937.058 1.111.449 1.318.125.067.227.082.508.082.48 0 .677-.101.86-.445.063-.117.079-.252.095-.955l.02-.82.237-.012c.223-.012.243-.004.266.078.04.149.027 1.658-.016 1.764-.027.078-.062.101-.156.101-.11 0-.117.012-.117.137v.137h1.133v-.133c0-.129-.008-.137-.145-.149l-.148-.011-.012-.38-.012-.376.23.002c.403.004.638-.127.766-.443.168-.403-.066-.844-.519-.97-.078-.019-.602-.038-1.164-.038H6.092v.133c0 .128.007.136.148.148l.145.012.011.734c.012.86-.012.947-.281 1.08-.27.129-.543.082-.676-.11-.062-.093-.07-.193-.07-.903v-.801l.148-.012c.137-.012.145-.02.145-.148v-.133h-.566Zm4.295 0v.133c0 .128.008.136.148.148l.145.012.012.933c.011 1.008.011.998-.196.998-.097 0-.11.016-.11.137v.137h1.9l.12-.39.118-.391h-.13c-.1 0-.14.027-.21.136-.156.254-.243.293-.63.293h-.347v-.78h.293c.203 0 .3.017.309.048.011.027.027.096.039.154.02.09.047.11.14.11h.118v-.975h.12c.094 0 .118-.012.098-.063a1.93 1.93 0 0 1-.023-.351v-.29H9.78Zm7.173.275c.035 0 .078.003.135.006l.246.012v1.912h-.254c-.234 0-.253-.008-.277-.098-.043-.152-.039-1.623.004-1.736.026-.073.043-.095.146-.096zm-6.353.03.352.015c.246.008.367.027.406.07a.472.472 0 0 1 .082.184c.023.117.02.129-.074.129-.078 0-.106.023-.125.105a.887.887 0 0 1-.04.157c-.007.035-.105.05-.308.05h-.293v-.355zm2.213.011a.35.35 0 0 1 .148.043c.18.082.27.363.176.543-.05.094-.238.191-.37.191h-.099v-.367c0-.367.012-.402.145-.41zm8.55 0a.35.35 0 0 1 .149.043c.113.05.215.215.215.344 0 .21-.2.39-.434.39-.066 0-.074-.035-.074-.367 0-.367.012-.402.144-.41zm-12.599.035h.133c.102 0 .16.032.238.125.09.11.106.153.09.313-.023.242-.117.344-.312.344h-.149v-.391z\"},\"child\":[]}]})(props);\n};\nexport function SiSuperuser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.523 0c-.223 0-.336.111-.336.28v23.439c0 .196.113.252.336.252h5.594c.224 0 .335-.084.307-.252v-1.483c0-.167-.14-.252-.363-.252H5.543c-.252 0-.363-.083-.363-.279V2.293c0-.196.112-.307.42-.307h2.488c.224 0 .336-.056.336-.252V.28C8.424.084 8.284 0 8.06 0H2.523zm8.8.02c-.224 0-.364.083-.364.279v1.398c0 .196.112.28.336.28h.447c2.154 0 3.664 1.706 3.664 3.412v4.42c0 1.37.98 2.517 2.518 3.216.112.056.139.14.139.196 0 .056-.027.112-.14.14-1.677.616-2.517 2.294-2.517 3.496v3.916c0 1.735-1.51 1.258-3.664 1.258h-.447c-.224 0-.336.084-.336.28v1.398c0 .196.14.28.363.28h.56c3.609 0 6.516.335 6.516-2.714v-4.082c0-1.426 1.008-2.295 2.49-2.714.672-.196.95-.307.923-.56v-1.173c0-.447-.308-.477-.868-.644-1.51-.532-2.515-1.342-2.515-2.74V5.64c0-3.05-2.937-5.621-6.545-5.621h-.56zm.183 8.396c-.336 0-.645.252-.645.588v1.342c0 .307.281.588.645.588h1.482c.336 0 .643-.253.643-.588V9.004c0-.308-.28-.588-.643-.588h-1.482Z\"},\"child\":[]}]})(props);\n};\nexport function SiSurrealdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 6.314 5.714 3.165v-1.27L12 5.054c-.85.47-4.957 2.74-5.714 3.157.703.39 8.085 4.467 12.572 6.946v1.264L12 20.209c-1.71-.943-5.15-2.844-6.858-3.79v-3.788L12 16.42l1.144-.632-9.146-5.05v6.316L12 21.472l8-4.42v-2.526L8.57 8.21Zm-8.002.632v2.528l11.428 6.316-3.428 1.896-5.714-3.165v1.27l5.714 3.156c.85-.47 4.957-2.74 5.714-3.157-.703-.39-8.083-4.467-12.57-6.948V7.578L12 3.789c1.707.945 5.148 2.846 6.858 3.789v3.789L12 7.577l-1.144.633L20 13.263V6.946L12 2.526c-.791.438-7.416 4.1-8.002 4.42zM12 0 1.713 5.685v12.63L12 24l10.287-5.682V5.685Zm9.14 17.683L12 22.736l-9.143-5.053V6.317L12 1.264l9.143 5.053z\"},\"child\":[]}]})(props);\n};\nexport function SiSurveymonkey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.1627 13.1843a2.8517 2.8517 0 0 0-.6778.0841c-.8438-3.3181-3.5478-5.8376-6.9172-6.4452a8.3933 8.3933 0 0 0-.4407-.0668c.0259-.8255.0636-1.7791 1.2781-2.6369l-.1918-.4838s-2.3708.7349-2.6391 2.7598c-.1175-.5507-1.2209-1.2403-1.7673-1.3707l-.2717.4384s.7242.3621.9009 1.361c-3.3691.6056-6.0743 3.1229-6.9204 6.4398-1.5194-.376-3.056.5508-3.432 2.0703-.376 1.5194.5508 3.056 2.0703 3.432a2.8346 2.8346 0 0 0 1.7195-.1142 8.6821 8.6821 0 0 0 .9203 1.7123l2.3524-1.5852c-.6381-.8071-1.0206-1.9884-1.0873-3.1736-.07-1.2931.2446-2.5755 1.0701-3.3298 1.7016-1.4483 3.5561-.7877 4.7135.6002h.3114c1.1606-1.388 3.0173-2.0475 4.7135-.6002.8244.7543 1.1401 2.0378 1.0701 3.3298-.0656 1.1853-.4481 2.3664-1.0873 3.1736l2.3524 1.5852a8.6854 8.6854 0 0 0 .9224-1.7123c1.4551.5751 3.1009-.1384 3.676-1.5935s-.1384-3.1009-1.5935-3.676a2.8349 2.8349 0 0 0-1.0448-.1983zM2.7861 16.8482a.8362.8362 0 0 1 0-1.6724.8442.8442 0 0 1 .4688.1444c.0071.4391.0369.8776.0894 1.3136-.1472.1346-.3738.2329-.5582.2144zm18.4273 0a.8361.8361 0 0 1-.5582-.2155 12.679 12.679 0 0 0 .0894-1.3136.8352.8352 0 0 1 1.304.6929c.0078.4574-.3823.8581-.8352.8362z\"},\"child\":[]}]})(props);\n};\nexport function SiSuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.6691 10.2274a.392.392 0 0 1-.4295 0c-.2108-.14-.2311-.4327-.061-.602a.3828.3828 0 0 1 .5515-.0002c.1698.1695.1492.4622-.061.6022m-1.12.8819c-.5308-.1245-.952-.5457-1.0768-1.0762-.2444-1.0419.6924-1.9787 1.7346-1.7346.5305.1241.952.545 1.0768 1.0759.2451 1.0425-.692 1.98-1.7346 1.7349zm-5.0114 4.374c.0394.1174.0898.2723.2057.3346.0064.0035.012.0066.019.0085.2128.0775.7598.0645.7598.0645h1.006c.086.0013.8419-.001.8228-.0854-.091-.4041-.5584-.4765-.9142-.688-.328-.1955-.6391-.417-.78-.7984-.0737-.1968-.0302-.6508.0965-.8162.0923-.1196.2285-.199.3749-.231.1622-.0347.3305-.0048.4927.0117.2.0203.3974.0565.5968.0813a7.4343 7.4343 0 0 0 1.1613.0596c.6403-.0177 1.2822-.1197 1.8892-.3266.4238-.1423.8413-.3346 1.2016-.6023.4095-.3044.3019-.2758-.1134-.2333-.4971.0508-.9987.0584-1.4974.0289-.4654-.027-.9245-.082-1.3454-.2981-.3314-.1711-.6162-.3425-.879-.6076-.0394-.04-.0639-.1568.0082-.2314.0698-.0724.2178-.0305.2632.0082.4584.3832 1.1422.6987 1.8501.733.3829.019.7553.026 1.1384.0095.1915-.0088.4804-.0076.6724-.0095.099-.0012.3692.0273.4197-.0778.0152-.0304.014-.0657.0127-.1-.0562-1.532-.1695-3.26-1.7727-3.9923-1.1962-.547-2.9895-1.3943-3.747-1.7458-.1755-.0834-.381.0486-.381.2442 0 .5117.026 1.247.0264 1.9162-.3629-.3696-.974-.6029-1.4397-.8169-.5289-.2425-1.0749-.4482-1.6305-.6212-1.1184-.3464-2.2758-.5597-3.44-.6753-1.3203-.1317-2.6628-.0685-3.9628.2-2.141.4438-4.2454 1.4734-5.8429 2.979-.9806.924-1.7501 2.2373-1.8021 3.5703-.0743 1.8867.4543 2.8997 1.4257 3.9439 1.5492 1.664 4.8835 1.8971 6.234-.0762.6076-.8883.7394-2.093.2984-3.075-.441-.9812-1.4546-1.6904-2.5292-1.7266-.834-.0276-1.7225.3965-2.0422 1.1676-.2438.5889-.1051 1.3165.339 1.7736.173.1785.4073.3245.6632.2673.1508-.0336.2768-.147.2997-.3.0336-.2257-.1638-.372-.2854-.5453-.2194-.3127-.175-.7823.0997-1.048.2317-.2244.5749-.2908.8974-.2898.3003.0006.6073.0543.8664.2057.3641.2143.606.6067.6898 1.0213.2499 1.239-.7574 2.2457-2.1232 2.3247-.6987.0413-1.4098-.1422-1.9552-.5813-1.3813-1.111-1.7197-3.3822-.141-4.5946 1.4988-1.1508 3.3908-.8542 4.5064-.2561.8927.4784 1.558 1.2612 2.0622 2.1266.253.4353.4686.8902.6686 1.352.1924.4442.3724.8918.7575 1.2172.2549.2159.5695.2083.9034.2083h1.9064c.259 0 .1959-.1727.0841-.287-.2527-.2584-.6158-.3168-.952-.4092-.7686-.2114-.6902-1.2289-.4775-1.2289.687 0 .7086.0206 1.3105.013.8685-.012 1.1314-.0625 1.8108.1886.3631.1346.712.4895.9397.814.119.171.218.3365.2736.5019Z\"},\"child\":[]}]})(props);\n};\nexport function SiSuzuki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.369 19.995C13.51 22.39 12 24 12 24L.105 15.705s5.003-3.715 9.186-.87l5.61 3.882.683-.453L.106 7.321s2.226-.65 6.524-3.315C10.49 1.609 12 0 12 0l11.895 8.296s-5.003 3.715-9.187.87L9.1 5.281l-.683.454L23.893 16.68s-2.224.649-6.524 3.315Z\"},\"child\":[]}]})(props);\n};\nexport function SiSvelte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.354 21.125a4.44 4.44 0 0 1-4.765-1.767 4.109 4.109 0 0 1-.703-3.107 3.898 3.898 0 0 1 .134-.522l.105-.321.287.21a7.21 7.21 0 0 0 2.186 1.092l.208.063-.02.208a1.253 1.253 0 0 0 .226.83 1.337 1.337 0 0 0 1.435.533 1.231 1.231 0 0 0 .343-.15l5.59-3.562a1.164 1.164 0 0 0 .524-.778 1.242 1.242 0 0 0-.211-.937 1.338 1.338 0 0 0-1.435-.533 1.23 1.23 0 0 0-.343.15l-2.133 1.36a4.078 4.078 0 0 1-1.135.499 4.44 4.44 0 0 1-4.765-1.766 4.108 4.108 0 0 1-.702-3.108 3.855 3.855 0 0 1 1.742-2.582l5.589-3.563a4.072 4.072 0 0 1 1.135-.499 4.44 4.44 0 0 1 4.765 1.767 4.109 4.109 0 0 1 .703 3.107 3.943 3.943 0 0 1-.134.522l-.105.321-.286-.21a7.204 7.204 0 0 0-2.187-1.093l-.208-.063.02-.207a1.255 1.255 0 0 0-.226-.831 1.337 1.337 0 0 0-1.435-.532 1.231 1.231 0 0 0-.343.15L8.62 9.368a1.162 1.162 0 0 0-.524.778 1.24 1.24 0 0 0 .211.937 1.338 1.338 0 0 0 1.435.533 1.235 1.235 0 0 0 .344-.151l2.132-1.36a4.067 4.067 0 0 1 1.135-.498 4.44 4.44 0 0 1 4.765 1.766 4.108 4.108 0 0 1 .702 3.108 3.857 3.857 0 0 1-1.742 2.583l-5.589 3.562a4.072 4.072 0 0 1-1.135.499m10.358-17.95C18.484-.015 14.082-.96 10.9 1.068L5.31 4.63a6.412 6.412 0 0 0-2.896 4.295 6.753 6.753 0 0 0 .666 4.336 6.43 6.43 0 0 0-.96 2.396 6.833 6.833 0 0 0 1.168 5.167c2.229 3.19 6.63 4.135 9.812 2.108l5.59-3.562a6.41 6.41 0 0 0 2.896-4.295 6.756 6.756 0 0 0-.665-4.336 6.429 6.429 0 0 0 .958-2.396 6.831 6.831 0 0 0-1.167-5.168Z\"},\"child\":[]}]})(props);\n};\nexport function SiSvg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0c-1.497 0-2.749.965-3.248 2.17a3.45 3.45 0 00-.238 1.416 3.459 3.459 0 00-1.168-.834 3.508 3.508 0 00-1.463-.256 3.513 3.513 0 00-2.367 1.02c-1.06 1.058-1.263 2.625-.764 3.83.179.432.47.82.82 1.154a3.49 3.49 0 00-1.402.252C.965 9.251 0 10.502 0 12c0 1.497.965 2.749 2.17 3.248.437.181.924.25 1.414.236-.357.338-.65.732-.832 1.17-.499 1.205-.295 2.772.764 3.83 1.058 1.06 2.625 1.263 3.83.764.437-.181.83-.476 1.168-.832-.014.49.057.977.238 1.414C9.251 23.035 10.502 24 12 24c1.497 0 2.749-.965 3.248-2.17a3.45 3.45 0 00.238-1.416c.338.356.73.653 1.168.834 1.205.499 2.772.295 3.83-.764 1.06-1.058 1.263-2.625.764-3.83a3.459 3.459 0 00-.834-1.168 3.45 3.45 0 001.416-.238C23.035 14.749 24 13.498 24 12c0-1.497-.965-2.749-2.17-3.248a3.455 3.455 0 00-1.414-.236c.357-.338.65-.732.832-1.17.499-1.205.295-2.772-.764-3.83a3.513 3.513 0 00-2.367-1.02 3.508 3.508 0 00-1.463.256c-.437.181-.83.475-1.168.832a3.45 3.45 0 00-.238-1.414C14.749.965 13.498 0 12 0zm-.041 1.613a1.902 1.902 0 011.387 3.246v3.893L16.098 6A1.902 1.902 0 1118 7.902l-2.752 2.752h3.893a1.902 1.902 0 110 2.692h-3.893L18 16.098A1.902 1.902 0 1116.098 18l-2.752-2.752v3.893a1.902 1.902 0 11-2.692 0v-3.893L7.902 18A1.902 1.902 0 116 16.098l2.752-2.752H4.859a1.902 1.902 0 110-2.692h3.893L6 7.902A1.902 1.902 0 117.902 6l2.752 2.752V4.859a1.902 1.902 0 011.305-3.246z\"},\"child\":[]}]})(props);\n};\nexport function SiSvgdotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12 12 0 0 12l12 12 12-12Zm-18.569-.554 4.665-4.665c.335-.601.841-1.258 1.565-1.982a.4798.4798 0 0 1 .678 0c.187.187.187.491 0 .678-1.254 1.254-1.786 2.24-1.836 3.093-.035.59.174 1.1.49 1.573.36.536.854 1.026 1.346 1.518 1.13 1.13 2.206 2.289 2.116 3.826-.015.256-.063.525-.149.808l4.002-4.002a.6147.6147 0 0 1-.073-.293c0-.346.281-.627.627-.627s.627.281.627.627-.281.627-.627.627a.6147.6147 0 0 1-.293-.073l-4.665 4.665c-.335.601-.841 1.258-1.565 1.982a.4798.4798 0 0 1-.678 0 .4798.4798 0 0 1 0-.678c1.254-1.254 1.786-2.24 1.836-3.093.035-.59-.174-1.1-.49-1.573-.36-.536-.854-1.026-1.346-1.518-1.13-1.13-2.206-2.289-2.116-3.826.015-.256.063-.525.149-.808l-4.002 4.002c.047.087.073.187.073.293 0 .346-.281.627-.627.627A.6274.6274 0 0 1 4.511 12c0-.346.281-.627.627-.627.106 0 .206.026.293.073Zm-.293.296c.143 0 .258.115.258.258 0 .143-.115.258-.258.258A.2573.2573 0 0 1 4.88 12c0-.143.115-.258.258-.258Zm13.724 0c.143 0 .258.115.258.258 0 .143-.115.258-.258.258a.2573.2573 0 0 1-.258-.258c0-.143.115-.258.258-.258Z\"},\"child\":[]}]})(props);\n};\nexport function SiSvgo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.9685 9.5707a10.3841 10.3841 0 0 0-1.2419-2.851c.4116-.5796.8064-1.1723 1.1723-1.7999l-2.8271-2.8187c-.6432.3768-1.2527.7848-1.8491 1.2107a10.2604 10.2604 0 0 0-2.7599-1.1387c-.12-.72-.2676-1.4483-.4572-2.1731h-4.0054c-.1871.7104-.3275 1.4207-.4475 2.1311a10.302 10.302 0 0 0-2.845 1.1279c-.5724-.4068-1.1591-.798-1.7771-1.1579L2.1023 4.9282c.3408.582.7068 1.1375 1.0871 1.6799a10.3302 10.3302 0 0 0-1.3199 2.9878 25.065 25.065 0 0 0-1.8683.4032v4.0006c.5796.1512 1.1567.2736 1.7363.3792a10.327 10.327 0 0 0 1.2815 3.2602c-.3204.462-.6288.9372-.9168 1.4315l2.8283 2.8283c.48-.2784.9348-.5736 1.3811-.8808A10.3366 10.3366 0 0 0 9.6522 22.41c.0972.5304.2112 1.0607.348 1.5899h4.0006c.1416-.5436.2568-1.0859.36-1.6307a10.2988 10.2988 0 0 0 3.2566-1.4063c.4716.3264.96.642 1.4567.936l2.8271-2.8283c-.3144-.5364-.6528-1.0511-1.0043-1.5599a10.3406 10.3406 0 0 0 1.1999-3.109c.6336-.1116 1.2683-.24 1.9019-.4056v-3.997c-.6755-.1752-1.3534-.3132-2.0302-.4284zm-2.9147 5.1886c-.6873 1.9556-2.1612 3.5519-4.0522 4.399-1.8966.856-4.0703.8774-5.9901.0792-1.8862-.7889-3.4536-2.3813-4.1746-4.339-.7227-1.9308-.6184-4.0925.288-5.9445a7.6099 7.6099 0 0 1 3.8242-3.6466c1.9315-.8372 4.2099-.8069 6.1185.0816a7.5908 7.5908 0 0 1 3.643 3.5506c.8889 1.8067 1.0111 3.9209.3432 5.8197zm-1.6883-.1416c.069.3397.0197.6928-.1396 1.0006-.3857.7451-1.3023 1.0365-2.0474.6508-.7451-.3857-1.0365-1.3023-.6508-2.0474l-1.1999-.8964a2.076 2.076 0 0 1-2.4179.4368l-.96 1.4951c.3821.3619.5043.9206.3083 1.409-.2639.6575-1.0107.9765-1.6682.7127-.6575-.2639-.9765-1.0107-.7127-1.6682.2639-.6575 1.0107-.9765 1.6682-.7127l.96-1.4963a2.0736 2.0736 0 0 1-.7008-2.1215l-2.0627-.8087a.9598.9598 0 0 1-.873.3903c-.5275-.0534-.9118-.5243-.8583-1.0518.0534-.5275.5243-.9117 1.0518-.8583.5275.0534.9118.5243.8583 1.0518v.0204l2.0603.81c.5027-.9713 1.6739-1.3843 2.6747-.9432l.9695-1.6643a1.0355 1.0355 0 0 1-.2804-1.0488c.1638-.548.7408-.8594 1.2887-.6956.548.1638.8594.7408.6956 1.2887-.1638.548-.7408.8594-1.2887.6956l-.9731 1.6643c.8459.633 1.0815 1.8004.5472 2.7119l1.1999.8928a1.5195 1.5195 0 0 1 .7612-.404c.8222-.167 1.6241.3642 1.7911 1.1864h-.0013z\"},\"child\":[]}]})(props);\n};\nexport function SiSvgtrace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.4602 2.9425c-.5626.1289-1.087.4605-1.4268.902-.1981.2576-.3965.6748-.4631.9742l-.054.2429H3.5794v-.5451c0-.6036-.0258-.7113-.1944-.811-.0858-.0505-.2419-.056-1.6282-.056H.2234l-.1116.1117L0 3.873v3.125l.0958.1073.0958.1072 1.5378.008c1.6822.009 1.6406.0134 1.775-.186.0706-.1047.0749-.1428.0749-.6644v-.5534h3.9553l-.3769.1912c-.8331.4228-1.4973.8874-2.0969 1.467-.628.607-1.088 1.2325-1.4461 1.9655-.1896.3882-.444 1.0768-.5266 1.425-.0339.143-.053.1724-.1127.1724-.1225 0-.4497.0964-.6247.1842-.822.4118-1.2305 1.3308-.9832 2.2115.2266.8072.977 1.3805 1.8066 1.3805.3291 0 .54-.0497.8615-.2032.6385-.305 1.0542-.9742 1.0542-1.6977 0-.3075-.1065-.6967-.2624-.9592-.1723-.29-.5245-.6142-.802-.7381-.118-.0527-.215-.1143-.2154-.1368s.0651-.2415.1459-.4868c.7245-2.202 2.4014-3.6894 5.14-4.5596.2077-.066.3941-.1256.4143-.1324.021-.007.074.1002.1233.2503.273.8284.919 1.419 1.794 1.6404.3813.0964.9449.0759 1.3297-.0484.7415-.2395 1.368-.8767 1.6089-1.6366l.0697-.2198.3264.1096c1.161.39 2.2134 1.0413 3.129 1.9366 1.0849 1.061 1.8142 2.2829 2.2176 3.7155l.079.2805-.1689.0756c-.7889.353-1.2652 1.2638-1.0914 2.0866.1672.7919.7946 1.396 1.5759 1.5175.8882.138 1.7792-.4011 2.0782-1.2575.3469-.9937-.2055-2.09-1.2146-2.4104-.1409-.0448-.297-.0814-.347-.0814-.0862 0-.0938-.0128-.1506-.2545-.3385-1.4397-1.2326-3.0012-2.3646-4.1292-.5791-.5772-1.4676-1.2477-2.0288-1.531-.1039-.0525-.1888-.1026-.1888-.1114 0-.009.931-.0159 2.0687-.0159h2.0688v1.1811l.0958.1073.0958.1072h3.1565l.1073-.1073.1073-.1074.009-1.5112c.0101-1.661.01-1.6647-.1871-1.781-.0858-.0506-.2419-.056-1.6282-.056h-1.5334l-.1116.1117-.1116.1116v1.1887h-5.9689l-.0223-.149c-.0615-.41-.3043-.8823-.633-1.2318-.3535-.3758-.7755-.6217-1.2647-.737-.2482-.0585-.823-.0592-1.0756-.001m-.0372 9.1302c-.0553.03-.14.1509-.2346.3352-1.723 3.3554-4.1678 8.1776-4.182 8.2486-.0436.218.1804.4549.3969.4198.0567-.009.989-.4191 2.0718-.9109s2.0056-.9086 2.0508-.9263c.0713-.0279.3408.0876 2.0523.8794 1.0836.5014 2.0274.932 2.0974.9572.1543.0554.2997.0178.418-.1082.181-.1926.2654-.003-2.0343-4.5771-1.497-2.9778-2.1337-4.2128-2.2047-4.277-.1137-.1028-.2873-.1192-.4316-.0407\"},\"child\":[]}]})(props);\n};\nexport function SiSwagger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12c6.616 0 12-5.383 12-12S18.616 0 12 0zm0 1.144c5.995 0 10.856 4.86 10.856 10.856 0 5.995-4.86 10.856-10.856 10.856-5.996 0-10.856-4.86-10.856-10.856C1.144 6.004 6.004 1.144 12 1.144zM8.37 5.868a6.707 6.707 0 0 0-.423.005c-.983.056-1.573.517-1.735 1.472-.115.665-.096 1.348-.143 2.017-.013.35-.05.697-.115 1.038-.134.609-.397.798-1.016.83a2.65 2.65 0 0 0-.244.042v1.463c1.126.055 1.278.452 1.37 1.629.033.429-.013.858.015 1.287.018.406.073.808.156 1.2.259 1.075 1.307 1.435 2.575 1.218v-1.283c-.203 0-.383.005-.558 0-.43-.013-.591-.12-.632-.535-.056-.535-.042-1.08-.075-1.62-.064-1.001-.175-1.988-1.153-2.625.503-.37.868-.812.983-1.398.083-.41.134-.821.166-1.237.028-.415-.023-.84.014-1.25.06-.665.102-.937.9-.91.12 0 .235-.017.369-.027v-1.31c-.16 0-.31-.004-.454-.006zm7.593.009a4.247 4.247 0 0 0-.813.06v1.274c.245 0 .434 0 .623.005.328.004.577.13.61.494.032.332.031.669.064 1.006.065.669.101 1.347.217 2.007.102.544.475.95.941 1.283-.817.549-1.057 1.333-1.098 2.215-.023.604-.037 1.213-.069 1.822-.028.554-.222.734-.78.748-.157.004-.31.018-.484.028v1.305c.327 0 .627.019.927 0 .932-.055 1.495-.507 1.68-1.412.078-.498.124-1 .138-1.504.032-.461.028-.927.074-1.384.069-.715.397-1.01 1.112-1.057a.972.972 0 0 0 .199-.046v-1.463c-.12-.014-.204-.027-.291-.032-.536-.023-.804-.203-.937-.71a5.146 5.146 0 0 1-.152-.993c-.037-.618-.033-1.241-.074-1.86-.08-1.192-.794-1.753-1.887-1.786zm-6.89 5.28a.844.844 0 0 0-.083 1.684h.055a.83.83 0 0 0 .877-.78v-.046a.845.845 0 0 0-.83-.858zm2.911 0a.808.808 0 0 0-.834.78c0 .027 0 .05.004.078 0 .503.342.826.859.826.507 0 .826-.332.826-.853-.005-.503-.342-.836-.855-.831zm2.963 0a.861.861 0 0 0-.876.835c0 .47.378.849.849.849h.009c.425.074.853-.337.881-.83.023-.457-.392-.854-.863-.854z\"},\"child\":[]}]})(props);\n};\nexport function SiSwarm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.358 1.216c-1.82.023-4.234 2.581-2.57 6.704.018.034.08.17.091.204h.003c5.172-2.298 4.45-6.287 3.112-6.8a1.71 1.71 0 0 0-.636-.108zM4.001 2.768c-1.867.027-3.392.81-3.874 2.06-.91 2.365 3.07 7.996 12.229 3.93l.004-.003a5.53 5.53 0 0 1-.16-.362C10.193 4.303 6.73 2.728 4 2.768zM15.51 9.432l-.138.034a7.08 7.08 0 0 0-2.153.951c-.949.624-1.786 1.549-2.147 2.641-.097.295-.17.618-.194.928a9.153 9.153 0 0 0 .77 4.451 9.165 9.165 0 0 0 2.681 3.46c.686.544 1.92.887 2.93.887.949 0 1.884-.282 2.725-.71.262-.133.841-.494.879-.52a3.847 3.847 0 0 1-1.378-.663c-1.447-1.107-2.594-2.595-3.409-4.423-.826-1.854-1.163-3.73-1.002-5.575a3.813 3.813 0 0 1 .436-1.46zm3.498.026c-.868 0-1.704.722-1.783 1.623-.132 1.503.166 3.033.824 4.51.648 1.453 1.567 2.683 2.749 3.586a1.73 1.73 0 0 0 1.06.346c.677 0 1.353-.36 1.621-1.002a6.74 6.74 0 0 0-.068-5.356 6.75 6.75 0 0 0-3.891-3.618 1.508 1.508 0 0 0-.512-.089zm-10.05 5.498a28.722 28.722 0 0 0-2.175 4.098c-.023.054-.378.932-.483 1.205a.676.676 0 0 0 .384.86c.273.107 1.164.43 1.22.449a28.93 28.93 0 0 0 4.453 1.12 11.15 11.15 0 0 1-2.442-3.48 11.136 11.136 0 0 1-.958-4.252z\"},\"child\":[]}]})(props);\n};\nexport function SiSway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.785.813a2.11 2.11 0 0 0-.17.012c-.753.076-1.484.31-2.209.52-.742.221-1.459.52-2.148.888-.52.275-1.234.763-1.537 1.272-.193.31-.181.766.117.976.07.059.17.1.264.123.87.21 2.342-.794 3.002-1.115.846-.415 1.729-.732 2.587-1.117.328-.146 1.4-.484 1.407-.963.02-.521-.849-.61-1.313-.596Zm6.51.615c-.796-.006-1.606.104-2.37.162-1.395.106-2.816.584-4.048 1.168-.146.076-.297.145-.443.233-.34.193-.648.403-.881.666-.783.925-.295 1.598.54 1.988.284.132.605.231.932.297.38.076.766.109 1.102.092.11-.006.224-.018.336-.025l.004.02c.11.379.45.671.83.794.38.123.794.117 1.185.094a12.986 12.986 0 0 0 4.147-.975c.269-.105.52-.223.713-.433.175-.216.273-.52.144-.778-.157-.31-.548-.39-.886-.402-.231-.01-.458.004-.684.027.031-.02.063-.04.094-.062.438-.321 1.43-.906 1.675-1.338.328-.578-.36-1.184-.986-1.354a5.55 5.55 0 0 0-1.404-.173Zm-9.51 3.627c-.027 0-.056 0-.084.002C9.73 5.12 8.353 6.164 8.025 6.8c-.455.9.782 1.449 1.524 1.186.765-.263 1.91-1.196 2.039-2.043.04-.274-.052-.596-.297-.754a.895.895 0 0 0-.506-.133Zm-3.933.928c-.597.009-1.518.884-1.793 1.139-.485.444-.469.834.326.834.66-.012 1.349-.45 1.74-.922.146-.181.275-.403.21-.613-.074-.294-.229-.42-.427-.436a.571.571 0 0 0-.056-.002zm6.187.184c-.175.838-.77 1.52-1.504 2.076-1.185.9-2.55 1.535-3.847 2.265-2.001 1.138-4.058 2.834-4.596 5.126a5.076 5.076 0 0 0-.137 1.376c.023.307.273.46.514.46.06 0 .12-.009.176-.028a.41.41 0 0 0 .28-.431 4.605 4.605 0 0 1 .005-.489 4.36 4.36 0 0 1 .297-1.332c.237-.604.6-1.146 1.044-1.636a7.698 7.698 0 0 1 .47-.473c.163-.153.336-.3.513-.442a11.999 11.999 0 0 1 .545-.414c.372-.266.76-.514 1.148-.748.047.03.1.057.166.07 2.269.474 4.626.158 6.672-.84-.093.002-.186.005-.28.003a8.773 8.773 0 0 1-.456-.022 5.787 5.787 0 0 1-.453-.053 1.361 1.361 0 0 1-.592-.246 9.344 9.344 0 0 1-3.793.368l.426-.237c1.75-.955 3.85-2.145 4.308-4.086a5.173 5.173 0 0 1-.718-.193 4.59 4.59 0 0 1-.188-.074zm6.615 1.146c-1.57.024-3.16.415-4.527 1.21-.013.006-.024.017-.037.024a8.69 8.69 0 0 0-1.451.606c-.257.14-.543.374-.467.648.062.214.305.304.531.342.028.005.056.013.082.016a7.61 7.61 0 0 0 2.037-.037 7.736 7.736 0 0 0 1.579-.409c.257-.093.52-.221.625-.478a.502.502 0 0 0 .03-.192 7.18 7.18 0 0 0 1.91-.87c.18-.117.378-.298.349-.52-.041-.263-.38-.352-.66-.34zm.655 2.256c-1.14.03-2.77.796-3.26 1.11-.263.169-.543.426-.484.73.052.327.444.479.783.52.823.105 4.672-.316 4.058-1.835-.162-.401-.58-.539-1.097-.525Zm-5.641 4.258a6.862 6.862 0 0 0-1.375.117c-1.022.204-1.997.583-3.014.752-.876.134-1.715-.139-2.615-.127-.942.014-1.886.167-2.8.424a4.182 4.182 0 0 0-.116.24 3.913 3.913 0 0 0-.322 1.756.943.943 0 0 1-.01.18.901.901 0 0 1-.312.578c-.324.273-.819.292-1.176.074a.972.972 0 0 1-.469-.748c-.001-.026 0-.052-.002-.078a5.285 5.285 0 0 1 .01-.572c.013-.19.036-.38.068-.569-.262.098-.528.19-.795.281-.266.092-.533.183-.795.28-.152.052-.945.361-.945.361l11.992 4.566 12.002-4.564.006-.002c-.053-.023-.094-.03-.146-.053-1.759-.671-3.463-1.285-5.215-1.974a18.547 18.547 0 0 0-.97-.356c-.976-.326-1.979-.552-3.001-.566ZM0 17.31v1.3l11.992 4.577 12.002-4.578v-1.297l-12.002 4.565L0 17.31Z\"},\"child\":[]}]})(props);\n};\nexport function SiSwc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.063 7.797a.99.99 0 0 0-.7 1.69l3.987 3.986a.42.42 0 0 1 .093.48.42.42 0 0 1-.408.272.44.44 0 0 1-.312-.13L4.135 8.509a2.405 2.405 0 0 0-1.711-.71c-.507 0-.99.152-1.395.436a2.443 2.443 0 0 0-.994 2.403c.084.487.32.934.678 1.293L2.25 13.47c.183.183.14.379.098.48a.422.422 0 0 1-.409.274h-.695a.987.987 0 1 0 0 1.976h.705c.507 0 .987-.149 1.393-.433a2.449 2.449 0 0 0 .994-2.405 2.403 2.403 0 0 0-.678-1.293l-1.54-1.54a.42.42 0 0 1-.096-.483.42.42 0 0 1 .408-.272c.116 0 .226.045.31.13l5.588 5.587a2.405 2.405 0 0 0 1.711.71 2.379 2.379 0 0 0 1.996-1.048l.342.34a2.404 2.404 0 0 0 1.71.711h.05a2.41 2.41 0 0 0 1.392-.435c.374-.265.664-.631.842-1.059.176-.43.232-.896.152-1.346a2.403 2.403 0 0 0-.677-1.293l-1.541-1.539a.42.42 0 0 1-.096-.482.422.422 0 0 1 .408-.274h1.053a2.402 2.402 0 0 0-.008.862c.084.487.32.934.678 1.293l3.562 3.562a2.406 2.406 0 0 0 1.711.711c1.316 0 2.39-1.07 2.387-2.389a.99.99 0 1 0-1.979 0 .409.409 0 0 1-.408.409.436.436 0 0 1-.31-.13l-3.563-3.562a.422.422 0 0 1-.097-.482.422.422 0 0 1 .408-.274h.593a.987.987 0 1 0 0-1.976h-4.027c-.507 0-.989.15-1.394.435a2.443 2.443 0 0 0-.994 2.403c.084.487.319.934.677 1.293l1.537 1.54a.42.42 0 0 1 .096.483.417.417 0 0 1-.406.271h-.05a.436.436 0 0 1-.311-.128l-2.022-2.02-.004-.006-3.984-3.982a.991.991 0 0 0-.7-.291zm-4.64.867c.416 0 .806.16 1.1.455l5.59 5.588c.247.247.575.383.924.383a1.29 1.29 0 0 0 1.209-.807c.205-.497.1-1.04-.281-1.422L6.976 8.875a.12.12 0 0 1 0-.174c.05-.05.127-.05.176 0l6.006 6.006c.247.247.575.383.924.383h.05a1.29 1.29 0 0 0 1.21-.807 1.288 1.288 0 0 0-.285-1.424l-1.541-1.54a1.53 1.53 0 0 1-.336-1.694 1.533 1.533 0 0 1 1.437-.959h4.027c.07 0 .124.054.124.123 0 .07-.054.123-.124.123h-.593a1.29 1.29 0 0 0-1.21.807 1.288 1.288 0 0 0 .286 1.424l3.562 3.564c.248.247.576.383.924.383.702 0 1.274-.571 1.274-1.273 0-.07.055-.124.125-.124.069 0 .123.054.123.124a1.52 1.52 0 0 1-1.522 1.519c-.415 0-.805-.16-1.1-.455l-3.562-3.563a1.53 1.53 0 0 1-.336-1.693 1.56 1.56 0 0 1 .586-.713h-2.584a1.29 1.29 0 0 0-1.209.807 1.284 1.284 0 0 0 .283 1.424l1.541 1.54a1.53 1.53 0 0 1 .336 1.694 1.53 1.53 0 0 1-1.435.959h-.051c-.415 0-.805-.16-1.1-.455l-1.422-1.42c.065.3.034.614-.09.916a1.53 1.53 0 0 1-1.435.959c-.415 0-.807-.16-1.102-.455L3.346 9.293a1.297 1.297 0 0 0-.924-.383 1.29 1.29 0 0 0-1.21.807 1.288 1.288 0 0 0 .284 1.424l1.54 1.54a1.53 1.53 0 0 1 .337 1.694 1.53 1.53 0 0 1-1.436.959h-.693c-.07 0-.123-.054-.123-.123s.054-.123.123-.123h.695a1.29 1.29 0 0 0 1.21-.807 1.284 1.284 0 0 0-.286-1.423l-1.539-1.541a1.53 1.53 0 0 1-.336-1.692c.245-.593.793-.96 1.436-.96z\"},\"child\":[]}]})(props);\n};\nexport function SiSwift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.508 0c-.287 0-.573 0-.86.002-.241.002-.483.003-.724.01-.132.003-.263.009-.395.015A9.154 9.154 0 0 0 4.348.15 5.492 5.492 0 0 0 2.85.645 5.04 5.04 0 0 0 .645 2.848c-.245.48-.4.972-.495 1.5-.093.52-.122 1.05-.136 1.576a35.2 35.2 0 0 0-.012.724C0 6.935 0 7.221 0 7.508v8.984c0 .287 0 .575.002.862.002.24.005.481.012.722.014.526.043 1.057.136 1.576.095.528.25 1.02.495 1.5a5.03 5.03 0 0 0 2.205 2.203c.48.244.97.4 1.498.495.52.093 1.05.124 1.576.138.241.007.483.009.724.01.287.002.573.002.86.002h8.984c.287 0 .573 0 .86-.002.241-.001.483-.003.724-.01a10.523 10.523 0 0 0 1.578-.138 5.322 5.322 0 0 0 1.498-.495 5.035 5.035 0 0 0 2.203-2.203c.245-.48.4-.972.495-1.5.093-.52.124-1.05.138-1.576.007-.241.009-.481.01-.722.002-.287.002-.575.002-.862V7.508c0-.287 0-.573-.002-.86a33.662 33.662 0 0 0-.01-.724 10.5 10.5 0 0 0-.138-1.576 5.328 5.328 0 0 0-.495-1.5A5.039 5.039 0 0 0 21.152.645 5.32 5.32 0 0 0 19.654.15a10.493 10.493 0 0 0-1.578-.138 34.98 34.98 0 0 0-.722-.01C17.067 0 16.779 0 16.492 0H7.508zm6.035 3.41c4.114 2.47 6.545 7.162 5.549 11.131-.024.093-.05.181-.076.272l.002.001c2.062 2.538 1.5 5.258 1.236 4.745-1.072-2.086-3.066-1.568-4.088-1.043a6.803 6.803 0 0 1-.281.158l-.02.012-.002.002c-2.115 1.123-4.957 1.205-7.812-.022a12.568 12.568 0 0 1-5.64-4.838c.649.48 1.35.902 2.097 1.252 3.019 1.414 6.051 1.311 8.197-.002C9.651 12.73 7.101 9.67 5.146 7.191a10.628 10.628 0 0 1-1.005-1.384c2.34 2.142 6.038 4.83 7.365 5.576C8.69 8.408 6.208 4.743 6.324 4.86c4.436 4.47 8.528 6.996 8.528 6.996.154.085.27.154.36.213.085-.215.16-.437.224-.668.708-2.588-.09-5.548-1.893-7.992z\"},\"child\":[]}]})(props);\n};\nexport function SiSwiggy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.034 24c-.376-.411-2.075-2.584-3.95-5.513-.547-.916-.901-1.63-.833-1.814.178-.48 3.355-.743 4.333-.308.298.132.29.307.29.409 0 .44-.022 1.619-.022 1.619a.441.441 0 1 0 .883-.002l-.005-2.939c0-.255-.278-.319-.331-.329-.511-.002-1.548-.006-2.661-.006-2.457 0-3.006.101-3.423-.172-.904-.591-2.383-4.577-2.417-6.819C3.849 4.964 5.723 2.225 8.362.868A8.13 8.13 0 0 1 12.026 0c4.177 0 7.617 3.153 8.075 7.209l.001.011c.084.981-5.321 1.189-6.39.904-.164-.044-.206-.212-.206-.284L13.5 4.996a.442.442 0 0 0-.884.002l.009 3.866a.33.33 0 0 0 .268.32l3.354-.001c1.79 0 2.542.207 3.042.588.333.254.461.739.349 1.37C18.633 16.755 12.273 23.71 12.034 24z\"},\"child\":[]}]})(props);\n};\nexport function SiSwiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm4.884 17.908a4.328 4.328 0 0 1-1.092 1.488 4.817 4.817 0 0 1-1.644.936c-.632.216-1.308.324-2.028.324s-1.368-.1-1.944-.3c-.576-.2-1.088-.464-1.536-.792s-.832-.704-1.152-1.128a6.563 6.563 0 0 1-.768-1.284l1.68-1.008c.144.336.332.66.564.972.232.312.5.588.804.828a3.697 3.697 0 0 0 2.328.792c.4 0 .788-.056 1.164-.168.376-.112.708-.28.996-.504.288-.224.52-.5.696-.828.176-.328.264-.716.264-1.164 0-.432-.084-.804-.252-1.116a2.955 2.955 0 0 0-.684-.84 5 5 0 0 0-1.032-.672c-.4-.2-.832-.412-1.296-.636a44.725 44.725 0 0 1-1.644-.816 7.592 7.592 0 0 1-1.488-1.008 4.752 4.752 0 0 1-1.068-1.332c-.272-.504-.408-1.092-.408-1.764 0-.56.104-1.116.312-1.668a4.474 4.474 0 0 1 .912-1.476c.4-.432.9-.784 1.5-1.056s1.3-.408 2.1-.408c.592 0 1.14.076 1.644.228a5.98 5.98 0 0 1 2.412 1.38c.304.288.552.568.744.84l-1.512 1.224a4.172 4.172 0 0 0-1.284-1.188 4.204 4.204 0 0 0-.924-.408 3.634 3.634 0 0 0-1.08-.156c-.464 0-.868.072-1.212.216a2.692 2.692 0 0 0-.876.576c-.24.24-.42.516-.54.828-.12.312-.18.628-.18.948 0 .4.088.748.264 1.044.176.296.424.572.744.828s.712.504 1.176.744c.464.24.984.488 1.56.744.64.288 1.22.588 1.74.9.52.312.96.652 1.32 1.02.36.368.636.784.828 1.248.192.464.288 1.008.288 1.632 0 .736-.132 1.396-.396 1.98z\"},\"child\":[]}]})(props);\n};\nexport function SiSwr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12.187a2.659 2.659 0 0 0 2.648 2.647 2.662 2.662 0 0 0 2.647-2.646v-.376a1.097 1.097 0 0 1 1.092-1.086c.326 0 .636.147.844.399h1.712a2.66 2.66 0 0 0-2.558-1.959 2.664 2.664 0 0 0-2.647 2.647v.374c0 .598-.493 1.09-1.091 1.09a1.096 1.096 0 0 1-1.09-1.09.314.314 0 0 0-.312-.312H.311a.313.313 0 0 0-.311.312Zm10.131 2.647a2.664 2.664 0 0 1-2.555-1.96h1.71a1.088 1.088 0 0 0 1.935-.683v-.379a2.663 2.663 0 0 1 2.648-2.646 2.65 2.65 0 0 1 2.647 2.591l.008.43a1.097 1.097 0 0 0 1.092 1.086c.326 0 .636-.146.843-.399h1.712a2.657 2.657 0 0 1-2.556 1.96 2.66 2.66 0 0 1-2.648-2.646l-.008-.389v-.017a1.096 1.096 0 0 0-1.09-1.059 1.096 1.096 0 0 0-1.09 1.09v.374a2.663 2.663 0 0 1-2.648 2.647Zm10.376-3.708a1.09 1.09 0 0 1 1.936.683v.004c0 .171.14.312.311.312h.935a.313.313 0 0 0 .311-.312 2.663 2.663 0 0 0-2.648-2.647 2.659 2.659 0 0 0-2.557 1.96h1.712Z\"},\"child\":[]}]})(props);\n};\nexport function SiSymantec (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.877 0v.738h.738V0h-.738zm0 .738h-.738v.739h.738V.738zm0 .739v.738h.738v-.738h-.738zm-.738 0h-1.477v.738h-.738V3.69h-.738v.74h-1.479v.725A10.572 10.572 0 0011 2.77C5.136 2.77.385 7.52.385 13.385.385 19.248 5.136 24 11 24s10.615-4.752 10.615-10.615c0-2.56-.904-4.906-2.412-6.739h.72v-.738h.74V4.43h.737V3.69h.739v-.738H21.4v-.738h.739v-.738zM19.186 3.69v-.738h-.74v.738h.74zM11 6.154a7.193 7.193 0 014.033 1.23h-.28v.739h-.737c-1.927 2.409-2.414 3.466-3.182 5.414-.871-1.763-1.911-2.978-3.711-3.783l-.02-.006c-.327-.083-.493-.125-.718.19-.23.322-.092.613.183.955a35.212 35.212 0 00.586.703c.547.646 1.095 1.289 1.508 2.035.408.738.877 1.772 1.242 2.574.223.49.406.894.51 1.088.22.406.752.584.955.584.985-.117 1.08-.582 1.242-1.379l.057-.264c.336-1.574.771-3.203 2.824-5.158v-.736h.738V9.6h.74v-.295a7.193 7.193 0 011.26 4.08c0 3.99-3.24 7.23-7.23 7.23s-7.2-3.24-7.2-7.23 3.21-7.23 7.2-7.23z\"},\"child\":[]}]})(props);\n};\nexport function SiSymbolab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.382 0C1.513 0 0 1.547 0 3.455v17.09C0 22.451 1.513 24 3.382 24h17.236C22.487 24 24 22.452 24 20.544V3.454C24 1.548 22.485 0 20.618 0zm4.541 6.789c.85 0 1.552.152 2.104.456s.827.68.826 1.132c0 .324-.097.578-.29.764s-.467.276-.81.276c-.192 0-.505-.063-.937-.188s-.76-.19-.98-.19c-.364 0-.653.085-.87.255a.808.808 0 0 0-.324.67c0 .437.477.806 1.431 1.107l.518.161c1.029.345 1.777.779 2.248 1.304s.708 1.177.712 1.958c-.006 1.077-.392 1.949-1.156 2.615S8.622 18.11 7.373 18.11c-.959 0-1.778-.172-2.457-.517s-1.018-.748-1.018-1.21c-.012-.3.108-.592.328-.797s.512-.302.881-.302c.182 0 .563.09 1.144.273s1.07.274 1.468.274c.318.01.627-.106.864-.319a1.03 1.03 0 0 0 .347-.789 1.04 1.04 0 0 0-.357-.82c-.237-.206-.744-.426-1.52-.663-1.127-.335-1.914-.732-2.36-1.192s-.671-1.079-.67-1.856c0-.999.361-1.816 1.085-2.452s1.662-.952 2.815-.951zm6.338 2.886c.254-.01.504.078.697.245.178.163.349.465.512.908l1.344 3.592 1.465-3.793a1.85 1.85 0 0 1 .432-.723.9.9 0 0 1 .63-.229 1.17 1.17 0 0 1 .848.307c.21.204.314.48.314.83a1.55 1.55 0 0 1-.05.374l-.004.002a3.494 3.494 0 0 1-.146.45l-3.626 8.619c-.152.363-.308.617-.465.757a.841.841 0 0 1-.577.21c-.363 0-.65-.104-.862-.31s-.32-.486-.321-.841c0-.137.017-.273.051-.405.036-.143.085-.282.148-.414l.98-2.125-2.404-5.607a1.341 1.341 0 0 1-.09-.292 2.155 2.155 0 0 1-.028-.374 1.154 1.154 0 0 1 .332-.84c.214-.223.511-.348.82-.341z\"},\"child\":[]}]})(props);\n};\nexport function SiSymfony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.628-5.372 12-12 12S0 18.628 0 12 5.372 0 12 0s12 5.372 12 12zm-6.753-7.561c-1.22.042-2.283.715-3.075 1.644-.878 1.02-1.461 2.229-1.881 3.461-.753-.614-1.332-1.414-2.539-1.761-.966-.297-2.015-.105-2.813.514-.41.319-.71.757-.861 1.254-.36 1.176.381 2.225.719 2.6l.737.79c.15.154.519.56.339 1.138-.193.631-.951 1.037-1.732.799-.348-.106-.848-.366-.734-.73.045-.15.152-.263.21-.391.052-.11.077-.194.095-.242.141-.465-.053-1.07-.551-1.223-.465-.143-.939-.03-1.125.566-.209.68.117 1.913 1.86 2.449 2.04.628 3.765-.484 4.009-1.932.153-.907-.255-1.582-1.006-2.447l-.612-.677c-.371-.37-.497-1.002-.114-1.485.324-.409.785-.584 1.539-.379 1.103.3 1.594 1.063 2.412 1.68-.338 1.11-.56 2.223-.759 3.222l-.123.746c-.585 3.07-1.033 4.757-2.194 5.726-.234.166-.57.416-1.073.434-.266.005-.352-.176-.355-.257-.006-.184.15-.271.255-.353.154-.083.39-.224.372-.674-.016-.532-.456-.994-1.094-.973-.477.017-1.203.465-1.176 1.286.028.85.819 1.485 2.012 1.444.638-.021 2.062-.281 3.464-1.949 1.633-1.911 2.09-4.101 2.434-5.706l.383-2.116c.213.024.441.042.69.048 2.032.044 3.049-1.01 3.064-1.776.01-.464-.304-.921-.744-.91-.386.009-.718.278-.806.654-.094.428.646.813.068 1.189-.41.266-1.146.452-2.184.3l.188-1.042c.386-1.976.859-4.407 2.661-4.467.132-.007.612.006.623.323.003.105-.022.134-.147.375-.115.155-.174.345-.168.537.017.504.4.836.957.816.743-.023.955-.748.945-1.119-.032-.874-.952-1.424-2.17-1.386z\"},\"child\":[]}]})(props);\n};\nexport function SiSymphony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.471 8.118v-4.22c0-.864-.468-1.677-1.22-2.12C18.124 1.113 15.684 0 12 0S5.876 1.113 4.75 1.777a2.476 2.476 0 0 0-1.22 2.12v6.338l13.412 3.882v2.824c0 .382-.24.65-.648.849L12 19.941l-4.315-2.162c-.386-.188-.626-.456-.626-.838v-2.118L3.53 13.764v3.177c0 1.744 1 3.228 2.588 4.001L12 24l5.86-3.047c1.61-.784 2.61-2.268 2.61-4.011v-5.294L7.059 7.765V4.542C8.017 4.08 9.651 3.529 12 3.529c2.349 0 3.983.55 4.941 1.013v2.517l3.53 1.059z\"},\"child\":[]}]})(props);\n};\nexport function SiSympy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.836 17.793a.55.55 0 0 0 .087-.281c.004-.11-.024-.183-.083-.221-.054-.04-.122-.044-.202-.012a.51.51 0 0 0-.216.18.542.542 0 0 0-.094.293c-.008.224.064.37.215.44.156.067.338.06.546-.025.383-.154.697-.476.943-.966.24-.466.374-.953.4-1.458.162.948-.068 1.997-.646 2.765a2.99 2.99 0 0 1-.672.39l-1 .3a7.28 7.28 0 0 1-.493.082v-5.656c.828.222 1.664.468 2.272 1.015l-.045 1.278c-.042 1.188-.293 1.875-.75 2.06-.185.074-.337.076-.456.005a.554.554 0 0 0 .194-.19zm.366-11.578c-.128-.045-.388-.114-.55-.157-.234-.062-.537-.142-.696-.157a1.46 1.46 0 0 0-.48.03c-.073.02-.26.083-.041.16.124.047.31.096.517.15.158.043.456.122.633.154.25.045.484.017.595-.012.092-.024.246-.086.022-.168zm4.53-1.354c.255.04.521.08.783.135l.995.348-2.996.9-5.066 1.52-2.7-.81c.065-.183.153-.358.26-.52l2.832.835.575-.168-.405-.12-.363.106L6.08 6.33a2.33 2.33 0 0 1 .64-.602c1.519-.953 3.292-1.206 4.98-1.172l2.794.826-.363.106.406.12.575-.168-2.93-.866c.765.04 1.507.13 2.193.232zm-4.65 1.103c-.28-.074-.967-.255-1.708-.06-.74.194-.062.376.22.45.283.075.948.25 1.69.056.737-.193.084-.37-.203-.446zm3.748-.5l-.135-.035-.43.113-1.651-.438a.264.264 0 0 0-.172-.003c-.034.01-.04.01-.048.023-.073.105-.39.188-.455.205l-.06.016.134.036.06-.016c.05-.013.216-.058.343-.12l1.482.393-.426.11.135.037c.127-.038.453-.123.603-.163.15-.04.476-.124.62-.158zM8.62 9.542c.13.034.26.07.386.11.674.153 1.37.336 2.044.58.037-.47.166-.925.387-1.36.25-.49.567-.814.95-.968.208-.084.388-.09.54-.022.155.067.23.213.221.437a.536.536 0 0 1-.102.304.467.467 0 0 1-.207.168c-.08.032-.15.032-.21 0-.054-.04-.08-.118-.076-.233a.55.55 0 0 1 .087-.28.548.548 0 0 1 .195-.19c-.12-.07-.27-.069-.455.005-.46.185-.71.87-.751 2.06l-.01.303c.721.308 1.403.7 1.99 1.217v-.796c0-.282-.03-.312-.305-.227v-.178l.563-.24v1.682c.293.293.557.622.783.995.156.252.273.516.362.79.11-.193.166-.517.21-.796l.09-.55c.035-.225.082-.52.082-.659 0-.23-.074-.34-.188-.304-.156.05-.36.337-.465.864-.02.098-.02.104-.07.12-.02.006-.06.018-.06-.04 0-.13.212-.95.603-1.072.098-.03.29-.044.375.274.04-.12.168-.443.383-.51.113-.036.34-.038.34.255 0 .224-.12.343-.192.365-.102.032-.137-.067-.137-.14 0 0 0-.219.156-.326-.063-.06-.16-.03-.172-.027-.184.057-.29.407-.344.723l-.133.83c-.03.204-.074.465-.074.603 0 .3.106.335.184.31.164-.05.36-.336.465-.863.02-.098.023-.105.07-.12.027-.01.06-.018.06.04 0 .114-.2.947-.603 1.072-.102.032-.293.028-.37-.275-.039.11-.097.24-.174.344.2.673.242 1.392.284 2.095.01.148.017.294.027.439v.007c.01.342-.003.667-.036.977l1.57-.471V5.588L8.62 8.07zM2.73 8.306l-.146-.044.15.356a4.06 4.06 0 0 1-.005-.312zM8.274 19.32v-5.79a19.334 19.334 0 0 1-.462-.13c-1.38-.314-2.726-1.096-3.894-2.26a2.85 2.85 0 0 1-.182-.164l.656 1.547c.026.058.062.132.062.194 0 0 0 .075-.08.176l-2.213 2.888 2.434.741c1.385.42 1.984.265 2.143-1.781l.22.067-.247 2.884-4.895-1.49c-.132-.04-.22-.067-.22-.205 0-.038 0-.063.088-.174l2.1-2.76-2.197-5.207c0-.288.018-.283.23-.22l.93.285c.045-.488.157-.97.322-1.414L0 5.588v11.277l8.204 2.46zm0-9.862V8.07L5.66 7.286c-.06.33-.06.785.214 1.215.566.548 1.373.728 2.154.9zM3.398 5.661L2.19 5.304l.575-.168.406.12-.363.106.644.19c.1-.19.21-.37.332-.538l-.09-.024.06-.016.073-.02a3.84 3.84 0 0 1 1.798-1.342c1.04-.456 2.195-.733 3.538-.84l-.716-.25-8.062 2.82 2.798.84a4.59 4.59 0 0 1 .214-.52zm17.455.147a.145.145 0 0 0-.145.146.145.145 0 0 0 .145.145.145.145 0 0 0 .144-.146.14.14 0 0 0-.043-.103.139.139 0 0 0-.1-.042zm-.89 1.76a.106.106 0 0 1-.038.077.16.16 0 0 1-.108.04c-.078 0-.145-.053-.145-.116 0-.037.023-.063.037-.076a.16.16 0 0 1 .108-.04c.08 0 .145.053.145.115zm3.313 1.245c-.3 0-.397-.13-.53-.31a52.78 52.78 0 0 0-.319-.409c.21-.316.174-.683-.104-1-.226-.262-.407-.606-.58-.938-.195-.368-.395-.75-.648-1.003-.212-.212-.65-.45-1.177-.642-.864.145-1.588.158-2.5-.21-1.663-.703-3.578-1.106-5.693-1.2-2.47-.138-4.366.126-5.965.83l-.015.005C4.667 4.31 3.81 5.26 3.45 6.48a.075.075 0 0 1-.005.016c-.577 1.43-.584 3.342.7 4.385a.154.154 0 0 1 .012.012c1.125 1.124 2.418 1.876 3.74 2.176a21.66 21.66 0 0 0 .668.186c1.085.29 2.207.59 2.918 1.52.008.01.014.02.02.033.573 1.243.39 2.822-.455 3.93a.206.206 0 0 1-.03.03c-.634.508-1.57.807-2.855.912-.02.002-.04 0-.06-.006a150.044 150.044 0 0 1-2.6-.748c-.867-.254-1.762-.517-2.584-.743a6.03 6.03 0 0 1-.554-.17l.144.182c.225.286.566.718.714.845l.007.006c1.33 1.274 2.46 1.73 3.967 2.09 1.894.439 3.556.56 5.506-.273 1.633-1.02 2.37-2.447 2.316-4.49-.01-.145-.02-.292-.027-.439-.058-.99-.12-2.01-.632-2.843-1.16-1.907-3.398-2.64-5.434-3.103a.057.057 0 0 1-.014-.004c-.306-.098-.623-.168-.96-.243-.833-.186-1.696-.378-2.333-1.006a.123.123 0 0 1-.023-.028C5.303 8.26 5.212 7.7 5.34 7.13a2.753 2.753 0 0 1 1.2-1.696c2.454-1.542 5.506-1.329 7.89-.97l.354.056c.82.126 1.84.283 2.462.877a.172.172 0 0 1 .053.13c-.015.48.163.723.37 1.005.133.184.285.393.387.678.33.805 1.12.905 1.955 1.01.337.044.686.088 1 .183a.275.275 0 0 1 .035.015c.433.248.91.127 1.206-.128.093.118.262.335.284.365.13.176.278.374.624.41.005.087-.001.185-.006.28a3.58 3.58 0 0 0-.008.206h.259c0-.058.004-.122.008-.19.006-.096.011-.194.007-.288h.309L24 9.07v-.258zM5.666 19.418c0 .15-.322.27-.72.27-.4 0-.722-.12-.722-.27 0-.15.323-.27.72-.27.4 0 .723.12.723.27zm2.555.997c0 .235-.315.426-.703.426-.39 0-.704-.19-.704-.425 0-.236.315-.427.703-.427.388 0 .704.19.704.426zm3.534.108c0 .283-.343.513-.767.513s-.768-.23-.768-.512c0-.284.343-.514.767-.514s.768.228.768.513zm1.21-1.177c-.353 0-.64-.3-.64-.67 0-.37.287-.67.64-.67.353 0 .64.3.64.67a.655.655 0 0 1-.64.67zm.641-4.023c.37 0 .67.368.67.823 0 .455-.3.823-.67.823-.37 0-.67-.368-.67-.823 0-.455.3-.823.67-.823zm-1.402-2.926c.404 0 .73.34.73.762 0 .42-.326.762-.73.762-.404 0-.731-.34-.731-.762 0-.42.327-.762.731-.762zm-4.206-.853c0-.438.396-.792.884-.792s.884.355.884.792c0 .438-.395.793-.883.793s-.884-.354-.885-.792zM3.853 7.23c0-.286.246-.518.55-.518.302 0 .548.232.548.518 0 .286-.247.518-.55.518-.303 0-.548-.232-.548-.518zm1.574 1.943a.72.72 0 0 1 .73.708.72.72 0 0 1-.73.708.72.72 0 0 1-.73-.708.72.72 0 0 1 .73-.708zm.68-3.937c0 .252-.231.457-.517.457-.286 0-.518-.204-.518-.457 0-.252.232-.457.518-.457.286 0 .518.204.518.457zm1.7-1.088c0 .185-.191.336-.426.337-.236 0-.427-.15-.427-.336 0-.186.19-.336.426-.337.236.001.427.151.427.336zm1.95-.475c0 .168-.162.305-.364.305-.202 0-.366-.136-.366-.304 0-.169.163-.306.365-.306.202 0 .366.136.366.305zm2.178-.078c0 .135-.15.244-.335.244-.185 0-.335-.109-.336-.243 0-.136.15-.244.335-.244.185 0 .335.107.336.243zm1.592.382c-.144 0-.26-.1-.26-.226 0-.125.116-.226.26-.226.144 0 .26.101.26.226s-.117.226-.26.226zm2.11.118c0 .118-.12.213-.273.214-.15 0-.274-.095-.275-.213 0-.119.122-.214.274-.215.152 0 .275.095.275.214zm1.565.745c-.1 0-.183-.096-.183-.213 0-.118.082-.214.183-.214.1 0 .183.097.183.214 0 .117-.082.213-.183.213zm3.02 2.73a.358.358 0 0 1-.124.268.42.42 0 0 1-.28.104c-.223 0-.404-.167-.405-.372a.36.36 0 0 1 .123-.27.42.42 0 0 1 .28-.104c.224 0 .404.167.405.373h-.13zm1.035-1.616a.404.404 0 0 1-.403.405.405.405 0 0 1-.287-.69.405.405 0 0 1 .285-.118.4.4 0 0 1 .286.118.394.394 0 0 1 .12.285z\"},\"child\":[]}]})(props);\n};\nexport function SiSyncthing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm0 2.412c3.115 0 5.885 1.5 7.629 3.815a1.834 1.834 0 0 1 1.564 3.162c.23.818.354 1.68.354 2.57a9.504 9.504 0 0 1-2.166 6.05c.128.281.189.595.162.92a1.854 1.854 0 0 1-2.004 1.678 1.86 1.86 0 0 1-.877-.322A9.486 9.486 0 0 1 12 21.505c-3.84 0-7.154-2.277-8.668-5.552-.3-.01-.601-.092-.879-.254-.858-.51-1.144-1.634-.633-2.513.164-.276.39-.493.653-.643a9.62 9.62 0 0 1-.02-.584c0-5.265 4.282-9.547 9.547-9.547zm0 1.227a8.311 8.311 0 0 0-8.31 8.683c.22.036.439.111.644.23.323.2.564.484.713.805l6.984-.644a1.78 1.78 0 0 1 .787-1.08c.288-.19.612-.286.936-.295.34-.01.68.08.978.254l3.51-2.914a1.82 1.82 0 0 1 .317-1.84A8.3 8.3 0 0 0 12 3.638zm7.027 5.98-3.502 2.91a1.829 1.829 0 0 1-.23 1.719l1.904 2.744c.212-.06.436-.085.668-.066.238.024.46.092.66.193a8.285 8.285 0 0 0 1.793-5.16 8.38 8.38 0 0 0-.265-2.092 1.835 1.835 0 0 1-1.028-.248zm-6.886 4.315-6.975.644a1.8 1.8 0 0 1-.66 1.004A8.312 8.312 0 0 0 12 20.279a8.294 8.294 0 0 0 3.938-.986 1.845 1.845 0 0 1-.075-.69c.028-.341.148-.65.332-.908L14.29 14.95a1.839 1.839 0 0 1-2.148-1.015z\"},\"child\":[]}]})(props);\n};\nexport function SiSynology (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.44 8.927l-.889.37.056.117a.623.623 0 0 1 .212-.054c.05 0 .093.017.126.046.033.028.058.081.072.16.015.08.022.29.022.634v2.736c0 .189-.013.316-.042.381a.295.295 0 0 1-.118.142c-.053.031-.147.045-.286.045v.12h1.481v-.12c-.154 0-.261-.017-.32-.048a.29.29 0 0 1-.126-.142c-.026-.06-.04-.187-.04-.378V8.927zm-11.722.34c-.33 0-.608.05-.84.147-.233.1-.411.246-.534.436a1.083 1.083 0 0 0-.185.612c0 .338.131.627.393.864.184.167.507.309.968.422.358.091.587.153.688.191a.7.7 0 0 1 .31.183c.058.07.088.158.088.259 0 .155-.07.291-.21.41-.142.116-.35.176-.628.176-.262 0-.47-.066-.625-.197-.154-.132-.255-.339-.307-.619L0 12.23c.056.48.228.845.517 1.096.289.252.704.378 1.244.378.371 0 .68-.054.93-.156a1.263 1.263 0 0 0 .781-1.169 1.29 1.29 0 0 0-.171-.684 1.203 1.203 0 0 0-.472-.437c-.2-.107-.508-.21-.927-.31-.418-.098-.683-.193-.79-.286a.326.326 0 0 1 .009-.524c.14-.105.336-.156.586-.156.24 0 .422.049.542.145.122.097.199.256.237.471l.864-.028c-.013-.395-.154-.71-.425-.949-.271-.235-.674-.353-1.208-.353zm21.808.33a.475.475 0 1 0-.002.95.475.475 0 0 0 .002-.95zm0 .072a.4.4 0 0 1 .401.403c0 .116-.05.22-.128.294l-.086-.135a.396.396 0 0 0-.065-.078.212.212 0 0 0-.048-.03.2.2 0 0 0 .127-.057.144.144 0 0 0 .043-.109.178.178 0 0 0-.025-.091.125.125 0 0 0-.067-.055.309.309 0 0 0-.123-.02h-.266v.606h.08v-.268h.091c.02 0 .036.001.045.003.013.004.025.007.036.014.013.01.024.023.04.043.015.019.035.049.059.083l.08.125h.043a.396.396 0 0 1-.237.08.405.405 0 0 1-.404-.405c0-.224.18-.403.404-.403zm-.157.191h.191c.044 0 .077.01.097.027a.089.089 0 0 1 .03.07.09.09 0 0 1-.016.055.076.076 0 0 1-.047.035.196.196 0 0 1-.085.013h-.17zm-15.037.6c-.41 0-.752.17-1.023.514v-.455h-.754v3.105h.814v-1.401c0-.348.022-.583.063-.713a.583.583 0 0 1 .234-.306.666.666 0 0 1 .385-.118c.11 0 .208.028.287.082.08.054.135.13.17.229.037.099.054.314.054.646v1.581h.816V11.7a2.54 2.54 0 0 0-.046-.55.925.925 0 0 0-.16-.343.83.83 0 0 0-.341-.25 1.285 1.285 0 0 0-.499-.097zm2.65 0a1.7 1.7 0 0 0-.826.2 1.39 1.39 0 0 0-.571.586 1.684 1.684 0 0 0-.202.793c0 .356.068.657.202.904.134.25.33.438.588.566.259.129.53.194.814.194.46 0 .841-.156 1.144-.463.303-.31.455-.698.455-1.167 0-.465-.15-.85-.451-1.156-.3-.305-.683-.457-1.154-.457zm7.315.05c-.351 0-.64.108-.865.323a1.02 1.02 0 0 0-.336.77c0 .194.05.371.147.534.1.162.24.285.423.379-.223.187-.366.335-.429.44a.55.55 0 0 0-.092.271c0 .068.024.13.071.184.046.056.127.116.24.187a9.626 9.626 0 0 0-.329.355c-.113.145-.19.253-.226.336a.41.41 0 0 0-.034.157c0 .12.081.232.246.343.291.19.649.284 1.071.284.55 0 .996-.16 1.337-.477.232-.216.35-.45.35-.694a.613.613 0 0 0-.183-.45.838.838 0 0 0-.49-.227 8.478 8.478 0 0 0-.878-.053 4.257 4.257 0 0 1-.46-.027c-.105-.015-.177-.04-.212-.075-.038-.037-.056-.072-.056-.112a.37.37 0 0 1 .05-.159.868.868 0 0 1 .186-.221c.156.049.309.07.459.07.36 0 .648-.1.864-.301a.956.956 0 0 0 .323-.722c0-.247-.062-.45-.187-.61h.394c.097 0 .15-.002.167-.01a.056.056 0 0 0 .035-.025.289.289 0 0 0 .018-.12.214.214 0 0 0-.02-.105.083.083 0 0 0-.033-.028.83.83 0 0 0-.166-.008h-.639a1.307 1.307 0 0 0-.746-.21zm-2.752 0c-.252 0-.49.065-.714.194a1.437 1.437 0 0 0-.546.61 1.816 1.816 0 0 0-.205.825c0 .381.114.724.34 1.03a1.29 1.29 0 0 0 1.09.543c.28 0 .532-.07.76-.211.23-.14.409-.35.54-.627.13-.276.194-.55.194-.821 0-.385-.118-.725-.354-1.022a1.344 1.344 0 0 0-1.105-.522zm-12.182.009l1.174 3.113a1.193 1.193 0 0 1-.21.431c-.09.112-.23.167-.419.167-.102 0-.218-.013-.344-.04l.067.645c.152.033.307.052.464.052.155 0 .294-.019.418-.052a1.04 1.04 0 0 0 .31-.138.862.862 0 0 0 .224-.234 2.2 2.2 0 0 0 .205-.414l.199-.545 1.085-2.985h-.844l-.722 2.204-.74-2.204zm16.631.078v.122a.84.84 0 0 1 .245.091c.035.029.08.08.136.157.072.102.125.186.158.255l1.088 2.275-.213.526c-.079.194-.158.326-.236.393-.08.068-.15.104-.217.104a.878.878 0 0 1-.167-.05.924.924 0 0 0-.3-.07c-.105 0-.19.025-.25.084a.286.286 0 0 0-.092.22c0 .098.042.183.126.257a.457.457 0 0 0 .322.112c.18 0 .366-.072.56-.223.193-.15.35-.37.469-.664l1.226-3.014a1.6 1.6 0 0 1 .113-.254.55.55 0 0 1 .145-.146.473.473 0 0 1 .188-.053v-.122h-.978v.122c.093 0 .16.008.197.023a.172.172 0 0 1 .083.057.146.146 0 0 1 .023.087c0 .091-.019.18-.056.271l-.675 1.671-.737-1.53c-.074-.15-.11-.268-.11-.356a.21.21 0 0 1 .074-.16.346.346 0 0 1 .224-.063h.068v-.122zm-1.753.08c.175 0 .316.074.43.217.15.196.224.466.224.815 0 .265-.053.46-.16.584a.516.516 0 0 1-.41.188.528.528 0 0 1-.43-.216c-.149-.19-.223-.458-.223-.802 0-.268.054-.461.163-.59a.515.515 0 0 1 .406-.197zm-2.798.054c.242 0 .44.102.598.312.23.308.346.727.346 1.263 0 .429-.07.73-.209.905a.646.646 0 0 1-.528.264c-.286 0-.516-.161-.691-.477-.174-.32-.263-.695-.263-1.135 0-.272.037-.493.11-.669a.731.731 0 0 1 .285-.361.667.667 0 0 1 .352-.102zm-4.463.395c.216 0 .396.084.543.247.144.162.216.397.216.703 0 .311-.072.55-.216.712a.695.695 0 0 1-.543.248.695.695 0 0 1-.542-.248c-.147-.161-.22-.398-.22-.708 0-.308.073-.545.22-.707a.704.704 0 0 1 .542-.247zm6.66 2.498c.265.036.647.065 1.142.08.34.007.566.034.68.083.113.048.17.13.17.241 0 .157-.094.304-.282.442-.19.138-.48.208-.874.208-.414 0-.732-.07-.951-.204-.128-.078-.19-.168-.19-.277 0-.078.024-.169.076-.26a1.51 1.51 0 0 1 .228-.313z\"},\"child\":[]}]})(props);\n};\nexport function SiSystem76 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.575.007A11.993 11.993 0 0 0 3.52 20.481l.124.121 6.532-12.11H3.188l1.227 2.066a.632.632 0 0 1 .076.49.677.677 0 0 1-.65.506.636.636 0 0 1-.544-.298L1.474 8.188a.633.633 0 0 1-.095-.342v-.027a.648.648 0 0 1 .642-.628h9.256c.167 0 .368.06.47.14l.01.008a.733.733 0 0 1 .22.942L4.908 21.388a.733.733 0 0 1-.14.182 11.994 11.994 0 0 0 14.225.185h-5.632a.744.744 0 0 1-.744-.744v-.015a.744.744 0 0 1 .744-.744h7.352a11.994 11.994 0 0 0-.232-16.733 12.06 12.06 0 0 0-1.618-1.358l-.003.006-.033.099c-.233.433-2.941 5.33-3.838 6.951l-.329.595c-.753 1.302-1.099 2.767-.925 3.92a3.775 3.775 0 0 0 .657 1.624 3.914 3.914 0 0 0 2.55 1.593 4.058 4.058 0 0 0 .682.058 3.981 3.981 0 0 0 2.405-.798 3.792 3.792 0 0 0 1.48-2.412 3.784 3.784 0 0 0-.7-2.892 4.015 4.015 0 0 0-2.583-1.581 4.377 4.377 0 0 0-.177-.026.699.699 0 0 1-.614-.718.69.69 0 0 1 .233-.503.705.705 0 0 1 .549-.172 5.41 5.41 0 0 1 3.735 2.182 5.18 5.18 0 0 1 .942 3.943 5.18 5.18 0 0 1-2.18 3.418 5.393 5.393 0 0 1-3.088.963h-.001a5.479 5.479 0 0 1-.915-.078 5.303 5.303 0 0 1-3.472-2.174 5.583 5.583 0 0 1-.425-.706c-.717-1.416-.753-3.07-.102-4.785a18.44 18.44 0 0 1 .758-1.678l4.078-7.45.096-.117.004-.008a12.04 12.04 0 0 0-.98-.467 11.993 11.993 0 0 0-5.093-.94z\"},\"child\":[]}]})(props);\n};\nexport function SiTabelog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 14.4915a.183.183 0 0 0-.1398-.181l-2.2517-.5431a.1817.1817 0 0 0-.163.0401.183.183 0 0 0-.0615.1505c-.2094-.0678-.4082-.1495-.5707-.2458-.4315-.2573-.9912-.7497-1.207-1.6315-.148-.6047-.5402-1.6616-.7995-2.3615l-.1867-.5094c-.0513-.1451-.1369-.312-.2486-.4861l.905-.4252a.2412.2412 0 0 0 .1127-.3241l-.3468-.7082a.2413.2413 0 0 0-.325-.1098l-1.1905.6057c-.1727-.1466-.356-.2782-.5447-.3832-.2525-.1402-.65-.3415-1.0637-.5456l1.9654-1.1406a.2403.2403 0 0 0 .0846-.3323l-.4063-.6757a.2417.2417 0 0 0-.3338-.0813l-2.5878 1.6122c-.2027-.0962-.3415-.162-.3725-.1765-.0876-.0562-.5863-.3386-1.38-.0305-.759.294-1.4478.5084-1.4546.5108-.058.0184-.562.1838-.7623.4494-.2075.2757-.7672.9064-.9568 1.0114-.2235.1234-.5035.369-.5577.6535a.5921.5921 0 0 0-.0068.0489.451.451 0 0 0 .1045.338c.1267.1534.3086.2255.4658.2603L.1175 15.2635a.246.246 0 0 0-.0823.3367l.0755.1248a.2473.2473 0 0 0 .3357.0856l8.882-5.153c-.0092.1644-.0039.5785.2506.7981.0846.073.2249.1451.4348.1292l-9.265 4.7123a.2459.2459 0 0 0-.1108.3285l.0638.131a.247.247 0 0 0 .327.1142l9.087-4.2693c-.0938.2922-.1649.5665-.1842.775-.0078.0831-.0078.1552.0024.2147.0643.3802.2336.6414.4765.7343.119.046.298.0605.5233-.046.0494.192.1427.4349.3154.5742.1089.0876.239.1258.375.1103.293-.0329.6476-.2931.8827-.6477.1596-.2419.2535-.503.2786-.7672a1.535 1.535 0 0 0-.0005-.2752c.238.0827.582.2554.7672.5993.359.6666 1.6751 2.5008 2.4882 2.88l.4683.2322c.6975.3546 1.6523.8398 2.997 1.0908.0064.0024.0136.0053.0204.0077a.1873.1873 0 0 0-.0232.0706.1836.1836 0 0 0 .1054.1814l2.3393 1.0797a.1805.1805 0 0 0 .1282.0092c.074-.0213 1.8468-.5911 1.9242-4.9334zm-7.1953-6.7933a2.857 2.857 0 0 1 .3662.2448l-2.6324 1.3394a3.6848 3.6848 0 0 0-.3376-.1906l-.3827-.1814c-.2288-.1079-.5248-.2462-.8116-.3875l2.5317-1.4685c.4862.2375.979.4837 1.2664.6438zM9.5166 8.7014c.0237-.1238.1852-.2965.3753-.402.297-.164.9355-.9301 1.072-1.111.0981-.1302.4077-.2656.58-.3207.0057-.0015.7057-.2196 1.4767-.5186.6632-.2568 1.0434-.0082 1.0593.0024a.1997.1997 0 0 0 .0262.015c.0039.0015.0653.0305.1664.0784l-2.3703 1.4768c-.4092-.1529-.8948.0038-1.1657.2844-.1079.1113-.1848.2641-.2278.4363-.1582.3159-.4247.3096-.4572.3072-.0024 0-.0048.001-.0082.0005-.0068-.0005-.0145-.002-.0217-.0015-.0958.0024-.3686-.0208-.4852-.1616-.0203-.0246-.0266-.0498-.0198-.0856zm.3013 2.4776c-.1287-.1108-.132-.4111-.1224-.5287.0039-.0111.0387-.1127.0895-.2578l.9766-.567c.0755.104.1645.2008.2666.2893-.0416.3691-.166.6308-.1674.6337-.0005.0005 0 .0005-.0005.0005v.0005c-.0015.0029-.1557.2897-.774.4537-.1837.0489-.2476-.0058-.2684-.0242zm1.3718-.2723.0005-.001c.016-.0324.1118-.2418.1703-.5495.1615.105.3178.2066.4668.3048l-.685.3487c.0165-.0348.0324-.0701.0474-.103zm-.249 2.9424c-.1597.1243-.3014.1732-.3996.1355-.1137-.044-.2061-.2133-.2467-.4542-.0063-.0358-.0063-.0818-.001-.136.0213-.2268.1345-.6003.283-1.0095l1.1478-.5393c-.1044.2472-.1964.55-.2094.8658-.0208.505-.4992 1.0545-.5742 1.1377zm8.6792 3.8809a.2123.2123 0 0 0-.0304-.0082c-1.3027-.2404-2.2358-.715-2.9164-1.0608l-.4793-.2375c-.6985-.326-1.9707-2.0723-2.3209-2.7219-.3076-.5718-.9162-.7715-1.1745-.8325-.0507-.1717-.1557-.4914-.2824-.6593a.1833.1833 0 0 0-.256-.0358.1833.1833 0 0 0-.0362.2559c.0943.1248.2046.46.2525.6419 0 .001.0005.0015.001.0019.0004.0015.0004.0029.001.0044.1383.4624-.0514.849-.1762 1.0376-.1959.2955-.459.4682-.6186.4861-.0402.0044-.0711-.0048-.105-.032-.117-.0938-.1925-.3453-.223-.5252.1625-.1892.6008-.7503.625-1.3172.0203-.49.2776-.9708.3908-1.1377l.5544-.2607c.3937.2699.6554.4605.727.533l.1214.1152c.2588.2399.7981.7396.863 1.2571.0914.728.951 2.4022 1.9353 2.8709a.182.182 0 0 0 .2433-.0866.1822.1822 0 0 0-.0861-.2433c-.8634-.4112-1.6495-1.9445-1.7303-2.5864-.0812-.6492-.664-1.189-.977-1.4792l-.1103-.105c-.2516-.253-1.8706-1.3075-2.3615-1.6248-.4746-.3072-.5853-.7004-.609-.908-.0281-.2433.0338-.4832.1576-.6109.1858-.192.6003-.3454.8964-.133.338.2419 1.1986.6458 1.7684.9133l.3759.1784c.3502.1732.6491.4136.652.416.0416.0358 1.1218.9607 1.5054 1.2142.5156.341.951.1257 1.1091-.0353a.182.182 0 0 0-.0019-.256.1832.1832 0 0 0-.2573-.0014c-.0261.0256-.2665.2399-.6482-.0121-.1828-.121-.55-.4175-.8721-.6845l2.5119-1.1802c.1069.162.1896.3178.2365.4513l.1892.5151c.2563.6917.6443 1.737.787 2.3209.2452 1.0052.8832 1.5653 1.3747 1.8584.2225.1326.4977.237.7768.3202.018.848-.0875 2.866-1.4245 3.5186a31.0668 31.0668 0 0 0-.3584-.135zm2.4065 1.3205c-.1137-.0527-1.3631-.6293-1.8807-.8682 1.1368-.5549 1.498-1.8933 1.5958-2.9265a7.769 7.769 0 0 0 .0242-1.0744c.3584.0866 1.6393.3952 1.8638.4494-.0087.313-.0247.608-.0504.879-.2578 2.7397-1.2992 3.4154-1.5527 3.5407z\"},\"child\":[]}]})(props);\n};\nexport function SiTableau (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.654.174V2.377H9.682v.58h1.972V5.16h.696V2.957h1.97v-.58h-1.97V.174h-.348zm6.03 2.262l-.002 1.623v1.623h-2.957v.927h2.957v3.188H18.725l.011-1.582.02-1.576 1.465-.02 1.46-.01v-.927H18.728V2.436h-.522zm-12.407.06V5.686H2.291v.925H5.277V9.801h.985V6.61h3.013v-.925H6.262V2.496H5.77zm6.086 5.27v3.593H8.06v1.188h3.304v3.596h1.28v-3.596H15.953v-1.188H12.643V7.766h-.637zm9.721 1.55v2.221h-2.012v.811h2.012v2.261h.887v-2.261H24v-.811h-2.029V9.317h-.422zm-19.111.131V11.621H0v.621H1.973v2.194H2.64v-2.194h2v-.62H2.609V9.446h-.318zm15.709 4.516v3.254h-3.016v.927h3.016v3.217h1.072v-3.216H21.74v-.928H18.754v-3.254h-.533zm-12.463.008v3.246H2.262v.928h2.957v3.189H6.32v-3.189h2.955v-.928H6.32V13.97h-.55zm6.316 4.578l.002 1.103v1.1H9.566v.812h1.971v2.262h.928l.012-1.119.017-1.143H14.463v-.812h-2V18.549h-.465z\"},\"child\":[]}]})(props);\n};\nexport function SiTablecheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.9139 3.8281 7.24817.16392C7.1253.04109 6.87835-.00105 6.71331.04109 3.75313 1.36028 1.37926 3.71815.04078 6.66865a.44898.44898 0 0 0 .12408.53464L3.8294 10.8675c.12408.124.37103.0819.41199-.1228a7.90878 7.90878 0 0 1 2.21626-4.33041 7.91452 7.91452 0 0 1 4.33216-2.21532c.1651 0 .247-.24684.1241-.37087Zm9.2661 7.0803 3.6658-3.66417c.1229-.12282.165-.36967.1228-.53463-1.3199-2.95848-3.6788-5.33089-6.6303-6.6685a.44958.44958 0 0 0-.2884-.0297.44942.44942 0 0 0-.2465.15252L13.1377 3.8281c-.1241.12282-.0819.37087.1229.41181a7.91473 7.91473 0 0 1 4.3322 2.21532 7.90904 7.90904 0 0 1 2.2162 4.33037c0 .1638.2482.2468.371.1228Zm3.6658 5.887L20.18 13.0903c-.1228-.1228-.3698-.0819-.4119.124-.5349 3.3355-3.1707 6.0099-6.5485 6.5457-.2048.041-.2879.2878-.1229.4118l3.6658 3.663c.1228.124.3698.165.5348.124 2.9486-1.3214 5.3084-3.6802 6.6304-6.6275.1241-.2059.0831-.4118-.0819-.5359ZM3.8306 13.0903.16366 16.7954c-.12408.1241-.16504.3709-.12408.5359 1.32198 2.9473 3.68175 5.3061 6.63037 6.6275a.44874.44874 0 0 0 .28924.0296.44923.44923 0 0 0 .24682-.1536l3.66569-3.663c.1229-.124.082-.3708-.124-.4118-1.64103-.2653-3.15679-1.0404-4.33223-2.2153a7.90877 7.90877 0 0 1-2.21625-4.3304c0-.1649-.24695-.2468-.37103-.124h.00241Z\"},\"child\":[]}]})(props);\n};\nexport function SiTacobell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0786 1.1372a11.784 11.784 0 0 0-.913.0318c-1.4967.0794-2.9562.5037-4.3208 1.1086.2802-.0007.588-.0477.839.1086.3087.1709.4496.527.7445.711.4187.1627.8696.0071 1.2965-.0398 1.3661-.1587 2.7779.1102 4 .7387.788.4146 1.4997.9613 2.1525 1.5639 1.005.8835 1.831 1.9475 2.8264 2.8416.3247.2891.698.5257 1.1037.6836.9484.3725 1.9971.3434 2.9528.6917.3012.1013.571.2697.844.43-.1644-.537-.3395-1.0706-.5622-1.5858-.9824-2.3169-2.7202-4.2993-4.8793-5.5886-1.8269-1.1034-3.9525-1.6866-6.084-1.6953ZM4.988 3.4001C3.2443 4.6465 1.8497 6.3764.9985 8.3427.3013 9.93-.0243 11.6703.004 13.4009c.0008 2.9948.0057 5.9897-.0024 8.9845-.0154.163.0834.3006.1507.4407 1.158.0714 2.3218.0137 3.4823.0307-.5701-.2073-1.2237-.5473-1.3338-1.2082-.1799-.9524.2786-1.878.7702-2.6637.7888-1.2277 1.8336-2.2634 2.9106-3.2377 1.3071-1.1322 2.7534-2.0919 4.2371-2.9754.3977-.256.8553-.4575 1.1412-.8504-.26.0219-.5151.0858-.7516.196-.9872.4292-1.9234.9662-2.8458 1.5192-.8804.545-1.767 1.0845-2.5948 1.709-.579.4146-1.1191.8777-1.6796 1.3166-.1238-.9402-.3483-1.8625-.584-2.7801-.2892-1.2188-.477-2.475-.396-3.7302.06-1.2853.4697-2.5616 1.2342-3.6022.294-.4309.699-.7751.9776-1.2165.2396-.3774-.1208-.7677-.09-1.1613-.0056-.3005.1936-.5402.358-.7718zm15.5597 8.8498c-.1674-.0026-.3357.011-.498.028-1.316.161-2.5736.6137-3.7973 1.1052-2.7414 1.1517-5.3888 2.5755-7.7414 4.4042-.9378.7499-1.8651 1.5443-2.5592 2.5332-.2097.3296-.473.733-.324 1.1363.1912.2656.5474.3125.8495.353 1.056.094 2.1147-.0777 3.1456-.298 2.0806-.473 4.0946-1.257 5.9234-2.3584 1.3743-.7945 2.7032-1.6796 3.8954-2.7299.6688-.6066 1.3126-1.2602 1.7734-2.0433.213-.3758.401-.7872.392-1.2286.0025-.2486-.0236-.5595-.2648-.6971-.2394-.1514-.5155-.2003-.7946-.2046zm3.4259.0756c-.7889 1.993-2.3518 3.549-3.9691 4.8981-1.41 1.1436-2.9463 2.1275-4.5562 2.9648-2.185 1.2196-4.5369 2.177-6.999 2.6596 5.035.022 10.0706.004 15.1055.0088.226.0316.4575-.1425.4413-.3806.0066-2.8644 0-5.7288.0026-8.5933.0016-.5191.0073-1.0391-.0251-1.5573zM12.7172 15.757c.3604.7702.4009 1.6967.0543 2.4782-.3208.7686-.984 1.375-1.7687 1.6472-1.0505.362-2.276.0818-3.0656-.7014 1.4019-1.3824 3.0598-2.478 4.78-3.424z\"},\"child\":[]}]})(props);\n};\nexport function SiTado (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.486 7.795a1.514 1.514 0 1 0 0 3.029 1.514 1.514 0 0 0 0-3.029zm-8.504.003v2.456c-.457-.344-.945-.563-1.686-.563-1.814 0-2.833 1.364-2.833 3.267 0 1.792 1.019 3.247 2.833 3.247 1.781 0 2.817-1.46 2.82-3.247v-5.16zM1.89 7.799l-1.124.378V9.69H0v.945h.757v3.873c0 .84.67 1.51 1.518 1.51h1.128v-.943h-.946a.566.566 0 0 1-.568-.566v-3.874h3.215V9.69H1.89zm20.596.375a1.135 1.135 0 1 1 0 2.27 1.135 1.135 0 0 1 0-2.27zM5.48 9.69v.946h1.906c.354 0 .549.277.549.54v.773l-1.322-.001c-1.134 0-2.267.769-2.267 2.08 0 1.307 1.13 2.087 2.265 2.087.953 0 1.326-.57 1.326-.57v.47H9.07v-4.864c0-.784-.667-1.461-1.51-1.461zm12.861.002c-1.808 0-2.835 1.369-2.835 3.237 0 1.911 1.027 3.276 2.835 3.276 1.787 0 2.828-1.36 2.828-3.276 0-1.863-1.046-3.237-2.828-3.237zm-6.046.95c1.14 0 1.68 1.185 1.68 2.316 0 1.117-.55 2.305-1.68 2.305-1.232 0-1.697-1.188-1.697-2.305 0-1.13.56-2.316 1.697-2.316zm6.046.005c1.12 0 1.703 1.18 1.703 2.3 0 1.117-.572 2.313-1.703 2.313-1.126 0-1.707-1.165-1.707-2.307 0-1.126.57-2.306 1.707-2.306zM6.614 12.9h1.322v1.207c0 .5-.373 1.062-1.323 1.062-.367 0-1.133-.19-1.133-1.134 0-.842.758-1.135 1.134-1.135Z\"},\"child\":[]}]})(props);\n};\nexport function SiTaichigraphics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.343 20.672a1.94 1.94 0 0 0 1.94-1.94 1.94 1.94 0 1 0-3.88 0 1.94 1.94 0 0 0 1.94 1.94zM9.058 12.796a6.858 6.858 0 1 0-2.324-9.67c-.062.099-.125.198-.185.3-.06.103-.11.205-.167.31a6.858 6.858 0 0 0 2.676 9.06zm0-.003h-4.23l-2.113 3.663 2.114 3.667h4.229l2.116-3.667zm0 7.33L6.82 23.999h4.48Z\"},\"child\":[]}]})(props);\n};\nexport function SiTaichilang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.526 4.6782c-.0196 1.6052-.8167 2.8963-2.211 3.8542-1.2176.8371-2.47 1.627-3.6316 2.5398-1.8976 1.4954-3.1392 3.4337-3.1784 5.9263-.0415 2.7115 1.1753 4.7975 3.4344 6.274.0415.0276.0888.0502.1302.0756.2.123.3637.3055.2197.5237-.0698.1033-.3273.1542-.4728.115-1.2168-.2975-2.3856-.731-3.4556-1.395-3.462-2.1486-5.484-5.2623-5.9517-9.318C-.2542 7.4683 3.1934 2.0903 8.6833.3542c1.3558-.4313 2.7224-.5266 4.0731.0422 1.7223.72 2.8257 2.3806 2.7697 4.2818Zm8.1462 9.2648c-.0276 1.0699-.328 2.2693-1.4445 3.1115-1.3004.9805-2.9755.9165-3.9981-.1483a2.8359 2.8359 0 0 1-.6444-1.0809 2.9144 2.9144 0 0 1-.12-1.2546 2.8788 2.8788 0 0 1 .4334-1.1856 2.8439 2.8439 0 0 1 .8976-.8786c.1389-.0873.2807-.171.4218-.2524 1.1674-.6582 1.6925-1.6889 1.731-3.0053a1.9547 1.9547 0 0 1 .0895-.3804c.131.056.28.0836.3884.1709 1.4336 1.126 2.2453 2.8148 2.2453 4.9037z\"},\"child\":[]}]})(props);\n};\nexport function SiTails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.356 11.162v3.98c0 .122-.081.154-.181.071l-2.032-1.682a.55.55 0 0 1-.181-.37v-.501l-.635-.516c-.68-.554-1.226-1.677-1.226-2.5 0-.822.549-1.036 1.226-.478l.635.516V9.18c0-.122.081-.154.181-.071l2.032 1.682c.1.082.181.248.181.37zm-2.993-1.265c-.358-.296-.648-.182-.648.253s.29 1.027.648 1.323l.599.486v-1.576l-.599-.486zM21.202 19.934l.013-.01a.334.334 0 0 0 .037-.036l.004-.004a.36.36 0 0 0 .032-.046l.007-.013a.299.299 0 0 0 .019-.042l.004-.01a.329.329 0 0 0 .013-.055v-.014l.003-.027.003-.152-5.223-4.28.022-12.91-.147-.111-.004-.003-.034-.02c-.007-.004-.014-.01-.022-.013l-.03-.01c-.01-.004-.02-.009-.03-.011l-.026-.004c-.013-.002-.026-.005-.039-.005H15.8l-.023.001c-.013 0-.025.001-.037.003l-.03.007c-.01.003-.021.005-.031.01-.01.003-.02.008-.029.012l-.029.015a.202.202 0 0 0-.014.01c-.012.004-.024.007-.035.013l-3.444 1.726.72.57.027 10.067-5.246-4.32-.003-5.241L7.623.328l-.001-.01a.283.283 0 0 0-.004-.035c-.001-.01-.002-.02-.005-.03L7.605.223C7.6.213 7.597.201 7.59.19L7.588.181l-.01-.015c-.006-.01-.012-.021-.02-.031L7.54.112A.354.354 0 0 0 7.466.05.294.294 0 0 0 7.44.035c-.01-.004-.02-.01-.03-.013a.365.365 0 0 0-.061-.016L7.314.002 7.294 0l-.009.001a.3.3 0 0 0-.036.004c-.01.001-.02.002-.03.005-.01.002-.019.006-.029.009a.286.286 0 0 0-.033.012l-.009.004L2.825 2.2l-.016.01a.336.336 0 0 0-.077.061.303.303 0 0 0-.053.078.402.402 0 0 0-.023.06.284.284 0 0 0-.01.065c-.001.006-.003.013-.002.02l.006 10.108v.02l.002.008c0 .015.003.03.006.044l.002.009.004.011a.32.32 0 0 0 .02.054v.001h.001c.009.018.02.034.031.05l.007.01.006.006a.31.31 0 0 0 .031.032l.006.006c.004.003.008.005.01.008.002 0 .003.003.005.004l4.7 3.909-.107 2.673v.038l.004.025.002.015c0 .005.002.01.004.015 0 .004.002.007.003.011l.001.005.003.01c.005.014.01.028.017.04v.002a.32.32 0 0 0 .031.049l.006.008.005.005a.342.342 0 0 0 .037.039l.005.003.003.002.003.004 5.317 4.212c.1.078.236.092.35.035l7.988-4 .004-.002a.321.321 0 0 0 .045-.029zM5.475 10.985L3.819 9.706v1.1l.844.585-1.392.698-.006-9.376 2.176-1.09.023 2.392-1.546-1.236v1.1l1.554 1.235.024 1.182L3.901 5.02v1.1l1.603 1.275-.006 1.283-1.573-1.257v1.1l1.58 1.256.01 1.187zm3.433 6.038l-5.309-4.365 3.668-1.837 5.309 4.365zM6.123 1.282l.733-.367.079 9.34-.733.366zM8.617 8.396l-.001-1.59L9.925 7.83l.001 1.591zM9.926 6.568l-1.31-1.025V3.952l1.309 1.025zM11.018 5.816c.507.646 1.026 1.907 1.026 3.073 0 1.165-.519 1.562-1.026 1.362V5.816z\"},\"child\":[]}]})(props);\n};\nexport function SiTailscale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0zm-9 9a3 3 0 1 1-6 0 3 3 0 0 1 6 0zm0-9a3 3 0 1 1-6 0 3 3 0 0 1 6 0zm6-6a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM3 24a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm18 .5a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0-.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM6 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0zm9-9a3 3 0 1 1-6 0 3 3 0 0 1 6 0zm-3 2.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM6 3a3 3 0 1 1-6 0 3 3 0 0 1 6 0zM3 5.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z\"},\"child\":[]}]})(props);\n};\nexport function SiTailwindcss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z\"},\"child\":[]}]})(props);\n};\nexport function SiTaipy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.273 4.153a.971.971 0 0 1 .917-.65h21.325a.486.486 0 0 1 .458.646l-1.245 3.56a.971.971 0 0 1-.917.65H.486a.486.486 0 0 1-.459-.646Zm4.855 6.07a.971.971 0 0 1 .917-.65h8.337a.486.486 0 0 1 .458.645l-1.245 3.56a.971.971 0 0 1-.917.65H5.341a.486.486 0 0 1-.458-.646Zm2.698 6.068a.971.971 0 0 1 .917-.65h3.482a.486.486 0 0 1 .458.646l-1.246 3.56a.971.971 0 0 1-.916.65H8.039a.486.486 0 0 1-.458-.646Z\"},\"child\":[]}]})(props);\n};\nexport function SiTaketwointeractivesoftware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m17.012 16.776.417-.257 4.155-3.1c1.413-1.248 2.293-2.686 2.293-4.607-.006-3.849-3.037-5.771-6.614-5.771-1.663 0-3.122.447-4.283 1.256V2.852L0 2.86l.007 4.395 3.85-.008.016 13.886 5.355-.008-.016-13.886h1.443a7.97 7.97 0 0 0-.516 2.02l4.518.884c.076-1.376.547-3.102 2.219-3.102 1.101 0 1.753.832 1.753 1.87 0 1.557-1.305 2.653-2.4 3.592l-6.082 4.56.006 4.085 13.642-.016.205-4.371-6.988.015Z\"},\"child\":[]}]})(props);\n};\nexport function SiTalend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.875.025c-.41.043-1.233.19-1.795.324-.653.156-1.099.303-1.856.632A11.96 11.96 0 0 0 .974 7.23C.531 8.25.367 8.817.12 10.166c-.117.61-.121.722-.121 1.838s.004 1.228.121 1.838c.247 1.349.411 1.915.852 2.936a11.96 11.96 0 0 0 6.251 6.249c1.021.441 1.588.605 2.937.852.61.117.723.121 1.839.121s1.229-.004 1.839-.121c1.35-.247 1.916-.41 2.937-.852a11.96 11.96 0 0 0 6.25-6.249c.442-1.02.606-1.587.853-2.936.117-.61.121-.722.121-1.838s-.004-1.228-.121-1.838c-.247-1.35-.411-1.916-.852-2.936-1.315-3.062-3.842-5.415-7.06-6.582C15.513.483 14.764.302 13.95.15c-.645-.12-.822-.134-1.735-.147-.558-.008-1.163 0-1.34.022zm1.536 5.34.108.104v2.859h2.293l.073.117c.139.212.06.735-.134.934-.069.065-.194.073-1.155.073h-1.081l.013 3.49c.013 3.174.021 3.516.09 3.715.148.445.364.597.831.592.329 0 .597-.064 1.224-.302.381-.139.411-.143.485-.078.1.09.26.424.26.536 0 .143-.347.398-.926.68-.922.444-1.661.613-2.47.557-1.519-.104-2.367-.614-2.678-1.617-.087-.277-.09-.398-.104-3.931l-.013-3.642h-.554c-.618 0-.679-.026-.722-.311-.035-.203.1-.342.459-.467a6.057 6.057 0 0 0 2.496-1.717c.354-.415.48-.601.748-1.116.125-.237.272-.467.32-.506a.318.318 0 0 1 .437.03z\"},\"child\":[]}]})(props);\n};\nexport function SiTalenthouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.373 7.42V0H1.627v7.42h6.66V24h7.428V7.42h6.66zM12.31 0h-.623zm-.004 3.41V.618h8.865L17.652 3.41Zm-5.948 0L2.83.618h8.857V3.41H6.358zm-.608.308-3.503 2.76V.949ZM2.837 6.802l3.52-2.781h4.894L8.46 6.8H2.837Zm6.068.438 2.78-2.782v14.781l-1.602 2.046-1.183 1.51Zm.326 16.142.555-.706 2.216-2.825 2.77 3.535zm3.078-18.924 2.786 2.782v15.556l-2.786-3.556zM15.55 6.8l-2.8-2.78h4.904l3.519 2.78h-5.623Zm6.206-.322L18.25 3.71 21.744.963l.02-.015Z\"},\"child\":[]}]})(props);\n};\nexport function SiTalos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.678 11.98c0-2.664-1.13-6.896-2.867-10.804a12 12 0 0 0-1.585.917c1.608 3.668 2.647 7.553 2.647 9.886 0 2.254-1.08 6.145-2.735 9.865a12 12 0 0 0 1.576.93c1.79-3.976 2.964-8.229 2.964-10.795m6.442 0c0-2.336 1.042-6.22 2.646-9.89a12 12 0 0 0-1.608-.922c-1.756 3.957-2.843 8.166-2.843 10.816 0 2.564 1.177 6.819 2.965 10.797a12 12 0 0 0 1.575-.931c-1.655-3.723-2.735-7.616-2.735-9.87m5.45 6.525.31.307a12 12 0 0 0 .936-1.612c-1.866-1.893-3.457-3.938-3.47-5.233-.012-1.264 1.57-3.308 3.446-5.222a12 12 0 0 0-.945-1.603l-.259.258c-2.739 2.766-4.063 4.92-4.047 6.583.016 1.662 1.332 3.81 4.028 6.522M2.411 5.405l-.26-.259a12 12 0 0 0-.946 1.608c3.123 3.173 3.452 4.704 3.448 5.217-.012 1.3-1.603 3.34-3.47 5.229a12 12 0 0 0 .939 1.608c.106-.106.207-.204.31-.308 2.694-2.711 4.01-4.842 4.026-6.516s-1.308-3.809-4.047-6.58M12.002 24c.303 0 .602-.016.898-.037V.037A12 12 0 0 0 12 0c-.304 0-.605.015-.905.037v23.925q.448.035.903.038z\"},\"child\":[]}]})(props);\n};\nexport function SiTamiya (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 6.408v4.27h4.496l1.36-4.27Zm5.856 0 1.398 4.27h4.496v-4.27Zm5.894 4.27-3.627 2.644 1.398 4.27h2.23Zm-2.23 6.914-3.664-2.645-3.627 2.645Zm-7.291 0 1.398-4.27L0 10.678v6.914zM12.25 6.408v4.27h4.496l1.36-4.27zm5.856 0 1.398 4.27H24v-4.27ZM24 10.678l-3.627 2.644 1.398 4.27H24Zm-2.23 6.914-3.664-2.645-3.627 2.645zm-7.29 0 1.397-4.27-3.627-2.644v6.914z\"},\"child\":[]}]})(props);\n};\nexport function SiTampermonkey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.955.002C3-.071.275 2.386.043 5.335c-.069 3.32-.011 6.646-.03 9.969.06 1.87-.276 3.873.715 5.573 1.083 2.076 3.456 3.288 5.77 3.105 4.003-.011 8.008.022 12.011-.017 2.953-.156 5.478-2.815 5.482-5.772-.007-4.235.023-8.473-.015-12.708C23.82 2.533 21.16.007 18.205.003c-4.083-.005-8.167 0-12.25-.002zm.447 12.683c2.333-.046 4.506 1.805 4.83 4.116.412 2.287-1.056 4.716-3.274 5.411-2.187.783-4.825-.268-5.874-2.341-1.137-2.039-.52-4.827 1.37-6.197a4.896 4.896 0 012.948-.99zm11.245 0c2.333-.046 4.505 1.805 4.829 4.116.413 2.287-1.056 4.716-3.273 5.411-2.188.783-4.825-.268-5.875-2.341-1.136-2.039-.52-4.827 1.37-6.197a4.896 4.896 0 012.949-.99z\"},\"child\":[]}]})(props);\n};\nexport function SiTaobao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.3099 9.9008c.5285 0 .9584.4284.9584.9589 0 .5276-.4299.958-.9584.958-.5276 0-.9585-.4304-.9585-.958 0-.5305.4309-.959.9585-.959zm2.3899 3.0462h-10.408v-.9595h4.15V9.7591h-2.8869v-.768h2.8868v-.9234h-2.508v.2034h-1.6418V5.3733h1.6418v.3497c.4945-.0607 1.463-.1814 2.5175-.2956v-.8257h1.8522v.6408c.9249-.0807 1.753-.1312 2.211-.1112 1.489.0716 2.4449.2816 2.485 1.273.0356.989-1.4244 1.9043-1.4244 1.9043l-.4509-.4338v.1929h-2.8116v.9233h3.229v.768h-3.229v2.2285h4.3873v.9595zM21.5259 7.299l-.0115-.0115s1.3722-.7595.3427-1.272c-.8633-.43-5.5346.3056-6.9234.6257v.6578h6.5922zM1.8822 6.4166c.5515 0 .9985-.449.9985-1 0-.5531-.447-.9995-.9985-.9995a.9984.9984 0 00-1.001.9995c0 .551.4463 1 1.001 1zm3.4094-.8596c.252-.4364.3717-.7195.3717-.7195l-1.466-.4123S3.6068 6.3546 2.5527 7.253c0 0 1.0195.5897 1.0095.5732a9.6444 9.6444 0 00.782-.8793c.2345-.1017.4585-.198.6794-.2876-.2715.487-.7094 1.219-1.1478 1.6809l.6178.5385s.4198-.4033.8792-.8907h.5246v.8993H3.8557v.7204h2.0416v1.7235c-.025 0-.0521 0-.0782-.002-.224-.0106-.5751-.0476-.7124-.265-.1678-.2636-.044-.7496-.0346-1.0457H3.6608l-.0496.026s-.517 2.3142 1.489 2.2621c1.8793.0521 2.9544-.523 3.4725-.9178l.2064.7645 1.1583-.4825-.785-1.9183-.941.292.1764.6574c-.2415.1809-.518.3157-.8187.4134V9.6076h1.995v-.7204h-1.995v-.8993h2.003v-.72h-3.557c.2565-.3111.4589-.5982.5095-.78L5.9058 6.32c2.6603-.9519 4.1408-.7886 4.1278.773v4.1128s.1568 1.4124-1.461 1.3107l-.8757-.188-.207.8307s3.7822 1.0812 4.0913-1.8246c.3096-2.9058-.0767-4.7576-.0767-4.7576s-.3451-2.6824-6.213-1.02zM.0582 12.1534l1.5867.9905c1.0967-2.3813 1.0265-2.0657 1.302-2.92.2832-.8737.3453-1.54-.1362-2.023-.6172-.6197-.6844-.6773-1.6017-1.3582L.5487 7.8562l1.2164.7576s.8141.4153.4274 1.1903c-.3617.7375-2.1343 2.3493-2.1343 2.3493zm19.94 6.8484s-.0186.523-.6704.523c-.5892 0-.6363-.4113-.6363-.4113-.2485.2996-.6207.4549-1.0696.4549-.7606 0-1.2961-.5135-1.2961-1.2896 0-.786.5576-1.28 1.3983-1.28.3832 0 .725.1462.9258.4037.0066-.0706.0136-.1362.0136-.1968 0-.5622-.3092-.8127-1.01-.8127-.3382 0-.6659.0486-1.0136.1408.1107-.219.1924-.3793.2971-.4574.1202-.0972.4294-.1408.9419-.1408 1.269 0 1.742.4259 1.742 1.4279v1.2024c0 .3161.033.4359.3772.4359zm-1.3272-.745c0-.4815-.2555-.747-.6378-.747-.4043 0-.6668.2825-.6668.7595 0 .467.2775.7615.6533.7615.3882 0 .6513-.275.6513-.774zm5.2706-.501c0 1.1528-.6924 1.8271-1.7786 1.8271-1.0957 0-1.7766-.6743-1.7766-1.8271 0-1.1584.6809-1.8252 1.7766-1.8252 1.0862 0 1.7786.6719 1.7786 1.8252zm-1.0867 0c0-.8693-.237-1.2997-.692-1.2997-.4734 0-.6938.4304-.6938 1.2997 0 .8662.2204 1.299.6939 1.299.467 0 .6919-.4328.6919-1.299zm-7.1313-.0441c0 1.1703-.6534 1.8567-1.5767 1.8567-.4233 0-.8056-.1633-1.0466-.47 0 0-.1082.4264-.6618.4264-.6884 0-.6644-.523-.6644-.523.3868.0165.3758-.2145.3758-.436v-2.8862c0-.3552-.0742-.4795-.4269-.4865.0136-.1072.0777-.5376.6789-.5376.8156 0 .7615.9149.7615.9149v.786c.229-.268.5516-.3942.9905-.3942.9624 0 1.5697.6447 1.5697 1.7495zm-1.0937.0806c0-.8983-.2716-1.3557-.7616-1.3557-.4393 0-.74.3968-.74 1.1047v.3602c0 .7205.3152 1.1168.7631 1.1168.477 0 .7385-.4134.7385-1.226zm-3.2425-.0365c0 1.1528-.688 1.8271-1.7806 1.8271-1.0937 0-1.7726-.6743-1.7726-1.8271 0-1.1584.6789-1.8252 1.7726-1.8252 1.0927 0 1.7806.6719 1.7806 1.8252zm-1.0832 0c0-.8693-.236-1.2997-.6974-1.2997-.467 0-.6874.4304-.6874 1.2997 0 .8662.2205 1.299.6874 1.299.469 0 .6974-.4328.6974-1.299zm-5.9895-2.716c-.268.0782-.7901.0972-1.5516.0972-.925 0-1.5391-.039-1.8543-.039-.5195 0-.7254.1342-.9088.6592.3006-.1017.6729-.1087 1.1353-.1087.3512 0 .4108.0431.4108.2941V18.846c0 .2821.1178.6789.7255.6789.7104 0 .8346-.526.8346-.526-.3552-.007-.4248-.1313-.4248-.4865V15.952c0-.2675.1012-.2795.471-.2795.1252 0 .2094.007.2605.007.545 0 .6883-.1047.9018-.6398zm3.1303 3.962s-.018.523-.6664.523c-.556 0-.6403-.4113-.6403-.4113-.248.2996-.6207.4549-1.0656.4549-.7655 0-1.2996-.5135-1.2996-1.2896 0-.786.557-1.28 1.3993-1.28.3843 0 .7274.1462.9258.4037.0036-.0706.0106-.1362.0106-.1968 0-.5622-.3051-.8127-1.007-.8127-.3382 0-.6669.0486-1.015.1408.1131-.219.1923-.3793.2945-.4574.1293-.0972.4329-.1408.9469-.1408 1.265 0 1.746.4259 1.746 1.4279v1.2024c0 .3161.0276.4359.3708.4359zm-1.3262-.745c0-.4815-.2555-.747-.6378-.747-.4013 0-.6668.2825-.6668.7595 0 .467.279.7615.6513.7615.3893 0 .6533-.275.6533-.774z\"},\"child\":[]}]})(props);\n};\nexport function SiTapas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.67 1.56c.282-.134.542-.338.81-.513.253-.163.54-.436.894-.33.103.296-.162.503-.331.662-.538.511-1.154.975-1.72 1.456A240.349 240.349 0 0 1 1.5 7.598a7.406 7.406 0 0 1-.612.445c-.183.118-.456.359-.71.165.071-.337.306-.567.512-.778.213-.216.414-.446.629-.66-.248-.427-.473-.821-.662-1.274-.186-.449-.378-.971-.38-1.554-.002-1.109.635-2.043 1.34-2.68C2.34.61 3.306.066 4.429.006 6.015-.078 6.933.71 7.67 1.56zm5.012 18.075v.198c-.278.01-.532-.01-.795-.016v-.198c.277-.008.535.006.795.016zm-1.59 0v.198c-.282-.012-.52.021-.792.018v-.198a9.53 9.53 0 0 1 .793-.018zm3.177.05c-.007.067.013.158-.017.199-.251-.02-.518-.024-.778-.033v-.198c.275.003.542.009.795.032zm-4.763 0v.199c-.274.002-.512.039-.795.032v-.197c.28.001.516-.036.795-.034zm5.555.034c.255.033.544.029.793.064.013.084-.014.129-.015.2-.255-.033-.544-.03-.794-.067a.703.703 0 0 0 .016-.197zm-7.142.065v.2c-.26.02-.517.046-.778.065-.022-.05-.018-.126-.017-.198.265-.024.521-.053.795-.067zm8.73.067c.269.023.537.048.793.082-.02.058-.004.148-.032.199-.25-.036-.518-.053-.778-.083-.01-.083.017-.128.017-.198zm-10.319.082c-.006.08.03.113.017.199-.259.022-.568.082-.793.082.012-.077-.02-.114-.018-.182.252-.045.529-.066.794-.099zm12.684.199c.012.084-.027.114-.017.196-.256-.044-.54-.063-.794-.114.01-.058.025-.109.017-.182.228.008.545.062.795.1zm-14.288 0c.06.022.033.133.05.196-.259.04-.517.08-.777.117a.68.68 0 0 1-.034-.197c.253-.038.515-.072.761-.116zm15.86.233a.628.628 0 0 1-.034.213c-.247-.055-.52-.083-.777-.132a.702.702 0 0 1 .034-.197c.263.032.503.09.776.116zm-17.414.016c.02.057.036.116.034.196-.263.04-.503.105-.778.133-.004-.073-.034-.12-.033-.197.275-.028.515-.092.777-.132zm18.208.132c.255.052.508.109.778.148-.004.072-.034.119-.034.197-.28-.021-.495-.11-.778-.133-.018-.041.016-.15.034-.212zM22.669 16.726c.156.092.47.098.595.246.099.115.144.486.182.744.203 1.296.287 2.808.332 4.219.008.266.016.583.016.891 0 .298.06.704 0 .91-.041.147-.24.194-.363.264a56.558 56.558 0 0 0-.065-2.843c-.124-.101-.444-.047-.464-.166-.044-.252.267-.09.447-.065-.045-1.272-.177-2.46-.33-3.623-.147-.074-.336-.105-.498-.164-.252.259-.636.939-1.223.81-.22-.047-.363-.342-.464-.545a3.243 3.243 0 0 1-.265-.744c-4.88-.936-11.589-1.016-16.502-.05-.153.655-.43 2.053-1.34 1.52a2.014 2.014 0 0 1-.81-.991 8.31 8.31 0 0 1-.547.133c-.192 1.084-.288 2.268-.346 3.489.166.01.416-.122.595-.1.004.066.028.114.033.18-.166.106-.437.105-.645.166a45.286 45.286 0 0 0-.066 2.976c-.08.022-.273-.122-.347-.213.064-2.301.179-4.553.363-6.732.28-.087.568-.17.844-.264-.04-.383-.117-.827.05-1.09.14-.224.531-.352.81-.432.99-.28 1.979-.05 2.63.413.14.102.247.239.396.299.025-.09-.094-.15-.149-.199-.567-.511-1.498-.958-2.612-.761-.348-1.09-.79-2.142-.794-3.538-.005-1.553.562-2.899 1.205-3.953.66-1.078 1.541-1.954 2.498-2.645a11.504 11.504 0 0 1 8.087-2.051c3.01.369 5.008 1.79 6.45 3.853.69.99 1.248 2.174 1.62 3.524.374 1.352.378 3.098-.05 4.53-1.383-.283-2.637.15-3.125 1.026-.004.015-.016.017-.016.033.498-.678 1.736-1.168 2.976-.86.328.082.746.2.908.43.224.317.122.989-.016 1.373zM16.22 9.382c.055.383.227.783.445.944.376.27.602.001.63-.38.035-.504-.174-1.1-.431-1.324-.105-.09-.299-.145-.412-.115-.256.065-.283.528-.232.875zm-8.649 1.092c-.033.556.16 1.277.529 1.472.43.227.633-.095.661-.495.045-.626-.273-1.714-.86-1.605-.25.047-.313.339-.33.628zm6.83 2.579c-.266.06-.633-.058-.926-.117a22.333 22.333 0 0 0-.91-.164c-.567-.088-1.344-.211-1.9.1-.198.11-.444.351-.465.662-.027.46.342.791.612.993.323.237.663.399 1.092.527.917.278 2.293.353 3.075.017.735-.316 1.706-1.062 1.72-2.05.01-.59-.272-1.119-.859-1.042-.65.085-.882.951-1.44 1.074z\"},\"child\":[]}]})(props);\n};\nexport function SiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0005 0C18.627 0 24 5.373 24 12.0005 24 18.627 18.627 24 11.9995 24 5.373 24 0 18.627 0 11.9995 0 5.373 5.373 0 12.0005 0zm0 19.826a7.8265 7.8265 0 10-.001-15.652C7.7133 4.2246 4.2653 7.7136 4.2653 12c0 4.2864 3.448 7.7754 7.7342 7.826h.001zm0-3.9853a3.8402 3.8402 0 110-7.6803c2.1204.0006 3.839 1.7197 3.839 3.8401s-1.7186 3.8396-3.839 3.8402z\"},\"child\":[]}]})(props);\n};\nexport function SiTarom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.054 0C5.424 0 .028 5.37 0 11.973 0 18.603 5.424 24 12.054 24 18.657 24 24 18.603 24 11.973 24 5.398 18.657 0 12.054 0Zm0 .877c2.603 0 5.068.96 6.986 2.52L7.178 15.123a21.416 21.416 0 0 1-.75-.101c-.55-.082-.988-.147-1.552-.089-.904.082-2.135.876-2.902 1.725a11.18 11.18 0 0 1-1.015-4.711C.959 5.864 5.917.877 12.054.877zm7.37 2.876c2.247 2.054 3.672 4.987 3.672 8.22 0 2.137-.549 4.055-1.59 5.753l-10.218-1.862ZM4.876 16.738c.795.028 1.644.084 2.521.33l9.534 4.712-5.15-4.219 9.479.547c-2 3.014-5.398 4.96-9.179 4.96-4.328 0-8.082-2.465-9.945-6.054.96-.164 1.809-.303 2.74-.276z\"},\"child\":[]}]})(props);\n};\nexport function SiTask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.857 18.013 11.736 24V12.456L1.857 6.468Zm20.286 0V6.468l-9.879 5.988V24Zm-.246-12.014L12 0 2.103 5.999 12 11.998Z\"},\"child\":[]}]})(props);\n};\nexport function SiTasmota (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L0 12l1.371 1.372L12 2.743l10.629 10.629L24 12 12 0zm0 8.463a7.41 7.41 0 0 0-2.64 14.334v-2.133a5.464 5.464 0 0 1 1.671-10.17V24h1.94V10.494a5.464 5.464 0 0 1 1.669 10.171v2.133A7.41 7.41 0 0 0 12 8.463z\"},\"child\":[]}]})(props);\n};\nexport function SiTata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.774 11.568c.193-1.322.168-2.013-1.768-1.906-2.223.124-4.476.265-7.849 1.027A5.63 5.63 0 0 0 0 12c0 1.52.618 2.99 1.787 4.254 1.06 1.144 2.556 2.095 4.326 2.752a15.48 15.48 0 0 0 2.014.588c.13-.527.959-3.907 1.616-7.823l.03-.202m14.07-.88c-3.372-.762-5.624-.902-7.846-1.026-1.937-.107-1.962.584-1.768 1.906l.046.298c.65 3.848 1.458 7.16 1.598 7.72C20.595 18.508 24 15.516 24 12c0-.443-.054-.88-.157-1.311m-.491-1.324a7.163 7.163 0 0 0-1.14-1.618c-1.06-1.144-2.555-2.095-4.325-2.752-1.784-.662-3.82-1.011-5.887-1.011-2.068 0-4.103.35-5.887 1.01-1.77.658-3.266 1.61-4.326 2.753A7.17 7.17 0 0 0 .648 9.366c2.304-.557 6.245-1.293 9.904-1.37.353-.008.596.105.756.307.196.248.18 1.128.175 1.522l-.104 10.18a18.507 18.507 0 0 0 1.244 0l-.104-10.18c-.005-.394-.02-1.274.175-1.522.16-.202.403-.315.756-.308 3.658.078 7.597.813 9.902 1.37z\"},\"child\":[]}]})(props);\n};\nexport function SiTauri (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.912 0a8.72 8.72 0 0 0-8.308 6.139c1.05-.515 2.18-.845 3.342-.976 2.415-3.363 7.4-3.412 9.88-.097 2.48 3.315 1.025 8.084-2.883 9.45a6.131 6.131 0 0 1-.3 2.762 8.72 8.72 0 0 0 3.01-1.225A8.72 8.72 0 0 0 13.913 0zm.082 6.451a2.284 2.284 0 1 0-.15 4.566 2.284 2.284 0 0 0 .15-4.566zm-5.629.27a8.72 8.72 0 0 0-3.031 1.235 8.72 8.72 0 1 0 13.06 9.9131 10.173 10.174 0 0 1-3.343.965 6.125 6.125 0 1 1-7.028-9.343 6.114 6.115 0 0 1 .342-2.772zm1.713 6.27a2.284 2.284 0 0 0-2.284 2.283 2.284 2.284 0 0 0 2.284 2.284 2.284 2.284 0 0 0 2.284-2.284 2.284 2.284 0 0 0-2.284-2.284z\"},\"child\":[]}]})(props);\n};\nexport function SiTaxbuzz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.79 6.255c3.939-2.066 5.753.089 5.753.089-2.289-.952-5.753-.089-5.753-.089zm6.556.089c-1.245-1.204-.595-4.787-.595-4.787-1.754 3.27.595 4.787.595 4.787zm14.821 8.8s.312.728.505 1.606l-8.548 6.452-2.343-6.373c-.704.236-2.667.723-5.506.055-3.598-.847-3.835-1.516-4.995-2.319-1.16-.803-1.962-2.497-2.156-3.152-.193-.654-.208-1.918.297-2.825.505-.907 1.903-1.501 1.903-1.501s.818-.342 2.988-.446c2.172-.104 3.614.639 3.614.639s-.788-2.601-.238-4.727S10.903.829 10.903.829s1.606.416 2.943 2.602c.885 1.445 1.177 2.263 1.274 2.654 1.535-.355 3.389-1.046 5.349-2.304 0 0 .954 2.695 3.531 10.785l-.833.578zm-11.551-7.76l.55 1.412c4.765.238 7.938-2.453 7.938-2.453l-.327-.847c-4.177 2.84-8.161 1.888-8.161 1.888zm-.776-5.66s1.182 1.691 2.096 4.62c0 0 .981.085 1.762-.227-.001 0-1.506-4.237-3.858-4.393zm-.569 6.734l.557.112-.825-2.364c2.071.228 2.341.138 2.341.138-.424-1.959-1.84-4.675-1.84-4.675-.958.144-1.136 1.293-1.136 1.293-.703 3.267.903 5.496.903 5.496zm-8.942.602c6.69 1.16 9.968 3.769 9.968 3.769L9.891 9.033S8.469 7.505 5.209 7.436c-3.244-.067-3.88 1.624-3.88 1.624zm11.016 6.657l-.728-1.951c-4.62-3.2-10.354-4.504-10.354-4.504s-.156.19-.212 1.026c-.056.836.346 1.628.948 2.598s1.762 1.594 2.564 2.099c.803.505 2.839.978 4.616 1.12 1.787.14 3.166-.388 3.166-.388zm.579-4.705c5.337-.268 7.79-2.787 7.79-2.787l-.446-1.257c-3.345 2.869-7.879 2.497-7.879 2.497l.535 1.547zm.996 2.527c4.668-.788 7.344-3.479 7.344-3.479l-.387-1.189c-3.226 2.81-7.671 2.78-7.671 2.78l.714 1.888zm.967 2.713c3.925-1.527 7.024-4.382 7.024-4.382l-.39-1.137c-3.267 2.754-7.403 3.456-7.403 3.456l.769 2.063zm7.648-2.386l-.479-1.316c-2.341 2.33-6.946 4.393-6.946 4.393l.751 1.94 6.674-5.017zm-18.01 3.077c3.687 3.062 8.08.461 8.08.461-4.72 1.085-8.08-.461-8.08-.461z\"},\"child\":[]}]})(props);\n};\nexport function SiTcs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 16.262c0-1.305-.522-2.174-1.827-3.088l-1.785-1.24c-.033-.022-.06-.045-.092-.068-.629-.473-.91-.912-.91-1.43 0-.696.567-1.13 1.371-1.13 1.022 0 1.503.477 2.111.477.479 0 .805-.326.805-.804 0-.348-.174-.631-.631-.848-.718-.348-1.503-.48-2.35-.48-.892 0-1.676.262-2.241.697a.984.984 0 0 0 0-.001 3.64 3.64 0 0 0-.326.283l-.008.01c-.65.695-1.19 1.714-1.623 3.145l-.501 1.652c-.893 2.912-2.306 4.304-4.504 4.304-2.415 0-3.938-1.675-3.938-4.153v.026-.025c0-2.468 1.509-4.159 3.69-4.174l.03-.002a4.857 4.857 0 0 1 2.089.457c.282.13.522.174.74.174.1 0 .192-.017.279-.041.362-.103.592-.408.592-.83 0-.326-.196-.653-.653-.87-.827-.414-1.894-.653-3.046-.653-.86 0-1.653.152-2.359.436-2.117.851-3.452 2.886-3.452 5.545l.002-.024-.001.024c0 .931.169 1.783.479 2.536-.452.985-1.143 1.509-2.046 1.509-1.087 0-1.804-.63-1.806-2.06V9.477h2.546c.588 0 .979-.348.979-.848s-.39-.848-.98-.848H2.09V5.563c0-.653-.435-1.088-1.044-1.088C.435 4.475 0 4.911 0 5.563v10.285c0 2.393 1.37 3.655 3.7 3.655.486.001.97-.08 1.43-.24h.005a3.49 3.49 0 0 0 1.81-1.514c1.034 1.117 2.565 1.775 4.48 1.775.999 0 1.868-.195 2.65-.607h.003c1.588-.827 2.72-2.502 3.503-5.068l.457-1.5a2.984 2.984 0 0 1-.162-.234c.308.492.785.953 1.468 1.43l1.631 1.13c.244.17.463.34.668.51.289.322.378.67.378 1.078 0 .935-.74 1.566-1.807 1.566-1.022 0-1.893-.522-2.371-.522s-.806.325-.806.804c0 .348.174.63.632.848.631.304 1.653.566 2.567.566 1.153 0 2.111-.348 2.785-.957a1.59 1.59 0 0 0 .156-.161A3.104 3.104 0 0 0 24 16.262z\"},\"child\":[]}]})(props);\n};\nexport function SiTeal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.069 2.334v4.129h7.897a3.168 3.168 0 0 1 2.25.947c.596.604.932 1.425.933 2.281l.008 4.244v3.61H7.253A3.17 3.17 0 0 1 5 16.598a3.251 3.251 0 0 1-.932-2.283V6.463H0v8.014c0 .944.184 1.879.541 2.752a7.193 7.193 0 0 0 1.537 2.332 7.074 7.074 0 0 0 2.301 1.558c.86.362 1.783.547 2.714.547h4.723a3.32 3.32 0 0 0 2.365-.992c.627-.636.98-1.498.98-2.397v-.732h8.824l-2.328-2.283L24 12.965h-6.309a5.802 5.802 0 0 0 2.191-2.884 5.893 5.893 0 0 0 .071-3.639 5.819 5.819 0 0 0-2.075-2.971 5.685 5.685 0 0 0-3.411-1.137H4.069Zm6.707 6.137c-1.212 0-2.194.997-2.194 2.225 0 1.229.982 2.225 2.194 2.225s2.194-.996 2.194-2.225c0-1.228-.982-2.225-2.194-2.225Z\"},\"child\":[]}]})(props);\n};\nexport function SiTeamcity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 0v24h24v-24zm2.664 2.964h7.48v1.832h-2.748v7.196h-1.984v-7.196h-2.748zm9.328 18h-9v-1.5h9zm5.56391-9.21826a4.62 4.62 0 0 1 -2.03591.37426 4.556 4.556 0 0 1 -4.628-4.616v-.024a4.584 4.584 0 0 1 4.708-4.668 4.65561 4.65561 0 0 1 3.56 1.388l-1.264 1.456a3.33594 3.33594 0 0 0 -2.312-1.02 2.67116 2.67116 0 0 0 -2.616 2.8v.028a2.68058 2.68058 0 0 0 2.616 2.836 3.22606 3.22606 0 0 0 2.376-1.056l1.264 1.276a4.61947 4.61947 0 0 1 -1.66809 1.22573z\"},\"child\":[]}]})(props);\n};\nexport function SiTeamspeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.005.605h-.09l-.028.001h-.064l-.03.001-.07.001-.02.001-.09.003h-.022l-.07.003-.03.001-.063.003L11.4.62l-.09.005-.09.006h-.015l-.01.001-.064.005-.03.002-.07.005-.02.002-.088.008-.02.001-.07.007-.027.003-.065.006-.025.003-.088.01-.09.01-.023.003-.066.008-.008.002-.015.002h-.003l-.073.01-.015.002-.05.007-.04.006-.014.002-.073.01-.024.005-.07.01-.02.004-.088.015-.035.006-.018.004-.035.006-.02.003-.07.013-.02.004-.08.015h-.003l-.004.001-.005.001-.087.018-.007.002H9.57l-.034.008-.043.01-.018.002L9.4.89l-.013.003-.09.02-.09.02-.01.003-.08.02-.011.003-.087.022-.092.024-.088.024-.01.002-.084.024h-.003l-.09.026-.091.027H8.56l-.073.023-.01.003-.005.002h-.003l-.028.01a6.02 6.02 0 0 0-.19.062l-.08.025-.257.091-.075.027a8.04 8.04 0 0 0-.305.12c-.02.007-.041.014-.061.023l-.144.06a12.574 12.574 0 0 0-.53.24l-.07.034-.08.04c-.17.085-.34.174-.506.267-.154.18-.304.362-.45.548l-.06.08-.036.043.005-.003c-.037.048-.072.098-.11.146-.077.103-.156.205-.231.31-.057.08-.112.162-.167.243-.081.118-.163.234-.24.355-.054.083-.105.168-.158.25-.074.12-.15.24-.22.362-.051.085-.1.172-.148.258-.07.126-.141.25-.21.38-.044.086-.09.174-.132.26a16.1 16.1 0 0 0-.187.379c-.045.096-.088.193-.132.29a16.02 16.02 0 0 0-.433 1.063l-.05.128.009-.012c-.127.357-.245.717-.348 1.084l-.107.049a4.673 4.673 0 0 0-.015.006 4.75 4.75 0 0 0-.56.307 4.673 4.673 0 0 0-.035.022 4.693 4.693 0 0 0-.493.37 4.673 4.673 0 0 0-.045.038 4.705 4.705 0 0 0-.427.427 4.673 4.673 0 0 0-.044.05 4.692 4.692 0 0 0-.366.488 4.673 4.673 0 0 0-.025.04 4.663 4.663 0 0 0-.302.553 4.673 4.673 0 0 0-.01.024 4.638 4.638 0 0 0-.227.606 4.673 4.673 0 0 0-.003.013c-.06.208-.108.42-.14.64a4.673 4.673 0 0 0 0 .01 4.7 4.7 0 0 0 0 1.318 4.673 4.673 0 0 0 0 .01c.032.218.08.432.14.64a4.673 4.673 0 0 0 .004.014c.061.208.137.41.226.605a4.673 4.673 0 0 0 .01.024c.09.192.19.377.303.554a4.673 4.673 0 0 0 .024.038c.112.172.235.336.368.49a4.673 4.673 0 0 0 .041.049c.133.15.275.293.426.426a4.673 4.673 0 0 0 .048.04c.155.134.318.256.49.367a4.673 4.673 0 0 0 .04.027c.178.113.364.215.557.304a4.673 4.673 0 0 0 .015.006c.197.09.4.166.61.228a4.673 4.673 0 0 0 .017.005c.207.06.42.107.637.138a4.673 4.673 0 0 0 .012.002 4.698 4.698 0 0 0 1.315 0 4.673 4.673 0 0 0 .012-.002c.218-.031.43-.078.637-.138a4.673 4.673 0 0 0 .017-.005 4.67 4.67 0 0 0 .609-.227 4.673 4.673 0 0 0 .017-.008c.192-.09.378-.19.555-.303a4.673 4.673 0 0 0 .042-.027c.17-.111.335-.234.49-.366a4.673 4.673 0 0 0 .045-.04c.152-.133.295-.277.429-.43a4.673 4.673 0 0 0 .039-.044c.134-.156.257-.32.37-.493a4.673 4.673 0 0 0 .02-.035 4.62 4.62 0 0 0 .306-.557 4.673 4.673 0 0 0 .01-.021c.089-.197.165-.4.227-.61a4.673 4.673 0 0 0 .002-.008c.06-.208.108-.421.14-.64a4.673 4.673 0 0 0 0-.02 4.698 4.698 0 0 0 .04-.881 4.673 4.673 0 0 0 0-.002c0-.05-.005-.098-.01-.147a4.673 4.673 0 0 0-.006-.085 4.176 4.176 0 0 0-.028-.222 4.673 4.673 0 0 0 0-.005 4.606 4.606 0 0 0-.304-1.098 4.673 4.673 0 0 0 0-.001c-.03-.07-.061-.14-.094-.21a4.673 4.673 0 0 0-.002-.003 4.528 4.528 0 0 0-.083-.165 4.673 4.673 0 0 0-.02-.04l-.07-.123a4.673 4.673 0 0 0-.05-.085l-.037-.06a4.673 4.673 0 0 0-.087-.137l-.012-.016A4.673 4.673 0 0 0 7.14 8.635c-.018-.011-.035-.023-.053-.033a4.673 4.673 0 0 0-.096-.055c-.036-.021-.072-.043-.11-.063a4.673 4.673 0 0 0-.044-.022 4.636 4.636 0 0 0-1.368-.464 13.673 13.673 0 0 1 3.39-5.233 10.301 10.301 0 0 1 3.147-.493c5.7 0 10.329 4.629 10.33 10.329v.002c0 2.13-.647 4.11-1.753 5.756l-.013.018C18.5 21.46 14.682 23.57 9.503 23.02l.02.016c5.2 1.138 9.375-.545 11.882-3.46l-.018.026a10.7 10.7 0 0 0 .308-.372c.018-.023.035-.048.054-.071.094-.122.186-.245.275-.37l.1-.146a10.726 10.726 0 0 0 .506-.816l.076-.133c.173-.32.329-.647.469-.981l.062-.158a10.68 10.68 0 0 0 .314-.901c.016-.053.033-.105.047-.157a9.7 9.7 0 0 0 .136-.527l.003-.018c.039-.17.072-.343.103-.516l.025-.16a10.6 10.6 0 0 0 .108-.95c.004-.06.01-.118.012-.177.009-.181.015-.363.015-.545C24.001 5.982 18.626.605 12.005.605zm.232 3.277c1.363 1.373 2.135 3.205 2.41 5.229.104.765-.046 1.61-.77 2.13-.058.333.115.696.267 1.055.388.92.98 1.757 1.408 2.642.384.798-.632 1.388-1.374 1.63a6.24 6.24 0 0 1-.275.084c.048.383.274.67.215 1.003a.98.98 0 0 1-.372.6s.28.878-.38 1.26c-.152.087-.33.104-.364.34-.064.468-.134.926-.504 1.307-.056.057-.115.11-.177.159 4.326-.152 7.97-3.507 8.372-7.93.435-4.794-3.104-9.04-7.9-9.476a8.865 8.865 0 0 0-.556-.034zm-1.973.17a8.68 8.68 0 0 0-2.003.672c.388.134.736.316.97.534 1.09 1.01 1.629 2.003 1.93 3.383.267 1.218.395 1.809-.245 2.253-.865.6.923 3.164 1.272 3.906-.46.592-1.062.579-1.38.743-.176.09-.103.426-.074.685.028.254.26.413.133.61-.114.175-.55.188-.737.31.182.2.585.399.53.658-.04.2-.492.166-.666.622-.093.245-.045.698-.238.927-.448.53-.917.62-1.85.517a15.94 15.94 0 0 1-.908-.127 8.61 8.61 0 0 0 2.263 1.137c.25.082.517.11.78.082.492-.046.834-.226 1.166-.62.22-.26.165-.776.27-1.054.199-.52.713-.478.76-.706.06-.296-.398-.523-.604-.75.214-.138.707-.153.838-.353.145-.223-.12-.404-.152-.693-.032-.294-.115-.676.085-.78.36-.186 1.045-.172 1.569-.844-.397-.844-2.43-3.76-1.447-4.442.728-.506.583-1.177.28-2.563-.344-1.57-.957-2.698-2.195-3.847a2.214 2.214 0 0 0-.347-.26Z\"},\"child\":[]}]})(props);\n};\nexport function SiTeamviewer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.597 24H1.406A1.41 1.41 0 0 1 0 22.594V1.406A1.41 1.41 0 0 1 1.406 0h21.191a1.41 1.41 0 0 1 1.406 1.406v21.188A1.41 1.41 0 0 1 22.597 24zM11.911 2.109c-5.405.047-9.763 4.482-9.802 9.89-.04 5.507 4.381 9.885 9.89 9.89 5.415.003 9.796-4.5 9.89-9.89.097-5.572-4.406-9.939-9.978-9.89zM9.65 8.633l-.889 2.159H15.3l-.889-2.159 6.642 3.365-6.642 3.365.889-2.159H8.761l.882 2.159-6.659-3.365z\"},\"child\":[]}]})(props);\n};\nexport function SiTechcrunch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 6v4h4v8h4v-8h4V6Zm12 4v8h12v-4h-8v-4zm4 0h8V6h-8z\"},\"child\":[]}]})(props);\n};\nexport function SiTed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.664v2.223h2.43v6.449H5.1v-6.45h2.43V7.665zm7.945 0v8.672h7.31v-2.223h-4.638v-1.08h4.637v-2.066h-4.637v-1.08h4.637V7.664zm7.759 0v8.672h3.863c3.024 0 4.433-1.688 4.433-4.349 0-2.185-1.021-4.323-3.912-4.323zm2.672 2.223h.85c1.931 0 2.102 1.518 2.102 2.063 0 .815-.243 2.163-1.907 2.163h-1.045z\"},\"child\":[]}]})(props);\n};\nexport function SiTeepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.998.488s-.57.33-.68.982c-.097.584.138 1.114.19 1.22-.408.255-.797.539-1.165.849.506-.577.561-1.384.038-2.147 0 0-.516.41-.53 1.07-.013.6.306 1.096.365 1.183-.338.294-.657.613-.956.95.356-.63.27-1.396-.335-2.043 0 0-.448.483-.363 1.138.074.568.433.999.527 1.103-.222.263-.432.537-.628.823-.1.148-.196.298-.289.45.39-.726.232-1.569-.53-2.179 0 0-.375.543-.196 1.179.175.62.68 1.016.705 1.035-.277.456-.517.93-.718 1.42.226-.78-.098-1.562-.955-2.006 0 0-.26.605.04 1.194.28.551.821.84.89.874-.18.445-.329.902-.444 1.368.063-.763-.372-1.445-1.247-1.747 0 0-.17.636.21 1.175.346.487.894.696.997.732-.097.418-.167.843-.211 1.273-.11-.69-.63-1.226-1.476-1.382 0 0-.073.655.385 1.131.382.396.9.534 1.062.569a10.67 10.67 0 0 0-.01 1.342C1.48 11.351.881 10.872 0 10.839c0 0 .022.659.544 1.064.45.349 1.004.402 1.149.41.039.466.11.928.21 1.382-.308-.657-.984-1.032-1.864-.911 0 0 .135.645.72.953.503.265 1.059.223 1.203.205.111.448.251.887.42 1.316-.396-.623-1.128-.905-1.992-.655 0 0 .227.618.85.838.549.195 1.105.062 1.228.028.17.403.366.796.585 1.176-.487-.514-1.23-.66-2.019-.296 0 0 .318.578.966.703.554.106 1.067-.091 1.205-.151a10.27 10.27 0 0 0 .895 1.231c-.566-.568-1.4-.667-2.201-.145 0 0 .397.526 1.057.556.635.029 1.163-.318 1.202-.344.358.417.748.802 1.165 1.155-.675-.49-1.54-.44-2.245.249 0 0 .493.438 1.146.337.643-.098 1.1-.56 1.114-.574.388.327.8.625 1.231.892-.724-.35-1.545-.164-2.127.598 0 0 .551.362 1.183.169.592-.181.97-.665 1.015-.724.38.23.776.437 1.183.617-.705-.135-1.4.187-1.824.958 0 0 .599.276 1.195-.009.51-.245.806-.712.88-.84.436.179.885.329 1.344.447-.751-.069-1.43.349-1.75 1.205 0 0 .633.186 1.18-.182.494-.332.718-.872.757-.977l.153.035.081.018c.704.155 1.325.32 1.864.497-.82.315-1.6.74-1.958 1.293a.097.097 0 0 0 .081.15.098.098 0 0 0 .081-.045c.31-.478 1.012-.912 2.093-1.296 1.082.384 1.783.818 2.093 1.296.019.028.05.044.082.044a.097.097 0 0 0 .081-.15c-.359-.552-1.138-.977-1.958-1.292a19.34 19.34 0 0 1 1.863-.497l.082-.018c.05-.01.101-.023.152-.035.04.105.263.645.757.977.548.368 1.18.182 1.18.182-.32-.856-.998-1.274-1.75-1.205a10.27 10.27 0 0 0 1.345-.448c.074.129.369.596.88.841.595.285 1.195.01 1.195.01-.424-.772-1.12-1.094-1.825-.959.407-.18.802-.386 1.183-.617.046.06.424.543 1.015.724.632.193 1.183-.17 1.183-.17-.582-.761-1.402-.946-2.127-.598.431-.266.843-.564 1.232-.891.013.014.47.476 1.113.574.653.1 1.146-.337 1.146-.337-.704-.688-1.57-.739-2.245-.25.417-.352.807-.737 1.166-1.154.04.028.568.373 1.202.344.66-.03 1.057-.556 1.057-.556-.802-.521-1.635-.423-2.2.144l.13-.156c.277-.342.532-.702.763-1.074.139.06.651.257 1.205.15.649-.124.966-.702.966-.702-.79-.363-1.53-.218-2.019.295.22-.38.415-.772.585-1.175.123.034.68.167 1.229-.028.622-.22.85-.838.85-.838-.865-.25-1.596.032-1.993.655.168-.429.309-.868.42-1.316.144.018.7.06 1.203-.205.585-.308.72-.953.72-.953-.88-.121-1.556.254-1.864.912.1-.455.171-.916.21-1.383.146-.008.7-.062 1.15-.41.522-.405.543-1.064.543-1.064-.88.033-1.479.511-1.674 1.203a10.609 10.609 0 0 0-.01-1.34c.162-.036.68-.173 1.062-.569.458-.476.385-1.131.385-1.131-.846.156-1.364.693-1.476 1.381-.044-.43-.114-.854-.21-1.272.103-.036.65-.245.996-.732.38-.539.21-1.175.21-1.175-.875.302-1.31.984-1.246 1.748a10.218 10.218 0 0 0-.443-1.37c.067-.034.608-.322.89-.873.3-.589.038-1.194.038-1.194-.857.444-1.18 1.227-.954 2.006a10.36 10.36 0 0 0-.719-1.42c.025-.02.53-.415.706-1.035.178-.636-.196-1.179-.196-1.179-.763.61-.922 1.453-.532 2.178-.092-.151-.187-.301-.288-.449a10.29 10.29 0 0 0-.628-.823c.094-.104.454-.535.527-1.103.086-.655-.363-1.138-.363-1.138-.604.647-.69 1.413-.334 2.043-.3-.338-.619-.656-.957-.95.06-.087.378-.584.365-1.183-.013-.66-.53-1.07-.53-1.07-.523.763-.467 1.57.038 2.147-.368-.31-.756-.594-1.164-.85.05-.105.287-.635.19-1.219-.11-.651-.68-.982-.68-.982-.403.822-.239 1.605.33 2.103a10.37 10.37 0 0 0-1.2-.619c-.504-.813-1.318-1.082-2.1-.795 0 0 .317.603.93.892.413.193.823.127 1.049.062.401.173.787.368 1.156.585-.57-.164-1.168.043-1.588.639 0 0 .475.288 1 .104.435-.15.721-.493.808-.609.377.236.736.493 1.075.772-.54-.246-1.163-.128-1.667.401 0 0 .43.354.976.249.45-.087.782-.383.886-.485.358.31.692.644 1.001.998-.507-.376-1.175-.374-1.78.097 0 0 .371.413.927.39.482-.018.87-.287.965-.358.28.332.537.681.77 1.046-.443-.378-1.065-.44-1.691-.085 0 0 .307.463.86.522.444.046.84-.13.979-.202.227.376.43.766.607 1.17-.363-.441-.952-.615-1.624-.392 0 0 .21.513.742.68.427.132.85.036 1-.007.163.404.3.82.41 1.245-.29-.512-.858-.783-1.572-.657 0 0 .135.539.637.78.412.197.854.158.999.137.108.469.183.949.224 1.437-.172-.626-.718-1.039-1.5-1.02 0 0 .052.553.512.866.412.28.9.287 1 .286a10.758 10.758 0 0 1 .004 1.392c-.101-.615-.574-1.077-1.327-1.168 0 0-.028.554.382.931.35.32.805.406.93.424-.04.472-.112.934-.216 1.389-.004-.613-.39-1.138-1.105-1.355 0 0-.123.542.215.983.287.374.716.537.84.579-.107.427-.242.845-.402 1.251.06-.587-.248-1.138-.906-1.448 0 0-.2.518.071 1.004.221.397.602.619.735.687-.178.418-.382.823-.612 1.212.167-.583-.051-1.192-.668-1.605 0 0-.276.482-.08 1.003.163.434.517.713.63.794-.218.352-.458.69-.716 1.012.188-.525.043-1.11-.472-1.576 0 0-.343.437-.225.981.092.42.363.73.484.852-.27.314-.56.613-.866.893.263-.473.226-1.057-.177-1.6 0 0-.422.362-.412.918.007.43.214.788.308.93-.318.27-.653.522-1.003.753.36-.434.423-1.037.092-1.654 0 0-.47.297-.54.85-.057.436.106.83.175.977-.395.242-.809.458-1.239.644.505-.365.706-.995.45-1.71 0 0-.508.223-.66.758-.132.46-.002.909.038 1.026a9.93 9.93 0 0 1-1.256.423c.513-.3.776-.88.632-1.596 0 0-.536.148-.764.655-.188.416-.137.856-.114 1.002l-.15.035-.08.018c-.427.093-1.27.279-2.12.577a18.04 18.04 0 0 0-2.12-.577l-.08-.018-.15-.035c.024-.146.074-.586-.113-1.002-.228-.507-.764-.655-.764-.655-.144.717.119 1.296.632 1.596a9.966 9.966 0 0 1-1.256-.423c.039-.118.17-.566.038-1.026-.152-.535-.66-.758-.66-.758-.257.715-.055 1.345.45 1.71a9.992 9.992 0 0 1-1.24-.644c.07-.146.232-.54.176-.978-.07-.552-.54-.849-.54-.849-.332.617-.269 1.22.092 1.654-.35-.23-.685-.482-1.004-.753.094-.142.301-.5.308-.93.01-.556-.412-.918-.412-.918-.403.543-.44 1.127-.177 1.6-.306-.28-.595-.579-.865-.893.12-.122.392-.433.484-.852.118-.544-.225-.98-.225-.98-.515.465-.66 1.05-.473 1.575a10.23 10.23 0 0 1-.716-1.012c.114-.08.468-.36.63-.794.196-.52-.08-1.003-.08-1.003-.617.413-.834 1.022-.667 1.605-.23-.389-.435-.794-.612-1.212.133-.068.513-.29.734-.687.272-.486.071-1.004.071-1.004-.658.31-.965.861-.905 1.448-.16-.406-.296-.824-.403-1.251.125-.042.554-.205.84-.579.34-.441.216-.983.216-.983-.716.217-1.101.742-1.106 1.354a10.103 10.103 0 0 1-.217-1.388c.127-.018.582-.104.932-.424.41-.377.382-.931.382-.931-.753.091-1.226.553-1.328 1.167a9.665 9.665 0 0 1 .005-1.391c.1.002.588-.005.999-.286.46-.313.512-.866.512-.866-.781-.019-1.327.393-1.5 1.019.042-.488.116-.967.225-1.436.145.021.587.06 1-.137.5-.241.635-.78.635-.78-.713-.126-1.281.146-1.571.657.11-.426.247-.841.41-1.245.15.043.573.14 1 .006.53-.166.742-.68.742-.68-.673-.222-1.261-.048-1.624.393.176-.404.38-.795.607-1.17.139.072.534.248.978.202.553-.059.86-.522.86-.522-.625-.355-1.247-.293-1.691.085.234-.364.49-.714.77-1.046.096.071.483.34.965.359.556.022.927-.391.927-.391-.604-.47-1.272-.473-1.78-.097a10 10 0 0 1 1.002-.998c.103.102.436.398.886.485.546.105.975-.249.975-.249-.503-.529-1.127-.647-1.667-.4.34-.28.699-.537 1.076-.773.086.116.373.459.807.61.526.183 1-.105 1-.105-.42-.596-1.018-.803-1.588-.639.37-.217.756-.412 1.157-.585.226.065.636.13 1.048-.062.614-.289.932-.892.932-.892-.784-.287-1.597-.018-2.102.795a10.37 10.37 0 0 0-1.2.62c.57-.499.734-1.282.331-2.104zm3.935 5.19c-.045-.005-.225.052-.412.088-.187.036-.696.062-.874.102-.178.04-.607.188-.727.21-.121.023-.496.245-.79.335-.295.089-.67.308-.95.392-.282.085-.697.246-.88.304-.183.058-.504.214-.518.245-.013.032.184.545.318.834.134.29.347.763.4.91.055.148.113.282.162.295.049.013.45.098.562.116.111.018.473.023.593.014.12-.01.38 0 .487.053 0 0 .035.527.035.571 0 .045-.009.848-.026.946-.018.099-.08.946-.117 1.34-.035.392-.089 1.49-.089 1.632 0 .143-.053 1.214-.053 1.41v.955c0 .17.044.572.062.607.018.036 2.178.188 2.802.26.625.07 1.419.142 2.08.124.66-.018 1.66-.107 2.133-.107.473 0 .803 0 .839-.036.035-.035-.036-.874-.036-1.151 0-.276-.036-1.58-.036-1.91 0-.33-.027-1.196-.027-1.321s-.035-1.526-.062-1.999c-.027-.473-.098-1.285-.08-1.339.017-.053.268-.107.365-.09.099.019.572.09.679.09.107 0 .41.027.473-.017.062-.045.607-1.071.67-1.214.062-.143.303-.714.303-.759 0-.044-.813-.401-1.045-.526-.231-.125-.87-.442-1.088-.513-.219-.072-.505-.143-.643-.21s-.607-.192-.861-.25c-.254-.058-.608-.194-.738-.207-.129-.014-.343-.045-.38-.05-.035-.004-.173-.116-.209-.093-.035.022-.392.354-.642.408-.25.054-.86.075-1.164-.041-.303-.116-.472-.404-.516-.408z\"},\"child\":[]}]})(props);\n};\nexport function SiTeespring (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.78 8.348c-.77 0-1.396.615-1.396 1.37 0 1.075.406 2.058 1.075 2.813.277.312.598.584.956.807a5 5 0 0 0 .736-3.874c-.005-.029-.013-.058-.02-.087a1.392 1.392 0 0 0-1.35-1.029zm-8.612 3.958c.138.366.317.712.533 1.032.356-.223.678-.495.955-.807a4.221 4.221 0 0 0 1.076-2.813c0-.755-.626-1.37-1.397-1.37-.65 0-1.195.438-1.35 1.029-.006.029-.015.057-.02.086a5.002 5.002 0 0 0 .205 2.843zm15.501-.67L24 12.29a5.873 5.873 0 0 1-5.243 3.18 5.958 5.958 0 0 1-1.926-.32 6.745 6.745 0 0 1-4.774 1.963 6.742 6.742 0 0 1-4.774-1.964 5.943 5.943 0 0 1-1.926.32A5.87 5.87 0 0 1 0 12.054l1.362-.595a4.38 4.38 0 0 0 3.995 2.549c.324 0 .641-.036.946-.102a6.45 6.45 0 0 1-.945-3.367 6.512 6.512 0 0 1 .19-1.554c.328-1.208 1.45-2.098 2.786-2.098l.079.002c.08.002.162.008.242.016 1.444.157 2.565 1.357 2.565 2.814 0 1.958-.999 3.687-2.522 4.724a5.244 5.244 0 0 0 3.36 1.21 5.247 5.247 0 0 0 3.358-1.21c-1.523-1.037-2.522-2.767-2.522-4.724 0-1.458 1.122-2.658 2.564-2.814.08-.008.16-.014.242-.016l.08-.002a2.877 2.877 0 0 1 2.832 2.286 6.478 6.478 0 0 1-.8 4.733c.305.066.62.102.945.102 1.71 0 3.191-.967 3.91-2.372z\"},\"child\":[]}]})(props);\n};\nexport function SiTekton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.8823.0002a.924.924 0 0 0-.8906.6777A6.4647 6.4647 0 0 0 .8042 3.133a6.6196 6.6196 0 0 0 .7578 2.3672 7.283 7.283 0 0 0 .9062 1.3066 9.7647 9.7647 0 0 0-.125.7852 10.1225 10.1225 0 0 0-.0722 1.3594c.003.1862.008.375.0293.5644.0428.5405.5351 1.1816.871 1.5938a7.1354 7.1354 0 0 0 2.0255 1.7168.9098.9098 0 0 0 .0332.082c.0827.1763.1864.342.3105.4922a5.9281 5.9281 0 0 0-.5058 1.6738 8.1648 8.1648 0 0 0-.1739 1.3008 2.218 2.218 0 0 0-.4629.2832 2.6568 2.6568 0 0 0-.8457 1.2305 3.252 3.252 0 0 0-.1093.4101l-.2286-.0625-.0253.1602c-.116.7298-.0639 1.3615.2324 2.0058a1.4432 1.4432 0 0 0-.6934.293 1.2313 1.2313 0 0 0-.3535.459c-.1466.3298-.293.7136-.293 1.08 0 .2719.085.5437.2989.7208a.7112.7112 0 0 0 .4492.162h2.3691c.1405.3726.4097.7205.8067.8243.112.0274.2264.0439.3418.0469.122.006.2402.0078.3593.0078.3085.0061.6174.003.9258 0 .4825-.0061.9657-.0151 1.4512-.0274a.7688.7688 0 0 0 .6777-.4433.7727.7727 0 0 0 .6817.4433c.4824.0122.9647.0213 1.4472.0274.3085 0 .6174.003.9258 0a7.143 7.143 0 0 0 .3594-.0078 1.856 1.856 0 0 0 .3398-.047c.397-.1038.6673-.4485.8047-.8241h2.3926a.7059.7059 0 0 0 .4473-.1621c.2137-.1771.3007-.449.3007-.7207-.003-.3665-.1472-.7503-.2968-1.0801-.2107-.4673-.6103-.6878-1.0684-.752.2962-.6443.3485-1.276.2324-2.0058l-.0254-.1602-.205.0567c-.002-.008-.0053-.0194-.006-.0293a.3897.3897 0 0 0 .0255-.0508 6.936 6.936 0 0 1 .4512-.8887 8.6153 8.6153 0 0 1 .7421-1.0742 5.5548 5.5548 0 0 1 .459-.5078c.2901-.281.6561-.5155 1.0684-.543.289-.0199.576.0648.8066.2402.1741.1314.2594.2812.3418.4766.1374.3329.2224.6174.4942.877.4824.455 1.1993.464 1.7734.1953.449-.2107.8282-.5963.9473-1.088a1.326 1.326 0 0 0 .0312-.451c-.0946-.9193-.6603-1.7528-1.3535-2.336-.6321-.5314-1.4495-.92-2.2832-.9414-.7848-.0214-1.5592.221-2.2402.5996-1.1604.6443-2.0822 1.6912-2.7754 2.8515a7.8763 7.8763 0 0 0-.0938-.5254 6.231 6.231 0 0 0-.2363-1.0039 4.7875 4.7875 0 0 0-.17-.455 1.898 1.898 0 0 0 .25-.3282 4.2022 4.2022 0 0 0 .2169-.3984l.037-.084a7.1704 7.1704 0 0 0 2.0235-1.7148c.3451-.4214.8223-1.0458.8711-1.6016.0214-.1863.0282-.3779.0313-.5703a9.9704 9.9704 0 0 0-.0762-1.3828 11.9494 11.9494 0 0 0-.123-.748 7.288 7.288 0 0 0 .9042-1.3087 6.6098 6.6098 0 0 0 .7579-2.3652 6.5344 6.5344 0 0 0-.1836-2.455.9163.9163 0 0 0-.8887-.6817c-1.5636 0-2.914.6384-4.166 1.4629a7.3538 7.3538 0 0 0-7.6836 0C4.7952.6386 3.4458 0 1.8823 0zm.0176.92h.0742c.8673.4763 1.6438 1.4442 2.2149 2.4062a10.47 10.47 0 0 0-.3399.4629 8.0257 8.0257 0 0 0-.9746 2.0468c-.6993-.9405-1.5874-2.6692-.998-4.8984.0091-.003.0142-.0115.0234-.0176zm15.9082 0h.0723l.0214.0214c.5894 2.2293-.2987 3.956-.998 4.8965a7.9805 7.9805 0 0 0-1.0371-2.1406 5.536 5.536 0 0 0-.2735-.3711c.5711-.962 1.3476-1.9299 2.2149-2.4063zM3.187 1.0997c.7726.2077 1.4993.5828 2.1895 1.0195a7.1749 7.1749 0 0 0-.791.7383c-.1314-.2168-.2743-.4271-.4239-.6348a7.4915 7.4915 0 0 0-.9746-1.123zm13.4082 0a7.4917 7.4917 0 0 0-.9746 1.123c-.1496.2077-.2895.4219-.4238.6387a7.2142 7.2142 0 0 0-.791-.7422c.687-.4367 1.4168-.8119 2.1894-1.0195zm-6.8867.17v2.5937c-1.3864.0305-2.7484.4153-3.582 1.1543-.965.852-1.6093 2.3259-1.5391 3.1015.061.6932 1.1732 1.1678 2.6543 1.4121a1.3476 1.3476 0 0 0-.1524.4278 1.9363 1.9363 0 0 0 .002.6367 16.41 16.41 0 0 1-1.5137-.2442 14.9847 14.9847 0 0 1-2.3242-.6953.9417.9417 0 0 1-.0605-.2207S2.8803 6.585 4.4682 4.2092c1.2704-1.8995 3.2461-2.8814 5.2403-2.9395zm.3652 0c1.9605.0549 3.904 1.006 5.1836 2.8534 1.6551 2.3911 1.336 5.3106 1.336 5.3106a.8319.8319 0 0 1-.0528.2129c-.758.298-1.5392.5337-2.336.7031-.4489.0947-.9528.18-1.5116.2441a1.9483 1.9483 0 0 0 .0039-.6386 1.3514 1.3514 0 0 0-.1543-.4278c1.481-.2443 2.5932-.7139 2.6543-1.4101.0702-.7757-.5741-2.2515-1.5391-3.1035-.8367-.736-2.1976-1.1199-3.584-1.1504zm-.8535.7128a.2137.2137 0 0 0-.2168.2168c0 .1932.2345.289.3711.1524.1366-.1366.0389-.3692-.1543-.3692zm1.3418 0a.2176.2176 0 0 0-.2168.2168c0 .1932.2326.289.3691.1524.1366-.1366.0409-.3692-.1523-.3692zm-1.3418.955a.2176.2176 0 0 0-.2168.2169c0 .1932.2345.2909.3711.1543s.0389-.3711-.1543-.3711zm1.3418 0a.2176.2176 0 0 0-.2168.2169c0 .1932.2326.2909.3691.1543.1366-.1366.0409-.3711-.1523-.3711zm-3.5117 3.756c.3303.0024.6414.151.8535.4042.2221.2618.3451.5943.3437.9375a.2196.2196 0 0 1-.2207.2188.2196.2196 0 0 1-.2207-.2188.9864.9864 0 0 0-.2304-.6484.7096.7096 0 0 0-.5293-.2539.6638.6638 0 0 0-.379.1191.8426.8426 0 0 0-.287.3457.2166.2166 0 0 1-.2891.1036c-.1088-.0515-.157-.1803-.1055-.2891a1.3353 1.3353 0 0 1 .4375-.5234 1.1044 1.1044 0 0 1 .627-.1954zm5.6855 0c.2237 0 .441.068.625.1953.1884.1332.3397.3144.4375.5234a.2183.2183 0 0 1-.1054.289.2198.2198 0 0 1-.291-.1035.8427.8427 0 0 0-.2872-.3457.6638.6638 0 0 0-.3789-.1191.7046.7046 0 0 0-.5293.254.9864.9864 0 0 0-.2304.6483.2196.2196 0 0 1-.2207.2149.2196.2196 0 0 1-.2207-.2149 1.427 1.427 0 0 1 .3457-.9375 1.1282 1.1282 0 0 1 .8554-.4043zM9.8862 8.8927h.0098c.9741-.0092 2.1613.4358 2.2773 1.1504.113.684-.2644 1.1483-.8476 1.414-.8643.3207-1.1684-.0976-1.3028-.3633-.064-.1282-.0914-.1942-.125-.1972h-.0078c-.0274.0122-.0626.0723-.1328.1914-.1374.2412-.421.6026-1.0195.4804-.736-.2382-1.2642-.7344-1.1328-1.5253.119-.7146 1.307-1.1596 2.2812-1.1504zm.004.332c-.591 0-1.3048.1726-1.375.539-.1161.6078.7855.9005 1.3808.899.5952-.0016 1.487-.2943 1.371-.899-.0702-.3664-.786-.539-1.3769-.539zm-6.3829.9102a14.973 14.973 0 0 0 1.9961.5722 16.386 16.386 0 0 0 1.707.2676.8424.8424 0 0 0 .084.1523c.2688.4612.7292.7517 1.2422.9258-.2718.113-.4824.2914-.5312.5723a.6502.6502 0 0 0 .0332.332c0 .003.0039.0087.0039.0117a9.4685 9.4685 0 0 1-1.1817-.3164c-1.2123-.4183-2.2242-1.087-3.0273-2.0703a5.1977 5.1977 0 0 1-.3262-.4472zm12.7637.0039c-.0794.1068-.1614.2176-.25.3183-.455.5466-.9397 1.0516-1.5352 1.4395-.8245.5374-1.7539.8718-2.7402 1.0703a.6467.6467 0 0 0 .0332-.3574c-.0519-.2718-.2558-.4457-.5215-.5586.513-.1741.9715-.4678 1.2402-.9258a2.3064 2.3064 0 0 0 .0762-.1504 16.5172 16.5172 0 0 0 1.707-.2676 15.187 15.187 0 0 0 1.9903-.5683zm-6.3477 2.2265c.7513.002 1.4906.1452 1.338.4414-.0703.1374-.2546.2412-.4806.3145-.293.0366-.5913.0617-.8906.08a17.0875 17.0875 0 0 1-.8867-.08c-.2413-.0794-.4322-.1941-.4902-.3438-.1039-.2733.6589-.414 1.4101-.412zm9.6524.5098c.4672.0122.9528.1766 1.3925.4453-.455.1313-.8269.5012-1.0253.9531a1.8268 1.8268 0 0 0-.1309.4453 1.8991 1.8991 0 0 0-.7852-.2226.2515.2515 0 0 0-.037-.0762c-.2657-.3603-.3026-1.0327.0058-1.3809a.7229.7229 0 0 1 .0703-.0664 1.64 1.64 0 0 1 .1035-.08 2.6015 2.6015 0 0 1 .4063-.0176zm-1.1211.17a1.6561 1.6561 0 0 0-.1328.707c.0042.2725.071.5397.1972.7812a2.2462 2.2462 0 0 0-.6894.2754.1692.1692 0 0 0-.0547-.0352c-.171-.0732-.3174-.2405-.4121-.4023-.1038-.1802-.229-.5225-.0977-.7149 0-.003.002-.0028.002-.0058.1435-.0977.2881-.1902.4316-.2696a4.4099 4.4099 0 0 1 .7559-.3359zm-11.9942.203c.1863.0672.3721.1306.5645.1856a6.0804 6.0804 0 0 0 3.246.7168 5.9745 5.9745 0 0 0 1.4415-.2715 5.7607 5.7607 0 0 0 1.0547-.4453 9.3597 9.3597 0 0 0 .5644-.1856 3.743 3.743 0 0 1-1.9824 1.3711c.7176-.0916 1.4625-.276 2.0488-.621.3268.794.5109 1.8688.3399 3.2949-.0427.342-.096.6661-.1602.9746-.7329-.4093-1.7452-.0824-2.5117.3574-.0977-1.414-.403-2.455-.5312-2.8399-.1161-.3542-.5358-.2835-.545.0372.058.1557.0953.3596.129.5214.055.284.0998.5743.1425.8614.0702.4794.1442.9862.1777 1.4687.0062.1069.0126.2174.0157.3242a5.5158 5.5158 0 0 1-1.3828.0078c.003-.1099.0075-.2181.0136-.328.0153-.1955.04-.3956.0645-.588.0366-.3023.0803-.601.123-.9004.0459-.3023.0904-.607.1485-.9062.0213-.113.0504-.2691.084-.4004.006-.3237-.1811-.3295-.291-.3203-.1039.0091-.1803.0935-.2383.2676-.1344.4122-.414 1.421-.5118 2.7617-.8489-.565-1.5345-.7417-2.5117-.2988-.0672-.3146-.1213-.6489-.164-1-.1833-1.5422.0462-2.672.4218-3.4844.5803.4031 1.3302.6326 2.0723.7578a3.7398 3.7398 0 0 1-1.8223-1.3184zm14.8985.4825a.3674.3674 0 0 1 .2597.0976c.003 0 .0067.0028.0098.0059.4886.4764.8402 1.0798.9043 1.6875.0703.6993-1.0642 1.2473-1.5742.7617-.2901-.2748-.2683-.8067-.7324-1.2617a.1822.1822 0 0 0 .0195-.0801c.0214-.5925.4964-1.2384 1.1133-1.211zm-4.5918.3144a1.602 1.602 0 0 0 .1972.5547 1.481 1.481 0 0 0 .459.5039 5.1464 5.1464 0 0 0-.1445.1309c-.1527.1496-.299.3116-.4395.4765a.2593.2593 0 0 0-.1093-.0215c-.1772.0092-.354-.0728-.4883-.1796-.1436-.113-.3512-.3577-.336-.5684a7.122 7.122 0 0 1 .8614-.8965zm-1.2031 1.3496c.0984.1851.235.3476.4003.4766.1604.1277.348.215.5489.2558a9.5353 9.5353 0 0 0-.8496 1.3809 2.3558 2.3558 0 0 0-.6094-.7344 2.1061 2.1061 0 0 0-.2246-.1543 9.9204 9.9204 0 0 1 .7344-1.2246zM14.39 17.012c.5925.2748.9664.9011 1.0488 1.6035-.4794.1405-1.0044.3915-1.4472.6113.165-.6105.2864-1.2316.3633-1.8593a6.107 6.107 0 0 0 .0351-.3555zm-9.2617.0137c.0092.116.021.2307.0332.3437.0769.6278.1982 1.2508.3633 1.8614-.4367-.2169-.9485-.462-1.4219-.6055.0794-.6962.4421-1.3187 1.0254-1.5996zm1.8965 1.666c.5202.0206 1.0323.287 1.414.621.0214 1.472.3308 2.8553.5293 3.127.2016.2688.0938.754.0938.754s-2.602.0671-2.8555 0c-.2535-.0672-.555-.8145-.1367-1.2481.1954-.2015.4753-.251.7227-.248.507.1099.8366.4235 1.1816.8632-.0733-.7543-.4965-.9515-.7988-1.1347-.0977-.058-.1356-.0859-.1875-.1836a10.8387 10.8387 0 0 1-.8828-2.2852c.292-.2027.6077-.278.9199-.2656zm5.4687 0c.3119-.0124.628.063.92.2656a11.035 11.035 0 0 1-.879 2.2852c-.055.0977-.0928.1256-.1874.1836-.3024.1832-.7256.3804-.7989 1.1347.3451-.4397.6747-.7533 1.1817-.8632.2473-.003.5302.0465.7226.248.4184.4336.1168 1.1809-.1367 1.248-.2535.0672-2.8555 0-2.8555 0s-.1058-.4851.0957-.7539c.1986-.2717.51-1.655.5313-3.127.378-.334.8865-.6004 1.4062-.621zm-8.6601.3887c.4642.1221 1.2316.477 1.9004.828.1069.3146.226.6216.3574.924.045.1025.092.2056.1406.3066a1.4131 1.4131 0 0 0-.621.3691 1.3835 1.3835 0 0 0-.379.9063H2.8296c-.2413-.2016.0279-2.03 2.3945-.9551-.5222-.4153-1.412-.9712-1.3906-2.379zm11.8496 0c.0214 1.4077-.8676 1.9636-1.3867 2.3789 2.3636-1.075 2.6349.7535 2.3906.955h-2.4453a1.324 1.324 0 0 0-1.0176-1.246 9.3621 9.3621 0 0 0 .4766-1.2149c.6901-.3695 1.503-.7478 1.9824-.873zm-5.1856.412a9.7574 9.7574 0 0 1-.1796 1.7384c-.0398.2015-.1404.689-.2442.8691a1.4439 1.4439 0 0 0-.0781.1289c-.1487.0023-.2692.0013-.42.002a1.6751 1.6751 0 0 0-.0956-.1582 1.8492 1.8492 0 0 1-.0977-.2754 7.2305 7.2305 0 0 1-.1777-.793 10.22 10.22 0 0 1-.1387-1.5 4.8903 4.8903 0 0 0 1.4316-.0117Z\"},\"child\":[]}]})(props);\n};\nexport function SiTele5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.006 0v5.027H3.83V0h-.685v4.18H2.23V.074h-.677V4.18h-.87V0H.007zm5.623.004v14.154h8.658V7.254h8.791V.004H5.628zM3.145 6.076v3.9H.005v.85H3.83v-4.75h-.685zM23 9.926 5.389 18.502c2.371 4.857 8.236 6.874 13.1 4.506v.002C23.352 20.64 25.372 14.783 23 9.926zM.006 12.129v5.027H3.83V12.13h-.685v4.18H2.23v-4.106h-.677v4.106h-.87v-4.18H.007zm0 6.07v5.791h.687v-2.47H3.83v-.848H.693v-2.473H.006z\"},\"child\":[]}]})(props);\n};\nexport function SiTelegram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z\"},\"child\":[]}]})(props);\n};\nexport function SiTelegraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm6 6h12v3h-4.5v9h-3V9H6V6Z\"},\"child\":[]}]})(props);\n};\nexport function SiTelequebec (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.054 5.568c-1.105.008-1.99.05-2.655.083L4.483 9.404A42.34 42.34 0 0 1 .322 7.99c.643.665 1.93 1.394 3.646 2.059l-.43.536C2.21 10.155 1.009 9.726 0 9.297c.58.6 1.652 1.265 3.067 1.887l-1.394 1.78c1.716.322 4.482 1.094 7.57 2.253 2.382.922 4.312 1.844 5.77 2.638l.987.579 2.53-3.796c2.51.085 4.376-.172 5.105-.751-1.244.064-2.767.021-4.525-.13l.472-.707c2.166 0 3.775-.3 4.418-.857-1.072.064-2.38.064-3.84-.022l3.24-4.847c-1.352-.3-3.625-.901-6.306-1.309l-3.067-.321a51.668 51.668 0 0 0-3.973-.126zm.4 1.241c.854-.005 1.878.01 3.08.086l2.38.236c2.08.3 3.84.75 4.89.965L18.102 12c-1.866-.171-3.904-.471-6.07-.858a74.896 74.896 0 0 1-6.027-1.33l2.38-2.959c.526-.01 1.213-.037 2.068-.043zm2.72.535c-.493.004-1.03.223-1.464.645-.772.73-.9 1.844-.3 2.445.6.6 1.694.493 2.466-.258.773-.729.901-1.844.3-2.445a1.378 1.378 0 0 0-1.002-.387zm-7.79 3.24c1.951.665 4.29 1.265 6.798 1.737 1.888.343 3.646.558 5.233.665l-.385.557a75.458 75.458 0 0 1-5.384-.879 82.036 82.036 0 0 1-6.649-1.608Zm-.966 1.158c2.06.794 4.611 1.523 7.378 2.06a43.83 43.83 0 0 0 4.569.685l-1.266 1.845-.815-.386c-1.115-.6-2.616-1.287-4.46-1.974-2.381-.857-4.526-1.436-5.856-1.672Z\"},\"child\":[]}]})(props);\n};\nexport function SiTemporal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.206 7.794C15.64 3.546 14.204 0 12 0 9.796 0 8.361 3.546 7.794 7.794 3.546 8.36 0 9.796 0 12c0 2.204 3.546 3.639 7.794 4.206C8.36 20.453 9.796 24 12 24c2.204 0 3.639-3.546 4.206-7.794C20.454 15.64 24 14.204 24 12c0-2.204-3.547-3.64-7.794-4.206Zm-8.55 7.174c-4.069-.587-6.44-1.932-6.44-2.969 0-1.036 2.372-2.381 6.44-2.969-.09.98-.137 1.98-.137 2.97 0 .99.047 1.99.137 2.968zM12 1.215c1.036 0 2.381 2.372 2.969 6.44a32.718 32.718 0 0 0-5.938 0c.587-4.068 1.932-6.44 2.969-6.44Zm4.344 13.753c-.2.03-1.022.126-1.23.146-.02.209-.117 1.03-.145 1.23-.588 4.068-1.933 6.44-2.97 6.44-1.036 0-2.38-2.372-2.968-6.44-.03-.2-.126-1.022-.147-1.23a31.833 31.833 0 0 1 0-6.23 31.813 31.813 0 0 1 7.46.146c4.068.587 6.442 1.933 6.442 2.969-.001 1.036-2.374 2.382-6.442 2.97z\"},\"child\":[]}]})(props);\n};\nexport function SiTencentqq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.395 15.035a40 40 0 0 0-.803-2.264l-1.079-2.695c.001-.032.014-.562.014-.836C19.526 4.632 17.351 0 12 0S4.474 4.632 4.474 9.241c0 .274.013.804.014.836l-1.08 2.695a39 39 0 0 0-.802 2.264c-1.021 3.283-.69 4.643-.438 4.673.54.065 2.103-2.472 2.103-2.472 0 1.469.756 3.387 2.394 4.771-.612.188-1.363.479-1.845.835-.434.32-.379.646-.301.778.343.578 5.883.369 7.482.189 1.6.18 7.14.389 7.483-.189.078-.132.132-.458-.301-.778-.483-.356-1.233-.646-1.846-.836 1.637-1.384 2.393-3.302 2.393-4.771 0 0 1.563 2.537 2.103 2.472.251-.03.581-1.39-.438-4.673\"},\"child\":[]}]})(props);\n};\nexport function SiTensorflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.292 5.856L11.54 0v24l-4.095-2.378V7.603l-6.168 3.564.015-5.31zm21.43 5.311l-.014-5.31L12.46 0v24l4.095-2.378V14.87l3.092 1.788-.018-4.618-3.074-1.756V7.603l6.168 3.564z\"},\"child\":[]}]})(props);\n};\nexport function SiTeradata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5 0 0 5.65 0 12.08C0 18.83 5 24 12 24S24 18.83 24 12.08C24 5.65 19 0 12 0M8.47 3.44H11.97V6.7H15.55V9.56H11.97V14.78C11.97 16.36 12.74 17.05 13.9 17.05C14.32 17.05 14.88 16.93 15.41 16.73C15.79 17.73 16.46 18.63 17.18 19.35A7 7 0 0 1 13.66 20.32C10.54 20.32 8.47 18.67 8.47 15.04V3.45Z\"},\"child\":[]}]})(props);\n};\nexport function SiTeratail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.81.968h4.375L24 23.032h-5.107L12.121 6.605h-.198L5.148 23.03H0Z\"},\"child\":[]}]})(props);\n};\nexport function SiTermius (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.812 19.381A6.194 6.194 0 0 0 24 13.193c0-1.7-.723-3.352-1.958-4.515a6.01 6.01 0 0 0-6.005-5.955 5.98 5.98 0 0 0-2.731.656 5.985 5.985 0 0 0-4.12-1.635 6.011 6.011 0 0 0-6 5.743A6.224 6.224 0 0 0 0 12.917a6.225 6.225 0 0 0 6.706 6.2 6.426 6.426 0 0 0 5.508 3.14 6.395 6.395 0 0 0 5.347-2.881c.084.003.167.005.25.005zm-5.598 1.242A4.792 4.792 0 0 1 7.9 17.888l-.267-.562-.613.108a4.592 4.592 0 0 1-5.387-4.516A4.59 4.59 0 0 1 4.34 8.734l.506-.228-.026-.555a4.377 4.377 0 0 1 4.367-4.574c1.297 0 2.512.566 3.347 1.56l.47.56.609-.407a4.349 4.349 0 0 1 2.425-.734 4.378 4.378 0 0 1 4.364 4.632l-.025.416.322.265a4.612 4.612 0 0 1 1.669 3.524 4.561 4.561 0 0 1-5.14 4.518l-.554-.071-.267.49a4.764 4.764 0 0 1-4.192 2.493zm3.102-6.533.016-.007c.212-.091.288-.171.288-.393v-.278c0-.244-.14-.401-.37-.401h-.013l-.046.01a4.534 4.534 0 0 1-1.502.272c-.48 0-.954-.09-1.409-.27l-.013-.005-.052-.007c-.23 0-.37.157-.37.401v.278c0 .209.078.303.261.382l.02.009.02.008a3.91 3.91 0 0 0 1.544.32c.525 0 1.071-.107 1.626-.319zm-7.081-2.285c0-.224.116-.348.272-.38l1.501-.394-1.505-.395c-.156-.041-.268-.164-.268-.38v-.473c0-.207.124-.296.266-.296.046 0 .094.01.141.028l2.68.867c.203.068.315.231.315.455v.387c0 .224-.112.388-.316.456l-2.685.868a.437.437 0 0 1-.125.02c-.168 0-.276-.12-.276-.297v-.466z\"},\"child\":[]}]})(props);\n};\nexport function SiTerraform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.44 0v7.575l6.561 3.79V3.787zm21.12 4.227l-6.561 3.791v7.574l6.56-3.787zM8.72 4.23v7.575l6.561 3.787V8.018zm0 8.405v7.575L15.28 24v-7.578z\"},\"child\":[]}]})(props);\n};\nexport function SiTesco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.621 8.7913c-1.0182 0-2.0126.3081-2.0126 1.3264 0 1.7523 3.0784.8285 3.0784 1.8941 0 .3552-.5446.4976-.9709.4976-.7814 0-1.3499-.1186-2.0366-.5212v.8764c.521.1657 1.208.2602 1.9894.2602 1.0656 0 2.0602-.2841 2.0602-1.3024 0-1.847-3.0787-1.0182-3.0787-1.9181 0-.3552.4974-.4972.9236-.4972.7341 0 1.5155.2131 1.9418.6157v-.9473h-.0473c-.5446-.1657-1.3026-.2842-1.8472-.2842zm9.7329 0c-1.6103.0237-2.7233.9236-2.7233 2.226 0 1.255 1.0184 2.1075 2.5103 2.1075 1.5865 0 2.6996-.8996 2.6996-2.202 0-1.2787-.9948-2.1315-2.4866-2.1315zm-4.31.024c-1.847 0-3.0547.8758-3.0547 2.2256 0 1.2314 1.1132 2.0603 2.7945 2.0603.5447 0 1.018-.071 1.5863-.213V11.846c-.4026.4262-.876.592-1.397.592-.9945 0-1.6578-.6154-1.6578-1.5153 0-.8762.7106-1.5157 1.6815-1.5157.5447 0 .9709.1893 1.3024.5208v-.9945c-.3552-.0947-.8052-.1181-1.2551-.1181zM.16 8.9334v.9945c.3552-.2605 1.0658-.3787 1.8472-.3787v2.6996c0 .4026-.0239.4971-.2133.7103h1.563c-.1658-.2132-.213-.3314-.213-.7103V9.5256h.0472c.6868 0 1.4917.1182 1.847.4023v-.9945zm5.3044 0c.1657.2131.1894.3318.1894.7107v2.6047c0 .4026-.0237.5208-.1894.7103h3.7654v-.971c-.521.379-1.492.3793-1.8945.3556h-.545v-1.113h.4028c.2842 0 .7576.0234 1.0418.1181v-.8287c-.2842.0947-.7813.1185-1.0418.1185h-.4027V9.5728h.5449c.4973 0 1.3496.095 1.6575.3791V8.9334zm15.7474.4973c.8288 0 1.3737.6869 1.3737 1.5394.0236.8288-.5212 1.5153-1.35 1.5153-.8525 0-1.397-.6865-1.397-1.5153 0-.8525.5445-1.5394 1.3733-1.5394zm-19.3703 4.689c-.4973 0-.8763.2602-1.0658.4496 0 0-.45.45-.7578.6158-.0237 0-.0237.0236 0 .0236h2.7945c.5446 0 .805-.1895 1.1366-.4736 0 0 .4736-.4497.8288-.5918.0236 0 .0236-.0236 0-.0236zm4.8068 0c-.4973 0-.876.2602-1.0418.4496 0 0-.45.45-.7579.6158-.0236 0-.0236.0236 0 .0236H7.643c.5447 0 .8051-.1895 1.1367-.4736 0 0 .4736-.4497.8051-.5918.0237 0 .0237-.0236 0-.0236zm4.7835 0c-.4736 0-.8523.2602-1.0418.4496 0 0-.45.45-.7578.6158-.0237 0-.0237.0236 0 .0236h2.794c.5447 0 .8056-.1895 1.1371-.4736 0 0 .4736-.4497.8051-.5918.0237 0 .0237-.0236 0-.0236zm4.8071 0c-.4736 0-.8523.2602-1.0417.4496 0 0-.45.45-.7579.6158-.0237 0-.0237.0236 0 .0236h2.7941c.5447 0 .8051-.1895 1.1367-.4736 0 0 .4736-.4497.805-.5918.0238 0 .0238-.0236 0-.0236zm4.8072 0c-.4736 0-.8523.2602-1.0654.4496 0 0-.45.45-.7579.6158-.0237 0-.0237.0236 0 .0236h2.8178c.5446 0 .805-.1895 1.1366-.4736 0 0 .4736-.4497.8051-.5918.0237 0 .0237-.0236 0-.0236z\"},\"child\":[]}]})(props);\n};\nexport function SiTesla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 5.362l2.475-3.026s4.245.09 8.471 2.054c-1.082 1.636-3.231 2.438-3.231 2.438-.146-1.439-1.154-1.79-4.354-1.79L12 24 8.619 5.034c-3.18 0-4.188.354-4.335 1.792 0 0-2.146-.795-3.229-2.43C5.28 2.431 9.525 2.34 9.525 2.34L12 5.362l-.004.002H12v-.002zm0-3.899c3.415-.03 7.326.528 11.328 2.28.535-.968.672-1.395.672-1.395C19.625.612 15.528.015 12 0 8.472.015 4.375.61 0 2.349c0 0 .195.525.672 1.396C4.674 1.989 8.585 1.435 12 1.46v.003z\"},\"child\":[]}]})(props);\n};\nexport function SiTestcafe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.315 4.319-8.69 8.719-3.31-3.322-2.069 2.076 5.379 5.398 10.76-10.796zM5.849 14.689 0 19.682h24l-5.864-4.991h-3.2l-1.024.896h3.584l3.072 2.815H3.417l3.072-2.815h2.688l-.896-.896z\"},\"child\":[]}]})(props);\n};\nexport function SiTestin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.052 9.923H3.067v5.232H1.985V9.923H0V8.841h5.052v1.082zm3.459 1.74c.413.788.326 1.696.326 1.696H5.31c.134.391.461.718 1.182.718h2.172v1.083H6.492c-1.028 0-1.587-.451-1.874-.829-.304-.399-.471-.936-.471-1.513 0-1.165.806-2.345 2.345-2.345.897-.001 1.616.421 2.019 1.19zm-.895.659c-.152-.35-.469-.767-1.124-.767-.74 0-1.046.411-1.173.767h2.297zm4.971-.05H10.89a.344.344 0 0 1-.344-.344.4.4 0 0 1 .118-.279.322.322 0 0 1 .224-.099h2.47v-1.082h-2.44c-.429 0-.75.147-1.018.415a1.486 1.486 0 0 0-.436 1.045c0 .787.64 1.427 1.427 1.427h1.697c.212 0 .384.17.384.378 0 .19-.157.344-.35.344H9.719v1.083h2.902c.79 0 1.433-.64 1.433-1.426 0-.806-.658-1.462-1.467-1.462zm3.839-3.427h-1.083v1.624h-1.26v1.083h1.26v1.533c0 1.086 1.118 2.075 2.345 2.075v-1.083c-.68 0-1.263-.546-1.263-.992v-1.533h1.265v-1.083h-1.265V8.845zm1.981 6.31h1.083v-4.691h-1.083v4.691zm.542-6.311a.54.54 0 1 0 0 1.081.54.54 0 0 0 0-1.081zm3.112 1.617c-1.02 0-1.849.825-1.849 1.838v2.856h1.083v-2.856c0-.417.344-.755.767-.755.44 0 .857.367.857.755v2.856H24v-2.856c0-.996-.888-1.838-1.939-1.838z\"},\"child\":[]}]})(props);\n};\nexport function SiTestinglibrary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.447 9.756c.028.05.053.113.078.186-.028-.06-.047-.129-.078-.186.592 2.304-1.95 5.003-5.13 4.239h.001c4.596-3.01 2.332-6.772.19-8.58-1.762-1.49-.721-1.95.021-1.95.237 0 .443.046.519.121l-.005-.004.006.004c-.018-1.433-5.066-1.11-.65 3.494 2.268 2.365-.408 7.596-3.596 3.618a.974.974 0 0 1-.071-.113c.515-.214.937-.795.937-1.753a2.383 2.383 0 0 0-.197-.986c.368-.75.707-1.647.707-2.77 0-2.684-1.742-5.076-4.18-5.076s-4.18 2.392-4.18 5.076c0 1.123.339 2.02.707 2.771a2.374 2.374 0 0 0-.197.988c0 .958.421 1.54.937 1.753a.985.985 0 0 1-.072.113C6.006 14.679 3.33 9.447 5.598 7.083c4.417-4.604-.633-4.926-.651-3.494l.008-.004c.078-.074.28-.12.515-.12.742 0 1.783.46.021 1.95-2.133 1.8-4.383 5.538.139 8.542.018.013.03.027.049.04-3.176.764-5.714-1.928-5.131-4.232l.004-.01c-.001.002-.002.005-.004.006l.001-.003-.003.007c-1.174 1.61-.606 5.779 3.778 6.168.019.003.035.009.054.012-4.36 1-3.048 7.02.021 6.056L4.388 22l.016-.003C2.27 21.652 2.11 19 3.176 18.087c1.172-1.006 2.519-.137 5.302-.932l.03-.004c-.03 2.446 2.352 3.76 1.103 5.16-1.316 1.473-3.112-.1-2.858-1.55l.006-.029-.004.008v-.004l-.004.012C5.65 22.598 7.044 24 8.61 24c.899 0 1.855-.462 2.429-1.567 1.214-2.337-2.385-6.432.96-6.432 3.344 0-.255 4.095.959 6.432.574 1.105 1.53 1.567 2.43 1.567 1.571 0 2.97-1.411 1.85-3.268l.005.021-.006-.017c.276 1.457-1.533 3.057-2.855 1.575-1.244-1.404 1.131-2.718 1.106-5.163 2.806.812 4.157-.072 5.334.94 1.066.911.906 3.564-1.228 3.91h.007c3.07.958 4.377-5.054.018-6.057l.005-.001c4.44-.362 5.009-4.573 3.822-6.184zm-20.238.39C3.072 7.9 5.019 6.073 5.62 5.565c.838-.707 1.165-1.272.998-1.727a.809.809 0 0 0-.656-.512 1.411 1.411 0 0 0-.573.03c.169-.082.365-.13.574-.13.475 0 .866.223.995.569.117.313.12 1.007-1.174 2.133-2.047 1.783-2.213 3.922-1.685 5.33.458 1.223 1.47 2.014 2.58 2.014.177 0 .355-.02.533-.057-.54.46-1.16.61-1.412.656-1.494-1.045-2.512-2.419-2.591-3.727zm5.208 6.873c-1.135.302-2.295.319-3.038.323-.924.006-1.655.01-2.333.593-.617.528-.873 1.594-.609 2.536.091.325.19.656.426.857.178.153.482.37.787.522l-.016-.004c.019.01.033.023.052.033-.993-.212-1.572-1.18-1.642-2.134-.088-1.205.602-2.728 2.832-3.055.354-.052.728-.083 1.101-.114.91-.076 1.85-.155 2.497-.54-.024.38-.046.788-.057.983zm.25-2.684c-.65.998-1.936 1.153-3.07 1.29-.32.038-.613.083-.883.138l-.356-.024c-1.801-.156-3.141-1.006-3.775-2.396a4.068 4.068 0 0 1-.353-2.055s.038-.376.108-.77c-.087 1.095.207 2.138.88 2.997a4.649 4.649 0 0 0 3.636 1.762c1.33 0 2.588-.59 3.545-1.663.33-.37.478-.398.516-.398.128.186.019.708-.247 1.119zm6.372-5.503c0 1.347-1.527 1.347-1.527 0s1.527-1.347 1.527 0zM13.234 3.34c0 .741-1.235.741-1.235 0 0-.74 1.235-.74 1.235 0zm-.258 8.156c0 .749-.06 1.356-.133 1.356s-.126-.605-.125-1.355c0-.75.062-1.356.133-1.356.07 0 .128.606.125 1.355zm-.952-1.614c.056 0 .1.73.1 1.631s-.044 1.631-.1 1.631-.1-.73-.1-1.63c0-.902.045-1.632.1-1.632zm-.193-8.21c0 .511-.849.511-.849 0s.85-.506.85 0zm-.587 4.22c0-.354.587-.351.587 0 0 .354-.587.354-.587 0zm.046 5.622c0 .768-.064 1.39-.137 1.39-.073 0-.132-.622-.131-1.389s.064-1.389.138-1.389c.074 0 .132.62.13 1.388zm0-7.495c0 .51-.849.51-.849 0s.849-.51.849 0zm-1.147-1.234c0 .353-.587.353-.587 0s.587-.353.587 0zm-.08 2.508c0 .255-.425.255-.425 0 0-.256.424-.256.424 0zm-1.1 3.54c0-1.347 1.528-1.347 1.528 0s-1.528 1.347-1.528 0zm5.327 9.088c-.078.74-.273 1.38-.446 1.946-.347 1.138-.622 2.036.242 3.002.363.407.829.622 1.346.622.64 0 1.278-.34 1.664-.889a1.97 1.97 0 0 0 .325-.844c.017.16.026.31.015.417a1.623 1.623 0 0 1-.197.646c-.336.595-1.063.98-1.85.98-.95 0-1.77-.532-2.253-1.459-.481-.927-.132-2.214.177-3.35.302-1.115.564-2.077.104-2.678-.263-.345-.727-.512-1.417-.512-.691 0-1.155.167-1.418.512-.46.6-.198 1.563.104 2.678.309 1.136.658 2.423.177 3.35-.482.927-1.303 1.459-2.252 1.459-.788 0-1.515-.385-1.851-.98a1.623 1.623 0 0 1-.182-1.058c.048.296.142.582.323.84.387.547 1.025.888 1.665.888.518 0 .984-.215 1.348-.622.862-.966.588-1.862.24-2.998-.173-.567-.369-1.21-.445-1.95-.1-.966.119-1.827.6-2.36.399-.441.967-.666 1.69-.666s1.293.224 1.69.665c.48.533.7 1.393.6 2.36zm3.029-4.647c1.11 0 2.122-.79 2.579-2.014.526-1.408.36-3.547-1.69-5.33-1.295-1.127-1.292-1.82-1.175-2.134.13-.345.52-.569.994-.569.193 0 .372.045.532.115l.011.004a1.466 1.466 0 0 0-.533-.018.809.809 0 0 0-.656.512c-.166.455.16 1.02.998 1.728.6.507 2.548 2.334 2.411 4.578-.08 1.308-1.097 2.682-2.591 3.727a3.072 3.072 0 0 1-1.412-.656c.177.038.356.057.532.057zm4.635 6.469c-.07.956-.65 1.922-1.645 2.134.015-.008.028-.018.042-.027.305-.153.608-.368.785-.52.235-.202.335-.533.426-.858.264-.942.008-2.008-.609-2.536-.678-.582-1.409-.587-2.333-.593-.743-.004-1.903-.021-3.04-.323-.01-.196-.03-.602-.054-.983.647.386 1.589.465 2.5.542.373.031.744.062 1.097.113 2.23.327 2.919 1.848 2.83 3.05zm-2.666-3.979c-.271-.056-.565-.1-.886-.14-1.135-.136-2.421-.291-3.07-1.29-.268-.41-.38-.93-.292-1.09a.145.145 0 0 1 .048-.009c.09 0 .238.073.511.379.957 1.073 2.217 1.663 3.546 1.663 1.414 0 2.774-.66 3.637-1.763.672-.858.965-1.9.88-2.994.07.393.107.77.107.77a4.068 4.068 0 0 1-.353 2.054c-.634 1.39-1.974 2.24-3.775 2.396l-.353.024zm-9.69-7.495a.236.236 0 0 1 .11.221.236.236 0 1 1-.47 0 .235.235 0 0 1 .36-.221zm4.295.443a.235.235 0 0 1-.11-.222.235.235 0 1 1 .469 0 .236.236 0 0 1-.359.222z\"},\"child\":[]}]})(props);\n};\nexport function SiTestrail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.27 23.896 4.5 21.124a.352.352 0 0 1 0-.5l2.772-2.77a.352.352 0 0 1 .5 0l2.772 2.772a.352.352 0 0 1 0 .5l-2.772 2.77a.352.352 0 0 1-.5 0H7.27zm4.48-4.48-2.772-2.772a.352.352 0 0 1 0-.498l2.772-2.772a.352.352 0 0 1 .5 0l2.77 2.772a.352.352 0 0 1 0 .5l-2.77 2.77a.352.352 0 0 1-.499 0zm4.48-4.48-2.77-2.772a.352.352 0 0 1 0-.498l2.771-2.772a.352.352 0 0 1 .5 0l2.77 2.772a.352.352 0 0 1 0 .498l-2.772 2.772a.352.352 0 0 1-.5 0h.002zm-8.876.084-2.772-2.77a.352.352 0 0 1 0-.499l2.772-2.773a.352.352 0 0 1 .5 0l2.772 2.772a.352.352 0 0 1 0 .498l-2.772 2.774a.352.352 0 0 1-.5 0v-.002zm4.48-4.48L9.062 7.77a.352.352 0 0 1 0-.5l2.772-2.772a.352.352 0 0 1 .5 0l2.77 2.772a.352.352 0 0 1 0 .498l-2.77 2.772a.352.352 0 0 1-.499 0v-.002.001zM7.44 6.15 4.666 3.37a.352.352 0 0 1 0-.5L7.44.104a.352.352 0 0 1 .5 0l2.772 2.772a.352.352 0 0 1 0 .5L7.938 6.142a.352.352 0 0 1-.5 0l.002.006v.001z\"},\"child\":[]}]})(props);\n};\nexport function SiTether (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.7538 10.5176c0 .6251-2.2379 1.1483-5.2381 1.2812l.0028.0007c-.0848.0064-.5233.0325-1.5012.0325-.7778 0-1.33-.0233-1.5237-.0325-3.0059-.1322-5.2495-.6555-5.2495-1.2819s2.2436-1.149 5.2495-1.2834v2.0442c.1965.0142.7594.0474 1.5372.0474.9334 0 1.4008-.0389 1.4849-.0466V9.2356c2.9994.1337 5.2381.657 5.2381 1.282zm5.19.5466L12.1248 22.389a.1803.1803 0 0 1-.2496 0L.0562 11.0635a.1781.1781 0 0 1-.0382-.2079l4.3762-9.1921a.1767.1767 0 0 1 .1626-.1026h14.8878a.1768.1768 0 0 1 .1612.1032l4.3762 9.1922a.1782.1782 0 0 1-.0382.2079zm-4.478-.4038c0-.8068-2.5515-1.4799-5.9473-1.6369V7.195h4.186V4.4055H6.3076V7.195h4.1852v1.8286c-3.4018.1562-5.9601.83-5.9601 1.6376 0 .8075 2.5583 1.4806 5.9601 1.6376v5.8618h3.025v-5.8639c3.394-.1563 5.948-.8295 5.948-1.6363z\"},\"child\":[]}]})(props);\n};\nexport function SiTextpattern (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.638 10.8h-.559s-.918-.776-1.872-1.692-1.207-1.387-1.207-1.387v-.559l7.162-7.162h.559s.744.61 1.631 1.448 1.448 1.63 1.448 1.63v.559l-2.193 2.193 4.397 4.117s2.431-2.431 3.272-3.271 1.736-2.719 1.736-2.719l2.346-2.346.61-.413 3.032 3.033-.414.611-2.344 2.344s-1.606.684-2.718 1.737-3.34 3.34-3.34 3.34 1.933 2.146 4.057 4.27c2.146 2.146 4.484 4.271 4.651 4.426.334.309-.347 1.373-.906 2.027s-.857.697-1.247.901c-.39.205-.836-.051-.836-.051s-2.056-2.261-4.082-4.304c-1.975-1.991-4.559-4.349-4.559-4.349s-6.646 6.645-7.079 7.078c-.433.434-.597 1.089-.597 1.089l-.649.65s-.701-.396-1.553-1.255-1.182-1.487-1.182-1.487l.646-.646s.598-.084 1.088-.597 7.01-7.009 7.01-7.009l-4.119-4.398zm17.267 13.04c-.02-.019-.034-.033 0 0zm-3.456-15.084.453-.453c.86-.86 3.194-1.392 3.194-1.392l2.26-2.26.258-.381-2.682-2.682-.381.258-2.261 2.261s-.942 1.925-1.802 2.784l-.423.423-.03.03-12.887 12.887c-.491.492-1.147.655-1.147.655l-.409.41s.551.787 1.004 1.24c.453.454.765.647.765.647l.462-.475s.246-.573.737-1.065zm-4.656 1.406-3.798-3.577s-.626.197-1.088.815-.488 1.125-.066 1.547c.423.422 3.085 3.082 3.085 3.082zm2.642 2.818s-.714.181-1.097.746-.359.927.052 1.339c.412.412 2.378 2.199 3.888 3.718s3.746 3.864 4.004 4.04c.26.177.26.177.26.177s.389-.303.668-.702.627-.981.462-1.132c-.166-.152-1.828-1.669-4.027-3.81s-4.21-4.376-4.21-4.376zm-15.136-5.693v.339s.369.523 1.36 1.514 1.514 1.36 1.514 1.36h.339l-.091-.257s-.766-.399-1.615-1.249c-.85-.85-1.25-1.616-1.25-1.616s2.058-2.009 3.442-3.393c1.385-1.385 3.379-3.428 3.379-3.428s.737.429 1.587 1.279 1.279 1.586 1.279 1.586l.257.091v-.339s-.369-.523-1.36-1.514-1.514-1.36-1.514-1.36h-.339z\"},\"child\":[]}]})(props);\n};\nexport function SiTga (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.878 12.482c-.043.03-.06.038-.074.051-.649.647-1.298 1.294-1.943 1.945-.04.04-.061.119-.061.18-.005.602-.003 1.203-.003 1.805 0 .035.007.07.013.13.303-.295.584-.575.873-.846.106-.1.18-.207.226-.346.256-.778.519-1.553.779-2.33.062-.186.12-.374.19-.589m-4.345 1.916c.068-.061.105-.092.139-.126l2.001-1.95c1.023-.994 2.047-1.987 3.068-2.982a.44.44 0 0 0 .108-.183c.234-.78.463-1.562.693-2.343.044-.148.084-.298.135-.477-.047.033-.064.041-.077.054-.588.584-1.178 1.168-1.765 1.753-.682.682-1.363 1.367-2.045 2.05-.723.724-1.448 1.446-2.169 2.172a.3.3 0 0 0-.079.19c-.008.456-.007.912-.009 1.368v.474M23.543.024 23.512 0c-.228.232-.454.465-.683.695-.946.948-1.891 1.896-2.839 2.842-1.058 1.056-2.12 2.108-3.177 3.164a1195.962 1195.962 0 0 0-3.466 3.473.3.3 0 0 0-.073.19c-.01.558-.01 1.117-.013 1.675 0 .042.006.083.01.144.04-.033.068-.05.09-.073 1.04-1.02 2.078-2.04 3.116-3.062l3.432-3.384c.898-.885 1.799-1.77 2.695-2.657a.45.45 0 0 0 .11-.181c.15-.492.293-.985.438-1.478l.39-1.324M4.148 12.48c.013.064.017.101.029.135.327.96.653 1.92.985 2.877a.633.633 0 0 0 .146.227c.3.303.607.6.914.897.11.107.227.207.355.323-.23.225-.427.423-.63.617-.06.057-.081.107-.048.19.115.287.223.578.334.868.054.143.11.285.166.427l.06.035 1.1-1.173a12206.887 12206.887 0 0 0 1.221 1.284c-.006.007-.027.033-.05.056-.515.513-1.03 1.029-1.547 1.54-.062.062-.073.111-.038.19.061.137.11.28.166.419l.352.879 2.158-2.125 1.18 1.208-2.634 2.636c.032.003.054.008.076.008.621 0 1.243.002 1.865-.003a.27.27 0 0 0 .163-.072c.16-.148.314-.303.47-.456a1578.776 1578.776 0 0 0 1.117-1.1c.042.04.078.07.112.103.488.48.974.96 1.468 1.434.055.053.15.09.227.09.544.008 1.088.005 1.632.005h.13L4.149 12.48m12.148 9.842c.031-.04.043-.05.047-.061.166-.425.327-.852.497-1.275.038-.093-.016-.133-.067-.183-1.235-1.23-2.47-2.46-3.703-3.691-1.59-1.588-3.177-3.179-4.766-4.768C6.526 10.566 4.747 8.79 2.97 7.011c-.19-.19-.374-.389-.56-.584l-.042.03c.009.045.013.091.026.135.242.824.482 1.648.73 2.47.041.134.09.287.184.383.703.71 1.418 1.41 2.13 2.113 1.056 1.043 2.112 2.088 3.17 3.13a.32.32 0 0 1 .105.255c-.007.427-.006.855-.007 1.282v.5c.015.01.031.018.047.027l.917-.992c.068.058.098.08.125.107.356.351.71.705 1.07 1.052a.35.35 0 0 1 .118.28c-.006.524-.004 1.049-.004 1.573 0 .047.004.093.008.175a2221.442 2221.442 0 0 1 .96-.928c.027.013.037.015.044.022.412.405.824.809 1.233 1.217a.222.222 0 0 1 .058.14c.002.302-.005.603-.006.903-.002.26 0 .518 0 .818l.966-.933 2.054 2.136m1.258-3.252-1.059-1.138a1624.888 1624.888 0 0 1-.942.91v-.207c0-.48.002-.96-.003-1.442 0-.063-.013-.144-.052-.185-.406-.431-.818-.856-1.242-1.295l-.984.953v-.192c0-.52.002-1.04-.003-1.559a.29.29 0 0 0-.062-.181c-.39-.42-.787-.832-1.215-1.281l-.95 1.037a6.332 6.332 0 0 0-.056-.037c-.002-.045-.007-.09-.007-.135 0-.549.006-1.098-.002-1.647a.377.377 0 0 0-.097-.238 1129.433 1129.433 0 0 0-3.293-3.275A15517.212 15517.212 0 0 0 2.77 4.38c-.451-.447-.908-.89-1.355-1.342a.67.67 0 0 1-.16-.268C.988 1.89.73 1.004.47.121.462.09.462.058.458.027L.495 0C.66.174.823.353.993.523c1.696 1.695 3.394 3.387 5.09 5.082 1.531 1.53 3.06 3.063 4.591 4.594 1.38 1.38 2.762 2.758 4.142 4.137 1.079 1.077 2.157 2.154 3.233 3.235.035.035.065.115.05.156-.16.432-.33.86-.497 1.29-.003.008-.012.014-.048.053\"},\"child\":[]}]})(props);\n};\nexport function SiThangs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.18 13.902a1.902 1.902 0 1 1 0-3.804 1.902 1.902 0 0 1 0 3.804m0-5.722A3.82 3.82 0 0 0 16.36 12v3.82h3.82a3.82 3.82 0 1 0 0-7.64m-8.656 5.722A1.907 1.907 0 0 1 9.611 12c0-1.05.857-1.902 1.913-1.902s1.913.852 1.913 1.902c0 1.05-.857 1.902-1.913 1.902m-7.683 0A1.907 1.907 0 0 1 1.928 12c0-1.05.857-1.902 1.913-1.902 1.057 0 1.913.852 1.913 1.902 0 1.05-.856 1.902-1.913 1.902m11.514-2.107-.002-.032a3.76 3.76 0 0 0-.04-.37l-.004-.019a3.693 3.693 0 0 0-.081-.373V11a3.836 3.836 0 0 0-3.704-2.82H3.84a3.833 3.833 0 0 0-3.794 3.254l-.001.008c-.018.118-.03.236-.036.357l-.002.02v.016C.006 11.89 0 11.945 0 12c0 .07.007.137.01.206l.002.032c.008.124.021.248.041.37l.003.018a3.833 3.833 0 0 0 3.786 3.194h11.523V12c0-.07-.006-.137-.01-.205\"},\"child\":[]}]})(props);\n};\nexport function SiThanos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h16.998A7.002 7.002 0 0 0 24 16.998V0Zm18.707 15.129h.896v.895h-.896zm-.281-3.857h1.455v1.456h-1.455Zm-.224-3.801h1.903v1.905h-1.903Zm-3.073 11.234h.895v.896h-.896zm-.28-3.902h1.456v1.457h-1.456zm-.224-3.755h1.906v1.904h-1.904Zm.224-1.897V7.696h1.456V9.15Zm-6.874 9.554h.896v.896h-.896Zm-.28-3.856h1.456v1.454H7.695Zm.28-2.401v-.896h.896v.896zm-.28-4.752h1.456V9.15H7.695ZM4.4 18.706h.897v.895h-.897Zm0-3.577h.897v.895h-.897Zm-.28-3.857h1.455v1.456H4.12Zm-.224-3.801h1.904v1.905H3.895Zm-.837-4.413H20.94v3.577h-7.153v14.307h-3.576V6.635H3.058Z\"},\"child\":[]}]})(props);\n};\nexport function SiThealgorithms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.226,19.857H1.353l1.79-4.225h4.812L13.308,3.21H7.564l-4.226,9.82h2.587c.18.3.511.51.887.51a1.04,1.04,0,0,0,1.038-1.037c0-.572-.467-1.023-1.038-1.023-.421,0-.767.24-.932.602H4.647l3.503-7.94h3.76L7.383,14.684l-4.766.03L0,20.79h8.842L10,18.263h3.835l1.278,2.526H24L15.985,3.211Zm2.27-2.586,1.384-3.023,1.503,3.023zm5.218,2.691-.872-1.759h2.737c.18.33.526.556.917.556a1.04,1.04,0,0,0,1.038-1.037,1.04,1.04,0,0,0-1.038-1.038c-.42,0-.782.256-.947.617H14.42l-2.09-4.06,1.534-3.369,1.729,3.519h.812c.165.346.526.601.932.601a1.04,1.04,0,0,0,1.038-1.037,1.04,1.04,0,0,0-1.038-1.038c-.436,0-.812.271-.962.662h-.3l-1.79-3.64,1.699-3.728,6.677,14.751Z\"},\"child\":[]}]})(props);\n};\nexport function SiTheboringcompany (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 6.959v.463h.424v1.625h.57V7.422h.445v-.463H0zm1.643 0v2.088h.57v-.842h.742v.842h.57V6.959h-.57v.781h-.742V6.96h-.57zm2.287 0v2.088h1.199V8.54h-.621v-.295h.596v-.508h-.596v-.312h.62v-.467H3.93zm17.91 2.73c-1.31 0-2.22.902-2.22 2.217 0 1.316.932 2.211 2.208 2.211 1.522 0 2.301-1.167 2.154-2.492H21.83v.887h.867c-.071.455-.425.61-.87.61-.66 0-1.02-.462-1.02-1.21-.012-.742.427-1.236 1.025-1.236.41 0 .73.216.893.66l1.064-.457c-.345-.759-1.026-1.19-1.95-1.19zm-15.877.012c-1.375 0-2.313.99-2.313 2.21 0 1.219.974 2.206 2.313 2.206 1.339 0 2.31-.987 2.31-2.207 0-1.22-.935-2.209-2.31-2.209zm-5.875.13v4.171h1.687c1.153 0 1.516-.615 1.516-1.268 0-.494-.275-.86-.824-.986.278-.147.43-.473.43-.853 0-.57-.317-1.065-1.07-1.065H.086zm8.816 0v4.171h1.123v-1.545l.993 1.545h1.373v-.047l-1.274-1.66c.584-.133.889-.601.889-1.186 0-.688-.49-1.279-1.24-1.279H8.904zm3.909 0v4.171h1.105V9.83h-1.105zm1.931 0v4.171h1.125v-2.473l1.938 2.473h1.113V9.83h-1.113v2.465L15.869 9.83h-1.125zm-13.533.839h.187c.238 0 .457.114.457.39 0 .27-.22.391-.457.391h-.187v-.781zm8.816.021h.307c.265 0 .521.216.521.48 0 .266-.201.481-.521.481h-.307v-.96zm-8.816 1.577h.25c.414-.002.693.138.693.421 0 .271-.21.412-.513.416l-.43.006v-.843zm8.156 2.552c-.656 0-1.103.498-1.103 1.112 0 .613.464 1.109 1.103 1.109.187 0 .358-.042.508-.117v-.658h-.037a.54.54 0 0 1-.44.214.54.54 0 0 1-.548-.548c0-.304.222-.551.548-.551a.54.54 0 0 1 .444.217h.033v-.662a1.137 1.137 0 0 0-.508-.116zm1.918 0c-.692 0-1.164.498-1.164 1.112 0 .613.49 1.109 1.164 1.109.674 0 1.162-.496 1.162-1.11 0-.613-.47-1.11-1.162-1.11zm1.715.045-.352 2.117h.57l.184-1.103.422 1.103h.285l.422-1.103.182 1.103h.57l-.351-2.117-.563.004-.402 1.05-.403-1.05-.564-.004zm2.57 0v2.112h.592v-.68h.324c.504 0 .717-.317.717-.71 0-.388-.21-.722-.822-.722h-.81zm2.356 0-.81 2.117h.626l.113-.34h.75l.114.34h.629l-.81-2.117h-.612zm1.594 0v2.112h.568V15.74l.97 1.237h.561v-2.112h-.562v1.244l-.97-1.244h-.567zm2.218 0 .785 1.114v.998h.567v-.989l.79-1.123h-.689l-.38.574-.381-.574h-.692zm-5.576.485h.207c.31 0 .318.478-.014.478h-.193v-.478zm-4.877.03c.337 0 .565.248.565.552a.547.547 0 0 1-.565.548.548.548 0 0 1-.566-.548c0-.304.23-.551.566-.551zm6.945.198.211.602h-.42l.21-.602z\"},\"child\":[]}]})(props);\n};\nexport function SiTheconversation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.996 10.543c-.131-4.91-4.289-8.773-9.2-8.773H9.005a8.997 8.997 0 0 0-5.957 15.746L1.05 22.23l4.942-2.98c.95.36 1.964.524 3.012.524h6.024c5.04 0 9.099-4.156 8.969-9.23zm-8.937 5.958H9.07c-2.587 0-5.205-2.03-5.696-4.583a5.724 5.724 0 0 1 5.63-6.874h5.99c2.586 0 5.205 2.03 5.696 4.582.688 3.667-2.095 6.875-5.63 6.875z\"},\"child\":[]}]})(props);\n};\nexport function SiThefinals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.523 19.319H24L14.965 6.295c-.626-.904-1.51-1.614-2.847-1.614-1.38 0-2.264.775-2.889 1.614L0 19.319h5.261l3.372-4.759 3.256 4.759h5.478l-5.934-8.712.599-.846 6.491 9.558Zm0 0\"},\"child\":[]}]})(props);\n};\nexport function SiTheguardian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.272 8.129-1.16.207V8.4l.32.127v3.577l-.28.16v.103h1.52v-.103l-.264-.145V9.961a.64.64 0 0 1 .4-.129c.24 0 .368.112.368.408v1.871l-.272.145v.111h1.512v-.111l-.271-.145v-1.863c0-.536-.225-.816-.729-.816a1.54 1.54 0 0 0-.992.361l-.031.031V8.13zm-4.512.566-.047 1.121H4.8l.744-1.007h.318v3.23l-.416.217v.111H7.36v-.119l-.416-.217V8.81h.32L8 9.816h.111l-.047-1.12zm8.033.785c-.888 0-1.434.569-1.434 1.489 0 .936.505 1.478 1.48 1.478.553 0 .952-.303 1.104-.52v-.11c-.2.103-.414.24-.718.24-.632 0-.896-.457-.928-1.05h1.752v-.023c0-1.088-.432-1.504-1.256-1.504m-.033.12c.256 0 .385.488.385 1.224l-.866.047c.002-.715.218-1.271.48-1.271m2.577 1.896-1.217.217v.08l.328.111v.928c-.088-.048-.271-.088-.511-.088-.84 0-1.4.52-1.4 1.6 0 1.024.48 1.52 1.128 1.52a1.07 1.07 0 0 0 .8-.329h.032v.32l.096.016 1.201-.158v-.106l-.338-.119v-3.976zm1.367 0a.513.513 0 0 0-.527.512.51.51 0 0 0 .527.511c.288 0 .537-.215.537-.511 0-.288-.249-.512-.537-.512m-14.52.184C1.04 11.68 0 12.233 0 13.793c0 1.456.84 2.07 2.145 2.07a4 4 0 0 0 1.359-.23v-1.465l.367-.2v-.136H2.072v.12l.375.216v1.48a.8.8 0 0 1-.336.055c-.568 0-.806-.624-.814-2.008-.008-1.16.302-1.863.91-1.863.208 0 .314.016.434.072l.664 1.047h.111l-.023-1.088c-.248-.104-.721-.183-1.21-.183m20.714 1.033c-.36.016-.714.157-.954.375h-.039v-.367h-.12l-1.2.214v.122l.336.111v2.36l-.287.16v.113h1.566v-.114l-.271-.152v-2.264a.65.65 0 0 1 .408-.127c.248 0 .385.12.385.424v1.951l-.281.16v.114H24v-.113l-.28-.16v-2.008c0-.56-.231-.8-.751-.8zm-5.772.04-1.236.224v.096l.336.127v2.32l-.282.16v.114h1.56v-.113l-.27-.153v-2.76zM5 12.76l-1.2.217v.087l.329.143v1.8c0 .52.264.856.84.856a1.34 1.34 0 0 0 .902-.375h.033v.36l.12.007 1.193-.152v-.08l-.32-.135v-2.72l-.13-.008-1.199.217v.087l.328.143v2.129a.49.49 0 0 1-.392.183c-.232 0-.367-.087-.367-.375v-2.369zm3.545 0a3.5 3.5 0 0 0-1.098.191v.809h.088l.656-.88.13-.017c.367 0 .495.201.495.793v.393l-.007-.01-.649.129c-.624.12-.928.393-.928.897s.32.798.8.798c.375 0 .617-.127.777-.351h.03c.089.216.273.343.673.343.248 0 .472-.063.584-.127v-.08l-.287-.08v-1.92c0-.664-.464-.888-1.264-.888m2.879 0-.008.008-1.2.224v.08l.329.096v2.352l-.281.16v.113h1.56v-.113l-.271-.153v-1.734c.176-.08.382-.129.654-.129.088 0 .192 0 .248.016v-.897c-.032-.016-.094-.015-.15-.015-.344 0-.632.24-.76.88h-.026v-.88zm7.488 0c-.464 0-.816.103-1.096.191v.809h.088l.657-.88.127-.017c.36 0 .496.201.496.793v.393h-.008l-.64.127c-.633.12-.936.384-.936.888s.32.8.8.8c.376 0 .616-.128.776-.352h.023c.088.216.272.343.672.343.256 0 .482-.063.594-.127v-.08l-.29-.08v-1.92c0-.664-.463-.888-1.263-.888m-4.8.144c.2-.008.255.056.335.104v2.377a.42.42 0 0 1-.279.103c-.432.016-.584-.425-.584-1.209 0-.872.207-1.359.527-1.375m-5.295 1.287v1.186c-.056.064-.128.103-.248.103-.216 0-.377-.129-.377-.609 0-.44.104-.64.424-.664zm10.368 0v1.186h-.008c-.048.064-.12.103-.24.103-.225 0-.383-.129-.383-.609 0-.44.111-.64.431-.664z\"},\"child\":[]}]})(props);\n};\nexport function SiTheirishtimes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.636 4.093V8.33h.42c.18-1.156.614-2.047 1.3-2.67.487-.448 1.27-.672 2.35-.672h1.197V17.22c0 .79-.043 1.28-.127 1.465-.116.263-.272.45-.473.557-.277.165-.642.246-1.096.246h-.518v.417h8.26v-.417h-.517c-.443 0-.793-.077-1.049-.228-.256-.15-.428-.327-.516-.528-.088-.203-.131-.706-.131-1.512V4.988h1.197c.743 0 1.264.07 1.56.208.532.254.95.595 1.256 1.023.305.427.584 1.13.834 2.11H24V4.093zM7.74 19.488c-.438 0-.787-.076-1.044-.227-.259-.15-.43-.328-.519-.529-.088-.202-.132-.705-.132-1.512V6.778c0-.79.041-1.278.127-1.464.114-.264.272-.45.472-.559.277-.162.641-.244 1.096-.244h.519v-.418H0v.418h.521c.441 0 .79.076 1.05.227.258.15.43.329.515.53.085.2.129.705.129 1.51v10.444c0 .79-.044 1.279-.128 1.465-.109.263-.264.45-.463.557-.28.164-.647.245-1.103.245H0v.418h8.26v-.418h-.52Z\"},\"child\":[]}]})(props);\n};\nexport function SiThemighty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.178.001h-4.432L12.05 13.988 9.309.001H4.856c.216.219.334.634.39 1.072v21.21c0 .621-.105 1.383-.425 1.717 1.014-.214 2.307-.416 3.414-.611V9.375l2.489 12.375c.07.46.135 1.084-.021 1.198.847-.129 1.694-.252 2.544-.366-.105-.16-.064-.652-.005-1.061L15.696 9.15v13.095c1.054-.123 2.366-.24 3.47-.349l.012-.008c-.324-.328-.43-1.1-.43-1.724V1.726c0-.627.105-1.396.43-1.726v.001z\"},\"child\":[]}]})(props);\n};\nexport function SiThemodelsresource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.25 0C.557 0 0 .557 0 1.25v21.5C0 23.442.557 24 1.25 24h21.5c.692 0 1.25-.558 1.25-1.25V1.25C24 .557 23.442 0 22.75 0h-2.734c1.667 1.037 1.521 11.428 1.68 18.734.023 1.1.616 3.805.616 3.805s-1.702.913-3.15 1.373c-.652-2.478-.633-3.488-.633-3.488l-.181-10.67-.4-4.62c-2.156 3.08-3.445 6.123-3.987 8.007-1.442.915-1.92 1.09-2.957 1.384-1.056-.552-3.91-3.216-4.961-3.921 2.096 6.826 2.238 9.642 2.238 9.642s-2.231 1.759-2.797 1.606c-.232-.064-.495-.275-.507-.516-.183-3.672-.76-5.902-1.508-8.773C2.576 9.13.32 4.07.32 4.07c.948-.641 1.52-.883 2.836-1.265L11.61 11S16.073 3.616 17.104.906c0 0 2.244-.748 2.71-.906H1.25z\"},\"child\":[]}]})(props);\n};\nexport function SiThemoviedatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.62 12a2.291 2.291 0 0 1 2.292-2.295h-.013A2.291 2.291 0 0 1 11.189 12a2.291 2.291 0 0 1-2.29 2.291h.013A2.291 2.291 0 0 1 6.62 12zm10.72-4.062h4.266a2.291 2.291 0 0 0 2.29-2.291 2.291 2.291 0 0 0-2.29-2.296H17.34a2.291 2.291 0 0 0-2.291 2.296 2.291 2.291 0 0 0 2.29 2.29zM2.688 20.645h8.285a2.291 2.291 0 0 0 2.291-2.292 2.291 2.291 0 0 0-2.29-2.295H2.687a2.291 2.291 0 0 0-2.291 2.295 2.291 2.291 0 0 0 2.29 2.292zm10.881-6.354h.81l1.894-4.586H15.19l-1.154 3.008h-.013l-1.135-3.008h-1.154zm4.208 0h1.011V9.705h-1.011zm2.878 0h3.235v-.93h-2.223v-.933h1.99v-.934h-1.99v-.855h2.107v-.934h-3.112zM1.31 7.941h1.01V4.247h1.31v-.895H0v.895h1.31zm3.747 0h1.011V5.959h1.958v1.984h1.011v-4.59h-1.01v1.711H6.061V3.351H5.057zm5.348 0h3.242v-.933H11.41v-.934h1.99v-.933h-1.99v-.856h2.107v-.934h-3.112zM.162 14.296h1.005v-3.52h.013l1.167 3.52h.765l1.206-3.52h.013v3.52h1.011v-4.59H3.82L2.755 12.7h-.013L1.686 9.705H.156zm14.534 6.353h1.641a3.188 3.188 0 0 0 .98-.149 2.531 2.531 0 0 0 .824-.437 2.123 2.123 0 0 0 .567-.713 2.193 2.193 0 0 0 .223-.983 2.399 2.399 0 0 0-.218-1.07 1.958 1.958 0 0 0-.586-.716 2.405 2.405 0 0 0-.873-.392 4.349 4.349 0 0 0-1.046-.13h-1.519zm1.013-3.656h.596a2.26 2.26 0 0 1 .606.08 1.514 1.514 0 0 1 .503.244 1.167 1.167 0 0 1 .34.412 1.28 1.28 0 0 1 .13.587 1.546 1.546 0 0 1-.13.658 1.127 1.127 0 0 1-.347.433 1.41 1.41 0 0 1-.518.238 2.797 2.797 0 0 1-.649.07h-.538zm4.686 3.656h1.88a2.997 2.997 0 0 0 .613-.064 1.735 1.735 0 0 0 .554-.214 1.221 1.221 0 0 0 .402-.39 1.105 1.105 0 0 0 .155-.606 1.188 1.188 0 0 0-.071-.415 1.01 1.01 0 0 0-.204-.34 1.087 1.087 0 0 0-.317-.24 1.297 1.297 0 0 0-.413-.13v-.012a1.203 1.203 0 0 0 .575-.366.962.962 0 0 0 .216-.648 1.081 1.081 0 0 0-.149-.603 1.022 1.022 0 0 0-.389-.354 1.673 1.673 0 0 0-.54-.169 4.463 4.463 0 0 0-.6-.041h-1.712zm1.011-3.734h.687a1.4 1.4 0 0 1 .24.022.748.748 0 0 1 .22.075.432.432 0 0 1 .16.147.418.418 0 0 1 .061.236.47.47 0 0 1-.055.233.433.433 0 0 1-.146.156.62.62 0 0 1-.204.084 1.058 1.058 0 0 1-.23.026h-.745zm0 1.835h.765a1.96 1.96 0 0 1 .266.02 1.015 1.015 0 0 1 .26.07.519.519 0 0 1 .204.152.406.406 0 0 1 .08.26.481.481 0 0 1-.06.253.519.519 0 0 1-.16.168.62.62 0 0 1-.217.09 1.155 1.155 0 0 1-.237.027H21.4z\"},\"child\":[]}]})(props);\n};\nexport function SiThenorthface (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.816 6.36v3.36h.228a4.847 4.847 0 0 1 4.764 4.764v3.036H24v-3.132c0-4.428-3.6-8.028-8.028-8.028H15.9Zm-9.06.012v.6h1.008V9.72h.696V6.972h1.008v-.6zm2.964 0V9.72h.696v-1.5h1.308v1.5h.696V6.372h-.696v1.272h-1.308V6.372Zm3 0V9.72h2.4v-.588h-1.752v-.876h1.548v-.588h-1.548V6.96h1.752v-.588ZM4.644 10.14c-.444 0-1.608.192-1.608 1.752s1.164 1.752 1.608 1.752c.444 0 1.608-.192 1.608-1.752S5.088 10.14 4.644 10.14zM0 10.236v3.336h.648v-2.376H.66l1.368 2.376h.696v-3.336h-.648v2.316h-.012L.732 10.236Zm6.54 0 .012 3.336h.684v-1.308h.72c.516 0 .54.18.54.636 0 .348.024.516.072.672h.768v-.084c-.144-.048-.144-.168-.144-.66 0-.624-.144-.732-.42-.852.324-.108.516-.42.516-.792 0-.288-.168-.948-1.056-.948zm2.916 0v.588h1.02v2.748h.696v-2.748h1.008v-.588zm2.976 0v3.336h.696v-1.5h1.296v1.5h.696v-3.336h-.696v1.26h-1.296v-1.26zm3.372 0v3.348h.156c1.08 0 1.944.876 1.944 1.944v1.992h2.388v-2.988c-.012-2.316-1.86-4.2-4.152-4.296h-.252Zm-11.16.504c.372 0 .9.228.9 1.164 0 .936-.528 1.164-.9 1.164s-.912-.228-.912-1.164c0-.936.54-1.164.912-1.164zm2.58.072h.864c.408 0 .492.252.492.432 0 .324-.18.456-.54.456h-.816Zm3.684 3.204c-.876 0-1.572.612-1.572 1.812 0 1.188.648 1.8 1.56 1.8.864 0 1.344-.516 1.488-1.26h-.72c-.084.42-.36.648-.756.648-.612 0-.852-.552-.852-1.164 0-.972.504-1.2.852-1.2.588 0 .696.384.756.588v-.012h.72c-.036-.504-.456-1.212-1.476-1.212zm-6.696.084v3.432h.708v-1.44h1.512v-.612H4.92v-.768h1.728V14.1Zm3.228 0-1.224 3.432h.756l.228-.708h1.284l.216.708h.78L8.268 14.1Zm5.232 0v3.432h2.46v-.612h-1.8v-.888h1.596v-.6h-1.596v-.72h1.8V14.1Zm3.144.012v3.432h1.596v-1.992c0-.792-.648-1.44-1.44-1.44zm-7.98.768h.012l.42 1.356h-.876Zm-4.92.912a.927.927 0 0 0-.936.924c0 .528.432.924.936.924a.917.917 0 0 0 .924-.924.917.917 0 0 0-.924-.924zm0 .144c.42 0 .756.336.756.78 0 .456-.324.792-.756.792s-.768-.348-.768-.792c0-.444.336-.78.768-.78zm-.36.24v1.092h.168V16.8h.18l.3.468h.18l-.312-.48c.168-.024.288-.108.288-.3 0-.216-.132-.312-.384-.312zm.168.132h.228c.12 0 .24.024.24.168 0 .168-.144.18-.288.18h-.18z\"},\"child\":[]}]})(props);\n};\nexport function SiTheodinproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.002 0 1.9902 7.3867L6.5684 8.963v.5762l.9746 1.9238c.806-1.53 2.8445-2.0638 4.3125-.9688l.2011.1504.2012-.1504c1.469-1.095 3.5075-.5612 4.3145.9688l.9746-1.9258v-.6894l1.461-1.461L20.998 0l-3.6328 1.8594v3.2578c-.655-.395-2.9816-1.6914-5.3086-1.6914-2.494 0-4.9868 1.4887-5.4218 1.7617V1.8594L3.002 0zm6.1113 10.2285c-.18 0-.3262.1443-.3262.3223v.998c0 .267.2192.4844.4902.4844h.5606c.304 0 .5936-.12.8086-.332a1.115 1.115 0 0 0 .336-.7969v-.3535c0-.178-.1472-.3223-.3282-.3223h-1.541zm5.291.3926c-.285 0-.5176.2278-.5176.5098 0 .281.2326.5097.5176.5097.286 0 .5176-.2287.5176-.5097 0-.282-.2316-.5098-.5176-.5098zm-7.836.0234-1.4648 5.414 1.4961 2.9513 1.375-5.1035.1973-.0977-1.6035-3.164zm10.9786 0-1.6035 3.164.1972.0977 1.375 5.1036 1.4961-2.9512-1.4648-5.414zm-5.4903 1.8047-1.828.9024L8.58 22.1953 12.0566 24l3.4766-1.8047-1.6465-8.8437-1.83-.9024zM9.668 13.629l-1.2696.625-1.6543 6.1367 1.4688 1.0489 1.455-7.8106zm4.7793 0 1.455 7.8106 1.4668-1.0489-1.6523-6.1367-1.2695-.625zm-3.0157.084h1.2813v.4512a.623.623 0 0 1-.1875.4453.6434.6434 0 0 1-.4531.1855.6451.6451 0 0 1-.4532-.1855.623.623 0 0 1-.1875-.4453v-.4512z\"},\"child\":[]}]})(props);\n};\nexport function SiTheregister (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.368 12.858a42.543 42.543 0 0 1-2.612 1.818c-.893.568-1.683.977-2.378 1.22-.695.245-1.167.198-1.413-.132-.23-.417-.242-1.028-.028-1.826.21-.802.508-1.628.893-2.485.381-.782.711-1.58.99-2.39.277-.81.412-1.632.4-2.458-.012-.826-.266-1.648-.758-2.47-.433-.67-1.08-1.174-1.94-1.508-.863-.337-1.823-.504-2.883-.492a9.544 9.544 0 0 0-3.148.58 6.839 6.839 0 0 0-2.23 1.402c-.675.626-1.207 1.408-1.6 2.345-.134.341-.221.794-.27 1.346a17.953 17.953 0 0 0-.082 1.49c-.004.444-.008.678-.004.698-.433.298-.925.663-1.481 1.096-.556.43-1.104.95-1.64 1.552a15.423 15.423 0 0 0-1.437 1.973c-.393.655-.635 1.155-.727 1.505-.048.143-.008.532.119 1.183.127.643.457 1.386 1 2.227.545.841 1.418 1.62 2.617 2.331.012.012.044-.012.09-.067a.925.925 0 0 0 .084-.087 6.701 6.701 0 0 1-.43-.476c-.261-.302-.515-.699-.757-1.175a2.88 2.88 0 0 1-.31-1.52c.048-.732.512-1.399 1.394-2.006.885-.61 2.393-1.143 4.53-1.592.606-.155 1.131-.385 1.58-.707.448-.314.686-.492.706-.532-.167 1.703.14 3.26.901 4.653a12.107 12.107 0 0 0 2.537 3.176l9.906-9.878L24 11.6c-.472.37-1.012.79-1.632 1.258zM9.438 7.363c-.156.413-.31.826-.466 1.243-.15.417-.234.651-.246.707.028.048.127.163.282.337.163.171.254.286.282.342.012.1-.044.337-.17.707-.124.37-.374.647-.739.838-.48.18-.929.214-1.346.103-.417-.103-.75-.242-1.008-.413-.254-.175-.388-.266-.396-.286l4.032-4.39.016.142c-.008.035-.087.258-.242.67z\"},\"child\":[]}]})(props);\n};\nexport function SiThesoundsresource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.25 0C.557 0 0 .557 0 1.25v4.807c.003-.02.001-.04.006-.06.16-.7 1.27-1.914 3.219-3.589C4.028 1.718 6.149.275 8.348 0H1.25zm8.21 0c1.119.23 2.168 1.177 1.55 2.338-.357.67-1.87 1.872-2.947 2.156l-.708-.098c.16-.56 1.48-1.784 1.473-2.453-.004-.47-.617-.87-1.193-.841-.728.036-2.025.873-3.166 1.845-1.142.973-2.129 2.08-2.112 2.658.028.91 2.086 1.213 4.176 1.182 2.148-.032 2.382-.095 4.164.006 1.596.09 5.601 1.363 5.44 3.535a3.108 3.108 0 01-.362 1.272c.087-.004.153-.021.245-.022.558-.003 1.337.84 1.337.84l-1.955.486s-.207-.247-.332-.242c-.267.01-4.72 3.241-4.53 6.768.111 2.084 2.746 3.566 5.187 3.508 2.584-.062 6.062-1.033 6.171-4.698.057-1.885-1.71-3.145-3.529-2.95-.737.078-2.585.79-2.478 2.165.083 1.077.747 1.45.902 1.416.549-.118 1.453-.43 1.453-.43l.219.297c-.038.391-2.31 1.254-3.207 1.248-1.468-.01-1.821-1.74-1.635-2.728.34-1.808 4.57-3.007 6.322-2.961 3.288.086 4.041 2.53 4.041 2.53l.014.015V1.25C24 .557 23.442 0 22.75 0H9.46zM0 6.324V22.75C0 23.442.557 24 1.25 24h12.037l-.006-.014s-4.661-.659-4.861-3.933c-.168-2.745 2.402-5.515 2.44-5.555-2.062.668-4.418 1.118-5.292 1.104-1.717-.029-5.058-.58-5.054-2.313.002-1.322.912-3.015 2.593-3.103.262-.017.442.017.643.384-.613.607-1.081 1.068-1.045 1.918.052 1.216 1.85 1.551 2.815 1.766.727.163 2.28.508 4.748-.332 2.495-.85 3.544-1.898 3.523-3.3-.009-.558-.476-1.458-2.36-2.087-1.732-.579-2.191-.664-4.267-.633-1.954.03-1.897.019-3.504-.013-1.822-.037-2.51-.402-2.883-.582C.474 7.16.07 6.784 0 6.324zm24 13.123l-.014.01s-.199 1.26-3.314 2.916c-2.064 1.097-5.568 1.625-5.568 1.625l-.002.002h7.648c.692 0 1.25-.558 1.25-1.25v-3.303z\"},\"child\":[]}]})(props);\n};\nexport function SiThespritersresource (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.25 0C.557 0 0 .557 0 1.25v6.674C4.756 2.364 9.47.04 12.879.066c1.472.011 3.551.87 3.46 2.747-.074 1.558-3.202 3.763-4.71 4.197L10.5 6.893c.075-.687 2.257-2.77 2.246-3.79-.006-.633-.976-1.38-1.853-1.318-2.047.145-8.146 5.276-8.059 6.944.07 1.356 3.274 1.823 6.46 1.775 3.276-.05 3.634-.116 6.352.01 2.129.098 8.24 2.02 8.293 5.39.039 2.465-2.673 4.325-6.326 5.776-3.402 1.351-8.208 2.291-9.789 2.265-2.62-.043-7.763-.901-7.758-3.543.004-2.015 1.494-4.58 3.907-4.732.399-.025.74.028 1.047.588-.934.925-1.683 1.592-1.627 2.888.08 1.855 3.02 2.501 4.492 2.829.435.096 3.397.582 6.767-.489 4.035-1.28 5.742-2.996 5.71-5.134-.014-.85-.923-2.285-3.563-3.149-2.374-.776-3.476-1.012-6.64-.965-2.98.045-5.872.109-8.263-.43-1.134-.255-1.875-.804-1.875-.804L0 10.982V22.75C0 23.442.557 24 1.25 24h21.5c.692 0 1.25-.558 1.25-1.25V1.25C24 .557 23.442 0 22.75 0H1.25z\"},\"child\":[]}]})(props);\n};\nexport function SiThewashingtonpost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 15.366V6.922l-2.188-1.998-2.426 2.569V5.66h-.357v2.236l-.571.595V6.589L16.65 4.924l-2.164 2.212.261.261.547-.547.69.619v2.093h-.119c-1.046 0-1.689.714-1.689 1.689 0 .5.072.737.143.904h.238a1.033 1.033 0 011.023-.833h.404v3.782c-1.26.428-1.998 1.522-2.14 3.02l.166.096c.57-.69 1.308-1.118 1.974-1.284v5.209l.048.023 2.26-2.069 1.07 1 .047-.025v-4.043c.476.142.904.475 1.213.904zm-2.426.523c-.571-.57-1.26-.88-2.165-.999V7.85l1.023-1.095 1.142 1.047zm-2.545 4.4l-.571-.523V8.825l.57-.571zm-5.78-6.017V7.04L11.06 4.9 8.8 7.255 6.399 4.9 4.115 7.302v-.785c0-2.021-1.26-1.688-1.26-2.997 0-.832.523-1.237 1.165-1.546l-.143-.142C1.927 2.522.88 3.544.88 4.662c0 1 .761 1.047.761 2.212v2.973C.214 9.847 0 11.18 0 11.703c0 .309.048.594.095.737h.19c.072-.404.31-.69.81-.69h.546v3.806l2.807 2.426 2.07-2.33 2.71 2.33zm-2.45 1.879l-1.927-1.642V7.73l.833-.832 1.094 1.094zm-4.424-.904l-.595.69-1.665-1.428V7.802l.904-.928L6.375 8.23Z\"},\"child\":[]}]})(props);\n};\nexport function SiTheweatherchannel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0Zm5.7324 6.1055c.0355.1689.0528.4568.0528.752v.6152c0 .095-.0118.2237-.0118.2597.211-.199.56-.334.873-.334.392 0 .7054.1698.8028.4414.0601.1744.0781.2766.0781.5723v2.1582h-.789V8.4961c0-.3071-.0843-.42-.3145-.42-.199 0-.4583.1198-.6386.2833v2.211h-.8184V7.002c0-.2898-.0239-.5777-.0605-.7051zm-4.205.2754h3.0195l-.1387.7011h-1v3.4883h-.8574V7.082H1.5273Zm7.8906 1.037c.3546 0 .691.1213.8906.3262.2831.2898.4102.704.4102 1.3496v.1875H8.9355v.0235c0 .476.235.748.6503.748.2765 0 .5362-.1024.7832-.3086l.3145.4825c-.3564.2879-.7313.4277-1.164.4277-.8867 0-1.459-.6274-1.459-1.5957.0005-.5566.115-.924.3867-1.2246.253-.2837.5607-.416.9707-.416m.0117.5898c-.3078 0-.4824.2426-.4824.67v.0117h.9336v-.0371c0-.229-.023-.3481-.0957-.463-.0782-.1196-.1932-.1816-.3555-.1816m5.959 3.6426c.0354.1689.0547.4568.0547.752v.6132c0 .0968-.0137.2237-.0137.2598.211-.199.5606-.332.875-.332.3913 0 .704.169.8008.4394.0595.1767.0781.2791.0781.5742v2.1582h-.789V14.041c0-.306-.0855-.4219-.3145-.4219-.199 0-.457.1217-.6367.2852v2.211h-.8203v-3.5684c0-.2897-.0245-.5777-.0606-.705zm-13.8926.2754h.8926l.3613 1.6523c.1689.7838.2227 1.379.2227 1.379.0174-.1624.0911-.7603.2168-1.338l.373-1.6933h.9219l.3886 1.875c.0782.3913.1797 1.1093.1797 1.1093.0115-.1334.1438-.9846.2286-1.3945l.3437-1.5898h.8848L5.498 16.1484h-.9218l-.375-1.7031c-.1263-.5602-.1865-1.1026-.1973-1.2168 0 0-.0725.5902-.2012 1.205l-.3476 1.715h-.957Zm12.043.17c-.0301.2818-.047.6197-.047.9335h.7228l-.2051.5547h-.5176v1.5488c0 .3913.0719.4942.3496.4942.0721 0 .1448-.0191.289-.0606l.1016.4805c-.2368.0967-.4472.1406-.6582.1406-.4093 0-.7339-.1808-.83-.4531-.0482-.134-.0548-.1947-.0548-.4766V13.582h-.3066v-.5527h.3067c0-.3005-.0008-.5007.0293-.7285zm7.8828.8593c.0727.1268.1137.2663.127.4394.1153-.1556.3062-.3239.459-.3906.066-.0294.1746-.0488.2636-.0488.1214 0 .174.0117.3008.0664l-.2207.7129c-.08-.042-.1462-.0606-.2364-.0606-.1815 0-.3437.0835-.4921.2578v2.1836h-.8106v-2.0625c0-.4147-.0472-.7286-.1133-.9023zm-13.5996.0078c.3552 0 .6942.1212.8925.3262.2838.2903.4102.7058.4102 1.3496v.1855H7.3418v.0254c0 .4755.2356.7461.6504.7461.2777 0 .5355-.1023.7832-.3066l.3144.4824c-.3558.2885-.73.4277-1.164.4277-.8854-.0006-1.459-.6267-1.459-1.5957 0-.5554.1137-.924.3848-1.2246.2536-.2837.5607-.416.9707-.416zm11.1308 0c.3559 0 .693.1212.8926.3262.2825.2903.4102.7058.4102 1.3496v.1855h-1.7852v.0254c0 .4755.2364.7461.6523.7461.2771 0 .5362-.1023.7832-.3066l.3125.4824c-.3552.2885-.7281.4277-1.1621.4277-.8854 0-1.459-.6267-1.459-1.5957 0-.5554.1137-.924.3848-1.2246.2536-.2837.5613-.416.9707-.416m-8.0527.002c.5175 0 .8733.1925.9941.5351.0415.1263.0607.223.0547.5547l-.0176 1.0371v.0528c0 .3306.054.4567.2891.6328l-.4277.4941c-.187-.0787-.3555-.2169-.4336-.375-.0601.059-.1274.122-.1875.164-.1509.1083-.3667.168-.6192.168-.6882 0-1.0625-.3499-1.0625-.9648 0-.723.4995-1.0586 1.4805-1.0586.0607 0 .1161-.0015.1816.004v-.127c0-.342-.0662-.457-.3613-.457-.2584 0-.5594.1279-.8906.3515l-.3438-.58c.1635-.1029.2838-.163.502-.252.3005-.1275.5593-.1797.8418-.1797m-3.0664.5879c-.3072 0-.4805.2425-.4805.6699v.0117h.9336v-.037c0-.2291-.0242-.3488-.0957-.463-.0793-.1214-.194-.1816-.3574-.1816m11.1035 0c-.2895.0146-.455.2559-.455.6699v.0117h.9355v-.037c0-.2291-.0256-.3488-.0977-.463-.0781-.1214-.1932-.1816-.3555-.1816-.0096 0-.018-.0005-.0273 0m-7.832 1.211c-.5614.0005-.754.104-.754.4706 0 .241.1519.4043.3575.4043.1502 0 .2997-.0787.4199-.211l.0137-.664zM5.912 17.289c.0349.1695.0547.457.0547.7539v.6133c0 .0962-.0117.223-.0117.2598.2103-.1996.5598-.332.873-.332.392 0 .704.1677.8008.4394.0607.1755.0781.2779.0781.5742v2.1562h-.789v-2.0742c0-.3065-.0841-.4218-.3125-.4218-.199 0-.4584.1197-.6387.2832v2.2129h-.8203v-3.5684c0-.2903-.0245-.5777-.0606-.7051zm15.6836.0039c.03.1689.043.3706.043.8027V20.5c0 .5302.0058.6014.0527.6856.03.0534.098.084.164.084.0301 0 .0459-.001.088-.0118l.1386.4824c-.1376.0541-.3055.084-.4804.084-.3445 0-.6195-.161-.7168-.4219-.0607-.1557-.0723-.2514-.0723-.6914v-2.3008c0-.4039-.013-.6514-.043-.9297zm-18.0566.1816c.4153 0 .8309.1331 1.0605.332l-.3789.5723q-.3164-.2344-.668-.2344c-.2837 0-.5626.1378-.7129.3614-.1623.2404-.2343.5906-.2343 1.078 0 .5723.0476.8916.1738 1.1212.1689.3077.4467.4687.8086.4687.2464 0 .4697-.0711.7168-.2695l.3847.5293c-.3318.2699-.6854.3906-1.162.3906-.579 0-1.024-.1862-1.3673-.5781-.3378-.3793-.5078-.8851-.5078-1.5 0-.5241.092-.9395.2832-1.3008.327-.6083.9285-.9707 1.6035-.9707zm8.5117 1.1153c.0721.1262.1132.2585.1132.3847.1197-.083.2227-.1557.3555-.2285.1623-.0835.3724-.1308.5528-.1308.3438 0 .6466.179.7421.4453.0427.1142.0606.247.0606.4394v2.2539h-.7969V19.746c0-.3492-.0591-.4512-.2695-.4512-.1623 0-.3724.109-.5606.2774v2.1816h-.8086v-2.2363c0-.2651-.0339-.5165-.1054-.7227zm3.1445 0c.071.1262.1133.2585.1133.3847.1208-.083.2238-.1557.3554-.2285.1641-.0835.375-.1308.5547-.1308.3433 0 .6447.179.7403.4453.0445.1142.0605.247.0605.4394v2.254h-.7949V19.746c0-.3492-.0611-.4511-.2715-.4511-.1623 0-.3748.109-.5605.2773v2.1816h-.8086v-2.2363c0-.265-.036-.5165-.1074-.7226zm-5.5312.0117c.5163 0 .8725.192.9921.5371.0433.1262.0633.2247.0567.5547l-.0176 1.037v.0528c0 .3318.0534.4573.289.6328l-.4296.4942c-.1864-.0788-.3541-.2175-.4317-.375-.0607.0613-.1274.1214-.1875.164-.1508.1088-.3674.168-.621.168-.687 0-1.0606-.3498-1.0606-.9629 0-.7237.5002-1.0625 1.4824-1.0625.0601 0 .1155-.0002.1817.006v-.125c0-.3451-.067-.4571-.3633-.4571-.2597 0-.5607.1266-.8907.3496l-.3457-.5801c.1635-.1022.285-.1618.502-.252.3018-.1274.5594-.1816.8438-.1816m9.2695 0c.3546 0 .6936.1212.8926.3262.283.2885.4101.7045.4101 1.3476v.1875H18.453v.0254c0 .4749.235.7461.6504.7461.2777 0 .5362-.1042.7832-.3086l.3145.4844c-.3559.2885-.7301.4258-1.1641.4258-.886 0-1.457-.6268-1.457-1.5957 0-.5548.1142-.9221.3847-1.2227.2537-.2843.5594-.416.9688-.416m.0117.5898c-.3065 0-.4805.2414-.4805.67v.0117h.9336v-.0352c0-.2296-.0235-.3512-.0957-.4648-.0793-.1214-.1939-.1817-.3574-.1817m-9.0781 1.211c-.5596 0-.75.104-.75.4707 0 .2416.148.4043.3535.4043.1509 0 .3017-.0795.4219-.213l.0117-.662z\"},\"child\":[]}]})(props);\n};\nexport function SiThingiverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.955.005C5.425-.152-.091 5.485.007 11.805c-.235 6.756 5.537 12.25 12.052 12.196C18.621 23.9 23.912 18.595 24 12.03 24.031 5.483 18.505-.18 11.955.005zm-.047 1.701a10.276 10.276 0 0 1 7.36 17.529 10.275 10.275 0 0 1-17.556-7.287C1.71 6.308 6.268 1.728 11.907 1.706zm-5.55 4.781c-.322 0-.358.033-.358.361v2.248c0 .351.04.391.398.391h3.823c.274 0 .274.004.274.265v9.736a.176.176 0 0 0 .051.146c.04.038.093.059.148.053h2.555c.247-.003.283-.035.283-.28v-9.32c0-.124.004-.239 0-.39s.055-.21.218-.21h3.9c.319.004.35-.032.35-.344V6.855c0-.34-.024-.363-.37-.363h-5.626z\"},\"child\":[]}]})(props);\n};\nexport function SiThinkpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.002 7.891a.677.677 0 0 0-.106 1.05.699.699 0 0 0 1.066-.103.675.675 0 0 0 .117-.379l.001-.001a.676.676 0 0 0-.203-.483.701.701 0 0 0-.875-.084zm10.239.403a1.268 1.268 0 0 0-.881-.342h-1.466v8.195h1.148v-3.559h.318c.675 0 1.27-.68 1.27-1.337l-.001-2.106a1.222 1.222 0 0 0-.388-.851zm-.654 3.052c0 .334-.283.334-.543.334V8.87h.158c.301 0 .384.198.384.71v1.766zm4.162 4.798l.001-.001h-.001zm-1.384-6.666c-.848 0-1.376.407-1.376 1.103v1.283h1.078v-.934c.009-.289-.023-.708.31-.708.307 0 .256.506.256.724 0 1.639-1.65 1.023-1.65 2.308v2.207c0 .498.247.763.755.763.417 0 .614-.141.859-.532h.068a.979.979 0 0 0 .065.451h1.02v-5.559c-.001-.679-.536-1.106-1.385-1.106zm.304 5.561a.315.315 0 0 1-.317.293.298.298 0 0 1-.107-.011.287.287 0 0 1-.162-.134.257.257 0 0 1-.03-.101v-1.713c.003-.328.287-.517.613-.693h.003v2.359zm3.268-7.109v2.039h-.027a1.054 1.054 0 0 0-.842-.503c-.428 0-.809.247-.809.722v5.253c-.013.551.371.782.809.782.322-.038.612-.212.798-.477h.071v.396H24V7.93h-1.063zm-.001 6.992c-.013.352-.154.411-.326.411-.158 0-.29-.102-.29-.411v-4.168c0-.259.097-.384.29-.384.158 0 .313.039.326.391v4.161zM0 8.951h1.09v7.169h1.177V8.951h1.078V7.92H0zm5.504.518a.84.84 0 0 0-.799.475h-.046V7.905H3.604v8.224h1.064v-5.388c0-.174.046-.379.317-.379.245 0 .298.165.298.389v5.379H6.35v-5.602c0-.693-.116-1.059-.846-1.059zm1.352.083h1.06v6.583h-1.06zm3.448-.069a.883.883 0 0 0-.799.465h-.044v-.389H8.404v6.581h1.054v-5.334c0-.185.014-.43.342-.43.245 0 .282.22.282.43v5.336h1.068v-5.496c.001-.693.01-1.163-.846-1.163zm4.193.079H13.43l-.611 3.033h-.101V7.928h-1.065v8.215h1.065v-3.476h.101l.622 3.476h1.091l-.676-3.604z\"},\"child\":[]}]})(props);\n};\nexport function SiThirdweb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 13.5937c-.1163.393-.2906.7639-.4387 1.143a870.5395 870.5395 0 0 1-1.2935 3.2333c-.0994.2468-.2005.4931-.2971.7412a.9115.9115 0 0 1-.8479.5725.912.912 0 0 1-.8442-.5778c-1.9393-4.8534-3.1898-7.9705-5.1009-12.7515a.9012.9012 0 0 1 .0322-.76.898.898 0 0 1 .6024-.4628c.0174-.004.0343-.0099.0517-.0151h4.2467c.0134.004.026.0093.0395.0122a.9061.9061 0 0 1 .6613.5671c.2472.6211.4947 1.2404.7426 1.858a8310.711 8310.711 0 0 1 1.945 4.8654c.1702.4274.3597.8472.4991 1.2862zm-19.0021-8.88c.0482.0135.0965.0251.1435.0414a.8605.8605 0 0 1 .5434.506 910.6628 910.6628 0 0 1 1.2551 3.1326c.6288 1.57 1.255 3.1412 1.8857 4.7105a.9012.9012 0 0 1 0 .6987c-.6574 1.6411-1.3168 3.2814-1.9757 4.9219a.8993.8993 0 0 1-.3286.4067c-.308.2088-.7209.2057-1.0283-.0032a.9163.9163 0 0 1-.3423-.4344c-.394-.9997-.796-1.9966-1.1947-2.9946-1.078-2.727-2.17-5.4485-3.2582-8.1715-.208-.52-.4144-1.041-.6253-1.5604-.1912-.449.009-.9714.451-1.1768a1.736 1.736 0 0 1 .2376-.0768zm7.6272 0c.147.0306.2856.0924.4067.1811a.9537.9537 0 0 1 .3005.4117c.8137 2.0331 1.6242 4.0675 2.44 6.0998.2243.5613.4474 1.1232.6752 1.6833a.931.931 0 0 1 0 .7244l-1.9571 4.8823c-.1296.3231-.3643.524-.7095.5764-.4295.0646-.8136-.1473-.9687-.524-.9815-2.4381-1.9539-4.8798-2.9293-7.3203-.5451-1.3667-1.091-2.7331-1.6376-4.0991-.1813-.4536-.3568-.9095-.5462-1.3596a.9105.9105 0 0 1 .0264-.7696.9072.9072 0 0 1 .607-.4724c.0157-.0034.0308-.0093.0459-.014Z\"},\"child\":[]}]})(props);\n};\nexport function SiThreadless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.866 12.281c-.08-.188-.177-.734-.019-1.047.19.243.403.552.019 1.047zm-1.49-3.192c-.231.826-.262 2.255-.027 2.852.643-1.25.111-2.625.027-2.852zm-1.63 2.403c.05-1.249.05-2.138-.22-2.64-.228.678-.114 1.388.22 2.64zm.491 1.2c.422.553.654.257.716-.002-.538-2.057-.18-3.149.187-4.397 0 0-.002 0-.003-.002-.02-.014-1.055.404-1.164.448.833 1.335-.164 2.85.264 3.953zm5.03-.183c.741-.561.678-1.729.776-2.34a.024.024 0 01-.003 0s-1.154.444-1.291.498c.594.314.79.956.518 1.842zm-6.58-.155c.232.529.65.312.824.09-.231-.469-.292-.668-.41-1.041-.383.058-.674.363-.415.95zm4.882.362c.534-.533.817-1.614.836-2.18a.031.031 0 00-.003-.001s-1.085.416-1.19.458c.446.468.35 1.017-.048 1.697.117.14.3.092.405.027zm2.817-1.715c.05.496-.082.952-.225 1.179.459.053.754-.709.225-1.179zm-1.713.365c.004.366-.22.875-.22.875.462.31.673-.27.22-.875zm-2.103 1.275c-.392-.722-.262-1.492.089-2.044l-.002-.001-.492.184a4.115 4.115 0 01-.52 1.768c.094.282.796.418.925.094zm3.316.047c-.544.517-1.093.546-1.66.074-.298.423-.688.603-1.37.359-.395.311-1.159.318-1.574-.063-.419.636-1.078.551-1.497-.096-.271.516-.776.535-1.184.171-.37.452-.875.496-1.171.044-.129.437-.691.699-1.334.348-.2.36-.831.684-1.54.388-.928.883-1.681.729-1.666-1.276l-.38-.097s.046 1.276.032 1.422c-.016.455-.38.538-.498.573-.344.101-.656-.178-.7-.419-.16-.899-.332-1.924-.38-1.94-.234-.076-.45 2.15-1.068 2.647-.672.54-1.12.125-1.595-.178l-.409.433c-.169-.917-.29-1.79-.059-2.628-.3.077-.737-.055-.8-.267.214-.295.566-.288.759-.258.11-.359.138-.795.042-1.255.617.017.66.48.662.608a1.614 1.614 0 01-.093.559.683.683 0 01.644.011.41.41 0 01.216.33 1.665 1.665 0 01-.83.159c-.457 1.142.27 1.924.908 2.104.321-2.082.139-4.514.652-5.645-.001 0-.002 0-.003-.002l-2.04.804a4.19 4.19 0 00-.294 1.127c-.055.024-1.874.707-1.866.75.07.363.075.723 0 1.08l-.008.004c-.25.1-.541.177-.742.367-.164.155.22.293.328.324a.984.984 0 00.286.026.716.716 0 00.135-.02q-.025.093-.045.187a3.814 3.814 0 00-.082.759c-.014.565.085 1.13.186 1.682l.567-.223.104-.038c.145.093.295.178.461.233.358.116.739-.097 1.062-.222.451-.175.903-.351 1.35-.536a.622.622 0 00.238.214c.346.184.963-.186 1.248-.297l.222-.087a.709.709 0 00.24.244.53.53 0 00.337.052 1.002 1.002 0 00.189-.051c.327-.109.647-.244.967-.372.51.073.957-.144 1.465-.342l.05-.02c.23.055.446.033.663-.027.191-.053.384-.135.59-.218.284.244 1.006-.111 1.104-.15.366.273 1.084-.043 1.176-.097.247.274.568.426.953.292.209-.073.416-.15.623-.229.304.158.663.179 1 .091a4.515 4.515 0 00.45-.144c.178.052.354.085.542.076.318-.015.654-.198.946-.318.382.303 1.186.068 1.634-.133a2.434 2.434 0 001.401.146c.137-.026 1.687-.606 2.413-.91-.599.22-1.31.221-1.958-.13zM5.169 9.794l-.211 3.028c.318-.498.468-2.332.211-3.028zm7.725 3.156c.036.131.377.098.418-.105-.386-.557-.667-1.827.664-1.997-.207-1.118-.047-1.95.438-2.735a.015.015 0 01-.002-.002c-.016-.014-2.016.763-2.04.803a3.54 3.54 0 00-.51 1.639c.507-.028.73 1.298 1.032 2.397zm-6.095.993s.182.278.33.095c.155-.193-.116-1.998-.12-2.025h-.004c-.088.009-.226.083-.301.111l-.06.023a1.889 1.889 0 01.128.509c.058.466.027 1.287.027 1.287zm1.272-2.047c.403.5.542 1.04.346 1.724.253.356.447.314.741.023-.595-.405-.555-1.904.442-2.462a.425.425 0 00-.038.011c-.241.085-1.587.555-1.976.782-.008.003-.053.031-.077.046a1.965 1.965 0 01.352.081zm3.463 1.188c.137.08.551.031.652-.414-.21-.686-.257-.943-.354-1.385-.455.085-.697 1.565-.298 1.8zm-1.564.361c.176.105.774.153.847-.23-.205-1.618.497-2.497.941-2.642l-.033.01-.107.038-1.84.642c.765.448.8 1.629.192 2.182zm-.402-.287c.597-.633.351-1.314.076-1.35-.484.432-.396 1.128-.076 1.35zm13.072-2.192a.077.077 0 00.035-.01.03.03 0 00.01-.03c0-.014-.005-.023-.014-.026a.066.066 0 00-.038-.004l-.056.006.007.07zm1.352-.601c0-.003-.003-.005-.004-.008l-1.105.42a.33.33 0 11-.355-.093l-.556.211a1.473 1.473 0 01.088.194c.139.381.13.845-.086 1.347 1.464-.068 2.103-1.138 2.018-2.072zm-1.384.358a.275.275 0 11-.246.302.276.276 0 01.246-.303zm-.092.13l.032.307.055-.005-.013-.129.027-.004a.02.02 0 01.015.005.07.07 0 01.014.017l.076.098.064-.007-.096-.123a.02.02 0 000-.003.078.078 0 00.02-.011.081.081 0 00.03-.079.083.083 0 00-.045-.07.13.13 0 00-.067-.008z\"},\"child\":[]}]})(props);\n};\nexport function SiThreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z\"},\"child\":[]}]})(props);\n};\nexport function SiThreedotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.38 0a.268.268 0 0 0-.256.332l2.894 11.716a.268.268 0 0 0 .01.04l2.89 11.708a.268.268 0 0 0 .447.128L23.802 7.15a.268.268 0 0 0-.112-.45l-5.784-1.667a.268.268 0 0 0-.123-.035L6.38 1.715a.268.268 0 0 0-.144-.04L.456.01A.268.268 0 0 0 .38 0zm.374.654L5.71 2.08 1.99 5.664zM6.61 2.34l4.864 1.4-3.65 3.515zm-.522.12l1.217 4.926-4.877-1.4zm6.28 1.538l4.878 1.404-3.662 3.53zm-.52.13l1.208 4.9-4.853-1.392zm6.3 1.534l4.947 1.424-3.715 3.574zm-.524.12l1.215 4.926-4.876-1.398zm-15.432.696l4.964 1.424-3.726 3.586zM8.047 8.15l4.877 1.4-3.66 3.527zm-.518.137l1.236 5.017-4.963-1.432zm6.274 1.535l4.965 1.425-3.73 3.586zm-.52.127l1.235 5.012-4.958-1.43zm-9.63 2.438l4.873 1.406-3.656 3.523zm5.854 1.687l4.863 1.403-3.648 3.51zm-.54.04l1.214 4.927-4.875-1.4zm-3.896 4.02l5.037 1.442-3.782 3.638z\"},\"child\":[]}]})(props);\n};\nexport function SiThreema (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.998 20.486a1.757 1.757 0 1 1 0 3.514 1.757 1.757 0 0 1 0-3.514zm-6.335 0a1.757 1.757 0 1 1 0 3.514 1.757 1.757 0 0 1 0-3.514zm12.671 0a1.757 1.757 0 1 1 0 3.514 1.757 1.757 0 0 1 0-3.514zM12 0c5.7 0 10.322 4.066 10.322 9.082 0 5.016-4.622 9.083-10.322 9.083a11.45 11.45 0 0 1-4.523-.917l-5.171 1.293 1.105-4.42c-1.094-1.442-1.733-3.175-1.733-5.039C1.678 4.066 6.3 0 12 0zm-.001 4.235A2.926 2.926 0 0 0 9.072 7.16v1.17h-.115a.47.47 0 0 0-.47.47v4.126c0 .26.21.471.47.471h6.086c.26 0 .47-.21.47-.47V8.798a.47.47 0 0 0-.47-.47h-.115v-1.17a2.927 2.927 0 0 0-2.93-2.924zm0 1.17c.972 0 1.758.786 1.758 1.754v1.17h-3.514v-1.17c0-.968.786-1.754 1.756-1.754z\"},\"child\":[]}]})(props);\n};\nexport function SiThumbtack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.18 6.38h11.69v2.68H6.17zm7.27 3.8v3.14c0 3.23-.02 3.74-.14 4.36a7.95 7.95 0 0 1-1.3 2.87c-.03 0-.78-1.35-.9-1.62-.17-.4-.3-.8-.4-1.25l-.09-.41-.02-5.78.16-.2a3.3 3.3 0 0 1 2.44-1.1zM12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiThunderbird (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.948 4.444h-.005c-1.92.788-2.126 2.55-1.817 3.499v.02C9.236 7.18 10.658 6.76 12 6.76c3.26 0 5.902 2.156 5.902 4.815 0 2.66-2.643 4.816-5.902 4.816l-.083-.002c-.155-.006-.354-.013-.435.118-.096.156.116.397.238.536 1.274 1.441 3.123 1.622 3.608 1.67l.076.008c-4.281.414-9.304-2.32-9.306-7.076 0-1.12.414-2.073 1.075-2.83l-.005-.002h-.003C7.31 6.38 6.376 3.47 4.629 2.898c-.124-.04-.246.054-.262.183-.23 1.924-.727 2.59-1.264 3.31-.805 1.08-1.39 2.328-1.365 3.698a10.99 10.99 0 0 1-.705-1.91c-.024-.09-.17-.365-.333-.272-.13.072-.227.274-.296.485A12.137 12.137 0 0 0 0 11.489c0 6.536 5.475 12 12 12 6.627 0 12-5.372 12-12 0-2.526-.781-4.87-2.115-6.805l.167-.002c.518 0 1.024.045 1.51.129-.734-.816-1.724-1.475-2.877-1.904a8.54 8.54 0 0 1 2.494-.495c-1.426-1.166-3.508-1.9-5.827-1.9-3.355 0-6.648 1.29-7.404 3.93zm.682 9.166c-.87-.905-3.473-3.91-3.473-3.91l.202.01 4.075 3.042c.305.223.74.22 1.043-.004l3.996-3.034.212-.018s-2.518 2.935-3.483 3.9c-.964.968-1.703.919-2.572.014zm2.774-10.083s.055.625-.576.824c-.722.227-1.042-.38-1.042-.38s.09-.417.676-.61c.626-.206.942.166.942.166z\"},\"child\":[]}]})(props);\n};\nexport function SiThunderstore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m.322 13.174 4.706 8.192L7.2 16.855 4.824 12.72a1.416 1.416 0 0 1 0-1.444l2.965-5.16c.265-.46.718-.723 1.245-.723h1.595l-3.086 6.953h3.812L6.171 22.403 16.583 9.914h-3.201l2.184-4.52h6.052L24 1.25H7.175c-.86 0-1.598.428-2.028 1.174l-4.825 8.4a2.306 2.306 0 0 0 0 2.35m7.213 9.576h9.29a2.29 2.29 0 0 0 2.03-1.176l4.825-8.4a2.317 2.317 0 0 0 0-2.35l-1.93-3.36h-4.763l2.19 3.813c.262.46.262.987 0 1.444l-2.964 5.162a1.41 1.41 0 0 1-1.248.723h-2.154l-1.497-.017z\"},\"child\":[]}]})(props);\n};\nexport function SiThurgauerkantonalbank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.872 2.262H10.775l-6.14 9.743 6.14 9.771h11.097l-6.135-9.77 6.135-9.744zM0 .297v23.406h24V.297H0zm23.057 22.486L.943 22.778V1.228h22.109l.005 21.555z\"},\"child\":[]}]})(props);\n};\nexport function SiThymeleaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.727 0C.782 0 .02.761.02 1.707v20.586C.02 23.24.782 24 1.727 24h20.546c.945 0 1.707-.761 1.707-1.707V1.707C23.98.76 23.218 0 22.273 0H1.727zm18.714 3.273c-1.861 3.694-3.3 7.627-5.674 11.046-1.064 1.574-2.329 3.163-4.16 3.86-1.31.552-2.936.337-3.98-.647-.628-.523-.54-1.43-.173-2.075.96-1.224 2.34-2.02 3.59-2.915 3.842-2.625 7.446-5.654 10.397-9.27zm-1.693 1.25c-2.503 2.751-5.381 5.16-8.452 7.269l-.003.002-.003.003c-1.327.979-2.835 1.824-3.993 3.114-.349.333-.583 1.042-.537 1.481-.622-1.043-.8-2.614-.257-3.74.526-1.19 1.742-1.807 2.876-2.292 3.757-1.353 6.695-2.926 10.369-5.836z\"},\"child\":[]}]})(props);\n};\nexport function SiTicketmaster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5153 11.3333c-.2454 0-.4826.0464-.716.1304l-.0776.4499c.2168-.105.4499-.1681.6912-.1681.1924 0 .4214.063.4214.2817 0 .063 0 .126-.0163.185h-.1923c-.5153 0-1.2924.0546-1.2924.7697 0 .3994.2699.6181.6502.6181.3026 0 .4909-.1388.679-.3828h.0082l-.0574.3324h.4624c.0491-.408.2576-1.2576.2576-1.5477 0-.5088-.3966-.6686-.818-.6686zm-.3805 1.8546c-.139 0-.2781-.0758-.2781-.2272 0-.3658.4418-.412.7076-.412h.1922c-.0857.349-.2125.6392-.6217.6392zm-8.647-.7826l.656 1.1947h-.6391l-.563-1.1647h-.0084L4.688 13.6h-.5546l.6731-3.2h.567l-.3767 1.8007h.0085l.7915-.798h.7366L5.488 12.4053zm3.8071.746c.0947 0 .1894-.0216.2562-.0517l-.0907.4485c-.0905.0216-.193.052-.2837.052-.3587 0-.6111-.1554-.6111-.5825 0-.1725.0316-.3407.067-.5175l.1498-.7506H8.4l.0828-.4228h.3824l.0907-.4574.5677-.2026-.1301.66h.4732l-.0828.4226h-.4734l-.193.9707a.9992.9992 0 00-.0236.2156c0 .1339.0826.2157.201.2157zm-8.4 0c.0947 0 .1894-.0216.2564-.0517l-.0906.4485c-.0908.0216-.1934.052-.284.052-.3587 0-.6111-.1554-.6111-.5825 0-.1725.0316-.3407.067-.5175l.1498-.7506H0l.0827-.4228h.3826l.0907-.4574.5675-.2026-.1302.66h.4734l-.0828.4226H.9107l-.1931.9707a1.004 1.004 0 00-.0237.2156c0 .1339.0828.2157.201.2157zm2.1018-.5521c0 .2816.0937.5633.4858.5633.1406 0 .3154-.0378.4644-.1093l-.0638.4459c-.1747.084-.3623.101-.5498.101-.5668 0-.9333-.3742-.9333-.9337 0-.757.5072-1.333 1.2956-1.333.213 0 .4176.0378.571.084l-.1406.4626c-.111-.0715-.26-.1093-.4176-.1093-.456 0-.7117.4205-.7117.8285zm-.4574-1.6433h-.61l.1276-.556h.6098l-.1274.556zm-.0956.408L1.9432 13.6h-.6099l.5006-2.236h.6098zm18.3563.7937c0 .164-.0199.3236-.0515.4836h-1.2524c.001-.1027.0094-.2168.0564-.387h.7276a.9136.9136 0 00.012-.1471c0-.2314-.1152-.3616-.3373-.3616-.3133 0-.4579.1904-.56.466a1.2249 1.2249 0 00-.0864.4297h-.0004l.0001.0063-.0002.012c0 .0208.0017.04.0026.0598h.0004c.0258.3406.2243.4686.5646.4686.2182 0 .4285-.0588.627-.1558l-.0677.446c-.2061.0672-.4324.122-.6507.122-.5873 0-.9841-.3029-.9841-.9464 0-.6726.4921-1.3204 1.1627-1.3204.504 0 .8373.2732.8373.8243zm1.773-.8243c.0755 0 .156.0042.227.0215l-.1247.5635a.7823.7823 0 00-.2272-.0344c-.4233 0-.628.3656-.704.7226l-.2137.9935h-.597l.4098-1.9183c.0177-.0946.0356-.1936.0535-.2968h.5702l-.0802.4174h.0089c.107-.241.401-.469.6773-.469zm1.1433.2631c0-.1183-.0707-.1763-.2142-.1763h-.239v.6255h.1018v-.2765h.0852l.1746.2765h.1082l-.178-.2765c.098 0 .1614-.0724.1614-.1727zm-.3514.093v-.1892h.1208c.0654 0 .129.0206.129.0915 0 .0812-.0507.0976-.129.0976h-.1208zM13.2 11.9398c0 .1977-.0497.4216-.0955.602L12.8804 13.6h-.5564l.2243-1.0796c.029-.1333.0706-.3399.0706-.473 0-.1635-.1205-.2667-.2616-.2667-.3862 0-.4817.4644-.5522.7656l-.22 1.0537h-.5564l.2242-1.0796c.0291-.1333.0707-.3399.0707-.473 0-.1635-.1205-.2667-.2616-.2667-.3779 0-.4817.4688-.5523.7656l-.22 1.0537h-.5564l.3903-1.9699c.0167-.086.0332-.1764.0457-.2453h.519l-.0498.297h.0082c.1496-.228.3944-.3485.656-.3485.2533 0 .5148.1548.544.4215h.0082c.1411-.2881.4526-.4215.7514-.4215.3197 0 .5937.271.5937.6066zM23.4668 11.2h-.0001a.5343.5343 0 00-.5334.5337.534.534 0 00.5334.533.5341.5341 0 00.5333-.533.5343.5343 0 00-.5332-.5337zm.0017.9872c-.2481 0-.4333-.198-.4333-.4535 0-.2556.1852-.4537.4332-.4537.2448 0 .4297.1981.4297.4537 0 .2555-.1849.4534-.4296.4535zm-5.4177.5328a1 1 0 00-.0236.2156c0 .1339.0828.2157.201.2157.0947 0 .1894-.0216.2563-.0517l-.0906.4485c-.0907.0216-.1932.052-.284.052-.3587 0-.6111-.1554-.6111-.5825 0-.1725.0317-.3407.067-.5175l.15-.7506h-.3825l.0827-.4228h.3827l.0906-.4574.5676-.2026-.13.66H18.8l-.0828.4226h-.4733l-.1931.9707zm-1.4036-1.3867c.216 0 .4364.0379.5528.0667l-.128.4247c-.0635-.033-.2267-.0792-.3941-.0792-.1762 0-.3967.0462-.3967.2186 0 .2734.767.3744.767.9042 0 .5636-.5157.7317-1.0226.7317-.2381 0-.4763-.0336-.6923-.1303l.128-.45c.1675.0883.335.1682.5642.1682.1984 0 .4056-.0632.4056-.2396 0-.3491-.767-.383-.767-.9254 0-.5088.5156-.6896.9831-.6896zm-8.3805.8243c0 .164-.02.3236-.0516.4836H6.9628c.001-.1027.0092-.2168.0565-.387h.7275a.9136.9136 0 00.012-.1471c0-.2314-.1152-.3616-.3373-.3616-.3134 0-.4579.1904-.56.466a1.2276 1.2276 0 00-.0864.4297h-.0004l.0001.0063-.0003.012c0 .0208.0018.04.0027.0598h.0005c.0255.3406.2243.4686.5644.4686.2182 0 .4286-.0588.627-.1558l-.0676.446c-.2062.0672-.4324.122-.6507.122-.5873 0-.9841-.3028-.9841-.9464 0-.6726.492-1.3204 1.1626-1.3204.504 0 .8374.2732.8374.8243z\"},\"child\":[]}]})(props);\n};\nexport function SiTicktick (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.383 0 0 5.383 0 12s5.383 12 12 12 12-5.383 12-12h-2.7c0 5.128-4.172 9.3-9.3 9.3-5.128 0-9.3-4.172-9.3-9.3 0-5.128 4.172-9.3 9.3-9.3V0Zm7.4 2.583-7.505 9.371L8.388 9.08l-2.002 2.436 4.741 3.888a1.573 1.573 0 0 0 2.231-.233l8.504-10.617L19.4 2.583Z\"},\"child\":[]}]})(props);\n};\nexport function SiTidal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.012 3.992L8.008 7.996 4.004 3.992 0 7.996 4.004 12l4.004-4.004L12.012 12l-4.004 4.004 4.004 4.004 4.004-4.004L12.012 12l4.004-4.004-4.004-4.004zM16.042 7.996l3.979-3.979L24 7.996l-3.979 3.979z\"},\"child\":[]}]})(props);\n};\nexport function SiTiddlywiki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12 0 10.23 6v12L12 24 1.77 18V6L12 0zm3.961 17.889.154-.02c.113-.043.22-.081.288-.19.227-.329-.357-.462-.566-.827-.209-.364-1.071-2.364-.418-2.924s1.359-.79 1.629-1.315c.117-.236.238-.475.269-.742.159.132.283.255.497.262.567.036 1.054-.658 1.307-1.315.135-.404.244-.832.218-1.226-.069-.76.013-1.582.62-2.087-.599.302-1.167.69-1.845.789-.374-.114-.75-.216-1.147-.2-.194-.253-.456-.727-.797-.782-.58.208-.597 1.105-.842 2.321a5.351 5.351 0 0 0-1.154-.193c-.54-.035-1.42.134-2.038.116-.619-.018-1.836-.562-2.849-.445-.407.05-.817.12-1.195.291-.231.105-.565.421-.733.468-1.69.473-4.442.453-3.879-2.102.044-.196.056-.373-.03-.417-.11-.055-.17.06-.234.187-.985 2.138.764 3.514 2.752 3.52.625-.048.324-.007.904-.118l-.015.082a1.87 1.87 0 0 0 .865 1.718c-.27.771-.805 1.389-1.173 2.097.138.881 1.031 2.057 1.4 2.225.326.147 1.036.149 1.2-.089.059-.111.02-.351-.044-.474.277.308.651.736 1.013.942.217.104.434.17.677.18l.31-.016c.154-.033.336-.058.44-.195.116-.2.007-.756-.476-.796-.483-.04-.795-.222-1.24-.882-.365-.638.077-1.517.226-2.145.765.123 1.535.22 2.31.222.336-.017.67-.03 1.001-.093.106.27.402 1.025.404 1.239.007.601-.219 1.205-.121 1.807.06.177.005.512.35.526l.388.018.267-.008c.341.573.637.572 1.307.591zm-7.518-1.66-.063-.056c-.184-.198-.66-.544-.572-.865.075-.238.213-.457.323-.683l-.004.023c-.02.282-.059.56.032.837.278.228.663.59.918.837-.138-.038-.4-.117-.53-.066l-.104-.026z\"},\"child\":[]}]})(props);\n};\nexport function SiTide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.694 12.509h3.393c-.206-.846-.883-1.272-1.647-1.272-.883 0-1.5.48-1.746 1.272zm1.746 4.48c-2.238 0-3.679-1.57-3.679-3.648 0-2.024 1.501-3.662 3.693-3.662 2.211 0 3.546 1.532 3.546 3.569 0 .273-.027.626-.027.672h-5.346c.206.886.87 1.465 1.853 1.465.844 0 1.461-.366 1.853-.932l1.421.872c-.677 1.025-1.76 1.665-3.314 1.665m-6.179-3.634a1.89 1.89 0 00-1.906-1.884c-1.036 0-1.84.846-1.84 1.884 0 1.052.804 1.884 1.84 1.884 1.09 0 1.906-.832 1.906-1.884zm-.026 2.956c-.492.386-1.256.613-2.046.613a3.546 3.546 0 01-3.533-3.569c0-2.024 1.62-3.608 3.533-3.608.79 0 1.554.246 2.046.626v-2.91h1.892v9.368h-1.892v-.52M7.796 9.814H5.904v7.01h1.892v-7.01m-2.922 0v1.697H2.91v2.816c0 .626.285.872.93.872H4.88v1.625H3.706c-1.853 0-2.69-.832-2.69-2.404v-2.91H0V9.814a1.01 1.01 0 001.01-1.012V8.01h1.892v1.804h1.972m3.124-1.657c0 .632-.511 1.145-1.142 1.145-.63 0-1.142-.513-1.142-1.145 0-.633.511-1.145 1.142-1.145a1.135 1.135 0 011.142 1.145Z\"},\"child\":[]}]})(props);\n};\nexport function SiTidyverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.392 18V5.999l-.829-.478L13.706.984 12 0l-1.706.984-7.857 4.537-.829.478v12.002l.829.478 7.956 4.594 1.609.927 1.61-.927 7.956-4.594.824-.479Zm-19.955-.45V6.508L12 .984l9.563 5.522v11.042L12 23.072 2.437 17.55Zm10.061 4.416v.228l.197.113.193-.113v-.228l-.193-.112-.197.112Zm-1.419-.111v.17l.148.082.141-.082v-.17l-.141-.082-.148.082Zm-.757-1.072.292-.164.291.167v.333l-.291.165-.292-.167v-.334Zm1.757-.006v.207l.178.102.176-.102v-.207l-.176-.101-.178.101Zm2.788-.026v-.15l-.127-.074-.131.074v.15l.131.073.127-.073Zm-6.425-.468.291-.164.292.166v.334l-.292.164-.291-.166v-.334Zm4.898-.246v.39l.339.192.333-.192v-.39l-.333-.193-.339.193Zm-3.445.291v.133l.116.067.117-.067v-.133l-.117-.068-.116.068Zm2.289-.54.113-.065.113.065v.129l-.113.063-.113-.065v-.127Zm3.127-.149v.167l.144.082.141-.082v-.167l-.141-.082-.144.082Zm1.403-.159v.122l.105.059.104-.059v-.122l-.104-.06-.105.06Zm-9.8-.432.178-.102.182.102v.207l-.182.101-.178-.101v-.207Zm.903.149v.101l.091.054.087-.054v-.101l-.087-.051-.091.051Zm5.115-.241v.206l.179.102.175-.102v-.206l-.175-.099-.179.099Zm-2.883.196v-.108l-.091-.051-.091.051v.108l.091.05.091-.05Zm1.453-.309v.206l.178.103.176-.103v-.206l-.176-.102-.178.102Zm3.03.038.113-.062.11.062v.127l-.11.065-.113-.065v-.127Zm-5.561-.129.178-.102.181.102v.207l-.181.102-.178-.102v-.207Zm6.542-.418v.257l.223.128.218-.128v-.257l-.218-.125-.223.125Zm-5.439.008v.207l.178.101.175-.101v-.207l-.175-.101-.178.101Zm-3.869.124v.111l.097.053.093-.053v-.111l-.093-.053-.097.053Zm11.941-.576v.351l.306.172.297-.172v-.351l-.297-.175-.306.175Zm-13.076.028.288-.161.289.164v.331l-.289.161-.288-.161v-.334Zm8.941.444v-.102l-.088-.051-.09.051v.102l.09.051.088-.051Zm2.953-.192v.127l.11.062.108-.062v-.127l-.108-.062-.11.062Zm-8.811-.521v.425l.368.212.362-.212v-.425l-.362-.207-.368.207Zm-.941.21v.15l.129.076.13-.076v-.15l-.13-.077-.129.077Zm12.408-.153.125-.071.124.071v.145l-.124.07-.125-.07v-.145Zm-7.99-.011v-.461l-.391-.224-.399.224v.461l.399.226.391-.226Zm3.335-.532.319-.181.322.183v.371l-.322.179-.319-.182v-.37Zm-2.886.509a.319.319 0 0 1 .026-.026h-.009c-.003.009-.011.017-.017.026Zm4.995-.444v.206l.178.102.176-.102v-.206l-.176-.102-.178.102Zm-13.637-.207v.323l.28.161.277-.161v-.323l-.277-.161-.28.161Zm10.803.238v-.266l-.223-.13-.232.13v.266l.232.13.223-.13Zm-9.552-.283v.139l.125.07.118-.07v-.139l-.118-.07-.125.07Zm8.457 0 .12-.068.121.068v.139l-.121.068-.12-.071v-.136Zm-5.871-.105v.207l.178.105.175-.105v-.207l-.175-.099-.178.099Zm12.514.003v.131l.113.065.111-.065v-.131l-.111-.065-.113.065Zm-3.692-.136.178-.101.181.101v.207l-.181.102-.178-.102v-.207Zm-3.91-.019v.207l.179.101.175-.101v-.207l-.175-.102-.179.102Zm6.263.161v-.207l-.175-.101-.181.101v.207l.181.102.175-.102Zm-8.2-.294v-.204l-.175-.102-.179.102v.204l.179.101.175-.101Zm-4.045-.275v.136l.119.068.116-.068v-.136l-.116-.067-.119.067Zm-3.388.032.091-.051.087.051v.101l-.087.051-.091-.051v-.101Zm5.524-.187v.206l.178.102.179-.102v-.206l-.179-.099-.178.099Zm-2.823-.005v.206l.179.102.174-.102v-.206l-.174-.103-.179.103Zm2.3.067.091-.051.093.051v.105l-.093.051-.091-.051v-.105Zm13.314-.107.127-.074.127.074v.147l-.127.073-.127-.073v-.147Zm-9.795-.012.118-.067.119.067v.139l-.119.065-.118-.067v-.137Zm3.679-.22.221-.125.218.125v.252l-.218.121-.221-.121v-.252Zm-1.623.133v-.354l-.303-.175-.308.175v.354l.308.175.303-.175Zm1.026.084v-.149l-.127-.074-.13.074v.149l.13.074.127-.074Zm3.771.003v-.122l-.105-.061-.108.061v.122l.108.062.105-.062Zm1.083-.282.181-.099.178.101v.207l-.178.099-.181-.102v-.206Zm-15.356.24v-.119l-.098-.059-.103.059v.119l.103.056.098-.056Zm5.326-.105v.105l.088.051.088-.051v-.105l-.088-.05-.088.05Zm2.662-.104v.125l.11.061.105-.061v-.125l-.105-.063-.11.063Zm-7.312-.04.125-.07.124.07v.144l-.124.071-.125-.071v-.144Zm12.196-.3v.331l.289.164.283-.164v-.331l-.283-.164-.289.164Zm-9.687-.138v.319l.277.159.271-.159v-.319l-.271-.156-.277.156Zm-1.494-.119.292-.164.289.164v.333l-.289.164-.292-.164v-.333Zm5.092.396v-.206l-.176-.102-.18.102v.206l.18.101.176-.101Zm-8.075-.487v.277l.243.136.234-.136v-.277l-.234-.138-.243.138Zm11.438-.211.283-.162.28.162v.322l-.28.158-.283-.158v-.322Zm-2.472.33v-.206l-.175-.102-.178.102v.206l.178.102.175-.102Zm-4.961-.231v.135l.119.068.116-.068v-.135l-.116-.066-.119.066Zm9.229-.154.181-.099.178.102v.207l-.178.099-.181-.102v-.207Zm3.751-.045.181-.102.178.102v.207l-.178.101-.181-.101v-.207Zm-1.089-.036v.206l.178.102.175-.102v-.206l-.175-.103-.178.103Zm-8.596-.034.178-.099.181.101v.207l-.181.099-.178-.102v-.206Zm7.074.203v-.207l-.175-.101-.181.101v.207l.181.102.175-.102Zm1.027-.028v-.207l-.176-.102-.178.102v.207l.178.102.176-.102Zm-10.384-.24.178-.099.182.101v.207l-.182.099-.178-.102v-.206Zm-3.657-.028v-.324l-.274-.158-.281.158v.324l.281.16.274-.16Zm.495-.148.178-.101.181.101v.207l-.181.101-.178-.101v-.207Zm2.271.187v-.136l-.113-.065-.116.065v.136l.116.064.113-.064Zm4.147-.017.085.051.087-.051v-.099l-.087-.048-.085.048v.099Zm-5.335-.006v-.119l-.099-.059-.105.059v.119l.105.057.099-.057Zm7.258-.359.201-.113.207.116v.235l-.207.113-.201-.116v-.235Zm7.666.009v.214l.189.108.184-.108v-.214l-.184-.108-.189.108Zm-11.473-3.31.504 1.437c.053.162.11.351.147.498h.008c.042-.146.09-.33.147-.509l.455-1.426h.441l-.625 1.734c-.3.835-.504 1.262-.787 1.525a1.098 1.098 0 0 1-.512.286l-.104-.371a1.09 1.09 0 0 0 .365-.215 1.32 1.32 0 0 0 .35-.492.323.323 0 0 0 .034-.105.393.393 0 0 0-.028-.116l-.848-2.243.453-.003Zm3.182 3.46v-.136l-.113-.065-.116.065v.136l.116.064.113-.064Zm-9.373-.796v-.104l-.089-.051-.093.051v.104l.093.055.089-.055Zm5.442-.859c0 .215.005.464.019.628H7.91l-.02-.421h-.008a.842.842 0 0 1-.783.478c-.554 0-.982-.498-.982-1.236-.006-.808.47-1.306 1.03-1.306.35 0 .588.175.693.373h.008V9.91h.416v2.937Zm8.613.178c.164.107.353.17.551.176.303 0 .447-.162.447-.362 0-.212-.119-.326-.427-.447-.413-.156-.609-.396-.609-.69 0-.393.301-.713.793-.713a1.09 1.09 0 0 1 .563.15l-.105.322a.865.865 0 0 0-.47-.142c-.246 0-.385.15-.385.331 0 .201.139.291.435.413.399.162.603.374.603.735 0 .428-.314.73-.857.73-.252 0-.484-.065-.645-.166l.106-.337Zm2.073-.685c.008.599.37.846.786.846.301 0 .479-.057.637-.127l.071.317a1.78 1.78 0 0 1-.764.15c-.707 0-1.128-.493-1.128-1.228s.407-1.312 1.077-1.312c.75 0 .948.698.948 1.145 0 .067-.006.138-.014.206H18.95v.003Zm-5.521 0c.008.599.37.846.786.846.3 0 .478-.057.637-.127l.071.317a1.78 1.78 0 0 1-.764.15c-.707 0-1.128-.493-1.128-1.228s.407-1.312 1.077-1.312c.749 0 .947.698.947 1.148 0 .068-.005.138-.014.206h-1.612Zm-9.137-1.997v.699h.597v.336h-.597v1.312c0 .303.082.473.315.473a.871.871 0 0 0 .243-.031l.019.33a.993.993 0 0 1-.37.059c-.195 0-.35-.065-.45-.186-.119-.13-.161-.348-.161-.633v-1.327h-.359v-.336h.356v-.583l.407-.113ZM15.477 11.8c0-.286-.006-.532-.02-.758h.365l.014.479h.02c.105-.329.356-.535.636-.535a.41.41 0 0 1 .119.018v.418a.476.476 0 0 0-.142-.014c-.294 0-.503.238-.56.569a1.562 1.562 0 0 0-.019.206v1.299h-.413V11.8ZM5.265 13.478v-2.432h.419v2.432h-.419Zm5.954-2.436.45 1.369c.077.221.139.421.184.622h.014c.054-.201.119-.401.196-.622l.446-1.369h.436l-.902 2.432h-.399l-.874-2.432h.449Zm10.155 2.187v-.148l-.125-.073-.13.073v.148l.13.073.125-.073ZM7.845 12.032a.85.85 0 0 0-.02-.187c-.062-.282-.288-.512-.603-.512-.432 0-.687.402-.687.939 0 .493.229.9.678.9.281 0 .535-.195.611-.529a.875.875 0 0 0 .02-.192v-.419h.001Zm-5.018.424v.173l.15.088.147-.088v-.173l-.147-.085-.15.085Zm11.826-.433c.006-.282-.11-.718-.58-.718-.421 0-.608.413-.638.718h1.218Zm5.521 0c.006-.282-.11-.718-.579-.718-.422 0-.609.413-.643.718h1.222Zm-17.61-.48.108-.06.11.06v.124l-.11.062-.108-.062v-.124Zm18.555-.416.128-.071.127.074v.147l-.127.07-.128-.073v-.147Zm-18.142-.365v-.15l-.127-.076-.133.076v.15l.133.077.127-.077Zm2.752-.405a.254.254 0 0 1-.237.272h-.028c-.147 0-.252-.122-.252-.272 0-.155.111-.277.261-.277.157.004.256.122.256.277Zm14.409-.447.293-.166.295.166v.34l-.295.167-.293-.167v-.34Zm-.88-.158v.207l.178.102.175-.102v-.207l-.175-.099-.178.099Zm-2.099-.11v.207l.181.101.175-.101v-.207l-.175-.102-.181.102Zm-5.823.113v-.206l-.176-.102-.178.102v.206l.178.102.176-.102Zm1.388-.501-.339-.194-.348.194v.403l.348.194.339-.194v-.403Zm1.055.233V9.28l-.175-.102-.179.102v.207l.179.101.175-.101Zm-6.712-.074v-.207l-.175-.099-.178.099v.207l.178.102.175-.102Zm14.06.048v-.102l-.087-.048-.085.048v.102l.085.048.087-.048Zm-5.551-.314.18-.101.178.101v.207l-.178.101-.18-.101v-.207ZM2.847 9.113l.181-.102.178.102v.206l-.178.103-.181-.103v-.206Zm11.58 0v.206l.178.103.176-.103v-.206l-.176-.102-.178.102Zm5.103.107v.099l.087.051.085-.051V9.22l-.085-.05-.087.05Zm-9.923-.036v.082l.071.039.068-.039v-.082l-.068-.039-.071.039Zm8.477-.484v.396l.345.198.337-.198V8.7l-.337-.198-.345.198Zm-13.189.43v-.206l-.178-.102-.181.099v.206l.181.105.178-.102Zm12.086-.333.178-.103.181.103v.206l-.181.102-.178-.102v-.206Zm-8.387.09v-.28l-.24-.138-.243.138v.28l.243.139.24-.139Zm-2.749-.145v.128l.11.065.108-.065v-.128l-.108-.062-.11.062Zm-1.932-.228v.11l.097.054.093-.054v-.11l-.093-.055-.097.055Zm1.649-.026v-.263l-.226-.13-.229.13v.263l.229.133.226-.133Zm10.002-.017v.073l.062.034.063-.034v-.073l-.063-.036-.062.036Zm-3.015-.045.087-.051.091.051v.102l-.091.05-.087-.05v-.102Zm-4.721-.495-.343-.198-.35.198v.404l.35.199.343-.199v-.404Zm6.55.246-.174-.099-.182.099v.209l.182.102.174-.102v-.209Zm6.326-.226.305-.172.305.174v.351l-.305.173-.305-.173v-.353Zm-10.299-.003.294-.167.294.167v.339l-.294.164-.294-.166v-.337Zm9.481.195v.207l.181.101.176-.101v-.207l-.176-.099-.181.099Zm-4.885-.017.181-.102.178.102v.207l-.178.102-.181-.102v-.207ZM3.707 7.807v.31l.269.154.271-.154v-.31l-.271-.153-.269.153Zm8.103.155-.175-.102-.178.102v.206l.178.103.175-.103v-.206Zm4.978-.108v-.423l-.358-.207-.371.207v.423l.371.21.358-.21Zm-7.899.108v-.207l-.176-.101-.181.101v.207l.181.102.176-.102Zm9.509-.252.159-.091.158.091v.184l-.158.091-.159-.091V7.71ZM6.6 7.773v-.269l-.234-.133-.233.13v.268l.233.134.234-.13ZM2.94 7.6v.133l.117.065.113-.065V7.6l-.113-.065-.117.065Zm9.94.031.181.102.175-.102v-.206l-.175-.102-.181.102v.206Zm-2.981.051.09.051.088-.051V7.58l-.088-.05-.09.05v.102Zm-5.041-.043v-.104l-.087-.051-.094.051v.104l.094.055.087-.055Zm9.959-.325.178-.102.182.102v.206l-.182.103-.178-.103v-.206Zm-1.111-.045.257.147.255-.147v-.297l-.255-.147-.257.147v.297Zm4.395.073v-.146l-.127-.074-.127.074v.146l.127.074.127-.074Zm1.361-.174v.113l.099.056.095-.056v-.113l-.095-.055-.099.055ZM7.837 7.111v-.207l-.176-.102-.181.102v.207l.181.101.176-.101Zm-4.023-.37v.293l.255.144.249-.144v-.293l-.249-.145-.255.145Zm4.537.123.181-.101.179.101v.207l-.179.102-.181-.102v-.207Zm12.066-.039.179-.102.181.102v.207l-.181.101-.179-.101v-.207Zm-14.855.223v-.104l-.087-.048-.091.048v.104l.091.051.087-.051Zm11.532-.26v.206l.182.103.174-.103v-.206l-.174-.102-.182.102Zm-4.279-.252-.306-.175-.314.175v.363l.314.178.306-.178v-.363Zm-6.087.06v.139l.121.067.116-.067v-.139l-.116-.068-.121.068Zm4.415.04v-.207l-.175-.101-.182.101v.207l.182.101.175-.101Zm3.1-.36.181-.102.178.102v.206l-.178.103-.181-.103v-.206Zm-5.04-.209.288-.162.289.164v.332l-.289.164-.288-.164v-.334Zm9.206.34V6.2l-.175-.099-.179.099v.207l.179.101.175-.101Zm1.567-.049v.102l.088.048.088-.048v-.102l-.088-.048-.088.048Zm-.543.009V6.16l-.175-.101-.179.101v.207l.179.101.175-.101Zm-3.162-.199.122-.067.124.067v.142l-.124.071-.122-.071v-.142Zm-.645.089V6.05l-.175-.099-.181.099v.207l.181.104.175-.104Zm-7.21-.066v-.206l-.175-.099-.178.099v.206l.178.102.175-.102Zm-3.21-.246.178-.101.178.101v.207l-.178.101-.178-.101v-.207Zm1.279.232v-.09l-.077-.046-.079.046v.09l.079.046.077-.046Zm6.33-.486.178-.102.181.102v.206l-.181.102-.178-.102v-.206ZM6.773 5.68v-.337l-.286-.164-.291.164v.337l.291.164.286-.164Zm10.912-.085V5.19l-.342-.198-.351.198v.405l.351.197.342-.197Zm-5.538.039v-.133l-.116-.068-.116.068v.133l.116.068.116-.068Zm-2.215-.096.178.102.176-.102v-.206l-.176-.103-.178.103v.206Zm4.028.003v-.105l-.09-.053-.091.053v.105l.091.054.09-.054Zm4.922-.003v-.099l-.085-.051-.088.051v.099l.088.051.085-.051Zm-2.843-.305.178-.103.181.103v.206l-.181.102-.178-.102v-.206Zm-5.035-.419.178-.102.182.102v.207l-.182.101-.178-.101v-.207Zm6.616-.13.182-.102.178.102v.207l-.178.101-.182-.101v-.207Zm-4.019-.042.181-.099.178.101v.207l-.178.099-.181-.102v-.206Zm-.727.158v-.136l-.116-.068-.122.068V4.8l.122.067.116-.067Zm2.249-.116v-.207l-.178-.102-.179.102v.207l.179.102.178-.102Zm.554-.175.138-.079.139.079v.158l-.139.079-.138-.079v-.158Zm-4.042-.015v.102l.088.051.087-.051v-.102l-.087-.05-.088.05Zm-1.592-.082V4.07l-.292-.164-.294.164v.342l.294.167.292-.167Zm-1.941.057v-.156l-.13-.076-.135.076v.156l.135.076.13-.076Zm2.447-.003v-.153l-.13-.076-.133.076v.153l.133.077.13-.077Zm.416-.37.178.101.175-.101v-.207l-.175-.102-.178.102v.207Zm-.076-.204v-.207l-.176-.101-.178.101v.207l.178.102.176-.102Zm3.776-.201v-.43l-.366-.209-.373.209v.43l.373.215.366-.215Zm-3.171-.167.308.175.303-.175v-.353l-.303-.173-.308.173v.353Zm-1.892-.365.129-.073.128.073v.148l-.128.073-.129-.073v-.148Zm3.736-.619v.206l.178.102.176-.102V2.54l-.176-.102-.178.102Zm.871-.04.179-.102.18.102v.207l-.18.102-.179-.102V2.5Zm-2.783.124v-.206l-.175-.102-.181.102v.206l.181.102.175-.102Zm2.164-.288V2.13l-.176-.102-.178.102v.206l.178.102.176-.102Zm-2.448-.491.105-.061.108.061v.122l-.108.061-.105-.061v-.122Zm1.198-.088V1.55l-.173-.101-.181.101v.207l.181.101.173-.101Z\"},\"child\":[]}]})(props);\n};\nexport function SiTietoevry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1.239v1.966H0v1.282h1v2.55c0 1.641.434 2.131 2.121 2.131.36 0 .72-.047 1.084-.059V7.654c-.174 0-.351.024-.514.024-.43 0-.709-.105-.709-.582v-2.61h1.223v-1.28H2.982L2.98 1.238zm3.744 0v1.427h1.98V1.24zm9.66 0v1.966h-1v1.282h1v2.55c0 1.641.434 2.131 2.12 2.131.36 0 .72-.047 1.085-.059V7.654c-.174 0-.352.024-.514.024-.43 0-.709-.105-.709-.582v-2.61h1.223v-1.28h-1.223l-.002-1.967zm-4.201 1.814a3.129 3.129 0 00-3.111 3.088c0 1.967 1.338 3.12 3.306 3.12 1.351 0 2.642-.588 3.004-1.944H11.55a1.183 1.183 0 01-1.128.644 1.27 1.27 0 01-1.35-1.334h4.435c.094-1.989-.99-3.572-3.156-3.572a3.129 3.129 0 00-.148-.002zm10.761 0a3.044 3.044 0 00-.158.002 3.104 3.104 0 103.193 3.11 3.044 3.044 0 00-3.035-3.112zm-16.22.152V9.11h1.98V3.205zm5.588 1.15a1.287 1.287 0 01.02 0 1.206 1.206 0 011.175 1.198H9.072a1.287 1.287 0 011.26-1.197zm10.474.17c.919 0 1.21.893 1.21 1.64 0 .745-.29 1.626-1.21 1.626-.919 0-1.197-.88-1.197-1.627 0-.746.278-1.638 1.197-1.638zM4.599 10.54a2.365 2.365 0 00-1.376.428 1.494 1.494 0 00-.327.701l-.683 2.361a.98.98 0 01-.334.656c-.469.282-1.426.301-1.34 1.336a5.366 5.366 0 00.428 1.547 1.165 1.165 0 01.068.69c-.03.201-.065.401-.105.601-.034.174-.114.55.004.692.117.142.34.13.607.097a15.92 15.92 0 003.322-.994 2.974 2.974 0 00.61-.344 1.624 1.624 0 00.488-1.002.393.393 0 00-.16-.414c-.124-.07-.293-.026-.55.045-.422.115-1.469.519-1.831.63-.147.044-.437.113-.549-.028-.186-.234.08-.967.24-1.375a1.512 1.512 0 011.178-.957c.282-.081.745-.229.933-.293a.849.849 0 00.594-.672c.132-.532-.272-.614-.64-.717-.528-.146-.858-.163-.627-.675a.525.525 0 01.388-.36c.21-.055 1.983-.338 2.688-.467.395-.072.53-.285.695-.627.359-.743-.089-.79-.451-.757-.817.075-2.13.314-2.691.396-.3.045-.101-.47-.45-.494a2.365 2.365 0 00-.129-.004zm11.067 1.149a5.006 5.006 0 00-1.707 1.136c-.045-.303-.052-.637-.36-.672a1.275 1.275 0 00-.68.18 1.102 1.102 0 00-.49.47l-.718 1.659a.13.13 0 01-.108.08.72.72 0 00-.539.45.623.623 0 00.123.657c-.142.384-.52 1.28-.52 1.28-.469 1.097-.438 1.478-.27 1.71a1.305 1.305 0 00.743.35c.272.045.48-.118.707-.48.336-.535 1.01-1.948 1.01-1.948a10.646 10.646 0 004.03 2.436s-1.423 1.967-1.628 3.054c0 0-.105.714.852.711a1.787 1.787 0 00.865-.22.467.467 0 00.219-.282.221.221 0 00-.022-.152.466.466 0 00-.097-.103c-.05-.05-.043-.113-.016-.186.527-1.54 2.67-4.155 3.125-4.722 1.206-1.503 3.433-3.843 3.592-4.03.288-.371.344-.593-.127-1.056-.423-.416-.705-.17-.912.045-.035.041-.994.996-2.004 2.162-.786.907-1.467 1.752-1.467 1.752a8.91 8.91 0 01.06-1.284c.049-.406.18-1.196.221-1.447.2-1.27-.58-1.321-.87-1.34-.306-.018-.451.146-.542.534a14.45 14.45 0 00-.357 4.31c.032.362.102.734.11.758l-.184.256a7.312 7.312 0 01-2.881-1.657A5.466 5.466 0 0016 15.557a2.539 2.539 0 001.332-2.346 1.695 1.695 0 00-1.667-1.523zm-4.625.205a.538.538 0 00-.514.337c-.254.436-.93 1.679-1.541 2.641a10.35 10.35 0 01-1.07 1.52s0-2.442-.031-2.653c-.1-.7-.467-.63-.74-.582-.708.12-.7.388-.733.615a33.16 33.16 0 00.066 3.41c.026.314-.024 1.42.616 1.51.481.068.94-.375 1.289-.76a19.636 19.636 0 001.564-2.01 37.079 37.079 0 001.787-2.763c.231-.408.218-.695-.31-1.092a.538.538 0 00-.383-.173zm4.513 1.306a.353.353 0 01.24.022c.295.16-.044.85-.61 1.271a2.985 2.985 0 01-1.638.678 6.203 6.203 0 01.995-1.295c.344-.345.732-.619 1.013-.676Z\"},\"child\":[]}]})(props);\n};\nexport function SiTiktok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z\"},\"child\":[]}]})(props);\n};\nexport function SiTildapublishing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.384 0 0 5.384 0 12s5.384 12 12 12 12-5.384 12-12S18.616 0 12 0zm0 .775C18.192.775 23.225 5.808 23.225 12c0 6.192-5.033 11.225-11.225 11.225C5.808 23.225.775 18.192.775 12 .775 5.808 5.808.775 12 .775zM8.904 6.584c-1.36 0-2.52 1.16-2.52 3.287l1.352.193c.192-1.352.576-1.935 1.352-1.935.776 0 1.167.19 2.52.967 1.351.776 1.735.968 3.095.968s2.714-.969 2.522-3.289H15.87c0 1.16-.382 1.745-1.158 1.745-.776 0-1.169-.191-2.713-.967s-1.736-.969-3.096-.969zm2.127 3.48v8.905h1.553v-8.32l-1.553-.585z\"},\"child\":[]}]})(props);\n};\nexport function SiTile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.486 8.483h1.617a.16.16 0 0 1 .15.15v9.706a.16.16 0 0 1-.15.15H7.486a.162.162 0 0 1-.15-.15V8.633c0-.075.075-.15.15-.15zm3.536-2.972h1.617c.076 0 .151.075.151.15v12.64c0 .075-.075.15-.15.15h-1.618a.162.162 0 0 1-.15-.15V5.66c0-.075.075-.15.15-.15zM5.68 8.483H1.918V5.66a.162.162 0 0 0-.15-.15H.15a.162.162 0 0 0-.15.15v7.787c0 2.746 2.257 5.003 5.003 5.003h.677c.075 0 .15-.075.15-.15v-1.618a.162.162 0 0 0-.15-.15h-.677a3.099 3.099 0 0 1-3.085-3.085v-3.084H5.68c.075 0 .15-.076.15-.15V8.595c0-.076-.075-.113-.15-.113zM22.533 9.95a5.018 5.018 0 0 0-7.035 0c-1.956 1.918-1.918 5.078 0 7.034 1.919 1.956 5.079 1.919 7.035 0a4.48 4.48 0 0 0 .865-1.166.08.08 0 0 0-.075-.075h-2.07l-.225.075c-1.279 1.129-3.235.978-4.363-.338-.339-.414-.602-.903-.678-1.43 0-.075.038-.113.113-.113h7.75c.075 0 .15-.075.15-.15v-.301a5.013 5.013 0 0 0-1.467-3.536zm-.903 2.257h-5.266c-.076 0-.113-.038-.113-.113a3.066 3.066 0 0 1 2.708-1.655c1.129 0 2.182.64 2.709 1.655 0 .038 0 .075-.038.113zM9.404 6.602a1.09 1.09 0 0 1-1.09 1.09 1.09 1.09 0 0 1-1.091-1.09 1.09 1.09 0 0 1 1.09-1.091 1.09 1.09 0 0 1 1.091 1.09Z\"},\"child\":[]}]})(props);\n};\nexport function SiTimescale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.537.763c-1.167.7-2.21 1.582-3.08 2.61L3.79 4.836a10.422 10.422 0 013.627-2.881zm13.028.085l-1.991 1.12a10.381 10.381 0 013.762 3.07l1.18-1.654a12.371 12.371 0 00-2.95-2.536zm-6.564.752a9.788 9.788 0 00-4.131.91l.59 1.011a8.542 8.542 0 013.541-.762c1.261 0 2.457.274 3.534.76l.59-1.012a9.81 9.81 0 00-4.124-.907zM11.4 3.535l-.55 6.626h.003l-.002.04c.003.111.013.216.033.318.01.112.043.227.097.342.114.289.298.505.516.607.05.04.105.075.158.111a.98.98 0 01.033.02v.004l6.68 3.596.348-.476-6.058-4.6c-.007 0-.01-.005-.014-.008L12 3.535zm1.423.052c.19.234.361.523.502.855 3.155.604 5.54 3.325 5.54 6.596 0 .877-.176 1.712-.484 2.48a3.7 3.7 0 01.52.76 7.314 7.314 0 00.754-3.24c0-3.868-2.99-7.05-6.832-7.45zm-2.284.095c-3.527.667-6.19 3.708-6.19 7.356 0 2.584 1.335 4.863 3.367 6.21a9.84 9.84 0 01.295-.743c-1.74-1.219-2.874-3.214-2.874-5.467 0-3.054 2.082-5.632 4.932-6.45.128-.351.289-.656.47-.906zm9.15 1.675l-.801.893a8.101 8.101 0 011.551 4.777c0 2.916-1.542 5.481-3.872 6.952.104.388.188.792.251 1.209 2.87-1.632 4.802-4.677 4.802-8.16a9.224 9.224 0 00-1.93-5.67zm-15.38.007a9.25 9.25 0 00-1.93 5.665c0 3.507 1.954 6.567 4.858 8.19.063-.418.144-.822.248-1.206-2.36-1.468-3.923-4.045-3.923-6.984 0-1.777.573-3.422 1.549-4.772zm9.314.043c.044.203.08.416.107.64a5.332 5.332 0 013.213 2.912l.577-.148a5.942 5.942 0 00-3.897-3.404zm-3.816.187a5.939 5.939 0 00-3.319 3.198l.58.148A5.324 5.324 0 019.73 6.257c.017-.227.04-.45.077-.663zM6.733 9.672l-.62.63.315.614 1.727.618.942-.618-.312-.923zm10.615 0l-2.048.321-.315.923.942.618 1.73-.618.315-.614zM6.1 11.869A5.824 5.824 0 008.42 15.7c.1-.17.204-.335.315-.493a5.252 5.252 0 01-2.038-3.34zm11.206 0c-.03.18-.071.355-.118.529.174.138.338.272.493.41.097-.302.174-.617.22-.94zm-15.679.217L0 14.158c.966 3.661 3.638 6.65 7.132 8.111a9.399 9.399 0 01-.05-1.031c0-.375.017-.747.05-1.111-3.024-1.563-5.166-4.544-5.505-8.041zm20.707.055c-.352 3.45-2.464 6.394-5.441 7.957.033.374.05.755.053 1.136 0 .377-.017.71-.05 1.005 3.506-1.488 6.175-4.522 7.104-8.223zm-6.544 2.617a5.31 5.31 0 01-.486.42c.11.158.218.322.318.493.265-.2.513-.42.74-.66a10.61 10.61 0 01-.572-.253zm1.502.559a6.9 6.9 0 01-1.25 1.156c.106.236.207.485.294.741a7.667 7.667 0 001.857-1.772 3.554 3.554 0 01-.9-.125zm-2.988.63l-2.303.913-2.307-.91-.587 1.435 2.448.946c-.134.46-.568.798-1.08.798-.034 0-.07-.004-.104-.007l-.5.686c.188.063.39.096.6.096.621 0 1.17-.289 1.52-.738a1.924 1.924 0 002.183.62l-.49-.67a1.122 1.122 0 01-1.26-.805l2.47-.926zm1.156 4.775c-1.09.377-2.256.58-3.476.58-1.17 0-2.29-.186-3.34-.534.231.88.59 1.654 1.05 2.262.743.134 1.509.207 2.294.207.835 0 1.65-.082 2.437-.236.453-.61.807-1.39 1.035-2.28z\"},\"child\":[]}]})(props);\n};\nexport function SiTina (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 14.46 10.662 C 15.626 9.697 16.143 3.996 16.648 1.947 C 17.153 -0.103 19.241 0.001 19.241 0.001 C 19.241 0.001 18.699 0.945 18.92 1.649 C 19.141 2.353 20.656 2.982 20.656 2.982 L 20.329 3.843 C 20.329 3.843 19.647 3.756 19.241 4.568 C 18.835 5.38 19.502 13.421 19.502 13.421 C 19.502 13.421 17.062 18.234 17.062 20.266 C 17.062 22.298 18.024 24 18.024 24 L 16.674 24 C 16.674 24 14.694 21.644 14.288 20.467 C 13.882 19.289 14.045 18.112 14.045 18.112 C 14.045 18.112 11.893 17.99 9.984 18.112 C 8.076 18.234 6.803 19.874 6.574 20.792 C 6.344 21.709 6.249 24 6.249 24 L 5.182 24 C 4.532 21.996 4.016 21.278 4.296 20.266 C 5.072 17.462 4.919 15.872 4.74 15.164 C 4.56 14.456 3.345 13.838 3.345 13.838 C 3.94 12.625 4.548 12.042 7.162 11.981 C 9.775 11.921 13.294 11.627 14.46 10.662 Z M 9.277 18.871 C 9.277 18.871 9.413 22.579 10.669 24 L 9.413 24 C 7.949 22.7 7.673 20.148 7.673 20.148 C 7.754 19.824 8.638 19.079 9.277 18.871 Z\"},\"child\":[]}]})(props);\n};\nexport function SiTinder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.317 9.451c.045.073.123.12.212.12.06 0 .116-.021.158-.057l.015-.012c.39-.325.741-.66 1.071-1.017 3.209-3.483 1.335-7.759 1.32-7.799-.09-.21-.03-.459.15-.594.195-.135.435-.12.615.033 10.875 10.114 7.995 17.818 7.785 18.337-.87 3.141-4.335 5.414-8.444 5.53-.138.008-.242.008-.363.008-4.852 0-8.977-2.989-8.977-6.807v-.06c0-5.297 4.795-10.522 5.009-10.744.136-.149.345-.195.525-.105.18.076.297.255.291.451-.043 1.036.167 1.935.631 2.7v.015l.002.001z\"},\"child\":[]}]})(props);\n};\nexport function SiTindie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.576 1.742c-.051 0-.102.003-.152.008-1.724.137-3.14 1.095-4.098 2.773a8.284 8.284 0 0 0-.53 1.126c-.659-.396-1.624-.825-2.706-.825-.203 0-.405.016-.602.046-.729.112-2.949.453-4.497 1.938-.77.74-1.333 1.733-1.687 2.49-.861-.7-2.262-1.565-3.924-1.565-.737 0-1.459.172-2.147.513-.78.355-1.239 1.496-1.233 2.4.005.701.288 1.223.777 1.433.112.048.225.054.321.054.736 0 3.983-.568 5.928-.938l1.662 4.448.081.08c.005.005.082.081.214.212l.767.762c.29.289.625.622.974.97-.153.118-.319.25-.486.392-.914.773-1.321 1.388-1.321 1.886 0 1.016 1.629 2.313 2.955 2.313.302 0 .585-.11.841-.229l.535-.416c.415-.383.758-.935 1.027-1.484 1.002-.094 1.966-.459 2.773-.871l1.013-.584c.684-.44 1.121-.819 1.165-.857l.167-.147.269-6.285L18.1 7.202c.821-.301 1.848-.687 2.799-1.058 2.667-1.042 2.771-1.185 2.881-1.336.291-.402.293-.932.007-1.495-.394-.772-1.329-1.571-2.211-1.571Zm0 1.041c.39 0 1.025.496 1.284 1.003.084.165.107.294.095.366-.539.301-3.252 1.358-5.268 2.094.428-1.228 1.488-3.278 3.827-3.459l.022-.002c.013-.002.026-.002.04-.002ZM14.09 5.865c.967 0 1.851.461 2.385.812.197.13.348.245.436.317l.017.045.01.029.182.488 1.493 3.995-.097 2.281c-.858-.114-1.604-.115-2.285-.015-.364.054-.709.137-1.043.247a7.175 7.175 0 0 0-.206.073l-.629-1.534-.426-1.04-2.139-5.221c.794-.28 1.513-.391 1.858-.443a2.83 2.83 0 0 1 .444-.034Zm-2.727.641 2.072 5.056.426 1.041.7 1.706c-1.103.498-2.128 1.306-3.361 2.364-.34-.339-.658-.655-.925-.921-.323-.321-.571-.567-.692-.687l-.047-.126-1.475-3.948-.159-.427c.044-.121.114-.302.208-.52.297-.69.839-1.754 1.602-2.485.491-.472 1.077-.81 1.651-1.053Zm1.013.158c-.128 0-.233.104-.233.233 0 .128.105.232.233.232s.232-.104.232-.232c0-.129-.104-.233-.232-.233Zm.39.845c-.128 0-.233.105-.233.233a.233.233 0 0 0 .466 0c0-.128-.105-.233-.233-.233Zm.325.781a.233.233 0 0 0-.233.232c0 .129.105.233.233.233s.233-.104.233-.233a.233.233 0 0 0-.233-.232Zm-9.711.483c1.41 0 2.64.809 3.365 1.416-1.978.376-4.892.877-5.597.902-.057-.067-.106-.226-.108-.452-.004-.646.339-1.32.626-1.447l.021-.01c.545-.271 1.115-.409 1.693-.409Zm12.7.38c-.315 0-.622.091-.887.264-.364.238-.613.602-.703 1.028-.089.425-.007.859.23 1.222.301.462.811.737 1.363.737.315 0 .622-.091.887-.264.751-.49.963-1.499.473-2.25-.301-.462-.811-.737-1.363-.737Zm0 .91c.243 0 .468.122.6.325.216.33.123.774-.208.99a.709.709 0 0 1-.389.116.715.715 0 0 1-.702-.862c.04-.187.15-.348.31-.452a.702.702 0 0 1 .389-.117Zm-5.23.951c-.316 0-.623.091-.888.265-.364.237-.613.602-.703 1.027-.089.425-.007.859.23 1.222.301.462.811.738 1.363.738.315 0 .622-.092.887-.265.364-.237.613-.602.703-1.027.089-.425.008-.859-.23-1.223a1.6227 1.6227 0 0 0-1.362-.737Zm0 .91c.243 0 .467.122.6.325.104.16.14.351.101.538a.7148.7148 0 0 1-.699.568.7133.7133 0 0 1-.6-.324.7097.7097 0 0 1-.102-.538c.04-.187.15-.348.31-.452a.7109.7109 0 0 1 .39-.117Zm6.315 2.275c.082-.001.166-.001.251.001.339.007.697.036 1.08.089l-.123 2.881c-.092.073-.22.171-.377.285-.262.189-.608.42-1.009.65-.641.367-1.426.728-2.246.901-.318.067-.64.107-.962.107-.047 0-.095-.001-.142-.003l-.034-.034c-.224-.226-.478-.481-.748-.752-.408-.408-.85-.849-1.276-1.274-.018-.019-.037-.037-.055-.055 1.452-1.245 2.574-2.11 3.874-2.522a5.655 5.655 0 0 1 1.053-.227c.229-.028.466-.044.714-.047Zm-.237.203c-.129 0-.233.105-.233.233s.104.233.233.233c.128 0 .233-.105.233-.233s-.105-.233-.233-.233Zm.845 0a.233.233 0 0 0 0 .466c.129 0 .233-.105.233-.233s-.104-.233-.233-.233Zm-.609 1.287c-.44.069-1.343.456-2.137.826-.793.369-1.476.722-1.476.722 1.795 1.468 3.8-.765 3.613-1.548Zm-5.699 2.717c.582.581 1.149 1.149 1.572 1.577l.055.056-.028.144c-.24.399-.506.716-.777.848-.12.058-.26.087-.415.087-.897 0-1.881-.897-1.914-1.216.054-.25.714-.894 1.507-1.496Z\"},\"child\":[]}]})(props);\n};\nexport function SiTinkercad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v7.32h7.32V0H0zm8.34 0v7.32h7.32V0H8.34zm8.34 0v7.32H24V0h-7.32zM1.605 1.266h4.106V2.33h-1.4v3.725H3.055V2.33h-1.45V1.265zm9.77 0h1.256V6.05h-1.256V1.266zm6.814 0h1.692l1.455 3.289v-3.29h1.158v4.79H20.82l-1.47-3.26V6.05h-1.16V1.266zM0 8.34v7.32h7.32V8.34H0zm8.34 0v7.32h7.32V8.34H8.34zm8.34 0v7.32H24V8.34h-7.32zm-6.32 1.265h3.19v.965h-1.935v.92H13.5v.92h-1.885v1.065h2.03v.916h-3.286V9.605zm8.16 0h1.906c1.075 0 1.719.495 1.719 1.315 0 .535-.284.935-.8 1.135.22.14.35.37.485.705l.645 1.625h-1.35l-.006.006-.433-1.221c-.2-.535-.287-.664-.702-.664h-.254v1.885h-1.21V9.605zM1.596 9.61h1.26v1.756L4.3 9.61h1.51l-2.022 2.25 2.182 2.536H4.39l-1.541-1.94v1.94H1.596V9.609zm18.134.916v1.065h.334c.375 0 .827-.095.827-.57 0-.36-.226-.495-.801-.495h-.36zM0 16.68V24h7.32v-7.32H0zm8.34 0V24h7.32v-7.32H8.34zm8.34 0V24H24v-7.32h-7.32zm-12.42 1.2c.375 0 .815.066 1.17.17l.09.024-.055 1.022-.16-.067a2.415 2.415 0 0 0-.89-.174c-.876 0-1.466.555-1.466 1.485s.54 1.484 1.446 1.484c.35 0 .66-.06.925-.18l-.006-.003.16-.07.055.993-.08.032c-.33.13-.753.199-1.193.199-.765 0-1.411-.22-1.871-.635-.475-.43-.73-1.06-.73-1.82 0-1.425 1.095-2.46 2.605-2.46zm6.996.07h1.484l1.824 4.784H13.26l-.4-1.16H11.1l-.41 1.16H9.435l1.82-4.785zm6.965 0h1.718c1.625 0 2.522.825 2.522 2.325v.004c0 1.535-.992 2.455-2.647 2.455h-1.593V17.95zm1.26.915v2.95h.195c.975 0 1.488-.55 1.488-1.54 0-.895-.49-1.41-1.375-1.41h-.309zm-7.5.19-.596 1.6h1.17l-.575-1.6z\"},\"child\":[]}]})(props);\n};\nexport function SiTinygrad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.846 7.385V9.23H0v1.846h1.846v3.692h3.692v-1.846H3.692v-1.846h1.846V9.23H3.692V7.385zm5.539 0V9.23H9.23V7.385zm3.692 1.846v5.538h1.846v-3.692h1.846V9.23h-1.846zm3.692 1.846v3.692h1.846v-3.692zm3.693-1.846v3.692h3.692v1.846H24V9.231h-1.846v1.846h-1.846V9.23Zm3.692 5.538h-3.692v1.846h3.692zm-14.77-3.692v3.692h1.847v-3.692z\"},\"child\":[]}]})(props);\n};\nexport function SiTinyletter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.069 18.202h-4.913v3.207l-4.22-3.207H4.93a.643.643 0 01-.643-.642v-1.69l3.987-3.028L12 15.672l3.725-2.83 3.987 3.03v1.688a.643.643 0 01-.643.642zM7.213 12.035l-2.925 2.222V9.813zm12.499-2.222v4.444l-2.925-2.222zM4.932 5.61h2.735L12 9.128l4.338-3.518h2.73c.355 0 .644.288.644.642v1.946L12 14.058l-7.712-5.86V6.252c0-.354.289-.642.643-.642zm3.407-3.772c.356-.356.83-.553 1.335-.553.504 0 .978.197 1.334.553L12 2.83l.992-.992c.356-.356.83-.553 1.334-.553.505 0 .979.197 1.335.553.357.357.553.83.553 1.335 0 .494-.188.959-.53 1.313L12 7.473 8.317 4.486a1.89 1.89 0 01.022-2.648zm10.73 2.486h-1.787A3.167 3.167 0 0016.57.93C15.97.33 15.174 0 14.326 0c-.847 0-1.644.33-2.243.93L12 1.011 11.917.93C11.317.33 10.521 0 9.674 0 8.826 0 8.029.33 7.43.93a3.176 3.176 0 00-.711 3.394H4.93a1.93 1.93 0 00-1.928 1.928V17.56a1.93 1.93 0 001.928 1.928h4.572L15.44 24v-4.512h3.628a1.93 1.93 0 001.928-1.928V6.252a1.93 1.93 0 00-1.928-1.928\"},\"child\":[]}]})(props);\n};\nexport function SiTistory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 3a3 3 0 1 0 6 0 3 3 0 0 0-6 0m9 18a3 3 0 1 0 6 0 3 3 0 0 0-6 0m0-9a3 3 0 1 0 6 0 3 3 0 0 0-6 0m0-9a3 3 0 1 0 6 0 3 3 0 0 0-6 0m9 0a3 3 0 1 0 6 0 3 3 0 0 0-6 0\"},\"child\":[]}]})(props);\n};\nexport function SiTldraw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.474 0H2.526C1.131 0 0 1.18 0 2.637v18.726C0 22.819 1.131 24 2.526 24h18.948C22.869 24 24 22.82 24 21.363V2.637C24 1.181 22.869 0 21.474 0zm-11.01 5.388c.397-.405.888-.607 1.474-.607.57 0 1.052.202 1.448.607.397.404.595.896.595 1.476s-.198 1.072-.595 1.476c-.396.405-.879.607-1.448.607-.586 0-1.077-.202-1.474-.607-.396-.404-.594-.896-.594-1.476s.198-1.072.594-1.476zm3.13 11.49a4.887 4.887 0 0 1-2.018 2.136c-.483.281-.879.273-1.19-.026-.292-.281-.206-.615.26-1.002.258-.193.473-.44.646-.738.172-.299.284-.607.336-.923.017-.14-.043-.21-.181-.21-.345-.018-.698-.212-1.06-.581-.362-.37-.543-.826-.543-1.37 0-.58.198-1.073.594-1.477a2.024 2.024 0 0 1 1.5-.633c.552 0 1.034.21 1.448.633.414.404.655.86.724 1.37.138.95-.034 1.89-.517 2.822z\"},\"child\":[]}]})(props);\n};\nexport function SiTmobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.722 15.84h-4.8v-4.8h4.791v4.8zM1.922 0v8.16H3.36v-.236c0-3.844 2.159-6.24 6.239-6.24h.237v17.279c0 2.396-.957 3.36-3.36 3.36h-.72V24h12.478v-1.676h-.72c-2.395 0-3.36-.957-3.36-3.361V1.676h.237c4.08 0 6.239 2.396 6.239 6.24v.236h1.439V0Zm15.356 15.84h4.8v-4.8h-4.791v4.8z\"},\"child\":[]}]})(props);\n};\nexport function SiTmux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 2.251V10.5H12.45V0h9.3A2.251 2.251 0 0 1 24 2.251zM12.45 11.4H24v10.5h-.008A2.25 2.25 0 0 1 21.75 24H2.25a2.247 2.247 0 0 1-2.242-2.1H0V2.251A2.251 2.251 0 0 1 2.25 0h9.3v21.6h.9V11.4zm11.242 10.5H.308a1.948 1.948 0 0 0 1.942 1.8h19.5a1.95 1.95 0 0 0 1.942-1.8z\"},\"child\":[]}]})(props);\n};\nexport function SiTodoist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 0H3C1.35 0 0 1.35 0 3v3.858s3.854 2.24 4.098 2.38c.31.18.694.177 1.004 0 .26-.147 8.02-4.608 8.136-4.675.279-.161.58-.107.748-.01.164.097.606.348.84.48.232.134.221.502.013.622l-9.712 5.59c-.346.2-.69.204-1.048.002C3.478 10.907.998 9.463 0 8.882v2.02l4.098 2.38c.31.18.694.177 1.004 0 .26-.147 8.02-4.609 8.136-4.676.279-.16.58-.106.748-.008.164.096.606.347.84.48.232.133.221.5.013.62-.208.121-9.288 5.346-9.712 5.59-.346.2-.69.205-1.048.002C3.478 14.951.998 13.506 0 12.926v2.02l4.098 2.38c.31.18.694.177 1.004 0 .26-.147 8.02-4.609 8.136-4.676.279-.16.58-.106.748-.009.164.097.606.348.84.48.232.133.221.502.013.622l-9.712 5.59c-.346.199-.69.204-1.048.001C3.478 18.994.998 17.55 0 16.97V21c0 1.65 1.35 3 3 3h18c1.65 0 3-1.35 3-3V3c0-1.65-1.35-3-3-3z\"},\"child\":[]}]})(props);\n};\nexport function SiToggl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.356 7.446v.64c0 .711-.541 1.286-1.209 1.286-.05 0-.098-.003-.147-.009v1.58h.82v1.588c0 .625.112 1.107.338 1.434.347.501.734.83 1.676.83.546 0 1.004-.126 1.304-.293v-1.868a1.266 1.266 0 0 1-.444.074c-.363 0-.512-.112-.647-.282-.087-.112-.13-.276-.13-.489v-.994h1.22V9.161h-1.22V7.446zm19.862 0v5.04c0 .627.093 1.149.319 1.478.347.5.816.827 1.75.83a1.76 1.76 0 0 0 .713-.173v-1.92c-.441.055-.594-.256-.594-.565v-4.69zm-6.552.519-.722 1.004a2.885 2.885 0 0 0-.883-.133c-.628 0-1.258.185-1.718.617-.449.419-.658 1.005-.658 1.605 0 .6.21 1.186.658 1.605.039.038.08.071.12.104l-.084.045c-.21.12-.402.273-.568.451-.284.303-.568.756-.568 1.36 0 0-.039 1.286 1.438 1.286h1.071c.247 0 .498.157.498.403 0 .086-.025.17-.072.242h2.048c.309-.351.475-.806.466-1.274-.014-.403-.133-.831-.435-1.113-.34-.316-.831-.46-1.288-.46h-2.038c-.2 0-.379-.151-.379-.338a.338.338 0 0 1 .252-.326s.034-.008.072-.02c.371.171.776.258 1.185.254.627 0 1.256-.185 1.717-.617.449-.419.658-1.005.658-1.605 0-.6-.21-1.186-.658-1.605a2.095 2.095 0 0 0-.433-.31c.432.1.879-.023 1.186-.553zm5.182 0-.722 1.004a2.883 2.883 0 0 0-.882-.133c-.628 0-1.257.185-1.717.617-.449.419-.658 1.005-.658 1.605 0 .6.21 1.186.658 1.605.131.122.278.228.436.313a2.621 2.621 0 0 0-.32.287c-.284.303-.568.756-.568 1.36 0 0-.039 1.286 1.438 1.286h1.07c.247 0 .498.157.498.403 0 .086-.024.17-.071.242h2.048c.309-.351.475-.806.466-1.274-.015-.403-.135-.831-.439-1.113-.34-.316-.831-.46-1.288-.46l-2.362-.017c-.15 0-.263-.094-.263-.232 0-.115.057-.283.2-.311.282.088.576.132.872.13.628 0 1.257-.185 1.718-.616.448-.42.658-1.006.658-1.606 0-.6-.21-1.185-.658-1.604a2.085 2.085 0 0 0-.435-.31c.433.1.879-.024 1.186-.554zm-12.45.886c-.771 0-1.542.247-2.107.823-.552.561-.808 1.346-.808 2.149 0 .803.257 1.587.807 2.149.566.576 1.337.823 2.107.823.77 0 1.541-.247 2.106-.823.55-.562.807-1.346.807-2.149 0-.803-.257-1.588-.807-2.15-.565-.575-1.335-.822-2.106-.822zm5.74 1.622a.566.566 0 1 1-.582.565.527.527 0 0 1 .143-.378h.001a.565.565 0 0 1 .438-.187zm5.194.001a.564.564 0 1 1-.581.564.526.526 0 0 1 .144-.378.564.564 0 0 1 .437-.186zm-10.872.593a.73.73 0 1 1-.75.732.678.678 0 0 1 .186-.49.73.73 0 0 1 .564-.242z\"},\"child\":[]}]})(props);\n};\nexport function SiToggltrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-.883 4.322h1.766v8.757h-1.766zm-.74 2.053v1.789a4.448 4.448 0 1 0 3.247 0V6.375a6.146 6.146 0 1 1-5.669 10.552 6.145 6.145 0 0 1 2.421-10.552z\"},\"child\":[]}]})(props);\n};\nexport function SiTokyometro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9832 18.2104c2.86.006 4.04-.949 4.043-2.392.003-1.7021-1.694-3.7822-2.923-5.0732 2.318-2.082 5.3251-3.622 6.5082-2.432 1.367 1.367.02 5.418-3.2131 9.8922l4.26 1.222c3.6132-6.4301 4.3802-12.7603 1.8901-14.4733-1.946-1.329-6.8521 1.337-10.5502 4.721-3.6871-3.398-8.5802-6.08-10.5323-4.759-2.5 1.704-1.748 8.0372 1.841 14.4803l4.2662-1.207C4.35 13.7033 3.02 9.6482 4.393 8.285c1.184-1.185 4.1861.365 6.5002 2.4561-1.237 1.286-2.9431 3.36-2.9451 5.0621-.003 1.444 1.176 2.402 4.035 2.408zm.004-2.34c-.947-.001-1.745-.242-1.743-1.0501 0-.748.637-1.88 1.75-3.106 1.11 1.23 1.739 2.364 1.738 3.113-.001.807-.8 1.045-1.745 1.044z\"},\"child\":[]}]})(props);\n};\nexport function SiToll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.852 13.351H24l-.645 1.455h-3.346c-.689 0-1.158-.584-.898-1.15l1.978-4.463h2.356l-1.75 3.954c-.037.088-.008.202.157.204ZM6.147 10.647l-1.843 4.159H3.303c-.601 0-1.061-.556-.852-1.045l1.379-3.114H0l.112-.252h7.375c.375 0 .955-.058 1.534-.338.155-.074.845-.473 1.503-.864h1.474c-.411.194-2.381 1.141-2.617 1.227-.618.225-1.017.227-1.526.227H6.147Zm.538-.471H.209c.195-.442.632-.983 1.933-.983h6.18c-.351.44-.704.983-1.637.983Zm10.001 2.971c-.037.088-.007.202.157.204h2.149l-.644 1.455h-3.347c-.689 0-1.157-.584-.898-1.15l1.978-4.463h2.356l-1.75 3.954h-.001Zm-1.831-3.439c.283.402.128 1-.107 1.506l-.91 2.055c-.686 1.655-3.056 1.536-3.056 1.536H8.085s-2.332.122-1.315-2.167l.785-1.774h.655c.531 0 1.182-.165 1.48-.282l3.509-1.389h.616c.497 0 .871.24 1.037.515h.003Zm-2.4 1.376c.119-.291-.054-.437-.294-.437h-1.7c-.343-.002-.512.168-.563.279-.036.074-.854 1.925-.854 1.925-.233.518.261.501.261.501h1.617s.52.002.756-.512l.777-1.757v.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiToml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.014 0h5.34v2.652H2.888v18.681h2.468V24H.015V0Zm17.622 5.049v2.78h-4.274v12.935h-3.008V7.83H6.059V5.05h11.577ZM23.986 24h-5.34v-2.652h2.467V2.667h-2.468V0h5.34v24Z\"},\"child\":[]}]})(props);\n};\nexport function SiTomorrowland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.97 0c-.009.01-.35.35-.747.758-.826.835-1.504 1.271-2.524 1.62-.582.205-.836.243-1.496.204-.427-.02-.883-.067-1-.115-.194-.058-.223-.04-.223.174 0 .33-.251 1.02-.523 1.437l-.234.35.244.3c.126.175.281.311.33.311.048 0 .31-.175.592-.389.738-.563 2.039-1.212 3.048-1.513.797-.253.99-.274 2.563-.274 1.573 0 1.766.021 2.563.274 1.01.3 2.31.95 3.048 1.513.282.214.544.39.592.39.049 0 .204-.137.33-.302l.244-.31-.283-.448a4.197 4.197 0 01-.416-.98c-.107-.437-.165-.523-.31-.494-.107.02-.534.057-.971.076-.621.03-.913.001-1.408-.164-1.03-.35-1.825-.845-2.641-1.67-.417-.417-.768-.758-.777-.748zm-.284 3.328a2.38 2.38 0 00-.317.022c-1.369.213-2.504.882-3.203 1.882l-.273.39.273.388c.301.437.805.873 1.805 1.572.825.583 1.583 1.408 1.787 1.97.097.243.193.438.232.428.03 0 .175-.251.32-.552.302-.641.846-1.225 1.73-1.846.96-.68 1.512-1.164 1.794-1.572l.264-.38-.291-.427a4.434 4.434 0 00-2.32-1.66c-.45-.126-1.267-.22-1.801-.215zm-7.502.031l-.475.524C3.059 4.6 2.155 5.99 1.902 6.66c-.63 1.7-.464 3.127.536 4.486.796 1.078 2.357 2.165 4.095 2.854.447.165.807.34.807.379 0 .029-.126.088-.291.127-.456.097-1.408.766-1.66 1.174-.185.29-.233.504-.223.96.01 1.35.97 2.526 2.834 3.477.602.301 1.184.553 1.291.553.32 0 1.108-.874 1.477-1.66.699-1.437 1-3.408.912-5.912-.078-2.272-.32-3.059-1.252-4.04-.272-.29-.827-.727-1.235-.97C6 6.117 4.465 4.738 4.243 3.64l-.06-.282zm15.634.094c-.036-.003-.047.037-.05.11-.01.96-1.728 2.525-4.961 4.525-.408.243-.963.68-1.235.97-.932.981-1.174 1.768-1.252 4.04-.087 2.504.213 4.475.912 5.912.37.786 1.157 1.66 1.477 1.66.107 0 .68-.242 1.271-.543 1.874-.951 2.844-2.137 2.854-3.486.01-.457-.038-.67-.223-.961-.252-.408-1.204-1.077-1.66-1.174-.165-.039-.29-.098-.29-.127 0-.039.36-.214.806-.379 1.738-.69 3.3-1.776 4.096-2.854 1-1.359 1.166-2.787.535-4.486-.262-.699-1.176-2.088-1.827-2.787-.267-.291-.393-.415-.453-.42zm-7.994.533l.274.004c.757.03 1.018.078 1.484.291.505.233 1.621 1.165 1.621 1.35 0 .126-1.183 1.02-1.746 1.31-.476.253-.632.282-1.457.282-.883 0-.951-.02-1.602-.37a7.076 7.076 0 01-1.156-.785l-.484-.418L9 5.36c.36-.447 1-.904 1.611-1.157.425-.178.634-.221 1.213-.217zm.188.19a1.362 1.362 0 00-.692.174c-1.34.708-.844 2.728.68 2.728 1.485 0 2.01-1.951.719-2.69a1.475 1.475 0 00-.707-.212zm-.282.635c.157-.001.3.096.387.287.214.456-.476.98-.767.591-.224-.281-.224-.466.01-.699a.543.543 0 01.37-.18zm-9.943 6.46c-.039-.019-.078.563-.078 1.291 0 2.593.67 4.428 2.379 6.467 1.466 1.748 4.282 3.612 7.058 4.65l.844.321.807-.32c4.165-1.65 7.416-4.34 8.717-7.223.534-1.165.7-1.933.748-3.477.029-.786.029-1.504-.01-1.591-.049-.127-.135-.078-.436.261-.359.408-.37.457-.427 1.301-.272 4.088-3.224 7.534-7.33 8.563-1 .252-3.311.225-4.33-.047-4.03-1.107-6.856-4.477-7.118-8.516-.058-.825-.078-.893-.398-1.262-.194-.213-.377-.408-.426-.418Z\"},\"child\":[]}]})(props);\n};\nexport function SiTon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zM7.902 6.697h8.196c1.505 0 2.462 1.628 1.705 2.94l-5.059 8.765a.86.86 0 0 1-1.488 0L6.199 9.637c-.758-1.314.197-2.94 1.703-2.94zm4.844 1.496v7.58l1.102-2.128 2.656-4.756a.465.465 0 0 0-.408-.696h-3.35zM7.9 8.195a.464.464 0 0 0-.408.694l2.658 4.754 1.102 2.13V8.195H7.9z\"},\"child\":[]}]})(props);\n};\nexport function SiTopcoder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.004 7.555c-1.87 0-3.88.979-5.559 2.678 1.741.384 3.587.997 5.046 1.662l.513.23c.204-.09.367-.163.513-.23 1.464-.667 3.318-1.282 5.064-1.667-1.645-1.796-3.508-2.673-5.577-2.673zm8.751 2.723c-.675.016-1.44.101-2.282.254.608.784 1.26 2 1.928 3.503a43.559 43.559 0 0 1 .981 2.4c.305-.06.58-.232.825-.542 1.393-1.761 2.038-3.366 1.708-4.349-.26-.776-1.152-1.19-2.515-1.258a8.77 8.77 0 0 0-.645-.008zm-17.506 0a8.844 8.844 0 0 0-.646.008c-1.365.068-2.258.481-2.518 1.258-.33.983.315 2.588 1.708 4.35.258.325.549.499.873.55.15-1.468 1.501-4.253 2.868-5.911a14.877 14.877 0 0 0-2.285-.254zm14.69.352c-1.184.197-3.63.971-5.15 1.638l-.036.017a10.22 10.22 0 0 1 1.798.599c1.268.55 1.504.694 5.169 3.06.206.134.37.227.587.32.194.084.383.143.566.174a42.717 42.717 0 0 0-1.316-3.092c-.46-.96-.906-1.758-1.323-2.338-.1-.14-.2-.266-.295-.378zm-11.866.004c-1.35 1.538-2.758 4.38-2.927 5.802.361-.061.79-.24 1.222-.49.317-.185.65-.394 1.054-.659.243-.16 1.153-.768 1.087-.724 1.939-1.29 3.253-1.982 4.678-2.288-1.589-.69-3.798-1.417-5.114-1.64z\"},\"child\":[]}]})(props);\n};\nexport function SiTopdotgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 4.3785h7.6215V12H2.329A2.3212 2.3212 0 0 1 .0077 9.6788Zm24 0H8.757v15.243h3.1144a4.5071 4.5071 0 0 0 4.507-4.5071V12h3.1145A4.5073 4.5073 0 0 0 24 7.4929z\"},\"child\":[]}]})(props);\n};\nexport function SiToptal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.227 10.038L10.188 0l-2.04 2.04 3.773 3.769-8.155 8.153L13.807 24l2.039-2.039-3.772-3.771 8.16-8.152h-.007zM8.301 14.269l6.066-6.063 1.223 1.223-6.064 6.113-1.223-1.26-.002-.013z\"},\"child\":[]}]})(props);\n};\nexport function SiTorbrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 21.82v-1.46A8.36 8.36 0 0020.36 12 8.36 8.36 0 0012 3.64V2.18A9.83 9.83 0 0121.82 12 9.83 9.83 0 0112 21.82zm0-5.09A4.74 4.74 0 0016.73 12 4.74 4.74 0 0012 7.27V5.82A6.17 6.17 0 0118.18 12 6.17 6.17 0 0112 18.18zm0-7.27A2.54 2.54 0 0114.55 12 2.54 2.54 0 0112 14.54zM0 12a12 12 0 0012 12 12 12 0 0012-12A12 12 0 0012 0 12 12 0 000 12z\"},\"child\":[]}]})(props);\n};\nexport function SiTorproject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9124 17.1581zM17.9817 1.14a8.419 8.419 0 00-4.4695 3.1196A21.4277 21.4277 0 0116.512 0a12.4187 12.4187 0 00-3.9996 4.3595l.64-2.5497a14.6284 14.6284 0 00-1.8998 5.3494l1.1198.48a33.1264 33.1264 0 015.6094-6.4993zm.82 13.0686c-.82-1.5199-2.9197-3.0097-5.1295-4.3896-.51-.3-.61-1.4098-.53-1.8898l-.5099-.24a6.3693 6.3693 0 00.16 2.3898c.24.75.9999 1.5998 1.5198 2.7997a18.158 18.158 0 01.72 2.9197 13.1686 13.1686 0 01-.54 6.1193 4.2595 4.2595 0 01-1.4298 1.9198l-.24.16c4.1595.13 8.829-4.6295 5.9793-9.789zm-5.3995 4.7894a6.6193 6.6193 0 00-.42-1.9997 12.4087 12.4087 0 00-.7498-1.4399 6.2293 6.2293 0 01-.16-2.0698 6.9992 6.9992 0 00.32 1.9398 11.0788 11.0788 0 01.6899 1.2999 8.999 8.999 0 01.5899 2.2697 10.4289 10.4289 0 01-.35 2.9997 5.1094 5.1094 0 01-.4 1 4.8495 4.8495 0 00.7-1.52 12.4187 12.4187 0 00.36-4.4794 11.6087 11.6087 0 00-.46-1.8898c-.44-1.2-1.0699-2.2298-1.1499-2.4698a16.2082 16.2082 0 01-.39-3.3596 14.3084 14.3084 0 00.44 3.1197c.08.24.8 1.3798 1.2999 2.5797a7.4692 7.4692 0 01.48 1.7298 10.7188 10.7188 0 01-.53 5.1594 3.9996 3.9996 0 01-.35.82 3.7196 3.7196 0 00.8-1.41 16.1382 16.1382 0 000-8.109c-.42-1.2799-1.4099-2.3998-1.6499-3.1697a7.6792 7.6792 0 01-.08-2.3897l-2.1497-1c.56 1.44.6599 2.5598.08 2.9998-2.2598 1.8698-5.9994 3.9995-5.9994 7.1092 0 3.3196 1.9998 6.9092 7.0492 7.1792a12.9986 12.9986 0 01-1.6998-.56 3.4496 3.4496 0 01-1.3098-.8998l-.13-.14A9.339 9.339 0 016.233 18.658a2.7097 2.7097 0 01-.08-1.5199 6.6793 6.6793 0 013.2797-3.9995 10.099 10.099 0 00.9999-.61c.4699-.29.7699-1.5298 1.0798-2.5297-.16.77-.34 2.2598-1.0599 2.8197-.29.22-.6099.43-.9299.64-1.2798.8798-2.5397 1.6998-3.1696 3.8095a2.8197 2.8197 0 00.08 1.3799 9.319 9.319 0 001.9498 3.5096s.13.13.13.16a2.9997 2.9997 0 001.9397 1.1499c-.29-.16-.5299-.35-.7399-.48a4.3595 4.3595 0 01-1.9998-3.5996 3.6996 3.6996 0 012.1798-3.3896 3.5796 3.5796 0 001.6798-2.3798 3.1197 3.1197 0 01-1.5898 2.4998 3.9996 3.9996 0 00-2.0998 3.1696 5.6594 5.6594 0 001.8898 3.3996 4.0796 4.0796 0 001.5898.72 2.8897 2.8897 0 01-.4799-.5 4.9995 4.9995 0 01-.45-.9999 2.9997 2.9997 0 01-.27-.9999 3.5996 3.5996 0 01.64-2.3697 2.8397 2.8397 0 00.9-1.3499 2.8697 2.8697 0 01-.72 1.5099 2.9997 2.9997 0 00-.56 2.2397 4.0596 4.0596 0 00.29.93 3.9996 3.9996 0 00.51.9998c.18.21.26.37.5499.48a6.4793 6.4793 0 00.49-2.3498 9.519 9.519 0 000-1.7598c-.13-.7999-.4-1.5998-.4-2.2397.12.5899.43 1.3798.61 2.2097a5.6294 5.6294 0 01.11 1.7298c0 .56-.08 1-.16 1.4899a1.9998 1.9998 0 01-.45.9299 3.2097 3.2097 0 001.1099-1.9998 7.8991 7.8991 0 00.32-2.3598z\"},\"child\":[]}]})(props);\n};\nexport function SiToshiba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.174 10.172c-1.065 0-1.578.187-1.65 1.148a8.92 8.92 0 00-.022.68c0 .218.004.451.021.68.073.96.586 1.148 1.65 1.148 1.065 0 1.58-.188 1.653-1.148.018-.229.022-.462.022-.68 0-.217-.005-.451-.022-.68-.073-.96-.588-1.148-1.652-1.148zm3.79 0c-.41 0-.82.04-.985.121-.322.156-.545.38-.545 1.02 0 .375.1.654.293.796.281.21.553.23 1.31.27.305.016.47.078.47.34 0 .332-.294.332-.564.332-.28 0-.366-.025-.46-.096-.084-.063-.105-.176-.106-.348h-.95c0 .487.01.884.47 1.084.41.18 1.67.18 2.048.014.328-.145.563-.337.563-.994 0-.455-.091-.735-.44-.941-.248-.147-.945-.17-1.298-.192-.258-.016-.356-.11-.356-.338 0-.297.285-.308.53-.308.202 0 .34.018.439.105.038.039.086.099.088.307h.947c0-.408-.014-.848-.455-1.051-.175-.08-.587-.121-.998-.121zm2.206.062v3.532h.996v-1.362h1.156v1.362h.996v-3.532h-.996v1.29h-1.156v-1.29h-.996zm4.023 0v3.532h1.002v-3.532h-1.002zm1.891 0v3.532h1.887c.869 0 1.162-.376 1.162-.952 0-.401-.092-.755-.643-.894.444-.114.574-.379.574-.762 0-.776-.487-.924-1.181-.924h-1.799zm4.373 0l-1.068 3.532h1.037l.187-.655h1.16l.19.655H24l-1.07-3.532h-1.473zM0 10.236v.881h1.055v2.65H2.11v-2.65h1.055v-.88H0zm5.174.762c.418 0 .633.063.66.607.004.085.01.201.01.395 0 .195-.006.31-.01.395-.027.544-.242.607-.66.607-.418 0-.633-.063-.66-.607A7.674 7.674 0 014.506 12c0-.194.003-.31.008-.395.027-.544.242-.607.66-.607zm12.906.045h.69c.18 0 .293.085.293.291 0 .176-.112.285-.293.285h-.69v-.576zm4.111.064h.006l.354 1.22h-.713l.353-1.22zm-4.11 1.207h.689c.279 0 .337.124.337.323s-.11.32-.337.32h-.69v-.643z\"},\"child\":[]}]})(props);\n};\nexport function SiTotvs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.385 0 0 5.339 0 12c0 6.614 5.385 12 12 12 6.614 0 12-5.386 12-12S18.614 0 12 0ZM8.648 3.813c1.275-.068 10.697 2.302 11.43 2.943.614.85.614 9.118 0 9.685-.284.095-2.127-.283-4.205-.755 0 2.031-.143 3.966-.426 4.203-.756.236-10.772-2.267-11.527-2.928-.615-.85-.615-9.119 0-9.686.283-.094 2.079.284 4.205.756 0-2.031.142-3.969.425-4.205a.448.448 0 0 1 .098-.013Zm-.523 4.265c-.048 2.362.095 4.961.425 5.434.426.378 4.158 1.418 7.276 2.174.047-2.41-.095-5.008-.426-5.481-.425-.378-4.157-1.418-7.275-2.127Z\"},\"child\":[]}]})(props);\n};\nexport function SiTourbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.401 9.664c0-.28.3-.506.898-.668a6.73 6.73 0 0 1 1.716-.202 6.65 6.65 0 0 1 1.715.202c.605.164.904.387.904.668v1.632c0 .283-.299.506-.904.67-.5.138-1.072.204-1.715.204a6.554 6.554 0 0 1-1.716-.203c-.6-.165-.898-.388-.898-.67Zm2.614 3.417c2.368 0 3.55-.595 3.55-1.785V9.664c0-1.19-1.182-1.784-3.55-1.784-2.363 0-3.545.597-3.545 1.784v1.632c0 1.19 1.182 1.787 3.545 1.787m10.542-1.75V7.906h-.931v3.431c0 .24-.127.43-.38.557-.425.218-1.024.327-1.8.327a4.58 4.58 0 0 1-1.43-.207c-.497-.166-.747-.39-.747-.677v-3.43h-.931v3.423c0 .658.369 1.14 1.108 1.449.544.222 1.21.339 1.999.339a5.314 5.314 0 0 0 2.004-.332c.739-.303 1.108-.79 1.108-1.456m2.262-3.264h.008a.028.028 0 0 0 .02-.01zm-.637 1.592c0-.235.126-.415.384-.552.453-.238 1.106-.354 1.959-.354.37 0 .766.04 1.196.127L24 8.01a6.91 6.91 0 0 0-1.475-.13c-.64 0-1.207.063-1.696.185-1.062.296-1.594.825-1.594 1.594v3.424h.947zM5.839 14.19a7.616 7.616 0 0 0-1.46.134l.182.86a7.31 7.31 0 0 1 1.275-.134c.524 0 1.017.07 1.493.213.572.167.86.392.86.665v1.63c0 .278-.27.498-.81.658a5.552 5.552 0 0 1-1.54.192 5.516 5.516 0 0 1-1.54-.195c-.545-.16-.81-.38-.81-.658v-4.498c.21.01.42.025.65.025v-1.063a11.923 11.923 0 0 1-1.709-.25c-.875-.196-1.31-.447-1.31-.75V8.234h3.03V7.192H1.118V4.697H0v6.32c0 1.072.893 1.722 2.65 1.958v4.59c0 1.16 1.062 1.738 3.19 1.738 2.125 0 3.188-.577 3.188-1.738v-1.632c0-1.164-1.063-1.746-3.188-1.746m10.132 3.3c0 .283-.301.505-.903.67a6.762 6.762 0 0 1-1.716.202 6.73 6.73 0 0 1-1.716-.202c-.6-.165-.9-.387-.9-.67v-1.633c0-.28.3-.506.9-.668a6.58 6.58 0 0 1 1.716-.202c.64 0 1.215.065 1.716.202.602.165.903.387.903.668zm-2.62-3.417c-2.366 0-3.547.597-3.547 1.784v1.632c0 1.19 1.181 1.787 3.548 1.787 2.366 0 3.548-.598 3.548-1.787v-1.632c0-1.19-1.182-1.784-3.548-1.784m9.669.514c0 .296-.342.607-1.025.934-.564.235-.995.404-1.28.506a17.597 17.597 0 0 1-1.286-.506c-.683-.33-1.02-.638-1.02-.932v-.49h-.93v.49c0 .446.222.848.67 1.2.258.21.683.453 1.28.728-1.298.668-1.948 1.44-1.948 2.308v.45h.928v-.45c0-.354.3-.73.904-1.123a6.772 6.772 0 0 1 1.41-.704c.523.2.988.43 1.396.704.6.394.9.769.9 1.123v.45h.932v-.45c0-.868-.648-1.64-1.95-2.308.6-.275 1.026-.518 1.284-.728.443-.354.666-.754.666-1.2v-.49h-.931zm0 0\"},\"child\":[]}]})(props);\n};\nexport function SiTower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.733 11.831c.324 0 .442.028.564.084a.732.732 0 0 1 .3.249c.077.11.126.22.186.538l.265 1.415.015.081H2.937l.015-.08.265-1.416c.06-.318.109-.429.186-.538a.732.732 0 0 1 .3-.25c.122-.055.24-.083.564-.083zm1.149 3.052-1.227 1.743c-.174.246-.248.325-.343.401a.894.894 0 0 1-.315.163c-.117.034-.224.05-.525.05H5.528c-.301 0-.408-.016-.525-.05a.894.894 0 0 1-.315-.163c-.095-.076-.169-.155-.343-.401l-1.227-1.743-.007-.01h17.778a1.073 1.073 0 0 1-.007.01zM2.232 0h19.536c.482 0 .657.05.834.144a.983.983 0 0 1 .408.41c.095.176.145.35.145.833v.945c0 .482-.05.657-.145.833a.983.983 0 0 1-.408.409c-.177.094-.352.144-.834.144H2.232c-.482 0-.657-.05-.834-.144a.983.983 0 0 1-.408-.41c-.095-.175-.145-.35-.145-.832v-.945C.845.904.895.73.99.553a.983.983 0 0 1 .408-.409C1.575.05 1.75 0 2.232 0Zm5.273 4.733 1.028 6.422H4.637L2.75 4.731Zm8.651 0-1.088 6.422H9.209L8.121 4.732Zm5.094.002-1.88 6.422H15.74l1.025-6.423zM8.106 18.254a17.992 17.992 0 0 1 1.567 5.45.338.338 0 0 0 .335.296h3.972c.17 0 .313-.127.334-.296a17.993 17.993 0 0 1 1.567-5.45z\"},\"child\":[]}]})(props);\n};\nexport function SiToyota (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3.848C5.223 3.848 0 7.298 0 12c0 4.702 5.224 8.152 12 8.152S24 16.702 24 12c0-4.702-5.223-8.152-12-8.152zm7.334 3.839c0 1.08-1.725 1.913-4.488 2.246-.26-2.58-1.005-4.279-1.963-4.913 2.948.184 6.45 1.227 6.45 2.667zM12 16.401c-.96 0-1.746-1.5-1.808-4.389.577.047 1.18.072 1.808.072.628 0 1.23-.025 1.807-.072-.061 2.89-.847 4.389-1.807 4.389zm0-6.308c-.59 0-1.155-.019-1.69-.054.261-1.728.92-3.15 1.69-3.15.77 0 1.428 1.422 1.689 3.15-.535.034-1.099.054-1.689.054zm-.882-5.075c-.956.633-1.706 2.333-1.964 4.915C6.391 9.6 4.665 8.767 4.665 7.687c0-1.44 3.504-2.49 6.453-2.669zM2.037 11.68a5.265 5.265 0 011.048-3.164c.27 1.547 2.522 2.881 5.972 3.37V12c0 3.772.879 6.203 2.087 6.97-5.107-.321-9.107-3.48-9.107-7.29zm10.823 7.29c1.207-.767 2.087-3.198 2.087-6.97v-.115c3.447-.488 5.704-1.826 5.972-3.37a5.26 5.26 0 011.049 3.165c-.004 3.81-4.008 6.969-9.109 7.29z\"},\"child\":[]}]})(props);\n};\nexport function SiTplink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.185 0C10.218 0 6.25 3.984 6.25 8.903V10.8h4.99V8.903c0-2.135 1.736-3.863 3.946-3.863 2.187 0 3.708 1.536 3.708 3.815 0 2.257-1.64 3.912-3.827 3.912h-1.878v5.039h1.878c4.874 0 8.819-4.007 8.819-8.952C23.885 3.72 20.2 0 15.185 0zM.115 12.6v4.103c0 .624.523 1.248 1.236 1.248h4.753v4.801c0 .624.523 1.248 1.236 1.248h4.065V12.6Z\"},\"child\":[]}]})(props);\n};\nexport function SiTqdm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 14.562a2.338 2.338 0 1 1 0-4.677 2.338 2.338 0 0 1 0 4.677zM12 0C5.392 0 .036 5.473.036 12.224c0 5.579 3.659 10.281 8.658 11.746.428.126.87-.162.962-.598l.141-.669c.086-.41-.169-.799-.57-.92-4.039-1.221-6.986-5.037-6.986-9.559 0-5.507 4.37-9.972 9.76-9.972s9.76 4.464 9.76 9.972c0 4.515-2.938 8.325-6.967 9.552-.4.122-.654.511-.567.919l.142.67c.093.437.535.723.963.596 4.986-1.474 8.633-6.169 8.633-11.738C23.964 5.473 18.608 0 12 0zm7.152 12.224c0-4.04-3.202-7.315-7.152-7.315s-7.152 3.275-7.152 7.315c0 3.191 1.999 5.903 4.786 6.902a.79.79 0 0 0 1.037-.582l.042-.199a.772.772 0 0 0-.489-.889c-2.118-.752-3.639-2.809-3.639-5.232 0-3.059 2.424-5.539 5.415-5.539s5.415 2.48 5.415 5.539c0 2.418-1.516 4.472-3.628 5.227a.772.772 0 0 0-.487.89l.042.199a.791.791 0 0 0 1.038.58c2.78-1.003 4.772-3.71 4.772-6.896z\"},\"child\":[]}]})(props);\n};\nexport function SiTraccar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.0011 1.6096C.2624 4.9226-1.7038 12.2603 1.6096 17.9989c3.313 5.7387 10.6507 7.7049 16.3893 4.3916 5.7387-3.313 7.7049-10.6507 4.3916-16.3894C19.0775.2624 11.7398-1.704 6.0011 1.6096m.7057 1.2224c5.0637-2.9233 11.538-1.1884 14.4616 3.8748 2.9232 5.0636 1.1884 11.5379-3.8748 14.4616-5.0636 2.9232-11.538 1.1884-14.4616-3.8748C-.0912 12.2299 1.6436 5.7556 6.7068 2.832m3.9141 14.3151a3.7678 3.7678 0 1 1-3.768-6.5262l1.884 3.2631Zm5.7255-11.3953-1.1763 1.495c.6649.5112 1.2792 1.1559 1.7246 1.9274s.6967 1.6258.8069 2.4573l1.8828-.2712c-.1405-1.074-.4828-2.1316-1.0581-3.128-.5753-.9965-1.3201-1.8218-2.1799-2.4805M14.074 8.7632l-1.1763 1.4949c.2745.216.5484.479.7338.8.1853.321.2761.6897.3259 1.0355l1.8828-.2713c-.0802-.5881-.2619-1.1608-.5769-1.7064-.3154-.5455-.7201-.9896-1.1892-1.353Zm-3.8317 3.708a.942.942 0 1 0 1.884 0 .942.942 0 1 0-1.884 0\"},\"child\":[]}]})(props);\n};\nexport function SiTradingview (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.8654 8.2789c0 1.3541-1.0978 2.4519-2.452 2.4519-1.354 0-2.4519-1.0978-2.4519-2.452 0-1.354 1.0978-2.4518 2.452-2.4518 1.3541 0 2.4519 1.0977 2.4519 2.4519zM9.75 6H0v4.9038h4.8462v7.2692H9.75Zm8.5962 0H24l-5.1058 12.173h-5.6538z\"},\"child\":[]}]})(props);\n};\nexport function SiTraefikmesh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.646 4.738.034.02 2.945 1.66a.66.66 0 0 0 .65 0l2.92-1.644a.992.992 0 0 1 1.008 1.71l-.033.02-1.688.952a.33.33 0 0 0 0 .574l4.555 2.57a.66.66 0 0 0 .65 0l2.815-1.59a.993.993 0 0 1 1.01 1.71l-.035.02-1.585.89a.33.33 0 0 0 0 .578l1.594.897a.992.993 0 0 1-.94 1.748l-.035-.02-2.826-1.591a.66.66 0 0 0-.65 0l-4.605 2.595a.33.33 0 0 0 0 .575l1.905 1.072a.993.993 0 0 1-.94 1.748l-.035-.018-3.133-1.767a.66.66 0 0 0-.65 0L8.416 19.23a.992.992 0 0 1-1.006-1.71l.033-.02 1.93-1.088a.33.33 0 0 0 0-.575l-4.564-2.572a.66.66 0 0 0-.65 0l-2.689 1.51a.993.993 0 0 1-1.005-1.711l.034-.018 1.452-.817a.33.33 0 0 0 0-.577l-1.45-.817a.992.992 0 0 1 .941-1.746l.033.018 2.685 1.515a.66.66 0 0 0 .65 0l4.607-2.596a.33.33 0 0 0 0-.576l-1.711-.963a.992.993 0 0 1 .94-1.748Zm2.977 4.324-4.609 2.59a.33.33 0 0 0 0 .58l4.563 2.57a.66.66 0 0 0 .65 0l4.606-2.595a.33.33 0 0 0 0-.577l-4.558-2.57a.66.66 0 0 0-.65 0z\"},\"child\":[]}]})(props);\n};\nexport function SiTraefikproxy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.19c1.088 0 2.056.768 2.056 1.714 0 .947-.921 1.715-2.056 1.715-.13 0-.3-.022-.509-.064a.685.685 0 0 0-.475.076l-7.37 4.195a.344.344 0 0 0 .001.597l7.99 4.49c.208.116.461.116.669 0l8.034-4.468a.343.343 0 0 0 .003-.598l-2.507-1.424a.683.683 0 0 0-.67-.003l-2.647 1.468a.234.234 0 0 0-.119.18l-.001.025c0 .946-.921 1.714-2.056 1.714s-2.056-.768-2.056-1.714c0-.947.921-1.715 2.056-1.715.042 0 .09.002.145.007l.087.008.096.013a.685.685 0 0 0 .425-.08l3.913-2.173c.3-.166.662-.171.965-.017l.04.023 5.465 3.104c.686.39.693 1.368.03 1.773l-.037.021-3.656 2.033a.343.343 0 0 0 .007.604l3.62 1.906c.72.378.736 1.402.03 1.804l-10.995 6.272a1.03 1.03 0 0 1-1.019 0L.526 16.43a1.03 1.03 0 0 1 .034-1.806l3.66-1.911a.343.343 0 0 0 .01-.603L.524 10.029a1.03 1.03 0 0 1-.041-1.77l.036-.021L9.618 3.06a.688.688 0 0 0 .308-.369l.011-.036c.32-.952 1.046-1.466 2.063-1.466Zm5.076 12.63-4.492 2.586-.041.022c-.306.158-.671.152-.973-.018l-4.478-2.527a.682.682 0 0 0-.65-.01L3.86 15.224a.343.343 0 0 0-.012.602l7.887 4.515c.21.12.467.121.677 0l7.956-4.547a.343.343 0 0 0-.01-.602l-2.623-1.384a.683.683 0 0 0-.659.012z\"},\"child\":[]}]})(props);\n};\nexport function SiTrailforks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1.608 0 22.392h24zm-1.292 5.698h2.584v5.885l2.664 1.917v5.587h-2.204V16.05L12 14.788l-1.752 1.262v4.645H8.044v-5.587l2.664-1.917z\"},\"child\":[]}]})(props);\n};\nexport function SiTrainerroad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.289 14.039c.157-.064.44-.199.51-.234 1.105-.56 1.92-1.222 2.42-1.966.527-.756.8-1.658.78-2.579 0-1.253-.456-2.193-1.398-2.874-.922-.668-2.225-.971-3.874-1.012H1.357L0 8.421h5.528c.014 0 .028.005.038.016a.02.02 0 01.004.019L2.785 16.85h3.668c.063 0 .12-.041.14-.102l2.759-8.303a.043.043 0 01.042-.024l2.823.001c.014 0 .028.005.038.015a.02.02 0 01.004.019L9.473 16.85h3.669c.064 0 .12-.042.14-.103l.742-2.26a.043.043 0 01.042-.024s2.452.005 2.452.003c.864 1.363 1.807 2.878 2.616 4.16l3.844-.002c.118 0 .19-.13.125-.229l-2.832-4.321c-.01-.022.013-.025.018-.035zm-.45-3.355c-.437.412-1.185.612-2.163.612h-2.583l.952-2.874 2.353.001c1.14.017 1.826.514 1.838 1.337.007.35-.138.688-.397.924z\"},\"child\":[]}]})(props);\n};\nexport function SiTrakt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12-5.385 12-12 12zm0-22.789C6.05 1.211 1.211 6.05 1.211 12S6.05 22.79 12 22.79 22.79 17.95 22.79 12 17.95 1.211 12 1.211zm-7.11 17.32c1.756 1.92 4.294 3.113 7.11 3.113 1.439 0 2.801-.313 4.027-.876l-6.697-6.68-4.44 4.443zm14.288-.067c1.541-1.71 2.484-3.99 2.484-6.466 0-3.885-2.287-7.215-5.568-8.76l-6.089 6.076 9.164 9.15h.009zm-9.877-8.429L4.227 15.09l-.679-.68 5.337-5.336 6.23-6.225c-.978-.328-2.02-.509-3.115-.509C6.663 2.337 2.337 6.663 2.337 12c0 2.172.713 4.178 1.939 5.801l5.056-5.055.359.329 7.245 7.245c.15-.082.285-.164.42-.266L9.33 12.05l-4.854 4.855-.679-.679 5.535-5.535.359.331 8.46 8.437c.135-.1.255-.215.375-.316L9.39 10.027l-.083.015-.006-.007zm3.047 1.028l-.678-.676 4.788-4.79.679.689-4.789 4.785v-.008zm4.542-6.578l-5.52 5.52-.68-.679 5.521-5.52.679.684v-.005z\"},\"child\":[]}]})(props);\n};\nexport function SiTransifex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m20.073 12.851-2.758-2.757 3.722-3.659a.33.33 0 0 1 .467.003l2.27 2.309a.33.33 0 0 1-.004.468zm0 0h-.001zm-9.04-6.433 12.87 12.869c.129.13.129.34 0 .469l-2.289 2.289a.331.331 0 0 1-.468 0l-5.168-5.168-2.863 2.815c-.604.593-1.244 1.159-1.975 1.591a7.037 7.037 0 0 1-2.248.83c-2.191.42-4.557-.047-6.303-1.468A7.065 7.065 0 0 1 0 15.207V2.069a.33.33 0 0 1 .331-.33h3.237a.33.33 0 0 1 .331.33v4.125H6.65c.178 0 .323.145.323.323v3.617a.323.323 0 0 1-.323.323H3.899v4.75c0 1.272.808 2.429 1.988 2.893.753.295 1.617.321 2.397.131.852-.206 1.484-.717 2.097-1.319l2.839-2.792-4.945-4.945a.331.331 0 0 1 0-.468l2.289-2.289a.333.333 0 0 1 .469 0\"},\"child\":[]}]})(props);\n};\nexport function SiTransmission (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.6956 9.46V22.254c0 .945.8847 1.709 1.7157 1.709h17.1573c.878 0 1.7157-.6098 1.7157-1.709V9.4666c-2.3323.3753-4.6177.6233-6.863.7708v5.1471h3.4315l-6.8629 6.863-6.8628-6.863h3.4314v-5.0868c-2.339-.1207-4.6244-.3887-6.8428-.831h-.02v-.0068zM15.4214.0368v8.4177c2.2452-.1474 4.5306-.1675 6.8629-.5428C23.2226 7.7643 24 7.1008 24 6.0888v-3.8c0-1.012-.7841-1.6622-1.7157-1.8297-2.339-.429-4.6177-.2949-6.863-.4222zM8.5585.0503C6.2396.191 3.9609.077 1.7157.459.7774.6199 0 1.2767 0 2.2887v3.8001c0 1.012.7841 1.642 1.7157 1.823 2.2184.4423 4.5038.4758 6.8428.6031V.0503z\"},\"child\":[]}]})(props);\n};\nexport function SiTransportforireland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v12c0 6.62 5.38 12 12 12h12V11.978h-.022c0-6.62-5.38-11.978-12-11.978zm3.376 8.145h6.337v1.546h-2.33v6.12H5.706v-6.12h-2.33zm8.014 0h5.837V9.67h-4.138v1.633h3.659v1.546h-3.659v2.962H11.39zm7.535 0h1.678v7.666h-1.678Z\"},\"child\":[]}]})(props);\n};\nexport function SiTransportforlondon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.25a9.73 9.73 0 0 0-9.49 7.5H0v4.5h2.51a9.73 9.73 0 0 0 9.49 7.5c4.62 0 8.48-3.2 9.49-7.5H24v-4.5h-2.51A9.73 9.73 0 0 0 12 2.25zM12 6c2.5 0 4.66 1.56 5.56 3.75H6.44A6.02 6.02 0 0 1 12 6zm-5.56 8.25h11.12A6.02 6.02 0 0 1 12 18a6.02 6.02 0 0 1-5.56-3.75Z\"},\"child\":[]}]})(props);\n};\nexport function SiTravisci (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.32 13.025a.485.485 0 1 1-.97 0c0-.446-.167-.758-.406-.758-.239 0-.405.312-.405.758a.485.485 0 1 1-.97 0c0-1.187.713-1.728 1.375-1.728s1.376.541 1.376 1.728zm6.017.485a.485.485 0 0 0 .485-.485c0-.446.167-.758.405-.758s.405.312.405.758a.485.485 0 1 0 .97 0c0-1.187-.713-1.728-1.375-1.728s-1.375.541-1.375 1.728c0 .268.217.485.485.485zm7.967-4.454l-.191 2.459a.801.801 0 0 1-.367.623.852.852 0 0 1-.46.13 1.07 1.07 0 0 1-.366-.068c-.271-.101-.544-.192-.817-.285a8.978 8.978 0 0 1-.094 1.614c-.04.242-.092.471-.138.707a.485.485 0 0 1-.024.125 19.471 19.471 0 0 1-1.033 3.513l.033-.02.897-.537c.193-.137.599-.122.815.1a.645.645 0 0 1 .173.577.743.743 0 0 1-.053.159c-.061.135-.319.706-.866 1.906-.675 1.483-2.06 1.77-2.121 1.782.001.001-.907.214-1.879.44C15.458 23.419 13.87 24 12.087 24c-1.84 0-3.448-.58-4.787-1.713l-1.924-.45c-.041-.008-1.427-.294-2.103-1.778l-.87-1.914c-.005-.019-.05-.158-.053-.177-.009-.625.621-.914 1.023-.632l.858.512c.006.003.074.043.171.085a20.443 20.443 0 0 1-.982-3.444c-.063-.317-.129-.63-.183-.96a8.937 8.937 0 0 1-.09-1.7c-.357.118-.713.24-1.066.372-.292.109-.593.087-.827-.062a.802.802 0 0 1-.366-.621L.695 9.055c-.036-.475.305-.969.794-1.152l.3-.117c.225-.089.505-.198.837-.318C3.65 3.124 7.566 0 12.041 0c4.516 0 8.438 3.158 9.434 7.549.472.153.843.281 1.036.355.492.183.833.677.793 1.152zm-4.612 8.973c.369-.815.678-1.708.93-2.67l-.997.713a.952.952 0 0 1-.655.166l-4.467-.47a.96.96 0 0 1-.821-.698l-.558-1.923a2.482 2.482 0 0 0-.244 0l-.56 1.93a.955.955 0 0 1-.82.691l-4.471.471a.951.951 0 0 1-.642-.162l-.723-.503c.231.889.506 1.708.824 2.451.609-.028 1.207-.069 1.209-.069.001 0 .434-.039.788-.332l1.061-.885c.148-.165.652-.465 1.33-.271.196.055.495.146.815.243.062.019.12.05.17.092.532.445 1.832.445 2.365.002a.481.481 0 0 1 .168-.091c.337-.103.631-.192.823-.247.68-.193 1.182.108 1.374.314l1.016.843c.353.294.785.332.789.332-.001.001.658.045 1.296.073zm-6.605 5.001a6.42 6.42 0 0 0 1.949-.313c-.932-.209-1.555-1.019-1.588-1.062l-.406-.542-.407.543c-.031.043-.641.842-1.558 1.06.63.196 1.295.314 2.01.314zm6.941-4.016a63.622 63.622 0 0 1-1.701-.089 2.519 2.519 0 0 1-1.339-.554l-1.065-.888c-.055-.051-.187-.152-.442-.083-.176.05-.436.13-.717.216-.878.655-2.567.655-3.443-.003a43.693 43.693 0 0 0-.709-.212c-.258-.076-.386.03-.411.052l-1.097.918a2.523 2.523 0 0 1-1.341.553s-.872.059-1.594.085h-.002l-.106.004a2.41 2.41 0 0 1-1.341-.343l-.018-.01.453.996c.463 1.017 1.389 1.225 1.427 1.232.014.004 2.754.646 3.822.889.781.174 1.447-.696 1.454-.705l.795-1.061c.183-.245.594-.245.776 0l.796 1.061c.007.009.682.881 1.455.705 1.067-.243 3.807-.886 3.807-.886a2.193 2.193 0 0 0 1.442-1.236l.452-.993-.026.015a2.27 2.27 0 0 1-1.327.337zm1.096-7.412a28.286 28.286 0 0 0-15.998-.075 8.025 8.025 0 0 0 .067 1.845c.045.275.1.535.152.8l1.591 1.108 4.461-.476.642-2.243a.488.488 0 0 1 .395-.345 3.855 3.855 0 0 1 1.135.003.482.482 0 0 1 .394.344l.652 2.245 4.462.468 1.864-1.336c.036-.19.079-.374.111-.568a7.89 7.89 0 0 0 .072-1.77zm2.214-2.623c-.005-.034-.073-.133-.165-.167l-.004-.001c-.22-.083-.68-.242-1.256-.423l-.007-.005c-.955-.299-2.771-.823-4.267-.99a.485.485 0 0 1 .108-.964c1.192.134 2.529.466 3.637.787C19.298 3.552 15.913.97 12.041.97c-3.832 0-7.207 2.549-8.318 6.165a20.252 20.252 0 0 1 3.27-.705.484.484 0 1 1 .121.962 19.235 19.235 0 0 0-3.909.899l-.005.004c-.432.149-.785.288-1.056.394l-.315.123c-.094.035-.162.135-.167.175l.177 2.264a29.36 29.36 0 0 1 10.164-1.817c3.442 0 6.881.607 10.157 1.82l.178-2.275zm-8.534-5.986h-3.539a.485.485 0 0 0-.485.485v.811a.485.485 0 1 0 .97 0v-.326h.746v3.308h-.521a.485.485 0 1 0 0 .97h2.061a.485.485 0 1 0 0-.97h-.57V3.963h.853v.326a.485.485 0 1 0 .97 0v-.811a.485.485 0 0 0-.485-.485z\"},\"child\":[]}]})(props);\n};\nexport function SiTreehouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.3981 4.3857c-.8211-.448-2.0902.2986-2.8367 1.6423l-1.4183 2.3888c-.5226.9704-.448 2.1648.224 3.1353l.0746.0747c.6718.8958 1.493 1.7916 1.7916 2.0902.1493.1493.2986.3732.3732.6718.224.8212-.224 1.717-1.1197 1.941-.8212.2239-1.717-.224-1.941-1.1198-.0746-.224-.0746-.448-.0746-.5972.0747-.3733-.0746-.8958-.5972-1.493-.5225-.5226-1.493.5225-1.8662 1.5676v.0747c-.2986 1.045-.5226 2.0155-.448 2.0902 0 .0746.0747.0746.0747.1493.448.8958.1493 1.9409-.7465 2.3888-.8958.4479-1.9409.1493-2.3888-.7465-.4479-.8958-.1493-1.941.7465-2.3888.0747 0 .0747-.0747.1493-.0747.0747 0 .224-.4479.448-1.0451.1492-.5225.2239-.7465.2985-.9704.0747-.2986.224-1.0451.1493-1.3437-.0746-.3733-.4479-.3733-.8211-.1493-.224.1493-.6719.5225-.8212.6718-.3732.2986-.6718.7465-.8211 1.1198-.0747.1493-.224.3732-.3733.5225-.6718.5226-1.6423.4479-2.2395-.224-.5225-.6718-.4479-1.6422.224-2.2394.224-.1494.4479-.2987.6718-.2987.3733-.0746 1.717-.8958 2.5381-1.493.1493-.0746.3733-.2986.448-.3732.2239-.2986 0-.5226-.224-.5226-.6719.0747-1.4184.1493-1.5677.3733-.0746.0746-.1493.224-.2986.2986-.5972.4479-1.493.2986-1.9409-.2986-.4479-.5972-.2986-1.493.2986-1.9409.224-.224.5972-.2986.8212-.2986.5225 0 1.8662.2986 2.9113.0746l.2986-.0746c1.1198-.224 2.4635-1.1944 2.986-2.1649 0 0 .5226-.8958 1.1198-2.0155.6718-1.1198.5972-2.3888-.0747-2.762l-1.269-.7466c-.6719-.3732-1.6423-.3732-2.3142 0L2.1835 5.207C1.5117 5.58.9891 6.4758.9891 7.2223v9.5552c0 .7465.5226 1.6423 1.1944 2.0156L10.843 23.72c.6719.3732 1.717.3732 2.3142 0l8.6594-4.927c.6718-.3732 1.1944-1.269 1.1944-2.0155V7.2224c0-.7465-.5226-1.6423-1.1944-2.0156 0 0-.5972-.3732-1.4184-.8211z\"},\"child\":[]}]})(props);\n};\nexport function SiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.147 0H2.853A2.86 2.86 0 000 2.853v18.294A2.86 2.86 0 002.853 24h18.294A2.86 2.86 0 0024 21.147V2.853A2.86 2.86 0 0021.147 0zM10.34 17.287a.953.953 0 01-.953.953h-4a.954.954 0 01-.954-.953V5.38a.953.953 0 01.954-.953h4a.954.954 0 01.953.953zm9.233-5.467a.944.944 0 01-.953.947h-4a.947.947 0 01-.953-.947V5.38a.953.953 0 01.953-.953h4a.954.954 0 01.953.953z\"},\"child\":[]}]})(props);\n};\nexport function SiTrendmicro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.38 0 0 5.37 0 12C0 14.45 .734 16.72 2 18.62C1.5 17.45 1.58 15.94 2.19 14.29L2.2 14.25L2.25 14.12L2.3 14L2.32 13.95C2.54 13.4 2.82 12.83 3.16 12.26C3.21 12.16 3.25 12.07 3.3 12L1.86 12L2.21 11.21C3.4 10.88 5.38 10.22 7.27 8.39L7.32 8.39H8.32L7.03 11.14L9.1 11.14L8.72 11.96L6.66 11.96S5.69 13.9 5.36 15.28C5.11 16.82 5.36 18 6.74 18.41C7.59 18.67 8.66 18.61 9.81 18.29C12.5 17.45 15.34 15.62 17.43 13.18C20.87 9.19 20.94 5.1 17.58 4.05C15.43 3.38 12.39 4.13 9.58 5.8C13.08 3.54 16.94 2.5 19.59 3.31C20.09 3.46 20.53 3.68 20.89 3.94A11.97 11.97 0 0 0 12 0M22.17 5.63C23 7.81 21.97 11.07 19.2 14.29C15.04 19.13 8.47 22.05 4.5 20.83A4.46 4.46 0 0 1 3.24 20.21A11.96 11.96 0 0 0 12 24C18.63 24 24 18.63 24 12C24 9.66 23.33 7.5 22.17 5.63Z\"},\"child\":[]}]})(props);\n};\nexport function SiTreyarch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.313 23.017C.576 22.764-.232 21.704.058 20.061a6.643 6.643 0 0 1 .88-2.288c1.328-2.123 3.2-3.896 5.3-5.016.556-.297 1.881-.863 2.02-.863.03 0 .106.232.167.516.095.442.19.64.67 1.397.308.485.587.908.62.941.085.085.164-.471.164-1.153v-.572l.25.463c.294.542.588.98.743 1.109.06.05.006-.1-.122-.333-.982-1.793-1.62-4.265-1.622-6.286-.002-2.003.488-3.555 1.417-4.488.444-.446.813-.628 1.35-.667 1-.072 1.748.635 2.235 2.113.08.247.13.467.108.488-.022.023-.04-.003-.04-.058 0-.053-.133-.37-.295-.703-.332-.682-.786-1.219-1.187-1.402-.257-.118-.759-.166-.844-.082-.023.023.133.23.347.46.482.514.865 1.27 1.099 2.165.151.58.176.826.203 2.042.058 2.547-.35 4.406-1.289 5.861-.396.616-.456.554-.083-.087.154-.265.272-.564.295-.752.022-.172.026-.313.011-.313s-.11.148-.212.329c-.164.292-.21.33-.405.33h-.22l.134.215.134.217-.598.788c-.496.654-.916 1.19-1.179 1.503-.047.055-.741-1.063-1.084-1.745a6.541 6.541 0 0 0-.197-.375c-.047-.053-1.217.549-1.728.889-1.559 1.037-2.59 2.74-2.16 3.57.318.614 1.731.37 3.166-.55.181-.115.556-.393.833-.616.277-.223.568-.406.646-.406.081 0 .297-.146.502-.34.197-.186.374-.324.392-.306.06.061-1.838 1.857-2.473 2.34-1.562 1.185-2.92 1.643-3.876 1.306-.265-.094-.272-.093-.27.05.002.223.23.674.403.799.152.11.148.11-.174.067-.974-.134-1.547-.72-1.548-1.583 0-.385.213-1.165.477-1.74.595-1.298 2.396-3.08 3.694-3.653.296-.13.418-.248.824-.787.372-.496.453-.642.374-.673-.128-.049-.332.03-1.307.513-2.741 1.355-4.636 3.4-5.194 5.605-.231.916-.078 1.967.366 2.507l.153.187-.031-.814c-.026-.681-.009-.904.107-1.362.136-.539.492-1.363.7-1.622.076-.093.069-.054-.024.137-.397.82-.532 1.769-.344 2.416.305 1.051 1.716 1.562 3.24 1.173 1.04-.265 2.373-1.01 3.749-2.096.9-.71 2.84-2.689 3.375-3.44 1.631-2.296 2.48-5.781 2.15-8.84-.261-2.422-1.335-4.097-2.825-4.405a4.576 4.576 0 0 1-.62-.177c-.22-.088-.24-.11-.132-.153.335-.13 1.167-.046 1.701.175.09.038.112.03.078-.026-.094-.152-.54-.29-1.093-.338l-.56-.049.461-.01.461-.012-.259-.137c-.208-.11-.327-.128-.609-.095-.695.082-1.577.512-2.201 1.074-.431.389-.197.015.298-.476 1.1-1.088 2.587-1.296 4.117-.574.573.27 1.346 1 1.706 1.61.443.754.77 1.763.945 2.918.19 1.254.056 4-.267 5.48l-.118.54.631.208c.61.2 1.675.653 1.634.694-.01.011-.36-.11-.775-.268-.415-.159-.768-.275-.784-.258-.076.075 1.393 1.451 1.906 1.786 1.974 1.286 3.3 2.717 3.524 3.804.023.11-.032.027-.122-.184-.396-.93-1.05-1.723-2.146-2.605-1.376-1.107-2.975-2.005-3.94-2.213-.449-.097-.182.074.558.36 1.925.74 3.764 2.121 4.814 3.617.762 1.085.872 2.134.263 2.506-.325.198-1.153.183-2.036-.038-.589-.148-2.732-.934-2.679-.983.01-.008.226.038.48.103 1.368.36 2.145-.015 2.057-.994-.116-1.275-1.615-2.72-3.596-3.466-.231-.087-.427-.15-.434-.14a45.97 45.97 0 0 1-1.034 1.788l-.514.847.156.273a2 2 0 0 1 .202.602c.08.581.244.85.737 1.213 1.082.795 2.677 1.561 3.92 1.882.337.087.55.16.472.162-.188.004-1.284-.287-1.736-.462-1.087-.42-2.078-.994-3.483-2.017-.696-.506-.962-.667-1.001-.604-.064.103.116.267 1.027.938 1.96 1.444 4.675 2.543 6.282 2.543.992 0 1.62-.34 1.981-1.073a2.88 2.88 0 0 0 .256-.84l.051-.425.092.296c.099.32.13 1.549.048 1.877-.05.195-.048.195.08-.034.524-.927.54-2.254.043-3.38a9.99 9.99 0 0 0-.494-.9c-.407-.665-.165-.407.389.413.95 1.407 1.38 2.8 1.197 3.87a3.259 3.259 0 0 1-.239.774c-.31.605-.987 1.113-1.783 1.337-.483.136-1.965.121-2.657-.026-2.165-.463-4.985-2.04-6.989-3.908l-.365-.34-.658.639c-1.713 1.66-3.34 2.755-4.841 3.258-.647.216-1.636.411-2.53.499-.81.079-1.024.078-1.583-.003zM12.97 10.99c.393-1.77.336-3.854-.135-4.908-.61-1.367-1.746-.996-2.083.68-.154.766-.19 1.6-.112 2.55.063.764.213 1.789.3 2.04.02.06.277.082.98.082h.951zm6.514 9.62a.591.591 0 0 1 .23 0c.064.014.012.03-.115.03-.126 0-.178-.016-.115-.03zm2.637-2.227c0-.182.013-.248.028-.148.015.1.015.248 0 .33-.016.08-.029-.001-.028-.183zM7.786 10c-.268-1.136-.324-1.7-.288-2.866.025-.78.072-1.22.174-1.63.137-.549.468-1.535.503-1.5.01.009-.005.147-.034.303-.03.16-.024.394.012.537.051.2.034.366-.08.802-.19.72-.258 2.574-.128 3.452.048.324.078.618.067.655a4.22 4.22 0 0 0-.019.51c.001.245-.008.445-.02.445-.01 0-.095-.319-.187-.708z\"},\"child\":[]}]})(props);\n};\nexport function SiTricentis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.271 10.42 6.86 3.006 9.833.034l4.438 4.438L18.742 0l2.974 2.974ZM9.825 24l-2.973-2.974 7.445-7.445 7.412 7.412-2.974 2.973-4.438-4.437zm-4.567-4.568-2.974-2.974 4.47-4.47-4.437-4.439 2.974-2.974 7.412 7.412Z\"},\"child\":[]}]})(props);\n};\nexport function SiTrilium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.8553 20.5137c-.7787-.7246-.812-1.4624-.8734-1.5885-.079.2466-.1253.4053-.1373.85-.7557-.7326-1.2851-1.5794-1.313-2.5942-.0372-1.3607.5749-1.8516.5707-1.8503.0006 0-.475.245-.8974.5924.3103-1.8247 1.4396-3.5312 3.095-3.9996-.5245 1.2293-.7127 2.55-.5724 3.8772-.6085.6443-.892 1.4171-.8894 2.1975.076-.781.4132-1.4228.9283-1.896.2114 1.4964.836 2.9725 1.8574 4.2653-.686-.9884-1.8304-3.2666-1.3925-5.9322.8658.4332 1.5327 1.181 1.8753 2.24-.2249-1.0598-.8289-1.972-1.8258-2.6025.1167-.755.319-1.49.5952-2.1803.4585.068 2.2125.5934 2.707 3.957-.3584-.1922-.6988-.2992-.6991-.299.009.0033.2224.1787.4469 1.0828.2056.7923.0984 1.752-.0027 2.482-.3743-.1703-.6932-.2759-.6935-.2757-.0002 0 .3761.3252.499 1.2813.1095.8529.1058 1.9282.123 1.9147.0068.0002-2.0981-.3094-3.4014-1.5219M3.19 5.8314c1.0679-.3104 1.7479.048 1.894.0597-.179-.1997-.2966-.3242-.6892-.5686 1.0626-.2857 2.1065-.3105 3.032.1982 1.2411.6822 1.3532 1.4835 1.3544 1.4792-.0002.0005.035-.5504-.0502-1.108 1.4709 1.2346 2.3966 3.1342 1.929 4.8497-.8218-1.1117-1.906-1.973-3.1722-2.5461-.2517-.8789-.7933-1.5368-1.4949-1.9447.66.478 1.0552 1.1147 1.2035 1.8207-1.4562-.5989-3.1157-.8205-4.8237-.5933 1.2549-.0895 3.9131.0923 6.07 1.8822-.8528.541-1.8817.7398-3.0156.4872 1.0716.3575 2.2141.3009 3.3145-.2528a10.3132 10.3132 0 0 1 1.6373 1.6746c-.3069.3713-1.719 1.652-5.0027.3228.3648-.217.6433-.463.6434-.4633-.008.0062-.2797.1034-1.2115-.1726-.8212-.2338-1.6249-.8337-2.2258-1.307.3535-.2426.6194-.4702.6194-.4707.0001-.0002-.4935.163-1.4173-.2305C.9602 8.597-.003 8.0284 0 8.0508c-.0038.0059 1.403-1.6999 3.19-2.2194m16.218-3.6217c-1.4072-.0435-2.1363.615-2.3124.6761.1602-.3033.2674-.4945.677-.921-1.3933-.0146-2.6853.287-3.671 1.209-1.322 1.2368-1.2193 2.2615-1.222 2.2564.0003.0006-.2085-.6682-.2712-1.3834-1.4387 1.9916-2.0068 4.6304-.916 6.5989.6771-1.6334 1.7523-3.0412 3.138-4.1513.0456-1.1648.5142-2.149 1.2549-2.8756-.6684.8-.9633 1.7114-.9336 2.63 1.6117-1.2024 3.587-2.0038 5.757-2.2667-1.571.2886-2.9944.9148-4.2385 1.7688.7787.3556 1.668.4114 2.6026.0859-.896.42-1.8908.4886-2.8971.1229-.8931.654-1.6874 1.4268-2.3702 2.2762 1.212.3962 2.5378.3143 3.8571-.3582-1.211.7823-2.634 1.0757-4.1543.7426a13.3798 13.3798 0 0 0-1.5112 2.5874c.4891.3606 2.6117 1.492 6.2525-1.1928-.5141-.152-.9307-.3668-.931-.3671.0117.0052.3753.0385 1.4387-.5985.9402-.5498 1.7489-1.5457 2.346-2.321-.508-.187-.9034-.3834-.9036-.3839-.0003-.0002.6563.0442 1.6747-.7354.9084-.6954 1.9225-1.7034 1.9256-1.675.0064.0061-2.237-1.6515-4.592-1.7242\"},\"child\":[]}]})(props);\n};\nexport function SiTriller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.548 5.216L7.005 20.012l-.29-.167 8.54-14.788a9.365 9.365 0 0 0-6.07-.906L2.73 15.333l-.609 1.055a9.34 9.34 0 0 0 3.818 4.806l-1.522 2.64.289.166 2.303-3.987h-.002a9.367 9.367 0 0 0 6.068.905l6.321-10.945.287.167-6.168 10.683-.964 1.67a9.322 9.322 0 0 0 7.55-7.555 9.267 9.267 0 0 0-.413-4.802l2.299-3.982-.29-.167L20.14 8.68a9.343 9.343 0 0 0-3.816-4.806zm-5.842-2.64a9.324 9.324 0 0 0-7.132 12.359L8.893 3.989l.292.162L11.483.167 11.193 0z\"},\"child\":[]}]})(props);\n};\nexport function SiTrillertv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.496.07-1.8 3.107-.868-.498c-1.269-.729-2.852.184-2.852 1.64v6.28l3.9-6.734L9.933.319a.14.14 0 0 0-.053-.19l-.19-.11a.143.143 0 0 0-.193.05Zm-.713 3.734-4.807 8.301v7.163c0 .674.338 1.23.826 1.562l-1.65 2.85a.14.14 0 0 0 .05.192l.192.109a.142.142 0 0 0 .193-.05l1.665-2.874L13.629 6.59Zm11.63 2.547-1.8 3.108-4.33-2.49-8.217 14.186a1.91 1.91 0 0 0 .764-.248l8.598-4.948 5.42-9.356a.141.141 0 0 0-.05-.193c-.065-.035-.128-.073-.192-.11-.027-.02-.14-.041-.193.051zm-.711 3.735-2.967 5.123 3.08-1.774c1.268-.731 1.268-2.556 0-3.285z\"},\"child\":[]}]})(props);\n};\nexport function SiTrimble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.598 18.338a9.1 9.1 0 0 0 4.799 2.82L2.598 24zm4.764-15.52a9.14 9.14 0 0 0-4.764 2.81V0zM22.854 12l-4.811 2.851a9.65 9.65 0 0 0 .014-5.693zM5.758 4.301a9.4 9.4 0 0 1 5.297-.615 4.3 4.3 0 0 0-2.425.828c-.756-.213-2.185-.369-2.872-.213M14.9 14.602c-2.367 1.828-6.156 1.322-8.459-.605a23 23 0 0 1 2.673-3.483c1.359 1.208 3.398 1.7 5.035.936.38 1.014.633 2.073.751 3.152m-9.72-.42a15.4 15.4 0 0 0-1.621 3.751 8.5 8.5 0 0 1-2.406-5.603 8.54 8.54 0 0 1 1.939-5.79c-.651 2.393.058 5.506 2.088 7.642m8.6-3.636c-1.137.532-2.746.326-3.976-.723a19 19 0 0 1 2.339-1.865 11.4 11.4 0 0 1 1.637 2.588m-1.527-3.893a8.7 8.7 0 0 0-2.519-1.735c.909-.593 3-.629 4.301.72a8.4 8.4 0 0 0-1.782 1.015M5.922 14.88c2.399 1.937 6.253 2.59 9.051.881a7.4 7.4 0 0 1-.468 2.719 8.06 8.06 0 0 1-5.014 1.893 8.05 8.05 0 0 1-5.085-1.684c.136-.689.505-2.016 1.516-3.809m8.653-4.932a12.7 12.7 0 0 0-1.632-2.544 7 7 0 0 1 1.667-1.003c.681.945.861 2.587-.035 3.547m1.544-2.064c.837 1.87.874 4.207-.354 5.844a14 14 0 0 0-.778-2.822c.419-.367.743-.835.941-1.363a3.5 3.5 0 0 0 .191-1.659M9.14 9.096c-.758-1.049-.992-2.402-.229-3.451a7.7 7.7 0 0 1 2.53 1.581 19.5 19.5 0 0 0-2.301 1.87m6.773 5.95a6.5 6.5 0 0 0 1.609-3.749 8.65 8.65 0 0 1-1.71 5.88q.144-1.061.101-2.131M7.956 5.347c-.846 1.347-.467 3.226.487 4.443a24 24 0 0 0-2.725 3.499c-1.876-2.141-2.624-5.575-1.013-7.92a6.5 6.5 0 0 1 3.251-.022\"},\"child\":[]}]})(props);\n};\nexport function SiTrino (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.124 16.8529a.1615.1615 0 1 1 .1576.1614.1577.1577 0 0 1-.1576-.1614zm-5.607-.1576a.1614.1614 0 1 0 0 .3228.1614.1614 0 0 0 0-.3228zm10.1341-.6648v1.9869c-.031.5788-.524 1.0237-1.1029.9954h-.3843a5.0596 5.0596 0 0 1-1.1298 1.7178.3192.3192 0 0 0 0 .465l.2382.2191a.3036.3036 0 0 1 .0385.4304c-1.126 1.3835-2.9669 2.1521-5.0498 2.1521a6.575 6.575 0 0 1-4.8192-1.8985c-.0029-.0032-.0059-.0063-.0087-.0096a.6302.6302 0 0 1 .0548-.8896c.137-.1265.1371-.3462 0-.4727a4.944 4.944 0 0 1-1.126-1.714h-.3497c-.5797.0284-1.0737-.416-1.1068-.9954v-1.9869c.0351-.5779.5286-1.02 1.1068-.9915h.2728a5.7648 5.7648 0 0 1 2.0791-3.0936c-.4227-1.0991-1.1529-3.2551-1.226-5.0075C6.0229 4.4705 6.2189.078 7.8253.001c1.6064-.0768 1.3719 4.0275 1.0991 6.6946a32.732 32.732 0 0 0-.123 4.4503 6.994 6.994 0 0 1 2.4826-.4304 7.2414 7.2414 0 0 1 1.7371.2075c.2614-1.2682.8762-3.574 2.0292-5.1958 1.6717-2.352 3.4357-4.7808 4.6116-4.1006 1.176.6802-.3074 3.1398-1.3297 4.4272-1.0222 1.2874-2.7862 3.2089-3.3742 4.2274-.2114.3843-.4304.8032-.5956 1.1529a5.7375 5.7375 0 0 1 2.9169 3.6125h.073v-2.3058a.3075.3075 0 0 0-.1806-.2844.9148.9148 0 0 1-.5573-.8148 1.0184 1.0184 0 0 1 .9045-.9044c.5593-.0598 1.061.3452 1.1208.9044a.9187.9187 0 0 1-.5534.8148.3074.3074 0 0 0-.1691.2844v2.1522a.3113.3113 0 0 0 .1691.2805.9724.9724 0 0 1 .5648.857zm-1.0222-3.9737a.4345.4345 0 0 0 .4612-.4151.4151.4151 0 1 0-.4612.4151zm-.4227 3.4779c.0978.4794.148.9672.1498 1.4565v.3651h.4113a.3228.3228 0 0 0 .3228-.319v-1.0069c-.0111-.2967-.2733-.5256-.5688-.4957h-.3151zm-3.7278-4.481.611.2383a36.6046 36.6046 0 0 1 2.3828-3.8661c1.2874-1.7255 2.3365-3.5817 1.8715-3.8699-.465-.2883-1.6179 1.2297-2.7708 3.109a34.8978 34.8978 0 0 0-2.0945 4.3887zm-4.0544.6726.0154 1.3335c-.0039.2007.1881.3587.3843.3152a6.4317 6.4317 0 0 1 1.4565-.1653 5.995 5.995 0 0 1 1.4527.1729c.1956.0398.3853-.1153.3843-.3151v-1.3412a.319.319 0 0 0-.2421-.3113 6.664 6.664 0 0 0-1.6026-.1845 6.7093 6.7093 0 0 0-1.6025.1845.3188.3188 0 0 0-.246.3113zm1.7063 6.8637v.3843a.6878.6878 0 0 1-.4996.269c-.3074 0-.538-.4189-.538-.4189a.073.073 0 0 0-.1-.0307l-.0024.0013a.0693.0693 0 0 0-.0245.0947c.0115.0231.2806.4957.6649.4957a.7144.7144 0 0 0 .3843-.1268.3267.3267 0 0 1 .3612 0 .8332.8332 0 0 0 .4727.1345.957.957 0 0 0 .6572-.4803.0692.0692 0 0 0-.0269-.0961.0692.0692 0 0 0-.0999.0269c0 .0231-.2191.3843-.5419.4074a.8036.8036 0 0 1-.5765-.269v-.3843a.3154.3154 0 0 1 .1268-.2537c.196-.1499.415-.3958.415-.4919a.538.538 0 0 0-.5764-.4189c-.3766 0-.6533.2498-.6533.4573 0 .1345.2536.3382.4227.4612a.3226.3226 0 0 1 .1346.2383zM7.783 11.6455l.5765-.3074c-.0192-1.126-.0346-3.1436 0-4.5425.0538-2.0368.1537-4.5732-.5226-4.5463S6.6877 4.2285 6.949 7.007a33.0562 33.0562 0 0 0 .834 4.6385zm-3.305 5.3919a.319.319 0 0 0 .319.319h.3997a3.046 3.046 0 0 1 0-.3651 7.546 7.546 0 0 1 .1461-1.4565c-.0493.0002-.34.0005-.3866-.0021a.4881.4881 0 0 0-.4781.4979v1.0068zm.9184 1.4718a5.3254 5.3254 0 0 1-.123-.5573.3228.3228 0 0 0-.319-.2728h-.4957c.0007.0163-.0015.34.0009.355a.5188.5188 0 0 0 .5526.4827l.3842-.0076zm10.1265 2.917-.0884-.0807a.3229.3229 0 0 0-.3843-.0269 6.9823 6.9823 0 0 1-3.8046 1.0068 6.995 6.995 0 0 1-3.7932-1.0068.3228.3228 0 0 0-.3843.0269l-.0884.0807a.3154.3154 0 0 0 0 .4573 6.0305 6.0305 0 0 0 4.2927 1.5988 6.0453 6.0453 0 0 0 4.2889-1.5988.315.315 0 0 0-.0384-.4573zm1.4488-4.4158c0-2.4557-1.1529-4.3273-3.0245-5.2266-.2081-.1022-.4673.0594-.465.2921v1.3297a.3269.3269 0 0 0 .2037.296c1.7332.7109 2.9284 2.1866 2.9284 3.8776 0 2.2712-2.1559 3.8085-5.3419 3.8085-3.1859 0-5.3419-1.5411-5.3419-3.8085 0-1.691 1.1952-3.1667 2.9284-3.8776a.319.319 0 0 0 .2037-.296v-1.322c.0048-.2315-.2536-.3963-.4612-.2921-1.887.8839-3.0399 2.767-3.0399 5.2073 0 2.9899 2.2866 4.996 5.7108 4.996 3.4282.0001 5.6994-2.0098 5.6994-4.9844zm-8.6084-.538h-.0038a.5842.5842 0 1 0 .0038 0zm5.1614.5919c.0063.3226.2615.5789.584.5725a.5842.5842 0 1 0-.584-.5725zm4.5692.6225h-.4996a.3227.3227 0 0 0-.3151.2728c-.0346.173-.0768.3766-.1268.5573.0163.0007.3861-.0014.4012.0009a.5188.5188 0 0 0 .5366-.5004l.0037-.3306z\"},\"child\":[]}]})(props);\n};\nexport function SiTripadvisor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.006 4.295c-2.67 0-5.338.784-7.645 2.353H0l1.963 2.135a5.997 5.997 0 0 0 4.04 10.43 5.976 5.976 0 0 0 4.075-1.6L12 19.705l1.922-2.09a5.972 5.972 0 0 0 4.072 1.598 6 6 0 0 0 6-5.998 5.982 5.982 0 0 0-1.957-4.432L24 6.648h-4.35a13.573 13.573 0 0 0-7.644-2.353zM12 6.255c1.531 0 3.063.303 4.504.903C13.943 8.138 12 10.43 12 13.1c0-2.671-1.942-4.962-4.504-5.942A11.72 11.72 0 0 1 12 6.256zM6.002 9.157a4.059 4.059 0 1 1 0 8.118 4.059 4.059 0 0 1 0-8.118zm11.992.002a4.057 4.057 0 1 1 .003 8.115 4.057 4.057 0 0 1-.003-8.115zm-11.992 1.93a2.128 2.128 0 0 0 0 4.256 2.128 2.128 0 0 0 0-4.256zm11.992 0a2.128 2.128 0 0 0 0 4.256 2.128 2.128 0 0 0 0-4.256z\"},\"child\":[]}]})(props);\n};\nexport function SiTripdotcom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.834 9.002c-.68 0-1.29.31-1.707.799v-.514h-1.708v8.348h1.897v-2.923c.416.344.943.551 1.518.551 1.677 0 3.036-1.401 3.036-3.13s-1.36-3.13-3.036-3.13zm-.19 4.516c-.733 0-1.328-.62-1.328-1.385s.595-1.385 1.328-1.385c.734 0 1.328.62 1.328 1.385s-.594 1.385-1.328 1.385zm6.356.607a1.138 1.138 0 1 1-2.277 0 1.138 1.138 0 0 1 2.277 0zM13.205 7.428a1.062 1.062 0 1 1-2.125 0 1.062 1.062 0 0 1 2.125 0zm-2.011 1.859h1.897v5.692h-1.897V9.287zM6.83 8.225H4.364v6.754H2.466V8.225H0V6.63h6.83v1.594zm3.035 1.033c.13 0 .255.012.38.03v1.74a1.55 1.55 0 0 0-.297-.031c-.88 0-1.594.612-1.594 1.593v2.389H6.451V9.287h1.707v.9c.363-.558.991-.93 1.707-.93z\"},\"child\":[]}]})(props);\n};\nexport function SiTrivago (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8112 0a.2537.2537 0 0 0-.1336.0416L2.8311 3.1804a.4265.4265 0 0 0-.1947.3579v9.285c0 .141.1144.2554.2555.2554h5.1808l10.358-5.7274a.4263.4263 0 0 0 .22-.3732V1.6774c0-.1949-.2092-.3182-.3797-.2239L8.0727 7.0923V.2563c0-.1521-.1265-.2589-.2615-.2563zm.0172 14.7072-4.9307.0002c-.1457 0-.2607.1216-.2555.2672C2.822 19.9896 6.9445 24 12.0032 24c5.059 0 9.18-4.01 9.3602-9.0246.0053-.1461-.1102-.2682-.2564-.2682h-4.9319c-.1312 0-.2442.1073-.2545.238-.1592 2.025-1.8517 3.6185-3.9173 3.6185-2.4784 0-3.4806-2.1046-3.4808-2.105-.3197-.6025-.4129-1.1898-.4394-1.5183a.255.255 0 0 0-.2547-.2332Z\"},\"child\":[]}]})(props);\n};\nexport function SiTrivy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.375 7.311 1.962 5.918a.1.1 0 0 1 0-.174L11.828.047a.343.343 0 0 1 .344 0l9.864 5.696a.1.1 0 0 1 0 .175L19.624 7.31a.962.962 0 0 1-.052-.074c-.914-1.478-2.124-2.592-3.596-3.31-4.088-1.994-9.164-.505-11.6 3.385ZM12.262 23.899v-3.14c5.693-2.087 9.01-7.766 7.588-12.985l2.436-1.42a.1.1 0 0 1 .151.088v11.645a.1.1 0 0 1-.05.087l-9.973 5.812a.1.1 0 0 1-.152-.087Zm-.559-3.141v3.14a.1.1 0 0 1-.151.086l-9.933-5.81a.114.114 0 0 1-.056-.099V6.436a.1.1 0 0 1 .15-.087l2.44 1.41c-1.455 5.307 1.846 10.993 7.55 13ZM7.013 8.834 4.807 7.561c2.306-3.665 7.094-5.066 10.95-3.186 1.385.676 2.526 1.727 3.39 3.124l.04.062-2.195 1.268a5.57 5.57 0 0 0-2.429-2.307c-2.603-1.27-5.901-.253-7.552 2.311Zm9.337 5.2c.813-1.371 1.088-2.99.798-4.685l2.255-1.314c1.245 4.86-1.864 10.169-7.14 12.192v-3.072c1.86-.67 3.272-1.747 4.087-3.12ZM4.6 8.018l2.27 1.31c-.225 1.571.112 3.204.951 4.606.919 1.536 2.225 2.629 3.881 3.25v3.045C6.327 18.25 3.297 13.042 4.601 8.017Zm5.303 2.486-2.459-1.42c1.52-2.34 4.53-3.268 6.9-2.112a5.075 5.075 0 0 1 2.216 2.108l-2.471 1.427a2.311 2.311 0 0 0-2.03-1.195c-.825 0-1.645.43-2.156 1.192Zm4.338.522 2.443-1.408c.22 1.51-.043 2.945-.765 4.162-.735 1.238-1.998 2.224-3.658 2.856v-2.631c1.25-.691 1.968-1.771 1.98-2.979ZM8.25 13.676A6.576 6.576 0 0 1 7.34 9.6l2.446 1.412c-.016 1.271.73 2.437 1.917 2.997v2.624a6.977 6.977 0 0 1-3.453-2.956Zm3.853-.148-.137.073-.157-.075c-1.023-.504-1.524-1.606-1.557-2.417a1.99 1.99 0 0 1 .004-.23 2.153 2.153 0 0 1 1.163-.957c.508-.178 1.034-.153 1.444.071.6.327.84.797.86.86.008.156.004.253.004.256-.038.981-.63 1.863-1.624 2.419Z\"},\"child\":[]}]})(props);\n};\nexport function SiTrove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.922 8.43c-1.393.035-2.506 1.213-2.486 2.606a2.534 2.534 0 0 0 1.763 2.392l.25-1.123a1.424 1.424 0 0 1-.875-1.307c0-.883.816-1.594 1.72-1.396.56.122.994.58 1.095 1.143a1.419 1.419 0 0 1-.854 1.558l.25 1.123a2.537 2.537 0 0 0 1.764-2.428 2.557 2.557 0 0 0-2.627-2.568zM.189 8.5a.138.138 0 0 0-.136.137v.776c0 .07.058.134.136.134h1.016v3.797a.14.14 0 0 0 .135.135h.853a.141.141 0 0 0 .137-.135V9.547h1.016a.136.136 0 0 0 .136-.134v-.776a.138.138 0 0 0-.136-.137zm4.504 0a.136.136 0 0 0-.134.137v4.707c0 .071.056.137.134.137h.846a.143.143 0 0 0 .137-.137v-1.812h.49l.945 1.884a.13.13 0 0 0 .114.065h.947c.12 0 .17-.115.121-.207l-.975-1.807c.62-.249 1.053-.775 1.053-1.43 0-.846-.697-1.537-1.55-1.537zm10.356 0c-.107 0-.164.094-.121.186l2.218 4.787a.136.136 0 0 0 .122.078h.072c.057 0 .1-.035.12-.078l2.233-4.787c.043-.092-.014-.186-.12-.186h-.946a.14.14 0 0 0-.121.079l-1.174 2.597h-.043L16.115 8.58a.14.14 0 0 0-.12-.079zm5.805 0a.138.138 0 0 0-.137.137v4.707c0 .071.058.137.137.137h2.943a.136.136 0 0 0 .135-.137v-.775a.134.134 0 0 0-.135-.135h-1.97v-.96h1.622a.134.134 0 0 0 .135-.136v-.775a.14.14 0 0 0-.135-.135h-1.623v-.88h1.97a.134.134 0 0 0 .136-.135v-.776a.136.136 0 0 0-.135-.137zM5.676 9.518h1.053c.291 0 .539.242.539.541 0 .299-.248.568-.54.568H5.677zM.135 14.526A.134.134 0 0 0 0 14.66v.775c0 .071.056.135.135.135h10.588l.232-1.045zm12.896 0 .233 1.045h10.601a.134.134 0 0 0 .135-.135v-.775a.134.134 0 0 0-.135-.135z\"},\"child\":[]}]})(props);\n};\nexport function SiTrpc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.62-5.38 12-12 12S0 18.62 0 12 5.38 0 12 0s12 5.38 12 12ZM1.21 12A10.78 10.78 0 0 0 12 22.79 10.78 10.78 0 0 0 22.79 12 10.78 10.78 0 0 0 12 1.21 10.78 10.78 0 0 0 1.21 12Zm10.915-6.086 2.162 1.248a.25.25 0 0 1 .125.217v1.103l2.473 1.428a.25.25 0 0 1 .125.217v2.355l.955.551a.25.25 0 0 1 .125.217v2.496a.25.25 0 0 1-.125.217l-2.162 1.248a.25.25 0 0 1-.25 0l-.956-.552-2.472 1.427a.25.25 0 0 1-.25 0l-2.472-1.427-.956.552a.25.25 0 0 1-.25 0l-2.162-1.248a.25.25 0 0 1-.125-.217V13.25a.25.25 0 0 1 .125-.217l.955-.551v-2.355a.25.25 0 0 1 .125-.217l2.473-1.428V7.38a.25.25 0 0 1 .125-.217l2.162-1.248a.25.25 0 0 1 .25 0Zm1.268 10.049a.25.25 0 0 1-.125-.217V13.25a.25.25 0 0 1 .125-.217l2.16-1.248a.25.25 0 0 1 .25 0l.707.408v-1.922l-2.098-1.21v.814a.25.25 0 0 1-.125.217l-2.162 1.248a.25.25 0 0 1-.25 0l-2.162-1.248a.25.25 0 0 1-.125-.217V9.06L7.49 10.271v1.922l.707-.408a.25.25 0 0 1 .25 0l2.16 1.248a.25.25 0 0 1 .125.217v2.496a.25.25 0 0 1-.125.217l-.705.408L12 17.582l2.098-1.211ZM10.088 9.73l1.662.96V8.766l-1.662-.955Zm3.824 0V7.811l-1.662.955v1.924ZM12 6.418l-1.66.96 1.66.954 1.66-.954Zm-5.59 9.184 1.66.958v-1.921l-1.66-.956Zm3.822 0v-1.92l-1.662.957v1.923Zm-1.91-3.311-1.662.96 1.661.955 1.66-.956Zm5.446 3.31 1.66.96v-1.922l-1.66-.956Zm3.822 0v-1.918l-1.662.956v1.922Zm-1.912-3.31-1.66.96 1.66.955 1.66-.956Z\"},\"child\":[]}]})(props);\n};\nexport function SiTruenas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 10.049v5.114l-10.949 6.324v-5.114L24 10.049zm-24 0v5.114l10.956 6.324v-5.114L0 10.049zm12.004-.605l-4.433 2.559 4.433 2.559 4.429-2.559-4.429-2.559zm10.952-1.207l-9.905-5.723v5.118l5.473 3.164 4.432-2.559zm-12-.605V2.513L1.044 8.236l4.432 2.555 5.48-3.159z\"},\"child\":[]}]})(props);\n};\nexport function SiTrueup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.17 4.8a1.2 1.2 0 1 0 .06 2.4 1.2 1.2 0 0 0-.06-2.4Zm-8.4 0a1.2 1.2 0 1 0 .06 2.4 1.2 1.2 0 0 0-.06-2.4ZM10.2 0a6.608 6.608 0 0 0-6.6 6.6v4.8A12.614 12.614 0 0 0 16.2 24h3.6a.599.599 0 0 0 .6-.6V6.6A6.608 6.608 0 0 0 13.8 0Zm0 1.2h3.6a5.33 5.33 0 0 1 2.525.656A6.146 6.146 0 0 0 12 5.631a6.146 6.146 0 0 0-4.325-3.775A5.33 5.33 0 0 1 10.2 1.2ZM6.333 2.844C9.505 3.13 11.4 5.403 11.4 9a.6.6 0 0 0 1.2 0c0-3.597 1.895-5.87 5.067-6.156A5.375 5.375 0 0 1 19.2 6.6v.6c0 3.905-4.423 7.2-7.2 7.2s-7.2-3.295-7.2-7.2v-.6c0-1.404.551-2.752 1.533-3.756ZM4.8 11.068C6.505 13.758 9.681 15.6 12 15.6c1.09 0 2.371-.413 3.6-1.124V16.2c0 2.932.782 5.138 2.316 6.6H16.2A11.413 11.413 0 0 1 4.8 11.4Zm14.4 0v11.25c-1.609-1.21-2.4-3.218-2.4-6.118v-2.523a10.32 10.32 0 0 0 2.4-2.61z\"},\"child\":[]}]})(props);\n};\nexport function SiTrulia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6958 8.9368a.6678.6678 0 0 0 .095 1.329.6678.6678 0 0 0 .6678-.668.6678.6678 0 0 0-.7628-.661zm-4.3956.2812v1.121h.7513v3.4726h-.7513v1.121h2.6262v-1.121h-.7513V9.218Zm-12.549.121v1.3814H.0001v1.1281h.7513v1.0852c0 1.1799.9502 2.1362 2.1226 2.1362a2.1126 2.1126 0 0 0 .4608-.0507v-1.115a1.1025 1.1025 0 0 1-.3837.0685c-.5958 0-1.0789-.4689-1.0789-1.047v-1.0772H3.335v-1.1281H1.872V9.339Zm20.92 1.2609c-1.1147-.005-2.0196.9806-2.019 2.1905.0005 1.21.9043 2.1952 2.019 2.1905.0292 0 .0598-.0009.0877-.002.4221-.0111.8757-.2098 1.113-.488v.4218H24v-4.2458h-1.1275l-.0005.4236c-.2385-.2791-.692-.477-1.113-.4879-.0292-.002-.0585-.002-.0878-.002zm-14.8245.0473c-.5173.003-.9275.153-1.2964.654l-.2277-.64h-1.098v1.1271h.5195v3.1444h1.118v-2.1983a.9887.9887 0 0 1 .9851-.9906h.339v-1.0966Zm9.6549.047v1.1172h.7513v3.121h1.8736v-1.117h-.7514l.001-3.1212zm-8.2605.0298v2.2125c0 1.1773.9494 2.1315 2.1195 2.1315s2.1193-.9525 2.1193-2.1298v-2.214h-1.1186v2.2539a1.0018 1.0018 0 1 1-2.001 0v-2.254zm13.5857.9717c.5932 0 1.074.5008 1.0746 1.1191.0005.6184-.4814 1.1192-1.0746 1.1192-.5933 0-1.0742-.5008-1.075-1.1192-.0008-.6183.4817-1.1191 1.075-1.1191z\"},\"child\":[]}]})(props);\n};\nexport function SiTrustedshops (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.187 14.332c-1.1 1.626-2.63 3.108-4.687 3.108-2.175 0-3.442-1.362-3.442-3.562 0-3.561 2.63-7.052 6.335-7.052 1.242 0 2.916.502 2.916 2.009 0 2.7-4.231 3.609-6.311 4.135-.072.457-.143.908-.143 1.362 0 .933.501 1.793 1.53 1.793 1.338 0 2.412-1.29 3.203-2.247zm-1.148-5.808c0-.55-.31-.978-.884-.978-1.722 0-2.608 3.346-2.94 4.66 1.601-.48 3.824-1.794 3.824-3.682zM12 0a12 12 0 1 0 12 11.997A11.997 11.997 0 0 0 12 0zm-.1 19.523a7.563 7.563 0 1 1 7.564-7.563 7.563 7.563 0 0 1-7.563 7.56Z\"},\"child\":[]}]})(props);\n};\nexport function SiTrustpilot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.227 16.67l2.19 6.742-7.413-5.388 5.223-1.354zM24 9.31h-9.165L12.005.589l-2.84 8.723L0 9.3l7.422 5.397-2.84 8.714 7.422-5.388 4.583-3.326L24 9.311z\"},\"child\":[]}]})(props);\n};\nexport function SiTryhackme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.705 0C7.54 0 4.902 2.285 4.349 5.291a4.525 4.525 0 0 0-4.107 4.5 4.525 4.525 0 0 0 4.52 4.52h6.761a.625.625 0 1 0 0-1.25H4.761a3.273 3.273 0 0 1-3.27-3.27A3.273 3.273 0 0 1 6.59 7.08a.625.625 0 0 0 .7-1.035 4.488 4.488 0 0 0-1.68-.69 5.223 5.223 0 0 1 5.096-4.104 5.221 5.221 0 0 1 5.174 4.57 4.489 4.489 0 0 0-.488.305.625.625 0 1 0 .731 1.013 3.245 3.245 0 0 1 1.912-.616 3.278 3.278 0 0 1 3.203 2.61.625.625 0 0 0 1.225-.251 4.533 4.533 0 0 0-4.428-3.61 4.54 4.54 0 0 0-.958.105C16.556 2.328 13.9 0 10.705 0zm5.192 10.64a.925.925 0 0 0-.462.108.913.913 0 0 0-.313.29 1.27 1.27 0 0 0-.175.427 2.39 2.39 0 0 0-.054.514c0 .181.018.353.054.517.036.164.095.307.175.43a.899.899 0 0 0 .313.297c.127.073.281.11.462.11.18 0 .334-.037.46-.11a.897.897 0 0 0 .309-.296c.08-.124.137-.267.173-.431.036-.164.054-.336.054-.517 0-.18-.018-.352-.054-.514a1.271 1.271 0 0 0-.173-.426.901.901 0 0 0-.309-.291.917.917 0 0 0-.46-.108zm6.486 0a.925.925 0 0 0-.462.108.913.913 0 0 0-.313.29 1.27 1.27 0 0 0-.175.427 2.39 2.39 0 0 0-.053.514c0 .181.017.353.053.517.036.164.095.307.175.43a.899.899 0 0 0 .313.297c.127.073.281.11.462.11.18 0 .334-.037.46-.11a.897.897 0 0 0 .31-.296c.078-.124.136-.267.172-.431.036-.164.054-.336.054-.517 0-.18-.018-.352-.054-.514a1.271 1.271 0 0 0-.173-.426.901.901 0 0 0-.308-.291.916.916 0 0 0-.461-.108zm-8.537.068l-.84.618.313.43.476-.368v1.877h.603v-2.557zm6.486 0l-.841.618.314.43.477-.368v1.877h.603v-2.557zm-4.435.445c.08 0 .143.028.193.084.05.057.087.127.114.21.026.083.044.173.054.269a2.541 2.541 0 0 1 0 .533c-.01.097-.028.187-.054.27a.584.584 0 0 1-.114.21.243.243 0 0 1-.193.085.248.248 0 0 1-.195-.086.584.584 0 0 1-.118-.209 1.245 1.245 0 0 1-.056-.27 2.645 2.645 0 0 1 0-.533c.01-.096.029-.186.056-.27a.583.583 0 0 1 .118-.209.25.25 0 0 1 .195-.084zm6.486 0c.08 0 .144.028.193.084.05.057.087.127.114.21.027.083.044.173.054.269a2.541 2.541 0 0 1 0 .533c-.01.097-.027.187-.054.27a.584.584 0 0 1-.114.21.243.243 0 0 1-.193.085.249.249 0 0 1-.195-.086.581.581 0 0 1-.117-.209 1.245 1.245 0 0 1-.056-.27 2.642 2.642 0 0 1 0-.533c.01-.096.028-.186.056-.27a.58.58 0 0 1 .117-.209.25.25 0 0 1 .195-.084zm-2.191 3.51a.93.93 0 0 0-.463.109.908.908 0 0 0-.312.291c-.08.122-.139.263-.175.426a2.383 2.383 0 0 0-.054.514c0 .18.018.353.054.516.036.164.094.308.175.432a.91.91 0 0 0 .312.296.92.92 0 0 0 .463.11c.18 0 .333-.037.46-.11a.892.892 0 0 0 .308-.296 1.32 1.32 0 0 0 .174-.432c.036-.163.054-.335.054-.516 0-.18-.018-.352-.054-.514a1.274 1.274 0 0 0-.174-.426.89.89 0 0 0-.309-.291.918.918 0 0 0-.46-.108zm-6.402.07l-.841.617.314.43.476-.369v1.878h.604v-2.557zm2.125 0l-.841.617.314.43.477-.369v1.878h.603v-2.557zm2.116 0l-.84.617.313.43.477-.369v1.878h.603v-2.557zm2.16.443c.08 0 .144.028.194.085a.605.605 0 0 1 .114.21c.026.083.044.172.053.269a2.639 2.639 0 0 1 0 .532 1.28 1.28 0 0 1-.053.27.585.585 0 0 1-.114.21.244.244 0 0 1-.193.085.25.25 0 0 1-.196-.085.589.589 0 0 1-.117-.21 1.245 1.245 0 0 1-.056-.27 2.597 2.597 0 0 1 0-.532c.01-.097.028-.186.056-.27a.589.589 0 0 1 .117-.209.249.249 0 0 1 .196-.085zm-6.729 3.073a.676.676 0 0 0-.335.078.661.661 0 0 0-.227.211.91.91 0 0 0-.127.31c-.027.118-.04.242-.04.373s.013.256.04.375a.93.93 0 0 0 .127.313.65.65 0 0 0 .227.215c.092.053.204.08.335.08a.655.655 0 0 0 .334-.08.65.65 0 0 0 .225-.215c.057-.09.1-.194.125-.313a1.75 1.75 0 0 0 .04-.375c0-.13-.014-.255-.04-.373a.931.931 0 0 0-.125-.31.658.658 0 0 0-.225-.21.667.667 0 0 0-.334-.08zm3.086 0a.675.675 0 0 0-.336.078.661.661 0 0 0-.226.211.907.907 0 0 0-.127.31 1.69 1.69 0 0 0-.04.373c0 .131.013.256.04.375a.928.928 0 0 0 .127.313c.058.09.134.162.226.215.093.053.205.08.336.08a.655.655 0 0 0 .334-.08.65.65 0 0 0 .224-.215c.058-.09.1-.194.126-.313a1.752 1.752 0 0 0 0-.748.94.94 0 0 0-.126-.31.657.657 0 0 0-.224-.21.667.667 0 0 0-.334-.08zm5.108 0a.675.675 0 0 0-.336.078.661.661 0 0 0-.226.211.91.91 0 0 0-.127.31c-.027.118-.04.242-.04.373s.013.256.04.375a.931.931 0 0 0 .127.313c.058.09.134.162.226.215.093.053.205.08.336.08.13 0 .243-.027.334-.08a.65.65 0 0 0 .224-.215c.058-.09.1-.194.126-.313a1.75 1.75 0 0 0 .04-.375c0-.13-.014-.255-.04-.373a.943.943 0 0 0-.126-.31.657.657 0 0 0-.224-.21.668.668 0 0 0-.334-.08zm-6.658.05l-.61.448.227.311.346-.266v1.362h.438v-1.856zm3.068 0l-.61.448.227.311.346-.266v1.362h.438v-1.856zm5.108 0l-.611.448.228.311.346-.266v1.362h.438v-1.856zm-9.712.322c.058 0 .105.02.14.062a.421.421 0 0 1 .083.151.96.96 0 0 1 .04.196 1.932 1.932 0 0 1 0 .386.954.954 0 0 1-.04.197.421.421 0 0 1-.083.152.176.176 0 0 1-.14.061.18.18 0 0 1-.141-.06.427.427 0 0 1-.085-.153.887.887 0 0 1-.041-.197 1.96 1.96 0 0 1 0-.386.893.893 0 0 1 .04-.196.42.42 0 0 1 .086-.151.181.181 0 0 1 .141-.062zm3.086 0c.058 0 .104.02.14.062a.421.421 0 0 1 .082.151.94.94 0 0 1 .04.196 1.906 1.906 0 0 1 0 .386.93.93 0 0 1-.04.197.421.421 0 0 1-.082.152.176.176 0 0 1-.14.061.18.18 0 0 1-.141-.06.42.42 0 0 1-.086-.153.846.846 0 0 1-.04-.197 1.965 1.965 0 0 1-.011-.195c0-.057.004-.121.01-.191a.849.849 0 0 1 .041-.196.42.42 0 0 1 .086-.151.182.182 0 0 1 .141-.062zm5.108 0c.058 0 .104.02.14.062a.421.421 0 0 1 .082.151.92.92 0 0 1 .04.196 1.963 1.963 0 0 1 0 .386.943.943 0 0 1-.04.197.421.421 0 0 1-.082.152.177.177 0 0 1-.14.061.18.18 0 0 1-.142-.06.437.437 0 0 1-.085-.153.95.95 0 0 1-.04-.197 1.965 1.965 0 0 1-.011-.195c0-.057.004-.121.01-.191a.959.959 0 0 1 .04-.196.47.47 0 0 1 .086-.151.181.181 0 0 1 .142-.062zm-1.684 1.814a.675.675 0 0 0-.336.079.66.66 0 0 0-.227.21.91.91 0 0 0-.127.31 1.731 1.731 0 0 0 0 .748.939.939 0 0 0 .127.314c.059.09.134.162.227.215.093.053.205.08.336.08a.66.66 0 0 0 .334-.08.648.648 0 0 0 .224-.215c.058-.09.1-.195.126-.314a1.737 1.737 0 0 0-.001-.747.928.928 0 0 0-.125-.31.65.65 0 0 0-.224-.211.668.668 0 0 0-.334-.079zm3.063 0a.676.676 0 0 0-.336.079.664.664 0 0 0-.227.21.906.906 0 0 0-.127.31 1.74 1.74 0 0 0 0 .748.936.936 0 0 0 .127.314.66.66 0 0 0 .227.215c.092.053.204.08.336.08a.654.654 0 0 0 .334-.08.648.648 0 0 0 .223-.215c.058-.09.1-.195.126-.314a1.74 1.74 0 0 0 0-.747.928.928 0 0 0-.126-.31.65.65 0 0 0-.223-.211.666.666 0 0 0-.334-.079zm-1.545.05l-.611.448.228.312.346-.267v1.363h.438v-1.856zm-1.518.323c.057 0 .104.02.14.061a.42.42 0 0 1 .082.152.91.91 0 0 1 .04.195 1.966 1.966 0 0 1 0 .387.951.951 0 0 1-.04.197.421.421 0 0 1-.082.152.177.177 0 0 1-.14.06.18.18 0 0 1-.142-.06.428.428 0 0 1-.085-.152.914.914 0 0 1-.04-.197 1.96 1.96 0 0 1-.011-.195c0-.058.003-.122.01-.192a.923.923 0 0 1 .041-.195c.02-.06.048-.11.085-.152a.181.181 0 0 1 .142-.061zm3.063 0c.057 0 .104.02.14.061a.42.42 0 0 1 .082.152.94.94 0 0 1 .04.195 1.91 1.91 0 0 1 0 .387.93.93 0 0 1-.04.197.422.422 0 0 1-.083.152.175.175 0 0 1-.14.06.18.18 0 0 1-.141-.06.423.423 0 0 1-.085-.152.907.907 0 0 1-.04-.197 1.95 1.95 0 0 1 0-.387.915.915 0 0 1 .04-.195c.02-.06.048-.11.085-.152a.182.182 0 0 1 .142-.061zm-9.713.185a.465.465 0 0 0-.232.055.456.456 0 0 0-.157.146.627.627 0 0 0-.089.215 1.168 1.168 0 0 0-.027.259c0 .09.009.177.027.26a.648.648 0 0 0 .089.216c.04.063.093.112.157.149a.459.459 0 0 0 .232.056c.09 0 .168-.02.231-.056a.45.45 0 0 0 .156-.149.67.67 0 0 0 .087-.217 1.218 1.218 0 0 0 0-.518.647.647 0 0 0-.087-.215.448.448 0 0 0-.156-.146.458.458 0 0 0-.23-.055zm1.052.035l-.423.31.158.217.24-.185v.944h.303v-1.286zm-1.052.224c.04 0 .073.014.097.042a.284.284 0 0 1 .057.105.69.69 0 0 1 .028.136c.004.049.007.092.007.133 0 .04-.003.086-.007.135a.684.684 0 0 1-.028.136.285.285 0 0 1-.057.105.123.123 0 0 1-.097.043.125.125 0 0 1-.098-.043.298.298 0 0 1-.059-.105.612.612 0 0 1-.028-.136 1.39 1.39 0 0 1 0-.268.62.62 0 0 1 .028-.136.297.297 0 0 1 .06-.105.125.125 0 0 1 .097-.042zm3.775 1.394a.463.463 0 0 0-.232.054.452.452 0 0 0-.157.146.621.621 0 0 0-.088.214 1.19 1.19 0 0 0 0 .519.641.641 0 0 0 .088.217.46.46 0 0 0 .157.15.458.458 0 0 0 .232.054.454.454 0 0 0 .232-.055.45.45 0 0 0 .155-.149.664.664 0 0 0 .087-.217 1.189 1.189 0 0 0 0-.519.642.642 0 0 0-.087-.214.446.446 0 0 0-.155-.146.459.459 0 0 0-.232-.054zm1.052.034l-.423.31.158.216.24-.185v.945h.303V22.68zm-1.052.223c.04 0 .073.014.098.043a.3.3 0 0 1 .057.105.643.643 0 0 1 .027.135 1.31 1.31 0 0 1 0 .268.654.654 0 0 1-.027.137.307.307 0 0 1-.057.105.124.124 0 0 1-.098.042.125.125 0 0 1-.098-.042.293.293 0 0 1-.059-.105.618.618 0 0 1-.028-.137 1.364 1.364 0 0 1 0-.268.612.612 0 0 1 .028-.135.287.287 0 0 1 .06-.105.123.123 0 0 1 .097-.043z\"},\"child\":[]}]})(props);\n};\nexport function SiTryitonline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.75 6a.75.75 0 100 1.5H4.5v9.75a.75.75 0 101.5 0V7.5h17.25a.75.75 0 100-1.5zm10.5 3a.75.75 0 00-.75.75v7.5a.75.75 0 101.5 0v-7.5a.75.75 0 00-.75-.75zm8.25 0a4.51 4.51 0 00-4.5 4.5c0 2.48 2.02 4.5 4.5 4.5s4.5-2.02 4.5-4.5S21.98 9 19.5 9zm0 1.5c1.67 0 3 1.33 3 3s-1.33 3-3 3-3-1.33-3-3 1.33-3 3-3Z\"},\"child\":[]}]})(props);\n};\nexport function SiTsnode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.999 0c-.196 0-.392.05-.568.153L2.026 5.58a1.135 1.135 0 00-.568.983V17.43c0 .406.216.781.568.984l5.787 3.344v-7.344H4.748v-1.943h8.342v1.943h-3.065v8.622l1.406.812c.351.203.784.203 1.136 0l2.317-1.338a3.958 3.958 0 01-1.195-1.413l1.801-1.042c.361.59.806 1.06 1.48 1.25l2.174-1.256c-.127-.568-.698-.823-1.584-1.21l-.553-.238c-1.596-.68-2.655-1.532-2.655-3.334 0-1.658 1.265-2.922 3.24-2.922 1.406 0 2.417.49 3.144 1.77l-1.723 1.105c-.379-.68-.79-.948-1.421-.948-.648 0-1.06.41-1.06.948 0 .663.412.932 1.36 1.343l.553.237c1.336.573 2.255 1.155 2.676 2.107l.853-.493c.352-.203.568-.578.568-.984V6.565c0-.406-.216-.782-.568-.984L12.567.153A1.134 1.134 0 0011.999 0z\"},\"child\":[]}]})(props);\n};\nexport function SiTubi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.696 15.272v-.752c.4.548 1.107.917 1.934.917 1.475 0 2.28-.956 2.28-2.865 0-1.714-.893-2.858-2.235-2.858-.851 0-1.55.347-1.979.908v-2.06h-2.674v6.71zm1.57-2.614c0 .827-.337 1.275-.827 1.275-.486 0-.837-.452-.837-1.275s.342-1.28.837-1.28c.495 0 .828.452.828 1.28zM6.94 9.988v3.6c0 1.236.754 1.841 1.955 1.841.959 0 1.625-.396 2.028-1.064v.91h2.597V9.989h-2.675v3.14c0 .493-.346.693-.666.693-.321 0-.568-.192-.568-.655V9.989Zm14.39 0H24v5.276h-2.67ZM6.553 11.136c0 .781-.635 1.415-1.42 1.415-.783 0-1.419-.634-1.419-1.415 0-.782.636-1.415 1.42-1.415.784 0 1.42.633 1.42 1.415zM3.49 9.702v2.668c.005.653.327.924.976.924.225 0 .526-.053.672-.166v1.931c-.49.243-.869.378-1.535.378 0 0-.069 0-.18-.006l-.003.006c-1.614 0-2.51-1.035-2.482-2.686v-.47H0V9.99h.92V8.563h2.569Z\"},\"child\":[]}]})(props);\n};\nexport function SiTui (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 4.5167a2.117 2.117 0 01-2.117 2.117 2.117 2.117 0 01-2.117-2.117 2.117 2.117 0 012.117-2.117A2.117 2.117 0 0124 4.5168zM1.1397 7.7475h5.7055c.5642 0 .9806.1772 1.1465.9716.185.8836.1129 1.4986-.8858 1.5686l-1.7909.132c1.318 8.3303 9.0277 11.0453 13.2221 2.073.6952-1.485.922-1.7548 1.6826-1.5663 1.0314.2561 1.1724.7899.677 2.2828-3.6234 11.0566-15.8186 12.166-18.211-2.6044l-1.4546.105C.0463 10.7942 0 9.7956 0 9.2404c0-1.0992.4074-1.493 1.1397-1.493z\"},\"child\":[]}]})(props);\n};\nexport function SiTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.563 24c-5.093 0-7.031-3.756-7.031-6.411V9.747H5.116V6.648c3.63-1.313 4.512-4.596 4.71-6.469C9.84.051 9.941 0 9.999 0h3.517v6.114h4.801v3.633h-4.82v7.47c.016 1.001.375 2.371 2.207 2.371h.09c.631-.02 1.486-.205 1.936-.419l1.156 3.425c-.436.636-2.4 1.374-4.156 1.404h-.178l.011.002z\"},\"child\":[]}]})(props);\n};\nexport function SiTunein (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.66 11.398v.742c0 .105-.11.105-.11.105h-.847s-.11 0-.11.11v4.03c0 .11-.105.11-.105.11h-.855c-.106 0-.106-.11-.106-.11v-4.03s0-.11-.109-.11h-.844c-.105 0-.105-.105-.105-.105v-.742c0-.106.105-.106.105-.106H7.66v.106m15.458-7.52H12.301c-.68 0-.836.16-.836.816v2.414c0 .493 0 .493-.492.493H.813C.137 7.6 0 7.737 0 8.425v5.41c0 1.754 0 3.508.023 5.266 0 .922.102 1.02 1.04 1.02H9.89c.664 0 1.32.01 1.984-.01.48-.006.669-.202.669-.682v-2.56c0-.468 0-.468.469-.468h10.195c.633 0 .793-.152.793-.78V4.736c0-.7-.164-.86-.883-.86zm-11.64 14.625c0 .5-.013.5-.525.5-3.148 0-6.293 0-9.445.008-.32 0-.43-.078-.43-.418.016-3.16.008-6.324 0-9.48-.008-.34.086-.446.442-.446 3.187.012 6.363.008 9.55.008.117 0 .23.015.4.023 0 .18 0 .32.01.442-.003 3.113-.003 6.242-.003 9.363zm7.69-5.844c0 .102-.104.102-.104.102h-2.57c-.106 0-.106-.102-.106-.102v-.72c0-.1.105-.1.105-.1h.617s.102 0 .102-.102V8.659s0-.101-.102-.101h-.515c-.102 0-.102-.102-.102-.102v-.82c0-.106.102-.106.102-.106h2.367c.102 0 .102.106.102.106v.715c0 .105-.102.105-.102.105h-.516s-.101 0-.101.102v3.074s0 .105.1.105h.618c.106 0 .106.102.106.102z\"},\"child\":[]}]})(props);\n};\nexport function SiTurbo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.26718 0H.7368A.7368.7368 0 0 0 0 .7368v3.09061h12a8.17657 8.17656 0 0 1 6.80252 12.70494h5.17757V.73681A.73282.73282 0 0 0 23.26718 0ZM3.82741 12a8.15267 8.15267 0 0 1 1.37007-4.53236H0v15.79952A.73282.73282 0 0 0 .7368 24h22.53038A.73282.73282 0 0 0 24 23.26716v-3.09458H12A8.17259 8.17258 0 0 1 3.82741 12Z M17.94225 11.7929a9.21208 9.21208 0 0 1-2.28211.5536 3.98274 3.98274 0 0 0-.0239-.92002 9.74179 9.74178 0 0 0 1.9635-2.31397.88172.88172 0 0 0-1.48955-.94391 8.76203 8.76203 0 0 1-1.21474 1.54928 3.61235 3.61234 0 0 0-.75672-.72087 7.26452 7.26452 0 0 0-.12346-1.5453 12.43412 12.43411 0 0 0-.56157-2.01129.88019.88019 0 0 0-1.1311-.52572.84036.84036 0 0 0-.3226.20312.88815.88815 0 0 0-.2071.92798c.07966.21108.14736.39827.2071.60936.08762.28277.15931.54962.21905.79655a7.5234 7.5234 0 0 1 .12745.91204 3.43312 3.43312 0 0 0-.91603.0239A9.76568 9.76568 0 0 0 9.1125 6.42018a.88417.88417 0 0 0-.9439 1.49352 8.78991 8.7899 0 0 1 1.55326 1.19483 3.72386 3.72386 0 0 0-.72486.75672 9.49884 9.49883 0 0 0-3.55659.68901.88198.88198 0 0 0 .60538 1.65682 9.27182 9.27182 0 0 1 2.31796-.56953c0 .11948-.01992.23896-.01992.35844a3.67607 3.67607 0 0 0 .04381.55759 9.66213 9.66213 0 0 0-1.96747 2.31397.88019.88019 0 0 0 .74477 1.35413.8762.8762 0 0 0 .74876-.39827 8.60272 8.60272 0 0 1 1.19482-1.54929 3.95486 3.95486 0 0 0 .75672.72486 7.01759 7.01759 0 0 0 .12745 1.54132 12.03585 12.03584 0 0 0 .56157 2.01128.8762.8762 0 0 0 .82442.56157.89612.89612 0 0 0 .3027-.05177.92001.92001 0 0 0 .31861-.2071.8762.8762 0 0 0 .2071-.924c-.07567-.21507-.14736-.39828-.2071-.61335-.08762-.28277-.15931-.54563-.21507-.79654a6.60339 6.60338 0 0 1-.14338-.87222H12a3.72785 3.72784 0 0 0 .56157-.03983 9.7139 9.7139 0 0 0 2.30999 1.96349.88172.88172 0 1 0 .9439-1.48955 8.89744 8.89744 0 0 1-1.54928-1.21473 3.73581 3.73581 0 0 0 .72486-.75672h.20312a9.95685 9.95685 0 0 0 3.34948-.68902.88417.88417 0 0 0-.60139-1.6608zM13.95951 12v.1593a1.95154 1.95154 0 0 1-.693 1.35015 1.79622 1.79622 0 0 1-.24294.17524 1.99137 1.99137 0 0 1-1.03153.29074h-.15931a1.95154 1.95154 0 0 1-1.34617-.68901 2.306 2.306 0 0 1-.17922-.24693 1.99137 1.99137 0 0 1-.29074-1.03153v-.15931a1.8679 1.8679 0 0 1 .04779-.2987 1.99137 1.99137 0 0 1 .64122-1.04747 2.78792 2.78792 0 0 1 .24693-.17922 1.99137 1.99137 0 0 1 1.03153-.29074h.1593a1.9157 1.9157 0 0 1 .3027.0478 1.99137 1.99137 0 0 1 1.04746.6452 1.79622 1.79622 0 0 1 .17524.24294A1.99137 1.99137 0 0 1 13.97544 12z\"},\"child\":[]}]})(props);\n};\nexport function SiTurborepo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.155 12.058c0 .503.095.967.285 1.392.19.424.447.793.771 1.106.324.313.699.56 1.123.738.437.168.895.252 1.375.252.481 0 .934-.084 1.359-.252a3.578 3.578 0 0 0 1.14-.738 3.37 3.37 0 0 0 1.073-2.498 3.371 3.371 0 0 0-1.073-2.498 3.356 3.356 0 0 0-1.14-.721 3.463 3.463 0 0 0-1.359-.269c-.48 0-.938.09-1.374.269-.425.167-.8.408-1.124.72a3.52 3.52 0 0 0-.771 1.107 3.37 3.37 0 0 0-.285 1.392Zm-3.437 0c0-.939.173-1.81.52-2.616a6.524 6.524 0 0 1 1.441-2.13 6.503 6.503 0 0 1 2.197-1.408c.86-.346 1.805-.52 2.833-.52 1.018 0 1.957.174 2.817.52a6.47 6.47 0 0 1 2.213 1.409 6.542 6.542 0 0 1 1.979 4.745c0 .939-.173 1.816-.52 2.632a6.45 6.45 0 0 1-1.459 2.113 6.678 6.678 0 0 1-2.213 1.425c-.86.335-1.8.503-2.817.503-1.028 0-1.973-.168-2.833-.503a6.717 6.717 0 0 1-2.197-1.425 6.572 6.572 0 0 1-1.442-2.113 6.663 6.663 0 0 1-.52-2.632ZM10.144.008c-2.76-.096-5.52.76-7.805 2.569l1.523.857C5.67 2.1 7.955 1.53 10.144 1.625V.007Zm8.09 3.616C16.331 1.625 13.856.388 11.191.102V1.72a10.725 10.725 0 0 1 5.901 3.046l1.142-1.142Zm3.427 7.805c-.095-2.475-1.047-4.95-2.665-7.043l-1.142 1.142c1.332 1.808 2.094 3.807 2.189 5.9h1.618Zm-2.665 8.185c1.618-2.094 2.57-4.568 2.665-7.043h-1.618c-.095 2.094-.857 4.093-2.19 5.901l1.143 1.142Zm-7.805 4.284c2.57-.286 5.14-1.523 7.043-3.522l-1.142-1.142c-1.618 1.713-3.712 2.76-5.901 3.046v1.618Zm-8.852-2.475a11.867 11.867 0 0 0 7.805 2.57v-1.618c-2.19.095-4.378-.476-6.282-1.809l-1.523.857Z\"},\"child\":[]}]})(props);\n};\nexport function SiTurbosquid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.909.01C9.832.153 7.89 1.617 7.89 1.617s4.235-1.383 5.42.752c.861 1.552-.133 3.989-1.67 6.6-1.418-1.212-5.21-4.035-8.73-3.038C-1.528 7.187.43 13.176.43 13.176S.45 8.632 2.803 8.14c1.71-.358 3.673 1.364 5.63 3.664-1.567 1.005-5.368 3.815-5.526 7.545C2.705 24.048 8.883 24 8.883 24s-4.224-1.424-3.955-3.863c.196-1.773 2.403-3.148 5.149-4.338.451 1.833 1.894 6.393 5.316 7.701 4.313 1.648 6.176-4.37 6.176-4.37s-2.627 3.662-4.816 2.647c-1.59-.737-2.189-3.308-2.448-6.343 1.845.127 6.536.137 8.811-2.785 2.867-3.681-2.158-7.353-2.158-7.353s2.597 3.687.976 5.5c-1.178 1.317-3.755 1.103-6.66.417.689-1.753 2.146-6.31.129-9.423C14.45.32 13.155-.074 11.909.01zm-1.266 2.487c-.547 0-1.097.072-1.557.162.78.292 1.413.754 1.862 1.361a3.578 3.578 0 01.646 1.524c.234-.536.407-1.024.524-1.475a1.254 1.254 0 00-.186-1.039 1.234 1.233 0 00-.93-.523c-.119-.008-.24-.01-.359-.01zm9.713 4.283c-.032.849-.263 1.606-.691 2.228a3.492 3.491 0 01-1.219 1.098 10.375 10.374 0 001.115.065c.142 0 .283-.003.418-.01a1.203 1.203 0 00.912-.502 1.283 1.283 0 00.198-1.065c-.164-.657-.459-1.302-.733-1.814zM3.362 9.626a1.23 1.23 0 00-1.143.802c-.245.629-.378 1.33-.451 1.91.785-1.018 1.825-1.582 2.967-1.582a3.438 3.438 0 01.494.036 9.569 9.569 0 00-1.211-.965 1.185 1.185 0 00-.656-.201zm12.953 8.546c.12.576.26 1.076.424 1.512a1.21 1.21 0 001.135.795 1.247 1.247 0 00.666-.202c.559-.362 1.07-.848 1.463-1.273a4.358 4.358 0 01-1.211.178 3.472 3.472 0 01-2.477-1.01zm-8.168.428a9.79 9.79 0 00-1.272.877 1.24 1.24 0 00-.449.95 1.269 1.269 0 00.451.981c.51.431 1.122.78 1.64 1.03-.465-.707-.711-1.46-.724-2.221a3.605 3.604 0 01.354-1.617z\"},\"child\":[]}]})(props);\n};\nexport function SiTurkishairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.168 13.988c.272 1.623.86 3.115 1.69 4.423 3.095-.863 5.817-2.495 6.785-6.132 1.065-4.003-.15-8.199-3.057-10.422C1.626 4.364-.657 9.077.168 13.988m23.664-3.975c1.098 6.534-3.308 12.722-9.844 13.819-1.1.185-2.19.214-3.245.103a12.023 12.023 0 0 1-8.46-4.892l19.428-5.57c.279-.08.207-.349-.024-.333l-8.145.569c1.148-1.108 2.021-2.467 1.915-4.345-.214-3.043-3.311-6.013-9.071-7.967a12.016 12.016 0 0 1 6.87-1.333c5.228.548 9.663 4.512 10.576 9.95\"},\"child\":[]}]})(props);\n};\nexport function SiTurso (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.31.803-.563-.42-1.11 1.189-.891-1.286-.512.235.704 1.798-.326.35L18.082 0l-.574.284 2.25 4.836-2.108.741h-.05l-1.143-1.359-1.144 1.36H8.687l-1.144-1.36-1.146 1.363H6.36l-2.12-.745L6.491.284 5.919 0l-2.53 2.668-.327-.349.705-1.798-.512-.236-.89 1.287L1.253.382.69.804 2.42 3.69l-.89.939.311 2.375 2.061.787L3.9 8.817H1.947v.444l.755 1.078 1.197.433v6.971l3.057 4.55L7.657 24l1.101-1.606L9.9 24l.999-1.606L12 24l1.102-1.606L14.1 24l1.141-1.606L16.343 24l.701-1.706 3.058-4.55v-6.972l1.196-.433.756-1.078v-.444h-1.952l.003-1.03 2.054-.784.311-2.375-.89-.939zm-8.93 18.718H8.033l.793-1.615.794 1.615.793-1.083.793 1.083.794-1.083.793 1.083.794-1.083.793 1.083.793-1.615.794 1.615zm3.886-7.39-3.3 1.084-.143 3.061-2.827.627-2.826-.627-.142-3.06-3.3-1.085v-1.635l4.266 1.21-.052 4.126h4.109l-.052-4.127 4.266-1.209z\"},\"child\":[]}]})(props);\n};\nexport function SiTutanota (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.158.934C.978.934.025 1.895.023 3.08.017 9.74.005 16.413 0 23.066c.793-.297 1.67-.56 2.56-.918 6.188-2.485 11.249-4.598 11.253-6.983a1.66 1.66 0 0 0-.016-.23c-.32-2.356-5.916-3.087-5.908-4.166a.37.37 0 0 1 .05-.177c.673-1.184 3.336-1.128 4.316-1.212.982-.085 3.285-.067 3.397-.773a.44.44 0 0 0 .005-.065c.003-.656-1.584-.913-1.584-.913s1.925.29 1.92 1.042a.445.445 0 0 1-.015.114c-.207.81-1.901.962-3.021 1.017-1.06.054-2.673.175-2.679.695 0 .03.005.062.015.095.253.76 6.167 1.127 9.95 3.102 2.178 1.136 3.26 3.004 3.757 4.974V3.08A2.14 2.14 0 0 0 21.866.934H2.158Z\"},\"child\":[]}]})(props);\n};\nexport function SiTv4Play (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.374 15.93V3.718c0-.209-.279-.307-.402-.12L.037 18.289a.199.199 0 0 0-.006.223c.036.072.108.12.192.12h7.331v1.656c0 .113.102.215.222.215h2.376c.12 0 .222-.102.222-.215v-1.656h1.435c.12 0 .222-.096.222-.222v-2.257a.22.22 0 0 0-.224-.222zm-2.826.008H4.795l2.753-4.073zm16.313-3.744L16.704 8.06c-.078-.049-.169.035-.132.12a10.53 10.53 0 0 1 .894 4.26c0 1.512-.317 2.952-.888 4.248-.036.083.053.161.131.12l7.152-4.127a.283.283 0 0 0 0-.487z\"},\"child\":[]}]})(props);\n};\nexport function SiTvtime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0zm4.8 4.8h14.4v4.8h-4.8v9.6H9.6V9.6H4.8Z\"},\"child\":[]}]})(props);\n};\nexport function SiTwilio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.381-.008.008 5.352 0 11.971V12c0 6.64 5.359 12 12 12 6.64 0 12-5.36 12-12 0-6.641-5.36-12-12-12zm0 20.801c-4.846.015-8.786-3.904-8.801-8.75V12c-.014-4.846 3.904-8.786 8.75-8.801H12c4.847-.014 8.786 3.904 8.801 8.75V12c.015 4.847-3.904 8.786-8.75 8.801H12zm5.44-11.76c0 1.359-1.12 2.479-2.481 2.479-1.366-.007-2.472-1.113-2.479-2.479 0-1.361 1.12-2.481 2.479-2.481 1.361 0 2.481 1.12 2.481 2.481zm0 5.919c0 1.36-1.12 2.48-2.481 2.48-1.367-.008-2.473-1.114-2.479-2.48 0-1.359 1.12-2.479 2.479-2.479 1.361-.001 2.481 1.12 2.481 2.479zm-5.919 0c0 1.36-1.12 2.48-2.479 2.48-1.368-.007-2.475-1.113-2.481-2.48 0-1.359 1.12-2.479 2.481-2.479 1.358-.001 2.479 1.12 2.479 2.479zm0-5.919c0 1.359-1.12 2.479-2.479 2.479-1.367-.007-2.475-1.112-2.481-2.479 0-1.361 1.12-2.481 2.481-2.481 1.358 0 2.479 1.12 2.479 2.481z\"},\"child\":[]}]})(props);\n};\nexport function SiTwinkly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.0413 0H4.0304C1.8333 0 0 1.7968 0 3.9939v16.0116C0 22.2019 1.8333 24 4.0304 24h16.0109C22.2384 24 24 22.2019 24 20.0055V3.9939C24 1.7968 22.2384 0 20.0413 0zm.4101 10.3762c-.0781.343-.2058.6212-.3418.8641-.2763.4865-.5909.861-.9182 1.221-.265.2895-1.0359 1.0642-1.2763 1.3002a.1197.1197 0 0 0-.0277.1296c.1347.3355.6124 1.3934.6262 2.8007.012 1.2795-.1567 2.1631-.1932 2.3312-.1473.6879-.8541 1.0611-1.5155.9736-.0409-.0051-1.0353-.0957-3.0939-1.2871-.7093-.4103-1.4022-1.107-1.4022-1.107l-.0164.0138c-1.5898 1.6502-3.8202 2.7333-3.8202 2.7333-.854.4242-1.89.0761-2.3148-.7772-.083-.1674-.4934-1.535-.2196-3.8416.0642-.5425.4179-1.8182.4487-1.9133-.1208-.1063-1.2147-1.2449-1.5929-1.732-1.3499-1.7352-1.2952-2.469-1.2952-2.469.0629-.9465.9201-1.3694 1.0938-1.4638.3398-.1756.6683-.2946 1.0013-.389.6627-.19 1.3405-.2473 1.9994-.1989.6577.0459 1.2977.1888 1.8812.4355.5847.2404 1.1209.5551 1.5891.9346.472.3688.8779.7987 1.2373 1.2493.0529.0661.0566.163.0019.2272a.175.175 0 0 1-.2196.0403l-.0031-.0019c-.9786-.5457-1.9913-.9459-2.9844-1.0479-.4966-.0446-.9787-.044-1.4394.0428-.3575.0648-.6942.18-1.0108.3185a.0566.0566 0 0 0-.0189.09c.2127.2316.9069.9881 2.4854 1.9516.7961.4852 1.2405 1.0076.9805 1.8 0 0-.7294 2.0743-.5683 2.1228.1611.0484 2.0876-1.5042 2.0876-1.5042.6665-.4525 1.4564-.3292 2.0335.3732 1.0894 1.3254 2.2651 2.2846 2.3664 2.2191.1007-.0655-.1353-1.6867-.5564-3.1166-.146-.4966.0661-.8603.4003-1.1077.3096-.2284 2.087-1.6212 2.6037-2.3475.2379-.3342.2064-.4638-.1888-.5998-1.6445-.5652-3.3797.0277-3.3797.0277a.6343.6343 0 0 1-.8201-.3663.642.642 0 0 1-.0396-.1976c-.0403-.8635-.2158-1.7383-.5368-2.552-.2656-.6722-.6325-1.3009-1.1165-1.8233a.062.062 0 0 0-.0925.0019c-.3229.3757-.6231.7691-.8628 1.2096-.4651.8553-.5709 1.5218-.6741 1.8566-.0132.0447-.0573.0686-.1064.0812-.0919.0239-.1769-.0554-.1693-.1498.1372-1.7559 1.2745-3.323 1.715-3.8712.1252-.1548.1441-.197.304-.0818l.0365.0209c.827.601 1.4551 1.4305 1.9107 2.3198.3147.618.552 1.2707.7187 1.946a.0687.0687 0 0 0 .0875.0491c.6564-.1995 1.3424-.2807 2.0064-.2706.4897.0107.9252.0466 1.4387.1473.2757.0598.5463.1466.8434.3109.2876.163.6199.4374.81.8597.1951.4197.1843.8767.1082 1.214z\"},\"child\":[]}]})(props);\n};\nexport function SiTwinmotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .1175C7.08.1175 2.8508 3.0792.9994 7.3172h15.7994v.0045l-2.364 16.5475C19.8947 22.7444 24 17.9096 24 12.1175h-6.261l.6875-4.8003h4.5741C21.1484 3.0784 16.9208.1175 12 .1175m-12 12c0 5.8163 4.1393 10.666 9.6331 11.765l1.681-11.765Z\"},\"child\":[]}]})(props);\n};\nexport function SiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z\"},\"child\":[]}]})(props);\n};\nexport function SiTypeform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.502 13.035c-.5 0-.756-.411-.756-.917 0-.505.252-.894.756-.894.513 0 .756.407.756.894-.004.515-.261.917-.756.917Zm-4.888-1.81c.292 0 .414.17.414.317 0 .357-.365.514-1.126.536 0-.442.253-.854.712-.854Zm-3.241 1.81c-.473 0-.67-.384-.67-.917 0-.527.202-.894.67-.894.477 0 .702.38.702.894 0 .537-.234.917-.702.917Zm-3.997-2.334h-.738l1.224 2.808c-.234.519-.36.648-.522.648-.171 0-.333-.138-.45-.259l-.324.43c.22.232.522.366.832.366.387 0 .685-.224.856-.626l1.413-3.371h-.725l-.738 2.012-.828-2.008Zm19.553.523c.36 0 .432.246.432.823v1.516H24v-1.914c0-.689-.473-.988-.91-.988-.386 0-.742.241-.94.688a.901.901 0 0 0-.891-.688c-.365 0-.73.232-.927.666v-.626h-.64v2.857h.64v-1.22c0-.617.324-1.114.765-1.114.36 0 .427.246.427.823v1.516h.64l-.005-1.225c0-.617.329-1.114.77-1.114Zm-5.1-.523h-.324v2.857h.639v-1.095c0-.693.306-1.163.76-1.163.118 0 .217.005.325.05l.099-.676c-.081-.009-.153-.018-.225-.018-.45 0-.774.309-.964.707V10.7h-.31Zm-2.327-.045c-.846 0-1.418.644-1.418 1.458 0 .845.58 1.475 1.418 1.475.85 0 1.431-.648 1.431-1.475-.004-.818-.594-1.458-1.431-1.458Zm-4.852 2.38c-.333 0-.581-.17-.685-.515.847-.036 1.675-.242 1.675-.988 0-.43-.423-.872-1.03-.872-.82 0-1.374.666-1.374 1.457 0 .828.545 1.476 1.36 1.476.567 0 .927-.228 1.21-.559l-.31-.42c-.329.335-.531.42-.846.42Zm-3.151-2.38c-.324 0-.648.188-.774.483v-.438h-.64v3.98h.64v-1.422c.135.205.445.34.72.34.85 0 1.3-.631 1.3-1.48-.004-.841-.445-1.463-1.246-1.463Zm-4.483-1.1H0v.622h1.18v3.38h.67v-3.38h1.166v-.622Zm9.502 1.145h-.383v.572h.383v2.285h.639v-2.285h.621v-.572h-.621v-.447c0-.286.117-.385.382-.385.1 0 .19.027.311.068l.144-.537c-.117-.067-.351-.094-.504-.094-.612 0-.972.367-.972 1.002v.393Z\"},\"child\":[]}]})(props);\n};\nexport function SiTypeorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.593 6.863c0 .9-.008 1.742.004 2.583.006.355.07.708.21 1.038.133.306.35.544.652.692.153.075.314.131.47.204a.134.13 0 0 1 .066.099q.008.58 0 1.16c0 .039-.052.097-.093.11a1.818 1.82 0 0 0-1.178 1.22c-.125.387-.137.785-.137 1.187q.002 2.24-.006 4.48c0 .466-.07.926-.225 1.363-.087.241-.226.463-.347.69-.016.031-.05.052-.08.073-.185.137-.365.287-.56.407-.169.103-.354.177-.535.255-.114.048-.236.082-.352.121q-.025.01-.05.014c-.23.028-.46.062-.689.083q-.418.033-.834.052c-.061.003-.123-.02-.183-.026-.104-.01-.13-.07-.128-.168a31.962 32 0 0 0 0-1.017c0-.104.027-.15.139-.141.117.007.24.012.354-.004q.332-.047.655-.125a2.996 3 0 0 0 .44-.153.94.94 0 0 0 .456-.409c.125-.208.185-.437.236-.676.057-.263.036-.52.04-.78.007-1.485 0-2.97.008-4.456q.003-.47.078-.935a2.148 2.15 0 0 1 1.09-1.585l.25-.143c.061-.037.054-.107-.016-.144a2.797 2.8 0 0 1-.815-.646 2.097 2.1 0 0 1-.39-.711c-.18-.551-.205-1.12-.202-1.694.002-1.446-.01-2.892 0-4.337a2.996 3 0 0 0-.072-.666c-.08-.37-.24-.712-.59-.909a2.298 2.3 0 0 0-.467-.177 2.996 3 0 0 0-.503-.11 3.995 4 0 0 0-.54-.025c-.113.001-.153-.03-.15-.147.006-.364.003-.728.001-1.092 0-.089.03-.122.117-.119.196.005.39-.007.584.004.272.016.545.035.815.073a3.096 3.1 0 0 1 1.598.714c.252.215.408.479.534.772.15.346.226.71.275 1.082.13.99.03 1.986.072 2.918ZM1.421 6.715c0-.581-.006-1.163.002-1.745.006-.382.009-.77.049-1.149.027-.263.11-.52.18-.778a1.798 1.8 0 0 1 .366-.723 2.466 2.4 0 0 1 .508-.449c.194-.127.416-.208.629-.305.17-.076.348-.108.53-.141A8.29 8.3 0 0 1 5.258 1.3c.09 0 .122.027.12.117q-.004.558 0 1.118c0 .091-.028.126-.123.122a1.598 1.6 0 0 0-.321.003 7.99 8 0 0 0-.704.127c-.15.035-.291.094-.434.148a.94.94 0 0 0-.46.406c-.123.208-.183.44-.238.68-.067.3.008.588.002.882-.02 1.329-.006 2.658-.01 3.99a9.988 10 0 0 1-.051 1.098c-.08.724-.385 1.328-1.024 1.727q-.173.103-.345.209c-.023.014-.051.049-.047.068a.14.14 0 0 0 .058.084 2.897 2.9 0 0 1 .843.678c.19.23.311.494.4.78.15.496.159 1.006.164 1.516.008 1.298.002 2.597.003 3.896 0 .144.015.288.013.431 0 .072-.025.143-.027.215q-.004.126.005.253c.003.052.02.104.029.156.043.301.137.583.336.817.131.153.303.252.494.321.201.072.41.1.616.149.246.058.485.044.73.054.065.003.09.03.09.093 0 .392.002.784-.005 1.176 0 .029-.053.081-.082.081-.252.005-.503.01-.754-.002a4.994 5 0 0 1-.678-.069c-.234-.044-.46-.122-.69-.186a2.148 2.15 0 0 1-.955-.572 1.898 1.9 0 0 1-.376-.54 4.195 4.2 0 0 1-.292-.87 4.994 5 0 0 1-.103-.964c-.015-1.423-.013-2.846-.023-4.268-.002-.322-.004-.645-.039-.964-.04-.36-.12-.712-.342-1.013a1.498 1.5 0 0 0-.624-.487c-.11-.048-.226-.083-.334-.137-.037-.02-.077-.075-.077-.115q-.006-.56-.003-1.118c0-.1.088-.118.155-.141.372-.13.676-.348.891-.684a2.048 2.05 0 0 0 .344-1.087c.022-.92.03-1.841.044-2.76h-.016Zm6.035.98v-3.11c0-.295.175-.472.472-.472h5.152c.296 0 .473.177.473.472v6.2c0 .32-.17.49-.488.49-1.708 0-3.412-.002-5.12.004-.287 0-.494-.197-.49-.493.006-1.03.002-2.06.002-3.091m.245.002v3.091c0 .208.035.242.24.242h5.119c.214 0 .246-.03.246-.244V4.603c0-.213-.033-.245-.244-.245H7.945c-.21 0-.242.033-.242.247zm-.245 8.39v-3.1c0-.298.173-.474.471-.474h5.152c.3 0 .473.177.473.48v6.184q0 .499-.496.499h-5.11c-.32 0-.488-.17-.488-.489zm.245.006v3.109c0 .189.039.228.227.228h5.142c.202 0 .236-.035.236-.239v-6.197c0-.197-.038-.234-.233-.234H7.941c-.205 0-.24.035-.24.243zm8.741-4.058q-.002 2.09.002 4.184c0 .11-.03.143-.14.142a96.883 97 0 0 0-1.752 0c-.104 0-.12-.04-.12-.13 0-.093.03-.12.12-.12.5.004 1 0 1.499.004.108 0 .148-.031.148-.145q-.003-3.934 0-7.868c0-.112-.036-.147-.147-.146-.5.005-.999 0-1.498.004-.1 0-.123-.034-.123-.128 0-.09.024-.122.119-.121q.888.005 1.776 0c.096 0 .117.033.117.122q-.002 2.101 0 4.202m-5.9-6.336q-1.024 0-2.047-.002c-.04 0-.109-.01-.113-.028-.012-.061-.004-.127 0-.191 0-.01.031-.02.052-.023q.04-.004.082-.002h4.046c.133 0 .194.088.137.208-.01.024-.066.036-.1.036q-.846.002-1.691.001zm.273 1.413c-.585 0-1.17-.004-1.758.003-.13 0-.118-.068-.123-.153-.007-.102.055-.097.123-.097h3.526c.068 0 .13-.004.123.097-.005.086.006.154-.123.153-.59-.008-1.178-.003-1.766-.003Zm.005 1.307c.59 0 1.178.002 1.767-.002.103 0 .118.041.12.13 0 .093-.03.12-.12.12a737.113 738 0 0 0-3.536 0c-.092 0-.121-.029-.12-.121 0-.09.02-.13.121-.13q.886.005 1.768.003m-.009 1.797c-.585 0-1.173-.002-1.759.002-.093 0-.12-.03-.12-.122 0-.093.023-.128.123-.126q1.764.006 3.528 0c.098 0 .123.03.123.125.002.1-.03.124-.127.123q-.884-.003-1.768-.002M8.564 8.664H8.53c-.16 0-.202-.034-.147-.187.045-.129.185-.035.28-.055.027-.004.087.033.092.06.03.172.017.181-.19.181Zm.003-1.799h.034c.166 0 .206.031.148.19-.047.13-.187.034-.284.052-.023.006-.08-.038-.084-.064-.024-.177-.02-.177.185-.177Zm.002 3.351h-.051q-.206.001-.138-.2c.006-.02.038-.04.06-.042.06-.006.118-.002.176-.002.133 0 .19.086.135.208-.006.018-.041.03-.066.034-.038.006-.078.002-.117.002Zm1.973 3.638q1.025.001 2.047-.002c.092 0 .12.027.12.12 0 .09-.017.13-.119.128a878.942 880 0 0 0-4.093 0c-.096 0-.126-.027-.126-.124s.03-.125.125-.125q1.025.004 2.046.003m.272 1.658c-.585 0-1.171-.004-1.758.003-.134 0-.113-.076-.119-.156-.007-.097.051-.094.12-.094h3.533c.075 0 .126.005.12.103-.007.081.006.15-.12.148-.592-.006-1.184-.002-1.776-.002Zm0 1.551q-.88-.002-1.758.002c-.1 0-.12-.037-.121-.129 0-.091.029-.12.12-.12q1.768.004 3.535 0c.09 0 .121.027.12.12 0 .089-.016.13-.12.128q-.887-.004-1.775-.002Zm.009 1.309q.883.002 1.767-.002c.096 0 .12.033.12.122-.002.086-.015.127-.116.126a742.107 743 0 0 0-3.545 0c-.092 0-.116-.033-.113-.118.001-.08.005-.131.11-.13q.889.004 1.778.002m-2.257-3.108h.025c.177 0 .2.013.157.185-.033.13-.161.042-.246.06-.043.008-.117.033-.127-.06-.02-.179-.016-.184.192-.184Zm-.003 1.554h.046c.14 0 .19.07.141.204-.006.019-.039.036-.062.038-.062.005-.124-.003-.187.003-.1.012-.132-.026-.133-.13-.003-.187.133-.087.195-.115m.002 1.798h-.051c-.135 0-.184-.067-.136-.202.006-.018.038-.038.062-.04.054-.006.11-.002.165-.002.145 0 .192.062.146.2-.006.02-.038.038-.06.042-.042.005-.085.001-.125.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiTyper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.818 3.646H2.182C.982 3.646 0 4.483 0 5.505v3.707h2.182V5.486h19.636v13.036H2.182v-3.735H0v3.726c0 1.022.982 1.84 2.182 1.84h19.636c1.2 0 2.182-.818 2.182-1.84V5.505c0-1.032-.982-1.859-2.182-1.859Zm-10.909 12.07L15.273 12l-4.364-3.717v2.787H0v1.859h10.909v2.787Z\"},\"child\":[]}]})(props);\n};\nexport function SiTypescript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\"},\"child\":[]}]})(props);\n};\nexport function SiTypo3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.08 16.539c-.356.105-.64.144-1.012.144-3.048 0-7.524-10.652-7.524-14.197 0-1.305.31-1.74.745-2.114C6.56.808 2.082 2.177.651 3.917c-.31.436-.497 1.12-.497 1.99C.154 11.442 6.06 24 10.228 24c1.928 0 5.178-3.168 7.852-7.46M16.134 0c3.855 0 7.713.622 7.713 2.798 0 4.415-2.8 9.765-4.23 9.765-2.549 0-5.72-7.09-5.72-10.635C13.897.31 14.518 0 16.134 0\"},\"child\":[]}]})(props);\n};\nexport function SiTypst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.654 17.846c0 1.114.16 1.861.479 2.242.32.381.901.572 1.743.572.872 0 1.99-.44 3.356-1.319l.871 1.45C16.547 22.931 14.44 24 12.785 24c-1.656 0-2.964-.395-3.922-1.187-.959-.82-1.438-2.256-1.438-4.307V6.989H5.246l-.349-1.626 2.528-.791V2.418L12.654 0v4.835l5.142-.395-.48 2.857-4.662-.176v10.725Z\"},\"child\":[]}]})(props);\n};\nexport function SiUber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.97v4.958c0 1.867 1.302 3.101 3 3.101.826 0 1.562-.316 2.094-.87v.736H6.27V7.97H5.082v4.888c0 1.257-.85 2.106-1.947 2.106-1.11 0-1.946-.827-1.946-2.106V7.971H0zm7.44 0v7.925h1.13v-.725c.521.532 1.257.86 2.06.86a3.006 3.006 0 0 0 3.034-3.01 3.01 3.01 0 0 0-3.033-3.024 2.86 2.86 0 0 0-2.049.861V7.971H7.439zm9.869 2.038c-1.687 0-2.965 1.37-2.965 3 0 1.72 1.334 3.01 3.066 3.01 1.053 0 1.913-.463 2.49-1.233l-.826-.611c-.43.577-.996.847-1.664.847-.973 0-1.753-.7-1.912-1.64h4.697v-.373c0-1.72-1.222-3-2.886-3zm6.295.068c-.634 0-1.098.294-1.381.758v-.713h-1.131v5.774h1.142V12.61c0-.894.544-1.47 1.291-1.47H24v-1.065h-.396zm-6.319.928c.85 0 1.564.588 1.756 1.47H15.52c.203-.882.916-1.47 1.765-1.47zm-6.732.012c1.086 0 1.98.883 1.98 2.004a1.993 1.993 0 0 1-1.98 2.001A1.989 1.989 0 0 1 8.56 13.02a1.99 1.99 0 0 1 1.992-2.004z\"},\"child\":[]}]})(props);\n};\nexport function SiUbereats (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 2.8645v4.9972c0 1.8834 1.3315 3.1297 3.0835 3.1297a2.9652 2.9652 0 0 0 2.1502-.876v.7425H6.445V2.8645H5.223v4.9339c0 1.2642-.8696 2.1198-1.9954 2.122-1.1386-.0023-1.997-.834-1.997-2.122V2.8645zm7.3625 0v7.9934h1.163v-.7318a2.9915 2.9915 0 0 0 2.1177.876c1.714.048 3.1295-1.3283 3.1295-3.0429s-1.4155-3.091-3.1295-3.0429a2.9674 2.9674 0 0 0-2.107.876V2.8645zm9.8857 2.0561c-1.6752-.0074-3.0369 1.3492-3.0356 3.0245 0 1.7366 1.3732 3.0373 3.1537 3.0373a3.123 3.123 0 0 0 2.5578-1.2438l-.8495-.6177a2.0498 2.0498 0 0 1-1.7083.8585c-.9763.0126-1.8147-.6915-1.971-1.6553h4.818v-.379c0-1.734-1.254-3.0238-2.9638-3.0245zm6.1632.0667a1.5943 1.5943 0 0 0-1.376.7657v-.7186h-1.163v5.8235h1.1741V7.5465c0-.9023.5581-1.4847 1.3268-1.4847h.4949V4.9886c-.1576.0013-.3186-.0009-.4568-.0013zm-6.2034.944a1.844 1.844 0 0 1 1.8337 1.486H15.424a1.844 1.844 0 0 1 1.784-1.486zm-6.6589.0056c1.1223-.0084 2.0365.8992 2.0364 2.0215-.0026 1.1203-.914 2.0258-2.0343 2.021a2.0151 2.0151 0 0 1-1.4159-.5987A2.0152 2.0152 0 0 1 8.55 7.9592a2.0152 2.0152 0 0 1 .5838-1.422 2.0152 2.0152 0 0 1 1.4153-.6003zM0 12.9864v7.9716h5.7222v-1.3666H1.5458v-1.971h4.0647v-1.314H1.5458v-1.9556h4.1764v-1.3644zm14.5608.4097v1.6861h-1.1519v1.338h1.1545v3.143c0 .7927.5712 1.4209 1.6005 1.4209h1.6425L17.8 19.646h-1.1412c-.3482 0-.5714-.1509-.5714-.464v-2.7683H17.8v-1.3316h-1.7062v-1.686zm-5.2974 1.5275c-1.7348-.0103-3.141 1.4035-3.1214 3.1382.0196 1.7346 1.4575 3.1163 3.1915 3.0668a2.9915 2.9915 0 0 0 1.912-.6655v.532h1.5175v-5.9129h-1.509v.5257a3.0047 3.0047 0 0 0-1.9205-.6835c-.0244-.0007-.0492-.0006-.0701-.0008zm11.771.0077c-1.5855 0-2.7002.6437-2.7002 1.8854 0 .8607.6132 1.4213 1.936 1.695l1.4478.3286c.5694.1095.7224.2585.7224.4906 0 .3701-.438.6022-1.1279.6022-.876 0-1.3774-.1907-1.5723-.8477h-1.533c.219 1.2307 1.1563 2.05 3.0484 2.05h.0022c1.752 0 2.7422-.819 2.7422-1.9534 0-.8059-.5847-1.4084-1.8089-1.6668l-1.2943-.2605c-.7511-.1358-.988-.2738-.988-.5454 0-.357.3616-.5757 1.0295-.5757.7227 0 1.2527.1925 1.406.8473h1.5175c-.0854-1.2286-.9899-2.0497-2.8273-2.0497zM9.467 16.1815c1.0092.0096 1.8188.8369 1.8067 1.8461.0014 1.0046-.8198 1.816-1.8243 1.8025-1.0075-.0048-1.8203-.8256-1.8155-1.833.0048-1.0076.8255-1.8204 1.833-1.8156z\"},\"child\":[]}]})(props);\n};\nexport function SiUbiquiti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.1627 0h-1.4882v1.4882h1.4882zm-5.2072 10.4226V7.4409l.0007.001h2.9755v2.9762h2.9756v.9433c0 1.0906-.0927 2.3827-.306 3.3973-.1194.5672-.3004 1.1308-.5127 1.672-.2175.5537-.468 1.0841-.7408 1.5595a11.6795 11.6795 0 0 1-1.2456 1.7762l-.0253.0294-.0417.0488c-.1148.1347-.2283.2679-.3531.398a11.7612 11.7612 0 0 1-.4494.4492c-1.9046 1.8343-4.3861 2.98-6.9808 3.243-.3122.032-.939.0652-1.2519.0652-.3139-.001-.9397-.0331-1.252-.0651-2.5946-.263-5.0761-1.4097-6.9806-3.243a11.75 11.75 0 0 1-.4495-.4494c-.131-.1356-.249-.2748-.3683-.4154l-.0006-.0004-.0512-.0603a11.6576 11.6576 0 0 1-1.2456-1.7762c-.2727-.4763-.5233-1.0058-.7408-1.5595-.2123-.5414-.3933-1.1048-.5128-1.6718C.1854 13.743.0927 12.452.0927 11.3616V.1864h5.9518v10.2362s0 .7847.0099 1.0415l.0022.0599v.0004c.0127.332.0247.6575.0594.9812.098.919.3014 1.7913.7203 2.5288.1213.213.2443.42.3915.616.8953 1.1939 2.2577 2.0901 3.9573 2.3398.2022.0294.6108.0552.8149.0552.204 0 .6125-.0258.8149-.0552 1.6996-.2497 3.062-1.146 3.9573-2.3398.148-.196.2701-.403.3914-.616.419-.7375.6224-1.6095.7204-2.5288.0346-.3243.047-.6503.0594-.9831l.0022-.0584c.0099-.2568.0099-1.0415.0099-1.0415zm.7427-8.19h2.2326v2.2319h2.9764v2.9764h-2.9764V4.4654h-2.2326V2.2328Z\"},\"child\":[]}]})(props);\n};\nexport function SiUbisoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.561 11.988C23.301-.304 6.954-4.89.656 6.634c.282.206.661.477.943.672a11.747 11.747 0 00-.976 3.067 11.885 11.885 0 00-.184 2.071C.439 18.818 5.621 24 12.005 24c6.385 0 11.556-5.17 11.556-11.556v-.455zm-20.27 2.06c-.152 1.246-.054 1.636-.054 1.788l-.282.098c-.108-.206-.37-.932-.488-1.908C2.163 10.308 4.7 6.96 8.57 6.33c3.544-.52 6.937 1.68 7.728 4.758l-.282.098c-.087-.087-.228-.336-.77-.878-4.281-4.281-11.002-2.32-11.956 3.74zm11.002 2.081a3.145 3.145 0 01-2.59 1.355 3.15 3.15 0 01-3.155-3.155 3.159 3.159 0 012.927-3.144c1.018-.043 1.972.51 2.416 1.398a2.58 2.58 0 01-.455 2.95c.293.205.575.4.856.595zm6.58.12c-1.669 3.782-5.106 5.766-8.77 5.712-7.034-.347-9.083-8.466-4.38-11.393l.207.206c-.076.108-.358.325-.791 1.182-.51 1.041-.672 2.081-.607 2.732.369 5.67 8.314 6.83 11.045 1.214C21.057 8.217 11.822.401 3.626 6.374l-.184-.184C5.599 2.808 9.816 1.3 13.837 2.309c6.147 1.55 9.453 7.956 7.035 13.94z\"},\"child\":[]}]})(props);\n};\nexport function SiUblockorigin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C7.502 3 6.002 3 1.5 3c0 15.002 0 15.002 10.5 21 10.5-5.998 10.5-5.998 10.5-21-4.498 0-5.998 0-10.5-3zM5.956 7.472h1.512v4.536c0 1.322.19 1.508 1.512 1.508 1.323 0 1.512-.19 1.512-1.512V7.472H12v.767a3.75 3.75 0 012.268-.767 3.79 3.79 0 013.776 3.78 3.79 3.79 0 01-3.78 3.775 3.765 3.764 0 01-2.684-1.133c-.464.77-1.315 1.133-2.6 1.133-2.079 0-3.024-.944-3.024-3.023zm8.308 1.512A2.254 2.254 0 0012 11.252a2.254 2.254 0 002.268 2.264 2.254 2.254 0 002.264-2.268 2.254 2.254 0 00-2.268-2.264z\"},\"child\":[]}]})(props);\n};\nexport function SiUbuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.61.455a3.41 3.41 0 0 0-3.41 3.41 3.41 3.41 0 0 0 3.41 3.41 3.41 3.41 0 0 0 3.41-3.41 3.41 3.41 0 0 0-3.41-3.41zM12.92.8C8.923.777 5.137 2.941 3.148 6.451a4.5 4.5 0 0 1 .26-.007 4.92 4.92 0 0 1 2.585.737A8.316 8.316 0 0 1 12.688 3.6 4.944 4.944 0 0 1 13.723.834 11.008 11.008 0 0 0 12.92.8zm9.226 4.994a4.915 4.915 0 0 1-1.918 2.246 8.36 8.36 0 0 1-.273 8.303 4.89 4.89 0 0 1 1.632 2.54 11.156 11.156 0 0 0 .559-13.089zM3.41 7.932A3.41 3.41 0 0 0 0 11.342a3.41 3.41 0 0 0 3.41 3.409 3.41 3.41 0 0 0 3.41-3.41 3.41 3.41 0 0 0-3.41-3.41zm2.027 7.866a4.908 4.908 0 0 1-2.915.358 11.1 11.1 0 0 0 7.991 6.698 11.234 11.234 0 0 0 2.422.249 4.879 4.879 0 0 1-.999-2.85 8.484 8.484 0 0 1-.836-.136 8.304 8.304 0 0 1-5.663-4.32zm11.405.928a3.41 3.41 0 0 0-3.41 3.41 3.41 3.41 0 0 0 3.41 3.41 3.41 3.41 0 0 0 3.41-3.41 3.41 3.41 0 0 0-3.41-3.41z\"},\"child\":[]}]})(props);\n};\nexport function SiUbuntumate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.372 0 12c0 6.627 5.373 12 12 12s12-5.373 12-12c0-6.628-5.373-12-12-12zm2.005 3.245L18.667 6 14 8.755ZM12 4.66c.342 0 .676.028 1.005.073v1.021A6.327 6.327 0 0 0 6.12 9.63l-.865-.51C6.378 6.503 8.978 4.66 12 4.66Zm0 2.495c.342 0 .677.041 1 .11v1.036a3.866 3.866 0 0 0-1-.13 3.812 3.812 0 0 0-3.672 2.76l-.896-.531A4.855 4.855 0 0 1 12 7.156Zm5.885.464A7.305 7.305 0 0 1 19.34 12a7.308 7.308 0 0 1-1.5 4.437l-.87-.515A6.3 6.3 0 0 0 18.329 12a6.31 6.31 0 0 0-1.313-3.865zm-2.171 1.286a4.81 4.81 0 0 1-.047 6.25l-.891-.526A3.793 3.793 0 0 0 15.828 12c0-.996-.377-1.899-.995-2.578zm-12.209.339L8.167 12 3.5 14.755Zm4.823 3.823A3.809 3.809 0 0 0 12 15.823c.346 0 .681-.047 1-.13v1.041a4.81 4.81 0 0 1-1 .11c-2.106 0-3.906-1.362-4.568-3.25zM6.12 14.37A6.327 6.327 0 0 0 12 18.328c.34 0 .67-.027.995-.078v1.016a7.212 7.212 0 0 1-.995.073c-3.022 0-5.622-1.842-6.745-4.459zm7.88.963 4.661 2.75-4.666 2.756z\"},\"child\":[]}]})(props);\n};\nexport function SiUdacity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 0L0 4.8v9.6C0 20.8 4.8 24 8.8 24c1.348 0 2.786-.362 4.1-1.088l6.303-3.633C21.687 18.155 24 15.64 24 11.2V.8L22.4 0 16 4v10.4c0 1.6-.3 2.898-.785 3.948-2.002-.257-5.615-1.597-5.615-7.15V.802zm0 1.76v9.44c0 5.342 3.346 7.9 6.313 8.597-1.618 1.99-4.025 2.603-5.512 2.603-2.4 0-7.2-1.6-7.2-8V5.6zm14.4.04v9.4c0 5.45-3.482 6.84-5.504 7.132.446-1.14.704-2.45.704-3.932V4.8z\"},\"child\":[]}]})(props);\n};\nexport function SiUdemy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0L5.81 3.573v3.574l6.189-3.574 6.191 3.574V3.573zM5.81 10.148v8.144c0 1.85.589 3.243 1.741 4.234S10.177 24 11.973 24s3.269-.482 4.448-1.474c1.179-.991 1.768-2.439 1.768-4.314v-8.064h-3.242v7.85c0 2.036-1.509 3.055-2.948 3.055-1.428 0-2.947-.991-2.947-3.027v-7.878z\"},\"child\":[]}]})(props);\n};\nexport function SiUdotsdotnews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.12v4.70543h1.98926c-.48065-.1604-.79078-.50119-.79078-1.07684v-2.48285h.79359v2.41442c0 .38135.28474.60562.80344.60562.45426 0 .77554-.22432.77554-.60094v-2.4191h.79383v2.5288c0 .1311-.01976.25046-.05636.35882h.56566v.67207h.80812c-.42491-.1347-.62706-.37592-.72164-.67277-.03732-.11904-.05109-.29835-.05109-.37149h.81703c0 .06444.02297.17462.05063.22946.10104.2112.33963.30257.82125.30257.55121 0 .7439-.15096.7439-.38976 0-.29856-.15189-.40383-.73875-.51399-.10572-.01854-.37194-.06939-.5325-.10125-.7071-.13302-1.14281-.45881-1.14281-1.0602 0-.61547.49548-1.02831 1.56024-1.02831.90887 0 1.33591.31678 1.51921.77566.0462.11952.08273.25653.08273.34863h-.81703c0-.04122-.02296-.12339-.05063-.1787-.0963-.20203-.2937-.3075-.75258-.3075-.6012 0-.7207.13279-.7207.33949 0 .26627.21587.37185.80813.49113.18305.0366.42186.08722.5046.10101.7209.13782 1.09711.43618 1.09711 1.05621 0 .10908-.01562.21156-.0443.30774h.57164v.67207h.24329v-3.55969h.9225l1.39524 2.33614v-2.33614h.75727v3.55969h1.04344c-.2635-.0927-.4786-.24559-.62227-.47356-.1317-.20903-.2046-.47646-.2046-.81234 0-.30642.08295-.57858.23343-.79254.25782-.37452.7198-.5932 1.3036-.5932.6126 0 1.0313.2234 1.26913.56894.19944.29178.27226.67616.22864 1.0793h-2.2663c0 .12234.05369.21446.14579.31664.1125.12162.33095.19922.62273.19922.21888 0 .37923-.03894.49149-.08766.14064-.06324.20884-.15044.22312-.20906h.7636c-.06282.25776-.21845.5006-.48563.67148-.0824.05306-.18074.09567-.28676.13278h1.5975l-.9334-2.60836h.81211l.64196 1.98879.58828-1.9888h.86531l.60328 1.9888.62695-1.9888h.7643l-.9437 2.60837h1.44245c-.28682-.09717-.45222-.25848-.51469-.50262-.02412-.10686-.02883-.18-.02883-.26766h.7731a.403.403 0 0 0 .02413.1364c.04878.12637.25287.16032.67617.16032.4425 0 .5788-.0778.5788-.2332 0-.1512-.16082-.1849-.55477-.24328-.10176-.01452-.4228-.0633-.58313-.08766-.58854-.0825-.87058-.34011-.87059-.85137 0-.47598.4276-.78727 1.28872-.78727.7338 0 1.19646.18964 1.33242.57352.03396.10266.04863.2674.04863.32086h-.75363c0-.0291-.01034-.11159-.03422-.14555-.05364-.07266-.19455-.1364-.5639-.1364-.42823 0-.555.06865-.555.19476 0 .1167.08321.16029.46241.2189.15564.02365.53017.0776.62227.09212.6417.09738.92414.33578.92414.8366 0 .35043-.16832.59123-.52465.72152H24V9.12Zm14.87356 1.13098c.27491 0 .38835.12747.38835.37101 0 .2559-.12166.3818-.38836.3818-.26742 0-.38888-.1301-.38882-.3791 0-.2325.1193-.37371.38882-.37371m5.91257 0c.27444 0 .38813.12747.38813.37101 0 .2559-.12185.3818-.38813.3818-.2679 0-.38935-.1301-.3893-.3791 0-.2325.1193-.37371.3893-.37371m-8.10808.0056c.13872 0 .2196.08037.22476.16875.00096.0065 0 .02672 0 .03164-.0023.09234-.07324.15656-.1459.20156.03282.02676.07478.06423.11672.09867.02388-.03024.03727-.06893.03937-.11063h.20438c-.0035.09144-.04053.17038-.09891.22594a5.9 5.9 0 0 1 .15633.12023h-.27727c-.01218-.0087-.0239-.01877-.03422-.02789-.05628.02346-.13126.03516-.20062.03516-.17322 0-.32927-.03162-.33551-.16523-.00072-.01146 0-.02837 0-.03773.0019-.08298.0806-.13452.16687-.17508-.04242-.06-.05857-.10994-.05977-.15398v-.03703c.004-.08952.0919-.17438.24375-.17438zm.67558.0075h.23836s.11133.44998.11133.47296c0-.02298.10781-.47296.10781-.47296h.22922s.11063.44998.11063.47296c0-.02298.10945-.47296.10945-.47296h.21621l-.20437.72867h-.24364s-.10897-.41998-.1118-.44344c-.0012.02442-.11273.44344-.11273.44344h-.24187zm2.86149 0h.22547v.54843h.34992v.18023h-.5754zm.68672 0h.39984c.1317 0 .21375.03234.25875.09492.04476.06186.05344.12257.05344.25523 0 .1554-.01101.21233-.05133.27281-.0438.06726-.11904.1057-.25008.1057h-.41062zm1.94625 0h.61945v.17155h-.40008v.1057h.38531v.17321h-.3853v.10828h.40405v.16992h-.62343zm.76628 0h.44836c.0879 0 .15048.01959.19032.06106.04266.03678.06563.0996.06563.19007 0 .08082-.01761.1379-.05391.1766-.04194.04897-.1117.0722-.20121.07407-.02742.00042-.22453-.0012-.22453-.0012h-.00013v.22816h-.22453zm2.42731 0h.69117v.1753h-.23297v.55336h-.2271v-.55336h-.2311Zm-6.68086.00012h.46125c.09702 0 .1601.02787.19688.0764.02831.03679.04194.08566.04194.15387 0 .05862-.01267.105-.0321.13735-.02299.03888-.05582.06164-.08954.06914l.1704.2918h-.25031l-.12797-.24657h-.1507v.24668h-.21985Zm2.62406 0h.46102c.09702 0 .1601.02787.19687.0764.02832.03679.04195.08566.04195.15387 0 .05862-.0129.105-.0321.13735-.02275.03888-.05623.06164-.08977.06914l.17063.2918h-.24985l-.12867-.24657h-.15047v.24668h-.2196zm3.29063 0h.46101c.09654 0 .16033.02787.19735.0764.0279.03679.04219.08566.04219.15387 0 .05862-.01315.105-.03187.13735-.02346.03888-.05603.06164-.09023.06914l.17015.2918h-.2496l-.12845-.24657h-.1507v.24668h-.21985zm-8.59969.14823c-.03234 0-.04592.02201-.04898.04781a.072.072 0 0 0 0 .0197c.0011.02015.01147.04332.02953.06702.03726-.02202.06329-.04615.06563-.07453v-.01477c-.0012-.02412-.01263-.04523-.04617-.04523zm2.19773.01078c-.11886 0-.1613.05745-.16125.20391 0 .1545.0558.20578.16243.20578.10242 0 .16195-.04336.16195-.20578 0-.14436-.03958-.2039-.16313-.2039m5.91258 0c-.11958 0-.16154.05745-.16148.20391 0 .1545.05534.20578.16172.20578.1029 0 .16242-.04336.16242-.20578 0-.14436-.03912-.2039-.16266-.2039m-.9498.01031v.16805h.17508c.04242 0 .06327-.01406.07383-.03422.0073-.01314.009-.02675.009-.04805 0-.02268-.0031-.04149-.0098-.05133-.01242-.02316-.03353-.03445-.07031-.03445zm-2.71278.00094v.38625h.14063c.05694 0 .08695-.01197.11203-.04148.01902-.02322.0211-.10572.0211-.165 0-.05226-.0051-.11975-.02298-.14039-.02838-.03114-.05508-.03937-.11015-.03937zm-1.54078.0012v.1486h.1929c.02741 0 .05083-.0063.05905-.02439.0056-.0129.0084-.03235.0084-.04687 0-.01638-.0017-.03607-.008-.04687-.01074-.02346-.0321-.03047-.06445-.03047zm2.62383 0v.1486h.19242c.02718 0 .05131-.0063.05953-.02439.0056-.0129.008-.03235.008-.04687 0-.01638-.0014-.03607-.007-.04687-.01128-.02346-.03329-.03047-.06539-.03047zm3.29063 0v.1486h.19242c.02742 0 .05179-.0063.05977-.02439.0054-.0129.008-.03235.008-.04687 0-.01638-.0016-.03607-.0073-.04687-.01104-.02346-.03306-.03047-.06492-.03047zm-8.89688.30844c-.0333.01878-.05654.03872-.05649.0593 0 .03516.03256.04852.10852.04852.02058 0 .04569-.0026.06375-.0073-.04176-.03588-.08506-.0696-.11578-.10055zm-2.91305.69188v2.38945h1.4202Zm4.07602.34476c-.27678 0-.4812.07338-.61266.19008-.0923.0827-.1654.24264-.16546.32086h1.49742c0-.07812-.0333-.20415-.13031-.30633-.11226-.11178-.29697-.2046-.58899-.2046zm3.81094.2939s-.0286.15846-.03352.18774c-.0045.08875-.46674 1.44291-.50777 1.56305h1.08855c-.0411-.12023-.50361-1.47408-.51258-1.55812-.0052-.0342-.03469-.19266-.03469-.19266zM4.16613 13.42208c-.14058.18484-.35177.31803-.61195.40336h.61195zm3.81282.0068c-.1263.17355-.32144.30817-.58137.39656h.58137ZM0 14.08289V14.88h24v-.7971z\"},\"child\":[]}]})(props);\n};\nexport function SiUfc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.308 7.843h2.797s-1.86 6.639-1.951 6.998c-.177.69-.353 1.316-2.043 1.316-2.037 0-3.22-.007-3.777 0-.698.007-1.521-.633-1.296-1.464l1.91-6.85H4.8S3.2 13.553 3.166 13.7c-.029.148-.19.557.698.564.64.014.69-.155.803-.564.268-.922 1.64-5.857 1.64-5.857zm10.272 0l-.507 1.824H9.986l.507-1.824zm-8.404 8.314l1.459-5.244h6.086l-.507 1.823h-3.262l-.95 3.421zm11.47-5.385c-.26.957-.493 1.774-.754 2.738-.05.17-.162.416-.127.57.078.367 1.29.226 1.726.226h1.945c-.155.612-.33 1.21-.5 1.81h-4.63c-.676-.064-1.557-.353-1.472-1.226.028-.274.156-.584.24-.887a1189.7 1189.7 0 001.24-4.463c.176-.648.317-1.197.83-1.457.333-.17.861-.218 1.255-.24H24c-.162.606-.331 1.211-.5 1.81h-2.643c-.317 0-.669-.036-.845.084-.19.141-.295.775-.366 1.035z\"},\"child\":[]}]})(props);\n};\nexport function SiUikit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.697 3.292l-4.109 2.489 4.738 2.696v7.077l-6.365 3.538-6.258-3.538v-5.485L1.596 7.956V18l10.219 6 10.589-6V6.002l-4.707-2.71zm-1.904-.989L11.813 0 7.665 2.568l4.032 2.218 4.096-2.483z\"},\"child\":[]}]})(props);\n};\nexport function SiUipath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 7.882v8.235h8.235V7.882H0Zm.852.852h6.53v6.53H.852v-6.53Zm22.268.695c-.514 0-.886.345-.886.873 0 .511.36.878.886.878.518 0 .88-.359.88-.878 0-.521-.359-.873-.88-.873Zm-17.023.055a.501.501 0 0 0-.522.522c0 .302.22.509.522.509.302 0 .522-.206.522-.509a.501.501 0 0 0-.522-.522Zm17.023.102c.437 0 .716.278.716.716 0 .426-.274.712-.716.712-.426 0-.719-.271-.719-.712 0-.44.278-.716.719-.716Zm-.347.213v.988h.197v-.318h.14l.176.318h.22l-.186-.347a.32.32 0 0 0 .206-.311c0-.203-.159-.33-.374-.33h-.379Zm-3.74.002v4.468h.853v-1.774c0-.571.302-.914.804-.914s.763.33.763.838v1.85h.852v-1.946c0-.88-.619-1.45-1.409-1.45-.509 0-.818.192-1.01.515V9.801h-.853Zm3.937.157h.157c.115 0 .193.064.193.171 0 .118-.078.181-.193.181h-.157v-.352Zm-21.375.049v2.495c0 1.141.625 1.808 1.684 1.808 1.079 0 1.718-.681 1.718-1.808v-2.495h-.852v2.495c0 .646-.275 1.004-.846 1.004-.591 0-.852-.378-.852-1.004v-2.495h-.852Zm7.547 0v4.262h.852v-1.375h.77c.928 0 1.533-.543 1.533-1.457 0-.88-.591-1.43-1.533-1.43H9.142Zm7.809 0v.914h-.399v.722h.399v1.45c0 .791.35 1.176 1.161 1.176h.447v-.729h-.337c-.33 0-.419-.144-.419-.44v-1.457h.749v-.722h-.749v-.914h-.852Zm-6.957.687h.681c.488 0 .756.276.756.743 0 .502-.268.776-.756.776h-.681v-1.519Zm4.138.186c-.921 0-1.546.728-1.546 1.718 0 .997.639 1.712 1.546 1.712.537 0 .887-.193 1.086-.516v.475h.853v-3.348h-.853v.523c-.206-.344-.563-.564-1.086-.564Zm-8.461.041v3.348h.852v-3.348h-.852Zm8.661.701c.543 0 .886.399.886.976 0 .585-.364.963-.886.963-.578 0-.88-.406-.88-.963 0-.598.337-.976.88-.976Z\"},\"child\":[]}]})(props);\n};\nexport function SiUkca (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.138 11.001H3.852C1.728 11.001 0 9.296 0 7.201V.011h2.498v7.155c0 .737.622 1.336 1.388 1.336h3.218c.766 0 1.388-.599 1.388-1.336V.011h2.498v7.19c0 2.095-1.728 3.8-3.852 3.8M24 .011h-3.23l-5.285 4.16V.011h-2.498V11h2.498V6.814l5.284 4.187h3.217l-6.952-5.508ZM10.99 23.99H3.8c-2.095 0-3.8-1.761-3.8-3.885v-3.22C0 14.762 1.705 13 3.8 13h7.19v2.498H3.834c-.737 0-1.336.622-1.336 1.388v3.219c0 .765.6 1.387 1.336 1.387h7.156zm4.495-4.995v-2.16c0-.738.622-1.337 1.387-1.337h3.22c.765 0 1.387.6 1.387 1.336v2.16zM20.125 13H16.84c-2.124 0-3.852 1.705-3.852 3.8v7.19h2.498v-2.498h5.994v2.497h2.498V16.8c0-2.094-1.728-3.799-3.852-3.799\"},\"child\":[]}]})(props);\n};\nexport function SiUlule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A11.992 11.992 0 001.676 5.884l-.822-.822a.499.499 0 00-.707 0A.5.5 0 000 5.416V12c0 6.627 5.372 12 12 12 6.627 0 12-5.373 12-12V5.416a.5.5 0 00-.854-.354l-.823.822A11.992 11.992 0 0012 0zM6.814 7.626a5.526 5.526 0 014.971 3.095 2.739 2.739 0 00.13 3.754.122.122 0 00.17 0 2.738 2.738 0 00.13-3.754 5.526 5.526 0 015.411-3.077c2.702.214 4.876 2.41 5.064 5.113a5.528 5.528 0 01-10.419 2.944.304.304 0 00-.542 0 5.528 5.528 0 01-10.42-2.944c.189-2.703 2.363-4.9 5.064-5.113.148-.012.295-.018.44-.018zm-.42 1.22a3.501 3.496 0 00-.235.008c-.013.16-.116.262-.248.388l-.052.05c-.117.113-.335.323-.333.7a.875.875 0 00.856.858c.485-.003.88-.383.882-.85.002-.325-.137-.523-.347-.722-.143-.13-.289-.281-.308-.422a3.501 3.496 0 00-.214-.01zm11.211 0a3.501 3.495 0 00-.235.008c-.013.16-.117.262-.249.388l-.051.05c-.118.113-.336.323-.334.7a.875.875 0 00.856.858c.485-.003.88-.383.882-.85.002-.325-.136-.523-.347-.723-.143-.13-.288-.28-.307-.42a3.501 3.495 0 00-.215-.011zM6.093 8.86a3.501 3.496 0 00-3.2 3.48 3.501 3.496 0 003.502 3.496 3.501 3.496 0 003.5-3.496 3.501 3.496 0 00-3.033-3.46 2.393 2.393 0 11-2.86 2.362A2.386 2.386 0 016.093 8.86zm11.816 0a2.386 2.386 0 012.088 2.382 2.391 2.391 0 11-4.784-.033 2.393 2.393 0 011.92-2.328 3.501 3.495 0 00-3.03 3.46 3.501 3.495 0 003.502 3.495 3.501 3.495 0 003.501-3.496 3.501 3.495 0 00-3.197-3.48Z\"},\"child\":[]}]})(props);\n};\nexport function SiUmami (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.203 8.611H.857a.845.845 0 0 0-.841.841v.858a13.31 13.31 0 0 0-.016.6c0 6.627 5.373 12 12 12 6.527 0 11.837-5.212 11.996-11.701 0-.025.004-.05.004-.075V9.452a.845.845 0 0 0-.841-.841h-1.346c-1.159-4.329-5.112-7.521-9.805-7.521-4.692 0-8.645 3.192-9.805 7.521Zm18.444 0H3.37c1.127-3.702 4.57-6.399 8.638-6.399 4.069 0 7.512 2.697 8.639 6.399Z\"},\"child\":[]}]})(props);\n};\nexport function SiUmbraco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 11.982A12 12 0 1 1 12 24 12 12 0 0 1 0 11.982zm11.756 4.11a11.856 11.856 0 0 1-2.773-.25 2.12 2.12 0 0 1-1.514-1.218q-.41-.943-.396-2.895a18.419 18.419 0 0 1 .127-2.04q.118-.988.236-1.629l.082-.425a.201.201 0 0 0 0-.038.244.244 0 0 0-.201-.236l-1.544-.246H5.74a.243.243 0 0 0-.235.189 6.517 6.517 0 0 0-.089.409c-.088.455-.17.9-.26 1.548a19.99 19.99 0 0 0-.176 2.12 11.165 11.165 0 0 0 0 1.486q.05 1.977.675 3.155.626 1.179 2.106 1.695 1.482.517 4.135.506h.22q2.655.01 4.134-.506 1.478-.518 2.1-1.695.623-1.178.678-3.147a11.165 11.165 0 0 0 0-1.485 19.99 19.99 0 0 0-.176-2.121 30.014 30.014 0 0 0-.26-1.548 6.724 6.724 0 0 0-.088-.41.243.243 0 0 0-.236-.188h-.04l-1.548.242a.236.236 0 0 0-.203.236.201.201 0 0 0 0 .037l.081.426q.118.643.236 1.63a18.709 18.709 0 0 1 .126 2.039q.019 1.95-.396 2.892a2.12 2.12 0 0 1-1.502 1.22 11.82 11.82 0 0 1-2.769.247Z\"},\"child\":[]}]})(props);\n};\nexport function SiUml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.768 0 7.182 1.604s6.126 2.72 6.852 3.055c.72.335 1.744.947.565 1.629-1.18.682-2.423.477-3.259.09-.835-.384-7.012-3.257-7.012-3.257L.666 4.777s6.4 2.935 7.4 3.417c1.003.482 4.753 1.784 8.48.002 3.727-1.781 3.261-2.577 3.268-2.724.006-.148-.036-.933-.632-1.467-.599-.534-2.378-1.375-3.127-1.73C15.305 1.916 10.77 0 10.77 0ZM.411 5.299v13.215l2.904 1.402v-7.963l1.585 8.6 2.58 1.243 1.66-7.154v7.826l2.916 1.38V10.643L7.629 8.628l-1.403 6.296-1.412-7.598Zm16.76 3.115-4.624 2.315L12.559 24l11.03-5.225-.025-3.613-6.393 2.92Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnacademy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.715 2.188a.696.696 0 00-.711.713H0l.002.027c-.01.306.03.658.123 1.081.905 5.546 5.875 9.788 11.87 9.788 5.935 0 10.864-4.157 11.84-9.622.126-.512.177-.921.162-1.273a.696.696 0 00-.713-.714zm11.243 13.82c-2.967 0-5.432 2.079-5.92 4.81a2.287 2.287 0 00-.08.638c0 .201.15.356.355.356h11.285a.348.348 0 00.356-.356h.002v-.014a2.21 2.21 0 00-.063-.54c-.453-2.774-2.938-4.894-5.935-4.894z\"},\"child\":[]}]})(props);\n};\nexport function SiUnderarmour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.954 12c-.089.066-.195.142-.324.233-.826.585-2.023.985-3.58.985h-.104c-1.556 0-2.755-.4-3.58-.985A36.43 36.43 0 018.042 12c.09-.067.196-.143.324-.234.825-.584 2.024-.985 3.58-.985h.104c1.557 0 2.756.401 3.58.985.129.09.235.167.325.234M24 7.181s-.709-.541-2.95-1.365c-1.968-.721-3.452-.883-3.452-.883l.006 4.243c0 .598-.162 1.143-.618 1.765-1.672-.61-3.254-.985-4.981-.985-1.728 0-3.308.375-4.98.985-.457-.619-.62-1.168-.62-1.765l.007-4.243s-1.494.16-3.463.883C.709 6.642 0 7.181 0 7.181c.093 1.926 1.78 3.638 4.435 4.82C1.777 13.18.09 14.887 0 16.818c0 0 .709.54 2.949 1.365 1.968.721 3.453.883 3.453.883l-.007-4.244c0-.597.164-1.143.619-1.764 1.672.61 3.252.983 4.98.983 1.727 0 3.309-.374 4.98-.983.457.62.62 1.167.62 1.764l-.006 4.244s1.484-.16 3.452-.883c2.241-.826 2.95-1.365 2.95-1.365-.093-1.927-1.78-3.64-4.435-4.819 2.657-1.182 4.343-2.888 4.435-4.82\"},\"child\":[]}]})(props);\n};\nexport function SiUnderscoredotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.704 9.96a1.244 1.244 0 0 0-.3.047 1.016 1.016 0 0 0-.696.586c-.074.16-.08.202-.08.613 0 .413.006.453.08.61a1.047 1.047 0 0 0 .478.508c.158.076.204.085.507.085.452 0 .564-.025.564-.125 0-.076-.003-.076-.143-.052-.277.045-.652.027-.8-.04-.286-.13-.476-.424-.512-.798-.061-.597.155-1.057.579-1.214.183-.067.545-.067.752.003.133.045.167.05.188.015.067-.107-.005-.155-.304-.21a1.545 1.545 0 0 0-.313-.026zm-2.227.01a.692.692 0 0 0-.16.017.765.765 0 0 0-.469.358.745.745 0 0 0-.033.244c0 .314.142.46.646.653.512.2.603.28.603.55 0 .42-.515.59-1.213.4-.064-.016-.07-.011-.062.068.01.08.026.093.178.125.242.05.634.047.817-.005.182-.055.362-.2.42-.34a.835.835 0 0 0 .042-.277c0-.3-.14-.453-.562-.615-.55-.212-.687-.316-.693-.537a.4.4 0 0 1 .216-.403c.116-.066.173-.08.354-.08.116 0 .296.027.393.056.183.055.228.043.23-.064 0-.074-.43-.154-.706-.15zm4.233 0a1.044 1.044 0 0 0-.226.02c-.507.106-.8.55-.8 1.201 0 .453.142.817.4 1.024.205.16.326.196.68.196.258-.004.329-.016.457-.078.383-.188.593-.59.593-1.14 0-.549-.216-.957-.593-1.13a1.39 1.39 0 0 0-.51-.094zm7.536.001a1.027 1.027 0 0 0-.257.026.707.707 0 0 0-.41.307.78.78 0 0 0 0 .563c.07.13.263.252.64.391.48.182.629.36.543.645-.069.23-.32.37-.657.37a2.087 2.087 0 0 1-.527-.076c-.094-.02-.1-.018-.1.054 0 .12.155.16.61.16.354 0 .388-.007.537-.086a.605.605 0 0 0 .29-.793c-.08-.177-.229-.277-.677-.45-.426-.162-.533-.262-.533-.5 0-.194.07-.303.248-.395.152-.08.48-.08.71-.003.16.055.166.055.206 0 .061-.085.052-.097-.12-.15a1.907 1.907 0 0 0-.503-.063Zm-18.367.04v2.39l.48-.013c.423-.012.5-.02.666-.09.48-.196.67-.559.643-1.214-.02-.506-.17-.77-.535-.95-.2-.1-.204-.1-.728-.11Zm4.08 0v2.382h.152V11.36h.593l.304.517c.296.509.305.518.405.518h.1l-.097-.176a18.403 18.403 0 0 0-.32-.537l-.216-.362.15-.076a.64.64 0 0 0 .335-.737c-.049-.204-.11-.293-.277-.39-.133-.08-.16-.08-.633-.09zm-8.958.01.009.903c.01.876.013.912.08 1.05.157.32.463.472.888.442.37-.024.583-.155.733-.449.07-.134.075-.158.083-1.043l.013-.904h-.19v.843c0 .52-.012.892-.032.968-.05.178-.254.362-.454.41-.31.077-.653-.017-.8-.217-.134-.18-.144-.264-.144-1.155v-.85H.095Zm2.44 0v2.373h.152l.005-1.054.01-1.056.7 1.052c.637.96.71 1.058.786 1.058h.083V10.02h-.154v2.084l-.693-1.04c-.67-1.014-.695-1.043-.79-1.046Zm4.657 0v2.373h1.31v-.152H7.251l.007-.513.01-.508.54-.009.54-.007v-.152h-1.1l.01-.45.01-.447.572-.008c.544-.007.568-.01.568-.067 0-.06-.02-.06-.653-.06zm10.173 0v2.373h.152V11.36h.602l.3.517c.29.5.302.516.4.518.05 0 .097-.005.097-.018 0-.008-.14-.25-.307-.535a5.972 5.972 0 0 1-.298-.525 1.248 1.248 0 0 1 .133-.073c.234-.12.35-.313.35-.594a.6.6 0 0 0-.453-.6 3.688 3.688 0 0 0-.542-.03zm1.947 0v2.373h1.31v-.152h-1.126v-1.037h1.067v-.152h-1.067v-.912h.564c.542 0 .563-.003.563-.06 0-.058-.02-.06-.653-.06zm2.59 0v1.264c0 1.079-.008 1.283-.048 1.368-.066.137-.17.183-.4.177-.172-.004-.193.003-.193.054 0 .084.133.13.33.11.206-.02.334-.097.413-.25.06-.12.064-.17.073-1.427l.01-1.297h-.091zm-12.7.11.33.021c.18.013.373.037.432.055.325.097.44.54.21.8-.129.142-.31.2-.674.2h-.295v-.538zm-3.885.013a4.267 4.267 0 0 1 .376.03c.43.047.667.197.803.498.061.133.07.204.07.52 0 .34-.006.377-.085.54a1.008 1.008 0 0 1-.21.28c-.182.16-.35.208-.775.222l-.375.016v-1.034c0-.57.01-1.043.022-1.052.013-.015.077-.02.174-.02zm12.387 0c.09 0 .213.01.346.026.295.034.432.107.503.26.12.263.036.556-.196.69-.11.06-.175.072-.483.081l-.36.012v-.515c0-.282.01-.526.023-.536.012-.013.073-.02.165-.018zm-1.858 0a1.197 1.197 0 0 1 .334.044.873.873 0 0 1 .458.472c.058.14.067.23.067.532 0 .401-.045.573-.21.79-.21.274-.703.36-1.06.188-.334-.16-.462-.44-.46-.993 0-.288.014-.38.07-.523.077-.194.296-.42.467-.472a1.14 1.14 0 0 1 .333-.036zm5.352 1.98c-.052 0-.072.018-.097.07-.048.11.01.232.11.232.098 0 .147-.066.134-.19-.01-.087-.02-.1-.107-.11a.379.379 0 0 0-.04-.001zm-9.082 1.308c-6.59 0-11.99.01-11.999.02a1.2 1.2 0 0 0-.021.305v.283H24v-.608z\"},\"child\":[]}]})(props);\n};\nexport function SiUndertale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 0v1.5H1.5V3H0v12h3v3h3v3h3v3h6v-3h3v-3h3v-3h3V3h-1.5V1.5H21V0h-3v1.5h-3V3h-1.5v3h-3V3H9V1.5H6V0z\"},\"child\":[]}]})(props);\n};\nexport function SiUnicode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.2 0a.2.2 0 00-.2.2v23.6c0 .11.09.2.2.2h23.6a.2.2 0 00.2-.2V.2a.2.2 0 00-.2-.2H.2zm19.488 5.27A1.312 1.312 0 0121 6.582a1.312 1.312 0 01-1.313 1.313 1.312 1.312 0 01-1.31-1.313 1.312 1.312 0 011.31-1.312zM3.15 6.05h1.996c.102 0 .153.05.153.151v7.49c0 .912.222 1.644.666 2.188.444.546 1.121.816 2.033.816.38 0 .729-.048 1.047-.15.316-.102.59-.272.824-.506.234-.236.419-.546.553-.932.134-.386.2-.869.2-1.453V6.223c0-.014.003-.024.005-.035l-.006-.004c0-.09.045-.133.133-.133h2.682c.076 0 .126.01.152.027.026.018.05.054.076.104.228.418.499.906.809 1.464.31.558.629 1.14.959 1.749l.998 1.843c.334.62.647 1.206.94 1.758.291.552.549 1.045.77 1.475.223.432.39.768.505 1.008h.02c0-.126-.005-.27-.01-.428a25.728 25.728 0 01-.02-.57c-.006-.223-.014-.493-.02-.81-.008-.315-.01-.696-.01-1.14v-3.21c0-.103.056-.153.17-.153H20.6c.114 0 .171.058.171.172v9.03c0 .113-.063.17-.189.17h-2.414c-.114 0-.198-.046-.248-.134a173.907 173.907 0 00-1.623-3.021 232.322 232.322 0 01-2.121-3.946 96.063 96.063 0 01-.883-1.718 37.59 37.59 0 01-.371-.768v4.815c0 .888-.13 1.643-.39 2.271-.26.628-.611 1.141-1.055 1.541a4.112 4.112 0 01-1.588.873 6.848 6.848 0 01-1.97.277 6.42 6.42 0 01-2.032-.304 4.196 4.196 0 01-1.559-.903c-.43-.4-.76-.903-.988-1.511-.228-.608-.342-1.325-.342-2.149v-7.64c0-.114.05-.172.152-.172Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnilever (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.436 6.6255c.1147.8467 1.392 1.99 1.746 1.9613.2344-.0191.3205-1.105.3205-1.9613 0-.488.0287-.8754-.2296-.9616-.4114.8276-1.4878.995-1.837.9616zm.0717-.378c.928 0 1.7747-.7414 1.7747-1.392 0-.3014-.1435-.555-.507-.598.0622.0813.0909.1388.0909.287 0 .4928-.7463 1.0333-1.5595 1.0333-.2966 0-.3827.2057-.3827.311-.0048.2583.2344.3588.5836.3588zm-.1962-1.0045c-.1243 0-.3013 0-.4018-.1962-.0335-.0621-.0478-.1387-.0622-.22-.0239-.1244-.0478-.2488-.1435-.3157.153.0478.3062.0478.4353.0478.4019 0 .7846-.2775 1.0811-.2775.1962 0 .2536.1244.2536.2488.0096.3923-.7893.7128-1.1529.7128h-.0096zM1.373 12.232c.3014 0 .2392-1.856.732-1.856.1148 0 .1482.1147.1482.263 0 .421-.2057 1.0333-.2057 1.373 0 .1722.0479.2296.1244.2248.2153 0 .5884-2.0427.952-2.0427.1148 0 .1722.1149.1722.2344 0 .4258-.5454 1.66-.5454 2.0044 0 .0574.024.1005.0575.1005.2248 0 .6697-.9615.8132-1.4447.0813-.2488.1866-.3827.287-.3827.0909 0 .1722.1005.1722.3062 0 .4831-.4449 1.612-.8371 2.3727-.3014.5884-.775 1.4351-.775 1.9087 0 .2392.0478.4927.3875.7893-.5693-.0335-.8037-.0909-1.0142-.5358-.952 1.8944 1.7605 1.7126.8324 3.3965-.1674-.3014-1.5069-.6123-1.5069-2.3775 0-1.526 1.3347-2.4158 1.3347-3.0473 0-.1243-.043-.2296-.1579-.33-.2966-.2488-.3013-.4545-.5358-.4545-.1674 0-.373.3923-.1626.7415.0718.1148.1387.1818.1387.2966 0 .2487-.3922.9185-.6697.9137-.2774 0-.488-.6841-.488-1.7891 0-.9807.2249-1.971.4976-1.971.0813 0 .1004.0575.1004.1244 0 .1148-.0335.3492-.0335.7415.0048.4162.0957.4497.1818.4401zm2.2723 2.612c.3731 0 .684-.2775.684-.8898v-.909c0-.3492.0288-.7414.2584-1.0141-.0287.1148-.0287.2392-.0287.354 0 .7654.421 1.2916.421 2.033 0 .2775-.0814.4258-.2918.421-.2057 0-.1866-.1865-.2344-.1865-.0335 0-.091.1148-.091.2392 0 .1817.1388.4783.5024.4831.3205 0 .5788-.2918.5788-.6219 0-.8036-.6219-1.6934-.6219-2.5497 0-.3731.1005-.6219.177-.818 0 1.77 1.5069 3.0616 1.5069 3.803 0 .1675-.1244.3014-.311.3014-.2057 0-.3013-.1626-.3013-.287 0-.0622-.0096-.0813-.0335-.0813-.0526 0-.2153.177-.2153.4114 0 .2966.2392.6506.684.6506.5072 0 .7846-.4306.7846-.8133 0-.9376-1.8274-2.3536-1.8274-3.87 0-.2583.043-.6793.2296-.9998-1.1768.7558-1.5403 1.7652-1.5403 2.6502 0 .7654-.0287 1.148-.421 1.148-.2057 0-.2583-.1865-.33-.1865-.0527 0-.0814.1627-.0814.2057.0096.3349.244.5167.488.5167h.0143v.0095zM19.8334 4.6401c-.1722 0-.4545.1866-.6793.1866-.2823-.0048-.201-.3588-.5119-.3588-.067 0-.1483.0191-.2296.0622-.6458.3253-1.1481.201-1.263.2775-.0286.0143-.0525.0382-.0621.0908 0 .6698.7128 1.703 1.8991 1.703.8133 0 1.4974-.2774 1.4974-.7319 0-.397-.3827-1.2294-.6506-1.2294zm-.7415 1.3012c-.6554 0-1.086-.354-1.0811-.5884 0-.0287.0191-.0478.0526-.0478.1052 0 .3923.1435.7654.2057.4353.0717.6697.0813.7845.0813.1148 0 .1674.0287.1674.0622 0 .11-.2965.287-.6888.287zM3.8318 18.2069c-.2918.0718-.7654.5358-.7654 1.2677 0 .8706.9376 2.2149 2.478 2.2149 1.3011 0 1.6216-.8994 1.6216-1.507 0-1.3441-.8276-2.2913-1.9087-2.2913-.5884 0-1.1146.4305-1.1146 1.062 0 .5931.4449 1.4733 1.5069 1.4733.4975 0 .794-.3587.794-.7653 0-.4019-.3635-.952-.8993-.952-.1626 0-.2774.1052-.2774.2774 0 .2153.2966.421.665.4258.0908 0 .1626-.0191.196-.0335.0192.024.024.067.024.1053 0 .2057-.1962.33-.4975.33-.4545 0-.8898-.3396-.8898-.8754 0-.3205.2775-.5501.6793-.5501.794 0 1.2677.708 1.2677 1.4064 0 .6315-.3492.9998-1.062.995-1.4351.0048-2.124-1.2868-1.8178-2.5832zm11.0552 2.8368c-.091-.1723-.0192-.4689-.287-.4689-.1818 0-.1962.1436-.2153.2584-.3875-.11-.708-.1675-.995-.1675-.2057 0-.3827.0287-.5358.0814-.1005-.1818-.5406-.5262-.9233-.6506-.1483.8036-.8706 1.435-1.9422 1.526-.0621.5262-.4736.6601-.794.6601-.2297.0048-.598-.0765-.6172-.1674-.1243-.7558-.6984-1.1816-.9471-1.282.0095.0813.019.1674.019.2487 0 .641-.44 1.0429-1.258 1.0429-.1244 0-.2966-.0096-.421-.0335.9376 1.0428 1.6073.6601 2.0427.8563C8.582 23.2059 9.046 24 10.8734 24c.665 0 1.3443-.2583 1.7891-.5453.0814.2678.3588.507.8133.507.775 0 1.2103-.2392 1.2103-.4353 0-.0526-.0048-.134-.1388-.134s-.1148.0336-.5405.0336c-.4928-.0048-1.2964-.1962-1.6743-1.0573-.067-.1435-.1722-.1435-.2057-.1435-.2488 0-.6315.885-2.2006.885-.6553.0048-.9615-.244-.9615-.3013 0-.0096 0-.0192.0335-.0192.0622 0 .3062.0287.6075.0287.9903 0 1.7892-.4544 2.2723-.9806.1674-.1866.2488-.2153.3923-.2153.1244 0 .2583.11.3205.2774.22.5693.7271 1.0238 1.282 1.0238.751 0 .7606-1.282.9376-1.3443a.344.344 0 00.1053.0192c.0909 0 .2344-.067.2344-.2344 0-.1818-.22-.2297-.2631-.3205zm-1.215.9615c-.1962-.0048-.354-.1627-.354-.3588 0-.201.1578-.3588.354-.3588.196 0 .3587.1627.3587.3588a.3583.3583 0 01-.3588.3588zm6.4245-5.1808c-1.3108 0-.9711 1.148-2.502 1.4973-.2822.0622-.3635.153-.3635.2775 0 .2344.1292.5357.2918.5357.665 0 1.703-1.3825 1.8896-1.3825v-.009c.0784.0046.1577.0117.153.1956 0 .5023-1.4446 1.1577-1.4446 1.5165 0 .2152.5118.6697 1.0094.6697.7223.0048 1.3681-1.4734 1.5212-1.4734.1196 0 .1626.086.1626.177 0 .4018-.488 1.1863-1.3442 1.526-.177.0717-.2057.153-.2057.2153 0 .1961.2248.4879.4305.4879.2488 0 1.9231-1.459 1.9231-2.6358 0-1.105-.7989-1.5978-1.5212-1.5978zm.6027 1.2677a.5738.5738 0 01-.263-.067c-.1149-.0526-.3206-.2248-.3206-.488 0-.2391.134-.3396.2583-.3396.3827 0 .7846.3397.7893.6076 0 .2152-.2057.287-.464.287zM3.7265 6.8742c0 .1962.1579.354.354.3588.1962 0 .354-.1626.354-.3588 0-.1961-.1626-.354-.354-.354-.1913.0048-.3588.1627-.3588.354h.0048zm-.464-.7989c0 .1962.1579.354.354.354.1961 0 .3588-.1626.3588-.3587 0-.1962-.1627-.3588-.3588-.3588s-.354.1722-.354.3635zm-.3205 2.435c-.2057.0526-.6315.3013-.6315.7462 0 .3205.2536.5262.5597.5262.1627 0 .2775-.0334.3493-.0909-.2488-.2391-.3397-.507-.3397-.775 0-.177.0287-.2917.0622-.4065zm-2.1862.1291c-.0095.043-.0095.091-.0095.134 0 .421.2152.6506.5118.6506.22 0 .4832-.134.7128-.4258-.0957.0191-.2153.0287-.3205.0287-.3205 0-.684-.0909-.8946-.3875zm-.311.799c0 .6744.2058.995.5694.9997.287 0 .6697-.2057 1.1241-.598-.3492.0814-.617.134-.8563.1388C.9615 9.974.7176 9.8497.445 9.4383zm2.3106-3.5688c.043-.1435.0814-.3205.0814-.5166 0-.4258-.1962-1.0763-.8037-1.0763-.3492 0-.598.2774-.598.6075 0 .708.708.9902 1.3203.9854zm.4497.8994c-.1148-.153-.0718-.2918-.1435-.3636-.043-.043-.1674-.043-.33-.0622a2.2396 2.2396 0 00-.1962-.0095c-.2918 0-.641.0382-1.0333.287-.7702.488-.6602 1.3107-.7798 1.5117-.0143.0287-.0287.0621-.0287.1004 0 .0813.091.1722.1723.1674.0717 0 .1148-.0191.153-.0191.2153 0 .4593.1483.799.153.2056 0 .4448-.0621.7462-.2152.641-.3205.8898-1.1146.8898-1.2485 0-.1675-.134-.1483-.2488-.3014zM1.9948 8.118c-.2918 0-.6123-.3636-.6123-.6936 0-.177.134-.4019.2296-.4019.0335 0 .0574.024.0574.091.0526.4352.3445.684.6076.8131.0287.024.0478.024.0478.0431 0 .0526-.1674.1435-.33.1483zm.8372-.5501c-.311 0-.5597-.4736-.5597-.7415 0-.1674.1004-.1866.2296-.1866.0622 0 .0909.0096.1387.0335.0766.043.0766.2153.177.354.0622.0813.2296.1818.2296.2535 0 .1244-.0717.287-.2152.287zm.8515.2105c-.1962.2296-.4019.6218-.4019 1.0285 0 .4783.2966.8802.7559.8802.4353 0 .641-.3732.641-.7559-.0048-.6027-.5454-1.0237-.995-1.1528zM1.7748 6.0658s-.2584.1961-.5789.1961c-.3827 0-.684-.287-.684-.684 0-.2775.1435-.5598.4735-.7033-.0095.0526-.0095.0957-.0095.1531-.0048.5023.2774.8898.7989 1.038zM17.4893 9.022c0 .2057.1722.378.378.3732.2056 0 .373-.1675.373-.3732s-.1674-.3731-.373-.3731c-.2105 0-.378.1722-.378.3731zm.024 1.1242c0 .2296.1817.421.421.421a.4216.4216 0 00.4209-.421.4216.4216 0 00-.421-.421c-.2296.0096-.421.1914-.421.421zm-1.282.7606c0 .3444.2726.6171.617.6171.3397 0 .6171-.2774.6171-.617s-.2774-.6172-.617-.6172c-.3397.0048-.6172.2775-.6172.6171zm.33-1.2629c0 .1961.1579.354.354.3588.1961 0 .3588-.1627.3588-.3588s-.1627-.3588-.3588-.3588c-.1914 0-.3492.1627-.3492.3636l-.0048-.0048zm-1.1672.7176c0 .1961.1578.354.354.354s.3587-.1579.3587-.354-.1626-.354-.3587-.354c-.1914 0-.3493.1626-.354.354zm.9184-2.0905c0 .3061.2631.5692.5693.5692s.5693-.2583.5693-.5692-.2584-.5693-.5693-.5693c-.311 0-.5693.2631-.5693.5693zm.665-1.0907c0 .1818.1483.3444.3444.3396a.341.341 0 00.3397-.3396.341.341 0 00-.3397-.3397c-.1913.0048-.3492.1531-.3444.3397zm-1.6121.8563c0 .1818.1483.3444.33.3396a.341.341 0 00.3397-.3396.341.341 0 00-.3397-.3397c-.177.0048-.33.1531-.33.3397zm-.0431 1.1624c0 .3062.2392.5502.5358.5454a.542.542 0 00.5453-.5454.542.542 0 00-.5453-.5453c-.2966-.0048-.5406.2344-.5358.5453zm-1.1242.5645c0 .2727.2296.5023.5023.507.2775 0 .507-.2295.507-.507 0-.2775-.2343-.507-.507-.507-.2679 0-.5023.2248-.5023.507zm.3014-1.2581c0 .1961.1579.354.354.354s.3588-.1627.3588-.3588-.1627-.3588-.3588-.3588c-.1914-.0048-.3492.1579-.3492.3588h-.0048v.0048zm3.1333 2.7506c0-.177.1627-.33.335-.33.196 0 .3443.1482.3443.33 0 .2057-.153.3492-.3492.3445a.3312.3312 0 01-.33-.3445zm.3014 9.3666c.0718-.0622.091-.1627.091-.2583v-.2057c0-.2584-.3924-.4114-.9281-.4114-.6506 0-.9998.2918-.9998.4161v.4114c0 .1723.3875.3445.8802.3445.3779 0 .7271-.1005.9567-.2966zm.4638.0958c-.2297.1771-.775.5787-1.674.5835-.4832 0-.6937-.1531-.7655-.1531-.0909 0-.1865.0909-.287.2057-.2105.2487-.488.7128-.488 1.2246 0 .354.2727.708.7894.7128 1.6695 0 2.9133-1.0428 2.9133-1.8896.0047-.4796-.2828-.6856-.4882-.6839zm-.8417 1.6359c-.2248.153-.5262.2774-.971.2822.0717-.2152.1243-.4353.1243-.6506 0-.0717-.0096-.1243-.0191-.2057h.1148c.6984-.0047 1.0045-.2822 1.0572-.2774.043 0 .1004.024.1004.1866 0 .196-.0909.4544-.4066.6649zm1.1529-9.1322c0 .2153.067.4784.2966.4832.1865 0 .3492-.287.3492-.598 0-.3587-.0622-.6314-.0622-.775 0-.0621.0287-.0908.0622-.0908.134.0095.2631.3779.4018.3779.1627 0 .4019-.2966.4975-.2966.0287 0 .0335.0335.0335.043 0 .134-.2057.4306-.2057.5502 0 .1004.5119.1148.5119.2057 0 .134-.5406.134-.7989.2487-.2488.1053-.4018.2392-.4018.421s.1817.2153.4353.2153c.598 0 1.0141-.3205 1.148-.3205.0288 0 .048.0239.048.043 0 .091-.3015.3827-.3015.5119 0 .1483.5502.33.5502.421-.0096.0286-.043.0334-.1053.0334-.1004 0-.2487-.0287-.3683-.0287-.0718 0-.134.0096-.1627.043-.0622.067.024.5454-.1052.5454-.1148 0-.421-1.0524-1.105-1.0524-.1005 0-.1675.0813-.1675.2153 0 .354.3444.7654.6745.9615.1483.1005.4019.1961.4019.2535 0 .1053-.5693.0096-.5693.1866 0 .1579.067.4018.067.5454 0 .043-.0096.0956-.0622.1004-.1053 0-.3684-.488-.4927-.488-.1053 0-.3397.2919-.4354.2919-.0239 0-.043-.0287-.043-.0526 0-.2057.33-.6698.33-1.1242 0-.2153-.0286-.6793-.287-.6793-.2152 0-.4544.3396-.5597.6745-.0622.1961-.0191.952-.1626.952-.134 0-.1005-.5071-.2775-.5071-.134 0-.4162.2392-.5166.2392-.0191 0-.0335-.0096-.0335-.0287 0-.1053.2583-.4545.2583-.5262 0-.134-.5884-.1531-.5884-.2584 0-.0622.2296-.1052.445-.1435.4544-.0813 1.124-.4114 1.124-.8754 0-.5166-.4974-.7415-.8275-.952-.1674-.1052-.3588-.1961-.3588-.2679 0-.0717.2153-.0717.3014-.0717.134 0 .2679-.0096.2679-.1148 0-.0813-.0191-.2392-.0191-.3636 0-.0909.0095-.1626.043-.1626.134 0 .3205.4353.4114.4353.1435 0 .3397-.3588.4736-.3588.043 0 .0574.024.0574.1053-.0048.3348-.1722.7127-.1722 1.0332zm-4.2528-2.607c.1005.7557 1.1194.3778 1.1194 1.2915 0 .134-.0334.3301-.0334.4975 0 .1962.0239.3636.1722.3636.153 0 .1865-.1053.1865-.2488s-.0335-.3205-.0335-.421c0-.3109.2249-.3826.3588-.3826.3397 0 .5932.3444 1.1099.3492-.1149.5692-1.2917.421-1.2917 1.0428 0 .3062.3062.3875.512.3875.1865 0 .2487-.0287.2487-.1865 0-.091-.0192-.1866-.0192-.2488 0-.0335.0287-.0718.0718-.0718.1961 0 1.1529.732 1.1529.952 0 .2057-1.0142.4114-1.3108.4114-.0909 0-.1052-.0622-.1052-.0957 0-.0622.153-.2487.153-.3587 0-.0814-.1339-.134-.4927-.134-.1674 0-.2966.0191-.2966.153 0 .2393.3875.5359.3875.756 0 .177-.1052.287-.3922.287-.2392 0-.6028-.1866-.6028-.4976 0-.2487.2583-.4975.2583-.6506 0-.043-.0335-.1148-.1387-.1148-.33 0-.421.8755-1.5882.9711.1866-.1674.3492-.3587.3492-.7414 0-.1866-.043-.3397-.043-.5454 0-.2679.1243-.4018.3013-.4018.3301 0 .4928.4688.708.4688.1148 0 .2392-.1053.2392-.268 0-.6792-1.3012-.5787-1.3012-1.5307-.0095-.2679.0861-.5884.3205-1.0333zm2.9947 5.5538c.0622.1005.0909.1962.0909.287 0 .2488-.1675.4832-.1675.7415 0 .2966.2296.5358.5597.5358.3636 0 .6171-.2918.6171-.641-.0048-.4784-.4353-.8802-1.1002-.9233zm-2.9516.5693c.0909.0909.1148.1818.1148.2679 0 .134-.0622.2774-.0622.4257 0 .2153.1579.4019.3875.4019.2488 0 .421-.1962.421-.4258.0048-.3348-.3397-.6697-.8563-.6697h-.0048zm.2153-1.0524c.4114.0574.5118.1961.5118.311 0 .196-.177.2582-.3492.2582-.1244 0-.2679-.0287-.421-.0287-.196 0-.3922.043-.5549.2296.1148.024.287.1005.287.2775 0 .5166-1.435.0909-1.435 1.416 0 .708.7318 1.4734 1.8417 1.4686.5692 0 .9376-.1866.9376-.4018 0-.1675-.3014-.0527-.3014-.1962 0-.0622.1053-.177.1053-.2774 0-.043-.0335-.1244-.1053-.1244-.1626 0-.464.2583-1.0811.2631-.4832 0-.952-.2775-.952-.6506 0-.0813.0335-.1244.091-.1244.0525 0 .1243.0335.1817.0335.0526 0 .0622-.0335.0622-.134s0-.373.1674-.373.4927.6266 1.727.6266c.4066 0 1.2007-.0813 1.4973-.3492-.0096.9807-.775 2.2723-2.3823 2.2723-1.6648 0-2.5593-1.3395-2.5593-2.5689 0-1.3633 1.1146-2.6023 2.6406-2.6023.3922 0 .7175.1387.7175.3013 0 .2488-.5836.1005-.6266.3732zm.971-.4688c.1244.1483.1675.311.1627.4544 0 .3827-.2918.775-.2918 1.1481 0 .5023.33.8132.7845.8132.4975 0 .7846-.421.7846-.8754 0-.6601-.5023-1.3586-1.44-1.5403zm.6794 1.4112c-.1244-.0096-.2153-.1005-.2153-.2249 0-.067.043-.177.0574-.263.0191-.1197-.0096-.225.0622-.225.1626 0 .33.2584.33.445 0 .1435-.0908.2679-.2343.2679zM8.9504 5.5109c-.4545.0095-.8755.3827-1.1625.8897a1.697 1.697 0 00.0287-.3061c0-.6937-.3731-1.3203-1.0763-1.3203-.5693 0-1.086.33-1.3012.971.0622-.067.2488-.1817.4018-.1817.177 0 .2297.153.2297.3923 0 .1626-.0383.3492-.1005.5262-.11.2918-.3062.3827-.4114.3827-.4449 0-.244-.732-.4688-.732-.1866 0-.2392.3923-.2392.5454 0 .507.33 1.0428 1.062 1.0428.775 0 1.215-.3683 1.6887-.8658.0908.5358.3827 1.4542 1.1672 1.4542.4257 0 .7319-.354.7654-.7653-.0574.0526-.134.0956-.2249.0956-.1626 0-.196-.2296-.196-.4353 0-.33.0956-.684.2487-.684.0813 0 .1243.0526.1435.2917.0143.1866 0 .3923.1148.3923s.1866-.3683.1866-.6171c0-.574-.268-1.0763-.8563-1.0763zM6.3097 7.233c-.0765 0-.0956-.0717-.1004-.134 0-.3491.3827-1.9086.6601-1.9086.067 0 .091.0526.091.1243 0 .2775-.3493 1.9183-.6507 1.9183zm1.1864-.665c-.2296.2584-.354.3636-.4544.3636-.0527.0048-.1053-.086-.1053-.1913 0-.1914.134-.9041.4018-.9041.1053 0 .177.196.177.373 0 .134 0 .244-.019.3589zm.5214.6172c-.0909.0048-.1387-.1435-.1578-.464.1435-.2392.2392-.3445.33-.3445.0383 0 .0718.0335.0718.1866v.0048h.0048c0 .311-.1483.6219-.2488.617zm.4784.5405c-.0574 0-.1004-.0813-.0957-.2679 0-.4831.311-1.3633.4975-1.3633.0527 0 .0718.1244.0718.2392 0 .5357-.2488 1.392-.4736 1.392zm-1.215.1866c-.3828 0-.4019.464-.4019 1.4016-.287-.617-.7558-1.2724-1.3107-1.2724-.3732 0-.5167.2487-.5167.684 0 .091.0096.2297.024.3014.043-.153.1865-.2153.3635-.2153.3827 0 .8467.2966 1.1529.6937-.3492-.0622-.6889-.1244-.9711-.1244-.177 0-.3397.0191-.4736.0813-.2583.1148-.6075.4975-.6075 1.0764 0 .0909.0095.1818.0239.2918.311-.6937 1.1385-1.0094 1.6743-1.0094.1052 0 .1818.0096.2535.0191-.2774.2488-.3396.6841-.3588.9807-.0095.1435-.0621.153-.1626.1483 0 .2966.2296.732.2296.952 0 .0813-.043.153-.0909.1674 0 .3875.3875.6745.3875.9233 0 .0621-.0191.1148-.043.1435.0287.1578.4592.4353.5118.5645.067.1578.1483.196.1962.196.153 0 .3922-.177.3922-.3396 0-.0526-.043-.1148-.0813-.1435-.1674-.1243-.2583-.3922-.33-.5692-.0623 0-.1436-.024-.1723-.1292-.0478-.1866-.0526-.5262-.1244-.732-.1148-.0286-.1674-.0717-.1674-.3109 0-.1148.0718-.5692.0718-.7319-.0527 0-.1244-.0334-.1244-.1435 0-.287.287-.507.3635-.8754.5071.378.6267.7558.6267 1.0955 0 .177-.0287.3492-.0622.507.3732-.1865.9376-.464.9376-1.0237 0-.33-.153-.6936-1.1576-.8371.311-.1148.7032-.177 1.0333-.177.5692 0 .904.1818.971.5836.1149-.177.2058-.3827.2058-.5693 0-.4353-.3636-.7223-.8276-.7223-.5454 0-1.0238.287-1.5404.6267.2344-.4832.3923-.7654.6793-.7654.043 0 .0909.0095.1387.0191-.0957-.3827-.5023-.7702-.7128-.7654zm15.0209 6.4246c.4449 0 .7989.5836.7989 1.258 0 .7224-.3397 1.507-.9424 2.0475-.0096-1.2007-1.483-.818-1.483-1.6934 0-.3732.2679-.622.5884-.622.287 0 .5023.0814.6745.2393-.1626-.1531-.2392-.3636-.2392-.5693-.0048-.3492.2105-.6601.6028-.6601zm-6.616-9.1178c-.0717-.1149-.3396-.177-.464-.177-.3922 0-.6601.2774-.7127.5262-.0335-.091-.0622-.1962-.0622-.3014 0-.3923.2679-.8754.9185-.8754.5692 0 .7893.2966.8706.2966.0909 0 .177-.091.2488-.091.0956 0 .1004.1484.1004.2584 0 .354-.1626.971-.5645 1.2007-.0717-.153-.2152-.3205-.4449-.4257-.0621-.0287-.0908-.0814-.0908-.134.0047-.1052.0956-.2296.2009-.2774zm-1.3442.6505c.2297.2297.4354.3206.6841.3206.1005 0 .2153-.0287.2775-.0287.0813 0 .1387.0334.1387.1004 0 .1005-.0909.2583-.1961.3492.1052.0479.2296.0574.3444.0622.507 0 1.0859-.3205 1.0859-1.1242.1052.1388.1722.4354.1722.5693 0 .9711-.7128 1.3442-1.373 1.3442-.4305 0-.641-.1435-.6983-.1435-.1675 0-.158.3397-.2775.33-.2057-.0334-.3923-.4878-.3923-.971 0-.287.0766-.598.2392-.818h-.0048v.0095zM6.7116.201c0-.0526-.268-.1052-.6315-.1052-.5788 0-.4975.4831-.9424.4783-.464 0-.3492-.4975-.9376-.4975-.3588 0-.684.0622-.684.1436 0 .1004.421.0574.421.354 0 .3109-.8994.4018-.8994.5883 0 .0575.067.091.1578.091.1962 0 .5071-.091.732-.091.1243 0 .2391.024.2391.1436 0 .2248-.4831.6218-.4831.8036 0 .0574.0478.067.0909.0718.177 0 .4831-.4545.7654-.4545.4736 0 .1578 1.0046.421 1.0094.2678 0 .153-.9902.5357-.9902.311 0 .5501.684.7558.684.0527 0 .0957-.043.0957-.1052 0-.1866-.2679-.5693-.2679-.818 0-.1531.1053-.2249.2488-.2249.2057 0 .4784.1244.6267.1244.0526 0 .1052-.0191.1052-.0813 0-.2153-.7941-.4449-.7941-.7223C6.2763.33 6.7164.33 6.7116.2009zm2.0953.909c0 .1578.5597.5022.8228.507.153 0 .196-.2057.196-.421 0-.2679-.1147-.2774-.3491-.2774-.2966.0048-.6697.086-.6697.1913zm.928 1.7651c0-.5358-1.4447-1.5069-1.4638-1.923 0-.0383.0191-.0766.0526-.11C8.5725.5787 9.601.3922 9.601.1673c0-.1148-.2153-.1148-.3206-.1148-.8275 0-2.0426.3014-2.0426.598 0 .3061 1.0859 1.038 1.0859 1.4064 0 .1005-.0622.134-.1626.1387-.3014 0-.9616-.3635-1.2725-.3635-.1435 0-.1962.0956-.1962.2392 0 .421.5023 1.2342.5023 1.4733 0 .0288-.0095.0622-.043.0622-.1627 0-.9185-.8897-1.1864-.8897-.0957 0-.1052.134-.1052.33v.3014c0 .2057-.0096.33-.1053.33-.2296 0-.3396-.6505-.5597-.6505-.2296 0-.2774 1.1577-.4975 1.1529-.2583 0-.0335-1.2725-.287-1.2725-.2775 0-.5884.8467-.7845.8467-.0718 0-.091-.0717-.091-.134 0-.2582.1532-.6792.1532-.928 0-.1243-.0335-.196-.1436-.196-.2774 0-.885.4448-1.1146.4448-.0334 0-.0813-.0191-.0813-.0526 0-.2153.9711-.8898.9711-1.196 0-.2965-1.3394-.1004-1.3394-.4353 0-.287.952-.5788.952-.8754 0-.2583-1.1338-.3731-1.5691-.3731C.8372.0096.55.0718.55.2248c0 .2297 1.2007.3062 1.2007.5023s-1.239.7224-1.239 1.0237c0 .2632 1.7461.024 1.7461.2966 0 .3014-1.526 1.6122-1.526 2.0475 0 .1004.067.1387.1722.1435.464 0 1.6648-.8802 1.9948-.8802.1149 0 .1244.1387.1244.263 0 .2345-.0813.5885-.0813.8468 0 .2057.0574.3444.2296.3492.33 0 .6315-.5597.8563-.5597.287 0 .1148 1.6456.5501 1.6504.3636 0 .5167-1.7843.7463-1.7843s.421.5118.6267.5118c.2679 0 .1435-.8993.4305-.8993.311 0 1.2007 1.0763 1.5978 1.0716.1243 0 .1674-.1005.1674-.2249 0-.4736-.6602-1.5403-.6602-1.88 0-.0909.024-.1148.1244-.1148.3492 0 1.3586.4784 1.8418.4784.1817.0191.2774-.0718.2822-.1914zm-8.142-.5166c0 .177-.6792.775-.9184.775-.0909 0-.1148-.1053-.1148-.2058 0-.177.0813-.4257.177-.507.1148-.1053.3827-.1579.5884-.1579.1292 0 .2679.024.2679.0957zm6.5538.9185c0 .3061 1.1194 1.8417 1.325 1.837.177 0 .311-.311.311-.579 0-.0717-.0191-.1434-.0526-.196-.1626-.2249-1.2916-1.1147-1.5403-1.1147-.024-.0047-.0479.0192-.0431.0527zM23.5073.1722c-.445 0-.5215-.1387-.8228-.1387-.3636 0-.622.2487-.622.6219 0 .1244.0431.3205.0431.5788 0 .3157-.0622.6075-.3396.6075-.2535 0-.354-.1674-.354-.3635 0-.354.1866-.5932.1866-.8276 0-.4258-.5262-.5501-1.0764-.5501-.6601 0-1.373.177-1.373.2678 0 .1531.952.0622 1.6218.9185-.4353.0096-1.282.2057-1.282.3205 0 .1435 1.5164.3062 1.5164.9376.0048.4162-.3301.4593-.4593.464-.5022 0-.7701-.5118-.904-.5118a.0704.0704 0 00-.0718.0718c0 .0813.0717.2918.0717.5166 0 .5693-.6314.6315-.6314.7463 0 .043.0191.0622.0909.0717a9.153 9.153 0 001.3825.1053c1.612 0 2.9324-.5023 2.9324-1.9087 0-.775-.2392-1.0238-.2392-1.4017 0-.1244.0909-.3827.33-.5262zm-2.2867 3.0473c-.1004 0-.2152 0-.33-.0096 1.0428-.1674 1.6217-.7702 1.6217-1.5643.2344.067.3779.3062.373.5597 0 .464-.4448 1.0142-1.6647 1.0142zM22.6893.794c-.1292-.0048-.2297-.0957-.2297-.22 0-.1292.1053-.2201.2297-.2249a.2246.2246 0 01.2248.2248c0 .1244-.1005.2249-.2248.2201zm.5597 11.5814c-.4162 0-.6602.732-1.0668.775.2583-1.0716 1.3203-1.6217 1.3203-2.6215 0-1.1337-.952-1.5308-1.349-1.7843-.665-.9376-1.1386-1.6791-2.2053-1.6791-.4545 0-.7415.0813-1.0524.0813-.6028-.0048-.7894-.2344-.8324-.2344-.0096 0-.0191.0096-.0191.043 0 .8276.4353 2.7268 2.3535 2.7268 1.0238 0 1.4639-.3923 1.703-.3923.2584 0 1.086.2823 1.086 1.2294 0 .5262-.4162 1.062-.5693 1.062-.1483.0048-.3062-.2344-.3062-.488 0-.2822.1531-.7988.1531-1.1193 0-.1196-.0191-.177-.0909-.177-.1626 0-.928.4784-.928 1.0955 0 .5262.775.8467 1.0668.9998-.2918.4831-.4688.794-.6124 1.239 0-.335-.3205-1.019-.421-1.306-.4927-1.3395-.6649-1.5882-1.679-1.703.153.5358 1.8991 1.8274 1.8991 3.1477 0 .0813-.0095.1961-.0191.2392-.5262-1.5404-1.4303-1.8944-1.7604-2.2723-.5358-.5884-.2296-1.1577-1.086-1.4782.0527.0718.0718.1627.0718.2583 0 .2823-.1626.641-.1626.8898 0 .928 1.0907.6506 1.7221 1.1577.622.5023.9711 1.3203 1.2294 2.2292.2488-.397.3923-.8802.8372-.8802.287 0 .3827.3588.3827.6075 0 .0526 0 .1005-.0096.134.4258-.3636.6506-.952.6506-1.3443 0-.263-.0909-.4353-.3061-.4353zm-1.66-3.4969c-.0909 0-.2631-.0478-.378-.0478-.306 0-.5213.421-.6792.421-.0574 0-.0813-.0527-.0813-.1005 0-.1722.3013-.378.3013-.4927 0-.0814-.1291-.1053-.1817-.1053-.3062 0-.732.4162-.9711.4162-.043 0-.1005-.024-.1005-.0813 0-.1148.3205-.2775.3205-.4019 0-.11-.1387-.1339-.2296-.1339-.1483 0-.4449.0813-.6315.0813-.1004 0-.1817-.0191-.1817-.1004 0-.1818.5788-.0622.5788-.2775 0-.1052-.1818-.3014-.1818-.4018 0-.0383.0478-.067.0909-.067.2057 0 .421.5597.6602.5597.1052 0 .1339-.0813.1339-.1961s-.024-.1722-.024-.2727c0-.1052.0431-.134.0766-.134.1483 0 .2823.8037.6937.8037.1817-.0048.0526-.4927.2152-.4927.1005 0 .1244.1435.134.2248.043.5262.5166.5454.5166.732 0 .019-.0287.067-.0813.067zM17.0062.0574c-.598 0-1.0333.2918-1.2677.2918-.1387.0096-.354-.3492-.464-.3492-.043 0-.091.0909-.091.2392 0 .1004 0 .4114-.1052.4114-.2152 0-1.0428-.6123-1.0428-.3923 0 .2057.5501.8324.5501.995s-.5453.311-.5453.421c0 .1961.5836.2296.5836.4832 0 .2487-.6076.4449-.6076.6266 0 .1483.6076.0479.6076.2297 0 .1865-.445.8132-.445.9902 0 .0478.0097.0478.048.0478.1674.0048.6792-.5788.7988-.5788.1435 0 .1722.3444.1961.555.0192.1004.0335.1147.0814.1147.1052 0 .2774-.4114.3922-.4114.1675 0 .6267.4688 1.3825.4736 1.0764 0 2.0953-.7558 2.0953-2.0953 0-1.2916-.9089-2.0522-2.167-2.0522zm-1.526 2.875c-.0287 0-.043-.0335-.043-.0813l-.0192-.354c0-.0335-.0192-.0717-.0622-.0717-.1053 0-.311-.0096-.3731-.0096-.043 0-.0622-.0096-.0622-.0287.0095-.067.3635-.3205.3683-.378 0-.1004-.3492-.287-.3492-.3922 0-.0191.0191-.0287.043-.0287.1005 0 .2632.0335.4019.0335.1148 0 .134-.4975.22-.4975.0622 0 .1723.4688.2631.4688.1149 0 .3301-.134.421-.134.0192 0 .0335.0096.0335.0287 0 .0622-.2248.3014-.2248.378 0 .0813.5023.1817.5023.2487 0 .0909-.5071.0813-.5071.1627 0 .0574.1818.3061.1818.3874 0 .0192-.0096.0287-.0287.0287-.0718 0-.3493-.1243-.4306-.1243-.1004 0-.2583.3635-.3348.3635zm1.5451.7702c-.6267 0-1.0333-.311-1.0333-.4736 0-.0813.0526-.134.1244-.134.1961 0 .6267.2967.7654.2967.0335 0 .0622-.0192.0622-.0718 0-.1626-.153-.4257-.153-.5597 0-.0335.0286-.0622.0812-.0622.2392 0 .5932.1005.7893.1005.0622 0 .0814-.0335.0814-.0718 0-.1961-.5789-.5788-.5789-.6936 0-.1053.7224-.2679.7224-.4353 0-.177-.9807-.0527-.9807-.2249 0-.1243.1866-.3396.1866-.4353 0-.043-.0335-.0622-.0957-.0622-.0813 0-.507.1675-.6888.1675-.091 0-.1962-.0192-.1962-.1436 0-.2057.3492-.4257.8946-.4257.8802 0 1.4064.6075 1.4064 1.6217-.0048 1.2868-.8993 1.6073-1.3873 1.6073zm-6.037 15.4228c0 .0813-.0288.1674-.1005.2583-.0957-.177-.3732-.2679-.4975-.2679-.9185 0-.5693 1.3299-1.55 1.3299-.4114 0-.4448-.0526-.598-.0526-.0621 0-.1004.0287-.1004.0813 0 .2296.33.7989 1.2438.8037.9185 0 1.7987-.5597 1.7987-1.2582 0-.1148-.0287-.2392-.0814-.3635.0335-.0527.1244-.091.2057-.091.1436 0 .2153.158.354.1627.1436 0 .2488-.1052.2488-.2487 0-.1148-.0622-.1962-.1674-.2488.0717-.0526.1243-.1435.1243-.2392 0-.153-.1052-.2918-.287-.2918-.0813 0-.134.0287-.1961.0861-.0191-.1578-.1053-.311-.2775-.311-.134 0-.2344.0958-.2344.2536.0192.1244.1148.2392.1148.397zm-2.8703-.6458c-.0622 0-.1435.0095-.2296.0095-.0813 0-.1962-.0191-.268-.0813-.1434-.1244-.1865-.794-.4544-1.196-.2918-.4448-.6123-.5692-1.0524-.5692-.311 0-.6601.1674-.6601.421 0 .153.086.2583.6505.4066.7128.1818 1.0764.5597 1.1434 1.0142.0717.4353.1578.7893.33.971.2249.2536.665.4689 1.0381.4689.3205 0 .5788-.1053.5788-.4019 0-.3205-.4353-1.0428-1.0763-1.0428zm.4736.9806c-.2679 0-.6697-.287-.6697-.4449 0-.1339.1243-.2057.2248-.2057.2248 0 .6267.2727.6267.5071-.0048.0622-.0479.1388-.1818.1435zm2.1335-3.9226c-.4114-.1483-.5932-.3875-.6745-.8563-.2009.2727-.2966.531-.2966.684 0 .6028.8276.6124.8276 1.0142-.0048.2344-.421.4736-.971.4784-.6411-.0048-1.0716-.1053-1.4735-.507-.1052-.1149-.153-.2154-.287-.2154-.153 0-.2153.268-.2153.5071 0 .8754.8324 1.9087 1.99 1.9087 1.4448-.0048 2.0045-.9998 2.0045-1.8034 0-.4688-.11-.9137-.9042-1.2103zm-.4257 2.4397c-.1148 0-.1387-.0718-.1387-.1722 0-.0814.0287-.2344.0287-.3492 0-.3158.1196-.2919.4257-.4306h-.0048c.2153-.1004.2966-.2344.3636-.2344.0813 0 .153.0526.153.177 0 .464-.507 1.0094-.8275 1.0094zM7.7736 12.519c0-.5692 1.3538-.8754 1.3538-1.5786 0-.1148-.043-.3205-.1244-.4736.4736.2631.8228.6984.8228 1.0524 0 .6171-.641.8994-.641 1.282 0 .445.684.512.684 1.0716 0 .4545-.6505.9807-.6505 1.5691 0 .4592.3205.8324.8132.8898-.1627.0335-.3014.0622-.4545.0622-.8993 0-1.8274-.7415-1.8274-1.6217 0-.4353.1866-.818.4736-1.0955.2488.2153.5023.354.665.354.1435 0 .2057-.0718.2057-.177-.0096-.3253-1.3155-.6362-1.3203-1.3347zM5.219 16.2743c-.0335-.3205-.3253-.5597-.622-.5215-.1147.0144-.2248.0574-.2965.1196-.0813-.2679-.3301-.4975-.6745-.4449-.311.0527-.5167.3158-.4832.6506.0048.0574.024.1148.0478.177 0 0-.0526.0096-.0908.0144-.2584.0478-.5454.311-.4975.6506.0382.3061.3205.5358.641.4975.1148-.0144.2248-.043.2966-.091.0717.2871.3061.4689.6266.4258.3301-.043.5502-.3013.5167-.6314-.0096-.0909-.0287-.1435-.0526-.2057 0 0 .043-.0048.0765-.0096.3205-.0622.5406-.3205.5119-.6314zm-1.2486.6697c-.1866.024-.354-.11-.378-.2966s.1101-.354.2967-.378c.1913-.0238.3588.1149.3779.2967.024.1865-.11.354-.2966.3779z\"},\"child\":[]}]})(props);\n};\nexport function SiUniqloJa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 .01v23.98h24V.01ZM4.291 3.29h4.553l.006 5.803h1.511v1.511h-6.82V9.094h3.783v-4.29H4.291zm10.11 0h5.302v1.514H14.4zm-.762 5.807h6.816v1.511H13.64zM4.29 13.385l6.072.002-1.513 7.322H2.777l.305-1.516h4.553l.892-4.29H5.49l-.457 2.148H3.521Zm9.348 0h6.816v7.324H13.64zm1.517 1.517v4.291h3.787v-4.29z\"},\"child\":[]}]})(props);\n};\nexport function SiUniqlo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm3.006 3.236h1.52v5.051a1.007 1.007 0 1 0 2.014 0v-5.05h1.517v5.056a2.525 2.525 0 1 1-5.051 0V3.236zm7.07 0h1.514l2.023 4.328V3.236h1.516v7.575h-1.516L11.59 6.482v4.329h-1.514V3.236zm7.569.01h1.488v7.576h-1.488V3.246zM5.533 13.078a2.526 2.526 0 0 1 2.524 2.53v2.523a2.51 2.51 0 0 1-.75 1.793l.75 2.248H6.539l-.518-1.563a2.472 2.472 0 0 1-.488.043 2.524 2.524 0 0 1-2.527-2.521v-2.524a2.527 2.527 0 0 1 2.527-2.529zm4.547 0h1.514v6.057h3.535v1.517H10.08v-7.574zm8.336 0a2.526 2.526 0 0 1 2.523 2.53v2.523a2.525 2.525 0 0 1-2.523 2.521 2.53 2.53 0 0 1-2.531-2.521v-2.524a2.533 2.533 0 0 1 2.531-2.529zm-12.88 1.52a1.007 1.007 0 0 0-1.01 1.01v2.523c0 .552.45 1.006 1.01 1.006.558 0 1.003-.454 1.003-1.006v-2.524c0-.559-.445-1.01-1.004-1.01zm12.88 0a1.01 1.01 0 0 0-1.012 1.01v2.523c0 .552.453 1.006 1.012 1.006a1.012 1.012 0 0 0 1.01-1.006v-2.524c0-.559-.455-1.01-1.01-1.01z\"},\"child\":[]}]})(props);\n};\nexport function SiUnitedairlines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.327 3.067c8.654 0 15.695 7.068 15.695 15.754 0 1.762-.298 3.515-.875 5.179H24V0H0v4.003l.019-.007a15.569 15.569 0 0 1 5.308-.929M0 10.534c.975-1.389 1.116-2.983.26-3.761a1.56 1.56 0 0 0-.26-.19zm5.027-5.057c-.863-.99-2.3-1.33-3.969-1.092l-.135.02a7.873 7.873 0 0 0-.386.077C.28 4.542.104 4.6 0 4.64v.5a8.47 8.47 0 0 1 .505-.37c.333-.07.656-.116.968-.136C.99 4.91.434 5.283 0 5.627v.385l.015.009s1.224-.969 2.196-1.386c.234.017.458.05.672.099A14.624 14.624 0 0 0 .284 6.168c.15.088.285.199.303.213.019-.012 1.427-.892 2.977-1.42.21.096.413.216.589.351-1.688.474-3.31 1.321-3.31 1.321.092.106.172.221.242.344l.029-.011c1.727-.74 3.562-1.118 3.562-1.118.143.196.262.416.352.658 0 0-1.647.188-3.765.868.093.292.119.512.119.515 0 0 1.997-.447 3.839-.497.026.296.016.628-.026.969-1.09-.058-3.69.08-3.791.089 0 0-.01.374-.107.726 0 0 1.899.061 3.626.383a8.406 8.406 0 0 1-.507 1.22c-1.15-.346-2.897-.766-3.357-.871a5.64 5.64 0 0 1-.453.88s2.134.93 2.953 1.386h.002v.001c-.356.532-1.06 1.277-1.06 1.277a73.343 73.343 0 0 0-.58-.43L.005 11.685 0 11.68v1.765l1.107 1.292c-.364.294-.736.562-1.107.802v1.053l.041-.026a15.948 15.948 0 0 0 1.492-1.151c3.819-3.323 5.383-7.773 3.495-9.94m4.701.184C7.917 3.221 5.08 3.57 4.234 3.688c-.929.13-1.631.334-1.631.334.207.019.49.056.694.097.15-.036 1.454-.333 2.402-.209h.003c-.697.076-1.647.363-1.746.394h-.002a3.154 3.154 0 0 1 .663.3c.102-.026 1.392-.369 2.623-.393 0 0 .455.202.893.503-1.59-.006-2.907.3-2.942.308.186.165.371.364.537.603 1.744-.262 3.248-.148 3.248-.148s.204.25.296.383a5 5 0 0 1 .327.563c-1.779-.208-3.48-.059-3.482-.059.118.303.197.627.24.968.197-.002 1.704.001 3.623.346.062.44.068.912.02 1.41a25.761 25.761 0 0 0-3.622-.65c-.035.43-.116.877-.242 1.336.192.045 2.317.552 3.506 1.034a12.226 12.226 0 0 1-.707 1.76c-.958-.472-3.307-1.39-3.307-1.39a12.625 12.625 0 0 1-.858 1.588s2.014 1.15 2.984 1.786a18.19 18.19 0 0 1-1.511 1.875c-.704-.63-2.464-1.994-2.597-2.097a25.338 25.338 0 0 1-1.496 1.596l2.112 2.422-.06.053c-.458.38-.95.736-1.366 1.022-.361.245-.66.435-.762.501a302.864 302.864 0 0 1-1.615-2.596c-.152.113-.305.22-.458.326v4.539c.248-.12.497-.244.745-.376a18.882 18.882 0 0 0 3.422-2.19 21.666 21.666 0 0 0 2.125-1.93 18.942 18.942 0 0 0 2.2-2.704c2.329-3.438 2.952-7.023 1.236-9.333m3.701.829a3.523 3.523 0 0 0-.4-.468 4.523 4.523 0 0 0-.4-.344c-1.502-1.133-4.268-1.7-4.268-1.7.264.141.484.285.485.286.013.004 1.128.283 2.117.767 0 0-.9-.204-1.476-.284.238.21.465.45.664.703 0 0 1.835.335 2.64.776 0 0 .386.397.701 1.093-1.257-.51-2.682-.777-2.682-.777.19.424.325.878.408 1.35 0 0 1.566.383 2.742.948.102.559.14 1.136.118 1.72a21.613 21.613 0 0 0-2.77-1.134 9.298 9.298 0 0 1-.287 1.865s1.898.847 2.75 1.362a13.329 13.329 0 0 1-.77 2.201c-1.299-.844-2.673-1.594-2.673-1.594-.346.83-1.195 2.187-1.195 2.187.022.015 1.436.986 2.52 1.847a20.88 20.88 0 0 1-1.807 2.346 304.27 304.27 0 0 0-2.312-2.068 22.358 22.358 0 0 1-2.095 2.12l2.008 2.273c-1.302 1.074-2.601 1.887-2.601 1.887L3.17 21.47s-1.18.897-3.17 1.84V24h6.537c7.297-5.52 9.886-13.415 6.892-17.511M12.967 24c1.704-1.905 3.155-4.147 4.027-6.547.757-2.082 1.169-4.625.5-6.887a6.312 6.312 0 0 0-.155-.45 5.429 5.429 0 0 0-.794-1.415 15.18 15.18 0 0 0-2.749-2.413c.15.191.285.389.402.589 0 0 1.231.913 1.946 1.84-.917-.652-1.436-.917-1.503-.95l-.008-.004c.348.859.453 1.57.453 1.57s1.088.568 2.067 1.416c.136.627.192 1.27.183 1.913-.987-.869-2.13-1.547-2.13-1.547a11.7 11.7 0 0 1-.284 2.204s1.079.683 2.13 1.64c0 0-.302 1.358-.789 2.424a26.291 26.291 0 0 0-2.069-1.726s-.5 1.305-1.312 2.616a61.394 61.394 0 0 1 1.959 1.789 21.41 21.41 0 0 1-1.943 2.57v.001l-1.807-1.798a23.958 23.958 0 0 1-2.392 2.55c.04.046.404.45.553.615zm3.213 0h.902c2.567-3.792 2.696-7.153 2.696-7.797 0-1.216-.204-2.334-.546-3.219 0 0-.532-1.375-1.362-2.6a11.694 11.694 0 0 1 .377 1.413c.163.273.9 1.572.999 3.001v.004s-.52-.729-.907-1.19a12.068 12.068 0 0 1-.28 2.33s.772.894 1.117 1.47c0 0-.235 1.258-.738 2.462-.512-.745-1.166-1.468-1.166-1.468a19.217 19.217 0 0 1-1.406 2.778s.978 1.144 1.192 1.47c-.287.484-.567.905-.878 1.346m3.27 0c.194-.525.369-1.085.512-1.654a15.228 15.228 0 0 0 .28-5.658c-.069.998-.243 1.873-.243 1.873.041.132.114.349.147.482v.001a17.79 17.79 0 0 1-.575 2.995c-.131-.484-.307-.95-.318-.98h-.001c-.353.94-.881 2.05-1.361 2.941Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnitednations (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.024 20.255a3.123 3.123 0 0 1-2.048.242 7.117 7.117 0 0 1-1.366-.463l-.968-.396a4.736 4.736 0 0 0-2.599-.066h-.088a4.357 4.357 0 0 0-2.598.066c-.33.11-.639.264-.969.396-.44.199-.903.375-1.365.485a3.14 3.14 0 0 1-2.048-.242l-.088-.044c-.022 0-.022 0-.022.022a3.335 3.335 0 0 0 2.752.991 3.998 3.998 0 0 0 1.718-.661l.925-.617a1.57 1.57 0 0 1 1.167-.22c.22.022.044.132.022.154a8.807 8.807 0 0 0-1.564.97c-.33.241-.925.814-.925.814l.44.374.485-.528a8.741 8.741 0 0 1 2.026-1.564.165.165 0 0 1 .198 0 8.741 8.741 0 0 1 2.026 1.564l.485.528.44-.374-.925-.815a8.808 8.808 0 0 0-1.563-.969c-.044-.022-.198-.132.022-.154.396-.088.814 0 1.167.22l.925.617a3.998 3.998 0 0 0 1.717.66c.397.045.815.023 1.211-.088a3.761 3.761 0 0 0 1.542-.902s-.022-.022-.044-.022l-.088.022m2.157-1.916a3.1 3.1 0 0 1-.924.484c-.463.133-.97.22-1.454.22-.638.023-1.255.067-1.893.155-.044 0-.066 0-.044-.022.55-.22.99-.66 1.233-1.19l.616-1.254v-.045c-.044.022-.66.551-.947.815l-1.035 1.013a4.02 4.02 0 0 1-1.607.837h-.022l-.022.022 1.189.286a7.522 7.522 0 0 0 1.563.286 3.669 3.669 0 0 0 3.392-1.585c0-.022-.023-.022-.045-.022m1.938-2.95a4.643 4.643 0 0 1-1.1.968c-.353.242-.727.44-1.124.617a5.472 5.472 0 0 0-1.387.814l-.088.067c-.022 0-.022 0-.022-.023 0-.022.66-.682.859-2.07.022-.506.11-.99.22-1.475v-.044a6.42 6.42 0 0 0-1.057 1.894l-.396 1.123c-.155.506-.44.969-.815 1.343l-.044.044v.022c.044 0 .088-.022.132-.022l1.277-.264a4.454 4.454 0 0 0 1.938-.815 4.491 4.491 0 0 0 1.387-1.63c.088-.175.154-.352.22-.528.044-.044.022-.044 0-.022m.837-3.303a3.917 3.917 0 0 1-1.013 1.586 14.717 14.717 0 0 0-1.453 1.651c0 .022-.044 0-.022-.022a4.45 4.45 0 0 0 .132-1.871c-.088-.529-.308-1.101-.374-1.74l-.023-.022c0 .022-.022.044-.022.066a6.27 6.27 0 0 0-.264 1.277c-.022.529.066 1.211.022 1.74-.044.616-.088 1.255-.374 1.805v.044l1.321-.814a4.959 4.959 0 0 0 1.387-1.322A3.947 3.947 0 0 0 24 12.151v-.088c-.022 0-.044.022-.044.022m-1.41.353c.023 0 .023 0 0 0 0 .022 0 0 0 0 0-.177 0-.353-.021-.529-.044-.616-.419-1.123-.749-1.651a8.184 8.184 0 0 1-.595-1.057s-.022-.022-.044-.022c0 .044 0 .242.022.352.11.88.33 1.762.661 2.598.198.529.264 1.08.22 1.63 0 .044 0 .044.022.066.198-.286.595-.683.837-.991.242-.308 1.563-1.806.925-3.875-.022-.089-.066-.177-.11-.265l-.022.022c0 1.498-.727 2.136-1.013 3.15a4.91 4.91 0 0 0-.132.572m.022-3.083-.132-.352-.088-.199a3.062 3.062 0 0 0-.903-1.013 4.289 4.289 0 0 1-.793-.88h-.066c.022.066.22.726.352 1.035.22.418.485.836.793 1.189l.066.088c.374.506.66 1.057.859 1.651 0 .022.022.022.022.022l.374-1.145c.132-.396.242-.815.33-1.233.133-.99-.176-2.246-.748-2.95 0 0-.022.021-.022.044l.022.088.044.132c.11.528.132 1.1.022 1.63-.088.418-.11.858-.11 1.298 0 .066.044.617.044.639s-.022 0-.044 0m-1.784-5.571c.176.176.33.374.419.616.154.375.198.925.308 1.344l.198.726c0 .022-.022.044-.044.022a4.326 4.326 0 0 0-1.19-.99c-.307-.177-.55-.419-.77-.683l-.11-.154s-.022-.022-.044 0v.066c.11.484.33.947.683 1.32.286.265.594.507.88.75a9.58 9.58 0 0 1 1.057 1.057s.022.022.022 0v-.353l.022-1.057V6.14c0-.352-.066-.727-.198-1.057-.22-.55-.638-.99-1.145-1.255-.022-.022-.066-.022-.11-.044 0 0 0 .022.022.044M18.54 2.793c.308.286.573.617.815.969.22.352.462.66.77.947.199.198.793.66.947.792-.022-.176-.308-1.43-1.079-2.047a3.93 3.93 0 0 0-1.519-.75v.045l.066.044M6.208 19.946a7.118 7.118 0 0 0 1.52-.286l1.188-.286h.022s0-.022-.022-.022h-.022a4.258 4.258 0 0 1-1.63-.837l-1.034-.99-.947-.816v.045c.088.132.419.858.617 1.255.242.55.682.969 1.233 1.189.022.022 0 .022-.044.022a17.804 17.804 0 0 0-1.894-.154c-.484 0-.99-.088-1.453-.22a3.102 3.102 0 0 1-.925-.485h-.044a3.843 3.843 0 0 0 1.761 1.365 4.808 4.808 0 0 0 1.674.22m-.506-1.299c.044 0 .066.022.132.022v-.022l-.044-.044a3.502 3.502 0 0 1-.815-1.343l-.396-1.123a6.42 6.42 0 0 0-1.057-1.894v.044c.132.485.198.97.242 1.476.198 1.365.859 2.025.859 2.047 0 .022 0 .045-.022.022l-.089-.066a5.472 5.472 0 0 0-1.387-.814 6.931 6.931 0 0 1-1.123-.617 4.643 4.643 0 0 1-1.1-.969H.878c.066.176.132.353.22.529.33.638.815 1.21 1.41 1.63.572.44 1.233.726 1.937.814.419.11.837.22 1.256.308m-3.546-2.862 1.322.814s.022-.022.022-.044c-.287-.572-.33-1.189-.375-1.805-.044-.55.044-1.211.022-1.74a6.477 6.477 0 0 0-.264-1.299c0-.022-.022-.044-.022-.066l-.022.022c-.044.639-.286 1.211-.374 1.74a4.502 4.502 0 0 0 .132 1.871c.022.022-.022.044-.022.022a13 13 0 0 0-1.454-1.65 3.843 3.843 0 0 1-1.01-1.565s-.023-.022-.045-.022 0 .044 0 .088c0 .815.243 1.63.727 2.312.352.507.815.97 1.365 1.322m-.242-1.938c.022-.022.022-.022.022-.066-.044-.55.022-1.123.242-1.63.309-.836.529-1.695.661-2.598 0-.11.022-.308.022-.352-.022 0-.022 0-.022.022a8.184 8.184 0 0 1-.595 1.057c-.352.484-.704 1.013-.748 1.63a2.122 2.122 0 0 0 0 .528s0 .022-.022.022v-.022l-.154-.529C1.01 10.896.307 10.258.307 8.76l-.022-.022c-.044.088-.066.176-.11.265-.639 2.07.66 3.567.924 3.875s.617.683.815.969M.99 9.729l.375 1.145s.022 0 .022-.022c.198-.594.506-1.145.858-1.651l.066-.088c.309-.375.573-.771.793-1.19.132-.308.33-.968.353-1.034H3.39c-.22.33-.484.616-.792.88a2.991 2.991 0 0 0-.925 1.035c-.022.066-.066.132-.088.199l-.132.374s-.022.044-.022 0 .044-.55.044-.639c0-.44-.044-.88-.132-1.299a4.056 4.056 0 0 1 .022-1.63c0-.043.022-.087.044-.131 0-.022.022-.066.022-.089s0-.022-.022-.044C.835 6.25.505 7.527.637 8.496c.11.418.22.837.352 1.233m.793-3.215.022 1.057v.33h.022c.308-.396.66-.748 1.035-1.078l.88-.75a2.81 2.81 0 0 0 .683-1.32v-.066h-.022l-.11.154a2.773 2.773 0 0 1-.748.682c-.529.33-.881.573-1.19.991-.021.022-.044.022-.021-.022l.198-.726c.11-.419.154-.97.308-1.344.088-.22.242-.44.418-.616v-.044c-.044 0-.066.022-.11.044-.55.286-.947.749-1.167 1.277-.132.33-.22.683-.198 1.057v.374M2.949 5.48l.969-.792c.286-.287.55-.595.77-.947a4.88 4.88 0 0 1 .815-.969l.066-.066V2.66a3.646 3.646 0 0 0-1.519.749c-.815.638-1.079 1.893-1.1 2.07m8.851 6.826c.066-.089-.088-.155-.132 0-.044.154.066.11.132 0m1.674-3.876c-.067-.022-.309.264-.265.308a.732.732 0 0 0 .265-.308m.044-.044c.044.022.198-.066.176-.088-.022-.022-.22-.11-.22-.066 0 .088.022.132.044.154m2.972 2.73c.088-.022.066-.154 0-.154s-.154.11-.132.11c.022 0 .088.066.132.044m-1.079-2.928c-.066 0-.088.066-.022.11.066.022.11 0 .154-.022a.149.149 0 0 0 .088-.132c0-.066-.088-.154-.044-.198s.11.022.155 0 .066-.066.066-.11c0-.045-.022-.177-.11-.177s-.177.177-.177.177a.188.188 0 0 0 0 .154c.022.088 0 .198-.11.198m1.454.022c0 .044.11.33.132.396.022.066.044.308.088.286.044-.022.044-.154.022-.22a2.843 2.843 0 0 0-.11-.462c-.022-.088-.176-.419-.22-.397-.045.023.066.22.088.309.022.088-.022.044 0 .088m-.771-3.744c.066.022.066-.11-.044-.198-.11-.088-.286-.044-.242 0 .088.066.176.154.286.198m-3.303-.946c-.154-.088-.022-.22-.132-.309-.132-.044-.264-.022-.353.066-.11.133.133.088.199.133.066.044.286.198.308.176.022-.022 0-.066-.022-.066m.88-.44c-.197-.089-.924-.089-.902.11s.418 0 .528 0 .55-.023.375-.11m-2.004 8.499c-.044-.022-.11.022-.132-.022-.022-.044-.066-.022-.066 0s-.022.066.022.11a.134.134 0 0 0 .176 0 .067.067 0 0 0 0-.088m-.418-1.475c.066 0 .066-.044.088-.044s0 .044.066.044.132-.155-.066-.155c-.155 0-.133.155-.088.155m.264.176c-.11-.022-.088.044-.176.044-.133.022-.022-.088-.066-.132-.022-.022-.089.088-.11.154 0 .044 0 .132.043.154l.419.044c.088 0 0-.242-.11-.264M10.15 11.71c.044 0 .066-.132.044-.198s-.155-.022-.155.022.089.176.11.176m-1.761 0c0-.044 0-.22-.044-.264s-.044.022-.066.022-.022-.088-.044-.088 0 .132.044.22.11.22.11.11m-.044-.396c.044-.132.066-.265.066-.397 0-.11-.066-.198-.088-.198s0 .066.022.176c0 .11-.044.22-.066.33 0 .023.044.133.066.089m-2.246 4.932c3.28 3.281 8.566 3.281 11.847 0s3.28-8.566 0-11.847-8.566-3.28-11.847 0-3.281 8.588 0 11.847M4.006 10.5h1.277c.022.66.132 1.3.33 1.916a.782.782 0 0 1-.198-.088c-.088-.044-.154.022-.176.022-.088 0-.198-.066-.198 0s.088.022.088.066-.22.044-.242-.044-.066-.177-.088-.066-.11.088-.154.11c-.022.022-.044.066-.044.11s-.11.022-.11.088.066.088.088.154.088.11.044.132c-.044.022-.022-.022-.066 0s.198.683.242.66-.066-.22-.066-.308.022-.11.088-.154.242.264.308.22-.022-.088.044-.11.264.287.33.199c.044-.067.088.044.088.066.067.11.177.11.243.242s.22.374.33.374c.11 0 .044-.11.088-.11s.088.154.154.242a.32.32 0 0 0 .198.132c.154.199.33.397.507.595l-.903.903A7.735 7.735 0 0 1 4.006 10.5m7.289-1.828-.089.044a1.234 1.234 0 0 0-.33.22l-.903-.902c.529-.463 1.19-.749 1.872-.771V8.54a1.766 1.766 0 0 0-.462.11c.044-.088.132-.176.132-.176s-.154.088-.22.198m-.683 2.092s0 .022 0 0v.044c0-.044-.022-.066-.044-.11-.022-.022-.044-.044-.066-.044h-.11l-.044.022h-.309c-.044 0-.066 0-.066-.022-.022-.088.11-.022.199-.286.022-.022.022-.066.044-.088l.044-.066.022-.022c.044-.044.088-.044.132-.044h.044l.044.044.066.132c.022.022.044.022.044.044a.304.304 0 0 1 .088.066l.022.022v.022c.022.022.022.022.044.022h.088c.044-.022.044 0 .066 0v.022c0 .022 0 .022-.022.044 0 .022-.022.022-.022.044-.022.022-.044.044-.066.044-.044 0-.088-.022-.11-.022s-.044 0-.044.022v.11m-2.422 2.114a.806.806 0 0 1-.088-.396.742.742 0 0 0-.11-.375c-.022-.088-.044-.176-.044-.264 0-.154-.133-.11-.133-.154s.11 0 .11-.044-.132-.22-.242-.264c-.11-.044-.066-.11-.066-.176s0-.133-.044-.177c-.022-.088 0-.242.11-.242.044 0 .11.044.177 0 .066-.044.022-.176.022-.286h.616c0 .088.022.198.022.286-.044.022-.066.066-.044.088.022.022.044.044.066.022.11.639.396 1.233.837 1.718l-.903.903c-.066-.066-.132-.155-.198-.243v-.066c0-.154-.11-.242-.154-.374m-.793-1.497a5.11 5.11 0 0 1-.11-.837h.528c-.044.066-.154.132-.176.198s-.154.286-.066.374c.198.22-.044.309-.176.265m.11 3.259-.11.11-.154-.154c.088-.044.176-.022.264.044m1.365-5.66c-.022 0-.022.023-.044.023-.066.066-.242.044-.22.11s.485-.155.485-.11-.199.11-.33.176-.177.176-.397.176c-.11 0-.154.088-.198.154a1.64 1.64 0 0 0-.154.264.864.864 0 0 1-.088.397h-.64a4.76 4.76 0 0 1 1.256-3.04l.903.904a6.02 6.02 0 0 0-.573.946m.837-.66.793.793h-.088c-.088 0-.088-.066-.154-.066-.133.022-.155.066-.177.044a1.234 1.234 0 0 0-.33-.22.604.604 0 0 0-.44.021c-.022 0-.022.022-.044.022.154-.198.308-.396.44-.594m-1.1 1.607c0 .088-.023.177-.023.265h-.462c-.022-.066 0-.133.044-.199.044-.088.154-.132.264-.11a.68.68 0 0 1 .176.044m.396 1.035.045.066c.044.044.088.088.132.066.044-.022.154 0 .176 0 .066.022.11.066.154.11.044.067.132.023.198.067s.132.088.044.132c-.088.044.088.132.11.132s.044-.044.044-.11c0-.022.044-.11.11-.088.066.022.265.264.33.176.067-.088.023-.198.045-.242 0-.022.022-.044.044-.044.066.11.11.198.198.286l-.903.903a2.769 2.769 0 0 1-.727-1.454m.705-3.149-.88-.902a4.76 4.76 0 0 1 3.038-1.255v1.277c-.793.022-1.541.33-2.158.88M8.542 6.602 7.64 5.7a6.395 6.395 0 0 1 4.206-1.74v1.277a5.072 5.072 0 0 0-3.303 1.365m-.264.243a5.12 5.12 0 0 0-1.365 3.303H5.635a6.395 6.395 0 0 1 1.74-4.206l.903.903zM6.913 10.5c0 .242.022.462.066.705-.022 0-.022-.067-.088-.045s-.309.44-.419.617c-.088.154.044.484-.088.595a1.247 1.247 0 0 1-.396.066h-.022a6.256 6.256 0 0 1-.353-1.894l1.3-.044zm4.91 7.839a7.94 7.94 0 0 1-5.35-2.224l.902-.903a6.746 6.746 0 0 0 4.448 1.85v1.277zm0-1.63a6.395 6.395 0 0 1-4.206-1.74l.154-.153a.481.481 0 0 0 .11.066.488.488 0 0 0 .309.044c.088-.022.264-.176.374-.176.11 0 .286.044.396-.022s-.066-.287-.132-.397c-.022-.022-.022-.044-.044-.066a4.954 4.954 0 0 0 3.083 1.167l-.044 1.277zm0-1.651a4.76 4.76 0 0 1-3.039-1.255l.903-.903c.419.374.925.66 1.497.793-.198.088-.286.22-.264.33.022.11-.132.176-.132.308s.176.22.198.353c.022.066.176.176.309.264.176.044.352.066.506.044l.022.066zm-.044-1.762c-.066-.044-.11.044-.198.088a3.176 3.176 0 0 1-1.63-.748l.903-.903c.286.22.617.374.969.396 0 .044.044.088.044.177s-.066.132-.044.176.22 0 .242-.066c.022-.066-.066-.11-.088-.177-.022-.044-.022-.066-.044-.11H12c.066 0 .132 0 .198-.022a.047.047 0 0 0 .044-.044c0-.022.022-.044.022-.066s.022-.022.022-.044l.022.022c.022.044.067.176.11.154s.067-.22.045-.264a.165.165 0 0 1 0-.198c0-.022.022-.154.066-.132s0 .132 0 .176c0 .066.044.154.11.11.044-.022.088-.088.132-.066s-.11.066-.132.11c-.022.044.066.066.044.088-.022.022-.044 0-.066.022-.022.022.044.154 0 .176s-.198.066-.242.088-.089-.022-.067-.044 0-.11-.044-.11-.044.022-.044.066.044.11.044.133-.066.044-.11.066c-.044.066-.11.132-.176.176s-.198.044-.198.088.066.044.088.066c.044.066.066.154-.022.198s-.198-.066-.242-.044c-.044.022-.066.132-.088.264-.022.132.242.176.374.11.088-.044.066-.176.154-.22s.066-.132.154-.11c.088.022.066-.066.155-.066s.088.066.198.088c.176.044.176.176.198.11s.044-.11-.088-.154-.198-.198-.088-.154c.132.066.242.066.264.132s.154.044.176.11c.022.11.11 0 .044-.066s-.044-.088 0-.132.066.022.132-.066-.022-.066-.044-.11 0-.286.088-.242.176-.022.132-.044c-.044-.023.022-.155.044-.155s0 .088.022.11.243-.066.265.045-.154.176-.198.176c-.089 0-.155.088-.22.176-.067.088-.133.11-.089.198s.132.066.22.022.155-.11.199-.132c.088-.044.154.22.11.264s-.132.066-.176.11c-.133.066-.265.132-.419.132-.088.022-.088.044-.11.132-.022.089-.418.022-.506.022s.066-.198-.066-.176l-.397.066c-.022 0-.154.11-.264.022m1.167 2.048c.11.044.22.132.286.22.066.11.088.155.044.265-.11.198-.066.33.154.396.133.044.177.176.265.264a6.83 6.83 0 0 1-1.498.22v-1.277c.243-.022.507-.044.75-.088m-.75-.264v-.154c.287-.044.22.132.419.066a.171.171 0 0 1 .176.044 5.4 5.4 0 0 0-.595.044m0 3.281v-1.3a6.68 6.68 0 0 0 1.96-.352c.022.023.044.023.066.023a.462.462 0 0 0 .242-.089 2.59 2.59 0 0 0 .595-.33 6.678 6.678 0 0 0 1.585-1.123l.903.903c-1.431 1.41-3.347 2.202-5.35 2.268m3.567-11.516.308-.309a.545.545 0 0 0 .308.176c.11.023.154.067.176.177.022.11.132.154.243.176s.176.154.264.154.374.396.484.528c.066.066.154.177.22.089.066-.089.066-.067.11-.089a6.47 6.47 0 0 1 .551 2.4h-1.277c0-.286-.044-.572-.11-.858a.61.61 0 0 0 .066-.286c0-.089-.088-.133-.154-.067a3.14 3.14 0 0 0-.176-.484c-.023-.088-.045-.198-.067-.286 0-.022-.044-.044-.088-.088-.044-.088-.066-.154-.11-.22.066-.045.088-.155 0-.133-.132.022-.044-.066-.088-.11s-.044 0-.066.022a6.132 6.132 0 0 0-.572-.748v-.022c-.044 0-.044-.022-.022-.022m.77 7.464c-.044-.088-.066-.198-.11-.286-.022-.088-.198-.088-.198-.044 0 .088 0 .176-.022.264v.022l-.462-.462a5.12 5.12 0 0 0 1.365-3.303h1.277a6.295 6.295 0 0 1-1.74 4.184l-.066-.066a.528.528 0 0 0-.044-.309m-1.057.881c.066-.11.199-.308.265-.418.066-.11-.177-.264-.309-.309s-.132-.11-.132-.22c.066-.044.132-.11.198-.176l.903.903a6.325 6.325 0 0 1-.969.749c-.022-.044.132-.199.176-.265s-.176-.154-.132-.264m.55-5.263c-.11-.154.045-.176.199-.242.088-.044.198.022.198-.022s.044-.132.088-.154c.044-.022.11-.066.132-.11 0 .044.022.088.022.132a.502.502 0 0 0-.066.242c0 .066 0 .154.066 0 0-.022.022-.022.022-.044.044.154.044.286.044.419h-.946v-.022c.066-.11.308-.089.242-.199m.176-1.805s0 .022-.022.022c-.022.022-.132-.154-.132-.022s.044.176.132.198c.088.022.044.066.11.088.022 0 .066.022.088.044.11.242.176.484.242.749a.304.304 0 0 0-.088.066c-.044.044-.022.132-.066.198-.066.11-.088.176-.264.132-.11-.044-.022-.176 0-.286s.066-.088.066-.154-.22-.309-.33-.22c-.11.088-.088.176-.176.264-.044.044-.088.044-.155 0s-.088-.088-.066-.132c.022-.044-.154-.243-.22-.33a.46.46 0 0 0-.352-.177 3.461 3.461 0 0 0-.419-.572l.903-.903c.309.33.55.66.749 1.035m-1.52.616-.043.066c-.022.044-.133-.044-.155-.022-.022.022.155.243-.022.177-.176-.067-.066-.067-.066-.133s-.154-.11-.066-.154 0-.11.088-.132c.088-.022.066-.11-.044-.132-.11-.022-.088.242-.154.198-.066-.022-.132-.022-.198-.022l.308-.308a.199.199 0 0 0 .11.022c.044.176.155.308.243.44m-.353 4.47c.132.022.287.044.419.088.088.044.154.133.22.022.132-.198.22-.418.264-.66.044-.33-.022-.44-.066-.44-.044 0-.132.088-.22.088-.044 0-.044.088-.044.154s-.088.132-.11.088-.066-.022-.044.022-.176.022-.265-.022c-.132-.066.155-.066.287-.176.11-.088.22-.199.33-.309.066-.11.066-.242.176-.33s.286-.066.308-.198.044-.11.11-.088.683-.022.683-.22c0-.089-.132-.199-.264-.22-.088 0-.11-.177-.154-.265a1.642 1.642 0 0 0-.154-.264h.924a4.76 4.76 0 0 1-1.255 3.039l-.022-.022v-.088c.022-.177-.11-.463-.154-.419s0 .044-.132.242c-.044.066-.11.177-.198.177s-.088-.045-.22-.023a.948.948 0 0 1-.353 0 2.447 2.447 0 0 1-.594-.286c.022-.022.088.022.088-.044s.352.132.44.154m3.457 2.665-.902-.903a6.746 6.746 0 0 0 1.85-4.448h1.298a7.902 7.902 0 0 1-2.246 5.35m2.246-5.724h-1.299a6.556 6.556 0 0 0-.66-2.73l.022-.023c.088-.088-.419-.749-.507-.815s-.176-.176-.286-.286a3.927 3.927 0 0 1-.484-.572l.946-.947a7.878 7.878 0 0 1 2.268 5.373m-7.839-7.84a8.037 8.037 0 0 1 5.373 2.225l-.88.88c-.045-.022-.089-.044-.067-.088.044-.066-.066-.066-.088-.242a.698.698 0 0 0-.33-.418c-.11-.066-.176-.154-.286-.199-.11-.044-.33-.176-.44-.132a.782.782 0 0 1-.22.044 6.714 6.714 0 0 0-3.04-.792l-.022-1.277zm0 1.652c.947.022 1.85.264 2.709.683a.918.918 0 0 0 .176.396c.044.11.11.198.176.308.066.066.022.198.044.309 0 .044.044.088.066.132v.176c0 .022.088.022.154-.022s.11-.132.199-.11.198.198.264.308l-.419.418c-.044-.088-.088-.198-.066-.198s.066.022.088.022c.089 0-.066-.066-.066-.088-.066-.066-.066-.154-.154-.22s-.22-.022-.264-.11a1.207 1.207 0 0 0-.352-.397c-.022 0 .176.243.11.287s-.309-.154-.33-.11c-.023.044.264.154.352.242.044.044.132.176.22.286a5.124 5.124 0 0 0-2.907-1.035V3.96zm0 1.63a4.76 4.76 0 0 1 3.04 1.255l-.904.902a3.498 3.498 0 0 0-2.136-.88V5.589zm0 1.651a3.04 3.04 0 0 1 1.872.77l-.044.045-.044-.022c-.11-.044-.33.176-.286.198.044.022.132-.088.176-.066h.022l-.374.396c-.11.044-.22.132-.22.198v.022l-.133.132-.066-.066a1.117 1.117 0 0 0-.352-.198c.066-.044.088-.11.11-.198 0-.132-.044-.088-.11-.022s-.132.088-.176.154a.997.997 0 0 0-.353-.066V7.241h-.022zm-.154 1.63c.022.043 0 .088-.022.11-.044.044-.176-.11-.198.022-.044.132.088.066.088.088a.408.408 0 0 0 .264.154c.088 0 .22 0 .22.088 0 .044.11.044.133.088 0 .066.066.176.11.154s.11.022.132.066c.022.044 0 .066-.022.11-.066.066.066.044.088.176s-.11.044-.132.133c-.044.066-.088.11-.132.176-.022.022.022.066.044.044.022-.022.066-.088.132-.088s.132.242.198.264c.066.022.044.11.066.132s-.11 0-.088.044c.022.044.154.066.154.132-.022.066-.066.132-.154.132-.066 0-.176-.154-.176-.11s.044.176.11.176.22-.066.154.022-.044.22-.088.22-.066 0-.022.067c.022.066 0 .132-.044.198-.044.044-.154 0-.154-.022s.132-.022.132-.088-.066-.088-.198-.044c-.066.022-.088-.022-.132-.022s-.176.154-.176.176v.11a.372.372 0 0 1-.067.22c-.088.022-.154.022-.242.022-.352 0-.704-.154-.969-.374a.415.415 0 0 1 .177-.044c.066.022.088-.022.132-.044.044-.022.154.044.22 0s.22-.33.198-.397.154-.176.132-.198-.044.022-.044 0 .044-.022 0-.11-.11-.044-.154-.044c-.066-.044-.176-.066-.198-.044-.022.022-.088-.044-.11-.022-.022 0-.066.022-.066.066-.022.044.022.088.022.132-.022.088-.155.154-.155.22s-.066.022-.088.044 0 .066-.044.066-.11.11-.154.199c-.066-.088-.132-.199-.198-.287.044-.022.088-.044.11-.022.066.044.33-.418.286-.55s-.11-.044-.176-.022-.066-.044-.044-.066.308-.022.154-.11c-.066-.044-.242-.044-.22-.11s.11 0 .132 0c.11.044.176-.177.242-.177.11 0 .067-.22-.044-.154s-.154.044-.198.11-.154.154-.154.066c0-.044.242-.176.286-.242a.48.48 0 0 0 .11-.176c.023-.066.33-.11.397-.154.044-.044.088-.11.088-.176s-.088-.044-.11-.088.11 0 .11-.066-.11 0-.154-.044c0-.022 0-.022.022-.044.198-.067.33-.089.484-.089h.044m-.242-6.561v1.277a6.746 6.746 0 0 0-4.448 1.85l-.903-.903a7.94 7.94 0 0 1 5.351-2.224M6.208 4.797l.903.903a6.746 6.746 0 0 0-1.85 4.448H3.984a8.151 8.151 0 0 1 2.224-5.351\"},\"child\":[]}]})(props);\n};\nexport function SiUnity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.9288 4.2939 3.7997 2.1929c.1366.077.1415.2905 0 .3675l-4.515 2.6076a.4192.4192 0 0 1-.4246 0L7.274 6.8543c-.139-.0745-.1415-.293 0-.3675l3.7972-2.193V0L1.3758 5.5977V16.793l3.7177-2.1456v-4.3858c-.0025-.1565.1813-.2682.318-.1838l4.5148 2.6076a.4252.4252 0 0 1 .2136.3676v5.2127c.0025.1565-.1813.2682-.3179.1838l-3.7996-2.1929-3.7178 2.1457L12 24l9.6954-5.5977-3.7178-2.1457-3.7996 2.1929c-.1341.082-.3229-.0248-.3179-.1838V13.053c0-.1565.087-.2956.2136-.3676l4.5149-2.6076c.134-.082.3228.0224.3179.1838v4.3858l3.7177 2.1456V5.5977L12.9288 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.686 0H1.29A1.477 1.477 0 0 0 0 1.297V22.68C.085 23.43.711 24 1.484 24h21.014A1.5 1.5 0 0 0 24 22.498V1.484C24 .711 23.412.077 22.686 0zm-4.393 15.05c.52-.011 1.004.113 1.398.514.041.042.077.088.116.131.246.327.353.694.398 1.08.024.209.03.42.031.63.004.883.001 1.768.002 2.652 0 .203-.065.368-.252.468a.445.445 0 0 1-.658-.38c-.004-.214-.002-.428-.002-.641 0-.779.002-1.557-.004-2.336-.002-.282-.056-.556-.213-.799a.937.937 0 0 0-.713-.433c-.62-.071-1.131.133-1.527.617-.17.208-.238.452-.238.718v2.836a.46.46 0 0 1-.61.448c-.178-.056-.295-.232-.3-.453-.002-.086 0-.172 0-.258l-.002-4.131c0-.184.055-.342.215-.443a.43.43 0 0 1 .449-.022c.155.08.236.213.248.387.002.035 0 .072 0 .12.03-.024.053-.04.074-.06.388-.352.839-.583 1.363-.63.076-.007.15-.012.225-.014zm-7.75.151c.235.014.413.226.414.496v1.647c0 .424-.002.847.006 1.271.004.21.054.412.156.598.142.259.36.423.645.5.364.107.753.09 1.107-.047.371-.146.58-.434.649-.82.026-.146.032-.299.033-.448.003-.9.001-1.802.002-2.703 0-.25.12-.422.338-.48.052-.014.109-.01.164-.014.258.044.408.214.408.47-.001 1.024.012 2.047-.018 3.07-.02.696-.333 1.254-.95 1.613-.262.152-.55.234-.85.27-.386.054-.779.03-1.155-.071-.598-.174-1.044-.53-1.283-1.121-.126-.312-.161-.638-.162-.97-.003-.925-.001-1.85 0-2.776 0-.304.205-.502.496-.485z\"},\"child\":[]}]})(props);\n};\nexport function SiUnlicense (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12c0 6.627-5.373 12-12 12S0 18.627 0 12 5.373 0 12 0s12 5.373 12 12ZM12 2.449A9.551 9.551 0 0 0 2.449 12c0 2.09.672 4.024 1.811 5.597L17.597 4.26A9.508 9.508 0 0 0 12 2.449Zm0 19.102A9.551 9.551 0 0 0 21.551 12c0-2.09-.672-4.024-1.811-5.597L6.403 19.74A9.508 9.508 0 0 0 12 21.551Zm0-2.816a6.704 6.704 0 0 1-3.34-.885l2.32-2.32a3.674 3.674 0 0 0 4.388-2.06h3.206A6.737 6.737 0 0 1 12 18.734ZM5.265 12A6.735 6.735 0 0 1 15.34 6.15l-2.32 2.32a3.673 3.673 0 0 0-4.55 4.55l-2.32 2.32A6.704 6.704 0 0 1 5.265 12Zm13.28-1.592h-2.443L17.85 8.66c.309.54.545 1.128.695 1.748Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnocss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.8602 18.3991c0-3.0761 2.4938-5.5699 5.5699-5.5699S24 15.323 24 18.3991c0 3.0762-2.4938 5.5699-5.5699 5.5699s-5.5699-2.4937-5.5699-5.5699ZM12.8602 5.6009c0-3.0762 2.4938-5.57 5.5699-5.57S24 2.5248 24 5.601v5.0129a.557.557 0 0 1-.557.5569H13.4172a.557.557 0 0 1-.557-.5569v-5.013ZM11.1398 18.3991c0 3.0762-2.4937 5.5699-5.5699 5.5699C2.4937 23.969 0 21.4753 0 18.3991v-5.0129a.557.557 0 0 1 .557-.557h10.0258a.557.557 0 0 1 .557.557v5.0129Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnpkg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm4.322 2.977 4.37.002a.043.043 0 0 1 .044.04 9542.6 9542.6 0 0 1 0 9.165c0 .75.029 1.403.09 1.957.038.336.134.68.287 1.03.336.769.907 1.237 1.715 1.405.626.13 1.258.127 1.893-.008 1.166-.248 1.813-1.268 1.96-2.404.067-.513.1-1.186.1-2.018-.001-3.15-.001-6.188.002-9.119 0-.033.017-.05.049-.05h4.338a.033.033 0 0 1 .033.033v9.869c0 1.465-.17 2.918-.746 4.234-.777 1.775-2.323 2.836-4.195 3.211-1.7.341-3.39.338-5.07-.013-2.226-.465-3.808-1.828-4.46-4.03-.249-.846-.389-1.708-.416-2.586a65.217 65.217 0 0 1-.029-1.88c-.002-3.037-.002-5.97 0-8.801 0-.024.011-.037.035-.037z\"},\"child\":[]}]})(props);\n};\nexport function SiUnraid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.406 8.528h1.17v6.926h-1.17zM1.17 15.454H0V8.528h1.17zm4.534.828h1.17v2.645h-1.17zm-2.86-2.969h1.169v4.282h-1.17zm5.703 0h1.17v4.282h-1.17zM22.83 8.528H24v6.926h-1.17zm-4.534-.81h-1.17V5.073h1.17zm2.86 2.95h-1.169V6.406h1.17zm-5.72 0h-1.17V6.406h1.17z\"},\"child\":[]}]})(props);\n};\nexport function SiUnrealengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1012 12A12 12 0 0012 0zm0 23.52A11.52 11.52 0 1123.52 12 11.52 11.52 0 0112 23.52zm7.13-9.791c-.206.997-1.126 3.557-4.06 4.942l-1.179-1.325-1.988 2a7.338 7.338 0 01-5.804-2.978 2.859 2.859 0 00.65.123c.326.006.678-.114.678-.66v-5.394a.89.89 0 00-1.116-.89c-.92.212-1.656 2.509-1.656 2.509a7.304 7.304 0 012.528-5.597 7.408 7.408 0 013.73-1.721c-1.006.573-1.57 1.507-1.57 2.29 0 1.262.76 1.109.984.923v7.28a1.157 1.157 0 00.148.256 1.075 1.075 0 00.88.445c.76 0 1.747-.868 1.747-.868V9.172c0-.6-.452-1.324-.905-1.572 0 0 .838-.149 1.484.346a5.537 5.537 0 01.387-.425c1.508-1.48 2.929-1.902 4.112-2.112 0 0-2.151 1.69-2.151 3.96 0 1.687.043 5.801.043 5.801.799.771 1.986-.342 3.059-1.441Z\"},\"child\":[]}]})(props);\n};\nexport function SiUnsplash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.5 6.75V0h9v6.75h-9zm9 3.75H24V24H0V10.5h7.5v6.75h9V10.5z\"},\"child\":[]}]})(props);\n};\nexport function SiUntappd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 13.299l-5.824 8.133c-.298.416-.8.635-1.308.572-.578-.072-1.374-.289-2.195-.879S.392 19.849.139 19.323a1.402 1.402 0 0 1 .122-1.425l5.824-8.133a3.066 3.066 0 0 1 1.062-.927l1.146-.604c.23-.121.436-.283.608-.478.556-.631 2.049-2.284 4.696-4.957l.046-.212a.134.134 0 0 1 .096-.1l.146-.037a.135.135 0 0 0 .101-.141l-.015-.18a.13.13 0 0 1 .125-.142c.176-.005.518.046 1.001.393s.64.656.692.824a.13.13 0 0 1-.095.164l-.175.044a.133.133 0 0 0-.101.141l.012.15a.131.131 0 0 1-.063.123l-.186.112c-1.679 3.369-2.764 5.316-3.183 6.046a2.157 2.157 0 0 0-.257.73l-.205 1.281A3.074 3.074 0 0 1 11 13.3zm12.739 4.598l-5.824-8.133a3.066 3.066 0 0 0-1.062-.927l-1.146-.605a2.138 2.138 0 0 1-.608-.478 50.504 50.504 0 0 0-.587-.654.089.089 0 0 0-.142.018 97.261 97.261 0 0 1-1.745 3.223 1.42 1.42 0 0 0-.171.485 3.518 3.518 0 0 0 0 1.103l.01.064c.075.471.259.918.536 1.305l5.824 8.133c.296.413.79.635 1.294.574a4.759 4.759 0 0 0 2.209-.881 4.762 4.762 0 0 0 1.533-1.802 1.4 1.4 0 0 0-.122-1.425zM8.306 3.366l.175.044a.134.134 0 0 1 .101.141l-.012.15a.13.13 0 0 0 .063.123l.186.112c.311.623.599 1.194.869 1.721.026.051.091.06.129.019.437-.469.964-1.025 1.585-1.668a.137.137 0 0 0 .003-.19c-.315-.322-.645-.659-1.002-1.02l-.046-.212a.13.13 0 0 0-.096-.099l-.146-.037a.135.135 0 0 1-.101-.141l.015-.18a.13.13 0 0 0-.123-.142c-.175-.005-.518.045-1.002.393-.483.347-.64.656-.692.824a.13.13 0 0 0 .095.164z\"},\"child\":[]}]})(props);\n};\nexport function SiUpcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.1155 12.9964a1.8845 1.8845 0 110 3.769H8.6643V11.87h.888v4.0072h12.5849a1.0078 1.0078 0 00.9964-.9964 1.0317 1.0317 0 00-1.0397-.9964H10.397v-.888zm-8.6859-5.7617H8.6643v1.9927h.888V8.1011h3.899a1.0078 1.0078 0 01.9964.9964 1.0653 1.0653 0 01-1.018 1.0397H1.8845a1.8845 1.8845 0 100 3.769h5.8917v-.8881H1.8845a.9964.9964 0 010-1.9928h11.5668a1.8999 1.8999 0 001.8844-1.8845 1.9375 1.9375 0 00-1.9061-1.9061z\"},\"child\":[]}]})(props);\n};\nexport function SiUphold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.2743 22.3319a7.8524 7.8522 0 0 1-2.2207.3336h-.1067a7.7804 7.7802 0 0 1-2.2367-.339.668.668 0 1 0-.379 1.2812A9.267 9.2668 0 0 0 11.9469 24h.1067a9.155 9.1547 0 0 0 2.5997-.3897.6673.6673 0 1 0-.379-1.2784zm5.8266-16.4224V5.8694a8.5224 8.5221 0 0 0-16.2066.0267v.016c-.7527 2.2126-.4805 5.1752.734 7.935 1.6601 3.774 4.6735 6.4056 7.3426 6.4056h.0747c2.669 0 5.6825-2.6236 7.3426-6.4056 1.1985-2.7544 1.4707-5.7224.7127-7.9377zM16.1854 2.68c-1.3506-.0508-2.8186.5338-4.1852 1.676-1.3825-1.1422-2.8505-1.7268-4.201-1.676a7.2305 7.2303 0 0 1 8.3862 0zm-3.0908 15.9953a2.597 2.597 0 0 1-2.2047 0c-2.2767-1.0489-2.7358-5.266-1.0062-9.2a11.9788 11.9785 0 0 1 2.1165-3.2776 11.888 11.8878 0 0 1 2.1113 3.2776c1.7189 3.934 1.2598 8.1511-1.017 9.2zm-7.26-5.3567c-1.089-2.4715-1.3345-5.071-.6832-6.9901.347-1.0062.9315-1.7215 1.6868-2.0712 1.1824-.5471 2.7145-.1601 4.1825 1.0276a13.2573 13.257 0 0 0-2.3568 3.6512c-1.169 2.669-1.428 5.3887-.8888 7.5053a12.6594 12.6591 0 0 1-1.9404-3.1228Zm12.3152 0a12.7262 12.7258 0 0 1-1.9404 3.1254c.5338-2.1192.2669-4.8522-.8888-7.5079a13.2573 13.257 0 0 0-2.3568-3.6512c1.468-1.1877 2.9973-1.5747 4.1798-1.0276.758.3497 1.3345 1.0676 1.6895 2.0712.6592 1.9057.403 4.5186-.694 6.9901z\"},\"child\":[]}]})(props);\n};\nexport function SiUplabs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.804 19.205c-.112-.111-.186-.26-.297-.372-.889-.894-2.259-1.34-4.11-1.34-1.816 0-3.186.446-4.075 1.34-.111.112-.185.223-.296.372zm2.88-.044V5.164h2.959V6.9c.406-.702.887-1.219 1.479-1.588a4.057 4.057 0 0 1 2.034-.517c1.516 0 2.7.517 3.55 1.514.85.997 1.294 2.4 1.294 4.173 0 1.736-.444 3.102-1.294 4.136-.85 1.034-1.997 1.551-3.402 1.551-.851 0-1.554-.147-2.145-.48-.592-.295-1.11-.812-1.516-1.477.037.259.073.554.073.886 0 .296.037.665.037 1.071v2.955h-3.069zm2.81-8.679c0 .96.222 1.699.703 2.253.481.517 1.147.812 1.96.812.85 0 1.516-.258 1.96-.812.48-.517.703-1.293.703-2.253 0-.96-.222-1.699-.703-2.253-.48-.554-1.146-.812-1.997-.812-.813 0-1.479.295-1.96.85-.444.48-.665 1.255-.665 2.215zM7.73 5.201v5.577c0 .923-.185 1.588-.555 1.994-.37.406-.961.628-1.775.628-.813 0-1.405-.185-1.775-.591-.37-.407-.555-1.071-.555-2.031V5.2H0v5.577c0 1.661.333 2.88.998 3.767.111.11.185.258.296.369.888.886 2.256 1.33 4.105 1.33 1.812 0 3.18-.444 4.068-1.33.11-.111.185-.222.296-.37.665-.886.998-2.142.998-3.766V5.2Z\"},\"child\":[]}]})(props);\n};\nexport function SiUpptime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.86 15.68c1.926 0 3.489 1.526 3.489 3.406 0 1.88-1.563 3.407-3.488 3.407-1.926 0-3.489-1.526-3.489-3.407 0-1.88 1.563-3.407 3.489-3.407ZM24 14.884 12 1.507 0 14.885l3.158 3.52L12 8.548l8.842 9.857L24 14.885Z\"},\"child\":[]}]})(props);\n};\nexport function SiUps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.668 14.544l-.028-5.226c.138-.055.387-.111.608-.111.995 0 1.41.774 1.41 2.682 0 1.853-.47 2.765-1.438 2.765-.22 0-.441-.055-.552-.11zM3.124 7.438c4.203-3.843 9.29-4.866 14.018-4.866 1.3 0 2.544.083 3.76.194h-.028v11.253c0 2.184-.774 3.926-2.295 5.171-1.355 1.134-5.447 2.959-6.581 3.456-1.161-.525-5.253-2.378-6.581-3.456-1.493-1.244-2.295-3.014-2.295-5.171V7.438zm12.664 2.599c.028.912.276 1.576 1.687 2.406.747.442 1.051.747 1.051 1.272 0 .581-.387.94-1.023.94-.553 0-1.189-.304-1.631-.691v1.576c.553.304 1.217.525 1.88.525 1.687 0 2.433-1.189 2.461-2.267.028-.995-.249-1.742-1.659-2.571-.608-.387-1.134-.636-1.106-1.244 0-.581.525-.802.995-.802.581 0 1.161.332 1.521.691V8.378c-.304-.221-.94-.581-1.88-.553-1.135.028-2.296.829-2.296 2.212zm-5.834 9.484h1.714l-.028-3.594c.166.028.415.083.774.083 1.908 0 2.986-1.687 2.986-4.175 0-2.461-1.106-4.009-3.152-4.009-.94 0-1.687.221-2.295.608v11.087zm-5.945-6.166c0 1.797.829 2.71 2.516 2.71 1.051 0 1.908-.249 2.571-.691V7.991H7.41v6.387c-.194.138-.47.221-.802.221-.774 0-.885-.719-.885-1.189V7.991H4.009v5.364zM22.12 2.295v11.723c0 2.516-.94 4.645-2.765 6.111-1.549 1.3-6.332 3.429-7.355 3.871-1.023-.442-5.806-2.571-7.355-3.843-1.797-1.465-2.765-3.594-2.765-6.111V2.295C4.756.747 8.074 0 12 0s7.244.747 10.12 2.295zm-.304.221c-2.71-1.465-6-2.184-9.788-2.184s-7.079.746-9.788 2.184v11.502c0 2.433.912 4.452 2.627 5.862 1.576 1.3 6.581 3.484 7.161 3.76.581-.249 5.585-2.433 7.161-3.733 1.714-1.41 2.627-3.429 2.627-5.862V2.516zm-2.433 20.295c0 .47-.387.829-.829.829a.831.831 0 0 1-.829-.829c0-.47.387-.829.829-.829.441 0 .801.359.829.829zm-.166 0a.679.679 0 0 0-.664-.691c-.359 0-.664.332-.664.691 0 .359.304.664.664.664a.673.673 0 0 0 .664-.664zm-.553.055c.028.055.304.442.304.442h-.221s-.276-.387-.276-.415h-.028v.415h-.194v-.995l.304-.028c.249 0 .332.166.332.304s-.083.25-.221.277zm.027-.276c0-.055 0-.138-.166-.138h-.083v.304h.028c.194 0 .221-.083.221-.166z\"},\"child\":[]}]})(props);\n};\nexport function SiUpstash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.8027 0C11.193 0 8.583.9952 6.5918 2.9863c-3.9823 3.9823-3.9823 10.4396 0 14.4219 1.9911 1.9911 5.2198 1.9911 7.211 0 1.991-1.9911 1.991-5.2198 0-7.211L12 12c.9956.9956.9956 2.6098 0 3.6055-.9956.9955-2.6099.9955-3.6055 0-2.9866-2.9868-2.9866-7.8297 0-10.8164 2.9868-2.9868 7.8297-2.9868 10.8164 0l1.8028-1.8028C19.0225.9952 16.4125 0 13.8027 0zM12 12c-.9956-.9956-.9956-2.6098 0-3.6055.9956-.9955 2.6098-.9955 3.6055 0 2.9867 2.9868 2.9867 7.8297 0 10.8164-2.9867 2.9868-7.8297 2.9868-10.8164 0l-1.8028 1.8028c3.9823 3.9822 10.4396 3.9822 14.4219 0 3.9823-3.9824 3.9823-10.4396 0-14.4219-.9956-.9956-2.3006-1.4922-3.6055-1.4922-1.3048 0-2.6099.4966-3.6054 1.4922-1.9912 1.9912-1.9912 5.2198 0 7.211z\"},\"child\":[]}]})(props);\n};\nexport function SiUptimekuma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.759.955c-4.071 0-7.93 2.265-10.06 5.774l-.16.263-.116.284c-1.81 4.44-2.188 9.118.621 12.459 2.67 3.174 6.221 3.328 9.477 3.308 3.256-.02 6.323-.482 8.995-2.032C22.75 19.714 24 16.917 24 14.53c0-2.388-.724-4.698-1.882-7.343l-.112-.257-.148-.238C19.683 3.2 15.83.955 11.758.955Zm0 3.868c2.919 0 5.19 1.305 6.816 3.914 2.076 4.747 2.076 7.724 0 8.929-3.116 1.808-11.234 2.359-13.57-.42-1.558-1.853-1.558-4.69 0-8.51 1.584-2.608 3.835-3.913 6.754-3.913z\"},\"child\":[]}]})(props);\n};\nexport function SiUptobox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.803 9.948c0 .037.17.49.37.992l.377.927-.36.917c-.585 1.504-.595 1.362.095 1.333.568-.028.596-.038.69-.33.161-.464.237-.473.407-.048l.152.397h.747c.416 0 .737-.028.718-.075-.274-.558-.832-2.062-.832-2.241 0-.067.151-.511.331-.984.18-.463.331-.88.331-.908 0-.028-.236-.047-.539-.028-.52.028-.539.038-.643.36-.132.397-.246.387-.388-.03-.104-.302-.104-.302-.775-.33-.378-.02-.68.01-.68.047zm-3.243.103c-.142.152-.16.435-.16 1.977 0 1.617.018 1.815.17 1.947.141.133.396.16 1.418.16 1.626 0 1.531.124 1.531-2.126 0-2.26.095-2.128-1.55-2.128-1.097 0-1.277.02-1.41.17zm1.541 2.014c0 .899-.019 1.04-.15 1.012-.077-.02-.143-.057-.143-.104.01-.038.01-.492.01-1.012 0-.775.028-.945.141-.945.114 0 .142.18.142 1.05zm-5.2-.056v2.127h1.408c1.712 0 1.665.029 1.646-1.125-.003-.173 0-.562-.052-.741-.046-.16-.124-.1-.125-.254-.002-.132.08-.131.12-.258.05-.158.037-.455.037-.62.01-.964-.009-1.06-.188-1.153-.104-.057-.747-.104-1.513-.104H13.9zm1.683-.653c-.038.369-.303.369-.34 0-.039-.274.15-.491.292-.35.048.048.067.199.048.35zm.02 1.41c0 .264-.039.33-.19.33-.142 0-.19-.066-.19-.265 0-.302.066-.397.256-.397.075 0 .123.114.123.33zm-4.947-2.715c-.142.152-.16.435-.16 1.977 0 1.617.018 1.815.17 1.947.141.133.387.16 1.361.16 1.021 0 1.201-.018 1.333-.17.142-.15.161-.434.161-1.975 0-1.617-.019-1.816-.17-1.948-.142-.132-.388-.16-1.362-.16-1.02 0-1.2.018-1.333.17zm1.541 2.014c0 .965-.009 1.03-.189 1.03s-.189-.065-.189-1.03c0-.737.038-1.05.123-1.078.227-.075.255.048.255 1.078zm-5.106-2.042a.145.145 0 0 1-.142.142c-.113 0-.14.123-.14.52s.027.52.14.52c.123 0 .142.217.142 1.352 0 .927.038 1.39.114 1.466.075.075.51.113 1.324.113 1.626 0 1.607.02 1.57-1.494l-.03-1.106H8.748l-.028.775c-.02.615-.057.785-.16.785-.115 0-.143-.18-.143-.945v-.937l.832-.028.823-.028v-.946c-.56-.017-1.146-.04-1.694-.061-.057-.02-.074-.13-.09-.158-.114-.208-1.195-.17-1.195.03zm-3.687 1.986v2.137l.67-.03.672-.027.02-.757.01-.756.708-.028c.388-.02.756-.076.822-.133.17-.132.17-2.26.01-2.42-.076-.076-.548-.114-1.513-.114h-1.4zm1.74-.936c.085.217-.02.51-.18.51-.18 0-.274-.36-.142-.52.151-.18.246-.18.321.01zm-5.144.784c0 2.45-.114 2.28 1.626 2.28 1.588 0 1.494.15 1.494-2.346V9.87l-.68.03-.682.027-.01 1.485c0 1.03-.037 1.522-.113 1.598-.18.18-.217-.02-.236-1.617l-.028-1.466-.68-.028-.69-.028z\"},\"child\":[]}]})(props);\n};\nexport function SiUpwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.561 13.158c-1.102 0-2.135-.467-3.074-1.227l.228-1.076.008-.042c.207-1.143.849-3.06 2.839-3.06 1.492 0 2.703 1.212 2.703 2.703-.001 1.489-1.212 2.702-2.704 2.702zm0-8.14c-2.539 0-4.51 1.649-5.31 4.366-1.22-1.834-2.148-4.036-2.687-5.892H7.828v7.112c-.002 1.406-1.141 2.546-2.547 2.548-1.405-.002-2.543-1.143-2.545-2.548V3.492H0v7.112c0 2.914 2.37 5.303 5.281 5.303 2.913 0 5.283-2.389 5.283-5.303v-1.19c.529 1.107 1.182 2.229 1.974 3.221l-1.673 7.873h2.797l1.213-5.71c1.063.679 2.285 1.109 3.686 1.109 3 0 5.439-2.452 5.439-5.45 0-3-2.439-5.439-5.439-5.439z\"},\"child\":[]}]})(props);\n};\nexport function SiUsps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.145 4.577L0 19.423h20.855L24 4.577H3.145zm-.157 3.806h9.436c.157 0 5.064 0 5.159.975H9.09l1.321 4.026c1.51-.723 5.222-2.233 7.455-2.328.944-.031 1.321.126 1.132.252-.126.063-1.038.189-1.761.377-1.258.315-1.321.315-2.642.755-1.478.503-2.705 1.069-4.53 1.919L.723 18.983l2.265-10.6zm16.483 1.698c-.535-.094-2.768.063-3.334.063-.126 0-.472.031-.472-.063 0-.063.126-.063.377-.094s1.006-.157 1.258-.283c.063-.063.22-.157.315-.252.031-.063.063-.094.157-.094h1.164c.755 0 1.195.094 1.132.723-.031.315-.472 1.132-.629 1.384-.063.094-.189.189-.157 0 .126-.503.597-1.321.189-1.384zm.88 8.902H2.076s17.363-6.794 17.552-6.92c0 0 1.541-2.076.629-2.925-.283-.283-.692-.283-2.265-.283 0 0-.063-.598-2.485-1.164-.283-.063-11.858-2.517-11.858-2.517h19.628l-2.926 13.809zm2.925-.695c0-.195-.114-.293-.358-.293h-.406v1.008h.146v-.439h.179l.276.455h.179L23 18.564c.162-.016.276-.097.276-.276zm-.455.146h-.163v-.341h.211c.114 0 .228.016.228.163 0 .162-.13.178-.276.178zm.016-.829a.868.868 0 0 0-.894.878c0 .504.406.894.894.894s.894-.39.894-.894a.878.878 0 0 0-.894-.878zm0 1.642c-.423 0-.731-.325-.731-.764 0-.423.325-.748.731-.748.406 0 .731.325.731.748 0 .439-.325.764-.731.764z\"},\"child\":[]}]})(props);\n};\nexport function SiUtorrent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.684 23.94a12.013 12.013 0 0 0 9.599-7.79c-.118.044-.26.096-.432.147-2 .59-3.404-.466-3.687-.649-.283-.18-.587-.48-.643-.464-.183 1.132-1.218 2.706-3.58 3.42-1.295.391-2.687.4-3.681-.157l.328.822c.13.328.351.866.488 1.192 0 0 .858 2.044 1.608 3.48M2.723 7.153l3.54-.66c.323-.059.68.124.794.407l2.432 6.07c.332.633.399.773.615 1.043 0 0 1.68 2.398 4.24 1.812 1.726-.394 2.532-1.69 2.587-2.612.057-.296-.032-.669-.185-1.016L13.832 5.61c-.117-.266.022-.527.306-.581l2.953-.55a.69.69 0 0 1 .706.376l3.227 6.91c.13.276.394.712.588.966 0 0 .671.964 1.747.78.266 0 .569-.143.569-.143.047-.43.072-.866.072-1.31 0-6.627-5.373-12-12.002-12C5.372.06 0 5.433 0 12.06c0 5.319 3.46 9.827 8.252 11.402a24.768 24.768 0 0 1-.919-2.121L2.298 7.808c-.111-.297.083-.59.425-.654\"},\"child\":[]}]})(props);\n};\nexport function SiUv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 .1058.0504 11.9496.0403 9.5597c.0055 1.3199 1.08 2.3854 2.4 2.3798l9.5596-.0403 5.9749-.0252.6075-.0026c1.316-.0056 2.3799-1.0963 2.3799-2.4123h1.0946v2.3894L24 23.9042 23.8992.005 12.9056.0513l.0463 9.5245v5.9637h-1.9583L11.04 9.584 10.9936.0594Z\"},\"child\":[]}]})(props);\n};\nexport function SiV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.583 23.4965c.0673.1924-.0435.3484-.2472.3484h-6.262c-.4075 0-.8502-.3113-.9881-.6947L.0426.7837C-.105.3925.149.1152.5276.1599l6.393.6158c.4056.0391.8441.383.9787.7675l7.6837 21.9533zM23.4736.1599l-6.393.6159c-.4055.0391-.8436.3832-.9775.7678l-3.8275 10.9895 3.6784 10.5098L23.9586.7837c.1378-.3834-.0795-.663-.485-.6238z\"},\"child\":[]}]})(props);\n};\nexport function SiV2Ex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.671 1.933h13.821a1.342 1.342 0 0 1 .98.425l8.166 8.725a1.342 1.342 0 0 1 0 1.834l-8.166 8.724a1.342 1.342 0 0 1-.98.426H.673A.671.671 0 0 1 0 21.395v-6.878h13.19l2.276-2.28a.336.336 0 0 0 0-.474l-2.276-2.28H0V2.604a.671.671 0 0 1 .671-.671Z\"},\"child\":[]}]})(props);\n};\nexport function SiV8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.832 6c0-.161.008-.322.023-.479.019-.207.07-.401.112-.599l-.694-1.377H0l2.182 3.818h1.527l2.097 3.98a6.534 6.534 0 0 1 1.727-2.745A5.123 5.123 0 0 1 6.832 6zM10.365 19.663L12 22.637l1.637-2.975c-.535.138-1.079.234-1.637.234s-1.101-.096-1.635-.233zM17.728 3.545l-.717 1.258c.056.238.112.476.134.726a5.148 5.148 0 0 1-.677 3.07 6.565 6.565 0 0 1 1.727 2.746l2.097-3.981h1.527L24 3.545h-6.272z M17.846 12.007a6 6 0 0 0-2.073-3.31A4.64 4.64 0 0 0 12 1.363 4.635 4.635 0 0 0 7.363 6a4.62 4.62 0 0 0 .865 2.697A5.988 5.988 0 0 0 6 13.363a6.01 6.01 0 0 0 3.814 5.592 6.02 6.02 0 0 0 4.375-.003 6.006 6.006 0 0 0 3.657-6.945zM12 4.227c1.129 0 2.046.917 2.046 2.045a2.046 2.046 0 0 1-4.092 0c0-1.128.918-2.045 2.046-2.045zm0 11.456a2.32 2.32 0 0 1 0-4.637c1.282 0 2.318 1.037 2.318 2.318S13.282 15.683 12 15.683z\"},\"child\":[]}]})(props);\n};\nexport function SiVaadin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.166.521C.506.521 0 1.055 0 1.715v1.97c0 2.316 1.054 3.473 3.502 3.473h5.43c1.623 0 1.783.685 1.783 1.35 0 .068.004.13.012.193a1.268 1.268 0 0 0 2.531-.004c.007-.062.012-.121.012-.19 0-.664.16-1.349 1.783-1.349h5.43C22.93 7.158 24 6.001 24 3.686V1.715c0-.66-.524-1.194-1.184-1.194-.66 0-1.189.534-1.189 1.194l-.004.685c0 .746-.476 1.27-1.594 1.27h-5.322c-2.422 0-2.608 1.796-2.687 2.748h-.055c-.08-.952-.266-2.748-2.688-2.748H3.955c-1.118 0-1.629-.544-1.629-1.29v-.665c0-.66-.5-1.194-1.16-1.194zm5.875 10.553a1.586 1.586 0 0 0-1.375 2.371c1.657 3.06 3.308 6.13 4.967 9.184a1.415 1.415 0 0 0 2.586.02l.033-.06 4.945-9.142a1.587 1.587 0 0 0-1.377-2.373c-.702 0-1.179.345-1.502 1.082l-3.386 6.313-3.383-6.305c-.326-.745-.805-1.09-1.508-1.09Z\"},\"child\":[]}]})(props);\n};\nexport function SiVagrant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.556 0L.392 1.846V4.11l7.124 17.3L11.998 24l4.523-2.611 7.083-17.345V1.848l.004-.002L20.44 0l-5.274 3.087v2.111l-3.168 7.384-3.164-7.384V3.109l-.017-.008.017-.01z\"},\"child\":[]}]})(props);\n};\nexport function SiVala (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.3836 23.9993-.5152-21.859q-2.2504.8435-3.5153 2.64-1.2509 1.7971-1.2509 4.4689 0 .6092.0629 1.0002.0776.3748.156.6092.0783.2188.1411.3438.0777.1249.0777.2188-.828 0-1.4682-.156-.641-.1723-1.0786-.5316-.4222-.3585-.6565-.9529-.2188-.593-.2188-1.4682 0-1.0624.4524-2.0937.4687-1.0306 1.2657-1.9532.8125-.9211 1.891-1.7025 1.0942-.7815 2.328-1.344Q8.3044.6409 9.6484.3289 11.0079 0 12.3519 0q.3593 0 .6565.0155.312.0156.624.0466l.2816 19.687L20.6481.1554h2.2341L13.9924 24H9.3829Z\"},\"child\":[]}]})(props);\n};\nexport function SiValorant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.792 2.152a.252.252 0 0 0-.098.083c-3.384 4.23-6.769 8.46-10.15 12.69-.107.093-.025.288.119.265 2.439.003 4.877 0 7.316.001a.66.66 0 0 0 .552-.25c.774-.967 1.55-1.934 2.324-2.903a.72.72 0 0 0 .144-.49c-.002-3.077 0-6.153-.003-9.23.016-.11-.1-.206-.204-.167zM.077 2.166c-.077.038-.074.132-.076.205.002 3.074.001 6.15.001 9.225a.679.679 0 0 0 .158.463l7.64 9.55c.12.152.308.25.505.247 2.455 0 4.91.003 7.365 0 .142.02.222-.174.116-.265C10.661 15.176 5.526 8.766.4 2.35c-.08-.094-.174-.272-.322-.184z\"},\"child\":[]}]})(props);\n};\nexport function SiValve (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 8.579v6.842h24V8.58zm1.8 1.415h.793l.776 3.044.76-3.044h.836l-1.227 4.029H3zm5.488 0h1.084l1.145 4.034h-.814l-.27-1.007H7.228s-.21.81-.254.99c-.242.017-.83 0-.83 0zm4.184 0h.792v3.352h1.69v.677h-2.482zm3.45 0h.816l.776 3.005.754-3.005h.815l-1.222 4.034h-.716zm4.828 0h1.69v.522h-1.084v.584h.99v.523h-.99v.6h1.084v.523h-1.69zm-11.902.68l-.426 1.702h.89z\"},\"child\":[]}]})(props);\n};\nexport function SiVapor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.75 13.908v1.56L12 24 1.25 15.468v-1.56L12 22.44l10.75-8.532zM12 17.267L1.25 8.824 12 0l10.75 8.824L12 17.267zm.356-4.635a3.193 3.193 0 0 0 3.193-3.193 3.185 3.185 0 0 0-3.029-3.176l.001-.016-4.514-.427 1.205 4.102a3.184 3.184 0 0 0 3.144 2.71zM12 20.269L1.25 11.737v1.533L12 21.802l10.75-8.532v-1.533L12 20.269zm0-2.366L1.25 9.46v1.64L12 19.63l10.75-8.532V9.46L12 17.903z\"},\"child\":[]}]})(props);\n};\nexport function SiVault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0l11.955 24L24 0zm13.366 4.827h1.393v1.38h-1.393zm-2.77 5.569H9.22V8.993h1.389zm0-2.087H9.22V6.906h1.389zm0-2.086H9.22V4.819h1.389zm2.087 6.263h-1.377V11.08h1.388zm0-2.09h-1.377V8.993h1.388zm0-2.087h-1.377V6.906h1.388zm0-2.086h-1.377V4.819h1.388zm.683.683h1.393v1.389h-1.393zm0 3.475V8.993h1.389v1.388Z\"},\"child\":[]}]})(props);\n};\nexport function SiVaultwarden (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5405.4477c-.143.2381-.3334.5239-.4382.6286-.1715.181-.181.1715-.7334-.3715-.6667-.6666-.7715-.6476-1.086.2096-.1332.3524-.295.6-.4285.6762-.1905.0953-.2856.0667-.7619-.2761-.8001-.562-.9429-.4763-1.0954.619-.038.2763-.1143.4763-.2095.5144-.0762.0286-.4-.0667-.7049-.219-.781-.3716-.8953-.2858-.9048.619 0 .3715-.0476.7238-.0952.7715-.0667.0667-.3144.0476-.781-.0666-.9144-.2191-.9716-.162-.7525.7524.1142.4667.1333.7144.0666.781-.0476.0477-.4.0953-.7715.0953-.9143.0095-.9906.1238-.6095.9049.3714.781.2762 1.0096-.4477 1.1049-1.0669.1523-1.1335.2857-.543 1.0762.4763.6286.4477.724-.3429 1.0096-.8476.324-.8667.4286-.2 1.0954.543.5524.5525.562.3715.7334-.1047.1048-.3905.2953-.6286.4382-.5906.3428-.5906.5714 0 .9143.2381.143.5239.3333.6286.4381.181.1715.1715.181-.3715.7335-.6667.6667-.6476.7715.2096 1.0859.3525.1332.6.2951.6762.4285.0953.1905.0667.2857-.2761.762-.562.8-.4763.9428.6191 1.0953.2762.038.4762.1143.5143.2095.0286.0763-.0666.4-.219.705-.3716.7809-.2858.8953.619.9048.3715 0 .724.0476.7715.0951.0667.0667.0476.3144-.0666.7812-.219.9143-.162.9715.7524.7524.4667-.1143.7144-.1334.7811-.0667.0476.0476.0952.4.0952.7715.0095.9144.1239.9906.9049.6096.781-.3715 1.0096-.2762 1.1049.4476.1524 1.067.2857 1.1335 1.0762.543.6286-.4763.724-.4477 1.0097.343.3238.8476.419.8667 1.1049.1903.6666-.6476.6095-.6571 1.1619.2763.343.581.5715.581.9145 0 .5523-.9334.4952-.924 1.1619-.2763.6859.6764.781.6573 1.0954-.2.1333-.3523.2952-.6.4286-.6762.1905-.0953.2858-.0667.762.2762.8.562.943.4762 1.0953-.619.0381-.2763.1143-.4763.2096-.5144.0762-.0286.4.0666.7048.219.781.3715.8954.2857.905-.619 0-.3715.0474-.724.0951-.7716.0667-.0667.3143-.0476.781.0667.9145.219.9716.162.7525-.7524-.1143-.4668-.1333-.7145-.0667-.7812.0477-.0475.4-.0951.7715-.0951.9144-.0095.9906-.1238.6097-.905-.3715-.7809-.2763-1.0096.4476-1.1048 1.0667-.1523 1.1334-.2857.543-1.0762-.4763-.6287-.4478-.724.3428-1.0097.8477-.3238.8668-.419.1905-1.105-.6477-.6666-.6572-.6095.2762-1.1618.2953-.181.4382-.324.4382-.4573 0-.1334-.143-.2763-.4382-.4571-.9334-.5525-.924-.4954-.2762-1.1621.6763-.6858.6572-.781-.2-1.0953-.3524-.1334-.6001-.2953-.6763-.4287-.0952-.1905-.0667-.2857.2763-.7619.562-.8001.4761-.9429-.6192-1.0954-.2762-.038-.4762-.1143-.5143-.2096-.0286-.0762.0667-.4.219-.7048.3715-.781.2858-.8953-.619-.905-.3715 0-.7239-.0474-.7716-.0951-.0666-.0666-.0476-.3143.0667-.781.219-.9143.162-.9715-.7524-.7524-.4668.1142-.7144.1333-.781.0666-.0478-.0477-.0953-.4-.0953-.7715-.0095-.9144-.1238-.9906-.905-.6096-.7809.3714-1.0095.2763-1.1047-.4477-.1524-1.0667-.2858-1.1334-1.0763-.543-.6287.4764-.724.4478-1.0096-.3428-.324-.8476-.4287-.8667-1.0954-.2-.5525.543-.562.5525-.7335.3715-.1047-.1048-.2952-.3905-.438-.6286C12.2739.1429 12.1309 0 11.9976 0c-.1333 0-.2761.1429-.4571.4477zm.9334 1.9335c.1048.1048.1905.3143.1905.4762 0 .162-.0857.3715-.1905.4763-.4096.4095-1.143.1048-1.143-.4763 0-.362.3048-.6667.6667-.6667.162 0 .3715.0857.4763.1905zM11.007 4.0004c.924.8953 1.0573.8953 1.9812 0l.6858-.6667.6667.1905c.762.2095 1.9431.7143 1.9431.8382 0 .038-.8953 2.6287-1.9907 5.7434-1.0953 3.1146-2.0478 5.8386-2.105 6.0577-.0666.2286-.1524.4096-.1905.4096-.038 0-.1143-.162-.162-.3524-.057-.2-1-2.9432-2.1049-6.1054-1.1143-3.1622-2.0192-5.772-2.0192-5.791 0-.1143 2.1145-.9334 2.5622-.9811.0285-.0095.3524.2857.7333.6572zm-3.3432 9.601c1.3526 3.7908 2.4288 6.9054 2.4003 6.934-.0667.0762-1.0763-.219-1.5048-.4477-.343-.1715-.3525-.1905-.4763-1-.0763-.524-.1906-.905-.3049-1.0573-.1904-.2381-.219-.2381-.8667-.1715-1.4287.162-1.3715.181-1.9335-.5714-.6096-.8096-1.181-1.9431-1.4573-2.9051-.162-.5334-.219-1.0668-.2571-2.0954l-.0477-1.3812.8572-.4571c1.1525-.6 1.181-.7049.5905-1.8764-.4285-.8477-.4285-.8.124-1.6002.1523-.2286.3142-.381.3523-.3334.038.0381 1.1716 3.1717 2.524 6.9627Zm11.8203-6.2101.2382.4-.3906.7715c-.5905 1.181-.562 1.2858.581 1.8859l.8478.4476v1.0763c0 1.2478-.1715 2.2193-.581 3.2575-.3144.7905-.943 1.8383-1.448 2.4288l-.3237.381-.7524-.1143c-.4096-.0666-.8668-.1142-1.0096-.1142-.4 0-.6002.3523-.7335 1.2858l-.1238.8286-.5048.219c-.581.2573-1.2859.4668-1.3526.3906-.038-.038 4.01-11.5249 4.8482-13.7728l.0952-.2381.1905.2381c.1048.1238.2953.4096.419.6287zM3.7586 8.715c.4478.4382.181 1.0954-.4475 1.0954-.4 0-.6478-.2381-.6478-.6286 0-.6286.6573-.9144 1.0954-.4668zm17.221-.1332c.2761.1523.3523.2666.3523.5999 0 .381-.2477.6287-.6381.6287-.6382 0-.9144-.6477-.4573-1.0954.2572-.2666.4287-.2952.743-.1332zM7.2352 19.1543c.3429.8191-.8287 1.3239-1.2097.5144-.1429-.2953-.1429-.343.0095-.5716.3239-.4952.9906-.4666 1.2.0572zm10.563-.2572c.238.1905.3047.524.1523.8192-.3905.7619-1.524.219-1.1905-.562.1713-.4286.6667-.5524 1.0382-.2572z\"},\"child\":[]}]})(props);\n};\nexport function SiVauxhall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.002 24C5.375 24.001.002 18.63 0 12.002-.001 5.375 5.37.002 11.998 0s12 5.37 12.002 11.998c.007 6.621-5.375 12.007-11.998 12.002zM15.8 5.371c.338.022.658.038.978.066a4.12 4.12 0 0 1 1.496.386.774.774 0 0 1 .413.414c.05.15.074.306.076.464 0 .14.034.213.185.25.351.091.699.204 1.044.314.395.096.694.42.759.822.053.28.062.568.028.853a6.958 6.958 0 0 1-.238.962c0 .053-.066.094-.1.138a.872.872 0 0 1-.132-.132c-.054-.09-.091-.194-.141-.288a.73.73 0 0 0-.612-.417 8.532 8.532 0 0 0-2.02.038.84.84 0 0 0-.206.1c.063.04.122.085.185.12a.496.496 0 0 0 .135.03l.815.154a.79.79 0 0 1 .627.477c.072.172.035.241-.144.263h-.213c-.562.044-1.123.072-1.681.135-.41.044-.561.244-.574.658-.029.911.023 1.823.154 2.725a2.565 2.565 0 0 0 1.326 2.023 29.746 29.746 0 0 0 3.214 1.567c.107.047.166.032.217-.075.16-.313.332-.646.482-.975.5-1.063.818-2.203.941-3.37a10.38 10.38 0 0 0-.085-2.647 11.046 11.046 0 0 0-1.204-3.65 10.912 10.912 0 0 0-3.449-3.741 10.347 10.347 0 0 0-4.954-1.828 11.097 11.097 0 0 0-3.299.182 10.662 10.662 0 0 0-6.356 3.995c-.15.174.092.232.239.207h5.989c.279 0 .313.063.172.313-1.07 1.882-2.14 3.763-3.208 5.645a.558.558 0 0 1-.542.313H1.432c-.226 0-.235 0-.238.232.004.855.109 1.707.314 2.537.035.17.137.32.282.417a3.393 3.393 0 0 0 1.966.627h4.01a.176.176 0 0 0 .201-.144c.035-.144.078-.286.12-.427.07-.187-.201-.136-.286-.14-.22 0-.44-.023-.659-.045-.208.015-.181-.195-.103-.332.354-.752.7-1.511 1.063-2.26.129-.291.37-.517.668-.628.266-.097.53-.213.79-.332.06-.029.097-.104.144-.154a.627.627 0 0 0-.179-.085c-.188-.018-.379-.015-.567-.034-.188-.019-.2-.097-.12-.232.383-.627.766-1.27 1.158-1.9a1 1 0 0 1 .599-.427 4.61 4.61 0 0 0 .536-.178.94.94 0 0 0 .213-.157l-.025-.057c-.176-.025-.351-.047-.527-.075-.175-.028-.185-.106-.1-.238.085-.132.141-.213.21-.314a4.293 4.293 0 0 1 1.254-1.351c.462-.276.97-.467 1.499-.565a.683.683 0 0 0 .289-.156c.743-.662 1.44-1.38 2.2-2.032-.137.67-.238 1.31-.344 1.96zM2.56 6.604l.022.134c.314 1.314.605 2.628.9 3.945.025.107.072.135.179.132h1.687a.279.279 0 0 0 .294-.17c.728-1.298 1.46-2.593 2.195-3.885.025-.043.044-.087.079-.153H6.778a.42.42 0 0 0-.417.244c-.52.922-1.047 1.84-1.567 2.76l-.091.14c-.22-.94-.433-1.865-.646-2.78-.094-.418-.06-.358-.455-.361l-1.04-.006zm.627 11.639c.958 1.52 2.473 2.693 4.076 3.502a.176.176 0 0 0 .22-.028c.364-.299.73-.594 1.097-.887l.386-.314a15.253 15.253 0 0 1-.777-.95.483.483 0 0 0-.295-.213l-3.876-.916-.83-.194zm14.938-11.26c-.088-.019-.14-.038-.191-.044-.263-.034-.53-.05-.787-.11a.825.825 0 0 0-.724.189c-.035.025-.072.072-.066.103a.141.141 0 0 0 .09.088c.314.097.628.197.957.27a.408.408 0 0 0 .314-.066c.145-.133.28-.277.404-.43h.003z\"},\"child\":[]}]})(props);\n};\nexport function SiVbulletin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.09 10.316V24h21.82V0h-2.417l-5.461 19.613h-6.09l-3.134-9.246zm9.283-4.444l1.363 6.308L13.955 0H1.089v5.872Z\"},\"child\":[]}]})(props);\n};\nexport function SiVectary (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.1797 2.3184a6.6198 6.6198 0 0 0-.2734.0117c-.628.017-1.2937.412-1.6094.955-.3423.5267-.395 1.3011-.127 1.8692l4.2715 9.668c.2394.5807.845 1.0623 1.4649 1.164.614.1323 1.3555-.0942 1.791-.5468 1.0385-1.0052 1.8471-2.4642 2.1425-4.0215.2956-1.5574.0788-3.2117-.5195-4.5274-.5696-1.3282-1.6479-2.603-2.998-3.4336-1.2658-.7785-2.7708-1.1679-4.1426-1.1386zm18.8574 0c-.9528.0168-1.9351.2075-2.834.5898-1.7978.7646-3.267 2.3-3.914 3.8613L8.1719 20.6211c-.0507.1103-.0512.2522-.002.3633.0459.1124.149.21.2637.25 1.5734.617 3.6982.622 5.496-.1426 1.7978-.7646 3.269-2.3 3.9161-3.8613l6.1152-13.8516c.0508-.1103.0512-.2523.002-.3633-.0458-.1124-.147-.21-.2617-.25-.7867-.3085-1.7113-.464-2.664-.4472z\"},\"child\":[]}]})(props);\n};\nexport function SiVectorlogozone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.458 0l-5.311 2.024 1.989.534-4.847 16.085-4.867-16.25H1.48L8.974 24h4.645l7.043-20.226 1.858.499Z\"},\"child\":[]}]})(props);\n};\nexport function SiVectorworks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm0 22.725c-5.925 0-10.725-4.8-10.725-10.725S6.075 1.275 12 1.275 22.725 6.075 22.725 12 17.925 22.725 12 22.725zM8.775 7.5h-2.25c-.15 0-.208.086-.15.225l4.425 10.65c.04.098.15.225.3.225h1.95c.15 0 .206-.086.15-.225l-4.35-10.8c-.028-.07-.035-.075-.075-.075zm8.7 0h-2.25c-.075 0-.13.023-.15.075L13.35 11.85a.6.6 0 0 0 0 .375l1.05 2.55c.075.15.225.15.3 0l2.925-7.05c.057-.139 0-.225-.15-.225z\"},\"child\":[]}]})(props);\n};\nexport function SiVeeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.63 9.842c-1.104 0-2 .945-2 2.101v.108c0 1.322.846 2.038 1.974 2.1.051.007.108.007.16.007.435 0 .794-.115 1.195-.361.04-.023.201-.132.361-.338.132-.166.138-.411 0-.543-.2-.189-.412-.086-.595.074-.292.246-.516.442-1.1.442-.55 0-1.064-.316-1.19-.94 0-.023.01-.045.034-.045H8.16a.473.473 0 0 0 .47-.504c0-1.156-.894-2.1-1.999-2.1zm4.466 0c-1.1 0-1.996.945-1.996 2.101v.108c0 1.322.846 2.038 1.974 2.1.052.007.11.007.16.007.435 0 .795-.115 1.196-.361.04-.023.2-.132.361-.338.132-.166.137-.411 0-.543-.2-.189-.413-.086-.596.074-.292.246-.515.442-1.1.442-.549 0-1.063-.316-1.189-.94-.006-.023.01-.045.028-.045h2.691a.473.473 0 0 0 .47-.504c-.007-1.156-.9-2.1-1.999-2.1zm-6.89.04a.4.4 0 0 0-.344.223l-1.42 3.063c-.034.063-.062.11-.136.11-.075 0-.105-.047-.14-.11l-1.42-3.057a.38.38 0 0 0-.53-.177.428.428 0 0 0-.172.56l1.39 2.828.16.32a.8.8 0 0 0 .712.46.791.791 0 0 0 .709-.46l.16-.32 1.385-2.834a.423.423 0 0 0-.166-.56.376.376 0 0 0-.188-.045zm11.362 0a.762.762 0 0 0-.504.188.808.808 0 0 0-.207.27l-1.59 3.137c0 .005-.007.006-.007.01v.007a.434.434 0 0 0 .03.442c0 .005.005.006.005.01 0 .007.006.005.006.01a.372.372 0 0 0 .516.077s.005 0 .005-.006a.083.083 0 0 0 .024-.017l.015-.018.006-.006a.485.485 0 0 0 .076-.103l.057-.125.332-.7c.006-.017.028-.027.045-.027h1.484c.195 0 .354-.167.354-.379 0-.206-.159-.377-.354-.377h-1.099a.033.033 0 0 1-.03-.046l.08-.172.602-1.207v-.006s0-.006.006-.006c.011-.023.04-.108.098-.125.034-.012.063-.012.086 0 .063.017.084.091.113.148l1.455 3.022a.393.393 0 0 0 .48.195s.006 0 .006-.006l.035-.017c.006 0 .007-.006.012-.006 0 0 .006 0 .006-.006.006 0 .006-.006.012-.006s.01-.004.01-.01c.006 0 .006-.006.011-.006.006-.006.012-.012.018-.012l.017-.017.006-.006a.408.408 0 0 0 .092-.498l-1.598-3.154a.79.79 0 0 0-.709-.45zm3.508 0c-.39 0-.709.332-.709.778v3.018c0 .183.104.354.264.406.263.086.486-.143.486-.412l-.058-2.938a.03.03 0 0 1 .052-.017l1.442 2.93c.137.28.367.449.625.449.257 0 .49-.167.623-.448l1.449-2.935c.01-.029.05-.019.05.016l-.056 2.955c0 .234.177.423.389.412.206-.006.367-.207.367-.43V10.66c.01-.452-.31-.77-.7-.777a.684.684 0 0 0-.61.394c-.361.739-1.426 2.93-1.426 2.936-.006.01-.03.064-.075.064-.04 0-.068-.047-.074-.064-.35-.727-1.047-2.164-1.408-2.908-.143-.287-.38-.422-.63-.422zm-12.45.647c.697 0 1.14.527 1.208 1.145 0 .023-.012.045-.035.045H5.47c-.023-.006-.033-.022-.033-.045.074-.607.49-1.145 1.19-1.145zm4.47 0h.002c.697.001 1.138.527 1.207 1.145 0 .023-.013.045-.035.045H9.94c-.023-.006-.04-.022-.034-.045.075-.606.493-1.144 1.19-1.145z\"},\"child\":[]}]})(props);\n};\nexport function SiVeed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.9847 3.44845-6.4707 15.8711a2.41415 2.41415 0 0 1-2.23542 1.50241H8.73883a2.4138 2.4138 0 0 1-2.23388-1.5005L.01467 3.44846a.196.196 0 0 1 .18143-.27042h6.5505a.3923.3923 0 0 1 .36707.25392l4.90577 13.08297 4.8655-13.08144c.05678-.15342.20368-.25545.36708-.25545h6.55164c.13924 0 .23398.14115.18181.26965z\"},\"child\":[]}]})(props);\n};\nexport function SiVeepee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.808 9.941a11.55 11.55 0 0 0-.872-3.51c.784-1.634 1.59-2.239 1.59-2.239s1.658 4.244.203 8.605c-.9 2.698-1.977 4.328-2.554 5.028-.129.156-.243.205-.172.11 1.36-1.834 2.109-4.749 1.805-7.994m1.317 5.143c-.672.809-1.35 1.594-2.1 2.195-.108.086-.176.08-.093-.011 2.653-2.896 5.536-9.314 1.8-15.64 0 0-1.477 1.02-2.69 3.134C15.846 2.922 14.106 1.379 11.94 0c0 0-5.479 6.107-3.056 14.954-6.99.964-4.452 6.361-3.344 7.137.052.037.096.018.025-.091-.393-.603-1.491-2.71.773-4.732 1.215-1.084 3.761-1.367 3.761-1.367-.579-4.248-.538-8.086 2.364-12.333.371.246 4.616 2.112 4.776 8.396.355 3.941-1.691 7.096-3.677 8.324-3.519 1.888-7.468 2.814-10.901 3.619-.291.069-.178.1.016.092 8.156-.343 15.407-4.011 18.195-7.512.537-.673.777-1.414.415-1.824-.361-.411-1.016.244-1.162.421\"},\"child\":[]}]})(props);\n};\nexport function SiVega (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.39 8.693H24l-3.123-6.68ZM6.68 1.987H0L7.098 22.03h.008l2.86-10.73zm14.197-.016-7.098 20.042h-6.68L14.195 1.97\"},\"child\":[]}]})(props);\n};\nexport function SiVegas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.2305 9.1035c-.6088 0-1.0881.0929-1.457.2774-.369.166-.627.4602-.793.8476-.166.4243-.2403.9974-.2403 1.7168 0 1.0168.1088 2.0758.7754 2.5996.2583.203.5894.2969 1.0137.2969.2952 0 .5903-.0004.83-.0742.2214-.0738.4248-.1845.5723-.332.0554-.037.13-.1292.1485-.166v.4784h.959v-3.1914h-1.0899v1.9922c-.1555.1037-.3215.1622-.5332.2227-.1291.0369-.2773.0547-.4433.0547-.2214 0-.4072-.0554-.5547-.166-.1292-.1107-.2396-.2945-.295-.5528-.1274-.595-.1062-1.58-.037-2.0293.0553-.2398.1108-.4255.203-.5547.2066-.3305.6712-.3496.9415-.3496h.5527c.1845 0 .3507.0176.5352.0176.1844 0 .3702.0011.5546.0195l.0723-.8867c-.37-.111-.5068-.1517-1.0508-.2012-.2206-.0242-.4428-.013-.664-.0195Zm9.7402 0c-.5842 0-1.1955.0965-1.5488.332-.2734.1823-.4805.4674-.4805 1.2364 0 .6867.1957 1.2693 1.1621 1.6054l1.125.3868c.1291.0369.2407.092.3145.1289.0738.0369.129.1117.166.1855.0759.1518.0788.533-.0195.664-.0554.0923-.1287.1476-.2579.166-.3046.0529-.6144.0322-.9218.0372-.166 0-.35-.0195-.5899-.0195-.2398 0-.5165-.0176-.83-.0176l-.0196.9023c.2398.0554.7754.13 1.1074.1485.332.0184.6094.037.7754.037.2767 0 .7008-.0188.959-.0741.2583-.0554.461-.1472.627-.2578.166-.1292.2758-.2952.3496-.4981.0738-.2214.1113-.4794.1113-.793 0-.4243-.0918-.7573-.2578-1.0156-.166-.2583-.4792-.4598-.9219-.6074l-1.0703-.3516c-.2214-.0738-.3687-.148-.461-.2402-.1538-.123-.1543-.4588-.0937-.7012.0185-.0553.0736-.1096.129-.1465.0737-.0184.149-.0566.2597-.0566.1107-.0185.2391-.0176.3867-.0176h.9219c.3136 0 .5902.0176.83.0176l.0196-.8477c-.5672-.1215-1.1484-.203-1.7715-.203Zm-15.293.0742c-.642 0-1.1797.4099-1.1797 1.125v3.3399c0 .332.1107.6076.332.8105.203.203.4972.3145.8477.3145h.9043c.2767 0 .7567-.0196.9043-.0196.1292-.0184.5152-.0362.7735-.0546v-.8848H7.121c-.1291 0-.2211-.0375-.295-.1113-.0553-.0738-.0937-.1854-.0937-.3145V12.295h2.2324v-.8672H6.7324v-.8672c0-.1475.02-.2387.0938-.3125.0553-.0737.1658-.1113.2949-.1113h2.1387V9.252c-.2583-.0185-.5706-.0382-.7735-.0567-.6023-.0273-1.2058-.0176-1.8086-.0176ZM0 9.2148l1.5313 5.2012c.0394.197.2115.332.4238.332H3.08c.2216 0 .3886-.146.4258-.332l1.5117-5.2012h-1.254l-1.1445 4.5196s-.0186.0176-.037.0176h-.1466c-.0184 0-.037.0008-.037-.0176l-1.125-4.5196zm16.4922 0c-.1191 0-.3802.0704-.4238.332l-1.6055 5.2208h1.2539l.4062-1.457h1.9004l.4063 1.457h1.2539L18.078 9.5469c-.0184-.0923-.0727-.1665-.1465-.2403a.4548.4548 0 0 0-.2773-.0918zm.6445.9766c.0185 0 .0371.0187.0371.0371l.5918 2.1406h-1.4023l.5898-2.1406c.0185-.0184.0187-.037.028-.037z\"},\"child\":[]}]})(props);\n};\nexport function SiVelog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 0C1.338 0 0 1.338 0 3v18c0 1.662 1.338 3 3 3h18c1.662 0 3-1.338 3-3V3c0-1.662-1.338-3-3-3H3Zm6.883 6.25c.63 0 1.005.3 1.125.9l1.463 8.303c.465-.615.846-1.133 1.146-1.553.465-.66.893-1.418 1.283-2.273.405-.855.608-1.62.608-2.295 0-.405-.113-.727-.338-.967-.21-.255-.608-.577-1.193-.967.6-.765 1.35-1.148 2.25-1.148.48 0 .878.143 1.193.428.33.285.494.704.494 1.26 0 .93-.39 2.093-1.17 3.488-.765 1.38-2.241 3.457-4.431 6.232l-2.227.156-1.711-9.628h-2.25V7.24c.6-.195 1.305-.406 2.115-.63.81-.24 1.358-.36 1.643-.36Z\"},\"child\":[]}]})(props);\n};\nexport function SiVencord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.613.6v.587h2.4V.6h-1.2zm2.4.587v8.4H3.6v-8.4h-.293zm.587 8.4v.613h.613v-.613h-.306zm.613.613v.587H4.8V10.2h-.293zm.587.587v.613h.613v-.613h-.306zm.613.613v.587H6V11.4h-.293zm.587.587v.613h1.2v-.613h-.6zm1.2 0h.613V11.4H7.2v.293zm.613-.587H8.4V15h-.587v.587H8.4v4.8h.613v-9.6h2.4v-2.4H10.8V10.2H9.6v-.613h-.587v.613H8.4v.587h-.587v.306zM9.6 9.587h.613v-8.4H9.6v4.2zm.613-8.4h2.4V.6h-2.4v.293zm2.4 0V7.8h-1.2v.587H15.6v.32H18v-.32h.614v.32h2.106v-.32h.294V6.893h-.294v-.906h-.32v-.88h-.293V5.4h-.293v.907h-.294V6.6h.294v.587h.293v-.88h.293v.88h.32v.906h-.32v.294h-.586v-.294h.293V7.8h.293v-.613h-.293v.32h-.293V7.8h-.294v.587h-.613V7.8h-.293v-.293h-.294V7.8h-1.813v.293h1.2v.294H15.92v-.294h-1.813V7.8h-.293V6.307h-.294V7.8h-.32V1.187h-.293zm1.2 5.12h.294v-.32h-.294v.16zm.294-.32h.293V5.4h-.293v.293zM14.4 5.4h.614v-.293H14.4v.146zm.614-.293h.586V5.4h.32v-.613h-.906v.16zm.906-.32h.293v-.294h-.293v.147zm.293-.294h.294V4.2h-.294v.147zm.294-.293h.293v-.293h-.293v.146zm.293 0v.587h.32v.32h.293v-.32h.294v.32h-.294V5.4H18v-.613h.32V4.2H18v.293h-.88V4.2h-.16zm1.52 0h.294v-.293h-.294v.146zm.294-.293h.293v-.32h-.293v.16zm.293-.32h.293v-.294h-.293v.147zm.293 0v1.52h.32v-.32h.293v-.294h-.293v-.906h-.16zm.613 1.2v.32h.294v-.32h-.147zm0 .32h-.293V5.4h.293v-.147zM15.6 5.4h-.293v1.2h.293V6zm0 1.2v.587h.32V6.6h-.16zm.32.587v.32h.293v-.32h-.146zm.293.32V7.8h.294v-.293h-.147zm2.694.293h.613v-.293h-.613v.146zm.613-.293h.293v-.32h-.293v.16zm0-.907h-.613v.293h.613v-.146zm-.613.293h-.293v.294h.293V7.04zm2.107 1.494v2.4h2.4V10.2H21.6V8.387h-.293zm2.4 2.4v2.4H24v-2.4h-.293zm0 2.4h-4.8v.613h4.8v-.307zm-4.8 0v-2.4h-4.8v9.6h4.8v-2.4H18V19.8h-3.6v-8.4H18v1.787h.307zm0 4.8h4.8V17.4h-4.8v.293zm4.8 0v2.4H24v-2.4h-.293zm0 2.4h-2.4v2.4h.586V21h1.814v-.306zm-2.4 2.4h-9.6v.613h9.6v-.307zm-9.6 0v-2.4h-2.4V21H10.8v1.787h.307zm-3.6-7.2h-2.4v.613h2.4v-.307zm-2.4 0V15H4.8v.587h.307zM4.8 15v-.613h-.586V15h.293zm-.586-.613V13.8H3.6v.587h.307zM3.6 13.8v-.613h-.587v.613h.294zm-.587-.613V12.6H2.4v.587h.307zM2.4 12.6v-.613h-.587v.613h.294zm-.587-.613V11.4H1.2v.587h.307zM1.2 11.4v-.613H.614v.613h.293zm-.586-.613v-9.6H0v9.6h.307zM13.52.6v.293h1.493v.293h.293V.893h.294V.6h-1.04zm1.493.586h-.293v.32h.293v-.16zm-.293.32h-.32V1.8h.32v-.147zm0 .294v.293h.293V1.8h-.147zm-.32 0h-.294v.293h.294v-.147zm-.294.293h-.293v.293h-.293v.32h2.08v-.32h-1.494V2.24zm.294-.587v-.32h-.294v.32h.147zm2.106.294v.293h.907v.293h.293v-.293H18V1.8h-.747zm.907.586h-.293v.32h-.614V3H18v-.294h-.587v-.16zm-1.2 4.214v.293h.586V6.6h-.293zm.586.293v.293h.907v-.293h-.453zm.907.293v.32H18v-.32h-.146z\"},\"child\":[]}]})(props);\n};\nexport function SiVenmo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.772 13.119c-.267 0-.381-.251-.38-.655 0-.533.121-1.575.712-1.575.267 0 .357.243.357.598 0 .533-.13 1.632-.689 1.632Zm.502-3.377c-1.677 0-2.405 1.285-2.405 2.658 0 1.042.421 1.874 1.693 1.874 1.717 0 2.438-1.406 2.438-2.763 0-1.025-.462-1.769-1.726-1.769Zm-3.833 0c-.558 0-.964.17-1.393.477-.154-.275-.462-.477-.932-.477-.542 0-.947.219-1.247.437l-.04-.364H13.54l-.688 4.354h1.506l.479-3.053c.129-.065.323-.154.518-.154.145 0 .267.049.267.267 0 .056-.016.145-.024.218l-.429 2.722h1.498l.478-3.053c.138-.073.324-.154.51-.154.146 0 .268.049.268.267 0 .056-.017.145-.025.218l-.429 2.722h1.499l.461-2.908c.025-.153.049-.388.049-.549 0-.582-.267-.97-1.037-.97Zm-6.871 0c-.575 0-.98.219-1.287.421l-.017-.348H8.962l-.689 4.354H9.78l.478-3.053c.13-.065.324-.154.518-.154.147 0 .268.049.268.242 0 .081-.024.227-.032.299l-.422 2.666h1.499l.462-2.908c.024-.153.049-.388.049-.549 0-.582-.268-.97-1.03-.97Zm-5.631 1.834c.041-.485.413-.824.697-.824.162 0 .299.097.299.291 0 .404-.713.533-.996.533Zm.843-1.834c-1.604 0-2.382 1.39-2.382 2.698 0 1.01.478 1.817 1.814 1.817.527 0 1.07-.113 1.418-.282l.186-1.26c-.494.25-.874.347-1.271.347-.365 0-.64-.194-.64-.687.826-.008 2.252-.347 2.252-1.453 0-.687-.494-1.18-1.377-1.18Zm-4.239.267c.089.186.146.412.146.743 0 .606-.429 1.494-.777 2.06l-.373-2.989L0 9.969l.705 4.2h1.757c.77-1.01 1.718-2.448 1.718-3.554 0-.347-.073-.622-.235-.889l-1.402.283Z\"},\"child\":[]}]})(props);\n};\nexport function SiVercel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 22.525H0l12-21.05 12 21.05z\"},\"child\":[]}]})(props);\n};\nexport function SiVerdaccio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.376 9.84L18.72 7.2h-4.8v.566h.864l-.192.377H12.96v.566h1.344l-.288.565H12v.566h1.728zm-4.255 8.64l3.68-7.265h-3.68l-1.064 2.103L8.959 7.2H5.28l5.712 11.28zM8.88 0h6.24A8.86 8.86 0 0124 8.88v6.24A8.86 8.86 0 0115.12 24H8.88A8.86 8.86 0 010 15.12V8.88A8.86 8.86 0 018.88 0z\"},\"child\":[]}]})(props);\n};\nexport function SiVeritas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 9.746l1.248 3.8712c.1053.3243.4072.5332.7344.5332a.7684.7684 0 00.7324-.5332l1.248-3.8711h-.6933L2.086 13.412a.1081.1081 0 01-.1035.0762c-.0467 0-.0881-.028-.1054-.0762L.6934 9.7461H0zm5.3125 0c-.6081 0-1.0996.4939-1.0996 1.1017v2.2011c0 .6078.4915 1.1016 1.0996 1.1016h2.0918v-.6621H5.3125a.439.439 0 01-.4395-.4395v-.7754h2.0918v-.6504H4.873v-.7753c0-.2431.1964-.4414.4395-.4414h2.0918V9.746H5.3125zm3.7598 0a.9898.9898 0 00-.9903.9903v3.414h.6602v-3.414c0-.1825.1475-.33.33-.33h1.4317a.5505.5505 0 01.5137.3535.55.55 0 01-.3164.7109l-1.1094.4082c-.4025.139-.615.578-.4766.9805a.7665.7665 0 00.4141.4531l2.0742.9414v-.7226l-1.8144-.8028a.1306.1306 0 01-.0703-.0781.1302.1302 0 01.082-.166l1.1367-.3965c.6243-.2396.9366-.9402.6973-1.5645-.1851-.4815-.6442-.7773-1.1309-.7773H9.0723zm3.3086 0v4.4044h.662V9.746h-.662zm1.2109 0v.6602h1.2773v3.7442h.6602v-3.7441h1.2773V9.746h-3.2148zm4.707 0a.7683.7683 0 00-.7324.5333l-1.25 3.871h.6953l1.1836-3.6679a.108.108 0 01.1035-.0762c.0467 0 .0882.0283.1055.0762l1.1816 3.668h.6954l-1.25-3.8711a.7702.7702 0 00-.7325-.5332zm3.334 0c-.6992 0-1.2656.5665-1.2656 1.2657 0 .6993.5664 1.2656 1.2656 1.2656l1.1016.002c.3344 0 .6054.2693.6054.6035a.6054.6054 0 01-.6054.6055h-2.1465v.662h2.1465c.6992 0 1.2656-.5683 1.2656-1.2675s-.5664-1.2656-1.2656-1.2656h-1.1016a.6054.6054 0 01-.6055-.6055c0-.3344.271-.6054.6055-.6054h2.1465V9.746h-2.1465Z\"},\"child\":[]}]})(props);\n};\nexport function SiVerizon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.302 0H22v.003L10.674 24H7.662L2 12h3.727l3.449 7.337z\"},\"child\":[]}]})(props);\n};\nexport function SiVespa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.736 11.006-.029-.008c-.127.055-.274.05-.415.067-.202-.12-.4-.248-.606-.36-.079.06-.16.141-.256.168-.11.017-.235.017-.324-.053a.463.463 0 0 1-.22-.422l.207-.93-.01-.03c-.37.025-.753.01-1.131.01-.146.021-.094.197-.168.281-.208-.118-.419-.23-.66-.28-.707-.176-1.404.125-1.84.708-.118.13-.154.305-.297.415l-.915.57c-.02.007-.052.027-.071 0a1.491 1.491 0 0 0-.92-.972c-.873-.23-1.704.1-2.347.707-.032.097-.037.204-.069.3-.498.337-.987.7-1.488 1.031-.02.017-.062.015-.077-.011a1.782 1.782 0 0 0-.66-1.128c-.088-.054-.166-.145-.275-.145l-.462.404-2.458 2.128a.932.932 0 0 1-.693.113c-.028-.014-.089-.002-.086-.048l1.18-1.029.052-.08c-.069-.138-.127-.28-.233-.405-.371-.505-1.063-.643-1.634-.473-.576.176-.997.743-1.12 1.302l-2.45 1.59c-.019.008-.053.033-.066-.004.004-.39.078-.77.221-1.114.334-.85 1.268-1.584 2.204-1.56.045-.009.057-.054.042-.093a6.912 6.912 0 0 1-.747-1.158c-.35.06-.65.263-.95.471-.982.819-1.432 1.964-1.459 3.269-.496-.637-.782-1.354-.924-2.115-.18-.805.042-1.7.542-2.31.106-.155.26-.283.352-.442-.337-.358-.65-.751-.834-1.182-.047-.103-.073-.219-.127-.314-.172.072-.33.185-.48.32-.69.648-1.085 1.468-1.03 2.466.094 1.63 1.02 3.04 2.258 4.247-.101.045-.214.052-.321.079-.352.072-.713.136-1.057.218a2.004 2.004 0 0 1-.488.856c-.012.017-.038.053-.005.066l7.79-1.515 3.459-.69c.518-.096 1.03-.212 1.572-.272.021.166-.054.316-.058.498.343-.055.68-.127 1.019-.191l.043-.021.105-.572.033-.046 4.804-.941 2.813-.562 1.984-.368.044-.039a1.514 1.514 0 0 1-.264-.401zM6.364 14.131l-2.377.46 1.728-1.14c.163.015.196.207.313.304.124.143.286.24.428.346l-.092.03zm.388-.87a.57.57 0 0 1 .029-.41.592.592 0 0 1 .648-.247c.067-.001.103.058.148.1l-.008.035-.734.612c-.036-.011-.067-.055-.083-.09zm3.669-.37c-.113.193-.462.091-.407.378.022.065.08.123.106.181-.424.104-.859.173-1.291.25l.022-.052 1.5-1.299a.083.083 0 0 1 .066.005l.085.15a.439.439 0 0 1-.081.388zm2.937-.044c-.454.098-.912.193-1.375.268.027-.097.079-.196.127-.29.08-.085.19-.12.281-.19l1.096-.7.03.003c-.043.3-.063.628-.159.91zm1.573-.272-.446.076-.027-.032c.024-.098.023-.209.074-.293l.03.002a.954.954 0 0 0 .4.22l-.031.027zm.7-.746a.442.442 0 0 1-.41.169.61.61 0 0 1-.457-.355c-.071-.18-.064-.429.093-.567.158-.119.41-.107.571-.002a.645.645 0 0 1 .242.292.5.5 0 0 1-.038.463zm.964.439c.056-.12.162-.21.19-.34l1.16-.767c.014-.003.026-.015.043-.009a.95.95 0 0 0 .485.734l-1.878.382zm3.234-1.142a.417.417 0 0 1-.417.102c-.148-.044-.304-.176-.34-.334-.05-.132-.029-.319.076-.42.127-.124.325-.138.481-.067.104.05.208.152.256.263.063.139.05.34-.056.456zm.861.371c-.012-.054.058-.082.07-.132l.077-.174c.12.035.191.175.326.184-.136.068-.307.095-.473.122z\"},\"child\":[]}]})(props);\n};\nexport function SiVestel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M 12.051 9.4 L 10.663 9.4 C 10.663 9.4 9.016 9.459 8.889 10.993 C 8.762 12.527 10.471 12.496 10.79 13.151 C 10.993 13.57 10.495 13.89 10.072 13.89 L 8.928 13.89 L 8.928 14.6 L 10.868 14.6 C 10.868 14.6 12.899 14.49 12.613 12.743 C 12.43 11.616 11.188 11.791 10.771 11.033 C 10.355 10.276 11.081 10.061 11.159 10.061 L 12.041 10.061 L 12.051 9.4 Z M 12.256 9.437 L 16.359 9.437 L 16.359 10.096 L 15.151 10.096 L 15.151 14.564 L 13.517 14.564 L 13.517 10.096 L 12.256 10.096 L 12.256 9.437 Z M 16.653 9.437 L 20.046 9.437 L 20.046 10.042 L 18.288 10.042 L 18.288 11.751 L 19.887 11.751 L 19.887 12.356 L 18.288 12.356 L 18.288 13.852 L 20.154 13.852 L 20.154 14.564 L 16.653 14.564 L 16.653 9.437 Z M 20.428 9.437 L 22.135 9.437 L 22.135 13.852 L 24 13.852 L 24 14.564 L 20.428 14.564 L 20.428 9.437 Z M 5.042 9.437 L 8.49 9.437 L 8.49 10.042 L 6.677 10.042 L 6.677 11.751 L 8.277 11.751 L 8.277 12.356 L 6.677 12.356 L 6.677 13.852 L 8.596 13.852 L 8.596 14.564 L 5.042 14.564 L 5.042 9.437 Z M 3.991 9.436 L 2.891 13.014 L 1.756 9.436 L 0 9.436 L 1.801 14.562 L 3.114 14.562 L 4.87 9.436 L 3.991 9.436 Z\"},\"child\":[]}]})(props);\n};\nexport function SiVexxhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.787 16.045a23.43 23.43 0 0 0-1.402 2.185c.16-.301.331-.6.509-.898q.569-.948 1.225-1.88c3.684-5.16 9.117-9.202 14.354-11.112l-.43-1.317c-.018-.012-.032-.02-.04-.014-7.366 2.68-14.173 9.534-16.55 17.194.116-.28.237-.559.37-.836 3.407-5.592 9.963-10.16 16.079-12.157l-.183-1.252c-5.385 1.683-10.555 5.398-13.932 10.087ZM23.04 3.023v-.014h-.03s.011.002.03.014zM7.385 18.23l.509-.898c-.178.298-.348.597-.51.898zM23.05 8.058a11.447 11.447 0 0 1 .798 4.092 11.792 11.792 0 0 1-18.604 9.683A12.084 12.084 0 0 1 4.238 2.916 11.847 11.847 0 0 1 7.908.713a11.525 11.525 0 0 1 4.196-.711 11.181 11.181 0 0 1 7.616 3.11A11.423 11.423 0 0 0 12.11.6a10.878 10.878 0 0 0-3.9.843 11.236 11.236 0 0 0-3.34 2.173A11.46 11.46 0 0 0 2.5 6.781a11.186 11.186 0 0 0 .711 11.266 11.032 11.032 0 0 0 2.72 2.827 10.9 10.9 0 0 0 3.554 1.658 11.072 11.072 0 0 0 7.7-.732 11.435 11.435 0 0 0 5.386-5.715 11.826 11.826 0 0 0 .948-3.938 12.084 12.084 0 0 0-.47-4.09zM9.173 6.873H6.79l3.504 4.872a29.78 29.78 0 0 1 1.277-1.529zm5.971 11.61h2.358l-3.98-5.551q-.764.597-1.477 1.234zm-1.01 0h.385l-2.843-3.966-.237.22zM6.182 6.873H5.76l4.01 5.563c.065-.092.137-.184.21-.274zm-.837 0h-.421L9.36 13.01c.064-.095.132-.187.199-.28zm7.957 11.61h.381l-2.516-3.509-.237.237z\"},\"child\":[]}]})(props);\n};\nexport function SiVfairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.316 5.923c-.01-.014-.027-.024-.04-.035a.412.412 0 0 0-.06-.047L12.223.061a.427.427 0 0 0-.08-.033C12.128.02 12.113.02 12.1.015a.41.41 0 0 0-.325.046l-9.992 5.78a.418.418 0 0 0-.143.141c-.015.014-.02.034-.028.05a.423.423 0 0 0-.048.191v11.56a.418.418 0 0 0 .007.05c.007.14.088.266.212.331l9.992 5.78a.555.555 0 0 0 .487 0l9.888-5.756a.437.437 0 0 0 .284-.406V6.223a.408.408 0 0 0-.119-.3zM2.45 17.015V6.99l8.665 5.012-8.665 5.012zm10.452-5.023l8.648-5.001v10.024c-2.905-1.676-5.634-3.268-8.648-5.023zm-.46-.757V1.211l8.666 5.012zm-.885 0L2.891 6.223l8.666-5.012zm0 1.535v10.024l-8.665-5.012zm.925.023l5.477 3.168 3.129 1.821-8.606 5.01Z\"},\"child\":[]}]})(props);\n};\nexport function SiViadeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.2888 13.8979c.361.884.5428 1.8423.5428 2.875 0 1.9315-.6593 3.6185-1.977 5.0626C13.537 23.2796 11.8417 24 9.7697 24c-2.0819 0-3.778-.7204-5.0973-2.1645-1.3177-1.4441-1.9786-3.1311-1.9786-5.0626 0-1.9142.6213-3.5747 1.8687-4.9791C5.9381 10.2439 7.6688 9.469 9.7673 9.469c.884 0 1.7018.1388 2.4536.4131-.2453.4808-.4659 1.0698-.5262 1.7035-.599-.2503-1.2425-.3759-1.9332-.3759-1.454 0-2.7015.5453-3.7416 1.6382-1.0409 1.0921-1.5614 2.4132-1.5614 3.963 0 .9996.2396 1.9315.7105 2.7948.4792.8642 1.1153 1.53 1.9249 2.0009.8096.4701 1.6936.7047 2.6602.7047.9666 0 1.8588-.2338 2.6602-.7047.8096-.47 1.454-1.1367 1.9249-2.0009.8345-1.4971.9618-3.465.2974-5.0386.4708-.0991 1.0491-.2949 1.6522-.6692zM20.3873.4285l-.0126-.0148c-.7574 1.6151-2.1586 1.9175-2.1586 1.9175-1.4013.3613-1.8924.8997-1.8924.8997-1.4013 1.416-.295 3.1344-.295 3.1344 3.0311-.6933 4.1374-3.186 4.1374-3.186-.1327 1.6815-3.7317 3.658-3.7317 3.658 1.1947 1.1726 2.3305 1.0325 3.0828.5826.9956-.59 1.475-1.8953 1.475-1.8953.966-2.8984-.6049-5.0961-.6049-5.0961zM7.0301 20.4729s.4278.0738.9123.0516c0 0 10.3286-7.021 7.6094-14.3148l-.0405-.118v.0074c.0339.4867-4.483 13.0613-8.4812 14.3738zm8.3828-15.1895C15.0486 1.4101 12.9327 0 12.9327 0c1.4897 2.5134 2.2995 4.7694 2.4816 5.3055 0-.0132-.0014-.0221-.0014-.0221z\"},\"child\":[]}]})(props);\n};\nexport function SiViaplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.2766 6.6383C.4742 8.2432 0 10.0669 0 12s.4742 3.7568 1.2766 5.3617L12 12ZM12 0C9.0456 0 6.3465 1.0578 4.231 2.845l12.5471 6.7477v4.8146L4.231 21.155C6.31 22.9422 9.0456 24 12 24c6.6383 0 12-5.3617 12-12S18.6383 0 12 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiViber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.4 0C9.473.028 5.333.344 3.02 2.467 1.302 4.187.696 6.7.633 9.817.57 12.933.488 18.776 6.12 20.36h.003l-.004 2.416s-.037.977.61 1.177c.777.242 1.234-.5 1.98-1.302.407-.44.972-1.084 1.397-1.58 3.85.326 6.812-.416 7.15-.525.776-.252 5.176-.816 5.892-6.657.74-6.02-.36-9.83-2.34-11.546-.596-.55-3.006-2.3-8.375-2.323 0 0-.395-.025-1.037-.017zm.058 1.693c.545-.004.88.017.88.017 4.542.02 6.717 1.388 7.222 1.846 1.675 1.435 2.53 4.868 1.906 9.897v.002c-.604 4.878-4.174 5.184-4.832 5.395-.28.09-2.882.737-6.153.524 0 0-2.436 2.94-3.197 3.704-.12.12-.26.167-.352.144-.13-.033-.166-.188-.165-.414l.02-4.018c-4.762-1.32-4.485-6.292-4.43-8.895.054-2.604.543-4.738 1.996-6.173 1.96-1.773 5.474-2.018 7.11-2.03zm.38 2.602c-.167 0-.303.135-.304.302 0 .167.133.303.3.305 1.624.01 2.946.537 4.028 1.592 1.073 1.046 1.62 2.468 1.633 4.334.002.167.14.3.307.3.166-.002.3-.138.3-.304-.014-1.984-.618-3.596-1.816-4.764-1.19-1.16-2.692-1.753-4.447-1.765zm-3.96.695c-.19-.032-.4.005-.616.117l-.01.002c-.43.247-.816.562-1.146.932-.002.004-.006.004-.008.008-.267.323-.42.638-.46.948-.008.046-.01.093-.007.14 0 .136.022.27.065.4l.013.01c.135.48.473 1.276 1.205 2.604.42.768.903 1.5 1.446 2.186.27.344.56.673.87.984l.132.132c.31.308.64.6.984.87.686.543 1.418 1.027 2.186 1.447 1.328.733 2.126 1.07 2.604 1.206l.01.014c.13.042.265.064.402.063.046.002.092 0 .138-.008.31-.036.627-.19.948-.46.004 0 .003-.002.008-.005.37-.33.683-.72.93-1.148l.003-.01c.225-.432.15-.842-.18-1.12-.004 0-.698-.58-1.037-.83-.36-.255-.73-.492-1.113-.71-.51-.285-1.032-.106-1.248.174l-.447.564c-.23.283-.657.246-.657.246-3.12-.796-3.955-3.955-3.955-3.955s-.037-.426.248-.656l.563-.448c.277-.215.456-.737.17-1.248-.217-.383-.454-.756-.71-1.115-.25-.34-.826-1.033-.83-1.035-.137-.165-.31-.265-.502-.297zm4.49.88c-.158.002-.29.124-.3.282-.01.167.115.312.282.324 1.16.085 2.017.466 2.645 1.15.63.688.93 1.524.906 2.57-.002.168.13.306.3.31.166.003.305-.13.31-.297.025-1.175-.334-2.193-1.067-2.994-.74-.81-1.777-1.253-3.05-1.346h-.024zm.463 1.63c-.16.002-.29.127-.3.287-.008.167.12.31.288.32.523.028.875.175 1.113.422.24.245.388.62.416 1.164.01.167.15.295.318.287.167-.008.295-.15.287-.317-.03-.644-.215-1.178-.58-1.557-.367-.378-.893-.574-1.52-.607h-.018z\"},\"child\":[]}]})(props);\n};\nexport function SiViblo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.569 19.68h2.904L21.621.018 18.705 0l-4.428 10.668H9.705L5.295 0H2.379l8.19 19.68zm-7.02 1.854h16.908V24H3.549v-2.466z\"},\"child\":[]}]})(props);\n};\nexport function SiVictoriametrics (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.893 3.078C.239 1.537 4.846.009 11.963 0h.076c7.116.009 11.723 1.537 10.067 3.078 0 0-6.168 5.655-8.301 7.473-.404.346-1.084.607-1.766.616h-.076c-.682-.009-1.362-.271-1.767-.616-2.132-1.818-8.301-7.473-8.303-7.473Zm20.549 2.771V8.58c0 .3-.115.698-.319.885-1.332 1.222-6.47 5.925-8.319 7.502-.405.345-1.085.606-1.767.615h-.072c-.683-.009-1.362-.27-1.767-.615-1.849-1.577-6.987-6.28-8.32-7.502-.204-.187-.318-.585-.318-.885V5.849c1.96 1.788 7.163 6.505 8.638 7.764.404.346 1.084.607 1.767.616h.072c.682-.009 1.362-.271 1.767-.616 1.474-1.258 6.678-5.973 8.638-7.764Zm0 6.418v2.73c0 .301-.115.698-.319.885-1.332 1.222-6.47 5.926-8.319 7.502-.405.346-1.085.607-1.767.616h-.072c-.683-.009-1.362-.271-1.767-.616-1.849-1.576-6.987-6.28-8.32-7.502-.204-.187-.318-.585-.318-.885v-2.73c1.96 1.788 7.163 6.505 8.638 7.764.404.346 1.084.606 1.767.615h.072c.682-.009 1.362-.27 1.767-.615 1.474-1.258 6.678-5.976 8.638-7.764Z\"},\"child\":[]}]})(props);\n};\nexport function SiVictronenergy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.183 4.65c-.522.001-1.295.137-2.1.751 0 0-1.7 1.039-2.096 5.166 0 0-.144 1.019-.066 1.535 0 0 .066.603.687.657 0 0 .749.058.797-.644.047-.702.063-.987.063-.987S4.586 8.384 5.7 6.993l.269.202s.38-1.441 1.874-2.465c0 0-.254-.081-.66-.08Zm2.729.023c-.635.001-1.632.167-2.437 1.042 0 0-1.279 1.14-1.656 3.973 0 0-.158 1.522-.185 2.262 0 0-.013.718.678.809 0 0 .71.044.757-.711 0 0 .046-3.468 1.329-5.055l.319.198s.555-1.603 1.826-2.461c0 0-.25-.058-.631-.057Zm2.854.016c-.057-.001-.116 0-.175.003 0 0-1.792-.073-2.844 1.733 0 0-1.216 1.771-1.211 5.397 0 0-.074.86.601.938 0 0 .798.05.798-.862 0 0 .036-3.578 1.401-5.025 0 0 1.209 1.452 1.308 4.866 0 0 .042 2.34.479 3.63 0 0 .395-1.448.475-3.452 0 0-.034-.366.284-.624 0 0 .209-.102.168-.468 0 0-.292-2.978-1.284-4.666 0 0 2.103-.136 2.52 4.071 0 0 .004.615.345.999 0 0 .25.177.275.609 0 0 .061.595-.118 2.521 0 0-.042.422.144 1.021 0 0 .52-1.438.382-2.848 0 0-.068-1.144.501-1.53 0 0-.048-3.193-1.318-4.941 0 0-.944-1.359-2.731-1.372Zm-8.559.019c-.563.005-1.316.162-2.073.771 0 0-1.8 1.208-2.13 6.299 0 0-.1.847.648.972 0 0 .753.145.853-.489.099-.636.08-3.847 1.503-5.495 0 0 .138-.208.516-.371.317-.194.567-.55.753-.832 0 0 .277-.369.867-.714 0 0-.374-.146-.937-.141ZM8.068 8.62s-.519 1.438-.383 2.847c0 0 .069 1.145-.5 1.531 0 0 .048 3.194 1.319 4.941 0 0 1.004 1.448 2.905 1.369 0 0 1.792.073 2.845-1.734 0 0 1.214-1.77 1.21-5.397 0 0 .074-.859-.601-.938 0 0-.799-.05-.799.863 0 0-.035 3.578-1.401 5.024 0 0-1.209-1.451-1.308-4.864 0 0-.041-2.34-.477-3.63 0 0-.396 1.446-.475 3.451 0 0 .033.366-.285.624 0 0-.209.102-.169.468 0 0 .293 2.979 1.286 4.666 0 0-2.104.136-2.521-4.071 0 0-.004-.615-.345-.999 0 0-.25-.177-.275-.608 0 0-.061-.596.117-2.522 0 0 .042-.422-.143-1.021Zm15.161 2.617c-.217-.011-.66.026-.734.503-.099.634-.08 3.845-1.503 5.494 0 0-.138.208-.517.37-.315.195-.565.551-.752.833 0 0-.278.369-.867.713 0 0 1.495.588 3.01-.63 0 0 1.8-1.207 2.129-6.299 0 0 .101-.847-.647-.971 0 0-.047-.01-.119-.013Zm-5.571.004c-.137.002-.687.051-.726.711 0 0-.048 3.468-1.331 5.056l-.318-.198s-.555 1.603-1.825 2.46c0 0 1.779.415 3.068-.984 0 0 1.278-1.141 1.655-3.973 0 0 .158-1.522.185-2.263 0 0 .014-.718-.677-.808l-.031-.001Zm2.701.001c-.144-.002-.723.03-.763.643l-.065.987s-.118 2.744-1.231 4.136l-.269-.202s-.38 1.44-1.874 2.464c0 0 1.329.422 2.76-.671 0 0 1.699-1.038 2.096-5.166 0 0 .145-1.019.065-1.535 0 0-.064-.603-.687-.656h-.032Z\"},\"child\":[]}]})(props);\n};\nexport function SiVim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.986h-.027l-4.318-4.318 4.303-4.414V1.461l-.649-.648h-8.198l-.66.605v1.045L12.015.027V0L12 .014 11.986 0v.027l-1.29 1.291-.538-.539H2.035l-.638.692v1.885l.616.616h.72v5.31L.027 11.987H0L.014 12 0 12.014h.027l2.706 2.706v6.467l.907.523h2.322l1.857-1.904 4.166 4.166V24l.015-.014.014.014v-.028l2.51-2.509h.485c.111 0 .211-.07.25-.179l.146-.426c.028-.084.012-.172-.037-.239l1.462-1.462-.612 1.962c-.043.141.036.289.177.332.025.008.052.012.078.012h1.824c.106-.001.201-.064.243-.163l.165-.394c.025-.065.024-.138-.004-.203-.027-.065-.08-.116-.146-.142-.029-.012-.062-.019-.097-.02h-.075l.84-2.644h1.232l-1.016 3.221c-.043.141.036.289.176.332.025.008.052.012.079.012h2.002c.11 0 .207-.066.248-.17l.164-.428c.051-.138-.021-.29-.158-.341-.029-.011-.06-.017-.091-.017h-.145l1.131-3.673c.027-.082.012-.173-.039-.24l-.375-.504-.003-.005c-.051-.064-.127-.102-.209-.102h-1.436c-.071 0-.141.03-.19.081l-.4.439h-.624l-.042-.046 4.445-4.445H24L23.986 12l.014-.014zM9.838 21.139l1.579-4.509h-.501l.297-.304h1.659l-1.563 4.555h.623l-.079.258H9.838zm3.695-7.516l.15.151-.269.922-.225.226h-.969l-.181-.181.311-.871.288-.247h.895zM5.59 20.829H3.877l-.262-.15V3.091H2.379l-.1-.1V1.815l.143-.154h7.371l.213.214v1.108l-.142.173H8.785v8.688l8.807-8.688h-2.086l-.175-.188V1.805l.121-.111h7.49l.132.133v1.07L12.979 13.25h-.373c-.015-.001-.028 0-.042.001l-.02.003c-.045.01-.086.03-.119.06l-.343.295-.004.003c-.033.031-.059.069-.073.111l-.296.83-6.119 6.276zm14.768-3.952l.474-.519h1.334l.309.415-1.265 4.107h.493l-.08.209H19.84l1.124-3.564h-2.015l-1.077 3.391h.424l-.073.174h-1.605l1.107-3.548h-2.096l-1.062 3.339h.436l-.072.209H13.27l1.514-4.46H14.198l.091-.271h1.65l.519.537h.906l.491-.554h1.061l.489.535h.953z\"},\"child\":[]}]})(props);\n};\nexport function SiVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.9765 6.4168c-.105 2.338-1.739 5.5429-4.894 9.6088-3.2679 4.247-6.0258 6.3699-8.2898 6.3699-1.409 0-2.578-1.294-3.553-3.881l-1.9179-7.1138c-.719-2.584-1.488-3.878-2.312-3.878-.179 0-.806.378-1.8809 1.132l-1.129-1.457a315.06 315.06 0 003.501-3.1279c1.579-1.368 2.765-2.085 3.5539-2.159 1.867-.18 3.016 1.1 3.447 3.838.465 2.953.789 4.789.971 5.5069.5389 2.45 1.1309 3.674 1.7759 3.674.502 0 1.256-.796 2.265-2.385 1.004-1.589 1.54-2.797 1.612-3.628.144-1.371-.395-2.061-1.614-2.061-.574 0-1.167.121-1.777.391 1.186-3.8679 3.434-5.7568 6.7619-5.6368 2.4729.06 3.6279 1.664 3.4929 4.7969z\"},\"child\":[]}]})(props);\n};\nexport function SiVimeolivestream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.672 10.63c-.11 0-.21.04-.3.116-.09.077-.137.157-.14.24-.007.16.078.24.252.24a.4.4 0 0 0 .293-.125.345.345 0 0 0 .115-.23.233.233 0 0 0-.06-.16.199.199 0 0 0-.16-.08zm9.127.636v1.737c0 .327.22.365.344.365a.494.494 0 0 0 .074-.006v-.181s-.023.003-.05.003c-.077 0-.166-.03-.166-.226v-1.692zm.63 0v.253h.21v-.253zm4.693.182v.431h-.199v.17h.196v.764c0 .5.347.555.519.555a.515.515 0 0 0 .085-.006v-.181s-.026.006-.068.006c-.112 0-.335-.045-.335-.395v-.744h.374v-.17h-.373v-.43zM1.745 11.5c-.283-.01-.475.158-.575.503a.367.367 0 0 1 .15-.035c.105 0 .15.062.138.184-.006.074-.052.182-.137.324-.086.142-.15.213-.193.213-.055 0-.105-.11-.151-.328a8.209 8.209 0 0 1-.083-.492c-.036-.245-.134-.359-.293-.343-.067.007-.168.071-.303.193L0 12l.096.13a.622.622 0 0 1 .16-.101c.07 0 .136.115.197.346l.165.636c.082.23.183.346.302.346.192 0 .427-.19.705-.569.195-.264.321-.487.38-.67.077-.059.124-.09.142-.09.055 0 .082.042.082.126 0 .016-.03.135-.09.356-.059.222-.09.386-.093.492a.374.374 0 0 0 .07.25.26.26 0 0 0 .218.096c.205 0 .41-.093.615-.279l.053-.051a.395.395 0 0 0 .085.177c.088.1.237.146.447.14-.028-.071-.04-.196-.033-.376.01-.2.06-.395.147-.574.088-.183.171-.274.248-.274.089 0 .13.059.124.178-.003.08-.018.172-.045.275a1.36 1.36 0 0 0-.045.308c-.006.164.029.281.105.352.085.08.235.117.448.11a.747.747 0 0 1-.039-.317 1.38 1.38 0 0 1 .19-.608c.11-.199.205-.298.285-.298.073 0 .109.06.105.183a1.83 1.83 0 0 1-.057.337 1.848 1.848 0 0 0-.057.37c-.006.232.09.347.289.347.205 0 .41-.093.614-.279l.01-.01a.568.568 0 0 0 .022.038c.107.174.285.26.533.26.333 0 .662-.097.986-.293l.104-.065a.7.7 0 0 0 .072.122c.125.164.309.246.55.246a.95.95 0 0 0 .73-.323c.195-.215.3-.47.311-.765.01-.218-.038-.396-.142-.534-.11-.151-.272-.226-.486-.226-.333 0-.61.128-.83.384-.205.232-.3.485-.284.76 0 .021.002.04.004.06l-.034.016c-.26.118-.5.177-.72.177-.11 0-.193-.04-.248-.12a1.37 1.37 0 0 0 .739-.361c.183-.173.269-.341.257-.505-.019-.256-.178-.385-.477-.385-.325 0-.606.13-.844.386-.217.235-.328.482-.33.742a.65.65 0 0 0 .006.126c-.052.036-.09.054-.117.054-.058 0-.095-.013-.11-.039-.015-.025-.021-.072-.018-.14 0-.025.019-.123.057-.294a2.25 2.25 0 0 0 .062-.392c.006-.13-.018-.232-.073-.302-.064-.087-.17-.123-.317-.11a.663.663 0 0 0-.353.144c-.067.052-.136.12-.206.207l-.069.063a.488.488 0 0 0-.073-.304c-.065-.086-.172-.123-.321-.11a.797.797 0 0 0-.473.216.875.875 0 0 0-.16.193.472.472 0 0 0-.064-.354c-.05-.075-.114-.11-.193-.103-.046.003-.133.067-.262.192-.177.174-.273.267-.289.28l.11.13c.086-.065.138-.098.156-.098.034 0 .048.029.042.087-.003.083-.017.2-.043.348a3.95 3.95 0 0 0-.033.24l-.005.003c-.11.095-.186.143-.229.143-.098 0-.145-.069-.142-.207.046-.3.089-.549.128-.744a.42.42 0 0 0-.052-.28c-.048-.073-.122-.104-.223-.095-.064.007-.162.071-.293.193l-.137.13c-.01-.227-.108-.344-.297-.35zm13.221.301c-.403 0-.735.294-.735.785 0 .461.335.782.78.782.334 0 .551-.208.551-.208l-.092-.155s-.18.182-.453.182c-.309 0-.57-.208-.578-.592h1.144s.006-.068.006-.104c0-.372-.21-.69-.623-.69zm1.334 0c-.27 0-.51.146-.51.413 0 .488.804.408.804.735 0 .157-.14.238-.3.238a.637.637 0 0 1-.444-.182l-.11.146s.19.217.552.217c.299 0 .51-.175.51-.42 0-.493-.804-.403-.804-.734 0-.166.145-.232.297-.232.246 0 .373.137.373.137l.092-.154s-.146-.164-.46-.164zm3.2 0c-.403 0-.735.294-.735.785 0 .461.335.782.78.782.334 0 .55-.208.55-.208l-.091-.155s-.181.182-.454.182c-.308 0-.569-.208-.578-.592h1.144s.006-.068.006-.104c0-.372-.21-.69-.622-.69zm1.414 0c-.335 0-.53.17-.53.17l.094.154s.175-.143.421-.143c.214 0 .37.099.37.387v.039h-.082c-.258 0-.913.012-.913.517 0 .297.258.443.507.443.373 0 .498-.324.498-.324h.006s-.006.05-.006.125v.164h.192v-.958c0-.375-.198-.574-.557-.574zm1.575.023a.61.61 0 0 0-.54.378h-.006s.006-.053.006-.119v-.223h-.199v1.495h.202v-.707c0-.067.006-.134.02-.2.063-.228.247-.44.49-.44.281 0 .314.22.314.447v.9h.201v-.707c0-.08.006-.152.027-.217.057-.22.243-.422.471-.422.273 0 .323.202.323.446v.9H24v-.95c0-.37-.133-.58-.495-.58a.606.606 0 0 0-.548.374h-.006c-.045-.247-.187-.375-.462-.375zm-3.876.021c-.234 0-.4.172-.471.398h-.006s.006-.053.006-.118v-.265h-.199v1.495h.202v-.63a.99.99 0 0 1 .041-.291c.066-.22.223-.387.433-.387.039 0 .074.006.074.006v-.199s-.038-.009-.08-.009zm-6.179.015v1.495h.202V11.86zm.371 0l.572 1.495h.22l.569-1.495h-.211l-.412 1.097c-.03.077-.053.179-.053.179h-.006s-.024-.104-.05-.179l-.416-1.097zm-4.338.052c.048 0 .086.036.112.108a.638.638 0 0 1 .034.24.947.947 0 0 1-.133.444c-.098.17-.215.256-.353.256-.061 0-.109-.036-.142-.106a.432.432 0 0 1-.041-.213.967.967 0 0 1 .137-.464c.101-.177.23-.265.386-.265zm-1.722.056c.07 0 .103.043.1.13-.003.064-.049.147-.137.249-.108.117-.24.207-.39.264a.693.693 0 0 1 .146-.444c.096-.133.189-.199.28-.199zm8.215.003c.223 0 .412.145.424.457h-.936c.047-.3.263-.457.512-.457zm4.534 0c.222 0 .412.145.424.457h-.937c.048-.3.264-.457.513-.457zm-9.031.26c-.149 0-.223.111-.223.223 0 .111.074.222.223.222.148 0 .222-.111.222-.222 0-.112-.074-.223-.222-.223zm10.72.343h.087v.066c0 .258-.172.555-.457.555-.222 0-.332-.142-.332-.282 0-.33.469-.339.703-.339z\"},\"child\":[]}]})(props);\n};\nexport function SiVirgin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.951 9.821.008-.004c.044-.06.105-.114.13-.18.04-.11.066-.228-.005-.34-.016-.026-.024-.056-.036-.084-.035-.09-.08-.118-.204-.116a.56.56 0 0 0-.281.086 3.11 3.11 0 0 0-.298.211c-.05.04-.09.092-.135.137-.06.06-.074.14-.11.21a.46.46 0 0 0-.053.222c.002.094.041.18.113.23.08.054.184.092.29.042a1.84 1.84 0 0 0 .216-.116c.133-.086.282-.156.365-.298M24 9.423c-.008-.01-.02-.02-.023-.033a.635.635 0 0 0-.173-.28.3.3 0 0 0-.123-.06c-.039-.01-.082.002-.122-.007a.986.986 0 0 0-.688.098c-.217.113-.43.233-.65.341a5.64 5.64 0 0 1-.448.192c-.106.042-.167.02-.234-.06-.009-.012-.02-.025-.032-.028-.05-.012-.05-.055-.063-.09-.005-.015-.01-.04-.017-.042-.068-.011-.046-.038-.016-.07.01-.01.015-.023.025-.038-.034-.032-.09-.05-.064-.11.002-.004-.008-.016-.015-.019-.044-.019-.024-.052-.021-.082.005-.057.006-.064.032-.088l-.052-.05.053-.094c-.046-.01-.063-.038-.036-.066.032-.031.027-.06.022-.096-.002-.016-.005-.037.003-.05.02-.03.016-.058.006-.09-.006-.02.006-.044.01-.07-.047-.019-.061-.054-.042-.104.005-.012.009-.03.004-.04-.025-.047.002-.081.019-.1-.013-.05-.03-.084-.03-.119a9.858 9.858 0 0 1 .002-.412c0-.022.02-.043.031-.066-.03-.053-.03-.053.014-.096-.014-.03-.032-.057-.037-.085-.008-.053.051-.034.07-.054-.008-.05-.02-.095-.022-.14 0-.041-.007-.082.01-.125.014-.038.002-.085.002-.131l-.046.004-.007-.149c-.002-.054.008-.1.066-.102v-.127c-.021-.032-.045-.061-.062-.094-.022-.043.013-.073.041-.107-.057-.027-.067-.073-.08-.123-.016-.063-.03-.142-.075-.18-.042-.036-.077-.085-.131-.109l-.033-.013c-.22-.099-.437-.061-.647.024-.114.046-.218.117-.326.178a.343.343 0 0 0-.07.052c-.078.075-.154.152-.23.228a1.096 1.096 0 0 0-.08.095.747.747 0 0 1-.338.244.362.362 0 0 1-.275-.01c-.066-.029-.117-.039-.179 0a.165.165 0 0 1-.093.018c-.273-.036-.497.075-.682.252a.927.927 0 0 0-.263.547c-.015.107-.015.217-.02.325-.01.179-.017.357-.026.536l-.036.682c-.007.138-.009.276-.016.413-.016.32-.035.64-.05.961a.932.932 0 0 0 .007.182c.023.16.08.25.22.279a.52.52 0 0 0 .331-.028c.088-.041.18-.077.26-.13.099-.066.219-.12.235-.26 0-.003.003-.005.004-.008.04-.07.08-.14.115-.213a.12.12 0 0 0 .013-.072c-.007-.032-.048-.055-.007-.099.019-.02 0-.07.007-.106.007-.039.022-.076.034-.118l-.061-.049.032-.03c-.068-.063-.013-.116.022-.17-.019-.021-.062-.004-.057-.05.012-.12-.027-.244.034-.36.002-.004.005-.013.003-.015-.047-.054-.004-.1.008-.153.03.038.048.006.067-.002l-.011-.068c-.01-.052.002-.11-.054-.148-.013-.008-.016-.051-.006-.07a.36.36 0 0 1 .074-.096c.03-.029.035-.057.02-.094a.758.758 0 0 1-.036-.106c-.005-.024-.011-.057 0-.075.012-.018.044-.022.066-.032v-.115l-.04-.026.026-.057c.055.009.055.009.044-.042-.001-.008-.004-.02 0-.024.045-.053.025-.117.033-.176.002-.017 0-.038.01-.049.049-.058.05-.128.056-.188.038-.034.09-.058.1-.093.022-.077.078-.12.134-.164a.213.213 0 0 0 .066-.078.387.387 0 0 1 .102-.137c.068-.054.148-.093.22-.143.11-.076.227-.039.342-.026.023.003.047.025.064.045.066.075.106.164.03.304a.358.358 0 0 0-.01.344c.102.188.009.359.026.538-.04.054-.02.109-.002.164a.066.066 0 0 1 0 .041.495.495 0 0 0-.015.327c.006.018.002.04 0 .061-.01.156-.039.31-.035.467.002.13 0 .258.005.387a.448.448 0 0 0 .118.286c.04.045.095.077.145.111.044.03.049.047.01.08a.368.368 0 0 1-.051.035c-.066.04-.132.079-.199.116l-.696.39-.996.558c-.196.11-.392.219-.586.33-.224.13-.446.264-.671.393-.031.018-.071.022-.106.034-.016.005-.034.01-.046.021a.766.766 0 0 1-.221.14c-.07.033-.14.064-.206.103-.12.073-.238.152-.357.227l-.557.343c-.236.145-.474.288-.709.435-.13.081-.255.169-.384.253-.023.015-.05.024-.082.04-.005-.033-.011-.053-.011-.072a5.868 5.868 0 0 1 0-.227 2.493 2.493 0 0 1 .01-.19c.007-.078.028-.152.013-.233-.013-.07.006-.144.01-.216.005-.051.024-.107.01-.154a.52.52 0 0 1-.013-.208 4.242 4.242 0 0 0 .024-.39c0-.046.014-.091.018-.137.008-.088.013-.176.02-.263.02-.201.042-.402.057-.603.016-.201.023-.403.037-.604.008-.115 0-.239.041-.342.044-.11-.008-.218.033-.32-.049-.108.04-.214.004-.321-.002-.005.013-.013.014-.02a.134.134 0 0 0 0-.045c-.003-.02-.014-.039-.014-.058 0-.059-.002-.119.005-.177a.354.354 0 0 0-.09-.284.361.361 0 0 0-.232-.114.701.701 0 0 0-.39.052c-.174.08-.304.197-.34.387a3.91 3.91 0 0 0-.05.427c-.017.22-.027.439-.042.658-.01.143-.025.286-.038.429-.007.08.005.163-.047.234a.025.025 0 0 0-.003.022c.034.078.01.158.005.235-.007.152-.036.303-.049.454-.022.254-.062.505-.103.756-.028.176-.08.34-.213.474a.785.785 0 0 1-.503.25.244.244 0 0 1-.252-.131.654.654 0 0 1-.082-.239c-.015-.156-.04-.314.003-.471.005-.02 0-.04 0-.061.002-.047.001-.094.005-.14a3.877 3.877 0 0 1 .026-.21c.005-.033.008-.07.024-.1.028-.056.024-.104-.002-.16a.218.218 0 0 1-.019-.126c.014-.085.019-.171.051-.254.032-.084.046-.175.072-.262a.248.248 0 0 1 .048-.103c.04-.042.047-.092.061-.142a.498.498 0 0 1 .044-.113c.03-.051.063-.104.086-.155.024-.052.04-.1.089-.134a.12.12 0 0 0 .036-.058.27.27 0 0 1 .102-.13c.029-.02.067-.038.081-.066.05-.095.123-.177.146-.286.012-.054.01-.111.027-.16a.246.246 0 0 0-.009-.182.186.186 0 0 0-.084-.086.344.344 0 0 0-.237-.023c-.164.047-.337.073-.468.198-.014.013-.037.018-.053.03-.104.083-.216.157-.308.25-.086.088-.15.195-.224.294-.166.224-.29.47-.376.733-.095.288-.133.587-.175.884-.026.188.001.382-.061.566-.01.027-.006.058-.004.088.006.063.018.126.02.19.003.114 0 .228-.001.343-.001.24-.018.48.036.718.026.115.056.23.13.323a.796.796 0 0 0 .602.307c.146.009.29-.011.431-.044.05-.011.099-.036.154-.013.012.005.033-.005.049-.012.02-.009.04-.022.06-.031.076-.031.149-.07.232-.077a.099.099 0 0 0 .039-.014c.109-.072.217-.146.326-.219.02-.013.05-.03.068-.024.016.006.028.04.03.064.003.06-.005.122.002.182a1.65 1.65 0 0 1-.003.344.099.099 0 0 1-.044.071c-.149.1-.298.2-.443.307-.217.16-.43.324-.644.485a23.486 23.486 0 0 1-.384.281c-.134.096-.27.189-.404.285-.15.11-.297.224-.448.332-.193.14-.39.274-.584.413-.047.035-.086.08-.131.118-.057.046-.117.09-.175.135a41.919 41.919 0 0 0-.255.203l-.353.282c-.142.114-.284.23-.426.343-.076.06-.155.116-.229.178-.114.098-.221.202-.336.298-.142.12-.29.232-.433.35a45.057 45.057 0 0 0-.515.432c-.15.128-.3.256-.447.388-.138.124-.271.253-.407.38-.164.152-.33.302-.494.455-.229.217-.467.425-.661.675l-.214.28a.328.328 0 0 0-.057.217.78.78 0 0 0 .079.322.493.493 0 0 0 .188.202c.154.093.32.111.495.105a.378.378 0 0 0 .257-.113c.076-.073.155-.143.23-.216.08-.075.156-.152.234-.228.019-.019.04-.036.058-.055a11.42 11.42 0 0 0 .123-.124 2.737 2.737 0 0 0 .073-.077l.204-.228c.025-.029.047-.06.074-.086l.596-.589c.045-.045.09-.092.133-.139a2.143 2.143 0 0 0 .087-.097c.028-.034.05-.072.08-.103.056-.056.116-.107.172-.163.096-.094.188-.193.288-.284.092-.085.194-.16.288-.243.042-.037.074-.083.112-.123l.246-.252c.006-.006.014-.01.021-.016.15-.12.3-.238.447-.36.21-.171.417-.346.627-.517.14-.114.285-.221.424-.335.203-.166.401-.337.605-.502.116-.095.24-.182.358-.274.116-.09.23-.184.347-.274a64.393 64.393 0 0 1 .489-.377c.157-.12.313-.24.473-.355.085-.06.176-.116.28-.155.004.027.01.047.009.066-.003.07-.01.139-.011.208-.002.208-.002.416-.002.625l-.001.79c0 .316 0 .632-.002.948 0 .056.022.117-.027.167-.007.007.002.027.003.041.003.037.009.075.008.112-.004.093-.014.186-.015.279 0 .082.012.163.014.245a7.293 7.293 0 0 1-.004.314l-.014.358c-.003.137-.003.275-.009.412-.006.152-.018.304-.023.456-.007.202-.004.404-.016.605-.016.277-.007.55.083.816.031.09.055.184.126.259a.7.7 0 0 0 .34.195c.023.005.044.015.066.023.07.021.132.02.203.015a.384.384 0 0 0 .16-.05c.077-.043.154-.085.226-.134a.523.523 0 0 0 .118-.13c.022-.03.025-.073.047-.103.023-.031.057-.054.087-.08l-.078-.045c.012-.026.022-.048.034-.07.006-.012.024-.023.022-.032-.01-.053.024-.085.06-.121-.03-.017-.074-.028-.077-.046-.01-.053-.051-.082-.077-.12l.042-.075-.05-.018c.094-.003.05-.098.1-.124-.02-.027-.06-.031-.036-.081.014-.03-.033-.06-.076-.06-.047 0-.072-.02-.073-.067l-.008-.129.058-.026-.002-.014-.065-.01c.077-.022.1-.084.127-.146a.394.394 0 0 1-.077-.256c.002-.026-.003-.06-.054-.053-.043.005-.079-.056-.064-.1.015-.043.031-.082-.01-.124l.057-.025c.025-.063-.03-.12-.011-.18-.044-.029-.047-.067-.02-.11l-.056-.006.048-.124-.1-.105c.03-.066.03-.066.006-.166l.051-.029c-.024-.026-.022-.073-.071-.07-.006 0-.014-.012-.017-.02-.026-.06-.001-.111.064-.135l-.023-.036c-.043-.069-.064-.136.015-.198.01-.008.012-.038.006-.054-.02-.064-.045-.127-.064-.18.02-.054.035-.102.056-.147.018-.04.028-.074-.003-.113-.007-.01.003-.032.005-.053l-.056-.074.08-.02c-.002-.014 0-.03-.007-.035-.022-.018-.046-.031-.069-.046 0-.037-.007-.076.003-.11.01-.032.037-.059.058-.09-.005-.054-.016-.116-.014-.178.001-.067.015-.133.022-.2 0-.009 0-.02-.005-.025-.025-.024-.023-.048-.017-.08.01-.044.008-.09.01-.136l.016-.473a.361.361 0 0 0-.016-.108c-.013-.039-.02-.075.023-.109.008-.006.009-.032.003-.042-.029-.043-.02-.093-.02-.138a2.898 2.898 0 0 1 .004-.356c.005-.052.03-.1-.005-.15-.006-.008-.003-.03.003-.04.029-.05.024-.094-.006-.14-.01-.016-.01-.039-.01-.041.021-.028.049-.058.046-.06-.06-.068-.013-.136.003-.199.015-.059.018-.108-.028-.148.007-.061.058-.117.004-.176-.005-.006.007-.033.017-.046.022-.029.045-.055.014-.092-.006-.007-.002-.023-.001-.034.006-.097.022-.194.016-.29-.005-.086.04-.123.103-.161.053-.033.119-.054.139-.125.002-.009.016-.016.026-.023.091-.064.182-.13.274-.191.202-.136.4-.276.618-.388.088-.045.162-.114.245-.168.19-.123.38-.248.575-.366.219-.133.442-.26.664-.39.26-.152.517-.307.78-.455a94.35 94.35 0 0 1 1.162-.639c.26-.14.522-.276.783-.414.208-.11.417-.22.627-.329.178-.092.355-.188.538-.27.27-.12.54-.237.817-.341.262-.1.53-.184.798-.27.226-.073.455-.134.66-.257.215-.128.399-.285.498-.522a.672.672 0 0 1 .073-.124c.005-.008.026-.006.039-.009v-.035c-.04-.05-.04-.05 0-.106zm-7.653-2.757a.408.408 0 0 0 .122.071c.098.039.208.054.3.013.154-.068.3-.16.39-.32a.385.385 0 0 1 .043-.06c.086-.1.17-.199.202-.34a.527.527 0 0 0 .014-.157c-.007-.091-.063-.15-.1-.218-.035-.005-.07-.003-.098-.014a.468.468 0 0 0-.297-.008.906.906 0 0 0-.464.294c-.158.18-.254.387-.17.64a.238.238 0 0 0 .058.1m-.54 5.139a.592.592 0 0 0 .281-.06 9.347 9.347 0 0 0 .335-.164.699.699 0 0 0 .255-.219c.05-.07.123-.136.12-.231-.002-.033.014-.067.017-.1.002-.025-.004-.05-.008-.076-.006-.033-.022-.067-.02-.1a18.424 18.424 0 0 1 .024-.497c.003-.054.015-.108.023-.161l.074.004c-.017-.023-.031-.038-.041-.054a.802.802 0 0 1-.031-.065l.105.018c-.021-.03-.027-.054-.043-.061-.054-.023-.055-.064-.054-.105.002-.042-.009-.097.017-.123.064-.063.068-.128.056-.203a.798.798 0 0 1-.01-.143c.003-.098.01-.196.014-.293 0-.005-.007-.01-.008-.016-.002-.028-.012-.058-.003-.083a.17.17 0 0 0 .003-.11.537.537 0 0 1-.005-.278c.014-.056.031-.112.043-.17.002-.008-.018-.02-.029-.033.053-.074.058-.151.064-.227.003-.04-.019-.078.011-.122a.242.242 0 0 0 .033-.13c0-.053.013-.106-.021-.161-.026-.041-.061-.084-.06-.14.003-.091-.051-.144-.156-.15-.139-.01-.278-.007-.403.058a.983.983 0 0 0-.552.773c-.005.06-.014.121-.022.181-.04.284-.082.567-.117.85-.039.319-.07.638-.107.957-.026.231-.055.463-.079.695-.015.148-.033.297-.028.444.005.179.108.284.322.295m-10.31 1.223a.328.328 0 0 1 .073-.282c.018-.02.034-.062.024-.08-.024-.04.014-.058.018-.087.006-.03-.028-.06 0-.093.01-.012.01-.033.012-.05.003-.038 0-.077.007-.113l.122-.521c.052-.223.098-.447.156-.669.047-.183.08-.372.166-.544.019-.037.025-.08.046-.116.032-.056.023-.13.081-.173.009-.007.013-.02.016-.032l.054-.206c.016-.061.028-.124.098-.152.012-.005.022-.02.027-.034.034-.076.07-.151.07-.237 0-.032-.007-.064-.002-.095.02-.126.051-.25.06-.377a.417.417 0 0 1 .06-.19c.066-.111.089-.235.114-.355.02-.094.068-.168.113-.247.018-.032.03-.054.009-.088a.087.087 0 0 1-.003-.093c.065-.126.095-.262.125-.399a2.69 2.69 0 0 1 .06-.23c.027-.088.062-.173.091-.26.03-.086.054-.173.083-.26.02-.062.037-.128.071-.183a.635.635 0 0 0 .08-.203 1.05 1.05 0 0 1 .064-.194c.055-.124.116-.247.175-.37.02-.04.045-.077.062-.117a.224.224 0 0 0 .022-.094.351.351 0 0 1 .034-.164c.084-.188.161-.379.249-.565.15-.32.256-.662.468-.953.049-.066.077-.146.12-.216a4.29 4.29 0 0 1 .439-.566c.053-.06.116-.113.176-.17.027.015.047.012.05-.015.01-.072.063-.094.121-.115.013-.005.03-.012.035-.023.019-.046.063-.082.053-.139-.002-.013.005-.03.013-.04.044-.064.092-.124.135-.188a.742.742 0 0 0 .133-.393 1.137 1.137 0 0 0-.043-.352.789.789 0 0 0-.568-.571 1.305 1.305 0 0 0-.246-.056 1.059 1.059 0 0 0-.19 0 .954.954 0 0 0-.492.27c-.13.123-.244.258-.335.416a3.677 3.677 0 0 0-.248.526 24.106 24.106 0 0 1-.146.375c-.037.094-.08.186-.116.281-.1.26-.195.52-.293.78-.093.248-.19.496-.281.745-.06.16-.112.322-.17.482L6.175 6.26c-.02.053-.033.111-.064.157-.048.073-.064.153-.085.234-.026.1-.052.203-.098.296-.077.157-.123.322-.172.488-.033.113-.037.237-.107.34-.011.015-.012.04-.012.06-.002.073.008.149-.049.21-.003.004-.003.012-.004.017l-.076.294-.132.465c-.04.146-.082.293-.119.44-.018.072-.021.147-.04.219-.027.094-.067.185-.092.28-.09.333-.175.668-.262 1.003-.012.045-.026.09-.037.137a88.407 88.407 0 0 0-.106.434c-.015.064-.031.128-.044.192-.06.298-.112.597-.177.894-.055.25-.107.501-.143.755-.035.236-.084.47-.126.705-.016.085-.03.17-.042.255l-.054.354c-.043.277-.089.553-.13.83-.026.171-.044.343-.07.513-.007.051-.03.1-.048.152-.032-.026-.058-.04-.074-.061a.137.137 0 0 1-.025-.07c-.003-.062 0-.124-.003-.185 0-.013-.01-.03-.021-.035-.038-.016-.033-.046-.034-.076-.003-.106 0-.213-.036-.318-.01-.031 0-.07.003-.106.003-.058.011-.117.01-.176 0-.028-.006-.066-.025-.082-.071-.06-.074-.15-.092-.226a.44.44 0 0 1 .028-.241c.027-.07.034-.129 0-.194a.399.399 0 0 1-.02-.049c-.032-.093-.077-.183-.072-.284a.563.563 0 0 0-.04-.217c-.027-.077-.063-.16-.008-.237-.02-.043-.06-.085-.054-.122.017-.137-.057-.246-.1-.364-.016-.044-.032-.081-.016-.112-.02-.039-.045-.067-.051-.097-.015-.08-.014-.16-.034-.24-.03-.116-.034-.238-.055-.357-.022-.125-.075-.246-.038-.377a.039.039 0 0 0-.003-.027c-.025-.049.016-.12-.053-.157-.006-.002.001-.027 0-.04 0-.023.004-.047-.005-.066-.036-.085-.022-.182-.066-.265-.006-.012 0-.03 0-.044-.001-.018 0-.035-.004-.052-.01-.04-.024-.08-.03-.12-.023-.14-.04-.283-.064-.424a104.342 104.342 0 0 0-.16-.923.85.85 0 0 0-.144-.345c-.17-.24-.53-.289-.772-.142a.656.656 0 0 0-.279.342c-.036.095-.06.194-.099.288-.117.287-.174.595-.31.876-.008.109-.057.205-.092.306-.029.081-.041.167-.067.25-.027.088-.063.173-.09.262-.039.13-.096.254-.127.389a.693.693 0 0 1-.116.288c-.025.033-.026.084-.037.126-.015.058-.014.128-.049.17-.053.063-.065.137-.089.208-.012.037-.01.077-.023.113-.058.168-.14.326-.187.5-.054.204-.138.4-.208.6a1.24 1.24 0 0 0-.047.163.43.43 0 0 0 .287.49c.182.063.35.022.507-.076.052-.032.093-.081.14-.122-.018-.066.042-.106.058-.163.02-.073.059-.14.084-.213.03-.083.092-.15.104-.242.005-.04.042-.075.065-.113-.022-.016-.006-.036.004-.058.03-.067.068-.133.087-.203.015-.055.02-.11.044-.166.038-.085.035-.187.088-.27-.013-.084.048-.145.08-.21a.325.325 0 0 0 .037-.201c.032-.016.077-.023.066-.077 0-.004.018-.012.025-.02.02-.02.044-.038.055-.063.024-.05.04-.105.062-.156.007-.017.033-.04.042-.037a.44.44 0 0 1 .11.053c.034.024.047.058.027.101-.005.01.001.026.003.045.031-.008.054-.049.083-.012-.006.028-.014.055-.017.083a.972.972 0 0 0-.004.127c.002.037.016.073.014.109a.119.119 0 0 0 .034.096.242.242 0 0 1 .057.098c.018.078.026.158.039.237l.11.706c.007.05.013.1.014.15.002.091-.018.185.046.267.01.012.006.034.009.052.027.186.053.372.081.557.027.177.056.353.082.53.037.24.072.482.108.722.026.18.052.359.08.538l.12.748c.017.108.052.214.016.324-.007.022-.008.046-.012.065.096.077.102.107.041.21.048 0 .063.03.07.069.025.154.041.31.08.463.005.02.008.045 0 .062a.072.072 0 0 0 .01.082.118.118 0 0 1 .02.05c.03.166.06.332.087.498.03.182.054.366.09.546.044.213.103.423.144.636.036.19.25.391.486.36.2-.025.428-.14.491-.384a6.125 6.125 0 0 0 .104-.47c.037-.204.065-.411.094-.617.039-.271.078-.542.113-.814.036-.277.066-.556.101-.833a85.361 85.361 0 0 1 .098-.754c.013-.097.02-.197.049-.29.026-.085.07-.163.057-.253.098-.037.12-.08.064-.131-.04-.037-.045-.073-.04-.118l.01-.088c.014-.103.034-.206.037-.31.002-.067.019-.134.061-.172.078-.07.07-.165.1-.248.023-.065.01-.144.014-.22-.049-.014-.084-.034-.077-.086.009-.065.012-.131.025-.195.028-.139.062-.276.092-.414a.167.167 0 0 0 0-.079c-.013-.044.003-.073.032-.103a.107.107 0 0 0 .03-.06 2.729 2.729 0 0 0 .008-.245c0-.043.011-.079.025-.119.027-.082.074-.161.048-.257-.008-.027.012-.07.033-.096.081-.098.083-.207.056-.32m2.18-.666c-.015-.065-.001-.08.065-.115-.021-.038-.06-.075-.053-.102.017-.067-.016-.12-.034-.176a.228.228 0 0 0-.2-.16.476.476 0 0 0-.195.014 1.239 1.239 0 0 0-.333.157c-.172.11-.3.248-.386.425a1.766 1.766 0 0 0-.16.569c-.019.152-.03.306-.043.459-.002.014 0 .029-.001.044-.004.109-.007.218-.013.327a52.91 52.91 0 0 1-.028.504c-.002.039.011.081-.03.113-.008.006-.004.027-.003.041 0 .072.015.146 0 .214-.035.149-.03.299-.037.448-.008.171-.021.342-.026.513-.004.183-.01.366 0 .548.008.162.114.249.288.263a.455.455 0 0 0 .241-.05 2.2 2.2 0 0 0 .391-.253c.031-.024.045-.075.104-.054.006.002.027-.012.028-.02.005-.06.06-.032.097-.044l.02-.083-.084-.005c.006-.033.011-.063.019-.093.007-.03.021-.06.026-.09.015-.086.014-.176.044-.256.046-.118.012-.235.021-.352.006-.083-.004-.166.005-.249.014-.138.036-.275.056-.413.01-.068.026-.136.037-.204a2.184 2.184 0 0 0 .024-.18c.004-.054 0-.106.025-.16a.495.495 0 0 0 .04-.184c.008-.127.005-.254.007-.381 0-.015-.002-.032.005-.043.055-.088.055-.188.07-.283a.793.793 0 0 0 .019-.18.253.253 0 0 1 .03-.143c.015-.025.031-.06.022-.08a.125.125 0 0 1 .008-.12c-.025-.063-.052-.113-.065-.166m1.132-.94a1.285 1.285 0 0 0-.12.473c-.01.155-.014.31-.021.465-.008.15-.015.298-.025.447-.007.093-.018.186-.026.278-.004.048.005.1-.012.142a.604.604 0 0 0-.04.268l-.002.008c.004.071-.021.141-.006.214.006.03.001.065-.002.097-.007.064-.037.134-.02.19.032.11.006.217.007.325 0 .094-.035.184-.024.282.012.1.004.203.005.304 0 .082.027.156.066.225.06.107.166.164.269.145.193-.036.402-.137.57-.304a.708.708 0 0 0 .206-.398 3.67 3.67 0 0 0 .042-.492c.005-.24.017-.48.028-.719.003-.06.026-.124.016-.183-.018-.102.009-.201.008-.302 0-.049.01-.106.053-.134.003-.055-.006-.102.01-.136.028-.06.027-.123.044-.184.009-.033.034-.064.034-.097a.24.24 0 0 1 .046-.133c.103-.16.21-.318.366-.433a6.662 6.662 0 0 0 .29-.228c.136-.112.273-.226.26-.431 0-.014.009-.028.008-.042-.003-.036-.001-.075-.014-.107-.028-.067-.064-.13-.097-.195-.048-.095-.13-.124-.229-.124-.096 0-.18.041-.265.081-.056.027-.11.056-.168.082-.054.024-.112.039-.163.068a.77.77 0 0 1-.3.096 1.25 1.25 0 0 0-.455.125.74.74 0 0 0-.34.327\"},\"child\":[]}]})(props);\n};\nexport function SiVirginatlantic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 3.559c-3.102 0-3.836.489-5.06 1.877L0 15.232c7.143-.326 9.348 6.858 16.572 4.858L24 3.559H14zm-2.477 1.586a.608.608 0 0 1 .395.128c.204.164.164.409.164.409-.04.367-.408.611-.408.611-.327.286-.776 1.102-.776 1.102-.49.775-1.06 2.286-1.55 3.796-.653 2.286-1.063 4.408-1.104 4.612-.04.204-.122.449-.326.449-.286 0-.326-.367-.326-.408 0-.041-.367-4.49-.367-4.49s-.042-.204-.082-.204c0 0-.08-.04-.163.164l-.408.897c-.163.408-.449.246-.449.246-.245-.122-.082-.408-.082-.408l.898-2.246c.205-.49.53-.45.53-.45.285.041.287.327.287.45.04.122.326 3.43.326 3.43.04.367.082.244.082.244C8.858 9.517 10.94 5.6 10.94 5.6c.197-.34.408-.445.584-.455zm4.793 2.793c.126-.01.174.07.174.07.123.204-.164.449-.164.449-.245.286-.449.082-.449.082-.204-.163.123-.45.123-.45.138-.106.241-.146.316-.152zm2.178.394c.024 0 .037.002.037.002.368 0 .326.49.326.49l-.123 1.346c-.081.571.368.37.368.37 0-.042.122-.084.49-.247.326-.122.49-.04.572.082.082.122.04.245-.041.367-.082.163-.449.286-.734.367-.204.041-.37.123-.37.123-.49.123-1.06.368-1.06.368a28.677 28.677 0 0 0-3.55 1.795c-.042.163-.042.285-.042.367 0 0-.162 2.204-.203 2.531 0 0-.002.41.04.654.04.245.205.775-.122.979a.394.394 0 0 1-.572-.082c0-.041-.123-.163-.041-.776 0 0 .164-1.592.205-2.082l.082-1.142c-2.694 1.673-4.164 3.183-4.164 3.183-.163.164-.53.45-.776.123-.244-.326.409-.816.409-.816 1.428-1.225 3.102-2.285 4.572-3.143l.039-.367s.042-.122-.08-.04c0 0-.49.286-.858.122 0 0-.287-.123-.287-.572 0 0 .001-1.388.573-1.959 0 0 .325-.326.652-.326.204 0 .165.286-.08.49-.245.245-.286.529-.367.856 0 0-.206.939.12.898 0 0 .328.001.45-.57 0 0 .203-1.308.244-1.471 0-.163.043-.53.37-.53 0 0 .325 0 .284.245 0 0-.244 1.591-.367 2.734a34.2 34.2 0 0 1 3.592-1.795c.082-.04.041-.04.041-.04-.245-.082-.123-.614-.123-.614l.123-1.102c0-.285-.326-.123-.326-.123-.245.164-.408.45-.408.45-.123.204-.205 1.142-.205 1.142-.041.49-.327.572-.327.572-.326.123-.367-.082-.367-.082-.04-.122.041-.57.041-.57l.162-1.185c.041-.531.409-.612.409-.612.081-.04.203-.04.326 0 .122.041.205 0 .287 0 .122 0 .285-.164.285-.164.245-.214.421-.244.494-.246zm-2.486.897c.222.01.115.373.115.412-.04.04-.246 1.591-.246 1.591-.04.409-.408.49-.408.49-.327.082-.244-.245-.244-.245l.04-.327.286-1.51c.04-.326.408-.408.408-.408a.262.262 0 0 1 .049-.003zm-5.237.53c.083-.008.164.019.21.126 0 0 .08.163-.206.408 0 0-.327.327-.49.041 0 0-.121-.204.205-.45 0 0 .144-.11.281-.124zm1.57.829c.144.017.19.154.19.154.123.286-.328.49-.328.49-.408.245-.447.776-.447.776l-.082.734c-.041.53-.408.612-.408.612-.49.163-.286-.694-.286-.694.041-.204.163-1.224.163-1.224.04-.613.408-.612.367-.653.04 0 .326-.04.326-.04s.124-.042.328-.124a.343.343 0 0 1 .178-.031zm-2 .68c.1.001.292.057.231.455l-.246 1.345-.082.49s-.04.245-.244.368c0 0-.49.244-.45-.123l.247-1.96s.08-.488.488-.57c0 0 .024-.006.057-.005z\"},\"child\":[]}]})(props);\n};\nexport function SiVirginmedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.225 5.021c-1.098 0-2.067.346-2.883 1.024C1.416 6.813 0 8.635 0 12c0 3.366 1.416 5.187 2.342 5.955.816.678 1.785 1.024 2.883 1.024 1.629 0 3.229-.75 4.271-1.401 2.828-1.769 5.082-5.143 5.082-5.143 1.093 1.502 2.081 2.494 3.199 3.21.687.419 1.723.914 2.787.914.725 0 1.371-.22 1.904-.677C23.487 15.008 24 13.658 24 12s-.513-3.008-1.532-3.882c-.532-.457-1.18-.677-1.904-.677-1.064 0-2.1.495-2.787.914-1.118.716-2.106 1.708-3.2 3.21 0 0-2.253-3.374-5.08-5.143-1.043-.651-2.643-1.401-4.272-1.401Zm0 .513c1.51 0 3.011.722 4 1.324 1.69 1.084 3.25 2.647 5.036 5.142-1.785 2.494-3.346 4.057-5.037 5.142-.988.602-2.49 1.323-3.999 1.323-.974 0-1.833-.305-2.554-.904C1.085 16.243.514 13.916.514 12s.571-4.243 2.157-5.561c.721-.6 1.58-.905 2.554-.905zm15.34 2.42c.6 0 1.13.188 1.575.558.993.828 1.347 2.273 1.347 3.488 0 1.215-.354 2.66-1.347 3.488-.444.37-.974.557-1.576.557-.945 0-1.889-.454-2.515-.835-1.067-.685-2.01-1.63-3.154-3.21 1.144-1.581 2.087-2.526 3.154-3.21.626-.381 1.57-.836 2.515-.836zm-17.6 3.505-.01.013.01-.01v-.003z\"},\"child\":[]}]})(props);\n};\nexport function SiVirtualbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 1.758 5.182 20c.129.455.25.691.421.945.063.092.13.179.202.264.173.204.37.378.59.525.243.163.49.286.763.371.324.1.61.137.99.137h4.327l1.918-6.615h6.798v3.699a.11.11 0 0 1-.109.11h-4.88l-.813 2.806h5.654a2.92 2.92 0 0 0 1.95-.725A2.903 2.903 0 0 0 24 19.285v-6.47H12.28l-1.919 6.614H7.937L3.715 4.564h2.922l1.546 5.444H11.1l-2.343-8.25zm15.496 0-2.4 8.25H24v-5.29a2.962 2.962 0 0 0-1.825-2.741 3.044 3.044 0 0 0-1.129-.22zm2.11 2.806h3.476a.11.11 0 0 1 .11.112V7.2h-4.354z\"},\"child\":[]}]})(props);\n};\nexport function SiVirustotal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.87 12L0 22.68h24V1.32H0zm10.73 8.52H5.28l8.637-8.448L5.28 3.48H21.6z\"},\"child\":[]}]})(props);\n};\nexport function SiVisa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.112 8.262L5.97 15.758H3.92L2.374 9.775c-.094-.368-.175-.503-.461-.658C1.447 8.864.677 8.627 0 8.479l.046-.217h3.3a.904.904 0 01.894.764l.817 4.338 2.018-5.102zm8.033 5.049c.008-1.979-2.736-2.088-2.717-2.972.006-.269.262-.555.822-.628a3.66 3.66 0 011.913.336l.34-1.59a5.207 5.207 0 00-1.814-.333c-1.917 0-3.266 1.02-3.278 2.479-.012 1.079.963 1.68 1.698 2.04.756.367 1.01.603 1.006.931-.005.504-.602.725-1.16.734-.975.015-1.54-.263-1.992-.473l-.351 1.642c.453.208 1.289.39 2.156.398 2.037 0 3.37-1.006 3.377-2.564m5.061 2.447H24l-1.565-7.496h-1.656a.883.883 0 00-.826.55l-2.909 6.946h2.036l.405-1.12h2.488zm-2.163-2.656l1.02-2.815.588 2.815zm-8.16-4.84l-1.603 7.496H8.34l1.605-7.496z\"},\"child\":[]}]})(props);\n};\nexport function SiVisx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.00195 0 12 11.51953 23.99805 0h-5.8711L12 6.08984 5.87305 0Zm23.9961 0L12.47852 11.99805l11.51953 11.99804V18.125l-6.08985-6.12695 6.08985-6.12696ZM.00195.0039V5.875l6.08985 6.12695-6.08985 6.12696V24l11.5039-11.99805Zm0 23.9961h5.8711L12 17.91016 18.12695 24h5.8711L12 12.4707Z\"},\"child\":[]}]})(props);\n};\nexport function SiVite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m8.286 10.578.512-8.657a.306.306 0 0 1 .247-.282L17.377.006a.306.306 0 0 1 .353.385l-1.558 5.403a.306.306 0 0 0 .352.385l2.388-.46a.306.306 0 0 1 .332.438l-6.79 13.55-.123.19a.294.294 0 0 1-.252.14c-.177 0-.35-.152-.305-.369l1.095-5.301a.306.306 0 0 0-.388-.355l-1.433.435a.306.306 0 0 1-.389-.354l.69-3.375a.306.306 0 0 0-.37-.36l-2.32.536a.306.306 0 0 1-.374-.316zm14.976-7.926L17.284 3.74l-.544 1.887 2.077-.4a.8.8 0 0 1 .84.369.8.8 0 0 1 .034.783L12.9 19.93l-.013.025-.015.023-.122.19a.801.801 0 0 1-.672.37.826.826 0 0 1-.634-.302.8.8 0 0 1-.16-.67l1.029-4.981-1.12.34a.81.81 0 0 1-.86-.262.802.802 0 0 1-.165-.67l.63-3.08-2.027.468a.808.808 0 0 1-.768-.233.81.81 0 0 1-.217-.6l.389-6.57-7.44-1.33a.612.612 0 0 0-.64.906L11.58 23.691a.612.612 0 0 0 1.066-.004l11.26-20.135a.612.612 0 0 0-.644-.9z\"},\"child\":[]}]})(props);\n};\nexport function SiVitepress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.029.0014a1.8382 1.8382 0 0 0-.1875.0176L4.0845 1.8334C3.0779 1.9767 2.3767 2.9196 2.518 3.939l2.5604 18.457c.1415 1.0193 1.0735 1.7292 2.08 1.586l12.757-1.8165c1.0066-.1433 1.7078-1.0861 1.5664-2.1054L18.9215 1.6049C18.7889.6493 17.961-.035 17.029.0014Zm.127.9316c.4271.027.7915.3549.8534.8008l2.5604 18.457c.0707.5097-.28.9812-.7831 1.0528L7.0296 23.058c-.5033.0717-.9683-.2833-1.039-.793L3.4302 3.81c-.0707-.5097.2799-.9811.7832-1.0528L16.9704.9408A.9066.9066 0 0 1 17.156.933zm-3.6443 5.3541L9.9668 7.5215a.1364.1364 0 0 0-.0898.1406l.3183 3.8692c.0075.0911.0994.1497.1836.1171l.9824-.3789c.092-.0355.1894.0373.1836.1368l-.0898 1.539c-.006.1036.1005.1763.1933.1328l.5997-.2812c.093-.0435.1976.031.1914.1347l-.1465 2.418c-.0092.1513.195.2037.2578.0664l.041-.0918 2.123-6.4238c.0355-.1076-.0658-.2104-.1718-.1738l-1.0176.3515c-.0955.033-.1917-.0491-.1777-.1504l.3437-2.4902a.1368.1368 0 0 0-.1426-.1562c-.016-.001-.0422.0084-.037.0058zm2.8223.7988a.2717.2717 0 0 0-.0801.0137L14 7.8496l-.0762.5606.4551-.1563c.5074-.1627.973.2955.8106.8027l-2.131 6.4493-.0526.1171c-.1268.2776-.4416.4304-.7383.3516-.2904-.077-.4911-.353-.4727-.6562l.1094-1.8086c-.5057.2578-.9731-.1473-.9473-.5938l.0567-.9765-.4532.1757c-.4144.1536-.8298-.1366-.8632-.543L9.453 8.5997l-3.0625-.123c-.2294-.0093-.3635.2552-.2226.4394l6.291 8.2305c.1293.169.391.1302.4668-.0684l3.668-9.6191c.072-.1889-.0765-.377-.2598-.373z\"},\"child\":[]}]})(props);\n};\nexport function SiVitess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.206 1.045-7.217 13.186L4.817 1.045H0l11.904 21.91L24 1.045h-4.794Z\"},\"child\":[]}]})(props);\n};\nexport function SiVitest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.74024 1.05293a.49504.49504 0 0 0-.1569.02512.49338.49338 0 0 0-.25056.1876L7.59513 9.56159a.4895.4895 0 0 0-.08373.22327.48846.48846 0 0 0 .03163.23629.4893.4893 0 0 0 .13985.19319.4927.4927 0 0 0 .2149.10481l3.70685.78609-.22947 4.58007a.48834.48834 0 0 0 .08466.30017.49205.49205 0 0 0 .24931.18854c.10157.03398.21174.03444.3135.00064a.49387.49387 0 0 0 .25056-.18761l5.73735-8.29594a.4884.4884 0 0 0 .08404-.22327c.009-.08015-.0016-.16137-.03163-.23629a.48835.48835 0 0 0-.13985-.19319.49318.49318 0 0 0-.2149-.1048l-3.70686-.7861.22947-4.58008a.48802.48802 0 0 0-.08466-.30017.4913.4913 0 0 0-.24931-.18853.49439.49439 0 0 0-.1566-.02574zM1.15697 9.78795c-.30647.0012-.60009.12378-.81679.34048a1.16107 1.16107 0 0 0-.34017.81648 1.162 1.162 0 0 0 .33366.81957l10.84241 10.8421a1.15762 1.15762 0 0 0 .37677.25211 1.1583 1.1583 0 0 0 .44467.08838c.00084 0 .0016-.00031.0025-.00031.00073 0 .0014.00031.0022.00031a1.15827 1.15827 0 0 0 .44467-.08838 1.15731 1.15731 0 0 0 .37677-.2521l10.84236-10.8421a1.16272 1.16272 0 0 0 .33397-.81958c-.0013-.30647-.12376-.59976-.34048-.81648a1.1616 1.1616 0 0 0-.81679-.34048 1.16114 1.16114 0 0 0-.81926.33366l-5.4012 5.4009c-.0078.0074-.01718.01255-.02482.02015L12 20.14011l-4.59776-4.59745c-.0074-.0074-.01659-.01238-.02419-.01954l-5.4015-5.40151a1.162 1.162 0 0 0-.81958-.33366Z\"},\"child\":[]}]})(props);\n};\nexport function SiVivaldi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C6.75 0 3.817 0 1.912 1.904.007 3.81 0 6.75 0 12s0 8.175 1.912 10.08C3.825 23.985 6.75 24 12 24c5.25 0 8.183 0 10.088-1.904C23.993 20.19 24 17.25 24 12s0-8.175-1.912-10.08C20.175.015 17.25 0 12 0zm-.168 3a9 9 0 016.49 2.648 9 9 0 010 12.704A9 9 0 1111.832 3zM7.568 7.496a1.433 1.433 0 00-.142.004A1.5 1.5 0 006.21 9.75l1.701 3c.93 1.582 1.839 3.202 2.791 4.822a1.417 1.417 0 001.41.75 1.5 1.5 0 001.223-.81l4.447-7.762A1.56 1.56 0 0018 8.768a1.5 1.5 0 10-2.828.914 2.513 2.513 0 01.256 1.119v.246a2.393 2.393 0 01-2.52 2.13 2.348 2.348 0 01-1.965-1.214c-.307-.51-.6-1.035-.9-1.553-.42-.72-.826-1.41-1.246-2.16a1.433 1.433 0 00-1.229-.754Z\"},\"child\":[]}]})(props);\n};\nexport function SiVivawallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.275 17.428c.376.777.949 1.223 1.572 1.228h.01c.619 0 1.191-.435 1.575-1.194l.504-1.08-4.9-10.387-3.388 1.58zm6.367.033c.382.76.957 1.195 1.575 1.195h.006c.625-.004 1.2-.45 1.574-1.226l4.567-9.852-3.389-1.581-4.844 10.381zm-1.605 1.206c-.74 1.245-1.905 1.977-3.18 1.977h-.022c-1.391-.01-2.643-.89-3.353-2.355C3.657 14.397 1.828 10.507 0 6.617l6.99-3.259 5.039 10.683 4.985-10.685L24 6.613 18.592 18.29c-.709 1.465-1.962 2.345-3.353 2.355h-.022c-1.275 0-2.442-.732-3.18-1.977Z\"},\"child\":[]}]})(props);\n};\nexport function SiVivino (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.476 18.034c0-1.087.889-1.989 1.988-1.989 1.1 0 1.989.902 1.989 1.989 0 1.1-.89 1.989-1.989 1.989-1.1 0-1.988-.89-1.988-1.99M12.043 24c-1.1 0-1.988-.902-1.988-1.989 0-1.099.889-1.988 1.988-1.988 1.087 0 1.989.889 1.989 1.988A2.003 2.003 0 0112.043 24M5.2 14.007c0-1.087.89-1.988 1.989-1.988 1.087 0 1.989.901 1.989 1.988 0 1.1-.902 1.989-1.99 1.989-1.098 0-1.988-.89-1.988-1.989m4.385-5.892c1.1 0 1.989.902 1.989 1.989 0 1.1-.89 1.976-1.989 1.976-1.1 0-1.988-.877-1.988-1.976 0-1.087.889-1.989 1.988-1.989m2.384-4.187c1.1 0 1.989.89 1.989 1.989 0 1.087-.89 1.988-1.989 1.988A2.003 2.003 0 019.98 5.917c0-1.1.902-1.99 1.99-1.99M14.401 0c1.1 0 1.99.89 1.99 1.989 0 1.087-.89 1.988-1.99 1.988a2.003 2.003 0 01-1.988-1.988c0-1.1.901-1.989 1.988-1.989M11.6 18.034c0 1.1-.89 1.989-1.99 1.989a1.995 1.995 0 01-1.988-1.99c0-1.086.902-1.988 1.989-1.988 1.1 0 1.989.902 1.989 1.989m-1.544-4.027c0-1.087.889-1.988 1.988-1.988 1.087 0 1.989.901 1.989 1.988 0 1.1-.902 1.989-1.989 1.989-1.1 0-1.988-.89-1.988-1.989m4.385-1.927c-1.1 0-1.99-.877-1.99-1.976 0-1.087.89-1.989 1.99-1.989 1.099 0 1.988.902 1.988 1.989 0 1.1-.89 1.976-1.988 1.976m4.36 1.927c0 1.1-.89 1.989-1.989 1.989-1.1 0-1.989-.89-1.989-1.989 0-1.087.89-1.988 1.99-1.988 1.098 0 1.988.901 1.988 1.988Z\"},\"child\":[]}]})(props);\n};\nexport function SiVivint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.102 2.04a.81.81 0 0 0-.553.218L.514 9.756A1.62 1.62 0 0 0 0 10.939V21.15c0 .447.362.81.809.81h16.584a.81.81 0 0 0 .808-.81V10.94a1.62 1.62 0 0 0-.514-1.184l-8.035-7.5a.804.804 0 0 0-.55-.217zm0 4.964 5.252 4.904v6.203H3.848v-6.203l5.254-4.904zM21.648 17.35a2.305 2.305 0 0 0-2.26 2.304 2.305 2.305 0 0 0 2.307 2.307A2.305 2.305 0 0 0 24 19.654a2.305 2.305 0 0 0-2.305-2.304 2.305 2.305 0 0 0-.047 0z\"},\"child\":[]}]})(props);\n};\nexport function SiVivo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.604 14.101c-1.159 0-1.262-.95-1.262-1.24 0-.29.103-1.242 1.262-1.242h2.062c1.16 0 1.263.951 1.263 1.242 0 .29-.104 1.24-1.263 1.24m-2.062-3.527c-2.142 0-2.333 1.752-2.333 2.287 0 .535.19 2.286 2.333 2.286h2.062c2.143 0 2.334-1.751 2.334-2.286 0-.535-.19-2.287-2.334-2.287m-5.477.107c-.286 0-.345.05-.456.213-.11.164-2.022 3.082-2.022 3.082-.06.09-.126.126-.206.126-.08 0-.145-.036-.206-.126 0 0-1.912-2.918-2.022-3.082-.11-.164-.17-.213-.456-.213h-.668c-.154 0-.224.12-.127.267l2.283 3.467c.354.521.614.732 1.196.732s.842-.21 1.196-.732l2.284-3.467c.096-.146.026-.267-.128-.267m-8.876.284c0-.203.08-.284.283-.284h.505c.203 0 .283.08.283.283v3.9c0 .202-.08.283-.283.283h-.505c-.203 0-.283-.08-.283-.283zm-1.769-.285c-.287 0-.346.05-.456.213-.11.164-2.022 3.082-2.022 3.082-.061.09-.126.126-.206.126-.08 0-.145-.036-.206-.126 0 0-1.912-2.918-2.023-3.082-.11-.164-.169-.213-.455-.213H.175c-.171 0-.224.12-.127.267l2.283 3.467c.355.521.615.732 1.197.732.582 0 .842-.21 1.196-.732l2.283-3.467c.097-.146.044-.267-.127-.267m1.055-.893c-.165-.164-.165-.295 0-.46l.351-.351c.165-.165.296-.165.46 0l.352.351c.165.165.165.296 0 .46l-.352.352c-.164.165-.295.165-.46 0z\"},\"child\":[]}]})(props);\n};\nexport function SiVk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m9.489.004.729-.003h3.564l.73.003.914.01.433.007.418.011.403.014.388.016.374.021.36.025.345.03.333.033c1.74.196 2.933.616 3.833 1.516.9.9 1.32 2.092 1.516 3.833l.034.333.029.346.025.36.02.373.025.588.012.41.013.644.009.915.004.98-.001 3.313-.003.73-.01.914-.007.433-.011.418-.014.403-.016.388-.021.374-.025.36-.03.345-.033.333c-.196 1.74-.616 2.933-1.516 3.833-.9.9-2.092 1.32-3.833 1.516l-.333.034-.346.029-.36.025-.373.02-.588.025-.41.012-.644.013-.915.009-.98.004-3.313-.001-.73-.003-.914-.01-.433-.007-.418-.011-.403-.014-.388-.016-.374-.021-.36-.025-.345-.03-.333-.033c-1.74-.196-2.933-.616-3.833-1.516-.9-.9-1.32-2.092-1.516-3.833l-.034-.333-.029-.346-.025-.36-.02-.373-.025-.588-.012-.41-.013-.644-.009-.915-.004-.98.001-3.313.003-.73.01-.914.007-.433.011-.418.014-.403.016-.388.021-.374.025-.36.03-.345.033-.333c.196-1.74.616-2.933 1.516-3.833.9-.9 2.092-1.32 3.833-1.516l.333-.034.346-.029.36-.025.373-.02.588-.025.41-.012.644-.013.915-.009ZM6.79 7.3H4.05c.13 6.24 3.25 9.99 8.72 9.99h.31v-3.57c2.01.2 3.53 1.67 4.14 3.57h2.84c-.78-2.84-2.83-4.41-4.11-5.01 1.28-.74 3.08-2.54 3.51-4.98h-2.58c-.56 1.98-2.22 3.78-3.8 3.95V7.3H10.5v6.92c-1.6-.4-3.62-2.34-3.71-6.92Z\"},\"child\":[]}]})(props);\n};\nexport function SiVlcmediaplayer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0319 0c-.8823 0-1.0545.136-1.0545.136-.1738.056-.3556.255-.4105.43L9.683 3.3808c.4729.1729 1.3222.4266 2.2337.4266 1.0987 0 2.017-.3494 2.3763-.5075L13.4352.566c-.055-.1755-.237-.3707-.4067-.4374 0 0-.1142-.1286-.9966-.1286zm3.5645 7.455c-.3601.34-1.3276.9373-3.6797.9373-2.2929 0-3.189-.5678-3.5213-.9113l-1.3887 4.4227c.2272.3614 1.2539 1.5594 4.8847 1.5594 3.7569 0 4.8539-1.3467 5.0649-1.6737zm-8.5897 4.4487l-1.0025 3.1922H4.3428c-.2486 0-.5097.1932-.5826.4315l-2.334 7.6317a.3962.3962 0 0 0-.0169.1537c-.0008.0053-.002.0099-.002.016 0 .0839.0233.226.0233.226.0322.2456.2612.4452.5098.4452h20.1192c.2487 0 .4768-.1994.5098-.4453 0 0 .0234-.142.0234-.226a.0245.0245 0 0 0-.0025-.01.3201.3201 0 0 0 .0024-.0313.4096.4096 0 0 0-.019-.1282l-2.3339-7.6318c-.0729-.2383-.334-.4314-.5826-.4314h-1.6636l.2005.6391c-.2407.4854-1.4886 2.38-6.3027 2.38-4.6003 0-5.8288-1.73-6.1107-2.3072z\"},\"child\":[]}]})(props);\n};\nexport function SiVmware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.5 10.1a.505.505 0 00-.197.048.497.497 0 00-.25.68l1.138 2.475c.179.38.38.592.721.592.342 0 .542-.22.72-.592l1.003-2.186a.144.144 0 01.144-.092.16.16 0 01.157.16v2.118a.535.535 0 101.066 0v-1.73a.531.531 0 01.566-.552.52.52 0 01.541.551v1.73a.531.531 0 00.53.593.539.539 0 00.535-.592v-1.73a.531.531 0 01.564-.552.52.52 0 01.543.551v1.73a.531.531 0 00.528.593.535.535 0 00.535-.592v-1.969a1.234 1.234 0 00-1.283-1.23 1.647 1.647 0 00-1.14.486 1.26 1.26 0 00-1.095-.483 1.807 1.807 0 00-1.074.483 1.287 1.287 0 00-.961-.483 1.177 1.177 0 00-1.158.786l-.729 1.716-.933-2.203.011-.004A.505.505 0 00.5 10.1zm18.43.06a.27.27 0 00-.266.274h.002v3.142a.27.27 0 10.535 0v-1.222c0-1.037.571-1.56 1.27-1.643a.266.266 0 00.238-.274.258.258 0 00-.266-.269 1.465 1.465 0 00-1.242.88v-.614a.266.266 0 00-.271-.274zm-6.735.008a.273.273 0 00-.25.217l-.912 2.627-.902-2.62a.28.28 0 00-.274-.22.266.266 0 00-.27.258.493.493 0 00.034.144l1.09 3.037.02-.007a.319.319 0 00.298.242.3.3 0 00.293-.242l.903-2.583.896 2.583a.3.3 0 00.293.242h.018a.319.319 0 00.293-.242l1.097-3.038a.512.512 0 00.033-.144.258.258 0 00-.265-.25.262.262 0 00-.258.209l-.918 2.63-.904-2.626a.285.285 0 00-.278-.217h-.025a.273.273 0 00-.012 0zm10.168.008a1.75 1.75 0 00-1.691 1.851 1.765 1.765 0 001.76 1.858l-.008.013a1.784 1.784 0 001.33-.539.228.228 0 00.082-.17.228.228 0 00-.379-.168 1.435 1.435 0 01-1.018.415 1.237 1.237 0 01-1.24-1.207h2.555a.247.247 0 00.246-.247c0-.945-.593-1.806-1.637-1.806zm-5.744.002a1.571 1.571 0 00-.158.006 2.384 2.384 0 00-1.078.205.22.22 0 00-.143.222.24.24 0 00.235.229.266.266 0 00.095-.024 1.822 1.822 0 01.834-.162c.691 0 1.07.334 1.07.979v.125a3.796 3.796 0 00-1.103-.15c-.892 0-1.52.4-1.52 1.16l-.003-.004c0 .736.671 1.117 1.34 1.117a1.575 1.575 0 001.298-.62v.343a.247.247 0 00.254.25.254.254 0 00.258-.262v-1.983a1.416 1.416 0 00-.379-1.046 1.571 1.571 0 00-1-.385zm5.719.43c.714 0 1.085.565 1.139 1.214h-2.278a1.222 1.222 0 011.139-1.215zm-5.885 1.382a3.75 3.75 0 011.057.153V12.49c0 .57-.539.973-1.2.973-.485 0-.904-.261-.904-.713 0-.467.375-.76 1.047-.76Z\"},\"child\":[]}]})(props);\n};\nexport function SiVodafone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12A12 12 0 0 0 12 24A12 12 0 0 0 24 12A12 12 0 0 0 12 0M16.25 1.12C16.57 1.12 16.9 1.15 17.11 1.22C14.94 1.67 13.21 3.69 13.22 6C13.22 6.05 13.22 6.11 13.23 6.17C16.87 7.06 18.5 9.25 18.5 12.28C18.54 15.31 16.14 18.64 12.09 18.65C8.82 18.66 5.41 15.86 5.39 11.37C5.38 8.4 7 5.54 9.04 3.85C11.04 2.19 13.77 1.13 16.25 1.12Z\"},\"child\":[]}]})(props);\n};\nexport function SiVoidlinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.818 12a3.82 3.82 0 0 1-3.82 3.82A3.82 3.82 0 0 1 8.178 12a3.82 3.82 0 0 1 3.82-3.82 3.82 3.82 0 0 1 3.82 3.82Zm3.179 9.73-2.726-2.725A8.212 8.212 0 0 1 12 20.212 8.212 8.212 0 0 1 3.788 12a8.212 8.212 0 0 1 1.209-4.269l-2.73-2.73A12 12 0 0 0 0 12c0 6.627 5.373 12 12 12a12 12 0 0 0 6.997-2.27zM12 0a12 12 0 0 0-6.997 2.27L7.73 4.994A8.212 8.212 0 0 1 12 3.788 8.212 8.212 0 0 1 20.212 12a8.212 8.212 0 0 1-1.209 4.269l2.73 2.73A12 12 0 0 0 24 12c0-6.627-5.373-12-12-12Z\"},\"child\":[]}]})(props);\n};\nexport function SiVoipdotms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.51 2.372c-.946 0-1.877.24-2.71.696a5.721 5.721 0 0 0-2.055 1.92l-5.177 8.047c-.928 1.446-3.076 1.656-3.92.943l4.051 6.343c.258.402.611.731 1.027.96a2.808 2.808 0 0 0 2.706 0 2.85 2.85 0 0 0 1.025-.96L24 2.371ZM0 8.309l2.228 3.521s.89 1.302 2.402 1.302c1.513 0 2.378-1.302 2.378-1.302l2.23-3.52Z\"},\"child\":[]}]})(props);\n};\nexport function SiVolkswagen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.36 0 0 5.36 0 12S5.36 24 12 24 24 18.64 24 12 18.64 0 12 0M12 1.41C13.2 1.41 14.36 1.63 15.43 2L12.13 9.13C12.09 9.17 12.09 9.26 12 9.26S11.91 9.17 11.87 9.13L8.57 2C9.64 1.63 10.8 1.42 12 1.42M6.9 2.74L10.72 10.97C10.8 11.14 10.89 11.19 11 11.19H13C13.12 11.19 13.2 11.14 13.29 10.97L17.06 2.74C18.64 3.64 20 4.93 20.96 6.47L15.6 16.84C15.56 16.93 15.5 16.97 15.47 16.97C15.39 16.97 15.39 16.89 15.34 16.84L13.29 12.3C13.2 12.13 13.12 12.09 13 12.09H11C10.89 12.09 10.8 12.13 10.71 12.3L8.66 16.84C8.61 16.89 8.62 16.97 8.53 16.97C8.44 16.97 8.44 16.89 8.4 16.84L3 6.47C3.94 4.93 5.32 3.64 6.9 2.74M2.06 8.53L8.23 20.53C8.31 20.7 8.4 20.83 8.62 20.83C8.83 20.83 8.91 20.7 9 20.53L11.87 14.14C11.91 14.06 11.96 14 12 14C12.09 14 12.09 14.1 12.13 14.14L15.04 20.53C15.13 20.7 15.21 20.83 15.43 20.83C15.64 20.83 15.73 20.7 15.81 20.53L22 8.53C22.37 9.6 22.59 10.76 22.59 12C22.54 17.79 17.79 22.59 12 22.59C6.21 22.59 1.46 17.79 1.46 12C1.46 10.8 1.67 9.65 2.06 8.53Z\"},\"child\":[]}]})(props);\n};\nexport function SiVolvo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.873 12.584h.49l-.001-1.452h-.489v-.322h1.94v.322h-.483v1.451h.449c.415 0 .687-.274.687-.646h.32v.972h-2.913v-.325zm4.313.327h1.134l.962-1.779h.482v-.322h-1.45v.322h.419l-.701 1.295-.71-1.295h.51l-.002-.322h-2.104v.322h.482l.978 1.779zM5.073 10.81H2.968v.322h.481l.98 1.779h1.133l.962-1.779h.482v-.322h-1.45v.322h.418l-.7 1.295-.71-1.295h.509v-.322zm3.707-.044c.975 0 1.498.486 1.498 1.096 0 .618-.494 1.111-1.493 1.111-.999 0-1.497-.493-1.497-1.111 0-.61.517-1.096 1.492-1.096zm.017.33c-.333-.005-.527.348-.534.753-.006.39.15.784.506.79.366.007.524-.39.53-.772.008-.405-.168-.764-.502-.77zm10.738-.33c.974 0 1.497.486 1.497 1.096 0 .618-.493 1.111-1.492 1.111-1 0-1.498-.493-1.498-1.111 0-.61.518-1.096 1.493-1.096zm-.517 1.083c-.007.39.15.784.506.79.366.007.524-.39.53-.772.008-.405-.168-.764-.502-.77-.333-.006-.527.347-.534.752zm2.857-6.667L20.656 6.4A10.26 10.26 0 0 1 22.308 12c0 5.693-4.615 10.308-10.308 10.308S1.692 17.693 1.692 12 6.307 1.692 12 1.692c2.07 0 3.996.61 5.611 1.66l1.219-1.219A11.944 11.944 0 0 0 12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12c0-2.533-.785-4.882-2.125-6.818zM18.036.472v.337c.728.394 1.413.859 2.047 1.382l-1.71 1.71a10.29 10.29 0 0 1 1.735 1.732l1.708-1.708c.524.636.989 1.322 1.384 2.038h.328V.473h-5.492z\"},\"child\":[]}]})(props);\n};\nexport function SiVonage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.279 11.617l-4.54-10.07H0l6.797 15.296a.084.084 0 0 0 .153 0zm9.898-10.07s-6.148 13.868-6.917 15.565c-1.838 4.056-3.2 5.07-4.588 5.289a.026.026 0 0 0 .004.052h4.34c1.911 0 3.219-1.285 5.06-5.341C17.72 15.694 24 1.547 24 1.547z\"},\"child\":[]}]})(props);\n};\nexport function SiVorondesign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0 1.6078 6v12L12 24l10.3922-6V6L12.0001 0zM8.3242 5.3765h3L7.5 12.0001h-3l3.8241-6.6236zm6 0h3L9.676 18.6235h-3l7.6482-13.247zm2.176 6.6236h3l-3.8242 6.6235h-3L16.5 12z\"},\"child\":[]}]})(props);\n};\nexport function SiVowpalwabbit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.872 21.356c.077.195.682 1.646 1.685 2.156 1.075.547 1.613.406 1.613.406s-.914-3.384-.108-6.076c.807-2.691 1.479-2.933 1.479-2.933s1.478.591 2.446 0c.968-.591 1.264-1.747 1.264-1.747s-.672-2.474-1.264-3.442c-.591-.967-1.227-1.48-2.016-1.828a235.34 235.34 0 0 0-1.508-.655 11.275 11.275 0 0 0-1.003-3.198C16.237 1.531 14.678 0 14.678 0s-.815.7-1.025 2.032c.56.497 1.462 1.45 2.258 2.42.4.485.906 1.227 1.31 1.846a26.053 26.053 0 0 0-2.6-2.626c-1.828-1.586-3.63-2.823-3.63-2.823s-1.29 2.016.243 4.785c1.048 1.778 3.704 3.31 3.704 3.31s-2.736.134-3.704.346c-.968.213-2.043.592-3.253 1.398-1.21.807-2.01 1.647-3.011 3.011-1 1.365-1.962 3.71-1.962 3.71s-.135-.188-1.049-.188c-.914 0-1.21.188-1.21.188s.027 2.312.592 3.441c.564 1.13 1.37 1.562 2.392 1.562.27-.002.834 0 .834 0s.699 1.1 1.129 1.369c.43.268 1.183.215 1.183.215h8.253s-.048-.619-.51-1.103c-.448-.466-.983-.608-1.117-.666a3.776 3.776 0 0 0-1.008-.167h-2.123s2.689-.095 4.274-1.936c.833-.967.914-2.15.833-2.742-.04-.292-.295-1.29-.752-1.882a5.905 5.905 0 0 0-1.183-1.129c-.516-.36-1.17-.642-1.909-.94 1.075.268 1.586.376 2.635 1.129 1.048.752 1.505 1.908 1.586 2.177.08.269.269.672.215 1.828-.108.968-.218 1.208-.484 1.72-.217.456-.427.742-.717 1.07Z\"},\"child\":[]}]})(props);\n};\nexport function SiVox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 8.198l4.182 7.604h2.442L8.15 13.07a4.276 4.276 0 0 1 2.054-4.872H7.112l-1.677 3.216-1.706-3.216zm14.342 0a4.24 4.24 0 0 1 1.923 2.206c.784 2.081-.098 4.415-2.145 5.398h2.767l1.564-1.754 1.42 1.754H24l-3.505-4.032 3.088-3.572H19.41l-.952 1.249-.931-1.249zm-2.09 1.596c-.949 0-1.913.69-2.074 1.775a2.132 2.132 0 0 0 2.064 2.483c1.268.01 2.192-1.126 2.156-2.18-.013-1.015-.877-2.08-2.146-2.078z\"},\"child\":[]}]})(props);\n};\nexport function SiVrchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.732 6.767H1.268A1.27 1.27 0 0 0 0 8.035v5.296c0 .7.57 1.268 1.268 1.268h18.594l1.725 2.22c.215.275.443.415.68.415.153 0 .296-.06.403-.167.128-.129.193-.308.193-.536l-.002-1.939A1.27 1.27 0 0 0 24 13.331V8.035c0-.7-.569-1.269-1.268-1.269Zm.8 6.564a.8.8 0 0 1-.8.801h-.34v.031l.004 2.371c0 .155-.05.233-.129.233s-.19-.079-.31-.235l-1.866-2.4H1.268a.8.8 0 0 1-.8-.8V8.064a.8.8 0 0 1 .8-.8h21.464a.8.8 0 0 1 .8.8v5.266ZM4.444 8.573c-.127 0-.225.041-.254.15l-.877 3.129-.883-3.128c-.03-.11-.127-.15-.254-.15-.202 0-.473.126-.473.311 0 .012.005.035.011.058l1.114 3.63c.058.173.265.254.485.254s.433-.08.484-.254l1.109-3.63c.005-.023.011-.04.011-.058 0-.179-.27-.312-.473-.312Zm2.925 2.36c.433-.132.757-.49.757-1.153 0-.918-.612-1.207-1.368-1.207H5.614a.234.234 0 0 0-.242.231v3.752c0 .156.184.237.374.237s.376-.081.376-.237V11.05h.484l.82 1.593c.058.115.156.179.26.179.219 0 .467-.203.467-.393a.155.155 0 0 0-.028-.092l-.756-1.403Zm-.61-.473h-.636V9.231h.635c.375 0 .618.162.618.618s-.242.612-.618.612Zm10.056.826h1.004l-.502-1.772-.502 1.772Zm4.684-3.095H9.366a.8.8 0 0 0-.8.8v3.383a.8.8 0 0 0 .8.8h12.132a.8.8 0 0 0 .8-.8V8.992a.8.8 0 0 0-.8-.801Zm-10.946 3.977c.525 0 .571-.374.589-.617.011-.179.173-.236.369-.236.26 0 .38.075.38.369 0 .698-.57 1.142-1.379 1.142-.727 0-1.327-.357-1.327-1.322v-1.61c0-.963.606-1.322 1.333-1.322.802 0 1.374.427 1.374 1.097 0 .3-.121.37-.375.37-.214 0-.37-.064-.375-.238-.012-.178-.052-.57-.6-.57-.387 0-.606.213-.606.663v1.61c0 .45.219.664.617.664Zm4.703.388c0 .156-.19.237-.375.237s-.375-.081-.375-.237V10.9h-1.299v1.656c0 .156-.19.237-.375.237s-.375-.081-.375-.237V8.804c0-.161.185-.23.375-.23s.375.069.375.23v1.507h1.299V8.804c0-.161.185-.23.375-.23s.375.069.375.23v3.752Zm3.198.236c-.127 0-.225-.04-.254-.15l-.22-.768h-1.322l-.219.768c-.029.11-.127.15-.254.15-.202 0-.473-.127-.473-.311 0-.012.006-.035.012-.058l1.114-3.63c.051-.173.265-.254.478-.254s.433.08.485.254l1.114 3.63c.006.023.012.04.012.058 0 .179-.272.311-.473.311Zm2.989-3.543h-.843v3.306c0 .156-.19.237-.375.237s-.375-.081-.375-.237V9.25h-.848c-.15 0-.237-.157-.237-.34 0-.162.075-.336.237-.336h2.44c.162 0 .238.173.238.335 0 .18-.087.34-.237.34Z\"},\"child\":[]}]})(props);\n};\nexport function SiVsco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.376 0 0 5.376 0 12s5.376 12 12 12 12-5.376 12-12S18.624 0 12 0zm11.52 12c0 .408-.023.792-.072 1.176l-2.04-.24c.024-.312.05-.624.05-.936 0-.288-.025-.6-.05-.888l2.04-.24c.072.384.072.744.072 1.128zM.479 12c0-.384.024-.769.049-1.152l2.04.24c-.024.312-.047.6-.047.912s.023.6.047.912l-2.04.24C.479 12.769.479 12.384.479 12zm20.472-3.096l1.921-.72c.264.72.433 1.464.552 2.232l-2.04.24c-.097-.6-.24-1.2-.433-1.752zM21 12c0 .6-.072 1.176-.167 1.752l-2.017-.455c.071-.409.119-.841.119-1.297s-.048-.912-.119-1.344l2.017-.457c.118.577.167 1.177.167 1.801zm-9 6.456C8.435 18.455 5.545 15.565 5.544 12 5.545 8.435 8.435 5.545 12 5.544c3.565.001 6.455 2.891 6.456 6.456.008 3.559-2.871 6.448-6.429 6.456H12zM12.216 21v-2.064c.885-.029 1.756-.224 2.568-.575l.888 1.872c-1.09.482-2.264.742-3.456.767zm-3.936-.791l.912-1.873c.792.359 1.656.575 2.568.6V21c-1.202-.023-2.386-.293-3.48-.791zM3 12c0-.624.072-1.224.192-1.824l2.016.456c-.098.45-.146.908-.144 1.368 0 .432.048.864.12 1.272l-2.016.455C3.051 13.159 2.994 12.58 3 12zm8.76-9v2.064c-.877.029-1.74.224-2.544.576l-.888-1.871C9.411 3.291 10.577 3.03 11.76 3zm3.935.792l-.911 1.872c-.809-.363-1.682-.559-2.568-.576V3.024c1.248 0 2.424.288 3.479.768zm5.088 4.656c-.231-.56-.513-1.098-.84-1.608l1.681-1.152c.407.648.768 1.32 1.056 2.04l-1.897.72zm-.07 1.296l-2.018.456c-.23-.85-.621-1.648-1.151-2.352l1.632-1.295c.72.959 1.248 2.015 1.537 3.191zm-3.457-2.256c-.572-.667-1.264-1.22-2.04-1.633l.912-1.871c1.056.549 1.993 1.299 2.76 2.208l-1.632 1.296zm-.6-3.744l.96-1.824c.672.384 1.295.816 1.896 1.32L18.145 4.8c-.461-.401-.959-.754-1.489-1.056zm-.408-.216c-.54-.266-1.102-.483-1.68-.648l.504-1.992c.744.216 1.464.48 2.159.84l-.983 1.8zm-2.16-.768c-.6-.144-1.2-.216-1.824-.239V.479c.793.024 1.584.12 2.328.289l-.504 1.992zm-2.28-.239c-.605.021-1.207.094-1.8.216L9.528.744c.72-.168 1.487-.265 2.28-.265v2.042zm-2.28.334c-.586.167-1.156.384-1.704.649l-.96-1.824c.691-.343 1.415-.616 2.16-.816l.504 1.991zm-2.112.865c-.529.294-1.027.64-1.488 1.032L4.56 3.216c.6-.504 1.224-.936 1.896-1.319l.96 1.823zm.48.264l.888 1.871c-.792.408-1.464.96-2.04 1.608L5.136 6.168c.775-.895 1.711-1.636 2.76-2.184zM4.848 6.552l1.608 1.295c-.53.705-.921 1.503-1.152 2.353l-2.016-.456c.312-1.2.84-2.28 1.56-3.192zM3.24 8.4l-1.92-.72c.287-.72.648-1.416 1.08-2.04l1.68 1.176c-.341.494-.623 1.025-.84 1.584zm-.168.455c-.192.577-.36 1.152-.432 1.776L.6 10.393c.12-.769.288-1.537.553-2.257l1.919.719zm-.456 4.513c.096.6.239 1.2.432 1.776l-1.92.72c-.271-.728-.456-1.485-.552-2.257l2.04-.239zm.624 2.208c.239.576.528 1.104.84 1.607L2.4 18.336c-.435-.629-.797-1.306-1.08-2.016l1.92-.744zm.024-1.392l2.017-.456c.216.864.624 1.681 1.128 2.376L4.8 17.4c-.725-.957-1.247-2.051-1.536-3.216zm3.432 2.28c.577.672 1.272 1.248 2.064 1.656l-.912 1.872c-1.063-.557-2.009-1.315-2.784-2.232l1.632-1.296zm.72 3.815l-.96 1.825c-.674-.376-1.31-.819-1.896-1.321l1.368-1.535c.456.407.936.744 1.488 1.031zm.408.217c.528.264 1.104.48 1.705.647l-.504 1.992c-.747-.196-1.471-.469-2.16-.815l.959-1.824zm2.16.768c.576.12 1.176.193 1.8.217v2.039c-.774-.026-1.544-.114-2.305-.264l.505-1.992zm2.28.216c.605-.021 1.207-.094 1.801-.217l.479 1.992c-.749.168-1.513.264-2.28.287V21.48zm2.257-.336c.586-.165 1.155-.382 1.703-.647l.96 1.824c-.688.35-1.412.623-2.159.815l-.504-1.992zm2.086-.865c.528-.287 1.032-.647 1.488-1.031l1.369 1.535c-.588.502-1.223.945-1.896 1.321l-.961-1.825zm-.479-.263l-.888-1.871c.788-.414 1.489-.977 2.064-1.656l1.606 1.296c-.778.91-1.722 1.668-2.782 2.231zm3.071-2.592l-1.607-1.296c.532-.708.916-1.517 1.128-2.376l2.017.456c-.311 1.157-.831 2.248-1.538 3.216zM20.76 15.6l1.92.721c-.288.72-.648 1.392-1.079 2.04l-1.682-1.177c.337-.504.624-1.032.841-1.584zm.168-.455c.192-.553.336-1.152.433-1.752l2.039.239c-.11.761-.294 1.508-.551 2.232l-1.921-.719zm.456-9.841l-1.681 1.152c-.358-.49-.76-.947-1.199-1.368l1.368-1.536c.552.552 1.056 1.128 1.512 1.752zM4.2 3.528l1.368 1.536c-.456.408-.84.864-1.2 1.368l-1.68-1.176c.431-.636.94-1.216 1.512-1.728zM2.664 18.744l1.68-1.152c.36.48.769.937 1.2 1.369l-1.368 1.535c-.548-.545-1.054-1.131-1.512-1.752zm17.16 1.729l-1.368-1.537c.432-.407.841-.863 1.199-1.344l1.682 1.176c-.457.6-.961 1.175-1.513 1.705z\"},\"child\":[]}]})(props);\n};\nexport function SiVscodium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.583.54a1.467 1.467 0 0 0-.441 2.032c2.426 3.758 2.999 6.592 2.75 9.075-1.004 4.756-3.187 5.721-5.094 5.721-1.863 0-1.364-3.065.036-3.962.836-.522 1.906-.861 2.728-.861.814 0 1.474-.658 1.474-1.47 0-.812-.66-1.47-1.474-1.47-.96 0-1.901.202-2.78.545.18-.847.246-1.762.014-2.735-.352-1.477-1.367-2.889-3.128-4.257a1.476 1.476 0 0 0-2.069.256c-.5.64-.384 1.564.259 2.063 1.435 1.114 1.908 1.939 2.07 2.618.162.679.032 1.407-.293 2.408-.416 1.349-.9 2.553-1.11 3.708-.105.568-.114 1.187-.14 1.68-1.034-1.006-1.438-2.336-1.438-4.279 0-.811-.66-1.47-1.474-1.47-.814.001-1.473.659-1.473 1.47 0 2.654.776 5.179 2.855 6.863 1.883 1.793 6.67 1.13 6.67 4.01 0 .812 1.19 1.208 2.004 1.208.834 0 1.885-.558 1.885-1.208 0-3.267 3.443-5.253 9.11-5.244A1.472 1.472 0 0 0 24 15.773 1.472 1.472 0 0 0 22.53 14.3c-.388 0-.765.013-1.138.035.634-1.49.915-3.13.857-4.903a1.473 1.473 0 0 0-1.522-1.42 1.472 1.472 0 0 0-1.425 1.517c.076 2.32-.01 4.393-1.74 5.485-.49.31-1.062.58-1.604.58.42-1.145.738-2.353.869-3.655.083-.83.091-1.818-.003-2.585-.148-1.188-.325-2.535.126-3.55.405-.874 1.313-1.24 2.645-1.24.814 0 1.473-.659 1.473-1.47 0-.811-.659-1.47-1.473-1.47-1.98 0-3.481 1.042-4.332 2.3-.445-.95-.987-1.929-1.642-2.943a1.474 1.474 0 0 0-2.037-.44z\"},\"child\":[]}]})(props);\n};\nexport function SiVtex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2027 1.7925H4.2812c-1.3897 0-2.2795 1.4698-1.6293 2.6917l1.7927 3.3773H1.1947a1.2 1.2 0 0 0-.5873.1537 1.1924 1.1924 0 0 0-.4356.421 1.1847 1.1847 0 0 0-.0342 1.1683l5.766 10.858c.1017.191.2537.3507.4399.4622a1.1996 1.1996 0 0 0 1.2326 0 1.1913 1.1913 0 0 0 .4398-.4623l1.566-2.933 1.9647 3.7006c.6914 1.3016 2.5645 1.304 3.2584.0038L23.7878 4.416c.635-1.1895-.2314-2.6235-1.5851-2.6235ZM14.1524 8.978l-3.8733 7.2533a.7932.7932 0 0 1-.2927.3074.7986.7986 0 0 1-.82 0 .7933.7933 0 0 1-.2927-.3074L5.0378 9.0086a.7883.7883 0 0 1 .0208-.7776.7933.7933 0 0 1 .2891-.281.7985.7985 0 0 1 .3906-.1033h7.7307a.7769.7769 0 0 1 .381.0998.7717.7717 0 0 1 .2823.2736.7672.7672 0 0 1 .02.758z\"},\"child\":[]}]})(props);\n};\nexport function SiVuedotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24,1.61H14.06L12,5.16,9.94,1.61H0L12,22.39ZM12,14.08,5.16,2.23H9.59L12,6.41l2.41-4.18h4.43Z\"},\"child\":[]}]})(props);\n};\nexport function SiVuetify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.312 12.564 12.636 1.2H0l6.312 11.364ZM14.94 1.2 7.464 14.64 12 22.8 24 1.2h-9.06Zm4.98 2.4L12 17.856l-1.788-3.216L16.344 3.6h3.576ZM6.312 7.62 4.08 3.6h4.476L6.312 7.62Z\"},\"child\":[]}]})(props);\n};\nexport function SiVulkan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.3417 15.336h-.936v-2.991c.299.167.694.474.936.769zm-7.8972 0h-1.167L3.7543 10.63h1.061l1.048 3.309h.013l1.061-3.309h1.0681zm4.7001 0h-.89v-.474h-.02a1.051 1.051 0 01-.462.429 1.36 1.36 0 01-.58.132 1.63 1.63 0 01-.616-.099.89.89 0 01-.379-.28 1.11 1.11 0 01-.195-.442 2.768 2.768 0 01-.0561-.577v-2.096h.936v1.925c0 .281.044.491.132.629.088.139.244.208.468.208.255 0 .439-.076.554-.227.114-.152.171-.401.171-.748V11.93h.9361zm3.3521-2.05l-.002-.132 1.18-1.226h1.108l-1.285 1.252 1.43 2.155h-1.134zm2.602-.31c.013-.22.068-.402.165-.547a1.13 1.13 0 01.3691-.349 1.6 1.6 0 01.504-.188 2.9 2.9 0 01.564-.056c.171 0 .345.012.521.036.176.024.336.072.481.142.145.07.264.168.356.293.092.125.138.291.138.498v1.773c0 .154.009.301.026.442a.799.799 0 00.092.316h-.949a1.32 1.32 0 01-.066-.329 1.208 1.208 0 01-.528.323 2.135 2.135 0 01-.62.092c-.163 0-.314-.02-.455-.059a1.018 1.018 0 01-.369-.185.856.856 0 01-.247-.316 1.073 1.073 0 01-.089-.455c0-.193.034-.353.102-.478a.856.856 0 01.264-.3c.108-.075.231-.131.369-.168.138-.037.278-.067.418-.089a7.9902 7.9902 0 01.415-.053c.136-.013.257-.033.362-.059a.637.637 0 00.251-.116c.062-.051.09-.124.086-.221a.5.5 0 00-.05-.241.365.365 0 00-.132-.138.521.521 0 00-.191-.066 1.56 1.56 0 00-.234-.017c-.185 0-.33.039-.435.119-.105.079-.167.211-.185.396zm2.1622.693a.415.415 0 01-.148.082c-.059.02-.123.036-.191.05a3.2101 3.2101 0 01-.214.033c-.075.009-.149.02-.224.033-.07.013-.14.031-.208.053a.618.618 0 00-.178.089.42.42 0 00-.122.142.455.455 0 00-.046.218c0 .084.015.154.046.211a.362.362 0 00.125.135.523.523 0 00.185.069c.07.013.143.02.218.02.185 0 .328-.031.429-.092a.616.616 0 00.224-.221.712.712 0 00.089-.26c.011-.088.016-.158.017-.211zm1.542-1.741h.89v.474h.02c.119-.198.272-.342.461-.432.189-.09.382-.135.58-.135.251 0 .456.034.617.102.16.068.286.163.379.283.092.121.1571.268.1941.441.037.176.056.368.056.579v2.096h-.936v-1.925c0-.281-.044-.491-.132-.629-.088-.138-.244-.208-.468-.208-.255 0-.439.076-.554.227-.114.151-.171.401-.171.748v1.786h-.9361zm-9.0383-.587v3.996h.936v-3.48a11.5774 11.5774 0 00-.936-.516zm-9.5483.17c.542-1.5901 3.7861-2.1722 7.2463-1.3021 2.075.522 3.771 1.534 4.8791 2.535-.503-1.327-2.94-3.22-6.2952-3.868-3.7941-.734-7.5362-.089-7.9992 1.595-.334 1.216 1.134 2.641 3.406 3.6151-1.021-.827-1.518-1.755-1.237-2.575zm12.1264.655v-1.5361h-.936v.466c.399.357.716.72.936 1.07z\"},\"child\":[]}]})(props);\n};\nexport function SiVultr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.36 2.172A1.194 1.194 0 007.348 1.6H1.2A1.2 1.2 0 000 2.8a1.211 1.211 0 00.182.64l11.6 18.4a1.206 1.206 0 002.035 0l3.075-4.874a1.229 1.229 0 00.182-.64 1.211 1.211 0 00-.182-.642zm10.349 8.68a1.206 1.206 0 002.035 0L21.8 9.178l2.017-3.2a1.211 1.211 0 00.183-.64 1.229 1.229 0 00-.183-.64l-1.6-2.526a1.206 1.206 0 00-1.016-.571h-6.148a1.2 1.2 0 00-1.201 1.2 1.143 1.143 0 00.188.64z\"},\"child\":[]}]})(props);\n};\nexport function SiVyond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.55 16.382 0 7.616h1.328l.928 6.18.932-6.18h1.328l-1.55 8.766H1.55zm5.486-7.61H6.022l1.166 3.776v2.68h.924v-2.68L9.28 8.772H8.262L7.65 11.35l-.614-2.58v.002zm5.12 1.92c0-.324-.128-.482-.372-.482s-.37.16-.37.482v2.616c0 .324.126.492.37.492s.372-.166.372-.492v-2.616zm-.344-1.256c.69 0 1.144.468 1.144 1.262v2.52c0 .872-.432 1.346-1.172 1.346s-1.162-.468-1.162-1.376v-2.52c0-.766.44-1.24 1.19-1.24m5.032-.656v4.2l-1.344-4.2h-.896v6.456h.924v-3.944l1.316 3.944h.936V8.772h-.936zm5.07 6.32c.508 0 .706-.322.706-.92v-4.22c0-.72-.336-1.044-1.08-1.044h-.31v6.184h.684zM19.89 7.616h1.924c1.504 0 2.186.784 2.186 2.408v3.912c0 1.678-.62 2.448-2.122 2.448H19.89V7.616z\"},\"child\":[]}]})(props);\n};\nexport function SiW3Schools (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.228 5.464s.605.648 1.45.648c.666 0 1.151-.403 1.151-.955 0-.677-.619-.989-1.368-.989h-.441l-.264-.595 1.17-1.387c.25-.298.462-.485.462-.485s-.188.01-.567.01h-1.905V.713h3.902v.73L22.253 3.25c.883.125 1.747.754 1.747 1.862 0 1.09-.825 2.098-2.25 2.098-1.359 0-2.112-.855-2.112-.855l.59-.892zm-7.611 1.348 5.154 9.176 2.543-4.535-4.866-8.662H9.785L7.438 6.97 5.092 2.79H0l7.41 13.197.028-.048.03.048 5.149-9.176zM.053 22.208h.753c0 .22.192.431.533.431.317 0 .528-.158.528-.37 0-.181-.14-.263-.38-.316l-.431-.11c-.73-.192-.917-.58-.917-.994 0-.504.5-.964 1.205-.964.576 0 1.228.293 1.219 1.012H1.8c0-.22-.202-.36-.432-.36-.25 0-.423.144-.423.346 0 .168.159.264.346.307l.518.14c.73.186.86.642.86.94 0 .657-.658 1.017-1.316 1.017-.638 0-1.286-.388-1.3-1.08zm3.282-.624c0-1.027.826-1.7 1.762-1.7.561 0 1.017.25 1.315.625l-.567.45a.96.96 0 0 0-.734-.326c-.561 0-.965.404-.965.95 0 .543.404.956.965.956a.96.96 0 0 0 .734-.327l.567.451a1.647 1.647 0 0 1-1.315.624c-.936 0-1.762-.676-1.762-1.703zm6.954-.197V23.2h-.806v-1.756c0-.519-.312-.797-.672-.797-.37 0-.825.216-.825.845v1.713h-.807v-5h.811v2.25c.159-.394.682-.576 1.003-.576.835.005 1.296.566 1.296 1.507zm.845.197c0-1.027.796-1.7 1.718-1.7.921 0 1.727.673 1.727 1.7s-.806 1.703-1.727 1.703c-.922 0-1.718-.676-1.718-1.703zm2.634 0c0-.557-.417-.95-.916-.95-.5 0-.907.393-.907.95 0 .566.408.955.907.955.499 0 .916-.39.916-.955zm1.498 0c0-1.027.796-1.7 1.718-1.7.921 0 1.727.673 1.727 1.7s-.806 1.703-1.727 1.703c-.917 0-1.718-.676-1.718-1.703zm2.634 0c0-.557-.417-.95-.916-.95-.5 0-.907.393-.907.95 0 .566.408.955.907.955.504 0 .916-.39.916-.955zm1.704 1.622v-5h.806v5h-.806zm1.685-.998h.753c0 .22.192.431.533.431.316 0 .528-.158.528-.37 0-.181-.14-.263-.38-.316l-.431-.11c-.73-.192-.917-.58-.917-.994 0-.504.499-.964 1.205-.964.575 0 1.228.293 1.219 1.012h-.768c0-.22-.202-.36-.432-.36-.25 0-.423.144-.423.346 0 .168.159.264.346.307l.518.14c.73.186.86.642.86.94 0 .657-.658 1.017-1.316 1.017-.638 0-1.281-.388-1.295-1.08z\"},\"child\":[]}]})(props);\n};\nexport function SiWacom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.2432 9.8765c-.4754 0-.7006.05-.9445.1439l-.0438.0187.269.4754.0312-.0125c.1814-.0751.3816-.1001.7569-.1001h.4003c.588 0 .9194.294.9194.8069v1.5762c0 .5129-.3377.8069-.9194.8069h-.6568c-.6005 0-.8944-.244-.8944-.7443 0-.4942.294-.7381.8944-.7381h.9132v-.5254h-.9382c-.8882 0-1.4011.4628-1.4011 1.2697 0 .7819.538 1.2635 1.401 1.2635h.7069c.982 0 1.4324-.6567 1.4324-1.2635V11.14c0-.6067-.4504-1.2635-1.4324-1.2635zM9.7764 11.14c0-.6067.4503-1.2635 1.4324-1.2635h.6129c.5004.0063.8257.075 1.0884.2502l.0375.0188-.3065.444-.0312-.0187c-.2002-.119-.4441-.169-.857-.169H11.24c-.5942 0-.9194.2877-.9194.807v1.5762c0 .5192.3252.8069.9194.8069h.5129c.4129 0 .663-.05.857-.169l.0312-.0187.3065.4441-.0375.025c-.269.169-.5942.244-1.0946.244h-.6067c-.9821 0-1.4324-.6567-1.4324-1.2635zm6.5426 1.6513c0 .5129-.3378.8069-.9195.8069h-.6505c-.5942 0-.9194-.2878-.9194-.807V11.215c0-.513.3377-.8068.9194-.8068h.6505c.588 0 .9195.2939.9195.8068zm-.9007-2.9085h-.6943c-.9883 0-1.4386.6567-1.4386 1.2634V12.86c0 .6067.4503 1.2635 1.4323 1.2635h.7006c.982 0 1.4324-.6568 1.4324-1.2635v-1.714c.0062-.6067-.4441-1.2634-1.4324-1.2634zm3.4652.0125c.5692 0 .907.1375 1.1697.4752.2627-.3377.6067-.4753 1.1696-.4753.8444 0 1.3949.4816 1.3949 1.226v2.9898h-.5317V11.19c0-.5191-.294-.7693-.8882-.7693-.5629 0-.8757.2564-.8757.7193v2.971h-.5379V11.14c0-.463-.3127-.7193-.8757-.7193-.6004 0-.8882.2502-.8882.7693v2.921h-.5379v-2.9899c.0063-.7443.5504-1.2259 1.4011-1.2259zm4.6912.2563c.0438 0 .075.0063.0938.0188.025.0125.0313.0375.025.0625 0 .0313-.0125.0563-.0438.0688-.0187.0125-.0438.0125-.075.0125h-.0688v-.1626zm.1376-.0313c-.0313-.0125-.0688-.0187-.1251-.0187l-.1564-.0063v.4504h.0813v-.1752h.0626c.0438 0 .0688 0 .0875.0125.0313.0126.0438.0501.0438.1001v.0626h.0751v-.0063c-.0063-.0062-.0063-.0125-.0063-.025v-.0626c0-.025-.0062-.0437-.025-.0688-.0125-.025-.0375-.0375-.0751-.0437.0251 0 .0501-.0063.0626-.0188.0313-.0188.0438-.05.0438-.0876 0-.0563-.025-.0938-.0688-.1126zm-.4691.2065c0-.1.0312-.1814.1-.2502.0688-.0688.1564-.1.2502-.1064.1001 0 .1814.0376.2502.1064.0688.0688.1001.1501.1001.2502 0 .1-.0313.1813-.1001.2501-.0688.069-.1501.1064-.2502.1064-.1 0-.1814-.0375-.2502-.1064-.0688-.0688-.1-.15-.1-.25zm.3502.4065c.1126 0 .2064-.0375.2878-.1188.0813-.075.1188-.1752.1188-.294 0-.1126-.0375-.2064-.1188-.2877-.0751-.0813-.1752-.1189-.2878-.1189s-.2064.0376-.2877.119c-.0813.0812-.1188.175-.1188.2876 0 .1188.0375.2127.1188.294.0751.0813.1751.1188.2877.1188zm-18.996 2.0954v-2.921l.5379-.0063v2.99c-.0063.7442-.5505 1.2258-1.4011 1.2258-.5692 0-.907-.1376-1.1697-.4754-.2627.3378-.6005.4754-1.1697.4754C.5504 14.1172 0 13.6356 0 12.8913V9.9014l.5317.0063v2.921c0 .5192.294.7694.8882.7694.5629 0 .8756-.2565.8756-.7194v-2.971h.538v2.971c0 .463.3127.7194.8756.7194.6005 0 .8882-.2502.8882-.7694z\"},\"child\":[]}]})(props);\n};\nexport function SiWagmi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.7391 13.2065c0 .7564.6132 1.3696 1.3696 1.3696h2.7391c.7564 0 1.3696-.6132 1.3696-1.3696V7.7283c0-.7564.6132-1.3696 1.3696-1.3696s1.3695.6132 1.3695 1.3696v5.4782c0 .7564.6132 1.3696 1.3696 1.3696h2.7391c.7564 0 1.3696-.6132 1.3696-1.3696V7.7283c0-.7564.6131-1.3696 1.3695-1.3696s1.3696.6132 1.3696 1.3696v8.2174c0 .7564-.6132 1.3695-1.3696 1.3695H1.3696C.6132 17.3152 0 16.7021 0 15.9457V7.7283c0-.7564.6132-1.3696 1.3696-1.3696s1.3695.6132 1.3695 1.3696zm19.4348 4.4348c1.0085 0 1.8261-.8176 1.8261-1.826 0-1.0086-.8176-1.8262-1.826-1.8262-1.0086 0-1.8262.8176-1.8262 1.8261 0 1.0085.8176 1.826 1.8261 1.826z\"},\"child\":[]}]})(props);\n};\nexport function SiWagtail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.1812 0c-2.641 0-4.11 1.969-4.732 3.313L4.0175 16.9734l2.0979-.3927L2.2627 24l2.688-.4822 2.0433-5.8379c5.8146 0 13.279-2.0877 12.2382-9.9063 0 0-.634-3.151-4.7436-2.3013-.4163-1.4205-.3419-2.4749.5662-3.4343 1.2487-1.3192 3.1822-.5958 3.1822-.5958l.002-1.0877C17.5596.0565 16.9059 0 16.1813 0zm2.417 2.5229a.4955.4955 0 1 0 0 .991.4955.4955 0 0 0 0-.991zm1.502 1.029l-1.2918 1.5742h2.9289zM16.374 8.3422l.3033.0105-.0407.5502-.0374.2886c-.0144.1048-.0252.2188-.051.3388l-.0737.383-.1068.4193c-.0422.1448-.0937.2935-.1428.4484a14.128 14.128 0 0 1-.1863.4678l-.1128.2374-.0574.1207-.066.1184-.1343.2399c-.0502.0778-.1008.1563-.152.2354l-.0772.119-.0853.1146c-.0578.0762-.1137.1546-.1741.2303-.1258.1472-.2494.2993-.3902.438-.1335.1453-.2843.2754-.4312.4097l-.231.19c-.0764.0644-.1598.12-.2393.1803-.3235.2336-.6618.4464-1.01.626-.3473.1805-.697.3432-1.0442.4767-.3467.1351-.686.2538-1.0122.3513-.3253.1004-.6363.1829-.9243.2547-.5762.1422-1.061.2393-1.4002.3065l-.5337.1026.531-.1155c.3374-.0754.8196-.184 1.391-.3397.2855-.0785.5935-.1682.9148-.276.3223-.1047.6567-.2308.9972-.373.3413-.1407.6833-.31 1.0217-.4962.3392-.1853.6668-.4028.9782-.6391.0764-.0611.1567-.1172.2298-.182l.2212-.191c.1401-.1346.2841-.2646.4104-.4091.1337-.138.2499-.2887.3685-.4341.0567-.0747.109-.1521.1632-.2271l.08-.1128.0719-.1168.1413-.231.1241-.2348.0609-.1155.0526-.118.1033-.2314c.061-.1552.1165-.3078.1688-.4556.0438-.1509.09-.2953.1274-.436l.0934-.4074.0623-.3721c.0223-.1163.03-.2273.0415-.3291.0108-.102.0208-.1956.0296-.2803l.0267-.5345Z\"},\"child\":[]}]})(props);\n};\nexport function SiWails (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m19.67 5.252-7.856 5.039-.369-.459-8.69-.283 1.891 1.904 5.221.106 1.63 1.656-5.878.662 1.77 1.783 5.34-1.185.003-.006.993 1.168-3.079 3.11 7.399.001-1.582-5.002 2.209 3.14H24l-5.385-2.415h4.121l-5.384-2.418h4.117L16.297 9.73l1.088-1.443 4.09-1.076-3.467.248 1.662-2.207zm-3.635 2.322-6.039.43 1.455 1.826 1.813-.476 2.771-1.78zm-.252 2.84-.86 1.145-.001-.002.154-.205.707-.938zM0 12.2l5.615 1.033-1.017-1.027L0 12.2z\"},\"child\":[]}]})(props);\n};\nexport function SiWakatime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 2.824a9.176 9.176 0 1 1 0 18.352 9.176 9.176 0 0 1 0-18.352zm5.097 5.058c-.327 0-.61.19-.764.45-1.025 1.463-2.21 3.162-3.288 4.706l-.387-.636a.897.897 0 0 0-.759-.439.901.901 0 0 0-.788.492l-.357.581-1.992-2.943a.897.897 0 0 0-.761-.446c-.514 0-.903.452-.903.96a1 1 0 0 0 .207.61l2.719 3.96c.152.272.44.47.776.47a.91.91 0 0 0 .787-.483c.046-.071.23-.368.314-.504l.324.52c-.035-.047.076.113.087.13.024.031.054.059.078.085.019.019.04.036.058.052.036.033.08.056.115.08.025.016.052.028.076.04.029.015.06.024.088.035.058.025.122.027.18.04.031.004.064.003.092.005.29 0 .546-.149.707-.36 1.4-2 2.842-4.055 4.099-5.849A.995.995 0 0 0 18 8.842c0-.508-.389-.96-.903-.96\"},\"child\":[]}]})(props);\n};\nexport function SiWalkman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.838 6.377a3.624 3.624 0 0 0-.833.086c-1.696.375-2.56 1.674-2.535 3.027.022 1.328-.592 2.51-1.911 2.663-1.28.154-1.861-.835-1.946-2.009-.083-1.159-.875-2.076-2.099-1.802-1.044.227-1.785 1.163-1.846 2.339-.065 1.22-.547 2.24-1.425 2.343-.841.097-1.261-.933-1.317-1.75-.054-.803-.453-1.822-1.497-1.59C.446 9.9.017 11.128.001 11.94c-.017.82.333 1.914 1.27 1.853.726-.048 1.275.636 1.291 1.67.014 1.008.568 2.16 1.665 2.162 1.16 0 1.799-.982 1.828-2.366.027-1.2.757-2.06 1.555-2.147.827-.087 1.588.635 1.674 1.957.091 1.344.77 2.517 2.568 2.517 1.947 0 2.457-1.477 2.421-2.889-.036-1.397 1.03-2.367 2.318-2.544 1.404-.192 2.862-1.246 2.687-3.382-.138-1.701-1.242-2.374-2.44-2.393zm3.999 5.638a3.909 3.909 0 0 0-.318.02c-1.6.16-2.762 1.27-2.644 2.893.12 1.65 1.47 2.679 3.133 2.679 1.769 0 3.165-1.154 2.975-2.992-.178-1.69-1.571-2.632-3.146-2.6Z\"},\"child\":[]}]})(props);\n};\nexport function SiWallabag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.376.0007c-.0433-.0046-.0911.014-.1388.0528-.1028.0835-.9982.2919-1.529.7058-.857.6687-1.3854 1.9404-1.6248 2.6435a5.6065 5.6065 0 00-.047.1408c-.1116.2692-.3343.2698-.3343.2698a3.0022 3.0022 0 00-.3246-.0176c-.097 0-.1948.0043-.2913.0137-.0022.0004-.0037-.0002-.006 0-.284.0419-.4404-.3045-.473-.3871-.332-.9534-1.2247-2.8338-3.232-3.3397 0 0-.3653-.2788-.2543.1935.1057.4514.3243.9065.2757 1.5701-.0223.3063-.2117 1.877 1.2318 2.6944.1372.0777.26.1445.3696.1995-.7266.5814-1.3884 1.39-1.9533 2.3092.287-.1764 1.836-.9975 4.3328.0332 2.5684 1.06 4.1607.139 4.3582.0137-.6209-1.0206-1.358-1.9094-2.1743-2.5066.0544-.015.1094-.0297.1681-.047 1.0826-.313 1.3577-1.2306 1.4156-2.0158.0655-.8905.1097-.9039.303-1.705.1392-.5772.0578-.8074-.0723-.8212zM13.2022 9.03c-.2261 0-.4135.0631-.5553.1877-.1458.1276-.219.2755-.219.44v2.841c0 .3573.0352.696.1037 1.005.0706.316.1934.592.3656.8231.174.2335.41.4188.702.5494.2888.1287.6495.1936 1.0733.1936.4417 0 .8113-.0828 1.099-.2444.2413-.1355.4447-.313.6062-.5299.1556.217.3546.3945.5924.53.284.1615.6595.2443 1.1165.2443.4237 0 .7841-.0666 1.0695-.1955.2878-.1305.5217-.3144.696-.5475.1726-.2319.2958-.508.3657-.8232.0685-.309.1017-.6476.1017-1.005v-2.841c0-.1637-.0699-.312-.2112-.44-.1378-.1252-.3271-.1876-.5611-.1876-.2123 0-.389.0635-.524.1896-.1366.1277-.2053.275-.2053.438v2.886c0 .3872-.068.6726-.2034.8486-.1308.17-.3403.2522-.6394.2522-.306 0-.516-.0814-.6393-.2502-.1287-.176-.1936-.4623-.1936-.8506V9.646c0-.1973-.0896-.3575-.26-.4653-.2317-.146-.4609-.1987-.741-.1056a1.1842 1.1842 0 00-.2406.1095.6958.6958 0 00-.1955.178c-.0579.0776-.088.1612-.088.2502v2.931c0 .3878-.0649.6743-.1936.8504-.1236.1688-.332.2503-.6374.2503-.3064 0-.5181-.0829-.6452-.2522-.132-.176-.1994-.461-.1994-.8486v-2.886c0-.1632-.0686-.3104-.2053-.438-.135-.1262-.3142-.1896-.5338-.1896zm-3.0521 5.774a5.613 5.613 0 00.3363 1.0324c.1197.6731.2803 2.2572-.481 3.6446-.6706 1.2223-3.981 2.8883-8.8945 1.9318 0 0-.1964-.1367-.2561-.0235-.0883.1675.272.303.6433.4008 3.4209.906 8.583.5362 10.204-.7997.7398-.609 1.0264-1.4282 1.099-2.311 0 0 .0197-.2306.309-.0568.0828.0498.3824.2452.43.4654.0417.3133.0445.6964-.1172.9659-.2314.3854-.2341.4414.0703.6589.187.1334.9515.6952 2.014 1.3335.0026.0018.0031.0025.0058.0039.2247.1353.5377.4673.5377.4673.4785.5534 1.518 1.6664 1.971 1.4566.2138-.099-.0079-.5436-.0079-.5436s.3545.4607.5456.3031c.1454-.12-.0841-.5807-.0841-.5807s.3099.2699.4947.1701c.226-.122-.0326-.8295-1.8105-1.9103-1.7787-1.0817-2.261-1.2476-2.3033-1.7304 0 0-.0014-.023 0-.0645.0138-.1066.0739-.3332.3324-.309a7.454 7.454 0 001.1889.0958 7.391 7.391 0 001.355-.1231s.0226-.0048.0293-.006c.051-.0064.1502-.0025.1506.1213-.0162.1569-.0602.3136-.1526.4516-.26.3897-.174.4438.0978.6942.1677.1544.9373.8313 1.9905 1.486.0022.0016.0014.0026.0039.0039.2245.1351.614.5064.614.5064.4364.4432 1.2384 1.1847 1.6757 1.14.2958-.0302.0547-.5397.0547-.5397s.3737.3603.5573.2542c.2052-.1184-.0841-.4947-.0841-.4947s.2407.1283.4106.086c.1704-.0424.2125-.4768-1.5564-1.572-1.769-1.0961-2.364-1.4811-2.3267-1.9005 0 0 .0002-.0682.0176-.172.043-.2223.1784-.601.612-.8174a.2517.2517 0 00.0372-.0235c1.3783-.7998 2.386-2.0874 2.7413-3.6954-.3577.8882-3.0083 1.578-6.2275 1.578-3.218 0-5.87-.6898-6.2275-1.578z\"},\"child\":[]}]})(props);\n};\nexport function SiWalletconnect (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.913 7.519c3.915-3.831 10.26-3.831 14.174 0l.471.461a.483.483 0 0 1 0 .694l-1.611 1.577a.252.252 0 0 1-.354 0l-.649-.634c-2.73-2.673-7.157-2.673-9.887 0l-.694.68a.255.255 0 0 1-.355 0L4.397 8.719a.482.482 0 0 1 0-.693l.516-.507Zm17.506 3.263 1.434 1.404a.483.483 0 0 1 0 .694l-6.466 6.331a.508.508 0 0 1-.709 0l-4.588-4.493a.126.126 0 0 0-.178 0l-4.589 4.493a.508.508 0 0 1-.709 0L.147 12.88a.483.483 0 0 1 0-.694l1.434-1.404a.508.508 0 0 1 .709 0l4.589 4.493c.05.048.129.048.178 0l4.589-4.493a.508.508 0 0 1 .709 0l4.589 4.493c.05.048.128.048.178 0l4.589-4.493a.507.507 0 0 1 .708 0Z\"},\"child\":[]}]})(props);\n};\nexport function SiWalmart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.41818 9.10219c-.22048 0-.39583.12308-.39583.27297l.13393 1.51627c.01478.09132.12669.16185.26197.16185.13555-.00017.24705-.07065.26214-.16185l.13424-1.51627c0-.1499-.17555-.27297-.39645-.27297zM-.00002 10.3184s.59713 2.44699.69242 2.84417c.11123.46362.3117.63419.88954.51913l.37291-1.51718c.0945-.37683.1579-.64553.21866-1.02883h.01065c.04269.3871.10354.65314.18131 1.03017 0 0 .15176.68869.22949 1.05042.07795.36163.29482.5895.86083.46542l.88851-3.3633h-.71735l-.30339 1.45411c-.08155.42325-.15544.75396-.21251 1.14117h-.01022c-.05189-.38347-.11777-.70096-.20072-1.11331l-.31586-1.48197h-.7474l-.3378 1.44462c-.09569.43899-.18528.79337-.2422 1.16745h-.01023c-.05832-.35224-.13599-.7977-.22006-1.22261 0 0-.20074-1.03328-.27115-1.38946zm6.83845 0v3.3633h.68299v-3.3633zm9.6188 0v2.48118c0 .34202.0644.5817.20213.72811.12033.12806.31854.21094.55604.21094.20193 0 .40062-.0383.49426-.07317l-.0088-.53367c-.06968.01711-.1498.03078-.25942.03078-.23265 0-.31068-.149-.31068-.45611v-.94921h.59479v-.64351h-.59481v-.79533zm2.77885 0c-.11446.0027-.24452.08936-.32723.23277-.11062.19096-.09105.40434.03838.47923l1.3799.64254c.0862.03205.20323-.02912.27103-.14597.06814-.11745.0629-.2496-.0088-.3082l-1.24635-.8741c-.03237-.01874-.06877-.02717-.10693-.02627zm4.36427 0c-.03815-.0009-.0745.0075-.1068.02628l-1.2464.8741c-.07112.05846-.07653.1901-.0092.30734.00006.00013.00015.00023.00025.00036.00009.00016.00015.00033.00024.00049.06804.11686.18472.17803.27091.14598l1.38004-.64254c.12997-.0749.14861-.28827.03874-.47923-.08309-.1434-.21333-.23006-.32777-.23277zM5.312 11.0981c-.42444 0-.76136.11916-.94501.22529l.13442.46019c.16808-.10595.43566-.19366.68907-.19366.41954-.0011.48817.23728.48817.39012v.03613c-.9142-.0014-1.49164.31493-1.49164.9598 0 .3937.29399.76266.80512.76266.31466 0 .57778-.12554.73548-.32662h.01545s.10445.4367.67982.26969c-.03022-.18174-.04002-.37546-.04002-.60884v-.89849c0-.57263-.24452-1.07627-1.07086-1.07627zm4.08552 0c-.42739 0-.61944.2166-.7359.40034h-.01016v-.34335h-.65173v2.5266h.68658V12.2c0-.06945.00799-.1429.03223-.2068.05689-.1492.19565-.3237.41725-.3237.27704 0 .40667.2342.40667.57222v1.44h.68585v-1.4996c0-.06636.0091-.14622.02859-.20486.05639-.16969.20602-.30776.41201-.30776.28086 0 .41567.23012.41567.62788v1.38434h.68633v-1.48805c0-.78478-.39845-1.09555-.8483-1.09555-.19922 0-.35646.04996-.49863.13722-.1195.07334-.22655.17753-.32006.3147h-.0101c-.10853-.27228-.36375-.45192-.6963-.45192zm3.7702 0c-.42435 0-.76113.11916-.94495.22529l.13454.46019c.16792-.10595.43572-.19366.689-.19366.41926-.0011.48806.23728.48806.39012v.03613c-.91407-.0014-1.49164.31494-1.49164.9598 0 .3937.29418.76266.8056.76266.31441 0 .57759-.12554.735-.32662h.01557s.10437.4367.67982.26969c-.03027-.18174-.03996-.37546-.03996-.60884v-.89849c0-.57263-.24458-1.07627-1.07104-1.07627zm2.85129 0c-.26292 0-.56205.1697-.68761.53354h-.0191v-.47655h-.6181v2.5266h.70453V12.388c0-.06985.0042-.1307.01527-.1865.0521-.27102.25945-.44425.55696-.44425.08167 0 .1401.0088.20333.018v-.66151c-.05302-.0107-.0893-.01563-.15528-.01563zm4.35946 1.22067c-.01785-.00025-.03513.0026-.05134.0087l-1.3799.6418c-.12943.07519-.149.28868-.03838.47984.11028.1906.30469.28118.43415.20644l1.24634-.87349c.0717-.05929.07696-.19127.0088-.30862l.0006.00025c-.05507-.09558-.14292-.15388-.22027-.15492zm2.07955 0c-.07727.001-.1649.05934-.22012.15491l.00049-.00025c-.06781.11735-.06254.24934.0088.30862l1.2464.87349c.12921.07474.3238-.01584.43458-.20644.10986-.19116.09122-.40466-.03875-.47983l-1.38012-.64181c-.0162-.0061-.03344-.0089-.05128-.0087zm-16.75741.14518v.31519c0 .0466-.00406.09467-.01697.13673-.05286.17506-.23415.32303-.46086.32303-.18901 0-.33916-.1073-.33916-.33422 0-.34707.38204-.443.81699-.44073zm7.85577 0v.31519c0 .0466-.0041.09467-.0169.13673-.05287.17506-.23421.32303-.46093.32303-.18905 0-.3392-.1073-.3392-.33422 0-.34707.38209-.443.81703-.44073zm7.86138.48324c-.13506.00016-.24672.07024-.26148.16137l-.13393 1.5162c0 .15015.17535.27304.39583.27304.2209 0 .39645-.12289.39645-.27303l-.13424-1.51621c-.01509-.09113-.12659-.1612-.26214-.16137z\"},\"child\":[]}]})(props);\n};\nexport function SiWantedly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.453 14.555c-.171-.111-.658-.764-2.006-3.982a9.192 9.192 0 0 0-.237-.526l-.274-.664-2.362-5.702H8.85l2.362 5.702 2.362 5.706 2.181 5.267a.196.196 0 0 0 .362 0l2.373-5.682a.1.1 0 0 0-.037-.119zm-8.85 0c-.171-.111-.658-.764-2.006-3.982a8.971 8.971 0 0 0-.236-.525l-.276-.665-2.36-5.702H0l2.362 5.702 2.362 5.706 2.181 5.267a.196.196 0 0 0 .362 0l2.374-5.682a.098.098 0 0 0-.038-.119ZM24 6.375a2.851 2.851 0 0 1-2.851 2.852 2.851 2.851 0 0 1-2.852-2.852 2.851 2.851 0 0 1 2.852-2.851A2.851 2.851 0 0 1 24 6.375Z\"},\"child\":[]}]})(props);\n};\nexport function SiWappalyzer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 11.014v-.604L12 1.805 0 10.41v.603l12 8.606 12-8.605zM8.634 10.82l2.75 1.07.016-.01-1.526-1.967.984-.72 2.695 1.116.016-.011-1.463-2.018 1.247-.913 2.6 3.85-1.046.766-2.797-1.157-.012.008 1.593 2.038-1.048.767-5.26-1.903 1.251-.916zm14.418 1.488l.947.679v.603l-12 8.605L0 13.59v-.603l.947-.678 10.761 7.717.292.21.291-.21 10.762-7.717z\"},\"child\":[]}]})(props);\n};\nexport function SiWarnerbros (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5798 10.2379c-.5236 0-.9992.201-2.4648 1.2525v5.6593c2.5407-2.8547 3.2641-4.808 3.2641-5.81-.0026-.7013-.3264-1.1018-.7993-1.1018zm.1998-3.7564c0-1.0047-1.1458-1.8286-2.6646-1.9284v5.234c1.9165-1.1267 2.664-2.2566 2.664-3.3056zm4.5098-2.2211c-.0246-.0998-.05-.1373-.0999-.15l-1.796-.4763-.249-1.0268c-.0127-.0503-.0254-.0878-.0747-.0998l-1.8439-.501-.2238-.9773a.1372.1372 0 00-.1-.1253L12.1154.0111a.6414.6414 0 00-.2372 0l-4.789.8928a.1372.1372 0 00-.0998.1253l-.2245.9773-1.8432.5003c-.05.012-.062.0496-.0747.0998l-.249 1.0268-1.7914.477c-.0493.0127-.0746.0502-.0992.15a12.9347 12.9347 0 00-.2245 2.4301c0 7.214 3.737 13.4768 9.3174 17.209A.2493.2493 0 0012 24a.2493.2493 0 00.1999-.1005c5.5803-3.7322 9.3173-9.995 9.3173-17.209a12.9906 12.9906 0 00-.2284-2.4301zm-9.9922 16.3208c0 .0503-.05.075-.0992.0248-1.3703-1.5774-2.2916-3.5058-2.9144-5.6097l-.9466.6028c-.2491.1755-.4483.1005-.5995-.1748-1.2704-2.254-2.0924-5.9614-2.167-8.565a.4522.4522 0 01.1246-.3255 11.8352 11.8352 0 011.0958-1.1521c.0746-.075.1499-.0255.1499.0998 0 3.2057.5475 6.1858 1.4195 8.1396.0746.15.1492.15.2492.075l.2737-.1754c-.5229-2.329-.822-5.4343-.7474-9.0158 0-.1253.0253-.1755.1-.225a8.7268 8.7268 0 011.195-.6264c.1246-.0502.1499-.0247.1499.075-.0706 5.2086.3544 8.8136 1.2743 11.6938.0247.075.0993.0495.0993-.0255-.05-1.0516-.05-1.978-.05-3.1053l-.0493-8.991c0-.0998.0247-.15.1246-.1748a9.9022 9.9022 0 011.245-.2257.0664.0664 0 01.0557.019.0672.0672 0 01.019.056zm1.4949.0248c-.05.0503-.1.0255-.1-.0248V2.9757a.0672.0672 0 01.019-.056.0664.0664 0 01.0557-.019c3.3373.2257 5.4797 1.6283 5.4797 3.6565a3.4113 3.4113 0 01-.872 2.2774c1.0958.3007 1.5195 1.1273 1.5195 2.2292.002 1.9538-1.4176 5.185-6.1 9.5422Z\"},\"child\":[]}]})(props);\n};\nexport function SiWarp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.035 2.723h9.253A2.712 2.712 0 0 1 24 5.435v10.529a2.712 2.712 0 0 1-2.712 2.713H8.047Zm-1.681 2.6L6.766 19.677h5.598l-.399 1.6H2.712A2.712 2.712 0 0 1 0 18.565V8.036a2.712 2.712 0 0 1 2.712-2.712Z\"},\"child\":[]}]})(props);\n};\nexport function SiWasabi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.483 3.517A11.91 11.91 0 0 0 12 0a11.91 11.91 0 0 0-8.483 3.517A11.91 11.91 0 0 0 0 12a11.91 11.91 0 0 0 3.517 8.483A11.91 11.91 0 0 0 12 24a11.91 11.91 0 0 0 8.483-3.517A11.91 11.91 0 0 0 24 12a11.91 11.91 0 0 0-3.517-8.483Zm1.29 7.387-5.16-4.683-5.285 4.984-2.774 2.615V9.932l4.206-3.994 3.146-2.969c3.163 1.379 5.478 4.365 5.867 7.935zm-.088 2.828a10.632 10.632 0 0 1-1.025 2.951l-2.952-2.668v-3.87Zm-8.183-11.47-2.227 2.103-2.739 2.598v-4.17A9.798 9.798 0 0 1 12 2.155c.513 0 1.007.035 1.502.106zM6.398 13.891l-4.083-3.658a9.744 9.744 0 0 1 1.078-2.987L6.398 9.95zm0-9.968v3.129l-1.75-1.573a8.623 8.623 0 0 1 1.75-1.556Zm-4.189 9.102 5.284 4.736 5.302-4.983 2.74-2.598v3.817l-7.423 7.016a9.823 9.823 0 0 1-5.903-7.988Zm8.306 8.695 5.02-4.754v4.206a9.833 9.833 0 0 1-3.553.654c-.495 0-.99-.035-1.467-.106zm7.176-1.714v-3.11l1.714 1.555a9.604 9.604 0 0 1-1.714 1.555z\"},\"child\":[]}]})(props);\n};\nexport function SiWasmcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.805 5.477 12.797.215a1.591 1.591 0 0 0-1.6 0L2.19 5.477a1.41 1.41 0 0 0-.697 1.215v10.604a1.438 1.438 0 0 0 .715 1.243l9.023 5.251a1.553 1.553 0 0 0 1.558 0l8.998-5.25a1.438 1.438 0 0 0 .72-1.244V6.692a1.41 1.41 0 0 0-.702-1.215zm-2.001 10.428a.277.277 0 0 1-.139.238l-7.527 4.388a.277.277 0 0 1-.282 0l-7.524-4.385a.29.29 0 0 1-.14-.257v-7.8a.277.277 0 0 1 .138-.239l2.732-1.6a.284.284 0 0 1 .279 0 .277.277 0 0 1 .14.242v7.324l2.469-1.432v-7.65a.274.274 0 0 1 .138-.241l1.781-1.04a.277.277 0 0 1 .282 0l1.794 1.042a.28.28 0 0 1 .136.241v7.642l2.455 1.43V6.484a.277.277 0 0 1 .141-.24.28.28 0 0 1 .28 0l2.731 1.603a.277.277 0 0 1 .139.239z\"},\"child\":[]}]})(props);\n};\nexport function SiWasmer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.111 3.537c-.011.822-.5 1.208-1.111.86-.611-.353-1.106-1.307-1.111-2.146L12 0v4.651l5.561 3.222.55.32v7.763L22 18.206V5.794l-3.889-2.256Zm-5 3.034c-.011.822-.5 1.208-1.111.86-.611-.352-1.106-1.307-1.111-2.145l-3.89-2.252V7.41l5.562 3.222.55.32v8.038L17 21.241V8.828L13.11 6.57Zm-5 2.759c-.011.822-.5 1.208-1.111.86-.611-.353-1.106-1.307-1.111-2.146L2 5.794v12.413L12 24V11.586L8.111 9.33Z\"},\"child\":[]}]})(props);\n};\nexport function SiWatchtower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 .099C5.373.099 0 5.426 0 12c0 6.571 5.373 11.9 12 11.9S24 18.573 24 12C24 5.428 18.627.1 12 .1Zm.139 7.34 5.377 2.66v.222h-.526v.504l6.36-1.619a11.525 11.525 0 0 1-.248 6.424l-6.112-1.22v.652h2.428v1.091h.393l-.002.248-2.745 1.471.67 4.219-.203.111a11.72 11.72 0 0 1-5.506 1.367A11.68 11.68 0 0 1 6.72 22.3h-.01v-.003c-.065-.033-.131-.064-.195-.098l.685-4.31-2.765-1.473.001-.264h.413v-1.09h2.435v-.65L.961 15.675a11.464 11.464 0 0 1-.602-3.676c0-.987.125-1.947.36-2.863l6.564 1.676v-.51h-.578v-.203Zm-4.856 3.373v3.6l.33-.067v-3.451zm.33.082 2.668.68v-1.061H7.613Zm2.668.68v2.24l.328-.067v-2.09zm.328.083.452.115.039-.439h2.076l.04.453.458-.115v-1.158h-3.065zm3.065.014-.002 2.074.33.067v-2.225l2.658-.678v-.396H14v1.074zm2.986-.762v3.434l.33.066v-3.584zm0 3.434-2.658-.531v.935h2.658zm-2.988-.598-.281-.055.097 1.057h.184zm-3.063.002v1h.178l.096-1.055zm-2.996.598v.402h2.666v-.933zm-.904 7.95c.003.003.007.003.01.005l10.812-.098-.343-2.219H7.078Zm5.428-14.704-5.291 2.594h10.527Zm-.905 3.888-.298 3.268h2.408l-.299-3.268zm-3.619 3.543v.069h9.235l-.004-.069zm-2.547.32v.81h2.217v-.81zm2.547 0v.81h3.01v-.81zm3.229 0v.81h2.605v-.81zm2.824 0v.81h3.18v-.81zm3.398 0v.81H19.2v-.81Zm-12.216 1.05 2.574 1.37h9.422l2.574-1.37z\"},\"child\":[]}]})(props);\n};\nexport function SiWattpad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.034 3.09c-1.695.113-3.9 2.027-6.9 6.947.245-2.758.345-4.716-.857-5.743-.823-.702-2.764-.974-3.926.536C.18 6.349-.09 9.312.024 12.432c.238 6.518 2.544 8.487 4.59 8.487h.001c3.623 0 4.13-4.439 6.604-8.4-.09 1.416-.008 2.668.266 3.532 1.078 3.398 4.784 3.663 6.467.21 2.374-4.87 3.058-6.016 5.453-9.521 1.58-2.314-.252-3.812-2.374-2.735-1.09.554-2.86 1.935-5.065 4.867.387-2.23.28-5.996-2.932-5.782z\"},\"child\":[]}]})(props);\n};\nexport function SiWayland (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.982 12c0 9.224-9.985 14.989-17.973 10.377A11.982 11.982 0 0 1 .018 12c0-3.386 1.346-6.306 3.444-8.418v.675l.553 3.413v1.07l.077 1.365c-.23 0-.344.053-.344.159v.09l.344-.09h.076v2.366c.178 1.578.509 2.981.992 4.21.05.864.146 1.297.286 1.297.229.864.394 1.297.496 1.297a5.494 5.494 0 0 0 2.422 1.865c.344 0 .63-.432.859-1.296.292-1.866.528-3.004.706-3.414.165.167.451.281.858.342v-.091c0-.152-.26-.311-.782-.478.14-.728.33-1.35.572-1.866.038-.88.49-2.1 1.354-3.663l.344.09c.05.714.146 1.305.286 1.776.521 1.061.782 2.063.782 3.003 0 .364.407 1.585 1.22 3.663.204 1.366.465 2.17.783 2.412h.152c.42 0 .916-.538 1.488-1.615.56-1.214 1.011-1.889 1.354-2.025 0-.106-.12-.16-.362-.16v-.09c.19 0 .286-.054.286-.16v-.068l-.076-.091.801-.319c0-.273-.095-.41-.286-.41v-.09h.572v-.16c-.292 0-.483-.159-.572-.477h.133v-.319l-.076-.091c.432 0 .649-.083.649-.25v-.069h-.134v-.09c.153 0 .267-.16.343-.478-.42-.137-.629-.273-.629-.41l.553-1.615c0-.82.146-1.715.439-2.685.33-.94.566-1.965.706-3.072.304-1.064.617-1.787.938-2.17A11.979 11.979 0 0 1 23.982 12Zm-5.99-10.377c.587.34 1.138.724 1.65 1.148a33.45 33.45 0 0 0-.157 1.736c-.458 1.077-.96 2.594-1.507 4.55h-1.411l-.725.07v.181h.362l.286-.09 1.202.158v.092c-.343 1.183-.553 1.774-.63 1.774-.445 2.215-.8 3.322-1.068 3.322h-.229c-.318-.288-.674-.88-1.068-1.774a.861.861 0 0 0-.21-.57L13.42 9.855c-.216-1-.502-1.752-.858-2.252-.115-.334-.305-.5-.572-.5h-.134c-.42 0-.826.295-1.22.887l.076.25c-.178.607-.465 1.312-.859 2.116-.61 1.775-1.01 2.662-1.201 2.662h-.153l-.286-.227c-.483-1.305-.814-3.224-.992-5.757h-.134v-.16h.058a1.33 1.33 0 0 1 .515-.75v-.069l-.077-.09-.076.09-.076-.09-.344.09h-.152c-.09 0-.23-.348-.42-1.046v-.183h.496v-.16h-.648c-.139-.698-.545-1.53-1.218-2.494.296-.206.601-.398.915-.577h.016l.077.068.438-.068h.783c.228 0 .464.083.705.25.115-.152.33-.235.649-.25v-.16h-2.38c3.11-1.667 6.947-1.99 10.51-.392l-.443.142v.16c.24 0 .4-.095.482-.284.368.166.734.354 1.095.562Zm3.477 3.203h-.134l.035-.295.179.23-.08.065ZM9.719 1.595h.572l.133.159.363-.16.42.069.438-.068v-.16H9.72v.16Zm3.7 1.297v.159l.21.09v-.09l.076-.091c.14 0 .21-.053.21-.16v-.068h-.21l-.286.16Zm-1.144.887h-.058l-.076-.068-.42.227v.16c.61-.137.916-.266.916-.387V3.62l-.362.159Zm-2.842.978c0 .167-.051.25-.153.25v.16c.598-.197 1.03-.417 1.297-.66V4.44l-1.144.318Zm4.482.57v.068l.153.182h.076l.134-.182v-.069l-.077-.09-.286.09Zm2.785.159v.09h.076l.134-.181v-.069h-.076l-.134.16Zm-1.354 1.206.152.25c.23 0 .37-.084.42-.25l-.286-.228c-.19.076-.286.152-.286.228Zm1.85.978v.091h.153l.057-.091v-.068l-.057-.091-.153.159Zm-3.128.978v.091h.21l.362-.34v-.07c-.382.077-.572.183-.572.32ZM2.24 12.13v.341h.153c.14-.106.305-.41.496-.91v-.068h-.076l-.573.637Zm9.328 3.413v.159l.076.091.572-.341v-.16h-.076l-.572.25Zm-7.267.887.21.82h.152l-.229-.888h-.133v.068Zm7.63 1.07.133.227h.076l.076-.068-.228-.25h-.058v.09Z\"},\"child\":[]}]})(props);\n};\nexport function SiWaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.218 0C9.915 0 6.835 1.49 4.723 4.148c-1.515 1.913-2.31 4.272-2.31 6.706v1.739c0 .894-.62 1.738-1.862 1.813-.298.025-.547.224-.547.522-.05.82.82 2.31 2.012 3.502.82.844 1.788 1.515 2.832 2.036a3 3 0 0 0 2.955 3.528 2.966 2.966 0 0 0 2.931-2.385h2.509c.323 1.689 2.086 2.856 3.974 2.21 1.64-.546 2.36-2.409 1.763-3.924a12.84 12.84 0 0 0 1.838-1.465 10.73 10.73 0 0 0 3.18-7.65c0-2.882-1.118-5.589-3.155-7.625A10.899 10.899 0 0 0 13.218 0zm0 1.217c2.558 0 4.967.994 6.78 2.807a9.525 9.525 0 0 1 2.807 6.78A9.526 9.526 0 0 1 20 17.585a9.647 9.647 0 0 1-6.78 2.807h-2.46a3.008 3.008 0 0 0-2.93-2.41 3.03 3.03 0 0 0-2.534 1.367v.024a8.945 8.945 0 0 1-2.41-1.788c-.844-.844-1.316-1.614-1.515-2.11a2.858 2.858 0 0 0 1.441-.846 2.959 2.959 0 0 0 .795-2.036v-1.789c0-2.11.696-4.197 2.012-5.861 1.863-2.385 4.62-3.726 7.6-3.726zm-2.41 5.986a1.192 1.192 0 0 0-1.191 1.192 1.192 1.192 0 0 0 1.192 1.193A1.192 1.192 0 0 0 12 8.395a1.192 1.192 0 0 0-1.192-1.192zm7.204 0a1.192 1.192 0 0 0-1.192 1.192 1.192 1.192 0 0 0 1.192 1.193 1.192 1.192 0 0 0 1.192-1.193 1.192 1.192 0 0 0-1.192-1.192zm-7.377 4.769a.596.596 0 0 0-.546.845 4.813 4.813 0 0 0 4.346 2.757 4.77 4.77 0 0 0 4.347-2.757.596.596 0 0 0-.547-.845h-.025a.561.561 0 0 0-.521.348 3.59 3.59 0 0 1-3.254 2.061 3.591 3.591 0 0 1-3.254-2.061.64.64 0 0 0-.546-.348z\"},\"child\":[]}]})(props);\n};\nexport function SiWazirx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.965 21.964h21.924v-2.485H.965v2.485Zm6.752-3.81h15.195L24 6.343 7.717 18.155Zm9.384-8.704L5.205 18.072H1.93l6.045-9.814 3.858-6.22 5.269 7.412Zm-11.693.223L0 6.067l.994 10.762 4.414-7.156Z\"},\"child\":[]}]})(props);\n};\nexport function SiWearos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.416 21.1346c-.9687 0-1.8938-.56-2.3135-1.5015L.2193 6.4198C-.3488 5.1432.2248 3.6472 1.5014 3.079c1.2767-.5681 2.7727.0055 3.3408 1.2821l5.8832 13.2133c.5681 1.2767-.0055 2.7727-1.2821 3.3408a2.5254 2.5254 0 01-1.0273.2194zm7.1952.0368c-.891 0-1.7412-.515-2.1268-1.3816L7.39 6.1024C6.867 4.9279 7.3955 3.5532 8.5686 3.03c1.173-.5218 2.5492.0054 3.0724 1.1785l6.0943 13.6888c.5232 1.1745-.0054 2.5492-1.1785 3.0724a2.3111 2.3111 0 01-.9456.2017zM24 5.195a2.3271 2.3271 0 01-2.3271 2.327 2.3271 2.3271 0 01-2.3271-2.327 2.3271 2.3271 0 012.327-2.3271A2.3271 2.3271 0 0124 5.1949zm-2.6119 5.116a2.4892 2.4892 0 01-2.4892 2.4893 2.4892 2.4892 0 01-2.4893-2.4892 2.4892 2.4892 0 012.4893-2.4893 2.4892 2.4892 0 012.4892 2.4893Z\"},\"child\":[]}]})(props);\n};\nexport function SiWeasyl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.23 4.156a8.488 8.488 0 0 0-5.871-1.857c-3.766.243-6.324 2.662-7.364 6.481-1.28-1.224-1.892-3.238-2.093-5.54-1.02.215-1.658.702-2.233 1.237.445 2.316 1.802 4.015 3.264 5.158-2.559.317-5.99 2.442-6.771 4.904-.507 1.598.258 3.415 1.283 4.52 1.237 1.333 3.75 1.998 6.355 1.754.037.362-.104.536-.058.907 4.067-.306 7.174-1.646 10.04-3.894 1.119-.877 2.659-2.037 3.756-3.227 1.101-1.192 2.296-2.578 2.443-4.52.21-2.79-1.236-4.694-2.751-5.923zm-1.434 10.938c-1.035 1.001-2.241 1.797-3.351 2.675-1.249-1.987-2.583-3.984-3.887-5.917.017 2.63.006 5.432.04 7.957-.78.381-1.789.558-2.744.763-1.935-2.917-3.968-5.99-5.961-8.908.693-.447 1.627-.785 2.478-1.075 1.419 2.05 2.729 4.253 4.171 6.333.019-3.113-.009-6.673-.061-9.919a14.175 14.175 0 0 0 1.527-.434c1.813 2.721 3.553 5.628 5.464 8.359a547.35 547.35 0 0 1-.018-9.768c.858-.282 1.803-.535 2.669-.809.02 3.499-.338 7.128-.327 10.743z\"},\"child\":[]}]})(props);\n};\nexport function SiWeb3Dotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.889.775S0 1.29 0 2.315V7.44s0 3.079 2.666 4.618c.817.472 1.384.508 1.777.334.394.628.96 1.246 1.778 1.718 2.666 1.54 2.668-1.539 2.668-1.539V7.447c0-1.027.888-1.539.888-1.539l3.557-2.054s.89-.514 1.777 0c.89.513 0 1.027 0 1.027L11.56 6.934l1.775 1.025 3.559-2.055c.052-.03.912-.495 1.773.002.89.514 0 1.026 0 1.026l-3.555 2.054s-.888.514-.888 1.54v5.124s0 1.028-.889.514c-.89-.513-.89-1.539-.89-1.539l-1.778-1.027s.001 3.08 2.668 4.619c2.667 1.539 2.666-1.54 2.666-1.54v-5.126c0-1.026.889-1.537.889-1.537l4.445-2.569s1.776-1.025-.889-2.564c-.819-.474-1.552-.704-2.177-.797-.164-.357-.565-.776-1.377-1.24-2.667-1.523-5.332-.016-5.332-.016L8.004 4.881s-.89.514-.89 1.539v5.125s0 1.027-.89.514c-.889-.514-.89-1.54-.89-1.54V5.396c0-.064.003-.127.01-.188.097-.902.879-1.353.879-1.353L4.445 2.828l-.004.002c-.052.03-.884.544-.884 1.537v5.125s-.002 1.027-.891.514c-.89-.514-.889-1.54-.889-1.54V3.343c0-1.026.889-1.54.889-1.54L.889.776zm9.78 8.735v2.053l1.778 1.025v-2.053L10.67 9.51zm8.442 2.183c-.666.005-1.332.389-1.332 1.909 0 3.039 2.666 4.619 2.666 4.619l.889.513s.89.514.89 1.54-.89.513-.89.513l-3.555-2.053v2.053l3.555 2.053S24 24.379 24 21.3c0-3.077-1.777-4.105-1.777-4.105l-1.778-1.025s-.888-.514-.888-1.54c0-1.028.888-.515.888-.515L24 16.168v-2.053l-3.555-2.05s-.667-.376-1.334-.372Z\"},\"child\":[]}]})(props);\n};\nexport function SiWebassembly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.745,0c0,0.042,0,0.085,0,0.129c0,1.52-1.232,2.752-2.752,2.752c-1.52,0-2.752-1.232-2.752-2.752 c0-0.045,0-0.087,0-0.129H0v24h24V0H14.745z M11.454,21.431l-1.169-5.783h-0.02l-1.264,5.783H7.39l-1.824-8.497h1.59l1.088,5.783 h0.02l1.311-5.783h1.487l1.177,5.854h0.02l1.242-5.854h1.561l-2.027,8.497H11.454z M20.209,21.431l-0.542-1.891h-2.861l-0.417,1.891 h-1.59l2.056-8.497h2.509l2.5,8.497H20.209z M17.812,15.028l-0.694,3.118h2.159l-0.796-3.118H17.812z\"},\"child\":[]}]})(props);\n};\nexport function SiWebauthn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.2872 3.641a8.407 8.407 0 00-8.05 7.593h.55a7.805 7.805 0 012.24-4.713 5.825 5.825 0 00.923.695c-.608 1.177-.98 2.556-1.082 4.018h.135c.105-1.467.485-2.819 1.065-3.947.745.434 1.623.754 2.577.94a27.83 27.83 0 00-.25 3.763h-.847v.135h.847c.003 1.334.09 2.617.25 3.764-.954.185-1.832.506-2.577.94a9.997 9.997 0 01-.978-3.137h-.137c.164 1.16.502 2.25.997 3.208a5.825 5.825 0 00-.924.695 7.805 7.805 0 01-2.255-4.875h-.55a8.407 8.407 0 0016.779-.675 8.398 8.398 0 00-.689-3.333 8.407 8.407 0 00-8.025-5.072zm.315.546c.155 0 .31.005.464.014.365.34.708 1.07.983 2.114a16.518 16.518 0 01.357 1.79 10.173 10.173 0 01-1.804.16 10.173 10.173 0 01-1.805-.16 16.519 16.519 0 01.357-1.79c.275-1.045.618-1.775.983-2.114a7.97 7.97 0 01.465-.014zm-.665.028c-.345.392-.658 1.093-.913 2.065a16.639 16.639 0 00-.36 1.8c-.939-.183-1.802-.498-2.533-.926.686-1.283 1.635-2.264 2.73-2.775a7.874 7.874 0 011.076-.164zm1.33 0a7.856 7.856 0 011.084.168c1.092.513 2.037 1.492 2.721 2.771-.73.428-1.594.743-2.533.927a16.64 16.64 0 00-.36-1.8c-.255-.972-.568-1.673-.912-2.066zm-2.972.314c-.655.407-1.257.989-1.776 1.73a8.166 8.166 0 00-.506.825 5.69 5.69 0 01-.89-.67 7.814 7.814 0 013.172-1.885zm4.624.006a7.862 7.862 0 013.164 1.877 5.692 5.692 0 01-.893.672 8.166 8.166 0 00-.506-.825c-.516-.738-1.115-1.318-1.765-1.724zm3.26 1.985a7.858 7.858 0 011.638 2.419 7.802 7.802 0 01.642 3.051h-2.095c-.01-1.74-.398-3.396-1.11-4.774a5.823 5.823 0 00.925-.696zm-1.044.767c.68 1.32 1.084 2.945 1.094 4.703h-3.42a27.863 27.863 0 00-.25-3.763c.953-.186 1.832-.506 2.576-.94zm-6.357.965a10.299 10.299 0 001.824.16 10.299 10.299 0 001.823-.16c.16 1.138.246 2.413.25 3.738h-1.179a1.03 1.03 0 01-.093.135h1.27a27.71 27.71 0 01-.248 3.739 10.397 10.397 0 00-3.647 0 27.733 27.733 0 01-.248-3.739h1.294a.99.99 0 01-.09-.135h-1.204c.003-1.325.088-2.6.248-3.738zm-11.22 1.129a2.585 2.585 0 00-2.547 2.35c-.142 1.541 1.064 2.842 2.566 2.842 1.26 0 2.312-.917 2.533-2.124h4.44v.972h.946v-.972h.837v1.431h.945v-2.376h-7.168a2.586 2.586 0 00-2.552-2.123zm-.058.965a1.639 1.639 0 011.707 1.637 1.64 1.64 0 01-1.639 1.638 1.639 1.639 0 01-.068-3.275zm13.09.388a.75.75 0 00-.345 1.404l-.383 1.958h1.5l-.383-1.958a.75.75 0 00.384-.654.75.75 0 00-.773-.75zm2.218 1.391h3.421c-.01 1.758-.415 3.384-1.094 4.704-.744-.434-1.623-.755-2.577-.94a27.81 27.81 0 00.25-3.764zm3.556 0h2.095a7.805 7.805 0 01-2.28 5.47 5.825 5.825 0 00-.925-.696c.712-1.378 1.1-3.033 1.11-4.774zm-5.52 3.703a10.284 10.284 0 011.562.156 16.518 16.518 0 01-.357 1.791c-.275 1.045-.618 1.774-.982 2.114a7.972 7.972 0 01-.93 0c-.365-.34-.708-1.07-.983-2.114a16.519 16.519 0 01-.357-1.79 10.284 10.284 0 012.048-.157zm1.695.181c.94.184 1.803.5 2.533.926-.686 1.284-1.635 2.265-2.73 2.776a7.874 7.874 0 01-1.075.164c.344-.393.657-1.094.913-2.065a16.64 16.64 0 00.36-1.8zm-3.874 0a16.648 16.648 0 00.36 1.8c.254.973.567 1.674.912 2.066a7.873 7.873 0 01-1.075-.164c-1.096-.511-2.045-1.492-2.73-2.775.73-.428 1.593-.743 2.533-.927zm-2.652.997a8.16 8.16 0 00.506.825c.52.741 1.121 1.323 1.776 1.73a7.814 7.814 0 01-3.174-1.884 5.694 5.694 0 01.892-.67zm9.178 0a5.694 5.694 0 01.891.67 7.814 7.814 0 01-3.173 1.885c.654-.407 1.256-.989 1.775-1.73a8.16 8.16 0 00.507-.825z\"},\"child\":[]}]})(props);\n};\nexport function SiWebcomponentsdotorg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.731 2.225l-.01.016H5.618L0 11.979l5.618 9.736h12.8l.04.06 2.134-3.735.518-.893h-.008l.008-.014-.626-.75h.895l.006-.01.008.01L24 11.994l-2.607-4.39-.003.005-.011-.02h-.945l.63-.763-2.606-4.57-.006.01-.024-.04H11.73zM9.107 6.824h6.19l-.53.764h-.023l2.398 4.015h.875l-.277.328.357.435h-.956l-2.398 4.015h.027l.523.764H9.074l-2.99-5.168 3.022-5.155z\"},\"child\":[]}]})(props);\n};\nexport function SiWebdriverio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.875 0C0.836 0 0 0.836 0 1.875v20.25C0 23.164 0.836 24 1.875 24h20.25C23.164 24 24 23.164 24 22.125V1.875C24 0.836 23.164 0 22.125 0ZM2.25 6H3V18H2.25ZM9.335 6H10.125L5.29 18H4.499ZM16.125 6c3.314 0 6 2.686 6 6 0 3.314-2.686 6-6 6-3.314 0-6-2.686-6-6 0-3.314 2.686-6 6-6zm0 0.75c-2.899 0-5.25 2.351-5.25 5.25 0 2.899 2.351 5.25 5.25 5.25 2.899 0 5.25-2.351 5.25-5.25 0-2.899-2.351-5.25-5.25-5.25z\"},\"child\":[]}]})(props);\n};\nexport function SiWebex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.78 7.376c.512 1.181.032 2.644-1.11 3.106-2.157.888-3-1.295-3-1.295-.236-.55-.727-1.496-1.335-1.496-.204 0-.503 0-.94.844-.229.443-.434 1.185-.616 1.84l-.09.32c-.373-1.587-.821-3.454-1.536-4.816-.195-.38-.42-.74-.673-1.08a5.135 5.135 0 0 1 1.743-1.337 4.891 4.891 0 0 1 2.112-.463c1.045 0 2.765.338 4.227 2.227.167.206.317.424.448.654.278.441.52.904.726 1.383l.043.113zM.02 8.4C-.15 7.105.8 5.845 1.953 5.755c1.794-.157 2.36 1.385 2.455 1.89l.022.137c.07.44.29 1.838.48 2.744.078.4.244 1.013.353 1.416l.006.022.026.092c.11.4.232.799.362 1.193.185.548.399 1.085.641 1.61.47.955.93 1.45 1.367 1.45.203 0 .512 0 .96-.878.283-.59.512-1.208.684-1.845.373 1.598.811 3.128 1.495 4.456.205.406.444.794.715 1.16a5.124 5.124 0 0 1-1.742 1.338 4.88 4.88 0 0 1-2.112.461c-1.548 0-3.727-.698-5.339-4.005a22.407 22.407 0 0 1-1.078-2.824 26.848 26.848 0 0 1-.693-2.656 48.56 48.56 0 0 1-.215-1.114C.191 9.603.074 8.872.02 8.4zm22.047-2.645-.202-.022h-.052c.222.392.421.797.597 1.215l.053.113c.322.76.346 1.614.068 2.391a3.079 3.079 0 0 1-1.552 1.749 2.93 2.93 0 0 1-1.228.28 3.115 3.115 0 0 1-.854-.135c-.299 1.182-.768 2.634-1.195 3.511-.427.877-.93 1.451-1.378 1.451-.192 0-.501 0-.95-.877a10.746 10.746 0 0 1-.683-1.845 38.722 38.722 0 0 1-.396-1.575 12.67 12.67 0 0 1-.136-.598l-.002-.01c-.406-1.778-.865-3.645-1.655-5.142A8.263 8.263 0 0 0 11.52 4.8a5.136 5.136 0 0 0-1.748-1.34A4.892 4.892 0 0 0 7.654 3c-1.036 0-2.754.338-4.217 2.228.466.223.867.562 1.164.984.305.433.499.933.565 1.458.076.563.256 1.654.47 2.688l.001.007c.021.11.042.221.073.342.126-.34.25-.642.38-.955l.112-.271.128-.293c.235-.55.726-1.496 1.324-1.496.213 0 .513 0 .95.844.296.606.532 1.239.706 1.89.138.507.276 1.047.394 1.587.04.148.07.296.101.444l.006.028c.427 1.879.875 3.69 1.644 5.187.159.317.34.622.545.911.15.215.31.422.48.62 1.27 1.45 2.733 1.8 3.843 1.8 1.548 0 3.738-.698 5.35-4.006.822-1.7 1.515-4.208 1.772-5.48.256-1.27.449-2.419.534-3.115.04-.307.023-.618-.051-.918-.075-.299-.205-.579-.382-.825a2.247 2.247 0 0 0-.653-.607 2.143 2.143 0 0 0-.826-.296z\"},\"child\":[]}]})(props);\n};\nexport function SiWebflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m24 4.515-7.658 14.97H9.149l3.205-6.204h-.144C9.566 16.713 5.621 18.973 0 19.485v-6.118s3.596-.213 5.71-2.435H0V4.515h6.417v5.278l.144-.001 2.622-5.277h4.854v5.244h.144l2.72-5.244H24Z\"},\"child\":[]}]})(props);\n};\nexport function SiWebgl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.928 14.179c-.214.09-.427.135-.643.135-.342 0-.65-.059-.923-.178a1.963 1.963 0 0 1-.69-.491c-.187-.209-.332-.453-.432-.735s-.149-.586-.149-.911c0-.335.05-.643.149-.93.1-.287.242-.536.429-.747a1.96 1.96 0 0 1 .69-.501 2.25 2.25 0 0 1 .923-.183c.23 0 .451.036.664.104.214.069.408.171.581.304s.316.299.427.496a1.7 1.7 0 0 1 .206.676h-.935c-.059-.249-.171-.437-.337-.562a.973.973 0 0 0-.607-.187c-.221 0-.408.043-.562.128s-.28.199-.375.344c-.095.145-.166.308-.209.491s-.066.372-.066.569c0 .187.021.37.066.548.043.178.114.337.209.479.095.142.221.256.375.342s.342.128.562.128c.325 0 .577-.083.754-.247.178-.164.28-.401.311-.714h-.987V11.8h1.872v2.413h-.624l-.1-.505a1.444 1.444 0 0 1-.579.471zm2.896-4.429v3.632H24v.828h-3.155V9.75h.979zM2.785 11.999c0-.709.343-1.376.948-1.962l1.109 4.221h.764l1.075-3.815 1.06 3.815h.766l1.321-4.856h-.86l-.861 3.725-1.039-3.726H6.28l-1.039 3.725-.84-3.632c1.489-1.025 3.868-1.69 6.548-1.69 2.512 0 4.764.529 6.261 1.445-1.632-1.535-4.565-2.612-7.915-2.614C4.161 6.635 0 9.036 0 11.999s4.161 5.367 9.293 5.367c3.338 0 6.261-1.075 7.9-2.6-1.497.911-3.741 1.428-6.244 1.428-4.51-.001-8.164-1.877-8.164-4.195zm9.194-.553a1.184 1.184 0 0 0-.444-.384 1.378 1.378 0 0 0-.622-.135c-.261 0-.496.047-.7.14a1.313 1.313 0 0 0-.489.387c-.244.311-.372.75-.372 1.269 0 .23.033.448.097.643a1.5 1.5 0 0 0 .285.515c.261.304.633.465 1.077.465.233 0 .422-.024.581-.074.138-.043.23-.1.306-.149a1.357 1.357 0 0 0 .444-.489c.09-.166.135-.323.145-.403l.007-.055h-.633l-.002.045c-.017.206-.287.574-.769.574-.688 0-.852-.498-.864-.937h2.306v-.05a3.15 3.15 0 0 0-.085-.766 1.84 1.84 0 0 0-.268-.596zm-1.139.05c.51 0 .783.275.833.84h-1.651c.025-.458.388-.84.818-.84zm4.678.415a1.575 1.575 0 0 0-.268-.515 1.25 1.25 0 0 0-.437-.346 1.36 1.36 0 0 0-.586-.126 1.141 1.141 0 0 0-.531.128 1.1 1.1 0 0 0-.346.28v-1.49h-.631v4.413h.6v-.301a.964.964 0 0 0 .211.206c.171.123.382.185.626.185.263 0 .501-.059.7-.176.178-.104.33-.254.448-.444a1.93 1.93 0 0 0 .235-.584 2.66 2.66 0 0 0 .069-.603 1.986 1.986 0 0 0-.09-.627zm-.567.717c0 .346-.069.636-.202.84a.682.682 0 0 1-.605.325c-.377 0-.819-.263-.819-1.008 0-.356.045-.631.135-.84.13-.301.351-.446.671-.446.342 0 .572.133.7.41.106.227.12.505.12.719z\"},\"child\":[]}]})(props);\n};\nexport function SiWebgpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 4.784 8.652 14.432 8.652-14.432zm22.032.145L20.07 8.202H24L22.032 4.93zm-4.46 0-4.192 6.993h8.384zm2.498 3.575 1.962 3.273L24 8.504zm-6.69 3.72 4.192 6.992 4.192-6.992z\"},\"child\":[]}]})(props);\n};\nexport function SiWeblate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.662 3.809c-1.875 1.19-2.81 3.515-2.83 5.795-.014 2.628.666 5.258 1.988 7.305.936 1.46 2.238 2.715 3.836 3.412a6.942 6.942 0 005.647-.07c1.997-.927 3.523-2.73 4.463-4.785 1.606-3.518 1.643-7.724.12-11.295-1.146.458-2.166-.271-2.166-.271s.003 1.122-1.083 1.685c1.115 2.612 1.088 5.717-.03 8.263-.538 1.225-1.358 2.365-2.498 3.01-.917.52-2.04.625-3.052.184-1.342-.585-2.293-1.864-2.89-3.254-.466-1.067-.782-2.447-.802-3.878-.037-1.724.728-3.193 1.635-3.218.622-.024 1.427.918 1.598 2.435.158 1.543-.177 3.72-1.174 5.49.677 1.085 1.77 1.98 2.951 1.974 1.386-2.338 1.827-4.911 1.793-6.987-.02-2.28-.955-4.603-2.83-5.795-1.437-.907-3.173-.948-4.676 0zM3.278 3.9s-1.018.73-2.163.27c-1.524 3.573-1.488 7.778.12 11.296.94 2.056 2.465 3.858 4.462 4.785a6.95 6.95 0 005.523.124 9.12 9.12 0 01-1.75-1.455 11.18 11.18 0 01-1.267-1.628c-.768-.08-1.498-.482-2.003-.913-1.447-1.213-2.453-3.478-2.632-5.9-.12-1.635.14-3.354.795-4.894C3.276 5.022 3.278 3.9 3.278 3.9z\"},\"child\":[]}]})(props);\n};\nexport function SiWebmin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.3006 0c-1.5504.0058-2.6602 1.1575-2.503 3.0064.1018 1.2276.2082 2.4735.3125 3.7292-1.0796.4547-2.2182.9333-3.4283 1.4455-1.2547.5358-2.1224 1.6093-2.4566 2.8852-.3401 1.3009-.1354 2.808.7228 4.143.7636 1.1953 1.8562 2.0058 3.2547 2.4454-.0804 1.0912.0302 2.0788.3407 2.954a5.464 5.464 0 0 0 .5328 1.0981c.798 1.2684 1.9783 2.029 3.183 2.2356 1.184.2028 2.3797-.13 3.294-.9992.98-.9452 1.9066-1.8373 2.7905-2.6834 1.0466.6293 2.0551 1.2355 3.0367 1.8269 1.6047.957 3.2437-.0836 3.6308-2.1144.1616-.8468.0895-1.7933-.2113-2.863.571-.3511.926-.901 1.0664-1.671.3057-1.6334-.5026-3.7813-1.8262-4.8797a944.4632 944.4632 0 0 0-2.166-1.7848c-.0034-.0188-.371-2.1056-.5514-3.1098-.306-1.7243-1.7984-3.5393-3.3736-4.0403-.7224-.2305-1.3943-.1586-2.036.2239-.7784-.8241-1.5919-1.379-2.4788-1.6628C10.0398.0586 9.6584-.0013 9.3006 0zm1.0184 2.4795a1.322 1.322 0 0 1 .3814.0473c.4661.1252.9114.4903 1.1543.9326.1987.3678.29.6704.3703 1.2978.1317 1.03.2665 2.0738.4035 3.143.0136.0984.027.1947.0384.2927.1154.8888.644 1.5284 1.3295 1.6192.6596.0878 1.0102-.4298.8898-1.2608a12.1931 12.1931 0 0 0-.0377-.2763 2387.9439 2387.9439 0 0 0-.4412-3.0057c-.0635-.425-.0843-.75-.0495-.96.0511-.4654.4213-.7077.895-.5794.4787.1313.9267.5723 1.1337 1.0982.1067.266.1547.4722.2365.9637.157.941.3118 1.89.4722 2.8674.1177.638.1772 1.202 1.0443 1.8048.7299.5736 1.442 1.1397 2.1417 1.6864.4207.3311.5725.4842.739.7176.2694.3795.382.933.2875 1.3576-.087.3928-.341.628-.6585.5905-.2603-.031-.4792-.1375-.9238-.4648-.7333-.5498-1.4835-1.113-2.2592-1.6843-.0681-.048-.144-.1008-.2136-.1522-.6455-.4757-1.2088-.384-1.424.266-.223.666.0904 1.448.7545 1.9134.0715.0492.1528.1067.2224.1574.8094.5672 1.6055 1.1207 2.3804 1.6599.3285.2293.573.444.7346.6377.3572.4094.5276 1.0814.4043 1.6429-.1325.593-.5142.9019-.9785.796-.2342-.05-.4106-.1448-.8314-.4176-.817-.5301-1.657-1.0785-2.523-1.637a5.0836 5.0836 0 0 1-.2373-.1589c-.2724-.1672-.5363-.2426-.7678-.2335h-.0022c-.2596-.017-.5308.0771-.7915.286-.0727.0594-.1459.1171-.2136.181-.8083.6649-1.6461 1.3742-2.5342 2.121-.4805.4008-.6964.5576-1.0169.6704-.6459.2463-1.359-.0303-1.8054-.7398-.4212-.692-.4027-1.5886.0332-2.1542.185-.2517.498-.539.9297-.8448.9396-.672 1.83-1.3056 2.676-1.9126a10.921 10.921 0 0 0 .2277-.1581c.6417-.4552.764-1.2606.3119-2.0117-.4409-.7492-1.1696-.976-1.861-.5587a5.3786 5.3786 0 0 0-.2335.1456c-.8948.549-1.834 1.1279-2.8238 1.739-.6383.3848-.9758.5083-1.4522.5306-.5892.0302-1.2047-.3318-1.5638-.9031-.4068-.6365-.4212-1.4274-.0303-1.9178.2194-.2883.455-.4634 1.1292-.8092a274.597 274.597 0 0 1 2.996-1.5261c.0814-.0492.1625-.083.2461-.1242a1.0729 1.0729 0 0 0 .1597-.0976c.4253-.1876.6323-.6568.566-1.2933-.0117-.1063-.019-.209-.0369-.311a375.454 375.454 0 0 0-.351-3.3161c-.0693-.66-.0626-.8925.0214-1.1544.1-.3124.39-.4922.7516-.5025zM7.1101 6.737l.0023.0252c-.0009-.0012-.0016-.001-.003-.0045v-.0051a.236.236 0 0 0-.0007-.0133s.001-.0013.0015-.0023zm.003.0414c.0025.0304.0056.0598.0081.0902-.0034-.0271-.0064-.0524-.011-.0828 0-.0016.0018-.0047.0029-.0074zm.0118.136l.0023.0251h-.0023V6.924c0-.0026.002-.005-.0007-.0081 0 0 .0006-.001.0007-.0015zm.0037.0414c.0005.0052.0003.0103.0008.0155-.0002-.0011-.0008-.0026-.0008-.0037-.0007-.0027-.003-.0047-.003-.0074.0027-.0012.0027-.0028.003-.0044z\"},\"child\":[]}]})(props);\n};\nexport function SiWebmoney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.943.1825c1.8723 0 3.6538.429 5.2524 1.1964.2507.1131.503.2485.7529.384l-1.0961.971-1.6433-1.6933-2.8315 2.483L10.71 1.74 5.5032 6.368l3.3336 3.6347-1.3014 1.1285 3.2889 3.6346-1.3015 1.128 4.7045 5.1698 2.7844-2.5285 2.4217 2.7097c-.48.3613-1.0052.7232-1.5754 1.0387a12.0418 12.0418 0 0 1-5.892 1.534C5.3657 23.8175 0 18.5135 0 11.9899-.0231 5.5104 5.3435.1825 11.943.1825zM9.7502 11.267l2.8546-2.5285 2.5582 2.8218-2.8552 2.5283zm2.033 4.8764l2.8314-2.551 2.5807 2.8216-2.8548 2.5286zM7.719 6.4587l2.8537-2.5285 2.5577 2.8217-2.8548 2.5285zm5.2284-1.355l2.124-1.8961L16.99 5.307l-2.124 1.9186zm3.7912 8.6914l2.1232-1.8963 1.9186 2.1215-2.124 1.8975zm1.8723 4.267l2.124-1.8966 1.9171 2.0995-2.1232 1.9183zm.868-9.7527l1.4156-1.2643 1.2784 1.4002-1.4155 1.2638zM17.652 4.133l1.4158-1.2864 1.2793 1.422-1.4168 1.2641zm3.6308 8.3531l1.4156-1.2642L24 12.6216l-1.4381 1.2639zm-6.3711-3.138l2.124-1.8963 1.9178 2.099-2.1231 1.8967Z\"},\"child\":[]}]})(props);\n};\nexport function SiWebpack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.1987 18.498l-9.7699 5.5022v-4.2855l6.0872-3.3338 3.6826 2.117zm.6683-.6026V6.3884l-3.5752 2.0544v7.396zm-21.0657.6026l9.7699 5.5022v-4.2855L5.484 16.3809l-3.6826 2.117zm-.6683-.6026V6.3884l3.5751 2.0544v7.396zm.4183-12.2515l10.0199-5.644v4.1434L5.152 7.6586l-.0489.028zm20.8975 0l-10.02-5.644v4.1434l6.4192 3.5154.0489.028 3.5518-2.0427zm-10.8775 13.096l-6.0056-3.2873V8.9384l6.0054 3.4525v6.349zm.8575 0l6.0053-3.2873V8.9384l-6.0053 3.4525zM5.9724 8.1845l6.0287-3.3015L18.03 8.1845l-6.0288 3.4665z\"},\"child\":[]}]})(props);\n};\nexport function SiWebrtc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.9998.3598c-2.8272 0-5.1456 2.1733-5.3793 4.94a5.4117 5.4117 0 00-1.2207-.1401C2.418 5.1597 0 7.5779 0 10.5603c0 2.2203 1.341 4.1274 3.2568 4.957a5.3734 5.3734 0 00-.7372 2.7227c0 2.9823 2.4175 5.4002 5.4002 5.4002 1.6627 0 3.1492-.7522 4.1397-1.934.9906 1.1818 2.4773 1.934 4.1398 1.934 2.983 0 5.4004-2.418 5.4004-5.4002 0-.9719-.258-1.883-.7073-2.6708C22.7283 14.7068 24 12.8418 24 10.6795c0-2.9823-2.4175-5.4006-5.3998-5.4006-.417 0-.8223.049-1.2121.1384C17.2112 2.5949 14.867.3598 11.9998.3598zm-5.717 6.8683h10.5924c.7458 0 1.352.605 1.352 1.3487v7.6463c0 .7438-.6062 1.3482-1.352 1.3482h-3.6085l-7.24 3.5491 1.1008-3.5491h-.8447c-.7458 0-1.3522-.6044-1.3522-1.3482V8.5768c0-.7438.6064-1.3487 1.3522-1.3487Z\"},\"child\":[]}]})(props);\n};\nexport function SiWebstorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0v24h24V0H0zm17.889 2.889c1.444 0 2.667.444 3.667 1.278l-1.111 1.667c-.889-.611-1.722-1-2.556-1s-1.278.389-1.278.889v.056c0 .667.444.889 2.111 1.333 2 .556 3.111 1.278 3.111 3v.056c0 2-1.5 3.111-3.611 3.111-1.5-.056-3-.611-4.167-1.667l1.278-1.556c.889.722 1.833 1.222 2.944 1.222.889 0 1.389-.333 1.389-.944v-.056c0-.556-.333-.833-2-1.278-2-.5-3.222-1.056-3.222-3.056v-.056c0-1.833 1.444-3 3.444-3zm-16.111.222h2.278l1.5 5.778 1.722-5.778h1.667l1.667 5.778 1.5-5.778h2.333l-2.833 9.944H9.723L8.112 7.277l-1.667 5.778H4.612L1.779 3.111zm.5 16.389h9V21h-9v-1.5z\"},\"child\":[]}]})(props);\n};\nexport function SiWebtoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.023 15.26c.695 0 1.014-.404 1.014-1.051 0-.551-.308-1.01-.984-1.01-.58 0-.912.404-.912 1.016 0 .543.32 1.045.882 1.045zM10.135 15.447c.764 0 1.113-.443 1.113-1.154 0-.604-.338-1.109-1.082-1.109-.637 0-1.002.445-1.002 1.115 0 .597.352 1.148.971 1.148zM24 10.201l-3.15.029.83-9.686L1.958 3.605l1.686 6.248H0l3.734 11.488 8.713-1.283v3.396l10.113-4.641L24 10.201zm-9.104-3.594c0-.049.039-.092.088-.094l1.879-.125.446-.029c.524-.035 1.634.063 1.634 1.236 0 .83-.619 1.184-.619 1.184s.75.189.707 1.092c0 1.602-1.943 1.389-1.943 1.389l-.225-.006-1.908-.053a.089.089 0 0 1-.086-.09l.027-4.504zm-3.675.243c0-.047.039-.09.088-.092l3.064-.203a.08.08 0 0 1 .087.08v.943c0 .049-.039.09-.087.092l-1.9.08a.094.094 0 0 0-.088.09l-.005.394a.083.083 0 0 0 .086.084l1.646-.066a.082.082 0 0 1 .086.084l-.02 1.012a.089.089 0 0 1-.089.086h-1.63a.089.089 0 0 0-.088.088v.416c0 .047.039.088.088.088l1.87.033a.09.09 0 0 1 .087.09v.951a.084.084 0 0 1-.087.084l-3.063-.123a.09.09 0 0 1-.087-.09l.042-4.121zm-6.01.312l.975-.064a.101.101 0 0 1 .105.08l.458 2.205c.01.047.027.047.039 0l.576-2.281a.132.132 0 0 1 .108-.09l.921-.061a.108.108 0 0 1 .109.078l.564 2.342c.012.047.029.047.041 0l.6-2.424a.131.131 0 0 1 .108-.092l.996-.064c.048-.004.077.031.065.078l-1.09 4.104a.113.113 0 0 1-.109.082l-1.121-.031a.12.12 0 0 1-.109-.086l-.535-1.965c-.012-.047-.033-.047-.045 0l-.522 1.934a.12.12 0 0 1-.11.082l-1.109-.031a.123.123 0 0 1-.108-.088l-.873-3.618c-.011-.047.019-.088.066-.09zm-.288 9.623v-3.561a.089.089 0 0 0-.087-.088l-1.252-.029a.095.095 0 0 1-.091-.09l-.046-1.125a.082.082 0 0 1 .083-.086l4.047.096c.048 0 .087.041.085.088l-.022 1.088a.093.093 0 0 1-.089.088l-1.139.004a.09.09 0 0 0-.087.088v3.447c0 .049-.039.09-.087.092l-1.227.07a.08.08 0 0 1-.088-.082zm2.834-2.379c0-1.918 1.321-2.482 2.416-2.482s2.339.73 2.339 2.316c0 1.9-1.383 2.482-2.416 2.482-1.033.001-2.339-.724-2.339-2.316zm5.139-.115c0-1.746 1.166-2.238 2.162-2.238s2.129.664 2.129 2.107c0 1.729-1.259 2.26-2.198 2.26s-2.093-.68-2.093-2.129zm7.259 1.711a.175.175 0 0 1-.139-.064l-1.187-1.631c-.029-.039-.053-.031-.053.018v1.67c0 .047-.039.09-.086.092l-1.052.061a.082.082 0 0 1-.087-.082l.039-3.842c0-.047.039-.086.088-.084l.881.02a.2.2 0 0 1 .137.074l1.293 1.902c.027.041.051.033.051-.014l.032-1.846a.087.087 0 0 1 .089-.086l.963.029c.047 0 .085.041.083.09l-.138 3.555a.097.097 0 0 1-.091.092l-.823.046zM16.258 8.23l.724-.014s.47.018.47-.434c0-.357-.411-.33-.411-.33l-.782.008a.09.09 0 0 0-.088.088v.598a.083.083 0 0 0 .087.084zM16.229 10.191h.99c.024 0 .35-.051.35-.404 0-.293-.229-.402-.441-.398l-.898.029a.089.089 0 0 0-.087.09v.596a.086.086 0 0 0 .086.087z\"},\"child\":[]}]})(props);\n};\nexport function SiWebtrees (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.957 4.34q.647 0 1.269.243.634.243 1.093.7.459.448.662 1l1.592 4.59 1.31-3.82Q9.84 4.26 11.92 4.26q.459 0 1.106.203.729.23 1.228.809.5.58.905 1.782l1.296 3.82 1.606-4.59q.189-.54.649-.998.472-.459 1.079-.703.608-.243 1.283-.243.62.04 1.241.338.783.378 1.228 1.106.459.73.459 1.66 0 .81-.364 1.54l-4.225 8.652q-1.025 2.106-3.037 2.106-.905-.04-1.634-.567-.728-.54-1.133-1.498L12 13.72l-1.606 3.955q-.243.634-.647 1.093-.406.447-.945.702-.54.257-1.134.27-1.013 0-1.755-.486-.742-.5-1.297-1.62L.392 8.983Q0 8.16 0 7.443q0-.89.46-1.632.459-.756 1.254-1.134.622-.297 1.243-.337Z\"},\"child\":[]}]})(props);\n};\nexport function SiWechat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.691 2.188C3.891 2.188 0 5.476 0 9.53c0 2.212 1.17 4.203 3.002 5.55a.59.59 0 0 1 .213.665l-.39 1.48c-.019.07-.048.141-.048.213 0 .163.13.295.29.295a.326.326 0 0 0 .167-.054l1.903-1.114a.864.864 0 0 1 .717-.098 10.16 10.16 0 0 0 2.837.403c.276 0 .543-.027.811-.05-.857-2.578.157-4.972 1.932-6.446 1.703-1.415 3.882-1.98 5.853-1.838-.576-3.583-4.196-6.348-8.596-6.348zM5.785 5.991c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178A1.17 1.17 0 0 1 4.623 7.17c0-.651.52-1.18 1.162-1.18zm5.813 0c.642 0 1.162.529 1.162 1.18a1.17 1.17 0 0 1-1.162 1.178 1.17 1.17 0 0 1-1.162-1.178c0-.651.52-1.18 1.162-1.18zm5.34 2.867c-1.797-.052-3.746.512-5.28 1.786-1.72 1.428-2.687 3.72-1.78 6.22.942 2.453 3.666 4.229 6.884 4.229.826 0 1.622-.12 2.361-.336a.722.722 0 0 1 .598.082l1.584.926a.272.272 0 0 0 .14.047c.134 0 .24-.111.24-.247 0-.06-.023-.12-.038-.177l-.327-1.233a.582.582 0 0 1-.023-.156.49.49 0 0 1 .201-.398C23.024 18.48 24 16.82 24 14.98c0-3.21-2.931-5.837-6.656-6.088V8.89c-.135-.01-.27-.027-.407-.03zm-2.53 3.274c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.97-.982zm4.844 0c.535 0 .969.44.969.982a.976.976 0 0 1-.969.983.976.976 0 0 1-.969-.983c0-.542.434-.982.969-.982z\"},\"child\":[]}]})(props);\n};\nexport function SiWegame (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.458 11.005c-.024-.179-.078-.632-.165-1.08a8.082 8.082 0 0 0-.255-1.006l-.005-.015a1.87 1.87 0 0 0-.151-.315 1.224 1.224 0 0 0-.317-.354 1.57 1.57 0 0 0-1.412-.138 2.029 2.029 0 0 0-.861 1.064c-.238.465-.475.93-.742 1.378a2.617 2.617 0 0 1-.572.7 1.33 1.33 0 0 1-.367.215c-.534.2-.91-.08-1.321-.403-.438-.342-.824-.744-1.274-1.073a1.851 1.851 0 0 0-.983-.43c-.637-.003-1.195.619-1.544 1.078-.195.258-.577.779-.775 1.033a3.403 3.403 0 0 1-.454.458 1.169 1.169 0 0 1-.196.138 1.101 1.101 0 0 1-.48.136 1.566 1.566 0 0 1-.869-.263 2.678 2.678 0 0 1-.288-.183l-.035-.027a.469.469 0 0 0-.734.428.392.392 0 0 0 .024.136c0 .003.003.005.004.008a.395.395 0 0 0 .093.14c.608.897 1.47 1.55 2.303 1.564a1.507 1.507 0 0 0 .635-.124c.646-.285 1.13-.903 1.67-1.334a1.314 1.314 0 0 1 .776-.33 1.038 1.038 0 0 1 .63.215 2.122 2.122 0 0 1 .189.144 8.916 8.916 0 0 1 .742.753 9.93 9.93 0 0 0 .9.85 2.53 2.53 0 0 0 1.146.56c.046.007.091.011.136.014a1.522 1.522 0 0 0 1.002-.314 4.176 4.176 0 0 0 .745-.689 6.13 6.13 0 0 0 .463-.664c.07-.112.143-.19.2-.308a5.769 5.769 0 0 1-.065.953 10.09 10.09 0 0 1-.212 1.288q-.062.253-.135.503-.116.397-.262.786a1.906 1.906 0 0 1-.072.188l-.003.007q-.088.23-.192.453a7.005 7.005 0 0 1-12.74-.01q-.106-.225-.195-.459l-.004-.009a10.91 10.91 0 0 1 .426-9.024 13.024 13.024 0 0 1 1.635-2.396 8.352 8.352 0 0 1 2.132-1.946c.03-.017.057-.037.086-.055a4.168 4.168 0 0 1 4.57 0l.086.055a11.285 11.285 0 0 1 1.795 1.588l.002.002.052.053a1.183 1.183 0 0 0 .296.212 1.36 1.36 0 0 0 1.493-.211 1.291 1.291 0 0 0 .137-1.672c-.041-.05-.083-.1-.121-.15a8.076 8.076 0 0 0-.722-.763A14.069 14.069 0 0 0 15.375.9a6.85 6.85 0 0 0-.118-.071A6.126 6.126 0 0 0 12.118 0a5.748 5.748 0 0 0-3.033.841 3.166 3.166 0 0 0-.117.071A12.178 12.178 0 0 0 6.003 3.39a.455.455 0 0 1-.024.025 15.477 15.477 0 0 0-3.578 9.8 16.626 16.626 0 0 0 .359 3.444 9.487 9.487 0 0 0 18.478.017l.028-.13a.097.097 0 0 0 .002-.012l.02-.103a15.856 15.856 0 0 0 .286-2.235q.026-.454.026-.91a18.254 18.254 0 0 0-.142-2.28z\"},\"child\":[]}]})(props);\n};\nexport function SiWeightsandbiases (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.48 0a1.55 1.55 0 1 0 0 3.1 1.55 1.55 0 0 0 0-3.1zm19.04 0a1.55 1.55 0 1 0 0 3.101 1.55 1.55 0 0 0 0-3.101zM12 2.295a1.55 1.55 0 1 0 0 3.1 1.55 1.55 0 0 0 0-3.1zM2.48 5.272a2.48 2.48 0 1 0 0 4.96 2.48 2.48 0 0 0 0-4.96zm19.04 0a2.48 2.48 0 1 0 0 4.96 2.48 2.48 0 0 0 0-4.96zM12 8.496a1.55 1.55 0 1 0 0 3.1 1.55 1.55 0 0 0 0-3.1zm-9.52 3.907a1.55 1.55 0 1 0 0 3.1 1.55 1.55 0 0 0 0-3.1zm19.04 0a1.55 1.55 0 1 0 0 3.102 1.55 1.55 0 0 0 0-3.102zM12 13.767a2.48 2.48 0 1 0 0 4.962 2.48 2.48 0 0 0 0-4.962zm-9.52 3.907a2.48 2.48 0 1 0 .001 4.962 2.48 2.48 0 0 0 0-4.962zm19.04.93a1.55 1.55 0 1 0 0 3.102 1.55 1.55 0 0 0 0-3.101zM12 20.9a1.55 1.55 0 1 0 0 3.1 1.55 1.55 0 0 0 0-3.1Z\"},\"child\":[]}]})(props);\n};\nexport function SiWelcometothejungle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.62 3.783c-1.115-1.811-4.355-2.604-6.713-.265-.132.135-.306.548.218 1.104 1.097 1.149 6.819 7.046 4.702 12.196-1.028 2.504-3.953 2.073-5.052-2.076a23.184 23.184 0 0 1-.473-9.367s.105-.394-.065-.52c-.117-.087-.305-.05-.547.33-.06.096-.048.076-.106.178l-.003.002c-1.622 2.688-3.272 5.874-4.049 7.07.38-1.803-.101-4.283-.85-6.359l-.142-.375c-.692-1.776-1.524-2.974-1.776-3.245-.03-.033-.105-.094-.353-.094H.398c-.49 0-.448.412-.293.561 1.862 2.178 7.289 10.343 4.773 18.355-.194.619.11.944.612.305 2.206-2.81 4.942-7.598 6.925-11.187-.437 1.245-.822 2.63-1.028 4.083-.435 3.064.487 5.37 1.162 6.58.345.619.803.998 1.988.824 6.045-.885 8.06-6.117 8.805-8.77 1.357-4.839.363-7.568-.722-9.33\"},\"child\":[]}]})(props);\n};\nexport function SiWellfound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.998 8.128c.063-1.379-1.612-2.376-2.795-1.664-1.23.598-1.322 2.52-.156 3.234 1.2.862 2.995-.09 2.951-1.57zm0 7.748c.063-1.38-1.612-2.377-2.795-1.665-1.23.598-1.322 2.52-.156 3.234 1.2.863 2.995-.09 2.951-1.57zm-20.5 1.762L0 6.364h3.257l2.066 8.106 2.245-8.106h3.267l2.244 8.106 2.065-8.106h3.257l-3.54 11.274H11.39c-.73-2.713-1.46-5.426-2.188-8.14l-2.233 8.14H3.5z\"},\"child\":[]}]})(props);\n};\nexport function SiWellsfargo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.136 13.949c0 .392-.245.616-.719.616h-.628v-1.226h.628c.48 0 .72.212.72.61zM6.922 15.06h1.044l-.523-1.443-.521 1.443zm12.46-1.82c-.72 0-1.109.562-1.109 1.526 0 .97.384 1.526 1.108 1.526.725 0 1.108-.556 1.108-1.526 0-.964-.389-1.526-1.108-1.526zM23.73 0v24H.269V0h23.462zm-5.548 10.652c.484.245.948.354 1.571.354.895 0 1.481-.458 1.481-1.171 0-.6-.357-1.014-1.028-1.172l-.677-.158c-.394-.092-.559-.25-.559-.517 0-.322.25-.523.74-.523s.778.18.89.604l.048.186h.383v-.943a2.927 2.927 0 0 0-1.352-.338c-.911 0-1.497.447-1.497 1.166 0 .556.34.965.996 1.112l.676.152c.432.099.592.273.592.562 0 .354-.261.55-.784.55-.59 0-.894-.24-1.027-.697l-.07-.235h-.383v1.068zm-3.378.245h3.02V9.595h-.383l-.043.19c-.106.486-.255.638-.607.638h-.74V7.557h.506v-.474h-1.753v.474h.453v2.866h-.453v.474zm-3.355 0h3.02V9.595h-.384l-.042.19c-.107.486-.256.638-.608.638h-.74V7.557h.506v-.474H11.45v.474h.452v2.866h-.452v.474zm-8.758-3.34.938 3.34h.74l.778-2.768.756 2.768h.74l.932-3.34h.736v2.866h-.453v.474h3.201V9.595h-.383l-.043.19c-.106.486-.26.638-.607.638h-.922V9.241h1.071a.58.58 0 0 0 .059-.273.55.55 0 0 0-.059-.26h-1.07v-1.15h.884c.357 0 .48.157.596.615l.038.147h.383V7.083H6.49v.474h.522l-.613 2.305-.762-2.779h-.766l-.746 2.774-.624-2.3h.501v-.474H2.266v.474h.426zm1.412 7.002v-1.22h.947c.358 0 .48.158.597.615l.038.147h.383v-1.236H2.857v.474h.453v2.866h-.453v.474h1.78v-.474h-.533v-1.112H5.2a.58.58 0 0 0 .058-.272.551.551 0 0 0-.058-.262H4.104zm9.114 1.913a.461.461 0 0 0-.048-.224.663.663 0 0 1-.112.011c-.245 0-.309-.142-.34-.458l-.022-.201c-.048-.43-.245-.708-.73-.746v-.017c.48-.022.975-.349.975-.964 0-.621-.496-1.008-1.257-1.008H9.542v.474h.453v2.866H9.26l-1.332-3.34H7.22l-1.305 3.34h-.373v.474h1.412v-.474h-.448l.245-.682h1.385l.245.682h-.437v.474h3.35v-.474h-.505v-1.16h.293c.586 0 .761.212.826.762l.02.19c.06.507.31.725.826.725.15 0 .299-.01.416-.027a.46.46 0 0 0 .048-.223zm3.633-1.788h-1.417a.52.52 0 0 0-.059.256c0 .11.016.18.059.268h.634v.964a1.598 1.598 0 0 1-.629.125c-.767 0-1.166-.56-1.166-1.53s.4-1.532 1.124-1.532c.485 0 .767.245.932.67l.058.153h.384v-.976a3.063 3.063 0 0 0-1.412-.337c-1.172 0-1.96.8-1.96 2.027 0 1.231.767 2.016 1.96 2.016.474 0 .964-.136 1.492-.404v-1.7zm4.512.082c0-1.182-.831-2.021-1.982-2.021-1.145 0-1.981.839-1.981 2.021 0 1.188.83 2.022 1.981 2.022 1.156 0 1.982-.834 1.982-2.022z\"},\"child\":[]}]})(props);\n};\nexport function SiWemo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.3014 0C1.925 0 0 1.9254 0 4.302v15.3965C0 22.0728 1.925 24 4.3014 24H19.697c2.3757 0 4.3026-1.9272 4.3026-4.3015H24V4.3019C24 1.9258 22.0731 0 19.6974 0zm12.912 4.1665c2.0881 0 3.7885 1.621 3.7885 3.6134 0 .0947-.004.1877-.011.2799l-.0157.1756H14.651l.1142.3244c.3537.9944 1.337 1.6628 2.4478 1.6628.8293 0 1.6137-.383 2.0992-1.0237l.109-.1462.9896.6745-.12.1603c-.7109.9427-1.8618 1.5054-3.0775 1.5054-2.0907 0-3.7912-1.6207-3.7912-3.613 0-1.9924 1.7005-3.6134 3.7912-3.6134zm-13.9374.132h1.2095V8.729c0 .7302.5934 1.3236 1.324 1.3236.7298 0 1.3243-.5934 1.3243-1.3236V4.2986h1.2069v4.4303c0 .7302.5941 1.3236 1.3247 1.3236.7298 0 1.3236-.5934 1.3236-1.3236V4.2986h1.2095v4.4303c0 1.3964-1.136 2.5319-2.5331 2.5319-.648 0-1.2892-.26-1.7604-.7137l-.1683-.1624-.168.1624c-.4712.4537-1.112.7137-1.7592.7137-1.3971 0-2.5335-1.1355-2.5335-2.532zm13.9373 1.0248c-.987 0-1.8822.5172-2.3362 1.3484l-.1946.3586h5.0588l-.1946-.3586c-.4536-.8315-1.3478-1.3484-2.3334-1.3484zm-.0015 7.2326c2.0893 0 3.7895 1.6217 3.7895 3.6137 0 1.993-1.7002 3.6138-3.7895 3.6138-2.0903 0-3.789-1.621-3.789-3.6138 0-1.992 1.699-3.6137 3.789-3.6137zm-11.403.1328c.6482 0 1.2906.2597 1.7618.7134l.1668.1624.1687-.1624c.4719-.4537 1.1125-.7134 1.7593-.7134 1.396 0 2.5323 1.1363 2.5323 2.532v4.4303h-1.208v-4.4303c0-.7302-.5945-1.3247-1.324-1.3247-.7309 0-1.3243.5945-1.3243 1.3247v4.4303H7.1338v-4.4303c0-.7302-.5934-1.3247-1.325-1.3247-.7295 0-1.323.5945-1.323 1.3247v4.4303h-1.209v-4.4303c0-1.3953 1.1367-2.532 2.532-2.532zm11.403 1.0383c-1.422 0-2.579 1.096-2.579 2.443 0 1.3466 1.157 2.4423 2.579 2.4423 1.4224 0 2.5782-1.0957 2.5782-2.4423 0-1.347-1.1561-2.443-2.5782-2.443Z\"},\"child\":[]}]})(props);\n};\nexport function SiWesterndigital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1.4916 4.6198C.1766 4.6235-.4917 6.2026.4214 7.149c1.1578 1.1552 2.3139 2.312 3.4705 3.4684 2.4059 2.3815 4.8088 4.766 7.2025 7.1596l1.0703 1.1152c.9402.9525 2.5611.2658 2.531-1.0722v-3.4255c-.0105-.8247-.677-1.4905-1.5018-1.4999h-4.156c-1.4481.0095-2.6245-1.1669-2.615-2.615v-4.16c-.0104-.8248-.677-1.4905-1.5018-1.5Zm9.261 0c-1.316.002-1.9858 1.582-1.0722 2.5292 3.9317 3.927 7.8588 7.8588 11.7881 11.788.9396.9519 2.5594.267 2.5311-1.0702v-3.4293c-.0105-.8247-.677-1.4905-1.5019-1.4999-1.4004.0137-2.8005-.0184-4.2007-.043-1.4475.0085-2.6227-1.1676-2.6131-2.615v-4.16c-.0105-.8247-.677-1.4904-1.502-1.4998Zm8.2728 0c-1.3516-.0072-2.0127 1.645-1.0292 2.5722l3.4313 3.4293c.9472.9137 2.5273.2439 2.5291-1.0721V6.1196c-.0104-.8239-.676-1.4893-1.4998-1.4998z\"},\"child\":[]}]})(props);\n};\nexport function SiWesternunion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.799 5.188h5.916L24 9.155l-4.643 8.043c-1.246 2.153-3.28 2.153-4.526 0L7.893 5.188h5.919l4.273 7.39a1.127 1.127 0 0 0 1.981.002l-4.267-7.392ZM0 5.188h5.921l6.237 10.802-.697 1.204c-1.246 2.153-3.285 2.153-4.531 0L0 5.188Z\"},\"child\":[]}]})(props);\n};\nexport function SiWetransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.855 11.891c0-3.382 2.4-5.4 5.51-5.4C22.145 6.491 24 7.91 24 9.873c0 1.855-1.582 3.055-3.328 3.055-.982 0-1.69-.164-2.182-.546-.163-.164-.272-.109-.272.055 0 .709.272 1.254.709 1.745.382.382 1.09.655 1.745.655.71 0 1.31-.164 1.855-.437.545-.272.982-.163 1.254.273.328.49-.109 1.145-.49 1.582-.71.763-2.073 1.309-3.819 1.309-3.545-.11-5.618-2.51-5.618-5.673zm-7.254 2.237c.327 0 .545.163.763.545l.982 1.582c.382.6.709 1.036 1.418 1.036.71 0 1.091-.273 1.418-1.09a21.11 21.11 0 001.31-3.873c.49-1.855.709-2.946.709-3.873s-.273-1.473-1.31-1.637c-1.363-.272-3.272-.381-5.29-.381-2.019 0-3.928.109-5.291.327C.273 6.982 0 7.528 0 8.454c0 .928.219 2.019.655 3.874a28.714 28.714 0 001.31 3.872c.381.818.708 1.091 1.417 1.091.71 0 1.037-.436 1.419-1.036l.981-1.582c.273-.327.491-.545.819-.545z\"},\"child\":[]}]})(props);\n};\nexport function SiWezterm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.27 8.524c0-.623.62-1.007 2.123-1.007l-.5 2.757c-.931-.623-1.624-1.199-1.624-1.75zm4.008 6.807c0 .647-.644 1.079-2.123 1.15l.524-2.924c.931.624 1.6 1.175 1.6 1.774zm-2.625 5.992.454-2.708c3.603-.336 5.01-1.798 5.01-3.404 0-1.653-2.004-2.948-3.841-4.074l.668-3.548c.764.072 1.67.216 2.744.432l.31-2.469c-.81-.12-1.575-.168-2.29-.216L8.257 2.7l-2.363-.024-.453 2.684C1.838 5.648.43 7.158.43 8.764c0 1.63 2.004 2.876 3.841 3.954l-.668 3.716c-.859-.048-1.908-.192-3.125-.408L0 18.495c1.026.12 1.98.192 2.84.216l-.525 2.588zm15.553-1.894h2.673c.334-2.804.81-8.46 1.121-14.86h-2.553c-.071 1.51-.334 10.498-.43 11.241h-.071c-.644-2.42-1.169-4.386-1.813-6.782h-1.456c-.62 2.396-1.05 4.194-1.694 6.782h-.096c-.071-.743-.477-9.73-.525-11.24h-2.648c.31 6.399.763 12.055 1.097 14.86h2.625l1.838-7.12z\"},\"child\":[]}]})(props);\n};\nexport function SiWgpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9999 2.0001 0 22h8.0001L12 15.0002l3.9999 6.9997H24L20.0001 2l-5.0003 8L12 6 9.0002 9.9999Z\"},\"child\":[]}]})(props);\n};\nexport function SiWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z\"},\"child\":[]}]})(props);\n};\nexport function SiWheniwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 24C5.342 24 0 18.582 0 12 0 5.342 5.342 0 12 0s12 5.342 12 12c0 6.582-5.342 12-12 12zm0-21.986c-5.497 0-9.987 4.489-9.987 9.986 0 5.498 4.49 9.988 9.987 9.988 5.498 0 9.987-4.49 9.987-9.988 0-5.497-4.489-9.986-9.987-9.986zm5.885 11.148H9.213c-.384 0-.695-.309-.698-.691v-1.012c0-.387.311-.697.698-.697h8.748c.387 0 .697.311.697.697v1.006c-.077.387-.387.697-.773.697zm-2.246-3.871H6.891c-.383.002-.697-.307-.698-.691V7.59c0-.311.31-.621.697-.621h8.748c.31 0 .62.311.62.619v1.006c.001.386-.31.697-.619.697zm-8.748 5.418h8.748c.388 0 .696.311.696.697v1.006c.002.383-.309.695-.691.697H6.891c-.388-.076-.697-.387-.697-.773V15.33c-.001-.31.309-.621.697-.621z\"},\"child\":[]}]})(props);\n};\nexport function SiWii (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.904 6.261c-.729-.014-1.33.565-1.344 1.293v.018c.012.732.612 1.315 1.344 1.305.783 0 1.404-.579 1.404-1.305.001-.732-.62-1.311-1.404-1.311zm4.71 0c-.747 0-1.36.58-1.36 1.311 0 .711.613 1.305 1.361 1.305.767 0 1.385-.579 1.385-1.305 0-.732-.618-1.311-1.386-1.311zm-14.84.543c-.748 0-1.252.374-1.514 1.215-.242.857-1.794 6.822-1.794 6.822L2.43 6.897H0s2.334 8.464 2.652 9.456c.241.765.84 1.386 1.7 1.386 1.009 0 1.479-.732 1.684-1.386.225-.676 1.738-6.261 1.738-6.261s1.515 5.589 1.719 6.261c.225.653.69 1.386 1.682 1.386.879 0 1.456-.621 1.72-1.386.315-.99 2.657-9.456 2.657-9.456h-2.45l-2.021 7.944s-1.55-5.965-1.812-6.822c-.242-.844-.77-1.215-1.495-1.215zm9.008 3.363v7.495h2.322v-7.495h-2.322zm4.693 0v7.495h2.317v-7.495h-2.317z\"},\"child\":[]}]})(props);\n};\nexport function SiWiiu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.133 8.432c-.465 0-.835.359-.835.814.007.454.381.817.835.812.488 0 .873-.358.873-.81 0-.455-.385-.816-.873-.816zm2.93 0c-.465 0-.848.359-.848.814 0 .442.383.812.848.812.477 0 .861-.358.861-.81 0-.455-.385-.816-.861-.816zm3.655.011c-.53 0-.99.335-.99.858v3.315c0 .809.56 1.289 1.377 1.289h4.647c.689 0 1.248-.477 1.248-1.162V9.345c0-.412-.308-.86-.688-.86h-1.075v2.799c0 2.122-3.701 2.104-3.701.04v-2.88h-.818zm1.679 0v2.453c0 1.636 1.934 1.402 1.934.256V8.445h-1.934v-.002zM4.833 8.77c-.465 0-.776.232-.938.756-.152.533-1.116 4.242-1.116 4.242l-1.267-4.94H0s1.451 5.264 1.65 5.881c.15.476.521.86 1.058.86.627 0 .917-.454 1.045-.86.14-.421 1.08-3.895 1.08-3.895s.942 3.476 1.069 3.895c.14.406.431.86 1.047.86.547 0 .906-.385 1.07-.86.196-.617 1.65-5.881 1.65-5.881H8.148l-1.258 4.94s-.963-3.709-1.125-4.242c-.15-.526-.479-.756-.93-.756h-.002zm5.605 2.09v4.662h1.441V10.86h-1.441zm2.916 0v4.662h1.442V10.86h-1.442z\"},\"child\":[]}]})(props);\n};\nexport function SiWikibooks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.027.29c-.424.143-.776.418-1.106.707C.434 5.314.254 5.497.254 5.497c-.236.22-.257.537-.254.859l.021 1.819s2.07-2.013 5.164-4.99c1.665 4.337 3.405 8.651 5.116 12.974.234.653-.329 1.188-1.04 1.902-.982.958-3.034 2.93-5.136 5.561h2.107l5.067-5.554c.482-.662 1.077-1.309.824-1.909L8.145 5.806c.924-.785 1.763-1.676 2.618-2.531l5.252 13.173c.303.891-.175 1.684-1.134 2.549-1.148.922-3.508 3.073-4.58 4.712h1.631c1.71-1.758 2.017-1.994 3.964-3.68 1.308-1.334 2.488-2.022 1.871-3.731l-4.13-10.325c1.007-.99 2.013-1.875 2.98-2.852 2.113 4.643 3.559 8.384 5.33 13.33.58 1.607.458 1.682-.928 2.55-2.228 1.107-2.929 1.834-5.585 4.66h1.815c2.22-2.008 3.045-2.716 5.825-4.18.983-.569 1.116-1.285.713-2.4-1.3-3.616-4.116-11.41-6.719-16.755l-4.103 3.971-1.569-3.92C9.912 1.38 8.74 2.78 7.466 4.04z\"},\"child\":[]}]})(props);\n};\nexport function SiWikidata (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 4.583v14.833h.865V4.583zm1.788 0v14.833h2.653V4.583zm3.518 0v14.832H7.96V4.583zm3.547 0v14.834h.866V4.583zm1.789 0v14.833h.865V4.583zm1.759 0v14.834h2.653V4.583zm3.518 0v14.834h.923V4.583zm1.788 0v14.833h2.653V4.583zm3.64 0v14.834h.865V4.583zm1.788 0v14.834H24V4.583Z\"},\"child\":[]}]})(props);\n};\nexport function SiWikidotgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8326 3.7604c-1.2353.33-2.4875 1.3283-3.0713 2.4451-.2961.5754-2.4875 7.3356-2.699 8.334-.1354.643-.0423 1.726.203 2.4451.7277 2.0898 2.6145 3.3928 4.9243 3.3928 1.599 0 2.6313-.3892 3.892-1.4806 1.2268-1.0576 2.259-1.4638 3.5112-1.3622 1.1337.0846 1.8952.4315 2.9613 1.3622 1.506 1.3199 3.249 1.7006 5.051 1.0999 1.2523-.4146 2.276-1.2945 2.8598-2.4452.4485-.8969.5754-1.5399.5246-2.5467-.0338-.8038-.093-1.0153-1.1845-4.3573-.6261-1.9291-1.2268-3.7143-1.3199-3.9597-.4146-1.0407-1.2437-1.9544-2.276-2.496-.956-.5076-1.3283-.5668-3.4774-.5668-1.1506 0-1.8698.0338-1.8275.0761.0508.0423.5246.33 1.0576.643.533.3046 1.0407.6346 1.1253.7361.0846.1016.1438.3131.1438.5077 0 .4061-.093.4992-1.3114 1.3368l-.9307.6346 1.6668.0423c1.6076.0423 1.6668.0507 1.8783.2453.2623.2454.2284.1608 1.4976 4.0697 1.0999 3.4012 1.1422 3.6043.753 4.0189-.5161.55-1.0322.4822-1.8191-.2115-.3215-.2793-.77-.6346-1.0068-.7954-3.122-2.056-7.2256-1.8021-10.0938.6261-.956.8123-1.0153.8461-1.5652.8461-.2877 0-.6092-.0592-.753-.1269-.2877-.1523-.5839-.5838-.5839-.863 0-.1015.5077-1.7937 1.1338-3.7566.8968-2.8344 1.1845-3.6128 1.3537-3.7904.22-.22.237-.22 1.9376-.2793.9391-.0253 1.8613-.093 2.0475-.1522.4146-.127 2.1998-1.1423 2.4198-1.3792.1776-.1946.2115-.5415.0677-.846-.1016-.2285-1.6668-1.1761-2.3522-1.43-.5245-.1945-4.0273-.2114-4.738-.0168zm13.368 1.379c.33.3385.3385.753.0085 1.1169-.406.4569-1.1337.3215-1.3706-.2538-.3384-.8292.7192-1.4976 1.3622-.863z\"},\"child\":[]}]})(props);\n};\nexport function SiWikidotjs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.801 13.557c.148.098.288.202.417.313 1.854 1.6 3.127 4.656 2.582 7.311-1.091-.255-5.747-1.055-7.638-3.383-.91-1.12-1.366-2.081-1.569-2.885a5.65 5.65 0 0 0 .034-.219c.089.198.197.35.313.466.24.24.521.335.766.372.304.046.594-.006.806-.068l.001.001c.05-.015.433-.116.86-.342.325-.173 2.008-.931 3.428-1.566Zm-7.384 1.435C9.156 16.597 6.6 18.939.614 18.417c.219-1.492 1.31-3.019 2.51-4.11.379-.345.906-.692 1.506-1.009.286.168.598.332.939.486 2.689 1.221 3.903 1.001 4.89.573a1.3 1.3 0 0 0 .054-.025 6.156 6.156 0 0 0-.096.66Zm4.152-.462c.38-.341.877-.916 1.383-1.559-.389-.15-.866-.371-1.319-.591-.598-.29-1.305-.283-2.073-.315a4.685 4.685 0 0 1-.804-.103c.014-.123.027-.246.038-.369.062.104.673.057.871.057.354 0 1.621.034 3.074-.574 1.452-.608 2.55-1.706 3.022-3.225.474-1.52.22-3.091-.168-3.952-.169.709-1.453 2.381-1.926 2.871-.473.489-2.381 2.296-2.972 2.921-.7.74-.688.793-1.332 1.302-.202.19-.499.402-.563.53.027-.338.039-.675.027-.997a7.653 7.653 0 0 0-.032-.523c.322-.059.567-.522.567-.861 0-.224-.106-.247-.271-.229.075-.894.382-3.923 1.254-4.281.218.109.831.068.649-.295-.182-.364-.825-.074-1.081.266-.28.374-.956 2.046-.92 4.324-.113.014-.174.033-.322.033-.171 0-.321-.04-.433-.05.034-2.275-.714-3.772-.84-4.169-.12-.375-.491-.596-.781-.596-.146 0-.272.056-.333.179-.182.363.459.417.677.308.706.321 1.156 3.519 1.254 4.277-.125-.006-.199.035-.199.233 0 .311.17.756.452.843a.442.442 0 0 0-.007.03s-.287.99-.413 2.189a4.665 4.665 0 0 1-.718-.225c-.714-.286-1.355-.583-2.019-.566-.664.018-1.366.023-1.804-.036-.438-.058-.649-.15-.649-.15s-.234.365.257 1.075c.42.607 1.055 1.047 1.644 1.18.589.134 1.972.18 2.785-.377.16-.109.317-.228.459-.34a8.717 8.717 0 0 0-.013.626c-.289.753-.571 1.993-.268 3.338 0-.001.701-.842.787-2.958.006-.144.009-.271.01-.383.052-.248.103-.518.148-.799.072.135.151.277.234.413.511.842 1.791 1.37 2.383 1.49.091.019.187.032.285.038Zm-1.12.745c-.188.055-.445.1-.713.059-.21-.031-.45-.11-.655-.316-.169-.168-.312-.419-.401-.789a9.837 9.837 0 0 0 .039-.82l.049-.243c.563.855 1.865 1.398 2.476 1.522.036.008.072.014.109.02l-.013.009c-.579.415-.76.503-.891.558Zm6.333-2.818c-.257.114-4.111 1.822-5.246 2.363.98-.775 3.017-3.59 3.699-4.774 1.062.661 1.468 1.109 1.623 1.441.101.217.09.38.096.515a.57.57 0 0 1-.172.455Zm-9.213 1.62a1.606 1.606 0 0 1-.19.096c-.954.414-2.126.61-4.728-.571-2.023-.918-3.024-2.157-3.371-2.666.476.161 1.471.473 2.157.524.282.021.703.068 1.167.125.021.209.109.486.345.829l.001.001c.451.651 1.134 1.119 1.765 1.262.622.141 2.083.182 2.942-.407a3.12 3.12 0 0 0 .132-.093l.001.179a6.052 6.052 0 0 0-.221.721Zm5.512-1.271a17.49 17.49 0 0 1-1.326-.589c.437.042 1.054.083 1.692.108-.121.162-.244.323-.366.481Zm.932-1.26c-.12.17-.245.343-.373.517-.241.018-.478.03-.709.038a29.05 29.05 0 0 1-.741-.048c.608-.065 1.228-.252 1.823-.507Zm.22-.315c-.809.382-1.679.648-2.507.648-.472 0-.833.018-1.139.039v.001c-.324-.031-.665-.039-1.019-.054a3.555 3.555 0 0 1-.152-.009c.102-.002.192-.006.249-.006.363 0 1.662.034 3.151-.589 1.508-.632 2.645-1.773 3.136-3.351.37-1.186.31-2.402.086-3.312.458-.336.86-.651 1.147-.91.501-.451.743-.733.848-.869.199.206.714.864.685 2.138-.036 1.611-.606 3.187-1.501 4.154a9.099 9.099 0 0 1-1.321 1.132 11.978 11.978 0 0 0-.644-.422l-.089-.055-.051.091c-.184.332-.5.825-.879 1.374ZM4.763 5.817c-.157 1.144.113 2.323.652 3.099.539.776 2.088 2.29 3.614 2.505.991.14 2.055.134 2.055.134s-.593-.576-1.114-1.66c-.521-1.085-.948-2.104-1.734-2.786-.785-.681-1.601-1.416-2.045-1.945-.444-.53-.59-.86-.59-.86s-.656.175-.838 1.513Zm14.301 4.549a9.162 9.162 0 0 0 1.3-1.12c.326-.352.611-.782.845-1.265 1.315.145 2.399.371 2.791.434 0 0-.679 1.971-3.945 3.022l-.016-.035c-.121-.26-.385-.594-.975-1.036Zm-11.634.859a8.537 8.537 0 0 1-.598-.224c-1.657-.693-2.91-1.944-3.449-3.678-.498-1.601-.292-3.251.091-4.269.225.544.758 1.34 1.262 2.01a3.58 3.58 0 0 0-.172.726c-.163 1.197.123 2.428.687 3.24.416.599 1.417 1.62 2.555 2.193-.128.002-.253.003-.376.002Zm-1.758-.077c-.958-.341-1.901-.787-2.697-1.368C-.07 7.559 0 6.827 0 6.827s1.558-.005 3.088.179c.03.126.065.251.104.377.557 1.791 1.851 3.086 3.562 3.803l.047.019a4.254 4.254 0 0 1-.267-.026h-.001c-.401-.053-.595-.135-.595-.135l-.157-.069-.092.144-.017.029Zm6.807-1.59c.086.017.136.058.136.145 0 .197-.242.5-.597.597l-.01-.161a.887.887 0 0 0 .283-.243c.078-.099.142-.217.188-.338Zm-1.591.006c.033.1.076.197.129.282.061.097.134.18.217.24l-.021.083c-.276-.093-.424-.293-.424-.466 0-.078.035-.119.099-.139Zm-.025-.664c-.275-.816-.795-2.022-1.505-2.179-.296.072-.938.096-.691-.145.246-.24 1.085-.048 1.283.217.145.194.744.806 1.011 1.737l.032.227a.324.324 0 0 0-.13.143Zm1.454-.266c.251-.99.889-1.639 1.039-1.841.197-.265 1.036-.457 1.283-.217.247.241-.395.217-.691.145-.69.152-1.2 1.296-1.481 2.109a.364.364 0 0 0-.067-.059.37.37 0 0 0-.092-.043l.009-.094Zm4.802-2.708a9.875 9.875 0 0 1-.596.705c-.304.315-1.203 1.176-1.963 1.916.647-.955 1.303-1.806 2.184-2.376.123-.08.249-.161.375-.245Z\"},\"child\":[]}]})(props);\n};\nexport function SiWikimediacommons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.048 15.203a2.952 2.952 0 1 1 5.904 0 2.952 2.952 0 0 1-5.904 0zm11.749.064v-.388h-.006a8.726 8.726 0 0 0-.639-2.985 8.745 8.745 0 0 0-1.706-2.677l.004-.004-.186-.185-.044-.045-.026-.026-.204-.204-.006.007c-.848-.756-1.775-1.129-2.603-1.461-1.294-.519-2.138-.857-2.534-2.467.443.033.839.174 1.13.481C15.571 6.996 11.321 0 11.321 0s-1.063 3.985-2.362 5.461c-.654.744.22.273 1.453-.161.279 1.19.77 2.119 1.49 2.821.791.771 1.729 1.148 2.556 1.48.672.27 1.265.508 1.767.916l-.593.594-.668-.668-.668 2.463 2.463-.668-.668-.668.6-.599a6.285 6.285 0 0 1 1.614 3.906h-.844v-.944l-2.214 1.27 2.214 1.269v-.944h.844a6.283 6.283 0 0 1-1.614 3.906l-.6-.599.668-.668-2.463-.668.668 2.463.668-.668.6.6a6.263 6.263 0 0 1-3.907 1.618v-.848h.945L12 18.45l-1.27 2.214h.944v.848a6.266 6.266 0 0 1-3.906-1.618l.599-.6.668.668.668-2.463-2.463.668.668.668-.6.599a6.29 6.29 0 0 1-1.615-3.906h.844v.944l2.214-1.269-2.214-1.27v.944h-.843a6.292 6.292 0 0 1 1.615-3.906l.6.599-.668.668 2.463.668-.668-2.463-.668.668-2.359-2.358-.23.229-.044.045-.185.185.004.004a8.749 8.749 0 0 0-2.345 5.662h-.006v.649h.006a8.749 8.749 0 0 0 2.345 5.662l-.004.004.185.185.045.045.045.045.185.185.004-.004a8.73 8.73 0 0 0 2.677 1.707 8.75 8.75 0 0 0 2.985.639V24h.649v-.006a8.75 8.75 0 0 0 2.985-.639 8.717 8.717 0 0 0 2.677-1.707l.004.004.187-.187.044-.043.043-.044.187-.186-.004-.004a8.733 8.733 0 0 0 1.706-2.677 8.726 8.726 0 0 0 .639-2.985h.006v-.259z\"},\"child\":[]}]})(props);\n};\nexport function SiWikimediafoundation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.074 3.126C22.486 5.321 24 8.485 24 12c0 6.623-5.377 12-12 12S0 18.623 0 12c0-3.515 1.514-6.679 3.926-8.874l2.265 2.265C4.358 7.005 3.2 9.368 3.2 12c0 4.857 3.943 8.8 8.8 8.8s8.8-3.943 8.8-8.8c0-2.632-1.158-4.995-2.991-6.609zm-3.399 3.399C18.22 7.846 19.2 9.81 19.2 12c0 3.703-2.802 6.757-6.4 7.156V10.4zM11.2 19.156C7.602 18.757 4.8 15.703 4.8 12c0-2.19.98-4.154 2.525-5.475L11.2 10.4zM12 0c2.208 0 4 1.792 4 4s-1.792 4-4 4-4-1.792-4-4 1.792-4 4-4\"},\"child\":[]}]})(props);\n};\nexport function SiWikipedia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.09 13.119c-.936 1.932-2.217 4.548-2.853 5.728-.616 1.074-1.127.931-1.532.029-1.406-3.321-4.293-9.144-5.651-12.409-.251-.601-.441-.987-.619-1.139-.181-.15-.554-.24-1.122-.271C.103 5.033 0 4.982 0 4.898v-.455l.052-.045c.924-.005 5.401 0 5.401 0l.051.045v.434c0 .119-.075.176-.225.176l-.564.031c-.485.029-.727.164-.727.436 0 .135.053.33.166.601 1.082 2.646 4.818 10.521 4.818 10.521l.136.046 2.411-4.81-.482-1.067-1.658-3.264s-.318-.654-.428-.872c-.728-1.443-.712-1.518-1.447-1.617-.207-.023-.313-.05-.313-.149v-.468l.06-.045h4.292l.113.037v.451c0 .105-.076.15-.227.15l-.308.047c-.792.061-.661.381-.136 1.422l1.582 3.252 1.758-3.504c.293-.64.233-.801.111-.947-.07-.084-.305-.22-.812-.24l-.201-.021c-.052 0-.098-.015-.145-.051-.045-.031-.067-.076-.067-.129v-.427l.061-.045c1.247-.008 4.043 0 4.043 0l.059.045v.436c0 .121-.059.178-.193.178-.646.03-.782.095-1.023.439-.12.186-.375.589-.646 1.039l-2.301 4.273-.065.135 2.792 5.712.17.048 4.396-10.438c.154-.422.129-.722-.064-.895-.197-.172-.346-.273-.857-.295l-.42-.016c-.061 0-.105-.014-.152-.045-.043-.029-.072-.075-.072-.119v-.436l.059-.045h4.961l.041.045v.437c0 .119-.074.18-.209.18-.648.03-1.127.18-1.443.421-.314.255-.557.616-.736 1.067 0 0-4.043 9.258-5.426 12.339-.525 1.007-1.053.917-1.503-.031-.571-1.171-1.773-3.786-2.646-5.71l.053-.036z\"},\"child\":[]}]})(props);\n};\nexport function SiWikiquote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.152 12a4.037 4.037 0 1 1-8.075 0 4.037 4.037 0 0 1 8.075 0zM17.292.822c-.286-.287-.581-.56-.885-.822l-1.528 1.527C17.872 4.036 19.778 7.8 19.778 12s-1.906 7.964-4.899 10.473L16.407 24c.304-.262.6-.535.886-.822A15.705 15.705 0 0 0 21.923 12c0-4.223-1.644-8.192-4.63-11.178zM13.508 2.9L12.03 4.377a9.642 9.642 0 0 1 0 15.246l1.477 1.477a11.712 11.712 0 0 0 0-18.2zm-2.735 2.735L9.349 7.057c1.61 1.057 2.675 2.878 2.675 4.943s-1.065 3.886-2.675 4.943l1.423 1.422A7.884 7.884 0 0 0 14.005 12a7.884 7.884 0 0 0-3.233-6.365z\"},\"child\":[]}]})(props);\n};\nexport function SiWikiversity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 20.462h24v.795H0zm19.974-8.692h3.205v8.256h-3.205zm-6.385 0h3.206v8.256h-3.206zm-6.384 0h3.205v8.256H7.205zm-6.385 0h3.205v8.256H.82zM0 10.539h24v.795H0zm7.615-6.436c1.103-.897 2.23-1.359 3.974-1.359-1.359.538-2.282 1.385-2.974 2.026-.41-.206-.692-.385-1-.667zm8.77 0c-1.103-.897-2.232-1.359-3.975-1.359 1.359.538 2.282 1.385 2.974 2.026.41-.206.693-.385 1-.667zm-4.616 1.436c-.923 0-1.744-.205-2.692-.59.948-.872 1.666-1.359 2.692-1.82zm.461 0c.924 0 1.744-.205 2.693-.59-.949-.872-1.667-1.359-2.693-1.82zm-3.897-.41A5.442 5.442 0 0 1 7.23 4.41C6.59 5 6.05 5.565 5.666 6.283c.436.384.795.64 1.334.897.359-.744.743-1.385 1.333-2.051zm7.333 0c.41-.205.77-.436 1.103-.718.641.59 1.18 1.154 1.564 1.872-.436.384-.795.64-1.333.897-.36-.744-.744-1.385-1.334-2.051zM11.77 6c-1 0-2.128-.282-3.026-.666a7.493 7.493 0 0 0-1.359 2.051c1.513.744 2.898 1.077 4.385 1.077zm.461 0c1 0 2.129-.282 3.026-.666a7.492 7.492 0 0 1 1.36 2.051c-1.514.744-2.898 1.077-4.386 1.077zm-6.82.693c.436.384.872.666 1.41.974-.256.564-.41 1.282-.513 1.975a12.27 12.27 0 0 1-1.564-.975c.129-.743.36-1.41.667-1.974zm13.179 0c-.436.384-.872.666-1.41.974.256.564.41 1.282.512 1.975a12.27 12.27 0 0 0 1.565-.975 6.396 6.396 0 0 0-.667-1.974zm-6.82 3.41H7.511C7.23 10 7 9.949 6.717 9.82a8.56 8.56 0 0 1 .487-1.974c1.41.743 2.898 1.076 4.564 1.076zm.461 0h4.256c.282-.103.513-.154.795-.282a8.56 8.56 0 0 0-.487-1.974c-1.41.743-2.897 1.076-4.564 1.076zm-7.667 0c0-.333.026-.615.077-.949.59.41.872.564 1.616.949zm14.872 0c0-.333-.025-.615-.077-.949-.59.41-.871.564-1.615.949z\"},\"child\":[]}]})(props);\n};\nexport function SiWikivoyage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.9171 14.1784c-.4303 0-.782-.1366-1.0551-.4097-.2731-.2731-.4097-.6229-.4097-1.0492 0-.4253.1183-.7758.355-1.0513.2367-.2756.5425-.4133.9173-.4133.4072 0 .7216.1287.9431.3862.2215.2574.3323.6169.3323 1.0784v.1558H22.134c.0196.1606.0774.3017.1736.4233.1826.1692.3935.2537.6326.2537.1753 0 .3382-.0309.4885-.0926.1504-.0618.3407-.167.5712-.3155v.6475c-.1888.1426-.3662.2427-.532.3003-.166.0576-.3496.0864-.551.0864zm.4448-1.7748c-.0222-.133-.0706-.25-.1452-.3512-.1048-.1434-.2591-.215-.463-.215-.1808 0-.3297.0777-.4467.2334-.0802.1045-.134.2155-.1613.3328zm-3.7305 1.063c0 .036.0493.0798.148.1312.0987.0515.2261.0893.3822.1135.3783.0603.6517.1617.8203.304.1687.1424.253.3492.253.6204 0 .2661-.1247.4752-.374.6273-.2494.152-.58.2281-.9918.2281-.3867 0-.6964-.0817-.9292-.2452-.2327-.1635-.349-.3863-.349-.6686 0-.1946.0623-.3617.187-.5012.1248-.1395.2704-.218.4368-.2355-.1399-.0675-.2098-.1708-.2098-.3098 0-.1509.0928-.2761.2786-.3757.0444-.0242.0769-.0284.0973-.0125-.0726-.003-.1522-.0437-.239-.1221-.2002-.1856-.3003-.4227-.3003-.7114 0-.2898.1003-.5277.3007-.7136.2005-.1859.4573-.2788.7705-.2788.079 0 .1534.0058.2232.0176h1.099v.5445h-.3792c.0829.088.1257.2513.1284.4898 0 .2484-.1014.4669-.3042.6554-.1767.1625-.3991.253-.6674.2717l-.1795.0112a.3656.3656 0 00-.1332.0502c-.0456.029-.0684.0656-.0684.1094zm.2814-1.614c-.132 0-.24.0422-.3243.1264-.0841.0842-.1262.1942-.1262.3301 0 .1366.0419.2463.1257.3293.0838.0829.192.1244.3248.1244.1321 0 .2403-.0417.3244-.125.0842-.0832.1262-.1928.1262-.3287 0-.1353-.0424-.2454-.1273-.3304-.0841-.084-.1919-.126-.3233-.126zm-.7042 2.7277c0 .1078.0595.1972.1784.2683.119.071.2816.1066.4878.1066.2254 0 .4016-.03.5285-.09.127-.06.1904-.1347.1904-.2237 0-.0942-.0432-.1743-.1296-.2404-.0865-.0661-.2155-.1129-.387-.1402l-.0753-.0117a2.2197 2.2197 0 00-.2005-.0208c-.065-.0036-.1138-.0025-.1465.0033-.125.02-.225.0531-.3.0995-.0975.0607-.1462.1437-.1462.2492zm-2.382-.402c-.2113 0-.3806-.0667-.5076-.2002-.127-.1335-.1906-.3071-.1906-.521 0-.1895.0624-.353.1873-.4903.125-.1374.31-.25.5553-.338l.651-.2353v-.1258c0-.139-.0326-.2387-.0978-.299-.0652-.0603-.1721-.0905-.3207-.0905-.1661 0-.3145.0318-.4453.0953-.1307.0636-.2887.1698-.4742.3188v-.6237c.143-.1476.288-.2534.435-.3176.1468-.064.3103-.0961.4903-.0961.348 0 .614.0868.7981.2603.184.1736.276.4244.276.7525v1.3498c0 .022.0031.036.0093.042.0062.0063.0172.0093.0333.0093.0133 0 .0416-.0136.085-.041.0433-.0272.1262-.069.2486-.1252v.4182c-.0778.0778-.1734.1387-.2867.1828-.1134.044-.2214.066-.324.066-.119 0-.2193-.036-.3008-.1081-.0604-.0553-.0921-.1057-.0952-.1513-.0136.0453-.0612.0888-.1427.1305-.1794.0918-.374.1377-.5836.1377zm.6955-.625v-.751l-.257.1198c-.1584.0563-.2747.1243-.349.2038-.0744.0794-.1116.1724-.1116.2788 0 .0802.03.1447.09.1937.06.049.1414.0734.244.0734a.6166.6166 0 00.2578-.058 2.2801 2.2801 0 01.2-.0808zm-1.4784-2.1772L14.15 15.564h-.7242l.9329-2.1137-1.0612-2.1337h.7079l.7125 1.5336.6388-1.5336h.6868zm-4.3623 2.788c-.4608.0199-.8472-.1217-1.1267-.3951-.2795-.2734-.4192-.623-.4192-1.0488 0-.427.1399-.778.4196-1.0527.2797-.2746.6387-.412 1.0772-.412.4378 0 .7973.1375 1.0784.4125.281.275.4216.6257.4216 1.0521 0 .4254-.1404.7749-.4211 1.0485-.2808.2736-.635.3956-1.0298.3956zm-.0025-.5496c.2204-.0198.3935-.0987.547-.2603.1535-.1617.2303-.373.2303-.634 0-.263-.0768-.4759-.2304-.6384-.1536-.1626-.3514-.2439-.5935-.2439-.2426 0-.44.0812-.5924.2434-.1523.1623-.2285.3752-.2285.6388 0 .2625.076.4741.228.635.152.161.3527.2594.6395.2594zm-4.4176-2.2977H7.9537l.6612 1.656.664-1.656h.6875l-1.2286 2.8421H8.486zm9.2173-.7027V7.8232h.6733v2.8515h-.5401zm.3366-3.963c.1103 0 .2034.038.2793.1138.0759.0759.1138.167.1138.2733a.3727.3727 0 01-.1133.2735c-.0756.0756-.1688.1133-.2798.1133-.1116 0-.205-.0376-.2803-.1128-.0752-.0752-.1128-.1666-.1128-.274a.373.373 0 01.1133-.2738c.0755-.0755.1688-.1133.2798-.1133zm-2.6679-.1823v4.2063h-.6732V6.4082h.6732zm1.2855 4.1457L14.041 9.2523l1.258-1.4287H16.0557l-1.199 1.4145 1.4127 1.4369h-.7034zm-3.3006-.0004V7.8232h.6733v2.8515h-.5401zm.3366-3.963c.1103 0 .2034.038.2793.1138.0758.0759.1138.167.1138.2733a.3728.3728 0 01-.1133.2735c-.0756.0756-.1688.1133-.2798.1133-.1116 0-.205-.0376-.2803-.1128-.0752-.0752-.1128-.1666-.1128-.274a.373.373 0 01.1133-.2738c.0755-.0755.1688-.1133.2798-.1133zM8.49 10.717L7.2613 7.824h.6986l.6615 1.6798.682-1.7213h.4222l.6763 1.7124.6642-1.671h.6998l-1.242 2.893h-.2561l-.762-1.843-.7593 1.843h-.1277zm3.7676 6.3222l4.0081 6.0705.4359-7.2612a4.6007 4.6007 0 01-4.444 1.1907zM7.2613 6.4082L0 6.8441l6.0705 4.0081a4.6007 4.6007 0 011.1908-4.444zm11.705.9885L22.2197.8903l-6.5064 3.2532a4.6008 4.6008 0 013.2532 3.2532z\"},\"child\":[]}]})(props);\n};\nexport function SiWinamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.902 0a.987.987 0 0 0-.91.604l-6.139 14.57c-.176.42.131.883.586.883H8.66a.987.987 0 0 0 .91-.604L15.707.883A.636.636 0 0 0 15.12 0h-3.219Zm3.438 7.943a.987.987 0 0 0-.91.604l-6.137 14.57c-.177.42.13.883.586.883h3.219a.987.987 0 0 0 .91-.604l6.138-14.57a.636.636 0 0 0-.586-.883h-3.22Z\"},\"child\":[]}]})(props);\n};\nexport function SiWine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.045 0C8.839.03 5.68 1.06 4.915 2.34c.848 3.193 2.025 9.576 4.7 12.09.6.565 1.455.785 2.27 1.768l.193.324c.6 1.676 1.371 3.814.246 5.104-1.833.54-3.08 1.253-2.976 1.78.133.676 2.42.792 5.107.26 2.687-.53 4.759-1.508 4.625-2.183-.11-.554-1.672-.73-3.715-.482-1.884-.885-1.955-3.022-2.226-4.674l.025-.4c.116-.556.689-1.793 1.035-2.393 1.605-2.779.003-8.337-1.203-13.066-.37-.338-1.088-.479-1.951-.467zm1.832 3.674c.208-.002.44.052.705.176 2.759 8.733-.429 11.097-1.217 11.816-2.55-.882-4.278-1.862-6.244-9.312 4.972 2.58 4.744-2.659 6.756-2.68z\"},\"child\":[]}]})(props);\n};\nexport function SiWipro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5415 12.0352c0-.8754-.69-1.5851-1.541-1.5851-.8513 0-1.5415.7097-1.5415 1.585 0 .8757.6902 1.5854 1.5416 1.5854.851 0 1.541-.7097 1.541-1.5853zm-1.541.837c-.4373 0-.7927-.3755-.7927-.837 0-.4611.3554-.8366.7928-.8366.437 0 .7923.3755.7923.8366 0 .4615-.3554.837-.7923.837zm-9.5842-2.2084l-.9272 2.8733c-.0148.046-.0665.0835-.1152.0835h-.084c-.0484 0-.1064-.0352-.1287-.078l-.95-1.8242-.9496 1.8243c-.0225.0427-.0803.0779-.1289.0779h-.0842c-.0483 0-.1002-.0374-.115-.0835L.006 10.6638c-.0222-.0693.019-.126.0915-.126h.5677c.0483 0 .1002.0379.115.084l.4688 1.452.8047-1.5458c.0223-.0428.0804-.0779.1289-.0779H2.24c.0485 0 .1063.0351.1289.0779l.805 1.5458.4685-1.452c.0148-.0461.0667-.084.1152-.084h.5672c.0727 0 .1138.0567.0915.126zm1.368 2.7367a.1323.1323 0 01-.1321.1322h-.5726a.1321.1321 0 01-.132-.1322v-2.7304c0-.0729.059-.1322.132-.1322h.5726a.1323.1323 0 01.1322.1322v2.7304zm.7409-2.7305v4.3155c0 .0733.059.1322.1321.1322h.5725a.1318.1318 0 00.132-.1322v-1.497c.2426.085.5106.132.7927.132.8024 0 1.4531-.7097 1.4531-1.5853 0-.8754-.6507-1.5851-1.4531-1.5851-.394 0-.751.171-1.0127.4487l-.0002-.0004-.1018-.2777c-.0167-.0453-.07-.0829-.1183-.0829h-.2642a.1321.1321 0 00-.1321.1322zm.8365.9c.1376-.2239.3713-.3714.6373-.3714.4235 0 .7667.3746.7667.8366 0 .4622-.3432.837-.7667.837-.2396 0-.4599-.063-.6373-.1694V11.57zm3.5755 1.9627h-.5723a.1321.1321 0 01-.1321-.1321V10.67c0-.0729.059-.1322.1321-.1322h.2642c.0483 0 .1016.0376.1183.0829l.1018.2777s.3195-.4483.87-.4483c.5507 0 .6172.1897.5712.2947-.0463.1047-.1714.3878-.197.4454-.0254.058-.0903.099-.1772.0657-.087-.0335-.5128-.1723-.8469.2329v1.9118a.1323.1323 0 01-.1321.1321zm4.6893-10.3422a.704.704 0 01.8628-.4977.7043.7043 0 11-.3647 1.3607.7046.7046 0 01-.498-.863zm1.8466 2.7892a.5286.5286 0 01.1935.722.528.528 0 01-.7218.193.5281.5281 0 01-.1935-.7215.5281.5281 0 01.7218-.1935zm.664 10.9686a.5727.5727 0 010-.8099.5722.5722 0 01.8096 0 .5727.5727 0 010 .81.573.573 0 01-.8095 0zm-2.4577-7.377a.2423.2423 0 01-.4196-.2423.2422.2422 0 11.4196.2422zm-.4196 5.1001a.2423.2423 0 01.4196-.2422.2425.2425 0 01-.0888.331.2426.2426 0 01-.3308-.0888zm3.7296-2.6713a.517.517 0 11-.5169-.5169.517.517 0 01.517.5169zM17.816 3.8893a.7485.7485 0 111.2962.749.7485.7485 0 01-1.2962-.749zm-5.43 10.5742a.154.154 0 11.2666.154.154.154 0 01-.2666-.154zm2.8037-8.7912a.4842.4842 0 11.9354.2502.4843.4843 0 01-.593.3428.4844.4844 0 01-.3424-.593zM13.993 7.8486a.308.308 0 110-.6162.308.308 0 110 .6162zm0 1.0129a.1982.1982 0 11.0002.3962.1982.1982 0 01-.0002-.3962zm0-2.84a.4404.4404 0 110-.881.4404.4404 0 010 .881zm-1.6072 3.5154a.154.154 0 11.2102.0564.1537.1537 0 01-.2102-.0564zm1.6072 5.602a.1982.1982 0 11-.0001-.3963.1982.1982 0 010 .3964zm0 1.0127a.3081.3081 0 010 .6165.3081.3081 0 110-.6165zm3.4944-2.1381a.4399.4399 0 01.6014-.161.44.44 0 01.161.6013.4402.4402 0 01-.7624-.4403zm-3.4944 3.9655a.4404.4404 0 11-.0002.8808.4404.4404 0 01.0002-.8808zm9.5772-8.5426c.1383.5164-.168 1.0476-.6848 1.186-.5165.1383-1.0478-.1684-1.1861-.6849-.1386-.5164.1682-1.0475.6847-1.186.5165-.1384 1.0476.168 1.1862.6849zm-6.694 6.0018a.3963.3963 0 01.5602-.5607.396.396 0 010 .5602.3958.3958 0 01-.5602.0005zm.9736-4.4694a.484.484 0 01.3424-.5928.4841.4841 0 11.2507.9353.484.484 0 01-.593-.3425zm1.4076-2.7157a.6165.6165 0 01.6166 1.0676.6165.6165 0 01-.6166-1.0676zm-.3108-.3913a.5722.5722 0 01-.8095 0 .5725.5725 0 010-.8097.5722.5722 0 01.8095 0 .5725.5725 0 010 .8097zm-1.0968 5.1692a.4842.4842 0 01.9355.2509.4842.4842 0 11-.9355-.251zm-3.0186-5.4263a.3303.3303 0 01.4041-.2336.3303.3303 0 01-.1706.6381.3303.3303 0 01-.2335-.4045zm6.4676-.835c.4213-.2434.96-.0992 1.2031.3218a.8806.8806 0 11-1.5254.8808c-.2429-.421-.0987-.9596.3223-1.2027zm-3.049 2.777a.4401.4401 0 11-.7624.4402.4401.4401 0 11.7624-.4402zm1.3227.9608a.6606.6606 0 01.4667-.8089.6605.6605 0 01.342 1.2758.6605.6605 0 01-.8087-.467zm0 2.9854a.6603.6603 0 111.2756.3416.6602.6602 0 11-1.2756-.3416zm.8594-.7354a.7574.7574 0 11-.0002-1.5146.7574.7574 0 01.0002 1.5146zm-.6756-6.5149a.7921.7921 0 010-1.1207c.3095-.3095.8115-.31 1.1209 0a.7926.7926 0 01-1.1209 1.1207zm-3.2223 2.068a.3522.3522 0 11-.61-.3523.3522.3522 0 01.61.3522zm-.6387 5.5862a.2642.2642 0 01.3738-.0004.2646.2646 0 010 .3738.2638.2638 0 01-.3738 0 .2637.2637 0 010-.3734zm0-4.1666a.2642.2642 0 01.3738-.0004.2642.2642 0 11-.3738.0004zm.5146 3.9917a.2868.2868 0 01-.105-.391.2862.2862 0 01.3912-.1046.2863.2863 0 01-.2862.4956zm-.486 2.3203a.352.352 0 01.129-.4811.352.352 0 01.4811.1288.352.352 0 01-.1289.4811.3521.3521 0 01-.4811-.1288zm.877-5.659a.286.286 0 01-.1048.3909.2867.2867 0 01-.3911-.1049.2862.2862 0 01.4958-.286zm-.2485.9334a.3082.3082 0 11.5955-.1596.3082.3082 0 01-.5955.1596zm0 1.3668a.3083.3083 0 11.5953.1602.3083.3083 0 01-.5953-.1602zm.4008-.3467a.3366.3366 0 11.0001-.6731.3366.3366 0 01-.0001.6731zm.4832-3.7744a.3963.3963 0 11-.5602.5608.3963.3963 0 01.5602-.5608zm-7.416 11.4507a.573.573 0 01-.782.2096.5726.5726 0 01.5725-.9916.5725.5725 0 01.2096.782zM14.814 8.945a.2202.2202 0 11-.114.4253.2202.2202 0 01.114-.4254zm-2.5387 11.8366a.6164.6164 0 11-1.1908-.3189.6164.6164 0 011.1908.319zm2.5387-5.726a.2203.2203 0 01-.1138-.4255.22.22 0 11.1138.4254zm-.1604 5.8739a.6603.6603 0 01-.6604.6602.6603.6603 0 01-.6606-.6602c0-.3649.2959-.6608.6606-.6608.3647 0 .6604.296.6604.6608zm-1.4693-5.9217a.1767.1767 0 01-.1247-.2158.1766.1766 0 01.216-.1245.1761.1761 0 01-.0913.3403zm-.0712 1.3712a.2863.2863 0 11-.5526-.1478.2863.2863 0 01.5526.1478zm-2.795-2.2726a.2202.2202 0 01-.3812.2202.2195.2195 0 01.0805-.3005.2198.2198 0 01.3007.0803zm1.6704 1.8817a.2642.2642 0 11-.4578-.2638.2642.2642 0 01.4578.2638zm.0148-1.8253a.1321.1321 0 11-.1869-.1869.1328.1328 0 01.187 0 .1325.1325 0 010 .187zm-.9966.81a.242.242 0 11-.3423.342.2418.2418 0 010-.342.2417.2417 0 01.3423 0zm.0783 2.7563a.3518.3518 0 01-.4811.1289.3522.3522 0 11.4811-.1289zm9.7924.0285a.7926.7926 0 010 1.121c-.3094.3097-.8114.3093-1.121 0-.3097-.3094-.3095-.8114 0-1.121a.793.793 0 011.121 0zm-1.6198-2.0103a.6169.6169 0 01-.2255-.8423.6168.6168 0 01.842-.2255.6165.6165 0 01-.6166 1.0678zm3.2445 1.1612c-.243.4214-.7818.5656-1.203.3223-.4211-.243-.5653-.7816-.3224-1.2026.2437-.4211.782-.5655 1.203-.3224.4213.2433.5657.7816.3224 1.2027zm-7.2666-.2796a.33.33 0 11-.1706-.638.3301.3301 0 01.1706.638zM24 12c0 .584-.4735 1.058-1.058 1.058-.5843 0-1.0578-.474-1.0578-1.058 0-.5842.4735-1.0579 1.0579-1.0579S24 11.4159 24 12.0001zm-.4297 2.564c-.1386.5164-.6697.8233-1.1862.685-.5165-.1387-.8233-.6698-.6847-1.1862.1383-.5169.6696-.8234 1.1861-.685.5169.1386.8231.6697.6848 1.1861zm-6.583 5.881a.7044.7044 0 11-1.3608.3643.7042.7042 0 01.4981-.8625.7043.7043 0 01.8628.4981zm2.1248-1.0825a.748.748 0 01-.274 1.0221.7482.7482 0 01-1.0222-.2738.748.748 0 01.2738-1.0224.7484.7484 0 011.0224.274zm-3.9225-1.0344a.4843.4843 0 11.9355-.2507.4843.4843 0 01-.9355.2507zm2.2835-.3077a.5284.5284 0 11-.5284-.9153.5284.5284 0 01.5284.9153zm-4.761.2798a.3963.3963 0 01-.7655-.205.396.396 0 01.4853-.2803.3964.3964 0 01.2802.4853zm-.8958-8.2762a.132.132 0 11.1868-.1869.132.132 0 01-.1868.1869zm.0754-1.651a.2643.2643 0 01-.2643-.4576.2642.2642 0 01.2643.4576zm-.8072-4.8355a.6164.6164 0 111.1905-.3188.6164.6164 0 01-1.1905.3188zm-.847 6.0555a.22.22 0 11-.2201.3812.2195.2195 0 01-.0806-.3004.22.22 0 01.3006-.0808zm.7691-.908a.2423.2423 0 01-.3423.3426.2423.2423 0 01.3423-.3426zm-.5319-2.0617a.3524.3524 0 01.6102-.352.3522.3522 0 01-.6102.352zm2.8578-3.5523c0-.3648.2959-.6608.6606-.6608.3647 0 .6604.296.6604.6608a.6606.6606 0 01-.6604.6607.6608.6608 0 01-.6606-.6607zm-.1483 5.9215a.1761.1761 0 11.091.3404.1761.1761 0 01-.091-.3404zm-.9575-3.5729a.3964.3964 0 01.2053.7657.3962.3962 0 01-.4854-.2802.3966.3966 0 01.28-.4855zm.5358 1.9992a.2863.2863 0 11.148.553.2863.2863 0 01-.148-.553zM9.0292 4.5596a.5724.5724 0 01.2094-.7818.5725.5725 0 01.5724.9914.572.572 0 01-.7818-.2096zm-.37 10.5048a.2643.2643 0 11-.458.264.2643.2643 0 01.458-.264zM4.9193 9.4585a.462.462 0 01.566-.3267.462.462 0 01.327.5658.4621.4621 0 01-.5661.3271.4624.4624 0 01-.327-.5662zm.9001-2.1691a.4843.4843 0 11.1772.6616.4845.4845 0 01-.1772-.6616zm2.2292 10.6412a.528.528 0 010 .7472.5286.5286 0 01-.7473 0 .5285.5285 0 010-.7472.5282.5282 0 01.7473 0zM6.676 16.2091a.4842.4842 0 11-.8386.4845.4842.4842 0 01.8386-.4845zm.6255-10.1393a.5285.5285 0 010-.7472.5286.5286 0 01.7473 0 .528.528 0 010 .7472.5282.5282 0 01-.7473 0zM9.6679 7.689a.3086.3086 0 01-.436 0 .3085.3085 0 010-.4362.3086.3086 0 01.436 0 .3085.3085 0 010 .4362zm0 8.6225a.3082.3082 0 11-.4359.4359.3082.3082 0 01.4359-.436zM8.2015 8.6719a.2642.2642 0 11.4574.2642.2642.2642 0 01-.4574-.2642z\"},\"child\":[]}]})(props);\n};\nexport function SiWire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 14.475c.009 4.084-3.296 7.401-7.38 7.41h-.016c-1.637-.015-3.222-.58-4.5-1.605-3.269 2.544-7.981 1.957-10.524-1.313-1-1.286-1.555-2.862-1.58-4.492V2.82h1.41v11.655c-.002 3.314 2.683 6.002 5.996 6.004 1.293.001 2.552-.416 3.589-1.189-1.163-1.335-1.806-3.043-1.815-4.814v-9.54c0-1.557 1.263-2.82 2.82-2.82s2.82 1.263 2.82 2.82v9.54c.006 1.766-.623 3.474-1.77 4.814 2.674 1.957 6.429 1.371 8.383-1.304.745-1.019 1.149-2.248 1.157-3.511V2.82H24v11.655zm-10.59-9.54c0-.778-.632-1.41-1.41-1.41-.779 0-1.41.631-1.41 1.41v9.54c.002 1.41.501 2.776 1.41 3.855.908-1.079 1.408-2.445 1.41-3.855v-9.54z\"},\"child\":[]}]})(props);\n};\nexport function SiWireguard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.98 11.645S24.533 0 11.735 0C.418 0 .064 11.17.064 11.17S-1.6 24 11.997 24C25.04 24 23.98 11.645 23.98 11.645zM8.155 7.576c2.4-1.47 5.469-.571 6.618 1.638.218.419.246 1.063.108 1.503-.477 1.516-1.601 2.366-3.145 2.728.455-.39.817-.832.933-1.442a2.112 2.112 0 0 0-.364-1.677 2.14 2.14 0 0 0-2.465-.75c-.95.36-1.47 1.228-1.377 2.294.087.99.839 1.632 2.245 1.876-.21.111-.372.193-.53.281a5.113 5.113 0 0 0-1.644 1.43c-.143.192-.24.208-.458.075-2.827-1.729-3.009-6.067.078-7.956zM6.04 18.258c-.455.116-.895.286-1.359.438.227-1.532 2.021-2.943 3.539-2.782a3.91 3.91 0 0 0-.74 2.072c-.504.093-.98.155-1.44.272zM15.703 3.3c.448.017.898.01 1.347.02a2.324 2.324 0 0 1 .334.047 3.249 3.249 0 0 1-.34.434c-.16.15-.341.296-.573.069-.055-.055-.187-.042-.283-.044-.447-.005-.894-.02-1.34-.003a8.323 8.323 0 0 0-1.154.118c-.072.013-.178.25-.146.338.078.207.191.435.359.567.619.49 1.277.928 1.9 1.413.604.472 1.167.99 1.51 1.7.446.928.46 1.9.267 2.877-.322 1.63-1.147 2.98-2.483 3.962-.538.395-1.205.62-1.821.903-.543.25-1.1.465-1.644.712-.98.446-1.53 1.51-1.369 2.615.149 1.015 1.04 1.862 2.059 2.037 1.223.21 2.486-.586 2.785-1.83.336-1.397-.423-2.646-1.845-3.024l-.256-.066c.38-.17.708-.291 1.012-.458q.793-.437 1.558-.925c.15-.096.231-.096.36.014.977.846 1.56 1.898 1.724 3.187.27 2.135-.74 4.096-2.646 5.101-2.948 1.555-6.557-.215-7.208-3.484-.558-2.8 1.418-5.34 3.797-5.83 1.023-.211 1.958-.637 2.685-1.425.47-.508.697-.944.775-1.141a3.165 3.165 0 0 0 .217-1.158 2.71 2.71 0 0 0-.237-.992c-.248-.566-1.2-1.466-1.435-1.656l-2.24-1.754c-.079-.065-.168-.06-.36-.047-.23.016-.815.048-1.067-.018.204-.155.76-.38 1-.56-.726-.49-1.554-.314-2.315-.46.176-.328 1.046-.831 1.541-.888a7.323 7.323 0 0 0-.135-.822c-.03-.111-.154-.22-.263-.283-.262-.154-.541-.281-.843-.434a1.755 1.755 0 0 1 .906-.28 3.385 3.385 0 0 1 .908.088c.54.123.97.042 1.399-.324-.338-.136-.676-.26-1.003-.407a9.843 9.843 0 0 1-.942-.493c.85.118 1.671.437 2.54.32l.022-.118-2.018-.47c1.203-.11 2.323-.128 3.384.388.299.146.61.266.897.432.14.08.233.24.348.365.09.098.164.23.276.29.424.225.89.234 1.366.223l.01-.16c.479.15 1.017.702 1.017 1.105-.776 0-1.55-.003-2.325.004-.083 0-.165.061-.247.094.078.046.155.128.235.131z M14.703 2.153a.118.118 0 0 0-.016.19.179.179 0 0 0 .246.065c.075-.038.148-.078.238-.125-.072-.062-.13-.114-.19-.163-.106-.087-.193-.032-.278.033z\"},\"child\":[]}]})(props);\n};\nexport function SiWireshark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m2.95 0c-1.62 0-2.95 1.32-2.95 2.95v18.1c0 1.63 1.32 2.95 2.95 2.95h18.1c1.62 0 2.95-1.32 2.95-2.95v-18.1c-.00024-1.63-1.32-2.95-2.95-2.95zm0 1.09h18.1c1.04 0 1.85.818 1.85 1.86v14h-5.27c-.335-.796-2.57-6.47.283-10.9a.516.517 0 0 0-.443-.794c-5.24.0827-8.2 3.19-9.74 6.21-1.35 2.64-1.63 4.91-1.69 5.53h-4.95v-14c0-1.04.817-1.86 1.85-1.86zm13.6 5.24c-2.62 5.24.248 11.4.248 11.4a.516.517 0 0 0 .469.301h5.62v3.05c0 1.04-.817 1.86-1.85 1.86h-18.1c-1.04 0-1.85-.818-1.85-1.86v-3.05h5.39a.516.517 0 0 0 .514-.477s.226-2.8 1.66-5.62c1.34-2.62 3.67-5.17 7.91-5.57z\"},\"child\":[]}]})(props);\n};\nexport function SiWise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.488 7.469 0 15.05h11.585l1.301-3.576H7.922l3.033-3.507.01-.092L8.993 4.48h8.873l-6.878 18.925h4.706L24 .595H2.543l3.945 6.874Z\"},\"child\":[]}]})(props);\n};\nexport function SiWish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.864 19.826h-4.107l-3.227-9.393-2.28 9.39H5.143L0 4.65h4.217l4.354 13.128c1.558-4.4 2.534-8.5 1.021-13.128H13.7ZM20.57 4.174a15.705 15.705 0 0 1-3.425 4.171 17.095 17.095 0 0 1 3.425 5.56A17.116 17.116 0 0 1 24 8.345a15.734 15.734 0 0 1-3.43-4.17Z\"},\"child\":[]}]})(props);\n};\nexport function SiWistia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.69 6.605c.507-3.094-1.24-3.944-1.24-3.944s.073 2.519-4.555 3.053C13.787 6.188 0 5.83 0 5.83l4.43 5.081c1.2 1.378 1.838 1.537 3.187 1.633 1.349.09 4.327.058 6.345-.096 2.206-.169 5.35-.888 7.477-2.535 1.09-.843 2.039-2.016 2.25-3.308m.284 3.205s-.556 1.105-3.33 2.853c-1.182.744-3.637 1.535-6.793 1.84-1.705.166-4.842.031-6.188.031-1.354 0-1.974.285-3.187 1.652L0 21.23s1.55.008 2.72.008c1.17 0 8.488.425 11.735-.468 10.546-2.899 9.518-10.96 9.518-10.96Z\"},\"child\":[]}]})(props);\n};\nexport function SiWix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 7.354 2.113 9.292h.801a1.54 1.54 0 0 0 1.506-1.218l1.351-6.34a.171.171 0 0 1 .167-.137c.08 0 .15.058.167.137l1.352 6.34a1.54 1.54 0 0 0 1.506 1.218h.805l2.113-9.292h-.565c-.62 0-1.159.43-1.296 1.035l-1.26 5.545-1.106-5.176a1.76 1.76 0 0 0-2.19-1.324c-.639.176-1.113.716-1.251 1.365l-1.094 5.127-1.26-5.537A1.33 1.33 0 0 0 .563 7.354H0zm13.992 0a.951.951 0 0 0-.951.95v8.342h.635a.952.952 0 0 0 .951-.95V7.353h-.635zm1.778 0 3.158 4.66-3.14 4.632h1.325c.368 0 .712-.181.918-.486l1.756-2.59a.12.12 0 0 1 .197 0l1.754 2.59c.206.305.55.486.918.486h1.326l-3.14-4.632L24 7.354h-1.326c-.368 0-.712.181-.918.486l-1.772 2.617a.12.12 0 0 1-.197 0L18.014 7.84a1.108 1.108 0 0 0-.918-.486H15.77z\"},\"child\":[]}]})(props);\n};\nexport function SiWizzair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.6366 10.393h2.3183l-2.7457 3.5919h-2.3195zm-.1745-.351l-2.9186 3.8194c-.0699.0911-.0812.2063-.0302.308a.2977.2977 0 0 0 .2643.1658h2.6055l2.9424-3.8484a.2817.2817 0 0 0 .0277-.2926c-.0472-.0942-.1429-.1521-.2508-.1521zM9.127 8.1753a.0859.0859 0 0 1 .074-.0421h1.5203l.2184-1.2553a.0823.0823 0 0 1 .0823-.0664l1.423-.001c.0262 0 .0472.0078.0623.0248a.0904.0904 0 0 1 .0197.0682l-.1416.8122 6.69.0049c.0361 0 .062.0218.0747.0429.0078.0156.0183.0472-.0035.0768l-.6041.7888 4.9581-.0013a.0661.0661 0 0 1 .0577.0342.0535.0535 0 0 1-.0005.0583l-4.1208 5.3952c-.047.0588-.0448.2082-.0121.2718.034.0642.1515.156.2251.156l2.8984.0031a.0795.0795 0 0 1 .0623.0278.0813.0813 0 0 1 .0189.0658l-.2203 1.2607a.0823.0823 0 0 1-.0823.066H11.2994l-.1812-.001a.915.915 0 0 1 .0188.1934c0 .567-.4595 1.0269-1.0274 1.0269-.5677 0-1.0274-.4598-1.0274-1.027 0-.5673.4597-1.0266 1.0274-1.0266a1.03 1.03 0 0 1 .9012.5318l4.4943-5.8922c.0723-.1521.0362-.2066-.0027-.2964-.0288-.0677-.1372-.1373-.2556-.136h-3.146L11.297 13.93c-.0078.0361-.0423.0612-.0809.0612H9.7922a.0828.0828 0 0 1-.0628-.0283.0787.0787 0 0 1-.0184-.0658l.8732-4.9824-3.5515 6.9628a.1814.1814 0 0 1-.1578.092l-1.2097.006c-.0432 0-.0788-.0308-.0825-.0678l-.3336-5.0579-2.6239 5.0288a.182.182 0 0 1-.157.0914l-1.227-.0008c-.042 0-.0779-.031-.0814-.071L.36 8.2208a.0874.0874 0 0 1 .0208-.0639c.0148-.0148.0364-.0232.062-.0232H2.092c.045 0 .0828.0367.0828.0847l.2473 5.0088 2.4254-5.0503a.0824.0824 0 0 1 .0733-.0432l1.5034-.0064c.0415 0 .0788.0315.0812.0682l.2443 5.0474zm1.8249-1.7154a.3501.3501 0 0 0-.3447.2896l-.1812 1.0323H9.1472c-.1306 0-.2473.0704-.3137.1923l-1.8003 3.84-.1785-3.7122a.351.351 0 0 0-.3492-.3198h-1.637a.3528.3528 0 0 0-.3135.193l-1.851 3.8544-.1826-3.6977a.3504.3504 0 0 0-.35-.3497H.3506a.3533.3533 0 0 0-.2586.1092c-.0648.0712-.0977.1702-.0912.2732l.8163 7.8411a.35.35 0 0 0 .3487.3115l1.3534.0005a.4463.4463 0 0 0 .3956-.2378l2.067-3.9601.2549 3.8862a.3508.3508 0 0 0 .3479.3115l1.3434.0005a.448.448 0 0 0 .3962-.2397l2.512-4.925-.4865 2.7779a.3553.3553 0 0 0 .076.2872.3507.3507 0 0 0 .268.1245h1.5922c.1653 0 .306-.1151.343-.2812l.7659-4.3713H15.13l-4.1332 5.4092a1.3776 1.3776 0 0 0-.8842-.3198c-.7602 0-1.3807.6194-1.3807 1.3802 0 .7612.6205 1.3804 1.3807 1.3804.6984 0 1.2928-.5337 1.3731-1.2227l10.9119-.0005a.3472.3472 0 0 0 .3444-.2902l.2497-1.4206a.3526.3526 0 0 0-.0777-.2853.348.348 0 0 0-.2678-.1235l-2.8299-.0027 4.126-5.3993c.07-.1046.0765-.2308.0183-.3395a.3309.3309 0 0 0-.2942-.1788h-4.4148l.28-.3657c.0733-.1097.0806-.2432.0188-.3597-.0617-.1144-.1798-.1872-.3085-.1872h-6.44l.0883-.495a.3605.3605 0 0 0-.0815-.2884c-.0658-.0784-.1596-.1213-.265-.1213h-1.592Z\"},\"child\":[]}]})(props);\n};\nexport function SiWolfram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.105 12.001l3.307-3.708-4.854-1.059.495-4.944-4.55 1.996L12 0 9.495 4.287 4.947 2.291l.494 4.944L.587 8.289l3.305 3.707-3.305 3.713 4.854 1.053-.5 4.945 4.553-1.994L12 24l2.504-4.287 4.55 1.994-.495-4.938 4.854-1.06-3.308-3.708zm1.605 2.792l-2.861-.982-1.899-2.471 2.526.942 2.234 2.511zm.459-6.096l-2.602 2.918-3.066-1.141 1.844-2.612 3.824.835zm-4.288-1.324l-1.533 2.179.088-3.162 1.788-2.415-.343 3.398zm-3.304-2.399l3.091-1.354L15.9 5.998l-2.943 1.049 1.62-2.073zm1.187 1.772l-.096 3.652-3.341 1.12V7.969l3.437-1.223zM12 1.308l1.969 3.371L12 7.199l-1.971-2.521L12 1.308zM9.423 4.974l1.619 2.072-2.948-1.048L6.332 3.62l3.091 1.354zm2.245 2.995v3.549l-3.335-1.12-.102-3.652 3.437 1.223zM7.564 6.39l.086 3.162-1.532-2.179-.341-3.397L7.564 6.39zM1.83 8.692l3.824-.83 1.839 2.612-3.065 1.136L1.83 8.692zm2.694 3.585l2.526-.937-1.9 2.471-2.861.977 2.235-2.511zm-2.093 3.159l2.929-1 3.045.896-2.622.837-3.352-.733zm3.28 5.212l.392-3.896 3.111-.982.082 3.31-3.585 1.568zm3.691-5.708l-3.498-1.03 2.226-2.892 3.335 1.126-2.063 2.796zm2.266 7.191l-1.711-2.934-.066-2.771 1.777 2.597v3.108zm-1.73-6.8L12 12.532l2.063 2.799L12 18.336l-2.062-3.005zm4.104 3.866l-1.715 2.934v-3.107l1.782-2.597-.067 2.77zm-1.514-7.052l3.341-1.126 2.221 2.892-3.499 1.03-2.063-2.796zm2.175 6.935l.077-3.31 3.116.982.386 3.901-3.579-1.573zm3.514-2.912l-2.625-.837 3.049-.896 2.928 1.003-3.352.73z\"},\"child\":[]}]})(props);\n};\nexport function SiWolframlanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.335 12.431c-.552.15-.615.18-1.164.337-.589-.337-1.107-.526-1.595-.463.057-.306.151-.525.245-.8 1.036-.15 1.805.4 2.514.926zm5.308 7.201a10.795 10.795 0 0 1-1.907 1.52h-.006l-3.702-4.613 3.07.336s1.47.151 1.807 0c.308-.117 1.963-2.449 1.963-2.449s-4.76-3.009-6.384-4.666c.188-2.793-.213-6.508-.213-6.478-1.193 1.195-1.35 1.383-2.544 2.489-.52-1.688-.769-2.27-1.289-3.958-1.568 1.289-2.763 3.464-3.62 6.016a12.29 12.29 0 0 0-.55.656c-.113.157-.23.313-.345.475a16.126 16.126 0 0 0-1.101 1.819c-.063.112-.125.231-.188.35-.913 1.788-1.676 3.79-2.338 5.604A10.824 10.824 0 0 1 1.205 12c0-2.862 1.138-5.613 3.163-7.64A10.785 10.785 0 0 1 12 1.202a10.8 10.8 0 0 1 7.642 3.158A10.83 10.83 0 0 1 22.797 12a10.813 10.813 0 0 1-3.154 7.633M12 6.691c.832-.801.951-.92 1.75-1.69.064 1.533.032 2.334-.062 4.204-.463-.458-1.381-1.044-1.381-1.044S12.126 7.09 12 6.69m3.834 15.463C9.218 24.547 4.436 20.14 3.417 18.602c.006-.014.006-.027.006-.039.92-3.889 2.058-8.535 3.884-9.91.955-1.655 1.231-4.113 2.943-5.401.432 1.288 1.107 3.958 1.57 5.246 2.025 2.025 5.087 4.545 7.146 5.59.212.12.489.98.489.98l-.825 1.038-8.835-.887c-.2-.02-.394-.028-.594-.028-.569 0-1.15.073-1.833.18.432-1.07 1.35-1.936 1.35-1.936s-.855-.519-1.505-.605c.187-.432.681-.989.8-1.138-.244.087-2.026.888-2.208 1.563.857.214 1.47.487 1.47.487s-.95.957-1.132 2.612c0 0 2.82-.43 4.939-.153.063.03.094.03.125.03l1.102.031 3.509 5.84.027.046a.012.012 0 0 1-.011.006m4.652-18.64A12.02 12.02 0 0 0 12 0C8.818 0 5.768 1.27 3.516 3.515a12.025 12.025 0 0 0-3.513 8.484c0 3.183 1.27 6.235 3.512 8.478a11.98 11.98 0 0 0 16.97 0 11.966 11.966 0 0 0 3.512-8.478c0-3.181-1.26-6.233-3.511-8.484z\"},\"child\":[]}]})(props);\n};\nexport function SiWolframmathematica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.74 10.7c-.53-1.53.14-4 .14-4S13.6 8.01 11.93 8 8.13 6.7 8.13 6.7s.56 2.46.07 4.04c-.48 1.58-2.47 3.34-2.47 3.34s2.58.23 3.85 1.1S12 18.64 12 18.64s.78-2.35 2.32-3.41c1.54-1.07 3.96-1.15 3.96-1.15s-2-1.84-2.54-3.37zm-2 3.69c-1.09.81-1.75 2.19-1.75 2.19s-.76-1.43-1.8-2.22c-1.05-.79-2.57-.97-2.57-.97a5.06 5.06 0 0 0 1.53-2.37c.46-1.54.18-2.73.18-2.73s.92.7 2.62.7c1.7 0 2.79-.7 2.79-.7s-.38 1.58.07 2.7c.44 1.14 1.57 2.41 1.57 2.41s-1.56.17-2.64.99zM13.73 9.6s-.95.38-1.77.37c-.82 0-1.7-.37-1.7-.37.05.58 0 1.15-.17 1.7-.27.86-.91 1.64-.91 1.64A4.23 4.23 0 0 1 12 14.95s.45-.85 1.18-1.33c.5-.31 1.05-.55 1.63-.7 0 0-.74-.78-1.02-1.57-.28-.78-.06-1.75-.06-1.75zM20.1 12l3.31-3.7-4.85-1.07.5-4.94-4.56 2L12 0 9.5 4.29l-4.55-2 .49 4.95L.59 8.29 3.89 12 .6 15.7l4.85 1.07-.5 4.94 4.55-2L12 24l2.5-4.29 4.56 2-.5-4.94 4.85-1.06-3.3-3.71zm-5.27 3.95C14 16.56 12 20.81 12 20.81S10.5 16.95 9 15.95c-1.48-1-5.38-1.22-5.38-1.22s2.99-2.37 3.57-4.47c.59-2.1-.37-5.37-.37-5.37s2.9 2.1 5.08 2.1c2.17 0 5.26-2.1 5.26-2.1s-.82 4.5-.53 5.46c.3.96 3.73 4.38 3.73 4.38s-4.7.62-5.54 1.22z\"},\"child\":[]}]})(props);\n};\nexport function SiWondershare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.216 17.814 7.704 9.368l.02-.02c.391.239.91.19 1.249-.147l3.041-3.016 7.241 7.184c.397.394.402 1.029.005 1.426l-3.044 3.019Zm-5.253-3.017-3.03 3.017L0 9.915l3.746-3.73 7.217 7.187a1.005 1.005 0 0 1 0 1.425ZM24 9.913l-3.725 3.727L16 9.367l.02-.021c.388.239.903.19 1.239-.146l3.014-3.015L24 9.913Z\"},\"child\":[]}]})(props);\n};\nexport function SiWondersharefilmora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.475 0A5.463 5.463 0 0 0 0 5.475v13.05A5.463 5.463 0 0 0 5.475 24h13.05A5.463 5.463 0 0 0 24 18.525V5.475A5.463 5.463 0 0 0 18.525 0H5.475Zm4.552 3.6 4.026 4.029-4.617 4.623-.022-.023a1.088 1.088 0 0 0-.158-1.339L5.999 7.63l4.028-4.03ZM14.528 8l4.027 4.03-8.528 8.536L6 16.536 14.528 8Z\"},\"child\":[]}]})(props);\n};\nexport function SiWoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.227 4.857A2.228 2.228 0 000 7.094v7.457c0 1.236 1.001 2.237 2.237 2.237h9.253l4.229 2.355-.962-2.355h7.006c1.236 0 2.237-1 2.237-2.237V7.094c0-1.236-1-2.237-2.237-2.237zm8.08 1.311c.194.002.372.071.535.2a.769.769 0 01.304.56.851.851 0 01-.098.47c-.382.707-.696 1.894-.951 3.542-.246 1.6-.334 2.846-.275 3.739.02.245-.02.46-.118.647a.632.632 0 01-.52.353c-.255.02-.52-.098-.775-.362-.913-.933-1.639-2.326-2.169-4.18a184.085 184.085 0 00-1.413 2.825c-.578 1.11-1.069 1.678-1.481 1.708-.265.02-.49-.206-.687-.677-.5-1.286-1.04-3.768-1.619-7.448-.03-.255.02-.48.157-.657.137-.186.344-.284.618-.304.5-.04.785.196.854.706.304 2.051.638 3.788.991 5.21L5.809 8.41c.196-.373.441-.57.736-.589.431-.03.696.245.804.824.246 1.305.56 2.414.932 3.356.255-2.492.687-4.288 1.295-5.397.148-.274.363-.412.648-.431a.866.866 0 01.084-.004zm3.734 1.063c.167 0 .343.02.53.06.687.146 1.216.52 1.57 1.137.314.53.47 1.168.47 1.933 0 1.011-.254 1.933-.765 2.777-.588.981-1.354 1.472-2.305 1.472-.167 0-.344-.02-.53-.059-.697-.147-1.217-.52-1.57-1.138-.314-.54-.471-1.187-.471-1.943 0-1.01.255-1.933.765-2.767.599-.981 1.364-1.472 2.306-1.472zm6.152 0c.167 0 .343.02.53.06.696.146 1.216.52 1.57 1.137.314.53.47 1.168.47 1.933 0 1.011-.254 1.933-.765 2.777-.588.981-1.354 1.472-2.305 1.472-.167 0-.344-.02-.53-.059-.697-.147-1.217-.52-1.57-1.138-.314-.54-.471-1.187-.471-1.943 0-1.01.255-1.933.765-2.767.599-.981 1.364-1.472 2.306-1.472zm-6.107 1.645c-.307-.002-.606.201-.889.622a3.173 3.173 0 00-.52 1.168c-.05.225-.069.47-.069.716 0 .284.06.589.177.893.147.382.343.589.579.638.245.049.51-.06.795-.315.363-.323.608-.804.745-1.452.05-.225.069-.47.069-.726a2.49 2.49 0 00-.176-.893c-.148-.382-.344-.588-.58-.637a.714.714 0 00-.131-.014zm6.152 0c-.307-.002-.606.201-.889.622a3.173 3.173 0 00-.52 1.168c-.049.225-.069.47-.069.716 0 .284.06.589.177.893.147.382.344.589.579.638.245.049.51-.06.795-.315.363-.323.608-.804.745-1.452.04-.225.07-.47.07-.726a2.49 2.49 0 00-.177-.893c-.148-.382-.344-.588-.58-.637a.714.714 0 00-.131-.014Z\"},\"child\":[]}]})(props);\n};\nexport function SiWoocommerce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.754 9.58a.754.754 0 00-.754.758v2.525c0 .42.339.758.758.758h3.135l1.431.799-.326-.799h2.373a.757.757 0 00.758-.758v-2.525a.757.757 0 00-.758-.758H.754zm2.709.445h.03c.065.001.124.023.179.067a.26.26 0 01.103.19.29.29 0 01-.033.16c-.13.239-.236.64-.322 1.199-.083.541-.114.965-.094 1.267a.392.392 0 01-.039.219.213.213 0 01-.176.12c-.086.006-.177-.034-.263-.124-.31-.316-.555-.788-.735-1.416-.216.425-.375.744-.478.957-.196.376-.363.568-.502.578-.09.007-.166-.069-.233-.228-.17-.436-.352-1.277-.548-2.524a.297.297 0 01.054-.222c.047-.064.116-.095.21-.102.169-.013.265.065.288.238.103.695.217 1.284.336 1.766l.727-1.387c.066-.126.15-.192.25-.199.146-.01.237.083.273.28.083.441.188.817.315 1.136.086-.844.233-1.453.44-1.828a.255.255 0 01.218-.147zm1.293.36c.056 0 .116.006.18.02.232.05.411.177.53.386.107.18.161.395.161.654 0 .343-.087.654-.26.94-.2.332-.459.5-.781.5a.88.88 0 01-.18-.022.763.763 0 01-.531-.384 1.287 1.287 0 01-.158-.659c0-.342.085-.655.258-.937.202-.333.462-.498.78-.498zm2.084 0c.056 0 .116.006.18.02.236.05.411.177.53.386.107.18.16.395.16.654 0 .343-.086.654-.259.94-.2.332-.459.5-.781.5a.88.88 0 01-.18-.022.763.763 0 01-.531-.384 1.287 1.287 0 01-.16-.659c0-.342.087-.655.26-.937.202-.333.462-.498.78-.498zm4.437.047c-.305 0-.546.102-.718.304-.173.203-.256.49-.256.856 0 .395.086.697.256.906.17.21.418.316.744.316.315 0 .559-.107.728-.316.17-.21.256-.504.256-.883s-.087-.673-.26-.879c-.176-.202-.424-.304-.75-.304zm-1.466.002a1.13 1.13 0 00-.84.326c-.223.22-.332.499-.332.838 0 .362.108.658.328.88.22.223.505.336.861.336.103 0 .22-.016.346-.052v-.54c-.117.034-.216.051-.303.051a.545.545 0 01-.422-.177c-.106-.12-.16-.278-.16-.48 0-.19.053-.348.156-.468a.498.498 0 01.397-.181c.103 0 .212.015.332.049v-.537a1.394 1.394 0 00-.363-.045zm12.414 0a1.135 1.135 0 00-.84.326c-.223.22-.332.499-.332.838 0 .362.108.658.328.88.22.223.506.336.861.336.103 0 .22-.016.346-.052v-.54c-.116.034-.216.051-.303.051a.545.545 0 01-.422-.177c-.106-.12-.16-.278-.16-.48 0-.19.053-.348.156-.468a.498.498 0 01.397-.181c.103 0 .212.015.332.049v-.537a1.394 1.394 0 00-.363-.045zm-9.598.06l-.29 2.264h.579l.156-1.559.395 1.559h.412l.379-1.555.164 1.555h.603l-.304-2.264h-.791l-.12.508c-.03.13-.06.264-.087.4l-.067.352a29.97 29.97 0 00-.258-1.26h-.771zm2.768 0l-.29 2.264h.579l.156-1.559.396 1.559h.412l.375-1.555.165 1.555h.603l-.305-2.264h-.789l-.119.508c-.03.13-.06.264-.086.4l-.066.352c-.063-.352-.15-.771-.26-1.26h-.771zm3.988 0v2.264h.611v-1.031h.012l.494 1.03h.645l-.489-1.019a.61.61 0 00.37-.552.598.598 0 00-.25-.506c-.167-.123-.394-.186-.68-.186h-.713zm3.377 0v2.264H24v-.483h-.63v-.414h.54v-.468h-.54v-.416h.626v-.483H22.76zm-4.793.004v2.264h1.24v-.483h-.627v-.416h.541v-.468h-.54v-.415h.622v-.482h-1.236zm2.025.432c.146.003.25.025.313.072.063.046.091.12.091.227 0 .156-.135.236-.404.24v-.54zm-15.22.011c-.104 0-.205.069-.301.211a1.078 1.078 0 00-.2.639c0 .096.02.2.06.303.049.13.117.198.196.215.083.016.173-.02.27-.106.123-.11.205-.273.252-.492.016-.077.023-.16.023-.246 0-.097-.02-.2-.06-.303-.05-.13-.116-.198-.196-.215a.246.246 0 00-.045-.006zm2.083 0c-.103 0-.204.069-.3.211a1.078 1.078 0 00-.2.639c0 .096.02.2.06.303.049.13.117.198.196.215.083.016.173-.02.27-.106.123-.11.205-.273.252-.492.013-.077.023-.16.023-.246 0-.097-.02-.2-.06-.303-.05-.13-.116-.198-.196-.215a.246.246 0 00-.045-.006zm4.428.006c.233 0 .354.218.354.66-.004.273-.038.46-.098.553a.293.293 0 01-.262.139.266.266 0 01-.242-.139c-.056-.093-.084-.28-.084-.562 0-.436.11-.65.332-.65Z\"},\"child\":[]}]})(props);\n};\nexport function SiWordpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.469 6.825c.84 1.537 1.318 3.3 1.318 5.175 0 3.979-2.156 7.456-5.363 9.325l3.295-9.527c.615-1.54.82-2.771.82-3.864 0-.405-.026-.78-.07-1.11m-7.981.105c.647-.03 1.232-.105 1.232-.105.582-.075.514-.93-.067-.899 0 0-1.755.135-2.88.135-1.064 0-2.85-.15-2.85-.15-.585-.03-.661.855-.075.885 0 0 .54.061 1.125.09l1.68 4.605-2.37 7.08L5.354 6.9c.649-.03 1.234-.1 1.234-.1.585-.075.516-.93-.065-.896 0 0-1.746.138-2.874.138-.2 0-.438-.008-.69-.015C4.911 3.15 8.235 1.215 12 1.215c2.809 0 5.365 1.072 7.286 2.833-.046-.003-.091-.009-.141-.009-1.06 0-1.812.923-1.812 1.914 0 .89.513 1.643 1.06 2.531.411.72.89 1.643.89 2.977 0 .915-.354 1.994-.821 3.479l-1.075 3.585-3.9-11.61.001.014zM12 22.784c-1.059 0-2.081-.153-3.048-.437l3.237-9.406 3.315 9.087c.024.053.05.101.078.149-1.12.393-2.325.609-3.582.609M1.211 12c0-1.564.336-3.05.935-4.39L7.29 21.709C3.694 19.96 1.212 16.271 1.211 12M12 0C5.385 0 0 5.385 0 12s5.385 12 12 12 12-5.385 12-12S18.615 0 12 0\"},\"child\":[]}]})(props);\n};\nexport function SiWorkplace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.268 10.541C23.268 4.715 18.544 0 12.728 0c-1.614 0-3.191.317-4.663.952a11.952 11.952 0 00-3.817 2.574 11.915 11.915 0 00-3.516 8.478 11.924 11.924 0 003.516 8.48 12.05 12.05 0 003.817 2.573c1.472.626 3.05.943 4.671.943 1.56 0 3.05-.3 4.416-.837l-.908-2.292a9.448 9.448 0 01-3.508.67 9.481 9.481 0 01-6.743-2.794A9.481 9.481 0 013.2 12.004c0-2.547.996-4.944 2.794-6.742a9.496 9.496 0 016.743-2.794 8.072 8.072 0 016.734 12.524l-2.098-5.165c-.308-.758-.679-1.895-2.071-1.895-1.393 0-1.763 1.146-2.063 1.895l-1.93 4.769-2.591-6.54H5.993l3.226 7.95c.326.802.688 1.895 2.09 1.895 1.4 0 1.753-1.093 2.08-1.895l1.912-4.724 1.921 4.724c.388.978.802 1.895 2.08 1.895.908 0 1.481-.582 1.798-.96a10.493 10.493 0 002.168-6.4Z\"},\"child\":[]}]})(props);\n};\nexport function SiWorldhealthorganization (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0214 1.4122c-1.064 0-.6118 1.5783-.5273 2.0925 0 .025.0857 3.5707.1024 4.3789.1619-.0429.3226-.0822.4761-.119l.3214-.081c.0154-.782.094-4.1658.0964-4.1837.0702-.551.6272-2.0877-.469-2.0877zm-.3118 12.0405c.119-.0405.238-.0762.3452-.1107l.2297-.0714c0-.2274.069-3.372.0809-3.9433a7.2271 7.2271 0 0 0-.732.2107c.0083.4285.0702 3.5719.0762 3.9147zm.3928 1.1926c-.0405.0143-.144.0583-.2095.081-.0655.0226-.1571.0606-.1571.0845 0 .0238.0666 3.6195.0666 3.6992 0 .744.3785.7487.3785 0 0-.0535.0762-3.9159.0762-3.9159s-.0905.0298-.1547.0512zm-.8558-10.1468a5.4953 5.4953 0 0 0-.8332.3392c-.2975.0988-.7141.119-1.151.588a5.8905 5.8905 0 0 0-.3963.5094c-.131.188-.1369.4904-.238.6535-.1381.238-.1048.3701-.1048.3701v.0072a.632.632 0 0 1-.1595.2952.6046.6046 0 0 1-.5546.2213c.1975.0988.476-.0392.476-.0392a3.6433 3.6433 0 0 0-.1047.3927c.2214-.501.425-.6843.488-.7355.0952.0214.2928.013.6594-.1976.4142-.238 1.0367-.6249 1.2129-.87a1.6175 1.6175 0 0 1 .7332-.5535c-.0131-.3773-.0203-.7035-.0274-.9808zM9.4993 6.0637L9.284 6.11l.257-.413.3.0095zm1.2795 8.64c0 .4665.3452.714.6892.9128 0-.0785-.0143-.801-.0143-.8129.0071-.144.1464-.2309.2595-.2845a5.6 5.6 0 0 1 .5463-.2082c.1023-.0358.1892-.0703.2868-.0988.6904-.2083 1.489-.4761 1.489-1.3093 0-.8332-.6844-1.1902-1.4283-1.4438 0 .2678-.013.6594-.019.9296.3166.119.526.275.526.5142 0 .3011-.3213.476-.5486.5618a5.9252 5.9252 0 0 1-.2797.0976c-.1833.0571-.381.119-.5654.1904a2.7126 2.7126 0 0 0-.2797.119c-.3285.1643-.663.406-.6618.832zm4.5753-8.1496c0-.8534-.619-1.8009-2.1365-2.1353a3.6528 3.6528 0 0 0-.463-.0536c0 .1286-.0095.4237-.0095.4237 0 .0929-.0095.4345-.012.5083a2.1424 2.1424 0 0 1 .2917.0404c.882.2107 1.1974.7142 1.1974 1.2165 0 .8105-.6927 1.1164-1.5473 1.3473l-.2821.0738c-.2583.0643-.5237.1262-.7868.1964a10.782 10.782 0 0 0-.2797.0797c-.9438.288-1.7556.7427-1.7556 1.9044 0 1.1617.926 1.5878 1.8294 1.8663q-.0083-.4987-.019-1.0022c-.3988-.1868-.6797-.4332-.6797-.8474 0-.4142.256-.6499.6475-.8332a3.0192 3.0192 0 0 1 .2786-.1083c.225-.0762.476-.1416.7439-.2059l.282-.0678c1.2724-.2976 2.7007-.6963 2.7007-2.4031zm-2.8482 9.5362c.4284.2166.8236.5165.989 1.0843.0726-.9403-.4546-1.3474-.9771-1.6223l-.012.538zM19.5199 5.29c.4595.5475 1.2629.87 1.733 1.4188-.3368-1.6223-1.589-2.947-3.0696-3.2637.7225.544.8784 1.2998 1.3366 1.845zM1.7235 9.4023c1.02-2.2198 2.5423-1.7497 3.1862-3.8647-.357.6487-2.0234.9224-2.7982 2.5852.394-.988.1964-2.4995.863-3.3148-1.9926 1.47-1.144 3.848-1.251 4.5943zm1.8472 5.324c.1833.864-.357 2.1114.5 3.304-.8856-.9926-2.7614-1.245-3.5256-2.7542.9522 3.6898 3.4517 2.928 4.5694 3.729-.9237-1.327-.1679-2.209-1.5438-4.2789zm-.2868 2.315c-.5463-2.0603.4273-2.7745-.3166-4.7503-.0774 1.114-.8201 1.6568-.319 3.6898C1.7639 14.2597.3963 13.6169 0 12.4338c.0274 3.2351 2.6269 3.7148 3.2839 4.6075zm3.992 3.4517c-.7653-1.0594-.238-1.658-2.3923-3.5815.4546.7023-.0143 1.5854 1.4354 2.959-1.4188-.8332-3.3755-.4761-4.3194-1.5962 1.6211 3.103 4.4694 1.8366 5.2763 2.2222zm10.4051-.6225c1.4497-1.3736.9808-2.2615 1.4354-2.959-2.1495 1.9235-1.627 2.5221-2.3923 3.5815.807-.3857 3.6552.8807 5.2751-2.2187-.9427 1.1213-2.8994.763-4.3182 1.5997zm2.2484-1.8437c.8534-1.1903.3166-2.44.4999-3.3041-1.376 2.0698-.6201 2.9518-1.5473 4.2848 1.1236-.801 3.6135-.0416 4.5693-3.729-.763 1.5069-2.6364 1.7592-3.522 2.7519zm-3.435 2.6126a10.617 10.617 0 0 0-2.3508-.3571 5.6834 5.6834 0 0 0-2.1424.3642 5.687 5.687 0 0 0-2.1424-.3642 10.617 10.617 0 0 0-2.3508.357c-1.2938.344-2.4114.6106-3.3862.119.9343.8332 2.0234 1.1249 3.5981.9523 1.3093-.1405 2.3698-.7963 3.6052-.7868h.0488a6.6023 6.6023 0 0 0-2.0377 1.5842l.5952.0798s.6272-1.2605 2.0698-1.589c1.4426.3285 2.0698 1.589 2.0698 1.589l.5951-.0798a6.6213 6.6213 0 0 0-2.0377-1.5758h.0488c1.2355-.0096 2.2936.6463 3.604.7867 1.5748.1702 2.665-.1262 3.5994-.9522-.9748.4868-2.0925.2202-3.3863-.1238zM3.0553 10.0569c-.5333 1.0236-1.3617 1.2581-1.27 3.3767-.45-1.883-1.5188-2.5804-1.5057-3.7813-.7427 3.1303 1.2426 3.5016 1.752 4.8133-.075-1.8794 1.1248-2.259 1.0236-4.4087zm.745-2.4162c-.1856.2595-.3154.3702-.8105.7785a4.0194 4.0194 0 0 0-1.4426 2.353c.0512-1.1473-.6582-2.7958-.1869-3.998-1.8246 2.577.1048 4.1207.1726 5.0538.4737-1.796 1.5616-1.8103 2.2674-4.1873zm18.6511 3.1316A4.0254 4.0254 0 0 0 21.01 8.4192c-.4951-.4083-.6249-.519-.8105-.7785.7058 2.3805 1.7937 2.3912 2.2614 4.1873.0679-.9331 1.9972-2.4769.1714-5.0537.4761 1.202-.232 2.8506-.1809 3.998zm1.5473 1.6663c-.3963 1.1831-1.764 1.8258-2.6483 3.5517.5011-2.0377-.238-2.5805-.319-3.6898-.7439 1.9782.238 2.6888-.3166 4.7503.6582-.9022 3.2577-1.3819 3.2851-4.617zm-3.0506-2.3817c-.1011 2.1496 1.0998 2.5293 1.0236 4.404.5106-1.3093 2.4995-1.683 1.752-4.8134.0143 1.201-1.0545 1.9044-1.5008 3.7754.0833-2.1079-.7451-2.3424-1.2748-3.366zM4.4824 5.296c.4607-.5474.6166-1.3009 1.3379-1.8448-1.4807.3166-2.7376 1.6413-3.0697 3.2636.463-.5546 1.2677-.8772 1.727-1.4247zm14.6126.2476c.644 2.1151 2.1663 1.645 3.1851 3.8648-.106-.7463.7427-3.1244-1.2497-4.5944.6665.8165.469 2.327.8629 3.3148-.7773-1.6687-2.44-1.9424-2.803-2.5911zm-5.1692 1.195a4.9895 4.9895 0 0 0-1.2176-.3273v.2714a4.761 4.761 0 0 1 1.1188.307.7141.7141 0 0 0 .0988-.251zM13.6175 4.12l.081-.0726-.1548-.0655-.407-.0083-.106.0738-.238-.0202v.0583a4.136 4.136 0 0 1 .419.044l.1987-.0178zm-.789 8.778c0-.069-.0917-.1368-.2274-.2011h-.025c0 .056 0 .332-.0084.4666.1679-.075.2607-.156.2607-.2655zM8.1126 7.7205a1.2997 1.2997 0 0 1 .0345-.1488.6891.6891 0 0 1-.1666.0167zm3.8956 11.9738a8.3031 8.3031 0 0 0 .8463-16.5598c0 .0155 0 .0321-.0095.0476-.0167.081-.0322.1535-.044.2178a8.0163 8.0163 0 0 1 4.8359 2.2615l-.9165.9165.0345-.162-.119-.0523-.1643-.0095.0345-.106-.1106-.3749-.2286-.2511-.7141-.3773-.062.0655-.1296.038a2.1424 2.1424 0 0 1 .3785 1.2034v.163l.357.4464-.1666.038.1107.1667-.313.3118-.1262-.238a2.133 2.133 0 0 1-.238.4678l.0702.0642-.9653.9653a3.2917 3.2917 0 0 0-.181-.1607 4.5833 4.5833 0 0 1-.2832.119l.0821.0643-.0488.0488-.119.0631-.0417.119-.0702-.0702-.2035.0679.056.0892.1404-.0369.0916.0072.0072-.05.0702-.0357.0214-.0417.1262-.0357h.0988c.019.0167.0392.0345.057.0524l-.388.369-.0285-.0405-.4.0654-.0892.0893-.0869.0107.2476-.238-.088-.044-.2322.3094.0679-.0071v.119l.0845.0333.0166.119-.1392-.0273-.1452.0261-.3571-.1797-.0286 1.4164c.8332.2785 1.708.6808 1.708 1.7378a1.3093 1.3093 0 0 1-.595 1.1164l-.018.0119-.0261.0179c-.3357.2213-.7665.3404-1.1403.457l-.0107.7403c.5951.2952 1.3152.7249 1.2486 1.9544-.0084.3023-.1262.3856-.2274.413a6.2511 6.2511 0 0 1-1.0712.1702v.2702a6.6499 6.6499 0 0 0 4.1397-1.8282l.964.9641a8.0186 8.0186 0 0 1-11.1049.0226l.9641-.964a6.6451 6.6451 0 0 0 4.0814 1.8031v-.2702a6.3785 6.3785 0 0 1-3.8945-1.7222l.257-.2583.3572.0405.188-.2024.4928.0167.0726-.1702-.0179-.0726a4.999 4.999 0 0 0 2.5102 1.0033v-.2713a4.7526 4.7526 0 0 1-2.7042-1.2403l.9653-.9652a3.4338 3.4338 0 0 0 .782.5249.913.913 0 0 1 .0976-.2536 3.1208 3.1208 0 0 1-.6892-.463l.9677-.9664a1.7687 1.7687 0 0 0 .5166.2868v-.2904a1.4842 1.4842 0 0 1-.319-.1893l.2725-.2725a6.7378 6.7378 0 0 1-.288-.0929l-.1833.1833a1.4759 1.4759 0 0 1-.2309-.344 3.2815 3.2815 0 0 1-.476-.2547 1.8675 1.8675 0 0 1-.9035-1.6401 1.9687 1.9687 0 0 1 .3904-1.2498l-.9617-.9617a4.7502 4.7502 0 0 1 2.5757-1.2664c0-.0928 0-.1845-.006-.2714a5.0204 5.0204 0 0 0-2.76 1.3498l-.1631-.1595a4.504 4.504 0 0 0-.1297.2511l.1023.1036a5.0145 5.0145 0 0 0-1.364 3.3552H5.6096a6.382 6.382 0 0 1 1.7699-4.3253l.4332.4345a.5487.5487 0 0 0 .062 0 .6546.6546 0 0 0 .2463-.0715l-.551-.551a6.488 6.488 0 0 1 .9521-.7594 1.7925 1.7925 0 0 1 .0679-.2 3.2053 3.2053 0 0 1 .2083-.2797 6.6653 6.6653 0 0 0-1.4188 1.0462l-.9641-.964a7.9984 7.9984 0 0 1 4.7729-2.2377 2.1298 2.1298 0 0 1-.012-.0595c-.0118-.0631-.0261-.1333-.0392-.2071a8.3043 8.3043 0 0 0 .8665 16.5622zm1.7985-5.731v-.0071zm4.0206-8.108a8.0056 8.0056 0 0 1 2.2198 5.4561h-1.37a6.626 6.626 0 0 0-.7141-2.9137l.0119-.0238.094.05.0226-.0726-.238-.4273-.2892-.3999-.3428-.2797c-.119-.1452-.238-.2857-.3654-.4213zm-1.7437 1.7462l.3273.0143.0786.094-.0393.1392.4511.2857.0893-.0107.5832.6665.238-.0833a6.3559 6.3559 0 0 1 .5952 2.6042h-1.364a4.9728 4.9728 0 0 0-.1274-1.0378l.063-.0846.0846-.4272-.0643-.4595-.1642-.5284-.381-.557.093.0487.0463-.0464-.3059-.2071-.0202.0678.3059.4369.1726.357.119.3571.0393.238.063.4024-.119.0083s-.132-.2464-.1725-.3476l.0607-.0916-.119-.1666V9.107l-.0834-.1047-.1035.013a2.924 2.924 0 0 0-.119-.2035l.0737.037.019-.0191-.0392-.0857.0893-.05-.0405-.05-.1321.05.0488-.207-.0786-.0453-.0702.1654a5.0752 5.0752 0 0 0-.4963-.6308zm-.2737 3.1981l.2451-.1333.25-.038.0547-.119.1393-.0834.0536-.119.0428-.2012a4.071 4.071 0 0 1 .0548.2155l-.1321.394v.1332l.1916-.2559a4.611 4.611 0 0 1 .0678.7142h-1.1902l-.0274-.1036.1393-.1107.0273-.0666.0607-.0452.162-.0167.0166-.0714zm-1.6378-.9367l.119-.0285v-.0286l-.119-.0821.0416-.2571.1464-.1464a3.2327 3.2327 0 0 1 .2536.3297l-.0512.1583-.1333-.0952-.1012.0273.05.094h.05l-.056.1393-.038-.056zm.5225 4.5313l-.2952-.0833-.088.032-.1667-.1273-.1571-.056c.0774-.0559.1524-.119.225-.176l.238.1713.1857.0976.0916.0917zm-.15-5.2633l.9653-.9653a4.8121 4.8121 0 0 1 .5951.8023l-.119.0333.006.2154.357.2286a4.6657 4.6657 0 0 1 .2262.6094l-.0631.0928-.131.0833-.032.2-.0893.05-.075.088-.075-.0273h-.1333l.0774-.1048.0559-.2725.088-.0548-.2487-.2559-.194.0655-.044.182-.119.1322-.1274-.1048-.0452-.1118.0726-.0453.0404.0738.0595-.0226-.0261-.119h-.0845l-.006.05-.056.0107-.3035-.3559-.1023-.0774.0393-.0428.0904-.031-.0833-.0333s-.106.0238-.119.0238l.0607.0762h-.1524a3.2982 3.2982 0 0 0-.3047-.3928zm.4916 5.136l-.131-.131.1-.1298.1262-.257-.0488-.0715.0833-.1904-.0095-.1714-.05-.1773-.119-.0417-.044.1-.0715-.019a3.235 3.235 0 0 0 .2857-.4988l.119-.0523.069-.0929.0334.0381.0833-.1-.0666-.0833.0607-.0167.1118.0453h.2107l.1274-.0667.3332-.088-.063-.1107-.0215-.1345.1786.0785.0666-.0393-.0333-.138-.2154.0869-.238-.05-.1834-.375h1.0439a4.7514 4.7514 0 0 1-1.3176 3.1042l-.1429-.144.062-.1917-.112-.4225zm.1845 2.6625l.1285-.2762-.05-.119.1893-.1666v-.1l-.1619-.1012.1333-.2654.2-.2618-.2-.2155h-.15l-.0928-.1511a7.5411 7.5411 0 0 0 .238-.206l.9654.9653a6.4725 6.4725 0 0 1-1.1998.8987zm1.2045-1.2736l.1071-.119-.1011-.5285-.069-.0273.0428-.0893-.2285-.0714-.044.188-.0227.238-.0476.0441-.4166-.4166a5.0192 5.0192 0 0 0 1.3973-3.2934h1.3653a6.3737 6.3737 0 0 1-1.7973 4.2587zm.3761.375a6.6463 6.6463 0 0 0 1.877-4.4492h1.364a8.008 8.008 0 0 1-2.2757 5.4144zm-8.2126-1.3224a5.1601 5.1601 0 0 1-.2833-.319l.0417-.3452-.144-.3308-.0358-.5178-.1618-.3142.0333-.1952-.1952-.375-.1702-.0856.069-.1988-.0702-.1571.0702-.1798h.1869l.0654-.1083h.319l.0488.094-.0595.3298-.038.0559.119.2607-.0786.0428-.0548-.069-.0238.0262.0548.1547.094.181h.044l.031-.1762-.0452-.0596v-.1095l-.0143-.2261.0595-.3975-.0643-.1072h.2286a3.3898 3.3898 0 0 0 .939 2.1627zm-.9046-2.6673l-.1286.2023h-.2213l-.0179-.013a4.849 4.849 0 0 1-.069-.6488h.4106l-.0988.3285zm.4487-.9368l.025-.2713.1619-.094.2892.0511.044.0524a3.2136 3.2136 0 0 0-.044.469h-.3273zm1.389 1.02l.0679-.0344.1702.1345-.0774.063.2012.1334-.0048-.1429.1071-.1773.1119.119.119.1643-.219.0452.094.188.144-.0761-.0142-.0595.1071-.0727.063-.2975a1.7746 1.7746 0 0 0 .3131.476l-.964.9642a3.1196 3.1196 0 0 1-.8451-1.8116l.1975.2107h.1857zm-.9926-3.9825l.964.9653a3.441 3.441 0 0 0-.5117.7368h-.0667l-.1357.0416h-.0476l-.144.1345.182-.038.1643-.0417-.0285.063-.144.0882h-.0726l-.212.1618-.2046-.0166-.2964.5522.0583.1107-.1607.1786-.025.238h-.6046a4.7514 4.7514 0 0 1 1.2855-3.1744zM7.283 15.4202l.3059.1797.063.0428-.2213.2214q-.1548-.1607-.3-.332zm-.306-3.8386c0 .1321.0168.2643.031.394l-.1666.038-.0345.1691-.3476.4428.0084.6082-.3571.119h-.1952a6.3654 6.3654 0 0 1-.3047-1.7723zm-1.3473 1.764l-.0797-.0155-.075-.0845-.3833-.0333.119.1606-.357-.0666.0928-.0857-.0869-.0857-.2559.1119-.0916.169.0357.3892.2952.6999.1416.2213.081.0298-.2226-.4225-.0488-.2155.05-.0523-.031-.119.1345.0178.206.3118.0511.0203v-.2274l.0833.0488.0179.119.2166.0572.0905-.0643.031.0214v.1655l.0951.119.119.0262.2524.4273.1535.0428.0476-.2a6.7034 6.7034 0 0 0 .9403 1.2141l-.964.9641a8.0127 8.0127 0 0 1-2.3115-5.4287h1.3652a6.6451 6.6451 0 0 0 .288 1.764zm.5952-7.514l.964.964a6.6546 6.6546 0 0 0-1.8496 4.5158h-1.364A8.008 8.008 0 0 1 6.219 5.8316zm9.879-.4975l-.0822-.1333-.1785-.0893-.1393.106.1786.0951.1916.1464zm-.8344 3.8504v.1047l.238-.0702.0726-.144-.163-.2143.0869-.1309.2202.1571.0404-.0321-.044-.031-.05-.0952.0905-.0523-.0881-.119-.2071.1047-.069.1297-.0417.113.0916.1536-.0333.0714zm-9.8671 6.1202l.0179-.0619-.119-.2666-.1453-.0536zm5.5798-5.1276c0 .2286.1393.3904.3928.5297v-.1024l-.1595-.1594.0845-.1536.069-.019c0-.2666-.0106-.5654-.0118-.6082h-.012c-.2356.1309-.363.288-.363.513Z\"},\"child\":[]}]})(props);\n};\nexport function SiWpengine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.145 0v5.867L9.99 7.71h4.022l1.845-1.844V0zm8.145 0v5.867l1.845 1.844h5.864V.001zM1.845 0L0 1.845v5.866h7.712V0zM0 8.146v7.71h5.866l1.845-1.844V8.145zm18.133 0L16.29 9.989v4.022l1.845 1.845H24V8.145zm-6.147 2.75a1.105 1.105 0 00.014 2.21A1.105 1.105 0 0013.105 12a1.105 1.105 0 00-1.118-1.104zM0 16.29v7.71h5.866l1.845-1.842v-4.023l-1.845-1.845zm9.988 0l-1.843 1.845V24h7.71v-5.866L14.01 16.29zm6.3 0V24H24v-5.865l-1.842-1.845z\"},\"child\":[]}]})(props);\n};\nexport function SiWpexplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 12A12 12 0 1 1 12 0a12.008 12.008 0 0 1 12 12Zm-1.5 0A10.5 10.5 0 1 0 12 22.5 10.516 10.516 0 0 0 22.5 12ZM7.542 5.841l4.074 1.739-1.739 4.073L5.8 9.914l1.742-4.073Zm5.158 7.926 2.185 4.406H14.2l-2.343-4.687-2.295 4.687h-.656l2.4-5.01-1.046-.441.282-.656 3.215 1.364-.281.67Zm-.553-5.451 3.216 1.378-1.378 3.2-3.2-1.364 1.364-3.215Zm3.764 2.011 2.56 1.082-1.1 2.546-2.545-1.083 1.082-2.545Z\"},\"child\":[]}]})(props);\n};\nexport function SiWprocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.723.666c-.08-.276.08-.47.356-.47h2.283c.16 0 .31.137.356.274L8.393 7.07h.08L11.491.218A.374.374 0 0111.824 0h.356c.172 0 .287.092.333.218l3.018 6.85h.08L17.286.47a.397.397 0 01.356-.275h2.284c.275 0 .424.195.355.47l-3.683 13.082a.369.369 0 01-.356.275h-.31a.38.38 0 01-.333-.218l-3.568-7.963h-.058l-3.545 7.963a.403.403 0 01-.333.218h-.31a.379.379 0 01-.356-.275L3.723.666m8.308 7.917l-2.594 5.818a1.663 1.663 0 01-.344.448v.004a1.466 1.466 0 01-.688.34l1.4 8.687c.091.16.263.16.367 0l1.79-2.72 1.64 2.708c.104.16.265.16.368 0l1.584-8.698a1.5 1.5 0 01-.832-.618l-.02-.03a1.405 1.405 0 01-.066-.12l-.609-1.366h-.003Z\"},\"child\":[]}]})(props);\n};\nexport function SiWritedotas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.812 5.139l2.179 7.509a168.085 168.085 0 01.666 2.459h.025c.054-.372.145-.772.273-1.204l.353-1.176 1.05-3.442.213-.671c.062-.199.126-.382.192-.551.068-.167.131-.327.194-.478.062-.151.132-.301.213-.451v-.028l-1.569.105V5.139h5.169V6.88c-.364 0-.682.119-.956.358a3.608 3.608 0 00-.711.85 6.325 6.325 0 00-.493.984 22.78 22.78 0 00-.286.758l-3.096 8.997h-2.884L11.47 13.02c-.053-.142-.12-.345-.199-.606a46.941 46.941 0 01-.247-.85c-.083-.307-.173-.623-.265-.95-.092-.328-.179-.638-.259-.931h-.026c-.053.381-.14.809-.26 1.283-.119.474-.243.937-.372 1.388-.128.451-.248.859-.358 1.223-.111.364-.194.62-.246.771l-1.501 4.479h-2.7L1.742 9.392a27.83 27.83 0 01-.472-1.39 3.995 3.995 0 01-.113-.418l-.094-.425L0 7.212V5.139h6.526V6.88c-.382.027-.65.141-.806.345-.155.204-.231.466-.231.784-.009.151.001.311.032.478a4.9 4.9 0 00.128.519l.916 3.322c.107.399.21.818.312 1.256.101.438.184.884.247 1.336h.026l.134-.598a39.977 39.977 0 01.331-1.429c.072-.278.155-.587.254-.922l1.993-6.832h2.95zM24 16.628a2.232 2.232 0 11-4.464 0 2.232 2.232 0 114.464 0\"},\"child\":[]}]})(props);\n};\nexport function SiWwe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 1.047L15.67 18.08l-3.474-8.53-3.474 8.53L.393 1.048l3.228 8.977 3.286 8.5C3.874 19.334 1.332 20.46 0 21.75c.443-.168 3.47-1.24 7.409-1.927l1.21 3.129 1.552-3.518a36.769 36.769 0 0 1 3.96-.204l1.644 3.722 1.4-3.62c2.132.145 3.861.426 4.675.692 0 0 .92-1.962 1.338-2.866a54.838 54.838 0 0 0-5.138-.092l2.722-7.042zm-21.84.026L8.64 13.86l3.568-9.155 3.567 9.155 6.481-12.788-6.433 8.452-3.615-8.22-3.615 8.22zm10.036 13.776l1.115 2.523a42.482 42.482 0 0 0-2.363.306Z\"},\"child\":[]}]})(props);\n};\nexport function SiWwise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12c0 .7644-.6193 1.3846-1.3846 1.3846-.7645 0-1.3847-.6202-1.3847-1.3846 0-.765.6202-1.3846 1.3847-1.3846C5.3807 10.6154 6 11.2351 6 12m7.8462-5.5384c0 1.0191-.826 1.8461-1.8463 1.8461-1.0188 0-1.8461-.827-1.8461-1.8461 0-1.0197.8273-1.8462 1.8461-1.8462 1.0203 0 1.8463.8265 1.8463 1.8462M1.8462 12a.923.923 0 0 1-.9231.923C.4143 12.923 0 12.5096 0 12c0-.5102.4142-.923.923-.923.51 0 .923.4128.923.923M24 12c0 .5095-.4133.923-.923.923-.5089 0-.9231-.4135-.9231-.923 0-.5102.4142-.923.923-.923.5098 0 .923.4128.923.923m-3.2306 0c0 .7644-.6195 1.3846-1.3847 1.3846C18.6203 13.3846 18 12.7644 18 12c0-.765.6203-1.3846 1.3846-1.3846.7652 0 1.3847.6197 1.3847 1.3846m-8.2252 2.8356c.0034.535.2557 1.0139.6581 1.3139.4006.3332.6584.8409.6584 1.4048 0 1.0139-.8192 1.8303-1.8295 1.8303H12c-1.0116 0-1.8317-.8164-1.8317-1.8303 0-.564.2596-1.0716.6606-1.4048.3999-.3.6615-.7788.6577-1.314v-.1283c-.004-.5395-.2578-1.0183-.6577-1.3154-.401-.336-.6606-.8423-.6606-1.4077 0-1.0125.8201-1.8302 1.8317-1.8302h.0312c1.0103 0 1.8295.8177 1.8295 1.8302 0 .5654-.2578 1.0717-.6584 1.4077a1.6166 1.6166 0 0 0-.658 1.3154v.1284m3.6922-2.7692c.0033.535.2557 1.0139.658 1.3139.4007.3332.6585.8409.6585 1.4048 0 1.0139-.8192 1.8302-1.8295 1.8302h-.031c-1.0118 0-1.8318-.8163-1.8318-1.8302 0-.564.2597-1.0716.6606-1.4048.3999-.3.6614-.7788.6577-1.314v-.1283c-.004-.5395-.2578-1.0183-.6577-1.3154-.401-.336-.6606-.8423-.6606-1.4077 0-1.0125.82-1.8302 1.8318-1.8302h.031c1.0103 0 1.8295.8177 1.8295 1.8302 0 .5654-.2578 1.0717-.6584 1.4077a1.6166 1.6166 0 0 0-.658 1.3154v.1284m-7.3848 0c.0035.535.2559 1.0139.6582 1.3139a1.828 1.828 0 0 1 .6583 1.4048c0 1.0139-.8193 1.8302-1.8294 1.8302h-.0312c-1.0116 0-1.8317-.8163-1.8317-1.8302 0-.564.2596-1.0716.6606-1.4048.3999-.3.6615-.7788.6577-1.314v-.1283c-.004-.5395-.2578-1.0183-.6577-1.3154-.401-.336-.6606-.8423-.6606-1.4077 0-1.0125.8201-1.8302 1.8317-1.8302h.0312c1.0101 0 1.8294.8177 1.8294 1.8302 0 .5654-.2578 1.0717-.6583 1.4077a1.617 1.617 0 0 0-.6582 1.3154v.1284\"},\"child\":[]}]})(props);\n};\nexport function SiWykop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.707 17.486 1.406-.68-1.406.68.69 1.384 1.407-.68-.69-1.384Zm-.69-1.384 1.407-.68-1.407.68.691 1.384 1.406-.68-.69-1.384Zm-.691-1.384 1.406-.677-1.406.677.69 1.385 1.407-.681-.691-1.381Zm-.69-1.384 1.406-.678-1.406.678.69 1.384 1.407-.677-.69-1.385Zm-.69-1.381 1.406-.68-1.406.68.69 1.383 1.406-.679-.69-1.383Zm-.692-1.384 1.406-.68-1.406.68.69 1.384 1.407-.68-.69-1.384Zm6.981 3.494 1.407-.68-1.407.68.69 1.384 1.407-.68-.69-1.384zm-.69-1.382 1.406-.68-1.406.68.69 1.384 1.407-.68-.691-1.383zm-.691-1.383 1.406-.68-1.406.68.69 1.383 1.407-.68-.69-1.384Zm-.69-1.382 1.406-.68-1.407.68.691 1.383 1.406-.68-.69-1.383Zm-.691-1.384 1.406-.68-1.406.68.69 1.384 1.407-.68-.69-1.383Zm6.98 3.495 1.406-.681-1.406.68.69 1.384 1.407-.68-.69-1.384zm-.69-1.385 1.406-.68-1.407.68.691 1.385 1.406-.681-.69-1.385zm-.691-1.382 1.406-.68-1.406.68.69 1.383 1.407-.68-.69-1.383Zm-.69-1.385 1.406-.68-1.407.68.69 1.385 1.407-.68-.69-1.384Zm-.691-1.382 1.406-.68-1.406.68.69 1.384 1.407-.68-.691-1.385ZM5.66 9.89l1.405-.68-1.406.68.69 1.385 1.407-.68-.69-1.384Zm.69 1.385 1.406-.68-1.406.68.69 1.383 1.407-.678-.69-1.385zm.69 1.382 1.407-.678-1.407.678.691 1.385 1.406-.681-.69-1.383zm.691 1.385 1.406-.681-1.406.68.69 1.383 1.407-.679-.69-1.384Zm.69 1.38 1.407-.678-1.406.679.69 1.384 1.406-.68-.69-1.384Zm.691 1.385 1.406-.68-1.406.68.69 1.384 1.407-.681-.69-1.383zm1.406-.68 1.407-.679-1.407.68.691 1.383 1.406-.678-.69-1.385zm1.407-.679 1.406-.68-1.406.68.69 1.385 1.407-.681-.69-1.385zM9.879 7.853l1.406-.681-1.406.68.69 1.384 1.407-.68-.69-1.384Zm.69 1.382 1.407-.68-1.406.68.69 1.383 1.407-.68-.691-1.383Zm.69 1.383 1.407-.68-1.407.68.69 1.384 1.407-.68-.69-1.383zm.692 1.384 1.406-.681-1.406.68.69 1.384 1.407-.679-.69-1.384zm.69 1.382 1.406-.679-1.407.679.691 1.383 1.406-.678-.69-1.384zm.69 1.383 1.406-.678-1.406.678.69 1.385 1.407-.679-.69-1.384zm1.406-.678 1.407-.679-1.407.679.69 1.384 1.407-.68-.69-1.384zm1.407-.679 1.406-.68-1.406.68.69 1.384 1.407-.68-.691-1.384zm1.405-.68 1.406-.68-1.406.68.69 1.384 1.407-.681-.69-1.383zm-.69-1.384 1.407-.68-1.407.68.69 1.384 1.407-.68-.69-1.384zm-.69-1.385 1.406-.677-1.406.677.69 1.385 1.407-.68-.691-1.383Zm-.69-1.38 1.405-.68-1.406.68.69 1.383 1.407-.679-.69-1.383Zm-.691-1.385 1.406-.678-1.406.678.69 1.384 1.406-.678-.69-1.384Zm-.691-1.384 1.406-.677-1.406.677.69 1.385 1.407-.678-.69-1.384Zm7.25 5.263c0-1.166-.044-2.17-.132-3.017-.089-.847-.255-1.51-.498-1.988-.31-.937-1.005-1.532-2.088-1.785-.862-.23-2.529-.342-5.003-.342h-3.182c-2.474 0-4.152.114-5.036.342-1.06.252-1.778.847-2.154 1.785-.42 1.006-.629 2.673-.629 5.005v1.887c0 2.333.21 4 .63 5.006.397.916 1.126 1.498 2.186 1.75.862.23 2.529.342 5.003.342h3.182c2.452 0 4.108-.114 4.97-.342 1.083-.25 1.79-.834 2.121-1.75.243-.48.41-1.143.498-1.987a29.54 29.54 0 0 0 .133-3.02zm2.456 5.628c-.134 1.074-.354 1.967-.663 2.676a5.589 5.589 0 0 1-1.326 1.765 5.16 5.16 0 0 1-1.955 1.081v.034c-.642.205-1.471.367-2.487.48-1.017.115-2.254.172-3.713.172h-3.215c-3.36 0-5.692-.321-6.995-.96-1.459-.664-2.443-1.888-2.952-3.672-.176-.664-.303-1.59-.381-2.78C.038 14.31 0 12.835 0 11.074 0 9.634.061 8.375.182 7.3.303 6.225.52 5.344.828 4.658a5.715 5.715 0 0 1 1.31-1.766c.542-.492 1.21-.876 2.005-1.15h.033c1.238-.434 3.327-.653 6.266-.653h3.215c3.227 0 5.547.333 6.962.996.707.319 1.31.79 1.807 1.407.497.616.867 1.383 1.11 2.297.133.64.244 1.556.332 2.744.088 1.19.132 2.665.132 4.427.001 1.421-.065 2.666-.197 3.743\"},\"child\":[]}]})(props);\n};\nexport function SiWyze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.475 13.171 7.3 9.469h.974L5.779 14.53h-.608l-1.034-2.082-1.034 2.082h-.609L0 9.469h.973l1.826 3.673.851-1.706-.973-1.967h.973l1.825 3.702Zm8.457-3.702-2.251 3.442v1.591h-.882v-1.591L8.517 9.469h1.034l1.673 2.545 1.673-2.545h1.035Zm5.444 4.194H24v.867h-4.624v-.867Zm0-4.194H24v.868h-4.624v-.868Zm0 2.083H24v.867h-4.624v-.867Zm-.273-2.083-3.438 4.223h3.133v.838H13.84l3.407-4.222h-3.042v-.839h4.898Z\"},\"child\":[]}]})(props);\n};\nexport function SiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z\"},\"child\":[]}]})(props);\n};\nexport function SiXampp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.792,11.923c0.113,0.043,0.226,0.079,0.334,0.128c0.45,0.203,0.715,0.553,0.748,1.044 c0.041,0.634,0.044,1.271,0.002,1.905c-0.049,0.732-0.725,1.292-1.483,1.271c-0.735-0.021-1.369-0.62-1.397-1.341 c-0.017-0.441-0.003-0.884-0.006-1.326c-0.001-0.239-0.003-0.242-0.245-0.243c-1.363-0.001-2.726,0.008-4.089-0.003 c-0.888-0.007-1.421,0.482-1.471,1.46c-0.019,0.38-0.1,0.727-0.357,1.018c-0.397,0.451-0.898,0.601-1.472,0.466 c-0.554-0.131-0.867-0.522-1.035-1.048c-0.117-0.367-0.056-0.737,0.012-1.094c0.341-1.797,1.366-3.006,3.125-3.555 c0.357-0.112,0.731-0.166,1.105-0.166c0.94,0.001,1.881,0.001,2.821-0.001c0.128,0,0.257-0.012,0.385-0.021 c0.702-0.051,1.166-0.511,1.22-1.352c0.004-0.064,0-0.129,0.001-0.193c0.011-0.788,0.605-1.396,1.393-1.425 c0.787-0.029,1.438,0.527,1.493,1.318c0.076,1.083-0.265,2.046-0.913,2.907C16.903,11.751,16.819,11.816,16.792,11.923z M8.249,10.436c-0.258-0.008-0.571,0.018-0.882-0.035c-0.536-0.09-0.876-0.39-1.02-0.916C6.19,8.912,6.25,8.388,6.698,7.96 C7.154,7.526,7.694,7.4,8.285,7.645c0.52,0.216,0.859,0.731,0.89,1.293C9.2,9.382,9.178,9.828,9.182,10.272 c0.001,0.116-0.043,0.167-0.161,0.165C8.781,10.434,8.542,10.436,8.249,10.436z M21.682,0H2.318C1.102,0,0.116,0.986,0.116,2.202 v19.317c0,1.37,1.111,2.481,2.481,2.481h18.807c1.37,0,2.481-1.111,2.481-2.481V2.202C23.884,0.986,22.898,0,21.682,0z M20.125,12.473c0.519,0.804,0.733,1.69,0.677,2.657c-0.108,1.886-1.413,3.474-3.25,3.916c-2.585,0.623-4.566-0.923-5.233-2.794 c-0.109-0.304-0.16-0.622-0.224-0.985c-0.068,0.414-0.115,0.789-0.264,1.134c-0.697,1.617-1.884,2.603-3.665,2.799 c-2.104,0.232-4.048-1.067-4.632-3.084c-0.25-0.863-0.175-1.747-0.068-2.625c0.08-0.653,0.321-1.268,0.632-1.848 c0.057-0.106,0.057-0.184-0.01-0.285c-0.561-0.845-0.779-1.777-0.7-2.784C3.43,8.035,3.56,7.52,3.805,7.038 C4.52,5.626,6.09,4.427,8.193,4.626c1.849,0.175,3.562,1.77,3.83,3.564c0.013,0.09,0.039,0.178,0.068,0.311 c0.044-0.241,0.076-0.439,0.118-0.636c0.344-1.63,1.94-3.335,4.201-3.357c2.292-0.021,3.99,1.776,4.31,3.446 c0.17,0.888,0.089,1.776-0.103,2.663c-0.112,0.517-0.31,1.008-0.524,1.492C20.034,12.245,20.043,12.345,20.125,12.473z\"},\"child\":[]}]})(props);\n};\nexport function SiXcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.06 5.3327c.4517-.1936.7744-.2581 1.097-.1936.5163.1291.7744.5163.968.7098.1936.3872.9034.7744 1.2261.8389.2581.0645.7098-.6453 1.0325-1.2906.3227-.5808.5163-1.3552.4517-1.5488-.0645-.1936-.968-.5808-1.1616-.5808-.1291 0-.3872.1291-.8389.0645-.4517-.0645-.9034-.5808-1.1616-.968-.4517-.6453-1.097-1.0325-1.6778-1.3552-.6453-.3227-1.3552-.5163-2.065-.6453-1.0325-.2581-2.065-.4517-3.0975-.3227-.5808.0645-1.2906.1291-1.8069.3227-.0645 0-.1936.1936-.0645.1936s.5808.0645.5808.0645-.5807.1292-.5807.2583c0 .1291.0645.1291.1291.1291.0645 0 1.4842-.0645 2.065 0 .6453.1291 1.3552.4517 1.8069 1.2261.7744 1.4197.4517 2.7749.2581 3.2266-.968 2.1295-8.6472 15.2294-9.0344 16.1328-.3873.9034-.5163 1.4842.5807 2.065s1.6778.3227 2.0005-.0645c.3872-.5163 7.0339-17.1654 9.2925-18.2624zm-3.6138 8.7117h1.5488c1.0325 0 1.2261.5163 1.2261.7098.0645.5163-.1936 1.1616-1.2261 1.1616h-.968l.7744 1.2906c.4517.7744.2581 1.1616 0 1.4197-.3872.3872-1.2261.3872-1.6778-.4517l-.9034-1.5488c-.6453 1.4197-1.2906 2.9684-2.065 4.7753h4.0009c1.9359 0 3.5492-1.6133 3.5492-3.5492V6.5588c-.0645-.1291-.1936-.0645-.2581 0-.3872.4517-1.4842 2.0004-4.001 7.4856zm-9.8087 8.0019h-.3227c-2.3231 0-4.1945-1.8714-4.1945-4.1945V7.0105c0-2.3231 1.8714-4.1945 4.1945-4.1945h9.3571c-.1936-.1936-.968-.5163-1.7423-.4517-.3227 0-.968.1291-1.3552-.1291-.3872-.3227-.3227-.5163-.9034-.5163H4.9277c-2.6458 0-4.7753 2.1295-4.7753 4.7753v11.7447c0 2.6458 2.1295 4.7753 4.4527 4.7108.6452 0 .8388-.5162 1.0324-.9034zM20.4152 6.9459v10.9058c0 2.3231-1.8714 4.1945-4.1945 4.1945H11.897s-.3872 1.0325.8389 1.0325h3.8719c2.6458 0 4.7753-2.1295 4.7753-4.7753V8.8173c.0646-.9034-.7098-1.4842-.9679-1.8714zm-18.5851.0646v10.8413c0 1.9359 1.6133 3.5492 3.5492 3.5492h.5808c0-.0645.7744-1.4197 2.4522-4.2591.1936-.3872.4517-.7744.7098-1.2261H4.4114c-.5808 0-.9034-.3872-.968-.7098-.1291-.5163.1936-1.1616.9034-1.1616h2.3877l3.033-5.2916s-.7098-1.2906-.9034-1.6133c-.2582-.4517-.1291-.9034.129-1.1615.3872-.3872 1.0325-.5808 1.6778.4517l.2581.3872.2581-.3872c.5808-.8389.968-.7744 1.2906-.7098.5163.1291.8389.7098.3872 1.6133L8.864 14.0444h1.3552c.4517-.7744.9034-1.5488 1.3552-2.3877-.0645-.3227-.1291-.7098-.0645-1.0325.0645-.5163.3227-.968.6453-1.3552l.3872.6453c1.2261-2.1295 2.1295-3.9364 2.3877-4.6463.1291-.3872.3227-1.1616.1291-1.8069H5.3794c-2.0005.0001-3.5493 1.6134-3.5493 3.5494zM4.605 17.7872c0-.0645.7744-1.4197.7744-1.4197 1.2261-.3227 1.8069.4517 1.8714.5163 0 0-.8389 1.4842-1.097 1.7423s-.5808.3227-.9034.2581c-.5164-.129-.839-.6453-.6454-1.097z\"},\"child\":[]}]})(props);\n};\nexport function SiXdadevelopers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.84 3.052V0h7.843v17.583H13.84v-3.024h4.591V3.052zM5.569 14.53V3.024h4.592V0H2.318v17.583H6.98L10.16 24v-9.483z\"},\"child\":[]}]})(props);\n};\nexport function SiXdotorg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.94 1.9l-9.092 11.874 4.598 6.392a14.29 14.29 0 0 1-2.56.228c-2.387 0-4.582-.577-6.316-1.542l6.556-8.627-6.031-8.311L2.23 1.91 9.8 12.48l-4.332 5.66c-1.692-1.266-2.729-2.965-2.729-4.832 0-2.13 1.348-4.042 3.48-5.342l-.655-.999C2.22 8.386 0 10.876 0 13.71c0 2.432 1.635 4.61 4.212 6.075l-1.765 2.307h1.661l1.299-1.709c1.892.83 4.158 1.314 6.592 1.314a17.43 17.43 0 0 0 4.188-.501l.65.903h4.865l-1.729-2.422C22.443 18.214 24 16.082 24 13.71c0-2.94-2.39-5.512-5.948-6.9l-.217.311c3.099 1.214 5.195 3.531 5.195 6.188 0 2.202-1.44 4.17-3.698 5.47l-5.153-7.22 7.382-9.658zM12 5.755c-.586 0-1.212.046-1.775.1 1.004 1.309 1.836 2.417 2.795 3.676-.538-1.157-1.644-2.268-1.261-2.839.378-.565 1.075-.47 1.128-.47 1.118 0 2.194.127 3.2.36l.235-.324C14.98 5.91 13.523 5.754 12 5.754z\"},\"child\":[]}]})(props);\n};\nexport function SiXendit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.781 2.743H7.965l-5.341 9.264 5.341 9.263-1.312 2.266L0 12.007 6.653.464h6.454l-1.326 2.279Zm-5.128 2.28 1.312-2.28L9.873 6.03 8.561 8.296 6.653 5.023Zm9.382-2.28 1.312 2.28L7.965 21.27l-1.312-2.279 9.382-16.248Zm-5.128 20.793 1.298-2.279h3.83L14.1 17.931l1.312-2.267 1.926 3.337 4.038-6.994-5.341-9.264L17.347.464 24 12.007l-6.653 11.529h-6.44Z\"},\"child\":[]}]})(props);\n};\nexport function SiXero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm6.585 14.655c-1.485 0-2.69-1.206-2.69-2.689 0-1.485 1.207-2.691 2.69-2.691 1.485 0 2.69 1.207 2.69 2.691s-1.207 2.689-2.69 2.689zM7.53 14.644c-.099 0-.192-.041-.267-.116l-2.043-2.04-2.052 2.047c-.069.068-.16.108-.258.108-.202 0-.368-.166-.368-.368 0-.099.04-.191.111-.263l2.04-2.05-2.038-2.047c-.075-.069-.113-.162-.113-.261 0-.203.166-.366.368-.366.098 0 .188.037.258.105l2.055 2.048 2.048-2.045c.069-.071.162-.108.26-.108.211 0 .375.165.375.366 0 .098-.029.188-.104.258l-2.056 2.055 2.055 2.051c.068.069.104.16.104.258 0 .202-.165.368-.365.368h-.01zm8.017-4.591c-.796.101-.882.476-.882 1.404v2.787c0 .202-.165.366-.366.366-.203 0-.367-.165-.368-.366v-4.53c0-.204.16-.366.362-.366.166 0 .316.125.346.289.27-.209.6-.317.93-.317h.105c.195 0 .359.165.359.368 0 .201-.164.352-.375.359 0 0-.09 0-.164.008l.053-.002zm-3.091 2.205H8.625c0 .019.003.037.006.057.02.105.045.211.083.31.194.531.765 1.275 1.829 1.29.33-.003.631-.086.9-.229.21-.12.391-.271.525-.428.045-.058.09-.112.12-.168.18-.229.405-.186.54-.083.164.135.18.391.045.57l-.016.016c-.21.27-.435.495-.689.66-.255.164-.525.284-.811.345-.33.09-.645.104-.975.06-1.095-.135-2.01-.93-2.28-2.01-.06-.21-.09-.42-.09-.645 0-.855.421-1.695 1.125-2.205.885-.615 2.085-.66 3-.075.63.405 1.035 1.021 1.185 1.771.075.419-.21.794-.734.81l.068-.046zm6.129-2.223c-1.064 0-1.931.865-1.931 1.931 0 1.064.866 1.931 1.931 1.931s1.931-.867 1.931-1.931c0-1.065-.866-1.933-1.931-1.933v.002zm0 2.595c-.367 0-.666-.297-.666-.666 0-.367.3-.665.666-.665.367 0 .667.299.667.665 0 .369-.3.667-.667.666zm-8.04-2.603c-.91 0-1.672.623-1.886 1.466v.03h3.776c-.203-.855-.973-1.494-1.891-1.494v-.002z\"},\"child\":[]}]})(props);\n};\nexport function SiXfce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.121 5.7271a.104.104 0 0 0-.0344.0017v-.0003l-.0154.0024-.0138.0076a.1156.1156 0 0 0-.0486.053.1147.1147 0 0 0-.0065.067c.0073.0362.0229.0552.0392.0754.0326.0403.0783.0798.1424.1286.1282.0976.3274.2256.5973.379.5396.3065 1.3597.7126 2.4276 1.1523 1.0533.4336 2.3185 1.2056 3.2863 1.9117.4838.353.8938.6902 1.165.9572.1356.1336.2365.2504.2924.337.028.0433.0443.0791.0498.1003.0027.0106.0029.0158.003.0176-.6994.9875-1.1131 2.187-.8297 4.1959l.0003.0003v.0002c.0055.0378-.0317.1266-.1203.2349-.0886.1082-.2168.2333-.3462.3656-.1294.1324-.2604.2723-.3573.4192-.0968.1469-.1629.3058-.138.4716v.0005l.0002.0005c.0122.074.062.1403.1251.1684.0632.0281.1297.0276.1987.0184.1379-.0185.295-.0788.4534-.1449.1584-.066.3168-.1387.4379-.1832a.7913.7913 0 0 1 .1308-.0376c-.0002.021.0023.0308-.0032.0646-.0102.0611-.0291.1386-.0536.2251-.0488.173-.1194.3824-.1843.5878-.0648.2054-.1239.4059-.15.57-.013.082-.0188.155-.008.2219.0107.0669.0489.1414.1224.1683l.0027.0011.0027.0009c.0509.015.0835.0012.1164-.0117a.6625.6625 0 0 0 .1038-.054c.0748-.046.1643-.1118.2657-.1916.2027-.1596.4515-.3752.697-.5916.2455-.2164.4874-.4336.6734-.5937.093-.08.1723-.146.2292-.1892a.8072.8072 0 0 1 .0624-.044c1.4976.4462 3.2026.5014 4.5489.4407a20.9787 20.9787 0 0 0 1.6869-.144c.2111-.027.3812-.0525.5013-.0722.06-.0099.1076-.0183.1419-.0249a1.1699 1.1699 0 0 0 .033-.0068l.0002.0003c.0194.0085.049.022.087.0392l.3181.1443c.265.12.6217.28.9867.4357.365.1556.7378.3069 1.0378.4102.15.0517.2812.0913.3875.1138.0531.0112.1.0184.1427.0197.0426.0012.0828.001.1273-.0281l.0095-.0062.0078-.0084c.1755-.19.183-.4255.0992-.6327-.0839-.2072-.2455-.4023-.4127-.5864-.1672-.1841-.3415-.3571-.45-.4989-.0542-.0709-.0909-.1342-.1043-.1783-.0118-.039-.0065-.053.0057-.0711a.2403.2403 0 0 1 .0505 0c.0583.0053.1458.0236.2484.0508.2052.0544.4736.1441.7421.2324.2685.0883.5367.1751.7497.2251.1065.025.1982.0413.2764.0422.0392.0004.0754-.0023.112-.0152.0365-.0128.0778-.0424.0956-.0875l.0008-.0022.0008-.0024c.0502-.1516-.0056-.3138-.0951-.4762-.0895-.1624-.2203-.3305-.3594-.4927-.1393-.1621-.287-.3178-.4093-.449-.1217-.1307-.2194-.2425-.2494-.2922-.062-.1099-.1004-.2568-.083-.3986.0174-.142.0849-.2801.2475-.3935.032-.0223.1324-.0749.2681-.14.1358-.0651.311-.1464.5108-.24.3995-.1873.8972-.425 1.3802-.6902.4829-.2653.9507-.5574 1.2937-.8589.3427-.3013.5755-.6187.5291-.948-.0722-.5354-.425-.9433-.8964-1.2494-.4714-.3061-1.0654-.5177-1.6504-.6716-.585-.1538-1.1615-.2492-1.5953-.3167-.217-.0337-.3984-.0603-.5251-.0835a1.5818 1.5818 0 0 1-.144-.0316h-.0003a4.2196 4.2196 0 0 1-.0003-.0878c.0006-.0827.0018-.1971 0-.3308-.0035-.2674-.0186-.612-.0746-.9416-.056-.3297-.1499-.6458-.3319-.8597-.1817-.2136-.4698-.3041-.8207-.1656-.2319.0867-.3625.2882-.4175.5189-.0551.231-.0452.4976-.0095.7594.0357.2618.0984.5187.155.7248.0568.206.1093.3695.1187.4113v.0003c.006.026.0051.0173-.0049.0254-.01.008-.0423.021-.0832.0246a.4074.4074 0 0 1-.126-.0098c-.0373-.0092-.0626-.0292-.0575-.023-.0078-.0095-.0375-.0606-.0695-.1286-.0319-.068-.0701-.1557-.1137-.2548-.087-.1982-.195-.4413-.3197-.67-.1247-.2286-.2647-.4431-.4283-.587-.0818-.0719-.171-.1269-.2695-.151a.4444.4444 0 0 0-.3064.0362l-.0016.0008-.0016.0014c-.2555.1408-.3929.3651-.449.607-.056.2417-.0374.502.0033.7437.0407.2416.1046.4659.1454.6286.0204.0813.0347.1484.0381.1867.0011.0127.0005.0142.0003.0181-.1823.114-.275.2937-.346.4789-.0744.194-.1365.397-.2634.5732l-.0006.0005-.0003.0006c-.0384.055-.1194.1045-.2464.1375-.127.033-.2952.049-.4908.0495-.3912.0008-.891-.059-1.412-.1419-1.042-.1656-2.1617-.4221-2.7331-.4567-.4299-.0254-.8375.1359-1.1459.2875-.1542.0759-.2843.15-.3764.1979a.8919.8919 0 0 1-.0957.0443c-.9968-.9934-3.013-2.6882-5.2499-3.2603-.6133-.1664-1.3873-.4945-2.015-.7794-.3138-.1425-.5914-.2741-.7958-.3697a11.373 11.373 0 0 0-.2481-.1138 1.4159 1.4159 0 0 0-.0776-.0316.3291.3291 0 0 0-.0305-.01C.132 5.7309.128 5.7286.121 5.7274zm22.6994 1.8353a.0621.0621 0 0 0-.0182.0046c-.0199.0086-.0256.0186-.0313.0268a.2303.2303 0 0 0-.026.0537c-.0158.0423-.033.1017-.0516.1754-.0371.1474-.0786.3496-.1137.5565-.0352.2068-.0639.4179-.0744.5845-.0052.0834-.0062.1552-.0002.2125a.3184.3184 0 0 0 .016.0764.106.106 0 0 0 .0475.0587.0745.0745 0 0 0 .0435.013.0789.0789 0 0 0 .043-.0176c.0206-.0163.031-.0348.0418-.0565.0218-.0434.0407-.1023.0598-.1757.0382-.1468.0746-.3488.1035-.5567.0289-.2078.0501-.421.0567-.5897.0033-.0843.0031-.157-.0022-.2145a.4137.4137 0 0 0-.0127-.0757.1082.1082 0 0 0-.036-.0587c-.0063-.006-.013-.0127-.0242-.0156a.061.061 0 0 0-.0214-.0014zm1.111.2114a.104.104 0 0 0-.0428.0075c-.0233.0095-.0431.024-.0645.0422-.0429.0365-.0908.0899-.1444.157-.107.1342-.2336.3218-.35.5178-.1162.196-.222.3999-.2864.5686-.0322.0844-.0545.1597-.0616.2246-.0071.0647-.0006.1294.051.1678.0286.0211.0674.015.0898.0035.0225-.0115.0403-.0275.0597-.0475.0388-.04.0812-.0975.1284-.1687.0944-.1424.2056-.3388.311-.5402a9.6877 9.6877 0 0 0 .2754-.5673 2.732 2.732 0 0 0 .0806-.2002.522.522 0 0 0 .0191-.0673A.1276.1276 0 0 0 24 7.8419c-.0002-.0112.0007-.0282-.0191-.0479l-.002-.0019-.0015-.0016a.0757.0757 0 0 0-.046-.0167zM19.5691 9.629c.1818 0 .3346.1698.3346.3876 0 .2177-.1528.3872-.3346.3872-.1817 0-.3345-.1695-.3345-.3872 0-.2178.1528-.3876.3345-.3876zm-.8823.3395c.0791.2909.1785.5128.35.6475.1629.128.3965.1727.6894.1813-.1803.129-.3447.1912-.4803.1751-.168-.0198-.3091-.1247-.414-.2686s-.1708-.3257-.1867-.483c-.011-.1075.0095-.1888.0416-.2523zm2.0906 1.7806c.0534-.0043.083.0061.0911.0138l.0084.0081.011.0041c.0068.0024.0032.0004.0055.002-.0108.016-.0496.0531-.1124.0929-.1312.083-.3492.1845-.5792.2778-.23.0933-.473.1791-.6578.2349-.059.0178-.098.0261-.1424.037.029-.0212.0513-.0392.0894-.0646a6.3595 6.3595 0 0 1 .5192-.306c.1948-.103.3971-.1968.5602-.2513.0816-.0272.1536-.0443.207-.0486zm.2406.4714a.0686.0686 0 0 1 .0248.0022c.0265.0305.0393.0587.0349.0964-.005.0422-.0289.0957-.0708.1538-.084.1161-.2354.2477-.3984.3667-.163.1191-.3378.2268-.4702.3027-.0483.0277-.0822.0454-.1165.0635.0153-.0296.029-.0579.0562-.0983.0782-.1163.1994-.266.3319-.409.1325-.1428.2771-.2796.4005-.3702.0617-.0453.1184-.0788.1624-.0962a.1569.1569 0 0 1 .0451-.0116z\"},\"child\":[]}]})(props);\n};\nexport function SiXiaohongshu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.405 9.879c.002.016.01.02.07.019h.725a.797.797 0 0 0 .78-.972.794.794 0 0 0-.884-.618.795.795 0 0 0-.692.794c0 .101-.002.666.001.777zm-11.509 4.808c-.203.001-1.353.004-1.685.003a2.528 2.528 0 0 1-.766-.126.025.025 0 0 0-.03.014L7.7 16.127a.025.025 0 0 0 .01.032c.111.06.336.124.495.124.66.01 1.32.002 1.981 0 .01 0 .02-.006.023-.015l.712-1.545a.025.025 0 0 0-.024-.036zM.477 9.91c-.071 0-.076.002-.076.01a.834.834 0 0 0-.01.08c-.027.397-.038.495-.234 3.06-.012.24-.034.389-.135.607-.026.057-.033.042.003.112.046.092.681 1.523.787 1.74.008.015.011.02.017.02.008 0 .033-.026.047-.044.147-.187.268-.391.371-.606.306-.635.44-1.325.486-1.706.014-.11.021-.22.03-.33l.204-2.616.022-.293c.003-.029 0-.033-.03-.034zm7.203 3.757a1.427 1.427 0 0 1-.135-.607c-.004-.084-.031-.39-.235-3.06a.443.443 0 0 0-.01-.082c-.004-.011-.052-.008-.076-.008h-1.48c-.03.001-.034.005-.03.034l.021.293c.076.982.153 1.964.233 2.946.05.4.186 1.085.487 1.706.103.215.223.419.37.606.015.018.037.051.048.049.02-.003.742-1.642.804-1.765.036-.07.03-.055.003-.112zm3.861-.913h-.872a.126.126 0 0 1-.116-.178l1.178-2.625a.025.025 0 0 0-.023-.035l-1.318-.003a.148.148 0 0 1-.135-.21l.876-1.954a.025.025 0 0 0-.023-.035h-1.56c-.01 0-.02.006-.024.015l-.926 2.068c-.085.169-.314.634-.399.938a.534.534 0 0 0-.02.191.46.46 0 0 0 .23.378.981.981 0 0 0 .46.119h.59c.041 0-.688 1.482-.834 1.972a.53.53 0 0 0-.023.172.465.465 0 0 0 .23.398c.15.092.342.12.475.12l1.66-.001c.01 0 .02-.006.023-.015l.575-1.28a.025.025 0 0 0-.024-.035zm-6.93-4.937H3.1a.032.032 0 0 0-.034.033c0 1.048-.01 2.795-.01 6.829 0 .288-.269.262-.28.262h-.74c-.04.001-.044.004-.04.047.001.037.465 1.064.555 1.263.01.02.03.033.051.033.157.003.767.009.938-.014.153-.02.3-.06.438-.132.3-.156.49-.419.595-.765.052-.172.075-.353.075-.533.002-2.33 0-4.66-.007-6.991a.032.032 0 0 0-.032-.032zm11.784 6.896c0-.014-.01-.021-.024-.022h-1.465c-.048-.001-.049-.002-.05-.049v-4.66c0-.072-.005-.07.07-.07h.863c.08 0 .075.004.075-.074V8.393c0-.082.006-.076-.08-.076h-3.5c-.064 0-.075-.006-.075.073v1.445c0 .083-.006.077.08.077h.854c.075 0 .07-.004.07.07v4.624c0 .095.008.084-.085.084-.37 0-1.11-.002-1.304 0-.048.001-.06.03-.06.03l-.697 1.519s-.014.025-.008.036c.006.01.013.008.058.008 1.748.003 3.495.002 5.243.002.03-.001.034-.006.035-.033v-1.539zm4.177-3.43c0 .013-.007.023-.02.024-.346.006-.692.004-1.037.004-.014-.002-.022-.01-.022-.024-.005-.434-.007-.869-.01-1.303 0-.072-.006-.071.07-.07l.733-.003c.041 0 .081.002.12.015.093.025.16.107.165.204.006.431.002 1.153.001 1.153zm2.67.244a1.953 1.953 0 0 0-.883-.222h-.18c-.04-.001-.04-.003-.042-.04V10.21c0-.132-.007-.263-.025-.394a1.823 1.823 0 0 0-.153-.53 1.533 1.533 0 0 0-.677-.71 2.167 2.167 0 0 0-1-.258c-.153-.003-.567 0-.72 0-.07 0-.068.004-.068-.065V7.76c0-.031-.01-.041-.046-.039H17.93s-.016 0-.023.007c-.006.006-.008.012-.008.023v.546c-.008.036-.057.015-.082.022h-.95c-.022.002-.028.008-.03.032v1.481c0 .09-.004.082.082.082h.913c.082 0 .072.128.072.128V11.19s.003.117-.06.117h-1.482c-.068 0-.06.082-.06.082v1.445s-.01.068.064.068h1.457c.082 0 .076-.006.076.079v3.225c0 .088-.007.081.082.081h1.43c.09 0 .082.007.082-.08v-3.27c0-.029.006-.035.033-.035l2.323-.003c.098 0 .191.02.28.061a.46.46 0 0 1 .274.407c.008.395.003.79.003 1.185 0 .259-.107.367-.33.367h-1.218c-.023.002-.029.008-.028.033.184.437.374.871.57 1.303a.045.045 0 0 0 .04.026c.17.005.34.002.51.003.15-.002.517.004.666-.01a2.03 2.03 0 0 0 .408-.075c.59-.18.975-.698.976-1.313v-1.981c0-.128-.01-.254-.034-.38 0 .078-.029-.641-.724-.998z\"},\"child\":[]}]})(props);\n};\nexport function SiXiaomi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C8.016 0 4.756.255 2.493 2.516.23 4.776 0 8.033 0 12.012c0 3.98.23 7.235 2.494 9.497C4.757 23.77 8.017 24 12 24c3.983 0 7.243-.23 9.506-2.491C23.77 19.247 24 15.99 24 12.012c0-3.984-.233-7.243-2.502-9.504C19.234.252 15.978 0 12 0zM4.906 7.405h5.624c1.47 0 3.007.068 3.764.827.746.746.827 2.233.83 3.676v4.54a.15.15 0 0 1-.152.147h-1.947a.15.15 0 0 1-.152-.148V11.83c-.002-.806-.048-1.634-.464-2.051-.358-.36-1.026-.441-1.72-.458H7.158a.15.15 0 0 0-.151.147v6.98a.15.15 0 0 1-.152.148H4.906a.15.15 0 0 1-.15-.148V7.554a.15.15 0 0 1 .15-.149zm12.131 0h1.949a.15.15 0 0 1 .15.15v8.892a.15.15 0 0 1-.15.148h-1.949a.15.15 0 0 1-.151-.148V7.554a.15.15 0 0 1 .151-.149zM8.92 10.948h2.046c.083 0 .15.066.15.147v5.352a.15.15 0 0 1-.15.148H8.92a.15.15 0 0 1-.152-.148v-5.352a.15.15 0 0 1 .152-.147Z\"},\"child\":[]}]})(props);\n};\nexport function SiXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z\"},\"child\":[]}]})(props);\n};\nexport function SiXml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.345 7.053c-.495.02-.44.725-.536 1.081-.157.583-.3 1.325-.347 1.926-.046.585-.008 1.127.066 1.719.058.46.191.767.07.89-.108.11-3.216 2.962-3.466 3.123-.26.169-.08.584.069.817.157.246.23.373.557.33.306-.042.405-.409.583-.606.228-.252 2.421-2.401 2.616-2.401.077.544.367 1.064.67 1.513.15.222.314.439.505.629.175.175.4.317.587.45.44.024.795-.301.35-.67-.17-.14-.735-.971-.927-1.43-.18-.43-.574-1.076-.146-1.428 1.494-1.23 3.72-2.262 4.247-2.313-.257 1.024-1.356 3.048-1.757 4.012-.14.333-.231.732-.185 1.094.055.434.383.774.587.806.417-.023.7-.387.946-.645.343-.357.634-.685.974-1.043.339-.356.672-.731.971-1.07.184-.207.674-.713.963-.713-.11.693-.716 1.552-.839 2.254-.125.716.531 1.596 1.217.956.623-.58 1.255-1.129 1.867-1.72.217-.208.175.037.224.242.05.208.176.91.275 1.1.18.346.496.592.897.598.362.006.727-.161.982-.414.19-.187.513-.699.154-.832-.23-.086-.217-.176-.495-.129-.172.029-.362.074-.507.179-.367-.003-.381-.89-.324-1.161.068-.327.207-.659.185-.998-.026-.418-.478-.69-.582-.72-.156-.076-.253.023-.458.212-.173.161-.363.332-.535.495-.34.322-.768.813-.942.813.305-.705.708-2.652-.643-2.48-.563.071-.95.377-1.394.71-.29.28-.683.641-.936.87-.236.216-.371.404-.496.404.132-.747 1.685-3.167.885-3.853-.158-.136-.313-.325-.515-.349a4.637 4.637 0 0 0-.833.19c-.565.18-2.78 1.28-4.19 2.289-.131.094-.214-.085-.231-.29-.087-1.058.199-2.19.496-3.188.208-.696-.557-1.225-.659-1.249zm18.177.874c-.166.364-.2.894-.248 1.319a24.307 24.307 0 0 0-1.246-.115c.238.296.691.588 1.056.724-.048.366-.434.67-.599 1.021.458-.127.676-.47.989-.821.362.22.791.627 1.26.636-.177-.376-.334-.695-.658-.966.269-.175.717-.362.924-.633-.345-.074-.718-.093-1.052-.015-.258-.284-.3-.772-.426-1.15zm-2.92.079c-.23.02-.613.49-.832.773-.807 1.039-1.542 3.15-1.661 3.542-.363 1.195-.502 2.672.28 3.722.456.612 1.258.66 2.041.434.405-.116.812-.406.95-.723.114-.263.174-.753-.404-.38-.224.145-.634.304-1.37.291-.247-.004-.651-.357-.76-.722-.192-.595-.11-1.393-.11-1.393.167-1.028.642-2.146 1.061-3.076.163-.36.658-1.259.842-1.546 0 0 .239-.373.131-.77-.031-.116-.091-.16-.168-.152zm3.072 2.976c-.12.264-.144.648-.18.956-.274-.031-.63-.066-.904-.083.172.215.501.426.766.525-.034.265-.314.486-.434.741.332-.092.49-.34.717-.596.263.16.575.456.914.462-.127-.273-.242-.504-.477-.701.195-.127.52-.262.67-.46a1.77 1.77 0 0 0-.763-.01c-.187-.206-.217-.56-.309-.834zm-1.123 2.422c-.083.183-.1.449-.125.662a12.6 12.6 0 0 0-.624-.058c.119.148.346.295.53.363-.025.184-.219.336-.301.513.23-.064.339-.236.496-.413.181.11.397.316.632.32-.088-.19-.168-.349-.33-.485.135-.087.36-.181.463-.317a1.22 1.22 0 0 0-.527-.008c-.13-.142-.151-.387-.214-.576z\"},\"child\":[]}]})(props);\n};\nexport function SiXmpp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m3.401 4.594 1.025.366 3.08.912c-.01.18-.016.361-.016.543 0 3.353 1.693 7.444 4.51 10.387 2.817-2.943 4.51-7.034 4.51-10.387 0-.182-.006-.363-.016-.543l3.08-.912 1.025-.366L24 3.276C23.854 8.978 19.146 14.9 13.502 18.17c1.302 1.028 2.778 1.81 4.388 2.215v.114l.004.001v.224a14.55 14.55 0 0 1-4.829-1.281A20.909 20.909 0 0 1 12 18.966c-.353.17-.708.329-1.065.477a14.55 14.55 0 0 1-4.829 1.281V20.5l.004-.001v-.113c1.61-.406 3.086-1.188 4.389-2.216C4.854 14.9.146 8.978 0 3.276l3.401 1.318Z\"},\"child\":[]}]})(props);\n};\nexport function SiXo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m1.629 5.698 4.275 5.367 4.274-5.367h1.613l-5.089 6.384 4.958 6.219h-1.613L5.903 13.1l-4.142 5.201H.131l4.957-6.219L0 5.698h1.629Zm16.48-.082C21.423 5.616 24 8.632 24 12c0 3.425-2.613 6.331-5.883 6.383-3.301-.1-5.804-2.878-5.911-6.164L12.202 12c0-3.436 2.637-6.384 5.907-6.384Zm0 1.268c-2.59 0-4.639 2.4-4.639 5.116.078 2.736 1.983 4.996 4.444 5.111l.195.004c2.583 0 4.623-2.406 4.623-5.115 0-2.752-2.086-5.116-4.623-5.116Zm.944 3.71c.507 0 1.1.662.702 1.473-.297.605-1.373 1.192-1.609 1.315l-.045.024s-1.32-.658-1.655-1.339c-.397-.811.196-1.473.703-1.473.56 0 .952.535.952.535s.391-.535.952-.535Z\"},\"child\":[]}]})(props);\n};\nexport function SiXrp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.52 2.955A3.521 3.521 0 001.996 6.48v2.558A2.12 2.12 0 010 11.157l.03.562-.03.561a2.12 2.12 0 011.996 2.121v2.948a3.69 3.69 0 003.68 3.696v-1.123a2.56 2.56 0 01-2.557-2.558v-2.963a3.239 3.239 0 00-1.42-2.682 3.26 3.26 0 001.42-2.682V6.48A2.412 2.412 0 015.52 4.078h.437V2.955zm12.538 0v1.123h.437a2.39 2.39 0 012.386 2.401v2.558a3.26 3.26 0 001.42 2.682 3.239 3.239 0 00-1.42 2.682v2.963a2.56 2.56 0 01-2.557 2.558v1.123a3.69 3.69 0 003.68-3.696V14.4A2.12 2.12 0 0124 12.281l-.03-.562.03-.561a2.12 2.12 0 01-1.996-2.12V6.478a3.518 3.518 0 00-3.509-3.524zM6.253 7.478l3.478 3.259a3.393 3.393 0 004.553 0l3.478-3.26h-1.669l-2.65 2.464a2.133 2.133 0 01-2.886 0L7.922 7.478zm5.606 4.884a3.36 3.36 0 00-2.128.886l-3.493 3.274h1.668l2.667-2.495a2.133 2.133 0 012.885 0l2.65 2.495h1.67l-3.494-3.274a3.36 3.36 0 00-2.425-.886z\"},\"child\":[]}]})(props);\n};\nexport function SiXsplit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 19.5c-.7-.1-2.5-.3-2.7-.3-.1 0-2.8 2.3-4 3.399l-.1.101c.1-1.3.3-2.601.399-3.9C11.7 18.1 5.9 17.4 0 16.7V1.5v-.2H.3C.9 1.4 22.9 3.9 24 4v15.5zm-2.6-2.6V6.2C15.1 5.5 8.7 4.7 2.4 4v10.6c6.3.8 12.7 1.5 19 2.3z\"},\"child\":[]}]})(props);\n};\nexport function SiXstate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.891 0h6.023l-6.085 10.563c-1.853-3.305-1.822-7.32.062-10.563zm6.055 23.999L8.078.001H2.055l6.919 12.015L2.055 24h6.023L12 17.236 15.892 24z\"},\"child\":[]}]})(props);\n};\nexport function SiXubuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0m3.914 4.4736c.3846-.044.1454 1.6067.0528 2.598-.0811.8681-.1263 1.154-.2886 2.1122-.051.301-.2008.6867-.6687.6314-.3924-.0498-.4553-.6959-.4424-.9954.0223-.5142.3031-1.7669.3933-2.217.1158-.5778.469-1.9566.9141-2.1196a.17.17 0 0 1 .0396-.0096m3.2264.7083c.5486.0198-.4157 1.75-.8093 2.6645-.2762.6417-.474 1.1556-.832 2.004-.1188.2813-.484.686-.906.4767-.3543-.1755-.233-.6916.0234-1.2897.369-.8616.6724-1.4374 1.0627-2.0867.3027-.5056.9341-1.6977 1.4033-1.7652a.34.34 0 0 1 .0579-.0037zm-9.2842.4702c.3118.0219.5717.1591.75.375.7699.932.6074 2.532.6746 3.7478 1.2.0653 2.19.2109 3.4687.5845.9745.2847 2.3231.7615 3.1128 1.2744.7867.511 1.377 1.1725 1.5 2.0625.0764.5522-.3435 1.106-.9192 1.612-.5748.5052-1.3265.98-2.1372 1.4253-.8103.445-1.6528.8491-2.3247 1.1624-1.4662.6837-3.0161 1.3499-4.9175 1.5417-5.1549.5202-4.5923-4.1579-4.3923-5.704.1558-1.2045.8004-2.942.9075-3.2586-.1404-.4457-.2497-.8216-.3355-1.2979-.073-.4046-.1122-.8711-.019-1.2751.0918-.398.3595-.8417.8027-1.0269.3513-.1467.6092-.0887.9375.2088.2703.2449.497.6077.7163.9873.3171.5488.4463 1.1183.7178 1.6758.0525.1077.3237.1574.482.1113.0367-.0107.0773-.1032.0563-.175-.3484-1.1915-.5975-2.1766-.424-3.0374.161-.799.8422-.9737 1.3432-.9939\"},\"child\":[]}]})(props);\n};\nexport function SiYabai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.0752 0a3.2626 3.2626 0 0 0-2.3807.955L6.2164 4.4313l-.5312-.5293c-1.2-1.055-2.8211.5135-1.744 1.742l.5312.5313L.9765 9.6711c-1.2734 1.274-1.2734 3.339 0 4.613l3.4939 3.4958-.0684.0664-.5156.5136c-1.0704 1.2058.4712 2.8158 1.7067 1.7755l.5978-.594 3.5017 3.5017c1.2742 1.2747 3.3407 1.2747 4.6149 0l8.7141-8.7141c1.2748-1.2742 1.2748-3.3407 0-4.615l.002-.0019-3.486-3.488.58-.58c.4781-.4823.4781-1.2598 0-1.742-.4815-.4818-1.2624-.4818-1.744 0l-.5605.5604L14.3075.955A3.2626 3.2626 0 0 0 12.0752 0Zm-.0761 1.7206c.394 0 .789.1505 1.0897.4511l3.5076 3.5056-4.566 4.568L7.433 5.65l3.4783-3.4783a1.5334 1.5334 0 0 1 1.0878-.4511ZM5.691 7.394l4.5934 4.5933-4.5954 4.5778-3.4939-3.4978c-.602-.6017-.602-1.5777 0-2.1795zm12.626.0468 3.4899 3.49c.6011.6014.6011 1.5762 0 2.1776l-8.7142 8.7141c-.6016.6025-1.5779.6025-2.1795 0l-3.4997-3.4997Z\"},\"child\":[]}]})(props);\n};\nexport function SiYale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.8 15.72v-1.24c-.64.04-.8-.24-.8-.76V7.6h-1.36v6.24c0 1.2.44 1.96 2.16 1.88zm4.96-5.24c-.44-.52-1.12-.88-2.08-.88-1 0-1.68.36-2.12.88-.52.64-.64 1.56-.64 2.24 0 .64.12 1.4.56 2.04.44.6 1.16 1 2.28 1 .76 0 1.36-.16 1.8-.48.44-.32.76-.84.8-1.36h-1.4c-.04.2-.16.36-.32.52-.2.16-.48.2-.88.2-.56 0-.92-.16-1.12-.48-.16-.24-.24-.64-.24-1h4.04c0-1.08-.16-2.04-.68-2.68zm-3.4 1.64c0-.32.12-.76.36-1s.56-.36.96-.36c.4 0 .72.12.96.36s.32.68.32 1zM10.4 9.64c-1.6 0-2.36.84-2.44 2h1.4c.04-.52.32-.84 1.04-.84.84 0 1.08.4 1.08 1v.36h-1.24c-.8 0-1.32.08-1.72.36-.48.32-.76.76-.76 1.44 0 .84.52 1.8 2.12 1.8.8 0 1.32-.24 1.68-.68v.6h1.32v-3.84c-.04-1.28-.72-2.2-2.48-2.2zm1.04 4.16c0 .64-.56.92-1.32.92-.84 0-1.04-.36-1.04-.8 0-.24.08-.44.28-.56.16-.08.4-.12.88-.12h1.2zM9.12 7.6H7.56l-1.92 3.6-1.92-3.6H2.16l2.76 4.96v3.08h1.44v-3.08zM24 12c0 6.64-5.36 12-12 12S0 18.64 0 12 5.36 0 12 0s12 5.36 12 12\"},\"child\":[]}]})(props);\n};\nexport function SiYamahacorporation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0a12 12 0 1012 12A12 12 0 0012 0zm-.412 1.377A10.648 10.648 0 0122.664 12 10.648 10.648 0 0112 22.664a10.648 10.648 0 01-.412-21.287zM12 1.9a.184.184 0 00-.172.131l-.883 2.526a.39.39 0 000 .097.3.3 0 00.133.25.926.926 0 01.074 1.465 2.345 2.345 0 00-.82 1.79v.903L5.865 6.498l-.547.953 4.987 2.877v.692l-.602.347-4.978-2.88-.551.954L8.602 12l-.782.45a2.345 2.345 0 00-1.127 1.616.93.93 0 01-1.312.668.293.293 0 00-.277 0 .324.324 0 00-.079.063l-1.742 2.037a.188.188 0 00.176.305l2.633-.493a.36.36 0 00.09-.035.3.3 0 00.152-.238.926.926 0 011.232-.781 2.345 2.345 0 001.954-.184l.78-.451v5.104h1.098v-5.756l.598-.344.598.344v5.756h1.1v-5.123l.78.45a2.345 2.345 0 001.954.184.926.926 0 011.234.782.285.285 0 00.149.238.36.36 0 00.09.035l2.634.492a.184.184 0 00.176-.305l.004.02-1.744-2.037a.39.39 0 00-.075-.063.3.3 0 00-.28 0 .938.938 0 01-.864-.035.93.93 0 01-.434-.633 2.368 2.368 0 00-1.14-1.609l-.782-.45 4.436-2.558-.549-.955-4.98 2.873-.602-.347v-.692l4.985-2.877-.547-.953L13.7 9.062v-.904a2.345 2.345 0 00-.803-1.789.922.922 0 01.079-1.465.309.309 0 00.128-.25.27.27 0 000-.097L12.18 2.03a.184.184 0 00-.18-.13zm.021 5.512a.598.598 0 01.58.598V9.7l-.597.347-.598-.348V8.01a.598.598 0 01.615-.597zm-.017 3.818l.687.391v.781l-.687.391-.688-.39v-.782zm2.299 1.403l1.46.847a.598.598 0 01.223.817v.004a.602.602 0 01-.82.219l-1.465-.844v-.696zm-4.596.004l.602.347v.692l-1.465.844a.598.598 0 11-.598-1.036z\"},\"child\":[]}]})(props);\n};\nexport function SiYamahamotorcorporation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 000 12a12 12 0 0012 12 12 12 0 0012-12A12 12 0 0012 0zm0 .57C18.315.57 23.43 5.685 23.43 12c0 6.31-5.115 11.43-11.43 11.43C5.69 23.43.57 18.314.57 12 .57 5.69 5.69.57 12 .57zm0 .234c-.1 0-.183.06-.218.147l-.492 1.551A9.523 9.523 0 002.475 12c0 1.48.337 2.885.94 4.136l-1.1 1.206a.241.241 0 00-.015.262.246.246 0 00.238.115l1.592-.353a9.52 9.52 0 007.87 4.16c3.27 0 6.16-1.652 7.874-4.16l1.592.353a.236.236 0 00.23-.123.234.234 0 00-.016-.262l-1.1-1.198A9.431 9.431 0 0021.526 12a9.523 9.523 0 00-8.815-9.498L12.218.947A.237.237 0 0012 .804zm-.003.25c.024 0 .048.02.056.043l1.02 3.354a1.2 1.2 0 00-.48.957c0 .389.19.734.48.952h-.004c.436.326.718.846.718 1.429v1.12l4.326-2.497.476.825-4.802 2.77v.965l.834.48 4.802-2.774.476.825-4.326 2.5.972.56c.508.294.818.798.882 1.338v-.004a1.193 1.193 0 001.655.953l2.393 2.56c.02.02.02.047.008.07-.016.025-.04.033-.068.029l-3.413-.794a1.193 1.193 0 00-1.65-.957l.003-.004c-.5.215-1.091.199-1.6-.095l-.968-.56v4.994h-.952v-5.545l-.834-.48-.833.48v5.545h-.953V15.1l-.972.555c-.508.294-1.1.31-1.6.096l.004.004a1.193 1.193 0 00-1.651.957l-3.413.793a.054.054 0 01-.063-.028c-.016-.02-.012-.047.008-.067l2.397-2.56c.333.143.73.135 1.067-.064.338-.194.544-.528.588-.889v.004c.063-.54.373-1.044.88-1.337l.97-.56-4.327-2.496.477-.826 4.802 2.774.833-.484v-.964l-4.802-2.77.476-.826 4.326 2.496V7.79c0-.583.282-1.103.719-1.429h-.004c.29-.214.476-.56.476-.952 0-.393-.19-.738-.48-.957l1.02-3.353c.008-.028.031-.044.051-.044zm.004 5.902a.833.833 0 00-.833.833v1.67L12 9.94l.833-.48V7.789a.833.833 0 00-.833-.833zm0 4.084l-.833.48v.964l.833.476.833-.48v-.96zm-2.62 1.516l-1.444.833a.833.833 0 00-.306 1.14.822.822 0 00.723.412.83.83 0 00.416-.111l1.445-.834v-.96zm5.243 0l-.833.48V14l1.445.834a.834.834 0 00.833-1.445z\"},\"child\":[]}]})(props);\n};\nexport function SiYaml (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m0 .97 4.111 6.453v4.09h2.638v-4.09L11.053.969H8.214L5.58 5.125 2.965.969Zm12.093.024-4.47 10.544h2.114l.97-2.345h4.775l.804 2.345h2.26L14.255.994Zm1.133 2.225 1.463 3.87h-3.096zm3.06 9.475v10.29H24v-2.199h-5.454v-8.091zm-12.175.002v10.335h2.217v-7.129l2.32 4.792h1.746l2.4-4.96v7.295h2.127V12.696h-2.904L9.44 17.37l-2.455-4.674Z\"},\"child\":[]}]})(props);\n};\nexport function SiYandexcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.38 0 0 5.38 0 12s5.38 12 12 12 12-5.38 12-12S18.62 0 12 0zM7.163 20.618C4.152 18.927 2.12 15.702 2.12 12c0-5.46 4.42-9.88 9.88-9.88 1.429 0 2.496.536 3.029 1.187.534.65.684 1.715.5 3.253l-3.207.631c-2.905.532-4.506 2.148-5.06 5.065-.07.406-.15.812-.226 1.196-.031.157-.062.312-.09.46-.073.396-.143.773-.208 1.124-.093.505-.177.957-.247 1.34-.324 1.884-.06 3.276.672 4.242zm7.986-11.851c-.087.434-.167.867-.247 1.302-.081.434-.16.868-.247 1.301-.396 2.05-1.364 2.996-3.42 3.391l-2.391.474c.059-.296.119-.611.178-.927.022-.12.044-.241.067-.362.078-.421.157-.855.25-1.313.395-2.05 1.344-2.996 3.399-3.391l2.411-.475zM12 21.88c-1.429 0-2.496-.536-3.029-1.187s-.684-1.715-.5-3.253l3.18-.631c2.905-.532 4.507-2.148 5.08-5.046.069-.406.149-.812.226-1.196.031-.157.062-.311.09-.46.087-.471.171-.917.247-1.327.081-.432.154-.822.215-1.156.325-1.884.061-3.275-.671-4.242C19.848 5.073 21.88 8.298 21.88 12c0 5.46-4.42 9.88-9.88 9.88z\"},\"child\":[]}]})(props);\n};\nexport function SiYarn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.375 0 0 5.375 0 12s5.375 12 12 12 12-5.375 12-12S18.625 0 12 0zm.768 4.105c.183 0 .363.053.525.157.125.083.287.185.755 1.154.31-.088.468-.042.551-.019.204.056.366.19.463.375.477.917.542 2.553.334 3.605-.241 1.232-.755 2.029-1.131 2.576.324.329.778.899 1.117 1.825.278.774.31 1.478.273 2.015a5.51 5.51 0 0 0 .602-.329c.593-.366 1.487-.917 2.553-.931.714-.009 1.269.445 1.353 1.103a1.23 1.23 0 0 1-.945 1.362c-.649.158-.95.278-1.821.843-1.232.797-2.539 1.242-3.012 1.39a1.686 1.686 0 0 1-.704.343c-.737.181-3.266.315-3.466.315h-.046c-.783 0-1.214-.241-1.45-.491-.658.329-1.51.19-2.122-.134a1.078 1.078 0 0 1-.58-1.153 1.243 1.243 0 0 1-.153-.195c-.162-.25-.528-.936-.454-1.946.056-.723.556-1.367.88-1.71a5.522 5.522 0 0 1 .408-2.256c.306-.727.885-1.348 1.32-1.737-.32-.537-.644-1.367-.329-2.21.227-.602.412-.936.82-1.08h-.005c.199-.074.389-.153.486-.259a3.418 3.418 0 0 1 2.298-1.103c.037-.093.079-.185.125-.283.31-.658.639-1.029 1.024-1.168a.94.94 0 0 1 .328-.06zm.006.7c-.507.016-1.001 1.519-1.001 1.519s-1.27-.204-2.266.871c-.199.218-.468.334-.746.44-.079.028-.176.023-.417.672-.371.991.625 2.094.625 2.094s-1.186.839-1.626 1.881c-.486 1.144-.338 2.261-.338 2.261s-.843.732-.899 1.487c-.051.663.139 1.2.343 1.515.227.343.51.176.51.176s-.561.653-.037.931c.477.25 1.283.394 1.71-.037.31-.31.371-1.001.486-1.283.028-.065.12.111.209.199.097.093.264.195.264.195s-.755.324-.445 1.066c.102.246.468.403 1.066.398.222-.005 2.664-.139 3.313-.296.375-.088.505-.283.505-.283s1.566-.431 2.998-1.357c.917-.598 1.293-.76 2.034-.936.612-.148.57-1.098-.241-1.084-.839.009-1.575.44-2.196.825-1.163.718-1.742.672-1.742.672l-.018-.032c-.079-.13.371-1.293-.134-2.678-.547-1.515-1.413-1.881-1.344-1.997.297-.5 1.038-1.297 1.334-2.78.176-.899.13-2.377-.269-3.151-.074-.144-.732.241-.732.241s-.616-1.371-.788-1.483a.271.271 0 0 0-.157-.046z\"},\"child\":[]}]})(props);\n};\nexport function SiYcombinator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24V0h24v24H0zM6.951 5.896l4.112 7.708v5.064h1.583v-4.972l4.148-7.799h-1.749l-2.457 4.875c-.372.745-.688 1.434-.688 1.434s-.297-.708-.651-1.434L8.831 5.896h-1.88z\"},\"child\":[]}]})(props);\n};\nexport function SiYelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m7.6885 15.1415-3.6715.8483c-.3769.0871-.755.183-1.1452.155-.2611-.0188-.5122-.0414-.7606-.213a1.179 1.179 0 0 1-.331-.3594c-.3486-.5519-.3656-1.3661-.3697-2.0004a6.2874 6.2874 0 0 1 .3314-2.0642 1.857 1.857 0 0 1 .1073-.2474 2.3426 2.3426 0 0 1 .1255-.2165 2.4572 2.4572 0 0 1 .1563-.1975 1.1736 1.1736 0 0 1 .399-.2831 1.082 1.082 0 0 1 .4592-.0837c.2355.0016.5139.052.91.1734.0555.0191.1237.0382.1856.0572.3277.1013.7048.2404 1.1499.3987.6863.2404 1.3663.487 2.0463.7397l1.2117.4423c.2217.0807.4363.18.6412.297.174.0984.3273.2298.4512.387a1.217 1.217 0 0 1 .192.4309 1.2205 1.2205 0 0 1-.872 1.4522c-.0468.0151-.0852.0239-.1085.0293l-1.105.2553-.0031-.001zM18.8208 7.565a1.8506 1.8506 0 0 0-.2042-.1754 2.4082 2.4082 0 0 0-.2077-.1394 2.3607 2.3607 0 0 0-.2269-.109 1.1705 1.1705 0 0 0-.482-.0796 1.0862 1.0862 0 0 0-.4498.1263c-.2107.1048-.4388.2732-.742.5551-.042.0417-.0947.0886-.142.133-.2502.2351-.5286.5252-.8599.863a114.6363 114.6363 0 0 0-1.5166 1.5629l-.8962.9293a4.1897 4.1897 0 0 0-.4466.5483 1.541 1.541 0 0 0-.2364.5459 1.2199 1.2199 0 0 0 .0107.4518l.0046.02a1.218 1.218 0 0 0 1.4184.923 1.162 1.162 0 0 0 .1105-.0213l4.7781-1.104c.3766-.087.7587-.1667 1.097-.3631.2269-.1316.4428-.262.5909-.5252a1.1793 1.1793 0 0 0 .1405-.4683c.0733-.6512-.2668-1.3908-.5403-1.963a6.2792 6.2792 0 0 0-1.2001-1.7103zM8.9703.0754a8.6724 8.6724 0 0 0-.83.1564c-.2754.066-.548.1383-.8146.2236-.868.2844-2.0884.8063-2.295 1.8065-.1165.5655.1595 1.1439.3737 1.66.2595.6254.614 1.1889.9373 1.7777.8543 1.5545 1.7245 3.0993 2.5922 4.6457.259.4617.5416 1.0464 1.043 1.2856a1.058 1.058 0 0 0 .1013.0383c.2248.0851.4699.1016.7041.0471a4.3015 4.3015 0 0 0 .0418-.0097 1.2136 1.2136 0 0 0 .5658-.3397 1.1033 1.1033 0 0 0 .079-.0822c.3463-.435.3454-1.0833.3764-1.6134.1042-1.771.2139-3.5423.3009-5.3142.0332-.6712.1055-1.3333.0655-2.0096-.0328-.5579-.0368-1.1984-.3891-1.6563-.6218-.8073-1.9476-.741-2.8523-.6158zm2.084 15.9505a1.1053 1.1053 0 0 0-1.2306-.4145 1.1398 1.1398 0 0 0-.1526.0633 1.4806 1.4806 0 0 0-.2171.1354c-.1992.1475-.3668.3392-.5196.5315-.0386.049-.074.1143-.12.1562l-.7686 1.0573a113.9168 113.9168 0 0 0-1.2913 1.789c-.278.3895-.5184.7184-.7083 1.0094-.036.0547-.0734.116-.1075.1647-.2277.3522-.3566.6092-.4228.8381a1.0945 1.0945 0 0 0-.046.4721c.0211.1655.0768.3246.1635.467.046.0715.0957.1406.1487.207a2.334 2.334 0 0 0 .1754.1825 1.843 1.843 0 0 0 .2108.1732c.5304.369 1.1112.6342 1.722.8391a6.0958 6.0958 0 0 0 1.5716.3004c.091.0046.1821.0025.2728-.006a2.3878 2.3878 0 0 0 .2506-.0351 2.3862 2.3862 0 0 0 .2447-.071 1.1927 1.1927 0 0 0 .4175-.2658c.1127-.113.1994-.249.2541-.3989.0889-.2214.1473-.5026.1857-.92.0034-.0593.0118-.1305.0177-.1958.0304-.3463.0443-.7531.0666-1.2315.0375-.7357.067-1.4681.0903-2.2026 0 0 .0495-1.3053.0494-1.306.0113-.3008.002-.6342-.0814-.9336a1.396 1.396 0 0 0-.1756-.4054zm8.6754 2.0439c-.1605-.176-.3878-.3514-.7462-.5682-.0518-.0288-.1124-.0674-.1684-.1009-.2985-.1795-.658-.3684-1.078-.5965a120.7615 120.7615 0 0 0-1.9427-1.042l-1.1515-.6107c-.0597-.0175-.1203-.0607-.1766-.0878-.2212-.1058-.4558-.2045-.6992-.2498a1.4915 1.4915 0 0 0-.2545-.0265 1.1527 1.1527 0 0 0-.1648.01 1.1077 1.1077 0 0 0-.9227.9133 1.4186 1.4186 0 0 0 .0159.439c.0563.3065.1932.6096.3346.875l.615 1.1526c.3422.65.6884 1.2963 1.0435 1.9406.229.4202.4196.7799.5982 1.078.0338.056.0721.1163.1011.1682.2173.3584.392.584.569.7458.1146.1107.252.195.4026.247.1583.0525.326.071.4919.0546a2.368 2.368 0 0 0 .251-.0435c.0817-.022.1622-.048.241-.0784a1.863 1.863 0 0 0 .2475-.1143 6.1018 6.1018 0 0 0 1.2818-.9597c.4596-.4522.8659-.9454 1.182-1.51.044-.08.0819-.163.1138-.2483a2.49 2.49 0 0 0 .0773-.2411c.0186-.083.033-.1669.0429-.2513a1.188 1.188 0 0 0-.0565-.491 1.0933 1.0933 0 0 0-.248-.4041zm2.86 3.742a.8523.8523 0 0 1-.111.4236c-.074.132-.178.2377-.3115.3172a.8428.8428 0 0 1-.4385.119.847.847 0 0 1-.4373-.1179.8526.8526 0 0 1-.3125-.3171.8548.8548 0 0 1-.111-.4248c0-.1526.038-.2958.1143-.4294a.8405.8405 0 0 1 .315-.3159.849.849 0 0 1 .4315-.1156.8514.8514 0 0 1 .4294.1144.84.84 0 0 1 .316.3148.8494.8494 0 0 1 .1156.4317zm-.1202 0c0-.1328-.0332-.256-.0996-.3698s-.1564-.2038-.2702-.2702a.7125.7125 0 0 0-.371-.1007.7204.7204 0 0 0-.3698.0996.7487.7487 0 0 0-.2713.2702.7181.7181 0 0 0-.0996.3709c0 .132.0332.2557.0996.371a.7355.7355 0 0 0 .2713.2713.7354.7354 0 0 0 .3698.0985.7205.7205 0 0 0 .3698-.0996.7423.7423 0 0 0 .2702-.2691.7186.7186 0 0 0 .1008-.3721zm-.577.0584.2724.4522h-.1922l-.237-.4052h-.1546v.4052h-.1695v-1.02h.2988c.1268 0 .2195.0247.2783.0744.0595.0496.0892.1252.0892.2267a.2785.2785 0 0 1-.0492.1625c-.032.0466-.0775.0813-.1362.1042zm-.0412-.1408a.1532.1532 0 0 0 .056-.1214c0-.0573-.0164-.0981-.0491-.1225-.0329-.0251-.0847-.0377-.1557-.0377h-.1214v.3285h.1237c.061 0 .1098-.0157.1465-.047z\"},\"child\":[]}]})(props);\n};\nexport function SiYeti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.575 8.582v1.685h2.183v5.15h2.14v-5.15h2.183V8.583h-6.505ZM0 8.582l2.699 3.972v2.864h2.144v-2.864l2.693-3.971H5.172l-1.398 2.305-1.397-2.305zm8.022 0v6.836h5.84v-1.663h-3.694v-.974H13.3v-1.54h-3.132v-.974h3.589V8.583Zm13.832 0 .001 6.836H24V8.583Z\"},\"child\":[]}]})(props);\n};\nexport function SiYii (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.8797 0c-.8433.5448-1.8054 1.509-2.3626 2.3403-1.1685 1.7424-1.4392 2.9943-.8005 4.8628.2165.6336.5761 1.2934.8362 1.873 1.0218 2.2778 2.0625 4.3279 1.8107 7.285 2.1603-2.7611 3.0147-3.8864 3.9253-6.57C22.54 6.1032 21.282 2.1322 17.8798 0M5.6417 4.6556c-1.1433.01-2.2877.2206-3.3819.6593-.2107 2.6576 1.0216 7.2303 5.5165 8.5057 1.8172.559 3.2721.4139 5.0555.8988v.0002c-.5755 1.016-1.4105 1.988-1.9082 2.9732-.4934.9764-.585 1.9434-.5391 3.0428.0462 1.1054.3017 2.1896.547 3.2644.9242-.1994 1.7287-.5405 2.4247-.9767 1.8315-1.1483 2.9383-2.9849 3.2528-4.9635 0 0 .0085-.0674.0153-.1245 0 .0057.0005.0114.0003.0171l.0054-.0617c.0003-.0049.0007-.004.001-.009.0055-.0583.0089-.1053.0137-.1605.0108-.123.0218-.2471.03-.3564.0023-.0285.0035-.0521.0055-.0797.0085-.1166.0171-.2335.023-.3358l.0014-.0338.0003-.003c.0006-.0115.0006-.0204.0013-.0318a15 15 0 0 0 .0147-.34c.003-.1062.005-.2063.0052-.2979l-.0002-.0115v-.0058a9 9 0 0 0-.0139-.5081c-.0088-.158-.0207-.3053-.0325-.4612-.081-1.0689-.2939-1.9498-.5285-2.6617a12 12 0 0 0-.1782-.5023v-.0002c-.179-.4714-.3545-.8502-.4805-1.1447a7.4 7.4 0 0 0-.2747-.5688 10 10 0 0 0-.1423-.2573c-.233-.407-.4347-.6938-.435-.6931l-.1231-.1832c-2.0257-2.8436-5.4458-4.6194-8.8755-4.5893\"},\"child\":[]}]})(props);\n};\nexport function SiYoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.61 0 11.4 14.477 8.806 6.36H5.941l3.804 9.77a4.017 4.017 0 0 1 0 2.925c-.387.993-1.073 2.158-2.96 2.505V24c1.512-.06 2.692-.562 3.694-1.57 1.032-1.036 1.919-2.655 2.79-5.091L19.739 0ZM5.357 3.274a3.706 3.706 0 0 0-3.695 3.695v10.358a3.706 3.706 0 0 0 3.695 3.694h.817l.26-.034c1.76-.237 2.37-1.224 2.733-2.158a3.4 3.4 0 0 0 0-2.475L5.035 5.738H9.26l2.174 6.81 3.339-9.274Zm13.792.08L13.853 17.55c-.502 1.403-1.015 2.54-1.559 3.47h10.044V6.97a3.706 3.706 0 0 0-3.19-3.616Z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutubegaming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 13.2v-6l-6-3.6-6 3.6-6-3.6-6 3.6v6l12 7.2zM8.4 10.8H6v2.4H4.8v-2.4H2.4V9.6h2.4V7.2H6v2.4h2.4zm7.2 2.4a1.2 1.2 0 01-1.2-1.2c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2 0 .66-.54 1.2-1.2 1.2zm3.6-2.4A1.2 1.2 0 0118 9.6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2 0 .66-.54 1.2-1.2 1.2Z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutubekids (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.99 13.543-.007-.288c-.015-1.122-.645-6.495-.999-7.457-.41-1.111-.974-1.945-1.675-2.48-1.143-.873-2.115-1.063-3.313-1.087h-.03c-.51 0-3.848.415-6.642.801-2.797.387-6.303.915-7.14 1.227-1.153.432-2.07.997-2.796 1.728C.05 7.332-.113 8.731.054 10.553c.13 1.412.875 6.975 1.302 8.248.574 1.717 1.694 2.75 3.154 2.909.36.039.704.059 1.045.059 1.28 0 2.295-.278 3.47-.598 1.848-.505 4.147-1.13 8.893-1.13h.14c1.162 0 4.008-.263 5.303-2.687.693-1.297.652-2.87.629-3.811zm-7.719-1.67-.105.066c-.274.185-.547.373-.819.563l-4.298 2.975c-.27.21-.748.521-1.016.521a.236.236 0 0 1-.107-.024c-.226-.12-.303-.94-.356-1.34l-.011-.087c-.065-.478-.594-5.035-.654-5.535-.017-.142-.105-.663.055-.781.05-.037.12-.05.2-.05.195 0 .442.083.549.118.845.272 5.083 1.774 6.4 2.448.038.02.079.04.122.057.188.08.446.192.452.51.004.304-.225.446-.412.56z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutubemusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0C5.376 0 0 5.376 0 12s5.376 12 12 12 12-5.376 12-12S18.624 0 12 0zm0 19.104c-3.924 0-7.104-3.18-7.104-7.104S8.076 4.896 12 4.896s7.104 3.18 7.104 7.104-3.18 7.104-7.104 7.104zm0-13.332c-3.432 0-6.228 2.796-6.228 6.228S8.568 18.228 12 18.228s6.228-2.796 6.228-6.228S15.432 5.772 12 5.772zM9.684 15.54V8.46L15.816 12l-6.132 3.54z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutubeshorts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18.931 9.99-1.441-.601 1.717-.913a4.48 4.48 0 0 0 1.874-6.078 4.506 4.506 0 0 0-6.09-1.874L4.792 5.929a4.504 4.504 0 0 0-2.402 4.193 4.521 4.521 0 0 0 2.666 3.904c.036.012 1.442.6 1.442.6l-1.706.901a4.51 4.51 0 0 0-2.369 3.967A4.528 4.528 0 0 0 6.93 24c.725 0 1.437-.174 2.08-.508l10.21-5.406a4.494 4.494 0 0 0 2.39-4.192 4.525 4.525 0 0 0-2.678-3.904ZM9.597 15.19V8.824l6.007 3.184z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutubestudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.919 13.176c.048-.384.084-.768.084-1.176s-.036-.792-.084-1.176l2.532-1.98a.605.605 0 0 0 .144-.768l-2.4-4.152a.603.603 0 0 0-.732-.264l-2.988 1.2a8.767 8.767 0 0 0-2.028-1.176l-.456-3.18A.585.585 0 0 0 14.403 0h-4.8c-.3 0-.552.216-.588.504l-.456 3.18A9.22 9.22 0 0 0 6.531 4.86l-2.988-1.2a.585.585 0 0 0-.732.264l-2.4 4.152a.592.592 0 0 0 .144.768l2.532 1.98c-.048.384-.084.78-.084 1.176s.036.792.084 1.176l-2.532 1.98a.605.605 0 0 0-.144.768l2.4 4.152c.144.264.468.36.732.264l2.988-1.2c.624.48 1.296.876 2.028 1.176l.456 3.18a.585.585 0 0 0 .588.504h4.8c.3 0 .552-.216.588-.504l.456-3.18a9.22 9.22 0 0 0 2.028-1.176l2.988 1.2c.276.108.588 0 .732-.264l2.4-4.152a.605.605 0 0 0-.144-.768l-2.532-1.98zM9.603 15.6V8.4l6 3.6-6 3.6z\"},\"child\":[]}]})(props);\n};\nexport function SiYoutubetv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.794 10.609h-.618v3.286h-.607v-3.286h-.617v-.504h1.842v.504zm.135-.504h.649l.202 1.703c.057.488.11.908.172 1.484h.026c.057-.576.114-.986.17-1.484l.208-1.703H24l-.623 3.784h-.82l-.628-3.784zm-15.758.38a.796.796 0 0 0-.555-.561c-.493-.13-2.465-.13-2.465-.13s-1.973 0-2.466.13a.787.787 0 0 0-.555.56C0 10.977 0 12 0 12s0 1.028.13 1.516a.794.794 0 0 0 .56.56c.488.13 2.46.13 2.46.13s1.973 0 2.466-.13a.806.806 0 0 0 .56-.555c.13-.493.13-1.516.13-1.516s-.005-1.028-.135-1.52zm-3.649 2.46v-1.89l1.64.945-1.64.945zm6.629.867a.652.652 0 0 1-.265-.395 2.703 2.703 0 0 1-.078-.706v-.4a2.383 2.383 0 0 1 .093-.716.724.724 0 0 1 .28-.394.943.943 0 0 1 .504-.125c.203 0 .369.042.493.125.13.098.229.233.27.394.062.234.094.472.083.716v.4c.005.239-.02.478-.083.711a.7.7 0 0 1-.27.395c-.124.083-.296.124-.508.124-.218-.005-.395-.046-.52-.13zm.7-.436c.037-.089.052-.24.052-.442v-.856a1.376 1.376 0 0 0-.052-.436.189.189 0 0 0-.181-.14.183.183 0 0 0-.177.14c-.041.14-.057.29-.052.436v.861c0 .203.016.353.052.442.02.083.094.14.182.135a.183.183 0 0 0 .176-.14zm8.88-.66v.14c0 .135.006.265.016.4a.373.373 0 0 0 .068.192.2.2 0 0 0 .156.062.2.2 0 0 0 .192-.109c.036-.072.052-.192.057-.363l.534.036a.56.56 0 0 1 .006.1c0 .253-.068.445-.208.57-.14.125-.337.187-.592.187-.306 0-.519-.099-.643-.29s-.187-.489-.187-.894v-.482c0-.416.062-.717.192-.909.13-.192.348-.285.654-.285.213 0 .379.041.493.12.12.088.207.217.244.363.052.223.078.456.067.685v.472l-1.048.005zm.079-1.162a.367.367 0 0 0-.063.192 5.48 5.48 0 0 0-.015.405v.197h.457v-.197c0-.135-.006-.27-.021-.405a.373.373 0 0 0-.068-.192.174.174 0 0 0-.145-.057.169.169 0 0 0-.145.057zm-11.175 1.11l-.706-2.559h.618l.249 1.158c.062.285.109.53.14.732h.02c.022-.146.068-.384.14-.727l.26-1.163h.618l-.716 2.56v1.23H7.64v-1.23h-.005zm4.905-1.536v2.767h-.488L12 13.557h-.016c-.13.255-.332.384-.596.384-.182 0-.317-.062-.405-.181-.089-.12-.13-.307-.13-.566v-2.066h.623v2.03a.659.659 0 0 0 .041.264.137.137 0 0 0 .135.078.28.28 0 0 0 .156-.052.281.281 0 0 0 .109-.124v-2.196h.623zm3.192 0v2.767h-.488l-.052-.338h-.016c-.13.255-.332.384-.596.384-.182 0-.317-.062-.405-.181-.089-.12-.13-.307-.13-.566v-2.066h.623v2.03a.659.659 0 0 0 .041.264.137.137 0 0 0 .135.078.28.28 0 0 0 .156-.052.281.281 0 0 0 .109-.124v-2.196h.623zm-1.5-.52h-.618v3.287h-.607v-3.286h-.618v-.504h1.843v.504zm3.56.961c-.036-.171-.098-.3-.181-.379a.508.508 0 0 0-.348-.12.56.56 0 0 0-.322.1.635.635 0 0 0-.228.254h-.005V9.965h-.597v3.93h.514l.062-.26h.015a.531.531 0 0 0 .218.223.69.69 0 0 0 .322.083.502.502 0 0 0 .467-.29c.099-.192.15-.499.15-.909v-.436a4.861 4.861 0 0 0-.067-.737zm-.57 1.127c0 .155-.006.316-.026.472a.508.508 0 0 1-.084.244.195.195 0 0 1-.155.072.257.257 0 0 1-.14-.036.3.3 0 0 1-.104-.109v-1.567a.425.425 0 0 1 .109-.187.224.224 0 0 1 .166-.073c.057 0 .114.026.145.073.042.078.068.16.073.249.015.166.02.332.02.498l-.005.364z\"},\"child\":[]}]})(props);\n};\nexport function SiYr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.412 9.764c.295.257.464.558.474 1.085-.003.567-.184.96-.454 1.234-.275.271-.667.452-1.234.454h-1.885c-.292.001-.573.103-.839.2l-.13.047v-2.479a.982.982 0 0 1 .97-.969h1.708c.605 0 1.09.177 1.39.428zM24 12c0 6.627-5.372 12-12 12-6.627 0-12-5.373-12-12C0 5.372 5.373 0 12 0c6.628 0 12 5.372 12 12zM11.148 7.709H9.231l-.002 3.133c-.036 1.168-1.13 1.546-2.001 1.558-.995-.014-2.044-.566-2.044-2.083V7.709H3.293v2.608c0 1.184.409 2.195 1.184 2.925.701.66 1.662 1.031 2.712 1.049h.078c.705-.013 1.741-.473 1.942-.879v.863c0 1.144-1.455 1.89-1.847 2.086l.028.034a.3059.3059 0 0 0-.01.005l-.018.009 1.218 1.473.18-.101h-.001c.797-.445 2.38-1.33 2.389-3.717V7.709zm7.14 6.621a3.427 3.427 0 0 0 1.514-.876c.664-.661 1.026-1.597 1.022-2.604.01-1.047-.45-1.988-1.176-2.578-.723-.597-1.655-.874-2.625-.875h-1.709c-1.6047.0033-2.9047 1.3033-2.908 2.908v7.176h1.938v-2.036a.982.982 0 0 1 .97-.969h.772l2.085 2.554.146.18c.158.151.365.25.596.27v.001h.042a.283.283 0 0 0 .08 0h1.147l.003-1.567s-.473.132-.826-.246c-.415-.444-1.071-1.338-1.071-1.338z\"},\"child\":[]}]})(props);\n};\nexport function SiYubico (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m12.356 12.388 2.521-7.138h3.64l-6.135 15.093H8.539l1.755-4.136L6 5.25h3.717ZM12 0C5.381 0 0 5.381 0 12s5.381 12 12 12 12-5.381 12-12S18.619 0 12 0Zm0 1.5c5.808 0 10.5 4.692 10.5 10.5S17.808 22.5 12 22.5 1.5 17.808 1.5 12 6.192 1.5 12 1.5Z\"},\"child\":[]}]})(props);\n};\nexport function SiYunohost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.5117 22.0865c-.2242-.1506-.5262-.4987-.6711-.7734-.2797-.5304-.826-1.1104-1.382-1.4674-.3836-.2463-.5943-.985-.361-1.266.0777-.0938.4072-.242.7322-.3293.325-.0874.6448-.2073.7106-.2665.0659-.0591.1257-.4864.133-.9495.0446-2.8328.067-2.9027.9338-2.9027 1.0283 0 1.724 1.2286 1.3857 2.4472-.24.8642-.1922 1.0501.2691 1.048.7042-.0034.7425-.0844.7742-1.6375.048-2.3435.561-3.0887 1.7394-2.5268.7473.3564.8574 1.3232.3463 3.0421-.1672.5622.1641 2.8917.5112 3.594.1959.3965-.0137.9526-.3787 1.0048-.1656.0237-.4377-.0916-.6627-.281-.21-.1767-.426-.3212-.4801-.3212s-.2541-.2248-.4446-.4996c-.3314-.4783-.71-.6405-.8742-.3746-.0425.0687-.332.1891-.6435.2675-.5448.1372-.5634.1572-.4943.5308.205 1.1082.2073 1.5506.0088 1.749-.2708.2709-.6624.241-1.152-.088m12.6533-1.7342c-.2704-.1568-.7981-.7447-1.032-1.1496-.0835-.1444-.1537-.5332-.1561-.864-.0065-.884.365-1.4412.5573-.8356.1826.5753.8588.833 1.1777.4488.257-.3098-.1734-1.0344-1.2391-2.086-.9585-.9456-1-1.01-1-1.5539 0-.844.2417-1.1948 1.1089-1.6093.7205-.3444.783-.3536 1.2917-.1904.6921.2221 1.5047 1.0045 1.4493 1.3956-.0346.244-.1144.2863-.5402.2863-.2748 0-.5698.0455-.6557.101-.2554.1653-.178.5428.1561.7618.3078.2016.3123.1995.3123-.1499 0-.3438.0325-.3615 1.0928-.596l1.0928-.2418.089-.9828c.15-1.6536.6282-1.9801 1.5719-1.0733.2886.2773.5333.5724.5437.6557a7 7 0 0 1 .0316.3388c.0104.1547.2004.1798 1.0896.1441 1.037-.0416 1.0916-.03 1.4663.3122.2674.2442.3993.4895.4214.7834.027.3618-.0323.4718-.3841.7126-.2289.1565-.9735.4625-1.6548.6798-.978.312-1.2387.4437-1.2387.6256 0 .1267.0639.7923.142 1.479.1607 1.4136.0583 1.8762-.4686 2.1162-.4644.2116-.5869.179-1.0248-.2729-.5125-.5287-.6706-1.0862-.5684-2.0032.0948-.8494.0392-.9135-.7377-.8518l-.5529.044.1812.5197c.1168.335.1572.7637.1136 1.2066-.0572.5805-.1317.742-.4807 1.0421-1.035.8902-1.629 1.1126-2.1554.8072m-5.0871-.1042c-.5996-.1036-1.4703-.7774-1.9948-1.5438-.3743-.5469-.4167-.6964-.408-1.4362.0115-.9621.3114-2.081.6852-2.5562.2967-.3772 1.1997-.83 1.6553-.83.277 0 .9169.2352 1.896.6967.8448.3981.9919.6457 1.1778 1.9826l.1372.9864-.4558.9714c-.2508.5343-.5818 1.0897-.7357 1.2343-.3627.3408-1.3719.5959-1.9572.4948m.3147-2.3618c.449-.1708.6744-.9103.4034-1.3239-.1108-.1691-.2739-.3075-.3624-.3075-.4979 0-1.0237 1.1802-.6997 1.5707.174.2095.249.2164.6587.0607m-7.0488-6.2838c-.2383-.1579-.5613-.555-.7366-.9055-.2843-.5685-.3092-.7458-.2785-1.9842l.0337-1.3598-.7518-.7222c-.4136-.3972-.752-.7446-.752-.772 0-.0276-.1123-.576-.2497-1.219-.1375-.6427-.25-1.4663-.25-1.8302 0-.57.0437-.6903.3162-.8688.494-.3236 1.0344-.1065 1.5151.6086.3193.475.4119.7671.4827 1.5232.0924.986.2566 1.265.6677 1.1345.246-.078.9582-.817 1.2117-1.2572.1284-.223.1595-.2186.7082.103.4144.2429.6143.4587.7192.7764.1297.3931.1114.4978-.1727.9825-.1749.2984-.5308.7294-.791.9579s-.4797.5312-.4877.6728c-.0597 1.0595-.323 4.1595-.364 4.2853-.0753.2315-.3445.1905-.8207-.1251m4.5654-.8935c-.5802-.2527-1.3777-1.2354-1.5563-1.9175-.189-.7223-.1775-3.703.0174-4.4771.076-.3018.2028-.5488.2817-.5488.2389 0 1.0594.6106 1.2202.9079.0887.1642.1607.8888.175 1.7638.0211 1.2798.0553 1.5023.2473 1.6098.1695.0949.263.07.39-.104.092-.1257.168-.3162.1689-.4233.001-.1071.1414-.6324.3122-1.1674.1709-.535.3163-1.2375.3231-1.5612.0263-1.2432.3001-1.5217.9548-.9708.7652.6439.8054 2.0963.1369 4.941-.2668 1.1353-.5334 1.5242-1.3165 1.9207-.4785.2424-.8434.2496-1.3547.0268zm4.2926-.2652c-.6665-.347-.7896-.599-.621-1.2704.3738-1.4873.4467-3.2548.1966-4.7687-.0803-.4865-.057-.573.2093-.7778.1648-.1267.419-.2316.5648-.2332.3539-.0037 1.171.898 1.5254 1.6833.5183 1.1484.7065 1.4764.8176 1.425.0607-.0282.1249-.8949.1426-1.926.0286-1.6533.065-1.9375.3083-2.4042.1517-.2911.3537-.5293.4488-.5293s.3278.2388.517.5308c.1893.2919.3956.5676.4585.6127.063.045.0931.6913.067 1.4362-.026.745-.0392 1.8321-.0293 2.416.0595 3.5063.0399 3.7062-.38 3.8658-.398.1513-1.0262-.1558-1.7828-.8713-.3615-.3419-.7065-.6216-.7668-.6216-.0602 0-.2104.3232-.3337.7182-.3601 1.1536-.4288 1.1902-1.3423.7145m6.7039-1.0775c-1.1639-.6307-1.5592-1.2076-1.653-2.4122-.0745-.9562.3326-2.655.7755-3.2355.1735-.2275.3155-.476.3155-.552s.249-.3096.5533-.519c.71-.4886 1.3684-.5098 2.0234-.0654.9194.624 1.0533 1.1061 1.0915 3.931.0148 1.092-.012 1.2344-.3365 1.7864-.1939.3298-.4772.6472-.6295.705-.1524.058-.3458.1882-.4298.2894-.184.2218-1.344.2709-1.7104.0723m1.2382-3.0193c.4147-.8299.3596-1.362-.1486-1.4349-.2257-.0323-.3239.0643-.5126.5046-.3523.822-.4361 1.3272-.256 1.5442.2678.3227.5403.1403.9172-.614\"},\"child\":[]}]})(props);\n};\nexport function SiZabka (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m4.12 15.041.187-.967a9.424 9.424 0 0 0 10.05 0l.187.967a8.437 8.437 0 0 1-10.424 0zm12.109-4.463c.343.062.718.031 1.03-.156.25-.156.405-.406.468-.687.062-.28.094-.53.125-.811h1.186v.437a2.8 2.8 0 0 1-.281 1.03c-.125.25-.343.468-.562.624-.062.031-.125.094-.187.125.062.093.125.218.156.312.312.562.624 1.092.967 1.654l.094.187a.396.396 0 0 1 .031.188h-1.31l-1.03-1.873-.687.062v1.842h-1.28v-6.18h1.28zM3.808 8.893c0 .062-.032.124-.063.218l-.655 1.124a69.63 69.63 0 0 0-1.186 2.06c0 .03-.031.062-.031.093h1.935v1.124H0c0-.063.031-.125.062-.187.188-.344.375-.656.562-.968.187-.312.343-.593.53-.905.25-.437.5-.874.75-1.28.031-.031.031-.062.062-.125H.156V8.893zm-1.78-.437A.515.515 0 0 1 1.56 8.3c-.187-.156-.28-.437-.187-.687a.646.646 0 0 1 .53-.437c.22-.062.469.031.625.187.187.188.218.437.156.687a.6.6 0 0 1-.562.406c-.031.03-.062.03-.093 0zm12.016 1.872a2.12 2.12 0 0 0-.749-1.123 1.87 1.87 0 0 0-1.123-.375 2.512 2.512 0 0 0-1.061.156c-.032 0-.094.031-.125.031V7.332h-1.28v5.899c.187.062.375.094.562.125.312.093.624.156.967.218.5.063 1 0 1.498-.156.75-.218 1.311-.843 1.405-1.623.062-.468.062-.999-.094-1.467zm-1.217 1.53a.886.886 0 0 1-.655.624 1.96 1.96 0 0 1-1.124-.063s-.031 0-.031-.03v-2.28a1.321 1.321 0 0 1 1.467-.03c.156.124.25.28.312.468.125.406.156.874.031 1.31zM8.52 9.205a5.247 5.247 0 0 0-.999-.281c-.468-.094-.936-.125-1.404-.094a1.805 1.805 0 0 0-1.124.53c-.28.313-.499.687-.561 1.093a4.764 4.764 0 0 0-.094.936c0 .406.094.78.281 1.124.156.28.374.53.655.687a3.078 3.078 0 0 0 2.029.343c.5-.062.967-.218 1.467-.312V9.33c-.063-.032-.156-.094-.25-.125zm-.999 3.214c-.436.156-.905.188-1.342 0a.826.826 0 0 1-.468-.499 2.24 2.24 0 0 1 .032-1.498.93.93 0 0 1 .749-.562c.312-.031.655 0 .936.156.031 0 .031.031.062.031zm16.073-3.277a6.932 6.932 0 0 0-1.154-.28 3.777 3.777 0 0 0-1.186 0c-.718.124-1.28.655-1.498 1.341a3.697 3.697 0 0 0-.125 1.655c.062.499.312.967.718 1.28.093.062.218.155.312.187.25.124.561.218.842.25.344.062.687.062 1.03 0 .5-.094.999-.22 1.467-.313V9.33a5.08 5.08 0 0 0-.406-.188zm-.811 3.277c-.063.032-.094.032-.156.032-.25.062-.5.093-.78.093a.976.976 0 0 1-.78-.405 1.094 1.094 0 0 1-.188-.437c-.062-.375-.062-.75.062-1.124a.932.932 0 0 1 .812-.687c.343-.062.687 0 .999.188z\"},\"child\":[]}]})(props);\n};\nexport function SiZaim (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.748.453C6.13.453 4.852.623 4 1.047c-.51.255-1.191.765-1.446 1.784-.256 1.019.17 1.782.51 2.122a8.258 8.258 0 0 0 2.212 1.613c-1.872.425-3.404.933-4.255 1.528C.512 8.434 0 9.028 0 10.13v9.426c0 1.104.51 1.697.936 2.037 1.533 1.103 5.449 1.953 9.96 1.953 4.513 0 8.429-.765 9.961-1.953.511-.34 1.022-.933 1.022-2.037v-9.426c0-.17 0-.424-.085-.594.255-.085.511-.17.682-.254.51-.255 1.19-.765 1.446-1.784.255-1.019-.17-1.781-.51-2.206-1.192-1.443-4.853-3.142-9.28-4.076C11.833.708 9.62.453 7.748.453Zm.457 1.505c1.573.023 3.548.257 5.67.703 4.853 1.103 8.514 2.887 8.259 4.075-.256 1.189-4.427 1.273-9.195.255-4.852-1.104-8.513-2.887-8.258-4.076.144-.669 1.501-.987 3.524-.957Zm-.287 5.797c1.362.425 2.895.934 4.513 1.273 2.81.68 5.447.85 7.576.765 0 1.189-4 2.208-8.939 2.208-4.937 0-8.938-1.02-8.938-2.208 0-.934 2.383-1.698 5.788-2.038zm-4.343 5.519c1.958.51 4.513.849 7.408.849 2.894 0 5.447-.34 7.406-.849.936.425 1.532.849 1.532 1.273 0 1.189-4 2.208-8.938 2.208-4.938 0-8.94-1.02-8.94-2.208 0-.51.596-.933 1.532-1.273zm0 4.754c1.958.51 4.513.85 7.408.85 2.894 0 5.447-.34 7.406-.85.936.425 1.532.85 1.532 1.275 0 1.189-4 2.206-8.938 2.206-4.938 0-8.94-1.017-8.94-2.206 0-.51.596-.935 1.532-1.275z\"},\"child\":[]}]})(props);\n};\nexport function SiZalando (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.27 24c-.88 0-1.36-.2-1.62-.36-.36-.21-1.02-.75-1.62-2.33A27.06 27.06 0 01.49 12c.02-3.66.59-6.76 1.54-9.3C2.63 1.1 3.29.56 3.65.35 3.91.21 4.39 0 5.27 0c.33 0 .72.03 1.18.1a26.1 26.1 0 018.7 3.3h.01a26.4 26.4 0 017.16 6.01c1.06 1.32 1.19 2.17 1.19 2.59 0 .42-.13 1.27-1.19 2.59a26.4 26.4 0 01-7.16 6h-.01a26.03 26.03 0 01-8.7 3.3c-.46.08-.85.11-1.18.11z\"},\"child\":[]}]})(props);\n};\nexport function SiZalo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.49 10.2722v-.4496h1.3467v6.3218h-.7704a.576.576 0 01-.5763-.5729l-.0006.0005a3.273 3.273 0 01-1.9372.6321c-1.8138 0-3.2844-1.4697-3.2844-3.2823 0-1.8125 1.4706-3.2822 3.2844-3.2822a3.273 3.273 0 011.9372.6321l.0006.0005zM6.9188 7.7896v.205c0 .3823-.051.6944-.2995 1.0605l-.03.0343c-.0542.0615-.1815.206-.2421.2843L2.024 14.8h4.8948v.7682a.5764.5764 0 01-.5767.5761H0v-.3622c0-.4436.1102-.6414.2495-.8476L4.8582 9.23H.1922V7.7896h6.7266zm8.5513 8.3548a.4805.4805 0 01-.4803-.4798v-7.875h1.4416v8.3548H15.47zM20.6934 9.6C22.52 9.6 24 11.0807 24 12.9044c0 1.8252-1.4801 3.306-3.3066 3.306-1.8264 0-3.3066-1.4808-3.3066-3.306 0-1.8237 1.4802-3.3044 3.3066-3.3044zm-10.1412 5.253c1.0675 0 1.9324-.8645 1.9324-1.9312 0-1.065-.865-1.9295-1.9324-1.9295s-1.9324.8644-1.9324 1.9295c0 1.0667.865 1.9312 1.9324 1.9312zm10.1412-.0033c1.0737 0 1.945-.8707 1.945-1.9453 0-1.073-.8713-1.9436-1.945-1.9436-1.0753 0-1.945.8706-1.945 1.9436 0 1.0746.8697 1.9453 1.945 1.9453z\"},\"child\":[]}]})(props);\n};\nexport function SiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.1449 14.1032a.17.17 0 0 1 .0865-.2689l1.7154-.4203c.1261-.0367.1364-.1735.1236-.2288a.1655.1655 0 0 0-.0216-.0401L13.071 8.1627c-.0727-.102-.0294-.2272.0741-.2658l1.3445-.4327a.1669.1669 0 0 0 .0804-.2565L9.5568.0804a.1545.1545 0 0 0-.1886-.068L.099 4.0304a.17.17 0 0 0-.0309.2905l5.1678 3.6718a.1607.1607 0 0 1 .068.1515c-.0015.063-.0488.1081-.0557.1144l-.0402.0247-1.2146.5316a.17.17 0 0 0-.0897.0958v.0402a.1824.1824 0 0 0 .068.1545c1.7749 1.281 3.5502 2.5614 5.3254 3.8418.109.0844.0741.243-.0402.2937l-1.5793.6181c-.1282.054-.1401.2298-.0217.2998l13.1142 7.5724c.1507.0627.2904-.1097.1978-.2442l-5.823-7.3838zm.1483-7.4024a1.0694 1.0694 0 0 1 .136.9272 1.0447 1.0447 0 0 1-.6676.6615l-.3616.1174 3.3195 4.191a1.0478 1.0478 0 0 1-.5656 1.6722l-.6182.1545 4.4816 5.6778A11.677 11.677 0 0 0 12.3168.6305c-.4142 0-.8221.0217-1.2363.0619zM7.211 14.9284a1.0509 1.0509 0 0 1 .139-1.8822l.3771-.1453L3.4587 9.81a1.0509 1.0509 0 0 1 .1916-1.8112l.0618-.0278-1.6906-1.1868a11.68 11.68 0 0 0 17.098 15.021Z\"},\"child\":[]}]})(props);\n};\nexport function SiZapier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.157 0A4.151 4.151 0 0 0 0 4.161v15.678A4.151 4.151 0 0 0 4.157 24h15.682A4.152 4.152 0 0 0 24 19.839V4.161A4.152 4.152 0 0 0 19.839 0H4.157Zm10.61 8.761h.03a.577.577 0 0 1 .23.038.585.585 0 0 1 .201.124.63.63 0 0 1 .162.431.612.612 0 0 1-.162.435.58.58 0 0 1-.201.128.58.58 0 0 1-.23.042.529.529 0 0 1-.235-.042.585.585 0 0 1-.332-.328.559.559 0 0 1-.038-.235.613.613 0 0 1 .17-.431.59.59 0 0 1 .405-.162Zm2.853 1.572c.03.004.061.004.095.004.325-.011.646.064.937.219.238.144.431.355.552.609.128.279.189.582.185.888v.193a2 2 0 0 1 0 .219h-2.498c.003.227.075.45.204.642a.78.78 0 0 0 .646.265.714.714 0 0 0 .484-.136.642.642 0 0 0 .23-.318l.915.257a1.398 1.398 0 0 1-.28.537c-.14.159-.321.284-.521.355a2.234 2.234 0 0 1-.836.136 1.923 1.923 0 0 1-1.001-.245 1.618 1.618 0 0 1-.665-.703 2.221 2.221 0 0 1-.227-1.036 1.95 1.95 0 0 1 .48-1.398 1.9 1.9 0 0 1 1.3-.488Zm-9.607.023c.162.004.325.026.48.079.207.065.4.174.563.314.26.302.393.692.366 1.088v2.276H8.53l-.109-.711h-.065c-.064.163-.155.31-.272.439a1.122 1.122 0 0 1-.374.264 1.023 1.023 0 0 1-.453.083 1.334 1.334 0 0 1-.866-.264.965.965 0 0 1-.329-.801.993.993 0 0 1 .076-.431 1.02 1.02 0 0 1 .242-.363 1.478 1.478 0 0 1 1.043-.303h.952v-.181a.696.696 0 0 0-.136-.454.553.553 0 0 0-.438-.154.695.695 0 0 0-.378.086.48.48 0 0 0-.193.254l-.99-.144a1.26 1.26 0 0 1 .257-.563c.14-.174.321-.302.533-.378.261-.091.54-.136.82-.129.053-.003.106-.007.163-.007Zm4.384.007c.174 0 .347.038.506.114.182.083.34.211.458.374.257.423.377.911.351 1.406a2.53 2.53 0 0 1-.355 1.448 1.148 1.148 0 0 1-1.009.517c-.204 0-.401-.045-.582-.136a1.052 1.052 0 0 1-.48-.457 1.298 1.298 0 0 1-.114-.234h-.045l.004 1.784h-1.059v-4.713h.904l.117.805h.057c.068-.208.177-.401.328-.56a1.129 1.129 0 0 1 .843-.344h.076v-.004Zm7.559.084h.903l.113.805h.053a1.37 1.37 0 0 1 .235-.484.813.813 0 0 1 .313-.242.82.82 0 0 1 .39-.076h.234v1.051h-.401a.662.662 0 0 0-.313.008.623.623 0 0 0-.272.155.663.663 0 0 0-.174.26.683.683 0 0 0-.027.314v1.875h-1.054v-3.666Zm-17.515.003h3.262v.896L3.73 13.104l.034.113h1.973l.042.9H2.4v-.9l1.931-1.754-.045-.117H2.441v-.896Zm11.815 0h1.055v3.659h-1.055V10.45Zm3.443.684.019.016a.69.69 0 0 0-.351.045.756.756 0 0 0-.287.204c-.11.155-.174.336-.189.522h1.545c-.034-.526-.257-.787-.74-.787h.003Zm-5.718.163c-.026 0-.057 0-.083.004a.78.78 0 0 0-.31.053.746.746 0 0 0-.257.189 1.016 1.016 0 0 0-.204.695v.064c-.015.257.057.507.204.711a.634.634 0 0 0 .253.196.638.638 0 0 0 .314.061.644.644 0 0 0 .578-.265c.14-.223.204-.48.189-.74a1.216 1.216 0 0 0-.181-.711.677.677 0 0 0-.503-.257Zm-4.509 1.266a.464.464 0 0 0-.268.102.373.373 0 0 0-.114.276c0 .053.008.106.027.155a.375.375 0 0 0 .087.132.576.576 0 0 0 .397.11v.004a.863.863 0 0 0 .563-.182.573.573 0 0 0 .211-.457v-.14h-.903Z\"},\"child\":[]}]})(props);\n};\nexport function SiZara (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.562 7l.002.006 2.794 7.621v-7.23h-1.15v-.07h3.96c1.903 0 3.231.976 3.231 2.375 0 1.02-.91 1.868-2.263 2.109l-.249.031.25.026c.821.094 1.473.346 1.935.75l.003.003L19.141 7h.07l.002.006 3.556 9.698H24v.07h-3.918v-.07h1.154l-1.17-3.189h-2.373v.002l.013.037c.094.281.142.576.139.873v1.196c0 .615.271 1.238.79 1.238.304 0 .547-.107.837-.372l.041.038c-.314.332-.695.473-1.266.473-.43 0-.8-.104-1.096-.308l-.056-.04c-.39-.296-.644-.778-.753-1.435l-.018-.106-.018-.16-.002-.028-.654 1.78h.928v.07h-1.942v-.07h.938l.718-1.954v-.005a6.35 6.35 0 01-.013-.346v-.854c0-1.049-.78-1.65-2.14-1.65h-1.337v4.81h1.158v.07H9.433v-.07h1.154l-1.17-3.189H6.172l-1.158 3.154.048-.008c1.521-.262 2.22-1.423 2.23-2.645h.07v2.758H0l5.465-9.377H3.268c-1.822 0-2.646 1.407-2.659 2.81H.54v-2.88h6.634l-.04.07-5.425 9.307h2.854c.071 0 .141-.003.212-.009l.072-.006.09-.01L8.491 7h.07zm9.883 2.095l-1.313 3.576.007.007.067.066c.193.197.347.43.452.684l.007.017h2.375l-1.595-4.35zm-10.648 0l-1.599 4.35h3.194l-1.595-4.35zm6.026-1.698h-1.02v4.427h1.336c1.353 0 1.767-.493 1.767-2.107 0-1.517-.72-2.32-2.083-2.32z\"},\"child\":[]}]})(props);\n};\nexport function SiZazzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 12C0 5.382 5.382 0 12 0s12 5.382 12 12-5.382 12-12 12S0 18.618 0 12zm5.936 6.179c.134.177.422.155.665-.045.532-.42 1.042-.753 2.016-.753 1.839 0 3.301 1.152 5.495 1.152 1.684.021 2.747-.62 3.346-1.485.465-.664.686-1.573.686-2.282 0-.997-.576-1.662-1.573-1.662-.953 0-1.373.487-1.419 1.196-.021.288-.021.843-.199 1.108-.177.288-.51.377-.908.377-1.042 0-2.283-.841-3.655-.841h-.2l8.928-7.223c.155-.112.222-.377.045-.51l-1.374-1.618c-.244-.222-.421-.199-.665 0-.466.377-.908.754-1.861.754-1.552 0-3.213-.975-5.383-.975-1.55 0-2.416.576-3.014 1.197-.576.62-.974 1.617-.974 2.57 0 .975.576 1.595 1.529 1.595.864 0 1.374-.487 1.374-1.174 0-.398.021-.753.199-1.018.155-.266.554-.51 1.108-.51.864 0 2.503.597 3.523.597h.066l-9.04 7.179c-.177.133-.177.442-.066.597Z\"},\"child\":[]}]})(props);\n};\nexport function SiZcash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 0A12 12 0 0 0 0 12a12.013 12.013 0 0 0 12 12 12 12 0 1 0 0-24zm-1.008 4.418h2.014v2.014l3.275-.002v1.826l-5.08 6.889h5.08v2.423h-3.275v2.006h-2.012v-2.006H7.72v-1.826l5.074-6.888H7.719V6.432h3.273V4.418z\"},\"child\":[]}]})(props);\n};\nexport function SiZcool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.467.438c-.096-.011-.162.03-.2.12-.58 1.397-1.603 2.45-3.067 3.157-.687.333-1.326.556-1.916.67-1.049.203-1.97.413-2.762.631C3.442 6.135.197 9.2.01 13.59c-.092 2.153.46 4.103 1.657 5.85 2.826 4.127 8.452 5.384 12.722 2.732 2.281-1.417 3.734-3.479 4.359-6.186a.146.148 84 0 1 .084-.103c.282-.128.582-.226.857-.368 2.081-1.072 3.515-2.725 4.301-4.96a.181.183 13.8 0 0-.144-.24.253.253 0 0 0-.127.011c-.937.327-1.907.549-2.909.666a.03.03 0 0 1-.028-.047c1.979-2.682 2.912-5.72 2.799-9.112-.003-.1-.052-.162-.148-.188a.175.17 28.9 0 0-.174.048c-2.14 2.292-4.711 3.686-7.715 4.185-.077.012-.098-.016-.063-.086.805-1.595.766-3.625.145-5.23a.196.196 0 0 0-.158-.123zm-2.151 13.195c.097-.013.115.057.053.209a6.621 6.621 0 0 1-1.258 2.003c-.88.963-1.967 1.343-3.265 1.139a2.952 2.952 0 0 1-1.856-1.111.088.088 0 0 1 .001-.109.15.15 0 0 1 .109-.058c2.184-.205 4.073-1.122 6.092-2.033a.462.462 0 0 1 .124-.04zm-12.231.618c.04.005.1.04.182.11.739.624 1.679 1.212 2.644 1.296a.119.119 0 0 1 .095.171c-.556 1.113-1.661.87-2.283.025a4.223 4.223 0 0 1-.665-1.358c-.049-.17-.04-.252.027-.244z\"},\"child\":[]}]})(props);\n};\nexport function SiZdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.014 4.987A7.02 7.02 0 000 12.005a7.017 7.017 0 0013.271 3.174h2.915c.696 0 1.324-.044 1.962-.553.461-.365.749-.884.883-1.56v2.103h1.336v-2.473h3.153v-1.1h-3.16l.02-.445c.005-.724.226-1.162 1.277-1.162H24V8.876h-2.818c-1.517 0-2.141.85-2.141 2.18v.129c-.254-1.565-1.185-2.31-2.889-2.31h-2.855a7.018 7.018 0 00-6.283-3.888zM8.02 8.876h3.436c1.742 0 1.992 1.219 1.992 1.9 0 .725-.298 1.873-1.992 1.873h-.844c-1.056 0-1.281.38-1.281 1.104v.336h3.945v1.074H7.982v-1.558c0-1.335.625-2.123 2.137-2.123h.873c.691 0 1.1-.14 1.1-.725 0-.605-.409-.772-1.12-.772h-2.95v-1.11zm6.63 1.113h1.472c1.157 0 1.574.496 1.574 2.04 0 1.542-.412 2.036-1.574 2.036H14.65z\"},\"child\":[]}]})(props);\n};\nexport function SiZebpay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.736 10.245S17.304 21.238 16.902 20.83l.905-1.091L6.828 9.31c-.331.279-.698.592-1.092.935Zm-4.88 4.38s-.828.823-.855 1.97c-.018.52.134 1.108.604 1.713 0 0 .007.012.026.035a2.267 2.267 0 0 0 .733.51c.038.016.08.035.126.05.11.042.237.077.373.108a4.28 4.28 0 0 0 1.217.064l.222-.023c.076-.011.153-.02.232-.034.08-.012.161-.027.245-.042.007 0 .011 0 .02-.004.007 0 .015 0 .022-.004.768-.151 1.706-.467 2.836-1.022l-4.702-4.478c-.373.38-.743.767-1.1 1.156Zm8.276-7.472s-.305.236-.801.636l-.294.236 10.907 10.378.92-1.093L9.161 7.12c-.011.01-.019.022-.03.033Zm-5.91 5.07 5.126 4.882a5.421 5.421 0 0 1 1.738-.32L4.27 11.245c-.343.314-.693.64-1.047.978Zm5.529-8.885s-.414.14-.61.46L20.96 16.011l.921-1.09L9.544 3.158c-.276.04-.544.096-.793.18Zm5.959.443s-1.081-.353-2.434-.556l10.818 10.253.906-1.07-.722-.682-8.18-7.79c-.128-.05-.256-.103-.388-.155Z\"},\"child\":[]}]})(props);\n};\nexport function SiZebratechnologies (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.145 13.109H4.6v-1.545l.545.546v.999zm-2.183-.095.546.546v.771L2.417 13.24v-3.092L1.003 8.739a2.73 2.73 0 0 1 .465-.306l1.494 1.489V8.126a.899.899 0 0 1 .084 1.793h.7l.002.003.543.543H2.962v2.549zm.546-2.545-.003 2.636h.546l.002-2.088-.545-.548zm1.873 1.095-.546-.546h-.781l.545.546h.782zm-3.51 1.162v-2.348L.616 9.125c-.118.143-.221.299-.308.464l1.016 1.016v.771L.093 10.144c-.059.217-.09.445-.093.68l1.87 1.902zM.01 11.604v.772l3.498 3.499v-.772L.01 11.605zm6.227.815h-.546v.69h-.546a.899.899 0 1 0 1.798 0l-.706-.69zm2.977.701 1.658-3.186h-2.55l-.41.78h1.469l-1.659 3.185h2.551l.41-.779H9.213zm2.95-2.407h1.307v-.779h-2.27V13.9h2.27v-.778h-1.308v-.82h1.308v-.78h-1.308v-.808zm1.78-.779V13.9h1.622c.404 0 .642-.053.838-.184.256-.173.404-.5.404-.868 0-.291-.089-.523-.267-.69-.125-.119-.232-.172-.476-.226.214-.059.303-.112.416-.231a.937.937 0 0 0 .268-.69c0-.38-.167-.72-.44-.886-.214-.136-.505-.19-1.01-.19h-1.356zm.962.72h.226c.452 0 .636.136.636.457 0 .327-.184.464-.624.464h-.238v-.921zm0 1.622h.22c.291 0 .387.012.493.072.143.077.214.214.214.404 0 .32-.172.458-.576.458h-.35v-.934zm3.239.09.868 1.533h1.153l-.874-1.456c.511-.202.767-.6.767-1.207 0-.434-.155-.79-.428-1.005-.262-.202-.642-.297-1.165-.297h-1.284V13.9h.963v-1.533zm0-.541v-1.1h.368c.34 0 .571.226.571.553 0 .344-.238.547-.63.547h-.309zm4.566 1.294h-1.285l-.245.78h-1.015l1.308-3.964h1.224L24 13.899h-1.045l-.244-.78zm-.244-.78-.398-1.269-.398 1.27h.796z\"},\"child\":[]}]})(props);\n};\nexport function SiZedindustries (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.25 1.5a.75.75 0 0 0-.75.75v16.5H0V2.25A2.25 2.25 0 0 1 2.25 0h20.095c1.002 0 1.504 1.212.795 1.92L10.764 14.298h3.486V12.75h1.5v1.922a1.125 1.125 0 0 1-1.125 1.125H9.264l-2.578 2.578h11.689V9h1.5v9.375a1.5 1.5 0 0 1-1.5 1.5H5.185L2.562 22.5H21.75a.75.75 0 0 0 .75-.75V5.25H24v16.5A2.25 2.25 0 0 1 21.75 24H1.655C.653 24 .151 22.788.86 22.08L13.19 9.75H9.75v1.5h-1.5V9.375A1.125 1.125 0 0 1 9.375 8.25h5.314l2.625-2.625H5.625V15h-1.5V5.625a1.5 1.5 0 0 1 1.5-1.5h13.19L21.438 1.5z\"},\"child\":[]}]})(props);\n};\nexport function SiZelle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.559 24h-2.841a.483.483 0 0 1-.483-.483v-2.765H5.638a.667.667 0 0 1-.666-.666v-2.234a.67.67 0 0 1 .142-.412l8.139-10.382h-7.25a.667.667 0 0 1-.667-.667V3.914c0-.367.299-.666.666-.666h4.23V.483c0-.266.217-.483.483-.483h2.841c.266 0 .483.217.483.483v2.765h4.323c.367 0 .666.299.666.666v2.137a.67.67 0 0 1-.141.41l-8.19 10.481h7.665c.367 0 .666.299.666.666v2.477a.667.667 0 0 1-.666.667h-4.32v2.765a.483.483 0 0 1-.483.483Z\"},\"child\":[]}]})(props);\n};\nexport function SiZend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 .467L9.01 20.217H20.54A3.46 3.46 0 0024 16.757V.468zM3.459 3.783C1.585 3.783 0 5.153 0 7.1v16.433l15.063-19.75H3.459Z\"},\"child\":[]}]})(props);\n};\nexport function SiZendesk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.914 2.904V16.29L24 2.905H12.914zM0 2.906C0 5.966 2.483 8.45 5.543 8.45s5.542-2.484 5.543-5.544H0zm11.086 4.807L0 21.096h11.086V7.713zm7.37 7.84c-3.063 0-5.542 2.48-5.542 5.543H24c0-3.06-2.48-5.543-5.543-5.543z\"},\"child\":[]}]})(props);\n};\nexport function SiZenn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.264 23.771h4.984c.264 0 .498-.147.645-.352L19.614.874c.176-.293-.029-.645-.381-.645h-4.72c-.235 0-.44.117-.557.323L.03 23.361c-.088.176.029.41.234.41zM17.445 23.419l6.479-10.408c.205-.323-.029-.733-.41-.733h-4.691c-.176 0-.352.088-.44.235l-6.655 10.643c-.176.264.029.616.352.616h4.779c.234-.001.468-.118.586-.353z\"},\"child\":[]}]})(props);\n};\nexport function SiZenodo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23.82698 11.163a2.2419 2.2419 0 00-.46698-.68697 2.1499 2.1499 0 00-1.52393-.62697 2.10991 2.10991 0 00-1.20695.36499 2.2469 2.2469 0 00-.49498.45398c-.06.075-.125.17499-.163.23599a2.68689 2.68689 0 00-.20498.46398c.006-.27.046-.67197.20499-.89797V8.52212a.42698.42698 0 00-.137-.32199.44298.44298 0 00-.31698-.132.43998.43998 0 00-.32299.132.43998.43998 0 00-.13.32199v1.73292a2.3699 2.3699 0 00-.59197-.29898 2.1239 2.1239 0 00-1.49994.06 2.1599 2.1599 0 00-1.15295 1.14695l-.024.06a2.2419 2.2419 0 00-.48997-.74697 2.1529 2.1529 0 00-1.52394-.62698 2.10991 2.10991 0 00-.84296.167 2.2299 2.2299 0 00-.68697.45998 2.10591 2.10591 0 00-.46598.68697l-.023.056-.023-.056a2.1549 2.1549 0 00-1.98992-1.31395c-.30098 0-.58197.056-.84196.167a2.2299 2.2299 0 00-.68597.45998c-.2.19599-.35499.42398-.46698.68697l-.02.053-.022-.053a2.2429 2.2429 0 00-.46698-.68698 2.1479 2.1479 0 00-1.52293-.62697 2.10991 2.10991 0 00-.84197.167 2.2289 2.2289 0 00-.64197.41798v-.072a.46298.46298 0 00-.46198-.46298H.53398a.46298.46298 0 000 .92596h2.54889L.091 14.84985a.46198.46198 0 00-.091.27499v.30198c0 .256.207.46298.46298.46298h3.44985a.46198.46198 0 00.46198-.42998 2.1689 2.1689 0 001.34695.47198c.44598 0 .84396-.12 1.19494-.35998.283-.192.50698-.43098.66998-.71997v.62597c0 .127.043.235.13.32199a.43598.43598 0 00.32398.132c.12 0 .22399-.044.31598-.132a.42698.42698 0 00.138-.32199V13.8579h-.002l.002-.003H7.36069a.43998.43998 0 00-.41799.28699l-.074.152a1.23395 1.23395 0 01-.45997.53197 1.23395 1.23395 0 01-.68697.197c-.168 0-.32999-.031-.48498-.095a1.17495 1.17495 0 01-.39999-.27 1.38194 1.38194 0 01-.26998-.39998 1.16495 1.16495 0 01-.1-.47698v-.40598h4.02783v-1.37494a1.23695 1.23695 0 01.36498-.87796 1.23995 1.23995 0 01.88996-.36499c.167 0 .32899.032.48398.095.155.065.289.154.39999.27.112.11499.19999.24898.26898.39997.067.151.102.311.102.47798v3.47686c0 .12799.043.23599.13.32298a.43798.43798 0 00.32398.132c.12 0 .224-.044.31599-.132a.43098.43098 0 00.137-.32299v-.62297a2.1439 2.1439 0 001.86791 1.07795c.29399 0 .57398-.056.83697-.168.26199-.11099.49298-.26398.69297-.45997a2.11191 2.11191 0 00.48398-.73297l.018.047c.111.26199.26699.48998.46598.68697.19999.195.42798.34799.68697.45998.25799.11.53997.167.84296.167a2.1469 2.1469 0 001.52294-.62698c.19499-.196.35098-.42498.46698-.68697l.024-.06.024.06c.115.26199.26998.48998.46598.68697a2.1439 2.1439 0 001.52393.62697c.29398 0 .57397-.056.83696-.168a2.2199 2.2199 0 00.69297-.45997 2.11691 2.11691 0 00.63498-1.52194v-1.78192a2.07991 2.07991 0 00-.173-.83696zM1.15995 14.96485l2.4199-3.25886c-.012.096-.02.194-.02.29399v1.77992c0 .296.058.57398.174.83797.05399.123.11799.23899.18998.34698zm5.81775-2.49989H4.4678v-.46498a1.24195 1.24195 0 01.76498-1.14695c.15199-.064.31498-.096.48998-.096.16799 0 .32998.032.48398.095.15599.065.28998.154.39998.26999.112.115.19999.24899.26999.39998.068.151.1.31099.1.47798zm8.05766 1.31594a1.24895 1.24895 0 01-1.25395 1.24295c-.168 0-.32898-.032-.48498-.096a1.16795 1.16795 0 01-.39998-.26999 1.37594 1.37594 0 01-.26899-.39998 1.15895 1.15895 0 01-.1-.47698v-1.78092a1.23995 1.23995 0 011.25495-1.24295c.16599 0 .32798.032.48198.095.15599.065.28998.154.39998.26999.112.115.201.24899.26999.39998.067.152.101.31099.101.47798zm4.02783 0c0 .167-.033.32599-.1.47798a1.37994 1.37994 0 01-.27.39999 1.15995 1.15995 0 01-.39998.26998 1.25995 1.25995 0 01-.48397.094 1.23195 1.23195 0 01-.88997-.36398 1.24195 1.24195 0 01-.36598-.87796v-1.78093c0-.16699.035-.32598.102-.47798a1.39994 1.39994 0 01.26998-.39998 1.15995 1.15995 0 01.39999-.26999 1.26995 1.26995 0 01.48398-.095 1.24995 1.24995 0 01.88996.36499 1.24995 1.24995 0 01.36398.87796zm4.02782 0a1.22395 1.22395 0 01-.36398.87797c-.116.116-.24999.20499-.39998.26998a1.24995 1.24995 0 01-.48998.094 1.26995 1.26995 0 01-.48498-.095 1.16895 1.16895 0 01-.39999-.26998 1.37994 1.37994 0 01-.26998-.39999 1.15695 1.15695 0 01-.1-.47698v-1.78092a1.23995 1.23995 0 011.25494-1.24295c.167 0 .32799.032.48298.095.156.065.29.154.39999.27.112.11499.20099.24898.26998.39997.067.152.1.311.1.47798v1.77993z\"},\"child\":[]}]})(props);\n};\nexport function SiZensar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.929 13.776c.28.084 1.01.205 1.662.205 1.047 0 1.64-.463 1.64-1.283 0-.683-.464-1.01-1.412-1.29-.73-.213-1.04-.319-1.04-.653 0-.38.334-.562.744-.554.561.008 1.062.425 1.336 1.131h.129v-1.131a7.835 7.835 0 0 0-1.412-.167c-1.07 0-1.678.47-1.678 1.23 0 .615.41.979 1.313 1.237.896.258 1.177.364 1.177.744 0 .341-.364.57-.82.57-.721 0-1.275-.54-1.518-1.284h-.121v1.245zm-1.911-3.72c-.4 0-.847.207-1.253.651v-.597H8.023v.144c.418 0 .6.213.6.524v3.127H9.78v-2.974c.243-.253.495-.343.66-.343.32 0 .564.205.564.623v2.694h1.166v-2.694c0-.699-.378-1.154-1.152-1.154zm-5.606 1.921v.228c0 .88.402 1.412 1.161 1.412.501 0 .88-.243 1.154-.615l.137.083c-.334.585-.934.896-1.678.896-1.427 0-2.11-.804-2.11-2.027 0-1.199.835-1.935 2.004-1.935 1.177 0 1.807.698 1.807 1.73v.228H5.412zm.463-1.768a.986.986 0 0 0-.463.107v1.464h1.192v-.767c0-.508-.243-.804-.729-.804zm14.5 1.077v2.62H19.13v-.433a1.72 1.72 0 0 1-1.214.508c-.73 0-1.185-.417-1.185-.964s.365-.804.767-.934l1.617-.53v-.57c0-.494-.25-.774-.706-.774-.15 0-.271.018-.387.05v1.08a1.497 1.497 0 0 1-.516.084c-.38 0-.623-.22-.623-.524 0-.561.79-.865 1.754-.865 1.01 0 1.738.342 1.738 1.252zm-1.822 2.194a.767.767 0 0 0 .562-.213v-1.51l-1.1.367v.711c0 .425.181.645.538.645zM3.681 10.21v-.099H.121v1.48h.13c.106-.645.645-1.328 1.54-1.328v1.746L0 13.807v.098h3.651V12.35h-.129c-.114.653-.698 1.404-1.624 1.404v-1.745l1.783-1.8zM24 10.042v1.1h-.66c-.384 0-.682.058-.866.403v2.36h-1.157v-3.127c0-.311-.182-.524-.6-.524v-.144h1.742v1.146c.37-.83.795-1.214 1.366-1.214H24z\"},\"child\":[]}]})(props);\n};\nexport function SiZerodha (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.378 5.835A27.267 27.267 0 0124 12.169V0H13.666c2.486 1.343 4.763 3.308 6.712 5.835zM5.48 1.297c-1.914 0-3.755.409-5.48 1.166V24h22.944C22.766 11.44 15 1.297 5.48 1.297z\"},\"child\":[]}]})(props);\n};\nexport function SiZerotier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.01 0A3.999 3.999 0 0 0 .014 4v16c0 2.209 1.79 4 3.996 4h15.98a3.998 3.998 0 0 0 3.996-4V4c0-2.209-1.79-4-3.996-4zm-.672 2.834h17.326a.568.568 0 1 1 0 1.137h-8.129c.021.059.033.123.033.19v1.804A6.06 6.06 0 0 1 18.057 12c0 3.157-2.41 5.75-5.489 6.037v2.56a.568.568 0 1 1-1.136 0v-2.56A6.061 6.061 0 0 1 5.943 12a6.06 6.06 0 0 1 5.489-6.035V4.16c0-.066.012-.13.033-.19H3.338a.568.568 0 1 1 0-1.136zm8.094 4.307A4.89 4.89 0 0 0 7.113 12a4.89 4.89 0 0 0 4.319 4.86zm1.136 0v9.718A4.892 4.892 0 0 0 16.888 12a4.892 4.892 0 0 0-4.32-4.86z\"},\"child\":[]}]})(props);\n};\nexport function SiZerply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.779 18.746c-.747.714-1.562 1.017-2.543 1.017-1.32 0-3.322-.61-4.846-1.66-1.629-1.119-3.765-2.237-5.562-2.271 1.323-1.798 3.39-3.628 5.322-5.798.713-.78 4.983-5.7 5.73-6.586.54-.645.813-1.424.813-2.205 0-.3-.033-.585-.101-.855-2.035.405-3.561.601-6.001.601-2.677.015-4.607-.314-5.73-.989-.78 1.018-1.56 2.373-1.56 3.12 0 .948.918 1.728 3.189 1.728.746 0 1.965-.034 3.66-.169-3.492 4.5-6.949 8.16-9.016 10.47-.713.781-1.121 1.83-1.121 2.881 0 .405.075.81.18 1.185.645-.104 1.291-.179 1.965-.179 1.395 0 2.79.299 4.081.839C11.805 21.014 14.205 24 16.921 24c2.204 0 4.065-1.741 4.065-4.036 0-.404-.061-.825-.195-1.229l-.012.011z\"},\"child\":[]}]})(props);\n};\nexport function SiZettlr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.46.188C.335.57.023 2.534.022 4.295L.02 17.325c0 1.545-.224 3.96.723 5.28 1.201 1.673 3.567 1.355 5.365 1.351l8.31.03c1.61-.003 5.626.104 7.2-.23 2.115-.448 2.326-2.31 2.328-4.082l.01-13.634c.001-1.532.311-3.425-.68-4.71C22.021-.296 19.557.025 17.744.026L13.24.043c-1.614 0-9.195-.14-10.782.145m14.249 3.665c0 .528.185 1.466-.037 1.947-.11.239-.49.384-.703.518-.496.315-.961.676-1.418 1.044-1.477 1.185-3.034 2.818-3.428 4.74-.182.895-.164 1.988.59 2.626 1.21 1.023 3.035-.024 4.317.987 1.337 1.053 1.14 3.071.37 4.39-.184.316-.417.797-.75.982-.23.13-.598.064-.853.064h-1.85c.057-.37.35-.58.575-.862.374-.47.673-.984.668-1.6-.01-1.157-1.127-1.17-1.983-1.17-1.518 0-3.296-.216-4.073-1.724-1.337-2.595.33-5.731 2.105-7.633.695-.746 1.684-1.333 2.276-2.154h-4.07V3.853z\"},\"child\":[]}]})(props);\n};\nexport function SiZhihu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.721 0C2.251 0 0 2.25 0 5.719V18.28C0 21.751 2.252 24 5.721 24h12.56C21.751 24 24 21.75 24 18.281V5.72C24 2.249 21.75 0 18.281 0zm1.964 4.078c-.271.73-.5 1.434-.68 2.11h4.587c.545-.006.445 1.168.445 1.171H9.384a58.104 58.104 0 01-.112 3.797h2.712c.388.023.393 1.251.393 1.266H9.183a9.223 9.223 0 01-.408 2.102l.757-.604c.452.456 1.512 1.712 1.906 2.177.473.681.063 2.081.063 2.081l-2.794-3.382c-.653 2.518-1.845 3.607-1.845 3.607-.523.468-1.58.82-2.64.516 2.218-1.73 3.44-3.917 3.667-6.497H4.491c0-.015.197-1.243.806-1.266h2.71c.024-.32.086-3.254.086-3.797H6.598c-.136.406-.158.447-.268.753-.594 1.095-1.603 1.122-1.907 1.155.906-1.821 1.416-3.6 1.591-4.064.425-1.124 1.671-1.125 1.671-1.125zM13.078 6h6.377v11.33h-2.573l-2.184 1.373-.401-1.373h-1.219zm1.313 1.219v8.86h.623l.263.937 1.455-.938h1.456v-8.86z\"},\"child\":[]}]})(props);\n};\nexport function SiZig (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m23.53 1.02-7.686 3.45h-7.06l-2.98 3.452h7.173L.47 22.98l7.681-3.607h7.065v-.002l2.978-3.45-7.148-.001 12.482-14.9zM0 4.47v14.901h1.883l2.98-3.45H3.451v-8h.942l2.824-3.45H0zm22.117 0-2.98 3.608h1.412v7.844h-.942l-2.98 3.45H24V4.47h-1.883z\"},\"child\":[]}]})(props);\n};\nexport function SiZigbee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.988 0a11.85 11.85 0 00-8.617 3.696c7.02-.875 11.401-.583 13.289-.34 3.752.583 3.558 3.404 3.558 3.404L8.237 19.112c2.299.22 6.897.366 13.796-.631a11.86 11.86 0 001.912-6.469C23.945 5.374 18.595 0 11.988 0zm.232 4.31c-2.451-.014-5.772.146-9.963.723C.854 7.003.055 9.41.055 12.012.055 18.626 5.38 24 11.988 24c3.63 0 6.85-1.63 9.053-4.182-7.286.948-11.813.631-13.75.388-3.775-.56-3.557-3.404-3.557-3.404L15.691 4.474a38.635 38.635 0 00-3.471-.163Z\"},\"child\":[]}]})(props);\n};\nexport function SiZigbee2Mqtt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.044 0 .038 7.03v9.94L7.044 24h9.91l7.008-7.03V7.03L16.954 0Zm4.525 1.904c.02.001.04.011.047.03l.467.96a.765.765 0 0 1 .242 0l.467-.958a.053.053 0 0 1 .047-.032l.838-.031c.028 0 .053.02.054.049a.052.052 0 0 1-.05.053l-.805.03-.28.968c.356.164.604.543.604.986 0 .155-.03.304-.086.437.019.015.039.03.053.045 0 0 .098.144.184.338 1.641.462 5.698 1.05 5.238 2.32-.517 1.428-3.34.991-3.813.604-.64-.525-1.184-1.019-1.529-1.414a2.546 2.546 0 0 1-.064.148 5.27 5.27 0 0 1-1.97.034 2.038 2.038 0 0 1-.089-.184c-.343.4-.898.905-1.555 1.443-.472.387-3.295.824-3.812-.603-.467-1.288 3.709-1.873 5.305-2.338.084-.204.181-.35.181-.35a.322.322 0 0 1 .05-.044 1.137 1.137 0 0 1-.085-.436c0-.443.249-.822.604-.986l-.278-.967-.806-.031a.052.052 0 0 1-.051-.053c.001-.028.026-.05.054-.049zm1.63 4.92c.082.173.168.385.243.623-.743.207-1.766.164-2.472-.037.068-.21.144-.398.218-.556a5.678 5.678 0 0 0 2.01-.03zm-2.321.908c.768.219 1.84.265 2.668.038.047.203.082.418.098.636-.82.3-2.113.237-2.872-.04.018-.218.057-.432.106-.634zm-.106 1.057c.812.26 2.023.314 2.887.043a2.53 2.53 0 0 1-.12.686c-.676.236-1.88.218-2.66-.053-.066-.22-.1-.448-.107-.676zm.264 1.139c.727.182 1.613.193 2.266.05-.156.252-.376.48-.676.67a.747.747 0 0 1-.887 0c-.549-.347-.703-.751-.703-.72Zm2.858 2.136c.14-.002.162.077.164.16l.064 3.712c.002.089-.024.161-.158.164l-.65.011c-.121.002-.163-.058-.165-.158l-.064-3.713c-.002-.12.059-.162.158-.164zm-2.565.045c.14-.002.163.077.164.16l.067 3.711c.002.115-.052.163-.16.165l-.649.011c-.128.002-.164-.064-.166-.158l-.064-3.713c-.002-.114.05-.162.16-.164zm.633 6.057c.133.033.471.124.582.432a1 1 0 0 1 .055.34v1.35c0 .102-.013.196-.037.284-.095.342-.425.47-.768.516v.223c0 .1-.045.146-.147.146h-.625c-.126 0-.146-.068-.146-.146v-.223c-.314-.046-.527-.141-.637-.283a.821.821 0 0 1-.164-.518v-1.35a1 1 0 0 1 .055-.34c.11-.307.45-.398.584-.431.165-.04.373-.062.625-.062s.459.021.623.062zm-4.492 0c.068 0 .129.017.187.121l.365.662c.036.063.053.07.075.07h.035c.022 0 .039-.006.074-.07l.361-.662c.05-.089.098-.121.188-.121h.658c.078 0 .147.02.147.146v2.633c0 .101-.046.147-.147.147h-.627c-.101 0-.146-.046-.146-.147v-1.431l-.239.443a.222.222 0 0 1-.216.13h-.163a.221.221 0 0 1-.214-.13l-.24-.443v1.431c0 .101-.046.147-.147.147h-.606c-.1 0-.146-.046-.146-.147v-2.633c0-.126.068-.146.146-.146h.655zm7.75 0c.078 0 .146.02.146.146v.49c0 .127-.068.147-.146.147h-.598v1.996c0 .078-.02.147-.146.147h-.659c-.1 0-.146-.046-.146-.147V18.95h-.598c-.102 0-.144-.038-.144-.146v-.49c0-.109.043-.147.144-.147h2.147zm2.666 0c.078 0 .146.02.146.146v.49c0 .127-.068.147-.146.147h-.598v1.996c0 .078-.02.147-.146.147h-.659c-.1 0-.146-.046-.146-.147V18.95h-.598c-.102 0-.144-.038-.144-.146v-.49c0-.109.043-.147.144-.147h2.147zm-6.828.79a.173.173 0 0 0-.06.132v1.11c0 .053.019.1.06.136.083.075.479.075.562 0a.177.177 0 0 0 .06-.137v-1.11a.173.173 0 0 0-.06-.132c-.083-.075-.48-.075-.562 0z\"},\"child\":[]}]})(props);\n};\nexport function SiZiggo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.555 18.69a3 3 0 0 0-2.52-2.865h-6.3l7.26-6.945a2.145 2.145 0 0 0 .495-2.34 2.1 2.1 0 0 0-2.205-1.23h-9a2.79 2.79 0 0 0 2.19 2.895h5.175L6 15.375a2.01 2.01 0 0 0-.42 2.13 1.965 1.965 0 0 0 2.115 1.185zM2.85 18.6a2.535 2.535 0 0 0 2.55 2.535h13.2a2.536 2.537 0 0 0 2.55-2.535V7.92A2.865 2.865 0 0 1 24 5.31V18.6a5.385 5.385 0 0 1-5.4 5.4H5.4A5.385 5.385 0 0 1 0 18.6V5.4A5.385 5.385 0 0 1 5.4 0h13.2a5.595 5.595 0 0 1 2.07.405A5.235 5.235 0 0 1 22.635 1.8a1.5 1.5 0 0 1 .42 1.005 1.41 1.41 0 0 1-.42 1.02 1.5 1.5 0 0 1-2.025 0A2.685 2.685 0 0 0 19.59 3a2.43 2.43 0 0 0-.99-.195H5.4A2.505 2.505 0 0 0 2.865 5.4z\"},\"child\":[]}]})(props);\n};\nexport function SiZilch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.421 6.149c3.292-2.011 6.584-4.036 9.862-6.046a.702.702 0 0 1 .83.073c1.312 1.18 2.637 2.36 3.948 3.54a.694.694 0 0 1 .175.815 1737.248 1737.248 0 0 1-4.341 9.338.61.61 0 0 0 .408.845c1.427.335 2.855.656 4.283.991a.546.546 0 0 1 .204.976c-3.234 2.375-6.483 4.749-9.717 7.124a.986.986 0 0 1-1.136.029l-4.633-3.016a.691.691 0 0 1-.248-.888c1.326-2.812 2.666-5.623 3.992-8.421a.78.78 0 0 0-.146-.859 802.196 802.196 0 0 0-3.583-3.569c-.277-.262-.219-.729.102-.932Z\"},\"child\":[]}]})(props);\n};\nexport function SiZillow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.006 0L1.086 8.627v3.868c3.386-2.013 11.219-5.13 14.763-6.015.11-.024.16.005.227.078.372.427 1.586 1.899 1.916 2.301a.128.128 0 0 1-.03.195 43.607 43.607 0 0 0-6.67 6.527c-.03.037-.006.043.012.03 2.642-1.134 8.828-2.94 11.622-3.452V8.627zm-.48 11.177c-2.136.708-8.195 3.307-10.452 4.576V24h21.852v-7.936c-2.99.506-11.902 3.16-15.959 5.246a.183.183 0 0 1-.23-.036l-2.044-2.429c-.055-.061-.062-.098.011-.208 1.574-2.3 4.789-5.899 6.833-7.418.042-.03.031-.06-.012-.042Z\"},\"child\":[]}]})(props);\n};\nexport function SiZincsearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"m18.723 19.748-1.73 1.493H.678L0 18.77l10.63-9.343.542 6.635h8.701a3.649 3.649 0 0 1-1.15 3.686zM5.277 4.252l1.73-1.493h16.316L24 5.23l-10.63 9.343-.542-6.635H4.129a3.648 3.648 0 0 1 1.148-3.686Z\"},\"child\":[]}]})(props);\n};\nexport function SiZingat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.995 24c-.232-.287-.46-.57-.687-.856a82.547 82.547 0 0 1-4.373-6.027 38.926 38.926 0 0 1-2.498-4.335c-.44-.88-.792-1.801-1.052-2.749a6.21 6.21 0 0 1-.159-2.168 8.381 8.381 0 0 1 1.85-4.557A8.71 8.71 0 0 1 9.906.249a8.593 8.593 0 0 1 2.365-.243c1.955.07 3.715.693 5.251 1.909a8.503 8.503 0 0 1 2.944 4.336c.25.831.364 1.696.337 2.562a6.695 6.695 0 0 1-.376 1.856c-.385 1.179-.919 2.29-1.517 3.374-.302.551-.624 1.088-.938 1.628a1.055 1.055 0 0 1-.035.056.987.987 0 0 1-.904.604.985.985 0 0 1-.97-.83 1.25 1.25 0 0 1-.016-.202v-4.832a.295.295 0 0 0-.135-.275c-.526-.39-1.044-.792-1.564-1.189l-2.269-1.734a.103.103 0 0 0-.143-.006l-.006.006-3.825 2.92a.981.981 0 0 1-1.23-1.53l.025-.018c.184-.144.368-.288.562-.428a.168.168 0 0 0 .076-.152V5.737a.986.986 0 0 1 .95-1.23c.534 0 .976.437.981.971.022.086.034.174.035.263l-.001.915 1.274-.972c.211-.162.421-.325.633-.486a.966.966 0 0 1 1.168-.007c1.619 1.227 3.239 2.457 4.858 3.688.143.104.275.222.394.352a.84.84 0 0 1 .184.561v1.647c.157-.35.303-.704.437-1.065.124-.309.226-.626.304-.95.11-.486.093-.983.048-1.477a4.853 4.853 0 0 0-.086-.678 6.854 6.854 0 0 0-.276-.884 6.776 6.776 0 0 0-.926-1.71c-.954-1.237-2.208-2.045-3.694-2.494a4.382 4.382 0 0 0-.944-.164c-.45-.028-.9-.038-1.35-.031-.873 0-1.681.259-2.469.62a6.946 6.946 0 0 0-2.649 2.166c-.393.517-.656 1.108-.901 1.713a5.154 5.154 0 0 0-.329 1.642c-.028.452-.037.904.069 1.344.089.342.201.678.334 1.005.538 1.392 1.244 2.701 2.008 3.98a64.18 64.18 0 0 0 4.378 6.355c.187-.159.342-.352.488-.552.552-.751 1.101-1.502 1.648-2.256.174-.241.368-.449.675-.527a.976.976 0 0 1 1.196.804 1 1 0 0 1-.211.754c-.778 1.058-1.55 2.12-2.339 3.168-.441.586-.908 1.152-1.364 1.725l-.066.073Zm.027-13.788h.81a1.03 1.03 0 0 1 1.018 1.022v1.621c0 .56-.461 1.021-1.021 1.021h-1.607a1.03 1.03 0 0 1-1.041-1.004v-1.614a1.027 1.027 0 0 1 .997-1.046h.844Zm.869 1.837v-.778c0-.074-.026-.104-.101-.104h-1.54c-.082 0-.105.032-.105.11v1.525c0 .08.027.109.107.109h1.528c.086 0 .113-.033.112-.117-.009-.242 0-.492 0-.74l-.002-.005h.001Z\"},\"child\":[]}]})(props);\n};\nexport function SiZod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.088 2.477 24 7.606 12.521 20.485l-.925 1.038L0 7.559l5.108-5.082h13.98Zm-17.434 5.2 6.934-4.003H5.601L1.619 7.636l.035.041Zm12.117-4.003L3.333 9.7l2.149 2.588 10.809-6.241-.2-.346 2.851-1.646-.365-.381h-4.806Zm7.52 2.834L8.257 14.034h5.101v-.4h3.667l5.346-5.998-1.08-1.128Zm-7.129 10.338H9.268l2.36 2.843 2.534-2.843Z\"},\"child\":[]}]})(props);\n};\nexport function SiZoho (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.66 6.897a1.299 1.299 0 0 0-1.205.765l-.642 1.44-.062-.385A1.291 1.291 0 0 0 5.27 7.648l-4.185.678A1.291 1.291 0 0 0 .016 9.807l.678 4.18a1.293 1.293 0 0 0 1.27 1.087c.074 0 .143-.01.216-.017l4.18-.678c.436-.07.784-.351.96-.723l2.933 1.307a1.304 1.304 0 0 0 .988.026c.321-.12.575-.365.716-.678l.28-.629.038.276a1.297 1.297 0 0 0 1.455 1.103l3.712-.501a1.29 1.29 0 0 0 1.03.514h4.236c.713 0 1.29-.58 1.291-1.291V9.545c0-.712-.58-1.291-1.291-1.291h-4.236c-.079 0-.155.008-.23.022a1.309 1.309 0 0 0-.275-.288c-.275-.21-.614-.3-.958-.253l-4.197.571c-.155.021-.3.07-.432.14L9.159 7.01a1.27 1.27 0 0 0-.499-.113zm-.025.705c.077 0 .159.013.24.052l2.971 1.324c-.128.238-.18.508-.142.782l.357 2.596h.002l-.745 1.672a.59.59 0 0 1-.777.296l-3.107-1.385-.004-.041-.41-2.526L8.1 7.95a.589.589 0 0 1 .536-.348zm-3.159.733c.125 0 .245.039.343.112.13.09.21.227.237.382l.234 1.446-.56 1.259a1.27 1.27 0 0 0-.026.987c.12.322.364.575.678.717l.295.131a.585.585 0 0 1-.428.314l-4.185.678a.59.59 0 0 1-.674-.485l-.678-4.18a.588.588 0 0 1 .485-.674l4.185-.678c.03-.004.064-.01.094-.01zm11.705.09a.59.59 0 0 1 .415.173 1.287 1.287 0 0 0-.416.947v4.237c0 .033.003.065.005.097l-3.55.482a.586.586 0 0 1-.66-.502l-.191-1.403.899-2.017a1.29 1.29 0 0 0-.333-1.5l3.754-.51c.026-.004.051-.004.077-.004zm1.3.532h4.227c.326 0 .588.266.588.588v4.237a.589.589 0 0 1-.588.588h-4.237a.564.564 0 0 1-.12-.013c.47-.246.758-.765.684-1.318zm-5.988.309.254.113c.296.133.43.48.296.777l-.432.97-.207-1.465a.58.58 0 0 1 .09-.395zm5.39.538.453 3.325a.583.583 0 0 1-.453.65zM6.496 11.545l.17 1.052a.588.588 0 0 1-.293-.776zm3.985 4.344a.588.588 0 0 0-.612.603c0 .358.244.61.601.61a.582.582 0 0 0 .607-.608c0-.35-.242-.605-.596-.605zm5.545 0a.588.588 0 0 0-.612.603c0 .358.245.61.602.61a.582.582 0 0 0 .606-.608c0-.35-.24-.605-.596-.605zm-8.537.018a.047.047 0 0 0-.048.047v.085c0 .026.021.047.048.047h.52l-.623.9a.052.052 0 0 0-.009.027v.027c0 .026.021.047.048.047h.815a.047.047 0 0 0 .047-.047v-.085a.047.047 0 0 0-.047-.047h-.55l.606-.9a.05.05 0 0 0 .008-.026v-.028a.047.047 0 0 0-.047-.047zm5.303 0a.047.047 0 0 0-.047.047v1.086c0 .026.02.047.047.047h.135a.047.047 0 0 0 .047-.047v-.454h.545v.454c0 .026.02.047.047.047h.134a.047.047 0 0 0 .047-.047v-1.086a.047.047 0 0 0-.047-.047h-.134a.047.047 0 0 0-.047.047v.453h-.545v-.453a.047.047 0 0 0-.047-.047zm-2.324.164c.25 0 .372.194.372.425 0 .219-.109.425-.358.426-.242 0-.375-.197-.375-.419 0-.235.108-.432.36-.432zm5.545 0c.25 0 .372.194.372.425 0 .219-.108.425-.358.426-.242 0-.374-.197-.374-.419 0-.235.108-.432.36-.432z\"},\"child\":[]}]})(props);\n};\nexport function SiZoiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.3751 13.0786c-.8624-.8624-.8624-2.9256-.0748-3.7131s3.2625-3.225 5.0621-5.0247c1.8004-1.7996 3.3755-2.0624 3.8629-2.0624H15.9c.2223 0 .5527.0322.9236.0884l-1.087 2.1664c-.8738-.0629-1.6811-.0422-2.274-.0422-2.4374 0-2.6254.5622-3.0378.9747-.4125.4125-5.0621 4.8375-5.3997 5.1752-1.0504 1.0503.5621 1.5376 2.3252 1.5376.7875 0 .8998.825.7119 1.5751-.1018.4079-.3684 1.43-.5919 2.5285h-2.139c.0834-.4237.1648-.7712.2184-.954.188-.637.2253-1.2-.1497-1.2s-1.1626-.1871-2.0249-1.0495zm18.0425-9.9195c-.1965-.1965-2.184-1.3497-2.7726-1.6201-.1614-.0739-.2993-.1047-.4172-.1047-.3126 0-.4853.2162-.5872.4193l-3.1179 6.2136c-1.564.4473-2.7104 1.8872-2.7104 3.595 0 1.4355.8088 2.6815 1.996 3.3091-.4575.5435-1.1337 1.1005-1.2919 1.2851-.2254.2628-.7875.5256-1.763.5256H4.3672c-.0298-1.1804-.9951-2.1287-2.1832-2.1287-1.206 0-2.184.978-2.184 2.184 0 1.2068.978 2.1849 2.184 2.1849.9185 0 1.7036-.5664 2.0267-1.3693h7.0394c.9747 0 1.5377-.262 1.7622-.5248.2134-.2491 1.3658-1.1728 1.6584-1.8311.2824.0689.5784.1063.8828.1063 2.0659 0 3.7404-1.6746 3.7404-3.7412a3.7288 3.7288 0 0 0-.5316-1.9221 7006.5352 7006.5352 0 0 1 2.753-5.5502c.2705-.5399.0988-.8342-.0977-1.0307zm.2867 1.7742c-.2377.4786-.6018 1.2128-.993 2.0014.697 1.0061 1.1516 2.4119 1.1516 4.4188 0 5.0995-2.7003 5.6625-3.2625 5.6625h-2.1381c-.4499 0-.7875.0748-1.6125.8998-.825.825-1.9875 1.837-2.3252 2.1746-.3368.3376-.825.563-1.6873.563h-2.662c-.3751 0-1.0503-.188-1.0503-1.7631 0-.221.0212-.4749.0488-.7374H5.0591c-.0581.6409-.0749 1.2776.0034 1.7872.2253 1.4628 1.4254 2.6254 2.4374 2.6254h3.9752c1.8378 0 5.2126-3.4121 5.2126-3.4121s1.1073.0681 1.763.0502C20.4875 19.1485 24 17.4662 24 11.8412c0-3.3144-.9952-5.4775-2.2957-6.9079z\"},\"child\":[]}]})(props);\n};\nexport function SiZomato (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.615 9.45l-1.258.473-.167.71-.446.021-.115.978h.408l-.211 1.51c-.131.939.036 1.381.865 1.381.488 0 .91-.175 1.135-.297l.145-.9c-.167.083-.436.19-.618.19-.247 0-.276-.13-.225-.488l.189-1.396h.843c.03-.206.131-.877.16-1h-.865zm-3.779 1.002c-.115.002-.236.01-.361.026a3.592 3.592 0 0 0-1.347.432l.26.789c.269-.15.615-.28.978-.326.538-.066.757.1.79.375.014.109.004.199-.005.289l-.014.056a3.46 3.46 0 0 0-1.097-.036c-.518.063-.943.273-1.204.6a1.324 1.324 0 0 0-.225 1.034c.127.583.553.84 1.199.76.45-.055.812-.27 1.076-.63a2.665 2.665 0 0 1-.03.304 1.74 1.74 0 0 1-.072.29l1.244.001a3.657 3.657 0 0 1-.001-.365c.036-.459.118-1.143.247-2.051a2.397 2.397 0 0 0-.002-.59c-.08-.644-.628-.969-1.436-.958zm6.536.063c-1.194 0-2.107 1.067-2.107 2.342 0 .959.552 1.693 1.628 1.693 1.2 0 2.107-1.067 2.107-2.35 0-.95-.538-1.685-1.628-1.685zm-11.777.041c-.538 0-1.12.465-1.52 1.236.102-.504.08-1.076.051-1.198a8.964 8.964 0 0 1-1.287.122 6.9 6.9 0 0 1-.073 1.243l-.167 1.145c-.066.45-.138.969-.211 1.297h1.353c.007-.199.058-.511.094-.786l.116-.786c.095-.511.502-1.114.815-1.114.182 0 .175.176.124.504l-.131.885c-.066.45-.138.969-.211 1.297h1.367c.008-.199.051-.512.088-.786l.116-.786c.094-.512.502-1.114.814-1.114.182 0 .175.168.146.396l-.327 2.29H13l.438-2.609c.095-.649.044-1.236-.676-1.236-.523 0-1.09.443-1.49 1.182.087-.61.036-1.182-.677-1.182zm-4.88.008c-1.177 0-2.08 1.053-2.08 2.312 0 .946.546 1.67 1.608 1.67 1.185 0 2.08-1.052 2.08-2.319 0-.938-.531-1.663-1.607-1.663zm-5.126.091c-.05.39-.102.778-.175 1.13.328-.008.619-.016 1.411-.016l-1.81 1.96-.015.703c.444-.03.997-.039 1.63-.039.566 0 1.134.008 1.497.039.065-.458.13-.763.21-1.137-.275.015-.755.023-1.512.023l1.81-1.969.023-.694c-.437.023-.83.03-1.52.03-.749 0-.975-.007-1.549-.03zm4.988.927c.255 0 .408.228.408.701 0 .687-.276 1.251-.626 1.251-.261 0-.414-.236-.414-.702 0-.694.283-1.25.632-1.25zm16.629 0c.254 0 .407.228.407.701 0 .687-.276 1.251-.625 1.251-.262 0-.415-.236-.415-.702 0-.694.284-1.25.633-1.25zM15.51 12.64c.206-.003.403.024.55.058l-.013.118c-.075.44-.39.881-.848.938-.31.037-.578-.148-.608-.39a.538.538 0 0 1 .114-.41c.117-.159.336-.268.599-.3.069-.009.138-.013.206-.014Z\"},\"child\":[]}]})(props);\n};\nexport function SiZoom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.033 14.649H.743a.74.74 0 0 1-.686-.458.74.74 0 0 1 .16-.808L3.19 10.41H1.06A1.06 1.06 0 0 1 0 9.35h3.957c.301 0 .57.18.686.458a.74.74 0 0 1-.161.808L1.51 13.59h2.464c.585 0 1.06.475 1.06 1.06zM24 11.338c0-1.14-.927-2.066-2.066-2.066-.61 0-1.158.265-1.537.686a2.061 2.061 0 0 0-1.536-.686c-1.14 0-2.066.926-2.066 2.066v3.311a1.06 1.06 0 0 0 1.06-1.06v-2.251a1.004 1.004 0 0 1 2.013 0v2.251c0 .586.474 1.06 1.06 1.06v-3.311a1.004 1.004 0 0 1 2.012 0v2.251c0 .586.475 1.06 1.06 1.06zM16.265 12a2.728 2.728 0 1 1-5.457 0 2.728 2.728 0 0 1 5.457 0zm-1.06 0a1.669 1.669 0 1 0-3.338 0 1.669 1.669 0 0 0 3.338 0zm-4.82 0a2.728 2.728 0 1 1-5.458 0 2.728 2.728 0 0 1 5.457 0zm-1.06 0a1.669 1.669 0 1 0-3.338 0 1.669 1.669 0 0 0 3.338 0z\"},\"child\":[]}]})(props);\n};\nexport function SiZorin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 18.944L5.995 22.4h12.01L20 18.944H4zM24 12l-2.013 3.488H9.216l12.771-6.976L24 12zM0 12l2.013-3.488h12.771L2.013 15.488 0 12zm4-6.944L5.995 1.6h12.01L20 5.056H4z\"},\"child\":[]}]})(props);\n};\nexport function SiZotero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.231 2.462 7.18 20.923h14.564V24H2.256v-2.462L16.308 3.076H2.975V0h18.256v2.462z\"},\"child\":[]}]})(props);\n};\nexport function SiZsh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.612.719A3.621 3.621 0 0 0 0 4.331v15.328a3.627 3.627 0 0 0 3.616 3.612h8.242a.529.529 0 0 0 .228-.042.607.607 0 0 0-.232-1.169H3.612a2.393 2.393 0 0 1-2.393-2.4V6.113h21.566v12.839a.134.134 0 0 1-.12.074h-.743a.158.158 0 0 1-.09-.043.134.134 0 0 1-.04-.095v-2.23c-.004-.001-.004-.003-.004-.006v-.007a.602.602 0 1 0-1.202 0v6.032l.004.001v.002a.6.6 0 0 0 1.202 0v.002V20.297a.116.116 0 0 1 .036-.095.134.134 0 0 1 .094-.04h.744a.12.12 0 0 1 .099.036c.01.01.018.022.024.035v2.434a.042.042 0 0 0 .002.023.6.6 0 0 0 .14.38.601.601 0 0 0 .46.213h.01a.592.592 0 0 0 .547-.368l.004-.011a.445.445 0 0 0 .023-.074.608.608 0 0 0 .025-.162V4.326A3.615 3.615 0 0 0 20.392.715H3.616Zm0 1.215h16.776a2.383 2.383 0 0 1 2.401 2.393V4.9H1.215v-.57a2.388 2.388 0 0 1 2.397-2.396ZM6.36 7.28a.213.213 0 0 0-.145.076l-3.964 4.72a.213.213 0 1 0 .327.275l3.964-4.72a.213.213 0 0 0-.182-.35Zm-2.94.12c-.632 0-1.151.52-1.151 1.151 0 .632.52 1.152 1.151 1.152.632 0 1.152-.52 1.152-1.152 0-.632-.52-1.151-1.152-1.151Zm0 .667a.48.48 0 0 1 .485.484.48.48 0 0 1-.485.485.48.48 0 0 1-.484-.485.48.48 0 0 1 .484-.484Zm1.94 1.939c-.632 0-1.152.52-1.152 1.152 0 .632.52 1.15 1.152 1.15.632 0 1.151-.518 1.151-1.15 0-.633-.52-1.152-1.151-1.152Zm0 .667a.48.48 0 0 1 .485.485.48.48 0 0 1-.485.484.48.48 0 0 1-.485-.484.48.48 0 0 1 .485-.485Zm2.658 1.21a.214.214 0 0 0-.081.41c.026.01.053.016.081.016h2.831a.327.327 0 0 0 .086-.02.215.215 0 0 0 .131-.198.213.213 0 0 0-.213-.213h-2.83Zm5.77 4.159a.61.61 0 0 0-.61.61v-.004.004a.61.61 0 0 0 .61.61l.028-.002h1.123a.052.052 0 0 1 .04.005.077.077 0 0 1 .04.058.076.076 0 0 1-.006.037l-1.783 4.453a.67.67 0 0 0-.048.249v.55a.65.65 0 0 0 .192.474.67.67 0 0 0 .474.196h2.09a.718.718 0 0 0 .243-.051.623.623 0 0 0 .386-.578v.004-.004a.626.626 0 0 0-.625-.626l-.014.001h-1.406a.05.05 0 0 1-.038-.005.074.074 0 0 1-.038-.056.072.072 0 0 1 .005-.034l2.056-5.127a.555.555 0 0 0-.516-.762h-2.167a.07.07 0 0 0-.033-.006Zm4.915.03c-.286 0-.613.027-.81.082a.946.946 0 0 0-.466.267 1.174 1.174 0 0 0-.247.525c-.05.215-.076.488-.076.82 0 .318.003.576.01.772.008.16.026.32.056.479a.93.93 0 0 0 .124.294c.055.078.119.15.19.212.1.087.208.165.324.23.127.074.257.144.39.212.133.067.26.138.38.211.114.064.22.142.315.23.037.041.072.084.104.13a.294.294 0 0 1 .053.091.651.651 0 0 1 .042.24c.007.073.01.175.01.303a3.77 3.77 0 0 1-.029.525.745.745 0 0 1-.076.285.261.261 0 0 1-.152.12 2.324 2.324 0 0 1-.378.028.83.83 0 0 1-.228-.028.315.315 0 0 1-.143-.129 1.072 1.072 0 0 1-.076-.276 4.459 4.459 0 0 1-.02-.46c0-.016 0-.034-.002-.05h-.004a.54.54 0 0 0-.176-.311.517.517 0 0 0-.847.315h-.003c.002.014.002.033.002.052v.023l.003.284c0 .362.026.656.076.883.057.221.146.396.267.525a.916.916 0 0 0 .457.248c.22.054.448.078.675.074.305 0 .698-.027.901-.083a.897.897 0 0 0 .486-.313c.127-.153.215-.365.266-.635.057-.276.086-.628.086-1.058 0-.313-.01-.565-.029-.755a1.65 1.65 0 0 0-.085-.47.763.763 0 0 0-.181-.294 1.5 1.5 0 0 0-.276-.22 2.733 2.733 0 0 0-.286-.157 4.382 4.382 0 0 0-.342-.175 8.27 8.27 0 0 1-.343-.184 2.885 2.885 0 0 1-.276-.193.938.938 0 0 1-.114-.11.398.398 0 0 1-.057-.139 1.452 1.452 0 0 1-.029-.211v-.346a2.59 2.59 0 0 1 .015-.396.633.633 0 0 1 .067-.23.23.23 0 0 1 .143-.101c.057-.019.216-.028.305-.028.203 0 .33.058.38.175.04.074.063.155.066.24.003.066.004.153.004.245h.003c.004-.003.004-.002.004 0a.512.512 0 0 0 .516.512.516.516 0 0 0 .515-.512v-.004c-.004-.099-.004-.19-.004-.242a3.184 3.184 0 0 0-.067-.709.896.896 0 0 0-.228-.469.869.869 0 0 0-.457-.258 2.693 2.693 0 0 0-.733-.082Z\"},\"child\":[]}]})(props);\n};\nexport function SiZulip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.767 3.589c0 1.209-.543 2.283-1.37 2.934l-8.034 7.174c-.149.128-.343-.078-.235-.25l2.946-5.9c.083-.165-.024-.368-.194-.368H4.452c-1.77 0-3.219-1.615-3.219-3.59C1.233 1.616 2.682 0 4.452 0h15.096c1.77-.001 3.219 1.614 3.219 3.589zM4.452 24h15.096c1.77 0 3.219-1.616 3.219-3.59 0-1.974-1.449-3.59-3.219-3.59H8.12c-.17 0-.277-.202-.194-.367l2.946-5.9c.108-.172-.086-.378-.235-.25l-8.033 7.173c-.828.65-1.37 1.725-1.37 2.934 0 1.974 1.448 3.59 3.218 3.59z\"},\"child\":[]}]})(props);\n};\nexport function SiZyte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"role\":\"img\",\"viewBox\":\"0 0 24 24\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.135 6.818v1.715h-1.217V9.92h1.217v2.601c0 1.624.943 2.487 2.355 2.487.236 0 .562-.025.785-.076v-1.348c-.146.039-.312.05-.47.05-.708 0-1.205-.328-1.205-1.138V9.92h1.675V8.533h-1.671V6.818ZM20.873 8.4c-1.846 0-3.299 1.441-3.299 3.3 0 1.909 1.454 3.36 3.324 3.36 1.572 0 2.788-.89 3.024-2.238h-1.467c-.132.553-.746.918-1.531.918-1.034 0-1.688-.589-1.871-1.531h4.908c.026-.12.039-.445.039-.617 0-1.87-1.399-3.192-3.127-3.192ZM0 8.533v1.399h3.928L0 13.532v1.4h5.719v-1.4h-3.94l3.94-3.6V8.533Zm6.037 0 2.54 6.059-1.151 2.59h1.57l3.611-8.649h-1.57l-1.715 4.358-1.717-4.358Zm14.758 1.19c.875 0 1.49.511 1.623 1.244h-3.324c.21-.786.838-1.244 1.7-1.244z\"},\"child\":[]}]})(props);\n};\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module shadow-frame\n *@developer Aditya P\n */\n\nconst ShadowFrame = ({ className }) => {\n return (\n <div\n className={`${className} shadow-frame absolute pointer-events-none`}\n ></div>\n );\n};\n\nexport default ShadowFrame;\n","import React from \"react\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Spinner-Loader\n *@developer Aditya P\n */\n\nconst Loader = () => {\n return (\n <div role=\"status\">\n <svg\n aria-hidden=\"true\"\n className=\"mt-[15px] inline w-8 h-8 mr-2 text-gray-200 animate-spin dark:text-gray-600 fill-[#e2931d]\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n <span className=\"sr-only\">Loading...</span>\n </div>\n );\n};\n\nexport default Loader;\n","var __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nvar __rest = (this && this.__rest) || function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n};\r\nimport React, { useEffect } from 'react';\r\nimport Hls from 'hls.js';\r\nfunction ReactHlsPlayer(_a) {\r\n var hlsConfig = _a.hlsConfig, _b = _a.playerRef, playerRef = _b === void 0 ? React.createRef() : _b, src = _a.src, autoPlay = _a.autoPlay, props = __rest(_a, [\"hlsConfig\", \"playerRef\", \"src\", \"autoPlay\"]);\r\n useEffect(function () {\r\n var hls;\r\n function _initPlayer() {\r\n if (hls != null) {\r\n hls.destroy();\r\n }\r\n var newHls = new Hls(__assign({ enableWorker: false }, hlsConfig));\r\n if (playerRef.current != null) {\r\n newHls.attachMedia(playerRef.current);\r\n }\r\n newHls.on(Hls.Events.MEDIA_ATTACHED, function () {\r\n newHls.loadSource(src);\r\n newHls.on(Hls.Events.MANIFEST_PARSED, function () {\r\n var _a;\r\n if (autoPlay) {\r\n (_a = playerRef === null || playerRef === void 0 ? void 0 : playerRef.current) === null || _a === void 0 ? void 0 : _a.play().catch(function () {\r\n return console.log('Unable to autoplay prior to user interaction with the dom.');\r\n });\r\n }\r\n });\r\n });\r\n newHls.on(Hls.Events.ERROR, function (event, data) {\r\n if (data.fatal) {\r\n switch (data.type) {\r\n case Hls.ErrorTypes.NETWORK_ERROR:\r\n newHls.startLoad();\r\n break;\r\n case Hls.ErrorTypes.MEDIA_ERROR:\r\n newHls.recoverMediaError();\r\n break;\r\n default:\r\n _initPlayer();\r\n break;\r\n }\r\n }\r\n });\r\n hls = newHls;\r\n }\r\n if (Hls.isSupported()) {\r\n _initPlayer();\r\n }\r\n return function () {\r\n if (hls != null) {\r\n hls.destroy();\r\n }\r\n };\r\n }, [autoPlay, hlsConfig, playerRef, src]);\r\n if (Hls.isSupported())\r\n return React.createElement(\"video\", __assign({ ref: playerRef }, props));\r\n return React.createElement(\"video\", __assign({ ref: playerRef, src: src, autoPlay: autoPlay }, props));\r\n}\r\nexport default ReactHlsPlayer;\r\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module constant-variables-object\n *@developer Aditya P\n */\n\n/**\n * @desc Use to avoid hard coding string in internal codebase and make it easier to update\n */\n\nexport const AssetsParentTab = [\n { id: 0, key: \"my-iaps\", name: \"My Assets\" },\n { id: 1, key: \"my-contents\", name: \"My Entertainment\" },\n { id: 2, key: \"my-events\", name: \"My Events\" },\n { id: 3, key: \"my-avatar\", name: \"My Avatar\" },\n { id: 4, key: \"my-orders\", name: \"My Orders\" },\n];\n\nexport const ChannelContentTab = [\n { id: 0, key: \"all\", name: \"All\" },\n { id: 1, key: \"premium\", name: \"Premium Content\" },\n];\n\nexport const MyAssetsDummy = [\n {\n id: 0,\n key: \"APART\",\n name: \"Apartments\",\n data: [\n {\n id: 0,\n title: \"Nebula Apartment\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 1,\n title: \"Nebula Apartment - 1\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 2,\n title: \"Nebula Apartment - 2\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 3,\n title: \"Nebula Apartment - 3\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n ],\n },\n {\n id: 0,\n key: \"SHIP\",\n name: \"Ships\",\n data: [\n {\n id: 0,\n title: \"StarHawk\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 1,\n title: \"StarHawk - 1\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 2,\n title: \"StarHawk - 2\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 3,\n title: \"StarHawk - 3\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n ],\n },\n {\n id: 0,\n key: \"ENTER\",\n name: \"Entertainment\",\n data: [\n {\n id: 0,\n title: \"StarHawk\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 1,\n title: \"StarHawk - 1\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 2,\n title: \"StarHawk - 2\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n {\n id: 3,\n title: \"StarHawk - 3\",\n img: \"\",\n desc: \"Experience the epitome of luxury in these magnificent mansions inspired by the celestial luminaries, offering a sanctuary of prestige and grandeur.\",\n },\n ],\n },\n];\n\n// Assets Entertainment Tabs\nexport const EntainTabs = [\n { id: 0, key: \"volumetric-video\", name: \"Volumetric Videos\" },\n { id: 1, key: \"360-video\", name: \"360 Video\" },\n { id: 2, key: \"180-video\", name: \"180 Video\" },\n { id: 3, key: \"2D-video\", name: \"2D Video\" },\n { id: 4, key: \"music\", name: \"Music\" },\n { id: 5, key: \"subs\", name: \"Subscription\" },\n];\n\n// Assets Entertainment classes\n\nexport const EntertainmentCardClass = {\n cardMainclass:\n \"w-full min-h-[256px] hover:cursor-pointer hover:rounded-[16px] hover:scale-[1.024] transition duration-300 ease-in-out max-[668px]:w-[100%] max-[768px]:p-0 max-[1366px]:p-0 \",\n cardMediaClass:\n \"w-[100%] bg-[#2B2B2B] h-[256px] min-h-[180px] rounded-[16px] max-[1366px]:h-[200px] max-[1200px]:h-[180px] \",\n cardtitleClass: \"py-[12px] font-light pl-[6px] max-[768px]:text-[13px]\",\n cardButtonclass:\n \"pl-[6px] font-bold bg-[#FBBC5E0D] px-[15px] py-[7px] rounded-[8px] text-center text-[15px] hover:shadow-[0_0_3px_1px_rgba(251,188,94,0.47)] hover:border-[#FBBC5E] max-[768px]:text-[13px]\",\n};\n\n// Assets Clothing Tabs\nexport const ClothTabs = [\n { id: 0, key: \"spacesuit\", name: \"Space Suits\" },\n { id: 1, key: \"exosuit\", name: \"Exo Suits\" },\n { id: 2, key: \"formal\", name: \"Formal\" },\n { id: 2, key: \"casual\", name: \"Casual\" },\n];\n\nexport const companionCategories = [\n { label: \"Pet\", value: \"pet\" },\n { label: \"Master\", value: \"master\" },\n { label: \"Bodyguard\", value: \"bodyguard\" },\n { label: \"AI\", value: \"ai\" },\n { label: \"Sidekick\", value: \"sideKick\" },\n];\n\nexport const ClothingCardClass = {\n cardMainclass:\n \"w-full min-h-[257px] pl-[10px] mb-[0px] hover:cursor-pointer hover:scale-[1.024] transition duration-300 ease-in-out max-[768px]:w-[100%] max-[768px]:p-0\",\n cardMediaClass:\n \"w-[100%] bg-[#2B2B2B] min-h-[257px] h-[257px] rounded-[10px]\",\n cardtitleClass: \"pt-[6px] font-light pl-[6px] max-[768px]:text-[13px]\",\n cardButtonclass: \"\",\n};\n\nexport const AvatarCardClass = {\n cardMainclass:\n \"w-full min-h-[257px] pl-[10px] mb-[0px] hover:cursor-pointer hover:scale-[1.024] transition duration-300 ease-in-out max-[768px]:w-[100%] max-[768px]:p-0\",\n cardMediaClass:\n \"w-[100%] bg-[#2B2B2B] min-h-[257px] h-[257px] rounded-[10px]\",\n cardtitleClass: \"pt-[6px] font-light pl-[6px] max-[768px]:text-[13px]\",\n cardButtonclass: \"\",\n};\nexport const GamingCardClass = {\n cardMainclass:\n \"w-full min-h-[257px] mb-[0px] hover:cursor-pointer hover:scale-[1.024] transition duration-300 ease-in-out max-[768px]:w-[100%] max-[768px]:p-0\",\n cardMediaClass: \"w-[100%] bg-[#2B2B2B] min-h-[257px] rounded-[10px]\",\n cardtitleClass: \"py-[12px] font-light pl-[6px] max-[768px]:text-[13px]\",\n cardButtonclass: \"\",\n};\n\nexport const FriendSearchList = [\n {\n userId: \"USER-1\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: \"FULLFILL\",\n },\n {\n userId: \"USER-2\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: \"PENDING\",\n },\n {\n userId: \"USER-3\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n {\n userId: \"USER-4\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n {\n userId: \"USER-5\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n {\n userId: \"USER-6\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n {\n userId: \"USER-7\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n {\n userId: \"USER-8\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n {\n userId: \"USER-9\",\n username: \"xavier29\",\n name: \"Xavier Samuel\",\n email: \"xasa@gmail.com\",\n status: null,\n },\n];\n\nexport const Preferencelist = [\n {\n key: \"musicNEntertainment\",\n name: \"Music & Entertainment\",\n },\n {\n key: \"fashionNStyle\",\n name: \"Fashion and Style\",\n },\n {\n key: \"socialVREvents\",\n name: \"Social VR Events\",\n },\n {\n key: \"spaceNScifi\",\n name: \"Space and Sci-Fi\",\n },\n {\n key: \"meditationNMindfulness\",\n name: \"Meditation and Mindfulness\",\n },\n {\n key: \"astronomyNSpace\",\n name: \"Astronomy and Space\",\n },\n {\n key: \"travelExplorer\",\n name: \"Travel Explorer\",\n },\n {\n key: \"artNDesign\",\n name: \"Art and Design\",\n },\n {\n key: \"gamingNSports\",\n name: \"Gaming and Esports\",\n },\n {\n key: \"digitalFashionNAvatars\",\n name: \"Digital Fashion and Avatars\",\n },\n {\n key: \"nft\",\n name: \"NFT\",\n },\n {\n key: \"digitalAssetTrading\",\n name: \"Digital Asset Trading\",\n },\n {\n key: \"techNGadgets\",\n name: \"Tech and Gadgets\",\n },\n {\n key: \"cryptocurrencyInvestments\",\n name: \"Cryptocurrency Investments\",\n },\n {\n key: \"holographicTechnology\",\n name: \"Holographic Technology\",\n },\n {\n key: \"blockchainGaming\",\n name: \"Blockchain Gaming\",\n },\n {\n key: \"virtualRealEstate\",\n name: \"Virtual Real Estate\",\n },\n {\n key: \"immersiveStorytelling\",\n name: \"Immersive Storytelling\",\n },\n];\n\nexport function timeAgo(timestamp) {\n const currentDate = new Date();\n const inputDate = new Date(timestamp * 1000); // Assuming the timestamp is in seconds\n\n const timeDifferenceInSeconds = Math.floor((currentDate - inputDate) / 1000);\n\n const minute = 60;\n const hour = 60 * minute;\n const day = 24 * hour;\n const week = 7 * day;\n\n if (timeDifferenceInSeconds < minute) {\n const secondsAgo = timeDifferenceInSeconds;\n return `${secondsAgo} ${secondsAgo === 1 ? \"second\" : \"seconds\"} ago`;\n } else if (timeDifferenceInSeconds < hour) {\n const minutesAgo = Math.floor(timeDifferenceInSeconds / minute);\n return `${minutesAgo} ${minutesAgo === 1 ? \"minute\" : \"minutes\"} ago`;\n } else if (timeDifferenceInSeconds < day) {\n const hoursAgo = Math.floor(timeDifferenceInSeconds / hour);\n return `${hoursAgo} ${hoursAgo === 1 ? \"hour\" : \"hours\"} ago`;\n } else if (timeDifferenceInSeconds < week) {\n const daysAgo = Math.floor(timeDifferenceInSeconds / day);\n return `${daysAgo} ${daysAgo === 1 ? \"day\" : \"days\"} ago`;\n } else {\n const weeksAgo = Math.floor(timeDifferenceInSeconds / week);\n return `${weeksAgo} ${weeksAgo === 1 ? \"week\" : \"weeks\"} ago`;\n }\n}\nexport function formatTimestamp(timestamp) {\n const currentDate = new Date();\n const inputDate = new Date(timestamp * 1000); // Assuming the timestamp is in seconds\n\n const today = new Date(\n currentDate.getFullYear(),\n currentDate.getMonth(),\n currentDate.getDate()\n );\n const tomorrow = new Date(today);\n tomorrow.setDate(today.getDate() + 1);\n\n if (inputDate >= today && inputDate < tomorrow) {\n return \"Today\";\n } else if (\n inputDate >= tomorrow &&\n inputDate < today.getTime() + 2 * 24 * 60 * 60 * 1000\n ) {\n return \"Tomorrow\";\n } else {\n const options = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n };\n return inputDate.toLocaleDateString(\"en-US\", options);\n }\n}\n\nexport const createImage = (url) =>\n new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener(\"load\", () => resolve(image));\n image.addEventListener(\"error\", (error) => reject(error));\n image.setAttribute(\"crossOrigin\", \"anonymous\");\n image.src = url;\n });\n\nexport function getRadianAngle(degreeValue) {\n return (degreeValue * Math.PI) / 180;\n}\n\n// If there is a rotation in image then we adjust the image rotation angle\nexport function rotateSize(width, height, rotation) {\n const rotRad = getRadianAngle(rotation);\n\n return {\n width:\n Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height),\n height:\n Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height),\n };\n}\n\nexport async function getCroppedImg(\n imageSrc,\n pixelCrop,\n rotation = 0,\n filename,\n flip = { horizontal: false, vertical: false }\n) {\n const image = await createImage(imageSrc);\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n\n if (!ctx) {\n return null;\n }\n\n const rotRad = getRadianAngle(rotation);\n\n // calculate bounding box of the rotated image\n const { width: bBoxWidth, height: bBoxHeight } = rotateSize(\n image.width,\n image.height,\n rotation\n );\n\n // set canvas size to match the bounding box\n canvas.width = bBoxWidth;\n canvas.height = bBoxHeight;\n\n // translate canvas context to a central location to allow rotating and flipping around the center\n ctx.translate(bBoxWidth / 2, bBoxHeight / 2);\n ctx.rotate(rotRad);\n ctx.scale(flip.horizontal ? -1 : 1, flip.vertical ? -1 : 1);\n ctx.translate(-image.width / 2, -image.height / 2);\n\n // draw rotated image\n ctx.drawImage(image, 0, 0);\n\n const croppedCanvas = document.createElement(\"canvas\");\n\n const croppedCtx = croppedCanvas.getContext(\"2d\");\n\n if (!croppedCtx) {\n return null;\n }\n\n // Set the size of the cropped canvas\n croppedCanvas.width = pixelCrop.width;\n croppedCanvas.height = pixelCrop.height;\n\n // Draw the cropped image onto the new canvas\n croppedCtx.drawImage(\n canvas,\n pixelCrop.x,\n pixelCrop.y,\n pixelCrop.width,\n pixelCrop.height,\n 0,\n 0,\n pixelCrop.width,\n pixelCrop.height\n );\n\n // As Base64 string\n // return croppedCanvas.toDataURL('image/png');\n\n // As a blob\n const croppedBlob = await new Promise((resolve) => {\n croppedCanvas.toBlob((blob) => {\n resolve(blob);\n }, \"image/jpeg\");\n });\n\n const newFile = new File([croppedBlob], filename, {\n type: croppedBlob.type,\n });\n\n return newFile;\n}\n\nexport const socialLinks = {\n facebook: \"https://www.facebook.com/genevieve.era.1.0/\",\n twitter: \"https://x.com/genevieve_era\",\n instagram: \"https://www.instagram.com/genevieve_era_\",\n youtube: \"https://www.youtube.com/@genevieve_era\",\n reddit: \"https://www.reddit.com/\",\n discord: \"https://discord.com/\",\n};\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function Fa42Group (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96V416C341.011 416 361.818 411.861 381.23 403.821C400.641 395.78 418.28 383.995 433.138 369.138C447.995 354.28 459.78 336.641 467.821 317.23C475.861 297.818 480 277.011 480 256C480 234.989 475.861 214.182 467.821 194.771C459.78 175.359 447.995 157.72 433.138 142.863C418.28 128.005 400.641 116.22 381.23 108.179C361.818 100.139 341.011 96 320 96ZM0 256L160.002 416L320.003 256L160.002 96L0 256ZM480 256C480 277.011 484.138 297.818 492.179 317.23C500.219 336.643 512.005 354.28 526.862 369.138C541.72 383.995 559.357 395.781 578.77 403.821C598.182 411.862 618.989 416 640 416V96C597.565 96 556.869 112.858 526.862 142.863C496.857 172.869 480 213.565 480 256Z\"},\"child\":[]}]})(props);\n};\nexport function Fa500Px (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAccessibleIcon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAccusoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAdversal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"},\"child\":[]}]})(props);\n};\nexport function FaAffiliatetheme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"},\"child\":[]}]})(props);\n};\nexport function FaAirbnb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAlgolia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C116.1 0 2 112.7 0 252.1C-2 393.6 112.9 510.8 254.5 511.6c43.7 .3 85.9-10.4 123.3-30.7c3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3c-26.1 11.1-54.5 16.8-83.7 16.4C139 461.9 46.5 366.8 48.3 252.4C50.1 139.5 142.6 48.2 256 48.2H463.7V417.2L345.9 312.5c-3.8-3.4-9.7-2.7-12.7 1.3c-18.9 25-49.7 40.6-83.9 38.2c-47.5-3.3-85.9-41.5-89.5-88.9c-4.2-56.6 40.6-103.9 96.3-103.9c50.4 0 91.9 38.8 96.2 88c.4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4c2.2-11.8 3-24.2 2.1-36.8c-4.9-72-63.3-130-135.4-134.4c-82.7-5.1-151.8 59.5-154 140.6c-2.1 78.9 62.6 147 141.6 148.7c33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7V9.7c0-5.4-4.4-9.7-9.7-9.7H256z\"},\"child\":[]}]})(props);\n};\nexport function FaAlipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazonPay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAmilia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAndroid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"},\"child\":[]}]})(props);\n};\nexport function FaAngellist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngrycreative (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAngular (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStoreIos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"},\"child\":[]}]})(props);\n};\nexport function FaApper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"},\"child\":[]}]})(props);\n};\nexport function FaApplePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"},\"child\":[]}]})(props);\n};\nexport function FaApple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArtstation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAsymmetrik (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAtlassian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAudible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"},\"child\":[]}]})(props);\n};\nexport function FaAutoprefixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAvianex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAviato (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAws (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"},\"child\":[]}]})(props);\n};\nexport function FaBandcamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"},\"child\":[]}]})(props);\n};\nexport function FaBattleNet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"},\"child\":[]}]})(props);\n};\nexport function FaBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBilibili (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z\"},\"child\":[]}]})(props);\n};\nexport function FaBimobject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBitbucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"},\"child\":[]}]})(props);\n};\nexport function FaBitcoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"},\"child\":[]}]})(props);\n};\nexport function FaBity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackTie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackberry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBloggerB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBlogger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBluesky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.8 294.7c-3.3-.4-6.7-.8-10-1.3c3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3C61.6-9.4 37.5-1.7 21.6 5.5C3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7c3.3-.5 6.6-.9 10-1.4c-3.3 .5-6.6 1-10 1.4C74.3 308.6-9.1 342.8 100.3 464.5C220.6 589.1 265.1 437.8 288 361.1c22.9 76.7 49.2 222.5 185.6 103.4c102.4-103.4 28.1-156-65.8-169.9c-3.3-.4-6.7-.8-10-1.3c3.4 .4 6.7 .9 10 1.3c64.1 7.1 133.6-15.1 153.2-80.7C566.9 194 576 75 576 58.4s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8C385.1 81.9 314.1 176.4 288 227.1z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetoothB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBootstrap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.344,197.834a51.767,51.767,0,0,0-41.57,20.058V156.018a8.19,8.19,0,0,0-8.19-8.19H8.19A8.19,8.19,0,0,0,0,156.018V333.551a8.189,8.189,0,0,0,8.19,8.189H36.584a8.189,8.189,0,0,0,8.19-8.189v-8.088c11.628,13.373,25.874,19.769,41.573,19.769,34.6,0,61.922-26.164,61.922-73.843C148.266,225.452,121.229,197.834,86.344,197.834ZM71.516,305.691c-9.593,0-21.221-4.942-26.745-12.5V250.164c5.528-7.558,17.152-12.791,26.745-12.791,17.734,0,31.107,13.082,31.107,34.013C102.623,292.609,89.25,305.691,71.516,305.691Zm156.372-59.032a17.4,17.4,0,1,0,17.4,17.4A17.4,17.4,0,0,0,227.888,246.659ZM273.956,156.7V112.039a13.308,13.308,0,1,0-10.237,0V156.7a107.49,107.49,0,1,0,10.237,0Zm85.993,107.367c0,30.531-40.792,55.281-91.112,55.281s-91.111-24.75-91.111-55.281,40.792-55.281,91.111-55.281S359.949,233.532,359.949,264.062Zm-50.163,17.4a17.4,17.4,0,1,0-17.4-17.4h0A17.4,17.4,0,0,0,309.786,281.466ZM580.7,250.455c-14.828-2.617-22.387-3.78-22.387-9.885,0-5.523,7.268-9.884,17.735-9.884a65.56,65.56,0,0,1,34.484,10.1,8.171,8.171,0,0,0,11.288-2.468c.07-.11.138-.221.2-.333l8.611-14.886a8.2,8.2,0,0,0-2.867-11.123,99.863,99.863,0,0,0-52.014-14.138c-38.956,0-60.179,21.514-60.179,46.225,0,36.342,33.725,41.864,57.563,45.642,13.373,2.326,24.13,4.361,24.13,11.048,0,6.4-5.523,10.757-18.9,10.757-13.552,0-30.994-6.222-42.623-13.579a8.206,8.206,0,0,0-11.335,2.491c-.035.054-.069.108-.1.164l-10.2,16.891a8.222,8.222,0,0,0,2.491,11.066c15.224,10.3,37.663,16.692,59.441,16.692,40.409,0,63.957-19.769,63.957-46.515C640,260.63,604.537,254.816,580.7,250.455Zm-95.928,60.787a8.211,8.211,0,0,0-9.521-5.938,23.168,23.168,0,0,1-4.155.387c-7.849,0-12.5-6.106-12.5-14.245V240.28h20.349a8.143,8.143,0,0,0,8.141-8.143V209.466a8.143,8.143,0,0,0-8.141-8.143H458.594V171.091a8.143,8.143,0,0,0-8.143-8.143H422.257a8.143,8.143,0,0,0-8.143,8.143h0v30.232H399a8.143,8.143,0,0,0-8.143,8.143h0v22.671A8.143,8.143,0,0,0,399,240.28h15.115v63.667c0,27.037,15.408,41.282,43.9,41.282,12.183,0,21.383-2.2,27.6-5.446a8.161,8.161,0,0,0,4.145-9.278Z\"},\"child\":[]}]})(props);\n};\nexport function FaBraveReverse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3c9.2-1.6 18.6-2.2 27.7-1.2c11.6 1.4 21.5 5.4 28.9 12.9c7.7 7.8 15.4 15.8 22.6 23.6c2.5 2.7 4.9 5.2 6.9 7.4c.7 .8 1.4 1.5 1.9 2c3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2c-.1 .4-.1 .4-.5 2.1c-.6 2.3-.6 2.3-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9c-5.6 21.6-11.2 43.2-16.4 63.4c-12.9 49.9-21.4 82.7-23.4 90.9c-11.1 44.5-19.9 60-48.3 80.3c-24.9 17.8-76.8 53.6-86.8 60c-1 .6-2 1.3-3.4 2.3c-.5 .4-3.2 2.2-3.9 2.7c-4.9 3.3-8.3 5.5-12.1 7.3c-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3c-.8-.5-3.4-2.4-3.9-2.7c-1.4-1-2.5-1.7-3.4-2.3c-10-6.4-61.9-42.1-86.8-60c-28.4-20.4-37.2-35.8-48.3-80.3c-2-8.2-10.5-41-23.3-90.5c-5.3-20.6-10.9-42.2-16.5-63.8c-2-7.6-3.8-14.6-5.4-20.9c-.9-3.5-.9-3.5-1.5-5.8c-.4-1.7-.4-1.7-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1L11.8 104c-1.5-3.8-.7-8.2 2-11.2c1.2-1.3 1.8-2 2.6-2.8c2-2.2 4.4-4.7 6.9-7.4C30.6 74.9 38.3 66.9 46 59.1c7.4-7.5 17.3-11.6 28.9-12.9c9.1-1.1 18.5-.5 27.7 1.2c.5 .1 1 .2 1.5 .3l38.1-44C144.2 1.3 147 0 150 0H298zm-4.7 21.1H154.7L115.6 66.2c-2.6 3-6.7 4.3-10.6 3.2c-.2-.1-.7-.2-1.5-.4c-1.3-.3-2.9-.6-4.5-.9c-7.4-1.3-14.9-1.8-21.7-1C70 68 64.3 70.3 60.7 74c-7.6 7.7-15.2 15.6-22.3 23.3c-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.2 170.6c.4 1.4 .5 1.9 1.2 4.8c1.6 6.3 3.5 13.3 5.4 20.9c5.6 21.6 11.2 43.2 16.4 63.4c12.9 50 21.4 82.8 23.4 91C85.7 390.8 92 402 115.8 419c24.6 17.6 76.3 53.2 85.9 59.3c1.2 .8 2.5 1.6 4 2.7c.6 .4 3.2 2.2 3.9 2.7c4 2.8 6.7 4.4 9.2 5.6c2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6c.7-.5 3.3-2.3 3.9-2.7c1.6-1.1 2.8-1.9 4-2.7c9.6-6.1 61.3-41.7 85.9-59.3c23.8-17.1 30.2-28.2 40.1-68.3c2.1-8.3 10.5-41.1 23.3-90.7c5.3-20.6 10.9-42.2 16.5-63.8c2-7.6 3.8-14.6 5.4-20.9c.7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1c-7.2-7.6-14.7-15.5-22.3-23.3c-3.7-3.7-9.3-6-16.6-6.9c-6.8-.8-14.4-.3-21.7 1c-1.7 .3-3.2 .6-4.5 .9c-.8 .2-1.3 .3-1.5 .4c-3.8 1.1-7.9-.2-10.6-3.2L293.3 21.1zM224 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2s1.3 6.2-1.7 8.4s-44.1 34.6-48.1 38.2s-9.8 9.5-13.8 9.5s-9.8-5.9-13.8-9.5s-45.1-36-48.1-38.2s-5.1-6.2-1.7-8.4s13.9-7.5 28.3-15.2s32.5-14.1 35.4-14.1zm.1-230.7c.7 0 8.8 .2 20.5 4.2c12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9s54.2 66.7 54.2 81s-6.8 18-13.7 25.4s-36.8 39.8-40.7 43.9s-11.9 10.5-7.1 21.8s11.7 25.8 3.9 40.4s-21 24.4-29.4 22.8s-28.4-12.2-35.7-17.1s-30.5-24.3-30.5-31.8s24-20.8 28.4-23.9s24.7-14.8 25.1-19.4s.3-6-5.7-17.4s-16.7-26.7-14.9-36.8s19.1-15.4 31.5-20.2s36.2-13.7 39.2-15.1s2.2-2.7-6.8-3.6s-34.6-4.3-46.1-1.1s-31.2 8.2-32.8 10.9s-3 2.7-1.4 11.8s10.1 52.8 10.9 60.6s2.4 12.9-5.8 14.8s-22.1 5.2-26.8 5.2s-18.6-3.3-26.8-5.2s-6.6-7-5.8-14.8s9.3-51.5 10.9-60.6s.2-9.2-1.4-11.8s-21.3-7.6-32.8-10.9s-37.1 .2-46.1 1.1s-9.8 2.2-6.8 3.6s26.8 10.4 39.2 15.1s29.7 10 31.5 20.2s-9 25.4-14.9 36.8s-6.1 12.8-5.7 17.4s20.6 16.4 25.1 19.4s28.4 16.4 28.4 23.9s-23.2 27-30.5 31.8s-27.2 15.4-35.7 17.1s-21.7-8.2-29.4-22.8s-.8-29.1 3.9-40.4s-3.3-17.7-7.1-21.8s-33.8-36.5-40.7-43.9s-13.7-11.2-13.7-25.4s54.2-81 54.2-81s45.8 8.9 51.9 8.9s19.5-5.2 31.9-9.4s20.6-4.2 20.6-4.2l.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBrave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145.5 0H224h78.5l44.7 50.8s39.3-10.9 57.8 7.6s33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9c-7.5 5.1-15.8 10.8-23.5 10.8l0 0 0 0c-7.7 0-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9c-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191l15.3-43.7L9.2 93.3s15.3-16.4 33.8-34.9s57.8-7.6 57.8-7.6L145.5 0zM224 407.6l0 0c3.7 0 8.9-4.7 13-8.4c.6-.5 1.2-1.1 1.7-1.5c4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8c-3-1.6-6.3-3.2-9.7-5c-15.4-8-34.5-14.7-37.5-14.7l0 0 0 0c-3 0-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5c-10.3 5.3-17.6 9.1-20.3 10.8c-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5c4.1 3.7 9.3 8.4 13 8.4l0 0zm0-165.7l0 0c4.7 0 17.6-3 26.4-5l0 0 2-.5c7.8-1.8 7.3-6.3 6.4-13c-.1-.8-.2-1.6-.3-2.4c-.6-6.1-5.8-33.1-9.1-50.3c-1.1-5.8-2-10.5-2.4-12.9c-1.5-8.1-.6-9.4 .7-11.3c.2-.3 .5-.7 .7-1.1c1.4-2.3 16-6.2 27.9-9.5l0 0c2.5-.7 4.8-1.3 6.9-1.9c10.6-3 32.4-.6 44.2 .6c1.8 .2 3.4 .4 4.7 .5c9.6 .9 10.4 2.3 7.2 3.8c-2.3 1.1-16.2 6.3-28.7 10.9l0 0 0 0c-4.7 1.8-9.2 3.5-12.8 4.8c-1.5 .5-3 1.1-4.5 1.7c-12.5 4.6-27.2 10-28.9 19.4c-1.5 8.3 5.2 19.9 11.3 30.3l0 0c1.6 2.8 3.2 5.5 4.6 8.1c6.3 11.9 6.5 13.3 6.1 18.1c-.4 3.9-14.5 12.7-22.4 17.6l0 0c-1.8 1.1-3.3 2.1-4.2 2.7c-.8 .5-2.1 1.4-3.8 2.4c-8.6 5.2-26.3 16-26.3 22.5c0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8s23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3l0 0c.5-.5 1-1 1.4-1.4L377.7 194c1.3-1.3 2.5-2.6 3.7-3.8l0 0c5.8-5.7 10.8-10.5 10.8-22.8c0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1l0 0c-2.7-.9-5.4-1.9-8-2.7C232.8 78.1 224 78 224 78l0 0 0 0s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7l0 0c-10.5 3.6-20.6 7.1-25.8 7.1c-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8l0 0c1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4l0 0c4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40c8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8s32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5c-1.7-1-3.1-1.9-3.8-2.4c-.9-.6-2.4-1.5-4.2-2.7c-7.9-4.9-22-13.7-22.4-17.6c-.4-4.8-.3-6.2 6.1-18.1c1.3-2.5 2.9-5.3 4.6-8.1c6-10.4 12.8-22 11.3-30.3c-1.7-9.4-16.4-14.8-28.9-19.4c-1.6-.6-3.1-1.1-4.5-1.7c-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9c-3.2-1.5-2.3-2.8 7.2-3.8c1.3-.1 2.9-.3 4.7-.5c11.8-1.3 33.6-3.6 44.2-.6c2.1 .6 4.4 1.2 6.9 1.9c11.9 3.2 26.5 7.2 27.9 9.5c.2 .4 .5 .7 .7 1.1c1.3 1.9 2.2 3.2 .7 11.3c-.4 2.4-1.3 7.1-2.4 12.9c-3.3 17.2-8.5 44.2-9.1 50.3c-.1 .8-.2 1.7-.3 2.4c-.8 6.7-1.4 11.2 6.4 13l2 .5 0 0c8.8 2 21.8 5 26.4 5l0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBtc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"},\"child\":[]}]})(props);\n};\nexport function FaBuffer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"},\"child\":[]}]})(props);\n};\nexport function FaBuromobelexperte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"},\"child\":[]}]})(props);\n};\nexport function FaBuyNLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"},\"child\":[]}]})(props);\n};\nexport function FaBuysellads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCanadianMapleLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmazonPay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 432c0 26.5 21.5 48 48 48H528c26.5 0 48-21.5 48-48v-1.1H514.3l-31.9-35.1-31.9 35.1H246.8V267.1H181L262.7 82.4h78.6l28.1 63.2V82.4h97.2L483.5 130l17-47.6H576V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80V432zm440.4-21.7L482.6 364l42 46.3H576l-68-72.1 68-72.1H525.4l-42 46.7-41.5-46.7H390.5L458 338.6l-67.4 71.6V377.1h-83V354.9h80.9V322.6H307.6V300.2h83V267.1h-122V410.3H440.4zm96.3-72L576 380.2V296.9l-39.3 41.4zm-36.3-92l36.9-100.6V246.3H576V103H515.8l-32.2 89.3L451.7 103H390.5V246.1L327.3 103H276.1L213.7 246.3h43l11.9-28.7h65.9l12 28.7h82.7V146L466 246.3h34.4zM282 185.4l19.5-46.9 19.4 46.9H282z\"},\"child\":[]}]})(props);\n};\nexport function FaCcApplePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDinersClub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDiscover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcJcb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcMastercard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCcPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcVisa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"},\"child\":[]}]})(props);\n};\nexport function FaCentercode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCentos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z\"},\"child\":[]}]})(props);\n};\nexport function FaChromecast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudflare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudscale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudsmith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 227.6v56.9L284.4 512H227.6L0 284.4V227.6L227.6 0h56.9L512 227.6zm-256 162a133.6 133.6 0 1 0 0-267.1 133.6 133.6 0 1 0 0 267.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudversify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 616 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCmplid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M226.119,388.165a3.816,3.816,0,0,0-2.294-3.5,3.946,3.946,0,0,0-1.629-.385L72.6,384.3a19.243,19.243,0,0,1-17.924-26.025L81.585,255.692a35.72,35.72,0,0,1,32.373-26H262.525a7.07,7.07,0,0,0,6.392-5.194l10.769-41.131a3.849,3.849,0,0,0-2.237-4.937,3.755,3.755,0,0,0-1.377-.261c-.063,0-.126,0-.189.005H127.38a106.8,106.8,0,0,0-96.99,77.1L3.483,358.824A57.469,57.469,0,0,0,57.314,436q1.43,0,2.86-.072H208.742a7.131,7.131,0,0,0,6.391-5.193L225.839,389.6A3.82,3.82,0,0,0,226.119,388.165ZM306.658,81.2a3.861,3.861,0,0,0,.251-1.367A3.813,3.813,0,0,0,303.079,76c-.064,0-.128,0-.192,0h-41A7.034,7.034,0,0,0,255.5,81.2l-21.347,80.915h51.131ZM180.364,368.249H231.5L263.452,245.69H212.321ZM511.853,79.723a3.809,3.809,0,0,0-3.8-3.661c-.058,0-.137,0-.23.007h-41a7.1,7.1,0,0,0-6.584,5.129L368.91,430.634a3.54,3.54,0,0,0-.262,1.335,3.873,3.873,0,0,0,3.864,3.863c.056,0,.112,0,.169,0h41a7.068,7.068,0,0,0,6.392-5.193L511.533,81.2A3.624,3.624,0,0,0,511.853,79.723ZM324.649,384.47h-41a7.2,7.2,0,0,0-6.392,5.194L266.52,430.8a3.662,3.662,0,0,0-.268,1.374A3.783,3.783,0,0,0,270.023,436c.06,0,.166,0,.3-.012h40.905a7.036,7.036,0,0,0,6.391-5.193l10.769-41.131a3.75,3.75,0,0,0-3.445-5.208c-.108,0-.217,0-.326.014Zm311.324-308.4h-41a7.066,7.066,0,0,0-6.392,5.129l-91.46,349.436a4.073,4.073,0,0,0-.229,1.347,3.872,3.872,0,0,0,3.863,3.851c.056,0,.112,0,.169,0h40.968a7.1,7.1,0,0,0,6.392-5.193L639.68,81.2a3.624,3.624,0,0,0,.32-1.475,3.841,3.841,0,0,0-3.821-3.564c-.068,0-.137,0-.206.006ZM371.562,225.236l10.8-41.1a4.369,4.369,0,0,0,.227-1.388,3.869,3.869,0,0,0-3.861-3.842c-.057,0-.113,0-.169,0h-41.1a7.292,7.292,0,0,0-6.391,5.226l-10.834,41.1a4.417,4.417,0,0,0-.26,1.493c0,.069,0,.138,0,.206a3.776,3.776,0,0,0,3.757,3.507c.076,0,.18,0,.3-.012h41.129A7.034,7.034,0,0,0,371.562,225.236Z\"},\"child\":[]}]})(props);\n};\nexport function FaCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"},\"child\":[]}]})(props);\n};\nexport function FaCodiepie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 472 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"},\"child\":[]}]})(props);\n};\nexport function FaConfluence (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"},\"child\":[]}]})(props);\n};\nexport function FaConnectdevelop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"},\"child\":[]}]})(props);\n};\nexport function FaContao (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"},\"child\":[]}]})(props);\n};\nexport function FaCottonBureau (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"},\"child\":[]}]})(props);\n};\nexport function FaCpanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsBy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcEu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcJp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPdAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsRemix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSamplingPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSampling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsZero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"},\"child\":[]}]})(props);\n};\nexport function FaCriticalRole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3Alt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"},\"child\":[]}]})(props);\n};\nexport function FaCuttlefish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndDBeyond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndD (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDailymotion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaDartLang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72C256.6 2.3 268 0 279.6 0c13.5 0 29.4 9.2 37 16.8l62 62zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3L512 212.2 512 421l-79.3 .7L107.3 96.5zM96.5 373l0-262.2L420.3 434.6l.7 77.4-212.2 0-98.1-98.2 0 0C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6c0-6.8 3.9-17.5 6.7-23.6l72-150.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDashcube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDebian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.2 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4c-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4c-30-13.8-76.1-16.2-97.3-5.8c1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9c-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7c-3.5 3.4 1.7 2 5.8 .9l0 0c4.1-1.1 7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17c.8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4c-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8c-4.3 8.1-7.9 14.9-8.7 21.3c-.3 5.1-1 11-1.7 17.3l0 0c-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5c.2 .4 .4 .8 .5 1.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9l0 0c4.4 .4 9.3 .9 18.7 24.2c-2.7-.9-5.5-1.9-9.4-7.2c-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8l0 0 0 0c1 .9 2.1 1.9 3.1 2.9c-11.9-6.5 3.2 13.7 11.9 25.2c.8 1.1 1.5 2 2.2 2.9l0 0 0 0 0 0 0 0 0 0c1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2c2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3c10.7 3.7 16.6 4.7 22.7 5.8c.3 0 .6 .1 .9 .1c5.4 .8 11.2 1.8 20.8 4.5c-1.1-.1-2.2-.1-3.3-.1h0c-2.3-.1-4.7-.1-7-.1l0 0 0 0 0 0 0 0 0 0 0 0 0 0c-14.4-.2-29.2-.4-42.7-5.2C107.8 480.5 19.5 367.2 26 250.6c-.6-9.9-.3-20.9 0-30.7c.4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2v-.1c.4 .4 3.4 3.4 8.8-5.8c.8-1.8 1.6-3.7 2.4-5.6c.5-1.1 .9-2.2 1.4-3.2c2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7c-3.4 3.8 2.2 2.7 10 1c4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6c8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2c-5.6 .8-12.3 3-11.2 3.8c7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1c3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2c.3 .5 .5 1 .7 1.4c.1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1c1.7-.7-2.7-4.7-6.4-8.2c0 0 0 0-.1-.1c-.2-.1-.3-.3-.5-.4c32.2 17.3 67.3 54.1 78 93.5c-6-11.1-5.2-5.5-4.3 .5c.6 4 1.2 8.1-.2 7.5c4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3c-.4 4.3-2.8 3.9-5.2 3.5l-.1 0 0 0c-3.3-.6-6.2-1.1-1.9 12.6c2.6 3.8 3.1 2.4 3.5 1.1l0 0c.5-1.5 .9-2.7 4.7 5.2c.1 4.1 1 8.2 2.1 12.7l0 0 0 0 .1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4c-1.1-.2-2.3-2.2-3.4-4.2c-1.4-2.4-2.8-4.7-3.7-3.2c2.4 11.5 6.5 17.4 8 18.3c-.3 .6-.6 .7-1.1 .7c-.8 0-1.8 .1-1.9 5.3c.7 13.7 3.3 12.5 5.3 11.6l0 0c.6-.3 1.2-.6 1.7-.4c-.6 2.5-1.6 5.1-2.7 7.9c-2.8 7.1-6 15.4-3.4 26.1c-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5l0 0c-.3-.8-.6-1.6-.9-2.3c-.6 4.4-.3 7.7-.1 10.6c0 .2 0 .5 0 .7c.4 5.3 .7 10-3 19.9c4.3-14.2 3.8-26.9-.2-20.8c1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8c1.7-2.9 1.3-3.6 1-4.2l0 0c-.4-.8-.7-1.5 1.7-5.1c-1.6 .1-5.5 3.9-10.1 8.5c-3.9 3.9-8.5 8.4-12.8 11.8c-37.5 30.1-82.3 34-125.6 17.8c.2-1-.2-2.1-3.1-4.1c-36.8-28.2-58.5-52.1-50.9-107.5c2.1-1.6 3.6-5.8 5.3-10.8l0 0 0 0 .2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8c7.8-17.3 31.3-33.3 56.4-33.7c25.6-1.4 47.2 13.7 58.1 27.9c-19.8-18.4-52.1-24-79.7-10.4c-28.2 12.7-45 43.8-42.5 74.7c.3-.4 .6-.6 .9-.8l0 0s0 0 0 0c0 0 .1-.1 .1-.1l.1-.1c.6-.5 1.1-.9 1.4-3.3c-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1 0 0c2.2-2.1 4.7-4.5 8.9-7.3c-.3 .7-1.3 1.7-2.4 2.7c-2.2 2.1-4.6 4.5-1.6 4.6c5-1.3 18.5-13.4 28.5-22.3l0 0 0 0c.6-.5 1.2-1 1.7-1.5c1.5-1.3 2.8-2.5 4-3.6l0 0 .3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6c.2-.6 .5-1.2 .7-1.8l-.4-.2zM349.3 34.3l-.2-.1 .2 .1 0 0zM247.8 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2c-12.2-5.7-23.4-14.3-32.6-24.9c4.9 7.1 10.1 14.1 17 19.5c-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5c19.8 35.5 80.5 62.3 112.3 49c-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4c1.4-5.8 5.4-10.7 4.4 4.6c-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5c.2-2-1.2-2.4-2.6-2.8l0 0c-2.9-.8-5.9-1.6 5.6-16.1c-.5 1.9-2.1 4.6-3.7 7.3l0 0 0 0-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8h.1zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1c-2.5 2.4-5.2 4.8-8.3 7.2c-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7c-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9h.1zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l.8 1.6 .2 .4zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3c7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.6 110.6c.4 .8 1.4 .5 2.3 .3c1.9-.5 3.6-.9-.1 7.6c-.5 .3-1 .7-1.5 1l0 0 0 0c-1.4 .9-2.8 1.9-3.9 3c1.9-3.8 3.5-7.4 3.2-11.9zM25.3 152.3c-.7 3.7-1.5 7.9-3.4 13.9c.2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8c-.3 1.2-.5 2.5-.7 3.8v.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDeezer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"},\"child\":[]}]})(props);\n};\nexport function FaDelicious (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"},\"child\":[]}]})(props);\n};\nexport function FaDeploydog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDeskpro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDeviantart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDhl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDiaspora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDigg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDigitalOcean (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscourse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaDochub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"},\"child\":[]}]})(props);\n};\nexport function FaDocker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDraft2Digital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"},\"child\":[]}]})(props);\n};\nexport function FaDropbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 528 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"},\"child\":[]}]})(props);\n};\nexport function FaDrupal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303.973,108.136C268.2,72.459,234.187,38.35,224.047,0c-9.957,38.35-44.25,72.459-80.019,108.136C90.467,161.7,29.716,222.356,29.716,313.436c-2.337,107.3,82.752,196.18,190.053,198.517S415.948,429.2,418.285,321.9q.091-4.231,0-8.464C418.285,222.356,357.534,161.7,303.973,108.136Zm-174.326,223a130.282,130.282,0,0,0-15.211,24.153,4.978,4.978,0,0,1-3.319,2.766h-1.659c-4.333,0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.247-25.72-1.475-62.318-1.475-62.318h0a160.585,160.585,0,0,1,23.231-49.873A290.8,290.8,0,0,1,138.5,201.613l9.219,9.219,43.512,44.434a4.979,4.979,0,0,1,0,6.638L145.78,312.33h0Zm96.612,127.311a67.2,67.2,0,0,1-49.781-111.915c14.2-16.871,31.528-33.464,50.334-55.313,22.309,23.785,36.875,40.1,51.164,57.986a28.413,28.413,0,0,1,2.95,4.425,65.905,65.905,0,0,1,11.984,37.981,66.651,66.651,0,0,1-66.466,66.836ZM352.371,351.6h0a7.743,7.743,0,0,1-6.176,5.347H344.9a11.249,11.249,0,0,1-6.269-5.07h0a348.21,348.21,0,0,0-39.456-48.952L281.387,284.49,222.3,223.185a497.888,497.888,0,0,1-35.4-36.322,12.033,12.033,0,0,0-.922-1.382,35.4,35.4,0,0,1-4.7-9.219V174.51a31.346,31.346,0,0,1,9.218-27.656c11.432-11.431,22.955-22.954,33.833-34.939,11.984,13.275,24.8,26,37.428,38.627h0a530.991,530.991,0,0,1,69.6,79.1,147.494,147.494,0,0,1,27.011,83.8A134.109,134.109,0,0,1,352.371,351.6Z\"},\"child\":[]}]})(props);\n};\nexport function FaDyalog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"},\"child\":[]}]})(props);\n};\nexport function FaEarlybirds (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"},\"child\":[]}]})(props);\n};\nexport function FaEbay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEdgeLegacy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"},\"child\":[]}]})(props);\n};\nexport function FaEdge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z\"},\"child\":[]}]})(props);\n};\nexport function FaElementor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z\"},\"child\":[]}]})(props);\n};\nexport function FaEllo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"},\"child\":[]}]})(props);\n};\nexport function FaEmber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEmpire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"},\"child\":[]}]})(props);\n};\nexport function FaErlang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"},\"child\":[]}]})(props);\n};\nexport function FaEthereum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaEtsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"},\"child\":[]}]})(props);\n};\nexport function FaEvernote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"},\"child\":[]}]})(props);\n};\nexport function FaExpeditedssl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 299.3V512H196V299.3h86.5l18-97.8H196V166.9c0-51.7 20.3-71.5 72.7-71.5c16.3 0 29.4 .4 37 1.2V7.9C291.4 4 256.4 0 236.2 0C129.3 0 80 50.5 80 159.4v42.1H14v97.8H80z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookMessenger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z\"},\"child\":[]}]})(props);\n};\nexport function FaFantasyFlightGames (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"},\"child\":[]}]})(props);\n};\nexport function FaFedex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFedora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefoxBrowser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M130.22 127.548C130.38 127.558 130.3 127.558 130.22 127.548V127.548ZM481.64 172.898C471.03 147.398 449.56 119.898 432.7 111.168C446.42 138.058 454.37 165.048 457.4 185.168C457.405 185.306 457.422 185.443 457.45 185.578C429.87 116.828 383.098 89.1089 344.9 28.7479C329.908 5.05792 333.976 3.51792 331.82 4.08792L331.7 4.15792C284.99 30.1109 256.365 82.5289 249.12 126.898C232.503 127.771 216.219 131.895 201.19 139.035C199.838 139.649 198.736 140.706 198.066 142.031C197.396 143.356 197.199 144.87 197.506 146.323C197.7 147.162 198.068 147.951 198.586 148.639C199.103 149.327 199.76 149.899 200.512 150.318C201.264 150.737 202.096 150.993 202.954 151.071C203.811 151.148 204.676 151.045 205.491 150.768L206.011 150.558C221.511 143.255 238.408 139.393 255.541 139.238C318.369 138.669 352.698 183.262 363.161 201.528C350.161 192.378 326.811 183.338 304.341 187.248C392.081 231.108 368.541 381.784 246.951 376.448C187.487 373.838 149.881 325.467 146.421 285.648C146.421 285.648 157.671 243.698 227.041 243.698C234.541 243.698 255.971 222.778 256.371 216.698C256.281 214.698 213.836 197.822 197.281 181.518C188.434 172.805 184.229 168.611 180.511 165.458C178.499 163.75 176.392 162.158 174.201 160.688C168.638 141.231 168.399 120.638 173.51 101.058C148.45 112.468 128.96 130.508 114.8 146.428H114.68C105.01 134.178 105.68 93.7779 106.25 85.3479C106.13 84.8179 99.022 89.0159 98.1 89.6579C89.5342 95.7103 81.5528 102.55 74.26 110.088C57.969 126.688 30.128 160.242 18.76 211.318C14.224 231.701 12 255.739 12 263.618C12 398.318 121.21 507.508 255.92 507.508C376.56 507.508 478.939 420.281 496.35 304.888C507.922 228.192 481.64 173.82 481.64 172.898Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrderAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstdraft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlickr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFlipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFlutter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.5 236.3L291.7 374.1 429.5 512H272l-59.1-59.1-78.8-78.8L272 236.3H429.5zM272 0L16 256l78.8 78.8L429.5 0H272z\"},\"child\":[]}]})(props);\n};\nexport function FaFly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 352 0 64 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticonsFi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesomeAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"},\"child\":[]}]})(props);\n};\nexport function FaForumbee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFoursquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 368 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFreeCodeCamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"},\"child\":[]}]})(props);\n};\nexport function FaFreebsd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFulcrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticRepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticSenate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"},\"child\":[]}]})(props);\n};\nexport function FaGetPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGgCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"},\"child\":[]}]})(props);\n};\nexport function FaGitAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"},\"child\":[]}]})(props);\n};\nexport function FaGit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"},\"child\":[]}]})(props);\n};\nexport function FaGithubAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"},\"child\":[]}]})(props);\n};\nexport function FaGitkraken (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 592 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"},\"child\":[]}]})(props);\n};\nexport function FaGlideG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGlide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGofore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGolang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreadsG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlusG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleScholar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M390.9 298.5c0 0 0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64C405.3 445.1 338.5 512 256 512s-149.3-66.9-149.3-149.3c0-22.9 5.2-44.6 14.4-64h0c1.7-3.6 3.6-7.2 5.6-10.7c4.4-7.6 9.4-14.7 15-21.3c27.4-32.6 68.5-53.3 114.4-53.3c33.6 0 64.6 11.1 89.6 29.9c9.1 6.9 17.4 14.7 24.8 23.5c5.6 6.6 10.6 13.8 15 21.3c2 3.4 3.8 7 5.5 10.5zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4L0 202.7 256 0 512 202.7l-94.7 77.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 488 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGratipay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"},\"child\":[]}]})(props);\n};\nexport function FaGrav (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"},\"child\":[]}]})(props);\n};\nexport function FaGripfire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGrunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"},\"child\":[]}]})(props);\n};\nexport function FaGuilded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"},\"child\":[]}]})(props);\n};\nexport function FaGulp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerrank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"},\"child\":[]}]})(props);\n};\nexport function FaHashnode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z\"},\"child\":[]}]})(props);\n};\nexport function FaHips (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHireAHelper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"},\"child\":[]}]})(props);\n};\nexport function FaHooli (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHornbill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"},\"child\":[]}]})(props);\n};\nexport function FaHotjar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M361.5 0c0 131.6-80.7 176.8-140.2 209.4c-.6 .3-1.1 .6-1.6 .9c-53.8 30.2-88.7 49.8-89.6 122H32C32 200.8 112.7 155.6 172.2 123C227 93.2 262.5 73 262.5 0h98.9zM301 302.6c54.8-29.8 90.3-50 90.3-123h98c0 131.6-80.7 176.7-140.2 209.4c-54.8 29.8-90.3 50-90.3 123h-98c0-131.6 80.7-176.8 140.2-209.4z\"},\"child\":[]}]})(props);\n};\nexport function FaHouzz (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHtml5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHubspot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"},\"child\":[]}]})(props);\n};\nexport function FaIdeal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"},\"child\":[]}]})(props);\n};\nexport function FaImdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z\"},\"child\":[]}]})(props);\n};\nexport function FaInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"},\"child\":[]}]})(props);\n};\nexport function FaInstalod (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"},\"child\":[]}]})(props);\n};\nexport function FaIntercom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"},\"child\":[]}]})(props);\n};\nexport function FaInternetExplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"},\"child\":[]}]})(props);\n};\nexport function FaInvision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"},\"child\":[]}]})(props);\n};\nexport function FaIoxhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaItchIo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"},\"child\":[]}]})(props);\n};\nexport function FaItunesNote (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"},\"child\":[]}]})(props);\n};\nexport function FaItunes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"},\"child\":[]}]})(props);\n};\nexport function FaJava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"},\"child\":[]}]})(props);\n};\nexport function FaJediOrder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJenkins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"},\"child\":[]}]})(props);\n};\nexport function FaJira (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJoget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaJoomla (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaJsfiddle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"},\"child\":[]}]})(props);\n};\nexport function FaJxl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M412.2 32H35.8C16 32 0 48 0 67.8V444.2C0 464 16 480 35.8 480H412.2c19.8 0 35.8-16 35.8-35.8V67.8C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6zm0-113.9c0 40.2-32.6 72.8-72.8 72.8H70.2c0-40.2 32.6-72.8 72.8-72.8H378.6z\"},\"child\":[]}]})(props);\n};\nexport function FaKaggle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"},\"child\":[]}]})(props);\n};\nexport function FaKeybase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"},\"child\":[]}]})(props);\n};\nexport function FaKeycdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarterK (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356.6 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32C80.5 32 32 80.2 32 139.5V372.5C32 431.9 80.5 480 140.2 480c37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40z\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1L320.8 279c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5c-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4c21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"},\"child\":[]}]})(props);\n};\nexport function FaKorvue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 446 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLaravel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"},\"child\":[]}]})(props);\n};\nexport function FaLastfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"},\"child\":[]}]})(props);\n};\nexport function FaLeanpub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"},\"child\":[]}]})(props);\n};\nexport function FaLess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"},\"child\":[]}]})(props);\n};\nexport function FaLetterboxd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M521.3 128C586.9 128 640 181.1 640 246.6s-53.1 118.6-118.7 118.6c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8c11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l0 0 .8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8c-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l0 0-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"},\"child\":[]}]})(props);\n};\nexport function FaLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311 196.8v81.3c0 2.1-1.6 3.7-3.7 3.7h-13c-1.3 0-2.4-.7-3-1.5l-37.3-50.3v48.2c0 2.1-1.6 3.7-3.7 3.7h-13c-2.1 0-3.7-1.6-3.7-3.7V196.9c0-2.1 1.6-3.7 3.7-3.7h12.9c1.1 0 2.4 .6 3 1.6l37.3 50.3V196.9c0-2.1 1.6-3.7 3.7-3.7h13c2.1-.1 3.8 1.6 3.8 3.5zm-93.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 2.1 1.6 3.7 3.7 3.7h13c2.1 0 3.7-1.6 3.7-3.7V196.8c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1H150.3V196.8c0-2.1-1.6-3.7-3.7-3.7h-13c-2.1 0-3.7 1.6-3.7 3.7v81.3c0 1 .3 1.8 1 2.5c.7 .6 1.5 1 2.5 1h52.2c2.1 0 3.7-1.6 3.7-3.7v-13c0-1.9-1.6-3.7-3.5-3.7zm193.7-68.1H327.3c-1.9 0-3.7 1.6-3.7 3.7v81.3c0 1.9 1.6 3.7 3.7 3.7h52.2c2.1 0 3.7-1.6 3.7-3.7V265c0-2.1-1.6-3.7-3.7-3.7H344V247.7h35.5c2.1 0 3.7-1.6 3.7-3.7V230.9c0-2.1-1.6-3.7-3.7-3.7H344V213.5h35.5c2.1 0 3.7-1.6 3.7-3.7v-13c-.1-1.9-1.7-3.7-3.7-3.7zM512 93.4V419.4c-.1 51.2-42.1 92.7-93.4 92.6H92.6C41.4 511.9-.1 469.8 0 418.6V92.6C.1 41.4 42.2-.1 93.4 0H419.4c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3s-186.4 67.9-186.4 151.3c0 74.7 66.3 137.4 155.9 149.3c21.8 4.7 19.3 12.7 14.4 42.1c-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedinIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"},\"child\":[]}]})(props);\n};\nexport function FaLinode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M366.036,186.867l-59.5,36.871-.838,36.871-29.329-19.273-39.384,24.3c2.238,55.211,2.483,59.271,2.51,59.5l-97.2,65.359L127.214,285.748l108.1-62.01L195.09,197.761l-75.417,38.547L98.723,93.015,227.771,43.574,136.432,0,10.737,39.385,38.39,174.3l41.9,32.681L48.445,222.062,69.394,323.457,98.723,351.11,77.774,363.679l16.76,78.769L160.733,512c-10.8-74.842-11.658-78.641-11.725-78.773l77.925-55.3c16.759-12.57,15.083-10.894,15.083-10.894l.838,24.3,33.519,28.491-.838-77.093,46.927-33.519,26.815-18.435-2.514,36.033,25.139,17.6,6.7-74.579,58.657-43.575Z\"},\"child\":[]}]})(props);\n};\nexport function FaLinux (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaLyft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"},\"child\":[]}]})(props);\n};\nexport function FaMagento (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMailchimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"},\"child\":[]}]})(props);\n};\nexport function FaMandalorian (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"},\"child\":[]}]})(props);\n};\nexport function FaMarkdown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"},\"child\":[]}]})(props);\n};\nexport function FaMastodon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"},\"child\":[]}]})(props);\n};\nexport function FaMaxcdn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMdb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"},\"child\":[]}]})(props);\n};\nexport function FaMedapps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMedium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.5,74.262C80.813,74.262,0,155.633,0,256S80.819,437.738,180.5,437.738,361,356.373,361,256,280.191,74.262,180.5,74.262Zm288.25,10.646c-49.845,0-90.245,76.619-90.245,171.095s40.406,171.1,90.251,171.1,90.251-76.619,90.251-171.1H559C559,161.5,518.6,84.908,468.752,84.908Zm139.506,17.821c-17.526,0-31.735,68.628-31.735,153.274s14.2,153.274,31.735,153.274S640,340.631,640,256C640,171.351,625.785,102.729,608.258,102.729Z\"},\"child\":[]}]})(props);\n};\nexport function FaMedrt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaMeetup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"},\"child\":[]}]})(props);\n};\nexport function FaMegaport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMendeley (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMeta (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroblog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrosoft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMintbit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M73.2 512V438.9H365.7V365.7h73.2V219.4H512V0H292.6V73.1H146.3v73.2H73.2V438.9H0V512H73.2zm73.1-219.4h73.2v73.1H146.3V292.6zm73.2-73.1h73.1v73.1H219.4V219.4zm73.1 0V146.3h73.2v73.1H292.6zM365.7 73.1h73.2v73.2H365.7V73.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"},\"child\":[]}]})(props);\n};\nexport function FaMixcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.98 346.566H179.789V195.114L185.973 173.47H175.262L137.127 346.566H76.1069L37.7323 173.47H27.276L33.1913 195.114V346.566H0V165H65.6506L102.248 338.096H110.747L147.329 165H212.98L212.98 346.566ZM544.459 283.589L458.434 345.655V307.534L531.329 255.776L458.434 204.017V165.896L544.459 228.231H553.721L640 165.896V204.017L566.866 255.776L640 307.549V345.655L553.721 283.589H544.459ZM430.157 272.311H248.113V239.255H430.157V272.311Z\"},\"child\":[]}]})(props);\n};\nexport function FaMixer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaMizuni (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"},\"child\":[]}]})(props);\n};\nexport function FaModx (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMonero (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"},\"child\":[]}]})(props);\n};\nexport function FaNapster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNeos (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"},\"child\":[]}]})(props);\n};\nexport function FaNfcDirectional (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z\"},\"child\":[]}]})(props);\n};\nexport function FaNfcSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z\"},\"child\":[]}]})(props);\n};\nexport function FaNimblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"},\"child\":[]}]})(props);\n};\nexport function FaNodeJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"},\"child\":[]}]})(props);\n};\nexport function FaNode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"},\"child\":[]}]})(props);\n};\nexport function FaNpm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"},\"child\":[]}]})(props);\n};\nexport function FaNs8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaNutritionix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaOctopusDeploy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"},\"child\":[]}]})(props);\n};\nexport function FaOdnoklassniki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"},\"child\":[]}]})(props);\n};\nexport function FaOdysee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.7 463c-42.3 30.8-94.4 49-150.7 49C144.9 512 50.3 441.2 14.9 342.2c2.4 1.7 5.9 3.6 7.9 4.4c16.3 7.4 40.1-5.4 62.9-28.7c6.9-6.9 14.4-12.4 22.8-17.3c18.3-11.9 37.6-20.8 58.4-27.2c0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1c-11-.5-70-3-56 51.1c14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4c.8 4.6 1.1 9.9 1.4 15.5c1.1 21.2 2.3 45.6 35.3 46.4c5.3 0 10.6-.8 15.5-2zm-95.3-23.7c-2-.5-3.5-2.5-3-5c1-2.5 3-3.5 5-3s3.5 3 3 5s-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3c0 2-1 4-3 4c-1.5 .5-3.5-1-4-3c-.5-1.5 1-3.5 3-4zM451.8 421C489.3 376.4 512 318.8 512 256c0-67.5-26.1-128.9-68.8-174.7c-.1 23.5-6.1 48.2-16.8 69.2c-11.9 20.3-49 58.9-69.8 78.7c-.7 .3-1.1 .9-1.5 1.4c-.2 .2-.3 .4-.5 .6c-5 6.9-4 16.8 3 21.8c21.3 15.8 56.4 45.6 59.4 72.8c3.5 34.9 27.9 75.6 34.2 86.2l0 0c.8 1.3 1.3 2.1 1.4 2.4c0 2.2-.4 4.3-.8 6.5zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4s-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4l0 0c-.3 1.4-.7 2.8-1 4.2c-9.5 38.5-30.6 37.6-41.7 37.2c-1.1 0-2-.1-2.9-.1c-5.1 0-6-4-8.9-17.1c-2.6-12.1-6.9-32-17.9-63.6C271.4-2.5 211.4 13.9 165.9 41.1C110.6 74.2 131.5 143 146.1 190.5c.7 2.2 1.4 4.4 2 6.6c-4 4-13.8 7.5-26 11.9c-12.1 4.3-26.6 9.5-40.3 16.9C47.9 243.9 11.5 274.9 2 288.5C.7 277.8 0 267 0 256C0 114.6 114.6 0 256 0c51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4s4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5c1.5 2.5 1 5.4-1.5 6.4c-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3c1.5 .5 3-.5 3-2c.5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54c44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9s-61.9-4.5-64.9-42.6zm89.6 14.9h1c2.5 0 5-2 5-5c2-6.9 1-14.4-2-20.8c-1.5-2-4-3.5-6.4-2.5c-3 1-4.5 4-3.5 6.9c2 4.5 3 9.9 1.5 14.9c-.5 3 1.5 5.9 4.5 6.4zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3c-.2 .1-.4 .2-.6 .2z\"},\"child\":[]}]})(props);\n};\nexport function FaOldRepublic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"},\"child\":[]}]})(props);\n};\nexport function FaOpencart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"},\"child\":[]}]})(props);\n};\nexport function FaOpenid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"},\"child\":[]}]})(props);\n};\nexport function FaOpensuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3c-51.9-1.8-122.8-4.3-223 57.3c-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.1 307 7 335.1c3.3 12.8 8.9 24.9 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4c44.4 3.9 78.1-16 90-53.3c8.2-25.8 0-63.6-31.5-82.9c-25.6-15.7-53.3-12.1-69.2-1.6c-13.9 9.2-21.8 23.5-21.6 39.2c.3 27.8 24.3 42.6 41.5 42.6c5.4 0 10.7-.9 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9c0-12.1-11.6-14.8-16.8-13.9c-2.9 .5-4.5 2-11.8 2.4c-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9c32.3 2.8 47.7 40.7 28.5 65.7C135 388.5 76.7 388 53.6 344.4c-26-49.2 12.7-111.2 87-98.4c33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3c56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8c5.6-33.8 39.7-18.4 82.4-17.4c66.5 .4 102.1-27 103.1-28c3.7-3.1 6.5-15.8 7-17.7c1.3-5.1-3.2-2.4-3.2-2.4c-8.7 5.2-30.5 15.2-50.9 15.6c-25.3 .5-76.2-25.4-81.6-28.2c-.3-.4 .1 1.2-11-25.5c88.4 58.3 118.3 40.5 145.2 21.7c.8-.6 4.3-2.9 3.6-5.7c-13.8-48.1-22.4-62.7-34.5-69.6c-37-21.6-125-34.7-129.2-35.3c.1-.1-.9-.3-.9 .7l0 0zm135.6 75.4a37.6 37.6 0 1 1 -75.2-2.6 37.6 37.6 0 1 1 75.2 2.6zm-36.6-27.9a26.3 26.3 0 1 0 -1.7 52.5 26.3 26.3 0 1 0 1.7-52.5zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6v0z\"},\"child\":[]}]})(props);\n};\nexport function FaOpera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"},\"child\":[]}]})(props);\n};\nexport function FaOptinMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaOrcid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"},\"child\":[]}]})(props);\n};\nexport function FaOsi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPadlet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPage4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPagelines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"},\"child\":[]}]})(props);\n};\nexport function FaPalfed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPatreon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.7 153.8c-.1-65.4-51-119-110.7-138.3C304.8-8.5 207-5 136.1 28.4C50.3 68.9 23.3 157.7 22.3 246.2C21.5 319 28.7 510.6 136.9 512c80.3 1 92.3-102.5 129.5-152.3c26.4-35.5 60.5-45.5 102.4-55.9c72-17.8 121.1-74.7 121-150z\"},\"child\":[]}]})(props);\n};\nexport function FaPaypal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPerbyte (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"},\"child\":[]}]})(props);\n};\nexport function FaPeriscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPhabricator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixFramework (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixSquadron (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPhp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperAlt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperHat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperPp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterestP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"},\"child\":[]}]})(props);\n};\nexport function FaPix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPixiv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm171.5 84c41 0 76.3 12.9 101.4 35.2l0 0c25.2 22.2 39.8 54.1 39.8 88.8c.1 35.3-16.6 66.3-42.4 87c-25.9 20.8-60.6 32.4-98.8 32.4c-43.5 0-83.8-16.1-83.8-16.1v51.8c7.4 2.2 19.7 7 11.9 14.8H104.8c-7.7-7.8 3.6-12.4 12.1-14.8V175.5C97.1 190.9 87 204.3 81.8 214.2c6 19.4-5.3 18.5-5.3 18.5L56 199.7s72.7-83.7 179.5-83.7zm-3.6 222.9c30 0 56-11.3 73.9-29.2c17.9-18.1 27.9-41.6 28-70.2c-.1-29.3-9.5-54.6-26.7-73.6c-17.2-18.9-42.7-31.3-75.2-31.4c-26.7-.1-59.8 9-80.2 23.7V323.1c18.6 9.3 46.8 15.9 80.2 15.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaystation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"},\"child\":[]}]})(props);\n};\nexport function FaProductHunt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 432 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPython (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"},\"child\":[]}]})(props);\n};\nexport function FaQq (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"},\"child\":[]}]})(props);\n};\nexport function FaQuinscape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"},\"child\":[]}]})(props);\n};\nexport function FaQuora (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 581 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRaspberryPi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 407 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRavelry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"},\"child\":[]}]})(props);\n};\nexport function FaReact (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"},\"child\":[]}]})(props);\n};\nexport function FaReacteurope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaReadme (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"},\"child\":[]}]})(props);\n};\nexport function FaRebel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"},\"child\":[]}]})(props);\n};\nexport function FaRedRiver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRedditAlien (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M373 138.6c-25.2 0-46.3-17.5-51.9-41l0 0c-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3c12.6-9.7 28.4-15.5 45.5-15.5c41.3 0 74.7 33.4 74.7 74.7c0 29.8-17.4 55.5-42.7 67.5c-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4C17.6 311.5 0 285.7 0 255.7c0-41.3 33.4-74.7 74.7-74.7c17.2 0 33 5.8 45.7 15.6c34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5C325.8 50.2 347.2 32 373 32c29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1s36.6-9.8 37.8-36.9s-14.7-49.1-35.7-49.1zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1c1.2 27.1 16.9 36.9 37.8 36.9s39.3-11 38-38.1zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1c-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1c12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"},\"child\":[]}]})(props);\n};\nexport function FaReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256s-114.6 256-256 256L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34c-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1c-10.1-7.8-22.8-12.5-36.5-12.5c-33 0-59.8 26.8-59.8 59.8c0 24 14.1 44.6 34.4 54.1c2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54c0-33-26.8-59.8-59.8-59.8c-13.7 0-26.3 4.6-36.4 12.4c-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9l0 0c4.4 18.8 21.3 32.8 41.5 32.8zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6s-31.4-8.8-30.4-30.5s15.4-38.3 32.1-38.3zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5c18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRedhat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"},\"child\":[]}]})(props);\n};\nexport function FaRenren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResearchgate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResolving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRev (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"},\"child\":[]}]})(props);\n};\nexport function FaRocketchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaRockrms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaSafari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"},\"child\":[]}]})(props);\n};\nexport function FaSalesforce (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"},\"child\":[]}]})(props);\n};\nexport function FaSass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSchlix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaScreenpal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScribd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchengin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 460 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSellcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSellsy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"},\"child\":[]}]})(props);\n};\nexport function FaServicestack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShirtsinbulk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaShoelace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404.9 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9c1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8h.2c3.3-1.9 6-1.8 8.2 .4c3.9 2.1 4.2 5.6 .9 10.6L456.9 322c.2 .5 .4 1 .4 1.5c.5 2.2 .3 4.4-.5 6.6c-.7 1.5-1.8 2.9-3.1 4.2c-1.4 1.4-2.7 2.8-4.2 4.2l-18.8 13.7c-1.7 1.2-3.4 2.3-5.1 3.3c-2.1 1.3-4.3 2.5-6.6 3.6c-1 .4-1.9 .9-2.9 1.3c-5.9 2.5-11.9 4.2-18.2 5c-2.9 24.5-11.3 47.1-25.1 67.8c-17.5 25.7-41.4 45.4-71.8 58.8c-30.2 13.5-63 20.2-98.2 20.2c-48.6-.5-88-11.4-118.2-32.8C49.5 454.4 32 421.5 32 380.3v-5.6c1.2-28.1 9.5-54.6 24.8-79.8c15.1-24.9 37.1-41.7 66.1-50.5c14.9-4.4 29.9-6.6 45-6.6c15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5L326 312.2c15.1 9.8 28.8 16.5 41.2 20c-2.6-25.1-11.7-46.6-27.3-64.5c-15.7-18.1-35.6-31.3-59.9-39.7l-23.3-8c-21.4-7.5-37.3-14.9-47.7-22.2c-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5C223.5 9.7 251.1 0 283 0c24 0 45.6 6.9 64.7 20.8c19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7c-9.8 13.2-18.5 19.9-26 19.9c-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6c-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8c0-4.1 1.6-7.6 4.9-10.4c13.8-12.4 20.8-26.7 20.8-42.8c0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.3 89.9 192.3 112c0 17.8 6.9 33.9 20.6 48.3c13.6 14.2 34.6 25.4 63 33.5c39.8 11.5 70.2 31 91.3 58.3c18.7 24.2 29.1 51.3 31.3 81.4c2.2-.7 4.3-1.5 6.5-2.6zM294.1 178.7c0 1.1 .6 1.6 1.8 1.6c.1 0 9.7-8.9 28.8-26.6c0-2.4-5.1 .9-15.3 10c-10.2 9.2-15.3 14.2-15.3 14.9zm8 6.4c0-1-.5-1.5-1.5-1.5c-1.1 0-2.1 .5-2.9 1.6c-1.9-.1-3.3 .1-4.2 .7c-.4 .2-.5 .5-.5 .7c0 .7 .5 1.3 1.5 1.6h3.3c2.9-1.1 4.4-2.2 4.4-3.3zm22.6-19.9c0-2.8-1.6-2.8-4.9 0c-1.6 1.5-3.6 3.5-6 6.2c-.8 .6-2.6 2.2-5.3 4.9c-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4c.1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9c-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1zM366.6 363.9c-8-2.1-15.4-4.6-22.2-7.5c-15.3-6.2-34.3-17-57-32.4L250 298.7c-15.8-10.1-30.2-17.6-43.2-22.6c-13.1-4.9-26-7.3-38.6-7.3h-5.5c-32.2 1.7-57.2 13.8-75 36.2c-16.6 20.8-25 45.3-25 73.6c0 31.8 12.8 56.7 38.2 74.7c25.4 18.1 60.2 27.1 104.4 27.1c34.7 0 64-6.2 87.8-18.6c23.7-12.4 42.1-28.8 55.2-49.2c9.8-15.5 15.9-31.8 18.2-48.8z\"},\"child\":[]}]})(props);\n};\nexport function FaShopify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"},\"child\":[]}]})(props);\n};\nexport function FaShopware (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"},\"child\":[]}]})(props);\n};\nexport function FaSignalMessenger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M194.6 7.5l5.8 23.3C177.7 36.3 156 45.3 136 57.4L123.7 36.8c22-13.3 45.9-23.2 70.9-29.3zm122.9 0l-5.8 23.3C334.3 36.3 356 45.3 376 57.4l12.4-20.6c-22-13.3-46-23.2-71-29.3zM36.8 123.7c-13.3 22-23.2 45.9-29.3 70.9l23.3 5.8C36.3 177.7 45.3 156 57.4 136L36.8 123.7zM24 256c0-11.6 .9-23.3 2.6-34.8L2.9 217.6c-3.8 25.4-3.8 51.3 0 76.7l23.7-3.6C24.9 279.3 24 267.6 24 256zM388.3 475.2L376 454.6c-20 12.1-41.6 21-64.2 26.6l5.8 23.3c24.9-6.2 48.8-16 70.8-29.3zM488 256c0 11.6-.9 23.3-2.6 34.8l23.7 3.6c3.8-25.4 3.8-51.3 0-76.7l-23.7 3.6c1.7 11.5 2.6 23.1 2.6 34.8zm16.5 61.4l-23.3-5.8c-5.6 22.7-14.5 44.3-26.6 64.3l20.6 12.4c13.3-22 23.2-46 29.3-71zm-213.8 168c-23 3.5-46.5 3.5-69.5 0l-3.6 23.7c25.4 3.8 51.3 3.8 76.7 0l-3.6-23.7zm152-91.8c-13.8 18.7-30.4 35.3-49.2 49.1l14.2 19.3c20.7-15.2 39-33.4 54.2-54.1l-19.3-14.4zM393.6 69.2c18.8 13.8 35.3 30.4 49.2 49.2L462.1 104C446.9 83.4 428.6 65.1 408 49.9L393.6 69.2zM69.2 118.4c13.8-18.8 30.4-35.3 49.2-49.2L104 49.9C83.4 65.1 65.1 83.4 49.9 104l19.3 14.4zm406 5.3L454.6 136c12.1 20 21 41.6 26.6 64.2l23.3-5.8c-6.2-24.9-16-48.8-29.3-70.8zm-254-97.1c23-3.5 46.5-3.5 69.5 0l3.6-23.7C268.9-1 243.1-1 217.6 2.9l3.6 23.7zM81.6 468.4L32 480l11.6-49.6L20.2 425 8.6 474.5c-.9 4-.8 8.1 .3 12.1s3.2 7.5 6.1 10.4s6.5 5 10.4 6.1s8.1 1.2 12.1 .3L87 492l-5.4-23.6zM25.2 403.6L48.6 409l8-34.4c-11.7-19.6-20.4-40.8-25.8-63L7.5 317.4c5.2 21.2 13.2 41.7 23.6 60.8l-5.9 25.3zm112 52l-34.4 8 5.4 23.4 25.3-5.9c19.2 10.4 39.6 18.4 60.8 23.6l5.8-23.3c-22.1-5.5-43.3-14.3-62.8-26l-.2 .2zM256 48c-37.2 0-73.6 10-105.6 28.9s-58.4 46-76.3 78.6s-26.9 69.3-25.8 106.4s12 73.3 31.8 104.8L60 452l85.3-20c27.3 17.2 58.2 27.8 90.3 31s64.5-1.1 94.6-12.6s57.2-29.8 79-53.6s37.8-52.2 46.8-83.2s10.5-63.6 4.7-95.3s-19-61.6-38.4-87.4s-44.5-46.7-73.4-61S288.3 48 256 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSimplybuilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSistrix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSith (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"},\"child\":[]}]})(props);\n};\nexport function FaSitrox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.439 0.00846128V0H448V128H64C64 57.6008 141.755 0.475338 212.439 0.00846128ZM237.256 192V192.007C307.135 192.475 384 249.6 384 320H210.809V319.995C140.915 319.563 64 262.424 64 192H237.256ZM235.565 511.993C306.251 511.521 384 454.399 384 384H0V512H235.565V511.993Z\"},\"child\":[]}]})(props);\n};\nexport function FaSketch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSkyatlas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSkype (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSlideshare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.926,366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889,102.889,0,0,1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221,10.221,0,0,1,2.914-3.038c3.918-2.591,7.96-5.22,10.7-6.993,4.885-3.162,8.754-5.667,11.246-7.44,9.362-6.547,15.909-13.5,20-21.278a42.371,42.371,0,0,0,2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543,55.543,0,0,0-11.718,1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167,130.167,0,0,0,332.1,36.443C309.515,23.547,283.91,17,256,17S202.6,23.547,180,36.443a129.735,129.735,0,0,0-33.281,26.783c-14.88,17.038-29.152,38.44-32.673,79.161-.992,11.594-1.24,23.435-1.079,34.533-1-.26-2.021-.5-3.051-.719a55.461,55.461,0,0,0-11.717-1.24c-18.687,0-34.125,10.131-40.3,26.449a42.423,42.423,0,0,0,2.046,35.228c4.105,7.774,10.652,14.731,20.014,21.278,2.48,1.736,6.361,4.24,11.246,7.44,2.641,1.711,6.5,4.216,10.28,6.72a11.054,11.054,0,0,1,3.3,3.311c.794,1.624.818,3.373-.36,6.6a102.02,102.02,0,0,1-8.94,15.785c-12.077,17.669-29.363,32.648-51.434,44.639C32.355,348.608,20.2,352.75,15.069,366.7c-3.868,10.528-1.339,22.506,8.494,32.6a49.137,49.137,0,0,0,12.4,9.387,134.337,134.337,0,0,0,30.342,12.139,20.024,20.024,0,0,1,6.126,2.741c3.583,3.137,3.075,7.861,7.849,14.78a34.468,34.468,0,0,0,8.977,9.127c10.019,6.919,21.278,7.353,33.207,7.811,10.776.41,22.989.881,36.939,5.481,5.778,1.91,11.78,5.605,18.736,9.92C194.842,480.951,217.707,495,255.973,495s61.292-14.123,78.118-24.428c6.907-4.24,12.872-7.9,18.489-9.758,13.949-4.613,26.163-5.072,36.939-5.481,11.928-.459,23.187-.893,33.206-7.812a34.584,34.584,0,0,0,10.218-11.16c3.434-5.84,3.348-9.919,6.572-12.771a18.971,18.971,0,0,1,5.753-2.629A134.893,134.893,0,0,0,476.02,408.71a48.344,48.344,0,0,0,13.019-10.193l.124-.149C498.389,388.5,500.708,376.867,496.926,366.6Zm-34.013,18.277c-20.745,11.458-34.533,10.23-45.259,17.137-9.114,5.865-3.72,18.513-10.342,23.076-8.134,5.617-32.177-.4-63.239,9.858-25.618,8.469-41.961,32.822-88.038,32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937,75.143-36.381,87.133-92.552,87.666-96.719.645-5.046,1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638,2.48-6.485,8.531-8.928,14.879-8.928a27.643,27.643,0,0,1,5.965.67c12,2.6,23.659,8.617,30.392,10.242a10.749,10.749,0,0,0,2.48.335c3.6,0,4.86-1.811,4.612-5.927-.768-13.132-2.628-38.725-.558-62.644,2.84-32.909,13.442-49.215,26.04-63.636,6.051-6.932,34.484-36.976,88.857-36.976s82.88,29.92,88.931,36.827c12.611,14.421,23.225,30.727,26.04,63.636,2.071,23.919.285,49.525-.558,62.644-.285,4.327,1.017,5.927,4.613,5.927a10.648,10.648,0,0,0,2.48-.335c6.745-1.624,18.4-7.638,30.4-10.242a27.641,27.641,0,0,1,5.964-.67c6.386,0,12.4,2.48,14.88,8.928,3.546,9.374-1.24,17-12.189,24.639-6.609,4.612-30.429,19.343-35.8,24.315-5.568,5.134-4.836,9.1-4.191,14.149.533,4.228,12.511,60.4,87.666,96.718C468.629,373.011,476.119,377.524,462.913,384.877Z\"},\"child\":[]}]})(props);\n};\nexport function FaSoundcloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.8 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1h-218c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8V130.2c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9c25.8 0 51.1 6.9 73.3 20.1c17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2c11.7-.1 23.3 2.2 34.2 6.7S606.8 226.6 615 235s14.6 18.3 18.9 29.3s6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6s-1.5-1.3-2.4-1.7s-1.9-.6-2.9-.6s-2 .2-2.9 .6s-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6s-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6c.2 1.7 1 3.3 2.3 4.5s3 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.8 2.3-4.5c11.3-79.4 6.6-152 0-231.6zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4c.3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8s3.5-.6 4.8-1.8s2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8s-3.5 .7-4.8 1.8s-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1c0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1s3.7-.7 5-2.1s2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1s-3.8 .8-5.2 2.1s-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8c.2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9s3.5-.7 4.8-1.9s2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8zM109 233.7c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1s-3.8 .8-5.1 2.1s-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6c.3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7s3.2-.6 4.5-1.7s2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5c.7 7.6 13.6 7.5 14.4 0c7.2-50.9 10.5-93.8 .3-144.5zM20.3 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9s-3.6 .7-5 1.9s-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4c.2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8s3.4-.6 4.7-1.8s2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSourcetree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpaceAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakerDeck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSpotify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareBehance (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4c0-19.7-11.7-27.4-30.3-27.5h-46v52.9h45.1zm-5.4-129.6H110.3v44.8H153c15.1 0 25.8-6.6 25.8-22.9c0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8h62.2c-1.7-18.5-11.3-29.7-30.5-29.7c-18.3 0-30.5 11.4-31.7 29.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM349.5 185H271.7V166.1h77.8V185zM193.7 243.7c23.6 6.7 35 27.5 35 51.6c0 39-32.7 55.7-67.6 55.9H68v-192h90.5c32.9 0 61.4 9.3 61.4 47.5c0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4c0 1.6-.1 3.3-.2 5c0 .8-.1 1.5-.1 2.2H279.5c0 22.2 11.7 35.3 34.1 35.3c11.6 0 26.5-6.2 30.2-18.1h33.7c-10.4 31.9-31.9 46.8-65.1 46.8c-43.8 0-71.1-29.7-71.1-73c0-41.8 28.7-73.6 71.1-73.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7c6.1 .1 62.4 .3 126.4-16.7c-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80c48.6-18.3 69.1-45.9 71.6-49.4C281 124.2 235.3 112.9 192 123.4zM277.4 382c-2-12-10-53.8-29.2-103.6c-55.1 18.8-93.8 56.4-108.1 85.6c40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252c0 .7 0 1.4 0 2.1s0 1.4 0 2.1c0 35.1 13.3 67.1 35.1 91.4c22.2-37.9 67.1-77.9 116.5-91.8c-3.4-7.8-7.2-15.5-11.1-23.2zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6c-4.6-1.5-42.3-12.7-85.1-5.8c17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4c-.3-32.3-11.8-61.9-30.9-85.1c-2.9 3.9-25.8 33.2-76.3 53.9c4.8 9.8 8.3 17.8 12 26.8zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 416a160 160 0 1 1 0-320 160 160 0 1 1 0 320z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h98.2V334.2H109.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H255V480H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFontAwesomeStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.8 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2c0 1.8-.4 3.7-1.1 5.4L312 264l30.9 69.4c.7 1.7 1.1 3.5 1.1 5.4c0 7.3-5.9 13.2-13.2 13.2L144 352l0 32-32 0 0-32 0-176 0-1.5c-6.1-4.8-10-12.2-10-20.5c0-14.4 11.6-26 26-26s26 11.6 26 26z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3c-3.3 4.1-6.6 8.4-6.6 13.5c0 18.5 65.5 18.5 65.5-1.5c0-8.3-7.4-8.7-38.8-10.7zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5c32.5 0 31.7-44.5 .7-44.5zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9c0-14.5 8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195h49.5l0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7c0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8c56.3 3.2 80.5 4.6 80.5 38.5c0 29.2-25.7 45.7-69.9 45.7c-46 0-63.5-11.6-63.5-31.7c0-11.4 5.1-17.5 14-25.9c-8.4-3.5-11.2-9.9-11.2-16.8c0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1c0-51.6 56.6-53.3 81.6-46.8zM270.5 303.1l13 1.8 0 20.1H211.1V304.9c2.7-.4 5-.7 6.9-.9c9.9-1.2 10.1-1.3 10.1-6V223.3c0-4.4-.9-4.7-10.1-7.8c-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6h52.6V298c0 4.1 .2 4.6 4.1 5.1zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2c-30.2 0-41.7-12.2-41.7-40.9V217.7c0-.8 0-1.4-.2-1.8c-.8-1.2-4.2-.7-19.6-.7V192.6c22.3-2.5 31.2-13.7 34-41.4h24.2c0 33.3-.6 38 .7 38.6c.3 .1 .7 0 1.3 0h35.8v25.4H339.3v60.7c0 .2 0 .5 0 .9c-.2 6.3-.9 30.4 37.9 15.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM265.8 407.7c0-1.8 0-6 .1-11.6c.1-11.4 .1-28.8 .1-43.7c0-15.6-5.2-25.5-11.3-30.7c37-4.1 76-9.2 76-73.1c0-18.2-6.5-27.3-17.1-39c1.7-4.3 7.4-22-1.7-45c-13.9-4.3-45.7 17.9-45.7 17.9c-13.2-3.7-27.5-5.6-41.6-5.6s-28.4 1.9-41.6 5.6c0 0-31.8-22.2-45.7-17.9c-9.1 22.9-3.5 40.6-1.7 45c-10.6 11.7-15.6 20.8-15.6 39c0 63.6 37.3 69 74.3 73.1c-4.8 4.3-9.1 11.7-10.6 22.3c-9.5 4.3-33.8 11.7-48.3-13.9c-9.1-15.8-25.5-17.1-25.5-17.1c-16.2-.2-1.1 10.2-1.1 10.2c10.8 5 18.4 24.2 18.4 24.2c9.7 29.7 56.1 19.7 56.1 19.7c0 9 .1 21.7 .1 30.6c0 4.8 .1 8.6 .1 10c0 4.3-3 9.5-11.5 8C106 393.6 59.8 330.8 59.8 257.4c0-91.8 70.2-161.5 162-161.5s166.2 69.7 166.2 161.5c.1 73.4-44.7 136.3-110.7 158.3c-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2c1.9-.2 3.7 .6 3.9 1.9c.3 1.3-1 2.6-3 3c-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4c0-1.3 1.5-2.4 3.5-2.4c1.9-.2 3.7 .9 3.7 2.4c0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4c-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1c.9-1.1 2.8-.9 4.3 .6c1.3 1.3 1.8 3.3 .9 4.1c-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3c1.1 1.5 1.1 3.3 0 4.1c-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5c.9-.9 2.4-.4 3.5 .6c1.1 1.3 1.3 2.8 .4 3.5c-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6c.4-.6 1.5-.9 2.8-.4c1.3 .7 1.9 1.8 1.5 2.6c-.4 .9-1.7 1.1-2.8 .4z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5c-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8c-2 1-4.4 2-6.7 2c-3 0-6.8-1.8-8.3-2.8l-54.2-40.9L93.5 322.3l-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6c1.6-1 3.4-1.6 5.2-1.8c1.3-.7 2.1-.4 3.4 .1c.6 .2 1.2 .5 2 .7c1 .4 1.6 .9 2.4 1.5c.6 .4 1.2 1 2.1 1.5c1.2 1.4 2.2 3 2.7 4.8l29.2 92.2H285l30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareGooglePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM64 256c0-55.3 44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4c-34.1 0-61.9 28.2-61.9 63.2c0 34.9 27.8 63.2 61.9 63.2c39.6 0 54.4-28.5 56.8-43.1H164V241.8h94.4c1 5 1.6 10.1 1.6 16.6c0 57.1-38.3 97.6-96 97.6c-55.3 0-100-44.7-100-100zm291 18.2v29H325.8v-29h-29V245h29V216H355v29h29v29.2H355z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareHackerNews (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM21 229.2c0 0 .1-.1 .1-.2s.1-.2 .2-.2c0 .1 0 .3-.1 .4H21zM239.2 384H207.8V281.3L128 128h37.3c41.5 77.7 48.1 95.8 54.1 112c1.6 4.3 3.1 8.5 5.2 13.6c3.2-7 5.1-11.9 7.1-17.3c5.9-15.3 12.8-33.2 53.5-108.3H320L239.2 283.1V384z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M194.4 211.7a53.3 53.3 0 1 0 59.3 88.7 53.3 53.3 0 1 0 -59.3-88.7zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12c-18.1-7.1-57.6-6.8-83.1-6.5c-4.1 0-7.9 .1-11.2 .1c-3.3 0-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5c-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2c0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2c2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5c4.1 0 7.9-.1 11.2-.1c3.3 0 7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5c6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83c0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83l0 0c-2.7-6.9-6.8-13.1-12-18.4zm-67.1 44.5A82 82 0 1 1 178.4 324.2a82 82 0 1 1 91.1-136.4zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1s2.6-7.1 5.2-9.8s6.1-4.5 9.8-5.2s7.6-.4 11.1 1.1s6.5 3.9 8.6 7s3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2s-3.9 3.2-6.2 4.2s-4.8 1.5-7.3 1.5l0 0c-3.8 0-7.5-1.1-10.6-3.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM357 389c-18.7 18.7-41.4 24.6-67 25.9c-26.4 1.5-105.6 1.5-132 0c-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132c1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0c25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9c-1.3 25.6-7.1 48.3-25.8 67z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareJs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6c13.8 0 22.6-5.4 22.6-26.5V237.7h42.1V381.4c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6c17.4 0 28.6-8.7 28.6-20.8c0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5c0-31.6 24.1-55.6 61.6-55.6c26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18c-12.3 0-20.1 7.8-20.1 18c0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2c0 37.8-29.8 58.6-69.7 58.6c-39.1 0-64.4-18.6-76.7-43z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareLastfm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9c-12.9-41.9-21-68.4-58-68.4c-22.4 0-45.1 16.1-45.1 61.2c0 35.2 18 57.2 43.3 57.2c28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8c0-57.9 28.6-92 82.5-92c67.9 0 79.3 35.3 96.4 88.4c1.4 4.4 2.9 8.9 4.4 13.5c8.8 26.8 24.2 46.2 61.2 46.2c24.9 0 38.1-5.5 38.1-19.1c0-17.5-16.9-21.2-40-26.4c-3.2-.7-6.5-1.4-9.9-2.2c-30.4-7.3-42.5-23.1-42.5-48c0-40 32.3-52.4 65.2-52.4c37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4c-16.1 0-26 7.3-26 19.8c0 11 4.8 17.6 20.9 21.3c2.2 .5 4.5 1 6.7 1.4c31.1 6.5 65.1 13.7 65.1 56.1c.1 36.7-30.7 50.6-76.1 50.6c-63.4 0-85.4-28.6-97.1-64.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareLetterboxd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96C0 60.7 28.7 32 64 32H384zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1c-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1C176.9 313.8 198.9 327 224 327c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5c0-13.6 3.9-26.3 10.6-37.1C271.1 200.2 249.1 187 224 187zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5c0 13.6-3.9 26.3-10.6 37.1c12.4 19.8 34.4 32.9 59.5 32.9c38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareOdnoklassniki (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 137.1a39.9 39.9 0 1 0 0 79.7 39.9 39.9 0 1 0 0-79.7zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zM224 95.9A81 81 0 1 1 224 258a81 81 0 1 1 0-162.1zm59.3 168.3c16.8-13.2 29.5-5.5 34.1 3.6c7.8 16-1.1 23.7-21.5 37c-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6c-12-12.2-29.5-29.7-47.7-47.9l0 0-47.7 47.9c-17.7 17.2-46-11-28.4-28.6c3.7-3.7 7.9-7.9 12.5-12.5c10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8c-20.3-13.3-29.3-20.9-21.4-37c4.6-9.1 17.3-16.8 34.1-3.6c0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePiedPiper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePinterest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64h72.6l-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7c3.9-16 8.5-35 13.9-57.9c0 0-7.3-14.8-7.3-36.5c0-70.7 75.5-78 75.5-25c0 13.5-5.4 31.1-11.2 49.8c-3.3 10.6-6.6 21.5-9.1 32c-5.7 24.5 12.3 44.4 36.4 44.4c43.7 0 77.2-46 77.2-112.4c0-58.8-42.3-99.9-102.6-99.9C153 139 112 191.4 112 245.6c0 21.1 8.2 43.7 18.3 56c2 2.4 2.3 4.5 1.7 7c-1.1 4.7-3.1 12.9-4.7 19.2c-1 4-1.8 7.3-2.1 8.6c-1.1 4.5-3.5 5.5-8.2 3.3c-30.6-14.3-49.8-59.1-49.8-95.1C67.2 167.1 123.4 96 229.4 96c85.2 0 151.4 60.7 151.4 141.8c0 84.6-53.3 152.7-127.4 152.7c-24.9 0-48.3-12.9-56.3-28.2c0 0-12.3 46.9-15.3 58.4c-5 19.3-17.6 42.9-27.4 59.3H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareReddit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8c-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5c-8.8-6.8-19.9-10.9-32-10.9c-28.9 0-52.3 23.4-52.3 52.3c0 21 12.3 39 30.1 47.4c1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3c0-28.9-23.4-52.3-52.3-52.3c-12 0-23 4-31.9 10.8c-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7l0 0c3.9 16.5 18.7 28.7 36.3 28.7zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9s-27.5-7.7-26.6-26.7s13.5-33.5 28.1-33.5zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9c-.9-19 10.3-34.4 25-34.4s27.3 14.6 28.1 33.5zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7c16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareSnapchat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384,32H64A64,64,0,0,0,0,96V416a64,64,0,0,0,64,64H384a64,64,0,0,0,64-64V96A64,64,0,0,0,384,32Zm-3.907,319.309-.083.1a32.364,32.364,0,0,1-8.717,6.823,90.26,90.26,0,0,1-20.586,8.2,12.694,12.694,0,0,0-3.852,1.76c-2.158,1.909-2.1,4.64-4.4,8.55a23.137,23.137,0,0,1-6.84,7.471c-6.707,4.632-14.244,4.923-22.23,5.23-7.214.274-15.39.581-24.729,3.669-3.761,1.245-7.753,3.694-12.377,6.533-11.265,6.9-26.68,16.353-52.3,16.353s-40.925-9.4-52.106-16.279c-4.657-2.888-8.675-5.362-12.543-6.64-9.339-3.08-17.516-3.4-24.729-3.67-7.986-.307-15.523-.6-22.231-5.229a23.085,23.085,0,0,1-6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.428,13.428,0,0,0-4.1-1.834,89.986,89.986,0,0,1-20.313-8.127,32.905,32.905,0,0,1-8.3-6.284c-6.583-6.757-8.276-14.776-5.686-21.824,3.436-9.338,11.571-12.111,19.4-16.262,14.776-8.027,26.348-18.055,34.433-29.884a68.236,68.236,0,0,0,5.985-10.567c.789-2.158.772-3.329.241-4.416a7.386,7.386,0,0,0-2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.245a28.4,28.4,0,0,1-1.369-23.584c4.134-10.924,14.469-17.706,26.978-17.706a37.141,37.141,0,0,1,7.845.83c.689.15,1.37.307,2.042.482-.108-7.43.058-15.357.722-23.119,2.358-27.261,11.912-41.589,21.874-52.994a86.836,86.836,0,0,1,22.28-17.931C188.254,100.383,205.312,96,224,96s35.828,4.383,50.944,13.016a87.169,87.169,0,0,1,22.239,17.9c9.961,11.406,19.516,25.709,21.874,52.995a231.194,231.194,0,0,1,.713,23.118c.673-.174,1.362-.332,2.051-.481a37.131,37.131,0,0,1,7.844-.83c12.5,0,22.82,6.782,26.971,17.706a28.37,28.37,0,0,1-1.4,23.559c-2.74,5.2-7.123,9.861-13.39,14.244-1.668,1.187-4.258,2.864-7.529,4.981-1.835,1.187-4.541,2.947-7.164,4.682a6.856,6.856,0,0,0-1.951,2.034c-.506,1.046-.539,2.191.166,4.208a69.015,69.015,0,0,0,6.085,10.792c8.268,12.1,20.188,22.313,35.454,30.407,1.486.772,2.98,1.5,4.441,2.258.722.332,1.569.763,2.491,1.3,4.9,2.723,9.2,6.01,11.455,12.153C387.821,336.915,386.269,344.7,380.093,351.309Zm-16.719-18.461c-50.313-24.314-58.332-61.918-58.689-64.749-.431-3.379-.921-6.035,2.806-9.472,3.594-3.328,19.541-13.19,23.965-16.278,7.33-5.114,10.534-10.219,8.16-16.495-1.66-4.316-5.686-5.976-9.961-5.976a18.5,18.5,0,0,0-3.993.448c-8.035,1.743-15.838,5.769-20.354,6.857a7.1,7.1,0,0,1-1.66.224c-2.408,0-3.279-1.071-3.088-3.968.564-8.783,1.759-25.925.373-41.937-1.884-22.032-8.99-32.948-17.432-42.6-4.051-4.624-23.135-24.654-59.536-24.654S168.53,134.359,164.479,139c-8.434,9.654-15.531,20.57-17.432,42.6-1.386,16.013-.141,33.147.373,41.937.166,2.756-.68,3.968-3.088,3.968a7.1,7.1,0,0,1-1.66-.224c-4.507-1.087-12.31-5.113-20.346-6.856a18.494,18.494,0,0,0-3.993-.449c-4.25,0-8.3,1.636-9.961,5.977-2.374,6.276.847,11.381,8.168,16.494,4.425,3.088,20.371,12.958,23.966,16.279,3.719,3.437,3.237,6.093,2.805,9.471-.356,2.79-8.384,40.394-58.689,64.749-2.946,1.428-7.96,4.45.88,9.331,13.88,7.628,23.111,6.807,30.3,11.43,6.093,3.927,2.5,12.394,6.923,15.449,5.454,3.76,21.583-.266,42.335,6.6,17.433,5.744,28.116,22.015,58.963,22.015s41.788-16.3,58.938-21.973c20.795-6.865,36.89-2.839,42.336-6.6,4.433-3.055.822-11.522,6.923-15.448,7.181-4.624,16.411-3.8,30.3-11.472C371.36,337.355,366.346,334.333,363.374,332.848Z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2c25.2 10.5 54.1-1.4 64.6-26.5c5.1-12.1 5.1-25.5 .1-37.7c-5.1-12.1-14.5-21.6-26.7-26.7c-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V240.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8c-31.8 0-58.5-22.7-64.5-52.7L0 319.2V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm14.6-.1a43.9 43.9 0 1 1 87.8 0 43.9 43.9 0 1 1 -87.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareThreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9c10.4 24.3 11.4 63.9-20.2 95.4c-24.2 24.1-53.5 35-95.1 35.3h-.2c-46.8-.3-82.8-16.1-106.9-46.8C91.5 341.8 80.4 303.7 80 256v-.1-.1c.4-47.7 11.5-85.7 33-113.1c24.2-30.7 60.2-46.5 106.9-46.8h.2c46.9 .3 83.3 16 108.2 46.6c12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6c-19.4-23.9-48.7-36.1-87-36.4c-38 .3-66.8 12.5-85.5 36.2c-17.5 22.3-26.6 54.4-26.9 95.5c.3 41.1 9.4 73.3 26.9 95.5c18.7 23.8 47.4 36 85.5 36.2c34.3-.3 56.9-8.4 75.8-27.3c21.5-21.5 21.1-47.9 14.2-64c-4-9.4-11.4-17.3-21.3-23.3c-2.4 18-7.9 32.2-16.5 43.2c-11.4 14.5-27.7 22.4-48.4 23.5c-15.7 .9-30.8-2.9-42.6-10.7c-13.9-9.2-22-23.2-22.9-39.5c-1.7-32.2 23.8-55.3 63.5-57.6c14.1-.8 27.3-.2 39.5 1.9c-1.6-9.9-4.9-17.7-9.8-23.4c-6.7-7.8-17.1-11.8-30.8-11.9h-.4c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1h.6c41.8 .3 66.6 26.3 69.1 71.8c1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8c-8.8-1.9-18.6-2.9-29-2.9c-3.2 0-6.4 .1-9.6 .3c-28.6 1.6-38.1 15.5-37.4 27.9c.9 16.7 19 24.5 36.4 23.6l-.1-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9v-90H135.2c-3.4 0-6.2-2.8-6.2-6.2V189.4c0-4.5 2.8-8.5 7.1-10c38.8-13.7 50.9-47.5 52.7-73.2c.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2H249.1V321c0 21.4 14.8 33.5 42.5 22.4c3-1.2 5.6-2 8-1.4c2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1c-8.5 9.1-31.2 19.8-60.9 19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM351.3 199.3v0c0 86.7-66 186.6-186.6 186.6c-37.2 0-71.7-10.8-100.7-29.4c5.3 .6 10.4 .8 15.8 .8c30.7 0 58.9-10.4 81.4-28c-28.8-.6-53-19.5-61.3-45.5c10.1 1.5 19.2 1.5 29.6-1.2c-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3c-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1c32.3 39.8 80.8 65.8 135.2 68.6c-9.3-44.5 24-80.6 64-80.6c18.9 0 35.9 7.9 47.9 20.7c14.8-2.8 29-8.3 41.6-15.8c-4.9 15.2-15.2 28-28.8 36.1c13.2-1.4 26-5.1 37.8-10.2c-8.9 13.1-20.1 24.7-32.9 34c.2 2.8 .2 5.7 .2 8.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareUpwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5c25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-29.7 0-33.2 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4s-39.8-20.9-39.8-49.3l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2c13.9 15.2 32.8 23.2 54.8 23.2c43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7L215 392.6l36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4c12.3 7.8 26.4 12.2 40.9 12.6l.1 0c.5 0 1.1 0 1.6 0c.6 0 1.1 0 1.7 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareViadeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1c13.3 0 26.6 2.1 39.1 6.7c-4.3 8.4-7.3 17.6-8.4 27.1c-9.7-4.1-20.2-6-30.7-6c-48.8 0-84.6 41.7-84.6 88.9c0 43 28.5 78.7 69.5 85.9c61.5-24 72.9-117.6 72.9-175v0c0-7.3 0-14.8-.6-22.1c-11.2-32.9-26.6-64.6-44.2-94.5c27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70c0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2c0-12.2-2.1-24.3-6.9-35.7c9.5-1.9 18.5-5.6 26.4-10.5c15.3 36.6 12.6 87.3-22.8 125.6c-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53c1.5-3 4.1-8.6 4.5-12c-12.5 27.9-44.2 49.8-73.9 56.7c-4.7-7.3-7.5-15.5-7.5-24.3c0-10.3 5.2-24.1 12.9-31.6c8.3-7.9 18-10.9 27.9-14.1c16-5.1 32.5-10.3 44.5-35.9c32.5 46.2 13.1 130.3-36.3 130.3c-13.3 0-25.1-7.1-34.4-16.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM318.5 309.5C275 366 238.2 394.3 208.1 394.3c-18.7 0-34.4-17.2-47.3-51.6c-3.8-13.9-7.3-26.9-10.5-39c-18.2-68.3-28.6-107.4-46.2-107.4c-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5c29.1-26.3 55.6-50.3 73.5-51.9c24.9-2.4 40.2 14.6 46 51.1c20.5 129.6 29.6 149.2 66.8 90.5c13.4-21.2 20.6-37.2 21.5-48.3c3.4-32.8-25.6-30.6-45.2-22.2c15.7-51.5 45.8-76.5 90.1-75.1c32.9 1 48.4 22.4 46.5 64c-1.4 31.1-23.2 73.8-65.3 127.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareWebAwesomeStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareWebAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6L288 224l52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6c0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224C74.3 223.6 64 213 64 200c0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224l53.1-46.4c-8.9-4.1-15-13.1-15-23.6c0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6L152 365.2l4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8c0-35.2-15.2-68.3-40.1-93.2c-25-25-58-38.7-93.2-38.7c-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9c-36.8-15.9-61.8-51.5-66.9-58.7c-.4-.6-.7-.9-.8-1.1c-2-2.6-16.2-21.5-16.2-41c0-18.4 9-27.9 13.2-32.3c.3-.3 .5-.5 .7-.8c3.6-4 7.9-5 10.6-5c2.6 0 5.3 0 7.6 .1c.3 0 .5 0 .8 0c2.3 0 5.2 0 8.1 6.8c1.2 2.9 3 7.3 4.9 11.8c3.3 8 6.7 16.3 7.3 17.6c1 2 1.7 4.3 .3 6.9c-3.4 6.8-6.9 10.4-9.3 13c-3.1 3.2-4.5 4.7-2.3 8.6c15.3 26.3 30.6 35.4 53.9 47.1c4 2 6.3 1.7 8.6-1c2.3-2.6 9.9-11.6 12.5-15.5c2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1c2.8 1.4 4.7 2.3 5.5 3.6c.9 1.9 .9 9.9-2.4 19.1c-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM148.1 393.9L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5c29.9 30 47.9 69.8 47.9 112.2c0 87.4-72.7 158.5-160.1 158.5c-26.6 0-52.7-6.7-75.8-19.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareXTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm297.1 84L257.3 234.6 379.4 396H283.8L209 298.1 123.3 396H75.8l111-126.9L69.7 116h98l67.7 89.5L313.6 116h47.5zM323.3 367.6L153.4 142.9H125.1L296.9 367.6h26.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2c-3.5 6.2-7.7 9.1-12.6 9.1H93.8zm163.5-33.4v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1H270.2c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6c11.7-20.7 25.1-44.3 40.1-70.8c3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M282 256.2l-95.2-54.1V310.3L282 256.2zM384 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9C337.9 384 224 384 224 384s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9C42 315.9 42 256.3 42 256.3s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4C110.1 128 224 128 224 128s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarespace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"},\"child\":[]}]})(props);\n};\nexport function FaStackExchange (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStackOverflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaStackpath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"},\"child\":[]}]})(props);\n};\nexport function FaStaylinked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteamSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"},\"child\":[]}]})(props);\n};\nexport function FaStickerMule (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStrava (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"},\"child\":[]}]})(props);\n};\nexport function FaStripeS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStripe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"},\"child\":[]}]})(props);\n};\nexport function FaStubber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1c49.4 0 71.4 63.6 142.4 63.6c15.6 0 35.9-2.8 55.3-13.3V368c0 61.8-50.4 112-112.3 112H0l41.8-56L0 368l41.7-56L0 256.1l41.8-56L0 144.1 41.8 88 0 32H335.7C397.6 32 448 82.3 448 144.1v51.3c-9.2 36.3-25.9 60.6-55 60.6c-49.6 0-71.6-63.5-142.4-63.5c-35.9 0-95.2 14.6-114.1 101.6h0z\"},\"child\":[]}]})(props);\n};\nexport function FaStudiovinari (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleuponCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleupon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperpowers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"},\"child\":[]}]})(props);\n};\nexport function FaSupple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSuse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M593.1 192.6A10.4 10.4 0 1 1 604.5 210a10.4 10.4 0 1 1 -11.4-17.4zm-47.1 12.2a38.5 38.5 0 1 1 75-17.6 38.5 38.5 0 1 1 -75 17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4c1 3.1 2.4 7.3 5.5 8.9c.2 .1 .3 .2 .5 .2c5.7 2.1 20.3 1.7 20.3 1.7h26.8c2.3 0 22.4 0 21.9-2.3c-2.4-10.8-14.9-12.7-24.4-18.3c-8.7-5.2-17-11.1-20.8-21.3c-2-5.2-.8-17.4 2.6-21.8c2.5-3.2 6.1-5.3 10-6.2c4.3-.9 8.8-.1 13.1 .3c5.3 .5 10.6 1.5 15.9 2.2c10.3 1.3 20.6 1.9 31 1.6c17.1-.5 34.2-3.2 50.4-8.7c11.3-3.8 22.4-8.9 32-16.1c10.9-8.1 8.1-7.4-3-6.2c-13.3 1.4-26.6 1.6-39.9 .8c-12.4-.7-24.7-2.2-35.9-7.9c-8.8-4.6-16.4-9.1-23.4-16.2c-1-1.1-1.7-4.2 .2-6.2c1.9-1.9 5.8-.8 7 .2c12.2 10.2 30.5 18.6 49.3 19.5c10.2 .5 20.1 .7 30.4 .3c5.1-.2 12.8-.2 17.9-.3c2.6 0 9.8 .7 11.2-2.1c.4-.8 .4-1.8 .3-2.7c-1.5-40.9-4.5-86.9-47.3-106.5c-31.9-14.6-79.7-37.2-99.9-46.6c-4.7-2.2-10.2 1.3-10.2 6.5c0 13.6 .7 33.3 .7 51.1c-9.7-9.9-26-16.1-38.4-21.8c-14.1-6.5-28.7-12-43.5-16.6c-29.8-9.2-60.7-14.9-91.7-18c-35.2-3.5-71-1.8-105.7 5.3C147 115.1 90.8 142.6 48.2 182.7C22.1 207.3 1.6 242.4 .2 277.9c-2 50.3 12.1 77.3 38 105.2c41.3 44.4 130.2 50.6 166.2-2c16.2-23.7 19.7-55.8 8-82c-11.8-26.2-38.8-45.1-67.4-46c-22.2-.7-45.9 10.6-54.5 31.1c-6.5 15.7-2.8 35.1 9 47.3c4.6 4.8 10.9 8.7 17.7 7.1c4-.9 7.4-3.9 8-8c.9-6-4.4-9.9-7.6-14.5c-5.8-8.3-4.7-20.9 2.7-27.9c6.2-6 15.3-7.8 23.9-7.7c8 0 16.2 1.4 23.1 5.5c9.7 5.7 16.2 16.2 18.4 27.2c6.7 33-20.2 59.9-56.6 62c-18.6 1.1-37.6-3.8-52.1-15.5C40.1 329.9 31.1 269.4 73.2 237c40-30.7 90.4-22.8 120.2-6.8c23.8 12.8 41.5 33.6 55 56.7c6.7 11.6 12.5 23.7 17.8 36.1c5.1 11.8 9.9 23.8 20.2 32.5c6.8 5.8 15.2 5.6 24.1 5.6h50.8c6.9 0 5.2-4.6 2.2-7.7c-6.7-6.9-16.4-8.4-25.4-10.9c-20.5-5.6-18.4-32.8-12.7-32.8c18.3 0 18.9 .6 34.9 .3c23.2-.3 30.2-1.7 48.3 5c9.7 3.6 19 13.1 25.1 21.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSwift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"},\"child\":[]}]})(props);\n};\nexport function FaSymfony (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"},\"child\":[]}]})(props);\n};\nexport function FaTeamspeak (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5c0 .2-.1 .3-.1 .5C43.5 184.4 16 223 16 268c0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5c15.7-41.8 40.4-79.6 72.3-110.7c1.8-1.6 4-2.6 6.3-3.1c37.2-11.5 76.7-13.3 114.8-5.2C454.7 67.6 534 180.7 517.1 301.3c-8.4 62.6-38.6 112.7-87.7 151.4c-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3c40.7 4.2 81.4 2.1 120.1-12.5c94-35.5 149.3-102.3 162.9-202.5c4.8-52.6-5.8-105.4-30.8-152C454.6 11.3 290.8-38.4 159 32c-2.4 1.4-4.5 3.1-6.3 5.2zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3c53.2-1 123.2-29.2 161.8-97.1c39.7-69.9 37.6-139.9-6.3-207.8C413.8 105 360.5 77.9 293.7 73.7c1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5c2.1 15.7-1 30.3-13.6 41.8c-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7L365.7 318c5.2 11.5 4.2 19.8-6.3 28.2c-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7c-2.5 2.4-3.8 5.9-3.1 9.4c2.1 11.5-2.1 19.8-12.5 25.1c-2.1 1-4.2 5.2-5.2 7.3zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1c24 5.2 41.8-6.3 44.9-30.3c1-8.4 5.2-14.6 12.5-17.7c7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5c-1.4-3-2.4-6.2-3.1-9.4c-3.1-14.6-2.1-15.7 11.5-18.8c8.4-3.1 15.7-6.3 21.9-12.5c3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7c-6.4-11.7-13-23.6-15.7-37.1c-2.1-9.4-1-17.7 8.4-24c5.2-4.2 8.4-9.4 8.4-16.7c-.4-10.1-1.5-20.3-3.1-30.3c-6.3-37.6-23-68.9-51.2-95c-5.2-4.2-9.4-6.3-16.7-4.2L203.9 91.5c2 1.2 4 2.4 6 3.6l0 0c6.3 3.7 12.2 7.3 17 12.1c30.3 26.1 41.8 61.6 45.9 100.2c1 8.4 0 16.7-7.3 21.9c-8.4 5.2-10.4 12.5-7.3 20.9c4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6c-12.5 3.1-14.6 7.3-10.4 20.9c.6 1.5 1.4 2.8 2.1 4.2c2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4c-7.3 4.2-11.5 9.4-11.5 17.7c0 12.5-7.3 19.8-18.8 24c-3.8 1-7.6 1.5-11.5 1l-34.5-2.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTelegram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248,8C111.033,8,0,119.033,0,256S111.033,504,248,504,496,392.967,496,256,384.967,8,248,8ZM362.952,176.66c-3.732,39.215-19.881,134.378-28.1,178.3-3.476,18.584-10.322,24.816-16.948,25.425-14.4,1.326-25.338-9.517-39.287-18.661-21.827-14.308-34.158-23.215-55.346-37.177-24.485-16.135-8.612-25,5.342-39.5,3.652-3.793,67.107-61.51,68.335-66.746.153-.655.3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283.746-104.608,69.142-14.845,10.194-26.894,9.934c-8.855-.191-25.888-5.006-38.551-9.123-15.531-5.048-27.875-7.717-26.8-16.291q.84-6.7,18.45-13.7,108.446-47.248,144.628-62.3c68.872-28.647,83.183-33.623,92.511-33.789,2.052-.034,6.639.474,9.61,2.885a10.452,10.452,0,0,1,3.53,6.716A43.765,43.765,0,0,1,362.952,176.66Z\"},\"child\":[]}]})(props);\n};\nexport function FaTencentWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaTheRedYeti (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeisle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"},\"child\":[]}]})(props);\n};\nexport function FaThinkPeaks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"},\"child\":[]}]})(props);\n};\nexport function FaThreads (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaTiktok (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"},\"child\":[]}]})(props);\n};\nexport function FaTradeFederation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTumblr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"},\"child\":[]}]})(props);\n};\nexport function FaTypo3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"},\"child\":[]}]})(props);\n};\nexport function FaUber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUbuntu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M469.2 75A75.6 75.6 0 1 0 317.9 75a75.6 75.6 0 1 0 151.2 0zM154.2 240.7A75.6 75.6 0 1 0 3 240.7a75.6 75.6 0 1 0 151.2 0zM57 346C75.6 392.9 108 433 150 461.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2c-6.8-.9-13.3-2.1-19.5-3.4c-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2c33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6c15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3c16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7c3.6-16.7 11.1-32.3 21.8-45.5c-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3c7.5 0 15 .8 22.4 2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaUikit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbraco (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 510 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"},\"child\":[]}]})(props);\n};\nexport function FaUncharted (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"},\"child\":[]}]})(props);\n};\nexport function FaUniregistry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"},\"child\":[]}]})(props);\n};\nexport function FaUnity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M243.583 91.6027L323.695 138.384C326.575 140.026 326.68 144.583 323.695 146.225L228.503 201.854C225.623 203.55 222.22 203.444 219.549 201.854L124.357 146.225C121.425 144.636 121.373 139.973 124.357 138.384L204.417 91.6027V0L0 119.417V358.252L78.3843 312.477V218.914C78.3319 215.576 82.2066 213.192 85.0865 214.993L180.279 270.622C183.159 272.318 184.782 275.338 184.782 278.464V389.669C184.834 393.007 180.959 395.391 178.079 393.589L97.9673 346.808L19.583 392.583L224 512L428.417 392.583L350.033 346.808L269.921 393.589C267.093 395.338 263.114 393.06 263.218 389.669V278.464C263.218 275.126 265.051 272.159 267.721 270.622L362.914 214.993C365.741 213.245 369.72 215.47 369.616 218.914V312.477L448 358.252V119.417L243.583 0V91.6027Z\"},\"child\":[]}]})(props);\n};\nexport function FaUnsplash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"},\"child\":[]}]})(props);\n};\nexport function FaUntappd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUpwork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 641 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.7 295.6c-50.3 0-83.5-38.9-92.8-53.9c11.9-95.3 46.8-125.4 92.8-125.4c45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7zm0-237.8c-81.9 0-127.8 53.4-141 108.4c-14.9-28-25.9-65.5-34.5-100.3H206v141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141H.8v141c0 41.1 13.3 78.4 37.6 105.1c25 27.5 59.2 41.8 98.8 41.8c78.8 0 133.8-60.4 133.8-146.9V112.1c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4h66.4l23.1-141.3c7.6 6.3 15.7 12 24.2 17c22.2 14 47.7 21.9 73.9 22.8c0 0 4 .2 6.1 .2c81.2 0 145.9-62.9 145.9-147.8s-64.8-148.1-146-148.1z\"},\"child\":[]}]})(props);\n};\nexport function FaUsb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUsps (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUssunnah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 482 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.9 268.1A240.9 240.9 0 1 1 .1 268a240.9 240.9 0 1 1 481.9 0zM24.5 268a216.5 216.5 0 1 0 432.9 0A216.5 216.5 0 1 0 24.5 268zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9c-5.5-4.3-8.2-12.3-8.2-23.8V205.1c0-6.5-5.2-20.2-15.7-41.2c7 0 17-9.1 30-27.2V284.5c0 11 2.4 19.4 7 25.3c3.7 4.7 10.1 8.9 19 12.6c1.2 .4 2.6 .9 4.1 1.4c2.9 .9 6.3 2.1 10.3 3.5c-1.8 2.7-8.3 4-19.9 4zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4h-8.3H53.6c3.3-5.3 4.9-8.8 4.9-10.8c0-2-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4c0-7.4 2.1-13.9 6.3-19.3L80 253.4l-7.1-17.7L89 215.9l6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7c0 4.2 2.8 13.3 8.3 27.3l16.2 40.7H135h8 .3c2.8 .4 7.7 5 14.6 13.9c1.8 2.4 4.3 5.8 7.7 10.2c1.4 1.9 2.9 3.9 4.6 6.1c1.3-2.3 2-4.6 2-7.1c0-2-1.3-6.6-4-13.4L163 304.1c-4-10.6-6.1-17.7-6.1-21.3c0-6.3 1.9-12.3 5.8-17.9c.5-.6 1-1.3 1.5-1.9c4.4-5.6 8.8-11.1 13.3-16.5c-1.1 4.6-1.7 8.7-1.7 12c0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3h17.6 8.3l-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32h13.4L245 292.2c-1.5-3.9-4-7-7.7-9.3L253 262.8 270.3 308h13.4l-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20L302.6 308h10.3 8.3 7.6c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3V205.1c0-6.5-4.5-20.3-13.7-41.2c5.4 0 14.1-9.1 26.2-27.2V300.2c0 7.2 .6 12 1.7 14.6c1.6 3.4 5.3 6.2 11.1 8.2c-3.9 5.6-8.7 8.5-14.5 8.5H321.1h-8.3H210.5h-19zM93.4 287.3c-2.7-6.7-4-11.7-4-15c-.6 1.2-2.4 3.7-5.4 7.6c-1.4 1.9-2.2 3.7-2.2 5.3c0 2.6 .8 5.7 2.2 9.3l5.6 13.9h0c5 0 9 0 11.9-.1l-8.2-20.9zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm-27.6 0c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3zm87 27.5c-3-5.2-7-9.3-11.9-11.9c-3.5-1.9-5.3-4.3-5.3-7.4c0-2.4 4.6-8.6 14-18.3c.2 3.8 1.9 7.6 4.9 11.2c3.1 3.6 4.6 7 4.6 10.1c0 2.6-2.1 8-6.2 16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVaadin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaViacoin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"},\"child\":[]}]})(props);\n};\nexport function FaViadeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"},\"child\":[]}]})(props);\n};\nexport function FaViber (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeoV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"},\"child\":[]}]})(props);\n};\nexport function FaVine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.4907 63.4907C0 94.9813 0 145.671 0 247.04V264.96C0 366.329 0 417.019 31.4907 448.509C62.9813 480 113.671 480 215.04 480H232.96C334.329 480 385.019 480 416.509 448.509C448 417.019 448 366.329 448 264.96V247.04C448 145.671 448 94.9813 416.509 63.4907C385.019 32 334.329 32 232.96 32H215.04C113.671 32 62.9813 32 31.4907 63.4907ZM75.6 168.267H126.747C128.427 253.76 166.133 289.973 196 297.44V168.267H244.16V242C273.653 238.827 304.64 205.227 315.093 168.267H363.253C359.313 187.435 351.46 205.583 340.186 221.579C328.913 237.574 314.461 251.071 297.733 261.227C316.41 270.499 332.907 283.63 346.132 299.751C359.357 315.873 369.01 334.618 374.453 354.747H321.44C316.555 337.262 306.614 321.61 292.865 309.754C279.117 297.899 262.173 290.368 244.16 288.107V354.747H238.373C136.267 354.747 78.0267 284.747 75.6 168.267Z\"},\"child\":[]}]})(props);\n};\nexport function FaVnv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"},\"child\":[]}]})(props);\n};\nexport function FaVuejs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWatchmanMonitoring (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"},\"child\":[]}]})(props);\n};\nexport function FaWaze (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"},\"child\":[]}]})(props);\n};\nexport function FaWebAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192l104.4-20.9c-5.3-7.7-8.4-17.1-8.4-27.1c0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144c0-26.5 21.5-48 48-48s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1c0-28.7 23.3-52 52-52s52 23.3 52 52z\"},\"child\":[]}]})(props);\n};\nexport function FaWebflow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 64L435.8 463.2H244l85.5-165.5h-3.8C255.1 389.3 149.9 449.5 0 463.2V300.1s95.9-5.7 152.3-64.9H0V64H171.1V204.8l3.8 0L244.9 64H374.3V203.9l3.8 0L450.7 64H640z\"},\"child\":[]}]})(props);\n};\nexport function FaWeebly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"},\"child\":[]}]})(props);\n};\nexport function FaWeibo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaWeixin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhatsapp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhmcs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaWikipediaW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWindows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWirsindhandwerk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.77161,479.81213h83.36071V367.84741l-83.36071,47.009Zm329.04675,0h82.35022V414.85645l-82.35022-47.009Zm.00568-448V251.568L256.1759,179.1861,134.50378,251.568V31.81213H50.77161V392.60565L256.1759,270.31909,462.16858,392.60565V31.81213Z\"},\"child\":[]}]})(props);\n};\nexport function FaWix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"},\"child\":[]}]})(props);\n};\nexport function FaWizardsOfTheCoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"},\"child\":[]}]})(props);\n};\nexport function FaWodu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"},\"child\":[]}]})(props);\n};\nexport function FaWolfPackBattalion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpressSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWpbeginner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"},\"child\":[]}]})(props);\n};\nexport function FaWpexplorer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWpforms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"},\"child\":[]}]})(props);\n};\nexport function FaWpressr (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"},\"child\":[]}]})(props);\n};\nexport function FaXTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z\"},\"child\":[]}]})(props);\n};\nexport function FaXbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"},\"child\":[]}]})(props);\n};\nexport function FaXing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYCombinator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaYahoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaYammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.676,159.486a12.779,12.779,0,0,0-6.4-8.282,13.954,13.954,0,0,0-10.078-1.125L457.8,156.7l-.043-.2-22.3,5.785-1.243.333-.608-2.17A369.037,369.037,0,0,0,347.538,4.289a14.1,14.1,0,0,0-19.784-.463l-102.9,102.747H24.947A24.9,24.9,0,0,0,0,131.417V380.38a24.963,24.963,0,0,0,24.918,24.9H224.986L328.072,508a13.667,13.667,0,0,0,19.327,0c.126-.126.249-.255.37-.385a368.025,368.025,0,0,0,69.577-107.374,403.45,403.45,0,0,0,17.3-50.8v-.028l20.406,5.336.029-.073L483.345,362a20.253,20.253,0,0,0,2.619.5,13.359,13.359,0,0,0,4.139-.072,13.5,13.5,0,0,0,10.515-9.924,415.855,415.855,0,0,0,.058-193.013ZM337.125,24.65l.013.014h-.013Zm-110.2,165.161L174.311,281.1a11.338,11.338,0,0,0-1.489,5.655v46.189a22.04,22.04,0,0,1-22.041,22h-3.4A22.068,22.068,0,0,1,125.3,332.962V287.294a11.532,11.532,0,0,0-1.388-5.51l-51.6-92.2a21.988,21.988,0,0,1,19.264-32.726h3.268a22.059,22.059,0,0,1,19.611,11.916l36.357,70.281,37.515-70.512a22.066,22.066,0,0,1,38.556-.695,21.7,21.7,0,0,1,0,21.967ZM337.145,24.673a348.147,348.147,0,0,1,75.8,141.335l.564,1.952-114.134,29.6V131.417a25.006,25.006,0,0,0-24.947-24.9H255.067Zm60.5,367.305v-.043l-.014.014a347.19,347.19,0,0,1-60.177,95.227l-82.2-81.893h19.177a24.978,24.978,0,0,0,24.947-24.9v-66.2l114.6,29.862A385.191,385.191,0,0,1,397.648,391.978Zm84-52.45.015.014-50.618-13.131L299.379,292.1V219.572l119.746-30.99,4.468-1.157,39.54-10.253,18.511-4.816A393,393,0,0,1,481.644,339.528Z\"},\"child\":[]}]})(props);\n};\nexport function FaYandexInternational (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"},\"child\":[]}]})(props);\n};\nexport function FaYandex (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYarn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"},\"child\":[]}]})(props);\n};\nexport function FaYelp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYoast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"},\"child\":[]}]})(props);\n};\nexport function FaZhihu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"},\"child\":[]}]})(props);\n};\nexport function Fa0 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function Fa1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8 96 416l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352z\"},\"child\":[]}]})(props);\n};\nexport function Fa2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416 288 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z\"},\"child\":[]}]})(props);\n};\nexport function Fa3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l240 0c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208l21.7 0c75.1 0 136 60.9 136 136s-60.9 136-136 136l-78.6 0C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5l78.6 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L80 272c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function Fa4 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368l224 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L82.4 304 189 77.6z\"},\"child\":[]}]})(props);\n};\nexport function Fa5 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.5 58.3C35.3 43.1 48.5 32 64 32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L90.7 96 70.3 208 184 208c75.1 0 136 60.9 136 136s-60.9 136-136 136l-83.5 0c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1l83.5 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z\"},\"child\":[]}]})(props);\n};\nexport function Fa6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3l0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z\"},\"child\":[]}]})(props);\n};\nexport function Fa7 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function Fa8 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 160c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l15.9 0c0 0 .1 0 .1 0l32 0c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0l-32 0c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function Fa9 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z\"},\"child\":[]}]})(props);\n};\nexport function FaA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7l-120 288-40 96c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L93.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-40-96-120-288zM264 320l-144 0 72-172.8L264 320z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-32l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8.2 0 16.3-.6 24.2-1.8c-22.2-16.2-40.4-37.5-53-62.2L320 448l0-80 0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchorLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c8 0 15.9-.6 23.6-1.7c-4.8-9-7.6-19.3-7.6-30.3l0-33.3c-5.2 .9-10.5 1.3-16 1.3l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm21.1 80C367 158.8 384 129.4 384 96c0-53-43-96-96-96s-96 43-96 96c0 33.4 17 62.8 42.9 80L224 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 208-48 0c-53 0-96-43-96-96l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L97 263c-9.4-9.4-24.6-9.4-33.9 0L7 319c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 88.4 71.6 160 160 160l80 0 80 0c88.4 0 160-71.6 160-160l0-6.1 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0l-56 56c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 0 6.1c0 53-43 96-96 96l-48 0 0-208 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 402.7 361.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L224 210.7 361.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L301.3 256 438.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 256 265.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAnglesUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 109.3 361.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L224 301.3 361.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAnkh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1c-5.9 6.2-11.8 11.8-17.4 16.7c-5.6-4.9-11.5-10.5-17.4-16.7C116.7 204.6 96 169.6 96 128zM160 0C89.3 0 32 57.3 32 128c0 52.4 21.5 95.5 46.8 128L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0c25.4-32.5 46.8-75.6 46.8-128C288 57.3 230.7 0 160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAppleWhole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160c27.3 0 59.7 10.3 82.7 19.3c18.8 7.3 39.9 7.3 58.7 0c22.9-8.9 55.4-19.3 82.7-19.3c76.3 0 112 83.7 112 160c0 128-80 224-160 224c-16.5 0-38.1-6.6-51.5-11.3c-8.1-2.8-16.9-2.8-25 0c-13.4 4.7-35 11.3-51.5 11.3C80 512 0 416 0 288z\"},\"child\":[]}]})(props);\n};\nexport function FaArchway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 64 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 64 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-288L32 128l0 288z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown19 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM418.3 307a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 307zM405.1 419.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown91 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 480c9 0 17.5-3.8 23.6-10.4l88-96c11.9-13 11.1-33.3-2-45.2s-33.3-11.1-45.2 2L192 365.7 192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 301.7L95.6 330.4c-11.9-13-32.2-13.9-45.2-2s-13.9 32.2-2 45.2l88 96C142.5 476.2 151 480 160 480zM450.7 294c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l48 0 48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM418.3 91a32 32 0 1 1 27.4 57.9A32 32 0 1 1 418.3 91zM405.1 203.8l-6.8 9.2c-10.5 14.2-7.5 34.2 6.7 44.8s34.2 7.5 44.8-6.7l48.8-65.8c14-18.9 21.5-41.7 21.5-65.2c0-48.6-39.4-88-88-88s-88 39.4-88 88c0 39.2 25.6 72.4 61.1 83.8z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownAZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352 352 352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176l40.4 0L416 135.6 395.8 176z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7L86.6 329.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownShortWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownUpAcrossLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M137.4 502.6c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7 192 288l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L384 109.3 384 224l-192 0-64 0-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 114.7L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96zM128 192l64 0 0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128zM448 320l-64 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownUpLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M150.6 502.6l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 160 288l256 0 0-16c0-17.2 3.9-33.5 10.8-48L352 224l0-114.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 109.3 288 224l-128 0-64 0-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 114.7L54.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0zM160 192l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128 64 0zM288 320l0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128-64 0zm240-80c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownWideShort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 469.6C145.5 476.2 137 480 128 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L96 365.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDownZA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 301.7 32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 160l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 96 352 96c-17.7 0-32-14.3-32-32zm96 192c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 448l-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128c5.4-10.8 16.5-17.7 28.6-17.7zM395.8 400l40.4 0L416 359.6 395.8 400z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowLeftLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 55.2L0 426c0 12.2 9.9 22 22 22c6.3 0 12.4-2.7 16.6-7.5L121.2 346l58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320l118.1 0c12.2 0 22.1-9.9 22.1-22.1c0-6.3-2.7-12.3-7.4-16.5L38.6 37.9C34.3 34.1 28.9 32 23.2 32C10.4 32 0 42.4 0 55.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.6 150.6c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.7 96 32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l306.7 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96zm-333.3 352c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 416 416 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightFromBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightToBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRightToCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM166.6 153.4l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l114.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTrendDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7L342.6 137.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTrendUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7L342.6 374.6c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTurnDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowTurnUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp19 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M450.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM445.7 364.9A32 32 0 1 0 418.3 307a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 408.4 344 375.2 344 336c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 467c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp91 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32c9 0 17.5 3.8 23.6 10.4l88 96c11.9 13 11.1 33.3-2 45.2s-33.3 11.1-45.2-2L192 146.3 192 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-301.7L95.6 181.6c-11.9 13-32.2 13.9-45.2 2s-13.9-32.2-2-45.2l88-96C142.5 35.8 151 32 160 32zM450.7 294c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zm-5-145.1A32 32 0 1 0 418.3 91a32 32 0 1 0 27.4 57.9zm-40.7 54.9C369.6 192.4 344 159.2 344 120c0-48.6 39.4-88 88-88s88 39.4 88 88c0 23.5-7.5 46.3-21.5 65.2L449.7 251c-10.5 14.2-30.6 17.2-44.8 6.7s-17.2-30.6-6.7-44.8l6.8-9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpAZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-128 0c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176l-40.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpFromBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpFromGroundWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 352c17.7 0 32-14.3 32-32l0-210.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3 256 320c0 17.7 14.3 32 32 32zm-18.5 69.9C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM192 192L48 192c-26.5 0-48 21.5-48 48L0 425c5.3-3.1 11.2-5.4 17.5-6.9c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.1 20.3L192 192zm384 48c0-26.5-21.5-48-48-48l-144 0 0 224.5s0 0 0 0c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c6.3 1.5 12.1 3.8 17.5 6.9l0-185z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpFromWaterPump (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0C85.5 0 64 21.5 64 48l0 208-16 0c-26.5 0-48 21.5-48 48l0 96c0 8 2 15.6 5.4 22.2c3.8-1.7 7.8-3.1 12-4.1c13.1-3.1 26.7-9.8 37.3-18.6c22.2-18.7 54.3-20.1 78.1-3.4c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c4.2 1 8.2 2.4 12 4.1C574 415.6 576 408 576 400l0-96c0-26.5-21.5-48-48-48l-48 0 0-146.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 109.3 416 256l-128 0 0-208c0-26.5-21.5-48-48-48L112 0zM306.5 421.9c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448c-27.5 0-55-10.6-77.5-26.1z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpRightDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L256 109.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L160 0zM576 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM448 208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm128 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM272 384a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM144 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM576 336a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-48-80a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpRightFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0L201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpShortWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpWideShort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.6 42.4C145.5 35.8 137 32 128 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L96 146.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUpZA (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3 128 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.7 32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L352 32c-17.7 0-32 14.3-32 32zm96 192c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 262.8 428.1 256 416 256zM395.8 400L416 359.6 436.2 400l-40.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsDownToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 416L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zm22.6-137.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L480 274.7 480 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96zm-320-45.3c-12.5-12.5-32.8-12.5-45.3 0L160 274.7 160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7L54.6 233.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsDownToPeople (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0c-13.3 0-24 10.7-24 24l0 118.1L97 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L168 24c0-13.3-10.7-24-24-24zM360 200a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM184 296a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm312 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 441.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 345.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 441.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 468.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 441.5 88 480c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5zM415 153l64 64c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23L520 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsLeftRightToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64zm214.6 73.4c12.5 12.5 12.5 32.8 0 45.3L205.3 224l229.5 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 288l-229.5 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0zM640 96l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsSpin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96c38.4 0 73.7 13.5 101.3 36.1l-32.6 32.6c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l112 0c8.8 0 16-7.2 16-16l0-112c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-34 34C363.4 52.6 312.1 32 256 32c-10.9 0-21.5 .8-32 2.3l0 64.9c10.3-2.1 21-3.2 32-3.2zM132.1 154.7l32.6 32.6c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-112c0-8.8-7.2-16-16-16L64 48c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l34 34C52.6 148.6 32 199.9 32 256c0 10.9 .8 21.5 2.3 32l64.9 0c-2.1-10.3-3.2-21-3.2-32c0-38.4 13.5-73.7 36.1-101.3zM477.7 224l-64.9 0c2.1 10.3 3.2 21 3.2 32c0 38.4-13.5 73.7-36.1 101.3l-32.6-32.6c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 112c0 8.8 7.2 16 16 16l112 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-34-34C459.4 363.4 480 312.1 480 256c0-10.9-.8-21.5-2.3-32zM256 416c-38.4 0-73.7-13.5-101.3-36.1l32.6-32.6c4.6-4.6 5.9-11.5 3.5-17.4s-8.3-9.9-14.8-9.9L64 320c-8.8 0-16 7.2-16 16l0 112c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l34-34C148.6 459.4 199.9 480 256 480c10.9 0 21.5-.8 32-2.3l0-64.9c-10.3 2.1-21 3.2-32 3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsSplitUpAndLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L352 109.3 352 384c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-70.7 0-128-57.3-128-128c0-35.3-28.7-64-64-64l-114.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 256 224 256c23.3 0 45.2 6.2 64 17.1l0-163.9-41.4 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsToCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7 160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352L96 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160l18.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1s0 0 0 0l0-96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 397.3l0 18.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96s0 0 0 0l0-.1c0-4.3 .9-8.4 2.4-12.2c1.6-3.8 3.9-7.3 6.9-10.4c5.8-5.8 13.7-9.3 22.5-9.4l.1 0s0 0 0 0l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsToDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsToEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 15C24.4 5.7 39.6 5.7 49 15l63 63L112 40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l38.1 0L15 49C5.7 39.6 5.7 24.4 15 15zM133.5 243.9C158.6 193.6 222.7 112 320 112s161.4 81.6 186.5 131.9c3.8 7.6 3.8 16.5 0 24.2C481.4 318.4 417.3 400 320 400s-161.4-81.6-186.5-131.9c-3.8-7.6-3.8-16.5 0-24.2zM320 320a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM591 15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-63 63 38.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 38.1 63-63zM15 497c-9.4-9.4-9.4-24.6 0-33.9l63-63L40 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-38.1L49 497c-9.4 9.4-24.6 9.4-33.9 0zm576 0l-63-63 0 38.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-38.1 0 63 63c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsTurnRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 160 128 160c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32C0 153.3 57.3 96 128 96l210.7 0L297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsTurnToDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.4 25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L269.3 96 416 96c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-146.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm13.3 256l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 416 96 416c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM384 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192A64 64 0 1 1 64 64a64 64 0 1 1 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsUpDownLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4L224 224l-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L224 288l0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4L288 288l114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L288 224l0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsUpDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsUpToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96zM9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 237.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96zm320 45.3c12.5 12.5 32.8 12.5 45.3 0L416 237.3 416 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAsterisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256l0 32c0 53-43 96-96 96c-29.3 0-55.6-13.2-73.2-33.9C320 371.1 289.5 384 256 384c-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1c5.7-5 13.1-8.1 21.3-8.1c17.7 0 32 14.3 32 32l0 80 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAtom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 398.8c-11.8 5.1-23.4 9.7-34.9 13.5c16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM446 256c33 45.2 44.3 90.9 23.6 128c-20.2 36.3-62.5 49.3-115.2 43.2c-22 52.1-55.6 84.8-98.4 84.8s-76.4-32.7-98.4-84.8c-52.7 6.1-95-6.8-115.2-43.2C21.7 346.9 33 301.2 66 256c-33-45.2-44.3-90.9-23.6-128c20.2-36.3 62.5-49.3 115.2-43.2C179.6 32.7 213.2 0 256 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2c20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2c31.8 1.4 38.6-8.7 40.2-11.7c2.3-4.2 7-17.9-11.9-48.1c-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2c7.6 6.1 14.8 12.3 21.6 18.6c18.9-30.2 14.2-44 11.9-48.1c-1.6-2.9-8.4-13-40.2-11.7zM290.9 99.7C274.1 65.9 259.9 64 256 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5c11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2c-31.8-1.4-38.6 8.7-40.2 11.7c-2.3 4.2-7 17.9 11.9 48.1c6.8-6.3 14-12.5 21.6-18.6zM110.2 304.8C91.4 335 96 348.7 98.3 352.9c1.6 2.9 8.4 13 40.2 11.7c-2.8-13.1-5-26.9-6.7-41.2c-7.6-6.1-14.8-12.3-21.6-18.6zM336 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaAudioDescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM213.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7l-9.4-18.9-82.2 0-9.4 18.9c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zm-.4 106.6L192 237.7l-21.1 42.2 42.2 0zM304 184c0-13.3 10.7-24 24-24l56 0c53 0 96 43 96 96s-43 96-96 96l-56 0c-13.3 0-24-10.7-24-24l0-144zm48 24l0 96 32 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAustralSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M253.5 51.7C248.6 39.8 236.9 32 224 32s-24.6 7.8-29.5 19.7L122.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0L82.7 320 32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l24 0L34.5 435.7c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L125.3 384l197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8L392 384l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L352 288l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-90.7 0L253.5 51.7zM256 224l-64 0 32-76.8L256 224zm-90.7 64l117.3 0L296 320l-144 0 13.3-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.8 5.5c11-7.3 25.4-7.3 36.4 0L228 17.2c6 3.9 13 5.8 20.1 5.4l21.3-1.3c13.2-.8 25.6 6.4 31.5 18.2l9.6 19.1c3.2 6.4 8.4 11.5 14.7 14.7L344.5 83c11.8 5.9 19 18.3 18.2 31.5l-1.3 21.3c-.4 7.1 1.5 14.2 5.4 20.1l11.8 17.8c7.3 11 7.3 25.4 0 36.4L366.8 228c-3.9 6-5.8 13-5.4 20.1l1.3 21.3c.8 13.2-6.4 25.6-18.2 31.5l-19.1 9.6c-6.4 3.2-11.5 8.4-14.7 14.7L301 344.5c-5.9 11.8-18.3 19-31.5 18.2l-21.3-1.3c-7.1-.4-14.2 1.5-20.1 5.4l-17.8 11.8c-11 7.3-25.4 7.3-36.4 0L156 366.8c-6-3.9-13-5.8-20.1-5.4l-21.3 1.3c-13.2 .8-25.6-6.4-31.5-18.2l-9.6-19.1c-3.2-6.4-8.4-11.5-14.7-14.7L39.5 301c-11.8-5.9-19-18.3-18.2-31.5l1.3-21.3c.4-7.1-1.5-14.2-5.4-20.1L5.5 210.2c-7.3-11-7.3-25.4 0-36.4L17.2 156c3.9-6 5.8-13 5.4-20.1l-1.3-21.3c-.8-13.2 6.4-25.6 18.2-31.5l19.1-9.6C65 70.2 70.2 65 73.4 58.6L83 39.5c5.9-11.8 18.3-19 31.5-18.2l21.3 1.3c7.1 .4 14.2-1.5 20.1-5.4L173.8 5.5zM272 192a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM1.3 441.8L44.4 339.3c.2 .1 .3 .2 .4 .4l9.6 19.1c11.7 23.2 36 37.3 62 35.8l21.3-1.3c.2 0 .5 0 .7 .2l17.8 11.8c5.1 3.3 10.5 5.9 16.1 7.7l-37.6 89.3c-2.3 5.5-7.4 9.2-13.3 9.7s-11.6-2.2-14.8-7.2L74.4 455.5l-56.1 8.3c-5.7 .8-11.4-1.5-15-6s-4.3-10.7-2.1-16zm248 60.4L211.7 413c5.6-1.8 11-4.3 16.1-7.7l17.8-11.8c.2-.1 .4-.2 .7-.2l21.3 1.3c26 1.5 50.3-12.6 62-35.8l9.6-19.1c.1-.2 .2-.3 .4-.4l43.2 102.5c2.2 5.3 1.4 11.4-2.1 16s-9.3 6.9-15 6l-56.1-8.3-32.2 49.2c-3.2 5-8.9 7.7-14.8 7.2s-11-4.3-13.3-9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaB (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l128 0c70.7 0 128-57.3 128-128c0-46.5-24.8-87.3-62-109.7c18.7-22.3 30-51 30-82.3c0-70.7-57.3-128-128-128L64 32zm96 192l-96 0L64 96l96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l96 0 32 0c35.3 0 64 28.7 64 64s-28.7 64-64 64L64 416l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBabyCarriage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 192L.1 192C2.7 117.9 41.3 52.9 99 14.1c13.3-8.9 30.8-4.3 39.9 8.8L256 192zm128-32c0-35.3 28.7-64 64-64l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64c0 25.2-5.8 50.2-17 73.5s-27.8 44.5-48.6 62.3s-45.5 32-72.7 41.6S253.4 416 224 416s-58.5-5-85.7-14.6s-51.9-23.8-72.7-41.6s-37.3-39-48.6-62.3S0 249.2 0 224l224 0 160 0 0-64zM80 416a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm240 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBaby (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 88a72 72 0 1 1 144 0A72 72 0 1 1 152 88zM39.7 144.5c13-17.9 38-21.8 55.9-8.8L131.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L48.5 200.3c-17.9-13-21.8-38-8.8-55.9zm89.8 184.8l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C70 438.6 68.1 417 79.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L284 419.4l-26-37.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBackwardFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M493.6 445c-11.2 5.3-24.5 3.6-34.1-4.4L288 297.7 288 416c0 12.4-7.2 23.7-18.4 29s-24.5 3.6-34.1-4.4L64 297.7 64 416c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 118.3L235.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S288 83.6 288 96l0 118.3L459.5 71.4c9.5-7.9 22.8-9.7 34.1-4.4S512 83.6 512 96l0 320c0 12.4-7.2 23.7-18.4 29z\"},\"child\":[]}]})(props);\n};\nexport function FaBackwardStep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160L64 241 64 96c0-17.7-14.3-32-32-32S0 78.3 0 96L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-145 11.5 9.6 192 160z\"},\"child\":[]}]})(props);\n};\nexport function FaBackward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.5 440.6c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-320c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4L288 214.3l0 41.7 0 41.7L459.5 440.6zM256 352l0-96 0-128 0-32c0-12.4-7.2-23.7-18.4-29s-24.5-3.6-34.1 4.4l-192 160C4.2 237.5 0 246.5 0 256s4.2 18.5 11.5 24.6l192 160c9.5 7.9 22.8 9.7 34.1 4.4s18.4-16.6 18.4-29l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaBacon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.2 1.2c11.2-3.2 23.2-.1 31.4 8.1L518 56.7l-26.5 7.9c-58 16.6-98.1 39.6-129.6 67.4c-31.2 27.5-53.2 59.1-75.1 90.9l-2.3 3.3C241.6 288.7 195 356.6 72.8 417.7L37.9 435.2 9.4 406.6c-7.3-7.3-10.6-17.6-9-27.8s8.1-18.9 17.3-23.5C136.1 296.2 180.9 231 223.3 169.3l2.3-3.4c21.8-31.8 44.9-64.9 77.7-93.9c33.4-29.5 75.8-53.6 135.9-70.8zM61.8 459l25.4-12.7c129.5-64.7 179.9-138.1 223.8-202l2.2-3.3c22.1-32.1 42.1-60.5 69.9-85.1c27.5-24.3 63.4-45.2 117.3-60.6c0 0 0 0 0 0l.2-.1 43.1-12.9 23 23c8 8 11.2 19.7 8.3 30.7s-11.3 19.6-22.2 22.7c-51.9 14.8-85.6 34.7-111.1 57.2c-26.1 23-45.1 49.9-67.3 82.1l-2.2 3.2C327.8 365.9 275.5 442 142.3 508.6c-12.3 6.2-27.2 3.7-36.9-6L61.8 459z\"},\"child\":[]}]})(props);\n};\nexport function FaBacteria (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.9 .7c-9.6-2.7-19.5 2.8-22.3 12.4l-4.3 15.2c-8.3-.6-16.8 0-25.2 1.9c-7.3 1.7-14.3 3.5-21.1 5.5l-5.5-12.7c-3.9-9.1-14.5-13.4-23.6-9.5s-13.4 14.5-9.5 23.6l4.4 10.4c-16.6 6.7-31.7 14.4-45.4 22.8L147 62c-5.5-8.3-16.7-10.5-25-5s-10.5 16.7-5 25l6 9c-13.7 11-25.5 22.8-35.8 34.9l-10-8c-7.8-6.2-19.1-5-25.3 2.8s-5 19.1 2.8 25.3L65.9 155c-1.8 2.8-3.5 5.7-5.1 8.5c-6.6 11.4-11.8 22.6-16 33l-8-3.2c-9.2-3.7-19.7 .8-23.4 10s.8 19.7 10 23.4l10.4 4.2c-.2 .8-.4 1.5-.5 2.3c-2.2 9.3-3.4 17.3-4.1 23.4c-.4 3.1-.6 5.7-.8 7.8c-.1 1.1-.1 2-.2 2.8l-.1 1.1 0 .5 0 .2 0 .1c0 0 0 .1 29.1 1c0 0 0 0-.1 0L28 269.3c-.1 3.1 0 6.1 .2 9.1l-15.2 4.3C3.5 285.4-2 295.4 .7 304.9s12.7 15.1 22.3 12.4l15.6-4.5c7.6 13.6 18.9 25 32.6 32.6L66.7 361c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.3-12.4l4.3-15.2c1.2 .1 2.4 .2 3.6 .2c15.6 .5 30.3-3.3 43-10.2l9 9c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-7.2-7.2c9.3-12.6 15.2-27.8 16.3-44.5l7.1 3c9.1 3.9 19.7-.3 23.6-9.5s-.3-19.7-9.5-23.6l-8.6-3.7c6.4-9.9 17.3-22.4 36.9-33.3l1.3 4.4c2.7 9.6 12.7 15.1 22.3 12.4s15.1-12.7 12.4-22.3l-2.3-8.1c3.8-1.1 7.7-2.1 11.9-3.1c11.6-2.7 22.1-7.7 31.1-14.4l7.2 7.2c7 7 18.4 7 25.5 0s7-18.4 0-25.5l-9-9c7.6-13.9 11.3-30.1 10.1-46.6l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3S370.6 64 361 66.7l-15.6 4.5c-7.7-13.9-19.1-25.1-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3zM112 272l-48-1.5c0 0 0 0 0 0c11.7 .4 27.3 .9 48 1.6zm16-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-48a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM322.7 489c-2.7 9.6 2.8 19.5 12.4 22.3s19.5-2.8 22.2-12.4l4.3-15.2c8.3 .6 16.8 0 25.2-1.9c7.3-1.7 14.3-3.5 21.1-5.5l5.5 12.7c3.9 9.1 14.5 13.4 23.6 9.5s13.4-14.5 9.5-23.6l-4.4-10.4c16.6-6.7 31.7-14.4 45.4-22.8L493 450c5.5 8.3 16.7 10.5 25 5s10.5-16.7 5-25l-6-9c13.7-11 25.5-22.8 35.8-34.9l10 8c7.8 6.2 19.1 5 25.3-2.8s5-19.1-2.8-25.3L574.1 357c1.8-2.8 3.5-5.7 5.1-8.5c6.6-11.4 11.8-22.6 16-33l8 3.2c9.2 3.7 19.7-.8 23.4-10s-.8-19.7-10-23.4l-10.4-4.2c.2-.8 .4-1.5 .5-2.3c2.2-9.3 3.4-17.3 4.1-23.4c.4-3.1 .6-5.7 .8-7.8c.1-1.1 .1-2 .2-2.8l.1-1.1 0-.5 0-.2 0-.1c0 0 0-.1-29.1-1c0 0 0 0 .1 0l29.1 .9c.1-3.1 0-6.1-.2-9.1l15.2-4.3c9.6-2.7 15.1-12.7 12.4-22.3s-12.7-15.1-22.3-12.4l-15.6 4.5c-7.6-13.6-18.9-25-32.6-32.6l4.5-15.6c2.7-9.6-2.8-19.5-12.4-22.3s-19.5 2.8-22.3 12.4l-4.3 15.2c-1.2-.1-2.4-.2-3.6-.2c-15.6-.5-30.3 3.3-43 10.2l-9-9c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l7.2 7.2c-9.3 12.6-15.2 27.8-16.3 44.5l-7.1-3c-9.1-3.9-19.7 .3-23.6 9.5s.3 19.7 9.5 23.6l8.6 3.7c-6.4 9.9-17.3 22.4-36.9 33.3l-1.3-4.4c-2.7-9.6-12.7-15.1-22.3-12.4s-15.1 12.7-12.4 22.3l2.3 8.1c-3.8 1.1-7.7 2.1-11.9 3.1c-11.6 2.7-22.1 7.7-31.1 14.4l-7.2-7.2c-7-7-18.4-7-25.5 0s-7 18.4 0 25.5l9 9c-7.6 13.9-11.3 30.1-10.1 46.6l-15.2 4.3c-9.6 2.7-15.1 12.7-12.4 22.2s12.7 15.1 22.3 12.4l15.6-4.5c7.7 13.9 19.1 25.1 32.6 32.6L322.7 489zM576 241.5c0 0 0 0 0 0c-11.7-.4-27.3-.9-48-1.6l48 1.5zM448 384a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBacterium (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.1 30.6c3.6-12.7-3.7-26-16.5-29.7s-26 3.7-29.7 16.5l-4.2 14.7c-9.8-.4-19.9 .5-29.9 2.8c-12.1 2.8-23.7 5.9-34.9 9.4l-5.9-13.7c-5.2-12.2-19.3-17.8-31.5-12.6s-17.8 19.3-12.6 31.5l4.9 11.3c-22 9.4-42 20.1-60.2 31.8L196 82.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3l7.8 11.6c-18 15-33.7 30.8-47.3 47.1L103 157.3c-10.4-8.3-25.5-6.6-33.7 3.7s-6.6 25.5 3.7 33.7l15 12c-2.1 3.2-4.1 6.5-6 9.7c-9.4 15.7-17 31-23.2 45.3l-9.9-3.9c-12.3-4.9-26.3 1.1-31.2 13.4s1.1 26.3 13.4 31.2l11.6 4.6c-.3 1.1-.6 2.1-.9 3.1c-3.5 12.5-5.7 23.2-7.1 31.3c-.7 4.1-1.2 7.5-1.6 10.3c-.2 1.4-.3 2.6-.4 3.6l-.1 1.4-.1 .6 0 .3 0 .1c0 0 0 .1 39.2 3.7c0 0 0 0 0 0l-39.2-3.6c-.5 5-.6 10-.4 14.9l-14.7 4.2C4.7 380.6-2.7 393.8 .9 406.6s16.9 20.1 29.7 16.5l13.8-3.9c10.6 20.7 27.6 37.8 48.5 48.5l-3.9 13.7c-3.6 12.7 3.7 26 16.5 29.7s26-3.7 29.7-16.5l4.2-14.7c23.8 1 46.3-5.5 65.1-17.6L215 473c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c9.1-14.1 15.1-30.5 17-48.3l.1-.8c.3-1.7 1-5.1 2.3-9.8l.2-.8 12.6 5.4c12.2 5.2 26.3-.4 31.5-12.6s-.4-26.3-12.6-31.5l-11.3-4.8c9.9-14.9 24.9-31.6 48.6-46l2.1 7.5c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7L371 259.2c6.9-2.2 14.3-4.3 22.2-6.1c12.9-3 24.7-8 35.2-14.8L439 249c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-10.6-10.6c12.2-19 18.6-41.6 17.6-65.1l14.7-4.2c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5l-13.7 3.9c-10.8-21.2-28-38-48.5-48.5l3.9-13.8zM92.1 363.3s0 0 0 0L144 368l-51.9-4.7zM112 320a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM240 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBagShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 112c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48C336 50.1 285.9 0 224 0S112 50.1 112 112l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBahai (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c14.5 0 27.2 9.7 30.9 23.8l23.9 89.6 75.9-53.3c11.9-8.3 27.8-7.6 39 1.7s14.6 24.9 8.4 38.1l-39.3 84 92.4 8c14.4 1.2 26.2 12 28.8 26.3s-4.9 28.5-18 34.6l-84.1 39.1 65.7 65.5c10.3 10.2 12.4 26.1 5.1 38.7s-22 18.7-36 14.9L391 386.8l8.2 92.4c1.3 14.4-7.3 27.9-20.9 32.9s-28.9 .1-37.2-11.7l-53.1-76-53.1 76c-8.3 11.9-23.6 16.7-37.2 11.7s-22.2-18.5-20.9-32.9l8.2-92.4L95.4 410.9c-14 3.8-28.8-2.3-36-14.9s-5.2-28.4 5.1-38.7l65.7-65.5L46 252.7c-13.1-6.1-20.5-20.3-18-34.6s14.3-25.1 28.8-26.3l92.4-8-39.3-84c-6.1-13.1-2.7-28.8 8.4-38.1s27.1-10 39-1.7l75.9 53.3 23.9-89.6C260.8 9.7 273.5 0 288 0zm0 156.2l-4.8 18c-2.7 10.1-10.2 18.2-20 21.8s-20.8 2.1-29.3-3.9l-15.2-10.7 7.9 16.8c4.4 9.5 4 20.5-1.3 29.6s-14.5 15-25 15.9l-18.5 1.6 16.8 7.8c9.5 4.4 16.2 13.2 18 23.5s-1.5 20.8-8.9 28.2l-13.2 13.1 17.9-4.8c10.1-2.7 20.9-.3 28.9 6.4s12.2 16.9 11.3 27.3l-1.6 18.5 10.6-15.2c6-8.6 15.8-13.7 26.2-13.7s20.2 5.1 26.2 13.7l10.6 15.2-1.6-18.5c-.9-10.4 3.3-20.6 11.3-27.3s18.8-9.1 28.9-6.4l17.9 4.8-13.2-13.1c-7.4-7.4-10.7-17.9-8.9-28.2s8.5-19.1 18-23.5l16.8-7.8-18.5-1.6c-10.4-.9-19.7-6.8-25-15.9s-5.7-20.1-1.3-29.6l7.9-16.8-15.2 10.7c-8.6 6-19.5 7.5-29.3 3.9s-17.3-11.7-20-21.8l-4.8-18z\"},\"child\":[]}]})(props);\n};\nexport function FaBahtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0c-17.7 0-32 14.3-32 32l0 32L37.6 64C16.8 64 0 80.8 0 101.6L0 224l0 41.7L0 288 0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c61.9 0 112-50.1 112-112c0-40.1-21.1-75.3-52.7-95.1C280.3 222.6 288 200.2 288 176c0-61.9-50.1-112-112-112l0-32c0-17.7-14.3-32-32-32zM112 128l0 96-48 0 0-96 48 0zm64 96l0-96c26.5 0 48 21.5 48 48s-21.5 48-48 48zm-64 64l0 96-48 0 0-96 48 0zm64 96l0-96 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBanSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99.5 144.8L178.7 224l96 96 92.5 92.5C335.9 434.9 297.5 448 256 448C150 448 64 362 64 256c0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l34.7 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-130.7 0L144.8 99.5C176.1 77.1 214.5 64 256 64c106 0 192 86 192 192c0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16s16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16zM229.5 320l-96-96L112 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l117.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaBandage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBangladeshiTakaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36 32.3C18.4 30.1 2.4 42.5 .2 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8L64 160l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-160 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-31.5c0-48.4-36.1-89.3-84.1-95.3l-7.9-1z\"},\"child\":[]}]})(props);\n};\nexport function FaBarcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 32C10.7 32 0 42.7 0 56L0 456c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24L64 56c0-13.3-10.7-24-24-24L24 32zm88 0c-8.8 0-16 7.2-16 16l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16zm72 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zm96 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0zM448 56l0 400c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-400c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm-64-8l0 416c0 8.8 7.2 16 16 16s16-7.2 16-16l0-416c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBarsProgress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 160l-128 0 0-32 128 0 0 32zM48 64C21.5 64 0 85.5 0 112l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 64zM448 352l0 32-256 0 0-32 256 0zM48 288c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48L48 288z\"},\"child\":[]}]})(props);\n};\nexport function FaBarsStaggered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBaseballBatBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424 0c-12.4 0-24.2 4.9-33 13.7L233.5 171.2c-10.5 10.5-19.8 22.1-27.7 34.6L132.7 321.6c-7.3 11.5-15.8 22.2-25.5 31.9L69.9 390.7l51.3 51.3 37.3-37.3c9.6-9.6 20.3-18.2 31.9-25.5l115.8-73.1c12.5-7.9 24.1-17.2 34.6-27.7L498.3 121c8.7-8.7 13.7-20.6 13.7-33s-4.9-24.2-13.7-33L457 13.7C448.2 4.9 436.4 0 424 0zm88 432a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM15 399c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L49 399c-9.4-9.4-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBaseball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M62.7 223.4c-4.8 .4-9.7 .6-14.7 .6c-15.6 0-30.8-2-45.2-5.9C19.2 107.1 107.1 19.2 218.1 2.8C222 17.2 224 32.4 224 48c0 4.9-.2 9.8-.6 14.7c-.7 8.8 5.8 16.5 14.6 17.3s16.5-5.8 17.3-14.6c.5-5.7 .7-11.5 .7-17.3c0-16.5-1.9-32.6-5.6-47.9c1.8 0 3.7-.1 5.6-.1C397.4 0 512 114.6 512 256c0 1.9 0 3.7-.1 5.6c-15.4-3.6-31.4-5.6-47.9-5.6c-5.8 0-11.6 .2-17.3 .7c-8.8 .7-15.4 8.5-14.6 17.3s8.5 15.4 17.3 14.6c4.8-.4 9.7-.6 14.7-.6c15.6 0 30.8 2 45.2 5.9C492.8 404.9 404.9 492.8 293.9 509.2C290 494.8 288 479.6 288 464c0-4.9 .2-9.8 .6-14.7c.7-8.8-5.8-16.5-14.6-17.3s-16.5 5.8-17.3 14.6c-.5 5.7-.7 11.5-.7 17.3c0 16.5 1.9 32.6 5.6 47.9c-1.8 0-3.7 .1-5.6 .1C114.6 512 0 397.4 0 256c0-1.9 0-3.7 .1-5.6C15.4 254.1 31.5 256 48 256c5.8 0 11.6-.2 17.3-.7c8.8-.7 15.4-8.5 14.6-17.3s-8.5-15.4-17.3-14.6zM121.3 208c-8 3.7-11.6 13.2-7.9 21.2s13.2 11.6 21.2 7.9c45.2-20.8 81.7-57.2 102.5-102.5c3.7-8 .2-17.5-7.9-21.2s-17.5-.2-21.2 7.9c-17.6 38.3-48.5 69.2-86.7 86.7zm277.2 74.7c-3.7-8-13.2-11.6-21.2-7.9c-45.2 20.8-81.7 57.2-102.5 102.5c-3.7 8-.2 17.5 7.9 21.2s17.5 .2 21.2-7.9c17.6-38.3 48.5-69.2 86.7-86.7c8-3.7 11.6-13.2 7.9-21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBasketShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M253.3 35.1c6.1-11.8 1.5-26.3-10.2-32.4s-26.3-1.5-32.4 10.2L117.6 192 32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32L83.9 463.5C91 492 116.6 512 146 512L430 512c29.4 0 55-20 62.1-48.5L544 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-85.6 0L365.3 12.9C359.2 1.2 344.7-3.4 332.9 2.7s-16.3 20.6-10.2 32.4L404.3 192l-232.6 0L253.3 35.1zM192 304l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm96-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBasketball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.6 64l85.2 85.2C194.5 121.7 208 86.4 208 48c0-14.7-2-28.9-5.7-42.4C158.6 15 119 35.5 86.6 64zM64 86.6C35.5 119 15 158.6 5.6 202.3C19.1 206 33.3 208 48 208c38.4 0 73.7-13.5 101.3-36.1L64 86.6zM256 0c-7.3 0-14.6 .3-21.8 .9C238 16 240 31.8 240 48c0 47.3-17.1 90.5-45.4 124L256 233.4 425.4 64C380.2 24.2 320.9 0 256 0zM48 240c-16.2 0-32-2-47.1-5.8C.3 241.4 0 248.7 0 256c0 64.9 24.2 124.2 64 169.4L233.4 256 172 194.6C138.5 222.9 95.3 240 48 240zm463.1 37.8c.6-7.2 .9-14.5 .9-21.8c0-64.9-24.2-124.2-64-169.4L278.6 256 340 317.4c33.4-28.3 76.7-45.4 124-45.4c16.2 0 32 2 47.1 5.8zm-4.7 31.9C492.9 306 478.7 304 464 304c-38.4 0-73.7 13.5-101.3 36.1L448 425.4c28.5-32.3 49.1-71.9 58.4-115.7zM340.1 362.7C317.5 390.3 304 425.6 304 464c0 14.7 2 28.9 5.7 42.4C353.4 497 393 476.5 425.4 448l-85.2-85.2zM317.4 340L256 278.6 86.6 448c45.1 39.8 104.4 64 169.4 64c7.3 0 14.6-.3 21.8-.9C274 496 272 480.2 272 464c0-47.3 17.1-90.5 45.4-124z\"},\"child\":[]}]})(props);\n};\nexport function FaBath (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 77.3c0-7.3 5.9-13.3 13.3-13.3c3.5 0 6.9 1.4 9.4 3.9l14.9 14.9C130 91.8 128 101.7 128 112c0 19.9 7.2 38 19.2 52c-5.3 9.2-4 21.1 3.8 29c9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9c-7.9-7.9-19.8-9.1-29-3.8C246 39.2 227.9 32 208 32c-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0C66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3zM32 352l0 16c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-16L32 352z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 160c-8.8 0-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16L80 160zM0 176c0-44.2 35.8-80 80-80l384 0c44.2 0 80 35.8 80 80l0 16c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 16c0 44.2-35.8 80-80 80L80 416c-44.2 0-80-35.8-80-80L0 176z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm368 96L96 192l0 128 352 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm208 96L96 192l0 128 192 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm112 96l-96 0 0 128 96 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryThreeQuarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 160c8.8 0 16 7.2 16 16l0 160c0 8.8-7.2 16-16 16L80 352c-8.8 0-16-7.2-16-16l0-160c0-8.8 7.2-16 16-16l384 0zM80 96C35.8 96 0 131.8 0 176L0 336c0 44.2 35.8 80 80 80l384 0c44.2 0 80-35.8 80-80l0-16c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-16c0-44.2-35.8-80-80-80L80 96zm272 96L96 192l0 128 256 0 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBedPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.2 9.6L524 64l92 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-104 0c-7.6 0-14.7-3.6-19.2-9.6L468.7 70.3l-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L339.2 112 216 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5C445.9 6.2 453.2 1 461.6 .1s16.6 2.7 21.6 9.5zM320 160l12.7 0 20.7 31.1c11.2 16.8 30.6 26.3 50.7 24.8s37.9-13.7 46.5-32L461.9 160l82.1 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 448l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 96C0 78.3 14.3 64 32 64s32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32zm-144 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaBed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 256 224 0 0-160c0-17.7 14.3-32 32-32l224 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-224 0-32 0L64 416l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 46.3 14.3 32 32 32zm144 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaBeerMugEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32 51.2 0c42.4 0 76.8 34.4 76.8 76.8l0 102.1c0 30.4-17.9 57.9-45.6 70.2L384 381.7l0 34.3c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64L32 64zM384 311.6l56.4-25.1c4.6-2.1 7.6-6.6 7.6-11.7l0-102.1c0-7.1-5.7-12.8-12.8-12.8L384 160l0 151.6zM160 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224zm64 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaBellConcierge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C119.6 157.2 32 252.4 32 368l448 0c0-115.6-87.6-210.8-200-222.7l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0-40 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"},\"child\":[]}]})(props);\n};\nexport function FaBellSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBezierCurve (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4L121.6 84C111.2 62.7 89.3 48 64 48C28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1c8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1c59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36c35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36L400 84l0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBicycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l25.7 0 34.6 64-149.4 0-27.4-38C191 99.7 183.7 96 176 96l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.7 0 22.1 30.7-26.6 53.1c-10-2.5-20.5-3.8-31.2-3.8C57.3 224 0 281.3 0 352s57.3 128 128 128c65.3 0 119.1-48.9 127-112l49 0c8.5 0 16.3-4.5 20.7-11.8l84.8-143.5 21.7 40.1C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L375.4 48.8C369.8 38.4 359 32 347.2 32L312 32zM458.6 303.7l32.3 59.7c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-32.3-59.7c3.6-.6 7.4-.9 11.2-.9c39.8 0 72 32.2 72 72s-32.2 72-72 72s-72-32.2-72-72c0-18.6 7-35.5 18.6-48.3zM133.2 368l65 0c-7.3 32.1-36 56-70.2 56c-39.8 0-72-32.2-72-72s32.2-72 72-72c1.7 0 3.4 .1 5.1 .2l-24.2 48.5c-9 18.1 4.1 39.4 24.3 39.4zm33.7-48l50.7-101.3 72.9 101.2-.1 .1-123.5 0zm90.6-128l108.5 0L317 274.8 257.4 192z\"},\"child\":[]}]})(props);\n};\nexport function FaBinoculars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32l32 0c17.7 0 32 14.3 32 32l0 32L96 96l0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3C40.9 267.8 49.7 242.4 53 216L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6c17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBiohazard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.2 0c-1.8 0-3.5 .7-4.8 2C138.5 32.3 120 74 120 120c0 26.2 6 50.9 16.6 73c-22 2.4-43.8 9.1-64.2 20.5C37.9 232.8 13.3 262.4 .4 296c-.7 1.7-.5 3.7 .5 5.2c2.2 3.7 7.4 4.3 10.6 1.3C64.2 254.3 158 245.1 205 324s-8.1 153.1-77.6 173.2c-4.2 1.2-6.3 5.9-4.1 9.6c1 1.6 2.6 2.7 4.5 3c36.5 5.9 75.2 .1 109.7-19.2c20.4-11.4 37.4-26.5 50.5-43.8c13.1 17.3 30.1 32.4 50.5 43.8c34.5 19.3 73.3 25.2 109.7 19.2c1.9-.3 3.5-1.4 4.5-3c2.2-3.7 .1-8.4-4.1-9.6C379.1 477.1 324 403 371 324s140.7-69.8 193.5-21.4c3.2 2.9 8.4 2.3 10.6-1.3c1-1.6 1.1-3.5 .5-5.2c-12.9-33.6-37.5-63.2-72.1-82.5c-20.4-11.4-42.2-18.1-64.2-20.5C450 170.9 456 146.2 456 120c0-46-18.5-87.7-48.4-118c-1.3-1.3-3-2-4.8-2c-5 0-8.4 5.2-6.7 9.9C421.7 80.5 385.6 176 288 176S154.3 80.5 179.9 9.9c1.7-4.7-1.6-9.9-6.7-9.9zM240 272a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM181.7 417.6c6.3-11.8 9.8-25.1 8.6-39.8c-19.5-18-34-41.4-41.2-67.8c-12.5-8.1-26.2-11.8-40-12.4c-9-.4-18.1 .6-27.1 2.7c7.8 57.1 38.7 106.8 82.9 139.4c6.8-6.7 12.6-14.1 16.8-22.1zM288 64c-28.8 0-56.3 5.9-81.2 16.5c2 8.3 5 16.2 9 23.5c6.8 12.4 16.7 23.1 30.1 30.3c13.3-4.1 27.5-6.3 42.2-6.3s28.8 2.2 42.2 6.3c13.4-7.2 23.3-17.9 30.1-30.3c4-7.3 7-15.2 9-23.5C344.3 69.9 316.8 64 288 64zM426.9 310c-7.2 26.4-21.7 49.7-41.2 67.8c-1.2 14.7 2.2 28.1 8.6 39.8c4.3 8 10 15.4 16.8 22.1c44.3-32.6 75.2-82.3 82.9-139.4c-9-2.2-18.1-3.1-27.1-2.7c-13.8 .6-27.5 4.4-40 12.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBitcoinSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32C48 14.3 62.3 0 80 0s32 14.3 32 32l0 32 32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 1.5-.1 3.1-.3 4.5C254.1 82.2 288 125.1 288 176c0 24.2-7.7 46.6-20.7 64.9c31.7 19.8 52.7 55 52.7 95.1c0 61.9-50.1 112-112 112l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-6.3 0C18.7 448 0 429.3 0 406.3L0 288l0-22.3L0 224 0 101.6C0 80.8 16.8 64 37.6 64L48 64l0-32zM64 224l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L64 128l0 96zm112 64L64 288l0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBlenderPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 352L196.8 52.3C194.2 24.2 216.3 0 244.6 0L534.1 0c21.1 0 36.4 20.1 30.9 40.4L558.5 64 400 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L400 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L400 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L480 352l-256 0zm-16 32l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM147.5 30.7c10.8 6.7 15.3 21 10.6 33.4l-22 57.8c-4.2 10.9-14.5 17.6-25.3 16.4l-33.3-3.6c-13.6 42.2-13.6 88.4 0 130.7l33.3-3.6c10.9-1.2 21.2 5.5 25.3 16.4l22 57.8c4.7 12.4 .2 26.7-10.6 33.4l-44 27.2c-9.7 6-21.9 4.2-29.8-4.3C-24.6 286-24.6 114 73.7 7.8C81.6-.7 93.8-2.5 103.5 3.5l44 27.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBlender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0l64 0 32 0L470.1 0c21.1 0 36.4 20.1 30.9 40.4L494.5 64 336 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l149.8 0-17.5 64L336 160c-8.8 0-16 7.2-16 16s7.2 16 16 16l123.6 0-17.5 64L336 256c-8.8 0-16 7.2-16 16s7.2 16 16 16l97.5 0L416 352l-256 0-8.7-96L64 256c-35.3 0-64-28.7-64-64L0 64zM145.5 192L133.8 64 64 64l0 128 81.5 0zM144 384l288 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48zm144 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBlog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c0 17.7 14.3 32 32 32c123.7 0 224 100.3 224 224c0 17.7 14.3 32 32 32s32-14.3 32-32C512 128.9 383.1 0 224 0c-17.7 0-32 14.3-32 32zm0 96c0 17.7 14.3 32 32 32c70.7 0 128 57.3 128 128c0 17.7 14.3 32 32 32s32-14.3 32-32c0-106-86-192-192-192c-17.7 0-32 14.3-32 32zM96 144c0-26.5-21.5-48-48-48S0 117.5 0 144L0 368c0 79.5 64.5 144 144 144s144-64.5 144-144s-64.5-144-144-144l-16 0 0 96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48s-48-21.5-48-48l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoltLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256L28.5 28c2-16 15.6-28 31.8-28H228.9c15 0 27.1 12.1 27.1 27.1c0 3.2-.6 6.5-1.7 9.5L208 160H347.3c20.2 0 36.7 16.4 36.7 36.7c0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7h-2.9c-15.7 0-28.5-12.8-28.5-28.5c0-2.3 .3-4.6 .9-6.9L176 288H32c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z\"},\"child\":[]}]})(props);\n};\nexport function FaBomb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.1 52.4L442.6 6.5C440.7 2.6 436.5 0 432.1 0s-8.5 2.6-10.4 6.5L405.2 52.4l-46 16.8c-4.3 1.6-7.3 5.9-7.2 10.4c0 4.5 3 8.7 7.2 10.2l45.7 16.8 16.8 45.8c1.5 4.4 5.8 7.5 10.4 7.5s8.9-3.1 10.4-7.5l16.5-45.8 45.7-16.8c4.2-1.5 7.2-5.7 7.2-10.2c0-4.6-3-8.9-7.2-10.4L459.1 52.4zm-132.4 53c-12.5-12.5-32.8-12.5-45.3 0l-2.9 2.9C256.5 100.3 232.7 96 208 96C93.1 96 0 189.1 0 304S93.1 512 208 512s208-93.1 208-208c0-24.7-4.3-48.5-12.2-70.5l2.9-2.9c12.5-12.5 12.5-32.8 0-45.3l-80-80zM200 192c-57.4 0-104 46.6-104 104l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-75.1 60.9-136 136-136l8 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.7 144.8c6.9 16.3 20.6 31.2 38.3 31.2l192 0c17.7 0 31.4-14.9 38.3-31.2C434.4 116.1 462.9 96 496 96c44.2 0 80 35.8 80 80c0 30.4-17 56.9-42 70.4c-3.6 1.9-6 5.5-6 9.6s2.4 7.7 6 9.6c25 13.5 42 40 42 70.4c0 44.2-35.8 80-80 80c-33.1 0-61.6-20.1-73.7-48.8C415.4 350.9 401.7 336 384 336l-192 0c-17.7 0-31.4 14.9-38.3 31.2C141.6 395.9 113.1 416 80 416c-44.2 0-80-35.8-80-80c0-30.4 17-56.9 42-70.4c3.6-1.9 6-5.5 6-9.6s-2.4-7.7-6-9.6C17 232.9 0 206.4 0 176c0-44.2 35.8-80 80-80c33.1 0 61.6 20.1 73.7 48.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 208.5c0 29.1-15.6 53.9-37.2 67.8c-17.2 11.1-31.5 26.1-41.7 43.7l221.8 0c-10.2-17.6-24.5-32.6-41.7-43.7c-21.6-13.9-37.2-38.7-37.2-67.8L224 64l-64 0 0 144.5zM288 64l0 144.5c0 5.7 3.1 10.9 7.9 14c11.2 7.2 21.5 15.5 30.9 24.8L366.1 208l-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l24 24 24 24c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3C374 314.1 384 347.9 384 384c0 39.4-11.9 76.1-32.2 106.5c-9.6 14.4-26.5 21.5-43.8 21.5L76.1 512c-17.3 0-34.2-7.1-43.8-21.5C11.9 460.1 0 423.4 0 384c0-67.8 35.1-127.3 88.1-161.5c4.8-3.1 7.9-8.3 7.9-14L96 64C78.3 64 64 49.7 64 32S78.3 0 96 0l16 0L272 0l16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBookAtlas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM247.4 283.8c-3.7 3.7-6.2 4.2-7.4 4.2s-3.7-.5-7.4-4.2c-3.8-3.7-8-10-11.8-18.9c-6.2-14.5-10.8-34.3-12.2-56.9l63 0c-1.5 22.6-6 42.4-12.2 56.9c-3.8 8.9-8 15.2-11.8 18.9zm42.7-9.9c7.3-18.3 12-41.1 13.4-65.9l31.1 0c-4.7 27.9-21.4 51.7-44.5 65.9zm0-163.8c23.2 14.2 39.9 38 44.5 65.9l-31.1 0c-1.4-24.7-6.1-47.5-13.4-65.9zM368 192a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM145.3 208l31.1 0c1.4 24.7 6.1 47.5 13.4 65.9c-23.2-14.2-39.9-38-44.5-65.9zm31.1-32l-31.1 0c4.7-27.9 21.4-51.7 44.5-65.9c-7.3 18.3-12 41.1-13.4 65.9zm56.1-75.8c3.7-3.7 6.2-4.2 7.4-4.2s3.7 .5 7.4 4.2c3.8 3.7 8 10 11.8 18.9c6.2 14.5 10.8 34.3 12.2 56.9l-63 0c1.5-22.6 6-42.4 12.2-56.9c3.8-8.9 8-15.2 11.8-18.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBookBible (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zM208 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 112c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-112-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBookBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0l96 0 0 190.7c0 13.4 15.5 20.9 26 12.5L272 160l54 43.2c10.5 8.4 26 .9 26-12.5L352 0l32 0 32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBookJournalWhills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zm90.4-234.4l-21.2-21.2c-3 10.1-5.1 20.6-5.1 31.6c0 .2 0 .5 .1 .8s.1 .5 .1 .8L165.2 226c2.5 2.1 3.4 5.8 2.3 8.9c-1.3 3-4.1 5.1-7.5 5.1c-1.9-.1-3.8-.8-5.2-2l-23.6-20.6C142.8 267 186.9 304 240 304s97.3-37 108.9-86.6L325.3 238c-1.4 1.2-3.3 2-5.3 2c-2.2-.1-4.4-1.1-6-2.8c-1.2-1.5-1.9-3.4-2-5.2c.1-2.2 1.1-4.4 2.8-6l37.1-32.5c0-.3 0-.5 .1-.8s.1-.5 .1-.8c0-11-2.1-21.5-5.1-31.6l-21.2 21.2c-3.1 3.1-8.1 3.1-11.3 0s-3.1-8.1 0-11.2l26.4-26.5c-8.2-17-20.5-31.7-35.9-42.6c-2.7-1.9-6.2 1.4-5 4.5c8.5 22.4 3.6 48-13 65.6c-3.2 3.4-3.6 8.9-.9 12.7c9.8 14 12.7 31.9 7.5 48.5c-5.9 19.4-22 34.1-41.9 38.3l-1.4-34.3 12.6 8.6c.6 .4 1.5 .6 2.3 .6c1.5 0 2.7-.8 3.5-2s.6-2.8-.1-4L260 225.4l18-3.6c1.8-.4 3.1-2.1 3.1-4s-1.4-3.5-3.1-3.9l-18-3.7 8.5-14.3c.8-1.2 .9-2.9 .1-4.1s-2-2-3.5-2l-.1 0c-.7 .1-1.5 .3-2.1 .7l-14.1 9.6L244 87.9c-.1-2.2-1.9-3.9-4-3.9s-3.9 1.6-4 3.9l-4.6 110.8-12-8.1c-1.5-1.1-3.6-.9-5 .4s-1.6 3.4-.8 5l8.6 14.3-18 3.7c-1.8 .4-3.1 2-3.1 3.9s1.4 3.6 3.1 4l18 3.8-8.6 14.2c-.2 .6-.5 1.4-.5 2c0 1.1 .5 2.1 1.2 3c.8 .6 1.8 1 2.8 1c.7 0 1.6-.2 2.2-.6l10.4-7.1-1.4 32.8c-19.9-4.1-36-18.9-41.9-38.3c-5.1-16.6-2.2-34.4 7.6-48.5c2.7-3.9 2.3-9.3-.9-12.7c-16.6-17.5-21.6-43.1-13.1-65.5c1.2-3.1-2.3-6.4-5-4.5c-15.3 10.9-27.6 25.6-35.8 42.6l26.4 26.5c3.1 3.1 3.1 8.1 0 11.2s-8.1 3.1-11.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBookMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM208 112l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBookOpenReader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z\"},\"child\":[]}]})(props);\n};\nexport function FaBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaBookQuran (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM274.1 150.2l-8.9 21.4-23.1 1.9c-5.7 .5-8 7.5-3.7 11.2L256 199.8l-5.4 22.6c-1.3 5.5 4.7 9.9 9.6 6.9L280 217.2l19.8 12.1c4.9 3 10.9-1.4 9.6-6.9L304 199.8l17.6-15.1c4.3-3.7 2-10.8-3.7-11.2l-23.1-1.9-8.9-21.4c-2.2-5.3-9.6-5.3-11.8 0zM96 192c0 70.7 57.3 128 128 128c25.6 0 49.5-7.5 69.5-20.5c3.2-2.1 4.5-6.2 3.1-9.7s-5.2-5.6-9-4.8c-6.1 1.2-12.5 1.9-19 1.9c-52.4 0-94.9-42.5-94.9-94.9s42.5-94.9 94.9-94.9c6.5 0 12.8 .7 19 1.9c3.8 .8 7.5-1.3 9-4.8s.2-7.6-3.1-9.7C273.5 71.5 249.6 64 224 64C153.3 64 96 121.3 96 192z\"},\"child\":[]}]})(props);\n};\nexport function FaBookSkull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 43 43 0 96 0L384 0l32 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L96 512c-53 0-96-43-96-96L0 96zM64 416c0 17.7 14.3 32 32 32l256 0 0-64L96 384c-17.7 0-32 14.3-32 32zM320 112c0-35.3-35.8-64-80-64s-80 28.7-80 64c0 20.9 12.6 39.5 32 51.2l0 12.8c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-12.8c19.4-11.7 32-30.3 32-51.2zM208 96a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM134.3 209.3c-8.1-3.5-17.5 .3-21 8.4s.3 17.5 8.4 21L199.4 272l-77.7 33.3c-8.1 3.5-11.9 12.9-8.4 21s12.9 11.9 21 8.4L240 289.4l105.7 45.3c8.1 3.5 17.5-.3 21-8.4s-.3-17.5-8.4-21L280.6 272l77.7-33.3c8.1-3.5 11.9-12.9 8.4-21s-12.9-11.9-21-8.4L240 254.6 134.3 209.3z\"},\"child\":[]}]})(props);\n};\nexport function FaBookTanakh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0L64 0 352 0zm0 384L96 384l0 64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32zM138.7 208l13.9 24-27.7 0 13.9-24zm-13.9-24L97.1 232c-6.2 10.7 1.5 24 13.9 24l55.4 0 27.7 48c6.2 10.7 21.6 10.7 27.7 0l27.7-48 55.4 0c12.3 0 20-13.3 13.9-24l-27.7-48 27.7-48c6.2-10.7-1.5-24-13.9-24l-55.4 0L221.9 64c-6.2-10.7-21.6-10.7-27.7 0l-27.7 48L111 112c-12.3 0-20 13.3-13.9 24l27.7 48zm27.7 0l27.7-48 55.4 0 27.7 48-27.7 48-55.4 0-27.7-48zm0-48l-13.9 24-13.9-24 27.7 0zm41.6-24L208 88l13.9 24-27.7 0zm69.3 24l27.7 0-13.9 24-13.9-24zm13.9 72l13.9 24-27.7 0 13.9-24zm-55.4 48L208 280l-13.9-24 27.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224L64 224 64 96l128 0 0 128zM64 288l128 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderNone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderTopLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336c0-8.8 7.2-16 16-16l336 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32C35.8 32 0 67.8 0 112L0 448zm160 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm-96 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm192 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm0 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBoreHole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-17.7 0-32 14.3-32 32l0 264.6c-19.1 11.1-32 31.7-32 55.4c0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM48 128c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-80 0c-17.7 0-32 14.3-32 32l0 192c0 53-43 96-96 96s-96-43-96-96l0-192c0-17.7-14.3-32-32-32l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBottleDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C82.7 0 72 10.7 72 24s10.7 24 24 24c4.4 0 8 3.6 8 8l0 64.9c0 12.2-7.2 23.1-17.2 30.1C53.7 174.1 32 212.5 32 256l0 192c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-192c0-43.5-21.7-81.9-54.8-105c-10-7-17.2-17.9-17.2-30.1L216 56c0-4.4 3.6-8 8-8c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0s0 0 0 0s0 0 0 0L104 0s0 0 0 0s0 0 0 0L96 0zm64 382c-26.5 0-48-20.1-48-45c0-16.8 22.1-48.1 36.3-66.4c6-7.8 17.5-7.8 23.5 0C185.9 288.9 208 320.2 208 337c0 24.9-21.5 45-48 45z\"},\"child\":[]}]})(props);\n};\nexport function FaBottleWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 0l80 0c13.3 0 24 10.7 24 24l0 40L96 64l0-40c0-13.3 10.7-24 24-24zM32 167.5c0-19.5 10-37.6 26.6-47.9l15.8-9.9C88.7 100.7 105.2 96 122.1 96l75.8 0c16.9 0 33.4 4.7 47.7 13.7l15.8 9.9C278 129.9 288 148 288 167.5c0 17-7.5 32.3-19.4 42.6C280.6 221.7 288 238 288 256c0 19.1-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48s-8.4 36.3-21.7 48c13.3 11.7 21.7 28.9 21.7 48c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64c0-19.1 8.4-36.3 21.7-48C40.4 388.3 32 371.1 32 352s8.4-36.3 21.7-48C40.4 292.3 32 275.1 32 256c0-18 7.4-34.3 19.4-45.9C39.5 199.7 32 184.5 32 167.5zM96 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16zm16 112c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlFood (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192c0-35.3 28.7-64 64-64c.5 0 1.1 0 1.6 0C73 91.5 105.3 64 144 64c15 0 29 4.1 40.9 11.2C198.2 49.6 225.1 32 256 32s57.8 17.6 71.1 43.2C339 68.1 353 64 368 64c38.7 0 71 27.5 78.4 64c.5 0 1.1 0 1.6 0c35.3 0 64 28.7 64 64c0 11.7-3.1 22.6-8.6 32L8.6 224C3.1 214.6 0 203.7 0 192zm0 91.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlRice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 56c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 176l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4c0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 200c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-24-96l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 32l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlingBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58.9 42.1c3-6.1 9.6-9.6 16.3-8.7L320 64 564.8 33.4c6.7-.8 13.3 2.7 16.3 8.7l41.7 83.4c9 17.9-.6 39.6-19.8 45.1L439.6 217.3c-13.9 4-28.8-1.9-36.2-14.3L320 64 236.6 203c-7.4 12.4-22.3 18.3-36.2 14.3L37.1 170.6c-19.3-5.5-28.8-27.2-19.8-45.1L58.9 42.1zM321.1 128l54.9 91.4c14.9 24.8 44.6 36.6 72.5 28.6L576 211.6l0 167c0 22-15 41.2-36.4 46.6l-204.1 51c-10.2 2.6-20.9 2.6-31 0l-204.1-51C79 419.7 64 400.5 64 378.5l0-167L191.6 248c27.8 8 57.6-3.8 72.5-28.6L318.9 128l2.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxTissue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M92.5 0L208 0c40 0 52 24 64 48s24 48 64 48l85.2 0C436 96 448 108 448 122.8c0 3.4-.7 6.8-1.9 10L409.6 224 384 288l-256 0-16-64L64.9 35.4c-.6-2.3-.9-4.6-.9-6.9C64 12.8 76.8 0 92.5 0zM79 224l16 64-15 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 256 0 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-13.5 0 25.6-64 19.9 0c26.5 0 48 21.5 48 48l0 112L0 384 0 272c0-26.5 21.5-48 48-48l31 0zM0 416l512 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxesPacking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c0-26.5 21.5-48 48-48L592 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-210.7 0c1.8-5 2.7-10.4 2.7-16l0-242.7c18.6-6.6 32-24.4 32-45.3l0-32c0-26.5-21.5-48-48-48l-112 0 0-80zM571.3 347.3c6.2-6.2 6.2-16.4 0-22.6l-64-64c-6.2-6.2-16.4-6.2-22.6 0l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L480 310.6 480 432c0 8.8 7.2 16 16 16s16-7.2 16-16l0-121.4 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0zM0 176c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16L16 224c-8.8 0-16-7.2-16-16l0-32zm352 80l0 224c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-224 320 0zM144 320c-8.8 0-16 7.2-16 16s7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxesStacked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 0L208 0c-26.5 0-48 21.5-48 48l0 112c0 35.3 28.7 64 64 64l128 0c35.3 0 64-28.7 64-64l0-112c0-26.5-21.5-48-48-48L328 0l0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80zM64 256c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0zM352 512l160 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-40 0 0 80c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-80-40 0c-15 0-28.8 5.1-39.7 13.8c4.9 10.4 7.7 22 7.7 34.2l0 160c0 12.2-2.8 23.8-7.7 34.2C323.2 506.9 337 512 352 512z\"},\"child\":[]}]})(props);\n};\nexport function FaBraille (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96a64 64 0 1 1 128 0A64 64 0 1 1 0 96zM224 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM80 416a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 96a64 64 0 1 1 128 0A64 64 0 1 1 352 96zm240 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0A64 64 0 1 1 512 96zm64 176a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM416 272a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm0-80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm16 224a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-80 0a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 0c30.9 0 56 25.1 56 56l0 400c0 30.9-25.1 56-56 56c-28.9 0-52.7-21.9-55.7-50.1c-5.2 1.4-10.7 2.1-16.3 2.1c-35.3 0-64-28.7-64-64c0-7.4 1.3-14.6 3.6-21.2C21.4 367.4 0 338.2 0 304c0-31.9 18.7-59.5 45.8-72.3C37.1 220.8 32 207 32 192c0-30.7 21.6-56.3 50.4-62.6C80.8 123.9 80 118 80 112c0-29.9 20.6-55.1 48.3-62.1C131.3 21.9 155.1 0 184 0zM328 0c28.9 0 52.6 21.9 55.7 49.9c27.8 7 48.3 32.1 48.3 62.1c0 6-.8 11.9-2.4 17.4c28.8 6.2 50.4 31.9 50.4 62.6c0 15-5.1 28.8-13.8 39.7C493.3 244.5 512 272.1 512 304c0 34.2-21.4 63.4-51.6 74.8c2.3 6.6 3.6 13.8 3.6 21.2c0 35.3-28.7 64-64 64c-5.6 0-11.1-.7-16.3-2.1c-3 28.2-26.8 50.1-55.7 50.1c-30.9 0-56-25.1-56-56l0-400c0-30.9 25.1-56 56-56z\"},\"child\":[]}]})(props);\n};\nexport function FaBrazilianRealSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0c17.7 0 32 14.3 32 32l0 18.2c12.5 2.3 24.7 6.4 36.2 12.1l10.1 5.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-10.2-5.1c-9.9-5-20.9-7.5-32-7.5l-1.7 0c-29.8 0-53.9 24.1-53.9 53.9c0 22 13.4 41.8 33.9 50l52 20.8c44.7 17.9 74.1 61.2 74.1 109.4l0 3.4c0 51.2-33.6 94.6-80 109.2l0 21.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-19.4c-15-3.5-29.4-9.7-42.3-18.3l-23.4-15.6c-14.7-9.8-18.7-29.7-8.9-44.4s29.7-18.7 44.4-8.9L361.2 389c10.8 7.2 23.4 11 36.3 11c27.9 0 50.5-22.6 50.5-50.5l0-3.4c0-22-13.4-41.8-33.9-50l-52-20.8C317.3 257.4 288 214.1 288 165.9C288 114 321.5 70 368 54.2L368 32c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaBreadSlice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C192 32 0 64 0 192c0 35.3 28.7 64 64 64V432c0 26.5 21.5 48 48 48H400c26.5 0 48-21.5 48-48V256c35.3 0 64-28.7 64-64C512 64 320 32 256 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64s14.3 32 32 32l40 0 0 64-72 0 0 128c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96c6.3 0 12.4 .6 18.3 1.7C367.1 231.8 426.9 192 496 192c42.5 0 81.6 15.1 112 40.2l0-72.2-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM488 96l0 64-80 0 0-64 80 0zM360 96l0 64-80 0 0-64 80 0zM232 96l0 64-80 0 0-64 80 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64c0-17.7 14.3-32 32-32l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-40 0 0 64-8 0c-61.9 0-112 50.1-112 112l0 24.6c-9.9 5.8-18.2 14.1-23.8 24.1c-17.6-20-43.4-32.7-72.2-32.7c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-128 72 0 0-64L64 96C46.3 96 32 81.7 32 64zM408 96l0 64 80 0 0-64-80 0zm-48 64l0-64-80 0 0 64 80 0zM152 96l0 64 80 0 0-64-80 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBridgeWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 78.3 14.3 64 32 64l512 0c17.7 0 32 14.3 32 32l0 35.6c0 15.7-12.7 28.4-28.4 28.4c-37.3 0-67.6 30.2-67.6 67.6l0 124.9c-12.9 0-25.8 3.9-36.8 11.7c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-.5 0-128c0-53-43-96-96-96s-96 43-96 96l0 128 0 .5c-19 0-41.2-7.9-59.1-20.3c-11.1-7.8-24-11.7-36.9-11.7l0-124.9C96 190.2 65.8 160 28.4 160C12.7 160 0 147.3 0 131.6L0 96zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBridge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l40 0 0 64L0 160 0 288c53 0 96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96l0-128-72 0 0-64 40 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM456 96l0 64-80 0 0-64 80 0zM328 96l0 64-80 0 0-64 80 0zM200 96l0 64-80 0 0-64 80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcaseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zm96 152c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaBroomBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M566.6 9.4c12.5 12.5 12.5 32.8 0 45.3l-192 192 34.7 34.7c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6l-29.1 0L256 211.7l0-29.1c0-12.5 10.1-22.6 22.6-22.6c6 0 11.8 2.4 16 6.6l34.7 34.7 192-192c12.5-12.5 32.8-12.5 45.3 0zm-344 225.5L341.1 353.4c3.7 42.7-11.7 85.2-42.3 115.8C271.4 496.6 234.2 512 195.5 512L22.1 512C9.9 512 0 502.1 0 489.9c0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2c0-31.5 12.5-61.7 34.8-84l8-8c30.6-30.6 73.1-45.9 115.8-42.3zM464 352a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaBroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6c-12.5 0-22.6 10.1-22.6 22.6l0 29.1L364.3 320l29.1 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8C76.5 307.5 64 337.7 64 369.2c0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9C0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8c30.6-30.6 45.9-73.1 42.3-115.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48L0 224l0 22.4L0 256l9.6 0 364.8 0 9.6 0 0-9.6 0-22.4 0-176c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288l0 32c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-32L0 288zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBucket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 152l0 8-48 0 0-8C48 68.1 116.1 0 200 0l48 0c83.9 0 152 68.1 152 152l0 8-48 0 0-8c0-57.4-46.6-104-104-104l-48 0C142.6 48 96 94.6 96 152zM0 224c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-5.1 0L388.5 469c-2.6 24.4-23.2 43-47.7 43l-233.6 0c-24.6 0-45.2-18.5-47.7-43L37.1 256 32 256c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBugSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L477.4 348.9c1.7-9.4 2.6-19 2.6-28.9l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64.3 0c-1.1-14.1-5-27.5-11.1-39.5c.7-.6 1.4-1.2 2.1-1.9l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-.7 .7-1.3 1.4-1.9 2.1C409.2 164.1 393.1 160 376 160l-112 0c-8.3 0-16.3 1-24 2.8L38.8 5.1zM320 0c-53 0-96 43-96 96l0 3.6c0 15.7 12.7 28.4 28.4 28.4l135.1 0c15.7 0 28.4-12.7 28.4-28.4l0-3.6c0-53-43-96-96-96zM160.3 256L96 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c0 24.6 5.5 47.8 15.4 68.6c-2.2 1.3-4.2 2.9-6 4.8l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l63.1-63.1c24.5 21.8 55.8 36.2 90.3 39.6l0-143.7L166.7 227.3c-3.4 9-5.6 18.7-6.4 28.7zM336 479.2c36.6-3.6 69.7-19.6 94.8-43.8L336 360.7l0 118.5z\"},\"child\":[]}]})(props);\n};\nexport function FaBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c53 0 96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6c0-53 43-96 96-96zM41.4 105.4c12.5-12.5 32.8-12.5 45.3 0l64 64c.7 .7 1.3 1.4 1.9 2.1c14.2-7.3 30.4-11.4 47.5-11.4l112 0c17.1 0 33.2 4.1 47.5 11.4c.6-.7 1.2-1.4 1.9-2.1l64-64c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64c-.7 .7-1.4 1.3-2.1 1.9c6.2 12 10.1 25.3 11.1 39.5l64.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c0 24.6-5.5 47.8-15.4 68.6c2.2 1.3 4.2 2.9 6 4.8l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-63.1-63.1c-24.5 21.8-55.8 36.2-90.3 39.6L272 240c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 239.2c-34.5-3.4-65.8-17.8-90.3-39.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c1.9-1.9 3.9-3.4 6-4.8C101.5 367.8 96 344.6 96 320l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.3 0c1.1-14.1 5-27.5 11.1-39.5c-.7-.6-1.4-1.2-2.1-1.9l-64-64c-12.5-12.5-12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaBugs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.5 107.4l33.4-73.5c5.5-12.1 .1-26.3-11.9-31.8s-26.3-.1-31.8 11.9L128 71.7 101.9 14.1C96.4 2 82.1-3.3 70.1 2.1S52.7 21.9 58.1 33.9l33.4 73.5c-10.2 7.1-18.2 17-22.9 28.6l-17 0-4.1-20.7c-2.6-13-15.2-21.4-28.2-18.8S-2.1 111.7 .5 124.7l8 40C10.7 175.9 20.6 184 32 184l32 0 0 23.3-37.8 9.5c-9.5 2.4-16.6 10.2-17.9 19.9l-8 56c-1.9 13.1 7.2 25.3 20.4 27.2s25.3-7.2 27.2-20.4l5.7-40 18.4-4.6C82.7 274.6 103.8 288 128 288s45.3-13.4 56.1-33.2l18.4 4.6 5.7 40c1.9 13.1 14 22.2 27.2 20.4s22.2-14 20.4-27.2l-8-56c-1.4-9.7-8.5-17.5-17.9-19.9L192 207.3l0-23.3 32 0c11.4 0 21.3-8.1 23.5-19.3l8-40c2.6-13-5.8-25.6-18.8-28.2s-25.6 5.8-28.2 18.8L204.3 136l-17 0c-4.7-11.6-12.7-21.5-22.9-28.6zM496 286.5l65.6-47c10.8-7.7 13.3-22.7 5.6-33.5s-22.7-13.3-33.5-5.6l-51.4 36.8 6.1-62.9c1.3-13.2-8.4-24.9-21.6-26.2s-24.9 8.4-26.2 21.6L432.8 250c-12.3 1-24.2 5.6-34.1 13.3L384 254.8l6.8-20c4.2-12.6-2.5-26.2-15-30.4s-26.2 2.5-30.4 15l-13.1 38.6c-3.7 10.8 .8 22.8 10.7 28.5l27.7 16L359 322.7 321.5 312c-9.4-2.7-19.5 .6-25.5 8.3l-34.9 44.5c-8.2 10.4-6.4 25.5 4.1 33.7s25.5 6.4 33.7-4.1l25-31.8 18.2 5.2c-.5 22.6 11 44.7 32 56.8s45.9 11 65.2-.7l13.6 13.2-15.1 37.5c-4.9 12.3 1 26.3 13.3 31.2s26.3-1 31.2-13.3L503.5 440c3.6-9.1 1.4-19.4-5.6-26.2l-28-27.1 11.6-20.1 27.7 16c9.9 5.7 22.5 3.7 30-4.9L566.2 347c8.7-10 7.8-25.1-2.2-33.9s-25.1-7.8-33.9 2.2l-13.9 15.9-14.7-8.5c1.7-12.4-.2-25-5.5-36.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 184.2c-39.1 32.3-64 81.1-64 135.8c0 49.5 20.4 94.2 53.3 126.2C364.5 505.1 351.1 512 336 512l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm96 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6L521.4 352 432 352c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c15.1 0 28.5-6.9 37.3-17.8C340.4 462.2 320 417.5 320 368c0-54.7 24.9-103.5 64-135.8L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M243.4 2.6l-224 96c-14 6-21.8 21-18.7 35.8S16.8 160 32 160l0 8c0 13.3 10.7 24 24 24l400 0c13.3 0 24-10.7 24-24l0-8c15.2 0 28.3-10.7 31.3-25.6s-4.8-29.9-18.7-35.8l-224-96c-8-3.4-17.2-3.4-25.2 0zM128 224l-64 0 0 196.3c-.6 .3-1.2 .7-1.8 1.1l-48 32c-11.7 7.8-17 22.4-12.9 35.9S17.9 512 32 512l448 0c14.1 0 26.5-9.2 30.6-22.7s-1.1-28.1-12.9-35.9l-48-32c-.6-.4-1.2-.7-1.8-1.1L448 224l-64 0 0 192-40 0 0-192-64 0 0 192-48 0 0-192-64 0 0 192-40 0 0-192zM256 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 0c-17.7 0-32 14.3-32 32l0 480 64 0 0-320 144 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L480 32c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 88.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-30.5 12.2-58.2 32-78.4L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingNgo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM168 64l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 64 16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 24c0 13.3-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24l0-88c0-8.8 7.2-16 16-16zM304 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm-48 16c0-26.5 21.5-48 48-48s48 21.5 48 48l0 32c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-32zM61.3 71.1l34.7 52L96 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4L64 132.8 64 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 159-42.4 17L304 224l-32 0c-8.8 0-16 7.2-16 16l0 32 0 24.2 0 7.8c0 .9 .1 1.7 .2 2.6c2.3 58.1 24.1 144.8 98.7 201.5c-5.8 2.5-12.2 3.9-18.9 3.9l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM423.1 225.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingUn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM237.3 71.1l34.7 52L272 80c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM112 80l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 89.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L384 48c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM576 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM352 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaBuildingWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-96 0c-26.5 0-48-21.5-48-48L0 48zM80 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 96c-8.8 0-16 7.2-16 16zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm384 80l0 16c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0zm0 128c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zm0 112c0 44.2-35.8 80-80 80l-16 0 0-16c0-44.2 35.8-80 80-80l16 0 0 16zM512 496l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zm0-96l-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80l0 16zm0-128l0 16-16 0c-44.2 0-80-35.8-80-80l0-16 16 0c44.2 0 80 35.8 80 80zM528 32c13.3 0 24 10.7 24 24l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24zm96 64l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24s24 10.7 24 24zM456 72c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBullhorn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z\"},\"child\":[]}]})(props);\n};\nexport function FaBullseye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBurger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.1 224C45 224 32 211 32 194.9c0-1.9 .2-3.7 .6-5.6C37.9 168.3 78.8 32 256 32s218.1 136.3 223.4 157.3c.5 1.9 .6 3.7 .6 5.6c0 16.1-13 29.1-29.1 29.1L61.1 224zM144 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm240 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zM272 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM16 304c0-26.5 21.5-48 48-48l384 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L64 352c-26.5 0-48-21.5-48-48zm16 96c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 16c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M37.6 4.2C28-2.3 15.2-1.1 7 7s-9.4 21-2.8 30.5l112 163.3L16.6 233.2C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4L66.8 412.8c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1L392.3 312.2l103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8L388.9 198.7l25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7L278.8 16.6C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6l-32.3 99.6L37.6 4.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBusSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0C348.8 0 448 35.2 448 80l0 16 0 320c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32L0 96 0 80C0 35.2 99.2 0 224 0zM64 128l0 128c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM80 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0C422.4 0 512 35.2 512 80l0 16 0 32c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 160c0 17.7-14.3 32-32 32l0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32c-17.7 0-32-14.3-32-32l0-160c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32c0 0 0 0 0 0l0-32s0 0 0 0l0-16C64 35.2 153.6 0 288 0zM128 160l0 96c0 17.7 14.3 32 32 32l112 0 0-160-112 0c-17.7 0-32 14.3-32 32zM304 288l112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-112 0 0 160zM144 400a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm288 0a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM384 80c0-8.8-7.2-16-16-16L208 64c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBusinessTime (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 160 0 8.2 0c32.3-39.1 81.1-64 135.8-64c5.4 0 10.7 .2 16 .7l0-32.7c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM320 352l-96 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l296.2 0C335.1 449.6 320 410.5 320 368c0-5.4 .2-10.7 .7-16l-.7 0zm320 16a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 288c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaC (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3s155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8s221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCableCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 56a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-66.5-203.1 42c-13 2.7-25.7-5.7-28.4-18.6s5.7-25.7 18.6-28.4l232-48 232-48c13-2.7 25.7 5.7 28.4 18.6s-5.7 25.7-18.6 28.4L280 147.5l0 76.5 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0zm112 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCakeCandles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.4 5.5L61.8 47.6C58 54.1 56 61.6 56 69.2L56 72c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6 5.5C103.6 2.1 100 0 96 0s-7.6 2.1-9.6 5.5zm128 0L189.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6 5.5C231.6 2.1 228 0 224 0s-7.6 2.1-9.6 5.5zM317.8 47.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6 5.5C359.6 2.1 356 0 352 0s-7.6 2.1-9.6 5.5L317.8 47.6zM128 176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c-35.3 0-64 28.7-64 64l0 71c8.3 5.2 18.1 9 28.8 9c13.5 0 27.2-6.1 38.4-13.4c5.4-3.5 9.9-7.1 13-9.7c1.5-1.3 2.7-2.4 3.5-3.1c.4-.4 .7-.6 .8-.8l.1-.1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c3.1-3.2 7.4-4.9 11.9-4.8s8.6 2.1 11.6 5.4c0 0 0 0 0 0s0 0 0 0l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c3-3.5 7.4-5.4 12-5.4s9 2 12 5.4l.1 .1c.1 .1 .4 .4 .7 .7c.7 .7 1.7 1.7 3.1 3c2.8 2.6 6.8 6.1 11.8 9.5c10.2 7.1 23 13.1 36.3 13.1s26.1-6 36.3-13.1c5-3.5 9-6.9 11.8-9.5c1.4-1.3 2.4-2.3 3.1-3c.3-.3 .6-.6 .7-.7l.1-.1c2.9-3.4 7.1-5.3 11.6-5.4s8.7 1.6 11.9 4.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1 .1c.2 .2 .4 .4 .8 .8c.8 .7 1.9 1.8 3.5 3.1c3.1 2.6 7.5 6.2 13 9.7c11.2 7.3 24.9 13.4 38.4 13.4c10.7 0 20.5-3.9 28.8-9l0-71c0-35.3-28.7-64-64-64l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 394.6c-8.5 3.3-18.2 5.4-28.8 5.4c-22.5 0-42.4-9.9-55.8-18.6c-4.1-2.7-7.8-5.4-10.9-7.8c-2.8 2.4-6.1 5-9.8 7.5C329.8 390 310.6 400 288 400s-41.8-10-54.6-18.9c-3.5-2.4-6.7-4.9-9.4-7.2c-2.7 2.3-5.9 4.7-9.4 7.2C201.8 390 182.6 400 160 400s-41.8-10-54.6-18.9c-3.7-2.6-7-5.2-9.8-7.5c-3.1 2.4-6.8 5.1-10.9 7.8C71.2 390.1 51.3 400 28.8 400c-10.6 0-20.3-2.2-28.8-5.4L0 480c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32l0-85.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCalculator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm32 160a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM96 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM64 416c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zM192 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm64-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm32 64a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarDay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarDays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm64 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 400l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM312 376c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272zM224 248c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0 0-56c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarWeek (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zm80 64c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L80 256z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32l0 32L48 64C21.5 64 0 85.5 0 112l0 48 448 0 0-48c0-26.5-21.5-48-48-48l-48 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L160 64l0-32c0-17.7-14.3-32-32-32S96 14.3 96 32zM448 192L0 192 0 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-272z\"},\"child\":[]}]})(props);\n};\nexport function FaCameraRetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.6 121.2L271.1 96 448 96l0 96-114.8 0c-21.9-15.1-48.5-24-77.2-24s-55.2 8.9-77.2 24L64 192l0-64 128 0c9.9 0 19.7-2.3 28.6-6.8zM0 128L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L271.1 32c-9.9 0-19.7 2.3-28.6 6.8L192 64l-32 0 0-16c0-8.8-7.2-16-16-16L80 32c-8.8 0-16 7.2-16 16l0 16C28.7 64 0 92.7 0 128zM168 304a88 88 0 1 1 176 0 88 88 0 1 1 -176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCameraRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.1 64.8L202.7 96 128 96c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L426.9 64.8C420.4 45.2 402.1 32 381.4 32L258.6 32c-20.7 0-39 13.2-45.5 32.8zM448 256c0 8.8-7.2 16-16 16l-76.7 0c-6.2 0-11.3-5.1-11.3-11.3c0-3 1.2-5.9 3.3-8L371 229c-13.6-13.4-31.9-21-51-21c-19.2 0-37.7 7.6-51.3 21.3L249 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l19.7-19.7C257.4 172.7 288 160 320 160c31.8 0 62.4 12.6 85 35l23.7-23.7c2.1-2.1 5-3.3 8-3.3c6.2 0 11.3 5.1 11.3 11.3l0 76.7zM192 320c0-8.8 7.2-16 16-16l76.7 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8L269 347c13.6 13.4 31.9 21 51 21c19.2 0 37.7-7.6 51.3-21.3L391 327c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-19.7 19.7C382.6 403.3 352 416 320 416c-31.8 0-62.4-12.6-85-35l-23.7 23.7c-2.1 2.1-5 3.3-8 3.3c-6.2 0-11.3-5.1-11.3-11.3l0-76.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaCampground (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 52c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5L288 60.8 249 12c-11-13.8-31.2-16-45-5s-16 31.2-5 45l48 60L12.3 405.4C4.3 415.4 0 427.7 0 440.4L0 464c0 26.5 21.5 48 48 48l240 0 240 0c26.5 0 48-21.5 48-48l0-23.6c0-12.7-4.3-25.1-12.3-35L329 112l48-60zM288 448l-119.5 0L288 291.7 407.5 448 288 448z\"},\"child\":[]}]})(props);\n};\nexport function FaCandyCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.8 131.5c3.7-2.3 7.9-3.5 12.2-3.5c12.7 0 23 10.3 23 23l0 5.6c0 9.9-5.1 19.1-13.5 24.3L30.1 393.7C.1 412.5-9 451.9 9.7 481.9s58.2 39.1 88.2 20.4L438.4 289.5c45.8-28.6 73.6-78.8 73.6-132.8l0-5.6C512 67.6 444.4 0 361 0c-28.3 0-56 8-80.1 23L254.1 39.7c-30 18.7-39.1 58.2-20.4 88.2s58.2 39.1 88.2 20.4l26.8-16.8zM298.4 49.8c9.2-5.7 19.1-10.1 29.4-13.1L348 97.5c-5.7 1.4-11.2 3.7-16.3 6.8l-12.6 7.9L298.4 49.8zm88.5 52.7l46.2-46.2c8.5 6.5 16.1 14.1 22.6 22.6l-46.2 46.2c-5.1-9.6-13-17.5-22.6-22.6zm28.9 59.3l61.6 20.5c-2.2 10.5-5.8 20.7-10.5 30.2l-62-20.7c6.2-8.8 10.1-19.1 11-30.1zm-86.1 82.5l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zm-107.2 67l60.4 37.7-30.2 18.9-60.4-37.7 30.2-18.9zM119.3 375.7l60.4 37.7-30.2 18.9L89.1 394.6l30.2-18.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCannabis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c5.3 0 10.3 2.7 13.3 7.1c15.8 23.5 36.7 63.7 49.2 109c7.2 26.4 11.8 55.2 10.4 84c11.5-8.8 23.7-16.7 35.8-23.6c41-23.3 84.4-36.9 112.2-42.5c5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7c-9.1 15.9-19.9 31.7-32.4 46.3c27.8 6.6 52.4 17.3 67.2 25.5c5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1c-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.1c1.5 6.1-.6 12.4-5.5 16.4s-11.6 4.6-17.2 1.9L280 417.2l0 70.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.9s-7-10.3-5.5-16.4l8.3-33.1c-22.2 2.6-45 0-65.2-4.6c-28.9-6.6-54.6-17.6-69.8-26.1c-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14c14.8-8.2 39.4-18.8 67.2-25.5C78.9 296.3 68.1 280.5 59 264.6c-23.4-40.8-37.1-84-42.7-111.7c-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5c12.1 6.9 24.3 14.7 35.8 23.6c-1.4-28.7 3.1-57.6 10.4-84c12.5-45.3 33.4-85.5 49.2-109c3-4.4 8-7.1 13.3-7.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCapsules (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 144c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM0 144L0 368c0 61.9 50.1 112 112 112s112-50.1 112-112l0-178.4c1.8 19.1 8.2 38 19.8 54.8L372.3 431.7c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 113.3C391.8 61.5 321.9 49 271.3 85.2c-28 20-44.3 50.8-47.3 83l0-24.2c0-61.9-50.1-112-112-112S0 82.1 0 144zm296.6 64.2c-16-23.3-10-55.3 11.9-71c21.2-15.1 50.5-10.3 66 12.2l67 97.6L361.6 303l-65-94.8zM491 407.7c-.8 .6-1.6 1.1-2.4 1.6l4-2.8c-.5 .4-1 .8-1.6 1.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCarBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l16 0zm304 96c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-32zM80 240c0 8.8 7.2 16 16 16l96 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-96 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCarBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 8c-6.6 0-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6l35.3-32.5 9.5-35.4 10.4-38.6c8-29.9 30.5-52.1 57.9-60.9l41-59.2c11.3-16.3 26.4-28.9 43.5-37.2c-.4-.6-.8-1.2-1.3-1.8c-4.1-5.1-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74C188.4 12 182.6 8 176 8zM367.7 161.5l135.6 36.3c6.5 1.8 11.3 7.4 11.8 14.2l4.6 56.5-201.5-54 32.2-46.6c3.8-5.6 10.8-8.1 17.3-6.4zm-69.9-30l-47.9 69.3c-21.6 3-40.3 18.6-46.3 41l-10.4 38.6-16.6 61.8-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 247.3 66.3-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9L595 388l10.4-38.6c6-22.4-2.5-45.2-19.6-58.7l-6.8-84c-2.7-33.7-26.4-62-59-70.8L384.2 99.7c-32.7-8.8-67.3 4-86.5 31.8zm-17 131a24 24 0 1 1 -12.4 46.4 24 24 0 1 1 12.4-46.4zm217.9 83.2A24 24 0 1 1 545 358.1a24 24 0 1 1 -46.4-12.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCarOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zM185.8 224l140.3 0c6.8 0 12.8 4.3 15.1 10.6L360.3 288l-208.6 0 19.1-53.4c2.3-6.4 8.3-10.6 15.1-10.6zm-75.3-10.9L82.2 292.4C62.1 300.9 48 320.8 48 344l0 40 0 64 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 0-64 0-40c0-23.2-14.1-43.1-34.2-51.6l-28.3-79.3C390.1 181.3 360 160 326.2 160l-140.3 0c-33.8 0-64 21.3-75.3 53.1zM128 344a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm232 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM39 39c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L73 39c-9.4-9.4-24.6-9.4-33.9 0zm400 0L391 87c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCarRear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 192l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 80c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 256 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-56.6c19.1-11.1 32-31.7 32-55.4l0-80c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 272l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCarSide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M171.3 96L224 96l0 96-112.7 0 30.4-75.9C146.5 104 158.2 96 171.3 96zM272 192l0-96 81.2 0c9.7 0 18.9 4.4 25 12l67.2 84L272 192zm256.2 1L428.2 68c-18.2-22.8-45.8-36-75-36L171.3 32c-39.3 0-74.6 23.9-89.1 60.3L40.6 196.4C16.8 205.8 0 228.9 0 256L0 368c0 17.7 14.3 32 32 32l33.3 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l130.7 0c7.6 45.4 47.1 80 94.7 80s87.1-34.6 94.7-80l33.3 0c17.7 0 32-14.3 32-32l0-48c0-65.2-48.8-119-111.8-127zM434.7 368a48 48 0 1 1 90.5 32 48 48 0 1 1 -90.5-32zM160 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCarTunnel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-112c0-20.8 11.3-38.9 28.1-48.6l21-64.7c7.5-23.1 29-38.7 53.3-38.7l115.2 0c24.3 0 45.8 15.6 53.3 38.7l21 64.7c16.8 9.7 28.2 27.8 28.2 48.6l0 112c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-40-192 0 0 40c0 9.6-4.2 18.1-10.8 24l213.7 0zM190.8 277.5L177 320l158 0-13.8-42.5c-1.1-3.3-4.1-5.5-7.6-5.5l-115.2 0c-3.5 0-6.5 2.2-7.6 5.5zM168 408a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm200-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.2 117.4L109.1 192l293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 144 0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L96 400l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCaravan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112C0 67.8 35.8 32 80 32l336 0c88.4 0 160 71.6 160 160l0 160 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0-288 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-44.2 0-80-35.8-80-80L0 112zM320 352l128 0 0-96-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 192zM96 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128zm96 336a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 256c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaCarrot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.7 6C337.6 17 320 42.3 320 72c0 40 15.3 55.3 40 80s40 40 80 40c29.7 0 55-17.6 66-26.7c4-3.3 6-8.2 6-13.3s-2-10-6-13.2c-11.4-9.1-38.3-26.8-74-26.8c-32 0-40 8-40 8s8-8 8-40c0-35.7-17.7-62.6-26.8-74C370 2 365.1 0 360 0s-10 2-13.3 6zM244.6 136c-40 0-77.1 18.1-101.7 48.2l60.5 60.5c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-55.3-55.3 0 .1L2.2 477.9C-2 487-.1 497.8 7 505s17.9 9 27.1 4.8l134.7-62.4-52.1-52.1c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L199.7 433l100.2-46.4c46.4-21.5 76.2-68 76.2-119.2C376 194.8 317.2 136 244.6 136z\"},\"child\":[]}]})(props);\n};\nexport function FaCartArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l45.5 0c3.8 0 7.1 2.7 7.9 6.5l51.6 271c6.5 34 36.2 58.5 70.7 58.5L488 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-288.3 0c-11.5 0-21.4-8.2-23.6-19.5L170.7 288l288.5 0c32.6 0 61.1-21.8 69.5-53.3l41-152.3C576.6 57 557.4 32 531.1 32L360 32l0 102.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L312 32 120.1 32C111 12.8 91.6 0 69.5 0L24 0zM176 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm336-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCartFlatbedSuitcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l464 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-66.7 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16L144 448c-44.2 0-80-35.8-80-80L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM432 96l0-40c0-4.4-3.6-8-8-8l-80 0c-4.4 0-8 3.6-8 8l0 40 96 0zM288 96l0-40c0-30.9 25.1-56 56-56l80 0c30.9 0 56 25.1 56 56l0 40 0 224-192 0 0-224zM512 320l0-224 16 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-16 0zM240 96l16 0 0 224-16 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCartFlatbed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 44.2 35.8 80 80 80l18.7 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16c0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l66.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-464 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM192 80l0 192c0 26.5 21.5 48 48 48l320 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-96 0 0 144c0 5.9-3.2 11.3-8.5 14.1s-11.5 2.5-16.4-.8L400 163.2l-39.1 26.1c-4.9 3.3-11.2 3.6-16.4 .8s-8.5-8.2-8.5-14.1l0-144-96 0c-26.5 0-48 21.5-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCartPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM252 160c0 11 9 20 20 20l44 0 0 44c0 11 9 20 20 20s20-9 20-20l0-44 44 0c11 0 20-9 20-20s-9-20-20-20l-44 0 0-44c0-11-9-20-20-20s-20 9-20 20l0 44-44 0c-11 0-20 9-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaCartShopping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCashRegister (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C46.3 0 32 14.3 32 32l0 64c0 17.7 14.3 32 32 32l80 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 80 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L64 0zM96 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 432c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16zm48-168a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 192l17.1 0c22.1 38.3 63.5 64 110.9 64c11 0 21.8-1.4 32-4l0 4 0 32 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8L280 448l56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-223.5c0-16.1-12-29.8-28-31.8l-7.9-1c-17.5-2.2-30-18.2-27.8-35.7s18.2-30 35.7-27.8l7.9 1c48 6 84.1 46.8 84.1 95.3l0 85.3c34.4-51.7 93.2-85.8 160-85.8zm160 26.5s0 0 0 0c-10 3.5-20.8 5.5-32 5.5c-28.4 0-54-12.4-71.6-32c0 0 0 0 0 0c-3.7-4.1-7-8.5-9.9-13.2C357.3 164 352 146.6 352 128c0 0 0 0 0 0l0-96 0-20 0-1.3C352 4.8 356.7 .1 362.6 0l.2 0c3.3 0 6.4 1.6 8.4 4.2c0 0 0 0 0 .1L384 21.3l27.2 36.3L416 64l64 0 4.8-6.4L512 21.3 524.8 4.3c0 0 0 0 0-.1c2-2.6 5.1-4.2 8.4-4.2l.2 0C539.3 .1 544 4.8 544 10.7l0 1.3 0 20 0 96c0 17.3-4.6 33.6-12.6 47.6c-11.3 19.8-29.6 35.2-51.4 42.9zM432 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCediSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 34.7C101.2 81.9 32 160.9 32 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c30.9-5.2 59.2-17.7 83.2-35.8c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-13.2 9.9-28.3 17.3-44.8 21.6L256 132c16.4 4.2 31.6 11.6 44.8 21.6c14.1 10.6 34.2 7.8 44.8-6.4s7.8-34.2-6.4-44.8c-24-18-52.4-30.6-83.2-35.8L256 32zM192 132L192 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124z\"},\"child\":[]}]})(props);\n};\nexport function FaCentSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 34.7c30.9 5.2 59.2 17.7 83.2 35.8c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4C279.4 137.5 252.9 128 224 128c-70.7 0-128 57.3-128 128s57.3 128 128 128c28.9 0 55.4-9.5 76.8-25.6c14.1-10.6 34.2-7.8 44.8 6.4s7.8 34.2-6.4 44.8c-24 18-52.4 30.6-83.2 35.8l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C101.2 430.1 32 351.1 32 256s69.2-174.1 160-189.3L192 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCertificate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211 7.3C205 1 196-1.4 187.6 .8s-14.9 8.9-17.1 17.3L154.7 80.6l-62-17.5c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l17.5 62L18.1 170.6c-8.4 2.1-15 8.7-17.3 17.1S1 205 7.3 211l46.2 45L7.3 301C1 307-1.4 316 .8 324.4s8.9 14.9 17.3 17.1l62.5 15.8-17.5 62c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l62-17.5 15.8 62.5c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l45-46.2 45 46.2c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3l15.8-62.5 62 17.5c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-17.5-62 62.5-15.8c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-46.2-45 46.2-45c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-62.5-15.8 17.5-62c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1l-62 17.5L341.4 18.1c-2.1-8.4-8.7-15-17.1-17.3S307 1 301 7.3L256 53.5 211 7.3z\"},\"child\":[]}]})(props);\n};\nexport function FaChair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 48l0 208 48 0 0-197.3c23.9 13.8 40 39.7 40 69.3l0 128 48 0 0-128C384 57.3 326.7 0 256 0L192 0C121.3 0 64 57.3 64 128l0 128 48 0 0-128c0-29.6 16.1-55.5 40-69.3L152 256l48 0 0-208 48 0zM48 288c-12.1 0-23.2 6.8-28.6 17.7l-16 32c-5 9.9-4.4 21.7 1.4 31.1S20.9 384 32 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 256 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c11.1 0 21.4-5.7 27.2-15.2s6.4-21.2 1.4-31.1l-16-32C423.2 294.8 412.1 288 400 288L48 288z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboardUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-239.2 0c-11.8-25.5-29.9-47.5-52.4-64l99.6 0 0-32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 32 64 0 0-288L224 64l0 49.1C205.2 102.2 183.3 96 160 96l0-32zm0 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM133.3 352l53.3 0C260.3 352 320 411.7 320 485.3c0 14.7-11.9 26.7-26.7 26.7L26.7 512C11.9 512 0 500.1 0 485.3C0 411.7 59.7 352 133.3 352z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C60.7 32 32 60.7 32 96l0 288 64 0L96 96l384 0 0 288 64 0 0-288c0-35.3-28.7-64-64-64L96 32zM224 384l0 32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaChampagneGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.6 17.3C163 3 179.9-3.6 195 1.9L320 47.5l125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6L556.1 413l41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41l-71.1 25.9L476.8 510c-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-34-130-95.2L320 188.8l-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6 25.2 24.4 19.1 41s-24.4 25.2-41 19.1L92.2 484.1 21.1 458.2c-16.6-6.1-25.2-24.4-19.1-41s24.4-25.2 41-19.1l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8L261.6 157l13.1-57.9L199.6 71.7zm240.9 0L365.4 99.1 378.5 157l89.2-32.5L440.5 71.7z\"},\"child\":[]}]})(props);\n};\nexport function FaChargingStation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-144 16 0c22.1 0 40 17.9 40 40l0 32c0 39.8 32.2 72 72 72s72-32.2 72-72l0-123.7c32.5-10.2 56-40.5 56-76.3l0-32c0-8.8-7.2-16-16-16l-16 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-32 0 0-48c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-16 0c-8.8 0-16 7.2-16 16l0 32c0 35.8 23.5 66.1 56 76.3L472 376c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32c0-48.6-39.4-88-88-88l-16 0 0-192c0-35.3-28.7-64-64-64L96 0zM216.9 82.7c6 4 8.5 11.5 6.3 18.3l-25 74.9 57.8 0c6.7 0 12.7 4.2 15 10.4s.5 13.3-4.6 17.7l-112 96c-5.5 4.7-13.4 5.1-19.3 1.1s-8.5-11.5-6.3-18.3l25-74.9L96 208c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7l112-96c5.5-4.7 13.4-5.1 19.3-1.1z\"},\"child\":[]}]})(props);\n};\nexport function FaChartArea (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 288l288 0c17.7 0 32-14.3 32-32l0-68.2c0-7.6-2.7-15-7.7-20.8l-65.8-76.8c-12.1-14.2-33.7-15-46.9-1.8l-21 21c-10 10-26.4 9.2-35.4-1.6l-39.2-47c-12.6-15.1-35.7-15.4-48.7-.6L135.9 215c-5.1 5.8-7.9 13.3-7.9 21.1l0 84c0 17.7 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 96l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartColumn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartGantt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32zm96 64l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm160 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaChartLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaChartPie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChartSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 178.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l160-160zm96 128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L160 402.7 54.6 297.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l256-256z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckToSlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 304L96 384 96 80zm313 47c-9.4-9.4-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L409 161c9.4-9.4 9.4-24.6 0-33.9zM0 336c0-26.5 21.5-48 48-48l16 0 0 128 448 0 0-128 16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCheese (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 240.2l0 15.8L0 256c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7C418.8 32 512 125.2 512 240.2zm0 47.8l0 128c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 288l512 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBishop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C110.3 0 96 14.3 96 32c0 16.1 11.9 29.4 27.4 31.7C78.4 106.8 8 190 8 288c0 47.4 30.8 72.3 56 84.7L64 400l192 0 0-27.3c25.2-12.5 56-37.4 56-84.7c0-37.3-10.2-72.4-25.3-104.1l-99.4 99.4c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L270.8 154.6c-23.2-38.1-51.8-69.5-74.2-90.9C212.1 61.4 224 48.1 224 32c0-17.7-14.3-32-32-32L128 0zM48 432L6.6 473.4c-4.2 4.2-6.6 10-6.6 16C0 501.9 10.1 512 22.6 512l274.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L272 432 48 432z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBoard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 48 152 0c22.1 0 40 17.9 40 40c0 5.3-1 10.5-3.1 15.4L368 400 80 400 3.1 215.4C1 210.5 0 205.3 0 200c0-22.1 17.9-40 40-40l152 0 0-48-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-16c0-17.7 14.3-32 32-32zM38.6 473.4L80 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L54.6 512C42.1 512 32 501.9 32 489.4c0-6 2.4-11.8 6.6-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKnight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 48L82.7 61.3C70.7 73.3 64 89.5 64 106.5l0 132.4c0 10.7 5.3 20.7 14.2 26.6l10.6 7c14.3 9.6 32.7 10.7 48.1 3l3.2-1.6c2.6-1.3 5-2.8 7.3-4.5l49.4-37c6.6-5 15.7-5 22.3 0c10.2 7.7 9.9 23.1-.7 30.3L90.4 350C73.9 361.3 64 380 64 400l320 0 28.9-159c2.1-11.3 3.1-22.8 3.1-34.3l0-14.7C416 86 330 0 224 0L83.8 0C72.9 0 64 8.9 64 19.8c0 7.5 4.2 14.3 10.9 17.7L96 48zm24 68a20 20 0 1 1 40 0 20 20 0 1 1 -40 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l370.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L384 432 64 432 22.6 473.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChessPawn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.5 224c29.2-18.4 48.5-50.9 48.5-88c0-57.4-46.6-104-104-104S56 78.6 56 136c0 37.1 19.4 69.6 48.5 88L96 224c-17.7 0-32 14.3-32 32c0 16.5 12.5 30 28.5 31.8L80 400l160 0L227.5 287.8c16-1.8 28.5-15.3 28.5-31.8c0-17.7-14.3-32-32-32l-8.5 0zM22.6 473.4c-4.2 4.2-6.6 10-6.6 16C16 501.9 26.1 512 38.6 512l242.7 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L256 432 64 432 22.6 473.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChessQueen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a56 56 0 1 1 0 112A56 56 0 1 1 256 0zM134.1 143.8c3.3-13 15-23.8 30.2-23.8c12.3 0 22.6 7.2 27.7 17c12 23.2 36.2 39 64 39s52-15.8 64-39c5.1-9.8 15.4-17 27.7-17c15.3 0 27 10.8 30.2 23.8c7 27.8 32.2 48.3 62.1 48.3c10.8 0 21-2.7 29.8-7.4c8.4-4.4 18.9-4.5 27.6 .9c13 8 17.1 25 9.2 38L399.7 400 384 400l-40.4 0-175.1 0L128 400l-15.7 0L5.4 223.6c-7.9-13-3.8-30 9.2-38c8.7-5.3 19.2-5.3 27.6-.9c8.9 4.7 19 7.4 29.8 7.4c29.9 0 55.1-20.5 62.1-48.3zM256 224s0 0 0 0s0 0 0 0s0 0 0 0zM112 432l288 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L86.6 512C74.1 512 64 501.9 64 489.4c0-6 2.4-11.8 6.6-16L112 432z\"},\"child\":[]}]})(props);\n};\nexport function FaChessRook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 192L32 48c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 40c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-40c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 144c0 10.1-4.7 19.6-12.8 25.6L352 256l16 144L80 400 96 256 44.8 217.6C36.7 211.6 32 202.1 32 192zm176 96l32 0c8.8 0 16-7.2 16-16l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 8.8 7.2 16 16 16zM22.6 473.4L64 432l320 0 41.4 41.4c4.2 4.2 6.6 10 6.6 16c0 12.5-10.1 22.6-22.6 22.6L38.6 512C26.1 512 16 501.9 16 489.4c0-6 2.4-11.8 6.6-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 16L96 32c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 0 32L60.2 96C49.1 96 40 105.1 40 116.2c0 2.5 .5 4.9 1.3 7.3L73.8 208 72 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l4 0L60 384l136 0L180 256l4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-1.8 0 32.5-84.5c.9-2.3 1.3-4.8 1.3-7.3c0-11.2-9.1-20.2-20.2-20.2L144 96l0-32 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16zM48 416L4.8 473.6C1.7 477.8 0 482.8 0 488c0 13.3 10.7 24 24 24l208 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L208 416 48 416zm288 0l-43.2 57.6c-3.1 4.2-4.8 9.2-4.8 14.4c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-5.2-1.7-10.2-4.8-14.4L464 416l-128 0zM304 208l0 51.9c0 7.8 2.8 15.3 8 21.1L339.2 312 337 384l125.5 0-3.3-72 28.3-30.8c5.4-5.9 8.5-13.6 8.5-21.7l0-51.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 16-24 0 0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16zm80 96c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32-32 0 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"},\"child\":[]}]})(props);\n};\nexport function FaChildCombatant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 128A64 64 0 1 0 176 0a64 64 0 1 0 0 128zm-8 352l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-179.5L260.9 321c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-51.7-82.1c-17.6-27.9-48.3-44.9-81.2-44.9l-12.3 0c-33 0-63.7 16.9-81.2 44.9L36.9 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10L104 300.5 104 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM448 0L432 0 416 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9L484 400l44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3L480 160c0-11.8-6.4-22.2-16-27.7L464 16c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChildDress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 64A64 64 0 1 0 96 64a64 64 0 1 0 128 0zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.6 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2l28.7-37.8L55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"},\"child\":[]}]})(props);\n};\nexport function FaChildReaching (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64A64 64 0 1 0 128 64a64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.2 85.4s-18.7 29.7-8.9 44.4L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6c-12.6 0-24.9-2-36.6-5.8c-.9-.3-1.8-.7-2.7-.9z\"},\"child\":[]}]})(props);\n};\nexport function FaChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64a64 64 0 1 1 128 0A64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192.2L59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChildren (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0a64 64 0 1 1 0 128A64 64 0 1 1 160 0zM88 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l31.1-93.4L57.5 323.3c-10.7 14.1-30.8 16.8-44.8 6.2s-16.8-30.7-6.2-44.8L65.4 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47l58.9 77.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.6-37.8L265 378.9c3.5 10.4-4.3 21.1-15.2 21.1L232 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480 0a64 64 0 1 1 0 128A64 64 0 1 1 480 0zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5L395.1 321c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L552 300.5 552 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChurch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 46.4L183.3 210c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-260.8c0-16.9-8.8-32.5-23.3-41.2L344 142.4 344 96l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM127 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l71 71L232 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 214.1 71-71c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 409c-9.4 9.4-24.6 9.4-33.9 0L127 297z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM215 127c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-71 71L392 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-214.1 0 71 71c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L103 273c-9.4-9.4-9.4-24.6 0-33.9L215 127z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM297 385c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l71-71L120 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l214.1 0-71-71c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L409 239c9.4 9.4 9.4 24.6 0 33.9L297 385z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM385 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-71-71L280 392c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-214.1-71 71c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 103c9.4-9.4 24.6-9.4 33.9 0L385 215z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleDollarToSlot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.7 403.7c-22.1 8-45.9 12.3-70.7 12.3s-48.7-4.4-70.7-12.3l-.8-.3c-30-11-56.8-28.7-78.6-51.4C70 314.6 48 263.9 48 208C48 93.1 141.1 0 256 0S464 93.1 464 208c0 55.9-22 106.6-57.9 144c-1 1-2 2.1-3 3.1c-21.4 21.4-47.4 38.1-76.3 48.6zM256 91.9c-11.1 0-20.1 9-20.1 20.1l0 6c-5.6 1.2-10.9 2.9-15.9 5.1c-15 6.8-27.9 19.4-31.1 37.7c-1.8 10.2-.8 20 3.4 29c4.2 8.8 10.7 15 17.3 19.5c11.6 7.9 26.9 12.5 38.6 16l2.2 .7c13.9 4.2 23.4 7.4 29.3 11.7c2.5 1.8 3.4 3.2 3.7 4c.3 .8 .9 2.6 .2 6.7c-.6 3.5-2.5 6.4-8 8.8c-6.1 2.6-16 3.9-28.8 1.9c-6-1-16.7-4.6-26.2-7.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-2.2-.7-4.3-1.5-6.4-2.1c-10.5-3.5-21.8 2.2-25.3 12.7s2.2 21.8 12.7 25.3c1.2 .4 2.7 .9 4.4 1.5c7.9 2.7 20.3 6.9 29.8 9.1l0 6.4c0 11.1 9 20.1 20.1 20.1s20.1-9 20.1-20.1l0-5.5c5.3-1 10.5-2.5 15.4-4.6c15.7-6.7 28.4-19.7 31.6-38.7c1.8-10.4 1-20.3-3-29.4c-3.9-9-10.2-15.6-16.9-20.5c-12.2-8.8-28.3-13.7-40.4-17.4l-.8-.2c-14.2-4.3-23.8-7.3-29.9-11.4c-2.6-1.8-3.4-3-3.6-3.5c-.2-.3-.7-1.6-.1-5c.3-1.9 1.9-5.2 8.2-8.1c6.4-2.9 16.4-4.5 28.6-2.6c4.3 .7 17.9 3.3 21.7 4.3c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-4.4-1.2-14.4-3.2-21-4.4l0-6.3c0-11.1-9-20.1-20.1-20.1zM48 352l16 0c19.5 25.9 44 47.7 72.2 64L64 416l0 32 192 0 192 0 0-32-72.2 0c28.2-16.3 52.8-38.1 72.2-64l16 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM244.7 395.3l-112-112c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l64 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 64 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-112 112c-6.2 6.2-16.4 6.2-22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM368 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleHalfStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM116.7 244.7l112-112c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 64 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 64c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-112-112c-6.2-6.2-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleNodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9c0-44.2-35.8-80-80-80c-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128c-44.2 0-80 35.8-80 80s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2c0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleNotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCirclePause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCirclePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleRadiation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64a192 192 0 1 1 0 384 192 192 0 1 1 0-384zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM200 256c0-20.7 11.3-38.8 28-48.5l-36-62.3c-8.8-15.3-28.7-20.8-42-9c-25.6 22.6-43.9 53.3-50.9 88.1C95.7 241.5 110.3 256 128 256l72 0zm28 48.5l-36 62.4c-8.8 15.3-3.6 35.2 13.1 40.8c16 5.4 33.1 8.3 50.9 8.3s34.9-2.9 50.9-8.3c16.7-5.6 21.9-25.5 13.1-40.8l-36-62.4c-8.2 4.8-17.8 7.5-28 7.5s-19.8-2.7-28-7.5zM312 256l72 0c17.7 0 32.3-14.5 28.8-31.8c-7-34.8-25.3-65.5-50.9-88.1c-13.2-11.7-33.1-6.3-42 9l-36 62.3c16.7 9.7 28 27.8 28 48.5zm-56 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm395.3 11.3l-112 112c-4.6 4.6-11.5 5.9-17.4 3.5s-9.9-8.3-9.9-14.8l0-64-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-64c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l112 112c6.2 6.2 6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm11.3-395.3l112 112c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-64 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-64 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l112-112c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z\"},\"child\":[]}]})(props);\n};\nexport function FaCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 48c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 48-64 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144l0 96L0 464c0 26.5 21.5 48 48 48l256 0 32 0 96 0 160 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-112 0 0-144zm96 320l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 416l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM128 400c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM560 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 176l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 160c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 320l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zm304-48l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM400 64c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaClapperboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32l-86.1 0-1 1-127 127 92.1 0 1-1L453.8 32.3c-1.9-.2-3.8-.3-5.8-.3zm64 128l0-64c0-15.1-5.3-29.1-14-40l-104 104L512 160zM294.1 32l-92.1 0-1 1L73.9 160l92.1 0 1-1 127-127zM64 32C28.7 32 0 60.7 0 96l0 64 6.1 0 1-1 127-127L64 32zM512 192L0 192 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM305 273L177 401c-9.4 9.4-24.6 9.4-33.9 0L79 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L271 239c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM72 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM72 368a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm88 0c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM105.8 229.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L216 328.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM160 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM128 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-41.8 0-77.4 26.7-90.5 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-37.5 0C269.4 26.7 233.8 0 192 0zm0 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM112 192l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaClockRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-167l80 80c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-39 39L344 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 134.1-39-39c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 480C64.5 480 0 415.5 0 336c0-62.8 40.2-116.2 96.2-135.9c-.1-2.7-.2-5.4-.2-8.1c0-88.4 71.6-160 160-160c59.3 0 111 32.2 138.7 80.2C409.9 102 428.3 96 448 96c53 0 96 43 96 96c0 12.2-2.3 23.8-6.4 34.6C596 238.4 640 290.1 640 352c0 70.7-57.3 128-128 128l-368 0zm79-217c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L296 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0l-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224c0 53 43 96 96 96l47.2 0L290 202.5c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L333.7 320l18.3 0 64 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm330.1 3.6c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L177.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.2-19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMeatball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224c0 53 43 96 96 96l44.7 0c9.5-23.5 32.5-40 59.3-40c2 0 3.9 .1 5.8 .3C217.6 265.5 235.7 256 256 256s38.4 9.5 50.2 24.3c1.9-.2 3.9-.3 5.8-.3c26.9 0 49.9 16.5 59.3 40l44.7 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0c1.1-5.2 1.6-10.5 1.6-16c0-44.2-35.8-80-80-80c-24.3 0-46.1 10.9-60.8 28C256.5 24.3 219.1 0 176 0C114.1 0 64 50.1 64 112c0 7.1 .7 14.1 1.9 20.8C27.6 145.4 0 181.5 0 224zm288 96c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 1 .1 2.1 .1 3.1c-.7-.8-1.4-1.6-2.1-2.3c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c.7 .7 1.5 1.4 2.3 2.1c-1-.1-2.1-.1-3.1-.1c-17.7 0-32 14.3-32 32s14.3 32 32 32c1 0 2.1-.1 3.1-.1c-.8 .7-1.6 1.3-2.3 2.1c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0c.7-.7 1.4-1.5 2.1-2.3c-.1 1-.1 2.1-.1 3.1c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1-.1-2.1-.1-3.1c.7 .8 1.3 1.6 2.1 2.3c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3c-.7-.7-1.5-1.4-2.3-2.1c1 .1 2.1 .1 3.1 .1c17.7 0 32-14.3 32-32s-14.3-32-32-32c-1 0-2.1 .1-3.1 .1c.8-.7 1.6-1.3 2.3-2.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-.7 .7-1.4 1.5-2.1 2.3c.1-1 .1-2.1 .1-3.1zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoonRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.2 0C417 0 363.5 46.5 353.7 107.6c35.4 17.6 60.2 53.3 62.1 95.1c23.2 11 42 29.7 53.1 52.7c4 .4 8.1 .6 12.3 .6c34.9 0 66.7-13.8 89.9-36.1c5.1-4.9 6.4-12.5 3.2-18.7s-10.1-9.7-17-8.6c-4.9 .8-10 1.3-15.2 1.3c-49 0-88.4-39.3-88.4-87.4c0-32.6 18-61.1 44.9-76.1c6.1-3.4 9.3-10.5 7.8-17.4s-7.3-12-14.3-12.6c-3.6-.3-7.3-.5-10.9-.5zM367.9 383.9c44.2 0 80-35.8 80-80c0-39.3-28.4-72.1-65.8-78.7c1.2-5.6 1.9-11.3 1.9-17.2c0-44.2-35.8-80-80-80c-17 0-32.8 5.3-45.8 14.4C241.3 114.6 210.8 96 176 96c-53 0-96 43-96 96l0 1.3c-45.4 7.6-80 47.1-80 94.6c0 53 43 96 96 96l271.9 0zM85.4 420.1c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3zm96 0c-11-7.4-25.9-4.4-33.3 6.7l-32 48c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l32-48c7.4-11 4.4-25.9-6.7-33.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495.8 0c5.5 0 10.9 .2 16.3 .7c7 .6 12.8 5.7 14.3 12.5s-1.6 13.9-7.7 17.3c-44.4 25.2-74.4 73-74.4 127.8c0 81 65.5 146.6 146.2 146.6c8.6 0 17-.7 25.1-2.1c6.9-1.2 13.8 2.2 17 8.5s1.9 13.8-3.1 18.7c-34.5 33.6-81.7 54.4-133.6 54.4c-9.3 0-18.4-.7-27.4-1.9c-11.2-22.6-29.8-40.9-52.6-51.7c-2.7-58.5-50.3-105.3-109.2-106.7c-1.7-10.4-2.6-21-2.6-31.8C304 86.1 389.8 0 495.8 0zM447.9 431.9c0 44.2-35.8 80-80 80L96 511.9c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zm-6.8 52c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L89.2 372zm160 0c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3L249.2 372zm124.9 64.6L409.2 372c1.3-2.5 3.9-4 6.8-4s5.4 1.5 6.8 4l35.1 64.6c4.1 7.5 6.2 15.8 6.2 24.3l0 3c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-3c0-8.5 2.1-16.9 6.2-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudShowersHeavy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 320c-53 0-96-43-96-96c0-42.5 27.6-78.6 65.9-91.2C64.7 126.1 64 119.1 64 112C64 50.1 114.1 0 176 0c43.1 0 80.5 24.3 99.2 60c14.7-17.1 36.5-28 60.8-28c44.2 0 80 35.8 80 80c0 5.5-.6 10.8-1.6 16c.5 0 1.1 0 1.6 0c53 0 96 43 96 96s-43 96-96 96L96 320zM81.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6S-3.3 490.7 1.9 478.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm120 0c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6zm244.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6s17.8 19.3 12.6 31.5zM313.5 353.9c12.2 5.2 17.8 19.3 12.6 31.5l-48 112c-5.2 12.2-19.3 17.8-31.5 12.6s-17.8-19.3-12.6-31.5l48-112c5.2-12.2 19.3-17.8 31.5-12.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudShowersWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c38.6 0 71.9 22.8 87.2 55.7C325.7 41.1 345.8 32 368 32c38.7 0 71 27.5 78.4 64l1.6 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64s28.7-64 64-64c0-53 43-96 96-96zM140.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm327.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM252.6 292.3l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2s15.1 21.6 8.2 32.9zm103.8-32.9c11.4 6.8 15 21.6 8.2 32.9l-48 80c-6.8 11.4-21.6 15-32.9 8.2s-15.1-21.6-8.2-32.9l48-80c6.8-11.4 21.6-15.1 32.9-8.2zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSunRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l10.4 62.4c-23.3 10.8-42.9 28.4-56 50.3c-14.6-9-31.8-14.1-50.2-14.1c-53 0-96 43-96 96c0 35.5 19.3 66.6 48 83.2c.8 31.8 13.2 60.7 33.1 82.7l-56 39.2c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM208 144c13.8 0 26.7 4.4 37.1 11.9c-1.2 4.1-2.2 8.3-3 12.6c-37.9 14.6-67.2 46.6-77.8 86.4C151.8 243.1 144 226.5 144 208c0-35.3 28.7-64 64-64zm69.4 276c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm96 0c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7zm74.5-116.1c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.2 1.2c5.1 2.1 8.7 6.7 9.6 12.1l14.1 84.7 84.7 14.1c5.4 .9 10 4.5 12.1 9.6s1.5 10.9-1.6 15.4l-38.5 55c-2.2-.1-4.4-.2-6.7-.2c-23.3 0-45.1 6.2-64 17.1l0-1.1c0-53-43-96-96-96s-96 43-96 96s43 96 96 96c8.1 0 15.9-1 23.4-2.9c-36.6 18.1-63.3 53.1-69.8 94.9l-24.4 17c-4.5 3.2-10.3 3.8-15.4 1.6s-8.7-6.7-9.6-12.1L98.1 317.9 13.4 303.8c-5.4-.9-10-4.5-12.1-9.6s-1.5-10.9 1.6-15.4L52.5 208 2.9 137.2c-3.2-4.5-3.8-10.3-1.6-15.4s6.7-8.7 12.1-9.6L98.1 98.1l14.1-84.7c.9-5.4 4.5-10 9.6-12.1s10.9-1.5 15.4 1.6L208 52.5 278.8 2.9c4.5-3.2 10.3-3.8 15.4-1.6zM144 208a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM639.9 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96c0-47.6 34.6-87 80-94.6l0-1.3c0-53 43-96 96-96c34.9 0 65.4 18.6 82.2 46.4c13-9.1 28.8-14.4 45.8-14.4c44.2 0 80 35.8 80 80c0 5.9-.6 11.7-1.9 17.2c37.4 6.7 65.8 39.4 65.8 78.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z\"},\"child\":[]}]})(props);\n};\nexport function FaClover (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.6 49.9C205.1 38.5 189.5 32 173.3 32C139.4 32 112 59.4 112 93.3l0 4.9c0 12 3.3 23.7 9.4 34l18.8 31.3c1.1 1.8 1.2 3.1 1 4.2c-.2 1.2-.8 2.5-2 3.6s-2.4 1.8-3.6 2c-1 .2-2.4 .1-4.2-1l-31.3-18.8c-10.3-6.2-22-9.4-34-9.4l-4.9 0C27.4 144 0 171.4 0 205.3c0 16.2 6.5 31.8 17.9 43.3l1.2 1.2c3.4 3.4 3.4 9 0 12.4l-1.2 1.2C6.5 274.9 0 290.5 0 306.7C0 340.6 27.4 368 61.3 368l4.9 0c12 0 23.7-3.3 34-9.4l31.3-18.8c1.8-1.1 3.1-1.2 4.2-1c1.2 .2 2.5 .8 3.6 2s1.8 2.4 2 3.6c.2 1 .1 2.4-1 4.2l-18.8 31.3c-6.2 10.3-9.4 22-9.4 34l0 4.9c0 33.8 27.4 61.3 61.3 61.3c16.2 0 31.8-6.5 43.3-17.9l1.2-1.2c3.4-3.4 9-3.4 12.4 0l1.2 1.2c11.5 11.5 27.1 17.9 43.3 17.9c33.8 0 61.3-27.4 61.3-61.3l0-4.9c0-12-3.3-23.7-9.4-34l-18.8-31.3c-1.1-1.8-1.2-3.1-1-4.2c.2-1.2 .8-2.5 2-3.6s2.4-1.8 3.6-2c1-.2 2.4-.1 4.2 1l31.3 18.8c10.3 6.2 22 9.4 34 9.4l4.9 0c33.8 0 61.3-27.4 61.3-61.3c0-16.2-6.5-31.8-17.9-43.3l-1.2-1.2c-3.4-3.4-3.4-9 0-12.4l1.2-1.2c11.5-11.5 17.9-27.1 17.9-43.3c0-33.8-27.4-61.3-61.3-61.3l-4.9 0c-12 0-23.7 3.3-34 9.4l-31.3 18.8c-1.8 1.1-3.1 1.2-4.2 1c-1.2-.2-2.5-.8-3.6-2s-1.8-2.4-2-3.6c-.2-1-.1-2.4 1-4.2l18.8-31.3c6.2-10.3 9.4-22 9.4-34l0-4.9C336 59.4 308.6 32 274.7 32c-16.2 0-31.8 6.5-43.3 17.9l-1.2 1.2c-3.4 3.4-9 3.4-12.4 0l-1.2-1.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 87.8c18.8-10.9 40.7-17.1 64-17.1l96 0c35.3 0 64-28.7 64-64l0-6.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 6.7c0 70.7-57.3 128-128 128l-96 0c-35.3 0-64 28.7-64 64l0 6.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-6.7 0-198.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C462 361 397.4 416 320 416s-142-55-156.8-128L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l131.2 0C178 151 242.6 96 320 96s142 55 156.8 128L608 224c17.7 0 32 14.3 32 32s-14.3 32-32 32l-131.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeCompare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 488c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1s14.2 12.4 14.2 21.9l0 40 16 0c35.3 0 64-28.7 64-64l0-166.7C371.7 141 352 112.8 352 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L464 320c0 70.7-57.3 128-128 128l-16 0 0 40zM456 80a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 24c0-9.5 5.6-18.1 14.2-21.9s18.8-2.3 25.8 4.1l80 72c5.1 4.6 7.9 11 7.9 17.8s-2.9 13.3-7.9 17.8l-80 72c-7 6.3-17.2 7.9-25.8 4.1s-14.2-12.4-14.2-21.9l0-40-16 0c-35.3 0-64 28.7-64 64l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L48 192c0-70.7 57.3-128 128-128l16 0 0-40zM56 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeFork (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 38.7c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-38.7C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 38.7c0 53-43 96-96 96l-48 0 0 70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-48 0c-53 0-96-43-96-96l0-38.7C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2c0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48c44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodePullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.8 2.1C314.4 5.9 320 14.5 320 24l0 40 16 0c70.7 0 128 57.3 128 128l0 166.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L400 192c0-35.3-28.7-64-64-64l-16 0 0 40c0 9.5-5.6 18.1-14.2 21.9s-18.8 2.3-25.8-4.1l-80-72c-5.1-4.6-7.9-11-7.9-17.8s2.9-13.3 7.9-17.8l80-72c7-6.3 17.2-7.9 25.8-4.1zM104 80A24 24 0 1 0 56 80a24 24 0 1 0 48 0zm8 73.3l0 205.3c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80c0 32.8-19.7 61-48 73.3zM104 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm328 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCoins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z\"},\"child\":[]}]})(props);\n};\nexport function FaColonSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255 39.8c4.3-17.1-6.1-34.5-23.3-38.8S197.2 7.1 193 24.2L181.9 68.6C96.1 87.8 32 164.4 32 256c0 58.1 25.8 110.2 66.7 145.4L81 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l13-52.1c9 3.4 18.4 6.2 28 8.2L177 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l10.4-41.4c33.4-4.4 64.1-17.4 89.8-36.7c14.1-10.6 17-30.7 6.4-44.8s-30.7-17-44.8-6.4c-10.2 7.7-21.7 13.9-34 18.3L321 160c9.4-.3 18.5-4.7 24.6-12.8c10.6-14.1 7.8-34.2-6.4-44.8c-1.1-.8-2.2-1.6-3.3-2.4L351 39.8c4.3-17.1-6.1-34.5-23.3-38.8S293.2 7.1 289 24.2L277.2 71.5c-9.3-2.7-18.8-4.6-28.6-5.9L255 39.8zM163.2 143.3L117.3 326.8C103.9 306.5 96 282.2 96 256c0-48.7 27.2-91 67.2-112.7zm8.6 229.5l61.1-244.6c9.9 .7 19.5 2.5 28.7 5.3l-62 248.1c-9.7-1.9-19-4.8-27.8-8.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zm20-312l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c0 0 0 0 0 0c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM224 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L512.9 376.7C552.2 340.2 576 292.3 576 240C576 125.1 461.4 32 320 32c-67.7 0-129.3 21.4-175.1 56.3L38.8 5.1zm385.2 425L82.9 161.3C70.7 185.6 64 212.2 64 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c37 0 72.3-6.4 104.1-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentSms (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM96 212.8c0-20.3 16.5-36.8 36.8-36.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.3 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L112 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6C102.2 236.7 96 225.2 96 212.8zM372.8 176l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-2.7 0-4.8 2.2-4.8 4.8c0 1.6 .8 3.1 2.2 4l29.4 19.6c10.2 6.8 16.4 18.3 16.4 30.7c0 20.3-16.5 36.8-36.8 36.8L352 304c-8.8 0-16-7.2-16-16s7.2-16 16-16l27.2 0c2.7 0 4.8-2.2 4.8-4.8c0-1.6-.8-3.1-2.2-4l-29.4-19.6c-10.2-6.8-16.4-18.3-16.4-30.7c0-20.3 16.5-36.8 36.8-36.8zm-152 6.4L256 229.3l35.2-46.9c4.1-5.5 11.3-7.8 17.9-5.6s10.9 8.3 10.9 15.2l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-19.2 25.6c-3 4-7.8 6.4-12.8 6.4s-9.8-2.4-12.8-6.4L224 240l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-6.9 4.4-13 10.9-15.2s13.7 .1 17.9 5.6z\"},\"child\":[]}]})(props);\n};\nexport function FaComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentsDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 176c0 97.2-93.1 176-208 176c-38.2 0-73.9-8.7-104.7-23.9c-7.5 4-16 7.9-25.2 11.4C59.8 346.4 37.8 352 16 352c-6.9 0-13.1-4.5-15.2-11.1s.2-13.8 5.8-17.9c0 0 0 0 0 0s0 0 0 0l.2-.2c.2-.2 .6-.4 1.1-.8c1-.8 2.5-2 4.3-3.7c3.6-3.3 8.5-8.1 13.3-14.3c5.5-7 10.7-15.4 14.2-24.7C14.7 250.3 0 214.6 0 176C0 78.8 93.1 0 208 0S416 78.8 416 176zM231.5 383C348.9 372.9 448 288.3 448 176c0-5.2-.2-10.4-.6-15.5C555.1 167.1 640 243.2 640 336c0 38.6-14.7 74.3-39.6 103.4c3.5 9.4 8.7 17.7 14.2 24.7c4.8 6.2 9.7 11 13.3 14.3c1.8 1.6 3.3 2.9 4.3 3.7c.5 .4 .9 .7 1.1 .8l.2 .2s0 0 0 0s0 0 0 0c5.6 4.1 7.9 11.3 5.8 17.9c-2.1 6.6-8.3 11.1-15.2 11.1c-21.8 0-43.8-5.6-62.1-12.5c-9.2-3.5-17.8-7.4-25.2-11.4C505.9 503.3 470.2 512 432 512c-95.6 0-176.2-54.6-200.5-129zM228 72c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7L228 72z\"},\"child\":[]}]})(props);\n};\nexport function FaComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCompactDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zM96 240c0-35 17.5-71.1 45.2-98.8S205 96 240 96c8.8 0 16-7.2 16-16s-7.2-16-16-16c-45.4 0-89.2 22.3-121.5 54.5S64 194.6 64 240c0 8.8 7.2 16 16 16s16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCompassDrafting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96c0 14.3-3.1 27.9-8.8 40.2L396 227.4c-23.7 25.3-54.2 44.1-88.5 53.6L256 192c0 0 0 0 0 0s0 0 0 0l-68 117.5c21.5 6.8 44.3 10.5 68.1 10.5c70.7 0 133.8-32.7 174.9-84c11.1-13.8 31.2-16 45-5s16 31.2 5 45C428.1 341.8 347 384 256 384c-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7C53.7 301.6 41.8 289.3 31.2 276c-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2c0-53 43-96 96-96s96 43 96 96zm21 297.9c32.6-12.8 62.5-30.8 88.9-52.9l43.7 75.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9L373 393.9zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCompress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaComputerMouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192l176 0L176 0 160 0C71.6 0 0 71.6 0 160l0 32zm0 32L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-128-192 0L0 224zm384-32l0-32C384 71.6 312.4 0 224 0L208 0l0 192 176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaComputer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 96l0 224L64 320 64 96l320 0zM64 32C28.7 32 0 60.7 0 96L0 320c0 35.3 28.7 64 64 64l117.3 0-10.7 32L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-74.7 0-10.7-32L384 384c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L64 32zm464 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0zm16 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-16 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCookieBite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9c-.9-5.3-5.3-9.3-10.6-10.1c-51.5-8.2-92.8-47.1-104.5-97.4c-1.8-7.6-8-13.4-15.7-14.6c-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCookie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c31.2 31.2 81.9 31.2 113.1 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-50 50-131 50-181 0s-50-131 0-181s131-50 181 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-31.2-31.2-81.9-31.2-113.1 0s-31.2 81.9 0 113.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCouch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 160C64 89.3 121.3 32 192 32l256 0c70.7 0 128 57.3 128 128l0 33.6c-36.5 7.4-64 39.7-64 78.4l0 48-384 0 0-48c0-38.7-27.5-71-64-78.4L64 160zM544 272c0-20.9 13.4-38.7 32-45.3c5-1.8 10.4-2.7 16-2.7c26.5 0 48 21.5 48 48l0 176c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L96 448c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 272c0-26.5 21.5-48 48-48c5.6 0 11 1 16 2.7c18.6 6.6 32 24.4 32 45.3l0 48 0 32 32 0 384 0 32 0 0-32 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 224l0 32 0 160c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21c22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L272 64l-16 0-64 0-48 0C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4C46.2 320 72 294.2 72 262.4l0-6.4 0-32 0-40c0-24.3 12.1-45.8 30.5-58.9C98.3 135.9 96 147.7 96 160l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16c0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6c0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96l0 32 576 0 0-32c0-35.3-28.7-64-64-64L64 32zM576 224L0 224 0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192zM112 352l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCropSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-224 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64L160 64l0 64 224 0 0 352z\"},\"child\":[]}]})(props);\n};\nexport function FaCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 160 64l0 64 178.7 0L128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l224 0 0-64-178.7 0L384 173.3 384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCross (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCrosshairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c17.7 0 32 14.3 32 32l0 10.4c93.7 13.9 167.7 88 181.6 181.6l10.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.4 0c-13.9 93.7-88 167.7-181.6 181.6l0 10.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-10.4C130.3 455.7 56.3 381.7 42.4 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l10.4 0C56.3 130.3 130.3 56.3 224 42.4L224 32c0-17.7 14.3-32 32-32zM107.4 288c12.5 58.3 58.4 104.1 116.6 116.6l0-20.6c0-17.7 14.3-32 32-32s32 14.3 32 32l0 20.6c58.3-12.5 104.1-58.4 116.6-116.6L384 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l20.6 0C392.1 165.7 346.3 119.9 288 107.4l0 20.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-20.6C165.7 119.9 119.9 165.7 107.4 224l20.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-20.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 0c-48.6 0-88 39.4-88 88l0 29.2L12.5 390.6c-14 10.8-16.6 30.9-5.9 44.9s30.9 16.6 44.9 5.9L126.1 384l133.1 0 46.6 113.1c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3L311.1 384l40.9 0c1.1 0 2.1 0 3.2 0l46.6 113.2c5 12.3 19.1 18.1 31.3 13.1s18.1-19.1 13.1-31.3l-42-102C484.9 354.1 544 280 544 192l0-64 0-8 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4C629 52 603.4 32 574 32l-50.1 0C507.7 12.5 483.3 0 456 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309 106c11.4-7 19-19.7 19-34c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 14.4 7.6 27 19 34L209.7 220.6c-9.1 18.2-32.7 23.4-48.6 10.7L72 160c5-6.7 8-15 8-24c0-22.1-17.9-40-40-40S0 113.9 0 136s17.9 40 40 40c.2 0 .5 0 .7 0L86.4 427.4c5.5 30.4 32 52.6 63 52.6l277.2 0c30.9 0 57.4-22.1 63-52.6L535.3 176c.2 0 .5 0 .7 0c22.1 0 40-17.9 40-40s-17.9-40-40-40s-40 17.9-40 40c0 9 3 17.3 8 24l-89.1 71.3c-15.9 12.7-39.5 7.5-48.6-10.7L309 106z\"},\"child\":[]}]})(props);\n};\nexport function FaCrutch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.4 9.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0zm-96 144l-34.8 34.8c-12.9 12.9-21.9 29.2-25.8 47.1L116.8 342.9c-1.3 5.9-4.3 11.4-8.6 15.7L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l98.8-98.8c4.3-4.3 9.7-7.3 15.7-8.6l107.6-23.9c17.8-4 34.1-12.9 47.1-25.8l34.7-34.7c0 0 .1-.1 .1-.1s.1-.1 .1-.1l74.6-74.6-45.3-45.3L336 242.7 269.3 176l52.1-52.1L276.1 78.6l-74.7 74.7zM224 221.3L290.7 288l-12.2 12.2c-4.3 4.3-9.7 7.3-15.7 8.6l-76.7 17 17-76.7c1.3-5.9 4.3-11.4 8.6-15.7L224 221.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCruzeiroSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 256c0-88.4 71.6-160 160-160c41 0 78.3 15.4 106.7 40.7c13.2 11.8 33.4 10.7 45.2-2.5s10.7-33.4-2.5-45.2c-39.6-35.5-92-57-149.3-57C132.3 32 32 132.3 32 256s100.3 224 224 224c57.4 0 109.7-21.6 149.3-57c13.2-11.8 14.3-32 2.5-45.2s-32-14.3-45.2-2.5C334.3 400.6 297 416 256 416l0-96 0-8.7c0-12.8 10.4-23.3 23.3-23.3c4.6 0 9.1 1.4 12.9 3.9l10.1 6.7c14.7 9.8 34.6 5.8 44.4-8.9s5.8-34.6-8.9-44.4l-10.1-6.7c-14.3-9.6-31.2-14.7-48.4-14.7c-12.4 0-24.2 2.6-34.9 7.3c-5.5-4.5-12.6-7.3-20.3-7.3c-17.7 0-32 14.3-32 32l0 55.3 0 8.7 0 82.7C135.5 378 96 321.6 96 256z\"},\"child\":[]}]})(props);\n};\nexport function FaCube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z\"},\"child\":[]}]})(props);\n};\nexport function FaCubesStacked (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM82.7 207c-15.3 8.8-20.5 28.4-11.7 43.7l32 55.4c8.8 15.3 28.4 20.5 43.7 11.7l55.4-32c15.3-8.8 20.5-28.4 11.7-43.7l-32-55.4c-8.8-15.3-28.4-20.5-43.7-11.7L82.7 207zM288 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM160 384l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zM32 352c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCubes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.8 48.6l78.4 29.7L288 109.5 206.8 78.3l78.4-29.7c1.8-.7 3.8-.7 5.7 0zM136 92.5l0 112.2c-1.3 .4-2.6 .8-3.9 1.3l-96 36.4C14.4 250.6 0 271.5 0 294.7L0 413.9c0 22.2 13.1 42.3 33.5 51.3l96 42.2c14.4 6.3 30.7 6.3 45.1 0L288 457.5l113.5 49.9c14.4 6.3 30.7 6.3 45.1 0l96-42.2c20.3-8.9 33.5-29.1 33.5-51.3l0-119.1c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-1.3-.5-2.6-.9-3.9-1.3l0-112.2c0-23.3-14.4-44.1-36.1-52.4l-96-36.4c-12.8-4.8-26.9-4.8-39.7 0l-96 36.4C150.4 48.4 136 69.3 136 92.5zM392 210.6l-82.4 31.2 0-89.2L392 121l0 89.6zM154.8 250.9l78.4 29.7L152 311.7 70.8 280.6l78.4-29.7c1.8-.7 3.8-.7 5.7 0zm18.8 204.4l0-100.5L256 323.2l0 95.9-82.4 36.2zM421.2 250.9c1.8-.7 3.8-.7 5.7 0l78.4 29.7L424 311.7l-81.2-31.1 78.4-29.7zM523.2 421.2l-77.6 34.1 0-100.5L528 323.2l0 90.7c0 3.2-1.9 6-4.8 7.3z\"},\"child\":[]}]})(props);\n};\nexport function FaD (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l96 0c123.7 0 224 100.3 224 224s-100.3 224-224 224l-96 0c-35.3 0-64-28.7-64-64L0 96zm160 0L64 96l0 320 96 0c88.4 0 160-71.6 160-160s-71.6-160-160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80l0 48c0 44.2-100.3 80-224 80S0 172.2 0 128L0 80C0 35.8 100.3 0 224 0S448 35.8 448 80zM393.2 214.7c20.8-7.4 39.9-16.9 54.8-28.6L448 288c0 44.2-100.3 80-224 80S0 332.2 0 288L0 186.1c14.9 11.8 34 21.2 54.8 28.6C99.7 230.7 159.5 240 224 240s124.3-9.3 169.2-25.3zM0 346.1c14.9 11.8 34 21.2 54.8 28.6C99.7 390.7 159.5 400 224 400s124.3-9.3 169.2-25.3c20.8-7.4 39.9-16.9 54.8-28.6l0 85.9c0 44.2-100.3 80-224 80S0 476.2 0 432l0-85.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDeleteLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM271 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDemocrat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32c0-8.9 3.8-20.9 6.2-27.3C71.2 1.8 74 0 77 0c1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1C175.2 .7 177.1 0 179 0c3 0 5.8 1.8 6.8 4.7c2.4 6.5 6.2 18.4 6.2 27.3c0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8L480 160l32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7c0-12.1 4.1-23.8 11.7-33.3L87.6 74.6C78.1 67.4 64 53.2 64 32zM448 352l96 0 0 64 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64 0-64 96 0 160 0zM260.9 210.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.3-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5zM368.1 208c-2 0-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5c-.9-1.8-2.8-2.9-4.8-2.9zm116.8 2.9c-.9-1.8-2.8-2.9-4.8-2.9s-3.9 1.1-4.8 2.9l-10.5 20.5-23.5 3.3c-2 .3-3.7 1.6-4.3 3.5s-.1 3.9 1.3 5.3l17 16-4 22.6c-.3 1.9 .5 3.9 2.1 5s3.8 1.3 5.6 .4l21-10.7 21 10.7c1.8 .9 4 .8 5.6-.4s2.5-3.1 2.1-5l-4-22.6 17-16c1.5-1.4 2-3.4 1.4-5.3s-2.3-3.2-4.3-3.5l-23.5-3.3-10.5-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDesktop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 224L64 288 64 64l448 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDharmachakra (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.5 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.5-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramNext (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 160c0 35.3-28.7 64-64 64l-168 0 0 64 46.1 0c21.4 0 32.1 25.9 17 41L273 399c-9.4 9.4-24.6 9.4-33.9 0L169 329c-15.1-15.1-4.4-41 17-41l46.1 0 0-64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 64zM448 416l0-64-82.7 0 .4-.4c18.4-18.4 20.4-43.7 11-63.6l71.3 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l71.3 0c-9.4 19.9-7.4 45.2 11 63.6l.4 .4L64 352l0 64 146.7 0 5.7 5.7c21.9 21.9 57.3 21.9 79.2 0l5.7-5.7L448 416z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramPredecessor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 416l0-64L64 352l0 64 384 0zm0 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM288 160c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l144 0 16 0 144 0c44.2 0 80 35.8 80 80l0 16 38.1 0c21.4 0 32.1 25.9 17 41L433 239c-9.4 9.4-24.6 9.4-33.9 0L329 169c-15.1-15.1-4.4-41 17-41l38.1 0 0-16c0-8.8-7.2-16-16-16l-80 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramProject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagramSuccessor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 416l0-64c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64zM64 160l0-64 144 0 16 0 0 64L64 160zm224 0l0-64 80 0c8.8 0 16 7.2 16 16l0 16-38.1 0c-21.4 0-32.1 25.9-17 41L399 239c9.4 9.4 24.6 9.4 33.9 0L503 169c15.1-15.1 4.4-41-17-41L448 128l0-16c0-44.2-35.8-80-80-80L224 32l-16 0L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiamondTurnRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M227.7 11.7c15.6-15.6 40.9-15.6 56.6 0l216 216c15.6 15.6 15.6 40.9 0 56.6l-216 216c-15.6 15.6-40.9 15.6-56.6 0l-216-216c-15.6-15.6-15.6-40.9 0-56.6l216-216zm87.6 137c-4.6-4.6-11.5-5.9-17.4-3.5s-9.9 8.3-9.9 14.8l0 56-64 0c-35.3 0-64 28.7-64 64l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-8.8 7.2-16 16-16l64 0 0 56c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l80-80c6.2-6.2 6.2-16.4 0-22.6l-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaDiamond (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.3 11.7c-15.6-15.6-40.9-15.6-56.6 0l-216 216c-15.6 15.6-15.6 40.9 0 56.6l216 216c15.6 15.6 40.9 15.6 56.6 0l216-216c15.6-15.6 15.6-40.9 0-56.6l-216-216z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.7 125.8l53.2 31.9c7.8 4.7 17.8 2 22.2-5.9L201.6 12.1c3-5.4-.9-12.1-7.1-12.1c-1.6 0-3.2 .5-4.6 1.4L47.9 98.8c-9.6 6.6-9.2 20.9 .8 26.9zM16 171.7l0 123.5c0 8 10.4 11 14.7 4.4l60-92c5-7.6 2.6-17.8-5.2-22.5L40.2 158C29.6 151.6 16 159.3 16 171.7zM310.4 12.1l77.6 139.6c4.4 7.9 14.5 10.6 22.2 5.9l53.2-31.9c10-6 10.4-20.3 .8-26.9L322.1 1.4c-1.4-.9-3-1.4-4.6-1.4c-6.2 0-10.1 6.7-7.1 12.1zM496 171.7c0-12.4-13.6-20.1-24.2-13.7l-45.3 27.2c-7.8 4.7-10.1 14.9-5.2 22.5l60 92c4.3 6.7 14.7 3.6 14.7-4.4l0-123.5zm-49.3 246L286.1 436.6c-8.1 .9-14.1 7.8-14.1 15.9l0 52.8c0 3.7 3 6.8 6.8 6.8c.8 0 1.6-.1 2.4-.4l172.7-64c6.1-2.2 10.1-8 10.1-14.5c0-9.3-8.1-16.5-17.3-15.4zM233.2 512c3.7 0 6.8-3 6.8-6.8l0-52.6c0-8.1-6.1-14.9-14.1-15.9l-160.6-19c-9.2-1.1-17.3 6.1-17.3 15.4c0 6.5 4 12.3 10.1 14.5l172.7 64c.8 .3 1.6 .4 2.4 .4zM41.7 382.9l170.9 20.2c7.8 .9 13.4-7.5 9.5-14.3l-85.7-150c-5.9-10.4-20.7-10.8-27.3-.8L30.2 358.2c-6.5 9.9-.3 23.3 11.5 24.7zm439.6-24.8L402.9 238.1c-6.5-10-21.4-9.6-27.3 .8L290.2 388.5c-3.9 6.8 1.6 15.2 9.5 14.3l170.1-20c11.8-1.4 18-14.7 11.5-24.6zm-216.9 11l78.4-137.2c6.1-10.7-1.6-23.9-13.9-23.9l-145.7 0c-12.3 0-20 13.3-13.9 23.9l78.4 137.2c3.7 6.4 13 6.4 16.7 0zM174.4 176l163.2 0c12.2 0 19.9-13.1 14-23.8l-80-144c-2.8-5.1-8.2-8.2-14-8.2l-3.2 0c-5.8 0-11.2 3.2-14 8.2l-80 144c-5.9 10.7 1.8 23.8 14 23.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD6 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201 10.3c14.3-7.8 31.6-7.8 46 0L422.3 106c5.1 2.8 8.3 8.2 8.3 14s-3.2 11.2-8.3 14L231.7 238c-4.8 2.6-10.5 2.6-15.3 0L25.7 134c-5.1-2.8-8.3-8.2-8.3-14s3.2-11.2 8.3-14L201 10.3zM23.7 170l176 96c5.1 2.8 8.3 8.2 8.3 14l0 216c0 5.6-3 10.9-7.8 13.8s-10.9 3-15.8 .3L25 423.1C9.6 414.7 0 398.6 0 381L0 184c0-5.6 3-10.9 7.8-13.8s10.9-3 15.8-.3zm400.7 0c5-2.7 11-2.6 15.8 .3s7.8 8.1 7.8 13.8l0 197c0 17.6-9.6 33.7-25 42.1L263.7 510c-5 2.7-11 2.6-15.8-.3s-7.8-8.1-7.8-13.8l0-216c0-5.9 3.2-11.2 8.3-14l176-96z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFour (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceOne (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceSix (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceThree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceTwo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M274.9 34.3c-28.1-28.1-73.7-28.1-101.8 0L34.3 173.1c-28.1 28.1-28.1 73.7 0 101.8L173.1 413.7c28.1 28.1 73.7 28.1 101.8 0L413.7 274.9c28.1-28.1 28.1-73.7 0-101.8L274.9 34.3zM200 224a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM96 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 376a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM352 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM224 120a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm96 328c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-114.3 0c11.6 36 3.1 77-25.4 105.5L320 413.8l0 34.2zM480 328a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaDisease (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M236.4 61.4L227 75.5c-21.3 32-59.4 48.5-97.3 42.1l-59.6-9.9C33.4 101.6 0 129.9 .1 167.1c0 15.9 6.4 31.2 17.6 42.5l29.2 29.2c11 11 17.2 25.9 17.2 41.5c0 15.8-6.4 30.9-17.7 42L33.3 335.1C22.2 345.9 16 360.7 16 376.2c0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6l10 0c27.2 0 53.7 9.3 75 26.3L287.8 467c10.5 8.4 23.6 13 37 13c32.7 0 59.3-26.5 59.3-59.3l0-25.2c0-34.9 21.4-66.2 53.9-78.8l36.9-14.3c22.4-8.7 37.2-30.3 37.2-54.3c0-28.1-20.1-52.3-47.8-57.3l-28-5.1c-36.5-6.7-65.4-34.5-73.6-70.7l-7.1-31.5C348.9 53.4 322.1 32 291.3 32c-22 0-42.6 11-54.9 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm0 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDisplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l176 0-10.7 32L160 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-69.3 0L336 416l176 0c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0zM512 64l0 288L64 352 64 64l448 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 320a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM400 288c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDna (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0c17.7 0 32 14.3 32 32c0 59.8-30.3 107.5-69.4 146.6c-28 28-62.5 53.5-97.3 77.4l-2.5 1.7c-11.9 8.1-23.8 16.1-35.5 23.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l-1.6 1c-6 4-11.9 7.9-17.8 11.9c-20.9 14-40.8 27.7-59.3 41.5l118.5 0c-9.8-7.4-20.1-14.7-30.7-22.1l7-4.7 3-2c15.1-10.1 30.9-20.6 46.7-31.6c25 18.1 48.9 37.3 69.4 57.7C417.7 372.5 448 420.2 448 480c0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-59.8 30.3-107.5 69.4-146.6c28-28 62.5-53.5 97.3-77.4c-34.8-23.9-69.3-49.3-97.3-77.4C30.3 139.5 0 91.8 0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l320 0c0-17.7 14.3-32 32-32zM338.6 384l-229.2 0c-10.1 10.6-18.6 21.3-25.5 32l280.2 0c-6.8-10.7-15.3-21.4-25.5-32zM109.4 128l229.2 0c10.1-10.7 18.6-21.3 25.5-32L83.9 96c6.8 10.7 15.3 21.3 25.5 32zm55.4 48c18.4 13.8 38.4 27.5 59.3 41.5c20.9-14 40.8-27.7 59.3-41.5l-118.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.6 158.5L332.7 19.8C334.6 8.4 344.5 0 356.1 0c7.5 0 14.5 3.5 19 9.5L392 32l52.1 0c12.7 0 24.9 5.1 33.9 14.1L496 64l56 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-32 0-16 0-21.3 0-5.1 30.5-112-64zM416 256.1L416 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-115.2c-24 12.3-51.2 19.2-80 19.2s-56-6.9-80-19.2L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-230.2c-28.8-10.9-51.4-35.3-59.2-66.5L1 167.8c-4.3-17.1 6.1-34.5 23.3-38.8s34.5 6.1 38.8 23.3l3.9 15.5C70.5 182 83.3 192 98 192l30 0 16 0 159.8 0L416 256.1zM464 80a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c17.7 0 32 14.3 32 32l0 35.7c1.6 .2 3.1 .4 4.7 .7c.4 .1 .7 .1 1.1 .2l48 8.8c17.4 3.2 28.9 19.9 25.7 37.2s-19.9 28.9-37.2 25.7l-47.5-8.7c-31.3-4.6-58.9-1.5-78.3 6.2s-27.2 18.3-29 28.1c-2 10.7-.5 16.7 1.2 20.4c1.8 3.9 5.5 8.3 12.8 13.2c16.3 10.7 41.3 17.7 73.7 26.3l2.9 .8c28.6 7.6 63.6 16.8 89.6 33.8c14.2 9.3 27.6 21.9 35.9 39.5c8.5 17.9 10.3 37.9 6.4 59.2c-6.9 38-33.1 63.4-65.6 76.7c-13.7 5.6-28.6 9.2-44.4 11l0 33.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.9c-.4-.1-.9-.1-1.3-.2l-.2 0s0 0 0 0c-24.4-3.8-64.5-14.3-91.5-26.3c-16.1-7.2-23.4-26.1-16.2-42.2s26.1-23.4 42.2-16.2c20.9 9.3 55.3 18.5 75.2 21.6c31.9 4.7 58.2 2 76-5.3c16.9-6.9 24.6-16.9 26.8-28.9c1.9-10.6 .4-16.7-1.3-20.4c-1.9-4-5.6-8.4-13-13.3c-16.4-10.7-41.5-17.7-74-26.3l-2.8-.7s0 0 0 0C119.4 279.3 84.4 270 58.4 253c-14.2-9.3-27.5-22-35.8-39.6c-8.4-17.9-10.1-37.9-6.1-59.2C23.7 116 52.3 91.2 84.8 78.3c13.3-5.3 27.9-8.9 43.2-11L128 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDolly (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0l72.9 0c27.5 0 52 17.6 60.7 43.8L257.7 320c30.1 .5 56.8 14.9 74 37l202.1-67.4c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L352 417.7c-.9 52.2-43.5 94.3-96 94.3c-53 0-96-43-96-96c0-30.8 14.5-58.2 37-75.8L104.9 64 32 64C14.3 64 0 49.7 0 32zM244.8 134.5c-5.5-16.8 3.7-34.9 20.5-40.3L311 79.4l19.8 60.9 60.9-19.8L371.8 59.6l45.7-14.8c16.8-5.5 34.9 3.7 40.3 20.5l49.4 152.2c5.5 16.8-3.7 34.9-20.5 40.3L334.5 307.2c-16.8 5.5-34.9-3.7-40.3-20.5L244.8 134.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDongSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c-17.7 0-32 14.3-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 49.1c-18.8-10.9-40.7-17.1-64-17.1c-70.7 0-128 57.3-128 128s57.3 128 128 128c24.5 0 47.4-6.9 66.8-18.8c5 11.1 16.2 18.8 29.2 18.8c17.7 0 32-14.3 32-32l0-96 0-160c17.7 0 32-14.3 32-32s-14.3-32-32-32c0-17.7-14.3-32-32-32zM128 288a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-35.3 28.7-64 64-64L416 0c35.3 0 64 28.7 64 64l0 384 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-112 0-288 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0L96 64zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 32c0-9.9-4.5-19.2-12.3-25.2S289.8-1.4 280.2 1l-179.9 45C79 51.3 64 70.5 64 92.5L64 448l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 192 0 32 0 0-32 0-448zM256 256c0 17.7-10.7 32-24 32s-24-14.3-24-32s10.7-32 24-32s24 14.3 24 32zm96-128l96 0 0 352c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320c0-35.3-28.7-64-64-64l-96 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaDove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160.8 96.5c14 17 31 30.9 49.5 42.2c25.9 15.8 53.7 25.9 77.7 31.6l0-31.5C265.8 108.5 250 71.5 248.6 28c-.4-11.3-7.5-21.5-18.4-24.4c-7.6-2-15.8-.2-21 5.8c-13.3 15.4-32.7 44.6-48.4 87.2zM320 144l0 30.6s0 0 0 0l0 1.3s0 0 0 0l0 32.1c-60.8-5.1-185-43.8-219.3-157.2C97.4 40 87.9 32 76.6 32c-7.9 0-15.3 3.9-18.8 11C46.8 65.9 32 112.1 32 176c0 116.9 80.1 180.5 118.4 202.8L11.8 416.6C6.7 418 2.6 421.8 .9 426.8s-.8 10.6 2.3 14.8C21.7 466.2 77.3 512 160 512c3.6 0 7.2-1.2 10-3.5L245.6 448l74.4 0c88.4 0 160-71.6 160-160l0-160 29.9-44.9c1.3-2 2.1-4.4 2.1-6.8c0-6.8-5.5-12.3-12.3-12.3L400 64c-44.2 0-80 35.8-80 80zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDownLeftAndUpRightToCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39L439 7zM72 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39L73 505c-9.4 9.4-24.6 9.4-33.9 0L7 473c-9.4-9.4-9.4-24.6 0-33.9l87-87L55 313c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDownLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 334.5c-3.8 8.8-2 19 4.6 26l136 144c4.5 4.8 10.8 7.5 17.4 7.5s12.9-2.7 17.4-7.5l136-144c6.6-7 8.4-17.2 4.6-26s-12.5-14.5-22-14.5l-72 0 0-288c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32l0 288-72 0c-9.6 0-18.2 5.7-22 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 242.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 274.7 288 32zM64 352c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-101.5 0-45.3 45.3c-25 25-65.5 25-90.5 0L165.5 352 64 352zm368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaDragon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4L294.4 28.8c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L416 0l32 0 16 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8c0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7L480 160l-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1C640 462.9 590.9 512 530.2 512L496 512l-64 0L32.3 512c-3.3 0-6.6-.4-9.6-1.4C13.5 507.8 6 501 2.4 492.1C1 488.7 .2 485.2 0 481.4c-.2-3.7 .3-7.3 1.3-10.7c2.8-9.2 9.6-16.7 18.6-20.4c3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1c0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-45.5 0-57zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9c0 13.3 10.7 24 24 24c10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9s-1.5-14.1 3.8-18.8L130.9 116.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDrawPolygon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 151.4l0 209.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c0-.1 .1-.2 .1-.3l-4.5-7.9-32-56s0 0 0 0c-1.4 .1-2.8 .1-4.2 .1c-35.3 0-64-28.7-64-64s28.7-64 64-64c1.4 0 2.8 0 4.2 .1c0 0 0 0 0 0l32-56 4.5-7.9-.1-.3-209.1 0c-5.6 9.7-13.7 17.8-23.4 23.4zM384.3 352c35.2 .2 63.7 28.7 63.7 64c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-209.1C12.9 140.4 0 119.7 0 96C0 60.7 28.7 32 64 32c23.7 0 44.4 12.9 55.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 35.3-28.5 63.8-63.7 64l-4.5 7.9-32 56-2.3 4c4.2 8.5 6.5 18 6.5 28.1s-2.3 19.6-6.5 28.1l2.3 4 32 56 4.5 7.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDropletSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 512C86 512 0 426 0 320C0 228.8 130.2 57.7 166.6 11.7C172.6 4.2 181.5 0 191.1 0l1.8 0c9.6 0 18.5 4.2 24.5 11.7C253.8 57.7 384 228.8 384 320c0 106-86 192-192 192zM96 336c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 61.9 50.1 112 112 112c8.8 0 16-7.2 16-16s-7.2-16-16-16c-44.2 0-80-35.8-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumSteelpan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8c-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4c0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5c47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4C56 130.1 48 150.1 48 160s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5c0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8C224.5 87 224 91.5 224 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2C330.8 81 309.8 80 288 80s-42.8 1-62.6 2.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDrum (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96C114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5C458.4 181.8 464 197.4 464 208c0 .8-2.7 17.2-46 35.9C379.1 260.7 322 272 256 272s-123.1-11.3-162-28.1C50.7 225.2 48 208.8 48 208c0-10.6 5.6-26.2 44.4-41.3C130.6 151.9 187.8 144 256 144c18 0 35.1 .5 51.4 1.6z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumstickBite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2C69.8 320.6 65 320 60 320c-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12c0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5c-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1c11.9-1.2 16.4-15.5 10.8-26c-8.5-15.8-13.3-33.8-13.3-53c0-61.9 50.1-112 112-112c8 0 15.7 .8 23.2 2.4c11.7 2.5 24.1-5.9 22-17.6C494.5 62.5 422.5 0 336 0C238.8 0 160 78.8 160 176l0 89.2z\"},\"child\":[]}]})(props);\n};\nexport function FaDumbbell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 160 0 64 0 160c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-32 0c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l32 0 0-64zm448 0l0 64 32 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 17.7-14.3 32-32 32l-32 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-160 0-64 0-160c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32zM416 224l0 64-192 0 0-64 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpsterFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M49.7 32l90.8 0L114.9 160l-94 0C9.3 160 0 150.7 0 139.1c0-2.1 .3-4.1 .9-6.1L26.8 48.9C29.9 38.9 39.2 32 49.7 32zM272 160l-124.5 0L173.1 32 272 32l0 128zm32 0l0-128 98.9 0 14.4 72.1c-1.7 1.1-3.3 2.4-4.8 3.8c-18.4 16.4-35.4 34-50.5 52.1l-58 0zm209.9-23.7c-1.7 1.6-3.4 3.2-5 4.8C498 129.6 486.7 118.6 475 108c-7.6-6.9-17-10.8-26.6-11.8L435.5 32l90.8 0c10.5 0 19.8 6.9 22.9 16.9L575.1 133c.2 .7 .4 1.4 .5 2.1c-17.8-15-44.3-14.6-61.7 1.2zM325.2 210.7C304.3 244.5 288 282.9 288 318.1c0 49.3 18.6 95.2 49.6 129.9L128 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L44 288l-12 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l4 0-4-32 305.5 0c-4.4 6.2-8.5 12.5-12.3 18.7zm180.6-34.5L518 162.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C629 259.2 640 290.2 640 320.2C640 408.8 568.7 480 480 480c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2c5.7-5.2 13.1-7.7 20.3-7.5c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM544 368.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 295.1 416 331.6 416 368.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M49.7 32c-10.5 0-19.8 6.9-22.9 16.9L.9 133c-.6 2-.9 4.1-.9 6.1C0 150.7 9.3 160 20.9 160l94 0L140.5 32 49.7 32zM272 160l0-128-98.9 0L147.5 160 272 160zm32 0l124.5 0L402.9 32 304 32l0 128zm157.1 0l94 0c11.5 0 20.9-9.3 20.9-20.9c0-2.1-.3-4.1-.9-6.1L549.2 48.9C546.1 38.9 536.8 32 526.3 32l-90.8 0 25.6 128zM32 192l4 32-4 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l12 0L64 448c0 17.7 14.3 32 32 32s32-14.3 32-32l320 0c0 17.7 14.3 32 32 32s32-14.3 32-32l20-160 12 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-4 0 4-32L32 192z\"},\"child\":[]}]})(props);\n};\nexport function FaDungeon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.6 156.5c1.3 1.1 2.7 2.2 3.9 3.3c9.3 8.2 23 10.5 33.4 3.6l67.6-45.1c11.4-7.6 14.2-23.2 5.1-33.4C430 66.6 410.9 50.6 389.7 37.6c-11.9-7.3-26.9-1.4-32.1 11.6l-30.5 76.2c-4.5 11.1 .2 23.6 9.5 31.2zM328 36.8c5.1-12.8-1.6-27.4-15-30.5C294.7 2.2 275.6 0 256 0s-38.7 2.2-57 6.4C185.5 9.4 178.8 24 184 36.8l30.3 75.8c4.5 11.3 16.8 17.2 29 16c4.2-.4 8.4-.6 12.7-.6s8.6 .2 12.7 .6c12.1 1.2 24.4-4.7 29-16L328 36.8zM65.5 85c-9.1 10.2-6.3 25.8 5.1 33.4l67.6 45.1c10.3 6.9 24.1 4.6 33.4-3.6c1.3-1.1 2.6-2.3 4-3.3c9.3-7.5 13.9-20.1 9.5-31.2L154.4 49.2c-5.2-12.9-20.3-18.8-32.1-11.6C101.1 50.6 82 66.6 65.5 85zm314 137.1c.9 3.3 1.7 6.6 2.3 10c2.5 13 13 23.9 26.2 23.9l80 0c13.3 0 24.1-10.8 22.9-24c-2.5-27.2-9.3-53.2-19.7-77.3c-5.5-12.9-21.4-16.6-33.1-8.9l-68.6 45.7c-9.8 6.5-13.2 19.2-10 30.5zM53.9 145.8c-11.6-7.8-27.6-4-33.1 8.9C10.4 178.8 3.6 204.8 1.1 232c-1.2 13.2 9.6 24 22.9 24l80 0c13.3 0 23.8-10.8 26.2-23.9c.6-3.4 1.4-6.7 2.3-10c3.1-11.4-.2-24-10-30.5L53.9 145.8zM104 288l-80 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm304 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM24 416c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zm384 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-80 0zM272 192c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16l0-272zm-64 32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240zm128 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 240c0 8.8 7.2 16 16 16s16-7.2 16-16l0-240z\"},\"child\":[]}]})(props);\n};\nexport function FaE (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 256 0 416c0 35.3 28.7 64 64 64l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 416l0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaEarDeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5c-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3C74.8 132.5 149.4 64 240 64c97.2 0 176 78.8 176 176c0 46-17.7 87.9-46.6 119.3c-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112c-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78c18.4-20 29.6-46.6 29.6-75.9c0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaEarListen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.3 3.4c-15.8-7.9-35-1.5-42.9 14.3c-7.9 15.8-1.5 34.9 14.2 42.9l.4 .2c.4 .2 1.1 .6 2.1 1.2c2 1.2 5 3 8.7 5.6c7.5 5.2 17.6 13.2 27.7 24.2C428.5 113.4 448 146 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7C441.6 33.2 427.7 22.2 417.3 15c-5.3-3.7-9.7-6.4-13-8.3c-1.6-1-3-1.7-4-2.2c-.5-.3-.9-.5-1.2-.7l-.4-.2-.2-.1c0 0 0 0-.1 0c0 0 0 0 0 0L384 32 398.3 3.4zM128.7 227.5c6.2-56 53.7-99.5 111.3-99.5c61.9 0 112 50.1 112 112c0 29.3-11.2 55.9-29.6 75.9c-17 18.4-34.4 45.1-34.4 78l0 6.1c0 26.5-21.5 48-48 48c-17.7 0-32 14.3-32 32s14.3 32 32 32c61.9 0 112-50.1 112-112l0-6.1c0-9.8 5.4-21.7 17.4-34.7C398.3 327.9 416 286 416 240c0-97.2-78.8-176-176-176C149.4 64 74.8 132.5 65.1 220.5c-1.9 17.6 10.7 33.4 28.3 35.3s33.4-10.7 35.3-28.3zM32 512a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM192 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0zM208 240c0-17.7 14.3-32 32-32s32 14.3 32 32c0 13.3 10.7 24 24 24s24-10.7 24-24c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 13.3 10.7 24 24 24s24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthAfrica (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthAmericas (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M57.7 193l9.4 16.4c8.3 14.5 21.9 25.2 38 29.8L163 255.7c17.2 4.9 29 20.6 29 38.5l0 39.9c0 11 6.2 21 16 25.9s16 14.9 16 25.9l0 39c0 15.6 14.9 26.9 29.9 22.6c16.1-4.6 28.6-17.5 32.7-33.8l2.8-11.2c4.2-16.9 15.2-31.4 30.3-40l8.1-4.6c15-8.5 24.2-24.5 24.2-41.7l0-8.3c0-12.7-5.1-24.9-14.1-33.9l-3.9-3.9c-9-9-21.2-14.1-33.9-14.1L257 256c-11.1 0-22.1-2.9-31.8-8.4l-34.5-19.7c-4.3-2.5-7.6-6.5-9.2-11.2c-3.2-9.6 1.1-20 10.2-24.5l5.9-3c6.6-3.3 14.3-3.9 21.3-1.5l23.2 7.7c8.2 2.7 17.2-.4 21.9-7.5c4.7-7 4.2-16.3-1.2-22.8l-13.6-16.3c-10-12-9.9-29.5 .3-41.3l15.7-18.3c8.8-10.3 10.2-25 3.5-36.7l-2.4-4.2c-3.5-.2-6.9-.3-10.4-.3C163.1 48 84.4 108.9 57.7 193zM464 256c0-36.8-9.6-71.4-26.4-101.5L412 164.8c-15.7 6.3-23.8 23.8-18.5 39.8l16.9 50.7c3.5 10.4 12 18.3 22.6 20.9l29.1 7.3c1.2-9 1.8-18.2 1.8-27.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthAsia (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M51.7 295.1l31.7 6.3c7.9 1.6 16-.9 21.7-6.6l15.4-15.4c11.6-11.6 31.1-8.4 38.4 6.2l9.3 18.5c4.8 9.6 14.6 15.7 25.4 15.7c15.2 0 26.1-14.6 21.7-29.2l-6-19.9c-4.6-15.4 6.9-30.9 23-30.9l2.3 0c13.4 0 25.9-6.7 33.3-17.8l10.7-16.1c5.6-8.5 5.3-19.6-.8-27.7l-16.1-21.5c-10.3-13.7-3.3-33.5 13.4-37.7l17-4.3c7.5-1.9 13.6-7.2 16.5-14.4l16.4-40.9C303.4 52.1 280.2 48 256 48C141.1 48 48 141.1 48 256c0 13.4 1.3 26.5 3.7 39.1zm407.7 4.6c-3-.3-6-.1-9 .8l-15.8 4.4c-6.7 1.9-13.8-.9-17.5-6.7l-2-3.1c-6-9.4-16.4-15.1-27.6-15.1s-21.6 5.7-27.6 15.1l-6.1 9.5c-1.4 2.2-3.4 4.1-5.7 5.3L312 330.1c-18.1 10.1-25.5 32.4-17 51.3l5.5 12.4c8.6 19.2 30.7 28.5 50.5 21.1l2.6-1c10-3.7 21.3-2.2 29.9 4.1l1.5 1.1c37.2-29.5 64.1-71.4 74.4-119.5zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm144.5 92.1c-2.1 8.6 3.1 17.3 11.6 19.4l32 8c8.6 2.1 17.3-3.1 19.4-11.6s-3.1-17.3-11.6-19.4l-32-8c-8.6-2.1-17.3 3.1-19.4 11.6zm92-20c-2.1 8.6 3.1 17.3 11.6 19.4s17.3-3.1 19.4-11.6l8-32c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-8 32zM343.2 113.7c-7.9-4-17.5-.7-21.5 7.2l-16 32c-4 7.9-.7 17.5 7.2 21.5s17.5 .7 21.5-7.2l16-32c4-7.9 .7-17.5-7.2-21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthEurope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M266.3 48.3L232.5 73.6c-5.4 4-8.5 10.4-8.5 17.1l0 9.1c0 6.8 5.5 12.3 12.3 12.3c2.4 0 4.8-.7 6.8-2.1l41.8-27.9c2-1.3 4.4-2.1 6.8-2.1l1 0c6.2 0 11.3 5.1 11.3 11.3c0 3-1.2 5.9-3.3 8l-19.9 19.9c-5.8 5.8-12.9 10.2-20.7 12.8l-26.5 8.8c-5.8 1.9-9.6 7.3-9.6 13.4c0 3.7-1.5 7.3-4.1 10l-17.9 17.9c-6.4 6.4-9.9 15-9.9 24l0 4.3c0 16.4 13.6 29.7 29.9 29.7c11 0 21.2-6.2 26.1-16l4-8.1c2.4-4.8 7.4-7.9 12.8-7.9c4.5 0 8.7 2.1 11.4 5.7l16.3 21.7c2.1 2.9 5.5 4.5 9.1 4.5c8.4 0 13.9-8.9 10.1-16.4l-1.1-2.3c-3.5-7 0-15.5 7.5-18l21.2-7.1c7.6-2.5 12.7-9.6 12.7-17.6c0-10.3 8.3-18.6 18.6-18.6l29.4 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-20.7 0c-7.2 0-14.2 2.9-19.3 8l-4.7 4.7c-2.1 2.1-3.3 5-3.3 8c0 6.2 5.1 11.3 11.3 11.3l11.3 0c6 0 11.8 2.4 16 6.6l6.5 6.5c1.8 1.8 2.8 4.3 2.8 6.8s-1 5-2.8 6.8l-7.5 7.5C386 262 384 266.9 384 272s2 10 5.7 13.7L408 304c10.2 10.2 24.1 16 38.6 16l7.3 0c6.5-20.2 10-41.7 10-64c0-111.4-87.6-202.4-197.7-207.7zm172 307.9c-3.7-2.6-8.2-4.1-13-4.1c-6 0-11.8-2.4-16-6.6L396 332c-7.7-7.7-18-12-28.9-12c-9.7 0-19.2-3.5-26.6-9.8L314 287.4c-11.6-9.9-26.4-15.4-41.7-15.4l-20.9 0c-12.6 0-25 3.7-35.5 10.7L188.5 301c-17.8 11.9-28.5 31.9-28.5 53.3l0 3.2c0 17 6.7 33.3 18.7 45.3l16 16c8.5 8.5 20 13.3 32 13.3l21.3 0c13.3 0 24 10.7 24 24c0 2.5 .4 5 1.1 7.3c71.3-5.8 132.5-47.6 165.2-107.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM187.3 100.7c-6.2-6.2-16.4-6.2-22.6 0l-32 32c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l32-32c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaEarthOceania (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM208.6 357.3l-39-13.5c-6.5-2.2-13.6-2.3-20.1-.3l-15.3 4.9c-18.5 5.9-38.5-2.4-47.5-19.5l-3.3-6.2c-10.6-20.1-2.3-45 18.2-54.7l35.3-16.8c2.3-1.1 4.4-2.8 5.9-4.8l5.3-7c7.2-9.6 18.6-15.3 30.6-15.3s23.4 5.7 30.6 15.3l4.6 6.1c2 2.6 4.9 4.5 8.1 5.1c7.8 1.6 15.7-1.5 20.4-7.9l10.4-14.2c2-2.8 5.3-4.4 8.7-4.4c4.4 0 8.4 2.7 10 6.8l10.1 25.9c2.8 7.2 6.7 14 11.5 20.2L311 299.8c5.8 7.4 9 16.6 9 26s-3.2 18.6-9 26L299 367.2c-8.3 10.6-21 16.8-34.4 16.8c-8.4 0-16.6-2.4-23.7-7l-25.4-16.4c-2.2-1.4-4.5-2.5-6.9-3.4zm65.2-214.8L296 164.7c10.1 10.1 2.9 27.3-11.3 27.3l-29.9 0c-5.6 0-11.1-1.2-16.2-3.4l-42.8-19c-14.3-6.3-11.9-27.3 3.4-30.3l38.5-7.7c13.1-2.6 26.7 1.5 36.1 10.9zM248 432c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16zM431.2 298.9l8 24c2.8 8.4-1.7 17.4-10.1 20.2s-17.4-1.7-20.2-10.1l-8-24c-2.8-8.4 1.7-17.4 10.1-20.2s17.4 1.7 20.2 10.1zm-19.9 80.4l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaEgg (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 496C86 496 0 394 0 288C0 176 64 16 192 16s192 160 192 272c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2C69.7 226.1 64 259.7 64 288c0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8c10.1-28.5 25-54.1 43.7-71.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEject (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaElevator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M132.7 4.7l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM356.7 91.3c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5 0 432 0L304 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsisVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 128 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsis (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0l57.4-43c23.9-59.8 79.7-103.3 146.3-109.8l13.9-10.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176 0 384c0 35.3 28.7 64 64 64l296.2 0C335.1 417.6 320 378.5 320 336c0-5.6 .3-11.1 .8-16.6l-26.4 19.8zM640 336a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 353.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpenText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.4 96L144 96l-36.2 0L96 96l0 8.8L96 144l0 40.4 0 89L.2 202.5c1.6-18.1 10.9-34.9 25.7-45.8L48 140.3 48 96c0-26.5 21.5-48 48-48l76.6 0 49.9-36.9C232.2 3.9 243.9 0 256 0s23.8 3.9 33.5 11L339.4 48 416 48c26.5 0 48 21.5 48 48l0 44.3 22.1 16.4c14.8 10.9 24.1 27.7 25.7 45.8L416 273.4l0-89 0-40.4 0-39.2 0-8.8-11.8 0L368 96l-71.4 0-81.3 0zM0 448L0 242.1 217.6 403.3c11.1 8.2 24.6 12.7 38.4 12.7s27.3-4.4 38.4-12.7L512 242.1 512 448s0 0 0 0c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64c0 0 0 0 0 0zM176 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 208.1L256 65.9 448 208.1l0 47.4L289.5 373c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64 255.5l0-47.4zM256 0c-12.1 0-23.8 3.9-33.5 11L25.9 156.7C9.6 168.8 0 187.8 0 208.1L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5 11C279.8 3.9 268.1 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopesBulk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C110.3 0 96 14.3 96 32l0 192 96 0 0-32c0-35.3 28.7-64 64-64l224 0 0-96c0-17.7-14.3-32-32-32L128 0zM256 160c-17.7 0-32 14.3-32 32l0 32 96 0c35.3 0 64 28.7 64 64l0 128 192 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-320 0zm240 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 256c-17.7 0-32 14.3-32 32l0 13L187.1 415.9c1.4 1 3.1 1.6 4.9 1.6s3.5-.6 4.9-1.6L352 301l0-13c0-17.7-14.3-32-32-32L64 256zm288 84.8L216 441.6c-6.9 5.1-15.3 7.9-24 7.9s-17-2.8-24-7.9L32 340.8 32 480c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-139.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEquals (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48 320z\"},\"child\":[]}]})(props);\n};\nexport function FaEraser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.7 57.4L57.4 290.7c-25 25-25 65.5 0 90.5l80 80c12 12 28.3 18.7 45.3 18.7L288 480l9.4 0L512 480c17.7 0 32-14.3 32-32s-14.3-32-32-32l-124.1 0L518.6 285.3c25-25 25-65.5 0-90.5L381.3 57.4c-25-25-65.5-25-90.5 0zM297.4 416l-9.4 0-105.4 0-80-80L227.3 211.3 364.7 348.7 297.4 416z\"},\"child\":[]}]})(props);\n};\nexport function FaEthernet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224L0 416c0 17.7 14.3 32 32 32l64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0 0-112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112 64 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaEuroSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.1 240c-.1 2.7-.1 5.3-.1 8l0 16c0 2.7 0 5.3 .1 8L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l28.3 0C89.9 419.9 170 480 264 480l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0c-57.9 0-108.2-32.4-133.9-80L256 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-143.8 0c-.1-2.6-.2-5.3-.2-8l0-16c0-2.7 .1-5.4 .2-8L256 240c17.7 0 32-14.3 32-32s-14.3-32-32-32l-125.9 0c25.7-47.6 76-80 133.9-80l24 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-24 0C170 32 89.9 92.1 60.3 176L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l16.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 128 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-17.7-14.3-32-32-32S32 46.3 32 64l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L96 64zM64 480a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaExpand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaExplosion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M499.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L404.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0L42.3 363.7c-9.7-6.7-13.1-19.6-7.9-30.3s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.7 9.4-11.3L107.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L246 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7s22.7 9.4 23.9 21.7l13.5 141.9L499.6 11.3zM64 448s0 0 0 0l448 0s0 0 0 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zM288 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeDropper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.6 29.2L240.1 130.8l-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4L482.8 170.4c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4L5.4 462.2c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4L89.7 480l42.4 0c21.2 0 41.6-8.4 56.6-23.4L309.4 335.9l-45.3-45.3L143.4 411.3c-3 3-7.1 4.7-11.3 4.7L96 416l0-36.1c0-4.2 1.7-8.3 4.7-11.3L221.4 247.9l-45.3-45.3L55.4 323.3z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeLowVision (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223 149.5c48.6-44.3 123-50.8 179.3-11.7c60.8 42.4 78.9 123.2 44.2 186.9L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3L223 149.5zm223.1 298L83.1 161.5c-11 14.4-20.5 28.7-28.4 42.2l339 265.7c18.7-5.5 36.2-13 52.6-21.8zM34.5 268.3c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c3.1 0 6.1-.1 9.2-.2L33.1 247.8c-1.8 6.8-1.3 14 1.4 20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z\"},\"child\":[]}]})(props);\n};\nexport function FaEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z\"},\"child\":[]}]})(props);\n};\nexport function FaF (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 256 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 224 64 96l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM338.7 395.9c6.6-5.9 7.1-16 1.2-22.6C323.8 355.4 295.7 336 256 336s-67.8 19.4-83.9 37.3c-5.9 6.6-5.4 16.7 1.2 22.6s16.7 5.4 22.6-1.2c11.7-13 31.6-26.7 60.1-26.7s48.4 13.7 60.1 26.7c5.9 6.6 16 7.1 22.6 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-224a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM100.7 132.7c6.2-6.2 16.4-6.2 22.6 0L160 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L182.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L160 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L137.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6zm192 0c6.2-6.2 16.4-6.2 22.6 0L352 169.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L374.6 192l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L352 214.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L329.4 192l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceFlushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM176 384c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16zm-16-88a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceFrownOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-122 174.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.3 388.7c-2.6 8.4-11.6 13.2-20 10.5s-13.2-11.6-10.5-20C145.2 326.1 196.3 288 256 288s110.8 38.1 127.3 91.3c2.6 8.4-2.1 17.4-10.5 20s-17.4-2.1-20-10.5C340.5 349.4 302.1 320 256 320s-84.5 29.4-96.7 68.7zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrimace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm96-112l-8 0 0-40 55.3 0c-3.8 22.7-23.6 40-47.3 40zm47.3-56L344 344l0-40 8 0c23.8 0 43.5 17.3 47.3 40zM328 344l-64 0 0-40 64 0 0 40zm0 56l-64 0 0-40 64 0 0 40zm-80-96l0 40-64 0 0-40 64 0zm0 56l0 40-64 0 0-40 64 0zm-80-16l-55.3 0c3.8-22.7 23.6-40 47.3-40l8 0 0 40zm0 56l-8 0c-23.8 0-43.5-17.3-47.3-40l55.3 0 0 40zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinBeamSweat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.8 126.3c-4.1 1.1-8.4 1.7-12.8 1.7c-26.5 0-48-21-48-47c0-5 1.8-11.3 4.6-18.1c.3-.7 .6-1.4 .9-2.1c9-20.2 26.5-44.9 36-57.5c3.2-4.4 9.6-4.4 12.8 0C483.4 20.6 512 61 512 81c0 21.7-14.9 39.8-35.2 45.3zM256 0c51.4 0 99.3 15.2 139.4 41.2c-1.5 3.1-3 6.2-4.3 9.3c-3.4 8-7.1 19-7.1 30.5c0 44.3 36.6 79 80 79c9.6 0 18.8-1.7 27.4-4.8c13.3 30.9 20.6 65 20.6 100.8c0 141.4-114.6 256-256 256S0 397.4 0 256S114.6 0 256 0zM383.8 317.8C345.3 329.4 301.9 336 256 336s-89.3-6.6-127.8-18.2c-12.3-3.7-24.3 7-19.2 18.7c24.5 56.9 81.1 96.7 147 96.7s122.5-39.8 147-96.7c5.1-11.8-6.9-22.4-19.2-18.7zm-166.2-89s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-170.5-84s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinHearts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM199.3 129.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm154.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinSquintTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-6.8 6.8-21.4 12.4-37.4 16.7c-16.3 4.4-34.1 7.5-46.3 9.3c-1.6 .2-3.1 .5-4.6 .6c-4.9 .8-9.1-2.8-9.5-7.4c-.1-.7 0-1.4 .1-2.1c1.6-11.2 4.6-29.6 9-47c.3-1.3 .7-2.6 1-3.9c4.3-15.9 9.8-30.5 16.7-37.4zm-44.7 19c-1.5 4.8-2.9 9.6-4.1 14.3c-4.8 18.9-8 38.5-9.7 50.3c-4 26.8 18.9 49.7 45.7 45.8c11.9-1.6 31.5-4.8 50.4-9.7c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c4.8-18.9 8-38.5 9.7-50.3c4-26.8-18.9-49.7-45.7-45.8c-11.9 1.6-31.5 4.8-50.4 9.7c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75C158.2-8.3 284.5-22.2 382.2 33.2zM51.5 410.1c18.5-5 38.8-8.3 50.9-10c.4-.1 .7-.1 1-.1c5.1-.2 9.2 4.3 8.4 9.6c-1.7 12.1-5 32.4-10 50.9C97.6 476.4 92 491 85.2 497.8C66 517 34.5 516.6 14.9 497.1s-20-51-.7-70.3c6.8-6.8 21.4-12.4 37.4-16.7zM416.9 209c-4.7-11.9-20.8-11-26.8 .3c-19 35.5-45 70.8-77.5 103.3S244.8 371.1 209.3 390c-11.3 6-12.2 22.1-.3 26.8c57.6 22.9 125.8 11 172.3-35.5s58.4-114.8 35.5-172.3zM87.1 285.1c2 2 4.6 3.2 7.3 3.4l56.1 5.1 5.1 56.1c.3 2.8 1.5 5.4 3.4 7.3c6.3 6.3 17.2 3.6 19.8-4.9l29.7-97.4c3.5-11.6-7.3-22.5-19-19L92 265.3c-8.6 2.6-11.3 13.4-4.9 19.8zM265.3 92l-29.7 97.4c-3.5 11.6 7.3 22.5 19 19l97.4-29.7c8.6-2.6 11.3-13.4 4.9-19.8c-2-2-4.6-3.2-7.3-3.4l-56.1-5.1-5.1-56.1c-.3-2.8-1.5-5.4-3.4-7.3c-6.3-6.3-17.2-3.6-19.8 4.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM133.5 146.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm407.4 75.5c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM160 120c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L160 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L226.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6zm192 0c-3.1 0-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L352 232.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L418.4 178c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7c-1.3-2.8-4.1-4.6-7.2-4.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M548.6 371.4C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c3.6-8.8 6.5-18.4 8.8-27.5c4.6-18.2 7.7-37 9.3-48.2c3.9-26.5-18.8-49.2-45.2-45.4c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-26.5-3.9-49.2 18.8-45.2 45.4c1.6 11.3 4.6 30 9.3 48.2c2.3 9.1 5.2 18.8 8.8 27.5c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3zM107 254.1c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9zm454.5 87.1c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zm-90.1-9.7c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c25 59.1 83.2 100.5 151.1 100.5s126.2-41.4 151.1-100.5zM281.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C190.7 188.4 184 206.1 184 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C350.7 188.4 344 206.1 344 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTongueSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zM116 141.1c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTongueWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M174.5 498.8C73.1 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 112.9-73.1 208.7-174.5 242.8C346.7 484 352 466.6 352 448l0-46.9c24.3-17.5 43.6-41.6 55.4-69.6c5-11.8-7-22.5-19.3-18.7c-39.7 12.2-84.5 19-131.8 19s-92.1-6.8-131.8-19c-12.3-3.8-24.3 6.9-19.3 18.7c11.7 27.8 30.8 51.7 54.8 69.2l0 47.3c0 18.6 5.3 36 14.5 50.8zm20.7-265.2c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zM336 272a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 368.9 73.1 464.7 174.5 498.8C165.3 484 160 466.6 160 448l0-47.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 46.9c0 18.6-5.3 36-14.5 50.8C438.9 464.7 512 368.9 512 256C512 114.6 397.4 0 256 0S0 114.6 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrinWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zm-16.9-79.2c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceGrin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM388.1 312.8c12.3-3.8 24.3 6.9 19.3 18.7C382.4 390.6 324.2 432 256.3 432s-126.2-41.4-151.1-100.5c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceKissBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-84.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceKissWinkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498 339.7c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-22.9-89.3c-10-39 11.8-80.9 51.8-92.1c37.2-10.4 73.8 10.1 87.5 44c12.7-1.6 25.1 .4 36.2 5zM296 332c0 6.9-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C258.7 443.1 241.4 448 224 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.6-.4-.3-.2-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm194.8 57.6c-17.6-23.5-52.8-23.5-70.4 0c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceKiss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm48.7-198.3c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 443.1 257.4 448 240 448c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1 .3-.2 .6-.4c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.4-.3-.5-.3-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaughBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM217.6 212.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaughSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zm36.7-199.4l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 125.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaughWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM96.8 314.1c-3.8-13.7 7.4-26.1 21.6-26.1l275.2 0c14.2 0 25.5 12.4 21.6 26.1C396.2 382 332.1 432 256 432s-140.2-50-159.2-117.9zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm208.4-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM160 336l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceRollingEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM192 368l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm32-144c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C208.5 175.6 224 198 224 224zm128 64c-35.3 0-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4c-3.7 5.2-5.8 11.6-5.8 18.4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4C400.5 175.6 416 198 416 224c0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSadCry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 189.8C51.5 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0S512 114.6 512 256c0 94.8-51.5 177.5-128 221.8L384 288c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 205.4zM195.2 233.6c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2c17.6-23.5 52.8-23.5 70.4 0zm121.6 0c17.6-23.5 52.8-23.5 70.4 0c5.3 7.1 15.3 8.5 22.4 3.2s8.5-15.3 3.2-22.4c-30.4-40.5-91.2-40.5-121.6 0c-5.3 7.1-3.9 17.1 3.2 22.4s17.1 3.9 22.4-3.2zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSadTear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zm240 80c0-8.8 7.2-16 16-16c45 0 85.6 20.5 115.7 53.1c6 6.5 5.6 16.6-.9 22.6s-16.6 5.6-22.6-.9c-25-27.1-57.4-42.9-92.3-42.9c-8.8 0-16-7.2-16-16zm-80 80c-26.5 0-48-21-48-47c0-20 28.6-60.4 41.6-77.7c3.2-4.4 9.6-4.4 12.8 0C179.6 308.6 208 349 208 369c0 26-21.5 47-48 47zM367.6 208a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSmileBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zm53.5-96.7s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSmileWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm156.4 25.6c-5.3 7.1-15.3 8.5-22.4 3.2s-8.5-15.3-3.2-22.4c30.4-40.5 91.2-40.5 121.6 0c5.3 7.1 3.9 17.1-3.2 22.4s-17.1 3.9-22.4-3.2c-17.6-23.5-52.8-23.5-70.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.1 325.5C182 346.2 212.6 368 256 368s74-21.8 91.9-42.5c5.8-6.7 15.9-7.4 22.6-1.6s7.4 15.9 1.6 22.6C349.8 372.1 311.1 400 256 400s-93.8-27.9-116.1-53.5c-5.8-6.7-5.1-16.8 1.6-22.6s16.8-5.1 22.6 1.6zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceSurprise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM176.4 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaFaceTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4c6.2 11.7 10.3 24.4 10.3 35.9c0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8s-6.9-7.9-6.9-13.2c0-11.6 4.2-24.2 10.3-35.9c6.3-12 15.3-24.3 26.4-35.4zm-31.2-182l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M258.6 0c-1.7 0-3.4 .1-5.1 .5C168 17 115.6 102.3 130.5 189.3c2.9 17 8.4 32.9 15.9 47.4L32 224l-2.6 0C13.2 224 0 237.2 0 253.4c0 1.7 .1 3.4 .5 5.1C17 344 102.3 396.4 189.3 381.5c17-2.9 32.9-8.4 47.4-15.9L224 480l0 2.6c0 16.2 13.2 29.4 29.4 29.4c1.7 0 3.4-.1 5.1-.5C344 495 396.4 409.7 381.5 322.7c-2.9-17-8.4-32.9-15.9-47.4L480 288l2.6 0c16.2 0 29.4-13.2 29.4-29.4c0-1.7-.1-3.4-.5-5.1C495 168 409.7 115.6 322.7 130.5c-17 2.9-32.9 8.4-47.4 15.9L288 32l0-2.6C288 13.2 274.8 0 258.6 0zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFaucetDrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 12 96-12c17.7 0 32 14.3 32 32s-14.3 32-32 32L256 84l-31-3.9-1-.1-1 .1L192 84 96 96C78.3 96 64 81.7 64 64s14.3-32 32-32l96 12 0-12c0-17.7 14.3-32 32-32zM0 224c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-43.8 32-4 32 4 0 43.8 18.7 0c8.5 0 16.6 3.4 22.6 9.4L320 192l32 0c88.4 0 160 71.6 160 160c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 320c-17.7 0-32-14.3-32-32l0-64zM436.8 423.4c1.9-4.5 6.3-7.4 11.2-7.4s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1l18.2-42.4z\"},\"child\":[]}]})(props);\n};\nexport function FaFaucet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96l0 12L96 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l96-12 31-3.9 1-.1 1 .1 31 3.9 96 12c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 12 0-12c0-17.7-14.3-32-32-32s-32 14.3-32 32zM32 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32c0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4L256 224l0-43.8-32-4-32 4 0 43.8-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 256l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFax (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64l0 96 64 0 0-96 194.7 0L416 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L432 18.7C420 6.7 403.7 0 386.7 0L192 0c-35.3 0-64 28.7-64 64zM0 160L0 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32zm480 32l-352 0 0 288c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM256 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 416a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFeatherPointed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l74.8-74.8c7.4 4.6 15.3 8.2 23.8 10.5C200.3 452.8 270 454.5 338 409.4c12.2-8.1 5.8-25.4-8.8-25.4l-16.1 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l97.7-29.3c3.4-1 6.4-3.1 8.4-6.1c4.4-6.4 8.6-12.9 12.6-19.6c6.2-10.3-1.5-23-13.5-23l-38.6 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l80.9-24.3c4.6-1.4 8.4-4.8 10.2-9.3C494.5 163 507.8 86.1 511.9 36.8c.8-9.9-3-19.6-10-26.6s-16.7-10.8-26.6-10C391.5 7 228.5 40.5 137.4 131.6C57.3 211.7 56.7 302.3 71.3 356.4c2.1 7.9 12 9.6 17.8 3.8L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.5 215.6L23 471c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 68 0c49.7 0 97.9-14.4 139-41c11.1-7.2 5.5-23-7.8-23c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l81-24.3c2.5-.8 4.8-2.1 6.7-4l22.4-22.4c10.1-10.1 2.9-27.3-11.3-27.3l-32.2 0c-5.1 0-9.2-4.1-9.2-9.2c0-4.1 2.7-7.6 6.5-8.8l112-33.6c4-1.2 7.4-3.9 9.3-7.7C506.4 207.6 512 184.1 512 160c0-41-16.3-80.3-45.3-109.3l-5.5-5.5C432.3 16.3 393 0 352 0s-80.3 16.3-109.3 45.3L139 149C91 197 64 262.1 64 330l0 55.3L253.6 195.8c6.2-6.2 16.4-6.2 22.6 0c5.4 5.4 6.1 13.6 2.2 19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFerry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0L352 0c17.7 0 32 14.3 32 32l75.1 0c20.6 0 31.6 24.3 18.1 39.8L456 96 120 96 98.8 71.8C85.3 56.3 96.3 32 116.9 32L192 32c0-17.7 14.3-32 32-32zM96 128l384 0c17.7 0 32 14.3 32 32l0 123.5c0 13.3-4.2 26.3-11.9 37.2l-51.4 71.9c-1.9 1.1-3.7 2.2-5.5 3.5c-15.5 10.7-34 18-51 19.9l-16.5 0c-17.1-1.8-35-9-50.8-19.9c-22.1-15.5-51.6-15.5-73.7 0c-14.8 10.2-32.5 18-50.6 19.9l-16.6 0c-17-1.8-35.6-9.2-51-19.9c-1.8-1.3-3.7-2.4-5.6-3.5L75.9 320.7C68.2 309.8 64 296.8 64 283.5L64 160c0-17.7 14.3-32 32-32zm32 64l0 96 320 0 0-96-320 0zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.3-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaFileArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z\"},\"child\":[]}]})(props);\n};\nexport function FaFileAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zm2 226.3c37.1 22.4 62 63.1 62 109.7s-24.9 87.3-62 109.7c-7.6 4.6-17.4 2.1-22-5.4s-2.1-17.4 5.4-22C269.4 401.5 288 370.9 288 336s-18.6-65.5-46.5-82.3c-7.6-4.6-10-14.4-5.4-22s14.4-10 22-5.4zm-91.9 30.9c6 2.5 9.9 8.3 9.9 14.8l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L113.4 376 80 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l33.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5zm51 34.9c6.6-5.9 16.7-5.3 22.6 1.3C249.8 304.6 256 319.6 256 336s-6.2 31.4-16.3 42.7c-5.9 6.6-16 7.1-22.6 1.3s-7.1-16-1.3-22.6c5.1-5.7 8.1-13.1 8.1-21.3s-3.1-15.7-8.1-21.3c-5.9-6.6-5.3-16.7 1.3-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM153 289l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L71 337c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM265 255l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileContract (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm54.2 253.8c-6.1 20.3-24.8 34.2-46 34.2L80 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.7 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 54.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 349l-9.8 32.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCsv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM200 352l16 0c22.1 0 40 17.9 40 40l0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8l0 80c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-8c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8c0 22.1-17.9 40-40 40l-16 0c-22.1 0-40-17.9-40-40l0-80c0-22.1 17.9-40 40-40zm133.1 0l34.9 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1c0 5.2 3 9.9 7.8 12l37.4 16.6c16.3 7.2 26.8 23.4 26.8 41.2c0 24.9-20.2 45.1-45.1 45.1L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l42.9 0c7.2 0 13.1-5.9 13.1-13.1c0-5.2-3-9.9-7.8-12l-37.4-16.6c-16.3-7.2-26.8-23.4-26.8-41.2c0-24.9 20.2-45.1 45.1-45.1zm98.9 0c8.8 0 16 7.2 16 16l0 31.6c0 23 5.5 45.6 16 66c10.5-20.3 16-42.9 16-66l0-31.6c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.6c0 34.7-10.3 68.7-29.6 97.6l-5.1 7.7c-3 4.5-8 7.1-13.3 7.1s-10.3-2.7-13.3-7.1l-5.1-7.7c-19.3-28.9-29.6-62.9-29.6-97.6l0-31.6c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM155.7 250.2L192 302.1l36.3-51.9c7.6-10.9 22.6-13.5 33.4-5.9s13.5 22.6 5.9 33.4L221.3 344l46.4 66.2c7.6 10.9 5 25.8-5.9 33.4s-25.8 5-33.4-5.9L192 385.8l-36.3 51.9c-7.6 10.9-22.6 13.5-33.4 5.9s-13.5-22.6-5.9-33.4L162.7 344l-46.4-66.2c-7.6-10.9-5-25.8 5.9-33.4s25.8-5 33.4 5.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm152 32c5.3 0 10.2 2.6 13.2 6.9l88 128c3.4 4.9 3.7 11.3 1 16.5s-8.2 8.6-14.2 8.6l-88 0-40 0-48 0-48 0c-5.8 0-11.1-3.1-13.9-8.1s-2.8-11.2 .2-16.1l48-80c2.9-4.8 8.1-7.8 13.7-7.8s10.8 2.9 13.7 7.8l12.8 21.4 48.3-70.2c3-4.3 7.9-6.9 13.2-6.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoiceDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 80c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16zm128 72c8.8 0 16 7.2 16 16l0 17.3c8.5 1.2 16.7 3.1 24.1 5.1c8.5 2.3 13.6 11 11.3 19.6s-11 13.6-19.6 11.3c-11.1-3-22-5.2-32.1-5.3c-8.4-.1-17.4 1.8-23.6 5.5c-5.7 3.4-8.1 7.3-8.1 12.8c0 3.7 1.3 6.5 7.3 10.1c6.9 4.1 16.6 7.1 29.2 10.9l.5 .1s0 0 0 0s0 0 0 0c11.3 3.4 25.3 7.6 36.3 14.6c12.1 7.6 22.4 19.7 22.7 38.2c.3 19.3-9.6 33.3-22.9 41.6c-7.7 4.8-16.4 7.6-25.1 9.1l0 17.1c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-17.8c-11.2-2.1-21.7-5.7-30.9-8.9c0 0 0 0 0 0c-2.1-.7-4.2-1.4-6.2-2.1c-8.4-2.8-12.9-11.9-10.1-20.2s11.9-12.9 20.2-10.1c2.5 .8 4.8 1.6 7.1 2.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c13.6 4.6 24.6 8.4 36.3 8.7c9.1 .3 17.9-1.7 23.7-5.3c5.1-3.2 7.9-7.3 7.8-14c-.1-4.6-1.8-7.8-7.7-11.6c-6.8-4.3-16.5-7.4-29-11.2l-1.6-.5s0 0 0 0c-11-3.3-24.3-7.3-34.8-13.7c-12-7.2-22.6-18.9-22.7-37.3c-.1-19.4 10.8-32.8 23.8-40.5c7.5-4.4 15.8-7.2 24.1-8.7l0-17.3c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM80 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 96l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm0 32l0 64 192 0 0-64L96 256zM240 416l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 144-208 0c-35.3 0-64 28.7-64 64l0 144-48 0c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePowerpoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM136 240l68 0c42 0 76 34 76 76s-34 76-76 76l-44 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56 0-104c0-13.3 10.7-24 24-24zm68 104c15.5 0 28-12.5 28-28s-12.5-28-28-28l-44 0 0 56 44 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePrescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM104 196l72 0c33.1 0 60 26.9 60 60c0 25.5-15.9 47.2-38.3 55.9l43 40.3 33.8-31c8.1-7.5 20.8-6.9 28.3 1.2s6.9 20.8-1.2 28.3L270 379.7l31.7 29.7c8.1 7.6 8.5 20.2 .9 28.3s-20.2 8.5-28.3 .9l-33.9-31.8-34.9 32c-8.1 7.5-20.8 6.9-28.3-1.2s-6.9-20.8 1.2-28.3l32.6-29.9-64.8-60.8c-.9-.8-1.6-1.7-2.3-2.6l-20 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-64 0-80c0-11 9-20 20-20zm72 80c11 0 20-9 20-20s-9-20-20-20l-52 0 0 40 52 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 47-92.8 37.1c-21.3 8.5-35.2 29.1-35.2 52c0 56.6 18.9 148 94.2 208.3c-9 4.8-19.3 7.6-30.2 7.6L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm39.1 97.7c5.7-2.3 12.1-2.3 17.8 0l120 48C570 277.4 576 286.2 576 296c0 63.3-25.9 168.8-134.8 214.2c-5.9 2.5-12.6 2.5-18.5 0C313.9 464.8 288 359.3 288 296c0-9.8 6-18.6 15.1-22.3l120-48zM527.4 312L432 273.8l0 187.8c68.2-33 91.5-99 95.4-149.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFileSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z\"},\"child\":[]}]})(props);\n};\nexport function FaFileVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM64 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96zM300.9 397.9L256 368l0-64 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1z\"},\"child\":[]}]})(props);\n};\nexport function FaFileWaveform (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C60.7 0 32 28.7 32 64l0 224 112 0c6.1 0 11.6 3.4 14.3 8.8L176 332.2l49.7-99.4c2.7-5.4 8.3-8.8 14.3-8.8s11.6 3.4 14.3 8.8L281.9 288l70.1 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0c-6.1 0-11.6-3.4-14.3-8.8L240 275.8l-49.7 99.4c-2.7 5.4-8.3 8.8-14.3 8.8s-11.6-3.4-14.3-8.8L134.1 320 32 320l0 128c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L256 0 96 0zM288 0l0 128 128 0L288 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM111 257.1l26.8 89.2 31.6-90.3c3.4-9.6 12.5-16.1 22.7-16.1s19.3 6.4 22.7 16.1l31.6 90.3L273 257.1c3.8-12.7 17.2-19.9 29.9-16.1s19.9 17.2 16.1 29.9l-48 160c-3 10-12 16.9-22.4 17.1s-19.8-6.2-23.2-16.1L192 336.6l-33.3 95.3c-3.4 9.8-12.8 16.3-23.2 16.1s-19.5-7.1-22.4-17.1l-48-160c-3.8-12.7 3.4-26.1 16.1-29.9s26.1 3.4 29.9 16.1z\"},\"child\":[]}]})(props);\n};\nexport function FaFileZipper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-6.3 71.8c3.7-14 16.4-23.8 30.9-23.8l14.8 0c14.5 0 27.2 9.7 30.9 23.8l23.5 88.2c1.4 5.4 2.1 10.9 2.1 16.4c0 35.2-28.8 63.7-64 63.7s-64-28.5-64-63.7c0-5.5 .7-11.1 2.1-16.4l23.5-88.2zM112 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z\"},\"child\":[]}]})(props);\n};\nexport function FaFillDrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6l319.2 0 42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.6 9.4C74.1-3.1 53.9-3.1 41.4 9.4s-12.5 32.8 0 45.3L122.7 136 30.6 228.1c-37.5 37.5-37.5 98.3 0 135.8L148.1 481.4c37.5 37.5 98.3 37.5 135.8 0L474.3 290.9c28.1-28.1 28.1-73.7 0-101.8L322.9 37.7c-28.1-28.1-73.7-28.1-101.8 0L168 90.7 86.6 9.4zM168 181.3l49.4 49.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136l53.1-53.1c3.1-3.1 8.2-3.1 11.3 0L429.1 234.3c3.1 3.1 3.1 8.2 0 11.3L386.7 288 67.5 288c1.4-5.4 4.2-10.4 8.4-14.6L168 181.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFilterCircleDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM288 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm120.8-32.6c.6-.9 1.8-2.1 4.2-3.4c5.1-2.7 12.5-4.1 18.7-4c8.2 .1 17.1 1.8 26.4 4.1c8.6 2.1 17.3-3.1 19.4-11.7s-3.1-17.3-11.7-19.4c-5.6-1.4-11.6-2.7-17.9-3.7l0-9.4c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 9.5c-6.1 1.2-12.3 3.2-18 6.3c-11.8 6.3-23 18.4-21.8 37.2c1 16 11.7 25.3 21.6 30.7c8.8 4.7 19.7 7.8 28.6 10.3l1.8 .5c10.3 2.9 17.9 5.2 23.2 8.3c4.5 2.7 4.7 4.2 4.7 5.6c.1 2.4-.5 3.7-1 4.5c-.6 1-1.8 2.2-4 3.3c-4.7 2.5-11.8 3.8-18.5 3.6c-9.5-.3-18.5-3.1-29.9-6.8c-1.9-.6-3.8-1.2-5.8-1.8c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20c1.6 .5 3.3 1 5 1.6c0 0 0 0 0 0s0 0 0 0c7 2.3 15.1 4.8 23.7 6.6l0 11.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-10.8c6.2-1.1 12.5-3.1 18.3-6.2c12.1-6.5 22.3-18.7 21.7-36.9c-.5-16.2-10.3-26.3-20.5-32.3c-9.4-5.6-21.2-8.9-30.5-11.5l-.2 0c-10.4-2.9-18.3-5.2-23.9-8.2c-4.8-2.6-4.8-4-4.8-4.5c0 0 0 0 0-.1c-.1-1.9 .3-2.9 .8-3.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFilterCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 22.9C10.5 8.9 24.5 0 40 0L472 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L396.4 195.6C316.2 212.1 256 283 256 368c0 27.4 6.3 53.4 17.5 76.5c-1.6-.8-3.2-1.8-4.7-2.9l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 65.3C-.7 53.4-2.8 36.8 3.9 22.9zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFingerprint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256C48 141.1 141.1 48 256 48c63.1 0 119.6 28.1 157.8 72.5c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0C114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6c-15.2 5-18.7 23.7-8.3 35.9c7.1 8.3 18.8 10.8 29.4 7.9c10.6-2.9 21.8-4.4 33.4-4.4c70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3c-1.7 14.6 9.4 27.8 24.2 27.8c11.8 0 21.9-8.6 23.3-20.3c3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4C93.7 178 80 215.4 80 256l0 24.9c0 24.2-2.6 48.4-7.8 71.9C68.8 368.4 80.1 384 96.1 384c10.5 0 19.9-7 22.2-17.3c6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1c7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1c-3.8 14.3 6.7 29 21.5 29c9.5 0 17.9-6.2 20.4-15.4c10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9c-2.7 13.9 7.7 27.2 21.8 27.2c10.2 0 19-7 21-17c7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFireBurner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.7 48.3L358 34.5c5.4-6.1 13.3-8.8 20.9-8.9c7.2 0 14.3 2.6 19.9 7.8c19.7 18.3 39.8 43.2 55 70.6C469 131.2 480 162.2 480 192.2C480 280.8 408.7 352 320 352c-89.6 0-160-71.3-160-159.8c0-37.3 16-73.4 36.8-104.5c20.9-31.3 47.5-59 70.9-80.2C273.4 2.3 280.7-.2 288 0c14.1 .3 23.8 11.4 32.7 21.6c0 0 0 0 0 0c2 2.3 4 4.6 6 6.7l19 19.9zM384 240.2c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C293 167.1 256 203.6 256 240.2c0 35.3 28.7 64 64 64s64-28.7 64-64zM32 288c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64 448 0 0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l0-96zM320 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm160-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM192 480a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFireExtinguisher (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.3 7.3C507.7 13.3 512 22.4 512 32l0 96c0 9.6-4.3 18.7-11.7 24.7s-17.2 8.5-26.6 6.6l-160-32C301.5 124.9 292 115.7 289 104l-65 0 0 34.8c37.8 18 64 56.5 64 101.2l0 144L64 384l0-144c0-44.7 26.2-83.2 64-101.2l0-28.8c-36.2 11.1-66 36.9-82.3 70.5c-5.8 11.9-20.2 16.9-32.1 11.1S-3.3 171.4 2.5 159.5C26.7 109.8 72.7 72.6 128 60.4L128 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 24 65 0c3-11.7 12.5-20.9 24.7-23.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM288 416l0 32c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64l0-32 224 0zM176 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFireFlameCurved (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0C198.4 0 208 9.6 208 21.3V43.5c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7C384 434 306 512 209.7 512H192C86 512 0 426 0 320v-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6C85.9 176 96 186.1 96 198.6V288c0 35.3 28.7 64 64 64s64-28.7 64-64v-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7c0-27.7 9-54.8 25.6-76.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFireFlameSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6C0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5c0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z\"},\"child\":[]}]})(props);\n};\nexport function FaFishFins (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5c-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.6 4.9S-3 163.3 4.2 175.9L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.6 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3c15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8c39.2-29.4 67.2-64.7 81.6-89.5c5.8-9.9 5.8-22.2 0-32.1c-14.4-24.8-42.5-60.1-81.6-89.5c-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8c4.7 9.2 4.7 20.1 0 29.3c-14.1 27.4-41.9 66.8-81 99.8C452.3 403.5 399.4 432 336 432s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9S-3 348.7 4.2 336.1L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagCheckered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80 0-66L0 64 0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5L64 252.6 64 318l48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15c-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6L128 173.2 128 98 64 114l0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagUsa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5c46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 136.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 203.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 232.3l0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3L64 299.1l0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4L448 328.3l0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4c-37.9-19-81.3-23.7-122.5-13.4L64 400l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-70.5 0-32.7 0-63.3 0-32.7 0-63.3 0-32.7L0 64 0 32C0 14.3 14.3 0 32 0zm80 96A16 16 0 1 0 80 96a16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFlaskVial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175 389.4c-9.8 16-15 34.3-15 53.1c-10 3.5-20.8 5.5-32 5.5c-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L96 0l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 245.9-49 79.6zM96 64l0 96 64 0 0-96L96 64zM352 0L480 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 150.9L629.7 406.2c6.7 10.9 10.3 23.5 10.3 36.4c0 38.3-31.1 69.4-69.4 69.4l-309.2 0c-38.3 0-69.4-31.1-69.4-69.4c0-12.8 3.6-25.4 10.3-36.4L320 214.9 320 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0zm32 64l0 160c0 5.9-1.6 11.7-4.7 16.8L330.5 320l171 0-48.8-79.2c-3.1-5-4.7-10.8-4.7-16.8l0-160-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z\"},\"child\":[]}]})(props);\n};\nexport function FaFloppyDisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm0 96c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaFlorinSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0L98.9 396.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 480L64 480c-35.3 0-64-28.7-64-64L0 192l512 0 0 224c0 35.3-28.7 64-64 64zm64-320L0 160 0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64zM184 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32l0 96L0 384c0 35.3 28.7 64 64 64l192 0 0-64L64 384l0-224 192 0 0-64L64 96l0-64zM288 192c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4L409.4 9.4c-6-6-14.1-9.4-22.6-9.4L320 0c-17.7 0-32 14.3-32 32l0 160zm0 288c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-98.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L320 288c-17.7 0-32 14.3-32 32l0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaFont (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z\"},\"child\":[]}]})(props);\n};\nexport function FaFootball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.5 25.4c-13.5 3.3-26.4 7.2-38.6 11.7C142.9 61.6 96.7 103.6 66 153.6C47.8 183.4 35.1 215.9 26.9 249L264.5 486.6c13.5-3.3 26.4-7.2 38.6-11.7c66-24.5 112.2-66.5 142.9-116.5c18.3-29.8 30.9-62.3 39.1-95.3L247.5 25.4zM495.2 205.3c6.1-56.8 1.4-112.2-7.7-156.4c-2.7-12.9-13-22.9-26.1-25.1c-58.2-9.7-109.9-12-155.6-7.9L495.2 205.3zM206.1 496L16.8 306.7c-6.1 56.8-1.4 112.2 7.7 156.4c2.7 12.9 13 22.9 26.1 25.1c58.2 9.7 109.9 12 155.6 7.9zm54.6-331.3c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6zm-48 48c6.2-6.2 16.4-6.2 22.6 0l64 64c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-64-64c-6.2-6.2-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaForwardFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.4 445c11.2 5.3 24.5 3.6 34.1-4.4L224 297.7 224 416c0 12.4 7.2 23.7 18.4 29s24.5 3.6 34.1-4.4L448 297.7 448 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 118.3L276.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S224 83.6 224 96l0 118.3L52.5 71.4c-9.5-7.9-22.8-9.7-34.1-4.4S0 83.6 0 96L0 416c0 12.4 7.2 23.7 18.4 29z\"},\"child\":[]}]})(props);\n};\nexport function FaForwardStep (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4l192 160L256 241l0-145c0-17.7 14.3-32 32-32s32 14.3 32 32l0 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-145-11.5 9.6-192 160z\"},\"child\":[]}]})(props);\n};\nexport function FaForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M52.5 440.6c-9.5 7.9-22.8 9.7-34.1 4.4S0 428.4 0 416L0 96C0 83.6 7.2 72.3 18.4 67s24.5-3.6 34.1 4.4L224 214.3l0 41.7 0 41.7L52.5 440.6zM256 352l0-96 0-128 0-32c0-12.4 7.2-23.7 18.4-29s24.5-3.6 34.1 4.4l192 160c7.3 6.1 11.5 15.1 11.5 24.6s-4.2 18.5-11.5 24.6l-192 160c-9.5 7.9-22.8 9.7-34.1 4.4s-18.4-16.6-18.4-29l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaFrancSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 32C62.3 32 48 46.3 48 64l0 160 0 96-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFrog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9c0 21.8-11.7 41.9-30.7 52.7L400.8 323.5 493.3 416l50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7c-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2c27.9-18.5 65.9-15.4 90.5 9.2c24.7 24.7 27.7 62.9 9 90.9c-2.6 3.8-5.6 7.5-9 10.9L261.8 416l90.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-35.3 0-64-28.7-64-64C0 249.6 127 112.9 289.3 97.5C296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaFutbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"},\"child\":[]}]})(props);\n};\nexport function FaG (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6C437.8 389.6 341.4 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57c13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"},\"child\":[]}]})(props);\n};\nexport function FaGamepad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64C86 64 0 150 0 256S86 448 192 448l256 0c106 0 192-86 192-192s-86-192-192-192L192 64zM496 168a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM392 304a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM168 200c0-13.3 10.7-24 24-24s24 10.7 24 24l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGasPump (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-64L384 64c-8.8-8.8-8.8-23.2 0-32s23.2-8.8 32 0l77.3 77.3c12 12 18.7 28.3 18.7 45.3l0 13.5 0 24 0 32 0 152c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 144c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaGaugeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64c0-17.4-6.9-33.1-18.1-44.6L366 161.7c5.3-12.1-.2-26.3-12.3-31.6s-26.3 .2-31.6 12.3L257.9 288c-.6 0-1.3 0-1.9 0c-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGaugeSimpleHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-15.9-5.8-30.4-15.3-41.6l76.6-147.4c6.1-11.8 1.5-26.3-10.2-32.4s-26.2-1.5-32.4 10.2L262.1 288.3c-2-.2-4-.3-6.1-.3c-35.3 0-64 28.7-64 64s28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaGaugeSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaGauge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm320 96c0-26.9-16.5-49.9-40-59.3L280 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 204.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGavel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-120 120c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l4-4L325.4 293.4l-4 4c-12.5 12.5-12.5 32.8 0 45.3l16 16c12.5 12.5 32.8 12.5 45.3 0l120-120c12.5-12.5 12.5-32.8 0-45.3l-16-16c-12.5-12.5-32.8-12.5-45.3 0l-4 4L330.6 74.6l4-4c12.5-12.5 12.5-32.8 0-45.3l-16-16zm-152 288c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l48 48c12.5 12.5 32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-1.4-1.4L272 285.3 226.7 240 168 298.7l-1.4-1.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaGears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308.5 135.3c7.1-6.3 9.9-16.2 6.2-25c-2.3-5.3-4.8-10.5-7.6-15.5L304 89.4c-3-5-6.3-9.9-9.8-14.6c-5.7-7.6-15.7-10.1-24.7-7.1l-28.2 9.3c-10.7-8.8-23-16-36.2-20.9L199 27.1c-1.9-9.3-9.1-16.7-18.5-17.8C173.9 8.4 167.2 8 160.4 8l-.7 0c-6.8 0-13.5 .4-20.1 1.2c-9.4 1.1-16.6 8.6-18.5 17.8L115 56.1c-13.3 5-25.5 12.1-36.2 20.9L50.5 67.8c-9-3-19-.5-24.7 7.1c-3.5 4.7-6.8 9.6-9.9 14.6l-3 5.3c-2.8 5-5.3 10.2-7.6 15.6c-3.7 8.7-.9 18.6 6.2 25l22.2 19.8C32.6 161.9 32 168.9 32 176s.6 14.1 1.7 20.9L11.5 216.7c-7.1 6.3-9.9 16.2-6.2 25c2.3 5.3 4.8 10.5 7.6 15.6l3 5.2c3 5.1 6.3 9.9 9.9 14.6c5.7 7.6 15.7 10.1 24.7 7.1l28.2-9.3c10.7 8.8 23 16 36.2 20.9l6.1 29.1c1.9 9.3 9.1 16.7 18.5 17.8c6.7 .8 13.5 1.2 20.4 1.2s13.7-.4 20.4-1.2c9.4-1.1 16.6-8.6 18.5-17.8l6.1-29.1c13.3-5 25.5-12.1 36.2-20.9l28.2 9.3c9 3 19 .5 24.7-7.1c3.5-4.7 6.8-9.5 9.8-14.6l3.1-5.4c2.8-5 5.3-10.2 7.6-15.5c3.7-8.7 .9-18.6-6.2-25l-22.2-19.8c1.1-6.8 1.7-13.8 1.7-20.9s-.6-14.1-1.7-20.9l22.2-19.8zM112 176a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM504.7 500.5c6.3 7.1 16.2 9.9 25 6.2c5.3-2.3 10.5-4.8 15.5-7.6l5.4-3.1c5-3 9.9-6.3 14.6-9.8c7.6-5.7 10.1-15.7 7.1-24.7l-9.3-28.2c8.8-10.7 16-23 20.9-36.2l29.1-6.1c9.3-1.9 16.7-9.1 17.8-18.5c.8-6.7 1.2-13.5 1.2-20.4s-.4-13.7-1.2-20.4c-1.1-9.4-8.6-16.6-17.8-18.5L583.9 307c-5-13.3-12.1-25.5-20.9-36.2l9.3-28.2c3-9 .5-19-7.1-24.7c-4.7-3.5-9.6-6.8-14.6-9.9l-5.3-3c-5-2.8-10.2-5.3-15.6-7.6c-8.7-3.7-18.6-.9-25 6.2l-19.8 22.2c-6.8-1.1-13.8-1.7-20.9-1.7s-14.1 .6-20.9 1.7l-19.8-22.2c-6.3-7.1-16.2-9.9-25-6.2c-5.3 2.3-10.5 4.8-15.6 7.6l-5.2 3c-5.1 3-9.9 6.3-14.6 9.9c-7.6 5.7-10.1 15.7-7.1 24.7l9.3 28.2c-8.8 10.7-16 23-20.9 36.2L315.1 313c-9.3 1.9-16.7 9.1-17.8 18.5c-.8 6.7-1.2 13.5-1.2 20.4s.4 13.7 1.2 20.4c1.1 9.4 8.6 16.6 17.8 18.5l29.1 6.1c5 13.3 12.1 25.5 20.9 36.2l-9.3 28.2c-3 9-.5 19 7.1 24.7c4.7 3.5 9.5 6.8 14.6 9.8l5.4 3.1c5 2.8 10.2 5.3 15.5 7.6c8.7 3.7 18.6 .9 25-6.2l19.8-22.2c6.8 1.1 13.8 1.7 20.9 1.7s14.1-.6 20.9-1.7l19.8 22.2zM464 304a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaGem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5l57.4 95.6L63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8L301.5 179.8l57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"},\"child\":[]}]})(props);\n};\nexport function FaGenderless (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 144a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm0 288a176 176 0 1 0 0-352 176 176 0 1 0 0 352z\"},\"child\":[]}]})(props);\n};\nexport function FaGhost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40.1 467.1l-11.2 9c-3.2 2.5-7.1 3.9-11.1 3.9C8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8c-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.5 68.8L225.3 128l-1.3 0-72 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zM64 88c0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40c0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4L256 85.5l-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0C103.4 0 64 39.4 64 88zm336 0c0 22.1-17.9 40-40 40l-72 0-1.3 0 34.8-59.2C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40zM32 288l0 176c0 26.5 21.5 48 48 48l144 0 0-224L32 288zM288 512l144 0c26.5 0 48-21.5 48-48l0-176-192 0 0 224z\"},\"child\":[]}]})(props);\n};\nexport function FaGifts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200.6 32C205 19.5 198.5 5.8 186 1.4S159.8 3.5 155.4 16L144.7 46.2l-9.9-29.8C130.6 3.8 117-3 104.4 1.2S85 19 89.2 31.6l8.3 25-27.4-20c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5L70.2 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l152.6 0c-5.4-9.4-8.6-20.3-8.6-32l0-224c0-29.9 20.5-55 48.2-62c1.8-31 17.1-58.2 40.1-76.1C271.7 104.7 256.9 96 240 96l-22.2 0 28.3-20.6c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3L192.5 55.1 200.6 32zM363.5 185.5L393.1 224 344 224c-13.3 0-24-10.7-24-24c0-13.1 10.8-24 24.2-24c7.6 0 14.7 3.5 19.3 9.5zM272 200c0 8.4 1.4 16.5 4.1 24l-4.1 0c-26.5 0-48 21.5-48 48l0 80 192 0 0-96 32 0 0 96 192 0 0-80c0-26.5-21.5-48-48-48l-4.1 0c2.7-7.5 4.1-15.6 4.1-24c0-39.9-32.5-72-72.2-72c-22.4 0-43.6 10.4-57.3 28.2L432 195.8l-30.5-39.6c-13.7-17.8-35-28.2-57.3-28.2c-39.7 0-72.2 32.1-72.2 72zM224 464c0 26.5 21.5 48 48 48l144 0 0-128-192 0 0 80zm224 48l144 0c26.5 0 48-21.5 48-48l0-80-192 0 0 128zm96-312c0 13.3-10.7 24-24 24l-49.1 0 29.6-38.5c4.6-5.9 11.7-9.5 19.3-9.5c13.4 0 24.2 10.9 24.2 24z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassWaterDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64l251.3 0L301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0s-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5c-6.1-7.7-17.5-7.7-23.6 0C161.7 125.9 128 172 128 196c0 33.1 28.7 60 64 60s64-26.9 64-60z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5L66.4 64l251.3 0L311 156.5l-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0c-20.9-10.4-45.5-10.4-66.4 0c-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGlasses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M118.6 80c-11.5 0-21.4 7.9-24 19.1L57 260.3c20.5-6.2 48.3-12.3 78.7-12.3c32.3 0 61.8 6.9 82.8 13.5c10.6 3.3 19.3 6.7 25.4 9.2c3.1 1.3 5.5 2.4 7.3 3.2c.9 .4 1.6 .7 2.1 1l.6 .3 .2 .1c0 0 .1 0 .1 0c0 0 0 0 0 0s0 0 0 0L247.9 288s0 0 0 0l6.3-12.7c5.8 2.9 10.4 7.3 13.5 12.7l40.6 0c3.1-5.3 7.7-9.8 13.5-12.7l6.3 12.7s0 0 0 0c-6.3-12.7-6.3-12.7-6.3-12.7s0 0 0 0s0 0 0 0c0 0 .1 0 .1 0l.2-.1 .6-.3c.5-.2 1.2-.6 2.1-1c1.8-.8 4.2-1.9 7.3-3.2c6.1-2.6 14.8-5.9 25.4-9.2c21-6.6 50.4-13.5 82.8-13.5c30.4 0 58.2 6.1 78.7 12.3L481.4 99.1c-2.6-11.2-12.6-19.1-24-19.1c-3.1 0-6.2 .6-9.2 1.8L416.9 94.3c-12.3 4.9-26.3-1.1-31.2-13.4s1.1-26.3 13.4-31.2l31.3-12.5c8.6-3.4 17.7-5.2 27-5.2c33.8 0 63.1 23.3 70.8 56.2l43.9 188c1.7 7.3 2.9 14.7 3.5 22.1c.3 1.9 .5 3.8 .5 5.7l0 6.7 0 41.3 0 16c0 61.9-50.1 112-112 112l-44.3 0c-59.4 0-108.5-46.4-111.8-105.8L306.6 352l-37.2 0-1.2 22.2C264.9 433.6 215.8 480 156.3 480L112 480C50.1 480 0 429.9 0 368l0-16 0-41.3L0 304c0-1.9 .2-3.8 .5-5.7c.6-7.4 1.8-14.8 3.5-22.1l43.9-188C55.5 55.3 84.8 32 118.6 32c9.2 0 18.4 1.8 27 5.2l31.3 12.5c12.3 4.9 18.3 18.9 13.4 31.2s-18.9 18.3-31.2 13.4L127.8 81.8c-2.9-1.2-6-1.8-9.2-1.8zM64 325.4L64 368c0 26.5 21.5 48 48 48l44.3 0c25.5 0 46.5-19.9 47.9-45.3l2.5-45.6c-2.3-.8-4.9-1.7-7.5-2.5c-17.2-5.4-39.9-10.5-63.6-10.5c-23.7 0-46.2 5.1-63.2 10.5c-3.1 1-5.9 1.9-8.5 2.9zM512 368l0-42.6c-2.6-.9-5.5-1.9-8.5-2.9c-17-5.4-39.5-10.5-63.2-10.5c-23.7 0-46.4 5.1-63.6 10.5c-2.7 .8-5.2 1.7-7.5 2.5l2.5 45.6c1.4 25.4 22.5 45.3 47.9 45.3l44.3 0c26.5 0 48-21.5 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 256c0 22.2-1.2 43.6-3.3 64l-185.3 0c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64l185.3 0c2.2 20.4 3.3 41.8 3.3 64zm28.8-64l123.1 0c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64l-123.1 0c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32l-116.7 0c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0l-176.6 0c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0L18.6 160C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192l123.1 0c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64L8.1 320C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6l176.6 0c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352l116.7 0zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6l116.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGolfBallTee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192c0 66.8-34.1 125.6-85.8 160L85.8 352C34.1 317.6 0 258.8 0 192C0 86 86 0 192 0S384 86 384 192zM242.1 256.6c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zm-52.3-49.3c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4c0 18.5-15 33.5-33.5 33.5zm113.5-17.5c0 18.5-15 33.5-33.5 33.5c-4.9 0-9.1 5.1-5.4 8.4c5.9 5.2 13.7 8.4 22.1 8.4c18.5 0 33.5-15 33.5-33.5c0-8.5-3.2-16.2-8.4-22.1c-3.3-3.7-8.4 .5-8.4 5.4zM96 416c0-17.7 14.3-32 32-32l64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0c-8.8 0-16 7.2-16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16c0-8.8-7.2-16-16-16l-16 0c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGopuram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 0 32 0 64c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32l0 96c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-64 0 0-160-32 0 0-128-32 0 0-96-32 0 0 96 32 0 0 128 32 0 0 160-80 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48-80 0 0-160 32 0 0-128 32 0 0-96-32 0 0 96-32 0 0 128-32 0 0 160-64 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-96c0-17.7 14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l0-64 0-32 0-8c0-13.3 10.7-24 24-24zM256 272c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-32-80l0 32 64 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaGraduationCap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThanEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M52.1 93.7C35.7 87.1 27.7 68.5 34.3 52.1s25.2-24.4 41.6-17.8l320 128C408 167.1 416 178.9 416 192s-8 24.9-20.1 29.7l-320 128c-16.4 6.6-35-1.4-41.6-17.8s1.4-35 17.8-41.6L297.8 192 52.1 93.7zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3.4 81.7c-7.9 15.8-1.5 35 14.3 42.9L280.5 256 17.7 387.4C1.9 395.3-4.5 414.5 3.4 430.3s27.1 22.2 42.9 14.3l320-160c10.8-5.4 17.7-16.5 17.7-28.6s-6.8-23.2-17.7-28.6l-320-160c-15.8-7.9-35-1.5-42.9 14.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLinesVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"},\"child\":[]}]})(props);\n};\nexport function FaGripVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40 352l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm192 0l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 320c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 192l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zM40 160c-22.1 0-40-17.9-40-40L0 72C0 49.9 17.9 32 40 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0zM232 32l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaGrip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 136c0-22.1-17.9-40-40-40L40 96C17.9 96 0 113.9 0 136l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM288 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm32-192l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM448 328c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaGroupArrowsRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.1 71.9c16.9-5 26.6-22.9 21.5-39.8s-22.9-26.6-39.8-21.5c-21.5 6.4-41.8 15.5-60.6 27C114.3 34 105.4 32 96 32C60.7 32 32 60.7 32 96c0 9.4 2 18.3 5.6 26.3c-11.5 18.7-20.6 39-27 60.6c-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c4.3-14.6 10.4-28.5 17.9-41.4c2 .2 4.1 .3 6.1 .3c35.3 0 64-28.7 64-64c0-2.1-.1-4.1-.3-6.1c12.9-7.5 26.8-13.6 41.4-17.9zm128-61.3c-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c14.6 4.3 28.5 10.4 41.4 17.9c-.2 2-.3 4.1-.3 6.1c0 35.3 28.7 64 64 64c2.1 0 4.1-.1 6.2-.3c7.5 12.9 13.6 26.8 17.9 41.4c5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.6c3.6-8 5.6-16.9 5.6-26.3c0-35.3-28.7-64-64-64c-9.4 0-18.3 2-26.3 5.6c-18.7-11.5-39-20.6-60.6-27zM71.9 310.9c-5-16.9-22.9-26.6-39.8-21.5s-26.6 22.9-21.5 39.8c6.4 21.5 15.5 41.8 27 60.6C34 397.7 32 406.6 32 416c0 35.3 28.7 64 64 64c9.4 0 18.3-2 26.3-5.6c18.7 11.5 39 20.6 60.6 27c16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-14.6-4.3-28.5-10.4-41.4-17.9c.2-2 .3-4.1 .3-6.2c0-35.3-28.7-64-64-64c-2.1 0-4.1 .1-6.2 .3c-7.5-12.9-13.6-26.8-17.9-41.4zm429.4 18.3c5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-4.3 14.6-10.4 28.5-17.9 41.4c-2-.2-4.1-.3-6.2-.3c-35.3 0-64 28.7-64 64c0 2.1 .1 4.1 .3 6.2c-12.9 7.5-26.8 13.6-41.4 17.9c-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.6-27c8 3.6 16.9 5.6 26.3 5.6c35.3 0 64-28.7 64-64c0-9.4-2-18.3-5.6-26.3c11.5-18.7 20.6-39 27-60.6zM192.8 256.8c0-15.6 5.6-29.9 14.9-41.1L223 231c6.6 6.6 17.8 1.9 17.8-7.4l0-60.5c0-5.7-4.7-10.4-10.4-10.4l-60.5 0c-9.3 0-13.9 11.2-7.4 17.8l11.2 11.2c-17.9 19.8-28.9 46.2-28.9 75.1c0 43.6 24.9 81.3 61.1 99.8c11.8 6 26.3 1.4 32.3-10.4s1.4-26.3-10.4-32.3c-20.8-10.6-34.9-32.2-34.9-57zm93.1-58.6c20.8 10.6 34.9 32.2 34.9 57c0 15.6-5.6 29.9-14.9 41.1L290.6 281c-6.6-6.6-17.8-1.9-17.8 7.4l0 60.5c0 5.7 4.7 10.4 10.4 10.4l60.5 0c9.3 0 13.9-11.2 7.4-17.8l-11.2-11.2c17.9-19.8 28.9-46.2 28.9-75.1c0-43.6-24.9-81.3-61.1-99.8c-11.8-6-26.3-1.4-32.3 10.4s-1.4 26.3 10.4 32.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGuaraniSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-17.7 0-32 14.3-32 32l0 34.7C69.2 81.9 0 160.9 0 256s69.2 174.1 160 189.3l0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-34.7c90.8-15.2 160-94.2 160-189.3c0-17.7-14.3-32-32-32l-128 0 0-92c22.1 5.7 41.8 17.1 57.6 32.6c12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C299 92 263.5 73.3 224 66.7L224 32c0-17.7-14.3-32-32-32zM160 132L160 380c-55.2-14.2-96-64.3-96-124s40.8-109.8 96-124zM224 380l0-92 92 0c-11.6 45-47 80.4-92 92z\"},\"child\":[]}]})(props);\n};\nexport function FaGuitar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6c-11 11-18 24.6-21.4 39.6c-3.7 16.6-19.1 30.7-36.1 31.6c-25.6 1.3-49.3 10.7-67.3 28.6C-16 328.4-7.6 409.4 47.5 464.5s136.1 63.5 180.9 18.7c17.9-17.9 27.4-41.7 28.6-67.3c.9-17 15-32.3 31.6-36.1c15-3.4 28.6-10.5 39.6-21.4c31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaGun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8L32 64C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352l104.5 0c23.7 0 44.8-14.9 52.7-37.2L400.9 240l31.1 0c8.5 0 16.6-3.4 22.6-9.4L477.3 208l66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304L229 304l16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 256l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128L64 192 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHammer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M413.5 237.5c-28.2 4.8-58.2-3.6-80-25.4l-38.1-38.1C280.4 159 272 138.8 272 117.6l0-12.1L192.3 62c-5.3-2.9-8.6-8.6-8.3-14.7s3.9-11.5 9.5-14l47.2-21C259.1 4.2 279 0 299.2 0l18.1 0c36.7 0 72 14 98.7 39.1l44.6 42c24.2 22.8 33.2 55.7 26.6 86L503 183l8-8c9.4-9.4 24.6-9.4 33.9 0l24 24c9.4 9.4 9.4 24.6 0 33.9l-88 88c-9.4 9.4-24.6 9.4-33.9 0l-24-24c-9.4-9.4-9.4-24.6 0-33.9l8-8-17.5-17.5zM27.4 377.1L260.9 182.6c3.5 4.9 7.5 9.6 11.8 14l38.1 38.1c6 6 12.4 11.2 19.2 15.7L134.9 484.6c-14.5 17.4-36 27.4-58.6 27.4C34.1 512 0 477.8 0 435.7c0-22.6 10.1-44.1 27.4-58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHamsa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6c0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71s-119.4-25.8-160.6-71L9 345.9c-5.8-6.4-9-14.7-9-23.3C0 303.5 15.5 288 34.6 288zM256 288c-38.4 0-76.8 35.8-90.6 50.2c-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHandBackFist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0C117.5 0 96 21.5 96 48l0 48 0 28.5L96 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-26.7-9 7.5C40.4 169 32 187 32 206L32 244c0 38 16.9 74 46.1 98.3L128 384l0 96c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-105.3c46.9-19 80-65 80-118.7l0-80 0-16 0-16c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 83.5 329.3 64 304 64c-12.4 0-23.6 4.7-32.1 12.3C270 51.5 249.3 32 224 32c-12.4 0-23.6 4.7-32.1 12.3C190 19.5 169.3 0 144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM240 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80 16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48-16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-16 80a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM240 432a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm-48-48a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHandFist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 24l0 10.5c6.4 1.2 12.6 2.7 18.2 4.2c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17c-10.9-2.9-21.1-4.9-30.2-5c-7.3-.1-14.7 1.7-19.4 4.4c-2.1 1.3-3.1 2.4-3.5 3c-.3 .5-.7 1.2-.7 2.8c0 .3 0 .5 0 .6c.2 .2 .9 1.2 3.3 2.6c5.8 3.5 14.4 6.2 27.4 10.1l.9 .3s0 0 0 0c11.1 3.3 25.9 7.8 37.9 15.3c13.7 8.6 26.1 22.9 26.4 44.9c.3 22.5-11.4 38.9-26.7 48.5c-6.7 4.1-13.9 7-21.3 8.8l0 10.6c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11.4c-9.5-2.3-18.2-5.3-25.6-7.8c-2.1-.7-4.1-1.4-6-2c-12.6-4.2-19.4-17.8-15.2-30.4s17.8-19.4 30.4-15.2c2.6 .9 5 1.7 7.3 2.5c13.6 4.6 23.4 7.9 33.9 8.3c8 .3 15.1-1.6 19.2-4.1c1.9-1.2 2.8-2.2 3.2-2.9c.4-.6 .9-1.8 .8-4.1l0-.2c0-1 0-2.1-4-4.6c-5.7-3.6-14.3-6.4-27.1-10.3l-1.9-.6c-10.8-3.2-25-7.5-36.4-14.4c-13.5-8.1-26.5-22-26.6-44.1c-.1-22.9 12.9-38.6 27.7-47.4c6.4-3.8 13.3-6.4 20.2-8.2L264 24c0-13.3 10.7-24 24-24s24 10.7 24 24zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.5 6.6C278.3 2.5 283 0 288 0s9.7 2.5 12.5 6.6L366.8 103C378 119.3 384 138.6 384 158.3l0 1.7c0 53-43 96-96 96s-96-43-96-96l0-1.7c0-19.8 6-39 17.2-55.3L275.5 6.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M7.8 207.7c-13.1-17.8-9.3-42.8 8.5-55.9L142.9 58.5C166.2 41.3 194.5 32 223.5 32L384 32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-36.8 0-44.9 36c-22.7 18.2-50.9 28-80 28L304 224l-16 0-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-120.6 0L63.7 216.2c-17.8 13.1-42.8 9.3-55.9-8.5zM382.4 160c0 0 0 0 0 0l.9 0c-.3 0-.6 0-.9 0zM568.2 304.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 453.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 480 32 480c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 352c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 24l0 56-56 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l56 0 0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56 56 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-56 0 0-56c0-13.3-10.7-24-24-24L248 0c-13.3 0-24 10.7-24 24zM559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2l.9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHolding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M559.7 392.2c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 272 416c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-16 0-78.3 0c-29.1 0-57.3 9.9-80 28L68.8 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 160.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3zm-367-8.2c.3 0 .6 0 .9 0c0 0 0 0 0 0c-.3 0-.6 0-.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandLizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112C0 85.5 21.5 64 48 64l112 0 80 0 46.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 12 0 16 0 48c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8L273.9 352 240 352l-80 0-48 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l48 0 80 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-80 0L48 160c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHandMiddleFinger (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2c-26.5 0-48 21.5-48 48l0 7 0 73c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-64 0-32c0-26.5-21.5-48-48-48c-12.4 0-23.6 4.7-32.1 12.3C350 227.5 329.3 208 304 208c-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM93.3 51.2L175.9 240l-69.9 0L34.7 76.8C27.6 60.6 35 41.8 51.2 34.7s35.1 .3 42.1 16.5zm27 221.3l-.2-.5 69.9 0 26.1 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9l-11.6-11.6C77.5 429.5 64 396.9 64 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6c13.2 0 25.4 4 35.6 10.8c8.7-24.9 32.5-42.8 60.4-42.8c11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64L32 96zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32c0 13.2-4 25.4-10.8 35.6c24.9 8.7 42.8 32.5 42.8 60.4c0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32c0 13.2 4 25.4 10.8 35.6C177.9 364.3 160 388.1 160 416c0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0L32 32zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaHandScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32c0 25.3 19.5 46 44.3 47.9c-7.7 8.5-12.3 19.8-12.3 32.1c0 26.5 21.5 48 48 48l32 0 64 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3C444.8 76.8 413.9 64 381.7 64L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4L288 129.9c0 0 0 .1 0 .1L84 65.8C62.9 59.2 40.5 70.9 33.8 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 195.1c-11.9 4.8-21.3 14.9-25 27.8l-8.9 31.2L478.9 391C460.6 396.3 448 413 448 432c0 18.9 12.5 35.6 30.6 40.9C448.4 497.4 409.9 512 368 512l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6L288 352l-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7L288 384l7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6L320 384l25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7L320 352l-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456l-13.8 48.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456l-48.3-13.8c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408l13.8-48.3c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSpock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.9 23.7C242.3 6.6 224.8-3.5 207.7 1.1s-27.2 22.1-22.6 39.2L238 237.8c2.5 9.2-4.5 18.2-14 18.2c-6.4 0-12-4.2-13.9-10.3L166.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L99.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L156.8 448c43.1 41.1 100.4 64 160 64l10.9 0 8.2 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L443.5 247.1c-1.6 5.3-6.4 8.9-12 8.9c-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L355.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9c-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4s-14.6 41.3 1.4 56.6L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"},\"child\":[]}]})(props);\n};\nexport function FaHandcuffs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM192 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32 80c17.7 0 32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C280.3 229.6 320 286.2 320 352c0 88.4-71.6 160-160 160S0 440.4 0 352c0-65.8 39.7-122.4 96.5-146.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32zm0 320a96 96 0 1 0 0-192 96 96 0 1 0 0 192zm192-96c0-25.9-5.1-50.5-14.4-73.1c16.9-32.9 44.8-59.1 78.9-73.9c-.4-1.6-.5-3.3-.5-5.1l0-16c0-13.3 10.7-24 24-24l8 0c0-17.7 14.3-32 32-32s32 14.3 32 32l8 0c13.3 0 24 10.7 24 24l0 16c0 1.7-.2 3.4-.5 5.1C600.3 229.6 640 286.2 640 352c0 88.4-71.6 160-160 160c-62 0-115.8-35.3-142.4-86.9c9.3-22.5 14.4-47.2 14.4-73.1zm224 0a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM368 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsAslInterpreting (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l72 0 8 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7c8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20c-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20c8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5L194.9 124.6l81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4L133.6 92.3l23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-72 0-8 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7c-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20c22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20c-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.7-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsBound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C96 14.3 81.7 0 64 0S32 14.3 32 32l0 64 0 59.1 0 .7L32 192l0 21.9c0 14.2 5.1 27.9 14.3 38.7L131.6 352l-3.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 128 0 64 0 128 0 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7l0-21.9 0-36.2 0-.7L608 96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64 0 48.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8c-9.7-5.7-12.1-18.7-5.1-27.5L473 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C361 209.7 352 233.4 352 258.1l0 61.9 0 32-64 0 0-32 0-61.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2s-15.2 30.9-4.4 44.5l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5c-8.1 4.8-18.6 2.7-24.2-4.8L96 144.8 96 96l0-64zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0-128 0-64 0-128 0-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsBubbles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM32 160l.1 72.6c.1 52.2 24 101 64 133.1c-.1-1.9-.1-3.8-.1-5.7l0-8c0-71.8 37-138.6 97.9-176.7l60.2-37.6c8.6-5.4 17.9-8.4 27.3-9.4l45.9-79.5c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-78 135.1c-3.3 5.7-10.7 7.7-16.4 4.4s-7.7-10.7-4.4-16.4l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S214 5 207.4 16.5l-68 117.8s0 0 0 0s0 0 0 0l-43.3 75L96 160c0-17.7-14.4-32-32-32s-32 14.4-32 32zM332.1 88.5L307.5 131c13.9 4.5 26.4 13.7 34.7 27c.9 1.5 1.8 2.9 2.5 4.4l28.9-50c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-26.8 46.4c-.6 6-2.1 11.8-4.3 17.4l4.7 0 13.3 0s0 0 0 0l31.8 0 23-39.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM315.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C159.3 234.7 128 291.2 128 352l0 8c0 8.9 .8 17.6 2.2 26.1c35.4 8.2 61.8 40 61.8 77.9c0 6.3-.7 12.5-2.1 18.4C215.1 501 246.3 512 280 512l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0s0 0 0 0s0 0 0 0l-93.2 0L305 219.1c15-9.4 19.5-29.1 10.2-44.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsClapping (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16zm-98.7 7.1l32 48c4.9 7.4 2.9 17.3-4.4 22.2s-17.3 2.9-22.2-4.4l-32-48c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4c-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1c48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM424.9 18.7c7.4 4.9 9.3 14.8 4.4 22.2l-32 48c-4.9 7.4-14.8 9.3-22.2 4.4s-9.3-14.8-4.4-22.2l32-48c4.9-7.4 14.8-9.3 22.2-4.4z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHoldingChild (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm44.7 164.3L375.8 253c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8L255.5 181c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 104.8 295.3 96 320 96s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8l-19.8-16.7zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHoldingCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0a128 128 0 1 1 0 256A128 128 0 1 1 320 0zM40 64c22.1 0 40 17.9 40 40l0 40 0 80 0 40.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1c12.9-8.6 14.7-26.9 3.7-37.8l-15.2-15.2-32-32c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l32 32 15.2 15.2c0 0 0 0 0 0l25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 224l0-64 0-56C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 56 0 64 0 101.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3c0 0 0 0 0 0l15.2-15.2 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32-15.2 15.2c-11 11-9.2 29.2 3.7 37.8c9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3l0-40.2 0-80 0-40c0-22.1 17.9-40 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHolding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104l0 56 0 64L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3c0 0 0 0 0 0l-15.2-15.2-32-32c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l32 32 15.2 15.2c11 11 9.2 29.2-3.7 37.8c-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 224l0-80 0-40zm480 0l0 40 0 80 0 40.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1c-12.9-8.6-14.7-26.9-3.7-37.8l15.2-15.2 32-32c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-32 32-15.2 15.2c0 0 0 0 0 0l-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 224l0-64 0-56c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsPraying (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.2 4.8c3.2-2 6.6-3.3 10-4.1c4.7-1 9.6-.9 14.1 .1c7.7 1.8 14.8 6.5 19.4 13.6L514.6 194.2c8.8 13.1 13.4 28.6 13.4 44.4l0 73.5c0 6.9 4.4 13 10.9 15.2l79.2 26.4C631.2 358 640 370.2 640 384l0 96c0 9.9-4.6 19.3-12.5 25.4s-18.1 8.1-27.7 5.5L431 465.9c-56-14.9-95-65.7-95-123.7L336 224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-84.9c0-7-1.8-13.8-5.3-19.8L340.3 48.1c-1.7-3-2.9-6.1-3.6-9.3c-1-4.7-1-9.6 .1-14.1c1.9-8 6.8-15.2 14.3-19.9zm-62.4 0c7.5 4.6 12.4 11.9 14.3 19.9c1.1 4.6 1.2 9.4 .1 14.1c-.7 3.2-1.9 6.3-3.6 9.3L213.3 199.3c-3.5 6-5.3 12.9-5.3 19.8l0 84.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 118.2c0 58-39 108.7-95 123.7l-168.7 45c-9.6 2.6-19.9 .5-27.7-5.5S0 490 0 480l0-96c0-13.8 8.8-26 21.9-30.4l79.2-26.4c6.5-2.2 10.9-8.3 10.9-15.2l0-73.5c0-15.8 4.7-31.2 13.4-44.4L245.2 14.5c4.6-7.1 11.7-11.8 19.4-13.6c4.6-1.1 9.4-1.2 14.1-.1c3.5 .8 6.9 2.1 10 4.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHands (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160l-.1 72.6c-.1 52.2-24 101-64 133.1c.1-1.9 .1-3.8 .1-5.7l0-8c0-71.8-37-138.6-97.9-176.7l-60.2-37.6c-8.6-5.4-17.9-8.4-27.3-9.4L248.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l78 135.1c3.3 5.7 10.7 7.7 16.4 4.4s7.7-10.7 4.4-16.4l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S362 5 368.6 16.5l68 117.8s0 0 0 0s0 0 0 0l43.3 75L480 160c0-17.7 14.4-32 32-32s32 14.4 32 32zM243.9 88.5L268.5 131c-13.9 4.5-26.4 13.7-34.7 27c-.9 1.4-1.7 2.9-2.5 4.4l-28.9-50c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l26.8 46.4c.6 6 2.1 11.8 4.3 17.4l-4.7 0-13.3 0s0 0 0 0L179 216l-23-39.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM260.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C416.7 234.7 448 291.2 448 352l0 8c0 83.9-68.1 152-152 152l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L88 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0s0 0 0 0s0 0 0 0l93.2 0L271 219.1c-15-9.4-19.5-29.1-10.2-44.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeAngle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 248l0 3.3 69.7-69.7c21.9-21.9 21.9-57.3 0-79.2L535.6 24.4c-21.9-21.9-57.3-21.9-79.2 0L416.3 64.5c-2.7-.3-5.5-.5-8.3-.5L296 64c-37.1 0-67.6 28-71.6 64l-.4 0 0 120c0 22.1 17.9 40 40 40s40-17.9 40-40l0-72c0 0 0-.1 0-.1l0-15.9 16 0 136 0c0 0 0 0 .1 0l7.9 0c44.2 0 80 35.8 80 80l0 8zM336 192l0 56c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-118.6c-35.9 6.2-65.8 32.3-76 68.2L99.5 255.2 26.3 328.4c-21.9 21.9-21.9 57.3 0 79.2l78.1 78.1c21.9 21.9 57.3 21.9 79.2 0l37.7-37.7c.9 0 1.8 .1 2.7 .1l160 0c26.5 0 48-21.5 48-48c0-5.6-1-11-2.7-16l2.7 0c26.5 0 48-21.5 48-48c0-12.8-5-24.4-13.2-33c25.7-5 45.1-27.6 45.2-54.8l0-.4c-.1-30.8-25.1-55.8-56-55.8c0 0 0 0 0 0l-120 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSimpleSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM0 176L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6L41.2 128.5C17.9 131.8 0 151.8 0 176z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L550.2 352l41.8 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-76 0-4 0-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48-80 0c-26.5 0-48 21.5-48 48L0 304c0 26.5 21.5 48 48 48l108.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-135-105.8c-1.1-11.4-6.3-22.3-15.3-30.7l-134.2-123-23.4 18.2-26-20.3 77.2-60.1c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2l-89.7 72.6-25.8-20.3 81.8-66.2c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-35.5 23.7L38.8 5.1zM96 171.6L40.6 128 0 128 0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-180.4zM413.6 421.9L128 196.9 128 352l28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c.8-.8 1.5-1.7 2.2-2.6zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-96 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.4 85.2l-96.8 78.4c-16.1 13-19.2 36.4-7 53.1c12.9 17.8 38 21.3 55.3 7.8l99.3-77.2c7-5.4 17-4.2 22.5 2.8s4.2 17-2.8 22.5l-20.9 16.2L512 316.8 512 128l-.7 0-3.9-2.5L434.8 79c-15.3-9.8-33.2-15-51.4-15c-21.8 0-43 7.5-60 21.2zm22.8 124.4l-51.7 40.2C263 274.4 217.3 268 193.7 235.6c-22.2-30.5-16.6-73.1 12.7-96.8l83.2-67.3c-11.6-4.9-24.1-7.4-36.8-7.4C234 64 215.7 69.6 200 80l-72 48 0 224 28.2 0 91.4 83.4c19.6 17.9 49.9 16.5 67.8-3.1c5.5-6.1 9.2-13.2 11.1-20.6l17 15.6c19.5 17.9 49.9 16.6 67.8-2.9c4.5-4.9 7.8-10.6 9.9-16.5c19.4 13 45.8 10.3 62.1-7.5c17.9-19.5 16.6-49.9-2.9-67.8l-134.2-123zM16 128c-8.8 0-16 7.2-16 16L0 352c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-224-80 0zM48 320a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM544 128l0 224c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-208c0-8.8-7.2-16-16-16l-80 0zm32 208a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHanukiah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.2 3.3C309.1 12.1 296 36.6 296 56c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C324.6 1.2 322.4 0 320 0s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7C36.6 49.2 34.4 48 32 48s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7C165.1 60.1 152 84.6 152 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3C389.1 60.1 376 84.6 376 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7C517.1 60.1 504 84.6 504 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7c-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 96 0 16 32 0 0-16 0-96c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176L96 320c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"},\"child\":[]}]})(props);\n};\nexport function FaHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 184.4c-17-15.2-39.4-24.4-64-24.4L64 256c-24.6 0-47 9.2-64 24.4L0 96zM64 288l384 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64zM320 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHashtag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M181.3 32.4c17.4 2.9 29.2 19.4 26.3 36.8L197.8 128l95.1 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3s29.2 19.4 26.3 36.8L357.8 128l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0L325.8 320l58.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-68.9 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l9.8-58.7-95.1 0-11.5 69.3c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8L90.2 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 21.3-128L64 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 11.5-69.3c2.9-17.4 19.4-29.2 36.8-26.3zM187.1 192L165.8 320l95.1 0 21.3-128-95.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboySide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.7 135.9l-10.4 57.2c6.8-.7 13.6-1.1 20.5-1.1l10.7 0c39.4 0 77.8 12.1 110.1 34.7L562.4 421.8l35.1 24.6c24.4-6 42.5-28.1 42.5-54.4c0-75.8-94.7-126.6-134.6-144.7L474 83.9C468.2 53.8 441.8 32 411.1 32l-2.7 0c-5.6 0-11.1 .7-16.5 2.2L199.2 85.5c-23.9 6.4-42 26-46.5 50.4zM0 384c0 35.3 28.7 64 64 64l480 0L265.3 252.9c-26.9-18.8-58.9-28.9-91.8-28.9l-10.7 0c-60.6 0-116 34.2-143.1 88.4L13.5 325C4.6 342.7 0 362.3 0 382.2L0 384z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c14.4 0 22.3-7 30.8-14.4C360.4 41.1 370.7 32 392 32c49.3 0 84.4 152.2 97.9 221.9C447.8 272.1 390.9 288 320 288s-127.8-15.9-169.9-34.1C163.6 184.2 198.7 32 248 32c21.3 0 31.6 9.1 41.2 17.6C297.7 57 305.6 64 320 64zM111.1 270.7c47.2 24.5 117.5 49.3 209 49.3s161.8-24.8 208.9-49.3c24.8-12.9 49.8-28.3 70.1-47.7c7.9-7.9 20.2-9.2 29.6-3.3c9.5 5.9 13.5 17.9 9.9 28.5c-13.5 37.7-38.4 72.3-66.1 100.6C523.7 398.9 443.6 448 320 448s-203.6-49.1-252.5-99.2C39.8 320.4 14.9 285.8 1.4 248.1c-3.6-10.6 .4-22.6 9.9-28.5c9.5-5.9 21.7-4.5 29.6 3.3c20.4 19.4 45.3 34.8 70.1 47.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHatWizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 416L168.6 180.7c15.3-34.4 40.3-63.5 72-83.7l146.9-94c3-1.9 6.5-2.9 10-2.9C407.7 0 416 8.3 416 18.6l0 1.6c0 2.6-.5 5.1-1.4 7.5L354.8 176.9c-1.9 4.7-2.8 9.7-2.8 14.7c0 5.5 1.2 11 3.4 16.1L448 416l-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 276.4 230.9 272 224 272s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 339 144 345.1 144 352s4.4 13 10.9 15.2l40.4 13.5L207.1 416 64 416zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCoughSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 325.8l44 34.5c8.1 1.4 14.8 6.8 18 14.1L552.9 408c10.6 .4 19.5 7.6 22.2 17.4l39.1 30.6c.6 0 1.2-.1 1.8-.1c11.1 0 20.4 7.5 23.2 17.8l-3.9 0c6.2 8.5 6.4 20.4-.4 29c-8.2 10.4-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L89.6 44.9C127 16.7 173.5 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 5.8zM0 224.2c0-38.7 9.8-75.1 27.1-106.9L341.8 365.3l-2.5 .3c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9l62 3.9 43 33.9C439.3 466.2 421.2 480 400 480l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM616 360a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-64-48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320s0 0 0 0l0 32L339.2 365.6c-11 1.4-19.2 10.7-19.2 21.8c0 11.6 9 21.2 20.6 21.9L448 416l0 16c0 26.5-21.5 48-48 48l-80 0 0 8c0 13.3-10.7 24-24 24l-40 0s0 0 0 0L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zm352-.2a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM464 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm152-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM592 480a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 312a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM552 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 224.2c0-22.2 3.2-43.6 9.2-63.9L262.2 321c-4 9.5-6.2 20-6.2 31l0 160-128 0c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C48.6 322.4 32 274.1 32 224.2zm248.3 70.4L53 129.3C88.7 53 166.2 0 256 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c5.4 6.7 8.6 14.8 9.4 23.2L336 272c-21.7 0-41.3 8.6-55.7 22.6zM336 304l198 0s0 0 0 0l10 0-19.7 64L368 368c-8.8 0-16 7.2-16 16s7.2 16 16 16l146.5 0-9.8 32L368 432c-8.8 0-16 7.2-16 16s7.2 16 16 16l126.8 0-.9 2.8c-8.3 26.9-33.1 45.2-61.2 45.2L288 512l0-160c0-14 6-26.7 15.6-35.4c0 0 0 0 0 0c8.5-7.8 19.9-12.6 32.4-12.6zm48-80a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224.2C0 100.6 100.2 0 224 0l24 0c95.2 0 181.2 69.3 197.3 160.2c2.3 13 6.8 25.7 15.1 36l42 52.6c6.2 7.8 9.6 17.4 9.6 27.4c0 24.2-19.6 43.8-43.8 43.8L448 320l0 64c0 35.3-28.7 64-64 64l-64 0 0 32c0 17.7-14.3 32-32 32L96 512c-17.7 0-32-14.3-32-32l0-72.7c0-16.7-6.9-32.5-17.1-45.8C16.6 322.4 0 274.1 0 224.2zM224 64c-8.8 0-16 7.2-16 16c0 33-39.9 49.5-63.2 26.2c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6C145.5 152.1 129 192 96 192c-8.8 0-16 7.2-16 16s7.2 16 16 16c33 0 49.5 39.9 26.2 63.2c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0C168.1 286.5 208 303 208 336c0 8.8 7.2 16 16 16s16-7.2 16-16c0-33 39.9-49.5 63.2-26.2c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6C302.5 263.9 319 224 352 224c8.8 0 16-7.2 16-16s-7.2-16-16-16c-33 0-49.5-39.9-26.2-63.2c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0C279.9 129.5 240 113 240 80c0-8.8-7.2-16-16-16zm-24 96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 80a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeading (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 144 0 176 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176L48 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphonesSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 80C141.1 80 48 173.1 48 288l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 288C0 146.6 114.6 32 256 32s256 114.6 256 256l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-114.9-93.1-208-208-208zM80 352c0-35.3 28.7-64 64-64l16 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-64zm288-64c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 80C149.9 80 62.4 159.4 49.6 262c9.4-3.8 19.6-6 30.4-6c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48c-44.2 0-80-35.8-80-80l0-16 0-48 0-48C0 146.6 114.6 32 256 32s256 114.6 256 256l0 48 0 48 0 16c0 44.2-35.8 80-80 80c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48c10.8 0 21 2.1 30.4 6C449.6 159.4 362.1 80 256 80z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48C141.1 48 48 141.1 48 256l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40C0 114.6 114.6 0 256 0S512 114.6 512 256l0 144.1c0 48.6-39.4 88-88.1 88L313.6 488c-8.3 14.3-23.8 24-41.6 24l-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c17.8 0 33.3 9.7 41.6 24l110.4 .1c22.1 0 40-17.9 40-40L464 256c0-114.9-93.1-208-208-208zM144 208l16 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32l-16 0c-35.3 0-64-28.7-64-64l0-48c0-35.3 28.7-64 64-64zm224 0c35.3 0 64 28.7 64 64l0 48c0 35.3-28.7 64-64 64l-16 0c-17.7 0-32-14.3-32-32l0-112c0-17.7 14.3-32 32-32l16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9l2.6-2.4C267.2 438.6 256 404.6 256 368c0-97.2 78.8-176 176-176c28.3 0 55 6.7 78.7 18.5c.9-6.5 1.3-13 1.3-19.6l0-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1l0 5.8c0 41.5 17.2 81.2 47.6 109.5zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartCrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M119.4 44.1c23.3-3.9 46.8-1.9 68.6 5.3l49.8 77.5-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.8 61.8c28.5-16.7 62.4-23.2 95.7-17.6C461.5 55.6 512 115.2 512 185.1l0 5.8c0 41.5-17.2 81.2-47.6 109.5L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9L47.6 300.4C17.2 272.1 0 232.4 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartPulse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z\"},\"child\":[]}]})(props);\n};\nexport function FaHelicopterSymbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.3 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.3 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.1 368.4 66.7 288L2 288zm0-64l64.7 0C80.1 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHelicopter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32c0-17.7 14.3-32 32-32L544 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L384 64l0 64 32 0c88.4 0 160 71.6 160 160l0 64c0 17.7-14.3 32-32 32l-160 0-64 0c-20.1 0-39.1-9.5-51.2-25.6l-71.4-95.2c-3.5-4.7-8.3-8.3-13.7-10.5L47.2 198.1c-9.5-3.8-16.7-12-19.2-22L5 83.9C2.4 73.8 10.1 64 20.5 64L48 64c10.1 0 19.6 4.7 25.6 12.8L112 128l208 0 0-64L160 64c-17.7 0-32-14.3-32-32zM384 320l128 0 0-32c0-53-43-96-96-96l-32 0 0 128zM630.6 425.4c12.5 12.5 12.5 32.8 0 45.3l-3.9 3.9c-24 24-56.6 37.5-90.5 37.5L256 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l280.2 0c17 0 33.3-6.7 45.3-18.7l3.9-3.9c12.5-12.5 32.8-12.5 45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHelmetSafety (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c-17.7 0-32 14.3-32 32l0 2.3 0 99.6c0 5.6-4.5 10.1-10.1 10.1c-3.6 0-7-1.9-8.8-5.1L157.1 87C83 123.5 32 199.8 32 288l0 64 512 0 0-66.4c-.9-87.2-51.7-162.4-125.1-198.6l-48 83.9c-1.8 3.2-5.2 5.1-8.8 5.1c-5.6 0-10.1-4.5-10.1-10.1l0-99.6 0-2.3c0-17.7-14.3-32-32-32l-64 0zM16.6 384C7.4 384 0 391.4 0 400.6c0 4.7 2 9.2 5.8 11.9C27.5 428.4 111.8 480 288 480s260.5-51.6 282.2-67.5c3.8-2.8 5.8-7.2 5.8-11.9c0-9.2-7.4-16.6-16.6-16.6L16.6 384z\"},\"child\":[]}]})(props);\n};\nexport function FaHelmetUn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.5 224C471.2 98.9 367.2 0 240 0C107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384L200 384l14.9 0L343.5 505.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5L368 288l80 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7L274.4 288l45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHighlighter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"},\"child\":[]}]})(props);\n};\nexport function FaHillAvalanche (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.7 401.9c34.2 23.1 81.1 19.5 111.4-10.8c34.4-34.4 34.4-90.1 0-124.4c-27.8-27.8-69.5-33.1-102.6-16c-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7C401.2 261.3 416 236.4 416 208c0-33.9-21.1-62.9-50.9-74.5c1.9-6.8 2.9-14 2.9-21.5c0-44.2-35.8-80-80-80c-27.3 0-51.5 13.7-65.9 34.6C216.3 46.6 197.9 32 176 32c-26.5 0-48 21.5-48 48c0 4 .5 7.9 1.4 11.6L439.7 401.9zM480 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87z\"},\"child\":[]}]})(props);\n};\nexport function FaHillRockslide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHippo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1c0 10.2 7.4 18.8 16.7 23c27.9 12.5 47.3 40.5 47.3 73c0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4c-1.5-1.1-2.9-2.3-4.3-3.5c-17-14.7-27.7-36.4-27.7-60.5c0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9L45.9 369.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7C32 155.7 117.2 68 223.8 64.1l.2-.1 7.2 0L256 64l32 0c41.7 0 83.4 12.1 117.2 25.7c1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaHockeyPuck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 256C114.6 256 0 213 0 160s114.6-96 256-96s256 43 256 96s-114.6 96-256 96zm192.3 1.8c24.7-9.3 46.9-21 63.7-35.6L512 352c0 53-114.6 96-256 96S0 405 0 352L0 222.3c16.8 14.6 39 26.3 63.7 35.6C114.5 276.9 182.5 288 256 288s141.5-11.1 192.3-30.2z\"},\"child\":[]}]})(props);\n};\nexport function FaHollyBerry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM276.8 383.8c1 .1 2.1 .2 3.2 .2c39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.6 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6c-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7c4.2 9.7 5.8 20.8 3.7 32.3L275 298.7c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.6 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32C96 323.9 67.9 352 33.3 352c-16.4 0-27.9 16-22.8 31.6l4.3 12.8c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.2 489.4 22.6 505.8 40.5 501L60 495.6c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7c16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5L196 240.4c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHorseHead (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l0-147.1c0-108.4 68.3-205.1 170.5-241.3L404.2 15.5C425.6 7.9 448 23.8 448 46.4c0 11-5.5 21.2-14.6 27.3L400 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5c-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4c0 0 0 0-.1 0c0 0 0 0 0 0c-6.3 0-12.5-.5-18.6-1.5c-3.6-.6-7.2-1.4-10.7-2.3c0 0 0 0 0 0c-28.9-7.8-53.1-26.8-67.8-52.2c-4.4-7.6-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4c0 20.3-16.5 36.8-36.8 36.8L112 512c-26.5 0-48-21.5-48-48zM392 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaHorse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26c20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L480 0 448 0C377.3 0 320 57.3 320 128l-96 0-20.8 0-54.4 0c-30.7 0-57.6 16.3-72.5 40.8C33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5c1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6c-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7c0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7c0 0 0 0 0 0l0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 256l144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 288l0 64 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L0 384l0 80c0 26.5 21.5 48 48 48l217.9 0c-6.3-10.2-9.9-22.2-9.9-35.1c0-46.9 25.8-87.8 64-109.2l0-95.9L320 48c0-26.5-21.5-48-48-48L48 0zM152 64l16 0c8.8 0 16 7.2 16 16l0 24 24 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-24 0 0 24c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-24-24 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16l24 0 0-24c0-8.8 7.2-16 16-16zM512 272a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM288 477.1c0 19.3 15.6 34.9 34.9 34.9l218.2 0c19.3 0 34.9-15.6 34.9-34.9c0-51.4-41.7-93.1-93.1-93.1l-101.8 0c-51.4 0-93.1 41.7-93.1 93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHotTubPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L295.8 82.8C280.7 69.1 272 49.7 272 29.2l0-5.2zM0 320l0 16L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128c0-35.3-28.7-64-64-64l-170.7 0c-13.8 0-27.3-4.5-38.4-12.8l-85.3-64C137 166.7 116.8 160 96 160c-53 0-96 43-96 96l0 64zm128 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zm112 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16s16 7.2 16 16zm80-16c8.8 0 16 7.2 16 16l0 96c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-8.8 7.2-16 16-16zM360 0c-13.3 0-24 10.7-24 24l0 5.2c0 34 14.4 66.4 39.7 89.2l16.4 14.8c15.2 13.7 23.8 33.1 23.8 53.5l0 13.2c0 13.3 10.7 24 24 24s24-10.7 24-24l0-13.2c0-34-14.4-66.4-39.7-89.2L407.8 82.8C392.7 69.1 384 49.7 384 29.2l0-5.2c0-13.3-10.7-24-24-24zM64 128A64 64 0 1 0 64 0a64 64 0 1 0 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaHotdog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.6 23.4c31.2 31.2 31.2 81.9 0 113.1l-352 352c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1l352-352c31.2-31.2 81.9-31.2 113.1 0zM443.3 92.7c-6.2-6.2-16.4-6.2-22.6 0c-12.5 12.5-23.8 15.1-37.5 17.6l-2.5 .4c-13.8 2.5-31.6 5.6-48 22c-16.7 16.7-20.9 36-24.1 50.9c0 0 0 0 0 0s0 0 0 0l-.2 1c-3.4 15.6-6 26.4-15.7 36.1s-20.5 12.3-36.1 15.7l-1 .2c-14.9 3.2-34.2 7.4-50.9 24.1s-20.9 36-24.1 50.9l-.2 1c-3.4 15.6-6 26.4-15.7 36.1c-9.2 9.2-18 10.8-32.7 13.4c0 0 0 0 0 0l-.9 .2c-15.6 2.8-34.9 6.9-54.4 26.4c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0c12.5-12.5 23.8-15.1 37.5-17.6l2.5-.4c13.8-2.5 31.6-5.6 48-22c16.7-16.7 20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1s20.5-12.3 36.1-15.7l1-.2c14.9-3.2 34.2-7.4 50.9-24.1s20.9-36 24.1-50.9l.2-1c3.4-15.6 6-26.4 15.7-36.1c9.2-9.2 18-10.8 32.7-13.4l.9-.2c15.6-2.8 34.9-6.9 54.4-26.4c6.2-6.2 6.2-16.4 0-22.6zM191.2 479.2l288-288L495 207c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L289 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17l-15.8-15.8zM17 305C6.1 294.1 0 279.4 0 264s6.1-30.1 17-41L223 17C233.9 6.1 248.6 0 264 0s30.1 6.1 41 17l15.8 15.8-288 288L17 305z\"},\"child\":[]}]})(props);\n};\nexport function FaHotel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L480 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-176 0 0-48c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 48L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64C14.3 64 0 49.7 0 32zm96 80l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM240 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM328 384c13.3 0 24.3-10.9 21-23.8c-10.6-41.5-48.2-72.2-93-72.2s-82.5 30.7-93 72.2c-3.3 12.8 7.8 23.8 21 23.8l144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassEnd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9L192 301.3l67.9 67.9c4.6 4.6 8.6 9.6 12.1 14.9L112 384z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassStart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM288 437l0 11L96 448l0-11c0-25.5 10.1-49.9 28.1-67.9L192 301.3l67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L64 0 320 0l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1L237.3 256l67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0L64 512l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1L146.7 256 78.9 188.1C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9L192 210.7l67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11L96 64zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9L192 301.3l-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyCrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-122.1 0L288 448l80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L250.6 263.2c-14.6-11.5-33.8 7-22.8 22L288 368l-85.5 71.2c-6.1 5-7.5 13.8-3.5 20.5L230.4 512l-102.3 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM272 192c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM288 160a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM176 400c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimneyWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L416 100.7 416 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 121 52.8 46.4c8 7 12 15 11 24zM248 192c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseChimney (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L512 185l0-121c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 36.7L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64 0 24c0 22.1 17.9 40 40 40l24 0 32.5 0c1.4 0 2.8 0 4.2-.1c1.1 .1 2.2 .1 3.3 .1l16 0c22.1 0 40-17.9 40-40l0-16.2c.3-2.6 .5-5.3 .5-8.1l-.7-160.2 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.7 352c8.1-89.7 83.5-160 175.3-160c8.9 0 17.6 .7 26.1 1.9L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 69.7c-.1 .9-.1 1.8-.1 2.8l0 112c0 22.1 17.9 40 40 40l16 0c1.2 0 2.4-.1 3.6-.2c1.5 .1 3 .2 4.5 .2l31.9 0 24 0c22.1 0 40-17.9 40-40l0-24 0-64c0-17.7 14.3-32 32-32l64 0 .7 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseCrack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l102.3 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L288 368l-60.2-82.8c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L288 448l38.4 64 122.1 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFire (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 350.1l0 1.9-32 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L447.3 128.1c-12.3-1-25 3-34.8 11.7c-35.4 31.6-65.6 67.7-87.3 102.8C304.3 276.5 288 314.9 288 350.1zM480 512c-88.4 0-160-71.6-160-160c0-76.7 62.5-144.7 107.2-179.4c5-3.9 10.9-5.8 16.8-5.8c7.9-.1 16 3.1 22 9.2l46 46 11.3-11.3c11.7-11.7 30.6-12.7 42.3-1C624.5 268 640 320.2 640 352c0 88.4-71.6 160-160 160zm64-111.8c0-36.5-37-73-54.8-88.4c-5.4-4.7-13.1-4.7-18.5 0C453 327.1 416 363.6 416 400.2c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 0c-17.7 0-32 14.3-32 32l0 160 0 320 64 0 0-320 112 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16L512 32c0-17.7-14.3-32-32-32zM416 159L276.8 39.7c-12-10.3-29.7-10.3-41.7 0l-224 192C1 240.4-2.7 254.5 2 267.1S18.6 288 32 288l32 0 0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-96c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 96c0 17.7 14.3 32 32 32l64.7 0 .2 0-1 0 0-353z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFloodWaterCircleArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 144A144 144 0 1 0 0 144a144 144 0 1 0 288 0zM140.7 76.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L169.4 160 80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0L140.7 99.3c-6.2-6.2-6.2-16.4 0-22.6zM320 144c0 57.3-27.4 108.2-69.8 140.3c11.8-3.6 23-9.4 33-16.2c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.4 78.1 3.4c2.1 1.7 4.2 3.3 6.5 4.9l-.3-84.4 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128C407.6-2 392.4-2 381.2 6.1L301 64.4c12.1 23.9 19 50.9 19 79.6zm18.5 165.9c-11.1-7.9-25.9-7.9-37 0C279 325.4 251.5 336 224 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 389.7 191 400 224 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 325.2 442.9 336 416 336c-27.5 0-55-10.6-77.5-26.1zm0 112c-11.1-7.9-25.9-7.9-37 0C279 437.4 251.5 448 224 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C158.5 501.7 191 512 224 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.6 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C471.4 437.2 442.9 448 416 448c-27.5 0-55-10.6-77.5-26.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseFloodWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M306.8 6.1C295.6-2 280.4-2 269.2 6.1l-176 128c-11.2 8.2-15.9 22.6-11.6 35.8S98.1 192 112 192l16 0 0 73c1.7 1 3.3 2 4.9 3.1c18 12.4 40.1 20.3 59.2 20.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c1.5-1 3-2 4.5-2.9l-.3-73.2 16.6 0c13.9 0 26.1-8.9 30.4-22.1s-.4-27.6-11.6-35.8l-176-128zM269.5 309.9C247 325.4 219.5 336 192 336c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 389.7 159 400 192 400c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.3 8.5c12.3-11.3 31.2-11.3 43.4 0l208 192c6.7 6.2 10.3 14.8 10.3 23.5l-144 0c-19.1 0-36.3 8.4-48 21.7l0-37.7c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l64 0 0 128-160 0c-26.5 0-48-21.5-48-48l0-112-32 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8.1-35.2l208-192zM352 304l0 144 192 0 0-144-192 0zm-48-16c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32l0 160 32 0c8.8 0 16 7.2 16 16c0 26.5-21.5 48-48 48l-48 0-192 0-48 0c-26.5 0-48-21.5-48-48c0-8.8 7.2-16 16-16l32 0 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480c0 11.7 3.1 22.6 8.6 32l-.6 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L490.7 166.3C447.2 181.7 416 223.2 416 272l0 24.6c-19.1 11.1-32 31.7-32 55.4l0 128zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm32 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 368c0 59.5 29.5 112.1 74.8 144l-266.7 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L522.1 193.9c-8.5-1.3-17.3-1.9-26.1-1.9c-54.7 0-103.5 24.9-135.8 64L320 256l0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedicalFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 0c17.7 0 32 14.3 32 32l112 0c8.8 0 16 7.2 16 16l0 128c0 8.8-7.2 16-16 16l-112 0 0 320-64 0 0-320 0-160c0-17.7 14.3-32 32-32zM276.8 39.7L416 159l0 353 1 0-.2 0L96 512c-17.7 0-32-14.3-32-32l0-192-32 0c-13.4 0-25.4-8.3-30-20.9s-1-26.7 9.2-35.4l224-192c12-10.3 29.7-10.3 41.7 0zM224 208l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M543.8 287.6c17 0 32-14 32-32.1c1-9-3-17-11-24L309.5 7c-6-5-14-7-21-7s-15 1-22 8L10 231.5c-7 7-10 15-10 24c0 18 14 32.1 32 32.1l32 0 0 160.4c0 35.3 28.7 64 64 64l320.4 0c35.5 0 64.2-28.8 64-64.3l-.7-160.2 32 0zM256 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M357.7 8.5c-12.3-11.3-31.2-11.3-43.4 0l-208 192c-9.4 8.6-12.7 22-8.5 34c87.1 25.3 155.6 94.2 180.3 181.6L464 416c26.5 0 48-21.5 48-48l0-112 32 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8.1-35.2l-208-192zM288 208c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-64zM24 256c-13.3 0-24 10.7-24 24s10.7 24 24 24c101.6 0 184 82.4 184 184c0 13.3 10.7 24 24 24s24-10.7 24-24c0-128.1-103.9-232-232-232zm8 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM0 376c0 13.3 10.7 24 24 24c48.6 0 88 39.4 88 88c0 13.3 10.7 24 24 24s24-10.7 24-24c0-75.1-60.9-136-136-136c-13.3 0-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseTsunami (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.8 136.5C104.9 93.8 152.6 64 209 64c16.9 0 33.1 2.7 48.2 7.7c16.8 5.5 34.9-3.6 40.4-20.4s-3.6-34.9-20.4-40.4C255.8 3.8 232.8 0 209 0C95.2 0 0 88 0 200c0 91.6 53.5 172.1 142.2 194.1c13.4 3.8 27.5 5.9 42.2 5.9c.7 0 1.4 0 2.1-.1c1.8 0 3.7 .1 5.5 .1c0 0 0 0 0 0c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.5-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 325.2 410.9 336 384 336c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0c-22.4 15.5-49.9 26.1-77.4 26.1c0 0-.1 0-.1 0c-12.4 0-24-1.5-34.9-4.3C121.6 320.2 96 287 96 248c0-48.5 39.5-88 88.4-88c13.5 0 26.1 3 37.5 8.3c16 7.5 35.1 .6 42.5-15.5s.6-35.1-15.5-42.5C229.3 101.1 207.4 96 184.4 96c-40 0-76.4 15.4-103.6 40.5zm252-18.1c-8.1 6-12.8 15.5-12.8 25.6l0 121c1.6 1 3.3 2 4.8 3.1c18.4 12.7 39.6 20.3 59.2 20.3c19 0 41.2-7.9 59.2-20.3c23.8-16.7 55.8-15.3 78.1 3.4c10.6 8.8 24.2 15.6 37.3 18.6c5.8 1.4 11.2 3.4 16.2 6.2c.7-2.7 1.1-5.5 1.1-8.4l-.4-144c0-10-4.7-19.4-12.7-25.5l-95.5-72c-11.4-8.6-27.1-8.6-38.5 0l-96 72zM384 448c-27.5 0-55-10.6-77.5-26.1c-11.1-7.9-25.9-7.9-37 0C247 437.4 219.5 448 192 448c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 501.7 159 512 192 512c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 437.2 410.9 448 384 448z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c.2 35.5-28.5 64.3-64 64.3l-320.4 0c-35.3 0-64-28.7-64-64l0-160.4-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24zM352 224a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-96 96c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.8 255.5c0 18-15 32.1-32 32.1l-32 0 .7 160.2c0 2.7-.2 5.4-.5 8.1l0 16.2c0 22.1-17.9 40-40 40l-16 0c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1L416 512l-24 0c-22.1 0-40-17.9-40-40l0-24 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64 0 24c0 22.1-17.9 40-40 40l-24 0-31.9 0c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2l-16 0c-22.1 0-40-17.9-40-40l0-112c0-.9 0-1.9 .1-2.8l0-69.7-32 0c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHryvniaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121.9 116.2C138.3 103.1 158.7 96 179.6 96L223 96c27.1 0 49 21.9 49 49c0 11.5-4 22.4-11.1 31L32 176c-17.7 0-32 14.3-32 32s14.3 32 32 32l123.5 0-50.6 28.9c-1.7 1-3.4 2-5.1 3.1L32 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l20.3 0c-2.8 9.9-4.3 20.4-4.3 31c0 62.4 50.6 113 113 113l43.4 0c35.5 0 70-12.1 97.7-34.3L308 441c13.8-11 16-31.2 5-45s-31.2-16-45-5l-5.9 4.7c-16.4 13.1-36.7 20.2-57.7 20.2L161 416c-27.1 0-49-21.9-49-49c0-11.5 4-22.4 11.1-31L352 336c17.7 0 32-14.3 32-32s-14.3-32-32-32l-123.5 0 50.6-28.9c1.7-1 3.4-2 5.1-3.1l67.8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-20.3 0c2.8-10 4.3-20.4 4.3-31c0-62.4-50.6-113-113-113l-43.4 0c-35.5 0-70 12.1-97.7 34.3L76 71c-13.8 11-16 31.2-5 45s31.2 16 45 5l5.9-4.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHurricane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 208C0 104.4 75.7 18.5 174.9 2.6C184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5C307 112.5 384 199 384 303.4c0 103.6-75.7 189.5-174.9 205.4c-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3c0-8.4-6.5-15.3-14.7-16.5C77 398.9 0 312.4 0 208zm288 48A96 96 0 1 0 96 256a96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaICursor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3L96 224l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7s16.9 30.7 34.5 29.2l8-.7c34.1-2.8 64.2-18.9 85.4-42.9c21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7C179.2 3.6 149.2 19.7 128 43.7c-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"},\"child\":[]}]})(props);\n};\nexport function FaI (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L160 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaIceCream (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.1 160c.6-5.3 .9-10.6 .9-16C368 64.5 303.5 0 224 0S80 64.5 80 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l53.5 0 181 0 53.5 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM96 288L200.8 497.7c4.4 8.8 13.3 14.3 23.2 14.3s18.8-5.5 23.2-14.3L352 288 96 288z\"},\"child\":[]}]})(props);\n};\nexport function FaIcicles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M75.8 304.8L1 35.7c-.7-2.5-1-5-1-7.5C0 12.6 12.6 0 28.2 0H482.4C498.8 0 512 13.2 512 29.6c0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9c-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1c-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7c-9.3 0-17.5-6.2-20-15.2z\"},\"child\":[]}]})(props);\n};\nexport function FaIcons (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.3 7.3C507.7 13.3 512 22.4 512 32l0 144c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-57L352 90.2 352 208c0 26.5-28.7 48-64 48s-64-21.5-64-48s28.7-48 64-48l0-96c0-15.3 10.8-28.4 25.7-31.4l160-32c9.4-1.9 19.1 .6 26.6 6.6zM74.7 304l11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0c10.7 0 20.7 5.3 26.6 14.2L213.3 304l26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0zM192 408a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM478.7 278.3L440.3 368l55.7 0c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.2-12.4-5.3-19.2L391.7 400 336 400c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112c5.6-4.9 13.9-5.3 19.9-.9s8.2 12.4 5.3 19.2zm-339-59.2c-6.5 6.5-17 6.5-23 0L19.9 119.2c-28-29-26.5-76.9 5-103.9c27-23.5 68.4-19 93.4 6.5l10 10.5 9.5-10.5c25-25.5 65.9-30 93.9-6.5c31 27 32.5 74.9 4.5 103.9l-96.4 99.9z\"},\"child\":[]}]})(props);\n};\nexport function FaIdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM144 64l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCardClip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 64l128 0 0 48c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-48 128 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64zM176 437.3c0 5.9 4.8 10.7 10.7 10.7l202.7 0c5.9 0 10.7-4.8 10.7-10.7c0-29.5-23.9-53.3-53.3-53.3l-117.3 0c-29.5 0-53.3 23.9-53.3 53.3zM288 352a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96l576 0c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm0 32L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-288L0 128zM64 405.3c0-29.5 23.9-53.3 53.3-53.3l117.3 0c29.5 0 53.3 23.9 53.3 53.3c0 5.9-4.8 10.7-10.7 10.7L74.7 416c-5.9 0-10.7-4.8-10.7-10.7zM176 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm176 16c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16zm0 64c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaIgloo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 33.8L320 160 48.5 160C100.2 82.8 188.1 32 288 32c10.8 0 21.5 .6 32 1.8zM352 160l0-120.9C424.9 55.7 487.2 99.8 527.5 160L352 160zM29.9 192L96 192l0 128L0 320c0-46 10.8-89.4 29.9-128zM192 320l-64 0 0-128 320 0 0 128-64 0 0 32 192 0 0 80c0 26.5-21.5 48-48 48l-176 0 0-128c0-35.3-28.7-64-64-64s-64 28.7-64 64l0 128L48 480c-26.5 0-48-21.5-48-48l0-80 192 0 0-32zm288 0l0-128 66.1 0c19.2 38.6 29.9 82 29.9 128l-96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaImagePortrait (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM128 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM80 356.6c0-37.9 30.7-68.6 68.6-68.6l86.9 0c37.9 0 68.6 30.7 68.6 68.6c0 15.1-12.3 27.4-27.4 27.4l-169.1 0C92.3 384 80 371.7 80 356.6z\"},\"child\":[]}]})(props);\n};\nexport function FaImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zM396 138.7l96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320l-144 0-48 0-80 0c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84C360.5 132 368 128 376 128s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224z\"},\"child\":[]}]})(props);\n};\nexport function FaInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121 32C91.6 32 66 52 58.9 80.5L1.9 308.4C.6 313.5 0 318.7 0 323.9L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-92.1c0-5.2-.6-10.4-1.9-15.5l-57-227.9C446 52 420.4 32 391 32L121 32zm0 64l270 0 48 192-51.2 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L73 288 121 96z\"},\"child\":[]}]})(props);\n};\nexport function FaIndent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"},\"child\":[]}]})(props);\n};\nexport function FaIndianRupeeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l64 0 16 0 176 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-56.2 0c9.6 14.4 16.7 30.6 20.7 48l35.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-35.6 0c-13.2 58.3-61.9 103.2-122.2 110.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c32.8 0 61-19.7 73.3-48L32 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l153.3 0C173 115.7 144.8 96 112 96L96 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaIndustry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64l0 240 0 48 0 80c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-128 0-151.8c0-18.2-19.4-29.7-35.4-21.1L352 215.4l0-63.2c0-18.2-19.4-29.7-35.4-21.1L160 215.4 160 64c0-17.7-14.3-32-32-32L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaInfinity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 241.1C0 161 65 96 145.1 96c38.5 0 75.4 15.3 102.6 42.5L320 210.7l72.2-72.2C419.5 111.3 456.4 96 494.9 96C575 96 640 161 640 241.1l0 29.7C640 351 575 416 494.9 416c-38.5 0-75.4-15.3-102.6-42.5L320 301.3l-72.2 72.2C220.5 400.7 183.6 416 145.1 416C65 416 0 351 0 270.9l0-29.7zM274.7 256l-72.2-72.2c-15.2-15.2-35.9-23.8-57.4-23.8C100.3 160 64 196.3 64 241.1l0 29.7c0 44.8 36.3 81.1 81.1 81.1c21.5 0 42.2-8.5 57.4-23.8L274.7 256zm90.5 0l72.2 72.2c15.2 15.2 35.9 23.8 57.4 23.8c44.8 0 81.1-36.3 81.1-81.1l0-29.7c0-44.8-36.3-81.1-81.1-81.1c-21.5 0-42.2 8.5-57.4 23.8L365.3 256z\"},\"child\":[]}]})(props);\n};\nexport function FaInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 80a48 48 0 1 1 96 0A48 48 0 1 1 48 80zM0 224c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-192-32 0c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaJ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaJarWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm112 0l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 198 90 224 122.2 224l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 294 90 320 122.2 320l21.8 0 32 0 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8C64 390 90 416 122.2 416l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2c0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7c-11.7-13.3-28.9-21.7-48-21.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0L256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 64C46.3 64 32 49.7 32 32zM0 160c0-35.3 28.7-64 64-64l192 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 160zm96 64c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 224z\"},\"child\":[]}]})(props);\n};\nexport function FaJedi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9 0 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5C370.6 435.2 416 382.9 416 320c0-37-15.7-70.4-40.8-93.7c-7-6.5-6.5-18.6 1-24.4C410.1 175.5 432 134.3 432 88c0-16.8-2.9-33-8.2-48c-4.6-13 10.2-30 21.4-22c53.5 38 92.7 94.8 107.8 160.7c.5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6c.1 3.3 .2 6.6 .2 10c0 17.5-1.7 34.7-4.8 51.3c-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9C487.2 450.5 394.8 512 288 512S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3C17.7 274.7 16 257.5 16 240c0-3.3 .1-6.7 .2-10c.1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9C38.1 112.8 77.3 56 130.8 18c11.3-8 26 8.9 21.4 22c-5.3 15-8.2 31.2-8.2 48c0 46.3 21.9 87.5 55.8 113.9c7.5 5.8 8 17.9 1 24.4C175.7 249.6 160 283 160 320c0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"},\"child\":[]}]})(props);\n};\nexport function FaJetFighterUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M270.7 9.7C268.2 3.8 262.4 0 256 0s-12.2 3.8-14.7 9.7L197.2 112.6c-3.4 8-5.2 16.5-5.2 25.2l0 77-144 84L48 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 56 0 32 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 144 0 0 32.7L133.5 468c-3.5 3-5.5 7.4-5.5 12l0 16c0 8.8 7.2 16 16 16l96 0 0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64 96 0c8.8 0 16-7.2 16-16l0-16c0-4.6-2-9-5.5-12L320 416.7l0-32.7 144 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 0-32 0-56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 18.8-144-84 0-77c0-8.7-1.8-17.2-5.2-25.2L270.7 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJetFighter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 24c0-13.3 10.7-24 24-24L296 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0L384 192l116.4 0c7.7 0 15.3 1.4 22.5 4.1L625 234.4c9 3.4 15 12 15 21.6s-6 18.2-15 21.6L522.9 315.9c-7.2 2.7-14.8 4.1-22.5 4.1L384 320 280 464l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-144-32 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L64 384c-17.7 0-32-14.3-32-32l0-64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l18.7 0c8.5 0 16.6 3.4 22.6 9.4L160 192l32 0 0-144-8 0c-13.3 0-24-10.7-24-24zM80 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaJoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 55.2 21.9 108.1 60.9 147.1l21 21c9 9 14.1 21.2 14.1 33.9l0 11c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-29.7-11.8-58.2-32.8-79.2l-21-21C463.2 117.8 448 81.2 448 43l0-11zM576 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11c0-55.2-21.9-108.1-60.9-147.1l-21-21c-9-9-14.1-21.2-14.1-33.9l0-11c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11c0 29.7 11.8 58.2 32.8 79.2l21 21c27 27 42.2 63.6 42.2 101.8l0 11zM229.8 360c-4.7-2.3-10-2.7-15.2-2c-37.8 5.6-75.2 14.3-106.9 22.8C81.3 388 58.3 395.1 42 400.4c-8.2 2.7-14.7 4.9-19.2 6.5c-2.3 .8-4 1.4-5.2 1.8l-1.3 .5C6.8 412.5 0 421.4 0 432s6.8 19.5 16.3 22.7l1.3 .5c1.2 .4 3 1.1 5.2 1.8c4.5 1.6 11 3.8 19.2 6.5c16.3 5.4 39.2 12.5 65.7 19.6C160.3 497.3 228.8 512 288 512l67.3 0c4.1 0 6.3-5.1 3.6-8.3L256.5 380.8c-7.4-8.9-16.5-15.9-26.7-20.8zM445 512l19 0 51.3 0c4.1 0 6.3-5.1 3.6-8.3L416.5 380.8C401.3 362.5 378.8 352 355 352l-19 0-48 0c-1.1 0-2.3 0-3.4 0c-4.1 0-6.2 5.1-3.5 8.3L383.5 483.2C398.7 501.5 421.2 512 445 512zm-3.9-151.7L543.5 483.2c14.6 17.5 35.9 27.9 58.6 28.7c21.1-1.1 37.9-18.6 37.9-39.9l0-80c0-22.1-17.9-40-40-40l-155.3 0c-4.1 0-6.3 5.1-3.6 8.3z\"},\"child\":[]}]})(props);\n};\nexport function FaJugDetergent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72s10.7-24 24-24l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaK (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7l-155.2 160L64 249 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 328 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"},\"child\":[]}]})(props);\n};\nexport function FaKaaba (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M60 120l228 71.2L516 120 288 48.8 60 120zM278.5 1.5c6.2-1.9 12.9-1.9 19.1 0l256 80C566.9 85.6 576 98 576 112l0 16s0 0 0 0l0 21.2L292.8 237.7c-3.1 1-6.4 1-9.5 0L0 149.2 0 128l0-16C0 98 9.1 85.6 22.5 81.5l256-80zm23.9 266.8L576 182.8l0 46.5-52.8 16.5c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5L576 262.8 576 400c0 14-9.1 26.4-22.5 30.5l-256 80c-6.2 1.9-12.9 1.9-19.1 0l-256-80C9.1 426.4 0 414 0 400L0 262.8l43.2 13.5c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20L0 229.2l0-46.5 273.7 85.5c9.3 2.9 19.3 2.9 28.6 0zm-185.5-2.6c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l64 20c8.4 2.6 17.4-2.1 20-10.5s-2.1-17.4-10.5-20l-64-20zm352 30.5c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-64 20c-8.4 2.6-13.1 11.6-10.5 20s11.6 13.1 20 10.5l64-20zm-224 9.5c-8.4-2.6-17.4 2.1-20 10.5s2.1 17.4 10.5 20l38.5 12c9.3 2.9 19.3 2.9 28.6 0l38.5-12c8.4-2.6 13.1-11.6 10.5-20s-11.6-13.1-20-10.5l-38.5 12c-3.1 1-6.4 1-9.5 0l-38.5-12z\"},\"child\":[]}]})(props);\n};\nexport function FaKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"},\"child\":[]}]})(props);\n};\nexport function FaKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 336c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32zM272 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM256 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM368 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM464 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM448 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaKhanda (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.8 3.7c5.9-4.9 14.6-4.9 20.5 0l48 40c5.9 4.9 7.5 13.2 3.8 19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l-.1 .1-.3 .6c-.3 .5-.7 1.3-1.2 2.3c-1 2-2.6 5-4.4 8.6c-.5 .9-.9 1.9-1.4 2.9C344.9 97.4 368 134 368 176s-23.1 78.6-57.3 97.8c.5 1 1 2 1.4 2.9c1.8 3.7 3.3 6.6 4.4 8.6c.5 1 .9 1.8 1.2 2.3l.3 .6 .1 .1s0 0 0 0s0 0 0 0c3.6 6.7 2 15-3.8 19.9L272 343.5l0 19.8 35.6-24.5 41.1-28.2c42.8-29.4 68.4-78 68.4-130c0-31.1-9.2-61.6-26.5-87.5l-2.8-4.2c-4-6-3.5-14 1.3-19.5s12.7-7 19.2-3.7L401.1 80c7.2-14.3 7.2-14.3 7.2-14.3s0 0 0 0s0 0 0 0l.1 0 .3 .2 1 .5c.8 .4 2 1.1 3.5 1.9c2.9 1.7 7 4.1 11.8 7.3c9.6 6.4 22.5 16.1 35.4 29c25.7 25.7 52.7 65.6 52.7 119.3c0 53.1-26.4 100.5-51.2 133.6c-12.6 16.7-25.1 30.3-34.5 39.7c-4.7 4.7-8.7 8.4-11.5 10.9c-1.4 1.3-2.5 2.2-3.3 2.9l-.9 .8-.3 .2-.1 .1c0 0 0 0 0 0s0 0 0 0L401.1 400l10.2 12.3c-5.1 4.3-12.4 4.9-18.2 1.6l-75.6-43-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21L272 423.4l0 28.9c9.6 5.5 16 15.9 16 27.7c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7C197.8 463.3 187.9 472 176 472c-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-75.6 43c-5.8 3.3-13 2.7-18.2-1.6L112 400c-10.2 12.3-10.2 12.3-10.3 12.3s0 0 0 0s0 0 0 0l-.1-.1-.3-.2-.9-.8c-.8-.7-1.9-1.7-3.3-2.9c-2.8-2.5-6.7-6.2-11.5-10.9c-9.4-9.4-21.9-23-34.5-39.7C26.4 324.5 0 277.1 0 224c0-53.7 26.9-93.6 52.7-119.3c12.9-12.9 25.8-22.6 35.4-29C93 72.5 97 70 99.9 68.4c1.5-.8 2.6-1.5 3.5-1.9l1-.5 .3-.2 .1 0c0 0 0 0 0 0s0 0 0 0L112 80l-7.2-14.3c6.5-3.2 14.3-1.7 19.2 3.7s5.3 13.4 1.3 19.5l-2.8 4.2C105.2 119 96 149.5 96 180.6c0 51.9 25.6 100.6 68.4 130l41.1 28.2L240 362.6l0-19.1-42.2-35.2c-5.9-4.9-7.5-13.2-3.8-19.9c0 0 0 0 0 0s0 0 0 0s0 0 0 0l.1-.1 .3-.6c.3-.5 .7-1.3 1.2-2.3c1-2 2.6-5 4.4-8.6c.5-.9 .9-1.9 1.4-2.9C167.1 254.6 144 218 144 176s23.1-78.6 57.3-97.8c-.5-1-1-2-1.4-2.9c-1.8-3.7-3.3-6.6-4.4-8.6c-.5-1-.9-1.8-1.2-2.3l-.3-.6-.1-.1s0 0 0 0s0 0 0 0s0 0 0 0c-3.6-6.7-2-15 3.8-19.9l48-40zM220.2 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1C227 210.2 232 190.9 232 176s-5-34.2-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1C285 141.8 280 161.1 280 176s5 34.2 11.8 53.1z\"},\"child\":[]}]})(props);\n};\nexport function FaKipSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4L299.2 472.3c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L182.5 288 352 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-169.5 0L340.8 88.3z\"},\"child\":[]}]})(props);\n};\nexport function FaKitMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l32 0L96 32 64 32zm64 0l0 448 320 0 0-448L128 32zM512 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-32 0 0 448 32 0zM256 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaKitchenSet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 144A96 96 0 1 0 48 144a96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288C64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l80 0 16 0 32 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaKiwiBird (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1s11.2-8.3 11.2-15.3l0-240c0-70.7-57.3-128-128-128l-55.7 0c-36.4 0-69.9-17.6-101.1-36.4C262.3 42.1 228.3 32 192 32C86 32 0 118 0 224c0 71.1 38.6 133.1 96 166.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6c5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaL (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLandMineOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 24l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zM192 320c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32-256 0 0-32zm-77.3 90.5c8.1-16.3 24.8-26.5 42.9-26.5l324.7 0c18.2 0 34.8 10.3 42.9 26.5l27.6 55.2C563.5 487 548 512 524.2 512l-408.4 0c-23.8 0-39.3-25-28.6-46.3l27.6-55.2zM36.3 138.3c7.5-10.9 22.5-13.6 33.4-6.1l104 72c10.9 7.5 13.6 22.5 6.1 33.4s-22.5 13.6-33.4 6.1l-104-72c-10.9-7.5-13.6-22.5-6.1-33.4zm534.1-6.1c10.9-7.5 25.8-4.8 33.4 6.1s4.8 25.8-6.1 33.4l-104 72c-10.9 7.5-25.8 4.8-33.4-6.1s-4.8-25.8 6.1-33.4l104-72z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmarkDome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 0l16 0c13.3 0 24 10.7 24 24l0 10.7C368.4 48.1 431.9 111.6 445.3 192l2.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 256c-17.7 0-32-14.3-32-32s14.3-32 32-32l2.7 0C80.1 111.6 143.6 48.1 224 34.7L224 24c0-13.3 10.7-24 24-24zM64 288l64 0 0 128 40 0 0-128 64 0 0 128 48 0 0-128 64 0 0 128 40 0 0-128 64 0 0 132.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 288z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmarkFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 0l80 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-80 0 0 32 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 192c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0 0-112c0-8.8 7.2-16 16-16l16 0zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.1 4.2c9.8-5.6 21.9-5.6 31.8 0l171.8 98.1L448 104l0 .9 47.9 27.4c12.6 7.2 18.8 22 15.1 36s-16.4 23.8-30.9 23.8L32 192c-14.5 0-27.2-9.8-30.9-23.8s2.5-28.8 15.1-36L64 104.9l0-.9 4.4-1.6L240.1 4.2zM64 224l64 0 0 192 40 0 0-192 64 0 0 192 48 0 0-192 64 0 0 192 40 0 0-192 64 0 0 196.3c.6 .3 1.2 .7 1.8 1.1l48 32c11.7 7.8 17 22.4 12.9 35.9S494.1 512 480 512L32 512c-14.1 0-26.5-9.2-30.6-22.7s1.1-28.1 12.9-35.9l48-32c.6-.4 1.2-.7 1.8-1.1L64 224z\"},\"child\":[]}]})(props);\n};\nexport function FaLanguage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l192 0 48 0 16 0 256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-256 0-16 0-48 0L64 448c-35.3 0-64-28.7-64-64L0 128zm320 0l0 256 256 0 0-256-256 0zM178.3 175.9c-3.2-7.2-10.4-11.9-18.3-11.9s-15.1 4.7-18.3 11.9l-64 144c-4.5 10.1 .1 21.9 10.2 26.4s21.9-.1 26.4-10.2l8.9-20.1 73.6 0 8.9 20.1c4.5 10.1 16.3 14.6 26.4 10.2s14.6-16.3 10.2-26.4l-64-144zM160 233.2L179 276l-38 0 19-42.8zM448 164c11 0 20 9 20 20l0 4 44 0 16 0c11 0 20 9 20 20s-9 20-20 20l-2 0-1.6 4.5c-8.9 24.4-22.4 46.6-39.6 65.4c.9 .6 1.8 1.1 2.7 1.6l18.9 11.3c9.5 5.7 12.5 18 6.9 27.4s-18 12.5-27.4 6.9l-18.9-11.3c-4.5-2.7-8.8-5.5-13.1-8.5c-10.6 7.5-21.9 14-34 19.4l-3.6 1.6c-10.1 4.5-21.9-.1-26.4-10.2s.1-21.9 10.2-26.4l3.6-1.6c6.4-2.9 12.6-6.1 18.5-9.8l-12.2-12.2c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0l14.6 14.6 .5 .5c12.4-13.1 22.5-28.3 29.8-45L448 228l-72 0c-11 0-20-9-20-20s9-20 20-20l52 0 0-4c0-11 9-20 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C92.7 0 64 28.7 64 64l0 224-44.8 0C8.6 288 0 296.6 0 307.2C0 349.6 34.4 384 76.8 384L320 384l0-96-192 0 0-224 320 0 0 32 64 0 0-32c0-35.3-28.7-64-64-64L128 0zM512 128l-112 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-208-96 0c-17.7 0-32-14.3-32-32l0-96zm32 0l0 96 96 0-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256-64 0 0-256L128 96l0 256-64 0L64 96zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2c0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32C92.7 32 64 60.7 64 96l0 256 64 0 0-256 384 0 0 256 64 0 0-256c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2C0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8c0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"},\"child\":[]}]})(props);\n};\nexport function FaLariSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 32c17.7 0 32 14.3 32 32l0 32.7c5.3-.4 10.6-.7 16-.7s10.7 .2 16 .7L208 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.4c54.9 25.2 95.8 75.5 108.2 136.2c3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.1-29.9-22.5-55.9-45.4-74.3l0 67.9c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-95c-5.2-.7-10.6-1-16-1s-10.8 .3-16 1l0 95c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-67.9C82.7 211.5 64 247.6 64 288c0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 382 0 337.2 0 288c0-77.5 45.9-144.3 112-174.6L112 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLayerGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLeaf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 96c-78.6 0-145.1 51.5-167.7 122.5c33.6-17 71.5-26.5 111.7-26.5l88 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0-72 0s0 0 0 0c-16.6 0-32.7 1.9-48.3 5.4c-25.9 5.9-49.9 16.4-71.4 30.7c0 0 0 0 0 0C38.3 298.8 0 364.9 0 440l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-48.7 20.7-92.5 53.8-123.2C121.6 392.3 190.3 448 272 448l1 0c132.1-.7 239-130.9 239-291.4c0-42.6-7.5-83.1-21.1-119.6c-2.6-6.9-12.7-6.6-16.2-.1C455.9 72.1 418.7 96 376 96L272 96z\"},\"child\":[]}]})(props);\n};\nexport function FaLeftLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177.5 414c-8.8 3.8-19 2-26-4.6l-144-136C2.7 268.9 0 262.6 0 256s2.7-12.9 7.5-17.4l144-136c7-6.6 17.2-8.4 26-4.6s14.5 12.5 14.5 22l0 72 288 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-288 0 0 72c0 9.6-5.7 18.2-14.5 22z\"},\"child\":[]}]})(props);\n};\nexport function FaLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.3 273.6c4.9-4.5 7.7-10.9 7.7-17.6s-2.8-13-7.7-17.6l-112-104c-7-6.5-17.2-8.2-25.9-4.4s-14.4 12.5-14.4 22l0 56-192 0 0-56c0-9.5-5.7-18.2-14.4-22s-18.9-2.1-25.9 4.4l-112 104C2.8 243 0 249.3 0 256s2.8 13 7.7 17.6l112 104c7 6.5 17.2 8.2 25.9 4.4s14.4-12.5 14.4-22l0-56 192 0 0 56c0 9.5 5.7 18.2 14.4 22s18.9 2.1 25.9-4.4l112-104z\"},\"child\":[]}]})(props);\n};\nexport function FaLemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64c-6.6 0-13 1-19 2.9c-22.5 7-48.1 14.9-71 9c-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71C1 403 0 409.4 0 416c0 35.3 28.7 64 64 64c6.6 0 13-1 19.1-2.9c22.5-7 48.1-14.9 71-9c75.2 19.1 156.4-11 213.7-68.3s87.5-138.5 68.3-213.7c-5.8-22.9 2-48.4 9-71c1.9-6 2.9-12.4 2.9-19.1zM212.5 127.4c-54.6 16-101.1 62.5-117.1 117.1C92.9 253 84 257.8 75.5 255.4S62.2 244 64.6 235.5c19.1-65.1 73.7-119.8 138.9-138.9c8.5-2.5 17.4 2.4 19.9 10.9s-2.4 17.4-10.9 19.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThanEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.9 93.7c16.4-6.6 24.4-25.2 17.8-41.6s-25.2-24.4-41.6-17.8l-320 128C40 167.1 32 178.9 32 192s8 24.9 20.1 29.7l320 128c16.4 6.6 35-1.4 41.6-17.8s-1.4-35-17.8-41.6L150.2 192 395.9 93.7zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.6 81.7c7.9 15.8 1.5 35-14.3 42.9L103.6 256 366.3 387.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-320-160C6.8 279.2 0 268.1 0 256s6.8-23.2 17.7-28.6l320-160c15.8-7.9 35-1.5 42.9 14.3z\"},\"child\":[]}]})(props);\n};\nexport function FaLifeRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3s-20.2-113.9-54-157.3c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256s20.2 113.9 54 157.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaLinesLeaning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L489.3 358.2l90.5-90.5c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114l-96 96-31.9-25C430.9 239.6 420.1 175.1 377 132c-52.2-52.3-134.5-56.2-191.3-11.7L38.8 5.1zM239 162c30.1-14.9 67.7-9.9 92.8 15.3c20 20 27.5 48.3 21.7 74.5L239 162zM406.6 416.4L220.9 270c-2.1 39.8 12.2 80.1 42.2 110c38.9 38.9 94.4 51 143.6 36.3zm-290-228.5L60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5l61.8-61.8-50.6-39.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z\"},\"child\":[]}]})(props);\n};\nexport function FaLiraSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 192l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 32-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l14 0c-2.2 10.5-6.1 20.6-11.7 29.9L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1c11.6-19.3 18.9-40.7 21.6-62.9L224 352c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-32 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-31.6z\"},\"child\":[]}]})(props);\n};\nexport function FaListCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaListOl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaListUl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm48-208a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLitecoinSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 149.6L23.2 225.2c-17 4.9-26.8 22.6-22 39.6s22.6 26.8 39.6 22L64 280.1 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-154.1 136.8-39.1c17-4.9 26.8-22.6 22-39.6s-22.6-26.8-39.6-22L128 195.3 128 64z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationArrow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M429.6 92.1c4.9-11.9 2.1-25.6-7-34.7s-22.8-11.9-34.7-7l-352 144c-14.2 5.8-22.2 20.8-19.3 35.8s16.1 25.8 31.4 25.8l176 0 0 176c0 15.3 10.8 28.4 25.8 31.4s30-5.1 35.8-19.3l144-352z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationCrosshairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationPinLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.7 499.2c11-13.8 25.1-31.7 40.3-52.3l0-94.8c0-23.7 12.9-44.4 32-55.4l0-24.6c0-55.6 40.5-101.7 93.6-110.5C367 70 287.7 0 192 0C86 0 0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192c0 87.4-117 243-168.3 307.2c-12.3 15.3-35.1 15.3-47.4 0C117 435 0 279.4 0 192C0 86 86 0 192 0S384 86 384 192z\"},\"child\":[]}]})(props);\n};\nexport function FaLockOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48C576 64.5 511.5 0 432 0S288 64.5 288 144l0 48L64 192c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-32 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLocust (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0c98.7 0 180.6 71.4 197 165.4c-9-3.5-18.8-5.4-29-5.4l-64.2 0-41.8-97.5c-3.4-7.9-10.8-13.4-19.3-14.4s-17 2.7-22.1 9.6l-40.9 55.5-21.7-50.7c-3.3-7.8-10.5-13.2-18.9-14.3s-16.7 2.3-22 8.9l-240 304c-8.2 10.4-6.4 25.5 4 33.7s25.5 6.4 33.7-4l79.4-100.5 43 16.4-40.5 55c-7.9 10.7-5.6 25.7 5.1 33.6s25.7 5.6 33.6-5.1L215.1 400l74.5 0-29.3 42.3c-7.5 10.9-4.8 25.8 6.1 33.4s25.8 4.8 33.4-6.1L348 400l80.4 0 38.8 67.9c6.6 11.5 21.2 15.5 32.7 8.9s15.5-21.2 8.9-32.7L483.6 400l12.4 0c44.1 0 79.8-35.7 80-79.7c0-.1 0-.2 0-.3l0-40C576 143 465 32 328 32l-16 0zm50.5 168l17.1 40L333 240l29.5-40zm-87.7 38.1l-1.4 1.9-48.2 0 32.7-41.5 16.9 39.5zM88.8 240C57.4 240 32 265.4 32 296.8c0 15.5 6.3 30 16.9 40.4L126.7 240l-37.9 0zM496 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaLungsVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 124.2c-8.5-7.6-19.7-12.2-32-12.2s-23.5 4.6-32 12.2L288 32c0-17.7 14.3-32 32-32zM444.5 195.5c-16.4-16.4-41.8-18.5-60.5-6.1l0-24.1C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2c-20.9-5.2-38.7-17.1-51.5-32.9c14 1.5 28.5-3 39.2-13.8l-22.6-22.6 22.6 22.6c18.7-18.7 18.7-49.1 0-67.9c-1.1-1.1-1.4-2-1.5-2.5c-.1-.8-.1-1.8 .4-2.9s1.2-1.9 1.8-2.3c.5-.3 1.3-.8 2.9-.8c26.5 0 48-21.5 48-48s-21.5-48-48-48c-1.6 0-2.4-.4-2.9-.8c-.6-.4-1.3-1.2-1.8-2.3s-.5-2.2-.4-2.9c.1-.6 .4-1.4 1.5-2.5c18.7-18.7 18.7-49.1 0-67.9zM421.8 421.8c-6.2 6.2-16.4 6.2-22.6 0C375.9 398.5 336 415 336 448c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C241.5 375.9 225 336 192 336c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C264.1 241.5 304 225 304 192c0-8.8 7.2-16 16-16s16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C398.5 264.1 415 304 448 304c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6zM183.3 491.2l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 24.1c-18.6-12.4-44-10.3-60.5 6.1c-18.7 18.7-18.7 49.1 0 67.9c1.1 1.1 1.4 2 1.5 2.5c.1 .8 .1 1.8-.4 2.9s-1.2 1.9-1.8 2.3c-.5 .3-1.3 .8-2.9 .8c-26.5 0-48 21.5-48 48s21.5 48 48 48c1.6 0 2.4 .4 2.9 .8c.6 .4 1.3 1.2 1.8 2.3s.5 2.2 .4 2.9c-.1 .6-.4 1.4-1.5 2.5c-18.7 18.7-18.7 49.1 0 67.9c10.7 10.7 25.3 15.3 39.2 13.8c-12.8 15.9-30.6 27.7-51.5 32.9zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLungs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 132.1c0 16.4 8.4 31.7 22.2 40.5l9.8 6.2 0-45.5C384 127 415 96 453.3 96c21.7 0 42.8 10.2 55.8 28.8c15.4 22.1 44.3 65.4 71 116.9c26.5 50.9 52.4 112.5 59.6 170.3c.2 1.3 .2 2.6 .2 4l0 7c0 49.1-39.8 89-89 89c-7.3 0-14.5-.9-21.6-2.7l-72.7-18.2C414 480.5 384 442.1 384 398l0-73 90.5 57.6c7.5 4.7 17.3 2.5 22.1-4.9s2.5-17.3-4.9-22.1L384 287.1l0-.4-44.1-28.1c-7.3-4.6-13.9-10.1-19.9-16.1c-5.9 6-12.6 11.5-19.9 16.1L256 286.7 161.2 347l-13.5 8.6c0 0 0 0-.1 0c-7.4 4.8-9.6 14.6-4.8 22.1c4.7 7.5 14.6 9.7 22.1 4.9l91.1-58 0 73.4c0 44.1-30 82.5-72.7 93.1l-72.7 18.2c-7.1 1.8-14.3 2.7-21.6 2.7c-49.1 0-89-39.8-89-89l0-7c0-1.3 .1-2.7 .2-4c7.2-57.9 33.1-119.4 59.6-170.3c26.8-51.5 55.6-94.8 71-116.9c13-18.6 34-28.8 55.8-28.8C225 96 256 127 256 165.3l0 45.5 9.8-6.2c13.8-8.8 22.2-24.1 22.2-40.5L288 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaM (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3L250.6 369.8c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 49.9 9.2 37.5 22.7 33.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 160l0 96C0 379.7 100.3 480 224 480s224-100.3 224-224l0-96-128 0 0 96c0 53-43 96-96 96s-96-43-96-96l0-96L0 160zm0-32l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM228 104c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6c6 7.3 16.8 7.3 22.7 0c22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlassPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM184 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnifyingGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"},\"child\":[]}]})(props);\n};\nexport function FaManatSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c-17.7 0-32 14.3-32 32l0 34.7C69.2 113.9 0 192.9 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-59.6 40.8-109.8 96-124l0 284c0 17.7 14.3 32 32 32s32-14.3 32-32l0-284c55.2 14.2 96 64.3 96 124l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-95.1-69.2-174.1-160-189.3L224 64c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMapLocationDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 120c0 54.6-73.1 151.9-105.2 192c-7.7 9.6-22 9.6-29.6 0C241.1 271.9 168 174.6 168 120C168 53.7 221.7 0 288 0s120 53.7 120 120zm8 80.4c3.5-6.9 6.7-13.8 9.6-20.6c.5-1.2 1-2.5 1.5-3.7l116-46.4C558.9 123.4 576 135 576 152l0 270.8c0 9.8-6 18.6-15.1 22.3L416 503l0-302.6zM137.6 138.3c2.4 14.1 7.2 28.3 12.8 41.5c2.9 6.8 6.1 13.7 9.6 20.6l0 251.4L32.9 502.7C17.1 509 0 497.4 0 480.4L0 209.6c0-9.8 6-18.6 15.1-22.3l122.6-49zM327.8 332c13.9-17.4 35.7-45.7 56.2-77l0 249.3L192 449.4 192 255c20.5 31.3 42.3 59.6 56.2 77c20.5 25.6 59.1 25.6 79.6 0zM288 152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMapLocation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.8 312C334.9 271.9 408 174.6 408 120C408 53.7 354.3 0 288 0S168 53.7 168 120c0 54.6 73.1 151.9 105.2 192c7.7 9.6 22 9.6 29.6 0zM416 503l144.9-58c9.1-3.6 15.1-12.5 15.1-22.3L576 152c0-17-17.1-28.6-32.9-22.3l-116 46.4c-.5 1.2-1 2.5-1.5 3.7c-2.9 6.8-6.1 13.7-9.6 20.6L416 503zM15.1 187.3C6 191 0 199.8 0 209.6L0 480.4c0 17 17.1 28.6 32.9 22.3L160 451.8l0-251.4c-3.5-6.9-6.7-13.8-9.6-20.6c-5.6-13.2-10.4-27.4-12.8-41.5l-122.6 49zM384 255c-20.5 31.3-42.3 59.6-56.2 77c-20.5 25.6-59.1 25.6-79.6 0c-13.9-17.4-35.7-45.7-56.2-77l0 194.4 192 54.9L384 255z\"},\"child\":[]}]})(props);\n};\nexport function FaMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 144a144 144 0 1 1 288 0A144 144 0 1 1 16 144zM160 80c8.8 0 16-7.2 16-16s-7.2-16-16-16c-53 0-96 43-96 96c0 8.8 7.2 16 16 16s16-7.2 16-16c0-35.3 28.7-64 64-64zM128 480l0-162.9c10.4 1.9 21.1 2.9 32 2.9s21.6-1 32-2.9L192 480c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 476.1L192 421.2l0-385.3L384 90.8l0 385.3zm32-1.2l0-386.5L543.1 37.5c15.8-6.3 32.9 5.3 32.9 22.3l0 334.8c0 9.8-6 18.6-15.1 22.3L416 474.8zM15.1 95.1L160 37.2l0 386.5L32.9 474.5C17.1 480.8 0 469.2 0 452.2L0 117.4c0-9.8 6-18.6 15.1-22.3z\"},\"child\":[]}]})(props);\n};\nexport function FaMarker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481 31C445.1-4.8 386.9-4.8 351 31l-15 15L322.9 33C294.8 4.9 249.2 4.9 221.1 33L135 119c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L255 66.9c9.4-9.4 24.6-9.4 33.9 0L302.1 80 186.3 195.7 316.3 325.7 481 161c35.9-35.9 35.9-94.1 0-129.9zM293.7 348.3L163.7 218.3 99.5 282.5c-48 48-80.8 109.2-94.1 175.8l-5 25c-1.6 7.9 .9 16 6.6 21.7s13.8 8.1 21.7 6.6l25-5c66.6-13.3 127.8-46.1 175.8-94.1l64.2-64.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsAndVenusBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l39 39-22.2 22.2C475.9 78.4 439.6 64 400 64c-88.4 0-160 71.6-160 160c0 80.2 59.1 146.7 136.1 158.2c0 .6-.1 1.2-.1 1.8l0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .4 0 .3 0 .4 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3 0 .3-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1 0 .1c0 0 0 .1 0 .1s0 .1 0 .1l0 .1c0 0 0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 .1 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 .1s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0l24 0-24 0c0 13.3 10.7 24 24 24s24-10.7 24-24l-24 0 24 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0 0 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1s0-.1 0-.1l0-.1c0 0 0-.1 0-.1s0-.1 0-.1l0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.1 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.3 0-.4 0-.3 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4 0-.4c0-.6 0-1.2-.1-1.8c77-11.6 136.1-78 136.1-158.2c0-31.4-9-60.7-24.7-85.4L560 113.9l39 39c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 0zM400 128a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.1 3.8 9.9 5.1 15.2 3.6C223.6 310.8 208 269.2 208 224c0-60.8 28.3-115 72.4-150.2L220.3 92.1l-29.4-74z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsAndVenus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 14.8C341.5 5.8 350.3 0 360 0L472 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-24.7 24.7C407 163.3 416 192.6 416 224c0 80.2-59 146.6-136 158.2l0 25.8 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-25.8C155 370.6 96 304.2 96 224c0-88.4 71.6-160 160-160c39.6 0 75.9 14.4 103.8 38.2L382.1 80 343 41c-6.9-6.9-8.9-17.2-5.2-26.2zM448 48s0 0 0 0s0 0 0 0s0 0 0 0zM352 224a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L275.8 159c-28.4-19.5-62.7-31-99.8-31C78.8 128 0 206.8 0 304s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L407 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L312 32zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM64 304a112 112 0 1 1 224 0A112 112 0 1 1 64 304zM368 480c97.2 0 176-78.8 176-176c0-37-11.4-71.4-31-99.8l52.6-52.6L599 185c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L504 32c-9.7 0-18.5 5.8-22.2 14.8c-1.2 2.9-1.8 6-1.8 9l0 .2 0 .2c0 6.2 2.5 12.2 7 16.8l33.4 33.4L480 146.7l0 21.3c0 22.6-13.6 43.1-34.6 51.7c-.8 .3-1.7 .7-2.5 1C465.7 241.2 480 270.9 480 304c0 61.9-50.1 112-112 112c-5.4 0-10.8-.4-16-1.1c-12.9 20.4-29.1 38.3-48.1 53.1c19.8 7.8 41.4 12 64 12z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm174.4-88C370.7 365.8 297.1 432 208 432c-97.2 0-176-78.8-176-176s78.8-176 176-176c89.1 0 162.7 66.2 174.4 152l33.6 0 0-56c0-13.3 10.7-24 24-24s24 10.7 24 24l0 56 32 0 0-56c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-56-32 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-56-33.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.7 4.7c6.2-6.2 16.4-6.2 22.6 0l64 64c4.6 4.6 5.9 11.5 3.5 17.4s-8.3 9.9-14.8 9.9l-40 0 0 24 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 24c0 .6 0 1.2-.1 1.8c77 11.6 136.1 78 136.1 158.2c0 88.4-71.6 160-160 160S0 440.4 0 352c0-80.2 59.1-146.7 136.1-158.2c0-.6-.1-1.2-.1-1.8l0-24-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-24L96 96c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l64-64zM256 352A96 96 0 1 0 64 352a96 96 0 1 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376 0c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l33.4 33.4L370.3 96.4 345 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l25.4 25.4L307.8 159c-28.4-19.5-62.7-31-99.8-31c-97.2 0-176 78.8-176 176s78.8 176 176 176s176-78.8 176-176c0-37-11.4-71.4-31-99.8l28.6-28.6L407 201c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-25.4-25.4 22.1-22.1L471 153c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-112c0-13.3-10.7-24-24-24L376 0zm88 48s0 0 0 0s0 0 0 0s0 0 0 0zM96 304a112 112 0 1 1 224 0A112 112 0 1 1 96 304z\"},\"child\":[]}]})(props);\n};\nexport function FaMars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.8 46.8c3.7-9 12.5-14.8 22.2-14.8l112 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L321 204.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176S0 401.2 0 304s78.8-176 176-176c37 0 71.4 11.4 99.8 31l52.6-52.6L295 73c-6.9-6.9-8.9-17.2-5.2-26.2zM400 80s0 0 0 0s0 0 0 0s0 0 0 0zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"},\"child\":[]}]})(props);\n};\nexport function FaMartiniGlassCitrus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 240c53 0 96-43 96-96s-43-96-96-96c-35.5 0-66.6 19.3-83.2 48l-52.6 0C316 40.1 369.3 0 432 0c79.5 0 144 64.5 144 144s-64.5 144-144 144c-27.7 0-53.5-7.8-75.5-21.3l35.4-35.4c12.2 5.6 25.8 8.7 40.1 8.7zM1.8 142.8C5.5 133.8 14.3 128 24 128l368 0c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-177 177L232 464l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-118.1L7 169c-6.9-6.9-8.9-17.2-5.2-26.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMartiniGlassEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM256 210.7L109.3 64l293.5 0L256 210.7z\"},\"child\":[]}]})(props);\n};\nexport function FaMartiniGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C19.1 0 7.4 7.8 2.4 19.8s-2.2 25.7 6.9 34.9L224 269.3 224 448l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-178.7L502.6 54.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 0 480 0L32 0zM173.3 128l-64-64 293.5 0-64 64-165.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMaskFace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1l-9.2 0-16 0-72 0c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l108 27C233.8 435 275.4 448 320 448s86.2-13 121.1-35.5l108-27C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-72 0-16 0-9.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM132.3 346.3l-29.8-7.4C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l40 0 0 48c0 45.1 13.4 87.2 36.3 122.3zm405.1-7.4l-29.8 7.4c23-35.2 36.3-77.2 36.3-122.3l0-48 40 0c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9zM192 208c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zm16 48l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm16 80c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMaskVentilator (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.1 176C139.4 219.2 128 264.7 128 300.8c0 15.9 2.2 31.4 6.3 46l-31.8-7.9C70.5 330.9 48 302.1 48 269l0-85c0-4.4 3.6-8 8-8l103.1 0zm26-48L56 128c-30.9 0-56 25.1-56 56l0 85c0 55.1 37.5 103.1 90.9 116.4l71.3 17.8c22.7 30.5 55.4 54.1 93.8 66.6l0-76.6c-19.7-16.4-32-40.3-32-66.9c0-49.5 43-134.4 96-134.4c52.5 0 96 84.9 96 134.4c0 26.7-12.4 50.4-32 66.8l0 76.6c38-12.6 70.6-36 93.5-66.4l71.6-17.9C602.5 372.1 640 324.1 640 269l0-85c0-30.9-25.1-56-56-56l-129.5 0C419.7 73.8 372.1 32 320 32c-52.6 0-100.2 41.8-134.9 96zm295.6 48L584 176c4.4 0 8 3.6 8 8l0 85c0 33-22.5 61.8-54.5 69.9l-31.8 8c4.2-14.7 6.4-30.1 6.4-46.1c0-36.1-11.6-81.6-31.3-124.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMask (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176s-64-208-288-208zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaMasksTheater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M74.6 373.2c41.7 36.1 108 82.5 166.1 73.7c6.1-.9 12.1-2.5 18-4.5c-9.2-12.3-17.3-24.4-24.2-35.4c-21.9-35-28.8-75.2-25.9-113.6c-20.6 4.1-39.2 13-54.7 25.4c-6.5 5.2-16.3 1.3-14.8-7c6.4-33.5 33-60.9 68.2-66.3c2.6-.4 5.3-.7 7.9-.8l19.4-131.3c2-13.8 8-32.7 25-45.9C278.2 53.2 310.5 37 363.2 32.2c-.8-.7-1.6-1.4-2.4-2.1C340.6 14.5 288.4-11.5 175.7 5.6S20.5 63 5.7 83.9C0 91.9-.8 102 .6 111.8L24.8 276.1c5.5 37.3 21.5 72.6 49.8 97.2zm87.7-219.6c4.4-3.1 10.8-2 11.8 3.3c.1 .5 .2 1.1 .3 1.6c3.2 21.8-11.6 42-33.1 45.3s-41.5-11.8-44.7-33.5c-.1-.5-.1-1.1-.2-1.6c-.6-5.4 5.2-8.4 10.3-6.7c9 3 18.8 3.9 28.7 2.4s19.1-5.3 26.8-10.8zM261.6 390c29.4 46.9 79.5 110.9 137.6 119.7s124.5-37.5 166.1-73.7c28.3-24.5 44.3-59.8 49.8-97.2l24.2-164.3c1.4-9.8 .6-19.9-5.1-27.9c-14.8-20.9-57.3-61.2-170-78.3S299.4 77.2 279.2 92.8c-7.8 6-11.5 15.4-12.9 25.2L242.1 282.3c-5.5 37.3-.4 75.8 19.6 107.7zM404.5 235.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6c-1 5.3-7.4 6.4-11.8 3.3zm136.2 15.5c-1 5.3-7.4 6.4-11.8 3.3c-7.7-5.5-16.8-9.3-26.8-10.8s-19.8-.6-28.7 2.4c-5.1 1.7-10.9-1.3-10.3-6.7c.1-.5 .1-1.1 .2-1.6c3.2-21.8 23.2-36.8 44.7-33.5s36.3 23.5 33.1 45.3c-.1 .5-.2 1.1-.3 1.6zM530 350.2c-19.6 44.7-66.8 72.5-116.8 64.9s-87.1-48.2-93-96.7c-1-8.3 8.9-12.1 15.2-6.7c23.9 20.8 53.6 35.3 87 40.3s66.1 .1 94.9-12.8c7.6-3.4 16 3.2 12.6 10.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMattressPillow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm32 384l288 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L288 64l0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMedal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.1 38.2C1.4 34.2 0 29.4 0 24.6C0 11 11 0 24.6 0L133.9 0c11.2 0 21.7 5.9 27.4 15.5l68.5 114.1c-48.2 6.1-91.3 28.6-123.4 61.9L4.1 38.2zm503.7 0L405.6 191.5c-32.1-33.3-75.2-55.8-123.4-61.9L350.7 15.5C356.5 5.9 366.9 0 378.1 0L487.4 0C501 0 512 11 512 24.6c0 4.8-1.4 9.6-4.1 13.6zM80 336a176 176 0 1 1 352 0A176 176 0 1 1 80 336zm184.4-94.9c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1L168 298.9c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.2 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9l44.8-23.6c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.6-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1l-22.4-45.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMemory (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128l0 7.4c0 6.8 4.4 12.6 10.1 16.3C23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6L0 320l576 0 0-71.4c0-6.8-4.4-12.6-10.1-16.3C552.7 223.7 544 208.9 544 192s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM576 352L0 352l0 64c0 17.7 14.3 32 32 32l48 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 96 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 48 0c17.7 0 32-14.3 32-32l0-64zM192 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMenorah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64L96 384c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96 0 32-64 0 0-32 0-96c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMercury (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72.1 7C85.8-4 106-1.8 117 12c17.6 22 44.7 36 75 36s57.3-14 75-36c11.1-13.8 31.2-16 45-5s16 31.2 5 45c-7.8 9.7-16.6 18.4-26.4 26.1C337.3 109.7 368 163.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-60.7 30.7-114.3 77.5-145.9C83.7 70.5 74.9 61.7 67.1 52c-11.1-13.8-8.8-33.9 5-45zM80 224a112 112 0 1 0 224 0A112 112 0 1 0 80 224z\"},\"child\":[]}]})(props);\n};\nexport function FaMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 35.3 28.7 64 64 64l96 0 0 80c0 6.1 3.4 11.6 8.8 14.3s11.9 2.1 16.8-1.5L309.3 416 448 416c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64L64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMeteor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M493.7 .9L299.4 75.6l2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309C0 421.1 90.9 512 203 512c72.4 0 139.4-38.6 175.7-101.3L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3L511.1 18.3c.6-1.5 .9-3.2 .9-4.8C512 6 506 0 498.5 0c-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrochip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneLinesSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24 0 16c0 21.2-5.1 41.1-14.2 58.7L416 300.8l0-44.8-57.1 0-34.5-27c2.9-3.1 7-5 11.6-5l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zm362.5 407l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 96l0 160c0 53 43 96 96 96s96-43 96-96l-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-32-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0c0-53-43-96-96-96S96 43 96 96zM320 240l0 16c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c15.2-26 23.9-56.3 23.9-88.7l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 21.2-5.1 41.1-14.2 58.7L416 300.8 416 96c0-53-43-96-96-96s-96 43-96 96l0 54.3L38.8 5.1zM344 430.4c20.4-2.8 39.7-9.1 57.3-18.2l-43.1-33.9C346.1 382 333.3 384 320 384c-70.7 0-128-57.3-128-128l0-8.7L144.7 210c-.5 1.9-.7 3.9-.7 6l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0C139 0 96 43 96 96l0 160c0 53 43 96 96 96s96-43 96-96l0-160c0-53-43-96-96-96zM64 216c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 89.1 66.2 162.7 152 174.4l0 33.6-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-33.6c85.8-11.7 152-85.3 152-174.4l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMillSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.1 42.8c5.9-16.6-2.7-35-19.4-40.9s-35 2.7-40.9 19.4L208 116.1c-5.7 4-11.1 8.5-16 13.5C171.7 108.9 143.3 96 112 96c-19.5 0-37.8 5-53.7 13.7C52.5 101.4 42.9 96 32 96C14.3 96 0 110.3 0 128l0 80L0 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-26.5 21.5-48 48-48s48 21.5 48 48l0 42.5L81.9 469.2c-5.9 16.6 2.7 35 19.4 40.9s35-2.7 40.9-19.4l21.4-60C168.9 441 179.6 448 192 448c17.7 0 32-14.3 32-32l0-154.5 35.7-100c3.9-1 8.1-1.6 12.3-1.6c26.5 0 48 21.5 48 48l0 208c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208c0-58.2-44.3-106-101.1-111.5l19.2-53.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z\"},\"child\":[]}]})(props);\n};\nexport function FaMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMitten (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3C0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3c0 15.9-6 31.2-16.8 42.9L352 384zM32 448c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileRetro (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L256 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm64 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 352a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56-56a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 56a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 48c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileScreenButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM224 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM304 64L80 64l0 320 224 0 0-320z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileScreen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z\"},\"child\":[]}]})(props);\n};\nexport function FaMobile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm80 432l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill1Wave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM128 416l-64 0 0-64c35.3 0 64 28.7 64 64zM64 224l0-64 64 0c0 35.3-28.7 64-64 64zM448 352c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM384 256c0 61.9-43 112-96 112s-96-50.1-96-112s43-112 96-112s96 50.1 96 112zM252 208c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm76-48c0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l24 0 24 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillTransfer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M535 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17s-2.5 12.5-7 17l-64 64c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23L384 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l174.1 0L535 41zM105 377l-23 23L256 400c13.3 0 24 10.7 24 24s-10.7 24-24 24L81.9 448l23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 441c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l64-64c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM96 64l241.9 0c-3.7 7.2-5.9 15.3-5.9 24c0 28.7 23.3 52 52 52l117.4 0c-4 17 .6 35.5 13.8 48.8c20.3 20.3 53.2 20.3 73.5 0L608 169.5 608 384c0 35.3-28.7 64-64 64l-241.9 0c3.7-7.2 5.9-15.3 5.9-24c0-28.7-23.3-52-52-52l-117.4 0c4-17-.6-35.5-13.8-48.8c-20.3-20.3-53.2-20.3-73.5 0L32 342.5 32 128c0-35.3 28.7-64 64-64zm64 64l-64 0 0 64c35.3 0 64-28.7 64-64zM544 320c-35.3 0-64 28.7-64 64l64 0 0-64zM320 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillTrendUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.7 9.4c3 3.1 5.3 6.6 6.9 10.3s2.4 7.8 2.4 12.2c0 0 0 .1 0 .1c0 0 0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7L310.6 214.6c-11.8 11.8-30.8 12.6-43.5 1.7L176 138.1 84.8 216.3c-13.4 11.5-33.6 9.9-45.1-3.5s-9.9-33.6 3.5-45.1l112-96c12-10.3 29.7-10.3 41.7 0l89.5 76.7L370.7 64 352 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0s0 0 0 0c8.8 0 16.8 3.6 22.6 9.3l.1 .1zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 112.5L0 422.3c0 18 10.1 35 27 41.3c87 32.5 174 10.3 261-11.9c79.8-20.3 159.6-40.7 239.3-18.9c23 6.3 48.7-9.5 48.7-33.4l0-309.9c0-18-10.1-35-27-41.3C462 15.9 375 38.1 288 60.3C208.2 80.6 128.4 100.9 48.7 79.1C25.6 72.8 0 88.6 0 112.5zM288 352c-44.2 0-80-43-80-96s35.8-96 80-96s80 43 80 96s-35.8 96-80 96zM64 352c35.3 0 64 28.7 64 64l-64 0 0-64zm64-208c0 35.3-28.7 64-64 64l0-64 64 0zM512 304l0 64-64 0c0-35.3 28.7-64 64-64zM448 96l64 0 0 64c-35.3 0-64-28.7-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zM56 16l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 64C42.7 64 32 53.3 32 40s10.7-24 24-24zM24 88l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 136c-13.3 0-24-10.7-24-24S10.7 88 24 88zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 16c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80zM400 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80c0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 128c8.8 0 16 7.2 16 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm64 320l-64 0 0-64c35.3 0 64 28.7 64 64zM64 192l0-64 64 0c0 35.3-28.7 64-64 64zM448 384c0-35.3 28.7-64 64-64l0 64-64 0zm64-192c-35.3 0-64-28.7-64-64l64 0 0 64zM288 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 96l0 224c0 35.3 28.7 64 64 64l416 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zm64 160c35.3 0 64 28.7 64 64l-64 0 0-64zM224 96c0 35.3-28.7 64-64 64l0-64 64 0zM576 256l0 64-64 0c0-35.3 28.7-64 64-64zM512 96l64 0 0 64c-35.3 0-64-28.7-64-64zM288 208a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 360c0 66.3 53.7 120 120 120l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-400 0c-39.8 0-72-32.2-72-72l0-240z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheckDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM272 192l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM256 304c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16zM164 152l0 13.9c7.5 1.2 14.6 2.9 21.1 4.7c10.7 2.8 17 13.8 14.2 24.5s-13.8 17-24.5 14.2c-11-2.9-21.6-5-31.2-5.2c-7.9-.1-16 1.8-21.5 5c-4.8 2.8-6.2 5.6-6.2 9.3c0 1.8 .1 3.5 5.3 6.7c6.3 3.8 15.5 6.7 28.3 10.5l.7 .2c11.2 3.4 25.6 7.7 37.1 15c12.9 8.1 24.3 21.3 24.6 41.6c.3 20.9-10.5 36.1-24.8 45c-7.2 4.5-15.2 7.3-23.2 9l0 13.8c0 11-9 20-20 20s-20-9-20-20l0-14.6c-10.3-2.2-20-5.5-28.2-8.4c0 0 0 0 0 0s0 0 0 0c-2.1-.7-4.1-1.4-6.1-2.1c-10.5-3.5-16.1-14.8-12.6-25.3s14.8-16.1 25.3-12.6c2.5 .8 4.9 1.7 7.2 2.4c13.6 4.6 24 8.1 35.1 8.5c8.6 .3 16.5-1.6 21.4-4.7c4.1-2.5 6-5.5 5.9-10.5c0-2.9-.8-5-5.9-8.2c-6.3-4-15.4-6.9-28-10.7l-1.7-.5c-10.9-3.3-24.6-7.4-35.6-14c-12.7-7.7-24.6-20.5-24.7-40.7c-.1-21.1 11.8-35.7 25.8-43.9c6.9-4.1 14.5-6.8 22.2-8.5l0-14c0-11 9-20 20-20s20 9 20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm48 160l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM96 336c0-8.8 7.2-16 16-16l352 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-352 0c-8.8 0-16-7.2-16-16zM376 160l80 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaMonument (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.7 4.7c6.2-6.2 16.4-6.2 22.6 0l80 80c2.5 2.5 4.1 5.8 4.6 9.3l40.2 322L55.9 416 96.1 94c.4-3.5 2-6.8 4.6-9.3l80-80zM152 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM32 448l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMortarPestle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160l144.9 0L502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2c-11.1 13.9-19.4 30.3-23.9 48.1C127.6 497.4 142.3 512 160 512l192 0c17.7 0 32.4-14.6 28.1-31.7c-4.5-17.8-12.8-34.1-23.9-48.1C436.6 403.7 480 338.5 480 256c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"},\"child\":[]}]})(props);\n};\nexport function FaMosque (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0c5 0 9.8 2.4 12.8 6.4c34.7 46.3 78.1 74.9 133.5 111.5c0 0 0 0 0 0s0 0 0 0c5.2 3.4 10.5 7 16 10.6c28.9 19.2 45.7 51.7 45.7 86.1c0 28.6-11.3 54.5-29.8 73.4l-356.4 0c-18.4-19-29.8-44.9-29.8-73.4c0-34.4 16.7-66.9 45.7-86.1c5.4-3.6 10.8-7.1 16-10.6c0 0 0 0 0 0s0 0 0 0C309.1 81.3 352.5 52.7 387.2 6.4c3-4 7.8-6.4 12.8-6.4zM288 512l0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-48 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l416 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-58c0-19-8.4-37-23-49.2L400 384l-25 20.8C360.4 417 352 435 352 454l0 58-64 0zM70.4 5.2c5.7-4.3 13.5-4.3 19.2 0l16 12C139.8 42.9 160 83.2 160 126l0 2L0 128l0-2C0 83.2 20.2 42.9 54.4 17.2l16-12zM0 160l160 0 0 136.6c-19.1 11.1-32 31.7-32 55.4l0 128c0 9.6 2.1 18.6 5.8 26.8c-6.6 3.4-14 5.2-21.8 5.2l-64 0c-26.5 0-48-21.5-48-48L0 176l0-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMosquitoNet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.8 462.3c-7.9-4-11.1-13.6-7.2-21.5L192 380.2l0-44.2c0-4.2 1.7-8.3 4.7-11.3L256 265.4l0-23.1L139.2 344C87.8 395.3 0 358.9 0 286.3c0-41.1 30.6-75.8 71.4-80.9l159.9-23.9-49.6-41.3c-5.1-4.2-7-11.1-4.9-17.4l13.9-41.7-29-58.1c-4-7.9-.7-17.5 7.2-21.5s17.5-.7 21.5 7.2l32 64c1.9 3.8 2.2 8.2 .9 12.2l-12.5 37.6L256 160.5l0-22.6c0-14.9 10.1-27.3 23.8-31l0-43.3c0-4.5 3.7-8.2 8.2-8.2s8.2 3.7 8.2 8.2l0 43.3c13.7 3.6 23.8 16.1 23.8 31l0 22.6 45.4-37.8L352.8 85.1c-1.3-4-1-8.4 .9-12.2l32-64c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-29 58.1 13.9 41.7c2.1 6.2 .1 13.1-4.9 17.4l-49.6 41.3 159.9 23.9c22.5 2.8 41.8 14.6 54.7 31.4c-2.7 2.6-5.2 5.4-7.3 8.6c-8.6-12.9-23.3-21.5-40-21.5s-31.4 8.5-40 21.5c-8.6-12.9-23.3-21.5-40-21.5c-21.7 0-40 14.3-45.9 34.1c-10.7 3.2-19.8 10.1-25.9 19.2l-40.2-35 0 23.1 32.4 32.4c-.3 2-.4 4.1-.4 6.2c0 16.7 8.5 31.4 21.5 40c-4 2.6-7.5 5.9-10.6 9.5L320 310.6l0 50c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50-32 32 0 41.4c0 2.5-.6 4.9-1.7 7.2l-32 64c-4 7.9-13.6 11.1-21.5 7.2zM512 256c8.8 0 16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 48 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-48 0 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-16-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-48-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 16 48 0 0-16c0-8.8 7.2-16 16-16zm16 112l48 0 0-48-48 0 0 48zm0 80l48 0 0-48-48 0 0 48zM448 320l0 48 48 0 0-48-48 0zm0 80l0 48 48 0 0-48-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMosquito (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463.7 505.9c9.8-8.9 10.7-24.3 2.1-34.3l-42.1-49 0-54.7c0-5.5-1.8-10.8-5.1-15.1L352 266.3l0-.3L485.4 387.8C542.4 447.6 640 405.2 640 320.6c0-47.9-34-88.3-79.4-94.2l-153-23.9 40.8-40.9c7.8-7.8 9.4-20.1 3.9-29.8L428.5 90.1l38.2-50.9c8-10.6 6.1-25.9-4.3-34.1s-25.2-6.3-33.2 4.4l-48 63.9c-5.9 7.9-6.6 18.6-1.7 27.2L402.2 140 352 190.3l0-38.2c0-14.9-10.2-27.4-24-31l0-57.2c0-4.4-3.6-8-8-8s-8 3.6-8 8l0 57.2c-13.8 3.6-24 16.1-24 31l0 38.1L237.8 140l22.6-39.5c4.9-8.6 4.2-19.3-1.7-27.2l-48-63.9c-8-10.6-22.8-12.6-33.2-4.4s-12.2 23.5-4.3 34.1l38.2 50.9-23.9 41.7c-5.5 9.7-3.9 22 3.9 29.8l40.8 40.9-153 23.9C34 232.3 0 272.7 0 320.6c0 84.6 97.6 127 154.6 67.1L288 266l0 .3-66.5 86.4c-3.3 4.3-5.1 9.6-5.1 15.1l0 54.7-42.1 49c-8.6 10.1-7.7 25.5 2.1 34.3s24.7 7.9 33.4-2.1l48-55.9c3.8-4.4 5.9-10.2 5.9-16.1l0-55.4L288 344.7l0 63.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-63.1 24.3 31.6 0 55.4c0 5.9 2.1 11.7 5.9 16.1l48 55.9c8.6 10.1 23.6 11 33.4 2.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMotorcycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l57.7 0 16.4 30.3L256 192l-45.3-45.3c-12-12-28.3-18.7-45.3-18.7L64 128c-17.7 0-32 14.3-32 32l0 32 96 0c88.4 0 160 71.6 160 160c0 11-1.1 21.7-3.2 32l70.4 0c-2.1-10.3-3.2-21-3.2-32c0-52.2 25-98.6 63.7-127.8l15.4 28.6C402.4 276.3 384 312 384 352c0 70.7 57.3 128 128 128s128-57.3 128-128s-57.3-128-128-128c-13.5 0-26.5 2.1-38.7 6L418.2 128l61.8 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-20.4 0c-7.5 0-14.7 2.6-20.5 7.4L391.7 78.9l-14-26c-7-12.9-20.5-21-35.2-21L280 32zM462.7 311.2l28.2 52.2c6.3 11.7 20.9 16 32.5 9.7s16-20.9 9.7-32.5l-28.2-52.2c2.3-.3 4.7-.4 7.1-.4c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-15.5 5.5-29.7 14.7-40.8zM187.3 376c-9.5 23.5-32.5 40-59.3 40c-35.3 0-64-28.7-64-64s28.7-64 64-64c26.9 0 49.9 16.5 59.3 40l66.4 0C242.5 268.8 190.5 224 128 224C57.3 224 0 281.3 0 352s57.3 128 128 128c62.5 0 114.5-44.8 125.8-104l-66.4 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMound (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMountainCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0c-26.5 0-48 21.5-48 48l0 92.1 71.4 118.4c2.5-1.6 5.4-2.5 8.6-2.5l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-3.5 0 73.8 122.4c12.4 20.6 12.9 46.3 1.2 67.3c-.4 .8-.9 1.6-1.4 2.3L592 512c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48l-24 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-40 0 0-144c0-26.5-21.5-48-48-48L336 0zm32 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM352 176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm160 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM224 188.9L283.8 288 223 288l-48 64-24.6-41.2L224 188.9zm29.4-44.2C247.1 134.3 236 128 224 128s-23.1 6.3-29.4 16.7L5.1 458.9c-6.5 10.8-6.7 24.3-.7 35.3S22 512 34.5 512l379.1 0c12.5 0 24-6.8 30.1-17.8s5.8-24.5-.7-35.3L253.4 144.7z\"},\"child\":[]}]})(props);\n};\nexport function FaMountainSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 160A80 80 0 1 0 560 0a80 80 0 1 0 0 160zM55.9 512l325.2 0 75 0 122.8 0c33.8 0 61.1-27.4 61.1-61.1c0-11.2-3.1-22.2-8.9-31.8l-132-216.3C495 196.1 487.8 192 480 192s-15 4.1-19.1 10.7l-48.2 79L286.8 81c-6.6-10.6-18.3-17-30.8-17s-24.1 6.4-30.8 17L8.6 426.4C3 435.3 0 445.6 0 456.1C0 487 25 512 55.9 512z\"},\"child\":[]}]})(props);\n};\nexport function FaMountain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c12.5 0 24.1 6.4 30.8 17L503.4 394.4c5.6 8.9 8.6 19.2 8.6 29.7c0 30.9-25 55.9-55.9 55.9L55.9 480C25 480 0 455 0 424.1c0-10.5 3-20.8 8.6-29.7L225.2 49c6.6-10.6 18.3-17 30.8-17zm65 192L256 120.4 176.9 246.5l18.3 24.4c6.4 8.5 19.2 8.5 25.6 0l25.6-34.1c6-8.1 15.5-12.8 25.6-12.8l49 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMugHot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 0C74.7 0 64 10.7 64 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C120.5 112.3 128 119.9 128 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C119.5 47.7 112 40.1 112 24c0-13.3-10.7-24-24-24zM32 192c-17.7 0-32 14.3-32 32L0 416c0 53 43 96 96 96l192 0c53 0 96-43 96-96l16 0c61.9 0 112-50.1 112-112s-50.1-112-112-112l-48 0L32 192zm352 64l16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0 0-96zM224 24c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 38.9 23.4 59.4 39.1 73.1l1.1 1C232.5 112.3 240 119.9 240 136c0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C231.5 47.7 224 40.1 224 24z\"},\"child\":[]}]})(props);\n};\nexport function FaMugSaucer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-17.7 14.3-32 32-32l320 0 64 0c70.7 0 128 57.3 128 128s-57.3 128-128 128l-32 0c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L96 64zM480 224l32 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0 0 128zM32 416l512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7l0 72 0 264c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L448 147 192 223.8 192 432c0 44.2-43 80-96 80s-96-35.8-96-80s43-80 96-80c11.2 0 22 1.6 32 4.6L128 200l0-72c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z\"},\"child\":[]}]})(props);\n};\nexport function FaN (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 64C0 50.5 8.4 38.5 21.1 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNairaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 100.2 0 97.2 145.8c7.8 11.7 22.4 17 35.9 12.9s22.7-16.5 22.7-30.6l0-128 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0L122.6 46.3zM305.1 320l14.9 0 0 22.3L305.1 320zM185.5 256L128 256l0-86.3L185.5 256z\"},\"child\":[]}]})(props);\n};\nexport function FaNetworkWired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64l128 0 0 64-128 0 0-64zM240 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l48 0 0 32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 256 0 0 32-48 0c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l160 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-32 48 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48L240 0zM96 448l0-64 128 0 0 64L96 448zm320-64l128 0 0 64-128 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaNeuter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1L160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-130.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaNotEqual (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.8 37.4c14.7 9.8 18.7 29.7 8.9 44.4L337.1 144l62.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-105.5 0-64 96L400 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-212.2 0-65.2 97.7c-9.8 14.7-29.7 18.7-44.4 8.9s-18.7-29.7-8.9-44.4L110.9 368 48 368c-17.7 0-32-14.3-32-32s14.3-32 32-32l105.5 0 64-96L48 208c-17.7 0-32-14.3-32-32s14.3-32 32-32l212.2 0 65.2-97.7c9.8-14.7 29.7-18.7 44.4-8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNotdef (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaNoteSticky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaNotesMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 352L96 96c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 197.5c0 17-6.7 33.3-18.7 45.3l-58.5 58.5c-12 12-28.3 18.7-45.3 18.7L160 416c-35.3 0-64-28.7-64-64zM272 128c-8.8 0-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0zm24 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0C60.9 512 0 451.1 0 376L0 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 224c0 48.6 39.4 88 88 88l160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaO (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256A224 224 0 1 1 0 256a224 224 0 1 1 448 0z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l337.1 0C467.6 12.9 488.3 0 512 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-273.1zM456.6 96L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1c-9.7-5.6-17.8-13.7-23.4-23.4zM128 160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 119.4C12.9 108.4 0 87.7 0 64C0 28.7 28.7 0 64 0c23.7 0 44.4 12.9 55.4 32l209.1 0C339.6 12.9 360.3 0 384 0c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zm192 384c-11.1 19.1-31.7 32-55.4 32c-35.3 0-64-28.7-64-64c0-23.7 12.9-44.4 32-55.4l0-40.6 64 0 0 40.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4l-46 0c-5.4-15.4-14.6-28.9-26.5-39.6l0-24.4 72.6 0c11.1-19.1 31.7-32 55.4-32c35.3 0 64 28.7 64 64c0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4c0 35.3-28.7 64-64 64c-23.7 0-44.4-12.9-55.4-32l-209.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOilCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-80 0-48 0-48 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30L96 368c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192l-50.5-25.2c-8.9-4.4-18.7-6.8-28.6-6.8L288 160l0-32 32 0zM96 208l0 86.1L48 272.8 48 208l48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOilWell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4L308.5 167.5l-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39L96 222.6 96 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0L340 257.5l-62.2 16.1L305.3 352l-66.6 0L265 277l-74.6 19.3L137.3 448 96 448l0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l11.2-32 111.4 0 11.2 32-133.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M379.3 4.7c-6.2-6.2-16.4-6.2-22.6 0l-16 16c-6.2 6.2-6.2 16.4 0 22.6l16 16c6.2 6.2 16.4 6.2 22.6 0l16-16c6.2-6.2 6.2-16.4 0-22.6l-16-16zM281 66.7c-2.2-1.5-4.9-2.5-7.7-2.7c-.6 0-1.3-.1-1.9 0c-3.9 .2-7.4 1.7-10.1 4.2c-.9 .8-1.6 1.7-2.3 2.6c-1.7 2.4-2.7 5.3-2.9 8.5c0 .7 0 1.4 0 2.1c.2 2.2 .9 4.3 1.9 6.2l.3 .6c.3 .6 .8 1.4 1.4 2.4c1.2 2 2.9 4.8 5.1 8.2c4.4 6.7 11.1 15.5 20 24.4C302.4 141.1 330.3 160 368 160c31.2 0 56.6-10.4 73.9-20.2c8.7-5 15.6-9.9 20.4-13.8c2.4-1.9 4.3-3.6 5.7-4.9c.7-.6 1.3-1.2 1.7-1.6l.6-.5 .1-.1 .1-.1s0 0 0 0s0 0 0 0c5.9-5.8 9.5-13.9 9.5-22.8c0-17.7-14.3-32-32-32c-8.7 0-16.7 3.5-22.4 9.2c-.1 .1-.2 .2-.5 .4c-.5 .5-1.5 1.3-2.8 2.4c-2.7 2.2-6.8 5.2-12.1 8.2C399.4 90.4 384.8 96 368 96c-20.8 0-42.4-7-59.5-14.6c-8.4-3.7-15.4-7.5-20.3-10.3c-2.4-1.4-4.3-2.5-5.6-3.3c-.6-.4-1.1-.7-1.4-.9l-.3-.2zM115.2 169.6c8-6 17.9-9.6 28.8-9.6c26.5 0 48 21.5 48 48s-21.5 48-48 48l-34.2 0c-7.6 0-13.8 6.2-13.8 13.8c0 1.5 .2 2.9 .7 4.4l8 24c4.4 13.1 16.6 21.9 30.4 21.9l8.9 0 16 0c35.3 0 64 28.7 64 64s-28.7 64-64 64c-50.8 0-82.7-21.5-102.2-42.8c-9.9-10.8-16.6-21.6-20.9-29.7c-2.1-4-3.6-7.3-4.5-9.6c-.5-1.1-.8-2-1-2.5l-.2-.5c-.3-.9-.7-1.8-1.1-2.6c-1.2-2.2-2.8-4-4.7-5.4c-1.9-1.4-4.1-2.3-6.5-2.8c-1.4-.3-2.9-.3-4.4-.2c-2.5 .2-4.8 1-6.8 2.3c-1.1 .7-2.2 1.5-3.1 2.5c-2.4 2.5-4.1 5.8-4.5 9.5c-.1 .6-.1 1.1-.1 1.7c0 0 0 0 0 0c0 .8 .1 1.7 .2 2.5l0 .1c0 .3 .1 .8 .2 1.3c.2 1.1 .4 2.7 .8 4.6c.8 3.9 2 9.4 3.9 15.9c3.8 13 10.3 30.4 21.3 48C48.7 476.2 89.4 512 160 512c70.7 0 128-57.3 128-128c0-23.3-6.2-45.2-17.1-64l22.6 0c25.5 0 49.9-10.1 67.9-28.1l26.5-26.5c6-6 14.1-9.4 22.6-9.4l5.5 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32c-25.7 0-41.4-12.5-51.2-25.6c-5-6.7-8.4-13.4-10.5-18.6c-1.1-2.5-1.8-4.6-2.2-6c-.2-.7-.4-1.2-.5-1.5l-.1-.2c-.3-1.3-.8-2.6-1.5-3.8c-1.1-2-2.6-3.8-4.4-5.1c-2.7-2-6-3.2-9.6-3.2l-.2 0c-8 .1-14.6 6.1-15.6 13.9c0 0 0 0 0 0c0 .3-.1 .6-.2 1.1c-.1 .9-.3 2.1-.4 3.6c-.3 3-.6 7.3-.6 12.4c0 10.1 1.1 23.9 5.8 38.1c4.8 14.3 13.4 29.3 28.6 40.7C368.7 473.3 389.3 480 416 480c53 0 96-43 96-96l0-96c0-53-43-96-96-96l-5.5 0c-25.5 0-49.9 10.1-67.9 28.1l-26.5 26.5c-6 6-14.1 9.4-22.6 9.4l-48.3 0c6.9-14.5 10.8-30.8 10.8-48c0-61.9-50.1-112-112-112c-25.2 0-48.5 8.3-67.2 22.4c-14.1 10.6-17 30.7-6.4 44.8s30.7 17 44.8 6.4z\"},\"child\":[]}]})(props);\n};\nexport function FaOtter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5c23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6c6.6 0 13.1-1.5 19.1-4.5l12.9-6.4 8.4-4.2L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4L160 240l-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6c-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-48 0-16c0-23.7 12.9-44.4 32-55.4c9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48c8.8 0 16 7.2 16 16l0 32 0 16 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1s0 0 0 0c0 123.7-100.3 224-224 224l-1.1 0L256 480l-.6 0C132 480 32 380 32 256.6l0-.6 0-39.2c-10.1-14.6-16-32.3-16-51.4L16 144l0-1.4C6.7 139.3 0 130.5 0 120c0-13.3 10.7-24 24-24l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24c0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3c12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3c-5.1 .9-10.3 1.3-15.6 1.3c-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaOutdent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z\"},\"child\":[]}]})(props);\n};\nexport function FaP (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l96 0c88.4 0 160 71.6 160 160s-71.6 160-160 160l-96 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 320 0 96zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96L64 96l0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaPager (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM80 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0zm136 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintRoller (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintbrush (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPalette (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaPallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 224 0 224 0 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0-224 0L96 320l-64 0zm96 64l160 0 0 64-160 0 0-64zm224 0l160 0 0 64-160 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPanorama (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45.6 32C20.4 32 0 52.4 0 77.6L0 434.4C0 459.6 20.4 480 45.6 480c5.1 0 10-.8 14.7-2.4C74.6 472.8 177.6 440 320 440s245.4 32.8 259.6 37.6c4.7 1.6 9.7 2.4 14.7 2.4c25.2 0 45.6-20.4 45.6-45.6l0-356.7C640 52.4 619.6 32 594.4 32c-5 0-10 .8-14.7 2.4C565.4 39.2 462.4 72 320 72S74.6 39.2 60.4 34.4C55.6 32.8 50.7 32 45.6 32zM96 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm272 0c7.9 0 15.4 3.9 19.8 10.5L512.3 353c5.4 8 5.6 18.4 .4 26.5s-14.7 12.3-24.2 10.7C442.7 382.4 385.2 376 320 376c-65.6 0-123.4 6.5-169.3 14.4c-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L197.3 265c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l26.4 33.1 87-127.6c4.5-6.6 11.9-10.5 19.8-10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.1 5.6c10.1 7 15.4 19.1 13.5 31.2l-64 416c-1.5 9.7-7.4 18.2-16 23s-18.9 5.4-28 1.6L284 427.7l-68.5 74.1c-8.9 9.7-22.9 12.9-35.2 8.1S160 493.2 160 480l0-83.6c0-4 1.5-7.8 4.2-10.8L331.8 202.8c5.8-6.3 5.6-16-.4-22s-15.7-6.4-22-.7L106 360.8 17.7 316.6C7.1 311.3 .3 300.7 0 288.9s5.9-22.8 16.1-28.7l448-256c10.7-6.1 23.9-5.5 34 1.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M364.2 83.8c-24.4-24.4-64-24.4-88.4 0l-184 184c-42.1 42.1-42.1 110.3 0 152.4s110.3 42.1 152.4 0l152-152c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-152 152c-64 64-167.6 64-231.6 0s-64-167.6 0-231.6l184-184c46.3-46.3 121.3-46.3 167.6 0s46.3 121.3 0 167.6l-176 176c-28.6 28.6-75 28.6-103.6 0s-28.6-75 0-103.6l144-144c10.9-10.9 28.7-10.9 39.6 0s10.9 28.7 0 39.6l-144 144c-6.7 6.7-6.7 17.7 0 24.4s17.7 6.7 24.4 0l176-176c24.4-24.4 24.4-64 0-88.4z\"},\"child\":[]}]})(props);\n};\nexport function FaParachuteBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.5 192c.3-5.3 .5-10.6 .5-16c0-51-15.9-96-40.2-127.6C319.5 16.9 288.2 0 256 0s-63.5 16.9-87.8 48.4C143.9 80 128 125 128 176c0 5.4 .2 10.7 .5 16L240 192l0 128-32 0c-7 0-13.7 1.5-19.7 4.2L68.2 192l28.3 0c-.3-5.3-.5-10.6-.5-16c0-64 22.2-121.2 57.1-159.3C62 49.3 18.6 122.6 4.2 173.6C1.5 183.1 9 192 18.9 192l6 0L165.2 346.3c-3.3 6.5-5.2 13.9-5.2 21.7l0 96c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-96c0-7.8-1.9-15.2-5.2-21.7L487.1 192l6 0c9.9 0 17.4-8.9 14.7-18.4C493.4 122.6 450 49.3 358.9 16.7C393.8 54.8 416 112.1 416 176c0 5.4-.2 10.7-.5 16l28.3 0L323.7 324.2c-6-2.7-12.7-4.2-19.7-4.2l-32 0 0-128 111.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaParagraph (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32l64 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0c-88.4 0-160-71.6-160-160s71.6-160 160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaPassport (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM183 278.8c-27.9-13.2-48.4-39.4-53.7-70.8l39.1 0c1.6 30.4 7.7 53.8 14.6 70.8zm41.3 9.2l-.3 0-.3 0c-2.4-3.5-5.7-8.9-9.1-16.5c-6-13.6-12.4-34.3-14.2-63.5l47.1 0c-1.8 29.2-8.1 49.9-14.2 63.5c-3.4 7.6-6.7 13-9.1 16.5zm40.7-9.2c6.8-17.1 12.9-40.4 14.6-70.8l39.1 0c-5.3 31.4-25.8 57.6-53.7 70.8zM279.6 176c-1.6-30.4-7.7-53.8-14.6-70.8c27.9 13.2 48.4 39.4 53.7 70.8l-39.1 0zM223.7 96l.3 0 .3 0c2.4 3.5 5.7 8.9 9.1 16.5c6 13.6 12.4 34.3 14.2 63.5l-47.1 0c1.8-29.2 8.1-49.9 14.2-63.5c3.4-7.6 6.7-13 9.1-16.5zM183 105.2c-6.8 17.1-12.9 40.4-14.6 70.8l-39.1 0c5.3-31.4 25.8-57.6 53.7-70.8zM352 192A128 128 0 1 0 96 192a128 128 0 1 0 256 0zM112 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l224 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c-23.7 0-44.4 12.9-55.4 32L48 32C21.5 32 0 53.5 0 80L0 400c0 26.5 21.5 48 48 48l144 0 0-272c0-44.2 35.8-80 80-80l48 0 0-16c0-26.5-21.5-48-48-48l-56.6 0C204.4 12.9 183.7 0 160 0zM272 128c-26.5 0-48 21.5-48 48l0 272 0 16c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-220.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L320 128l-48 0zM160 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8l0-174.2C133.2 81.9 64 160.9 64 256c0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5L288 323.5l0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1c0-95.1-69.2-174.1-160-189.3l0 174.2L422.8 351.1zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaPenClip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.3 19.3l39.4 39.4c25 25 25 65.5 0 90.5l-52.1 52.1s0 0 0 0l-1-1s0 0 0 0l-16-16-96-96-17-17 52.1-52.1c25-25 65.5-25 90.5 0zM241 114.9c-9.4-9.4-24.6-9.4-33.9 0L105 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L173.1 81c28.1-28.1 73.7-28.1 101.8 0L288 94.1l17 17 96 96 16 16 1 1-17 17L229.5 412.5c-48 48-109.2 80.8-175.8 94.1l-25 5c-7.9 1.6-16-.9-21.7-6.6s-8.1-13.8-6.6-21.7l5-25c13.3-66.6 46.1-127.8 94.1-175.8L254.1 128 241 114.9z\"},\"child\":[]}]})(props);\n};\nexport function FaPenFancy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPenNib (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPenRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M469.3 19.3l23.4 23.4c25 25 25 65.5 0 90.5l-56.4 56.4L322.3 75.7l56.4-56.4c25-25 65.5-25 90.5 0zM44.9 353.2L299.7 98.3 413.7 212.3 158.8 467.1c-6.7 6.7-15.1 11.6-24.2 14.2l-104 29.7c-8.4 2.4-17.4 .1-23.6-6.1s-8.5-15.2-6.1-23.6l29.7-104c2.6-9.2 7.5-17.5 14.2-24.2zM249.4 103.4L103.4 249.4 16 161.9c-18.7-18.7-18.7-49.1 0-67.9L94.1 16c18.7-18.7 49.1-18.7 67.9 0l19.8 19.8c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1l45.1 45.1zM408.6 262.6l45.1 45.1c-.3 .3-.7 .6-1 .9l-64 64c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l64-64c.3-.3 .6-.7 .9-1L496 350.1c18.7 18.7 18.7 49.1 0 67.9L417.9 496c-18.7 18.7-49.1 18.7-67.9 0l-87.4-87.4L408.6 262.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPenToSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"},\"child\":[]}]})(props);\n};\nexport function FaPen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPencil (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M410.3 231l11.3-11.3-33.9-33.9-62.1-62.1L291.7 89.8l-11.3 11.3-22.6 22.6L58.6 322.9c-10.4 10.4-18 23.3-22.2 37.4L1 480.7c-2.5 8.4-.2 17.5 6.1 23.7s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L387.7 253.7 410.3 231zM160 399.4l-9.1 22.7c-4 3.1-8.5 5.4-13.3 6.9L59.4 452l23-78.1c1.4-4.9 3.8-9.4 6.9-13.3l22.7-9.1 0 32c0 8.8 7.2 16 16 16l32 0zM362.7 18.7L348.3 33.2 325.7 55.8 314.3 67.1l33.9 33.9 62.1 62.1 33.9 33.9 11.3-11.3 22.6-22.6 14.5-14.5c25-25 25-65.5 0-90.5L453.3 18.7c-25-25-65.5-25-90.5 0zm-47.4 168l-144 144c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l144-144c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleArrows (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64a64 64 0 1 1 128 0A64 64 0 1 1 64 64zM25.9 233.4C29.3 191.9 64 160 105.6 160l44.8 0c27 0 51 13.4 65.5 34.1c-2.7 1.9-5.2 4-7.5 6.3l-64 64c-21.9 21.9-21.9 57.3 0 79.2L192 391.2l0 72.8c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-115.7c-26.5-9.5-44.7-35.8-42.2-65.6l4.1-49.3zM448 64a64 64 0 1 1 128 0A64 64 0 1 1 448 64zM431.6 200.4c-2.3-2.3-4.9-4.4-7.5-6.3c14.5-20.7 38.6-34.1 65.5-34.1l44.8 0c41.6 0 76.3 31.9 79.7 73.4l4.1 49.3c2.5 29.8-15.7 56.1-42.2 65.6L576 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-72.8 47.6-47.6c21.9-21.9 21.9-57.3 0-79.2l-64-64zM272 240l0 32 96 0 0-32c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l64 64c9.4 9.4 9.4 24.6 0 33.9l-64 64c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-32-96 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleCarryBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm64 193.7l0 65.1 51 51c7.1 7.1 11.8 16.2 13.4 26.1l15.2 90.9c2.9 17.4-8.9 33.9-26.3 36.8s-33.9-8.9-36.8-26.3l-14.3-85.9L66.8 320C54.8 308 48 291.7 48 274.7l0-88.1c0-32.4 26.2-58.6 58.6-58.6c24.1 0 46.5 12 59.9 32l47.4 71.1 10.1 5 0-76.2c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 76.2 10.1-5L473.5 160c13.3-20 35.8-32 59.9-32c32.4 0 58.6 26.2 58.6 58.6l0 88.1c0 17-6.7 33.3-18.7 45.3l-79.4 79.4-14.3 85.9c-2.9 17.4-19.4 29.2-36.8 26.3s-29.2-19.4-26.3-36.8l15.2-90.9c1.6-9.9 6.3-19 13.4-26.1l51-51 0-65.1-19 28.5c-4.6 7-11 12.6-18.5 16.3l-59.6 29.8c-2.4 1.3-4.9 2.2-7.6 2.8c-2.6 .6-5.3 .9-7.9 .8l-126.7 0c-2.5 .1-5-.2-7.5-.7c-2.9-.6-5.6-1.6-8.1-3l-59.5-29.8c-7.5-3.7-13.8-9.4-18.5-16.3l-19-28.5zM2.3 468.1L50.1 348.6l49.2 49.2-37.6 94c-6.6 16.4-25.2 24.4-41.6 17.8S-4.3 484.5 2.3 468.1zM512 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm77.9 348.6l47.8 119.5c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8l-37.6-94 49.2-49.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72 88a56 56 0 1 1 112 0A56 56 0 1 1 72 88zM64 245.7C54 256.9 48 271.8 48 288s6 31.1 16 42.3l0-84.7zm144.4-49.3C178.7 222.7 160 261.2 160 304c0 34.3 12 65.8 32 90.5l0 21.5c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-26.8C26.2 371.2 0 332.7 0 288c0-61.9 50.1-112 112-112l32 0c24 0 46.2 7.5 64.4 20.3zM448 416l0-21.5c20-24.7 32-56.2 32-90.5c0-42.8-18.7-81.3-48.4-107.7C449.8 183.5 472 176 496 176l32 0c61.9 0 112 50.1 112 112c0 44.7-26.2 83.2-64 101.2l0 26.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32zm8-328a56 56 0 1 1 112 0A56 56 0 1 1 456 88zM576 245.7l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM320 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM240 304c0 16.2 6 31 16 42.3l0-84.7c-10 11.3-16 26.1-16 42.3zm144-42.3l0 84.7c10-11.3 16-26.1 16-42.3s-6-31.1-16-42.3zM448 304c0 44.7-26.2 83.2-64 101.2l0 42.8c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-42.8c-37.8-18-64-56.5-64-101.2c0-61.9 50.1-112 112-112l32 0c61.9 0 112 50.1 112 112z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 72a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM144 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM496 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM200 313.5l26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-36.3-67.5c1.7-1.7 3.2-3.6 4.3-5.8L264 217.5l0 54.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-54.5 26.9 49.9c1.2 2.2 2.6 4.1 4.3 5.8l-36.3 67.5c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L440 313.5l0 38.5c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-16.3 0-31.9 4.5-45.4 12.6l-33.6-62.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-33.6 62.3c-13.5-8.1-29.1-12.6-45.4-12.6l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3L18.9 340.6c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L88 313.5 88 352c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-38.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPeoplePulling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32c9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8L123.1 352l15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7c8.6 3.6 18 3.1 25.9-.7c3.4-1.6 6.6-3.9 9.3-6.7c3.1-3.2 5.5-7 7.1-11.4c.1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L537 232.7l-15.3-36.8C504.5 154.8 464.3 128 419.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleRobbery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96A48 48 0 1 0 80 0a48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6L8 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleRoof (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M335.5 4l288 160c15.4 8.6 21 28.1 12.4 43.5s-28.1 21-43.5 12.4L320 68.6 47.5 220c-15.4 8.6-34.9 3-43.5-12.4s-3-34.9 12.4-43.5L304.5 4c9.7-5.4 21.4-5.4 31.1 0zM320 160a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM144 256a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm312 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM226.9 491.4L200 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5L61.1 491.4c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l37.9-70.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c16.3 0 31.9 4.5 45.4 12.6l33.6-62.3c15.3-28.5 45.1-46.3 77.5-46.3l19.5 0c32.4 0 62.1 17.8 77.5 46.3l33.6 62.3c13.5-8.1 29.1-12.6 45.4-12.6l19.5 0c32.4 0 62.1 17.8 77.5 46.3l37.9 70.3c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8L552 441.5l0 38.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-38.5-26.9 49.9c-6.3 11.7-20.8 16-32.5 9.8s-16-20.8-9.8-32.5l36.3-67.5c-1.7-1.7-3.2-3.6-4.3-5.8L376 345.5l0 54.5c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-54.5-26.9 49.9c-1.2 2.2-2.6 4.1-4.3 5.8l36.3 67.5c6.3 11.7 1.9 26.2-9.8 32.5s-26.2 1.9-32.5-9.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPepperHot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428.3 3c11.6-6.4 26.2-2.3 32.6 9.3l4.8 8.7c19.3 34.7 19.8 75.7 3.4 110C495.8 159.6 512 197.9 512 240c0 18.5-3.1 36.3-8.9 52.8c-6.1 17.3-28.5 16.3-36.8-.1l-11.7-23.4c-4.1-8.1-12.4-13.3-21.5-13.3L360 256c-13.3 0-24-10.7-24-24l0-80c0-13.3-10.7-24-24-24l-17.1 0c-21.3 0-30-23.9-10.8-32.9C304.7 85.4 327.7 80 352 80c28.3 0 54.8 7.3 77.8 20.2c5.5-18.2 3.7-38.4-6-55.8L419 35.7c-6.4-11.6-2.3-26.2 9.3-32.6zM171.2 345.5L264 160l40 0 0 80c0 26.5 21.5 48 48 48l76.2 0 23.9 47.8C372.3 443.9 244.3 512 103.2 512l-58.8 0C19.9 512 0 492.1 0 467.6c0-20.8 14.5-38.8 34.8-43.3l49.8-11.1c37.6-8.4 69.5-33.2 86.7-67.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M374.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-320 320c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l320-320zM128 128A64 64 0 1 0 0 128a64 64 0 1 0 128 0zM384 384a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonArrowDownToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM464 64l0 242.7-25.4-25.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l80 80c12.5 12.5 32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L528 306.7 528 64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonArrowUpFromLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 352l0-96 16 0 0 96-16 0zm-64 0l-88 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l120 0 80 0 376 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-344 0 0-191.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 448zM598.6 121.4l-80-80c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L464 141.3 464 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L288 305.1 288 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L295 232.9l60.3-48.5L396 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM56 384a72 72 0 1 1 144 0A72 72 0 1 1 56 384zm200 0A128 128 0 1 0 0 384a128 128 0 1 0 256 0zm184 0a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zm200 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160 64 0 0-160zm320 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448zM224 512c17.7 0 32-14.3 32-32l0-160-64 0 0 160c0 17.7 14.3 32 32 32zM320 0c-9.3 0-18.1 4-24.2 11s-8.8 16.3-7.5 25.5l31.2 218.6L288.6 409.7c-3.5 17.3 7.8 34.2 25.1 37.7s34.2-7.8 37.7-25.1l.7-3.6c1.3 16.4 15.1 29.4 31.9 29.4c17.7 0 32-14.3 32-32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32L320 0zM112 80A48 48 0 1 0 16 80a48 48 0 1 0 96 0zm0 261.3l0-72.1 4.7 4.7c9 9 21.2 14.1 33.9 14.1l73.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-66.7 0-41.6-41.6c-14.3-14.3-33.8-22.4-54-22.4C27.6 160 0 187.6 0 221.6l0 55.7 0 .9L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 42.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-58.7c0-10.4-3.4-20.5-9.6-28.8L112 341.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBreastfeeding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0a80 80 0 1 1 0 160A80 80 0 1 1 224 0zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5c-17.6-14.1-22.7-38.1-13.5-57.7l-.8-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7c-4.9-2.8-9.2-6.4-12.6-10.6c-4.6-5.4-7.8-11.7-9.6-18.4c-3.3-12-1.9-25.2 4.8-36.6c.6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4c2.9 6.7 4.3 13.8 4 20.8c-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-223.1 28.6 47.5c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-58.3-97c-17.4-28.9-48.6-46.6-82.3-46.6l-29.7 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L408 256.9 408 480c0 17.7 14.3 32 32 32s32-14.3 32-32zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.3-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm-8 187.3l47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7zM352 376c0-4.4 3.6-8 8-8s8 3.6 8 8l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonChalkboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 384l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 56 0 64 0 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-64 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 80-76.9 0-65.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9L120 256.9 120 480c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L416 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zm136 16a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM368 321.6l0 6.4c0 8.8 7.2 16 16 16s16-7.2 16-16l0-6.4c0-5.3 4.3-9.6 9.6-9.6l40.5 0c7.7 0 13.9 6.2 13.9 13.9c0 5.2-2.9 9.9-7.4 12.3l-32 16.8c-5.3 2.8-8.6 8.2-8.6 14.2l0 14.8c0 8.8 7.2 16 16 16s16-7.2 16-16l0-5.1 23.5-12.3c15.1-7.9 24.5-23.6 24.5-40.6c0-25.4-20.6-45.9-45.9-45.9l-40.5 0c-23 0-41.6 18.6-41.6 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l44.9 74.7c-16.1 17.6-28.6 38.5-36.6 61.5c-1.9-1.8-3.5-3.9-4.9-6.3L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM432 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L432 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L409.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L432 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L454.6 368l36.7-36.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDigging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM9.8 214.8c5.1-12.2 19.1-18 31.4-12.9L60.7 210l22.9-38.1C99.9 144.6 129.3 128 161 128c51.4 0 97 32.9 113.3 81.7l34.6 103.7 79.3 33.1 34.2-45.6c6.4-8.5 16.6-13.3 27.2-12.8s20.3 6.4 25.8 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2s-16.3 16.2-27.8 16.2l-256 0c-11.1 0-21.4-5.7-27.2-15.2s-6.4-21.2-1.4-31.1l16-32c5.4-10.8 16.5-17.7 28.6-17.7l32 0 22.5-30L22.8 246.2c-12.2-5.1-18-19.1-12.9-31.4zm82.8 91.8l112 48c11.8 5 19.4 16.6 19.4 29.4l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-74.9-60.6-26-37 111c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.6 469.9l48-144 11-33 32 13.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDotsFromLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176A88 88 0 1 0 288 0a88 88 0 1 0 0 176zM78.7 372.9c15-12.5 50-34.4 97.3-50.1L176 432l224 0 0-109.3c47.3 15.8 82.3 37.7 97.3 50.1c20.4 17 50.6 14.2 67.6-6.1s14.2-50.6-6.1-67.6c-12-10-30.1-22.5-53.2-35C497.2 278.4 481.7 288 464 288c-26.5 0-48-21.5-48-48c0-4.3 .6-8.4 1.6-12.4C379.1 215.9 335.3 208 288 208c-60.2 0-114.9 12.9-160 29.9c0 .7 0 1.4 0 2.1c0 26.5-21.5 48-48 48c-11.8 0-22.7-4.3-31-11.4c-13.1 8.1-23.7 15.9-31.7 22.5c-20.4 17-23.1 47.2-6.1 67.6s47.2 23.1 67.6 6.1zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l528 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464zM224 280a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM96 240a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm368 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDressBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM390.2 384l17.8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 16 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 17.8 0c10.9 0 18.6-10.7 15.2-21.1L546.7 248.1l33.9 56.3c9.1 15.1 28.8 20 43.9 10.9s20-28.8 10.9-43.9l-53.6-89.2c-20.2-33.7-56.7-54.3-96-54.3l-11.6 0c-39.3 0-75.7 20.6-96 54.3l-53.6 89.2c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9l33.9-56.3L375 362.9c-3.5 10.4 4.3 21.1 15.2 21.1zM190.9 18.1C188.4 12 182.6 8 176 8s-12.4 4-14.9 10.1l-29.4 74L55.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1L10.9 206.4c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2L90.6 327c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L176 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 50.5-7.8 24.4-40.5-55.2-38L315 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L220.3 92.1l-29.4-74z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM88 384l-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2c20.3-33.7 56.7-54.3 96-54.3l11.6 0c39.3 0 75.7 20.6 96 54.3l53.6 89.2c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9l-33.9-56.3L265 362.9c3.5 10.4-4.3 21.1-15.2 21.1L232 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonDrowning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32.2c0 54.1 23.5 104 62.2 138.3l-21 146.7c7.8 2.1 15.5 3.3 22.8 3.3c21.1 0 42-8.5 59.2-20.3c22.1-15.5 51.6-15.5 73.7 0c12.4 8.5 26.1 14.8 39.7 18l17.7-97.6c10.7-1.2 21.3-3.1 31.9-5.5l105-23.9c17.2-3.9 28-21.1 24.1-38.3s-21.1-28-38.3-24.1L400 216.6c-41 9.3-83.7 7.5-123.7-5.2c-50.2-16-84.3-62.6-84.3-115.3L192 64zM320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM306.5 389.9c-11.1-7.9-25.9-7.9-37 0C247 405.4 219.5 416 192 416c-26.9 0-55.3-10.8-77.4-26.1c0 0 0 0 0 0c-11.9-8.5-28.1-7.8-39.2 1.7c-14.4 11.9-32.5 21-50.6 25.2c-17.2 4-27.9 21.2-23.9 38.4s21.2 27.9 38.4 23.9c24.5-5.7 44.9-16.5 58.2-25C126.5 469.7 159 480 192 480c31.9 0 60.6-9.9 80.4-18.9c5.8-2.7 11.1-5.3 15.6-7.7c4.5 2.4 9.7 5.1 15.6 7.7c19.8 9 48.5 18.9 80.4 18.9c33 0 65.5-10.3 94.5-25.8c13.4 8.4 33.7 19.3 58.2 25c17.2 4 34.4-6.7 38.4-23.9s-6.7-34.4-23.9-38.4c-18.1-4.2-36.2-13.3-50.6-25.2c-11.1-9.4-27.3-10.1-39.2-1.7c0 0 0 0 0 0C439.4 405.2 410.9 416 384 416c-27.5 0-55-10.6-77.5-26.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonFallingBurst (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 9.8c0 39-23.7 74-59.9 88.4C71.6 154.5 32 213 32 278.2L32 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-73.8c0-10 1.6-19.8 4.5-29L261.1 497.4c9.6 14.8 29.4 19.1 44.3 9.5s19.1-29.4 9.5-44.3L222.6 320l1.4 0 80 0 38.4 51.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C341.3 263.1 327.1 256 312 256l-71.5 0-56.8-80.2-.2-.3c44.7-29 72.5-79 72.5-133.6l0-9.8zM96 80A48 48 0 1 0 0 80a48 48 0 1 0 96 0zM464 286.1l58.6 53.9c4.8 4.4 11.9 5.5 17.8 2.6s9.5-9 9-15.5l-5.6-79.4 78.7-12.2c6.5-1 11.7-5.9 13.1-12.2s-1.1-13-6.5-16.7l-65.6-45.1L603 92.2c3.3-5.7 2.7-12.8-1.4-17.9s-10.9-7.2-17.2-5.3L508.3 92.1l-29.4-74C476.4 12 470.6 8 464 8s-12.4 4-14.9 10.1l-29.4 74L343.6 68.9c-6.3-1.9-13.1 .2-17.2 5.3s-4.6 12.2-1.4 17.9l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7c.1 .3 .1 .6 .2 .8l19.4 0c20.1 0 39.2 7.5 53.8 20.8l18.4 2.9L383 265.3l36.2 48.3c2.1 2.8 3.9 5.7 5.5 8.6L464 286.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonFalling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c17.7 0 32 14.3 32 32l0 9.8c0 54.6-27.9 104.6-72.5 133.6l.2 .3L304.5 256l87.5 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L384 320l-96 0-1.4 0 92.3 142.6c9.6 14.8 5.4 34.6-9.5 44.3s-34.6 5.4-44.3-9.5L164.5 249.2c-2.9 9.2-4.5 19-4.5 29l0 73.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-73.8c0-65.1 39.6-123.7 100.1-147.9C232.3 115.8 256 80.8 256 41.8l0-9.8c0-17.7 14.3-32 32-32zM112 32a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonHalfDress (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm8 352l0-224 6.9 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128s0 0 0 0zM58.2 182.3c19.9-33.1 55.3-53.5 93.8-54.3l0 256s0 0 0 0l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L93.3 248.1 59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l53.6-89.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonHarassing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L408.8 438l54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3c36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonHiking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm51.3 182.7L224.2 307l49.7 49.7c9 9 14.1 21.2 14.1 33.9l0 89.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-73.9-73.9c-15.8-15.8-22.2-38.6-16.9-60.3l20.4-84c8.3-34.1 42.7-54.9 76.7-46.4c19 4.8 35.6 16.4 46.4 32.7L305.1 208l30.9 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 55.8c0 .1 0 .2 0 .2s0 .2 0 .2L384 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-216-39.4 0c-16 0-31-8-39.9-21.4l-13.3-20zM81.1 471.9L117.3 334c3 4.2 6.4 8.2 10.1 11.9l41.9 41.9L142.9 488.1c-4.5 17.1-22 27.3-39.1 22.8s-27.3-22-22.8-39.1zm55.5-346L101.4 266.5c-3 12.1-14.9 19.9-27.2 17.9l-47.9-8c-14-2.3-22.9-16.3-19.2-30L31.9 155c9.5-34.8 41.1-59 77.2-59l4.2 0c15.6 0 27.1 14.7 23.3 29.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonMilitaryPointing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.9 14.1C234 15.2 224 26 224 39c0 13.8 11.2 25 25 25l151 0c8.8 0 16-7.2 16-16l0-30.6C416 8 408 .7 398.7 1.4L246.9 14.1zM240 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L241.6 96c-1 5.2-1.6 10.5-1.6 16zM72 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4L386.8 230.5c-13.3-4.3-27.3-6.5-41.6-6.5L240 224 72 224zm345.7 20.9L246.6 416 416 416l0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L462.3 290.8c-11.2-18.9-26.6-34.5-44.6-45.9zM224 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonMilitaryRifle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 39c0-13 10-23.8 22.9-24.9L334.7 1.4C344 .7 352 8 352 17.4L352 48c0 8.8-7.2 16-16 16L185 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L352 369.7 352 480c0 1.3-.1 2.5-.2 3.8L177.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L421.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l13.9 8 13.9 8c7.7 4.4 10.3 14.2 5.9 21.9L416 173.9l1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L392.6 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM320 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8l76.1-128.8c9.4-15.8 21.7-29.3 36-40L331.1 510c-3.5 1.3-7.2 2-11.1 2zM296 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonMilitaryToPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71 12.5c-8.6 1-15 8.2-15 16.8c0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0C64.9 83.8 64 89.8 64 96c0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 2.9 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9s14.1-12.4 14.1-21.9l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonPraying (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 64A64 64 0 1 0 224 64a64 64 0 1 0 128 0zM232.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36C253.6 156.7 228.6 144 202 144c-30.9 0-59.2 17.1-73.6 44.4L79.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L158.6 432 72 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7L187.7 354l45-90z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonPregnant (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM120 383c-13.8-3.6-24-16.1-24-31l0-55.1-4.6 7.6c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c15-24.9 40.3-41.5 68.7-45.6c4.1-.6 8.2-1 12.5-1l1.1 0 12.5 0 2.4 0c1.4 0 2.8 .1 4.1 .3c35.7 2.9 65.4 29.3 72.1 65l6.1 32.5c44.3 8.6 77.7 47.5 77.7 94.3l0 32c0 17.7-14.3 32-32 32l-16 0-40 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-8 0-8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-97z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonRays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1-28.6 47.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L328 256.9 328 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM7 7C16.4-2.3 31.6-2.3 41 7l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 41C-2.3 31.6-2.3 16.4 7 7zM471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L471 7zM7 505c-9.4-9.4-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 505c-9.4 9.4-24.6 9.4-33.9 0zm464 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonRifle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M265.2 192c25.4 0 49.8 7.1 70.8 19.9L336 512l-192 0 0-174.3L90.4 428.3c-11.2 19-35.8 25.3-54.8 14.1s-25.3-35.8-14.1-54.8L97.7 258.8c24.5-41.4 69-66.8 117.1-66.8l50.4 0zM160 80a80 80 0 1 1 160 0A80 80 0 1 1 160 80zM448 0c8.8 0 16 7.2 16 16l0 116.3c9.6 5.5 16 15.9 16 27.7l0 109.3 16-5.3 0-56c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 84.5c0 6.9-4.4 13-10.9 15.2L480 325.3l0 26.7 48 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-44 0 23 92.1c2.5 10.1-5.1 19.9-15.5 19.9L432 512c-8.8 0-16-7.2-16-16l0-96-16 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32l0-32c0-11.8 6.4-22.2 16-27.7L416 32c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0 16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonRunning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM125.7 175.5c9.9-9.9 23.4-15.5 37.5-15.5c1.9 0 3.8 .1 5.6 .3L137.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-25.4 88.8c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l28.7-100.4c5.9-20.6-2.6-42.6-20.7-53.9L238 299l30.9-82.4 5.1 12.3C289 264.7 323.9 288 362.7 288l21.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3L57.4 153.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l23.1-23.1zM91.2 352L32 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l69.6 0c19 0 36.2-11.2 43.9-28.5L157 361.6l-9.5-6c-17.5-10.9-30.5-26.8-37.9-44.9L91.2 352z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonShelter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-301.4L256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 280l0-88 16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-37.9-70.3c-15.3-28.5-45.1-46.3-77.5-46.3l-19.5 0c-32.4 0-62.1 17.8-77.5 46.3l-37.9 70.3c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSkating (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM128 128c0-17.7 14.3-32 32-32l159.4 0c43.6 0 64.6 53.4 32.8 83.1l-74.4 69.4 60.2 60.2c9 9 14.1 21.2 14.1 33.9l0 73.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7-77.9-77.8c-26.6-26.6-24.6-70.3 4.3-94.4l20.4-17L160 160c-17.7 0-32-14.3-32-32zM81.4 353.4l86.9-86.9c4.6 10 11 19.3 19.3 27.5l21.8 21.8-82.7 82.7c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm322.5 95.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L272 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM135.2 478.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L4.7 411.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSkiingNordic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM227.2 160c1.9 0 3.8 .1 5.6 .3L201.6 254c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9L291.3 464l-88.5 0 41.1-88.1-32.4-20.3c-7.8-4.9-14.7-10.7-20.6-17.3L132.2 464l-32.4 0 54.2-257.6c4.6-1.5 9-4.1 12.7-7.8l23.1-23.1c9.9-9.9 23.4-15.5 37.5-15.5zM121.4 198.6c.4 .4 .8 .8 1.3 1.2L67 464l-43 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l135.3 0c.5 0 .9 0 1.4 0l158.6 0c.5 0 1 0 1.4 0L504 512c39.8 0 72-32.2 72-72l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 13.3-10.7 24-24 24l-69.4 0 27.6-179.3c10.5-5.2 17.8-16.1 17.8-28.7c0-17.7-14.3-32-32-32l-21.3 0c-12.9 0-24.6-7.8-29.5-19.7l-6.3-15c-14.6-35.1-44.1-61.9-80.5-73.1l-48.7-15c-11.1-3.4-22.7-5.2-34.4-5.2c-31 0-60.8 12.3-82.7 34.3l-23.1 23.1c-12.5 12.5-12.5 32.8 0 45.3zm308 89.4L402.3 464l-44.4 0 21.6-75.6c5.9-20.6-2.6-42.6-20.7-53.9L302 299l30.9-82.4 5.1 12.3C353 264.7 387.9 288 426.7 288l2.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSkiing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.7 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM2.7 268.9c6.1-11.8 20.6-16.3 32.4-10.2L232.7 361.3l46.2-69.2-75.1-75.1c-14.6-14.6-20.4-33.9-18.4-52.1l108.8 52 39.3 39.3c16.2 16.2 18.7 41.5 6 60.6L289.8 391l128.7 66.8c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 301.3C1.2 295.2-3.4 280.7 2.7 268.9zM118.9 65.6L137 74.2l8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 16.9 54.7 26.2c1.5-.7 3.1-1.4 4.7-2.1l83.4-33.4c34.2-13.7 72.8 4.2 84.5 39.2l17.1 51.2 52.1 26.1c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3l-58.1-29c-11.4-5.7-20-15.7-24.1-27.8l-5.8-17.3-27.3 12.1-6.8 3-6.7-3.2L151.5 116.7l-9.2 18.4c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-18-17.6-8.4c-8-3.8-11.3-13.4-7.5-21.3s13.4-11.3 21.3-7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSnowboarding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.7 3.4c15.8-7.9 35-1.5 42.9 14.3l25 50 42.4 8.5c19.5 3.9 37.8 12.3 53.5 24.5l126.1 98.1c14 10.9 16.5 31 5.6 44.9s-31 16.5-44.9 5.6l-72.1-56.1-71.5 31.8 33.1 27.6c23.2 19.3 33.5 50 26.7 79.4l-17.4 75.2c-2.2 9.4-8.2 16.8-16.1 21l86.5 33.1c4.6 1.8 9.4 2.6 14.3 2.6l28.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-28.2 0c-10.8 0-21.4-2-31.5-5.8L60.1 371.3c-11.5-4.4-22-11.2-30.8-20L7 329c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.4 22.4c4 4 8.7 7.1 14 9.1l22.4 8.6c-.8-1.6-1.5-3.2-2.1-4.9c-5.6-16.8 3.5-34.9 20.2-40.5L192 264.9l0-53.2c0-24.2 13.7-46.4 35.4-57.2l45.2-22.6-7.5-1.5c-19.4-3.9-35.9-16.5-44.7-34.1l-25-50c-7.9-15.8-1.5-35 14.3-42.9zM139 350.1l159 60.9c-2.1-5.6-2.6-11.9-1.1-18.2l17.4-75.2c1.4-5.9-.7-12-5.3-15.9l-52.8-44 0 18.8c0 20.7-13.2 39-32.8 45.5L139 350.1zM432 0a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonSwimming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.5 178.4L447.9 297.1c-1.6 .9-3.2 2-4.8 3c-18 12.4-40.1 20.3-59.2 20.3c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-10.1 0-21.1-2.2-31.9-6.2C163.1 193.2 262.2 96 384 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-26.9 0-52.3 6.6-74.5 18.4zM160 160A64 64 0 1 1 32 160a64 64 0 1 1 128 0zM306.5 325.9C329 341.4 356.5 352 384 352c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 405.7 417 416 384 416c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 341.2 165.1 352 192 352c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonThroughWindow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4C167.6 186.5 128 245 128 310.2l0 73.8s0 0 0 0l-64 0L64 64zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4c44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-45.8 0 42.7 64L592 448c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4L310.5 336l74.6 0 40 48zm-159.5 0L192 384s0 0 0 0l0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingArrowLoopLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zm347.7 119c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L461.3 384l18.7 0c88.4 0 160-71.6 160-160s-71.6-160-160-160L352 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c53 0 96 43 96 96s-43 96-96 96l-18.7 0 25.4-25.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3l80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingDashedLineArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM123.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L281 232.7l-15.3-36.8C248.5 154.8 208.3 128 163.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1L68.7 398 9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L116.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM550.6 153.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L530.7 224 384 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l146.7 0-25.4 25.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l80-80c12.5-12.5 12.5-32.8 0-45.3l-80-80zM392 0c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16zM392 320c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-13.3-10.7-24-24-24zm24 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingLuggage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM347.7 200.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9L505 232.7l-15.3-36.8C472.5 154.8 432.3 128 387.7 128c-22.8 0-45.3 4.8-66.1 14l-8 3.5c-32.9 14.6-58.1 42.4-69.4 76.5l-2.6 7.8c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l2.6-7.8c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5zm-30 135.1l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L340.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6zM256 274.1c-7.7-4.4-17.4-1.8-21.9 5.9l-32 55.4L147.7 304c-15.3-8.8-34.9-3.6-43.7 11.7L40 426.6c-8.8 15.3-3.6 34.9 11.7 43.7l55.4 32c15.3 8.8 34.9 3.6 43.7-11.7l64-110.9c1.5-2.6 2.6-5.2 3.3-8L261.9 296c4.4-7.7 1.8-17.4-5.9-21.9z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalkingWithCane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8.4 32c-36.4 0-69.6 20.5-85.9 53.1L35.4 273.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3L128 231.6l0 43.2c0 17 6.7 33.3 18.7 45.3L224 397.3l0 82.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-89.4c0-12.7-5.1-24.9-14.1-33.9L224 306.7l0-93.4 70.4 93.9c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8L268.8 166.4C250.7 142.2 222.2 128 192 128l-24.4 0zM128.3 346.8L97 472.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l22-88.2-52.8-52.8zM450.8 505.1c5 7.3 15 9.1 22.3 4s9.1-15 4-22.3L358.9 316.1c-2.8 3.8-6.1 7.3-10.1 10.3c-5 3.8-10.5 6.4-16.2 7.9L450.8 505.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonWalking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM126.5 199.3c-1 .4-1.9 .8-2.9 1.2l-8 3.5c-16.4 7.3-29 21.2-34.7 38.2l-2.6 7.8c-5.6 16.8-23.7 25.8-40.5 20.2s-25.8-23.7-20.2-40.5l2.6-7.8c11.4-34.1 36.6-61.9 69.4-76.5l8-3.5c20.8-9.2 43.3-14 66.1-14c44.6 0 84.8 26.8 101.9 67.9L281 232.7l21.4 10.7c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L247 287.3c-10.3-5.2-18.4-13.8-22.8-24.5l-9.6-23-19.3 65.5 49.5 54c5.4 5.9 9.2 13 11.2 20.8l23 92.1c4.3 17.1-6.1 34.5-23.3 38.8s-34.5-6.1-38.8-23.3l-22-88.1-70.7-77.1c-14.8-16.1-20.3-38.6-14.7-59.7l16.9-63.5zM68.7 398l25-62.4c2.1 3 4.5 5.8 7 8.6l40.7 44.4-14.5 36.2c-2.4 6-6 11.5-10.6 16.1L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L68.7 398z\"},\"child\":[]}]})(props);\n};\nexport function FaPerson (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-223.1L59.4 304.5c-9.1 15.1-28.8 20-43.9 10.9s-20-28.8-10.9-43.9l58.3-97c17.4-28.9 48.6-46.6 82.3-46.6l29.7 0c33.7 0 64.9 17.7 82.3 46.6l58.3 97c9.1 15.1 4.2 34.8-10.9 43.9s-34.8 4.2-43.9-10.9L232 256.9 232 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPesetaSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64l0 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 96 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c77.4 0 142-55 156.8-128l3.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-3.2 0C334 87 269.4 32 192 32L64 32zM282.5 160L96 160l0-64 96 0c41.8 0 77.4 26.7 90.5 64zM96 224l186.5 0c-13.2 37.3-48.7 64-90.5 64l-96 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPesoSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C46.3 32 32 46.3 32 64l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c68.4 0 127.7-39 156.8-96l19.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.7 0c.5-5.3 .7-10.6 .7-16s-.2-10.7-.7-16l.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.2 0C303.7 71 244.4 32 176 32L64 32zm190.4 96L96 128l0-32 80 0c30.5 0 58.2 12.2 78.4 32zM96 192l190.9 0c.7 5.2 1.1 10.6 1.1 16s-.4 10.8-1.1 16L96 224l0-32zm158.4 96c-20.2 19.8-47.9 32-78.4 32l-80 0 0-32 158.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M228.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C76.1 30.2 64 46 64 64c0 107.4 37.8 206 100.8 283.1L9.2 469.1c-10.4 8.2-12.3 23.3-4.1 33.7s23.3 12.3 33.7 4.1l592-464c10.4-8.2 12.3-23.3 4.1-33.7s-23.3-12.3-33.7-4.1L253 278c-17.8-21.5-32.9-45.2-45-70.7L257.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96zm96.8 319l-91.3 72C310.7 476 407.1 512 512 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L368.7 368c-15-7.1-29.3-15.2-43-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 0C408.1 0 512 103.9 512 232c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm-32-72c0-13.3 10.7-24 24-24c75.1 0 136 60.9 136 136c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88c-13.3 0-24-10.7-24-24zM117.5 1.4c19.4-5.3 39.7 4.6 47.4 23.2l40 96c6.8 16.3 2.1 35.2-11.6 46.3L144 207.3c33.3 70.4 90.3 127.4 160.7 160.7L345 318.7c11.2-13.7 30-18.4 46.3-11.6l96 40c18.6 7.7 28.5 28 23.2 47.4l-24 88C481.8 499.9 466 512 448 512C200.6 512 0 311.4 0 64C0 46 12.1 30.2 29.5 25.4l88-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z\"},\"child\":[]}]})(props);\n};\nexport function FaPhotoFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224c0-35.3 28.7-64 64-64zM476 106.7C471.5 100 464 96 456 96s-15.5 4-20 10.7l-56 84L362.7 169c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l80 0 48 0 144 0c8.9 0 17-4.9 21.2-12.7s3.7-17.3-1.2-24.6l-96-144zM336 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM64 128l96 0 0 256 0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32 160 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zm8 64c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm0 104c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0zm336 16l0 16c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPiggyBank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96l0 .7c-5.3-.4-10.6-.7-16-.7L256 96c-16.5 0-32.5 2.1-47.8 6c-.1-2-.2-4-.2-6c0-53 43-96 96-96s96 43 96 96zm-16 32c3.5 0 7 .1 10.4 .3c4.2 .3 8.4 .7 12.6 1.3C424.6 109.1 450.8 96 480 96l11.5 0c10.4 0 18 9.8 15.5 19.9l-13.8 55.2c15.8 14.8 28.7 32.8 37.5 52.9l13.3 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-32 0c-9.1 12.1-19.9 22.9-32 32l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c-34.9-26.2-58.7-66.3-63.2-112L68 304c-37.6 0-68-30.4-68-68s30.4-68 68-68l4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-4 0c-11 0-20 9-20 20s9 20 20 20l31.2 0c12.1-59.8 57.7-107.5 116.3-122.8c12.9-3.4 26.5-5.2 40.5-5.2l128 0zm64 136a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPills (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 96c-26.5 0-48 21.5-48 48l0 112 96 0 0-112c0-26.5-21.5-48-48-48zM0 144C0 82.1 50.1 32 112 32s112 50.1 112 112l0 224c0 61.9-50.1 112-112 112S0 429.9 0 368L0 144zM554.9 399.4c-7.1 12.3-23.7 13.1-33.8 3.1L333.5 214.9c-10-10-9.3-26.7 3.1-33.8C360 167.7 387.1 160 416 160c88.4 0 160 71.6 160 160c0 28.9-7.7 56-21.1 79.4zm-59.5 59.5C472 472.3 444.9 480 416 480c-88.4 0-160-71.6-160-160c0-28.9 7.7-56 21.1-79.4c7.1-12.3 23.7-13.1 33.8-3.1L498.5 425.1c10 10 9.3 26.7-3.1 33.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPizzaSlice (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L110.4 80c.5 0 1.1 0 1.6 0c176.7 0 320 143.3 320 320c0 .5 0 1.1 0 1.6l44.4-11.8c20.8-5.5 36.3-24.7 34.7-47.5C498.5 159.5 352.5 13.5 169.7 .9zM399.8 410.2c.1-3.4 .2-6.8 .2-10.2c0-159.1-128.9-288-288-288c-3.4 0-6.8 .1-10.2 .2L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1L399.8 410.2zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaceOfWorship (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 109.3l0 108.3L183.3 242c-14.5 8.7-23.3 24.3-23.3 41.2L160 512l96 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 96 0 0-228.8c0-16.9-8.8-32.5-23.3-41.2L416 217.6l0-108.3c0-8.5-3.4-16.6-9.4-22.6L331.3 11.3c-6.2-6.2-16.4-6.2-22.6 0L233.4 86.6c-6 6-9.4 14.1-9.4 22.6zM24.9 330.3C9.5 338.8 0 354.9 0 372.4L0 464c0 26.5 21.5 48 48 48l80 0 0-238.4L24.9 330.3zM592 512c26.5 0 48-21.5 48-48l0-91.6c0-17.5-9.5-33.6-24.9-42.1L512 273.6 512 512l80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneArrival (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.3 166.9L0 68C0 57.7 9.5 50.1 19.5 52.3l35.6 7.9c10.6 2.3 19.2 9.9 23 20L96 128l127.3 37.6L181.8 20.4C178.9 10.2 186.6 0 197.2 0l40.1 0c11.6 0 22.2 6.2 27.9 16.3l109 193.8 107.2 31.7c15.9 4.7 30.8 12.5 43.7 22.8l34.4 27.6c24 19.2 18.1 57.3-10.7 68.2c-41.2 15.6-86.2 18.1-128.8 7L121.7 289.8c-11.1-2.9-21.2-8.7-29.3-16.9L9.5 189.4c-5.9-6-9.3-14.1-9.3-22.5zM32 448l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-35 0-64 59.5-64 93.7l0 84.6L8.1 283.4c-5 2.8-8.1 8.2-8.1 13.9l0 65.5c0 10.6 10.2 18.3 20.4 15.4l171.6-49 0 70.9-57.6 43.2c-4 3-6.4 7.8-6.4 12.8l0 42c0 7.8 6.3 14 14 14c1.3 0 2.6-.2 3.9-.5L256 480l110.1 31.5c1.3 .4 2.6 .5 3.9 .5c6 0 11.1-3.7 13.1-9C344.5 470.7 320 422.2 320 368c0-60.6 30.6-114 77.1-145.6L320 178.3l0-84.6C320 59.5 292 0 256 0zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L518.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneDeparture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381 114.9L186.1 41.8c-16.7-6.2-35.2-5.3-51.1 2.7L89.1 67.4C78 73 77.2 88.5 87.6 95.2l146.9 94.5L136 240 77.8 214.1c-8.7-3.9-18.8-3.7-27.3 .6L18.3 230.8c-9.3 4.7-11.8 16.8-5 24.7l73.1 85.3c6.1 7.1 15 11.2 24.3 11.2l137.7 0c5 0 9.9-1.2 14.3-3.4L535.6 212.2c46.5-23.3 82.5-63.3 100.8-112C645.9 75 627.2 48 600.2 48l-57.4 0c-20.2 0-40.2 4.8-58.2 14L381 114.9zM0 480c0 17.7 14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 84.6 101.8 58.2C418 247.6 416 259.6 416 272l0 24.6c-17.9 10.4-30.3 29.1-31.8 50.9L320 329.1l0 70.9 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 24 0 18c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-70.9-171.6 49C10.2 381.1 0 373.4 0 362.8l0-65.5c0-5.7 3.1-11 8.1-13.9L192 178.3l0-84.6zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M514.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-73.8 0L630.8 469.1c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2S28.4-3.1 38.8 5.1L238.1 161.3 197.8 20.4C194.9 10.2 202.6 0 213.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L397.7 192l116.6 0zM41.5 128.7l321 252.9L297.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L144 320l-43.2 57.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L64 256 32.5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-6.2 4-11.4 9.5-13.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 93.7C192 59.5 221 0 256 0c36 0 64 59.5 64 93.7l0 66.3L497.8 278.5c8.9 5.9 14.2 15.9 14.2 26.6l0 56.7c0 10.9-10.7 18.6-21.1 15.2L320 320l0 80 57.6 43.2c4 3 6.4 7.8 6.4 12.8l0 42c0 7.8-6.3 14-14 14c-1.3 0-2.6-.2-3.9-.5L256 480 145.9 511.5c-1.3 .4-2.6 .5-3.9 .5c-7.8 0-14-6.3-14-14l0-42c0-5 2.4-9.8 6.4-12.8L192 400l0-80L21.1 377C10.7 380.4 0 372.7 0 361.8l0-56.7c0-10.7 5.3-20.7 14.2-26.6L192 160l0-66.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.3 192c34.2 0 93.7 29 93.7 64c0 36-59.5 64-93.7 64l-116.6 0L265.2 495.9c-5.7 10-16.3 16.1-27.8 16.1l-56.2 0c-10.6 0-18.3-10.2-15.4-20.4l49-171.6L112 320 68.8 377.6c-3 4-7.8 6.4-12.8 6.4l-42 0c-7.8 0-14-6.3-14-14c0-1.3 .2-2.6 .5-3.9L32 256 .5 145.9c-.4-1.3-.5-2.6-.5-3.9c0-7.8 6.3-14 14-14l42 0c5 0 9.8 2.4 12.8 6.4L112 192l102.9 0-49-171.6C162.9 10.2 170.6 0 181.2 0l56.2 0c11.5 0 22.1 6.2 27.8 16.1L365.7 192l116.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlantWilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 120c0-30.9 25.1-56 56-56s56 25.1 56 56l0 13c-29.3 10-48 34.5-48 70.1c0 27.9 25.3 74.8 66 111.6c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13C464 53.7 410.3 0 344 0S224 53.7 224 120l0 21.8C207.3 133 188.2 128 168 128c-66.3 0-120 53.7-120 120l0 13c-29.3 10-48 34.5-48 70.1C0 359 25.3 405.9 66 442.7c3.8 3.5 8.9 5.3 14 5.3s10.2-1.8 14-5.3c40.7-36.8 66-83.7 66-111.6c0-35.6-18.7-60.2-48-70.1l0-13c0-30.9 25.1-56 56-56s56 25.1 56 56l0 32 0 200c0 17.7 14.3 32 32 32s32-14.3 32-32l0-200 0-32 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaPlateWheat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16c-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6C502.3 397.8 464.2 437 416 446l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M73 39c-14.8-9.1-33.4-9.4-48.5-.9S0 62.6 0 80L0 432c0 17.4 9.4 33.4 24.5 41.9s33.7 8.1 48.5-.9L361 297c14.3-8.7 23-24.2 23-41s-8.7-32.2-23-41L73 39z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleBolt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-76.7-43.3c6.2 6.2 6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L416 385.4l60.7-60.7c6.2-6.2 16.4-6.2 22.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM576 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCirclePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPlugCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2c12.3-2.5 24.1-6.4 35.1-11.5c-2.1-10.8-3.1-21.9-3.1-33.3c0-80.3 53.8-148 127.3-169.2c.5-2.2 .7-4.5 .7-6.8c0-17.7-14.3-32-32-32L32 160zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7L454.6 368l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L432 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L409.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L432 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"},\"child\":[]}]})(props);\n};\nexport function FaPlusMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112L48 144c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0 0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-112zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z\"},\"child\":[]}]})(props);\n};\nexport function FaPodcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.4 372c48.5-31.3 80.6-85.9 80.6-148c0-97.2-78.8-176-176-176S48 126.8 48 224c0 62.1 32.1 116.6 80.6 148c1.2 17.3 4 38 7.2 57.1l.2 1C56 395.8 0 316.5 0 224C0 100.3 100.3 0 224 0S448 100.3 448 224c0 92.5-56 171.9-136 206.1l.2-1.1c3.1-19.2 6-39.8 7.2-57zm-2.3-38.1c-1.6-5.7-3.9-11.1-7-16.2c-5.8-9.7-13.5-17-21.9-22.4c19.5-17.6 31.8-43 31.8-71.3c0-53-43-96-96-96s-96 43-96 96c0 28.3 12.3 53.8 31.8 71.3c-8.4 5.4-16.1 12.7-21.9 22.4c-3.1 5.1-5.4 10.5-7 16.2C99.8 307.5 80 268 80 224c0-79.5 64.5-144 144-144s144 64.5 144 144c0 44-19.8 83.5-50.9 109.9zM224 312c32.9 0 64 8.6 64 43.8c0 33-12.9 104.1-20.6 132.9c-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8c0-35.1 31.1-43.8 64-43.8zm0-144a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"},\"child\":[]}]})(props);\n};\nexport function FaPooStorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M236.9 .2c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1c0 21.7-8.5 37.2-21.9 47.6c-13.8 10.8-34 17-57.8 17L128 112c-35.3 0-64 28.7-64 64c0 12.2 3.4 23.5 9.3 33.2C31.7 216.2 0 252.4 0 296c0 40.9 28 75.4 65.8 85.2c-5.3-18.5 1-38.5 16.2-50.7l160-128c17.6-14.1 42.6-14 60.2 .2s22.8 38.6 12.8 58.8L285.7 320l18.3 0c20.4 0 38.5 12.9 45.3 32.1c3.7 10.6 3.5 21.8 0 31.9l10.7 0c48.6 0 88-39.4 88-88c0-43.6-31.7-79.8-73.3-86.8c5.9-9.7 9.3-21.1 9.3-33.2c0-35.3-28.7-64-64-64l-1.4 0c.9-5.4 1.4-10.9 1.4-16.6c0-48.7-36.1-88.9-83.1-95.2zm45.1 227.4c-5.8-4.7-14.2-4.7-20.1-.1l-160 128c-5.3 4.2-7.4 11.4-5.1 17.8s8.3 10.7 15.1 10.7l70.1 0L129.7 488.8c-3.4 6.7-1.6 14.9 4.3 19.6s14.2 4.7 20.1 .1l160-128c5.3-4.2 7.4-11.4 5.1-17.8s-8.3-10.7-15.1-10.7l-70.1 0 52.4-104.8c3.4-6.7 1.6-14.9-4.3-19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPoo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1c0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64c0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72c0 23.2 11 43.8 28 57c-34.1 5.7-60 35.3-60 71c0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72c0-35.7-25.9-65.3-60-71c17-13.2 28-33.8 28-57c0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48c0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32c0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7c-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7c0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPoop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7C315.8 7.2 352 47.4 352 96c0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64c0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72c0 23.2-11 43.8-28 57c34.1 5.7 60 35.3 60 71c0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72c0-35.7 25.9-65.3 60-71c-17-13.2-28-33.8-28-57c0-39.8 32.2-72 72-72l13.7 0C104.4 228.3 96 211.1 96 192c0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80c0-9.2-1.5-17.9-4.3-26.1c-1.8-5.2-.8-11.1 2.8-15.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPowerOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224zM143.5 120.6c13.6-11.3 15.4-31.5 4.1-45.1s-31.5-15.4-45.1-4.1C49.7 115.4 16 181.8 16 256c0 132.5 107.5 240 240 240s240-107.5 240-240c0-74.2-33.8-140.6-86.6-184.6c-13.6-11.3-33.8-9.4-45.1 4.1s-9.4 33.8 4.1 45.1c38.9 32.3 63.5 81 63.5 135.4c0 97.2-78.8 176-176 176s-176-78.8-176-176c0-54.4 24.7-103.1 63.5-135.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottleMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zM160 240l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zm32 96l320 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-32 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 384l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 288l0-64 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L32 192l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescription (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32L0 192l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128L137.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7l-85.8-85.8C251.4 209.1 288 164.8 288 112C288 50.1 237.9 0 176 0L32 0zM176 160L64 160l0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaPrint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C92.7 0 64 28.7 64 64l0 96 64 0 0-96 226.7 0L384 93.3l0 66.7 64 0 0-66.7c0-17-6.7-33.3-18.7-45.3L400 18.7C388 6.7 371.7 0 354.7 0L128 0zM384 352l0 32 0 64-256 0 0-64 0-16 0-16 256 0zm64 32l32 0c17.7 0 32-14.3 32-32l0-96c0-35.3-28.7-64-64-64L64 192c-35.3 0-64 28.7-64 64l0 96c0 17.7 14.3 32 32 32l32 0 0 64c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-64zM432 248a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM216 280l0 32 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-32-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-32c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 32l0 96 128 0 0-32 60.1 0c4.2 0 8.3 1.7 11.3 4.7l33.9 33.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L372.7 55.4c-15-15-35.4-23.4-56.6-23.4L256 32c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32zM117.4 160c-33.3 0-61 25.5-63.8 58.7L35 442.7C31.9 480 61.3 512 98.8 512l186.4 0c37.4 0 66.9-32 63.8-69.3l-18.7-224c-2.8-33.2-30.5-58.7-63.8-58.7l-149.1 0zM256 360c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9c3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C219 279.1 256 327.5 256 360z\"},\"child\":[]}]})(props);\n};\nexport function FaPuzzlePiece (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z\"},\"child\":[]}]})(props);\n};\nexport function FaQ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 256c0 88.4 71.6 160 160 160c28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1C371.9 325.8 384 292.3 384 256c0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480C100.3 480 0 379.7 0 256S100.3 32 224 32s224 100.3 224 224c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"},\"child\":[]}]})(props);\n};\nexport function FaQrcode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 96l0 64 64 0 0-64L64 96zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zm64 16l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm80 64l-64 0 0 64 64 0 0-64zM256 304c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16l0 96c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-160zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 160c0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64l0 3.6c0 21.8-11.1 42.1-29.4 53.8l-42.2 27.1c-25.2 16.2-40.4 44.1-40.4 74l0 1.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.4c0-8.2 4.2-15.8 11-20.2l42.2-27.1c36.6-23.6 58.8-64.1 58.8-107.7l0-3.6c0-70.7-57.3-128-128-128l-32 0C73.3 32 16 89.3 16 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm80 320a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-32 0-32 0-72z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z\"},\"child\":[]}]})(props);\n};\nexport function FaR (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 288 0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0L261.8 466.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176c0-79.5-64.5-144-144-144L64 32zM176 256L64 256 64 96l112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRadiation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 186.7c-23.9 13.8-40 39.7-40 69.3L32 256C14.3 256-.2 241.6 2 224.1C10.7 154 47.8 92.7 101.3 52c14.1-10.7 33.8-5.3 42.7 10l72 124.7zM256 336c14.6 0 28.2-3.9 40-10.7l72 124.8c8.8 15.3 3.7 35.1-12.6 41.9c-30.6 12.9-64.2 20-99.4 20s-68.9-7.1-99.4-20c-16.3-6.9-21.4-26.6-12.6-41.9l72-124.8c11.8 6.8 25.4 10.7 40 10.7zm224-80l-144 0c0-29.6-16.1-55.5-40-69.3L368 62c8.8-15.3 28.6-20.7 42.7-10c53.6 40.7 90.6 102 99.4 172.1c2.2 17.5-12.4 31.9-30 31.9zM256 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.8 47c12.7-3.7 20-17.1 16.3-29.8S494-2.8 481.2 1L51.7 126.9c-9.4 2.7-17.9 7.3-25.1 13.2C10.5 151.7 0 170.6 0 192l0 4L0 304 0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-229.5 0L494.8 47zM368 240a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM80 256c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16zM64 320c0-8.8 7.2-16 16-16l128 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 336c-8.8 0-16-7.2-16-16zm16 64c0-8.8 7.2-16 16-16l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRainbow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96C178.6 96 64 210.6 64 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C0 175.3 143.3 32 320 32s320 143.3 320 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96C576 210.6 461.4 96 320 96zm0 192c-35.3 0-64 28.7-64 64l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-70.7 57.3-128 128-128s128 57.3 128 128l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-35.3-28.7-64-64-64zM160 352l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-123.7 100.3-224 224-224s224 100.3 224 224l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-88.4-71.6-160-160-160s-160 71.6-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRankingStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.8 54.1L330.2 6.3c-3.9-8.3-16.1-8.6-20.4 0L286.2 54.1l-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-128 0zM32 320c-17.7 0-32 14.3-32 32L0 480c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L32 320zm416 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaReceipt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.3-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6L304 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L192 471.6l-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM96 144c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 144zM80 352c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 336c-8.8 0-16 7.2-16 16zM96 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l192 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L96 240z\"},\"child\":[]}]})(props);\n};\nexport function FaRecordVinyl (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 224a128 128 0 1 0 0-256 128 128 0 1 0 0 256zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRectangleAd (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM229.5 173.3l72 144c5.9 11.9 1.1 26.3-10.7 32.2s-26.3 1.1-32.2-10.7L253.2 328l-90.3 0-5.4 10.7c-5.9 11.9-20.3 16.7-32.2 10.7s-16.7-20.3-10.7-32.2l72-144c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3zM208 237.7L186.8 280l42.3 0L208 237.7zM392 256a24 24 0 1 0 0 48 24 24 0 1 0 0-48zm24-43.9l0-28.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 96 0 48c0 13.3-10.7 24-24 24c-6.6 0-12.6-2.7-17-7c-9.4 4.5-19.9 7-31 7c-39.8 0-72-32.2-72-72s32.2-72 72-72c8.4 0 16.5 1.4 24 4.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRectangleList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32-128a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96-248c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l224 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRectangleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRecycle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M174.7 45.1C192.2 17 223 0 256 0s63.8 17 81.3 45.1l38.6 61.7 27-15.6c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3l-23.4 87.4c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l28.4-16.4L283 79c-5.8-9.3-16-15-27-15s-21.2 5.7-27 15l-17.5 28c-9.2 14.8-28.6 19.5-43.6 10.5c-15.3-9.2-20.2-29.2-10.7-44.4l17.5-28zM429.5 251.9c15-9 34.4-4.3 43.6 10.5l24.4 39.1c9.4 15.1 14.4 32.4 14.6 50.2c.3 53.1-42.7 96.4-95.8 96.4L320 448l0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 96.2 0c17.6 0 31.9-14.4 31.8-32c0-5.9-1.7-11.7-4.8-16.7l-24.4-39.1c-9.5-15.2-4.7-35.2 10.7-44.4zm-364.6-31L36 204.2c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20l87.4-23.4c12.8-3.4 26 4.2 29.4 17L182 241.2c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-26.5-15.3L68.8 335.3c-3.1 5-4.8 10.8-4.8 16.7c-.1 17.6 14.2 32 31.8 32l32.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.2 0C42.7 448-.3 404.8 0 351.6c.1-17.8 5.1-35.1 14.6-50.2l50.3-80.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152c0-13.3 10.7-24 24-24l88 0c44.2 0 80 35.8 80 80c0 28-14.4 52.7-36.3 67l34.1 75.1c5.5 12.1 .1 26.3-11.9 31.8s-26.3 .1-31.8-11.9L268.9 288 208 288l0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-96 0-112zm48 88l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyAll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.4 39.5c-9.1-9.6-24.3-10-33.9-.9L33.8 173.2c-19.9 18.9-19.9 50.7 0 69.6L175.5 377.4c9.6 9.1 24.8 8.7 33.9-.9s8.7-24.8-.9-33.9L66.8 208 208.5 73.4c9.6-9.1 10-24.3 .9-33.9zM352 64c0-12.6-7.4-24.1-19-29.2s-25-3-34.4 5.4l-160 144c-6.7 6.1-10.6 14.7-10.6 23.8s3.9 17.7 10.6 23.8l160 144c9.4 8.5 22.9 10.6 34.4 5.4s19-16.6 19-29.2l0-64 32 0c53 0 96 43 96 96c0 30.4-12.8 47.9-22.2 56.7c-5.5 5.1-9.8 12-9.8 19.5c0 10.9 8.8 19.7 19.7 19.7c2.8 0 5.6-.6 8.1-1.9C494.5 467.9 576 417.3 576 304c0-97.2-78.8-176-176-176l-48 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaReply (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205 34.8c11.5 5.1 19 16.6 19 29.2l0 64 112 0c97.2 0 176 78.8 176 176c0 113.3-81.5 163.9-100.2 174.1c-2.5 1.4-5.3 1.9-8.1 1.9c-10.9 0-19.7-8.9-19.7-19.7c0-7.5 4.3-14.4 9.8-19.5c9.4-8.8 22.2-26.4 22.2-56.7c0-53-43-96-96-96l-96 0 0 64c0 12.6-7.4 24.1-19 29.2s-25 3-34.4-5.4l-160-144C3.9 225.7 0 217.1 0 208s3.9-17.7 10.6-23.8l160-144c9.4-8.5 22.9-10.6 34.4-5.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRepublican (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64L0 256l0-64zm415.9-64c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L466 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm-138.3 3.4c-1.1-2.1-3.3-3.4-5.7-3.4s-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L322 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6zM127.9 128c-2.4 0-4.7 1.3-5.7 3.4l-12.6 24.6-28.2 4c-2.4 .3-4.4 2-5.2 4.2s-.1 4.7 1.6 6.3l20.4 19.2-4.8 27.1c-.4 2.3 .6 4.7 2.5 6s4.6 1.6 6.7 .5l25.2-12.8 25.2 12.8c2.2 1.1 4.8 .9 6.7-.5s3-3.7 2.5-6l-4.8-27.1L178 170.5c1.7-1.6 2.4-4.1 1.6-6.3s-2.8-3.9-5.2-4.2l-28.2-4-12.6-24.6c-1.1-2.1-3.3-3.4-5.7-3.4zm.1 160l192 0 96 0 32 0 64 0 32 0 0 32 0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 32 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64 0-96 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRestroom (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 48a48 48 0 1 1 96 0A48 48 0 1 1 80 48zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4c-16.9-5.3-26.3-23.2-21-40.1l30.9-99.1C44.9 155.3 82 128 124 128l8 0c42 0 79.1 27.3 91.6 67.4l30.9 99.1c5.3 16.9-4.1 34.8-21 40.1c-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5c-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1c-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1L584 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRetweet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 416c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0c-17.7 0-32-14.3-32-32l0-128 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 128c0 53 43 96 96 96l112 0zM304 96c-17.7 0-32 14.3-32 32s14.3 32 32 32l112 0c17.7 0 32 14.3 32 32l0 128-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-128c0-53-43-96-96-96L304 96z\"},\"child\":[]}]})(props);\n};\nexport function FaRibbon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.2 322.8s0 0 0 0l-133.9-146s0 0 0 0L146 118.6c7.8-5.1 37-22.6 78-22.6s70.2 17.4 78 22.6L245.7 180l85.6 93.4 27.4-29.8c16.3-17.7 25.3-40.9 25.3-65l0-29.5c0-19-5.6-37.5-16.1-53.3L327.8 35.6C312.9 13.4 287.9 0 261.2 0l-76 0c-25.8 0-50.1 12.5-65.1 33.5L81.9 87C70.3 103.2 64 122.8 64 142.8L64 164c0 23.2 8.4 45.6 23.6 63.1l56 64.2s0 0 0 0l83.3 95.6s0 0 0 0l91.8 105.3c10 11.5 26.8 14.3 40 6.8l54.5-31.1c17.8-10.2 21.6-34.3 7.7-49.4l-87.7-95.7zM205.2 410.6l-83.3-95.6L27.1 418.5c-13.9 15.1-10.1 39.2 7.7 49.4l55.1 31.5c13 7.4 29.3 4.9 39.4-6.1l75.9-82.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRightFromBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRightLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-64L32 160c-17.7 0-32-14.3-32-32s14.3-32 32-32zM480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96c-6-6-9.4-14.1-9.4-22.6s3.4-16.6 9.4-22.6l96-96c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 64 320 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRightLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M334.5 414c8.8 3.8 19 2 26-4.6l144-136c4.8-4.5 7.5-10.8 7.5-17.4s-2.7-12.9-7.5-17.4l-144-136c-7-6.6-17.2-8.4-26-4.6s-14.5 12.5-14.5 22l0 72L32 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l288 0 0 72c0 9.6 5.7 18.2 14.5 22z\"},\"child\":[]}]})(props);\n};\nexport function FaRightToBracket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 208c0 7.8 4.4 18.7 17.1 30.3C126.5 214.1 188.9 200 256 200s129.5 14.1 174.9 38.3C443.6 226.7 448 215.8 448 208c0-12.3-10.8-32-47.9-50.6C364.9 139.8 314 128 256 128s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7C166.3 280.2 208.8 288 256 288s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208c0-49.6 39.4-85.8 83.3-107.8C129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8C382.9 434.7 321.7 448 256 448s-126.9-13.3-172.7-36.2C39.4 389.8 0 353.6 0 304l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadBarrier (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-181.7L149.2 96 64 96l0-32c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7L234.8 288l74.3 0 5.4-10.7L405.2 96zM362.8 288l74.3 0 5.4-10.7L533.2 96l-74.3 0-5.4 10.7L362.8 288zM202.8 96l-5.4 10.7L106.8 288l74.3 0 5.4-10.7L277.2 96l-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7L490.8 288z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadBridge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0L608 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM480 200c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zm24 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM480 40c-13.3 0-24 10.7-24 24l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24zM32 96l256 0 0 64-40 0 0 64 40 0 0 96c-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64c0-53-43-96-96-96l0-96 72 0 0-64-40 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm168 64l-80 0 0 64 80 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L480 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 240a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0-192c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.2 32L288 32l0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 74.8 0c27.1 0 51.3 17.1 60.3 42.6l42.7 120.6c-10.9-2.1-22.2-3.2-33.8-3.2c-59.5 0-112.1 29.6-144 74.8l0-42.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32c2.3 0 4.6-.3 6.8-.7c-4.5 15.5-6.8 31.8-6.8 48.7c0 5.4 .2 10.7 .7 16l-.7 0c-17.7 0-32 14.3-32 32l0 64L86.6 480C56.5 480 32 455.5 32 425.4c0-6.2 1.1-12.4 3.1-18.2L152.9 74.6C162 49.1 186.1 32 213.2 32zM496 224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm22.6 144l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L496 345.4l-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L473.4 368l-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L496 390.6l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L518.6 368z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L35.1 407.2c-2.1 5.9-3.1 12-3.1 18.2C32 455.5 56.5 480 86.6 480L288 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 32 0 0-128c0-23.7 12.9-44.4 32-55.4l0-24.6c0-58.3 44.6-106.2 101.5-111.5L487.1 74.6C478 49.1 453.9 32 426.8 32L352 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRoadSpikes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 116.8c0-15.8 20.5-22 29.3-8.9L192 256l0-139.2c0-15.8 20.5-22 29.3-8.9L320 256l0-139.2c0-15.8 20.5-22 29.3-8.9L448 256l0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.7-26.6 49.7L512 352l-64 0-64 0-64 0-64 0-64 0L64 352l0-235.2zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRoad (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32l-74.8 0c-27.1 0-51.3 17.1-60.3 42.6L3.1 407.2C1.1 413 0 419.2 0 425.4C0 455.5 24.5 480 54.6 480L256 480l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 201.4 0c30.2 0 54.6-24.5 54.6-54.6c0-6.2-1.1-12.4-3.1-18.2L455.1 74.6C446 49.1 421.9 32 394.8 32L320 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRobot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRotateLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z\"},\"child\":[]}]})(props);\n};\nexport function FaRotateRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRotate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142.9 142.9c-17.5 17.5-30.1 38-37.8 59.8c-5.9 16.7-24.2 25.4-40.8 19.5s-25.4-24.2-19.5-40.8C55.6 150.7 73.2 122 97.6 97.6c87.2-87.2 228.3-87.5 315.8-1L455 55c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 128c0 13.3-10.7 24-24 24l-8.4 0c0 0 0 0 0 0L344 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l41.1-41.1c-62.6-61.5-163.1-61.2-225.3 1zM16 312c0-13.3 10.7-24 24-24l7.6 0 .7 0L168 288c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-41.1 41.1c62.6 61.5 163.1 61.2 225.3-1c17.5-17.5 30.1-38 37.8-59.8c5.9-16.7 24.2-25.4 40.8-19.5s25.4 24.2 19.5 40.8c-10.8 30.6-28.4 59.3-52.9 83.8c-87.2 87.2-228.3 87.5-315.8 1L57 457c-6.9 6.9-17.2 8.9-26.2 5.2S16 449.7 16 440l0-119.6 0-.7 0-7.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRoute (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32c229.8 0 416 186.2 416 416c0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96C14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0A64 64 0 1 1 0 416zM32 160c159.1 0 288 128.9 288 288c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRubleSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C78.3 32 64 46.3 64 64l0 192-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-32 112 0c79.5 0 144-64.5 144-144s-64.5-144-144-144L96 32zM240 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 64l32 0 24 0 0 24 0 88 0 80 0 80 0 88 0 24-24 0-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm88 0l416 0 0 384-416 0 0-384zM640 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0-24 0 0-24 0-88 0-80 0-80 0-88 0-24 24 0 32 0c13.3 0 24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerCombined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.2 468.9C2.7 493.1 23.1 512 48 512l96 0 320 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-64-80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l80 0 0-48c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 368l0 96c0 1.7 .1 3.3 .2 4.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L208 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRuler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRupeeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256.5 16.4c-.9 6 0 8.7 .4 9.8c.4 1.1 1.4 2.6 4.2 4.9c7.2 5.7 18.7 10 37.9 16.8l1.3 .5c16 5.6 38.7 13.6 55.7 28.1c9.5 8.1 17.9 18.6 23.1 32.3c5.1 13.7 6.1 28.5 3.8 44c-4.2 28.1-20.5 49.3-43.8 60.9c-22.1 11-48.1 12.5-73.2 8l-.2 0s0 0 0 0c-9.3-1.8-20.5-5.7-29.3-9c-6-2.3-12.6-4.9-17.7-6.9c0 0 0 0 0 0c-2.5-1-4.6-1.8-6.3-2.5c-16.5-6.4-24.6-25-18.2-41.4s24.9-24.6 41.4-18.2c2.6 1 5.2 2 7.9 3.1c0 0 0 0 0 0c4.8 1.9 9.8 3.9 15.4 6c8.8 3.3 15.3 5.4 18.7 6c15.7 2.8 26.7 .8 32.9-2.3c5-2.5 8-6 9.1-13c1-6.9 .2-10.5-.5-12.3c-.6-1.7-1.8-3.6-4.5-5.9c-6.9-5.8-18.2-10.4-36.9-17l-3-1.1c-15.5-5.4-37-13-53.3-25.9c-9.5-7.5-18.3-17.6-23.7-31c-5.5-13.4-6.6-28-4.4-43.2c8.4-57.1 67-78 116.9-68.9c6.9 1.3 27.3 5.8 35.4 8.4c16.9 5.2 26.3 23.2 21.1 40.1s-23.2 26.3-40.1 21.1c-4.7-1.4-22.3-5.5-27.9-6.5c-14.6-2.7-25.8-.4-32.6 3.2c-6.3 3.3-8.9 7.6-9.5 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRupiahSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144c0 58.8-35.2 109.3-85.7 131.7l51.4 128.4c6.6 16.4-1.4 35-17.8 41.6s-35-1.4-41.6-17.8L106.3 320 64 320l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32L0 288 0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80L64 96l0 160zm256-96l80 0c61.9 0 112 50.1 112 112s-50.1 112-112 112l-48 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128 0-160c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaS (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99.1 105.4C79 114 68.2 127.2 65.2 144.8c-2.4 14.1-.7 23.2 2 29.4c2.8 6.3 7.9 12.4 16.7 18.6c19.2 13.4 48.3 22.1 84.9 32.5c1 .3 1.9 .6 2.9 .8c32.7 9.3 72 20.6 100.9 40.7c15.7 10.9 29.9 25.5 38.6 45.1c8.8 19.8 10.8 42 6.6 66.3c-7.3 42.5-35.3 71.7-71.8 87.3c-35.4 15.2-79.1 17.9-123.7 10.9l-.2 0s0 0 0 0c-24-3.9-62.7-17.1-87.6-25.6c-4.8-1.7-9.2-3.1-12.8-4.3C5.1 440.8-3.9 422.7 1.6 405.9s23.7-25.8 40.5-20.3c4.9 1.6 10.2 3.4 15.9 5.4c25.4 8.6 56.4 19.2 74.4 22.1c36.8 5.7 67.5 2.5 88.5-6.5c20.1-8.6 30.8-21.8 33.9-39.4c2.4-14.1 .7-23.2-2-29.4c-2.8-6.3-7.9-12.4-16.7-18.6c-19.2-13.4-48.3-22.1-84.9-32.5c-1-.3-1.9-.6-2.9-.8c-32.7-9.3-72-20.6-100.9-40.7c-15.7-10.9-29.9-25.5-38.6-45.1c-8.8-19.8-10.8-42-6.6-66.3l31.5 5.5L2.1 133.9C9.4 91.4 37.4 62.2 73.9 46.6c35.4-15.2 79.1-17.9 123.7-10.9c13 2 52.4 9.6 66.6 13.4c17.1 4.5 27.2 22.1 22.7 39.2s-22.1 27.2-39.2 22.7c-11.2-3-48.1-10.2-60.1-12l4.9-31.5-4.9 31.5c-36.9-5.8-67.5-2.5-88.6 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSackDollar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 96L192 96 144.6 24.9C137.5 14.2 145.1 0 157.9 0L354.1 0c12.8 0 20.4 14.2 13.3 24.9L320 96zM192 128l128 0c3.8 2.5 8.1 5.3 13 8.4C389.7 172.7 512 250.9 512 416c0 53-43 96-96 96L96 512c-53 0-96-43-96-96C0 250.9 122.3 172.7 179 136.4c0 0 0 0 0 0s0 0 0 0c4.8-3.1 9.2-5.9 13-8.4zm84 88c0-11-9-20-20-20s-20 9-20 20l0 14c-7.6 1.7-15.2 4.4-22.2 8.5c-13.9 8.3-25.9 22.8-25.8 43.9c.1 20.3 12 33.1 24.7 40.7c11 6.6 24.7 10.8 35.6 14l1.7 .5c12.6 3.8 21.8 6.8 28 10.7c5.1 3.2 5.8 5.4 5.9 8.2c.1 5-1.8 8-5.9 10.5c-5 3.1-12.9 5-21.4 4.7c-11.1-.4-21.5-3.9-35.1-8.5c-2.3-.8-4.7-1.6-7.2-2.4c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3c1.9 .6 4 1.3 6.1 2.1c0 0 0 0 0 0s0 0 0 0c8.3 2.9 17.9 6.2 28.2 8.4l0 14.6c0 11 9 20 20 20s20-9 20-20l0-13.8c8-1.7 16-4.5 23.2-9c14.3-8.9 25.1-24.1 24.8-45c-.3-20.3-11.7-33.4-24.6-41.6c-11.5-7.2-25.9-11.6-37.1-15c0 0 0 0 0 0l-.7-.2c-12.8-3.9-21.9-6.7-28.3-10.5c-5.2-3.1-5.3-4.9-5.3-6.7c0-3.7 1.4-6.5 6.2-9.3c5.4-3.2 13.6-5.1 21.5-5c9.6 .1 20.2 2.2 31.2 5.2c10.7 2.8 21.6-3.5 24.5-14.2s-3.5-21.6-14.2-24.5c-6.5-1.7-13.7-3.4-21.1-4.7l0-13.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSackXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96l128 0 47.4-71.1C374.5 14.2 366.9 0 354.1 0L157.9 0c-12.8 0-20.4 14.2-13.3 24.9L192 96zm128 32l-128 0c-3.8 2.5-8.1 5.3-13 8.4c0 0 0 0 0 0s0 0 0 0C122.3 172.7 0 250.9 0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96c0-165.1-122.3-243.3-179-279.6c-4.8-3.1-9.2-5.9-13-8.4zM289.9 336l47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47z\"},\"child\":[]}]})(props);\n};\nexport function FaSailboat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 16c0-7 4.5-13.2 11.2-15.3s13.9 .4 17.9 6.1l224 320c3.4 4.9 3.8 11.3 1.1 16.6s-8.2 8.6-14.2 8.6l-224 0c-8.8 0-16-7.2-16-16l0-320zM212.1 96.5c7 1.9 11.9 8.2 11.9 15.5l0 224c0 8.8-7.2 16-16 16L80 352c-5.7 0-11-3-13.8-8s-2.9-11-.1-16l128-224c3.6-6.3 11-9.4 18-7.5zM5.7 404.3C2.8 394.1 10.5 384 21.1 384l533.8 0c10.6 0 18.3 10.1 15.4 20.3l-4 14.3C550.7 473.9 500.4 512 443 512L133 512C75.6 512 25.3 473.9 9.7 418.7l-4-14.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSatelliteDish (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c0-17.7 14.3-32 32-32C383.1 0 512 128.9 512 288c0 17.7-14.3 32-32 32s-32-14.3-32-32C448 164.3 347.7 64 224 64c-17.7 0-32-14.3-32-32zM60.6 220.6L164.7 324.7l28.4-28.4c-.7-2.6-1.1-5.4-1.1-8.3c0-17.7 14.3-32 32-32s32 14.3 32 32s-14.3 32-32 32c-2.9 0-5.6-.4-8.3-1.1l-28.4 28.4L291.4 451.4c14.5 14.5 11.8 38.8-7.3 46.3C260.5 506.9 234.9 512 208 512C93.1 512 0 418.9 0 304c0-26.9 5.1-52.5 14.4-76.1c7.5-19 31.8-21.8 46.3-7.3zM224 96c106 0 192 86 192 192c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-70.7-57.3-128-128-128c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSatellite (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M233 7c-9.4-9.4-24.6-9.4-33.9 0l-96 96c-9.4 9.4-9.4 24.6 0 33.9l89.4 89.4-15.5 15.5C152.3 230.4 124.9 224 96 224c-31.7 0-61.5 7.7-87.8 21.2c-9 4.7-10.3 16.7-3.1 23.8L112.7 376.7 96.3 393.1c-2.6-.7-5.4-1.1-8.3-1.1c-17.7 0-32 14.3-32 32s14.3 32 32 32s32-14.3 32-32c0-2.9-.4-5.6-1.1-8.3l16.4-16.4L242.9 506.9c7.2 7.2 19.2 5.9 23.8-3.1C280.3 477.5 288 447.7 288 416c0-28.9-6.4-56.3-17.8-80.9l15.5-15.5L375 409c9.4 9.4 24.6 9.4 33.9 0l96-96c9.4-9.4 9.4-24.6 0-33.9l-89.4-89.4 55-55c12.5-12.5 12.5-32.8 0-45.3l-48-48c-12.5-12.5-32.8-12.5-45.3 0l-55 55L233 7zm159 351l-72.4-72.4 62.1-62.1L454.1 296 392 358.1zM226.3 192.4L153.9 120 216 57.9l72.4 72.4-62.1 62.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScaleBalanced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScaleUnbalancedFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.9 62.4c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l113 37.7C265 15.8 290.7 0 320 0c44.2 0 80 35.8 80 80c0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.4 145.2c-4.5 3.2-9.3 5.9-14.4 8.2L352 480c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.4 288L128 163.8 55.6 288l144.9 0zM128 384C65.1 384 12.8 350 2 305.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C243.2 350 190.9 384 128 384zm382.8-92.2L438.4 416l144.9 0L510.8 291.8zm126 141.3C626 478 573.7 512 510.8 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"},\"child\":[]}]})(props);\n};\nexport function FaScaleUnbalanced (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M522.1 62.4c16.8-5.6 25.8-23.7 20.2-40.5S518.6-3.9 501.9 1.6l-113 37.7C375 15.8 349.3 0 320 0c-44.2 0-80 35.8-80 80c0 3 .2 5.9 .5 8.8L117.9 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2L288 480c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM439.6 288L512 163.8 584.4 288l-144.9 0zM512 384c62.9 0 115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L536.1 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L392.7 273.1c-5.7 9.8-9.3 21.1-6.7 32.1C396.8 350 449.1 384 512 384zM129.2 291.8L201.6 416 56.7 416l72.4-124.2zM3.2 433.1C14 478 66.3 512 129.2 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L153.2 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L9.9 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM640 368a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-99.3-43.3c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-72 72c-6.2 6.2-16.4 6.2-22.6 0l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L480 385.4l60.7-60.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l272 0s0 0 0 0l-64 0 0-96c0-35.3 28.7-64 64-64l.3 0 .5 0c3.4-37.7 18.7-72.1 42.2-99.1C350.2 260 335.6 264 320 264c-48.6 0-88-39.4-88-88s39.4-88 88-88s88 39.4 88 88c0 18.3-5.6 35.3-15.1 49.4c29-21 64.6-33.4 103.1-33.4c59.5 0 112.1 29.6 144 74.8L640 144c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm0 128l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zM320 128c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L496 390.6l-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6L473.4 368l-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L496 345.4l36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 368z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0L400 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-79.3 0 89.6 64L512 160c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-176 0 0-112c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 112L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l101.7 0L256 95.5 256 32c0-17.7 14.3-32 32-32zm48 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM80 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm368 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM80 352c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0zm384 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSchoolLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.2 5.4c10.7-7.2 24.8-7.2 35.5 0L473.7 96 592 96c26.5 0 48 21.5 48 48l0 128c0-61.9-50.1-112-112-112s-112 50.1-112 112l0 24.6c-19.1 11.1-32 31.7-32 55.4l-63.7 0-.3 0c-35.3 0-64 28.7-64 64l0 96 64 0s0 0 0 0L48 512c-26.5 0-48-21.5-48-48L0 144c0-26.5 21.5-48 48-48l118.3 0L302.2 5.4zM80 208l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 128l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-72a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm16-120l0 16 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16s16 7.2 16 16zm192 96c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSchool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M337.8 5.4C327-1.8 313-1.8 302.2 5.4L166.3 96 48 96C21.5 96 0 117.5 0 144L0 464c0 26.5 21.5 48 48 48l208 0 0-96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 96 208 0c26.5 0 48-21.5 48-48l0-320c0-26.5-21.5-48-48-48L473.7 96 337.8 5.4zM96 192l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM96 320l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16zm400 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 64c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-64zM232 176a88 88 0 1 1 176 0 88 88 0 1 1 -176 0zm88-48c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0-16c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 192l-39.5-39.5c4.9-12.6 7.5-26.2 7.5-40.5C224 50.1 173.9 0 112 0S0 50.1 0 112s50.1 112 112 112c14.3 0 27.9-2.7 40.5-7.5L192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5C50.1 288 0 338.1 0 400s50.1 112 112 112s112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6c-28.3-28.3-74.1-28.3-102.4 0L256 192zm22.6 150.6L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0c7.1-7.1 7.1-18.5 0-25.6L342.6 278.6l-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaScrewdriverWrench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.6 5C69.1-2.4 55.6-1.5 47 7L7 47c-8.5 8.5-9.4 22-2.1 31.6l80 104c4.5 5.9 11.6 9.4 19 9.4l54.1 0 109 109c-14.7 29-10 65.4 14.3 89.6l112 112c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-112-112c-24.2-24.2-60.6-29-89.6-14.3l-109-109 0-54.1c0-7.5-3.5-14.5-9.4-19L78.6 5zM19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L233.7 374.3c-7.8-20.9-9-43.6-3.6-65.1l-61.7-61.7L19.9 396.1zM512 144c0-10.5-1.1-20.7-3.2-30.5c-2.4-11.2-16.1-14.1-24.2-6l-63.9 63.9c-3 3-7.1 4.7-11.3 4.7L352 176c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l63.9-63.9c8.1-8.1 5.2-21.8-6-24.2C388.7 1.1 378.5 0 368 0C288.5 0 224 64.5 224 144l0 .8 85.3 85.3c36-9.1 75.8 .5 104 28.7L429 274.5c49-23 83-72.8 83-130.5zM56 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScrewdriver (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465 7c-8.5-8.5-22-9.4-31.6-2.1l-104 80c-5.9 4.5-9.4 11.6-9.4 19l0 54.1-85.6 85.6c6.7 4.2 13 9.3 18.8 15.1s10.9 12.2 15.1 18.8L353.9 192l54.1 0c7.5 0 14.5-3.5 19-9.4l80-104c7.4-9.6 6.5-23.1-2.1-31.6L465 7zM121.4 281.4l-112 112c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l112-112c30.2-30.2 30.2-79.1 0-109.3s-79.1-30.2-109.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScrollTorah (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 480L96 32C96 14.3 74.5 0 48 0S0 14.3 0 32L0 480c0 17.7 21.5 32 48 32s48-14.3 48-32zM512 32L128 32l0 448 384 0 0-448zM592 0c-26.5 0-48 14.3-48 32l0 448c0 17.7 21.5 32 48 32s48-14.3 48-32l0-448c0-17.7-21.5-32-48-32zM196 313.7c0-3.2 .9-6.4 2.5-9.2L226.7 256l-28.3-48.5c-1.6-2.8-2.5-6-2.5-9.2c0-10.1 8.2-18.3 18.3-18.3l56.7 0 31.4-53.9c3.6-6.3 10.3-10.1 17.6-10.1s13.9 3.8 17.6 10.1L369 180l56.7 0c10.1 0 18.3 8.2 18.3 18.3c0 3.2-.9 6.4-2.5 9.2L413.3 256l28.3 48.5c1.6 2.8 2.5 6 2.5 9.2c0 10.1-8.2 18.3-18.3 18.3L369 332l-31.4 53.9c-3.6 6.3-10.3 10.1-17.6 10.1s-13.9-3.8-17.6-10.1L271 332l-56.7 0c-10.1 0-18.3-8.2-18.3-18.3zm124 54.7L341.2 332l-42.4 0L320 368.4zM254.5 256l30.3 52 70.4 0 30.3-52-30.3-52-70.4 0-30.3 52zm144.9 23.8L383 308l32.8 0-16.4-28.2zM415.8 204L383 204l16.4 28.2L415.8 204zM320 143.6L298.8 180l42.4 0L320 143.6zM224.2 204l16.4 28.2L257 204l-32.8 0zM257 308l-16.4-28.2L224.2 308l32.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScroll (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80l0 48c0 17.7 14.3 32 32 32l16 0 48 0 0-80c0-26.5-21.5-48-48-48S0 53.5 0 80zM112 32c10 13.4 16 30 16 48l0 304c0 35.3 28.7 64 64 64s64-28.7 64-64l0-5.3c0-32.4 26.3-58.7 58.7-58.7L480 320l0-192c0-53-43-96-96-96L112 32zM464 480c61.9 0 112-50.1 112-112c0-8.8-7.2-16-16-16l-245.3 0c-14.7 0-26.7 11.9-26.7 26.7l0 5.3c0 53-43 96-96 96l176 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0L141.3 0C124.3 0 108 6.7 96 18.7L18.7 96C6.7 108 0 124.3 0 141.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm80 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaSection (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64.9 96C67.1 84.4 73.7 76.2 86 70.6c13.8-6.2 34.8-8.9 61.2-4.5c8.8 1.4 36.1 7.1 44.1 9.3c17 4.8 34.7-5.1 39.5-22.2s-5.1-34.7-22.2-39.5c-11.1-3.1-41-9.2-50.9-10.8C123-2.7 88.3-.6 59.7 12.3C29.9 25.8 7.5 50.9 1.6 86.5c-.1 .5-.2 1.1-.2 1.6c-2.2 19.7 .3 37.9 8.1 54.1c7.7 16.1 19.4 28 32 36.9c.6 .5 1.3 .9 2 1.4C22.3 194.2 6.5 215.1 1.7 243c-.1 .6-.2 1.1-.2 1.7c-2.3 19.3 .4 37.1 8.4 53c7.9 15.6 19.8 27 32.3 35.5c22.4 15.2 51.9 24 75.4 31c0 0 0 0 0 0l3.7 1.1c27.2 8.2 46.9 14.6 59.4 23.8c5.5 4 8.2 7.6 9.5 10.9c1.3 3.2 2.6 8.6 .9 18.1c-1.7 10.1-7.7 18-20.7 23.5c-14 6-35.4 8.5-62 4.4c-12.8-2.1-35.1-9.7-54.1-16.2c0 0 0 0 0 0c-4.3-1.5-8.5-2.9-12.3-4.2C25.3 420 7.2 429.1 1.6 445.8s3.5 34.9 20.3 40.5c2.6 .8 5.7 1.9 9.2 3.1c18.6 6.3 48.5 16.6 67.3 19.6c0 0 0 0 0 0l.2 0c34.5 5.4 68.8 3.4 97.2-8.7c29.4-12.6 52.5-36.5 58.5-71.5c3.3-19.3 1.9-37.4-5-53.9c-6.3-15-16.4-26.4-27.6-35.2c16.5-13.9 28.5-33.2 32.6-58.2c3.2-19.8 1.9-38.3-4.8-55.1c-6.7-16.8-17.8-29.4-30.2-39c-22.8-17.6-53.6-27.4-77.7-35l-1.4-.5c-27.4-8.7-47.8-15.3-61.5-25c-6.1-4.4-9.5-8.5-11.4-12.4c-1.8-3.7-3.2-9.3-2.3-18.5zm76.7 208.5l-.6-.2-1.4-.4c-27.4-8.2-47.9-14.5-61.7-23.8c-6.2-4.2-9.3-7.9-11-11.3c-1.5-3-2.9-7.7-2.1-15.7c1.9-9.7 7.9-17.3 20.5-22.7c14-6 35.4-8.5 62.1-4.3l16.4 2.6c6.3 2.9 11.7 6 16.2 9.5c5.5 4.2 8.4 8.2 10 12.2c1.6 4 2.8 10.4 1.1 20.9c-2.4 14.7-12.8 26.4-37.1 31l-12.4 2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSeedling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm48 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm280 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShapes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M315.4 15.5C309.7 5.9 299.2 0 288 0s-21.7 5.9-27.4 15.5l-96 160c-5.9 9.9-6.1 22.2-.4 32.2s16.3 16.2 27.8 16.2l192 0c11.5 0 22.2-6.2 27.8-16.2s5.5-22.3-.4-32.2l-96-160zM288 312l0 144c0 22.1 17.9 40 40 40l144 0c22.1 0 40-17.9 40-40l0-144c0-22.1-17.9-40-40-40l-144 0c-22.1 0-40 17.9-40 40zM128 512a128 128 0 1 0 0-256 128 128 0 1 0 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaShareFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 224l-46.5 0c-45 0-81.5 36.5-81.5 81.5c0 22.3 10.3 34.3 19.2 40.5c6.8 4.7 12.8 12 12.8 20.3c0 9.8-8 17.8-17.8 17.8l-2.5 0c-2.4 0-4.8-.4-7.1-1.4C210.8 374.8 128 333.4 128 240c0-79.5 64.5-144 144-144l80 0 0-61.3C352 15.5 367.5 0 386.7 0c8.6 0 16.8 3.2 23.2 8.9L548.1 133.3c7.6 6.8 11.9 16.5 11.9 26.7s-4.3 19.9-11.9 26.7l-139 125.1c-5.9 5.3-13.5 8.2-21.4 8.2l-3.7 0c-17.7 0-32-14.3-32-32l0-64zM80 96c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 112C0 67.8 35.8 32 80 32l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 96z\"},\"child\":[]}]})(props);\n};\nexport function FaShareNodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z\"},\"child\":[]}]})(props);\n};\nexport function FaShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M307 34.8c-11.5 5.1-19 16.6-19 29.2l0 64-112 0C78.8 128 0 206.8 0 304C0 417.3 81.5 467.9 100.2 478.1c2.5 1.4 5.3 1.9 8.1 1.9c10.9 0 19.7-8.9 19.7-19.7c0-7.5-4.3-14.4-9.8-19.5C108.8 431.9 96 414.4 96 384c0-53 43-96 96-96l96 0 0 64c0 12.6 7.4 24.1 19 29.2s25 3 34.4-5.4l160-144c6.7-6.1 10.6-14.7 10.6-23.8s-3.8-17.7-10.6-23.8l-160-144c-9.4-8.5-22.9-10.6-34.4-5.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSheetPlastic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448c0 35.3 28.7 64 64 64l160 0 0-128c0-17.7 14.3-32 32-32l128 0 0-288c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zM171.3 75.3l-96 96c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l96-96c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zm96 32l-160 160c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l160-160c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM384 384l-128 0 0 128L384 384z\"},\"child\":[]}]})(props);\n};\nexport function FaShekelSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 96l128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldCat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldDog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8c35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7L320 192l64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3c-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4c0-2.8 .6-5.5 1.9-8l15-30zM160 160l40 0 8 0 0 32 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldHalved (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM144 221.3c0-33.8 27.4-61.3 61.3-61.3c16.2 0 31.8 6.5 43.3 17.9l7.4 7.4 7.4-7.4c11.5-11.5 27.1-17.9 43.3-17.9c33.8 0 61.3 27.4 61.3 61.3c0 16.2-6.5 31.8-17.9 43.3l-82.7 82.7c-6.2 6.2-16.4 6.2-22.6 0l-82.7-82.7c-11.5-11.5-17.9-27.1-17.9-43.3z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2c.5 99.2 41.3 280.7 213.6 363.2c16.7 8 36.1 8 52.8 0C454.7 420.7 495.5 239.2 496 140c.1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM256 112c8.8 0 16 7.2 16 16c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C334.5 200.1 351 240 384 240c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C311.9 334.5 272 351 272 384c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C177.5 311.9 161 272 128 272c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C200.1 177.5 240 161 240 128c0-8.8 7.2-16 16-16zM232 256a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm72 32a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 32c0-17.7 14.3-32 32-32L352 0c17.7 0 32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 128 44.4 14.8c23.1 7.7 29.5 37.5 11.5 53.9l-101 92.6c-16.2 9.4-34.7 15.1-50.9 15.1c-19.6 0-40.8-7.7-59.2-20.3c-22.1-15.5-51.6-15.5-73.7 0c-17.1 11.8-38 20.3-59.2 20.3c-16.2 0-34.7-5.7-50.9-15.1l-101-92.6c-18-16.5-11.6-46.2 11.5-53.9L96 240l0-128c0-26.5 21.5-48 48-48l48 0 0-32zM160 218.7l107.8-35.9c13.1-4.4 27.3-4.4 40.5 0L416 218.7l0-90.7-256 0 0 90.7zM306.5 421.9C329 437.4 356.5 448 384 448c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 501.7 417 512 384 512c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 437.2 165.1 448 192 448c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShirt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211.8 0c7.8 0 14.3 5.7 16.7 13.2C240.8 51.9 277.1 80 320 80s79.2-28.1 91.5-66.8C413.9 5.7 420.4 0 428.2 0l12.6 0c22.5 0 44.2 7.9 61.5 22.3L628.5 127.4c6.6 5.5 10.7 13.5 11.4 22.1s-2.1 17.1-7.8 23.6l-56 64c-11.4 13.1-31.2 14.6-44.6 3.5L480 197.7 480 448c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-250.3-51.5 42.9c-13.3 11.1-33.1 9.6-44.6-3.5l-56-64c-5.7-6.5-8.5-15-7.8-23.6s4.8-16.6 11.4-22.1L137.7 22.3C155 7.9 176.7 0 199.2 0l12.6 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShoePrints (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0C352.3 0 256 32 256 32l0 128c48 0 76 16 104 32s56 32 104 32c56.4 0 176-16 176-96S512 0 416 0zM128 96c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64zM288 512c96 0 224-48 224-128s-119.6-96-176-96c-48 0-76 16-104 32s-56 32-104 32l0 128s96.3 32 160 32zM0 416c0 35.3 28.7 64 64 64l32 0 0-128-32 0c-35.3 0-64 28.7-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShopLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36.8 192l412.8 0c20.2-19.8 47.9-32 78.4-32c30.5 0 58.1 12.2 78.3 31.9c18.9-1.6 33.7-17.4 33.7-36.7c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM384 224l-64 0 0 160-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-32 0-128zm144 16c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaShopSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-54.8-43L576 224l-64 0 0 152L384 275.7l0-51.7-64 0 0 1.5L277.2 192l325.9 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L74.1 32.8 38.8 5.1zM36.8 192l85 0L21 112.5 6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM320 384l-192 0 0-160-64 0 0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-65.5-64-50.4 0 35.9z\"},\"child\":[]}]})(props);\n};\nexport function FaShop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M36.8 192l566.3 0c20.3 0 36.8-16.5 36.8-36.8c0-7.3-2.2-14.4-6.2-20.4L558.2 21.4C549.3 8 534.4 0 518.3 0L121.7 0c-16 0-31 8-39.9 21.4L6.2 134.7c-4 6.1-6.2 13.2-6.2 20.4C0 175.5 16.5 192 36.8 192zM64 224l0 160 0 80c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-80 0-160-64 0 0 160-192 0 0-160-64 0zm448 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 131.9C64 112.1 80.1 96 99.9 96c9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.2-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32C44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShrimp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96s28.7 64 64 64l1 0c3.7 88.9 77 160 167 160l56 0 0-192-24 0L88.8 128 64 128c-17.7 0-32-14.3-32-32s14.3-32 32-32l400 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L64 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111c0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6c0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShuttleSpace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M130 480c40.6 0 80.4-11 115.2-31.9L352 384l-224 0 0 96 2 0zM352 128L245.2 63.9C210.4 43 170.6 32 130 32l-2 0 0 96 224 0zM96 128l0-96L80 32C53.5 32 32 53.5 32 80l0 48 8 0c-22.1 0-40 17.9-40 40l0 16L0 328l0 16c0 22.1 17.9 40 40 40l-8 0 0 48c0 26.5 21.5 48 48 48l16 0 0-96 8 0c26.2 0 49.4-12.6 64-32l288 0c69.3 0 135-22.7 179.2-81.6c6.4-8.5 6.4-20.3 0-28.8C591 182.7 525.3 160 456 160l-288 0c-14.6-19.4-37.8-32-64-32l-8 0zM512 243.6l0 24.9c0 19.6-15.9 35.6-35.6 35.6c-2.5 0-4.4-2-4.4-4.4l0-87.1c0-2.5 2-4.4 4.4-4.4c19.6 0 35.6 15.9 35.6 35.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSignHanging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zm96 160l256 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSignal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM448 96c17.7 0 32 14.3 32 32l0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352c0-17.7 14.3-32 32-32zM352 224l0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32s32 14.3 32 32zM192 288c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32zM96 416l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSignature (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 71.9c0 40 32.5 72.5 72.5 72.5c26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3c-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM24 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.3 0c-.2-2.8-.3-5.6-.3-8.5L64 368l-40 0zm592 48c13.3 0 24-10.7 24-24s-10.7-24-24-24l-310.1 0c-6.7 16.3-14.2 32.3-22.3 48L616 416z\"},\"child\":[]}]})(props);\n};\nexport function FaSignsPost (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32L64 32C46.3 32 32 46.3 32 64l0 64c0 17.7 14.3 32 32 32l377.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7L288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 256c0-17.7-14.3-32-32-32l-160 0 0-32-64 0 0 32L70.6 224c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7L448 352c17.7 0 32-14.3 32-32l0-64zM288 480l0-96-64 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSimCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0L242.7 0c17 0 33.3 6.7 45.3 18.7L365.3 96c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0zM96 192c-17.7 0-32 14.3-32 32l0 32 64 0 0-64-32 0zM64 352l80 0 96 0 80 0 0-64-80 0-96 0-80 0 0 64zM320 224c0-17.7-14.3-32-32-32l-32 0 0 64 64 0 0-32zM160 192l0 64 64 0 0-64-64 0zM288 448c17.7 0 32-14.3 32-32l0-32-64 0 0 64 32 0zM160 384l0 64 64 0 0-64-64 0zM64 416c0 17.7 14.3 32 32 32l32 0 0-64-64 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32s14.3 32 32 32s32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-24c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 24-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-24c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 24-64 0 0-192zM480 416l0-32L32 384l0 32c0 53 43 96 96 96l256 0c53 0 96-43 96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaSitemap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaSkullCrossbones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 128c0 44.4-25.4 83.5-64 106.4l0 21.6c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-21.6c-38.6-23-64-62.1-64-106.4C80 57.3 144.5 0 224 0s144 57.3 144 128zM168 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM3.4 273.7c7.9-15.8 27.1-22.2 42.9-14.3L224 348.2l177.7-88.8c15.8-7.9 35-1.5 42.9 14.3s1.5 35-14.3 42.9L295.6 384l134.8 67.4c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L224 419.8 46.3 508.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9L152.4 384 17.7 316.6C1.9 308.7-4.5 289.5 3.4 273.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSkull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 398.9c58.5-41.1 96-104.1 96-174.9C512 100.3 397.4 0 256 0S0 100.3 0 224c0 70.7 37.5 133.8 96 174.9c0 .4 0 .7 0 1.1l0 64c0 26.5 21.5 48 48 48l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 64 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 48 0c26.5 0 48-21.5 48-48l0-64c0-.4 0-.7 0-1.1zM96 256a64 64 0 1 1 128 0A64 64 0 1 1 96 256zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSleigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 160c0 53 43 96 96 96l0 32 64 0 0-32 192 0 0 32 64 0 0-32c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0-32 0c-17.7 0-32 14.3-32 32l0 41.3c0 30.2-24.5 54.7-54.7 54.7c-75.5 0-145.6-38.9-185.6-102.9l-4.3-6.9C174.2 67.6 125 37.6 70.7 32.7c-2.2-.5-4.4-.7-6.7-.7l-9 0L32 32zM640 384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 8c0 13.3-10.7 24-24 24L64 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l488 0c48.6 0 88-39.4 88-88l0-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSmog (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 144c0 79.5 64.5 144 144 144l123.3 0c22.6 19.9 52.2 32 84.7 32s62.1-12.1 84.7-32l27.3 0c61.9 0 112-50.1 112-112s-50.1-112-112-112c-10.7 0-21 1.5-30.8 4.3C443.8 27.7 401.1 0 352 0c-32.6 0-62.4 12.2-85.1 32.3C242.1 12.1 210.5 0 176 0C96.5 0 32 64.5 32 144zM616 368l-336 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-64 96l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zm-192 0L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24zM224 392c0-13.3-10.7-24-24-24L96 368c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c13.3 0 24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSmoking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32l0 11c0 38.2 15.2 74.8 42.2 101.8l21 21c21 21 32.8 49.5 32.8 79.2l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-11c0-12.7-5.1-24.9-14.1-33.9l-21-21C405.9 151.1 384 98.1 384 43l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32zM576 256l0-11c0-38.2-15.2-74.8-42.2-101.8l-21-21c-21-21-32.8-49.5-32.8-79.2l0-11c0-17.7 14.3-32 32-32s32 14.3 32 32l0 11c0 12.7 5.1 24.9 14.1 33.9l21 21c39 39 60.9 91.9 60.9 147.1l0 11c0 17.7-14.3 32-32 32s-32-14.3-32-32zM0 416c0-35.3 28.7-64 64-64l352 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm224 0l0 32 160 0 0-32-160 0zm288-64c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowman (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.1 140.6c-2 3.9-1.6 8.6 1.2 12c7 8.5 12.9 18.1 17.2 28.4L408 160.2l0-40.2c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19.6 22.5-9.7c12.2-5.2 26.3 .4 31.5 12.6s-.4 26.3-12.6 31.5l-56 24-73.6 31.5c-.5 9.5-2.1 18.6-4.8 27.3c-1.2 3.8-.1 8 2.8 10.8C396.7 296.9 416 338.2 416 384c0 44.7-18.3 85-47.8 114.1c-9.9 9.7-23.7 13.9-37.5 13.9l-149.3 0c-13.9 0-27.7-4.2-37.5-13.9C114.3 469 96 428.7 96 384c0-45.8 19.3-87.1 50.1-116.3c2.9-2.8 4-6.9 2.8-10.8c-2.7-8.7-4.3-17.9-4.8-27.3L70.5 198.1l-56-24C2.4 168.8-3.3 154.7 1.9 142.5s19.3-17.8 31.5-12.6L56 139.6 56 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40.2L152.6 181c4.3-10.3 10.1-19.9 17.2-28.4c2.8-3.4 3.3-8.1 1.2-12C164 127.2 160 112.1 160 96c0-53 43-96 96-96s96 43 96 96c0 16.1-4 31.2-10.9 44.6zM224 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm48 128a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm-16 80a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm16 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zM288 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48 24l0 3.2c0 3.2 .8 6.3 2.3 9l9 16.9c.9 1.7 2.7 2.8 4.7 2.8s3.8-1.1 4.7-2.8l9-16.9c1.5-2.8 2.3-5.9 2.3-9l0-3.2c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowplow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.9 64l68.6 160L256 224l-64-64 0-96 106.9 0zM445.1 242.7l-87.4-204C347.6 15.3 324.5 0 298.9 0L176 0c-26.5 0-48 21.5-48 48l0 112-32 0c-17.7 0-32 14.3-32 32l0 106.8C26.2 316.8 0 355.3 0 400c0 61.9 50.1 112 112 112l256 0c61.9 0 112-50.1 112-112c0-17.2-3.9-33.5-10.8-48l42.8 0 0 50.7c0 17 6.7 33.3 18.7 45.3l54.6 54.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L576 402.7l0-82.7 0-84.8L633 164c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-57 71.2c-9.1 11.3-14 25.4-14 40l0 52.8-64 0 0-31.3c.1-2.4-.2-4.8-.6-7.1s-1.2-4.7-2.2-6.8zM368 352c26.5 0 48 21.5 48 48s-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l256 0zM144 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm216 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-56-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM200 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSoap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM416 32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 160c0 27.6-11.7 52.5-30.4 70.1C422.1 275.7 448 310.8 448 352c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96s43-96 96-96l88.4 0c-15.2-17-24.4-39.4-24.4-64L96 192c-53 0-96 43-96 96L0 416c0 53 43 96 96 96l320 0c53 0 96-43 96-96l0-128c0-53-43-96-96-96zM160 288c-35.3 0-64 28.7-64 64s28.7 64 64 64l192 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSocks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175.2 476.6c-9.7-18-15.2-38.7-15.2-60.6c0-40.3 19-78.2 51.2-102.4l64-48c8.1-6 12.8-15.5 12.8-25.6l0-144L128 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C14.2 357.3 0 385.8 0 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l21.6-16.2zM128 64l160 0 0-16c0-14.5 3.9-28.2 10.7-39.9C291 3 281.9 0 272 0L176 0c-26.5 0-48 21.5-48 48l0 16zM320 96l0 144c0 20.1-9.5 39.1-25.6 51.2l-64 48C206.2 357.3 192 385.8 192 416c0 53 43 96 96 96c20.8 0 41-6.7 57.6-19.2l115.2-86.4C493 382.2 512 344.3 512 304l0-208L320 96zM512 64l0-16c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSolarPanel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M122.2 0C91.7 0 65.5 21.5 59.5 51.4L8.3 307.4C.4 347 30.6 384 71 384l217 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 217 0c40.4 0 70.7-36.9 62.8-76.6l-51.2-256C574.5 21.5 548.3 0 517.8 0L122.2 0zM260.9 64l118.2 0 10.4 104-139 0L260.9 64zM202.3 168l-100.8 0L122.2 64l90.4 0L202.3 168zM91.8 216l105.6 0L187.1 320 71 320 91.8 216zm153.9 0l148.6 0 10.4 104-169.4 0 10.4-104zm196.8 0l105.6 0L569 320l-116 0L442.5 216zm96-48l-100.8 0L427.3 64l90.4 0 31.4-6.3L517.8 64l20.8 104z\"},\"child\":[]}]})(props);\n};\nexport function FaSortDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaSortUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaSort (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M137.4 41.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8L32 224c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128zm0 429.3l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l256 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128c-12.5 12.5-32.8 12.5-45.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpa (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.1 235.3c33.7 20.7 62.9 48.1 85.8 80.5c7 9.9 13.4 20.3 19.1 31c5.7-10.8 12.1-21.1 19.1-31c22.9-32.4 52.1-59.8 85.8-80.5C437.6 207.8 490.1 192 546 192l9.9 0c11.1 0 20.1 9 20.1 20.1C576 360.1 456.1 480 308.1 480L288 480l-20.1 0C119.9 480 0 360.1 0 212.1C0 201 9 192 20.1 192l9.9 0c55.9 0 108.4 15.8 153.1 43.3zM301.5 37.6c15.7 16.9 61.1 71.8 84.4 164.6c-38 21.6-71.4 50.8-97.9 85.6c-26.5-34.8-59.9-63.9-97.9-85.6c23.2-92.8 68.6-147.7 84.4-164.6C278 33.9 282.9 32 288 32s10 1.9 13.5 5.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSpaghettiMonsterFlying (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3C390 95.1 384 80.2 384 64c0-35.3 28.7-64 64-64s64 28.7 64 64s-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4c7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4C527.3 262.3 532.7 264 536 264c2.5 0 4.3-.6 7.1-3.3c3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7c9.7-9.3 22.9-16.7 40.4-16.7c13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3c-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7c-9.7 9.3-22.9 16.7-40.4 16.7c-18.5 0-32.9-8.5-44.3-18.6c-3.1 4-6.6 8.3-10.5 12.7c1.4 4.3 2.8 8.5 4 12.5c.9 3 1.8 5.8 2.6 8.6c3 9.8 5.5 18.2 8.6 25.9c3.9 9.8 7.4 15.4 10.8 18.5c2.6 2.4 5.9 4.3 12.8 4.3c8.7 0 16.9-4.2 33.7-13.2c15-8 35.7-18.8 62.3-18.8c13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2c-1 .6-2.1 1.1-3.2 1.7C559.9 414 541.4 424 520 424c-18.4 0-33.6-6.1-45.5-17.2c-11.1-10.3-17.9-23.7-22.7-36c-3.6-9-6.7-19.1-9.5-28.5c-16.4 12.3-36.1 23.6-58.9 31.3c3.6 10.8 8.4 23.5 14.4 36.2c7.5 15.9 16.2 30.4 25.8 40.5C433 460.5 441.2 464 448 464c13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8c-14.5-15.4-25.7-34.9-34.2-53c-8-17-14.1-33.8-18.3-46.9c-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9c-8.5 18.1-19.8 37.6-34.2 53C237 498.5 217.2 512 192 512c-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7c9.5-10.1 18.3-24.6 25.8-40.5c5.9-12.6 10.7-25.4 14.4-36.2c-22.8-7.7-42.5-19-58.9-31.3c-2.9 9.4-6 19.5-9.5 28.5c-4.8 12.2-11.6 25.6-22.7 36C153.6 417.9 138.4 424 120 424c-21.4 0-39.9-10-53.1-17.1c0 0 0 0 0 0c-1.1-.6-2.2-1.2-3.2-1.7c-15-8-26.3-13.2-39.7-13.2c-13.3 0-24-10.7-24-24s10.7-24 24-24c26.6 0 47.3 10.8 62.3 18.8c16.8 9 25 13.2 33.7 13.2c6.8 0 10.2-1.9 12.8-4.3c3.4-3.2 7-8.8 10.8-18.5c3-7.7 5.6-16.1 8.6-25.9c.8-2.7 1.7-5.6 2.6-8.6c1.2-4 2.6-8.2 4-12.5c-3.9-4.5-7.4-8.8-10.5-12.7C136.9 303.5 122.5 312 104 312c-17.5 0-30.7-7.4-40.4-16.7c-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4c-2.8-2.7-4.6-3.3-7.1-3.3c-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7c8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4c2.8 2.7 4.6 3.3 7.1 3.3c3.3 0 8.7-1.7 19.4-13.4c5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24c13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2c-35.3 0-64-28.7-64-64s28.7-64 64-64s64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpellCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z\"},\"child\":[]}]})(props);\n};\nexport function FaSpider (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.4 32.6c4.8-12.4-1.4-26.3-13.8-31s-26.3 1.4-31 13.8L81.1 100c-7.9 20.7-3 44.1 12.7 59.7l57.4 57.4L70.8 190.3c-2.4-.8-4.3-2.7-5.1-5.1L46.8 128.4C42.6 115.8 29 109 16.4 113.2S-3 131 1.2 143.6l18.9 56.8c5.6 16.7 18.7 29.8 35.4 35.4L116.1 256 55.6 276.2c-16.7 5.6-29.8 18.7-35.4 35.4L1.2 368.4C-3 381 3.8 394.6 16.4 398.8s26.2-2.6 30.4-15.2l18.9-56.8c.8-2.4 2.7-4.3 5.1-5.1l80.4-26.8L93.7 352.3C78.1 368 73.1 391.4 81.1 412l32.5 84.6c4.8 12.4 18.6 18.5 31 13.8s18.5-18.6 13.8-31l-32.5-84.6c-1.1-3-.4-6.3 1.8-8.5L160 353.9c1 52.1 43.6 94.1 96 94.1s95-41.9 96-94.1l32.3 32.3c2.2 2.2 2.9 5.6 1.8 8.5l-32.5 84.6c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8L430.9 412c7.9-20.7 3-44.1-12.7-59.7l-57.4-57.4 80.4 26.8c2.4 .8 4.3 2.7 5.1 5.1l18.9 56.8c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-18.9-56.8c-5.6-16.7-18.7-29.8-35.4-35.4L395.9 256l60.5-20.2c16.7-5.6 29.8-18.7 35.4-35.4l18.9-56.8c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-18.9 56.8c-.8 2.4-2.7 4.3-5.1 5.1l-80.4 26.8 57.4-57.4c15.6-15.6 20.6-39 12.7-59.7L398.4 15.4C393.6 3 379.8-3.2 367.4 1.6s-18.5 18.6-13.8 31l32.5 84.6c1.1 3 .4 6.3-1.8 8.5L336 174.1l0-14.1c0-31.8-18.6-59.3-45.5-72.2c-9.1-4.4-18.5 3.3-18.5 13.4l0 10.8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-10.8c0-10.1-9.4-17.7-18.5-13.4C194.6 100.7 176 128.2 176 160l0 14.1-48.3-48.3c-2.2-2.2-2.9-5.6-1.8-8.5l32.5-84.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSpinner (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z\"},\"child\":[]}]})(props);\n};\nexport function FaSplotch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0c28.5 0 53.6 18.7 61.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2c0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6c-14.8 0-29.3-5.1-40.8-14.3l-55.4-44.3c-4.5-3.6-9.3-6.7-14.5-9.2c-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9C47.8 458.2 16 431.6 16 396.5c0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1c0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9c0-33.4 30.1-58.8 63-53.2l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSpoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8C224 80 320 0 416 0c53 0 96 43 96 96c0 96-80 192-160.2 192c-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSprayCanSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32l0 96 128 0 0-96c0-17.7-14.3-32-32-32L128 0C110.3 0 96 14.3 96 32zm0 128c-53 0-96 43-96 96L0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96L96 160zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM384 48c0-1.4-1-3-2.2-3.6L352 32 339.6 2.2C339 1 337.4 0 336 0s-3 1-3.6 2.2L320 32 290.2 44.4C289 45 288 46.6 288 48c0 1.4 1 3 2.2 3.6L320 64l12.4 29.8C333 95 334.6 96 336 96s3-1 3.6-2.2L352 64l29.8-12.4C383 51 384 49.4 384 48zm76.4 45.8C461 95 462.6 96 464 96s3-1 3.6-2.2L480 64l29.8-12.4C511 51 512 49.4 512 48c0-1.4-1-3-2.2-3.6L480 32 467.6 2.2C467 1 465.4 0 464 0s-3 1-3.6 2.2L448 32 418.2 44.4C417 45 416 46.6 416 48c0 1.4 1 3 2.2 3.6L448 64l12.4 29.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L448 224l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L448 256l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 256l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6c0-1.4-1-3-2.2-3.6L480 224l-12.4-29.8zM448 144c0-1.4-1-3-2.2-3.6L416 128 403.6 98.2C403 97 401.4 96 400 96s-3 1-3.6 2.2L384 128l-29.8 12.4c-1.2 .6-2.2 2.2-2.2 3.6c0 1.4 1 3 2.2 3.6L384 160l12.4 29.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L416 160l29.8-12.4c1.2-.6 2.2-2.2 2.2-3.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSprayCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0l64 0c17.7 0 32 14.3 32 32l0 96L96 128l0-96c0-17.7 14.3-32 32-32zM0 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 256zm240 80A80 80 0 1 0 80 336a80 80 0 1 0 160 0zM256 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM448 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM384 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l94.1 0L119 327c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135L288 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24l-152 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM218 271.7L64.2 172.4C66 156.4 79.5 144 96 144l256 0c16.5 0 30 12.4 31.8 28.4L230 271.7c-1.8 1.2-3.9 1.8-6 1.8s-4.2-.6-6-1.8zm29.4 26.9L384 210.4 384 336c0 17.7-14.3 32-32 32L96 368c-17.7 0-32-14.3-32-32l0-125.6 136.6 88.2c7 4.5 15.1 6.9 23.4 6.9s16.4-2.4 23.4-6.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 0H512V512H0V0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareH (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM336 152l0 104 0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80-128 0 0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80 128 0 0-80c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareNfi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm75.7 64.6C68.8 162.5 64 168.8 64 176l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-102.2 66.3 110.5c3.7 6.2 11.1 9.1 18 7.2s11.7-8.2 11.7-15.4l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 102.2L93.7 167.8c-3.7-6.2-11.1-9.1-18-7.2zM224 176l0 64 0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-32 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zm160 0c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 8.8 7.2 16 16 16s16-7.2 16-16l0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareParking (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64 0-120c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePersonConfined (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9c-17.5 0-34.3-6.9-46.6-19.3L184.8 342l-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9L240 306.7l0-58.7z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePhoneFlip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zm-90.7 96.7c-9.7-2.6-19.9 2.3-23.7 11.6l-20 48c-3.4 8.2-1 17.6 5.8 23.2L280 231.7c-16.6 35.2-45.1 63.7-80.3 80.3l-20.2-24.7c-5.6-6.8-15-9.2-23.2-5.8l-48 20c-9.3 3.9-14.2 14-11.6 23.7l12 44C111.1 378 119 384 128 384c123.7 0 224-100.3 224-224c0-9-6-16.9-14.7-19.3l-44-12z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90.7 96.7c9.7-2.6 19.9 2.3 23.7 11.6l20 48c3.4 8.2 1 17.6-5.8 23.2L168 231.7c16.6 35.2 45.1 63.7 80.3 80.3l20.2-24.7c5.6-6.8 15-9.2 23.2-5.8l48 20c9.3 3.9 14.2 14 11.6 23.7l-12 44C336.9 378 329 384 320 384C196.3 384 96 283.7 96 160c0-9 6-16.9 14.7-19.3l44-12z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePollHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 160c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32zm64 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0zM192 352c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarePollVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 192c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zm64-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192zM320 288c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareRootVariable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8L282.6 78.1zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0L480 274.7l41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 320l41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L480 365.3l-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L434.7 320l-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24c137 0 248 111 248 248c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24c83.9 0 152 68.1 152 152c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104c-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareShareNodes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM384 160c0 35.3-28.7 64-64 64c-15.4 0-29.5-5.4-40.6-14.5L194.1 256l85.3 46.5c11-9.1 25.2-14.5 40.6-14.5c35.3 0 64 28.7 64 64s-28.7 64-64 64s-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L174.5 300c-11.7 12.3-28.2 20-46.5 20c-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3c0-35.3 28.7-64 64-64s64 28.7 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM160 160c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l40 40-71 71C114 302 112 306.9 112 312s2 10 5.7 13.7l36.7 36.7c3.6 3.6 8.5 5.7 13.7 5.7s10-2 13.7-5.7l71-71 40 40c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-144c0-8.8-7.2-16-16-16l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM223.8 93.7c13.3 0 24 10.7 24 24c0 29.3 35.4 43.9 56.1 23.2c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.7 20.7-6 56.1 23.2 56.1c13.3 0 24 10.7 24 24s-10.7 24-24 24c-29.3 0-43.9 35.4-23.2 56.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.7-20.7-56.1-6-56.1 23.2c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-29.3-35.4-43.9-56.1-23.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.7-20.7 6-56.1-23.2-56.1c-13.3 0-24-10.7-24-24s10.7-24 24-24c29.3 0 43.9-35.4 23.2-56.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.7 20.7 56.1 6 56.1-23.2c0-13.3 10.7-24 24-24zM192 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm88 32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z\"},\"child\":[]}]})(props);\n};\nexport function FaStaffSnake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M222.6 43.2l-.1 4.8L288 48c53 0 96 43 96 96s-43 96-96 96l-40 0 0-80 40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-28 0-4.5 144 40.5 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-80 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-43 0-3.1 99.5L208.5 495l0 1c-.3 8.9-7.6 16-16.5 16s-16.2-7.1-16.5-16l0-1-1-31L136 464c-22.1 0-40-17.9-40-40s17.9-40 40-40l36 0-1-32-19 0c-53 0-96-43-96-96c0-47.6 34.6-87.1 80-94.7l0 94.7c0 8.8 7.2 16 16 16l16.5 0L164 128l-28 0-13.4 0c-9 18.9-28.3 32-50.6 32l-16 0c-30.9 0-56-25.1-56-56S25.1 48 56 48l8 0 8 0 89.5 0-.1-4.8L161 32c0-.7 0-1.3 0-1.9c.5-16.6 14.1-30 31-30s30.5 13.4 31 30c0 .6 0 1.3 0 1.9l-.4 11.2zM64 112a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaStairs (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaStamp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 201.8c0-17.4 9.2-33.2 19.9-47C344.5 138.5 352 118.1 352 96c0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8c10.7 13.8 19.9 29.6 19.9 47c0 29.9-24.3 54.2-54.2 54.2L112 256C50.1 256 0 306.1 0 368c0 20.9 13.4 38.7 32 45.3L32 464c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-50.7c18.6-6.6 32-24.4 32-45.3c0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM416 416l0 32L96 448l0-32 320 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStapler (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 299.3l0 4.7 0 128c0 26.5-21.5 48-48 48l-80 0-64 0L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48L96 368c-17.7 0-32-14.3-32-32l0-116.6L33.8 214C14.2 210.5 0 193.5 0 173.7c0-8.9 2.9-17.5 8.2-24.6l35.6-47.5C76.7 57.8 128.2 32 182.9 32c27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16L128 230.9l0 73.1 320 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarAndCrescent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256C0 114.6 114.6 0 256 0c33 0 64.6 6.3 93.6 17.7c7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5c-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5c7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512C114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalfStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 376.4l.1-.1 26.4 14.1 85.2 45.5-16.5-97.6-4.8-28.7 20.7-20.5 70.1-69.3-96.1-14.2-29.3-4.3-12.9-26.6L288.1 86.9l-.1 .3 0 289.2zm175.1 98.3c2 12-3 24.2-12.9 31.3s-23 8-33.8 2.3L288.1 439.8 159.8 508.3C149 514 135.9 513.1 126 506s-14.9-19.3-12.9-31.3L137.8 329 33.6 225.9c-8.6-8.5-11.7-21.2-7.9-32.7s13.7-19.9 25.7-21.7L195 150.3 259.4 18c5.4-11 16.5-18 28.8-18s23.4 7 28.8 18l64.3 132.3 143.6 21.2c12 1.8 22 10.2 25.7 21.7s.7 24.2-7.9 32.7L438.5 329l24.6 145.7z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-12.2 .1-23.3 7-28.6 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3L288 439.8 288 0zM429.9 512c1.1 .1 2.1 .1 3.2 0l-3.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfDavid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M404.2 309.5L383.1 344l42.3 0-21.1-34.5zM371.4 256l-54-88-122.8 0-54 88 54 88 122.8 0 54-88zm65.7 0l53.4 87c3.6 5.9 5.5 12.7 5.5 19.6c0 20.7-16.8 37.4-37.4 37.4l-109.8 0-56.2 91.5C284.8 504.3 270.9 512 256 512s-28.8-7.7-36.6-20.5L163.3 400 53.4 400C32.8 400 16 383.2 16 362.6c0-6.9 1.9-13.7 5.5-19.6l53.4-87L21.5 169c-3.6-5.9-5.5-12.7-5.5-19.6C16 128.8 32.8 112 53.4 112l109.8 0 56.2-91.5C227.2 7.7 241.1 0 256 0s28.8 7.7 36.6 20.5L348.7 112l109.8 0c20.7 0 37.4 16.8 37.4 37.4c0 6.9-1.9 13.7-5.5 19.6l-53.4 87zm-54-88l21.1 34.5L425.4 168l-42.3 0zM283 112L256 68l-27 44 54 0zM128.9 168l-42.3 0 21.1 34.5L128.9 168zM107.8 309.5L86.6 344l42.3 0-21.1-34.5zM229 400l27 44 27-44-54 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfLife (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7L352 256l122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7L304 339.1 304 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9L86 409.6c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7L160 256 38 185.6c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7C51.1 98.8 70.7 93.6 86 102.4l122 70.4L208 32z\"},\"child\":[]}]})(props);\n};\nexport function FaStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaSterlingSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 160.4c0-35.5 28.8-64.4 64.4-64.4c6.9 0 13.8 1.1 20.4 3.3l81.2 27.1c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L217 38.6c-13.1-4.4-26.8-6.6-40.6-6.6C105.5 32 48 89.5 48 160.4L48 224l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 44.5c0 17.4-4.7 34.5-13.7 49.4L4.6 431.5c-5.9 9.9-6.1 22.2-.4 32.2S20.5 480 32 480l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L88.5 416l.7-1.1C104.1 390 112 361.5 112 332.5l0-44.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-112 0 0-63.6z\"},\"child\":[]}]})(props);\n};\nexport function FaStethoscope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch20 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L176 0zM288 204c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12zM159.5 244c-5.4 0-10.2 3.5-11.9 8.6l-.6 1.7c-3.5 10.5-14.8 16.1-25.3 12.6s-16.1-14.8-12.6-25.3l.6-1.7c7.2-21.5 27.2-35.9 49.8-35.9c29 0 52.5 23.5 52.5 52.5l0 2.2c0 13.4-4.9 26.4-13.8 36.4l-39 43.9c-6.2 7-10 15.7-10.9 24.9l43.8 0c11 0 20 9 20 20s-9 20-20 20l-64 0c-11 0-20-9-20-20l0-15.7c0-20.6 7.5-40.4 21.2-55.8l39-43.9c2.4-2.7 3.7-6.2 3.7-9.8l0-2.2c0-6.9-5.6-12.5-12.5-12.5z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 34.4C92.3 113.8 16 200 16 304c0 114.9 93.1 208 208 208s208-93.1 208-208c0-41.8-12.3-80.7-33.5-113.2l24.1-24.1c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L355.7 143c-28.1-23-62.2-38.8-99.7-44.6L256 64l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L224 0 176 0zm72 192l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.8-68 0-17.1 0-131.4c-4 1-8 1.8-12.3 2.3c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3l0 100.3L301.2 210.7c7-4.4 13.3-9.7 18.8-15.7c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4L522.3 13.1C517.2 5 508.1 0 498.4 0L141.6 0c-9.7 0-18.8 5-23.9 13.1l-22.7 36L38.8 5.1zm73.4 218.1c4 .5 8.1 .8 12.1 .8c11 0 21.4-2 31-5.6L48.9 134.5c-6.1 40.6 19.5 82.8 63.3 88.7zM160 384l0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L96 384l0 64c0 35.3 28.7 64 64 64l320 0c12.9 0 24.8-3.8 34.9-10.3L365.5 384 160 384z\"},\"child\":[]}]})(props);\n};\nexport function FaStore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M547.6 103.8L490.3 13.1C485.2 5 476.1 0 466.4 0L109.6 0C99.9 0 90.8 5 85.7 13.1L28.3 103.8c-29.6 46.8-3.4 111.9 51.9 119.4c4 .5 8.1 .8 12.1 .8c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.1 0 49.3-11.4 65.2-29c15.9 17.6 39.1 29 65.2 29c26.2 0 49.3-11.4 65.2-29c16 17.6 39.1 29 65.2 29c4.1 0 8.1-.3 12.1-.8c55.5-7.4 81.8-72.5 52.1-119.4zM499.7 254.9c0 0 0 0-.1 0c-5.3 .7-10.7 1.1-16.2 1.1c-12.4 0-24.3-1.9-35.4-5.3L448 384l-320 0 0-133.4c-11.2 3.5-23.2 5.4-35.6 5.4c-5.5 0-11-.4-16.3-1.1l-.1 0c-4.1-.6-8.1-1.3-12-2.3L64 384l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64 0-131.4c-4 1-8 1.8-12.3 2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaStreetView (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64A64 64 0 1 0 192 64a64 64 0 1 0 128 0zm-96 96c-35.3 0-64 28.7-64 64l0 48c0 17.7 14.3 32 32 32l1.8 0 11.1 99.5c1.8 16.2 15.5 28.5 31.8 28.5l38.7 0c16.3 0 30-12.3 31.8-28.5L318.2 304l1.8 0c17.7 0 32-14.3 32-32l0-48c0-35.3-28.7-64-64-64l-64 0zM132.3 394.2c13-2.4 21.7-14.9 19.3-27.9s-14.9-21.7-27.9-19.3c-32.4 5.9-60.9 14.2-82 24.8c-10.5 5.3-20.3 11.7-27.8 19.6C6.4 399.5 0 410.5 0 424c0 21.4 15.5 36.1 29.1 45c14.7 9.6 34.3 17.3 56.4 23.4C130.2 504.7 190.4 512 256 512s125.8-7.3 170.4-19.6c22.1-6.1 41.8-13.8 56.4-23.4c13.7-8.9 29.1-23.6 29.1-45c0-13.5-6.4-24.5-14-32.6c-7.5-7.9-17.3-14.3-27.8-19.6c-21-10.6-49.5-18.9-82-24.8c-13-2.4-25.5 6.3-27.9 19.3s6.3 25.5 19.3 27.9c30.2 5.5 53.7 12.8 69 20.5c3.2 1.6 5.8 3.1 7.9 4.5c3.6 2.4 3.6 7.2 0 9.6c-8.8 5.7-23.1 11.8-43 17.3C374.3 457 318.5 464 256 464s-118.3-7-157.7-17.9c-19.9-5.5-34.2-11.6-43-17.3c-3.6-2.4-3.6-7.2 0-9.6c2.1-1.4 4.8-2.9 7.9-4.5c15.3-7.7 38.8-14.9 69-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaStrikethrough (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z\"},\"child\":[]}]})(props);\n};\nexport function FaStroopwafel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3L86.3 199.4c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L256 414.4l33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L414.4 256l33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3L233.4 256l-45.3 45.3L142.9 256zm67.9 67.9L256 278.6l45.3 45.3L256 369.1l-45.3-45.3zM278.6 256l45.3-45.3L369.1 256l-45.3 45.3L278.6 256zm22.6-67.9L256 233.4l-45.3-45.3L256 142.9l45.3 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSubscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcaseMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40 0 32 0 352 256 0 0-352 0-32 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM96 96L64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0L96 96zM416 480l32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0 0 384zM224 208c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcaseRolling (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 56c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zm176 72l-32 0 0-72c0-30.9-25.1-56-56-56L152 0C121.1 0 96 25.1 96 56l0 72-32 0c-35.3 0-64 28.7-64 64L0 416c0 35.3 28.7 64 64 64c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64zM112 224l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 128l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 0 32 0 352-256 0 0-352 0-32zM64 96l32 0 0 384-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64zM448 480l-32 0 0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSunPlantWilt (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 0c-6.3 0-12 3.7-14.6 9.5L120.6 64.9 63.9 43.2c-5.9-2.3-12.6-.8-17 3.6s-5.9 11.1-3.6 17l21.7 56.7L9.5 145.4C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8L43.2 256.1c-2.3 5.9-.8 12.6 3.6 17s11.1 5.9 17 3.6l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.7 21.7c5.9 2.3 12.6 .8 17-3.6s5.9-11.1 3.6-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7c2.3-5.9 .8-12.6-3.6-17s-11.1-5.9-17-3.6L199.4 64.9 174.6 9.5C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm312 16c0-17.7 14.3-32 32-32s32 14.3 32 32l0 53.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C624 318 640 290.7 640 274c0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7c-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.7-24 23.1-24 44.6c0 16.8 16 44 37.4 67.2c5.8 6.2 15.5 6.2 21.2 0C400 382 416 354.7 416 338c0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 8 0 168L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-168 0-8 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperscript (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSwatchbook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32C0 14.3 14.3 0 32 0L160 0c17.7 0 32 14.3 32 32l0 384c0 53-43 96-96 96s-96-43-96-96L0 32zM223.6 425.9c.3-3.3 .4-6.6 .4-9.9l0-262 75.4-75.4c12.5-12.5 32.8-12.5 45.3 0l90.5 90.5c12.5 12.5 12.5 32.8 0 45.3L223.6 425.9zM182.8 512l192-192L480 320c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-297.2 0zM128 64L64 64l0 64 64 0 0-64zM64 192l0 64 64 0 0-64-64 0zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSynagogue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 3.7c5.9-4.9 14.6-4.9 20.5 0l121 100.8C469.5 119.7 480 142.2 480 166l0 114.1L480 512l-16 0-112 0 0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96-112 0-16 0 0-231.9L160 166c0-23.7 10.5-46.3 28.8-61.5L309.8 3.7zM512 512l0-267.5 28.1-31.2c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3l63.8 70.9c7.9 8.8 12.3 20.3 12.3 32.1L640 448c0 35.3-28.7 64-64 64l-64 0zM128 244.5L128 512l-64 0c-35.3 0-64-28.7-64-64L0 316.3c0-11.9 4.4-23.3 12.3-32.1l63.8-70.9c3-3.4 7.4-5.3 11.9-5.3s8.9 1.9 11.9 5.3L128 244.5zM327 124.3c-3.1-5.4-10.9-5.4-13.9 0l-15.9 28.1-32.3-.3c-6.2-.1-10.1 6.7-7 12.1L274.3 192l-16.4 27.8c-3.2 5.4 .7 12.1 7 12.1l32.3-.3L313 259.7c3.1 5.4 10.9 5.4 13.9 0l15.9-28.1 32.3 .3c6.2 .1 10.1-6.7 7-12.1L365.7 192l16.4-27.8c3.2-5.4-.7-12.1-7-12.1l-32.3 .3L327 124.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSyringe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441 7l32 32 32 32c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15L417.9 128l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72L295 73c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l55 55L422.1 56 407 41c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0zM210.3 155.7l61.1-61.1c.3 .3 .6 .7 1 1l16 16 56 56 56 56 16 16c.3 .3 .6 .6 1 1l-191 191c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-88.8c0-14.9 5.9-29.1 16.4-39.6l43.3-43.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57z\"},\"child\":[]}]})(props);\n};\nexport function FaT (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsColumnLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zm208 0l0 64 88 0 0-64-88 0zm240 0l-88 0 0 64 88 0 0-64zM208 224l0 64 88 0 0-64-88 0zm0 128l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96l0 128-160 0 0-128 160 0zm0 192l0 128-160 0 0-128 160 0zM224 224L64 224 64 96l160 0 0 128zM64 288l160 0 0 128L64 416l0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsRowLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zM528 240c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zm-80 32c0-44.2 35.8-80 80-80s80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCellsRowUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 65.1c-37.8 5.4-69.4 29.6-85.2 62.9L360 224l0 64 56 0 0 8.6c-19.1 11.1-32 31.7-32 55.4l-24 0 0 64 24 0 0 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 224l0 64 88 0 0-64-88 0zm232 0l-88 0 0 64 88 0 0-64zM152 352l-88 0 0 64 88 0 0-64zm56 0l0 64 88 0 0-64-88 0zm288-80l0 48 32 0 32 0 48 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32l0-48c0-44.2 35.8-80 80-80s80 35.8 80 80l-48 0c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTableCells (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 64l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0zM64 224l88 0 0 64-88 0 0-64zm232 0l0 64-88 0 0-64 88 0zm64 0l88 0 0 64-88 0 0-64zM152 352l0 64-88 0 0-64 88 0zm56 0l88 0 0 64-88 0 0-64zm240 0l0 64-88 0 0-64 88 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTableColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z\"},\"child\":[]}]})(props);\n};\nexport function FaTableList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTableTennisPaddleBall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 288c-50.1 0-93.6 28.8-114.6 70.8L68.9 126.3l.6-.6 60.1-60.1c87.5-87.5 229.3-87.5 316.8 0c67.1 67.1 82.7 166.3 46.8 248.3C471.8 297.6 445 288 416 288zM49.3 151.9L290.1 392.7c-1.4 7.5-2.1 15.3-2.1 23.3c0 23.2 6.2 44.9 16.9 63.7c-3 .2-6.1 .3-9.2 .3l-2.7 0c-33.9 0-66.5-13.5-90.5-37.5l-9.8-9.8c-13.1-13.1-34.6-12.4-46.8 1.7L88.2 501c-5.8 6.7-14.2 10.7-23 11s-17.5-3.1-23.8-9.4l-32-32C3.1 464.3-.3 455.7 0 446.9s4.3-17.2 11-23l66.6-57.7c14-12.2 14.8-33.7 1.7-46.8l-9.8-9.8C45.5 285.5 32 252.9 32 219l0-2.7c0-22.8 6.1-44.9 17.3-64.3zM416 320a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTabletButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTabletScreenButton (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64L64 64l0 320 320 0 0-320z\"},\"child\":[]}]})(props);\n};\nexport function FaTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 432l96 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTablets (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M614.3 247c-5.2 7.9-16.2 8.5-22.9 1.8L391.2 48.6c-6.7-6.7-6.2-17.8 1.8-22.9C418.1 9.4 447.9 0 480 0c88.4 0 160 71.6 160 160c0 32.1-9.4 61.9-25.7 87zM567 294.3c-25 16.3-54.9 25.7-87 25.7c-88.4 0-160-71.6-160-160c0-32.1 9.4-61.9 25.7-87c5.2-7.9 16.2-8.5 22.9-1.8L568.8 271.4c6.7 6.7 6.2 17.8-1.8 22.9zM301.5 368c9.5 0 16.9 8.2 15 17.5C301.1 457.8 236.9 512 160 512S18.9 457.8 3.5 385.5c-2-9.3 5.5-17.5 15-17.5l283.1 0zm0-32L18.5 336c-9.5 0-16.9-8.2-15-17.5C18.9 246.2 83.1 192 160 192s141.1 54.2 156.5 126.5c2 9.3-5.5 17.5-15 17.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTachographDigital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l512 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm32 64l224 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM64 368c0-8.8 7.2-16 16-16l256 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16zm320 0c0-8.8 7.2-16 16-16l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16zM80 288a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm48 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zm80-16a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTags (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4 0-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5L0 80C0 53.5 21.5 32 48 32l149.5 0c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTape (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.8 416c41.5-40.7 67.2-97.3 67.2-160C448 132.3 347.7 32 224 32S0 132.3 0 256S100.3 480 224 480l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-163.2 0zM224 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm64 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTarpDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 160c-35.3 0-64-26.9-64-60c0-24 33.7-70.1 52.2-93.5c6.1-7.7 17.5-7.7 23.6 0C318.3 29.9 352 76 352 100c0 33.1-28.7 60-64 60zM64 128l133.5 0c13.2 37.3 48.7 64 90.5 64s77.4-26.7 90.5-64L512 128c35.3 0 64 28.7 64 64l0 160-128 0c-17.7 0-32 14.3-32 32l0 128L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64zM448 512l0-128 128 0L448 512zM96 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaTarp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 128c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l352 0 0-128c0-17.7 14.3-32 32-32l128 0 0-160zM448 448L576 320l-128 0 0 128zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTaxi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c-17.7 0-32 14.3-32 32l0 32 0 .2c-38.6 2.2-72.3 27.3-85.2 64.1L39.6 228.8C16.4 238.4 0 261.3 0 288L0 432l0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 320 0 0 48c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-48 0-144c0-26.7-16.4-49.6-39.6-59.2L437.2 128.3c-12.9-36.8-46.6-62-85.2-64.1l0-.2 0-32c0-17.7-14.3-32-32-32L192 0zM165.4 128l181.2 0c13.6 0 25.7 8.6 30.2 21.4L402.9 224l-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zM96 288a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTeethOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C43 32 0 75 0 128l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-53-43-96-96-96L96 32zM224 96c26.5 0 48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56c0-26.5 21.5-48 48-48zm80 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56zM96 128c26.5 0 48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24c0-26.5 21.5-48 48-48zm336 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM96 480l384 0c53 0 96-43 96-96l0-32c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 32c0 53 43 96 96 96zm0-64c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48zm176 48c-26.5 0-48-21.5-48-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48zm80-48l0-24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24c0 26.5-21.5 48-48 48s-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTeeth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 75 43 32 96 32l384 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 128zm176 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48s-48 21.5-48 48zm176-48c-26.5 0-48 21.5-48 48l0 56c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-56c0-26.5-21.5-48-48-48zM48 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM96 384c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24zm176 48c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48zm80-176l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm48 176c26.5 0 48-21.5 48-48l0-24c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 24c0 26.5 21.5 48 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3l0-50.7c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 50.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zm336-64l-32 0 0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C249.8 332.6 256 349.5 256 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L128 112zM176 0C114.1 0 64 50.1 64 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C43.2 304.2 32 334.8 32 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L288 112C288 50.1 237.9 0 176 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L192 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48zM480 160l32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C233.8 332.6 240 349.5 240 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9c8.2-10.6 15.3-25.2 15.3-42.5L112 112zM160 0C98.1 0 48 50.2 48 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C27.2 304.2 16 334.8 16 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L272 112C272 50.2 221.9 0 160 0zm0 416a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 210.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 208c0-8.8 7.2-16 16-16s16 7.2 16 16l0 114.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 128A96 96 0 1 0 416 0a96 96 0 1 0 0 192zM96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 164.5c0 17.3 7.1 31.9 15.3 42.5C217.8 332.6 224 349.5 224 368c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-18.5 6.2-35.4 16.7-48.9C88.9 308.4 96 293.8 96 276.5L96 112zM144 0C82.1 0 32 50.2 32 112l0 164.4c0 .1-.1 .3-.2 .6c-.2 .6-.8 1.6-1.7 2.8C11.2 304.2 0 334.8 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.2-11.2-63.8-30.1-88.1c-.9-1.2-1.5-2.2-1.7-2.8c-.1-.3-.2-.5-.2-.6L256 112C256 50.2 205.9 0 144 0zm0 416c26.5 0 48-21.5 48-48c0-20.9-13.4-38.7-32-45.3L160 112c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 210.7c-18.6 6.6-32 24.4-32 45.3c0 26.5 21.5 48 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 96a96 96 0 1 1 192 0A96 96 0 1 1 320 96zM144 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C70.2 332.6 64 349.5 64 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L192 112c0-26.5-21.5-48-48-48zM32 112C32 50.2 82.1 0 144 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S0 447.5 0 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L32 112zM192 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureQuarter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3l0-50.7c0-8.8 7.2-16 16-16s16 7.2 16 16l0 50.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureThreeQuarters (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c-26.5 0-48 21.5-48 48l0 164.5c0 17.3-7.1 31.9-15.3 42.5C86.2 332.6 80 349.5 80 368c0 44.2 35.8 80 80 80s80-35.8 80-80c0-18.5-6.2-35.4-16.7-48.9c-8.2-10.6-15.3-25.2-15.3-42.5L208 112c0-26.5-21.5-48-48-48zM48 112C48 50.2 98.1 0 160 0s112 50.1 112 112l0 164.4c0 .1 .1 .3 .2 .6c.2 .6 .8 1.6 1.7 2.8c18.9 24.4 30.1 55 30.1 88.1c0 79.5-64.5 144-144 144S16 447.5 16 368c0-33.2 11.2-63.8 30.1-88.1c.9-1.2 1.5-2.2 1.7-2.8c.1-.3 .2-.5 .2-.6L48 112zM208 368c0 26.5-21.5 48-48 48s-48-21.5-48-48c0-20.9 13.4-38.7 32-45.3L144 144c0-8.8 7.2-16 16-16s16 7.2 16 16l0 178.7c18.6 6.6 32 24.4 32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTengeSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM0 192c0-17.7 14.3-32 32-32l160 0 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224L32 224c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowDownToLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M241.8 111.9c8.9 9.9 8.1 25-1.8 33.9l-80 72c-9.1 8.2-23 8.2-32.1 0l-80-72c-9.9-8.9-10.7-24-1.8-33.9s24-10.7 33.9-1.8l39.9 36L120 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 122.1 39.9-36c9.9-8.9 25-8.1 33.9 1.8zm122.8 22.6c11.5-8.7 27.3-8.7 38.8 0l168 128c6.6 5 11 12.5 12.3 20.7l24 160 .7 4.7c17.5 .2 31.6 14.4 31.6 32c0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l127.6 0 .7-4.7 24-160c1.2-8.2 5.6-15.7 12.3-20.7l168-128zM384 448l80 0L402.7 325.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L384 448z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.1 6.2c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9L489.5 72 86.5 72l33.5-30.2c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120l402.9 0-33.5 30.2c-9.9 8.9-10.7 24-1.8 33.9s24 10.7 33.9 1.8l80-72c5.1-4.6 7.9-11 7.9-17.8s-2.9-13.3-7.9-17.8l-80-72zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowTurnLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.1 41.8c9.9-8.9 10.7-24 1.8-33.9S97.8-2.7 87.9 6.2l-80 72C2.9 82.7 0 89.2 0 96s2.9 13.3 7.9 17.8l80 72c9.9 8.9 25 8.1 33.9-1.8s8.1-25-1.8-33.9L86.5 120 456 120c39.8 0 72 32.2 72 72l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-66.3-53.7-120-120-120L86.5 72l33.5-30.2zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTentArrowsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.8 111.9c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L136 24c0-13.3-10.7-24-24-24S88 10.7 88 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zm352 0c-8.9-9.9-24-10.7-33.9-1.8l-39.9 36L488 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 122.1-39.9-36c-9.9-8.9-25-8.1-33.9 1.8s-8.1 25 1.8 33.9l80 72c9.1 8.2 23 8.2 32.1 0l80-72c9.9-8.9 10.7-24 1.8-33.9zM307.4 166.5c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S86.7 512 96 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.4 6C280.5-2 295.5-2 306.6 6l224 160c7.4 5.3 12.2 13.5 13.2 22.5l32 288c1 9-1.9 18.1-8 24.9s-14.7 10.7-23.8 10.7l-80 0-28.2 0c-12.1 0-23.2-6.8-28.6-17.7L306.7 293.5c-1.7-3.4-5.1-5.5-8.8-5.5c-5.5 0-9.9 4.4-9.9 9.9L288 480c0 17.7-14.3 32-32 32l-16 0L32 512c-9.1 0-17.8-3.9-23.8-10.7s-9-15.8-8-24.9l32-288c1-9 5.8-17.2 13.2-22.5L269.4 6z\"},\"child\":[]}]})(props);\n};\nexport function FaTents (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396.6 6.5L235.8 129.1c9.6 1.8 18.9 5.8 27 12l168 128c13.2 10.1 22 24.9 24.5 41.4l6.2 41.5L608 352c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128c-11.5-8.7-27.3-8.7-38.8 0zm-153.2 160c-11.5-8.7-27.3-8.7-38.8 0l-168 128c-6.6 5-11 12.5-12.3 20.7l-24 160c-1.4 9.2 1.3 18.6 7.4 25.6S22.7 512 32 512l144 0 16 0c17.7 0 32-14.3 32-32l0-118.1c0-5.5 4.4-9.9 9.9-9.9c3.7 0 7.2 2.1 8.8 5.5l68.4 136.8c5.4 10.8 16.5 17.7 28.6 17.7l60.2 0 16 0c9.3 0 18.2-4.1 24.2-11.1s8.8-16.4 7.4-25.6l-24-160c-1.2-8.2-5.6-15.7-12.3-20.7l-168-128z\"},\"child\":[]}]})(props);\n};\nexport function FaTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.4 86.6C-3.1 74.1-3.1 53.9 9.4 41.4s32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L178.7 256 9.4 86.6zM256 416l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTextHeight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTextSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z\"},\"child\":[]}]})(props);\n};\nexport function FaTextWidth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l27.3-27.3 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 41.4-41.4 57 57c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-57-57 45.5-45.5C355.2 10.9 381.4 0 408.8 0C465.8 0 512 46.2 512 103.2c0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0L41 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l89-89z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.4 479.1c26-5.2 42.9-30.5 37.7-56.5l-2.3-11.4c-5.3-26.7-15.1-52.1-28.8-75.2l144 0c26.5 0 48-21.5 48-48c0-18.5-10.5-34.6-25.9-42.6C497 236.6 504 223.1 504 208c0-23.4-16.8-42.9-38.9-47.1c4.4-7.3 6.9-15.8 6.9-24.9c0-21.3-13.9-39.4-33.1-45.6c.7-3.3 1.1-6.8 1.1-10.4c0-26.5-21.5-48-48-48l-97.5 0c-19 0-37.5 5.6-53.3 16.1L202.7 73.8C176 91.6 160 121.6 160 153.7l0 38.3 0 48 0 24.9c0 29.2 13.3 56.7 36 75l7.4 5.9c26.5 21.2 44.6 51 51.2 84.2l2.3 11.4c5.2 26 30.5 42.9 56.5 37.7zM32 384l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128L0 352c0 17.7 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.4 32.9c26 5.2 42.9 30.5 37.7 56.5l-2.3 11.4c-5.3 26.7-15.1 52.1-28.8 75.2l144 0c26.5 0 48 21.5 48 48c0 18.5-10.5 34.6-25.9 42.6C497 275.4 504 288.9 504 304c0 23.4-16.8 42.9-38.9 47.1c4.4 7.3 6.9 15.8 6.9 24.9c0 21.3-13.9 39.4-33.1 45.6c.7 3.3 1.1 6.8 1.1 10.4c0 26.5-21.5 48-48 48l-97.5 0c-19 0-37.5-5.6-53.3-16.1l-38.5-25.7C176 420.4 160 390.4 160 358.3l0-38.3 0-48 0-24.9c0-29.2 13.3-56.7 36-75l7.4-5.9c26.5-21.2 44.6-51 51.2-84.2l2.3-11.4c5.2-26 30.5-42.9 56.5-37.7zM32 192l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32L0 224c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbtackSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L481.4 352c9.8-.4 18.9-5.3 24.6-13.3c6-8.3 7.7-19.1 4.4-28.8l-1-3c-13.8-41.5-42.8-74.8-79.5-94.7L418.5 64 448 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l29.5 0-6.1 79.5L38.8 5.1zM324.9 352L177.1 235.6c-20.9 18.9-37.2 43.3-46.5 71.3l-1 3c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l164.9 0zM288 384l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbtack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTicketSimple (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6C541.5 217.1 528 235 528 256s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64c0-8.8 7.4-15.7 15.7-18.6C34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTicket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64C28.7 64 0 92.7 0 128l0 64c0 8.8 7.4 15.7 15.7 18.6C34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6C541.5 294.9 528 277 528 256s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zm64 112l0 160c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-160c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16zM96 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32l0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaTimeline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 128c70.7 0 128 57.3 128 128s-57.3 128-128 128l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 352a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192s-86-192-192-192L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaperSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-109.7-86C569.9 374 608 291.9 608 192C608 86 565 0 512 0s-96 86-96 192c0 49.1 9.2 93.9 24.4 127.9l-59-46.2c1.6-24.8 2.6-52 2.6-81.6c0-65.5 13.2-142.4 60.2-192L160 0c-24.8 0-47.4 18.8-64.4 49.6L38.8 5.1zM367.3 385.4L66.5 148.4C64.9 162.4 64 177 64 192c0 101.5-11.7 170.8-23 213.9c-5.1 19.4-10.7 39.9-20.5 57.7c-5.9 9.9-6.1 22.1-.4 32.2S36.5 512 48 512l237.9 0c22.3 0 45.4-12.1 55.4-36.1c7.4-17.7 17.5-47.2 26-90.6zM544 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.2 0C397.2 49.6 384 126.5 384 192c0 158.8-27.3 247-42.7 283.9c-10 24-33.2 36.1-55.4 36.1L48 512c-11.5 0-22.2-6.2-27.8-16.2s-5.6-22.3 .4-32.2c9.8-17.7 15.4-38.2 20.5-57.7C52.3 362.8 64 293.5 64 192C64 86 107 0 160 0L444.2 0zM512 384c-53 0-96-86-96-192S459 0 512 0s96 86 96 192s-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64s-32 28.7-32 64s14.3 64 32 64zM144 208a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm64 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm80-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPortable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32L0 64l320 0 0-32c0-17.7-14.3-32-32-32L32 0C14.3 0 0 14.3 0 32zM24 96L0 96l0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-368 0-24-24 0L24 96zM256 240l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaToilet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4C10.9 214.5 0 232.9 0 256c0 46.9 14.3 84.1 37 112.5c14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8s15.7 13.3 26 13.3l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8c22.7-28.4 37-65.5 37-112.5c0-23.1-10.9-41.5-26.4-54.6c-1.8-1.5-3.7-3-5.6-4.4L416 48l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM384 256.3c0 1-.3 2.6-3.8 5.6c-4.8 4.1-14 9-29.3 13.4C320.5 284 276.1 288 224 288s-96.5-4-126.9-12.8c-15.3-4.4-24.5-9.3-29.3-13.4c-3.5-3-3.8-4.6-3.8-5.6l0-.3c0 0 0-.1 0-.1c0-1 0-2.5 3.8-5.8c4.8-4.1 14-9 29.3-13.4C127.5 228 171.9 224 224 224s96.5 4 126.9 12.8c15.3 4.4 24.5 9.3 29.3 13.4c3.8 3.2 3.8 4.8 3.8 5.8c0 0 0 .1 0 .1l0 .3zM328.2 384l-.2 .5 0-.5 .2 0zM112 64l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletsPortable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0L224 0c17.7 0 32 14.3 32 32l0 32L0 64 0 32C0 14.3 14.3 0 32 0zM0 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8L48 480l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24L0 120 0 96zM192 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zM352 0L544 0c17.7 0 32 14.3 32 32l0 32L320 64l0-32c0-17.7 14.3-32 32-32zM320 96l24 0 208 0 24 0 0 24 0 368c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-160 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-368 0-24zM512 224c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaToolbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 88l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 80c-4.4 0-8 3.6-8 8zm-48 40l0-40c0-30.9 25.1-56 56-56l144 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 92.1-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32L0 320l0-92.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1l28.1 0zM0 416l0-64 128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32l128 0 0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1 52.1C169.3 39.1 148.7 32 127.5 32C74.7 32 32 74.7 32 127.5l0 6.2c0 15.8 3.7 31.3 10.7 45.5l23.5 47.1c4.5 8.9 7.6 18.4 9.4 28.2l36.7 205.8c2 11.2 11.6 19.4 22.9 19.8s21.4-7.4 24-18.4l28.9-121.3C192.2 323.7 207 312 224 312s31.8 11.7 35.8 28.3l28.9 121.3c2.6 11.1 12.7 18.8 24 18.4s20.9-8.6 22.9-19.8l36.7-205.8c1.8-9.8 4.9-19.3 9.4-28.2l23.5-47.1c7.1-14.1 10.7-29.7 10.7-45.5l0-2.1c0-55-44.6-99.6-99.6-99.6c-24.1 0-47.4 8.8-65.6 24.6l-3.2 2.8 19.5 15.2c7 5.4 8.2 15.5 2.8 22.5s-15.5 8.2-22.5 2.8l-24.4-19-37-28.8z\"},\"child\":[]}]})(props);\n};\nexport function FaToriiGate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80c0 26.5 21.5 48 48 48l16 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 96 0 0 64 64 0 0-64 16 0c26.5 0 48-21.5 48-48l0-66.6C512 6 506 0 498.6 0c-1.7 0-3.4 .3-5 1l-49 19.6C425.7 28.1 405.5 32 385.2 32L126.8 32c-20.4 0-40.5-3.9-59.4-11.4L18.4 1c-1.6-.6-3.3-1-5-1C6 0 0 6 0 13.4L0 80zM64 288l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 256 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTornado (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16C416 10.1 405.9 0 393.4 0L32 0C14.3 0 0 14.3 0 32zm352.2 96L13.6 128c12.2 35.9 32.3 68.7 58.8 96L412 224l-47.2-62.9c-7.3-9.7-11.6-21.2-12.6-33.1zm-226 138.2l116.4 68.5c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1c0-23-5.3-45.5-15.3-65.9l-322.5 0c5.2 3.6 10.5 7 16 10.2zM288 384c10.3 21.4 13.8 45.5 9.9 69l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4c5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c12.8-12.8 23.1-27.7 30.4-43.9L288 384z\"},\"child\":[]}]})(props);\n};\nexport function FaTowerBroadcast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.3 44C69.8 69.9 64 98.2 64 128s5.8 58.1 16.3 84c6.6 16.4-1.3 35-17.7 41.7s-35-1.3-41.7-17.7C7.4 202.6 0 166.1 0 128S7.4 53.4 20.9 20C27.6 3.6 46.2-4.3 62.6 2.3S86.9 27.6 80.3 44zM555.1 20C568.6 53.4 576 89.9 576 128s-7.4 74.6-20.9 108c-6.6 16.4-25.3 24.3-41.7 17.7S489.1 228.4 495.7 212c10.5-25.9 16.3-54.2 16.3-84s-5.8-58.1-16.3-84C489.1 27.6 497 9 513.4 2.3s35 1.3 41.7 17.7zM352 128c0 23.7-12.9 44.4-32 55.4L320 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296.6c-19.1-11.1-32-31.7-32-55.4c0-35.3 28.7-64 64-64s64 28.7 64 64zM170.6 76.8C163.8 92.4 160 109.7 160 128s3.8 35.6 10.6 51.2c7.1 16.2-.3 35.1-16.5 42.1s-35.1-.3-42.1-16.5c-10.3-23.6-16-49.6-16-76.8s5.7-53.2 16-76.8c7.1-16.2 25.9-23.6 42.1-16.5s23.6 25.9 16.5 42.1zM464 51.2c10.3 23.6 16 49.6 16 76.8s-5.7 53.2-16 76.8c-7.1 16.2-25.9 23.6-42.1 16.5s-23.6-25.9-16.5-42.1c6.8-15.6 10.6-32.9 10.6-51.2s-3.8-35.6-10.6-51.2c-7.1-16.2 .3-35.1 16.5-42.1s35.1 .3 42.1 16.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTowerCell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M62.6 2.3C46.2-4.3 27.6 3.6 20.9 20C7.4 53.4 0 89.9 0 128s7.4 74.6 20.9 108c6.6 16.4 25.3 24.3 41.7 17.7S86.9 228.4 80.3 212C69.8 186.1 64 157.8 64 128s5.8-58.1 16.3-84C86.9 27.6 79 9 62.6 2.3zm450.8 0C497 9 489.1 27.6 495.7 44C506.2 69.9 512 98.2 512 128s-5.8 58.1-16.3 84c-6.6 16.4 1.3 35 17.7 41.7s35-1.3 41.7-17.7c13.5-33.4 20.9-69.9 20.9-108s-7.4-74.6-20.9-108C548.4 3.6 529.8-4.3 513.4 2.3zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2c0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9L177.7 448l220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM369.2 384l-162.4 0 14.5-32 133.3 0 14.5 32zM288 205.3L325.6 288l-75.2 0L288 205.3zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"},\"child\":[]}]})(props);\n};\nexport function FaTowerObservation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M241.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9C439 137.5 427.7 144 416 144l0 80c0 17.7-14.3 32-32 32l-4.9 0 32 192 68.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-95.5 0c-.4 0-.8 0-1.1 0l-254.8 0c-.4 0-.8 0-1.1 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l68.9 0 32-192-4.9 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7c-7.9-15.8-1.5-35 14.3-42.9l160-80zM314.5 448L256 399.2 197.5 448l117 0zM197.8 256l-4.7 28.3L256 336.8l62.9-52.5L314.2 256l-116.5 0zm-13.9 83.2l-11.2 67L218.5 368l-34.6-28.8zM293.5 368l45.8 38.1-11.2-67L293.5 368zM176 128c-8.8 0-16 7.2-16 16s7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTractor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64c0-35.3 28.7-64 64-64L266.3 0c26.2 0 49.7 15.9 59.4 40.2L373.7 160 480 160l0-33.8c0-24.8 5.8-49.3 16.9-71.6l2.5-5c7.9-15.8 27.1-22.2 42.9-14.3s22.2 27.1 14.3 42.9l-2.5 5c-6.7 13.3-10.1 28-10.1 42.9l0 33.8 56 0c22.1 0 40 17.9 40 40l0 45.4c0 16.5-8.5 31.9-22.6 40.7l-43.3 27.1c-14.2-5.9-29.8-9.2-46.1-9.2c-39.3 0-74.1 18.9-96 48l-80 0c0 17.7-14.3 32-32 32l-8.2 0c-1.7 4.8-3.7 9.5-5.8 14.1l5.8 5.8c12.5 12.5 12.5 32.8 0 45.3l-22.6 22.6c-12.5 12.5-32.8 12.5-45.3 0l-5.8-5.8c-4.6 2.2-9.3 4.1-14.1 5.8l0 8.2c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-8.2c-4.8-1.7-9.5-3.7-14.1-5.8l-5.8 5.8c-12.5 12.5-32.8 12.5-45.3 0L40.2 449.1c-12.5-12.5-12.5-32.8 0-45.3l5.8-5.8c-2.2-4.6-4.1-9.3-5.8-14.1L32 384c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l8.2 0c1.7-4.8 3.7-9.5 5.8-14.1l-5.8-5.8c-12.5-12.5-12.5-32.8 0-45.3l22.6-22.6c9-9 21.9-11.5 33.1-7.6l0-.6 0-32 0-96zm170.3 0L160 64l0 96 32 0 112.7 0L266.3 64zM176 256a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM528 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm0 64c-48.6 0-88-39.4-88-88c0-29.8 14.8-56.1 37.4-72c14.3-10.1 31.8-16 50.6-16c2.7 0 5.3 .1 7.9 .3c44.9 4 80.1 41.7 80.1 87.7c0 48.6-39.4 88-88 88z\"},\"child\":[]}]})(props);\n};\nexport function FaTrademark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M345.6 108.8c-8.3-11-22.7-15.5-35.7-11.2S288 114.2 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 86.4 115.2c6 8.1 15.5 12.8 25.6 12.8s19.6-4.7 25.6-12.8L576 224l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-13.8-8.8-26-21.9-30.4s-27.5 .1-35.7 11.2L464 266.7 345.6 108.8zM0 128c0 17.7 14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96C14.3 96 0 110.3 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaTrafficLight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 352c0 88.4 71.6 160 160 160s160-71.6 160-160l0-288c0-35.3-28.7-64-64-64L64 0zm96 416a48 48 0 1 1 0-96 48 48 0 1 1 0 96zm48-176a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-80a48 48 0 1 1 0-96 48 48 0 1 1 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTrailer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32C21.5 32 0 53.5 0 80L0 336c0 26.5 21.5 48 48 48l17.1 0c7.8-54.3 54.4-96 110.9-96s103.1 41.7 110.9 96L488 384l8 0 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-240c0-26.5-21.5-48-48-48L48 32zM80 96c8.8 0 16 7.2 16 16l0 131.2c-11.4 5.9-22.2 12.9-32 21L64 112c0-8.8 7.2-16 16-16zm96 128c-5.4 0-10.7 .2-16 .7L160 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 112.7c-5.3-.5-10.6-.7-16-.7zm80 19.2L256 112c0-8.8 7.2-16 16-16s16 7.2 16 16l0 152.2c-9.8-8.1-20.6-15.2-32-21zM368 96c8.8 0 16 7.2 16 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16zm112 16l0 192c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-192c0-8.8 7.2-16 16-16s16 7.2 16 16zM176 480a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTrainSubway (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96zM272 96l80 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM64 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTrainTram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M86.8 48c-12.2 0-23.6 5.5-31.2 15L42.7 79C34.5 89.3 19.4 91 9 82.7S-3 59.4 5.3 49L18 33C34.7 12.2 60 0 86.8 0L361.2 0c26.7 0 52 12.2 68.7 33l12.8 16c8.3 10.4 6.6 25.5-3.8 33.7s-25.5 6.6-33.7-3.7L392.5 63c-7.6-9.5-19.1-15-31.2-15L248 48l0 48 40 0c53 0 96 43 96 96l0 160c0 30.6-14.3 57.8-36.6 75.4l65.5 65.5c7.1 7.1 2.1 19.1-7.9 19.1l-39.7 0c-8.5 0-16.6-3.4-22.6-9.4L288 448l-128 0-54.6 54.6c-6 6-14.1 9.4-22.6 9.4L43 512c-10 0-15-12.1-7.9-19.1l65.5-65.5C78.3 409.8 64 382.6 64 352l0-160c0-53 43-96 96-96l40 0 0-48L86.8 48zM160 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaTrain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 352c0 48 35.2 87.7 81.1 94.9l-46 46C28.1 499.9 33.1 512 43 512l39.7 0c8.5 0 16.6-3.4 22.6-9.4L160 448l128 0 54.6 54.6c6 6 14.1 9.4 22.6 9.4l39.7 0c10 0 15-12.1 7.9-19.1l-46-46c46-7.1 81.1-46.9 81.1-94.9l0-256c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 224c-17.7 0-32-14.3-32-32l0-96zM224 288a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTransgender (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-31 31L112 78.1l7-7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-7 7 15.2 15.2C187.7 107.6 220.5 96 256 96s68.3 11.6 94.9 31.2l68.8-68.8-31-31c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l96 0c8.8 0 16 7.2 16 16l0 96c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-31-31-68.8 68.8C404.4 187.7 416 220.5 416 256c0 80.2-59 146.6-136 158.2l0 17.8 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-17.8C155 402.6 96 336.2 96 256c0-35.5 11.6-68.3 31.2-94.9L112 145.9l-7 7c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l7-7L58.3 92.3l-31 31c-4.6 4.6-11.5 5.9-17.4 3.5S0 118.5 0 112L0 16C0 7.2 7.2 0 16 0l96 0zM352 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0L394.8 467c-1.6 25.3-22.6 45-47.9 45l-245.8 0c-25.3 0-46.3-19.7-47.9-45L32 128zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashCanArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3C140.6 6.8 151.7 0 163.8 0zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm192 64c-6.4 0-12.5 2.5-17 7l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l39-39L200 408c0 13.3 10.7 24 24 24s24-10.7 24-24l0-134.1 39 39c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-4.5-4.5-10.6-7-17-7z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z\"},\"child\":[]}]})(props);\n};\nexport function FaTreeCity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 144 40 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 24 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0-96 0c-26.5 0-48-21.5-48-48l0-416zm64 32l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 272l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM224 160c0 6-1 11-2 16c20 14 34 38 34 64c0 45-36 80-80 80l-16 0 0 160c0 18-15 32-32 32c-18 0-32-14-32-32l0-160-16 0c-45 0-80-35-80-80c0-26 13-50 33-64c-1-5-1-10-1-16c0-53 42-96 96-96c53 0 96 43 96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTree (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.6 5.9L62 169.4c-3.9 4.2-6 9.8-6 15.5C56 197.7 66.3 208 79.1 208l24.9 0L30.6 281.4c-4.2 4.2-6.6 10-6.6 16C24 309.9 34.1 320 46.6 320L80 320 5.4 409.5C1.9 413.7 0 419 0 424.5c0 13 10.5 23.5 23.5 23.5L192 448l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 168.5 0c13 0 23.5-10.5 23.5-23.5c0-5.5-1.9-10.8-5.4-15L368 320l33.4 0c12.5 0 22.6-10.1 22.6-22.6c0-6-2.4-11.8-6.6-16L344 208l24.9 0c12.7 0 23.1-10.3 23.1-23.1c0-5.7-2.1-11.3-6-15.5L237.4 5.9C234 2.1 229.1 0 224 0s-10 2.1-13.4 5.9z\"},\"child\":[]}]})(props);\n};\nexport function FaTriangleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTrophy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z\"},\"child\":[]}]})(props);\n};\nexport function FaTrowelBricks (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.8 4.8C250.3 10.6 256 20.9 256 32l0 72 89 0c3.6-13.8 16.1-24 31-24l88 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-88 0c-14.9 0-27.4-10.2-31-24l-89 0 0 72c0 11.1-5.7 21.4-15.2 27.2s-21.2 6.4-31.1 1.4l-192-96C6.8 151.2 0 140.1 0 128s6.8-23.2 17.7-28.6l192-96c9.9-5 21.7-4.4 31.1 1.4zM288 256c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM32 384l96 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l256 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTrowel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M343.9 213.4L245.3 312l65.4 65.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9S-2.1 481.8 1.5 470.5l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L200 266.7l98.6-98.6c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM257 95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L96 168c-13.3 0-24 10.7-24 24s10.7 24 24 24l166.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9L257 95z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM208 272c39.8 0 72-29.6 72-66c0-27-39.4-82.9-59.9-110.3c-6.1-8.2-18.1-8.2-24.2 0C175.4 123 136 179 136 206c0 36.5 32.2 66 72 66z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckFast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 0C85.5 0 64 21.5 64 48l0 48L16 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 208 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 160l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0 176 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 224l-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 144 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L64 288l0 128c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L112 0zM544 237.3l0 18.7-128 0 0-96 50.7 0L544 237.3zM160 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckFieldUn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-32c0-35.3-28.7-64-64-64l-4.2 0c-.4-1.1-.9-2.1-1.3-3.2L485.7 102c-10.3-23.1-33.2-38-58.5-38l-51.8 0C364.4 44.9 343.7 32 320 32L96 32zm288 96l43.2 0 42.7 96L384 224l0-96zM112 384a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM253.3 135.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM128 144l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckField (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l51.8 0c25.3 0 48.2 14.9 58.5 38l52.8 118.8c.5 1.1 .9 2.1 1.3 3.2l4.2 0c35.3 0 64 28.7 64 64l0 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-32c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zM384 224l85.9 0-42.7-96L384 128l0 96zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckFront (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80C0 35.8 35.8 0 80 0L432 0c44.2 0 80 35.8 80 80l0 288c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-256 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 80zm129.9 72.2L112 224l288 0-17.9-71.8C378.5 138 365.7 128 351 128l-190 0c-14.7 0-27.5 10-31 24.2zM128 320a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMedical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0L368 0c26.5 0 48 21.5 48 48l0 48 50.7 0c17 0 33.3 6.7 45.3 18.7L589.3 192c12 12 18.7 28.3 18.7 45.3l0 18.7 0 32 0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 48zM416 256l128 0 0-18.7L466.7 160 416 160l0 96zM160 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm368-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM176 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMonster (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64l0 64 128 0L368 64l-80 0zM419.2 25.6L496 128l80 0c17.7 0 32 14.3 32 32l0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64l-64 0c-29.2-38.9-75.7-64-128-64s-98.8 25.1-128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-64c0-17.7 14.3-32 32-32l160 0 0-80c0-26.5 21.5-48 48-48l96 0c20.1 0 39.1 9.5 51.2 25.6zM152 256l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.7 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.3 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.3 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.8 3.7-14.1 6.8-21.7 9C190.1 503.1 180.1 512 168 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2L63.8 468.9c-8.6-8.6-9.3-21.9-2.3-31.3c-3.7-6.9-6.8-14.1-9-21.8C40.9 414.1 32 404.1 32 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.3-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9c1.7-11.6 11.7-20.6 23.8-20.6zm8 176a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM448.2 276.6c1.7-11.6 11.7-20.6 23.8-20.6l16 0c12.1 0 22.1 8.9 23.8 20.6c7.6 2.2 14.9 5.3 21.8 9c9.4-7 22.8-6.3 31.3 2.3l11.3 11.3c8.6 8.6 9.3 21.9 2.2 31.3c3.7 6.8 6.8 14.1 9 21.7c11.6 1.7 20.6 11.7 20.6 23.8l0 16c0 12.1-8.9 22.1-20.6 23.8c-2.2 7.6-5.3 14.9-9 21.7c7 9.4 6.3 22.8-2.2 31.3l-11.3 11.3c-8.6 8.6-21.9 9.3-31.3 2.2c-6.9 3.7-14.1 6.8-21.8 9C510.1 503.1 500.1 512 488 512l-16 0c-12.1 0-22.1-8.9-23.8-20.6c-7.6-2.2-14.9-5.3-21.7-9c-9.4 7.1-22.8 6.3-31.3-2.2l-11.3-11.3c-8.6-8.6-9.3-21.9-2.2-31.3c-3.7-6.9-6.8-14.1-9-21.8C360.9 414.1 352 404.1 352 392l0-16c0-12.1 8.9-22.1 20.6-23.8c2.2-7.6 5.3-14.9 9-21.8c-7-9.4-6.3-22.8 2.2-31.3l11.3-11.3c8.6-8.6 21.9-9.3 31.3-2.3c6.8-3.7 14.1-6.8 21.7-9zM528 384a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMoving (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 304l0 80 0 16c0 44.2 35.8 80 80 80c26.2 0 49.4-12.6 64-32c14.6 19.4 37.8 32 64 32c44.2 0 80-35.8 80-80c0-5.5-.6-10.8-1.6-16L416 384l33.6 0c-1 5.2-1.6 10.5-1.6 16c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16l1.6 0c17.7 0 32-14.3 32-32l0-64 0-16 0-10.3c0-9.2-3.2-18.2-9-25.3l-58.8-71.8c-10.6-13-26.5-20.5-43.3-20.5L480 144l0-48c0-35.3-28.7-64-64-64L64 32zM585 256l-105 0 0-64 48.8 0c2.4 0 4.7 1.1 6.2 2.9L585 256zM528 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM176 400a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM80 368a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckPickup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.6 96l76.8 96L288 192l0-96 80.6 0zM224 80l0 112L64 192c-17.7 0-32 14.3-32 32l0 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l33.1 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l66.3 0c-.7 5.2-1.1 10.6-1.1 16c0 61.9 50.1 112 112 112s112-50.1 112-112c0-5.4-.4-10.8-1.1-16l33.1 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c0-17.7-14.3-32-32-32l-48.6 0L418.6 56c-12.1-15.2-30.5-24-50-24L272 32c-26.5 0-48 21.5-48 48zm0 288a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm288 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200 0c-30.6 0-56 54.7-56 86.1l0 106.5L7.8 274.3C2.9 277.2 0 282.4 0 288l0 64c0 5.1 2.4 9.8 6.4 12.8s9.3 3.9 14.1 2.5l123.4-37 0 81.2-50 40c-3.8 3-6 7.6-6 12.5l0 32c0 5.1 2.5 10 6.6 13s9.5 3.8 14.4 2.2L200 480.9 290.4 511c-1.6-4.7-2.4-9.8-2.4-15l0-32.6c-18.2-10.5-30.7-29.7-31.9-51.8l-.1-.1 0-3.5 0-82.5L256 184l0-1.1s0 0 0 0l0-96.9C256 54.7 231.5 0 200 0zm88 176l0 224c0 20.9 13.4 38.7 32 45.3l0 42.7c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-40 160 0 0 40c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-42.7c18.6-6.6 32-24.4 32-45.3l0-224c0-26.5-21.5-48-48-48l-256 0c-26.5 0-48 21.5-48 48zm79.8 78.7c3.3-8.7 11.2-14.7 20.5-14.7l151.4 0c9.2 0 17.2 6 20.5 14.7L576 304l-224 0 15.8-49.3zM568 352a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM336 376a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckRampBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 0l0 400c0 61.9-50.1 112-112 112c-61 0-110.5-48.7-112-109.3L48.4 502.9c-17.1 4.6-34.6-5.4-39.3-22.5s5.4-34.6 22.5-39.3L352 353.8 352 64c0-35.3 28.7-64 64-64L640 0zM576 400a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM23.1 207.7c-4.6-17.1 5.6-34.6 22.6-39.2l46.4-12.4 20.7 77.3c2.3 8.5 11.1 13.6 19.6 11.3l30.9-8.3c8.5-2.3 13.6-11.1 11.3-19.6l-20.7-77.3 46.4-12.4c17.1-4.6 34.6 5.6 39.2 22.6l41.4 154.5c4.6 17.1-5.6 34.6-22.6 39.2L103.7 384.9c-17.1 4.6-34.6-5.6-39.2-22.6L23.1 207.7z\"},\"child\":[]}]})(props);\n};\nexport function FaTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.5 0 0 21.5 0 48L0 368c0 26.5 21.5 48 48 48l16 0c0 53 43 96 96 96s96-43 96-96l128 0c0 53 43 96 96 96s96-43 96-96l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64 0-32 0-18.7c0-17-6.7-33.3-18.7-45.3L512 114.7c-12-12-28.3-18.7-45.3-18.7L416 96l0-48c0-26.5-21.5-48-48-48L48 0zM416 160l50.7 0L544 237.3l0 18.7-128 0 0-96zM112 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm368-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.3 241.3L15.1 200.6c-9.2-16.2-8.4-36.5 4.5-50C61.4 106.8 144.7 48 256 48s194.6 58.8 236.4 102.6c12.9 13.5 13.7 33.8 4.5 50l-23.1 40.7c-7.5 13.2-23.3 19.3-37.8 14.6l-81.1-26.6c-13.1-4.3-22-16.6-22-30.4l0-54.8c-49.6-18.1-104-18.1-153.6 0l0 54.8c0 13.8-8.9 26.1-22 30.4L76.1 255.8c-14.5 4.7-30.3-1.4-37.8-14.6zM32 336c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm0 96c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM144 320l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 432c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTurkishLiraSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32c17.7 0 32 14.3 32 32l0 35.3L247.2 65.2c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 165.9l0 29.4 119.2-34.1c17-4.9 34.7 5 39.6 22s-5 34.7-22 39.6L128 261.9 128 416l63.8 0c68.2 0 124.4-53.5 127.8-121.6l.4-8c.9-17.7 15.9-31.2 33.6-30.4s31.2 15.9 30.4 33.6l-.4 8C378.5 399.8 294.1 480 191.8 480L96 480c-17.7 0-32-14.3-32-32l0-167.9-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 213.6l0-29.4-23.2 6.6c-17 4.9-34.7-5-39.6-22s5-34.7 22-39.6L64 117.6 64 64c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaTurnDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350 334.5c3.8 8.8 2 19-4.6 26l-136 144c-4.5 4.8-10.8 7.5-17.4 7.5s-12.9-2.7-17.4-7.5l-136-144c-6.6-7-8.4-17.2-4.6-26s12.5-14.5 22-14.5l88 0 0-192c0-17.7-14.3-32-32-32L32 96C14.3 96 0 81.7 0 64L0 32C0 14.3 14.3 0 32 0l80 0c70.7 0 128 57.3 128 128l0 192 88 0c9.6 0 18.2 5.7 22 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTurnUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350 177.5c3.8-8.8 2-19-4.6-26l-136-144C204.9 2.7 198.6 0 192 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26s12.5 14.5 22 14.5l88 0 0 192c0 17.7-14.3 32-32 32l-80 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l80 0c70.7 0 128-57.3 128-128l0-192 88 0c9.6 0 18.2-5.7 22-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64l0 288 512 0 0-288L64 64zM0 64C0 28.7 28.7 0 64 0L576 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 416c-35.3 0-64-28.7-64-64L0 64zM128 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaU (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrellaBeach (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M346.3 271.8l-60.1-21.9L214 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-261.9 0 64.1-176.2zm121.1-.2l-3.3 9.1 67.7 24.6c18.1 6.6 38-4.2 39.6-23.4c6.5-78.5-23.9-155.5-80.8-208.5c2 8 3.2 16.3 3.4 24.8l.2 6c1.8 57-7.3 113.8-26.8 167.4zM462 99.1c-1.1-34.4-22.5-64.8-54.4-77.4c-.9-.4-1.9-.7-2.8-1.1c-33-11.7-69.8-2.4-93.1 23.8l-4 4.5C272.4 88.3 245 134.2 226.8 184l-3.3 9.1L434 269.7l3.3-9.1c18.1-49.8 26.6-102.5 24.9-155.5l-.2-6zM107.2 112.9c-11.1 15.7-2.8 36.8 15.3 43.4l71 25.8 3.3-9.1c19.5-53.6 49.1-103 87.1-145.5l4-4.5c6.2-6.9 13.1-13 20.5-18.2c-79.6 2.5-154.7 42.2-201.2 108z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c17.7 0 32 14.3 32 32l0 17.7C451.8 63.4 557.7 161 573.9 285.9c2 15.6-17.3 24.4-27.8 12.7C532.1 283 504.8 272 480 272c-38.7 0-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C359 299.5 326.7 272 288 272s-71 27.5-78.4 64.1c-1.7 8.7-8.7 15.9-17.6 15.9s-15.8-7.2-17.6-15.9C167 299.5 134.7 272 96 272c-24.8 0-52.1 11-66.1 26.7C19.4 310.4 .1 301.5 2.1 285.9C18.3 161 124.2 63.4 256 49.7L256 32c0-17.7 14.3-32 32-32zm0 304c12.3 0 23.5 4.6 32 12.2l0 114.3c0 45-36.5 81.4-81.4 81.4c-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6c9.6 0 17.4-7.8 17.4-17.4l0-114.3c8.5-7.6 19.7-12.2 32-12.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaUniversalAccess (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlockKeyhole (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 64c-44.2 0-80 35.8-80 80l0 48 240 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0 0-48C80 64.5 144.5 0 224 0c57.5 0 107 33.7 130.1 82.3c7.6 16 .8 35.1-15.2 42.6s-35.1 .8-42.6-15.2C283.4 82.6 255.9 64 224 64zm32 320c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 144c0-44.2 35.8-80 80-80c31.9 0 59.4 18.6 72.3 45.7c7.6 16 26.7 22.8 42.6 15.2s22.8-26.7 15.2-42.6C331 33.7 281.5 0 224 0C144.5 0 80 64.5 80 144l0 48-16 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-240 0 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaUpDownLeftRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaUpDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M145.6 7.7C141 2.8 134.7 0 128 0s-13 2.8-17.6 7.7l-104 112c-6.5 7-8.2 17.2-4.4 25.9S14.5 160 24 160l56 0 0 192-56 0c-9.5 0-18.2 5.7-22 14.4s-2.1 18.9 4.4 25.9l104 112c4.5 4.9 10.9 7.7 17.6 7.7s13-2.8 17.6-7.7l104-112c6.5-7 8.2-17.2 4.4-25.9s-12.5-14.4-22-14.4l-56 0 0-192 56 0c9.5 0 18.2-5.7 22-14.4s2.1-18.9-4.4-25.9l-104-112z\"},\"child\":[]}]})(props);\n};\nexport function FaUpLong (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318 177.5c3.8-8.8 2-19-4.6-26l-136-144C172.9 2.7 166.6 0 160 0s-12.9 2.7-17.4 7.5l-136 144c-6.6 7-8.4 17.2-4.6 26S14.4 192 24 192l72 0 0 288c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-288 72 0c9.6 0 18.2-5.7 22-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaUpRightAndDownLeftFromCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87L327 41c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUpRightFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"},\"child\":[]}]})(props);\n};\nexport function FaUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 109.3L288 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-242.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352l128 0c0 35.3 28.7 64 64 64s64-28.7 64-64l128 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAstronaut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370.7 96.1C346.1 39.5 289.7 0 224 0S101.9 39.5 77.3 96.1C60.9 97.5 48 111.2 48 128l0 64c0 16.8 12.9 30.5 29.3 31.9C101.9 280.5 158.3 320 224 320s122.1-39.5 146.7-96.1c16.4-1.4 29.3-15.1 29.3-31.9l0-64c0-16.8-12.9-30.5-29.3-31.9zM336 144l0 16c0 53-43 96-96 96l-32 0c-53 0-96-43-96-96l0-16c0-26.5 21.5-48 48-48l128 0c26.5 0 48 21.5 48 48zM189.3 162.7l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM112.7 316.5C46.7 342.6 0 407 0 482.3C0 498.7 13.3 512 29.7 512l98.3 0 0-64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 64 98.3 0c16.4 0 29.7-13.3 29.7-29.7c0-75.3-46.7-139.7-112.7-165.8C303.9 338.8 265.5 352 224 352s-79.9-13.2-111.3-35.5zM176 448c-8.8 0-16 7.2-16 16l0 48 32 0 0-48c0-8.8-7.2-16-16-16zm96 32a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM625 177L497 305c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L591 143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUserClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c20.6 0 40.4 3.5 58.8 9.9C323 331 320 349.1 320 368c0 59.5 29.5 112.1 74.8 144L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM352 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUserDoctor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-96 55.2C54 332.9 0 401.3 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-81-54-149.4-128-171.1l0 50.8c27.6 7.1 48 32.2 48 62l0 40c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 24c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-40c0-29.8 20.4-54.9 48-62l0-57.1c-6-.6-12.1-.9-18.3-.9l-91.4 0c-6.2 0-12.3 .3-18.3 .9l0 65.4c23.1 6.9 40 28.3 40 53.7c0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.4 16.9-46.8 40-53.7l0-59.1zM144 448a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0a128 128 0 1 1 0 256A128 128 0 1 1 224 0zM178.3 304l91.4 0c11.8 0 23.4 1.2 34.5 3.3c-2.1 18.5 7.4 35.6 21.8 44.8c-16.6 10.6-26.7 31.6-20 53.3c4 12.9 9.4 25.5 16.4 37.6s15.2 23.1 24.4 33c15.7 16.9 39.6 18.4 57.2 8.7l0 .9c0 9.2 2.7 18.5 7.9 26.3L29.7 512C13.3 512 0 498.7 0 482.3C0 383.8 79.8 304 178.3 304zM436 218.2c0-7 4.5-13.3 11.3-14.8c10.5-2.4 21.5-3.7 32.7-3.7s22.2 1.3 32.7 3.7c6.8 1.5 11.3 7.8 11.3 14.8l0 30.6c7.9 3.4 15.4 7.7 22.3 12.8l24.9-14.3c6.1-3.5 13.7-2.7 18.5 2.4c7.6 8.1 14.3 17.2 20.1 27.2s10.3 20.4 13.5 31c2.1 6.7-1.1 13.7-7.2 17.2l-25 14.4c.4 4 .7 8.1 .7 12.3s-.2 8.2-.7 12.3l25 14.4c6.1 3.5 9.2 10.5 7.2 17.2c-3.3 10.6-7.8 21-13.5 31s-12.5 19.1-20.1 27.2c-4.8 5.1-12.5 5.9-18.5 2.4l-24.9-14.3c-6.9 5.1-14.3 9.4-22.3 12.8l0 30.6c0 7-4.5 13.3-11.3 14.8c-10.5 2.4-21.5 3.7-32.7 3.7s-22.2-1.3-32.7-3.7c-6.8-1.5-11.3-7.8-11.3-14.8l0-30.5c-8-3.4-15.6-7.7-22.5-12.9l-24.7 14.3c-6.1 3.5-13.7 2.7-18.5-2.4c-7.6-8.1-14.3-17.2-20.1-27.2s-10.3-20.4-13.5-31c-2.1-6.7 1.1-13.7 7.2-17.2l24.8-14.3c-.4-4.1-.7-8.2-.7-12.4s.2-8.3 .7-12.4L343.8 325c-6.1-3.5-9.2-10.5-7.2-17.2c3.3-10.6 7.7-21 13.5-31s12.5-19.1 20.1-27.2c4.8-5.1 12.4-5.9 18.5-2.4l24.8 14.3c6.9-5.1 14.5-9.4 22.5-12.9l0-30.5zm92.1 133.5a48.1 48.1 0 1 0 -96.1 0 48.1 48.1 0 1 0 96.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGraduate (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z\"},\"child\":[]}]})(props);\n};\nexport function FaUserInjured (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 80l102.7 0c-7.9-19.5-20.4-36.5-36.2-49.9L240 80zm37.7-68.2C261.3 4.2 243.2 0 224 0c-53.7 0-99.7 33.1-118.7 80l81.4 0 91-68.2zM224 256c70.7 0 128-57.3 128-128c0-5.4-.3-10.8-1-16L97 112c-.7 5.2-1 10.6-1 16c0 70.7 57.3 128 128 128zM124 312.4c-9.7 3.1-19.1 7-28 11.7L96 512l147.7 0L181.5 408.2 124 312.4zm33-7.2L204.3 384l67.7 0c44.2 0 80 35.8 80 80c0 18-6 34.6-16 48l82.3 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0c-7.2 0-14.3 .4-21.3 1.3zM0 482.3C0 498.7 13.3 512 29.7 512L64 512l0-166.6C24.9 378.1 0 427.3 0 482.3zM320 464c0-26.5-21.5-48-48-48l-48.5 0 57.1 95.2C303 507.2 320 487.6 320 464z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLargeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L381.9 274c48.5-23.2 82.1-72.7 82.1-130C464 64.5 399.5 0 320 0C250.4 0 192.4 49.3 178.9 114.9L38.8 5.1zM545.5 512L528 512 284.3 320l-59 0C136.2 320 64 392.2 64 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0 .3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLarge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 288A144 144 0 1 0 256 0a144 144 0 1 0 0 288zm-94.7 32C72.2 320 0 392.2 0 481.3c0 17 13.8 30.7 30.7 30.7l450.6 0c17 0 30.7-13.8 30.7-30.7C512 392.2 439.8 320 350.7 320l-189.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l362.8 0c-5.4-9.4-8.6-20.3-8.6-32l0-128c0-2.1 .1-4.2 .3-6.3c-31-26-71-41.7-114.6-41.7l-91.4 0zM528 240c17.7 0 32 14.3 32 32l0 48-64 0 0-48c0-17.7 14.3-32 32-32zm-80 32l0 48c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM472 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNinja (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c-57.2 0-105.6-37.5-122-89.3c-1.1 1.3-2.2 2.6-3.5 3.8c-15.8 15.8-38.8 20.7-53.6 22.1c-8.1 .8-14.6-5.7-13.8-13.8c1.4-14.7 6.3-37.8 22.1-53.6c5.8-5.8 12.6-10.1 19.6-13.4c-7-3.2-13.8-7.6-19.6-13.4C37.4 82.7 32.6 59.7 31.1 44.9c-.8-8.1 5.7-14.6 13.8-13.8c14.7 1.4 37.8 6.3 53.6 22.1c4.8 4.8 8.7 10.4 11.7 16.1C131.4 28.2 174.4 0 224 0c70.7 0 128 57.3 128 128s-57.3 128-128 128zM0 482.3C0 399.5 56.4 330 132.8 309.9c6-1.6 12.2 .9 15.9 5.8l62.5 83.3c6.4 8.5 19.2 8.5 25.6 0l62.5-83.3c3.7-4.9 9.9-7.4 15.9-5.8C391.6 330 448 399.5 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM160 96c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNurse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128l0-57.8c0-13.3 8.3-25.3 20.8-30l96-36c7.2-2.7 15.2-2.7 22.5 0l96 36c12.5 4.7 20.8 16.6 20.8 30l0 57.8-.3 0c.2 2.6 .3 5.3 .3 8l0 40c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-40c0-2.7 .1-5.4 .3-8l-.3 0zm48 48c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16-160 0 0 16zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6zM208 48l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8l-16 0c-4.4 0-8 3.6-8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserPen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z\"},\"child\":[]}]})(props);\n};\nexport function FaUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSecret (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 16c-6.7 0-10.8-2.8-15.5-6.1C201.9 5.4 194 0 176 0c-30.5 0-52 43.7-66 89.4C62.7 98.1 32 112.2 32 128c0 14.3 25 27.1 64.6 35.9c-.4 4-.6 8-.6 12.1c0 17 3.3 33.2 9.3 48l-59.9 0C38 224 32 230 32 237.4c0 1.7 .3 3.4 1 5l38.8 96.9C28.2 371.8 0 423.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7c0-58.5-28.2-110.4-71.7-143L415 242.4c.6-1.6 1-3.3 1-5c0-7.4-6-13.4-13.4-13.4l-59.9 0c6-14.8 9.3-31 9.3-48c0-4.1-.2-8.1-.6-12.1C391 155.1 416 142.3 416 128c0-15.8-30.7-29.9-78-38.6C324 43.7 302.5 0 272 0c-18 0-25.9 5.4-32.5 9.9c-4.8 3.3-8.8 6.1-15.5 6.1zm56 208l-12.4 0c-16.5 0-31.1-10.6-36.3-26.2c-2.3-7-12.2-7-14.5 0c-5.2 15.6-19.9 26.2-36.3 26.2L168 224c-22.1 0-40-17.9-40-40l0-14.4c28.2 4.1 61 6.4 96 6.4s67.8-2.3 96-6.4l0 14.4c0 22.1-17.9 40-40 40zm-88 96l16 32L176 480 128 288l64 32zm128-32L272 480 240 352l16-32 64-32z\"},\"child\":[]}]})(props);\n};\nexport function FaUserShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c1.8 0 3.5-.2 5.3-.5c-76.3-55.1-99.8-141-103.1-200.2c-16.1-4.8-33.1-7.3-50.7-7.3l-91.4 0zm308.8-78.3l-120 48C358 277.4 352 286.2 352 296c0 63.3 25.9 168.8 134.8 214.2c5.9 2.5 12.6 2.5 18.5 0C614.1 464.8 640 359.3 640 296c0-9.8-6-18.6-15.1-22.3l-120-48c-5.7-2.3-12.1-2.3-17.8 0zM591.4 312c-3.9 50.7-27.2 116.7-95.4 149.7l0-187.8L591.4 312z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L353.3 251.6C407.9 237 448 187.2 448 128C448 57.3 390.7 0 320 0C250.2 0 193.5 55.8 192 125.2L38.8 5.1zM264.3 304.3C170.5 309.4 96 387.2 96 482.3c0 16.4 13.3 29.7 29.7 29.7l388.6 0c3.9 0 7.6-.7 11-2.1l-261-205.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c10 0 18.8-4.9 24.2-12.5l-99.2-99.2c-14.9-14.9-23.3-35.1-23.3-56.1l0-33c-15.9-4.7-32.8-7.2-50.3-7.2l-91.4 0zM384 224c-17.7 0-32 14.3-32 32l0 82.7c0 17 6.7 33.3 18.7 45.3L478.1 491.3c18.7 18.7 49.1 18.7 67.9 0l73.4-73.4c18.7-18.7 18.7-49.1 0-67.9L512 242.7c-12-12-28.3-18.7-45.3-18.7L384 224zm24 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUserXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM471 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersBetweenLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L616 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 48C10.7 48 0 37.3 0 24zM0 488c0-13.3 10.7-24 24-24l592 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24zM83.2 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 320c0-35.3 28.7-64 64-64l96 0c12.2 0 23.7 3.4 33.4 9.4c-37.2 15.1-65.6 47.2-75.8 86.6L64 352c-17.7 0-32-14.3-32-32zm461.6 32c-10.3-40.1-39.6-72.6-77.7-87.4c9.4-5.5 20.4-8.6 32.1-8.6l96 0c35.3 0 64 28.7 64 64c0 17.7-14.3 32-32 32l-82.4 0zM391.2 290.4c32.1 7.4 58.1 30.9 68.9 61.6c3.5 10 5.5 20.8 5.5 32c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32c0-11.2 1.9-22 5.5-32c10.5-29.7 35.3-52.8 66.1-60.9c7.8-2.1 16-3.1 24.5-3.1l96 0c7.4 0 14.7 .8 21.6 2.4zm44-130.4a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM321.6 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersGear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 160A80 80 0 1 0 144 0a80 80 0 1 0 0 160zm368 0A80 80 0 1 0 512 0a80 80 0 1 0 0 160zM0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-26.6-23.5-43.3-57.8-43.3-96c0-7.6 .7-15 1.9-22.3c-13.6-6.3-28.7-9.7-44.6-9.7l-42.7 0C47.8 192 0 239.8 0 298.7zM320 320c24 0 45.9-8.8 62.7-23.3c2.5-3.7 5.2-7.3 8-10.7c2.7-3.3 5.7-6.1 9-8.3C410 262.3 416 243.9 416 224c0-53-43-96-96-96s-96 43-96 96s43 96 96 96zm65.4 60.2c-10.3-5.9-18.1-16.2-20.8-28.2l-103.2 0C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l300.6 0c-2.1-5.2-3.2-10.9-3.2-16.4l0-3c-1.3-.7-2.7-1.5-4-2.3l-2.6 1.5c-16.8 9.7-40.5 8-54.7-9.7c-4.5-5.6-8.6-11.5-12.4-17.6l-.1-.2-.1-.2-2.4-4.1-.1-.2-.1-.2c-3.4-6.2-6.4-12.6-9-19.3c-8.2-21.2 2.2-42.6 19-52.3l2.7-1.5c0-.8 0-1.5 0-2.3s0-1.5 0-2.3l-2.7-1.5zM533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 17.4-3.5 33.9-9.7 49c2.5 .9 4.9 2 7.1 3.3l2.6 1.5c1.3-.8 2.6-1.6 4-2.3l0-3c0-19.4 13.3-39.1 35.8-42.6c7.9-1.2 16-1.9 24.2-1.9s16.3 .6 24.2 1.9c22.5 3.5 35.8 23.2 35.8 42.6l0 3c1.3 .7 2.7 1.5 4 2.3l2.6-1.5c16.8-9.7 40.5-8 54.7 9.7c2.3 2.8 4.5 5.8 6.6 8.7c-2.1-57.1-49-102.7-106.6-102.7zm91.3 163.9c6.3-3.6 9.5-11.1 6.8-18c-2.1-5.5-4.6-10.8-7.4-15.9l-2.3-4c-3.1-5.1-6.5-9.9-10.2-14.5c-4.6-5.7-12.7-6.7-19-3l-2.9 1.7c-9.2 5.3-20.4 4-29.6-1.3s-16.1-14.5-16.1-25.1l0-3.4c0-7.3-4.9-13.8-12.1-14.9c-6.5-1-13.1-1.5-19.9-1.5s-13.4 .5-19.9 1.5c-7.2 1.1-12.1 7.6-12.1 14.9l0 3.4c0 10.6-6.9 19.8-16.1 25.1s-20.4 6.6-29.6 1.3l-2.9-1.7c-6.3-3.6-14.4-2.6-19 3c-3.7 4.6-7.1 9.5-10.2 14.6l-2.3 3.9c-2.8 5.1-5.3 10.4-7.4 15.9c-2.6 6.8 .5 14.3 6.8 17.9l2.9 1.7c9.2 5.3 13.7 15.8 13.7 26.4s-4.5 21.1-13.7 26.4l-3 1.7c-6.3 3.6-9.5 11.1-6.8 17.9c2.1 5.5 4.6 10.7 7.4 15.8l2.4 4.1c3 5.1 6.4 9.9 10.1 14.5c4.6 5.7 12.7 6.7 19 3l2.9-1.7c9.2-5.3 20.4-4 29.6 1.3s16.1 14.5 16.1 25.1l0 3.4c0 7.3 4.9 13.8 12.1 14.9c6.5 1 13.1 1.5 19.9 1.5s13.4-.5 19.9-1.5c7.2-1.1 12.1-7.6 12.1-14.9l0-3.4c0-10.6 6.9-19.8 16.1-25.1s20.4-6.6 29.6-1.3l2.9 1.7c6.3 3.6 14.4 2.6 19-3c3.7-4.6 7.1-9.4 10.1-14.5l2.4-4.2c2.8-5.1 5.3-10.3 7.4-15.8c2.6-6.8-.5-14.3-6.8-17.9l-3-1.7c-9.2-5.3-13.7-15.8-13.7-26.4s4.5-21.1 13.7-26.4l3-1.7zM472 384a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersLine (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M211.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM32 256c0 17.7 14.3 32 32 32l85.6 0c10.1-39.4 38.6-71.5 75.8-86.6c-9.7-6-21.2-9.4-33.4-9.4l-96 0c-35.3 0-64 28.7-64 64zm461.6 32l82.4 0c17.7 0 32-14.3 32-32c0-35.3-28.7-64-64-64l-96 0c-11.7 0-22.7 3.1-32.1 8.6c38.1 14.8 67.4 47.3 77.7 87.4zM391.2 226.4c-6.9-1.6-14.2-2.4-21.6-2.4l-96 0c-8.5 0-16.7 1.1-24.5 3.1c-30.8 8.1-55.6 31.1-66.1 60.9c-3.5 10-5.5 20.8-5.5 32c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32c0-11.2-1.9-22-5.5-32c-10.8-30.7-36.8-54.2-68.9-61.6zM563.2 96a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM321.6 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersRays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 7C31.6-2.3 16.4-2.3 7 7S-2.3 31.6 7 41l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41 7zM599 7L527 79c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7 505c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 471c-9.4 9.4-9.4 24.6 0 33.9zm592 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM212.1 336c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-.5-1.4-1-2.7-1.6-4c-9.4-22.3-29.8-38.9-54.3-43c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-.8 .1-1.7 .3-2.5 .5c-24.9 5.1-45.1 23-53.4 46.5zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersRectangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l448 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L96 0zM64 96c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32l0 320c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32L64 96zm159.8 80a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0C119.9 256 96 279.9 96 309.3zM461.2 336l56.1 0c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6zM372 289c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24c-8.6-24.3-29.9-42.6-55.9-47zM512 176a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM320 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L440.6 320l178.1 0c11.8 0 21.3-9.6 21.3-21.3C640 239.8 592.2 192 533.3 192l-42.7 0c-15.9 0-31 3.5-44.6 9.7c1.3 7.2 1.9 14.7 1.9 22.3c0 30.2-10.5 58-28 79.9l-25.2-19.7C408.1 267.7 416 246.8 416 224c0-53-43-96-96-96c-31.1 0-58.7 14.8-76.3 37.7l-40.6-31.8c13-14.2 20.9-33.1 20.9-53.9c0-44.2-35.8-80-80-80C116.3 0 91.9 14.1 77.5 35.5L38.8 5.1zM106.7 192C47.8 192 0 239.8 0 298.7C0 310.4 9.6 320 21.3 320l213.3 0c.2 0 .4 0 .7 0c-20.6-18.2-35.2-42.8-40.8-70.8L121.8 192l-15.2 0zM261.3 352C187.7 352 128 411.7 128 485.3c0 14.7 11.9 26.7 26.7 26.7l330.7 0c10.5 0 19.5-6 23.9-14.8L324.9 352l-63.6 0zM512 160A80 80 0 1 0 512 0a80 80 0 1 0 0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersViewfinder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L32 0C14.3 0 0 14.3 0 32L0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88zM175.8 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-26.5 32C119.9 256 96 279.9 96 309.3c0 14.7 11.9 26.7 26.7 26.7l56.1 0c8-34.1 32.8-61.7 65.2-73.6c-7.5-4.1-16.2-6.4-25.3-6.4l-69.3 0zm368 80c14.7 0 26.7-11.9 26.7-26.7c0-29.5-23.9-53.3-53.3-53.3l-69.3 0c-9.2 0-17.8 2.3-25.3 6.4c32.4 11.9 57.2 39.5 65.2 73.6l56.1 0zm-89.4 0c-8.6-24.3-29.9-42.6-55.9-47c-3.9-.7-7.9-1-12-1l-80 0c-4.1 0-8.1 .3-12 1c-26 4.4-47.3 22.7-55.9 47c-2.7 7.5-4.1 15.6-4.1 24c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24c0-8.4-1.4-16.5-4.1-24zM464 224a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80-32a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM504 48l88 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-17.7-14.3-32-32-32L504 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM48 464l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24L0 480c0 17.7 14.3 32 32 32l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0zm456 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0c17.7 0 32-14.3 32-32l0-104c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88-88 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z\"},\"child\":[]}]})(props);\n};\nexport function FaUtensils (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0C400 0 288 32 288 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 0-112 0-208c0-17.7-14.3-32-32-32zM64 16C64 7.8 57.9 1 49.7 .1S34.2 4.6 32.4 12.5L2.1 148.8C.7 155.1 0 161.5 0 167.9c0 45.9 35.1 83.6 80 87.7L80 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7c0-6.4-.7-12.8-2.1-19.1L191.6 12.5c-1.8-8-9.3-13.3-17.4-12.4S160 7.8 160 16l0 134.2c0 5.4-4.4 9.8-9.8 9.8c-5.1 0-9.3-3.9-9.8-9L127.9 14.6C127.2 6.3 120.3 0 112 0s-15.2 6.3-15.9 14.6L83.7 151c-.5 5.1-4.7 9-9.8 9c-5.4 0-9.8-4.4-9.8-9.8L64 16zm48.3 152l-.3 0-.3 0 .3-.7 .3 .7z\"},\"child\":[]}]})(props);\n};\nexport function FaV (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"},\"child\":[]}]})(props);\n};\nexport function FaVanShuttle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 104l0 88 96 0 0-96L72 96c-4.4 0-8 3.6-8 8zm482 88L465.1 96 384 96l0 96 162 0zm-226 0l0-96-96 0 0 96 96 0zM592 384l-16 0c0 53-43 96-96 96s-96-43-96-96l-128 0c0 53-43 96-96 96s-96-43-96-96l-16 0c-26.5 0-48-21.5-48-48L0 104C0 64.2 32.2 32 72 32l120 0 160 0 113.1 0c18.9 0 36.8 8.3 49 22.8L625 186.5c9.7 11.5 15 26.1 15 41.2L640 336c0 26.5-21.5 48-48 48zm-64 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM160 432a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaVault (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C28.7 0 0 28.7 0 64L0 416c0 35.3 28.7 64 64 64l16 0 16 32 64 0 16-32 224 0 16 32 64 0 16-32 16 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64L64 0zM224 320a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-240a160 160 0 1 1 0 320 160 160 0 1 1 0-320zM480 221.3L480 336c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-114.7c-18.6-6.6-32-24.4-32-45.3c0-26.5 21.5-48 48-48s48 21.5 48 48c0 20.9-13.4 38.7-32 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVectorSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 80l32 0 0 32-32 0 0-32zM352 32c-17.7 0-32 14.3-32 32L128 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-192c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM96 160c17.7 0 32-14.3 32-32l192 0c0 17.7 14.3 32 32 32l0 192c-17.7 0-32 14.3-32 32l-192 0c0-17.7-14.3-32-32-32l0-192zM48 400l32 0 0 32-32 0 0-32zm320 32l0-32 32 0 0 32-32 0zM48 112l0-32 32 0 0 32-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusDouble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C78.1 334.1 16 262.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176zM344 318c14.6-15.6 26.8-33.4 36-53c18.8 14.4 42.4 23 68 23c61.9 0 112-50.1 112-112s-50.1-112-112-112c-25.6 0-49.1 8.6-68 23c-9.3-19.5-21.5-37.4-36-53C373.1 12.6 409.1 0 448 0c97.2 0 176 78.8 176 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-26.6-4.9-51.1-15.7-72-31.1z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusMars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM352 176c0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9C62.1 334.1 0 262.3 0 176C0 78.8 78.8 0 176 0s176 78.8 176 176zM271.9 360.6c19.3-10.1 36.9-23.1 52.1-38.4c20 18.5 46.7 29.8 76.1 29.8c61.9 0 112-50.1 112-112s-50.1-112-112-112c-7.2 0-14.3 .7-21.1 2c-4.9-21.5-13-41.7-24-60.2C369.3 66 384.4 64 400 64c37 0 71.4 11.4 99.8 31l20.6-20.6L487 41c-6.9-6.9-8.9-17.2-5.2-26.2S494.3 0 504 0L616 0c13.3 0 24 10.7 24 24l0 112c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-33.4-33.4L545 140.2c19.5 28.4 31 62.7 31 99.8c0 97.2-78.8 176-176 176c-50.5 0-96-21.3-128.1-55.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVenus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 176a112 112 0 1 1 224 0A112 112 0 1 1 80 176zM224 349.1c81.9-15 144-86.8 144-173.1C368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVestPatches (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.2 69.7l55.9 167.7-11 33.1c-2.7 8.2-4.1 16.7-4.1 25.3L192 464c0 14.5 3.9 28.2 10.7 39.9C195 509 185.9 512 176 512L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 128l0-73.7L64 48C64 21.5 85.5 0 112 0l4.5 0c.2 0 .4 0 .6 0c.4 0 .8 0 1.2 0c18.8 0 34.1 9.7 44.1 18.8C171.6 27.2 190.8 40 224 40s52.4-12.8 61.7-21.2C295.7 9.7 311 0 329.7 0c.4 0 .8 0 1.2 0c.2 0 .4 0 .6 0L336 0c26.5 0 48 21.5 48 48l0 6.3 0 73.7 0 17.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-168.2c0-5.2 .8-10.3 2.5-15.2L296.8 69.7C279.4 79.7 255.4 88 224 88s-55.4-8.3-72.8-18.3zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305l15.5 15.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288l15.5-15.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 8 0 32c0 8.8 7.2 16 16 16l32 0 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaVest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.1 237.4L151.2 69.7C168.6 79.7 192.6 88 224 88s55.4-8.3 72.8-18.3L226.5 280.6c-1.6 4.9-2.5 10-2.5 15.2L224 464c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6l0-17.5 0-73.7 0-6.3c0-26.5-21.5-48-48-48l-4.5 0c-.2 0-.4 0-.6 0c-.4 0-.8 0-1.2 0C311 0 295.7 9.7 285.7 18.8C276.4 27.2 257.2 40 224 40s-52.4-12.8-61.7-21.2C152.3 9.7 137 0 118.3 0c-.4 0-.8 0-1.2 0c-.2 0-.4 0-.6 0L112 0C85.5 0 64 21.5 64 48l0 6.3L64 128l0 17.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l128 0c9.9 0 19-3 26.7-8.1C195.9 492.2 192 478.5 192 464l0-168.2c0-8.6 1.4-17.1 4.1-25.3l11-33.1zM347.3 356.7l48 48c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-48-48c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0zm-294.6 48l48-48c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-48 48c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVialCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l64 0 64 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 170.8c-20.2 28.6-32 63.5-32 101.2c0 25.2 5.3 49.1 14.8 70.8C189.5 463.7 160.6 480 128 480c-53 0-96-43-96-96L32 96C14.3 96 0 81.7 0 64zM96 96l0 96 64 0 0-96L96 96zM224 368a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm211.3-43.3c-6.2-6.2-16.4-6.2-22.6 0L352 385.4l-28.7-28.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c6.2 6.2 16.4 6.2 22.6 0l72-72c6.2-6.2 6.2-16.4 0-22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVialVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l0 288c0 53 43 96 96 96c28.6 0 54.2-12.5 71.8-32.3c.1-14.2 5.6-28.3 16.4-39.1c.2-.2 .1-.6-.2-.6c-30.9 0-56-25.1-56-56s25.1-56 56-56c.3 0 .4-.4 .2-.6c-21.9-21.9-21.9-57.3 0-79.2c2.4-2.4 5-4.6 7.8-6.5L224 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0L96 32 32 32zM96 192l0-96 64 0 0 96-64 0zM216 376c28.8 0 43.2 34.8 22.9 55.2c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9c0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9C444.8 410.8 459.2 376 488 376c13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0C410.8 259.2 376 244.8 376 216c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2c-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-88a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm40 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVial (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4L28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1L448 205.3l9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-32-32-96-96-32-32zM205.3 256L352 109.3 402.7 160l-96 96-101.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVials (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80L32 96C14.3 96 0 81.7 0 64zM136 96L88 96l0 160 48 0 0-160zM288 64c0-17.7 14.3-32 32-32l56 0 48 0 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 304c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-304c-17.7 0-32-14.3-32-32zM424 96l-48 0 0 160 48 0 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaVideoSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2l0-256c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9l0 17.1 0 128 0 5.8-32-25.1L416 128c0-35.3-28.7-64-64-64L113.9 64 38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5l0 256c0 35.3 28.7 64 64 64l256 0c23.4 0 43.9-12.6 55-31.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 128C0 92.7 28.7 64 64 64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2l0 256c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1l0-17.1 0-128 0-17.1 14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVihara (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M281 22L305.8 4.7c1.3-.9 2.7-1.8 4.1-2.4C313.1 .7 316.6 0 320 0s6.9 .7 10.1 2.2c1.4 .7 2.8 1.5 4.1 2.4L359 22C393 45.8 430.8 63.5 470.8 74.4l23 6.3c1.8 .5 3.6 1.1 5.2 2c3.2 1.7 5.9 4 8.1 6.8c3.8 4.9 5.6 11.3 4.7 17.8c-.4 2.8-1.2 5.4-2.5 7.8c-1.7 3.2-4 5.9-6.8 8.1c-4.3 3.2-9.6 5.1-15.1 4.9l-7.5 0 0 56.1 6.4 5.1 5.2 4.1c21.1 16.7 45 29.6 70.5 38.1l28.9 9.6c1.6 .5 3.2 1.2 4.6 2c3.1 1.7 5.8 4.1 7.8 6.9s3.5 6.1 4.1 9.6c.5 2.7 .6 5.5 .1 8.3s-1.4 5.4-2.7 7.8c-1.7 3.1-4.1 5.8-6.9 7.8s-6.1 3.5-9.6 4.1c-1.6 .3-3.3 .4-5 .4L544 288l0 65.9c20.5 22.8 47.4 39.2 77.4 46.7C632 403 640 412.6 640 424c0 13.3-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24c0-11.4 8-21 18.6-23.4c30-7.6 56.9-23.9 77.4-46.7L96 288l-39.4 0c-1.7 0-3.4-.1-5-.4c-3.5-.7-6.8-2.1-9.6-4.1s-5.2-4.7-7-7.8c-1.3-2.4-2.3-5-2.7-7.8s-.4-5.6 .1-8.3c.7-3.5 2.1-6.8 4.1-9.6s4.7-5.2 7.8-6.9c1.4-.8 3-1.5 4.6-2l28.9-9.6c25.5-8.5 49.4-21.4 70.5-38.1l5.2-4.1 6.4-5.1 0-8.1 0-48-7.5 0c-5.5 .1-10.8-1.7-15.1-4.9c-2.8-2.1-5.1-4.8-6.8-8.1c-1.2-2.4-2.1-5-2.5-7.8c-.9-6.5 .9-12.8 4.7-17.8c2.1-2.8 4.8-5.1 8.1-6.8c1.6-.8 3.4-1.5 5.2-2l23-6.3C209.2 63.5 247 45.8 281 22zM416 128l-96 0-96 0 0 64 72 0 48 0 72 0 0-64zM160 288l0 64 136 0 24 0 24 0 136 0 0-64-136 0-24 0s0 0 0 0l-24 0-136 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusCovidSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L472.1 344.7c11.4-19.5 19.1-41.4 22.3-64.7l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3L484 125.9l11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L472.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L450.1 92l-23.8 23.8C402.8 97.9 374.7 85.8 344 81.6L344 48l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L280 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L189.9 92l11.3-11.3c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L134.1 79.8 38.8 5.1zM149.2 213.5c-1.5 6-2.7 12.2-3.5 18.5L112 232l0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3L156 386.1l-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L189.9 420l23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c20.4-2.8 39.7-9.1 57.3-18.2L149.2 213.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusCovid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L420 125.9l-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3L420 386.1l11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L386.1 420l-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1L125.9 420l11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L92 386.1l23.8-23.8C97.9 338.8 85.8 310.7 81.6 280L48 280l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92l23.8 23.8c23.5-17.9 51.7-29.9 82.3-34.1L232 48l-16 0c-13.3 0-24-10.7-24-24zm48 200a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm64 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-154.3-121c-2-30.1 20.8-60.1 56-60.1l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C412.3 118.4 352 93.4 352 43.5L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L184.2 75c-12.5-12.5-32.8-12.5-45.3 0c-1.6 1.6-3.1 3.4-4.3 5.3L38.8 5.1zm225.8 177c6.9-3.9 14.9-6.1 23.4-6.1c26.5 0 48 21.5 48 48c0 4.4-.6 8.7-1.7 12.7l-69.7-54.6zM402 412.7L144.7 210c-9.5 8.5-22.2 14-37.2 14L96 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6l-8.2 8.2c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-31.2 23.6-52.7 50-55.7z\"},\"child\":[]}]})(props);\n};\nexport function FaVirus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 11.5c0 49.9-60.3 74.9-95.6 39.6L120.2 75C107.7 62.5 87.5 62.5 75 75s-12.5 32.8 0 45.3l8.2 8.2C118.4 163.7 93.4 224 43.5 224L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l11.5 0c49.9 0 74.9 60.3 39.6 95.6L75 391.8c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l8.2-8.2c35.3-35.3 95.6-10.3 95.6 39.6l0 11.5c0 17.7 14.3 32 32 32s32-14.3 32-32l0-11.5c0-49.9 60.3-74.9 95.6-39.6l8.2 8.2c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-8.2-8.2c-35.3-35.3-10.3-95.6 39.6-95.6l11.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0c-49.9 0-74.9-60.3-39.6-95.6l8.2-8.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-8.2 8.2C348.3 118.4 288 93.4 288 43.5L288 32zM176 224a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaViruses (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0c13.3 0 24 10.7 24 24l0 13.5c0 35.6 43.1 53.5 68.3 28.3l9.5-9.5c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-9.5 9.5C293 124.9 310.9 168 346.5 168l13.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-13.5 0c-35.6 0-53.5 43.1-28.3 68.3l9.5 9.5c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-9.5-9.5C259.1 293 216 310.9 216 346.5l0 13.5c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-13.5c0-35.6-43.1-53.5-68.3-28.3l-9.5 9.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l9.5-9.5C91 259.1 73.1 216 37.5 216L24 216c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.5 0c35.6 0 53.5-43.1 28.3-68.3l-9.5-9.5c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l9.5 9.5C124.9 91 168 73.1 168 37.5L168 24c0-13.3 10.7-24 24-24zm48 224a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-48-64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm320 80c0 33 39.9 49.5 63.2 26.2c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6C574.5 312.1 591 352 624 352c8.8 0 16 7.2 16 16s-7.2 16-16 16c-33 0-49.5 39.9-26.2 63.2c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0C551.9 446.5 512 463 512 496c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-33-39.9-49.5-63.2-26.2c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6C417.5 423.9 401 384 368 384c-8.8 0-16-7.2-16-16s7.2-16 16-16c33 0 49.5-39.9 26.2-63.2c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0C440.1 289.5 480 273 480 240c0-8.8 7.2-16 16-16s16 7.2 16 16zm0 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 320a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm119.8 0c15.3-22.9 24.2-50.4 24.2-80c0-79.5-64.5-144-144-144S0 160.5 0 240s64.5 144 144 144l352 0c79.5 0 144-64.5 144-144s-64.5-144-144-144s-144 64.5-144 144c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaVolcano (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15C212.4 12.4 232.7 0 256 0s43.6 12.4 54.8 31C322 21.6 336.3 16 352 16c35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8c19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9c11.3 0 21.8-5.6 28-15l9.7-14.6-58.9-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4L144 352zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7c0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8c0-12.8 4.7-25.1 13.2-34.7l150.2-169z\"},\"child\":[]}]})(props);\n};\nexport function FaVolleyball (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.8 267.4c-26.1 8.7-53.4 13.8-81 15.1c9.2-105.3-31.5-204.2-103.2-272.4C434.1 41.1 512 139.5 512 256c0 3.8-.1 7.6-.2 11.4zm-3.9 34.7c-5.8 32-17.6 62-34.2 88.7c-97.5 48.5-217.7 42.6-311.9-24.5c23.7-36.2 55.4-67.7 94.5-91.8c79.9 43.2 170.1 50.8 251.6 27.6zm-236-55.5c-2.5-90.9-41.1-172.7-101.9-231.7C196.8 5.2 225.8 0 256 0c2.7 0 5.3 0 7.9 .1c90.8 60.2 145.7 167.2 134.7 282.3c-43.1-2.4-86.4-14.1-126.8-35.9zM138 28.8c20.6 18.3 38.7 39.4 53.7 62.6C95.9 136.1 30.6 220.8 7.3 316.9C2.5 297.4 0 277 0 256C0 157.2 56 71.5 138 28.8zm69.6 90.5c19.5 38.6 31 81.9 32.3 127.7C162.5 294.6 110.9 368.9 90.2 451C66 430.4 45.6 405.4 30.4 377.2c6.7-108.7 71.9-209.9 177.1-257.9zM256 512c-50.7 0-98-14.7-137.8-40.2c5.6-27 14.8-53.1 27.4-77.7C232.2 454.6 338.1 468.8 433 441c-46 44-108.3 71-177 71z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeHigh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M533.6 32.5C598.5 85.2 640 165.8 640 256s-41.5 170.7-106.4 223.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C557.5 398.2 592 331.2 592 256s-34.5-142.2-88.7-186.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM473.1 107c43.2 35.2 70.9 88.9 70.9 149s-27.7 113.8-70.9 149c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C475.3 341.3 496 301.1 496 256s-20.7-85.3-53.2-111.8c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zm-60.5 74.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5zM301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeLow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM412.6 181.5C434.1 199.1 448 225.9 448 256s-13.9 56.9-35.4 74.5c-10.3 8.4-25.4 6.8-33.8-3.5s-6.8-25.4 3.5-33.8C393.1 284.4 400 271 400 256s-6.9-28.4-17.7-37.3c-10.3-8.4-11.8-23.5-3.5-33.8s23.5-11.8 33.8-3.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 64c0-12.6-7.4-24-18.9-29.2s-25-3.1-34.4 5.3L131.8 160 64 160c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l67.8 0L266.7 471.9c9.4 8.4 22.9 10.4 34.4 5.3S320 460.6 320 448l0-384z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 34.8C312.6 40 320 51.4 320 64l0 384c0 12.6-7.4 24-18.9 29.2s-25 3.1-34.4-5.3L131.8 352 64 352c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l67.8 0L266.7 40.1c9.4-8.4 22.9-10.4 34.4-5.3zM425 167l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaVrCardboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l120.4 0c24.2 0 46.4-13.7 57.2-35.4l32-64c8.8-17.5 26.7-28.6 46.3-28.6s37.5 11.1 46.3 28.6l32 64c10.8 21.7 33 35.4 57.2 35.4L576 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64zM96 240a64 64 0 1 1 128 0A64 64 0 1 1 96 240zm384-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaW (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.8 34c16.5-6.2 35 2.2 41.2 18.7l110.2 294L257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23l85.1 291.7L514 52.8c6.2-16.5 24.6-24.9 41.2-18.7s24.9 24.7 18.7 41.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"},\"child\":[]}]})(props);\n};\nexport function FaWalkieTalkie (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 24c0-13.3-10.7-24-24-24S64 10.7 64 24l0 72L48 96C21.5 96 0 117.5 0 144L0 300.1c0 12.7 5.1 24.9 14.1 33.9l3.9 3.9c9 9 14.1 21.2 14.1 33.9L32 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-92.1c0-12.7 5.1-24.9 14.1-33.9l3.9-3.9c9-9 14.1-21.2 14.1-33.9L384 144c0-26.5-21.5-48-48-48l-16 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-32 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l-48 0 0-72zm0 136l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaWallet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L80 128c-8.8 0-16-7.2-16-16s7.2-16 16-16l368 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32zM416 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaWandMagicSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaWandMagic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.1 463.3c-18.7-18.7-18.7-49.1 0-67.9L395.4 14.1c18.7-18.7 49.1-18.7 67.9 0l34.6 34.6c18.7 18.7 18.7 49.1 0 67.9L116.5 497.9c-18.7 18.7-49.1 18.7-67.9 0L14.1 463.3zM347.6 187.6l105-105L429.4 59.3l-105 105 23.3 23.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWandSparkles (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9C94.3 508 85.3 512 75.8 512c-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7C3.5 453.4 0 445 0 436.2c0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8L87.7 218.2c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8L72.3 69.8c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"},\"child\":[]}]})(props);\n};\nexport function FaWarehouse (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 488L0 171.3c0-26.2 15.9-49.7 40.2-59.4L308.1 4.8c7.6-3.1 16.1-3.1 23.8 0L599.8 111.9c24.3 9.7 40.2 33.3 40.2 59.4L640 488c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-264c0-17.7-14.3-32-32-32l-384 0c-17.7 0-32 14.3-32 32l0 264c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm488 24l-336 0c-13.3 0-24-10.7-24-24l0-56 384 0 0 56c0 13.3-10.7 24-24 24zM128 400l0-64 384 0 0 64-384 0zm0-96l0-80 384 0 0 80-384 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWaterLadder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 127.7C128 74.9 170.9 32 223.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7l0 96.3 192 0 0-96.3C384 74.9 426.9 32 479.7 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8c-17.5 0-31.7 14.2-31.7 31.7L448 361c-1.6 1-3.3 2-4.8 3.1c-18 12.4-40.1 20.3-59.2 20.3c0 0 0 0 0 0l0-96.5-192 0 0 96.5c-19 0-41.2-7.9-59.1-20.3c-1.6-1.1-3.2-2.2-4.9-3.1l0-233.3zM306.5 389.9C329 405.4 356.5 416 384 416c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 469.7 417 480 384 480c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 405.2 165.1 416 192 416c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWater (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M269.5 69.9c11.1-7.9 25.9-7.9 37 0C329 85.4 356.5 96 384 96c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 149.7 417 160 384 160c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4C42.8 92.6 61 83.5 75.3 71.6c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 85.2 165.1 96 192 96c27.5 0 55-10.6 77.5-26.1zm37 288C329 373.4 356.5 384 384 384c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 437.7 417 448 384 448c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.4 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 373.2 165.1 384 192 384c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0zm0-144C329 229.4 356.5 240 384 240c26.9 0 55.4-10.8 77.4-26.1c0 0 0 0 0 0c11.9-8.5 28.1-7.8 39.2 1.7c14.4 11.9 32.5 21 50.6 25.2c17.2 4 27.9 21.2 23.9 38.4s-21.2 27.9-38.4 23.9c-24.5-5.7-44.9-16.5-58.2-25C449.5 293.7 417 304 384 304c-31.9 0-60.6-9.9-80.4-18.9c-5.8-2.7-11.1-5.3-15.6-7.7c-4.5 2.4-9.7 5.1-15.6 7.7c-19.8 9-48.5 18.9-80.4 18.9c-33 0-65.5-10.3-94.5-25.8c-13.4 8.4-33.7 19.3-58.2 25c-17.2 4-34.4-6.7-38.4-23.9s6.7-34.4 23.9-38.4c18.1-4.2 36.2-13.3 50.6-25.2c11.1-9.5 27.3-10.1 39.2-1.7c0 0 0 0 0 0C136.7 229.2 165.1 240 192 240c27.5 0 55-10.6 77.5-26.1c11.1-7.9 25.9-7.9 37 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWaveSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 64c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 352 96 0 0-160c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 160c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-352-96 0 0 160c0 17.7-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-160z\"},\"child\":[]}]})(props);\n};\nexport function FaWeightHanging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32c0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32L120 128c-22 0-41.2 15-46.6 36.4l-72 288c-3.6 14.3-.4 29.5 8.7 41.2S33.2 512 48 512l416 0c14.8 0 28.7-6.8 37.8-18.5s12.3-26.8 8.7-41.2l-72-288C433.2 143 414 128 392 128l-45.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWeightScale (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 176a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zM391.8 64C359.5 24.9 310.7 0 256 0S152.5 24.9 120.2 64L64 64C28.7 64 0 92.7 0 128L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-56.2 0zM296 224c0-10.6-4.1-20.2-10.9-27.4l33.6-78.3c3.5-8.1-.3-17.5-8.4-21s-17.5 .3-21 8.4L255.7 184c-22 .1-39.7 18-39.7 40c0 22.1 17.9 40 40 40s40-17.9 40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaWheatAwnCircleExclamation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c22.5 22.5 53.3 31.5 82.4 27c0-1 0-2.1 0-3.1c0-33.1 9.1-64.1 25-90.6c-15.5-8.7-32.5-13.8-49.8-15.5l31.9-31.9 12.2 12.2c6 6 12.6 11.1 19.7 15.2c27.5-34 67.3-57.5 112.6-63.8c-4.1-3.8-8.4-7.3-12.9-10.5L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3zM496 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-96a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0-144c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaWheatAwn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L383 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l88-88zM305.5 27.3c-6.2-6.2-16.4-6.2-22.6 0L271.5 38.6c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4-30.5 30.5c-3.4-27.3-15.5-53.8-36.5-74.8L101.8 231c-6.2-6.2-16.4-6.2-22.6 0L67.9 242.3c-37.5 37.5-37.5 98.3 0 135.8l10.4 10.4L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.9-68.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-21.8-21.8-49.6-34.1-78.1-36.9l31.9-31.9 12.2 12.2c37.5 37.5 98.3 37.5 135.8 0L486.5 231c6.2-6.2 6.2-16.4 0-22.6L475.2 197c-5.2-5.2-10.6-9.8-16.4-13.9L505 137c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-59.4 59.4c-20.6-4.4-42-3.7-62.3 2.1c6.1-21.3 6.6-43.8 1.4-65.3L409 41c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L329.1 52.9c-3.7-5-7.8-9.8-12.4-14.3L305.5 27.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWheelchairMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM204.5 121.3c-5.4-2.5-11.7-1.9-16.4 1.7l-40.9 30.7c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l40.9-30.7c23.7-17.8 55.3-21 82.1-8.4l90.4 42.5c29.1 13.7 36.8 51.6 15.2 75.5L299.1 224l97.4 0c30.3 0 53 27.7 47.1 57.4L415.4 422.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L377 288l-70.3 0c8.6 19.6 13.3 41.2 13.3 64c0 88.4-71.6 160-160 160S0 440.4 0 352s71.6-160 160-160c11.1 0 22 1.1 32.4 3.3l54.2-54.2-42.1-19.8zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"},\"child\":[]}]})(props);\n};\nexport function FaWheelchair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM120.5 247.2c12.4-4.7 18.7-18.5 14-30.9s-18.5-18.7-30.9-14C43.1 225.1 0 283.5 0 352c0 88.4 71.6 160 160 160c61.2 0 114.3-34.3 141.2-84.7c6.2-11.7 1.8-26.2-9.9-32.5s-26.2-1.8-32.5 9.9C240 440 202.8 464 160 464C98.1 464 48 413.9 48 352c0-47.9 30.1-88.8 72.5-104.8zM259.8 176l-1.9-9.7c-4.5-22.3-24-38.3-46.8-38.3c-30.1 0-52.7 27.5-46.8 57l23.1 115.5c6 29.9 32.2 51.4 62.8 51.4l5.1 0c.4 0 .8 0 1.3 0l94.1 0c6.7 0 12.6 4.1 15 10.4L402 459.2c6 16.1 23.8 24.6 40.1 19.1l48-16c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-18.7 6.2-25.5-68c-11.7-31.2-41.6-51.9-74.9-51.9l-68.5 0-9.6-48 63.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-76.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWhiskeyGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32c-9.3 0-18.1 4-24.2 11.1S-1 59.4 .3 68.6l50 342.9c5.7 39.3 39.4 68.5 79.2 68.5l253 0c39.7 0 73.4-29.1 79.2-68.5l50-342.9c1.3-9.2-1.4-18.5-7.5-25.5S489.3 32 480 32L32 32zM87.7 224L69 96l374 0L424.3 224 87.7 224z\"},\"child\":[]}]})(props);\n};\nexport function FaWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M54.2 202.9C123.2 136.7 216.8 96 320 96s196.8 40.7 265.8 106.9c12.8 12.2 33 11.8 45.2-.9s11.8-33-.9-45.2C549.7 79.5 440.4 32 320 32S90.3 79.5 9.8 156.7C-2.9 169-3.3 189.2 8.9 202s32.5 13.2 45.2 .9zM320 256c56.8 0 108.6 21.1 148.2 56c13.3 11.7 33.5 10.4 45.2-2.8s10.4-33.5-2.8-45.2C459.8 219.2 393 192 320 192s-139.8 27.2-190.5 72c-13.3 11.7-14.5 31.9-2.8 45.2s31.9 14.5 45.2 2.8c39.5-34.9 91.3-56 148.2-56zm64 160a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c53 0 96-43 96-96s-43-96-96-96L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l32 0c53 0 96-43 96-96s-43-96-96-96L32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 64L208 64c-8.8 0-16 7.2-16 16l0 16-64 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-64 16 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zM0 192c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zm64 32c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 192c-17.7 0-32 14.3-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWineBottle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.4 9.4c12.5-12.5 32.8-12.5 45.3 0l64 64c12.5 12.5 12.5 32.8 0 45.3c-11.8 11.8-30.7 12.5-43.2 1.9l-9.5 9.5-48.8 48.8c-9.2 9.2-11.5 22.9-8.6 35.6c9.4 40.9-1.9 85.6-33.8 117.5L197.3 493.3c-25 25-65.5 25-90.5 0l-88-88c-25-25-25-65.5 0-90.5L180.2 153.3c31.9-31.9 76.6-43.1 117.5-33.8c12.6 2.9 26.4 .5 35.5-8.6l48.8-48.8 9.5-9.5c-10.6-12.6-10-31.4 1.9-43.2zM99.3 347.3l65.4 65.4c6.2 6.2 16.4 6.2 22.6 0l97.4-97.4c6.2-6.2 6.2-16.4 0-22.6l-65.4-65.4c-6.2-6.2-16.4-6.2-22.6 0L99.3 324.7c-6.2 6.2-6.2 16.4 0 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlassEmpty (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 0C47.4 0 33.5 12.8 32.1 29.3l-14 168.4c-6 72 42.5 135.2 109.9 150.6l0 99.6-48 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0-99.6c67.4-15.4 115.9-78.6 109.9-150.6l-14-168.4C286.5 12.8 272.6 0 256 0L64 0zM81.9 203.1L93.4 64l133.1 0 11.6 139.1C242 248.8 205.9 288 160 288s-82-39.2-78.1-84.9z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.1 29.3C33.5 12.8 47.4 0 64 0L256 0c16.6 0 30.5 12.8 31.9 29.3l14 168.4c6 72-42.5 135.2-109.9 150.6l0 99.6 48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0-80 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0 0-99.6C60.6 333 12.1 269.8 18.1 197.8l14-168.4zm56 98.7l143.8 0-5.3-64L93.4 64l-5.3 64z\"},\"child\":[]}]})(props);\n};\nexport function FaWonSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M62.4 53.9C56.8 37.1 38.6 28.1 21.9 33.6S-3.9 57.4 1.6 74.1L51.6 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288l46 0L321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288l40.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-19.6 0 50-149.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2L392.9 224l-64 0L287 56.2C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L183 224l-64 0L62.4 53.9zm78 234.1l26.6 0-11.4 45.6L140.4 288zM249 224l7-28.1 7 28.1-14 0zm96 64l26.6 0-15.2 45.6L345 288z\"},\"child\":[]}]})(props);\n};\nexport function FaWorm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96c0-53 43-96 96-96l38.4 0C439.9 0 480 40.1 480 89.6l0 86.4 0 16 0 184c0 75.1-60.9 136-136 136s-136-60.9-136-136l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-168c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaWrench (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaXRay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zM256 96c-8.8 0-16 7.2-16 16l0 32-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 48-112 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l112 0 0 70.6L189.1 307c-5.2-2-10.6-3-16.2-3l-2.1 0c-23.6 0-42.8 19.2-42.8 42.8c0 9.6 3.2 18.9 9.1 26.4l18.2 23.2c9.7 12.4 24.6 19.6 40.3 19.6l120.8 0c15.7 0 30.6-7.2 40.3-19.6l18.2-23.2c5.9-7.5 9.1-16.8 9.1-26.4c0-23.6-19.2-42.8-42.8-42.8l-2.2 0c-5.5 0-11 1-16.2 3L272 326.6l0-70.6 112 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-112 0 0-48 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0 0-32c0-8.8-7.2-16-16-16zM208 352a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm80 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"},\"child\":[]}]})(props);\n};\nexport function FaXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z\"},\"child\":[]}]})(props);\n};\nexport function FaXmarksLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55L7 311c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55L41 167c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaY (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7L378 82.6c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"},\"child\":[]}]})(props);\n};\nexport function FaYenSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M58.6 46.3C48.8 31.5 29 27.6 14.2 37.4S-4.4 67 5.4 81.8L100.2 224 48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 32-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-32 80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.2 0L314.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L160 198.3 58.6 46.3z\"},\"child\":[]}]})(props);\n};\nexport function FaYinYang (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64c53 0 96 43 96 96s-43 96-96 96s-96 43-96 96s43 96 96 96C150 448 64 362 64 256S150 64 256 64zm0 448A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm32-352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaZ (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBellSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L542.6 400c2.7-7.8 1.3-16.5-3.9-23l-14.9-18.6C495.5 322.9 480 278.8 480 233.4l0-33.4c0-75.8-55.5-138.6-128-150.1L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 17.9c-43.9 7-81.5 32.7-104.4 68.7L38.8 5.1zM221.7 148.4C239.6 117.1 273.3 96 312 96l8 0 8 0c57.4 0 104 46.6 104 104l0 33.4c0 32.7 6.4 64.8 18.7 94.5L221.7 148.4zM406.2 416l-60.9-48-176.9 0c21.2-32.8 34.4-70.3 38.4-109.1L160 222.1l0 11.4c0 45.4-15.5 89.5-43.8 124.9L101.3 377c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l286.2 0zM384 448l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 25.4c0 45.4-15.5 89.5-43.8 124.9L5.3 377c-5.8 7.2-6.9 17.1-2.9 25.4S14.8 416 24 416l400 0c9.2 0 17.6-5.3 21.6-13.6s2.9-18.2-2.9-25.4l-14.9-18.6C399.5 322.9 384 278.8 384 233.4l0-25.4c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm0 96c61.9 0 112 50.1 112 112l0 25.4c0 47.9 13.9 94.6 39.7 134.6L72.3 368C98.1 328 112 281.3 112 233.4l0-25.4c0-61.9 50.1-112 112-112zm64 352l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7s18.7-28.3 18.7-45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 48C0 21.5 21.5 0 48 0l0 48 0 393.4 130.1-92.9c8.3-6 19.6-6 27.9 0L336 441.4 336 48 48 48 48 0 336 0c26.5 0 48 21.5 48 48l0 440c0 9-5 17.2-13 21.3s-17.6 3.4-24.9-1.8L192 397.5 37.9 507.5c-7.3 5.2-16.9 5.9-24.9 1.8S0 497 0 488L0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBuilding (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-64c0-26.5 21.5-48 48-48s48 21.5 48 48l0 64 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm88 40c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zM232 88l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16zM88 232c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48zm144-16l48 0c8.8 0 16 7.2 16 16l0 48c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM329 297L217 409c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 95-95c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarDays (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l80 0 0 56-80 0 0-56zm0 104l80 0 0 64-80 0 0-64zm128 0l96 0 0 64-96 0 0-64zm144 0l80 0 0 64-80 0 0-64zm80-48l-80 0 0-56 80 0 0 56zm0 160l0 40c0 8.8-7.2 16-16 16l-64 0 0-56 80 0zm-128 0l0 56-96 0 0-56 96 0zm-144 0l0 56-64 0c-8.8 0-16-7.2-16-16l0-40 80 0zM272 248l-96 0 0-56 96 0 0 56z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zM296 352l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256zm176 40c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c13.3 0 24 10.7 24 24l0 40 144 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 40 0c35.3 0 64 28.7 64 64l0 16 0 48 0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192l0-48 0-16C0 92.7 28.7 64 64 64l40 0 0-40c0-13.3 10.7-24 24-24zM400 192L48 192l0 256c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-256zm-95 89l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L64 64C28.7 64 0 92.7 0 128l0 16 0 48L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256 0-48 0-16c0-35.3-28.7-64-64-64l-40 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40L152 64l0-40zM48 192l352 0 0 256c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChartBar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 32c13.3 0 24 10.7 24 24l0 352c0 13.3 10.7 24 24 24l416 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L72 480c-39.8 0-72-32.2-72-72L0 56C0 42.7 10.7 32 24 32zM128 136c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm24 72l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessBishop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 0C90.7 0 80 10.7 80 24c0 11.2 7.6 20.6 18 23.2c-7.8 8-16.1 17-24.4 27C38.2 116.7 0 178.8 0 250.9c0 44.8 24.6 72.2 48 87.8L48 352l48 0 0-27c0-9-5-17.2-13-21.3c-18-9.3-35-24.7-35-52.7c0-55.5 29.8-106.8 62.4-145.9c16-19.2 32.1-34.8 44.2-45.5c1.9-1.7 3.7-3.2 5.3-4.6c1.7 1.4 3.4 3 5.3 4.6c12.1 10.7 28.2 26.3 44.2 45.5c5.3 6.3 10.5 13 15.5 20L159 191c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57.8-57.8c12.8 25.9 21.2 54.3 21.2 83.8c0 28-17 43.4-35 52.7c-8 4.1-13 12.3-13 21.3l0 27 48 0 0-13.3c23.4-15.6 48-42.9 48-87.8c0-72.1-38.2-134.2-73.6-176.7c-8.3-9.9-16.6-19-24.4-27c10.3-2.7 18-12.1 18-23.2c0-13.3-10.7-24-24-24L160 0 104 0zM52.7 464l16.6-32 181.6 0 16.6 32L52.7 464zm207.9-80l-201 0c-12 0-22.9 6.7-28.4 17.3L4.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C0 493.8 18.2 512 40.8 512l238.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2c-5.5-10.6-16.5-17.3-28.4-17.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessKing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 40L59.6 144C26.7 144 0 170.7 0 203.6c0 8.2 1.7 16.3 4.9 23.8L59.1 352l52.3 0L49 208.2c-.6-1.5-1-3-1-4.6c0-6.4 5.2-11.6 11.6-11.6L224 192l164.4 0c6.4 0 11.6 5.2 11.6 11.6c0 1.6-.3 3.2-1 4.6L336.5 352l52.3 0 54.2-124.6c3.3-7.5 4.9-15.6 4.9-23.8c0-32.9-26.7-59.6-59.6-59.6L248 144l0-40 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM101.2 432l245.6 0 16.6 32L84.7 464l16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L36.6 452.5c-3 5.8-4.6 12.2-4.6 18.7C32 493.8 50.2 512 72.8 512l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessKnight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M226.6 48L117.3 48l17.1 12.8c6 4.5 9.6 11.6 9.6 19.2s-3.6 14.7-9.6 19.2l-6.5 4.9c-10 7.5-16 19.3-16 31.9l-.3 91c0 10.2 4.9 19.9 13.2 25.8l1.9 1.3c9.9 7.1 23.3 7 33.2-.1l49.9-36.3c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5l-49.9 36.3-53.8 39.1c-7.3 5.3-13 12.2-16.9 20.1l-50.7 0c5.3-22.1 17.8-41.9 35.9-56.3c-1.3-.8-2.6-1.7-3.8-2.6L97 291.8c-21-15-33.4-39.2-33.3-65l.3-91c.1-19.8 6.7-38.7 18.6-53.9l-.4-.3C70.7 73 64 59.6 64 45.3C64 20.3 84.3 0 109.3 0L226.6 0C331.2 0 416 84.8 416 189.4c0 11.1-1 22.2-2.9 33.2L390.1 352l-48.8 0 24.5-137.8c1.5-8.2 2.2-16.5 2.2-24.8C368 111.3 304.7 48 226.6 48zM85.2 432L68.7 464l310.7 0-16.6-32L85.2 432zm315.7-30.7l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L56.8 512C34.2 512 16 493.8 16 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C52.5 390.7 63.5 384 75.5 384l297 0c12 0 22.9 6.7 28.4 17.3zM172 128a20 20 0 1 1 0 40 20 20 0 1 1 0-40z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessPawn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 152A72 72 0 1 0 88 152a72 72 0 1 0 144 0zm24 120l-12.6 0 10.7 80-48.4 0L195 272l-35 0-35 0-10.7 80-48.4 0 10.7-80L64 272c-13.3 0-24-10.7-24-24s10.7-24 24-24c-15.1-20.1-24-45-24-72C40 85.7 93.7 32 160 32s120 53.7 120 120c0 27-8.9 51.9-24 72c13.3 0 24 10.7 24 24s-10.7 24-24 24zM52.7 464l214.7 0-16.6-32L69.2 432 52.7 464zm207.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L40.8 512C18.2 512 0 493.8 0 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C36.5 390.7 47.5 384 59.5 384l201 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessQueen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-95.2-8c-18.1 0-31.3 12.8-35.6 26.9c-8 26.2-32.4 45.2-61.2 45.2c-10 0-19.4-2.3-27.7-6.3c-7.6-3.7-16.7-3.3-24 1.2C.7 162.1-3.1 177.1 3.7 188.9L97.6 352l55.4 0-83-144.1c40.5-2.2 75.3-25.9 93.1-59.8c22 26.8 55.4 43.9 92.8 43.9s70.8-17.1 92.8-43.9c17.8 34 52.6 57.7 93.1 59.8L359 352l55.4 0 93.9-163.1c6.8-11.7 3-26.7-8.6-33.8c-7.3-4.5-16.4-4.9-24-1.2c-8.4 4-17.7 6.3-27.7 6.3c-28.8 0-53.2-19-61.2-45.2C382.5 100.8 369.3 88 351.2 88c-14.5 0-26.3 8.5-32.4 19.3c-12.4 22-35.9 36.7-62.8 36.7s-50.4-14.8-62.8-36.7C187.1 96.5 175.4 88 160.8 88zM133.2 432l245.6 0 16.6 32-278.7 0 16.6-32zm283.7-30.7c-5.5-10.6-16.5-17.3-28.4-17.3l-265 0c-12 0-22.9 6.7-28.4 17.3L68.6 452.5c-3 5.8-4.6 12.2-4.6 18.7c0 22.5 18.2 40.8 40.8 40.8l302.5 0c22.5 0 40.8-18.2 40.8-40.8c0-6.5-1.6-12.9-4.6-18.7l-26.5-51.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChessRook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 80l0 112c0 2.5 1.2 4.9 3.2 6.4l51.2 38.4c6.8 5.1 10.4 13.4 9.5 21.9L133.5 352l-48.3 0 9.4-85L54.4 236.8C40.3 226.2 32 209.6 32 192L32 72c0-22.1 17.9-40 40-40l304 0c22.1 0 40 17.9 40 40l0 120c0 17.6-8.3 34.2-22.4 44.8L353.4 267l9.4 85-48.3 0-10.4-93.3c-.9-8.4 2.7-16.8 9.5-21.9l51.2-38.4c2-1.5 3.2-3.9 3.2-6.4l0-112-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24L80 80zm4.7 384l278.7 0-16.6-32-245.6 0L84.7 464zm271.9-80c12 0 22.9 6.7 28.4 17.3l26.5 51.2c3 5.8 4.6 12.2 4.6 18.7c0 22.5-18.2 40.8-40.8 40.8L72.8 512C50.2 512 32 493.8 32 471.2c0-6.5 1.6-12.9 4.6-18.7l26.5-51.2C68.5 390.7 79.5 384 91.5 384l265 0zM208 288c-8.8 0-16-7.2-16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 8.8-7.2 16-16 16l-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleDot (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM128 256l0 32L256 416 384 288l0-32-80 0 0-128-96 0 0 128-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 256a208 208 0 1 1 416 0A208 208 0 1 1 48 256zm464 0A256 256 0 1 0 0 256a256 256 0 1 0 512 0zM256 128l-32 0L96 256 224 384l32 0 0-80 128 0 0-96-128 0 0-80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCirclePause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm224-72l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24zm112 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCirclePlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM188.3 147.1c7.6-4.2 16.8-4.1 24.3 .5l144 88c7.1 4.4 11.5 12.1 11.5 20.5s-4.4 16.1-11.5 20.5l-144 88c-7.4 4.5-16.7 4.7-24.3 .5s-12.3-12.2-12.3-20.9l0-176c0-8.7 4.7-16.7 12.3-20.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleQuestion (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM294.6 151.2c-4.2-4.6-10.1-7.2-16.4-7.2C266 144 256 154 256 166.3l0 41.7-96 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l96 0 0 41.7c0 12.3 10 22.3 22.3 22.3c6.2 0 12.1-2.6 16.4-7.2l84-91c3.5-3.8 5.4-8.7 5.4-13.9s-1.9-10.1-5.4-13.9l-84-91z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleStop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm192-96l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM151.2 217.4c-4.6 4.2-7.2 10.1-7.2 16.4c0 12.3 10 22.3 22.3 22.3l41.7 0 0 96c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-96 41.7 0c12.3 0 22.3-10 22.3-22.3c0-6.2-2.6-12.1-7.2-16.4l-91-84c-3.8-3.5-8.7-5.4-13.9-5.4s-10.1 1.9-13.9 5.4l-91 84z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6C69.9 362.2 48 311.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280 64l40 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l40 0 9.6 0C121 27.5 153.3 0 192 0s71 27.5 78.4 64l9.6 0zM64 112c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16l-16 0 0 24c0 13.3-10.7 24-24 24l-88 0-88 0c-13.3 0-24-10.7-24-24l0-24-16 0zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l224 0c8.8 0 16-7.2 16-16l0-64 48 0 0 64c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 0 48-64 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zM224 304l224 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16L224 48c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16zm-64-16l0-224c0-35.3 28.7-64 64-64L448 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-224 0c-35.3 0-64-28.7-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClosedCaptioning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 208c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48s21.5-48 48-48zm144 48c0-26.5 21.5-48 48-48c14.2 0 27 6.1 35.8 16c8.8 9.9 24 10.7 33.9 1.9s10.7-24 1.9-33.9c-17.5-19.6-43.1-32-71.5-32c-53 0-96 43-96 96s43 96 96 96c28.4 0 54-12.4 71.5-32c8.8-9.9 8-25-1.9-33.9s-25-8-33.9 1.9c-8.8 9.9-21.6 16-35.8 16c-26.5 0-48-21.5-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCommentDots (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComment (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M123.6 391.3c12.9-9.4 29.6-11.8 44.6-6.4c26.5 9.6 56.2 15.1 87.8 15.1c124.7 0 208-80.5 208-160s-83.3-160-208-160S48 160.5 48 240c0 32 12.4 62.8 35.7 89.2c8.6 9.7 12.8 22.5 11.8 35.5c-1.4 18.1-5.7 34.7-11.3 49.4c17-7.9 31.1-16.7 39.4-22.7zM21.2 431.9c1.8-2.7 3.5-5.4 5.1-8.1c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208s-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6c-15.1 6.6-32.3 12.6-50.1 16.1c-.8 .2-1.6 .3-2.4 .5c-4.4 .8-8.7 1.5-13.2 1.9c-.2 0-.5 .1-.7 .1c-5.1 .5-10.2 .8-15.3 .8c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c4.1-4.2 7.8-8.7 11.3-13.5c1.7-2.3 3.3-4.6 4.8-6.9l.3-.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComments (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.8 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L400 115.9 400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9L366.1 14.1c-9-9-21.2-14.1-33.9-14.1L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-32-48 0 0 32c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l32 0 0-48-32 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopyright (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM199.4 312.6c-31.2-31.2-31.2-81.9 0-113.1s81.9-31.2 113.1 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-50-50-131-50-181 0s-50 131 0 181s131 50 181 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-31.2 31.2-81.9 31.2-113.1 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 80c8.8 0 16 7.2 16 16l0 32L48 128l0-32c0-8.8 7.2-16 16-16l448 0zm16 144l0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 304c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelopeOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.4 48.2c.2-.1 .4-.2 .6-.2s.4 .1 .6 .2L460.6 194c2.1 1.5 3.4 3.9 3.4 6.5l0 13.6L291.5 355.7c-20.7 17-50.4 17-71.1 0L48 214.1l0-13.6c0-2.6 1.2-5 3.4-6.5L255.4 48.2zM48 276.2L190 392.8c38.4 31.5 93.7 31.5 132 0L464 276.2 464 456c0 4.4-3.6 8-8 8L56 464c-4.4 0-8-3.6-8-8l0-179.8zM256 0c-10.2 0-20.2 3.2-28.5 9.1L23.5 154.9C8.7 165.4 0 182.4 0 200.5L0 456c0 30.9 25.1 56 56 56l400 0c30.9 0 56-25.1 56-56l0-255.5c0-18.1-8.7-35.1-23.4-45.6L284.5 9.1C276.2 3.2 266.2 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelope (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 112c-8.8 0-16 7.2-16 16l0 22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1l0-22.1c0-8.8-7.2-16-16-16L64 112zM48 212.2L48 384c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-171.8L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEyeSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceAngry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm72.4-118.5c9.7-9 10.2-24.2 1.2-33.9C315.3 344.3 290.6 328 256 328s-59.3 16.3-73.5 31.6c-9 9.7-8.5 24.9 1.2 33.9s24.9 8.5 33.9-1.2c7.4-7.9 20-16.4 38.5-16.4s31.1 8.5 38.5 16.4c9 9.7 24.2 10.2 33.9 1.2zM176.4 272c17.7 0 32-14.3 32-32c0-1.5-.1-3-.3-4.4l10.9 3.6c8.4 2.8 17.4-1.7 20.2-10.1s-1.7-17.4-10.1-20.2l-96-32c-8.4-2.8-17.4 1.7-20.2 10.1s1.7 17.4 10.1 20.2l30.7 10.2c-5.8 5.8-9.3 13.8-9.3 22.6c0 17.7 14.3 32 32 32zm192-32c0-8.9-3.6-17-9.5-22.8l30.2-10.1c8.4-2.8 12.9-11.9 10.1-20.2s-11.9-12.9-20.2-10.1l-96 32c-8.4 2.8-12.9 11.9-10.1 20.2s11.9 12.9 20.2 10.1l11.7-3.9c-.2 1.5-.3 3.1-.3 4.7c0 17.7 14.3 32 32 32s32-14.3 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceDizzy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 32a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM103 135c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9zm192 0c9.4-9.4 24.6-9.4 33.9 0l23 23 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-23 23 23 23c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l23-23-23-23c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceFlushed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM160.4 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceFrownOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4c16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4c-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zM174.6 384.1c-4.5 12.5-18.2 18.9-30.7 14.4s-18.9-18.2-14.4-30.7C146.9 319.4 198.9 288 256 288s109.1 31.4 126.6 79.9c4.5 12.5-2 26.2-14.4 30.7s-26.2-2-30.7-14.4C328.2 358.5 297.2 336 256 336s-72.2 22.5-81.4 48.1zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrimace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM168 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0-48-8 0zm40 48l32 0 0-48-32 0 0 48zm96 0l0-48-32 0 0 48 32 0zm32 0l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0 48zM168 288l176 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-176 0c-30.9 0-56-25.1-56-56s25.1-56 56-56zm-23.6-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinBeamSweat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.8 126.3C497.1 120.8 512 102.7 512 81c0-20-28.6-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0c-9.5 12.6-27.1 37.2-36 57.5c-.3 .7-.6 1.4-.9 2.1C417.8 69.7 416 76 416 81c0 26 21.5 47 48 47c4.4 0 8.7-.6 12.8-1.7zM395.4 41.2C355.3 15.2 307.4 0 256 0C114.6 0 0 114.6 0 256S114.6 512 256 512s256-114.6 256-256c0-35.8-7.3-69.9-20.6-100.8c-8.6 3.1-17.8 4.8-27.4 4.8c-8.9 0-17.6-1.5-25.7-4.2C454.7 185.5 464 219.7 464 256c0 114.9-93.1 208-208 208S48 370.9 48 256S141.1 48 256 48c48.7 0 93.4 16.7 128.9 44.7c-.6-3.8-.9-7.7-.9-11.7c0-11.4 3.8-22.4 7.1-30.5c1.3-3.1 2.7-6.2 4.3-9.3zM375 336.5c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5zM217.6 228.8s0 0 0 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C126.7 188.4 120 206.1 120 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0zm160 0s0 0 0 0s0 0 0 0c2.1 2.8 5.7 3.9 8.9 2.8s5.5-4.1 5.5-7.6c0-17.9-6.7-35.6-16.6-48.8c-9.8-13-23.9-23.2-39.4-23.2s-29.6 10.2-39.4 23.2C286.7 188.4 280 206.1 280 224c0 3.4 2.2 6.5 5.5 7.6s6.9 0 8.9-2.8c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.2c.2-.2 .4-.5 .7-.9c.6-.8 1.6-2 2.8-3.4c2.5-2.8 6-6.6 10.2-10.3c8.8-7.8 18.8-14 27.7-14s18.9 6.2 27.7 14c4.2 3.7 7.7 7.5 10.2 10.3c1.2 1.4 2.2 2.6 2.8 3.4c.3 .4 .6 .7 .7 .9l.2 .2c0 0 0 0 0 0c0 0 0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM217.6 228.8s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinHearts (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM215.3 137.1c17.8 4.8 28.4 23.1 23.6 40.8l-17.4 65c-2.3 8.5-11.1 13.6-19.6 11.3l-65.1-17.4c-17.8-4.8-28.4-23.1-23.6-40.8s23.1-28.4 40.8-23.6l16.1 4.3 4.3-16.1c4.8-17.8 23.1-28.4 40.8-23.6zm122.3 23.6l4.3 16.1 16.1-4.3c17.8-4.8 36.1 5.8 40.8 23.6s-5.8 36.1-23.6 40.8l-65.1 17.4c-8.5 2.3-17.3-2.8-19.6-11.3l-17.4-65c-4.8-17.8 5.8-36.1 23.6-40.8s36.1 5.8 40.9 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinSquintTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M426.8 14.2C446-5 477.5-4.6 497.1 14.9s20 51 .7 70.3c-14.8 14.8-65.7 23.6-88.3 26.7c-5.6 .9-10.3-3.9-9.5-9.5C403.3 79.9 412 29 426.8 14.2zM75 75C158.2-8.3 284.5-22.2 382.2 33.2c-1.5 4.8-2.9 9.6-4.1 14.3c-3.1 12.2-5.5 24.6-7.3 35c-80.8-53.6-190.7-44.8-261.9 26.4C37.7 180.1 28.9 290 82.5 370.8c-10.5 1.8-22.9 4.2-35 7.3c-4.7 1.2-9.5 2.5-14.3 4.1C-22.2 284.5-8.2 158.2 75 75zm389.6 58.9c4.7-1.2 9.5-2.5 14.3-4.1C534.2 227.5 520.2 353.8 437 437c-83.2 83.2-209.5 97.2-307.2 41.8c1.5-4.8 2.8-9.6 4-14.3c3.1-12.2 5.5-24.6 7.3-35c80.8 53.6 190.7 44.8 261.9-26.4c71.2-71.2 80-181.1 26.4-261.9c10.5-1.8 22.9-4.2 35-7.3zm-105.4 93c10.1-16.3 33.9-16.9 37.9 1.9c9.5 44.4-3.7 93.5-39.3 129.1s-84.8 48.8-129.1 39.3c-18.7-4-18.2-27.8-1.9-37.9c25.2-15.7 50.2-35.4 73.6-58.8s43.1-48.4 58.8-73.6zM92 265.3l97.4-29.7c11.6-3.5 22.5 7.3 19 19l-29.7 97.4c-2.6 8.6-13.4 11.3-19.8 4.9c-2-2-3.2-4.6-3.4-7.3l-5.1-56.1-56.1-5.1c-2.8-.3-5.4-1.5-7.3-3.4c-6.3-6.3-3.6-17.2 4.9-19.8zm193-178.2c2 2 3.2 4.6 3.4 7.3l5.1 56.1 56.1 5.1c2.8 .3 5.4 1.5 7.3 3.4c6.3 6.3 3.6 17.2-4.9 19.8l-97.4 29.7c-11.6 3.5-22.5-7.3-19-19L265.3 92c2.6-8.6 13.4-11.3 19.8-4.9zM14.9 497.1c-19.6-19.6-20-51-.7-70.3C29 412 79.8 403.2 102.4 400.1c5.6-.9 10.3 3.9 9.5 9.5c-3.2 22.5-11.9 73.5-26.7 88.3C66 517 34.5 516.6 14.9 497.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zm-216-161.7l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinStars (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM183.2 132.6c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L176 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L242.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm160 0c-1.3-2.8-4.1-4.6-7.2-4.6s-5.9 1.8-7.2 4.6l-16.6 34.7-38.1 5c-3.1 .4-5.6 2.5-6.6 5.5s-.1 6.2 2.1 8.3l27.9 26.5-7 37.8c-.6 3 .7 6.1 3.2 7.9s5.8 2 8.5 .6L336 240.5l33.8 18.3c2.7 1.5 6 1.3 8.5-.6s3.7-4.9 3.2-7.9l-7-37.8L402.4 186c2.2-2.1 3.1-5.3 2.1-8.3s-3.5-5.1-6.6-5.5l-38.1-5-16.6-34.7zm6.3 175.8c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c24.6 38.1 68.7 63.5 119.1 63.5s94.5-25.4 119.1-63.5c10.4-16.1-6.8-32.5-25.5-28.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTears (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M516.1 325.5c1 3 2.1 6 3.3 8.9c3.3 8.1 8.4 18.5 16.5 26.6c3.9 3.9 8.2 7.4 12.7 10.3C506.4 454.8 419.9 512 320 512s-186.4-57.2-228.6-140.6c4.5-2.9 8.7-6.3 12.7-10.3c8.1-8.1 13.2-18.6 16.5-26.6c1.2-2.9 2.3-5.9 3.3-8.9C152.5 406.2 229.5 464 320 464s167.5-57.8 196.1-138.5zM320 48c-101.4 0-185.8 72.5-204.3 168.5c-6.7-3.1-14.3-4.3-22.3-3.1c-6.8 .9-16.2 2.4-26.6 4.4C85.3 94.5 191.6 0 320 0S554.7 94.5 573.2 217.7c-10.3-2-19.8-3.5-26.6-4.4c-8-1.2-15.7 .1-22.3 3.1C505.8 120.5 421.4 48 320 48zM78.5 341.1C60 356.7 32 355.5 14.3 337.7c-18.7-18.7-19.1-48.8-.7-67.2c8.6-8.6 30.1-15.1 50.5-19.6c13-2.8 25.5-4.8 33.9-6c5.4-.8 9.9 3.7 9 9c-3.1 21.5-11.4 70.2-25.5 84.4c-.9 1-1.9 1.8-2.9 2.7zm483 0c-.8-.6-1.5-1.3-2.3-2c-.2-.2-.5-.4-.7-.7c-14.1-14.1-22.5-62.9-25.5-84.4c-.8-5.4 3.7-9.9 9-9c1 .1 2.2 .3 3.3 .5c8.2 1.2 19.2 3 30.6 5.5c20.4 4.4 41.9 10.9 50.5 19.6c18.4 18.4 18 48.5-.7 67.2c-17.7 17.7-45.7 19-64.2 3.4zM439 336.5C414.4 374.6 370.3 400 319.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1zM281.6 228.8c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0zm160 0s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTongueSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-23.3c-24-17.5-43.1-41.4-54.8-69.2c-5-11.8 7-22.5 19.3-18.7c39.7 12.2 84.5 19 131.8 19s92.1-6.8 131.8-19c12.3-3.8 24.3 6.9 19.3 18.7c-11.8 28-31.1 52-55.4 69.6l0 22.9c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm116-98.9c0-9 9.6-14.7 17.5-10.5l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6zm262.5-10.5c7.9-4.2 17.5 1.5 17.5 10.5c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTongueWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M348.3 442.4c2.4-8.4 3.7-17.3 3.7-26.4l0-52.5c8.8-8 16.6-17.1 23-27c10.4-16.1-6.8-32.5-25.5-28.1c-28.9 6.8-60.5 10.5-93.6 10.5s-64.7-3.7-93.6-10.5c-18.7-4.4-35.9 12-25.5 28.1c6.5 10 14.3 19.1 23.1 27.1l0 52.4c0 9.2 1.3 18 3.7 26.4C95.1 408.4 48 337.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 81.7-47.1 152.4-115.7 186.4zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm176.7 12a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-.4-72a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zM320 416c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9c2.8 12.6 20.8 12.6 23.6 0c2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6l0 37.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinTongue (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 81.7 47.1 152.4 115.7 186.4c-2.4-8.4-3.7-17.3-3.7-26.4l0-52.4c-8.9-8-16.7-17.1-23.1-27.1c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5c18.7-4.4 35.9 12 25.5 28.1c-6.4 9.9-14.2 19-23 27l0 52.5c0 9.2-1.3 18-3.7 26.4C416.9 408.4 464 337.7 464 256zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9c-2.8 12.6-20.8 12.6-23.6 0c-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinWide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64s32 28.7 32 64s-14.3 64-32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrinWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceGrin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm349.5 52.4c18.7-4.4 35.9 12 25.5 28.1C350.4 374.6 306.3 400 255.9 400s-94.5-25.4-119.1-63.5c-10.4-16.1 6.8-32.5 25.5-28.1c28.9 6.8 60.5 10.5 93.6 10.5s64.7-3.7 93.6-10.5zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceKissBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 41.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 427.1 257.4 432 240 432c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zm-87.1-68.9s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceKissWinkHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M338.9 446.8c-25.4 11-53.4 17.2-82.9 17.2C141.1 464 48 370.9 48 256S141.1 48 256 48s208 93.1 208 208c0 22.4-3.5 43.9-10.1 64.1c3.1 4.5 5.7 9.4 7.8 14.6c12.7-1.6 25.1 .4 36.2 5c9.1-26.2 14-54.4 14-83.7C512 114.6 397.4 0 256 0S0 114.6 0 256S114.6 512 256 512c35.4 0 69.1-7.2 99.7-20.2c-4.8-5.5-8.5-12.2-10.4-19.7l-6.5-25.3zM296 316c0-6.9-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4C258.7 276.9 241.4 272 224 272c-3.6 0-6.8 2.5-7.7 6s.6 7.2 3.8 9c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c-2.5 1.4-4.1 4.1-4.1 7s1.6 5.6 4.1 7c0 0 0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2 .1c.2 .1 .5 .3 .9 .5c.8 .5 2 1.2 3.4 2.1c2.8 1.9 6.5 4.5 10.2 7.6c3.7 3.1 7.2 6.6 9.6 10.1c2.5 3.5 3.5 6.4 3.5 8.6s-1 5-3.5 8.6c-2.5 3.5-5.9 6.9-9.6 10.1c-3.7 3.1-7.4 5.7-10.2 7.6c-1.4 .9-2.6 1.6-3.4 2.1c-.4 .2-.7 .4-.9 .5l-.2 .1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-3.2 1.8-4.7 5.5-3.8 9s4.1 6 7.7 6c17.4 0 34.7-4.9 47.9-12.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3s-3.1-13.2-7.3-18.3c-4.3-5.2-10.1-9.7-16.7-13.4c-2.7-1.5-5.7-3-8.7-4.3c3.1-1.3 6-2.7 8.7-4.3c6.6-3.7 12.5-8.2 16.7-13.4c4.3-5.1 7.3-11.4 7.3-18.3zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm159.3-20c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C375.7 186.8 355 180 335.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zM434 352.3c-6-23.2-28.8-37-51.1-30.8s-35.4 30.1-29.5 53.4l22.9 89.3c2.2 8.7 11.2 13.9 19.8 11.4l84.9-23.8c22.2-6.2 35.4-30.1 29.5-53.4s-28.8-37-51.1-30.8l-20.2 5.6-5.4-21z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceKiss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm304.7 25.7c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4c-2.7 1.5-5.7 3-8.7 4.3c3.1 1.3 6 2.7 8.7 4.3c6.6 3.7 12.5 8.2 16.7 13.4c4.3 5.1 7.3 11.4 7.3 18.3s-3.1 13.2-7.3 18.3c-4.3 5.2-10.1 9.7-16.7 13.4C274.7 411.1 257.4 416 240 416c-3.6 0-6.8-2.5-7.7-6s.6-7.2 3.8-9c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1l-.8-.5-.1-.1-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.5-1.4-4.1-4.1-4.1-7s1.6-5.6 4.1-7c0 0 0 0 0 0s0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.2-.1c.2-.1 .5-.3 .9-.5c.8-.5 2-1.2 3.4-2.1c2.8-1.9 6.5-4.5 10.2-7.6c3.7-3.1 7.2-6.6 9.6-10.1c2.5-3.5 3.5-6.4 3.5-8.6s-1-5-3.5-8.6c-2.5-3.5-5.9-6.9-9.6-10.1c-3.7-3.1-7.4-5.7-10.2-7.6c-1.4-.9-2.6-1.6-3.4-2.1c-.4-.2-.7-.4-.9-.5l-.2-.1c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-3.2-1.8-4.7-5.5-3.8-9s4.1-6 7.7-6c17.4 0 34.7 4.9 47.9 12.3c6.6 3.7 12.5 8.2 16.7 13.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaughBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm86.9-85.1s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaughSquint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zm2.8-183.3l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 141.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaughWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceLaugh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm130.7 57.9c-4.2-13.6 7.1-25.9 21.3-25.9l212.5 0c14.2 0 25.5 12.4 21.3 25.9C369 368.4 318.2 408 258.2 408s-110.8-39.6-127.5-94.1zM144.4 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceMehBlank (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256A256 256 0 1 1 0 256a256 256 0 1 1 512 0zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 1 48 256a208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512A256 256 0 1 0 256 0zM176.4 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceRollingEyes (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM168 376c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-104c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-32c-26.5 0-48-21.5-48-48c0-14.3 6.3-27.2 16.2-36c-.2 1.3-.2 2.6-.2 4c0 17.7 14.3 32 32 32s32-14.3 32-32c0-1.4-.1-2.7-.2-4c10 8.8 16.2 21.7 16.2 36c0 26.5-21.5 48-48 48zm0 32a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSadCry (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM159.6 220c10.6 0 19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C199.7 186.8 179 180 159.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9c5.5-5.8 14.8-9.7 25.4-9.7zm166.6 9.7c5.5-5.8 14.8-9.7 25.4-9.7s19.9 3.8 25.4 9.7c7.6 8.1 20.2 8.5 28.3 .9s8.5-20.2 .9-28.3C391.7 186.8 371 180 351.6 180s-40.1 6.8-54.6 22.3c-7.6 8.1-7.1 20.7 .9 28.3s20.7 7.1 28.3-.9zM208 320l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSadTear (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M175.9 448c-35-.1-65.5-22.6-76-54.6C67.6 356.8 48 308.7 48 256C48 141.1 141.1 48 256 48s208 93.1 208 208s-93.1 208-208 208c-28.4 0-55.5-5.7-80.1-16zM0 256a256 256 0 1 0 512 0A256 256 0 1 0 0 256zM128 369c0 26 21.5 47 48 47s48-21 48-47c0-20-28.4-60.4-41.6-77.7c-3.2-4.4-9.6-4.4-12.8 0C156.6 308.6 128 349 128 369zm128-65c-13.3 0-24 10.7-24 24s10.7 24 24 24c30.7 0 58.7 11.5 80 30.6c9.9 8.8 25 8 33.9-1.9s8-25-1.9-33.9C338.3 320.2 299 304 256 304zm47.6-96a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm-128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSmileBeam (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zm40-89.3s0 0 0 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0zm160 0c0 0 0 0 0 0l-.2-.2c-.2-.2-.4-.5-.7-.9c-.6-.8-1.6-2-2.8-3.4c-2.5-2.8-6-6.6-10.2-10.3c-8.8-7.8-18.8-14-27.7-14s-18.9 6.2-27.7 14c-4.2 3.7-7.7 7.5-10.2 10.3c-1.2 1.4-2.2 2.6-2.8 3.4c-.3 .4-.6 .7-.7 .9l-.2 .2c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0c-2.1 2.8-5.7 3.9-8.9 2.8s-5.5-4.1-5.5-7.6c0-17.9 6.7-35.6 16.6-48.8c9.8-13 23.9-23.2 39.4-23.2s29.6 10.2 39.4 23.2c9.9 13.2 16.6 30.9 16.6 48.8c0 3.4-2.2 6.5-5.5 7.6s-6.9 0-8.9-2.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSmileWink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm165.8 21.7c-7.6 8.1-20.2 8.5-28.3 .9s-8.5-20.2-.9-28.3c14.5-15.5 35.2-22.3 54.6-22.3s40.1 6.8 54.6 22.3c7.6 8.1 7.1 20.7-.9 28.3s-20.7 7.1-28.3-.9c-5.5-5.8-14.8-9.7-25.4-9.7s-19.9 3.8-25.4 9.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm177.6 62.1C192.8 334.5 218.8 352 256 352s63.2-17.5 78.4-33.9c9-9.7 24.2-10.4 33.9-1.4s10.4 24.2 1.4 33.9c-22 23.8-60 49.4-113.6 49.4s-91.7-25.5-113.6-49.4c-9-9.7-8.4-24.9 1.4-33.9s24.9-8.4 33.9 1.4zM144.4 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceSurprise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.4-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFaceTired (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3C354.5 338.1 368 362 368 384c0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zm-43-173.6l89.9 47.9c10.7 5.7 10.7 21.1 0 26.8l-89.9 47.9c-7.9 4.2-17.5-1.5-17.5-10.5c0-2.8 1-5.5 2.8-7.6l36-43.2-36-43.2c-1.8-2.1-2.8-4.8-2.8-7.6c0-9 9.6-14.7 17.5-10.5zM396 157.1c0 2.8-1 5.5-2.8 7.6l-36 43.2 36 43.2c1.8 2.1 2.8 4.8 2.8 7.6c0 9-9.6 14.7-17.5 10.5l-89.9-47.9c-10.7-5.7-10.7-21.1 0-26.8l89.9-47.9c7.9-4.2 17.5 1.5 17.5 10.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileAudio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l256 0c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM192 272l0 128c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5L129.4 376 112 376c-8.8 0-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16l17.4 0 35.3-35.3c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8zm85.8-4c11.6 20 18.2 43.3 18.2 68s-6.6 48-18.2 68c-6.6 11.5-21.3 15.4-32.8 8.8s-15.4-21.3-8.8-32.8c7.5-12.9 11.8-27.9 11.8-44s-4.3-31.1-11.8-44c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm97 289c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L79 303c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM257 255c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileExcel (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm90.9 233.3c-8.1-10.5-23.2-12.3-33.7-4.2s-12.3 23.2-4.2 33.7L161.6 320l-44.5 57.3c-8.1 10.5-6.3 25.5 4.2 33.7s25.5 6.3 33.7-4.2L192 359.1l37.1 47.6c8.1 10.5 23.2 12.3 33.7 4.2s12.3-23.2 4.2-33.7L222.4 320l44.5-57.3c8.1-10.5 6.3-25.5-4.2-33.7s-25.5-6.3-33.7 4.2L192 280.9l-37.1-47.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm96 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm69.2 46.9c-3-4.3-7.9-6.9-13.2-6.9s-10.2 2.6-13.2 6.9l-41.3 59.7-11.9-19.1c-2.9-4.7-8.1-7.5-13.6-7.5s-10.6 2.8-13.6 7.5l-40 64c-3.1 4.9-3.2 11.1-.4 16.2s8.2 8.2 14 8.2l48 0 32 0 40 0 72 0c6 0 11.4-3.3 14.2-8.6s2.4-11.6-1-16.5l-72-104z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileLines (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePdf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464l48 0 0 48-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 304l-48 0 0-144-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16zM176 352l32 0c30.9 0 56 25.1 56 56s-25.1 56-56 56l-16 0 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-80c0-8.8 7.2-16 16-16zm32 80c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0 48 16 0zm96-80l32 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16l0-128c0-8.8 7.2-16 16-16zm32 128c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-16 0 0 96 16 0zm80-112c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePowerpoint (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm72 208c-13.3 0-24 10.7-24 24l0 104 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 44 0c42 0 76-34 76-76s-34-76-76-76l-68 0zm68 104l-44 0 0-56 44 0c15.5 0 28 12.5 28 28s-12.5 28-28 28z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 288c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 16 44.9-29.9c2-1.3 4.4-2.1 6.8-2.1c6.8 0 12.3 5.5 12.3 12.3l0 103.4c0 6.8-5.5 12.3-12.3 12.3c-2.4 0-4.8-.7-6.8-2.1L240 368l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileWord (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 448L48 64c0-8.8 7.2-16 16-16l160 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm55 241.1c-3.8-12.7-17.2-19.9-29.9-16.1s-19.9 17.2-16.1 29.9l48 160c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l25-83.4 25 83.4c3 10.2 12.4 17.1 23 17.1s19.9-7 23-17.1l48-160c3.8-12.7-3.4-26.1-16.1-29.9s-26.1 3.4-29.9 16.1l-25 83.4-25-83.4c-3-10.2-12.4-17.1-23-17.1s-19.9 7-23 17.1l-25 83.4-25-83.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileZipper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l48 0c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l48 0 0 80c0 17.7 14.3 32 32 32l80 0 0 288c0 8.8-7.2 16-16 16L64 464zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-293.5c0-17-6.7-33.3-18.7-45.3L274.7 18.7C262.7 6.7 246.5 0 229.5 0L64 0zm48 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-6.3 71.8L82.1 335.9c-1.4 5.4-2.1 10.9-2.1 16.4c0 35.2 28.8 63.7 64 63.7s64-28.5 64-63.7c0-5.5-.7-11.1-2.1-16.4l-23.5-88.2c-3.7-14-16.4-23.8-30.9-23.8l-14.8 0c-14.5 0-27.2 9.7-30.9 23.8zM128 336l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 464c8.8 0 16-7.2 16-16l0-288-80 0c-17.7 0-32-14.3-32-32l0-80L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0zM0 64C0 28.7 28.7 0 64 0L229.5 0c17 0 33.3 6.7 45.3 18.7l90.5 90.5c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 64 0 350.5 0 400l0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L48 52l0-28zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8c54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4c-48.2-24.1-103.3-30.1-155.6-17.1L48 338.5l0-237z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFloppyDisk (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 96l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-245.5c0-4.2-1.7-8.3-4.7-11.3l33.9-33.9c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l245.5 0c17 0 33.3 6.7 45.3 18.7l74.5 74.5-33.9 33.9L320.8 84.7c-.3-.3-.5-.5-.8-.8L320 184c0 13.3-10.7 24-24 24l-192 0c-13.3 0-24-10.7-24-24L80 80 64 80c-8.8 0-16 7.2-16 16zm80-16l0 80 144 0 0-80L128 80zm32 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolderClosed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.7 127.6s0 0 0 0c10.5 10.5 24.7 16.4 39.6 16.4L448 144c8.8 0 16 7.2 16 16l0 32L48 192l0-96c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l33.9-33.9L208.8 84.7l42.9 42.9zM48 240l416 0 0 176c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-176zM285.7 93.7L242.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L291.3 96c-2.1 0-4.2-.8-5.7-2.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolderOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480l48 0c11.4 0 21.9-6 27.6-15.9l112-192c5.8-9.9 5.8-22.1 .1-32.1S555.5 224 544 224l-400 0c-11.4 0-21.9 6-27.6 15.9L48 357.1 48 96c0-8.8 7.2-16 16-16l117.5 0c4.2 0 8.3 1.7 11.3 4.7l26.5 26.5c21 21 49.5 32.8 79.2 32.8L416 144c8.8 0 16 7.2 16 16l0 32 48 0 0-32c0-35.3-28.7-64-64-64L298.5 96c-17 0-33.3-6.7-45.3-18.7L226.7 50.7c-12-12-28.3-18.7-45.3-18.7L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l23.7 0L384 480z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 96C0 60.7 28.7 32 64 32l132.1 0c19.1 0 37.4 7.6 50.9 21.1L289.9 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16l-161.4 0c-10.6 0-20.8-4.2-28.3-11.7L213.1 87c-4.5-4.5-10.6-7-17-7L64 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFontAwesome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.7 96C106.3 86.8 116 70.5 116 52C116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 3 0 48 0 256 0 48 0 64 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4c0-3.7-.8-7.3-2.3-10.7L432 272l61.7-138.9c1.5-3.4 2.3-7 2.3-10.7c0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0L388.1 252.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFutbol (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M435.4 361.4l-89.7-6c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-22 87.2c-14.4 3.2-29.4 4.8-44.8 4.8s-30.3-1.7-44.8-4.8l-22-87.2c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-89.7 6C61.7 335.9 51.9 307 49 276.2L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15L100.4 118c19.9-22.4 44.6-40.5 72.4-52.7l69.1 57.6c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l69.1-57.6c27.8 12.2 52.5 30.3 72.4 52.7l-33.4 83.4c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9L463 276.2c-3 30.8-12.7 59.7-27.6 85.2zM256 48l.9 0-1.8 0 .9 0zM56.7 196.2c.9-3 1.9-6.1 2.9-9.1l-2.9 9.1zM132 423l3.8 2.7c-1.3-.9-2.5-1.8-3.8-2.7zm248.1-.1c-1.3 1-2.6 2-4 2.9l4-2.9zm75.2-226.7l-3-9.2c1.1 3 2.1 6.1 3 9.2zM256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGem (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168.5 72L256 165l87.5-93-175 0zM383.9 99.1L311.5 176l129 0L383.9 99.1zm50 124.9L256 224 78.1 224 256 420.3 433.9 224zM71.5 176l129 0L128.1 99.1 71.5 176zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandBackFist (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 64c0-8.8 7.2-16 16-16s16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16c0 9.1 5.1 17.4 13.3 21.5s17.9 3.2 25.1-2.3c2.7-2 6-3.2 9.6-3.2c8.8 0 16 7.2 16 16l0 104c0 31.3-20 58-48 67.9c-9.6 3.4-16 12.5-16 22.6L304 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-117.8c38-20.1 64-60.1 64-106.2l0-104c0-35.3-28.7-64-64-64c-2.8 0-5.6 .2-8.3 .5C332.8 77.1 311.9 64 288 64c-2.8 0-5.6 .2-8.3 .5C268.8 45.1 247.9 32 224 32c-2.8 0-5.6 .2-8.3 .5C204.8 13.1 183.9 0 160 0C124.7 0 96 28.7 96 64l0 64.3c-11.7 7.4-22.5 16.4-32 26.9l17.8 16.1L64 155.2l-9.4 10.5C40 181.8 32 202.8 32 224.6l0 12.8c0 49.6 24.2 96.1 64.8 124.5l13.8-19.7L96.8 361.9l8.9 6.2c6.9 4.8 14.4 8.6 22.3 11.3L128 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-128.1c0-12.6-9.8-23.1-22.4-23.9c-7.3-.5-14.3-2.9-20.3-7.1l-13.1 18.7 13.1-18.7-8.9-6.2C96.6 303.1 80 271.3 80 237.4l0-12.8c0-9.9 3.7-19.4 10.3-26.8l9.4-10.5c3.8-4.2 7.9-8.1 12.3-11.6l0 32.3c0 8.8 7.2 16 16 16s16-7.2 16-16l0-65.7 0-14.3 0-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandLizard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7L281.1 384 136 384c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPeace (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.8 1.4c-35.2-3.7-66.6 21.8-70.3 57L174 119 156.7 69.6C145 36.3 108.4 18.8 75.1 30.5S24.2 78.8 35.9 112.1L88.7 262.2C73.5 276.7 64 297.3 64 320c0 0 0 0 0 0l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-72 0-16 0-32c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4c-10.4-21.3-32.3-36-57.6-36c-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4C243.9 166.9 240 179 240 192l0 48c0 .7 0 1.4 0 2c-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM111.4 85.6L165.7 240 144 240c-4 0-8 .3-11.9 .9L81.2 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM288 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36c5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24s0 0 0 0c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64c0-.7 0-1.4 0-2c5.1 1.3 10.5 2 16 2c7.9 0 15.4-1.4 22.4-4zM400 272c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32 0 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 32 0 144c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32c0 0 0 0 0 0l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7c-3.1-.5-6.2-.7-9.4-.7c-20 0-37.9 9.2-49.7 23.6c-9-4.9-19.4-7.6-30.3-7.6c-15.1 0-29 5.3-40 14c-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0-40 0zM0 192s0 0 0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2c25.3 0 47.2-14.7 57.6-36c7 2.6 14.5 4 22.4 4c20 0 37.9-9.2 49.7-23.6c9 4.9 19.4 7.6 30.3 7.6c35.3 0 64-28.7 64-64l0-64 0-24C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48 0-16c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 2 0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 0 16c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-32 0L64 160c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32c0 0 0 0 0 0l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4c.5-3.1 .7-6.2 .7-9.4c0-20-9.2-37.9-23.6-49.7c4.9-9 7.6-19.4 7.6-30.3c0-15.1-5.3-29-14-40c8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-40 0-40zm32-80s0 0 0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16c0 25.3 14.7 47.2 36 57.6c-2.6 7-4 14.5-4 22.4c0 20 9.2 37.9 23.6 49.7c-4.9 9-7.6 19.4-7.6 30.3c0 35.3 28.7 64 64 64l64 0 24 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-2 0-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 32 0 144 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32c0 0 0 0 0 0l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4c-.5-3.1-.7-6.2-.7-9.4c0-20 9.2-37.9 23.6-49.7c-4.9-9-7.6-19.4-7.6-30.3c0-15.1 5.3-29 14-40c-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-40 0-40zM192 64s0 0 0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16c0 25.3-14.7 47.2-36 57.6c2.6 7 4 14.5 4 22.4c0 20-9.2 37.9-23.6 49.7c4.9 9 7.6 19.4 7.6 30.3c0 35.3-28.7 64-64 64l-64 0-24 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l2 0 32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-32L96 64c0-8.8-7.2-16-16-16s-16 7.2-16 16zM80 288c-17.7 0-32 14.3-32 32c0 0 0 0 0 0l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7c-3.1 .5-6.2 .7-9.4 .7c-20 0-37.9-9.2-49.7-23.6c-9 4.9-19.4 7.6-30.3 7.6c-15.1 0-29-5.3-40-14c-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-40 0-40 0zM0 320s0 0 0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2c25.3 0 47.2 14.7 57.6 36c7-2.6 14.5-4 22.4-4c20 0 37.9 9.2 49.7 23.6c9-4.9 19.4-7.6 30.3-7.6c35.3 0 64 28.7 64 64l0 64 0 24c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48 0 16c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-2 0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 0-16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c8.8 0 16 7.2 16 16c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4c7.8 0 14.3 5.6 15.7 13c1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4c8.8 0 16 7.2 16 16l0 16 0 104c0 39.8-32.2 72-72 72l-56 0-59.8 0-.9 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23l0-19.9 0-256zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7C-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2l.9 0 59.8 0 56 0c66.3 0 120-53.7 120-120l0-104 0-16c0-35.3-28.7-64-64-64c-4.5 0-8.8 .5-13 1.3c-11.7-15.4-30.2-25.3-51-25.3c-6.9 0-13.5 1.1-19.7 3.1C288.7 170.7 269.6 160 248 160c-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1L57 208.1C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.7-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-8 0-96 0c-35.3 0-64-28.7-64-64c0-2.8 .2-5.6 .5-8.3c-19.4-11-32.5-31.8-32.5-55.7c0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.5s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11c0 8.8 7.2 16 16 16c9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6c0 8.8 7.2 16 16 16l96 0 8 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l-17.5-15.9 17.5 15.9-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12l-85.6-19.7L74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandSpock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.2 80.8C161 47 180.8 12 214.6 2.4c34-9.6 69.4 10.2 79 44.2l30.3 107.1L337.1 84c6.6-34.7 40.1-57.5 74.8-50.9c31.4 6 53 33.9 52 64.9c10-2.6 20.8-2.8 31.5-.1c34.3 8.6 55.1 43.3 46.6 77.6L486.7 397.2C469.8 464.7 409.2 512 339.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2L100.5 167.5c-13-32.9 3.2-70.1 36-83c11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L174.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37l-63.1-49.1c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104C435.6 271.8 425 280 413 280c-16.5 0-28.9-15-25.8-31.2L415.7 99c1.7-8.7-4-17.1-12.7-18.7s-17.1 4-18.7 12.7L352.5 260c-2.2 11.6-12.4 20-24.2 20c-11 0-20.7-7.3-23.7-17.9L247.4 59.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0c-25.3 0-47.2 14.7-57.6 36c-7-2.6-14.5-4-22.4-4c-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L106.5 437c48 48 113.1 75 181 75l8.5 0 8 0c1.5 0 3-.1 4.5-.4c91.7-6.2 165-79.4 171.1-171.1c.3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64c-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64c-7.9 0-15.4 1.4-22.4 4C303.2 14.7 281.3 0 256 0zM240 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 31.9 0 .1 0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0 0 0 0 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 55.9c0 0 0 .1 0 .1l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-71.9c0 0 0-.1 0-.1c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9c-3.4 69.7-59.3 125.6-129 129c-.6 0-1.3 .1-1.9 .2l-4.9 0-8.5 0c-55.2 0-108.1-21.9-147.1-60.9L52.7 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0L119 336.4c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2L160 96c0-8.8 7.2-16 16-16c8.8 0 16 7.1 16 15.9L192 232c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandshake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.2 64.6l-51.1 51.1c-15.3 4.2-29.5 11.9-41.5 22.5L153 161.9C142.8 171 129.5 176 115.8 176L96 176l0 128c20.4 .6 39.8 8.9 54.3 23.4l35.6 35.6 7 7c0 0 0 0 0 0L219.9 397c6.2 6.2 16.4 6.2 22.6 0c1.7-1.7 3-3.7 3.7-5.8c2.8-7.7 9.3-13.5 17.3-15.3s16.4 .6 22.2 6.5L296.5 393c11.6 11.6 30.4 11.6 41.9 0c5.4-5.4 8.3-12.3 8.6-19.4c.4-8.8 5.6-16.6 13.6-20.4s17.3-3 24.4 2.1c9.4 6.7 22.5 5.8 30.9-2.6c9.4-9.4 9.4-24.6 0-33.9L340.1 243l-35.8 33c-27.3 25.2-69.2 25.6-97 .9c-31.7-28.2-32.4-77.4-1.6-106.5l70.1-66.2C303.2 78.4 339.4 64 377.1 64c36.1 0 71 13.3 97.9 37.2L505.1 128l38.9 0 40 0 40 0c8.8 0 16 7.2 16 16l0 208c0 17.7-14.3 32-32 32l-32 0c-11.8 0-22.2-6.4-27.7-16l-84.9 0c-3.4 6.7-7.9 13.1-13.5 18.7c-17.1 17.1-40.8 23.8-63 20.1c-3.6 7.3-8.5 14.1-14.6 20.2c-27.3 27.3-70 30-100.4 8.1c-25.1 20.8-62.5 19.5-86-4.1L159 404l-7-7-35.6-35.6c-5.5-5.5-12.7-8.7-20.4-9.3C96 369.7 81.6 384 64 384l-32 0c-17.7 0-32-14.3-32-32L0 144c0-8.8 7.2-16 16-16l40 0 40 0 19.8 0c2 0 3.9-.7 5.3-2l26.5-23.6C175.5 77.7 211.4 64 248.7 64L259 64c4.4 0 8.9 .2 13.2 .6zM544 320l0-144-48 0c-5.9 0-11.6-2.2-15.9-6.1l-36.9-32.8c-18.2-16.2-41.7-25.1-66.1-25.1c-25.4 0-49.8 9.7-68.3 27.1l-70.1 66.2c-10.3 9.8-10.1 26.3 .5 35.7c9.3 8.3 23.4 8.1 32.5-.3l71.9-66.4c9.7-9 24.9-8.4 33.9 1.4s8.4 24.9-1.4 33.9l-.8 .8 74.4 74.4c10 10 16.5 22.3 19.4 35.1l74.8 0zM64 336a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm528 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l384 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 224 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm280 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHospital (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 0c-39.8 0-72 32.2-72 72l0 8L72 80C32.2 80 0 112.2 0 152L0 440c0 39.8 32.2 72 72 72l.2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0 .2 0s0 0 0 0l272 0 8 0s0 0 0 0l104 0c39.8 0 72-32.2 72-72l0-288c0-39.8-32.2-72-72-72l-88 0 0-8c0-39.8-32.2-72-72-72L232 0zM480 128l88 0c13.3 0 24 10.7 24 24l0 40-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 104c0 13.3-10.7 24-24 24l-88 0 0-128 0-208zM72 128l88 0 0 336c0 0 0 0-.1 0l-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0-.2 0c-13.2 0-24-10.7-24-24l0-104 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-48 56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0-40c0-13.3 10.7-24 24-24zM208 72c0-13.3 10.7-24 24-24l176 0c13.3 0 24 10.7 24 24l0 264 0 128-64 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 64-64 0 0-392zm88 24l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHourglassHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5L225.9 256l81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5L158.1 256 76.5 174.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5L192 289.9l-81.5 81.5zM284.2 128C297 110.4 304 89 304 67l0-19L80 48l0 19c0 22.1 7 43.4 19.8 61l184.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHourglass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5L158.1 256 76.5 337.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5L225.9 256l81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19L80 464l0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdBadge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80c0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16c0-44.2 35.8-80 80-80zm-32-96a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 160l0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16l0-256 480 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM272 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm104-48c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80c8.8 0 16 7.2 16 16l0 319.8-5-6.5-136-176c-4.5-5.9-11.6-9.3-19-9.3s-14.4 3.4-19 9.3L202 340.7l-30.5-42.7C167 291.7 159.8 288 152 288s-15 3.7-19.5 10.1l-80 112L48 416.3l0-.3L48 96c0-8.8 7.2-16 16-16l384 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImages (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 80l352 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-21.2 0L388.1 178.9c-4.4-6.8-12-10.9-20.1-10.9s-15.7 4.1-20.1 10.9l-52.2 79.8-12.4-16.9c-4.5-6.2-11.7-9.8-19.4-9.8s-14.8 3.6-19.4 9.8L175.6 336 160 336c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16zM96 96l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32c-35.3 0-64 28.7-64 64zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 344c0 75.1 60.9 136 136 136l320 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-320 0c-48.6 0-88-39.4-88-88l0-224zm208 24a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKeyboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLemon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 80c-3.2 0-6.2 .4-8.9 1.3C340 86.8 313 91.9 284.8 84.6C227.4 69.7 160.2 92 110.1 142.1S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3c-.8 2.8-1.3 5.8-1.3 8.9c0 17.7 14.3 32 32 32c3.2 0 6.2-.4 8.9-1.3c19.1-5.5 46.1-10.7 74.3-3.3c57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3c.8-2.8 1.3-5.8 1.3-8.9c0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80c0 7.7-1.1 15.2-3.1 22.3c-4.6 15.8-7.1 32.9-3 48.9c20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3c-7.1 2-14.6 3.1-22.3 3.1c-44.2 0-80-35.8-80-80c0-7.7 1.1-15.2 3.1-22.3c4.6-15.8 7.1-32.9 3-48.9C-14 251.3 17 167.3 76.2 108.2S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3c7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7c-3.7 12.7-17.1 20-29.8 16.3s-20-17.1-16.3-29.8c19.8-67.7 76.6-124.5 144.3-144.3c12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLifeRing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256s-22.1-118.9-58.8-163.3L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L58.8 92.7C22.1 137.1 0 193.9 0 256s22.1 118.9 58.8 163.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLightbulb (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M297.2 248.9C311.6 228.3 320 203.2 320 176c0-70.7-57.3-128-128-128S64 105.3 64 176c0 27.2 8.4 52.3 22.8 72.9c3.7 5.3 8.1 11.3 12.8 17.7c0 0 0 0 0 0c12.9 17.7 28.3 38.9 39.8 59.8c10.4 19 15.7 38.8 18.3 57.5L109 384c-2.2-12-5.9-23.7-11.8-34.5c-9.9-18-22.2-34.9-34.5-51.8c0 0 0 0 0 0s0 0 0 0c-5.2-7.1-10.4-14.2-15.4-21.4C27.6 247.9 16 213.3 16 176C16 78.8 94.8 0 192 0s176 78.8 176 176c0 37.3-11.6 71.9-31.4 100.3c-5 7.2-10.2 14.3-15.4 21.4c0 0 0 0 0 0s0 0 0 0c-12.3 16.8-24.6 33.7-34.5 51.8c-5.9 10.8-9.6 22.5-11.8 34.5l-48.6 0c2.6-18.7 7.9-38.6 18.3-57.5c11.5-20.9 26.9-42.1 39.8-59.8c0 0 0 0 0 0s0 0 0 0s0 0 0 0c4.7-6.4 9-12.4 12.7-17.7zM192 128c-26.5 0-48 21.5-48 48c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-44.2 35.8-80 80-80c8.8 0 16 7.2 16 16s-7.2 16-16 16zm0 384c-44.2 0-80-35.8-80-80l0-16 160 0 0 16c0 44.2-35.8 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMessage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 368c26.5 0 48 21.5 48 48l0 16 72.5-54.4c8.3-6.2 18.4-9.6 28.8-9.6L448 368c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 48c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l96 0zm48 124l-.2 .2-5.1 3.8-17.1 12.8c-4.8 3.6-11.3 4.2-16.8 1.5s-8.8-8.2-8.8-14.3l0-21.3 0-6.4 0-.3 0-4 0-48-48 0-48 0c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64l-138.7 0L208 492z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoneyBill1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l352 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-352 0zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 256a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zm80-48c0 8.8 7.2 16 16 16l0 64-8 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l24 0 24 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-8 0 0-80c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.7 98.7c-21 34.1-33.1 74.3-33.1 117.3c0 98 62.8 181.4 150.4 211.7c-12.4 2.8-25.3 4.3-38.6 4.3C126.6 432 48 353.3 48 256c0-68.9 39.4-128.4 96.8-157.3zm62.1-66C91.1 41.2 0 137.9 0 256C0 379.7 100 480 223.5 480c47.8 0 92-15 128.4-40.6c1.9-1.3 3.7-2.7 5.5-4c4.8-3.6 9.4-7.4 13.9-11.4c2.7-2.4 5.3-4.8 7.9-7.3c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-3.7 .6-7.4 1.2-11.1 1.6c-5 .5-10.1 .9-15.3 1c-1.2 0-2.5 0-3.7 0l-.3 0c-96.8-.2-175.2-78.9-175.2-176c0-54.8 24.9-103.7 64.1-136c1-.9 2.1-1.7 3.2-2.6c4-3.2 8.2-6.2 12.5-9c3.1-2 6.3-4 9.6-5.8c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-3.6-.3-7.1-.5-10.7-.6c-2.7-.1-5.5-.1-8.2-.1c-3.3 0-6.5 .1-9.8 .2c-2.3 .1-4.6 .2-6.9 .4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegNewspaper (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegNoteSticky (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l224 0 0-80c0-17.7 14.3-32 32-32l80 0 0-224c0-8.8-7.2-16-16-16L64 80zM288 480L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 224 0 5.5c0 17-6.7 33.3-18.7 45.3l-90.5 90.5c-12 12-28.3 18.7-45.3 18.7l-5.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectGroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 115.8C38.2 107 32 94.2 32 80c0-26.5 21.5-48 48-48c14.2 0 27 6.2 35.8 16l344.4 0c8.8-9.8 21.6-16 35.8-16c26.5 0 48 21.5 48 48c0 14.2-6.2 27-16 35.8l0 280.4c9.8 8.8 16 21.6 16 35.8c0 26.5-21.5 48-48 48c-14.2 0-27-6.2-35.8-16l-344.4 0c-8.8 9.8-21.6 16-35.8 16c-26.5 0-48-21.5-48-48c0-14.2 6.2-27 16-35.8l0-280.4zM125.3 96c-4.8 13.6-15.6 24.4-29.3 29.3l0 261.5c13.6 4.8 24.4 15.6 29.3 29.3l325.5 0c4.8-13.6 15.6-24.4 29.3-29.3l0-261.5c-13.6-4.8-24.4-15.6-29.3-29.3L125.3 96zm2.7 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-96zM256 320l32 0c35.3 0 64-28.7 64-64l0-32 64 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectUngroup (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16c.9 0 1.9 .1 2.8 .2C74.3 49.5 80 56.1 80 64c0 8.8-7.2 16-16 16c-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3C16.5 238.1 0 261.1 0 288c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0C28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8c-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16c0-.9 .1-1.9 .2-2.8C49.5 277.7 56.1 272 64 272c8.8 0 16 7.2 16 16zm391.3-40l45.4 0c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-36.7-48 0 0 36.7c-23.5 9.5-40 32.5-40 59.3c0 35.3 28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40c35.3 0 64-28.7 64-64c0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3c0-35.3-28.7-64-64-64c-26.9 0-49.9 16.5-59.3 40L448 200l0 16.4c9.8 8.8 17.8 19.5 23.3 31.6zm88.9-26.7a16 16 0 1 1 31.5 5.5 16 16 0 1 1 -31.5-5.5zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm307-18.5a16 16 0 1 1 -5.5 31.5 16 16 0 1 1 5.5-31.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPaperPlane (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376l0 103.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPaste (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.6 48L64 48C28.7 48 0 76.7 0 112L0 384c0 35.3 28.7 64 64 64l96 0 0-48-96 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l16 0c0 17.7 14.3 32 32 32l72.4 0C202 108.4 227.6 96 256 96l62 0c-7.1-27.6-32.2-48-62-48l-40.6 0C211.6 20.9 188.2 0 160 0s-51.6 20.9-55.4 48zM144 56a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM448 464l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l140.1 0L464 243.9 464 448c0 8.8-7.2 16-16 16zM256 512l192 0c35.3 0 64-28.7 64-64l0-204.1c0-12.7-5.1-24.9-14.1-33.9l-67.9-67.9c-9-9-21.2-14.1-33.9-14.1L256 128c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPenToSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRectangleList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm96 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm104 0c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l224 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-224 0c-13.3 0-24-10.7-24-24zm-72-64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRectangleXmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm175 79c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRegistered (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM160 152l0 112 0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 60.9 0 37.2 81.9c5.5 12.1 19.7 17.4 31.8 11.9s17.4-19.7 11.9-31.8L315.7 275c21.8-14.3 36.3-39 36.3-67c0-44.2-35.8-80-80-80l-88 0c-13.3 0-24 10.7-24 24zm48 88l0-64 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegShareFromSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 255.4l0-15.4 0-32c0-8.8-7.2-16-16-16l-32 0-16 0-46.5 0c-50.9 0-93.9 33.5-108.3 79.6c-3.3-9.4-5.2-19.8-5.2-31.6c0-61.9 50.1-112 112-112l48 0 16 0 32 0c8.8 0 16-7.2 16-16l0-32 0-15.4L506 160 400 255.4zM336 240l16 0 0 48c0 17.7 14.3 32 32 32l3.7 0c7.9 0 15.5-2.9 21.4-8.2l139-125.1c7.6-6.8 11.9-16.5 11.9-26.7s-4.3-19.9-11.9-26.7L409.9 8.9C403.5 3.2 395.3 0 386.7 0C367.5 0 352 15.5 352 34.7L352 80l-16 0-32 0-16 0c-88.4 0-160 71.6-160 160c0 60.4 34.6 99.1 63.9 120.9c5.9 4.4 11.5 8.1 16.7 11.2c4.4 2.7 8.5 4.9 11.9 6.6c3.4 1.7 6.2 3 8.2 3.9c2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8c0-7.8-5.3-14.7-11.6-19.5c0 0 0 0 0 0c-.4-.3-.7-.5-1.1-.8c-1.7-1.1-3.4-2.5-5-4.1c-.8-.8-1.7-1.6-2.5-2.6s-1.6-1.9-2.4-2.9c-1.8-2.5-3.5-5.3-5-8.5c-2.6-6-4.3-13.3-4.3-22.4c0-36.1 29.3-65.5 65.5-65.5l14.5 0 32 0zM72 32C32.2 32 0 64.2 0 104L0 440c0 39.8 32.2 72 72 72l336 0c39.8 0 72-32.2 72-72l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64c0 13.3-10.7 24-24 24L72 464c-13.3 0-24-10.7-24-24l0-336c0-13.3 10.7-24 24-24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSnowflake (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 0c13.3 0 24 10.7 24 24l0 46.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-57 57 0 76.5 66.2-38.2 20.9-77.8c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4L373 142.2l37.1-21.4c11.5-6.6 26.2-2.7 32.8 8.8s2.7 26.2-8.8 32.8L397 183.8l31.5 8.4c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-77.8-20.9L272 256l66.2 38.2 77.8-20.9c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4L397 328.2l37.1 21.4c11.5 6.6 15.4 21.3 8.8 32.8s-21.3 15.4-32.8 8.8L373 369.8l8.4 31.5c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-20.9-77.8L248 297.6l0 76.5 57 57c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-23-23 0 46.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-46.1-23 23c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l57-57 0-76.5-66.2 38.2-20.9 77.8c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4L75 369.8 37.9 391.2c-11.5 6.6-26.2 2.7-32.8-8.8s-2.7-26.2 8.8-32.8L51 328.2l-31.5-8.4c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l77.8 20.9L176 256l-66.2-38.2L31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4L51 183.8 13.9 162.4c-11.5-6.6-15.4-21.3-8.8-32.8s21.3-15.4 32.8-8.8L75 142.2l-8.4-31.5c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l20.9 77.8L200 214.4l0-76.5L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23L200 24c0-13.3 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9s12.5-14.4 22-14.4l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4s14.4 12.5 14.4 22l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4s-14.4-12.5-14.4-22l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCaretUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9s-12.5 14.4-22 14.4l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareFull (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 48l0 416L48 464 48 48l416 0zM48 0L0 0 0 48 0 464l0 48 48 0 416 0 48 0 0-48 0-416 0-48L464 0 48 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquareMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM152 232l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquarePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStarHalfStroke (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.5 13.5C305.5 5.2 297.1 0 287.9 0s-17.6 5.2-21.6 13.5L197.7 154.8 44.5 177.5c-9 1.3-16.5 7.6-19.3 16.3s-.5 18.1 5.9 24.5L142.2 328.4 116 483.9c-1.5 9 2.2 18.1 9.7 23.5s17.3 6 25.3 1.7l137-73.2 137 73.2c8.1 4.3 17.9 3.7 25.3-1.7s11.2-14.5 9.7-23.5L433.6 328.4 544.8 218.2c6.5-6.4 8.7-15.9 5.9-24.5s-10.3-14.9-19.3-16.3L378.1 154.8 309.5 13.5zM288 384.7l0-305.6 52.5 108.1c3.5 7.1 10.2 12.1 18.1 13.3l118.3 17.5L391 303c-5.5 5.5-8.1 13.3-6.8 21l20.2 119.6L299.2 387.5c-3.5-1.9-7.4-2.8-11.2-2.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStarHalf (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M293.3 .6c10.9 2.5 18.6 12.2 18.6 23.4l0 384.7c0 8.9-4.9 17-12.7 21.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.3c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5c4.9-10.1 16.1-15.4 27-12.9zM263.9 128.4l-28.6 58.8c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l92.5-49.4 0-265.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M375.7 19.7c-1.5-8-6.9-14.7-14.4-17.8s-16.1-2.2-22.8 2.4L256 61.1 173.5 4.2c-6.7-4.6-15.3-5.5-22.8-2.4s-12.9 9.8-14.4 17.8l-18.1 98.5L19.7 136.3c-8 1.5-14.7 6.9-17.8 14.4s-2.2 16.1 2.4 22.8L61.1 256 4.2 338.5c-4.6 6.7-5.5 15.3-2.4 22.8s9.8 13 17.8 14.4l98.5 18.1 18.1 98.5c1.5 8 6.9 14.7 14.4 17.8s16.1 2.2 22.8-2.4L256 450.9l82.5 56.9c6.7 4.6 15.3 5.5 22.8 2.4s12.9-9.8 14.4-17.8l18.1-98.5 98.5-18.1c8-1.5 14.7-6.9 17.8-14.4s2.2-16.1-2.4-22.8L450.9 256l56.9-82.5c4.6-6.7 5.5-15.3 2.4-22.8s-9.8-12.9-17.8-14.4l-98.5-18.1L375.7 19.7zM269.6 110l65.6-45.2 14.4 78.3c1.8 9.8 9.5 17.5 19.3 19.3l78.3 14.4L402 242.4c-5.7 8.2-5.7 19 0 27.2l45.2 65.6-78.3 14.4c-9.8 1.8-17.5 9.5-19.3 19.3l-14.4 78.3L269.6 402c-8.2-5.7-19-5.7-27.2 0l-65.6 45.2-14.4-78.3c-1.8-9.8-9.5-17.5-19.3-19.3L64.8 335.2 110 269.6c5.7-8.2 5.7-19 0-27.2L64.8 176.8l78.3-14.4c9.8-1.8 17.5-9.5 19.3-19.3l14.4-78.3L242.4 110c8.2 5.7 19 5.7 27.2 0zM256 368a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.8 477.2c-38.2 10.9-78.1-11.2-89-49.4l-5.7-20c-3.7-13-10.4-25-19.5-35l-51.3-56.4c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l51.3 56.4c14.1 15.5 24.4 34 30.1 54.1l5.7 20c3.6 12.7 16.9 20.1 29.7 16.5s20.1-16.9 16.5-29.7l-5.7-20c-5.7-19.9-14.7-38.7-26.6-55.5c-5.2-7.3-5.8-16.9-1.7-24.9s12.3-13 21.3-13L448 288c8.8 0 16-7.2 16-16c0-6.8-4.3-12.7-10.4-15c-7.4-2.8-13-9-14.9-16.7s.1-15.8 5.3-21.7c2.5-2.8 4-6.5 4-10.6c0-7.8-5.6-14.3-13-15.7c-8.2-1.6-15.1-7.3-18-15.2s-1.6-16.7 3.6-23.3c2.1-2.7 3.4-6.1 3.4-9.9c0-6.7-4.2-12.6-10.2-14.9c-11.5-4.5-17.7-16.9-14.4-28.8c.4-1.3 .6-2.8 .6-4.3c0-8.8-7.2-16-16-16l-97.5 0c-12.6 0-25 3.7-35.5 10.7l-61.7 41.1c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l61.7-41.1c18.4-12.3 40-18.8 62.1-18.8L384 32c34.7 0 62.9 27.6 64 62c14.6 11.7 24 29.7 24 50c0 4.5-.5 8.8-1.3 13c15.4 11.7 25.3 30.2 25.3 51c0 6.5-1 12.8-2.8 18.7C504.8 238.3 512 254.3 512 272c0 35.3-28.6 64-64 64l-92.3 0c4.7 10.4 8.7 21.2 11.8 32.2l5.7 20c10.9 38.2-11.2 78.1-49.4 89zM32 384c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.8 34.8c-38.2-10.9-78.1 11.2-89 49.4l-5.7 20c-3.7 13-10.4 25-19.5 35l-51.3 56.4c-8.9 9.8-8.2 25 1.6 33.9s25 8.2 33.9-1.6l51.3-56.4c14.1-15.5 24.4-34 30.1-54.1l5.7-20c3.6-12.7 16.9-20.1 29.7-16.5s20.1 16.9 16.5 29.7l-5.7 20c-5.7 19.9-14.7 38.7-26.6 55.5c-5.2 7.3-5.8 16.9-1.7 24.9s12.3 13 21.3 13L448 224c8.8 0 16 7.2 16 16c0 6.8-4.3 12.7-10.4 15c-7.4 2.8-13 9-14.9 16.7s.1 15.8 5.3 21.7c2.5 2.8 4 6.5 4 10.6c0 7.8-5.6 14.3-13 15.7c-8.2 1.6-15.1 7.3-18 15.2s-1.6 16.7 3.6 23.3c2.1 2.7 3.4 6.1 3.4 9.9c0 6.7-4.2 12.6-10.2 14.9c-11.5 4.5-17.7 16.9-14.4 28.8c.4 1.3 .6 2.8 .6 4.3c0 8.8-7.2 16-16 16l-97.5 0c-12.6 0-25-3.7-35.5-10.7l-61.7-41.1c-11-7.4-25.9-4.4-33.3 6.7s-4.4 25.9 6.7 33.3l61.7 41.1c18.4 12.3 40 18.8 62.1 18.8l97.5 0c34.7 0 62.9-27.6 64-62c14.6-11.7 24-29.7 24-50c0-4.5-.5-8.8-1.3-13c15.4-11.7 25.3-30.2 25.3-51c0-6.5-1-12.8-2.8-18.7C504.8 273.7 512 257.7 512 240c0-35.3-28.6-64-64-64l-92.3 0c4.7-10.4 8.7-21.2 11.8-32.2l5.7-20c10.9-38.2-11.2-78.1-49.4-89zM32 192c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32l-64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTrashCan (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.5 51.6L151.5 80l145 0-19-28.4c-1.5-2.2-4-3.6-6.7-3.6l-93.7 0c-2.7 0-5.2 1.3-6.7 3.6zm147-26.6L354.2 80 368 80l48 0 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 304c0 44.2-35.8 80-80 80l-224 0c-44.2 0-80-35.8-80-80l0-304-8 0c-13.3 0-24-10.7-24-24S10.7 80 24 80l8 0 48 0 13.8 0 36.7-55.1C140.9 9.4 158.4 0 177.1 0l93.7 0c18.7 0 36.2 9.4 46.6 24.9zM80 128l0 304c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-304L80 128zm80 64l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16zm80 0l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208c0-8.8 7.2-16 16-16s16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM49.3 464l349.5 0c-8.9-63.3-63.3-112-129-112l-91.4 0c-65.7 0-120.1 48.7-129 112zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.3 89.5C.1 91.6 0 93.8 0 96L0 224 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192 0-128c0-35.3-28.7-64-64-64L64 32c-2.2 0-4.4 .1-6.5 .3c-9.2 .9-17.8 3.8-25.5 8.2C21.8 46.5 13.4 55.1 7.7 65.5c-3.9 7.3-6.5 15.4-7.4 24zM48 224l416 0 0 192c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-192z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M24 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 432z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowRestore (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 48L208 48c-17.7 0-32 14.3-32 32l0 16-48 0 0-16c0-44.2 35.8-80 80-80L432 0c44.2 0 80 35.8 80 80l0 224c0 44.2-35.8 80-80 80l-16 0 0-48 16 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM48 448c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-192L48 256l0 192zM64 128l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64z\"},\"child\":[]}]})(props);\n};\n","// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX =\n /^(?=((?:[a-zA-Z0-9+\\-.]+:)?))\\1(?=((?:\\/\\/[^\\/?#]*)?))\\2(?=((?:(?:[^?#\\/]*\\/)*[^;?#\\/]*)?))\\3((?:;[^?#]*)?)(\\?[^#]*)?(#[^]*)?$/;\n var FIRST_SEGMENT_REGEX = /^(?=([^\\/?#]*))\\1([^]*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment,\n };\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's <net_loc> is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the <net_loc>\n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path;\n // 5a) if the embedded URL's <params> is non-empty, we skip to\n // step 7; otherwise, it inherits the <params> of the base\n // URL (if any) and\n if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 5b) if the embedded URL's <query> is non-empty, we skip to\n // step 7; otherwise, it inherits the <query> of the base\n // URL (if any) and we skip to step 7.\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\n }\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || '',\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n // 6c) All occurrences of \"<segment>/../\", where <segment> is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"<segment>/..\", where <segment> is a\n // complete path segment not equal to \"..\", that\n // \"<segment>/..\" is removed.\n while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = URLToolkit;\n else if (typeof define === 'function' && define.amd)\n define([], function () {\n return URLToolkit;\n });\n else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;\n else root['URLToolkit'] = URLToolkit;\n})(this);\n","// https://caniuse.com/mdn-javascript_builtins_number_isfinite\nexport const isFiniteNumber =\n Number.isFinite ||\n function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n\n// https://caniuse.com/mdn-javascript_builtins_number_issafeinteger\nexport const isSafeInteger =\n Number.isSafeInteger ||\n function (value) {\n return typeof value === 'number' && Math.abs(value) <= MAX_SAFE_INTEGER;\n };\n\nexport const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n","import {\n ManifestLoadedData,\n ManifestLoadingData,\n MediaAttachedData,\n MediaAttachingData,\n LevelLoadingData,\n LevelLoadedData,\n ManifestParsedData,\n LevelUpdatedData,\n LevelsUpdatedData,\n FragParsingUserdataData,\n FragDecryptedData,\n FragLoadedData,\n InitPTSFoundData,\n CuesParsedData,\n SubtitleFragProcessedData,\n NonNativeTextTracksData,\n FragLoadingData,\n AudioTrackLoadedData,\n SubtitleTrackLoadedData,\n ErrorData,\n AudioTrackSwitchingData,\n AudioTrackSwitchedData,\n KeyLoadedData,\n KeyLoadingData,\n SubtitleTrackSwitchData,\n SubtitleTracksUpdatedData,\n LevelSwitchedData,\n FragChangedData,\n BufferAppendingData,\n BufferCodecsData,\n FragParsingMetadataData,\n FragParsingInitSegmentData,\n FragBufferedData,\n BufferFlushingData,\n BufferEOSData,\n LevelSwitchingData,\n MaxAutoLevelUpdatedData,\n FPSDropLevelCappingData,\n FPSDropData,\n BufferCreatedData,\n BufferAppendedData,\n LevelPTSUpdatedData,\n FragParsedData,\n AudioTracksUpdatedData,\n FragLoadEmergencyAbortedData,\n BackBufferData,\n LiveBackBufferData,\n TrackLoadingData,\n BufferFlushedData,\n SteeringManifestLoadedData,\n} from './types/events';\n\nexport enum Events {\n // Fired before MediaSource is attaching to media element\n MEDIA_ATTACHING = 'hlsMediaAttaching',\n // Fired when MediaSource has been successfully attached to media element\n MEDIA_ATTACHED = 'hlsMediaAttached',\n // Fired before detaching MediaSource from media element\n MEDIA_DETACHING = 'hlsMediaDetaching',\n // Fired when MediaSource has been detached from media element\n MEDIA_DETACHED = 'hlsMediaDetached',\n // Fired when the buffer is going to be reset\n BUFFER_RESET = 'hlsBufferReset',\n // Fired when we know about the codecs that we need buffers for to push into - data: {tracks : { container, codec, levelCodec, initSegment, metadata }}\n BUFFER_CODECS = 'hlsBufferCodecs',\n // fired when sourcebuffers have been created - data: { tracks : tracks }\n BUFFER_CREATED = 'hlsBufferCreated',\n // fired when we append a segment to the buffer - data: { segment: segment object }\n BUFFER_APPENDING = 'hlsBufferAppending',\n // fired when we are done with appending a media segment to the buffer - data : { parent : segment parent that triggered BUFFER_APPENDING, pending : nb of segments waiting for appending for this segment parent}\n BUFFER_APPENDED = 'hlsBufferAppended',\n // fired when the stream is finished and we want to notify the media buffer that there will be no more data - data: { }\n BUFFER_EOS = 'hlsBufferEos',\n // fired when the media buffer should be flushed - data { startOffset, endOffset }\n BUFFER_FLUSHING = 'hlsBufferFlushing',\n // fired when the media buffer has been flushed - data: { }\n BUFFER_FLUSHED = 'hlsBufferFlushed',\n // fired to signal that a manifest loading starts - data: { url : manifestURL}\n MANIFEST_LOADING = 'hlsManifestLoading',\n // fired after manifest has been loaded - data: { levels : [available quality levels], audioTracks : [ available audio tracks ], url : manifestURL, stats : LoaderStats }\n MANIFEST_LOADED = 'hlsManifestLoaded',\n // fired after manifest has been parsed - data: { levels : [available quality levels], firstLevel : index of first quality level appearing in Manifest}\n MANIFEST_PARSED = 'hlsManifestParsed',\n // fired when a level switch is requested - data: { level : id of new level }\n LEVEL_SWITCHING = 'hlsLevelSwitching',\n // fired when a level switch is effective - data: { level : id of new level }\n LEVEL_SWITCHED = 'hlsLevelSwitched',\n // fired when a level playlist loading starts - data: { url : level URL, level : id of level being loaded}\n LEVEL_LOADING = 'hlsLevelLoading',\n // fired when a level playlist loading finishes - data: { details : levelDetails object, level : id of loaded level, stats : LoaderStats }\n LEVEL_LOADED = 'hlsLevelLoaded',\n // fired when a level's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, level : id of updated level }\n LEVEL_UPDATED = 'hlsLevelUpdated',\n // fired when a level's PTS information has been updated after parsing a fragment - data: { details : levelDetails object, level : id of updated level, drift: PTS drift observed when parsing last fragment }\n LEVEL_PTS_UPDATED = 'hlsLevelPtsUpdated',\n // fired to notify that levels have changed after removing a level - data: { levels : [available quality levels] }\n LEVELS_UPDATED = 'hlsLevelsUpdated',\n // fired to notify that audio track lists has been updated - data: { audioTracks : audioTracks }\n AUDIO_TRACKS_UPDATED = 'hlsAudioTracksUpdated',\n // fired when an audio track switching is requested - data: { id : audio track id }\n AUDIO_TRACK_SWITCHING = 'hlsAudioTrackSwitching',\n // fired when an audio track switch actually occurs - data: { id : audio track id }\n AUDIO_TRACK_SWITCHED = 'hlsAudioTrackSwitched',\n // fired when an audio track loading starts - data: { url : audio track URL, id : audio track id }\n AUDIO_TRACK_LOADING = 'hlsAudioTrackLoading',\n // fired when an audio track loading finishes - data: { details : levelDetails object, id : audio track id, stats : LoaderStats }\n AUDIO_TRACK_LOADED = 'hlsAudioTrackLoaded',\n // fired to notify that subtitle track lists has been updated - data: { subtitleTracks : subtitleTracks }\n SUBTITLE_TRACKS_UPDATED = 'hlsSubtitleTracksUpdated',\n // fired to notify that subtitle tracks were cleared as a result of stopping the media\n SUBTITLE_TRACKS_CLEARED = 'hlsSubtitleTracksCleared',\n // fired when an subtitle track switch occurs - data: { id : subtitle track id }\n SUBTITLE_TRACK_SWITCH = 'hlsSubtitleTrackSwitch',\n // fired when a subtitle track loading starts - data: { url : subtitle track URL, id : subtitle track id }\n SUBTITLE_TRACK_LOADING = 'hlsSubtitleTrackLoading',\n // fired when a subtitle track loading finishes - data: { details : levelDetails object, id : subtitle track id, stats : LoaderStats }\n SUBTITLE_TRACK_LOADED = 'hlsSubtitleTrackLoaded',\n // fired when a subtitle fragment has been processed - data: { success : boolean, frag : the processed frag }\n SUBTITLE_FRAG_PROCESSED = 'hlsSubtitleFragProcessed',\n // fired when a set of VTTCues to be managed externally has been parsed - data: { type: string, track: string, cues: [ VTTCue ] }\n CUES_PARSED = 'hlsCuesParsed',\n // fired when a text track to be managed externally is found - data: { tracks: [ { label: string, kind: string, default: boolean } ] }\n NON_NATIVE_TEXT_TRACKS_FOUND = 'hlsNonNativeTextTracksFound',\n // fired when the first timestamp is found - data: { id : demuxer id, initPTS: initPTS, timescale: timescale, frag : fragment object }\n INIT_PTS_FOUND = 'hlsInitPtsFound',\n // fired when a fragment loading starts - data: { frag : fragment object }\n FRAG_LOADING = 'hlsFragLoading',\n // fired when a fragment loading is progressing - data: { frag : fragment object, { trequest, tfirst, loaded } }\n // FRAG_LOAD_PROGRESS = 'hlsFragLoadProgress',\n // Identifier for fragment load aborting for emergency switch down - data: { frag : fragment object }\n FRAG_LOAD_EMERGENCY_ABORTED = 'hlsFragLoadEmergencyAborted',\n // fired when a fragment loading is completed - data: { frag : fragment object, payload : fragment payload, stats : LoaderStats }\n FRAG_LOADED = 'hlsFragLoaded',\n // fired when a fragment has finished decrypting - data: { id : demuxer id, frag: fragment object, payload : fragment payload, stats : { tstart, tdecrypt } }\n FRAG_DECRYPTED = 'hlsFragDecrypted',\n // fired when Init Segment has been extracted from fragment - data: { id : demuxer id, frag: fragment object, moov : moov MP4 box, codecs : codecs found while parsing fragment }\n FRAG_PARSING_INIT_SEGMENT = 'hlsFragParsingInitSegment',\n // fired when parsing sei text is completed - data: { id : demuxer id, frag: fragment object, samples : [ sei samples pes ] }\n FRAG_PARSING_USERDATA = 'hlsFragParsingUserdata',\n // fired when parsing id3 is completed - data: { id : demuxer id, frag: fragment object, samples : [ id3 samples pes ] }\n FRAG_PARSING_METADATA = 'hlsFragParsingMetadata',\n // fired when data have been extracted from fragment - data: { id : demuxer id, frag: fragment object, data1 : moof MP4 box or TS fragments, data2 : mdat MP4 box or null}\n // FRAG_PARSING_DATA = 'hlsFragParsingData',\n // fired when fragment parsing is completed - data: { id : demuxer id, frag: fragment object }\n FRAG_PARSED = 'hlsFragParsed',\n // fired when fragment remuxed MP4 boxes have all been appended into SourceBuffer - data: { id : demuxer id, frag : fragment object, stats : LoaderStats }\n FRAG_BUFFERED = 'hlsFragBuffered',\n // fired when fragment matching with current media position is changing - data : { id : demuxer id, frag : fragment object }\n FRAG_CHANGED = 'hlsFragChanged',\n // Identifier for a FPS drop event - data: { currentDropped, currentDecoded, totalDroppedFrames }\n FPS_DROP = 'hlsFpsDrop',\n // triggered when FPS drop triggers auto level capping - data: { level, droppedLevel }\n FPS_DROP_LEVEL_CAPPING = 'hlsFpsDropLevelCapping',\n // triggered when maxAutoLevel changes - data { autoLevelCapping, levels, maxAutoLevel, minAutoLevel, maxHdcpLevel }\n MAX_AUTO_LEVEL_UPDATED = 'hlsMaxAutoLevelUpdated',\n // Identifier for an error event - data: { type : error type, details : error details, fatal : if true, hls.js cannot/will not try to recover, if false, hls.js will try to recover,other error specific data }\n ERROR = 'hlsError',\n // fired when hls.js instance starts destroying. Different from MEDIA_DETACHED as one could want to detach and reattach a media to the instance of hls.js to handle mid-rolls for example - data: { }\n DESTROYING = 'hlsDestroying',\n // fired when a decrypt key loading starts - data: { frag : fragment object }\n KEY_LOADING = 'hlsKeyLoading',\n // fired when a decrypt key loading is completed - data: { frag : fragment object, keyInfo : KeyLoaderInfo }\n KEY_LOADED = 'hlsKeyLoaded',\n // deprecated; please use BACK_BUFFER_REACHED - data : { bufferEnd: number }\n LIVE_BACK_BUFFER_REACHED = 'hlsLiveBackBufferReached',\n // fired when the back buffer is reached as defined by the backBufferLength config option - data : { bufferEnd: number }\n BACK_BUFFER_REACHED = 'hlsBackBufferReached',\n // fired after steering manifest has been loaded - data: { steeringManifest: SteeringManifest object, url: steering manifest URL }\n STEERING_MANIFEST_LOADED = 'hlsSteeringManifestLoaded',\n}\n\n/**\n * Defines each Event type and payload by Event name. Used in {@link hls.js#HlsEventEmitter} to strongly type the event listener API.\n */\nexport interface HlsListeners {\n [Events.MEDIA_ATTACHING]: (\n event: Events.MEDIA_ATTACHING,\n data: MediaAttachingData,\n ) => void;\n [Events.MEDIA_ATTACHED]: (\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ) => void;\n [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;\n [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;\n [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;\n [Events.BUFFER_CODECS]: (\n event: Events.BUFFER_CODECS,\n data: BufferCodecsData,\n ) => void;\n [Events.BUFFER_CREATED]: (\n event: Events.BUFFER_CREATED,\n data: BufferCreatedData,\n ) => void;\n [Events.BUFFER_APPENDING]: (\n event: Events.BUFFER_APPENDING,\n data: BufferAppendingData,\n ) => void;\n [Events.BUFFER_APPENDED]: (\n event: Events.BUFFER_APPENDED,\n data: BufferAppendedData,\n ) => void;\n [Events.BUFFER_EOS]: (event: Events.BUFFER_EOS, data: BufferEOSData) => void;\n [Events.BUFFER_FLUSHING]: (\n event: Events.BUFFER_FLUSHING,\n data: BufferFlushingData,\n ) => void;\n [Events.BUFFER_FLUSHED]: (\n event: Events.BUFFER_FLUSHED,\n data: BufferFlushedData,\n ) => void;\n [Events.MANIFEST_LOADING]: (\n event: Events.MANIFEST_LOADING,\n data: ManifestLoadingData,\n ) => void;\n [Events.MANIFEST_LOADED]: (\n event: Events.MANIFEST_LOADED,\n data: ManifestLoadedData,\n ) => void;\n [Events.MANIFEST_PARSED]: (\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ) => void;\n [Events.LEVEL_SWITCHING]: (\n event: Events.LEVEL_SWITCHING,\n data: LevelSwitchingData,\n ) => void;\n [Events.LEVEL_SWITCHED]: (\n event: Events.LEVEL_SWITCHED,\n data: LevelSwitchedData,\n ) => void;\n [Events.LEVEL_LOADING]: (\n event: Events.LEVEL_LOADING,\n data: LevelLoadingData,\n ) => void;\n [Events.LEVEL_LOADED]: (\n event: Events.LEVEL_LOADED,\n data: LevelLoadedData,\n ) => void;\n [Events.LEVEL_UPDATED]: (\n event: Events.LEVEL_UPDATED,\n data: LevelUpdatedData,\n ) => void;\n [Events.LEVEL_PTS_UPDATED]: (\n event: Events.LEVEL_PTS_UPDATED,\n data: LevelPTSUpdatedData,\n ) => void;\n [Events.LEVELS_UPDATED]: (\n event: Events.LEVELS_UPDATED,\n data: LevelsUpdatedData,\n ) => void;\n [Events.AUDIO_TRACKS_UPDATED]: (\n event: Events.AUDIO_TRACKS_UPDATED,\n data: AudioTracksUpdatedData,\n ) => void;\n [Events.AUDIO_TRACK_SWITCHING]: (\n event: Events.AUDIO_TRACK_SWITCHING,\n data: AudioTrackSwitchingData,\n ) => void;\n [Events.AUDIO_TRACK_SWITCHED]: (\n event: Events.AUDIO_TRACK_SWITCHED,\n data: AudioTrackSwitchedData,\n ) => void;\n [Events.AUDIO_TRACK_LOADING]: (\n event: Events.AUDIO_TRACK_LOADING,\n data: TrackLoadingData,\n ) => void;\n [Events.AUDIO_TRACK_LOADED]: (\n event: Events.AUDIO_TRACK_LOADED,\n data: AudioTrackLoadedData,\n ) => void;\n [Events.SUBTITLE_TRACKS_UPDATED]: (\n event: Events.SUBTITLE_TRACKS_UPDATED,\n data: SubtitleTracksUpdatedData,\n ) => void;\n [Events.SUBTITLE_TRACKS_CLEARED]: (\n event: Events.SUBTITLE_TRACKS_CLEARED,\n ) => void;\n [Events.SUBTITLE_TRACK_SWITCH]: (\n event: Events.SUBTITLE_TRACK_SWITCH,\n data: SubtitleTrackSwitchData,\n ) => void;\n [Events.SUBTITLE_TRACK_LOADING]: (\n event: Events.SUBTITLE_TRACK_LOADING,\n data: TrackLoadingData,\n ) => void;\n [Events.SUBTITLE_TRACK_LOADED]: (\n event: Events.SUBTITLE_TRACK_LOADED,\n data: SubtitleTrackLoadedData,\n ) => void;\n [Events.SUBTITLE_FRAG_PROCESSED]: (\n event: Events.SUBTITLE_FRAG_PROCESSED,\n data: SubtitleFragProcessedData,\n ) => void;\n [Events.CUES_PARSED]: (\n event: Events.CUES_PARSED,\n data: CuesParsedData,\n ) => void;\n [Events.NON_NATIVE_TEXT_TRACKS_FOUND]: (\n event: Events.NON_NATIVE_TEXT_TRACKS_FOUND,\n data: NonNativeTextTracksData,\n ) => void;\n [Events.INIT_PTS_FOUND]: (\n event: Events.INIT_PTS_FOUND,\n data: InitPTSFoundData,\n ) => void;\n [Events.FRAG_LOADING]: (\n event: Events.FRAG_LOADING,\n data: FragLoadingData,\n ) => void;\n // [Events.FRAG_LOAD_PROGRESS]: TodoEventType\n [Events.FRAG_LOAD_EMERGENCY_ABORTED]: (\n event: Events.FRAG_LOAD_EMERGENCY_ABORTED,\n data: FragLoadEmergencyAbortedData,\n ) => void;\n [Events.FRAG_LOADED]: (\n event: Events.FRAG_LOADED,\n data: FragLoadedData,\n ) => void;\n [Events.FRAG_DECRYPTED]: (\n event: Events.FRAG_DECRYPTED,\n data: FragDecryptedData,\n ) => void;\n [Events.FRAG_PARSING_INIT_SEGMENT]: (\n event: Events.FRAG_PARSING_INIT_SEGMENT,\n data: FragParsingInitSegmentData,\n ) => void;\n [Events.FRAG_PARSING_USERDATA]: (\n event: Events.FRAG_PARSING_USERDATA,\n data: FragParsingUserdataData,\n ) => void;\n [Events.FRAG_PARSING_METADATA]: (\n event: Events.FRAG_PARSING_METADATA,\n data: FragParsingMetadataData,\n ) => void;\n // [Events.FRAG_PARSING_DATA]: TodoEventType\n [Events.FRAG_PARSED]: (\n event: Events.FRAG_PARSED,\n data: FragParsedData,\n ) => void;\n [Events.FRAG_BUFFERED]: (\n event: Events.FRAG_BUFFERED,\n data: FragBufferedData,\n ) => void;\n [Events.FRAG_CHANGED]: (\n event: Events.FRAG_CHANGED,\n data: FragChangedData,\n ) => void;\n [Events.FPS_DROP]: (event: Events.FPS_DROP, data: FPSDropData) => void;\n [Events.FPS_DROP_LEVEL_CAPPING]: (\n event: Events.FPS_DROP_LEVEL_CAPPING,\n data: FPSDropLevelCappingData,\n ) => void;\n [Events.MAX_AUTO_LEVEL_UPDATED]: (\n event: Events.MAX_AUTO_LEVEL_UPDATED,\n data: MaxAutoLevelUpdatedData,\n ) => void;\n [Events.ERROR]: (event: Events.ERROR, data: ErrorData) => void;\n [Events.DESTROYING]: (event: Events.DESTROYING) => void;\n [Events.KEY_LOADING]: (\n event: Events.KEY_LOADING,\n data: KeyLoadingData,\n ) => void;\n [Events.KEY_LOADED]: (event: Events.KEY_LOADED, data: KeyLoadedData) => void;\n [Events.LIVE_BACK_BUFFER_REACHED]: (\n event: Events.LIVE_BACK_BUFFER_REACHED,\n data: LiveBackBufferData,\n ) => void;\n [Events.BACK_BUFFER_REACHED]: (\n event: Events.BACK_BUFFER_REACHED,\n data: BackBufferData,\n ) => void;\n [Events.STEERING_MANIFEST_LOADED]: (\n event: Events.STEERING_MANIFEST_LOADED,\n data: SteeringManifestLoadedData,\n ) => void;\n}\nexport interface HlsEventEmitter {\n on<E extends keyof HlsListeners, Context = undefined>(\n event: E,\n listener: HlsListeners[E],\n context?: Context,\n ): void;\n once<E extends keyof HlsListeners, Context = undefined>(\n event: E,\n listener: HlsListeners[E],\n context?: Context,\n ): void;\n\n removeAllListeners<E extends keyof HlsListeners>(event?: E): void;\n off<E extends keyof HlsListeners, Context = undefined>(\n event: E,\n listener?: HlsListeners[E],\n context?: Context,\n once?: boolean,\n ): void;\n\n listeners<E extends keyof HlsListeners>(event: E): HlsListeners[E][];\n emit<E extends keyof HlsListeners>(\n event: E,\n name: E,\n eventObject: Parameters<HlsListeners[E]>[1],\n ): boolean;\n listenerCount<E extends keyof HlsListeners>(event: E): number;\n}\n","export enum ErrorTypes {\n // Identifier for a network error (loading error / timeout ...)\n NETWORK_ERROR = 'networkError',\n // Identifier for a media Error (video/parsing/mediasource error)\n MEDIA_ERROR = 'mediaError',\n // EME (encrypted media extensions) errors\n KEY_SYSTEM_ERROR = 'keySystemError',\n // Identifier for a mux Error (demuxing/remuxing)\n MUX_ERROR = 'muxError',\n // Identifier for all other errors\n OTHER_ERROR = 'otherError',\n}\n\nexport enum ErrorDetails {\n KEY_SYSTEM_NO_KEYS = 'keySystemNoKeys',\n KEY_SYSTEM_NO_ACCESS = 'keySystemNoAccess',\n KEY_SYSTEM_NO_SESSION = 'keySystemNoSession',\n KEY_SYSTEM_NO_CONFIGURED_LICENSE = 'keySystemNoConfiguredLicense',\n KEY_SYSTEM_LICENSE_REQUEST_FAILED = 'keySystemLicenseRequestFailed',\n KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = 'keySystemServerCertificateRequestFailed',\n KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = 'keySystemServerCertificateUpdateFailed',\n KEY_SYSTEM_SESSION_UPDATE_FAILED = 'keySystemSessionUpdateFailed',\n KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = 'keySystemStatusOutputRestricted',\n KEY_SYSTEM_STATUS_INTERNAL_ERROR = 'keySystemStatusInternalError',\n // Identifier for a manifest load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n MANIFEST_LOAD_ERROR = 'manifestLoadError',\n // Identifier for a manifest load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n MANIFEST_LOAD_TIMEOUT = 'manifestLoadTimeOut',\n // Identifier for a manifest parsing error - data: { url : faulty URL, reason : error reason}\n MANIFEST_PARSING_ERROR = 'manifestParsingError',\n // Identifier for a manifest with only incompatible codecs error - data: { url : faulty URL, reason : error reason}\n MANIFEST_INCOMPATIBLE_CODECS_ERROR = 'manifestIncompatibleCodecsError',\n // Identifier for a level which contains no fragments - data: { url: faulty URL, reason: \"no fragments found in level\", level: index of the bad level }\n LEVEL_EMPTY_ERROR = 'levelEmptyError',\n // Identifier for a level load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n LEVEL_LOAD_ERROR = 'levelLoadError',\n // Identifier for a level load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n LEVEL_LOAD_TIMEOUT = 'levelLoadTimeOut',\n // Identifier for a level parse error - data: { url : faulty URL, error: Error, reason: error message }\n LEVEL_PARSING_ERROR = 'levelParsingError',\n // Identifier for a level switch error - data: { level : faulty level Id, event : error description}\n LEVEL_SWITCH_ERROR = 'levelSwitchError',\n // Identifier for an audio track load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n AUDIO_TRACK_LOAD_ERROR = 'audioTrackLoadError',\n // Identifier for an audio track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n AUDIO_TRACK_LOAD_TIMEOUT = 'audioTrackLoadTimeOut',\n // Identifier for a subtitle track load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n SUBTITLE_LOAD_ERROR = 'subtitleTrackLoadError',\n // Identifier for a subtitle track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n SUBTITLE_TRACK_LOAD_TIMEOUT = 'subtitleTrackLoadTimeOut',\n // Identifier for fragment load error - data: { frag : fragment object, response : { code: error code, text: error text }}\n FRAG_LOAD_ERROR = 'fragLoadError',\n // Identifier for fragment load timeout error - data: { frag : fragment object}\n FRAG_LOAD_TIMEOUT = 'fragLoadTimeOut',\n // Identifier for a fragment decryption error event - data: {id : demuxer Id,frag: fragment object, reason : parsing error description }\n FRAG_DECRYPT_ERROR = 'fragDecryptError',\n // Identifier for a fragment parsing error event - data: { id : demuxer Id, reason : parsing error description }\n // will be renamed DEMUX_PARSING_ERROR and switched to MUX_ERROR in the next major release\n FRAG_PARSING_ERROR = 'fragParsingError',\n // Identifier for a fragment or part load skipped because of a GAP tag or attribute\n FRAG_GAP = 'fragGap',\n // Identifier for a remux alloc error event - data: { id : demuxer Id, frag : fragment object, bytes : nb of bytes on which allocation failed , reason : error text }\n REMUX_ALLOC_ERROR = 'remuxAllocError',\n // Identifier for decrypt key load error - data: { frag : fragment object, response : { code: error code, text: error text }}\n KEY_LOAD_ERROR = 'keyLoadError',\n // Identifier for decrypt key load timeout error - data: { frag : fragment object}\n KEY_LOAD_TIMEOUT = 'keyLoadTimeOut',\n // Triggered when an exception occurs while adding a sourceBuffer to MediaSource - data : { error : exception , mimeType : mimeType }\n BUFFER_ADD_CODEC_ERROR = 'bufferAddCodecError',\n // Triggered when source buffer(s) could not be created using level (manifest CODECS attribute), parsed media, or best guess codec(s) - data: { reason : error reason }\n BUFFER_INCOMPATIBLE_CODECS_ERROR = 'bufferIncompatibleCodecsError',\n // Identifier for a buffer append error - data: append error description\n BUFFER_APPEND_ERROR = 'bufferAppendError',\n // Identifier for a buffer appending error event - data: appending error description\n BUFFER_APPENDING_ERROR = 'bufferAppendingError',\n // Identifier for a buffer stalled error event\n BUFFER_STALLED_ERROR = 'bufferStalledError',\n // Identifier for a buffer full event\n BUFFER_FULL_ERROR = 'bufferFullError',\n // Identifier for a buffer seek over hole event\n BUFFER_SEEK_OVER_HOLE = 'bufferSeekOverHole',\n // Identifier for a buffer nudge on stall (playback is stuck although currentTime is in a buffered area)\n BUFFER_NUDGE_ON_STALL = 'bufferNudgeOnStall',\n // Identifier for an internal exception happening inside hls.js while handling an event\n INTERNAL_EXCEPTION = 'internalException',\n // Identifier for an internal call to abort a loader\n INTERNAL_ABORTED = 'aborted',\n // Uncategorized error\n UNKNOWN = 'unknown',\n}\n","export interface ILogFunction {\n (message?: any, ...optionalParams: any[]): void;\n}\n\nexport interface ILogger {\n trace: ILogFunction;\n debug: ILogFunction;\n log: ILogFunction;\n warn: ILogFunction;\n info: ILogFunction;\n error: ILogFunction;\n}\n\nconst noop: ILogFunction = function () {};\n\nconst fakeLogger: ILogger = {\n trace: noop,\n debug: noop,\n log: noop,\n warn: noop,\n info: noop,\n error: noop,\n};\n\nlet exportedLogger: ILogger = fakeLogger;\n\n// let lastCallTime;\n// function formatMsgWithTimeInfo(type, msg) {\n// const now = Date.now();\n// const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';\n// lastCallTime = now;\n// msg = (new Date(now)).toISOString() + ' | [' + type + '] > ' + msg + ' ( ' + diff + ' ms )';\n// return msg;\n// }\n\nfunction consolePrintFn(type: string): ILogFunction {\n const func: ILogFunction = self.console[type];\n if (func) {\n return func.bind(self.console, `[${type}] >`);\n }\n return noop;\n}\n\nfunction exportLoggerFunctions(\n debugConfig: boolean | ILogger,\n ...functions: string[]\n): void {\n functions.forEach(function (type) {\n exportedLogger[type] = debugConfig[type]\n ? debugConfig[type].bind(debugConfig)\n : consolePrintFn(type);\n });\n}\n\nexport function enableLogs(debugConfig: boolean | ILogger, id: string): void {\n // check that console is available\n if (\n (typeof console === 'object' && debugConfig === true) ||\n typeof debugConfig === 'object'\n ) {\n exportLoggerFunctions(\n debugConfig,\n // Remove out from list here to hard-disable a log-level\n // 'trace',\n 'debug',\n 'log',\n 'info',\n 'warn',\n 'error',\n );\n // Some browsers don't allow to use bind on console object anyway\n // fallback to default if needed\n try {\n exportedLogger.log(\n `Debug logs enabled for \"${id}\" in hls.js version ${__VERSION__}`,\n );\n } catch (e) {\n exportedLogger = fakeLogger;\n }\n } else {\n exportedLogger = fakeLogger;\n }\n}\n\nexport const logger: ILogger = exportedLogger;\n","const DECIMAL_RESOLUTION_REGEX = /^(\\d+)x(\\d+)$/;\nconst ATTR_LIST_REGEX = /(.+?)=(\".*?\"|.*?)(?:,|$)/g;\n\n// adapted from https://github.com/kanongil/node-m3u8parse/blob/master/attrlist.js\nexport class AttrList {\n [key: string]: any;\n\n constructor(attrs: string | Record<string, any>) {\n if (typeof attrs === 'string') {\n attrs = AttrList.parseAttrList(attrs);\n }\n Object.assign(this, attrs);\n }\n\n get clientAttrs(): string[] {\n return Object.keys(this).filter((attr) => attr.substring(0, 2) === 'X-');\n }\n\n decimalInteger(attrName: string): number {\n const intValue = parseInt(this[attrName], 10);\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n\n return intValue;\n }\n\n hexadecimalInteger(attrName: string) {\n if (this[attrName]) {\n let stringValue = (this[attrName] || '0x').slice(2);\n stringValue = (stringValue.length & 1 ? '0' : '') + stringValue;\n\n const value = new Uint8Array(stringValue.length / 2);\n for (let i = 0; i < stringValue.length / 2; i++) {\n value[i] = parseInt(stringValue.slice(i * 2, i * 2 + 2), 16);\n }\n\n return value;\n } else {\n return null;\n }\n }\n\n hexadecimalIntegerAsNumber(attrName: string): number {\n const intValue = parseInt(this[attrName], 16);\n if (intValue > Number.MAX_SAFE_INTEGER) {\n return Infinity;\n }\n\n return intValue;\n }\n\n decimalFloatingPoint(attrName: string): number {\n return parseFloat(this[attrName]);\n }\n\n optionalFloat(attrName: string, defaultValue: number): number {\n const value = this[attrName];\n return value ? parseFloat(value) : defaultValue;\n }\n\n enumeratedString(attrName: string): string | undefined {\n return this[attrName];\n }\n\n bool(attrName: string): boolean {\n return this[attrName] === 'YES';\n }\n\n decimalResolution(attrName: string):\n | {\n width: number;\n height: number;\n }\n | undefined {\n const res = DECIMAL_RESOLUTION_REGEX.exec(this[attrName]);\n if (res === null) {\n return undefined;\n }\n\n return {\n width: parseInt(res[1], 10),\n height: parseInt(res[2], 10),\n };\n }\n\n static parseAttrList(input: string): Record<string, any> {\n let match;\n const attrs = {};\n const quote = '\"';\n ATTR_LIST_REGEX.lastIndex = 0;\n while ((match = ATTR_LIST_REGEX.exec(input)) !== null) {\n let value = match[2];\n\n if (\n value.indexOf(quote) === 0 &&\n value.lastIndexOf(quote) === value.length - 1\n ) {\n value = value.slice(1, -1);\n }\n const name = match[1].trim();\n attrs[name] = value;\n }\n return attrs;\n }\n}\n","import { AttrList } from '../utils/attr-list';\nimport { logger } from '../utils/logger';\n\n// Avoid exporting const enum so that these values can be inlined\nconst enum DateRangeAttribute {\n ID = 'ID',\n CLASS = 'CLASS',\n START_DATE = 'START-DATE',\n DURATION = 'DURATION',\n END_DATE = 'END-DATE',\n END_ON_NEXT = 'END-ON-NEXT',\n PLANNED_DURATION = 'PLANNED-DURATION',\n SCTE35_OUT = 'SCTE35-OUT',\n SCTE35_IN = 'SCTE35-IN',\n}\n\nexport function isDateRangeCueAttribute(attrName: string): boolean {\n return (\n attrName !== DateRangeAttribute.ID &&\n attrName !== DateRangeAttribute.CLASS &&\n attrName !== DateRangeAttribute.START_DATE &&\n attrName !== DateRangeAttribute.DURATION &&\n attrName !== DateRangeAttribute.END_DATE &&\n attrName !== DateRangeAttribute.END_ON_NEXT\n );\n}\n\nexport function isSCTE35Attribute(attrName: string): boolean {\n return (\n attrName === DateRangeAttribute.SCTE35_OUT ||\n attrName === DateRangeAttribute.SCTE35_IN\n );\n}\n\nexport class DateRange {\n public attr: AttrList;\n private _startDate: Date;\n private _endDate?: Date;\n private _badValueForSameId?: string;\n\n constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange) {\n if (dateRangeWithSameId) {\n const previousAttr = dateRangeWithSameId.attr;\n for (const key in previousAttr) {\n if (\n Object.prototype.hasOwnProperty.call(dateRangeAttr, key) &&\n dateRangeAttr[key] !== previousAttr[key]\n ) {\n logger.warn(\n `DATERANGE tag attribute: \"${key}\" does not match for tags with ID: \"${dateRangeAttr.ID}\"`,\n );\n this._badValueForSameId = key;\n break;\n }\n }\n // Merge DateRange tags with the same ID\n dateRangeAttr = Object.assign(\n new AttrList({}),\n previousAttr,\n dateRangeAttr,\n );\n }\n this.attr = dateRangeAttr;\n this._startDate = new Date(dateRangeAttr[DateRangeAttribute.START_DATE]);\n if (DateRangeAttribute.END_DATE in this.attr) {\n const endDate = new Date(this.attr[DateRangeAttribute.END_DATE]);\n if (Number.isFinite(endDate.getTime())) {\n this._endDate = endDate;\n }\n }\n }\n\n get id(): string {\n return this.attr.ID;\n }\n\n get class(): string {\n return this.attr.CLASS;\n }\n\n get startDate(): Date {\n return this._startDate;\n }\n\n get endDate(): Date | null {\n if (this._endDate) {\n return this._endDate;\n }\n const duration = this.duration;\n if (duration !== null) {\n return new Date(this._startDate.getTime() + duration * 1000);\n }\n return null;\n }\n\n get duration(): number | null {\n if (DateRangeAttribute.DURATION in this.attr) {\n const duration = this.attr.decimalFloatingPoint(\n DateRangeAttribute.DURATION,\n );\n if (Number.isFinite(duration)) {\n return duration;\n }\n } else if (this._endDate) {\n return (this._endDate.getTime() - this._startDate.getTime()) / 1000;\n }\n return null;\n }\n\n get plannedDuration(): number | null {\n if (DateRangeAttribute.PLANNED_DURATION in this.attr) {\n return this.attr.decimalFloatingPoint(\n DateRangeAttribute.PLANNED_DURATION,\n );\n }\n return null;\n }\n\n get endOnNext(): boolean {\n return this.attr.bool(DateRangeAttribute.END_ON_NEXT);\n }\n\n get isValid(): boolean {\n return (\n !!this.id &&\n !this._badValueForSameId &&\n Number.isFinite(this.startDate.getTime()) &&\n (this.duration === null || this.duration >= 0) &&\n (!this.endOnNext || !!this.class)\n );\n }\n}\n","import type {\n HlsPerformanceTiming,\n HlsProgressivePerformanceTiming,\n LoaderStats,\n} from '../types/loader';\n\nexport class LoadStats implements LoaderStats {\n aborted: boolean = false;\n loaded: number = 0;\n retry: number = 0;\n total: number = 0;\n chunkCount: number = 0;\n bwEstimate: number = 0;\n loading: HlsProgressivePerformanceTiming = { start: 0, first: 0, end: 0 };\n parsing: HlsPerformanceTiming = { start: 0, end: 0 };\n buffering: HlsProgressivePerformanceTiming = { start: 0, first: 0, end: 0 };\n}\n","import { buildAbsoluteURL } from 'url-toolkit';\nimport { LevelKey } from './level-key';\nimport { LoadStats } from './load-stats';\nimport { AttrList } from '../utils/attr-list';\nimport type {\n FragmentLoaderContext,\n KeyLoaderContext,\n Loader,\n PlaylistLevelType,\n} from '../types/loader';\nimport type { KeySystemFormats } from '../utils/mediakeys-helper';\n\nexport const enum ElementaryStreamTypes {\n AUDIO = 'audio',\n VIDEO = 'video',\n AUDIOVIDEO = 'audiovideo',\n}\n\nexport interface ElementaryStreamInfo {\n startPTS: number;\n endPTS: number;\n startDTS: number;\n endDTS: number;\n partial?: boolean;\n}\n\nexport type ElementaryStreams = Record<\n ElementaryStreamTypes,\n ElementaryStreamInfo | null\n>;\n\nexport class BaseSegment {\n private _byteRange: [number, number] | null = null;\n private _url: string | null = null;\n\n // baseurl is the URL to the playlist\n public readonly baseurl: string;\n // relurl is the portion of the URL that comes from inside the playlist.\n public relurl?: string;\n // Holds the types of data this fragment supports\n public elementaryStreams: ElementaryStreams = {\n [ElementaryStreamTypes.AUDIO]: null,\n [ElementaryStreamTypes.VIDEO]: null,\n [ElementaryStreamTypes.AUDIOVIDEO]: null,\n };\n\n constructor(baseurl: string) {\n this.baseurl = baseurl;\n }\n\n // setByteRange converts a EXT-X-BYTERANGE attribute into a two element array\n setByteRange(value: string, previous?: BaseSegment) {\n const params = value.split('@', 2);\n let start: number;\n if (params.length === 1) {\n start = previous?.byteRangeEndOffset || 0;\n } else {\n start = parseInt(params[1]);\n }\n this._byteRange = [start, parseInt(params[0]) + start];\n }\n\n get byteRange(): [number, number] | [] {\n if (!this._byteRange) {\n return [];\n }\n\n return this._byteRange;\n }\n\n get byteRangeStartOffset(): number | undefined {\n return this.byteRange[0];\n }\n\n get byteRangeEndOffset(): number | undefined {\n return this.byteRange[1];\n }\n\n get url(): string {\n if (!this._url && this.baseurl && this.relurl) {\n this._url = buildAbsoluteURL(this.baseurl, this.relurl, {\n alwaysNormalize: true,\n });\n }\n return this._url || '';\n }\n\n set url(value: string) {\n this._url = value;\n }\n}\n\n/**\n * Object representing parsed data from an HLS Segment. Found in {@link hls.js#LevelDetails.fragments}.\n */\nexport class Fragment extends BaseSegment {\n private _decryptdata: LevelKey | null = null;\n\n public rawProgramDateTime: string | null = null;\n public programDateTime: number | null = null;\n public tagList: Array<string[]> = [];\n\n // EXTINF has to be present for a m3u8 to be considered valid\n public duration: number = 0;\n // sn notates the sequence number for a segment, and if set to a string can be 'initSegment'\n public sn: number | 'initSegment' = 0;\n // levelkeys are the EXT-X-KEY tags that apply to this segment for decryption\n // core difference from the private field _decryptdata is the lack of the initialized IV\n // _decryptdata will set the IV for this segment based on the segment number in the fragment\n public levelkeys?: { [key: string]: LevelKey };\n // A string representing the fragment type\n public readonly type: PlaylistLevelType;\n // A reference to the loader. Set while the fragment is loading, and removed afterwards. Used to abort fragment loading\n public loader: Loader<FragmentLoaderContext> | null = null;\n // A reference to the key loader. Set while the key is loading, and removed afterwards. Used to abort key loading\n public keyLoader: Loader<KeyLoaderContext> | null = null;\n // The level/track index to which the fragment belongs\n public level: number = -1;\n // The continuity counter of the fragment\n public cc: number = 0;\n // The starting Presentation Time Stamp (PTS) of the fragment. Set after transmux complete.\n public startPTS?: number;\n // The ending Presentation Time Stamp (PTS) of the fragment. Set after transmux complete.\n public endPTS?: number;\n // The starting Decode Time Stamp (DTS) of the fragment. Set after transmux complete.\n public startDTS!: number;\n // The ending Decode Time Stamp (DTS) of the fragment. Set after transmux complete.\n public endDTS!: number;\n // The start time of the fragment, as listed in the manifest. Updated after transmux complete.\n public start: number = 0;\n // Set by `updateFragPTSDTS` in level-helper\n public deltaPTS?: number;\n // The maximum starting Presentation Time Stamp (audio/video PTS) of the fragment. Set after transmux complete.\n public maxStartPTS?: number;\n // The minimum ending Presentation Time Stamp (audio/video PTS) of the fragment. Set after transmux complete.\n public minEndPTS?: number;\n // Load/parse timing information\n public stats: LoadStats = new LoadStats();\n // Init Segment bytes (unset for media segments)\n public data?: Uint8Array;\n // A flag indicating whether the segment was downloaded in order to test bitrate, and was not buffered\n public bitrateTest: boolean = false;\n // #EXTINF segment title\n public title: string | null = null;\n // The Media Initialization Section for this segment\n public initSegment: Fragment | null = null;\n // Fragment is the last fragment in the media playlist\n public endList?: boolean;\n // Fragment is marked by an EXT-X-GAP tag indicating that it does not contain media data and should not be loaded\n public gap?: boolean;\n // Deprecated\n public urlId: number = 0;\n\n constructor(type: PlaylistLevelType, baseurl: string) {\n super(baseurl);\n this.type = type;\n }\n\n get decryptdata(): LevelKey | null {\n const { levelkeys } = this;\n if (!levelkeys && !this._decryptdata) {\n return null;\n }\n\n if (!this._decryptdata && this.levelkeys && !this.levelkeys.NONE) {\n const key = this.levelkeys.identity;\n if (key) {\n this._decryptdata = key.getDecryptData(this.sn);\n } else {\n const keyFormats = Object.keys(this.levelkeys);\n if (keyFormats.length === 1) {\n return (this._decryptdata = this.levelkeys[\n keyFormats[0]\n ].getDecryptData(this.sn));\n } else {\n // Multiple keys. key-loader to call Fragment.setKeyFormat based on selected key-system.\n }\n }\n }\n\n return this._decryptdata;\n }\n\n get end(): number {\n return this.start + this.duration;\n }\n\n get endProgramDateTime() {\n if (this.programDateTime === null) {\n return null;\n }\n\n if (!Number.isFinite(this.programDateTime)) {\n return null;\n }\n\n const duration = !Number.isFinite(this.duration) ? 0 : this.duration;\n\n return this.programDateTime + duration * 1000;\n }\n\n get encrypted() {\n // At the m3u8-parser level we need to add support for manifest signalled keyformats\n // when we want the fragment to start reporting that it is encrypted.\n // Currently, keyFormat will only be set for identity keys\n if (this._decryptdata?.encrypted) {\n return true;\n } else if (this.levelkeys) {\n const keyFormats = Object.keys(this.levelkeys);\n const len = keyFormats.length;\n if (len > 1 || (len === 1 && this.levelkeys[keyFormats[0]].encrypted)) {\n return true;\n }\n }\n\n return false;\n }\n\n setKeyFormat(keyFormat: KeySystemFormats) {\n if (this.levelkeys) {\n const key = this.levelkeys[keyFormat];\n if (key && !this._decryptdata) {\n this._decryptdata = key.getDecryptData(this.sn);\n }\n }\n }\n\n abortRequests(): void {\n this.loader?.abort();\n this.keyLoader?.abort();\n }\n\n setElementaryStreamInfo(\n type: ElementaryStreamTypes,\n startPTS: number,\n endPTS: number,\n startDTS: number,\n endDTS: number,\n partial: boolean = false,\n ) {\n const { elementaryStreams } = this;\n const info = elementaryStreams[type];\n if (!info) {\n elementaryStreams[type] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n partial,\n };\n return;\n }\n\n info.startPTS = Math.min(info.startPTS, startPTS);\n info.endPTS = Math.max(info.endPTS, endPTS);\n info.startDTS = Math.min(info.startDTS, startDTS);\n info.endDTS = Math.max(info.endDTS, endDTS);\n }\n\n clearElementaryStreamInfo() {\n const { elementaryStreams } = this;\n elementaryStreams[ElementaryStreamTypes.AUDIO] = null;\n elementaryStreams[ElementaryStreamTypes.VIDEO] = null;\n elementaryStreams[ElementaryStreamTypes.AUDIOVIDEO] = null;\n }\n}\n\n/**\n * Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.\n */\nexport class Part extends BaseSegment {\n public readonly fragOffset: number = 0;\n public readonly duration: number = 0;\n public readonly gap: boolean = false;\n public readonly independent: boolean = false;\n public readonly relurl: string;\n public readonly fragment: Fragment;\n public readonly index: number;\n public stats: LoadStats = new LoadStats();\n\n constructor(\n partAttrs: AttrList,\n frag: Fragment,\n baseurl: string,\n index: number,\n previous?: Part,\n ) {\n super(baseurl);\n this.duration = partAttrs.decimalFloatingPoint('DURATION');\n this.gap = partAttrs.bool('GAP');\n this.independent = partAttrs.bool('INDEPENDENT');\n this.relurl = partAttrs.enumeratedString('URI') as string;\n this.fragment = frag;\n this.index = index;\n const byteRange = partAttrs.enumeratedString('BYTERANGE');\n if (byteRange) {\n this.setByteRange(byteRange, previous);\n }\n if (previous) {\n this.fragOffset = previous.fragOffset + previous.duration;\n }\n }\n\n get start(): number {\n return this.fragment.start + this.fragOffset;\n }\n\n get end(): number {\n return this.start + this.duration;\n }\n\n get loaded(): boolean {\n const { elementaryStreams } = this;\n return !!(\n elementaryStreams.audio ||\n elementaryStreams.video ||\n elementaryStreams.audiovideo\n );\n }\n}\n","import { Part } from './fragment';\nimport type { Fragment } from './fragment';\nimport type { AttrList } from '../utils/attr-list';\nimport type { DateRange } from './date-range';\nimport type { VariableMap } from '../types/level';\n\nconst DEFAULT_TARGET_DURATION = 10;\n\n/**\n * Object representing parsed data from an HLS Media Playlist. Found in {@link hls.js#Level.details}.\n */\nexport class LevelDetails {\n public PTSKnown: boolean = false;\n public alignedSliding: boolean = false;\n public averagetargetduration?: number;\n public endCC: number = 0;\n public endSN: number = 0;\n public fragments: Fragment[];\n public fragmentHint?: Fragment;\n public partList: Part[] | null = null;\n public dateRanges: Record<string, DateRange>;\n public live: boolean = true;\n public ageHeader: number = 0;\n public advancedDateTime?: number;\n public updated: boolean = true;\n public advanced: boolean = true;\n public availabilityDelay?: number; // Manifest reload synchronization\n public misses: number = 0;\n public startCC: number = 0;\n public startSN: number = 0;\n public startTimeOffset: number | null = null;\n public targetduration: number = 0;\n public totalduration: number = 0;\n public type: string | null = null;\n public url: string;\n public m3u8: string = '';\n public version: number | null = null;\n public canBlockReload: boolean = false;\n public canSkipUntil: number = 0;\n public canSkipDateRanges: boolean = false;\n public skippedSegments: number = 0;\n public recentlyRemovedDateranges?: string[];\n public partHoldBack: number = 0;\n public holdBack: number = 0;\n public partTarget: number = 0;\n public preloadHint?: AttrList;\n public renditionReports?: AttrList[];\n public tuneInGoal: number = 0;\n public deltaUpdateFailed?: boolean;\n public driftStartTime: number = 0;\n public driftEndTime: number = 0;\n public driftStart: number = 0;\n public driftEnd: number = 0;\n public encryptedFragments: Fragment[];\n public playlistParsingError: Error | null = null;\n public variableList: VariableMap | null = null;\n public hasVariableRefs = false;\n\n constructor(baseUrl: string) {\n this.fragments = [];\n this.encryptedFragments = [];\n this.dateRanges = {};\n this.url = baseUrl;\n }\n\n reloaded(previous: LevelDetails | undefined) {\n if (!previous) {\n this.advanced = true;\n this.updated = true;\n return;\n }\n const partSnDiff = this.lastPartSn - previous.lastPartSn;\n const partIndexDiff = this.lastPartIndex - previous.lastPartIndex;\n this.updated =\n this.endSN !== previous.endSN ||\n !!partIndexDiff ||\n !!partSnDiff ||\n !this.live;\n this.advanced =\n this.endSN > previous.endSN ||\n partSnDiff > 0 ||\n (partSnDiff === 0 && partIndexDiff > 0);\n if (this.updated || this.advanced) {\n this.misses = Math.floor(previous.misses * 0.6);\n } else {\n this.misses = previous.misses + 1;\n }\n this.availabilityDelay = previous.availabilityDelay;\n }\n\n get hasProgramDateTime(): boolean {\n if (this.fragments.length) {\n return Number.isFinite(\n this.fragments[this.fragments.length - 1].programDateTime as number,\n );\n }\n return false;\n }\n\n get levelTargetDuration(): number {\n return (\n this.averagetargetduration ||\n this.targetduration ||\n DEFAULT_TARGET_DURATION\n );\n }\n\n get drift(): number {\n const runTime = this.driftEndTime - this.driftStartTime;\n if (runTime > 0) {\n const runDuration = this.driftEnd - this.driftStart;\n return (runDuration * 1000) / runTime;\n }\n return 1;\n }\n\n get edge(): number {\n return this.partEnd || this.fragmentEnd;\n }\n\n get partEnd(): number {\n if (this.partList?.length) {\n return this.partList[this.partList.length - 1].end;\n }\n return this.fragmentEnd;\n }\n\n get fragmentEnd(): number {\n if (this.fragments?.length) {\n return this.fragments[this.fragments.length - 1].end;\n }\n return 0;\n }\n\n get age(): number {\n if (this.advancedDateTime) {\n return Math.max(Date.now() - this.advancedDateTime, 0) / 1000;\n }\n return 0;\n }\n\n get lastPartIndex(): number {\n if (this.partList?.length) {\n return this.partList[this.partList.length - 1].index;\n }\n return -1;\n }\n\n get lastPartSn(): number {\n if (this.partList?.length) {\n return this.partList[this.partList.length - 1].fragment.sn as number;\n }\n return this.endSN;\n }\n}\n","export function base64ToBase64Url(base64encodedStr: string): string {\n return base64encodedStr\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n\nexport function strToBase64Encode(str: string): string {\n return btoa(str);\n}\n\nexport function base64DecodeToStr(str: string): string {\n return atob(str);\n}\n\nexport function base64Encode(input: Uint8Array): string {\n return btoa(String.fromCharCode(...input));\n}\n\nexport function base64UrlEncode(input: Uint8Array): string {\n return base64ToBase64Url(base64Encode(input));\n}\n\nexport function base64Decode(base64encodedStr: string): Uint8Array {\n return Uint8Array.from(atob(base64encodedStr), (c) => c.charCodeAt(0));\n}\n","import { base64Decode } from './numeric-encoding-utils';\n\nfunction getKeyIdBytes(str: string): Uint8Array {\n const keyIdbytes = strToUtf8array(str).subarray(0, 16);\n const paddedkeyIdbytes = new Uint8Array(16);\n paddedkeyIdbytes.set(keyIdbytes, 16 - keyIdbytes.length);\n return paddedkeyIdbytes;\n}\n\nexport function changeEndianness(keyId: Uint8Array) {\n const swap = function (array: Uint8Array, from: number, to: number) {\n const cur = array[from];\n array[from] = array[to];\n array[to] = cur;\n };\n\n swap(keyId, 0, 3);\n swap(keyId, 1, 2);\n swap(keyId, 4, 5);\n swap(keyId, 6, 7);\n}\n\nexport function convertDataUriToArrayBytes(uri: string): Uint8Array | null {\n // data:[<media type][;attribute=value][;base64],<data>\n const colonsplit = uri.split(':');\n let keydata: Uint8Array | null = null;\n if (colonsplit[0] === 'data' && colonsplit.length === 2) {\n const semicolonsplit = colonsplit[1].split(';');\n const commasplit = semicolonsplit[semicolonsplit.length - 1].split(',');\n if (commasplit.length === 2) {\n const isbase64 = commasplit[0] === 'base64';\n const data = commasplit[1];\n if (isbase64) {\n semicolonsplit.splice(-1, 1); // remove from processing\n keydata = base64Decode(data);\n } else {\n keydata = getKeyIdBytes(data);\n }\n }\n }\n return keydata;\n}\n\nexport function strToUtf8array(str: string): Uint8Array {\n return Uint8Array.from(unescape(encodeURIComponent(str)), (c) =>\n c.charCodeAt(0),\n );\n}\n","/** returns `undefined` is `self` is missing, e.g. in node */\nexport const optionalSelf = typeof self !== 'undefined' ? self : undefined;\n","import { optionalSelf } from './global';\nimport { changeEndianness } from './keysystem-util';\nimport { base64Decode } from './numeric-encoding-utils';\nimport type { DRMSystemOptions, EMEControllerConfig } from '../config';\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess\n */\nexport const enum KeySystems {\n CLEARKEY = 'org.w3.clearkey',\n FAIRPLAY = 'com.apple.fps',\n PLAYREADY = 'com.microsoft.playready',\n WIDEVINE = 'com.widevine.alpha',\n}\n\n// Playlist #EXT-X-KEY KEYFORMAT values\nexport const enum KeySystemFormats {\n CLEARKEY = 'org.w3.clearkey',\n FAIRPLAY = 'com.apple.streamingkeydelivery',\n PLAYREADY = 'com.microsoft.playready',\n WIDEVINE = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed',\n}\n\nexport function keySystemFormatToKeySystemDomain(\n format: KeySystemFormats,\n): KeySystems | undefined {\n switch (format) {\n case KeySystemFormats.FAIRPLAY:\n return KeySystems.FAIRPLAY;\n case KeySystemFormats.PLAYREADY:\n return KeySystems.PLAYREADY;\n case KeySystemFormats.WIDEVINE:\n return KeySystems.WIDEVINE;\n case KeySystemFormats.CLEARKEY:\n return KeySystems.CLEARKEY;\n }\n}\n\n// System IDs for which we can extract a key ID from \"encrypted\" event PSSH\nexport const enum KeySystemIds {\n CENC = '1077efecc0b24d02ace33c1e52e2fb4b',\n CLEARKEY = 'e2719d58a985b3c9781ab030af78d30e',\n FAIRPLAY = '94ce86fb07ff4f43adb893d2fa968ca2',\n PLAYREADY = '9a04f07998404286ab92e65be0885f95',\n WIDEVINE = 'edef8ba979d64acea3c827dcd51d21ed',\n}\n\nexport function keySystemIdToKeySystemDomain(\n systemId: KeySystemIds,\n): KeySystems | undefined {\n if (systemId === KeySystemIds.WIDEVINE) {\n return KeySystems.WIDEVINE;\n } else if (systemId === KeySystemIds.PLAYREADY) {\n return KeySystems.PLAYREADY;\n } else if (\n systemId === KeySystemIds.CENC ||\n systemId === KeySystemIds.CLEARKEY\n ) {\n return KeySystems.CLEARKEY;\n }\n}\n\nexport function keySystemDomainToKeySystemFormat(\n keySystem: KeySystems,\n): KeySystemFormats | undefined {\n switch (keySystem) {\n case KeySystems.FAIRPLAY:\n return KeySystemFormats.FAIRPLAY;\n case KeySystems.PLAYREADY:\n return KeySystemFormats.PLAYREADY;\n case KeySystems.WIDEVINE:\n return KeySystemFormats.WIDEVINE;\n case KeySystems.CLEARKEY:\n return KeySystemFormats.CLEARKEY;\n }\n}\n\nexport function getKeySystemsForConfig(\n config: EMEControllerConfig,\n): KeySystems[] {\n const { drmSystems, widevineLicenseUrl } = config;\n const keySystemsToAttempt: KeySystems[] = drmSystems\n ? [\n KeySystems.FAIRPLAY,\n KeySystems.WIDEVINE,\n KeySystems.PLAYREADY,\n KeySystems.CLEARKEY,\n ].filter((keySystem) => !!drmSystems[keySystem])\n : [];\n if (!keySystemsToAttempt[KeySystems.WIDEVINE] && widevineLicenseUrl) {\n keySystemsToAttempt.push(KeySystems.WIDEVINE);\n }\n return keySystemsToAttempt;\n}\n\nexport type MediaKeyFunc = (\n keySystem: KeySystems,\n supportedConfigurations: MediaKeySystemConfiguration[],\n) => Promise<MediaKeySystemAccess>;\n\nexport const requestMediaKeySystemAccess = (function (): MediaKeyFunc | null {\n if (optionalSelf?.navigator?.requestMediaKeySystemAccess) {\n return self.navigator.requestMediaKeySystemAccess.bind(self.navigator);\n } else {\n return null;\n }\n})();\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemConfiguration\n */\nexport function getSupportedMediaKeySystemConfigurations(\n keySystem: KeySystems,\n audioCodecs: string[],\n videoCodecs: string[],\n drmSystemOptions: DRMSystemOptions,\n): MediaKeySystemConfiguration[] {\n let initDataTypes: string[];\n switch (keySystem) {\n case KeySystems.FAIRPLAY:\n initDataTypes = ['cenc', 'sinf'];\n break;\n case KeySystems.WIDEVINE:\n case KeySystems.PLAYREADY:\n initDataTypes = ['cenc'];\n break;\n case KeySystems.CLEARKEY:\n initDataTypes = ['cenc', 'keyids'];\n break;\n default:\n throw new Error(`Unknown key-system: ${keySystem}`);\n }\n return createMediaKeySystemConfigurations(\n initDataTypes,\n audioCodecs,\n videoCodecs,\n drmSystemOptions,\n );\n}\n\nfunction createMediaKeySystemConfigurations(\n initDataTypes: string[],\n audioCodecs: string[],\n videoCodecs: string[],\n drmSystemOptions: DRMSystemOptions,\n): MediaKeySystemConfiguration[] {\n const baseConfig: MediaKeySystemConfiguration = {\n initDataTypes: initDataTypes,\n persistentState: drmSystemOptions.persistentState || 'optional',\n distinctiveIdentifier: drmSystemOptions.distinctiveIdentifier || 'optional',\n sessionTypes: drmSystemOptions.sessionTypes || [\n drmSystemOptions.sessionType || 'temporary',\n ],\n audioCapabilities: audioCodecs.map((codec) => ({\n contentType: `audio/mp4; codecs=\"${codec}\"`,\n robustness: drmSystemOptions.audioRobustness || '',\n encryptionScheme: drmSystemOptions.audioEncryptionScheme || null,\n })),\n videoCapabilities: videoCodecs.map((codec) => ({\n contentType: `video/mp4; codecs=\"${codec}\"`,\n robustness: drmSystemOptions.videoRobustness || '',\n encryptionScheme: drmSystemOptions.videoEncryptionScheme || null,\n })),\n };\n\n return [baseConfig];\n}\n\nexport function parsePlayReadyWRM(keyBytes: Uint8Array): Uint8Array | null {\n const keyBytesUtf16 = new Uint16Array(\n keyBytes.buffer,\n keyBytes.byteOffset,\n keyBytes.byteLength / 2,\n );\n const keyByteStr = String.fromCharCode.apply(null, Array.from(keyBytesUtf16));\n\n // Parse Playready WRMHeader XML\n const xmlKeyBytes = keyByteStr.substring(\n keyByteStr.indexOf('<'),\n keyByteStr.length,\n );\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlKeyBytes, 'text/xml');\n const keyData = xmlDoc.getElementsByTagName('KID')[0];\n if (keyData) {\n const keyId = keyData.childNodes[0]\n ? keyData.childNodes[0].nodeValue\n : keyData.getAttribute('VALUE');\n if (keyId) {\n const keyIdArray = base64Decode(keyId).subarray(0, 16);\n // KID value in PRO is a base64-encoded little endian GUID interpretation of UUID\n // KID value in ‘tenc’ is a big endian UUID GUID interpretation of UUID\n changeEndianness(keyIdArray);\n return keyIdArray;\n }\n }\n return null;\n}\n","export function sliceUint8(\n array: Uint8Array,\n start?: number,\n end?: number,\n): Uint8Array {\n // @ts-expect-error This polyfills IE11 usage of Uint8Array slice.\n // It always exists in the TypeScript definition so fails, but it fails at runtime on IE11.\n return Uint8Array.prototype.slice\n ? array.slice(start, end)\n : new Uint8Array(Array.prototype.slice.call(array, start, end));\n}\n","type RawFrame = { type: string; size: number; data: Uint8Array };\n\n// breaking up those two types in order to clarify what is happening in the decoding path.\ntype DecodedFrame<T> = { key: string; data: T; info?: any };\nexport type Frame = DecodedFrame<ArrayBuffer | string>;\n\n/**\n * Returns true if an ID3 header can be found at offset in data\n * @param data - The data to search\n * @param offset - The offset at which to start searching\n */\nexport const isHeader = (data: Uint8Array, offset: number): boolean => {\n /*\n * http://id3.org/id3v2.3.0\n * [0] = 'I'\n * [1] = 'D'\n * [2] = '3'\n * [3,4] = {Version}\n * [5] = {Flags}\n * [6-9] = {ID3 Size}\n *\n * An ID3v2 tag can be detected with the following pattern:\n * $49 44 33 yy yy xx zz zz zz zz\n * Where yy is less than $FF, xx is the 'flags' byte and zz is less than $80\n */\n if (offset + 10 <= data.length) {\n // look for 'ID3' identifier\n if (\n data[offset] === 0x49 &&\n data[offset + 1] === 0x44 &&\n data[offset + 2] === 0x33\n ) {\n // check version is within range\n if (data[offset + 3] < 0xff && data[offset + 4] < 0xff) {\n // check size is within range\n if (\n data[offset + 6] < 0x80 &&\n data[offset + 7] < 0x80 &&\n data[offset + 8] < 0x80 &&\n data[offset + 9] < 0x80\n ) {\n return true;\n }\n }\n }\n }\n\n return false;\n};\n\n/**\n * Returns true if an ID3 footer can be found at offset in data\n * @param data - The data to search\n * @param offset - The offset at which to start searching\n */\nexport const isFooter = (data: Uint8Array, offset: number): boolean => {\n /*\n * The footer is a copy of the header, but with a different identifier\n */\n if (offset + 10 <= data.length) {\n // look for '3DI' identifier\n if (\n data[offset] === 0x33 &&\n data[offset + 1] === 0x44 &&\n data[offset + 2] === 0x49\n ) {\n // check version is within range\n if (data[offset + 3] < 0xff && data[offset + 4] < 0xff) {\n // check size is within range\n if (\n data[offset + 6] < 0x80 &&\n data[offset + 7] < 0x80 &&\n data[offset + 8] < 0x80 &&\n data[offset + 9] < 0x80\n ) {\n return true;\n }\n }\n }\n }\n\n return false;\n};\n\n/**\n * Returns any adjacent ID3 tags found in data starting at offset, as one block of data\n * @param data - The data to search in\n * @param offset - The offset at which to start searching\n * @returns the block of data containing any ID3 tags found\n * or *undefined* if no header is found at the starting offset\n */\nexport const getID3Data = (\n data: Uint8Array,\n offset: number,\n): Uint8Array | undefined => {\n const front = offset;\n let length = 0;\n\n while (isHeader(data, offset)) {\n // ID3 header is 10 bytes\n length += 10;\n\n const size = readSize(data, offset + 6);\n length += size;\n\n if (isFooter(data, offset + 10)) {\n // ID3 footer is 10 bytes\n length += 10;\n }\n\n offset += length;\n }\n\n if (length > 0) {\n return data.subarray(front, front + length);\n }\n\n return undefined;\n};\n\nconst readSize = (data: Uint8Array, offset: number): number => {\n let size = 0;\n size = (data[offset] & 0x7f) << 21;\n size |= (data[offset + 1] & 0x7f) << 14;\n size |= (data[offset + 2] & 0x7f) << 7;\n size |= data[offset + 3] & 0x7f;\n return size;\n};\n\nexport const canParse = (data: Uint8Array, offset: number): boolean => {\n return (\n isHeader(data, offset) &&\n readSize(data, offset + 6) + 10 <= data.length - offset\n );\n};\n\n/**\n * Searches for the Elementary Stream timestamp found in the ID3 data chunk\n * @param data - Block of data containing one or more ID3 tags\n */\nexport const getTimeStamp = (data: Uint8Array): number | undefined => {\n const frames: Frame[] = getID3Frames(data);\n\n for (let i = 0; i < frames.length; i++) {\n const frame = frames[i];\n\n if (isTimeStampFrame(frame)) {\n return readTimeStamp(frame as DecodedFrame<ArrayBuffer>);\n }\n }\n\n return undefined;\n};\n\n/**\n * Returns true if the ID3 frame is an Elementary Stream timestamp frame\n */\nexport const isTimeStampFrame = (frame: Frame): boolean => {\n return (\n frame &&\n frame.key === 'PRIV' &&\n frame.info === 'com.apple.streaming.transportStreamTimestamp'\n );\n};\n\nconst getFrameData = (data: Uint8Array): RawFrame => {\n /*\n Frame ID $xx xx xx xx (four characters)\n Size $xx xx xx xx\n Flags $xx xx\n */\n const type: string = String.fromCharCode(data[0], data[1], data[2], data[3]);\n const size: number = readSize(data, 4);\n\n // skip frame id, size, and flags\n const offset = 10;\n\n return { type, size, data: data.subarray(offset, offset + size) };\n};\n\n/**\n * Returns an array of ID3 frames found in all the ID3 tags in the id3Data\n * @param id3Data - The ID3 data containing one or more ID3 tags\n */\nexport const getID3Frames = (id3Data: Uint8Array): Frame[] => {\n let offset = 0;\n const frames: Frame[] = [];\n\n while (isHeader(id3Data, offset)) {\n const size = readSize(id3Data, offset + 6);\n // skip past ID3 header\n offset += 10;\n const end = offset + size;\n // loop through frames in the ID3 tag\n while (offset + 8 < end) {\n const frameData: RawFrame = getFrameData(id3Data.subarray(offset));\n const frame: Frame | undefined = decodeFrame(frameData);\n if (frame) {\n frames.push(frame);\n }\n\n // skip frame header and frame data\n offset += frameData.size + 10;\n }\n\n if (isFooter(id3Data, offset)) {\n offset += 10;\n }\n }\n\n return frames;\n};\n\nexport const decodeFrame = (frame: RawFrame): Frame | undefined => {\n if (frame.type === 'PRIV') {\n return decodePrivFrame(frame);\n } else if (frame.type[0] === 'W') {\n return decodeURLFrame(frame);\n }\n\n return decodeTextFrame(frame);\n};\n\nconst decodePrivFrame = (\n frame: RawFrame,\n): DecodedFrame<ArrayBuffer> | undefined => {\n /*\n Format: <text string>\\0<binary data>\n */\n if (frame.size < 2) {\n return undefined;\n }\n\n const owner = utf8ArrayToStr(frame.data, true);\n const privateData = new Uint8Array(frame.data.subarray(owner.length + 1));\n\n return { key: frame.type, info: owner, data: privateData.buffer };\n};\n\nconst decodeTextFrame = (frame: RawFrame): DecodedFrame<string> | undefined => {\n if (frame.size < 2) {\n return undefined;\n }\n\n if (frame.type === 'TXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{Value}\n */\n let index = 1;\n const description = utf8ArrayToStr(frame.data.subarray(index), true);\n\n index += description.length + 1;\n const value = utf8ArrayToStr(frame.data.subarray(index));\n\n return { key: frame.type, info: description, data: value };\n }\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Value}\n */\n const text = utf8ArrayToStr(frame.data.subarray(1));\n return { key: frame.type, data: text };\n};\n\nconst decodeURLFrame = (frame: RawFrame): DecodedFrame<string> | undefined => {\n if (frame.type === 'WXXX') {\n /*\n Format:\n [0] = {Text Encoding}\n [1-?] = {Description}\\0{URL}\n */\n if (frame.size < 2) {\n return undefined;\n }\n\n let index = 1;\n const description: string = utf8ArrayToStr(\n frame.data.subarray(index),\n true,\n );\n\n index += description.length + 1;\n const value: string = utf8ArrayToStr(frame.data.subarray(index));\n\n return { key: frame.type, info: description, data: value };\n }\n /*\n Format:\n [0-?] = {URL}\n */\n const url: string = utf8ArrayToStr(frame.data);\n return { key: frame.type, data: url };\n};\n\nconst readTimeStamp = (\n timeStampFrame: DecodedFrame<ArrayBuffer>,\n): number | undefined => {\n if (timeStampFrame.data.byteLength === 8) {\n const data = new Uint8Array(timeStampFrame.data);\n // timestamp is 33 bit expressed as a big-endian eight-octet number,\n // with the upper 31 bits set to zero.\n const pts33Bit = data[3] & 0x1;\n let timestamp =\n (data[4] << 23) + (data[5] << 15) + (data[6] << 7) + data[7];\n timestamp /= 45;\n\n if (pts33Bit) {\n timestamp += 47721858.84;\n } // 2^32 / 90\n\n return Math.round(timestamp);\n }\n\n return undefined;\n};\n\n// http://stackoverflow.com/questions/8936984/uint8array-to-string-in-javascript/22373197\n// http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt\n/* utf.js - UTF-8 <=> UTF-16 convertion\n *\n * Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>\n * Version: 1.0\n * LastModified: Dec 25 1999\n * This library is free. You can redistribute it and/or modify it.\n */\nexport const utf8ArrayToStr = (\n array: Uint8Array,\n exitOnNull: boolean = false,\n): string => {\n const decoder = getTextDecoder();\n if (decoder) {\n const decoded = decoder.decode(array);\n\n if (exitOnNull) {\n // grab up to the first null\n const idx = decoded.indexOf('\\0');\n return idx !== -1 ? decoded.substring(0, idx) : decoded;\n }\n\n // remove any null characters\n return decoded.replace(/\\0/g, '');\n }\n\n const len = array.length;\n let c;\n let char2;\n let char3;\n let out = '';\n let i = 0;\n while (i < len) {\n c = array[i++];\n if (c === 0x00 && exitOnNull) {\n return out;\n } else if (c === 0x00 || c === 0x03) {\n // If the character is 3 (END_OF_TEXT) or 0 (NULL) then skip it\n continue;\n }\n switch (c >> 4) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n // 0xxxxxxx\n out += String.fromCharCode(c);\n break;\n case 12:\n case 13:\n // 110x xxxx 10xx xxxx\n char2 = array[i++];\n out += String.fromCharCode(((c & 0x1f) << 6) | (char2 & 0x3f));\n break;\n case 14:\n // 1110 xxxx 10xx xxxx 10xx xxxx\n char2 = array[i++];\n char3 = array[i++];\n out += String.fromCharCode(\n ((c & 0x0f) << 12) | ((char2 & 0x3f) << 6) | ((char3 & 0x3f) << 0),\n );\n break;\n default:\n }\n }\n return out;\n};\n\nexport const testables = {\n decodeTextFrame: decodeTextFrame,\n};\n\nlet decoder: TextDecoder;\n\nfunction getTextDecoder() {\n // On Play Station 4, TextDecoder is defined but partially implemented.\n // Manual decoding option is preferable\n if (navigator.userAgent.includes('PlayStation 4')) {\n return;\n }\n\n if (!decoder && typeof self.TextDecoder !== 'undefined') {\n decoder = new self.TextDecoder('utf-8');\n }\n\n return decoder;\n}\n","/**\n * hex dump helper class\n */\n\nconst Hex = {\n hexDump: function (array: Uint8Array) {\n let str = '';\n for (let i = 0; i < array.length; i++) {\n let h = array[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n\n str += h;\n }\n return str;\n },\n};\n\nexport default Hex;\n","import { ElementaryStreamTypes } from '../loader/fragment';\nimport { sliceUint8 } from './typed-array';\nimport { utf8ArrayToStr } from '../demux/id3';\nimport { logger } from '../utils/logger';\nimport Hex from './hex';\nimport type { KeySystemIds } from './mediakeys-helper';\nimport type { PassthroughTrack, UserdataSample } from '../types/demuxer';\nimport type { DecryptData } from '../loader/level-key';\n\nconst UINT32_MAX = Math.pow(2, 32) - 1;\nconst push = [].push;\n\n// We are using fixed track IDs for driving the MP4 remuxer\n// instead of following the TS PIDs.\n// There is no reason not to do this and some browsers/SourceBuffer-demuxers\n// may not like if there are TrackID \"switches\"\n// See https://github.com/video-dev/hls.js/issues/1331\n// Here we are mapping our internal track types to constant MP4 track IDs\n// With MSE currently one can only have one track of each, and we are muxing\n// whatever video/audio rendition in them.\nexport const RemuxerTrackIdConfig = {\n video: 1,\n audio: 2,\n id3: 3,\n text: 4,\n};\n\nexport function bin2str(data: Uint8Array): string {\n return String.fromCharCode.apply(null, data);\n}\n\nexport function readUint16(buffer: Uint8Array, offset: number): number {\n const val = (buffer[offset] << 8) | buffer[offset + 1];\n return val < 0 ? 65536 + val : val;\n}\n\nexport function readUint32(buffer: Uint8Array, offset: number): number {\n const val = readSint32(buffer, offset);\n return val < 0 ? 4294967296 + val : val;\n}\n\nexport function readUint64(buffer: Uint8Array, offset: number) {\n let result = readUint32(buffer, offset);\n result *= Math.pow(2, 32);\n result += readUint32(buffer, offset + 4);\n return result;\n}\n\nexport function readSint32(buffer: Uint8Array, offset: number): number {\n return (\n (buffer[offset] << 24) |\n (buffer[offset + 1] << 16) |\n (buffer[offset + 2] << 8) |\n buffer[offset + 3]\n );\n}\n\nexport function writeUint32(buffer: Uint8Array, offset: number, value: number) {\n buffer[offset] = value >> 24;\n buffer[offset + 1] = (value >> 16) & 0xff;\n buffer[offset + 2] = (value >> 8) & 0xff;\n buffer[offset + 3] = value & 0xff;\n}\n\n// Find \"moof\" box\nexport function hasMoofData(data: Uint8Array): boolean {\n const end = data.byteLength;\n for (let i = 0; i < end; ) {\n const size = readUint32(data, i);\n if (\n size > 8 &&\n data[i + 4] === 0x6d &&\n data[i + 5] === 0x6f &&\n data[i + 6] === 0x6f &&\n data[i + 7] === 0x66\n ) {\n return true;\n }\n i = size > 1 ? i + size : end;\n }\n return false;\n}\n\n// Find the data for a box specified by its path\nexport function findBox(data: Uint8Array, path: string[]): Uint8Array[] {\n const results = [] as Uint8Array[];\n if (!path.length) {\n // short-circuit the search for empty paths\n return results;\n }\n const end = data.byteLength;\n\n for (let i = 0; i < end; ) {\n const size = readUint32(data, i);\n const type = bin2str(data.subarray(i + 4, i + 8));\n const endbox = size > 1 ? i + size : end;\n if (type === path[0]) {\n if (path.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data.subarray(i + 8, endbox));\n } else {\n // recursively search for the next box along the path\n const subresults = findBox(data.subarray(i + 8, endbox), path.slice(1));\n if (subresults.length) {\n push.apply(results, subresults);\n }\n }\n }\n i = endbox;\n }\n\n // we've finished searching all of data\n return results;\n}\n\ntype SidxInfo = {\n earliestPresentationTime: number;\n timescale: number;\n version: number;\n referencesCount: number;\n references: any[];\n};\n\nexport function parseSegmentIndex(sidx: Uint8Array): SidxInfo | null {\n const references: any[] = [];\n\n const version = sidx[0];\n\n // set initial offset, we skip the reference ID (not needed)\n let index = 8;\n\n const timescale = readUint32(sidx, index);\n index += 4;\n\n let earliestPresentationTime = 0;\n let firstOffset = 0;\n\n if (version === 0) {\n earliestPresentationTime = readUint32(sidx, index);\n firstOffset = readUint32(sidx, index + 4);\n index += 8;\n } else {\n earliestPresentationTime = readUint64(sidx, index);\n firstOffset = readUint64(sidx, index + 8);\n index += 16;\n }\n\n // skip reserved\n index += 2;\n\n let startByte = sidx.length + firstOffset;\n\n const referencesCount = readUint16(sidx, index);\n index += 2;\n\n for (let i = 0; i < referencesCount; i++) {\n let referenceIndex = index;\n\n const referenceInfo = readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n\n const referenceSize = referenceInfo & 0x7fffffff;\n const referenceType = (referenceInfo & 0x80000000) >>> 31;\n\n if (referenceType === 1) {\n logger.warn('SIDX has hierarchical references (not supported)');\n return null;\n }\n\n const subsegmentDuration = readUint32(sidx, referenceIndex);\n referenceIndex += 4;\n\n references.push({\n referenceSize,\n subsegmentDuration, // unscaled\n info: {\n duration: subsegmentDuration / timescale,\n start: startByte,\n end: startByte + referenceSize - 1,\n },\n });\n\n startByte += referenceSize;\n\n // Skipping 1 bit for |startsWithSap|, 3 bits for |sapType|, and 28 bits\n // for |sapDelta|.\n referenceIndex += 4;\n\n // skip to next ref\n index = referenceIndex;\n }\n\n return {\n earliestPresentationTime,\n timescale,\n version,\n referencesCount,\n references,\n };\n}\n\n/**\n * Parses an MP4 initialization segment and extracts stream type and\n * timescale values for any declared tracks. Timescale values indicate the\n * number of clock ticks per second to assume for time-based values\n * elsewhere in the MP4.\n *\n * To determine the start time of an MP4, you need two pieces of\n * information: the timescale unit and the earliest base media decode\n * time. Multiple timescales can be specified within an MP4 but the\n * base media decode time is always expressed in the timescale from\n * the media header box for the track:\n * ```\n * moov > trak > mdia > mdhd.timescale\n * moov > trak > mdia > hdlr\n * ```\n * @param initSegment the bytes of the init segment\n * @returns a hash of track type to timescale values or null if\n * the init segment is malformed.\n */\n\nexport interface InitDataTrack {\n timescale: number;\n id: number;\n codec: string;\n}\n\ntype HdlrType = ElementaryStreamTypes.AUDIO | ElementaryStreamTypes.VIDEO;\n\nexport interface InitData extends Array<any> {\n [index: number]:\n | {\n timescale: number;\n type: HdlrType;\n default?: {\n duration: number;\n flags: number;\n };\n }\n | undefined;\n audio?: InitDataTrack;\n video?: InitDataTrack;\n caption?: InitDataTrack;\n}\n\nexport function parseInitSegment(initSegment: Uint8Array): InitData {\n const result: InitData = [];\n const traks = findBox(initSegment, ['moov', 'trak']);\n for (let i = 0; i < traks.length; i++) {\n const trak = traks[i];\n const tkhd = findBox(trak, ['tkhd'])[0];\n if (tkhd) {\n let version = tkhd[0];\n const trackId = readUint32(tkhd, version === 0 ? 12 : 20);\n const mdhd = findBox(trak, ['mdia', 'mdhd'])[0];\n if (mdhd) {\n version = mdhd[0];\n const timescale = readUint32(mdhd, version === 0 ? 12 : 20);\n const hdlr = findBox(trak, ['mdia', 'hdlr'])[0];\n if (hdlr) {\n const hdlrType = bin2str(hdlr.subarray(8, 12));\n const type: HdlrType | undefined = {\n soun: ElementaryStreamTypes.AUDIO as const,\n vide: ElementaryStreamTypes.VIDEO as const,\n }[hdlrType];\n if (type) {\n // Parse codec details\n const stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];\n const stsdData = parseStsd(stsd);\n result[trackId] = { timescale, type };\n result[type] = { timescale, id: trackId, ...stsdData };\n }\n }\n }\n }\n }\n\n const trex = findBox(initSegment, ['moov', 'mvex', 'trex']);\n trex.forEach((trex) => {\n const trackId = readUint32(trex, 4);\n const track = result[trackId];\n if (track) {\n track.default = {\n duration: readUint32(trex, 12),\n flags: readUint32(trex, 20),\n };\n }\n });\n\n return result;\n}\n\nfunction parseStsd(stsd: Uint8Array): { codec: string; encrypted: boolean } {\n const sampleEntries = stsd.subarray(8);\n const sampleEntriesEnd = sampleEntries.subarray(8 + 78);\n const fourCC = bin2str(sampleEntries.subarray(4, 8));\n let codec = fourCC;\n const encrypted = fourCC === 'enca' || fourCC === 'encv';\n if (encrypted) {\n const encBox = findBox(sampleEntries, [fourCC])[0];\n const encBoxChildren = encBox.subarray(fourCC === 'enca' ? 28 : 78);\n const sinfs = findBox(encBoxChildren, ['sinf']);\n sinfs.forEach((sinf) => {\n const schm = findBox(sinf, ['schm'])[0];\n if (schm) {\n const scheme = bin2str(schm.subarray(4, 8));\n if (scheme === 'cbcs' || scheme === 'cenc') {\n const frma = findBox(sinf, ['frma'])[0];\n if (frma) {\n // for encrypted content codec fourCC will be in frma\n codec = bin2str(frma);\n }\n }\n }\n });\n }\n switch (codec) {\n case 'avc1':\n case 'avc2':\n case 'avc3':\n case 'avc4': {\n // extract profile + compatibility + level out of avcC box\n const avcCBox = findBox(sampleEntriesEnd, ['avcC'])[0];\n codec += '.' + toHex(avcCBox[1]) + toHex(avcCBox[2]) + toHex(avcCBox[3]);\n break;\n }\n case 'mp4a': {\n const codecBox = findBox(sampleEntries, [fourCC])[0];\n const esdsBox = findBox(codecBox.subarray(28), ['esds'])[0];\n if (esdsBox && esdsBox.length > 12) {\n let i = 4;\n // ES Descriptor tag\n if (esdsBox[i++] !== 0x03) {\n break;\n }\n i = skipBERInteger(esdsBox, i);\n i += 2; // skip es_id;\n const flags = esdsBox[i++];\n if (flags & 0x80) {\n i += 2; // skip dependency es_id\n }\n if (flags & 0x40) {\n i += esdsBox[i++]; // skip URL\n }\n // Decoder config descriptor\n if (esdsBox[i++] !== 0x04) {\n break;\n }\n i = skipBERInteger(esdsBox, i);\n const objectType = esdsBox[i++];\n if (objectType === 0x40) {\n codec += '.' + toHex(objectType);\n } else {\n break;\n }\n i += 12;\n // Decoder specific info\n if (esdsBox[i++] !== 0x05) {\n break;\n }\n i = skipBERInteger(esdsBox, i);\n const firstByte = esdsBox[i++];\n let audioObjectType = (firstByte & 0xf8) >> 3;\n if (audioObjectType === 31) {\n audioObjectType +=\n 1 + ((firstByte & 0x7) << 3) + ((esdsBox[i] & 0xe0) >> 5);\n }\n codec += '.' + audioObjectType;\n }\n break;\n }\n case 'hvc1':\n case 'hev1': {\n const hvcCBox = findBox(sampleEntriesEnd, ['hvcC'])[0];\n const profileByte = hvcCBox[1];\n const profileSpace = ['', 'A', 'B', 'C'][profileByte >> 6];\n const generalProfileIdc = profileByte & 0x1f;\n const profileCompat = readUint32(hvcCBox, 2);\n const tierFlag = (profileByte & 0x20) >> 5 ? 'H' : 'L';\n const levelIDC = hvcCBox[12];\n const constraintIndicator = hvcCBox.subarray(6, 12);\n codec += '.' + profileSpace + generalProfileIdc;\n codec += '.' + profileCompat.toString(16).toUpperCase();\n codec += '.' + tierFlag + levelIDC;\n let constraintString = '';\n for (let i = constraintIndicator.length; i--; ) {\n const byte = constraintIndicator[i];\n if (byte || constraintString) {\n const encodedByte = byte.toString(16).toUpperCase();\n constraintString = '.' + encodedByte + constraintString;\n }\n }\n codec += constraintString;\n break;\n }\n case 'dvh1':\n case 'dvhe': {\n const dvcCBox = findBox(sampleEntriesEnd, ['dvcC'])[0];\n const profile = (dvcCBox[2] >> 1) & 0x7f;\n const level = ((dvcCBox[2] << 5) & 0x20) | ((dvcCBox[3] >> 3) & 0x1f);\n codec += '.' + addLeadingZero(profile) + '.' + addLeadingZero(level);\n break;\n }\n case 'vp09': {\n const vpcCBox = findBox(sampleEntriesEnd, ['vpcC'])[0];\n const profile = vpcCBox[4];\n const level = vpcCBox[5];\n const bitDepth = (vpcCBox[6] >> 4) & 0x0f;\n codec +=\n '.' +\n addLeadingZero(profile) +\n '.' +\n addLeadingZero(level) +\n '.' +\n addLeadingZero(bitDepth);\n break;\n }\n case 'av01': {\n const av1CBox = findBox(sampleEntriesEnd, ['av1C'])[0];\n const profile = av1CBox[1] >>> 5;\n const level = av1CBox[1] & 0x1f;\n const tierFlag = av1CBox[2] >>> 7 ? 'H' : 'M';\n const highBitDepth = (av1CBox[2] & 0x40) >> 6;\n const twelveBit = (av1CBox[2] & 0x20) >> 5;\n const bitDepth =\n profile === 2 && highBitDepth\n ? twelveBit\n ? 12\n : 10\n : highBitDepth\n ? 10\n : 8;\n const monochrome = (av1CBox[2] & 0x10) >> 4;\n const chromaSubsamplingX = (av1CBox[2] & 0x08) >> 3;\n const chromaSubsamplingY = (av1CBox[2] & 0x04) >> 2;\n const chromaSamplePosition = av1CBox[2] & 0x03;\n // TODO: parse color_description_present_flag\n // default it to BT.709/limited range for now\n // more info https://aomediacodec.github.io/av1-isobmff/#av1codecconfigurationbox-syntax\n const colorPrimaries = 1;\n const transferCharacteristics = 1;\n const matrixCoefficients = 1;\n const videoFullRangeFlag = 0;\n codec +=\n '.' +\n profile +\n '.' +\n addLeadingZero(level) +\n tierFlag +\n '.' +\n addLeadingZero(bitDepth) +\n '.' +\n monochrome +\n '.' +\n chromaSubsamplingX +\n chromaSubsamplingY +\n chromaSamplePosition +\n '.' +\n addLeadingZero(colorPrimaries) +\n '.' +\n addLeadingZero(transferCharacteristics) +\n '.' +\n addLeadingZero(matrixCoefficients) +\n '.' +\n videoFullRangeFlag;\n break;\n }\n case 'ac-3':\n case 'ec-3':\n case 'alac':\n case 'fLaC':\n case 'Opus':\n default:\n break;\n }\n return { codec, encrypted };\n}\n\nfunction skipBERInteger(bytes: Uint8Array, i: number): number {\n const limit = i + 5;\n while (bytes[i++] & 0x80 && i < limit) {}\n return i;\n}\n\nfunction toHex(x: number): string {\n return ('0' + x.toString(16).toUpperCase()).slice(-2);\n}\n\nfunction addLeadingZero(num: number): string {\n return (num < 10 ? '0' : '') + num;\n}\n\nexport function patchEncyptionData(\n initSegment: Uint8Array | undefined,\n decryptdata: DecryptData | null,\n): Uint8Array | undefined {\n if (!initSegment || !decryptdata) {\n return initSegment;\n }\n const keyId = decryptdata.keyId;\n if (keyId && decryptdata.isCommonEncryption) {\n const traks = findBox(initSegment, ['moov', 'trak']);\n traks.forEach((trak) => {\n const stsd = findBox(trak, ['mdia', 'minf', 'stbl', 'stsd'])[0];\n\n // skip the sample entry count\n const sampleEntries = stsd.subarray(8);\n let encBoxes = findBox(sampleEntries, ['enca']);\n const isAudio = encBoxes.length > 0;\n if (!isAudio) {\n encBoxes = findBox(sampleEntries, ['encv']);\n }\n encBoxes.forEach((enc) => {\n const encBoxChildren = isAudio ? enc.subarray(28) : enc.subarray(78);\n const sinfBoxes = findBox(encBoxChildren, ['sinf']);\n sinfBoxes.forEach((sinf) => {\n const tenc = parseSinf(sinf);\n if (tenc) {\n // Look for default key id (keyID offset is always 8 within the tenc box):\n const tencKeyId = tenc.subarray(8, 24);\n if (!tencKeyId.some((b) => b !== 0)) {\n logger.log(\n `[eme] Patching keyId in 'enc${\n isAudio ? 'a' : 'v'\n }>sinf>>tenc' box: ${Hex.hexDump(tencKeyId)} -> ${Hex.hexDump(\n keyId,\n )}`,\n );\n tenc.set(keyId, 8);\n }\n }\n });\n });\n });\n }\n\n return initSegment;\n}\n\nexport function parseSinf(sinf: Uint8Array): Uint8Array | null {\n const schm = findBox(sinf, ['schm'])[0];\n if (schm) {\n const scheme = bin2str(schm.subarray(4, 8));\n if (scheme === 'cbcs' || scheme === 'cenc') {\n return findBox(sinf, ['schi', 'tenc'])[0];\n }\n }\n return null;\n}\n\n/**\n * Determine the base media decode start time, in seconds, for an MP4\n * fragment. If multiple fragments are specified, the earliest time is\n * returned.\n *\n * The base media decode time can be parsed from track fragment\n * metadata:\n * ```\n * moof > traf > tfdt.baseMediaDecodeTime\n * ```\n * It requires the timescale value from the mdhd to interpret.\n *\n * @param initData - a hash of track type to timescale values\n * @param fmp4 - the bytes of the mp4 fragment\n * @returns the earliest base media decode start time for the\n * fragment, in seconds\n */\nexport function getStartDTS(\n initData: InitData,\n fmp4: Uint8Array,\n): number | null {\n // we need info from two children of each track fragment box\n return findBox(fmp4, ['moof', 'traf']).reduce(\n (result: number | null, traf) => {\n const tfdt = findBox(traf, ['tfdt'])[0];\n const version = tfdt[0];\n const start = findBox(traf, ['tfhd']).reduce(\n (result: number | null, tfhd) => {\n // get the track id from the tfhd\n const id = readUint32(tfhd, 4);\n const track = initData[id];\n if (track) {\n let baseTime = readUint32(tfdt, 4);\n if (version === 1) {\n // If value is too large, assume signed 64-bit. Negative track fragment decode times are invalid, but they exist in the wild.\n // This prevents large values from being used for initPTS, which can cause playlist sync issues.\n // https://github.com/video-dev/hls.js/issues/5303\n if (baseTime === UINT32_MAX) {\n logger.warn(\n `[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time`,\n );\n return result;\n }\n baseTime *= UINT32_MAX + 1;\n baseTime += readUint32(tfdt, 8);\n }\n // assume a 90kHz clock if no timescale was specified\n const scale = track.timescale || 90e3;\n // convert base time to seconds\n const startTime = baseTime / scale;\n if (\n Number.isFinite(startTime) &&\n (result === null || startTime < result)\n ) {\n return startTime;\n }\n }\n return result;\n },\n null,\n );\n if (\n start !== null &&\n Number.isFinite(start) &&\n (result === null || start < result)\n ) {\n return start;\n }\n return result;\n },\n null,\n );\n}\n\n/*\n For Reference:\n aligned(8) class TrackFragmentHeaderBox\n extends FullBox(‘tfhd’, 0, tf_flags){\n unsigned int(32) track_ID;\n // all the following are optional fields\n unsigned int(64) base_data_offset;\n unsigned int(32) sample_description_index;\n unsigned int(32) default_sample_duration;\n unsigned int(32) default_sample_size;\n unsigned int(32) default_sample_flags\n }\n */\nexport function getDuration(data: Uint8Array, initData: InitData) {\n let rawDuration = 0;\n let videoDuration = 0;\n let audioDuration = 0;\n const trafs = findBox(data, ['moof', 'traf']);\n for (let i = 0; i < trafs.length; i++) {\n const traf = trafs[i];\n // There is only one tfhd & trun per traf\n // This is true for CMAF style content, and we should perhaps check the ftyp\n // and only look for a single trun then, but for ISOBMFF we should check\n // for multiple track runs.\n const tfhd = findBox(traf, ['tfhd'])[0];\n // get the track id from the tfhd\n const id = readUint32(tfhd, 4);\n const track = initData[id];\n if (!track) {\n continue;\n }\n const trackDefault = track.default;\n const tfhdFlags = readUint32(tfhd, 0) | trackDefault?.flags!;\n let sampleDuration: number | undefined = trackDefault?.duration;\n if (tfhdFlags & 0x000008) {\n // 0x000008 indicates the presence of the default_sample_duration field\n if (tfhdFlags & 0x000002) {\n // 0x000002 indicates the presence of the sample_description_index field, which precedes default_sample_duration\n // If present, the default_sample_duration exists at byte offset 12\n sampleDuration = readUint32(tfhd, 12);\n } else {\n // Otherwise, the duration is at byte offset 8\n sampleDuration = readUint32(tfhd, 8);\n }\n }\n // assume a 90kHz clock if no timescale was specified\n const timescale = track.timescale || 90e3;\n const truns = findBox(traf, ['trun']);\n for (let j = 0; j < truns.length; j++) {\n rawDuration = computeRawDurationFromSamples(truns[j]);\n if (!rawDuration && sampleDuration) {\n const sampleCount = readUint32(truns[j], 4);\n rawDuration = sampleDuration * sampleCount;\n }\n if (track.type === ElementaryStreamTypes.VIDEO) {\n videoDuration += rawDuration / timescale;\n } else if (track.type === ElementaryStreamTypes.AUDIO) {\n audioDuration += rawDuration / timescale;\n }\n }\n }\n if (videoDuration === 0 && audioDuration === 0) {\n // If duration samples are not available in the traf use sidx subsegment_duration\n let sidxMinStart = Infinity;\n let sidxMaxEnd = 0;\n let sidxDuration = 0;\n const sidxs = findBox(data, ['sidx']);\n for (let i = 0; i < sidxs.length; i++) {\n const sidx = parseSegmentIndex(sidxs[i]);\n if (sidx?.references) {\n sidxMinStart = Math.min(\n sidxMinStart,\n sidx.earliestPresentationTime / sidx.timescale,\n );\n const subSegmentDuration = sidx.references.reduce(\n (dur, ref) => dur + ref.info.duration || 0,\n 0,\n );\n sidxMaxEnd = Math.max(\n sidxMaxEnd,\n subSegmentDuration + sidx.earliestPresentationTime / sidx.timescale,\n );\n sidxDuration = sidxMaxEnd - sidxMinStart;\n }\n }\n if (sidxDuration && Number.isFinite(sidxDuration)) {\n return sidxDuration;\n }\n }\n if (videoDuration) {\n return videoDuration;\n }\n return audioDuration;\n}\n\n/*\n For Reference:\n aligned(8) class TrackRunBox\n extends FullBox(‘trun’, version, tr_flags) {\n unsigned int(32) sample_count;\n // the following are optional fields\n signed int(32) data_offset;\n unsigned int(32) first_sample_flags;\n // all fields in the following array are optional\n {\n unsigned int(32) sample_duration;\n unsigned int(32) sample_size;\n unsigned int(32) sample_flags\n if (version == 0)\n { unsigned int(32)\n else\n { signed int(32)\n }[ sample_count ]\n }\n */\nexport function computeRawDurationFromSamples(trun): number {\n const flags = readUint32(trun, 0);\n // Flags are at offset 0, non-optional sample_count is at offset 4. Therefore we start 8 bytes in.\n // Each field is an int32, which is 4 bytes\n let offset = 8;\n // data-offset-present flag\n if (flags & 0x000001) {\n offset += 4;\n }\n // first-sample-flags-present flag\n if (flags & 0x000004) {\n offset += 4;\n }\n\n let duration = 0;\n const sampleCount = readUint32(trun, 4);\n for (let i = 0; i < sampleCount; i++) {\n // sample-duration-present flag\n if (flags & 0x000100) {\n const sampleDuration = readUint32(trun, offset);\n duration += sampleDuration;\n offset += 4;\n }\n // sample-size-present flag\n if (flags & 0x000200) {\n offset += 4;\n }\n // sample-flags-present flag\n if (flags & 0x000400) {\n offset += 4;\n }\n // sample-composition-time-offsets-present flag\n if (flags & 0x000800) {\n offset += 4;\n }\n }\n return duration;\n}\n\nexport function offsetStartDTS(\n initData: InitData,\n fmp4: Uint8Array,\n timeOffset: number,\n) {\n findBox(fmp4, ['moof', 'traf']).forEach((traf) => {\n findBox(traf, ['tfhd']).forEach((tfhd) => {\n // get the track id from the tfhd\n const id = readUint32(tfhd, 4);\n const track = initData[id];\n if (!track) {\n return;\n }\n // assume a 90kHz clock if no timescale was specified\n const timescale = track.timescale || 90e3;\n // get the base media decode time from the tfdt\n findBox(traf, ['tfdt']).forEach((tfdt) => {\n const version = tfdt[0];\n const offset = timeOffset * timescale;\n if (offset) {\n let baseMediaDecodeTime = readUint32(tfdt, 4);\n if (version === 0) {\n baseMediaDecodeTime -= offset;\n baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n writeUint32(tfdt, 4, baseMediaDecodeTime);\n } else {\n baseMediaDecodeTime *= Math.pow(2, 32);\n baseMediaDecodeTime += readUint32(tfdt, 8);\n baseMediaDecodeTime -= offset;\n baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n const upper = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1));\n const lower = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n writeUint32(tfdt, 4, upper);\n writeUint32(tfdt, 8, lower);\n }\n }\n });\n });\n });\n}\n\n// TODO: Check if the last moof+mdat pair is part of the valid range\nexport function segmentValidRange(data: Uint8Array): SegmentedRange {\n const segmentedRange: SegmentedRange = {\n valid: null,\n remainder: null,\n };\n\n const moofs = findBox(data, ['moof']);\n if (moofs.length < 2) {\n segmentedRange.remainder = data;\n return segmentedRange;\n }\n const last = moofs[moofs.length - 1];\n // Offset by 8 bytes; findBox offsets the start by as much\n segmentedRange.valid = sliceUint8(data, 0, last.byteOffset - 8);\n segmentedRange.remainder = sliceUint8(data, last.byteOffset - 8);\n return segmentedRange;\n}\n\nexport interface SegmentedRange {\n valid: Uint8Array | null;\n remainder: Uint8Array | null;\n}\n\nexport function appendUint8Array(\n data1: Uint8Array,\n data2: Uint8Array,\n): Uint8Array {\n const temp = new Uint8Array(data1.length + data2.length);\n temp.set(data1);\n temp.set(data2, data1.length);\n\n return temp;\n}\n\nexport interface IEmsgParsingData {\n schemeIdUri: string;\n value: string;\n timeScale: number;\n presentationTimeDelta?: number;\n presentationTime?: number;\n eventDuration: number;\n id: number;\n payload: Uint8Array;\n}\n\nexport function parseSamples(\n timeOffset: number,\n track: PassthroughTrack,\n): UserdataSample[] {\n const seiSamples = [] as UserdataSample[];\n const videoData = track.samples;\n const timescale = track.timescale;\n const trackId = track.id;\n let isHEVCFlavor = false;\n\n const moofs = findBox(videoData, ['moof']);\n moofs.map((moof) => {\n const moofOffset = moof.byteOffset - 8;\n const trafs = findBox(moof, ['traf']);\n trafs.map((traf) => {\n // get the base media decode time from the tfdt\n const baseTime = findBox(traf, ['tfdt']).map((tfdt) => {\n const version = tfdt[0];\n let result = readUint32(tfdt, 4);\n if (version === 1) {\n result *= Math.pow(2, 32);\n result += readUint32(tfdt, 8);\n }\n return result / timescale;\n })[0];\n\n if (baseTime !== undefined) {\n timeOffset = baseTime;\n }\n\n return findBox(traf, ['tfhd']).map((tfhd) => {\n const id = readUint32(tfhd, 4);\n const tfhdFlags = readUint32(tfhd, 0) & 0xffffff;\n const baseDataOffsetPresent = (tfhdFlags & 0x000001) !== 0;\n const sampleDescriptionIndexPresent = (tfhdFlags & 0x000002) !== 0;\n const defaultSampleDurationPresent = (tfhdFlags & 0x000008) !== 0;\n let defaultSampleDuration = 0;\n const defaultSampleSizePresent = (tfhdFlags & 0x000010) !== 0;\n let defaultSampleSize = 0;\n const defaultSampleFlagsPresent = (tfhdFlags & 0x000020) !== 0;\n let tfhdOffset = 8;\n\n if (id === trackId) {\n if (baseDataOffsetPresent) {\n tfhdOffset += 8;\n }\n if (sampleDescriptionIndexPresent) {\n tfhdOffset += 4;\n }\n if (defaultSampleDurationPresent) {\n defaultSampleDuration = readUint32(tfhd, tfhdOffset);\n tfhdOffset += 4;\n }\n if (defaultSampleSizePresent) {\n defaultSampleSize = readUint32(tfhd, tfhdOffset);\n tfhdOffset += 4;\n }\n if (defaultSampleFlagsPresent) {\n tfhdOffset += 4;\n }\n if (track.type === 'video') {\n isHEVCFlavor = isHEVC(track.codec);\n }\n\n findBox(traf, ['trun']).map((trun) => {\n const version = trun[0];\n const flags = readUint32(trun, 0) & 0xffffff;\n const dataOffsetPresent = (flags & 0x000001) !== 0;\n let dataOffset = 0;\n const firstSampleFlagsPresent = (flags & 0x000004) !== 0;\n const sampleDurationPresent = (flags & 0x000100) !== 0;\n let sampleDuration = 0;\n const sampleSizePresent = (flags & 0x000200) !== 0;\n let sampleSize = 0;\n const sampleFlagsPresent = (flags & 0x000400) !== 0;\n const sampleCompositionOffsetsPresent = (flags & 0x000800) !== 0;\n let compositionOffset = 0;\n const sampleCount = readUint32(trun, 4);\n let trunOffset = 8; // past version, flags, and sample count\n\n if (dataOffsetPresent) {\n dataOffset = readUint32(trun, trunOffset);\n trunOffset += 4;\n }\n if (firstSampleFlagsPresent) {\n trunOffset += 4;\n }\n\n let sampleOffset = dataOffset + moofOffset;\n\n for (let ix = 0; ix < sampleCount; ix++) {\n if (sampleDurationPresent) {\n sampleDuration = readUint32(trun, trunOffset);\n trunOffset += 4;\n } else {\n sampleDuration = defaultSampleDuration;\n }\n if (sampleSizePresent) {\n sampleSize = readUint32(trun, trunOffset);\n trunOffset += 4;\n } else {\n sampleSize = defaultSampleSize;\n }\n if (sampleFlagsPresent) {\n trunOffset += 4;\n }\n if (sampleCompositionOffsetsPresent) {\n if (version === 0) {\n compositionOffset = readUint32(trun, trunOffset);\n } else {\n compositionOffset = readSint32(trun, trunOffset);\n }\n trunOffset += 4;\n }\n if (track.type === ElementaryStreamTypes.VIDEO) {\n let naluTotalSize = 0;\n while (naluTotalSize < sampleSize) {\n const naluSize = readUint32(videoData, sampleOffset);\n sampleOffset += 4;\n if (isSEIMessage(isHEVCFlavor, videoData[sampleOffset])) {\n const data = videoData.subarray(\n sampleOffset,\n sampleOffset + naluSize,\n );\n parseSEIMessageFromNALu(\n data,\n isHEVCFlavor ? 2 : 1,\n timeOffset + compositionOffset / timescale,\n seiSamples,\n );\n }\n sampleOffset += naluSize;\n naluTotalSize += naluSize + 4;\n }\n }\n\n timeOffset += sampleDuration / timescale;\n }\n });\n }\n });\n });\n });\n return seiSamples;\n}\n\nfunction isHEVC(codec: string) {\n if (!codec) {\n return false;\n }\n const delimit = codec.indexOf('.');\n const baseCodec = delimit < 0 ? codec : codec.substring(0, delimit);\n return (\n baseCodec === 'hvc1' ||\n baseCodec === 'hev1' ||\n // Dolby Vision\n baseCodec === 'dvh1' ||\n baseCodec === 'dvhe'\n );\n}\n\nfunction isSEIMessage(isHEVCFlavor: boolean, naluHeader: number) {\n if (isHEVCFlavor) {\n const naluType = (naluHeader >> 1) & 0x3f;\n return naluType === 39 || naluType === 40;\n } else {\n const naluType = naluHeader & 0x1f;\n return naluType === 6;\n }\n}\n\nexport function parseSEIMessageFromNALu(\n unescapedData: Uint8Array,\n headerSize: number,\n pts: number,\n samples: UserdataSample[],\n) {\n const data = discardEPB(unescapedData);\n let seiPtr = 0;\n // skip nal header\n seiPtr += headerSize;\n let payloadType = 0;\n let payloadSize = 0;\n let b = 0;\n\n while (seiPtr < data.length) {\n payloadType = 0;\n do {\n if (seiPtr >= data.length) {\n break;\n }\n b = data[seiPtr++];\n payloadType += b;\n } while (b === 0xff);\n\n // Parse payload size.\n payloadSize = 0;\n do {\n if (seiPtr >= data.length) {\n break;\n }\n b = data[seiPtr++];\n payloadSize += b;\n } while (b === 0xff);\n\n const leftOver = data.length - seiPtr;\n // Create a variable to process the payload\n let payPtr = seiPtr;\n\n // Increment the seiPtr to the end of the payload\n if (payloadSize < leftOver) {\n seiPtr += payloadSize;\n } else if (payloadSize > leftOver) {\n // Some type of corruption has happened?\n logger.error(\n `Malformed SEI payload. ${payloadSize} is too small, only ${leftOver} bytes left to parse.`,\n );\n // We might be able to parse some data, but let's be safe and ignore it.\n break;\n }\n\n if (payloadType === 4) {\n const countryCode = data[payPtr++];\n if (countryCode === 181) {\n const providerCode = readUint16(data, payPtr);\n payPtr += 2;\n\n if (providerCode === 49) {\n const userStructure = readUint32(data, payPtr);\n payPtr += 4;\n\n if (userStructure === 0x47413934) {\n const userDataType = data[payPtr++];\n\n // Raw CEA-608 bytes wrapped in CEA-708 packet\n if (userDataType === 3) {\n const firstByte = data[payPtr++];\n const totalCCs = 0x1f & firstByte;\n const enabled = 0x40 & firstByte;\n const totalBytes = enabled ? 2 + totalCCs * 3 : 0;\n const byteArray = new Uint8Array(totalBytes);\n if (enabled) {\n byteArray[0] = firstByte;\n for (let i = 1; i < totalBytes; i++) {\n byteArray[i] = data[payPtr++];\n }\n }\n\n samples.push({\n type: userDataType,\n payloadType,\n pts,\n bytes: byteArray,\n });\n }\n }\n }\n }\n } else if (payloadType === 5) {\n if (payloadSize > 16) {\n const uuidStrArray: Array<string> = [];\n for (let i = 0; i < 16; i++) {\n const b = data[payPtr++].toString(16);\n uuidStrArray.push(b.length == 1 ? '0' + b : b);\n\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n uuidStrArray.push('-');\n }\n }\n const length = payloadSize - 16;\n const userDataBytes = new Uint8Array(length);\n for (let i = 0; i < length; i++) {\n userDataBytes[i] = data[payPtr++];\n }\n\n samples.push({\n payloadType,\n pts,\n uuid: uuidStrArray.join(''),\n userData: utf8ArrayToStr(userDataBytes),\n userDataBytes,\n });\n }\n }\n }\n}\n\n/**\n * remove Emulation Prevention bytes from a RBSP\n */\nexport function discardEPB(data: Uint8Array): Uint8Array {\n const length = data.byteLength;\n const EPBPositions = [] as Array<number>;\n let i = 1;\n\n // Find all `Emulation Prevention Bytes`\n while (i < length - 2) {\n if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) {\n EPBPositions.push(i + 2);\n i += 2;\n } else {\n i++;\n }\n }\n\n // If no Emulation Prevention Bytes were found just return the original\n // array\n if (EPBPositions.length === 0) {\n return data;\n }\n\n // Create a new array to hold the NAL unit data\n const newLength = length - EPBPositions.length;\n const newData = new Uint8Array(newLength);\n let sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === EPBPositions[0]) {\n // Skip this byte\n sourceIndex++;\n // Remove this position index\n EPBPositions.shift();\n }\n newData[i] = data[sourceIndex];\n }\n return newData;\n}\n\nexport function parseEmsg(data: Uint8Array): IEmsgParsingData {\n const version = data[0];\n let schemeIdUri: string = '';\n let value: string = '';\n let timeScale: number = 0;\n let presentationTimeDelta: number = 0;\n let presentationTime: number = 0;\n let eventDuration: number = 0;\n let id: number = 0;\n let offset: number = 0;\n\n if (version === 0) {\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n\n timeScale = readUint32(data, 12);\n presentationTimeDelta = readUint32(data, 16);\n eventDuration = readUint32(data, 20);\n id = readUint32(data, 24);\n offset = 28;\n } else if (version === 1) {\n offset += 4;\n timeScale = readUint32(data, offset);\n offset += 4;\n const leftPresentationTime = readUint32(data, offset);\n offset += 4;\n const rightPresentationTime = readUint32(data, offset);\n offset += 4;\n presentationTime = 2 ** 32 * leftPresentationTime + rightPresentationTime;\n if (!Number.isSafeInteger(presentationTime)) {\n presentationTime = Number.MAX_SAFE_INTEGER;\n logger.warn(\n 'Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box',\n );\n }\n\n eventDuration = readUint32(data, offset);\n offset += 4;\n id = readUint32(data, offset);\n offset += 4;\n\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n\n schemeIdUri += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n\n while (bin2str(data.subarray(offset, offset + 1)) !== '\\0') {\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n\n value += bin2str(data.subarray(offset, offset + 1));\n offset += 1;\n }\n const payload = data.subarray(offset, data.byteLength);\n\n return {\n schemeIdUri,\n value,\n timeScale,\n presentationTime,\n presentationTimeDelta,\n eventDuration,\n id,\n payload,\n };\n}\n\nexport function mp4Box(type: ArrayLike<number>, ...payload: Uint8Array[]) {\n const len = payload.length;\n let size = 8;\n let i = len;\n while (i--) {\n size += payload[i].byteLength;\n }\n const result = new Uint8Array(size);\n result[0] = (size >> 24) & 0xff;\n result[1] = (size >> 16) & 0xff;\n result[2] = (size >> 8) & 0xff;\n result[3] = size & 0xff;\n result.set(type, 4);\n for (i = 0, size = 8; i < len; i++) {\n result.set(payload[i], size);\n size += payload[i].byteLength;\n }\n return result;\n}\n\nexport function mp4pssh(\n systemId: Uint8Array,\n keyids: Array<Uint8Array> | null,\n data: Uint8Array,\n) {\n if (systemId.byteLength !== 16) {\n throw new RangeError('Invalid system id');\n }\n let version;\n let kids;\n if (keyids) {\n version = 1;\n kids = new Uint8Array(keyids.length * 16);\n for (let ix = 0; ix < keyids.length; ix++) {\n const k = keyids[ix]; // uint8array\n if (k.byteLength !== 16) {\n throw new RangeError('Invalid key');\n }\n kids.set(k, ix * 16);\n }\n } else {\n version = 0;\n kids = new Uint8Array();\n }\n let kidCount;\n if (version > 0) {\n kidCount = new Uint8Array(4);\n if (keyids!.length > 0) {\n new DataView(kidCount.buffer).setUint32(0, keyids!.length, false);\n }\n } else {\n kidCount = new Uint8Array();\n }\n const dataSize = new Uint8Array(4);\n if (data && data.byteLength > 0) {\n new DataView(dataSize.buffer).setUint32(0, data.byteLength, false);\n }\n return mp4Box(\n [112, 115, 115, 104],\n new Uint8Array([\n version,\n 0x00,\n 0x00,\n 0x00, // Flags\n ]),\n systemId, // 16 bytes\n kidCount,\n kids,\n dataSize,\n data || new Uint8Array(),\n );\n}\n\nexport type PsshData = {\n version: 0 | 1;\n systemId: KeySystemIds;\n kids: null | Uint8Array[];\n data: null | Uint8Array;\n offset: number;\n size: number;\n};\n\nexport type PsshInvalidResult = {\n systemId?: undefined;\n offset: number;\n size: number;\n};\n\nexport function parseMultiPssh(\n initData: ArrayBuffer,\n): (PsshData | PsshInvalidResult)[] {\n const results: (PsshData | PsshInvalidResult)[] = [];\n if (initData instanceof ArrayBuffer) {\n const length = initData.byteLength;\n let offset = 0;\n while (offset + 32 < length) {\n const view = new DataView(initData, offset);\n const pssh = parsePssh(view);\n results.push(pssh);\n offset += pssh.size;\n }\n }\n return results;\n}\n\nfunction parsePssh(view: DataView): PsshData | PsshInvalidResult {\n const size = view.getUint32(0);\n const offset = view.byteOffset;\n const length = view.byteLength;\n if (length < size) {\n return {\n offset,\n size: length,\n };\n }\n const type = view.getUint32(4);\n if (type !== 0x70737368) {\n return { offset, size };\n }\n const version = view.getUint32(8) >>> 24;\n if (version !== 0 && version !== 1) {\n return { offset, size };\n }\n const buffer = view.buffer;\n const systemId = Hex.hexDump(\n new Uint8Array(buffer, offset + 12, 16),\n ) as KeySystemIds;\n const dataSizeOrKidCount = view.getUint32(28);\n let kids: null | Uint8Array[] = null;\n let data: null | Uint8Array = null;\n if (version === 0) {\n if (size - 32 < dataSizeOrKidCount || dataSizeOrKidCount < 22) {\n return { offset, size };\n }\n data = new Uint8Array(buffer, offset + 32, dataSizeOrKidCount);\n } else if (version === 1) {\n if (\n !dataSizeOrKidCount ||\n length < offset + 32 + dataSizeOrKidCount * 16 + 16\n ) {\n return { offset, size };\n }\n kids = [];\n for (let i = 0; i < dataSizeOrKidCount; i++) {\n kids.push(new Uint8Array(buffer, offset + 32 + i * 16, 16));\n }\n }\n return {\n version,\n systemId,\n kids,\n data,\n offset,\n size,\n };\n}\n","import {\n changeEndianness,\n convertDataUriToArrayBytes,\n} from '../utils/keysystem-util';\nimport { KeySystemFormats, parsePlayReadyWRM } from '../utils/mediakeys-helper';\nimport { mp4pssh } from '../utils/mp4-tools';\nimport { logger } from '../utils/logger';\nimport { base64Decode } from '../utils/numeric-encoding-utils';\n\nlet keyUriToKeyIdMap: { [uri: string]: Uint8Array } = {};\n\nexport interface DecryptData {\n uri: string;\n method: string;\n keyFormat: string;\n keyFormatVersions: number[];\n iv: Uint8Array | null;\n key: Uint8Array | null;\n keyId: Uint8Array | null;\n pssh: Uint8Array | null;\n encrypted: boolean;\n isCommonEncryption: boolean;\n}\n\nexport class LevelKey implements DecryptData {\n public readonly uri: string;\n public readonly method: string;\n public readonly keyFormat: string;\n public readonly keyFormatVersions: number[];\n public readonly encrypted: boolean;\n public readonly isCommonEncryption: boolean;\n public iv: Uint8Array | null = null;\n public key: Uint8Array | null = null;\n public keyId: Uint8Array | null = null;\n public pssh: Uint8Array | null = null;\n\n static clearKeyUriToKeyIdMap() {\n keyUriToKeyIdMap = {};\n }\n\n constructor(\n method: string,\n uri: string,\n format: string,\n formatversions: number[] = [1],\n iv: Uint8Array | null = null,\n ) {\n this.method = method;\n this.uri = uri;\n this.keyFormat = format;\n this.keyFormatVersions = formatversions;\n this.iv = iv;\n this.encrypted = method ? method !== 'NONE' : false;\n this.isCommonEncryption = this.encrypted && method !== 'AES-128';\n }\n\n public isSupported(): boolean {\n // If it's Segment encryption or No encryption, just select that key system\n if (this.method) {\n if (this.method === 'AES-128' || this.method === 'NONE') {\n return true;\n }\n if (this.keyFormat === 'identity') {\n // Maintain support for clear SAMPLE-AES with MPEG-3 TS\n return this.method === 'SAMPLE-AES';\n } else if (__USE_EME_DRM__) {\n switch (this.keyFormat) {\n case KeySystemFormats.FAIRPLAY:\n case KeySystemFormats.WIDEVINE:\n case KeySystemFormats.PLAYREADY:\n case KeySystemFormats.CLEARKEY:\n return (\n [\n 'ISO-23001-7',\n 'SAMPLE-AES',\n 'SAMPLE-AES-CENC',\n 'SAMPLE-AES-CTR',\n ].indexOf(this.method) !== -1\n );\n }\n }\n }\n return false;\n }\n\n public getDecryptData(sn: number | 'initSegment'): LevelKey | null {\n if (!this.encrypted || !this.uri) {\n return null;\n }\n\n if (this.method === 'AES-128' && this.uri && !this.iv) {\n if (typeof sn !== 'number') {\n // We are fetching decryption data for a initialization segment\n // If the segment was encrypted with AES-128\n // It must have an IV defined. We cannot substitute the Segment Number in.\n if (this.method === 'AES-128' && !this.iv) {\n logger.warn(\n `missing IV for initialization segment with method=\"${this.method}\" - compliance issue`,\n );\n }\n // Explicitly set sn to resulting value from implicit conversions 'initSegment' values for IV generation.\n sn = 0;\n }\n const iv = createInitializationVector(sn);\n const decryptdata = new LevelKey(\n this.method,\n this.uri,\n 'identity',\n this.keyFormatVersions,\n iv,\n );\n return decryptdata;\n }\n\n if (!__USE_EME_DRM__) {\n return this;\n }\n\n // Initialize keyId if possible\n const keyBytes = convertDataUriToArrayBytes(this.uri);\n if (keyBytes) {\n switch (this.keyFormat) {\n case KeySystemFormats.WIDEVINE:\n // Setting `pssh` on this LevelKey/DecryptData allows HLS.js to generate a session using\n // the playlist-key before the \"encrypted\" event. (Comment out to only use \"encrypted\" path.)\n this.pssh = keyBytes;\n // In case of widevine keyID is embedded in PSSH box. Read Key ID.\n if (keyBytes.length >= 22) {\n this.keyId = keyBytes.subarray(\n keyBytes.length - 22,\n keyBytes.length - 6,\n );\n }\n break;\n case KeySystemFormats.PLAYREADY: {\n const PlayReadyKeySystemUUID = new Uint8Array([\n 0x9a, 0x04, 0xf0, 0x79, 0x98, 0x40, 0x42, 0x86, 0xab, 0x92, 0xe6,\n 0x5b, 0xe0, 0x88, 0x5f, 0x95,\n ]);\n\n // Setting `pssh` on this LevelKey/DecryptData allows HLS.js to generate a session using\n // the playlist-key before the \"encrypted\" event. (Comment out to only use \"encrypted\" path.)\n this.pssh = mp4pssh(PlayReadyKeySystemUUID, null, keyBytes);\n\n this.keyId = parsePlayReadyWRM(keyBytes);\n\n break;\n }\n default: {\n let keydata = keyBytes.subarray(0, 16);\n if (keydata.length !== 16) {\n const padded = new Uint8Array(16);\n padded.set(keydata, 16 - keydata.length);\n keydata = padded;\n }\n this.keyId = keydata;\n break;\n }\n }\n }\n\n // Default behavior: assign a new keyId for each uri\n if (!this.keyId || this.keyId.byteLength !== 16) {\n let keyId = keyUriToKeyIdMap[this.uri];\n if (!keyId) {\n const val =\n Object.keys(keyUriToKeyIdMap).length % Number.MAX_SAFE_INTEGER;\n keyId = new Uint8Array(16);\n const dv = new DataView(keyId.buffer, 12, 4); // Just set the last 4 bytes\n dv.setUint32(0, val);\n keyUriToKeyIdMap[this.uri] = keyId;\n }\n this.keyId = keyId;\n }\n\n return this;\n }\n}\n\nfunction createInitializationVector(segmentNumber: number): Uint8Array {\n const uint8View = new Uint8Array(16);\n for (let i = 12; i < 16; i++) {\n uint8View[i] = (segmentNumber >> (8 * (15 - i))) & 0xff;\n }\n return uint8View;\n}\n","import type { AttrList } from './attr-list';\nimport type { ParsedMultivariantPlaylist } from '../loader/m3u8-parser';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { VariableMap } from '../types/level';\n\nconst VARIABLE_REPLACEMENT_REGEX = /\\{\\$([a-zA-Z0-9-_]+)\\}/g;\n\nexport function hasVariableReferences(str: string): boolean {\n return VARIABLE_REPLACEMENT_REGEX.test(str);\n}\n\nexport function substituteVariablesInAttributes(\n parsed: Pick<\n ParsedMultivariantPlaylist | LevelDetails,\n 'variableList' | 'hasVariableRefs' | 'playlistParsingError'\n >,\n attr: AttrList,\n attributeNames: string[],\n) {\n if (parsed.variableList !== null || parsed.hasVariableRefs) {\n for (let i = attributeNames.length; i--; ) {\n const name = attributeNames[i];\n const value = attr[name];\n if (value) {\n attr[name] = substituteVariables(parsed, value);\n }\n }\n }\n}\n\nexport function substituteVariables(\n parsed: Pick<\n ParsedMultivariantPlaylist | LevelDetails,\n 'variableList' | 'hasVariableRefs' | 'playlistParsingError'\n >,\n value: string,\n): string {\n if (parsed.variableList !== null || parsed.hasVariableRefs) {\n const variableList = parsed.variableList;\n return value.replace(\n VARIABLE_REPLACEMENT_REGEX,\n (variableReference: string) => {\n const variableName = variableReference.substring(\n 2,\n variableReference.length - 1,\n );\n const variableValue = variableList?.[variableName];\n if (variableValue === undefined) {\n parsed.playlistParsingError ||= new Error(\n `Missing preceding EXT-X-DEFINE tag for Variable Reference: \"${variableName}\"`,\n );\n return variableReference;\n }\n return variableValue;\n },\n );\n }\n return value;\n}\n\nexport function addVariableDefinition(\n parsed: Pick<\n ParsedMultivariantPlaylist | LevelDetails,\n 'variableList' | 'playlistParsingError'\n >,\n attr: AttrList,\n parentUrl: string,\n) {\n let variableList = parsed.variableList;\n if (!variableList) {\n parsed.variableList = variableList = {};\n }\n let NAME: string;\n let VALUE;\n if ('QUERYPARAM' in attr) {\n NAME = attr.QUERYPARAM;\n try {\n const searchParams = new self.URL(parentUrl).searchParams;\n if (searchParams.has(NAME)) {\n VALUE = searchParams.get(NAME);\n } else {\n throw new Error(\n `\"${NAME}\" does not match any query parameter in URI: \"${parentUrl}\"`,\n );\n }\n } catch (error) {\n parsed.playlistParsingError ||= new Error(\n `EXT-X-DEFINE QUERYPARAM: ${error.message}`,\n );\n }\n } else {\n NAME = attr.NAME;\n VALUE = attr.VALUE;\n }\n if (NAME in variableList) {\n parsed.playlistParsingError ||= new Error(\n `EXT-X-DEFINE duplicate Variable Name declarations: \"${NAME}\"`,\n );\n } else {\n variableList[NAME] = VALUE || '';\n }\n}\n\nexport function importVariableDefinition(\n parsed: Pick<\n ParsedMultivariantPlaylist | LevelDetails,\n 'variableList' | 'playlistParsingError'\n >,\n attr: AttrList,\n sourceVariableList: VariableMap | null,\n) {\n const IMPORT = attr.IMPORT;\n if (sourceVariableList && IMPORT in sourceVariableList) {\n let variableList = parsed.variableList;\n if (!variableList) {\n parsed.variableList = variableList = {};\n }\n variableList[IMPORT] = sourceVariableList[IMPORT];\n } else {\n parsed.playlistParsingError ||= new Error(\n `EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: \"${IMPORT}\"`,\n );\n }\n}\n","/**\n * MediaSource helper\n */\n\nexport function getMediaSource(\n preferManagedMediaSource = true,\n): typeof MediaSource | undefined {\n if (typeof self === 'undefined') return undefined;\n const mms =\n (preferManagedMediaSource || !self.MediaSource) &&\n ((self as any).ManagedMediaSource as undefined | typeof MediaSource);\n return (\n mms ||\n self.MediaSource ||\n ((self as any).WebKitMediaSource as typeof MediaSource)\n );\n}\n\nexport function isManagedMediaSource(source: typeof MediaSource | undefined) {\n return (\n typeof self !== 'undefined' && source === (self as any).ManagedMediaSource\n );\n}\n","import { getMediaSource } from './mediasource-helper';\n\n// from http://mp4ra.org/codecs.html\n// values indicate codec selection preference (lower is higher priority)\nconst sampleEntryCodesISO = {\n audio: {\n a3ds: 1,\n 'ac-3': 0.95,\n 'ac-4': 1,\n alac: 0.9,\n alaw: 1,\n dra1: 1,\n 'dts+': 1,\n 'dts-': 1,\n dtsc: 1,\n dtse: 1,\n dtsh: 1,\n 'ec-3': 0.9,\n enca: 1,\n fLaC: 0.9, // MP4-RA listed codec entry for FLAC\n flac: 0.9, // legacy browser codec name for FLAC\n FLAC: 0.9, // some manifests may list \"FLAC\" with Apple's tools\n g719: 1,\n g726: 1,\n m4ae: 1,\n mha1: 1,\n mha2: 1,\n mhm1: 1,\n mhm2: 1,\n mlpa: 1,\n mp4a: 1,\n 'raw ': 1,\n Opus: 1,\n opus: 1, // browsers expect this to be lowercase despite MP4RA says 'Opus'\n samr: 1,\n sawb: 1,\n sawp: 1,\n sevc: 1,\n sqcp: 1,\n ssmv: 1,\n twos: 1,\n ulaw: 1,\n },\n video: {\n avc1: 1,\n avc2: 1,\n avc3: 1,\n avc4: 1,\n avcp: 1,\n av01: 0.8,\n drac: 1,\n dva1: 1,\n dvav: 1,\n dvh1: 0.7,\n dvhe: 0.7,\n encv: 1,\n hev1: 0.75,\n hvc1: 0.75,\n mjp2: 1,\n mp4v: 1,\n mvc1: 1,\n mvc2: 1,\n mvc3: 1,\n mvc4: 1,\n resv: 1,\n rv60: 1,\n s263: 1,\n svc1: 1,\n svc2: 1,\n 'vc-1': 1,\n vp08: 1,\n vp09: 0.9,\n },\n text: {\n stpp: 1,\n wvtt: 1,\n },\n} as const;\n\nexport type CodecType = 'audio' | 'video';\n\nexport function isCodecType(codec: string, type: CodecType): boolean {\n const typeCodes = sampleEntryCodesISO[type];\n return !!typeCodes && !!typeCodes[codec.slice(0, 4)];\n}\n\nexport function areCodecsMediaSourceSupported(\n codecs: string,\n type: CodecType,\n preferManagedMediaSource = true,\n): boolean {\n return !codecs\n .split(',')\n .some(\n (codec) =>\n !isCodecMediaSourceSupported(codec, type, preferManagedMediaSource),\n );\n}\n\nfunction isCodecMediaSourceSupported(\n codec: string,\n type: CodecType,\n preferManagedMediaSource = true,\n): boolean {\n const MediaSource = getMediaSource(preferManagedMediaSource);\n return MediaSource?.isTypeSupported(mimeTypeForCodec(codec, type)) ?? false;\n}\n\nexport function mimeTypeForCodec(codec: string, type: CodecType): string {\n return `${type}/mp4;codecs=\"${codec}\"`;\n}\n\nexport function videoCodecPreferenceValue(\n videoCodec: string | undefined,\n): number {\n if (videoCodec) {\n const fourCC = videoCodec.substring(0, 4);\n return sampleEntryCodesISO.video[fourCC];\n }\n return 2;\n}\n\nexport function codecsSetSelectionPreferenceValue(codecSet: string): number {\n return codecSet.split(',').reduce((num, fourCC) => {\n const preferenceValue = sampleEntryCodesISO.video[fourCC];\n if (preferenceValue) {\n return (preferenceValue * 2 + num) / (num ? 3 : 2);\n }\n return (sampleEntryCodesISO.audio[fourCC] + num) / (num ? 2 : 1);\n }, 0);\n}\n\ninterface CodecNameCache {\n flac?: string;\n opus?: string;\n}\n\nconst CODEC_COMPATIBLE_NAMES: CodecNameCache = {};\n\ntype LowerCaseCodecType = 'flac' | 'opus';\n\nfunction getCodecCompatibleNameLower(\n lowerCaseCodec: LowerCaseCodecType,\n preferManagedMediaSource = true,\n): string {\n if (CODEC_COMPATIBLE_NAMES[lowerCaseCodec]) {\n return CODEC_COMPATIBLE_NAMES[lowerCaseCodec]!;\n }\n\n // Idealy fLaC and Opus would be first (spec-compliant) but\n // some browsers will report that fLaC is supported then fail.\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=1422728\n const codecsToCheck = {\n flac: ['flac', 'fLaC', 'FLAC'],\n opus: ['opus', 'Opus'],\n }[lowerCaseCodec];\n\n for (let i = 0; i < codecsToCheck.length; i++) {\n if (\n isCodecMediaSourceSupported(\n codecsToCheck[i],\n 'audio',\n preferManagedMediaSource,\n )\n ) {\n CODEC_COMPATIBLE_NAMES[lowerCaseCodec] = codecsToCheck[i];\n return codecsToCheck[i];\n }\n }\n\n return lowerCaseCodec;\n}\n\nconst AUDIO_CODEC_REGEXP = /flac|opus/i;\nexport function getCodecCompatibleName(\n codec: string,\n preferManagedMediaSource = true,\n): string {\n return codec.replace(AUDIO_CODEC_REGEXP, (m) =>\n getCodecCompatibleNameLower(\n m.toLowerCase() as LowerCaseCodecType,\n preferManagedMediaSource,\n ),\n );\n}\n\nexport function pickMostCompleteCodecName(\n parsedCodec: string,\n levelCodec: string | undefined,\n): string | undefined {\n // Parsing of mp4a codecs strings in mp4-tools from media is incomplete as of d8c6c7a\n // so use level codec is parsed codec is unavailable or incomplete\n if (parsedCodec && parsedCodec !== 'mp4a') {\n return parsedCodec;\n }\n return levelCodec ? levelCodec.split(',')[0] : levelCodec;\n}\n\nexport function convertAVC1ToAVCOTI(codec: string) {\n // Convert avc1 codec string from RFC-4281 to RFC-6381 for MediaSource.isTypeSupported\n // Examples: avc1.66.30 to avc1.42001e and avc1.77.30,avc1.66.30 to avc1.4d001e,avc1.42001e.\n const codecs = codec.split(',');\n for (let i = 0; i < codecs.length; i++) {\n const avcdata = codecs[i].split('.');\n if (avcdata.length > 2) {\n let result = avcdata.shift() + '.';\n result += parseInt(avcdata.shift() as string).toString(16);\n result += (\n '000' + parseInt(avcdata.shift() as string).toString(16)\n ).slice(-4);\n codecs[i] = result;\n }\n }\n return codecs.join(',');\n}\n","import { buildAbsoluteURL } from 'url-toolkit';\nimport { DateRange } from './date-range';\nimport { Fragment, Part } from './fragment';\nimport { LevelDetails } from './level-details';\nimport { LevelKey } from './level-key';\nimport { AttrList } from '../utils/attr-list';\nimport { logger } from '../utils/logger';\nimport {\n addVariableDefinition,\n hasVariableReferences,\n importVariableDefinition,\n substituteVariables,\n substituteVariablesInAttributes,\n} from '../utils/variable-substitution';\nimport { isCodecType } from '../utils/codecs';\nimport type { CodecType } from '../utils/codecs';\nimport type { MediaPlaylist, MediaAttributes } from '../types/media-playlist';\nimport type { PlaylistLevelType } from '../types/loader';\nimport type { LevelAttributes, LevelParsed, VariableMap } from '../types/level';\nimport type { ContentSteeringOptions } from '../types/events';\n\ntype M3U8ParserFragments = Array<Fragment | null>;\n\nexport type ParsedMultivariantPlaylist = {\n contentSteering: ContentSteeringOptions | null;\n levels: LevelParsed[];\n playlistParsingError: Error | null;\n sessionData: Record<string, AttrList> | null;\n sessionKeys: LevelKey[] | null;\n startTimeOffset: number | null;\n variableList: VariableMap | null;\n hasVariableRefs: boolean;\n};\n\ntype ParsedMultivariantMediaOptions = {\n AUDIO?: MediaPlaylist[];\n SUBTITLES?: MediaPlaylist[];\n 'CLOSED-CAPTIONS'?: MediaPlaylist[];\n};\n\nconst MASTER_PLAYLIST_REGEX =\n /#EXT-X-STREAM-INF:([^\\r\\n]*)(?:[\\r\\n](?:#[^\\r\\n]*)?)*([^\\r\\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\\r\\n]*)[\\r\\n]+/g;\nconst MASTER_PLAYLIST_MEDIA_REGEX = /#EXT-X-MEDIA:(.*)/g;\n\nconst IS_MEDIA_PLAYLIST = /^#EXT(?:INF|-X-TARGETDURATION):/m; // Handle empty Media Playlist (first EXTINF not signaled, but TARGETDURATION present)\n\nconst LEVEL_PLAYLIST_REGEX_FAST = new RegExp(\n [\n /#EXTINF:\\s*(\\d*(?:\\.\\d+)?)(?:,(.*)\\s+)?/.source, // duration (#EXTINF:<duration>,<title>), group 1 => duration, group 2 => title\n /(?!#) *(\\S[^\\r\\n]*)/.source, // segment URI, group 3 => the URI (note newline is not eaten)\n /#EXT-X-BYTERANGE:*(.+)/.source, // next segment's byterange, group 4 => range spec (x@y)\n /#EXT-X-PROGRAM-DATE-TIME:(.+)/.source, // next segment's program date/time group 5 => the datetime spec\n /#.*/.source, // All other non-segment oriented tags will match with all groups empty\n ].join('|'),\n 'g',\n);\n\nconst LEVEL_PLAYLIST_REGEX_SLOW = new RegExp(\n [\n /#(EXTM3U)/.source,\n /#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/\n .source,\n /#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\\d+)/\n .source,\n /#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,\n /(#)([^:]*):(.*)/.source,\n /(#)(.*)(?:.*)\\r?\\n?/.source,\n ].join('|'),\n);\n\nexport default class M3U8Parser {\n static findGroup(\n groups: (\n | { id?: string; audioCodec?: string }\n | { id?: string; textCodec?: string }\n )[],\n mediaGroupId: string,\n ):\n | { id?: string; audioCodec?: string }\n | { id?: string; textCodec?: string }\n | undefined {\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n if (group.id === mediaGroupId) {\n return group;\n }\n }\n }\n\n static resolve(url, baseUrl) {\n return buildAbsoluteURL(baseUrl, url, { alwaysNormalize: true });\n }\n\n static isMediaPlaylist(str: string): boolean {\n return IS_MEDIA_PLAYLIST.test(str);\n }\n\n static parseMasterPlaylist(\n string: string,\n baseurl: string,\n ): ParsedMultivariantPlaylist {\n const hasVariableRefs = __USE_VARIABLE_SUBSTITUTION__\n ? hasVariableReferences(string)\n : false;\n const parsed: ParsedMultivariantPlaylist = {\n contentSteering: null,\n levels: [],\n playlistParsingError: null,\n sessionData: null,\n sessionKeys: null,\n startTimeOffset: null,\n variableList: null,\n hasVariableRefs,\n };\n const levelsWithKnownCodecs: LevelParsed[] = [];\n\n MASTER_PLAYLIST_REGEX.lastIndex = 0;\n\n let result: RegExpExecArray | null;\n while ((result = MASTER_PLAYLIST_REGEX.exec(string)) != null) {\n if (result[1]) {\n // '#EXT-X-STREAM-INF' is found, parse level tag in group 1\n const attrs = new AttrList(result[1]) as LevelAttributes;\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(parsed, attrs, [\n 'CODECS',\n 'SUPPLEMENTAL-CODECS',\n 'ALLOWED-CPC',\n 'PATHWAY-ID',\n 'STABLE-VARIANT-ID',\n 'AUDIO',\n 'VIDEO',\n 'SUBTITLES',\n 'CLOSED-CAPTIONS',\n 'NAME',\n ]);\n }\n const uri = __USE_VARIABLE_SUBSTITUTION__\n ? substituteVariables(parsed, result[2])\n : result[2];\n const level: LevelParsed = {\n attrs,\n bitrate:\n attrs.decimalInteger('BANDWIDTH') ||\n attrs.decimalInteger('AVERAGE-BANDWIDTH'),\n name: attrs.NAME,\n url: M3U8Parser.resolve(uri, baseurl),\n };\n\n const resolution = attrs.decimalResolution('RESOLUTION');\n if (resolution) {\n level.width = resolution.width;\n level.height = resolution.height;\n }\n\n setCodecs(attrs.CODECS, level);\n\n if (!level.unknownCodecs?.length) {\n levelsWithKnownCodecs.push(level);\n }\n\n parsed.levels.push(level);\n } else if (result[3]) {\n const tag = result[3];\n const attributes = result[4];\n switch (tag) {\n case 'SESSION-DATA': {\n // #EXT-X-SESSION-DATA\n const sessionAttrs = new AttrList(attributes);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(parsed, sessionAttrs, [\n 'DATA-ID',\n 'LANGUAGE',\n 'VALUE',\n 'URI',\n ]);\n }\n const dataId = sessionAttrs['DATA-ID'];\n if (dataId) {\n if (parsed.sessionData === null) {\n parsed.sessionData = {};\n }\n parsed.sessionData[dataId] = sessionAttrs;\n }\n break;\n }\n case 'SESSION-KEY': {\n // #EXT-X-SESSION-KEY\n const sessionKey = parseKey(attributes, baseurl, parsed);\n if (sessionKey.encrypted && sessionKey.isSupported()) {\n if (parsed.sessionKeys === null) {\n parsed.sessionKeys = [];\n }\n parsed.sessionKeys.push(sessionKey);\n } else {\n logger.warn(\n `[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: \"${attributes}\"`,\n );\n }\n break;\n }\n case 'DEFINE': {\n // #EXT-X-DEFINE\n if (__USE_VARIABLE_SUBSTITUTION__) {\n const variableAttributes = new AttrList(attributes);\n substituteVariablesInAttributes(parsed, variableAttributes, [\n 'NAME',\n 'VALUE',\n 'QUERYPARAM',\n ]);\n addVariableDefinition(parsed, variableAttributes, baseurl);\n }\n break;\n }\n case 'CONTENT-STEERING': {\n // #EXT-X-CONTENT-STEERING\n const contentSteeringAttributes = new AttrList(attributes);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(\n parsed,\n contentSteeringAttributes,\n ['SERVER-URI', 'PATHWAY-ID'],\n );\n }\n parsed.contentSteering = {\n uri: M3U8Parser.resolve(\n contentSteeringAttributes['SERVER-URI'],\n baseurl,\n ),\n pathwayId: contentSteeringAttributes['PATHWAY-ID'] || '.',\n };\n break;\n }\n case 'START': {\n // #EXT-X-START\n parsed.startTimeOffset = parseStartTimeOffset(attributes);\n break;\n }\n default:\n break;\n }\n }\n }\n // Filter out levels with unknown codecs if it does not remove all levels\n const stripUnknownCodecLevels =\n levelsWithKnownCodecs.length > 0 &&\n levelsWithKnownCodecs.length < parsed.levels.length;\n\n parsed.levels = stripUnknownCodecLevels\n ? levelsWithKnownCodecs\n : parsed.levels;\n if (parsed.levels.length === 0) {\n parsed.playlistParsingError = new Error('no levels found in manifest');\n }\n\n return parsed;\n }\n\n static parseMasterPlaylistMedia(\n string: string,\n baseurl: string,\n parsed: ParsedMultivariantPlaylist,\n ): ParsedMultivariantMediaOptions {\n let result: RegExpExecArray | null;\n const results: ParsedMultivariantMediaOptions = {};\n const levels = parsed.levels;\n const groupsByType = {\n AUDIO: levels.map((level: LevelParsed) => ({\n id: level.attrs.AUDIO,\n audioCodec: level.audioCodec,\n })),\n SUBTITLES: levels.map((level: LevelParsed) => ({\n id: level.attrs.SUBTITLES,\n textCodec: level.textCodec,\n })),\n 'CLOSED-CAPTIONS': [],\n };\n let id = 0;\n MASTER_PLAYLIST_MEDIA_REGEX.lastIndex = 0;\n while ((result = MASTER_PLAYLIST_MEDIA_REGEX.exec(string)) !== null) {\n const attrs = new AttrList(result[1]) as MediaAttributes;\n const type = attrs.TYPE;\n if (type) {\n const groups: (typeof groupsByType)[keyof typeof groupsByType] =\n groupsByType[type];\n const medias: MediaPlaylist[] = results[type] || [];\n results[type] = medias;\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(parsed, attrs, [\n 'URI',\n 'GROUP-ID',\n 'LANGUAGE',\n 'ASSOC-LANGUAGE',\n 'STABLE-RENDITION-ID',\n 'NAME',\n 'INSTREAM-ID',\n 'CHARACTERISTICS',\n 'CHANNELS',\n ]);\n }\n const lang = attrs.LANGUAGE;\n const assocLang = attrs['ASSOC-LANGUAGE'];\n const channels = attrs.CHANNELS;\n const characteristics = attrs.CHARACTERISTICS;\n const instreamId = attrs['INSTREAM-ID'];\n const media: MediaPlaylist = {\n attrs,\n bitrate: 0,\n id: id++,\n groupId: attrs['GROUP-ID'] || '',\n name: attrs.NAME || lang || '',\n type,\n default: attrs.bool('DEFAULT'),\n autoselect: attrs.bool('AUTOSELECT'),\n forced: attrs.bool('FORCED'),\n lang,\n url: attrs.URI ? M3U8Parser.resolve(attrs.URI, baseurl) : '',\n };\n if (assocLang) {\n media.assocLang = assocLang;\n }\n if (channels) {\n media.channels = channels;\n }\n if (characteristics) {\n media.characteristics = characteristics;\n }\n if (instreamId) {\n media.instreamId = instreamId;\n }\n\n if (groups?.length) {\n // If there are audio or text groups signalled in the manifest, let's look for a matching codec string for this track\n // If we don't find the track signalled, lets use the first audio groups codec we have\n // Acting as a best guess\n const groupCodec =\n M3U8Parser.findGroup(groups, media.groupId as string) || groups[0];\n assignCodec(media, groupCodec, 'audioCodec');\n assignCodec(media, groupCodec, 'textCodec');\n }\n\n medias.push(media);\n }\n }\n return results;\n }\n\n static parseLevelPlaylist(\n string: string,\n baseurl: string,\n id: number,\n type: PlaylistLevelType,\n levelUrlId: number,\n multivariantVariableList: VariableMap | null,\n ): LevelDetails {\n const level = new LevelDetails(baseurl);\n const fragments: M3U8ParserFragments = level.fragments;\n // The most recent init segment seen (applies to all subsequent segments)\n let currentInitSegment: Fragment | null = null;\n let currentSN = 0;\n let currentPart = 0;\n let totalduration = 0;\n let discontinuityCounter = 0;\n let prevFrag: Fragment | null = null;\n let frag: Fragment = new Fragment(type, baseurl);\n let result: RegExpExecArray | RegExpMatchArray | null;\n let i: number;\n let levelkeys: { [key: string]: LevelKey } | undefined;\n let firstPdtIndex = -1;\n let createNextFrag = false;\n let nextByteRange: string | null = null;\n\n LEVEL_PLAYLIST_REGEX_FAST.lastIndex = 0;\n level.m3u8 = string;\n level.hasVariableRefs = __USE_VARIABLE_SUBSTITUTION__\n ? hasVariableReferences(string)\n : false;\n\n while ((result = LEVEL_PLAYLIST_REGEX_FAST.exec(string)) !== null) {\n if (createNextFrag) {\n createNextFrag = false;\n frag = new Fragment(type, baseurl);\n // setup the next fragment for part loading\n frag.start = totalduration;\n frag.sn = currentSN;\n frag.cc = discontinuityCounter;\n frag.level = id;\n if (currentInitSegment) {\n frag.initSegment = currentInitSegment;\n frag.rawProgramDateTime = currentInitSegment.rawProgramDateTime;\n currentInitSegment.rawProgramDateTime = null;\n if (nextByteRange) {\n frag.setByteRange(nextByteRange);\n nextByteRange = null;\n }\n }\n }\n\n const duration = result[1];\n if (duration) {\n // INF\n frag.duration = parseFloat(duration);\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const title = (' ' + result[2]).slice(1);\n frag.title = title || null;\n frag.tagList.push(title ? ['INF', duration, title] : ['INF', duration]);\n } else if (result[3]) {\n // url\n if (Number.isFinite(frag.duration)) {\n frag.start = totalduration;\n if (levelkeys) {\n setFragLevelKeys(frag, levelkeys, level);\n }\n frag.sn = currentSN;\n frag.level = id;\n frag.cc = discontinuityCounter;\n fragments.push(frag);\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const uri = (' ' + result[3]).slice(1);\n frag.relurl = __USE_VARIABLE_SUBSTITUTION__\n ? substituteVariables(level, uri)\n : uri;\n assignProgramDateTime(frag, prevFrag);\n prevFrag = frag;\n totalduration += frag.duration;\n currentSN++;\n currentPart = 0;\n createNextFrag = true;\n }\n } else if (result[4]) {\n // X-BYTERANGE\n const data = (' ' + result[4]).slice(1);\n if (prevFrag) {\n frag.setByteRange(data, prevFrag);\n } else {\n frag.setByteRange(data);\n }\n } else if (result[5]) {\n // PROGRAM-DATE-TIME\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n frag.rawProgramDateTime = (' ' + result[5]).slice(1);\n frag.tagList.push(['PROGRAM-DATE-TIME', frag.rawProgramDateTime]);\n if (firstPdtIndex === -1) {\n firstPdtIndex = fragments.length;\n }\n } else {\n result = result[0].match(LEVEL_PLAYLIST_REGEX_SLOW);\n if (!result) {\n logger.warn('No matches on slow regex match for level playlist!');\n continue;\n }\n for (i = 1; i < result.length; i++) {\n if (typeof result[i] !== 'undefined') {\n break;\n }\n }\n\n // avoid sliced strings https://github.com/video-dev/hls.js/issues/939\n const tag = (' ' + result[i]).slice(1);\n const value1 = (' ' + result[i + 1]).slice(1);\n const value2 = result[i + 2] ? (' ' + result[i + 2]).slice(1) : '';\n\n switch (tag) {\n case 'PLAYLIST-TYPE':\n level.type = value1.toUpperCase();\n break;\n case 'MEDIA-SEQUENCE':\n currentSN = level.startSN = parseInt(value1);\n break;\n case 'SKIP': {\n const skipAttrs = new AttrList(value1);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(level, skipAttrs, [\n 'RECENTLY-REMOVED-DATERANGES',\n ]);\n }\n const skippedSegments =\n skipAttrs.decimalInteger('SKIPPED-SEGMENTS');\n if (Number.isFinite(skippedSegments)) {\n level.skippedSegments = skippedSegments;\n // This will result in fragments[] containing undefined values, which we will fill in with `mergeDetails`\n for (let i = skippedSegments; i--; ) {\n fragments.unshift(null);\n }\n currentSN += skippedSegments;\n }\n const recentlyRemovedDateranges = skipAttrs.enumeratedString(\n 'RECENTLY-REMOVED-DATERANGES',\n );\n if (recentlyRemovedDateranges) {\n level.recentlyRemovedDateranges =\n recentlyRemovedDateranges.split('\\t');\n }\n break;\n }\n case 'TARGETDURATION':\n level.targetduration = Math.max(parseInt(value1), 1);\n break;\n case 'VERSION':\n level.version = parseInt(value1);\n break;\n case 'INDEPENDENT-SEGMENTS':\n case 'EXTM3U':\n break;\n case 'ENDLIST':\n level.live = false;\n break;\n case '#':\n if (value1 || value2) {\n frag.tagList.push(value2 ? [value1, value2] : [value1]);\n }\n break;\n case 'DISCONTINUITY':\n discontinuityCounter++;\n frag.tagList.push(['DIS']);\n break;\n case 'GAP':\n frag.gap = true;\n frag.tagList.push([tag]);\n break;\n case 'BITRATE':\n frag.tagList.push([tag, value1]);\n break;\n case 'DATERANGE': {\n const dateRangeAttr = new AttrList(value1);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(level, dateRangeAttr, [\n 'ID',\n 'CLASS',\n 'START-DATE',\n 'END-DATE',\n 'SCTE35-CMD',\n 'SCTE35-OUT',\n 'SCTE35-IN',\n ]);\n substituteVariablesInAttributes(\n level,\n dateRangeAttr,\n dateRangeAttr.clientAttrs,\n );\n }\n const dateRange = new DateRange(\n dateRangeAttr,\n level.dateRanges[dateRangeAttr.ID],\n );\n if (dateRange.isValid || level.skippedSegments) {\n level.dateRanges[dateRange.id] = dateRange;\n } else {\n logger.warn(`Ignoring invalid DATERANGE tag: \"${value1}\"`);\n }\n // Add to fragment tag list for backwards compatibility (< v1.2.0)\n frag.tagList.push(['EXT-X-DATERANGE', value1]);\n break;\n }\n case 'DEFINE': {\n if (__USE_VARIABLE_SUBSTITUTION__) {\n const variableAttributes = new AttrList(value1);\n substituteVariablesInAttributes(level, variableAttributes, [\n 'NAME',\n 'VALUE',\n 'IMPORT',\n 'QUERYPARAM',\n ]);\n if ('IMPORT' in variableAttributes) {\n importVariableDefinition(\n level,\n variableAttributes,\n multivariantVariableList,\n );\n } else {\n addVariableDefinition(level, variableAttributes, baseurl);\n }\n }\n break;\n }\n\n case 'DISCONTINUITY-SEQUENCE':\n discontinuityCounter = parseInt(value1);\n break;\n case 'KEY': {\n const levelKey = parseKey(value1, baseurl, level);\n if (levelKey.isSupported()) {\n if (levelKey.method === 'NONE') {\n levelkeys = undefined;\n break;\n }\n if (!levelkeys) {\n levelkeys = {};\n }\n if (levelkeys[levelKey.keyFormat]) {\n levelkeys = Object.assign({}, levelkeys);\n }\n levelkeys[levelKey.keyFormat] = levelKey;\n } else {\n logger.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: \"${value1}\"`);\n }\n break;\n }\n case 'START':\n level.startTimeOffset = parseStartTimeOffset(value1);\n break;\n case 'MAP': {\n const mapAttrs = new AttrList(value1);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(level, mapAttrs, [\n 'BYTERANGE',\n 'URI',\n ]);\n }\n if (frag.duration) {\n // Initial segment tag is after segment duration tag.\n // #EXTINF: 6.0\n // #EXT-X-MAP:URI=\"init.mp4\n const init = new Fragment(type, baseurl);\n setInitSegment(init, mapAttrs, id, levelkeys);\n currentInitSegment = init;\n frag.initSegment = currentInitSegment;\n if (\n currentInitSegment.rawProgramDateTime &&\n !frag.rawProgramDateTime\n ) {\n frag.rawProgramDateTime = currentInitSegment.rawProgramDateTime;\n }\n } else {\n // Initial segment tag is before segment duration tag\n // Handle case where EXT-X-MAP is declared after EXT-X-BYTERANGE\n const end = frag.byteRangeEndOffset;\n if (end) {\n const start = frag.byteRangeStartOffset as number;\n nextByteRange = `${end - start}@${start}`;\n } else {\n nextByteRange = null;\n }\n setInitSegment(frag, mapAttrs, id, levelkeys);\n currentInitSegment = frag;\n createNextFrag = true;\n }\n break;\n }\n case 'SERVER-CONTROL': {\n const serverControlAttrs = new AttrList(value1);\n level.canBlockReload = serverControlAttrs.bool('CAN-BLOCK-RELOAD');\n level.canSkipUntil = serverControlAttrs.optionalFloat(\n 'CAN-SKIP-UNTIL',\n 0,\n );\n level.canSkipDateRanges =\n level.canSkipUntil > 0 &&\n serverControlAttrs.bool('CAN-SKIP-DATERANGES');\n level.partHoldBack = serverControlAttrs.optionalFloat(\n 'PART-HOLD-BACK',\n 0,\n );\n level.holdBack = serverControlAttrs.optionalFloat('HOLD-BACK', 0);\n break;\n }\n case 'PART-INF': {\n const partInfAttrs = new AttrList(value1);\n level.partTarget = partInfAttrs.decimalFloatingPoint('PART-TARGET');\n break;\n }\n case 'PART': {\n let partList = level.partList;\n if (!partList) {\n partList = level.partList = [];\n }\n const previousFragmentPart =\n currentPart > 0 ? partList[partList.length - 1] : undefined;\n const index = currentPart++;\n const partAttrs = new AttrList(value1);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(level, partAttrs, [\n 'BYTERANGE',\n 'URI',\n ]);\n }\n const part = new Part(\n partAttrs,\n frag,\n baseurl,\n index,\n previousFragmentPart,\n );\n partList.push(part);\n frag.duration += part.duration;\n break;\n }\n case 'PRELOAD-HINT': {\n const preloadHintAttrs = new AttrList(value1);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(level, preloadHintAttrs, ['URI']);\n }\n level.preloadHint = preloadHintAttrs;\n break;\n }\n case 'RENDITION-REPORT': {\n const renditionReportAttrs = new AttrList(value1);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(level, renditionReportAttrs, [\n 'URI',\n ]);\n }\n level.renditionReports = level.renditionReports || [];\n level.renditionReports.push(renditionReportAttrs);\n break;\n }\n default:\n logger.warn(`line parsed but not handled: ${result}`);\n break;\n }\n }\n }\n if (prevFrag && !prevFrag.relurl) {\n fragments.pop();\n totalduration -= prevFrag.duration;\n if (level.partList) {\n level.fragmentHint = prevFrag;\n }\n } else if (level.partList) {\n assignProgramDateTime(frag, prevFrag);\n frag.cc = discontinuityCounter;\n level.fragmentHint = frag;\n if (levelkeys) {\n setFragLevelKeys(frag, levelkeys, level);\n }\n }\n const fragmentLength = fragments.length;\n const firstFragment = fragments[0];\n const lastFragment = fragments[fragmentLength - 1];\n totalduration += level.skippedSegments * level.targetduration;\n if (totalduration > 0 && fragmentLength && lastFragment) {\n level.averagetargetduration = totalduration / fragmentLength;\n const lastSn = lastFragment.sn;\n level.endSN = lastSn !== 'initSegment' ? lastSn : 0;\n if (!level.live) {\n lastFragment.endList = true;\n }\n if (firstFragment) {\n level.startCC = firstFragment.cc;\n }\n } else {\n level.endSN = 0;\n level.startCC = 0;\n }\n if (level.fragmentHint) {\n totalduration += level.fragmentHint.duration;\n }\n level.totalduration = totalduration;\n level.endCC = discontinuityCounter;\n\n /**\n * Backfill any missing PDT values\n * \"If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after\n * one or more Media Segment URIs, the client SHOULD extrapolate\n * backward from that tag (using EXTINF durations and/or media\n * timestamps) to associate dates with those segments.\"\n * We have already extrapolated forward, but all fragments up to the first instance of PDT do not have their PDTs\n * computed.\n */\n if (firstPdtIndex > 0) {\n backfillProgramDateTimes(fragments, firstPdtIndex);\n }\n\n return level;\n }\n}\n\nfunction parseKey(\n keyTagAttributes: string,\n baseurl: string,\n parsed: ParsedMultivariantPlaylist | LevelDetails,\n): LevelKey {\n // https://tools.ietf.org/html/rfc8216#section-4.3.2.4\n const keyAttrs = new AttrList(keyTagAttributes);\n if (__USE_VARIABLE_SUBSTITUTION__) {\n substituteVariablesInAttributes(parsed, keyAttrs, [\n 'KEYFORMAT',\n 'KEYFORMATVERSIONS',\n 'URI',\n 'IV',\n 'URI',\n ]);\n }\n const decryptmethod = keyAttrs.METHOD ?? '';\n const decrypturi = keyAttrs.URI;\n const decryptiv = keyAttrs.hexadecimalInteger('IV');\n const decryptkeyformatversions = keyAttrs.KEYFORMATVERSIONS;\n // From RFC: This attribute is OPTIONAL; its absence indicates an implicit value of \"identity\".\n const decryptkeyformat = keyAttrs.KEYFORMAT ?? 'identity';\n\n if (decrypturi && keyAttrs.IV && !decryptiv) {\n logger.error(`Invalid IV: ${keyAttrs.IV}`);\n }\n // If decrypturi is a URI with a scheme, then baseurl will be ignored\n // No uri is allowed when METHOD is NONE\n const resolvedUri = decrypturi ? M3U8Parser.resolve(decrypturi, baseurl) : '';\n const keyFormatVersions = (\n decryptkeyformatversions ? decryptkeyformatversions : '1'\n )\n .split('/')\n .map(Number)\n .filter(Number.isFinite);\n\n return new LevelKey(\n decryptmethod,\n resolvedUri,\n decryptkeyformat,\n keyFormatVersions,\n decryptiv,\n );\n}\n\nfunction parseStartTimeOffset(startAttributes: string): number | null {\n const startAttrs = new AttrList(startAttributes);\n const startTimeOffset = startAttrs.decimalFloatingPoint('TIME-OFFSET');\n if (Number.isFinite(startTimeOffset)) {\n return startTimeOffset;\n }\n return null;\n}\n\nfunction setCodecs(\n codecsAttributeValue: string | undefined,\n level: LevelParsed,\n) {\n let codecs = (codecsAttributeValue || '').split(/[ ,]+/).filter((c) => c);\n ['video', 'audio', 'text'].forEach((type: CodecType) => {\n const filtered = codecs.filter((codec) => isCodecType(codec, type));\n if (filtered.length) {\n // Comma separated list of all codecs for type\n level[`${type}Codec`] = filtered.join(',');\n // Remove known codecs so that only unknownCodecs are left after iterating through each type\n codecs = codecs.filter((codec) => filtered.indexOf(codec) === -1);\n }\n });\n level.unknownCodecs = codecs;\n}\n\nfunction assignCodec(\n media: MediaPlaylist,\n groupItem: { audioCodec?: string; textCodec?: string },\n codecProperty: 'audioCodec' | 'textCodec',\n) {\n const codecValue = groupItem[codecProperty];\n if (codecValue) {\n media[codecProperty] = codecValue;\n }\n}\n\nfunction backfillProgramDateTimes(\n fragments: M3U8ParserFragments,\n firstPdtIndex: number,\n) {\n let fragPrev = fragments[firstPdtIndex] as Fragment;\n for (let i = firstPdtIndex; i--; ) {\n const frag = fragments[i];\n // Exit on delta-playlist skipped segments\n if (!frag) {\n return;\n }\n frag.programDateTime =\n (fragPrev.programDateTime as number) - frag.duration * 1000;\n fragPrev = frag;\n }\n}\n\nfunction assignProgramDateTime(frag, prevFrag) {\n if (frag.rawProgramDateTime) {\n frag.programDateTime = Date.parse(frag.rawProgramDateTime);\n } else if (prevFrag?.programDateTime) {\n frag.programDateTime = prevFrag.endProgramDateTime;\n }\n\n if (!Number.isFinite(frag.programDateTime)) {\n frag.programDateTime = null;\n frag.rawProgramDateTime = null;\n }\n}\n\nfunction setInitSegment(\n frag: Fragment,\n mapAttrs: AttrList,\n id: number,\n levelkeys: { [key: string]: LevelKey } | undefined,\n) {\n frag.relurl = mapAttrs.URI;\n if (mapAttrs.BYTERANGE) {\n frag.setByteRange(mapAttrs.BYTERANGE);\n }\n frag.level = id;\n frag.sn = 'initSegment';\n if (levelkeys) {\n frag.levelkeys = levelkeys;\n }\n frag.initSegment = null;\n}\n\nfunction setFragLevelKeys(\n frag: Fragment,\n levelkeys: { [key: string]: LevelKey },\n level: LevelDetails,\n) {\n frag.levelkeys = levelkeys;\n const { encryptedFragments } = level;\n if (\n (!encryptedFragments.length ||\n encryptedFragments[encryptedFragments.length - 1].levelkeys !==\n levelkeys) &&\n Object.keys(levelkeys).some(\n (format) => levelkeys![format].isCommonEncryption,\n )\n ) {\n encryptedFragments.push(frag);\n }\n}\n","import type { LoaderConfig } from '../config';\nimport type { Fragment } from '../loader/fragment';\nimport type { Part } from '../loader/fragment';\nimport type { KeyLoaderInfo } from '../loader/key-loader';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { HlsUrlParameters } from './level';\n\nexport interface LoaderContext {\n // target URL\n url: string;\n // loader response type (arraybuffer or default response type for playlist)\n responseType: string;\n // headers\n headers?: Record<string, string>;\n // start byte range offset\n rangeStart?: number;\n // end byte range offset\n rangeEnd?: number;\n // true if onProgress should report partial chunk of loaded content\n progressData?: boolean;\n}\n\nexport interface FragmentLoaderContext extends LoaderContext {\n frag: Fragment;\n part: Part | null;\n resetIV?: boolean;\n}\n\nexport interface KeyLoaderContext extends LoaderContext {\n keyInfo: KeyLoaderInfo;\n frag: Fragment;\n}\n\nexport interface LoaderConfiguration {\n // LoaderConfig policy that overrides required settings\n loadPolicy: LoaderConfig;\n /**\n * @deprecated use LoaderConfig timeoutRetry and errorRetry maxNumRetry\n */\n // Max number of load retries\n maxRetry: number;\n /**\n * @deprecated use LoaderConfig maxTimeToFirstByteMs and maxLoadTimeMs\n */\n // Timeout after which `onTimeOut` callback will be triggered\n // when loading has not finished after that delay\n timeout: number;\n /**\n * @deprecated use LoaderConfig timeoutRetry and errorRetry retryDelayMs\n */\n // Delay between an I/O error and following connection retry (ms).\n // This to avoid spamming the server\n retryDelay: number;\n /**\n * @deprecated use LoaderConfig timeoutRetry and errorRetry maxRetryDelayMs\n */\n // max connection retry delay (ms)\n maxRetryDelay: number;\n // When streaming progressively, this is the minimum chunk size required to emit a PROGRESS event\n highWaterMark?: number;\n}\n\nexport interface LoaderResponse {\n url: string;\n data?: string | ArrayBuffer | Object;\n // Errors can include HTTP status code and error message\n // Successful responses should include status code 200\n code?: number;\n text?: string;\n}\n\nexport interface LoaderStats {\n aborted: boolean;\n loaded: number;\n retry: number;\n total: number;\n chunkCount: number;\n bwEstimate: number;\n loading: HlsProgressivePerformanceTiming;\n parsing: HlsPerformanceTiming;\n buffering: HlsProgressivePerformanceTiming;\n}\n\nexport interface HlsPerformanceTiming {\n start: number;\n end: number;\n}\n\nexport interface HlsChunkPerformanceTiming extends HlsPerformanceTiming {\n executeStart: number;\n executeEnd: number;\n}\n\nexport interface HlsProgressivePerformanceTiming extends HlsPerformanceTiming {\n first: number;\n}\n\nexport type LoaderOnSuccess<T extends LoaderContext> = (\n response: LoaderResponse,\n stats: LoaderStats,\n context: T,\n networkDetails: any,\n) => void;\n\nexport type LoaderOnProgress<T extends LoaderContext> = (\n stats: LoaderStats,\n context: T,\n data: string | ArrayBuffer,\n networkDetails: any,\n) => void;\n\nexport type LoaderOnError<T extends LoaderContext> = (\n error: {\n // error status code\n code: number;\n // error description\n text: string;\n },\n context: T,\n networkDetails: any,\n stats: LoaderStats,\n) => void;\n\nexport type LoaderOnTimeout<T extends LoaderContext> = (\n stats: LoaderStats,\n context: T,\n networkDetails: any,\n) => void;\n\nexport type LoaderOnAbort<T extends LoaderContext> = (\n stats: LoaderStats,\n context: T,\n networkDetails: any,\n) => void;\n\nexport interface LoaderCallbacks<T extends LoaderContext> {\n onSuccess: LoaderOnSuccess<T>;\n onError: LoaderOnError<T>;\n onTimeout: LoaderOnTimeout<T>;\n onAbort?: LoaderOnAbort<T>;\n onProgress?: LoaderOnProgress<T>;\n}\n\nexport interface Loader<T extends LoaderContext> {\n destroy(): void;\n abort(): void;\n load(\n context: T,\n config: LoaderConfiguration,\n callbacks: LoaderCallbacks<T>,\n ): void;\n /**\n * `getCacheAge()` is called by hls.js to get the duration that a given object\n * has been sitting in a cache proxy when playing live. If implemented,\n * this should return a value in seconds.\n *\n * For HTTP based loaders, this should return the contents of the \"age\" header.\n *\n * @returns time object being lodaded\n */\n getCacheAge?: () => number | null;\n getResponseHeader?: (name: string) => string | null;\n context: T | null;\n stats: LoaderStats;\n}\n\nexport const enum PlaylistContextType {\n MANIFEST = 'manifest',\n LEVEL = 'level',\n AUDIO_TRACK = 'audioTrack',\n SUBTITLE_TRACK = 'subtitleTrack',\n}\n\nexport const enum PlaylistLevelType {\n MAIN = 'main',\n AUDIO = 'audio',\n SUBTITLE = 'subtitle',\n}\n\nexport interface PlaylistLoaderContext extends LoaderContext {\n type: PlaylistContextType;\n // the level index to load\n level: number | null;\n // level or track id from LevelLoadingData / TrackLoadingData\n id: number | null;\n // Media Playlist Group ID\n groupId?: string;\n // Content Steering Pathway ID (or undefined for default Pathway \".\")\n pathwayId?: string;\n // internal representation of a parsed m3u8 level playlist\n levelDetails?: LevelDetails;\n // Blocking playlist request delivery directives (or null id none were added to playlist url\n deliveryDirectives: HlsUrlParameters | null;\n}\n","/**\n * PlaylistLoader - delegate for media manifest/playlist loading tasks. Takes care of parsing media to internal data-models.\n *\n * Once loaded, dispatches events with parsed data-models of manifest/levels/audio/subtitle tracks.\n *\n * Uses loader(s) set in config to do actual internal loading of resource tasks.\n */\n\nimport { Events } from '../events';\nimport { ErrorDetails, ErrorTypes } from '../errors';\nimport { logger } from '../utils/logger';\nimport M3U8Parser from './m3u8-parser';\nimport type { LevelParsed, VariableMap } from '../types/level';\nimport type {\n Loader,\n LoaderCallbacks,\n LoaderConfiguration,\n LoaderContext,\n LoaderResponse,\n LoaderStats,\n PlaylistLoaderContext,\n} from '../types/loader';\nimport { PlaylistContextType, PlaylistLevelType } from '../types/loader';\nimport { LevelDetails } from './level-details';\nimport { AttrList } from '../utils/attr-list';\nimport type Hls from '../hls';\nimport type {\n ErrorData,\n LevelLoadingData,\n ManifestLoadingData,\n TrackLoadingData,\n} from '../types/events';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type { MediaAttributes } from '../types/media-playlist';\nimport type { LoaderConfig, RetryConfig } from '../config';\n\nfunction mapContextToLevelType(\n context: PlaylistLoaderContext,\n): PlaylistLevelType {\n const { type } = context;\n\n switch (type) {\n case PlaylistContextType.AUDIO_TRACK:\n return PlaylistLevelType.AUDIO;\n case PlaylistContextType.SUBTITLE_TRACK:\n return PlaylistLevelType.SUBTITLE;\n default:\n return PlaylistLevelType.MAIN;\n }\n}\n\nfunction getResponseUrl(\n response: LoaderResponse,\n context: PlaylistLoaderContext,\n): string {\n let url = response.url;\n // responseURL not supported on some browsers (it is used to detect URL redirection)\n // data-uri mode also not supported (but no need to detect redirection)\n if (url === undefined || url.indexOf('data:') === 0) {\n // fallback to initial URL\n url = context.url;\n }\n return url;\n}\n\nclass PlaylistLoader implements NetworkComponentAPI {\n private readonly hls: Hls;\n private readonly loaders: {\n [key: string]: Loader<LoaderContext>;\n } = Object.create(null);\n private variableList: VariableMap | null = null;\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.registerListeners();\n }\n\n public startLoad(startPosition: number): void {}\n\n public stopLoad(): void {\n this.destroyInternalLoaders();\n }\n\n private registerListeners() {\n const { hls } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);\n hls.on(Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);\n }\n\n private unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(Events.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this);\n hls.off(Events.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this);\n }\n\n /**\n * Returns defaults or configured loader-type overloads (pLoader and loader config params)\n */\n private createInternalLoader(\n context: PlaylistLoaderContext,\n ): Loader<LoaderContext> {\n const config = this.hls.config;\n const PLoader = config.pLoader;\n const Loader = config.loader;\n const InternalLoader = PLoader || Loader;\n const loader = new InternalLoader(config) as Loader<PlaylistLoaderContext>;\n\n this.loaders[context.type] = loader;\n return loader;\n }\n\n private getInternalLoader(\n context: PlaylistLoaderContext,\n ): Loader<LoaderContext> | undefined {\n return this.loaders[context.type];\n }\n\n private resetInternalLoader(contextType): void {\n if (this.loaders[contextType]) {\n delete this.loaders[contextType];\n }\n }\n\n /**\n * Call `destroy` on all internal loader instances mapped (one per context type)\n */\n private destroyInternalLoaders(): void {\n for (const contextType in this.loaders) {\n const loader = this.loaders[contextType];\n if (loader) {\n loader.destroy();\n }\n\n this.resetInternalLoader(contextType);\n }\n }\n\n public destroy(): void {\n this.variableList = null;\n this.unregisterListeners();\n this.destroyInternalLoaders();\n }\n\n private onManifestLoading(\n event: Events.MANIFEST_LOADING,\n data: ManifestLoadingData,\n ) {\n const { url } = data;\n this.variableList = null;\n this.load({\n id: null,\n level: 0,\n responseType: 'text',\n type: PlaylistContextType.MANIFEST,\n url,\n deliveryDirectives: null,\n });\n }\n\n private onLevelLoading(event: Events.LEVEL_LOADING, data: LevelLoadingData) {\n const { id, level, pathwayId, url, deliveryDirectives } = data;\n this.load({\n id,\n level,\n pathwayId,\n responseType: 'text',\n type: PlaylistContextType.LEVEL,\n url,\n deliveryDirectives,\n });\n }\n\n private onAudioTrackLoading(\n event: Events.AUDIO_TRACK_LOADING,\n data: TrackLoadingData,\n ) {\n const { id, groupId, url, deliveryDirectives } = data;\n this.load({\n id,\n groupId,\n level: null,\n responseType: 'text',\n type: PlaylistContextType.AUDIO_TRACK,\n url,\n deliveryDirectives,\n });\n }\n\n private onSubtitleTrackLoading(\n event: Events.SUBTITLE_TRACK_LOADING,\n data: TrackLoadingData,\n ) {\n const { id, groupId, url, deliveryDirectives } = data;\n this.load({\n id,\n groupId,\n level: null,\n responseType: 'text',\n type: PlaylistContextType.SUBTITLE_TRACK,\n url,\n deliveryDirectives,\n });\n }\n\n private load(context: PlaylistLoaderContext): void {\n const config = this.hls.config;\n\n // logger.debug(`[playlist-loader]: Loading playlist of type ${context.type}, level: ${context.level}, id: ${context.id}`);\n\n // Check if a loader for this context already exists\n let loader = this.getInternalLoader(context);\n if (loader) {\n const loaderContext = loader.context as PlaylistLoaderContext;\n if (\n loaderContext &&\n loaderContext.url === context.url &&\n loaderContext.level === context.level\n ) {\n // same URL can't overlap\n logger.trace('[playlist-loader]: playlist request ongoing');\n return;\n }\n logger.log(\n `[playlist-loader]: aborting previous loader for type: ${context.type}`,\n );\n loader.abort();\n }\n\n // apply different configs for retries depending on\n // context (manifest, level, audio/subs playlist)\n let loadPolicy: LoaderConfig;\n if (context.type === PlaylistContextType.MANIFEST) {\n loadPolicy = config.manifestLoadPolicy.default;\n } else {\n loadPolicy = Object.assign({}, config.playlistLoadPolicy.default, {\n timeoutRetry: null,\n errorRetry: null,\n });\n }\n loader = this.createInternalLoader(context);\n\n // Override level/track timeout for LL-HLS requests\n // (the default of 10000ms is counter productive to blocking playlist reload requests)\n if (Number.isFinite(context.deliveryDirectives?.part)) {\n let levelDetails: LevelDetails | undefined;\n if (\n context.type === PlaylistContextType.LEVEL &&\n context.level !== null\n ) {\n levelDetails = this.hls.levels[context.level].details;\n } else if (\n context.type === PlaylistContextType.AUDIO_TRACK &&\n context.id !== null\n ) {\n levelDetails = this.hls.audioTracks[context.id].details;\n } else if (\n context.type === PlaylistContextType.SUBTITLE_TRACK &&\n context.id !== null\n ) {\n levelDetails = this.hls.subtitleTracks[context.id].details;\n }\n if (levelDetails) {\n const partTarget = levelDetails.partTarget;\n const targetDuration = levelDetails.targetduration;\n if (partTarget && targetDuration) {\n const maxLowLatencyPlaylistRefresh =\n Math.max(partTarget * 3, targetDuration * 0.8) * 1000;\n loadPolicy = Object.assign({}, loadPolicy, {\n maxTimeToFirstByteMs: Math.min(\n maxLowLatencyPlaylistRefresh,\n loadPolicy.maxTimeToFirstByteMs,\n ),\n maxLoadTimeMs: Math.min(\n maxLowLatencyPlaylistRefresh,\n loadPolicy.maxTimeToFirstByteMs,\n ),\n });\n }\n }\n }\n\n const legacyRetryCompatibility: RetryConfig | Record<string, void> =\n loadPolicy.errorRetry || loadPolicy.timeoutRetry || {};\n const loaderConfig: LoaderConfiguration = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: legacyRetryCompatibility.maxNumRetry || 0,\n retryDelay: legacyRetryCompatibility.retryDelayMs || 0,\n maxRetryDelay: legacyRetryCompatibility.maxRetryDelayMs || 0,\n };\n\n const loaderCallbacks: LoaderCallbacks<PlaylistLoaderContext> = {\n onSuccess: (response, stats, context, networkDetails) => {\n const loader = this.getInternalLoader(context) as\n | Loader<PlaylistLoaderContext>\n | undefined;\n this.resetInternalLoader(context.type);\n\n const string = response.data as string;\n\n // Validate if it is an M3U8 at all\n if (string.indexOf('#EXTM3U') !== 0) {\n this.handleManifestParsingError(\n response,\n context,\n new Error('no EXTM3U delimiter'),\n networkDetails || null,\n stats,\n );\n return;\n }\n\n stats.parsing.start = performance.now();\n if (M3U8Parser.isMediaPlaylist(string)) {\n this.handleTrackOrLevelPlaylist(\n response,\n stats,\n context,\n networkDetails || null,\n loader,\n );\n } else {\n this.handleMasterPlaylist(response, stats, context, networkDetails);\n }\n },\n onError: (response, context, networkDetails, stats) => {\n this.handleNetworkError(\n context,\n networkDetails,\n false,\n response,\n stats,\n );\n },\n onTimeout: (stats, context, networkDetails) => {\n this.handleNetworkError(\n context,\n networkDetails,\n true,\n undefined,\n stats,\n );\n },\n };\n\n // logger.debug(`[playlist-loader]: Calling internal loader delegate for URL: ${context.url}`);\n\n loader.load(context, loaderConfig, loaderCallbacks);\n }\n\n private handleMasterPlaylist(\n response: LoaderResponse,\n stats: LoaderStats,\n context: PlaylistLoaderContext,\n networkDetails: any,\n ): void {\n const hls = this.hls;\n const string = response.data as string;\n\n const url = getResponseUrl(response, context);\n\n const parsedResult = M3U8Parser.parseMasterPlaylist(string, url);\n\n if (parsedResult.playlistParsingError) {\n this.handleManifestParsingError(\n response,\n context,\n parsedResult.playlistParsingError,\n networkDetails,\n stats,\n );\n return;\n }\n\n const {\n contentSteering,\n levels,\n sessionData,\n sessionKeys,\n startTimeOffset,\n variableList,\n } = parsedResult;\n\n this.variableList = variableList;\n\n const {\n AUDIO: audioTracks = [],\n SUBTITLES: subtitles,\n 'CLOSED-CAPTIONS': captions,\n } = M3U8Parser.parseMasterPlaylistMedia(string, url, parsedResult);\n\n if (audioTracks.length) {\n // check if we have found an audio track embedded in main playlist (audio track without URI attribute)\n const embeddedAudioFound: boolean = audioTracks.some(\n (audioTrack) => !audioTrack.url,\n );\n\n // if no embedded audio track defined, but audio codec signaled in quality level,\n // we need to signal this main audio track this could happen with playlists with\n // alt audio rendition in which quality levels (main)\n // contains both audio+video. but with mixed audio track not signaled\n if (\n !embeddedAudioFound &&\n levels[0].audioCodec &&\n !levels[0].attrs.AUDIO\n ) {\n logger.log(\n '[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one',\n );\n audioTracks.unshift({\n type: 'main',\n name: 'main',\n groupId: 'main',\n default: false,\n autoselect: false,\n forced: false,\n id: -1,\n attrs: new AttrList({}) as MediaAttributes,\n bitrate: 0,\n url: '',\n });\n }\n }\n\n hls.trigger(Events.MANIFEST_LOADED, {\n levels,\n audioTracks,\n subtitles,\n captions,\n contentSteering,\n url,\n stats,\n networkDetails,\n sessionData,\n sessionKeys,\n startTimeOffset,\n variableList,\n });\n }\n\n private handleTrackOrLevelPlaylist(\n response: LoaderResponse,\n stats: LoaderStats,\n context: PlaylistLoaderContext,\n networkDetails: any,\n loader: Loader<PlaylistLoaderContext> | undefined,\n ): void {\n const hls = this.hls;\n const { id, level, type } = context;\n\n const url = getResponseUrl(response, context);\n const levelUrlId = 0;\n const levelId = Number.isFinite(level as number)\n ? (level as number)\n : Number.isFinite(id as number)\n ? (id as number)\n : 0;\n const levelType = mapContextToLevelType(context);\n const levelDetails: LevelDetails = M3U8Parser.parseLevelPlaylist(\n response.data as string,\n url,\n levelId,\n levelType,\n levelUrlId,\n this.variableList,\n );\n\n // We have done our first request (Manifest-type) and receive\n // not a master playlist but a chunk-list (track/level)\n // We fire the manifest-loaded event anyway with the parsed level-details\n // by creating a single-level structure for it.\n if (type === PlaylistContextType.MANIFEST) {\n const singleLevel: LevelParsed = {\n attrs: new AttrList({}),\n bitrate: 0,\n details: levelDetails,\n name: '',\n url,\n };\n\n hls.trigger(Events.MANIFEST_LOADED, {\n levels: [singleLevel],\n audioTracks: [],\n url,\n stats,\n networkDetails,\n sessionData: null,\n sessionKeys: null,\n contentSteering: null,\n startTimeOffset: null,\n variableList: null,\n });\n }\n\n // save parsing time\n stats.parsing.end = performance.now();\n\n // extend the context with the new levelDetails property\n context.levelDetails = levelDetails;\n\n this.handlePlaylistLoaded(\n levelDetails,\n response,\n stats,\n context,\n networkDetails,\n loader,\n );\n }\n\n private handleManifestParsingError(\n response: LoaderResponse,\n context: PlaylistLoaderContext,\n error: Error,\n networkDetails: any,\n stats: LoaderStats,\n ): void {\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.MANIFEST_PARSING_ERROR,\n fatal: context.type === PlaylistContextType.MANIFEST,\n url: response.url,\n err: error,\n error,\n reason: error.message,\n response,\n context,\n networkDetails,\n stats,\n });\n }\n\n private handleNetworkError(\n context: PlaylistLoaderContext,\n networkDetails: any,\n timeout = false,\n response: { code: number; text: string } | undefined,\n stats: LoaderStats,\n ): void {\n let message = `A network ${\n timeout\n ? 'timeout'\n : 'error' + (response ? ' (status ' + response.code + ')' : '')\n } occurred while loading ${context.type}`;\n if (context.type === PlaylistContextType.LEVEL) {\n message += `: ${context.level} id: ${context.id}`;\n } else if (\n context.type === PlaylistContextType.AUDIO_TRACK ||\n context.type === PlaylistContextType.SUBTITLE_TRACK\n ) {\n message += ` id: ${context.id} group-id: \"${context.groupId}\"`;\n }\n const error = new Error(message);\n logger.warn(`[playlist-loader]: ${message}`);\n let details = ErrorDetails.UNKNOWN;\n let fatal = false;\n\n const loader = this.getInternalLoader(context);\n\n switch (context.type) {\n case PlaylistContextType.MANIFEST:\n details = timeout\n ? ErrorDetails.MANIFEST_LOAD_TIMEOUT\n : ErrorDetails.MANIFEST_LOAD_ERROR;\n fatal = true;\n break;\n case PlaylistContextType.LEVEL:\n details = timeout\n ? ErrorDetails.LEVEL_LOAD_TIMEOUT\n : ErrorDetails.LEVEL_LOAD_ERROR;\n fatal = false;\n break;\n case PlaylistContextType.AUDIO_TRACK:\n details = timeout\n ? ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT\n : ErrorDetails.AUDIO_TRACK_LOAD_ERROR;\n fatal = false;\n break;\n case PlaylistContextType.SUBTITLE_TRACK:\n details = timeout\n ? ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT\n : ErrorDetails.SUBTITLE_LOAD_ERROR;\n fatal = false;\n break;\n }\n\n if (loader) {\n this.resetInternalLoader(context.type);\n }\n\n const errorData: ErrorData = {\n type: ErrorTypes.NETWORK_ERROR,\n details,\n fatal,\n url: context.url,\n loader,\n context,\n error,\n networkDetails,\n stats,\n };\n\n if (response) {\n const url = networkDetails?.url || context.url;\n errorData.response = { url, data: undefined as any, ...response };\n }\n\n this.hls.trigger(Events.ERROR, errorData);\n }\n\n private handlePlaylistLoaded(\n levelDetails: LevelDetails,\n response: LoaderResponse,\n stats: LoaderStats,\n context: PlaylistLoaderContext,\n networkDetails: any,\n loader: Loader<PlaylistLoaderContext> | undefined,\n ): void {\n const hls = this.hls;\n const { type, level, id, groupId, deliveryDirectives } = context;\n const url = getResponseUrl(response, context);\n const parent = mapContextToLevelType(context);\n const levelIndex =\n typeof context.level === 'number' && parent === PlaylistLevelType.MAIN\n ? (level as number)\n : undefined;\n if (!levelDetails.fragments.length) {\n const error = new Error('No Segments found in Playlist');\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.LEVEL_EMPTY_ERROR,\n fatal: false,\n url,\n error,\n reason: error.message,\n response,\n context,\n level: levelIndex,\n parent,\n networkDetails,\n stats,\n });\n return;\n }\n if (!levelDetails.targetduration) {\n levelDetails.playlistParsingError = new Error('Missing Target Duration');\n }\n const error = levelDetails.playlistParsingError;\n if (error) {\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.LEVEL_PARSING_ERROR,\n fatal: false,\n url,\n error,\n reason: error.message,\n response,\n context,\n level: levelIndex,\n parent,\n networkDetails,\n stats,\n });\n return;\n }\n\n if (levelDetails.live && loader) {\n if (loader.getCacheAge) {\n levelDetails.ageHeader = loader.getCacheAge() || 0;\n }\n if (!loader.getCacheAge || isNaN(levelDetails.ageHeader)) {\n levelDetails.ageHeader = 0;\n }\n }\n\n switch (type) {\n case PlaylistContextType.MANIFEST:\n case PlaylistContextType.LEVEL:\n hls.trigger(Events.LEVEL_LOADED, {\n details: levelDetails,\n level: levelIndex || 0,\n id: id || 0,\n stats,\n networkDetails,\n deliveryDirectives,\n });\n break;\n case PlaylistContextType.AUDIO_TRACK:\n hls.trigger(Events.AUDIO_TRACK_LOADED, {\n details: levelDetails,\n id: id || 0,\n groupId: groupId || '',\n stats,\n networkDetails,\n deliveryDirectives,\n });\n break;\n case PlaylistContextType.SUBTITLE_TRACK:\n hls.trigger(Events.SUBTITLE_TRACK_LOADED, {\n details: levelDetails,\n id: id || 0,\n groupId: groupId || '',\n stats,\n networkDetails,\n deliveryDirectives,\n });\n break;\n }\n }\n}\n\nexport default PlaylistLoader;\n","import { logger } from './logger';\n\nexport function sendAddTrackEvent(track: TextTrack, videoEl: HTMLMediaElement) {\n let event: Event;\n try {\n event = new Event('addtrack');\n } catch (err) {\n // for IE11\n event = document.createEvent('Event');\n event.initEvent('addtrack', false, false);\n }\n (event as any).track = track;\n videoEl.dispatchEvent(event);\n}\n\nexport function addCueToTrack(track: TextTrack, cue: VTTCue) {\n // Sometimes there are cue overlaps on segmented vtts so the same\n // cue can appear more than once in different vtt files.\n // This avoid showing duplicated cues with same timecode and text.\n const mode = track.mode;\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n if (track.cues && !track.cues.getCueById(cue.id)) {\n try {\n track.addCue(cue);\n if (!track.cues.getCueById(cue.id)) {\n throw new Error(`addCue is failed for: ${cue}`);\n }\n } catch (err) {\n logger.debug(`[texttrack-utils]: ${err}`);\n try {\n const textTrackCue = new (self.TextTrackCue as any)(\n cue.startTime,\n cue.endTime,\n cue.text,\n );\n textTrackCue.id = cue.id;\n track.addCue(textTrackCue);\n } catch (err2) {\n logger.debug(\n `[texttrack-utils]: Legacy TextTrackCue fallback failed: ${err2}`,\n );\n }\n }\n }\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\n\nexport function clearCurrentCues(track: TextTrack) {\n // When track.mode is disabled, track.cues will be null.\n // To guarantee the removal of cues, we need to temporarily\n // change the mode to hidden\n const mode = track.mode;\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n if (track.cues) {\n for (let i = track.cues.length; i--; ) {\n track.removeCue(track.cues[i]);\n }\n }\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\n\nexport function removeCuesInRange(\n track: TextTrack,\n start: number,\n end: number,\n predicate?: (cue: TextTrackCue) => boolean,\n) {\n const mode = track.mode;\n if (mode === 'disabled') {\n track.mode = 'hidden';\n }\n\n if (track.cues && track.cues.length > 0) {\n const cues = getCuesInRange(track.cues, start, end);\n for (let i = 0; i < cues.length; i++) {\n if (!predicate || predicate(cues[i])) {\n track.removeCue(cues[i]);\n }\n }\n }\n if (mode === 'disabled') {\n track.mode = mode;\n }\n}\n\n// Find first cue starting after given time.\n// Modified version of binary search O(log(n)).\nfunction getFirstCueIndexAfterTime(\n cues: TextTrackCueList | TextTrackCue[],\n time: number,\n): number {\n // If first cue starts after time, start there\n if (time < cues[0].startTime) {\n return 0;\n }\n // If the last cue ends before time there is no overlap\n const len = cues.length - 1;\n if (time > cues[len].endTime) {\n return -1;\n }\n\n let left = 0;\n let right = len;\n\n while (left <= right) {\n const mid = Math.floor((right + left) / 2);\n\n if (time < cues[mid].startTime) {\n right = mid - 1;\n } else if (time > cues[mid].startTime && left < len) {\n left = mid + 1;\n } else {\n // If it's not lower or higher, it must be equal.\n return mid;\n }\n }\n // At this point, left and right have swapped.\n // No direct match was found, left or right element must be the closest. Check which one has the smallest diff.\n return cues[left].startTime - time < time - cues[right].startTime\n ? left\n : right;\n}\n\nexport function getCuesInRange(\n cues: TextTrackCueList | TextTrackCue[],\n start: number,\n end: number,\n): TextTrackCue[] {\n const cuesFound: TextTrackCue[] = [];\n const firstCueInRange = getFirstCueIndexAfterTime(cues, start);\n if (firstCueInRange > -1) {\n for (let i = firstCueInRange, len = cues.length; i < len; i++) {\n const cue = cues[i];\n if (cue.startTime >= start && cue.endTime <= end) {\n cuesFound.push(cue);\n } else if (cue.startTime > end) {\n return cuesFound;\n }\n }\n }\n return cuesFound;\n}\n\nexport function filterSubtitleTracks(\n textTrackList: TextTrackList,\n): TextTrack[] {\n const tracks: TextTrack[] = [];\n for (let i = 0; i < textTrackList.length; i++) {\n const track = textTrackList[i];\n // Edge adds a track without a label; we don't want to use it\n if (\n (track.kind === 'subtitles' || track.kind === 'captions') &&\n track.label\n ) {\n tracks.push(textTrackList[i]);\n }\n }\n return tracks;\n}\n","import type { RationalTimestamp } from '../utils/timescale-conversion';\n\nexport interface Demuxer {\n demux(\n data: Uint8Array,\n timeOffset: number,\n isSampleAes?: boolean,\n flush?: boolean,\n ): DemuxerResult;\n demuxSampleAes(\n data: Uint8Array,\n keyData: KeyData,\n timeOffset: number,\n ): Promise<DemuxerResult>;\n flush(timeOffset?: number): DemuxerResult | Promise<DemuxerResult>;\n destroy(): void;\n resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n );\n resetTimeStamp(defaultInitPTS?: RationalTimestamp | null): void;\n resetContiguity(): void;\n}\n\nexport interface DemuxerResult {\n audioTrack: DemuxedAudioTrack;\n videoTrack: DemuxedVideoTrackBase;\n id3Track: DemuxedMetadataTrack;\n textTrack: DemuxedUserdataTrack;\n}\n\nexport interface DemuxedTrack {\n type: string;\n id: number;\n pid: number;\n inputTimeScale: number;\n sequenceNumber: number;\n samples:\n | AudioSample[]\n | VideoSample[]\n | MetadataSample[]\n | UserdataSample[]\n | Uint8Array;\n timescale?: number;\n container?: string;\n dropped: number;\n duration?: number;\n pesData?: ElementaryStreamData | null;\n codec?: string;\n}\n\nexport interface PassthroughTrack extends DemuxedTrack {\n sampleDuration: number;\n samples: Uint8Array;\n timescale: number;\n duration: number;\n codec: string;\n}\nexport interface DemuxedAudioTrack extends DemuxedTrack {\n config?: number[] | Uint8Array;\n samplerate?: number;\n segmentCodec?: string;\n channelCount?: number;\n manifestCodec?: string;\n samples: AudioSample[];\n}\n\nexport interface DemuxedVideoTrackBase extends DemuxedTrack {\n width?: number;\n height?: number;\n pixelRatio?: [number, number];\n audFound?: boolean;\n pps?: Uint8Array[];\n sps?: Uint8Array[];\n naluState?: number;\n segmentCodec?: string;\n manifestCodec?: string;\n samples: VideoSample[] | Uint8Array;\n}\n\nexport interface DemuxedVideoTrack extends DemuxedVideoTrackBase {\n samples: VideoSample[];\n}\n\nexport interface DemuxedMetadataTrack extends DemuxedTrack {\n samples: MetadataSample[];\n}\n\nexport interface DemuxedUserdataTrack extends DemuxedTrack {\n samples: UserdataSample[];\n}\n\nexport const enum MetadataSchema {\n audioId3 = 'org.id3',\n dateRange = 'com.apple.quicktime.HLS',\n emsg = 'https://aomedia.org/emsg/ID3',\n}\nexport interface MetadataSample {\n pts: number;\n dts: number;\n duration: number;\n len?: number;\n data: Uint8Array;\n type: MetadataSchema;\n}\n\nexport interface UserdataSample {\n pts: number;\n bytes?: Uint8Array;\n type?: number;\n payloadType?: number;\n uuid?: string;\n userData?: string;\n userDataBytes?: Uint8Array;\n}\n\nexport interface VideoSample {\n dts: number;\n pts: number;\n key: boolean;\n frame: boolean;\n units: VideoSampleUnit[];\n debug: string;\n length: number;\n}\n\nexport interface VideoSampleUnit {\n data: Uint8Array;\n type: number;\n state?: number;\n}\n\nexport type AudioSample = {\n unit: Uint8Array;\n pts: number;\n};\n\nexport type AudioFrame = {\n sample: AudioSample;\n length: number;\n missing: number;\n};\n\nexport interface ElementaryStreamData {\n data: Uint8Array[];\n size: number;\n}\n\nexport interface KeyData {\n method: string;\n key: Uint8Array;\n iv: Uint8Array;\n}\n","import { Events } from '../events';\nimport {\n sendAddTrackEvent,\n clearCurrentCues,\n removeCuesInRange,\n} from '../utils/texttrack-utils';\nimport * as ID3 from '../demux/id3';\nimport {\n DateRange,\n isDateRangeCueAttribute,\n isSCTE35Attribute,\n} from '../loader/date-range';\nimport { MetadataSchema } from '../types/demuxer';\nimport type {\n BufferFlushingData,\n FragParsingMetadataData,\n LevelUpdatedData,\n MediaAttachedData,\n} from '../types/events';\nimport type { ComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\n\ndeclare global {\n interface Window {\n WebKitDataCue: VTTCue | void;\n }\n}\n\nconst MIN_CUE_DURATION = 0.25;\n\nfunction getCueClass(): typeof VTTCue | typeof TextTrackCue | undefined {\n if (typeof self === 'undefined') return undefined;\n return self.VTTCue || self.TextTrackCue;\n}\n\nfunction createCueWithDataFields(\n Cue: typeof VTTCue | typeof TextTrackCue,\n startTime: number,\n endTime: number,\n data: Object,\n type?: string,\n): VTTCue | TextTrackCue | undefined {\n let cue = new Cue(startTime, endTime, '');\n try {\n (cue as any).value = data;\n if (type) {\n (cue as any).type = type;\n }\n } catch (e) {\n cue = new Cue(\n startTime,\n endTime,\n JSON.stringify(type ? { type, ...data } : data),\n );\n }\n return cue;\n}\n\n// VTTCue latest draft allows an infinite duration, fallback\n// to MAX_VALUE if necessary\nconst MAX_CUE_ENDTIME = (() => {\n const Cue = getCueClass();\n try {\n Cue && new Cue(0, Number.POSITIVE_INFINITY, '');\n } catch (e) {\n return Number.MAX_VALUE;\n }\n return Number.POSITIVE_INFINITY;\n})();\n\nfunction dateRangeDateToTimelineSeconds(date: Date, offset: number): number {\n return date.getTime() / 1000 - offset;\n}\n\nfunction hexToArrayBuffer(str): ArrayBuffer {\n return Uint8Array.from(\n str\n .replace(/^0x/, '')\n .replace(/([\\da-fA-F]{2}) ?/g, '0x$1 ')\n .replace(/ +$/, '')\n .split(' '),\n ).buffer;\n}\nclass ID3TrackController implements ComponentAPI {\n private hls: Hls;\n private id3Track: TextTrack | null = null;\n private media: HTMLMediaElement | null = null;\n private dateRangeCuesAppended: Record<\n string,\n {\n cues: Record<string, VTTCue | TextTrackCue>;\n dateRange: DateRange;\n durationKnown: boolean;\n }\n > = {};\n\n constructor(hls) {\n this.hls = hls;\n this._registerListeners();\n }\n\n destroy() {\n this._unregisterListeners();\n this.id3Track = null;\n this.media = null;\n this.dateRangeCuesAppended = {};\n // @ts-ignore\n this.hls = null;\n }\n\n private _registerListeners() {\n const { hls } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n\n private _unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n\n // Add ID3 metatadata text track.\n protected onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ): void {\n this.media = data.media;\n }\n\n protected onMediaDetaching(): void {\n if (!this.id3Track) {\n return;\n }\n clearCurrentCues(this.id3Track);\n this.id3Track = null;\n this.media = null;\n this.dateRangeCuesAppended = {};\n }\n\n private onManifestLoading() {\n this.dateRangeCuesAppended = {};\n }\n\n createTrack(media: HTMLMediaElement): TextTrack {\n const track = this.getID3Track(media.textTracks) as TextTrack;\n track.mode = 'hidden';\n return track;\n }\n\n getID3Track(textTracks: TextTrackList): TextTrack | void {\n if (!this.media) {\n return;\n }\n for (let i = 0; i < textTracks.length; i++) {\n const textTrack: TextTrack = textTracks[i];\n if (textTrack.kind === 'metadata' && textTrack.label === 'id3') {\n // send 'addtrack' when reusing the textTrack for metadata,\n // same as what we do for captions\n sendAddTrackEvent(textTrack, this.media);\n\n return textTrack;\n }\n }\n return this.media.addTextTrack('metadata', 'id3');\n }\n\n onFragParsingMetadata(\n event: Events.FRAG_PARSING_METADATA,\n data: FragParsingMetadataData,\n ) {\n if (!this.media) {\n return;\n }\n\n const {\n hls: {\n config: { enableEmsgMetadataCues, enableID3MetadataCues },\n },\n } = this;\n if (!enableEmsgMetadataCues && !enableID3MetadataCues) {\n return;\n }\n\n const { samples } = data;\n\n // create track dynamically\n if (!this.id3Track) {\n this.id3Track = this.createTrack(this.media);\n }\n\n const Cue = getCueClass();\n if (!Cue) {\n return;\n }\n\n for (let i = 0; i < samples.length; i++) {\n const type = samples[i].type;\n if (\n (type === MetadataSchema.emsg && !enableEmsgMetadataCues) ||\n !enableID3MetadataCues\n ) {\n continue;\n }\n\n const frames = ID3.getID3Frames(samples[i].data);\n if (frames) {\n const startTime = samples[i].pts;\n let endTime: number = startTime + samples[i].duration;\n\n if (endTime > MAX_CUE_ENDTIME) {\n endTime = MAX_CUE_ENDTIME;\n }\n\n const timeDiff = endTime - startTime;\n if (timeDiff <= 0) {\n endTime = startTime + MIN_CUE_DURATION;\n }\n\n for (let j = 0; j < frames.length; j++) {\n const frame = frames[j];\n // Safari doesn't put the timestamp frame in the TextTrack\n if (!ID3.isTimeStampFrame(frame)) {\n // add a bounds to any unbounded cues\n this.updateId3CueEnds(startTime, type);\n const cue = createCueWithDataFields(\n Cue,\n startTime,\n endTime,\n frame,\n type,\n );\n if (cue) {\n this.id3Track.addCue(cue);\n }\n }\n }\n }\n }\n }\n\n updateId3CueEnds(startTime: number, type: MetadataSchema) {\n const cues = this.id3Track?.cues;\n if (cues) {\n for (let i = cues.length; i--; ) {\n const cue = cues[i] as any;\n if (\n cue.type === type &&\n cue.startTime < startTime &&\n cue.endTime === MAX_CUE_ENDTIME\n ) {\n cue.endTime = startTime;\n }\n }\n }\n }\n\n onBufferFlushing(\n event: Events.BUFFER_FLUSHING,\n { startOffset, endOffset, type }: BufferFlushingData,\n ) {\n const { id3Track, hls } = this;\n if (!hls) {\n return;\n }\n\n const {\n config: { enableEmsgMetadataCues, enableID3MetadataCues },\n } = hls;\n if (id3Track && (enableEmsgMetadataCues || enableID3MetadataCues)) {\n let predicate;\n\n if (type === 'audio') {\n predicate = (cue) =>\n (cue as any).type === MetadataSchema.audioId3 &&\n enableID3MetadataCues;\n } else if (type === 'video') {\n predicate = (cue) =>\n (cue as any).type === MetadataSchema.emsg && enableEmsgMetadataCues;\n } else {\n predicate = (cue) =>\n ((cue as any).type === MetadataSchema.audioId3 &&\n enableID3MetadataCues) ||\n ((cue as any).type === MetadataSchema.emsg && enableEmsgMetadataCues);\n }\n removeCuesInRange(id3Track, startOffset, endOffset, predicate);\n }\n }\n\n onLevelUpdated(event: Events.LEVEL_UPDATED, { details }: LevelUpdatedData) {\n if (\n !this.media ||\n !details.hasProgramDateTime ||\n !this.hls.config.enableDateRangeMetadataCues\n ) {\n return;\n }\n const { dateRangeCuesAppended, id3Track } = this;\n const { dateRanges } = details;\n const ids = Object.keys(dateRanges);\n // Remove cues from track not found in details.dateRanges\n if (id3Track) {\n const idsToRemove = Object.keys(dateRangeCuesAppended).filter(\n (id) => !ids.includes(id),\n );\n for (let i = idsToRemove.length; i--; ) {\n const id = idsToRemove[i];\n Object.keys(dateRangeCuesAppended[id].cues).forEach((key) => {\n id3Track.removeCue(dateRangeCuesAppended[id].cues[key]);\n });\n delete dateRangeCuesAppended[id];\n }\n }\n // Exit if the playlist does not have Date Ranges or does not have Program Date Time\n const lastFragment = details.fragments[details.fragments.length - 1];\n if (ids.length === 0 || !Number.isFinite(lastFragment?.programDateTime)) {\n return;\n }\n\n if (!this.id3Track) {\n this.id3Track = this.createTrack(this.media);\n }\n\n const dateTimeOffset =\n (lastFragment.programDateTime as number) / 1000 - lastFragment.start;\n const Cue = getCueClass();\n\n for (let i = 0; i < ids.length; i++) {\n const id = ids[i];\n const dateRange = dateRanges[id];\n const startTime = dateRangeDateToTimelineSeconds(\n dateRange.startDate,\n dateTimeOffset,\n );\n\n // Process DateRanges to determine end-time (known DURATION, END-DATE, or END-ON-NEXT)\n const appendedDateRangeCues = dateRangeCuesAppended[id];\n const cues = appendedDateRangeCues?.cues || {};\n let durationKnown = appendedDateRangeCues?.durationKnown || false;\n let endTime = MAX_CUE_ENDTIME;\n const endDate = dateRange.endDate;\n if (endDate) {\n endTime = dateRangeDateToTimelineSeconds(endDate, dateTimeOffset);\n durationKnown = true;\n } else if (dateRange.endOnNext && !durationKnown) {\n const nextDateRangeWithSameClass = ids.reduce(\n (candidateDateRange: DateRange | null, id) => {\n if (id !== dateRange.id) {\n const otherDateRange = dateRanges[id];\n if (\n otherDateRange.class === dateRange.class &&\n otherDateRange.startDate > dateRange.startDate &&\n (!candidateDateRange ||\n dateRange.startDate < candidateDateRange.startDate)\n ) {\n return otherDateRange;\n }\n }\n return candidateDateRange;\n },\n null,\n );\n if (nextDateRangeWithSameClass) {\n endTime = dateRangeDateToTimelineSeconds(\n nextDateRangeWithSameClass.startDate,\n dateTimeOffset,\n );\n durationKnown = true;\n }\n }\n\n // Create TextTrack Cues for each MetadataGroup Item (select DateRange attribute)\n // This is to emulate Safari HLS playback handling of DateRange tags\n const attributes = Object.keys(dateRange.attr);\n for (let j = 0; j < attributes.length; j++) {\n const key = attributes[j];\n if (!isDateRangeCueAttribute(key)) {\n continue;\n }\n const cue = cues[key];\n if (cue) {\n if (durationKnown && !appendedDateRangeCues.durationKnown) {\n cue.endTime = endTime;\n }\n } else if (Cue) {\n let data = dateRange.attr[key];\n if (isSCTE35Attribute(key)) {\n data = hexToArrayBuffer(data);\n }\n const cue = createCueWithDataFields(\n Cue,\n startTime,\n endTime,\n { key, data },\n MetadataSchema.dateRange,\n );\n if (cue) {\n cue.id = id;\n this.id3Track.addCue(cue);\n cues[key] = cue;\n }\n }\n }\n\n // Keep track of processed DateRanges by ID for updating cues with new DateRange tag attributes\n dateRangeCuesAppended[id] = {\n cues,\n dateRange,\n durationKnown,\n };\n }\n }\n}\n\nexport default ID3TrackController;\n","import { LevelDetails } from '../loader/level-details';\nimport { ErrorDetails } from '../errors';\nimport { Events } from '../events';\nimport type {\n ErrorData,\n LevelUpdatedData,\n MediaAttachingData,\n} from '../types/events';\nimport { logger } from '../utils/logger';\nimport type { ComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\nimport type { HlsConfig } from '../config';\n\nexport default class LatencyController implements ComponentAPI {\n private hls: Hls;\n private readonly config: HlsConfig;\n private media: HTMLMediaElement | null = null;\n private levelDetails: LevelDetails | null = null;\n private currentTime: number = 0;\n private stallCount: number = 0;\n private _latency: number | null = null;\n private timeupdateHandler = () => this.timeupdate();\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.config = hls.config;\n this.registerListeners();\n }\n\n get latency(): number {\n return this._latency || 0;\n }\n\n get maxLatency(): number {\n const { config, levelDetails } = this;\n if (config.liveMaxLatencyDuration !== undefined) {\n return config.liveMaxLatencyDuration;\n }\n return levelDetails\n ? config.liveMaxLatencyDurationCount * levelDetails.targetduration\n : 0;\n }\n\n get targetLatency(): number | null {\n const { levelDetails } = this;\n if (levelDetails === null) {\n return null;\n }\n const { holdBack, partHoldBack, targetduration } = levelDetails;\n const { liveSyncDuration, liveSyncDurationCount, lowLatencyMode } =\n this.config;\n const userConfig = this.hls.userConfig;\n let targetLatency = lowLatencyMode ? partHoldBack || holdBack : holdBack;\n if (\n userConfig.liveSyncDuration ||\n userConfig.liveSyncDurationCount ||\n targetLatency === 0\n ) {\n targetLatency =\n liveSyncDuration !== undefined\n ? liveSyncDuration\n : liveSyncDurationCount * targetduration;\n }\n const maxLiveSyncOnStallIncrease = targetduration;\n const liveSyncOnStallIncrease = 1.0;\n return (\n targetLatency +\n Math.min(\n this.stallCount * liveSyncOnStallIncrease,\n maxLiveSyncOnStallIncrease,\n )\n );\n }\n\n get liveSyncPosition(): number | null {\n const liveEdge = this.estimateLiveEdge();\n const targetLatency = this.targetLatency;\n const levelDetails = this.levelDetails;\n if (liveEdge === null || targetLatency === null || levelDetails === null) {\n return null;\n }\n const edge = levelDetails.edge;\n const syncPosition = liveEdge - targetLatency - this.edgeStalled;\n const min = edge - levelDetails.totalduration;\n const max =\n edge -\n ((this.config.lowLatencyMode && levelDetails.partTarget) ||\n levelDetails.targetduration);\n return Math.min(Math.max(min, syncPosition), max);\n }\n\n get drift(): number {\n const { levelDetails } = this;\n if (levelDetails === null) {\n return 1;\n }\n return levelDetails.drift;\n }\n\n get edgeStalled(): number {\n const { levelDetails } = this;\n if (levelDetails === null) {\n return 0;\n }\n const maxLevelUpdateAge =\n ((this.config.lowLatencyMode && levelDetails.partTarget) ||\n levelDetails.targetduration) * 3;\n return Math.max(levelDetails.age - maxLevelUpdateAge, 0);\n }\n\n private get forwardBufferLength(): number {\n const { media, levelDetails } = this;\n if (!media || !levelDetails) {\n return 0;\n }\n const bufferedRanges = media.buffered.length;\n return (\n (bufferedRanges\n ? media.buffered.end(bufferedRanges - 1)\n : levelDetails.edge) - this.currentTime\n );\n }\n\n public destroy(): void {\n this.unregisterListeners();\n this.onMediaDetaching();\n this.levelDetails = null;\n // @ts-ignore\n this.hls = this.timeupdateHandler = null;\n }\n\n private registerListeners() {\n this.hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n this.hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n this.hls.on(Events.ERROR, this.onError, this);\n }\n\n private unregisterListeners() {\n this.hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n this.hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n this.hls.off(Events.ERROR, this.onError, this);\n }\n\n private onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachingData,\n ) {\n this.media = data.media;\n this.media.addEventListener('timeupdate', this.timeupdateHandler);\n }\n\n private onMediaDetaching() {\n if (this.media) {\n this.media.removeEventListener('timeupdate', this.timeupdateHandler);\n this.media = null;\n }\n }\n\n private onManifestLoading() {\n this.levelDetails = null;\n this._latency = null;\n this.stallCount = 0;\n }\n\n private onLevelUpdated(\n event: Events.LEVEL_UPDATED,\n { details }: LevelUpdatedData,\n ) {\n this.levelDetails = details;\n if (details.advanced) {\n this.timeupdate();\n }\n if (!details.live && this.media) {\n this.media.removeEventListener('timeupdate', this.timeupdateHandler);\n }\n }\n\n private onError(event: Events.ERROR, data: ErrorData) {\n if (data.details !== ErrorDetails.BUFFER_STALLED_ERROR) {\n return;\n }\n this.stallCount++;\n if (this.levelDetails?.live) {\n logger.warn(\n '[playback-rate-controller]: Stall detected, adjusting target latency',\n );\n }\n }\n\n private timeupdate() {\n const { media, levelDetails } = this;\n if (!media || !levelDetails) {\n return;\n }\n this.currentTime = media.currentTime;\n\n const latency = this.computeLatency();\n if (latency === null) {\n return;\n }\n this._latency = latency;\n\n // Adapt playbackRate to meet target latency in low-latency mode\n const { lowLatencyMode, maxLiveSyncPlaybackRate } = this.config;\n if (\n !lowLatencyMode ||\n maxLiveSyncPlaybackRate === 1 ||\n !levelDetails.live\n ) {\n return;\n }\n const targetLatency = this.targetLatency;\n if (targetLatency === null) {\n return;\n }\n const distanceFromTarget = latency - targetLatency;\n // Only adjust playbackRate when within one target duration of targetLatency\n // and more than one second from under-buffering.\n // Playback further than one target duration from target can be considered DVR playback.\n const liveMinLatencyDuration = Math.min(\n this.maxLatency,\n targetLatency + levelDetails.targetduration,\n );\n const inLiveRange = distanceFromTarget < liveMinLatencyDuration;\n\n if (\n inLiveRange &&\n distanceFromTarget > 0.05 &&\n this.forwardBufferLength > 1\n ) {\n const max = Math.min(2, Math.max(1.0, maxLiveSyncPlaybackRate));\n const rate =\n Math.round(\n (2 / (1 + Math.exp(-0.75 * distanceFromTarget - this.edgeStalled))) *\n 20,\n ) / 20;\n media.playbackRate = Math.min(max, Math.max(1, rate));\n } else if (media.playbackRate !== 1 && media.playbackRate !== 0) {\n media.playbackRate = 1;\n }\n }\n\n private estimateLiveEdge(): number | null {\n const { levelDetails } = this;\n if (levelDetails === null) {\n return null;\n }\n return levelDetails.edge + levelDetails.age;\n }\n\n private computeLatency(): number | null {\n const liveEdge = this.estimateLiveEdge();\n if (liveEdge === null) {\n return null;\n }\n return liveEdge - this.currentTime;\n }\n}\n","import type { MediaPlaylist } from './media-playlist';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { AttrList } from '../utils/attr-list';\nimport type { MediaDecodingInfo } from '../utils/mediacapabilities-helper';\n\nexport interface LevelParsed {\n attrs: LevelAttributes;\n audioCodec?: string;\n bitrate: number;\n details?: LevelDetails;\n height?: number;\n id?: number;\n name: string;\n textCodec?: string;\n unknownCodecs?: string[];\n url: string;\n videoCodec?: string;\n width?: number;\n}\n\nexport interface LevelAttributes extends AttrList {\n 'ALLOWED-CPC'?: string;\n AUDIO?: string;\n 'AVERAGE-BANDWIDTH'?: string;\n BANDWIDTH?: string;\n 'CLOSED-CAPTIONS'?: string;\n CODECS?: string;\n 'FRAME-RATE'?: string;\n 'HDCP-LEVEL'?: 'TYPE-0' | 'TYPE-1' | 'NONE';\n 'PATHWAY-ID'?: string;\n RESOLUTION?: string;\n SCORE?: string;\n 'STABLE-VARIANT-ID'?: string;\n SUBTITLES?: string;\n 'SUPPLEMENTAL-CODECS'?: string;\n VIDEO?: string;\n 'VIDEO-RANGE'?: VideoRange;\n}\n\nexport const HdcpLevels = ['NONE', 'TYPE-0', 'TYPE-1', null] as const;\nexport type HdcpLevel = (typeof HdcpLevels)[number];\n\nexport function isHdcpLevel(value: any): value is HdcpLevel {\n return HdcpLevels.indexOf(value) > -1;\n}\n\nexport const VideoRangeValues = ['SDR', 'PQ', 'HLG'] as const;\nexport type VideoRange = (typeof VideoRangeValues)[number];\n\nexport function isVideoRange(value: any): value is VideoRange {\n return !!value && VideoRangeValues.indexOf(value) > -1;\n}\n\nexport type VariableMap = Record<string, string>;\n\nexport const enum HlsSkip {\n No = '',\n Yes = 'YES',\n v2 = 'v2',\n}\n\nexport function getSkipValue(details: LevelDetails): HlsSkip {\n const { canSkipUntil, canSkipDateRanges, age } = details;\n // A Client SHOULD NOT request a Playlist Delta Update unless it already\n // has a version of the Playlist that is no older than one-half of the Skip Boundary.\n // @see: https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis#section-6.3.7\n const playlistRecentEnough = age < canSkipUntil / 2;\n if (canSkipUntil && playlistRecentEnough) {\n if (canSkipDateRanges) {\n return HlsSkip.v2;\n }\n return HlsSkip.Yes;\n }\n return HlsSkip.No;\n}\n\nexport class HlsUrlParameters {\n msn?: number;\n part?: number;\n skip?: HlsSkip;\n\n constructor(msn?: number, part?: number, skip?: HlsSkip) {\n this.msn = msn;\n this.part = part;\n this.skip = skip;\n }\n\n addDirectives(uri: string): string | never {\n const url: URL = new self.URL(uri);\n if (this.msn !== undefined) {\n url.searchParams.set('_HLS_msn', this.msn.toString());\n }\n if (this.part !== undefined) {\n url.searchParams.set('_HLS_part', this.part.toString());\n }\n if (this.skip) {\n url.searchParams.set('_HLS_skip', this.skip);\n }\n return url.href;\n }\n}\n\nexport class Level {\n public readonly _attrs: LevelAttributes[];\n public readonly audioCodec: string | undefined;\n public readonly bitrate: number;\n public readonly codecSet: string;\n public readonly url: string[];\n public readonly frameRate: number;\n public readonly height: number;\n public readonly id: number;\n public readonly name: string;\n public readonly videoCodec: string | undefined;\n public readonly width: number;\n public details?: LevelDetails;\n public fragmentError: number = 0;\n public loadError: number = 0;\n public loaded?: { bytes: number; duration: number };\n public realBitrate: number = 0;\n public supportedPromise?: Promise<MediaDecodingInfo>;\n public supportedResult?: MediaDecodingInfo;\n private _avgBitrate: number = 0;\n private _audioGroups?: (string | undefined)[];\n private _subtitleGroups?: (string | undefined)[];\n // Deprecated (retained for backwards compatibility)\n private readonly _urlId: number = 0;\n\n constructor(data: LevelParsed | MediaPlaylist) {\n this.url = [data.url];\n this._attrs = [data.attrs];\n this.bitrate = data.bitrate;\n if (data.details) {\n this.details = data.details;\n }\n this.id = data.id || 0;\n this.name = data.name;\n this.width = data.width || 0;\n this.height = data.height || 0;\n this.frameRate = data.attrs.optionalFloat('FRAME-RATE', 0);\n this._avgBitrate = data.attrs.decimalInteger('AVERAGE-BANDWIDTH');\n this.audioCodec = data.audioCodec;\n this.videoCodec = data.videoCodec;\n this.codecSet = [data.videoCodec, data.audioCodec]\n .filter((c) => !!c)\n .map((s: string) => s.substring(0, 4))\n .join(',');\n this.addGroupId('audio', data.attrs.AUDIO);\n this.addGroupId('text', data.attrs.SUBTITLES);\n }\n\n get maxBitrate(): number {\n return Math.max(this.realBitrate, this.bitrate);\n }\n\n get averageBitrate(): number {\n return this._avgBitrate || this.realBitrate || this.bitrate;\n }\n\n get attrs(): LevelAttributes {\n return this._attrs[0];\n }\n\n get codecs(): string {\n return this.attrs.CODECS || '';\n }\n\n get pathwayId(): string {\n return this.attrs['PATHWAY-ID'] || '.';\n }\n\n get videoRange(): VideoRange {\n return this.attrs['VIDEO-RANGE'] || 'SDR';\n }\n\n get score(): number {\n return this.attrs.optionalFloat('SCORE', 0);\n }\n\n get uri(): string {\n return this.url[0] || '';\n }\n\n hasAudioGroup(groupId: string | undefined): boolean {\n return hasGroup(this._audioGroups, groupId);\n }\n\n hasSubtitleGroup(groupId: string | undefined): boolean {\n return hasGroup(this._subtitleGroups, groupId);\n }\n\n get audioGroups(): (string | undefined)[] | undefined {\n return this._audioGroups;\n }\n\n get subtitleGroups(): (string | undefined)[] | undefined {\n return this._subtitleGroups;\n }\n\n addGroupId(type: string, groupId: string | undefined) {\n if (!groupId) {\n return;\n }\n if (type === 'audio') {\n let audioGroups = this._audioGroups;\n if (!audioGroups) {\n audioGroups = this._audioGroups = [];\n }\n if (audioGroups.indexOf(groupId) === -1) {\n audioGroups.push(groupId);\n }\n } else if (type === 'text') {\n let subtitleGroups = this._subtitleGroups;\n if (!subtitleGroups) {\n subtitleGroups = this._subtitleGroups = [];\n }\n if (subtitleGroups.indexOf(groupId) === -1) {\n subtitleGroups.push(groupId);\n }\n }\n }\n\n // Deprecated methods (retained for backwards compatibility)\n get urlId(): number {\n return 0;\n }\n\n set urlId(value: number) {}\n\n get audioGroupIds(): (string | undefined)[] | undefined {\n return this.audioGroups ? [this.audioGroupId] : undefined;\n }\n\n get textGroupIds(): (string | undefined)[] | undefined {\n return this.subtitleGroups ? [this.textGroupId] : undefined;\n }\n\n get audioGroupId(): string | undefined {\n return this.audioGroups?.[0];\n }\n\n get textGroupId(): string | undefined {\n return this.subtitleGroups?.[0];\n }\n\n addFallback() {}\n}\n\nfunction hasGroup(\n groups: (string | undefined)[] | undefined,\n groupId: string | undefined,\n): boolean {\n if (!groupId || !groups) {\n return false;\n }\n return groups.indexOf(groupId) !== -1;\n}\n","/**\n * Provides methods dealing with playlist sliding and drift\n */\n\nimport { logger } from './logger';\nimport { Fragment, Part } from '../loader/fragment';\nimport { LevelDetails } from '../loader/level-details';\nimport type { Level } from '../types/level';\nimport { DateRange } from '../loader/date-range';\n\ntype FragmentIntersection = (\n oldFrag: Fragment,\n newFrag: Fragment,\n newFragIndex: number,\n newFragments: Fragment[],\n) => void;\ntype PartIntersection = (oldPart: Part, newPart: Part) => void;\n\nexport function updatePTS(\n fragments: Fragment[],\n fromIdx: number,\n toIdx: number,\n): void {\n const fragFrom = fragments[fromIdx];\n const fragTo = fragments[toIdx];\n updateFromToPTS(fragFrom, fragTo);\n}\n\nfunction updateFromToPTS(fragFrom: Fragment, fragTo: Fragment) {\n const fragToPTS = fragTo.startPTS as number;\n // if we know startPTS[toIdx]\n if (Number.isFinite(fragToPTS)) {\n // update fragment duration.\n // it helps to fix drifts between playlist reported duration and fragment real duration\n let duration: number = 0;\n let frag: Fragment;\n if (fragTo.sn > fragFrom.sn) {\n duration = fragToPTS - fragFrom.start;\n frag = fragFrom;\n } else {\n duration = fragFrom.start - fragToPTS;\n frag = fragTo;\n }\n if (frag.duration !== duration) {\n frag.duration = duration;\n }\n // we dont know startPTS[toIdx]\n } else if (fragTo.sn > fragFrom.sn) {\n const contiguous = fragFrom.cc === fragTo.cc;\n // TODO: With part-loading end/durations we need to confirm the whole fragment is loaded before using (or setting) minEndPTS\n if (contiguous && fragFrom.minEndPTS) {\n fragTo.start = fragFrom.start + (fragFrom.minEndPTS - fragFrom.start);\n } else {\n fragTo.start = fragFrom.start + fragFrom.duration;\n }\n } else {\n fragTo.start = Math.max(fragFrom.start - fragTo.duration, 0);\n }\n}\n\nexport function updateFragPTSDTS(\n details: LevelDetails | undefined,\n frag: Fragment,\n startPTS: number,\n endPTS: number,\n startDTS: number,\n endDTS: number,\n): number {\n const parsedMediaDuration = endPTS - startPTS;\n if (parsedMediaDuration <= 0) {\n logger.warn('Fragment should have a positive duration', frag);\n endPTS = startPTS + frag.duration;\n endDTS = startDTS + frag.duration;\n }\n let maxStartPTS = startPTS;\n let minEndPTS = endPTS;\n const fragStartPts = frag.startPTS as number;\n const fragEndPts = frag.endPTS as number;\n if (Number.isFinite(fragStartPts)) {\n // delta PTS between audio and video\n const deltaPTS = Math.abs(fragStartPts - startPTS);\n if (!Number.isFinite(frag.deltaPTS as number)) {\n frag.deltaPTS = deltaPTS;\n } else {\n frag.deltaPTS = Math.max(deltaPTS, frag.deltaPTS as number);\n }\n\n maxStartPTS = Math.max(startPTS, fragStartPts);\n startPTS = Math.min(startPTS, fragStartPts);\n startDTS = Math.min(startDTS, frag.startDTS);\n\n minEndPTS = Math.min(endPTS, fragEndPts);\n endPTS = Math.max(endPTS, fragEndPts);\n endDTS = Math.max(endDTS, frag.endDTS);\n }\n\n const drift = startPTS - frag.start;\n if (frag.start !== 0) {\n frag.start = startPTS;\n }\n frag.duration = endPTS - frag.start;\n frag.startPTS = startPTS;\n frag.maxStartPTS = maxStartPTS;\n frag.startDTS = startDTS;\n frag.endPTS = endPTS;\n frag.minEndPTS = minEndPTS;\n frag.endDTS = endDTS;\n\n const sn = frag.sn as number; // 'initSegment'\n // exit if sn out of range\n if (!details || sn < details.startSN || sn > details.endSN) {\n return 0;\n }\n let i: number;\n const fragIdx = sn - details.startSN;\n const fragments = details.fragments;\n // update frag reference in fragments array\n // rationale is that fragments array might not contain this frag object.\n // this will happen if playlist has been refreshed between frag loading and call to updateFragPTSDTS()\n // if we don't update frag, we won't be able to propagate PTS info on the playlist\n // resulting in invalid sliding computation\n fragments[fragIdx] = frag;\n // adjust fragment PTS/duration from seqnum-1 to frag 0\n for (i = fragIdx; i > 0; i--) {\n updateFromToPTS(fragments[i], fragments[i - 1]);\n }\n\n // adjust fragment PTS/duration from seqnum to last frag\n for (i = fragIdx; i < fragments.length - 1; i++) {\n updateFromToPTS(fragments[i], fragments[i + 1]);\n }\n if (details.fragmentHint) {\n updateFromToPTS(fragments[fragments.length - 1], details.fragmentHint);\n }\n\n details.PTSKnown = details.alignedSliding = true;\n return drift;\n}\n\nexport function mergeDetails(\n oldDetails: LevelDetails,\n newDetails: LevelDetails,\n): void {\n // Track the last initSegment processed. Initialize it to the last one on the timeline.\n let currentInitSegment: Fragment | null = null;\n const oldFragments = oldDetails.fragments;\n for (let i = oldFragments.length - 1; i >= 0; i--) {\n const oldInit = oldFragments[i].initSegment;\n if (oldInit) {\n currentInitSegment = oldInit;\n break;\n }\n }\n\n if (oldDetails.fragmentHint) {\n // prevent PTS and duration from being adjusted on the next hint\n delete oldDetails.fragmentHint.endPTS;\n }\n // check if old/new playlists have fragments in common\n // loop through overlapping SN and update startPTS, cc, and duration if any found\n let PTSFrag: Fragment | undefined;\n mapFragmentIntersection(\n oldDetails,\n newDetails,\n (oldFrag, newFrag, newFragIndex, newFragments) => {\n if (newDetails.skippedSegments) {\n if (newFrag.cc !== oldFrag.cc) {\n const ccOffset = oldFrag.cc - newFrag.cc;\n for (let i = newFragIndex; i < newFragments.length; i++) {\n newFragments[i].cc += ccOffset;\n }\n }\n }\n if (\n Number.isFinite(oldFrag.startPTS) &&\n Number.isFinite(oldFrag.endPTS)\n ) {\n newFrag.start = newFrag.startPTS = oldFrag.startPTS as number;\n newFrag.startDTS = oldFrag.startDTS;\n newFrag.maxStartPTS = oldFrag.maxStartPTS;\n\n newFrag.endPTS = oldFrag.endPTS;\n newFrag.endDTS = oldFrag.endDTS;\n newFrag.minEndPTS = oldFrag.minEndPTS;\n newFrag.duration =\n (oldFrag.endPTS as number) - (oldFrag.startPTS as number);\n\n if (newFrag.duration) {\n PTSFrag = newFrag;\n }\n\n // PTS is known when any segment has startPTS and endPTS\n newDetails.PTSKnown = newDetails.alignedSliding = true;\n }\n newFrag.elementaryStreams = oldFrag.elementaryStreams;\n newFrag.loader = oldFrag.loader;\n newFrag.stats = oldFrag.stats;\n if (oldFrag.initSegment) {\n newFrag.initSegment = oldFrag.initSegment;\n currentInitSegment = oldFrag.initSegment;\n }\n },\n );\n\n const newFragments = newDetails.fragments;\n if (currentInitSegment) {\n const fragmentsToCheck = newDetails.fragmentHint\n ? newFragments.concat(newDetails.fragmentHint)\n : newFragments;\n fragmentsToCheck.forEach((frag) => {\n if (\n frag &&\n (!frag.initSegment ||\n frag.initSegment.relurl === currentInitSegment?.relurl)\n ) {\n frag.initSegment = currentInitSegment;\n }\n });\n }\n\n if (newDetails.skippedSegments) {\n newDetails.deltaUpdateFailed = newFragments.some((frag) => !frag);\n if (newDetails.deltaUpdateFailed) {\n logger.warn(\n '[level-helper] Previous playlist missing segments skipped in delta playlist',\n );\n for (let i = newDetails.skippedSegments; i--; ) {\n newFragments.shift();\n }\n newDetails.startSN = newFragments[0].sn as number;\n } else {\n if (newDetails.canSkipDateRanges) {\n newDetails.dateRanges = mergeDateRanges(\n oldDetails.dateRanges,\n newDetails.dateRanges,\n newDetails.recentlyRemovedDateranges,\n );\n }\n }\n newDetails.startCC = newDetails.fragments[0].cc;\n newDetails.endCC = newFragments[newFragments.length - 1].cc;\n }\n\n // Merge parts\n mapPartIntersection(\n oldDetails.partList,\n newDetails.partList,\n (oldPart: Part, newPart: Part) => {\n newPart.elementaryStreams = oldPart.elementaryStreams;\n newPart.stats = oldPart.stats;\n },\n );\n\n // if at least one fragment contains PTS info, recompute PTS information for all fragments\n if (PTSFrag) {\n updateFragPTSDTS(\n newDetails,\n PTSFrag,\n PTSFrag.startPTS as number,\n PTSFrag.endPTS as number,\n PTSFrag.startDTS as number,\n PTSFrag.endDTS as number,\n );\n } else {\n // ensure that delta is within oldFragments range\n // also adjust sliding in case delta is 0 (we could have old=[50-60] and new=old=[50-61])\n // in that case we also need to adjust start offset of all fragments\n adjustSliding(oldDetails, newDetails);\n }\n\n if (newFragments.length) {\n newDetails.totalduration = newDetails.edge - newFragments[0].start;\n }\n\n newDetails.driftStartTime = oldDetails.driftStartTime;\n newDetails.driftStart = oldDetails.driftStart;\n const advancedDateTime = newDetails.advancedDateTime;\n if (newDetails.advanced && advancedDateTime) {\n const edge = newDetails.edge;\n if (!newDetails.driftStart) {\n newDetails.driftStartTime = advancedDateTime;\n newDetails.driftStart = edge;\n }\n newDetails.driftEndTime = advancedDateTime;\n newDetails.driftEnd = edge;\n } else {\n newDetails.driftEndTime = oldDetails.driftEndTime;\n newDetails.driftEnd = oldDetails.driftEnd;\n newDetails.advancedDateTime = oldDetails.advancedDateTime;\n }\n}\n\nfunction mergeDateRanges(\n oldDateRanges: Record<string, DateRange>,\n deltaDateRanges: Record<string, DateRange>,\n recentlyRemovedDateranges: string[] | undefined,\n): Record<string, DateRange> {\n const dateRanges = Object.assign({}, oldDateRanges);\n if (recentlyRemovedDateranges) {\n recentlyRemovedDateranges.forEach((id) => {\n delete dateRanges[id];\n });\n }\n Object.keys(deltaDateRanges).forEach((id) => {\n const dateRange = new DateRange(deltaDateRanges[id].attr, dateRanges[id]);\n if (dateRange.isValid) {\n dateRanges[id] = dateRange;\n } else {\n logger.warn(\n `Ignoring invalid Playlist Delta Update DATERANGE tag: \"${JSON.stringify(\n deltaDateRanges[id].attr,\n )}\"`,\n );\n }\n });\n return dateRanges;\n}\n\nexport function mapPartIntersection(\n oldParts: Part[] | null,\n newParts: Part[] | null,\n intersectionFn: PartIntersection,\n) {\n if (oldParts && newParts) {\n let delta = 0;\n for (let i = 0, len = oldParts.length; i <= len; i++) {\n const oldPart = oldParts[i];\n const newPart = newParts[i + delta];\n if (\n oldPart &&\n newPart &&\n oldPart.index === newPart.index &&\n oldPart.fragment.sn === newPart.fragment.sn\n ) {\n intersectionFn(oldPart, newPart);\n } else {\n delta--;\n }\n }\n }\n}\n\nexport function mapFragmentIntersection(\n oldDetails: LevelDetails,\n newDetails: LevelDetails,\n intersectionFn: FragmentIntersection,\n): void {\n const skippedSegments = newDetails.skippedSegments;\n const start =\n Math.max(oldDetails.startSN, newDetails.startSN) - newDetails.startSN;\n const end =\n (oldDetails.fragmentHint ? 1 : 0) +\n (skippedSegments\n ? newDetails.endSN\n : Math.min(oldDetails.endSN, newDetails.endSN)) -\n newDetails.startSN;\n const delta = newDetails.startSN - oldDetails.startSN;\n const newFrags = newDetails.fragmentHint\n ? newDetails.fragments.concat(newDetails.fragmentHint)\n : newDetails.fragments;\n const oldFrags = oldDetails.fragmentHint\n ? oldDetails.fragments.concat(oldDetails.fragmentHint)\n : oldDetails.fragments;\n\n for (let i = start; i <= end; i++) {\n const oldFrag = oldFrags[delta + i];\n let newFrag = newFrags[i];\n if (skippedSegments && !newFrag && i < skippedSegments) {\n // Fill in skipped segments in delta playlist\n newFrag = newDetails.fragments[i] = oldFrag;\n }\n if (oldFrag && newFrag) {\n intersectionFn(oldFrag, newFrag, i, newFrags);\n }\n }\n}\n\nexport function adjustSliding(\n oldDetails: LevelDetails,\n newDetails: LevelDetails,\n): void {\n const delta =\n newDetails.startSN + newDetails.skippedSegments - oldDetails.startSN;\n const oldFragments = oldDetails.fragments;\n if (delta < 0 || delta >= oldFragments.length) {\n return;\n }\n addSliding(newDetails, oldFragments[delta].start);\n}\n\nexport function addSliding(details: LevelDetails, start: number) {\n if (start) {\n const fragments = details.fragments;\n for (let i = details.skippedSegments; i < fragments.length; i++) {\n fragments[i].start += start;\n }\n if (details.fragmentHint) {\n details.fragmentHint.start += start;\n }\n }\n}\n\nexport function computeReloadInterval(\n newDetails: LevelDetails,\n distanceToLiveEdgeMs: number = Infinity,\n): number {\n let reloadInterval = 1000 * newDetails.targetduration;\n\n if (newDetails.updated) {\n // Use last segment duration when shorter than target duration and near live edge\n const fragments = newDetails.fragments;\n const liveEdgeMaxTargetDurations = 4;\n if (\n fragments.length &&\n reloadInterval * liveEdgeMaxTargetDurations > distanceToLiveEdgeMs\n ) {\n const lastSegmentDuration =\n fragments[fragments.length - 1].duration * 1000;\n if (lastSegmentDuration < reloadInterval) {\n reloadInterval = lastSegmentDuration;\n }\n }\n } else {\n // estimate = 'miss half average';\n // follow HLS Spec, If the client reloads a Playlist file and finds that it has not\n // changed then it MUST wait for a period of one-half the target\n // duration before retrying.\n reloadInterval /= 2;\n }\n\n return Math.round(reloadInterval);\n}\n\nexport function getFragmentWithSN(\n level: Level,\n sn: number,\n fragCurrent: Fragment | null,\n): Fragment | null {\n if (!level?.details) {\n return null;\n }\n const levelDetails = level.details;\n let fragment: Fragment | undefined =\n levelDetails.fragments[sn - levelDetails.startSN];\n if (fragment) {\n return fragment;\n }\n fragment = levelDetails.fragmentHint;\n if (fragment && fragment.sn === sn) {\n return fragment;\n }\n if (sn < levelDetails.startSN && fragCurrent && fragCurrent.sn === sn) {\n return fragCurrent;\n }\n return null;\n}\n\nexport function getPartWith(\n level: Level,\n sn: number,\n partIndex: number,\n): Part | null {\n if (!level?.details) {\n return null;\n }\n return findPart(level.details?.partList, sn, partIndex);\n}\n\nexport function findPart(\n partList: Part[] | null | undefined,\n sn: number,\n partIndex: number,\n): Part | null {\n if (partList) {\n for (let i = partList.length; i--; ) {\n const part = partList[i];\n if (part.index === partIndex && part.fragment.sn === sn) {\n return part;\n }\n }\n }\n return null;\n}\n\nexport function reassignFragmentLevelIndexes(levels: Level[]) {\n levels.forEach((level, index) => {\n const { details } = level;\n if (details?.fragments) {\n details.fragments.forEach((fragment) => {\n fragment.level = index;\n });\n }\n });\n}\n","import { ErrorDetails } from '../errors';\nimport type { LoadPolicy, LoaderConfig, RetryConfig } from '../config';\nimport type { ErrorData } from '../types/events';\nimport type { LoaderResponse } from '../types/loader';\n\nexport function isTimeoutError(error: ErrorData): boolean {\n switch (error.details) {\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n case ErrorDetails.MANIFEST_LOAD_TIMEOUT:\n return true;\n }\n return false;\n}\n\nexport function getRetryConfig(\n loadPolicy: LoadPolicy,\n error: ErrorData,\n): RetryConfig | null {\n const isTimeout = isTimeoutError(error);\n return loadPolicy.default[`${isTimeout ? 'timeout' : 'error'}Retry`];\n}\n\nexport function getRetryDelay(\n retryConfig: RetryConfig,\n retryCount: number,\n): number {\n // exponential backoff capped to max retry delay\n const backoffFactor =\n retryConfig.backoff === 'linear' ? 1 : Math.pow(2, retryCount);\n return Math.min(\n backoffFactor * retryConfig.retryDelayMs,\n retryConfig.maxRetryDelayMs,\n );\n}\n\nexport function getLoaderConfigWithoutReties(\n loderConfig: LoaderConfig,\n): LoaderConfig {\n return {\n ...loderConfig,\n ...{\n errorRetry: null,\n timeoutRetry: null,\n },\n };\n}\n\nexport function shouldRetry(\n retryConfig: RetryConfig | null | undefined,\n retryCount: number,\n isTimeout: boolean,\n loaderResponse?: LoaderResponse | undefined,\n): retryConfig is RetryConfig & boolean {\n if (!retryConfig) {\n return false;\n }\n const httpStatus = loaderResponse?.code;\n const retry =\n retryCount < retryConfig.maxNumRetry &&\n (retryForHttpStatus(httpStatus) || !!isTimeout);\n return retryConfig.shouldRetry\n ? retryConfig.shouldRetry(\n retryConfig,\n retryCount,\n isTimeout,\n loaderResponse,\n retry,\n )\n : retry;\n}\n\nexport function retryForHttpStatus(httpStatus: number | undefined) {\n // Do not retry on status 4xx, status 0 (CORS error), or undefined (decrypt/gap/parse error)\n return (\n (httpStatus === 0 && navigator.onLine === false) ||\n (!!httpStatus && (httpStatus < 400 || httpStatus > 499))\n );\n}\n","type BinarySearchComparison<T> = (candidate: T) => -1 | 0 | 1;\n\nconst BinarySearch = {\n /**\n * Searches for an item in an array which matches a certain condition.\n * This requires the condition to only match one item in the array,\n * and for the array to be ordered.\n *\n * @param list The array to search.\n * @param comparisonFn\n * Called and provided a candidate item as the first argument.\n * Should return:\n * > -1 if the item should be located at a lower index than the provided item.\n * > 1 if the item should be located at a higher index than the provided item.\n * > 0 if the item is the item you're looking for.\n *\n * @returns the object if found, otherwise returns null\n */\n search: function <T>(\n list: T[],\n comparisonFn: BinarySearchComparison<T>,\n ): T | null {\n let minIndex: number = 0;\n let maxIndex: number = list.length - 1;\n let currentIndex: number | null = null;\n let currentElement: T | null = null;\n\n while (minIndex <= maxIndex) {\n currentIndex = ((minIndex + maxIndex) / 2) | 0;\n currentElement = list[currentIndex];\n\n const comparisonResult = comparisonFn(currentElement);\n if (comparisonResult > 0) {\n minIndex = currentIndex + 1;\n } else if (comparisonResult < 0) {\n maxIndex = currentIndex - 1;\n } else {\n return currentElement;\n }\n }\n\n return null;\n },\n};\n\nexport default BinarySearch;\n","import BinarySearch from '../utils/binary-search';\nimport { Fragment } from '../loader/fragment';\n\n/**\n * Returns first fragment whose endPdt value exceeds the given PDT, or null.\n * @param fragments - The array of candidate fragments\n * @param PDTValue - The PDT value which must be exceeded\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n */\nexport function findFragmentByPDT(\n fragments: Array<Fragment>,\n PDTValue: number | null,\n maxFragLookUpTolerance: number,\n): Fragment | null {\n if (\n PDTValue === null ||\n !Array.isArray(fragments) ||\n !fragments.length ||\n !Number.isFinite(PDTValue)\n ) {\n return null;\n }\n\n // if less than start\n const startPDT = fragments[0].programDateTime;\n if (PDTValue < (startPDT || 0)) {\n return null;\n }\n\n const endPDT = fragments[fragments.length - 1].endProgramDateTime;\n if (PDTValue >= (endPDT || 0)) {\n return null;\n }\n\n maxFragLookUpTolerance = maxFragLookUpTolerance || 0;\n for (let seg = 0; seg < fragments.length; ++seg) {\n const frag = fragments[seg];\n if (pdtWithinToleranceTest(PDTValue, maxFragLookUpTolerance, frag)) {\n return frag;\n }\n }\n\n return null;\n}\n\n/**\n * Finds a fragment based on the SN of the previous fragment; or based on the needs of the current buffer.\n * This method compensates for small buffer gaps by applying a tolerance to the start of any candidate fragment, thus\n * breaking any traps which would cause the same fragment to be continuously selected within a small range.\n * @param fragPrevious - The last frag successfully appended\n * @param fragments - The array of candidate fragments\n * @param bufferEnd - The end of the contiguous buffered range the playhead is currently within\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns a matching fragment or null\n */\nexport function findFragmentByPTS(\n fragPrevious: Fragment | null,\n fragments: Array<Fragment>,\n bufferEnd: number = 0,\n maxFragLookUpTolerance: number = 0,\n nextFragLookupTolerance: number = 0.005,\n): Fragment | null {\n let fragNext: Fragment | null = null;\n if (fragPrevious) {\n fragNext =\n fragments[\n (fragPrevious.sn as number) - (fragments[0].sn as number) + 1\n ] || null;\n // check for buffer-end rounding error\n const bufferEdgeError = fragPrevious.endDTS - bufferEnd;\n if (bufferEdgeError > 0 && bufferEdgeError < 0.0000015) {\n bufferEnd += 0.0000015;\n }\n } else if (bufferEnd === 0 && fragments[0].start === 0) {\n fragNext = fragments[0];\n }\n // Prefer the next fragment if it's within tolerance\n if (\n fragNext &&\n (((!fragPrevious || fragPrevious.level === fragNext.level) &&\n fragmentWithinToleranceTest(\n bufferEnd,\n maxFragLookUpTolerance,\n fragNext,\n ) === 0) ||\n fragmentWithinFastStartSwitch(\n fragNext,\n fragPrevious,\n Math.min(nextFragLookupTolerance, maxFragLookUpTolerance),\n ))\n ) {\n return fragNext;\n }\n // We might be seeking past the tolerance so find the best match\n const foundFragment = BinarySearch.search(\n fragments,\n fragmentWithinToleranceTest.bind(null, bufferEnd, maxFragLookUpTolerance),\n );\n if (foundFragment && (foundFragment !== fragPrevious || !fragNext)) {\n return foundFragment;\n }\n // If no match was found return the next fragment after fragPrevious, or null\n return fragNext;\n}\n\nfunction fragmentWithinFastStartSwitch(\n fragNext: Fragment,\n fragPrevious: Fragment | null,\n nextFragLookupTolerance: number,\n): boolean {\n if (\n fragPrevious &&\n fragPrevious.start === 0 &&\n fragPrevious.level < fragNext.level &&\n (fragPrevious.endPTS || 0) > 0\n ) {\n const firstDuration = fragPrevious.tagList.reduce((duration, tag) => {\n if (tag[0] === 'INF') {\n duration += parseFloat(tag[1]);\n }\n return duration;\n }, nextFragLookupTolerance);\n return fragNext.start <= firstDuration;\n }\n return false;\n}\n\n/**\n * The test function used by the findFragmentBySn's BinarySearch to look for the best match to the current buffer conditions.\n * @param candidate - The fragment to test\n * @param bufferEnd - The end of the current buffered range the playhead is currently within\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns 0 if it matches, 1 if too low, -1 if too high\n */\nexport function fragmentWithinToleranceTest(\n bufferEnd = 0,\n maxFragLookUpTolerance = 0,\n candidate: Fragment,\n) {\n // eagerly accept an accurate match (no tolerance)\n if (\n candidate.start <= bufferEnd &&\n candidate.start + candidate.duration > bufferEnd\n ) {\n return 0;\n }\n // offset should be within fragment boundary - config.maxFragLookUpTolerance\n // this is to cope with situations like\n // bufferEnd = 9.991\n // frag[Ø] : [0,10]\n // frag[1] : [10,20]\n // bufferEnd is within frag[0] range ... although what we are expecting is to return frag[1] here\n // frag start frag start+duration\n // |-----------------------------|\n // <---> <--->\n // ...--------><-----------------------------><---------....\n // previous frag matching fragment next frag\n // return -1 return 0 return 1\n // logger.log(`level/sn/start/end/bufEnd:${level}/${candidate.sn}/${candidate.start}/${(candidate.start+candidate.duration)}/${bufferEnd}`);\n // Set the lookup tolerance to be small enough to detect the current segment - ensures we don't skip over very small segments\n const candidateLookupTolerance = Math.min(\n maxFragLookUpTolerance,\n candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0),\n );\n if (\n candidate.start + candidate.duration - candidateLookupTolerance <=\n bufferEnd\n ) {\n return 1;\n } else if (\n candidate.start - candidateLookupTolerance > bufferEnd &&\n candidate.start\n ) {\n // if maxFragLookUpTolerance will have negative value then don't return -1 for first element\n return -1;\n }\n\n return 0;\n}\n\n/**\n * The test function used by the findFragmentByPdt's BinarySearch to look for the best match to the current buffer conditions.\n * This function tests the candidate's program date time values, as represented in Unix time\n * @param candidate - The fragment to test\n * @param pdtBufferEnd - The Unix time representing the end of the current buffered range\n * @param maxFragLookUpTolerance - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns true if contiguous, false otherwise\n */\nexport function pdtWithinToleranceTest(\n pdtBufferEnd: number,\n maxFragLookUpTolerance: number,\n candidate: Fragment,\n): boolean {\n const candidateLookupTolerance =\n Math.min(\n maxFragLookUpTolerance,\n candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0),\n ) * 1000;\n\n // endProgramDateTime can be null, default to zero\n const endProgramDateTime = candidate.endProgramDateTime || 0;\n return endProgramDateTime - candidateLookupTolerance > pdtBufferEnd;\n}\n\nexport function findFragWithCC(\n fragments: Fragment[],\n cc: number,\n): Fragment | null {\n return BinarySearch.search(fragments, (candidate) => {\n if (candidate.cc < cc) {\n return 1;\n } else if (candidate.cc > cc) {\n return -1;\n } else {\n return 0;\n }\n });\n}\n","import { Events } from '../events';\nimport { ErrorDetails, ErrorTypes } from '../errors';\nimport { PlaylistContextType, PlaylistLevelType } from '../types/loader';\nimport {\n getRetryConfig,\n isTimeoutError,\n shouldRetry,\n} from '../utils/error-helper';\nimport { findFragmentByPTS } from './fragment-finders';\nimport { HdcpLevel, HdcpLevels } from '../types/level';\nimport { logger } from '../utils/logger';\nimport type Hls from '../hls';\nimport type { RetryConfig } from '../config';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type { ErrorData } from '../types/events';\nimport type { Fragment } from '../loader/fragment';\nimport type { LevelDetails } from '../loader/level-details';\n\nexport const enum NetworkErrorAction {\n DoNothing = 0,\n SendEndCallback = 1, // Reserved for future use\n SendAlternateToPenaltyBox = 2,\n RemoveAlternatePermanently = 3, // Reserved for future use\n InsertDiscontinuity = 4, // Reserved for future use\n RetryRequest = 5,\n}\n\nexport const enum ErrorActionFlags {\n None = 0,\n MoveAllAlternatesMatchingHost = 1,\n MoveAllAlternatesMatchingHDCP = 1 << 1,\n SwitchToSDR = 1 << 2, // Reserved for future use\n}\n\nexport type IErrorAction = {\n action: NetworkErrorAction;\n flags: ErrorActionFlags;\n retryCount?: number;\n retryConfig?: RetryConfig;\n hdcpLevel?: HdcpLevel;\n nextAutoLevel?: number;\n resolved?: boolean;\n};\n\ntype PenalizedRendition = {\n lastErrorPerfMs: number;\n errors: ErrorData[];\n details?: LevelDetails;\n};\n\ntype PenalizedRenditions = { [key: number]: PenalizedRendition };\n\nexport default class ErrorController implements NetworkComponentAPI {\n private readonly hls: Hls;\n private playlistError: number = 0;\n private penalizedRenditions: PenalizedRenditions = {};\n private log: (msg: any) => void;\n private warn: (msg: any) => void;\n private error: (msg: any) => void;\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.log = logger.log.bind(logger, `[info]:`);\n this.warn = logger.warn.bind(logger, `[warning]:`);\n this.error = logger.error.bind(logger, `[error]:`);\n this.registerListeners();\n }\n\n private registerListeners() {\n const hls = this.hls;\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n\n private unregisterListeners() {\n const hls = this.hls;\n if (!hls) {\n return;\n }\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.ERROR, this.onErrorOut, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n }\n\n destroy() {\n this.unregisterListeners();\n // @ts-ignore\n this.hls = null;\n this.penalizedRenditions = {};\n }\n\n startLoad(startPosition: number): void {}\n\n stopLoad(): void {\n this.playlistError = 0;\n }\n\n private getVariantLevelIndex(frag: Fragment | undefined): number {\n return frag?.type === PlaylistLevelType.MAIN\n ? frag.level\n : this.hls.loadLevel;\n }\n\n private onManifestLoading() {\n this.playlistError = 0;\n this.penalizedRenditions = {};\n }\n\n private onLevelUpdated() {\n this.playlistError = 0;\n }\n\n private onError(event: Events.ERROR, data: ErrorData) {\n if (data.fatal) {\n return;\n }\n const hls = this.hls;\n const context = data.context;\n\n switch (data.details) {\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n data.errorAction = this.getFragRetryOrSwitchAction(data);\n return;\n case ErrorDetails.FRAG_PARSING_ERROR:\n // ignore empty segment errors marked as gap\n if (data.frag?.gap) {\n data.errorAction = {\n action: NetworkErrorAction.DoNothing,\n flags: ErrorActionFlags.None,\n };\n return;\n }\n // falls through\n case ErrorDetails.FRAG_GAP:\n case ErrorDetails.FRAG_DECRYPT_ERROR: {\n // Switch level if possible, otherwise allow retry count to reach max error retries\n data.errorAction = this.getFragRetryOrSwitchAction(data);\n data.errorAction.action = NetworkErrorAction.SendAlternateToPenaltyBox;\n return;\n }\n case ErrorDetails.LEVEL_EMPTY_ERROR:\n case ErrorDetails.LEVEL_PARSING_ERROR:\n {\n // Only retry when empty and live\n const levelIndex =\n data.parent === PlaylistLevelType.MAIN\n ? (data.level as number)\n : hls.loadLevel;\n if (\n data.details === ErrorDetails.LEVEL_EMPTY_ERROR &&\n !!data.context?.levelDetails?.live\n ) {\n data.errorAction = this.getPlaylistRetryOrSwitchAction(\n data,\n levelIndex,\n );\n } else {\n // Escalate to fatal if not retrying or switching\n data.levelRetry = false;\n data.errorAction = this.getLevelSwitchAction(data, levelIndex);\n }\n }\n return;\n case ErrorDetails.LEVEL_LOAD_ERROR:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n if (typeof context?.level === 'number') {\n data.errorAction = this.getPlaylistRetryOrSwitchAction(\n data,\n context.level,\n );\n }\n return;\n case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:\n case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:\n case ErrorDetails.SUBTITLE_LOAD_ERROR:\n case ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:\n if (context) {\n const level = hls.levels[hls.loadLevel];\n if (\n level &&\n ((context.type === PlaylistContextType.AUDIO_TRACK &&\n level.hasAudioGroup(context.groupId)) ||\n (context.type === PlaylistContextType.SUBTITLE_TRACK &&\n level.hasSubtitleGroup(context.groupId)))\n ) {\n // Perform Pathway switch or Redundant failover if possible for fastest recovery\n // otherwise allow playlist retry count to reach max error retries\n data.errorAction = this.getPlaylistRetryOrSwitchAction(\n data,\n hls.loadLevel,\n );\n data.errorAction.action =\n NetworkErrorAction.SendAlternateToPenaltyBox;\n data.errorAction.flags =\n ErrorActionFlags.MoveAllAlternatesMatchingHost;\n return;\n }\n }\n return;\n case ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:\n {\n const level = hls.levels[hls.loadLevel];\n const restrictedHdcpLevel = level?.attrs['HDCP-LEVEL'];\n if (restrictedHdcpLevel) {\n data.errorAction = {\n action: NetworkErrorAction.SendAlternateToPenaltyBox,\n flags: ErrorActionFlags.MoveAllAlternatesMatchingHDCP,\n hdcpLevel: restrictedHdcpLevel,\n };\n } else {\n this.keySystemError(data);\n }\n }\n return;\n case ErrorDetails.BUFFER_ADD_CODEC_ERROR:\n case ErrorDetails.REMUX_ALLOC_ERROR:\n case ErrorDetails.BUFFER_APPEND_ERROR:\n data.errorAction = this.getLevelSwitchAction(\n data,\n data.level ?? hls.loadLevel,\n );\n return;\n case ErrorDetails.INTERNAL_EXCEPTION:\n case ErrorDetails.BUFFER_APPENDING_ERROR:\n case ErrorDetails.BUFFER_FULL_ERROR:\n case ErrorDetails.LEVEL_SWITCH_ERROR:\n case ErrorDetails.BUFFER_STALLED_ERROR:\n case ErrorDetails.BUFFER_SEEK_OVER_HOLE:\n case ErrorDetails.BUFFER_NUDGE_ON_STALL:\n data.errorAction = {\n action: NetworkErrorAction.DoNothing,\n flags: ErrorActionFlags.None,\n };\n return;\n }\n\n if (data.type === ErrorTypes.KEY_SYSTEM_ERROR) {\n this.keySystemError(data);\n }\n }\n\n private keySystemError(data: ErrorData) {\n const levelIndex = this.getVariantLevelIndex(data.frag);\n // Do not retry level. Escalate to fatal if switching levels fails.\n data.levelRetry = false;\n data.errorAction = this.getLevelSwitchAction(data, levelIndex);\n }\n\n private getPlaylistRetryOrSwitchAction(\n data: ErrorData,\n levelIndex: number | null | undefined,\n ): IErrorAction {\n const hls = this.hls;\n const retryConfig = getRetryConfig(hls.config.playlistLoadPolicy, data);\n const retryCount = this.playlistError++;\n const retry = shouldRetry(\n retryConfig,\n retryCount,\n isTimeoutError(data),\n data.response,\n );\n if (retry) {\n return {\n action: NetworkErrorAction.RetryRequest,\n flags: ErrorActionFlags.None,\n retryConfig,\n retryCount,\n };\n }\n const errorAction = this.getLevelSwitchAction(data, levelIndex);\n if (retryConfig) {\n errorAction.retryConfig = retryConfig;\n errorAction.retryCount = retryCount;\n }\n return errorAction;\n }\n\n private getFragRetryOrSwitchAction(data: ErrorData): IErrorAction {\n const hls = this.hls;\n // Share fragment error count accross media options (main, audio, subs)\n // This allows for level based rendition switching when media option assets fail\n const variantLevelIndex = this.getVariantLevelIndex(data.frag);\n const level = hls.levels[variantLevelIndex];\n const { fragLoadPolicy, keyLoadPolicy } = hls.config;\n const retryConfig = getRetryConfig(\n data.details.startsWith('key') ? keyLoadPolicy : fragLoadPolicy,\n data,\n );\n const fragmentErrors = hls.levels.reduce(\n (acc, level) => acc + level.fragmentError,\n 0,\n );\n // Switch levels when out of retried or level index out of bounds\n if (level) {\n if (data.details !== ErrorDetails.FRAG_GAP) {\n level.fragmentError++;\n }\n const retry = shouldRetry(\n retryConfig,\n fragmentErrors,\n isTimeoutError(data),\n data.response,\n );\n if (retry) {\n return {\n action: NetworkErrorAction.RetryRequest,\n flags: ErrorActionFlags.None,\n retryConfig,\n retryCount: fragmentErrors,\n };\n }\n }\n // Reach max retry count, or Missing level reference\n // Switch to valid index\n const errorAction = this.getLevelSwitchAction(data, variantLevelIndex);\n // Add retry details to allow skipping of FRAG_PARSING_ERROR\n if (retryConfig) {\n errorAction.retryConfig = retryConfig;\n errorAction.retryCount = fragmentErrors;\n }\n return errorAction;\n }\n\n private getLevelSwitchAction(\n data: ErrorData,\n levelIndex: number | null | undefined,\n ): IErrorAction {\n const hls = this.hls;\n if (levelIndex === null || levelIndex === undefined) {\n levelIndex = hls.loadLevel;\n }\n const level = this.hls.levels[levelIndex];\n if (level) {\n const errorDetails = data.details;\n level.loadError++;\n if (errorDetails === ErrorDetails.BUFFER_APPEND_ERROR) {\n level.fragmentError++;\n }\n // Search for next level to retry\n let nextLevel = -1;\n const { levels, loadLevel, minAutoLevel, maxAutoLevel } = hls;\n if (!hls.autoLevelEnabled) {\n hls.loadLevel = -1;\n }\n const fragErrorType = data.frag?.type;\n // Find alternate audio codec if available on audio codec error\n const isAudioCodecError =\n (fragErrorType === PlaylistLevelType.AUDIO &&\n errorDetails === ErrorDetails.FRAG_PARSING_ERROR) ||\n (data.sourceBufferName === 'audio' &&\n (errorDetails === ErrorDetails.BUFFER_ADD_CODEC_ERROR ||\n errorDetails === ErrorDetails.BUFFER_APPEND_ERROR));\n const findAudioCodecAlternate =\n isAudioCodecError &&\n levels.some(({ audioCodec }) => level.audioCodec !== audioCodec);\n // Find alternate video codec if available on video codec error\n const isVideoCodecError =\n data.sourceBufferName === 'video' &&\n (errorDetails === ErrorDetails.BUFFER_ADD_CODEC_ERROR ||\n errorDetails === ErrorDetails.BUFFER_APPEND_ERROR);\n const findVideoCodecAlternate =\n isVideoCodecError &&\n levels.some(\n ({ codecSet, audioCodec }) =>\n level.codecSet !== codecSet && level.audioCodec === audioCodec,\n );\n const { type: playlistErrorType, groupId: playlistErrorGroupId } =\n data.context ?? {};\n for (let i = levels.length; i--; ) {\n const candidate = (i + loadLevel) % levels.length;\n if (\n candidate !== loadLevel &&\n candidate >= minAutoLevel &&\n candidate <= maxAutoLevel &&\n levels[candidate].loadError === 0\n ) {\n const levelCandidate = levels[candidate];\n // Skip level switch if GAP tag is found in next level at same position\n if (\n errorDetails === ErrorDetails.FRAG_GAP &&\n fragErrorType === PlaylistLevelType.MAIN &&\n data.frag\n ) {\n const levelDetails = levels[candidate].details;\n if (levelDetails) {\n const fragCandidate = findFragmentByPTS(\n data.frag,\n levelDetails.fragments,\n data.frag.start,\n );\n if (fragCandidate?.gap) {\n continue;\n }\n }\n } else if (\n (playlistErrorType === PlaylistContextType.AUDIO_TRACK &&\n levelCandidate.hasAudioGroup(playlistErrorGroupId)) ||\n (playlistErrorType === PlaylistContextType.SUBTITLE_TRACK &&\n levelCandidate.hasSubtitleGroup(playlistErrorGroupId))\n ) {\n // For audio/subs playlist errors find another group ID or fallthrough to redundant fail-over\n continue;\n } else if (\n (fragErrorType === PlaylistLevelType.AUDIO &&\n level.audioGroups?.some((groupId) =>\n levelCandidate.hasAudioGroup(groupId),\n )) ||\n (fragErrorType === PlaylistLevelType.SUBTITLE &&\n level.subtitleGroups?.some((groupId) =>\n levelCandidate.hasSubtitleGroup(groupId),\n )) ||\n (findAudioCodecAlternate &&\n level.audioCodec === levelCandidate.audioCodec) ||\n (!findAudioCodecAlternate &&\n level.audioCodec !== levelCandidate.audioCodec) ||\n (findVideoCodecAlternate &&\n level.codecSet === levelCandidate.codecSet)\n ) {\n // For video/audio/subs frag errors find another group ID or fallthrough to redundant fail-over\n continue;\n }\n nextLevel = candidate;\n break;\n }\n }\n if (nextLevel > -1 && hls.loadLevel !== nextLevel) {\n data.levelRetry = true;\n this.playlistError = 0;\n return {\n action: NetworkErrorAction.SendAlternateToPenaltyBox,\n flags: ErrorActionFlags.None,\n nextAutoLevel: nextLevel,\n };\n }\n }\n // No levels to switch / Manual level selection / Level not found\n // Resolve with Pathway switch, Redundant fail-over, or stay on lowest Level\n return {\n action: NetworkErrorAction.SendAlternateToPenaltyBox,\n flags: ErrorActionFlags.MoveAllAlternatesMatchingHost,\n };\n }\n\n public onErrorOut(event: Events.ERROR, data: ErrorData) {\n switch (data.errorAction?.action) {\n case NetworkErrorAction.DoNothing:\n break;\n case NetworkErrorAction.SendAlternateToPenaltyBox:\n this.sendAlternateToPenaltyBox(data);\n if (\n !data.errorAction.resolved &&\n data.details !== ErrorDetails.FRAG_GAP\n ) {\n data.fatal = true;\n } else if (/MediaSource readyState: ended/.test(data.error.message)) {\n this.warn(\n `MediaSource ended after \"${data.sourceBufferName}\" sourceBuffer append error. Attempting to recover from media error.`,\n );\n this.hls.recoverMediaError();\n }\n break;\n case NetworkErrorAction.RetryRequest:\n // handled by stream and playlist/level controllers\n break;\n }\n\n if (data.fatal) {\n this.hls.stopLoad();\n return;\n }\n }\n\n private sendAlternateToPenaltyBox(data: ErrorData) {\n const hls = this.hls;\n const errorAction = data.errorAction;\n if (!errorAction) {\n return;\n }\n const { flags, hdcpLevel, nextAutoLevel } = errorAction;\n\n switch (flags) {\n case ErrorActionFlags.None:\n this.switchLevel(data, nextAutoLevel);\n break;\n case ErrorActionFlags.MoveAllAlternatesMatchingHDCP:\n if (hdcpLevel) {\n hls.maxHdcpLevel = HdcpLevels[HdcpLevels.indexOf(hdcpLevel) - 1];\n errorAction.resolved = true;\n }\n this.warn(\n `Restricting playback to HDCP-LEVEL of \"${hls.maxHdcpLevel}\" or lower`,\n );\n break;\n }\n // If not resolved by previous actions try to switch to next level\n if (!errorAction.resolved) {\n this.switchLevel(data, nextAutoLevel);\n }\n }\n\n private switchLevel(data: ErrorData, levelIndex: number | undefined) {\n if (levelIndex !== undefined && data.errorAction) {\n this.warn(`switching to level ${levelIndex} after ${data.details}`);\n this.hls.nextAutoLevel = levelIndex;\n data.errorAction.resolved = true;\n // Stream controller is responsible for this but won't switch on false start\n this.hls.nextLoadLevel = this.hls.nextAutoLevel;\n }\n }\n}\n","import type Hls from '../hls';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport { getSkipValue, HlsSkip, HlsUrlParameters, Level } from '../types/level';\nimport { computeReloadInterval, mergeDetails } from '../utils/level-helper';\nimport { ErrorData } from '../types/events';\nimport { getRetryDelay, isTimeoutError } from '../utils/error-helper';\nimport { NetworkErrorAction } from './error-controller';\nimport { logger } from '../utils/logger';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { MediaPlaylist } from '../types/media-playlist';\nimport type {\n AudioTrackLoadedData,\n LevelLoadedData,\n TrackLoadedData,\n} from '../types/events';\n\nexport default class BasePlaylistController implements NetworkComponentAPI {\n protected hls: Hls;\n protected timer: number = -1;\n protected requestScheduled: number = -1;\n protected canLoad: boolean = false;\n protected log: (msg: any) => void;\n protected warn: (msg: any) => void;\n\n constructor(hls: Hls, logPrefix: string) {\n this.log = logger.log.bind(logger, `${logPrefix}:`);\n this.warn = logger.warn.bind(logger, `${logPrefix}:`);\n this.hls = hls;\n }\n\n public destroy(): void {\n this.clearTimer();\n // @ts-ignore\n this.hls = this.log = this.warn = null;\n }\n\n protected clearTimer(): void {\n if (this.timer !== -1) {\n self.clearTimeout(this.timer);\n this.timer = -1;\n }\n }\n\n public startLoad(): void {\n this.canLoad = true;\n this.requestScheduled = -1;\n this.loadPlaylist();\n }\n\n public stopLoad(): void {\n this.canLoad = false;\n this.clearTimer();\n }\n\n protected switchParams(\n playlistUri: string,\n previous: LevelDetails | undefined,\n current: LevelDetails | undefined,\n ): HlsUrlParameters | undefined {\n const renditionReports = previous?.renditionReports;\n if (renditionReports) {\n let foundIndex = -1;\n for (let i = 0; i < renditionReports.length; i++) {\n const attr = renditionReports[i];\n let uri: string;\n try {\n uri = new self.URL(attr.URI, previous.url).href;\n } catch (error) {\n logger.warn(\n `Could not construct new URL for Rendition Report: ${error}`,\n );\n uri = attr.URI || '';\n }\n // Use exact match. Otherwise, the last partial match, if any, will be used\n // (Playlist URI includes a query string that the Rendition Report does not)\n if (uri === playlistUri) {\n foundIndex = i;\n break;\n } else if (uri === playlistUri.substring(0, uri.length)) {\n foundIndex = i;\n }\n }\n if (foundIndex !== -1) {\n const attr = renditionReports[foundIndex];\n const msn = parseInt(attr['LAST-MSN']) || previous?.lastPartSn;\n let part = parseInt(attr['LAST-PART']) || previous?.lastPartIndex;\n if (this.hls.config.lowLatencyMode) {\n const currentGoal = Math.min(\n previous.age - previous.partTarget,\n previous.targetduration,\n );\n if (part >= 0 && currentGoal > previous.partTarget) {\n part += 1;\n }\n }\n const skip = current && getSkipValue(current);\n return new HlsUrlParameters(msn, part >= 0 ? part : undefined, skip);\n }\n }\n }\n\n protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters): void {\n if (this.requestScheduled === -1) {\n this.requestScheduled = self.performance.now();\n }\n // Loading is handled by the subclasses\n }\n\n protected shouldLoadPlaylist(\n playlist: Level | MediaPlaylist | null | undefined,\n ): boolean {\n return (\n this.canLoad &&\n !!playlist &&\n !!playlist.url &&\n (!playlist.details || playlist.details.live)\n );\n }\n\n protected shouldReloadPlaylist(\n playlist: Level | MediaPlaylist | null | undefined,\n ): boolean {\n return (\n this.timer === -1 &&\n this.requestScheduled === -1 &&\n this.shouldLoadPlaylist(playlist)\n );\n }\n\n protected playlistLoaded(\n index: number,\n data: LevelLoadedData | AudioTrackLoadedData | TrackLoadedData,\n previousDetails?: LevelDetails,\n ) {\n const { details, stats } = data;\n\n // Set last updated date-time\n const now = self.performance.now();\n const elapsed = stats.loading.first\n ? Math.max(0, now - stats.loading.first)\n : 0;\n details.advancedDateTime = Date.now() - elapsed;\n\n // if current playlist is a live playlist, arm a timer to reload it\n if (details.live || previousDetails?.live) {\n details.reloaded(previousDetails);\n if (previousDetails) {\n this.log(\n `live playlist ${index} ${\n details.advanced\n ? 'REFRESHED ' + details.lastPartSn + '-' + details.lastPartIndex\n : details.updated\n ? 'UPDATED'\n : 'MISSED'\n }`,\n );\n }\n // Merge live playlists to adjust fragment starts and fill in delta playlist skipped segments\n if (previousDetails && details.fragments.length > 0) {\n mergeDetails(previousDetails, details);\n }\n if (!this.canLoad || !details.live) {\n return;\n }\n let deliveryDirectives: HlsUrlParameters | undefined;\n let msn: number | undefined = undefined;\n let part: number | undefined = undefined;\n if (details.canBlockReload && details.endSN && details.advanced) {\n // Load level with LL-HLS delivery directives\n const lowLatencyMode = this.hls.config.lowLatencyMode;\n const lastPartSn = details.lastPartSn;\n const endSn = details.endSN;\n const lastPartIndex = details.lastPartIndex;\n const hasParts = lastPartIndex !== -1;\n const lastPart = lastPartSn === endSn;\n // When low latency mode is disabled, we'll skip part requests once the last part index is found\n const nextSnStartIndex = lowLatencyMode ? 0 : lastPartIndex;\n if (hasParts) {\n msn = lastPart ? endSn + 1 : lastPartSn;\n part = lastPart ? nextSnStartIndex : lastPartIndex + 1;\n } else {\n msn = endSn + 1;\n }\n // Low-Latency CDN Tune-in: \"age\" header and time since load indicates we're behind by more than one part\n // Update directives to obtain the Playlist that has the estimated additional duration of media\n const lastAdvanced = details.age;\n const cdnAge = lastAdvanced + details.ageHeader;\n let currentGoal = Math.min(\n cdnAge - details.partTarget,\n details.targetduration * 1.5,\n );\n if (currentGoal > 0) {\n if (previousDetails && currentGoal > previousDetails.tuneInGoal) {\n // If we attempted to get the next or latest playlist update, but currentGoal increased,\n // then we either can't catchup, or the \"age\" header cannot be trusted.\n this.warn(\n `CDN Tune-in goal increased from: ${previousDetails.tuneInGoal} to: ${currentGoal} with playlist age: ${details.age}`,\n );\n currentGoal = 0;\n } else {\n const segments = Math.floor(currentGoal / details.targetduration);\n msn += segments;\n if (part !== undefined) {\n const parts = Math.round(\n (currentGoal % details.targetduration) / details.partTarget,\n );\n part += parts;\n }\n this.log(\n `CDN Tune-in age: ${\n details.ageHeader\n }s last advanced ${lastAdvanced.toFixed(\n 2,\n )}s goal: ${currentGoal} skip sn ${segments} to part ${part}`,\n );\n }\n details.tuneInGoal = currentGoal;\n }\n deliveryDirectives = this.getDeliveryDirectives(\n details,\n data.deliveryDirectives,\n msn,\n part,\n );\n if (lowLatencyMode || !lastPart) {\n this.loadPlaylist(deliveryDirectives);\n return;\n }\n } else if (details.canBlockReload || details.canSkipUntil) {\n deliveryDirectives = this.getDeliveryDirectives(\n details,\n data.deliveryDirectives,\n msn,\n part,\n );\n }\n const bufferInfo = this.hls.mainForwardBufferInfo;\n const position = bufferInfo ? bufferInfo.end - bufferInfo.len : 0;\n const distanceToLiveEdgeMs = (details.edge - position) * 1000;\n const reloadInterval = computeReloadInterval(\n details,\n distanceToLiveEdgeMs,\n );\n if (details.updated && now > this.requestScheduled + reloadInterval) {\n this.requestScheduled = stats.loading.start;\n }\n\n if (msn !== undefined && details.canBlockReload) {\n this.requestScheduled =\n stats.loading.first +\n reloadInterval -\n (details.partTarget * 1000 || 1000);\n } else if (\n this.requestScheduled === -1 ||\n this.requestScheduled + reloadInterval < now\n ) {\n this.requestScheduled = now;\n } else if (this.requestScheduled - now <= 0) {\n this.requestScheduled += reloadInterval;\n }\n let estimatedTimeUntilUpdate = this.requestScheduled - now;\n estimatedTimeUntilUpdate = Math.max(0, estimatedTimeUntilUpdate);\n this.log(\n `reload live playlist ${index} in ${Math.round(\n estimatedTimeUntilUpdate,\n )} ms`,\n );\n // this.log(\n // `live reload ${details.updated ? 'REFRESHED' : 'MISSED'}\n // reload in ${estimatedTimeUntilUpdate / 1000}\n // round trip ${(stats.loading.end - stats.loading.start) / 1000}\n // diff ${\n // (reloadInterval -\n // (estimatedTimeUntilUpdate +\n // stats.loading.end -\n // stats.loading.start)) /\n // 1000\n // }\n // reload interval ${reloadInterval / 1000}\n // target duration ${details.targetduration}\n // distance to edge ${distanceToLiveEdgeMs / 1000}`\n // );\n\n this.timer = self.setTimeout(\n () => this.loadPlaylist(deliveryDirectives),\n estimatedTimeUntilUpdate,\n );\n } else {\n this.clearTimer();\n }\n }\n\n private getDeliveryDirectives(\n details: LevelDetails,\n previousDeliveryDirectives: HlsUrlParameters | null,\n msn?: number,\n part?: number,\n ): HlsUrlParameters {\n let skip = getSkipValue(details);\n if (previousDeliveryDirectives?.skip && details.deltaUpdateFailed) {\n msn = previousDeliveryDirectives.msn;\n part = previousDeliveryDirectives.part;\n skip = HlsSkip.No;\n }\n return new HlsUrlParameters(msn, part, skip);\n }\n\n protected checkRetry(errorEvent: ErrorData): boolean {\n const errorDetails = errorEvent.details;\n const isTimeout = isTimeoutError(errorEvent);\n const errorAction = errorEvent.errorAction;\n const { action, retryCount = 0, retryConfig } = errorAction || {};\n const retry =\n !!errorAction &&\n !!retryConfig &&\n (action === NetworkErrorAction.RetryRequest ||\n (!errorAction.resolved &&\n action === NetworkErrorAction.SendAlternateToPenaltyBox));\n if (retry) {\n this.requestScheduled = -1;\n if (retryCount >= retryConfig.maxNumRetry) {\n return false;\n }\n if (isTimeout && errorEvent.context?.deliveryDirectives) {\n // The LL-HLS request already timed out so retry immediately\n this.warn(\n `Retrying playlist loading ${retryCount + 1}/${\n retryConfig.maxNumRetry\n } after \"${errorDetails}\" without delivery-directives`,\n );\n this.loadPlaylist();\n } else {\n const delay = getRetryDelay(retryConfig, retryCount);\n // Schedule level/track reload\n this.timer = self.setTimeout(() => this.loadPlaylist(), delay);\n this.warn(\n `Retrying playlist loading ${retryCount + 1}/${\n retryConfig.maxNumRetry\n } after \"${errorDetails}\" in ${delay}ms`,\n );\n }\n // `levelRetry = true` used to inform other controllers that a retry is happening\n errorEvent.levelRetry = true;\n errorAction.resolved = true;\n }\n return retry;\n }\n}\n","/*\n * compute an Exponential Weighted moving average\n * - https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average\n * - heavily inspired from shaka-player\n */\n\nclass EWMA {\n public readonly halfLife: number;\n private alpha_: number;\n private estimate_: number;\n private totalWeight_: number;\n\n // About half of the estimated value will be from the last |halfLife| samples by weight.\n constructor(halfLife: number, estimate: number = 0, weight: number = 0) {\n this.halfLife = halfLife;\n // Larger values of alpha expire historical data more slowly.\n this.alpha_ = halfLife ? Math.exp(Math.log(0.5) / halfLife) : 0;\n this.estimate_ = estimate;\n this.totalWeight_ = weight;\n }\n\n sample(weight: number, value: number) {\n const adjAlpha = Math.pow(this.alpha_, weight);\n this.estimate_ = value * (1 - adjAlpha) + adjAlpha * this.estimate_;\n this.totalWeight_ += weight;\n }\n\n getTotalWeight(): number {\n return this.totalWeight_;\n }\n\n getEstimate(): number {\n if (this.alpha_) {\n const zeroFactor = 1 - Math.pow(this.alpha_, this.totalWeight_);\n if (zeroFactor) {\n return this.estimate_ / zeroFactor;\n }\n }\n return this.estimate_;\n }\n}\n\nexport default EWMA;\n","/*\n * EWMA Bandwidth Estimator\n * - heavily inspired from shaka-player\n * Tracks bandwidth samples and estimates available bandwidth.\n * Based on the minimum of two exponentially-weighted moving averages with\n * different half-lives.\n */\n\nimport EWMA from '../utils/ewma';\n\nclass EwmaBandWidthEstimator {\n private defaultEstimate_: number;\n private minWeight_: number;\n private minDelayMs_: number;\n private slow_: EWMA;\n private fast_: EWMA;\n private defaultTTFB_: number;\n private ttfb_: EWMA;\n\n constructor(\n slow: number,\n fast: number,\n defaultEstimate: number,\n defaultTTFB: number = 100,\n ) {\n this.defaultEstimate_ = defaultEstimate;\n this.minWeight_ = 0.001;\n this.minDelayMs_ = 50;\n this.slow_ = new EWMA(slow);\n this.fast_ = new EWMA(fast);\n this.defaultTTFB_ = defaultTTFB;\n this.ttfb_ = new EWMA(slow);\n }\n\n update(slow: number, fast: number) {\n const { slow_, fast_, ttfb_ } = this;\n if (slow_.halfLife !== slow) {\n this.slow_ = new EWMA(slow, slow_.getEstimate(), slow_.getTotalWeight());\n }\n if (fast_.halfLife !== fast) {\n this.fast_ = new EWMA(fast, fast_.getEstimate(), fast_.getTotalWeight());\n }\n if (ttfb_.halfLife !== slow) {\n this.ttfb_ = new EWMA(slow, ttfb_.getEstimate(), ttfb_.getTotalWeight());\n }\n }\n\n sample(durationMs: number, numBytes: number) {\n durationMs = Math.max(durationMs, this.minDelayMs_);\n const numBits = 8 * numBytes;\n // weight is duration in seconds\n const durationS = durationMs / 1000;\n // value is bandwidth in bits/s\n const bandwidthInBps = numBits / durationS;\n this.fast_.sample(durationS, bandwidthInBps);\n this.slow_.sample(durationS, bandwidthInBps);\n }\n\n sampleTTFB(ttfb: number) {\n // weight is frequency curve applied to TTFB in seconds\n // (longer times have less weight with expected input under 1 second)\n const seconds = ttfb / 1000;\n const weight = Math.sqrt(2) * Math.exp(-Math.pow(seconds, 2) / 2);\n this.ttfb_.sample(weight, Math.max(ttfb, 5));\n }\n\n canEstimate(): boolean {\n return this.fast_.getTotalWeight() >= this.minWeight_;\n }\n\n getEstimate(): number {\n if (this.canEstimate()) {\n // console.log('slow estimate:'+ Math.round(this.slow_.getEstimate()));\n // console.log('fast estimate:'+ Math.round(this.fast_.getEstimate()));\n // Take the minimum of these two estimates. This should have the effect of\n // adapting down quickly, but up more slowly.\n return Math.min(this.fast_.getEstimate(), this.slow_.getEstimate());\n } else {\n return this.defaultEstimate_;\n }\n }\n\n getEstimateTTFB(): number {\n if (this.ttfb_.getTotalWeight() >= this.minWeight_) {\n return this.ttfb_.getEstimate();\n } else {\n return this.defaultTTFB_;\n }\n }\n\n destroy() {}\n}\nexport default EwmaBandWidthEstimator;\n","import { mimeTypeForCodec } from './codecs';\nimport type { Level, VideoRange } from '../types/level';\nimport type { AudioSelectionOption } from '../types/media-playlist';\nimport type { AudioTracksByGroup } from './rendition-helper';\n\nexport type MediaDecodingInfo = {\n supported: boolean;\n configurations: readonly MediaDecodingConfiguration[];\n decodingInfoResults: readonly MediaCapabilitiesDecodingInfo[];\n error?: Error;\n};\n\ntype BaseVideoConfiguration = Omit<VideoConfiguration, 'contentType'>;\n\nexport const SUPPORTED_INFO_DEFAULT: MediaDecodingInfo = {\n supported: true,\n configurations: [] as MediaDecodingConfiguration[],\n decodingInfoResults: [\n {\n supported: true,\n powerEfficient: true,\n smooth: true,\n },\n ],\n} as const;\n\nexport const SUPPORTED_INFO_CACHE: Record<\n string,\n Promise<MediaCapabilitiesDecodingInfo>\n> = {};\n\nexport function requiresMediaCapabilitiesDecodingInfo(\n level: Level,\n audioTracksByGroup: AudioTracksByGroup,\n currentVideoRange: VideoRange | undefined,\n currentFrameRate: number,\n currentBw: number,\n audioPreference: AudioSelectionOption | undefined,\n): boolean {\n // Only test support when configuration is exceeds minimum options\n const audioGroups = level.audioCodec ? level.audioGroups : null;\n const audioCodecPreference = audioPreference?.audioCodec;\n const channelsPreference = audioPreference?.channels;\n const maxChannels = channelsPreference\n ? parseInt(channelsPreference)\n : audioCodecPreference\n ? Infinity\n : 2;\n let audioChannels: Record<string, number> | null = null;\n if (audioGroups?.length) {\n try {\n if (audioGroups.length === 1 && audioGroups[0]) {\n audioChannels = audioTracksByGroup.groups[audioGroups[0]].channels;\n } else {\n audioChannels = audioGroups.reduce(\n (acc, groupId) => {\n if (groupId) {\n const audioTrackGroup = audioTracksByGroup.groups[groupId];\n if (!audioTrackGroup) {\n throw new Error(`Audio track group ${groupId} not found`);\n }\n // Sum all channel key values\n Object.keys(audioTrackGroup.channels).forEach((key) => {\n acc[key] = (acc[key] || 0) + audioTrackGroup.channels[key];\n });\n }\n return acc;\n },\n { 2: 0 },\n );\n }\n } catch (error) {\n return true;\n }\n }\n return (\n (level.videoCodec !== undefined &&\n ((level.width > 1920 && level.height > 1088) ||\n (level.height > 1920 && level.width > 1088) ||\n level.frameRate > Math.max(currentFrameRate, 30) ||\n (level.videoRange !== 'SDR' &&\n level.videoRange !== currentVideoRange) ||\n level.bitrate > Math.max(currentBw, 8e6))) ||\n (!!audioChannels &&\n Number.isFinite(maxChannels) &&\n Object.keys(audioChannels).some(\n (channels) => parseInt(channels) > maxChannels,\n ))\n );\n}\n\nexport function getMediaDecodingInfoPromise(\n level: Level,\n audioTracksByGroup: AudioTracksByGroup,\n mediaCapabilities: MediaCapabilities | undefined,\n): Promise<MediaDecodingInfo> {\n const videoCodecs = level.videoCodec;\n const audioCodecs = level.audioCodec;\n if (!videoCodecs || !audioCodecs || !mediaCapabilities) {\n return Promise.resolve(SUPPORTED_INFO_DEFAULT);\n }\n\n const baseVideoConfiguration: BaseVideoConfiguration = {\n width: level.width,\n height: level.height,\n bitrate: Math.ceil(Math.max(level.bitrate * 0.9, level.averageBitrate)),\n // Assume a framerate of 30fps since MediaCapabilities will not accept Level default of 0.\n framerate: level.frameRate || 30,\n };\n\n const videoRange = level.videoRange;\n if (videoRange !== 'SDR') {\n baseVideoConfiguration.transferFunction =\n videoRange.toLowerCase() as TransferFunction;\n }\n\n const configurations: MediaDecodingConfiguration[] = videoCodecs\n .split(',')\n .map((videoCodec) => ({\n type: 'media-source',\n video: {\n ...baseVideoConfiguration,\n contentType: mimeTypeForCodec(videoCodec, 'video'),\n },\n }));\n\n if (audioCodecs && level.audioGroups) {\n level.audioGroups.forEach((audioGroupId) => {\n if (!audioGroupId) {\n return;\n }\n audioTracksByGroup.groups[audioGroupId]?.tracks.forEach((audioTrack) => {\n if (audioTrack.groupId === audioGroupId) {\n const channels = audioTrack.channels || '';\n const channelsNumber = parseFloat(channels);\n if (Number.isFinite(channelsNumber) && channelsNumber > 2) {\n configurations.push.apply(\n configurations,\n audioCodecs.split(',').map((audioCodec) => ({\n type: 'media-source',\n audio: {\n contentType: mimeTypeForCodec(audioCodec, 'audio'),\n channels: '' + channelsNumber,\n // spatialRendering:\n // audioCodec === 'ec-3' && channels.indexOf('JOC'),\n },\n })),\n );\n }\n }\n });\n });\n }\n\n return Promise.all(\n configurations.map((configuration) => {\n // Cache MediaCapabilities promises\n const decodingInfoKey = getMediaDecodingInfoKey(configuration);\n return (\n SUPPORTED_INFO_CACHE[decodingInfoKey] ||\n (SUPPORTED_INFO_CACHE[decodingInfoKey] =\n mediaCapabilities.decodingInfo(configuration))\n );\n }),\n )\n .then((decodingInfoResults) => ({\n supported: !decodingInfoResults.some((info) => !info.supported),\n configurations,\n decodingInfoResults,\n }))\n .catch((error) => ({\n supported: false,\n configurations,\n decodingInfoResults: [] as MediaCapabilitiesDecodingInfo[],\n error,\n }));\n}\n\nfunction getMediaDecodingInfoKey(config: MediaDecodingConfiguration): string {\n const { audio, video } = config;\n const mediaConfig = video || audio;\n if (mediaConfig) {\n const codec = mediaConfig.contentType.split('\"')[1];\n if (video) {\n return `r${video.height}x${video.width}f${Math.ceil(video.framerate)}${\n video.transferFunction || 'sd'\n }_${codec}_${Math.ceil(video.bitrate / 1e5)}`;\n }\n if (audio) {\n return `c${audio.channels}${audio.spatialRendering ? 's' : 'n'}_${codec}`;\n }\n }\n return '';\n}\n","import { type VideoRange, VideoRangeValues } from '../types/level';\nimport type { VideoSelectionOption } from '../types/media-playlist';\n\n/**\n * @returns Whether we can detect and validate HDR capability within the window context\n */\nexport function isHdrSupported() {\n if (typeof matchMedia === 'function') {\n const mediaQueryList = matchMedia('(dynamic-range: high)');\n const badQuery = matchMedia('bad query');\n if (mediaQueryList.media !== badQuery.media) {\n return mediaQueryList.matches === true;\n }\n }\n return false;\n}\n\n/**\n * Sanitizes inputs to return the active video selection options for HDR/SDR.\n * When both inputs are null:\n *\n * `{ preferHDR: false, allowedVideoRanges: [] }`\n *\n * When `currentVideoRange` non-null, maintain the active range:\n *\n * `{ preferHDR: currentVideoRange !== 'SDR', allowedVideoRanges: [currentVideoRange] }`\n *\n * When VideoSelectionOption non-null:\n *\n * - Allow all video ranges if `allowedVideoRanges` unspecified.\n * - If `preferHDR` is non-null use the value to filter `allowedVideoRanges`.\n * - Else check window for HDR support and set `preferHDR` to the result.\n *\n * @param currentVideoRange\n * @param videoPreference\n */\nexport function getVideoSelectionOptions(\n currentVideoRange: VideoRange | undefined,\n videoPreference: VideoSelectionOption | undefined,\n) {\n let preferHDR = false;\n let allowedVideoRanges: Array<VideoRange> = [];\n\n if (currentVideoRange) {\n preferHDR = currentVideoRange !== 'SDR';\n allowedVideoRanges = [currentVideoRange];\n }\n\n if (videoPreference) {\n allowedVideoRanges =\n videoPreference.allowedVideoRanges || VideoRangeValues.slice(0);\n preferHDR =\n videoPreference.preferHDR !== undefined\n ? videoPreference.preferHDR\n : isHdrSupported();\n\n if (preferHDR) {\n allowedVideoRanges = allowedVideoRanges.filter(\n (range: VideoRange) => range !== 'SDR',\n );\n } else {\n allowedVideoRanges = ['SDR'];\n }\n }\n\n return {\n preferHDR,\n allowedVideoRanges,\n };\n}\n","import { codecsSetSelectionPreferenceValue } from './codecs';\nimport { getVideoSelectionOptions } from './hdr';\nimport { logger } from './logger';\nimport type { Level, VideoRange } from '../types/level';\nimport type {\n AudioSelectionOption,\n MediaPlaylist,\n SubtitleSelectionOption,\n VideoSelectionOption,\n} from '../types/media-playlist';\n\nexport type CodecSetTier = {\n minBitrate: number;\n minHeight: number;\n minFramerate: number;\n maxScore: number;\n videoRanges: Record<string, number>;\n channels: Record<string, number>;\n hasDefaultAudio: boolean;\n fragmentError: number;\n};\n\ntype AudioTrackGroup = {\n tracks: MediaPlaylist[];\n channels: Record<string, number>;\n hasDefault: boolean;\n hasAutoSelect: boolean;\n};\ntype StartParameters = {\n codecSet: string | undefined;\n videoRanges: Array<VideoRange>;\n preferHDR: boolean;\n minFramerate: number;\n minBitrate: number;\n};\n\nexport function getStartCodecTier(\n codecTiers: Record<string, CodecSetTier>,\n currentVideoRange: VideoRange | undefined,\n currentBw: number,\n audioPreference: AudioSelectionOption | undefined,\n videoPreference: VideoSelectionOption | undefined,\n): StartParameters {\n const codecSets = Object.keys(codecTiers);\n const channelsPreference = audioPreference?.channels;\n const audioCodecPreference = audioPreference?.audioCodec;\n const preferStereo = channelsPreference && parseInt(channelsPreference) === 2;\n // Use first level set to determine stereo, and minimum resolution and framerate\n let hasStereo = true;\n let hasCurrentVideoRange = false;\n let minHeight = Infinity;\n let minFramerate = Infinity;\n let minBitrate = Infinity;\n let selectedScore = 0;\n let videoRanges: Array<VideoRange> = [];\n\n const { preferHDR, allowedVideoRanges } = getVideoSelectionOptions(\n currentVideoRange,\n videoPreference,\n );\n\n for (let i = codecSets.length; i--; ) {\n const tier = codecTiers[codecSets[i]];\n hasStereo = tier.channels[2] > 0;\n minHeight = Math.min(minHeight, tier.minHeight);\n minFramerate = Math.min(minFramerate, tier.minFramerate);\n minBitrate = Math.min(minBitrate, tier.minBitrate);\n const matchingVideoRanges = allowedVideoRanges.filter(\n (range) => tier.videoRanges[range] > 0,\n );\n if (matchingVideoRanges.length > 0) {\n hasCurrentVideoRange = true;\n videoRanges = matchingVideoRanges;\n }\n }\n minHeight = Number.isFinite(minHeight) ? minHeight : 0;\n minFramerate = Number.isFinite(minFramerate) ? minFramerate : 0;\n const maxHeight = Math.max(1080, minHeight);\n const maxFramerate = Math.max(30, minFramerate);\n minBitrate = Number.isFinite(minBitrate) ? minBitrate : currentBw;\n currentBw = Math.max(minBitrate, currentBw);\n // If there are no variants with matching preference, set currentVideoRange to undefined\n if (!hasCurrentVideoRange) {\n currentVideoRange = undefined;\n videoRanges = [];\n }\n const codecSet = codecSets.reduce(\n (selected: string | undefined, candidate: string) => {\n // Remove candiates which do not meet bitrate, default audio, stereo or channels preference, 1080p or lower, 30fps or lower, or SDR/HDR selection if present\n const candidateTier = codecTiers[candidate];\n if (candidate === selected) {\n return selected;\n }\n if (candidateTier.minBitrate > currentBw) {\n logStartCodecCandidateIgnored(\n candidate,\n `min bitrate of ${candidateTier.minBitrate} > current estimate of ${currentBw}`,\n );\n return selected;\n }\n if (!candidateTier.hasDefaultAudio) {\n logStartCodecCandidateIgnored(\n candidate,\n `no renditions with default or auto-select sound found`,\n );\n return selected;\n }\n if (\n audioCodecPreference &&\n candidate.indexOf(audioCodecPreference.substring(0, 4)) % 5 !== 0\n ) {\n logStartCodecCandidateIgnored(\n candidate,\n `audio codec preference \"${audioCodecPreference}\" not found`,\n );\n return selected;\n }\n if (channelsPreference && !preferStereo) {\n if (!candidateTier.channels[channelsPreference]) {\n logStartCodecCandidateIgnored(\n candidate,\n `no renditions with ${channelsPreference} channel sound found (channels options: ${Object.keys(\n candidateTier.channels,\n )})`,\n );\n return selected;\n }\n } else if (\n (!audioCodecPreference || preferStereo) &&\n hasStereo &&\n candidateTier.channels['2'] === 0\n ) {\n logStartCodecCandidateIgnored(\n candidate,\n `no renditions with stereo sound found`,\n );\n return selected;\n }\n if (candidateTier.minHeight > maxHeight) {\n logStartCodecCandidateIgnored(\n candidate,\n `min resolution of ${candidateTier.minHeight} > maximum of ${maxHeight}`,\n );\n return selected;\n }\n if (candidateTier.minFramerate > maxFramerate) {\n logStartCodecCandidateIgnored(\n candidate,\n `min framerate of ${candidateTier.minFramerate} > maximum of ${maxFramerate}`,\n );\n return selected;\n }\n if (!videoRanges.some((range) => candidateTier.videoRanges[range] > 0)) {\n logStartCodecCandidateIgnored(\n candidate,\n `no variants with VIDEO-RANGE of ${JSON.stringify(\n videoRanges,\n )} found`,\n );\n return selected;\n }\n if (candidateTier.maxScore < selectedScore) {\n logStartCodecCandidateIgnored(\n candidate,\n `max score of ${candidateTier.maxScore} < selected max of ${selectedScore}`,\n );\n return selected;\n }\n // Remove candiates with less preferred codecs or more errors\n if (\n selected &&\n (codecsSetSelectionPreferenceValue(candidate) >=\n codecsSetSelectionPreferenceValue(selected) ||\n candidateTier.fragmentError > codecTiers[selected].fragmentError)\n ) {\n return selected;\n }\n selectedScore = candidateTier.maxScore;\n return candidate;\n },\n undefined,\n );\n return {\n codecSet,\n videoRanges,\n preferHDR,\n minFramerate,\n minBitrate,\n };\n}\n\nfunction logStartCodecCandidateIgnored(codeSet: string, reason: string) {\n logger.log(\n `[abr] start candidates with \"${codeSet}\" ignored because ${reason}`,\n );\n}\n\nexport type AudioTracksByGroup = {\n hasDefaultAudio: boolean;\n hasAutoSelectAudio: boolean;\n groups: Record<string, AudioTrackGroup>;\n};\n\nexport function getAudioTracksByGroup(allAudioTracks: MediaPlaylist[]) {\n return allAudioTracks.reduce(\n (audioTracksByGroup: AudioTracksByGroup, track) => {\n let trackGroup = audioTracksByGroup.groups[track.groupId];\n if (!trackGroup) {\n trackGroup = audioTracksByGroup.groups[track.groupId] = {\n tracks: [],\n channels: { 2: 0 },\n hasDefault: false,\n hasAutoSelect: false,\n };\n }\n trackGroup.tracks.push(track);\n const channelsKey = track.channels || '2';\n trackGroup.channels[channelsKey] =\n (trackGroup.channels[channelsKey] || 0) + 1;\n trackGroup.hasDefault = trackGroup.hasDefault || track.default;\n trackGroup.hasAutoSelect = trackGroup.hasAutoSelect || track.autoselect;\n if (trackGroup.hasDefault) {\n audioTracksByGroup.hasDefaultAudio = true;\n }\n if (trackGroup.hasAutoSelect) {\n audioTracksByGroup.hasAutoSelectAudio = true;\n }\n return audioTracksByGroup;\n },\n {\n hasDefaultAudio: false,\n hasAutoSelectAudio: false,\n groups: {},\n },\n );\n}\n\nexport function getCodecTiers(\n levels: Level[],\n audioTracksByGroup: AudioTracksByGroup,\n minAutoLevel: number,\n maxAutoLevel: number,\n): Record<string, CodecSetTier> {\n return levels\n .slice(minAutoLevel, maxAutoLevel + 1)\n .reduce((tiers: Record<string, CodecSetTier>, level) => {\n if (!level.codecSet) {\n return tiers;\n }\n const audioGroups = level.audioGroups;\n let tier = tiers[level.codecSet];\n if (!tier) {\n tiers[level.codecSet] = tier = {\n minBitrate: Infinity,\n minHeight: Infinity,\n minFramerate: Infinity,\n maxScore: 0,\n videoRanges: { SDR: 0 },\n channels: { '2': 0 },\n hasDefaultAudio: !audioGroups,\n fragmentError: 0,\n };\n }\n tier.minBitrate = Math.min(tier.minBitrate, level.bitrate);\n const lesserWidthOrHeight = Math.min(level.height, level.width);\n tier.minHeight = Math.min(tier.minHeight, lesserWidthOrHeight);\n tier.minFramerate = Math.min(tier.minFramerate, level.frameRate);\n tier.maxScore = Math.max(tier.maxScore, level.score);\n tier.fragmentError += level.fragmentError;\n tier.videoRanges[level.videoRange] =\n (tier.videoRanges[level.videoRange] || 0) + 1;\n if (__USE_ALT_AUDIO__ && audioGroups) {\n audioGroups.forEach((audioGroupId) => {\n if (!audioGroupId) {\n return;\n }\n const audioGroup = audioTracksByGroup.groups[audioGroupId];\n if (!audioGroup) {\n return;\n }\n // Default audio is any group with DEFAULT=YES, or if missing then any group with AUTOSELECT=YES, or all variants\n tier.hasDefaultAudio =\n tier.hasDefaultAudio || audioTracksByGroup.hasDefaultAudio\n ? audioGroup.hasDefault\n : audioGroup.hasAutoSelect ||\n (!audioTracksByGroup.hasDefaultAudio &&\n !audioTracksByGroup.hasAutoSelectAudio);\n Object.keys(audioGroup.channels).forEach((channels) => {\n tier.channels[channels] =\n (tier.channels[channels] || 0) + audioGroup.channels[channels];\n });\n });\n }\n return tiers;\n }, {});\n}\n\nexport function findMatchingOption(\n option: MediaPlaylist | AudioSelectionOption | SubtitleSelectionOption,\n tracks: MediaPlaylist[],\n matchPredicate?: (\n option: MediaPlaylist | AudioSelectionOption | SubtitleSelectionOption,\n track: MediaPlaylist,\n ) => boolean,\n): number {\n if ('attrs' in option) {\n const index = tracks.indexOf(option);\n if (index !== -1) {\n return index;\n }\n }\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (matchesOption(option, track, matchPredicate)) {\n return i;\n }\n }\n return -1;\n}\n\nexport function matchesOption(\n option: MediaPlaylist | AudioSelectionOption | SubtitleSelectionOption,\n track: MediaPlaylist,\n matchPredicate?: (\n option: MediaPlaylist | AudioSelectionOption | SubtitleSelectionOption,\n track: MediaPlaylist,\n ) => boolean,\n): boolean {\n const { groupId, name, lang, assocLang, default: isDefault } = option;\n const forced = (option as SubtitleSelectionOption).forced;\n return (\n (groupId === undefined || track.groupId === groupId) &&\n (name === undefined || track.name === name) &&\n (lang === undefined || track.lang === lang) &&\n (lang === undefined || track.assocLang === assocLang) &&\n (isDefault === undefined || track.default === isDefault) &&\n (forced === undefined || track.forced === forced) &&\n (!('characteristics' in option) ||\n characteristicsMatch(\n option.characteristics || '',\n track.characteristics,\n )) &&\n (matchPredicate === undefined || matchPredicate(option, track))\n );\n}\n\nfunction characteristicsMatch(\n characteristicsA: string,\n characteristicsB: string = '',\n): boolean {\n const arrA = characteristicsA.split(',');\n const arrB = characteristicsB.split(',');\n // Expects each item to be unique:\n return (\n arrA.length === arrB.length && !arrA.some((el) => arrB.indexOf(el) === -1)\n );\n}\n\nexport function audioMatchPredicate(\n option: MediaPlaylist | AudioSelectionOption,\n track: MediaPlaylist,\n) {\n const { audioCodec, channels } = option;\n return (\n (audioCodec === undefined ||\n (track.audioCodec || '').substring(0, 4) ===\n audioCodec.substring(0, 4)) &&\n (channels === undefined || channels === (track.channels || '2'))\n );\n}\n\nexport function findClosestLevelWithAudioGroup(\n option: MediaPlaylist | AudioSelectionOption,\n levels: Level[],\n allAudioTracks: MediaPlaylist[],\n searchIndex: number,\n matchPredicate: (\n option: MediaPlaylist | AudioSelectionOption,\n track: MediaPlaylist,\n ) => boolean,\n): number {\n const currentLevel = levels[searchIndex];\n // Are there variants with same URI as current level?\n // If so, find a match that does not require any level URI change\n const variants = levels.reduce(\n (variantMap: { [uri: string]: number[] }, level, index) => {\n const uri = level.uri;\n const renditions = variantMap[uri] || (variantMap[uri] = []);\n renditions.push(index);\n return variantMap;\n },\n {},\n );\n const renditions = variants[currentLevel.uri];\n if (renditions.length > 1) {\n searchIndex = Math.max.apply(Math, renditions);\n }\n // Find best match\n const currentVideoRange = currentLevel.videoRange;\n const currentFrameRate = currentLevel.frameRate;\n const currentVideoCodec = currentLevel.codecSet.substring(0, 4);\n const matchingVideo = searchDownAndUpList(\n levels,\n searchIndex,\n (level: Level) => {\n if (\n level.videoRange !== currentVideoRange ||\n level.frameRate !== currentFrameRate ||\n level.codecSet.substring(0, 4) !== currentVideoCodec\n ) {\n return false;\n }\n const audioGroups = level.audioGroups;\n const tracks = allAudioTracks.filter(\n (track): boolean =>\n !audioGroups || audioGroups.indexOf(track.groupId) !== -1,\n );\n return findMatchingOption(option, tracks, matchPredicate) > -1;\n },\n );\n if (matchingVideo > -1) {\n return matchingVideo;\n }\n return searchDownAndUpList(levels, searchIndex, (level: Level) => {\n const audioGroups = level.audioGroups;\n const tracks = allAudioTracks.filter(\n (track): boolean =>\n !audioGroups || audioGroups.indexOf(track.groupId) !== -1,\n );\n return findMatchingOption(option, tracks, matchPredicate) > -1;\n });\n}\n\nfunction searchDownAndUpList(\n arr: any[],\n searchIndex: number,\n predicate: (item: any) => boolean,\n): number {\n for (let i = searchIndex; i > -1; i--) {\n if (predicate(arr[i])) {\n return i;\n }\n }\n for (let i = searchIndex + 1; i < arr.length; i++) {\n if (predicate(arr[i])) {\n return i;\n }\n }\n return -1;\n}\n","/**\n * @ignore\n * Sub-class specialization of EventHandler base class.\n *\n * TaskLoop allows to schedule a task function being called (optionnaly repeatedly) on the main loop,\n * scheduled asynchroneously, avoiding recursive calls in the same tick.\n *\n * The task itself is implemented in `doTick`. It can be requested and called for single execution\n * using the `tick` method.\n *\n * It will be assured that the task execution method (`tick`) only gets called once per main loop \"tick\",\n * no matter how often it gets requested for execution. Execution in further ticks will be scheduled accordingly.\n *\n * If further execution requests have already been scheduled on the next tick, it can be checked with `hasNextTick`,\n * and cancelled with `clearNextTick`.\n *\n * The task can be scheduled as an interval repeatedly with a period as parameter (see `setInterval`, `clearInterval`).\n *\n * Sub-classes need to implement the `doTick` method which will effectively have the task execution routine.\n *\n * Further explanations:\n *\n * The baseclass has a `tick` method that will schedule the doTick call. It may be called synchroneously\n * only for a stack-depth of one. On re-entrant calls, sub-sequent calls are scheduled for next main loop ticks.\n *\n * When the task execution (`tick` method) is called in re-entrant way this is detected and\n * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further\n * task processing on the next main loop iteration (also known as \"next tick\" in the Node/JS runtime lingo).\n */\nexport default class TaskLoop {\n private readonly _boundTick: () => void;\n private _tickTimer: number | null = null;\n private _tickInterval: number | null = null;\n private _tickCallCount = 0;\n\n constructor() {\n this._boundTick = this.tick.bind(this);\n }\n\n public destroy() {\n this.onHandlerDestroying();\n this.onHandlerDestroyed();\n }\n\n protected onHandlerDestroying() {\n // clear all timers before unregistering from event bus\n this.clearNextTick();\n this.clearInterval();\n }\n\n protected onHandlerDestroyed() {}\n\n public hasInterval(): boolean {\n return !!this._tickInterval;\n }\n\n public hasNextTick(): boolean {\n return !!this._tickTimer;\n }\n\n /**\n * @param millis - Interval time (ms)\n * @eturns True when interval has been scheduled, false when already scheduled (no effect)\n */\n public setInterval(millis: number): boolean {\n if (!this._tickInterval) {\n this._tickCallCount = 0;\n this._tickInterval = self.setInterval(this._boundTick, millis);\n return true;\n }\n return false;\n }\n\n /**\n * @returns True when interval was cleared, false when none was set (no effect)\n */\n public clearInterval(): boolean {\n if (this._tickInterval) {\n self.clearInterval(this._tickInterval);\n this._tickInterval = null;\n return true;\n }\n return false;\n }\n\n /**\n * @returns True when timeout was cleared, false when none was set (no effect)\n */\n public clearNextTick(): boolean {\n if (this._tickTimer) {\n self.clearTimeout(this._tickTimer);\n this._tickTimer = null;\n return true;\n }\n return false;\n }\n\n /**\n * Will call the subclass doTick implementation in this main loop tick\n * or in the next one (via setTimeout(,0)) in case it has already been called\n * in this tick (in case this is a re-entrant call).\n */\n public tick(): void {\n this._tickCallCount++;\n if (this._tickCallCount === 1) {\n this.doTick();\n // re-entrant call to tick from previous doTick call stack\n // -> schedule a call on the next main loop iteration to process this task processing request\n if (this._tickCallCount > 1) {\n // make sure only one timer exists at any time at max\n this.tickImmediate();\n }\n this._tickCallCount = 0;\n }\n }\n\n public tickImmediate(): void {\n this.clearNextTick();\n this._tickTimer = self.setTimeout(this._boundTick, 0);\n }\n\n /**\n * For subclass to implement task logic\n * @abstract\n */\n protected doTick(): void {}\n}\n","import { Events } from '../events';\nimport { Fragment, Part } from '../loader/fragment';\nimport { PlaylistLevelType } from '../types/loader';\nimport type { SourceBufferName } from '../types/buffer';\nimport type {\n FragmentBufferedRange,\n FragmentEntity,\n FragmentTimeRange,\n} from '../types/fragment-tracker';\nimport type { ComponentAPI } from '../types/component-api';\nimport type {\n BufferAppendedData,\n FragBufferedData,\n FragLoadedData,\n} from '../types/events';\nimport type Hls from '../hls';\n\nexport const enum FragmentState {\n NOT_LOADED = 'NOT_LOADED',\n APPENDING = 'APPENDING',\n PARTIAL = 'PARTIAL',\n OK = 'OK',\n}\n\nexport class FragmentTracker implements ComponentAPI {\n private activePartLists: { [key in PlaylistLevelType]?: Part[] } =\n Object.create(null);\n private endListFragments: { [key in PlaylistLevelType]?: FragmentEntity } =\n Object.create(null);\n private fragments: Partial<Record<string, FragmentEntity>> =\n Object.create(null);\n private timeRanges:\n | {\n [key in SourceBufferName]?: TimeRanges;\n }\n | null = Object.create(null);\n\n private bufferPadding: number = 0.2;\n private hls: Hls;\n private hasGaps: boolean = false;\n\n constructor(hls: Hls) {\n this.hls = hls;\n\n this._registerListeners();\n }\n\n private _registerListeners() {\n const { hls } = this;\n hls.on(Events.BUFFER_APPENDED, this.onBufferAppended, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);\n }\n\n private _unregisterListeners() {\n const { hls } = this;\n hls.off(Events.BUFFER_APPENDED, this.onBufferAppended, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);\n }\n\n public destroy() {\n this._unregisterListeners();\n // @ts-ignore\n this.fragments =\n // @ts-ignore\n this.activePartLists =\n // @ts-ignore\n this.endListFragments =\n this.timeRanges =\n null;\n }\n\n /**\n * Return a Fragment or Part with an appended range that matches the position and levelType\n * Otherwise, return null\n */\n public getAppendedFrag(\n position: number,\n levelType: PlaylistLevelType,\n ): Fragment | Part | null {\n const activeParts = this.activePartLists[levelType];\n if (activeParts) {\n for (let i = activeParts.length; i--; ) {\n const activePart = activeParts[i];\n if (!activePart) {\n break;\n }\n const appendedPTS = activePart.end;\n if (\n activePart.start <= position &&\n appendedPTS !== null &&\n position <= appendedPTS\n ) {\n return activePart;\n }\n }\n }\n return this.getBufferedFrag(position, levelType);\n }\n\n /**\n * Return a buffered Fragment that matches the position and levelType.\n * A buffered Fragment is one whose loading, parsing and appending is done (completed or \"partial\" meaning aborted).\n * If not found any Fragment, return null\n */\n public getBufferedFrag(\n position: number,\n levelType: PlaylistLevelType,\n ): Fragment | null {\n const { fragments } = this;\n const keys = Object.keys(fragments);\n for (let i = keys.length; i--; ) {\n const fragmentEntity = fragments[keys[i]];\n if (fragmentEntity?.body.type === levelType && fragmentEntity.buffered) {\n const frag = fragmentEntity.body;\n if (frag.start <= position && position <= frag.end) {\n return frag;\n }\n }\n }\n return null;\n }\n\n /**\n * Partial fragments effected by coded frame eviction will be removed\n * The browser will unload parts of the buffer to free up memory for new buffer data\n * Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)\n */\n public detectEvictedFragments(\n elementaryStream: SourceBufferName,\n timeRange: TimeRanges,\n playlistType: PlaylistLevelType,\n appendedPart?: Part | null,\n ) {\n if (this.timeRanges) {\n this.timeRanges[elementaryStream] = timeRange;\n }\n // Check if any flagged fragments have been unloaded\n // excluding anything newer than appendedPartSn\n const appendedPartSn = (appendedPart?.fragment.sn || -1) as number;\n Object.keys(this.fragments).forEach((key) => {\n const fragmentEntity = this.fragments[key];\n if (!fragmentEntity) {\n return;\n }\n if (appendedPartSn >= (fragmentEntity.body.sn as number)) {\n return;\n }\n if (!fragmentEntity.buffered && !fragmentEntity.loaded) {\n if (fragmentEntity.body.type === playlistType) {\n this.removeFragment(fragmentEntity.body);\n }\n return;\n }\n const esData = fragmentEntity.range[elementaryStream];\n if (!esData) {\n return;\n }\n esData.time.some((time: FragmentTimeRange) => {\n const isNotBuffered = !this.isTimeBuffered(\n time.startPTS,\n time.endPTS,\n timeRange,\n );\n if (isNotBuffered) {\n // Unregister partial fragment as it needs to load again to be reused\n this.removeFragment(fragmentEntity.body);\n }\n return isNotBuffered;\n });\n });\n }\n\n /**\n * Checks if the fragment passed in is loaded in the buffer properly\n * Partially loaded fragments will be registered as a partial fragment\n */\n public detectPartialFragments(data: FragBufferedData) {\n const timeRanges = this.timeRanges;\n const { frag, part } = data;\n if (!timeRanges || frag.sn === 'initSegment') {\n return;\n }\n\n const fragKey = getFragmentKey(frag);\n const fragmentEntity = this.fragments[fragKey];\n if (!fragmentEntity || (fragmentEntity.buffered && frag.gap)) {\n return;\n }\n const isFragHint = !frag.relurl;\n Object.keys(timeRanges).forEach((elementaryStream: SourceBufferName) => {\n const streamInfo = frag.elementaryStreams[elementaryStream];\n if (!streamInfo) {\n return;\n }\n const timeRange = timeRanges[elementaryStream] as TimeRanges;\n const partial = isFragHint || streamInfo.partial === true;\n fragmentEntity.range[elementaryStream] = this.getBufferedTimes(\n frag,\n part,\n partial,\n timeRange,\n );\n });\n fragmentEntity.loaded = null;\n if (Object.keys(fragmentEntity.range).length) {\n fragmentEntity.buffered = true;\n const endList = (fragmentEntity.body.endList =\n frag.endList || fragmentEntity.body.endList);\n if (endList) {\n this.endListFragments[fragmentEntity.body.type] = fragmentEntity;\n }\n if (!isPartial(fragmentEntity)) {\n // Remove older fragment parts from lookup after frag is tracked as buffered\n this.removeParts((frag.sn as number) - 1, frag.type);\n }\n } else {\n // remove fragment if nothing was appended\n this.removeFragment(fragmentEntity.body);\n }\n }\n\n private removeParts(snToKeep: number, levelType: PlaylistLevelType) {\n const activeParts = this.activePartLists[levelType];\n if (!activeParts) {\n return;\n }\n this.activePartLists[levelType] = activeParts.filter(\n (part) => (part.fragment.sn as number) >= snToKeep,\n );\n }\n\n public fragBuffered(frag: Fragment, force?: true) {\n const fragKey = getFragmentKey(frag);\n let fragmentEntity = this.fragments[fragKey];\n if (!fragmentEntity && force) {\n fragmentEntity = this.fragments[fragKey] = {\n body: frag,\n appendedPTS: null,\n loaded: null,\n buffered: false,\n range: Object.create(null),\n };\n if (frag.gap) {\n this.hasGaps = true;\n }\n }\n if (fragmentEntity) {\n fragmentEntity.loaded = null;\n fragmentEntity.buffered = true;\n }\n }\n\n private getBufferedTimes(\n fragment: Fragment,\n part: Part | null,\n partial: boolean,\n timeRange: TimeRanges,\n ): FragmentBufferedRange {\n const buffered: FragmentBufferedRange = {\n time: [],\n partial,\n };\n const startPTS = fragment.start;\n const endPTS = fragment.end;\n const minEndPTS = fragment.minEndPTS || endPTS;\n const maxStartPTS = fragment.maxStartPTS || startPTS;\n for (let i = 0; i < timeRange.length; i++) {\n const startTime = timeRange.start(i) - this.bufferPadding;\n const endTime = timeRange.end(i) + this.bufferPadding;\n if (maxStartPTS >= startTime && minEndPTS <= endTime) {\n // Fragment is entirely contained in buffer\n // No need to check the other timeRange times since it's completely playable\n buffered.time.push({\n startPTS: Math.max(startPTS, timeRange.start(i)),\n endPTS: Math.min(endPTS, timeRange.end(i)),\n });\n break;\n } else if (startPTS < endTime && endPTS > startTime) {\n const start = Math.max(startPTS, timeRange.start(i));\n const end = Math.min(endPTS, timeRange.end(i));\n if (end > start) {\n buffered.partial = true;\n // Check for intersection with buffer\n // Get playable sections of the fragment\n buffered.time.push({\n startPTS: start,\n endPTS: end,\n });\n }\n } else if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n break;\n }\n }\n return buffered;\n }\n\n /**\n * Gets the partial fragment for a certain time\n */\n public getPartialFragment(time: number): Fragment | null {\n let bestFragment: Fragment | null = null;\n let timePadding: number;\n let startTime: number;\n let endTime: number;\n let bestOverlap: number = 0;\n const { bufferPadding, fragments } = this;\n Object.keys(fragments).forEach((key) => {\n const fragmentEntity = fragments[key];\n if (!fragmentEntity) {\n return;\n }\n if (isPartial(fragmentEntity)) {\n startTime = fragmentEntity.body.start - bufferPadding;\n endTime = fragmentEntity.body.end + bufferPadding;\n if (time >= startTime && time <= endTime) {\n // Use the fragment that has the most padding from start and end time\n timePadding = Math.min(time - startTime, endTime - time);\n if (bestOverlap <= timePadding) {\n bestFragment = fragmentEntity.body;\n bestOverlap = timePadding;\n }\n }\n }\n });\n return bestFragment;\n }\n\n public isEndListAppended(type: PlaylistLevelType): boolean {\n const lastFragmentEntity = this.endListFragments[type];\n return (\n lastFragmentEntity !== undefined &&\n (lastFragmentEntity.buffered || isPartial(lastFragmentEntity))\n );\n }\n\n public getState(fragment: Fragment): FragmentState {\n const fragKey = getFragmentKey(fragment);\n const fragmentEntity = this.fragments[fragKey];\n\n if (fragmentEntity) {\n if (!fragmentEntity.buffered) {\n return FragmentState.APPENDING;\n } else if (isPartial(fragmentEntity)) {\n return FragmentState.PARTIAL;\n } else {\n return FragmentState.OK;\n }\n }\n\n return FragmentState.NOT_LOADED;\n }\n\n private isTimeBuffered(\n startPTS: number,\n endPTS: number,\n timeRange: TimeRanges,\n ): boolean {\n let startTime;\n let endTime;\n for (let i = 0; i < timeRange.length; i++) {\n startTime = timeRange.start(i) - this.bufferPadding;\n endTime = timeRange.end(i) + this.bufferPadding;\n if (startPTS >= startTime && endPTS <= endTime) {\n return true;\n }\n\n if (endPTS <= startTime) {\n // No need to check the rest of the timeRange as it is in order\n return false;\n }\n }\n\n return false;\n }\n\n private onFragLoaded(event: Events.FRAG_LOADED, data: FragLoadedData) {\n const { frag, part } = data;\n // don't track initsegment (for which sn is not a number)\n // don't track frags used for bitrateTest, they're irrelevant.\n if (frag.sn === 'initSegment' || frag.bitrateTest) {\n return;\n }\n\n // Fragment entity `loaded` FragLoadedData is null when loading parts\n const loaded = part ? null : data;\n\n const fragKey = getFragmentKey(frag);\n this.fragments[fragKey] = {\n body: frag,\n appendedPTS: null,\n loaded,\n buffered: false,\n range: Object.create(null),\n };\n }\n\n private onBufferAppended(\n event: Events.BUFFER_APPENDED,\n data: BufferAppendedData,\n ) {\n const { frag, part, timeRanges } = data;\n if (frag.sn === 'initSegment') {\n return;\n }\n const playlistType = frag.type;\n if (part) {\n let activeParts = this.activePartLists[playlistType];\n if (!activeParts) {\n this.activePartLists[playlistType] = activeParts = [];\n }\n activeParts.push(part);\n }\n // Store the latest timeRanges loaded in the buffer\n this.timeRanges = timeRanges;\n Object.keys(timeRanges).forEach((elementaryStream: SourceBufferName) => {\n const timeRange = timeRanges[elementaryStream] as TimeRanges;\n this.detectEvictedFragments(\n elementaryStream,\n timeRange,\n playlistType,\n part,\n );\n });\n }\n\n private onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData) {\n this.detectPartialFragments(data);\n }\n\n private hasFragment(fragment: Fragment): boolean {\n const fragKey = getFragmentKey(fragment);\n return !!this.fragments[fragKey];\n }\n\n public hasParts(type: PlaylistLevelType): boolean {\n return !!this.activePartLists[type]?.length;\n }\n\n public removeFragmentsInRange(\n start: number,\n end: number,\n playlistType: PlaylistLevelType,\n withGapOnly?: boolean,\n unbufferedOnly?: boolean,\n ) {\n if (withGapOnly && !this.hasGaps) {\n return;\n }\n Object.keys(this.fragments).forEach((key) => {\n const fragmentEntity = this.fragments[key];\n if (!fragmentEntity) {\n return;\n }\n const frag = fragmentEntity.body;\n if (frag.type !== playlistType || (withGapOnly && !frag.gap)) {\n return;\n }\n if (\n frag.start < end &&\n frag.end > start &&\n (fragmentEntity.buffered || unbufferedOnly)\n ) {\n this.removeFragment(frag);\n }\n });\n }\n\n public removeFragment(fragment: Fragment) {\n const fragKey = getFragmentKey(fragment);\n fragment.stats.loaded = 0;\n fragment.clearElementaryStreamInfo();\n const activeParts = this.activePartLists[fragment.type];\n if (activeParts) {\n const snToRemove = fragment.sn;\n this.activePartLists[fragment.type] = activeParts.filter(\n (part) => part.fragment.sn !== snToRemove,\n );\n }\n delete this.fragments[fragKey];\n if (fragment.endList) {\n delete this.endListFragments[fragment.type];\n }\n }\n\n public removeAllFragments() {\n this.fragments = Object.create(null);\n this.endListFragments = Object.create(null);\n this.activePartLists = Object.create(null);\n this.hasGaps = false;\n }\n}\n\nfunction isPartial(fragmentEntity: FragmentEntity): boolean {\n return (\n fragmentEntity.buffered &&\n (fragmentEntity.body.gap ||\n fragmentEntity.range.video?.partial ||\n fragmentEntity.range.audio?.partial ||\n fragmentEntity.range.audiovideo?.partial)\n );\n}\n\nfunction getFragmentKey(fragment: Fragment): string {\n return `${fragment.type}_${fragment.level}_${fragment.sn}`;\n}\n","/**\n * Provides methods dealing with buffer length retrieval for example.\n *\n * In general, a helper around HTML5 MediaElement TimeRanges gathered from `buffered` property.\n *\n * Also @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered\n */\n\nimport { logger } from './logger';\n\ntype BufferTimeRange = {\n start: number;\n end: number;\n};\n\nexport type Bufferable = {\n buffered: TimeRanges;\n};\n\nexport type BufferInfo = {\n len: number;\n start: number;\n end: number;\n nextStart?: number;\n};\n\nconst noopBuffered: TimeRanges = {\n length: 0,\n start: () => 0,\n end: () => 0,\n};\n\nexport class BufferHelper {\n /**\n * Return true if `media`'s buffered include `position`\n */\n static isBuffered(media: Bufferable, position: number): boolean {\n try {\n if (media) {\n const buffered = BufferHelper.getBuffered(media);\n for (let i = 0; i < buffered.length; i++) {\n if (position >= buffered.start(i) && position <= buffered.end(i)) {\n return true;\n }\n }\n }\n } catch (error) {\n // this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n return false;\n }\n\n static bufferInfo(\n media: Bufferable | null,\n pos: number,\n maxHoleDuration: number,\n ): BufferInfo {\n try {\n if (media) {\n const vbuffered = BufferHelper.getBuffered(media);\n const buffered: BufferTimeRange[] = [];\n let i: number;\n for (i = 0; i < vbuffered.length; i++) {\n buffered.push({ start: vbuffered.start(i), end: vbuffered.end(i) });\n }\n\n return this.bufferedInfo(buffered, pos, maxHoleDuration);\n }\n } catch (error) {\n // this is to catch\n // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n // This SourceBuffer has been removed from the parent media source\n }\n return { len: 0, start: pos, end: pos, nextStart: undefined };\n }\n\n static bufferedInfo(\n buffered: BufferTimeRange[],\n pos: number,\n maxHoleDuration: number,\n ): {\n len: number;\n start: number;\n end: number;\n nextStart?: number;\n } {\n pos = Math.max(0, pos);\n // sort on buffer.start/smaller end (IE does not always return sorted buffered range)\n buffered.sort(function (a, b) {\n const diff = a.start - b.start;\n if (diff) {\n return diff;\n } else {\n return b.end - a.end;\n }\n });\n\n let buffered2: BufferTimeRange[] = [];\n if (maxHoleDuration) {\n // there might be some small holes between buffer time range\n // consider that holes smaller than maxHoleDuration are irrelevant and build another\n // buffer time range representations that discards those holes\n for (let i = 0; i < buffered.length; i++) {\n const buf2len = buffered2.length;\n if (buf2len) {\n const buf2end = buffered2[buf2len - 1].end;\n // if small hole (value between 0 or maxHoleDuration ) or overlapping (negative)\n if (buffered[i].start - buf2end < maxHoleDuration) {\n // merge overlapping time ranges\n // update lastRange.end only if smaller than item.end\n // e.g. [ 1, 15] with [ 2,8] => [ 1,15] (no need to modify lastRange.end)\n // whereas [ 1, 8] with [ 2,15] => [ 1,15] ( lastRange should switch from [1,8] to [1,15])\n if (buffered[i].end > buf2end) {\n buffered2[buf2len - 1].end = buffered[i].end;\n }\n } else {\n // big hole\n buffered2.push(buffered[i]);\n }\n } else {\n // first value\n buffered2.push(buffered[i]);\n }\n }\n } else {\n buffered2 = buffered;\n }\n\n let bufferLen = 0;\n\n // bufferStartNext can possibly be undefined based on the conditional logic below\n let bufferStartNext: number | undefined;\n\n // bufferStart and bufferEnd are buffer boundaries around current video position\n let bufferStart: number = pos;\n let bufferEnd: number = pos;\n for (let i = 0; i < buffered2.length; i++) {\n const start = buffered2[i].start;\n const end = buffered2[i].end;\n // logger.log('buf start/end:' + buffered.start(i) + '/' + buffered.end(i));\n if (pos + maxHoleDuration >= start && pos < end) {\n // play position is inside this buffer TimeRange, retrieve end of buffer position and buffer length\n bufferStart = start;\n bufferEnd = end;\n bufferLen = bufferEnd - pos;\n } else if (pos + maxHoleDuration < start) {\n bufferStartNext = start;\n break;\n }\n }\n return {\n len: bufferLen,\n start: bufferStart || 0,\n end: bufferEnd || 0,\n nextStart: bufferStartNext,\n };\n }\n\n /**\n * Safe method to get buffered property.\n * SourceBuffer.buffered may throw if SourceBuffer is removed from it's MediaSource\n */\n static getBuffered(media: Bufferable): TimeRanges {\n try {\n return media.buffered;\n } catch (e) {\n logger.log('failed to get media.buffered', e);\n return noopBuffered;\n }\n }\n}\n","import type { RemuxerResult } from './remuxer';\nimport type { HlsChunkPerformanceTiming } from './loader';\nimport type { SourceBufferName } from './buffer';\n\nexport interface TransmuxerResult {\n remuxResult: RemuxerResult;\n chunkMeta: ChunkMetadata;\n}\n\nexport class ChunkMetadata {\n public readonly level: number;\n public readonly sn: number;\n public readonly part: number;\n public readonly id: number;\n public readonly size: number;\n public readonly partial: boolean;\n public readonly transmuxing: HlsChunkPerformanceTiming =\n getNewPerformanceTiming();\n public readonly buffering: {\n [key in SourceBufferName]: HlsChunkPerformanceTiming;\n } = {\n audio: getNewPerformanceTiming(),\n video: getNewPerformanceTiming(),\n audiovideo: getNewPerformanceTiming(),\n };\n\n constructor(\n level: number,\n sn: number,\n id: number,\n size = 0,\n part = -1,\n partial = false,\n ) {\n this.level = level;\n this.sn = sn;\n this.id = id;\n this.size = size;\n this.part = part;\n this.partial = partial;\n }\n}\n\nfunction getNewPerformanceTiming(): HlsChunkPerformanceTiming {\n return { start: 0, executeStart: 0, executeEnd: 0, end: 0 };\n}\n","import { logger } from './logger';\nimport { adjustSliding } from './level-helper';\n\nimport type { Fragment } from '../loader/fragment';\nimport type { LevelDetails } from '../loader/level-details';\n\nexport function findFirstFragWithCC(\n fragments: Fragment[],\n cc: number,\n): Fragment | null {\n for (let i = 0, len = fragments.length; i < len; i++) {\n if (fragments[i]?.cc === cc) {\n return fragments[i];\n }\n }\n return null;\n}\n\nexport function shouldAlignOnDiscontinuities(\n lastFrag: Fragment | null,\n switchDetails: LevelDetails | undefined,\n details: LevelDetails,\n): switchDetails is LevelDetails & boolean {\n if (switchDetails) {\n if (\n details.endCC > details.startCC ||\n (lastFrag && lastFrag.cc < details.startCC)\n ) {\n return true;\n }\n }\n return false;\n}\n\n// Find the first frag in the previous level which matches the CC of the first frag of the new level\nexport function findDiscontinuousReferenceFrag(\n prevDetails: LevelDetails,\n curDetails: LevelDetails,\n) {\n const prevFrags = prevDetails.fragments;\n const curFrags = curDetails.fragments;\n\n if (!curFrags.length || !prevFrags.length) {\n logger.log('No fragments to align');\n return;\n }\n\n const prevStartFrag = findFirstFragWithCC(prevFrags, curFrags[0].cc);\n\n if (!prevStartFrag || (prevStartFrag && !prevStartFrag.startPTS)) {\n logger.log('No frag in previous level to align on');\n return;\n }\n\n return prevStartFrag;\n}\n\nfunction adjustFragmentStart(frag: Fragment, sliding: number) {\n if (frag) {\n const start = frag.start + sliding;\n frag.start = frag.startPTS = start;\n frag.endPTS = start + frag.duration;\n }\n}\n\nexport function adjustSlidingStart(sliding: number, details: LevelDetails) {\n // Update segments\n const fragments = details.fragments;\n for (let i = 0, len = fragments.length; i < len; i++) {\n adjustFragmentStart(fragments[i], sliding);\n }\n // Update LL-HLS parts at the end of the playlist\n if (details.fragmentHint) {\n adjustFragmentStart(details.fragmentHint, sliding);\n }\n details.alignedSliding = true;\n}\n\n/**\n * Using the parameters of the last level, this function computes PTS' of the new fragments so that they form a\n * contiguous stream with the last fragments.\n * The PTS of a fragment lets Hls.js know where it fits into a stream - by knowing every PTS, we know which fragment to\n * download at any given time. PTS is normally computed when the fragment is demuxed, so taking this step saves us time\n * and an extra download.\n * @param lastFrag\n * @param lastLevel\n * @param details\n */\nexport function alignStream(\n lastFrag: Fragment | null,\n switchDetails: LevelDetails | undefined,\n details: LevelDetails,\n) {\n if (!switchDetails) {\n return;\n }\n alignDiscontinuities(lastFrag, details, switchDetails);\n if (!details.alignedSliding && switchDetails) {\n // If the PTS wasn't figured out via discontinuity sequence that means there was no CC increase within the level.\n // Aligning via Program Date Time should therefore be reliable, since PDT should be the same within the same\n // discontinuity sequence.\n alignMediaPlaylistByPDT(details, switchDetails);\n }\n if (!details.alignedSliding && switchDetails && !details.skippedSegments) {\n // Try to align on sn so that we pick a better start fragment.\n // Do not perform this on playlists with delta updates as this is only to align levels on switch\n // and adjustSliding only adjusts fragments after skippedSegments.\n adjustSliding(switchDetails, details);\n }\n}\n\n/**\n * Computes the PTS if a new level's fragments using the PTS of a fragment in the last level which shares the same\n * discontinuity sequence.\n * @param lastFrag - The last Fragment which shares the same discontinuity sequence\n * @param lastLevel - The details of the last loaded level\n * @param details - The details of the new level\n */\nfunction alignDiscontinuities(\n lastFrag: Fragment | null,\n details: LevelDetails,\n switchDetails: LevelDetails | undefined,\n) {\n if (shouldAlignOnDiscontinuities(lastFrag, switchDetails, details)) {\n const referenceFrag = findDiscontinuousReferenceFrag(\n switchDetails,\n details,\n );\n if (referenceFrag && Number.isFinite(referenceFrag.start)) {\n logger.log(\n `Adjusting PTS using last level due to CC increase within current level ${details.url}`,\n );\n adjustSlidingStart(referenceFrag.start, details);\n }\n }\n}\n\n/**\n * Ensures appropriate time-alignment between renditions based on PDT.\n * This function assumes the timelines represented in `refDetails` are accurate, including the PDTs\n * for the last discontinuity sequence number shared by both playlists when present,\n * and uses the \"wallclock\"/PDT timeline as a cross-reference to `details`, adjusting the presentation\n * times/timelines of `details` accordingly.\n * Given the asynchronous nature of fetches and initial loads of live `main` and audio/subtitle tracks,\n * the primary purpose of this function is to ensure the \"local timelines\" of audio/subtitle tracks\n * are aligned to the main/video timeline, using PDT as the cross-reference/\"anchor\" that should\n * be consistent across playlists, per the HLS spec.\n * @param details - The details of the rendition you'd like to time-align (e.g. an audio rendition).\n * @param refDetails - The details of the reference rendition with start and PDT times for alignment.\n */\nexport function alignMediaPlaylistByPDT(\n details: LevelDetails,\n refDetails: LevelDetails,\n) {\n if (!details.hasProgramDateTime || !refDetails.hasProgramDateTime) {\n return;\n }\n\n const fragments = details.fragments;\n const refFragments = refDetails.fragments;\n if (!fragments.length || !refFragments.length) {\n return;\n }\n\n // Calculate a delta to apply to all fragments according to the delta in PDT times and start times\n // of a fragment in the reference details, and a fragment in the target details of the same discontinuity.\n // If a fragment of the same discontinuity was not found use the middle fragment of both.\n let refFrag: Fragment | null | undefined;\n let frag: Fragment | null | undefined;\n const targetCC = Math.min(refDetails.endCC, details.endCC);\n if (refDetails.startCC < targetCC && details.startCC < targetCC) {\n refFrag = findFirstFragWithCC(refFragments, targetCC);\n frag = findFirstFragWithCC(fragments, targetCC);\n }\n if (!refFrag || !frag) {\n refFrag = refFragments[Math.floor(refFragments.length / 2)];\n frag =\n findFirstFragWithCC(fragments, refFrag.cc) ||\n fragments[Math.floor(fragments.length / 2)];\n }\n const refPDT = refFrag.programDateTime;\n const targetPDT = frag.programDateTime;\n if (!refPDT || !targetPDT) {\n return;\n }\n\n const delta = (targetPDT - refPDT) / 1000 - (frag.start - refFrag.start);\n adjustSlidingStart(delta, details);\n}\n","import { ErrorTypes, ErrorDetails } from '../errors';\nimport { Fragment } from './fragment';\nimport {\n Loader,\n LoaderConfiguration,\n FragmentLoaderContext,\n} from '../types/loader';\nimport { getLoaderConfigWithoutReties } from '../utils/error-helper';\nimport type { HlsConfig } from '../config';\nimport type { BaseSegment, Part } from './fragment';\nimport type {\n ErrorData,\n FragLoadedData,\n PartsLoadedData,\n} from '../types/events';\n\nconst MIN_CHUNK_SIZE = Math.pow(2, 17); // 128kb\n\nexport default class FragmentLoader {\n private readonly config: HlsConfig;\n private loader: Loader<FragmentLoaderContext> | null = null;\n private partLoadTimeout: number = -1;\n\n constructor(config: HlsConfig) {\n this.config = config;\n }\n\n destroy() {\n if (this.loader) {\n this.loader.destroy();\n this.loader = null;\n }\n }\n\n abort() {\n if (this.loader) {\n // Abort the loader for current fragment. Only one may load at any given time\n this.loader.abort();\n }\n }\n\n load(\n frag: Fragment,\n onProgress?: FragmentLoadProgressCallback,\n ): Promise<FragLoadedData> {\n const url = frag.url;\n if (!url) {\n return Promise.reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_ERROR,\n fatal: false,\n frag,\n error: new Error(\n `Fragment does not have a ${url ? 'part list' : 'url'}`,\n ),\n networkDetails: null,\n }),\n );\n }\n this.abort();\n\n const config = this.config;\n const FragmentILoader = config.fLoader;\n const DefaultILoader = config.loader;\n\n return new Promise((resolve, reject) => {\n if (this.loader) {\n this.loader.destroy();\n }\n if (frag.gap) {\n if (frag.tagList.some((tags) => tags[0] === 'GAP')) {\n reject(createGapLoadError(frag));\n return;\n } else {\n // Reset temporary treatment as GAP tag\n frag.gap = false;\n }\n }\n const loader =\n (this.loader =\n frag.loader =\n FragmentILoader\n ? new FragmentILoader(config)\n : (new DefaultILoader(config) as Loader<FragmentLoaderContext>));\n const loaderContext = createLoaderContext(frag);\n const loadPolicy = getLoaderConfigWithoutReties(\n config.fragLoadPolicy.default,\n );\n const loaderConfig: LoaderConfiguration = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0,\n highWaterMark: frag.sn === 'initSegment' ? Infinity : MIN_CHUNK_SIZE,\n };\n // Assign frag stats to the loader's stats reference\n frag.stats = loader.stats;\n loader.load(loaderContext, loaderConfig, {\n onSuccess: (response, stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n let payload = response.data as ArrayBuffer;\n if (context.resetIV && frag.decryptdata) {\n frag.decryptdata.iv = new Uint8Array(payload.slice(0, 16));\n payload = payload.slice(16);\n }\n resolve({\n frag,\n part: null,\n payload,\n networkDetails,\n });\n },\n onError: (response, context, networkDetails, stats) => {\n this.resetLoader(frag, loader);\n reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_ERROR,\n fatal: false,\n frag,\n response: { url, data: undefined, ...response },\n error: new Error(`HTTP Error ${response.code} ${response.text}`),\n networkDetails,\n stats,\n }),\n );\n },\n onAbort: (stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.INTERNAL_ABORTED,\n fatal: false,\n frag,\n error: new Error('Aborted'),\n networkDetails,\n stats,\n }),\n );\n },\n onTimeout: (stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_TIMEOUT,\n fatal: false,\n frag,\n error: new Error(`Timeout after ${loaderConfig.timeout}ms`),\n networkDetails,\n stats,\n }),\n );\n },\n onProgress: (stats, context, data, networkDetails) => {\n if (onProgress) {\n onProgress({\n frag,\n part: null,\n payload: data as ArrayBuffer,\n networkDetails,\n });\n }\n },\n });\n });\n }\n\n public loadPart(\n frag: Fragment,\n part: Part,\n onProgress: FragmentLoadProgressCallback,\n ): Promise<FragLoadedData> {\n this.abort();\n\n const config = this.config;\n const FragmentILoader = config.fLoader;\n const DefaultILoader = config.loader;\n\n return new Promise((resolve, reject) => {\n if (this.loader) {\n this.loader.destroy();\n }\n if (frag.gap || part.gap) {\n reject(createGapLoadError(frag, part));\n return;\n }\n const loader =\n (this.loader =\n frag.loader =\n FragmentILoader\n ? new FragmentILoader(config)\n : (new DefaultILoader(config) as Loader<FragmentLoaderContext>));\n const loaderContext = createLoaderContext(frag, part);\n // Should we define another load policy for parts?\n const loadPolicy = getLoaderConfigWithoutReties(\n config.fragLoadPolicy.default,\n );\n const loaderConfig: LoaderConfiguration = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0,\n highWaterMark: MIN_CHUNK_SIZE,\n };\n // Assign part stats to the loader's stats reference\n part.stats = loader.stats;\n loader.load(loaderContext, loaderConfig, {\n onSuccess: (response, stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n this.updateStatsFromPart(frag, part);\n const partLoadedData: FragLoadedData = {\n frag,\n part,\n payload: response.data as ArrayBuffer,\n networkDetails,\n };\n onProgress(partLoadedData);\n resolve(partLoadedData);\n },\n onError: (response, context, networkDetails, stats) => {\n this.resetLoader(frag, loader);\n reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_ERROR,\n fatal: false,\n frag,\n part,\n response: {\n url: loaderContext.url,\n data: undefined,\n ...response,\n },\n error: new Error(`HTTP Error ${response.code} ${response.text}`),\n networkDetails,\n stats,\n }),\n );\n },\n onAbort: (stats, context, networkDetails) => {\n frag.stats.aborted = part.stats.aborted;\n this.resetLoader(frag, loader);\n reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.INTERNAL_ABORTED,\n fatal: false,\n frag,\n part,\n error: new Error('Aborted'),\n networkDetails,\n stats,\n }),\n );\n },\n onTimeout: (stats, context, networkDetails) => {\n this.resetLoader(frag, loader);\n reject(\n new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details: ErrorDetails.FRAG_LOAD_TIMEOUT,\n fatal: false,\n frag,\n part,\n error: new Error(`Timeout after ${loaderConfig.timeout}ms`),\n networkDetails,\n stats,\n }),\n );\n },\n });\n });\n }\n\n private updateStatsFromPart(frag: Fragment, part: Part) {\n const fragStats = frag.stats;\n const partStats = part.stats;\n const partTotal = partStats.total;\n fragStats.loaded += partStats.loaded;\n if (partTotal) {\n const estTotalParts = Math.round(frag.duration / part.duration);\n const estLoadedParts = Math.min(\n Math.round(fragStats.loaded / partTotal),\n estTotalParts,\n );\n const estRemainingParts = estTotalParts - estLoadedParts;\n const estRemainingBytes =\n estRemainingParts * Math.round(fragStats.loaded / estLoadedParts);\n fragStats.total = fragStats.loaded + estRemainingBytes;\n } else {\n fragStats.total = Math.max(fragStats.loaded, fragStats.total);\n }\n const fragLoading = fragStats.loading;\n const partLoading = partStats.loading;\n if (fragLoading.start) {\n // add to fragment loader latency\n fragLoading.first += partLoading.first - partLoading.start;\n } else {\n fragLoading.start = partLoading.start;\n fragLoading.first = partLoading.first;\n }\n fragLoading.end = partLoading.end;\n }\n\n private resetLoader(frag: Fragment, loader: Loader<FragmentLoaderContext>) {\n frag.loader = null;\n if (this.loader === loader) {\n self.clearTimeout(this.partLoadTimeout);\n this.loader = null;\n }\n loader.destroy();\n }\n}\n\nfunction createLoaderContext(\n frag: Fragment,\n part: Part | null = null,\n): FragmentLoaderContext {\n const segment: BaseSegment = part || frag;\n const loaderContext: FragmentLoaderContext = {\n frag,\n part,\n responseType: 'arraybuffer',\n url: segment.url,\n headers: {},\n rangeStart: 0,\n rangeEnd: 0,\n };\n const start = segment.byteRangeStartOffset as number;\n const end = segment.byteRangeEndOffset as number;\n if (Number.isFinite(start) && Number.isFinite(end)) {\n let byteRangeStart = start;\n let byteRangeEnd = end;\n if (frag.sn === 'initSegment' && frag.decryptdata?.method === 'AES-128') {\n // MAP segment encrypted with method 'AES-128', when served with HTTP Range,\n // has the unencrypted size specified in the range.\n // Ref: https://tools.ietf.org/html/draft-pantos-hls-rfc8216bis-08#section-6.3.6\n const fragmentLen = end - start;\n if (fragmentLen % 16) {\n byteRangeEnd = end + (16 - (fragmentLen % 16));\n }\n if (start !== 0) {\n loaderContext.resetIV = true;\n byteRangeStart = start - 16;\n }\n }\n loaderContext.rangeStart = byteRangeStart;\n loaderContext.rangeEnd = byteRangeEnd;\n }\n return loaderContext;\n}\n\nfunction createGapLoadError(frag: Fragment, part?: Part): LoadError {\n const error = new Error(`GAP ${frag.gap ? 'tag' : 'attribute'} found`);\n const errorData: FragLoadFailResult = {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_GAP,\n fatal: false,\n frag,\n error,\n networkDetails: null,\n };\n if (part) {\n errorData.part = part;\n }\n (part ? part : frag).stats.aborted = true;\n return new LoadError(errorData);\n}\n\nexport class LoadError extends Error {\n public readonly data: FragLoadFailResult;\n constructor(data: FragLoadFailResult) {\n super(data.error.message);\n this.data = data;\n }\n}\n\nexport interface FragLoadFailResult extends ErrorData {\n frag: Fragment;\n part?: Part;\n response?: {\n data: any;\n // error status code\n code: number;\n // error description\n text: string;\n url: string;\n };\n networkDetails: any;\n}\n\nexport type FragmentLoadProgressCallback = (\n result: FragLoadedData | PartsLoadedData,\n) => void;\n","export default class AESCrypto {\n private subtle: SubtleCrypto;\n private aesIV: Uint8Array;\n\n constructor(subtle: SubtleCrypto, iv: Uint8Array) {\n this.subtle = subtle;\n this.aesIV = iv;\n }\n\n decrypt(data: ArrayBuffer, key: CryptoKey) {\n return this.subtle.decrypt({ name: 'AES-CBC', iv: this.aesIV }, key, data);\n }\n}\n","export default class FastAESKey {\n private subtle: SubtleCrypto;\n private key: ArrayBuffer;\n\n constructor(subtle: SubtleCrypto, key: ArrayBuffer) {\n this.subtle = subtle;\n this.key = key;\n }\n\n expandKey() {\n return this.subtle.importKey('raw', this.key, { name: 'AES-CBC' }, false, [\n 'encrypt',\n 'decrypt',\n ]);\n }\n}\n","import { sliceUint8 } from '../utils/typed-array';\n\n// PKCS7\nexport function removePadding(array: Uint8Array): Uint8Array {\n const outputBytes = array.byteLength;\n const paddingBytes =\n outputBytes && new DataView(array.buffer).getUint8(outputBytes - 1);\n if (paddingBytes) {\n return sliceUint8(array, 0, outputBytes - paddingBytes);\n }\n return array;\n}\n\nexport default class AESDecryptor {\n private rcon: Array<number> = [\n 0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36,\n ];\n private subMix: Array<Uint32Array> = [\n new Uint32Array(256),\n new Uint32Array(256),\n new Uint32Array(256),\n new Uint32Array(256),\n ];\n private invSubMix: Array<Uint32Array> = [\n new Uint32Array(256),\n new Uint32Array(256),\n new Uint32Array(256),\n new Uint32Array(256),\n ];\n private sBox: Uint32Array = new Uint32Array(256);\n private invSBox: Uint32Array = new Uint32Array(256);\n private key: Uint32Array = new Uint32Array(0);\n\n private ksRows: number = 0;\n private keySize: number = 0;\n private keySchedule!: Uint32Array;\n private invKeySchedule!: Uint32Array;\n\n constructor() {\n this.initTable();\n }\n\n // Using view.getUint32() also swaps the byte order.\n uint8ArrayToUint32Array_(arrayBuffer) {\n const view = new DataView(arrayBuffer);\n const newArray = new Uint32Array(4);\n for (let i = 0; i < 4; i++) {\n newArray[i] = view.getUint32(i * 4);\n }\n\n return newArray;\n }\n\n initTable() {\n const sBox = this.sBox;\n const invSBox = this.invSBox;\n const subMix = this.subMix;\n const subMix0 = subMix[0];\n const subMix1 = subMix[1];\n const subMix2 = subMix[2];\n const subMix3 = subMix[3];\n const invSubMix = this.invSubMix;\n const invSubMix0 = invSubMix[0];\n const invSubMix1 = invSubMix[1];\n const invSubMix2 = invSubMix[2];\n const invSubMix3 = invSubMix[3];\n\n const d = new Uint32Array(256);\n let x = 0;\n let xi = 0;\n let i = 0;\n for (i = 0; i < 256; i++) {\n if (i < 128) {\n d[i] = i << 1;\n } else {\n d[i] = (i << 1) ^ 0x11b;\n }\n }\n\n for (i = 0; i < 256; i++) {\n let sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n sBox[x] = sx;\n invSBox[sx] = x;\n\n // Compute multiplication\n const x2 = d[x];\n const x4 = d[x2];\n const x8 = d[x4];\n\n // Compute sub/invSub bytes, mix columns tables\n let t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n subMix0[x] = (t << 24) | (t >>> 8);\n subMix1[x] = (t << 16) | (t >>> 16);\n subMix2[x] = (t << 8) | (t >>> 24);\n subMix3[x] = t;\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n invSubMix0[sx] = (t << 24) | (t >>> 8);\n invSubMix1[sx] = (t << 16) | (t >>> 16);\n invSubMix2[sx] = (t << 8) | (t >>> 24);\n invSubMix3[sx] = t;\n\n // Compute next counter\n if (!x) {\n x = xi = 1;\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]];\n xi ^= d[d[xi]];\n }\n }\n }\n\n expandKey(keyBuffer: ArrayBuffer) {\n // convert keyBuffer to Uint32Array\n const key = this.uint8ArrayToUint32Array_(keyBuffer);\n let sameKey = true;\n let offset = 0;\n\n while (offset < key.length && sameKey) {\n sameKey = key[offset] === this.key[offset];\n offset++;\n }\n\n if (sameKey) {\n return;\n }\n\n this.key = key;\n const keySize = (this.keySize = key.length);\n\n if (keySize !== 4 && keySize !== 6 && keySize !== 8) {\n throw new Error('Invalid aes key size=' + keySize);\n }\n\n const ksRows = (this.ksRows = (keySize + 6 + 1) * 4);\n let ksRow;\n let invKsRow;\n\n const keySchedule = (this.keySchedule = new Uint32Array(ksRows));\n const invKeySchedule = (this.invKeySchedule = new Uint32Array(ksRows));\n const sbox = this.sBox;\n const rcon = this.rcon;\n\n const invSubMix = this.invSubMix;\n const invSubMix0 = invSubMix[0];\n const invSubMix1 = invSubMix[1];\n const invSubMix2 = invSubMix[2];\n const invSubMix3 = invSubMix[3];\n\n let prev;\n let t;\n\n for (ksRow = 0; ksRow < ksRows; ksRow++) {\n if (ksRow < keySize) {\n prev = keySchedule[ksRow] = key[ksRow];\n continue;\n }\n t = prev;\n\n if (ksRow % keySize === 0) {\n // Rot word\n t = (t << 8) | (t >>> 24);\n\n // Sub word\n t =\n (sbox[t >>> 24] << 24) |\n (sbox[(t >>> 16) & 0xff] << 16) |\n (sbox[(t >>> 8) & 0xff] << 8) |\n sbox[t & 0xff];\n\n // Mix Rcon\n t ^= rcon[(ksRow / keySize) | 0] << 24;\n } else if (keySize > 6 && ksRow % keySize === 4) {\n // Sub word\n t =\n (sbox[t >>> 24] << 24) |\n (sbox[(t >>> 16) & 0xff] << 16) |\n (sbox[(t >>> 8) & 0xff] << 8) |\n sbox[t & 0xff];\n }\n\n keySchedule[ksRow] = prev = (keySchedule[ksRow - keySize] ^ t) >>> 0;\n }\n\n for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n ksRow = ksRows - invKsRow;\n if (invKsRow & 3) {\n t = keySchedule[ksRow];\n } else {\n t = keySchedule[ksRow - 4];\n }\n\n if (invKsRow < 4 || ksRow <= 4) {\n invKeySchedule[invKsRow] = t;\n } else {\n invKeySchedule[invKsRow] =\n invSubMix0[sbox[t >>> 24]] ^\n invSubMix1[sbox[(t >>> 16) & 0xff]] ^\n invSubMix2[sbox[(t >>> 8) & 0xff]] ^\n invSubMix3[sbox[t & 0xff]];\n }\n\n invKeySchedule[invKsRow] = invKeySchedule[invKsRow] >>> 0;\n }\n }\n\n // Adding this as a method greatly improves performance.\n networkToHostOrderSwap(word) {\n return (\n (word << 24) |\n ((word & 0xff00) << 8) |\n ((word & 0xff0000) >> 8) |\n (word >>> 24)\n );\n }\n\n decrypt(inputArrayBuffer: ArrayBuffer, offset: number, aesIV: ArrayBuffer) {\n const nRounds = this.keySize + 6;\n const invKeySchedule = this.invKeySchedule;\n const invSBOX = this.invSBox;\n\n const invSubMix = this.invSubMix;\n const invSubMix0 = invSubMix[0];\n const invSubMix1 = invSubMix[1];\n const invSubMix2 = invSubMix[2];\n const invSubMix3 = invSubMix[3];\n\n const initVector = this.uint8ArrayToUint32Array_(aesIV);\n let initVector0 = initVector[0];\n let initVector1 = initVector[1];\n let initVector2 = initVector[2];\n let initVector3 = initVector[3];\n\n const inputInt32 = new Int32Array(inputArrayBuffer);\n const outputInt32 = new Int32Array(inputInt32.length);\n\n let t0, t1, t2, t3;\n let s0, s1, s2, s3;\n let inputWords0, inputWords1, inputWords2, inputWords3;\n\n let ksRow, i;\n const swapWord = this.networkToHostOrderSwap;\n\n while (offset < inputInt32.length) {\n inputWords0 = swapWord(inputInt32[offset]);\n inputWords1 = swapWord(inputInt32[offset + 1]);\n inputWords2 = swapWord(inputInt32[offset + 2]);\n inputWords3 = swapWord(inputInt32[offset + 3]);\n\n s0 = inputWords0 ^ invKeySchedule[0];\n s1 = inputWords3 ^ invKeySchedule[1];\n s2 = inputWords2 ^ invKeySchedule[2];\n s3 = inputWords1 ^ invKeySchedule[3];\n\n ksRow = 4;\n\n // Iterate through the rounds of decryption\n for (i = 1; i < nRounds; i++) {\n t0 =\n invSubMix0[s0 >>> 24] ^\n invSubMix1[(s1 >> 16) & 0xff] ^\n invSubMix2[(s2 >> 8) & 0xff] ^\n invSubMix3[s3 & 0xff] ^\n invKeySchedule[ksRow];\n t1 =\n invSubMix0[s1 >>> 24] ^\n invSubMix1[(s2 >> 16) & 0xff] ^\n invSubMix2[(s3 >> 8) & 0xff] ^\n invSubMix3[s0 & 0xff] ^\n invKeySchedule[ksRow + 1];\n t2 =\n invSubMix0[s2 >>> 24] ^\n invSubMix1[(s3 >> 16) & 0xff] ^\n invSubMix2[(s0 >> 8) & 0xff] ^\n invSubMix3[s1 & 0xff] ^\n invKeySchedule[ksRow + 2];\n t3 =\n invSubMix0[s3 >>> 24] ^\n invSubMix1[(s0 >> 16) & 0xff] ^\n invSubMix2[(s1 >> 8) & 0xff] ^\n invSubMix3[s2 & 0xff] ^\n invKeySchedule[ksRow + 3];\n // Update state\n s0 = t0;\n s1 = t1;\n s2 = t2;\n s3 = t3;\n\n ksRow = ksRow + 4;\n }\n\n // Shift rows, sub bytes, add round key\n t0 =\n (invSBOX[s0 >>> 24] << 24) ^\n (invSBOX[(s1 >> 16) & 0xff] << 16) ^\n (invSBOX[(s2 >> 8) & 0xff] << 8) ^\n invSBOX[s3 & 0xff] ^\n invKeySchedule[ksRow];\n t1 =\n (invSBOX[s1 >>> 24] << 24) ^\n (invSBOX[(s2 >> 16) & 0xff] << 16) ^\n (invSBOX[(s3 >> 8) & 0xff] << 8) ^\n invSBOX[s0 & 0xff] ^\n invKeySchedule[ksRow + 1];\n t2 =\n (invSBOX[s2 >>> 24] << 24) ^\n (invSBOX[(s3 >> 16) & 0xff] << 16) ^\n (invSBOX[(s0 >> 8) & 0xff] << 8) ^\n invSBOX[s1 & 0xff] ^\n invKeySchedule[ksRow + 2];\n t3 =\n (invSBOX[s3 >>> 24] << 24) ^\n (invSBOX[(s0 >> 16) & 0xff] << 16) ^\n (invSBOX[(s1 >> 8) & 0xff] << 8) ^\n invSBOX[s2 & 0xff] ^\n invKeySchedule[ksRow + 3];\n\n // Write\n outputInt32[offset] = swapWord(t0 ^ initVector0);\n outputInt32[offset + 1] = swapWord(t3 ^ initVector1);\n outputInt32[offset + 2] = swapWord(t2 ^ initVector2);\n outputInt32[offset + 3] = swapWord(t1 ^ initVector3);\n\n // reset initVector to last 4 unsigned int\n initVector0 = inputWords0;\n initVector1 = inputWords1;\n initVector2 = inputWords2;\n initVector3 = inputWords3;\n\n offset = offset + 4;\n }\n\n return outputInt32.buffer;\n }\n}\n","import AESCrypto from './aes-crypto';\nimport FastAESKey from './fast-aes-key';\nimport AESDecryptor, { removePadding } from './aes-decryptor';\nimport { logger } from '../utils/logger';\nimport { appendUint8Array } from '../utils/mp4-tools';\nimport { sliceUint8 } from '../utils/typed-array';\nimport type { HlsConfig } from '../config';\n\nconst CHUNK_SIZE = 16; // 16 bytes, 128 bits\n\nexport default class Decrypter {\n private logEnabled: boolean = true;\n private removePKCS7Padding: boolean;\n private subtle: SubtleCrypto | null = null;\n private softwareDecrypter: AESDecryptor | null = null;\n private key: ArrayBuffer | null = null;\n private fastAesKey: FastAESKey | null = null;\n private remainderData: Uint8Array | null = null;\n private currentIV: ArrayBuffer | null = null;\n private currentResult: ArrayBuffer | null = null;\n private useSoftware: boolean;\n\n constructor(config: HlsConfig, { removePKCS7Padding = true } = {}) {\n this.useSoftware = config.enableSoftwareAES;\n this.removePKCS7Padding = removePKCS7Padding;\n // built in decryptor expects PKCS7 padding\n if (removePKCS7Padding) {\n try {\n const browserCrypto = self.crypto;\n if (browserCrypto) {\n this.subtle =\n browserCrypto.subtle ||\n ((browserCrypto as any).webkitSubtle as SubtleCrypto);\n }\n } catch (e) {\n /* no-op */\n }\n }\n\n this.useSoftware = !this.subtle;\n }\n\n destroy() {\n this.subtle = null;\n this.softwareDecrypter = null;\n this.key = null;\n this.fastAesKey = null;\n this.remainderData = null;\n this.currentIV = null;\n this.currentResult = null;\n }\n\n public isSync() {\n return this.useSoftware;\n }\n\n public flush(): Uint8Array | null {\n const { currentResult, remainderData } = this;\n if (!currentResult || remainderData) {\n this.reset();\n return null;\n }\n const data = new Uint8Array(currentResult);\n this.reset();\n if (this.removePKCS7Padding) {\n return removePadding(data);\n }\n return data;\n }\n\n public reset() {\n this.currentResult = null;\n this.currentIV = null;\n this.remainderData = null;\n if (this.softwareDecrypter) {\n this.softwareDecrypter = null;\n }\n }\n\n public decrypt(\n data: Uint8Array | ArrayBuffer,\n key: ArrayBuffer,\n iv: ArrayBuffer,\n ): Promise<ArrayBuffer> {\n if (this.useSoftware) {\n return new Promise((resolve, reject) => {\n this.softwareDecrypt(new Uint8Array(data), key, iv);\n const decryptResult = this.flush();\n if (decryptResult) {\n resolve(decryptResult.buffer);\n } else {\n reject(new Error('[softwareDecrypt] Failed to decrypt data'));\n }\n });\n }\n return this.webCryptoDecrypt(new Uint8Array(data), key, iv);\n }\n\n // Software decryption is progressive. Progressive decryption may not return a result on each call. Any cached\n // data is handled in the flush() call\n public softwareDecrypt(\n data: Uint8Array,\n key: ArrayBuffer,\n iv: ArrayBuffer,\n ): ArrayBuffer | null {\n const { currentIV, currentResult, remainderData } = this;\n this.logOnce('JS AES decrypt');\n // The output is staggered during progressive parsing - the current result is cached, and emitted on the next call\n // This is done in order to strip PKCS7 padding, which is found at the end of each segment. We only know we've reached\n // the end on flush(), but by that time we have already received all bytes for the segment.\n // Progressive decryption does not work with WebCrypto\n\n if (remainderData) {\n data = appendUint8Array(remainderData, data);\n this.remainderData = null;\n }\n\n // Byte length must be a multiple of 16 (AES-128 = 128 bit blocks = 16 bytes)\n const currentChunk = this.getValidChunk(data);\n if (!currentChunk.length) {\n return null;\n }\n\n if (currentIV) {\n iv = currentIV;\n }\n\n let softwareDecrypter = this.softwareDecrypter;\n if (!softwareDecrypter) {\n softwareDecrypter = this.softwareDecrypter = new AESDecryptor();\n }\n softwareDecrypter.expandKey(key);\n\n const result = currentResult;\n\n this.currentResult = softwareDecrypter.decrypt(currentChunk.buffer, 0, iv);\n this.currentIV = sliceUint8(currentChunk, -16).buffer;\n\n if (!result) {\n return null;\n }\n return result;\n }\n\n public webCryptoDecrypt(\n data: Uint8Array,\n key: ArrayBuffer,\n iv: ArrayBuffer,\n ): Promise<ArrayBuffer> {\n if (this.key !== key || !this.fastAesKey) {\n if (!this.subtle) {\n return Promise.resolve(this.onWebCryptoError(data, key, iv));\n }\n this.key = key;\n this.fastAesKey = new FastAESKey(this.subtle, key);\n }\n return this.fastAesKey\n .expandKey()\n .then((aesKey) => {\n // decrypt using web crypto\n if (!this.subtle) {\n return Promise.reject(new Error('web crypto not initialized'));\n }\n this.logOnce('WebCrypto AES decrypt');\n const crypto = new AESCrypto(this.subtle, new Uint8Array(iv));\n return crypto.decrypt(data.buffer, aesKey);\n })\n .catch((err) => {\n logger.warn(\n `[decrypter]: WebCrypto Error, disable WebCrypto API, ${err.name}: ${err.message}`,\n );\n\n return this.onWebCryptoError(data, key, iv);\n });\n }\n\n private onWebCryptoError(\n data: Uint8Array,\n key: ArrayBuffer,\n iv: ArrayBuffer,\n ): ArrayBuffer | never {\n this.useSoftware = true;\n this.logEnabled = true;\n this.softwareDecrypt(data, key, iv);\n const decryptResult = this.flush();\n if (decryptResult) {\n return decryptResult.buffer;\n }\n throw new Error('WebCrypto and softwareDecrypt: failed to decrypt data');\n }\n\n private getValidChunk(data: Uint8Array): Uint8Array {\n let currentChunk = data;\n const splitPoint = data.length - (data.length % CHUNK_SIZE);\n if (splitPoint !== data.length) {\n currentChunk = sliceUint8(data, 0, splitPoint);\n this.remainderData = sliceUint8(data, splitPoint);\n }\n return currentChunk;\n }\n\n private logOnce(msg: string) {\n if (!this.logEnabled) {\n return;\n }\n logger.log(`[decrypter]: ${msg}`);\n this.logEnabled = false;\n }\n}\n","/**\n * TimeRanges to string helper\n */\n\nconst TimeRanges = {\n toString: function (r: TimeRanges) {\n let log = '';\n const len = r.length;\n for (let i = 0; i < len; i++) {\n log += `[${r.start(i).toFixed(3)}-${r.end(i).toFixed(3)}]`;\n }\n\n return log;\n },\n};\n\nexport default TimeRanges;\n","import TaskLoop from '../task-loop';\nimport { FragmentState } from './fragment-tracker';\nimport { Bufferable, BufferHelper, BufferInfo } from '../utils/buffer-helper';\nimport { logger } from '../utils/logger';\nimport { Events } from '../events';\nimport { ErrorDetails, ErrorTypes } from '../errors';\nimport { ChunkMetadata } from '../types/transmuxer';\nimport { appendUint8Array } from '../utils/mp4-tools';\nimport { alignStream } from '../utils/discontinuities';\nimport {\n findFragmentByPDT,\n findFragmentByPTS,\n findFragWithCC,\n} from './fragment-finders';\nimport {\n findPart,\n getFragmentWithSN,\n getPartWith,\n updateFragPTSDTS,\n} from '../utils/level-helper';\nimport TransmuxerInterface from '../demux/transmuxer-interface';\nimport { Fragment, Part } from '../loader/fragment';\nimport FragmentLoader, {\n FragmentLoadProgressCallback,\n LoadError,\n} from '../loader/fragment-loader';\nimport KeyLoader from '../loader/key-loader';\nimport { LevelDetails } from '../loader/level-details';\nimport Decrypter from '../crypt/decrypter';\nimport TimeRanges from '../utils/time-ranges';\nimport { PlaylistLevelType } from '../types/loader';\nimport { getRetryDelay } from '../utils/error-helper';\nimport { NetworkErrorAction } from './error-controller';\nimport type {\n BufferAppendingData,\n ErrorData,\n FragLoadedData,\n PartsLoadedData,\n KeyLoadedData,\n MediaAttachedData,\n BufferFlushingData,\n ManifestLoadedData,\n} from '../types/events';\nimport type { FragmentTracker } from './fragment-tracker';\nimport type { Level } from '../types/level';\nimport type { RemuxedTrack } from '../types/remuxer';\nimport type Hls from '../hls';\nimport type { HlsConfig } from '../config';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type { SourceBufferName } from '../types/buffer';\nimport type { RationalTimestamp } from '../utils/timescale-conversion';\n\ntype ResolveFragLoaded = (FragLoadedEndData) => void;\ntype RejectFragLoaded = (LoadError) => void;\n\nexport const State = {\n STOPPED: 'STOPPED',\n IDLE: 'IDLE',\n KEY_LOADING: 'KEY_LOADING',\n FRAG_LOADING: 'FRAG_LOADING',\n FRAG_LOADING_WAITING_RETRY: 'FRAG_LOADING_WAITING_RETRY',\n WAITING_TRACK: 'WAITING_TRACK',\n PARSING: 'PARSING',\n PARSED: 'PARSED',\n ENDED: 'ENDED',\n ERROR: 'ERROR',\n WAITING_INIT_PTS: 'WAITING_INIT_PTS',\n WAITING_LEVEL: 'WAITING_LEVEL',\n};\n\nexport default class BaseStreamController\n extends TaskLoop\n implements NetworkComponentAPI\n{\n protected hls: Hls;\n\n protected fragPrevious: Fragment | null = null;\n protected fragCurrent: Fragment | null = null;\n protected fragmentTracker: FragmentTracker;\n protected transmuxer: TransmuxerInterface | null = null;\n protected _state: string = State.STOPPED;\n protected playlistType: PlaylistLevelType;\n protected media: HTMLMediaElement | null = null;\n protected mediaBuffer: Bufferable | null = null;\n protected config: HlsConfig;\n protected bitrateTest: boolean = false;\n protected lastCurrentTime: number = 0;\n protected nextLoadPosition: number = 0;\n protected startPosition: number = 0;\n protected startTimeOffset: number | null = null;\n protected loadedmetadata: boolean = false;\n protected retryDate: number = 0;\n protected levels: Array<Level> | null = null;\n protected fragmentLoader: FragmentLoader;\n protected keyLoader: KeyLoader;\n protected levelLastLoaded: Level | null = null;\n protected startFragRequested: boolean = false;\n protected decrypter: Decrypter;\n protected initPTS: RationalTimestamp[] = [];\n protected buffering: boolean = true;\n protected onvseeking: EventListener | null = null;\n protected onvended: EventListener | null = null;\n\n private readonly logPrefix: string = '';\n protected log: (msg: any) => void;\n protected warn: (msg: any) => void;\n\n constructor(\n hls: Hls,\n fragmentTracker: FragmentTracker,\n keyLoader: KeyLoader,\n logPrefix: string,\n playlistType: PlaylistLevelType,\n ) {\n super();\n this.playlistType = playlistType;\n this.logPrefix = logPrefix;\n this.log = logger.log.bind(logger, `${logPrefix}:`);\n this.warn = logger.warn.bind(logger, `${logPrefix}:`);\n this.hls = hls;\n this.fragmentLoader = new FragmentLoader(hls.config);\n this.keyLoader = keyLoader;\n this.fragmentTracker = fragmentTracker;\n this.config = hls.config;\n this.decrypter = new Decrypter(hls.config);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n }\n\n protected doTick() {\n this.onTickEnd();\n }\n\n protected onTickEnd() {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public startLoad(startPosition: number): void {}\n\n public stopLoad() {\n this.fragmentLoader.abort();\n this.keyLoader.abort(this.playlistType);\n const frag = this.fragCurrent;\n if (frag?.loader) {\n frag.abortRequests();\n this.fragmentTracker.removeFragment(frag);\n }\n this.resetTransmuxer();\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.clearInterval();\n this.clearNextTick();\n this.state = State.STOPPED;\n }\n\n public pauseBuffering() {\n this.buffering = false;\n }\n\n public resumeBuffering() {\n this.buffering = true;\n }\n\n protected _streamEnded(\n bufferInfo: BufferInfo,\n levelDetails: LevelDetails,\n ): boolean {\n // If playlist is live, there is another buffered range after the current range, nothing buffered, media is detached,\n // of nothing loading/loaded return false\n if (\n levelDetails.live ||\n bufferInfo.nextStart ||\n !bufferInfo.end ||\n !this.media\n ) {\n return false;\n }\n const partList = levelDetails.partList;\n // Since the last part isn't guaranteed to correspond to the last playlist segment for Low-Latency HLS,\n // check instead if the last part is buffered.\n if (partList?.length) {\n const lastPart = partList[partList.length - 1];\n\n // Checking the midpoint of the part for potential margin of error and related issues.\n // NOTE: Technically I believe parts could yield content that is < the computed duration (including potential a duration of 0)\n // and still be spec-compliant, so there may still be edge cases here. Likewise, there could be issues in end of stream\n // part mismatches for independent audio and video playlists/segments.\n const lastPartBuffered = BufferHelper.isBuffered(\n this.media,\n lastPart.start + lastPart.duration / 2,\n );\n return lastPartBuffered;\n }\n\n const playlistType =\n levelDetails.fragments[levelDetails.fragments.length - 1].type;\n return this.fragmentTracker.isEndListAppended(playlistType);\n }\n\n protected getLevelDetails(): LevelDetails | undefined {\n if (this.levels && this.levelLastLoaded !== null) {\n return this.levelLastLoaded?.details;\n }\n }\n\n protected onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ) {\n const media = (this.media = this.mediaBuffer = data.media);\n this.onvseeking = this.onMediaSeeking.bind(this) as EventListener;\n this.onvended = this.onMediaEnded.bind(this) as EventListener;\n media.addEventListener('seeking', this.onvseeking);\n media.addEventListener('ended', this.onvended);\n const config = this.config;\n if (this.levels && config.autoStartLoad && this.state === State.STOPPED) {\n this.startLoad(config.startPosition);\n }\n }\n\n protected onMediaDetaching() {\n const media = this.media;\n if (media?.ended) {\n this.log('MSE detaching and video ended, reset startPosition');\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n // remove video listeners\n if (media && this.onvseeking && this.onvended) {\n media.removeEventListener('seeking', this.onvseeking);\n media.removeEventListener('ended', this.onvended);\n this.onvseeking = this.onvended = null;\n }\n if (this.keyLoader) {\n this.keyLoader.detach();\n }\n this.media = this.mediaBuffer = null;\n this.loadedmetadata = false;\n this.fragmentTracker.removeAllFragments();\n this.stopLoad();\n }\n\n protected onMediaSeeking() {\n const { config, fragCurrent, media, mediaBuffer, state } = this;\n const currentTime: number = media ? media.currentTime : 0;\n const bufferInfo = BufferHelper.bufferInfo(\n mediaBuffer ? mediaBuffer : media,\n currentTime,\n config.maxBufferHole,\n );\n\n this.log(\n `media seeking to ${\n Number.isFinite(currentTime) ? currentTime.toFixed(3) : currentTime\n }, state: ${state}`,\n );\n\n if (this.state === State.ENDED) {\n this.resetLoadingState();\n } else if (fragCurrent) {\n // Seeking while frag load is in progress\n const tolerance = config.maxFragLookUpTolerance;\n const fragStartOffset = fragCurrent.start - tolerance;\n const fragEndOffset =\n fragCurrent.start + fragCurrent.duration + tolerance;\n // if seeking out of buffered range or into new one\n if (\n !bufferInfo.len ||\n fragEndOffset < bufferInfo.start ||\n fragStartOffset > bufferInfo.end\n ) {\n const pastFragment = currentTime > fragEndOffset;\n // if the seek position is outside the current fragment range\n if (currentTime < fragStartOffset || pastFragment) {\n if (pastFragment && fragCurrent.loader) {\n this.log(\n 'seeking outside of buffer while fragment load in progress, cancel fragment load',\n );\n fragCurrent.abortRequests();\n this.resetLoadingState();\n }\n this.fragPrevious = null;\n }\n }\n }\n\n if (media) {\n // Remove gap fragments\n this.fragmentTracker.removeFragmentsInRange(\n currentTime,\n Infinity,\n this.playlistType,\n true,\n );\n\n this.lastCurrentTime = currentTime;\n }\n\n // in case seeking occurs although no media buffered, adjust startPosition and nextLoadPosition to seek target\n if (!this.loadedmetadata && !bufferInfo.len) {\n this.nextLoadPosition = this.startPosition = currentTime;\n }\n\n // Async tick to speed up processing\n this.tickImmediate();\n }\n\n protected onMediaEnded() {\n // reset startPosition and lastCurrentTime to restart playback @ stream beginning\n this.startPosition = this.lastCurrentTime = 0;\n }\n\n protected onManifestLoaded(\n event: Events.MANIFEST_LOADED,\n data: ManifestLoadedData,\n ): void {\n this.startTimeOffset = data.startTimeOffset;\n this.initPTS = [];\n }\n\n protected onHandlerDestroying() {\n this.hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n this.stopLoad();\n super.onHandlerDestroying();\n // @ts-ignore\n this.hls = null;\n }\n\n protected onHandlerDestroyed() {\n this.state = State.STOPPED;\n if (this.fragmentLoader) {\n this.fragmentLoader.destroy();\n }\n if (this.keyLoader) {\n this.keyLoader.destroy();\n }\n if (this.decrypter) {\n this.decrypter.destroy();\n }\n\n this.hls =\n this.log =\n this.warn =\n this.decrypter =\n this.keyLoader =\n this.fragmentLoader =\n this.fragmentTracker =\n null as any;\n super.onHandlerDestroyed();\n }\n\n protected loadFragment(\n frag: Fragment,\n level: Level,\n targetBufferTime: number,\n ) {\n this._loadFragForPlayback(frag, level, targetBufferTime);\n }\n\n private _loadFragForPlayback(\n frag: Fragment,\n level: Level,\n targetBufferTime: number,\n ) {\n const progressCallback: FragmentLoadProgressCallback = (\n data: FragLoadedData,\n ) => {\n if (this.fragContextChanged(frag)) {\n this.warn(\n `Fragment ${frag.sn}${\n data.part ? ' p: ' + data.part.index : ''\n } of level ${frag.level} was dropped during download.`,\n );\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n frag.stats.chunkCount++;\n this._handleFragmentLoadProgress(data);\n };\n\n this._doFragLoad(frag, level, targetBufferTime, progressCallback)\n .then((data) => {\n if (!data) {\n // if we're here we probably needed to backtrack or are waiting for more parts\n return;\n }\n const state = this.state;\n if (this.fragContextChanged(frag)) {\n if (\n state === State.FRAG_LOADING ||\n (!this.fragCurrent && state === State.PARSING)\n ) {\n this.fragmentTracker.removeFragment(frag);\n this.state = State.IDLE;\n }\n return;\n }\n\n if ('payload' in data) {\n this.log(`Loaded fragment ${frag.sn} of level ${frag.level}`);\n this.hls.trigger(Events.FRAG_LOADED, data);\n }\n\n // Pass through the whole payload; controllers not implementing progressive loading receive data from this callback\n this._handleFragmentLoadComplete(data);\n })\n .catch((reason) => {\n if (this.state === State.STOPPED || this.state === State.ERROR) {\n return;\n }\n this.warn(`Frag error: ${reason?.message || reason}`);\n this.resetFragmentLoading(frag);\n });\n }\n\n protected clearTrackerIfNeeded(frag: Fragment) {\n const { fragmentTracker } = this;\n const fragState = fragmentTracker.getState(frag);\n if (fragState === FragmentState.APPENDING) {\n // Lower the max buffer length and try again\n const playlistType = frag.type as PlaylistLevelType;\n const bufferedInfo = this.getFwdBufferInfo(\n this.mediaBuffer,\n playlistType,\n );\n const minForwardBufferLength = Math.max(\n frag.duration,\n bufferedInfo ? bufferedInfo.len : this.config.maxBufferLength,\n );\n // If backtracking, always remove from the tracker without reducing max buffer length\n const backtrackFragment = (this as any).backtrackFragment as\n | Fragment\n | undefined;\n const backtracked = backtrackFragment\n ? (frag.sn as number) - (backtrackFragment.sn as number)\n : 0;\n if (\n backtracked === 1 ||\n this.reduceMaxBufferLength(minForwardBufferLength, frag.duration)\n ) {\n fragmentTracker.removeFragment(frag);\n }\n } else if (this.mediaBuffer?.buffered.length === 0) {\n // Stop gap for bad tracker / buffer flush behavior\n fragmentTracker.removeAllFragments();\n } else if (fragmentTracker.hasParts(frag.type)) {\n // In low latency mode, remove fragments for which only some parts were buffered\n fragmentTracker.detectPartialFragments({\n frag,\n part: null,\n stats: frag.stats,\n id: frag.type,\n });\n if (fragmentTracker.getState(frag) === FragmentState.PARTIAL) {\n fragmentTracker.removeFragment(frag);\n }\n }\n }\n\n protected checkLiveUpdate(details: LevelDetails) {\n if (details.updated && !details.live) {\n // Live stream ended, update fragment tracker\n const lastFragment = details.fragments[details.fragments.length - 1];\n this.fragmentTracker.detectPartialFragments({\n frag: lastFragment,\n part: null,\n stats: lastFragment.stats,\n id: lastFragment.type,\n });\n }\n if (!details.fragments[0]) {\n details.deltaUpdateFailed = true;\n }\n }\n\n protected flushMainBuffer(\n startOffset: number,\n endOffset: number,\n type: SourceBufferName | null = null,\n ) {\n if (!(startOffset - endOffset)) {\n return;\n }\n // When alternate audio is playing, the audio-stream-controller is responsible for the audio buffer. Otherwise,\n // passing a null type flushes both buffers\n const flushScope: BufferFlushingData = { startOffset, endOffset, type };\n this.hls.trigger(Events.BUFFER_FLUSHING, flushScope);\n }\n\n protected _loadInitSegment(frag: Fragment, level: Level) {\n this._doFragLoad(frag, level)\n .then((data) => {\n if (!data || this.fragContextChanged(frag) || !this.levels) {\n throw new Error('init load aborted');\n }\n\n return data;\n })\n .then((data: FragLoadedData) => {\n const { hls } = this;\n const { payload } = data;\n const decryptData = frag.decryptdata;\n\n // check to see if the payload needs to be decrypted\n if (\n payload &&\n payload.byteLength > 0 &&\n decryptData?.key &&\n decryptData.iv &&\n decryptData.method === 'AES-128'\n ) {\n const startTime = self.performance.now();\n // decrypt init segment data\n return this.decrypter\n .decrypt(\n new Uint8Array(payload),\n decryptData.key.buffer,\n decryptData.iv.buffer,\n )\n .catch((err) => {\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_DECRYPT_ERROR,\n fatal: false,\n error: err,\n reason: err.message,\n frag,\n });\n throw err;\n })\n .then((decryptedData) => {\n const endTime = self.performance.now();\n hls.trigger(Events.FRAG_DECRYPTED, {\n frag,\n payload: decryptedData,\n stats: {\n tstart: startTime,\n tdecrypt: endTime,\n },\n });\n data.payload = decryptedData;\n return this.completeInitSegmentLoad(data);\n });\n }\n return this.completeInitSegmentLoad(data);\n })\n .catch((reason) => {\n if (this.state === State.STOPPED || this.state === State.ERROR) {\n return;\n }\n this.warn(reason);\n this.resetFragmentLoading(frag);\n });\n }\n\n private completeInitSegmentLoad(data: FragLoadedData) {\n const { levels } = this;\n if (!levels) {\n throw new Error('init load aborted, missing levels');\n }\n const stats = data.frag.stats;\n this.state = State.IDLE;\n data.frag.data = new Uint8Array(data.payload);\n stats.parsing.start = stats.buffering.start = self.performance.now();\n stats.parsing.end = stats.buffering.end = self.performance.now();\n this.tick();\n }\n\n protected fragContextChanged(frag: Fragment | null) {\n const { fragCurrent } = this;\n return (\n !frag ||\n !fragCurrent ||\n frag.sn !== fragCurrent.sn ||\n frag.level !== fragCurrent.level\n );\n }\n\n protected fragBufferedComplete(frag: Fragment, part: Part | null) {\n const media = this.mediaBuffer ? this.mediaBuffer : this.media;\n this.log(\n `Buffered ${frag.type} sn: ${frag.sn}${\n part ? ' part: ' + part.index : ''\n } of ${\n this.playlistType === PlaylistLevelType.MAIN ? 'level' : 'track'\n } ${frag.level} (frag:[${(frag.startPTS ?? NaN).toFixed(3)}-${(\n frag.endPTS ?? NaN\n ).toFixed(3)}] > buffer:${\n media\n ? TimeRanges.toString(BufferHelper.getBuffered(media))\n : '(detached)'\n })`,\n );\n if (frag.sn !== 'initSegment') {\n if (frag.type !== PlaylistLevelType.SUBTITLE) {\n const el = frag.elementaryStreams;\n if (!Object.keys(el).some((type) => !!el[type])) {\n // empty segment\n this.state = State.IDLE;\n return;\n }\n }\n const level = this.levels?.[frag.level];\n if (level?.fragmentError) {\n this.log(\n `Resetting level fragment error count of ${level.fragmentError} on frag buffered`,\n );\n level.fragmentError = 0;\n }\n }\n this.state = State.IDLE;\n if (!media) {\n return;\n }\n if (\n !this.loadedmetadata &&\n frag.type == PlaylistLevelType.MAIN &&\n media.buffered.length &&\n this.fragCurrent?.sn === this.fragPrevious?.sn\n ) {\n this.loadedmetadata = true;\n this.seekToStartPos();\n }\n this.tick();\n }\n\n protected seekToStartPos() {}\n\n protected _handleFragmentLoadComplete(fragLoadedEndData: PartsLoadedData) {\n const { transmuxer } = this;\n if (!transmuxer) {\n return;\n }\n const { frag, part, partsLoaded } = fragLoadedEndData;\n // If we did not load parts, or loaded all parts, we have complete (not partial) fragment data\n const complete =\n !partsLoaded ||\n partsLoaded.length === 0 ||\n partsLoaded.some((fragLoaded) => !fragLoaded);\n const chunkMeta = new ChunkMetadata(\n frag.level,\n frag.sn as number,\n frag.stats.chunkCount + 1,\n 0,\n part ? part.index : -1,\n !complete,\n );\n transmuxer.flush(chunkMeta);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected _handleFragmentLoadProgress(\n frag: PartsLoadedData | FragLoadedData,\n ) {}\n\n protected _doFragLoad(\n frag: Fragment,\n level: Level,\n targetBufferTime: number | null = null,\n progressCallback?: FragmentLoadProgressCallback,\n ): Promise<PartsLoadedData | FragLoadedData | null> {\n const details = level?.details;\n if (!this.levels || !details) {\n throw new Error(\n `frag load aborted, missing level${details ? '' : ' detail'}s`,\n );\n }\n\n let keyLoadingPromise: Promise<KeyLoadedData | void> | null = null;\n if (frag.encrypted && !frag.decryptdata?.key) {\n this.log(\n `Loading key for ${frag.sn} of [${details.startSN}-${details.endSN}], ${\n this.logPrefix === '[stream-controller]' ? 'level' : 'track'\n } ${frag.level}`,\n );\n this.state = State.KEY_LOADING;\n this.fragCurrent = frag;\n keyLoadingPromise = this.keyLoader.load(frag).then((keyLoadedData) => {\n if (!this.fragContextChanged(keyLoadedData.frag)) {\n this.hls.trigger(Events.KEY_LOADED, keyLoadedData);\n if (this.state === State.KEY_LOADING) {\n this.state = State.IDLE;\n }\n return keyLoadedData;\n }\n });\n this.hls.trigger(Events.KEY_LOADING, { frag });\n if (this.fragCurrent === null) {\n keyLoadingPromise = Promise.reject(\n new Error(`frag load aborted, context changed in KEY_LOADING`),\n );\n }\n } else if (!frag.encrypted && details.encryptedFragments.length) {\n this.keyLoader.loadClear(frag, details.encryptedFragments);\n }\n\n targetBufferTime = Math.max(frag.start, targetBufferTime || 0);\n if (this.config.lowLatencyMode && frag.sn !== 'initSegment') {\n const partList = details.partList;\n if (partList && progressCallback) {\n if (targetBufferTime > frag.end && details.fragmentHint) {\n frag = details.fragmentHint;\n }\n const partIndex = this.getNextPart(partList, frag, targetBufferTime);\n if (partIndex > -1) {\n const part = partList[partIndex];\n this.log(\n `Loading part sn: ${frag.sn} p: ${part.index} cc: ${\n frag.cc\n } of playlist [${details.startSN}-${\n details.endSN\n }] parts [0-${partIndex}-${partList.length - 1}] ${\n this.logPrefix === '[stream-controller]' ? 'level' : 'track'\n }: ${frag.level}, target: ${parseFloat(\n targetBufferTime.toFixed(3),\n )}`,\n );\n this.nextLoadPosition = part.start + part.duration;\n this.state = State.FRAG_LOADING;\n let result: Promise<PartsLoadedData | FragLoadedData | null>;\n if (keyLoadingPromise) {\n result = keyLoadingPromise\n .then((keyLoadedData) => {\n if (\n !keyLoadedData ||\n this.fragContextChanged(keyLoadedData.frag)\n ) {\n return null;\n }\n return this.doFragPartsLoad(\n frag,\n part,\n level,\n progressCallback,\n );\n })\n .catch((error) => this.handleFragLoadError(error));\n } else {\n result = this.doFragPartsLoad(\n frag,\n part,\n level,\n progressCallback,\n ).catch((error: LoadError) => this.handleFragLoadError(error));\n }\n this.hls.trigger(Events.FRAG_LOADING, {\n frag,\n part,\n targetBufferTime,\n });\n if (this.fragCurrent === null) {\n return Promise.reject(\n new Error(\n `frag load aborted, context changed in FRAG_LOADING parts`,\n ),\n );\n }\n return result;\n } else if (\n !frag.url ||\n this.loadedEndOfParts(partList, targetBufferTime)\n ) {\n // Fragment hint has no parts\n return Promise.resolve(null);\n }\n }\n }\n\n this.log(\n `Loading fragment ${frag.sn} cc: ${frag.cc} ${\n details ? 'of [' + details.startSN + '-' + details.endSN + '] ' : ''\n }${this.logPrefix === '[stream-controller]' ? 'level' : 'track'}: ${\n frag.level\n }, target: ${parseFloat(targetBufferTime.toFixed(3))}`,\n );\n // Don't update nextLoadPosition for fragments which are not buffered\n if (Number.isFinite(frag.sn as number) && !this.bitrateTest) {\n this.nextLoadPosition = frag.start + frag.duration;\n }\n this.state = State.FRAG_LOADING;\n\n // Load key before streaming fragment data\n const dataOnProgress = this.config.progressive;\n let result: Promise<PartsLoadedData | FragLoadedData | null>;\n if (dataOnProgress && keyLoadingPromise) {\n result = keyLoadingPromise\n .then((keyLoadedData) => {\n if (!keyLoadedData || this.fragContextChanged(keyLoadedData?.frag)) {\n return null;\n }\n return this.fragmentLoader.load(frag, progressCallback);\n })\n .catch((error) => this.handleFragLoadError(error));\n } else {\n // load unencrypted fragment data with progress event,\n // or handle fragment result after key and fragment are finished loading\n result = Promise.all([\n this.fragmentLoader.load(\n frag,\n dataOnProgress ? progressCallback : undefined,\n ),\n keyLoadingPromise,\n ])\n .then(([fragLoadedData]) => {\n if (!dataOnProgress && fragLoadedData && progressCallback) {\n progressCallback(fragLoadedData);\n }\n return fragLoadedData;\n })\n .catch((error) => this.handleFragLoadError(error));\n }\n this.hls.trigger(Events.FRAG_LOADING, { frag, targetBufferTime });\n if (this.fragCurrent === null) {\n return Promise.reject(\n new Error(`frag load aborted, context changed in FRAG_LOADING`),\n );\n }\n return result;\n }\n\n private doFragPartsLoad(\n frag: Fragment,\n fromPart: Part,\n level: Level,\n progressCallback: FragmentLoadProgressCallback,\n ): Promise<PartsLoadedData | null> {\n return new Promise(\n (resolve: ResolveFragLoaded, reject: RejectFragLoaded) => {\n const partsLoaded: FragLoadedData[] = [];\n const initialPartList = level.details?.partList;\n const loadPart = (part: Part) => {\n this.fragmentLoader\n .loadPart(frag, part, progressCallback)\n .then((partLoadedData: FragLoadedData) => {\n partsLoaded[part.index] = partLoadedData;\n const loadedPart = partLoadedData.part as Part;\n this.hls.trigger(Events.FRAG_LOADED, partLoadedData);\n const nextPart =\n getPartWith(level, frag.sn as number, part.index + 1) ||\n findPart(initialPartList, frag.sn as number, part.index + 1);\n if (nextPart) {\n loadPart(nextPart);\n } else {\n return resolve({\n frag,\n part: loadedPart,\n partsLoaded,\n });\n }\n })\n .catch(reject);\n };\n loadPart(fromPart);\n },\n );\n }\n\n private handleFragLoadError(error: LoadError | Error) {\n if ('data' in error) {\n const data = error.data;\n if (error.data && data.details === ErrorDetails.INTERNAL_ABORTED) {\n this.handleFragLoadAborted(data.frag, data.part);\n } else {\n this.hls.trigger(Events.ERROR, data as ErrorData);\n }\n } else {\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.INTERNAL_EXCEPTION,\n err: error,\n error,\n fatal: true,\n });\n }\n return null;\n }\n\n protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata) {\n const context = this.getCurrentContext(chunkMeta);\n if (!context || this.state !== State.PARSING) {\n if (\n !this.fragCurrent &&\n this.state !== State.STOPPED &&\n this.state !== State.ERROR\n ) {\n this.state = State.IDLE;\n }\n return;\n }\n const { frag, part, level } = context;\n const now = self.performance.now();\n frag.stats.parsing.end = now;\n if (part) {\n part.stats.parsing.end = now;\n }\n this.updateLevelTiming(frag, part, level, chunkMeta.partial);\n }\n\n protected getCurrentContext(\n chunkMeta: ChunkMetadata,\n ): { frag: Fragment; part: Part | null; level: Level } | null {\n const { levels, fragCurrent } = this;\n const { level: levelIndex, sn, part: partIndex } = chunkMeta;\n if (!levels?.[levelIndex]) {\n this.warn(\n `Levels object was unset while buffering fragment ${sn} of level ${levelIndex}. The current chunk will not be buffered.`,\n );\n return null;\n }\n const level = levels[levelIndex];\n const part = partIndex > -1 ? getPartWith(level, sn, partIndex) : null;\n const frag = part\n ? part.fragment\n : getFragmentWithSN(level, sn, fragCurrent);\n if (!frag) {\n return null;\n }\n if (fragCurrent && fragCurrent !== frag) {\n frag.stats = fragCurrent.stats;\n }\n return { frag, part, level };\n }\n\n protected bufferFragmentData(\n data: RemuxedTrack,\n frag: Fragment,\n part: Part | null,\n chunkMeta: ChunkMetadata,\n noBacktracking?: boolean,\n ) {\n if (!data || this.state !== State.PARSING) {\n return;\n }\n\n const { data1, data2 } = data;\n let buffer = data1;\n if (data1 && data2) {\n // Combine the moof + mdat so that we buffer with a single append\n buffer = appendUint8Array(data1, data2);\n }\n\n if (!buffer?.length) {\n return;\n }\n\n const segment: BufferAppendingData = {\n type: data.type,\n frag,\n part,\n chunkMeta,\n parent: frag.type,\n data: buffer,\n };\n this.hls.trigger(Events.BUFFER_APPENDING, segment);\n\n if (data.dropped && data.independent && !part) {\n if (noBacktracking) {\n return;\n }\n // Clear buffer so that we reload previous segments sequentially if required\n this.flushBufferGap(frag);\n }\n }\n\n protected flushBufferGap(frag: Fragment) {\n const media = this.media;\n if (!media) {\n return;\n }\n // If currentTime is not buffered, clear the back buffer so that we can backtrack as much as needed\n if (!BufferHelper.isBuffered(media, media.currentTime)) {\n this.flushMainBuffer(0, frag.start);\n return;\n }\n // Remove back-buffer without interrupting playback to allow back tracking\n const currentTime = media.currentTime;\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const fragDuration = frag.duration;\n const segmentFraction = Math.min(\n this.config.maxFragLookUpTolerance * 2,\n fragDuration * 0.25,\n );\n const start = Math.max(\n Math.min(frag.start - segmentFraction, bufferInfo.end - segmentFraction),\n currentTime + segmentFraction,\n );\n if (frag.start - start > segmentFraction) {\n this.flushMainBuffer(start, frag.start);\n }\n }\n\n protected getFwdBufferInfo(\n bufferable: Bufferable | null,\n type: PlaylistLevelType,\n ): BufferInfo | null {\n const pos = this.getLoadPosition();\n if (!Number.isFinite(pos)) {\n return null;\n }\n return this.getFwdBufferInfoAtPos(bufferable, pos, type);\n }\n\n protected getFwdBufferInfoAtPos(\n bufferable: Bufferable | null,\n pos: number,\n type: PlaylistLevelType,\n ): BufferInfo | null {\n const {\n config: { maxBufferHole },\n } = this;\n const bufferInfo = BufferHelper.bufferInfo(bufferable, pos, maxBufferHole);\n // Workaround flaw in getting forward buffer when maxBufferHole is smaller than gap at current pos\n if (bufferInfo.len === 0 && bufferInfo.nextStart !== undefined) {\n const bufferedFragAtPos = this.fragmentTracker.getBufferedFrag(pos, type);\n if (bufferedFragAtPos && bufferInfo.nextStart < bufferedFragAtPos.end) {\n return BufferHelper.bufferInfo(\n bufferable,\n pos,\n Math.max(bufferInfo.nextStart, maxBufferHole),\n );\n }\n }\n return bufferInfo;\n }\n\n protected getMaxBufferLength(levelBitrate?: number): number {\n const { config } = this;\n let maxBufLen;\n if (levelBitrate) {\n maxBufLen = Math.max(\n (8 * config.maxBufferSize) / levelBitrate,\n config.maxBufferLength,\n );\n } else {\n maxBufLen = config.maxBufferLength;\n }\n return Math.min(maxBufLen, config.maxMaxBufferLength);\n }\n\n protected reduceMaxBufferLength(threshold: number, fragDuration: number) {\n const config = this.config;\n const minLength = Math.max(\n Math.min(threshold - fragDuration, config.maxBufferLength),\n fragDuration,\n );\n const reducedLength = Math.max(\n threshold - fragDuration * 3,\n config.maxMaxBufferLength / 2,\n minLength,\n );\n if (reducedLength >= minLength) {\n // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n config.maxMaxBufferLength = reducedLength;\n this.warn(`Reduce max buffer length to ${reducedLength}s`);\n return true;\n }\n return false;\n }\n\n protected getAppendedFrag(\n position: number,\n playlistType: PlaylistLevelType = PlaylistLevelType.MAIN,\n ): Fragment | null {\n const fragOrPart = this.fragmentTracker.getAppendedFrag(\n position,\n PlaylistLevelType.MAIN,\n );\n if (fragOrPart && 'fragment' in fragOrPart) {\n return fragOrPart.fragment;\n }\n return fragOrPart;\n }\n\n protected getNextFragment(\n pos: number,\n levelDetails: LevelDetails,\n ): Fragment | null {\n const fragments = levelDetails.fragments;\n const fragLen = fragments.length;\n\n if (!fragLen) {\n return null;\n }\n\n // find fragment index, contiguous with end of buffer position\n const { config } = this;\n const start = fragments[0].start;\n let frag;\n\n if (levelDetails.live) {\n const initialLiveManifestSize = config.initialLiveManifestSize;\n if (fragLen < initialLiveManifestSize) {\n this.warn(\n `Not enough fragments to start playback (have: ${fragLen}, need: ${initialLiveManifestSize})`,\n );\n return null;\n }\n // The real fragment start times for a live stream are only known after the PTS range for that level is known.\n // In order to discover the range, we load the best matching fragment for that level and demux it.\n // Do not load using live logic if the starting frag is requested - we want to use getFragmentAtPosition() so that\n // we get the fragment matching that start time\n if (\n (!levelDetails.PTSKnown &&\n !this.startFragRequested &&\n this.startPosition === -1) ||\n pos < start\n ) {\n frag = this.getInitialLiveFragment(levelDetails, fragments);\n this.startPosition = this.nextLoadPosition = frag\n ? this.hls.liveSyncPosition || frag.start\n : pos;\n }\n } else if (pos <= start) {\n // VoD playlist: if loadPosition before start of playlist, load first fragment\n frag = fragments[0];\n }\n\n // If we haven't run into any special cases already, just load the fragment most closely matching the requested position\n if (!frag) {\n const end = config.lowLatencyMode\n ? levelDetails.partEnd\n : levelDetails.fragmentEnd;\n frag = this.getFragmentAtPosition(pos, end, levelDetails);\n }\n\n return this.mapToInitFragWhenRequired(frag);\n }\n\n protected isLoopLoading(frag: Fragment, targetBufferTime: number): boolean {\n const trackerState = this.fragmentTracker.getState(frag);\n return (\n (trackerState === FragmentState.OK ||\n (trackerState === FragmentState.PARTIAL && !!frag.gap)) &&\n this.nextLoadPosition > targetBufferTime\n );\n }\n\n protected getNextFragmentLoopLoading(\n frag: Fragment,\n levelDetails: LevelDetails,\n bufferInfo: BufferInfo,\n playlistType: PlaylistLevelType,\n maxBufLen: number,\n ): Fragment | null {\n const gapStart = frag.gap;\n const nextFragment = this.getNextFragment(\n this.nextLoadPosition,\n levelDetails,\n );\n if (nextFragment === null) {\n return nextFragment;\n }\n frag = nextFragment;\n if (gapStart && frag && !frag.gap && bufferInfo.nextStart) {\n // Media buffered after GAP tags should not make the next buffer timerange exceed forward buffer length\n const nextbufferInfo = this.getFwdBufferInfoAtPos(\n this.mediaBuffer ? this.mediaBuffer : this.media,\n bufferInfo.nextStart,\n playlistType,\n );\n if (\n nextbufferInfo !== null &&\n bufferInfo.len + nextbufferInfo.len >= maxBufLen\n ) {\n // Returning here might result in not finding an audio and video candiate to skip to\n this.log(\n `buffer full after gaps in \"${playlistType}\" playlist starting at sn: ${frag.sn}`,\n );\n return null;\n }\n }\n return frag;\n }\n\n mapToInitFragWhenRequired(frag: Fragment | null): typeof frag {\n // If an initSegment is present, it must be buffered first\n if (frag?.initSegment && !frag?.initSegment.data && !this.bitrateTest) {\n return frag.initSegment;\n }\n\n return frag;\n }\n\n getNextPart(\n partList: Part[],\n frag: Fragment,\n targetBufferTime: number,\n ): number {\n let nextPart = -1;\n let contiguous = false;\n let independentAttrOmitted = true;\n for (let i = 0, len = partList.length; i < len; i++) {\n const part = partList[i];\n independentAttrOmitted = independentAttrOmitted && !part.independent;\n if (nextPart > -1 && targetBufferTime < part.start) {\n break;\n }\n const loaded = part.loaded;\n if (loaded) {\n nextPart = -1;\n } else if (\n (contiguous || part.independent || independentAttrOmitted) &&\n part.fragment === frag\n ) {\n nextPart = i;\n }\n contiguous = loaded;\n }\n return nextPart;\n }\n\n private loadedEndOfParts(\n partList: Part[],\n targetBufferTime: number,\n ): boolean {\n const lastPart = partList[partList.length - 1];\n return lastPart && targetBufferTime > lastPart.start && lastPart.loaded;\n }\n\n /*\n This method is used find the best matching first fragment for a live playlist. This fragment is used to calculate the\n \"sliding\" of the playlist, which is its offset from the start of playback. After sliding we can compute the real\n start and end times for each fragment in the playlist (after which this method will not need to be called).\n */\n protected getInitialLiveFragment(\n levelDetails: LevelDetails,\n fragments: Array<Fragment>,\n ): Fragment | null {\n const fragPrevious = this.fragPrevious;\n let frag: Fragment | null = null;\n if (fragPrevious) {\n if (levelDetails.hasProgramDateTime) {\n // Prefer using PDT, because it can be accurate enough to choose the correct fragment without knowing the level sliding\n this.log(\n `Live playlist, switching playlist, load frag with same PDT: ${fragPrevious.programDateTime}`,\n );\n frag = findFragmentByPDT(\n fragments,\n fragPrevious.endProgramDateTime,\n this.config.maxFragLookUpTolerance,\n );\n }\n if (!frag) {\n // SN does not need to be accurate between renditions, but depending on the packaging it may be so.\n const targetSN = (fragPrevious.sn as number) + 1;\n if (\n targetSN >= levelDetails.startSN &&\n targetSN <= levelDetails.endSN\n ) {\n const fragNext = fragments[targetSN - levelDetails.startSN];\n // Ensure that we're staying within the continuity range, since PTS resets upon a new range\n if (fragPrevious.cc === fragNext.cc) {\n frag = fragNext;\n this.log(\n `Live playlist, switching playlist, load frag with next SN: ${\n frag!.sn\n }`,\n );\n }\n }\n // It's important to stay within the continuity range if available; otherwise the fragments in the playlist\n // will have the wrong start times\n if (!frag) {\n frag = findFragWithCC(fragments, fragPrevious.cc);\n if (frag) {\n this.log(\n `Live playlist, switching playlist, load frag with same CC: ${frag.sn}`,\n );\n }\n }\n }\n } else {\n // Find a new start fragment when fragPrevious is null\n const liveStart = this.hls.liveSyncPosition;\n if (liveStart !== null) {\n frag = this.getFragmentAtPosition(\n liveStart,\n this.bitrateTest ? levelDetails.fragmentEnd : levelDetails.edge,\n levelDetails,\n );\n }\n }\n\n return frag;\n }\n\n /*\n This method finds the best matching fragment given the provided position.\n */\n protected getFragmentAtPosition(\n bufferEnd: number,\n end: number,\n levelDetails: LevelDetails,\n ): Fragment | null {\n const { config } = this;\n let { fragPrevious } = this;\n let { fragments, endSN } = levelDetails;\n const { fragmentHint } = levelDetails;\n const { maxFragLookUpTolerance } = config;\n const partList = levelDetails.partList;\n\n const loadingParts = !!(\n config.lowLatencyMode &&\n partList?.length &&\n fragmentHint\n );\n if (loadingParts && fragmentHint && !this.bitrateTest) {\n // Include incomplete fragment with parts at end\n fragments = fragments.concat(fragmentHint);\n endSN = fragmentHint.sn as number;\n }\n\n let frag;\n if (bufferEnd < end) {\n const lookupTolerance =\n bufferEnd > end - maxFragLookUpTolerance ? 0 : maxFragLookUpTolerance;\n // Remove the tolerance if it would put the bufferEnd past the actual end of stream\n // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n frag = findFragmentByPTS(\n fragPrevious,\n fragments,\n bufferEnd,\n lookupTolerance,\n );\n } else {\n // reach end of playlist\n frag = fragments[fragments.length - 1];\n }\n\n if (frag) {\n const curSNIdx = frag.sn - levelDetails.startSN;\n // Move fragPrevious forward to support forcing the next fragment to load\n // when the buffer catches up to a previously buffered range.\n const fragState = this.fragmentTracker.getState(frag);\n if (\n fragState === FragmentState.OK ||\n (fragState === FragmentState.PARTIAL && frag.gap)\n ) {\n fragPrevious = frag;\n }\n if (\n fragPrevious &&\n frag.sn === fragPrevious.sn &&\n (!loadingParts || partList[0].fragment.sn > frag.sn)\n ) {\n // Force the next fragment to load if the previous one was already selected. This can occasionally happen with\n // non-uniform fragment durations\n const sameLevel = fragPrevious && frag.level === fragPrevious.level;\n if (sameLevel) {\n const nextFrag = fragments[curSNIdx + 1];\n if (\n frag.sn < endSN &&\n this.fragmentTracker.getState(nextFrag) !== FragmentState.OK\n ) {\n frag = nextFrag;\n } else {\n frag = null;\n }\n }\n }\n }\n return frag;\n }\n\n protected synchronizeToLiveEdge(levelDetails: LevelDetails) {\n const { config, media } = this;\n if (!media) {\n return;\n }\n const liveSyncPosition = this.hls.liveSyncPosition;\n const currentTime = media.currentTime;\n const start = levelDetails.fragments[0].start;\n const end = levelDetails.edge;\n const withinSlidingWindow =\n currentTime >= start - config.maxFragLookUpTolerance &&\n currentTime <= end;\n // Continue if we can seek forward to sync position or if current time is outside of sliding window\n if (\n liveSyncPosition !== null &&\n media.duration > liveSyncPosition &&\n (currentTime < liveSyncPosition || !withinSlidingWindow)\n ) {\n // Continue if buffer is starving or if current time is behind max latency\n const maxLatency =\n config.liveMaxLatencyDuration !== undefined\n ? config.liveMaxLatencyDuration\n : config.liveMaxLatencyDurationCount * levelDetails.targetduration;\n if (\n (!withinSlidingWindow && media.readyState < 4) ||\n currentTime < end - maxLatency\n ) {\n if (!this.loadedmetadata) {\n this.nextLoadPosition = liveSyncPosition;\n }\n // Only seek if ready and there is not a significant forward buffer available for playback\n if (media.readyState) {\n this.warn(\n `Playback: ${currentTime.toFixed(\n 3,\n )} is located too far from the end of live sliding playlist: ${end}, reset currentTime to : ${liveSyncPosition.toFixed(\n 3,\n )}`,\n );\n media.currentTime = liveSyncPosition;\n }\n }\n }\n }\n\n protected alignPlaylists(\n details: LevelDetails,\n previousDetails: LevelDetails | undefined,\n switchDetails: LevelDetails | undefined,\n ): number {\n // FIXME: If not for `shouldAlignOnDiscontinuities` requiring fragPrevious.cc,\n // this could all go in level-helper mergeDetails()\n const length = details.fragments.length;\n if (!length) {\n this.warn(`No fragments in live playlist`);\n return 0;\n }\n const slidingStart = details.fragments[0].start;\n const firstLevelLoad = !previousDetails;\n const aligned = details.alignedSliding && Number.isFinite(slidingStart);\n if (firstLevelLoad || (!aligned && !slidingStart)) {\n const { fragPrevious } = this;\n alignStream(fragPrevious, switchDetails, details);\n const alignedSlidingStart = details.fragments[0].start;\n this.log(\n `Live playlist sliding: ${alignedSlidingStart.toFixed(2)} start-sn: ${\n previousDetails ? previousDetails.startSN : 'na'\n }->${details.startSN} prev-sn: ${\n fragPrevious ? fragPrevious.sn : 'na'\n } fragments: ${length}`,\n );\n return alignedSlidingStart;\n }\n return slidingStart;\n }\n\n protected waitForCdnTuneIn(details: LevelDetails) {\n // Wait for Low-Latency CDN Tune-in to get an updated playlist\n const advancePartLimit = 3;\n return (\n details.live &&\n details.canBlockReload &&\n details.partTarget &&\n details.tuneInGoal >\n Math.max(details.partHoldBack, details.partTarget * advancePartLimit)\n );\n }\n\n protected setStartPosition(details: LevelDetails, sliding: number) {\n // compute start position if set to -1. use it straight away if value is defined\n let startPosition = this.startPosition;\n if (startPosition < sliding) {\n startPosition = -1;\n }\n if (startPosition === -1 || this.lastCurrentTime === -1) {\n // Use Playlist EXT-X-START:TIME-OFFSET when set\n // Prioritize Multivariant Playlist offset so that main, audio, and subtitle stream-controller start times match\n const offsetInMultivariantPlaylist = this.startTimeOffset !== null;\n const startTimeOffset = offsetInMultivariantPlaylist\n ? this.startTimeOffset\n : details.startTimeOffset;\n if (startTimeOffset !== null && Number.isFinite(startTimeOffset)) {\n startPosition = sliding + startTimeOffset;\n if (startTimeOffset < 0) {\n startPosition += details.totalduration;\n }\n startPosition = Math.min(\n Math.max(sliding, startPosition),\n sliding + details.totalduration,\n );\n this.log(\n `Start time offset ${startTimeOffset} found in ${\n offsetInMultivariantPlaylist ? 'multivariant' : 'media'\n } playlist, adjust startPosition to ${startPosition}`,\n );\n this.startPosition = startPosition;\n } else if (details.live) {\n // Leave this.startPosition at -1, so that we can use `getInitialLiveFragment` logic when startPosition has\n // not been specified via the config or an as an argument to startLoad (#3736).\n startPosition = this.hls.liveSyncPosition || sliding;\n } else {\n this.startPosition = startPosition = 0;\n }\n this.lastCurrentTime = startPosition;\n }\n this.nextLoadPosition = startPosition;\n }\n\n protected getLoadPosition(): number {\n const { media } = this;\n // if we have not yet loaded any fragment, start loading from start position\n let pos = 0;\n if (this.loadedmetadata && media) {\n pos = media.currentTime;\n } else if (this.nextLoadPosition) {\n pos = this.nextLoadPosition;\n }\n\n return pos;\n }\n\n private handleFragLoadAborted(frag: Fragment, part: Part | undefined) {\n if (this.transmuxer && frag.sn !== 'initSegment' && frag.stats.aborted) {\n this.warn(\n `Fragment ${frag.sn}${part ? ' part ' + part.index : ''} of level ${\n frag.level\n } was aborted`,\n );\n this.resetFragmentLoading(frag);\n }\n }\n\n protected resetFragmentLoading(frag: Fragment) {\n if (\n !this.fragCurrent ||\n (!this.fragContextChanged(frag) &&\n this.state !== State.FRAG_LOADING_WAITING_RETRY)\n ) {\n this.state = State.IDLE;\n }\n }\n\n protected onFragmentOrKeyLoadError(\n filterType: PlaylistLevelType,\n data: ErrorData,\n ) {\n if (data.chunkMeta && !data.frag) {\n const context = this.getCurrentContext(data.chunkMeta);\n if (context) {\n data.frag = context.frag;\n }\n }\n const frag = data.frag;\n // Handle frag error related to caller's filterType\n if (!frag || frag.type !== filterType || !this.levels) {\n return;\n }\n if (this.fragContextChanged(frag)) {\n this.warn(\n `Frag load error must match current frag to retry ${frag.url} > ${this.fragCurrent?.url}`,\n );\n return;\n }\n const gapTagEncountered = data.details === ErrorDetails.FRAG_GAP;\n if (gapTagEncountered) {\n this.fragmentTracker.fragBuffered(frag, true);\n }\n // keep retrying until the limit will be reached\n const errorAction = data.errorAction;\n const { action, retryCount = 0, retryConfig } = errorAction || {};\n if (\n errorAction &&\n action === NetworkErrorAction.RetryRequest &&\n retryConfig\n ) {\n this.resetStartWhenNotLoaded(this.levelLastLoaded);\n const delay = getRetryDelay(retryConfig, retryCount);\n this.warn(\n `Fragment ${frag.sn} of ${filterType} ${frag.level} errored with ${\n data.details\n }, retrying loading ${retryCount + 1}/${\n retryConfig.maxNumRetry\n } in ${delay}ms`,\n );\n errorAction.resolved = true;\n this.retryDate = self.performance.now() + delay;\n this.state = State.FRAG_LOADING_WAITING_RETRY;\n } else if (retryConfig && errorAction) {\n this.resetFragmentErrors(filterType);\n if (retryCount < retryConfig.maxNumRetry) {\n // Network retry is skipped when level switch is preferred\n if (\n !gapTagEncountered &&\n action !== NetworkErrorAction.RemoveAlternatePermanently\n ) {\n errorAction.resolved = true;\n }\n } else {\n logger.warn(\n `${data.details} reached or exceeded max retry (${retryCount})`,\n );\n return;\n }\n } else if (\n errorAction?.action === NetworkErrorAction.SendAlternateToPenaltyBox\n ) {\n this.state = State.WAITING_LEVEL;\n } else {\n this.state = State.ERROR;\n }\n // Perform next async tick sooner to speed up error action resolution\n this.tickImmediate();\n }\n\n protected reduceLengthAndFlushBuffer(data: ErrorData): boolean {\n // if in appending state\n if (this.state === State.PARSING || this.state === State.PARSED) {\n const frag = data.frag;\n const playlistType = data.parent as PlaylistLevelType;\n const bufferedInfo = this.getFwdBufferInfo(\n this.mediaBuffer,\n playlistType,\n );\n // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end\n // reduce max buf len if current position is buffered\n const buffered = bufferedInfo && bufferedInfo.len > 0.5;\n if (buffered) {\n this.reduceMaxBufferLength(bufferedInfo.len, frag?.duration || 10);\n }\n const flushBuffer = !buffered;\n if (flushBuffer) {\n // current position is not buffered, but browser is still complaining about buffer full error\n // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n // in that case flush the whole audio buffer to recover\n this.warn(\n `Buffer full error while media.currentTime is not buffered, flush ${playlistType} buffer`,\n );\n }\n if (frag) {\n this.fragmentTracker.removeFragment(frag);\n this.nextLoadPosition = frag.start;\n }\n this.resetLoadingState();\n return flushBuffer;\n }\n return false;\n }\n\n protected resetFragmentErrors(filterType: PlaylistLevelType) {\n if (filterType === PlaylistLevelType.AUDIO) {\n // Reset current fragment since audio track audio is essential and may not have a fail-over track\n this.fragCurrent = null;\n }\n // Fragment errors that result in a level switch or redundant fail-over\n // should reset the stream controller state to idle\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n }\n if (this.state !== State.STOPPED) {\n this.state = State.IDLE;\n }\n }\n\n protected afterBufferFlushed(\n media: Bufferable,\n bufferType: SourceBufferName,\n playlistType: PlaylistLevelType,\n ) {\n if (!media) {\n return;\n }\n // After successful buffer flushing, filter flushed fragments from bufferedFrags use mediaBuffered instead of media\n // (so that we will check against video.buffered ranges in case of alt audio track)\n const bufferedTimeRanges = BufferHelper.getBuffered(media);\n this.fragmentTracker.detectEvictedFragments(\n bufferType,\n bufferedTimeRanges,\n playlistType,\n );\n if (this.state === State.ENDED) {\n this.resetLoadingState();\n }\n }\n\n protected resetLoadingState() {\n this.log('Reset loading state');\n this.fragCurrent = null;\n this.fragPrevious = null;\n this.state = State.IDLE;\n }\n\n protected resetStartWhenNotLoaded(level: Level | null): void {\n // if loadedmetadata is not set, it means that first frag request failed\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n const details = level ? level.details : null;\n if (details?.live) {\n // Update the start position and return to IDLE to recover live start\n this.startPosition = -1;\n this.setStartPosition(details, 0);\n this.resetLoadingState();\n } else {\n this.nextLoadPosition = this.startPosition;\n }\n }\n }\n\n protected resetWhenMissingContext(chunkMeta: ChunkMetadata) {\n this.warn(\n `The loading context changed while buffering fragment ${chunkMeta.sn} of level ${chunkMeta.level}. This chunk will not be buffered.`,\n );\n this.removeUnbufferedFrags();\n this.resetStartWhenNotLoaded(this.levelLastLoaded);\n this.resetLoadingState();\n }\n\n protected removeUnbufferedFrags(start: number = 0) {\n this.fragmentTracker.removeFragmentsInRange(\n start,\n Infinity,\n this.playlistType,\n false,\n true,\n );\n }\n\n private updateLevelTiming(\n frag: Fragment,\n part: Part | null,\n level: Level,\n partial: boolean,\n ) {\n const details = level.details as LevelDetails;\n if (!details) {\n this.warn('level.details undefined');\n return;\n }\n const parsed = Object.keys(frag.elementaryStreams).reduce(\n (result, type) => {\n const info = frag.elementaryStreams[type];\n if (info) {\n const parsedDuration = info.endPTS - info.startPTS;\n if (parsedDuration <= 0) {\n // Destroy the transmuxer after it's next time offset failed to advance because duration was <= 0.\n // The new transmuxer will be configured with a time offset matching the next fragment start,\n // preventing the timeline from shifting.\n this.warn(\n `Could not parse fragment ${frag.sn} ${type} duration reliably (${parsedDuration})`,\n );\n return result || false;\n }\n const drift = partial\n ? 0\n : updateFragPTSDTS(\n details,\n frag,\n info.startPTS,\n info.endPTS,\n info.startDTS,\n info.endDTS,\n );\n this.hls.trigger(Events.LEVEL_PTS_UPDATED, {\n details,\n level,\n drift,\n type,\n frag,\n start: info.startPTS,\n end: info.endPTS,\n });\n return true;\n }\n return result;\n },\n false,\n );\n if (!parsed && this.transmuxer?.error === null) {\n const error = new Error(\n `Found no media in fragment ${frag.sn} of level ${frag.level} resetting transmuxer to fallback to playlist timing`,\n );\n if (level.fragmentError === 0) {\n // Mark and track the odd empty segment as a gap to avoid reloading\n level.fragmentError++;\n frag.gap = true;\n this.fragmentTracker.removeFragment(frag);\n this.fragmentTracker.fragBuffered(frag, true);\n }\n this.warn(error.message);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: false,\n error,\n frag,\n reason: `Found no media in msn ${frag.sn} of level \"${level.url}\"`,\n });\n if (!this.hls) {\n return;\n }\n this.resetTransmuxer();\n // For this error fallthrough. Marking parsed will allow advancing to next fragment.\n }\n this.state = State.PARSED;\n this.hls.trigger(Events.FRAG_PARSED, { frag, part });\n }\n\n protected resetTransmuxer() {\n if (this.transmuxer) {\n this.transmuxer.destroy();\n this.transmuxer = null;\n }\n }\n\n protected recoverWorkerError(data: ErrorData) {\n if (data.event === 'demuxerWorker') {\n this.fragmentTracker.removeAllFragments();\n this.resetTransmuxer();\n this.resetStartWhenNotLoaded(this.levelLastLoaded);\n this.resetLoadingState();\n }\n }\n\n set state(nextState) {\n const previousState = this._state;\n if (previousState !== nextState) {\n this._state = nextState;\n this.log(`${previousState}->${nextState}`);\n }\n }\n\n get state() {\n return this._state;\n }\n}\n","export default class ChunkCache {\n private chunks: Array<Uint8Array> = [];\n public dataLength: number = 0;\n\n push(chunk: Uint8Array) {\n this.chunks.push(chunk);\n this.dataLength += chunk.length;\n }\n\n flush(): Uint8Array {\n const { chunks, dataLength } = this;\n let result;\n if (!chunks.length) {\n return new Uint8Array(0);\n } else if (chunks.length === 1) {\n result = chunks[0];\n } else {\n result = concatUint8Arrays(chunks, dataLength);\n }\n this.reset();\n return result;\n }\n\n reset() {\n this.chunks.length = 0;\n this.dataLength = 0;\n }\n}\n\nfunction concatUint8Arrays(\n chunks: Array<Uint8Array>,\n dataLength: number,\n): Uint8Array {\n const result = new Uint8Array(dataLength);\n let offset = 0;\n for (let i = 0; i < chunks.length; i++) {\n const chunk = chunks[i];\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n}\n","import type { DemuxedTrack } from '../types/demuxer';\n\nexport function dummyTrack(type = '', inputTimeScale = 90000): DemuxedTrack {\n return {\n type,\n id: -1,\n pid: -1,\n inputTimeScale,\n sequenceNumber: -1,\n samples: [],\n dropped: 0,\n };\n}\n","import * as ID3 from '../id3';\nimport {\n DemuxerResult,\n Demuxer,\n DemuxedAudioTrack,\n AudioFrame,\n DemuxedMetadataTrack,\n DemuxedVideoTrackBase,\n DemuxedUserdataTrack,\n KeyData,\n MetadataSchema,\n} from '../../types/demuxer';\nimport { dummyTrack } from '../dummy-demuxed-track';\nimport { appendUint8Array } from '../../utils/mp4-tools';\nimport { sliceUint8 } from '../../utils/typed-array';\nimport { RationalTimestamp } from '../../utils/timescale-conversion';\n\nclass BaseAudioDemuxer implements Demuxer {\n protected _audioTrack!: DemuxedAudioTrack;\n protected _id3Track!: DemuxedMetadataTrack;\n protected frameIndex: number = 0;\n protected cachedData: Uint8Array | null = null;\n protected basePTS: number | null = null;\n protected initPTS: RationalTimestamp | null = null;\n protected lastPTS: number | null = null;\n\n resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n ) {\n this._id3Track = {\n type: 'id3',\n id: 3,\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: 0,\n };\n }\n\n resetTimeStamp(deaultTimestamp: RationalTimestamp | null) {\n this.initPTS = deaultTimestamp;\n this.resetContiguity();\n }\n\n resetContiguity(): void {\n this.basePTS = null;\n this.lastPTS = null;\n this.frameIndex = 0;\n }\n\n canParse(data: Uint8Array, offset: number): boolean {\n return false;\n }\n\n appendFrame(\n track: DemuxedAudioTrack,\n data: Uint8Array,\n offset: number,\n ): AudioFrame | void {}\n\n // feed incoming data to the front of the parsing pipeline\n demux(data: Uint8Array, timeOffset: number): DemuxerResult {\n if (this.cachedData) {\n data = appendUint8Array(this.cachedData, data);\n this.cachedData = null;\n }\n\n let id3Data: Uint8Array | undefined = ID3.getID3Data(data, 0);\n let offset = id3Data ? id3Data.length : 0;\n let lastDataIndex;\n const track = this._audioTrack;\n const id3Track = this._id3Track;\n const timestamp = id3Data ? ID3.getTimeStamp(id3Data) : undefined;\n const length = data.length;\n\n if (\n this.basePTS === null ||\n (this.frameIndex === 0 && Number.isFinite(timestamp))\n ) {\n this.basePTS = initPTSFn(timestamp, timeOffset, this.initPTS);\n this.lastPTS = this.basePTS;\n }\n\n if (this.lastPTS === null) {\n this.lastPTS = this.basePTS;\n }\n\n // more expressive than alternative: id3Data?.length\n if (id3Data && id3Data.length > 0) {\n id3Track.samples.push({\n pts: this.lastPTS,\n dts: this.lastPTS,\n data: id3Data,\n type: MetadataSchema.audioId3,\n duration: Number.POSITIVE_INFINITY,\n });\n }\n\n while (offset < length) {\n if (this.canParse(data, offset)) {\n const frame = this.appendFrame(track, data, offset);\n if (frame) {\n this.frameIndex++;\n this.lastPTS = frame.sample.pts;\n offset += frame.length;\n lastDataIndex = offset;\n } else {\n offset = length;\n }\n } else if (ID3.canParse(data, offset)) {\n // after a ID3.canParse, a call to ID3.getID3Data *should* always returns some data\n id3Data = ID3.getID3Data(data, offset)!;\n id3Track.samples.push({\n pts: this.lastPTS,\n dts: this.lastPTS,\n data: id3Data,\n type: MetadataSchema.audioId3,\n duration: Number.POSITIVE_INFINITY,\n });\n offset += id3Data.length;\n lastDataIndex = offset;\n } else {\n offset++;\n }\n if (offset === length && lastDataIndex !== length) {\n const partialData = sliceUint8(data, lastDataIndex);\n if (this.cachedData) {\n this.cachedData = appendUint8Array(this.cachedData, partialData);\n } else {\n this.cachedData = partialData;\n }\n }\n }\n\n return {\n audioTrack: track,\n videoTrack: dummyTrack() as DemuxedVideoTrackBase,\n id3Track,\n textTrack: dummyTrack() as DemuxedUserdataTrack,\n };\n }\n\n demuxSampleAes(\n data: Uint8Array,\n keyData: KeyData,\n timeOffset: number,\n ): Promise<DemuxerResult> {\n return Promise.reject(\n new Error(\n `[${this}] This demuxer does not support Sample-AES decryption`,\n ),\n );\n }\n\n flush(timeOffset: number): DemuxerResult {\n // Parse cache in case of remaining frames.\n const cachedData = this.cachedData;\n if (cachedData) {\n this.cachedData = null;\n this.demux(cachedData, 0);\n }\n\n return {\n audioTrack: this._audioTrack,\n videoTrack: dummyTrack() as DemuxedVideoTrackBase,\n id3Track: this._id3Track,\n textTrack: dummyTrack() as DemuxedUserdataTrack,\n };\n }\n\n destroy() {}\n}\n\n/**\n * Initialize PTS\n * <p>\n * use timestamp unless it is undefined, NaN or Infinity\n * </p>\n */\nexport const initPTSFn = (\n timestamp: number | undefined,\n timeOffset: number,\n initPTS: RationalTimestamp | null,\n): number => {\n if (Number.isFinite(timestamp as number)) {\n return timestamp! * 90;\n }\n const init90kHz = initPTS\n ? (initPTS.baseTime * 90000) / initPTS.timescale\n : 0;\n return timeOffset * 90000 + init90kHz;\n};\nexport default BaseAudioDemuxer;\n","/**\n * ADTS parser helper\n * @link https://wiki.multimedia.cx/index.php?title=ADTS\n */\nimport { logger } from '../../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../../errors';\nimport type { HlsEventEmitter } from '../../events';\nimport { Events } from '../../events';\nimport type {\n DemuxedAudioTrack,\n AudioFrame,\n AudioSample,\n} from '../../types/demuxer';\n\ntype AudioConfig = {\n config: number[];\n samplerate: number;\n channelCount: number;\n codec: string;\n manifestCodec: string;\n};\n\ntype FrameHeader = {\n headerLength: number;\n frameLength: number;\n};\n\nexport function getAudioConfig(\n observer: HlsEventEmitter,\n data: Uint8Array,\n offset: number,\n audioCodec: string,\n): AudioConfig | void {\n let adtsObjectType: number;\n let adtsExtensionSamplingIndex: number;\n let adtsChannelConfig: number;\n let config: number[];\n const userAgent = navigator.userAgent.toLowerCase();\n const manifestCodec = audioCodec;\n const adtsSamplingRates = [\n 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025,\n 8000, 7350,\n ];\n // byte 2\n adtsObjectType = ((data[offset + 2] & 0xc0) >>> 6) + 1;\n const adtsSamplingIndex = (data[offset + 2] & 0x3c) >>> 2;\n if (adtsSamplingIndex > adtsSamplingRates.length - 1) {\n const error = new Error(`invalid ADTS sampling index:${adtsSamplingIndex}`);\n observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: true,\n error,\n reason: error.message,\n });\n return;\n }\n adtsChannelConfig = (data[offset + 2] & 0x01) << 2;\n // byte 3\n adtsChannelConfig |= (data[offset + 3] & 0xc0) >>> 6;\n logger.log(\n `manifest codec:${audioCodec}, ADTS type:${adtsObjectType}, samplingIndex:${adtsSamplingIndex}`,\n );\n // firefox: freq less than 24kHz = AAC SBR (HE-AAC)\n if (/firefox/i.test(userAgent)) {\n if (adtsSamplingIndex >= 6) {\n adtsObjectType = 5;\n config = new Array(4);\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSamplingIndex = adtsSamplingIndex - 3;\n } else {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n }\n // Android : always use AAC\n } else if (userAgent.indexOf('android') !== -1) {\n adtsObjectType = 2;\n config = new Array(2);\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n } else {\n /* for other browsers (Chrome/Vivaldi/Opera ...)\n always force audio type to be HE-AAC SBR, as some browsers do not support audio codec switch properly (like Chrome ...)\n */\n adtsObjectType = 5;\n config = new Array(4);\n // if (manifest codec is HE-AAC or HE-AACv2) OR (manifest codec not specified AND frequency less than 24kHz)\n if (\n (audioCodec &&\n (audioCodec.indexOf('mp4a.40.29') !== -1 ||\n audioCodec.indexOf('mp4a.40.5') !== -1)) ||\n (!audioCodec && adtsSamplingIndex >= 6)\n ) {\n // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n // there is a factor 2 between frame sample rate and output sample rate\n // multiply frequency by 2 (see table below, equivalent to substract 3)\n adtsExtensionSamplingIndex = adtsSamplingIndex - 3;\n } else {\n // if (manifest codec is AAC) AND (frequency less than 24kHz AND nb channel is 1) OR (manifest codec not specified and mono audio)\n // Chrome fails to play back with low frequency AAC LC mono when initialized with HE-AAC. This is not a problem with stereo.\n if (\n (audioCodec &&\n audioCodec.indexOf('mp4a.40.2') !== -1 &&\n ((adtsSamplingIndex >= 6 && adtsChannelConfig === 1) ||\n /vivaldi/i.test(userAgent))) ||\n (!audioCodec && adtsChannelConfig === 1)\n ) {\n adtsObjectType = 2;\n config = new Array(2);\n }\n adtsExtensionSamplingIndex = adtsSamplingIndex;\n }\n }\n /* refer to http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Specific_Config\n ISO 14496-3 (AAC).pdf - Table 1.13 — Syntax of AudioSpecificConfig()\n Audio Profile / Audio Object Type\n 0: Null\n 1: AAC Main\n 2: AAC LC (Low Complexity)\n 3: AAC SSR (Scalable Sample Rate)\n 4: AAC LTP (Long Term Prediction)\n 5: SBR (Spectral Band Replication)\n 6: AAC Scalable\n sampling freq\n 0: 96000 Hz\n 1: 88200 Hz\n 2: 64000 Hz\n 3: 48000 Hz\n 4: 44100 Hz\n 5: 32000 Hz\n 6: 24000 Hz\n 7: 22050 Hz\n 8: 16000 Hz\n 9: 12000 Hz\n 10: 11025 Hz\n 11: 8000 Hz\n 12: 7350 Hz\n 13: Reserved\n 14: Reserved\n 15: frequency is written explictly\n Channel Configurations\n These are the channel configurations:\n 0: Defined in AOT Specifc Config\n 1: 1 channel: front-center\n 2: 2 channels: front-left, front-right\n */\n // audioObjectType = profile => profile, the MPEG-4 Audio Object Type minus 1\n config[0] = adtsObjectType << 3;\n // samplingFrequencyIndex\n config[0] |= (adtsSamplingIndex & 0x0e) >> 1;\n config[1] |= (adtsSamplingIndex & 0x01) << 7;\n // channelConfiguration\n config[1] |= adtsChannelConfig << 3;\n if (adtsObjectType === 5) {\n // adtsExtensionSamplingIndex\n config[1] |= (adtsExtensionSamplingIndex & 0x0e) >> 1;\n config[2] = (adtsExtensionSamplingIndex & 0x01) << 7;\n // adtsObjectType (force to 2, chrome is checking that object type is less than 5 ???\n // https://chromium.googlesource.com/chromium/src.git/+/master/media/formats/mp4/aac.cc\n config[2] |= 2 << 2;\n config[3] = 0;\n }\n return {\n config,\n samplerate: adtsSamplingRates[adtsSamplingIndex],\n channelCount: adtsChannelConfig,\n codec: 'mp4a.40.' + adtsObjectType,\n manifestCodec,\n };\n}\n\nexport function isHeaderPattern(data: Uint8Array, offset: number): boolean {\n return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n}\n\nexport function getHeaderLength(data: Uint8Array, offset: number): number {\n return data[offset + 1] & 0x01 ? 7 : 9;\n}\n\nexport function getFullFrameLength(data: Uint8Array, offset: number): number {\n return (\n ((data[offset + 3] & 0x03) << 11) |\n (data[offset + 4] << 3) |\n ((data[offset + 5] & 0xe0) >>> 5)\n );\n}\n\nexport function canGetFrameLength(data: Uint8Array, offset: number): boolean {\n return offset + 5 < data.length;\n}\n\nexport function isHeader(data: Uint8Array, offset: number): boolean {\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n return offset + 1 < data.length && isHeaderPattern(data, offset);\n}\n\nexport function canParse(data: Uint8Array, offset: number): boolean {\n return (\n canGetFrameLength(data, offset) &&\n isHeaderPattern(data, offset) &&\n getFullFrameLength(data, offset) <= data.length - offset\n );\n}\n\nexport function probe(data: Uint8Array, offset: number): boolean {\n // same as isHeader but we also check that ADTS frame follows last ADTS frame\n // or end of data is reached\n if (isHeader(data, offset)) {\n // ADTS header Length\n const headerLength = getHeaderLength(data, offset);\n if (offset + headerLength >= data.length) {\n return false;\n }\n // ADTS frame Length\n const frameLength = getFullFrameLength(data, offset);\n if (frameLength <= headerLength) {\n return false;\n }\n\n const newOffset = offset + frameLength;\n return newOffset === data.length || isHeader(data, newOffset);\n }\n return false;\n}\n\nexport function initTrackConfig(\n track: DemuxedAudioTrack,\n observer: HlsEventEmitter,\n data: Uint8Array,\n offset: number,\n audioCodec: string,\n) {\n if (!track.samplerate) {\n const config = getAudioConfig(observer, data, offset, audioCodec);\n if (!config) {\n return;\n }\n track.config = config.config;\n track.samplerate = config.samplerate;\n track.channelCount = config.channelCount;\n track.codec = config.codec;\n track.manifestCodec = config.manifestCodec;\n logger.log(\n `parsed codec:${track.codec}, rate:${config.samplerate}, channels:${config.channelCount}`,\n );\n }\n}\n\nexport function getFrameDuration(samplerate: number): number {\n return (1024 * 90000) / samplerate;\n}\n\nexport function parseFrameHeader(\n data: Uint8Array,\n offset: number,\n): FrameHeader | void {\n // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n const headerLength = getHeaderLength(data, offset);\n if (offset + headerLength <= data.length) {\n // retrieve frame size\n const frameLength = getFullFrameLength(data, offset) - headerLength;\n if (frameLength > 0) {\n // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}`);\n return { headerLength, frameLength };\n }\n }\n}\n\nexport function appendFrame(\n track: DemuxedAudioTrack,\n data: Uint8Array,\n offset: number,\n pts: number,\n frameIndex: number,\n): AudioFrame {\n const frameDuration = getFrameDuration(track.samplerate as number);\n const stamp = pts + frameIndex * frameDuration;\n const header = parseFrameHeader(data, offset);\n let unit: Uint8Array;\n if (header) {\n const { frameLength, headerLength } = header;\n const length = headerLength + frameLength;\n const missing = Math.max(0, offset + length - data.length);\n // logger.log(`AAC frame ${frameIndex}, pts:${stamp} length@offset/total: ${frameLength}@${offset+headerLength}/${data.byteLength} missing: ${missing}`);\n if (missing) {\n unit = new Uint8Array(length - headerLength);\n unit.set(data.subarray(offset + headerLength, data.length), 0);\n } else {\n unit = data.subarray(offset + headerLength, offset + length);\n }\n\n const sample: AudioSample = {\n unit,\n pts: stamp,\n };\n if (!missing) {\n track.samples.push(sample as AudioSample);\n }\n\n return { sample, length, missing };\n }\n // overflow incomplete header\n const length = data.length - offset;\n unit = new Uint8Array(length);\n unit.set(data.subarray(offset, data.length), 0);\n const sample: AudioSample = {\n unit,\n pts: stamp,\n };\n return { sample, length, missing: -1 };\n}\n","/**\n * MPEG parser helper\n */\nimport { DemuxedAudioTrack } from '../../types/demuxer';\n\nlet chromeVersion: number | null = null;\n\nconst BitratesMap = [\n 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56,\n 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80,\n 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144,\n 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144,\n 160,\n];\n\nconst SamplingRateMap = [\n 44100, 48000, 32000, 22050, 24000, 16000, 11025, 12000, 8000,\n];\n\nconst SamplesCoefficients = [\n // MPEG 2.5\n [\n 0, // Reserved\n 72, // Layer3\n 144, // Layer2\n 12, // Layer1\n ],\n // Reserved\n [\n 0, // Reserved\n 0, // Layer3\n 0, // Layer2\n 0, // Layer1\n ],\n // MPEG 2\n [\n 0, // Reserved\n 72, // Layer3\n 144, // Layer2\n 12, // Layer1\n ],\n // MPEG 1\n [\n 0, // Reserved\n 144, // Layer3\n 144, // Layer2\n 12, // Layer1\n ],\n];\n\nconst BytesInSlot = [\n 0, // Reserved\n 1, // Layer3\n 1, // Layer2\n 4, // Layer1\n];\n\nexport function appendFrame(\n track: DemuxedAudioTrack,\n data: Uint8Array,\n offset: number,\n pts: number,\n frameIndex: number,\n) {\n // Using http://www.datavoyage.com/mpgscript/mpeghdr.htm as a reference\n if (offset + 24 > data.length) {\n return;\n }\n\n const header = parseHeader(data, offset);\n if (header && offset + header.frameLength <= data.length) {\n const frameDuration = (header.samplesPerFrame * 90000) / header.sampleRate;\n const stamp = pts + frameIndex * frameDuration;\n const sample = {\n unit: data.subarray(offset, offset + header.frameLength),\n pts: stamp,\n dts: stamp,\n };\n\n track.config = [];\n track.channelCount = header.channelCount;\n track.samplerate = header.sampleRate;\n track.samples.push(sample);\n\n return { sample, length: header.frameLength, missing: 0 };\n }\n}\n\nexport function parseHeader(data: Uint8Array, offset: number) {\n const mpegVersion = (data[offset + 1] >> 3) & 3;\n const mpegLayer = (data[offset + 1] >> 1) & 3;\n const bitRateIndex = (data[offset + 2] >> 4) & 15;\n const sampleRateIndex = (data[offset + 2] >> 2) & 3;\n if (\n mpegVersion !== 1 &&\n bitRateIndex !== 0 &&\n bitRateIndex !== 15 &&\n sampleRateIndex !== 3\n ) {\n const paddingBit = (data[offset + 2] >> 1) & 1;\n const channelMode = data[offset + 3] >> 6;\n const columnInBitrates =\n mpegVersion === 3 ? 3 - mpegLayer : mpegLayer === 3 ? 3 : 4;\n const bitRate =\n BitratesMap[columnInBitrates * 14 + bitRateIndex - 1] * 1000;\n const columnInSampleRates =\n mpegVersion === 3 ? 0 : mpegVersion === 2 ? 1 : 2;\n const sampleRate =\n SamplingRateMap[columnInSampleRates * 3 + sampleRateIndex];\n const channelCount = channelMode === 3 ? 1 : 2; // If bits of channel mode are `11` then it is a single channel (Mono)\n const sampleCoefficient = SamplesCoefficients[mpegVersion][mpegLayer];\n const bytesInSlot = BytesInSlot[mpegLayer];\n const samplesPerFrame = sampleCoefficient * 8 * bytesInSlot;\n const frameLength =\n Math.floor((sampleCoefficient * bitRate) / sampleRate + paddingBit) *\n bytesInSlot;\n\n if (chromeVersion === null) {\n const userAgent = navigator.userAgent || '';\n const result = userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion = result ? parseInt(result[1]) : 0;\n }\n const needChromeFix = !!chromeVersion && chromeVersion <= 87;\n\n if (\n needChromeFix &&\n mpegLayer === 2 &&\n bitRate >= 224000 &&\n channelMode === 0\n ) {\n // Work around bug in Chromium by setting channelMode to dual-channel (01) instead of stereo (00)\n data[offset + 3] = data[offset + 3] | 0x80;\n }\n\n return { sampleRate, channelCount, frameLength, samplesPerFrame };\n }\n}\n\nexport function isHeaderPattern(data: Uint8Array, offset: number): boolean {\n return (\n data[offset] === 0xff &&\n (data[offset + 1] & 0xe0) === 0xe0 &&\n (data[offset + 1] & 0x06) !== 0x00\n );\n}\n\nexport function isHeader(data: Uint8Array, offset: number): boolean {\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n return offset + 1 < data.length && isHeaderPattern(data, offset);\n}\n\nexport function canParse(data: Uint8Array, offset: number): boolean {\n const headerSize = 4;\n\n return isHeaderPattern(data, offset) && headerSize <= data.length - offset;\n}\n\nexport function probe(data: Uint8Array, offset: number): boolean {\n // same as isHeader but we also check that MPEG frame follows last MPEG frame\n // or end of data is reached\n if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n // MPEG header Length\n const headerLength = 4;\n // MPEG frame Length\n const header = parseHeader(data, offset);\n let frameLength = headerLength;\n if (header?.frameLength) {\n frameLength = header.frameLength;\n }\n\n const newOffset = offset + frameLength;\n return newOffset === data.length || isHeader(data, newOffset);\n }\n return false;\n}\n","/**\n * MP4 demuxer\n */\nimport {\n Demuxer,\n DemuxerResult,\n PassthroughTrack,\n DemuxedAudioTrack,\n DemuxedUserdataTrack,\n DemuxedMetadataTrack,\n KeyData,\n MetadataSchema,\n} from '../types/demuxer';\nimport {\n findBox,\n segmentValidRange,\n appendUint8Array,\n parseEmsg,\n parseSamples,\n parseInitSegment,\n RemuxerTrackIdConfig,\n hasMoofData,\n} from '../utils/mp4-tools';\nimport { dummyTrack } from './dummy-demuxed-track';\nimport type { HlsEventEmitter } from '../events';\nimport type { HlsConfig } from '../config';\n\nconst emsgSchemePattern = /\\/emsg[-/]ID3/i;\n\nclass MP4Demuxer implements Demuxer {\n private remainderData: Uint8Array | null = null;\n private timeOffset: number = 0;\n private config: HlsConfig;\n private videoTrack?: PassthroughTrack;\n private audioTrack?: DemuxedAudioTrack;\n private id3Track?: DemuxedMetadataTrack;\n private txtTrack?: DemuxedUserdataTrack;\n\n constructor(observer: HlsEventEmitter, config: HlsConfig) {\n this.config = config;\n }\n\n public resetTimeStamp() {}\n\n public resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n ) {\n const videoTrack = (this.videoTrack = dummyTrack(\n 'video',\n 1,\n ) as PassthroughTrack);\n const audioTrack = (this.audioTrack = dummyTrack(\n 'audio',\n 1,\n ) as DemuxedAudioTrack);\n const captionTrack = (this.txtTrack = dummyTrack(\n 'text',\n 1,\n ) as DemuxedUserdataTrack);\n\n this.id3Track = dummyTrack('id3', 1) as DemuxedMetadataTrack;\n this.timeOffset = 0;\n\n if (!initSegment?.byteLength) {\n return;\n }\n const initData = parseInitSegment(initSegment);\n\n if (initData.video) {\n const { id, timescale, codec } = initData.video;\n videoTrack.id = id;\n videoTrack.timescale = captionTrack.timescale = timescale;\n videoTrack.codec = codec;\n }\n\n if (initData.audio) {\n const { id, timescale, codec } = initData.audio;\n audioTrack.id = id;\n audioTrack.timescale = timescale;\n audioTrack.codec = codec;\n }\n\n captionTrack.id = RemuxerTrackIdConfig.text;\n videoTrack.sampleDuration = 0;\n videoTrack.duration = audioTrack.duration = trackDuration;\n }\n\n public resetContiguity(): void {\n this.remainderData = null;\n }\n\n static probe(data: Uint8Array) {\n return hasMoofData(data);\n }\n\n public demux(data: Uint8Array, timeOffset: number): DemuxerResult {\n this.timeOffset = timeOffset;\n // Load all data into the avc track. The CMAF remuxer will look for the data in the samples object; the rest of the fields do not matter\n let videoSamples = data;\n const videoTrack = this.videoTrack as PassthroughTrack;\n const textTrack = this.txtTrack as DemuxedUserdataTrack;\n if (this.config.progressive) {\n // Split the bytestream into two ranges: one encompassing all data up until the start of the last moof, and everything else.\n // This is done to guarantee that we're sending valid data to MSE - when demuxing progressively, we have no guarantee\n // that the fetch loader gives us flush moof+mdat pairs. If we push jagged data to MSE, it will throw an exception.\n if (this.remainderData) {\n videoSamples = appendUint8Array(this.remainderData, data);\n }\n const segmentedData = segmentValidRange(videoSamples);\n this.remainderData = segmentedData.remainder;\n videoTrack.samples = segmentedData.valid || new Uint8Array();\n } else {\n videoTrack.samples = videoSamples;\n }\n\n const id3Track = this.extractID3Track(videoTrack, timeOffset);\n textTrack.samples = parseSamples(timeOffset, videoTrack);\n\n return {\n videoTrack,\n audioTrack: this.audioTrack as DemuxedAudioTrack,\n id3Track,\n textTrack: this.txtTrack as DemuxedUserdataTrack,\n };\n }\n\n public flush() {\n const timeOffset = this.timeOffset;\n const videoTrack = this.videoTrack as PassthroughTrack;\n const textTrack = this.txtTrack as DemuxedUserdataTrack;\n videoTrack.samples = this.remainderData || new Uint8Array();\n this.remainderData = null;\n\n const id3Track = this.extractID3Track(videoTrack, this.timeOffset);\n textTrack.samples = parseSamples(timeOffset, videoTrack);\n\n return {\n videoTrack,\n audioTrack: dummyTrack() as DemuxedAudioTrack,\n id3Track,\n textTrack: dummyTrack() as DemuxedUserdataTrack,\n };\n }\n\n private extractID3Track(\n videoTrack: PassthroughTrack,\n timeOffset: number,\n ): DemuxedMetadataTrack {\n const id3Track = this.id3Track as DemuxedMetadataTrack;\n if (videoTrack.samples.length) {\n const emsgs = findBox(videoTrack.samples, ['emsg']);\n if (emsgs) {\n emsgs.forEach((data: Uint8Array) => {\n const emsgInfo = parseEmsg(data);\n if (emsgSchemePattern.test(emsgInfo.schemeIdUri)) {\n const pts = Number.isFinite(emsgInfo.presentationTime)\n ? emsgInfo.presentationTime! / emsgInfo.timeScale\n : timeOffset +\n emsgInfo.presentationTimeDelta! / emsgInfo.timeScale;\n let duration =\n emsgInfo.eventDuration === 0xffffffff\n ? Number.POSITIVE_INFINITY\n : emsgInfo.eventDuration / emsgInfo.timeScale;\n // Safari takes anything <= 0.001 seconds and maps it to Infinity\n if (duration <= 0.001) {\n duration = Number.POSITIVE_INFINITY;\n }\n const payload = emsgInfo.payload;\n id3Track.samples.push({\n data: payload,\n len: payload.byteLength,\n dts: pts,\n pts: pts,\n type: MetadataSchema.emsg,\n duration: duration,\n });\n }\n });\n }\n }\n return id3Track;\n }\n\n demuxSampleAes(\n data: Uint8Array,\n keyData: KeyData,\n timeOffset: number,\n ): Promise<DemuxerResult> {\n return Promise.reject(\n new Error('The MP4 demuxer does not support SAMPLE-AES decryption'),\n );\n }\n\n destroy() {}\n}\n\nexport default MP4Demuxer;\n","export const getAudioBSID = (data: Uint8Array, offset: number): number => {\n // check the bsid to confirm ac-3 | ec-3\n let bsid = 0;\n let numBits = 5;\n offset += numBits;\n const temp = new Uint32Array(1); // unsigned 32 bit for temporary storage\n const mask = new Uint32Array(1); // unsigned 32 bit mask value\n const byte = new Uint8Array(1); // unsigned 8 bit for temporary storage\n while (numBits > 0) {\n byte[0] = data[offset];\n // read remaining bits, upto 8 bits at a time\n const bits = Math.min(numBits, 8);\n const shift = 8 - bits;\n mask[0] = (0xff000000 >>> (24 + shift)) << shift;\n temp[0] = (byte[0] & mask[0]) >> shift;\n bsid = !bsid ? temp[0] : (bsid << bits) | temp[0];\n offset += 1;\n numBits -= bits;\n }\n return bsid;\n};\n","import BaseAudioDemuxer from './base-audio-demuxer';\nimport { getID3Data, getTimeStamp } from '../id3';\nimport { getAudioBSID } from './dolby';\nimport type { HlsEventEmitter } from '../../events';\nimport type { AudioFrame, DemuxedAudioTrack } from '../../types/demuxer';\n\nexport class AC3Demuxer extends BaseAudioDemuxer {\n private readonly observer: HlsEventEmitter;\n\n constructor(observer) {\n super();\n this.observer = observer;\n }\n\n resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n ) {\n super.resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration);\n this._audioTrack = {\n container: 'audio/ac-3',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n segmentCodec: 'ac3',\n samples: [],\n manifestCodec: audioCodec,\n duration: trackDuration,\n inputTimeScale: 90000,\n dropped: 0,\n };\n }\n\n canParse(data: Uint8Array, offset: number): boolean {\n return offset + 64 < data.length;\n }\n\n appendFrame(\n track: DemuxedAudioTrack,\n data: Uint8Array,\n offset: number,\n ): AudioFrame | void {\n const frameLength = appendFrame(\n track,\n data,\n offset,\n this.basePTS as number,\n this.frameIndex,\n );\n if (frameLength !== -1) {\n const sample = track.samples[track.samples.length - 1];\n return { sample, length: frameLength, missing: 0 };\n }\n }\n\n static probe(data: Uint8Array | undefined): boolean {\n if (!data) {\n return false;\n }\n\n const id3Data = getID3Data(data, 0);\n if (!id3Data) {\n return false;\n }\n\n // look for the ac-3 sync bytes\n const offset = id3Data.length;\n if (\n data[offset] === 0x0b &&\n data[offset + 1] === 0x77 &&\n getTimeStamp(id3Data) !== undefined &&\n // check the bsid to confirm ac-3\n getAudioBSID(data, offset) < 16\n ) {\n return true;\n }\n return false;\n }\n}\n\nexport function appendFrame(\n track: DemuxedAudioTrack,\n data: Uint8Array,\n start: number,\n pts: number,\n frameIndex: number,\n): number {\n if (start + 8 > data.length) {\n return -1; // not enough bytes left\n }\n\n if (data[start] !== 0x0b || data[start + 1] !== 0x77) {\n return -1; // invalid magic\n }\n\n // get sample rate\n const samplingRateCode = data[start + 4] >> 6;\n if (samplingRateCode >= 3) {\n return -1; // invalid sampling rate\n }\n\n const samplingRateMap = [48000, 44100, 32000];\n const sampleRate = samplingRateMap[samplingRateCode];\n\n // get frame size\n const frameSizeCode = data[start + 4] & 0x3f;\n const frameSizeMap = [\n 64, 69, 96, 64, 70, 96, 80, 87, 120, 80, 88, 120, 96, 104, 144, 96, 105,\n 144, 112, 121, 168, 112, 122, 168, 128, 139, 192, 128, 140, 192, 160, 174,\n 240, 160, 175, 240, 192, 208, 288, 192, 209, 288, 224, 243, 336, 224, 244,\n 336, 256, 278, 384, 256, 279, 384, 320, 348, 480, 320, 349, 480, 384, 417,\n 576, 384, 418, 576, 448, 487, 672, 448, 488, 672, 512, 557, 768, 512, 558,\n 768, 640, 696, 960, 640, 697, 960, 768, 835, 1152, 768, 836, 1152, 896, 975,\n 1344, 896, 976, 1344, 1024, 1114, 1536, 1024, 1115, 1536, 1152, 1253, 1728,\n 1152, 1254, 1728, 1280, 1393, 1920, 1280, 1394, 1920,\n ];\n\n const frameLength = frameSizeMap[frameSizeCode * 3 + samplingRateCode] * 2;\n if (start + frameLength > data.length) {\n return -1;\n }\n\n // get channel count\n const channelMode = data[start + 6] >> 5;\n let skipCount = 0;\n if (channelMode === 2) {\n skipCount += 2;\n } else {\n if (channelMode & 1 && channelMode !== 1) {\n skipCount += 2;\n }\n if (channelMode & 4) {\n skipCount += 2;\n }\n }\n\n const lfeon =\n (((data[start + 6] << 8) | data[start + 7]) >> (12 - skipCount)) & 1;\n\n const channelsMap = [2, 1, 2, 3, 3, 4, 4, 5];\n const channelCount = channelsMap[channelMode] + lfeon;\n\n // build dac3 box\n const bsid = data[start + 5] >> 3;\n const bsmod = data[start + 5] & 7;\n\n const config = new Uint8Array([\n (samplingRateCode << 6) | (bsid << 1) | (bsmod >> 2),\n ((bsmod & 3) << 6) |\n (channelMode << 3) |\n (lfeon << 2) |\n (frameSizeCode >> 4),\n (frameSizeCode << 4) & 0xe0,\n ]);\n\n const frameDuration = (1536 / sampleRate) * 90000;\n const stamp = pts + frameIndex * frameDuration;\n const unit = data.subarray(start, start + frameLength);\n\n track.config = config;\n track.channelCount = channelCount;\n track.samplerate = sampleRate;\n track.samples.push({ unit, pts: stamp });\n\n return frameLength;\n}\n","import type { ParsedVideoSample } from '../tsdemuxer';\nimport {\n DemuxedVideoTrack,\n VideoSample,\n VideoSampleUnit,\n} from '../../types/demuxer';\nimport { logger } from '../../utils/logger';\n\nclass BaseVideoParser {\n protected VideoSample: ParsedVideoSample | null = null;\n\n protected createVideoSample(\n key: boolean,\n pts: number | undefined,\n dts: number | undefined,\n debug: string,\n ): ParsedVideoSample {\n return {\n key,\n frame: false,\n pts,\n dts,\n units: [],\n debug,\n length: 0,\n };\n }\n\n protected getLastNalUnit(\n samples: VideoSample[],\n ): VideoSampleUnit | undefined {\n let VideoSample = this.VideoSample;\n let lastUnit: VideoSampleUnit | undefined;\n // try to fallback to previous sample if current one is empty\n if (!VideoSample || VideoSample.units.length === 0) {\n VideoSample = samples[samples.length - 1];\n }\n if (VideoSample?.units) {\n const units = VideoSample.units;\n lastUnit = units[units.length - 1];\n }\n return lastUnit;\n }\n\n protected pushAccessUnit(\n VideoSample: ParsedVideoSample,\n videoTrack: DemuxedVideoTrack,\n ) {\n if (VideoSample.units.length && VideoSample.frame) {\n // if sample does not have PTS/DTS, patch with last sample PTS/DTS\n if (VideoSample.pts === undefined) {\n const samples = videoTrack.samples;\n const nbSamples = samples.length;\n if (nbSamples) {\n const lastSample = samples[nbSamples - 1];\n VideoSample.pts = lastSample.pts;\n VideoSample.dts = lastSample.dts;\n } else {\n // dropping samples, no timestamp found\n videoTrack.dropped++;\n return;\n }\n }\n videoTrack.samples.push(VideoSample as VideoSample);\n }\n if (VideoSample.debug.length) {\n logger.log(\n VideoSample.pts + '/' + VideoSample.dts + ':' + VideoSample.debug,\n );\n }\n }\n}\n\nexport default BaseVideoParser;\n","/**\n * Parser for exponential Golomb codes, a variable-bitwidth number encoding scheme used by h264.\n */\n\nimport { logger } from '../../utils/logger';\n\nclass ExpGolomb {\n private data: Uint8Array;\n public bytesAvailable: number;\n private word: number;\n private bitsAvailable: number;\n\n constructor(data: Uint8Array) {\n this.data = data;\n // the number of bytes left to examine in this.data\n this.bytesAvailable = data.byteLength;\n // the current word being examined\n this.word = 0; // :uint\n // the number of bits left to examine in the current word\n this.bitsAvailable = 0; // :uint\n }\n\n // ():void\n loadWord(): void {\n const data = this.data;\n const bytesAvailable = this.bytesAvailable;\n const position = data.byteLength - bytesAvailable;\n const workingBytes = new Uint8Array(4);\n const availableBytes = Math.min(4, bytesAvailable);\n if (availableBytes === 0) {\n throw new Error('no bytes available');\n }\n\n workingBytes.set(data.subarray(position, position + availableBytes));\n this.word = new DataView(workingBytes.buffer).getUint32(0);\n // track the amount of this.data that has been processed\n this.bitsAvailable = availableBytes * 8;\n this.bytesAvailable -= availableBytes;\n }\n\n // (count:int):void\n skipBits(count: number): void {\n let skipBytes; // :int\n count = Math.min(count, this.bytesAvailable * 8 + this.bitsAvailable);\n if (this.bitsAvailable > count) {\n this.word <<= count;\n this.bitsAvailable -= count;\n } else {\n count -= this.bitsAvailable;\n skipBytes = count >> 3;\n count -= skipBytes << 3;\n this.bytesAvailable -= skipBytes;\n this.loadWord();\n this.word <<= count;\n this.bitsAvailable -= count;\n }\n }\n\n // (size:int):uint\n readBits(size: number): number {\n let bits = Math.min(this.bitsAvailable, size); // :uint\n const valu = this.word >>> (32 - bits); // :uint\n if (size > 32) {\n logger.error('Cannot read more than 32 bits at a time');\n }\n\n this.bitsAvailable -= bits;\n if (this.bitsAvailable > 0) {\n this.word <<= bits;\n } else if (this.bytesAvailable > 0) {\n this.loadWord();\n } else {\n throw new Error('no bits available');\n }\n\n bits = size - bits;\n if (bits > 0 && this.bitsAvailable) {\n return (valu << bits) | this.readBits(bits);\n } else {\n return valu;\n }\n }\n\n // ():uint\n skipLZ(): number {\n let leadingZeroCount; // :uint\n for (\n leadingZeroCount = 0;\n leadingZeroCount < this.bitsAvailable;\n ++leadingZeroCount\n ) {\n if ((this.word & (0x80000000 >>> leadingZeroCount)) !== 0) {\n // the first bit of working word is 1\n this.word <<= leadingZeroCount;\n this.bitsAvailable -= leadingZeroCount;\n return leadingZeroCount;\n }\n }\n // we exhausted word and still have not found a 1\n this.loadWord();\n return leadingZeroCount + this.skipLZ();\n }\n\n // ():void\n skipUEG(): void {\n this.skipBits(1 + this.skipLZ());\n }\n\n // ():void\n skipEG(): void {\n this.skipBits(1 + this.skipLZ());\n }\n\n // ():uint\n readUEG(): number {\n const clz = this.skipLZ(); // :uint\n return this.readBits(clz + 1) - 1;\n }\n\n // ():int\n readEG(): number {\n const valu = this.readUEG(); // :int\n if (0x01 & valu) {\n // the number is odd if the low order bit is set\n return (1 + valu) >>> 1; // add 1 to make it even, and divide by 2\n } else {\n return -1 * (valu >>> 1); // divide by two then make it negative\n }\n }\n\n // Some convenience functions\n // :Boolean\n readBoolean(): boolean {\n return this.readBits(1) === 1;\n }\n\n // ():int\n readUByte(): number {\n return this.readBits(8);\n }\n\n // ():int\n readUShort(): number {\n return this.readBits(16);\n }\n\n // ():int\n readUInt(): number {\n return this.readBits(32);\n }\n\n /**\n * Advance the ExpGolomb decoder past a scaling list. The scaling\n * list is optionally transmitted as part of a sequence parameter\n * set and is not relevant to transmuxing.\n * @param count the number of entries in this scaling list\n * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1\n */\n skipScalingList(count: number): void {\n let lastScale = 8;\n let nextScale = 8;\n let deltaScale;\n for (let j = 0; j < count; j++) {\n if (nextScale !== 0) {\n deltaScale = this.readEG();\n nextScale = (lastScale + deltaScale + 256) % 256;\n }\n lastScale = nextScale === 0 ? lastScale : nextScale;\n }\n }\n\n /**\n * Read a sequence parameter set and return some interesting video\n * properties. A sequence parameter set is the H264 metadata that\n * describes the properties of upcoming video frames.\n * @returns an object with configuration parsed from the\n * sequence parameter set, including the dimensions of the\n * associated video frames.\n */\n readSPS(): {\n width: number;\n height: number;\n pixelRatio: [number, number];\n } {\n let frameCropLeftOffset = 0;\n let frameCropRightOffset = 0;\n let frameCropTopOffset = 0;\n let frameCropBottomOffset = 0;\n let numRefFramesInPicOrderCntCycle;\n let scalingListCount;\n let i;\n const readUByte = this.readUByte.bind(this);\n const readBits = this.readBits.bind(this);\n const readUEG = this.readUEG.bind(this);\n const readBoolean = this.readBoolean.bind(this);\n const skipBits = this.skipBits.bind(this);\n const skipEG = this.skipEG.bind(this);\n const skipUEG = this.skipUEG.bind(this);\n const skipScalingList = this.skipScalingList.bind(this);\n\n readUByte();\n const profileIdc = readUByte(); // profile_idc\n readBits(5); // profileCompat constraint_set[0-4]_flag, u(5)\n skipBits(3); // reserved_zero_3bits u(3),\n readUByte(); // level_idc u(8)\n skipUEG(); // seq_parameter_set_id\n // some profiles have more optional data we don't need\n if (\n profileIdc === 100 ||\n profileIdc === 110 ||\n profileIdc === 122 ||\n profileIdc === 244 ||\n profileIdc === 44 ||\n profileIdc === 83 ||\n profileIdc === 86 ||\n profileIdc === 118 ||\n profileIdc === 128\n ) {\n const chromaFormatIdc = readUEG();\n if (chromaFormatIdc === 3) {\n skipBits(1);\n } // separate_colour_plane_flag\n\n skipUEG(); // bit_depth_luma_minus8\n skipUEG(); // bit_depth_chroma_minus8\n skipBits(1); // qpprime_y_zero_transform_bypass_flag\n if (readBoolean()) {\n // seq_scaling_matrix_present_flag\n scalingListCount = chromaFormatIdc !== 3 ? 8 : 12;\n for (i = 0; i < scalingListCount; i++) {\n if (readBoolean()) {\n // seq_scaling_list_present_flag[ i ]\n if (i < 6) {\n skipScalingList(16);\n } else {\n skipScalingList(64);\n }\n }\n }\n }\n }\n skipUEG(); // log2_max_frame_num_minus4\n const picOrderCntType = readUEG();\n if (picOrderCntType === 0) {\n readUEG(); // log2_max_pic_order_cnt_lsb_minus4\n } else if (picOrderCntType === 1) {\n skipBits(1); // delta_pic_order_always_zero_flag\n skipEG(); // offset_for_non_ref_pic\n skipEG(); // offset_for_top_to_bottom_field\n numRefFramesInPicOrderCntCycle = readUEG();\n for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n skipEG();\n } // offset_for_ref_frame[ i ]\n }\n skipUEG(); // max_num_ref_frames\n skipBits(1); // gaps_in_frame_num_value_allowed_flag\n const picWidthInMbsMinus1 = readUEG();\n const picHeightInMapUnitsMinus1 = readUEG();\n const frameMbsOnlyFlag = readBits(1);\n if (frameMbsOnlyFlag === 0) {\n skipBits(1);\n } // mb_adaptive_frame_field_flag\n\n skipBits(1); // direct_8x8_inference_flag\n if (readBoolean()) {\n // frame_cropping_flag\n frameCropLeftOffset = readUEG();\n frameCropRightOffset = readUEG();\n frameCropTopOffset = readUEG();\n frameCropBottomOffset = readUEG();\n }\n let pixelRatio: [number, number] = [1, 1];\n if (readBoolean()) {\n // vui_parameters_present_flag\n if (readBoolean()) {\n // aspect_ratio_info_present_flag\n const aspectRatioIdc = readUByte();\n switch (aspectRatioIdc) {\n case 1:\n pixelRatio = [1, 1];\n break;\n case 2:\n pixelRatio = [12, 11];\n break;\n case 3:\n pixelRatio = [10, 11];\n break;\n case 4:\n pixelRatio = [16, 11];\n break;\n case 5:\n pixelRatio = [40, 33];\n break;\n case 6:\n pixelRatio = [24, 11];\n break;\n case 7:\n pixelRatio = [20, 11];\n break;\n case 8:\n pixelRatio = [32, 11];\n break;\n case 9:\n pixelRatio = [80, 33];\n break;\n case 10:\n pixelRatio = [18, 11];\n break;\n case 11:\n pixelRatio = [15, 11];\n break;\n case 12:\n pixelRatio = [64, 33];\n break;\n case 13:\n pixelRatio = [160, 99];\n break;\n case 14:\n pixelRatio = [4, 3];\n break;\n case 15:\n pixelRatio = [3, 2];\n break;\n case 16:\n pixelRatio = [2, 1];\n break;\n case 255: {\n pixelRatio = [\n (readUByte() << 8) | readUByte(),\n (readUByte() << 8) | readUByte(),\n ];\n break;\n }\n }\n }\n }\n return {\n width: Math.ceil(\n (picWidthInMbsMinus1 + 1) * 16 -\n frameCropLeftOffset * 2 -\n frameCropRightOffset * 2,\n ),\n height:\n (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 -\n (frameMbsOnlyFlag ? 2 : 4) *\n (frameCropTopOffset + frameCropBottomOffset),\n pixelRatio: pixelRatio,\n };\n }\n\n readSliceType() {\n // skip NALu type\n this.readUByte();\n // discard first_mb_in_slice\n this.readUEG();\n // return slice_type\n return this.readUEG();\n }\n}\n\nexport default ExpGolomb;\n","import BaseVideoParser from './base-video-parser';\nimport {\n DemuxedVideoTrack,\n DemuxedUserdataTrack,\n VideoSampleUnit,\n} from '../../types/demuxer';\nimport {\n appendUint8Array,\n parseSEIMessageFromNALu,\n} from '../../utils/mp4-tools';\nimport ExpGolomb from './exp-golomb';\nimport type { PES } from '../tsdemuxer';\n\nclass AvcVideoParser extends BaseVideoParser {\n public parseAVCPES(\n track: DemuxedVideoTrack,\n textTrack: DemuxedUserdataTrack,\n pes: PES,\n last: boolean,\n duration: number,\n ) {\n const units = this.parseAVCNALu(track, pes.data);\n const debug = false;\n let VideoSample = this.VideoSample;\n let push: boolean;\n let spsfound = false;\n // free pes.data to save up some memory\n (pes as any).data = null;\n\n // if new NAL units found and last sample still there, let's push ...\n // this helps parsing streams with missing AUD (only do this if AUD never found)\n if (VideoSample && units.length && !track.audFound) {\n this.pushAccessUnit(VideoSample, track);\n VideoSample = this.VideoSample = this.createVideoSample(\n false,\n pes.pts,\n pes.dts,\n '',\n );\n }\n\n units.forEach((unit) => {\n switch (unit.type) {\n // NDR\n case 1: {\n let iskey = false;\n push = true;\n const data = unit.data;\n // only check slice type to detect KF in case SPS found in same packet (any keyframe is preceded by SPS ...)\n if (spsfound && data.length > 4) {\n // retrieve slice type by parsing beginning of NAL unit (follow H264 spec, slice_header definition) to detect keyframe embedded in NDR\n const sliceType = new ExpGolomb(data).readSliceType();\n // 2 : I slice, 4 : SI slice, 7 : I slice, 9: SI slice\n // SI slice : A slice that is coded using intra prediction only and using quantisation of the prediction samples.\n // An SI slice can be coded such that its decoded samples can be constructed identically to an SP slice.\n // I slice: A slice that is not an SI slice that is decoded using intra prediction only.\n // if (sliceType === 2 || sliceType === 7) {\n if (\n sliceType === 2 ||\n sliceType === 4 ||\n sliceType === 7 ||\n sliceType === 9\n ) {\n iskey = true;\n }\n }\n\n if (iskey) {\n // if we have non-keyframe data already, that cannot belong to the same frame as a keyframe, so force a push\n if (VideoSample?.frame && !VideoSample.key) {\n this.pushAccessUnit(VideoSample, track);\n VideoSample = this.VideoSample = null;\n }\n }\n\n if (!VideoSample) {\n VideoSample = this.VideoSample = this.createVideoSample(\n true,\n pes.pts,\n pes.dts,\n '',\n );\n }\n\n if (debug) {\n VideoSample.debug += 'NDR ';\n }\n\n VideoSample.frame = true;\n VideoSample.key = iskey;\n\n break;\n // IDR\n }\n case 5:\n push = true;\n // handle PES not starting with AUD\n // if we have frame data already, that cannot belong to the same frame, so force a push\n if (VideoSample?.frame && !VideoSample.key) {\n this.pushAccessUnit(VideoSample, track);\n VideoSample = this.VideoSample = null;\n }\n if (!VideoSample) {\n VideoSample = this.VideoSample = this.createVideoSample(\n true,\n pes.pts,\n pes.dts,\n '',\n );\n }\n\n if (debug) {\n VideoSample.debug += 'IDR ';\n }\n\n VideoSample.key = true;\n VideoSample.frame = true;\n break;\n // SEI\n case 6: {\n push = true;\n if (debug && VideoSample) {\n VideoSample.debug += 'SEI ';\n }\n parseSEIMessageFromNALu(\n unit.data,\n 1,\n pes.pts as number,\n textTrack.samples,\n );\n break;\n // SPS\n }\n case 7: {\n push = true;\n spsfound = true;\n if (debug && VideoSample) {\n VideoSample.debug += 'SPS ';\n }\n const sps = unit.data;\n const expGolombDecoder = new ExpGolomb(sps);\n const config = expGolombDecoder.readSPS();\n\n if (\n !track.sps ||\n track.width !== config.width ||\n track.height !== config.height ||\n track.pixelRatio?.[0] !== config.pixelRatio[0] ||\n track.pixelRatio?.[1] !== config.pixelRatio[1]\n ) {\n track.width = config.width;\n track.height = config.height;\n track.pixelRatio = config.pixelRatio;\n track.sps = [sps];\n track.duration = duration;\n const codecarray = sps.subarray(1, 4);\n let codecstring = 'avc1.';\n for (let i = 0; i < 3; i++) {\n let h = codecarray[i].toString(16);\n if (h.length < 2) {\n h = '0' + h;\n }\n\n codecstring += h;\n }\n track.codec = codecstring;\n }\n\n break;\n }\n // PPS\n case 8:\n push = true;\n if (debug && VideoSample) {\n VideoSample.debug += 'PPS ';\n }\n\n track.pps = [unit.data];\n\n break;\n // AUD\n case 9:\n push = true;\n track.audFound = true;\n if (VideoSample) {\n this.pushAccessUnit(VideoSample, track);\n }\n\n VideoSample = this.VideoSample = this.createVideoSample(\n false,\n pes.pts,\n pes.dts,\n debug ? 'AUD ' : '',\n );\n break;\n // Filler Data\n case 12:\n push = true;\n break;\n default:\n push = false;\n if (VideoSample) {\n VideoSample.debug += 'unknown NAL ' + unit.type + ' ';\n }\n\n break;\n }\n if (VideoSample && push) {\n const units = VideoSample.units;\n units.push(unit);\n }\n });\n // if last PES packet, push samples\n if (last && VideoSample) {\n this.pushAccessUnit(VideoSample, track);\n this.VideoSample = null;\n }\n }\n\n private parseAVCNALu(\n track: DemuxedVideoTrack,\n array: Uint8Array,\n ): Array<{\n data: Uint8Array;\n type: number;\n state?: number;\n }> {\n const len = array.byteLength;\n let state = track.naluState || 0;\n const lastState = state;\n const units: VideoSampleUnit[] = [];\n let i = 0;\n let value: number;\n let overflow: number;\n let unitType: number;\n let lastUnitStart = -1;\n let lastUnitType: number = 0;\n // logger.log('PES:' + Hex.hexDump(array));\n\n if (state === -1) {\n // special use case where we found 3 or 4-byte start codes exactly at the end of previous PES packet\n lastUnitStart = 0;\n // NALu type is value read from offset 0\n lastUnitType = array[0] & 0x1f;\n state = 0;\n i = 1;\n }\n\n while (i < len) {\n value = array[i++];\n // optimization. state 0 and 1 are the predominant case. let's handle them outside of the switch/case\n if (!state) {\n state = value ? 0 : 1;\n continue;\n }\n if (state === 1) {\n state = value ? 0 : 2;\n continue;\n }\n // here we have state either equal to 2 or 3\n if (!value) {\n state = 3;\n } else if (value === 1) {\n overflow = i - state - 1;\n if (lastUnitStart >= 0) {\n const unit: VideoSampleUnit = {\n data: array.subarray(lastUnitStart, overflow),\n type: lastUnitType,\n };\n // logger.log('pushing NALU, type/size:' + unit.type + '/' + unit.data.byteLength);\n units.push(unit);\n } else {\n // lastUnitStart is undefined => this is the first start code found in this PES packet\n // first check if start code delimiter is overlapping between 2 PES packets,\n // ie it started in last packet (lastState not zero)\n // and ended at the beginning of this PES packet (i <= 4 - lastState)\n const lastUnit = this.getLastNalUnit(track.samples);\n if (lastUnit) {\n if (lastState && i <= 4 - lastState) {\n // start delimiter overlapping between PES packets\n // strip start delimiter bytes from the end of last NAL unit\n // check if lastUnit had a state different from zero\n if (lastUnit.state) {\n // strip last bytes\n lastUnit.data = lastUnit.data.subarray(\n 0,\n lastUnit.data.byteLength - lastState,\n );\n }\n }\n // If NAL units are not starting right at the beginning of the PES packet, push preceding data into previous NAL unit.\n\n if (overflow > 0) {\n // logger.log('first NALU found with overflow:' + overflow);\n lastUnit.data = appendUint8Array(\n lastUnit.data,\n array.subarray(0, overflow),\n );\n lastUnit.state = 0;\n }\n }\n }\n // check if we can read unit type\n if (i < len) {\n unitType = array[i] & 0x1f;\n // logger.log('find NALU @ offset:' + i + ',type:' + unitType);\n lastUnitStart = i;\n lastUnitType = unitType;\n state = 0;\n } else {\n // not enough byte to read unit type. let's read it on next PES parsing\n state = -1;\n }\n } else {\n state = 0;\n }\n }\n if (lastUnitStart >= 0 && state >= 0) {\n const unit: VideoSampleUnit = {\n data: array.subarray(lastUnitStart, len),\n type: lastUnitType,\n state: state,\n };\n units.push(unit);\n // logger.log('pushing NALU, type/size/state:' + unit.type + '/' + unit.data.byteLength + '/' + state);\n }\n // no NALu found\n if (units.length === 0) {\n // append pes.data to previous NAL unit\n const lastUnit = this.getLastNalUnit(track.samples);\n if (lastUnit) {\n lastUnit.data = appendUint8Array(lastUnit.data, array);\n }\n }\n track.naluState = state;\n return units;\n }\n}\n\nexport default AvcVideoParser;\n","/**\n * SAMPLE-AES decrypter\n */\n\nimport { HlsConfig } from '../config';\nimport Decrypter from '../crypt/decrypter';\nimport { HlsEventEmitter } from '../events';\nimport type {\n AudioSample,\n VideoSample,\n VideoSampleUnit,\n DemuxedVideoTrackBase,\n KeyData,\n} from '../types/demuxer';\nimport { discardEPB } from '../utils/mp4-tools';\n\nclass SampleAesDecrypter {\n private keyData: KeyData;\n private decrypter: Decrypter;\n\n constructor(observer: HlsEventEmitter, config: HlsConfig, keyData: KeyData) {\n this.keyData = keyData;\n this.decrypter = new Decrypter(config, {\n removePKCS7Padding: false,\n });\n }\n\n decryptBuffer(encryptedData: Uint8Array | ArrayBuffer): Promise<ArrayBuffer> {\n return this.decrypter.decrypt(\n encryptedData,\n this.keyData.key.buffer,\n this.keyData.iv.buffer,\n );\n }\n\n // AAC - encrypt all full 16 bytes blocks starting from offset 16\n private decryptAacSample(\n samples: AudioSample[],\n sampleIndex: number,\n callback: () => void,\n ) {\n const curUnit = samples[sampleIndex].unit;\n if (curUnit.length <= 16) {\n // No encrypted portion in this sample (first 16 bytes is not\n // encrypted, see https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/HLS_Sample_Encryption/Encryption/Encryption.html),\n return;\n }\n const encryptedData = curUnit.subarray(\n 16,\n curUnit.length - (curUnit.length % 16),\n );\n const encryptedBuffer = encryptedData.buffer.slice(\n encryptedData.byteOffset,\n encryptedData.byteOffset + encryptedData.length,\n );\n\n this.decryptBuffer(encryptedBuffer).then((decryptedBuffer: ArrayBuffer) => {\n const decryptedData = new Uint8Array(decryptedBuffer);\n curUnit.set(decryptedData, 16);\n\n if (!this.decrypter.isSync()) {\n this.decryptAacSamples(samples, sampleIndex + 1, callback);\n }\n });\n }\n\n decryptAacSamples(\n samples: AudioSample[],\n sampleIndex: number,\n callback: () => void,\n ) {\n for (; ; sampleIndex++) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n\n if (samples[sampleIndex].unit.length < 32) {\n continue;\n }\n\n this.decryptAacSample(samples, sampleIndex, callback);\n\n if (!this.decrypter.isSync()) {\n return;\n }\n }\n }\n\n // AVC - encrypt one 16 bytes block out of ten, starting from offset 32\n getAvcEncryptedData(decodedData: Uint8Array) {\n const encryptedDataLen =\n Math.floor((decodedData.length - 48) / 160) * 16 + 16;\n const encryptedData = new Int8Array(encryptedDataLen);\n let outputPos = 0;\n for (\n let inputPos = 32;\n inputPos < decodedData.length - 16;\n inputPos += 160, outputPos += 16\n ) {\n encryptedData.set(\n decodedData.subarray(inputPos, inputPos + 16),\n outputPos,\n );\n }\n\n return encryptedData;\n }\n\n getAvcDecryptedUnit(\n decodedData: Uint8Array,\n decryptedData: ArrayLike<number> | ArrayBuffer | SharedArrayBuffer,\n ) {\n const uint8DecryptedData = new Uint8Array(decryptedData);\n let inputPos = 0;\n for (\n let outputPos = 32;\n outputPos < decodedData.length - 16;\n outputPos += 160, inputPos += 16\n ) {\n decodedData.set(\n uint8DecryptedData.subarray(inputPos, inputPos + 16),\n outputPos,\n );\n }\n\n return decodedData;\n }\n\n decryptAvcSample(\n samples: VideoSample[],\n sampleIndex: number,\n unitIndex: number,\n callback: () => void,\n curUnit: VideoSampleUnit,\n ) {\n const decodedData = discardEPB(curUnit.data);\n const encryptedData = this.getAvcEncryptedData(decodedData);\n\n this.decryptBuffer(encryptedData.buffer).then(\n (decryptedBuffer: ArrayBuffer) => {\n curUnit.data = this.getAvcDecryptedUnit(decodedData, decryptedBuffer);\n\n if (!this.decrypter.isSync()) {\n this.decryptAvcSamples(samples, sampleIndex, unitIndex + 1, callback);\n }\n },\n );\n }\n\n decryptAvcSamples(\n samples: DemuxedVideoTrackBase['samples'],\n sampleIndex: number,\n unitIndex: number,\n callback: () => void,\n ) {\n if (samples instanceof Uint8Array) {\n throw new Error('Cannot decrypt samples of type Uint8Array');\n }\n\n for (; ; sampleIndex++, unitIndex = 0) {\n if (sampleIndex >= samples.length) {\n callback();\n return;\n }\n\n const curUnits = samples[sampleIndex].units;\n for (; ; unitIndex++) {\n if (unitIndex >= curUnits.length) {\n break;\n }\n\n const curUnit = curUnits[unitIndex];\n if (\n curUnit.data.length <= 48 ||\n (curUnit.type !== 1 && curUnit.type !== 5)\n ) {\n continue;\n }\n\n this.decryptAvcSample(\n samples,\n sampleIndex,\n unitIndex,\n callback,\n curUnit,\n );\n\n if (!this.decrypter.isSync()) {\n return;\n }\n }\n }\n }\n}\n\nexport default SampleAesDecrypter;\n","/**\n * highly optimized TS demuxer:\n * parse PAT, PMT\n * extract PES packet from audio and video PIDs\n * extract AVC/H264 NAL units and AAC/ADTS samples from PES packet\n * trigger the remuxer upon parsing completion\n * it also tries to workaround as best as it can audio codec switch (HE-AAC to AAC and vice versa), without having to restart the MediaSource.\n * it also controls the remuxing process :\n * upon discontinuity or level switch detection, it will also notifies the remuxer so that it can reset its state.\n */\n\nimport * as ADTS from './audio/adts';\nimport * as MpegAudio from './audio/mpegaudio';\nimport * as AC3 from './audio/ac3-demuxer';\nimport AvcVideoParser from './video/avc-video-parser';\nimport SampleAesDecrypter from './sample-aes';\nimport { Events } from '../events';\nimport { appendUint8Array, RemuxerTrackIdConfig } from '../utils/mp4-tools';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport type { HlsConfig } from '../config';\nimport type { HlsEventEmitter } from '../events';\nimport {\n DemuxedVideoTrack,\n DemuxedAudioTrack,\n DemuxedTrack,\n Demuxer,\n DemuxerResult,\n VideoSample,\n DemuxedMetadataTrack,\n DemuxedUserdataTrack,\n ElementaryStreamData,\n KeyData,\n MetadataSchema,\n} from '../types/demuxer';\nimport { AudioFrame } from '../types/demuxer';\n\nexport type ParsedTimestamp = {\n pts?: number;\n dts?: number;\n};\n\nexport type PES = ParsedTimestamp & {\n data: Uint8Array;\n len: number;\n};\n\nexport type ParsedVideoSample = ParsedTimestamp &\n Omit<VideoSample, 'pts' | 'dts'>;\n\nexport interface TypeSupported {\n mpeg: boolean;\n mp3: boolean;\n ac3: boolean;\n}\n\nconst PACKET_LENGTH = 188;\n\nclass TSDemuxer implements Demuxer {\n private readonly observer: HlsEventEmitter;\n private readonly config: HlsConfig;\n private typeSupported: TypeSupported;\n\n private sampleAes: SampleAesDecrypter | null = null;\n private pmtParsed: boolean = false;\n private audioCodec?: string;\n private videoCodec?: string;\n private _duration: number = 0;\n private _pmtId: number = -1;\n\n private _videoTrack?: DemuxedVideoTrack;\n private _audioTrack?: DemuxedAudioTrack;\n private _id3Track?: DemuxedMetadataTrack;\n private _txtTrack?: DemuxedUserdataTrack;\n private aacOverFlow: AudioFrame | null = null;\n private remainderData: Uint8Array | null = null;\n private videoParser: AvcVideoParser;\n\n constructor(\n observer: HlsEventEmitter,\n config: HlsConfig,\n typeSupported: TypeSupported,\n ) {\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.videoParser = new AvcVideoParser();\n }\n\n static probe(data: Uint8Array) {\n const syncOffset = TSDemuxer.syncOffset(data);\n if (syncOffset > 0) {\n logger.warn(\n `MPEG2-TS detected but first sync word found @ offset ${syncOffset}`,\n );\n }\n return syncOffset !== -1;\n }\n\n static syncOffset(data: Uint8Array): number {\n const length = data.length;\n let scanwindow = Math.min(PACKET_LENGTH * 5, length - PACKET_LENGTH) + 1;\n let i = 0;\n while (i < scanwindow) {\n // a TS init segment should contain at least 2 TS packets: PAT and PMT, each starting with 0x47\n let foundPat = false;\n let packetStart = -1;\n let tsPackets = 0;\n for (let j = i; j < length; j += PACKET_LENGTH) {\n if (\n data[j] === 0x47 &&\n (length - j === PACKET_LENGTH || data[j + PACKET_LENGTH] === 0x47)\n ) {\n tsPackets++;\n if (packetStart === -1) {\n packetStart = j;\n // First sync word found at offset, increase scan length (#5251)\n if (packetStart !== 0) {\n scanwindow =\n Math.min(\n packetStart + PACKET_LENGTH * 99,\n data.length - PACKET_LENGTH,\n ) + 1;\n }\n }\n if (!foundPat) {\n foundPat = parsePID(data, j) === 0;\n }\n // Sync word found at 0 with 3 packets, or found at offset least 2 packets up to scanwindow (#5501)\n if (\n foundPat &&\n tsPackets > 1 &&\n ((packetStart === 0 && tsPackets > 2) ||\n j + PACKET_LENGTH > scanwindow)\n ) {\n return packetStart;\n }\n } else if (tsPackets) {\n // Exit if sync word found, but does not contain contiguous packets\n return -1;\n } else {\n break;\n }\n }\n i++;\n }\n return -1;\n }\n\n /**\n * Creates a track model internal to demuxer used to drive remuxing input\n */\n static createTrack(\n type: 'audio' | 'video' | 'id3' | 'text',\n duration?: number,\n ): DemuxedTrack {\n return {\n container:\n type === 'video' || type === 'audio' ? 'video/mp2t' : undefined,\n type,\n id: RemuxerTrackIdConfig[type],\n pid: -1,\n inputTimeScale: 90000,\n sequenceNumber: 0,\n samples: [],\n dropped: 0,\n duration: type === 'audio' ? duration : undefined,\n };\n }\n\n /**\n * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start)\n * Resets all internal track instances of the demuxer.\n */\n public resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string,\n videoCodec: string,\n trackDuration: number,\n ) {\n this.pmtParsed = false;\n this._pmtId = -1;\n\n this._videoTrack = TSDemuxer.createTrack('video') as DemuxedVideoTrack;\n this._audioTrack = TSDemuxer.createTrack(\n 'audio',\n trackDuration,\n ) as DemuxedAudioTrack;\n this._id3Track = TSDemuxer.createTrack('id3') as DemuxedMetadataTrack;\n this._txtTrack = TSDemuxer.createTrack('text') as DemuxedUserdataTrack;\n this._audioTrack.segmentCodec = 'aac';\n\n // flush any partial content\n this.aacOverFlow = null;\n this.remainderData = null;\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this._duration = trackDuration;\n }\n\n public resetTimeStamp() {}\n\n public resetContiguity(): void {\n const { _audioTrack, _videoTrack, _id3Track } = this;\n if (_audioTrack) {\n _audioTrack.pesData = null;\n }\n if (_videoTrack) {\n _videoTrack.pesData = null;\n }\n if (_id3Track) {\n _id3Track.pesData = null;\n }\n this.aacOverFlow = null;\n this.remainderData = null;\n }\n\n public demux(\n data: Uint8Array,\n timeOffset: number,\n isSampleAes = false,\n flush = false,\n ): DemuxerResult {\n if (!isSampleAes) {\n this.sampleAes = null;\n }\n\n let pes: PES | null;\n\n const videoTrack = this._videoTrack as DemuxedVideoTrack;\n const audioTrack = this._audioTrack as DemuxedAudioTrack;\n const id3Track = this._id3Track as DemuxedMetadataTrack;\n const textTrack = this._txtTrack as DemuxedUserdataTrack;\n\n let videoPid = videoTrack.pid;\n let videoData = videoTrack.pesData;\n let audioPid = audioTrack.pid;\n let id3Pid = id3Track.pid;\n let audioData = audioTrack.pesData;\n let id3Data = id3Track.pesData;\n let unknownPID: number | null = null;\n let pmtParsed = this.pmtParsed;\n let pmtId = this._pmtId;\n\n let len = data.length;\n if (this.remainderData) {\n data = appendUint8Array(this.remainderData, data);\n len = data.length;\n this.remainderData = null;\n }\n\n if (len < PACKET_LENGTH && !flush) {\n this.remainderData = data;\n return {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack,\n };\n }\n\n const syncOffset = Math.max(0, TSDemuxer.syncOffset(data));\n len -= (len - syncOffset) % PACKET_LENGTH;\n if (len < data.byteLength && !flush) {\n this.remainderData = new Uint8Array(\n data.buffer,\n len,\n data.buffer.byteLength - len,\n );\n }\n\n // loop through TS packets\n let tsPacketErrors = 0;\n for (let start = syncOffset; start < len; start += PACKET_LENGTH) {\n if (data[start] === 0x47) {\n const stt = !!(data[start + 1] & 0x40);\n const pid = parsePID(data, start);\n const atf = (data[start + 3] & 0x30) >> 4;\n\n // if an adaption field is present, its length is specified by the fifth byte of the TS packet header.\n let offset: number;\n if (atf > 1) {\n offset = start + 5 + data[start + 4];\n // continue if there is only adaptation field\n if (offset === start + PACKET_LENGTH) {\n continue;\n }\n } else {\n offset = start + 4;\n }\n switch (pid) {\n case videoPid:\n if (stt) {\n if (videoData && (pes = parsePES(videoData))) {\n this.videoParser.parseAVCPES(\n videoTrack,\n textTrack,\n pes,\n false,\n this._duration,\n );\n }\n\n videoData = { data: [], size: 0 };\n }\n if (videoData) {\n videoData.data.push(data.subarray(offset, start + PACKET_LENGTH));\n videoData.size += start + PACKET_LENGTH - offset;\n }\n break;\n case audioPid:\n if (stt) {\n if (audioData && (pes = parsePES(audioData))) {\n switch (audioTrack.segmentCodec) {\n case 'aac':\n this.parseAACPES(audioTrack, pes);\n break;\n case 'mp3':\n this.parseMPEGPES(audioTrack, pes);\n break;\n case 'ac3':\n if (__USE_M2TS_ADVANCED_CODECS__) {\n this.parseAC3PES(audioTrack, pes);\n }\n break;\n }\n }\n audioData = { data: [], size: 0 };\n }\n if (audioData) {\n audioData.data.push(data.subarray(offset, start + PACKET_LENGTH));\n audioData.size += start + PACKET_LENGTH - offset;\n }\n break;\n case id3Pid:\n if (stt) {\n if (id3Data && (pes = parsePES(id3Data))) {\n this.parseID3PES(id3Track, pes);\n }\n\n id3Data = { data: [], size: 0 };\n }\n if (id3Data) {\n id3Data.data.push(data.subarray(offset, start + PACKET_LENGTH));\n id3Data.size += start + PACKET_LENGTH - offset;\n }\n break;\n case 0:\n if (stt) {\n offset += data[offset] + 1;\n }\n\n pmtId = this._pmtId = parsePAT(data, offset);\n // logger.log('PMT PID:' + this._pmtId);\n break;\n case pmtId: {\n if (stt) {\n offset += data[offset] + 1;\n }\n\n const parsedPIDs = parsePMT(\n data,\n offset,\n this.typeSupported,\n isSampleAes,\n this.observer,\n );\n\n // only update track id if track PID found while parsing PMT\n // this is to avoid resetting the PID to -1 in case\n // track PID transiently disappears from the stream\n // this could happen in case of transient missing audio samples for example\n // NOTE this is only the PID of the track as found in TS,\n // but we are not using this for MP4 track IDs.\n videoPid = parsedPIDs.videoPid;\n if (videoPid > 0) {\n videoTrack.pid = videoPid;\n videoTrack.segmentCodec = parsedPIDs.segmentVideoCodec;\n }\n\n audioPid = parsedPIDs.audioPid;\n if (audioPid > 0) {\n audioTrack.pid = audioPid;\n audioTrack.segmentCodec = parsedPIDs.segmentAudioCodec;\n }\n id3Pid = parsedPIDs.id3Pid;\n if (id3Pid > 0) {\n id3Track.pid = id3Pid;\n }\n\n if (unknownPID !== null && !pmtParsed) {\n logger.warn(\n `MPEG-TS PMT found at ${start} after unknown PID '${unknownPID}'. Backtracking to sync byte @${syncOffset} to parse all TS packets.`,\n );\n unknownPID = null;\n // we set it to -188, the += 188 in the for loop will reset start to 0\n start = syncOffset - 188;\n }\n pmtParsed = this.pmtParsed = true;\n break;\n }\n case 0x11:\n case 0x1fff:\n break;\n default:\n unknownPID = pid;\n break;\n }\n } else {\n tsPacketErrors++;\n }\n }\n\n if (tsPacketErrors > 0) {\n emitParsingError(\n this.observer,\n new Error(\n `Found ${tsPacketErrors} TS packet/s that do not start with 0x47`,\n ),\n );\n }\n\n videoTrack.pesData = videoData;\n audioTrack.pesData = audioData;\n id3Track.pesData = id3Data;\n\n const demuxResult: DemuxerResult = {\n audioTrack,\n videoTrack,\n id3Track,\n textTrack,\n };\n\n if (flush) {\n this.extractRemainingSamples(demuxResult);\n }\n\n return demuxResult;\n }\n\n public flush(): DemuxerResult | Promise<DemuxerResult> {\n const { remainderData } = this;\n this.remainderData = null;\n let result: DemuxerResult;\n if (remainderData) {\n result = this.demux(remainderData, -1, false, true);\n } else {\n result = {\n videoTrack: this._videoTrack as DemuxedVideoTrack,\n audioTrack: this._audioTrack as DemuxedAudioTrack,\n id3Track: this._id3Track as DemuxedMetadataTrack,\n textTrack: this._txtTrack as DemuxedUserdataTrack,\n };\n }\n this.extractRemainingSamples(result);\n if (this.sampleAes) {\n return this.decrypt(result, this.sampleAes);\n }\n return result;\n }\n\n private extractRemainingSamples(demuxResult: DemuxerResult) {\n const { audioTrack, videoTrack, id3Track, textTrack } = demuxResult;\n const videoData = videoTrack.pesData;\n const audioData = audioTrack.pesData;\n const id3Data = id3Track.pesData;\n // try to parse last PES packets\n let pes: PES | null;\n if (videoData && (pes = parsePES(videoData))) {\n this.videoParser.parseAVCPES(\n videoTrack as DemuxedVideoTrack,\n textTrack as DemuxedUserdataTrack,\n pes,\n true,\n this._duration,\n );\n videoTrack.pesData = null;\n } else {\n // either avcData null or PES truncated, keep it for next frag parsing\n videoTrack.pesData = videoData;\n }\n\n if (audioData && (pes = parsePES(audioData))) {\n switch (audioTrack.segmentCodec) {\n case 'aac':\n this.parseAACPES(audioTrack, pes);\n break;\n case 'mp3':\n this.parseMPEGPES(audioTrack, pes);\n break;\n case 'ac3':\n if (__USE_M2TS_ADVANCED_CODECS__) {\n this.parseAC3PES(audioTrack, pes);\n }\n break;\n }\n audioTrack.pesData = null;\n } else {\n if (audioData?.size) {\n logger.log(\n 'last AAC PES packet truncated,might overlap between fragments',\n );\n }\n\n // either audioData null or PES truncated, keep it for next frag parsing\n audioTrack.pesData = audioData;\n }\n\n if (id3Data && (pes = parsePES(id3Data))) {\n this.parseID3PES(id3Track, pes);\n id3Track.pesData = null;\n } else {\n // either id3Data null or PES truncated, keep it for next frag parsing\n id3Track.pesData = id3Data;\n }\n }\n\n public demuxSampleAes(\n data: Uint8Array,\n keyData: KeyData,\n timeOffset: number,\n ): Promise<DemuxerResult> {\n const demuxResult = this.demux(\n data,\n timeOffset,\n true,\n !this.config.progressive,\n );\n const sampleAes = (this.sampleAes = new SampleAesDecrypter(\n this.observer,\n this.config,\n keyData,\n ));\n return this.decrypt(demuxResult, sampleAes);\n }\n\n private decrypt(\n demuxResult: DemuxerResult,\n sampleAes: SampleAesDecrypter,\n ): Promise<DemuxerResult> {\n return new Promise((resolve) => {\n const { audioTrack, videoTrack } = demuxResult;\n if (audioTrack.samples && audioTrack.segmentCodec === 'aac') {\n sampleAes.decryptAacSamples(audioTrack.samples, 0, () => {\n if (videoTrack.samples) {\n sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, () => {\n resolve(demuxResult);\n });\n } else {\n resolve(demuxResult);\n }\n });\n } else if (videoTrack.samples) {\n sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, () => {\n resolve(demuxResult);\n });\n }\n });\n }\n\n public destroy() {\n this._duration = 0;\n }\n\n private parseAACPES(track: DemuxedAudioTrack, pes: PES) {\n let startOffset = 0;\n const aacOverFlow = this.aacOverFlow;\n let data = pes.data;\n if (aacOverFlow) {\n this.aacOverFlow = null;\n const frameMissingBytes = aacOverFlow.missing;\n const sampleLength = aacOverFlow.sample.unit.byteLength;\n // logger.log(`AAC: append overflowing ${sampleLength} bytes to beginning of new PES`);\n if (frameMissingBytes === -1) {\n data = appendUint8Array(aacOverFlow.sample.unit, data);\n } else {\n const frameOverflowBytes = sampleLength - frameMissingBytes;\n aacOverFlow.sample.unit.set(\n data.subarray(0, frameMissingBytes),\n frameOverflowBytes,\n );\n track.samples.push(aacOverFlow.sample);\n startOffset = aacOverFlow.missing;\n }\n }\n // look for ADTS header (0xFFFx)\n let offset: number;\n let len: number;\n for (offset = startOffset, len = data.length; offset < len - 1; offset++) {\n if (ADTS.isHeader(data, offset)) {\n break;\n }\n }\n // if ADTS header does not start straight from the beginning of the PES payload, raise an error\n if (offset !== startOffset) {\n let reason: string;\n const recoverable = offset < len - 1;\n if (recoverable) {\n reason = `AAC PES did not start with ADTS header,offset:${offset}`;\n } else {\n reason = 'No ADTS header found in AAC PES';\n }\n emitParsingError(this.observer, new Error(reason), recoverable);\n if (!recoverable) {\n return;\n }\n }\n\n ADTS.initTrackConfig(\n track,\n this.observer,\n data,\n offset,\n this.audioCodec as string,\n );\n\n let pts: number;\n if (pes.pts !== undefined) {\n pts = pes.pts;\n } else if (aacOverFlow) {\n // if last AAC frame is overflowing, we should ensure timestamps are contiguous:\n // first sample PTS should be equal to last sample PTS + frameDuration\n const frameDuration = ADTS.getFrameDuration(track.samplerate as number);\n pts = aacOverFlow.sample.pts + frameDuration;\n } else {\n logger.warn('[tsdemuxer]: AAC PES unknown PTS');\n return;\n }\n\n // scan for aac samples\n let frameIndex = 0;\n let frame;\n while (offset < len) {\n frame = ADTS.appendFrame(track, data, offset, pts, frameIndex);\n offset += frame.length;\n if (!frame.missing) {\n frameIndex++;\n for (; offset < len - 1; offset++) {\n if (ADTS.isHeader(data, offset)) {\n break;\n }\n }\n } else {\n this.aacOverFlow = frame;\n break;\n }\n }\n }\n\n private parseMPEGPES(track: DemuxedAudioTrack, pes: PES) {\n const data = pes.data;\n const length = data.length;\n let frameIndex = 0;\n let offset = 0;\n const pts = pes.pts;\n if (pts === undefined) {\n logger.warn('[tsdemuxer]: MPEG PES unknown PTS');\n return;\n }\n\n while (offset < length) {\n if (MpegAudio.isHeader(data, offset)) {\n const frame = MpegAudio.appendFrame(\n track,\n data,\n offset,\n pts,\n frameIndex,\n );\n if (frame) {\n offset += frame.length;\n frameIndex++;\n } else {\n // logger.log('Unable to parse Mpeg audio frame');\n break;\n }\n } else {\n // nothing found, keep looking\n offset++;\n }\n }\n }\n\n private parseAC3PES(track: DemuxedAudioTrack, pes: PES) {\n if (__USE_M2TS_ADVANCED_CODECS__) {\n const data = pes.data;\n const pts = pes.pts;\n if (pts === undefined) {\n logger.warn('[tsdemuxer]: AC3 PES unknown PTS');\n return;\n }\n const length = data.length;\n let frameIndex = 0;\n let offset = 0;\n let parsed;\n\n while (\n offset < length &&\n (parsed = AC3.appendFrame(track, data, offset, pts, frameIndex++)) > 0\n ) {\n offset += parsed;\n }\n }\n }\n\n private parseID3PES(id3Track: DemuxedMetadataTrack, pes: PES) {\n if (pes.pts === undefined) {\n logger.warn('[tsdemuxer]: ID3 PES unknown PTS');\n return;\n }\n const id3Sample = Object.assign({}, pes as Required<PES>, {\n type: this._videoTrack ? MetadataSchema.emsg : MetadataSchema.audioId3,\n duration: Number.POSITIVE_INFINITY,\n });\n id3Track.samples.push(id3Sample);\n }\n}\n\nfunction parsePID(data: Uint8Array, offset: number): number {\n // pid is a 13-bit field starting at the last bit of TS[1]\n return ((data[offset + 1] & 0x1f) << 8) + data[offset + 2];\n}\n\nfunction parsePAT(data: Uint8Array, offset: number): number {\n // skip the PSI header and parse the first PMT entry\n return ((data[offset + 10] & 0x1f) << 8) | data[offset + 11];\n}\n\nfunction parsePMT(\n data: Uint8Array,\n offset: number,\n typeSupported: TypeSupported,\n isSampleAes: boolean,\n observer: HlsEventEmitter,\n) {\n const result = {\n audioPid: -1,\n videoPid: -1,\n id3Pid: -1,\n segmentVideoCodec: 'avc',\n segmentAudioCodec: 'aac',\n };\n const sectionLength = ((data[offset + 1] & 0x0f) << 8) | data[offset + 2];\n const tableEnd = offset + 3 + sectionLength - 4;\n // to determine where the table is, we have to figure out how\n // long the program info descriptors are\n const programInfoLength =\n ((data[offset + 10] & 0x0f) << 8) | data[offset + 11];\n // advance the offset to the first entry in the mapping table\n offset += 12 + programInfoLength;\n while (offset < tableEnd) {\n const pid = parsePID(data, offset);\n const esInfoLength = ((data[offset + 3] & 0x0f) << 8) | data[offset + 4];\n switch (data[offset]) {\n case 0xcf: // SAMPLE-AES AAC\n if (!isSampleAes) {\n logEncryptedSamplesFoundInUnencryptedStream('ADTS AAC');\n break;\n }\n /* falls through */\n case 0x0f: // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)\n // logger.log('AAC PID:' + pid);\n if (result.audioPid === -1) {\n result.audioPid = pid;\n }\n\n break;\n\n // Packetized metadata (ID3)\n case 0x15:\n // logger.log('ID3 PID:' + pid);\n if (result.id3Pid === -1) {\n result.id3Pid = pid;\n }\n\n break;\n\n case 0xdb: // SAMPLE-AES AVC\n if (!isSampleAes) {\n logEncryptedSamplesFoundInUnencryptedStream('H.264');\n break;\n }\n /* falls through */\n case 0x1b: // ITU-T Rec. H.264 and ISO/IEC 14496-10 (lower bit-rate video)\n // logger.log('AVC PID:' + pid);\n if (result.videoPid === -1) {\n result.videoPid = pid;\n result.segmentVideoCodec = 'avc';\n }\n\n break;\n\n // ISO/IEC 11172-3 (MPEG-1 audio)\n // or ISO/IEC 13818-3 (MPEG-2 halved sample rate audio)\n case 0x03:\n case 0x04:\n // logger.log('MPEG PID:' + pid);\n if (!typeSupported.mpeg && !typeSupported.mp3) {\n logger.log('MPEG audio found, not supported in this browser');\n } else if (result.audioPid === -1) {\n result.audioPid = pid;\n result.segmentAudioCodec = 'mp3';\n }\n break;\n\n case 0xc1: // SAMPLE-AES AC3\n if (!isSampleAes) {\n logEncryptedSamplesFoundInUnencryptedStream('AC-3');\n break;\n }\n /* falls through */\n case 0x81:\n if (__USE_M2TS_ADVANCED_CODECS__) {\n if (!typeSupported.ac3) {\n logger.log('AC-3 audio found, not supported in this browser');\n } else if (result.audioPid === -1) {\n result.audioPid = pid;\n result.segmentAudioCodec = 'ac3';\n }\n } else {\n logger.warn('AC-3 in M2TS support not included in build');\n }\n break;\n\n case 0x06:\n // stream_type 6 can mean a lot of different things in case of DVB.\n // We need to look at the descriptors. Right now, we're only interested\n // in AC-3 audio, so we do the descriptor parsing only when we don't have\n // an audio PID yet.\n if (result.audioPid === -1 && esInfoLength > 0) {\n let parsePos = offset + 5;\n let remaining = esInfoLength;\n\n while (remaining > 2) {\n const descriptorId = data[parsePos];\n\n switch (descriptorId) {\n case 0x6a: // DVB Descriptor for AC-3\n if (__USE_M2TS_ADVANCED_CODECS__) {\n if (typeSupported.ac3 !== true) {\n logger.log(\n 'AC-3 audio found, not supported in this browser for now',\n );\n } else {\n result.audioPid = pid;\n result.segmentAudioCodec = 'ac3';\n }\n } else {\n logger.warn('AC-3 in M2TS support not included in build');\n }\n break;\n }\n\n const descriptorLen = data[parsePos + 1] + 2;\n parsePos += descriptorLen;\n remaining -= descriptorLen;\n }\n }\n break;\n\n case 0xc2: // SAMPLE-AES EC3\n /* falls through */\n case 0x87:\n emitParsingError(observer, new Error('Unsupported EC-3 in M2TS found'));\n return result;\n\n case 0x24:\n emitParsingError(observer, new Error('Unsupported HEVC in M2TS found'));\n return result;\n\n default:\n // logger.log('unknown stream type:' + data[offset]);\n break;\n }\n // move to the next table entry\n // skip past the elementary stream descriptors, if present\n offset += esInfoLength + 5;\n }\n return result;\n}\n\nfunction emitParsingError(\n observer: HlsEventEmitter,\n error: Error,\n levelRetry?: boolean,\n) {\n logger.warn(`parsing error: ${error.message}`);\n observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: false,\n levelRetry,\n error,\n reason: error.message,\n });\n}\n\nfunction logEncryptedSamplesFoundInUnencryptedStream(type: string) {\n logger.log(`${type} with AES-128-CBC encryption found in unencrypted stream`);\n}\n\nfunction parsePES(stream: ElementaryStreamData): PES | null {\n let i = 0;\n let frag: Uint8Array;\n let pesLen: number;\n let pesHdrLen: number;\n let pesPts: number | undefined;\n let pesDts: number | undefined;\n const data = stream.data;\n // safety check\n if (!stream || stream.size === 0) {\n return null;\n }\n\n // we might need up to 19 bytes to read PES header\n // if first chunk of data is less than 19 bytes, let's merge it with following ones until we get 19 bytes\n // usually only one merge is needed (and this is rare ...)\n while (data[0].length < 19 && data.length > 1) {\n data[0] = appendUint8Array(data[0], data[1]);\n data.splice(1, 1);\n }\n // retrieve PTS/DTS from first fragment\n frag = data[0];\n const pesPrefix = (frag[0] << 16) + (frag[1] << 8) + frag[2];\n if (pesPrefix === 1) {\n pesLen = (frag[4] << 8) + frag[5];\n // if PES parsed length is not zero and greater than total received length, stop parsing. PES might be truncated\n // minus 6 : PES header size\n if (pesLen && pesLen > stream.size - 6) {\n return null;\n }\n\n const pesFlags = frag[7];\n if (pesFlags & 0xc0) {\n /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n as PTS / DTS is 33 bit we cannot use bitwise operator in JS,\n as Bitwise operators treat their operands as a sequence of 32 bits */\n pesPts =\n (frag[9] & 0x0e) * 536870912 + // 1 << 29\n (frag[10] & 0xff) * 4194304 + // 1 << 22\n (frag[11] & 0xfe) * 16384 + // 1 << 14\n (frag[12] & 0xff) * 128 + // 1 << 7\n (frag[13] & 0xfe) / 2;\n\n if (pesFlags & 0x40) {\n pesDts =\n (frag[14] & 0x0e) * 536870912 + // 1 << 29\n (frag[15] & 0xff) * 4194304 + // 1 << 22\n (frag[16] & 0xfe) * 16384 + // 1 << 14\n (frag[17] & 0xff) * 128 + // 1 << 7\n (frag[18] & 0xfe) / 2;\n\n if (pesPts - pesDts > 60 * 90000) {\n logger.warn(\n `${Math.round(\n (pesPts - pesDts) / 90000,\n )}s delta between PTS and DTS, align them`,\n );\n pesPts = pesDts;\n }\n } else {\n pesDts = pesPts;\n }\n }\n pesHdrLen = frag[8];\n // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension\n let payloadStartOffset = pesHdrLen + 9;\n if (stream.size <= payloadStartOffset) {\n return null;\n }\n stream.size -= payloadStartOffset;\n // reassemble PES packet\n const pesData = new Uint8Array(stream.size);\n for (let j = 0, dataLen = data.length; j < dataLen; j++) {\n frag = data[j];\n let len = frag.byteLength;\n if (payloadStartOffset) {\n if (payloadStartOffset > len) {\n // trim full frag if PES header bigger than frag\n payloadStartOffset -= len;\n continue;\n } else {\n // trim partial frag if PES header smaller than frag\n frag = frag.subarray(payloadStartOffset);\n len -= payloadStartOffset;\n payloadStartOffset = 0;\n }\n }\n pesData.set(frag, i);\n i += len;\n }\n if (pesLen) {\n // payload size : remove PES header + PES extension\n pesLen -= pesHdrLen + 3;\n }\n return { data: pesData, pts: pesPts, dts: pesDts, len: pesLen };\n }\n return null;\n}\n\nexport default TSDemuxer;\n","/**\n * AAC helper\n */\n\nclass AAC {\n static getSilentFrame(\n codec?: string,\n channelCount?: number,\n ): Uint8Array | undefined {\n switch (codec) {\n case 'mp4a.40.2':\n if (channelCount === 1) {\n return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n } else if (channelCount === 2) {\n return new Uint8Array([\n 0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80,\n ]);\n } else if (channelCount === 3) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x8e,\n ]);\n } else if (channelCount === 4) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38,\n ]);\n } else if (channelCount === 5) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38,\n ]);\n } else if (channelCount === 6) {\n return new Uint8Array([\n 0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64,\n 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2,\n 0x00, 0x20, 0x08, 0xe0,\n ]);\n }\n\n break;\n // handle HE-AAC below (mp4a.40.5 / mp4a.40.29)\n default:\n if (channelCount === 1) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([\n 0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0,\n 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5e,\n ]);\n } else if (channelCount === 2) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([\n 0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0,\n 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5e,\n ]);\n } else if (channelCount === 3) {\n // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n return new Uint8Array([\n 0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0,\n 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,\n 0x5a, 0x5e,\n ]);\n }\n break;\n }\n return undefined;\n }\n}\n\nexport default AAC;\n","/**\n * Generate MP4 Box\n */\n\nimport { appendUint8Array } from '../utils/mp4-tools';\n\ntype HdlrTypes = {\n video: Uint8Array;\n audio: Uint8Array;\n};\n\nconst UINT32_MAX = Math.pow(2, 32) - 1;\n\nclass MP4 {\n public static types: Record<string, number[]>;\n private static HDLR_TYPES: HdlrTypes;\n private static STTS: Uint8Array;\n private static STSC: Uint8Array;\n private static STCO: Uint8Array;\n private static STSZ: Uint8Array;\n private static VMHD: Uint8Array;\n private static SMHD: Uint8Array;\n private static STSD: Uint8Array;\n private static FTYP: Uint8Array;\n private static DINF: Uint8Array;\n\n static init() {\n MP4.types = {\n avc1: [], // codingname\n avcC: [],\n btrt: [],\n dinf: [],\n dref: [],\n esds: [],\n ftyp: [],\n hdlr: [],\n mdat: [],\n mdhd: [],\n mdia: [],\n mfhd: [],\n minf: [],\n moof: [],\n moov: [],\n mp4a: [],\n '.mp3': [],\n dac3: [],\n 'ac-3': [],\n mvex: [],\n mvhd: [],\n pasp: [],\n sdtp: [],\n stbl: [],\n stco: [],\n stsc: [],\n stsd: [],\n stsz: [],\n stts: [],\n tfdt: [],\n tfhd: [],\n traf: [],\n trak: [],\n trun: [],\n trex: [],\n tkhd: [],\n vmhd: [],\n smhd: [],\n };\n\n let i: string;\n for (i in MP4.types) {\n if (MP4.types.hasOwnProperty(i)) {\n MP4.types[i] = [\n i.charCodeAt(0),\n i.charCodeAt(1),\n i.charCodeAt(2),\n i.charCodeAt(3),\n ];\n }\n }\n\n const videoHdlr = new Uint8Array([\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00, // pre_defined\n 0x76,\n 0x69,\n 0x64,\n 0x65, // handler_type: 'vide'\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x56,\n 0x69,\n 0x64,\n 0x65,\n 0x6f,\n 0x48,\n 0x61,\n 0x6e,\n 0x64,\n 0x6c,\n 0x65,\n 0x72,\n 0x00, // name: 'VideoHandler'\n ]);\n\n const audioHdlr = new Uint8Array([\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00, // pre_defined\n 0x73,\n 0x6f,\n 0x75,\n 0x6e, // handler_type: 'soun'\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x53,\n 0x6f,\n 0x75,\n 0x6e,\n 0x64,\n 0x48,\n 0x61,\n 0x6e,\n 0x64,\n 0x6c,\n 0x65,\n 0x72,\n 0x00, // name: 'SoundHandler'\n ]);\n\n MP4.HDLR_TYPES = {\n video: videoHdlr,\n audio: audioHdlr,\n };\n\n const dref = new Uint8Array([\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x01, // entry_count\n 0x00,\n 0x00,\n 0x00,\n 0x0c, // entry_size\n 0x75,\n 0x72,\n 0x6c,\n 0x20, // 'url' type\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x01, // entry_flags\n ]);\n\n const stco = new Uint8Array([\n 0x00, // version\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00, // entry_count\n ]);\n\n MP4.STTS = MP4.STSC = MP4.STCO = stco;\n\n MP4.STSZ = new Uint8Array([\n 0x00, // version\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00, // sample_size\n 0x00,\n 0x00,\n 0x00,\n 0x00, // sample_count\n ]);\n MP4.VMHD = new Uint8Array([\n 0x00, // version\n 0x00,\n 0x00,\n 0x01, // flags\n 0x00,\n 0x00, // graphicsmode\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00, // opcolor\n ]);\n MP4.SMHD = new Uint8Array([\n 0x00, // version\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00, // balance\n 0x00,\n 0x00, // reserved\n ]);\n\n MP4.STSD = new Uint8Array([\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x01,\n ]); // entry_count\n\n const majorBrand = new Uint8Array([105, 115, 111, 109]); // isom\n const avc1Brand = new Uint8Array([97, 118, 99, 49]); // avc1\n const minorVersion = new Uint8Array([0, 0, 0, 1]);\n\n MP4.FTYP = MP4.box(\n MP4.types.ftyp,\n majorBrand,\n minorVersion,\n majorBrand,\n avc1Brand,\n );\n MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref));\n }\n\n static box(type, ...payload: Uint8Array[]) {\n let size = 8;\n let i = payload.length;\n const len = i;\n // calculate the total size we need to allocate\n while (i--) {\n size += payload[i].byteLength;\n }\n\n const result = new Uint8Array(size);\n result[0] = (size >> 24) & 0xff;\n result[1] = (size >> 16) & 0xff;\n result[2] = (size >> 8) & 0xff;\n result[3] = size & 0xff;\n result.set(type, 4);\n // copy the payload into the result\n for (i = 0, size = 8; i < len; i++) {\n // copy payload[i] array @ offset size\n result.set(payload[i], size);\n size += payload[i].byteLength;\n }\n return result;\n }\n\n static hdlr(type) {\n return MP4.box(MP4.types.hdlr, MP4.HDLR_TYPES[type]);\n }\n\n static mdat(data) {\n return MP4.box(MP4.types.mdat, data);\n }\n\n static mdhd(timescale, duration) {\n duration *= timescale;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(\n MP4.types.mdhd,\n new Uint8Array([\n 0x01, // version 1\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x02, // creation_time\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x03, // modification_time\n (timescale >> 24) & 0xff,\n (timescale >> 16) & 0xff,\n (timescale >> 8) & 0xff,\n timescale & 0xff, // timescale\n upperWordDuration >> 24,\n (upperWordDuration >> 16) & 0xff,\n (upperWordDuration >> 8) & 0xff,\n upperWordDuration & 0xff,\n lowerWordDuration >> 24,\n (lowerWordDuration >> 16) & 0xff,\n (lowerWordDuration >> 8) & 0xff,\n lowerWordDuration & 0xff,\n 0x55,\n 0xc4, // 'und' language (undetermined)\n 0x00,\n 0x00,\n ]),\n );\n }\n\n static mdia(track) {\n return MP4.box(\n MP4.types.mdia,\n MP4.mdhd(track.timescale, track.duration),\n MP4.hdlr(track.type),\n MP4.minf(track),\n );\n }\n\n static mfhd(sequenceNumber) {\n return MP4.box(\n MP4.types.mfhd,\n new Uint8Array([\n 0x00,\n 0x00,\n 0x00,\n 0x00, // flags\n sequenceNumber >> 24,\n (sequenceNumber >> 16) & 0xff,\n (sequenceNumber >> 8) & 0xff,\n sequenceNumber & 0xff, // sequence_number\n ]),\n );\n }\n\n static minf(track) {\n if (track.type === 'audio') {\n return MP4.box(\n MP4.types.minf,\n MP4.box(MP4.types.smhd, MP4.SMHD),\n MP4.DINF,\n MP4.stbl(track),\n );\n } else {\n return MP4.box(\n MP4.types.minf,\n MP4.box(MP4.types.vmhd, MP4.VMHD),\n MP4.DINF,\n MP4.stbl(track),\n );\n }\n }\n\n static moof(sn, baseMediaDecodeTime, track) {\n return MP4.box(\n MP4.types.moof,\n MP4.mfhd(sn),\n MP4.traf(track, baseMediaDecodeTime),\n );\n }\n\n static moov(tracks) {\n let i = tracks.length;\n const boxes: Uint8Array[] = [];\n\n while (i--) {\n boxes[i] = MP4.trak(tracks[i]);\n }\n\n return MP4.box.apply(\n null,\n [MP4.types.moov, MP4.mvhd(tracks[0].timescale, tracks[0].duration)]\n .concat(boxes)\n .concat(MP4.mvex(tracks)),\n );\n }\n\n static mvex(tracks) {\n let i = tracks.length;\n const boxes: Uint8Array[] = [];\n\n while (i--) {\n boxes[i] = MP4.trex(tracks[i]);\n }\n\n return MP4.box.apply(null, [MP4.types.mvex, ...boxes]);\n }\n\n static mvhd(timescale, duration) {\n duration *= timescale;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n const bytes = new Uint8Array([\n 0x01, // version 1\n 0x00,\n 0x00,\n 0x00, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x02, // creation_time\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x03, // modification_time\n (timescale >> 24) & 0xff,\n (timescale >> 16) & 0xff,\n (timescale >> 8) & 0xff,\n timescale & 0xff, // timescale\n upperWordDuration >> 24,\n (upperWordDuration >> 16) & 0xff,\n (upperWordDuration >> 8) & 0xff,\n upperWordDuration & 0xff,\n lowerWordDuration >> 24,\n (lowerWordDuration >> 16) & 0xff,\n (lowerWordDuration >> 8) & 0xff,\n lowerWordDuration & 0xff,\n 0x00,\n 0x01,\n 0x00,\n 0x00, // 1.0 rate\n 0x01,\n 0x00, // 1.0 volume\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x01,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x01,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x40,\n 0x00,\n 0x00,\n 0x00, // transformation: unity matrix\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00, // pre_defined\n 0xff,\n 0xff,\n 0xff,\n 0xff, // next_track_ID\n ]);\n return MP4.box(MP4.types.mvhd, bytes);\n }\n\n static sdtp(track) {\n const samples = track.samples || [];\n const bytes = new Uint8Array(4 + samples.length);\n let i;\n let flags;\n // leave the full box header (4 bytes) all zero\n // write the sample table\n for (i = 0; i < samples.length; i++) {\n flags = samples[i].flags;\n bytes[i + 4] =\n (flags.dependsOn << 4) |\n (flags.isDependedOn << 2) |\n flags.hasRedundancy;\n }\n\n return MP4.box(MP4.types.sdtp, bytes);\n }\n\n static stbl(track) {\n return MP4.box(\n MP4.types.stbl,\n MP4.stsd(track),\n MP4.box(MP4.types.stts, MP4.STTS),\n MP4.box(MP4.types.stsc, MP4.STSC),\n MP4.box(MP4.types.stsz, MP4.STSZ),\n MP4.box(MP4.types.stco, MP4.STCO),\n );\n }\n\n static avc1(track) {\n let sps: number[] = [];\n let pps: number[] = [];\n let i;\n let data;\n let len;\n // assemble the SPSs\n\n for (i = 0; i < track.sps.length; i++) {\n data = track.sps[i];\n len = data.byteLength;\n sps.push((len >>> 8) & 0xff);\n sps.push(len & 0xff);\n\n // SPS\n sps = sps.concat(Array.prototype.slice.call(data));\n }\n\n // assemble the PPSs\n for (i = 0; i < track.pps.length; i++) {\n data = track.pps[i];\n len = data.byteLength;\n pps.push((len >>> 8) & 0xff);\n pps.push(len & 0xff);\n\n pps = pps.concat(Array.prototype.slice.call(data));\n }\n\n const avcc = MP4.box(\n MP4.types.avcC,\n new Uint8Array(\n [\n 0x01, // version\n sps[3], // profile\n sps[4], // profile compat\n sps[5], // level\n 0xfc | 3, // lengthSizeMinusOne, hard-coded to 4 bytes\n 0xe0 | track.sps.length, // 3bit reserved (111) + numOfSequenceParameterSets\n ]\n .concat(sps)\n .concat([\n track.pps.length, // numOfPictureParameterSets\n ])\n .concat(pps),\n ),\n ); // \"PPS\"\n const width = track.width;\n const height = track.height;\n const hSpacing = track.pixelRatio[0];\n const vSpacing = track.pixelRatio[1];\n\n return MP4.box(\n MP4.types.avc1,\n new Uint8Array([\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x01, // data_reference_index\n 0x00,\n 0x00, // pre_defined\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00, // pre_defined\n (width >> 8) & 0xff,\n width & 0xff, // width\n (height >> 8) & 0xff,\n height & 0xff, // height\n 0x00,\n 0x48,\n 0x00,\n 0x00, // horizresolution\n 0x00,\n 0x48,\n 0x00,\n 0x00, // vertresolution\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x01, // frame_count\n 0x12,\n 0x64,\n 0x61,\n 0x69,\n 0x6c, // dailymotion/hls.js\n 0x79,\n 0x6d,\n 0x6f,\n 0x74,\n 0x69,\n 0x6f,\n 0x6e,\n 0x2f,\n 0x68,\n 0x6c,\n 0x73,\n 0x2e,\n 0x6a,\n 0x73,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00, // compressorname\n 0x00,\n 0x18, // depth = 24\n 0x11,\n 0x11,\n ]), // pre_defined = -1\n avcc,\n MP4.box(\n MP4.types.btrt,\n new Uint8Array([\n 0x00,\n 0x1c,\n 0x9c,\n 0x80, // bufferSizeDB\n 0x00,\n 0x2d,\n 0xc6,\n 0xc0, // maxBitrate\n 0x00,\n 0x2d,\n 0xc6,\n 0xc0,\n ]),\n ), // avgBitrate\n MP4.box(\n MP4.types.pasp,\n new Uint8Array([\n hSpacing >> 24, // hSpacing\n (hSpacing >> 16) & 0xff,\n (hSpacing >> 8) & 0xff,\n hSpacing & 0xff,\n vSpacing >> 24, // vSpacing\n (vSpacing >> 16) & 0xff,\n (vSpacing >> 8) & 0xff,\n vSpacing & 0xff,\n ]),\n ),\n );\n }\n\n static esds(track) {\n const configlen = track.config.length;\n return new Uint8Array(\n [\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n\n 0x03, // descriptor_type\n 0x17 + configlen, // length\n 0x00,\n 0x01, // es_id\n 0x00, // stream_priority\n\n 0x04, // descriptor_type\n 0x0f + configlen, // length\n 0x40, // codec : mpeg4_audio\n 0x15, // stream_type\n 0x00,\n 0x00,\n 0x00, // buffer_size\n 0x00,\n 0x00,\n 0x00,\n 0x00, // maxBitrate\n 0x00,\n 0x00,\n 0x00,\n 0x00, // avgBitrate\n\n 0x05, // descriptor_type\n ]\n .concat([configlen])\n .concat(track.config)\n .concat([0x06, 0x01, 0x02]),\n ); // GASpecificConfig)); // length + audio config descriptor\n }\n\n static audioStsd(track) {\n const samplerate = track.samplerate;\n return new Uint8Array([\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x01, // data_reference_index\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n track.channelCount, // channelcount\n 0x00,\n 0x10, // sampleSize:16bits\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved2\n (samplerate >> 8) & 0xff,\n samplerate & 0xff, //\n 0x00,\n 0x00,\n ]);\n }\n\n static mp4a(track) {\n return MP4.box(\n MP4.types.mp4a,\n MP4.audioStsd(track),\n MP4.box(MP4.types.esds, MP4.esds(track)),\n );\n }\n\n static mp3(track) {\n return MP4.box(MP4.types['.mp3'], MP4.audioStsd(track));\n }\n\n static ac3(track) {\n return MP4.box(\n MP4.types['ac-3'],\n MP4.audioStsd(track),\n MP4.box(MP4.types.dac3, track.config),\n );\n }\n\n static stsd(track) {\n if (track.type === 'audio') {\n if (track.segmentCodec === 'mp3' && track.codec === 'mp3') {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp3(track));\n }\n if (track.segmentCodec === 'ac3') {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.ac3(track));\n }\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp4a(track));\n } else {\n return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track));\n }\n }\n\n static tkhd(track) {\n const id = track.id;\n const duration = track.duration * track.timescale;\n const width = track.width;\n const height = track.height;\n const upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n const lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n return MP4.box(\n MP4.types.tkhd,\n new Uint8Array([\n 0x01, // version 1\n 0x00,\n 0x00,\n 0x07, // flags\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x02, // creation_time\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x03, // modification_time\n (id >> 24) & 0xff,\n (id >> 16) & 0xff,\n (id >> 8) & 0xff,\n id & 0xff, // track_ID\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n upperWordDuration >> 24,\n (upperWordDuration >> 16) & 0xff,\n (upperWordDuration >> 8) & 0xff,\n upperWordDuration & 0xff,\n lowerWordDuration >> 24,\n (lowerWordDuration >> 16) & 0xff,\n (lowerWordDuration >> 8) & 0xff,\n lowerWordDuration & 0xff,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x00, // layer\n 0x00,\n 0x00, // alternate_group\n 0x00,\n 0x00, // non-audio track volume\n 0x00,\n 0x00, // reserved\n 0x00,\n 0x01,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x01,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x40,\n 0x00,\n 0x00,\n 0x00, // transformation: unity matrix\n (width >> 8) & 0xff,\n width & 0xff,\n 0x00,\n 0x00, // width\n (height >> 8) & 0xff,\n height & 0xff,\n 0x00,\n 0x00, // height\n ]),\n );\n }\n\n static traf(track, baseMediaDecodeTime) {\n const sampleDependencyTable = MP4.sdtp(track);\n const id = track.id;\n const upperWordBaseMediaDecodeTime = Math.floor(\n baseMediaDecodeTime / (UINT32_MAX + 1),\n );\n const lowerWordBaseMediaDecodeTime = Math.floor(\n baseMediaDecodeTime % (UINT32_MAX + 1),\n );\n return MP4.box(\n MP4.types.traf,\n MP4.box(\n MP4.types.tfhd,\n new Uint8Array([\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n id >> 24,\n (id >> 16) & 0xff,\n (id >> 8) & 0xff,\n id & 0xff, // track_ID\n ]),\n ),\n MP4.box(\n MP4.types.tfdt,\n new Uint8Array([\n 0x01, // version 1\n 0x00,\n 0x00,\n 0x00, // flags\n upperWordBaseMediaDecodeTime >> 24,\n (upperWordBaseMediaDecodeTime >> 16) & 0xff,\n (upperWordBaseMediaDecodeTime >> 8) & 0xff,\n upperWordBaseMediaDecodeTime & 0xff,\n lowerWordBaseMediaDecodeTime >> 24,\n (lowerWordBaseMediaDecodeTime >> 16) & 0xff,\n (lowerWordBaseMediaDecodeTime >> 8) & 0xff,\n lowerWordBaseMediaDecodeTime & 0xff,\n ]),\n ),\n MP4.trun(\n track,\n sampleDependencyTable.length +\n 16 + // tfhd\n 20 + // tfdt\n 8 + // traf header\n 16 + // mfhd\n 8 + // moof header\n 8,\n ), // mdat header\n sampleDependencyTable,\n );\n }\n\n /**\n * Generate a track box.\n * @param track a track definition\n */\n static trak(track) {\n track.duration = track.duration || 0xffffffff;\n return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track));\n }\n\n static trex(track) {\n const id = track.id;\n return MP4.box(\n MP4.types.trex,\n new Uint8Array([\n 0x00, // version 0\n 0x00,\n 0x00,\n 0x00, // flags\n id >> 24,\n (id >> 16) & 0xff,\n (id >> 8) & 0xff,\n id & 0xff, // track_ID\n 0x00,\n 0x00,\n 0x00,\n 0x01, // default_sample_description_index\n 0x00,\n 0x00,\n 0x00,\n 0x00, // default_sample_duration\n 0x00,\n 0x00,\n 0x00,\n 0x00, // default_sample_size\n 0x00,\n 0x01,\n 0x00,\n 0x01, // default_sample_flags\n ]),\n );\n }\n\n static trun(track, offset) {\n const samples = track.samples || [];\n const len = samples.length;\n const arraylen = 12 + 16 * len;\n const array = new Uint8Array(arraylen);\n let i;\n let sample;\n let duration;\n let size;\n let flags;\n let cts;\n offset += 8 + arraylen;\n array.set(\n [\n track.type === 'video' ? 0x01 : 0x00, // version 1 for video with signed-int sample_composition_time_offset\n 0x00,\n 0x0f,\n 0x01, // flags\n (len >>> 24) & 0xff,\n (len >>> 16) & 0xff,\n (len >>> 8) & 0xff,\n len & 0xff, // sample_count\n (offset >>> 24) & 0xff,\n (offset >>> 16) & 0xff,\n (offset >>> 8) & 0xff,\n offset & 0xff, // data_offset\n ],\n 0,\n );\n for (i = 0; i < len; i++) {\n sample = samples[i];\n duration = sample.duration;\n size = sample.size;\n flags = sample.flags;\n cts = sample.cts;\n array.set(\n [\n (duration >>> 24) & 0xff,\n (duration >>> 16) & 0xff,\n (duration >>> 8) & 0xff,\n duration & 0xff, // sample_duration\n (size >>> 24) & 0xff,\n (size >>> 16) & 0xff,\n (size >>> 8) & 0xff,\n size & 0xff, // sample_size\n (flags.isLeading << 2) | flags.dependsOn,\n (flags.isDependedOn << 6) |\n (flags.hasRedundancy << 4) |\n (flags.paddingValue << 1) |\n flags.isNonSync,\n flags.degradPrio & (0xf0 << 8),\n flags.degradPrio & 0x0f, // sample_flags\n (cts >>> 24) & 0xff,\n (cts >>> 16) & 0xff,\n (cts >>> 8) & 0xff,\n cts & 0xff, // sample_composition_time_offset\n ],\n 12 + 16 * i,\n );\n }\n return MP4.box(MP4.types.trun, array);\n }\n\n static initSegment(tracks) {\n if (!MP4.types) {\n MP4.init();\n }\n\n const movie = MP4.moov(tracks);\n const result = appendUint8Array(MP4.FTYP, movie);\n return result;\n }\n}\n\nexport default MP4;\n","const MPEG_TS_CLOCK_FREQ_HZ = 90000;\n\nexport type RationalTimestamp = {\n baseTime: number; // ticks\n timescale: number; // ticks per second\n};\n\nexport function toTimescaleFromBase(\n baseTime: number,\n destScale: number,\n srcBase: number = 1,\n round: boolean = false,\n): number {\n const result = baseTime * destScale * srcBase; // equivalent to `(value * scale) / (1 / base)`\n return round ? Math.round(result) : result;\n}\n\nexport function toTimescaleFromScale(\n baseTime: number,\n destScale: number,\n srcScale: number = 1,\n round: boolean = false,\n): number {\n return toTimescaleFromBase(baseTime, destScale, 1 / srcScale, round);\n}\n\nexport function toMsFromMpegTsClock(\n baseTime: number,\n round: boolean = false,\n): number {\n return toTimescaleFromBase(baseTime, 1000, 1 / MPEG_TS_CLOCK_FREQ_HZ, round);\n}\n\nexport function toMpegTsClockFromTimescale(\n baseTime: number,\n srcScale: number = 1,\n): number {\n return toTimescaleFromBase(baseTime, MPEG_TS_CLOCK_FREQ_HZ, 1 / srcScale);\n}\n","import AAC from './aac-helper';\nimport MP4 from './mp4-generator';\nimport type { HlsEventEmitter } from '../events';\nimport { Events } from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport {\n InitSegmentData,\n Remuxer,\n RemuxerResult,\n RemuxedMetadata,\n RemuxedTrack,\n RemuxedUserdata,\n} from '../types/remuxer';\nimport { PlaylistLevelType } from '../types/loader';\nimport {\n RationalTimestamp,\n toMsFromMpegTsClock,\n} from '../utils/timescale-conversion';\nimport type {\n AudioSample,\n VideoSample,\n DemuxedAudioTrack,\n DemuxedVideoTrack,\n DemuxedMetadataTrack,\n DemuxedUserdataTrack,\n} from '../types/demuxer';\nimport type { TrackSet } from '../types/track';\nimport type { SourceBufferName } from '../types/buffer';\nimport type { Fragment } from '../loader/fragment';\nimport type { HlsConfig } from '../config';\n\nconst MAX_SILENT_FRAME_DURATION = 10 * 1000; // 10 seconds\nconst AAC_SAMPLES_PER_FRAME = 1024;\nconst MPEG_AUDIO_SAMPLE_PER_FRAME = 1152;\nconst AC3_SAMPLES_PER_FRAME = 1536;\n\nlet chromeVersion: number | null = null;\nlet safariWebkitVersion: number | null = null;\n\nexport default class MP4Remuxer implements Remuxer {\n private observer: HlsEventEmitter;\n private config: HlsConfig;\n private typeSupported: any;\n private ISGenerated: boolean = false;\n private _initPTS: RationalTimestamp | null = null;\n private _initDTS: RationalTimestamp | null = null;\n private nextAvcDts: number | null = null;\n private nextAudioPts: number | null = null;\n private videoSampleDuration: number | null = null;\n private isAudioContiguous: boolean = false;\n private isVideoContiguous: boolean = false;\n private videoTrackConfig?: {\n width?: number;\n height?: number;\n pixelRatio?: [number, number];\n };\n\n constructor(\n observer: HlsEventEmitter,\n config: HlsConfig,\n typeSupported,\n vendor = '',\n ) {\n this.observer = observer;\n this.config = config;\n this.typeSupported = typeSupported;\n this.ISGenerated = false;\n\n if (chromeVersion === null) {\n const userAgent = navigator.userAgent || '';\n const result = userAgent.match(/Chrome\\/(\\d+)/i);\n chromeVersion = result ? parseInt(result[1]) : 0;\n }\n if (safariWebkitVersion === null) {\n const result = navigator.userAgent.match(/Safari\\/(\\d+)/i);\n safariWebkitVersion = result ? parseInt(result[1]) : 0;\n }\n }\n\n destroy() {\n // @ts-ignore\n this.config = this.videoTrackConfig = this._initPTS = this._initDTS = null;\n }\n\n resetTimeStamp(defaultTimeStamp: RationalTimestamp | null) {\n logger.log('[mp4-remuxer]: initPTS & initDTS reset');\n this._initPTS = this._initDTS = defaultTimeStamp;\n }\n\n resetNextTimestamp() {\n logger.log('[mp4-remuxer]: reset next timestamp');\n this.isVideoContiguous = false;\n this.isAudioContiguous = false;\n }\n\n resetInitSegment() {\n logger.log('[mp4-remuxer]: ISGenerated flag reset');\n this.ISGenerated = false;\n this.videoTrackConfig = undefined;\n }\n\n getVideoStartPts(videoSamples: VideoSample[]) {\n // Get the minimum PTS value relative to the first sample's PTS, normalized for 33-bit wrapping\n let rolloverDetected = false;\n const firstPts = videoSamples[0].pts;\n const startPTS = videoSamples.reduce((minPTS, sample) => {\n let pts = sample.pts;\n let delta = pts - minPTS;\n if (delta < -4294967296) {\n // 2^32, see PTSNormalize for reasoning, but we're hitting a rollover here, and we don't want that to impact the timeOffset calculation\n rolloverDetected = true;\n pts = normalizePts(pts, firstPts);\n delta = pts - minPTS;\n }\n if (delta > 0) {\n return minPTS;\n }\n return pts;\n }, firstPts);\n if (rolloverDetected) {\n logger.debug('PTS rollover detected');\n }\n return startPTS;\n }\n\n remux(\n audioTrack: DemuxedAudioTrack,\n videoTrack: DemuxedVideoTrack,\n id3Track: DemuxedMetadataTrack,\n textTrack: DemuxedUserdataTrack,\n timeOffset: number,\n accurateTimeOffset: boolean,\n flush: boolean,\n playlistType: PlaylistLevelType,\n ): RemuxerResult {\n let video: RemuxedTrack | undefined;\n let audio: RemuxedTrack | undefined;\n let initSegment: InitSegmentData | undefined;\n let text: RemuxedUserdata | undefined;\n let id3: RemuxedMetadata | undefined;\n let independent: boolean | undefined;\n let audioTimeOffset = timeOffset;\n let videoTimeOffset = timeOffset;\n\n // If we're remuxing audio and video progressively, wait until we've received enough samples for each track before proceeding.\n // This is done to synchronize the audio and video streams. We know if the current segment will have samples if the \"pid\"\n // parameter is greater than -1. The pid is set when the PMT is parsed, which contains the tracks list.\n // However, if the initSegment has already been generated, or we've reached the end of a segment (flush),\n // then we can remux one track without waiting for the other.\n const hasAudio = audioTrack.pid > -1;\n const hasVideo = videoTrack.pid > -1;\n const length = videoTrack.samples.length;\n const enoughAudioSamples = audioTrack.samples.length > 0;\n const enoughVideoSamples = (flush && length > 0) || length > 1;\n const canRemuxAvc =\n ((!hasAudio || enoughAudioSamples) &&\n (!hasVideo || enoughVideoSamples)) ||\n this.ISGenerated ||\n flush;\n\n if (canRemuxAvc) {\n if (this.ISGenerated) {\n const config = this.videoTrackConfig;\n if (\n config &&\n (videoTrack.width !== config.width ||\n videoTrack.height !== config.height ||\n videoTrack.pixelRatio?.[0] !== config.pixelRatio?.[0] ||\n videoTrack.pixelRatio?.[1] !== config.pixelRatio?.[1])\n ) {\n this.resetInitSegment();\n }\n } else {\n initSegment = this.generateIS(\n audioTrack,\n videoTrack,\n timeOffset,\n accurateTimeOffset,\n );\n }\n\n const isVideoContiguous = this.isVideoContiguous;\n let firstKeyFrameIndex = -1;\n let firstKeyFramePTS;\n\n if (enoughVideoSamples) {\n firstKeyFrameIndex = findKeyframeIndex(videoTrack.samples);\n if (!isVideoContiguous && this.config.forceKeyFrameOnDiscontinuity) {\n independent = true;\n if (firstKeyFrameIndex > 0) {\n logger.warn(\n `[mp4-remuxer]: Dropped ${firstKeyFrameIndex} out of ${length} video samples due to a missing keyframe`,\n );\n const startPTS = this.getVideoStartPts(videoTrack.samples);\n videoTrack.samples = videoTrack.samples.slice(firstKeyFrameIndex);\n videoTrack.dropped += firstKeyFrameIndex;\n videoTimeOffset +=\n (videoTrack.samples[0].pts - startPTS) /\n videoTrack.inputTimeScale;\n firstKeyFramePTS = videoTimeOffset;\n } else if (firstKeyFrameIndex === -1) {\n logger.warn(\n `[mp4-remuxer]: No keyframe found out of ${length} video samples`,\n );\n independent = false;\n }\n }\n }\n\n if (this.ISGenerated) {\n if (enoughAudioSamples && enoughVideoSamples) {\n // timeOffset is expected to be the offset of the first timestamp of this fragment (first DTS)\n // if first audio DTS is not aligned with first video DTS then we need to take that into account\n // when providing timeOffset to remuxAudio / remuxVideo. if we don't do that, there might be a permanent / small\n // drift between audio and video streams\n const startPTS = this.getVideoStartPts(videoTrack.samples);\n const tsDelta =\n normalizePts(audioTrack.samples[0].pts, startPTS) - startPTS;\n const audiovideoTimestampDelta = tsDelta / videoTrack.inputTimeScale;\n audioTimeOffset += Math.max(0, audiovideoTimestampDelta);\n videoTimeOffset += Math.max(0, -audiovideoTimestampDelta);\n }\n\n // Purposefully remuxing audio before video, so that remuxVideo can use nextAudioPts, which is calculated in remuxAudio.\n if (enoughAudioSamples) {\n // if initSegment was generated without audio samples, regenerate it again\n if (!audioTrack.samplerate) {\n logger.warn(\n '[mp4-remuxer]: regenerate InitSegment as audio detected',\n );\n initSegment = this.generateIS(\n audioTrack,\n videoTrack,\n timeOffset,\n accurateTimeOffset,\n );\n }\n audio = this.remuxAudio(\n audioTrack,\n audioTimeOffset,\n this.isAudioContiguous,\n accurateTimeOffset,\n hasVideo ||\n enoughVideoSamples ||\n playlistType === PlaylistLevelType.AUDIO\n ? videoTimeOffset\n : undefined,\n );\n if (enoughVideoSamples) {\n const audioTrackLength = audio ? audio.endPTS - audio.startPTS : 0;\n // if initSegment was generated without video samples, regenerate it again\n if (!videoTrack.inputTimeScale) {\n logger.warn(\n '[mp4-remuxer]: regenerate InitSegment as video detected',\n );\n initSegment = this.generateIS(\n audioTrack,\n videoTrack,\n timeOffset,\n accurateTimeOffset,\n );\n }\n video = this.remuxVideo(\n videoTrack,\n videoTimeOffset,\n isVideoContiguous,\n audioTrackLength,\n );\n }\n } else if (enoughVideoSamples) {\n video = this.remuxVideo(\n videoTrack,\n videoTimeOffset,\n isVideoContiguous,\n 0,\n );\n }\n if (video) {\n video.firstKeyFrame = firstKeyFrameIndex;\n video.independent = firstKeyFrameIndex !== -1;\n video.firstKeyFramePTS = firstKeyFramePTS;\n }\n }\n }\n\n // Allow ID3 and text to remux, even if more audio/video samples are required\n if (this.ISGenerated && this._initPTS && this._initDTS) {\n if (id3Track.samples.length) {\n id3 = flushTextTrackMetadataCueSamples(\n id3Track,\n timeOffset,\n this._initPTS,\n this._initDTS,\n );\n }\n\n if (textTrack.samples.length) {\n text = flushTextTrackUserdataCueSamples(\n textTrack,\n timeOffset,\n this._initPTS,\n );\n }\n }\n\n return {\n audio,\n video,\n initSegment,\n independent,\n text,\n id3,\n };\n }\n\n generateIS(\n audioTrack: DemuxedAudioTrack,\n videoTrack: DemuxedVideoTrack,\n timeOffset: number,\n accurateTimeOffset: boolean,\n ): InitSegmentData | undefined {\n const audioSamples = audioTrack.samples;\n const videoSamples = videoTrack.samples;\n const typeSupported = this.typeSupported;\n const tracks: TrackSet = {};\n const _initPTS = this._initPTS;\n let computePTSDTS = !_initPTS || accurateTimeOffset;\n let container = 'audio/mp4';\n let initPTS: number | undefined;\n let initDTS: number | undefined;\n let timescale: number | undefined;\n\n if (computePTSDTS) {\n initPTS = initDTS = Infinity;\n }\n\n if (audioTrack.config && audioSamples.length) {\n // let's use audio sampling rate as MP4 time scale.\n // rationale is that there is a integer nb of audio frames per audio sample (1024 for AAC)\n // using audio sampling rate here helps having an integer MP4 frame duration\n // this avoids potential rounding issue and AV sync issue\n audioTrack.timescale = audioTrack.samplerate;\n switch (audioTrack.segmentCodec) {\n case 'mp3':\n if (typeSupported.mpeg) {\n // Chrome and Safari\n container = 'audio/mpeg';\n audioTrack.codec = '';\n } else if (typeSupported.mp3) {\n // Firefox\n audioTrack.codec = 'mp3';\n }\n break;\n\n case 'ac3':\n audioTrack.codec = 'ac-3';\n break;\n }\n tracks.audio = {\n id: 'audio',\n container: container,\n codec: audioTrack.codec,\n initSegment:\n audioTrack.segmentCodec === 'mp3' && typeSupported.mpeg\n ? new Uint8Array(0)\n : MP4.initSegment([audioTrack]),\n metadata: {\n channelCount: audioTrack.channelCount,\n },\n };\n if (computePTSDTS) {\n timescale = audioTrack.inputTimeScale;\n if (!_initPTS || timescale !== _initPTS.timescale) {\n // remember first PTS of this demuxing context. for audio, PTS = DTS\n initPTS = initDTS =\n audioSamples[0].pts - Math.round(timescale * timeOffset);\n } else {\n computePTSDTS = false;\n }\n }\n }\n\n if (videoTrack.sps && videoTrack.pps && videoSamples.length) {\n // let's use input time scale as MP4 video timescale\n // we use input time scale straight away to avoid rounding issues on frame duration / cts computation\n videoTrack.timescale = videoTrack.inputTimeScale;\n tracks.video = {\n id: 'main',\n container: 'video/mp4',\n codec: videoTrack.codec,\n initSegment: MP4.initSegment([videoTrack]),\n metadata: {\n width: videoTrack.width,\n height: videoTrack.height,\n },\n };\n if (computePTSDTS) {\n timescale = videoTrack.inputTimeScale;\n if (!_initPTS || timescale !== _initPTS.timescale) {\n const startPTS = this.getVideoStartPts(videoSamples);\n const startOffset = Math.round(timescale * timeOffset);\n initDTS = Math.min(\n initDTS as number,\n normalizePts(videoSamples[0].dts, startPTS) - startOffset,\n );\n initPTS = Math.min(initPTS as number, startPTS - startOffset);\n } else {\n computePTSDTS = false;\n }\n }\n this.videoTrackConfig = {\n width: videoTrack.width,\n height: videoTrack.height,\n pixelRatio: videoTrack.pixelRatio,\n };\n }\n\n if (Object.keys(tracks).length) {\n this.ISGenerated = true;\n if (computePTSDTS) {\n this._initPTS = {\n baseTime: initPTS as number,\n timescale: timescale as number,\n };\n this._initDTS = {\n baseTime: initDTS as number,\n timescale: timescale as number,\n };\n } else {\n initPTS = timescale = undefined;\n }\n\n return {\n tracks,\n initPTS,\n timescale,\n };\n }\n }\n\n remuxVideo(\n track: DemuxedVideoTrack,\n timeOffset: number,\n contiguous: boolean,\n audioTrackLength: number,\n ): RemuxedTrack | undefined {\n const timeScale: number = track.inputTimeScale;\n const inputSamples: Array<VideoSample> = track.samples;\n const outputSamples: Array<Mp4Sample> = [];\n const nbSamples = inputSamples.length;\n const initPTS = this._initPTS as RationalTimestamp;\n let nextAvcDts = this.nextAvcDts;\n let offset = 8;\n let mp4SampleDuration = this.videoSampleDuration;\n let firstDTS;\n let lastDTS;\n let minPTS: number = Number.POSITIVE_INFINITY;\n let maxPTS: number = Number.NEGATIVE_INFINITY;\n let sortSamples = false;\n\n // if parsed fragment is contiguous with last one, let's use last DTS value as reference\n if (!contiguous || nextAvcDts === null) {\n const pts = timeOffset * timeScale;\n const cts =\n inputSamples[0].pts -\n normalizePts(inputSamples[0].dts, inputSamples[0].pts);\n if (\n chromeVersion &&\n nextAvcDts !== null &&\n Math.abs(pts - cts - nextAvcDts) < 15000\n ) {\n // treat as contigous to adjust samples that would otherwise produce video buffer gaps in Chrome\n contiguous = true;\n } else {\n // if not contiguous, let's use target timeOffset\n nextAvcDts = pts - cts;\n }\n }\n\n // PTS is coded on 33bits, and can loop from -2^32 to 2^32\n // PTSNormalize will make PTS/DTS value monotonic, we use last known DTS value as reference value\n const initTime = (initPTS.baseTime * timeScale) / initPTS.timescale;\n for (let i = 0; i < nbSamples; i++) {\n const sample = inputSamples[i];\n sample.pts = normalizePts(sample.pts - initTime, nextAvcDts);\n sample.dts = normalizePts(sample.dts - initTime, nextAvcDts);\n if (sample.dts < inputSamples[i > 0 ? i - 1 : i].dts) {\n sortSamples = true;\n }\n }\n\n // sort video samples by DTS then PTS then demux id order\n if (sortSamples) {\n inputSamples.sort(function (a, b) {\n const deltadts = a.dts - b.dts;\n const deltapts = a.pts - b.pts;\n return deltadts || deltapts;\n });\n }\n\n // Get first/last DTS\n firstDTS = inputSamples[0].dts;\n lastDTS = inputSamples[inputSamples.length - 1].dts;\n\n // Sample duration (as expected by trun MP4 boxes), should be the delta between sample DTS\n // set this constant duration as being the avg delta between consecutive DTS.\n const inputDuration = lastDTS - firstDTS;\n const averageSampleDuration = inputDuration\n ? Math.round(inputDuration / (nbSamples - 1))\n : mp4SampleDuration || track.inputTimeScale / 30;\n\n // if fragment are contiguous, detect hole/overlapping between fragments\n if (contiguous) {\n // check timestamp continuity across consecutive fragments (this is to remove inter-fragment gap/hole)\n const delta = firstDTS - nextAvcDts;\n const foundHole = delta > averageSampleDuration;\n const foundOverlap = delta < -1;\n if (foundHole || foundOverlap) {\n if (foundHole) {\n logger.warn(\n `AVC: ${toMsFromMpegTsClock(\n delta,\n true,\n )} ms (${delta}dts) hole between fragments detected at ${timeOffset.toFixed(\n 3,\n )}`,\n );\n } else {\n logger.warn(\n `AVC: ${toMsFromMpegTsClock(\n -delta,\n true,\n )} ms (${delta}dts) overlapping between fragments detected at ${timeOffset.toFixed(\n 3,\n )}`,\n );\n }\n if (\n !foundOverlap ||\n nextAvcDts >= inputSamples[0].pts ||\n chromeVersion\n ) {\n firstDTS = nextAvcDts;\n const firstPTS = inputSamples[0].pts - delta;\n if (foundHole) {\n inputSamples[0].dts = firstDTS;\n inputSamples[0].pts = firstPTS;\n } else {\n for (let i = 0; i < inputSamples.length; i++) {\n if (inputSamples[i].dts > firstPTS) {\n break;\n }\n inputSamples[i].dts -= delta;\n inputSamples[i].pts -= delta;\n }\n }\n logger.log(\n `Video: Initial PTS/DTS adjusted: ${toMsFromMpegTsClock(\n firstPTS,\n true,\n )}/${toMsFromMpegTsClock(\n firstDTS,\n true,\n )}, delta: ${toMsFromMpegTsClock(delta, true)} ms`,\n );\n }\n }\n }\n\n firstDTS = Math.max(0, firstDTS);\n\n let nbNalu = 0;\n let naluLen = 0;\n let dtsStep = firstDTS;\n for (let i = 0; i < nbSamples; i++) {\n // compute total/avc sample length and nb of NAL units\n const sample = inputSamples[i];\n const units = sample.units;\n const nbUnits = units.length;\n let sampleLen = 0;\n for (let j = 0; j < nbUnits; j++) {\n sampleLen += units[j].data.length;\n }\n\n naluLen += sampleLen;\n nbNalu += nbUnits;\n sample.length = sampleLen;\n\n // ensure sample monotonic DTS\n if (sample.dts < dtsStep) {\n sample.dts = dtsStep;\n dtsStep += (averageSampleDuration / 4) | 0 || 1;\n } else {\n dtsStep = sample.dts;\n }\n\n minPTS = Math.min(sample.pts, minPTS);\n maxPTS = Math.max(sample.pts, maxPTS);\n }\n lastDTS = inputSamples[nbSamples - 1].dts;\n\n /* concatenate the video data and construct the mdat in place\n (need 8 more bytes to fill length and mpdat type) */\n const mdatSize = naluLen + 4 * nbNalu + 8;\n let mdat;\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MUX_ERROR,\n details: ErrorDetails.REMUX_ALLOC_ERROR,\n fatal: false,\n error: err,\n bytes: mdatSize,\n reason: `fail allocating video mdat ${mdatSize}`,\n });\n return;\n }\n const view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(MP4.types.mdat, 4);\n\n let stretchedLastFrame = false;\n let minDtsDelta = Number.POSITIVE_INFINITY;\n let minPtsDelta = Number.POSITIVE_INFINITY;\n let maxDtsDelta = Number.NEGATIVE_INFINITY;\n let maxPtsDelta = Number.NEGATIVE_INFINITY;\n for (let i = 0; i < nbSamples; i++) {\n const VideoSample = inputSamples[i];\n const VideoSampleUnits = VideoSample.units;\n let mp4SampleLength = 0;\n // convert NALU bitstream to MP4 format (prepend NALU with size field)\n for (let j = 0, nbUnits = VideoSampleUnits.length; j < nbUnits; j++) {\n const unit = VideoSampleUnits[j];\n const unitData = unit.data;\n const unitDataLen = unit.data.byteLength;\n view.setUint32(offset, unitDataLen);\n offset += 4;\n mdat.set(unitData, offset);\n offset += unitDataLen;\n mp4SampleLength += 4 + unitDataLen;\n }\n\n // expected sample duration is the Decoding Timestamp diff of consecutive samples\n let ptsDelta;\n if (i < nbSamples - 1) {\n mp4SampleDuration = inputSamples[i + 1].dts - VideoSample.dts;\n ptsDelta = inputSamples[i + 1].pts - VideoSample.pts;\n } else {\n const config = this.config;\n const lastFrameDuration =\n i > 0\n ? VideoSample.dts - inputSamples[i - 1].dts\n : averageSampleDuration;\n ptsDelta =\n i > 0\n ? VideoSample.pts - inputSamples[i - 1].pts\n : averageSampleDuration;\n if (config.stretchShortVideoTrack && this.nextAudioPts !== null) {\n // In some cases, a segment's audio track duration may exceed the video track duration.\n // Since we've already remuxed audio, and we know how long the audio track is, we look to\n // see if the delta to the next segment is longer than maxBufferHole.\n // If so, playback would potentially get stuck, so we artificially inflate\n // the duration of the last frame to minimize any potential gap between segments.\n const gapTolerance = Math.floor(config.maxBufferHole * timeScale);\n const deltaToFrameEnd =\n (audioTrackLength\n ? minPTS + audioTrackLength * timeScale\n : this.nextAudioPts) - VideoSample.pts;\n if (deltaToFrameEnd > gapTolerance) {\n // We subtract lastFrameDuration from deltaToFrameEnd to try to prevent any video\n // frame overlap. maxBufferHole should be >> lastFrameDuration anyway.\n mp4SampleDuration = deltaToFrameEnd - lastFrameDuration;\n if (mp4SampleDuration < 0) {\n mp4SampleDuration = lastFrameDuration;\n } else {\n stretchedLastFrame = true;\n }\n logger.log(\n `[mp4-remuxer]: It is approximately ${\n deltaToFrameEnd / 90\n } ms to the next segment; using duration ${\n mp4SampleDuration / 90\n } ms for the last video frame.`,\n );\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n } else {\n mp4SampleDuration = lastFrameDuration;\n }\n }\n const compositionTimeOffset = Math.round(\n VideoSample.pts - VideoSample.dts,\n );\n minDtsDelta = Math.min(minDtsDelta, mp4SampleDuration);\n maxDtsDelta = Math.max(maxDtsDelta, mp4SampleDuration);\n minPtsDelta = Math.min(minPtsDelta, ptsDelta);\n maxPtsDelta = Math.max(maxPtsDelta, ptsDelta);\n\n outputSamples.push(\n new Mp4Sample(\n VideoSample.key,\n mp4SampleDuration,\n mp4SampleLength,\n compositionTimeOffset,\n ),\n );\n }\n\n if (outputSamples.length) {\n if (chromeVersion) {\n if (chromeVersion < 70) {\n // Chrome workaround, mark first sample as being a Random Access Point (keyframe) to avoid sourcebuffer append issue\n // https://code.google.com/p/chromium/issues/detail?id=229412\n const flags = outputSamples[0].flags;\n flags.dependsOn = 2;\n flags.isNonSync = 0;\n }\n } else if (safariWebkitVersion) {\n // Fix for \"CNN special report, with CC\" in test-streams (Safari browser only)\n // Ignore DTS when frame durations are irregular. Safari MSE does not handle this leading to gaps.\n if (\n maxPtsDelta - minPtsDelta < maxDtsDelta - minDtsDelta &&\n averageSampleDuration / maxDtsDelta < 0.025 &&\n outputSamples[0].cts === 0\n ) {\n logger.warn(\n 'Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.',\n );\n let dts = firstDTS;\n for (let i = 0, len = outputSamples.length; i < len; i++) {\n const nextDts = dts + outputSamples[i].duration;\n const pts = dts + outputSamples[i].cts;\n if (i < len - 1) {\n const nextPts = nextDts + outputSamples[i + 1].cts;\n outputSamples[i].duration = nextPts - pts;\n } else {\n outputSamples[i].duration = i\n ? outputSamples[i - 1].duration\n : averageSampleDuration;\n }\n outputSamples[i].cts = 0;\n dts = nextDts;\n }\n }\n }\n }\n // next AVC sample DTS should be equal to last sample DTS + last sample duration (in PES timescale)\n mp4SampleDuration =\n stretchedLastFrame || !mp4SampleDuration\n ? averageSampleDuration\n : mp4SampleDuration;\n this.nextAvcDts = nextAvcDts = lastDTS + mp4SampleDuration;\n this.videoSampleDuration = mp4SampleDuration;\n this.isVideoContiguous = true;\n const moof = MP4.moof(\n track.sequenceNumber++,\n firstDTS,\n Object.assign({}, track, {\n samples: outputSamples,\n }),\n );\n const type: SourceBufferName = 'video';\n const data = {\n data1: moof,\n data2: mdat,\n startPTS: minPTS / timeScale,\n endPTS: (maxPTS + mp4SampleDuration) / timeScale,\n startDTS: firstDTS / timeScale,\n endDTS: (nextAvcDts as number) / timeScale,\n type,\n hasAudio: false,\n hasVideo: true,\n nb: outputSamples.length,\n dropped: track.dropped,\n };\n track.samples = [];\n track.dropped = 0;\n return data;\n }\n\n getSamplesPerFrame(track: DemuxedAudioTrack) {\n switch (track.segmentCodec) {\n case 'mp3':\n return MPEG_AUDIO_SAMPLE_PER_FRAME;\n case 'ac3':\n return AC3_SAMPLES_PER_FRAME;\n default:\n return AAC_SAMPLES_PER_FRAME;\n }\n }\n\n remuxAudio(\n track: DemuxedAudioTrack,\n timeOffset: number,\n contiguous: boolean,\n accurateTimeOffset: boolean,\n videoTimeOffset?: number,\n ): RemuxedTrack | undefined {\n const inputTimeScale: number = track.inputTimeScale;\n const mp4timeScale: number = track.samplerate\n ? track.samplerate\n : inputTimeScale;\n const scaleFactor: number = inputTimeScale / mp4timeScale;\n const mp4SampleDuration: number = this.getSamplesPerFrame(track);\n const inputSampleDuration: number = mp4SampleDuration * scaleFactor;\n const initPTS = this._initPTS as RationalTimestamp;\n const rawMPEG: boolean =\n track.segmentCodec === 'mp3' && this.typeSupported.mpeg;\n const outputSamples: Array<Mp4Sample> = [];\n const alignedWithVideo = videoTimeOffset !== undefined;\n\n let inputSamples: Array<AudioSample> = track.samples;\n let offset: number = rawMPEG ? 0 : 8;\n let nextAudioPts: number = this.nextAudioPts || -1;\n\n // window.audioSamples ? window.audioSamples.push(inputSamples.map(s => s.pts)) : (window.audioSamples = [inputSamples.map(s => s.pts)]);\n\n // for audio samples, also consider consecutive fragments as being contiguous (even if a level switch occurs),\n // for sake of clarity:\n // consecutive fragments are frags with\n // - less than 100ms gaps between new time offset (if accurate) and next expected PTS OR\n // - less than 20 audio frames distance\n // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n // this helps ensuring audio continuity\n // and this also avoids audio glitches/cut when switching quality, or reporting wrong duration on first audio frame\n const timeOffsetMpegTS = timeOffset * inputTimeScale;\n const initTime = (initPTS.baseTime * inputTimeScale) / initPTS.timescale;\n this.isAudioContiguous = contiguous =\n contiguous ||\n ((inputSamples.length &&\n nextAudioPts > 0 &&\n ((accurateTimeOffset &&\n Math.abs(timeOffsetMpegTS - nextAudioPts) < 9000) ||\n Math.abs(\n normalizePts(inputSamples[0].pts - initTime, timeOffsetMpegTS) -\n nextAudioPts,\n ) <\n 20 * inputSampleDuration)) as boolean);\n\n // compute normalized PTS\n inputSamples.forEach(function (sample) {\n sample.pts = normalizePts(sample.pts - initTime, timeOffsetMpegTS);\n });\n\n if (!contiguous || nextAudioPts < 0) {\n // filter out sample with negative PTS that are not playable anyway\n // if we don't remove these negative samples, they will shift all audio samples forward.\n // leading to audio overlap between current / next fragment\n inputSamples = inputSamples.filter((sample) => sample.pts >= 0);\n\n // in case all samples have negative PTS, and have been filtered out, return now\n if (!inputSamples.length) {\n return;\n }\n\n if (videoTimeOffset === 0) {\n // Set the start to 0 to match video so that start gaps larger than inputSampleDuration are filled with silence\n nextAudioPts = 0;\n } else if (accurateTimeOffset && !alignedWithVideo) {\n // When not seeking, not live, and LevelDetails.PTSKnown, use fragment start as predicted next audio PTS\n nextAudioPts = Math.max(0, timeOffsetMpegTS);\n } else {\n // if frags are not contiguous and if we cant trust time offset, let's use first sample PTS as next audio PTS\n nextAudioPts = inputSamples[0].pts;\n }\n }\n\n // If the audio track is missing samples, the frames seem to get \"left-shifted\" within the\n // resulting mp4 segment, causing sync issues and leaving gaps at the end of the audio segment.\n // In an effort to prevent this from happening, we inject frames here where there are gaps.\n // When possible, we inject a silent frame; when that's not possible, we duplicate the last\n // frame.\n\n if (track.segmentCodec === 'aac') {\n const maxAudioFramesDrift = this.config.maxAudioFramesDrift;\n for (let i = 0, nextPts = nextAudioPts; i < inputSamples.length; i++) {\n // First, let's see how far off this frame is from where we expect it to be\n const sample = inputSamples[i];\n const pts = sample.pts;\n const delta = pts - nextPts;\n const duration = Math.abs((1000 * delta) / inputTimeScale);\n\n // When remuxing with video, if we're overlapping by more than a duration, drop this sample to stay in sync\n if (\n delta <= -maxAudioFramesDrift * inputSampleDuration &&\n alignedWithVideo\n ) {\n if (i === 0) {\n logger.warn(\n `Audio frame @ ${(pts / inputTimeScale).toFixed(\n 3,\n )}s overlaps nextAudioPts by ${Math.round(\n (1000 * delta) / inputTimeScale,\n )} ms.`,\n );\n this.nextAudioPts = nextAudioPts = nextPts = pts;\n }\n } // eslint-disable-line brace-style\n\n // Insert missing frames if:\n // 1: We're more than maxAudioFramesDrift frame away\n // 2: Not more than MAX_SILENT_FRAME_DURATION away\n // 3: currentTime (aka nextPtsNorm) is not 0\n // 4: remuxing with video (videoTimeOffset !== undefined)\n else if (\n delta >= maxAudioFramesDrift * inputSampleDuration &&\n duration < MAX_SILENT_FRAME_DURATION &&\n alignedWithVideo\n ) {\n let missing = Math.round(delta / inputSampleDuration);\n // Adjust nextPts so that silent samples are aligned with media pts. This will prevent media samples from\n // later being shifted if nextPts is based on timeOffset and delta is not a multiple of inputSampleDuration.\n nextPts = pts - missing * inputSampleDuration;\n if (nextPts < 0) {\n missing--;\n nextPts += inputSampleDuration;\n }\n if (i === 0) {\n this.nextAudioPts = nextAudioPts = nextPts;\n }\n logger.warn(\n `[mp4-remuxer]: Injecting ${missing} audio frame @ ${(\n nextPts / inputTimeScale\n ).toFixed(3)}s due to ${Math.round(\n (1000 * delta) / inputTimeScale,\n )} ms gap.`,\n );\n for (let j = 0; j < missing; j++) {\n const newStamp = Math.max(nextPts as number, 0);\n let fillFrame = AAC.getSilentFrame(\n track.manifestCodec || track.codec,\n track.channelCount,\n );\n if (!fillFrame) {\n logger.log(\n '[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead.',\n );\n fillFrame = sample.unit.subarray();\n }\n inputSamples.splice(i, 0, {\n unit: fillFrame,\n pts: newStamp,\n });\n nextPts += inputSampleDuration;\n i++;\n }\n }\n sample.pts = nextPts;\n nextPts += inputSampleDuration;\n }\n }\n let firstPTS: number | null = null;\n let lastPTS: number | null = null;\n let mdat: any;\n let mdatSize: number = 0;\n let sampleLength: number = inputSamples.length;\n while (sampleLength--) {\n mdatSize += inputSamples[sampleLength].unit.byteLength;\n }\n for (let j = 0, nbSamples = inputSamples.length; j < nbSamples; j++) {\n const audioSample = inputSamples[j];\n const unit = audioSample.unit;\n let pts = audioSample.pts;\n if (lastPTS !== null) {\n // If we have more than one sample, set the duration of the sample to the \"real\" duration; the PTS diff with\n // the previous sample\n const prevSample = outputSamples[j - 1];\n prevSample.duration = Math.round((pts - lastPTS) / scaleFactor);\n } else {\n if (contiguous && track.segmentCodec === 'aac') {\n // set PTS/DTS to expected PTS/DTS\n pts = nextAudioPts;\n }\n // remember first PTS of our audioSamples\n firstPTS = pts;\n if (mdatSize > 0) {\n /* concatenate the audio data and construct the mdat in place\n (need 8 more bytes to fill length and mdat type) */\n mdatSize += offset;\n try {\n mdat = new Uint8Array(mdatSize);\n } catch (err) {\n this.observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MUX_ERROR,\n details: ErrorDetails.REMUX_ALLOC_ERROR,\n fatal: false,\n error: err,\n bytes: mdatSize,\n reason: `fail allocating audio mdat ${mdatSize}`,\n });\n return;\n }\n if (!rawMPEG) {\n const view = new DataView(mdat.buffer);\n view.setUint32(0, mdatSize);\n mdat.set(MP4.types.mdat, 4);\n }\n } else {\n // no audio samples\n return;\n }\n }\n mdat.set(unit, offset);\n const unitLen = unit.byteLength;\n offset += unitLen;\n // Default the sample's duration to the computed mp4SampleDuration, which will either be 1024 for AAC or 1152 for MPEG\n // In the case that we have 1 sample, this will be the duration. If we have more than one sample, the duration\n // becomes the PTS diff with the previous sample\n outputSamples.push(new Mp4Sample(true, mp4SampleDuration, unitLen, 0));\n lastPTS = pts;\n }\n\n // We could end up with no audio samples if all input samples were overlapping with the previously remuxed ones\n const nbSamples = outputSamples.length;\n if (!nbSamples) {\n return;\n }\n\n // The next audio sample PTS should be equal to last sample PTS + duration\n const lastSample = outputSamples[outputSamples.length - 1];\n this.nextAudioPts = nextAudioPts =\n lastPTS! + scaleFactor * lastSample.duration;\n\n // Set the track samples from inputSamples to outputSamples before remuxing\n const moof = rawMPEG\n ? new Uint8Array(0)\n : MP4.moof(\n track.sequenceNumber++,\n firstPTS! / scaleFactor,\n Object.assign({}, track, { samples: outputSamples }),\n );\n\n // Clear the track samples. This also clears the samples array in the demuxer, since the reference is shared\n track.samples = [];\n const start = firstPTS! / inputTimeScale;\n const end = nextAudioPts / inputTimeScale;\n const type: SourceBufferName = 'audio';\n const audioData = {\n data1: moof,\n data2: mdat,\n startPTS: start,\n endPTS: end,\n startDTS: start,\n endDTS: end,\n type,\n hasAudio: true,\n hasVideo: false,\n nb: nbSamples,\n };\n\n this.isAudioContiguous = true;\n return audioData;\n }\n\n remuxEmptyAudio(\n track: DemuxedAudioTrack,\n timeOffset: number,\n contiguous: boolean,\n videoData: Fragment,\n ): RemuxedTrack | undefined {\n const inputTimeScale: number = track.inputTimeScale;\n const mp4timeScale: number = track.samplerate\n ? track.samplerate\n : inputTimeScale;\n const scaleFactor: number = inputTimeScale / mp4timeScale;\n const nextAudioPts: number | null = this.nextAudioPts;\n // sync with video's timestamp\n const initDTS = this._initDTS as RationalTimestamp;\n const init90kHz = (initDTS.baseTime * 90000) / initDTS.timescale;\n const startDTS: number =\n (nextAudioPts !== null\n ? nextAudioPts\n : videoData.startDTS * inputTimeScale) + init90kHz;\n const endDTS: number = videoData.endDTS * inputTimeScale + init90kHz;\n // one sample's duration value\n const frameDuration: number = scaleFactor * AAC_SAMPLES_PER_FRAME;\n // samples count of this segment's duration\n const nbSamples: number = Math.ceil((endDTS - startDTS) / frameDuration);\n // silent frame\n const silentFrame: Uint8Array | undefined = AAC.getSilentFrame(\n track.manifestCodec || track.codec,\n track.channelCount,\n );\n\n logger.warn('[mp4-remuxer]: remux empty Audio');\n // Can't remux if we can't generate a silent frame...\n if (!silentFrame) {\n logger.trace(\n '[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec',\n );\n return;\n }\n\n const samples: Array<any> = [];\n for (let i = 0; i < nbSamples; i++) {\n const stamp = startDTS + i * frameDuration;\n samples.push({ unit: silentFrame, pts: stamp, dts: stamp });\n }\n track.samples = samples;\n\n return this.remuxAudio(track, timeOffset, contiguous, false);\n }\n}\n\nexport function normalizePts(value: number, reference: number | null): number {\n let offset;\n if (reference === null) {\n return value;\n }\n\n if (reference < value) {\n // - 2^33\n offset = -8589934592;\n } else {\n // + 2^33\n offset = 8589934592;\n }\n /* PTS is 33bit (from 0 to 2^33 -1)\n if diff between value and reference is bigger than half of the amplitude (2^32) then it means that\n PTS looping occured. fill the gap */\n while (Math.abs(value - reference) > 4294967296) {\n value += offset;\n }\n\n return value;\n}\n\nfunction findKeyframeIndex(samples: Array<VideoSample>): number {\n for (let i = 0; i < samples.length; i++) {\n if (samples[i].key) {\n return i;\n }\n }\n return -1;\n}\n\nexport function flushTextTrackMetadataCueSamples(\n track: DemuxedMetadataTrack,\n timeOffset: number,\n initPTS: RationalTimestamp,\n initDTS: RationalTimestamp,\n): RemuxedMetadata | undefined {\n const length = track.samples.length;\n if (!length) {\n return;\n }\n const inputTimeScale = track.inputTimeScale;\n for (let index = 0; index < length; index++) {\n const sample = track.samples[index];\n // setting id3 pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n sample.pts =\n normalizePts(\n sample.pts - (initPTS.baseTime * inputTimeScale) / initPTS.timescale,\n timeOffset * inputTimeScale,\n ) / inputTimeScale;\n sample.dts =\n normalizePts(\n sample.dts - (initDTS.baseTime * inputTimeScale) / initDTS.timescale,\n timeOffset * inputTimeScale,\n ) / inputTimeScale;\n }\n const samples = track.samples;\n track.samples = [];\n return {\n samples,\n };\n}\n\nexport function flushTextTrackUserdataCueSamples(\n track: DemuxedUserdataTrack,\n timeOffset: number,\n initPTS: RationalTimestamp,\n): RemuxedUserdata | undefined {\n const length = track.samples.length;\n if (!length) {\n return;\n }\n\n const inputTimeScale = track.inputTimeScale;\n for (let index = 0; index < length; index++) {\n const sample = track.samples[index];\n // setting text pts, dts to relative time\n // using this._initPTS and this._initDTS to calculate relative time\n sample.pts =\n normalizePts(\n sample.pts - (initPTS.baseTime * inputTimeScale) / initPTS.timescale,\n timeOffset * inputTimeScale,\n ) / inputTimeScale;\n }\n track.samples.sort((a, b) => a.pts - b.pts);\n const samples = track.samples;\n track.samples = [];\n return {\n samples,\n };\n}\n\ntype Mp4SampleFlags = {\n isLeading: 0;\n isDependedOn: 0;\n hasRedundancy: 0;\n degradPrio: 0;\n dependsOn: 1 | 2;\n isNonSync: 0 | 1;\n};\n\nclass Mp4Sample {\n public size: number;\n public duration: number;\n public cts: number;\n public flags: Mp4SampleFlags;\n\n constructor(\n isKeyframe: boolean,\n duration: number,\n size: number,\n cts: number,\n ) {\n this.duration = duration;\n this.size = size;\n this.cts = cts;\n this.flags = {\n isLeading: 0,\n isDependedOn: 0,\n hasRedundancy: 0,\n degradPrio: 0,\n dependsOn: isKeyframe ? 2 : 1,\n isNonSync: isKeyframe ? 0 : 1,\n };\n }\n}\n","import type { HlsEventEmitter } from '../events';\nimport { Events } from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport Decrypter from '../crypt/decrypter';\nimport AACDemuxer from './audio/aacdemuxer';\nimport MP4Demuxer from '../demux/mp4demuxer';\nimport TSDemuxer, { TypeSupported } from '../demux/tsdemuxer';\nimport MP3Demuxer from './audio/mp3demuxer';\nimport { AC3Demuxer } from './audio/ac3-demuxer';\nimport MP4Remuxer from '../remux/mp4-remuxer';\nimport PassThroughRemuxer from '../remux/passthrough-remuxer';\nimport { logger } from '../utils/logger';\nimport type { Demuxer, DemuxerResult, KeyData } from '../types/demuxer';\nimport type { Remuxer } from '../types/remuxer';\nimport type { TransmuxerResult, ChunkMetadata } from '../types/transmuxer';\nimport type { HlsConfig } from '../config';\nimport type { DecryptData } from '../loader/level-key';\nimport type { PlaylistLevelType } from '../types/loader';\nimport type { RationalTimestamp } from '../utils/timescale-conversion';\nimport { optionalSelf } from '../utils/global';\n\nlet now;\n// performance.now() not available on WebWorker, at least on Safari Desktop\ntry {\n now = self.performance.now.bind(self.performance);\n} catch (err) {\n logger.debug('Unable to use Performance API on this environment');\n now = optionalSelf?.Date.now;\n}\n\ntype MuxConfig =\n | { demux: typeof MP4Demuxer; remux: typeof PassThroughRemuxer }\n | { demux: typeof TSDemuxer; remux: typeof MP4Remuxer }\n | { demux: typeof AC3Demuxer; remux: typeof MP4Remuxer }\n | { demux: typeof AACDemuxer; remux: typeof MP4Remuxer }\n | { demux: typeof MP3Demuxer; remux: typeof MP4Remuxer };\n\nconst muxConfig: MuxConfig[] = [\n { demux: MP4Demuxer, remux: PassThroughRemuxer },\n { demux: TSDemuxer, remux: MP4Remuxer },\n { demux: AACDemuxer, remux: MP4Remuxer },\n { demux: MP3Demuxer, remux: MP4Remuxer },\n];\n\nif (__USE_M2TS_ADVANCED_CODECS__) {\n muxConfig.splice(2, 0, { demux: AC3Demuxer, remux: MP4Remuxer });\n}\n\nexport default class Transmuxer {\n public async: boolean = false;\n private observer: HlsEventEmitter;\n private typeSupported: TypeSupported;\n private config: HlsConfig;\n private vendor: string;\n private id: PlaylistLevelType;\n private demuxer?: Demuxer;\n private remuxer?: Remuxer;\n private decrypter?: Decrypter;\n private probe!: Function;\n private decryptionPromise: Promise<TransmuxerResult> | null = null;\n private transmuxConfig!: TransmuxConfig;\n private currentTransmuxState!: TransmuxState;\n\n constructor(\n observer: HlsEventEmitter,\n typeSupported: TypeSupported,\n config: HlsConfig,\n vendor: string,\n id: PlaylistLevelType,\n ) {\n this.observer = observer;\n this.typeSupported = typeSupported;\n this.config = config;\n this.vendor = vendor;\n this.id = id;\n }\n\n configure(transmuxConfig: TransmuxConfig) {\n this.transmuxConfig = transmuxConfig;\n if (this.decrypter) {\n this.decrypter.reset();\n }\n }\n\n push(\n data: ArrayBuffer,\n decryptdata: DecryptData | null,\n chunkMeta: ChunkMetadata,\n state?: TransmuxState,\n ): TransmuxerResult | Promise<TransmuxerResult> {\n const stats = chunkMeta.transmuxing;\n stats.executeStart = now();\n\n let uintData: Uint8Array = new Uint8Array(data);\n const { currentTransmuxState, transmuxConfig } = this;\n if (state) {\n this.currentTransmuxState = state;\n }\n\n const {\n contiguous,\n discontinuity,\n trackSwitch,\n accurateTimeOffset,\n timeOffset,\n initSegmentChange,\n } = state || currentTransmuxState;\n const {\n audioCodec,\n videoCodec,\n defaultInitPts,\n duration,\n initSegmentData,\n } = transmuxConfig;\n\n const keyData = getEncryptionType(uintData, decryptdata);\n if (keyData && keyData.method === 'AES-128') {\n const decrypter = this.getDecrypter();\n // Software decryption is synchronous; webCrypto is not\n if (decrypter.isSync()) {\n // Software decryption is progressive. Progressive decryption may not return a result on each call. Any cached\n // data is handled in the flush() call\n let decryptedData = decrypter.softwareDecrypt(\n uintData,\n keyData.key.buffer,\n keyData.iv.buffer,\n );\n // For Low-Latency HLS Parts, decrypt in place, since part parsing is expected on push progress\n const loadingParts = chunkMeta.part > -1;\n if (loadingParts) {\n decryptedData = decrypter.flush();\n }\n if (!decryptedData) {\n stats.executeEnd = now();\n return emptyResult(chunkMeta);\n }\n uintData = new Uint8Array(decryptedData);\n } else {\n this.decryptionPromise = decrypter\n .webCryptoDecrypt(uintData, keyData.key.buffer, keyData.iv.buffer)\n .then((decryptedData): TransmuxerResult => {\n // Calling push here is important; if flush() is called while this is still resolving, this ensures that\n // the decrypted data has been transmuxed\n const result = this.push(\n decryptedData,\n null,\n chunkMeta,\n ) as TransmuxerResult;\n this.decryptionPromise = null;\n return result;\n });\n return this.decryptionPromise!;\n }\n }\n\n const resetMuxers = this.needsProbing(discontinuity, trackSwitch);\n if (resetMuxers) {\n const error = this.configureTransmuxer(uintData);\n if (error) {\n logger.warn(`[transmuxer] ${error.message}`);\n this.observer.emit(Events.ERROR, Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n fatal: false,\n error,\n reason: error.message,\n });\n stats.executeEnd = now();\n return emptyResult(chunkMeta);\n }\n }\n\n if (discontinuity || trackSwitch || initSegmentChange || resetMuxers) {\n this.resetInitSegment(\n initSegmentData,\n audioCodec,\n videoCodec,\n duration,\n decryptdata,\n );\n }\n\n if (discontinuity || initSegmentChange || resetMuxers) {\n this.resetInitialTimestamp(defaultInitPts);\n }\n\n if (!contiguous) {\n this.resetContiguity();\n }\n\n const result = this.transmux(\n uintData,\n keyData,\n timeOffset,\n accurateTimeOffset,\n chunkMeta,\n );\n const currentState = this.currentTransmuxState;\n\n currentState.contiguous = true;\n currentState.discontinuity = false;\n currentState.trackSwitch = false;\n\n stats.executeEnd = now();\n return result;\n }\n\n // Due to data caching, flush calls can produce more than one TransmuxerResult (hence the Array type)\n flush(\n chunkMeta: ChunkMetadata,\n ): TransmuxerResult[] | Promise<TransmuxerResult[]> {\n const stats = chunkMeta.transmuxing;\n stats.executeStart = now();\n\n const { decrypter, currentTransmuxState, decryptionPromise } = this;\n\n if (decryptionPromise) {\n // Upon resolution, the decryption promise calls push() and returns its TransmuxerResult up the stack. Therefore\n // only flushing is required for async decryption\n return decryptionPromise.then(() => {\n return this.flush(chunkMeta);\n });\n }\n\n const transmuxResults: TransmuxerResult[] = [];\n const { timeOffset } = currentTransmuxState;\n if (decrypter) {\n // The decrypter may have data cached, which needs to be demuxed. In this case we'll have two TransmuxResults\n // This happens in the case that we receive only 1 push call for a segment (either for non-progressive downloads,\n // or for progressive downloads with small segments)\n const decryptedData = decrypter.flush();\n if (decryptedData) {\n // Push always returns a TransmuxerResult if decryptdata is null\n transmuxResults.push(\n this.push(decryptedData, null, chunkMeta) as TransmuxerResult,\n );\n }\n }\n\n const { demuxer, remuxer } = this;\n if (!demuxer || !remuxer) {\n // If probing failed, then Hls.js has been given content its not able to handle\n stats.executeEnd = now();\n return [emptyResult(chunkMeta)];\n }\n\n const demuxResultOrPromise = demuxer.flush(timeOffset);\n if (isPromise(demuxResultOrPromise)) {\n // Decrypt final SAMPLE-AES samples\n return demuxResultOrPromise.then((demuxResult) => {\n this.flushRemux(transmuxResults, demuxResult, chunkMeta);\n return transmuxResults;\n });\n }\n\n this.flushRemux(transmuxResults, demuxResultOrPromise, chunkMeta);\n return transmuxResults;\n }\n\n private flushRemux(\n transmuxResults: TransmuxerResult[],\n demuxResult: DemuxerResult,\n chunkMeta: ChunkMetadata,\n ) {\n const { audioTrack, videoTrack, id3Track, textTrack } = demuxResult;\n const { accurateTimeOffset, timeOffset } = this.currentTransmuxState;\n logger.log(\n `[transmuxer.ts]: Flushed fragment ${chunkMeta.sn}${\n chunkMeta.part > -1 ? ' p: ' + chunkMeta.part : ''\n } of level ${chunkMeta.level}`,\n );\n const remuxResult = this.remuxer!.remux(\n audioTrack,\n videoTrack,\n id3Track,\n textTrack,\n timeOffset,\n accurateTimeOffset,\n true,\n this.id,\n );\n transmuxResults.push({\n remuxResult,\n chunkMeta,\n });\n\n chunkMeta.transmuxing.executeEnd = now();\n }\n\n resetInitialTimestamp(defaultInitPts: RationalTimestamp | null) {\n const { demuxer, remuxer } = this;\n if (!demuxer || !remuxer) {\n return;\n }\n demuxer.resetTimeStamp(defaultInitPts);\n remuxer.resetTimeStamp(defaultInitPts);\n }\n\n resetContiguity() {\n const { demuxer, remuxer } = this;\n if (!demuxer || !remuxer) {\n return;\n }\n demuxer.resetContiguity();\n remuxer.resetNextTimestamp();\n }\n\n resetInitSegment(\n initSegmentData: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n decryptdata: DecryptData | null,\n ) {\n const { demuxer, remuxer } = this;\n if (!demuxer || !remuxer) {\n return;\n }\n demuxer.resetInitSegment(\n initSegmentData,\n audioCodec,\n videoCodec,\n trackDuration,\n );\n remuxer.resetInitSegment(\n initSegmentData,\n audioCodec,\n videoCodec,\n decryptdata,\n );\n }\n\n destroy(): void {\n if (this.demuxer) {\n this.demuxer.destroy();\n this.demuxer = undefined;\n }\n if (this.remuxer) {\n this.remuxer.destroy();\n this.remuxer = undefined;\n }\n }\n\n private transmux(\n data: Uint8Array,\n keyData: KeyData | null,\n timeOffset: number,\n accurateTimeOffset: boolean,\n chunkMeta: ChunkMetadata,\n ): TransmuxerResult | Promise<TransmuxerResult> {\n let result: TransmuxerResult | Promise<TransmuxerResult>;\n if (keyData && keyData.method === 'SAMPLE-AES') {\n result = this.transmuxSampleAes(\n data,\n keyData,\n timeOffset,\n accurateTimeOffset,\n chunkMeta,\n );\n } else {\n result = this.transmuxUnencrypted(\n data,\n timeOffset,\n accurateTimeOffset,\n chunkMeta,\n );\n }\n return result;\n }\n\n private transmuxUnencrypted(\n data: Uint8Array,\n timeOffset: number,\n accurateTimeOffset: boolean,\n chunkMeta: ChunkMetadata,\n ): TransmuxerResult {\n const { audioTrack, videoTrack, id3Track, textTrack } = (\n this.demuxer as Demuxer\n ).demux(data, timeOffset, false, !this.config.progressive);\n const remuxResult = this.remuxer!.remux(\n audioTrack,\n videoTrack,\n id3Track,\n textTrack,\n timeOffset,\n accurateTimeOffset,\n false,\n this.id,\n );\n return {\n remuxResult,\n chunkMeta,\n };\n }\n\n private transmuxSampleAes(\n data: Uint8Array,\n decryptData: KeyData,\n timeOffset: number,\n accurateTimeOffset: boolean,\n chunkMeta: ChunkMetadata,\n ): Promise<TransmuxerResult> {\n return (this.demuxer as Demuxer)\n .demuxSampleAes(data, decryptData, timeOffset)\n .then((demuxResult) => {\n const remuxResult = this.remuxer!.remux(\n demuxResult.audioTrack,\n demuxResult.videoTrack,\n demuxResult.id3Track,\n demuxResult.textTrack,\n timeOffset,\n accurateTimeOffset,\n false,\n this.id,\n );\n return {\n remuxResult,\n chunkMeta,\n };\n });\n }\n\n private configureTransmuxer(data: Uint8Array): void | Error {\n const { config, observer, typeSupported, vendor } = this;\n // probe for content type\n let mux;\n for (let i = 0, len = muxConfig.length; i < len; i++) {\n if (muxConfig[i].demux?.probe(data)) {\n mux = muxConfig[i];\n break;\n }\n }\n if (!mux) {\n return new Error('Failed to find demuxer by probing fragment data');\n }\n // so let's check that current remuxer and demuxer are still valid\n const demuxer = this.demuxer;\n const remuxer = this.remuxer;\n const Remuxer: MuxConfig['remux'] = mux.remux;\n const Demuxer: MuxConfig['demux'] = mux.demux;\n if (!remuxer || !(remuxer instanceof Remuxer)) {\n this.remuxer = new Remuxer(observer, config, typeSupported, vendor);\n }\n if (!demuxer || !(demuxer instanceof Demuxer)) {\n this.demuxer = new Demuxer(observer, config, typeSupported);\n this.probe = Demuxer.probe;\n }\n }\n\n private needsProbing(discontinuity: boolean, trackSwitch: boolean): boolean {\n // in case of continuity change, or track switch\n // we might switch from content type (AAC container to TS container, or TS to fmp4 for example)\n return !this.demuxer || !this.remuxer || discontinuity || trackSwitch;\n }\n\n private getDecrypter(): Decrypter {\n let decrypter = this.decrypter;\n if (!decrypter) {\n decrypter = this.decrypter = new Decrypter(this.config);\n }\n return decrypter;\n }\n}\n\nfunction getEncryptionType(\n data: Uint8Array,\n decryptData: DecryptData | null,\n): KeyData | null {\n let encryptionType: KeyData | null = null;\n if (\n data.byteLength > 0 &&\n decryptData?.key != null &&\n decryptData.iv !== null &&\n decryptData.method != null\n ) {\n encryptionType = decryptData as KeyData;\n }\n return encryptionType;\n}\n\nconst emptyResult = (chunkMeta): TransmuxerResult => ({\n remuxResult: {},\n chunkMeta,\n});\n\nexport function isPromise<T>(p: Promise<T> | any): p is Promise<T> {\n return 'then' in p && p.then instanceof Function;\n}\n\nexport class TransmuxConfig {\n public audioCodec?: string;\n public videoCodec?: string;\n public initSegmentData?: Uint8Array;\n public duration: number;\n public defaultInitPts: RationalTimestamp | null;\n\n constructor(\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n initSegmentData: Uint8Array | undefined,\n duration: number,\n defaultInitPts?: RationalTimestamp,\n ) {\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this.initSegmentData = initSegmentData;\n this.duration = duration;\n this.defaultInitPts = defaultInitPts || null;\n }\n}\n\nexport class TransmuxState {\n public discontinuity: boolean;\n public contiguous: boolean;\n public accurateTimeOffset: boolean;\n public trackSwitch: boolean;\n public timeOffset: number;\n public initSegmentChange: boolean;\n\n constructor(\n discontinuity: boolean,\n contiguous: boolean,\n accurateTimeOffset: boolean,\n trackSwitch: boolean,\n timeOffset: number,\n initSegmentChange: boolean,\n ) {\n this.discontinuity = discontinuity;\n this.contiguous = contiguous;\n this.accurateTimeOffset = accurateTimeOffset;\n this.trackSwitch = trackSwitch;\n this.timeOffset = timeOffset;\n this.initSegmentChange = initSegmentChange;\n }\n}\n","import {\n flushTextTrackMetadataCueSamples,\n flushTextTrackUserdataCueSamples,\n} from './mp4-remuxer';\nimport {\n InitData,\n InitDataTrack,\n patchEncyptionData,\n} from '../utils/mp4-tools';\nimport {\n getDuration,\n getStartDTS,\n offsetStartDTS,\n parseInitSegment,\n} from '../utils/mp4-tools';\nimport { ElementaryStreamTypes } from '../loader/fragment';\nimport { logger } from '../utils/logger';\nimport { getCodecCompatibleName } from '../utils/codecs';\nimport type { TrackSet } from '../types/track';\nimport type {\n InitSegmentData,\n RemuxedTrack,\n Remuxer,\n RemuxerResult,\n} from '../types/remuxer';\nimport type {\n DemuxedAudioTrack,\n DemuxedMetadataTrack,\n DemuxedUserdataTrack,\n PassthroughTrack,\n} from '../types/demuxer';\nimport type { DecryptData } from '../loader/level-key';\nimport type { RationalTimestamp } from '../utils/timescale-conversion';\n\nclass PassThroughRemuxer implements Remuxer {\n private emitInitSegment: boolean = false;\n private audioCodec?: string;\n private videoCodec?: string;\n private initData?: InitData;\n private initPTS: RationalTimestamp | null = null;\n private initTracks?: TrackSet;\n private lastEndTime: number | null = null;\n\n public destroy() {}\n\n public resetTimeStamp(defaultInitPTS: RationalTimestamp | null) {\n this.initPTS = defaultInitPTS;\n this.lastEndTime = null;\n }\n\n public resetNextTimestamp() {\n this.lastEndTime = null;\n }\n\n public resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n decryptdata: DecryptData | null,\n ) {\n this.audioCodec = audioCodec;\n this.videoCodec = videoCodec;\n this.generateInitSegment(patchEncyptionData(initSegment, decryptdata));\n this.emitInitSegment = true;\n }\n\n private generateInitSegment(initSegment: Uint8Array | undefined): void {\n let { audioCodec, videoCodec } = this;\n if (!initSegment?.byteLength) {\n this.initTracks = undefined;\n this.initData = undefined;\n return;\n }\n const initData = (this.initData = parseInitSegment(initSegment));\n\n // Get codec from initSegment or fallback to default\n if (initData.audio) {\n audioCodec = getParsedTrackCodec(\n initData.audio,\n ElementaryStreamTypes.AUDIO,\n );\n }\n\n if (initData.video) {\n videoCodec = getParsedTrackCodec(\n initData.video,\n ElementaryStreamTypes.VIDEO,\n );\n }\n\n const tracks: TrackSet = {};\n if (initData.audio && initData.video) {\n tracks.audiovideo = {\n container: 'video/mp4',\n codec: audioCodec + ',' + videoCodec,\n initSegment,\n id: 'main',\n };\n } else if (initData.audio) {\n tracks.audio = {\n container: 'audio/mp4',\n codec: audioCodec,\n initSegment,\n id: 'audio',\n };\n } else if (initData.video) {\n tracks.video = {\n container: 'video/mp4',\n codec: videoCodec,\n initSegment,\n id: 'main',\n };\n } else {\n logger.warn(\n '[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes.',\n );\n }\n this.initTracks = tracks;\n }\n\n public remux(\n audioTrack: DemuxedAudioTrack,\n videoTrack: PassthroughTrack,\n id3Track: DemuxedMetadataTrack,\n textTrack: DemuxedUserdataTrack,\n timeOffset: number,\n accurateTimeOffset: boolean,\n ): RemuxerResult {\n let { initPTS, lastEndTime } = this;\n const result: RemuxerResult = {\n audio: undefined,\n video: undefined,\n text: textTrack,\n id3: id3Track,\n initSegment: undefined,\n };\n\n // If we haven't yet set a lastEndDTS, or it was reset, set it to the provided timeOffset. We want to use the\n // lastEndDTS over timeOffset whenever possible; during progressive playback, the media source will not update\n // the media duration (which is what timeOffset is provided as) before we need to process the next chunk.\n if (!Number.isFinite(lastEndTime!)) {\n lastEndTime = this.lastEndTime = timeOffset || 0;\n }\n\n // The binary segment data is added to the videoTrack in the mp4demuxer. We don't check to see if the data is only\n // audio or video (or both); adding it to video was an arbitrary choice.\n const data = videoTrack.samples;\n if (!data?.length) {\n return result;\n }\n\n const initSegment: InitSegmentData = {\n initPTS: undefined,\n timescale: 1,\n };\n let initData = this.initData;\n if (!initData?.length) {\n this.generateInitSegment(data);\n initData = this.initData;\n }\n if (!initData?.length) {\n // We can't remux if the initSegment could not be generated\n logger.warn('[passthrough-remuxer.ts]: Failed to generate initSegment.');\n return result;\n }\n if (this.emitInitSegment) {\n initSegment.tracks = this.initTracks as TrackSet;\n this.emitInitSegment = false;\n }\n\n const duration = getDuration(data, initData);\n const startDTS = getStartDTS(initData, data);\n const decodeTime = startDTS === null ? timeOffset : startDTS;\n if (\n isInvalidInitPts(initPTS, decodeTime, timeOffset, duration) ||\n (initSegment.timescale !== initPTS.timescale && accurateTimeOffset)\n ) {\n initSegment.initPTS = decodeTime - timeOffset;\n if (initPTS && initPTS.timescale === 1) {\n logger.warn(\n `Adjusting initPTS by ${initSegment.initPTS - initPTS.baseTime}`,\n );\n }\n this.initPTS = initPTS = {\n baseTime: initSegment.initPTS,\n timescale: 1,\n };\n }\n\n const startTime = audioTrack\n ? decodeTime - initPTS.baseTime / initPTS.timescale\n : (lastEndTime as number);\n const endTime = startTime + duration;\n offsetStartDTS(initData, data, initPTS.baseTime / initPTS.timescale);\n\n if (duration > 0) {\n this.lastEndTime = endTime;\n } else {\n logger.warn('Duration parsed from mp4 should be greater than zero');\n this.resetNextTimestamp();\n }\n\n const hasAudio = !!initData.audio;\n const hasVideo = !!initData.video;\n\n let type: any = '';\n if (hasAudio) {\n type += 'audio';\n }\n\n if (hasVideo) {\n type += 'video';\n }\n\n const track: RemuxedTrack = {\n data1: data,\n startPTS: startTime,\n startDTS: startTime,\n endPTS: endTime,\n endDTS: endTime,\n type,\n hasAudio,\n hasVideo,\n nb: 1,\n dropped: 0,\n };\n\n result.audio = track.type === 'audio' ? track : undefined;\n result.video = track.type !== 'audio' ? track : undefined;\n result.initSegment = initSegment;\n result.id3 = flushTextTrackMetadataCueSamples(\n id3Track,\n timeOffset,\n initPTS,\n initPTS,\n );\n\n if (textTrack.samples.length) {\n result.text = flushTextTrackUserdataCueSamples(\n textTrack,\n timeOffset,\n initPTS,\n );\n }\n\n return result;\n }\n}\n\nfunction isInvalidInitPts(\n initPTS: RationalTimestamp | null,\n startDTS: number,\n timeOffset: number,\n duration: number,\n): initPTS is null {\n if (initPTS === null) {\n return true;\n }\n // InitPTS is invalid when distance from program would be more than segment duration or a minimum of one second\n const minDuration = Math.max(duration, 1);\n const startTime = startDTS - initPTS.baseTime / initPTS.timescale;\n return Math.abs(startTime - timeOffset) > minDuration;\n}\n\nfunction getParsedTrackCodec(\n track: InitDataTrack,\n type: ElementaryStreamTypes.AUDIO | ElementaryStreamTypes.VIDEO,\n): string {\n const parsedCodec = track?.codec;\n if (parsedCodec && parsedCodec.length > 4) {\n return parsedCodec;\n }\n if (type === ElementaryStreamTypes.AUDIO) {\n if (\n parsedCodec === 'ec-3' ||\n parsedCodec === 'ac-3' ||\n parsedCodec === 'alac'\n ) {\n return parsedCodec;\n }\n if (parsedCodec === 'fLaC' || parsedCodec === 'Opus') {\n // Opting not to get `preferManagedMediaSource` from player config for isSupported() check for simplicity\n const preferManagedMediaSource = false;\n return getCodecCompatibleName(parsedCodec, preferManagedMediaSource);\n }\n const result = 'mp4a.40.5';\n logger.info(\n `Parsed audio codec \"${parsedCodec}\" or audio object type not handled. Using \"${result}\"`,\n );\n return result;\n }\n // Provide defaults based on codec type\n // This allows for some playback of some fmp4 playlists without CODECS defined in manifest\n logger.warn(`Unhandled video codec \"${parsedCodec}\"`);\n if (parsedCodec === 'hvc1' || parsedCodec === 'hev1') {\n return 'hvc1.1.6.L120.90';\n }\n if (parsedCodec === 'av01') {\n return 'av01.0.04M.08';\n }\n return 'avc1.42e01e';\n}\nexport default PassThroughRemuxer;\n","/**\n * AAC demuxer\n */\nimport BaseAudioDemuxer from './base-audio-demuxer';\nimport * as ADTS from './adts';\nimport * as MpegAudio from './mpegaudio';\nimport { logger } from '../../utils/logger';\nimport * as ID3 from '../id3';\nimport type { HlsEventEmitter } from '../../events';\nimport type { HlsConfig } from '../../config';\n\nclass AACDemuxer extends BaseAudioDemuxer {\n private readonly observer: HlsEventEmitter;\n private readonly config: HlsConfig;\n\n constructor(observer, config) {\n super();\n this.observer = observer;\n this.config = config;\n }\n\n resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n ) {\n super.resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration);\n this._audioTrack = {\n container: 'audio/adts',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n segmentCodec: 'aac',\n samples: [],\n manifestCodec: audioCodec,\n duration: trackDuration,\n inputTimeScale: 90000,\n dropped: 0,\n };\n }\n\n // Source for probe info - https://wiki.multimedia.cx/index.php?title=ADTS\n static probe(data: Uint8Array | undefined): boolean {\n if (!data) {\n return false;\n }\n\n // Check for the ADTS sync word\n // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n // More info https://wiki.multimedia.cx/index.php?title=ADTS\n const id3Data = ID3.getID3Data(data, 0);\n let offset = id3Data?.length || 0;\n\n if (MpegAudio.probe(data, offset)) {\n return false;\n }\n\n for (let length = data.length; offset < length; offset++) {\n if (ADTS.probe(data, offset)) {\n logger.log('ADTS sync word found !');\n return true;\n }\n }\n return false;\n }\n\n canParse(data, offset) {\n return ADTS.canParse(data, offset);\n }\n\n appendFrame(track, data, offset) {\n ADTS.initTrackConfig(\n track,\n this.observer,\n data,\n offset,\n track.manifestCodec,\n );\n const frame = ADTS.appendFrame(\n track,\n data,\n offset,\n this.basePTS as number,\n this.frameIndex,\n );\n if (frame && frame.missing === 0) {\n return frame;\n }\n }\n}\n\nexport default AACDemuxer;\n","/**\n * MP3 demuxer\n */\nimport BaseAudioDemuxer from './base-audio-demuxer';\nimport { getID3Data, getTimeStamp } from '../id3';\nimport { getAudioBSID } from './dolby';\nimport { logger } from '../../utils/logger';\nimport * as MpegAudio from './mpegaudio';\n\nclass MP3Demuxer extends BaseAudioDemuxer {\n resetInitSegment(\n initSegment: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n trackDuration: number,\n ) {\n super.resetInitSegment(initSegment, audioCodec, videoCodec, trackDuration);\n this._audioTrack = {\n container: 'audio/mpeg',\n type: 'audio',\n id: 2,\n pid: -1,\n sequenceNumber: 0,\n segmentCodec: 'mp3',\n samples: [],\n manifestCodec: audioCodec,\n duration: trackDuration,\n inputTimeScale: 90000,\n dropped: 0,\n };\n }\n\n static probe(data: Uint8Array | undefined): boolean {\n if (!data) {\n return false;\n }\n\n // check if data contains ID3 timestamp and MPEG sync word\n // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n // More info http://www.mp3-tech.org/programmer/frame_header.html\n const id3Data = getID3Data(data, 0);\n let offset = id3Data?.length || 0;\n\n // Check for ac-3|ec-3 sync bytes and return false if present\n if (\n id3Data &&\n data[offset] === 0x0b &&\n data[offset + 1] === 0x77 &&\n getTimeStamp(id3Data) !== undefined &&\n // check the bsid to confirm ac-3 or ec-3 (not mp3)\n getAudioBSID(data, offset) <= 16\n ) {\n return false;\n }\n\n for (let length = data.length; offset < length; offset++) {\n if (MpegAudio.probe(data, offset)) {\n logger.log('MPEG Audio sync word found !');\n return true;\n }\n }\n return false;\n }\n\n canParse(data, offset) {\n return MpegAudio.canParse(data, offset);\n }\n\n appendFrame(track, data, offset) {\n if (this.basePTS === null) {\n return;\n }\n return MpegAudio.appendFrame(\n track,\n data,\n offset,\n this.basePTS,\n this.frameIndex,\n );\n }\n}\n\nexport default MP3Demuxer;\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","import {\n WorkerContext,\n hasUMDWorker,\n injectWorker,\n loadWorker,\n} from './inject-worker';\nimport { Events } from '../events';\nimport Transmuxer, {\n TransmuxConfig,\n TransmuxState,\n isPromise,\n} from '../demux/transmuxer';\nimport { logger } from '../utils/logger';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { getMediaSource } from '../utils/mediasource-helper';\nimport { EventEmitter } from 'eventemitter3';\nimport { Fragment, Part } from '../loader/fragment';\nimport type { ChunkMetadata, TransmuxerResult } from '../types/transmuxer';\nimport type Hls from '../hls';\nimport type { HlsEventEmitter, HlsListeners } from '../events';\nimport type { PlaylistLevelType } from '../types/loader';\nimport type { TypeSupported } from './tsdemuxer';\nimport type { RationalTimestamp } from '../utils/timescale-conversion';\n\nexport default class TransmuxerInterface {\n public error: Error | null = null;\n private hls: Hls;\n private id: PlaylistLevelType;\n private observer: HlsEventEmitter;\n private frag: Fragment | null = null;\n private part: Part | null = null;\n private useWorker: boolean;\n private workerContext: WorkerContext | null = null;\n private onwmsg?: (\n event: MessageEvent<{ event: string; data?: any } | null>,\n ) => void;\n private transmuxer: Transmuxer | null = null;\n private onTransmuxComplete: (transmuxResult: TransmuxerResult) => void;\n private onFlush: (chunkMeta: ChunkMetadata) => void;\n\n constructor(\n hls: Hls,\n id: PlaylistLevelType,\n onTransmuxComplete: (transmuxResult: TransmuxerResult) => void,\n onFlush: (chunkMeta: ChunkMetadata) => void,\n ) {\n const config = hls.config;\n this.hls = hls;\n this.id = id;\n this.useWorker = !!config.enableWorker;\n this.onTransmuxComplete = onTransmuxComplete;\n this.onFlush = onFlush;\n\n const forwardMessage = (ev, data) => {\n data = data || {};\n data.frag = this.frag;\n data.id = this.id;\n if (ev === Events.ERROR) {\n this.error = data.error;\n }\n this.hls.trigger(ev, data);\n };\n\n // forward events to main thread\n this.observer = new EventEmitter() as HlsEventEmitter;\n this.observer.on(Events.FRAG_DECRYPTED, forwardMessage);\n this.observer.on(Events.ERROR, forwardMessage);\n\n const MediaSource = getMediaSource(config.preferManagedMediaSource) || {\n isTypeSupported: () => false,\n };\n const m2tsTypeSupported: TypeSupported = {\n mpeg: MediaSource.isTypeSupported('audio/mpeg'),\n mp3: MediaSource.isTypeSupported('audio/mp4; codecs=\"mp3\"'),\n ac3: __USE_M2TS_ADVANCED_CODECS__\n ? MediaSource.isTypeSupported('audio/mp4; codecs=\"ac-3\"')\n : false,\n };\n\n if (this.useWorker && typeof Worker !== 'undefined') {\n const canCreateWorker = config.workerPath || hasUMDWorker();\n if (canCreateWorker) {\n try {\n if (config.workerPath) {\n logger.log(`loading Web Worker ${config.workerPath} for \"${id}\"`);\n this.workerContext = loadWorker(config.workerPath);\n } else {\n logger.log(`injecting Web Worker for \"${id}\"`);\n this.workerContext = injectWorker();\n }\n this.onwmsg = (event) => this.onWorkerMessage(event);\n const { worker } = this.workerContext;\n worker.addEventListener('message', this.onwmsg);\n worker.onerror = (event) => {\n const error = new Error(\n `${event.message} (${event.filename}:${event.lineno})`,\n );\n config.enableWorker = false;\n logger.warn(`Error in \"${id}\" Web Worker, fallback to inline`);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.INTERNAL_EXCEPTION,\n fatal: false,\n event: 'demuxerWorker',\n error,\n });\n };\n worker.postMessage({\n cmd: 'init',\n typeSupported: m2tsTypeSupported,\n vendor: '',\n id: id,\n config: JSON.stringify(config),\n });\n } catch (err) {\n logger.warn(\n `Error setting up \"${id}\" Web Worker, fallback to inline`,\n err,\n );\n this.resetWorker();\n this.error = null;\n this.transmuxer = new Transmuxer(\n this.observer,\n m2tsTypeSupported,\n config,\n '',\n id,\n );\n }\n return;\n }\n }\n\n this.transmuxer = new Transmuxer(\n this.observer,\n m2tsTypeSupported,\n config,\n '',\n id,\n );\n }\n\n resetWorker() {\n if (this.workerContext) {\n const { worker, objectURL } = this.workerContext;\n if (objectURL) {\n // revoke the Object URL that was used to create transmuxer worker, so as not to leak it\n self.URL.revokeObjectURL(objectURL);\n }\n worker.removeEventListener('message', this.onwmsg as any);\n worker.onerror = null;\n worker.terminate();\n this.workerContext = null;\n }\n }\n\n destroy() {\n if (this.workerContext) {\n this.resetWorker();\n this.onwmsg = undefined;\n } else {\n const transmuxer = this.transmuxer;\n if (transmuxer) {\n transmuxer.destroy();\n this.transmuxer = null;\n }\n }\n const observer = this.observer;\n if (observer) {\n observer.removeAllListeners();\n }\n this.frag = null;\n // @ts-ignore\n this.observer = null;\n // @ts-ignore\n this.hls = null;\n }\n\n push(\n data: ArrayBuffer,\n initSegmentData: Uint8Array | undefined,\n audioCodec: string | undefined,\n videoCodec: string | undefined,\n frag: Fragment,\n part: Part | null,\n duration: number,\n accurateTimeOffset: boolean,\n chunkMeta: ChunkMetadata,\n defaultInitPTS?: RationalTimestamp,\n ) {\n chunkMeta.transmuxing.start = self.performance.now();\n const { transmuxer } = this;\n const timeOffset = part ? part.start : frag.start;\n // TODO: push \"clear-lead\" decrypt data for unencrypted fragments in streams with encrypted ones\n const decryptdata = frag.decryptdata;\n const lastFrag = this.frag;\n\n const discontinuity = !(lastFrag && frag.cc === lastFrag.cc);\n const trackSwitch = !(lastFrag && chunkMeta.level === lastFrag.level);\n const snDiff = lastFrag ? chunkMeta.sn - (lastFrag.sn as number) : -1;\n const partDiff = this.part ? chunkMeta.part - this.part.index : -1;\n const progressive =\n snDiff === 0 &&\n chunkMeta.id > 1 &&\n chunkMeta.id === lastFrag?.stats.chunkCount;\n const contiguous =\n !trackSwitch &&\n (snDiff === 1 ||\n (snDiff === 0 && (partDiff === 1 || (progressive && partDiff <= 0))));\n const now = self.performance.now();\n\n if (trackSwitch || snDiff || frag.stats.parsing.start === 0) {\n frag.stats.parsing.start = now;\n }\n if (part && (partDiff || !contiguous)) {\n part.stats.parsing.start = now;\n }\n const initSegmentChange = !(\n lastFrag && frag.initSegment?.url === lastFrag.initSegment?.url\n );\n const state = new TransmuxState(\n discontinuity,\n contiguous,\n accurateTimeOffset,\n trackSwitch,\n timeOffset,\n initSegmentChange,\n );\n if (!contiguous || discontinuity || initSegmentChange) {\n logger.log(`[transmuxer-interface, ${frag.type}]: Starting new transmux session for sn: ${chunkMeta.sn} p: ${chunkMeta.part} level: ${chunkMeta.level} id: ${chunkMeta.id}\n discontinuity: ${discontinuity}\n trackSwitch: ${trackSwitch}\n contiguous: ${contiguous}\n accurateTimeOffset: ${accurateTimeOffset}\n timeOffset: ${timeOffset}\n initSegmentChange: ${initSegmentChange}`);\n const config = new TransmuxConfig(\n audioCodec,\n videoCodec,\n initSegmentData,\n duration,\n defaultInitPTS,\n );\n this.configureTransmuxer(config);\n }\n\n this.frag = frag;\n this.part = part;\n\n // Frags with sn of 'initSegment' are not transmuxed\n if (this.workerContext) {\n // post fragment payload as transferable objects for ArrayBuffer (no copy)\n this.workerContext.worker.postMessage(\n {\n cmd: 'demux',\n data,\n decryptdata,\n chunkMeta,\n state,\n },\n data instanceof ArrayBuffer ? [data] : [],\n );\n } else if (transmuxer) {\n const transmuxResult = transmuxer.push(\n data,\n decryptdata,\n chunkMeta,\n state,\n );\n if (isPromise(transmuxResult)) {\n transmuxer.async = true;\n transmuxResult\n .then((data) => {\n this.handleTransmuxComplete(data);\n })\n .catch((error) => {\n this.transmuxerError(\n error,\n chunkMeta,\n 'transmuxer-interface push error',\n );\n });\n } else {\n transmuxer.async = false;\n this.handleTransmuxComplete(transmuxResult as TransmuxerResult);\n }\n }\n }\n\n flush(chunkMeta: ChunkMetadata) {\n chunkMeta.transmuxing.start = self.performance.now();\n const { transmuxer } = this;\n if (this.workerContext) {\n 1;\n this.workerContext.worker.postMessage({\n cmd: 'flush',\n chunkMeta,\n });\n } else if (transmuxer) {\n let transmuxResult = transmuxer.flush(chunkMeta);\n const asyncFlush = isPromise(transmuxResult);\n if (asyncFlush || transmuxer.async) {\n if (!isPromise(transmuxResult)) {\n transmuxResult = Promise.resolve(transmuxResult);\n }\n transmuxResult\n .then((data) => {\n this.handleFlushResult(data, chunkMeta);\n })\n .catch((error) => {\n this.transmuxerError(\n error,\n chunkMeta,\n 'transmuxer-interface flush error',\n );\n });\n } else {\n this.handleFlushResult(\n transmuxResult as Array<TransmuxerResult>,\n chunkMeta,\n );\n }\n }\n }\n\n private transmuxerError(\n error: Error,\n chunkMeta: ChunkMetadata,\n reason: string,\n ) {\n if (!this.hls) {\n return;\n }\n this.error = error;\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_PARSING_ERROR,\n chunkMeta,\n frag: this.frag || undefined,\n fatal: false,\n error,\n err: error,\n reason,\n });\n }\n\n private handleFlushResult(\n results: Array<TransmuxerResult>,\n chunkMeta: ChunkMetadata,\n ) {\n results.forEach((result) => {\n this.handleTransmuxComplete(result);\n });\n this.onFlush(chunkMeta);\n }\n\n private onWorkerMessage(\n event: MessageEvent<{ event: string; data?: any } | null>,\n ) {\n const data = event.data;\n if (!data?.event) {\n logger.warn(\n `worker message received with no ${data ? 'event name' : 'data'}`,\n );\n return;\n }\n const hls = this.hls;\n if (!this.hls) {\n return;\n }\n switch (data.event) {\n case 'init': {\n const objectURL = this.workerContext?.objectURL;\n if (objectURL) {\n // revoke the Object URL that was used to create transmuxer worker, so as not to leak it\n self.URL.revokeObjectURL(objectURL);\n }\n break;\n }\n\n case 'transmuxComplete': {\n this.handleTransmuxComplete(data.data);\n break;\n }\n\n case 'flush': {\n this.onFlush(data.data);\n break;\n }\n\n // pass logs from the worker thread to the main logger\n case 'workerLog':\n if (logger[data.data.logType]) {\n logger[data.data.logType](data.data.message);\n }\n break;\n\n default: {\n data.data = data.data || {};\n data.data.frag = this.frag;\n data.data.id = this.id;\n hls.trigger(data.event as keyof HlsListeners, data.data);\n break;\n }\n }\n }\n\n private configureTransmuxer(config: TransmuxConfig) {\n const { transmuxer } = this;\n if (this.workerContext) {\n this.workerContext.worker.postMessage({\n cmd: 'configure',\n config,\n });\n } else if (transmuxer) {\n transmuxer.configure(config);\n }\n }\n\n private handleTransmuxComplete(result: TransmuxerResult) {\n result.chunkMeta.transmuxing.end = self.performance.now();\n this.onTransmuxComplete(result);\n }\n}\n","// ensure the worker ends up in the bundle\n// If the worker should not be included this gets aliased to empty.js\nimport './transmuxer-worker';\n\nexport function hasUMDWorker(): boolean {\n return typeof __HLS_WORKER_BUNDLE__ === 'function';\n}\n\nexport type WorkerContext = {\n worker: Worker;\n objectURL?: string;\n scriptURL?: string;\n};\n\nexport function injectWorker(): WorkerContext {\n const blob = new self.Blob(\n [\n `var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`,\n ],\n {\n type: 'text/javascript',\n },\n );\n const objectURL = self.URL.createObjectURL(blob);\n const worker = new self.Worker(objectURL);\n\n return {\n worker,\n objectURL,\n };\n}\n\nexport function loadWorker(path: string): WorkerContext {\n const scriptURL = new self.URL(path, self.location.href).href;\n const worker = new self.Worker(scriptURL);\n\n return {\n worker,\n scriptURL,\n };\n}\n","import type { Level } from '../types/level';\nimport type { MediaAttributes, MediaPlaylist } from '../types/media-playlist';\n\nexport function subtitleOptionsIdentical(\n trackList1: MediaPlaylist[] | Level[],\n trackList2: MediaPlaylist[],\n): boolean {\n if (trackList1.length !== trackList2.length) {\n return false;\n }\n for (let i = 0; i < trackList1.length; i++) {\n if (\n !mediaAttributesIdentical(\n trackList1[i].attrs as MediaAttributes,\n trackList2[i].attrs,\n )\n ) {\n return false;\n }\n }\n return true;\n}\n\nexport function mediaAttributesIdentical(\n attrs1: MediaAttributes,\n attrs2: MediaAttributes,\n customAttributes?: string[],\n): boolean {\n // Media options with the same rendition ID must be bit identical\n const stableRenditionId = attrs1['STABLE-RENDITION-ID'];\n if (stableRenditionId && !customAttributes) {\n return stableRenditionId === attrs2['STABLE-RENDITION-ID'];\n }\n // When rendition ID is not present, compare attributes\n return !(\n customAttributes || [\n 'LANGUAGE',\n 'NAME',\n 'CHARACTERISTICS',\n 'AUTOSELECT',\n 'DEFAULT',\n 'FORCED',\n 'ASSOC-LANGUAGE',\n ]\n ).some(\n (subtitleAttribute) =>\n attrs1[subtitleAttribute] !== attrs2[subtitleAttribute],\n );\n}\n\nexport function subtitleTrackMatchesTextTrack(\n subtitleTrack: Pick<MediaPlaylist, 'name' | 'lang' | 'attrs'>,\n textTrack: TextTrack,\n) {\n return (\n textTrack.label.toLowerCase() === subtitleTrack.name.toLowerCase() &&\n (!textTrack.language ||\n textTrack.language.toLowerCase() ===\n (subtitleTrack.lang || '').toLowerCase())\n );\n}\n","import { Events } from '../events';\nimport { Bufferable, BufferHelper } from '../utils/buffer-helper';\nimport { findFragmentByPTS } from './fragment-finders';\nimport { alignMediaPlaylistByPDT } from '../utils/discontinuities';\nimport { addSliding } from '../utils/level-helper';\nimport { FragmentState } from './fragment-tracker';\nimport BaseStreamController, { State } from './base-stream-controller';\nimport { PlaylistLevelType } from '../types/loader';\nimport { Level } from '../types/level';\nimport { subtitleOptionsIdentical } from '../utils/media-option-attributes';\nimport { ErrorDetails, ErrorTypes } from '../errors';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\nimport type { FragmentTracker } from './fragment-tracker';\nimport type KeyLoader from '../loader/key-loader';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { Fragment } from '../loader/fragment';\nimport type {\n ErrorData,\n FragLoadedData,\n SubtitleFragProcessed,\n SubtitleTracksUpdatedData,\n TrackLoadedData,\n TrackSwitchedData,\n BufferFlushingData,\n LevelLoadedData,\n FragBufferedData,\n} from '../types/events';\n\nconst TICK_INTERVAL = 500; // how often to tick in ms\n\ninterface TimeRange {\n start: number;\n end: number;\n}\n\nexport class SubtitleStreamController\n extends BaseStreamController\n implements NetworkComponentAPI\n{\n private currentTrackId: number = -1;\n private tracksBuffered: Array<TimeRange[]> = [];\n private mainDetails: LevelDetails | null = null;\n\n constructor(\n hls: Hls,\n fragmentTracker: FragmentTracker,\n keyLoader: KeyLoader,\n ) {\n super(\n hls,\n fragmentTracker,\n keyLoader,\n '[subtitle-stream-controller]',\n PlaylistLevelType.SUBTITLE,\n );\n this._registerListeners();\n }\n\n protected onHandlerDestroying() {\n this._unregisterListeners();\n super.onHandlerDestroying();\n this.mainDetails = null;\n }\n\n private _registerListeners() {\n const { hls } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.on(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);\n hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.on(Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n private _unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.off(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);\n hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.off(Events.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n startLoad(startPosition: number) {\n this.stopLoad();\n this.state = State.IDLE;\n\n this.setInterval(TICK_INTERVAL);\n\n this.nextLoadPosition =\n this.startPosition =\n this.lastCurrentTime =\n startPosition;\n\n this.tick();\n }\n\n onManifestLoading() {\n this.mainDetails = null;\n this.fragmentTracker.removeAllFragments();\n }\n\n onMediaDetaching(): void {\n this.tracksBuffered = [];\n super.onMediaDetaching();\n }\n\n onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData) {\n this.mainDetails = data.details;\n }\n\n onSubtitleFragProcessed(\n event: Events.SUBTITLE_FRAG_PROCESSED,\n data: SubtitleFragProcessed,\n ) {\n const { frag, success } = data;\n this.fragPrevious = frag;\n this.state = State.IDLE;\n if (!success) {\n return;\n }\n\n const buffered = this.tracksBuffered[this.currentTrackId];\n if (!buffered) {\n return;\n }\n\n // Create/update a buffered array matching the interface used by BufferHelper.bufferedInfo\n // so we can re-use the logic used to detect how much has been buffered\n let timeRange: TimeRange | undefined;\n const fragStart = frag.start;\n for (let i = 0; i < buffered.length; i++) {\n if (fragStart >= buffered[i].start && fragStart <= buffered[i].end) {\n timeRange = buffered[i];\n break;\n }\n }\n\n const fragEnd = frag.start + frag.duration;\n if (timeRange) {\n timeRange.end = fragEnd;\n } else {\n timeRange = {\n start: fragStart,\n end: fragEnd,\n };\n buffered.push(timeRange);\n }\n this.fragmentTracker.fragBuffered(frag);\n this.fragBufferedComplete(frag, null);\n }\n\n onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData) {\n const { startOffset, endOffset } = data;\n if (startOffset === 0 && endOffset !== Number.POSITIVE_INFINITY) {\n const endOffsetSubtitles = endOffset - 1;\n if (endOffsetSubtitles <= 0) {\n return;\n }\n data.endOffsetSubtitles = Math.max(0, endOffsetSubtitles);\n this.tracksBuffered.forEach((buffered) => {\n for (let i = 0; i < buffered.length; ) {\n if (buffered[i].end <= endOffsetSubtitles) {\n buffered.shift();\n continue;\n } else if (buffered[i].start < endOffsetSubtitles) {\n buffered[i].start = endOffsetSubtitles;\n } else {\n break;\n }\n i++;\n }\n });\n this.fragmentTracker.removeFragmentsInRange(\n startOffset,\n endOffsetSubtitles,\n PlaylistLevelType.SUBTITLE,\n );\n }\n }\n\n onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData) {\n if (!this.loadedmetadata && data.frag.type === PlaylistLevelType.MAIN) {\n if (this.media?.buffered.length) {\n this.loadedmetadata = true;\n }\n }\n }\n\n // If something goes wrong, proceed to next frag, if we were processing one.\n onError(event: Events.ERROR, data: ErrorData) {\n const frag = data.frag;\n\n if (frag?.type === PlaylistLevelType.SUBTITLE) {\n if (data.details === ErrorDetails.FRAG_GAP) {\n this.fragmentTracker.fragBuffered(frag, true);\n }\n if (this.fragCurrent) {\n this.fragCurrent.abortRequests();\n }\n if (this.state !== State.STOPPED) {\n this.state = State.IDLE;\n }\n }\n }\n\n // Got all new subtitle levels.\n onSubtitleTracksUpdated(\n event: Events.SUBTITLE_TRACKS_UPDATED,\n { subtitleTracks }: SubtitleTracksUpdatedData,\n ) {\n if (this.levels && subtitleOptionsIdentical(this.levels, subtitleTracks)) {\n this.levels = subtitleTracks.map(\n (mediaPlaylist) => new Level(mediaPlaylist),\n );\n return;\n }\n this.tracksBuffered = [];\n this.levels = subtitleTracks.map((mediaPlaylist) => {\n const level = new Level(mediaPlaylist);\n this.tracksBuffered[level.id] = [];\n return level;\n });\n this.fragmentTracker.removeFragmentsInRange(\n 0,\n Number.POSITIVE_INFINITY,\n PlaylistLevelType.SUBTITLE,\n );\n this.fragPrevious = null;\n this.mediaBuffer = null;\n }\n\n onSubtitleTrackSwitch(\n event: Events.SUBTITLE_TRACK_SWITCH,\n data: TrackSwitchedData,\n ) {\n this.currentTrackId = data.id;\n\n if (!this.levels?.length || this.currentTrackId === -1) {\n this.clearInterval();\n return;\n }\n\n // Check if track has the necessary details to load fragments\n const currentTrack = this.levels[this.currentTrackId];\n if (currentTrack?.details) {\n this.mediaBuffer = this.mediaBufferTimeRanges;\n } else {\n this.mediaBuffer = null;\n }\n if (currentTrack) {\n this.setInterval(TICK_INTERVAL);\n }\n }\n\n // Got a new set of subtitle fragments.\n onSubtitleTrackLoaded(\n event: Events.SUBTITLE_TRACK_LOADED,\n data: TrackLoadedData,\n ) {\n const { currentTrackId, levels } = this;\n const { details: newDetails, id: trackId } = data;\n if (!levels) {\n this.warn(`Subtitle tracks were reset while loading level ${trackId}`);\n return;\n }\n const track: Level = levels[trackId];\n if (trackId >= levels.length || !track) {\n return;\n }\n this.log(\n `Subtitle track ${trackId} loaded [${newDetails.startSN},${\n newDetails.endSN\n }]${\n newDetails.lastPartSn\n ? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]`\n : ''\n },duration:${newDetails.totalduration}`,\n );\n this.mediaBuffer = this.mediaBufferTimeRanges;\n let sliding = 0;\n if (newDetails.live || track.details?.live) {\n const mainDetails = this.mainDetails;\n if (newDetails.deltaUpdateFailed || !mainDetails) {\n return;\n }\n const mainSlidingStartFragment = mainDetails.fragments[0];\n if (!track.details) {\n if (newDetails.hasProgramDateTime && mainDetails.hasProgramDateTime) {\n alignMediaPlaylistByPDT(newDetails, mainDetails);\n sliding = newDetails.fragments[0].start;\n } else if (mainSlidingStartFragment) {\n // line up live playlist with main so that fragments in range are loaded\n sliding = mainSlidingStartFragment.start;\n addSliding(newDetails, sliding);\n }\n } else {\n sliding = this.alignPlaylists(\n newDetails,\n track.details,\n this.levelLastLoaded?.details,\n );\n if (sliding === 0 && mainSlidingStartFragment) {\n // realign with main when there is no overlap with last refresh\n sliding = mainSlidingStartFragment.start;\n addSliding(newDetails, sliding);\n }\n }\n }\n track.details = newDetails;\n this.levelLastLoaded = track;\n\n if (trackId !== currentTrackId) {\n return;\n }\n\n if (!this.startFragRequested && (this.mainDetails || !newDetails.live)) {\n this.setStartPosition(this.mainDetails || newDetails, sliding);\n }\n\n // trigger handler right now\n this.tick();\n\n // If playlist is misaligned because of bad PDT or drift, delete details to resync with main on reload\n if (\n newDetails.live &&\n !this.fragCurrent &&\n this.media &&\n this.state === State.IDLE\n ) {\n const foundFrag = findFragmentByPTS(\n null,\n newDetails.fragments,\n this.media.currentTime,\n 0,\n );\n if (!foundFrag) {\n this.warn('Subtitle playlist not aligned with playback');\n track.details = undefined;\n }\n }\n }\n\n _handleFragmentLoadComplete(fragLoadedData: FragLoadedData) {\n const { frag, payload } = fragLoadedData;\n const decryptData = frag.decryptdata;\n const hls = this.hls;\n\n if (this.fragContextChanged(frag)) {\n return;\n }\n // check to see if the payload needs to be decrypted\n if (\n payload &&\n payload.byteLength > 0 &&\n decryptData?.key &&\n decryptData.iv &&\n decryptData.method === 'AES-128'\n ) {\n const startTime = performance.now();\n // decrypt the subtitles\n this.decrypter\n .decrypt(\n new Uint8Array(payload),\n decryptData.key.buffer,\n decryptData.iv.buffer,\n )\n .catch((err) => {\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.FRAG_DECRYPT_ERROR,\n fatal: false,\n error: err,\n reason: err.message,\n frag,\n });\n throw err;\n })\n .then((decryptedData) => {\n const endTime = performance.now();\n hls.trigger(Events.FRAG_DECRYPTED, {\n frag,\n payload: decryptedData,\n stats: {\n tstart: startTime,\n tdecrypt: endTime,\n },\n });\n })\n .catch((err) => {\n this.warn(`${err.name}: ${err.message}`);\n this.state = State.IDLE;\n });\n }\n }\n\n doTick() {\n if (!this.media) {\n this.state = State.IDLE;\n return;\n }\n\n if (this.state === State.IDLE) {\n const { currentTrackId, levels } = this;\n const track = levels?.[currentTrackId];\n if (!track || !levels.length || !track.details) {\n return;\n }\n const { config } = this;\n const currentTime = this.getLoadPosition();\n const bufferedInfo = BufferHelper.bufferedInfo(\n this.tracksBuffered[this.currentTrackId] || [],\n currentTime,\n config.maxBufferHole,\n );\n const { end: targetBufferTime, len: bufferLen } = bufferedInfo;\n\n const mainBufferInfo = this.getFwdBufferInfo(\n this.media,\n PlaylistLevelType.MAIN,\n );\n const trackDetails = track.details as LevelDetails;\n const maxBufLen =\n this.getMaxBufferLength(mainBufferInfo?.len) +\n trackDetails.levelTargetDuration;\n\n if (bufferLen > maxBufLen) {\n return;\n }\n const fragments = trackDetails.fragments;\n const fragLen = fragments.length;\n const end = trackDetails.edge;\n\n let foundFrag: Fragment | null = null;\n const fragPrevious = this.fragPrevious;\n if (targetBufferTime < end) {\n const tolerance = config.maxFragLookUpTolerance;\n const lookupTolerance =\n targetBufferTime > end - tolerance ? 0 : tolerance;\n foundFrag = findFragmentByPTS(\n fragPrevious,\n fragments,\n Math.max(fragments[0].start, targetBufferTime),\n lookupTolerance,\n );\n if (\n !foundFrag &&\n fragPrevious &&\n fragPrevious.start < fragments[0].start\n ) {\n foundFrag = fragments[0];\n }\n } else {\n foundFrag = fragments[fragLen - 1];\n }\n if (!foundFrag) {\n return;\n }\n foundFrag = this.mapToInitFragWhenRequired(foundFrag) as Fragment;\n if (foundFrag.sn !== 'initSegment') {\n // Load earlier fragment in same discontinuity to make up for misaligned playlists and cues that extend beyond end of segment\n const curSNIdx = foundFrag.sn - trackDetails.startSN;\n const prevFrag = fragments[curSNIdx - 1];\n if (\n prevFrag &&\n prevFrag.cc === foundFrag.cc &&\n this.fragmentTracker.getState(prevFrag) === FragmentState.NOT_LOADED\n ) {\n foundFrag = prevFrag;\n }\n }\n if (\n this.fragmentTracker.getState(foundFrag) === FragmentState.NOT_LOADED\n ) {\n // only load if fragment is not loaded\n this.loadFragment(foundFrag, track, targetBufferTime);\n }\n }\n }\n\n protected getMaxBufferLength(mainBufferLength?: number): number {\n const maxConfigBuffer = super.getMaxBufferLength();\n if (!mainBufferLength) {\n return maxConfigBuffer;\n }\n return Math.max(maxConfigBuffer, mainBufferLength);\n }\n\n protected loadFragment(\n frag: Fragment,\n level: Level,\n targetBufferTime: number,\n ) {\n this.fragCurrent = frag;\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag, level);\n } else {\n this.startFragRequested = true;\n super.loadFragment(frag, level, targetBufferTime);\n }\n }\n\n get mediaBufferTimeRanges(): Bufferable {\n return new BufferableInstance(\n this.tracksBuffered[this.currentTrackId] || [],\n );\n }\n}\n\nclass BufferableInstance implements Bufferable {\n public readonly buffered: TimeRanges;\n\n constructor(timeranges: TimeRange[]) {\n const getRange = (\n name: 'start' | 'end',\n index: number,\n length: number,\n ): number => {\n index = index >>> 0;\n if (index > length - 1) {\n throw new DOMException(\n `Failed to execute '${name}' on 'TimeRanges': The index provided (${index}) is greater than the maximum bound (${length})`,\n );\n }\n return timeranges[index][name];\n };\n this.buffered = {\n get length() {\n return timeranges.length;\n },\n end(index: number): number {\n return getRange('end', index, timeranges.length);\n },\n start(index: number): number {\n return getRange('start', index, timeranges.length);\n },\n };\n }\n}\n","import { logger } from '../utils/logger';\nimport type {\n BufferOperation,\n BufferOperationQueues,\n SourceBuffers,\n SourceBufferName,\n} from '../types/buffer';\n\nexport default class BufferOperationQueue {\n private buffers: SourceBuffers;\n private queues: BufferOperationQueues = {\n video: [],\n audio: [],\n audiovideo: [],\n };\n\n constructor(sourceBufferReference: SourceBuffers) {\n this.buffers = sourceBufferReference;\n }\n\n public append(\n operation: BufferOperation,\n type: SourceBufferName,\n pending?: boolean,\n ) {\n const queue = this.queues[type];\n queue.push(operation);\n if (queue.length === 1 && !pending) {\n this.executeNext(type);\n }\n }\n\n public insertAbort(operation: BufferOperation, type: SourceBufferName) {\n const queue = this.queues[type];\n queue.unshift(operation);\n this.executeNext(type);\n }\n\n public appendBlocker(type: SourceBufferName): Promise<{}> {\n let execute;\n const promise: Promise<{}> = new Promise((resolve) => {\n execute = resolve;\n });\n const operation: BufferOperation = {\n execute,\n onStart: () => {},\n onComplete: () => {},\n onError: () => {},\n };\n\n this.append(operation, type);\n return promise;\n }\n\n public executeNext(type: SourceBufferName) {\n const queue = this.queues[type];\n if (queue.length) {\n const operation: BufferOperation = queue[0];\n try {\n // Operations are expected to result in an 'updateend' event being fired. If not, the queue will lock. Operations\n // which do not end with this event must call _onSBUpdateEnd manually\n operation.execute();\n } catch (error) {\n logger.warn(\n `[buffer-operation-queue]: Exception executing \"${type}\" SourceBuffer operation: ${error}`,\n );\n operation.onError(error);\n\n // Only shift the current operation off, otherwise the updateend handler will do this for us\n const sb = this.buffers[type];\n if (!sb?.updating) {\n this.shiftAndExecuteNext(type);\n }\n }\n }\n }\n\n public shiftAndExecuteNext(type: SourceBufferName) {\n this.queues[type].shift();\n this.executeNext(type);\n }\n\n public current(type: SourceBufferName) {\n return this.queues[type][0];\n }\n}\n","import { Events } from '../events';\nimport { logger } from '../utils/logger';\nimport { ErrorDetails, ErrorTypes } from '../errors';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport {\n getCodecCompatibleName,\n pickMostCompleteCodecName,\n} from '../utils/codecs';\nimport {\n getMediaSource,\n isManagedMediaSource,\n} from '../utils/mediasource-helper';\nimport { ElementaryStreamTypes } from '../loader/fragment';\nimport type { TrackSet } from '../types/track';\nimport BufferOperationQueue from './buffer-operation-queue';\nimport {\n BufferOperation,\n SourceBuffers,\n SourceBufferName,\n SourceBufferListeners,\n} from '../types/buffer';\nimport type {\n LevelUpdatedData,\n BufferAppendingData,\n MediaAttachingData,\n ManifestParsedData,\n BufferCodecsData,\n BufferEOSData,\n BufferFlushingData,\n FragParsedData,\n FragChangedData,\n ErrorData,\n} from '../types/events';\nimport type { ComponentAPI } from '../types/component-api';\nimport type { ChunkMetadata } from '../types/transmuxer';\nimport type Hls from '../hls';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { HlsConfig } from '../config';\n\nconst VIDEO_CODEC_PROFILE_REPLACE =\n /(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\\.[^.,]+)+/;\n\ninterface BufferedChangeEvent extends Event {\n readonly addedRanges?: TimeRanges;\n readonly removedRanges?: TimeRanges;\n}\n\nexport default class BufferController implements ComponentAPI {\n // The level details used to determine duration, target-duration and live\n private details: LevelDetails | null = null;\n // cache the self generated object url to detect hijack of video tag\n private _objectUrl: string | null = null;\n // A queue of buffer operations which require the SourceBuffer to not be updating upon execution\n private operationQueue!: BufferOperationQueue;\n // References to event listeners for each SourceBuffer, so that they can be referenced for event removal\n private listeners!: SourceBufferListeners;\n\n private hls: Hls;\n\n // The number of BUFFER_CODEC events received before any sourceBuffers are created\n public bufferCodecEventsExpected: number = 0;\n\n // The total number of BUFFER_CODEC events received\n private _bufferCodecEventsTotal: number = 0;\n\n // A reference to the attached media element\n public media: HTMLMediaElement | null = null;\n\n // A reference to the active media source\n public mediaSource: MediaSource | null = null;\n\n // Last MP3 audio chunk appended\n private lastMpegAudioChunk: ChunkMetadata | null = null;\n\n private appendSource: boolean;\n\n // counters\n public appendErrors = {\n audio: 0,\n video: 0,\n audiovideo: 0,\n };\n\n public tracks: TrackSet = {};\n public pendingTracks: TrackSet = {};\n public sourceBuffer!: SourceBuffers;\n\n protected log: (msg: any) => void;\n protected warn: (msg: any, obj?: any) => void;\n protected error: (msg: any, obj?: any) => void;\n\n constructor(hls: Hls) {\n this.hls = hls;\n const logPrefix = '[buffer-controller]';\n this.appendSource = isManagedMediaSource(\n getMediaSource(hls.config.preferManagedMediaSource),\n );\n this.log = logger.log.bind(logger, logPrefix);\n this.warn = logger.warn.bind(logger, logPrefix);\n this.error = logger.error.bind(logger, logPrefix);\n this._initSourceBuffer();\n this.registerListeners();\n }\n\n public hasSourceTypes(): boolean {\n return (\n this.getSourceBufferTypes().length > 0 ||\n Object.keys(this.pendingTracks).length > 0\n );\n }\n\n public destroy() {\n this.unregisterListeners();\n this.details = null;\n this.lastMpegAudioChunk = null;\n // @ts-ignore\n this.hls = null;\n }\n\n protected registerListeners() {\n const { hls } = this;\n hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.on(Events.BUFFER_APPENDING, this.onBufferAppending, this);\n hls.on(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.on(Events.BUFFER_EOS, this.onBufferEos, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n hls.on(Events.FRAG_PARSED, this.onFragParsed, this);\n hls.on(Events.FRAG_CHANGED, this.onFragChanged, this);\n }\n\n protected unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.off(Events.BUFFER_APPENDING, this.onBufferAppending, this);\n hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.off(Events.BUFFER_EOS, this.onBufferEos, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);\n hls.off(Events.FRAG_PARSED, this.onFragParsed, this);\n hls.off(Events.FRAG_CHANGED, this.onFragChanged, this);\n }\n\n private _initSourceBuffer() {\n this.sourceBuffer = {};\n this.operationQueue = new BufferOperationQueue(this.sourceBuffer);\n this.listeners = {\n audio: [],\n video: [],\n audiovideo: [],\n };\n this.appendErrors = {\n audio: 0,\n video: 0,\n audiovideo: 0,\n };\n this.lastMpegAudioChunk = null;\n }\n\n private onManifestLoading() {\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = 0;\n this.details = null;\n }\n\n protected onManifestParsed(\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ) {\n // in case of alt audio 2 BUFFER_CODECS events will be triggered, one per stream controller\n // sourcebuffers will be created all at once when the expected nb of tracks will be reached\n // in case alt audio is not used, only one BUFFER_CODEC event will be fired from main stream controller\n // it will contain the expected nb of source buffers, no need to compute it\n let codecEvents: number = 2;\n if ((data.audio && !data.video) || !data.altAudio || !__USE_ALT_AUDIO__) {\n codecEvents = 1;\n }\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = codecEvents;\n this.log(`${this.bufferCodecEventsExpected} bufferCodec event(s) expected`);\n }\n\n protected onMediaAttaching(\n event: Events.MEDIA_ATTACHING,\n data: MediaAttachingData,\n ) {\n const media = (this.media = data.media);\n const MediaSource = getMediaSource(this.appendSource);\n\n if (media && MediaSource) {\n const ms = (this.mediaSource = new MediaSource());\n this.log(`created media source: ${ms.constructor?.name}`);\n // MediaSource listeners are arrow functions with a lexical scope, and do not need to be bound\n ms.addEventListener('sourceopen', this._onMediaSourceOpen);\n ms.addEventListener('sourceended', this._onMediaSourceEnded);\n ms.addEventListener('sourceclose', this._onMediaSourceClose);\n if (this.appendSource) {\n ms.addEventListener('startstreaming', this._onStartStreaming);\n ms.addEventListener('endstreaming', this._onEndStreaming);\n }\n\n // cache the locally generated object url\n const objectUrl = (this._objectUrl = self.URL.createObjectURL(ms));\n // link video and media Source\n if (this.appendSource) {\n try {\n media.removeAttribute('src');\n // ManagedMediaSource will not open without disableRemotePlayback set to false or source alternatives\n const MMS = (self as any).ManagedMediaSource;\n media.disableRemotePlayback =\n media.disableRemotePlayback || (MMS && ms instanceof MMS);\n removeSourceChildren(media);\n addSource(media, objectUrl);\n media.load();\n } catch (error) {\n media.src = objectUrl;\n }\n } else {\n media.src = objectUrl;\n }\n media.addEventListener('emptied', this._onMediaEmptied);\n }\n }\n private _onEndStreaming = (event) => {\n if (!this.hls) {\n return;\n }\n this.hls.pauseBuffering();\n };\n private _onStartStreaming = (event) => {\n if (!this.hls) {\n return;\n }\n this.hls.resumeBuffering();\n };\n\n protected onMediaDetaching() {\n const { media, mediaSource, _objectUrl } = this;\n if (mediaSource) {\n this.log('media source detaching');\n if (mediaSource.readyState === 'open') {\n try {\n // endOfStream could trigger exception if any sourcebuffer is in updating state\n // we don't really care about checking sourcebuffer state here,\n // as we are anyway detaching the MediaSource\n // let's just avoid this exception to propagate\n mediaSource.endOfStream();\n } catch (err) {\n this.warn(\n `onMediaDetaching: ${err.message} while calling endOfStream`,\n );\n }\n }\n // Clean up the SourceBuffers by invoking onBufferReset\n this.onBufferReset();\n mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);\n mediaSource.removeEventListener('sourceended', this._onMediaSourceEnded);\n mediaSource.removeEventListener('sourceclose', this._onMediaSourceClose);\n if (this.appendSource) {\n mediaSource.removeEventListener(\n 'startstreaming',\n this._onStartStreaming,\n );\n mediaSource.removeEventListener('endstreaming', this._onEndStreaming);\n }\n\n // Detach properly the MediaSource from the HTMLMediaElement as\n // suggested in https://github.com/w3c/media-source/issues/53.\n if (media) {\n media.removeEventListener('emptied', this._onMediaEmptied);\n if (_objectUrl) {\n self.URL.revokeObjectURL(_objectUrl);\n }\n\n // clean up video tag src only if it's our own url. some external libraries might\n // hijack the video tag and change its 'src' without destroying the Hls instance first\n if (this.mediaSrc === _objectUrl) {\n media.removeAttribute('src');\n if (this.appendSource) {\n removeSourceChildren(media);\n }\n media.load();\n } else {\n this.warn(\n 'media|source.src was changed by a third party - skip cleanup',\n );\n }\n }\n\n this.mediaSource = null;\n this.media = null;\n this._objectUrl = null;\n this.bufferCodecEventsExpected = this._bufferCodecEventsTotal;\n this.pendingTracks = {};\n this.tracks = {};\n }\n\n this.hls.trigger(Events.MEDIA_DETACHED, undefined);\n }\n\n protected onBufferReset() {\n this.getSourceBufferTypes().forEach((type) => {\n this.resetBuffer(type);\n });\n this._initSourceBuffer();\n this.hls.resumeBuffering();\n }\n\n private resetBuffer(type: SourceBufferName) {\n const sb = this.sourceBuffer[type];\n try {\n if (sb) {\n this.removeBufferListeners(type);\n // Synchronously remove the SB from the map before the next call in order to prevent an async function from\n // accessing it\n this.sourceBuffer[type] = undefined;\n if (this.mediaSource?.sourceBuffers.length) {\n this.mediaSource.removeSourceBuffer(sb);\n }\n }\n } catch (err) {\n this.warn(`onBufferReset ${type}`, err);\n }\n }\n\n protected onBufferCodecs(\n event: Events.BUFFER_CODECS,\n data: BufferCodecsData,\n ) {\n const sourceBufferCount = this.getSourceBufferTypes().length;\n const trackNames = Object.keys(data);\n trackNames.forEach((trackName) => {\n if (sourceBufferCount) {\n // check if SourceBuffer codec needs to change\n const track = this.tracks[trackName];\n if (track && typeof track.buffer.changeType === 'function') {\n const { id, codec, levelCodec, container, metadata } =\n data[trackName];\n const currentCodecFull = pickMostCompleteCodecName(\n track.codec,\n track.levelCodec,\n );\n const currentCodec = currentCodecFull?.replace(\n VIDEO_CODEC_PROFILE_REPLACE,\n '$1',\n );\n let trackCodec = pickMostCompleteCodecName(codec, levelCodec);\n const nextCodec = trackCodec?.replace(\n VIDEO_CODEC_PROFILE_REPLACE,\n '$1',\n );\n if (trackCodec && currentCodec !== nextCodec) {\n if (trackName.slice(0, 5) === 'audio') {\n trackCodec = getCodecCompatibleName(\n trackCodec,\n this.appendSource,\n );\n }\n const mimeType = `${container};codecs=${trackCodec}`;\n this.appendChangeType(trackName, mimeType);\n this.log(`switching codec ${currentCodecFull} to ${trackCodec}`);\n this.tracks[trackName] = {\n buffer: track.buffer,\n codec,\n container,\n levelCodec,\n metadata,\n id,\n };\n }\n }\n } else {\n // if source buffer(s) not created yet, appended buffer tracks in this.pendingTracks\n this.pendingTracks[trackName] = data[trackName];\n }\n });\n\n // if sourcebuffers already created, do nothing ...\n if (sourceBufferCount) {\n return;\n }\n\n const bufferCodecEventsExpected = Math.max(\n this.bufferCodecEventsExpected - 1,\n 0,\n );\n if (this.bufferCodecEventsExpected !== bufferCodecEventsExpected) {\n this.log(\n `${bufferCodecEventsExpected} bufferCodec event(s) expected ${trackNames.join(\n ',',\n )}`,\n );\n this.bufferCodecEventsExpected = bufferCodecEventsExpected;\n }\n if (this.mediaSource && this.mediaSource.readyState === 'open') {\n this.checkPendingTracks();\n }\n }\n\n protected appendChangeType(type, mimeType) {\n const { operationQueue } = this;\n const operation: BufferOperation = {\n execute: () => {\n const sb = this.sourceBuffer[type];\n if (sb) {\n this.log(`changing ${type} sourceBuffer type to ${mimeType}`);\n sb.changeType(mimeType);\n }\n operationQueue.shiftAndExecuteNext(type);\n },\n onStart: () => {},\n onComplete: () => {},\n onError: (error: Error) => {\n this.warn(`Failed to change ${type} SourceBuffer type`, error);\n },\n };\n\n operationQueue.append(operation, type, !!this.pendingTracks[type]);\n }\n\n protected onBufferAppending(\n event: Events.BUFFER_APPENDING,\n eventData: BufferAppendingData,\n ) {\n const { hls, operationQueue, tracks } = this;\n const { data, type, frag, part, chunkMeta } = eventData;\n const chunkStats = chunkMeta.buffering[type];\n\n const bufferAppendingStart = self.performance.now();\n chunkStats.start = bufferAppendingStart;\n const fragBuffering = frag.stats.buffering;\n const partBuffering = part ? part.stats.buffering : null;\n if (fragBuffering.start === 0) {\n fragBuffering.start = bufferAppendingStart;\n }\n if (partBuffering && partBuffering.start === 0) {\n partBuffering.start = bufferAppendingStart;\n }\n\n // TODO: Only update timestampOffset when audio/mpeg fragment or part is not contiguous with previously appended\n // Adjusting `SourceBuffer.timestampOffset` (desired point in the timeline where the next frames should be appended)\n // in Chrome browser when we detect MPEG audio container and time delta between level PTS and `SourceBuffer.timestampOffset`\n // is greater than 100ms (this is enough to handle seek for VOD or level change for LIVE videos).\n // More info here: https://github.com/video-dev/hls.js/issues/332#issuecomment-257986486\n const audioTrack = tracks.audio;\n let checkTimestampOffset = false;\n if (type === 'audio' && audioTrack?.container === 'audio/mpeg') {\n checkTimestampOffset =\n !this.lastMpegAudioChunk ||\n chunkMeta.id === 1 ||\n this.lastMpegAudioChunk.sn !== chunkMeta.sn;\n this.lastMpegAudioChunk = chunkMeta;\n }\n\n const fragStart = frag.start;\n const operation: BufferOperation = {\n execute: () => {\n chunkStats.executeStart = self.performance.now();\n if (checkTimestampOffset) {\n const sb = this.sourceBuffer[type];\n if (sb) {\n const delta = fragStart - sb.timestampOffset;\n if (Math.abs(delta) >= 0.1) {\n this.log(\n `Updating audio SourceBuffer timestampOffset to ${fragStart} (delta: ${delta}) sn: ${frag.sn})`,\n );\n sb.timestampOffset = fragStart;\n }\n }\n }\n this.appendExecutor(data, type);\n },\n onStart: () => {\n // logger.debug(`[buffer-controller]: ${type} SourceBuffer updatestart`);\n },\n onComplete: () => {\n // logger.debug(`[buffer-controller]: ${type} SourceBuffer updateend`);\n const end = self.performance.now();\n chunkStats.executeEnd = chunkStats.end = end;\n if (fragBuffering.first === 0) {\n fragBuffering.first = end;\n }\n if (partBuffering && partBuffering.first === 0) {\n partBuffering.first = end;\n }\n\n const { sourceBuffer } = this;\n const timeRanges = {};\n for (const type in sourceBuffer) {\n timeRanges[type] = BufferHelper.getBuffered(sourceBuffer[type]);\n }\n this.appendErrors[type] = 0;\n if (type === 'audio' || type === 'video') {\n this.appendErrors.audiovideo = 0;\n } else {\n this.appendErrors.audio = 0;\n this.appendErrors.video = 0;\n }\n this.hls.trigger(Events.BUFFER_APPENDED, {\n type,\n frag,\n part,\n chunkMeta,\n parent: frag.type,\n timeRanges,\n });\n },\n onError: (error: Error) => {\n // in case any error occured while appending, put back segment in segments table\n const event: ErrorData = {\n type: ErrorTypes.MEDIA_ERROR,\n parent: frag.type,\n details: ErrorDetails.BUFFER_APPEND_ERROR,\n sourceBufferName: type,\n frag,\n part,\n chunkMeta,\n error,\n err: error,\n fatal: false,\n };\n\n if ((error as DOMException).code === DOMException.QUOTA_EXCEEDED_ERR) {\n // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror\n // let's stop appending any segments, and report BUFFER_FULL_ERROR error\n event.details = ErrorDetails.BUFFER_FULL_ERROR;\n } else {\n const appendErrorCount = ++this.appendErrors[type];\n event.details = ErrorDetails.BUFFER_APPEND_ERROR;\n /* with UHD content, we could get loop of quota exceeded error until\n browser is able to evict some data from sourcebuffer. Retrying can help recover.\n */\n this.warn(\n `Failed ${appendErrorCount}/${hls.config.appendErrorMaxRetry} times to append segment in \"${type}\" sourceBuffer`,\n );\n if (appendErrorCount >= hls.config.appendErrorMaxRetry) {\n event.fatal = true;\n }\n }\n hls.trigger(Events.ERROR, event);\n },\n };\n operationQueue.append(operation, type, !!this.pendingTracks[type]);\n }\n\n protected onBufferFlushing(\n event: Events.BUFFER_FLUSHING,\n data: BufferFlushingData,\n ) {\n const { operationQueue } = this;\n const flushOperation = (type: SourceBufferName): BufferOperation => ({\n execute: this.removeExecutor.bind(\n this,\n type,\n data.startOffset,\n data.endOffset,\n ),\n onStart: () => {\n // logger.debug(`[buffer-controller]: Started flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);\n },\n onComplete: () => {\n // logger.debug(`[buffer-controller]: Finished flushing ${data.startOffset} -> ${data.endOffset} for ${type} Source Buffer`);\n this.hls.trigger(Events.BUFFER_FLUSHED, { type });\n },\n onError: (error: Error) => {\n this.warn(`Failed to remove from ${type} SourceBuffer`, error);\n },\n });\n\n if (data.type) {\n operationQueue.append(flushOperation(data.type), data.type);\n } else {\n this.getSourceBufferTypes().forEach((type: SourceBufferName) => {\n operationQueue.append(flushOperation(type), type);\n });\n }\n }\n\n protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData) {\n const { frag, part } = data;\n const buffersAppendedTo: Array<SourceBufferName> = [];\n const elementaryStreams = part\n ? part.elementaryStreams\n : frag.elementaryStreams;\n if (elementaryStreams[ElementaryStreamTypes.AUDIOVIDEO]) {\n buffersAppendedTo.push('audiovideo');\n } else {\n if (elementaryStreams[ElementaryStreamTypes.AUDIO]) {\n buffersAppendedTo.push('audio');\n }\n if (elementaryStreams[ElementaryStreamTypes.VIDEO]) {\n buffersAppendedTo.push('video');\n }\n }\n\n const onUnblocked = () => {\n const now = self.performance.now();\n frag.stats.buffering.end = now;\n if (part) {\n part.stats.buffering.end = now;\n }\n const stats = part ? part.stats : frag.stats;\n this.hls.trigger(Events.FRAG_BUFFERED, {\n frag,\n part,\n stats,\n id: frag.type,\n });\n };\n\n if (buffersAppendedTo.length === 0) {\n this.warn(\n `Fragments must have at least one ElementaryStreamType set. type: ${frag.type} level: ${frag.level} sn: ${frag.sn}`,\n );\n }\n\n this.blockBuffers(onUnblocked, buffersAppendedTo);\n }\n\n private onFragChanged(event: Events.FRAG_CHANGED, data: FragChangedData) {\n this.trimBuffers();\n }\n\n // on BUFFER_EOS mark matching sourcebuffer(s) as ended and trigger checkEos()\n // an undefined data.type will mark all buffers as EOS.\n protected onBufferEos(event: Events.BUFFER_EOS, data: BufferEOSData) {\n const ended = this.getSourceBufferTypes().reduce((acc, type) => {\n const sb = this.sourceBuffer[type];\n if (sb && (!data.type || data.type === type)) {\n sb.ending = true;\n if (!sb.ended) {\n sb.ended = true;\n this.log(`${type} sourceBuffer now EOS`);\n }\n }\n return acc && !!(!sb || sb.ended);\n }, true);\n\n if (ended) {\n this.log(`Queueing mediaSource.endOfStream()`);\n this.blockBuffers(() => {\n this.getSourceBufferTypes().forEach((type) => {\n const sb = this.sourceBuffer[type];\n if (sb) {\n sb.ending = false;\n }\n });\n const { mediaSource } = this;\n if (!mediaSource || mediaSource.readyState !== 'open') {\n if (mediaSource) {\n this.log(\n `Could not call mediaSource.endOfStream(). mediaSource.readyState: ${mediaSource.readyState}`,\n );\n }\n return;\n }\n this.log(`Calling mediaSource.endOfStream()`);\n // Allow this to throw and be caught by the enqueueing function\n mediaSource.endOfStream();\n });\n }\n }\n\n protected onLevelUpdated(\n event: Events.LEVEL_UPDATED,\n { details }: LevelUpdatedData,\n ) {\n if (!details.fragments.length) {\n return;\n }\n this.details = details;\n\n if (this.getSourceBufferTypes().length) {\n this.blockBuffers(this.updateMediaElementDuration.bind(this));\n } else {\n this.updateMediaElementDuration();\n }\n }\n\n trimBuffers() {\n const { hls, details, media } = this;\n if (!media || details === null) {\n return;\n }\n\n const sourceBufferTypes = this.getSourceBufferTypes();\n if (!sourceBufferTypes.length) {\n return;\n }\n\n const config: Readonly<HlsConfig> = hls.config;\n const currentTime = media.currentTime;\n const targetDuration = details.levelTargetDuration;\n\n // Support for deprecated liveBackBufferLength\n const backBufferLength =\n details.live && config.liveBackBufferLength !== null\n ? config.liveBackBufferLength\n : config.backBufferLength;\n\n if (Number.isFinite(backBufferLength) && backBufferLength > 0) {\n const maxBackBufferLength = Math.max(backBufferLength, targetDuration);\n const targetBackBufferPosition =\n Math.floor(currentTime / targetDuration) * targetDuration -\n maxBackBufferLength;\n\n this.flushBackBuffer(\n currentTime,\n targetDuration,\n targetBackBufferPosition,\n );\n }\n\n if (\n Number.isFinite(config.frontBufferFlushThreshold) &&\n config.frontBufferFlushThreshold > 0\n ) {\n const frontBufferLength = Math.max(\n config.maxBufferLength,\n config.frontBufferFlushThreshold,\n );\n\n const maxFrontBufferLength = Math.max(frontBufferLength, targetDuration);\n const targetFrontBufferPosition =\n Math.floor(currentTime / targetDuration) * targetDuration +\n maxFrontBufferLength;\n\n this.flushFrontBuffer(\n currentTime,\n targetDuration,\n targetFrontBufferPosition,\n );\n }\n }\n\n flushBackBuffer(\n currentTime: number,\n targetDuration: number,\n targetBackBufferPosition: number,\n ) {\n const { details, sourceBuffer } = this;\n const sourceBufferTypes = this.getSourceBufferTypes();\n\n sourceBufferTypes.forEach((type: SourceBufferName) => {\n const sb = sourceBuffer[type];\n if (sb) {\n const buffered = BufferHelper.getBuffered(sb);\n // when target buffer start exceeds actual buffer start\n if (\n buffered.length > 0 &&\n targetBackBufferPosition > buffered.start(0)\n ) {\n this.hls.trigger(Events.BACK_BUFFER_REACHED, {\n bufferEnd: targetBackBufferPosition,\n });\n\n // Support for deprecated event:\n if (details?.live) {\n this.hls.trigger(Events.LIVE_BACK_BUFFER_REACHED, {\n bufferEnd: targetBackBufferPosition,\n });\n } else if (\n sb.ended &&\n buffered.end(buffered.length - 1) - currentTime < targetDuration * 2\n ) {\n this.log(\n `Cannot flush ${type} back buffer while SourceBuffer is in ended state`,\n );\n return;\n }\n\n this.hls.trigger(Events.BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: targetBackBufferPosition,\n type,\n });\n }\n }\n });\n }\n\n flushFrontBuffer(\n currentTime: number,\n targetDuration: number,\n targetFrontBufferPosition: number,\n ) {\n const { sourceBuffer } = this;\n const sourceBufferTypes = this.getSourceBufferTypes();\n\n sourceBufferTypes.forEach((type: SourceBufferName) => {\n const sb = sourceBuffer[type];\n if (sb) {\n const buffered = BufferHelper.getBuffered(sb);\n const numBufferedRanges = buffered.length;\n // The buffer is either empty or contiguous\n if (numBufferedRanges < 2) {\n return;\n }\n const bufferStart = buffered.start(numBufferedRanges - 1);\n const bufferEnd = buffered.end(numBufferedRanges - 1);\n // No flush if we can tolerate the current buffer length or the current buffer range we would flush is contiguous with current position\n if (\n targetFrontBufferPosition > bufferStart ||\n (currentTime >= bufferStart && currentTime <= bufferEnd)\n ) {\n return;\n } else if (sb.ended && currentTime - bufferEnd < 2 * targetDuration) {\n this.log(\n `Cannot flush ${type} front buffer while SourceBuffer is in ended state`,\n );\n return;\n }\n\n this.hls.trigger(Events.BUFFER_FLUSHING, {\n startOffset: bufferStart,\n endOffset: Infinity,\n type,\n });\n }\n });\n }\n\n /**\n * Update Media Source duration to current level duration or override to Infinity if configuration parameter\n * 'liveDurationInfinity` is set to `true`\n * More details: https://github.com/video-dev/hls.js/issues/355\n */\n private updateMediaElementDuration() {\n if (\n !this.details ||\n !this.media ||\n !this.mediaSource ||\n this.mediaSource.readyState !== 'open'\n ) {\n return;\n }\n const { details, hls, media, mediaSource } = this;\n const levelDuration = details.fragments[0].start + details.totalduration;\n const mediaDuration = media.duration;\n const msDuration = Number.isFinite(mediaSource.duration)\n ? mediaSource.duration\n : 0;\n\n if (details.live && hls.config.liveDurationInfinity) {\n // Override duration to Infinity\n mediaSource.duration = Infinity;\n this.updateSeekableRange(details);\n } else if (\n (levelDuration > msDuration && levelDuration > mediaDuration) ||\n !Number.isFinite(mediaDuration)\n ) {\n // levelDuration was the last value we set.\n // not using mediaSource.duration as the browser may tweak this value\n // only update Media Source duration if its value increase, this is to avoid\n // flushing already buffered portion when switching between quality level\n this.log(`Updating Media Source duration to ${levelDuration.toFixed(3)}`);\n mediaSource.duration = levelDuration;\n }\n }\n\n updateSeekableRange(levelDetails) {\n const mediaSource = this.mediaSource;\n const fragments = levelDetails.fragments;\n const len = fragments.length;\n if (len && levelDetails.live && mediaSource?.setLiveSeekableRange) {\n const start = Math.max(0, fragments[0].start);\n const end = Math.max(start, start + levelDetails.totalduration);\n this.log(\n `Media Source duration is set to ${mediaSource.duration}. Setting seekable range to ${start}-${end}.`,\n );\n mediaSource.setLiveSeekableRange(start, end);\n }\n }\n\n protected checkPendingTracks() {\n const { bufferCodecEventsExpected, operationQueue, pendingTracks } = this;\n\n // Check if we've received all of the expected bufferCodec events. When none remain, create all the sourceBuffers at once.\n // This is important because the MSE spec allows implementations to throw QuotaExceededErrors if creating new sourceBuffers after\n // data has been appended to existing ones.\n // 2 tracks is the max (one for audio, one for video). If we've reach this max go ahead and create the buffers.\n const pendingTracksCount = Object.keys(pendingTracks).length;\n if (\n pendingTracksCount &&\n (!bufferCodecEventsExpected ||\n pendingTracksCount === 2 ||\n 'audiovideo' in pendingTracks)\n ) {\n // ok, let's create them now !\n this.createSourceBuffers(pendingTracks);\n this.pendingTracks = {};\n // append any pending segments now !\n const buffers = this.getSourceBufferTypes();\n if (buffers.length) {\n this.hls.trigger(Events.BUFFER_CREATED, { tracks: this.tracks });\n buffers.forEach((type: SourceBufferName) => {\n operationQueue.executeNext(type);\n });\n } else {\n const error = new Error(\n 'could not create source buffer for media codec(s)',\n );\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n error,\n reason: error.message,\n });\n }\n }\n }\n\n protected createSourceBuffers(tracks: TrackSet) {\n const { sourceBuffer, mediaSource } = this;\n if (!mediaSource) {\n throw Error('createSourceBuffers called when mediaSource was null');\n }\n for (const trackName in tracks) {\n if (!sourceBuffer[trackName]) {\n const track = tracks[trackName as keyof TrackSet];\n if (!track) {\n throw Error(\n `source buffer exists for track ${trackName}, however track does not`,\n );\n }\n // use levelCodec as first priority unless it contains multiple comma-separated codec values\n let codec =\n track.levelCodec?.indexOf(',') === -1\n ? track.levelCodec\n : track.codec;\n if (codec) {\n if (trackName.slice(0, 5) === 'audio') {\n codec = getCodecCompatibleName(codec, this.appendSource);\n }\n }\n const mimeType = `${track.container};codecs=${codec}`;\n this.log(`creating sourceBuffer(${mimeType})`);\n try {\n const sb = (sourceBuffer[trackName] =\n mediaSource.addSourceBuffer(mimeType));\n const sbName = trackName as SourceBufferName;\n this.addBufferListener(sbName, 'updatestart', this._onSBUpdateStart);\n this.addBufferListener(sbName, 'updateend', this._onSBUpdateEnd);\n this.addBufferListener(sbName, 'error', this._onSBUpdateError);\n // ManagedSourceBuffer bufferedchange event\n if (this.appendSource) {\n this.addBufferListener(\n sbName,\n 'bufferedchange',\n (type: SourceBufferName, event: BufferedChangeEvent) => {\n // If media was ejected check for a change. Added ranges are redundant with changes on 'updateend' event.\n const removedRanges = event.removedRanges;\n if (removedRanges?.length) {\n this.hls.trigger(Events.BUFFER_FLUSHED, {\n type: trackName as SourceBufferName,\n });\n }\n },\n );\n }\n\n this.tracks[trackName] = {\n buffer: sb,\n codec: codec,\n container: track.container,\n levelCodec: track.levelCodec,\n metadata: track.metadata,\n id: track.id,\n };\n } catch (err) {\n this.error(`error while trying to add sourceBuffer: ${err.message}`);\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_ADD_CODEC_ERROR,\n fatal: false,\n error: err,\n sourceBufferName: trackName as SourceBufferName,\n mimeType: mimeType,\n });\n }\n }\n }\n }\n\n // Keep as arrow functions so that we can directly reference these functions directly as event listeners\n private _onMediaSourceOpen = () => {\n const { media, mediaSource } = this;\n this.log('Media source opened');\n if (media) {\n media.removeEventListener('emptied', this._onMediaEmptied);\n this.updateMediaElementDuration();\n this.hls.trigger(Events.MEDIA_ATTACHED, {\n media,\n mediaSource: mediaSource as MediaSource,\n });\n }\n\n if (mediaSource) {\n // once received, don't listen anymore to sourceopen event\n mediaSource.removeEventListener('sourceopen', this._onMediaSourceOpen);\n }\n this.checkPendingTracks();\n };\n\n private _onMediaSourceClose = () => {\n this.log('Media source closed');\n };\n\n private _onMediaSourceEnded = () => {\n this.log('Media source ended');\n };\n\n private _onMediaEmptied = () => {\n const { mediaSrc, _objectUrl } = this;\n if (mediaSrc !== _objectUrl) {\n logger.error(\n `Media element src was set while attaching MediaSource (${_objectUrl} > ${mediaSrc})`,\n );\n }\n };\n\n private get mediaSrc(): string | undefined {\n const media = this.media?.querySelector?.('source') || this.media;\n return media?.src;\n }\n\n private _onSBUpdateStart(type: SourceBufferName) {\n const { operationQueue } = this;\n const operation = operationQueue.current(type);\n operation.onStart();\n }\n\n private _onSBUpdateEnd(type: SourceBufferName) {\n if (this.mediaSource?.readyState === 'closed') {\n this.resetBuffer(type);\n return;\n }\n const { operationQueue } = this;\n const operation = operationQueue.current(type);\n operation.onComplete();\n operationQueue.shiftAndExecuteNext(type);\n }\n\n private _onSBUpdateError(type: SourceBufferName, event: Event) {\n const error = new Error(\n `${type} SourceBuffer error. MediaSource readyState: ${this.mediaSource?.readyState}`,\n );\n this.error(`${error}`, event);\n // according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error\n // SourceBuffer errors are not necessarily fatal; if so, the HTMLMediaElement will fire an error event\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_APPENDING_ERROR,\n sourceBufferName: type,\n error,\n fatal: false,\n });\n // updateend is always fired after error, so we'll allow that to shift the current operation off of the queue\n const operation = this.operationQueue.current(type);\n if (operation) {\n operation.onError(error);\n }\n }\n\n // This method must result in an updateend event; if remove is not called, _onSBUpdateEnd must be called manually\n private removeExecutor(\n type: SourceBufferName,\n startOffset: number,\n endOffset: number,\n ) {\n const { media, mediaSource, operationQueue, sourceBuffer } = this;\n const sb = sourceBuffer[type];\n if (!media || !mediaSource || !sb) {\n this.warn(\n `Attempting to remove from the ${type} SourceBuffer, but it does not exist`,\n );\n operationQueue.shiftAndExecuteNext(type);\n return;\n }\n const mediaDuration = Number.isFinite(media.duration)\n ? media.duration\n : Infinity;\n const msDuration = Number.isFinite(mediaSource.duration)\n ? mediaSource.duration\n : Infinity;\n const removeStart = Math.max(0, startOffset);\n const removeEnd = Math.min(endOffset, mediaDuration, msDuration);\n if (removeEnd > removeStart && (!sb.ending || sb.ended)) {\n sb.ended = false;\n this.log(\n `Removing [${removeStart},${removeEnd}] from the ${type} SourceBuffer`,\n );\n sb.remove(removeStart, removeEnd);\n } else {\n // Cycle the queue\n operationQueue.shiftAndExecuteNext(type);\n }\n }\n\n // This method must result in an updateend event; if append is not called, _onSBUpdateEnd must be called manually\n private appendExecutor(data: Uint8Array, type: SourceBufferName) {\n const sb = this.sourceBuffer[type];\n if (!sb) {\n if (!this.pendingTracks[type]) {\n throw new Error(\n `Attempting to append to the ${type} SourceBuffer, but it does not exist`,\n );\n }\n return;\n }\n\n sb.ended = false;\n sb.appendBuffer(data);\n }\n\n // Enqueues an operation to each SourceBuffer queue which, upon execution, resolves a promise. When all promises\n // resolve, the onUnblocked function is executed. Functions calling this method do not need to unblock the queue\n // upon completion, since we already do it here\n private blockBuffers(\n onUnblocked: () => void,\n buffers: Array<SourceBufferName> = this.getSourceBufferTypes(),\n ) {\n if (!buffers.length) {\n this.log('Blocking operation requested, but no SourceBuffers exist');\n Promise.resolve().then(onUnblocked);\n return;\n }\n const { operationQueue } = this;\n\n // logger.debug(`[buffer-controller]: Blocking ${buffers} SourceBuffer`);\n const blockingOperations = buffers.map((type) =>\n operationQueue.appendBlocker(type as SourceBufferName),\n );\n Promise.all(blockingOperations).then(() => {\n // logger.debug(`[buffer-controller]: Blocking operation resolved; unblocking ${buffers} SourceBuffer`);\n onUnblocked();\n buffers.forEach((type) => {\n const sb = this.sourceBuffer[type];\n // Only cycle the queue if the SB is not updating. There's a bug in Chrome which sets the SB updating flag to\n // true when changing the MediaSource duration (https://bugs.chromium.org/p/chromium/issues/detail?id=959359&can=2&q=mediasource%20duration)\n // While this is a workaround, it's probably useful to have around\n if (!sb?.updating) {\n operationQueue.shiftAndExecuteNext(type);\n }\n });\n });\n }\n\n private getSourceBufferTypes(): Array<SourceBufferName> {\n return Object.keys(this.sourceBuffer) as Array<SourceBufferName>;\n }\n\n private addBufferListener(\n type: SourceBufferName,\n event: string,\n fn: Function,\n ) {\n const buffer = this.sourceBuffer[type];\n if (!buffer) {\n return;\n }\n const listener = fn.bind(this, type);\n this.listeners[type].push({ event, listener });\n buffer.addEventListener(event, listener);\n }\n\n private removeBufferListeners(type: SourceBufferName) {\n const buffer = this.sourceBuffer[type];\n if (!buffer) {\n return;\n }\n this.listeners[type].forEach((l) => {\n buffer.removeEventListener(l.event, l.listener);\n });\n }\n}\n\nfunction removeSourceChildren(node: HTMLElement) {\n const sourceChildren = node.querySelectorAll('source');\n [].slice.call(sourceChildren).forEach((source) => {\n node.removeChild(source);\n });\n}\n\nfunction addSource(media: HTMLMediaElement, url: string) {\n const source = self.document.createElement('source');\n source.type = 'video/mp4';\n source.src = url;\n media.appendChild(source);\n}\n","import OutputFilter from './output-filter';\nimport { logger } from '../utils/logger';\n\n/**\n *\n * This code was ported from the dash.js project at:\n * https://github.com/Dash-Industry-Forum/dash.js/blob/development/externals/cea608-parser.js\n * https://github.com/Dash-Industry-Forum/dash.js/commit/8269b26a761e0853bb21d78780ed945144ecdd4d#diff-71bc295a2d6b6b7093a1d3290d53a4b2\n *\n * The original copyright appears below:\n *\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2015-2016, DASH Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * 2. Neither the name of Dash Industry Forum nor the names of its\n * contributors may be used to endorse or promote products derived from this software\n * without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n * Exceptions from regular ASCII. CodePoints are mapped to UTF-16 codes\n */\n\nconst specialCea608CharsCodes = {\n 0x2a: 0xe1, // lowercase a, acute accent\n 0x5c: 0xe9, // lowercase e, acute accent\n 0x5e: 0xed, // lowercase i, acute accent\n 0x5f: 0xf3, // lowercase o, acute accent\n 0x60: 0xfa, // lowercase u, acute accent\n 0x7b: 0xe7, // lowercase c with cedilla\n 0x7c: 0xf7, // division symbol\n 0x7d: 0xd1, // uppercase N tilde\n 0x7e: 0xf1, // lowercase n tilde\n 0x7f: 0x2588, // Full block\n // THIS BLOCK INCLUDES THE 16 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x11 AND LOW BETWEEN 0x30 AND 0x3F\n // THIS MEANS THAT \\x50 MUST BE ADDED TO THE VALUES\n 0x80: 0xae, // Registered symbol (R)\n 0x81: 0xb0, // degree sign\n 0x82: 0xbd, // 1/2 symbol\n 0x83: 0xbf, // Inverted (open) question mark\n 0x84: 0x2122, // Trademark symbol (TM)\n 0x85: 0xa2, // Cents symbol\n 0x86: 0xa3, // Pounds sterling\n 0x87: 0x266a, // Music 8'th note\n 0x88: 0xe0, // lowercase a, grave accent\n 0x89: 0x20, // transparent space (regular)\n 0x8a: 0xe8, // lowercase e, grave accent\n 0x8b: 0xe2, // lowercase a, circumflex accent\n 0x8c: 0xea, // lowercase e, circumflex accent\n 0x8d: 0xee, // lowercase i, circumflex accent\n 0x8e: 0xf4, // lowercase o, circumflex accent\n 0x8f: 0xfb, // lowercase u, circumflex accent\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x12 AND LOW BETWEEN 0x20 AND 0x3F\n 0x90: 0xc1, // capital letter A with acute\n 0x91: 0xc9, // capital letter E with acute\n 0x92: 0xd3, // capital letter O with acute\n 0x93: 0xda, // capital letter U with acute\n 0x94: 0xdc, // capital letter U with diaresis\n 0x95: 0xfc, // lowercase letter U with diaeresis\n 0x96: 0x2018, // opening single quote\n 0x97: 0xa1, // inverted exclamation mark\n 0x98: 0x2a, // asterisk\n 0x99: 0x2019, // closing single quote\n 0x9a: 0x2501, // box drawings heavy horizontal\n 0x9b: 0xa9, // copyright sign\n 0x9c: 0x2120, // Service mark\n 0x9d: 0x2022, // (round) bullet\n 0x9e: 0x201c, // Left double quotation mark\n 0x9f: 0x201d, // Right double quotation mark\n 0xa0: 0xc0, // uppercase A, grave accent\n 0xa1: 0xc2, // uppercase A, circumflex\n 0xa2: 0xc7, // uppercase C with cedilla\n 0xa3: 0xc8, // uppercase E, grave accent\n 0xa4: 0xca, // uppercase E, circumflex\n 0xa5: 0xcb, // capital letter E with diaresis\n 0xa6: 0xeb, // lowercase letter e with diaresis\n 0xa7: 0xce, // uppercase I, circumflex\n 0xa8: 0xcf, // uppercase I, with diaresis\n 0xa9: 0xef, // lowercase i, with diaresis\n 0xaa: 0xd4, // uppercase O, circumflex\n 0xab: 0xd9, // uppercase U, grave accent\n 0xac: 0xf9, // lowercase u, grave accent\n 0xad: 0xdb, // uppercase U, circumflex\n 0xae: 0xab, // left-pointing double angle quotation mark\n 0xaf: 0xbb, // right-pointing double angle quotation mark\n // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n // THAT COME FROM HI BYTE=0x13 AND LOW BETWEEN 0x20 AND 0x3F\n 0xb0: 0xc3, // Uppercase A, tilde\n 0xb1: 0xe3, // Lowercase a, tilde\n 0xb2: 0xcd, // Uppercase I, acute accent\n 0xb3: 0xcc, // Uppercase I, grave accent\n 0xb4: 0xec, // Lowercase i, grave accent\n 0xb5: 0xd2, // Uppercase O, grave accent\n 0xb6: 0xf2, // Lowercase o, grave accent\n 0xb7: 0xd5, // Uppercase O, tilde\n 0xb8: 0xf5, // Lowercase o, tilde\n 0xb9: 0x7b, // Open curly brace\n 0xba: 0x7d, // Closing curly brace\n 0xbb: 0x5c, // Backslash\n 0xbc: 0x5e, // Caret\n 0xbd: 0x5f, // Underscore\n 0xbe: 0x7c, // Pipe (vertical line)\n 0xbf: 0x223c, // Tilde operator\n 0xc0: 0xc4, // Uppercase A, umlaut\n 0xc1: 0xe4, // Lowercase A, umlaut\n 0xc2: 0xd6, // Uppercase O, umlaut\n 0xc3: 0xf6, // Lowercase o, umlaut\n 0xc4: 0xdf, // Esszett (sharp S)\n 0xc5: 0xa5, // Yen symbol\n 0xc6: 0xa4, // Generic currency sign\n 0xc7: 0x2503, // Box drawings heavy vertical\n 0xc8: 0xc5, // Uppercase A, ring\n 0xc9: 0xe5, // Lowercase A, ring\n 0xca: 0xd8, // Uppercase O, stroke\n 0xcb: 0xf8, // Lowercase o, strok\n 0xcc: 0x250f, // Box drawings heavy down and right\n 0xcd: 0x2513, // Box drawings heavy down and left\n 0xce: 0x2517, // Box drawings heavy up and right\n 0xcf: 0x251b, // Box drawings heavy up and left\n};\n\n/**\n * Utils\n */\nconst getCharForByte = (byte: number) =>\n String.fromCharCode(specialCea608CharsCodes[byte] || byte);\n\nconst NR_ROWS = 15;\nconst NR_COLS = 100;\n// Tables to look up row from PAC data\nconst rowsLowCh1 = {\n 0x11: 1,\n 0x12: 3,\n 0x15: 5,\n 0x16: 7,\n 0x17: 9,\n 0x10: 11,\n 0x13: 12,\n 0x14: 14,\n};\nconst rowsHighCh1 = {\n 0x11: 2,\n 0x12: 4,\n 0x15: 6,\n 0x16: 8,\n 0x17: 10,\n 0x13: 13,\n 0x14: 15,\n};\nconst rowsLowCh2 = {\n 0x19: 1,\n 0x1a: 3,\n 0x1d: 5,\n 0x1e: 7,\n 0x1f: 9,\n 0x18: 11,\n 0x1b: 12,\n 0x1c: 14,\n};\nconst rowsHighCh2 = {\n 0x19: 2,\n 0x1a: 4,\n 0x1d: 6,\n 0x1e: 8,\n 0x1f: 10,\n 0x1b: 13,\n 0x1c: 15,\n};\n\nconst backgroundColors = [\n 'white',\n 'green',\n 'blue',\n 'cyan',\n 'red',\n 'yellow',\n 'magenta',\n 'black',\n 'transparent',\n];\n\nconst enum VerboseLevel {\n ERROR = 0,\n TEXT = 1,\n WARNING = 2,\n INFO = 2,\n DEBUG = 3,\n DATA = 3,\n}\n\nclass CaptionsLogger {\n public time: number | null = null;\n public verboseLevel: VerboseLevel = VerboseLevel.ERROR;\n\n log(severity: VerboseLevel, msg: string | (() => string)): void {\n if (this.verboseLevel >= severity) {\n const m: string = typeof msg === 'function' ? msg() : msg;\n logger.log(`${this.time} [${severity}] ${m}`);\n }\n }\n}\n\nconst numArrayToHexArray = function (numArray: number[]): string[] {\n const hexArray: string[] = [];\n for (let j = 0; j < numArray.length; j++) {\n hexArray.push(numArray[j].toString(16));\n }\n\n return hexArray;\n};\n\ntype PenStyles = {\n foreground: string | null;\n underline: boolean;\n italics: boolean;\n background: string;\n flash: boolean;\n};\n\nclass PenState {\n public foreground: string = 'white';\n public underline: boolean = false;\n public italics: boolean = false;\n public background: string = 'black';\n public flash: boolean = false;\n\n reset() {\n this.foreground = 'white';\n this.underline = false;\n this.italics = false;\n this.background = 'black';\n this.flash = false;\n }\n\n setStyles(styles: Partial<PenStyles>) {\n const attribs = [\n 'foreground',\n 'underline',\n 'italics',\n 'background',\n 'flash',\n ];\n for (let i = 0; i < attribs.length; i++) {\n const style = attribs[i];\n if (styles.hasOwnProperty(style)) {\n this[style] = styles[style];\n }\n }\n }\n\n isDefault() {\n return (\n this.foreground === 'white' &&\n !this.underline &&\n !this.italics &&\n this.background === 'black' &&\n !this.flash\n );\n }\n\n equals(other: PenState) {\n return (\n this.foreground === other.foreground &&\n this.underline === other.underline &&\n this.italics === other.italics &&\n this.background === other.background &&\n this.flash === other.flash\n );\n }\n\n copy(newPenState: PenState) {\n this.foreground = newPenState.foreground;\n this.underline = newPenState.underline;\n this.italics = newPenState.italics;\n this.background = newPenState.background;\n this.flash = newPenState.flash;\n }\n\n toString(): string {\n return (\n 'color=' +\n this.foreground +\n ', underline=' +\n this.underline +\n ', italics=' +\n this.italics +\n ', background=' +\n this.background +\n ', flash=' +\n this.flash\n );\n }\n}\n\n/**\n * Unicode character with styling and background.\n * @constructor\n */\nclass StyledUnicodeChar {\n uchar: string = ' ';\n penState: PenState = new PenState();\n\n reset() {\n this.uchar = ' ';\n this.penState.reset();\n }\n\n setChar(uchar: string, newPenState: PenState) {\n this.uchar = uchar;\n this.penState.copy(newPenState);\n }\n\n setPenState(newPenState: PenState) {\n this.penState.copy(newPenState);\n }\n\n equals(other: StyledUnicodeChar) {\n return this.uchar === other.uchar && this.penState.equals(other.penState);\n }\n\n copy(newChar: StyledUnicodeChar) {\n this.uchar = newChar.uchar;\n this.penState.copy(newChar.penState);\n }\n\n isEmpty(): boolean {\n return this.uchar === ' ' && this.penState.isDefault();\n }\n}\n\n/**\n * CEA-608 row consisting of NR_COLS instances of StyledUnicodeChar.\n * @constructor\n */\nexport class Row {\n public chars: StyledUnicodeChar[] = [];\n public pos: number = 0;\n public currPenState: PenState = new PenState();\n public cueStartTime: number | null = null;\n private logger: CaptionsLogger;\n\n constructor(logger: CaptionsLogger) {\n for (let i = 0; i < NR_COLS; i++) {\n this.chars.push(new StyledUnicodeChar());\n }\n this.logger = logger;\n }\n\n equals(other: Row) {\n for (let i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].equals(other.chars[i])) {\n return false;\n }\n }\n return true;\n }\n\n copy(other: Row) {\n for (let i = 0; i < NR_COLS; i++) {\n this.chars[i].copy(other.chars[i]);\n }\n }\n\n isEmpty(): boolean {\n let empty = true;\n for (let i = 0; i < NR_COLS; i++) {\n if (!this.chars[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n return empty;\n }\n\n /**\n * Set the cursor to a valid column.\n */\n setCursor(absPos: number) {\n if (this.pos !== absPos) {\n this.pos = absPos;\n }\n\n if (this.pos < 0) {\n this.logger.log(\n VerboseLevel.DEBUG,\n 'Negative cursor position ' + this.pos,\n );\n this.pos = 0;\n } else if (this.pos > NR_COLS) {\n this.logger.log(\n VerboseLevel.DEBUG,\n 'Too large cursor position ' + this.pos,\n );\n this.pos = NR_COLS;\n }\n }\n\n /**\n * Move the cursor relative to current position.\n */\n moveCursor(relPos: number) {\n const newPos = this.pos + relPos;\n if (relPos > 1) {\n for (let i = this.pos + 1; i < newPos + 1; i++) {\n this.chars[i].setPenState(this.currPenState);\n }\n }\n this.setCursor(newPos);\n }\n\n /**\n * Backspace, move one step back and clear character.\n */\n backSpace() {\n this.moveCursor(-1);\n this.chars[this.pos].setChar(' ', this.currPenState);\n }\n\n insertChar(byte: number) {\n if (byte >= 0x90) {\n // Extended char\n this.backSpace();\n }\n const char = getCharForByte(byte);\n if (this.pos >= NR_COLS) {\n this.logger.log(\n VerboseLevel.ERROR,\n () =>\n 'Cannot insert ' +\n byte.toString(16) +\n ' (' +\n char +\n ') at position ' +\n this.pos +\n '. Skipping it!',\n );\n return;\n }\n this.chars[this.pos].setChar(char, this.currPenState);\n this.moveCursor(1);\n }\n\n clearFromPos(startPos: number) {\n let i: number;\n for (i = startPos; i < NR_COLS; i++) {\n this.chars[i].reset();\n }\n }\n\n clear() {\n this.clearFromPos(0);\n this.pos = 0;\n this.currPenState.reset();\n }\n\n clearToEndOfRow() {\n this.clearFromPos(this.pos);\n }\n\n getTextString() {\n const chars: string[] = [];\n let empty = true;\n for (let i = 0; i < NR_COLS; i++) {\n const char = this.chars[i].uchar;\n if (char !== ' ') {\n empty = false;\n }\n\n chars.push(char);\n }\n if (empty) {\n return '';\n } else {\n return chars.join('');\n }\n }\n\n setPenStyles(styles: Partial<PenStyles>) {\n this.currPenState.setStyles(styles);\n const currChar = this.chars[this.pos];\n currChar.setPenState(this.currPenState);\n }\n}\n\n/**\n * Keep a CEA-608 screen of 32x15 styled characters\n * @constructor\n */\nexport class CaptionScreen {\n rows: Row[] = [];\n currRow: number = NR_ROWS - 1;\n nrRollUpRows: number | null = null;\n lastOutputScreen: CaptionScreen | null = null;\n logger: CaptionsLogger;\n\n constructor(logger: CaptionsLogger) {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows.push(new Row(logger));\n }\n this.logger = logger;\n }\n\n reset() {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n this.currRow = NR_ROWS - 1;\n }\n\n equals(other: CaptionScreen): boolean {\n let equal = true;\n for (let i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].equals(other.rows[i])) {\n equal = false;\n break;\n }\n }\n return equal;\n }\n\n copy(other: CaptionScreen) {\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].copy(other.rows[i]);\n }\n }\n\n isEmpty(): boolean {\n let empty = true;\n for (let i = 0; i < NR_ROWS; i++) {\n if (!this.rows[i].isEmpty()) {\n empty = false;\n break;\n }\n }\n return empty;\n }\n\n backSpace() {\n const row = this.rows[this.currRow];\n row.backSpace();\n }\n\n clearToEndOfRow() {\n const row = this.rows[this.currRow];\n row.clearToEndOfRow();\n }\n\n /**\n * Insert a character (without styling) in the current row.\n */\n insertChar(char: number) {\n const row = this.rows[this.currRow];\n row.insertChar(char);\n }\n\n setPen(styles: Partial<PenStyles>) {\n const row = this.rows[this.currRow];\n row.setPenStyles(styles);\n }\n\n moveCursor(relPos: number) {\n const row = this.rows[this.currRow];\n row.moveCursor(relPos);\n }\n\n setCursor(absPos: number) {\n this.logger.log(VerboseLevel.INFO, 'setCursor: ' + absPos);\n const row = this.rows[this.currRow];\n row.setCursor(absPos);\n }\n\n setPAC(pacData: PACData) {\n this.logger.log(\n VerboseLevel.INFO,\n () => 'pacData = ' + JSON.stringify(pacData),\n );\n let newRow = pacData.row - 1;\n if (this.nrRollUpRows && newRow < this.nrRollUpRows - 1) {\n newRow = this.nrRollUpRows - 1;\n }\n\n // Make sure this only affects Roll-up Captions by checking this.nrRollUpRows\n if (this.nrRollUpRows && this.currRow !== newRow) {\n // clear all rows first\n for (let i = 0; i < NR_ROWS; i++) {\n this.rows[i].clear();\n }\n\n // Copy this.nrRollUpRows rows from lastOutputScreen and place it in the newRow location\n // topRowIndex - the start of rows to copy (inclusive index)\n const topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n // We only copy if the last position was already shown.\n // We use the cueStartTime value to check this.\n const lastOutputScreen = this.lastOutputScreen;\n if (lastOutputScreen) {\n const prevLineTime = lastOutputScreen.rows[topRowIndex].cueStartTime;\n const time = this.logger.time;\n if (prevLineTime !== null && time !== null && prevLineTime < time) {\n for (let i = 0; i < this.nrRollUpRows; i++) {\n this.rows[newRow - this.nrRollUpRows + i + 1].copy(\n lastOutputScreen.rows[topRowIndex + i],\n );\n }\n }\n }\n }\n\n this.currRow = newRow;\n const row = this.rows[this.currRow];\n if (pacData.indent !== null) {\n const indent = pacData.indent;\n const prevPos = Math.max(indent - 1, 0);\n row.setCursor(pacData.indent);\n pacData.color = row.chars[prevPos].penState.foreground;\n }\n const styles: PenStyles = {\n foreground: pacData.color,\n underline: pacData.underline,\n italics: pacData.italics,\n background: 'black',\n flash: false,\n };\n this.setPen(styles);\n }\n\n /**\n * Set background/extra foreground, but first do back_space, and then insert space (backwards compatibility).\n */\n setBkgData(bkgData: Partial<PenStyles>) {\n this.logger.log(\n VerboseLevel.INFO,\n () => 'bkgData = ' + JSON.stringify(bkgData),\n );\n this.backSpace();\n this.setPen(bkgData);\n this.insertChar(0x20); // Space\n }\n\n setRollUpRows(nrRows: number | null) {\n this.nrRollUpRows = nrRows;\n }\n\n rollUp() {\n if (this.nrRollUpRows === null) {\n this.logger.log(\n VerboseLevel.DEBUG,\n 'roll_up but nrRollUpRows not set yet',\n );\n return; // Not properly setup\n }\n this.logger.log(VerboseLevel.TEXT, () => this.getDisplayText());\n const topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n const topRow = this.rows.splice(topRowIndex, 1)[0];\n topRow.clear();\n this.rows.splice(this.currRow, 0, topRow);\n this.logger.log(VerboseLevel.INFO, 'Rolling up');\n // this.logger.log(VerboseLevel.TEXT, this.get_display_text())\n }\n\n /**\n * Get all non-empty rows with as unicode text.\n */\n getDisplayText(asOneRow?: boolean) {\n asOneRow = asOneRow || false;\n const displayText: string[] = [];\n let text = '';\n let rowNr = -1;\n for (let i = 0; i < NR_ROWS; i++) {\n const rowText = this.rows[i].getTextString();\n if (rowText) {\n rowNr = i + 1;\n if (asOneRow) {\n displayText.push('Row ' + rowNr + \": '\" + rowText + \"'\");\n } else {\n displayText.push(rowText.trim());\n }\n }\n }\n if (displayText.length > 0) {\n if (asOneRow) {\n text = '[' + displayText.join(' | ') + ']';\n } else {\n text = displayText.join('\\n');\n }\n }\n return text;\n }\n\n getTextAndFormat() {\n return this.rows;\n }\n}\n\n// var modes = ['MODE_ROLL-UP', 'MODE_POP-ON', 'MODE_PAINT-ON', 'MODE_TEXT'];\n\ntype CaptionModes =\n | 'MODE_ROLL-UP'\n | 'MODE_POP-ON'\n | 'MODE_PAINT-ON'\n | 'MODE_TEXT'\n | null;\n\nclass Cea608Channel {\n chNr: number;\n outputFilter: OutputFilter;\n mode: CaptionModes;\n verbose: number;\n displayedMemory: CaptionScreen;\n nonDisplayedMemory: CaptionScreen;\n lastOutputScreen: CaptionScreen;\n currRollUpRow: Row;\n writeScreen: CaptionScreen;\n cueStartTime: number | null;\n logger: CaptionsLogger;\n\n constructor(\n channelNumber: number,\n outputFilter: OutputFilter,\n logger: CaptionsLogger,\n ) {\n this.chNr = channelNumber;\n this.outputFilter = outputFilter;\n this.mode = null;\n this.verbose = 0;\n this.displayedMemory = new CaptionScreen(logger);\n this.nonDisplayedMemory = new CaptionScreen(logger);\n this.lastOutputScreen = new CaptionScreen(logger);\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null; // Keeps track of where a cue started.\n this.logger = logger;\n }\n\n reset() {\n this.mode = null;\n this.displayedMemory.reset();\n this.nonDisplayedMemory.reset();\n this.lastOutputScreen.reset();\n this.outputFilter.reset();\n this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n this.writeScreen = this.displayedMemory;\n this.mode = null;\n this.cueStartTime = null;\n }\n\n getHandler(): OutputFilter {\n return this.outputFilter;\n }\n\n setHandler(newHandler: OutputFilter) {\n this.outputFilter = newHandler;\n }\n\n setPAC(pacData: PACData) {\n this.writeScreen.setPAC(pacData);\n }\n\n setBkgData(bkgData: Partial<PenStyles>) {\n this.writeScreen.setBkgData(bkgData);\n }\n\n setMode(newMode: CaptionModes) {\n if (newMode === this.mode) {\n return;\n }\n\n this.mode = newMode;\n this.logger.log(VerboseLevel.INFO, () => 'MODE=' + newMode);\n if (this.mode === 'MODE_POP-ON') {\n this.writeScreen = this.nonDisplayedMemory;\n } else {\n this.writeScreen = this.displayedMemory;\n this.writeScreen.reset();\n }\n if (this.mode !== 'MODE_ROLL-UP') {\n this.displayedMemory.nrRollUpRows = null;\n this.nonDisplayedMemory.nrRollUpRows = null;\n }\n this.mode = newMode;\n }\n\n insertChars(chars: number[]) {\n for (let i = 0; i < chars.length; i++) {\n this.writeScreen.insertChar(chars[i]);\n }\n\n const screen =\n this.writeScreen === this.displayedMemory ? 'DISP' : 'NON_DISP';\n this.logger.log(\n VerboseLevel.INFO,\n () => screen + ': ' + this.writeScreen.getDisplayText(true),\n );\n if (this.mode === 'MODE_PAINT-ON' || this.mode === 'MODE_ROLL-UP') {\n this.logger.log(\n VerboseLevel.TEXT,\n () => 'DISPLAYED: ' + this.displayedMemory.getDisplayText(true),\n );\n this.outputDataUpdate();\n }\n }\n\n ccRCL() {\n // Resume Caption Loading (switch mode to Pop On)\n this.logger.log(VerboseLevel.INFO, 'RCL - Resume Caption Loading');\n this.setMode('MODE_POP-ON');\n }\n\n ccBS() {\n // BackSpace\n this.logger.log(VerboseLevel.INFO, 'BS - BackSpace');\n if (this.mode === 'MODE_TEXT') {\n return;\n }\n\n this.writeScreen.backSpace();\n if (this.writeScreen === this.displayedMemory) {\n this.outputDataUpdate();\n }\n }\n\n ccAOF() {\n // Reserved (formerly Alarm Off)\n }\n\n ccAON() {\n // Reserved (formerly Alarm On)\n }\n\n ccDER() {\n // Delete to End of Row\n this.logger.log(VerboseLevel.INFO, 'DER- Delete to End of Row');\n this.writeScreen.clearToEndOfRow();\n this.outputDataUpdate();\n }\n\n ccRU(nrRows: number | null) {\n // Roll-Up Captions-2,3,or 4 Rows\n this.logger.log(VerboseLevel.INFO, 'RU(' + nrRows + ') - Roll Up');\n this.writeScreen = this.displayedMemory;\n this.setMode('MODE_ROLL-UP');\n this.writeScreen.setRollUpRows(nrRows);\n }\n\n ccFON() {\n // Flash On\n this.logger.log(VerboseLevel.INFO, 'FON - Flash On');\n this.writeScreen.setPen({ flash: true });\n }\n\n ccRDC() {\n // Resume Direct Captioning (switch mode to PaintOn)\n this.logger.log(VerboseLevel.INFO, 'RDC - Resume Direct Captioning');\n this.setMode('MODE_PAINT-ON');\n }\n\n ccTR() {\n // Text Restart in text mode (not supported, however)\n this.logger.log(VerboseLevel.INFO, 'TR');\n this.setMode('MODE_TEXT');\n }\n\n ccRTD() {\n // Resume Text Display in Text mode (not supported, however)\n this.logger.log(VerboseLevel.INFO, 'RTD');\n this.setMode('MODE_TEXT');\n }\n\n ccEDM() {\n // Erase Displayed Memory\n this.logger.log(VerboseLevel.INFO, 'EDM - Erase Displayed Memory');\n this.displayedMemory.reset();\n this.outputDataUpdate(true);\n }\n\n ccCR() {\n // Carriage Return\n this.logger.log(VerboseLevel.INFO, 'CR - Carriage Return');\n this.writeScreen.rollUp();\n this.outputDataUpdate(true);\n }\n\n ccENM() {\n // Erase Non-Displayed Memory\n this.logger.log(VerboseLevel.INFO, 'ENM - Erase Non-displayed Memory');\n this.nonDisplayedMemory.reset();\n }\n\n ccEOC() {\n // End of Caption (Flip Memories)\n this.logger.log(VerboseLevel.INFO, 'EOC - End Of Caption');\n if (this.mode === 'MODE_POP-ON') {\n const tmp = this.displayedMemory;\n this.displayedMemory = this.nonDisplayedMemory;\n this.nonDisplayedMemory = tmp;\n this.writeScreen = this.nonDisplayedMemory;\n this.logger.log(\n VerboseLevel.TEXT,\n () => 'DISP: ' + this.displayedMemory.getDisplayText(),\n );\n }\n this.outputDataUpdate(true);\n }\n\n ccTO(nrCols: number) {\n // Tab Offset 1,2, or 3 columns\n this.logger.log(VerboseLevel.INFO, 'TO(' + nrCols + ') - Tab Offset');\n this.writeScreen.moveCursor(nrCols);\n }\n\n ccMIDROW(secondByte: number) {\n // Parse MIDROW command\n const styles: Partial<PenStyles> = { flash: false };\n styles.underline = secondByte % 2 === 1;\n styles.italics = secondByte >= 0x2e;\n if (!styles.italics) {\n const colorIndex = Math.floor(secondByte / 2) - 0x10;\n const colors = [\n 'white',\n 'green',\n 'blue',\n 'cyan',\n 'red',\n 'yellow',\n 'magenta',\n ];\n styles.foreground = colors[colorIndex];\n } else {\n styles.foreground = 'white';\n }\n this.logger.log(VerboseLevel.INFO, 'MIDROW: ' + JSON.stringify(styles));\n this.writeScreen.setPen(styles);\n }\n\n outputDataUpdate(dispatch: boolean = false) {\n const time = this.logger.time;\n if (time === null) {\n return;\n }\n\n if (this.outputFilter) {\n if (this.cueStartTime === null && !this.displayedMemory.isEmpty()) {\n // Start of a new cue\n this.cueStartTime = time;\n } else {\n if (!this.displayedMemory.equals(this.lastOutputScreen)) {\n this.outputFilter.newCue(\n this.cueStartTime!,\n time,\n this.lastOutputScreen,\n );\n if (dispatch && this.outputFilter.dispatchCue) {\n this.outputFilter.dispatchCue();\n }\n\n this.cueStartTime = this.displayedMemory.isEmpty() ? null : time;\n }\n }\n this.lastOutputScreen.copy(this.displayedMemory);\n }\n }\n\n cueSplitAtTime(t: number) {\n if (this.outputFilter) {\n if (!this.displayedMemory.isEmpty()) {\n if (this.outputFilter.newCue) {\n this.outputFilter.newCue(this.cueStartTime!, t, this.displayedMemory);\n }\n\n this.cueStartTime = t;\n }\n }\n }\n}\n\ninterface PACData {\n row: number;\n indent: number | null;\n color: string | null;\n underline: boolean;\n italics: boolean;\n}\n\ntype SupportedField = 1 | 3;\n\ntype Channels = 0 | 1 | 2; // Will be 1 or 2 when parsing captions\n\ntype CmdHistory = {\n a: number | null;\n b: number | null;\n};\n\nclass Cea608Parser {\n channels: Array<Cea608Channel | null>;\n currentChannel: Channels = 0;\n cmdHistory: CmdHistory = createCmdHistory();\n logger: CaptionsLogger;\n\n constructor(field: SupportedField, out1: OutputFilter, out2: OutputFilter) {\n const logger = (this.logger = new CaptionsLogger());\n this.channels = [\n null,\n new Cea608Channel(field, out1, logger),\n new Cea608Channel(field + 1, out2, logger),\n ];\n }\n\n getHandler(channel: number) {\n return (this.channels[channel] as Cea608Channel).getHandler();\n }\n\n setHandler(channel: number, newHandler: OutputFilter) {\n (this.channels[channel] as Cea608Channel).setHandler(newHandler);\n }\n\n /**\n * Add data for time t in forms of list of bytes (unsigned ints). The bytes are treated as pairs.\n */\n addData(time: number | null, byteList: number[]) {\n this.logger.time = time;\n for (let i = 0; i < byteList.length; i += 2) {\n const a = byteList[i] & 0x7f;\n const b = byteList[i + 1] & 0x7f;\n let cmdFound: boolean = false;\n let charsFound: number[] | null = null;\n\n if (a === 0 && b === 0) {\n continue;\n } else {\n this.logger.log(\n VerboseLevel.DATA,\n () =>\n '[' +\n numArrayToHexArray([byteList[i], byteList[i + 1]]) +\n '] -> (' +\n numArrayToHexArray([a, b]) +\n ')',\n );\n }\n\n const cmdHistory = this.cmdHistory;\n const isControlCode = a >= 0x10 && a <= 0x1f;\n if (isControlCode) {\n // Skip redundant control codes\n if (hasCmdRepeated(a, b, cmdHistory)) {\n setLastCmd(null, null, cmdHistory);\n this.logger.log(\n VerboseLevel.DEBUG,\n () =>\n 'Repeated command (' +\n numArrayToHexArray([a, b]) +\n ') is dropped',\n );\n continue;\n }\n setLastCmd(a, b, this.cmdHistory);\n\n cmdFound = this.parseCmd(a, b);\n\n if (!cmdFound) {\n cmdFound = this.parseMidrow(a, b);\n }\n\n if (!cmdFound) {\n cmdFound = this.parsePAC(a, b);\n }\n\n if (!cmdFound) {\n cmdFound = this.parseBackgroundAttributes(a, b);\n }\n } else {\n setLastCmd(null, null, cmdHistory);\n }\n if (!cmdFound) {\n charsFound = this.parseChars(a, b);\n if (charsFound) {\n const currChNr = this.currentChannel;\n if (currChNr && currChNr > 0) {\n const channel = this.channels[currChNr] as Cea608Channel;\n channel.insertChars(charsFound);\n } else {\n this.logger.log(\n VerboseLevel.WARNING,\n 'No channel found yet. TEXT-MODE?',\n );\n }\n }\n }\n if (!cmdFound && !charsFound) {\n this.logger.log(\n VerboseLevel.WARNING,\n () =>\n \"Couldn't parse cleaned data \" +\n numArrayToHexArray([a, b]) +\n ' orig: ' +\n numArrayToHexArray([byteList[i], byteList[i + 1]]),\n );\n }\n }\n }\n\n /**\n * Parse Command.\n * @returns True if a command was found\n */\n parseCmd(a: number, b: number): boolean {\n const cond1 =\n (a === 0x14 || a === 0x1c || a === 0x15 || a === 0x1d) &&\n b >= 0x20 &&\n b <= 0x2f;\n const cond2 = (a === 0x17 || a === 0x1f) && b >= 0x21 && b <= 0x23;\n if (!(cond1 || cond2)) {\n return false;\n }\n\n const chNr = a === 0x14 || a === 0x15 || a === 0x17 ? 1 : 2;\n const channel = this.channels[chNr] as Cea608Channel;\n\n if (a === 0x14 || a === 0x15 || a === 0x1c || a === 0x1d) {\n if (b === 0x20) {\n channel.ccRCL();\n } else if (b === 0x21) {\n channel.ccBS();\n } else if (b === 0x22) {\n channel.ccAOF();\n } else if (b === 0x23) {\n channel.ccAON();\n } else if (b === 0x24) {\n channel.ccDER();\n } else if (b === 0x25) {\n channel.ccRU(2);\n } else if (b === 0x26) {\n channel.ccRU(3);\n } else if (b === 0x27) {\n channel.ccRU(4);\n } else if (b === 0x28) {\n channel.ccFON();\n } else if (b === 0x29) {\n channel.ccRDC();\n } else if (b === 0x2a) {\n channel.ccTR();\n } else if (b === 0x2b) {\n channel.ccRTD();\n } else if (b === 0x2c) {\n channel.ccEDM();\n } else if (b === 0x2d) {\n channel.ccCR();\n } else if (b === 0x2e) {\n channel.ccENM();\n } else if (b === 0x2f) {\n channel.ccEOC();\n }\n } else {\n // a == 0x17 || a == 0x1F\n channel.ccTO(b - 0x20);\n }\n this.currentChannel = chNr;\n return true;\n }\n\n /**\n * Parse midrow styling command\n */\n parseMidrow(a: number, b: number): boolean {\n let chNr: number = 0;\n\n if ((a === 0x11 || a === 0x19) && b >= 0x20 && b <= 0x2f) {\n if (a === 0x11) {\n chNr = 1;\n } else {\n chNr = 2;\n }\n\n if (chNr !== this.currentChannel) {\n this.logger.log(\n VerboseLevel.ERROR,\n 'Mismatch channel in midrow parsing',\n );\n return false;\n }\n const channel = this.channels[chNr];\n if (!channel) {\n return false;\n }\n channel.ccMIDROW(b);\n this.logger.log(\n VerboseLevel.DEBUG,\n () => 'MIDROW (' + numArrayToHexArray([a, b]) + ')',\n );\n return true;\n }\n return false;\n }\n\n /**\n * Parse Preable Access Codes (Table 53).\n * @returns {Boolean} Tells if PAC found\n */\n parsePAC(a: number, b: number): boolean {\n let row: number;\n\n const case1 =\n ((a >= 0x11 && a <= 0x17) || (a >= 0x19 && a <= 0x1f)) &&\n b >= 0x40 &&\n b <= 0x7f;\n const case2 = (a === 0x10 || a === 0x18) && b >= 0x40 && b <= 0x5f;\n if (!(case1 || case2)) {\n return false;\n }\n\n const chNr: Channels = a <= 0x17 ? 1 : 2;\n\n if (b >= 0x40 && b <= 0x5f) {\n row = chNr === 1 ? rowsLowCh1[a] : rowsLowCh2[a];\n } else {\n // 0x60 <= b <= 0x7F\n row = chNr === 1 ? rowsHighCh1[a] : rowsHighCh2[a];\n }\n const channel = this.channels[chNr];\n if (!channel) {\n return false;\n }\n channel.setPAC(this.interpretPAC(row, b));\n this.currentChannel = chNr;\n return true;\n }\n\n /**\n * Interpret the second byte of the pac, and return the information.\n * @returns pacData with style parameters\n */\n interpretPAC(row: number, byte: number): PACData {\n let pacIndex;\n const pacData: PACData = {\n color: null,\n italics: false,\n indent: null,\n underline: false,\n row: row,\n };\n\n if (byte > 0x5f) {\n pacIndex = byte - 0x60;\n } else {\n pacIndex = byte - 0x40;\n }\n\n pacData.underline = (pacIndex & 1) === 1;\n if (pacIndex <= 0xd) {\n pacData.color = [\n 'white',\n 'green',\n 'blue',\n 'cyan',\n 'red',\n 'yellow',\n 'magenta',\n 'white',\n ][Math.floor(pacIndex / 2)];\n } else if (pacIndex <= 0xf) {\n pacData.italics = true;\n pacData.color = 'white';\n } else {\n pacData.indent = Math.floor((pacIndex - 0x10) / 2) * 4;\n }\n return pacData; // Note that row has zero offset. The spec uses 1.\n }\n\n /**\n * Parse characters.\n * @returns An array with 1 to 2 codes corresponding to chars, if found. null otherwise.\n */\n parseChars(a: number, b: number): number[] | null {\n let channelNr: Channels;\n let charCodes: number[] | null = null;\n let charCode1: number | null = null;\n\n if (a >= 0x19) {\n channelNr = 2;\n charCode1 = a - 8;\n } else {\n channelNr = 1;\n charCode1 = a;\n }\n if (charCode1 >= 0x11 && charCode1 <= 0x13) {\n // Special character\n let oneCode;\n if (charCode1 === 0x11) {\n oneCode = b + 0x50;\n } else if (charCode1 === 0x12) {\n oneCode = b + 0x70;\n } else {\n oneCode = b + 0x90;\n }\n\n this.logger.log(\n VerboseLevel.INFO,\n () =>\n \"Special char '\" +\n getCharForByte(oneCode) +\n \"' in channel \" +\n channelNr,\n );\n charCodes = [oneCode];\n } else if (a >= 0x20 && a <= 0x7f) {\n charCodes = b === 0 ? [a] : [a, b];\n }\n if (charCodes) {\n this.logger.log(\n VerboseLevel.DEBUG,\n () =>\n 'Char codes = ' +\n numArrayToHexArray(charCodes as number[]).join(','),\n );\n }\n return charCodes;\n }\n\n /**\n * Parse extended background attributes as well as new foreground color black.\n * @returns True if background attributes are found\n */\n parseBackgroundAttributes(a: number, b: number): boolean {\n const case1 = (a === 0x10 || a === 0x18) && b >= 0x20 && b <= 0x2f;\n const case2 = (a === 0x17 || a === 0x1f) && b >= 0x2d && b <= 0x2f;\n if (!(case1 || case2)) {\n return false;\n }\n let index: number;\n const bkgData: Partial<PenStyles> = {};\n if (a === 0x10 || a === 0x18) {\n index = Math.floor((b - 0x20) / 2);\n bkgData.background = backgroundColors[index];\n if (b % 2 === 1) {\n bkgData.background = bkgData.background + '_semi';\n }\n } else if (b === 0x2d) {\n bkgData.background = 'transparent';\n } else {\n bkgData.foreground = 'black';\n if (b === 0x2f) {\n bkgData.underline = true;\n }\n }\n const chNr: Channels = a <= 0x17 ? 1 : 2;\n const channel: Cea608Channel = this.channels[chNr] as Cea608Channel;\n channel.setBkgData(bkgData);\n return true;\n }\n\n /**\n * Reset state of parser and its channels.\n */\n reset() {\n for (let i = 0; i < Object.keys(this.channels).length; i++) {\n const channel = this.channels[i];\n if (channel) {\n channel.reset();\n }\n }\n setLastCmd(null, null, this.cmdHistory);\n }\n\n /**\n * Trigger the generation of a cue, and the start of a new one if displayScreens are not empty.\n */\n cueSplitAtTime(t: number) {\n for (let i = 0; i < this.channels.length; i++) {\n const channel = this.channels[i];\n if (channel) {\n channel.cueSplitAtTime(t);\n }\n }\n }\n}\n\nfunction setLastCmd(\n a: number | null,\n b: number | null,\n cmdHistory: CmdHistory,\n) {\n cmdHistory.a = a;\n cmdHistory.b = b;\n}\n\nfunction hasCmdRepeated(a: number, b: number, cmdHistory: CmdHistory) {\n return cmdHistory.a === a && cmdHistory.b === b;\n}\n\nfunction createCmdHistory(): CmdHistory {\n return {\n a: null,\n b: null,\n };\n}\n\nexport default Cea608Parser;\n","import type { TimelineController } from '../controller/timeline-controller';\nimport type { CaptionScreen } from './cea-608-parser';\n\nexport default class OutputFilter {\n private timelineController: TimelineController;\n private cueRanges: Array<[number, number]> = [];\n private trackName: string;\n private startTime: number | null = null;\n private endTime: number | null = null;\n private screen: CaptionScreen | null = null;\n\n constructor(timelineController: TimelineController, trackName: string) {\n this.timelineController = timelineController;\n this.trackName = trackName;\n }\n\n dispatchCue() {\n if (this.startTime === null) {\n return;\n }\n\n this.timelineController.addCues(\n this.trackName,\n this.startTime,\n this.endTime as number,\n this.screen as CaptionScreen,\n this.cueRanges,\n );\n this.startTime = null;\n }\n\n newCue(startTime: number, endTime: number, screen: CaptionScreen) {\n if (this.startTime === null || this.startTime > startTime) {\n this.startTime = startTime;\n }\n\n this.endTime = endTime;\n this.screen = screen;\n this.timelineController.createCaptionsTrack(this.trackName);\n }\n\n reset() {\n this.cueRanges = [];\n this.startTime = null;\n }\n}\n","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { optionalSelf } from './global';\n\ndeclare interface VTTCuePolyfill extends VTTCue {\n new (...args): VTTCuePolyfill;\n hasBeenReset: boolean;\n displayState: void;\n}\n\nexport default (function () {\n if (optionalSelf?.VTTCue) {\n return self.VTTCue;\n }\n\n const AllowedDirections = ['', 'lr', 'rl'] as const;\n type Direction = (typeof AllowedDirections)[number];\n\n const AllowedAlignments = [\n 'start',\n 'middle',\n 'end',\n 'left',\n 'right',\n ] as const;\n type Alignment = (typeof AllowedAlignments)[number];\n\n function isAllowedValue<T, A>(allowed: T, value: string): A | false {\n if (typeof value !== 'string') {\n return false;\n }\n // necessary for assuring the generic conforms to the Array interface\n if (!Array.isArray(allowed)) {\n return false;\n }\n // reset the type so that the next narrowing works well\n const lcValue = value.toLowerCase() as any;\n // use the allow list to narrow the type to a specific subset of strings\n if (~allowed.indexOf(lcValue)) {\n return lcValue;\n }\n\n return false;\n }\n\n function findDirectionSetting(value: string) {\n return isAllowedValue<typeof AllowedDirections, Direction>(\n AllowedDirections,\n value,\n );\n }\n\n function findAlignSetting(value: string) {\n return isAllowedValue<typeof AllowedAlignments, Alignment>(\n AllowedAlignments,\n value,\n );\n }\n\n function extend(obj: Record<string, any>, ...rest: Record<string, any>[]) {\n let i = 1;\n for (; i < arguments.length; i++) {\n const cobj = arguments[i];\n for (const p in cobj) {\n obj[p] = cobj[p];\n }\n }\n\n return obj;\n }\n\n function VTTCue(startTime: number, endTime: number, text: string) {\n const cue = this as VTTCuePolyfill;\n const baseObj = { enumerable: true };\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n cue.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n let _id = '';\n let _pauseOnExit = false;\n let _startTime = startTime;\n let _endTime = endTime;\n let _text = text;\n let _region = null;\n let _vertical: Direction = '';\n let _snapToLines = true;\n let _line: number | 'auto' = 'auto';\n let _lineAlign: Alignment = 'start';\n let _position = 50;\n let _positionAlign: Alignment = 'middle';\n let _size = 50;\n let _align: Alignment = 'middle';\n\n Object.defineProperty(\n cue,\n 'id',\n extend({}, baseObj, {\n get: function () {\n return _id;\n },\n set: function (value: string) {\n _id = '' + value;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'pauseOnExit',\n extend({}, baseObj, {\n get: function () {\n return _pauseOnExit;\n },\n set: function (value: boolean) {\n _pauseOnExit = !!value;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'startTime',\n extend({}, baseObj, {\n get: function () {\n return _startTime;\n },\n set: function (value: number) {\n if (typeof value !== 'number') {\n throw new TypeError('Start time must be set to a number.');\n }\n\n _startTime = value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'endTime',\n extend({}, baseObj, {\n get: function () {\n return _endTime;\n },\n set: function (value: number) {\n if (typeof value !== 'number') {\n throw new TypeError('End time must be set to a number.');\n }\n\n _endTime = value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'text',\n extend({}, baseObj, {\n get: function () {\n return _text;\n },\n set: function (value: string) {\n _text = '' + value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n // todo: implement VTTRegion polyfill?\n Object.defineProperty(\n cue,\n 'region',\n extend({}, baseObj, {\n get: function () {\n return _region;\n },\n set: function (value: any) {\n _region = value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'vertical',\n extend({}, baseObj, {\n get: function () {\n return _vertical;\n },\n set: function (value: string) {\n const setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\n 'An invalid or illegal string was specified.',\n );\n }\n\n _vertical = setting;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'snapToLines',\n extend({}, baseObj, {\n get: function () {\n return _snapToLines;\n },\n set: function (value: boolean) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'line',\n extend({}, baseObj, {\n get: function () {\n return _line;\n },\n set: function (value: number | 'auto') {\n if (typeof value !== 'number' && value !== 'auto') {\n throw new SyntaxError(\n 'An invalid number or illegal string was specified.',\n );\n }\n\n _line = value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'lineAlign',\n extend({}, baseObj, {\n get: function () {\n return _lineAlign;\n },\n set: function (value: string) {\n const setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\n 'An invalid or illegal string was specified.',\n );\n }\n\n _lineAlign = setting;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'position',\n extend({}, baseObj, {\n get: function () {\n return _position;\n },\n set: function (value: number) {\n if (value < 0 || value > 100) {\n throw new Error('Position must be between 0 and 100.');\n }\n\n _position = value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'positionAlign',\n extend({}, baseObj, {\n get: function () {\n return _positionAlign;\n },\n set: function (value: string) {\n const setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\n 'An invalid or illegal string was specified.',\n );\n }\n\n _positionAlign = setting;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'size',\n extend({}, baseObj, {\n get: function () {\n return _size;\n },\n set: function (value: number) {\n if (value < 0 || value > 100) {\n throw new Error('Size must be between 0 and 100.');\n }\n\n _size = value;\n this.hasBeenReset = true;\n },\n }),\n );\n\n Object.defineProperty(\n cue,\n 'align',\n extend({}, baseObj, {\n get: function () {\n return _align;\n },\n set: function (value: string) {\n const setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\n 'An invalid or illegal string was specified.',\n );\n }\n\n _align = setting;\n this.hasBeenReset = true;\n },\n }),\n );\n\n /**\n * Other <track> spec defined properties\n */\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n cue.displayState = undefined;\n }\n\n /**\n * VTTCue methods\n */\n\n VTTCue.prototype.getCueAsHTML = function () {\n // Assume WebVTT.convertCueToDOMTree is on the global.\n const WebVTT = (self as any).WebVTT;\n return WebVTT.convertCueToDOMTree(self, this.text);\n };\n // this is a polyfill hack\n return VTTCue as any as VTTCuePolyfill;\n})();\n","/*\n * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js\n */\n\nimport VTTCue from './vttcue';\n\nclass StringDecoder {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n decode(data: string | any, options?: Object): string | never {\n if (!data) {\n return '';\n }\n\n if (typeof data !== 'string') {\n throw new Error('Error - expected string data.');\n }\n\n return decodeURIComponent(encodeURIComponent(data));\n }\n}\n\n// Try to parse input as a time stamp.\nexport function parseTimeStamp(input: string) {\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + parseFloat(f || 0);\n }\n\n const m = input.match(/^(?:(\\d+):)?(\\d{2}):(\\d{2})(\\.\\d+)?/);\n if (!m) {\n return null;\n }\n\n if (parseFloat(m[2]) > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[2], m[3], 0, m[4]);\n }\n // Timestamp takes the form of [hours (optional)]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3], m[4]);\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nclass Settings {\n private readonly values: { [key: string]: any } = Object.create(null);\n\n // Only accept the first assignment to any key.\n set(k: string, v: any) {\n if (!this.get(k) && v !== '') {\n this.values[k] = v;\n }\n }\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get(k: string, dflt?: any, defaultKey?: string): any {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n\n return this.has(k) ? this.values[k] : dflt;\n }\n // Check whether we have a value for a key.\n has(k: string): boolean {\n return k in this.values;\n }\n // Accept a setting if its one of the given alternatives.\n alt(k: string, v: any, a: any[]) {\n for (let n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n }\n // Accept a setting if its a valid (signed) integer.\n integer(k: string, v: any) {\n if (/^-?\\d+$/.test(v)) {\n // integer\n this.set(k, parseInt(v, 10));\n }\n }\n // Accept a setting if its a valid percentage.\n percent(k: string, v: any): boolean {\n if (/^([\\d]{1,3})(\\.[\\d]*)?%$/.test(v)) {\n const percent = parseFloat(v);\n if (percent >= 0 && percent <= 100) {\n this.set(k, percent);\n return true;\n }\n }\n return false;\n }\n}\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interpret each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(\n input: string,\n callback: (k: string, v: any) => void,\n keyValueDelim: RegExp,\n groupDelim?: RegExp,\n) {\n const groups = groupDelim ? input.split(groupDelim) : [input];\n for (const i in groups) {\n if (typeof groups[i] !== 'string') {\n continue;\n }\n\n const kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n\n const k = kv[0];\n const v = kv[1];\n callback(k, v);\n }\n}\n\nconst defaults = new VTTCue(0, 0, '');\n// 'middle' was changed to 'center' in the spec: https://github.com/w3c/webvtt/pull/244\n// Safari doesn't yet support this change, but FF and Chrome do.\nconst center = (defaults.align as string) === 'middle' ? 'middle' : 'center';\n\nfunction parseCue(input: string, cue: VTTCue, regionList: Region[]) {\n // Remember the original input if we need to throw an error.\n const oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp(): number | never {\n const ts = parseTimeStamp(input);\n if (ts === null) {\n throw new Error('Malformed timestamp: ' + oInput);\n }\n\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, '');\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input: string, cue: VTTCue) {\n const settings = new Settings();\n\n parseOptions(\n input,\n function (k, v) {\n let vals;\n switch (k) {\n case 'region':\n // Find the last region we parsed with the same region id.\n for (let i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case 'vertical':\n settings.alt(k, v, ['rl', 'lr']);\n break;\n case 'line':\n vals = v.split(',');\n settings.integer(k, vals[0]);\n if (settings.percent(k, vals[0])) {\n settings.set('snapToLines', false);\n }\n\n settings.alt(k, vals[0], ['auto']);\n if (vals.length === 2) {\n settings.alt('lineAlign', vals[1], ['start', center, 'end']);\n }\n\n break;\n case 'position':\n vals = v.split(',');\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt('positionAlign', vals[1], [\n 'start',\n center,\n 'end',\n 'line-left',\n 'line-right',\n 'auto',\n ]);\n }\n\n break;\n case 'size':\n settings.percent(k, v);\n break;\n case 'align':\n settings.alt(k, v, ['start', center, 'end', 'left', 'right']);\n break;\n }\n },\n /:/,\n /\\s/,\n );\n\n // Apply default values for any missing fields.\n cue.region = settings.get('region', null);\n cue.vertical = settings.get('vertical', '');\n let line = settings.get('line', 'auto');\n if (line === 'auto' && defaults.line === -1) {\n // set numeric line number for Safari\n line = -1;\n }\n cue.line = line;\n cue.lineAlign = settings.get('lineAlign', 'start');\n cue.snapToLines = settings.get('snapToLines', true);\n cue.size = settings.get('size', 100);\n cue.align = settings.get('align', center);\n let position = settings.get('position', 'auto');\n if (position === 'auto' && defaults.position === 50) {\n // set numeric position for Safari\n position =\n cue.align === 'start' || cue.align === 'left'\n ? 0\n : cue.align === 'end' || cue.align === 'right'\n ? 100\n : 50;\n }\n cue.position = position;\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, '');\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.slice(0, 3) !== '-->') {\n // (3) next characters must match '-->'\n throw new Error(\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput,\n );\n }\n input = input.slice(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\nexport function fixLineBreaks(input: string): string {\n return input.replace(/<br(?: \\/)?>/gi, '\\n');\n}\n\ntype Region = {\n id: string;\n region: any;\n};\n\nexport class VTTParser {\n private state:\n | 'INITIAL'\n | 'HEADER'\n | 'ID'\n | 'CUE'\n | 'CUETEXT'\n | 'NOTE'\n | 'BADWEBVTT'\n | 'BADCUE' = 'INITIAL';\n private buffer: string = '';\n private decoder: StringDecoder = new StringDecoder();\n private regionList: Region[] = [];\n private cue: VTTCue | null = null;\n public oncue?: (cue: VTTCue) => void;\n public onparsingerror?: (error: Error) => void;\n public onflush?: () => void;\n\n parse(data?: string): VTTParser {\n const _this = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n _this.buffer += _this.decoder.decode(data, { stream: true });\n }\n\n function collectNextLine(): string {\n let buffer: string = _this.buffer;\n let pos = 0;\n\n buffer = fixLineBreaks(buffer);\n\n while (\n pos < buffer.length &&\n buffer[pos] !== '\\r' &&\n buffer[pos] !== '\\n'\n ) {\n ++pos;\n }\n\n const line: string = buffer.slice(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n\n _this.buffer = buffer.slice(pos);\n return line;\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n parseOptions(\n input,\n function (k, v) {\n // switch (k) {\n // case 'region':\n // 3.3 WebVTT region metadata header syntax\n // console.log('parse region', v);\n // parseRegion(v);\n // break;\n // }\n },\n /:/,\n );\n }\n\n // 5.1 WebVTT file parsing.\n try {\n let line: string = '';\n if (_this.state === 'INITIAL') {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(_this.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n // strip of UTF-8 BOM if any\n // https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8\n const m = line.match(/^()?WEBVTT([ \\t].*)?$/);\n if (!m?.[0]) {\n throw new Error('Malformed WebVTT signature.');\n }\n\n _this.state = 'HEADER';\n }\n\n let alreadyCollectedLine = false;\n while (_this.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(_this.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (_this.state) {\n case 'HEADER':\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n _this.state = 'ID';\n }\n continue;\n case 'NOTE':\n // Ignore NOTE blocks.\n if (!line) {\n _this.state = 'ID';\n }\n\n continue;\n case 'ID':\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n _this.state = 'NOTE';\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n\n _this.cue = new VTTCue(0, 0, '');\n _this.state = 'CUE';\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf('-->') === -1) {\n _this.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /* falls through */\n case 'CUE':\n // 40 - Collect cue timings and settings.\n if (!_this.cue) {\n _this.state = 'BADCUE';\n continue;\n }\n try {\n parseCue(line, _this.cue, _this.regionList);\n } catch (e) {\n // In case of an error ignore rest of the cue.\n _this.cue = null;\n _this.state = 'BADCUE';\n continue;\n }\n _this.state = 'CUETEXT';\n continue;\n case 'CUETEXT':\n {\n const hasSubstring = line.indexOf('-->') !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || (hasSubstring && (alreadyCollectedLine = true))) {\n // We are done parsing self cue.\n if (_this.oncue && _this.cue) {\n _this.oncue(_this.cue);\n }\n\n _this.cue = null;\n _this.state = 'ID';\n continue;\n }\n if (_this.cue === null) {\n continue;\n }\n\n if (_this.cue.text) {\n _this.cue.text += '\\n';\n }\n _this.cue.text += line;\n }\n continue;\n case 'BADCUE':\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n _this.state = 'ID';\n }\n }\n }\n } catch (e) {\n // If we are currently parsing a cue, report what we have.\n if (_this.state === 'CUETEXT' && _this.cue && _this.oncue) {\n _this.oncue(_this.cue);\n }\n\n _this.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n _this.state = _this.state === 'INITIAL' ? 'BADWEBVTT' : 'BADCUE';\n }\n return this;\n }\n\n flush(): VTTParser {\n const _this = this;\n try {\n // Finish decoding the stream.\n // _this.buffer += _this.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (_this.cue || _this.state === 'HEADER') {\n _this.buffer += '\\n\\n';\n _this.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (_this.state === 'INITIAL' || _this.state === 'BADWEBVTT') {\n throw new Error('Malformed WebVTT signature.');\n }\n } catch (e) {\n if (_this.onparsingerror) {\n _this.onparsingerror(e);\n }\n }\n if (_this.onflush) {\n _this.onflush();\n }\n\n return this;\n }\n}\n","import { VTTParser } from './vttparser';\nimport { utf8ArrayToStr } from '../demux/id3';\nimport {\n RationalTimestamp,\n toMpegTsClockFromTimescale,\n} from './timescale-conversion';\nimport { normalizePts } from '../remux/mp4-remuxer';\nimport type { VTTCCs } from '../types/vtt';\n\nconst LINEBREAKS = /\\r\\n|\\n\\r|\\n|\\r/g;\n\n// String.prototype.startsWith is not supported in IE11\nconst startsWith = function (\n inputString: string,\n searchString: string,\n position: number = 0,\n) {\n return (\n inputString.slice(position, position + searchString.length) === searchString\n );\n};\n\nconst cueString2millis = function (timeString: string) {\n let ts = parseInt(timeString.slice(-3));\n const secs = parseInt(timeString.slice(-6, -4));\n const mins = parseInt(timeString.slice(-9, -7));\n const hours =\n timeString.length > 9\n ? parseInt(timeString.substring(0, timeString.indexOf(':')))\n : 0;\n\n if (\n !Number.isFinite(ts) ||\n !Number.isFinite(secs) ||\n !Number.isFinite(mins) ||\n !Number.isFinite(hours)\n ) {\n throw Error(`Malformed X-TIMESTAMP-MAP: Local:${timeString}`);\n }\n\n ts += 1000 * secs;\n ts += 60 * 1000 * mins;\n ts += 60 * 60 * 1000 * hours;\n\n return ts;\n};\n\n// From https://github.com/darkskyapp/string-hash\nconst hash = function (text: string) {\n let hash = 5381;\n let i = text.length;\n while (i) {\n hash = (hash * 33) ^ text.charCodeAt(--i);\n }\n\n return (hash >>> 0).toString();\n};\n\n// Create a unique hash id for a cue based on start/end times and text.\n// This helps timeline-controller to avoid showing repeated captions.\nexport function generateCueId(\n startTime: number,\n endTime: number,\n text: string,\n) {\n return hash(startTime.toString()) + hash(endTime.toString()) + hash(text);\n}\n\nconst calculateOffset = function (vttCCs: VTTCCs, cc, presentationTime) {\n let currCC = vttCCs[cc];\n let prevCC = vttCCs[currCC.prevCC];\n\n // This is the first discontinuity or cues have been processed since the last discontinuity\n // Offset = current discontinuity time\n if (!prevCC || (!prevCC.new && currCC.new)) {\n vttCCs.ccOffset = vttCCs.presentationOffset = currCC.start;\n currCC.new = false;\n return;\n }\n\n // There have been discontinuities since cues were last parsed.\n // Offset = time elapsed\n while (prevCC?.new) {\n vttCCs.ccOffset += currCC.start - prevCC.start;\n currCC.new = false;\n currCC = prevCC;\n prevCC = vttCCs[currCC.prevCC];\n }\n\n vttCCs.presentationOffset = presentationTime;\n};\n\nexport function parseWebVTT(\n vttByteArray: ArrayBuffer,\n initPTS: RationalTimestamp | undefined,\n vttCCs: VTTCCs,\n cc: number,\n timeOffset: number,\n callBack: (cues: VTTCue[]) => void,\n errorCallBack: (error: Error) => void,\n) {\n const parser = new VTTParser();\n // Convert byteArray into string, replacing any somewhat exotic linefeeds with \"\\n\", then split on that character.\n // Uint8Array.prototype.reduce is not implemented in IE11\n const vttLines = utf8ArrayToStr(new Uint8Array(vttByteArray))\n .trim()\n .replace(LINEBREAKS, '\\n')\n .split('\\n');\n const cues: VTTCue[] = [];\n const init90kHz = initPTS\n ? toMpegTsClockFromTimescale(initPTS.baseTime, initPTS.timescale)\n : 0;\n let cueTime = '00:00.000';\n let timestampMapMPEGTS = 0;\n let timestampMapLOCAL = 0;\n let parsingError: Error;\n let inHeader = true;\n\n parser.oncue = function (cue: VTTCue) {\n // Adjust cue timing; clamp cues to start no earlier than - and drop cues that don't end after - 0 on timeline.\n const currCC = vttCCs[cc];\n let cueOffset = vttCCs.ccOffset;\n\n // Calculate subtitle PTS offset\n const webVttMpegTsMapOffset = (timestampMapMPEGTS - init90kHz) / 90000;\n\n // Update offsets for new discontinuities\n if (currCC?.new) {\n if (timestampMapLOCAL !== undefined) {\n // When local time is provided, offset = discontinuity start time - local time\n cueOffset = vttCCs.ccOffset = currCC.start;\n } else {\n calculateOffset(vttCCs, cc, webVttMpegTsMapOffset);\n }\n }\n if (webVttMpegTsMapOffset) {\n if (!initPTS) {\n parsingError = new Error('Missing initPTS for VTT MPEGTS');\n return;\n }\n // If we have MPEGTS, offset = presentation time + discontinuity offset\n cueOffset = webVttMpegTsMapOffset - vttCCs.presentationOffset;\n }\n\n const duration = cue.endTime - cue.startTime;\n const startTime =\n normalizePts(\n (cue.startTime + cueOffset - timestampMapLOCAL) * 90000,\n timeOffset * 90000,\n ) / 90000;\n cue.startTime = Math.max(startTime, 0);\n cue.endTime = Math.max(startTime + duration, 0);\n\n //trim trailing webvtt block whitespaces\n const text = cue.text.trim();\n\n // Fix encoding of special characters\n cue.text = decodeURIComponent(encodeURIComponent(text));\n\n // If the cue was not assigned an id from the VTT file (line above the content), create one.\n if (!cue.id) {\n cue.id = generateCueId(cue.startTime, cue.endTime, text);\n }\n\n if (cue.endTime > 0) {\n cues.push(cue);\n }\n };\n\n parser.onparsingerror = function (error: Error) {\n parsingError = error;\n };\n\n parser.onflush = function () {\n if (parsingError) {\n errorCallBack(parsingError);\n return;\n }\n callBack(cues);\n };\n\n // Go through contents line by line.\n vttLines.forEach((line) => {\n if (inHeader) {\n // Look for X-TIMESTAMP-MAP in header.\n if (startsWith(line, 'X-TIMESTAMP-MAP=')) {\n // Once found, no more are allowed anyway, so stop searching.\n inHeader = false;\n // Extract LOCAL and MPEGTS.\n line\n .slice(16)\n .split(',')\n .forEach((timestamp) => {\n if (startsWith(timestamp, 'LOCAL:')) {\n cueTime = timestamp.slice(6);\n } else if (startsWith(timestamp, 'MPEGTS:')) {\n timestampMapMPEGTS = parseInt(timestamp.slice(7));\n }\n });\n try {\n // Convert cue time to seconds\n timestampMapLOCAL = cueString2millis(cueTime) / 1000;\n } catch (error) {\n parsingError = error;\n }\n // Return without parsing X-TIMESTAMP-MAP line.\n return;\n } else if (line === '') {\n inHeader = false;\n }\n }\n // Parse line by default.\n parser.parse(line + '\\n');\n });\n\n parser.flush();\n}\n","import { findBox } from './mp4-tools';\nimport { parseTimeStamp } from './vttparser';\nimport VTTCue from './vttcue';\nimport { utf8ArrayToStr } from '../demux/id3';\nimport {\n RationalTimestamp,\n toTimescaleFromScale,\n} from './timescale-conversion';\nimport { generateCueId } from './webvtt-parser';\n\nexport const IMSC1_CODEC = 'stpp.ttml.im1t';\n\n// Time format: h:m:s:frames(.subframes)\nconst HMSF_REGEX = /^(\\d{2,}):(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d+)?$/;\n\n// Time format: hours, minutes, seconds, milliseconds, frames, ticks\nconst TIME_UNIT_REGEX = /^(\\d*(?:\\.\\d*)?)(h|m|s|ms|f|t)$/;\n\nconst textAlignToLineAlign: Partial<Record<string, LineAlignSetting>> = {\n left: 'start',\n center: 'center',\n right: 'end',\n start: 'start',\n end: 'end',\n};\n\nexport function parseIMSC1(\n payload: ArrayBuffer,\n initPTS: RationalTimestamp,\n callBack: (cues: Array<VTTCue>) => any,\n errorCallBack: (error: Error) => any,\n) {\n const results = findBox(new Uint8Array(payload), ['mdat']);\n if (results.length === 0) {\n errorCallBack(new Error('Could not parse IMSC1 mdat'));\n return;\n }\n\n const ttmlList = results.map((mdat) => utf8ArrayToStr(mdat));\n\n const syncTime = toTimescaleFromScale(initPTS.baseTime, 1, initPTS.timescale);\n\n try {\n ttmlList.forEach((ttml) => callBack(parseTTML(ttml, syncTime)));\n } catch (error) {\n errorCallBack(error);\n }\n}\n\nfunction parseTTML(ttml: string, syncTime: number): Array<VTTCue> {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(ttml, 'text/xml');\n const tt = xmlDoc.getElementsByTagName('tt')[0];\n if (!tt) {\n throw new Error('Invalid ttml');\n }\n const defaultRateInfo = {\n frameRate: 30,\n subFrameRate: 1,\n frameRateMultiplier: 0,\n tickRate: 0,\n };\n const rateInfo: Object = Object.keys(defaultRateInfo).reduce(\n (result, key) => {\n result[key] = tt.getAttribute(`ttp:${key}`) || defaultRateInfo[key];\n return result;\n },\n {},\n );\n\n const trim = tt.getAttribute('xml:space') !== 'preserve';\n\n const styleElements = collectionToDictionary(\n getElementCollection(tt, 'styling', 'style'),\n );\n const regionElements = collectionToDictionary(\n getElementCollection(tt, 'layout', 'region'),\n );\n const cueElements = getElementCollection(tt, 'body', '[begin]');\n\n return [].map\n .call(cueElements, (cueElement) => {\n const cueText = getTextContent(cueElement, trim);\n\n if (!cueText || !cueElement.hasAttribute('begin')) {\n return null;\n }\n const startTime = parseTtmlTime(\n cueElement.getAttribute('begin'),\n rateInfo,\n );\n const duration = parseTtmlTime(cueElement.getAttribute('dur'), rateInfo);\n let endTime = parseTtmlTime(cueElement.getAttribute('end'), rateInfo);\n if (startTime === null) {\n throw timestampParsingError(cueElement);\n }\n if (endTime === null) {\n if (duration === null) {\n throw timestampParsingError(cueElement);\n }\n endTime = startTime + duration;\n }\n const cue = new VTTCue(startTime - syncTime, endTime - syncTime, cueText);\n cue.id = generateCueId(cue.startTime, cue.endTime, cue.text);\n\n const region = regionElements[cueElement.getAttribute('region')];\n const style = styleElements[cueElement.getAttribute('style')];\n\n // Apply styles to cue\n const styles = getTtmlStyles(region, style, styleElements);\n const { textAlign } = styles;\n if (textAlign) {\n // cue.positionAlign not settable in FF~2016\n const lineAlign = textAlignToLineAlign[textAlign];\n if (lineAlign) {\n cue.lineAlign = lineAlign;\n }\n cue.align = textAlign as AlignSetting;\n }\n Object.assign(cue, styles);\n\n return cue;\n })\n .filter((cue) => cue !== null);\n}\n\nfunction getElementCollection(\n fromElement,\n parentName,\n childName,\n): Array<HTMLElement> {\n const parent = fromElement.getElementsByTagName(parentName)[0];\n if (parent) {\n return [].slice.call(parent.querySelectorAll(childName));\n }\n return [];\n}\n\nfunction collectionToDictionary(elementsWithId: Array<HTMLElement>): {\n [id: string]: HTMLElement;\n} {\n return elementsWithId.reduce((dict, element: HTMLElement) => {\n const id = element.getAttribute('xml:id');\n if (id) {\n dict[id] = element;\n }\n return dict;\n }, {});\n}\n\nfunction getTextContent(element, trim): string {\n return [].slice.call(element.childNodes).reduce((str, node, i) => {\n if (node.nodeName === 'br' && i) {\n return str + '\\n';\n }\n if (node.childNodes?.length) {\n return getTextContent(node, trim);\n } else if (trim) {\n return str + node.textContent.trim().replace(/\\s+/g, ' ');\n }\n return str + node.textContent;\n }, '');\n}\n\nfunction getTtmlStyles(\n region,\n style,\n styleElements,\n): { [style: string]: string } {\n const ttsNs = 'http://www.w3.org/ns/ttml#styling';\n let regionStyle = null;\n const styleAttributes = [\n 'displayAlign',\n 'textAlign',\n 'color',\n 'backgroundColor',\n 'fontSize',\n 'fontFamily',\n // 'fontWeight',\n // 'lineHeight',\n // 'wrapOption',\n // 'fontStyle',\n // 'direction',\n // 'writingMode'\n ];\n\n const regionStyleName = region?.hasAttribute('style')\n ? region.getAttribute('style')\n : null;\n\n if (regionStyleName && styleElements.hasOwnProperty(regionStyleName)) {\n regionStyle = styleElements[regionStyleName];\n }\n\n return styleAttributes.reduce((styles, name) => {\n const value =\n getAttributeNS(style, ttsNs, name) ||\n getAttributeNS(region, ttsNs, name) ||\n getAttributeNS(regionStyle, ttsNs, name);\n if (value) {\n styles[name] = value;\n }\n return styles;\n }, {});\n}\n\nfunction getAttributeNS(element, ns, name): string | null {\n if (!element) {\n return null;\n }\n return element.hasAttributeNS(ns, name)\n ? element.getAttributeNS(ns, name)\n : null;\n}\n\nfunction timestampParsingError(node) {\n return new Error(`Could not parse ttml timestamp ${node}`);\n}\n\nfunction parseTtmlTime(timeAttributeValue, rateInfo): number | null {\n if (!timeAttributeValue) {\n return null;\n }\n let seconds: number | null = parseTimeStamp(timeAttributeValue);\n if (seconds === null) {\n if (HMSF_REGEX.test(timeAttributeValue)) {\n seconds = parseHoursMinutesSecondsFrames(timeAttributeValue, rateInfo);\n } else if (TIME_UNIT_REGEX.test(timeAttributeValue)) {\n seconds = parseTimeUnits(timeAttributeValue, rateInfo);\n }\n }\n return seconds;\n}\n\nfunction parseHoursMinutesSecondsFrames(timeAttributeValue, rateInfo): number {\n const m = HMSF_REGEX.exec(timeAttributeValue) as Array<any>;\n const frames = (m[4] | 0) + (m[5] | 0) / rateInfo.subFrameRate;\n return (\n (m[1] | 0) * 3600 +\n (m[2] | 0) * 60 +\n (m[3] | 0) +\n frames / rateInfo.frameRate\n );\n}\n\nfunction parseTimeUnits(timeAttributeValue, rateInfo): number {\n const m = TIME_UNIT_REGEX.exec(timeAttributeValue) as Array<any>;\n const value = Number(m[1]);\n const unit = m[2];\n switch (unit) {\n case 'h':\n return value * 3600;\n case 'm':\n return value * 60;\n case 'ms':\n return value * 1000;\n case 'f':\n return value / rateInfo.frameRate;\n case 't':\n return value / rateInfo.tickRate;\n }\n return value;\n}\n","import { Events } from '../events';\nimport Cea608Parser, { CaptionScreen } from '../utils/cea-608-parser';\nimport OutputFilter from '../utils/output-filter';\nimport { parseWebVTT } from '../utils/webvtt-parser';\nimport {\n sendAddTrackEvent,\n clearCurrentCues,\n addCueToTrack,\n removeCuesInRange,\n filterSubtitleTracks,\n} from '../utils/texttrack-utils';\nimport {\n subtitleOptionsIdentical,\n subtitleTrackMatchesTextTrack,\n} from '../utils/media-option-attributes';\nimport { parseIMSC1, IMSC1_CODEC } from '../utils/imsc1-ttml-parser';\nimport { appendUint8Array } from '../utils/mp4-tools';\nimport { PlaylistLevelType } from '../types/loader';\nimport { Fragment } from '../loader/fragment';\nimport type {\n FragParsingUserdataData,\n FragLoadedData,\n FragDecryptedData,\n MediaAttachingData,\n ManifestLoadedData,\n InitPTSFoundData,\n SubtitleTracksUpdatedData,\n BufferFlushingData,\n FragLoadingData,\n} from '../types/events';\nimport { logger } from '../utils/logger';\nimport type Hls from '../hls';\nimport type { ComponentAPI } from '../types/component-api';\nimport type { HlsConfig } from '../config';\nimport type { CuesInterface } from '../utils/cues';\nimport type { MediaPlaylist } from '../types/media-playlist';\nimport type { VTTCCs } from '../types/vtt';\nimport type { RationalTimestamp } from '../utils/timescale-conversion';\n\ntype TrackProperties = {\n label: string;\n languageCode: string;\n media?: MediaPlaylist;\n};\n\ntype NonNativeCaptionsTrack = {\n _id?: string;\n label: string;\n kind: string;\n default: boolean;\n closedCaptions?: MediaPlaylist;\n subtitleTrack?: MediaPlaylist;\n};\n\nexport class TimelineController implements ComponentAPI {\n private hls: Hls;\n private media: HTMLMediaElement | null = null;\n private config: HlsConfig;\n private enabled: boolean = true;\n private Cues: CuesInterface;\n private textTracks: Array<TextTrack> = [];\n private tracks: Array<MediaPlaylist> = [];\n private initPTS: RationalTimestamp[] = [];\n private unparsedVttFrags: Array<FragLoadedData | FragDecryptedData> = [];\n private captionsTracks: Record<string, TextTrack> = {};\n private nonNativeCaptionsTracks: Record<string, NonNativeCaptionsTrack> = {};\n private cea608Parser1?: Cea608Parser;\n private cea608Parser2?: Cea608Parser;\n private lastCc: number = -1; // Last video (CEA-608) fragment CC\n private lastSn: number = -1; // Last video (CEA-608) fragment MSN\n private lastPartIndex: number = -1; // Last video (CEA-608) fragment Part Index\n private prevCC: number = -1; // Last subtitle fragment CC\n private vttCCs: VTTCCs = newVTTCCs();\n private captionsProperties: {\n textTrack1: TrackProperties;\n textTrack2: TrackProperties;\n textTrack3: TrackProperties;\n textTrack4: TrackProperties;\n };\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.config = hls.config;\n this.Cues = hls.config.cueHandler;\n\n this.captionsProperties = {\n textTrack1: {\n label: this.config.captionsTextTrack1Label,\n languageCode: this.config.captionsTextTrack1LanguageCode,\n },\n textTrack2: {\n label: this.config.captionsTextTrack2Label,\n languageCode: this.config.captionsTextTrack2LanguageCode,\n },\n textTrack3: {\n label: this.config.captionsTextTrack3Label,\n languageCode: this.config.captionsTextTrack3LanguageCode,\n },\n textTrack4: {\n label: this.config.captionsTextTrack4Label,\n languageCode: this.config.captionsTextTrack4LanguageCode,\n },\n };\n\n hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.on(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.on(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);\n hls.on(Events.FRAG_DECRYPTED, this.onFragDecrypted, this);\n hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.on(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n }\n\n public destroy(): void {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(Events.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this);\n hls.off(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.off(Events.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this);\n hls.off(Events.FRAG_DECRYPTED, this.onFragDecrypted, this);\n hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.off(Events.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n // @ts-ignore\n this.hls = this.config = null;\n this.cea608Parser1 = this.cea608Parser2 = undefined;\n }\n\n private initCea608Parsers() {\n if (\n this.config.enableCEA708Captions &&\n (!this.cea608Parser1 || !this.cea608Parser2)\n ) {\n const channel1 = new OutputFilter(this, 'textTrack1');\n const channel2 = new OutputFilter(this, 'textTrack2');\n const channel3 = new OutputFilter(this, 'textTrack3');\n const channel4 = new OutputFilter(this, 'textTrack4');\n this.cea608Parser1 = new Cea608Parser(1, channel1, channel2);\n this.cea608Parser2 = new Cea608Parser(3, channel3, channel4);\n }\n }\n\n public addCues(\n trackName: string,\n startTime: number,\n endTime: number,\n screen: CaptionScreen,\n cueRanges: Array<[number, number]>,\n ) {\n // skip cues which overlap more than 50% with previously parsed time ranges\n let merged = false;\n for (let i = cueRanges.length; i--; ) {\n const cueRange = cueRanges[i];\n const overlap = intersection(\n cueRange[0],\n cueRange[1],\n startTime,\n endTime,\n );\n if (overlap >= 0) {\n cueRange[0] = Math.min(cueRange[0], startTime);\n cueRange[1] = Math.max(cueRange[1], endTime);\n merged = true;\n if (overlap / (endTime - startTime) > 0.5) {\n return;\n }\n }\n }\n if (!merged) {\n cueRanges.push([startTime, endTime]);\n }\n\n if (this.config.renderTextTracksNatively) {\n const track = this.captionsTracks[trackName];\n this.Cues.newCue(track, startTime, endTime, screen);\n } else {\n const cues = this.Cues.newCue(null, startTime, endTime, screen);\n this.hls.trigger(Events.CUES_PARSED, {\n type: 'captions',\n cues,\n track: trackName,\n });\n }\n }\n\n // Triggered when an initial PTS is found; used for synchronisation of WebVTT.\n private onInitPtsFound(\n event: Events.INIT_PTS_FOUND,\n { frag, id, initPTS, timescale }: InitPTSFoundData,\n ) {\n const { unparsedVttFrags } = this;\n if (id === 'main') {\n this.initPTS[frag.cc] = { baseTime: initPTS, timescale };\n }\n\n // Due to asynchronous processing, initial PTS may arrive later than the first VTT fragments are loaded.\n // Parse any unparsed fragments upon receiving the initial PTS.\n if (unparsedVttFrags.length) {\n this.unparsedVttFrags = [];\n unparsedVttFrags.forEach((frag) => {\n this.onFragLoaded(Events.FRAG_LOADED, frag as FragLoadedData);\n });\n }\n }\n\n private getExistingTrack(label: string, language: string): TextTrack | null {\n const { media } = this;\n if (media) {\n for (let i = 0; i < media.textTracks.length; i++) {\n const textTrack = media.textTracks[i];\n if (\n canReuseVttTextTrack(textTrack, {\n name: label,\n lang: language,\n attrs: {} as any,\n })\n ) {\n return textTrack;\n }\n }\n }\n return null;\n }\n\n public createCaptionsTrack(trackName: string) {\n if (this.config.renderTextTracksNatively) {\n this.createNativeTrack(trackName);\n } else {\n this.createNonNativeTrack(trackName);\n }\n }\n\n private createNativeTrack(trackName: string) {\n if (this.captionsTracks[trackName]) {\n return;\n }\n const { captionsProperties, captionsTracks, media } = this;\n const { label, languageCode } = captionsProperties[trackName];\n // Enable reuse of existing text track.\n const existingTrack = this.getExistingTrack(label, languageCode);\n if (!existingTrack) {\n const textTrack = this.createTextTrack('captions', label, languageCode);\n if (textTrack) {\n // Set a special property on the track so we know it's managed by Hls.js\n textTrack[trackName] = true;\n captionsTracks[trackName] = textTrack;\n }\n } else {\n captionsTracks[trackName] = existingTrack;\n clearCurrentCues(captionsTracks[trackName]);\n sendAddTrackEvent(captionsTracks[trackName], media as HTMLMediaElement);\n }\n }\n\n private createNonNativeTrack(trackName: string) {\n if (this.nonNativeCaptionsTracks[trackName]) {\n return;\n }\n // Create a list of a single track for the provider to consume\n const trackProperties: TrackProperties = this.captionsProperties[trackName];\n if (!trackProperties) {\n return;\n }\n const label = trackProperties.label as string;\n const track = {\n _id: trackName,\n label,\n kind: 'captions',\n default: trackProperties.media ? !!trackProperties.media.default : false,\n closedCaptions: trackProperties.media,\n };\n this.nonNativeCaptionsTracks[trackName] = track;\n this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: [track] });\n }\n\n private createTextTrack(\n kind: TextTrackKind,\n label: string,\n lang?: string,\n ): TextTrack | undefined {\n const media = this.media;\n if (!media) {\n return;\n }\n return media.addTextTrack(kind, label, lang);\n }\n\n private onMediaAttaching(\n event: Events.MEDIA_ATTACHING,\n data: MediaAttachingData,\n ) {\n this.media = data.media;\n this._cleanTracks();\n }\n\n private onMediaDetaching() {\n const { captionsTracks } = this;\n Object.keys(captionsTracks).forEach((trackName) => {\n clearCurrentCues(captionsTracks[trackName]);\n delete captionsTracks[trackName];\n });\n this.nonNativeCaptionsTracks = {};\n }\n\n private onManifestLoading() {\n // Detect discontinuity in video fragment (CEA-608) parsing\n this.lastCc = -1;\n this.lastSn = -1;\n this.lastPartIndex = -1;\n // Detect discontinuity in subtitle manifests\n this.prevCC = -1;\n this.vttCCs = newVTTCCs();\n // Reset tracks\n this._cleanTracks();\n this.tracks = [];\n this.captionsTracks = {};\n this.nonNativeCaptionsTracks = {};\n this.textTracks = [];\n this.unparsedVttFrags = [];\n this.initPTS = [];\n if (this.cea608Parser1 && this.cea608Parser2) {\n this.cea608Parser1.reset();\n this.cea608Parser2.reset();\n }\n }\n\n private _cleanTracks() {\n // clear outdated subtitles\n const { media } = this;\n if (!media) {\n return;\n }\n const textTracks = media.textTracks;\n if (textTracks) {\n for (let i = 0; i < textTracks.length; i++) {\n clearCurrentCues(textTracks[i]);\n }\n }\n }\n\n private onSubtitleTracksUpdated(\n event: Events.SUBTITLE_TRACKS_UPDATED,\n data: SubtitleTracksUpdatedData,\n ) {\n const tracks: Array<MediaPlaylist> = data.subtitleTracks || [];\n const hasIMSC1 = tracks.some((track) => track.textCodec === IMSC1_CODEC);\n if (this.config.enableWebVTT || (hasIMSC1 && this.config.enableIMSC1)) {\n const listIsIdentical = subtitleOptionsIdentical(this.tracks, tracks);\n if (listIsIdentical) {\n this.tracks = tracks;\n return;\n }\n this.textTracks = [];\n this.tracks = tracks;\n\n if (this.config.renderTextTracksNatively) {\n const media = this.media;\n const inUseTracks: (TextTrack | null)[] | null = media\n ? filterSubtitleTracks(media.textTracks)\n : null;\n\n this.tracks.forEach((track, index) => {\n // Reuse tracks with the same label and lang, but do not reuse 608/708 tracks\n let textTrack: TextTrack | undefined;\n if (inUseTracks) {\n let inUseTrack: TextTrack | null = null;\n for (let i = 0; i < inUseTracks.length; i++) {\n if (\n inUseTracks[i] &&\n canReuseVttTextTrack(inUseTracks[i], track)\n ) {\n inUseTrack = inUseTracks[i];\n inUseTracks[i] = null;\n break;\n }\n }\n if (inUseTrack) {\n textTrack = inUseTrack;\n }\n }\n if (textTrack) {\n clearCurrentCues(textTrack);\n } else {\n const textTrackKind = captionsOrSubtitlesFromCharacteristics(track);\n textTrack = this.createTextTrack(\n textTrackKind,\n track.name,\n track.lang,\n );\n if (textTrack) {\n textTrack.mode = 'disabled';\n }\n }\n if (textTrack) {\n this.textTracks.push(textTrack);\n }\n });\n // Warn when video element has captions or subtitle TextTracks carried over from another source\n if (inUseTracks?.length) {\n const unusedTextTracks = inUseTracks\n .filter((t) => t !== null)\n .map((t) => (t as TextTrack).label);\n if (unusedTextTracks.length) {\n logger.warn(\n `Media element contains unused subtitle tracks: ${unusedTextTracks.join(\n ', ',\n )}. Replace media element for each source to clear TextTracks and captions menu.`,\n );\n }\n }\n } else if (this.tracks.length) {\n // Create a list of tracks for the provider to consume\n const tracksList = this.tracks.map((track) => {\n return {\n label: track.name,\n kind: track.type.toLowerCase(),\n default: track.default,\n subtitleTrack: track,\n };\n });\n this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND, {\n tracks: tracksList,\n });\n }\n }\n }\n\n private onManifestLoaded(\n event: Events.MANIFEST_LOADED,\n data: ManifestLoadedData,\n ) {\n if (this.config.enableCEA708Captions && data.captions) {\n data.captions.forEach((captionsTrack) => {\n const instreamIdMatch = /(?:CC|SERVICE)([1-4])/.exec(\n captionsTrack.instreamId as string,\n );\n if (!instreamIdMatch) {\n return;\n }\n const trackName = `textTrack${instreamIdMatch[1]}`;\n const trackProperties: TrackProperties =\n this.captionsProperties[trackName];\n if (!trackProperties) {\n return;\n }\n trackProperties.label = captionsTrack.name;\n if (captionsTrack.lang) {\n // optional attribute\n trackProperties.languageCode = captionsTrack.lang;\n }\n trackProperties.media = captionsTrack;\n });\n }\n }\n\n private closedCaptionsForLevel(frag: Fragment): string | undefined {\n const level = this.hls.levels[frag.level];\n return level?.attrs['CLOSED-CAPTIONS'];\n }\n\n private onFragLoading(event: Events.FRAG_LOADING, data: FragLoadingData) {\n // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack\n if (this.enabled && data.frag.type === PlaylistLevelType.MAIN) {\n const { cea608Parser1, cea608Parser2, lastSn } = this;\n const { cc, sn } = data.frag;\n const partIndex = data.part?.index ?? -1;\n if (cea608Parser1 && cea608Parser2) {\n if (\n sn !== lastSn + 1 ||\n (sn === lastSn && partIndex !== this.lastPartIndex + 1) ||\n cc !== this.lastCc\n ) {\n cea608Parser1.reset();\n cea608Parser2.reset();\n }\n }\n this.lastCc = cc as number;\n this.lastSn = sn as number;\n this.lastPartIndex = partIndex;\n }\n }\n\n private onFragLoaded(\n event: Events.FRAG_LOADED,\n data: FragDecryptedData | FragLoadedData,\n ) {\n const { frag, payload } = data;\n if (frag.type === PlaylistLevelType.SUBTITLE) {\n // If fragment is subtitle type, parse as WebVTT.\n if (payload.byteLength) {\n const decryptData = frag.decryptdata;\n // fragment after decryption has a stats object\n const decrypted = 'stats' in data;\n // If the subtitles are not encrypted, parse VTTs now. Otherwise, we need to wait.\n if (decryptData == null || !decryptData.encrypted || decrypted) {\n const trackPlaylistMedia = this.tracks[frag.level];\n const vttCCs = this.vttCCs;\n if (!vttCCs[frag.cc]) {\n vttCCs[frag.cc] = {\n start: frag.start,\n prevCC: this.prevCC,\n new: true,\n };\n this.prevCC = frag.cc;\n }\n if (\n trackPlaylistMedia &&\n trackPlaylistMedia.textCodec === IMSC1_CODEC\n ) {\n this._parseIMSC1(frag, payload);\n } else {\n this._parseVTTs(data);\n }\n }\n } else {\n // In case there is no payload, finish unsuccessfully.\n this.hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag,\n error: new Error('Empty subtitle payload'),\n });\n }\n }\n }\n\n private _parseIMSC1(frag: Fragment, payload: ArrayBuffer) {\n const hls = this.hls;\n parseIMSC1(\n payload,\n this.initPTS[frag.cc],\n (cues) => {\n this._appendCues(cues, frag.level);\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: true,\n frag: frag,\n });\n },\n (error) => {\n logger.log(`Failed to parse IMSC1: ${error}`);\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error,\n });\n },\n );\n }\n\n private _parseVTTs(data: FragDecryptedData | FragLoadedData) {\n const { frag, payload } = data;\n // We need an initial synchronisation PTS. Store fragments as long as none has arrived\n const { initPTS, unparsedVttFrags } = this;\n const maxAvCC = initPTS.length - 1;\n if (!initPTS[frag.cc] && maxAvCC === -1) {\n unparsedVttFrags.push(data);\n return;\n }\n\n const hls = this.hls;\n // Parse the WebVTT file contents.\n const payloadWebVTT = frag.initSegment?.data\n ? appendUint8Array(frag.initSegment.data, new Uint8Array(payload))\n : payload;\n parseWebVTT(\n payloadWebVTT,\n this.initPTS[frag.cc],\n this.vttCCs,\n frag.cc,\n frag.start,\n (cues) => {\n this._appendCues(cues, frag.level);\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: true,\n frag: frag,\n });\n },\n (error) => {\n const missingInitPTS =\n error.message === 'Missing initPTS for VTT MPEGTS';\n if (missingInitPTS) {\n unparsedVttFrags.push(data);\n } else {\n this._fallbackToIMSC1(frag, payload);\n }\n // Something went wrong while parsing. Trigger event with success false.\n logger.log(`Failed to parse VTT cue: ${error}`);\n if (missingInitPTS && maxAvCC > frag.cc) {\n return;\n }\n hls.trigger(Events.SUBTITLE_FRAG_PROCESSED, {\n success: false,\n frag: frag,\n error,\n });\n },\n );\n }\n\n private _fallbackToIMSC1(frag: Fragment, payload: ArrayBuffer) {\n // If textCodec is unknown, try parsing as IMSC1. Set textCodec based on the result\n const trackPlaylistMedia = this.tracks[frag.level];\n if (!trackPlaylistMedia.textCodec) {\n parseIMSC1(\n payload,\n this.initPTS[frag.cc],\n () => {\n trackPlaylistMedia.textCodec = IMSC1_CODEC;\n this._parseIMSC1(frag, payload);\n },\n () => {\n trackPlaylistMedia.textCodec = 'wvtt';\n },\n );\n }\n }\n\n private _appendCues(cues: VTTCue[], fragLevel: number) {\n const hls = this.hls;\n if (this.config.renderTextTracksNatively) {\n const textTrack = this.textTracks[fragLevel];\n // WebVTTParser.parse is an async method and if the currently selected text track mode is set to \"disabled\"\n // before parsing is done then don't try to access currentTrack.cues.getCueById as cues will be null\n // and trying to access getCueById method of cues will throw an exception\n // Because we check if the mode is disabled, we can force check `cues` below. They can't be null.\n if (!textTrack || textTrack.mode === 'disabled') {\n return;\n }\n cues.forEach((cue) => addCueToTrack(textTrack, cue));\n } else {\n const currentTrack = this.tracks[fragLevel];\n if (!currentTrack) {\n return;\n }\n const track = currentTrack.default ? 'default' : 'subtitles' + fragLevel;\n hls.trigger(Events.CUES_PARSED, { type: 'subtitles', cues, track });\n }\n }\n\n private onFragDecrypted(\n event: Events.FRAG_DECRYPTED,\n data: FragDecryptedData,\n ) {\n const { frag } = data;\n if (frag.type === PlaylistLevelType.SUBTITLE) {\n this.onFragLoaded(Events.FRAG_LOADED, data as unknown as FragLoadedData);\n }\n }\n\n private onSubtitleTracksCleared() {\n this.tracks = [];\n this.captionsTracks = {};\n }\n\n private onFragParsingUserdata(\n event: Events.FRAG_PARSING_USERDATA,\n data: FragParsingUserdataData,\n ) {\n this.initCea608Parsers();\n const { cea608Parser1, cea608Parser2 } = this;\n if (!this.enabled || !cea608Parser1 || !cea608Parser2) {\n return;\n }\n const { frag, samples } = data;\n if (\n frag.type === PlaylistLevelType.MAIN &&\n this.closedCaptionsForLevel(frag) === 'NONE'\n ) {\n return;\n }\n // If the event contains captions (found in the bytes property), push all bytes into the parser immediately\n // It will create the proper timestamps based on the PTS value\n for (let i = 0; i < samples.length; i++) {\n const ccBytes = samples[i].bytes;\n if (ccBytes) {\n const ccdatas = this.extractCea608Data(ccBytes);\n cea608Parser1.addData(samples[i].pts, ccdatas[0]);\n cea608Parser2.addData(samples[i].pts, ccdatas[1]);\n }\n }\n }\n\n onBufferFlushing(\n event: Events.BUFFER_FLUSHING,\n { startOffset, endOffset, endOffsetSubtitles, type }: BufferFlushingData,\n ) {\n const { media } = this;\n if (!media || media.currentTime < endOffset) {\n return;\n }\n // Clear 608 caption cues from the captions TextTracks when the video back buffer is flushed\n // Forward cues are never removed because we can loose streamed 608 content from recent fragments\n if (!type || type === 'video') {\n const { captionsTracks } = this;\n Object.keys(captionsTracks).forEach((trackName) =>\n removeCuesInRange(captionsTracks[trackName], startOffset, endOffset),\n );\n }\n if (this.config.renderTextTracksNatively) {\n // Clear VTT/IMSC1 subtitle cues from the subtitle TextTracks when the back buffer is flushed\n if (startOffset === 0 && endOffsetSubtitles !== undefined) {\n const { textTracks } = this;\n Object.keys(textTracks).forEach((trackName) =>\n removeCuesInRange(\n textTracks[trackName],\n startOffset,\n endOffsetSubtitles,\n ),\n );\n }\n }\n }\n\n private extractCea608Data(byteArray: Uint8Array): number[][] {\n const actualCCBytes: number[][] = [[], []];\n const count = byteArray[0] & 0x1f;\n let position = 2;\n\n for (let j = 0; j < count; j++) {\n const tmpByte = byteArray[position++];\n const ccbyte1 = 0x7f & byteArray[position++];\n const ccbyte2 = 0x7f & byteArray[position++];\n if (ccbyte1 === 0 && ccbyte2 === 0) {\n continue;\n }\n const ccValid = (0x04 & tmpByte) !== 0; // Support all four channels\n if (ccValid) {\n const ccType = 0x03 & tmpByte;\n if (\n 0x00 /* CEA608 field1*/ === ccType ||\n 0x01 /* CEA608 field2*/ === ccType\n ) {\n // Exclude CEA708 CC data.\n actualCCBytes[ccType].push(ccbyte1);\n actualCCBytes[ccType].push(ccbyte2);\n }\n }\n }\n return actualCCBytes;\n }\n}\n\nfunction captionsOrSubtitlesFromCharacteristics(\n track: Pick<MediaPlaylist, 'name' | 'lang' | 'attrs' | 'characteristics'>,\n): TextTrackKind {\n if (track.characteristics) {\n if (\n /transcribes-spoken-dialog/gi.test(track.characteristics) &&\n /describes-music-and-sound/gi.test(track.characteristics)\n ) {\n return 'captions';\n }\n }\n\n return 'subtitles';\n}\n\nfunction canReuseVttTextTrack(\n inUseTrack: TextTrack | null,\n manifestTrack: Pick<\n MediaPlaylist,\n 'name' | 'lang' | 'attrs' | 'characteristics'\n >,\n): boolean {\n return (\n !!inUseTrack &&\n inUseTrack.kind === captionsOrSubtitlesFromCharacteristics(manifestTrack) &&\n subtitleTrackMatchesTextTrack(manifestTrack, inUseTrack)\n );\n}\n\nfunction intersection(x1: number, x2: number, y1: number, y2: number): number {\n return Math.min(x2, y2) - Math.max(x1, y1);\n}\n\nfunction newVTTCCs(): VTTCCs {\n return {\n ccOffset: 0,\n presentationOffset: 0,\n 0: {\n start: 0,\n prevCC: -1,\n new: true,\n },\n };\n}\n","/*\n * cap stream level to media size dimension controller\n */\n\nimport { Events } from '../events';\nimport type { Level } from '../types/level';\nimport type {\n ManifestParsedData,\n BufferCodecsData,\n MediaAttachingData,\n FPSDropLevelCappingData,\n LevelsUpdatedData,\n} from '../types/events';\nimport StreamController from './stream-controller';\nimport { logger } from '../utils/logger';\nimport type { ComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\n\ntype RestrictedLevel = { width: number; height: number; bitrate: number };\nclass CapLevelController implements ComponentAPI {\n private hls: Hls;\n private autoLevelCapping: number;\n private firstLevel: number;\n private media: HTMLVideoElement | null;\n private restrictedLevels: RestrictedLevel[];\n private timer: number | undefined;\n private clientRect: { width: number; height: number } | null;\n private streamController?: StreamController;\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n this.firstLevel = -1;\n this.media = null;\n this.restrictedLevels = [];\n this.timer = undefined;\n this.clientRect = null;\n\n this.registerListeners();\n }\n\n public setStreamController(streamController: StreamController) {\n this.streamController = streamController;\n }\n\n public destroy() {\n if (this.hls) {\n this.unregisterListener();\n }\n if (this.timer) {\n this.stopCapping();\n }\n this.media = null;\n this.clientRect = null;\n // @ts-ignore\n this.hls = this.streamController = null;\n }\n\n protected registerListeners() {\n const { hls } = this;\n hls.on(Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);\n hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n }\n\n protected unregisterListener() {\n const { hls } = this;\n hls.off(Events.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this);\n hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n }\n\n protected onFpsDropLevelCapping(\n event: Events.FPS_DROP_LEVEL_CAPPING,\n data: FPSDropLevelCappingData,\n ) {\n // Don't add a restricted level more than once\n const level = this.hls.levels[data.droppedLevel];\n if (this.isLevelAllowed(level)) {\n this.restrictedLevels.push({\n bitrate: level.bitrate,\n height: level.height,\n width: level.width,\n });\n }\n }\n\n protected onMediaAttaching(\n event: Events.MEDIA_ATTACHING,\n data: MediaAttachingData,\n ) {\n this.media = data.media instanceof HTMLVideoElement ? data.media : null;\n this.clientRect = null;\n if (this.timer && this.hls.levels.length) {\n this.detectPlayerSize();\n }\n }\n\n protected onManifestParsed(\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ) {\n const hls = this.hls;\n this.restrictedLevels = [];\n this.firstLevel = data.firstLevel;\n if (hls.config.capLevelToPlayerSize && data.video) {\n // Start capping immediately if the manifest has signaled video codecs\n this.startCapping();\n }\n }\n\n private onLevelsUpdated(\n event: Events.LEVELS_UPDATED,\n data: LevelsUpdatedData,\n ) {\n if (this.timer && Number.isFinite(this.autoLevelCapping)) {\n this.detectPlayerSize();\n }\n }\n\n // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted\n // to the first level\n protected onBufferCodecs(\n event: Events.BUFFER_CODECS,\n data: BufferCodecsData,\n ) {\n const hls = this.hls;\n if (hls.config.capLevelToPlayerSize && data.video) {\n // If the manifest did not signal a video codec capping has been deferred until we're certain video is present\n this.startCapping();\n }\n }\n\n protected onMediaDetaching() {\n this.stopCapping();\n }\n\n detectPlayerSize() {\n if (this.media) {\n if (this.mediaHeight <= 0 || this.mediaWidth <= 0) {\n this.clientRect = null;\n return;\n }\n const levels = this.hls.levels;\n if (levels.length) {\n const hls = this.hls;\n const maxLevel = this.getMaxLevel(levels.length - 1);\n if (maxLevel !== this.autoLevelCapping) {\n logger.log(\n `Setting autoLevelCapping to ${maxLevel}: ${levels[maxLevel].height}p@${levels[maxLevel].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`,\n );\n }\n hls.autoLevelCapping = maxLevel;\n if (\n hls.autoLevelCapping > this.autoLevelCapping &&\n this.streamController\n ) {\n // if auto level capping has a higher value for the previous one, flush the buffer using nextLevelSwitch\n // usually happen when the user go to the fullscreen mode.\n this.streamController.nextLevelSwitch();\n }\n this.autoLevelCapping = hls.autoLevelCapping;\n }\n }\n }\n\n /*\n * returns level should be the one with the dimensions equal or greater than the media (player) dimensions (so the video will be downscaled)\n */\n getMaxLevel(capLevelIndex: number): number {\n const levels = this.hls.levels;\n if (!levels.length) {\n return -1;\n }\n\n const validLevels = levels.filter(\n (level, index) => this.isLevelAllowed(level) && index <= capLevelIndex,\n );\n\n this.clientRect = null;\n return CapLevelController.getMaxLevelByMediaSize(\n validLevels,\n this.mediaWidth,\n this.mediaHeight,\n );\n }\n\n startCapping() {\n if (this.timer) {\n // Don't reset capping if started twice; this can happen if the manifest signals a video codec\n return;\n }\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n self.clearInterval(this.timer);\n this.timer = self.setInterval(this.detectPlayerSize.bind(this), 1000);\n this.detectPlayerSize();\n }\n\n stopCapping() {\n this.restrictedLevels = [];\n this.firstLevel = -1;\n this.autoLevelCapping = Number.POSITIVE_INFINITY;\n if (this.timer) {\n self.clearInterval(this.timer);\n this.timer = undefined;\n }\n }\n\n getDimensions(): { width: number; height: number } {\n if (this.clientRect) {\n return this.clientRect;\n }\n const media = this.media;\n const boundsRect = {\n width: 0,\n height: 0,\n };\n\n if (media) {\n const clientRect = media.getBoundingClientRect();\n boundsRect.width = clientRect.width;\n boundsRect.height = clientRect.height;\n if (!boundsRect.width && !boundsRect.height) {\n // When the media element has no width or height (equivalent to not being in the DOM),\n // then use its width and height attributes (media.width, media.height)\n boundsRect.width =\n clientRect.right - clientRect.left || media.width || 0;\n boundsRect.height =\n clientRect.bottom - clientRect.top || media.height || 0;\n }\n }\n this.clientRect = boundsRect;\n return boundsRect;\n }\n\n get mediaWidth(): number {\n return this.getDimensions().width * this.contentScaleFactor;\n }\n\n get mediaHeight(): number {\n return this.getDimensions().height * this.contentScaleFactor;\n }\n\n get contentScaleFactor(): number {\n let pixelRatio = 1;\n if (!this.hls.config.ignoreDevicePixelRatio) {\n try {\n pixelRatio = self.devicePixelRatio;\n } catch (e) {\n /* no-op */\n }\n }\n\n return pixelRatio;\n }\n\n private isLevelAllowed(level: Level): boolean {\n const restrictedLevels = this.restrictedLevels;\n return !restrictedLevels.some((restrictedLevel) => {\n return (\n level.bitrate === restrictedLevel.bitrate &&\n level.width === restrictedLevel.width &&\n level.height === restrictedLevel.height\n );\n });\n }\n\n static getMaxLevelByMediaSize(\n levels: Array<Level>,\n width: number,\n height: number,\n ): number {\n if (!levels?.length) {\n return -1;\n }\n\n // Levels can have the same dimensions but differing bandwidths - since levels are ordered, we can look to the next\n // to determine whether we've chosen the greatest bandwidth for the media's dimensions\n const atGreatestBandwidth = (\n curLevel: Level,\n nextLevel: Level | undefined,\n ) => {\n if (!nextLevel) {\n return true;\n }\n\n return (\n curLevel.width !== nextLevel.width ||\n curLevel.height !== nextLevel.height\n );\n };\n\n // If we run through the loop without breaking, the media's dimensions are greater than every level, so default to\n // the max level\n let maxLevelIndex = levels.length - 1;\n // Prevent changes in aspect-ratio from causing capping to toggle back and forth\n const squareSize = Math.max(width, height);\n for (let i = 0; i < levels.length; i += 1) {\n const level = levels[i];\n if (\n (level.width >= squareSize || level.height >= squareSize) &&\n atGreatestBandwidth(level, levels[i + 1])\n ) {\n maxLevelIndex = i;\n break;\n }\n }\n\n return maxLevelIndex;\n }\n}\n\nexport default CapLevelController;\n","/**\n * @author Stephan Hesse <disparat@gmail.com> | <tchakabam@gmail.com>\n *\n * DRM support for Hls.js\n */\nimport { Events } from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { logger } from '../utils/logger';\nimport {\n getKeySystemsForConfig,\n getSupportedMediaKeySystemConfigurations,\n keySystemFormatToKeySystemDomain,\n keySystemIdToKeySystemDomain,\n KeySystems,\n keySystemDomainToKeySystemFormat as keySystemToKeySystemFormat,\n parsePlayReadyWRM,\n requestMediaKeySystemAccess,\n} from '../utils/mediakeys-helper';\nimport { strToUtf8array } from '../utils/keysystem-util';\nimport { base64Decode } from '../utils/numeric-encoding-utils';\nimport { DecryptData, LevelKey } from '../loader/level-key';\nimport Hex from '../utils/hex';\nimport {\n bin2str,\n parseMultiPssh,\n parseSinf,\n PsshData,\n PsshInvalidResult,\n} from '../utils/mp4-tools';\nimport { EventEmitter } from 'eventemitter3';\nimport type Hls from '../hls';\nimport type { ComponentAPI } from '../types/component-api';\nimport type {\n MediaAttachedData,\n KeyLoadedData,\n ErrorData,\n ManifestLoadedData,\n} from '../types/events';\nimport type { EMEControllerConfig, HlsConfig, LoadPolicy } from '../config';\nimport type { Fragment } from '../loader/fragment';\nimport type {\n Loader,\n LoaderCallbacks,\n LoaderConfiguration,\n LoaderContext,\n} from '../types/loader';\nimport type { KeySystemFormats } from '../utils/mediakeys-helper';\n\nconst LOGGER_PREFIX = '[eme]';\n\ninterface KeySystemAccessPromises {\n keySystemAccess: Promise<MediaKeySystemAccess>;\n mediaKeys?: Promise<MediaKeys>;\n certificate?: Promise<BufferSource | void>;\n}\n\nexport interface MediaKeySessionContext {\n keySystem: KeySystems;\n mediaKeys: MediaKeys;\n decryptdata: LevelKey;\n mediaKeysSession: MediaKeySession;\n keyStatus: MediaKeyStatus;\n licenseXhr?: XMLHttpRequest;\n _onmessage?: (this: MediaKeySession, ev: MediaKeyMessageEvent) => any;\n _onkeystatuseschange?: (this: MediaKeySession, ev: Event) => any;\n}\n\n/**\n * Controller to deal with encrypted media extensions (EME)\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API\n *\n * @class\n * @constructor\n */\nclass EMEController implements ComponentAPI {\n public static CDMCleanupPromise: Promise<void> | void;\n\n private readonly hls: Hls;\n private readonly config: EMEControllerConfig & {\n loader: { new (confg: HlsConfig): Loader<LoaderContext> };\n certLoadPolicy: LoadPolicy;\n keyLoadPolicy: LoadPolicy;\n };\n private media: HTMLMediaElement | null = null;\n private keyFormatPromise: Promise<KeySystemFormats> | null = null;\n private keySystemAccessPromises: {\n [keysystem: string]: KeySystemAccessPromises;\n } = {};\n private _requestLicenseFailureCount: number = 0;\n private mediaKeySessions: MediaKeySessionContext[] = [];\n private keyIdToKeySessionPromise: {\n [keyId: string]: Promise<MediaKeySessionContext>;\n } = {};\n private setMediaKeysQueue: Promise<void>[] = EMEController.CDMCleanupPromise\n ? [EMEController.CDMCleanupPromise]\n : [];\n\n private debug: (msg: any) => void = logger.debug.bind(logger, LOGGER_PREFIX);\n private log: (msg: any) => void = logger.log.bind(logger, LOGGER_PREFIX);\n private warn: (msg: any) => void = logger.warn.bind(logger, LOGGER_PREFIX);\n private error: (msg: any) => void = logger.error.bind(logger, LOGGER_PREFIX);\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.config = hls.config;\n this.registerListeners();\n }\n\n public destroy() {\n this.unregisterListeners();\n this.onMediaDetached();\n // Remove any references that could be held in config options or callbacks\n const config = this.config;\n config.requestMediaKeySystemAccessFunc = null;\n config.licenseXhrSetup = config.licenseResponseCallback = undefined;\n config.drmSystems = config.drmSystemOptions = {};\n // @ts-ignore\n this.hls = this.config = this.keyIdToKeySessionPromise = null;\n // @ts-ignore\n this.onMediaEncrypted = this.onWaitingForKey = null;\n }\n\n private registerListeners() {\n this.hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.on(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n this.hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n }\n\n private unregisterListeners() {\n this.hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n this.hls.off(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n this.hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n this.hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n }\n\n private getLicenseServerUrl(keySystem: KeySystems): string | undefined {\n const { drmSystems, widevineLicenseUrl } = this.config;\n const keySystemConfiguration = drmSystems[keySystem];\n\n if (keySystemConfiguration) {\n return keySystemConfiguration.licenseUrl;\n }\n\n // For backward compatibility\n if (keySystem === KeySystems.WIDEVINE && widevineLicenseUrl) {\n return widevineLicenseUrl;\n }\n }\n\n private getLicenseServerUrlOrThrow(keySystem: KeySystems): string | never {\n const url = this.getLicenseServerUrl(keySystem);\n if (url === undefined) {\n throw new Error(\n `no license server URL configured for key-system \"${keySystem}\"`,\n );\n }\n return url;\n }\n\n private getServerCertificateUrl(keySystem: KeySystems): string | void {\n const { drmSystems } = this.config;\n const keySystemConfiguration = drmSystems[keySystem];\n\n if (keySystemConfiguration) {\n return keySystemConfiguration.serverCertificateUrl;\n } else {\n this.log(`No Server Certificate in config.drmSystems[\"${keySystem}\"]`);\n }\n }\n\n private attemptKeySystemAccess(\n keySystemsToAttempt: KeySystems[],\n ): Promise<{ keySystem: KeySystems; mediaKeys: MediaKeys }> {\n const levels = this.hls.levels;\n const uniqueCodec = (value: string | undefined, i, a): value is string =>\n !!value && a.indexOf(value) === i;\n const audioCodecs = levels\n .map((level) => level.audioCodec)\n .filter(uniqueCodec);\n const videoCodecs = levels\n .map((level) => level.videoCodec)\n .filter(uniqueCodec);\n if (audioCodecs.length + videoCodecs.length === 0) {\n videoCodecs.push('avc1.42e01e');\n }\n\n return new Promise(\n (\n resolve: (result: {\n keySystem: KeySystems;\n mediaKeys: MediaKeys;\n }) => void,\n reject: (Error) => void,\n ) => {\n const attempt = (keySystems) => {\n const keySystem = keySystems.shift();\n this.getMediaKeysPromise(keySystem, audioCodecs, videoCodecs)\n .then((mediaKeys) => resolve({ keySystem, mediaKeys }))\n .catch((error) => {\n if (keySystems.length) {\n attempt(keySystems);\n } else if (error instanceof EMEKeyError) {\n reject(error);\n } else {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_ACCESS,\n error,\n fatal: true,\n },\n error.message,\n ),\n );\n }\n });\n };\n attempt(keySystemsToAttempt);\n },\n );\n }\n\n private requestMediaKeySystemAccess(\n keySystem: KeySystems,\n supportedConfigurations: MediaKeySystemConfiguration[],\n ): Promise<MediaKeySystemAccess> {\n const { requestMediaKeySystemAccessFunc } = this.config;\n if (!(typeof requestMediaKeySystemAccessFunc === 'function')) {\n let errMessage = `Configured requestMediaKeySystemAccess is not a function ${requestMediaKeySystemAccessFunc}`;\n if (\n requestMediaKeySystemAccess === null &&\n self.location.protocol === 'http:'\n ) {\n errMessage = `navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`;\n }\n return Promise.reject(new Error(errMessage));\n }\n\n return requestMediaKeySystemAccessFunc(keySystem, supportedConfigurations);\n }\n\n private getMediaKeysPromise(\n keySystem: KeySystems,\n audioCodecs: string[],\n videoCodecs: string[],\n ): Promise<MediaKeys> {\n // This can throw, but is caught in event handler callpath\n const mediaKeySystemConfigs = getSupportedMediaKeySystemConfigurations(\n keySystem,\n audioCodecs,\n videoCodecs,\n this.config.drmSystemOptions,\n );\n const keySystemAccessPromises: KeySystemAccessPromises =\n this.keySystemAccessPromises[keySystem];\n let keySystemAccess = keySystemAccessPromises?.keySystemAccess;\n if (!keySystemAccess) {\n this.log(\n `Requesting encrypted media \"${keySystem}\" key-system access with config: ${JSON.stringify(\n mediaKeySystemConfigs,\n )}`,\n );\n keySystemAccess = this.requestMediaKeySystemAccess(\n keySystem,\n mediaKeySystemConfigs,\n );\n const keySystemAccessPromises: KeySystemAccessPromises =\n (this.keySystemAccessPromises[keySystem] = {\n keySystemAccess,\n });\n keySystemAccess.catch((error) => {\n this.log(\n `Failed to obtain access to key-system \"${keySystem}\": ${error}`,\n );\n });\n return keySystemAccess.then((mediaKeySystemAccess) => {\n this.log(\n `Access for key-system \"${mediaKeySystemAccess.keySystem}\" obtained`,\n );\n\n const certificateRequest = this.fetchServerCertificate(keySystem);\n\n this.log(`Create media-keys for \"${keySystem}\"`);\n keySystemAccessPromises.mediaKeys = mediaKeySystemAccess\n .createMediaKeys()\n .then((mediaKeys) => {\n this.log(`Media-keys created for \"${keySystem}\"`);\n return certificateRequest.then((certificate) => {\n if (certificate) {\n return this.setMediaKeysServerCertificate(\n mediaKeys,\n keySystem,\n certificate,\n );\n }\n return mediaKeys;\n });\n });\n\n keySystemAccessPromises.mediaKeys.catch((error) => {\n this.error(\n `Failed to create media-keys for \"${keySystem}\"}: ${error}`,\n );\n });\n\n return keySystemAccessPromises.mediaKeys;\n });\n }\n return keySystemAccess.then(() => keySystemAccessPromises.mediaKeys!);\n }\n\n private createMediaKeySessionContext({\n decryptdata,\n keySystem,\n mediaKeys,\n }: {\n decryptdata: LevelKey;\n keySystem: KeySystems;\n mediaKeys: MediaKeys;\n }): MediaKeySessionContext {\n this.log(\n `Creating key-system session \"${keySystem}\" keyId: ${Hex.hexDump(\n decryptdata.keyId! || [],\n )}`,\n );\n\n const mediaKeysSession = mediaKeys.createSession();\n\n const mediaKeySessionContext: MediaKeySessionContext = {\n decryptdata,\n keySystem,\n mediaKeys,\n mediaKeysSession,\n keyStatus: 'status-pending',\n };\n\n this.mediaKeySessions.push(mediaKeySessionContext);\n\n return mediaKeySessionContext;\n }\n\n private renewKeySession(mediaKeySessionContext: MediaKeySessionContext) {\n const decryptdata = mediaKeySessionContext.decryptdata;\n if (decryptdata.pssh) {\n const keySessionContext = this.createMediaKeySessionContext(\n mediaKeySessionContext,\n );\n const keyId = this.getKeyIdString(decryptdata);\n const scheme = 'cenc';\n this.keyIdToKeySessionPromise[keyId] =\n this.generateRequestWithPreferredKeySession(\n keySessionContext,\n scheme,\n decryptdata.pssh,\n 'expired',\n );\n } else {\n this.warn(`Could not renew expired session. Missing pssh initData.`);\n }\n this.removeSession(mediaKeySessionContext);\n }\n\n private getKeyIdString(decryptdata: DecryptData | undefined): string | never {\n if (!decryptdata) {\n throw new Error('Could not read keyId of undefined decryptdata');\n }\n if (decryptdata.keyId === null) {\n throw new Error('keyId is null');\n }\n return Hex.hexDump(decryptdata.keyId);\n }\n\n private updateKeySession(\n mediaKeySessionContext: MediaKeySessionContext,\n data: Uint8Array,\n ): Promise<void> {\n const keySession = mediaKeySessionContext.mediaKeysSession;\n this.log(\n `Updating key-session \"${keySession.sessionId}\" for keyID ${Hex.hexDump(\n mediaKeySessionContext.decryptdata?.keyId! || [],\n )}\n } (data length: ${data ? data.byteLength : data})`,\n );\n return keySession.update(data);\n }\n\n public selectKeySystemFormat(frag: Fragment): Promise<KeySystemFormats> {\n const keyFormats = Object.keys(frag.levelkeys || {}) as KeySystemFormats[];\n if (!this.keyFormatPromise) {\n this.log(\n `Selecting key-system from fragment (sn: ${frag.sn} ${frag.type}: ${\n frag.level\n }) key formats ${keyFormats.join(', ')}`,\n );\n this.keyFormatPromise = this.getKeyFormatPromise(keyFormats);\n }\n return this.keyFormatPromise;\n }\n\n private getKeyFormatPromise(\n keyFormats: KeySystemFormats[],\n ): Promise<KeySystemFormats> {\n return new Promise((resolve, reject) => {\n const keySystemsInConfig = getKeySystemsForConfig(this.config);\n const keySystemsToAttempt = keyFormats\n .map(keySystemFormatToKeySystemDomain)\n .filter(\n (value) => !!value && keySystemsInConfig.indexOf(value) !== -1,\n ) as any as KeySystems[];\n return this.getKeySystemSelectionPromise(keySystemsToAttempt)\n .then(({ keySystem }) => {\n const keySystemFormat = keySystemToKeySystemFormat(keySystem);\n if (keySystemFormat) {\n resolve(keySystemFormat);\n } else {\n reject(\n new Error(`Unable to find format for key-system \"${keySystem}\"`),\n );\n }\n })\n .catch(reject);\n });\n }\n\n public loadKey(data: KeyLoadedData): Promise<MediaKeySessionContext> {\n const decryptdata = data.keyInfo.decryptdata;\n\n const keyId = this.getKeyIdString(decryptdata);\n const keyDetails = `(keyId: ${keyId} format: \"${decryptdata.keyFormat}\" method: ${decryptdata.method} uri: ${decryptdata.uri})`;\n\n this.log(`Starting session for key ${keyDetails}`);\n\n let keySessionContextPromise = this.keyIdToKeySessionPromise[keyId];\n if (!keySessionContextPromise) {\n keySessionContextPromise = this.keyIdToKeySessionPromise[keyId] =\n this.getKeySystemForKeyPromise(decryptdata).then(\n ({ keySystem, mediaKeys }) => {\n this.throwIfDestroyed();\n this.log(\n `Handle encrypted media sn: ${data.frag.sn} ${data.frag.type}: ${data.frag.level} using key ${keyDetails}`,\n );\n\n return this.attemptSetMediaKeys(keySystem, mediaKeys).then(() => {\n this.throwIfDestroyed();\n const keySessionContext = this.createMediaKeySessionContext({\n keySystem,\n mediaKeys,\n decryptdata,\n });\n const scheme = 'cenc';\n return this.generateRequestWithPreferredKeySession(\n keySessionContext,\n scheme,\n decryptdata.pssh,\n 'playlist-key',\n );\n });\n },\n );\n\n keySessionContextPromise.catch((error) => this.handleError(error));\n }\n\n return keySessionContextPromise;\n }\n\n private throwIfDestroyed(message = 'Invalid state'): void | never {\n if (!this.hls) {\n throw new Error('invalid state');\n }\n }\n\n private handleError(error: EMEKeyError | Error) {\n if (!this.hls) {\n return;\n }\n this.error(error.message);\n if (error instanceof EMEKeyError) {\n this.hls.trigger(Events.ERROR, error.data);\n } else {\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_KEYS,\n error,\n fatal: true,\n });\n }\n }\n\n private getKeySystemForKeyPromise(\n decryptdata: LevelKey,\n ): Promise<{ keySystem: KeySystems; mediaKeys: MediaKeys }> {\n const keyId = this.getKeyIdString(decryptdata);\n const mediaKeySessionContext = this.keyIdToKeySessionPromise[keyId];\n if (!mediaKeySessionContext) {\n const keySystem = keySystemFormatToKeySystemDomain(\n decryptdata.keyFormat as KeySystemFormats,\n );\n const keySystemsToAttempt = keySystem\n ? [keySystem]\n : getKeySystemsForConfig(this.config);\n return this.attemptKeySystemAccess(keySystemsToAttempt);\n }\n return mediaKeySessionContext;\n }\n\n private getKeySystemSelectionPromise(\n keySystemsToAttempt: KeySystems[],\n ): Promise<{ keySystem: KeySystems; mediaKeys: MediaKeys }> | never {\n if (!keySystemsToAttempt.length) {\n keySystemsToAttempt = getKeySystemsForConfig(this.config);\n }\n if (keySystemsToAttempt.length === 0) {\n throw new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE,\n fatal: true,\n },\n `Missing key-system license configuration options ${JSON.stringify({\n drmSystems: this.config.drmSystems,\n })}`,\n );\n }\n return this.attemptKeySystemAccess(keySystemsToAttempt);\n }\n\n private onMediaEncrypted = (event: MediaEncryptedEvent) => {\n const { initDataType, initData } = event;\n const logMessage = `\"${event.type}\" event: init data type: \"${initDataType}\"`;\n this.debug(logMessage);\n\n // Ignore event when initData is null\n if (initData === null) {\n return;\n }\n\n if (!this.keyFormatPromise) {\n let keySystems = Object.keys(\n this.keySystemAccessPromises,\n ) as KeySystems[];\n if (!keySystems.length) {\n keySystems = getKeySystemsForConfig(this.config);\n }\n const keyFormats = keySystems\n .map(keySystemToKeySystemFormat)\n .filter((k) => !!k) as KeySystemFormats[];\n this.keyFormatPromise = this.getKeyFormatPromise(keyFormats);\n }\n\n this.keyFormatPromise.then((keySystemFormat) => {\n const keySystem = keySystemFormatToKeySystemDomain(keySystemFormat);\n\n let keyId: Uint8Array | null | undefined;\n let keySystemDomain: KeySystems | undefined;\n\n if (initDataType === 'sinf') {\n if (keySystem !== KeySystems.FAIRPLAY) {\n this.warn(\n `Ignoring unexpected \"${event.type}\" event with init data type: \"${initDataType}\" for selected key-system ${keySystem}`,\n );\n return;\n }\n // Match sinf keyId to playlist skd://keyId=\n const json = bin2str(new Uint8Array(initData));\n try {\n const sinf = base64Decode(JSON.parse(json).sinf);\n const tenc = parseSinf(sinf);\n if (!tenc) {\n throw new Error(\n `'schm' box missing or not cbcs/cenc with schi > tenc`,\n );\n }\n keyId = tenc.subarray(8, 24);\n keySystemDomain = KeySystems.FAIRPLAY;\n } catch (error) {\n this.warn(`${logMessage} Failed to parse sinf: ${error}`);\n return;\n }\n } else {\n if (\n keySystem !== KeySystems.WIDEVINE &&\n keySystem !== KeySystems.PLAYREADY\n ) {\n this.warn(\n `Ignoring unexpected \"${event.type}\" event with init data type: \"${initDataType}\" for selected key-system ${keySystem}`,\n );\n return;\n }\n // Support Widevine/PlayReady clear-lead key-session creation (otherwise depend on playlist keys)\n const psshResults = parseMultiPssh(initData);\n\n const psshInfos = psshResults.filter(\n (pssh): pssh is PsshData =>\n !!pssh.systemId &&\n keySystemIdToKeySystemDomain(pssh.systemId) === keySystem,\n );\n\n if (psshInfos.length > 1) {\n this.warn(\n `${logMessage} Using first of ${psshInfos.length} pssh found for selected key-system ${keySystem}`,\n );\n }\n\n const psshInfo = psshInfos[0];\n\n if (!psshInfo) {\n if (\n psshResults.length === 0 ||\n psshResults.some(\n (pssh): pssh is PsshInvalidResult => !pssh.systemId,\n )\n ) {\n this.warn(`${logMessage} contains incomplete or invalid pssh data`);\n } else {\n this.log(\n `ignoring ${logMessage} for ${(psshResults as PsshData[])\n .map((pssh) => keySystemIdToKeySystemDomain(pssh.systemId))\n .join(',')} pssh data in favor of playlist keys`,\n );\n }\n return;\n }\n\n keySystemDomain = keySystemIdToKeySystemDomain(psshInfo.systemId);\n if (psshInfo.version === 0 && psshInfo.data) {\n if (keySystemDomain === KeySystems.WIDEVINE) {\n const offset = psshInfo.data.length - 22;\n keyId = psshInfo.data.subarray(offset, offset + 16);\n } else if (keySystemDomain === KeySystems.PLAYREADY) {\n keyId = parsePlayReadyWRM(psshInfo.data);\n }\n }\n }\n\n if (!keySystemDomain || !keyId) {\n this.log(`Unable to handle ${logMessage} with key-system ${keySystem}`);\n return;\n }\n\n const keyIdHex = Hex.hexDump(keyId);\n const { keyIdToKeySessionPromise, mediaKeySessions } = this;\n\n let keySessionContextPromise = keyIdToKeySessionPromise[keyIdHex];\n for (let i = 0; i < mediaKeySessions.length; i++) {\n // Match playlist key\n const keyContext = mediaKeySessions[i];\n const decryptdata = keyContext.decryptdata;\n if (!decryptdata.keyId) {\n continue;\n }\n const oldKeyIdHex = Hex.hexDump(decryptdata.keyId);\n if (\n keyIdHex === oldKeyIdHex ||\n decryptdata.uri.replace(/-/g, '').indexOf(keyIdHex) !== -1\n ) {\n keySessionContextPromise = keyIdToKeySessionPromise[oldKeyIdHex];\n if (decryptdata.pssh) {\n break;\n }\n delete keyIdToKeySessionPromise[oldKeyIdHex];\n decryptdata.pssh = new Uint8Array(initData);\n decryptdata.keyId = keyId;\n keySessionContextPromise = keyIdToKeySessionPromise[keyIdHex] =\n keySessionContextPromise.then(() => {\n return this.generateRequestWithPreferredKeySession(\n keyContext,\n initDataType,\n initData,\n 'encrypted-event-key-match',\n );\n });\n keySessionContextPromise.catch((error) => this.handleError(error));\n break;\n }\n }\n\n if (!keySessionContextPromise) {\n if (keySystemDomain !== keySystem) {\n this.log(\n `Ignoring \"${logMessage}\" with ${keySystemDomain} init data for selected key-system ${keySystem}`,\n );\n return;\n }\n // \"Clear-lead\" (misc key not encountered in playlist)\n keySessionContextPromise = keyIdToKeySessionPromise[keyIdHex] =\n this.getKeySystemSelectionPromise([keySystemDomain]).then(\n ({ keySystem, mediaKeys }) => {\n this.throwIfDestroyed();\n\n const decryptdata = new LevelKey(\n 'ISO-23001-7',\n keyIdHex,\n keySystemToKeySystemFormat(keySystem) ?? '',\n );\n decryptdata.pssh = new Uint8Array(initData);\n decryptdata.keyId = keyId as Uint8Array;\n return this.attemptSetMediaKeys(keySystem, mediaKeys).then(() => {\n this.throwIfDestroyed();\n const keySessionContext = this.createMediaKeySessionContext({\n decryptdata,\n keySystem,\n mediaKeys,\n });\n return this.generateRequestWithPreferredKeySession(\n keySessionContext,\n initDataType,\n initData,\n 'encrypted-event-no-match',\n );\n });\n },\n );\n\n keySessionContextPromise.catch((error) => this.handleError(error));\n }\n });\n };\n\n private onWaitingForKey = (event: Event) => {\n this.log(`\"${event.type}\" event`);\n };\n\n private attemptSetMediaKeys(\n keySystem: KeySystems,\n mediaKeys: MediaKeys,\n ): Promise<void> {\n const queue = this.setMediaKeysQueue.slice();\n\n this.log(`Setting media-keys for \"${keySystem}\"`);\n // Only one setMediaKeys() can run at one time, and multiple setMediaKeys() operations\n // can be queued for execution for multiple key sessions.\n const setMediaKeysPromise = Promise.all(queue).then(() => {\n if (!this.media) {\n throw new Error(\n 'Attempted to set mediaKeys without media element attached',\n );\n }\n return this.media.setMediaKeys(mediaKeys);\n });\n this.setMediaKeysQueue.push(setMediaKeysPromise);\n return setMediaKeysPromise.then(() => {\n this.log(`Media-keys set for \"${keySystem}\"`);\n queue.push(setMediaKeysPromise!);\n this.setMediaKeysQueue = this.setMediaKeysQueue.filter(\n (p) => queue.indexOf(p) === -1,\n );\n });\n }\n\n private generateRequestWithPreferredKeySession(\n context: MediaKeySessionContext,\n initDataType: string,\n initData: ArrayBuffer | null,\n reason:\n | 'playlist-key'\n | 'encrypted-event-key-match'\n | 'encrypted-event-no-match'\n | 'expired',\n ): Promise<MediaKeySessionContext> | never {\n const generateRequestFilter =\n this.config.drmSystems?.[context.keySystem]?.generateRequest;\n if (generateRequestFilter) {\n try {\n const mappedInitData: ReturnType<typeof generateRequestFilter> =\n generateRequestFilter.call(this.hls, initDataType, initData, context);\n if (!mappedInitData) {\n throw new Error(\n 'Invalid response from configured generateRequest filter',\n );\n }\n initDataType = mappedInitData.initDataType;\n initData = context.decryptdata.pssh = mappedInitData.initData\n ? new Uint8Array(mappedInitData.initData)\n : null;\n } catch (error) {\n this.warn(error.message);\n if (this.hls?.config.debug) {\n throw error;\n }\n }\n }\n\n if (initData === null) {\n this.log(`Skipping key-session request for \"${reason}\" (no initData)`);\n return Promise.resolve(context);\n }\n\n const keyId = this.getKeyIdString(context.decryptdata);\n this.log(\n `Generating key-session request for \"${reason}\": ${keyId} (init data type: ${initDataType} length: ${\n initData ? initData.byteLength : null\n })`,\n );\n\n const licenseStatus = new EventEmitter();\n\n const onmessage = (context._onmessage = (event: MediaKeyMessageEvent) => {\n const keySession = context.mediaKeysSession;\n if (!keySession) {\n licenseStatus.emit('error', new Error('invalid state'));\n return;\n }\n const { messageType, message } = event;\n this.log(\n `\"${messageType}\" message event for session \"${keySession.sessionId}\" message size: ${message.byteLength}`,\n );\n if (\n messageType === 'license-request' ||\n messageType === 'license-renewal'\n ) {\n this.renewLicense(context, message).catch((error) => {\n this.handleError(error);\n licenseStatus.emit('error', error);\n });\n } else if (messageType === 'license-release') {\n if (context.keySystem === KeySystems.FAIRPLAY) {\n this.updateKeySession(context, strToUtf8array('acknowledged'));\n this.removeSession(context);\n }\n } else {\n this.warn(`unhandled media key message type \"${messageType}\"`);\n }\n });\n\n const onkeystatuseschange = (context._onkeystatuseschange = (\n event: Event,\n ) => {\n const keySession = context.mediaKeysSession;\n if (!keySession) {\n licenseStatus.emit('error', new Error('invalid state'));\n return;\n }\n this.onKeyStatusChange(context);\n const keyStatus = context.keyStatus;\n licenseStatus.emit('keyStatus', keyStatus);\n if (keyStatus === 'expired') {\n this.warn(`${context.keySystem} expired for key ${keyId}`);\n this.renewKeySession(context);\n }\n });\n\n context.mediaKeysSession.addEventListener('message', onmessage);\n context.mediaKeysSession.addEventListener(\n 'keystatuseschange',\n onkeystatuseschange,\n );\n\n const keyUsablePromise = new Promise(\n (resolve: (value?: void) => void, reject) => {\n licenseStatus.on('error', reject);\n\n licenseStatus.on('keyStatus', (keyStatus) => {\n if (keyStatus.startsWith('usable')) {\n resolve();\n } else if (keyStatus === 'output-restricted') {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,\n fatal: false,\n },\n 'HDCP level output restricted',\n ),\n );\n } else if (keyStatus === 'internal-error') {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR,\n fatal: true,\n },\n `key status changed to \"${keyStatus}\"`,\n ),\n );\n } else if (keyStatus === 'expired') {\n reject(new Error('key expired while generating request'));\n } else {\n this.warn(`unhandled key status change \"${keyStatus}\"`);\n }\n });\n },\n );\n\n return context.mediaKeysSession\n .generateRequest(initDataType, initData)\n .then(() => {\n this.log(\n `Request generated for key-session \"${context.mediaKeysSession?.sessionId}\" keyId: ${keyId}`,\n );\n })\n .catch((error) => {\n throw new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_NO_SESSION,\n error,\n fatal: false,\n },\n `Error generating key-session request: ${error}`,\n );\n })\n .then(() => keyUsablePromise)\n .catch((error) => {\n licenseStatus.removeAllListeners();\n this.removeSession(context);\n throw error;\n })\n .then(() => {\n licenseStatus.removeAllListeners();\n return context;\n });\n }\n\n private onKeyStatusChange(mediaKeySessionContext: MediaKeySessionContext) {\n mediaKeySessionContext.mediaKeysSession.keyStatuses.forEach(\n (status: MediaKeyStatus, keyId: BufferSource) => {\n this.log(\n `key status change \"${status}\" for keyStatuses keyId: ${Hex.hexDump(\n 'buffer' in keyId\n ? new Uint8Array(keyId.buffer, keyId.byteOffset, keyId.byteLength)\n : new Uint8Array(keyId),\n )} session keyId: ${Hex.hexDump(\n new Uint8Array(mediaKeySessionContext.decryptdata.keyId || []),\n )} uri: ${mediaKeySessionContext.decryptdata.uri}`,\n );\n mediaKeySessionContext.keyStatus = status;\n },\n );\n }\n\n private fetchServerCertificate(\n keySystem: KeySystems,\n ): Promise<BufferSource | void> {\n const config = this.config;\n const Loader = config.loader;\n const certLoader = new Loader(config as HlsConfig) as Loader<LoaderContext>;\n const url = this.getServerCertificateUrl(keySystem);\n if (!url) {\n return Promise.resolve();\n }\n this.log(`Fetching server certificate for \"${keySystem}\"`);\n return new Promise((resolve, reject) => {\n const loaderContext: LoaderContext = {\n responseType: 'arraybuffer',\n url,\n };\n const loadPolicy = config.certLoadPolicy.default;\n const loaderConfig: LoaderConfiguration = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0,\n };\n const loaderCallbacks: LoaderCallbacks<LoaderContext> = {\n onSuccess: (response, stats, context, networkDetails) => {\n resolve(response.data as ArrayBuffer);\n },\n onError: (response, contex, networkDetails, stats) => {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details:\n ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,\n fatal: true,\n networkDetails,\n response: {\n url: loaderContext.url,\n data: undefined,\n ...response,\n },\n },\n `\"${keySystem}\" certificate request failed (${url}). Status: ${response.code} (${response.text})`,\n ),\n );\n },\n onTimeout: (stats, context, networkDetails) => {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details:\n ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,\n fatal: true,\n networkDetails,\n response: {\n url: loaderContext.url,\n data: undefined,\n },\n },\n `\"${keySystem}\" certificate request timed out (${url})`,\n ),\n );\n },\n onAbort: (stats, context, networkDetails) => {\n reject(new Error('aborted'));\n },\n };\n certLoader.load(loaderContext, loaderConfig, loaderCallbacks);\n });\n }\n\n private setMediaKeysServerCertificate(\n mediaKeys: MediaKeys,\n keySystem: KeySystems,\n cert: BufferSource,\n ): Promise<MediaKeys> {\n return new Promise((resolve, reject) => {\n mediaKeys\n .setServerCertificate(cert)\n .then((success) => {\n this.log(\n `setServerCertificate ${\n success ? 'success' : 'not supported by CDM'\n } (${cert?.byteLength}) on \"${keySystem}\"`,\n );\n resolve(mediaKeys);\n })\n .catch((error) => {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details:\n ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,\n error,\n fatal: true,\n },\n error.message,\n ),\n );\n });\n });\n }\n\n private renewLicense(\n context: MediaKeySessionContext,\n keyMessage: ArrayBuffer,\n ): Promise<void> {\n return this.requestLicense(context, new Uint8Array(keyMessage)).then(\n (data: ArrayBuffer) => {\n return this.updateKeySession(context, new Uint8Array(data)).catch(\n (error) => {\n throw new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED,\n error,\n fatal: true,\n },\n error.message,\n );\n },\n );\n },\n );\n }\n\n private unpackPlayReadyKeyMessage(\n xhr: XMLHttpRequest,\n licenseChallenge: Uint8Array,\n ): Uint8Array {\n // On Edge, the raw license message is UTF-16-encoded XML. We need\n // to unpack the Challenge element (base64-encoded string containing the\n // actual license request) and any HttpHeader elements (sent as request\n // headers).\n // For PlayReady CDMs, we need to dig the Challenge out of the XML.\n const xmlString = String.fromCharCode.apply(\n null,\n new Uint16Array(licenseChallenge.buffer),\n );\n if (!xmlString.includes('PlayReadyKeyMessage')) {\n // This does not appear to be a wrapped message as on Edge. Some\n // clients do not need this unwrapping, so we will assume this is one of\n // them. Note that \"xml\" at this point probably looks like random\n // garbage, since we interpreted UTF-8 as UTF-16.\n xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');\n return licenseChallenge;\n }\n const keyMessageXml = new DOMParser().parseFromString(\n xmlString,\n 'application/xml',\n );\n // Set request headers.\n const headers = keyMessageXml.querySelectorAll('HttpHeader');\n if (headers.length > 0) {\n let header: Element;\n for (let i = 0, len = headers.length; i < len; i++) {\n header = headers[i];\n const name = header.querySelector('name')?.textContent;\n const value = header.querySelector('value')?.textContent;\n if (name && value) {\n xhr.setRequestHeader(name, value);\n }\n }\n }\n const challengeElement = keyMessageXml.querySelector('Challenge');\n const challengeText = challengeElement?.textContent;\n if (!challengeText) {\n throw new Error(`Cannot find <Challenge> in key message`);\n }\n return strToUtf8array(atob(challengeText));\n }\n\n private setupLicenseXHR(\n xhr: XMLHttpRequest,\n url: string,\n keysListItem: MediaKeySessionContext,\n licenseChallenge: Uint8Array,\n ): Promise<{ xhr: XMLHttpRequest; licenseChallenge: Uint8Array }> {\n const licenseXhrSetup = this.config.licenseXhrSetup;\n\n if (!licenseXhrSetup) {\n xhr.open('POST', url, true);\n\n return Promise.resolve({ xhr, licenseChallenge });\n }\n\n return Promise.resolve()\n .then(() => {\n if (!keysListItem.decryptdata) {\n throw new Error('Key removed');\n }\n return licenseXhrSetup.call(\n this.hls,\n xhr,\n url,\n keysListItem,\n licenseChallenge,\n );\n })\n .catch((error: Error) => {\n if (!keysListItem.decryptdata) {\n // Key session removed. Cancel license request.\n throw error;\n }\n // let's try to open before running setup\n xhr.open('POST', url, true);\n\n return licenseXhrSetup.call(\n this.hls,\n xhr,\n url,\n keysListItem,\n licenseChallenge,\n );\n })\n .then((licenseXhrSetupResult) => {\n // if licenseXhrSetup did not yet call open, let's do it now\n if (!xhr.readyState) {\n xhr.open('POST', url, true);\n }\n const finalLicenseChallenge = licenseXhrSetupResult\n ? licenseXhrSetupResult\n : licenseChallenge;\n return { xhr, licenseChallenge: finalLicenseChallenge };\n });\n }\n\n private requestLicense(\n keySessionContext: MediaKeySessionContext,\n licenseChallenge: Uint8Array,\n ): Promise<ArrayBuffer> {\n const keyLoadPolicy = this.config.keyLoadPolicy.default;\n return new Promise((resolve, reject) => {\n const url = this.getLicenseServerUrlOrThrow(keySessionContext.keySystem);\n this.log(`Sending license request to URL: ${url}`);\n const xhr = new XMLHttpRequest();\n xhr.responseType = 'arraybuffer';\n xhr.onreadystatechange = () => {\n if (!this.hls || !keySessionContext.mediaKeysSession) {\n return reject(new Error('invalid state'));\n }\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n this._requestLicenseFailureCount = 0;\n let data = xhr.response;\n this.log(\n `License received ${\n data instanceof ArrayBuffer ? data.byteLength : data\n }`,\n );\n const licenseResponseCallback = this.config.licenseResponseCallback;\n if (licenseResponseCallback) {\n try {\n data = licenseResponseCallback.call(\n this.hls,\n xhr,\n url,\n keySessionContext,\n );\n } catch (error) {\n this.error(error);\n }\n }\n resolve(data);\n } else {\n const retryConfig = keyLoadPolicy.errorRetry;\n const maxNumRetry = retryConfig ? retryConfig.maxNumRetry : 0;\n this._requestLicenseFailureCount++;\n if (\n this._requestLicenseFailureCount > maxNumRetry ||\n (xhr.status >= 400 && xhr.status < 500)\n ) {\n reject(\n new EMEKeyError(\n {\n type: ErrorTypes.KEY_SYSTEM_ERROR,\n details: ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n fatal: true,\n networkDetails: xhr,\n response: {\n url,\n data: undefined as any,\n code: xhr.status,\n text: xhr.statusText,\n },\n },\n `License Request XHR failed (${url}). Status: ${xhr.status} (${xhr.statusText})`,\n ),\n );\n } else {\n const attemptsLeft =\n maxNumRetry - this._requestLicenseFailureCount + 1;\n this.warn(\n `Retrying license request, ${attemptsLeft} attempts left`,\n );\n this.requestLicense(keySessionContext, licenseChallenge).then(\n resolve,\n reject,\n );\n }\n }\n }\n };\n if (\n keySessionContext.licenseXhr &&\n keySessionContext.licenseXhr.readyState !== XMLHttpRequest.DONE\n ) {\n keySessionContext.licenseXhr.abort();\n }\n keySessionContext.licenseXhr = xhr;\n\n this.setupLicenseXHR(xhr, url, keySessionContext, licenseChallenge).then(\n ({ xhr, licenseChallenge }) => {\n if (keySessionContext.keySystem == KeySystems.PLAYREADY) {\n licenseChallenge = this.unpackPlayReadyKeyMessage(\n xhr,\n licenseChallenge,\n );\n }\n xhr.send(licenseChallenge);\n },\n );\n });\n }\n\n private onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ) {\n if (!this.config.emeEnabled) {\n return;\n }\n\n const media = data.media;\n\n // keep reference of media\n this.media = media;\n\n media.removeEventListener('encrypted', this.onMediaEncrypted);\n media.removeEventListener('waitingforkey', this.onWaitingForKey);\n media.addEventListener('encrypted', this.onMediaEncrypted);\n media.addEventListener('waitingforkey', this.onWaitingForKey);\n }\n\n private onMediaDetached() {\n const media = this.media;\n const mediaKeysList = this.mediaKeySessions;\n if (media) {\n media.removeEventListener('encrypted', this.onMediaEncrypted);\n media.removeEventListener('waitingforkey', this.onWaitingForKey);\n this.media = null;\n }\n\n this._requestLicenseFailureCount = 0;\n this.setMediaKeysQueue = [];\n this.mediaKeySessions = [];\n this.keyIdToKeySessionPromise = {};\n LevelKey.clearKeyUriToKeyIdMap();\n\n // Close all sessions and remove media keys from the video element.\n const keySessionCount = mediaKeysList.length;\n EMEController.CDMCleanupPromise = Promise.all(\n mediaKeysList\n .map((mediaKeySessionContext) =>\n this.removeSession(mediaKeySessionContext),\n )\n .concat(\n media?.setMediaKeys(null).catch((error) => {\n this.log(`Could not clear media keys: ${error}`);\n }),\n ),\n )\n .then(() => {\n if (keySessionCount) {\n this.log('finished closing key sessions and clearing media keys');\n mediaKeysList.length = 0;\n }\n })\n .catch((error) => {\n this.log(`Could not close sessions and clear media keys: ${error}`);\n });\n }\n\n private onManifestLoading() {\n this.keyFormatPromise = null;\n }\n\n private onManifestLoaded(\n event: Events.MANIFEST_LOADED,\n { sessionKeys }: ManifestLoadedData,\n ) {\n if (!sessionKeys || !this.config.emeEnabled) {\n return;\n }\n if (!this.keyFormatPromise) {\n const keyFormats: KeySystemFormats[] = sessionKeys.reduce(\n (formats: KeySystemFormats[], sessionKey: LevelKey) => {\n if (\n formats.indexOf(sessionKey.keyFormat as KeySystemFormats) === -1\n ) {\n formats.push(sessionKey.keyFormat as KeySystemFormats);\n }\n return formats;\n },\n [],\n );\n this.log(\n `Selecting key-system from session-keys ${keyFormats.join(', ')}`,\n );\n this.keyFormatPromise = this.getKeyFormatPromise(keyFormats);\n }\n }\n\n private removeSession(\n mediaKeySessionContext: MediaKeySessionContext,\n ): Promise<void> | void {\n const { mediaKeysSession, licenseXhr } = mediaKeySessionContext;\n if (mediaKeysSession) {\n this.log(\n `Remove licenses and keys and close session ${mediaKeysSession.sessionId}`,\n );\n if (mediaKeySessionContext._onmessage) {\n mediaKeysSession.removeEventListener(\n 'message',\n mediaKeySessionContext._onmessage,\n );\n mediaKeySessionContext._onmessage = undefined;\n }\n if (mediaKeySessionContext._onkeystatuseschange) {\n mediaKeysSession.removeEventListener(\n 'keystatuseschange',\n mediaKeySessionContext._onkeystatuseschange,\n );\n mediaKeySessionContext._onkeystatuseschange = undefined;\n }\n\n if (licenseXhr && licenseXhr.readyState !== XMLHttpRequest.DONE) {\n licenseXhr.abort();\n }\n mediaKeySessionContext.mediaKeysSession =\n mediaKeySessionContext.decryptdata =\n mediaKeySessionContext.licenseXhr =\n undefined!;\n const index = this.mediaKeySessions.indexOf(mediaKeySessionContext);\n if (index > -1) {\n this.mediaKeySessions.splice(index, 1);\n }\n return mediaKeysSession\n .remove()\n .catch((error) => {\n this.log(`Could not remove session: ${error}`);\n })\n .then(() => {\n return mediaKeysSession.close();\n })\n .catch((error) => {\n this.log(`Could not close session: ${error}`);\n });\n }\n }\n}\n\nclass EMEKeyError extends Error {\n public readonly data: ErrorData;\n constructor(\n data: Omit<ErrorData, 'error'> & { error?: Error },\n message: string,\n ) {\n super(message);\n data.error ||= new Error(message);\n this.data = data as ErrorData;\n data.err = data.error;\n }\n}\n\nexport default EMEController;\n","/**\n * Common Media Object Type\n *\n * @group CMCD\n * @group CMSD\n *\n * @beta\n */\nexport var CmObjectType;\n(function (CmObjectType) {\n /**\n * text file, such as a manifest or playlist\n */\n CmObjectType[\"MANIFEST\"] = \"m\";\n /**\n * audio only\n */\n CmObjectType[\"AUDIO\"] = \"a\";\n /**\n * video only\n */\n CmObjectType[\"VIDEO\"] = \"v\";\n /**\n * muxed audio and video\n */\n CmObjectType[\"MUXED\"] = \"av\";\n /**\n * init segment\n */\n CmObjectType[\"INIT\"] = \"i\";\n /**\n * caption or subtitle\n */\n CmObjectType[\"CAPTION\"] = \"c\";\n /**\n * ISOBMFF timed text track\n */\n CmObjectType[\"TIMED_TEXT\"] = \"tt\";\n /**\n * cryptographic key, license or certificate.\n */\n CmObjectType[\"KEY\"] = \"k\";\n /**\n * other\n */\n CmObjectType[\"OTHER\"] = \"o\";\n})(CmObjectType || (CmObjectType = {}));\n//# sourceMappingURL=CmObjectType.js.map","/**\n * Common Media Streaming Format\n *\n * @group CMCD\n * @group CMSD\n *\n * @beta\n */\nexport var CmStreamingFormat;\n(function (CmStreamingFormat) {\n /**\n * MPEG DASH\n */\n CmStreamingFormat[\"DASH\"] = \"d\";\n /**\n * HTTP Live Streaming (HLS)\n */\n CmStreamingFormat[\"HLS\"] = \"h\";\n /**\n * Smooth Streaming\n */\n CmStreamingFormat[\"SMOOTH\"] = \"s\";\n /**\n * Other\n */\n CmStreamingFormat[\"OTHER\"] = \"o\";\n})(CmStreamingFormat || (CmStreamingFormat = {}));\n//# sourceMappingURL=CmStreamingFormat.js.map","/**\n * CMCD header fields.\n *\n * @group CMCD\n *\n * @beta\n */\nexport var CmcdHeaderField;\n(function (CmcdHeaderField) {\n /**\n * keys whose values vary with the object being requested.\n */\n CmcdHeaderField[\"OBJECT\"] = \"CMCD-Object\";\n /**\n * keys whose values vary with each request.\n */\n CmcdHeaderField[\"REQUEST\"] = \"CMCD-Request\";\n /**\n * keys whose values are expected to be invariant over the life of the session.\n */\n CmcdHeaderField[\"SESSION\"] = \"CMCD-Session\";\n /**\n * keys whose values do not vary with every request or object.\n */\n CmcdHeaderField[\"STATUS\"] = \"CMCD-Status\";\n})(CmcdHeaderField || (CmcdHeaderField = {}));\n//# sourceMappingURL=CmcdHeaderField.js.map","import { CmcdHeaderField } from './CmcdHeaderField.js';\n/**\n * The map of CMCD header fields to official CMCD keys.\n *\n * @internal\n *\n * @group CMCD\n */\nexport const CmcdHeaderMap = {\n [CmcdHeaderField.OBJECT]: ['br', 'd', 'ot', 'tb'],\n [CmcdHeaderField.REQUEST]: ['bl', 'dl', 'mtp', 'nor', 'nrr', 'su'],\n [CmcdHeaderField.SESSION]: ['cid', 'pr', 'sf', 'sid', 'st', 'v'],\n [CmcdHeaderField.STATUS]: ['bs', 'rtp'],\n};\n//# sourceMappingURL=CmcdHeaderMap.js.map","/**\n * Structured Field Item\n *\n * @group Structured Field\n *\n * @beta\n */\nexport class SfItem {\n value;\n params;\n constructor(value, params) {\n if (Array.isArray(value)) {\n value = value.map((v) => (v instanceof SfItem) ? v : new SfItem(v));\n }\n this.value = value;\n this.params = params;\n }\n}\n//# sourceMappingURL=SfItem.js.map","/**\n * A class to represent structured field tokens when `Symbol` is not available.\n *\n * @group Structured Field\n *\n * @beta\n */\nexport class SfToken {\n description;\n constructor(description) {\n this.description = description;\n }\n}\n//# sourceMappingURL=SfToken.js.map","function format(value) {\n if (Array.isArray(value)) {\n return JSON.stringify(value);\n }\n if (value instanceof Map) {\n return 'Map{}';\n }\n if (value instanceof Set) {\n return 'Set{}';\n }\n if (typeof value === 'object') {\n return JSON.stringify(value);\n }\n return String(value);\n}\nexport function throwError(action, src, type, cause) {\n return new Error(`failed to ${action} \"${format(src)}\" as ${type}`, { cause });\n}\n//# sourceMappingURL=throwError.js.map","export const BARE_ITEM = 'Bare Item';\n//# sourceMappingURL=BARE_ITEM.js.map","export const STRING_REGEX = /[\\x00-\\x1f\\x7f]+/; // eslint-disable-line no-control-regex\n//# sourceMappingURL=STRING_REGEX.js.map","import { throwError } from '../utils/throwError.js';\nexport function serializeError(src, type, cause) {\n return throwError('serialize', src, type, cause);\n}\n//# sourceMappingURL=serializeError.js.map","import { base64encode } from '../../utils/base64encode.js';\nimport { BYTES } from '../utils/BYTES.js';\nimport { serializeError } from './serializeError.js';\n// 4.1.8. Serializing a Byte Sequence\n//\n// Given a Byte Sequence as input_bytes, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. If input_bytes is not a sequence of bytes, fail serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. Append \":\" to output.\n//\n// 4. Append the result of base64-encoding input_bytes as per\n// [RFC4648], Section 4, taking account of the requirements below.\n//\n// 5. Append \":\" to output.\n//\n// 6. Return output.\n//\n// The encoded data is required to be padded with \"=\", as per [RFC4648],\n// Section 3.2.\n//\n// Likewise, encoded data SHOULD have pad bits set to zero, as per\n// [RFC4648], Section 3.5, unless it is not possible to do so due to\n// implementation constraints.\nexport function serializeByteSequence(value) {\n if (ArrayBuffer.isView(value) === false) {\n throw serializeError(value, BYTES);\n }\n return `:${base64encode(value)}:`;\n}\n//# sourceMappingURL=serializeByteSequence.js.map","export const BYTES = 'Byte Sequence';\n//# sourceMappingURL=BYTES.js.map","/**\n * Encodes binary data to base64\n *\n * @param binary - The binary data to encode\n * @returns The base64 encoded string\n *\n * @group Utils\n *\n * @beta\n */\nexport function base64encode(binary) {\n return btoa(String.fromCharCode(...binary));\n}\n//# sourceMappingURL=base64encode.js.map","import { INTEGER } from '../utils/INTEGER.js';\nimport { isInvalidInt } from '../utils/isInvalidInt.js';\nimport { serializeError } from './serializeError.js';\n// 4.1.4. Serializing an Integer\n//\n// Given an Integer as input_integer, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. If input_integer is not an integer in the range of\n// -999,999,999,999,999 to 999,999,999,999,999 inclusive, fail\n// serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. If input_integer is less than (but not equal to) 0, append \"-\" to\n// output.\n//\n// 4. Append input_integer's numeric value represented in base 10 using\n// only decimal digits to output.\n//\n// 5. Return output.\nexport function serializeInteger(value) {\n if (isInvalidInt(value)) {\n throw serializeError(value, INTEGER);\n }\n return value.toString();\n}\n//# sourceMappingURL=serializeInteger.js.map","export function isInvalidInt(value) {\n return value < -999999999999999 || 999999999999999 < value;\n}\n//# sourceMappingURL=isInvalidInt.js.map","export const INTEGER = 'Integer';\n//# sourceMappingURL=INTEGER.js.map","/**\n * This implements the rounding procedure described in step 2 of the \"Serializing a Decimal\" specification.\n * This rounding style is known as \"even rounding\", \"banker's rounding\", or \"commercial rounding\".\n *\n * @param value - The value to round\n * @param precision - The number of decimal places to round to\n * @returns The rounded value\n *\n * @group Utils\n *\n * @beta\n */\nexport function roundToEven(value, precision) {\n if (value < 0) {\n return -roundToEven(-value, precision);\n }\n const decimalShift = Math.pow(10, precision);\n const isEquidistant = Math.abs(((value * decimalShift) % 1) - 0.5) < Number.EPSILON;\n if (isEquidistant) {\n // If the tail of the decimal place is 'equidistant' we round to the nearest even value\n const flooredValue = Math.floor(value * decimalShift);\n return (flooredValue % 2 === 0 ? flooredValue : flooredValue + 1) / decimalShift;\n }\n else {\n // Otherwise, proceed as normal\n return Math.round(value * decimalShift) / decimalShift;\n }\n}\n//# sourceMappingURL=roundToEven.js.map","import { roundToEven } from '../../utils/roundToEven.js';\nimport { DECIMAL } from '../utils/DECIMAL.js';\nimport { serializeError } from './serializeError.js';\n// 4.1.5. Serializing a Decimal\n//\n// Given a decimal number as input_decimal, return an ASCII string\n// suitable for use in a HTTP field value.\n//\n// 1. If input_decimal is not a decimal number, fail serialization.\n//\n// 2. If input_decimal has more than three significant digits to the\n// right of the decimal point, round it to three decimal places,\n// rounding the final digit to the nearest value, or to the even\n// value if it is equidistant.\n//\n// 3. If input_decimal has more than 12 significant digits to the left\n// of the decimal point after rounding, fail serialization.\n//\n// 4. Let output be an empty string.\n//\n// 5. If input_decimal is less than (but not equal to) 0, append \"-\"\n// to output.\n//\n// 6. Append input_decimal's integer component represented in base 10\n// (using only decimal digits) to output; if it is zero, append\n// \"0\".\n//\n// 7. Append \".\" to output.\n//\n// 8. If input_decimal's fractional component is zero, append \"0\" to\n// output.\n//\n// 9. Otherwise, append the significant digits of input_decimal's\n// fractional component represented in base 10 (using only decimal\n// digits) to output.\n//\n// 10. Return output.\nexport function serializeDecimal(value) {\n const roundedValue = roundToEven(value, 3); // round to 3 decimal places\n if (Math.floor(Math.abs(roundedValue)).toString().length > 12) {\n throw serializeError(value, DECIMAL);\n }\n const stringValue = roundedValue.toString();\n return stringValue.includes('.') ? stringValue : `${stringValue}.0`;\n}\n//# sourceMappingURL=serializeDecimal.js.map","export const DECIMAL = 'Decimal';\n//# sourceMappingURL=DECIMAL.js.map","import { symbolToStr } from '../../cta/utils/symbolToStr.js';\nimport { TOKEN } from '../utils/TOKEN.js';\nimport { serializeError } from './serializeError.js';\nexport function serializeToken(token) {\n const value = symbolToStr(token);\n if (/^([a-zA-Z*])([!#$%&'*+\\-.^_`|~\\w:/]*)$/.test(value) === false) {\n throw serializeError(value, TOKEN);\n }\n return value;\n}\n//# sourceMappingURL=serializeToken.js.map","export function symbolToStr(symbol) {\n return symbol.description || symbol.toString().slice(7, -1);\n}\n//# sourceMappingURL=symbolToStr.js.map","export const TOKEN = 'Token';\n//# sourceMappingURL=TOKEN.js.map","import { SfToken } from '../SfToken.js';\nimport { BARE_ITEM } from '../utils/BARE_ITEM.js';\nimport { serializeBoolean } from './serializeBoolean.js';\nimport { serializeByteSequence } from './serializeByteSequence.js';\nimport { serializeDate } from './serializeDate.js';\nimport { serializeDecimal } from './serializeDecimal.js';\nimport { serializeError } from './serializeError.js';\nimport { serializeInteger } from './serializeInteger.js';\nimport { serializeString } from './serializeString.js';\nimport { serializeToken } from './serializeToken.js';\n// 4.1.3.1. Serializing a Bare Item\n//\n// Given an Item as input_item, return an ASCII string suitable for use\n// in a HTTP field value.\n//\n// 1. If input_item is an Integer, return the result of running\n// Serializing an Integer (Section 4.1.4) with input_item.\n//\n// 2. If input_item is a Decimal, return the result of running\n// Serializing a Decimal (Section 4.1.5) with input_item.\n//\n// 3. If input_item is a String, return the result of running\n// Serializing a String (Section 4.1.6) with input_item.\n//\n// 4. If input_item is a Token, return the result of running\n// Serializing a Token (Section 4.1.7) with input_item.\n//\n// 5. If input_item is a Boolean, return the result of running\n// Serializing a Boolean (Section 4.1.9) with input_item.\n//\n// 6. If input_item is a Byte Sequence, return the result of running\n// Serializing a Byte Sequence (Section 4.1.8) with input_item.\n//\n// 7. If input_item is a Date, return the result of running Serializing\n// a Date (Section 4.1.10) with input_item.\n//\n// 8. Otherwise, fail serialization.\nexport function serializeBareItem(value) {\n switch (typeof value) {\n case 'number':\n if (!Number.isFinite(value)) {\n throw serializeError(value, BARE_ITEM);\n }\n if (Number.isInteger(value)) {\n return serializeInteger(value);\n }\n return serializeDecimal(value);\n case 'string':\n return serializeString(value);\n case 'symbol':\n return serializeToken(value);\n case 'boolean':\n return serializeBoolean(value);\n case 'object':\n if (value instanceof Date) {\n return serializeDate(value);\n }\n if (value instanceof Uint8Array) {\n return serializeByteSequence(value);\n }\n if (value instanceof SfToken) {\n return serializeToken(value);\n }\n default:\n // fail\n throw serializeError(value, BARE_ITEM);\n }\n}\n//# sourceMappingURL=serializeBareItem.js.map","import { STRING } from '../utils/STRING.js';\nimport { STRING_REGEX } from '../utils/STRING_REGEX.js';\nimport { serializeError } from './serializeError.js';\n// 4.1.6. Serializing a String\n//\n// Given a String as input_string, return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. Convert input_string into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If input_string contains characters in the range %x00-1f or %x7f\n// (i.e., not in VCHAR or SP), fail serialization.\n//\n// 3. Let output be the string DQUOTE.\n//\n// 4. For each character char in input_string:\n//\n// 1. If char is \"\\\" or DQUOTE:\n//\n// 1. Append \"\\\" to output.\n//\n// 2. Append char to output.\n//\n// 5. Append DQUOTE to output.\n//\n// 6. Return output.\nexport function serializeString(value) {\n if (STRING_REGEX.test(value)) {\n throw serializeError(value, STRING);\n }\n return `\"${value.replace(/\\\\/g, `\\\\\\\\`).replace(/\"/g, `\\\\\"`)}\"`;\n}\n//# sourceMappingURL=serializeString.js.map","export const STRING = 'String';\n//# sourceMappingURL=STRING.js.map","import { BOOLEAN } from '../utils/BOOLEAN.js';\nimport { serializeError } from './serializeError.js';\n// 4.1.9. Serializing a Boolean\n//\n// Given a Boolean as input_boolean, return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. If input_boolean is not a boolean, fail serialization.\n//\n// 2. Let output be an empty string.\n//\n// 3. Append \"?\" to output.\n//\n// 4. If input_boolean is true, append \"1\" to output.\n//\n// 5. If input_boolean is false, append \"0\" to output.\n//\n// 6. Return output.\nexport function serializeBoolean(value) {\n if (typeof value !== 'boolean') {\n throw serializeError(value, BOOLEAN);\n }\n return value ? '?1' : '?0';\n}\n//# sourceMappingURL=serializeBoolean.js.map","export const BOOLEAN = 'Boolean';\n//# sourceMappingURL=BOOLEAN.js.map","import { serializeInteger } from './serializeInteger.js';\n// 4.1.10. Serializing a Date\n//\n// Given a Date as input_integer, return an ASCII string suitable for\n// use in an HTTP field value.\n// 1. Let output be \"@\".\n// 2. Append to output the result of running Serializing an Integer\n// with input_date (Section 4.1.4).\n// 3. Return output.\nexport function serializeDate(value) {\n return `@${serializeInteger(value.getTime() / 1000)}`;\n}\n//# sourceMappingURL=serializeDate.js.map","import { KEY } from '../utils/KEY.js';\nimport { serializeError } from './serializeError.js';\n// 4.1.1.3. Serializing a Key\n//\n// Given a key as input_key, return an ASCII string suitable for use in\n// a HTTP field value.\n//\n// 1. Convert input_key into a sequence of ASCII characters; if\n// conversion fails, fail serialization.\n//\n// 2. If input_key contains characters not in lcalpha, DIGIT, \"_\", \"-\",\n// \".\", or \"*\" fail serialization.\n//\n// 3. If the first character of input_key is not lcalpha or \"*\", fail\n// serialization.\n//\n// 4. Let output be an empty string.\n//\n// 5. Append input_key to output.\n//\n// 6. Return output.\nexport function serializeKey(value) {\n if (/^[a-z*][a-z0-9\\-_.*]*$/.test(value) === false) {\n throw serializeError(value, KEY);\n }\n return value;\n}\n//# sourceMappingURL=serializeKey.js.map","export const KEY = 'Key';\n//# sourceMappingURL=KEY.js.map","import { serializeBareItem } from './serializeBareItem.js';\nimport { serializeKey } from './serializeKey.js';\n// 4.1.1.2. Serializing Parameters\n//\n// Given an ordered Dictionary as input_parameters (each member having a\n// param_name and a param_value), return an ASCII string suitable for\n// use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each param_name with a value of param_value in\n// input_parameters:\n//\n// 1. Append \";\" to output.\n//\n// 2. Append the result of running Serializing a Key\n// (Section 4.1.1.3) with param_name to output.\n//\n// 3. If param_value is not Boolean true:\n//\n// 1. Append \"=\" to output.\n//\n// 2. Append the result of running Serializing a bare Item\n// (Section 4.1.3.1) with param_value to output.\n//\n// 3. Return output.\nexport function serializeParams(params) {\n if (params == null) {\n return '';\n }\n return Object.entries(params)\n .map(([key, value]) => {\n if (value === true) {\n return `;${serializeKey(key)}`; // omit true\n }\n return `;${serializeKey(key)}=${serializeBareItem(value)}`;\n })\n .join('');\n}\n//# sourceMappingURL=serializeParams.js.map","import { SfItem } from '../SfItem.js';\nimport { serializeBareItem } from './serializeBareItem.js';\nimport { serializeParams } from './serializeParams.js';\n// 4.1.3. Serializing an Item\n//\n// Given an Item as bare_item and Parameters as item_parameters, return\n// an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. Append the result of running Serializing a Bare Item\n// Section 4.1.3.1 with bare_item to output.\n//\n// 3. Append the result of running Serializing Parameters\n// Section 4.1.1.2 with item_parameters to output.\n//\n// 4. Return output.\nexport function serializeItem(value) {\n if (value instanceof SfItem) {\n return `${serializeBareItem(value.value)}${serializeParams(value.params)}`;\n }\n else {\n return serializeBareItem(value);\n }\n}\n//# sourceMappingURL=serializeItem.js.map","import { SfItem } from '../SfItem.js';\nimport { DICT } from '../utils/DICT.js';\nimport { serializeError } from './serializeError.js';\nimport { serializeInnerList } from './serializeInnerList.js';\nimport { serializeItem } from './serializeItem.js';\nimport { serializeKey } from './serializeKey.js';\nimport { serializeParams } from './serializeParams.js';\n// 4.1.2. Serializing a Dictionary\n//\n// Given an ordered Dictionary as input_dictionary (each member having a\n// member_name and a tuple value of (member_value, parameters)), return\n// an ASCII string suitable for use in a HTTP field value.\n//\n// 1. Let output be an empty string.\n//\n// 2. For each member_name with a value of (member_value, parameters)\n// in input_dictionary:\n//\n// 1. Append the result of running Serializing a Key\n// (Section 4.1.1.3) with member's member_name to output.\n//\n// 2. If member_value is Boolean true:\n//\n// 1. Append the result of running Serializing Parameters\n// (Section 4.1.1.2) with parameters to output.\n//\n// 3. Otherwise:\n//\n// 1. Append \"=\" to output.\n//\n// 2. If member_value is an array, append the result of running\n// Serializing an Inner List (Section 4.1.1.1) with\n// (member_value, parameters) to output.\n//\n// 3. Otherwise, append the result of running Serializing an\n// Item (Section 4.1.3) with (member_value, parameters) to\n// output.\n//\n// 4. If more members remain in input_dictionary:\n//\n// 1. Append \",\" to output.\n//\n// 2. Append a single SP to output.\n//\n// 3. Return output.\nexport function serializeDict(dict, options = { whitespace: true }) {\n if (typeof dict !== 'object') {\n throw serializeError(dict, DICT);\n }\n const entries = dict instanceof Map ? dict.entries() : Object.entries(dict);\n const optionalWhiteSpace = options?.whitespace ? ' ' : '';\n return Array.from(entries)\n .map(([key, item]) => {\n if (item instanceof SfItem === false) {\n item = new SfItem(item);\n }\n let output = serializeKey(key);\n if (item.value === true) {\n output += serializeParams(item.params);\n }\n else {\n output += '=';\n if (Array.isArray(item.value)) {\n output += serializeInnerList(item);\n }\n else {\n output += serializeItem(item);\n }\n }\n return output;\n })\n .join(`,${optionalWhiteSpace}`);\n}\n//# sourceMappingURL=serializeDict.js.map","export const DICT = 'Dict';\n//# sourceMappingURL=DICT.js.map","import { serializeItem } from './serializeItem.js';\nimport { serializeParams } from './serializeParams.js';\n// 4.1.1.1. Serializing an Inner List\n//\n// Given an array of (member_value, parameters) tuples as inner_list,\n// and parameters as list_parameters, return an ASCII string suitable\n// for use in a HTTP field value.\n//\n// 1. Let output be the string \"(\".\n//\n// 2. For each (member_value, parameters) of inner_list:\n//\n// 1. Append the result of running Serializing an Item\n// (Section 4.1.3) with (member_value, parameters) to output.\n//\n// 2. If more values remain in inner_list, append a single SP to\n// output.\n//\n// 3. Append \")\" to output.\n//\n// 4. Append the result of running Serializing Parameters\n// (Section 4.1.1.2) with list_parameters to output.\n//\n// 5. Return output.\nexport function serializeInnerList(value) {\n return `(${value.value.map(serializeItem).join(' ')})${serializeParams(value.params)}`;\n}\n//# sourceMappingURL=serializeInnerList.js.map","import { urlToRelativePath } from '../utils.js';\nconst toRounded = (value) => Math.round(value);\nconst toUrlSafe = (value, options) => {\n if (options?.baseUrl) {\n value = urlToRelativePath(value, options.baseUrl);\n }\n return encodeURIComponent(value);\n};\nconst toHundred = (value) => toRounded(value / 100) * 100;\n/**\n * The default formatters for CMCD values.\n *\n * @group CMCD\n *\n * @beta\n */\nexport const CmcdFormatters = {\n /**\n * Bitrate (kbps) rounded integer\n */\n br: toRounded,\n /**\n * Duration (milliseconds) rounded integer\n */\n d: toRounded,\n /**\n * Buffer Length (milliseconds) rounded nearest 100ms\n */\n bl: toHundred,\n /**\n * Deadline (milliseconds) rounded nearest 100ms\n */\n dl: toHundred,\n /**\n * Measured Throughput (kbps) rounded nearest 100kbps\n */\n mtp: toHundred,\n /**\n * Next Object Request URL encoded\n */\n nor: toUrlSafe,\n /**\n * Requested maximum throughput (kbps) rounded nearest 100kbps\n */\n rtp: toHundred,\n /**\n * Top Bitrate (kbps) rounded integer\n */\n tb: toRounded,\n};\n//# sourceMappingURL=CmcdFormatters.js.map","/**\n * Constructs a relative path from a URL.\n *\n * @param url - The destination URL\n * @param base - The base URL\n * @returns The relative path\n *\n * @group Utils\n *\n * @beta\n */\nexport function urlToRelativePath(url, base) {\n const to = new URL(url);\n const from = new URL(base);\n if (to.origin !== from.origin) {\n return url;\n }\n const toPath = to.pathname.split('/').slice(1);\n const fromPath = from.pathname.split('/').slice(1, -1);\n // remove common parents\n while (toPath[0] === fromPath[0]) {\n toPath.shift();\n fromPath.shift();\n }\n // add back paths\n while (fromPath.length) {\n fromPath.shift();\n toPath.unshift('..');\n }\n return toPath.join('/');\n}\n//# sourceMappingURL=urlToRelativePath.js.map","import { isTokenField } from '../../cta/utils/isTokenField.js';\nimport { isValid } from '../../cta/utils/isValid.js';\nimport { SfToken } from '../../structuredfield/SfToken.js';\nimport { CmcdFormatters } from '../CmcdFormatters.js';\n/**\n * Internal CMCD processing function.\n *\n * @param obj - The CMCD object to process.\n * @param map - The mapping function to use.\n * @param options - Options for encoding.\n *\n * @internal\n *\n * @group CMCD\n */\nexport function processCmcd(obj, options) {\n const results = {};\n if (obj == null || typeof obj !== 'object') {\n return results;\n }\n const keys = Object.keys(obj).sort();\n const formatters = Object.assign({}, CmcdFormatters, options?.formatters);\n const filter = options?.filter;\n keys.forEach(key => {\n if (filter?.(key)) {\n return;\n }\n let value = obj[key];\n const formatter = formatters[key];\n if (formatter) {\n value = formatter(value, options);\n }\n // Version should only be reported if not equal to 1.\n if (key === 'v' && value === 1) {\n return;\n }\n // Playback rate should only be sent if not equal to 1.\n if (key == 'pr' && value === 1) {\n return;\n }\n // ignore invalid values\n if (!isValid(value)) {\n return;\n }\n if (isTokenField(key) && typeof value === 'string') {\n value = new SfToken(value);\n }\n results[key] = value;\n });\n return results;\n}\n//# sourceMappingURL=processCmcd.js.map","export const isValid = (value) => {\n if (typeof value === 'number') {\n return Number.isFinite(value);\n }\n return value != null && value !== '' && value !== false;\n};\n//# sourceMappingURL=isValid.js.map","/**\n * Checks if the given key is a token field.\n *\n * @param key - The key to check.\n *\n * @returns `true` if the key is a token field.\n *\n * @internal\n *\n * @group CMCD\n */\nexport const isTokenField = (key) => key === 'ot' || key === 'sf' || key === 'st';\n//# sourceMappingURL=isTokenField.js.map","import { encodeSfDict } from '../structuredfield.js';\nimport { processCmcd } from './utils/processCmcd.js';\n/**\n * Encode a CMCD object to a string.\n *\n * @param cmcd - The CMCD object to encode.\n * @param options - Options for encoding.\n *\n * @returns The encoded CMCD string.\n *\n * @group CMCD\n *\n * @beta\n */\nexport function encodeCmcd(cmcd, options = {}) {\n if (!cmcd) {\n return '';\n }\n return encodeSfDict(processCmcd(cmcd, options), Object.assign({ whitespace: false }, options));\n}\n//# sourceMappingURL=encodeCmcd.js.map","import { serializeDict } from './serialize/serializeDict.js';\n/**\n * Encode an object into a structured field dictionary\n *\n * @param input - The structured field dictionary to encode\n * @returns The structured field string\n *\n * @group Structured Field\n *\n * @beta\n */\nexport function encodeSfDict(value, options) {\n return serializeDict(value, options);\n}\n//# sourceMappingURL=encodeSfDict.js.map","import { toCmcdHeaders } from './toCmcdHeaders.js';\n/**\n * Append CMCD query args to a header object.\n *\n * @param headers - The headers to append to.\n * @param cmcd - The CMCD object to append.\n * @param customHeaderMap - A map of custom CMCD keys to header fields.\n *\n * @returns The headers with the CMCD header shards appended.\n *\n * @group CMCD\n *\n * @beta\n */\nexport function appendCmcdHeaders(headers, cmcd, options) {\n return Object.assign(headers, toCmcdHeaders(cmcd, options));\n}\n//# sourceMappingURL=appendCmcdHeaders.js.map","import { CmcdHeaderField } from './CmcdHeaderField.js';\nimport { CmcdHeaderMap } from './CmcdHeaderMap.js';\nimport { encodeCmcd } from './encodeCmcd.js';\n/**\n * Convert a CMCD data object to request headers\n *\n * @param cmcd - The CMCD data object to convert.\n * @param options - Options for encoding the CMCD object.\n *\n * @returns The CMCD header shards.\n *\n * @group CMCD\n *\n * @beta\n */\nexport function toCmcdHeaders(cmcd, options = {}) {\n if (!cmcd) {\n return {};\n }\n const entries = Object.entries(cmcd);\n const headerMap = Object.entries(CmcdHeaderMap)\n .concat(Object.entries(options?.customHeaderMap || {}));\n const shards = entries.reduce((acc, entry) => {\n const [key, value] = entry;\n const field = headerMap.find(entry => entry[1].includes(key))?.[0] || CmcdHeaderField.REQUEST;\n acc[field] ??= {};\n acc[field][key] = value;\n return acc;\n }, {});\n return Object.entries(shards)\n .reduce((acc, [field, value]) => {\n acc[field] = encodeCmcd(value, options);\n return acc;\n }, {});\n}\n//# sourceMappingURL=toCmcdHeaders.js.map","import { toCmcdQuery } from './toCmcdQuery.js';\nconst REGEX = /CMCD=[^&#]+/;\n/**\n * Append CMCD query args to a URL.\n *\n * @param url - The URL to append to.\n * @param cmcd - The CMCD object to append.\n * @param options - Options for encoding the CMCD object.\n *\n * @returns The URL with the CMCD query args appended.\n *\n * @group CMCD\n *\n * @beta\n */\nexport function appendCmcdQuery(url, cmcd, options) {\n // TODO: Replace with URLSearchParams once we drop Safari < 10.1 & Chrome < 49 support.\n // https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams\n const query = toCmcdQuery(cmcd, options);\n if (!query) {\n return url;\n }\n if (REGEX.test(url)) {\n return url.replace(REGEX, query);\n }\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}${query}`;\n}\n//# sourceMappingURL=appendCmcdQuery.js.map","import { CMCD_PARAM } from './CMCD_PARAM.js';\nimport { encodeCmcd } from './encodeCmcd.js';\n/**\n * Convert a CMCD data object to a query arg.\n *\n * @param cmcd - The CMCD object to convert.\n * @param options - Options for encoding the CMCD object.\n *\n * @returns The CMCD query arg.\n *\n * @group CMCD\n *\n * @beta\n */\nexport function toCmcdQuery(cmcd, options = {}) {\n if (!cmcd) {\n return '';\n }\n const params = encodeCmcd(cmcd, options);\n return `${CMCD_PARAM}=${encodeURIComponent(params)}`;\n}\n//# sourceMappingURL=toCmcdQuery.js.map","import { Events } from '../events';\nimport { Level } from '../types/level';\nimport { reassignFragmentLevelIndexes } from '../utils/level-helper';\nimport { AttrList } from '../utils/attr-list';\nimport { ErrorActionFlags, NetworkErrorAction } from './error-controller';\nimport { logger } from '../utils/logger';\nimport {\n PlaylistContextType,\n type Loader,\n type LoaderCallbacks,\n type LoaderConfiguration,\n type LoaderContext,\n type LoaderResponse,\n type LoaderStats,\n} from '../types/loader';\nimport type Hls from '../hls';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type {\n SteeringManifestLoadedData,\n ErrorData,\n ManifestLoadedData,\n ManifestParsedData,\n} from '../types/events';\nimport type { RetryConfig } from '../config';\n\nimport type { MediaAttributes, MediaPlaylist } from '../types/media-playlist';\n\nexport type SteeringManifest = {\n VERSION: 1;\n TTL: number;\n 'RELOAD-URI'?: string;\n 'PATHWAY-PRIORITY': string[];\n 'PATHWAY-CLONES'?: PathwayClone[];\n};\n\nexport type PathwayClone = {\n 'BASE-ID': string;\n ID: string;\n 'URI-REPLACEMENT': UriReplacement;\n};\n\nexport type UriReplacement = {\n HOST?: string;\n PARAMS?: { [queryParameter: string]: string };\n 'PER-VARIANT-URIS'?: { [stableVariantId: string]: string };\n 'PER-RENDITION-URIS'?: { [stableRenditionId: string]: string };\n};\n\nconst PATHWAY_PENALTY_DURATION_MS = 300000;\n\nexport default class ContentSteeringController implements NetworkComponentAPI {\n private readonly hls: Hls;\n private log: (msg: any) => void;\n private loader: Loader<LoaderContext> | null = null;\n private uri: string | null = null;\n private pathwayId: string = '.';\n private pathwayPriority: string[] | null = null;\n private timeToLoad: number = 300;\n private reloadTimer: number = -1;\n private updated: number = 0;\n private started: boolean = false;\n private enabled: boolean = true;\n private levels: Level[] | null = null;\n private audioTracks: MediaPlaylist[] | null = null;\n private subtitleTracks: MediaPlaylist[] | null = null;\n private penalizedPathways: { [pathwayId: string]: number } = {};\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.log = logger.log.bind(logger, `[content-steering]:`);\n this.registerListeners();\n }\n\n private registerListeners() {\n const hls = this.hls;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n\n private unregisterListeners() {\n const hls = this.hls;\n if (!hls) {\n return;\n }\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n\n startLoad() {\n this.started = true;\n this.clearTimeout();\n if (this.enabled && this.uri) {\n if (this.updated) {\n const ttl = this.timeToLoad * 1000 - (performance.now() - this.updated);\n if (ttl > 0) {\n this.scheduleRefresh(this.uri, ttl);\n return;\n }\n }\n this.loadSteeringManifest(this.uri);\n }\n }\n\n stopLoad() {\n this.started = false;\n if (this.loader) {\n this.loader.destroy();\n this.loader = null;\n }\n this.clearTimeout();\n }\n\n clearTimeout() {\n if (this.reloadTimer !== -1) {\n self.clearTimeout(this.reloadTimer);\n this.reloadTimer = -1;\n }\n }\n\n destroy() {\n this.unregisterListeners();\n this.stopLoad();\n // @ts-ignore\n this.hls = null;\n this.levels = this.audioTracks = this.subtitleTracks = null;\n }\n\n removeLevel(levelToRemove: Level) {\n const levels = this.levels;\n if (levels) {\n this.levels = levels.filter((level) => level !== levelToRemove);\n }\n }\n\n private onManifestLoading() {\n this.stopLoad();\n this.enabled = true;\n this.timeToLoad = 300;\n this.updated = 0;\n this.uri = null;\n this.pathwayId = '.';\n this.levels = this.audioTracks = this.subtitleTracks = null;\n }\n\n private onManifestLoaded(\n event: Events.MANIFEST_LOADED,\n data: ManifestLoadedData,\n ) {\n const { contentSteering } = data;\n if (contentSteering === null) {\n return;\n }\n this.pathwayId = contentSteering.pathwayId;\n this.uri = contentSteering.uri;\n if (this.started) {\n this.startLoad();\n }\n }\n\n private onManifestParsed(\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ) {\n this.audioTracks = data.audioTracks;\n this.subtitleTracks = data.subtitleTracks;\n }\n\n private onError(event: Events.ERROR, data: ErrorData) {\n const { errorAction } = data;\n if (\n errorAction?.action === NetworkErrorAction.SendAlternateToPenaltyBox &&\n errorAction.flags === ErrorActionFlags.MoveAllAlternatesMatchingHost\n ) {\n const levels = this.levels;\n let pathwayPriority = this.pathwayPriority;\n let errorPathway = this.pathwayId;\n if (data.context) {\n const { groupId, pathwayId, type } = data.context;\n if (groupId && levels) {\n errorPathway = this.getPathwayForGroupId(groupId, type, errorPathway);\n } else if (pathwayId) {\n errorPathway = pathwayId;\n }\n }\n if (!(errorPathway in this.penalizedPathways)) {\n this.penalizedPathways[errorPathway] = performance.now();\n }\n if (!pathwayPriority && levels) {\n // If PATHWAY-PRIORITY was not provided, list pathways for error handling\n pathwayPriority = levels.reduce((pathways, level) => {\n if (pathways.indexOf(level.pathwayId) === -1) {\n pathways.push(level.pathwayId);\n }\n return pathways;\n }, [] as string[]);\n }\n if (pathwayPriority && pathwayPriority.length > 1) {\n this.updatePathwayPriority(pathwayPriority);\n errorAction.resolved = this.pathwayId !== errorPathway;\n }\n if (!errorAction.resolved) {\n logger.warn(\n `Could not resolve ${data.details} (\"${\n data.error.message\n }\") with content-steering for Pathway: ${errorPathway} levels: ${\n levels ? levels.length : levels\n } priorities: ${JSON.stringify(\n pathwayPriority,\n )} penalized: ${JSON.stringify(this.penalizedPathways)}`,\n );\n }\n }\n }\n\n public filterParsedLevels(levels: Level[]): Level[] {\n // Filter levels to only include those that are in the initial pathway\n this.levels = levels;\n let pathwayLevels = this.getLevelsForPathway(this.pathwayId);\n if (pathwayLevels.length === 0) {\n const pathwayId = levels[0].pathwayId;\n this.log(\n `No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to \"${pathwayId}\"`,\n );\n pathwayLevels = this.getLevelsForPathway(pathwayId);\n this.pathwayId = pathwayId;\n }\n if (pathwayLevels.length !== levels.length) {\n this.log(\n `Found ${pathwayLevels.length}/${levels.length} levels in Pathway \"${this.pathwayId}\"`,\n );\n }\n return pathwayLevels;\n }\n\n private getLevelsForPathway(pathwayId: string): Level[] {\n if (this.levels === null) {\n return [];\n }\n return this.levels.filter((level) => pathwayId === level.pathwayId);\n }\n\n private updatePathwayPriority(pathwayPriority: string[]) {\n this.pathwayPriority = pathwayPriority;\n let levels: Level[] | undefined;\n\n // Evaluate if we should remove the pathway from the penalized list\n const penalizedPathways = this.penalizedPathways;\n const now = performance.now();\n Object.keys(penalizedPathways).forEach((pathwayId) => {\n if (now - penalizedPathways[pathwayId] > PATHWAY_PENALTY_DURATION_MS) {\n delete penalizedPathways[pathwayId];\n }\n });\n for (let i = 0; i < pathwayPriority.length; i++) {\n const pathwayId = pathwayPriority[i];\n if (pathwayId in penalizedPathways) {\n continue;\n }\n if (pathwayId === this.pathwayId) {\n return;\n }\n const selectedIndex = this.hls.nextLoadLevel;\n const selectedLevel: Level = this.hls.levels[selectedIndex];\n levels = this.getLevelsForPathway(pathwayId);\n if (levels.length > 0) {\n this.log(`Setting Pathway to \"${pathwayId}\"`);\n this.pathwayId = pathwayId;\n reassignFragmentLevelIndexes(levels);\n this.hls.trigger(Events.LEVELS_UPDATED, { levels });\n // Set LevelController's level to trigger LEVEL_SWITCHING which loads playlist if needed\n const levelAfterChange = this.hls.levels[selectedIndex];\n if (selectedLevel && levelAfterChange && this.levels) {\n if (\n levelAfterChange.attrs['STABLE-VARIANT-ID'] !==\n selectedLevel.attrs['STABLE-VARIANT-ID'] &&\n levelAfterChange.bitrate !== selectedLevel.bitrate\n ) {\n this.log(\n `Unstable Pathways change from bitrate ${selectedLevel.bitrate} to ${levelAfterChange.bitrate}`,\n );\n }\n this.hls.nextLoadLevel = selectedIndex;\n }\n break;\n }\n }\n }\n\n private getPathwayForGroupId(\n groupId: string,\n type: PlaylistContextType,\n defaultPathway: string,\n ): string {\n const levels = this.getLevelsForPathway(defaultPathway).concat(\n this.levels || [],\n );\n for (let i = 0; i < levels.length; i++) {\n if (\n (type === PlaylistContextType.AUDIO_TRACK &&\n levels[i].hasAudioGroup(groupId)) ||\n (type === PlaylistContextType.SUBTITLE_TRACK &&\n levels[i].hasSubtitleGroup(groupId))\n ) {\n return levels[i].pathwayId;\n }\n }\n return defaultPathway;\n }\n\n private clonePathways(pathwayClones: PathwayClone[]) {\n const levels = this.levels;\n if (!levels) {\n return;\n }\n const audioGroupCloneMap: Record<string, string> = {};\n const subtitleGroupCloneMap: Record<string, string> = {};\n pathwayClones.forEach((pathwayClone) => {\n const {\n ID: cloneId,\n 'BASE-ID': baseId,\n 'URI-REPLACEMENT': uriReplacement,\n } = pathwayClone;\n if (levels.some((level) => level.pathwayId === cloneId)) {\n return;\n }\n const clonedVariants = this.getLevelsForPathway(baseId).map(\n (baseLevel) => {\n const attributes = new AttrList(baseLevel.attrs);\n attributes['PATHWAY-ID'] = cloneId;\n const clonedAudioGroupId: string | undefined =\n attributes.AUDIO && `${attributes.AUDIO}_clone_${cloneId}`;\n const clonedSubtitleGroupId: string | undefined =\n attributes.SUBTITLES && `${attributes.SUBTITLES}_clone_${cloneId}`;\n if (clonedAudioGroupId) {\n audioGroupCloneMap[attributes.AUDIO] = clonedAudioGroupId;\n attributes.AUDIO = clonedAudioGroupId;\n }\n if (clonedSubtitleGroupId) {\n subtitleGroupCloneMap[attributes.SUBTITLES] = clonedSubtitleGroupId;\n attributes.SUBTITLES = clonedSubtitleGroupId;\n }\n const url = performUriReplacement(\n baseLevel.uri,\n attributes['STABLE-VARIANT-ID'],\n 'PER-VARIANT-URIS',\n uriReplacement,\n );\n const clonedLevel = new Level({\n attrs: attributes,\n audioCodec: baseLevel.audioCodec,\n bitrate: baseLevel.bitrate,\n height: baseLevel.height,\n name: baseLevel.name,\n url,\n videoCodec: baseLevel.videoCodec,\n width: baseLevel.width,\n });\n if (baseLevel.audioGroups) {\n for (let i = 1; i < baseLevel.audioGroups.length; i++) {\n clonedLevel.addGroupId(\n 'audio',\n `${baseLevel.audioGroups[i]}_clone_${cloneId}`,\n );\n }\n }\n if (baseLevel.subtitleGroups) {\n for (let i = 1; i < baseLevel.subtitleGroups.length; i++) {\n clonedLevel.addGroupId(\n 'text',\n `${baseLevel.subtitleGroups[i]}_clone_${cloneId}`,\n );\n }\n }\n return clonedLevel;\n },\n );\n levels.push(...clonedVariants);\n cloneRenditionGroups(\n this.audioTracks,\n audioGroupCloneMap,\n uriReplacement,\n cloneId,\n );\n cloneRenditionGroups(\n this.subtitleTracks,\n subtitleGroupCloneMap,\n uriReplacement,\n cloneId,\n );\n });\n }\n\n private loadSteeringManifest(uri: string) {\n const config = this.hls.config;\n const Loader = config.loader;\n if (this.loader) {\n this.loader.destroy();\n }\n this.loader = new Loader(config) as Loader<LoaderContext>;\n\n let url: URL;\n try {\n url = new self.URL(uri);\n } catch (error) {\n this.enabled = false;\n this.log(`Failed to parse Steering Manifest URI: ${uri}`);\n return;\n }\n if (url.protocol !== 'data:') {\n const throughput =\n (this.hls.bandwidthEstimate || config.abrEwmaDefaultEstimate) | 0;\n url.searchParams.set('_HLS_pathway', this.pathwayId);\n url.searchParams.set('_HLS_throughput', '' + throughput);\n }\n const context: LoaderContext = {\n responseType: 'json',\n url: url.href,\n };\n\n const loadPolicy = config.steeringManifestLoadPolicy.default;\n const legacyRetryCompatibility: RetryConfig | Record<string, void> =\n loadPolicy.errorRetry || loadPolicy.timeoutRetry || {};\n const loaderConfig: LoaderConfiguration = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: legacyRetryCompatibility.maxNumRetry || 0,\n retryDelay: legacyRetryCompatibility.retryDelayMs || 0,\n maxRetryDelay: legacyRetryCompatibility.maxRetryDelayMs || 0,\n };\n\n const callbacks: LoaderCallbacks<LoaderContext> = {\n onSuccess: (\n response: LoaderResponse,\n stats: LoaderStats,\n context: LoaderContext,\n networkDetails: any,\n ) => {\n this.log(`Loaded steering manifest: \"${url}\"`);\n const steeringData = response.data as SteeringManifest;\n if (steeringData.VERSION !== 1) {\n this.log(`Steering VERSION ${steeringData.VERSION} not supported!`);\n return;\n }\n this.updated = performance.now();\n this.timeToLoad = steeringData.TTL;\n const {\n 'RELOAD-URI': reloadUri,\n 'PATHWAY-CLONES': pathwayClones,\n 'PATHWAY-PRIORITY': pathwayPriority,\n } = steeringData;\n if (reloadUri) {\n try {\n this.uri = new self.URL(reloadUri, url).href;\n } catch (error) {\n this.enabled = false;\n this.log(\n `Failed to parse Steering Manifest RELOAD-URI: ${reloadUri}`,\n );\n return;\n }\n }\n this.scheduleRefresh(this.uri || context.url);\n if (pathwayClones) {\n this.clonePathways(pathwayClones);\n }\n\n const loadedSteeringData: SteeringManifestLoadedData = {\n steeringManifest: steeringData,\n url: url.toString(),\n };\n this.hls.trigger(Events.STEERING_MANIFEST_LOADED, loadedSteeringData);\n\n if (pathwayPriority) {\n this.updatePathwayPriority(pathwayPriority);\n }\n },\n\n onError: (\n error: { code: number; text: string },\n context: LoaderContext,\n networkDetails: any,\n stats: LoaderStats,\n ) => {\n this.log(\n `Error loading steering manifest: ${error.code} ${error.text} (${context.url})`,\n );\n this.stopLoad();\n if (error.code === 410) {\n this.enabled = false;\n this.log(`Steering manifest ${context.url} no longer available`);\n return;\n }\n let ttl = this.timeToLoad * 1000;\n if (error.code === 429) {\n const loader = this.loader;\n if (typeof loader?.getResponseHeader === 'function') {\n const retryAfter = loader.getResponseHeader('Retry-After');\n if (retryAfter) {\n ttl = parseFloat(retryAfter) * 1000;\n }\n }\n this.log(`Steering manifest ${context.url} rate limited`);\n return;\n }\n this.scheduleRefresh(this.uri || context.url, ttl);\n },\n\n onTimeout: (\n stats: LoaderStats,\n context: LoaderContext,\n networkDetails: any,\n ) => {\n this.log(`Timeout loading steering manifest (${context.url})`);\n this.scheduleRefresh(this.uri || context.url);\n },\n };\n\n this.log(`Requesting steering manifest: ${url}`);\n this.loader.load(context, loaderConfig, callbacks);\n }\n\n private scheduleRefresh(uri: string, ttlMs: number = this.timeToLoad * 1000) {\n this.clearTimeout();\n this.reloadTimer = self.setTimeout(() => {\n const media = this.hls?.media;\n if (media && !media.ended) {\n this.loadSteeringManifest(uri);\n return;\n }\n this.scheduleRefresh(uri, this.timeToLoad * 1000);\n }, ttlMs);\n }\n}\n\nfunction cloneRenditionGroups(\n tracks: MediaPlaylist[] | null,\n groupCloneMap: Record<string, string>,\n uriReplacement: UriReplacement,\n cloneId: string,\n) {\n if (!tracks) {\n return;\n }\n Object.keys(groupCloneMap).forEach((audioGroupId) => {\n const clonedTracks = tracks\n .filter((track) => track.groupId === audioGroupId)\n .map((track) => {\n const clonedTrack = Object.assign({}, track);\n clonedTrack.details = undefined;\n clonedTrack.attrs = new AttrList(clonedTrack.attrs) as MediaAttributes;\n clonedTrack.url = clonedTrack.attrs.URI = performUriReplacement(\n track.url,\n track.attrs['STABLE-RENDITION-ID'],\n 'PER-RENDITION-URIS',\n uriReplacement,\n );\n clonedTrack.groupId = clonedTrack.attrs['GROUP-ID'] =\n groupCloneMap[audioGroupId];\n clonedTrack.attrs['PATHWAY-ID'] = cloneId;\n return clonedTrack;\n });\n tracks.push(...clonedTracks);\n });\n}\n\nfunction performUriReplacement(\n uri: string,\n stableId: string | undefined,\n perOptionKey: 'PER-VARIANT-URIS' | 'PER-RENDITION-URIS',\n uriReplacement: UriReplacement,\n): string {\n const {\n HOST: host,\n PARAMS: params,\n [perOptionKey]: perOptionUris,\n } = uriReplacement;\n let perVariantUri;\n if (stableId) {\n perVariantUri = perOptionUris?.[stableId];\n if (perVariantUri) {\n uri = perVariantUri;\n }\n }\n const url = new self.URL(uri);\n if (host && !perVariantUri) {\n url.host = host;\n }\n if (params) {\n Object.keys(params)\n .sort()\n .forEach((key) => {\n if (key) {\n url.searchParams.set(key, params[key]);\n }\n });\n }\n return url.href;\n}\n","import { logger } from '../utils/logger';\nimport type {\n LoaderCallbacks,\n LoaderContext,\n LoaderStats,\n Loader,\n LoaderConfiguration,\n LoaderResponse,\n} from '../types/loader';\nimport { LoadStats } from '../loader/load-stats';\nimport { type HlsConfig, RetryConfig } from '../config';\nimport { getRetryDelay, shouldRetry } from './error-helper';\n\nconst AGE_HEADER_LINE_REGEX = /^age:\\s*[\\d.]+\\s*$/im;\n\nclass XhrLoader implements Loader<LoaderContext> {\n private xhrSetup:\n | ((xhr: XMLHttpRequest, url: string) => Promise<void> | void)\n | null;\n private requestTimeout?: number;\n private retryTimeout?: number;\n private retryDelay: number;\n private config: LoaderConfiguration | null = null;\n private callbacks: LoaderCallbacks<LoaderContext> | null = null;\n public context: LoaderContext | null = null;\n\n private loader: XMLHttpRequest | null = null;\n public stats: LoaderStats;\n\n constructor(config: HlsConfig) {\n this.xhrSetup = config ? config.xhrSetup || null : null;\n this.stats = new LoadStats();\n this.retryDelay = 0;\n }\n\n destroy() {\n this.callbacks = null;\n this.abortInternal();\n this.loader = null;\n this.config = null;\n this.context = null;\n this.xhrSetup = null;\n }\n\n abortInternal() {\n const loader = this.loader;\n self.clearTimeout(this.requestTimeout);\n self.clearTimeout(this.retryTimeout);\n if (loader) {\n loader.onreadystatechange = null;\n loader.onprogress = null;\n if (loader.readyState !== 4) {\n this.stats.aborted = true;\n loader.abort();\n }\n }\n }\n\n abort() {\n this.abortInternal();\n if (this.callbacks?.onAbort) {\n this.callbacks.onAbort(\n this.stats,\n this.context as LoaderContext,\n this.loader,\n );\n }\n }\n\n load(\n context: LoaderContext,\n config: LoaderConfiguration,\n callbacks: LoaderCallbacks<LoaderContext>,\n ) {\n if (this.stats.loading.start) {\n throw new Error('Loader can only be used once.');\n }\n this.stats.loading.start = self.performance.now();\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.loadInternal();\n }\n\n loadInternal() {\n const { config, context } = this;\n if (!config || !context) {\n return;\n }\n const xhr = (this.loader = new self.XMLHttpRequest());\n\n const stats = this.stats;\n stats.loading.first = 0;\n stats.loaded = 0;\n stats.aborted = false;\n const xhrSetup = this.xhrSetup;\n\n if (xhrSetup) {\n Promise.resolve()\n .then(() => {\n if (this.loader !== xhr || this.stats.aborted) return;\n return xhrSetup(xhr, context.url);\n })\n .catch((error: Error) => {\n if (this.loader !== xhr || this.stats.aborted) return;\n xhr.open('GET', context.url, true);\n return xhrSetup(xhr, context.url);\n })\n .then(() => {\n if (this.loader !== xhr || this.stats.aborted) return;\n this.openAndSendXhr(xhr, context, config);\n })\n .catch((error: Error) => {\n // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n this.callbacks!.onError(\n { code: xhr.status, text: error.message },\n context,\n xhr,\n stats,\n );\n return;\n });\n } else {\n this.openAndSendXhr(xhr, context, config);\n }\n }\n\n openAndSendXhr(\n xhr: XMLHttpRequest,\n context: LoaderContext,\n config: LoaderConfiguration,\n ) {\n if (!xhr.readyState) {\n xhr.open('GET', context.url, true);\n }\n\n const headers = context.headers;\n const { maxTimeToFirstByteMs, maxLoadTimeMs } = config.loadPolicy;\n if (headers) {\n for (const header in headers) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n\n if (context.rangeEnd) {\n xhr.setRequestHeader(\n 'Range',\n 'bytes=' + context.rangeStart + '-' + (context.rangeEnd - 1),\n );\n }\n\n xhr.onreadystatechange = this.readystatechange.bind(this);\n xhr.onprogress = this.loadprogress.bind(this);\n xhr.responseType = context.responseType as XMLHttpRequestResponseType;\n // setup timeout before we perform request\n self.clearTimeout(this.requestTimeout);\n config.timeout =\n maxTimeToFirstByteMs && Number.isFinite(maxTimeToFirstByteMs)\n ? maxTimeToFirstByteMs\n : maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(\n this.loadtimeout.bind(this),\n config.timeout,\n );\n xhr.send();\n }\n\n readystatechange() {\n const { context, loader: xhr, stats } = this;\n if (!context || !xhr) {\n return;\n }\n const readyState = xhr.readyState;\n const config = this.config as LoaderConfiguration;\n\n // don't proceed if xhr has been aborted\n if (stats.aborted) {\n return;\n }\n\n // >= HEADERS_RECEIVED\n if (readyState >= 2) {\n if (stats.loading.first === 0) {\n stats.loading.first = Math.max(\n self.performance.now(),\n stats.loading.start,\n );\n // readyState >= 2 AND readyState !==4 (readyState = HEADERS_RECEIVED || LOADING) rearm timeout as xhr not finished yet\n if (config.timeout !== config.loadPolicy.maxLoadTimeMs) {\n self.clearTimeout(this.requestTimeout);\n config.timeout = config.loadPolicy.maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(\n this.loadtimeout.bind(this),\n config.loadPolicy.maxLoadTimeMs -\n (stats.loading.first - stats.loading.start),\n );\n }\n }\n\n if (readyState === 4) {\n self.clearTimeout(this.requestTimeout);\n xhr.onreadystatechange = null;\n xhr.onprogress = null;\n const status = xhr.status;\n // http status between 200 to 299 are all successful\n const useResponseText =\n xhr.responseType === 'text' ? xhr.responseText : null;\n if (status >= 200 && status < 300) {\n const data = useResponseText ?? xhr.response;\n if (data != null) {\n stats.loading.end = Math.max(\n self.performance.now(),\n stats.loading.first,\n );\n const len =\n xhr.responseType === 'arraybuffer'\n ? data.byteLength\n : data.length;\n stats.loaded = stats.total = len;\n stats.bwEstimate =\n (stats.total * 8000) / (stats.loading.end - stats.loading.first);\n if (!this.callbacks) {\n return;\n }\n const onProgress = this.callbacks.onProgress;\n if (onProgress) {\n onProgress(stats, context, data, xhr);\n }\n if (!this.callbacks) {\n return;\n }\n const response: LoaderResponse = {\n url: xhr.responseURL,\n data: data,\n code: status,\n };\n\n this.callbacks.onSuccess(response, stats, context, xhr);\n return;\n }\n }\n\n // Handle bad status or nullish response\n const retryConfig = config.loadPolicy.errorRetry;\n const retryCount = stats.retry;\n // if max nb of retries reached or if http status between 400 and 499 (such error cannot be recovered, retrying is useless), return error\n const response: LoaderResponse = {\n url: context.url,\n data: undefined,\n code: status,\n };\n if (shouldRetry(retryConfig, retryCount, false, response)) {\n this.retry(retryConfig);\n } else {\n logger.error(`${status} while loading ${context.url}`);\n this.callbacks!.onError(\n { code: status, text: xhr.statusText },\n context,\n xhr,\n stats,\n );\n }\n }\n }\n }\n\n loadtimeout() {\n if (!this.config) return;\n const retryConfig = this.config.loadPolicy.timeoutRetry;\n const retryCount = this.stats.retry;\n if (shouldRetry(retryConfig, retryCount, true)) {\n this.retry(retryConfig);\n } else {\n logger.warn(`timeout while loading ${this.context?.url}`);\n const callbacks = this.callbacks;\n if (callbacks) {\n this.abortInternal();\n callbacks.onTimeout(\n this.stats,\n this.context as LoaderContext,\n this.loader,\n );\n }\n }\n }\n\n retry(retryConfig: RetryConfig) {\n const { context, stats } = this;\n this.retryDelay = getRetryDelay(retryConfig, stats.retry);\n stats.retry++;\n logger.warn(\n `${\n status ? 'HTTP Status ' + status : 'Timeout'\n } while loading ${context?.url}, retrying ${stats.retry}/${\n retryConfig.maxNumRetry\n } in ${this.retryDelay}ms`,\n );\n // abort and reset internal state\n this.abortInternal();\n this.loader = null;\n // schedule retry\n self.clearTimeout(this.retryTimeout);\n this.retryTimeout = self.setTimeout(\n this.loadInternal.bind(this),\n this.retryDelay,\n );\n }\n\n loadprogress(event: ProgressEvent) {\n const stats = this.stats;\n\n stats.loaded = event.loaded;\n if (event.lengthComputable) {\n stats.total = event.total;\n }\n }\n\n getCacheAge(): number | null {\n let result: number | null = null;\n if (\n this.loader &&\n AGE_HEADER_LINE_REGEX.test(this.loader.getAllResponseHeaders())\n ) {\n const ageHeader = this.loader.getResponseHeader('age');\n result = ageHeader ? parseFloat(ageHeader) : null;\n }\n return result;\n }\n\n getResponseHeader(name: string): string | null {\n if (\n this.loader &&\n new RegExp(`^${name}:\\\\s*[\\\\d.]+\\\\s*$`, 'im').test(\n this.loader.getAllResponseHeaders(),\n )\n ) {\n return this.loader.getResponseHeader(name);\n }\n return null;\n }\n}\n\nexport default XhrLoader;\n","import {\n LoaderCallbacks,\n LoaderContext,\n Loader,\n LoaderStats,\n LoaderConfiguration,\n LoaderOnProgress,\n LoaderResponse,\n} from '../types/loader';\nimport { LoadStats } from '../loader/load-stats';\nimport ChunkCache from '../demux/chunk-cache';\n\nexport function fetchSupported() {\n if (\n // @ts-ignore\n self.fetch &&\n self.AbortController &&\n self.ReadableStream &&\n self.Request\n ) {\n try {\n new self.ReadableStream({}); // eslint-disable-line no-new\n return true;\n } catch (e) {\n /* noop */\n }\n }\n return false;\n}\n\nconst BYTERANGE = /(\\d+)-(\\d+)\\/(\\d+)/;\n\nclass FetchLoader implements Loader<LoaderContext> {\n private fetchSetup: Function;\n private requestTimeout?: number;\n private request: Request | null = null;\n private response: Response | null = null;\n private controller: AbortController;\n public context: LoaderContext | null = null;\n private config: LoaderConfiguration | null = null;\n private callbacks: LoaderCallbacks<LoaderContext> | null = null;\n public stats: LoaderStats;\n private loader: Response | null = null;\n\n constructor(config /* HlsConfig */) {\n this.fetchSetup = config.fetchSetup || getRequest;\n this.controller = new self.AbortController();\n this.stats = new LoadStats();\n }\n\n destroy(): void {\n this.loader =\n this.callbacks =\n this.context =\n this.config =\n this.request =\n null;\n this.abortInternal();\n this.response = null;\n // @ts-ignore\n this.fetchSetup = this.controller = this.stats = null;\n }\n\n abortInternal(): void {\n if (this.controller && !this.stats.loading.end) {\n this.stats.aborted = true;\n this.controller.abort();\n }\n }\n\n abort(): void {\n this.abortInternal();\n if (this.callbacks?.onAbort) {\n this.callbacks.onAbort(\n this.stats,\n this.context as LoaderContext,\n this.response,\n );\n }\n }\n\n load(\n context: LoaderContext,\n config: LoaderConfiguration,\n callbacks: LoaderCallbacks<LoaderContext>,\n ): void {\n const stats = this.stats;\n if (stats.loading.start) {\n throw new Error('Loader can only be used once.');\n }\n stats.loading.start = self.performance.now();\n\n const initParams = getRequestParameters(context, this.controller.signal);\n const onProgress: LoaderOnProgress<LoaderContext> | undefined =\n callbacks.onProgress;\n const isArrayBuffer = context.responseType === 'arraybuffer';\n const LENGTH = isArrayBuffer ? 'byteLength' : 'length';\n const { maxTimeToFirstByteMs, maxLoadTimeMs } = config.loadPolicy;\n\n this.context = context;\n this.config = config;\n this.callbacks = callbacks;\n this.request = this.fetchSetup(context, initParams);\n self.clearTimeout(this.requestTimeout);\n config.timeout =\n maxTimeToFirstByteMs && Number.isFinite(maxTimeToFirstByteMs)\n ? maxTimeToFirstByteMs\n : maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(() => {\n this.abortInternal();\n callbacks.onTimeout(stats, context, this.response);\n }, config.timeout);\n\n self\n .fetch(this.request as Request)\n .then((response: Response): Promise<string | ArrayBuffer> => {\n this.response = this.loader = response;\n\n const first = Math.max(self.performance.now(), stats.loading.start);\n\n self.clearTimeout(this.requestTimeout);\n config.timeout = maxLoadTimeMs;\n this.requestTimeout = self.setTimeout(\n () => {\n this.abortInternal();\n callbacks.onTimeout(stats, context, this.response);\n },\n maxLoadTimeMs - (first - stats.loading.start),\n );\n\n if (!response.ok) {\n const { status, statusText } = response;\n throw new FetchError(\n statusText || 'fetch, bad network response',\n status,\n response,\n );\n }\n stats.loading.first = first;\n\n stats.total = getContentLength(response.headers) || stats.total;\n\n if (onProgress && Number.isFinite(config.highWaterMark)) {\n return this.loadProgressively(\n response,\n stats,\n context,\n config.highWaterMark,\n onProgress,\n );\n }\n\n if (isArrayBuffer) {\n return response.arrayBuffer();\n }\n if (context.responseType === 'json') {\n return response.json();\n }\n return response.text();\n })\n .then((responseData: string | ArrayBuffer) => {\n const response = this.response;\n if (!response) {\n throw new Error('loader destroyed');\n }\n self.clearTimeout(this.requestTimeout);\n stats.loading.end = Math.max(\n self.performance.now(),\n stats.loading.first,\n );\n const total = responseData[LENGTH];\n if (total) {\n stats.loaded = stats.total = total;\n }\n\n const loaderResponse: LoaderResponse = {\n url: response.url,\n data: responseData,\n code: response.status,\n };\n\n if (onProgress && !Number.isFinite(config.highWaterMark)) {\n onProgress(stats, context, responseData, response);\n }\n\n callbacks.onSuccess(loaderResponse, stats, context, response);\n })\n .catch((error) => {\n self.clearTimeout(this.requestTimeout);\n if (stats.aborted) {\n return;\n }\n // CORS errors result in an undefined code. Set it to 0 here to align with XHR's behavior\n // when destroying, 'error' itself can be undefined\n const code: number = !error ? 0 : error.code || 0;\n const text: string = !error ? null : error.message;\n callbacks.onError(\n { code, text },\n context,\n error ? error.details : null,\n stats,\n );\n });\n }\n\n getCacheAge(): number | null {\n let result: number | null = null;\n if (this.response) {\n const ageHeader = this.response.headers.get('age');\n result = ageHeader ? parseFloat(ageHeader) : null;\n }\n return result;\n }\n\n getResponseHeader(name: string): string | null {\n return this.response ? this.response.headers.get(name) : null;\n }\n\n private loadProgressively(\n response: Response,\n stats: LoaderStats,\n context: LoaderContext,\n highWaterMark: number = 0,\n onProgress: LoaderOnProgress<LoaderContext>,\n ): Promise<ArrayBuffer> {\n const chunkCache = new ChunkCache();\n const reader = (response.body as ReadableStream).getReader();\n\n const pump = (): Promise<ArrayBuffer> => {\n return reader\n .read()\n .then((data) => {\n if (data.done) {\n if (chunkCache.dataLength) {\n onProgress(stats, context, chunkCache.flush(), response);\n }\n\n return Promise.resolve(new ArrayBuffer(0));\n }\n const chunk: Uint8Array = data.value;\n const len = chunk.length;\n stats.loaded += len;\n if (len < highWaterMark || chunkCache.dataLength) {\n // The current chunk is too small to to be emitted or the cache already has data\n // Push it to the cache\n chunkCache.push(chunk);\n if (chunkCache.dataLength >= highWaterMark) {\n // flush in order to join the typed arrays\n onProgress(stats, context, chunkCache.flush(), response);\n }\n } else {\n // If there's nothing cached already, and the chache is large enough\n // just emit the progress event\n onProgress(stats, context, chunk, response);\n }\n return pump();\n })\n .catch(() => {\n /* aborted */\n return Promise.reject();\n });\n };\n\n return pump();\n }\n}\n\nfunction getRequestParameters(context: LoaderContext, signal): any {\n const initParams: any = {\n method: 'GET',\n mode: 'cors',\n credentials: 'same-origin',\n signal,\n headers: new self.Headers(Object.assign({}, context.headers)),\n };\n\n if (context.rangeEnd) {\n initParams.headers.set(\n 'Range',\n 'bytes=' + context.rangeStart + '-' + String(context.rangeEnd - 1),\n );\n }\n\n return initParams;\n}\n\nfunction getByteRangeLength(byteRangeHeader: string): number | undefined {\n const result = BYTERANGE.exec(byteRangeHeader);\n if (result) {\n return parseInt(result[2]) - parseInt(result[1]) + 1;\n }\n}\n\nfunction getContentLength(headers: Headers): number | undefined {\n const contentRange = headers.get('Content-Range');\n if (contentRange) {\n const byteRangeLength = getByteRangeLength(contentRange);\n if (Number.isFinite(byteRangeLength)) {\n return byteRangeLength;\n }\n }\n const contentLength = headers.get('Content-Length');\n if (contentLength) {\n return parseInt(contentLength);\n }\n}\n\nfunction getRequest(context: LoaderContext, initParams: any): Request {\n return new self.Request(context.url, initParams);\n}\n\nclass FetchError extends Error {\n public code: number;\n public details: any;\n constructor(message: string, code: number, details: any) {\n super(message);\n this.code = code;\n this.details = details;\n }\n}\n\nexport default FetchLoader;\n","import { fixLineBreaks } from './vttparser';\nimport type { CaptionScreen, Row } from './cea-608-parser';\nimport { generateCueId } from './webvtt-parser';\nimport { addCueToTrack } from './texttrack-utils';\n\nconst WHITESPACE_CHAR = /\\s/;\n\nexport interface CuesInterface {\n newCue(\n track: TextTrack | null,\n startTime: number,\n endTime: number,\n captionScreen: CaptionScreen,\n ): VTTCue[];\n}\n\nconst Cues: CuesInterface = {\n newCue(\n track: TextTrack | null,\n startTime: number,\n endTime: number,\n captionScreen: CaptionScreen,\n ): VTTCue[] {\n const result: VTTCue[] = [];\n let row: Row;\n // the type data states this is VTTCue, but it can potentially be a TextTrackCue on old browsers\n let cue: VTTCue;\n let indenting: boolean;\n let indent: number;\n let text: string;\n const Cue = (self.VTTCue || self.TextTrackCue) as any;\n\n for (let r = 0; r < captionScreen.rows.length; r++) {\n row = captionScreen.rows[r];\n indenting = true;\n indent = 0;\n text = '';\n\n if (!row.isEmpty()) {\n for (let c = 0; c < row.chars.length; c++) {\n if (WHITESPACE_CHAR.test(row.chars[c].uchar) && indenting) {\n indent++;\n } else {\n text += row.chars[c].uchar;\n indenting = false;\n }\n }\n // To be used for cleaning-up orphaned roll-up captions\n row.cueStartTime = startTime;\n\n // Give a slight bump to the endTime if it's equal to startTime to avoid a SyntaxError in IE\n if (startTime === endTime) {\n endTime += 0.0001;\n }\n\n if (indent >= 16) {\n indent--;\n } else {\n indent++;\n }\n\n const cueText = fixLineBreaks(text.trim());\n const id = generateCueId(startTime, endTime, cueText);\n\n // If this cue already exists in the track do not push it\n if (!track?.cues?.getCueById(id)) {\n cue = new Cue(startTime, endTime, cueText);\n cue.id = id;\n cue.line = r + 1;\n cue.align = 'left';\n // Clamp the position between 10 and 80 percent (CEA-608 PAC indent code)\n // https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/608toVTT.html#positioning-in-cea-608\n // Firefox throws an exception and captions break with out of bounds 0-100 values\n cue.position = 10 + Math.min(80, Math.floor((indent * 8) / 32) * 10);\n result.push(cue);\n }\n }\n }\n if (track && result.length) {\n // Sort bottom cues in reverse order so that they render in line order when overlapping in Chrome\n result.sort((cueA, cueB) => {\n if (cueA.line === 'auto' || cueB.line === 'auto') {\n return 0;\n }\n if (cueA.line > 8 && cueB.line > 8) {\n return cueB.line - cueA.line;\n }\n return cueA.line - cueB.line;\n });\n result.forEach((cue) => addCueToTrack(track, cue));\n }\n return result;\n },\n};\n\nexport default Cues;\n","import AbrController from './controller/abr-controller';\nimport AudioStreamController from './controller/audio-stream-controller';\nimport AudioTrackController from './controller/audio-track-controller';\nimport { SubtitleStreamController } from './controller/subtitle-stream-controller';\nimport SubtitleTrackController from './controller/subtitle-track-controller';\nimport BufferController from './controller/buffer-controller';\nimport { TimelineController } from './controller/timeline-controller';\nimport CapLevelController from './controller/cap-level-controller';\nimport FPSController from './controller/fps-controller';\nimport EMEController, {\n MediaKeySessionContext,\n} from './controller/eme-controller';\nimport CMCDController from './controller/cmcd-controller';\nimport ContentSteeringController from './controller/content-steering-controller';\nimport ErrorController from './controller/error-controller';\nimport XhrLoader from './utils/xhr-loader';\nimport FetchLoader, { fetchSupported } from './utils/fetch-loader';\nimport Cues from './utils/cues';\nimport { requestMediaKeySystemAccess } from './utils/mediakeys-helper';\nimport { ILogger, logger } from './utils/logger';\n\nimport type Hls from './hls';\nimport type { CuesInterface } from './utils/cues';\nimport type { MediaKeyFunc, KeySystems } from './utils/mediakeys-helper';\nimport type {\n FragmentLoaderContext,\n Loader,\n LoaderContext,\n LoaderResponse,\n PlaylistLoaderContext,\n} from './types/loader';\nimport type {\n AudioSelectionOption,\n SubtitleSelectionOption,\n VideoSelectionOption,\n} from './types/media-playlist';\n\nexport type ABRControllerConfig = {\n abrEwmaFastLive: number;\n abrEwmaSlowLive: number;\n abrEwmaFastVoD: number;\n abrEwmaSlowVoD: number;\n /**\n * Default bandwidth estimate in bits/s prior to collecting fragment bandwidth samples\n */\n abrEwmaDefaultEstimate: number;\n abrEwmaDefaultEstimateMax: number;\n abrBandWidthFactor: number;\n abrBandWidthUpFactor: number;\n abrMaxWithRealBitrate: boolean;\n maxStarvationDelay: number;\n maxLoadingDelay: number;\n};\n\nexport type BufferControllerConfig = {\n appendErrorMaxRetry: number;\n backBufferLength: number;\n frontBufferFlushThreshold: number;\n liveDurationInfinity: boolean;\n /**\n * @deprecated use backBufferLength\n */\n liveBackBufferLength: number | null;\n};\n\nexport type CapLevelControllerConfig = {\n capLevelToPlayerSize: boolean;\n};\n\nexport type CMCDControllerConfig = {\n sessionId?: string;\n contentId?: string;\n useHeaders?: boolean;\n includeKeys?: string[];\n};\n\nexport type DRMSystemOptions = {\n audioRobustness?: string;\n videoRobustness?: string;\n audioEncryptionScheme?: string | null;\n videoEncryptionScheme?: string | null;\n persistentState?: MediaKeysRequirement;\n distinctiveIdentifier?: MediaKeysRequirement;\n sessionTypes?: string[];\n sessionType?: string;\n};\n\nexport type DRMSystemConfiguration = {\n licenseUrl: string;\n serverCertificateUrl?: string;\n generateRequest?: (\n this: Hls,\n initDataType: string,\n initData: ArrayBuffer | null,\n keyContext: MediaKeySessionContext,\n ) =>\n | { initDataType: string; initData: ArrayBuffer | null }\n | undefined\n | never;\n};\n\nexport type DRMSystemsConfiguration = Partial<\n Record<KeySystems, DRMSystemConfiguration>\n>;\n\nexport type EMEControllerConfig = {\n licenseXhrSetup?: (\n this: Hls,\n xhr: XMLHttpRequest,\n url: string,\n keyContext: MediaKeySessionContext,\n licenseChallenge: Uint8Array,\n ) => void | Uint8Array | Promise<Uint8Array | void>;\n licenseResponseCallback?: (\n this: Hls,\n xhr: XMLHttpRequest,\n url: string,\n keyContext: MediaKeySessionContext,\n ) => ArrayBuffer;\n emeEnabled: boolean;\n widevineLicenseUrl?: string;\n drmSystems: DRMSystemsConfiguration;\n drmSystemOptions: DRMSystemOptions;\n requestMediaKeySystemAccessFunc: MediaKeyFunc | null;\n};\n\nexport interface FragmentLoaderConstructor {\n new (confg: HlsConfig): Loader<FragmentLoaderContext>;\n}\n\n/**\n * @deprecated use fragLoadPolicy.default\n */\nexport type FragmentLoaderConfig = {\n fragLoadingTimeOut: number;\n fragLoadingMaxRetry: number;\n fragLoadingRetryDelay: number;\n fragLoadingMaxRetryTimeout: number;\n};\n\nexport type FPSControllerConfig = {\n capLevelOnFPSDrop: boolean;\n fpsDroppedMonitoringPeriod: number;\n fpsDroppedMonitoringThreshold: number;\n};\n\nexport type LevelControllerConfig = {\n startLevel?: number;\n};\n\nexport type MP4RemuxerConfig = {\n stretchShortVideoTrack: boolean;\n maxAudioFramesDrift: number;\n};\n\nexport interface PlaylistLoaderConstructor {\n new (confg: HlsConfig): Loader<PlaylistLoaderContext>;\n}\n\n/**\n * @deprecated use manifestLoadPolicy.default and playlistLoadPolicy.default\n */\nexport type PlaylistLoaderConfig = {\n manifestLoadingTimeOut: number;\n manifestLoadingMaxRetry: number;\n manifestLoadingRetryDelay: number;\n manifestLoadingMaxRetryTimeout: number;\n\n levelLoadingTimeOut: number;\n levelLoadingMaxRetry: number;\n levelLoadingRetryDelay: number;\n levelLoadingMaxRetryTimeout: number;\n};\n\nexport type HlsLoadPolicies = {\n fragLoadPolicy: LoadPolicy;\n keyLoadPolicy: LoadPolicy;\n certLoadPolicy: LoadPolicy;\n playlistLoadPolicy: LoadPolicy;\n manifestLoadPolicy: LoadPolicy;\n steeringManifestLoadPolicy: LoadPolicy;\n};\n\nexport type LoadPolicy = {\n default: LoaderConfig;\n};\n\nexport type LoaderConfig = {\n maxTimeToFirstByteMs: number; // Max time to first byte\n maxLoadTimeMs: number; // Max time for load completion\n timeoutRetry: RetryConfig | null;\n errorRetry: RetryConfig | null;\n};\n\nexport type RetryConfig = {\n maxNumRetry: number; // Maximum number of retries\n retryDelayMs: number; // Retry delay = 2^retryCount * retryDelayMs (exponential) or retryCount * retryDelayMs (linear)\n maxRetryDelayMs: number; // Maximum delay between retries\n backoff?: 'exponential' | 'linear'; // used to determine retry backoff duration (see retryDelayMs)\n shouldRetry?: (\n retryConfig: RetryConfig | null | undefined,\n retryCount: number,\n isTimeout: boolean,\n loaderResponse: LoaderResponse | undefined,\n retry: boolean,\n ) => boolean;\n};\n\nexport type StreamControllerConfig = {\n autoStartLoad: boolean;\n startPosition: number;\n defaultAudioCodec?: string;\n initialLiveManifestSize: number;\n maxBufferLength: number;\n maxBufferSize: number;\n maxBufferHole: number;\n highBufferWatchdogPeriod: number;\n nudgeOffset: number;\n nudgeMaxRetry: number;\n maxFragLookUpTolerance: number;\n maxMaxBufferLength: number;\n startFragPrefetch: boolean;\n testBandwidth: boolean;\n};\n\nexport type SelectionPreferences = {\n videoPreference?: VideoSelectionOption;\n audioPreference?: AudioSelectionOption;\n subtitlePreference?: SubtitleSelectionOption;\n};\n\nexport type LatencyControllerConfig = {\n liveSyncDurationCount: number;\n liveMaxLatencyDurationCount: number;\n liveSyncDuration?: number;\n liveMaxLatencyDuration?: number;\n maxLiveSyncPlaybackRate: number;\n};\n\nexport type MetadataControllerConfig = {\n enableDateRangeMetadataCues: boolean;\n enableEmsgMetadataCues: boolean;\n enableID3MetadataCues: boolean;\n};\n\nexport type TimelineControllerConfig = {\n cueHandler: CuesInterface;\n enableWebVTT: boolean;\n enableIMSC1: boolean;\n enableCEA708Captions: boolean;\n captionsTextTrack1Label: string;\n captionsTextTrack1LanguageCode: string;\n captionsTextTrack2Label: string;\n captionsTextTrack2LanguageCode: string;\n captionsTextTrack3Label: string;\n captionsTextTrack3LanguageCode: string;\n captionsTextTrack4Label: string;\n captionsTextTrack4LanguageCode: string;\n renderTextTracksNatively: boolean;\n};\n\nexport type TSDemuxerConfig = {\n forceKeyFrameOnDiscontinuity: boolean;\n};\n\nexport type HlsConfig = {\n debug: boolean | ILogger;\n enableWorker: boolean;\n workerPath: null | string;\n enableSoftwareAES: boolean;\n minAutoBitrate: number;\n ignoreDevicePixelRatio: boolean;\n preferManagedMediaSource: boolean;\n loader: { new (confg: HlsConfig): Loader<LoaderContext> };\n fLoader?: FragmentLoaderConstructor;\n pLoader?: PlaylistLoaderConstructor;\n fetchSetup?: (context: LoaderContext, initParams: any) => Request;\n xhrSetup?: (xhr: XMLHttpRequest, url: string) => Promise<void> | void;\n\n // Alt Audio\n audioStreamController?: typeof AudioStreamController;\n audioTrackController?: typeof AudioTrackController;\n // Subtitle\n subtitleStreamController?: typeof SubtitleStreamController;\n subtitleTrackController?: typeof SubtitleTrackController;\n timelineController?: typeof TimelineController;\n // EME\n emeController?: typeof EMEController;\n // CMCD\n cmcd?: CMCDControllerConfig;\n cmcdController?: typeof CMCDController;\n // Content Steering\n contentSteeringController?: typeof ContentSteeringController;\n\n // MediaCapabilies API for level, track, and switch filtering\n useMediaCapabilities: boolean;\n\n abrController: typeof AbrController;\n bufferController: typeof BufferController;\n capLevelController: typeof CapLevelController;\n errorController: typeof ErrorController;\n fpsController: typeof FPSController;\n progressive: boolean;\n lowLatencyMode: boolean;\n} & ABRControllerConfig &\n BufferControllerConfig &\n CapLevelControllerConfig &\n EMEControllerConfig &\n FPSControllerConfig &\n LevelControllerConfig &\n MP4RemuxerConfig &\n StreamControllerConfig &\n SelectionPreferences &\n LatencyControllerConfig &\n MetadataControllerConfig &\n TimelineControllerConfig &\n TSDemuxerConfig &\n HlsLoadPolicies &\n FragmentLoaderConfig &\n PlaylistLoaderConfig;\n\nconst defaultLoadPolicy: LoaderConfig = {\n maxTimeToFirstByteMs: 8000,\n maxLoadTimeMs: 20000,\n timeoutRetry: null,\n errorRetry: null,\n};\n\n/**\n * @ignore\n * If possible, keep hlsDefaultConfig shallow\n * It is cloned whenever a new Hls instance is created, by keeping the config\n * shallow the properties are cloned, and we don't end up manipulating the default\n */\nexport const hlsDefaultConfig: HlsConfig = {\n autoStartLoad: true, // used by stream-controller\n startPosition: -1, // used by stream-controller\n defaultAudioCodec: undefined, // used by stream-controller\n debug: false, // used by logger\n capLevelOnFPSDrop: false, // used by fps-controller\n capLevelToPlayerSize: false, // used by cap-level-controller\n ignoreDevicePixelRatio: false, // used by cap-level-controller\n preferManagedMediaSource: true,\n initialLiveManifestSize: 1, // used by stream-controller\n maxBufferLength: 30, // used by stream-controller\n backBufferLength: Infinity, // used by buffer-controller\n frontBufferFlushThreshold: Infinity,\n maxBufferSize: 60 * 1000 * 1000, // used by stream-controller\n maxBufferHole: 0.1, // used by stream-controller\n highBufferWatchdogPeriod: 2, // used by stream-controller\n nudgeOffset: 0.1, // used by stream-controller\n nudgeMaxRetry: 3, // used by stream-controller\n maxFragLookUpTolerance: 0.25, // used by stream-controller\n liveSyncDurationCount: 3, // used by latency-controller\n liveMaxLatencyDurationCount: Infinity, // used by latency-controller\n liveSyncDuration: undefined, // used by latency-controller\n liveMaxLatencyDuration: undefined, // used by latency-controller\n maxLiveSyncPlaybackRate: 1, // used by latency-controller\n liveDurationInfinity: false, // used by buffer-controller\n /**\n * @deprecated use backBufferLength\n */\n liveBackBufferLength: null, // used by buffer-controller\n maxMaxBufferLength: 600, // used by stream-controller\n enableWorker: true, // used by transmuxer\n workerPath: null, // used by transmuxer\n enableSoftwareAES: true, // used by decrypter\n startLevel: undefined, // used by level-controller\n startFragPrefetch: false, // used by stream-controller\n fpsDroppedMonitoringPeriod: 5000, // used by fps-controller\n fpsDroppedMonitoringThreshold: 0.2, // used by fps-controller\n appendErrorMaxRetry: 3, // used by buffer-controller\n loader: XhrLoader,\n // loader: FetchLoader,\n fLoader: undefined, // used by fragment-loader\n pLoader: undefined, // used by playlist-loader\n xhrSetup: undefined, // used by xhr-loader\n licenseXhrSetup: undefined, // used by eme-controller\n licenseResponseCallback: undefined, // used by eme-controller\n abrController: AbrController,\n bufferController: BufferController,\n capLevelController: CapLevelController,\n errorController: ErrorController,\n fpsController: FPSController,\n stretchShortVideoTrack: false, // used by mp4-remuxer\n maxAudioFramesDrift: 1, // used by mp4-remuxer\n forceKeyFrameOnDiscontinuity: true, // used by ts-demuxer\n abrEwmaFastLive: 3, // used by abr-controller\n abrEwmaSlowLive: 9, // used by abr-controller\n abrEwmaFastVoD: 3, // used by abr-controller\n abrEwmaSlowVoD: 9, // used by abr-controller\n abrEwmaDefaultEstimate: 5e5, // 500 kbps // used by abr-controller\n abrEwmaDefaultEstimateMax: 5e6, // 5 mbps\n abrBandWidthFactor: 0.95, // used by abr-controller\n abrBandWidthUpFactor: 0.7, // used by abr-controller\n abrMaxWithRealBitrate: false, // used by abr-controller\n maxStarvationDelay: 4, // used by abr-controller\n maxLoadingDelay: 4, // used by abr-controller\n minAutoBitrate: 0, // used by hls\n emeEnabled: false, // used by eme-controller\n widevineLicenseUrl: undefined, // used by eme-controller\n drmSystems: {}, // used by eme-controller\n drmSystemOptions: {}, // used by eme-controller\n requestMediaKeySystemAccessFunc: __USE_EME_DRM__\n ? requestMediaKeySystemAccess\n : null, // used by eme-controller\n testBandwidth: true,\n progressive: false,\n lowLatencyMode: true,\n cmcd: undefined,\n enableDateRangeMetadataCues: true,\n enableEmsgMetadataCues: true,\n enableID3MetadataCues: true,\n useMediaCapabilities: __USE_MEDIA_CAPABILITIES__,\n\n certLoadPolicy: {\n default: defaultLoadPolicy,\n },\n keyLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 8000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 1,\n retryDelayMs: 1000,\n maxRetryDelayMs: 20000,\n backoff: 'linear',\n },\n errorRetry: {\n maxNumRetry: 8,\n retryDelayMs: 1000,\n maxRetryDelayMs: 20000,\n backoff: 'linear',\n },\n },\n },\n manifestLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: Infinity,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 2,\n retryDelayMs: 0,\n maxRetryDelayMs: 0,\n },\n errorRetry: {\n maxNumRetry: 1,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000,\n },\n },\n },\n playlistLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 2,\n retryDelayMs: 0,\n maxRetryDelayMs: 0,\n },\n errorRetry: {\n maxNumRetry: 2,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000,\n },\n },\n },\n fragLoadPolicy: {\n default: {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 120000,\n timeoutRetry: {\n maxNumRetry: 4,\n retryDelayMs: 0,\n maxRetryDelayMs: 0,\n },\n errorRetry: {\n maxNumRetry: 6,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000,\n },\n },\n },\n steeringManifestLoadPolicy: {\n default: __USE_CONTENT_STEERING__\n ? {\n maxTimeToFirstByteMs: 10000,\n maxLoadTimeMs: 20000,\n timeoutRetry: {\n maxNumRetry: 2,\n retryDelayMs: 0,\n maxRetryDelayMs: 0,\n },\n errorRetry: {\n maxNumRetry: 1,\n retryDelayMs: 1000,\n maxRetryDelayMs: 8000,\n },\n }\n : defaultLoadPolicy,\n },\n\n // These default settings are deprecated in favor of the above policies\n // and are maintained for backwards compatibility\n manifestLoadingTimeOut: 10000,\n manifestLoadingMaxRetry: 1,\n manifestLoadingRetryDelay: 1000,\n manifestLoadingMaxRetryTimeout: 64000,\n levelLoadingTimeOut: 10000,\n levelLoadingMaxRetry: 4,\n levelLoadingRetryDelay: 1000,\n levelLoadingMaxRetryTimeout: 64000,\n fragLoadingTimeOut: 20000,\n fragLoadingMaxRetry: 6,\n fragLoadingRetryDelay: 1000,\n fragLoadingMaxRetryTimeout: 64000,\n\n // Dynamic Modules\n ...timelineConfig(),\n subtitleStreamController: __USE_SUBTITLES__\n ? SubtitleStreamController\n : undefined,\n subtitleTrackController: __USE_SUBTITLES__\n ? SubtitleTrackController\n : undefined,\n timelineController: __USE_SUBTITLES__ ? TimelineController : undefined,\n audioStreamController: __USE_ALT_AUDIO__ ? AudioStreamController : undefined,\n audioTrackController: __USE_ALT_AUDIO__ ? AudioTrackController : undefined,\n emeController: __USE_EME_DRM__ ? EMEController : undefined,\n cmcdController: __USE_CMCD__ ? CMCDController : undefined,\n contentSteeringController: __USE_CONTENT_STEERING__\n ? ContentSteeringController\n : undefined,\n};\n\nfunction timelineConfig(): TimelineControllerConfig {\n return {\n cueHandler: Cues, // used by timeline-controller\n enableWebVTT: __USE_SUBTITLES__, // used by timeline-controller\n enableIMSC1: __USE_SUBTITLES__, // used by timeline-controller\n enableCEA708Captions: __USE_SUBTITLES__, // used by timeline-controller\n captionsTextTrack1Label: 'English', // used by timeline-controller\n captionsTextTrack1LanguageCode: 'en', // used by timeline-controller\n captionsTextTrack2Label: 'Spanish', // used by timeline-controller\n captionsTextTrack2LanguageCode: 'es', // used by timeline-controller\n captionsTextTrack3Label: 'Unknown CC', // used by timeline-controller\n captionsTextTrack3LanguageCode: '', // used by timeline-controller\n captionsTextTrack4Label: 'Unknown CC', // used by timeline-controller\n captionsTextTrack4LanguageCode: '', // used by timeline-controller\n renderTextTracksNatively: true,\n };\n}\n\n/**\n * @ignore\n */\nexport function mergeConfig(\n defaultConfig: HlsConfig,\n userConfig: Partial<HlsConfig>,\n): HlsConfig {\n if (\n (userConfig.liveSyncDurationCount ||\n userConfig.liveMaxLatencyDurationCount) &&\n (userConfig.liveSyncDuration || userConfig.liveMaxLatencyDuration)\n ) {\n throw new Error(\n \"Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration\",\n );\n }\n\n if (\n userConfig.liveMaxLatencyDurationCount !== undefined &&\n (userConfig.liveSyncDurationCount === undefined ||\n userConfig.liveMaxLatencyDurationCount <=\n userConfig.liveSyncDurationCount)\n ) {\n throw new Error(\n 'Illegal hls.js config: \"liveMaxLatencyDurationCount\" must be greater than \"liveSyncDurationCount\"',\n );\n }\n\n if (\n userConfig.liveMaxLatencyDuration !== undefined &&\n (userConfig.liveSyncDuration === undefined ||\n userConfig.liveMaxLatencyDuration <= userConfig.liveSyncDuration)\n ) {\n throw new Error(\n 'Illegal hls.js config: \"liveMaxLatencyDuration\" must be greater than \"liveSyncDuration\"',\n );\n }\n\n const defaultsCopy = deepCpy(defaultConfig);\n\n // Backwards compatibility with deprecated config values\n const deprecatedSettingTypes = ['manifest', 'level', 'frag'];\n const deprecatedSettings = [\n 'TimeOut',\n 'MaxRetry',\n 'RetryDelay',\n 'MaxRetryTimeout',\n ];\n deprecatedSettingTypes.forEach((type) => {\n const policyName = `${type === 'level' ? 'playlist' : type}LoadPolicy`;\n const policyNotSet = userConfig[policyName] === undefined;\n const report: string[] = [];\n deprecatedSettings.forEach((setting) => {\n const deprecatedSetting = `${type}Loading${setting}`;\n const value = userConfig[deprecatedSetting];\n if (value !== undefined && policyNotSet) {\n report.push(deprecatedSetting);\n const settings: LoaderConfig = defaultsCopy[policyName].default;\n userConfig[policyName] = { default: settings };\n switch (setting) {\n case 'TimeOut':\n settings.maxLoadTimeMs = value;\n settings.maxTimeToFirstByteMs = value;\n break;\n case 'MaxRetry':\n settings.errorRetry!.maxNumRetry = value;\n settings.timeoutRetry!.maxNumRetry = value;\n break;\n case 'RetryDelay':\n settings.errorRetry!.retryDelayMs = value;\n settings.timeoutRetry!.retryDelayMs = value;\n break;\n case 'MaxRetryTimeout':\n settings.errorRetry!.maxRetryDelayMs = value;\n settings.timeoutRetry!.maxRetryDelayMs = value;\n break;\n }\n }\n });\n if (report.length) {\n logger.warn(\n `hls.js config: \"${report.join(\n '\", \"',\n )}\" setting(s) are deprecated, use \"${policyName}\": ${JSON.stringify(\n userConfig[policyName],\n )}`,\n );\n }\n });\n\n return {\n ...defaultsCopy,\n ...userConfig,\n };\n}\n\nfunction deepCpy(obj: any): any {\n if (obj && typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return obj.map(deepCpy);\n }\n return Object.keys(obj).reduce((result, key) => {\n result[key] = deepCpy(obj[key]);\n return result;\n }, {});\n }\n return obj;\n}\n\n/**\n * @ignore\n */\nexport function enableStreamingMode(config) {\n const currentLoader = config.loader;\n if (currentLoader !== FetchLoader && currentLoader !== XhrLoader) {\n // If a developer has configured their own loader, respect that choice\n logger.log(\n '[config]: Custom loader detected, cannot enable progressive streaming',\n );\n config.progressive = false;\n } else {\n const canStreamProgressively = fetchSupported();\n if (canStreamProgressively) {\n config.loader = FetchLoader;\n config.progressive = true;\n config.enableSoftwareAES = true;\n logger.log('[config]: Progressive streaming enabled, using FetchLoader');\n }\n }\n}\n","import EwmaBandWidthEstimator from '../utils/ewma-bandwidth-estimator';\nimport { Events } from '../events';\nimport { ErrorDetails } from '../errors';\nimport { PlaylistLevelType } from '../types/loader';\nimport { logger } from '../utils/logger';\nimport {\n SUPPORTED_INFO_DEFAULT,\n getMediaDecodingInfoPromise,\n requiresMediaCapabilitiesDecodingInfo,\n} from '../utils/mediacapabilities-helper';\nimport {\n getAudioTracksByGroup,\n getCodecTiers,\n getStartCodecTier,\n type AudioTracksByGroup,\n type CodecSetTier,\n} from '../utils/rendition-helper';\nimport type { Fragment } from '../loader/fragment';\nimport type { Part } from '../loader/fragment';\nimport type { Level, VideoRange } from '../types/level';\nimport type { LoaderStats } from '../types/loader';\nimport type Hls from '../hls';\nimport type {\n FragLoadingData,\n FragLoadedData,\n FragBufferedData,\n LevelLoadedData,\n LevelSwitchingData,\n ManifestLoadingData,\n ErrorData,\n} from '../types/events';\nimport type { AbrComponentAPI } from '../types/component-api';\n\nclass AbrController implements AbrComponentAPI {\n protected hls: Hls;\n private lastLevelLoadSec: number = 0;\n private lastLoadedFragLevel: number = -1;\n private firstSelection: number = -1;\n private _nextAutoLevel: number = -1;\n private nextAutoLevelKey: string = '';\n private audioTracksByGroup: AudioTracksByGroup | null = null;\n private codecTiers: Record<string, CodecSetTier> | null = null;\n private timer: number = -1;\n private fragCurrent: Fragment | null = null;\n private partCurrent: Part | null = null;\n private bitrateTestDelay: number = 0;\n\n public bwEstimator: EwmaBandWidthEstimator;\n\n constructor(hls: Hls) {\n this.hls = hls;\n this.bwEstimator = this.initEstimator();\n this.registerListeners();\n }\n\n public resetEstimator(abrEwmaDefaultEstimate?: number) {\n if (abrEwmaDefaultEstimate) {\n logger.log(`setting initial bwe to ${abrEwmaDefaultEstimate}`);\n this.hls.config.abrEwmaDefaultEstimate = abrEwmaDefaultEstimate;\n }\n this.firstSelection = -1;\n this.bwEstimator = this.initEstimator();\n }\n\n private initEstimator(): EwmaBandWidthEstimator {\n const config = this.hls.config;\n return new EwmaBandWidthEstimator(\n config.abrEwmaSlowVoD,\n config.abrEwmaFastVoD,\n config.abrEwmaDefaultEstimate,\n );\n }\n\n protected registerListeners() {\n const { hls } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.on(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n\n protected unregisterListeners() {\n const { hls } = this;\n if (!hls) {\n return;\n }\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.FRAG_LOADING, this.onFragLoading, this);\n hls.off(Events.FRAG_LOADED, this.onFragLoaded, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n\n public destroy() {\n this.unregisterListeners();\n this.clearTimer();\n // @ts-ignore\n this.hls = this._abandonRulesCheck = null;\n this.fragCurrent = this.partCurrent = null;\n }\n\n protected onManifestLoading(\n event: Events.MANIFEST_LOADING,\n data: ManifestLoadingData,\n ) {\n this.lastLoadedFragLevel = -1;\n this.firstSelection = -1;\n this.lastLevelLoadSec = 0;\n this.fragCurrent = this.partCurrent = null;\n this.onLevelsUpdated();\n this.clearTimer();\n }\n\n private onLevelsUpdated() {\n if (this.lastLoadedFragLevel > -1 && this.fragCurrent) {\n this.lastLoadedFragLevel = this.fragCurrent.level;\n }\n this._nextAutoLevel = -1;\n this.onMaxAutoLevelUpdated();\n this.codecTiers = null;\n this.audioTracksByGroup = null;\n }\n\n private onMaxAutoLevelUpdated() {\n this.firstSelection = -1;\n this.nextAutoLevelKey = '';\n }\n\n protected onFragLoading(event: Events.FRAG_LOADING, data: FragLoadingData) {\n const frag = data.frag;\n if (this.ignoreFragment(frag)) {\n return;\n }\n if (!frag.bitrateTest) {\n this.fragCurrent = frag;\n this.partCurrent = data.part ?? null;\n }\n this.clearTimer();\n this.timer = self.setInterval(this._abandonRulesCheck, 100);\n }\n\n protected onLevelSwitching(\n event: Events.LEVEL_SWITCHING,\n data: LevelSwitchingData,\n ): void {\n this.clearTimer();\n }\n\n protected onError(event: Events.ERROR, data: ErrorData) {\n if (data.fatal) {\n return;\n }\n switch (data.details) {\n case ErrorDetails.BUFFER_ADD_CODEC_ERROR:\n case ErrorDetails.BUFFER_APPEND_ERROR:\n // Reset last loaded level so that a new selection can be made after calling recoverMediaError\n this.lastLoadedFragLevel = -1;\n this.firstSelection = -1;\n break;\n case ErrorDetails.FRAG_LOAD_TIMEOUT: {\n const frag = data.frag;\n const { fragCurrent, partCurrent: part } = this;\n if (\n frag &&\n fragCurrent &&\n frag.sn === fragCurrent.sn &&\n frag.level === fragCurrent.level\n ) {\n const now = performance.now();\n const stats: LoaderStats = part ? part.stats : frag.stats;\n const timeLoading = now - stats.loading.start;\n const ttfb = stats.loading.first\n ? stats.loading.first - stats.loading.start\n : -1;\n const loadedFirstByte = stats.loaded && ttfb > -1;\n if (loadedFirstByte) {\n const ttfbEstimate = this.bwEstimator.getEstimateTTFB();\n this.bwEstimator.sample(\n timeLoading - Math.min(ttfbEstimate, ttfb),\n stats.loaded,\n );\n } else {\n this.bwEstimator.sampleTTFB(timeLoading);\n }\n }\n break;\n }\n }\n }\n\n private getTimeToLoadFrag(\n timeToFirstByteSec: number,\n bandwidth: number,\n fragSizeBits: number,\n isSwitch: boolean,\n ): number {\n const fragLoadSec = timeToFirstByteSec + fragSizeBits / bandwidth;\n const playlistLoadSec = isSwitch ? this.lastLevelLoadSec : 0;\n return fragLoadSec + playlistLoadSec;\n }\n\n protected onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData) {\n const config = this.hls.config;\n const { loading } = data.stats;\n const timeLoadingMs = loading.end - loading.start;\n if (Number.isFinite(timeLoadingMs)) {\n this.lastLevelLoadSec = timeLoadingMs / 1000;\n }\n if (data.details.live) {\n this.bwEstimator.update(config.abrEwmaSlowLive, config.abrEwmaFastLive);\n } else {\n this.bwEstimator.update(config.abrEwmaSlowVoD, config.abrEwmaFastVoD);\n }\n }\n\n /*\n This method monitors the download rate of the current fragment, and will downswitch if that fragment will not load\n quickly enough to prevent underbuffering\n */\n private _abandonRulesCheck = () => {\n const { fragCurrent: frag, partCurrent: part, hls } = this;\n const { autoLevelEnabled, media } = hls;\n if (!frag || !media) {\n return;\n }\n\n const now = performance.now();\n const stats: LoaderStats = part ? part.stats : frag.stats;\n const duration = part ? part.duration : frag.duration;\n const timeLoading = now - stats.loading.start;\n const minAutoLevel = hls.minAutoLevel;\n // If frag loading is aborted, complete, or from lowest level, stop timer and return\n if (\n stats.aborted ||\n (stats.loaded && stats.loaded === stats.total) ||\n frag.level <= minAutoLevel\n ) {\n this.clearTimer();\n // reset forced auto level value so that next level will be selected\n this._nextAutoLevel = -1;\n return;\n }\n\n // This check only runs if we're in ABR mode and actually playing\n if (\n !autoLevelEnabled ||\n media.paused ||\n !media.playbackRate ||\n !media.readyState\n ) {\n return;\n }\n\n const bufferInfo = hls.mainForwardBufferInfo;\n if (bufferInfo === null) {\n return;\n }\n\n const ttfbEstimate = this.bwEstimator.getEstimateTTFB();\n const playbackRate = Math.abs(media.playbackRate);\n // To maintain stable adaptive playback, only begin monitoring frag loading after half or more of its playback duration has passed\n if (\n timeLoading <=\n Math.max(ttfbEstimate, 1000 * (duration / (playbackRate * 2)))\n ) {\n return;\n }\n\n // bufferStarvationDelay is an estimate of the amount time (in seconds) it will take to exhaust the buffer\n const bufferStarvationDelay = bufferInfo.len / playbackRate;\n const ttfb = stats.loading.first\n ? stats.loading.first - stats.loading.start\n : -1;\n const loadedFirstByte = stats.loaded && ttfb > -1;\n const bwEstimate: number = this.getBwEstimate();\n const levels = hls.levels;\n const level = levels[frag.level];\n const expectedLen =\n stats.total ||\n Math.max(stats.loaded, Math.round((duration * level.averageBitrate) / 8));\n let timeStreaming = loadedFirstByte ? timeLoading - ttfb : timeLoading;\n if (timeStreaming < 1 && loadedFirstByte) {\n timeStreaming = Math.min(timeLoading, (stats.loaded * 8) / bwEstimate);\n }\n const loadRate = loadedFirstByte\n ? (stats.loaded * 1000) / timeStreaming\n : 0;\n // fragLoadDelay is an estimate of the time (in seconds) it will take to buffer the remainder of the fragment\n const fragLoadedDelay = loadRate\n ? (expectedLen - stats.loaded) / loadRate\n : (expectedLen * 8) / bwEstimate + ttfbEstimate / 1000;\n // Only downswitch if the time to finish loading the current fragment is greater than the amount of buffer left\n if (fragLoadedDelay <= bufferStarvationDelay) {\n return;\n }\n\n const bwe = loadRate ? loadRate * 8 : bwEstimate;\n let fragLevelNextLoadedDelay: number = Number.POSITIVE_INFINITY;\n let nextLoadLevel: number;\n // Iterate through lower level and try to find the largest one that avoids rebuffering\n for (\n nextLoadLevel = frag.level - 1;\n nextLoadLevel > minAutoLevel;\n nextLoadLevel--\n ) {\n // compute time to load next fragment at lower level\n // 8 = bits per byte (bps/Bps)\n const levelNextBitrate = levels[nextLoadLevel].maxBitrate;\n fragLevelNextLoadedDelay = this.getTimeToLoadFrag(\n ttfbEstimate / 1000,\n bwe,\n duration * levelNextBitrate,\n !levels[nextLoadLevel].details,\n );\n if (fragLevelNextLoadedDelay < bufferStarvationDelay) {\n break;\n }\n }\n // Only emergency switch down if it takes less time to load a new fragment at lowest level instead of continuing\n // to load the current one\n if (fragLevelNextLoadedDelay >= fragLoadedDelay) {\n return;\n }\n\n // if estimated load time of new segment is completely unreasonable, ignore and do not emergency switch down\n if (fragLevelNextLoadedDelay > duration * 10) {\n return;\n }\n hls.nextLoadLevel = hls.nextAutoLevel = nextLoadLevel;\n if (loadedFirstByte) {\n // If there has been loading progress, sample bandwidth using loading time offset by minimum TTFB time\n this.bwEstimator.sample(\n timeLoading - Math.min(ttfbEstimate, ttfb),\n stats.loaded,\n );\n } else {\n // If there has been no loading progress, sample TTFB\n this.bwEstimator.sampleTTFB(timeLoading);\n }\n const nextLoadLevelBitrate = levels[nextLoadLevel].maxBitrate;\n if (\n this.getBwEstimate() * this.hls.config.abrBandWidthUpFactor >\n nextLoadLevelBitrate\n ) {\n this.resetEstimator(nextLoadLevelBitrate);\n }\n\n this.clearTimer();\n logger.warn(`[abr] Fragment ${frag.sn}${\n part ? ' part ' + part.index : ''\n } of level ${frag.level} is loading too slowly;\n Time to underbuffer: ${bufferStarvationDelay.toFixed(3)} s\n Estimated load time for current fragment: ${fragLoadedDelay.toFixed(3)} s\n Estimated load time for down switch fragment: ${fragLevelNextLoadedDelay.toFixed(\n 3,\n )} s\n TTFB estimate: ${ttfb | 0} ms\n Current BW estimate: ${\n Number.isFinite(bwEstimate) ? bwEstimate | 0 : 'Unknown'\n } bps\n New BW estimate: ${this.getBwEstimate() | 0} bps\n Switching to level ${nextLoadLevel} @ ${nextLoadLevelBitrate | 0} bps`);\n hls.trigger(Events.FRAG_LOAD_EMERGENCY_ABORTED, { frag, part, stats });\n };\n\n protected onFragLoaded(\n event: Events.FRAG_LOADED,\n { frag, part }: FragLoadedData,\n ) {\n const stats = part ? part.stats : frag.stats;\n if (frag.type === PlaylistLevelType.MAIN) {\n this.bwEstimator.sampleTTFB(stats.loading.first - stats.loading.start);\n }\n if (this.ignoreFragment(frag)) {\n return;\n }\n // stop monitoring bw once frag loaded\n this.clearTimer();\n // reset forced auto level value so that next level will be selected\n if (frag.level === this._nextAutoLevel) {\n this._nextAutoLevel = -1;\n }\n this.firstSelection = -1;\n\n // compute level average bitrate\n if (this.hls.config.abrMaxWithRealBitrate) {\n const duration = part ? part.duration : frag.duration;\n const level = this.hls.levels[frag.level];\n const loadedBytes =\n (level.loaded ? level.loaded.bytes : 0) + stats.loaded;\n const loadedDuration =\n (level.loaded ? level.loaded.duration : 0) + duration;\n level.loaded = { bytes: loadedBytes, duration: loadedDuration };\n level.realBitrate = Math.round((8 * loadedBytes) / loadedDuration);\n }\n if (frag.bitrateTest) {\n const fragBufferedData: FragBufferedData = {\n stats,\n frag,\n part,\n id: frag.type,\n };\n this.onFragBuffered(Events.FRAG_BUFFERED, fragBufferedData);\n frag.bitrateTest = false;\n } else {\n // store level id after successful fragment load for playback\n this.lastLoadedFragLevel = frag.level;\n }\n }\n\n protected onFragBuffered(\n event: Events.FRAG_BUFFERED,\n data: FragBufferedData,\n ) {\n const { frag, part } = data;\n const stats = part?.stats.loaded ? part.stats : frag.stats;\n\n if (stats.aborted) {\n return;\n }\n if (this.ignoreFragment(frag)) {\n return;\n }\n // Use the difference between parsing and request instead of buffering and request to compute fragLoadingProcessing;\n // rationale is that buffer appending only happens once media is attached. This can happen when config.startFragPrefetch\n // is used. If we used buffering in that case, our BW estimate sample will be very large.\n const processingMs =\n stats.parsing.end -\n stats.loading.start -\n Math.min(\n stats.loading.first - stats.loading.start,\n this.bwEstimator.getEstimateTTFB(),\n );\n this.bwEstimator.sample(processingMs, stats.loaded);\n stats.bwEstimate = this.getBwEstimate();\n if (frag.bitrateTest) {\n this.bitrateTestDelay = processingMs / 1000;\n } else {\n this.bitrateTestDelay = 0;\n }\n }\n\n private ignoreFragment(frag: Fragment): boolean {\n // Only count non-alt-audio frags which were actually buffered in our BW calculations\n return frag.type !== PlaylistLevelType.MAIN || frag.sn === 'initSegment';\n }\n\n public clearTimer() {\n if (this.timer > -1) {\n self.clearInterval(this.timer);\n this.timer = -1;\n }\n }\n\n public get firstAutoLevel(): number {\n const { maxAutoLevel, minAutoLevel } = this.hls;\n const bwEstimate = this.getBwEstimate();\n const maxStartDelay = this.hls.config.maxStarvationDelay;\n const abrAutoLevel = this.findBestLevel(\n bwEstimate,\n minAutoLevel,\n maxAutoLevel,\n 0,\n maxStartDelay,\n 1,\n 1,\n );\n if (abrAutoLevel > -1) {\n return abrAutoLevel;\n }\n const firstLevel = this.hls.firstLevel;\n const clamped = Math.min(Math.max(firstLevel, minAutoLevel), maxAutoLevel);\n logger.warn(\n `[abr] Could not find best starting auto level. Defaulting to first in playlist ${firstLevel} clamped to ${clamped}`,\n );\n return clamped;\n }\n\n public get forcedAutoLevel(): number {\n if (this.nextAutoLevelKey) {\n return -1;\n }\n return this._nextAutoLevel;\n }\n\n // return next auto level\n public get nextAutoLevel(): number {\n const forcedAutoLevel = this.forcedAutoLevel;\n const bwEstimator = this.bwEstimator;\n const useEstimate = bwEstimator.canEstimate();\n const loadedFirstFrag = this.lastLoadedFragLevel > -1;\n // in case next auto level has been forced, and bw not available or not reliable, return forced value\n if (\n forcedAutoLevel !== -1 &&\n (!useEstimate ||\n !loadedFirstFrag ||\n this.nextAutoLevelKey === this.getAutoLevelKey())\n ) {\n return forcedAutoLevel;\n }\n\n // compute next level using ABR logic\n const nextABRAutoLevel =\n useEstimate && loadedFirstFrag\n ? this.getNextABRAutoLevel()\n : this.firstAutoLevel;\n\n // use forced auto level while it hasn't errored more than ABR selection\n if (forcedAutoLevel !== -1) {\n const levels = this.hls.levels;\n if (\n levels.length > Math.max(forcedAutoLevel, nextABRAutoLevel) &&\n levels[forcedAutoLevel].loadError <= levels[nextABRAutoLevel].loadError\n ) {\n return forcedAutoLevel;\n }\n }\n\n // save result until state has changed\n this._nextAutoLevel = nextABRAutoLevel;\n this.nextAutoLevelKey = this.getAutoLevelKey();\n\n return nextABRAutoLevel;\n }\n\n private getAutoLevelKey(): string {\n return `${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`;\n }\n\n private getNextABRAutoLevel(): number {\n const { fragCurrent, partCurrent, hls } = this;\n const { maxAutoLevel, config, minAutoLevel } = hls;\n const currentFragDuration = partCurrent\n ? partCurrent.duration\n : fragCurrent\n ? fragCurrent.duration\n : 0;\n const avgbw = this.getBwEstimate();\n // bufferStarvationDelay is the wall-clock time left until the playback buffer is exhausted.\n const bufferStarvationDelay = this.getStarvationDelay();\n\n let bwFactor = config.abrBandWidthFactor;\n let bwUpFactor = config.abrBandWidthUpFactor;\n\n // First, look to see if we can find a level matching with our avg bandwidth AND that could also guarantee no rebuffering at all\n if (bufferStarvationDelay) {\n const bestLevel = this.findBestLevel(\n avgbw,\n minAutoLevel,\n maxAutoLevel,\n bufferStarvationDelay,\n 0,\n bwFactor,\n bwUpFactor,\n );\n if (bestLevel >= 0) {\n return bestLevel;\n }\n }\n // not possible to get rid of rebuffering... try to find level that will guarantee less than maxStarvationDelay of rebuffering\n let maxStarvationDelay = currentFragDuration\n ? Math.min(currentFragDuration, config.maxStarvationDelay)\n : config.maxStarvationDelay;\n\n if (!bufferStarvationDelay) {\n // in case buffer is empty, let's check if previous fragment was loaded to perform a bitrate test\n const bitrateTestDelay = this.bitrateTestDelay;\n if (bitrateTestDelay) {\n // if it is the case, then we need to adjust our max starvation delay using maxLoadingDelay config value\n // max video loading delay used in automatic start level selection :\n // in that mode ABR controller will ensure that video loading time (ie the time to fetch the first fragment at lowest quality level +\n // the time to fetch the fragment at the appropriate quality level is less than ```maxLoadingDelay``` )\n // cap maxLoadingDelay and ensure it is not bigger 'than bitrate test' frag duration\n const maxLoadingDelay = currentFragDuration\n ? Math.min(currentFragDuration, config.maxLoadingDelay)\n : config.maxLoadingDelay;\n maxStarvationDelay = maxLoadingDelay - bitrateTestDelay;\n logger.info(\n `[abr] bitrate test took ${Math.round(\n 1000 * bitrateTestDelay,\n )}ms, set first fragment max fetchDuration to ${Math.round(\n 1000 * maxStarvationDelay,\n )} ms`,\n );\n // don't use conservative factor on bitrate test\n bwFactor = bwUpFactor = 1;\n }\n }\n const bestLevel = this.findBestLevel(\n avgbw,\n minAutoLevel,\n maxAutoLevel,\n bufferStarvationDelay,\n maxStarvationDelay,\n bwFactor,\n bwUpFactor,\n );\n logger.info(\n `[abr] ${\n bufferStarvationDelay ? 'rebuffering expected' : 'buffer is empty'\n }, optimal quality level ${bestLevel}`,\n );\n if (bestLevel > -1) {\n return bestLevel;\n }\n // If no matching level found, see if min auto level would be a better option\n const minLevel = hls.levels[minAutoLevel];\n const autoLevel = hls.levels[hls.loadLevel];\n if (minLevel?.bitrate < autoLevel?.bitrate) {\n return minAutoLevel;\n }\n // or if bitrate is not lower, continue to use loadLevel\n return hls.loadLevel;\n }\n\n private getStarvationDelay(): number {\n const hls = this.hls;\n const media = hls.media;\n if (!media) {\n return Infinity;\n }\n // playbackRate is the absolute value of the playback rate; if media.playbackRate is 0, we use 1 to load as\n // if we're playing back at the normal rate.\n const playbackRate =\n media && media.playbackRate !== 0 ? Math.abs(media.playbackRate) : 1.0;\n const bufferInfo = hls.mainForwardBufferInfo;\n return (bufferInfo ? bufferInfo.len : 0) / playbackRate;\n }\n\n private getBwEstimate(): number {\n return this.bwEstimator.canEstimate()\n ? this.bwEstimator.getEstimate()\n : this.hls.config.abrEwmaDefaultEstimate;\n }\n\n private findBestLevel(\n currentBw: number,\n minAutoLevel: number,\n maxAutoLevel: number,\n bufferStarvationDelay: number,\n maxStarvationDelay: number,\n bwFactor: number,\n bwUpFactor: number,\n ): number {\n const maxFetchDuration: number = bufferStarvationDelay + maxStarvationDelay;\n const lastLoadedFragLevel = this.lastLoadedFragLevel;\n const selectionBaseLevel =\n lastLoadedFragLevel === -1 ? this.hls.firstLevel : lastLoadedFragLevel;\n const { fragCurrent, partCurrent } = this;\n const { levels, allAudioTracks, loadLevel, config } = this.hls;\n if (levels.length === 1) {\n return 0;\n }\n const level: Level | undefined = levels[selectionBaseLevel];\n const live = !!level?.details?.live;\n const firstSelection = loadLevel === -1 || lastLoadedFragLevel === -1;\n let currentCodecSet: string | undefined;\n let currentVideoRange: VideoRange | undefined = 'SDR';\n let currentFrameRate = level?.frameRate || 0;\n\n const { audioPreference, videoPreference } = config;\n const audioTracksByGroup =\n this.audioTracksByGroup ||\n (this.audioTracksByGroup = getAudioTracksByGroup(allAudioTracks));\n if (firstSelection) {\n if (this.firstSelection !== -1) {\n return this.firstSelection;\n }\n const codecTiers =\n this.codecTiers ||\n (this.codecTiers = getCodecTiers(\n levels,\n audioTracksByGroup,\n minAutoLevel,\n maxAutoLevel,\n ));\n const startTier = getStartCodecTier(\n codecTiers,\n currentVideoRange,\n currentBw,\n audioPreference,\n videoPreference,\n );\n const { codecSet, videoRanges, minFramerate, minBitrate, preferHDR } =\n startTier;\n currentCodecSet = codecSet;\n currentVideoRange = preferHDR\n ? videoRanges[videoRanges.length - 1]\n : videoRanges[0];\n currentFrameRate = minFramerate;\n currentBw = Math.max(currentBw, minBitrate);\n logger.log(`[abr] picked start tier ${JSON.stringify(startTier)}`);\n } else {\n currentCodecSet = level?.codecSet;\n currentVideoRange = level?.videoRange;\n }\n\n const currentFragDuration = partCurrent\n ? partCurrent.duration\n : fragCurrent\n ? fragCurrent.duration\n : 0;\n\n const ttfbEstimateSec = this.bwEstimator.getEstimateTTFB() / 1000;\n const levelsSkipped: number[] = [];\n for (let i = maxAutoLevel; i >= minAutoLevel; i--) {\n const levelInfo = levels[i];\n const upSwitch = i > selectionBaseLevel;\n if (!levelInfo) {\n continue;\n }\n if (\n __USE_MEDIA_CAPABILITIES__ &&\n config.useMediaCapabilities &&\n !levelInfo.supportedResult &&\n !levelInfo.supportedPromise\n ) {\n const mediaCapabilities = navigator.mediaCapabilities as\n | MediaCapabilities\n | undefined;\n if (\n typeof mediaCapabilities?.decodingInfo === 'function' &&\n requiresMediaCapabilitiesDecodingInfo(\n levelInfo,\n audioTracksByGroup,\n currentVideoRange,\n currentFrameRate,\n currentBw,\n audioPreference,\n )\n ) {\n levelInfo.supportedPromise = getMediaDecodingInfoPromise(\n levelInfo,\n audioTracksByGroup,\n mediaCapabilities,\n );\n levelInfo.supportedPromise.then((decodingInfo) => {\n if (!this.hls) {\n return;\n }\n levelInfo.supportedResult = decodingInfo;\n const levels = this.hls.levels;\n const index = levels.indexOf(levelInfo);\n if (decodingInfo.error) {\n logger.warn(\n `[abr] MediaCapabilities decodingInfo error: \"${\n decodingInfo.error\n }\" for level ${index} ${JSON.stringify(decodingInfo)}`,\n );\n } else if (!decodingInfo.supported) {\n logger.warn(\n `[abr] Unsupported MediaCapabilities decodingInfo result for level ${index} ${JSON.stringify(\n decodingInfo,\n )}`,\n );\n if (index > -1 && levels.length > 1) {\n logger.log(`[abr] Removing unsupported level ${index}`);\n this.hls.removeLevel(index);\n }\n }\n });\n } else {\n levelInfo.supportedResult = SUPPORTED_INFO_DEFAULT;\n }\n }\n\n // skip candidates which change codec-family or video-range,\n // and which decrease or increase frame-rate for up and down-switch respectfully\n if (\n (currentCodecSet && levelInfo.codecSet !== currentCodecSet) ||\n (currentVideoRange && levelInfo.videoRange !== currentVideoRange) ||\n (upSwitch && currentFrameRate > levelInfo.frameRate) ||\n (!upSwitch &&\n currentFrameRate > 0 &&\n currentFrameRate < levelInfo.frameRate) ||\n (levelInfo.supportedResult &&\n !levelInfo.supportedResult.decodingInfoResults?.[0].smooth)\n ) {\n levelsSkipped.push(i);\n continue;\n }\n\n const levelDetails = levelInfo.details;\n const avgDuration =\n (partCurrent\n ? levelDetails?.partTarget\n : levelDetails?.averagetargetduration) || currentFragDuration;\n\n let adjustedbw: number;\n // follow algorithm captured from stagefright :\n // https://android.googlesource.com/platform/frameworks/av/+/master/media/libstagefright/httplive/LiveSession.cpp\n // Pick the highest bandwidth stream below or equal to estimated bandwidth.\n // consider only 80% of the available bandwidth, but if we are switching up,\n // be even more conservative (70%) to avoid overestimating and immediately\n // switching back.\n if (!upSwitch) {\n adjustedbw = bwFactor * currentBw;\n } else {\n adjustedbw = bwUpFactor * currentBw;\n }\n\n // Use average bitrate when starvation delay (buffer length) is gt or eq two segment durations and rebuffering is not expected (maxStarvationDelay > 0)\n const bitrate: number =\n currentFragDuration &&\n bufferStarvationDelay >= currentFragDuration * 2 &&\n maxStarvationDelay === 0\n ? levels[i].averageBitrate\n : levels[i].maxBitrate;\n const fetchDuration: number = this.getTimeToLoadFrag(\n ttfbEstimateSec,\n adjustedbw,\n bitrate * avgDuration,\n levelDetails === undefined,\n );\n\n const canSwitchWithinTolerance =\n // if adjusted bw is greater than level bitrate AND\n adjustedbw >= bitrate &&\n // no level change, or new level has no error history\n (i === lastLoadedFragLevel ||\n (levelInfo.loadError === 0 && levelInfo.fragmentError === 0)) &&\n // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches\n // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...\n // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that findBestLevel will return -1\n (fetchDuration <= ttfbEstimateSec ||\n !Number.isFinite(fetchDuration) ||\n (live && !this.bitrateTestDelay) ||\n fetchDuration < maxFetchDuration);\n if (canSwitchWithinTolerance) {\n const forcedAutoLevel = this.forcedAutoLevel;\n if (\n i !== loadLevel &&\n (forcedAutoLevel === -1 || forcedAutoLevel !== loadLevel)\n ) {\n if (levelsSkipped.length) {\n logger.trace(\n `[abr] Skipped level(s) ${levelsSkipped.join(\n ',',\n )} of ${maxAutoLevel} max with CODECS and VIDEO-RANGE:\"${\n levels[levelsSkipped[0]].codecs\n }\" ${levels[levelsSkipped[0]].videoRange}; not compatible with \"${\n level.codecs\n }\" ${currentVideoRange}`,\n );\n }\n logger.info(\n `[abr] switch candidate:${selectionBaseLevel}->${i} adjustedbw(${Math.round(\n adjustedbw,\n )})-bitrate=${Math.round(\n adjustedbw - bitrate,\n )} ttfb:${ttfbEstimateSec.toFixed(\n 1,\n )} avgDuration:${avgDuration.toFixed(\n 1,\n )} maxFetchDuration:${maxFetchDuration.toFixed(\n 1,\n )} fetchDuration:${fetchDuration.toFixed(\n 1,\n )} firstSelection:${firstSelection} codecSet:${currentCodecSet} videoRange:${currentVideoRange} hls.loadLevel:${loadLevel}`,\n );\n }\n if (firstSelection) {\n this.firstSelection = i;\n }\n // as we are looping from highest to lowest, this will return the best achievable quality level\n return i;\n }\n }\n // not enough time budget even with quality level 0 ... rebuffering might happen\n return -1;\n }\n\n public set nextAutoLevel(nextLevel: number) {\n const { maxAutoLevel, minAutoLevel } = this.hls;\n const value = Math.min(Math.max(nextLevel, minAutoLevel), maxAutoLevel);\n if (this._nextAutoLevel !== value) {\n this.nextAutoLevelKey = '';\n this._nextAutoLevel = value;\n }\n }\n}\n\nexport default AbrController;\n","import { Events } from '../events';\nimport { logger } from '../utils/logger';\nimport type { ComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\nimport type { MediaAttachingData } from '../types/events';\nimport StreamController from './stream-controller';\n\nclass FPSController implements ComponentAPI {\n private hls: Hls;\n private isVideoPlaybackQualityAvailable: boolean = false;\n private timer?: number;\n private media: HTMLVideoElement | null = null;\n private lastTime: any;\n private lastDroppedFrames: number = 0;\n private lastDecodedFrames: number = 0;\n // stream controller must be provided as a dependency!\n private streamController!: StreamController;\n\n constructor(hls: Hls) {\n this.hls = hls;\n\n this.registerListeners();\n }\n\n public setStreamController(streamController: StreamController) {\n this.streamController = streamController;\n }\n\n protected registerListeners() {\n this.hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n }\n\n protected unregisterListeners() {\n this.hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);\n }\n\n destroy() {\n if (this.timer) {\n clearInterval(this.timer);\n }\n\n this.unregisterListeners();\n this.isVideoPlaybackQualityAvailable = false;\n this.media = null;\n }\n\n protected onMediaAttaching(\n event: Events.MEDIA_ATTACHING,\n data: MediaAttachingData,\n ) {\n const config = this.hls.config;\n if (config.capLevelOnFPSDrop) {\n const media =\n data.media instanceof self.HTMLVideoElement ? data.media : null;\n this.media = media;\n if (media && typeof media.getVideoPlaybackQuality === 'function') {\n this.isVideoPlaybackQualityAvailable = true;\n }\n\n self.clearInterval(this.timer);\n this.timer = self.setInterval(\n this.checkFPSInterval.bind(this),\n config.fpsDroppedMonitoringPeriod,\n );\n }\n }\n\n checkFPS(\n video: HTMLVideoElement,\n decodedFrames: number,\n droppedFrames: number,\n ) {\n const currentTime = performance.now();\n if (decodedFrames) {\n if (this.lastTime) {\n const currentPeriod = currentTime - this.lastTime;\n const currentDropped = droppedFrames - this.lastDroppedFrames;\n const currentDecoded = decodedFrames - this.lastDecodedFrames;\n const droppedFPS = (1000 * currentDropped) / currentPeriod;\n const hls = this.hls;\n hls.trigger(Events.FPS_DROP, {\n currentDropped: currentDropped,\n currentDecoded: currentDecoded,\n totalDroppedFrames: droppedFrames,\n });\n if (droppedFPS > 0) {\n // logger.log('checkFPS : droppedFPS/decodedFPS:' + droppedFPS/(1000 * currentDecoded / currentPeriod));\n if (\n currentDropped >\n hls.config.fpsDroppedMonitoringThreshold * currentDecoded\n ) {\n let currentLevel = hls.currentLevel;\n logger.warn(\n 'drop FPS ratio greater than max allowed value for currentLevel: ' +\n currentLevel,\n );\n if (\n currentLevel > 0 &&\n (hls.autoLevelCapping === -1 ||\n hls.autoLevelCapping >= currentLevel)\n ) {\n currentLevel = currentLevel - 1;\n hls.trigger(Events.FPS_DROP_LEVEL_CAPPING, {\n level: currentLevel,\n droppedLevel: hls.currentLevel,\n });\n hls.autoLevelCapping = currentLevel;\n this.streamController.nextLevelSwitch();\n }\n }\n }\n }\n this.lastTime = currentTime;\n this.lastDroppedFrames = droppedFrames;\n this.lastDecodedFrames = decodedFrames;\n }\n }\n\n checkFPSInterval() {\n const video = this.media;\n if (video) {\n if (this.isVideoPlaybackQualityAvailable) {\n const videoPlaybackQuality = video.getVideoPlaybackQuality();\n this.checkFPS(\n video,\n videoPlaybackQuality.totalVideoFrames,\n videoPlaybackQuality.droppedVideoFrames,\n );\n } else {\n // HTMLVideoElement doesn't include the webkit types\n this.checkFPS(\n video,\n (video as any).webkitDecodedFrameCount as number,\n (video as any).webkitDroppedFrameCount as number,\n );\n }\n }\n }\n}\n\nexport default FPSController;\n","import BasePlaylistController from './base-playlist-controller';\nimport { Events } from '../events';\nimport {\n clearCurrentCues,\n filterSubtitleTracks,\n} from '../utils/texttrack-utils';\nimport { PlaylistContextType } from '../types/loader';\nimport {\n mediaAttributesIdentical,\n subtitleTrackMatchesTextTrack,\n} from '../utils/media-option-attributes';\nimport { findMatchingOption, matchesOption } from '../utils/rendition-helper';\nimport type Hls from '../hls';\nimport type {\n MediaPlaylist,\n SubtitleSelectionOption,\n} from '../types/media-playlist';\nimport type { HlsUrlParameters } from '../types/level';\nimport type {\n ErrorData,\n LevelLoadingData,\n MediaAttachedData,\n SubtitleTracksUpdatedData,\n ManifestParsedData,\n TrackLoadedData,\n LevelSwitchingData,\n} from '../types/events';\n\nclass SubtitleTrackController extends BasePlaylistController {\n private media: HTMLMediaElement | null = null;\n private tracks: MediaPlaylist[] = [];\n private groupIds: (string | undefined)[] | null = null;\n private tracksInGroup: MediaPlaylist[] = [];\n private trackId: number = -1;\n private currentTrack: MediaPlaylist | null = null;\n private selectDefaultTrack: boolean = true;\n private queuedDefaultTrack: number = -1;\n private asyncPollTrackChange: () => void = () => this.pollTrackChange(0);\n private useTextTrackPolling: boolean = false;\n private subtitlePollingInterval: number = -1;\n private _subtitleDisplay: boolean = true;\n\n constructor(hls: Hls) {\n super(hls, '[subtitle-track-controller]');\n this.registerListeners();\n }\n\n public destroy() {\n this.unregisterListeners();\n this.tracks.length = 0;\n this.tracksInGroup.length = 0;\n this.currentTrack = null;\n this.onTextTracksChanged = this.asyncPollTrackChange = null as any;\n super.destroy();\n }\n\n public get subtitleDisplay(): boolean {\n return this._subtitleDisplay;\n }\n\n public set subtitleDisplay(value: boolean) {\n this._subtitleDisplay = value;\n if (this.trackId > -1) {\n this.toggleTrackModes();\n }\n }\n\n private registerListeners() {\n const { hls } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n\n private unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(Events.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n\n // Listen for subtitle track change, then extract the current track ID.\n protected onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ): void {\n this.media = data.media;\n if (!this.media) {\n return;\n }\n\n if (this.queuedDefaultTrack > -1) {\n this.subtitleTrack = this.queuedDefaultTrack;\n this.queuedDefaultTrack = -1;\n }\n\n this.useTextTrackPolling = !(\n this.media.textTracks && 'onchange' in this.media.textTracks\n );\n if (this.useTextTrackPolling) {\n this.pollTrackChange(500);\n } else {\n this.media.textTracks.addEventListener(\n 'change',\n this.asyncPollTrackChange,\n );\n }\n }\n\n private pollTrackChange(timeout: number) {\n self.clearInterval(this.subtitlePollingInterval);\n this.subtitlePollingInterval = self.setInterval(\n this.onTextTracksChanged,\n timeout,\n );\n }\n\n protected onMediaDetaching(): void {\n if (!this.media) {\n return;\n }\n\n self.clearInterval(this.subtitlePollingInterval);\n if (!this.useTextTrackPolling) {\n this.media.textTracks.removeEventListener(\n 'change',\n this.asyncPollTrackChange,\n );\n }\n\n if (this.trackId > -1) {\n this.queuedDefaultTrack = this.trackId;\n }\n\n const textTracks = filterSubtitleTracks(this.media.textTracks);\n // Clear loaded cues on media detachment from tracks\n textTracks.forEach((track) => {\n clearCurrentCues(track);\n });\n // Disable all subtitle tracks before detachment so when reattached only tracks in that content are enabled.\n this.subtitleTrack = -1;\n this.media = null;\n }\n\n protected onManifestLoading(): void {\n this.tracks = [];\n this.groupIds = null;\n this.tracksInGroup = [];\n this.trackId = -1;\n this.currentTrack = null;\n this.selectDefaultTrack = true;\n }\n\n // Fired whenever a new manifest is loaded.\n protected onManifestParsed(\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ): void {\n this.tracks = data.subtitleTracks;\n }\n\n protected onSubtitleTrackLoaded(\n event: Events.SUBTITLE_TRACK_LOADED,\n data: TrackLoadedData,\n ): void {\n const { id, groupId, details } = data;\n const trackInActiveGroup = this.tracksInGroup[id];\n\n if (!trackInActiveGroup || trackInActiveGroup.groupId !== groupId) {\n this.warn(\n `Subtitle track with id:${id} and group:${groupId} not found in active group ${trackInActiveGroup?.groupId}`,\n );\n return;\n }\n\n const curDetails = trackInActiveGroup.details;\n trackInActiveGroup.details = data.details;\n this.log(\n `Subtitle track ${id} \"${trackInActiveGroup.name}\" lang:${trackInActiveGroup.lang} group:${groupId} loaded [${details.startSN}-${details.endSN}]`,\n );\n\n if (id === this.trackId) {\n this.playlistLoaded(id, data, curDetails);\n }\n }\n\n protected onLevelLoading(\n event: Events.LEVEL_LOADING,\n data: LevelLoadingData,\n ): void {\n this.switchLevel(data.level);\n }\n\n protected onLevelSwitching(\n event: Events.LEVEL_SWITCHING,\n data: LevelSwitchingData,\n ): void {\n this.switchLevel(data.level);\n }\n\n private switchLevel(levelIndex: number) {\n const levelInfo = this.hls.levels[levelIndex];\n if (!levelInfo) {\n return;\n }\n const subtitleGroups = levelInfo.subtitleGroups || null;\n const currentGroups = this.groupIds;\n let currentTrack = this.currentTrack;\n if (\n !subtitleGroups ||\n currentGroups?.length !== subtitleGroups?.length ||\n subtitleGroups?.some((groupId) => currentGroups?.indexOf(groupId) === -1)\n ) {\n this.groupIds = subtitleGroups;\n this.trackId = -1;\n this.currentTrack = null;\n\n const subtitleTracks = this.tracks.filter(\n (track): boolean =>\n !subtitleGroups || subtitleGroups.indexOf(track.groupId) !== -1,\n );\n if (subtitleTracks.length) {\n // Disable selectDefaultTrack if there are no default tracks\n if (\n this.selectDefaultTrack &&\n !subtitleTracks.some((track) => track.default)\n ) {\n this.selectDefaultTrack = false;\n }\n // track.id should match hls.audioTracks index\n subtitleTracks.forEach((track, i) => {\n track.id = i;\n });\n } else if (!currentTrack && !this.tracksInGroup.length) {\n // Do not dispatch SUBTITLE_TRACKS_UPDATED when there were and are no tracks\n return;\n }\n this.tracksInGroup = subtitleTracks;\n\n // Find preferred track\n const subtitlePreference = this.hls.config.subtitlePreference;\n if (!currentTrack && subtitlePreference) {\n this.selectDefaultTrack = false;\n const groupIndex = findMatchingOption(\n subtitlePreference,\n subtitleTracks,\n );\n if (groupIndex > -1) {\n currentTrack = subtitleTracks[groupIndex];\n } else {\n const allIndex = findMatchingOption(subtitlePreference, this.tracks);\n currentTrack = this.tracks[allIndex];\n }\n }\n\n // Select initial track\n let trackId = this.findTrackId(currentTrack);\n if (trackId === -1 && currentTrack) {\n trackId = this.findTrackId(null);\n }\n\n // Dispatch events and load track if needed\n const subtitleTracksUpdated: SubtitleTracksUpdatedData = {\n subtitleTracks,\n };\n this.log(\n `Updating subtitle tracks, ${\n subtitleTracks.length\n } track(s) found in \"${subtitleGroups?.join(',')}\" group-id`,\n );\n this.hls.trigger(Events.SUBTITLE_TRACKS_UPDATED, subtitleTracksUpdated);\n\n if (trackId !== -1 && this.trackId === -1) {\n this.setSubtitleTrack(trackId);\n }\n } else if (this.shouldReloadPlaylist(currentTrack)) {\n // Retry playlist loading if no playlist is or has been loaded yet\n this.setSubtitleTrack(this.trackId);\n }\n }\n\n private findTrackId(currentTrack: MediaPlaylist | null): number {\n const tracks = this.tracksInGroup;\n const selectDefault = this.selectDefaultTrack;\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (\n (selectDefault && !track.default) ||\n (!selectDefault && !currentTrack)\n ) {\n continue;\n }\n if (!currentTrack || matchesOption(track, currentTrack)) {\n return i;\n }\n }\n if (currentTrack) {\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (\n mediaAttributesIdentical(currentTrack.attrs, track.attrs, [\n 'LANGUAGE',\n 'ASSOC-LANGUAGE',\n 'CHARACTERISTICS',\n ])\n ) {\n return i;\n }\n }\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (\n mediaAttributesIdentical(currentTrack.attrs, track.attrs, [\n 'LANGUAGE',\n ])\n ) {\n return i;\n }\n }\n }\n return -1;\n }\n\n private findTrackForTextTrack(textTrack: TextTrack | null): number {\n if (textTrack) {\n const tracks = this.tracksInGroup;\n for (let i = 0; i < tracks.length; i++) {\n const track = tracks[i];\n if (subtitleTrackMatchesTextTrack(track, textTrack)) {\n return i;\n }\n }\n }\n return -1;\n }\n\n protected onError(event: Events.ERROR, data: ErrorData): void {\n if (data.fatal || !data.context) {\n return;\n }\n\n if (\n data.context.type === PlaylistContextType.SUBTITLE_TRACK &&\n data.context.id === this.trackId &&\n (!this.groupIds || this.groupIds.indexOf(data.context.groupId) !== -1)\n ) {\n this.checkRetry(data);\n }\n }\n\n get allSubtitleTracks(): MediaPlaylist[] {\n return this.tracks;\n }\n\n /** get alternate subtitle tracks list from playlist **/\n get subtitleTracks(): MediaPlaylist[] {\n return this.tracksInGroup;\n }\n\n /** get/set index of the selected subtitle track (based on index in subtitle track lists) **/\n get subtitleTrack(): number {\n return this.trackId;\n }\n\n set subtitleTrack(newId: number) {\n this.selectDefaultTrack = false;\n this.setSubtitleTrack(newId);\n }\n\n public setSubtitleOption(\n subtitleOption: MediaPlaylist | SubtitleSelectionOption | undefined,\n ): MediaPlaylist | null {\n this.hls.config.subtitlePreference = subtitleOption;\n if (subtitleOption) {\n const allSubtitleTracks = this.allSubtitleTracks;\n this.selectDefaultTrack = false;\n if (allSubtitleTracks.length) {\n // First see if current option matches (no switch op)\n const currentTrack = this.currentTrack;\n if (currentTrack && matchesOption(subtitleOption, currentTrack)) {\n return currentTrack;\n }\n // Find option in current group\n const groupIndex = findMatchingOption(\n subtitleOption,\n this.tracksInGroup,\n );\n if (groupIndex > -1) {\n const track = this.tracksInGroup[groupIndex];\n this.setSubtitleTrack(groupIndex);\n return track;\n } else if (currentTrack) {\n // If this is not the initial selection return null\n // option should have matched one in active group\n return null;\n } else {\n // Find the option in all tracks for initial selection\n const allIndex = findMatchingOption(\n subtitleOption,\n allSubtitleTracks,\n );\n if (allIndex > -1) {\n return allSubtitleTracks[allIndex];\n }\n }\n }\n }\n return null;\n }\n\n protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters): void {\n super.loadPlaylist();\n const currentTrack = this.currentTrack;\n if (this.shouldLoadPlaylist(currentTrack) && currentTrack) {\n const id = currentTrack.id;\n const groupId = currentTrack.groupId as string;\n let url = currentTrack.url;\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(\n `Could not construct new URL with HLS Delivery Directives: ${error}`,\n );\n }\n }\n this.log(`Loading subtitle playlist for id ${id}`);\n this.hls.trigger(Events.SUBTITLE_TRACK_LOADING, {\n url,\n id,\n groupId,\n deliveryDirectives: hlsUrlParameters || null,\n });\n }\n }\n\n /**\n * Disables the old subtitleTrack and sets current mode on the next subtitleTrack.\n * This operates on the DOM textTracks.\n * A value of -1 will disable all subtitle tracks.\n */\n private toggleTrackModes(): void {\n const { media } = this;\n if (!media) {\n return;\n }\n\n const textTracks = filterSubtitleTracks(media.textTracks);\n const currentTrack = this.currentTrack;\n let nextTrack;\n if (currentTrack) {\n nextTrack = textTracks.filter((textTrack) =>\n subtitleTrackMatchesTextTrack(currentTrack, textTrack),\n )[0];\n if (!nextTrack) {\n this.warn(\n `Unable to find subtitle TextTrack with name \"${currentTrack.name}\" and language \"${currentTrack.lang}\"`,\n );\n }\n }\n [].slice.call(textTracks).forEach((track) => {\n if (track.mode !== 'disabled' && track !== nextTrack) {\n track.mode = 'disabled';\n }\n });\n if (nextTrack) {\n const mode = this.subtitleDisplay ? 'showing' : 'hidden';\n if (nextTrack.mode !== mode) {\n nextTrack.mode = mode;\n }\n }\n }\n\n /**\n * This method is responsible for validating the subtitle index and periodically reloading if live.\n * Dispatches the SUBTITLE_TRACK_SWITCH event, which instructs the subtitle-stream-controller to load the selected track.\n */\n private setSubtitleTrack(newId: number): void {\n const tracks = this.tracksInGroup;\n\n // setting this.subtitleTrack will trigger internal logic\n // if media has not been attached yet, it will fail\n // we keep a reference to the default track id\n // and we'll set subtitleTrack when onMediaAttached is triggered\n if (!this.media) {\n this.queuedDefaultTrack = newId;\n return;\n }\n\n // exit if track id as already set or invalid\n if (newId < -1 || newId >= tracks.length || !Number.isFinite(newId)) {\n this.warn(`Invalid subtitle track id: ${newId}`);\n return;\n }\n\n // stopping live reloading timer if any\n this.clearTimer();\n\n this.selectDefaultTrack = false;\n const lastTrack = this.currentTrack;\n const track: MediaPlaylist | null = tracks[newId] || null;\n this.trackId = newId;\n this.currentTrack = track;\n this.toggleTrackModes();\n if (!track) {\n // switch to -1\n this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH, { id: newId });\n return;\n }\n const trackLoaded = !!track.details && !track.details.live;\n if (newId === this.trackId && track === lastTrack && trackLoaded) {\n return;\n }\n this.log(\n `Switching to subtitle-track ${newId}` +\n (track\n ? ` \"${track.name}\" lang:${track.lang} group:${track.groupId}`\n : ''),\n );\n const { id, groupId = '', name, type, url } = track;\n this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH, {\n id,\n groupId,\n name,\n type,\n url,\n });\n const hlsUrlParameters = this.switchParams(\n track.url,\n lastTrack?.details,\n track.details,\n );\n this.loadPlaylist(hlsUrlParameters);\n }\n\n private onTextTracksChanged = () => {\n if (!this.useTextTrackPolling) {\n self.clearInterval(this.subtitlePollingInterval);\n }\n // Media is undefined when switching streams via loadSource()\n if (!this.media || !this.hls.config.renderTextTracksNatively) {\n return;\n }\n\n let textTrack: TextTrack | null = null;\n const tracks = filterSubtitleTracks(this.media.textTracks);\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i].mode === 'hidden') {\n // Do not break in case there is a following track with showing.\n textTrack = tracks[i];\n } else if (tracks[i].mode === 'showing') {\n textTrack = tracks[i];\n break;\n }\n }\n\n // Find internal track index for TextTrack\n const trackId = this.findTrackForTextTrack(textTrack);\n if (this.subtitleTrack !== trackId) {\n this.setSubtitleTrack(trackId);\n }\n };\n}\n\nexport default SubtitleTrackController;\n","import BaseStreamController, { State } from './base-stream-controller';\nimport { Events } from '../events';\nimport { Bufferable, BufferHelper } from '../utils/buffer-helper';\nimport { FragmentState } from './fragment-tracker';\nimport { Level } from '../types/level';\nimport { PlaylistContextType, PlaylistLevelType } from '../types/loader';\nimport { Fragment, ElementaryStreamTypes, Part } from '../loader/fragment';\nimport ChunkCache from '../demux/chunk-cache';\nimport TransmuxerInterface from '../demux/transmuxer-interface';\nimport { ChunkMetadata } from '../types/transmuxer';\nimport { fragmentWithinToleranceTest } from './fragment-finders';\nimport { alignMediaPlaylistByPDT } from '../utils/discontinuities';\nimport { ErrorDetails } from '../errors';\nimport { audioMatchPredicate, matchesOption } from '../utils/rendition-helper';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\nimport type { FragmentTracker } from './fragment-tracker';\nimport type KeyLoader from '../loader/key-loader';\nimport type { TransmuxerResult } from '../types/transmuxer';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { TrackSet } from '../types/track';\nimport type {\n BufferCreatedData,\n AudioTracksUpdatedData,\n AudioTrackSwitchingData,\n LevelLoadedData,\n TrackLoadedData,\n BufferAppendingData,\n BufferFlushedData,\n InitPTSFoundData,\n FragLoadedData,\n FragParsingMetadataData,\n FragParsingUserdataData,\n FragBufferedData,\n ErrorData,\n BufferFlushingData,\n} from '../types/events';\nimport type { MediaPlaylist } from '../types/media-playlist';\n\nconst TICK_INTERVAL = 100; // how often to tick in ms\n\ntype WaitingForPTSData = {\n frag: Fragment;\n part: Part | null;\n cache: ChunkCache;\n complete: boolean;\n};\n\nclass AudioStreamController\n extends BaseStreamController\n implements NetworkComponentAPI\n{\n private videoBuffer: Bufferable | null = null;\n private videoTrackCC: number = -1;\n private waitingVideoCC: number = -1;\n private bufferedTrack: MediaPlaylist | null = null;\n private switchingTrack: MediaPlaylist | null = null;\n private trackId: number = -1;\n private waitingData: WaitingForPTSData | null = null;\n private mainDetails: LevelDetails | null = null;\n private flushing: boolean = false;\n private bufferFlushed: boolean = false;\n private cachedTrackLoadedData: TrackLoadedData | null = null;\n\n constructor(\n hls: Hls,\n fragmentTracker: FragmentTracker,\n keyLoader: KeyLoader,\n ) {\n super(\n hls,\n fragmentTracker,\n keyLoader,\n '[audio-stream-controller]',\n PlaylistLevelType.AUDIO,\n );\n this._registerListeners();\n }\n\n protected onHandlerDestroying() {\n this._unregisterListeners();\n super.onHandlerDestroying();\n this.mainDetails = null;\n this.bufferedTrack = null;\n this.switchingTrack = null;\n }\n\n private _registerListeners() {\n const { hls } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);\n hls.on(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.on(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.on(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.on(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n private _unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this);\n hls.off(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.BUFFER_RESET, this.onBufferReset, this);\n hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);\n hls.off(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.off(Events.INIT_PTS_FOUND, this.onInitPtsFound, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n // INIT_PTS_FOUND is triggered when the video track parsed in the stream-controller has a new PTS value\n onInitPtsFound(\n event: Events.INIT_PTS_FOUND,\n { frag, id, initPTS, timescale }: InitPTSFoundData,\n ) {\n // Always update the new INIT PTS\n // Can change due level switch\n if (id === 'main') {\n const cc = frag.cc;\n this.initPTS[frag.cc] = { baseTime: initPTS, timescale };\n this.log(`InitPTS for cc: ${cc} found from main: ${initPTS}`);\n this.videoTrackCC = cc;\n // If we are waiting, tick immediately to unblock audio fragment transmuxing\n if (this.state === State.WAITING_INIT_PTS) {\n this.tick();\n }\n }\n }\n\n startLoad(startPosition: number) {\n if (!this.levels) {\n this.startPosition = startPosition;\n this.state = State.STOPPED;\n return;\n }\n const lastCurrentTime = this.lastCurrentTime;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n if (lastCurrentTime > 0 && startPosition === -1) {\n this.log(\n `Override startPosition with lastCurrentTime @${lastCurrentTime.toFixed(\n 3,\n )}`,\n );\n startPosition = lastCurrentTime;\n this.state = State.IDLE;\n } else {\n this.loadedmetadata = false;\n this.state = State.WAITING_TRACK;\n }\n this.nextLoadPosition =\n this.startPosition =\n this.lastCurrentTime =\n startPosition;\n\n this.tick();\n }\n\n doTick() {\n switch (this.state) {\n case State.IDLE:\n this.doTickIdle();\n break;\n case State.WAITING_TRACK: {\n const { levels, trackId } = this;\n const details = levels?.[trackId]?.details;\n if (details) {\n if (this.waitForCdnTuneIn(details)) {\n break;\n }\n this.state = State.WAITING_INIT_PTS;\n }\n break;\n }\n case State.FRAG_LOADING_WAITING_RETRY: {\n const now = performance.now();\n const retryDate = this.retryDate;\n // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n if (!retryDate || now >= retryDate || this.media?.seeking) {\n const { levels, trackId } = this;\n this.log('RetryDate reached, switch back to IDLE state');\n this.resetStartWhenNotLoaded(levels?.[trackId] || null);\n this.state = State.IDLE;\n }\n break;\n }\n case State.WAITING_INIT_PTS: {\n // Ensure we don't get stuck in the WAITING_INIT_PTS state if the waiting frag CC doesn't match any initPTS\n const waitingData = this.waitingData;\n if (waitingData) {\n const { frag, part, cache, complete } = waitingData;\n if (this.initPTS[frag.cc] !== undefined) {\n this.waitingData = null;\n this.waitingVideoCC = -1;\n this.state = State.FRAG_LOADING;\n const payload = cache.flush();\n const data: FragLoadedData = {\n frag,\n part,\n payload,\n networkDetails: null,\n };\n this._handleFragmentLoadProgress(data);\n if (complete) {\n super._handleFragmentLoadComplete(data);\n }\n } else if (this.videoTrackCC !== this.waitingVideoCC) {\n // Drop waiting fragment if videoTrackCC has changed since waitingFragment was set and initPTS was not found\n this.log(\n `Waiting fragment cc (${frag.cc}) cancelled because video is at cc ${this.videoTrackCC}`,\n );\n this.clearWaitingFragment();\n } else {\n // Drop waiting fragment if an earlier fragment is needed\n const pos = this.getLoadPosition();\n const bufferInfo = BufferHelper.bufferInfo(\n this.mediaBuffer,\n pos,\n this.config.maxBufferHole,\n );\n const waitingFragmentAtPosition = fragmentWithinToleranceTest(\n bufferInfo.end,\n this.config.maxFragLookUpTolerance,\n frag,\n );\n if (waitingFragmentAtPosition < 0) {\n this.log(\n `Waiting fragment cc (${frag.cc}) @ ${frag.start} cancelled because another fragment at ${bufferInfo.end} is needed`,\n );\n this.clearWaitingFragment();\n }\n }\n } else {\n this.state = State.IDLE;\n }\n }\n }\n\n this.onTickEnd();\n }\n\n clearWaitingFragment() {\n const waitingData = this.waitingData;\n if (waitingData) {\n this.fragmentTracker.removeFragment(waitingData.frag);\n this.waitingData = null;\n this.waitingVideoCC = -1;\n this.state = State.IDLE;\n }\n }\n\n protected resetLoadingState() {\n this.clearWaitingFragment();\n super.resetLoadingState();\n }\n\n protected onTickEnd() {\n const { media } = this;\n if (!media?.readyState) {\n // Exit early if we don't have media or if the media hasn't buffered anything yet (readyState 0)\n return;\n }\n\n this.lastCurrentTime = media.currentTime;\n }\n\n private doTickIdle() {\n const { hls, levels, media, trackId } = this;\n const config = hls.config;\n\n // 1. if buffering is suspended\n // 2. if video not attached AND\n // start fragment already requested OR start frag prefetch not enabled\n // 3. if tracks or track not loaded and selected\n // then exit loop\n // => if media not attached but start frag prefetch is enabled and start frag not requested yet, we will not exit loop\n if (\n !this.buffering ||\n (!media && (this.startFragRequested || !config.startFragPrefetch)) ||\n !levels?.[trackId]\n ) {\n return;\n }\n\n const levelInfo = levels[trackId];\n\n const trackDetails = levelInfo.details;\n if (\n !trackDetails ||\n (trackDetails.live && this.levelLastLoaded !== levelInfo) ||\n this.waitForCdnTuneIn(trackDetails)\n ) {\n this.state = State.WAITING_TRACK;\n return;\n }\n\n const bufferable = this.mediaBuffer ? this.mediaBuffer : this.media;\n if (this.bufferFlushed && bufferable) {\n this.bufferFlushed = false;\n this.afterBufferFlushed(\n bufferable,\n ElementaryStreamTypes.AUDIO,\n PlaylistLevelType.AUDIO,\n );\n }\n\n const bufferInfo = this.getFwdBufferInfo(\n bufferable,\n PlaylistLevelType.AUDIO,\n );\n if (bufferInfo === null) {\n return;\n }\n\n if (!this.switchingTrack && this._streamEnded(bufferInfo, trackDetails)) {\n hls.trigger(Events.BUFFER_EOS, { type: 'audio' });\n this.state = State.ENDED;\n return;\n }\n\n const mainBufferInfo = this.getFwdBufferInfo(\n this.videoBuffer ? this.videoBuffer : this.media,\n PlaylistLevelType.MAIN,\n );\n const bufferLen = bufferInfo.len;\n const maxBufLen = this.getMaxBufferLength(mainBufferInfo?.len);\n\n const fragments = trackDetails.fragments;\n const start = fragments[0].start;\n const loadPosition = this.getLoadPosition();\n const targetBufferTime = this.flushing ? loadPosition : bufferInfo.end;\n\n if (this.switchingTrack && media) {\n const pos = loadPosition;\n // if currentTime (pos) is less than alt audio playlist start time, it means that alt audio is ahead of currentTime\n if (trackDetails.PTSKnown && pos < start) {\n // if everything is buffered from pos to start or if audio buffer upfront, let's seek to start\n if (bufferInfo.end > start || bufferInfo.nextStart) {\n this.log(\n 'Alt audio track ahead of main track, seek to start of alt audio track',\n );\n media.currentTime = start + 0.05;\n }\n }\n }\n\n // if buffer length is less than maxBufLen, or near the end, find a fragment to load\n if (\n bufferLen >= maxBufLen &&\n !this.switchingTrack &&\n targetBufferTime < fragments[fragments.length - 1].start\n ) {\n return;\n }\n\n let frag = this.getNextFragment(targetBufferTime, trackDetails);\n let atGap = false;\n // Avoid loop loading by using nextLoadPosition set for backtracking and skipping consecutive GAP tags\n if (frag && this.isLoopLoading(frag, targetBufferTime)) {\n atGap = !!frag.gap;\n frag = this.getNextFragmentLoopLoading(\n frag,\n trackDetails,\n bufferInfo,\n PlaylistLevelType.MAIN,\n maxBufLen,\n );\n }\n if (!frag) {\n this.bufferFlushed = true;\n return;\n }\n\n // Buffer audio up to one target duration ahead of main buffer\n const atBufferSyncLimit =\n mainBufferInfo &&\n frag.start > mainBufferInfo.end + trackDetails.targetduration;\n if (\n atBufferSyncLimit ||\n // Or wait for main buffer after buffing some audio\n (!mainBufferInfo?.len && bufferInfo.len)\n ) {\n // Check fragment-tracker for main fragments since GAP segments do not show up in bufferInfo\n const mainFrag = this.getAppendedFrag(frag.start, PlaylistLevelType.MAIN);\n if (mainFrag === null) {\n return;\n }\n // Bridge gaps in main buffer\n atGap ||=\n !!mainFrag.gap || (!!atBufferSyncLimit && mainBufferInfo.len === 0);\n if (\n (atBufferSyncLimit && !atGap) ||\n (atGap && bufferInfo.nextStart && bufferInfo.nextStart < mainFrag.end)\n ) {\n return;\n }\n }\n\n this.loadFragment(frag, levelInfo, targetBufferTime);\n }\n\n protected getMaxBufferLength(mainBufferLength?: number): number {\n const maxConfigBuffer = super.getMaxBufferLength();\n if (!mainBufferLength) {\n return maxConfigBuffer;\n }\n return Math.min(\n Math.max(maxConfigBuffer, mainBufferLength),\n this.config.maxMaxBufferLength,\n );\n }\n\n onMediaDetaching() {\n this.videoBuffer = null;\n this.bufferFlushed = this.flushing = false;\n super.onMediaDetaching();\n }\n\n onAudioTracksUpdated(\n event: Events.AUDIO_TRACKS_UPDATED,\n { audioTracks }: AudioTracksUpdatedData,\n ) {\n // Reset tranxmuxer is essential for large context switches (Content Steering)\n this.resetTransmuxer();\n this.levels = audioTracks.map((mediaPlaylist) => new Level(mediaPlaylist));\n }\n\n onAudioTrackSwitching(\n event: Events.AUDIO_TRACK_SWITCHING,\n data: AudioTrackSwitchingData,\n ) {\n // if any URL found on new audio track, it is an alternate audio track\n const altAudio = !!data.url;\n this.trackId = data.id;\n const { fragCurrent } = this;\n\n if (fragCurrent) {\n fragCurrent.abortRequests();\n this.removeUnbufferedFrags(fragCurrent.start);\n }\n this.resetLoadingState();\n // destroy useless transmuxer when switching audio to main\n if (!altAudio) {\n this.resetTransmuxer();\n } else {\n // switching to audio track, start timer if not already started\n this.setInterval(TICK_INTERVAL);\n }\n\n // should we switch tracks ?\n if (altAudio) {\n this.switchingTrack = data;\n // main audio track are handled by stream-controller, just do something if switching to alt audio track\n this.state = State.IDLE;\n this.flushAudioIfNeeded(data);\n } else {\n this.switchingTrack = null;\n this.bufferedTrack = data;\n this.state = State.STOPPED;\n }\n this.tick();\n }\n\n onManifestLoading() {\n this.fragmentTracker.removeAllFragments();\n this.startPosition = this.lastCurrentTime = 0;\n this.bufferFlushed = this.flushing = false;\n this.levels =\n this.mainDetails =\n this.waitingData =\n this.bufferedTrack =\n this.cachedTrackLoadedData =\n this.switchingTrack =\n null;\n this.startFragRequested = false;\n this.trackId = this.videoTrackCC = this.waitingVideoCC = -1;\n }\n\n onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData) {\n this.mainDetails = data.details;\n if (this.cachedTrackLoadedData !== null) {\n this.hls.trigger(Events.AUDIO_TRACK_LOADED, this.cachedTrackLoadedData);\n this.cachedTrackLoadedData = null;\n }\n }\n\n onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: TrackLoadedData) {\n if (this.mainDetails == null) {\n this.cachedTrackLoadedData = data;\n return;\n }\n const { levels } = this;\n const { details: newDetails, id: trackId } = data;\n if (!levels) {\n this.warn(`Audio tracks were reset while loading level ${trackId}`);\n return;\n }\n this.log(\n `Audio track ${trackId} loaded [${newDetails.startSN},${\n newDetails.endSN\n }]${\n newDetails.lastPartSn\n ? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]`\n : ''\n },duration:${newDetails.totalduration}`,\n );\n\n const track = levels[trackId];\n let sliding = 0;\n if (newDetails.live || track.details?.live) {\n this.checkLiveUpdate(newDetails);\n const mainDetails = this.mainDetails;\n if (newDetails.deltaUpdateFailed || !mainDetails) {\n return;\n }\n if (\n !track.details &&\n newDetails.hasProgramDateTime &&\n mainDetails.hasProgramDateTime\n ) {\n // Make sure our audio rendition is aligned with the \"main\" rendition, using\n // pdt as our reference times.\n alignMediaPlaylistByPDT(newDetails, mainDetails);\n sliding = newDetails.fragments[0].start;\n } else {\n sliding = this.alignPlaylists(\n newDetails,\n track.details,\n this.levelLastLoaded?.details,\n );\n }\n }\n track.details = newDetails;\n this.levelLastLoaded = track;\n\n // compute start position if we are aligned with the main playlist\n if (!this.startFragRequested && (this.mainDetails || !newDetails.live)) {\n this.setStartPosition(this.mainDetails || newDetails, sliding);\n }\n // only switch back to IDLE state if we were waiting for track to start downloading a new fragment\n if (\n this.state === State.WAITING_TRACK &&\n !this.waitForCdnTuneIn(newDetails)\n ) {\n this.state = State.IDLE;\n }\n\n // trigger handler right now\n this.tick();\n }\n\n _handleFragmentLoadProgress(data: FragLoadedData) {\n const { frag, part, payload } = data;\n const { config, trackId, levels } = this;\n if (!levels) {\n this.warn(\n `Audio tracks were reset while fragment load was in progress. Fragment ${frag.sn} of level ${frag.level} will not be buffered`,\n );\n return;\n }\n\n const track = levels[trackId] as Level;\n if (!track) {\n this.warn('Audio track is undefined on fragment load progress');\n return;\n }\n const details = track.details as LevelDetails;\n if (!details) {\n this.warn('Audio track details undefined on fragment load progress');\n this.removeUnbufferedFrags(frag.start);\n return;\n }\n const audioCodec =\n config.defaultAudioCodec || track.audioCodec || 'mp4a.40.2';\n\n let transmuxer = this.transmuxer;\n if (!transmuxer) {\n transmuxer = this.transmuxer = new TransmuxerInterface(\n this.hls,\n PlaylistLevelType.AUDIO,\n this._handleTransmuxComplete.bind(this),\n this._handleTransmuxerFlush.bind(this),\n );\n }\n\n // Check if we have video initPTS\n // If not we need to wait for it\n const initPTS = this.initPTS[frag.cc];\n const initSegmentData = frag.initSegment?.data;\n if (initPTS !== undefined) {\n // this.log(`Transmuxing ${sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`);\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n const accurateTimeOffset = false; // details.PTSKnown || !details.live;\n const partIndex = part ? part.index : -1;\n const partial = partIndex !== -1;\n const chunkMeta = new ChunkMetadata(\n frag.level,\n frag.sn as number,\n frag.stats.chunkCount,\n payload.byteLength,\n partIndex,\n partial,\n );\n transmuxer.push(\n payload,\n initSegmentData,\n audioCodec,\n '',\n frag,\n part,\n details.totalduration,\n accurateTimeOffset,\n chunkMeta,\n initPTS,\n );\n } else {\n this.log(\n `Unknown video PTS for cc ${frag.cc}, waiting for video PTS before demuxing audio frag ${frag.sn} of [${details.startSN} ,${details.endSN}],track ${trackId}`,\n );\n const { cache } = (this.waitingData = this.waitingData || {\n frag,\n part,\n cache: new ChunkCache(),\n complete: false,\n });\n cache.push(new Uint8Array(payload));\n this.waitingVideoCC = this.videoTrackCC;\n this.state = State.WAITING_INIT_PTS;\n }\n }\n\n protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData) {\n if (this.waitingData) {\n this.waitingData.complete = true;\n return;\n }\n super._handleFragmentLoadComplete(fragLoadedData);\n }\n\n onBufferReset(/* event: Events.BUFFER_RESET */) {\n // reset reference to sourcebuffers\n this.mediaBuffer = this.videoBuffer = null;\n this.loadedmetadata = false;\n }\n\n onBufferCreated(event: Events.BUFFER_CREATED, data: BufferCreatedData) {\n const audioTrack = data.tracks.audio;\n if (audioTrack) {\n this.mediaBuffer = audioTrack.buffer || null;\n }\n if (data.tracks.video) {\n this.videoBuffer = data.tracks.video.buffer || null;\n }\n }\n\n onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData) {\n const { frag, part } = data;\n if (frag.type !== PlaylistLevelType.AUDIO) {\n if (!this.loadedmetadata && frag.type === PlaylistLevelType.MAIN) {\n const bufferable = this.videoBuffer || this.media;\n if (bufferable) {\n const bufferedTimeRanges = BufferHelper.getBuffered(bufferable);\n if (bufferedTimeRanges.length) {\n this.loadedmetadata = true;\n }\n }\n }\n return;\n }\n if (this.fragContextChanged(frag)) {\n // If a level switch was requested while a fragment was buffering, it will emit the FRAG_BUFFERED event upon completion\n // Avoid setting state back to IDLE or concluding the audio switch; otherwise, the switched-to track will not buffer\n this.warn(\n `Fragment ${frag.sn}${part ? ' p: ' + part.index : ''} of level ${\n frag.level\n } finished buffering, but was aborted. state: ${\n this.state\n }, audioSwitch: ${\n this.switchingTrack ? this.switchingTrack.name : 'false'\n }`,\n );\n return;\n }\n if (frag.sn !== 'initSegment') {\n this.fragPrevious = frag;\n const track = this.switchingTrack;\n if (track) {\n this.bufferedTrack = track;\n this.switchingTrack = null;\n this.hls.trigger(Events.AUDIO_TRACK_SWITCHED, { ...track });\n }\n }\n this.fragBufferedComplete(frag, part);\n }\n\n private onError(event: Events.ERROR, data: ErrorData) {\n if (data.fatal) {\n this.state = State.ERROR;\n return;\n }\n switch (data.details) {\n case ErrorDetails.FRAG_GAP:\n case ErrorDetails.FRAG_PARSING_ERROR:\n case ErrorDetails.FRAG_DECRYPT_ERROR:\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n this.onFragmentOrKeyLoadError(PlaylistLevelType.AUDIO, data);\n break;\n case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:\n case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:\n case ErrorDetails.LEVEL_PARSING_ERROR:\n // in case of non fatal error while loading track, if not retrying to load track, switch back to IDLE\n if (\n !data.levelRetry &&\n this.state === State.WAITING_TRACK &&\n data.context?.type === PlaylistContextType.AUDIO_TRACK\n ) {\n this.state = State.IDLE;\n }\n break;\n case ErrorDetails.BUFFER_APPEND_ERROR:\n case ErrorDetails.BUFFER_FULL_ERROR:\n if (!data.parent || data.parent !== 'audio') {\n return;\n }\n if (data.details === ErrorDetails.BUFFER_APPEND_ERROR) {\n this.resetLoadingState();\n return;\n }\n if (this.reduceLengthAndFlushBuffer(data)) {\n this.bufferedTrack = null;\n super.flushMainBuffer(0, Number.POSITIVE_INFINITY, 'audio');\n }\n break;\n case ErrorDetails.INTERNAL_EXCEPTION:\n this.recoverWorkerError(data);\n break;\n default:\n break;\n }\n }\n\n private onBufferFlushing(\n event: Events.BUFFER_FLUSHING,\n { type }: BufferFlushingData,\n ) {\n if (type !== ElementaryStreamTypes.VIDEO) {\n this.flushing = true;\n }\n }\n\n private onBufferFlushed(\n event: Events.BUFFER_FLUSHED,\n { type }: BufferFlushedData,\n ) {\n if (type !== ElementaryStreamTypes.VIDEO) {\n this.flushing = false;\n this.bufferFlushed = true;\n if (this.state === State.ENDED) {\n this.state = State.IDLE;\n }\n const mediaBuffer = this.mediaBuffer || this.media;\n if (mediaBuffer) {\n this.afterBufferFlushed(mediaBuffer, type, PlaylistLevelType.AUDIO);\n this.tick();\n }\n }\n }\n\n private _handleTransmuxComplete(transmuxResult: TransmuxerResult) {\n const id = 'audio';\n const { hls } = this;\n const { remuxResult, chunkMeta } = transmuxResult;\n\n const context = this.getCurrentContext(chunkMeta);\n if (!context) {\n this.resetWhenMissingContext(chunkMeta);\n return;\n }\n const { frag, part, level } = context;\n const { details } = level;\n const { audio, text, id3, initSegment } = remuxResult;\n\n // Check if the current fragment has been aborted. We check this by first seeing if we're still playing the current level.\n // If we are, subsequently check if the currently loading fragment (fragCurrent) has changed.\n if (this.fragContextChanged(frag) || !details) {\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n\n this.state = State.PARSING;\n if (this.switchingTrack && audio) {\n this.completeAudioSwitch(this.switchingTrack);\n }\n\n if (initSegment?.tracks) {\n const mapFragment = frag.initSegment || frag;\n this._bufferInitSegment(\n level,\n initSegment.tracks,\n mapFragment,\n chunkMeta,\n );\n hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT, {\n frag: mapFragment,\n id,\n tracks: initSegment.tracks,\n });\n // Only flush audio from old audio tracks when PTS is known on new audio track\n }\n if (audio) {\n const { startPTS, endPTS, startDTS, endDTS } = audio;\n if (part) {\n part.elementaryStreams[ElementaryStreamTypes.AUDIO] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n };\n }\n frag.setElementaryStreamInfo(\n ElementaryStreamTypes.AUDIO,\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n );\n this.bufferFragmentData(audio, frag, part, chunkMeta);\n }\n\n if (id3?.samples?.length) {\n const emittedID3: FragParsingMetadataData = Object.assign(\n {\n id,\n frag,\n details,\n },\n id3,\n );\n hls.trigger(Events.FRAG_PARSING_METADATA, emittedID3);\n }\n if (text) {\n const emittedText: FragParsingUserdataData = Object.assign(\n {\n id,\n frag,\n details,\n },\n text,\n );\n hls.trigger(Events.FRAG_PARSING_USERDATA, emittedText);\n }\n }\n\n private _bufferInitSegment(\n currentLevel: Level,\n tracks: TrackSet,\n frag: Fragment,\n chunkMeta: ChunkMetadata,\n ) {\n if (this.state !== State.PARSING) {\n return;\n }\n // delete any video track found on audio transmuxer\n if (tracks.video) {\n delete tracks.video;\n }\n\n // include levelCodec in audio and video tracks\n const track = tracks.audio;\n if (!track) {\n return;\n }\n\n track.id = 'audio';\n\n const variantAudioCodecs = currentLevel.audioCodec;\n this.log(\n `Init audio buffer, container:${track.container}, codecs[level/parsed]=[${variantAudioCodecs}/${track.codec}]`,\n );\n // SourceBuffer will use track.levelCodec if defined\n if (variantAudioCodecs && variantAudioCodecs.split(',').length === 1) {\n track.levelCodec = variantAudioCodecs;\n }\n this.hls.trigger(Events.BUFFER_CODECS, tracks);\n const initSegment = track.initSegment;\n if (initSegment?.byteLength) {\n const segment: BufferAppendingData = {\n type: 'audio',\n frag,\n part: null,\n chunkMeta,\n parent: frag.type,\n data: initSegment,\n };\n this.hls.trigger(Events.BUFFER_APPENDING, segment);\n }\n // trigger handler right now\n this.tickImmediate();\n }\n\n protected loadFragment(\n frag: Fragment,\n track: Level,\n targetBufferTime: number,\n ) {\n // only load if fragment is not loaded or if in audio switch\n const fragState = this.fragmentTracker.getState(frag);\n this.fragCurrent = frag;\n\n // we force a frag loading in audio switch as fragment tracker might not have evicted previous frags in case of quick audio switch\n if (\n this.switchingTrack ||\n fragState === FragmentState.NOT_LOADED ||\n fragState === FragmentState.PARTIAL\n ) {\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag, track);\n } else if (track.details?.live && !this.initPTS[frag.cc]) {\n this.log(\n `Waiting for video PTS in continuity counter ${frag.cc} of live stream before loading audio fragment ${frag.sn} of level ${this.trackId}`,\n );\n this.state = State.WAITING_INIT_PTS;\n const mainDetails = this.mainDetails;\n if (\n mainDetails &&\n mainDetails.fragments[0].start !== track.details.fragments[0].start\n ) {\n alignMediaPlaylistByPDT(track.details, mainDetails);\n }\n } else {\n this.startFragRequested = true;\n super.loadFragment(frag, track, targetBufferTime);\n }\n } else {\n this.clearTrackerIfNeeded(frag);\n }\n }\n\n private flushAudioIfNeeded(switchingTrack: MediaPlaylist) {\n if (this.media && this.bufferedTrack) {\n const { name, lang, assocLang, characteristics, audioCodec, channels } =\n this.bufferedTrack;\n if (\n !matchesOption(\n { name, lang, assocLang, characteristics, audioCodec, channels },\n switchingTrack,\n audioMatchPredicate,\n )\n ) {\n this.log('Switching audio track : flushing all audio');\n super.flushMainBuffer(0, Number.POSITIVE_INFINITY, 'audio');\n this.bufferedTrack = null;\n }\n }\n }\n\n private completeAudioSwitch(switchingTrack: MediaPlaylist) {\n const { hls } = this;\n this.flushAudioIfNeeded(switchingTrack);\n this.bufferedTrack = switchingTrack;\n this.switchingTrack = null;\n hls.trigger(Events.AUDIO_TRACK_SWITCHED, { ...switchingTrack });\n }\n}\nexport default AudioStreamController;\n","import BasePlaylistController from './base-playlist-controller';\nimport { Events } from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { PlaylistContextType } from '../types/loader';\nimport { mediaAttributesIdentical } from '../utils/media-option-attributes';\nimport {\n audioMatchPredicate,\n findClosestLevelWithAudioGroup,\n findMatchingOption,\n matchesOption,\n} from '../utils/rendition-helper';\nimport type Hls from '../hls';\nimport type {\n AudioSelectionOption,\n MediaPlaylist,\n} from '../types/media-playlist';\nimport type { HlsUrlParameters } from '../types/level';\nimport type {\n ManifestParsedData,\n AudioTracksUpdatedData,\n ErrorData,\n LevelLoadingData,\n AudioTrackLoadedData,\n LevelSwitchingData,\n} from '../types/events';\n\nclass AudioTrackController extends BasePlaylistController {\n private tracks: MediaPlaylist[] = [];\n private groupIds: (string | undefined)[] | null = null;\n private tracksInGroup: MediaPlaylist[] = [];\n private trackId: number = -1;\n private currentTrack: MediaPlaylist | null = null;\n private selectDefaultTrack: boolean = true;\n\n constructor(hls: Hls) {\n super(hls, '[audio-track-controller]');\n this.registerListeners();\n }\n\n private registerListeners() {\n const { hls } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.on(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n\n private unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.off(Events.LEVEL_SWITCHING, this.onLevelSwitching, this);\n hls.off(Events.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n\n public destroy() {\n this.unregisterListeners();\n this.tracks.length = 0;\n this.tracksInGroup.length = 0;\n this.currentTrack = null;\n super.destroy();\n }\n\n protected onManifestLoading(): void {\n this.tracks = [];\n this.tracksInGroup = [];\n this.groupIds = null;\n this.currentTrack = null;\n this.trackId = -1;\n this.selectDefaultTrack = true;\n }\n\n protected onManifestParsed(\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ): void {\n this.tracks = data.audioTracks || [];\n }\n\n protected onAudioTrackLoaded(\n event: Events.AUDIO_TRACK_LOADED,\n data: AudioTrackLoadedData,\n ): void {\n const { id, groupId, details } = data;\n const trackInActiveGroup = this.tracksInGroup[id];\n\n if (!trackInActiveGroup || trackInActiveGroup.groupId !== groupId) {\n this.warn(\n `Audio track with id:${id} and group:${groupId} not found in active group ${trackInActiveGroup?.groupId}`,\n );\n return;\n }\n\n const curDetails = trackInActiveGroup.details;\n trackInActiveGroup.details = data.details;\n this.log(\n `Audio track ${id} \"${trackInActiveGroup.name}\" lang:${trackInActiveGroup.lang} group:${groupId} loaded [${details.startSN}-${details.endSN}]`,\n );\n\n if (id === this.trackId) {\n this.playlistLoaded(id, data, curDetails);\n }\n }\n\n protected onLevelLoading(\n event: Events.LEVEL_LOADING,\n data: LevelLoadingData,\n ): void {\n this.switchLevel(data.level);\n }\n\n protected onLevelSwitching(\n event: Events.LEVEL_SWITCHING,\n data: LevelSwitchingData,\n ): void {\n this.switchLevel(data.level);\n }\n\n private switchLevel(levelIndex: number) {\n const levelInfo = this.hls.levels[levelIndex];\n if (!levelInfo) {\n return;\n }\n const audioGroups = levelInfo.audioGroups || null;\n const currentGroups = this.groupIds;\n let currentTrack = this.currentTrack;\n if (\n !audioGroups ||\n currentGroups?.length !== audioGroups?.length ||\n audioGroups?.some((groupId) => currentGroups?.indexOf(groupId) === -1)\n ) {\n this.groupIds = audioGroups;\n this.trackId = -1;\n this.currentTrack = null;\n\n const audioTracks = this.tracks.filter(\n (track): boolean =>\n !audioGroups || audioGroups.indexOf(track.groupId) !== -1,\n );\n if (audioTracks.length) {\n // Disable selectDefaultTrack if there are no default tracks\n if (\n this.selectDefaultTrack &&\n !audioTracks.some((track) => track.default)\n ) {\n this.selectDefaultTrack = false;\n }\n // track.id should match hls.audioTracks index\n audioTracks.forEach((track, i) => {\n track.id = i;\n });\n } else if (!currentTrack && !this.tracksInGroup.length) {\n // Do not dispatch AUDIO_TRACKS_UPDATED when there were and are no tracks\n return;\n }\n this.tracksInGroup = audioTracks;\n\n // Find preferred track\n const audioPreference = this.hls.config.audioPreference;\n if (!currentTrack && audioPreference) {\n const groupIndex = findMatchingOption(\n audioPreference,\n audioTracks,\n audioMatchPredicate,\n );\n if (groupIndex > -1) {\n currentTrack = audioTracks[groupIndex];\n } else {\n const allIndex = findMatchingOption(audioPreference, this.tracks);\n currentTrack = this.tracks[allIndex];\n }\n }\n\n // Select initial track\n let trackId = this.findTrackId(currentTrack);\n if (trackId === -1 && currentTrack) {\n trackId = this.findTrackId(null);\n }\n\n // Dispatch events and load track if needed\n const audioTracksUpdated: AudioTracksUpdatedData = { audioTracks };\n this.log(\n `Updating audio tracks, ${\n audioTracks.length\n } track(s) found in group(s): ${audioGroups?.join(',')}`,\n );\n this.hls.trigger(Events.AUDIO_TRACKS_UPDATED, audioTracksUpdated);\n\n const selectedTrackId = this.trackId;\n if (trackId !== -1 && selectedTrackId === -1) {\n this.setAudioTrack(trackId);\n } else if (audioTracks.length && selectedTrackId === -1) {\n const error = new Error(\n `No audio track selected for current audio group-ID(s): ${this.groupIds?.join(\n ',',\n )} track count: ${audioTracks.length}`,\n );\n this.warn(error.message);\n\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.AUDIO_TRACK_LOAD_ERROR,\n fatal: true,\n error,\n });\n }\n } else if (this.shouldReloadPlaylist(currentTrack)) {\n // Retry playlist loading if no playlist is or has been loaded yet\n this.setAudioTrack(this.trackId);\n }\n }\n\n protected onError(event: Events.ERROR, data: ErrorData): void {\n if (data.fatal || !data.context) {\n return;\n }\n\n if (\n data.context.type === PlaylistContextType.AUDIO_TRACK &&\n data.context.id === this.trackId &&\n (!this.groupIds || this.groupIds.indexOf(data.context.groupId) !== -1)\n ) {\n this.requestScheduled = -1;\n this.checkRetry(data);\n }\n }\n\n get allAudioTracks(): MediaPlaylist[] {\n return this.tracks;\n }\n\n get audioTracks(): MediaPlaylist[] {\n return this.tracksInGroup;\n }\n\n get audioTrack(): number {\n return this.trackId;\n }\n\n set audioTrack(newId: number) {\n // If audio track is selected from API then don't choose from the manifest default track\n this.selectDefaultTrack = false;\n this.setAudioTrack(newId);\n }\n\n public setAudioOption(\n audioOption: MediaPlaylist | AudioSelectionOption | undefined,\n ): MediaPlaylist | null {\n const hls = this.hls;\n hls.config.audioPreference = audioOption;\n if (audioOption) {\n const allAudioTracks = this.allAudioTracks;\n this.selectDefaultTrack = false;\n if (allAudioTracks.length) {\n // First see if current option matches (no switch op)\n const currentTrack = this.currentTrack;\n if (\n currentTrack &&\n matchesOption(audioOption, currentTrack, audioMatchPredicate)\n ) {\n return currentTrack;\n }\n // Find option in available tracks (tracksInGroup)\n const groupIndex = findMatchingOption(\n audioOption,\n this.tracksInGroup,\n audioMatchPredicate,\n );\n if (groupIndex > -1) {\n const track = this.tracksInGroup[groupIndex];\n this.setAudioTrack(groupIndex);\n return track;\n } else if (currentTrack) {\n // Find option in nearest level audio group\n let searchIndex = hls.loadLevel;\n if (searchIndex === -1) {\n searchIndex = hls.firstAutoLevel;\n }\n const switchIndex = findClosestLevelWithAudioGroup(\n audioOption,\n hls.levels,\n allAudioTracks,\n searchIndex,\n audioMatchPredicate,\n );\n if (switchIndex === -1) {\n // could not find matching variant\n return null;\n }\n // and switch level to acheive the audio group switch\n hls.nextLoadLevel = switchIndex;\n }\n if (audioOption.channels || audioOption.audioCodec) {\n // Could not find a match with codec / channels predicate\n // Find a match without channels or codec\n const withoutCodecAndChannelsMatch = findMatchingOption(\n audioOption,\n allAudioTracks,\n );\n if (withoutCodecAndChannelsMatch > -1) {\n return allAudioTracks[withoutCodecAndChannelsMatch];\n }\n }\n }\n }\n return null;\n }\n\n private setAudioTrack(newId: number): void {\n const tracks = this.tracksInGroup;\n\n // check if level idx is valid\n if (newId < 0 || newId >= tracks.length) {\n this.warn(`Invalid audio track id: ${newId}`);\n return;\n }\n\n // stopping live reloading timer if any\n this.clearTimer();\n\n this.selectDefaultTrack = false;\n const lastTrack = this.currentTrack;\n const track = tracks[newId];\n const trackLoaded = track.details && !track.details.live;\n if (newId === this.trackId && track === lastTrack && trackLoaded) {\n return;\n }\n this.log(\n `Switching to audio-track ${newId} \"${track.name}\" lang:${track.lang} group:${track.groupId} channels:${track.channels}`,\n );\n this.trackId = newId;\n this.currentTrack = track;\n this.hls.trigger(Events.AUDIO_TRACK_SWITCHING, { ...track });\n // Do not reload track unless live\n if (trackLoaded) {\n return;\n }\n const hlsUrlParameters = this.switchParams(\n track.url,\n lastTrack?.details,\n track.details,\n );\n this.loadPlaylist(hlsUrlParameters);\n }\n\n private findTrackId(currentTrack: MediaPlaylist | null): number {\n const audioTracks = this.tracksInGroup;\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (this.selectDefaultTrack && !track.default) {\n continue;\n }\n if (\n !currentTrack ||\n matchesOption(currentTrack, track, audioMatchPredicate)\n ) {\n return i;\n }\n }\n if (currentTrack) {\n const { name, lang, assocLang, characteristics, audioCodec, channels } =\n currentTrack;\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (\n matchesOption(\n { name, lang, assocLang, characteristics, audioCodec, channels },\n track,\n audioMatchPredicate,\n )\n ) {\n return i;\n }\n }\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (\n mediaAttributesIdentical(currentTrack.attrs, track.attrs, [\n 'LANGUAGE',\n 'ASSOC-LANGUAGE',\n 'CHARACTERISTICS',\n ])\n ) {\n return i;\n }\n }\n for (let i = 0; i < audioTracks.length; i++) {\n const track = audioTracks[i];\n if (\n mediaAttributesIdentical(currentTrack.attrs, track.attrs, [\n 'LANGUAGE',\n ])\n ) {\n return i;\n }\n }\n }\n return -1;\n }\n\n protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters): void {\n const audioTrack = this.currentTrack;\n if (this.shouldLoadPlaylist(audioTrack) && audioTrack) {\n super.loadPlaylist();\n const id = audioTrack.id;\n const groupId = audioTrack.groupId as string;\n let url = audioTrack.url;\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(\n `Could not construct new URL with HLS Delivery Directives: ${error}`,\n );\n }\n }\n // track not retrieved yet, or live playlist we need to (re)load it\n this.log(\n `loading audio-track playlist ${id} \"${audioTrack.name}\" lang:${audioTrack.lang} group:${groupId}`,\n );\n this.clearTimer();\n this.hls.trigger(Events.AUDIO_TRACK_LOADING, {\n url,\n id,\n groupId,\n deliveryDirectives: hlsUrlParameters || null,\n });\n }\n }\n}\n\nexport default AudioTrackController;\n","import { Events } from '../events';\nimport Hls from '../hls';\nimport { Cmcd } from '@svta/common-media-library/cmcd/Cmcd';\nimport { CmcdObjectType } from '@svta/common-media-library/cmcd/CmcdObjectType';\nimport { CmcdStreamingFormat } from '@svta/common-media-library/cmcd/CmcdStreamingFormat';\nimport { appendCmcdHeaders } from '@svta/common-media-library/cmcd/appendCmcdHeaders';\nimport { appendCmcdQuery } from '@svta/common-media-library/cmcd/appendCmcdQuery';\nimport { uuid } from '@svta/common-media-library/utils/uuid';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport { logger } from '../utils/logger';\nimport type { ComponentAPI } from '../types/component-api';\nimport type { Fragment } from '../loader/fragment';\nimport type { BufferCreatedData, MediaAttachedData } from '../types/events';\nimport type {\n FragmentLoaderContext,\n Loader,\n LoaderCallbacks,\n LoaderConfiguration,\n LoaderContext,\n PlaylistLoaderContext,\n} from '../types/loader';\nimport type {\n FragmentLoaderConstructor,\n HlsConfig,\n PlaylistLoaderConstructor,\n} from '../config';\n\n/**\n * Controller to deal with Common Media Client Data (CMCD)\n * @see https://cdn.cta.tech/cta/media/media/resources/standards/pdfs/cta-5004-final.pdf\n */\nexport default class CMCDController implements ComponentAPI {\n private hls: Hls;\n private config: HlsConfig;\n private media?: HTMLMediaElement;\n private sid?: string;\n private cid?: string;\n private useHeaders: boolean = false;\n private includeKeys?: string[];\n private initialized: boolean = false;\n private starved: boolean = false;\n private buffering: boolean = true;\n private audioBuffer?: SourceBuffer; // eslint-disable-line no-restricted-globals\n private videoBuffer?: SourceBuffer; // eslint-disable-line no-restricted-globals\n\n constructor(hls: Hls) {\n this.hls = hls;\n const config = (this.config = hls.config);\n const { cmcd } = config;\n\n if (cmcd != null) {\n config.pLoader = this.createPlaylistLoader();\n config.fLoader = this.createFragmentLoader();\n\n this.sid = cmcd.sessionId || uuid();\n this.cid = cmcd.contentId;\n this.useHeaders = cmcd.useHeaders === true;\n this.includeKeys = cmcd.includeKeys;\n this.registerListeners();\n }\n }\n\n private registerListeners() {\n const hls = this.hls;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);\n }\n\n private unregisterListeners() {\n const hls = this.hls;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHED, this.onMediaDetached, this);\n hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);\n }\n\n destroy() {\n this.unregisterListeners();\n this.onMediaDetached();\n\n // @ts-ignore\n this.hls = this.config = this.audioBuffer = this.videoBuffer = null;\n // @ts-ignore\n this.onWaiting = this.onPlaying = null;\n }\n\n private onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ) {\n this.media = data.media;\n this.media.addEventListener('waiting', this.onWaiting);\n this.media.addEventListener('playing', this.onPlaying);\n }\n\n private onMediaDetached() {\n if (!this.media) {\n return;\n }\n\n this.media.removeEventListener('waiting', this.onWaiting);\n this.media.removeEventListener('playing', this.onPlaying);\n\n // @ts-ignore\n this.media = null;\n }\n\n private onBufferCreated(\n event: Events.BUFFER_CREATED,\n data: BufferCreatedData,\n ) {\n this.audioBuffer = data.tracks.audio?.buffer;\n this.videoBuffer = data.tracks.video?.buffer;\n }\n\n private onWaiting = () => {\n if (this.initialized) {\n this.starved = true;\n }\n\n this.buffering = true;\n };\n\n private onPlaying = () => {\n if (!this.initialized) {\n this.initialized = true;\n }\n\n this.buffering = false;\n };\n\n /**\n * Create baseline CMCD data\n */\n private createData(): Cmcd {\n return {\n v: 1,\n sf: CmcdStreamingFormat.HLS,\n sid: this.sid,\n cid: this.cid,\n pr: this.media?.playbackRate,\n mtp: this.hls.bandwidthEstimate / 1000,\n };\n }\n\n /**\n * Apply CMCD data to a request.\n */\n private apply(context: LoaderContext, data: Cmcd = {}) {\n // apply baseline data\n Object.assign(data, this.createData());\n\n const isVideo =\n data.ot === CmcdObjectType.INIT ||\n data.ot === CmcdObjectType.VIDEO ||\n data.ot === CmcdObjectType.MUXED;\n\n if (this.starved && isVideo) {\n data.bs = true;\n data.su = true;\n this.starved = false;\n }\n\n if (data.su == null) {\n data.su = this.buffering;\n }\n\n // TODO: Implement rtp, nrr, nor, dl\n\n const { includeKeys } = this;\n if (includeKeys) {\n data = Object.keys(data).reduce((acc, key) => {\n includeKeys.includes(key) && (acc[key] = data[key]);\n return acc;\n }, {});\n }\n\n if (this.useHeaders) {\n if (!context.headers) {\n context.headers = {};\n }\n\n appendCmcdHeaders(context.headers, data);\n } else {\n context.url = appendCmcdQuery(context.url, data);\n }\n }\n\n /**\n * Apply CMCD data to a manifest request.\n */\n private applyPlaylistData = (context: PlaylistLoaderContext) => {\n try {\n this.apply(context, {\n ot: CmcdObjectType.MANIFEST,\n su: !this.initialized,\n });\n } catch (error) {\n logger.warn('Could not generate manifest CMCD data.', error);\n }\n };\n\n /**\n * Apply CMCD data to a segment request\n */\n private applyFragmentData = (context: FragmentLoaderContext) => {\n try {\n const fragment = context.frag;\n const level = this.hls.levels[fragment.level];\n const ot = this.getObjectType(fragment);\n const data: Cmcd = {\n d: fragment.duration * 1000,\n ot,\n };\n\n if (\n ot === CmcdObjectType.VIDEO ||\n ot === CmcdObjectType.AUDIO ||\n ot == CmcdObjectType.MUXED\n ) {\n data.br = level.bitrate / 1000;\n data.tb = this.getTopBandwidth(ot) / 1000;\n data.bl = this.getBufferLength(ot);\n }\n\n this.apply(context, data);\n } catch (error) {\n logger.warn('Could not generate segment CMCD data.', error);\n }\n };\n\n /**\n * The CMCD object type.\n */\n private getObjectType(fragment: Fragment): CmcdObjectType | undefined {\n const { type } = fragment;\n\n if (type === 'subtitle') {\n return CmcdObjectType.TIMED_TEXT;\n }\n\n if (fragment.sn === 'initSegment') {\n return CmcdObjectType.INIT;\n }\n\n if (type === 'audio') {\n return CmcdObjectType.AUDIO;\n }\n\n if (type === 'main') {\n if (!this.hls.audioTracks.length) {\n return CmcdObjectType.MUXED;\n }\n\n return CmcdObjectType.VIDEO;\n }\n\n return undefined;\n }\n\n /**\n * Get the highest bitrate.\n */\n private getTopBandwidth(type: CmcdObjectType) {\n let bitrate: number = 0;\n let levels;\n const hls = this.hls;\n\n if (type === CmcdObjectType.AUDIO) {\n levels = hls.audioTracks;\n } else {\n const max = hls.maxAutoLevel;\n const len = max > -1 ? max + 1 : hls.levels.length;\n levels = hls.levels.slice(0, len);\n }\n\n for (const level of levels) {\n if (level.bitrate > bitrate) {\n bitrate = level.bitrate;\n }\n }\n\n return bitrate > 0 ? bitrate : NaN;\n }\n\n /**\n * Get the buffer length for a media type in milliseconds\n */\n private getBufferLength(type: CmcdObjectType) {\n const media = this.hls.media;\n const buffer =\n type === CmcdObjectType.AUDIO ? this.audioBuffer : this.videoBuffer;\n\n if (!buffer || !media) {\n return NaN;\n }\n\n const info = BufferHelper.bufferInfo(\n buffer,\n media.currentTime,\n this.config.maxBufferHole,\n );\n\n return info.len * 1000;\n }\n\n /**\n * Create a playlist loader\n */\n private createPlaylistLoader(): PlaylistLoaderConstructor | undefined {\n const { pLoader } = this.config;\n const apply = this.applyPlaylistData;\n const Ctor = pLoader || (this.config.loader as PlaylistLoaderConstructor);\n\n return class CmcdPlaylistLoader {\n private loader: Loader<PlaylistLoaderContext>;\n\n constructor(config: HlsConfig) {\n this.loader = new Ctor(config);\n }\n\n get stats() {\n return this.loader.stats;\n }\n\n get context() {\n return this.loader.context;\n }\n\n destroy() {\n this.loader.destroy();\n }\n\n abort() {\n this.loader.abort();\n }\n\n load(\n context: PlaylistLoaderContext,\n config: LoaderConfiguration,\n callbacks: LoaderCallbacks<PlaylistLoaderContext>,\n ) {\n apply(context);\n this.loader.load(context, config, callbacks);\n }\n };\n }\n\n /**\n * Create a playlist loader\n */\n private createFragmentLoader(): FragmentLoaderConstructor | undefined {\n const { fLoader } = this.config;\n const apply = this.applyFragmentData;\n const Ctor = fLoader || (this.config.loader as FragmentLoaderConstructor);\n\n return class CmcdFragmentLoader {\n private loader: Loader<FragmentLoaderContext>;\n\n constructor(config: HlsConfig) {\n this.loader = new Ctor(config);\n }\n\n get stats() {\n return this.loader.stats;\n }\n\n get context() {\n return this.loader.context;\n }\n\n destroy() {\n this.loader.destroy();\n }\n\n abort() {\n this.loader.abort();\n }\n\n load(\n context: FragmentLoaderContext,\n config: LoaderConfiguration,\n callbacks: LoaderCallbacks<FragmentLoaderContext>,\n ) {\n apply(context);\n this.loader.load(context, config, callbacks);\n }\n };\n }\n}\n","/**\n * Generate a random v4 UUID\n *\n * @returns A random v4 UUID\n *\n * @group Utils\n *\n * @beta\n */\nexport function uuid() {\n try {\n return crypto.randomUUID();\n }\n catch (error) {\n try {\n const url = URL.createObjectURL(new Blob());\n const uuid = url.toString();\n URL.revokeObjectURL(url);\n return uuid.slice(uuid.lastIndexOf('/') + 1);\n }\n catch (error) {\n let dt = new Date().getTime();\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (dt + Math.random() * 16) % 16 | 0;\n dt = Math.floor(dt / 16);\n return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n });\n return uuid;\n }\n }\n}\n//# sourceMappingURL=uuid.js.map","import {\n ManifestLoadedData,\n ManifestParsedData,\n LevelLoadedData,\n ErrorData,\n LevelSwitchingData,\n LevelsUpdatedData,\n ManifestLoadingData,\n FragBufferedData,\n} from '../types/events';\nimport { Level, VideoRangeValues, isVideoRange } from '../types/level';\nimport { Events } from '../events';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport {\n areCodecsMediaSourceSupported,\n codecsSetSelectionPreferenceValue,\n convertAVC1ToAVCOTI,\n getCodecCompatibleName,\n videoCodecPreferenceValue,\n} from '../utils/codecs';\nimport BasePlaylistController from './base-playlist-controller';\nimport { PlaylistContextType, PlaylistLevelType } from '../types/loader';\nimport ContentSteeringController from './content-steering-controller';\nimport { reassignFragmentLevelIndexes } from '../utils/level-helper';\nimport { hlsDefaultConfig } from '../config';\nimport type Hls from '../hls';\nimport type { HlsUrlParameters, LevelParsed } from '../types/level';\nimport type { MediaPlaylist } from '../types/media-playlist';\n\nlet chromeOrFirefox: boolean;\n\nexport default class LevelController extends BasePlaylistController {\n private _levels: Level[] = [];\n private _firstLevel: number = -1;\n private _maxAutoLevel: number = -1;\n private _startLevel?: number;\n private currentLevel: Level | null = null;\n private currentLevelIndex: number = -1;\n private manualLevelIndex: number = -1;\n private steering: ContentSteeringController | null;\n\n public onParsedComplete!: Function;\n\n constructor(\n hls: Hls,\n contentSteeringController: ContentSteeringController | null,\n ) {\n super(hls, '[level-controller]');\n this.steering = contentSteeringController;\n this._registerListeners();\n }\n\n private _registerListeners() {\n const { hls } = this;\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.on(Events.ERROR, this.onError, this);\n }\n\n private _unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_LOADED, this.onManifestLoaded, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n hls.off(Events.ERROR, this.onError, this);\n }\n\n public destroy() {\n this._unregisterListeners();\n this.steering = null;\n this.resetLevels();\n super.destroy();\n }\n\n public stopLoad(): void {\n const levels = this._levels;\n\n // clean up live level details to force reload them, and reset load errors\n levels.forEach((level) => {\n level.loadError = 0;\n level.fragmentError = 0;\n });\n\n super.stopLoad();\n }\n\n private resetLevels() {\n this._startLevel = undefined;\n this.manualLevelIndex = -1;\n this.currentLevelIndex = -1;\n this.currentLevel = null;\n this._levels = [];\n this._maxAutoLevel = -1;\n }\n\n private onManifestLoading(\n event: Events.MANIFEST_LOADING,\n data: ManifestLoadingData,\n ) {\n this.resetLevels();\n }\n\n protected onManifestLoaded(\n event: Events.MANIFEST_LOADED,\n data: ManifestLoadedData,\n ) {\n const preferManagedMediaSource = this.hls.config.preferManagedMediaSource;\n const levels: Level[] = [];\n const redundantSet: { [key: string]: Level } = {};\n const generatePathwaySet: { [key: string]: number } = {};\n let resolutionFound = false;\n let videoCodecFound = false;\n let audioCodecFound = false;\n\n data.levels.forEach((levelParsed: LevelParsed) => {\n const attributes = levelParsed.attrs;\n\n // erase audio codec info if browser does not support mp4a.40.34.\n // demuxer will autodetect codec and fallback to mpeg/audio\n let { audioCodec, videoCodec } = levelParsed;\n if (audioCodec?.indexOf('mp4a.40.34') !== -1) {\n chromeOrFirefox ||= /chrome|firefox/i.test(navigator.userAgent);\n if (chromeOrFirefox) {\n levelParsed.audioCodec = audioCodec = undefined;\n }\n }\n\n if (audioCodec) {\n levelParsed.audioCodec = audioCodec = getCodecCompatibleName(\n audioCodec,\n preferManagedMediaSource,\n );\n }\n\n if (videoCodec?.indexOf('avc1') === 0) {\n videoCodec = levelParsed.videoCodec = convertAVC1ToAVCOTI(videoCodec);\n }\n\n // only keep levels with supported audio/video codecs\n const { width, height, unknownCodecs } = levelParsed;\n resolutionFound ||= !!(width && height);\n videoCodecFound ||= !!videoCodec;\n audioCodecFound ||= !!audioCodec;\n if (\n unknownCodecs?.length ||\n (audioCodec &&\n !areCodecsMediaSourceSupported(\n audioCodec,\n 'audio',\n preferManagedMediaSource,\n )) ||\n (videoCodec &&\n !areCodecsMediaSourceSupported(\n videoCodec,\n 'video',\n preferManagedMediaSource,\n ))\n ) {\n return;\n }\n\n const {\n CODECS,\n 'FRAME-RATE': FRAMERATE,\n 'HDCP-LEVEL': HDCP,\n 'PATHWAY-ID': PATHWAY,\n RESOLUTION,\n 'VIDEO-RANGE': VIDEO_RANGE,\n } = attributes;\n const contentSteeringPrefix = `${PATHWAY || '.'}-`;\n const levelKey = `${contentSteeringPrefix}${levelParsed.bitrate}-${RESOLUTION}-${FRAMERATE}-${CODECS}-${VIDEO_RANGE}-${HDCP}`;\n\n if (!redundantSet[levelKey]) {\n const level = new Level(levelParsed);\n redundantSet[levelKey] = level;\n generatePathwaySet[levelKey] = 1;\n levels.push(level);\n } else if (\n redundantSet[levelKey].uri !== levelParsed.url &&\n !levelParsed.attrs['PATHWAY-ID']\n ) {\n // Assign Pathway IDs to Redundant Streams (default Pathways is \".\". Redundant Streams \"..\", \"...\", and so on.)\n // Content Steering controller to handles Pathway fallback on error\n const pathwayCount = (generatePathwaySet[levelKey] += 1);\n levelParsed.attrs['PATHWAY-ID'] = new Array(pathwayCount + 1).join('.');\n const level = new Level(levelParsed);\n redundantSet[levelKey] = level;\n levels.push(level);\n } else {\n redundantSet[levelKey].addGroupId('audio', attributes.AUDIO);\n redundantSet[levelKey].addGroupId('text', attributes.SUBTITLES);\n }\n });\n\n this.filterAndSortMediaOptions(\n levels,\n data,\n resolutionFound,\n videoCodecFound,\n audioCodecFound,\n );\n }\n\n private filterAndSortMediaOptions(\n filteredLevels: Level[],\n data: ManifestLoadedData,\n resolutionFound: boolean,\n videoCodecFound: boolean,\n audioCodecFound: boolean,\n ) {\n let audioTracks: MediaPlaylist[] = [];\n let subtitleTracks: MediaPlaylist[] = [];\n let levels = filteredLevels;\n\n // remove audio-only and invalid video-range levels if we also have levels with video codecs or RESOLUTION signalled\n if ((resolutionFound || videoCodecFound) && audioCodecFound) {\n levels = levels.filter(\n ({ videoCodec, videoRange, width, height }) =>\n (!!videoCodec || !!(width && height)) && isVideoRange(videoRange),\n );\n }\n\n if (levels.length === 0) {\n // Dispatch error after MANIFEST_LOADED is done propagating\n Promise.resolve().then(() => {\n if (this.hls) {\n if (data.levels.length) {\n this.warn(\n `One or more CODECS in variant not supported: ${JSON.stringify(\n data.levels[0].attrs,\n )}`,\n );\n }\n const error = new Error(\n 'no level with compatible codecs found in manifest',\n );\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,\n fatal: true,\n url: data.url,\n error,\n reason: error.message,\n });\n }\n });\n return;\n }\n\n if (data.audioTracks) {\n const { preferManagedMediaSource } = this.hls.config;\n audioTracks = data.audioTracks.filter(\n (track) =>\n !track.audioCodec ||\n areCodecsMediaSourceSupported(\n track.audioCodec,\n 'audio',\n preferManagedMediaSource,\n ),\n );\n // Assign ids after filtering as array indices by group-id\n assignTrackIdsByGroup(audioTracks);\n }\n\n if (data.subtitles) {\n subtitleTracks = data.subtitles;\n assignTrackIdsByGroup(subtitleTracks);\n }\n // start bitrate is the first bitrate of the manifest\n const unsortedLevels = levels.slice(0);\n // sort levels from lowest to highest\n levels.sort((a, b) => {\n if (a.attrs['HDCP-LEVEL'] !== b.attrs['HDCP-LEVEL']) {\n return (a.attrs['HDCP-LEVEL'] || '') > (b.attrs['HDCP-LEVEL'] || '')\n ? 1\n : -1;\n }\n // sort on height before bitrate for cap-level-controller\n if (resolutionFound && a.height !== b.height) {\n return a.height - b.height;\n }\n if (a.frameRate !== b.frameRate) {\n return a.frameRate - b.frameRate;\n }\n if (a.videoRange !== b.videoRange) {\n return (\n VideoRangeValues.indexOf(a.videoRange) -\n VideoRangeValues.indexOf(b.videoRange)\n );\n }\n if (a.videoCodec !== b.videoCodec) {\n const valueA = videoCodecPreferenceValue(a.videoCodec);\n const valueB = videoCodecPreferenceValue(b.videoCodec);\n if (valueA !== valueB) {\n return valueB - valueA;\n }\n }\n if (a.uri === b.uri && a.codecSet !== b.codecSet) {\n const valueA = codecsSetSelectionPreferenceValue(a.codecSet);\n const valueB = codecsSetSelectionPreferenceValue(b.codecSet);\n if (valueA !== valueB) {\n return valueB - valueA;\n }\n }\n if (a.averageBitrate !== b.averageBitrate) {\n return a.averageBitrate - b.averageBitrate;\n }\n return 0;\n });\n\n let firstLevelInPlaylist = unsortedLevels[0];\n if (this.steering) {\n levels = this.steering.filterParsedLevels(levels);\n if (levels.length !== unsortedLevels.length) {\n for (let i = 0; i < unsortedLevels.length; i++) {\n if (unsortedLevels[i].pathwayId === levels[0].pathwayId) {\n firstLevelInPlaylist = unsortedLevels[i];\n break;\n }\n }\n }\n }\n\n this._levels = levels;\n\n // find index of first level in sorted levels\n for (let i = 0; i < levels.length; i++) {\n if (levels[i] === firstLevelInPlaylist) {\n this._firstLevel = i;\n const firstLevelBitrate = firstLevelInPlaylist.bitrate;\n const bandwidthEstimate = this.hls.bandwidthEstimate;\n this.log(\n `manifest loaded, ${levels.length} level(s) found, first bitrate: ${firstLevelBitrate}`,\n );\n // Update default bwe to first variant bitrate as long it has not been configured or set\n if (this.hls.userConfig?.abrEwmaDefaultEstimate === undefined) {\n const startingBwEstimate = Math.min(\n firstLevelBitrate,\n this.hls.config.abrEwmaDefaultEstimateMax,\n );\n if (\n startingBwEstimate > bandwidthEstimate &&\n bandwidthEstimate === hlsDefaultConfig.abrEwmaDefaultEstimate\n ) {\n this.hls.bandwidthEstimate = startingBwEstimate;\n }\n }\n break;\n }\n }\n\n // Audio is only alternate if manifest include a URI along with the audio group tag,\n // and this is not an audio-only stream where levels contain audio-only\n const audioOnly = audioCodecFound && !videoCodecFound;\n const edata: ManifestParsedData = {\n levels,\n audioTracks,\n subtitleTracks,\n sessionData: data.sessionData,\n sessionKeys: data.sessionKeys,\n firstLevel: this._firstLevel,\n stats: data.stats,\n audio: audioCodecFound,\n video: videoCodecFound,\n altAudio: !audioOnly && audioTracks.some((t) => !!t.url),\n };\n this.hls.trigger(Events.MANIFEST_PARSED, edata);\n\n // Initiate loading after all controllers have received MANIFEST_PARSED\n if (this.hls.config.autoStartLoad || this.hls.forceStartLoad) {\n this.hls.startLoad(this.hls.config.startPosition);\n }\n }\n\n get levels(): Level[] | null {\n if (this._levels.length === 0) {\n return null;\n }\n return this._levels;\n }\n\n get level(): number {\n return this.currentLevelIndex;\n }\n\n set level(newLevel: number) {\n const levels = this._levels;\n if (levels.length === 0) {\n return;\n }\n // check if level idx is valid\n if (newLevel < 0 || newLevel >= levels.length) {\n // invalid level id given, trigger error\n const error = new Error('invalid level idx');\n const fatal = newLevel < 0;\n this.hls.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.LEVEL_SWITCH_ERROR,\n level: newLevel,\n fatal,\n error,\n reason: error.message,\n });\n if (fatal) {\n return;\n }\n newLevel = Math.min(newLevel, levels.length - 1);\n }\n\n const lastLevelIndex = this.currentLevelIndex;\n const lastLevel = this.currentLevel;\n const lastPathwayId = lastLevel ? lastLevel.attrs['PATHWAY-ID'] : undefined;\n const level = levels[newLevel];\n const pathwayId = level.attrs['PATHWAY-ID'];\n this.currentLevelIndex = newLevel;\n this.currentLevel = level;\n\n if (\n lastLevelIndex === newLevel &&\n level.details &&\n lastLevel &&\n lastPathwayId === pathwayId\n ) {\n return;\n }\n\n this.log(\n `Switching to level ${newLevel} (${\n level.height ? level.height + 'p ' : ''\n }${level.videoRange ? level.videoRange + ' ' : ''}${\n level.codecSet ? level.codecSet + ' ' : ''\n }@${level.bitrate})${\n pathwayId ? ' with Pathway ' + pathwayId : ''\n } from level ${lastLevelIndex}${\n lastPathwayId ? ' with Pathway ' + lastPathwayId : ''\n }`,\n );\n\n const levelSwitchingData: LevelSwitchingData = {\n level: newLevel,\n attrs: level.attrs,\n details: level.details,\n bitrate: level.bitrate,\n averageBitrate: level.averageBitrate,\n maxBitrate: level.maxBitrate,\n realBitrate: level.realBitrate,\n width: level.width,\n height: level.height,\n codecSet: level.codecSet,\n audioCodec: level.audioCodec,\n videoCodec: level.videoCodec,\n audioGroups: level.audioGroups,\n subtitleGroups: level.subtitleGroups,\n loaded: level.loaded,\n loadError: level.loadError,\n fragmentError: level.fragmentError,\n name: level.name,\n id: level.id,\n uri: level.uri,\n url: level.url,\n urlId: 0,\n audioGroupIds: level.audioGroupIds,\n textGroupIds: level.textGroupIds,\n };\n\n this.hls.trigger(Events.LEVEL_SWITCHING, levelSwitchingData);\n // check if we need to load playlist for this level\n const levelDetails = level.details;\n if (!levelDetails || levelDetails.live) {\n // level not retrieved yet, or live playlist we need to (re)load it\n const hlsUrlParameters = this.switchParams(\n level.uri,\n lastLevel?.details,\n levelDetails,\n );\n this.loadPlaylist(hlsUrlParameters);\n }\n }\n\n get manualLevel(): number {\n return this.manualLevelIndex;\n }\n\n set manualLevel(newLevel) {\n this.manualLevelIndex = newLevel;\n if (this._startLevel === undefined) {\n this._startLevel = newLevel;\n }\n\n if (newLevel !== -1) {\n this.level = newLevel;\n }\n }\n\n get firstLevel(): number {\n return this._firstLevel;\n }\n\n set firstLevel(newLevel) {\n this._firstLevel = newLevel;\n }\n\n get startLevel(): number {\n // Setting hls.startLevel (this._startLevel) overrides config.startLevel\n if (this._startLevel === undefined) {\n const configStartLevel = this.hls.config.startLevel;\n if (configStartLevel !== undefined) {\n return configStartLevel;\n }\n return this.hls.firstAutoLevel;\n }\n return this._startLevel;\n }\n\n set startLevel(newLevel: number) {\n this._startLevel = newLevel;\n }\n\n protected onError(event: Events.ERROR, data: ErrorData) {\n if (data.fatal || !data.context) {\n return;\n }\n\n if (\n data.context.type === PlaylistContextType.LEVEL &&\n data.context.level === this.level\n ) {\n this.checkRetry(data);\n }\n }\n\n // reset errors on the successful load of a fragment\n protected onFragBuffered(\n event: Events.FRAG_BUFFERED,\n { frag }: FragBufferedData,\n ) {\n if (frag !== undefined && frag.type === PlaylistLevelType.MAIN) {\n const el = frag.elementaryStreams;\n if (!Object.keys(el).some((type) => !!el[type])) {\n return;\n }\n const level = this._levels[frag.level];\n if (level?.loadError) {\n this.log(\n `Resetting level error count of ${level.loadError} on frag buffered`,\n );\n level.loadError = 0;\n }\n }\n }\n\n protected onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData) {\n const { level, details } = data;\n const curLevel = this._levels[level];\n\n if (!curLevel) {\n this.warn(`Invalid level index ${level}`);\n if (data.deliveryDirectives?.skip) {\n details.deltaUpdateFailed = true;\n }\n return;\n }\n\n // only process level loaded events matching with expected level\n if (level === this.currentLevelIndex) {\n // reset level load error counter on successful level loaded only if there is no issues with fragments\n if (curLevel.fragmentError === 0) {\n curLevel.loadError = 0;\n }\n this.playlistLoaded(level, data, curLevel.details);\n } else if (data.deliveryDirectives?.skip) {\n // received a delta playlist update that cannot be merged\n details.deltaUpdateFailed = true;\n }\n }\n\n protected loadPlaylist(hlsUrlParameters?: HlsUrlParameters) {\n super.loadPlaylist();\n const currentLevelIndex = this.currentLevelIndex;\n const currentLevel = this.currentLevel;\n\n if (currentLevel && this.shouldLoadPlaylist(currentLevel)) {\n let url = currentLevel.uri;\n if (hlsUrlParameters) {\n try {\n url = hlsUrlParameters.addDirectives(url);\n } catch (error) {\n this.warn(\n `Could not construct new URL with HLS Delivery Directives: ${error}`,\n );\n }\n }\n\n const pathwayId = currentLevel.attrs['PATHWAY-ID'];\n this.log(\n `Loading level index ${currentLevelIndex}${\n hlsUrlParameters?.msn !== undefined\n ? ' at sn ' +\n hlsUrlParameters.msn +\n ' part ' +\n hlsUrlParameters.part\n : ''\n } with${pathwayId ? ' Pathway ' + pathwayId : ''} ${url}`,\n );\n\n // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n // console.log('New video quality level audio group id:', levelObject.attrs.AUDIO, level);\n this.clearTimer();\n this.hls.trigger(Events.LEVEL_LOADING, {\n url,\n level: currentLevelIndex,\n pathwayId: currentLevel.attrs['PATHWAY-ID'],\n id: 0, // Deprecated Level urlId\n deliveryDirectives: hlsUrlParameters || null,\n });\n }\n }\n\n get nextLoadLevel() {\n if (this.manualLevelIndex !== -1) {\n return this.manualLevelIndex;\n } else {\n return this.hls.nextAutoLevel;\n }\n }\n\n set nextLoadLevel(nextLevel) {\n this.level = nextLevel;\n if (this.manualLevelIndex === -1) {\n this.hls.nextAutoLevel = nextLevel;\n }\n }\n\n removeLevel(levelIndex: number) {\n const levels = this._levels.filter((level, index) => {\n if (index !== levelIndex) {\n return true;\n }\n if (this.steering) {\n this.steering.removeLevel(level);\n }\n if (level === this.currentLevel) {\n this.currentLevel = null;\n this.currentLevelIndex = -1;\n if (level.details) {\n level.details.fragments.forEach((f) => (f.level = -1));\n }\n }\n return false;\n });\n reassignFragmentLevelIndexes(levels);\n this._levels = levels;\n if (this.currentLevelIndex > -1 && this.currentLevel?.details) {\n this.currentLevelIndex = this.currentLevel.details.fragments[0].level;\n }\n this.hls.trigger(Events.LEVELS_UPDATED, { levels });\n }\n\n private onLevelsUpdated(\n event: Events.LEVELS_UPDATED,\n { levels }: LevelsUpdatedData,\n ) {\n this._levels = levels;\n }\n\n public checkMaxAutoUpdated() {\n const { autoLevelCapping, maxAutoLevel, maxHdcpLevel } = this.hls;\n if (this._maxAutoLevel !== maxAutoLevel) {\n this._maxAutoLevel = maxAutoLevel;\n this.hls.trigger(Events.MAX_AUTO_LEVEL_UPDATED, {\n autoLevelCapping,\n levels: this.levels,\n maxAutoLevel,\n minAutoLevel: this.hls.minAutoLevel,\n maxHdcpLevel,\n });\n }\n }\n}\n\nfunction assignTrackIdsByGroup(tracks: MediaPlaylist[]): void {\n const groups = {};\n tracks.forEach((track) => {\n const groupId = track.groupId || '';\n track.id = groups[groupId] = groups[groupId] || 0;\n groups[groupId]++;\n });\n}\n","import { ErrorTypes, ErrorDetails } from '../errors';\nimport {\n LoaderStats,\n LoaderResponse,\n LoaderConfiguration,\n LoaderCallbacks,\n Loader,\n KeyLoaderContext,\n PlaylistLevelType,\n} from '../types/loader';\nimport { LoadError } from './fragment-loader';\nimport type { HlsConfig } from '../config';\nimport type { Fragment } from '../loader/fragment';\nimport type { ComponentAPI } from '../types/component-api';\nimport type { KeyLoadedData } from '../types/events';\nimport type { LevelKey } from './level-key';\nimport type EMEController from '../controller/eme-controller';\nimport type { MediaKeySessionContext } from '../controller/eme-controller';\nimport type { KeySystemFormats } from '../utils/mediakeys-helper';\n\nexport interface KeyLoaderInfo {\n decryptdata: LevelKey;\n keyLoadPromise: Promise<KeyLoadedData> | null;\n loader: Loader<KeyLoaderContext> | null;\n mediaKeySessionContext: MediaKeySessionContext | null;\n}\nexport default class KeyLoader implements ComponentAPI {\n private readonly config: HlsConfig;\n public keyUriToKeyInfo: { [keyuri: string]: KeyLoaderInfo } = {};\n public emeController: EMEController | null = null;\n\n constructor(config: HlsConfig) {\n this.config = config;\n }\n\n abort(type?: PlaylistLevelType) {\n for (const uri in this.keyUriToKeyInfo) {\n const loader = this.keyUriToKeyInfo[uri].loader;\n if (loader) {\n if (type && type !== loader.context?.frag.type) {\n return;\n }\n loader.abort();\n }\n }\n }\n\n detach() {\n for (const uri in this.keyUriToKeyInfo) {\n const keyInfo = this.keyUriToKeyInfo[uri];\n // Remove cached EME keys on detach\n if (\n keyInfo.mediaKeySessionContext ||\n keyInfo.decryptdata.isCommonEncryption\n ) {\n delete this.keyUriToKeyInfo[uri];\n }\n }\n }\n\n destroy() {\n this.detach();\n for (const uri in this.keyUriToKeyInfo) {\n const loader = this.keyUriToKeyInfo[uri].loader;\n if (loader) {\n loader.destroy();\n }\n }\n this.keyUriToKeyInfo = {};\n }\n\n createKeyLoadError(\n frag: Fragment,\n details: ErrorDetails = ErrorDetails.KEY_LOAD_ERROR,\n error: Error,\n networkDetails?: any,\n response?: { url: string; data: undefined; code: number; text: string },\n ): LoadError {\n return new LoadError({\n type: ErrorTypes.NETWORK_ERROR,\n details,\n fatal: false,\n frag,\n response,\n error,\n networkDetails,\n });\n }\n\n loadClear(\n loadingFrag: Fragment,\n encryptedFragments: Fragment[],\n ): void | Promise<void> {\n if (this.emeController && this.config.emeEnabled) {\n // access key-system with nearest key on start (loaidng frag is unencrypted)\n const { sn, cc } = loadingFrag;\n for (let i = 0; i < encryptedFragments.length; i++) {\n const frag = encryptedFragments[i];\n if (\n cc <= frag.cc &&\n (sn === 'initSegment' || frag.sn === 'initSegment' || sn < frag.sn)\n ) {\n this.emeController\n .selectKeySystemFormat(frag)\n .then((keySystemFormat) => {\n frag.setKeyFormat(keySystemFormat);\n });\n break;\n }\n }\n }\n }\n\n load(frag: Fragment): Promise<KeyLoadedData> {\n if (\n !frag.decryptdata &&\n frag.encrypted &&\n this.emeController &&\n this.config.emeEnabled\n ) {\n // Multiple keys, but none selected, resolve in eme-controller\n return this.emeController\n .selectKeySystemFormat(frag)\n .then((keySystemFormat) => {\n return this.loadInternal(frag, keySystemFormat);\n });\n }\n\n return this.loadInternal(frag);\n }\n\n loadInternal(\n frag: Fragment,\n keySystemFormat?: KeySystemFormats,\n ): Promise<KeyLoadedData> {\n if (keySystemFormat) {\n frag.setKeyFormat(keySystemFormat);\n }\n const decryptdata = frag.decryptdata;\n if (!decryptdata) {\n const error = new Error(\n keySystemFormat\n ? `Expected frag.decryptdata to be defined after setting format ${keySystemFormat}`\n : 'Missing decryption data on fragment in onKeyLoading',\n );\n return Promise.reject(\n this.createKeyLoadError(frag, ErrorDetails.KEY_LOAD_ERROR, error),\n );\n }\n const uri = decryptdata.uri;\n if (!uri) {\n return Promise.reject(\n this.createKeyLoadError(\n frag,\n ErrorDetails.KEY_LOAD_ERROR,\n new Error(`Invalid key URI: \"${uri}\"`),\n ),\n );\n }\n let keyInfo = this.keyUriToKeyInfo[uri];\n\n if (keyInfo?.decryptdata.key) {\n decryptdata.key = keyInfo.decryptdata.key;\n return Promise.resolve({ frag, keyInfo });\n }\n // Return key load promise as long as it does not have a mediakey session with an unusable key status\n if (keyInfo?.keyLoadPromise) {\n switch (keyInfo.mediaKeySessionContext?.keyStatus) {\n case undefined:\n case 'status-pending':\n case 'usable':\n case 'usable-in-future':\n return keyInfo.keyLoadPromise.then((keyLoadedData) => {\n // Return the correct fragment with updated decryptdata key and loaded keyInfo\n decryptdata.key = keyLoadedData.keyInfo.decryptdata.key;\n return { frag, keyInfo };\n });\n }\n // If we have a key session and status and it is not pending or usable, continue\n // This will go back to the eme-controller for expired keys to get a new keyLoadPromise\n }\n\n // Load the key or return the loading promise\n keyInfo = this.keyUriToKeyInfo[uri] = {\n decryptdata,\n keyLoadPromise: null,\n loader: null,\n mediaKeySessionContext: null,\n };\n\n switch (decryptdata.method) {\n case 'ISO-23001-7':\n case 'SAMPLE-AES':\n case 'SAMPLE-AES-CENC':\n case 'SAMPLE-AES-CTR':\n if (decryptdata.keyFormat === 'identity') {\n // loadKeyHTTP handles http(s) and data URLs\n return this.loadKeyHTTP(keyInfo, frag);\n }\n return this.loadKeyEME(keyInfo, frag);\n case 'AES-128':\n return this.loadKeyHTTP(keyInfo, frag);\n default:\n return Promise.reject(\n this.createKeyLoadError(\n frag,\n ErrorDetails.KEY_LOAD_ERROR,\n new Error(\n `Key supplied with unsupported METHOD: \"${decryptdata.method}\"`,\n ),\n ),\n );\n }\n }\n\n loadKeyEME(keyInfo: KeyLoaderInfo, frag: Fragment): Promise<KeyLoadedData> {\n const keyLoadedData: KeyLoadedData = { frag, keyInfo };\n if (this.emeController && this.config.emeEnabled) {\n const keySessionContextPromise =\n this.emeController.loadKey(keyLoadedData);\n if (keySessionContextPromise) {\n return (keyInfo.keyLoadPromise = keySessionContextPromise.then(\n (keySessionContext) => {\n keyInfo.mediaKeySessionContext = keySessionContext;\n return keyLoadedData;\n },\n )).catch((error) => {\n // Remove promise for license renewal or retry\n keyInfo.keyLoadPromise = null;\n throw error;\n });\n }\n }\n return Promise.resolve(keyLoadedData);\n }\n\n loadKeyHTTP(keyInfo: KeyLoaderInfo, frag: Fragment): Promise<KeyLoadedData> {\n const config = this.config;\n const Loader = config.loader;\n const keyLoader = new Loader(config) as Loader<KeyLoaderContext>;\n frag.keyLoader = keyInfo.loader = keyLoader;\n\n return (keyInfo.keyLoadPromise = new Promise((resolve, reject) => {\n const loaderContext: KeyLoaderContext = {\n keyInfo,\n frag,\n responseType: 'arraybuffer',\n url: keyInfo.decryptdata.uri,\n };\n\n // maxRetry is 0 so that instead of retrying the same key on the same variant multiple times,\n // key-loader will trigger an error and rely on stream-controller to handle retry logic.\n // this will also align retry logic with fragment-loader\n const loadPolicy = config.keyLoadPolicy.default;\n const loaderConfig: LoaderConfiguration = {\n loadPolicy,\n timeout: loadPolicy.maxLoadTimeMs,\n maxRetry: 0,\n retryDelay: 0,\n maxRetryDelay: 0,\n };\n\n const loaderCallbacks: LoaderCallbacks<KeyLoaderContext> = {\n onSuccess: (\n response: LoaderResponse,\n stats: LoaderStats,\n context: KeyLoaderContext,\n networkDetails: any,\n ) => {\n const { frag, keyInfo, url: uri } = context;\n if (!frag.decryptdata || keyInfo !== this.keyUriToKeyInfo[uri]) {\n return reject(\n this.createKeyLoadError(\n frag,\n ErrorDetails.KEY_LOAD_ERROR,\n new Error('after key load, decryptdata unset or changed'),\n networkDetails,\n ),\n );\n }\n\n keyInfo.decryptdata.key = frag.decryptdata.key = new Uint8Array(\n response.data as ArrayBuffer,\n );\n\n // detach fragment key loader on load success\n frag.keyLoader = null;\n keyInfo.loader = null;\n resolve({ frag, keyInfo });\n },\n\n onError: (\n response: { code: number; text: string },\n context: KeyLoaderContext,\n networkDetails: any,\n stats: LoaderStats,\n ) => {\n this.resetLoader(context);\n reject(\n this.createKeyLoadError(\n frag,\n ErrorDetails.KEY_LOAD_ERROR,\n new Error(\n `HTTP Error ${response.code} loading key ${response.text}`,\n ),\n networkDetails,\n { url: loaderContext.url, data: undefined, ...response },\n ),\n );\n },\n\n onTimeout: (\n stats: LoaderStats,\n context: KeyLoaderContext,\n networkDetails: any,\n ) => {\n this.resetLoader(context);\n reject(\n this.createKeyLoadError(\n frag,\n ErrorDetails.KEY_LOAD_TIMEOUT,\n new Error('key loading timed out'),\n networkDetails,\n ),\n );\n },\n\n onAbort: (\n stats: LoaderStats,\n context: KeyLoaderContext,\n networkDetails: any,\n ) => {\n this.resetLoader(context);\n reject(\n this.createKeyLoadError(\n frag,\n ErrorDetails.INTERNAL_ABORTED,\n new Error('key loading aborted'),\n networkDetails,\n ),\n );\n },\n };\n\n keyLoader.load(loaderContext, loaderConfig, loaderCallbacks);\n }));\n }\n\n private resetLoader(context: KeyLoaderContext) {\n const { frag, keyInfo, url: uri } = context;\n const loader = keyInfo.loader;\n if (frag.keyLoader === loader) {\n frag.keyLoader = null;\n keyInfo.loader = null;\n }\n delete this.keyUriToKeyInfo[uri];\n if (loader) {\n loader.destroy();\n }\n }\n}\n","import { getMediaSource } from './utils/mediasource-helper';\nimport { mimeTypeForCodec } from './utils/codecs';\nimport type { ExtendedSourceBuffer } from './types/buffer';\n\nfunction getSourceBuffer(): typeof self.SourceBuffer {\n return self.SourceBuffer || (self as any).WebKitSourceBuffer;\n}\n\nexport function isMSESupported(): boolean {\n const mediaSource = getMediaSource();\n if (!mediaSource) {\n return false;\n }\n\n // if SourceBuffer is exposed ensure its API is valid\n // Older browsers do not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\n const sourceBuffer = getSourceBuffer();\n return (\n !sourceBuffer ||\n (sourceBuffer.prototype &&\n typeof sourceBuffer.prototype.appendBuffer === 'function' &&\n typeof sourceBuffer.prototype.remove === 'function')\n );\n}\n\nexport function isSupported(): boolean {\n if (!isMSESupported()) {\n return false;\n }\n\n const mediaSource = getMediaSource();\n return (\n typeof mediaSource?.isTypeSupported === 'function' &&\n (['avc1.42E01E,mp4a.40.2', 'av01.0.01M.08', 'vp09.00.50.08'].some(\n (codecsForVideoContainer) =>\n mediaSource.isTypeSupported(\n mimeTypeForCodec(codecsForVideoContainer, 'video'),\n ),\n ) ||\n ['mp4a.40.2', 'fLaC'].some((codecForAudioContainer) =>\n mediaSource.isTypeSupported(\n mimeTypeForCodec(codecForAudioContainer, 'audio'),\n ),\n ))\n );\n}\n\nexport function changeTypeSupported(): boolean {\n const sourceBuffer = getSourceBuffer();\n return (\n typeof (sourceBuffer?.prototype as ExtendedSourceBuffer)?.changeType ===\n 'function'\n );\n}\n","import type { BufferInfo } from '../utils/buffer-helper';\nimport { BufferHelper } from '../utils/buffer-helper';\nimport { ErrorTypes, ErrorDetails } from '../errors';\nimport { PlaylistLevelType } from '../types/loader';\nimport { Events } from '../events';\nimport { logger } from '../utils/logger';\nimport type Hls from '../hls';\nimport type { HlsConfig } from '../config';\nimport type { Fragment } from '../loader/fragment';\nimport type { FragmentTracker } from './fragment-tracker';\n\nexport const STALL_MINIMUM_DURATION_MS = 250;\nexport const MAX_START_GAP_JUMP = 2.0;\nexport const SKIP_BUFFER_HOLE_STEP_SECONDS = 0.1;\nexport const SKIP_BUFFER_RANGE_START = 0.05;\n\nexport default class GapController {\n private config: HlsConfig;\n private media: HTMLMediaElement | null = null;\n private fragmentTracker: FragmentTracker;\n private hls: Hls;\n private nudgeRetry: number = 0;\n private stallReported: boolean = false;\n private stalled: number | null = null;\n private moved: boolean = false;\n private seeking: boolean = false;\n\n constructor(config, media, fragmentTracker, hls) {\n this.config = config;\n this.media = media;\n this.fragmentTracker = fragmentTracker;\n this.hls = hls;\n }\n\n public destroy() {\n this.media = null;\n // @ts-ignore\n this.hls = this.fragmentTracker = null;\n }\n\n /**\n * Checks if the playhead is stuck within a gap, and if so, attempts to free it.\n * A gap is an unbuffered range between two buffered ranges (or the start and the first buffered range).\n *\n * @param lastCurrentTime - Previously read playhead position\n */\n public poll(lastCurrentTime: number, activeFrag: Fragment | null) {\n const { config, media, stalled } = this;\n if (media === null) {\n return;\n }\n const { currentTime, seeking } = media;\n const seeked = this.seeking && !seeking;\n const beginSeek = !this.seeking && seeking;\n\n this.seeking = seeking;\n\n // The playhead is moving, no-op\n if (currentTime !== lastCurrentTime) {\n this.moved = true;\n if (!seeking) {\n this.nudgeRetry = 0;\n }\n if (stalled !== null) {\n // The playhead is now moving, but was previously stalled\n if (this.stallReported) {\n const stalledDuration = self.performance.now() - stalled;\n logger.warn(\n `playback not stuck anymore @${currentTime}, after ${Math.round(\n stalledDuration,\n )}ms`,\n );\n this.stallReported = false;\n }\n this.stalled = null;\n }\n return;\n }\n\n // Clear stalled state when beginning or finishing seeking so that we don't report stalls coming out of a seek\n if (beginSeek || seeked) {\n this.stalled = null;\n return;\n }\n\n // The playhead should not be moving\n if (\n (media.paused && !seeking) ||\n media.ended ||\n media.playbackRate === 0 ||\n !BufferHelper.getBuffered(media).length\n ) {\n this.nudgeRetry = 0;\n return;\n }\n\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const nextStart = bufferInfo.nextStart || 0;\n\n if (seeking) {\n // Waiting for seeking in a buffered range to complete\n const hasEnoughBuffer = bufferInfo.len > MAX_START_GAP_JUMP;\n // Next buffered range is too far ahead to jump to while still seeking\n const noBufferGap =\n !nextStart ||\n (activeFrag && activeFrag.start <= currentTime) ||\n (nextStart - currentTime > MAX_START_GAP_JUMP &&\n !this.fragmentTracker.getPartialFragment(currentTime));\n if (hasEnoughBuffer || noBufferGap) {\n return;\n }\n // Reset moved state when seeking to a point in or before a gap\n this.moved = false;\n }\n\n // Skip start gaps if we haven't played, but the last poll detected the start of a stall\n // The addition poll gives the browser a chance to jump the gap for us\n if (!this.moved && this.stalled !== null) {\n // There is no playable buffer (seeked, waiting for buffer)\n const isBuffered = bufferInfo.len > 0;\n if (!isBuffered && !nextStart) {\n return;\n }\n // Jump start gaps within jump threshold\n const startJump =\n Math.max(nextStart, bufferInfo.start || 0) - currentTime;\n\n // When joining a live stream with audio tracks, account for live playlist window sliding by allowing\n // a larger jump over start gaps caused by the audio-stream-controller buffering a start fragment\n // that begins over 1 target duration after the video start position.\n const level = this.hls.levels\n ? this.hls.levels[this.hls.currentLevel]\n : null;\n const isLive = level?.details?.live;\n const maxStartGapJump = isLive\n ? level!.details!.targetduration * 2\n : MAX_START_GAP_JUMP;\n const partialOrGap = this.fragmentTracker.getPartialFragment(currentTime);\n if (startJump > 0 && (startJump <= maxStartGapJump || partialOrGap)) {\n if (!media.paused) {\n this._trySkipBufferHole(partialOrGap);\n }\n return;\n }\n }\n\n // Start tracking stall time\n const tnow = self.performance.now();\n if (stalled === null) {\n this.stalled = tnow;\n return;\n }\n\n const stalledDuration = tnow - stalled;\n if (!seeking && stalledDuration >= STALL_MINIMUM_DURATION_MS) {\n // Report stalling after trying to fix\n this._reportStall(bufferInfo);\n if (!this.media) {\n return;\n }\n }\n\n const bufferedWithHoles = BufferHelper.bufferInfo(\n media,\n currentTime,\n config.maxBufferHole,\n );\n this._tryFixBufferStall(bufferedWithHoles, stalledDuration);\n }\n\n /**\n * Detects and attempts to fix known buffer stalling issues.\n * @param bufferInfo - The properties of the current buffer.\n * @param stalledDurationMs - The amount of time Hls.js has been stalling for.\n * @private\n */\n private _tryFixBufferStall(\n bufferInfo: BufferInfo,\n stalledDurationMs: number,\n ) {\n const { config, fragmentTracker, media } = this;\n if (media === null) {\n return;\n }\n const currentTime = media.currentTime;\n\n const partial = fragmentTracker.getPartialFragment(currentTime);\n if (partial) {\n // Try to skip over the buffer hole caused by a partial fragment\n // This method isn't limited by the size of the gap between buffered ranges\n const targetTime = this._trySkipBufferHole(partial);\n // we return here in this case, meaning\n // the branch below only executes when we haven't seeked to a new position\n if (targetTime || !this.media) {\n return;\n }\n }\n\n // if we haven't had to skip over a buffer hole of a partial fragment\n // we may just have to \"nudge\" the playlist as the browser decoding/rendering engine\n // needs to cross some sort of threshold covering all source-buffers content\n // to start playing properly.\n if (\n (bufferInfo.len > config.maxBufferHole ||\n (bufferInfo.nextStart &&\n bufferInfo.nextStart - currentTime < config.maxBufferHole)) &&\n stalledDurationMs > config.highBufferWatchdogPeriod * 1000\n ) {\n logger.warn('Trying to nudge playhead over buffer-hole');\n // Try to nudge currentTime over a buffer hole if we've been stalling for the configured amount of seconds\n // We only try to jump the hole if it's under the configured size\n // Reset stalled so to rearm watchdog timer\n this.stalled = null;\n this._tryNudgeBuffer();\n }\n }\n\n /**\n * Triggers a BUFFER_STALLED_ERROR event, but only once per stall period.\n * @param bufferLen - The playhead distance from the end of the current buffer segment.\n * @private\n */\n private _reportStall(bufferInfo: BufferInfo) {\n const { hls, media, stallReported } = this;\n if (!stallReported && media) {\n // Report stalled error once\n this.stallReported = true;\n const error = new Error(\n `Playback stalling at @${\n media.currentTime\n } due to low buffer (${JSON.stringify(bufferInfo)})`,\n );\n logger.warn(error.message);\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_STALLED_ERROR,\n fatal: false,\n error,\n buffer: bufferInfo.len,\n });\n }\n }\n\n /**\n * Attempts to fix buffer stalls by jumping over known gaps caused by partial fragments\n * @param partial - The partial fragment found at the current time (where playback is stalling).\n * @private\n */\n private _trySkipBufferHole(partial: Fragment | null): number {\n const { config, hls, media } = this;\n if (media === null) {\n return 0;\n }\n\n // Check if currentTime is between unbuffered regions of partial fragments\n const currentTime = media.currentTime;\n const bufferInfo = BufferHelper.bufferInfo(media, currentTime, 0);\n const startTime =\n currentTime < bufferInfo.start ? bufferInfo.start : bufferInfo.nextStart;\n if (startTime) {\n const bufferStarved = bufferInfo.len <= config.maxBufferHole;\n const waiting =\n bufferInfo.len > 0 && bufferInfo.len < 1 && media.readyState < 3;\n const gapLength = startTime - currentTime;\n if (gapLength > 0 && (bufferStarved || waiting)) {\n // Only allow large gaps to be skipped if it is a start gap, or all fragments in skip range are partial\n if (gapLength > config.maxBufferHole) {\n const { fragmentTracker } = this;\n let startGap = false;\n if (currentTime === 0) {\n const startFrag = fragmentTracker.getAppendedFrag(\n 0,\n PlaylistLevelType.MAIN,\n );\n if (startFrag && startTime < startFrag.end) {\n startGap = true;\n }\n }\n if (!startGap) {\n const startProvisioned =\n partial ||\n fragmentTracker.getAppendedFrag(\n currentTime,\n PlaylistLevelType.MAIN,\n );\n if (startProvisioned) {\n let moreToLoad = false;\n let pos = startProvisioned.end;\n while (pos < startTime) {\n const provisioned = fragmentTracker.getPartialFragment(pos);\n if (provisioned) {\n pos += provisioned.duration;\n } else {\n moreToLoad = true;\n break;\n }\n }\n if (moreToLoad) {\n return 0;\n }\n }\n }\n }\n const targetTime = Math.max(\n startTime + SKIP_BUFFER_RANGE_START,\n currentTime + SKIP_BUFFER_HOLE_STEP_SECONDS,\n );\n logger.warn(\n `skipping hole, adjusting currentTime from ${currentTime} to ${targetTime}`,\n );\n this.moved = true;\n this.stalled = null;\n media.currentTime = targetTime;\n if (partial && !partial.gap) {\n const error = new Error(\n `fragment loaded with buffer holes, seeking from ${currentTime} to ${targetTime}`,\n );\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_SEEK_OVER_HOLE,\n fatal: false,\n error,\n reason: error.message,\n frag: partial,\n });\n }\n return targetTime;\n }\n }\n return 0;\n }\n\n /**\n * Attempts to fix buffer stalls by advancing the mediaElement's current time by a small amount.\n * @private\n */\n private _tryNudgeBuffer() {\n const { config, hls, media, nudgeRetry } = this;\n if (media === null) {\n return;\n }\n const currentTime = media.currentTime;\n this.nudgeRetry++;\n\n if (nudgeRetry < config.nudgeMaxRetry) {\n const targetTime = currentTime + (nudgeRetry + 1) * config.nudgeOffset;\n // playback stalled in buffered area ... let's nudge currentTime to try to overcome this\n const error = new Error(\n `Nudging 'currentTime' from ${currentTime} to ${targetTime}`,\n );\n logger.warn(error.message);\n media.currentTime = targetTime;\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_NUDGE_ON_STALL,\n error,\n fatal: false,\n });\n } else {\n const error = new Error(\n `Playhead still not moving while enough data buffered @${currentTime} after ${config.nudgeMaxRetry} nudges`,\n );\n logger.error(error.message);\n hls.trigger(Events.ERROR, {\n type: ErrorTypes.MEDIA_ERROR,\n details: ErrorDetails.BUFFER_STALLED_ERROR,\n error,\n fatal: true,\n });\n }\n }\n}\n","import BaseStreamController, { State } from './base-stream-controller';\nimport { changeTypeSupported } from '../is-supported';\nimport { Events } from '../events';\nimport { BufferHelper, BufferInfo } from '../utils/buffer-helper';\nimport { FragmentState } from './fragment-tracker';\nimport { PlaylistContextType, PlaylistLevelType } from '../types/loader';\nimport { ElementaryStreamTypes, Fragment } from '../loader/fragment';\nimport TransmuxerInterface from '../demux/transmuxer-interface';\nimport { ChunkMetadata } from '../types/transmuxer';\nimport GapController, { MAX_START_GAP_JUMP } from './gap-controller';\nimport { ErrorDetails } from '../errors';\nimport type { NetworkComponentAPI } from '../types/component-api';\nimport type Hls from '../hls';\nimport type { Level } from '../types/level';\nimport type { LevelDetails } from '../loader/level-details';\nimport type { FragmentTracker } from './fragment-tracker';\nimport type KeyLoader from '../loader/key-loader';\nimport type { TransmuxerResult } from '../types/transmuxer';\nimport type { TrackSet } from '../types/track';\nimport type { SourceBufferName } from '../types/buffer';\nimport type {\n AudioTrackSwitchedData,\n AudioTrackSwitchingData,\n BufferCreatedData,\n BufferEOSData,\n BufferFlushedData,\n ErrorData,\n FragBufferedData,\n FragLoadedData,\n FragParsingMetadataData,\n FragParsingUserdataData,\n LevelLoadedData,\n LevelLoadingData,\n LevelsUpdatedData,\n ManifestParsedData,\n MediaAttachedData,\n} from '../types/events';\n\nconst TICK_INTERVAL = 100; // how often to tick in ms\n\nexport default class StreamController\n extends BaseStreamController\n implements NetworkComponentAPI\n{\n private audioCodecSwap: boolean = false;\n private gapController: GapController | null = null;\n private level: number = -1;\n private _forceStartLoad: boolean = false;\n private altAudio: boolean = false;\n private audioOnly: boolean = false;\n private fragPlaying: Fragment | null = null;\n private onvplaying: EventListener | null = null;\n private onvseeked: EventListener | null = null;\n private fragLastKbps: number = 0;\n private couldBacktrack: boolean = false;\n private backtrackFragment: Fragment | null = null;\n private audioCodecSwitch: boolean = false;\n private videoBuffer: any | null = null;\n\n constructor(\n hls: Hls,\n fragmentTracker: FragmentTracker,\n keyLoader: KeyLoader,\n ) {\n super(\n hls,\n fragmentTracker,\n keyLoader,\n '[stream-controller]',\n PlaylistLevelType.MAIN,\n );\n this._registerListeners();\n }\n\n private _registerListeners() {\n const { hls } = this;\n hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.on(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.on(Events.LEVEL_LOADING, this.onLevelLoading, this);\n hls.on(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.on(\n Events.FRAG_LOAD_EMERGENCY_ABORTED,\n this.onFragLoadEmergencyAborted,\n this,\n );\n hls.on(Events.ERROR, this.onError, this);\n hls.on(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.on(Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.on(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.on(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.on(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.on(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n protected _unregisterListeners() {\n const { hls } = this;\n hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);\n hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);\n hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);\n hls.off(Events.MANIFEST_PARSED, this.onManifestParsed, this);\n hls.off(Events.LEVEL_LOADED, this.onLevelLoaded, this);\n hls.off(\n Events.FRAG_LOAD_EMERGENCY_ABORTED,\n this.onFragLoadEmergencyAborted,\n this,\n );\n hls.off(Events.ERROR, this.onError, this);\n hls.off(Events.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this);\n hls.off(Events.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this);\n hls.off(Events.BUFFER_CREATED, this.onBufferCreated, this);\n hls.off(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);\n hls.off(Events.LEVELS_UPDATED, this.onLevelsUpdated, this);\n hls.off(Events.FRAG_BUFFERED, this.onFragBuffered, this);\n }\n\n protected onHandlerDestroying() {\n this._unregisterListeners();\n super.onHandlerDestroying();\n }\n\n public startLoad(startPosition: number): void {\n if (this.levels) {\n const { lastCurrentTime, hls } = this;\n this.stopLoad();\n this.setInterval(TICK_INTERVAL);\n this.level = -1;\n if (!this.startFragRequested) {\n // determine load level\n let startLevel = hls.startLevel;\n if (startLevel === -1) {\n if (hls.config.testBandwidth && this.levels.length > 1) {\n // -1 : guess start Level by doing a bitrate test by loading first fragment of lowest quality level\n startLevel = 0;\n this.bitrateTest = true;\n } else {\n startLevel = hls.firstAutoLevel;\n }\n }\n // set new level to playlist loader : this will trigger start level load\n // hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded\n hls.nextLoadLevel = startLevel;\n this.level = hls.loadLevel;\n this.loadedmetadata = false;\n }\n // if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime\n if (lastCurrentTime > 0 && startPosition === -1) {\n this.log(\n `Override startPosition with lastCurrentTime @${lastCurrentTime.toFixed(\n 3,\n )}`,\n );\n startPosition = lastCurrentTime;\n }\n this.state = State.IDLE;\n this.nextLoadPosition =\n this.startPosition =\n this.lastCurrentTime =\n startPosition;\n this.tick();\n } else {\n this._forceStartLoad = true;\n this.state = State.STOPPED;\n }\n }\n\n public stopLoad() {\n this._forceStartLoad = false;\n super.stopLoad();\n }\n\n protected doTick() {\n switch (this.state) {\n case State.WAITING_LEVEL: {\n const { levels, level } = this;\n const currentLevel = levels?.[level];\n const details = currentLevel?.details;\n if (\n details &&\n (!details.live || this.levelLastLoaded === currentLevel)\n ) {\n if (this.waitForCdnTuneIn(details)) {\n break;\n }\n this.state = State.IDLE;\n break;\n } else if (this.hls.nextLoadLevel !== this.level) {\n this.state = State.IDLE;\n break;\n }\n break;\n }\n case State.FRAG_LOADING_WAITING_RETRY:\n {\n const now = self.performance.now();\n const retryDate = this.retryDate;\n // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n if (!retryDate || now >= retryDate || this.media?.seeking) {\n const { levels, level } = this;\n const currentLevel = levels?.[level];\n this.resetStartWhenNotLoaded(currentLevel || null);\n this.state = State.IDLE;\n }\n }\n break;\n default:\n break;\n }\n if (this.state === State.IDLE) {\n this.doTickIdle();\n }\n this.onTickEnd();\n }\n\n protected onTickEnd() {\n super.onTickEnd();\n this.checkBuffer();\n this.checkFragmentChanged();\n }\n\n private doTickIdle() {\n const { hls, levelLastLoaded, levels, media } = this;\n\n // if start level not parsed yet OR\n // if video not attached AND start fragment already requested OR start frag prefetch not enabled\n // exit loop, as we either need more info (level not parsed) or we need media to be attached to load new fragment\n if (\n levelLastLoaded === null ||\n (!media && (this.startFragRequested || !hls.config.startFragPrefetch))\n ) {\n return;\n }\n\n // If the \"main\" level is audio-only but we are loading an alternate track in the same group, do not load anything\n if (this.altAudio && this.audioOnly) {\n return;\n }\n\n const level = this.buffering ? hls.nextLoadLevel : hls.loadLevel;\n if (!levels?.[level]) {\n return;\n }\n\n const levelInfo = levels[level];\n\n // if buffer length is less than maxBufLen try to load a new fragment\n\n const bufferInfo = this.getMainFwdBufferInfo();\n if (bufferInfo === null) {\n return;\n }\n\n const lastDetails = this.getLevelDetails();\n if (lastDetails && this._streamEnded(bufferInfo, lastDetails)) {\n const data: BufferEOSData = {};\n if (this.altAudio) {\n data.type = 'video';\n }\n\n this.hls.trigger(Events.BUFFER_EOS, data);\n this.state = State.ENDED;\n return;\n }\n if (!this.buffering) {\n return;\n }\n\n // set next load level : this will trigger a playlist load if needed\n if (hls.loadLevel !== level && hls.manualLevel === -1) {\n this.log(`Adapting to level ${level} from level ${this.level}`);\n }\n this.level = hls.nextLoadLevel = level;\n\n const levelDetails = levelInfo.details;\n // if level info not retrieved yet, switch state and wait for level retrieval\n // if live playlist, ensure that new playlist has been refreshed to avoid loading/try to load\n // a useless and outdated fragment (that might even introduce load error if it is already out of the live playlist)\n if (\n !levelDetails ||\n this.state === State.WAITING_LEVEL ||\n (levelDetails.live && this.levelLastLoaded !== levelInfo)\n ) {\n this.level = level;\n this.state = State.WAITING_LEVEL;\n return;\n }\n\n const bufferLen = bufferInfo.len;\n\n // compute max Buffer Length that we could get from this load level, based on level bitrate. don't buffer more than 60 MB and more than 30s\n const maxBufLen = this.getMaxBufferLength(levelInfo.maxBitrate);\n\n // Stay idle if we are still with buffer margins\n if (bufferLen >= maxBufLen) {\n return;\n }\n\n if (\n this.backtrackFragment &&\n this.backtrackFragment.start > bufferInfo.end\n ) {\n this.backtrackFragment = null;\n }\n const targetBufferTime = this.backtrackFragment\n ? this.backtrackFragment.start\n : bufferInfo.end;\n let frag = this.getNextFragment(targetBufferTime, levelDetails);\n // Avoid backtracking by loading an earlier segment in streams with segments that do not start with a key frame (flagged by `couldBacktrack`)\n if (\n this.couldBacktrack &&\n !this.fragPrevious &&\n frag &&\n frag.sn !== 'initSegment' &&\n this.fragmentTracker.getState(frag) !== FragmentState.OK\n ) {\n const backtrackSn = (this.backtrackFragment ?? frag).sn as number;\n const fragIdx = backtrackSn - levelDetails.startSN;\n const backtrackFrag = levelDetails.fragments[fragIdx - 1];\n if (backtrackFrag && frag.cc === backtrackFrag.cc) {\n frag = backtrackFrag;\n this.fragmentTracker.removeFragment(backtrackFrag);\n }\n } else if (this.backtrackFragment && bufferInfo.len) {\n this.backtrackFragment = null;\n }\n // Avoid loop loading by using nextLoadPosition set for backtracking and skipping consecutive GAP tags\n if (frag && this.isLoopLoading(frag, targetBufferTime)) {\n const gapStart = frag.gap;\n if (!gapStart) {\n // Cleanup the fragment tracker before trying to find the next unbuffered fragment\n const type =\n this.audioOnly && !this.altAudio\n ? ElementaryStreamTypes.AUDIO\n : ElementaryStreamTypes.VIDEO;\n const mediaBuffer =\n (type === ElementaryStreamTypes.VIDEO\n ? this.videoBuffer\n : this.mediaBuffer) || this.media;\n if (mediaBuffer) {\n this.afterBufferFlushed(mediaBuffer, type, PlaylistLevelType.MAIN);\n }\n }\n frag = this.getNextFragmentLoopLoading(\n frag,\n levelDetails,\n bufferInfo,\n PlaylistLevelType.MAIN,\n maxBufLen,\n );\n }\n if (!frag) {\n return;\n }\n if (frag.initSegment && !frag.initSegment.data && !this.bitrateTest) {\n frag = frag.initSegment;\n }\n\n this.loadFragment(frag, levelInfo, targetBufferTime);\n }\n\n protected loadFragment(\n frag: Fragment,\n level: Level,\n targetBufferTime: number,\n ) {\n // Check if fragment is not loaded\n const fragState = this.fragmentTracker.getState(frag);\n this.fragCurrent = frag;\n if (\n fragState === FragmentState.NOT_LOADED ||\n fragState === FragmentState.PARTIAL\n ) {\n if (frag.sn === 'initSegment') {\n this._loadInitSegment(frag, level);\n } else if (this.bitrateTest) {\n this.log(\n `Fragment ${frag.sn} of level ${frag.level} is being downloaded to test bitrate and will not be buffered`,\n );\n this._loadBitrateTestFrag(frag, level);\n } else {\n this.startFragRequested = true;\n super.loadFragment(frag, level, targetBufferTime);\n }\n } else {\n this.clearTrackerIfNeeded(frag);\n }\n }\n\n private getBufferedFrag(position) {\n return this.fragmentTracker.getBufferedFrag(\n position,\n PlaylistLevelType.MAIN,\n );\n }\n\n private followingBufferedFrag(frag: Fragment | null) {\n if (frag) {\n // try to get range of next fragment (500ms after this range)\n return this.getBufferedFrag(frag.end + 0.5);\n }\n return null;\n }\n\n /*\n on immediate level switch :\n - pause playback if playing\n - cancel any pending load request\n - and trigger a buffer flush\n */\n public immediateLevelSwitch() {\n this.abortCurrentFrag();\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n\n /**\n * try to switch ASAP without breaking video playback:\n * in order to ensure smooth but quick level switching,\n * we need to find the next flushable buffer range\n * we should take into account new segment fetch time\n */\n public nextLevelSwitch() {\n const { levels, media } = this;\n // ensure that media is defined and that metadata are available (to retrieve currentTime)\n if (media?.readyState) {\n let fetchdelay;\n const fragPlayingCurrent = this.getAppendedFrag(media.currentTime);\n if (fragPlayingCurrent && fragPlayingCurrent.start > 1) {\n // flush buffer preceding current fragment (flush until current fragment start offset)\n // minus 1s to avoid video freezing, that could happen if we flush keyframe of current video ...\n this.flushMainBuffer(0, fragPlayingCurrent.start - 1);\n }\n const levelDetails = this.getLevelDetails();\n if (levelDetails?.live) {\n const bufferInfo = this.getMainFwdBufferInfo();\n // Do not flush in live stream with low buffer\n if (!bufferInfo || bufferInfo.len < levelDetails.targetduration * 2) {\n return;\n }\n }\n if (!media.paused && levels) {\n // add a safety delay of 1s\n const nextLevelId = this.hls.nextLoadLevel;\n const nextLevel = levels[nextLevelId];\n const fragLastKbps = this.fragLastKbps;\n if (fragLastKbps && this.fragCurrent) {\n fetchdelay =\n (this.fragCurrent.duration * nextLevel.maxBitrate) /\n (1000 * fragLastKbps) +\n 1;\n } else {\n fetchdelay = 0;\n }\n } else {\n fetchdelay = 0;\n }\n // this.log('fetchdelay:'+fetchdelay);\n // find buffer range that will be reached once new fragment will be fetched\n const bufferedFrag = this.getBufferedFrag(media.currentTime + fetchdelay);\n if (bufferedFrag) {\n // we can flush buffer range following this one without stalling playback\n const nextBufferedFrag = this.followingBufferedFrag(bufferedFrag);\n if (nextBufferedFrag) {\n // if we are here, we can also cancel any loading/demuxing in progress, as they are useless\n this.abortCurrentFrag();\n // start flush position is in next buffered frag. Leave some padding for non-independent segments and smoother playback.\n const maxStart = nextBufferedFrag.maxStartPTS\n ? nextBufferedFrag.maxStartPTS\n : nextBufferedFrag.start;\n const fragDuration = nextBufferedFrag.duration;\n const startPts = Math.max(\n bufferedFrag.end,\n maxStart +\n Math.min(\n Math.max(\n fragDuration - this.config.maxFragLookUpTolerance,\n fragDuration * (this.couldBacktrack ? 0.5 : 0.125),\n ),\n fragDuration * (this.couldBacktrack ? 0.75 : 0.25),\n ),\n );\n this.flushMainBuffer(startPts, Number.POSITIVE_INFINITY);\n }\n }\n }\n }\n\n private abortCurrentFrag() {\n const fragCurrent = this.fragCurrent;\n this.fragCurrent = null;\n this.backtrackFragment = null;\n if (fragCurrent) {\n fragCurrent.abortRequests();\n this.fragmentTracker.removeFragment(fragCurrent);\n }\n switch (this.state) {\n case State.KEY_LOADING:\n case State.FRAG_LOADING:\n case State.FRAG_LOADING_WAITING_RETRY:\n case State.PARSING:\n case State.PARSED:\n this.state = State.IDLE;\n break;\n }\n this.nextLoadPosition = this.getLoadPosition();\n }\n\n protected flushMainBuffer(startOffset: number, endOffset: number) {\n super.flushMainBuffer(\n startOffset,\n endOffset,\n this.altAudio ? 'video' : null,\n );\n }\n\n protected onMediaAttached(\n event: Events.MEDIA_ATTACHED,\n data: MediaAttachedData,\n ) {\n super.onMediaAttached(event, data);\n const media = data.media;\n this.onvplaying = this.onMediaPlaying.bind(this);\n this.onvseeked = this.onMediaSeeked.bind(this);\n media.addEventListener('playing', this.onvplaying as EventListener);\n media.addEventListener('seeked', this.onvseeked as EventListener);\n this.gapController = new GapController(\n this.config,\n media,\n this.fragmentTracker,\n this.hls,\n );\n }\n\n protected onMediaDetaching() {\n const { media } = this;\n if (media && this.onvplaying && this.onvseeked) {\n media.removeEventListener('playing', this.onvplaying);\n media.removeEventListener('seeked', this.onvseeked);\n this.onvplaying = this.onvseeked = null;\n this.videoBuffer = null;\n }\n this.fragPlaying = null;\n if (this.gapController) {\n this.gapController.destroy();\n this.gapController = null;\n }\n super.onMediaDetaching();\n }\n\n private onMediaPlaying() {\n // tick to speed up FRAG_CHANGED triggering\n this.tick();\n }\n\n private onMediaSeeked() {\n const media = this.media;\n const currentTime = media ? media.currentTime : null;\n if (Number.isFinite(currentTime)) {\n this.log(`Media seeked to ${(currentTime as number).toFixed(3)}`);\n }\n\n // If seeked was issued before buffer was appended do not tick immediately\n const bufferInfo = this.getMainFwdBufferInfo();\n if (bufferInfo === null || bufferInfo.len === 0) {\n this.warn(\n `Main forward buffer length on \"seeked\" event ${\n bufferInfo ? bufferInfo.len : 'empty'\n })`,\n );\n return;\n }\n\n // tick to speed up FRAG_CHANGED triggering\n this.tick();\n }\n\n private onManifestLoading() {\n // reset buffer on manifest loading\n this.log('Trigger BUFFER_RESET');\n this.hls.trigger(Events.BUFFER_RESET, undefined);\n this.fragmentTracker.removeAllFragments();\n this.couldBacktrack = false;\n this.startPosition = this.lastCurrentTime = this.fragLastKbps = 0;\n this.levels =\n this.fragPlaying =\n this.backtrackFragment =\n this.levelLastLoaded =\n null;\n this.altAudio = this.audioOnly = this.startFragRequested = false;\n }\n\n private onManifestParsed(\n event: Events.MANIFEST_PARSED,\n data: ManifestParsedData,\n ) {\n // detect if we have different kind of audio codecs used amongst playlists\n let aac = false;\n let heaac = false;\n data.levels.forEach((level) => {\n const codec = level.audioCodec;\n if (codec) {\n aac = aac || codec.indexOf('mp4a.40.2') !== -1;\n heaac = heaac || codec.indexOf('mp4a.40.5') !== -1;\n }\n });\n this.audioCodecSwitch = aac && heaac && !changeTypeSupported();\n if (this.audioCodecSwitch) {\n this.log(\n 'Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC',\n );\n }\n\n this.levels = data.levels;\n this.startFragRequested = false;\n }\n\n private onLevelLoading(event: Events.LEVEL_LOADING, data: LevelLoadingData) {\n const { levels } = this;\n if (!levels || this.state !== State.IDLE) {\n return;\n }\n const level = levels[data.level];\n if (\n !level.details ||\n (level.details.live && this.levelLastLoaded !== level) ||\n this.waitForCdnTuneIn(level.details)\n ) {\n this.state = State.WAITING_LEVEL;\n }\n }\n\n private onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData) {\n const { levels } = this;\n const newLevelId = data.level;\n const newDetails = data.details;\n const duration = newDetails.totalduration;\n\n if (!levels) {\n this.warn(`Levels were reset while loading level ${newLevelId}`);\n return;\n }\n this.log(\n `Level ${newLevelId} loaded [${newDetails.startSN},${newDetails.endSN}]${\n newDetails.lastPartSn\n ? `[part-${newDetails.lastPartSn}-${newDetails.lastPartIndex}]`\n : ''\n }, cc [${newDetails.startCC}, ${newDetails.endCC}] duration:${duration}`,\n );\n\n const curLevel = levels[newLevelId];\n const fragCurrent = this.fragCurrent;\n if (\n fragCurrent &&\n (this.state === State.FRAG_LOADING ||\n this.state === State.FRAG_LOADING_WAITING_RETRY)\n ) {\n if (fragCurrent.level !== data.level && fragCurrent.loader) {\n this.abortCurrentFrag();\n }\n }\n\n let sliding = 0;\n if (newDetails.live || curLevel.details?.live) {\n this.checkLiveUpdate(newDetails);\n if (newDetails.deltaUpdateFailed) {\n return;\n }\n sliding = this.alignPlaylists(\n newDetails,\n curLevel.details,\n this.levelLastLoaded?.details,\n );\n }\n // override level info\n curLevel.details = newDetails;\n this.levelLastLoaded = curLevel;\n\n this.hls.trigger(Events.LEVEL_UPDATED, {\n details: newDetails,\n level: newLevelId,\n });\n\n // only switch back to IDLE state if we were waiting for level to start downloading a new fragment\n if (this.state === State.WAITING_LEVEL) {\n if (this.waitForCdnTuneIn(newDetails)) {\n // Wait for Low-Latency CDN Tune-in\n return;\n }\n this.state = State.IDLE;\n }\n\n if (!this.startFragRequested) {\n this.setStartPosition(newDetails, sliding);\n } else if (newDetails.live) {\n this.synchronizeToLiveEdge(newDetails);\n }\n\n // trigger handler right now\n this.tick();\n }\n\n protected _handleFragmentLoadProgress(data: FragLoadedData) {\n const { frag, part, payload } = data;\n const { levels } = this;\n if (!levels) {\n this.warn(\n `Levels were reset while fragment load was in progress. Fragment ${frag.sn} of level ${frag.level} will not be buffered`,\n );\n return;\n }\n const currentLevel = levels[frag.level];\n const details = currentLevel.details as LevelDetails;\n if (!details) {\n this.warn(\n `Dropping fragment ${frag.sn} of level ${frag.level} after level details were reset`,\n );\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n const videoCodec = currentLevel.videoCodec;\n\n // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n const accurateTimeOffset = details.PTSKnown || !details.live;\n const initSegmentData = frag.initSegment?.data;\n const audioCodec = this._getAudioCodec(currentLevel);\n\n // transmux the MPEG-TS data to ISO-BMFF segments\n // this.log(`Transmuxing ${frag.sn} of [${details.startSN} ,${details.endSN}],level ${frag.level}, cc ${frag.cc}`);\n const transmuxer = (this.transmuxer =\n this.transmuxer ||\n new TransmuxerInterface(\n this.hls,\n PlaylistLevelType.MAIN,\n this._handleTransmuxComplete.bind(this),\n this._handleTransmuxerFlush.bind(this),\n ));\n const partIndex = part ? part.index : -1;\n const partial = partIndex !== -1;\n const chunkMeta = new ChunkMetadata(\n frag.level,\n frag.sn as number,\n frag.stats.chunkCount,\n payload.byteLength,\n partIndex,\n partial,\n );\n const initPTS = this.initPTS[frag.cc];\n\n transmuxer.push(\n payload,\n initSegmentData,\n audioCodec,\n videoCodec,\n frag,\n part,\n details.totalduration,\n accurateTimeOffset,\n chunkMeta,\n initPTS,\n );\n }\n\n private onAudioTrackSwitching(\n event: Events.AUDIO_TRACK_SWITCHING,\n data: AudioTrackSwitchingData,\n ) {\n // if any URL found on new audio track, it is an alternate audio track\n const fromAltAudio = this.altAudio;\n const altAudio = !!data.url;\n // if we switch on main audio, ensure that main fragment scheduling is synced with media.buffered\n // don't do anything if we switch to alt audio: audio stream controller is handling it.\n // we will just have to change buffer scheduling on audioTrackSwitched\n if (!altAudio) {\n if (this.mediaBuffer !== this.media) {\n this.log(\n 'Switching on main audio, use media.buffered to schedule main fragment loading',\n );\n this.mediaBuffer = this.media;\n const fragCurrent = this.fragCurrent;\n // we need to refill audio buffer from main: cancel any frag loading to speed up audio switch\n if (fragCurrent) {\n this.log('Switching to main audio track, cancel main fragment load');\n fragCurrent.abortRequests();\n this.fragmentTracker.removeFragment(fragCurrent);\n }\n // destroy transmuxer to force init segment generation (following audio switch)\n this.resetTransmuxer();\n // switch to IDLE state to load new fragment\n this.resetLoadingState();\n } else if (this.audioOnly) {\n // Reset audio transmuxer so when switching back to main audio we're not still appending where we left off\n this.resetTransmuxer();\n }\n const hls = this.hls;\n // If switching from alt to main audio, flush all audio and trigger track switched\n if (fromAltAudio) {\n hls.trigger(Events.BUFFER_FLUSHING, {\n startOffset: 0,\n endOffset: Number.POSITIVE_INFINITY,\n type: null,\n });\n this.fragmentTracker.removeAllFragments();\n }\n hls.trigger(Events.AUDIO_TRACK_SWITCHED, data);\n }\n }\n\n private onAudioTrackSwitched(\n event: Events.AUDIO_TRACK_SWITCHED,\n data: AudioTrackSwitchedData,\n ) {\n const trackId = data.id;\n const altAudio = !!this.hls.audioTracks[trackId].url;\n if (altAudio) {\n const videoBuffer = this.videoBuffer;\n // if we switched on alternate audio, ensure that main fragment scheduling is synced with video sourcebuffer buffered\n if (videoBuffer && this.mediaBuffer !== videoBuffer) {\n this.log(\n 'Switching on alternate audio, use video.buffered to schedule main fragment loading',\n );\n this.mediaBuffer = videoBuffer;\n }\n }\n this.altAudio = altAudio;\n this.tick();\n }\n\n private onBufferCreated(\n event: Events.BUFFER_CREATED,\n data: BufferCreatedData,\n ) {\n const tracks = data.tracks;\n let mediaTrack;\n let name;\n let alternate = false;\n for (const type in tracks) {\n const track = tracks[type];\n if (track.id === 'main') {\n name = type;\n mediaTrack = track;\n // keep video source buffer reference\n if (type === 'video') {\n const videoTrack = tracks[type];\n if (videoTrack) {\n this.videoBuffer = videoTrack.buffer;\n }\n }\n } else {\n alternate = true;\n }\n }\n if (alternate && mediaTrack) {\n this.log(\n `Alternate track found, use ${name}.buffered to schedule main fragment loading`,\n );\n this.mediaBuffer = mediaTrack.buffer;\n } else {\n this.mediaBuffer = this.media;\n }\n }\n\n private onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData) {\n const { frag, part } = data;\n if (frag && frag.type !== PlaylistLevelType.MAIN) {\n return;\n }\n if (this.fragContextChanged(frag)) {\n // If a level switch was requested while a fragment was buffering, it will emit the FRAG_BUFFERED event upon completion\n // Avoid setting state back to IDLE, since that will interfere with a level switch\n this.warn(\n `Fragment ${frag.sn}${part ? ' p: ' + part.index : ''} of level ${\n frag.level\n } finished buffering, but was aborted. state: ${this.state}`,\n );\n if (this.state === State.PARSED) {\n this.state = State.IDLE;\n }\n return;\n }\n const stats = part ? part.stats : frag.stats;\n this.fragLastKbps = Math.round(\n (8 * stats.total) / (stats.buffering.end - stats.loading.first),\n );\n if (frag.sn !== 'initSegment') {\n this.fragPrevious = frag;\n }\n this.fragBufferedComplete(frag, part);\n }\n\n private onError(event: Events.ERROR, data: ErrorData) {\n if (data.fatal) {\n this.state = State.ERROR;\n return;\n }\n switch (data.details) {\n case ErrorDetails.FRAG_GAP:\n case ErrorDetails.FRAG_PARSING_ERROR:\n case ErrorDetails.FRAG_DECRYPT_ERROR:\n case ErrorDetails.FRAG_LOAD_ERROR:\n case ErrorDetails.FRAG_LOAD_TIMEOUT:\n case ErrorDetails.KEY_LOAD_ERROR:\n case ErrorDetails.KEY_LOAD_TIMEOUT:\n this.onFragmentOrKeyLoadError(PlaylistLevelType.MAIN, data);\n break;\n case ErrorDetails.LEVEL_LOAD_ERROR:\n case ErrorDetails.LEVEL_LOAD_TIMEOUT:\n case ErrorDetails.LEVEL_PARSING_ERROR:\n // in case of non fatal error while loading level, if level controller is not retrying to load level, switch back to IDLE\n if (\n !data.levelRetry &&\n this.state === State.WAITING_LEVEL &&\n data.context?.type === PlaylistContextType.LEVEL\n ) {\n this.state = State.IDLE;\n }\n break;\n case ErrorDetails.BUFFER_APPEND_ERROR:\n case ErrorDetails.BUFFER_FULL_ERROR:\n if (!data.parent || data.parent !== 'main') {\n return;\n }\n if (data.details === ErrorDetails.BUFFER_APPEND_ERROR) {\n this.resetLoadingState();\n return;\n }\n if (this.reduceLengthAndFlushBuffer(data)) {\n this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n }\n break;\n case ErrorDetails.INTERNAL_EXCEPTION:\n this.recoverWorkerError(data);\n break;\n default:\n break;\n }\n }\n\n // Checks the health of the buffer and attempts to resolve playback stalls.\n private checkBuffer() {\n const { media, gapController } = this;\n if (!media || !gapController || !media.readyState) {\n // Exit early if we don't have media or if the media hasn't buffered anything yet (readyState 0)\n return;\n }\n\n if (this.loadedmetadata || !BufferHelper.getBuffered(media).length) {\n // Resolve gaps using the main buffer, whose ranges are the intersections of the A/V sourcebuffers\n const activeFrag = this.state !== State.IDLE ? this.fragCurrent : null;\n gapController.poll(this.lastCurrentTime, activeFrag);\n }\n\n this.lastCurrentTime = media.currentTime;\n }\n\n private onFragLoadEmergencyAborted() {\n this.state = State.IDLE;\n // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n // in that case, reset startFragRequested flag\n if (!this.loadedmetadata) {\n this.startFragRequested = false;\n this.nextLoadPosition = this.startPosition;\n }\n this.tickImmediate();\n }\n\n private onBufferFlushed(\n event: Events.BUFFER_FLUSHED,\n { type }: BufferFlushedData,\n ) {\n if (\n type !== ElementaryStreamTypes.AUDIO ||\n (this.audioOnly && !this.altAudio)\n ) {\n const mediaBuffer =\n (type === ElementaryStreamTypes.VIDEO\n ? this.videoBuffer\n : this.mediaBuffer) || this.media;\n this.afterBufferFlushed(mediaBuffer, type, PlaylistLevelType.MAIN);\n this.tick();\n }\n }\n\n private onLevelsUpdated(\n event: Events.LEVELS_UPDATED,\n data: LevelsUpdatedData,\n ) {\n if (this.level > -1 && this.fragCurrent) {\n this.level = this.fragCurrent.level;\n }\n this.levels = data.levels;\n }\n\n public swapAudioCodec() {\n this.audioCodecSwap = !this.audioCodecSwap;\n }\n\n /**\n * Seeks to the set startPosition if not equal to the mediaElement's current time.\n */\n protected seekToStartPos() {\n const { media } = this;\n if (!media) {\n return;\n }\n const currentTime = media.currentTime;\n let startPosition = this.startPosition;\n // only adjust currentTime if different from startPosition or if startPosition not buffered\n // at that stage, there should be only one buffered range, as we reach that code after first fragment has been buffered\n if (startPosition >= 0 && currentTime < startPosition) {\n if (media.seeking) {\n this.log(\n `could not seek to ${startPosition}, already seeking at ${currentTime}`,\n );\n return;\n }\n const buffered = BufferHelper.getBuffered(media);\n const bufferStart = buffered.length ? buffered.start(0) : 0;\n const delta = bufferStart - startPosition;\n if (\n delta > 0 &&\n (delta < this.config.maxBufferHole ||\n delta < this.config.maxFragLookUpTolerance)\n ) {\n this.log(`adjusting start position by ${delta} to match buffer start`);\n startPosition += delta;\n this.startPosition = startPosition;\n }\n this.log(\n `seek to target start position ${startPosition} from current time ${currentTime}`,\n );\n media.currentTime = startPosition;\n }\n }\n\n private _getAudioCodec(currentLevel) {\n let audioCodec = this.config.defaultAudioCodec || currentLevel.audioCodec;\n if (this.audioCodecSwap && audioCodec) {\n this.log('Swapping audio codec');\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n\n return audioCodec;\n }\n\n private _loadBitrateTestFrag(frag: Fragment, level: Level) {\n frag.bitrateTest = true;\n this._doFragLoad(frag, level).then((data) => {\n const { hls } = this;\n if (!data || this.fragContextChanged(frag)) {\n return;\n }\n level.fragmentError = 0;\n this.state = State.IDLE;\n this.startFragRequested = false;\n this.bitrateTest = false;\n const stats = frag.stats;\n // Bitrate tests fragments are neither parsed nor buffered\n stats.parsing.start =\n stats.parsing.end =\n stats.buffering.start =\n stats.buffering.end =\n self.performance.now();\n hls.trigger(Events.FRAG_LOADED, data as FragLoadedData);\n frag.bitrateTest = false;\n });\n }\n\n private _handleTransmuxComplete(transmuxResult: TransmuxerResult) {\n const id = 'main';\n const { hls } = this;\n const { remuxResult, chunkMeta } = transmuxResult;\n\n const context = this.getCurrentContext(chunkMeta);\n if (!context) {\n this.resetWhenMissingContext(chunkMeta);\n return;\n }\n const { frag, part, level } = context;\n const { video, text, id3, initSegment } = remuxResult;\n const { details } = level;\n // The audio-stream-controller handles audio buffering if Hls.js is playing an alternate audio track\n const audio = this.altAudio ? undefined : remuxResult.audio;\n\n // Check if the current fragment has been aborted. We check this by first seeing if we're still playing the current level.\n // If we are, subsequently check if the currently loading fragment (fragCurrent) has changed.\n if (this.fragContextChanged(frag)) {\n this.fragmentTracker.removeFragment(frag);\n return;\n }\n\n this.state = State.PARSING;\n\n if (initSegment) {\n if (initSegment?.tracks) {\n const mapFragment = frag.initSegment || frag;\n this._bufferInitSegment(\n level,\n initSegment.tracks,\n mapFragment,\n chunkMeta,\n );\n hls.trigger(Events.FRAG_PARSING_INIT_SEGMENT, {\n frag: mapFragment,\n id,\n tracks: initSegment.tracks,\n });\n }\n\n // This would be nice if Number.isFinite acted as a typeguard, but it doesn't. See: https://github.com/Microsoft/TypeScript/issues/10038\n const initPTS = initSegment.initPTS as number;\n const timescale = initSegment.timescale as number;\n if (Number.isFinite(initPTS)) {\n this.initPTS[frag.cc] = { baseTime: initPTS, timescale };\n hls.trigger(Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale });\n }\n }\n\n // Avoid buffering if backtracking this fragment\n if (video && details && frag.sn !== 'initSegment') {\n const prevFrag = details.fragments[frag.sn - 1 - details.startSN];\n const isFirstFragment = frag.sn === details.startSN;\n const isFirstInDiscontinuity = !prevFrag || frag.cc > prevFrag.cc;\n if (remuxResult.independent !== false) {\n const { startPTS, endPTS, startDTS, endDTS } = video;\n if (part) {\n part.elementaryStreams[video.type] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n };\n } else {\n if (\n video.firstKeyFrame &&\n video.independent &&\n chunkMeta.id === 1 &&\n !isFirstInDiscontinuity\n ) {\n this.couldBacktrack = true;\n }\n if (video.dropped && video.independent) {\n // Backtrack if dropped frames create a gap after currentTime\n\n const bufferInfo = this.getMainFwdBufferInfo();\n const targetBufferTime =\n (bufferInfo ? bufferInfo.end : this.getLoadPosition()) +\n this.config.maxBufferHole;\n const startTime = video.firstKeyFramePTS\n ? video.firstKeyFramePTS\n : startPTS;\n if (\n !isFirstFragment &&\n targetBufferTime < startTime - this.config.maxBufferHole &&\n !isFirstInDiscontinuity\n ) {\n this.backtrack(frag);\n return;\n } else if (isFirstInDiscontinuity) {\n // Mark segment with a gap to avoid loop loading\n frag.gap = true;\n }\n // Set video stream start to fragment start so that truncated samples do not distort the timeline, and mark it partial\n frag.setElementaryStreamInfo(\n video.type as ElementaryStreamTypes,\n frag.start,\n endPTS,\n frag.start,\n endDTS,\n true,\n );\n } else if (isFirstFragment && startPTS > MAX_START_GAP_JUMP) {\n // Mark segment with a gap to skip large start gap\n frag.gap = true;\n }\n }\n frag.setElementaryStreamInfo(\n video.type as ElementaryStreamTypes,\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n );\n if (this.backtrackFragment) {\n this.backtrackFragment = frag;\n }\n this.bufferFragmentData(\n video,\n frag,\n part,\n chunkMeta,\n isFirstFragment || isFirstInDiscontinuity,\n );\n } else if (isFirstFragment || isFirstInDiscontinuity) {\n // Mark segment with a gap to avoid loop loading\n frag.gap = true;\n } else {\n this.backtrack(frag);\n return;\n }\n }\n\n if (audio) {\n const { startPTS, endPTS, startDTS, endDTS } = audio;\n if (part) {\n part.elementaryStreams[ElementaryStreamTypes.AUDIO] = {\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n };\n }\n frag.setElementaryStreamInfo(\n ElementaryStreamTypes.AUDIO,\n startPTS,\n endPTS,\n startDTS,\n endDTS,\n );\n this.bufferFragmentData(audio, frag, part, chunkMeta);\n }\n\n if (details && id3?.samples?.length) {\n const emittedID3: FragParsingMetadataData = {\n id,\n frag,\n details,\n samples: id3.samples,\n };\n hls.trigger(Events.FRAG_PARSING_METADATA, emittedID3);\n }\n if (details && text) {\n const emittedText: FragParsingUserdataData = {\n id,\n frag,\n details,\n samples: text.samples,\n };\n hls.trigger(Events.FRAG_PARSING_USERDATA, emittedText);\n }\n }\n\n private _bufferInitSegment(\n currentLevel: Level,\n tracks: TrackSet,\n frag: Fragment,\n chunkMeta: ChunkMetadata,\n ) {\n if (this.state !== State.PARSING) {\n return;\n }\n\n this.audioOnly = !!tracks.audio && !tracks.video;\n\n // if audio track is expected to come from audio stream controller, discard any coming from main\n if (this.altAudio && !this.audioOnly) {\n delete tracks.audio;\n }\n // include levelCodec in audio and video tracks\n const { audio, video, audiovideo } = tracks;\n if (audio) {\n let audioCodec = currentLevel.audioCodec;\n const ua = navigator.userAgent.toLowerCase();\n if (this.audioCodecSwitch) {\n if (audioCodec) {\n if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n audioCodec = 'mp4a.40.2';\n } else {\n audioCodec = 'mp4a.40.5';\n }\n }\n // In the case that AAC and HE-AAC audio codecs are signalled in manifest,\n // force HE-AAC, as it seems that most browsers prefers it.\n // don't force HE-AAC if mono stream, or in Firefox\n const audioMetadata = audio.metadata;\n if (\n audioMetadata &&\n 'channelCount' in audioMetadata &&\n (audioMetadata.channelCount || 1) !== 1 &&\n ua.indexOf('firefox') === -1\n ) {\n audioCodec = 'mp4a.40.5';\n }\n }\n // HE-AAC is broken on Android, always signal audio codec as AAC even if variant manifest states otherwise\n if (\n audioCodec &&\n audioCodec.indexOf('mp4a.40.5') !== -1 &&\n ua.indexOf('android') !== -1 &&\n audio.container !== 'audio/mpeg'\n ) {\n // Exclude mpeg audio\n audioCodec = 'mp4a.40.2';\n this.log(`Android: force audio codec to ${audioCodec}`);\n }\n if (currentLevel.audioCodec && currentLevel.audioCodec !== audioCodec) {\n this.log(\n `Swapping manifest audio codec \"${currentLevel.audioCodec}\" for \"${audioCodec}\"`,\n );\n }\n audio.levelCodec = audioCodec;\n audio.id = 'main';\n this.log(\n `Init audio buffer, container:${\n audio.container\n }, codecs[selected/level/parsed]=[${audioCodec || ''}/${\n currentLevel.audioCodec || ''\n }/${audio.codec}]`,\n );\n }\n if (video) {\n video.levelCodec = currentLevel.videoCodec;\n video.id = 'main';\n this.log(\n `Init video buffer, container:${\n video.container\n }, codecs[level/parsed]=[${currentLevel.videoCodec || ''}/${\n video.codec\n }]`,\n );\n }\n if (audiovideo) {\n this.log(\n `Init audiovideo buffer, container:${audiovideo.container}, codecs[level/parsed]=[${currentLevel.codecs}/${audiovideo.codec}]`,\n );\n }\n this.hls.trigger(Events.BUFFER_CODECS, tracks);\n // loop through tracks that are going to be provided to bufferController\n Object.keys(tracks).forEach((trackName) => {\n const track = tracks[trackName];\n const initSegment = track.initSegment;\n if (initSegment?.byteLength) {\n this.hls.trigger(Events.BUFFER_APPENDING, {\n type: trackName as SourceBufferName,\n data: initSegment,\n frag,\n part: null,\n chunkMeta,\n parent: frag.type,\n });\n }\n });\n // trigger handler right now\n this.tickImmediate();\n }\n\n public getMainFwdBufferInfo(): BufferInfo | null {\n return this.getFwdBufferInfo(\n this.mediaBuffer ? this.mediaBuffer : this.media,\n PlaylistLevelType.MAIN,\n );\n }\n\n private backtrack(frag: Fragment) {\n this.couldBacktrack = true;\n // Causes findFragments to backtrack through fragments to find the keyframe\n this.backtrackFragment = frag;\n this.resetTransmuxer();\n this.flushBufferGap(frag);\n this.fragmentTracker.removeFragment(frag);\n this.fragPrevious = null;\n this.nextLoadPosition = frag.start;\n this.state = State.IDLE;\n }\n\n private checkFragmentChanged() {\n const video = this.media;\n let fragPlayingCurrent: Fragment | null = null;\n if (video && video.readyState > 1 && video.seeking === false) {\n const currentTime = video.currentTime;\n /* if video element is in seeked state, currentTime can only increase.\n (assuming that playback rate is positive ...)\n As sometimes currentTime jumps back to zero after a\n media decode error, check this, to avoid seeking back to\n wrong position after a media decode error\n */\n\n if (BufferHelper.isBuffered(video, currentTime)) {\n fragPlayingCurrent = this.getAppendedFrag(currentTime);\n } else if (BufferHelper.isBuffered(video, currentTime + 0.1)) {\n /* ensure that FRAG_CHANGED event is triggered at startup,\n when first video frame is displayed and playback is paused.\n add a tolerance of 100ms, in case current position is not buffered,\n check if current pos+100ms is buffered and use that buffer range\n for FRAG_CHANGED event reporting */\n fragPlayingCurrent = this.getAppendedFrag(currentTime + 0.1);\n }\n if (fragPlayingCurrent) {\n this.backtrackFragment = null;\n const fragPlaying = this.fragPlaying;\n const fragCurrentLevel = fragPlayingCurrent.level;\n if (\n !fragPlaying ||\n fragPlayingCurrent.sn !== fragPlaying.sn ||\n fragPlaying.level !== fragCurrentLevel\n ) {\n this.fragPlaying = fragPlayingCurrent;\n this.hls.trigger(Events.FRAG_CHANGED, { frag: fragPlayingCurrent });\n if (!fragPlaying || fragPlaying.level !== fragCurrentLevel) {\n this.hls.trigger(Events.LEVEL_SWITCHED, {\n level: fragCurrentLevel,\n });\n }\n }\n }\n }\n }\n\n get nextLevel(): number {\n const frag = this.nextBufferedFrag;\n if (frag) {\n return frag.level;\n }\n return -1;\n }\n\n get currentFrag(): Fragment | null {\n const media = this.media;\n if (media) {\n return this.fragPlaying || this.getAppendedFrag(media.currentTime);\n }\n return null;\n }\n\n get currentProgramDateTime(): Date | null {\n const media = this.media;\n if (media) {\n const currentTime = media.currentTime;\n const frag = this.currentFrag;\n if (\n frag &&\n Number.isFinite(currentTime) &&\n Number.isFinite(frag.programDateTime)\n ) {\n const epocMs =\n (frag.programDateTime as number) + (currentTime - frag.start) * 1000;\n return new Date(epocMs);\n }\n }\n return null;\n }\n\n get currentLevel(): number {\n const frag = this.currentFrag;\n if (frag) {\n return frag.level;\n }\n return -1;\n }\n\n get nextBufferedFrag() {\n const frag = this.currentFrag;\n if (frag) {\n return this.followingBufferedFrag(frag);\n }\n return null;\n }\n\n get forceStartLoad() {\n return this._forceStartLoad;\n }\n}\n","import { buildAbsoluteURL } from 'url-toolkit';\nimport PlaylistLoader from './loader/playlist-loader';\nimport ID3TrackController from './controller/id3-track-controller';\nimport LatencyController from './controller/latency-controller';\nimport LevelController from './controller/level-controller';\nimport { FragmentTracker } from './controller/fragment-tracker';\nimport KeyLoader from './loader/key-loader';\nimport StreamController from './controller/stream-controller';\nimport { isMSESupported, isSupported } from './is-supported';\nimport { getMediaSource } from './utils/mediasource-helper';\nimport { logger, enableLogs } from './utils/logger';\nimport { enableStreamingMode, hlsDefaultConfig, mergeConfig } from './config';\nimport { EventEmitter } from 'eventemitter3';\nimport { Events } from './events';\nimport { ErrorTypes, ErrorDetails } from './errors';\nimport { isHdcpLevel, type HdcpLevel, type Level } from './types/level';\nimport type { HlsEventEmitter, HlsListeners } from './events';\nimport type AudioTrackController from './controller/audio-track-controller';\nimport type AbrController from './controller/abr-controller';\nimport type BufferController from './controller/buffer-controller';\nimport type CapLevelController from './controller/cap-level-controller';\nimport type CMCDController from './controller/cmcd-controller';\nimport type EMEController from './controller/eme-controller';\nimport type SubtitleTrackController from './controller/subtitle-track-controller';\nimport type {\n AbrComponentAPI,\n ComponentAPI,\n NetworkComponentAPI,\n} from './types/component-api';\nimport type {\n AudioSelectionOption,\n MediaPlaylist,\n SubtitleSelectionOption,\n VideoSelectionOption,\n} from './types/media-playlist';\nimport type { HlsConfig } from './config';\nimport type { BufferInfo } from './utils/buffer-helper';\nimport type AudioStreamController from './controller/audio-stream-controller';\nimport type BasePlaylistController from './controller/base-playlist-controller';\nimport type BaseStreamController from './controller/base-stream-controller';\nimport type ContentSteeringController from './controller/content-steering-controller';\nimport type ErrorController from './controller/error-controller';\nimport type FPSController from './controller/fps-controller';\n\n/**\n * The `Hls` class is the core of the HLS.js library used to instantiate player instances.\n * @public\n */\nexport default class Hls implements HlsEventEmitter {\n private static defaultConfig: HlsConfig | undefined;\n\n /**\n * The runtime configuration used by the player. At instantiation this is combination of `hls.userConfig` merged over `Hls.DefaultConfig`.\n */\n public readonly config: HlsConfig;\n\n /**\n * The configuration object provided on player instantiation.\n */\n public readonly userConfig: Partial<HlsConfig>;\n\n private coreComponents: ComponentAPI[];\n private networkControllers: NetworkComponentAPI[];\n private started: boolean = false;\n private _emitter: HlsEventEmitter = new EventEmitter();\n private _autoLevelCapping: number = -1;\n private _maxHdcpLevel: HdcpLevel = null;\n private abrController: AbrComponentAPI;\n private bufferController: BufferController;\n private capLevelController: CapLevelController;\n private latencyController: LatencyController;\n private levelController: LevelController;\n private streamController: StreamController;\n private audioTrackController: AudioTrackController;\n private subtitleTrackController: SubtitleTrackController;\n private emeController: EMEController;\n private cmcdController: CMCDController;\n private _media: HTMLMediaElement | null = null;\n private url: string | null = null;\n private triggeringException?: boolean;\n\n /**\n * Get the video-dev/hls.js package version.\n */\n static get version(): string {\n return __VERSION__;\n }\n\n /**\n * Check if the required MediaSource Extensions are available.\n */\n static isMSESupported(): boolean {\n return isMSESupported();\n }\n\n /**\n * Check if MediaSource Extensions are available and isTypeSupported checks pass for any baseline codecs.\n */\n static isSupported(): boolean {\n return isSupported();\n }\n\n /**\n * Get the MediaSource global used for MSE playback (ManagedMediaSource, MediaSource, or WebKitMediaSource).\n */\n static getMediaSource(): typeof MediaSource | undefined {\n return getMediaSource();\n }\n\n static get Events(): typeof Events {\n return Events;\n }\n\n static get ErrorTypes(): typeof ErrorTypes {\n return ErrorTypes;\n }\n\n static get ErrorDetails(): typeof ErrorDetails {\n return ErrorDetails;\n }\n\n /**\n * Get the default configuration applied to new instances.\n */\n static get DefaultConfig(): HlsConfig {\n if (!Hls.defaultConfig) {\n return hlsDefaultConfig;\n }\n\n return Hls.defaultConfig;\n }\n\n /**\n * Replace the default configuration applied to new instances.\n */\n static set DefaultConfig(defaultConfig: HlsConfig) {\n Hls.defaultConfig = defaultConfig;\n }\n\n /**\n * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.\n * @param userConfig - Configuration options applied over `Hls.DefaultConfig`\n */\n constructor(userConfig: Partial<HlsConfig> = {}) {\n enableLogs(userConfig.debug || false, 'Hls instance');\n const config = (this.config = mergeConfig(Hls.DefaultConfig, userConfig));\n this.userConfig = userConfig;\n\n if (config.progressive) {\n enableStreamingMode(config);\n }\n\n // core controllers and network loaders\n const {\n abrController: ConfigAbrController,\n bufferController: ConfigBufferController,\n capLevelController: ConfigCapLevelController,\n errorController: ConfigErrorController,\n fpsController: ConfigFpsController,\n } = config;\n const errorController = new ConfigErrorController(this);\n const abrController = (this.abrController = new ConfigAbrController(this));\n const bufferController = (this.bufferController =\n new ConfigBufferController(this));\n const capLevelController = (this.capLevelController =\n new ConfigCapLevelController(this));\n\n const fpsController = new ConfigFpsController(this);\n const playListLoader = new PlaylistLoader(this);\n const id3TrackController = new ID3TrackController(this);\n\n const ConfigContentSteeringController = config.contentSteeringController;\n // ConentSteeringController is defined before LevelController to receive Multivariant Playlist events first\n const contentSteering = ConfigContentSteeringController\n ? new ConfigContentSteeringController(this)\n : null;\n const levelController = (this.levelController = new LevelController(\n this,\n contentSteering,\n ));\n // FragmentTracker must be defined before StreamController because the order of event handling is important\n const fragmentTracker = new FragmentTracker(this);\n const keyLoader = new KeyLoader(this.config);\n const streamController = (this.streamController = new StreamController(\n this,\n fragmentTracker,\n keyLoader,\n ));\n\n // Cap level controller uses streamController to flush the buffer\n capLevelController.setStreamController(streamController);\n // fpsController uses streamController to switch when frames are being dropped\n fpsController.setStreamController(streamController);\n\n const networkControllers: NetworkComponentAPI[] = [\n playListLoader,\n levelController,\n streamController,\n ];\n if (contentSteering) {\n networkControllers.splice(1, 0, contentSteering);\n }\n\n this.networkControllers = networkControllers;\n const coreComponents: ComponentAPI[] = [\n abrController,\n bufferController,\n capLevelController,\n fpsController,\n id3TrackController,\n fragmentTracker,\n ];\n\n this.audioTrackController = this.createController(\n config.audioTrackController,\n networkControllers,\n );\n const AudioStreamControllerClass = config.audioStreamController;\n if (AudioStreamControllerClass) {\n networkControllers.push(\n new AudioStreamControllerClass(this, fragmentTracker, keyLoader),\n );\n }\n // subtitleTrackController must be defined before subtitleStreamController because the order of event handling is important\n this.subtitleTrackController = this.createController(\n config.subtitleTrackController,\n networkControllers,\n );\n const SubtitleStreamControllerClass = config.subtitleStreamController;\n if (SubtitleStreamControllerClass) {\n networkControllers.push(\n new SubtitleStreamControllerClass(this, fragmentTracker, keyLoader),\n );\n }\n this.createController(config.timelineController, coreComponents);\n keyLoader.emeController = this.emeController = this.createController(\n config.emeController,\n coreComponents,\n );\n this.cmcdController = this.createController(\n config.cmcdController,\n coreComponents,\n );\n this.latencyController = this.createController(\n LatencyController,\n coreComponents,\n );\n\n this.coreComponents = coreComponents;\n\n // Error controller handles errors before and after all other controllers\n // This listener will be invoked after all other controllers error listeners\n networkControllers.push(errorController);\n const onErrorOut = errorController.onErrorOut;\n if (typeof onErrorOut === 'function') {\n this.on(Events.ERROR, onErrorOut, errorController);\n }\n }\n\n createController(ControllerClass, components) {\n if (ControllerClass) {\n const controllerInstance = new ControllerClass(this);\n if (components) {\n components.push(controllerInstance);\n }\n return controllerInstance;\n }\n return null;\n }\n\n // Delegate the EventEmitter through the public API of Hls.js\n on<E extends keyof HlsListeners, Context = undefined>(\n event: E,\n listener: HlsListeners[E],\n context: Context = this as any,\n ) {\n this._emitter.on(event, listener, context);\n }\n\n once<E extends keyof HlsListeners, Context = undefined>(\n event: E,\n listener: HlsListeners[E],\n context: Context = this as any,\n ) {\n this._emitter.once(event, listener, context);\n }\n\n removeAllListeners<E extends keyof HlsListeners>(event?: E | undefined) {\n this._emitter.removeAllListeners(event);\n }\n\n off<E extends keyof HlsListeners, Context = undefined>(\n event: E,\n listener?: HlsListeners[E] | undefined,\n context: Context = this as any,\n once?: boolean | undefined,\n ) {\n this._emitter.off(event, listener, context, once);\n }\n\n listeners<E extends keyof HlsListeners>(event: E): HlsListeners[E][] {\n return this._emitter.listeners(event);\n }\n\n emit<E extends keyof HlsListeners>(\n event: E,\n name: E,\n eventObject: Parameters<HlsListeners[E]>[1],\n ): boolean {\n return this._emitter.emit(event, name, eventObject);\n }\n\n trigger<E extends keyof HlsListeners>(\n event: E,\n eventObject: Parameters<HlsListeners[E]>[1],\n ): boolean {\n if (this.config.debug) {\n return this.emit(event, event, eventObject);\n } else {\n try {\n return this.emit(event, event, eventObject);\n } catch (error) {\n logger.error(\n 'An internal error happened while handling event ' +\n event +\n '. Error message: \"' +\n error.message +\n '\". Here is a stacktrace:',\n error,\n );\n // Prevent recursion in error event handlers that throw #5497\n if (!this.triggeringException) {\n this.triggeringException = true;\n const fatal = event === Events.ERROR;\n this.trigger(Events.ERROR, {\n type: ErrorTypes.OTHER_ERROR,\n details: ErrorDetails.INTERNAL_EXCEPTION,\n fatal,\n event,\n error,\n });\n this.triggeringException = false;\n }\n }\n }\n return false;\n }\n\n listenerCount<E extends keyof HlsListeners>(event: E): number {\n return this._emitter.listenerCount(event);\n }\n\n /**\n * Dispose of the instance\n */\n destroy() {\n logger.log('destroy');\n this.trigger(Events.DESTROYING, undefined);\n this.detachMedia();\n this.removeAllListeners();\n this._autoLevelCapping = -1;\n this.url = null;\n\n this.networkControllers.forEach((component) => component.destroy());\n this.networkControllers.length = 0;\n\n this.coreComponents.forEach((component) => component.destroy());\n this.coreComponents.length = 0;\n // Remove any references that could be held in config options or callbacks\n const config = this.config;\n config.xhrSetup = config.fetchSetup = undefined;\n // @ts-ignore\n this.userConfig = null;\n }\n\n /**\n * Attaches Hls.js to a media element\n */\n attachMedia(media: HTMLMediaElement) {\n logger.log('attachMedia');\n this._media = media;\n this.trigger(Events.MEDIA_ATTACHING, { media: media });\n }\n\n /**\n * Detach Hls.js from the media\n */\n detachMedia() {\n logger.log('detachMedia');\n this.trigger(Events.MEDIA_DETACHING, undefined);\n this._media = null;\n }\n\n /**\n * Set the source URL. Can be relative or absolute.\n */\n loadSource(url: string) {\n this.stopLoad();\n const media = this.media;\n const loadedSource = this.url;\n const loadingSource = (this.url = buildAbsoluteURL(\n self.location.href,\n url,\n {\n alwaysNormalize: true,\n },\n ));\n this._autoLevelCapping = -1;\n this._maxHdcpLevel = null;\n logger.log(`loadSource:${loadingSource}`);\n if (\n media &&\n loadedSource &&\n (loadedSource !== loadingSource || this.bufferController.hasSourceTypes())\n ) {\n this.detachMedia();\n this.attachMedia(media);\n }\n // when attaching to a source URL, trigger a playlist load\n this.trigger(Events.MANIFEST_LOADING, { url: url });\n }\n\n /**\n * Start loading data from the stream source.\n * Depending on default config, client starts loading automatically when a source is set.\n *\n * @param startPosition - Set the start position to stream from.\n * Defaults to -1 (None: starts from earliest point)\n */\n startLoad(startPosition: number = -1) {\n logger.log(`startLoad(${startPosition})`);\n this.started = true;\n this.resumeBuffering();\n for (let i = 0; i < this.networkControllers.length; i++) {\n this.networkControllers[i].startLoad(startPosition);\n if (!this.started || !this.networkControllers) {\n break;\n }\n }\n }\n\n /**\n * Stop loading of any stream data.\n */\n stopLoad() {\n logger.log('stopLoad');\n this.started = false;\n for (let i = 0; i < this.networkControllers.length; i++) {\n this.networkControllers[i].stopLoad();\n if (this.started || !this.networkControllers) {\n break;\n }\n }\n }\n\n /**\n * Resumes stream controller segment loading after `pauseBuffering` has been called.\n */\n resumeBuffering() {\n logger.log(`resume buffering`);\n this.networkControllers.forEach((controller) => {\n if (controller.resumeBuffering) {\n controller.resumeBuffering();\n }\n });\n }\n\n /**\n * Prevents stream controller from loading new segments until `resumeBuffering` is called.\n * This allows for media buffering to be paused without interupting playlist loading.\n */\n pauseBuffering() {\n logger.log(`pause buffering`);\n this.networkControllers.forEach((controller) => {\n if (controller.pauseBuffering) {\n controller.pauseBuffering();\n }\n });\n }\n\n /**\n * Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)\n */\n swapAudioCodec() {\n logger.log('swapAudioCodec');\n this.streamController.swapAudioCodec();\n }\n\n /**\n * When the media-element fails, this allows to detach and then re-attach it\n * as one call (convenience method).\n *\n * Automatic recovery of media-errors by this process is configurable.\n */\n recoverMediaError() {\n logger.log('recoverMediaError');\n const media = this._media;\n this.detachMedia();\n if (media) {\n this.attachMedia(media);\n }\n }\n\n removeLevel(levelIndex: number) {\n this.levelController.removeLevel(levelIndex);\n }\n\n /**\n * @returns an array of levels (variants) sorted by HDCP-LEVEL, RESOLUTION (height), FRAME-RATE, CODECS, VIDEO-RANGE, and BANDWIDTH\n */\n get levels(): Level[] {\n const levels = this.levelController.levels;\n return levels ? levels : [];\n }\n\n /**\n * Index of quality level (variant) currently played\n */\n get currentLevel(): number {\n return this.streamController.currentLevel;\n }\n\n /**\n * Set quality level index immediately. This will flush the current buffer to replace the quality asap. That means playback will interrupt at least shortly to re-buffer and re-sync eventually. Set to -1 for automatic level selection.\n */\n set currentLevel(newLevel: number) {\n logger.log(`set currentLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n this.streamController.immediateLevelSwitch();\n }\n\n /**\n * Index of next quality level loaded as scheduled by stream controller.\n */\n get nextLevel(): number {\n return this.streamController.nextLevel;\n }\n\n /**\n * Set quality level index for next loaded data.\n * This will switch the video quality asap, without interrupting playback.\n * May abort current loading of data, and flush parts of buffer (outside currently played fragment region).\n * @param newLevel - Pass -1 for automatic level selection\n */\n set nextLevel(newLevel: number) {\n logger.log(`set nextLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n this.streamController.nextLevelSwitch();\n }\n\n /**\n * Return the quality level of the currently or last (of none is loaded currently) segment\n */\n get loadLevel(): number {\n return this.levelController.level;\n }\n\n /**\n * Set quality level index for next loaded data in a conservative way.\n * This will switch the quality without flushing, but interrupt current loading.\n * Thus the moment when the quality switch will appear in effect will only be after the already existing buffer.\n * @param newLevel - Pass -1 for automatic level selection\n */\n set loadLevel(newLevel: number) {\n logger.log(`set loadLevel:${newLevel}`);\n this.levelController.manualLevel = newLevel;\n }\n\n /**\n * get next quality level loaded\n */\n get nextLoadLevel(): number {\n return this.levelController.nextLoadLevel;\n }\n\n /**\n * Set quality level of next loaded segment in a fully \"non-destructive\" way.\n * Same as `loadLevel` but will wait for next switch (until current loading is done).\n */\n set nextLoadLevel(level: number) {\n this.levelController.nextLoadLevel = level;\n }\n\n /**\n * Return \"first level\": like a default level, if not set,\n * falls back to index of first level referenced in manifest\n */\n get firstLevel(): number {\n return Math.max(this.levelController.firstLevel, this.minAutoLevel);\n }\n\n /**\n * Sets \"first-level\", see getter.\n */\n set firstLevel(newLevel: number) {\n logger.log(`set firstLevel:${newLevel}`);\n this.levelController.firstLevel = newLevel;\n }\n\n /**\n * Return the desired start level for the first fragment that will be loaded.\n * The default value of -1 indicates automatic start level selection.\n * Setting hls.nextAutoLevel without setting a startLevel will result in\n * the nextAutoLevel value being used for one fragment load.\n */\n get startLevel(): number {\n const startLevel = this.levelController.startLevel;\n if (startLevel === -1 && this.abrController.forcedAutoLevel > -1) {\n return this.abrController.forcedAutoLevel;\n }\n return startLevel;\n }\n\n /**\n * set start level (level of first fragment that will be played back)\n * if not overrided by user, first level appearing in manifest will be used as start level\n * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n * (determined from download of first segment)\n */\n set startLevel(newLevel: number) {\n logger.log(`set startLevel:${newLevel}`);\n // if not in automatic start level detection, ensure startLevel is greater than minAutoLevel\n if (newLevel !== -1) {\n newLevel = Math.max(newLevel, this.minAutoLevel);\n }\n\n this.levelController.startLevel = newLevel;\n }\n\n /**\n * Whether level capping is enabled.\n * Default value is set via `config.capLevelToPlayerSize`.\n */\n get capLevelToPlayerSize(): boolean {\n return this.config.capLevelToPlayerSize;\n }\n\n /**\n * Enables or disables level capping. If disabled after previously enabled, `nextLevelSwitch` will be immediately called.\n */\n set capLevelToPlayerSize(shouldStartCapping: boolean) {\n const newCapLevelToPlayerSize = !!shouldStartCapping;\n\n if (newCapLevelToPlayerSize !== this.config.capLevelToPlayerSize) {\n if (newCapLevelToPlayerSize) {\n this.capLevelController.startCapping(); // If capping occurs, nextLevelSwitch will happen based on size.\n } else {\n this.capLevelController.stopCapping();\n this.autoLevelCapping = -1;\n this.streamController.nextLevelSwitch(); // Now we're uncapped, get the next level asap.\n }\n\n this.config.capLevelToPlayerSize = newCapLevelToPlayerSize;\n }\n }\n\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n */\n get autoLevelCapping(): number {\n return this._autoLevelCapping;\n }\n\n /**\n * Returns the current bandwidth estimate in bits per second, when available. Otherwise, `NaN` is returned.\n */\n get bandwidthEstimate(): number {\n const { bwEstimator } = this.abrController;\n if (!bwEstimator) {\n return NaN;\n }\n return bwEstimator.getEstimate();\n }\n\n set bandwidthEstimate(abrEwmaDefaultEstimate: number) {\n this.abrController.resetEstimator(abrEwmaDefaultEstimate);\n }\n\n /**\n * get time to first byte estimate\n * @type {number}\n */\n get ttfbEstimate(): number {\n const { bwEstimator } = this.abrController;\n if (!bwEstimator) {\n return NaN;\n }\n return bwEstimator.getEstimateTTFB();\n }\n\n /**\n * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n */\n set autoLevelCapping(newLevel: number) {\n if (this._autoLevelCapping !== newLevel) {\n logger.log(`set autoLevelCapping:${newLevel}`);\n this._autoLevelCapping = newLevel;\n this.levelController.checkMaxAutoUpdated();\n }\n }\n\n get maxHdcpLevel(): HdcpLevel {\n return this._maxHdcpLevel;\n }\n\n set maxHdcpLevel(value: HdcpLevel) {\n if (isHdcpLevel(value) && this._maxHdcpLevel !== value) {\n this._maxHdcpLevel = value;\n this.levelController.checkMaxAutoUpdated();\n }\n }\n\n /**\n * True when automatic level selection enabled\n */\n get autoLevelEnabled(): boolean {\n return this.levelController.manualLevel === -1;\n }\n\n /**\n * Level set manually (if any)\n */\n get manualLevel(): number {\n return this.levelController.manualLevel;\n }\n\n /**\n * min level selectable in auto mode according to config.minAutoBitrate\n */\n get minAutoLevel(): number {\n const {\n levels,\n config: { minAutoBitrate },\n } = this;\n if (!levels) return 0;\n\n const len = levels.length;\n for (let i = 0; i < len; i++) {\n if (levels[i].maxBitrate >= minAutoBitrate) {\n return i;\n }\n }\n\n return 0;\n }\n\n /**\n * max level selectable in auto mode according to autoLevelCapping\n */\n get maxAutoLevel(): number {\n const { levels, autoLevelCapping, maxHdcpLevel } = this;\n\n let maxAutoLevel;\n if (autoLevelCapping === -1 && levels?.length) {\n maxAutoLevel = levels.length - 1;\n } else {\n maxAutoLevel = autoLevelCapping;\n }\n\n if (maxHdcpLevel) {\n for (let i = maxAutoLevel; i--; ) {\n const hdcpLevel = levels[i].attrs['HDCP-LEVEL'];\n if (hdcpLevel && hdcpLevel <= maxHdcpLevel) {\n return i;\n }\n }\n }\n\n return maxAutoLevel;\n }\n\n get firstAutoLevel(): number {\n return this.abrController.firstAutoLevel;\n }\n\n /**\n * next automatically selected quality level\n */\n get nextAutoLevel(): number {\n return this.abrController.nextAutoLevel;\n }\n\n /**\n * this setter is used to force next auto level.\n * this is useful to force a switch down in auto mode:\n * in case of load error on level N, hls.js can set nextAutoLevel to N-1 for example)\n * forced value is valid for one fragment. upon successful frag loading at forced level,\n * this value will be resetted to -1 by ABR controller.\n */\n set nextAutoLevel(nextLevel: number) {\n this.abrController.nextAutoLevel = nextLevel;\n }\n\n /**\n * get the datetime value relative to media.currentTime for the active level Program Date Time if present\n */\n public get playingDate(): Date | null {\n return this.streamController.currentProgramDateTime;\n }\n\n public get mainForwardBufferInfo(): BufferInfo | null {\n return this.streamController.getMainFwdBufferInfo();\n }\n\n /**\n * Find and select the best matching audio track, making a level switch when a Group change is necessary.\n * Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.\n */\n public setAudioOption(\n audioOption: MediaPlaylist | AudioSelectionOption | undefined,\n ): MediaPlaylist | null {\n return this.audioTrackController?.setAudioOption(audioOption);\n }\n /**\n * Find and select the best matching subtitle track, making a level switch when a Group change is necessary.\n * Updates `hls.config.subtitlePreference`. Returns the selected track, or null when no matching track is found.\n */\n public setSubtitleOption(\n subtitleOption: MediaPlaylist | SubtitleSelectionOption | undefined,\n ): MediaPlaylist | null {\n this.subtitleTrackController?.setSubtitleOption(subtitleOption);\n return null;\n }\n\n /**\n * Get the complete list of audio tracks across all media groups\n */\n get allAudioTracks(): Array<MediaPlaylist> {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.allAudioTracks : [];\n }\n\n /**\n * Get the list of selectable audio tracks\n */\n get audioTracks(): Array<MediaPlaylist> {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTracks : [];\n }\n\n /**\n * index of the selected audio track (index in audio track lists)\n */\n get audioTrack(): number {\n const audioTrackController = this.audioTrackController;\n return audioTrackController ? audioTrackController.audioTrack : -1;\n }\n\n /**\n * selects an audio track, based on its index in audio track lists\n */\n set audioTrack(audioTrackId: number) {\n const audioTrackController = this.audioTrackController;\n if (audioTrackController) {\n audioTrackController.audioTrack = audioTrackId;\n }\n }\n\n /**\n * get the complete list of subtitle tracks across all media groups\n */\n get allSubtitleTracks(): Array<MediaPlaylist> {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController\n ? subtitleTrackController.allSubtitleTracks\n : [];\n }\n\n /**\n * get alternate subtitle tracks list from playlist\n */\n get subtitleTracks(): Array<MediaPlaylist> {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController\n ? subtitleTrackController.subtitleTracks\n : [];\n }\n\n /**\n * index of the selected subtitle track (index in subtitle track lists)\n */\n get subtitleTrack(): number {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController ? subtitleTrackController.subtitleTrack : -1;\n }\n\n get media() {\n return this._media;\n }\n\n /**\n * select an subtitle track, based on its index in subtitle track lists\n */\n set subtitleTrack(subtitleTrackId: number) {\n const subtitleTrackController = this.subtitleTrackController;\n if (subtitleTrackController) {\n subtitleTrackController.subtitleTrack = subtitleTrackId;\n }\n }\n\n /**\n * Whether subtitle display is enabled or not\n */\n get subtitleDisplay(): boolean {\n const subtitleTrackController = this.subtitleTrackController;\n return subtitleTrackController\n ? subtitleTrackController.subtitleDisplay\n : false;\n }\n\n /**\n * Enable/disable subtitle display rendering\n */\n set subtitleDisplay(value: boolean) {\n const subtitleTrackController = this.subtitleTrackController;\n if (subtitleTrackController) {\n subtitleTrackController.subtitleDisplay = value;\n }\n }\n\n /**\n * get mode for Low-Latency HLS loading\n */\n get lowLatencyMode(): boolean {\n return this.config.lowLatencyMode;\n }\n\n /**\n * Enable/disable Low-Latency HLS part playlist and segment loading, and start live streams at playlist PART-HOLD-BACK rather than HOLD-BACK.\n */\n set lowLatencyMode(mode: boolean) {\n this.config.lowLatencyMode = mode;\n }\n\n /**\n * Position (in seconds) of live sync point (ie edge of live position minus safety delay defined by ```hls.config.liveSyncDuration```)\n * @returns null prior to loading live Playlist\n */\n get liveSyncPosition(): number | null {\n return this.latencyController.liveSyncPosition;\n }\n\n /**\n * Estimated position (in seconds) of live edge (ie edge of live playlist plus time sync playlist advanced)\n * @returns 0 before first playlist is loaded\n */\n get latency(): number {\n return this.latencyController.latency;\n }\n\n /**\n * maximum distance from the edge before the player seeks forward to ```hls.liveSyncPosition```\n * configured using ```liveMaxLatencyDurationCount``` (multiple of target duration) or ```liveMaxLatencyDuration```\n * @returns 0 before first playlist is loaded\n */\n get maxLatency(): number {\n return this.latencyController.maxLatency;\n }\n\n /**\n * target distance from the edge as calculated by the latency controller\n */\n get targetLatency(): number | null {\n return this.latencyController.targetLatency;\n }\n\n /**\n * the rate at which the edge of the current live playlist is advancing or 1 if there is none\n */\n get drift(): number | null {\n return this.latencyController.drift;\n }\n\n /**\n * set to true when startLoad is called before MANIFEST_PARSED event\n */\n get forceStartLoad(): boolean {\n return this.streamController.forceStartLoad;\n }\n}\n\nexport type {\n AudioSelectionOption,\n SubtitleSelectionOption,\n VideoSelectionOption,\n MediaPlaylist,\n ErrorDetails,\n ErrorTypes,\n Events,\n Level,\n HlsListeners,\n HlsEventEmitter,\n HlsConfig,\n BufferInfo,\n HdcpLevel,\n AbrController,\n AudioStreamController,\n AudioTrackController,\n BasePlaylistController,\n BaseStreamController,\n BufferController,\n CapLevelController,\n CMCDController,\n ContentSteeringController,\n EMEController,\n ErrorController,\n FPSController,\n SubtitleTrackController,\n};\nexport type {\n ComponentAPI,\n AbrComponentAPI,\n NetworkComponentAPI,\n} from './types/component-api';\nexport type {\n ABRControllerConfig,\n BufferControllerConfig,\n CapLevelControllerConfig,\n CMCDControllerConfig,\n EMEControllerConfig,\n DRMSystemsConfiguration,\n DRMSystemOptions,\n FPSControllerConfig,\n FragmentLoaderConfig,\n FragmentLoaderConstructor,\n HlsLoadPolicies,\n LevelControllerConfig,\n LoaderConfig,\n LoadPolicy,\n MP4RemuxerConfig,\n PlaylistLoaderConfig,\n PlaylistLoaderConstructor,\n RetryConfig,\n SelectionPreferences,\n StreamControllerConfig,\n LatencyControllerConfig,\n MetadataControllerConfig,\n TimelineControllerConfig,\n TSDemuxerConfig,\n} from './config';\nexport type { MediaKeySessionContext } from './controller/eme-controller';\nexport type { ILogger } from './utils/logger';\nexport type {\n PathwayClone,\n SteeringManifest,\n UriReplacement,\n} from './controller/content-steering-controller';\nexport type { SubtitleStreamController } from './controller/subtitle-stream-controller';\nexport type { TimelineController } from './controller/timeline-controller';\nexport type { CuesInterface } from './utils/cues';\nexport type {\n MediaKeyFunc,\n KeySystems,\n KeySystemFormats,\n} from './utils/mediakeys-helper';\nexport type { DateRange } from './loader/date-range';\nexport type { LoadStats } from './loader/load-stats';\nexport type { LevelKey } from './loader/level-key';\nexport type { LevelDetails } from './loader/level-details';\nexport type { SourceBufferName } from './types/buffer';\nexport type {\n MetadataSample,\n MetadataSchema,\n UserdataSample,\n} from './types/demuxer';\nexport type {\n HlsSkip,\n HlsUrlParameters,\n LevelAttributes,\n LevelParsed,\n VariableMap,\n} from './types/level';\nexport type { MediaDecodingInfo } from './utils/mediacapabilities-helper';\nexport type {\n PlaylistLevelType,\n HlsChunkPerformanceTiming,\n HlsPerformanceTiming,\n HlsProgressivePerformanceTiming,\n PlaylistContextType,\n PlaylistLoaderContext,\n FragmentLoaderContext,\n Loader,\n LoaderStats,\n LoaderContext,\n LoaderResponse,\n LoaderConfiguration,\n LoaderCallbacks,\n LoaderOnProgress,\n LoaderOnAbort,\n LoaderOnError,\n LoaderOnSuccess,\n LoaderOnTimeout,\n} from './types/loader';\nexport type {\n MediaAttributes,\n MediaPlaylistType,\n MainPlaylistType,\n AudioPlaylistType,\n SubtitlePlaylistType,\n} from './types/media-playlist';\nexport type { Track, TrackSet } from './types/track';\nexport type { ChunkMetadata } from './types/transmuxer';\nexport type {\n BaseSegment,\n Fragment,\n Part,\n ElementaryStreams,\n ElementaryStreamTypes,\n ElementaryStreamInfo,\n} from './loader/fragment';\nexport type {\n TrackLoadingData,\n TrackLoadedData,\n AudioTrackLoadedData,\n AudioTracksUpdatedData,\n AudioTrackSwitchedData,\n AudioTrackSwitchingData,\n BackBufferData,\n BufferAppendedData,\n BufferAppendingData,\n BufferCodecsData,\n BufferCreatedData,\n BufferEOSData,\n BufferFlushedData,\n BufferFlushingData,\n CuesParsedData,\n ErrorData,\n FPSDropData,\n FPSDropLevelCappingData,\n FragBufferedData,\n FragChangedData,\n FragDecryptedData,\n FragLoadedData,\n FragLoadEmergencyAbortedData,\n FragLoadingData,\n FragParsedData,\n FragParsingInitSegmentData,\n FragParsingMetadataData,\n FragParsingUserdataData,\n InitPTSFoundData,\n KeyLoadedData,\n KeyLoadingData,\n LevelLoadedData,\n LevelLoadingData,\n LevelPTSUpdatedData,\n LevelsUpdatedData,\n LevelSwitchedData,\n LevelSwitchingData,\n LevelUpdatedData,\n LiveBackBufferData,\n ContentSteeringOptions,\n ManifestLoadedData,\n ManifestLoadingData,\n ManifestParsedData,\n MediaAttachedData,\n MediaAttachingData,\n NonNativeTextTrack,\n NonNativeTextTracksData,\n SteeringManifestLoadedData,\n SubtitleFragProcessedData,\n SubtitleTrackLoadedData,\n SubtitleTracksUpdatedData,\n SubtitleTrackSwitchData,\n} from './types/events';\nexport type {\n NetworkErrorAction,\n ErrorActionFlags,\n IErrorAction,\n} from './controller/error-controller';\nexport type { AttrList } from './utils/attr-list';\n","import React, { useEffect, useRef } from \"react\";\nimport Hls from \"hls.js\";\n\nconst HLSPlayer = ({ src }) => {\n const videoRef = useRef(null);\n\n useEffect(() => {\n if (Hls.isSupported()) {\n const hls = new Hls({\n startLevel: 0, // Start with the lowest quality\n maxBufferLength: 5, // Reduce buffer size for quicker startup\n });\n hls.loadSource(src);\n hls.attachMedia(videoRef.current);\n hls.on(Hls.Events.MANIFEST_PARSED, () => {\n videoRef.current.play();\n });\n }\n }, [src]);\n\n return <video ref={videoRef} controls width=\"100%\" />;\n};\n\nexport default HLSPlayer;\n","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"},\"child\":[]}]})(props);\n};\nexport function FiAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"},\"child\":[]}]})(props);\n};\nexport function FiAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"},\"child\":[]}]})(props);\n};\nexport function FiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"},\"child\":[]}]})(props);\n};\nexport function FiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"},\"child\":[]}]})(props);\n};\nexport function FiAtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"},\"child\":[]}]})(props);\n};\nexport function FiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"},\"child\":[]}]})(props);\n};\nexport function FiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]}]})(props);\n};\nexport function FiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"},\"child\":[]}]})(props);\n};\nexport function FiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]}]})(props);\n};\nexport function FiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"},\"child\":[]}]})(props);\n};\nexport function FiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"},\"child\":[]}]})(props);\n};\nexport function FiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"},\"child\":[]}]})(props);\n};\nexport function FiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"},\"child\":[]}]})(props);\n};\nexport function FiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"},\"child\":[]}]})(props);\n};\nexport function FiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"},\"child\":[]}]})(props);\n};\nexport function FiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"},\"child\":[]}]})(props);\n};\nexport function FiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"},\"child\":[]}]})(props);\n};\nexport function FiChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"},\"child\":[]}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"},\"child\":[]}]})(props);\n};\nexport function FiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"},\"child\":[]}]})(props);\n};\nexport function FiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"},\"child\":[]}]})(props);\n};\nexport function FiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"},\"child\":[]}]})(props);\n};\nexport function FiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"},\"child\":[]}]})(props);\n};\nexport function FiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"},\"child\":[]}]})(props);\n};\nexport function FiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"},\"child\":[]}]})(props);\n};\nexport function FiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"},\"child\":[]}]})(props);\n};\nexport function FiDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDivideCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiDivideSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"},\"child\":[]}]})(props);\n};\nexport function FiDownloadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"},\"child\":[]}]})(props);\n};\nexport function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"},\"child\":[]}]})(props);\n};\nexport function FiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"},\"child\":[]}]})(props);\n};\nexport function FiExternalLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"},\"child\":[]}]})(props);\n};\nexport function FiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"},\"child\":[]}]})(props);\n};\nexport function FiFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"},\"child\":[]}]})(props);\n};\nexport function FiFileMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFilePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"},\"child\":[]}]})(props);\n};\nexport function FiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"},\"child\":[]}]})(props);\n};\nexport function FiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"},\"child\":[]}]})(props);\n};\nexport function FiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"},\"child\":[]}]})(props);\n};\nexport function FiFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"},\"child\":[]}]})(props);\n};\nexport function FiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"},\"child\":[]}]})(props);\n};\nexport function FiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"},\"child\":[]}]})(props);\n};\nexport function FiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"},\"child\":[]}]})(props);\n};\nexport function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"},\"child\":[]}]})(props);\n};\nexport function FiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"},\"child\":[]}]})(props);\n};\nexport function FiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiHexagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]}]})(props);\n};\nexport function FiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"},\"child\":[]}]})(props);\n};\nexport function FiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"},\"child\":[]}]})(props);\n};\nexport function FiInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]}]})(props);\n};\nexport function FiInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"},\"child\":[]}]})(props);\n};\nexport function FiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"},\"child\":[]}]})(props);\n};\nexport function FiLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"},\"child\":[]}]})(props);\n};\nexport function FiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiLifeBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"},\"child\":[]}]})(props);\n};\nexport function FiLink2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"},\"child\":[]}]})(props);\n};\nexport function FiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]}]})(props);\n};\nexport function FiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"},\"child\":[]}]})(props);\n};\nexport function FiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"},\"child\":[]}]})(props);\n};\nexport function FiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"},\"child\":[]}]})(props);\n};\nexport function FiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiMessageCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"},\"child\":[]}]})(props);\n};\nexport function FiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"},\"child\":[]}]})(props);\n};\nexport function FiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"},\"child\":[]}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMoreVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"},\"child\":[]}]})(props);\n};\nexport function FiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"},\"child\":[]}]})(props);\n};\nexport function FiOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]}]})(props);\n};\nexport function FiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"},\"child\":[]}]})(props);\n};\nexport function FiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiPenTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"},\"child\":[]}]})(props);\n};\nexport function FiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"},\"child\":[]}]})(props);\n};\nexport function FiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"},\"child\":[]}]})(props);\n};\nexport function FiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"},\"child\":[]}]})(props);\n};\nexport function FiPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"},\"child\":[]}]})(props);\n};\nexport function FiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"},\"child\":[]}]})(props);\n};\nexport function FiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"},\"child\":[]}]})(props);\n};\nexport function FiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"},\"child\":[]}]})(props);\n};\nexport function FiScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]}]})(props);\n};\nexport function FiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"},\"child\":[]}]})(props);\n};\nexport function FiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"},\"child\":[]}]})(props);\n};\nexport function FiShare2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"},\"child\":[]}]})(props);\n};\nexport function FiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiShieldOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"},\"child\":[]}]})(props);\n};\nexport function FiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiSkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"},\"child\":[]}]})(props);\n};\nexport function FiSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]}]})(props);\n};\nexport function FiSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"},\"child\":[]}]})(props);\n};\nexport function FiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"},\"child\":[]}]})(props);\n};\nexport function FiSunset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"},\"child\":[]}]})(props);\n};\nexport function FiTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"},\"child\":[]}]})(props);\n};\nexport function FiTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"},\"child\":[]}]})(props);\n};\nexport function FiTrash2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]}]})(props);\n};\nexport function FiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FiTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"},\"child\":[]}]})(props);\n};\nexport function FiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\"},\"child\":[]}]})(props);\n};\nexport function FiTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"},\"child\":[]}]})(props);\n};\nexport function FiType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"},\"child\":[]}]})(props);\n};\nexport function FiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"},\"child\":[]}]})(props);\n};\nexport function FiUploadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]}]})(props);\n};\nexport function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"},\"child\":[]}]})(props);\n};\nexport function FiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"},\"child\":[]}]})(props);\n};\nexport function FiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"},\"child\":[]}]})(props);\n};\nexport function FiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiVolume1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolume2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolumeX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]}]})(props);\n};\nexport function FiWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"},\"child\":[]}]})(props);\n};\nexport function FiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"},\"child\":[]}]})(props);\n};\nexport function FiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"},\"child\":[]}]})(props);\n};\nexport function FiZapOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"},\"child\":[]}]})(props);\n};\nexport function FiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\nimport React, { useState, useRef, useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box, Container, Grid, Typography } from \"@mui/material\";\n// import { Fade, Zoom } from \"react-reveal\";\nimport { SiSidequest } from \"react-icons/si\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport LandingBannerImg from \"assets/images/Landing-page-hero-section-image.png\";\nimport LandingBannerImgFallback from \"assets/images/Landing-page-hero-section-image-fallback.png\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\nimport Bg_meta_home from \"assets/images/home/metaverce_bg.png\";\nimport Metaverce_Bg from \"assets/images/home/bg_meta_home.png\";\n// import Landing_1 from \"assets/images/home_2.png\";\n// import Landing_2 from \"assets/images/Frame 31.jpg\";\n// import Landing_3 from \"assets/images/Frame 55.png\";\n// import Landing_4 from \"assets/images/home_5.png\";\nimport imageMobile from \"assets/images/mobile-bg-image.png\";\nimport landingImgTab from \"assets/images/mobile-bg-image-tab.png\";\nimport Loader from \"components/Loader/Loader\";\nimport heroImage2 from \"assets/images/home/hero-image-2.png\";\nimport tokenInfographic from \"assets/images/home/token-infographic.png\";\nimport CurrencyStar from \"assets/images/currency-star-2.png\";\nimport ProBit_logo from \"assets/images/ProBit_Global_Logo_White_RGB.png\";\nimport ProBitTrading from \"assets/images/ProBit_Global_Trading.png\";\nimport giveaway_1 from \"assets/images/giveaway_1.png\";\nimport giveaway_2 from \"assets/images/giveaway_2.png\";\nimport giveaway_3 from \"assets/images/giveaway_3.png\";\nimport FSTRCoinFlip from \"assets/images/FSTRCoinFlip.png\";\nimport PlayArrowIcon from \"@mui/icons-material/PlayArrow\";\nimport infographic from \"assets/images/home/infographic.png\";\nimport vrSection from \"assets/images/home/vr-section.png\";\n// import roadmap from \"assets/images/home/roadmap.png\";\nimport team1 from \"assets/images/home/team-1.png\";\nimport team2 from \"assets/images/home/team-2.png\";\nimport team3 from \"assets/images/home/team-3.png\";\nimport advisor1 from \"assets/images/home/advisor1.png\";\nimport advisor2 from \"assets/images/home/advisor2.png\";\nimport advisor3 from \"assets/images/home/advisor3.png\";\nimport advisor4 from \"assets/images/home/advisor4.png\";\nimport list1 from \"assets/images/home/list-1.png\";\nimport list2 from \"assets/images/home/list-2.png\";\nimport list3 from \"assets/images/home/list-3.png\";\nimport genevive from \"assets/images/home/genevive.png\";\nimport genevive2 from \"assets/images/home/genevive2.png\";\nimport slider1 from \"assets/images/home/slider-1.png\";\nimport slider2 from \"assets/images/home/slider-2.png\";\nimport slider3 from \"assets/images/home/slider-3.png\";\nimport slider4 from \"assets/images/home/slider-4.png\";\nimport slider5 from \"assets/images/home/slider-5.png\";\nimport slider6 from \"assets/images/home/slider-6.png\";\nimport slider7 from \"assets/images/home/slider-7.png\";\nimport slider8 from \"assets/images/home/slider-8.png\";\nimport slider9 from \"assets/images/home/slider-9.png\";\nimport slider10 from \"assets/images/home/slider-10.png\";\nimport slider11 from \"assets/images/home/slider-11.png\";\nimport slider12 from \"assets/images/home/slider-12.png\";\nimport slider13 from \"assets/images/home/slider-13.png\";\nimport slider14 from \"assets/images/home/slider-14.png\";\nimport BecomeCreatorImg from \"assets/images/home/become_creator.png\";\nimport leftRightImg from \"assets/images/home/left_right.png\";\nimport newRoadMapImg from \"assets/images/home/roadmap.png\";\n// import \"slick-carousel/slick/slick.css\";\n// import \"slick-carousel/slick/slick-theme.css\";\nimport Slider from \"react-slick\";\nimport { Link, NavLink } from \"react-router-dom\";\nimport ReactHlsPlayer from \"react-hls-player\";\n// import Glider from \"react-glider\";\n// import \"glider-js/glider.min.css\";\nimport \"./styles.css\";\nimport { socialLinks } from \"constant\";\nimport { FaFacebook, FaInstagram, FaMeta, FaXTwitter } from \"react-icons/fa6\";\nimport HLSPlayer from \"components/player/HLSPlayer\";\nimport { FiYoutube } from \"react-icons/fi\";\n/* The above code is a React component called \"Index\". It renders a grid layout with multiple sections,\neach containing an image and some text. The component uses various React and Material-UI components\nand styles to create a visually appealing and responsive layout. The purpose of the code is to\nshowcase different features and aspects of the Fourth Star platform, such as the experience\nmarketplace, collectible assets, ultimate gaming, and connecting with friends in the metaverse. */\n\nconst Index = () => {\n const [bannerImageLoaded, setBannerImageLoaded] = useState(false);\n const [heroImageLoaded, setHeroImageLoaded] = useState(false);\n const heroImageRef = useRef(null);\n const gliderRef = useRef(null);\n const [slideIndex, setSlideIndex] = useState(0);\n const [isMobile, setIsMobile] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n const [isWhiteHovered, setIsWhiteHOvered] = useState(false);\n const [isDiamondHovered, setIsDiamondHovered] = useState(false);\n const { userInfo, userToken } = useSelector((state) => state.auth);\n const [showVideoModal, setShowVideoModal] = useState(false);\n const playerRef = useRef(null);\n const [sliderData] = useState([\n { label: \"Exquisite Elegance: Luxury Apartment Living\", img: slider1 },\n { label: \"Ships with Integrated Entertainment Suites\", img: slider2 },\n { label: \"Modern and Stylish Interior\", img: slider3 },\n { label: \"Game On: Virtual Adventures Await!\", img: slider4 },\n { label: \"AI Companions: Your Virtual Allies\", img: slider5 },\n {\n label: \"Immersive Content: Dive into Unforgettable Events\",\n img: slider6,\n },\n { label: \"Invite Friends, Share and Enjoy Together\", img: slider7 },\n {\n label: \"Discover Your Unique Style in a Diverse Collection\",\n img: slider8,\n },\n { label: \"Cozy Luxury: Relax in Stylish Comfort\", img: slider9 },\n { label: \"Virtual Gatherings: Meet Anywhere, Anytime\", img: slider10 },\n { label: \"Share Immersive Content With Your Friends\", img: slider11 },\n { label: \"Modern Aesthetic Workplace\", img: slider12 },\n {\n label: \"Preview Your Ship: Experience it Live in the Metaverse\",\n img: slider13,\n },\n {\n label: \"Discover Virtual Hangouts\",\n img: slider14,\n },\n ]);\n const [settings, setSettings] = useState({\n infinite: true,\n autoplay: true,\n arrows: false,\n autoplaySpeed: 2000,\n lazyLoad: \"ondemand\",\n slidesToShow:\n window?.innerWidth <= 550\n ? 1\n : window?.innerWidth <= 768\n ? 1.5\n : window?.innerWidth <= 1200\n ? 2\n : window?.innerWidth <= 1500\n ? 2.5\n : 3, // Adjusted for better spacing\n afterChange: (index) => {\n setSlideIndex(index);\n },\n });\n // const [metaverceLiveData] = useState([\n // {\n // isLive: true,\n // icon: (\n // <SiSidequest\n // // size={50}\n // className=\"text-3xl sm:text-6xl\"\n // />\n // ),\n // plateform: \"SIDEQUEST\",\n // desc: \"Be the first to experience the next generation of entertainment. Open Beta Now Live on SideQuest!\",\n // route: \"/sidequest\",\n // },\n // {\n // isLive: false,\n // icon: <FaMeta className=\"text-3xl sm:text-6xl\" color=\"#0081FB\t\" />,\n // plateform: \"Meta\",\n // desc: \"Stay tuned for the Meta Launch of the application. Get ready to experience immersive media streaming, gaming and creativity like never before.\",\n // },\n // ]);\n // SIMPLE VIDEO LINK\n const video_url =\n \"https://fourthstar-staticcontent.s3.us-east-1.amazonaws.com/stream/amlix-1733118976839/master.m3u8\";\n // const video_url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/fs_marketing_hero_section_video.mp4`;\n // STREAMFILE VIDEO LINK\n // const video_url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/stream/amlix-1733118976839/master.m3u8`;\n const roadmap = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/roadmap.png`;\n const creator_gif = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/Creator_Image4.gif`;\n const closePopup = () => {\n // if (canClose) {\n // if (typeof onClose == \"function\") {\n // onClose();\n // }\n setShowVideoModal(false);\n // }\n };\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n handleResize();\n\n // Event listener for window resize\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n useEffect(() => {\n setSettings({\n infinite: true,\n autoplay: true,\n arrows: false,\n autoplaySpeed: 2000,\n lazyLoad: \"ondemand\",\n slidesToShow:\n window?.innerWidth <= 550\n ? 1\n : window?.innerWidth <= 768\n ? 1.5\n : window?.innerWidth <= 1200\n ? 2\n : window?.innerWidth <= 1500\n ? 2.5\n : 3, // Adjusted for better spacing\n afterChange: (index) => {\n setSlideIndex(index);\n },\n });\n }, [window.innerWidth]);\n\n // const settings = {\n // infinite: false,\n // autoplay: true,\n // autoplaySpeed: 2000,\n // // centerPadding: \"50px\",\n // // fade: true,\n // lazyLoad: \"ondemand\",\n // slidesToShow:\n // window?.innerWidth <= 768\n // ? 1\n // : window?.innerWidth <= 1200\n // ? 1.5\n // : window?.innerWidth <= 1500\n // ? 2.5\n // : 2.5,\n\n // // slidesToShow: 3,\n // // slidesToScroll: 1,\n // // responsive: [\n // // {\n // // breakpoint: 1024,\n // // settings: {\n // // slidesToShow: 3,\n // // slidesToScroll: 3,\n // // infinite: true,\n // // dots: true,\n // // },\n // // },\n // // {\n // // breakpoint: 600,\n // // settings: {\n // // slidesToShow: 2,\n // // slidesToScroll: 2,\n // // },\n // // },\n // // {\n // // breakpoint: 480,\n // // settings: {\n // // slidesToShow: 1,\n // // slidesToScroll: 1,\n // // },\n // // },\n // // // You can unslick at a given breakpoint now by adding:\n // // // settings: \"unslick\"\n // // // instead of a settings object\n // // ],\n // afterChange: (index) => {\n // setSlideIndex(index);\n // },\n // };\n\n // const settings = {\n // infinite: true,\n // autoplay: true,\n // autoplaySpeed: 2000,\n // lazyLoad: \"ondemand\",\n // slidesToShow:\n // window?.innerWidth <= 768\n // ? 1\n // : window?.innerWidth <= 1200\n // ? 1.5\n // : window?.innerWidth <= 1500\n // ? 2.5\n // : 3, // Adjusted for better spacing\n // afterChange: (index) => {\n // setSlideIndex(index);\n // },\n // };\n\n const onBannerImageLoad = (ev) => {\n setBannerImageLoaded(true);\n };\n const onHeroImageLoad = (ev) => {\n setHeroImageLoaded(true);\n };\n\n const openWhitePaperPdf = async () => {\n const s3Url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/whitepaper.pdf`;\n window.open(s3Url, \"_blank\");\n // fetch(s3Url)\n // .then((response) => response.blob())\n // .then((blob) => {\n // const url = window.URL.createObjectURL(new Blob([blob]));\n // const link = document.createElement(\"a\");\n // link.href = url;\n // link.setAttribute(\"download\", \"whitepaper.pdf\");\n // document.body.appendChild(link);\n // link.click();\n // link.parentNode.removeChild(link);\n // })\n // .catch((error) =>\n // console.error(\"Error downloading whitepaper PDF:\", error)\n // );\n };\n\n const openBusinessPdf = async () => {\n const s3Url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/business_presentation.pdf`;\n window.open(s3Url, \"_blank\");\n // fetch(s3Url)\n // .then((response) => response.blob())\n // .then((blob) => {\n // const url = window.URL.createObjectURL(new Blob([blob]));\n // const link = document.createElement(\"a\");\n // link.href = url;\n // link.setAttribute(\"download\", \"business_presentation.pdf\");\n // document.body.appendChild(link);\n // link.click();\n // link.parentNode.removeChild(link);\n // })\n // .catch((error) =>\n // console.error(\"Error downloading business presentation PDF:\", error)\n // );\n };\n\n const openDiamondPdf = async () => {\n const s3Url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/diamond_pledge.pdf`;\n window.open(s3Url, \"_blank\");\n // fetch(s3Url)\n // .then((response) => response.blob())\n // .then((blob) => {\n // const url = window.URL.createObjectURL(new Blob([blob]));\n // const link = document.createElement(\"a\");\n // link.href = url;\n // link.setAttribute(\"download\", \"diamond_pledge.pdf\");\n // document.body.appendChild(link);\n // link.click();\n // link.parentNode.removeChild(link);\n // })\n // .catch((error) =>\n // console.error(\"Error downloading download pledge PDF:\", error)\n // );\n };\n\n useEffect(() => {\n // const heroImages = heroImageRef.current;\n // Array.from(heroImages).forEach((image) => {\n // if (image.complete) {\n // image.style.height = \"100%\";\n // image.previousElementSibling.style.display = \"none\";\n // }\n // image.onload = (e) => {\n // image.style.height = \"100%\";\n // image.previousElementSibling.style.display = \"none\";\n // };\n // });\n }, []);\n\n return (\n <>\n <Box className=\"container-fluid w-[100%]\">\n <Box className=\"bg-gradient-to-b w-[100vw] from-black via-transparent to-[#1F1E21] relative z-10\">\n {!bannerImageLoaded && (\n <div className=\"relative h-[calc(100vh-50px)] md:h-[450px] lg:h-[550px] xl:h-[700px] 2xl:h-[calc(100vh-50px)] grid place-content-center\">\n <ShadowFrame className=\"absolute top-1/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <ShadowFrame className=\"absolute top-2/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <Loader />\n </div>\n )}\n <picture className=\"\" onLoad={onBannerImageLoad}>\n <source\n media=\"(max-width: 599px)\"\n srcSet={imageMobile}\n style={{\n height: bannerImageLoaded ? \"auto\" : \"0px\",\n }}\n />\n <source\n media=\"(max-width: 1200px)\"\n srcSet={landingImgTab}\n style={{\n height: bannerImageLoaded ? \"auto\" : \"0px\",\n }}\n />\n <img\n src={\n !bannerImageLoaded ? LandingBannerImgFallback : LandingBannerImg\n }\n alt=\"shadowcast\"\n className=\"cursor-pointer w-[100%] h-auto\"\n style={{\n height: bannerImageLoaded ? \"auto\" : \"0px\",\n }}\n />\n </picture>\n <div\n className=\"absolute text-center text-white font-bold w-full items-center \n sm:top-1/2 sm:left-1/2 sm:transform sm:-translate-x-1/2 sm:-translate-y-1/2 \n max-sm:bottom-32 max-sm:left-1/2 max-sm:transform max-sm:-translate-x-1/2\"\n style={{\n zIndex: 10, // Ensures the text is on top of the image\n }}\n >\n {/* <div className=\"flex flex-col bg-transparent mt-7 rounded-full shadow-lg items-center justify-center\">\n <svg\n width=\"69\"\n height=\"68\"\n viewBox=\"0 0 69 68\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"cursor-pointer\"\n onClick={() => setShowVideoModal(true)}\n >\n <rect\n x=\"68.5\"\n width=\"68\"\n height=\"68\"\n rx=\"34\"\n transform=\"rotate(90 68.5 0)\"\n fill=\"white\"\n />\n <path\n d=\"M23.786 47.3246L23.786 19.434C23.7869 19.1516 23.8693 18.8748 24.0241 18.6334C24.179 18.392 24.4005 18.1951 24.6649 18.064C24.9292 17.9328 25.2264 17.8723 25.5244 17.889C25.8224 17.9057 26.1099 17.999 26.3561 18.1588L47.6503 32.1041C48.5332 32.6821 48.5332 34.0735 47.6503 34.653L26.3561 48.5983C26.1105 48.7597 25.8228 48.8544 25.5243 48.872C25.2258 48.8896 24.9279 48.8295 24.663 48.6982C24.3981 48.5669 24.1763 48.3695 24.0216 48.1273C23.867 47.8852 23.7855 47.6075 23.786 47.3246Z\"\n fill=\"black\"\n />\n </svg>\n\n <b\n className=\"pt-2 relative text-lgi cursor-pointer font-semibold text-white font-montserrat text-center inline-block min-w-[87px] \"\n onClick={() => setShowVideoModal(true)}\n >\n Watch Trailer\n </b>\n </div> */}\n <div className=\"mt-10\">\n <span\n onClick={() => setShowVideoModal(true)}\n className=\"a-play cursor-pointer\"\n href=\"#\"\n >\n <PlayArrowIcon fontSize=\"large\" />\n </span>\n <br />\n {/* <span className=\"span-play\">Watch Trailer</span> */}\n <b\n className=\"pt-2 relative mt-5 text-lgi cursor-pointer font-semibold text-white font-montserrat text-center inline-block min-w-[87px] \"\n onClick={() => setShowVideoModal(true)}\n >\n Watch Trailer\n </b>\n </div>\n <h1 className=\"hero-text\">The New Entertainment Frontier</h1>\n </div>\n <div className=\"shadow-bottom\" />\n {showVideoModal && (\n <div\n className=\"__DIALOG_CONTAINER__ !z-[9999] fixed top-0 flex justify-center items-center min-h-screen left-0 w-screen h-screen !bg-black/70\"\n onClick={closePopup}\n >\n <div\n className={`__MAIN_CONTAINER__ absolute max-h-[100vh] top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full md:w-1/2 mq450:w-full max-w-[850px] `}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"__modal_close_icon_container z-[999] flex justify-end\">\n <div\n onClick={closePopup}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] mr-[-20px] w-[20px] h-[20px]\"\n >\n <img\n src={ModalCloseIcon}\n className=\"w-[10px] h-[10px]\"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n <div className=\"\">\n {/* SIMPLE VIDEO RENDERING */}\n {/* \n <video\n className=\"w-full \"\n controls\n preload=\"none\"\n autoPlay\n // muted\n >\n <source src={video_url} type=\"video/mp4\" />\n Your browser does not support the video tag.\n </video> */}\n\n {/* STREAMFILE VIDEO RENDERING */}\n <HLSPlayer src={video_url} />\n {/* <ReactHlsPlayer\n playerRef={playerRef}\n src={video_url}\n autoPlay={true}\n controls={true}\n width=\"100%\"\n height=\"auto\"\n crossOrigin=\"anonymous\"\n onEnded={() => {\n console.log(\"Video ended\");\n if (playerRef.current) {\n playerRef.current.pause(); // Prevent looping\n }\n }}\n /> */}\n </div>\n </div>\n </div>\n )}\n </Box>\n <div className=\"container app-container m-auto\">\n {/* <Box className=\"h-100 flex max-[768px]:flex-col-reverse justify-between pl-16 pr-16 pt-16 pb-12 sm:pl-48 sm:pr-32 sm:pt-40 sm:pb-32 relative \">\n <Box className=\"flex-1 relative lg:pr-32\">\n <div className=\"landingPage-rightShadow\"></div>{\" \"}\n <div className=\"flex h-full\">\n <Fade duration={3000}>\n <img\n src={Landing_1}\n className=\"cursor-pointer w-[100%] h-auto relative rounded-[20px]\"\n alt=\"Network problem\"\n />\n </Fade>\n </div>\n </Box>\n </Box>\n\n <Box className=\"h-100 flex max-[768px]:flex-col justify-between pl-16 pr-16 pt-16 pb-12 sm:pl-48 sm:pr-32 sm:pt-40 sm:pb-32 \">\n <Box className=\"flex-1 relative lg:pl-16\">\n <Box className=\"landingPage-leftShadow\"></Box>\n\n <div className=\"flex h-full\">\n <Fade duration={3000}>\n <img\n src={Landing_2}\n className=\"cursor-pointer w-[100%] h-auto relative rounded-[20px]\"\n alt=\"Network problem\"\n />\n </Fade>\n </div>\n </Box>\n </Box>\n\n <Box className=\"h-100 flex max-[768px]:flex-col max-[768px]:mb-[50px] justify-between pl-16 pr-16 pt-16 pb-12 sm:pl-48 sm:pr-32 sm:pt-40 sm:pb-32 \">\n <Box className=\"flex-1 relative lg:pl-16\">\n <Box className=\"landingPage-leftShadow\"></Box>\n <div className=\"flex h-full \">\n <Fade duration={3000}>\n <img\n src={Landing_4}\n className=\"cursor-pointer w-[100%] h-auto relative rounded-[20px]\"\n alt=\"Network problem\"\n />\n </Fade>\n </div>\n </Box>\n </Box> */}\n\n <div className=\"hero-text-container !pb-4\">\n <h1 className=\"hero-text\">Welcome to Fourth Star</h1>\n <p className=\"hero-text-desc\">\n Fourth Star is an immersive media streaming platform for 180, 360,\n Volumetric Video and the generation of immersive cinema,\n transforming entertainment from something you watch into something\n that you step into.\n </p>\n </div>\n {/* <div className=\"hero-image-container\">\n {!heroImageLoaded && (\n <div className=\"relative h-[calc(100vh-50px)] md:h-[450px] lg:h-[550px] xl:h-[700px] 2xl:h-[calc(100vh-50px)] grid place-content-center\">\n <ShadowFrame className=\"absolute top-1/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <ShadowFrame className=\"absolute top-2/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <Loader />\n </div>\n )}\n <picture className=\"\" onLoad={onHeroImageLoad}>\n <img ref={heroImageRef} src={heroImage2} alt=\"\" />\n </picture>\n\n <div className=\"shadow-frame hero-shadow\"></div>\n </div> */}\n\n <div className=\"list-container\">\n <div className=\"list-item\">\n <div className=\"list-image-container\">\n <img src={list1} alt=\"\" />\n </div>\n <div className=\"list-text-container\">\n <h2>VR Metaverse</h2>\n <p className=\"list-item-desc\">\n Fourth Star is a virtual reality immersive media streaming and\n gaming metaverse. Explore over thirty dynamic environments\n with friends, join quests or unwind in your personalized Ship\n or Apartment with endless entertainment at your fingertips.\n </p>\n </div>\n <div className=\"shadow-frame list-shadow\"></div>\n </div>\n <div className=\"list-item\">\n <div className=\"list-image-container\">\n <img src={list2} alt=\"\" />\n </div>\n <div className=\"list-text-container\">\n <h2>Player Portal</h2>\n <p className=\"list-item-desc\">\n Select your own personal Luxury Apartment or Spaceship.\n Customize your Avatar or search for your new AI Companion - a\n Robotic Butler, Martial Arts Sensei or Cyborg Lion. Browse\n content channels and access Games and Virtual Concerts or just\n invite your friends to join you for a Planet Flyover and then\n relax with a 360-horror movie.\n </p>\n </div>\n <div className=\"shadow-frame list-shadow\"></div>\n </div>\n <div className=\"list-item\">\n <div className=\"list-image-container\">\n <img src={list3} alt=\"\" />\n </div>\n <div className=\"list-text-container\">\n <h2>Creator Portal</h2>\n <p className=\"list-item-desc\">\n Calling the next generation of immersive content creators to\n join our community and unleash your creativity. Stream and\n monetise your short and long form content in 180, 360 and\n volumetric video. Create your own channel and showcase your\n content in the event screening room or stream your fully\n immersive movie direct to the Apartments and Ships.\n </p>\n </div>\n <div className=\"shadow-frame list-shadow\"></div>\n </div>\n </div>\n\n {/* <div className=\"unlock-text-container\">\n <h1 className=\"hero-text\">FSTR</h1>\n <p className=\"hero-text-desc\">\n The Fourth Star Token is the financial bedrock of the Fourth Star\n Metaverse, the ultimate Utility Token that unlocks discounts on\n purchases for Apartments, Ships, Companions and Content. Token\n holders enjoy special ranking and privileges; VIP invites, Red\n Carpet and Early Screenings . Please see example purchase below for\n the ALPHA LEO AI Battle Bot. The Price listed is for illustrative\n purposes only and discount is calculated based on the FSTR Public\n Launch Price of $0.51.\n </p>\n <p className=\"fstr-text\">\n FSTR UTILITY TOKEN - ACCESS HUGE DISCOUNTS\n </p>\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n </div> */}\n\n {/* <div className=\"token-info-container\">\n <img src={tokenInfographic} alt=\"\" />\n </div> */}\n\n {/* <div className=\"unlock-text-container bg-[#1a1a1a] p-10 !ml-[0px] lg:!ml-auto md:p-24 lg:p-32 !w-screen\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 rounded-full mb-7\"\n />\n <h1 className=\"hero-text fstr-text\">\n Fourth Star Utility Token (FSTR) Now Live on ProBit Global!\n </h1>\n <p className=\"hero-text-desc mx-3 md:mx-10 lg:mx-36 text-gray-400\">\n The Fourth Star Token (FSTR) is officially live on ProBit Global!\n <br />\n You can now buy, sell and trade FSTR to unlock exclusive in-platform\n rewards, virtual assets and more.\n </p>\n <img\n src={ProBit_logo}\n alt=\"\"\n className=\"h-auto w-[200px] rounded-full\"\n />\n <div className=\"flex flex-col m-0 z-30 items-center justify-center\">\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n className=\"z-[20] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n <p className=\"mt-10 text-center font-semibold z-20\">\n Don't have a ProBit Global account?{\" \"}\n <NavLink\n target=\"_blank\"\n to=\"https://www.probit.com/r/99268855\"\n className=\"cursor-pointer text-sec hover:text-secDark font-bold\"\n >\n Click here{\" \"}\n </NavLink>\n to create one now!\n </p>\n <Link\n to=\"https://www.probit.com/r/99268855\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\"z-[20] ml-4 btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Create ProBit Global Account\n </Link>\n </div>\n <img src={ProBitTrading} alt=\"\" className=\"h-auto w-full my-[-30%]\" />\n <div className=\"unlock-text-container-new z-10 bg-black !px-10 !w-screen\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 mt-[-35px] sm:mt-[-70px] lg:mt-[-100px] 2xl:mt-[-140px]\"\n />\n <h1 className=\"font-bold text-[24px] text-center sm:mx-24 leading-10\">\n Celebrate FSTR's Launch on ProBit Global- Earn Thousands in our\n Luxury Apartments and Ships Giveaway! 🚀✨\n </h1>\n\n <p className=\"hero-text-desc text-gray-400 mb-5\">\n We’re Excited to Announce the Launch of FSTR! The wait is over!\n Our utility token, FSTR, is now live on the ProBit Global\n Exchange. <br />\n To celebrate, we’re giving away thousands of dollars in Luxury\n Apartments and Ships to participants in our exclusive giveaway.\n </p>\n <p className=\"fstr-text\">\n The giveaway concludes on January 7th, 2025.\n </p>\n <div className=\"grid mx-20 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 \">\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_1}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_2}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_3}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n </div>\n <h1 className=\"text-[#00FFFF] font-bold\">\n ~ Qualify for Multiple Giveaways ~\n </h1>\n <p className=\"hero-text-desc text-gray-400\">\n You may qualify for all giveaways by holding the requisite FSTR.\n For example, if you want both Explorer and Pioneer then please\n hold 1,250 FSTR and for all three please hold 2,250.\n </p>\n <h1 className=\"font-semibold\">\n Don’t miss your chance to win luxury spaceships and exclusive\n apartments in the Fourth Star Metaverse!\n </h1>\n <Link\n to=\"https://offers.fourthstar.com/probit-launch?utm_source=fourthstar&utm_campaign=Probit_Exchange_Launch_Giveaway_1&utm_medium=website\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 mt-2 mb-10 text-center text-[16px] leading-[14.63px]\"\n >\n Subscribe Now\n </Link>\n </div>\n </div> */}\n\n {/* <div className=\"unlock-text-container\">\n <h1 className=\"hero-text\">FSTR Discounts & the Market</h1>\n <p className=\"hero-text-desc text-gray-400\">\n FSTR will “Pre-exchange” Public Launch at $0.51 and will always be\n worth a minimum of $1 on the platform. As an Example, when\n purchasing FSTR at the Public Launch price of $0.51 and purchasing\n an Item on the Platform, each FSTR will be worth a minimum of $1,\n ensuring a discount on purchases of 49%. When FSTR has a market rate\n of $1 or more, a standard discount of 25% will be applied. Please\n see the following as examples of discounts calculated for varying\n FSTR market price rates. Examples are for illustrative purposes only\n and are not intended as a prediction of market price.\n </p>\n <p className=\"fstr-text\">\n ALWAYS WORTH A MINIMUM OF A $1 AND ONGOING DISCOUNT OF 25%\n </p>\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n </div> */}\n\n {/* <div className=\"layout-info-container\">\n <img src={infographic} alt=\"\" />\n </div> */}\n\n <div\n className={`meta-container-box relative mt-[100px] p-10 py-20 flex flex-wrap gap-5 sm:gap-10`}\n style={{\n backgroundImage: `url(${Metaverce_Bg})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n }}\n >\n {/* <img src={vrSection} alt=\"\" />\n <NavLink\n to={userInfo && userToken ? \"/sidequest\" : \"/signin\"}\n className=\"flex gap-x-[10px] bg-[#fbbc5e] hover:bg-[#db9149] rounded-[8px] text-[12px] md:text-[16px] font-bold px-[5px] md:py-[8px] md:px-[16px] text-black absolute top-[60%] left-[20%] md:top-[60%] md:left-[25%] lg:top-[60%] lg:left-[27.5%] 2xl:top-[60%] 2xl:left-[30%] cursor-pointer\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill=\"black\"\n />\n </svg>\n Metaverse\n </NavLink> */}\n {/* {metaverceLiveData.map((data) => (\n <div class=\"max-w-lg flex justify-center flex-col gap-3 sm:gap-5 p-3 py-5 sm:p-10 border-[.5px] border-gray-200 border-opacity-40 duration-300 hover:border-opacity-100 rounded-lg shadow-sm bg-[#D9D9D91A] bg-opacity-80 \">\n {data?.isLive ? (\n <span className=\"text-2xl sm:text-3xl font-bold text-[#34E5B0] w-full text-center\">\n LIVE on\n </span>\n ) : (\n <span className=\"text-2xl sm:text-3xl font-bold text-[#00FFFF] w-full text-center\">\n Coming Soon on\n </span>\n )}\n <div className=\"flex justify-center items-center gap-2\">\n <span>{data.icon}</span>\n <span className=\"text-xl sm:text-2xl font-bold font-montserrat\">\n {data.plateform}\n </span>\n </div>\n <p className=\"text-xs sm:text-md 2xl:text-lg text-center font-medium\">\n {data.desc}\n </p>\n {data?.isLive && (\n <div className=\"flex justify-center items-center\">\n <NavLink\n to={userInfo && userToken ? data.route : \"/signin\"}\n className=\"flex gap-x-[10px] bg-[#fbbc5e] hover:bg-[#db9149] duration-300 p-2 px-4 rounded-[8px] text-[12px] md:text-[16px] font-bold text-black cursor-pointer\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill=\"black\"\n />\n </svg>\n Metaverse\n </NavLink>\n </div>\n )}\n </div>\n ))} */}\n\n <div className=\"meta-text-container w-[54%] ml-[5rem] !pb-4\">\n <h1 className=\"hero-text meta-heading mt-10 mb-5\">\n Fourth Star is Live!🚀\n </h1>\n <p className=\"hero-text-desc mt-5 mb-5\">\n Step into the future of entertainment with AI-powered immersive\n media and interactive action, now available on Meta. Feel the\n rush, live the story and experience content like never before.\n Click below to download Fourth Star now and start your\n adventure!\n </p>\n <div className=\"mt-8 flex flex-wrap justify-center gap-6\">\n <Link\n to=\"https://www.meta.com/experiences/fourth-star/9675427669158125/\"\n target=\"_blank\"\n className=\"meta-button-box flex flex-col items-center justify-center w-[350px] h-[130px] border-2 border-yellow-400 rounded-xl bg-gray-900 hover:bg-gray-800 transition\"\n >\n <span className=\"!text-[#FFFFFF] text-sm\">Download From</span>\n <div className=\"flex items-center gap-2 text-2xl font-semibold text-white\">\n <FaMeta className=\"meta-button-text text-blue-500 text-6xl\" />{\" \"}\n Meta\n </div>\n </Link>\n <div className=\"flex flex-col items-center\">\n <Link\n to=\"https://sidequestvr.com/app/31890/\"\n target=\"_blank\"\n className=\"meta-button-box flex flex-col items-center justify-center w-[350px] h-[130px] border-2 border-[#8DEEFF] rounded-xl bg-gray-900 hover:bg-gray-800 transition\"\n >\n <span className=\"!text-[#FFFFFF] text-sm\">\n Also Available on\n </span>\n <div className=\"flex items-center gap-2 text-2xl font-semibold text-white\">\n <SiSidequest className=\"meta-button-text text-white text-6xl\" />{\" \"}\n SIDEQUEST\n </div>\n </Link>\n <Link to=\"/sidequest\" className=\"mt-2 text-[#8DEEFF] opacity-[0.7] font-semibold text-[10px] sm:text-[14px] hover:text-[#2FCDE9] \">\n See Instructions to download\n </Link>\n </div>\n </div>\n </div>\n\n {/* <div class=\"max-w-lg flex justify-center flex-col gap-3 sm:gap-5 p-3 py-5 sm:p-10 border border-gray-200 rounded-lg shadow-sm bg-[#D9D9D91A] bg-opacity-80 \">\n <span className=\"text-2xl sm:text-3xl font-bold text-[#34E5B0] w-full text-center\">\n LIVE on\n </span>\n <div className=\"flex justify-center items-center gap-2\">\n <span>\n <SiSidequest\n // size={50}\n className=\"text-3xl sm:text-6xl\"\n />\n </span>\n <span className=\"text-xl sm:text-2xl font-bold font-montserrat\">\n SIDEQUEST\n </span>\n </div>\n <p className=\"text-xs sm:text-md 2xl:text-lg text-center font-semibold\">\n Be the first to experience the next generation of entertainment.\n Open Beta Now Live on SideQuest!\n </p>\n <div className=\"flex justify-center items-center\">\n <NavLink\n to={userInfo && userToken ? \"/sidequest\" : \"/signin\"}\n className=\"flex gap-x-[10px] bg-[#fbbc5e] hover:bg-[#db9149] duration-300 p-2 px-4 rounded-[8px] text-[12px] md:text-[16px] font-bold text-black cursor-pointer\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill=\"black\"\n />\n </svg>\n Metaverse\n </NavLink>\n </div>\n </div> */}\n {/* <div class=\"max-w-lg flex justify-center flex-col gap-3 sm:gap-5 p-3 py-5 sm:p-10 border border-gray-200 rounded-lg shadow-sm bg-[#D9D9D91A] bg-opacity-80 \">\n <span className=\"text-2xl sm:text-3xl font-bold text-[#34E5B0] w-full text-center\">\n LIVE on\n </span>\n <div className=\"flex justify-center items-center gap-2\">\n <span>\n <FaMeta className=\"text-3xl sm:text-6xl\" color=\"#0081FB\t\" />\n </span>\n <span className=\"text-xl sm:text-2xl font-bold font-montserrat\">\n Meta\n </span>\n </div>\n <p className=\"text-xs sm:text-md 2xl:text-lg text-center font-semibold\">\n Be the first to experience the next generation of entertainment.\n Open Beta Now Live on SideQuest!\n </p>\n <div className=\"flex justify-center items-center\">\n <NavLink\n to={userInfo && userToken ? \"/sidequest\" : \"/signin\"}\n className=\"flex gap-x-[10px] bg-[#fbbc5e] hover:bg-[#db9149] duration-300 p-2 px-4 rounded-[8px] text-[12px] md:text-[16px] font-bold text-black cursor-pointer\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill=\"black\"\n />\n </svg>\n Metaverse\n </NavLink>\n </div>\n </div> */}\n </div>\n <div className=\"hero-text-container\">\n <h1 className=\"hero-text\">Discover the Limitless</h1>\n <p className=\"hero-text-desc\" sx=\"margin-bottom: 0px\">\n Teleport aboard the Genesis, the Entertainment and Gaming\n Mothership that transports you to the Fourth Star universe.\n Explore over thirty environments, meet friends in the Café or\n spend the evening in your own Ship or Apartment and select your\n favourite immersive content from the fully integrated\n Entertainment Suite. Fly your Ship from the Genesis to an\n undiscovered planet and don't forget to dress to impress with your\n new Flight Suit.\n </p>\n </div>\n <div className=\"carousel-container\">\n <div className=\"glider-container\">\n <Slider ref={gliderRef} {...settings} className=\"space-x-4\">\n {sliderData.map((item, i) => (\n <div className=\"glider-item px-4 rounded-lg shadow-lg \">\n <img\n src={item.img}\n alt=\"slider-img\"\n className=\"w-full h-auto rounded-md\"\n />\n <p className=\"text-center\">{item.label}</p>\n </div>\n ))}\n </Slider>\n\n <button\n aria-label=\"Previous\"\n // ref={leftRef}\n className=\"glider-prev\"\n disabled={slideIndex === 0}\n onClick={() => gliderRef?.current?.slickPrev()}\n >\n <svg\n width=\"10\"\n height=\"16\"\n viewBox=\"0 0 10 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M0 8C0 8.39752 0.207253 8.79503 0.414507 8.99379L7.25389 15.5528C7.87565 16.1491 8.91192 16.1491 9.53368 15.5528C10.1554 14.9565 10.1554 13.9627 9.53368 13.3665L3.93782 8L9.53368 2.63354C10.1554 2.03727 10.1554 1.04348 9.53368 0.447206C8.91192 -0.149067 7.87565 -0.149067 7.25389 0.447206L0.621762 6.80745C0.207254 7.20497 0 7.60249 0 8Z\"\n fill={slideIndex === 0 ? \"rgb(105, 102, 102)\" : \"white\"}\n />\n </svg>\n </button>\n <button\n aria-label=\"Next\"\n // ref={rightRef}\n className=\"glider-next\"\n disabled={slideIndex === 11}\n onClick={() => gliderRef?.current?.slickNext()}\n >\n <svg\n width=\"10\"\n height=\"16\"\n viewBox=\"0 0 10 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 8C10 8.39752 9.79275 8.79503 9.58549 8.99379L2.74611 15.5528C2.12435 16.1491 1.08808 16.1491 0.466321 15.5528C-0.15544 14.9565 -0.15544 13.9627 0.466321 13.3665L6.06218 8L0.466321 2.63354C-0.15544 2.03727 -0.15544 1.04348 0.466321 0.447206C1.08808 -0.149067 2.12435 -0.149067 2.74611 0.447206L9.37824 6.80745C9.79275 7.20497 10 7.60249 10 8Z\"\n fill={slideIndex === 11 ? \"rgb(105, 102, 102)\" : \"white\"}\n />\n </svg>\n </button>\n </div>\n </div>\n\n <div\n className={`unlock-text-container container app-container mx-auto !mb-0 relative bg-[#000000] p-10 !ml-[0px] lg:!ml-auto md:p-24 lg:p-32 !w-screen `}\n >\n {/* <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 rounded-full mb-7\"\n /> */}\n <h1 className=\"hero-text mt-5 mb-4\">Immersive Media</h1>\n <h1 className=\"text-[#ddde92] text-[16px] md:mx-10 lg:mx-40 text-center font-bold\">\n Filmmakers, Animators and Content Creators—step into the new era\n of immersive storytelling, Upload your 180, 360 and volumetric\n videos and experience the freedom to create and monetize.\n </h1>\n <p className=\"hero-text-desc mx-3 md:mx-10 lg:mx-36 text-gray-400\">\n  Imagine your fans mastering the choreography of a complex fight\n or dance scene, or budding actors learning your dialogue,\n supported by advanced Choreography AI and Agentic Characters.\n </p>\n\n <div className=\"flex flex-col m-0 z-30 items-center justify-center\">\n <Link\n to=\"https://creator.fourthstar.com/\"\n target=\"_blank\"\n className=\"z-[20] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Become a Creator\n </Link>\n </div>\n <img\n // src={BecomeCreatorImg}\n src={creator_gif}\n alt=\"\"\n className=\"h-auto w-[95%] max-w-[850px] mt-10\"\n />\n <img\n src={leftRightImg}\n className=\"h-full w-screen object-cover absolute -mt-32\"\n />\n </div>\n\n <div className=\" container app-container mx-auto flex z-10 flex-col-reverse items-center sm:flex-row !px-10 py-5 my-10 !w-screen justify-between\">\n <img\n className=\"w-[70%] sm:max-w-[40%] sm:ml-[-40px] h-auto flex-none\"\n src={genevive}\n alt=\"\"\n />\n <div className=\"flex flex-col w-full sm:max-w-[60%] align-middle !justify-center items-center\">\n <img\n src={genevive2}\n className=\"w-full sm:max-w-[80%] h-auto\"\n alt=\"\"\n />\n <div className=\"w-full sm:max-w-[80%] flex flex-col gap-10 items-center\">\n <Link\n to=\"/genevieve\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\"border-[1.5px] border-[#FFDF62] text-[0.50rem] md:text-sm max-w-60 hover:bg-[#FFDF62] hover:text-dark font-semibold md:font-bold text-center py-0.5 px-3 md:py-2 md:px-4 !rounded-full\"\n >\n Discover More\n </Link>\n {/* <button\n className=\"border-[1.5px] border-[#FFDF62] text-[0.50rem] md:text-sm max-w-60 hover:bg-[#FFDF62] hover:text-dark font-semibold md:font-bold text-center py-0.5 px-1 md:py-2 md:px-3 !rounded-full\"\n // disabled\n // onClick={openDiamondPdf}\n // onMouseEnter={() => setIsDiamondHovered(true)}\n // onMouseLeave={() => setIsDiamondHovered(false)}\n >\n Know More About Her\n </button> */}\n <div>\n <p className=\"text-center\">\n Follow Genevieve on social media\n </p>\n <div className=\"flex gap-6 justify-center mt-5\">\n <a\n href={socialLinks.facebook}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FaFacebook size={30} />\n {/* <FaFacebook size={28} className=\"hover:text-[#FFDF62]\" /> */}\n </a>\n\n <a\n href={socialLinks.twitter}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FaXTwitter size={30} />\n </a>\n\n <a\n href={socialLinks.instagram}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FaInstagram size={30} />\n </a>\n\n <a\n href={socialLinks.youtube}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FiYoutube size={30} />\n </a>\n </div>\n </div>\n </div>\n </div>\n\n {/* <h2>Creator Portal</h2>\n <p className=\"list-item-desc\">\n Calling the next generation of immersive content creators to\n join our community and unleash your creativity. Stream and\n monetise your short and long form content in 180, 360 and\n volumetric video. Create your own channel and showcase your\n content in the event screening room or stream your fully\n immersive movie direct to the Apartments and Ships.\n </p> */}\n </div>\n\n <div className=\"unlock-text-container container app-container mx-auto bg-[#1a1a1a] p-10 !ml-[0px] lg:!ml-auto md:p-24 lg:p-32 !w-screen !mt-0\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 rounded-full mb-7\"\n />\n <h1 className=\"hero-text fstr-text\">\n Fourth Star Utility Token (FSTR) Is LIVE on ProBit Global!\n </h1>\n <p className=\"hero-text-desc mx-3 md:mx-10 lg:mx-36 text-gray-400\">\n The Fourth Star Token (FSTR) is officially LIVE on ProBit Global!\n <br />\n You can now buy, sell and trade FSTR to unlock exclusive\n in-platform rewards, virtual assets and more.\n </p>\n <img\n src={ProBit_logo}\n alt=\"\"\n className=\"h-auto w-[200px] rounded-full\"\n />\n <div className=\"flex flex-col m-0 z-30 items-center justify-center\">\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n className=\"z-[20] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n {/* <p className=\"mt-10 text-center font-semibold z-20\">\n Don't have a ProBit Global account?{\" \"}\n <NavLink\n target=\"_blank\"\n to=\"https://www.probit.com/r/99268855\"\n className=\"cursor-pointer text-sec hover:text-secDark font-bold\"\n >\n Click here{\" \"}\n </NavLink>\n to create one now!\n </p> */}\n {/* <Link\n to=\"https://www.probit.com/r/99268855\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\"z-[20] ml-4 btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Create ProBit Global Account\n </Link> */}\n </div>\n {/* <img src={ProBitTrading} alt=\"\" className=\"h-auto w-full my-[-30%]\" /> */}\n {/* <div className=\"unlock-text-container-new z-10 bg-black !px-10 !w-screen\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 mt-[-35px] sm:mt-[-70px] lg:mt-[-100px] 2xl:mt-[-140px]\"\n />\n <h1 className=\"font-bold text-[24px] text-center sm:mx-24 leading-10\">\n Celebrate FSTR's Launch on ProBit Global- Earn Thousands in our\n Luxury Apartments and Ships Giveaway! 🚀✨\n </h1>\n\n <p className=\"hero-text-desc text-gray-400 mb-5\">\n We’re Excited to Announce the Launch of FSTR! The wait is over!\n Our utility token, FSTR, is now live on the ProBit Global\n Exchange. <br />\n To celebrate, we’re giving away thousands of dollars in Luxury\n Apartments and Ships to participants in our exclusive giveaway.\n </p>\n <p className=\"fstr-text\">\n The giveaway concludes on January 7th, 2025.\n </p>\n <div className=\"grid mx-20 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 \">\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_1}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_2}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_3}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n </div>\n <h1 className=\"text-[#00FFFF] font-bold\">\n ~ Qualify for Multiple Giveaways ~\n </h1>\n <p className=\"hero-text-desc text-gray-400\">\n You may qualify for all giveaways by holding the requisite FSTR.\n For example, if you want both Explorer and Pioneer then please\n hold 1,250 FSTR and for all three please hold 2,250.\n </p>\n <h1 className=\"font-semibold\">\n Don’t miss your chance to win luxury spaceships and exclusive\n apartments in the Fourth Star Metaverse!\n </h1>\n <Link\n to=\"https://offers.fourthstar.com/probit-launch?utm_source=fourthstar&utm_campaign=Probit_Exchange_Launch_Giveaway_1&utm_medium=website\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 mt-2 mb-10 text-center text-[16px] leading-[14.63px]\"\n >\n Subscribe Now\n </Link>\n </div> */}\n </div>\n\n <div className=\"unlock-text-container\">\n <h1 className=\"hero-text\">Roadmap</h1>\n {/* <p className=\"hero-text-desc\">\n Our journey began in 2022 with platform design and environmental\n modeling. In 2023, we focused on closed alpha and beta testing,\n alongside workshops with content creators. By Q1 2024, we launched\n the open beta, gathering feedback and introducing creators. In Q2\n 2024, we'll launch our token, sell ships and apartments and develop\n our creator and partner reward systems. In 2025, we'll launch the\n creator reward system, introduce metaverse rentals and onboard major\n entertainment brands, with AI companions and secondary market sales\n to follow.\n </p> */}\n </div>\n\n <div className=\"\">\n <img src={newRoadMapImg} alt=\"\" />\n </div>\n\n <div className=\"token-text-container\">\n <h1 className=\"hero-text\">\n Business Presentation & Token White Paper{\" \"}\n </h1>\n <p className=\"hero-text-desc\">\n Discover the vision, technology, roadmap and tokenomics that drive\n our platform.\n </p>\n <div className=\"flex max-[768px]:flex-col max-[768px]:gap-y-[20px] gap-x-[20px]\">\n <button\n className=\"download-btn\"\n onClick={openWhitePaperPdf}\n onMouseEnter={() => setIsWhiteHOvered(true)}\n onMouseLeave={() => setIsWhiteHOvered(false)}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isWhiteHovered ? \"black\" : \"#FBBC5E\"}\n />\n </svg>\n White Paper\n </button>\n <button\n className=\"download-btn\"\n onClick={openBusinessPdf}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isHovered ? \"black\" : \"#FBBC5E\"}\n />\n </svg>\n Business Presentation\n </button>\n <button\n className=\"download-btn\"\n onClick={openDiamondPdf}\n onMouseEnter={() => setIsDiamondHovered(true)}\n onMouseLeave={() => setIsDiamondHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isDiamondHovered ? \"black\" : \"#FBBC5E\"}\n />\n </svg>\n Diamond Pledge\n </button>\n </div>\n\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n <div className=\"shadow-frame token-text-shadow\"></div>\n </div>\n\n <div className=\"team-container mobile-team\">\n <div className=\"shadow-frame team-shadow-1\"></div>\n <div className=\"shadow-frame team-shadow-2\"></div>\n <h2 className=\"hero-text\">Executive Team</h2>\n <div className=\"team-members-container\">\n <div className=\"team-member executive1\">\n <div className=\"member-img-container\">\n <img src={team1} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>Greg Simon</h3>\n <div className=\"team-executive-link\">\n <p className=\"member-role\">CEO</p>\n <p className=\"member-role\" sx=\"margin-top: 14px\">\n <a\n href=\"https://www.linkedin.com/in/gregorylsimon?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n </div>\n\n <p>\n 15 years experience in international finance. 10 years\n experience in blockchain/Web3. Serial entrepreneur\n CEO/Founder. Columbia MBA, Former CPA, holder of multiple\n blockchain patent grants, fluent in Japanese, avid world\n traveller.\n </p>\n </div>\n </div>\n <div className=\"team-member executive1\">\n <div className=\"member-img-container\">\n <img src={team2} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>Craig Wiltshire</h3>\n <div className=\"team-executive-link\">\n <p className=\"member-role\">CTO</p>\n <p className=\"member-role\" sx=\"margin-top: 14px\">\n <a\n href=\"https://www.linkedin.com/in/craig-wiltshire-101a1115?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n </div>\n <p>\n Executive MBA, PCG Design. Solutions architect for spatial\n computing and machine learning. Former IPC Europa Cup\n downhill skier and Royal Marines commando. Specialising in\n advanced AR/MR/VR eCommerce.\n </p>\n </div>\n </div>\n\n <div className=\"team-member executive1\">\n <div className=\"member-img-container\">\n <img src={team3} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>Michael Doran</h3>\n <div className=\"team-executive-link\">\n <p className=\"member-role\">CBO</p>\n <p className=\"member-role\" sx=\"margin-top: 14px\">\n <a\n href=\"https://www.linkedin.com/in/michael-doran-493a1175/\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n </div>\n <p>\n Michael was previously Director of Security & Director of\n Engineering for Loyyal Corp, an industry-leading\n blockchain-technology company. Prior to that he was Team\n Lead in Engineering, for Apple Inc. His career includes\n multiple years at other leading firms including AT&T;,\n Disney, and VoiceBox Technologies.\n </p>\n </div>\n </div>\n </div>\n </div>\n\n <div className=\"team-container mobile-team\">\n <div className=\"shadow-frame team-shadow-1\"></div>\n <div className=\"shadow-frame team-shadow-2\"></div>\n <h2 className=\"hero-text\">Advisors</h2>\n <div className=\"team-members-container\">\n <div className=\"team-member advisor-member\">\n <div className=\"member-img-container\">\n <img src={advisor1} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>Zhenbin Xu</h3>\n <p className=\"member-role\">Web3 and AI Advisor</p>\n <p className=\"member-role\">\n <a\n href=\"https://www.linkedin.com/in/zhenbinxu?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n <p>\n Zhenbin is a seasoned technology executive with over two\n decades of product leadership and innovation. He is current\n the CPO of Pacvue Corporation on AI accelerated eCommerce.\n He was a former Senior Director at Microsoft. After\n Microsoft, he served as Chief AI Officer and the top\n technology executive for an insurance group where he led\n their digital and AI transformation and FinTech initiatives\n leveraging AI and Web3. Zhenbin has been advisor for leading\n VCs and companies on AI + Web3.\n </p>\n </div>\n </div>\n\n <div className=\"team-member advisor-member\">\n <div className=\"member-img-container\">\n <img src={advisor2} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>Thom Kozik</h3>\n <p className=\"member-role\">\n Incentivization, Behavioral Economics, Gamification Advisor\n </p>\n <p className=\"member-role\">\n <a\n href=\"https://www.linkedin.com/in/thomkozik?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n <p>\n Thom Kozik's career is a testament to his expertise in\n incentivization, behavioral economics, gamification\n marketing, and the strategic application of blockchain\n technology, with demonstrated leadership in various sectors,\n including the loyalty marketing and video game industries.\n  He brings decades of success ranging from former President\n of Marriott Rewards,  Chief Product Officer at Loyyal Corp,\n Exec VP of Atari, and Sr. Director for Yahoo! Games, in\n addition to advising the executive management of Verizon,\n Target, and Allergan on incentivization and loyalty\n strategies, and the economic modeling needed to support\n them.\n </p>\n </div>\n </div>\n <div className=\"team-member advisor-member\">\n <div className=\"member-img-container\">\n <img src={advisor3} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>Paul Chou</h3>\n <p className=\"member-role\">Regulatory and Exchange Advisor</p>\n <p className=\"member-role\">\n <a\n href=\"https://www.linkedin.com/in/plchou/?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n <p>\n Paul is currently the CEO and Co-Founder of Foundation Coin;\n was CEO and Co-Founder of LedgerX, a New York cryptocurrency\n derivatives exchange; was appointed as a government advisor\n to the CFTC's Technology Advisory Committee; has a passion\n for post-quantum crypto, financial tools for space, and AI\n implications for both.\n </p>\n </div>\n </div>\n {/* <div className=\"team-member advisor-member last-advisor\">\n <div className=\"member-img-container\">\n <img src={advisor4} alt=\"\" />\n </div>\n <div className=\"member-text-container\">\n <h3>LaurieAnne (LA) Lassek</h3>\n <p className=\"member-role\">Brand Strategy</p>\n <p className=\"member-role\">\n <a\n href=\"https://www.linkedin.com/in/lalassek?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app\"\n className=\"footer-link footer-icon\"\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M23.8817 2.33317H4.11834C3.89618 2.33009 3.67559 2.37079 3.46916 2.45297C3.26274 2.53514 3.07452 2.65718 2.91527 2.8121C2.75601 2.96702 2.62883 3.1518 2.54099 3.35588C2.45316 3.55996 2.40638 3.77935 2.40334 4.0015V23.9982C2.40638 24.2203 2.45316 24.4397 2.54099 24.6438C2.62883 24.8479 2.75601 25.0326 2.91527 25.1876C3.07452 25.3425 3.26274 25.4645 3.46916 25.5467C3.67559 25.6289 3.89618 25.6696 4.11834 25.6665H23.8817C24.1038 25.6696 24.3244 25.6289 24.5308 25.5467C24.7373 25.4645 24.9255 25.3425 25.0847 25.1876C25.244 25.0326 25.3712 24.8479 25.459 24.6438C25.5469 24.4397 25.5936 24.2203 25.5967 23.9982V4.0015C25.5936 3.77935 25.5469 3.55996 25.459 3.35588C25.3712 3.1518 25.244 2.96702 25.0847 2.8121C24.9255 2.65718 24.7373 2.53514 24.5308 2.45297C24.3244 2.37079 24.1038 2.33009 23.8817 2.33317ZM9.43834 21.8632H5.93834V11.3632H9.43834V21.8632ZM7.68834 9.89317C7.20564 9.89317 6.74272 9.70142 6.4014 9.36011C6.06008 9.01879 5.86834 8.55586 5.86834 8.07317C5.86834 7.59048 6.06008 7.12755 6.4014 6.78624C6.74272 6.44492 7.20564 6.25317 7.68834 6.25317C7.94465 6.2241 8.20421 6.2495 8.45002 6.3277C8.69584 6.4059 8.92236 6.53514 9.11477 6.70696C9.30717 6.87878 9.46112 7.0893 9.56652 7.32473C9.67192 7.56017 9.72641 7.81522 9.72641 8.07317C9.72641 8.33113 9.67192 8.58617 9.56652 8.82161C9.46112 9.05705 9.30717 9.26757 9.11477 9.43938C8.92236 9.6112 8.69584 9.74044 8.45002 9.81864C8.20421 9.89684 7.94465 9.92224 7.68834 9.89317ZM22.0617 21.8632H18.5617V16.2282C18.5617 14.8165 18.06 13.8948 16.7883 13.8948C16.3948 13.8977 16.0116 14.0212 15.6903 14.2485C15.3691 14.4759 15.1252 14.7963 14.9917 15.1665C14.9004 15.4407 14.8608 15.7295 14.875 16.0182V21.8515H11.375V11.3515H14.875V12.8332C15.193 12.2815 15.6554 11.8269 16.2125 11.5186C16.7696 11.2102 17.4003 11.0597 18.0367 11.0832C20.37 11.0832 22.0617 12.5882 22.0617 15.8198V21.8632Z\"\n fill=\"#FBBC5E\"\n />\n </svg>\n </a>\n </p>\n <p>\n U.S.-based enterprise technology executive and brand\n strategist, LaurieAnne “L.A.” Lassek, brings 20+ years of\n global marketing communications experience to the table. She\n is passionate about connecting the dots, and people,\n cross-functionally, to drive clear and consistent\n communications both internally and externally. LA rolls up her\n sleeves to extract and curate point-of-views with SMEs and\n leaders across the organization, developing executive\n platforms that build awareness and champion customer success.\n </p>\n </div>\n </div> */}\n </div>\n </div>\n </div>\n </Box>\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\nimport React, { useState, useRef, useEffect } from \"react\";\nimport { Box, Container, Grid, Typography } from \"@mui/material\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport LandingBannerImg from \"assets/images/genevieve/genevieve.png\";\nimport intro_video_preview from \"assets/images/genevieve/intro_video_preview.png\";\n\nimport heroImage2 from \"assets/images/genevieve/genevieve_showcase.png\";\n\nimport imageMobile from \"assets/images/genevieve/genevieveMobile.png\";\nimport imageTab from \"assets/images/genevieve/genevieveTab.png\";\nimport genevive_social_1 from \"assets/images/genevieve/genevieve_social_1.png\";\nimport genevive_social_2 from \"assets/images/genevieve/genevieve_social_2.png\";\nimport genevive_social_3 from \"assets/images/genevieve/genevieve_social_3.png\";\nimport gen_last from \"assets/images/genevieve/gen_last.png\";\nimport social_hidden from \"assets/images/genevieve/social_hidden.png\";\nimport gv_social_media_profiles from \"assets/images/genevieve/gv_social_media_profiles.png\";\nimport Loader from \"components/Loader/Loader\";\nimport { FaFacebook, FaInstagram, FaXTwitter } from \"react-icons/fa6\";\nimport { FiYoutube } from \"react-icons/fi\";\n\nimport \"./styles.css\";\nimport { socialLinks } from \"constant\";\n\nconst Index = () => {\n const [bannerImageLoaded, setBannerImageLoaded] = useState(false);\n const [showVideoModal, setShowVideoModal] = useState(false);\n // SIMPLE VIDEO LINK\n // const video_url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/fs_marketing_hero_section_video.mp4`;\n // STREAMFILE VIDEO LINK\n const video_url = `${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/stream/amlix-1733118976839/master.m3u8`;\n const closePopup = () => {\n // if (canClose) {\n // if (typeof onClose == \"function\") {\n // onClose();\n // }\n setShowVideoModal(false);\n // }\n };\n\n const onBannerImageLoad = (ev) => {\n setBannerImageLoaded(true);\n };\n\n const videoRef = useRef(null);\n const [isPlaying, setIsPlaying] = useState(false);\n\n const handleVideoClick = () => {\n if (videoRef.current) {\n if (videoRef.current.paused) {\n videoRef.current.play();\n setIsPlaying(true);\n } else {\n videoRef.current.pause();\n setIsPlaying(false);\n }\n }\n };\n\n const handlePlay = () => {\n setIsPlaying(true);\n };\n\n const handlePause = () => {\n setIsPlaying(false);\n };\n return (\n <>\n <Box className=\"container-fluid w-[100%] myFont\">\n {!bannerImageLoaded && (\n <div className=\"relative h-[calc(100vh-50px)] md:h-[450px] lg:h-[550px] xl:h-[700px] 2xl:h-[calc(100vh-50px)] grid place-content-center\">\n <ShadowFrame className=\"absolute top-1/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <ShadowFrame className=\"absolute top-2/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <Loader />\n </div>\n )}\n <picture className=\"overflow-hidden\">\n <source media=\"(max-width: 799px)\" srcSet={imageMobile} />\n <source media=\"(max-width: 1200px)\" srcSet={imageTab} />\n <img\n src={LandingBannerImg}\n alt=\"shadowcast\"\n className=\"w-full h-auto\"\n onLoad={onBannerImageLoad}\n style={{ display: bannerImageLoaded ? \"block\" : \"none\" }}\n />\n </picture>\n <div className=\"container app-container m-auto\">\n <div className=\"hero-text-container\">\n <h1 className=\"gen-hero-text myFont\">\n The World’s First AI Movie Star\n </h1>\n <p className=\"gen-hero-text-desc\">\n As the world’s first AI Movie Star, Model, Influencer and Brand\n Ambassador for Fourth Star, Genevieve is more than a virtual\n character; she's a phenomenon. She’s an AI-powered virtual\n superstar designed to redefine immersive storytelling and digital\n entertainment. Think of her as the bridge between technology and\n art, a celebrity born out of cutting-edge artificial intelligence\n and breathtaking computer graphics.\n </p>\n </div>\n\n <div className=\"hero-image-container\">\n <picture className=\"\">\n <ShadowFrame className=\"absolute top-1/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <ShadowFrame className=\"absolute top-2/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n\n <img src={heroImage2} className=\"h-auto w-screen\" alt=\"\" />\n </picture>\n\n <div className=\"shadow-frame hero-shadow\"></div>\n </div>\n\n <div className=\"self-stretch flex flex-row items-start justify-center my-5 mx-0 p-0 box-border max-w-full\">\n <div className=\"flex flex-col items-center justify-center gap-[30px] w-screen\">\n <h1 className=\"styled-text myFont\">#TheDigitalDivaForANewEra</h1>\n {/* <div className=\"self-stretch flex flex-row items-center justify-center py-0 box-border max-w-full text-base text-white font-montserrat\">\n <div className=\"myFont relative leading-[150%] font-medium inline-block shrink-0 max-w-full\">\n Meet the World's First Virtual Superstar.\n </div>\n </div> */}\n <div className=\"relative w-full pb-[56.25%] h-0\">\n {/* <video\n ref={videoRef}\n className=\"absolute top-0 left-0 w-full h-full rounded-lg cursor-pointer\"\n preload=\"none\"\n // muted\n controls\n poster={intro_video_preview}\n onPlay={handlePlay}\n onPause={handlePause}\n >\n <source src={video_url} type=\"video/mp4\" />\n Your browser does not support the video tag.\n </video> */}\n\n <img\n src={gen_last}\n className=\"absolute top-0 left-0 w-full h-full\"\n />\n\n {/* {!isPlaying && ( */}\n <div\n // onClick={handleVideoClick}\n className=\"absolute inset-0 flex flex-col items-center justify-center bg-black bg-opacity-50\"\n >\n <div className=\"self-stretch flex flex-row items-center justify-center py-0 box-border max-w-full text-base text-center text-white font-montserrat\">\n <div className=\"myFont relative text-sm sm:text-xl md:text-3xl leading-[150%] font-medium inline-block shrink-0 max-w-full md:max-w-[70%] \">\n Designed for the digital age, built for the big screen,\n Genevieve is the world’s first AI Movie Star.\n </div>\n </div>\n {/* <div className=\"bg-transparent p-4 rounded-full shadow-lg\">\n <svg\n width=\"68\"\n height=\"68\"\n viewBox=\"0 0 68 68\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"68\" height=\"68\" rx=\"34\" fill=\"white\" />\n <path\n d=\"M22.6665 17L50.9998 34L22.6665 51V17Z\"\n fill=\"black\"\n stroke=\"black\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n <div className=\"self-stretch flex flex-row items-center justify-center py-0 box-border max-w-full text-base text-center text-[#ffffffaf] font-montserrat\">\n <div className=\"myFont relative leading-[150%] text-sm font-thin inline-block shrink-0 max-w-full md:max-w-[30%] \">\n Watch her in action\n </div>\n </div> */}\n </div>\n {/* )} */}\n </div>\n </div>\n </div>\n\n <div className=\" myFont my-20 md:mt-32 \">\n <h1 className=\"styled-text myFont w-full\">\n #World'sFirstVirtualSuperstar\n </h1>\n {/* <h1 className=\"hero-text myFont\">Coming Soon to Social Media</h1> */}\n <div className=\"w-[70%] m-auto \">\n <div className=\"flex justify-center flex-col gap-5 my-4\">\n <h1 className=\"hero-text myFont\">Follow her on Social Media</h1>\n <p className=\"gen-hero-text-desc gen-social-desc w-[60%] m-auto\">\n Connect with Genevieve as the world’s first virtual superstar\n is about to take over social media!\n </p>\n </div>\n <div className=\"flex gap-6 justify-center my-8\">\n <a\n href={socialLinks.facebook}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FaFacebook size={30} />\n {/* <FaFacebook size={28} className=\"hover:text-[#FFDF62]\" /> */}\n </a>\n\n <a\n href={socialLinks.twitter}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FaXTwitter size={30} />\n </a>\n\n <a\n href={socialLinks.instagram}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FaInstagram size={30} />\n </a>\n\n <a\n href={socialLinks.youtube}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block hover:text-[#FFDF62]\"\n >\n <FiYoutube size={30} />\n </a>\n </div>\n <div>\n <img\n src={gv_social_media_profiles}\n alt=\"\"\n className=\"h-auto w-full\"\n />\n </div>\n </div>\n {/* <div className=\"grid mx-20 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 \"> */}\n {/* <div className=\"group relative z-10 flex flex-col items-center justify-center\">\n <a\n href={socialLinks.facebook}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block\"\n >\n <FaFacebook size={32} className=\"hover:text-[#FFDF62]\" />\n </a>\n\n <img\n src={genevive_social_1}\n alt=\"\"\n className=\"h-auto mt-10 w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div> */}\n {/* <div className=\"group relative z-10 flex flex-col items-center justify-center\">\n <a\n href={socialLinks.instagram}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"group inline-block\"\n >\n <FaInstagram size={32} className=\"hover:text-[#FFDF62]\" />\n </a>\n\n <img\n src={genevive_social_2}\n alt=\"\"\n className=\"h-auto mt-10 w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 flex flex-col items-center justify-center\">\n <a\n href={socialLinks.twitter}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <FaXTwitter size={32} className=\"hover:text-[#FFDF62]\" />\n </a>\n\n <img\n src={genevive_social_3}\n alt=\"\"\n className=\"h-auto mt-10 w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div> */}\n {/* </div> */}\n </div>\n </div>\n </Box>\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\nimport React, { useState, useRef, useEffect } from \"react\";\nimport { Box, Container, Grid, Typography } from \"@mui/material\";\n\nimport tokenInfographic from \"assets/images/home/token-infographic.png\";\nimport ProBit_logo from \"assets/images/ProBit_Global_Logo_White_RGB.png\";\nimport ProBitTrading from \"assets/images/ProBit_Global_Trading.png\";\n\nimport FSTRCoinFlip from \"assets/images/FSTRCoinFlip.png\";\nimport infographic from \"assets/images/home/infographic.png\";\n\nimport { Link, NavLink } from \"react-router-dom\";\n\nimport \"./styles.css\";\n\nconst Index = () => {\n return (\n <>\n <Box className=\"container-fluid w-[100%] container app-container mx-auto\">\n <div className=\"unlock-text-container !mt-4\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 rounded-full mb-7\"\n />\n <h1 className=\"hero-text\">FSTR</h1>\n <p className=\"hero-text-desc\">\n The Fourth Star Token is the financial bedrock of the Fourth Star\n Metaverse, the ultimate Utility Token that unlocks discounts on\n purchases for Apartments, Ships, Companions and Content. Token\n holders enjoy special ranking and privileges; VIP invites, Red\n Carpet and Early Screenings . Please see example purchase below for\n the ALPHA LEO AI Battle Bot. The Price listed is for illustrative\n purposes only and discount is calculated based on the FSTR Public\n Launch Price of $0.51.\n </p>\n <p className=\"fstr-text\">\n FSTR UTILITY TOKEN - ACCESS HUGE DISCOUNTS\n </p>\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n </div>\n\n <div className=\"token-info-container !mt-20\">\n <img src={tokenInfographic} alt=\"\" />\n </div>\n <div className=\"unlock-text-container !mt-32\">\n <h1 className=\"hero-text\">FSTR Discounts & the Market </h1>\n <p className=\"hero-text-desc\">\n FSTR will “Pre-exchange” Public Launch at $0.51 and will always be\n worth a minimum of $1 on the platform. As an Example, when\n purchasing FSTR at the Public Launch price of $0.51 and purchasing\n an Item on the Platform, each FSTR will be worth a minimum of $1,\n ensuring a discount on purchases of 49%. When FSTR has a market rate\n of $1 or more, a standard discount of 25% will be applied. Please\n see the following as examples of discounts calculated for varying\n FSTR market price rates. Examples are for illustrative purposes only\n and are not intended as a prediction of market price.\n </p>\n <p className=\"fstr-text\">\n ALWAYS WORTH A MINIMUM OF A $1 AND ONGOING DISCOUNT OF 25%\n </p>\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n </div>\n\n {/* <div className=\"unlock-text-container bg-[#1a1a1a] p-10 !ml-[0px] lg:!ml-auto md:p-24 lg:p-32 !w-screen\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 rounded-full mb-7\"\n />\n <h1 className=\"hero-text fstr-text\">\n Fourth Star Utility Token (FSTR) Now Live on ProBit Global!\n </h1>\n <p className=\"hero-text-desc mx-3 md:mx-10 lg:mx-36 text-gray-400\">\n The Fourth Star Token (FSTR) is officially live on ProBit Global!\n <br />\n You can now buy, sell and trade FSTR to unlock exclusive in-platform\n rewards, virtual assets and more.\n </p>\n <img\n src={ProBit_logo}\n alt=\"\"\n className=\"h-auto w-[200px] rounded-full\"\n />\n <div className=\"flex flex-col m-0 z-30 items-center justify-center\">\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n className=\"z-[20] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n <p className=\"mt-10 text-center font-semibold z-20\">\n Don't have a ProBit Global account?{\" \"}\n <NavLink\n target=\"_blank\"\n to=\"https://www.probit.com/r/99268855\"\n className=\"cursor-pointer text-sec hover:text-secDark font-bold\"\n >\n Click here{\" \"}\n </NavLink>\n to create one now!\n </p>\n <Link\n to=\"https://www.probit.com/r/99268855\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\"z-[20] ml-4 btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Create ProBit Global Account\n </Link>\n </div>\n <img src={ProBitTrading} alt=\"\" className=\"h-auto w-full my-[-30%]\" />\n <div className=\"unlock-text-container-new z-10 bg-black !px-10 !w-screen\">\n <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 mt-[-35px] sm:mt-[-70px] lg:mt-[-100px] 2xl:mt-[-140px]\"\n />\n <h1 className=\"font-bold text-[24px] text-center sm:mx-24 leading-10\">\n Celebrate FSTR's Launch on ProBit Global- Earn Thousands in our\n Luxury Apartments and Ships Giveaway! 🚀✨\n </h1>\n\n <p className=\"hero-text-desc text-gray-400 mb-5\">\n We’re Excited to Announce the Launch of FSTR! The wait is over!\n Our utility token, FSTR, is now live on the ProBit Global\n Exchange. <br />\n To celebrate, we’re giving away thousands of dollars in Luxury\n Apartments and Ships to participants in our exclusive giveaway.\n </p>\n <p className=\"fstr-text\">\n The giveaway concludes on January 7th, 2025.\n </p>\n <div className=\"grid mx-20 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 \">\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_1}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_2}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"group relative z-10 \">\n <img\n src={giveaway_3}\n alt=\"\"\n className=\"h-auto w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n </div>\n <h1 className=\"text-[#00FFFF] font-bold\">\n ~ Qualify for Multiple Giveaways ~\n </h1>\n <p className=\"hero-text-desc text-gray-400\">\n You may qualify for all giveaways by holding the requisite FSTR.\n For example, if you want both Explorer and Pioneer then please\n hold 1,250 FSTR and for all three please hold 2,250.\n </p>\n <h1 className=\"font-semibold\">\n Don’t miss your chance to win luxury spaceships and exclusive\n apartments in the Fourth Star Metaverse!\n </h1>\n <Link\n to=\"https://offers.fourthstar.com/probit-launch?utm_source=fourthstar&utm_campaign=Probit_Exchange_Launch_Giveaway_1&utm_medium=website\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 mt-2 mb-10 text-center text-[16px] leading-[14.63px]\"\n >\n Subscribe Now\n </Link>\n </div>\n </div> */}\n\n {/* <div className=\"unlock-text-container\">\n <h1 className=\"hero-text\">FSTR Discounts & the Market</h1>\n <p className=\"hero-text-desc text-gray-400\">\n FSTR will “Pre-exchange” Public Launch at $0.51 and will always be\n worth a minimum of $1 on the platform. As an Example, when\n purchasing FSTR at the Public Launch price of $0.51 and purchasing\n an Item on the Platform, each FSTR will be worth a minimum of $1,\n ensuring a discount on purchases of 49%. When FSTR has a market rate\n of $1 or more, a standard discount of 25% will be applied. Please\n see the following as examples of discounts calculated for varying\n FSTR market price rates. Examples are for illustrative purposes only\n and are not intended as a prediction of market price.\n </p>\n <p className=\"fstr-text\">\n ALWAYS WORTH A MINIMUM OF A $1 AND ONGOING DISCOUNT OF 25%\n </p>\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n // className=\"w-[48%] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[12px] leading-[14.63px]\"\n className=\" btn-gradient text-black font-bold rounded-[8px] px-5 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n </div> */}\n\n <div className=\"layout-info-container\">\n <img src={infographic} alt=\"\" />\n </div>\n\n <div className=\"unlock-text-container container app-container mx-auto !mb-0 bg-[#1a1a1a] p-10 !ml-[0px] lg:!ml-auto md:p-24 lg:p-32 !w-screen\">\n {/* <img\n src={FSTRCoinFlip}\n alt=\"\"\n className=\"h-auto w-1/4 sm:w-1/5 lg:w-1/6 rounded-full mb-7\"\n /> */}\n <h1 className=\"hero-text fstr-text\">\n Fourth Star Utility Token (FSTR) Now Live on ProBit Global!\n </h1>\n <p className=\"hero-text-desc mx-3 md:mx-10 lg:mx-36 text-gray-400\">\n The Fourth Star Token (FSTR) is officially live on ProBit Global!\n <br />\n You can now buy, sell and trade FSTR to unlock exclusive in-platform\n rewards, virtual assets and more.\n </p>\n <img\n src={ProBit_logo}\n alt=\"\"\n className=\"h-auto w-[200px] rounded-full\"\n />\n <div className=\"flex flex-col m-0 z-30 items-center justify-center\">\n <Link\n to=\"https://www.probit.com/en-us/app/exchange/FSTR-USDT\"\n target=\"_blank\"\n className=\"z-[20] btn-gradient text-black font-bold rounded-[8px] px-2 py-3 text-center text-[16px] leading-[14.63px]\"\n >\n Buy FSTR On ProBit Global\n </Link>\n <p className=\"mt-10 text-center font-semibold z-20\">\n Don't have a ProBit Global account?{\" \"}\n <NavLink\n target=\"_blank\"\n to=\"https://www.probit.com/r/99268855\"\n className=\"cursor-pointer text-sec hover:text-secDark font-bold\"\n >\n Click here{\" \"}\n </NavLink>\n to create one now!\n </p>\n </div>\n <img src={ProBitTrading} alt=\"\" className=\"h-auto w-full my-[-30%]\" />\n </div>\n </Box>\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Header\n *@developer Sudhanshu \n */\n/* nav bar */\nimport { NavLink } from \"react-router-dom\";\nconst Index = ({className}) => {\n return (\n <div className={`flex flex-col gap-3 items-center justify-center ${className ? className : \"sm:mt-40\"}`}>\n <p className='font-heading font-semibold clip-text'>Coming Soon</p>\n <p className='text-[#7A7A7A] font-semibold text-center'>Try exploring other exciting contents in marketplace.</p>\n <NavLink to=\"/marketplace\" className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\">Browse other content</NavLink>\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { NavLink, useNavigate } from \"react-router-dom\";\nimport NotFound from \"components/not-found/Index\";\n// import Apartments from 'pages/marketplace/apartments/Index';\n// import Ships from \"pages/marketplace/ships/Index\";\n// import Entertainments from 'pages/marketplace/entertainment/Index';\n\n/* The code defines a functional component called `Index` that serves as a marketplace page with tabs. */\nconst Index = ({ value, element }) => {\n const navigate = useNavigate();\n const [allCategory] = useState([\n { label: \"Apartments\", coming: false },\n { label: \"Ships\", coming: false },\n { label: \"Entertainment\", coming: false },\n { label: \"Avatars\", coming: false },\n { label: \"Clothing\", coming: true },\n { label: \"Companions\", coming: true },\n { label: \"Gaming\", coming: true },\n ]);\n const [values, setValues] = useState(0);\n\n /**\n * The handleChange function is used to navigate to different pages based on the selected value.\n */\n const handleChange = (event, newValue) => {\n console.log(newValue);\n event.preventDefault();\n switch (newValue) {\n case 0:\n navigate(\"/marketplace/apartments\");\n break;\n case 1:\n navigate(\"/marketplace/ships\");\n break;\n case 2:\n navigate(\"/marketplace/entertainment\");\n break;\n case 3:\n navigate(\"/marketplace/avatars/\");\n break;\n case 4:\n navigate(\"/marketplace/clothing/\");\n break;\n case 5:\n navigate(\"/marketplace/companions/\");\n break;\n case 6:\n navigate(\"/marketplace/gaming/\");\n break;\n default:\n navigate(\"/marketplace/\");\n break;\n }\n };\n\n useEffect(() => {\n if (value) setValues(+value);\n }, [value]);\n return (\n <div className=\"min-h-[calc(100vh-170px)] container app-container mx-auto pb-16 px-2 md:px-3 xl:px-6 2xl:px-10 relative z-10\">\n <ul\n className=\"flex overflow-x-auto text-sm md:text-base font-semibold text-center py-5 px-2 md:py-8 md:px-4\"\n data-testid=\"tablist\"\n >\n {allCategory?.map((category, i) => {\n return (\n <li className=\"mr-8\" key={i} role=\"tab\">\n <a\n href=\"#\"\n onClick={(e) => handleChange(e, i)}\n aria-current={values === i ? \"page\" : \"\"}\n className={`inline-block text-[#7A7A7A] hover:text-white ${\n values === i ? \"text-white\" : \"\"\n }`}\n >\n {!category?.coming ? (\n category?.label\n ) : (\n <>\n {category?.label}\n <span className=\"ml-2 text-xs clip-text font-medium whitespace-nowrap\">\n Coming Soon\n </span>\n </>\n )}\n </a>\n </li>\n );\n })}\n </ul>\n <div className=\"marketplace_tabs\">\n {element ? element : <NotFound className=\"h-screen\" />}\n </div>\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n * @module Large-Card-Components\n * @developer Sudhanshu\n * type = large\n */\nimport ShadowFrame from \"components/shadow-frame\";\nimport { useEffect } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nconst LargeCard = ({ item }) => {\n return (\n <div className=\"group relative overflow-hidden rounded-lg bg-[#1D1D1D]\">\n <ShadowFrame className=\"w-[250px] md:w-[500px] h-[250px] md:h-[500px] rounded-[250px] md:rounded-[500px] left-[50%] translate-x-1/2 md:translate-x-0 md:-left-[100px] bottom-0 !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.60]\" />\n <div className=\"p-3\">\n <div className=\"bg-[#2D2D2D] aspect-[590/298] md:aspect-[1224/354] relative z-10 overflow-hidden\">\n <img\n src={item?.largeThumbnail?.url}\n className=\"h-full w-full object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"flex flex-wrap justify-between relative z-10 gap-5 items-center p-4 my-4\">\n <div className=\"max-w-2xl xl:max-w-3xl\">\n <h4 className=\"font-bold text-base md:text-xl mb-3 md:mb-5\">\n {item?.assetName}\n </h4>\n {item?.shortDescription?.map((item, i) => (\n <div\n key={i}\n dangerouslySetInnerHTML={{\n __html: item,\n }}\n // className=\"leading-sung text-sm md:text-base text-white/[0.90] truncate text-ellipsis\"\n className=\"leading-sung text-sm md:text-base text-white/[0.90] line-clamp-2 [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n ></div>\n ))}\n {/* <p\n dangerouslySetInnerHTML={{ __html: item?.shortDescription[0] }}\n className=\"leading-sung text-sm md:text-base text-white/[0.90] truncate text-ellipsis\"\n ></p> */}\n </div>\n {\n <a\n href={\n `/marketplace/${\n item?.category === \"apartment\" ? \"apartments\" : \"ships\"\n }/${item?.IAPslug || item?._id}/${item?.assetName\n ?.split(\" \")\n .join(\"-\")\n .toLowerCase()}` || null\n }\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 font-medium\"\n >\n {item?.category === \"apartment\" ? \"See apartment\" : \"See ship\"}\n </a>\n }\n </div>\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[500px] h-[250px] md:h-[500px] rounded-[250px] md:rounded-[500px] right-[50%] translate-x-1/2 md:translate-x-0 md:-right-[100px] bottom-0 !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.60]\" />\n </div>\n );\n};\n\nexport default LargeCard;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n * @module Small-Card-Components\n * @developer Sudhanshu\n * type = small\n */\n\nimport React from \"react\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { NavLink } from \"react-router-dom\";\nconst SmallCard = ({ item }) => {\n return (\n <NavLink\n className=\"group relative overflow-hidden rounded-xl lg:rounded-[20px] bg-[#1D1D1D] block h-full\"\n to={item?.slug}\n >\n <div className=\"p-3\">\n <div className=\"bg-[#2D2D2D] aspect-[590/298] rounded-lg relative z-10 overflow-hidden\">\n <img\n src={item?.img}\n className=\"h-full w-full rounded-lg object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"flex flex-wrap justify-between relative z-10 gap-5 items-center px-2 lg:px-4 py-4 pb-2\">\n <div className=\"max-w-3xl\">\n <h4 className=\"font-bold text-base lg:text-xl mb-3 md:mb-4\">\n {item?.title}\n </h4>\n <p className=\"leading-sung text-sm text-white/[0.90]\">\n {item?.desc}\n </p>\n </div>\n </div>\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[50%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </NavLink>\n );\n};\n\nexport default SmallCard;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n * @module Generic-Assets-Card\n * @developer Sudhanshu\n * type = large || small\n*/\n\nimport React from 'react'\nimport LargeCard from './largeCard';\nimport SmallCard from './smallCard';\nconst MarketPlaceCard = ({ item, type }) => { \n return type === \"large\" ? <LargeCard item={item} /> : <SmallCard item={item} />\n}\n\nexport default MarketPlaceCard","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n * @module Featured\n * @developer Sudhanshu\n*/\n\nimport React from 'react';\nimport { Box } from '@mui/material';\nconst FeaturedCard = ({ item }) => {\n return (\n <div className=\"box-item card-hover_parent\">\n <Box className=\"text-center flex items-center justify-center card-hover_img\">\n <img\n src={item?.img}\n className=\"h-full w-full rounded-xl object-contain\"\n />\n </Box>\n <h4 className=\"font-heading text-base font-normal text-center clip-text mt-3 mb-6\">\n {item?.title}\n </h4>\n <p className=\"leading-[1.775] text-xs font-normal text-center c_white\">\n {item?.desc}\n </p>\n </div>\n )\n}\n\nexport default FeaturedCard","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_<T>(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted<T, ES5ObjectState | ES5ArrayState>\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted<AnyObject, ES5ObjectState>\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted<AnyObject, ES5ArrayState>\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_<T>(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted<T, ES5ObjectState | ES5ArrayState> {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted<any, ImmerState>[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {immerable} from \"../immer\"\nimport {\n\tImmerState,\n\tPatch,\n\tSetState,\n\tES5ArrayState,\n\tProxyArrayState,\n\tMapState,\n\tES5ObjectState,\n\tProxyObjectState,\n\tPatchPath,\n\tget,\n\teach,\n\thas,\n\tgetArchtype,\n\tisSet,\n\tisMap,\n\tloadPlugin,\n\tProxyType,\n\tArchtype,\n\tdie,\n\tisDraft,\n\tisDraftable,\n\tNOTHING\n} from \"../internal\"\n\nexport function enablePatches() {\n\tconst REPLACE = \"replace\"\n\tconst ADD = \"add\"\n\tconst REMOVE = \"remove\"\n\n\tfunction generatePatches_(\n\t\tstate: ImmerState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tswitch (state.type_) {\n\t\t\tcase ProxyType.ProxyObject:\n\t\t\tcase ProxyType.ES5Object:\n\t\t\tcase ProxyType.Map:\n\t\t\t\treturn generatePatchesFromAssigned(\n\t\t\t\t\tstate,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t\tcase ProxyType.ES5Array:\n\t\t\tcase ProxyType.ProxyArray:\n\t\t\t\treturn generateArrayPatches(state, basePath, patches, inversePatches)\n\t\t\tcase ProxyType.Set:\n\t\t\t\treturn generateSetPatches(\n\t\t\t\t\t(state as any) as SetState,\n\t\t\t\t\tbasePath,\n\t\t\t\t\tpatches,\n\t\t\t\t\tinversePatches\n\t\t\t\t)\n\t\t}\n\t}\n\n\tfunction generateArrayPatches(\n\t\tstate: ES5ArrayState | ProxyArrayState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, assigned_} = state\n\t\tlet copy_ = state.copy_!\n\n\t\t// Reduce complexity by ensuring `base` is never longer.\n\t\tif (copy_.length < base_.length) {\n\t\t\t// @ts-ignore\n\t\t\t;[base_, copy_] = [copy_, base_]\n\t\t\t;[patches, inversePatches] = [inversePatches, patches]\n\t\t}\n\n\t\t// Process replaced indices.\n\t\tfor (let i = 0; i < base_.length; i++) {\n\t\t\tif (assigned_[i] && copy_[i] !== base_[i]) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t\t})\n\t\t\t\tinversePatches.push({\n\t\t\t\t\top: REPLACE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue: clonePatchValueIfNeeded(base_[i])\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\t// Process added indices.\n\t\tfor (let i = base_.length; i < copy_.length; i++) {\n\t\t\tconst path = basePath.concat([i])\n\t\t\tpatches.push({\n\t\t\t\top: ADD,\n\t\t\t\tpath,\n\t\t\t\t// Need to maybe clone it, as it can in fact be the original value\n\t\t\t\t// due to the base/copy inversion at the start of this function\n\t\t\t\tvalue: clonePatchValueIfNeeded(copy_[i])\n\t\t\t})\n\t\t}\n\t\tif (base_.length < copy_.length) {\n\t\t\tinversePatches.push({\n\t\t\t\top: REPLACE,\n\t\t\t\tpath: basePath.concat([\"length\"]),\n\t\t\t\tvalue: base_.length\n\t\t\t})\n\t\t}\n\t}\n\n\t// This is used for both Map objects and normal objects.\n\tfunction generatePatchesFromAssigned(\n\t\tstate: MapState | ES5ObjectState | ProxyObjectState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tconst {base_, copy_} = state\n\t\teach(state.assigned_!, (key, assignedValue) => {\n\t\t\tconst origValue = get(base_, key)\n\t\t\tconst value = get(copy_!, key)\n\t\t\tconst op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD\n\t\t\tif (origValue === value && op === REPLACE) return\n\t\t\tconst path = basePath.concat(key as any)\n\t\t\tpatches.push(op === REMOVE ? {op, path} : {op, path, value})\n\t\t\tinversePatches.push(\n\t\t\t\top === ADD\n\t\t\t\t\t? {op: REMOVE, path}\n\t\t\t\t\t: op === REMOVE\n\t\t\t\t\t? {op: ADD, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t\t\t: {op: REPLACE, path, value: clonePatchValueIfNeeded(origValue)}\n\t\t\t)\n\t\t})\n\t}\n\n\tfunction generateSetPatches(\n\t\tstate: SetState,\n\t\tbasePath: PatchPath,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t) {\n\t\tlet {base_, copy_} = state\n\n\t\tlet i = 0\n\t\tbase_.forEach((value: any) => {\n\t\t\tif (!copy_!.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t\ti = 0\n\t\tcopy_!.forEach((value: any) => {\n\t\t\tif (!base_.has(value)) {\n\t\t\t\tconst path = basePath.concat([i])\n\t\t\t\tpatches.push({\n\t\t\t\t\top: ADD,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t\tinversePatches.unshift({\n\t\t\t\t\top: REMOVE,\n\t\t\t\t\tpath,\n\t\t\t\t\tvalue\n\t\t\t\t})\n\t\t\t}\n\t\t\ti++\n\t\t})\n\t}\n\n\tfunction generateReplacementPatches_(\n\t\tbaseValue: any,\n\t\treplacement: any,\n\t\tpatches: Patch[],\n\t\tinversePatches: Patch[]\n\t): void {\n\t\tpatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: replacement === NOTHING ? undefined : replacement\n\t\t})\n\t\tinversePatches.push({\n\t\t\top: REPLACE,\n\t\t\tpath: [],\n\t\t\tvalue: baseValue\n\t\t})\n\t}\n\n\tfunction applyPatches_<T>(draft: T, patches: Patch[]): T {\n\t\tpatches.forEach(patch => {\n\t\t\tconst {path, op} = patch\n\n\t\t\tlet base: any = draft\n\t\t\tfor (let i = 0; i < path.length - 1; i++) {\n\t\t\t\tconst parentType = getArchtype(base)\n\t\t\t\tlet p = path[i]\n\t\t\t\tif (typeof p !== \"string\" && typeof p !== \"number\") {\n\t\t\t\t\tp = \"\" + p\n\t\t\t\t}\n\n\t\t\t\t// See #738, avoid prototype pollution\n\t\t\t\tif (\n\t\t\t\t\t(parentType === Archtype.Object || parentType === Archtype.Array) &&\n\t\t\t\t\t(p === \"__proto__\" || p === \"constructor\")\n\t\t\t\t)\n\t\t\t\t\tdie(24)\n\t\t\t\tif (typeof base === \"function\" && p === \"prototype\") die(24)\n\t\t\t\tbase = get(base, p)\n\t\t\t\tif (typeof base !== \"object\") die(15, path.join(\"/\"))\n\t\t\t}\n\n\t\t\tconst type = getArchtype(base)\n\t\t\tconst value = deepClonePatchValue(patch.value) // used to clone patch to ensure original patch is not modified, see #411\n\t\t\tconst key = path[path.length - 1]\n\t\t\tswitch (op) {\n\t\t\t\tcase REPLACE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\t/* istanbul ignore next */\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\tdie(16)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// if value is an object, then it's assigned by reference\n\t\t\t\t\t\t\t// in the following add or remove ops, the value field inside the patch will also be modifyed\n\t\t\t\t\t\t\t// so we use value from the cloned patch\n\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase ADD:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn key === \"-\"\n\t\t\t\t\t\t\t\t? base.push(value)\n\t\t\t\t\t\t\t\t: base.splice(key as any, 0, value)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.set(key, value)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.add(value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn (base[key] = value)\n\t\t\t\t\t}\n\t\t\t\tcase REMOVE:\n\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\tcase Archtype.Array:\n\t\t\t\t\t\t\treturn base.splice(key as any, 1)\n\t\t\t\t\t\tcase Archtype.Map:\n\t\t\t\t\t\t\treturn base.delete(key)\n\t\t\t\t\t\tcase Archtype.Set:\n\t\t\t\t\t\t\treturn base.delete(patch.value)\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn delete base[key]\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdie(17, op)\n\t\t\t}\n\t\t})\n\n\t\treturn draft\n\t}\n\n\t// optimize: this is quite a performance hit, can we detect intelligently when it is needed?\n\t// E.g. auto-draft when new objects from outside are assigned and modified?\n\t// (See failing test when deepClone just returns obj)\n\tfunction deepClonePatchValue<T>(obj: T): T\n\tfunction deepClonePatchValue(obj: any) {\n\t\tif (!isDraftable(obj)) return obj\n\t\tif (Array.isArray(obj)) return obj.map(deepClonePatchValue)\n\t\tif (isMap(obj))\n\t\t\treturn new Map(\n\t\t\t\tArray.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n\t\t\t)\n\t\tif (isSet(obj)) return new Set(Array.from(obj).map(deepClonePatchValue))\n\t\tconst cloned = Object.create(Object.getPrototypeOf(obj))\n\t\tfor (const key in obj) cloned[key] = deepClonePatchValue(obj[key])\n\t\tif (has(obj, immerable)) cloned[immerable] = obj[immerable]\n\t\treturn cloned\n\t}\n\n\tfunction clonePatchValueIfNeeded<T>(obj: T): T {\n\t\tif (isDraft(obj)) {\n\t\t\treturn deepClonePatchValue(obj)\n\t\t} else return obj\n\t}\n\n\tloadPlugin(\"Patches\", {\n\t\tapplyPatches_,\n\t\tgeneratePatches_,\n\t\tgenerateReplacementPatches_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude<T, Nothing>`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","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}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","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}\nfunction _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}\nexport { _objectSpread2 as default };","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator<any>[] | { [key: string]: ActionCreator<any> }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: <A extends Action>(action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: <S>(state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: <S, A extends Action>(state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | (<A extends Action>(action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n <StoreExt>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer<any>\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import type { Middleware, StoreEnhancer } from 'redux'\r\nimport type { EnhancerArray, MiddlewareArray } from './utils'\r\n\r\n/**\r\n * return True if T is `any`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsAny<T, True, False = never> =\r\n // test if we are going the left AND right path in the condition\r\n true | false extends (T extends never ? true : false) ? True : False\r\n\r\n/**\r\n * return True if T is `unknown`, otherwise return False\r\n * taken from https://github.com/joonhocho/tsdef\r\n *\r\n * @internal\r\n */\r\nexport type IsUnknown<T, True, False = never> = unknown extends T\r\n ? IsAny<T, False, True>\r\n : False\r\n\r\nexport type FallbackIfUnknown<T, Fallback> = IsUnknown<T, Fallback, T>\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfMaybeUndefined<P, True, False> = [undefined] extends [P]\r\n ? True\r\n : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IfVoid<P, True, False> = [void] extends [P] ? True : False\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsEmptyObj<T, True, False = never> = T extends any\r\n ? keyof T extends never\r\n ? IsUnknown<T, False, IfMaybeUndefined<T, False, IfVoid<T, False, True>>>\r\n : False\r\n : never\r\n\r\n/**\r\n * returns True if TS version is above 3.5, False if below.\r\n * uses feature detection to detect TS version >= 3.5\r\n * * versions below 3.5 will return `{}` for unresolvable interference\r\n * * versions above will return `unknown`\r\n *\r\n * @internal\r\n */\r\nexport type AtLeastTS35<True, False> = [True, False][IsUnknown<\r\n ReturnType<<T>() => T>,\r\n 0,\r\n 1\r\n>]\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type IsUnknownOrNonInferrable<T, True, False> = AtLeastTS35<\r\n IsUnknown<T, True, False>,\r\n IsEmptyObj<T, True, IsUnknown<T, True, False>>\r\n>\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection<U> = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\n// Appears to have a convenient side effect of ignoring `never` even if that's not what you specified\r\nexport type ExcludeFromTuple<T, E, Acc extends unknown[] = []> = T extends [\r\n infer Head,\r\n ...infer Tail\r\n]\r\n ? ExcludeFromTuple<Tail, E, [...Acc, ...([Head] extends [E] ? [] : [Head])]>\r\n : Acc\r\n\r\ntype ExtractDispatchFromMiddlewareTuple<\r\n MiddlewareTuple extends any[],\r\n Acc extends {}\r\n> = MiddlewareTuple extends [infer Head, ...infer Tail]\r\n ? ExtractDispatchFromMiddlewareTuple<\r\n Tail,\r\n Acc & (Head extends Middleware<infer D> ? IsAny<D, {}, D> : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractDispatchExtensions<M> = M extends MiddlewareArray<\r\n infer MiddlewareTuple\r\n>\r\n ? ExtractDispatchFromMiddlewareTuple<MiddlewareTuple, {}>\r\n : M extends ReadonlyArray<Middleware>\r\n ? ExtractDispatchFromMiddlewareTuple<[...M], {}>\r\n : never\r\n\r\ntype ExtractStoreExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStoreExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc & (Head extends StoreEnhancer<infer Ext> ? IsAny<Ext, {}, Ext> : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStoreExtensions<E> = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStoreExtensionsFromEnhancerTuple<EnhancerTuple, {}>\r\n : E extends ReadonlyArray<StoreEnhancer>\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer<infer Ext>\r\n ? Ext extends {}\r\n ? IsAny<Ext, {}, Ext>\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\ntype ExtractStateExtensionsFromEnhancerTuple<\r\n EnhancerTuple extends any[],\r\n Acc extends {}\r\n> = EnhancerTuple extends [infer Head, ...infer Tail]\r\n ? ExtractStateExtensionsFromEnhancerTuple<\r\n Tail,\r\n Acc &\r\n (Head extends StoreEnhancer<any, infer StateExt>\r\n ? IsAny<StateExt, {}, StateExt>\r\n : {})\r\n >\r\n : Acc\r\n\r\nexport type ExtractStateExtensions<E> = E extends EnhancerArray<\r\n infer EnhancerTuple\r\n>\r\n ? ExtractStateExtensionsFromEnhancerTuple<EnhancerTuple, {}>\r\n : E extends ReadonlyArray<StoreEnhancer>\r\n ? UnionToIntersection<\r\n E[number] extends StoreEnhancer<any, infer StateExt>\r\n ? StateExt extends {}\r\n ? IsAny<StateExt, {}, StateExt>\r\n : {}\r\n : {}\r\n >\r\n : never\r\n\r\n/**\r\n * Helper type. Passes T out again, but boxes it in a way that it cannot\r\n * \"widen\" the type by accident if it is a generic that should be inferred\r\n * from elsewhere.\r\n *\r\n * @internal\r\n */\r\nexport type NoInfer<T> = [T][T extends any ? 0 : never]\r\n\r\nexport type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>\r\n\r\nexport interface TypeGuard<T> {\r\n (value: any): value is T\r\n}\r\n\r\nexport interface HasMatchFunction<T> {\r\n match: TypeGuard<T>\r\n}\r\n\r\nexport const hasMatchFunction = <T>(\r\n v: Matcher<T>\r\n): v is HasMatchFunction<T> => {\r\n return v && typeof (v as HasMatchFunction<T>).match === 'function'\r\n}\r\n\r\n/** @public */\r\nexport type Matcher<T> = HasMatchFunction<T> | TypeGuard<T>\r\n\r\n/** @public */\r\nexport type ActionFromMatcher<M extends Matcher<any>> = M extends Matcher<\r\n infer T\r\n>\r\n ? T\r\n : never\r\n\r\nexport type Id<T> = { [K in keyof T]: T[K] } & {}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction<P> =\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction<any> | void,\r\n T extends string = string\r\n> = PA extends PrepareAction<infer P>\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters<PA>,\r\n P,\r\n T,\r\n ReturnType<PA> extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType<PA> extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator<P, T extends string, M = never, E = never> {\r\n type: T\r\n match: (action: Action<unknown>) => action is PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator<P, T, M, E> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction<P, T, M, E>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string>\r\n extends BaseActionCreator<P, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload<T extends string = string>\r\n extends BaseActionCreator<undefined, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction<undefined, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload<P, T extends string = string>\r\n extends BaseActionCreator<P, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction<P, T>\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator<unknown, T> {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n <PT extends unknown>(payload: PT): PayloadAction<PT, T>\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction<P> | void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload<PA, T>,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload<any, T>,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload<T>,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload<T>,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload<P, T>,\r\n // else\r\n ActionCreatorWithPayload<P, T>\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<P = void, T extends string = string>(\r\n type: T\r\n): PayloadActionCreator<P, T>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overridden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction<any>,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action<unknown>): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\n/**\r\n * Returns true if value is a plain object with a `type` property.\r\n */\r\nexport function isAction(action: unknown): action is Action<unknown> {\r\n return isPlainObject(action) && 'type' in action\r\n}\r\n\r\n/**\r\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\r\n */\r\nexport function isActionCreator(\r\n action: unknown\r\n): action is BaseActionCreator<unknown, string> & Function {\r\n return (\r\n typeof action === 'function' &&\r\n 'type' in action &&\r\n // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\r\n hasMatchFunction(action as any)\r\n )\r\n}\r\n\r\n/**\r\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\r\n */\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isAction(action) &&\r\n typeof action.type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType<T extends string>(\r\n actionCreator: PayloadActionCreator<any, T>\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction<any> | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware, StoreEnhancer } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime<T>(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware<any, any>[]\r\n> extends Array<Middlewares[number]> {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend<AdditionalMiddlewares extends ReadonlyArray<Middleware<any, any>>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class EnhancerArray<\r\n Enhancers extends StoreEnhancer<any, any>[]\r\n> extends Array<Enhancers[number]> {\r\n constructor(...items: Enhancers)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, EnhancerArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return EnhancerArray as any\r\n }\r\n\r\n concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n\r\n concat<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...Enhancers, ...AdditionalEnhancers]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend<AdditionalEnhancers extends ReadonlyArray<StoreEnhancer<any, any>>>(\r\n ...items: AdditionalEnhancers\r\n ): EnhancerArray<[...AdditionalEnhancers, ...Enhancers]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new EnhancerArray(...arr[0].concat(this))\r\n }\r\n return new EnhancerArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable<T>(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions<E = any> {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware<S, AnyAction, E>\r\n : ThunkMiddleware<S, AnyAction>\r\n\r\nexport type CurriedGetDefaultMiddleware<S = any> = <\r\n O extends Partial<GetDefaultMiddlewareOptions> = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware<S> {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial<GetDefaultMiddlewareOptions> = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n actionCreatorCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n actionCreatorCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray<Middleware[]>()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n if (actionCreatorCheck) {\r\n let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createActionCreatorInvariantMiddleware(actionCreatorOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n ExtractStateExtensions,\r\n} from './tsHelpers'\r\nimport { EnhancerArray } from './utils'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback<E extends Enhancers = Enhancers> = (\r\n defaultEnhancers: EnhancerArray<[StoreEnhancer<{}, {}>]>\r\n) => E\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer<S, A> | ReducersMapObject<S, A>\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware<S>) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject<S, A>` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState<S>` is correct\r\n - `Reducer<S, A>` is being passed in. In this case, actually `CombinedState<S>` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState<CombinedState<NoInfer<S>>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback<E>\r\n}\r\n\r\ntype Middlewares<S> = ReadonlyArray<Middleware<{}, S>>\r\n\r\ntype Enhancers = ReadonlyArray<StoreEnhancer>\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>\r\n> extends Store<S, A> {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions<M> & Dispatch<A>\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = Middlewares<S>,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore<S & ExtractStateExtensions<E>, A, M> &\r\n ExtractStoreExtensions<E>\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares<S> = [ThunkMiddlewareFor<S>],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions<S, A, M, E>): EnhancedStore<S, A, M, E> {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware<S>()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer<S, A>\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer<S, A>\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n const defaultEnhancers = new EnhancerArray(middlewareEnhancer)\r\n let storeEnhancers: Enhancers = defaultEnhancers\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(defaultEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer<any>\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator<Type extends string> {\r\n (...args: any[]): Action<Type>\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder<State> {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase<ActionCreator extends TypedActionCreator<string>>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer<State, ReturnType<ActionCreator>>\r\n ): ActionReducerMapBuilder<State>\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase<Type extends string, A extends Action<Type>>(\r\n type: Type,\r\n reducer: CaseReducer<State, A>\r\n ): ActionReducerMapBuilder<State>\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\r\n\r\ntype PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\r\ntype RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\r\ntype FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\r\n\r\nconst initialState: Record<string, string> = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher<FulfilledAction>(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher<A>(\r\n matcher: TypeGuard<A> | ((action: any) => boolean),\r\n reducer: CaseReducer<State, A extends AnyAction ? A : A & AnyAction>\r\n ): Omit<ActionReducerMapBuilder<State>, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer<State, AnyAction>): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback<S>(\r\n builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): [\r\n CaseReducers<S, any>,\r\n ActionMatcherDescriptionCollection<S>,\r\n CaseReducer<S, AnyAction> | undefined\r\n] {\r\n const actionsMap: CaseReducers<S, any> = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection<S> = []\r\n let defaultCaseReducer: CaseReducer<S, AnyAction> | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator<any>,\r\n reducer: CaseReducer<S>\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior,\r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (!type) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with an empty action type'\r\n )\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\r\n '`builder.addCase` cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher<A>(\r\n matcher: TypeGuard<A>,\r\n reducer: CaseReducer<S, A extends AnyAction ? A : A & AnyAction>\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer<S, AnyAction>) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator<P> = PayloadActionCreator<P>\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer<State>\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions<CaseReducers, Name>\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers<CaseReducers>\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers<State> = SliceCaseReducers<State>,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers<State, CR>\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction<number>('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers<NoInfer<State>, any>\r\n | ((builder: ActionReducerMapBuilder<NoInfer<State>>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\r\n reducer: CaseReducer<State, Action>\r\n prepare: PrepareAction<Action['payload']>\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers<State> = {\r\n [K: string]:\r\n | CaseReducer<State, PayloadAction<any>>\r\n | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers<any>,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType<SliceName, Type>\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType<SliceName, Type>\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator<P, Type>\r\n : ActionCreatorWithoutPayload<Type>\r\n : ActionCreatorWithoutPayload<Type>\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers<S>\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit<A, 'type'>\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers<State>,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions<State, CaseReducers, Name>\r\n): Slice<State, CaseReducers, Name> {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record<string, CaseReducer> = {}\r\n const sliceCaseReducersByType: Record<string, CaseReducer> = {}\r\n const actionCreators: Record<string, Function> = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer<State, any>\r\n let prepareCallback: PrepareAction<any> | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState<State>\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions<T extends keyof any = string> = Record<T, Action>\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher<A extends AnyAction> {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription<S, A extends AnyAction> = {\r\n matcher: ActionMatcher<A>\r\n reducer: CaseReducer<S, NoInfer<A>>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<\r\n ActionMatcherDescription<S, any>\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection<S> = Array<\r\n ActionMatcherDescription<S, any>\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer<S = any, A extends Action = AnyAction> = (\r\n state: Draft<S>,\r\n action: A\r\n) => NoInfer<S> | void | Draft<NoInfer<S>>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers<S, AS extends Actions> = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void\r\n}\r\n\r\nexport type NotFunction<T> = T extends Function ? never : T\r\n\r\nfunction isStateFunction<S>(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction<number>(\"increment\");\r\nconst decrement = createAction<number>(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction<number> {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer<S extends NotFunction<any>>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder<S>) => void\r\n): ReducerWithInitialState<S>\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction<any>,\r\n CR extends CaseReducers<S, any> = CaseReducers<S, any>\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection<S>,\r\n defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S>\r\n\r\nexport function createReducer<S extends NotFunction<any>>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers<S, any>\r\n | ((builder: ActionReducerMapBuilder<S>) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection<S> = [],\r\n defaultCaseReducer?: CaseReducer<S>\r\n): ReducerWithInitialState<S> {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft<S> // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\r\n // than an Immutable<S>, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft<S>) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState<S>\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload<any, unknown>\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = unknown,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue<RejectedValue, RejectedMeta>,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue<RejectedValue, RejectedMeta>\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n <FulfilledValue>(value: FulfilledValue) => FulfilledValue,\r\n <FulfilledValue>(\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta<FulfilledValue, FulfilledMeta>\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array<keyof SerializedError> = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue<Payload, RejectedMeta> {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta<Payload, FulfilledMeta> {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState<ThunkApiConfig> = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra<ThunkApiConfig> = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch<ThunkApiConfig> = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState<ThunkApiConfig>,\r\n GetExtra<ThunkApiConfig>,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch<GetState<ThunkApiConfig>, GetExtra<ThunkApiConfig>, AnyAction>\r\n\r\nexport type GetThunkAPI<ThunkApiConfig> = BaseThunkAPI<\r\n GetState<ThunkApiConfig>,\r\n GetExtra<ThunkApiConfig>,\r\n GetDispatch<ThunkApiConfig>,\r\n GetRejectValue<ThunkApiConfig>,\r\n GetRejectedMeta<ThunkApiConfig>,\r\n GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\ntype GetRejectValue<ThunkApiConfig> = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta<ThunkApiConfig> = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType<ThunkApiConfig> = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise<T> = T | Promise<T> | (T extends any ? Promise<T> : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta<ThunkApiConfig>,\r\n Returned,\r\n FulfillWithMeta<Returned, GetFulfilledMeta<ThunkApiConfig>>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue<ThunkApiConfig>,\r\n GetRejectedMeta<ThunkApiConfig>\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI<ThunkApiConfig>\r\n) => AsyncThunkPayloadCreatorReturnValue<Returned, ThunkApiConfig>\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch<ThunkApiConfig>,\r\n getState: () => GetState<ThunkApiConfig>,\r\n extra: GetExtra<ThunkApiConfig>\r\n) => Promise<\r\n | ReturnType<AsyncThunkFulfilledActionCreator<Returned, ThunkArg>>\r\n | ReturnType<AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise<Returned>\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): MaybePromise<boolean | undefined>\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType<ThunkApiConfig>\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta<ThunkApiConfig>,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): GetPendingMeta<ThunkApiConfig>\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick<GetThunkAPI<ThunkApiConfig>, 'getState' | 'extra'>\r\n ): GetPendingMeta<ThunkApiConfig>\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta<ThunkApiConfig>?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta<ThunkApiConfig>\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue<ThunkApiConfig>?,\r\n GetRejectedMeta<ThunkApiConfig>?\r\n ],\r\n GetRejectValue<ThunkApiConfig> | undefined,\r\n string,\r\n GetSerializedErrorType<ThunkApiConfig>,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta<ThunkApiConfig>]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta<ThunkApiConfig>)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta<ThunkApiConfig>?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta<ThunkApiConfig>\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator<Returned, ThunkArg, ThunkApiConfig> & {\r\n pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig>\r\n rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig>\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs<OldConfig, NewConfig> = Id<\r\n NewConfig & Omit<OldConfig, keyof NewConfig>\r\n>\r\n\r\ntype CreateAsyncThunk<CurriedThunkApiConfig extends AsyncThunkConfig> = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n <Returned, ThunkArg = void>(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions<ThunkArg, CurriedThunkApiConfig>\r\n ): AsyncThunk<Returned, ThunkArg, CurriedThunkApiConfig>\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n <Returned, ThunkArg, ThunkApiConfig extends AsyncThunkConfig>(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n\r\n withTypes<ThunkApiConfig extends AsyncThunkConfig>(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>\r\n ): AsyncThunk<Returned, ThunkArg, ThunkApiConfig> {\r\n type RejectedValue = GetRejectValue<ThunkApiConfig>\r\n type PendingMeta = GetPendingMeta<ThunkApiConfig>\r\n type FulfilledMeta = GetFulfilledMeta<ThunkApiConfig>\r\n type RejectedMeta = GetRejectedMeta<ThunkApiConfig>\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator<ThunkArg, ThunkApiConfig> =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator<ThunkArg, ThunkApiConfig> =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType<ThunkApiConfig>,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction<Returned, ThunkArg, ThunkApiConfig> {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType<typeof fulfilled | typeof rejected>\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise<never>((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise<any>, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then<any>(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk<AsyncThunkConfig>\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload<T extends UnwrappableAction> = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult<R extends UnwrappableAction>(\r\n action: R\r\n): UnwrappedActionPayload<R> {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks<True, False> = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike<any> {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type {\r\n ActionFromMatcher,\r\n Matcher,\r\n UnionToIntersection,\r\n} from './tsHelpers'\r\nimport { hasMatchFunction } from './tsHelpers'\r\nimport type {\r\n AsyncThunk,\r\n AsyncThunkFulfilledActionCreator,\r\n AsyncThunkPendingActionCreator,\r\n AsyncThunkRejectedActionCreator,\r\n} from './createAsyncThunk'\r\n\r\n/** @public */\r\nexport type ActionMatchingAnyOf<Matchers extends [...Matcher<any>[]]> =\r\n ActionFromMatcher<Matchers[number]>\r\n\r\n/** @public */\r\nexport type ActionMatchingAllOf<Matchers extends [...Matcher<any>[]]> =\r\n UnionToIntersection<ActionMatchingAnyOf<Matchers>>\r\n\r\nconst matches = (matcher: Matcher<any>, action: any) => {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action)\r\n } else {\r\n return matcher(action)\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches any one of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAnyOf<Matchers extends [...Matcher<any>[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAnyOf<Matchers> => {\r\n return matchers.some((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action matches all of the supplied type guards or action\r\n * creators.\r\n *\r\n * @param matchers The type guards or action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAllOf<Matchers extends [...Matcher<any>[]]>(\r\n ...matchers: Matchers\r\n) {\r\n return (action: any): action is ActionMatchingAllOf<Matchers> => {\r\n return matchers.every((matcher) => matches(matcher, action))\r\n }\r\n}\r\n\r\n/**\r\n * @param action A redux action\r\n * @param validStatus An array of valid meta.requestStatus values\r\n *\r\n * @internal\r\n */\r\nexport function hasExpectedRequestMetadata(\r\n action: any,\r\n validStatus: readonly string[]\r\n) {\r\n if (!action || !action.meta) return false\r\n\r\n const hasValidRequestId = typeof action.meta.requestId === 'string'\r\n const hasValidRequestStatus =\r\n validStatus.indexOf(action.meta.requestStatus) > -1\r\n\r\n return hasValidRequestId && hasValidRequestStatus\r\n}\r\n\r\nfunction isAsyncThunkArray(a: [any] | AnyAsyncThunk[]): a is AnyAsyncThunk[] {\r\n return (\r\n typeof a[0] === 'function' &&\r\n 'pending' in a[0] &&\r\n 'fulfilled' in a[0] &&\r\n 'rejected' in a[0]\r\n )\r\n}\r\n\r\nexport type UnknownAsyncThunkPendingAction = ReturnType<\r\n AsyncThunkPendingActionCreator<unknown>\r\n>\r\n\r\nexport type PendingActionFromAsyncThunk<T extends AnyAsyncThunk> =\r\n ActionFromMatcher<T['pending']>\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is pending.\r\n *\r\n * @public\r\n */\r\nexport function isPending(): (\r\n action: any\r\n) => action is UnknownAsyncThunkPendingAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is pending.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is PendingActionFromAsyncThunk<AsyncThunks[number]>\r\n/**\r\n * Tests if `action` is a pending thunk action\r\n * @public\r\n */\r\nexport function isPending(action: any): action is UnknownAsyncThunkPendingAction\r\nexport function isPending<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['pending'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is PendingActionFromAsyncThunk<AsyncThunks[number]> => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher<any>, ...Matcher<any>[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.pending\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedAction = ReturnType<\r\n AsyncThunkRejectedActionCreator<unknown, unknown>\r\n>\r\n\r\nexport type RejectedActionFromAsyncThunk<T extends AnyAsyncThunk> =\r\n ActionFromMatcher<T['rejected']>\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected.\r\n *\r\n * @public\r\n */\r\nexport function isRejected(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is RejectedActionFromAsyncThunk<AsyncThunks[number]>\r\n/**\r\n * Tests if `action` is a rejected thunk action\r\n * @public\r\n */\r\nexport function isRejected(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejected<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk<AsyncThunks[number]> => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher<any>, ...Matcher<any>[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.rejected\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkRejectedWithValueAction = ReturnType<\r\n AsyncThunkRejectedActionCreator<unknown, unknown>\r\n>\r\n\r\nexport type RejectedWithValueActionFromAsyncThunk<T extends AnyAsyncThunk> =\r\n ActionFromMatcher<T['rejected']> &\r\n (T extends AsyncThunk<any, any, { rejectValue: infer RejectedValue }>\r\n ? { payload: RejectedValue }\r\n : unknown)\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is rejected with value.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue(): (\r\n action: any\r\n) => action is UnknownAsyncThunkRejectedAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is rejected with value.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (\r\n action: any\r\n) => action is RejectedWithValueActionFromAsyncThunk<AsyncThunks[number]>\r\n/**\r\n * Tests if `action` is a rejected thunk action with value\r\n * @public\r\n */\r\nexport function isRejectedWithValue(\r\n action: any\r\n): action is UnknownAsyncThunkRejectedAction\r\nexport function isRejectedWithValue<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n const hasFlag = (action: any): action is any => {\r\n return action && action.meta && action.meta.rejectedWithValue\r\n }\r\n\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is RejectedActionFromAsyncThunk<AsyncThunks[number]> => {\r\n const combinedMatcher = isAllOf(isRejected(...asyncThunks), hasFlag)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkFulfilledAction = ReturnType<\r\n AsyncThunkFulfilledActionCreator<unknown, unknown>\r\n>\r\n\r\nexport type FulfilledActionFromAsyncThunk<T extends AnyAsyncThunk> =\r\n ActionFromMatcher<T['fulfilled']>\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator, and that\r\n * the action is fulfilled.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled(): (\r\n action: any\r\n) => action is UnknownAsyncThunkFulfilledAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators,\r\n * and that the action is fulfilled.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is FulfilledActionFromAsyncThunk<AsyncThunks[number]>\r\n/**\r\n * Tests if `action` is a fulfilled thunk action\r\n * @public\r\n */\r\nexport function isFulfilled(\r\n action: any\r\n): action is UnknownAsyncThunkFulfilledAction\r\nexport function isFulfilled<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) => hasExpectedRequestMetadata(action, ['fulfilled'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is FulfilledActionFromAsyncThunk<AsyncThunks[number]> => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher<any>, ...Matcher<any>[]] = asyncThunks.map(\r\n (asyncThunk) => asyncThunk.fulfilled\r\n ) as any\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n\r\nexport type UnknownAsyncThunkAction =\r\n | UnknownAsyncThunkPendingAction\r\n | UnknownAsyncThunkRejectedAction\r\n | UnknownAsyncThunkFulfilledAction\r\n\r\nexport type AnyAsyncThunk = {\r\n pending: { match: (action: any) => action is any }\r\n fulfilled: { match: (action: any) => action is any }\r\n rejected: { match: (action: any) => action is any }\r\n}\r\n\r\nexport type ActionsFromAsyncThunk<T extends AnyAsyncThunk> =\r\n | ActionFromMatcher<T['pending']>\r\n | ActionFromMatcher<T['fulfilled']>\r\n | ActionFromMatcher<T['rejected']>\r\n\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action was created by an async thunk action creator.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(): (\r\n action: any\r\n) => action is UnknownAsyncThunkAction\r\n/**\r\n * A higher-order function that returns a function that may be used to check\r\n * whether an action belongs to one of the provided async thunk action creators.\r\n *\r\n * @param asyncThunks (optional) The async thunk action creators to match against.\r\n *\r\n * @public\r\n */\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(\r\n ...asyncThunks: AsyncThunks\r\n): (action: any) => action is ActionsFromAsyncThunk<AsyncThunks[number]>\r\n/**\r\n * Tests if `action` is a thunk action\r\n * @public\r\n */\r\nexport function isAsyncThunkAction(\r\n action: any\r\n): action is UnknownAsyncThunkAction\r\nexport function isAsyncThunkAction<\r\n AsyncThunks extends [AnyAsyncThunk, ...AnyAsyncThunk[]]\r\n>(...asyncThunks: AsyncThunks | [any]) {\r\n if (asyncThunks.length === 0) {\r\n return (action: any) =>\r\n hasExpectedRequestMetadata(action, ['pending', 'fulfilled', 'rejected'])\r\n }\r\n\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0])\r\n }\r\n\r\n return (\r\n action: any\r\n ): action is ActionsFromAsyncThunk<AsyncThunks[number]> => {\r\n // note: this type will be correct because we have at least 1 asyncThunk\r\n const matchers: [Matcher<any>, ...Matcher<any>[]] = [] as any\r\n\r\n for (const asyncThunk of asyncThunks) {\r\n matchers.push(\r\n asyncThunk.pending,\r\n asyncThunk.rejected,\r\n asyncThunk.fulfilled\r\n )\r\n }\r\n\r\n const combinedMatcher = isAnyOf(...matchers)\r\n\r\n return combinedMatcher(action)\r\n }\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction, isAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n ForkOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (\r\n parentAbortSignal: AbortSignalWithReason<unknown>,\r\n parentBlockingPromises: Promise<any>[]\r\n) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return <T>(\r\n taskExecutor: ForkedTaskExecutor<T>,\r\n opts?: ForkOptions\r\n ): ForkedTask<T> => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask<T>(\r\n async (): Promise<T> => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n if (opts?.autoJoin) {\r\n parentBlockingPromises.push(result)\r\n }\r\n\r\n return {\r\n result: createPause<TaskResult<T>>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = <S>(\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch<AnyAction>\r\n >,\r\n signal: AbortSignal\r\n): TakePattern<S> => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async <P extends AnyListenerPredicate<S>>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise<null> | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise<null>((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern<S>\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry<unknown> = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set<AbortController>(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry<unknown, Dispatch<AnyAction>>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map<string, ListenerEntry>\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener<unknown>\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener<unknown>\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch<AnyAction> = ThunkDispatch<S, unknown, AnyAction>,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) {\r\n const listenerMap = new Map<string, ListenerEntry>()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry<unknown, Dispatch<AnyAction>>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n const autoJoinPromises: Promise<any>[] = []\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate<any>,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause<any>(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n await Promise.allSettled(autoJoinPromises)\r\n\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware<S, D, ExtraArgument> =\r\n (api) => (next) => (action) => {\r\n if (!isAction(action)) {\r\n // we only want to notify listeners for action objects\r\n return next(action)\r\n }\r\n\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance<S, D, ExtraArgument>\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason<string>).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal<T>(\r\n signal: AbortSignalWithReason<string>,\r\n promise: Promise<T>\r\n): Promise<T> {\r\n let cleanup = noop\r\n return new Promise<T>((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async <T>(\r\n task: () => Promise<T>,\r\n cleanUp?: () => void\r\n): Promise<TaskResult<T>> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = <T>(signal: AbortSignal) => {\r\n return (promise: Promise<T>): Promise<T> => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause<void>(signal)\r\n return (timeoutMs: number): Promise<void> => {\r\n return pause(new Promise<void>((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n <T>() =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise<any>\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n isAction,\r\n isActionCreator,\r\n isFSA as isFluxStandardAction,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware'\r\nexport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray, EnhancerArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n\r\nexport type { ExtractDispatchExtensions as TSHelpersExtractDispatchExtensions } from './tsHelpers'\r\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","import type { SerializedError } from '@reduxjs/toolkit'\r\nimport type { BaseQueryError } from '../baseQueryTypes'\r\nimport type {\r\n QueryDefinition,\r\n MutationDefinition,\r\n EndpointDefinitions,\r\n BaseEndpointDefinition,\r\n ResultTypeFrom,\r\n QueryArgFrom,\r\n} from '../endpointDefinitions'\r\nimport type { Id, WithRequiredProp } from '../tsHelpers'\r\n\r\nexport type QueryCacheKey = string & { _type: 'queryCacheKey' }\r\nexport type QuerySubstateIdentifier = { queryCacheKey: QueryCacheKey }\r\nexport type MutationSubstateIdentifier =\r\n | {\r\n requestId: string\r\n fixedCacheKey?: string\r\n }\r\n | {\r\n requestId?: string\r\n fixedCacheKey: string\r\n }\r\n\r\nexport type RefetchConfigOptions = {\r\n refetchOnMountOrArgChange: boolean | number\r\n refetchOnReconnect: boolean\r\n refetchOnFocus: boolean\r\n}\r\n\r\n/**\r\n * Strings describing the query state at any given time.\r\n */\r\nexport enum QueryStatus {\r\n uninitialized = 'uninitialized',\r\n pending = 'pending',\r\n fulfilled = 'fulfilled',\r\n rejected = 'rejected',\r\n}\r\n\r\nexport type RequestStatusFlags =\r\n | {\r\n status: QueryStatus.uninitialized\r\n isUninitialized: true\r\n isLoading: false\r\n isSuccess: false\r\n isError: false\r\n }\r\n | {\r\n status: QueryStatus.pending\r\n isUninitialized: false\r\n isLoading: true\r\n isSuccess: false\r\n isError: false\r\n }\r\n | {\r\n status: QueryStatus.fulfilled\r\n isUninitialized: false\r\n isLoading: false\r\n isSuccess: true\r\n isError: false\r\n }\r\n | {\r\n status: QueryStatus.rejected\r\n isUninitialized: false\r\n isLoading: false\r\n isSuccess: false\r\n isError: true\r\n }\r\n\r\nexport function getRequestStatusFlags(status: QueryStatus): RequestStatusFlags {\r\n return {\r\n status,\r\n isUninitialized: status === QueryStatus.uninitialized,\r\n isLoading: status === QueryStatus.pending,\r\n isSuccess: status === QueryStatus.fulfilled,\r\n isError: status === QueryStatus.rejected,\r\n } as any\r\n}\r\n\r\nexport type SubscriptionOptions = {\r\n /**\r\n * How frequently to automatically re-fetch data (in milliseconds). Defaults to `0` (off).\r\n */\r\n pollingInterval?: number\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnReconnect?: boolean\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnFocus?: boolean\r\n}\r\nexport type Subscribers = { [requestId: string]: SubscriptionOptions }\r\nexport type QueryKeys<Definitions extends EndpointDefinitions> = {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? K\r\n : never\r\n}[keyof Definitions]\r\nexport type MutationKeys<Definitions extends EndpointDefinitions> = {\r\n [K in keyof Definitions]: Definitions[K] extends MutationDefinition<\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? K\r\n : never\r\n}[keyof Definitions]\r\n\r\ntype BaseQuerySubState<D extends BaseEndpointDefinition<any, any, any>> = {\r\n /**\r\n * The argument originally passed into the hook or `initiate` action call\r\n */\r\n originalArgs: QueryArgFrom<D>\r\n /**\r\n * A unique ID associated with the request\r\n */\r\n requestId: string\r\n /**\r\n * The received data from the query\r\n */\r\n data?: ResultTypeFrom<D>\r\n /**\r\n * The received error if applicable\r\n */\r\n error?:\r\n | SerializedError\r\n | (D extends QueryDefinition<any, infer BaseQuery, any, any>\r\n ? BaseQueryError<BaseQuery>\r\n : never)\r\n /**\r\n * The name of the endpoint associated with the query\r\n */\r\n endpointName: string\r\n /**\r\n * Time that the latest query started\r\n */\r\n startedTimeStamp: number\r\n /**\r\n * Time that the latest query was fulfilled\r\n */\r\n fulfilledTimeStamp?: number\r\n}\r\n\r\nexport type QuerySubState<D extends BaseEndpointDefinition<any, any, any>> = Id<\r\n | ({\r\n status: QueryStatus.fulfilled\r\n } & WithRequiredProp<\r\n BaseQuerySubState<D>,\r\n 'data' | 'fulfilledTimeStamp'\r\n > & { error: undefined })\r\n | ({\r\n status: QueryStatus.pending\r\n } & BaseQuerySubState<D>)\r\n | ({\r\n status: QueryStatus.rejected\r\n } & WithRequiredProp<BaseQuerySubState<D>, 'error'>)\r\n | {\r\n status: QueryStatus.uninitialized\r\n originalArgs?: undefined\r\n data?: undefined\r\n error?: undefined\r\n requestId?: undefined\r\n endpointName?: string\r\n startedTimeStamp?: undefined\r\n fulfilledTimeStamp?: undefined\r\n }\r\n>\r\n\r\ntype BaseMutationSubState<D extends BaseEndpointDefinition<any, any, any>> = {\r\n requestId: string\r\n data?: ResultTypeFrom<D>\r\n error?:\r\n | SerializedError\r\n | (D extends MutationDefinition<any, infer BaseQuery, any, any>\r\n ? BaseQueryError<BaseQuery>\r\n : never)\r\n endpointName: string\r\n startedTimeStamp: number\r\n fulfilledTimeStamp?: number\r\n}\r\n\r\nexport type MutationSubState<D extends BaseEndpointDefinition<any, any, any>> =\r\n | (({\r\n status: QueryStatus.fulfilled\r\n } & WithRequiredProp<\r\n BaseMutationSubState<D>,\r\n 'data' | 'fulfilledTimeStamp'\r\n >) & { error: undefined })\r\n | (({\r\n status: QueryStatus.pending\r\n } & BaseMutationSubState<D>) & { data?: undefined })\r\n | ({\r\n status: QueryStatus.rejected\r\n } & WithRequiredProp<BaseMutationSubState<D>, 'error'>)\r\n | {\r\n requestId?: undefined\r\n status: QueryStatus.uninitialized\r\n data?: undefined\r\n error?: undefined\r\n endpointName?: string\r\n startedTimeStamp?: undefined\r\n fulfilledTimeStamp?: undefined\r\n }\r\n\r\nexport type CombinedState<\r\n D extends EndpointDefinitions,\r\n E extends string,\r\n ReducerPath extends string\r\n> = {\r\n queries: QueryState<D>\r\n mutations: MutationState<D>\r\n provided: InvalidationState<E>\r\n subscriptions: SubscriptionState\r\n config: ConfigState<ReducerPath>\r\n}\r\n\r\nexport type InvalidationState<TagTypes extends string> = {\r\n [_ in TagTypes]: {\r\n [id: string]: Array<QueryCacheKey>\r\n [id: number]: Array<QueryCacheKey>\r\n }\r\n}\r\n\r\nexport type QueryState<D extends EndpointDefinitions> = {\r\n [queryCacheKey: string]: QuerySubState<D[string]> | undefined\r\n}\r\n\r\nexport type SubscriptionState = {\r\n [queryCacheKey: string]: Subscribers | undefined\r\n}\r\n\r\nexport type ConfigState<ReducerPath> = RefetchConfigOptions & {\r\n reducerPath: ReducerPath\r\n online: boolean\r\n focused: boolean\r\n middlewareRegistered: boolean | 'conflict'\r\n} & ModifiableConfigState\r\n\r\nexport type ModifiableConfigState = {\r\n keepUnusedDataFor: number\r\n} & RefetchConfigOptions\r\n\r\nexport type MutationState<D extends EndpointDefinitions> = {\r\n [requestId: string]: MutationSubState<D[string]> | undefined\r\n}\r\n\r\nexport type RootState<\r\n Definitions extends EndpointDefinitions,\r\n TagTypes extends string,\r\n ReducerPath extends string\r\n> = {\r\n [P in ReducerPath]: CombinedState<Definitions, TagTypes, P>\r\n}\r\n","import { isAbsoluteUrl } from './isAbsoluteUrl'\r\n\r\nconst withoutTrailingSlash = (url: string) => url.replace(/\\/$/, '')\r\nconst withoutLeadingSlash = (url: string) => url.replace(/^\\//, '')\r\n\r\nexport function joinUrls(\r\n base: string | undefined,\r\n url: string | undefined\r\n): string {\r\n if (!base) {\r\n return url!\r\n }\r\n if (!url) {\r\n return base\r\n }\r\n\r\n if (isAbsoluteUrl(url)) {\r\n return url\r\n }\r\n\r\n const delimiter = base.endsWith('/') || !url.startsWith('?') ? '/' : ''\r\n base = withoutTrailingSlash(base)\r\n url = withoutLeadingSlash(url)\r\n\r\n return `${base}${delimiter}${url}`;\r\n}\r\n","/**\r\n * If either :// or // is present consider it to be an absolute url\r\n *\r\n * @param url string\r\n */\r\n\r\nexport function isAbsoluteUrl(url: string) {\r\n return new RegExp(`(^|:)//`).test(url)\r\n}\r\n","/**\r\n * Alternative to `Array.flat(1)`\r\n * @param arr An array like [1,2,3,[1,2]]\r\n * @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat\r\n */\r\nexport const flatten = (arr: readonly any[]) => [].concat(...arr)\r\n","import { isPlainObject as _iPO } from '@reduxjs/toolkit'\r\n\r\n// remove type guard\r\nconst isPlainObject: (_: any) => boolean = _iPO\r\n\r\nexport function copyWithStructuralSharing<T>(oldObj: any, newObj: T): T\r\nexport function copyWithStructuralSharing(oldObj: any, newObj: any): any {\r\n if (\r\n oldObj === newObj ||\r\n !(\r\n (isPlainObject(oldObj) && isPlainObject(newObj)) ||\r\n (Array.isArray(oldObj) && Array.isArray(newObj))\r\n )\r\n ) {\r\n return newObj\r\n }\r\n const newKeys = Object.keys(newObj)\r\n const oldKeys = Object.keys(oldObj)\r\n\r\n let isSameObject = newKeys.length === oldKeys.length\r\n const mergeObj: any = Array.isArray(newObj) ? [] : {}\r\n for (const key of newKeys) {\r\n mergeObj[key] = copyWithStructuralSharing(oldObj[key], newObj[key])\r\n if (isSameObject) isSameObject = oldObj[key] === mergeObj[key]\r\n }\r\n return isSameObject ? oldObj : mergeObj\r\n}\r\n","import { joinUrls } from './utils'\r\nimport { isPlainObject } from '@reduxjs/toolkit'\r\nimport type { BaseQueryApi, BaseQueryFn } from './baseQueryTypes'\r\nimport type { MaybePromise, Override } from './tsHelpers'\r\n\r\nexport type ResponseHandler =\r\n | 'content-type'\r\n | 'json'\r\n | 'text'\r\n | ((response: Response) => Promise<any>)\r\n\r\ntype CustomRequestInit = Override<\r\n RequestInit,\r\n {\r\n headers?:\r\n | Headers\r\n | string[][]\r\n | Record<string, string | undefined>\r\n | undefined\r\n }\r\n>\r\n\r\nexport interface FetchArgs extends CustomRequestInit {\r\n url: string\r\n params?: Record<string, any>\r\n body?: any\r\n responseHandler?: ResponseHandler\r\n validateStatus?: (response: Response, body: any) => boolean\r\n /**\r\n * A number in milliseconds that represents that maximum time a request can take before timing out.\r\n */\r\n timeout?: number\r\n}\r\n\r\n/**\r\n * A mini-wrapper that passes arguments straight through to\r\n * {@link [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)}.\r\n * Avoids storing `fetch` in a closure, in order to permit mocking/monkey-patching.\r\n */\r\nconst defaultFetchFn: typeof fetch = (...args) => fetch(...args)\r\n\r\nconst defaultValidateStatus = (response: Response) =>\r\n response.status >= 200 && response.status <= 299\r\n\r\nconst defaultIsJsonContentType = (headers: Headers) =>\r\n /*applicat*/ /ion\\/(vnd\\.api\\+)?json/.test(headers.get('content-type') || '')\r\n\r\nexport type FetchBaseQueryError =\r\n | {\r\n /**\r\n * * `number`:\r\n * HTTP status code\r\n */\r\n status: number\r\n data: unknown\r\n }\r\n | {\r\n /**\r\n * * `\"FETCH_ERROR\"`:\r\n * An error that occurred during execution of `fetch` or the `fetchFn` callback option\r\n **/\r\n status: 'FETCH_ERROR'\r\n data?: undefined\r\n error: string\r\n }\r\n | {\r\n /**\r\n * * `\"PARSING_ERROR\"`:\r\n * An error happened during parsing.\r\n * Most likely a non-JSON-response was returned with the default `responseHandler` \"JSON\",\r\n * or an error occurred while executing a custom `responseHandler`.\r\n **/\r\n status: 'PARSING_ERROR'\r\n originalStatus: number\r\n data: string\r\n error: string\r\n }\r\n | {\r\n /**\r\n * * `\"TIMEOUT_ERROR\"`:\r\n * Request timed out\r\n **/\r\n status: 'TIMEOUT_ERROR'\r\n data?: undefined\r\n error: string\r\n }\r\n | {\r\n /**\r\n * * `\"CUSTOM_ERROR\"`:\r\n * A custom error type that you can return from your `queryFn` where another error might not make sense.\r\n **/\r\n status: 'CUSTOM_ERROR'\r\n data?: unknown\r\n error: string\r\n }\r\n\r\nfunction stripUndefined(obj: any) {\r\n if (!isPlainObject(obj)) {\r\n return obj\r\n }\r\n const copy: Record<string, any> = { ...obj }\r\n for (const [k, v] of Object.entries(copy)) {\r\n if (v === undefined) delete copy[k]\r\n }\r\n return copy\r\n}\r\n\r\nexport type FetchBaseQueryArgs = {\r\n baseUrl?: string\r\n prepareHeaders?: (\r\n headers: Headers,\r\n api: Pick<\r\n BaseQueryApi,\r\n 'getState' | 'extra' | 'endpoint' | 'type' | 'forced'\r\n >\r\n ) => MaybePromise<Headers | void>\r\n fetchFn?: (\r\n input: RequestInfo,\r\n init?: RequestInit | undefined\r\n ) => Promise<Response>\r\n paramsSerializer?: (params: Record<string, any>) => string\r\n /**\r\n * By default, we only check for 'application/json' and 'application/vnd.api+json' as the content-types for json. If you need to support another format, you can pass\r\n * in a predicate function for your given api to get the same automatic stringifying behavior\r\n * @example\r\n * ```ts\r\n * const isJsonContentType = (headers: Headers) => [\"application/vnd.api+json\", \"application/json\", \"application/vnd.hal+json\"].includes(headers.get(\"content-type\")?.trim());\r\n * ```\r\n */\r\n isJsonContentType?: (headers: Headers) => boolean\r\n /**\r\n * Defaults to `application/json`;\r\n */\r\n jsonContentType?: string\r\n\r\n /**\r\n * Custom replacer function used when calling `JSON.stringify()`;\r\n */\r\n jsonReplacer?: (this: any, key: string, value: any) => any\r\n} & RequestInit &\r\n Pick<FetchArgs, 'responseHandler' | 'validateStatus' | 'timeout'>\r\n\r\nexport type FetchBaseQueryMeta = { request: Request; response?: Response }\r\n\r\n/**\r\n * This is a very small wrapper around fetch that aims to simplify requests.\r\n *\r\n * @example\r\n * ```ts\r\n * const baseQuery = fetchBaseQuery({\r\n * baseUrl: 'https://api.your-really-great-app.com/v1/',\r\n * prepareHeaders: (headers, { getState }) => {\r\n * const token = (getState() as RootState).auth.token;\r\n * // If we have a token set in state, let's assume that we should be passing it.\r\n * if (token) {\r\n * headers.set('authorization', `Bearer ${token}`);\r\n * }\r\n * return headers;\r\n * },\r\n * })\r\n * ```\r\n *\r\n * @param {string} baseUrl\r\n * The base URL for an API service.\r\n * Typically in the format of https://example.com/\r\n *\r\n * @param {(headers: Headers, api: { getState: () => unknown; extra: unknown; endpoint: string; type: 'query' | 'mutation'; forced: boolean; }) => Headers} prepareHeaders\r\n * An optional function that can be used to inject headers on requests.\r\n * Provides a Headers object, as well as most of the `BaseQueryApi` (`dispatch` is not available).\r\n * Useful for setting authentication or headers that need to be set conditionally.\r\n *\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Headers\r\n *\r\n * @param {(input: RequestInfo, init?: RequestInit | undefined) => Promise<Response>} fetchFn\r\n * Accepts a custom `fetch` function if you do not want to use the default on the window.\r\n * Useful in SSR environments if you need to use a library such as `isomorphic-fetch` or `cross-fetch`\r\n *\r\n * @param {(params: Record<string, unknown>) => string} paramsSerializer\r\n * An optional function that can be used to stringify querystring parameters.\r\n *\r\n * @param {(headers: Headers) => boolean} isJsonContentType\r\n * An optional predicate function to determine if `JSON.stringify()` should be called on the `body` arg of `FetchArgs`\r\n *\r\n * @param {string} jsonContentType Used when automatically setting the content-type header for a request with a jsonifiable body that does not have an explicit content-type header. Defaults to `application/json`.\r\n *\r\n * @param {(this: any, key: string, value: any) => any} jsonReplacer Custom replacer function used when calling `JSON.stringify()`.\r\n *\r\n * @param {number} timeout\r\n * A number in milliseconds that represents the maximum time a request can take before timing out.\r\n */\r\nexport function fetchBaseQuery({\r\n baseUrl,\r\n prepareHeaders = (x) => x,\r\n fetchFn = defaultFetchFn,\r\n paramsSerializer,\r\n isJsonContentType = defaultIsJsonContentType,\r\n jsonContentType = 'application/json',\r\n jsonReplacer,\r\n timeout: defaultTimeout,\r\n responseHandler: globalResponseHandler,\r\n validateStatus: globalValidateStatus,\r\n ...baseFetchOptions\r\n}: FetchBaseQueryArgs = {}): BaseQueryFn<\r\n string | FetchArgs,\r\n unknown,\r\n FetchBaseQueryError,\r\n {},\r\n FetchBaseQueryMeta\r\n> {\r\n if (typeof fetch === 'undefined' && fetchFn === defaultFetchFn) {\r\n console.warn(\r\n 'Warning: `fetch` is not available. Please supply a custom `fetchFn` property to use `fetchBaseQuery` on SSR environments.'\r\n )\r\n }\r\n return async (arg, api) => {\r\n const { signal, getState, extra, endpoint, forced, type } = api\r\n let meta: FetchBaseQueryMeta | undefined\r\n let {\r\n url,\r\n headers = new Headers(baseFetchOptions.headers),\r\n params = undefined,\r\n responseHandler = globalResponseHandler ?? ('json' as const),\r\n validateStatus = globalValidateStatus ?? defaultValidateStatus,\r\n timeout = defaultTimeout,\r\n ...rest\r\n } = typeof arg == 'string' ? { url: arg } : arg\r\n let config: RequestInit = {\r\n ...baseFetchOptions,\r\n signal,\r\n ...rest,\r\n }\r\n\r\n headers = new Headers(stripUndefined(headers))\r\n config.headers =\r\n (await prepareHeaders(headers, {\r\n getState,\r\n extra,\r\n endpoint,\r\n forced,\r\n type,\r\n })) || headers\r\n\r\n // Only set the content-type to json if appropriate. Will not be true for FormData, ArrayBuffer, Blob, etc.\r\n const isJsonifiable = (body: any) =>\r\n typeof body === 'object' &&\r\n (isPlainObject(body) ||\r\n Array.isArray(body) ||\r\n typeof body.toJSON === 'function')\r\n\r\n if (!config.headers.has('content-type') && isJsonifiable(config.body)) {\r\n config.headers.set('content-type', jsonContentType)\r\n }\r\n\r\n if (isJsonifiable(config.body) && isJsonContentType(config.headers)) {\r\n config.body = JSON.stringify(config.body, jsonReplacer)\r\n }\r\n\r\n if (params) {\r\n const divider = ~url.indexOf('?') ? '&' : '?'\r\n const query = paramsSerializer\r\n ? paramsSerializer(params)\r\n : new URLSearchParams(stripUndefined(params))\r\n url += divider + query\r\n }\r\n\r\n url = joinUrls(baseUrl, url)\r\n\r\n const request = new Request(url, config)\r\n const requestClone = new Request(url, config)\r\n meta = { request: requestClone }\r\n\r\n let response,\r\n timedOut = false,\r\n timeoutId =\r\n timeout &&\r\n setTimeout(() => {\r\n timedOut = true\r\n api.abort()\r\n }, timeout)\r\n try {\r\n response = await fetchFn(request)\r\n } catch (e) {\r\n return {\r\n error: {\r\n status: timedOut ? 'TIMEOUT_ERROR' : 'FETCH_ERROR',\r\n error: String(e),\r\n },\r\n meta,\r\n }\r\n } finally {\r\n if (timeoutId) clearTimeout(timeoutId)\r\n }\r\n const responseClone = response.clone()\r\n\r\n meta.response = responseClone\r\n\r\n let resultData: any\r\n let responseText: string = ''\r\n try {\r\n let handleResponseError\r\n await Promise.all([\r\n handleResponse(response, responseHandler).then(\r\n (r) => (resultData = r),\r\n (e) => (handleResponseError = e)\r\n ),\r\n // see https://github.com/node-fetch/node-fetch/issues/665#issuecomment-538995182\r\n // we *have* to \"use up\" both streams at the same time or they will stop running in node-fetch scenarios\r\n responseClone.text().then(\r\n (r) => (responseText = r),\r\n () => {}\r\n ),\r\n ])\r\n if (handleResponseError) throw handleResponseError\r\n } catch (e) {\r\n return {\r\n error: {\r\n status: 'PARSING_ERROR',\r\n originalStatus: response.status,\r\n data: responseText,\r\n error: String(e),\r\n },\r\n meta,\r\n }\r\n }\r\n\r\n return validateStatus(response, resultData)\r\n ? {\r\n data: resultData,\r\n meta,\r\n }\r\n : {\r\n error: {\r\n status: response.status,\r\n data: resultData,\r\n },\r\n meta,\r\n }\r\n }\r\n\r\n async function handleResponse(\r\n response: Response,\r\n responseHandler: ResponseHandler\r\n ) {\r\n if (typeof responseHandler === 'function') {\r\n return responseHandler(response)\r\n }\r\n\r\n if (responseHandler === 'content-type') {\r\n responseHandler = isJsonContentType(response.headers) ? 'json' : 'text'\r\n }\r\n\r\n if (responseHandler === 'json') {\r\n const text = await response.text()\r\n return text.length ? JSON.parse(text) : null\r\n }\r\n\r\n return response.text()\r\n }\r\n}\r\n","export class HandledError {\r\n constructor(\r\n public readonly value: any,\r\n public readonly meta: any = undefined\r\n ) {}\r\n}\r\n","import type {\r\n BaseQueryApi,\r\n BaseQueryArg,\r\n BaseQueryEnhancer,\r\n BaseQueryExtraOptions,\r\n BaseQueryFn,\r\n} from './baseQueryTypes'\r\nimport type { FetchBaseQueryError } from './fetchBaseQuery'\r\nimport { HandledError } from './HandledError'\r\n\r\n/**\r\n * Exponential backoff based on the attempt number.\r\n *\r\n * @remarks\r\n * 1. 600ms * random(0.4, 1.4)\r\n * 2. 1200ms * random(0.4, 1.4)\r\n * 3. 2400ms * random(0.4, 1.4)\r\n * 4. 4800ms * random(0.4, 1.4)\r\n * 5. 9600ms * random(0.4, 1.4)\r\n *\r\n * @param attempt - Current attempt\r\n * @param maxRetries - Maximum number of retries\r\n */\r\nasync function defaultBackoff(attempt: number = 0, maxRetries: number = 5) {\r\n const attempts = Math.min(attempt, maxRetries)\r\n\r\n const timeout = ~~((Math.random() + 0.4) * (300 << attempts)) // Force a positive int in the case we make this an option\r\n await new Promise((resolve) =>\r\n setTimeout((res: any) => resolve(res), timeout)\r\n )\r\n}\r\n\r\ntype RetryConditionFunction = (\r\n error: FetchBaseQueryError,\r\n args: BaseQueryArg<BaseQueryFn>,\r\n extraArgs: {\r\n attempt: number\r\n baseQueryApi: BaseQueryApi\r\n extraOptions: BaseQueryExtraOptions<BaseQueryFn> & RetryOptions\r\n }\r\n) => boolean\r\n\r\nexport type RetryOptions = {\r\n /**\r\n * Function used to determine delay between retries\r\n */\r\n backoff?: (attempt: number, maxRetries: number) => Promise<void>\r\n} & (\r\n | {\r\n /**\r\n * How many times the query will be retried (default: 5)\r\n */\r\n maxRetries?: number\r\n retryCondition?: undefined\r\n }\r\n | {\r\n /**\r\n * Callback to determine if a retry should be attempted.\r\n * Return `true` for another retry and `false` to quit trying prematurely.\r\n */\r\n retryCondition?: RetryConditionFunction\r\n maxRetries?: undefined\r\n }\r\n)\r\n\r\nfunction fail(e: any): never {\r\n throw Object.assign(new HandledError({ error: e }), {\r\n throwImmediately: true,\r\n })\r\n}\r\n\r\nconst EMPTY_OPTIONS = {}\r\n\r\nconst retryWithBackoff: BaseQueryEnhancer<\r\n unknown,\r\n RetryOptions,\r\n RetryOptions | void\r\n> = (baseQuery, defaultOptions) => async (args, api, extraOptions) => {\r\n // We need to figure out `maxRetries` before we define `defaultRetryCondition.\r\n // This is probably goofy, but ought to work.\r\n // Put our defaults in one array, filter out undefineds, grab the last value.\r\n const possibleMaxRetries: number[] = [\r\n 5,\r\n ((defaultOptions as any) || EMPTY_OPTIONS).maxRetries,\r\n ((extraOptions as any) || EMPTY_OPTIONS).maxRetries,\r\n ].filter(x => x !== undefined)\r\n const [maxRetries] = possibleMaxRetries.slice(-1)\r\n\r\n const defaultRetryCondition: RetryConditionFunction = (_, __, { attempt }) =>\r\n attempt <= maxRetries\r\n\r\n const options: {\r\n maxRetries: number\r\n backoff: typeof defaultBackoff\r\n retryCondition: typeof defaultRetryCondition\r\n } = {\r\n maxRetries,\r\n backoff: defaultBackoff,\r\n retryCondition: defaultRetryCondition,\r\n ...defaultOptions,\r\n ...extraOptions,\r\n }\r\n let retry = 0\r\n\r\n while (true) {\r\n try {\r\n const result = await baseQuery(args, api, extraOptions)\r\n // baseQueries _should_ return an error property, so we should check for that and throw it to continue retrying\r\n if (result.error) {\r\n throw new HandledError(result)\r\n }\r\n return result\r\n } catch (e: any) {\r\n retry++\r\n\r\n if (e.throwImmediately) {\r\n if (e instanceof HandledError) {\r\n return e.value\r\n }\r\n\r\n // We don't know what this is, so we have to rethrow it\r\n throw e\r\n }\r\n\r\n if (\r\n e instanceof HandledError &&\r\n !options.retryCondition(e.value.error as FetchBaseQueryError, args, {\r\n attempt: retry,\r\n baseQueryApi: api,\r\n extraOptions,\r\n })\r\n ) {\r\n return e.value\r\n }\r\n await options.backoff(retry, options.maxRetries)\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A utility that can wrap `baseQuery` in the API definition to provide retries with a basic exponential backoff.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"Retry every request 5 times by default\"\r\n * import { createApi, fetchBaseQuery, retry } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * // maxRetries: 5 is the default, and can be omitted. Shown for documentation purposes.\r\n * const staggeredBaseQuery = retry(fetchBaseQuery({ baseUrl: '/' }), { maxRetries: 5 });\r\n * export const api = createApi({\r\n * baseQuery: staggeredBaseQuery,\r\n * endpoints: (build) => ({\r\n * getPosts: build.query<PostsResponse, void>({\r\n * query: () => ({ url: 'posts' }),\r\n * }),\r\n * getPost: build.query<PostsResponse, string>({\r\n * query: (id) => ({ url: `post/${id}` }),\r\n * extraOptions: { maxRetries: 8 }, // You can override the retry behavior on each endpoint\r\n * }),\r\n * }),\r\n * });\r\n *\r\n * export const { useGetPostsQuery, useGetPostQuery } = api;\r\n * ```\r\n */\r\nexport const retry = /* @__PURE__ */ Object.assign(retryWithBackoff, { fail })\r\n","import type { AnyAction, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport type { QuerySubState, RootState } from './core/apiState'\r\nimport type {\r\n BaseQueryExtraOptions,\r\n BaseQueryFn,\r\n BaseQueryResult,\r\n BaseQueryArg,\r\n BaseQueryApi,\r\n QueryReturnValue,\r\n BaseQueryError,\r\n BaseQueryMeta,\r\n} from './baseQueryTypes'\r\nimport type {\r\n HasRequiredProps,\r\n MaybePromise,\r\n OmitFromUnion,\r\n CastAny,\r\n NonUndefined,\r\n UnwrapPromise,\r\n} from './tsHelpers'\r\nimport type { NEVER } from './fakeBaseQuery'\r\nimport type { Api } from '@reduxjs/toolkit/query'\r\n\r\nconst resultType = /* @__PURE__ */ Symbol()\r\nconst baseQuery = /* @__PURE__ */ Symbol()\r\n\r\ninterface EndpointDefinitionWithQuery<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n /**\r\n * `query` can be a function that returns either a `string` or an `object` which is passed to your `baseQuery`. If you are using [fetchBaseQuery](./fetchBaseQuery), this can return either a `string` or an `object` of properties in `FetchArgs`. If you use your own custom [`baseQuery`](../../rtk-query/usage/customizing-queries), you can customize this behavior to your liking.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"query example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Post'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query<PostsResponse, void>({\r\n * // highlight-start\r\n * query: () => 'posts',\r\n * // highlight-end\r\n * }),\r\n * addPost: build.mutation<Post, Partial<Post>>({\r\n * // highlight-start\r\n * query: (body) => ({\r\n * url: `posts`,\r\n * method: 'POST',\r\n * body,\r\n * }),\r\n * // highlight-end\r\n * invalidatesTags: [{ type: 'Post', id: 'LIST' }],\r\n * }),\r\n * })\r\n * })\r\n * ```\r\n */\r\n query(arg: QueryArg): BaseQueryArg<BaseQuery>\r\n queryFn?: never\r\n /**\r\n * A function to manipulate the data returned by a query or mutation.\r\n */\r\n transformResponse?(\r\n baseQueryReturnValue: BaseQueryResult<BaseQuery>,\r\n meta: BaseQueryMeta<BaseQuery>,\r\n arg: QueryArg\r\n ): ResultType | Promise<ResultType>\r\n /**\r\n * A function to manipulate the data returned by a failed query or mutation.\r\n */\r\n transformErrorResponse?(\r\n baseQueryReturnValue: BaseQueryError<BaseQuery>,\r\n meta: BaseQueryMeta<BaseQuery>,\r\n arg: QueryArg\r\n ): unknown\r\n /**\r\n * Defaults to `true`.\r\n *\r\n * Most apps should leave this setting on. The only time it can be a performance issue\r\n * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\r\n * you're unable to paginate it.\r\n *\r\n * For details of how this works, please see the below. When it is set to `false`,\r\n * every request will cause subscribed components to rerender, even when the data has not changed.\r\n *\r\n * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\r\n */\r\n structuralSharing?: boolean\r\n}\r\n\r\ninterface EndpointDefinitionWithQueryFn<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n /**\r\n * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint.\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Basic queryFn example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * getPosts: build.query<PostsResponse, void>({\r\n * query: () => 'posts',\r\n * }),\r\n * flipCoin: build.query<'heads' | 'tails', void>({\r\n * // highlight-start\r\n * queryFn(arg, queryApi, extraOptions, baseQuery) {\r\n * const randomVal = Math.random()\r\n * if (randomVal < 0.45) {\r\n * return { data: 'heads' }\r\n * }\r\n * if (randomVal < 0.9) {\r\n * return { data: 'tails' }\r\n * }\r\n * return { error: { status: 500, statusText: 'Internal Server Error', data: \"Coin landed on it's edge!\" } }\r\n * }\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n queryFn(\r\n arg: QueryArg,\r\n api: BaseQueryApi,\r\n extraOptions: BaseQueryExtraOptions<BaseQuery>,\r\n baseQuery: (arg: Parameters<BaseQuery>[0]) => ReturnType<BaseQuery>\r\n ): MaybePromise<QueryReturnValue<ResultType, BaseQueryError<BaseQuery>>>\r\n query?: never\r\n transformResponse?: never\r\n transformErrorResponse?: never\r\n /**\r\n * Defaults to `true`.\r\n *\r\n * Most apps should leave this setting on. The only time it can be a performance issue\r\n * is if an API returns extremely large amounts of data (e.g. 10,000 rows per request) and\r\n * you're unable to paginate it.\r\n *\r\n * For details of how this works, please see the below. When it is set to `false`,\r\n * every request will cause subscribed components to rerender, even when the data has not changed.\r\n *\r\n * @see https://redux-toolkit.js.org/api/other-exports#copywithstructuralsharing\r\n */\r\n structuralSharing?: boolean\r\n}\r\n\r\nexport interface BaseEndpointTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> {\r\n QueryArg: QueryArg\r\n BaseQuery: BaseQuery\r\n ResultType: ResultType\r\n}\r\n\r\nexport type BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType\r\n> = (\r\n | ([CastAny<BaseQueryResult<BaseQuery>, {}>] extends [NEVER]\r\n ? never\r\n : EndpointDefinitionWithQuery<QueryArg, BaseQuery, ResultType>)\r\n | EndpointDefinitionWithQueryFn<QueryArg, BaseQuery, ResultType>\r\n) & {\r\n /* phantom type */\r\n [resultType]?: ResultType\r\n /* phantom type */\r\n [baseQuery]?: BaseQuery\r\n} & HasRequiredProps<\r\n BaseQueryExtraOptions<BaseQuery>,\r\n { extraOptions: BaseQueryExtraOptions<BaseQuery> },\r\n { extraOptions?: BaseQueryExtraOptions<BaseQuery> }\r\n >\r\n\r\nexport enum DefinitionType {\r\n query = 'query',\r\n mutation = 'mutation',\r\n}\r\n\r\nexport type GetResultDescriptionFn<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n ErrorType,\r\n MetaType\r\n> = (\r\n result: ResultType | undefined,\r\n error: ErrorType | undefined,\r\n arg: QueryArg,\r\n meta: MetaType\r\n) => ReadonlyArray<TagDescription<TagTypes>>\r\n\r\nexport type FullTagDescription<TagType> = {\r\n type: TagType\r\n id?: number | string\r\n}\r\nexport type TagDescription<TagType> = TagType | FullTagDescription<TagType>\r\nexport type ResultDescription<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n ErrorType,\r\n MetaType\r\n> =\r\n | ReadonlyArray<TagDescription<TagTypes>>\r\n | GetResultDescriptionFn<TagTypes, ResultType, QueryArg, ErrorType, MetaType>\r\n\r\n/** @deprecated please use `onQueryStarted` instead */\r\nexport interface QueryApi<ReducerPath extends string, Context extends {}> {\r\n /** @deprecated please use `onQueryStarted` instead */\r\n dispatch: ThunkDispatch<any, any, AnyAction>\r\n /** @deprecated please use `onQueryStarted` instead */\r\n getState(): RootState<any, any, ReducerPath>\r\n /** @deprecated please use `onQueryStarted` instead */\r\n extra: unknown\r\n /** @deprecated please use `onQueryStarted` instead */\r\n requestId: string\r\n /** @deprecated please use `onQueryStarted` instead */\r\n context: Context\r\n}\r\n\r\nexport interface QueryTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> extends BaseEndpointTypes<QueryArg, BaseQuery, ResultType> {\r\n /**\r\n * The endpoint definition type. To be used with some internal generic types.\r\n * @example\r\n * ```ts\r\n * const useMyWrappedHook: UseQuery<typeof api.endpoints.query.Types.QueryDefinition> = ...\r\n * ```\r\n */\r\n QueryDefinition: QueryDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >\r\n TagTypes: TagTypes\r\n ReducerPath: ReducerPath\r\n}\r\n\r\nexport interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n> {\r\n type: DefinitionType.query\r\n /**\r\n * Used by `query` endpoints. Determines which 'tag' is attached to the cached data returned by the query.\r\n * Expects an array of tag type strings, an array of objects of tag types with ids, or a function that returns such an array.\r\n * 1. `['Post']` - equivalent to `2`\r\n * 2. `[{ type: 'Post' }]` - equivalent to `1`\r\n * 3. `[{ type: 'Post', id: 1 }]`\r\n * 4. `(result, error, arg) => ['Post']` - equivalent to `5`\r\n * 5. `(result, error, arg) => [{ type: 'Post' }]` - equivalent to `4`\r\n * 6. `(result, error, arg) => [{ type: 'Post', id: 1 }]`\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"providesTags example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Posts'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query<PostsResponse, void>({\r\n * query: () => 'posts',\r\n * // highlight-start\r\n * providesTags: (result) =>\r\n * result\r\n * ? [\r\n * ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\r\n * { type: 'Posts', id: 'LIST' },\r\n * ]\r\n * : [{ type: 'Posts', id: 'LIST' }],\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n providesTags?: ResultDescription<\r\n TagTypes,\r\n ResultType,\r\n QueryArg,\r\n BaseQueryError<BaseQuery>,\r\n BaseQueryMeta<BaseQuery>\r\n >\r\n /**\r\n * Not to be used. A query should not invalidate tags in the cache.\r\n */\r\n invalidatesTags?: never\r\n\r\n /**\r\n * Can be provided to return a custom cache key value based on the query arguments.\r\n *\r\n * This is primarily intended for cases where a non-serializable value is passed as part of the query arg object and should be excluded from the cache key. It may also be used for cases where an endpoint should only have a single cache entry, such as an infinite loading / pagination implementation.\r\n *\r\n * Unlike the `createApi` version which can _only_ return a string, this per-endpoint option can also return an an object, number, or boolean. If it returns a string, that value will be used as the cache key directly. If it returns an object / number / boolean, that value will be passed to the built-in `defaultSerializeQueryArgs`. This simplifies the use case of stripping out args you don't want included in the cache key.\r\n *\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"serializeQueryArgs : exclude value\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * interface MyApiClient {\r\n * fetchPost: (id: string) => Promise<Post>\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * // Example: an endpoint with an API client passed in as an argument,\r\n * // but only the item ID should be used as the cache key\r\n * getPost: build.query<Post, { id: string; client: MyApiClient }>({\r\n * queryFn: async ({ id, client }) => {\r\n * const post = await client.fetchPost(id)\r\n * return { data: post }\r\n * },\r\n * // highlight-start\r\n * serializeQueryArgs: ({ queryArgs, endpointDefinition, endpointName }) => {\r\n * const { id } = queryArgs\r\n * // This can return a string, an object, a number, or a boolean.\r\n * // If it returns an object, number or boolean, that value\r\n * // will be serialized automatically via `defaultSerializeQueryArgs`\r\n * return { id } // omit `client` from the cache key\r\n *\r\n * // Alternately, you can use `defaultSerializeQueryArgs` yourself:\r\n * // return defaultSerializeQueryArgs({\r\n * // endpointName,\r\n * // queryArgs: { id },\r\n * // endpointDefinition\r\n * // })\r\n * // Or create and return a string yourself:\r\n * // return `getPost(${id})`\r\n * },\r\n * // highlight-end\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n serializeQueryArgs?: SerializeQueryArgs<\r\n QueryArg,\r\n string | number | boolean | Record<any, any>\r\n >\r\n\r\n /**\r\n * Can be provided to merge an incoming response value into the current cache data.\r\n * If supplied, no automatic structural sharing will be applied - it's up to\r\n * you to update the cache appropriately.\r\n *\r\n * Since RTKQ normally replaces cache entries with the new response, you will usually\r\n * need to use this with the `serializeQueryArgs` or `forceRefetch` options to keep\r\n * an existing cache entry so that it can be updated.\r\n *\r\n * Since this is wrapped with Immer, you may either mutate the `currentCacheValue` directly,\r\n * or return a new value, but _not_ both at once.\r\n *\r\n * Will only be called if the existing `currentCacheData` is _not_ `undefined` - on first response,\r\n * the cache entry will just save the response data directly.\r\n *\r\n * Useful if you don't want a new request to completely override the current cache value,\r\n * maybe because you have manually updated it from another source and don't want those\r\n * updates to get lost.\r\n *\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"merge: pagination\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * listItems: build.query<string[], number>({\r\n * query: (pageNumber) => `/listItems?page=${pageNumber}`,\r\n * // Only have one cache entry because the arg always maps to one string\r\n * serializeQueryArgs: ({ endpointName }) => {\r\n * return endpointName\r\n * },\r\n * // Always merge incoming data to the cache entry\r\n * merge: (currentCache, newItems) => {\r\n * currentCache.push(...newItems)\r\n * },\r\n * // Refetch when the page arg changes\r\n * forceRefetch({ currentArg, previousArg }) {\r\n * return currentArg !== previousArg\r\n * },\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n merge?(\r\n currentCacheData: ResultType,\r\n responseData: ResultType,\r\n otherArgs: {\r\n arg: QueryArg\r\n baseQueryMeta: BaseQueryMeta<BaseQuery>\r\n requestId: string\r\n fulfilledTimeStamp: number\r\n }\r\n ): ResultType | void\r\n\r\n /**\r\n * Check to see if the endpoint should force a refetch in cases where it normally wouldn't.\r\n * This is primarily useful for \"infinite scroll\" / pagination use cases where\r\n * RTKQ is keeping a single cache entry that is added to over time, in combination\r\n * with `serializeQueryArgs` returning a fixed cache key and a `merge` callback\r\n * set to add incoming data to the cache entry each time.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"forceRefresh: pagination\"\r\n *\r\n * import { createApi, fetchBaseQuery, defaultSerializeQueryArgs } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * listItems: build.query<string[], number>({\r\n * query: (pageNumber) => `/listItems?page=${pageNumber}`,\r\n * // Only have one cache entry because the arg always maps to one string\r\n * serializeQueryArgs: ({ endpointName }) => {\r\n * return endpointName\r\n * },\r\n * // Always merge incoming data to the cache entry\r\n * merge: (currentCache, newItems) => {\r\n * currentCache.push(...newItems)\r\n * },\r\n * // Refetch when the page arg changes\r\n * forceRefetch({ currentArg, previousArg }) {\r\n * return currentArg !== previousArg\r\n * },\r\n * }),\r\n * }),\r\n *})\r\n * ```\r\n */\r\n forceRefetch?(params: {\r\n currentArg: QueryArg | undefined\r\n previousArg: QueryArg | undefined\r\n state: RootState<any, any, string>\r\n endpointState?: QuerySubState<any>\r\n }): boolean\r\n\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types?: QueryTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>\r\n}\r\n\r\nexport type QueryDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType> &\r\n QueryExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath>\r\n\r\nexport interface MutationTypes<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> extends BaseEndpointTypes<QueryArg, BaseQuery, ResultType> {\r\n /**\r\n * The endpoint definition type. To be used with some internal generic types.\r\n * @example\r\n * ```ts\r\n * const useMyWrappedHook: UseMutation<typeof api.endpoints.query.Types.MutationDefinition> = ...\r\n * ```\r\n */\r\n MutationDefinition: MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >\r\n TagTypes: TagTypes\r\n ReducerPath: ReducerPath\r\n}\r\n\r\nexport interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n> {\r\n type: DefinitionType.mutation\r\n /**\r\n * Used by `mutation` endpoints. Determines which cached data should be either re-fetched or removed from the cache.\r\n * Expects the same shapes as `providesTags`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"invalidatesTags example\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * tagTypes: ['Posts'],\r\n * endpoints: (build) => ({\r\n * getPosts: build.query<PostsResponse, void>({\r\n * query: () => 'posts',\r\n * providesTags: (result) =>\r\n * result\r\n * ? [\r\n * ...result.map(({ id }) => ({ type: 'Posts' as const, id })),\r\n * { type: 'Posts', id: 'LIST' },\r\n * ]\r\n * : [{ type: 'Posts', id: 'LIST' }],\r\n * }),\r\n * addPost: build.mutation<Post, Partial<Post>>({\r\n * query(body) {\r\n * return {\r\n * url: `posts`,\r\n * method: 'POST',\r\n * body,\r\n * }\r\n * },\r\n * // highlight-start\r\n * invalidatesTags: [{ type: 'Posts', id: 'LIST' }],\r\n * // highlight-end\r\n * }),\r\n * })\r\n * })\r\n * ```\r\n */\r\n invalidatesTags?: ResultDescription<\r\n TagTypes,\r\n ResultType,\r\n QueryArg,\r\n BaseQueryError<BaseQuery>,\r\n BaseQueryMeta<BaseQuery>\r\n >\r\n /**\r\n * Not to be used. A mutation should not provide tags to the cache.\r\n */\r\n providesTags?: never\r\n\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types?: MutationTypes<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>\r\n}\r\n\r\nexport type MutationDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> = BaseEndpointDefinition<QueryArg, BaseQuery, ResultType> &\r\n MutationExtraOptions<TagTypes, ResultType, QueryArg, BaseQuery, ReducerPath>\r\n\r\nexport type EndpointDefinition<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ResultType,\r\n ReducerPath extends string = string\r\n> =\r\n | QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>\r\n | MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>\r\n\r\nexport type EndpointDefinitions = Record<\r\n string,\r\n EndpointDefinition<any, any, any, any>\r\n>\r\n\r\nexport function isQueryDefinition(\r\n e: EndpointDefinition<any, any, any, any>\r\n): e is QueryDefinition<any, any, any, any> {\r\n return e.type === DefinitionType.query\r\n}\r\n\r\nexport function isMutationDefinition(\r\n e: EndpointDefinition<any, any, any, any>\r\n): e is MutationDefinition<any, any, any, any> {\r\n return e.type === DefinitionType.mutation\r\n}\r\n\r\nexport type EndpointBuilder<\r\n BaseQuery extends BaseQueryFn,\r\n TagTypes extends string,\r\n ReducerPath extends string\r\n> = {\r\n /**\r\n * An endpoint definition that retrieves data, and may provide tags to the cache.\r\n *\r\n * @example\r\n * ```js\r\n * // codeblock-meta title=\"Example of all query endpoint options\"\r\n * const api = createApi({\r\n * baseQuery,\r\n * endpoints: (build) => ({\r\n * getPost: build.query({\r\n * query: (id) => ({ url: `post/${id}` }),\r\n * // Pick out data and prevent nested properties in a hook or selector\r\n * transformResponse: (response) => response.data,\r\n * // Pick out error and prevent nested properties in a hook or selector\r\n * transformErrorResponse: (response) => response.error,\r\n * // `result` is the server response\r\n * providesTags: (result, error, id) => [{ type: 'Post', id }],\r\n * // trigger side effects or optimistic updates\r\n * onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry, updateCachedData }) {},\r\n * // handle subscriptions etc\r\n * onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry, updateCachedData }) {},\r\n * }),\r\n * }),\r\n *});\r\n *```\r\n */\r\n query<ResultType, QueryArg>(\r\n definition: OmitFromUnion<\r\n QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>,\r\n 'type'\r\n >\r\n ): QueryDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>\r\n /**\r\n * An endpoint definition that alters data on the server or will possibly invalidate the cache.\r\n *\r\n * @example\r\n * ```js\r\n * // codeblock-meta title=\"Example of all mutation endpoint options\"\r\n * const api = createApi({\r\n * baseQuery,\r\n * endpoints: (build) => ({\r\n * updatePost: build.mutation({\r\n * query: ({ id, ...patch }) => ({ url: `post/${id}`, method: 'PATCH', body: patch }),\r\n * // Pick out data and prevent nested properties in a hook or selector\r\n * transformResponse: (response) => response.data,\r\n * // Pick out error and prevent nested properties in a hook or selector\r\n * transformErrorResponse: (response) => response.error,\r\n * // `result` is the server response\r\n * invalidatesTags: (result, error, id) => [{ type: 'Post', id }],\r\n * // trigger side effects or optimistic updates\r\n * onQueryStarted(id, { dispatch, getState, extra, requestId, queryFulfilled, getCacheEntry }) {},\r\n * // handle subscriptions etc\r\n * onCacheEntryAdded(id, { dispatch, getState, extra, requestId, cacheEntryRemoved, cacheDataLoaded, getCacheEntry }) {},\r\n * }),\r\n * }),\r\n * });\r\n * ```\r\n */\r\n mutation<ResultType, QueryArg>(\r\n definition: OmitFromUnion<\r\n MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n 'type'\r\n >\r\n ): MutationDefinition<QueryArg, BaseQuery, TagTypes, ResultType, ReducerPath>\r\n}\r\n\r\nexport type AssertTagTypes = <T extends FullTagDescription<string>>(t: T) => T\r\n\r\nexport function calculateProvidedBy<ResultType, QueryArg, ErrorType, MetaType>(\r\n description:\r\n | ResultDescription<string, ResultType, QueryArg, ErrorType, MetaType>\r\n | undefined,\r\n result: ResultType | undefined,\r\n error: ErrorType | undefined,\r\n queryArg: QueryArg,\r\n meta: MetaType | undefined,\r\n assertTagTypes: AssertTagTypes\r\n): readonly FullTagDescription<string>[] {\r\n if (isFunction(description)) {\r\n return description(\r\n result as ResultType,\r\n error as undefined,\r\n queryArg,\r\n meta as MetaType\r\n )\r\n .map(expandTagDescription)\r\n .map(assertTagTypes)\r\n }\r\n if (Array.isArray(description)) {\r\n return description.map(expandTagDescription).map(assertTagTypes)\r\n }\r\n return []\r\n}\r\n\r\nfunction isFunction<T>(t: T): t is Extract<T, Function> {\r\n return typeof t === 'function'\r\n}\r\n\r\nexport function expandTagDescription(\r\n description: TagDescription<string>\r\n): FullTagDescription<string> {\r\n return typeof description === 'string' ? { type: description } : description\r\n}\r\n\r\nexport type QueryArgFrom<D extends BaseEndpointDefinition<any, any, any>> =\r\n D extends BaseEndpointDefinition<infer QA, any, any> ? QA : unknown\r\nexport type ResultTypeFrom<D extends BaseEndpointDefinition<any, any, any>> =\r\n D extends BaseEndpointDefinition<any, any, infer RT> ? RT : unknown\r\n\r\nexport type ReducerPathFrom<\r\n D extends EndpointDefinition<any, any, any, any, any>\r\n> = D extends EndpointDefinition<any, any, any, any, infer RP> ? RP : unknown\r\n\r\nexport type TagTypesFrom<D extends EndpointDefinition<any, any, any, any>> =\r\n D extends EndpointDefinition<any, any, infer RP, any> ? RP : unknown\r\n\r\nexport type TagTypesFromApi<T> = T extends Api<any, any, any, infer TagTypes>\r\n ? TagTypes\r\n : never\r\n\r\nexport type DefinitionsFromApi<T> = T extends Api<\r\n any,\r\n infer Definitions,\r\n any,\r\n any\r\n>\r\n ? Definitions\r\n : never\r\n\r\nexport type TransformedResponse<\r\n NewDefinitions extends EndpointDefinitions,\r\n K,\r\n ResultType\r\n> = K extends keyof NewDefinitions\r\n ? NewDefinitions[K]['transformResponse'] extends undefined\r\n ? ResultType\r\n : UnwrapPromise<\r\n ReturnType<NonUndefined<NewDefinitions[K]['transformResponse']>>\r\n >\r\n : ResultType\r\n\r\nexport type OverrideResultType<Definition, NewResultType> =\r\n Definition extends QueryDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n infer TagTypes,\r\n any,\r\n infer ReducerPath\r\n >\r\n ? QueryDefinition<QueryArg, BaseQuery, TagTypes, NewResultType, ReducerPath>\r\n : Definition extends MutationDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n infer TagTypes,\r\n any,\r\n infer ReducerPath\r\n >\r\n ? MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n TagTypes,\r\n NewResultType,\r\n ReducerPath\r\n >\r\n : never\r\n\r\nexport type UpdateDefinitions<\r\n Definitions extends EndpointDefinitions,\r\n NewTagTypes extends string,\r\n NewDefinitions extends EndpointDefinitions\r\n> = {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n any,\r\n infer ResultType,\r\n infer ReducerPath\r\n >\r\n ? QueryDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n NewTagTypes,\r\n TransformedResponse<NewDefinitions, K, ResultType>,\r\n ReducerPath\r\n >\r\n : Definitions[K] extends MutationDefinition<\r\n infer QueryArg,\r\n infer BaseQuery,\r\n any,\r\n infer ResultType,\r\n infer ReducerPath\r\n >\r\n ? MutationDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n NewTagTypes,\r\n TransformedResponse<NewDefinitions, K, ResultType>,\r\n ReducerPath\r\n >\r\n : never\r\n}\r\n","import type {\r\n ThunkDispatch,\r\n ActionCreatorWithoutPayload, // Workaround for API-Extractor\r\n} from '@reduxjs/toolkit'\r\nimport { createAction } from '@reduxjs/toolkit'\r\n\r\nexport const onFocus = /* @__PURE__ */ createAction('__rtkq/focused')\r\nexport const onFocusLost = /* @__PURE__ */ createAction('__rtkq/unfocused')\r\nexport const onOnline = /* @__PURE__ */ createAction('__rtkq/online')\r\nexport const onOffline = /* @__PURE__ */ createAction('__rtkq/offline')\r\n\r\nlet initialized = false\r\n\r\n/**\r\n * A utility used to enable `refetchOnMount` and `refetchOnReconnect` behaviors.\r\n * It requires the dispatch method from your store.\r\n * Calling `setupListeners(store.dispatch)` will configure listeners with the recommended defaults,\r\n * but you have the option of providing a callback for more granular control.\r\n *\r\n * @example\r\n * ```ts\r\n * setupListeners(store.dispatch)\r\n * ```\r\n *\r\n * @param dispatch - The dispatch method from your store\r\n * @param customHandler - An optional callback for more granular control over listener behavior\r\n * @returns Return value of the handler.\r\n * The default handler returns an `unsubscribe` method that can be called to remove the listeners.\r\n */\r\nexport function setupListeners(\r\n dispatch: ThunkDispatch<any, any, any>,\r\n customHandler?: (\r\n dispatch: ThunkDispatch<any, any, any>,\r\n actions: {\r\n onFocus: typeof onFocus\r\n onFocusLost: typeof onFocusLost\r\n onOnline: typeof onOnline\r\n onOffline: typeof onOffline\r\n }\r\n ) => () => void\r\n) {\r\n function defaultHandler() {\r\n const handleFocus = () => dispatch(onFocus())\r\n const handleFocusLost = () => dispatch(onFocusLost())\r\n const handleOnline = () => dispatch(onOnline())\r\n const handleOffline = () => dispatch(onOffline())\r\n const handleVisibilityChange = () => {\r\n if (window.document.visibilityState === 'visible') {\r\n handleFocus()\r\n } else {\r\n handleFocusLost()\r\n }\r\n }\r\n\r\n if (!initialized) {\r\n if (typeof window !== 'undefined' && window.addEventListener) {\r\n // Handle focus events\r\n window.addEventListener(\r\n 'visibilitychange',\r\n handleVisibilityChange,\r\n false\r\n )\r\n window.addEventListener('focus', handleFocus, false)\r\n\r\n // Handle connection events\r\n window.addEventListener('online', handleOnline, false)\r\n window.addEventListener('offline', handleOffline, false)\r\n initialized = true\r\n }\r\n }\r\n const unsubscribe = () => {\r\n window.removeEventListener('focus', handleFocus)\r\n window.removeEventListener('visibilitychange', handleVisibilityChange)\r\n window.removeEventListener('online', handleOnline)\r\n window.removeEventListener('offline', handleOffline)\r\n initialized = false\r\n }\r\n return unsubscribe\r\n }\r\n\r\n return customHandler\r\n ? customHandler(dispatch, { onFocus, onFocusLost, onOffline, onOnline })\r\n : defaultHandler()\r\n}\r\n","export function isNotNullish<T>(v: T | null | undefined): v is T {\r\n return v != null\r\n}\r\n","import type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n ResultTypeFrom,\r\n} from '../endpointDefinitions'\r\nimport { DefinitionType, isQueryDefinition } from '../endpointDefinitions'\r\nimport type { QueryThunk, MutationThunk, QueryThunkArg } from './buildThunks'\r\nimport type { AnyAction, ThunkAction, SerializedError } from '@reduxjs/toolkit'\r\nimport type { SubscriptionOptions, RootState } from './apiState'\r\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport type { Api, ApiContext } from '../apiTypes'\r\nimport type { ApiEndpointQuery } from './module'\r\nimport type { BaseQueryError, QueryReturnValue } from '../baseQueryTypes'\r\nimport type { QueryResultSelectorResult } from './buildSelectors'\r\nimport type { Dispatch } from 'redux'\r\nimport { isNotNullish } from '../utils/isNotNullish'\r\n\r\ndeclare module './module' {\r\n export interface ApiEndpointQuery<\r\n Definition extends QueryDefinition<any, any, any, any, any>,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > {\r\n initiate: StartQueryActionCreator<Definition>\r\n }\r\n\r\n export interface ApiEndpointMutation<\r\n Definition extends MutationDefinition<any, any, any, any, any>,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > {\r\n initiate: StartMutationActionCreator<Definition>\r\n }\r\n}\r\n\r\nexport const forceQueryFnSymbol = Symbol('forceQueryFn')\r\nexport const isUpsertQuery = (arg: QueryThunkArg) =>\r\n typeof arg[forceQueryFnSymbol] === 'function'\r\n\r\nexport interface StartQueryActionCreatorOptions {\r\n subscribe?: boolean\r\n forceRefetch?: boolean | number\r\n subscriptionOptions?: SubscriptionOptions\r\n [forceQueryFnSymbol]?: () => QueryReturnValue\r\n}\r\n\r\ntype StartQueryActionCreator<\r\n D extends QueryDefinition<any, any, any, any, any>\r\n> = (\r\n arg: QueryArgFrom<D>,\r\n options?: StartQueryActionCreatorOptions\r\n) => ThunkAction<QueryActionCreatorResult<D>, any, any, AnyAction>\r\n\r\nexport type QueryActionCreatorResult<\r\n D extends QueryDefinition<any, any, any, any>\r\n> = Promise<QueryResultSelectorResult<D>> & {\r\n arg: QueryArgFrom<D>\r\n requestId: string\r\n subscriptionOptions: SubscriptionOptions | undefined\r\n abort(): void\r\n unwrap(): Promise<ResultTypeFrom<D>>\r\n unsubscribe(): void\r\n refetch(): QueryActionCreatorResult<D>\r\n updateSubscriptionOptions(options: SubscriptionOptions): void\r\n queryCacheKey: string\r\n}\r\n\r\ntype StartMutationActionCreator<\r\n D extends MutationDefinition<any, any, any, any>\r\n> = (\r\n arg: QueryArgFrom<D>,\r\n options?: {\r\n /**\r\n * If this mutation should be tracked in the store.\r\n * If you just want to manually trigger this mutation using `dispatch` and don't care about the\r\n * result, state & potential errors being held in store, you can set this to false.\r\n * (defaults to `true`)\r\n */\r\n track?: boolean\r\n fixedCacheKey?: string\r\n }\r\n) => ThunkAction<MutationActionCreatorResult<D>, any, any, AnyAction>\r\n\r\nexport type MutationActionCreatorResult<\r\n D extends MutationDefinition<any, any, any, any>\r\n> = Promise<\r\n | { data: ResultTypeFrom<D> }\r\n | {\r\n error:\r\n | Exclude<\r\n BaseQueryError<\r\n D extends MutationDefinition<any, infer BaseQuery, any, any>\r\n ? BaseQuery\r\n : never\r\n >,\r\n undefined\r\n >\r\n | SerializedError\r\n }\r\n> & {\r\n /** @internal */\r\n arg: {\r\n /**\r\n * The name of the given endpoint for the mutation\r\n */\r\n endpointName: string\r\n /**\r\n * The original arguments supplied to the mutation call\r\n */\r\n originalArgs: QueryArgFrom<D>\r\n /**\r\n * Whether the mutation is being tracked in the store.\r\n */\r\n track?: boolean\r\n fixedCacheKey?: string\r\n }\r\n /**\r\n * A unique string generated for the request sequence\r\n */\r\n requestId: string\r\n\r\n /**\r\n * A method to cancel the mutation promise. Note that this is not intended to prevent the mutation\r\n * that was fired off from reaching the server, but only to assist in handling the response.\r\n *\r\n * Calling `abort()` prior to the promise resolving will force it to reach the error state with\r\n * the serialized error:\r\n * `{ name: 'AbortError', message: 'Aborted' }`\r\n *\r\n * @example\r\n * ```ts\r\n * const [updateUser] = useUpdateUserMutation();\r\n *\r\n * useEffect(() => {\r\n * const promise = updateUser(id);\r\n * promise\r\n * .unwrap()\r\n * .catch((err) => {\r\n * if (err.name === 'AbortError') return;\r\n * // else handle the unexpected error\r\n * })\r\n *\r\n * return () => {\r\n * promise.abort();\r\n * }\r\n * }, [id, updateUser])\r\n * ```\r\n */\r\n abort(): void\r\n /**\r\n * Unwraps a mutation call to provide the raw response/error.\r\n *\r\n * @remarks\r\n * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap\"\r\n * addPost({ id: 1, name: 'Example' })\r\n * .unwrap()\r\n * .then((payload) => console.log('fulfilled', payload))\r\n * .catch((error) => console.error('rejected', error));\r\n * ```\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap with async await\"\r\n * try {\r\n * const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\r\n * console.log('fulfilled', payload)\r\n * } catch (error) {\r\n * console.error('rejected', error);\r\n * }\r\n * ```\r\n */\r\n unwrap(): Promise<ResultTypeFrom<D>>\r\n /**\r\n * A method to manually unsubscribe from the mutation call, meaning it will be removed from cache after the usual caching grace period.\r\n The value returned by the hook will reset to `isUninitialized` afterwards.\r\n */\r\n reset(): void\r\n /** @deprecated has been renamed to `reset` */\r\n unsubscribe(): void\r\n}\r\n\r\nexport function buildInitiate({\r\n serializeQueryArgs,\r\n queryThunk,\r\n mutationThunk,\r\n api,\r\n context,\r\n}: {\r\n serializeQueryArgs: InternalSerializeQueryArgs\r\n queryThunk: QueryThunk\r\n mutationThunk: MutationThunk\r\n api: Api<any, EndpointDefinitions, any, any>\r\n context: ApiContext<EndpointDefinitions>\r\n}) {\r\n const runningQueries: Map<\r\n Dispatch,\r\n Record<string, QueryActionCreatorResult<any> | undefined>\r\n > = new Map()\r\n const runningMutations: Map<\r\n Dispatch,\r\n Record<string, MutationActionCreatorResult<any> | undefined>\r\n > = new Map()\r\n\r\n const {\r\n unsubscribeQueryResult,\r\n removeMutationResult,\r\n updateSubscriptionOptions,\r\n } = api.internalActions\r\n return {\r\n buildInitiateQuery,\r\n buildInitiateMutation,\r\n getRunningQueryThunk,\r\n getRunningMutationThunk,\r\n getRunningQueriesThunk,\r\n getRunningMutationsThunk,\r\n getRunningOperationPromises,\r\n removalWarning,\r\n }\r\n\r\n /** @deprecated to be removed in 2.0 */\r\n function removalWarning(): never {\r\n throw new Error(\r\n `This method had to be removed due to a conceptual bug in RTK.\r\n Please see https://github.com/reduxjs/redux-toolkit/pull/2481 for details.\r\n See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for new guidance on SSR.`\r\n )\r\n }\r\n\r\n /** @deprecated to be removed in 2.0 */\r\n function getRunningOperationPromises() {\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n removalWarning()\r\n } else {\r\n const extract = <T>(\r\n v: Map<Dispatch<AnyAction>, Record<string, T | undefined>>\r\n ) =>\r\n Array.from(v.values()).flatMap((queriesForStore) =>\r\n queriesForStore ? Object.values(queriesForStore) : []\r\n )\r\n return [...extract(runningQueries), ...extract(runningMutations)].filter(\r\n isNotNullish\r\n )\r\n }\r\n }\r\n\r\n function getRunningQueryThunk(endpointName: string, queryArgs: any) {\r\n return (dispatch: Dispatch) => {\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n const queryCacheKey = serializeQueryArgs({\r\n queryArgs,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n return runningQueries.get(dispatch)?.[queryCacheKey] as\r\n | QueryActionCreatorResult<never>\r\n | undefined\r\n }\r\n }\r\n\r\n function getRunningMutationThunk(\r\n /**\r\n * this is only here to allow TS to infer the result type by input value\r\n * we could use it to validate the result, but it's probably not necessary\r\n */\r\n _endpointName: string,\r\n fixedCacheKeyOrRequestId: string\r\n ) {\r\n return (dispatch: Dispatch) => {\r\n return runningMutations.get(dispatch)?.[fixedCacheKeyOrRequestId] as\r\n | MutationActionCreatorResult<never>\r\n | undefined\r\n }\r\n }\r\n\r\n function getRunningQueriesThunk() {\r\n return (dispatch: Dispatch) =>\r\n Object.values(runningQueries.get(dispatch) || {}).filter(isNotNullish)\r\n }\r\n\r\n function getRunningMutationsThunk() {\r\n return (dispatch: Dispatch) =>\r\n Object.values(runningMutations.get(dispatch) || {}).filter(isNotNullish)\r\n }\r\n\r\n function middlewareWarning(dispatch: Dispatch) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if ((middlewareWarning as any).triggered) return\r\n const registered:\r\n | ReturnType<typeof api.internalActions.internal_probeSubscription>\r\n | boolean = dispatch(\r\n api.internalActions.internal_probeSubscription({\r\n queryCacheKey: 'DOES_NOT_EXIST',\r\n requestId: 'DUMMY_REQUEST_ID',\r\n })\r\n )\r\n\r\n ;(middlewareWarning as any).triggered = true\r\n\r\n // The RTKQ middleware _should_ always return a boolean for `probeSubscription`\r\n if (typeof registered !== 'boolean') {\r\n // Otherwise, must not have been added\r\n throw new Error(\r\n `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\r\nYou must add the middleware for RTK-Query to function correctly!`\r\n )\r\n }\r\n }\r\n }\r\n\r\n function buildInitiateQuery(\r\n endpointName: string,\r\n endpointDefinition: QueryDefinition<any, any, any, any>\r\n ) {\r\n const queryAction: StartQueryActionCreator<any> =\r\n (\r\n arg,\r\n {\r\n subscribe = true,\r\n forceRefetch,\r\n subscriptionOptions,\r\n [forceQueryFnSymbol]: forceQueryFn,\r\n } = {}\r\n ) =>\r\n (dispatch, getState) => {\r\n const queryCacheKey = serializeQueryArgs({\r\n queryArgs: arg,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n\r\n const thunk = queryThunk({\r\n type: 'query',\r\n subscribe,\r\n forceRefetch: forceRefetch,\r\n subscriptionOptions,\r\n endpointName,\r\n originalArgs: arg,\r\n queryCacheKey,\r\n [forceQueryFnSymbol]: forceQueryFn,\r\n })\r\n const selector = (\r\n api.endpoints[endpointName] as ApiEndpointQuery<any, any>\r\n ).select(arg)\r\n\r\n const thunkResult = dispatch(thunk)\r\n const stateAfter = selector(getState())\r\n\r\n middlewareWarning(dispatch)\r\n\r\n const { requestId, abort } = thunkResult\r\n\r\n const skippedSynchronously = stateAfter.requestId !== requestId\r\n\r\n const runningQuery = runningQueries.get(dispatch)?.[queryCacheKey]\r\n const selectFromState = () => selector(getState())\r\n\r\n const statePromise: QueryActionCreatorResult<any> = Object.assign(\r\n forceQueryFn\r\n ? // a query has been forced (upsertQueryData)\r\n // -> we want to resolve it once data has been written with the data that will be written\r\n thunkResult.then(selectFromState)\r\n : skippedSynchronously && !runningQuery\r\n ? // a query has been skipped due to a condition and we do not have any currently running query\r\n // -> we want to resolve it immediately with the current data\r\n Promise.resolve(stateAfter)\r\n : // query just started or one is already in flight\r\n // -> wait for the running query, then resolve with data from after that\r\n Promise.all([runningQuery, thunkResult]).then(selectFromState),\r\n {\r\n arg,\r\n requestId,\r\n subscriptionOptions,\r\n queryCacheKey,\r\n abort,\r\n async unwrap() {\r\n const result = await statePromise\r\n\r\n if (result.isError) {\r\n throw result.error\r\n }\r\n\r\n return result.data\r\n },\r\n refetch: () =>\r\n dispatch(\r\n queryAction(arg, { subscribe: false, forceRefetch: true })\r\n ),\r\n unsubscribe() {\r\n if (subscribe)\r\n dispatch(\r\n unsubscribeQueryResult({\r\n queryCacheKey,\r\n requestId,\r\n })\r\n )\r\n },\r\n updateSubscriptionOptions(options: SubscriptionOptions) {\r\n statePromise.subscriptionOptions = options\r\n dispatch(\r\n updateSubscriptionOptions({\r\n endpointName,\r\n requestId,\r\n queryCacheKey,\r\n options,\r\n })\r\n )\r\n },\r\n }\r\n )\r\n\r\n if (!runningQuery && !skippedSynchronously && !forceQueryFn) {\r\n const running = runningQueries.get(dispatch) || {}\r\n running[queryCacheKey] = statePromise\r\n runningQueries.set(dispatch, running)\r\n\r\n statePromise.then(() => {\r\n delete running[queryCacheKey]\r\n if (!Object.keys(running).length) {\r\n runningQueries.delete(dispatch)\r\n }\r\n })\r\n }\r\n\r\n return statePromise\r\n }\r\n return queryAction\r\n }\r\n\r\n function buildInitiateMutation(\r\n endpointName: string\r\n ): StartMutationActionCreator<any> {\r\n return (arg, { track = true, fixedCacheKey } = {}) =>\r\n (dispatch, getState) => {\r\n const thunk = mutationThunk({\r\n type: 'mutation',\r\n endpointName,\r\n originalArgs: arg,\r\n track,\r\n fixedCacheKey,\r\n })\r\n const thunkResult = dispatch(thunk)\r\n middlewareWarning(dispatch)\r\n const { requestId, abort, unwrap } = thunkResult\r\n const returnValuePromise = thunkResult\r\n .unwrap()\r\n .then((data) => ({ data }))\r\n .catch((error) => ({ error }))\r\n\r\n const reset = () => {\r\n dispatch(removeMutationResult({ requestId, fixedCacheKey }))\r\n }\r\n\r\n const ret = Object.assign(returnValuePromise, {\r\n arg: thunkResult.arg,\r\n requestId,\r\n abort,\r\n unwrap,\r\n unsubscribe: reset,\r\n reset,\r\n })\r\n\r\n const running = runningMutations.get(dispatch) || {}\r\n runningMutations.set(dispatch, running)\r\n running[requestId] = ret\r\n ret.then(() => {\r\n delete running[requestId]\r\n if (!Object.keys(running).length) {\r\n runningMutations.delete(dispatch)\r\n }\r\n })\r\n if (fixedCacheKey) {\r\n running[fixedCacheKey] = ret\r\n ret.then(() => {\r\n if (running[fixedCacheKey] === ret) {\r\n delete running[fixedCacheKey]\r\n if (!Object.keys(running).length) {\r\n runningMutations.delete(dispatch)\r\n }\r\n }\r\n })\r\n }\r\n\r\n return ret\r\n }\r\n }\r\n}\r\n","import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport type { Api, ApiContext } from '../apiTypes'\r\nimport type {\r\n BaseQueryFn,\r\n BaseQueryError,\r\n QueryReturnValue,\r\n} from '../baseQueryTypes'\r\nimport type { RootState, QueryKeys, QuerySubstateIdentifier } from './apiState'\r\nimport { QueryStatus } from './apiState'\r\nimport type {\r\n StartQueryActionCreatorOptions,\r\n QueryActionCreatorResult,\r\n} from './buildInitiate'\r\nimport { forceQueryFnSymbol, isUpsertQuery } from './buildInitiate'\r\nimport type {\r\n AssertTagTypes,\r\n EndpointDefinition,\r\n EndpointDefinitions,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n QueryDefinition,\r\n ResultTypeFrom,\r\n FullTagDescription,\r\n} from '../endpointDefinitions'\r\nimport { isQueryDefinition } from '../endpointDefinitions'\r\nimport { calculateProvidedBy } from '../endpointDefinitions'\r\nimport type { AsyncThunkPayloadCreator, Draft } from '@reduxjs/toolkit'\r\nimport {\r\n isAllOf,\r\n isFulfilled,\r\n isPending,\r\n isRejected,\r\n isRejectedWithValue,\r\n} from '@reduxjs/toolkit'\r\nimport type { Patch } from 'immer'\r\nimport { isDraftable, produceWithPatches } from 'immer'\r\nimport type {\r\n AnyAction,\r\n ThunkAction,\r\n ThunkDispatch,\r\n AsyncThunk,\r\n} from '@reduxjs/toolkit'\r\nimport { createAsyncThunk, SHOULD_AUTOBATCH } from '@reduxjs/toolkit'\r\n\r\nimport { HandledError } from '../HandledError'\r\n\r\nimport type { ApiEndpointQuery, PrefetchOptions } from './module'\r\nimport type { UnwrapPromise } from '../tsHelpers'\r\n\r\ndeclare module './module' {\r\n export interface ApiEndpointQuery<\r\n Definition extends QueryDefinition<any, any, any, any, any>,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > extends Matchers<QueryThunk, Definition> {}\r\n\r\n export interface ApiEndpointMutation<\r\n Definition extends MutationDefinition<any, any, any, any, any>,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n > extends Matchers<MutationThunk, Definition> {}\r\n}\r\n\r\ntype EndpointThunk<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition<any, any, any, any>\r\n> = Definition extends EndpointDefinition<\r\n infer QueryArg,\r\n infer BaseQueryFn,\r\n any,\r\n infer ResultType\r\n>\r\n ? Thunk extends AsyncThunk<unknown, infer ATArg, infer ATConfig>\r\n ? AsyncThunk<\r\n ResultType,\r\n ATArg & { originalArgs: QueryArg },\r\n ATConfig & { rejectValue: BaseQueryError<BaseQueryFn> }\r\n >\r\n : never\r\n : never\r\n\r\nexport type PendingAction<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition<any, any, any, any>\r\n> = ReturnType<EndpointThunk<Thunk, Definition>['pending']>\r\n\r\nexport type FulfilledAction<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition<any, any, any, any>\r\n> = ReturnType<EndpointThunk<Thunk, Definition>['fulfilled']>\r\n\r\nexport type RejectedAction<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition<any, any, any, any>\r\n> = ReturnType<EndpointThunk<Thunk, Definition>['rejected']>\r\n\r\nexport type Matcher<M> = (value: any) => value is M\r\n\r\nexport interface Matchers<\r\n Thunk extends QueryThunk | MutationThunk,\r\n Definition extends EndpointDefinition<any, any, any, any>\r\n> {\r\n matchPending: Matcher<PendingAction<Thunk, Definition>>\r\n matchFulfilled: Matcher<FulfilledAction<Thunk, Definition>>\r\n matchRejected: Matcher<RejectedAction<Thunk, Definition>>\r\n}\r\n\r\nexport interface QueryThunkArg\r\n extends QuerySubstateIdentifier,\r\n StartQueryActionCreatorOptions {\r\n type: 'query'\r\n originalArgs: unknown\r\n endpointName: string\r\n}\r\n\r\nexport interface MutationThunkArg {\r\n type: 'mutation'\r\n originalArgs: unknown\r\n endpointName: string\r\n track?: boolean\r\n fixedCacheKey?: string\r\n}\r\n\r\nexport type ThunkResult = unknown\r\n\r\nexport type ThunkApiMetaConfig = {\r\n pendingMeta: {\r\n startedTimeStamp: number\r\n [SHOULD_AUTOBATCH]: true\r\n }\r\n fulfilledMeta: {\r\n fulfilledTimeStamp: number\r\n baseQueryMeta: unknown\r\n [SHOULD_AUTOBATCH]: true\r\n }\r\n rejectedMeta: {\r\n baseQueryMeta: unknown\r\n [SHOULD_AUTOBATCH]: true\r\n }\r\n}\r\nexport type QueryThunk = AsyncThunk<\r\n ThunkResult,\r\n QueryThunkArg,\r\n ThunkApiMetaConfig\r\n>\r\nexport type MutationThunk = AsyncThunk<\r\n ThunkResult,\r\n MutationThunkArg,\r\n ThunkApiMetaConfig\r\n>\r\n\r\nfunction defaultTransformResponse(baseQueryReturnValue: unknown) {\r\n return baseQueryReturnValue\r\n}\r\n\r\nexport type MaybeDrafted<T> = T | Draft<T>\r\nexport type Recipe<T> = (data: MaybeDrafted<T>) => void | MaybeDrafted<T>\r\nexport type UpsertRecipe<T> = (\r\n data: MaybeDrafted<T> | undefined\r\n) => void | MaybeDrafted<T>\r\n\r\nexport type PatchQueryDataThunk<\r\n Definitions extends EndpointDefinitions,\r\n PartialState\r\n> = <EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom<Definitions[EndpointName]>,\r\n patches: readonly Patch[],\r\n updateProvided?: boolean\r\n) => ThunkAction<void, PartialState, any, AnyAction>\r\n\r\nexport type UpdateQueryDataThunk<\r\n Definitions extends EndpointDefinitions,\r\n PartialState\r\n> = <EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom<Definitions[EndpointName]>,\r\n updateRecipe: Recipe<ResultTypeFrom<Definitions[EndpointName]>>,\r\n updateProvided?: boolean\r\n) => ThunkAction<PatchCollection, PartialState, any, AnyAction>\r\n\r\nexport type UpsertQueryDataThunk<\r\n Definitions extends EndpointDefinitions,\r\n PartialState\r\n> = <EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom<Definitions[EndpointName]>,\r\n value: ResultTypeFrom<Definitions[EndpointName]>\r\n) => ThunkAction<\r\n QueryActionCreatorResult<\r\n Definitions[EndpointName] extends QueryDefinition<any, any, any, any>\r\n ? Definitions[EndpointName]\r\n : never\r\n >,\r\n PartialState,\r\n any,\r\n AnyAction\r\n>\r\n\r\n/**\r\n * An object returned from dispatching a `api.util.updateQueryData` call.\r\n */\r\nexport type PatchCollection = {\r\n /**\r\n * An `immer` Patch describing the cache update.\r\n */\r\n patches: Patch[]\r\n /**\r\n * An `immer` Patch to revert the cache update.\r\n */\r\n inversePatches: Patch[]\r\n /**\r\n * A function that will undo the cache update.\r\n */\r\n undo: () => void\r\n}\r\n\r\nexport function buildThunks<\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string,\r\n Definitions extends EndpointDefinitions\r\n>({\r\n reducerPath,\r\n baseQuery,\r\n context: { endpointDefinitions },\r\n serializeQueryArgs,\r\n api,\r\n assertTagType,\r\n}: {\r\n baseQuery: BaseQuery\r\n reducerPath: ReducerPath\r\n context: ApiContext<Definitions>\r\n serializeQueryArgs: InternalSerializeQueryArgs\r\n api: Api<BaseQuery, Definitions, ReducerPath, any>\r\n assertTagType: AssertTagTypes\r\n}) {\r\n type State = RootState<any, string, ReducerPath>\r\n\r\n const patchQueryData: PatchQueryDataThunk<EndpointDefinitions, State> =\r\n (endpointName, args, patches, updateProvided) => (dispatch, getState) => {\r\n const endpointDefinition = endpointDefinitions[endpointName]\r\n\r\n const queryCacheKey = serializeQueryArgs({\r\n queryArgs: args,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n\r\n dispatch(\r\n api.internalActions.queryResultPatched({ queryCacheKey, patches })\r\n )\r\n\r\n if (!updateProvided) {\r\n return\r\n }\r\n\r\n const newValue = api.endpoints[endpointName].select(args)(\r\n // Work around TS 4.1 mismatch\r\n getState() as RootState<any, any, any>\r\n )\r\n\r\n const providedTags = calculateProvidedBy(\r\n endpointDefinition.providesTags,\r\n newValue.data,\r\n undefined,\r\n args,\r\n {},\r\n assertTagType\r\n )\r\n\r\n dispatch(\r\n api.internalActions.updateProvidedBy({ queryCacheKey, providedTags })\r\n )\r\n }\r\n\r\n const updateQueryData: UpdateQueryDataThunk<EndpointDefinitions, State> =\r\n (endpointName, args, updateRecipe, updateProvided = true) =>\r\n (dispatch, getState) => {\r\n const endpointDefinition = api.endpoints[endpointName]\r\n\r\n const currentState = endpointDefinition.select(args)(\r\n // Work around TS 4.1 mismatch\r\n getState() as RootState<any, any, any>\r\n )\r\n\r\n let ret: PatchCollection = {\r\n patches: [],\r\n inversePatches: [],\r\n undo: () =>\r\n dispatch(\r\n api.util.patchQueryData(\r\n endpointName,\r\n args,\r\n ret.inversePatches,\r\n updateProvided\r\n )\r\n ),\r\n }\r\n if (currentState.status === QueryStatus.uninitialized) {\r\n return ret\r\n }\r\n let newValue\r\n if ('data' in currentState) {\r\n if (isDraftable(currentState.data)) {\r\n const [value, patches, inversePatches] = produceWithPatches(\r\n currentState.data,\r\n updateRecipe\r\n )\r\n ret.patches.push(...patches)\r\n ret.inversePatches.push(...inversePatches)\r\n newValue = value\r\n } else {\r\n newValue = updateRecipe(currentState.data)\r\n ret.patches.push({ op: 'replace', path: [], value: newValue })\r\n ret.inversePatches.push({\r\n op: 'replace',\r\n path: [],\r\n value: currentState.data,\r\n })\r\n }\r\n }\r\n\r\n dispatch(\r\n api.util.patchQueryData(endpointName, args, ret.patches, updateProvided)\r\n )\r\n\r\n return ret\r\n }\r\n\r\n const upsertQueryData: UpsertQueryDataThunk<Definitions, State> =\r\n (endpointName, args, value) => (dispatch) => {\r\n return dispatch(\r\n (\r\n api.endpoints[endpointName] as ApiEndpointQuery<\r\n QueryDefinition<any, any, any, any, any>,\r\n Definitions\r\n >\r\n ).initiate(args, {\r\n subscribe: false,\r\n forceRefetch: true,\r\n [forceQueryFnSymbol]: () => ({\r\n data: value,\r\n }),\r\n })\r\n )\r\n }\r\n\r\n const executeEndpoint: AsyncThunkPayloadCreator<\r\n ThunkResult,\r\n QueryThunkArg | MutationThunkArg,\r\n ThunkApiMetaConfig & { state: RootState<any, string, ReducerPath> }\r\n > = async (\r\n arg,\r\n {\r\n signal,\r\n abort,\r\n rejectWithValue,\r\n fulfillWithValue,\r\n dispatch,\r\n getState,\r\n extra,\r\n }\r\n ) => {\r\n const endpointDefinition = endpointDefinitions[arg.endpointName]\r\n\r\n try {\r\n let transformResponse: (\r\n baseQueryReturnValue: any,\r\n meta: any,\r\n arg: any\r\n ) => any = defaultTransformResponse\r\n let result: QueryReturnValue\r\n const baseQueryApi = {\r\n signal,\r\n abort,\r\n dispatch,\r\n getState,\r\n extra,\r\n endpoint: arg.endpointName,\r\n type: arg.type,\r\n forced:\r\n arg.type === 'query' ? isForcedQuery(arg, getState()) : undefined,\r\n }\r\n\r\n const forceQueryFn =\r\n arg.type === 'query' ? arg[forceQueryFnSymbol] : undefined\r\n if (forceQueryFn) {\r\n result = forceQueryFn()\r\n } else if (endpointDefinition.query) {\r\n result = await baseQuery(\r\n endpointDefinition.query(arg.originalArgs),\r\n baseQueryApi,\r\n endpointDefinition.extraOptions as any\r\n )\r\n\r\n if (endpointDefinition.transformResponse) {\r\n transformResponse = endpointDefinition.transformResponse\r\n }\r\n } else {\r\n result = await endpointDefinition.queryFn(\r\n arg.originalArgs,\r\n baseQueryApi,\r\n endpointDefinition.extraOptions as any,\r\n (arg) =>\r\n baseQuery(arg, baseQueryApi, endpointDefinition.extraOptions as any)\r\n )\r\n }\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n const what = endpointDefinition.query ? '`baseQuery`' : '`queryFn`'\r\n let err: undefined | string\r\n if (!result) {\r\n err = `${what} did not return anything.`\r\n } else if (typeof result !== 'object') {\r\n err = `${what} did not return an object.`\r\n } else if (result.error && result.data) {\r\n err = `${what} returned an object containing both \\`error\\` and \\`result\\`.`\r\n } else if (result.error === undefined && result.data === undefined) {\r\n err = `${what} returned an object containing neither a valid \\`error\\` and \\`result\\`. At least one of them should not be \\`undefined\\``\r\n } else {\r\n for (const key of Object.keys(result)) {\r\n if (key !== 'error' && key !== 'data' && key !== 'meta') {\r\n err = `The object returned by ${what} has the unknown property ${key}.`\r\n break\r\n }\r\n }\r\n }\r\n if (err) {\r\n console.error(\r\n `Error encountered handling the endpoint ${arg.endpointName}.\r\n ${err}\r\n It needs to return an object with either the shape \\`{ data: <value> }\\` or \\`{ error: <value> }\\` that may contain an optional \\`meta\\` property.\r\n Object returned was:`,\r\n result\r\n )\r\n }\r\n }\r\n\r\n if (result.error) throw new HandledError(result.error, result.meta)\r\n\r\n return fulfillWithValue(\r\n await transformResponse(result.data, result.meta, arg.originalArgs),\r\n {\r\n fulfilledTimeStamp: Date.now(),\r\n baseQueryMeta: result.meta,\r\n [SHOULD_AUTOBATCH]: true,\r\n }\r\n )\r\n } catch (error) {\r\n let catchedError = error\r\n if (catchedError instanceof HandledError) {\r\n let transformErrorResponse: (\r\n baseQueryReturnValue: any,\r\n meta: any,\r\n arg: any\r\n ) => any = defaultTransformResponse\r\n\r\n if (\r\n endpointDefinition.query &&\r\n endpointDefinition.transformErrorResponse\r\n ) {\r\n transformErrorResponse = endpointDefinition.transformErrorResponse\r\n }\r\n try {\r\n return rejectWithValue(\r\n await transformErrorResponse(\r\n catchedError.value,\r\n catchedError.meta,\r\n arg.originalArgs\r\n ),\r\n { baseQueryMeta: catchedError.meta, [SHOULD_AUTOBATCH]: true }\r\n )\r\n } catch (e) {\r\n catchedError = e\r\n }\r\n }\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV !== 'production'\r\n ) {\r\n console.error(\r\n `An unhandled error occurred processing a request for the endpoint \"${arg.endpointName}\".\r\nIn the case of an unhandled error, no tags will be \"provided\" or \"invalidated\".`,\r\n catchedError\r\n )\r\n } else {\r\n console.error(catchedError)\r\n }\r\n throw catchedError\r\n }\r\n }\r\n\r\n function isForcedQuery(\r\n arg: QueryThunkArg,\r\n state: RootState<any, string, ReducerPath>\r\n ) {\r\n const requestState = state[reducerPath]?.queries?.[arg.queryCacheKey]\r\n const baseFetchOnMountOrArgChange =\r\n state[reducerPath]?.config.refetchOnMountOrArgChange\r\n\r\n const fulfilledVal = requestState?.fulfilledTimeStamp\r\n const refetchVal =\r\n arg.forceRefetch ?? (arg.subscribe && baseFetchOnMountOrArgChange)\r\n\r\n if (refetchVal) {\r\n // Return if its true or compare the dates because it must be a number\r\n return (\r\n refetchVal === true ||\r\n (Number(new Date()) - Number(fulfilledVal)) / 1000 >= refetchVal\r\n )\r\n }\r\n return false\r\n }\r\n\r\n const queryThunk = createAsyncThunk<\r\n ThunkResult,\r\n QueryThunkArg,\r\n ThunkApiMetaConfig & { state: RootState<any, string, ReducerPath> }\r\n >(`${reducerPath}/executeQuery`, executeEndpoint, {\r\n getPendingMeta() {\r\n return { startedTimeStamp: Date.now(), [SHOULD_AUTOBATCH]: true }\r\n },\r\n condition(queryThunkArgs, { getState }) {\r\n const state = getState()\r\n\r\n const requestState =\r\n state[reducerPath]?.queries?.[queryThunkArgs.queryCacheKey]\r\n const fulfilledVal = requestState?.fulfilledTimeStamp\r\n const currentArg = queryThunkArgs.originalArgs\r\n const previousArg = requestState?.originalArgs\r\n const endpointDefinition =\r\n endpointDefinitions[queryThunkArgs.endpointName]\r\n\r\n // Order of these checks matters.\r\n // In order for `upsertQueryData` to successfully run while an existing request is in flight,\r\n /// we have to check for that first, otherwise `queryThunk` will bail out and not run at all.\r\n if (isUpsertQuery(queryThunkArgs)) {\r\n return true\r\n }\r\n\r\n // Don't retry a request that's currently in-flight\r\n if (requestState?.status === 'pending') {\r\n return false\r\n }\r\n\r\n // if this is forced, continue\r\n if (isForcedQuery(queryThunkArgs, state)) {\r\n return true\r\n }\r\n\r\n if (\r\n isQueryDefinition(endpointDefinition) &&\r\n endpointDefinition?.forceRefetch?.({\r\n currentArg,\r\n previousArg,\r\n endpointState: requestState,\r\n state,\r\n })\r\n ) {\r\n return true\r\n }\r\n\r\n // Pull from the cache unless we explicitly force refetch or qualify based on time\r\n if (fulfilledVal) {\r\n // Value is cached and we didn't specify to refresh, skip it.\r\n return false\r\n }\r\n\r\n return true\r\n },\r\n dispatchConditionRejection: true,\r\n })\r\n\r\n const mutationThunk = createAsyncThunk<\r\n ThunkResult,\r\n MutationThunkArg,\r\n ThunkApiMetaConfig & { state: RootState<any, string, ReducerPath> }\r\n >(`${reducerPath}/executeMutation`, executeEndpoint, {\r\n getPendingMeta() {\r\n return { startedTimeStamp: Date.now(), [SHOULD_AUTOBATCH]: true }\r\n },\r\n })\r\n\r\n const hasTheForce = (options: any): options is { force: boolean } =>\r\n 'force' in options\r\n const hasMaxAge = (\r\n options: any\r\n ): options is { ifOlderThan: false | number } => 'ifOlderThan' in options\r\n\r\n const prefetch =\r\n <EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n arg: any,\r\n options: PrefetchOptions\r\n ): ThunkAction<void, any, any, AnyAction> =>\r\n (dispatch: ThunkDispatch<any, any, any>, getState: () => any) => {\r\n const force = hasTheForce(options) && options.force\r\n const maxAge = hasMaxAge(options) && options.ifOlderThan\r\n\r\n const queryAction = (force: boolean = true) =>\r\n (api.endpoints[endpointName] as ApiEndpointQuery<any, any>).initiate(\r\n arg,\r\n { forceRefetch: force }\r\n )\r\n const latestStateValue = (\r\n api.endpoints[endpointName] as ApiEndpointQuery<any, any>\r\n ).select(arg)(getState())\r\n\r\n if (force) {\r\n dispatch(queryAction())\r\n } else if (maxAge) {\r\n const lastFulfilledTs = latestStateValue?.fulfilledTimeStamp\r\n if (!lastFulfilledTs) {\r\n dispatch(queryAction())\r\n return\r\n }\r\n const shouldRetrigger =\r\n (Number(new Date()) - Number(new Date(lastFulfilledTs))) / 1000 >=\r\n maxAge\r\n if (shouldRetrigger) {\r\n dispatch(queryAction())\r\n }\r\n } else {\r\n // If prefetching with no options, just let it try\r\n dispatch(queryAction(false))\r\n }\r\n }\r\n\r\n function matchesEndpoint(endpointName: string) {\r\n return (action: any): action is AnyAction =>\r\n action?.meta?.arg?.endpointName === endpointName\r\n }\r\n\r\n function buildMatchThunkActions<\r\n Thunk extends\r\n | AsyncThunk<any, QueryThunkArg, ThunkApiMetaConfig>\r\n | AsyncThunk<any, MutationThunkArg, ThunkApiMetaConfig>\r\n >(thunk: Thunk, endpointName: string) {\r\n return {\r\n matchPending: isAllOf(isPending(thunk), matchesEndpoint(endpointName)),\r\n matchFulfilled: isAllOf(\r\n isFulfilled(thunk),\r\n matchesEndpoint(endpointName)\r\n ),\r\n matchRejected: isAllOf(isRejected(thunk), matchesEndpoint(endpointName)),\r\n } as Matchers<Thunk, any>\r\n }\r\n\r\n return {\r\n queryThunk,\r\n mutationThunk,\r\n prefetch,\r\n updateQueryData,\r\n upsertQueryData,\r\n patchQueryData,\r\n buildMatchThunkActions,\r\n }\r\n}\r\n\r\nexport function calculateProvidedByThunk(\r\n action: UnwrapPromise<\r\n ReturnType<ReturnType<QueryThunk>> | ReturnType<ReturnType<MutationThunk>>\r\n >,\r\n type: 'providesTags' | 'invalidatesTags',\r\n endpointDefinitions: EndpointDefinitions,\r\n assertTagType: AssertTagTypes\r\n) {\r\n return calculateProvidedBy(\r\n endpointDefinitions[action.meta.arg.endpointName][type],\r\n isFulfilled(action) ? action.payload : undefined,\r\n isRejectedWithValue(action) ? action.payload : undefined,\r\n action.meta.arg.originalArgs,\r\n 'baseQueryMeta' in action.meta ? action.meta.baseQueryMeta : undefined,\r\n assertTagType\r\n )\r\n}\r\n","import type { AnyAction, PayloadAction } from '@reduxjs/toolkit'\r\nimport {\r\n combineReducers,\r\n createAction,\r\n createSlice,\r\n isAnyOf,\r\n isFulfilled,\r\n isRejectedWithValue,\r\n createNextState,\r\n prepareAutoBatched,\r\n} from '@reduxjs/toolkit'\r\nimport type {\r\n CombinedState as CombinedQueryState,\r\n QuerySubstateIdentifier,\r\n QuerySubState,\r\n MutationSubstateIdentifier,\r\n MutationSubState,\r\n MutationState,\r\n QueryState,\r\n InvalidationState,\r\n Subscribers,\r\n QueryCacheKey,\r\n SubscriptionState,\r\n ConfigState,\r\n} from './apiState'\r\nimport { QueryStatus } from './apiState'\r\nimport type { MutationThunk, QueryThunk, RejectedAction } from './buildThunks'\r\nimport { calculateProvidedByThunk } from './buildThunks'\r\nimport type {\r\n AssertTagTypes,\r\n EndpointDefinitions,\r\n FullTagDescription,\r\n QueryDefinition,\r\n} from '../endpointDefinitions'\r\nimport type { Patch } from 'immer'\r\nimport { isDraft } from 'immer'\r\nimport { applyPatches, original } from 'immer'\r\nimport { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners'\r\nimport {\r\n isDocumentVisible,\r\n isOnline,\r\n copyWithStructuralSharing,\r\n} from '../utils'\r\nimport type { ApiContext } from '../apiTypes'\r\nimport { isUpsertQuery } from './buildInitiate'\r\n\r\nfunction updateQuerySubstateIfExists(\r\n state: QueryState<any>,\r\n queryCacheKey: QueryCacheKey,\r\n update: (substate: QuerySubState<any>) => void\r\n) {\r\n const substate = state[queryCacheKey]\r\n if (substate) {\r\n update(substate)\r\n }\r\n}\r\n\r\nexport function getMutationCacheKey(\r\n id:\r\n | MutationSubstateIdentifier\r\n | { requestId: string; arg: { fixedCacheKey?: string | undefined } }\r\n): string\r\nexport function getMutationCacheKey(id: {\r\n fixedCacheKey?: string\r\n requestId?: string\r\n}): string | undefined\r\n\r\nexport function getMutationCacheKey(\r\n id:\r\n | { fixedCacheKey?: string; requestId?: string }\r\n | MutationSubstateIdentifier\r\n | { requestId: string; arg: { fixedCacheKey?: string | undefined } }\r\n): string | undefined {\r\n return ('arg' in id ? id.arg.fixedCacheKey : id.fixedCacheKey) ?? id.requestId\r\n}\r\n\r\nfunction updateMutationSubstateIfExists(\r\n state: MutationState<any>,\r\n id:\r\n | MutationSubstateIdentifier\r\n | { requestId: string; arg: { fixedCacheKey?: string | undefined } },\r\n update: (substate: MutationSubState<any>) => void\r\n) {\r\n const substate = state[getMutationCacheKey(id)]\r\n if (substate) {\r\n update(substate)\r\n }\r\n}\r\n\r\nconst initialState = {} as any\r\n\r\nexport function buildSlice({\r\n reducerPath,\r\n queryThunk,\r\n mutationThunk,\r\n context: {\r\n endpointDefinitions: definitions,\r\n apiUid,\r\n extractRehydrationInfo,\r\n hasRehydrationInfo,\r\n },\r\n assertTagType,\r\n config,\r\n}: {\r\n reducerPath: string\r\n queryThunk: QueryThunk\r\n mutationThunk: MutationThunk\r\n context: ApiContext<EndpointDefinitions>\r\n assertTagType: AssertTagTypes\r\n config: Omit<\r\n ConfigState<string>,\r\n 'online' | 'focused' | 'middlewareRegistered'\r\n >\r\n}) {\r\n const resetApiState = createAction(`${reducerPath}/resetApiState`)\r\n const querySlice = createSlice({\r\n name: `${reducerPath}/queries`,\r\n initialState: initialState as QueryState<any>,\r\n reducers: {\r\n removeQueryResult: {\r\n reducer(\r\n draft,\r\n { payload: { queryCacheKey } }: PayloadAction<QuerySubstateIdentifier>\r\n ) {\r\n delete draft[queryCacheKey]\r\n },\r\n prepare: prepareAutoBatched<QuerySubstateIdentifier>(),\r\n },\r\n queryResultPatched: {\r\n reducer(\r\n draft,\r\n {\r\n payload: { queryCacheKey, patches },\r\n }: PayloadAction<\r\n QuerySubstateIdentifier & { patches: readonly Patch[] }\r\n >\r\n ) {\r\n updateQuerySubstateIfExists(draft, queryCacheKey, (substate) => {\r\n substate.data = applyPatches(substate.data as any, patches.concat())\r\n })\r\n },\r\n prepare: prepareAutoBatched<\r\n QuerySubstateIdentifier & { patches: readonly Patch[] }\r\n >(),\r\n },\r\n },\r\n extraReducers(builder) {\r\n builder\r\n .addCase(queryThunk.pending, (draft, { meta, meta: { arg } }) => {\r\n const upserting = isUpsertQuery(arg)\r\n if (arg.subscribe || upserting) {\r\n // only initialize substate if we want to subscribe to it\r\n draft[arg.queryCacheKey] ??= {\r\n status: QueryStatus.uninitialized,\r\n endpointName: arg.endpointName,\r\n }\r\n }\r\n\r\n updateQuerySubstateIfExists(draft, arg.queryCacheKey, (substate) => {\r\n substate.status = QueryStatus.pending\r\n\r\n substate.requestId =\r\n upserting && substate.requestId\r\n ? // for `upsertQuery` **updates**, keep the current `requestId`\r\n substate.requestId\r\n : // for normal queries or `upsertQuery` **inserts** always update the `requestId`\r\n meta.requestId\r\n if (arg.originalArgs !== undefined) {\r\n substate.originalArgs = arg.originalArgs\r\n }\r\n substate.startedTimeStamp = meta.startedTimeStamp\r\n })\r\n })\r\n .addCase(queryThunk.fulfilled, (draft, { meta, payload }) => {\r\n updateQuerySubstateIfExists(\r\n draft,\r\n meta.arg.queryCacheKey,\r\n (substate) => {\r\n if (\r\n substate.requestId !== meta.requestId &&\r\n !isUpsertQuery(meta.arg)\r\n )\r\n return\r\n const { merge } = definitions[\r\n meta.arg.endpointName\r\n ] as QueryDefinition<any, any, any, any>\r\n substate.status = QueryStatus.fulfilled\r\n\r\n if (merge) {\r\n if (substate.data !== undefined) {\r\n const { fulfilledTimeStamp, arg, baseQueryMeta, requestId } =\r\n meta\r\n // There's existing cache data. Let the user merge it in themselves.\r\n // We're already inside an Immer-powered reducer, and the user could just mutate `substate.data`\r\n // themselves inside of `merge()`. But, they might also want to return a new value.\r\n // Try to let Immer figure that part out, save the result, and assign it to `substate.data`.\r\n let newData = createNextState(\r\n substate.data,\r\n (draftSubstateData) => {\r\n // As usual with Immer, you can mutate _or_ return inside here, but not both\r\n return merge(draftSubstateData, payload, {\r\n arg: arg.originalArgs,\r\n baseQueryMeta,\r\n fulfilledTimeStamp,\r\n requestId,\r\n })\r\n }\r\n )\r\n substate.data = newData\r\n } else {\r\n // Presumably a fresh request. Just cache the response data.\r\n substate.data = payload\r\n }\r\n } else {\r\n // Assign or safely update the cache data.\r\n substate.data =\r\n definitions[meta.arg.endpointName].structuralSharing ?? true\r\n ? copyWithStructuralSharing(\r\n isDraft(substate.data)\r\n ? original(substate.data)\r\n : substate.data,\r\n payload\r\n )\r\n : payload\r\n }\r\n\r\n delete substate.error\r\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp\r\n }\r\n )\r\n })\r\n .addCase(\r\n queryThunk.rejected,\r\n (draft, { meta: { condition, arg, requestId }, error, payload }) => {\r\n updateQuerySubstateIfExists(\r\n draft,\r\n arg.queryCacheKey,\r\n (substate) => {\r\n if (condition) {\r\n // request was aborted due to condition (another query already running)\r\n } else {\r\n // request failed\r\n if (substate.requestId !== requestId) return\r\n substate.status = QueryStatus.rejected\r\n substate.error = (payload ?? error) as any\r\n }\r\n }\r\n )\r\n }\r\n )\r\n .addMatcher(hasRehydrationInfo, (draft, action) => {\r\n const { queries } = extractRehydrationInfo(action)!\r\n for (const [key, entry] of Object.entries(queries)) {\r\n if (\r\n // do not rehydrate entries that were currently in flight.\r\n entry?.status === QueryStatus.fulfilled ||\r\n entry?.status === QueryStatus.rejected\r\n ) {\r\n draft[key] = entry\r\n }\r\n }\r\n })\r\n },\r\n })\r\n const mutationSlice = createSlice({\r\n name: `${reducerPath}/mutations`,\r\n initialState: initialState as MutationState<any>,\r\n reducers: {\r\n removeMutationResult: {\r\n reducer(draft, { payload }: PayloadAction<MutationSubstateIdentifier>) {\r\n const cacheKey = getMutationCacheKey(payload)\r\n if (cacheKey in draft) {\r\n delete draft[cacheKey]\r\n }\r\n },\r\n prepare: prepareAutoBatched<MutationSubstateIdentifier>(),\r\n },\r\n },\r\n extraReducers(builder) {\r\n builder\r\n .addCase(\r\n mutationThunk.pending,\r\n (draft, { meta, meta: { requestId, arg, startedTimeStamp } }) => {\r\n if (!arg.track) return\r\n\r\n draft[getMutationCacheKey(meta)] = {\r\n requestId,\r\n status: QueryStatus.pending,\r\n endpointName: arg.endpointName,\r\n startedTimeStamp,\r\n }\r\n }\r\n )\r\n .addCase(mutationThunk.fulfilled, (draft, { payload, meta }) => {\r\n if (!meta.arg.track) return\r\n\r\n updateMutationSubstateIfExists(draft, meta, (substate) => {\r\n if (substate.requestId !== meta.requestId) return\r\n substate.status = QueryStatus.fulfilled\r\n substate.data = payload\r\n substate.fulfilledTimeStamp = meta.fulfilledTimeStamp\r\n })\r\n })\r\n .addCase(mutationThunk.rejected, (draft, { payload, error, meta }) => {\r\n if (!meta.arg.track) return\r\n\r\n updateMutationSubstateIfExists(draft, meta, (substate) => {\r\n if (substate.requestId !== meta.requestId) return\r\n\r\n substate.status = QueryStatus.rejected\r\n substate.error = (payload ?? error) as any\r\n })\r\n })\r\n .addMatcher(hasRehydrationInfo, (draft, action) => {\r\n const { mutations } = extractRehydrationInfo(action)!\r\n for (const [key, entry] of Object.entries(mutations)) {\r\n if (\r\n // do not rehydrate entries that were currently in flight.\r\n (entry?.status === QueryStatus.fulfilled ||\r\n entry?.status === QueryStatus.rejected) &&\r\n // only rehydrate endpoints that were persisted using a `fixedCacheKey`\r\n key !== entry?.requestId\r\n ) {\r\n draft[key] = entry\r\n }\r\n }\r\n })\r\n },\r\n })\r\n\r\n const invalidationSlice = createSlice({\r\n name: `${reducerPath}/invalidation`,\r\n initialState: initialState as InvalidationState<string>,\r\n reducers: {\r\n updateProvidedBy: {\r\n reducer(\r\n draft,\r\n action: PayloadAction<{\r\n queryCacheKey: QueryCacheKey\r\n providedTags: readonly FullTagDescription<string>[]\r\n }>\r\n ) {\r\n const { queryCacheKey, providedTags } = action.payload\r\n\r\n for (const tagTypeSubscriptions of Object.values(draft)) {\r\n for (const idSubscriptions of Object.values(tagTypeSubscriptions)) {\r\n const foundAt = idSubscriptions.indexOf(queryCacheKey)\r\n if (foundAt !== -1) {\r\n idSubscriptions.splice(foundAt, 1)\r\n }\r\n }\r\n }\r\n\r\n for (const { type, id } of providedTags) {\r\n const subscribedQueries = ((draft[type] ??= {})[\r\n id || '__internal_without_id'\r\n ] ??= [])\r\n const alreadySubscribed = subscribedQueries.includes(queryCacheKey)\r\n if (!alreadySubscribed) {\r\n subscribedQueries.push(queryCacheKey)\r\n }\r\n }\r\n },\r\n prepare: prepareAutoBatched<{\r\n queryCacheKey: QueryCacheKey\r\n providedTags: readonly FullTagDescription<string>[]\r\n }>(),\r\n },\r\n },\r\n extraReducers(builder) {\r\n builder\r\n .addCase(\r\n querySlice.actions.removeQueryResult,\r\n (draft, { payload: { queryCacheKey } }) => {\r\n for (const tagTypeSubscriptions of Object.values(draft)) {\r\n for (const idSubscriptions of Object.values(\r\n tagTypeSubscriptions\r\n )) {\r\n const foundAt = idSubscriptions.indexOf(queryCacheKey)\r\n if (foundAt !== -1) {\r\n idSubscriptions.splice(foundAt, 1)\r\n }\r\n }\r\n }\r\n }\r\n )\r\n .addMatcher(hasRehydrationInfo, (draft, action) => {\r\n const { provided } = extractRehydrationInfo(action)!\r\n for (const [type, incomingTags] of Object.entries(provided)) {\r\n for (const [id, cacheKeys] of Object.entries(incomingTags)) {\r\n const subscribedQueries = ((draft[type] ??= {})[\r\n id || '__internal_without_id'\r\n ] ??= [])\r\n for (const queryCacheKey of cacheKeys) {\r\n const alreadySubscribed =\r\n subscribedQueries.includes(queryCacheKey)\r\n if (!alreadySubscribed) {\r\n subscribedQueries.push(queryCacheKey)\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .addMatcher(\r\n isAnyOf(isFulfilled(queryThunk), isRejectedWithValue(queryThunk)),\r\n (draft, action) => {\r\n const providedTags = calculateProvidedByThunk(\r\n action,\r\n 'providesTags',\r\n definitions,\r\n assertTagType\r\n )\r\n const { queryCacheKey } = action.meta.arg\r\n\r\n invalidationSlice.caseReducers.updateProvidedBy(\r\n draft,\r\n invalidationSlice.actions.updateProvidedBy({\r\n queryCacheKey,\r\n providedTags,\r\n })\r\n )\r\n }\r\n )\r\n },\r\n })\r\n\r\n // Dummy slice to generate actions\r\n const subscriptionSlice = createSlice({\r\n name: `${reducerPath}/subscriptions`,\r\n initialState: initialState as SubscriptionState,\r\n reducers: {\r\n updateSubscriptionOptions(\r\n d,\r\n a: PayloadAction<\r\n {\r\n endpointName: string\r\n requestId: string\r\n options: Subscribers[number]\r\n } & QuerySubstateIdentifier\r\n >\r\n ) {\r\n // Dummy\r\n },\r\n unsubscribeQueryResult(\r\n d,\r\n a: PayloadAction<{ requestId: string } & QuerySubstateIdentifier>\r\n ) {\r\n // Dummy\r\n },\r\n internal_probeSubscription(\r\n d,\r\n a: PayloadAction<{ queryCacheKey: string; requestId: string }>\r\n ) {\r\n // dummy\r\n },\r\n },\r\n })\r\n\r\n const internalSubscriptionsSlice = createSlice({\r\n name: `${reducerPath}/internalSubscriptions`,\r\n initialState: initialState as SubscriptionState,\r\n reducers: {\r\n subscriptionsUpdated: {\r\n reducer(state, action: PayloadAction<Patch[]>) {\r\n return applyPatches(state, action.payload)\r\n },\r\n prepare: prepareAutoBatched<Patch[]>(),\r\n },\r\n },\r\n })\r\n\r\n const configSlice = createSlice({\r\n name: `${reducerPath}/config`,\r\n initialState: {\r\n online: isOnline(),\r\n focused: isDocumentVisible(),\r\n middlewareRegistered: false,\r\n ...config,\r\n } as ConfigState<string>,\r\n reducers: {\r\n middlewareRegistered(state, { payload }: PayloadAction<string>) {\r\n state.middlewareRegistered =\r\n state.middlewareRegistered === 'conflict' || apiUid !== payload\r\n ? 'conflict'\r\n : true\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(onOnline, (state) => {\r\n state.online = true\r\n })\r\n .addCase(onOffline, (state) => {\r\n state.online = false\r\n })\r\n .addCase(onFocus, (state) => {\r\n state.focused = true\r\n })\r\n .addCase(onFocusLost, (state) => {\r\n state.focused = false\r\n })\r\n // update the state to be a new object to be picked up as a \"state change\"\r\n // by redux-persist's `autoMergeLevel2`\r\n .addMatcher(hasRehydrationInfo, (draft) => ({ ...draft }))\r\n },\r\n })\r\n\r\n const combinedReducer = combineReducers<\r\n CombinedQueryState<any, string, string>\r\n >({\r\n queries: querySlice.reducer,\r\n mutations: mutationSlice.reducer,\r\n provided: invalidationSlice.reducer,\r\n subscriptions: internalSubscriptionsSlice.reducer,\r\n config: configSlice.reducer,\r\n })\r\n\r\n const reducer: typeof combinedReducer = (state, action) =>\r\n combinedReducer(resetApiState.match(action) ? undefined : state, action)\r\n\r\n const actions = {\r\n ...configSlice.actions,\r\n ...querySlice.actions,\r\n ...subscriptionSlice.actions,\r\n ...internalSubscriptionsSlice.actions,\r\n ...mutationSlice.actions,\r\n ...invalidationSlice.actions,\r\n /** @deprecated has been renamed to `removeMutationResult` */\r\n unsubscribeMutationResult: mutationSlice.actions.removeMutationResult,\r\n resetApiState,\r\n }\r\n\r\n return { reducer, actions }\r\n}\r\nexport type SliceActions = ReturnType<typeof buildSlice>['actions']\r\n","/**\r\n * Assumes a browser is online if `undefined`, otherwise makes a best effort\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine\r\n */\r\nexport function isOnline() {\r\n // We set the default config value in the store, so we'd need to check for this in a SSR env\r\n return typeof navigator === 'undefined'\r\n ? true\r\n : navigator.onLine === undefined\r\n ? true\r\n : navigator.onLine\r\n}\r\n","/**\r\n * Assumes true for a non-browser env, otherwise makes a best effort\r\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState\r\n */\r\nexport function isDocumentVisible(): boolean {\r\n // `document` may not exist in non-browser envs (like RN)\r\n if (typeof document === 'undefined') {\r\n return true\r\n }\r\n // Match true for visible, prerender, undefined\r\n return document.visibilityState !== 'hidden'\r\n}\r\n","import { createNextState, createSelector } from '@reduxjs/toolkit'\r\nimport type {\r\n MutationSubState,\r\n QuerySubState,\r\n RootState as _RootState,\r\n RequestStatusFlags,\r\n QueryCacheKey,\r\n} from './apiState'\r\nimport { QueryStatus, getRequestStatusFlags } from './apiState'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n TagTypesFrom,\r\n ReducerPathFrom,\r\n TagDescription,\r\n} from '../endpointDefinitions'\r\nimport { expandTagDescription } from '../endpointDefinitions'\r\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport { getMutationCacheKey } from './buildSlice'\r\nimport { flatten } from '../utils'\r\n\r\nexport type SkipToken = typeof skipToken\r\n/**\r\n * Can be passed into `useQuery`, `useQueryState` or `useQuerySubscription`\r\n * instead of the query argument to get the same effect as if setting\r\n * `skip: true` in the query options.\r\n *\r\n * Useful for scenarios where a query should be skipped when `arg` is `undefined`\r\n * and TypeScript complains about it because `arg` is not allowed to be passed\r\n * in as `undefined`, such as\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"will error if the query argument is not allowed to be undefined\" no-transpile\r\n * useSomeQuery(arg, { skip: !!arg })\r\n * ```\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"using skipToken instead\" no-transpile\r\n * useSomeQuery(arg ?? skipToken)\r\n * ```\r\n *\r\n * If passed directly into a query or mutation selector, that selector will always\r\n * return an uninitialized state.\r\n */\r\nexport const skipToken = /* @__PURE__ */ Symbol.for('RTKQ/skipToken')\r\n/** @deprecated renamed to `skipToken` */\r\nexport const skipSelector = skipToken\r\n\r\ndeclare module './module' {\r\n export interface ApiEndpointQuery<\r\n Definition extends QueryDefinition<any, any, any, any, any>,\r\n Definitions extends EndpointDefinitions\r\n > {\r\n select: QueryResultSelectorFactory<\r\n Definition,\r\n _RootState<\r\n Definitions,\r\n TagTypesFrom<Definition>,\r\n ReducerPathFrom<Definition>\r\n >\r\n >\r\n }\r\n\r\n export interface ApiEndpointMutation<\r\n Definition extends MutationDefinition<any, any, any, any, any>,\r\n Definitions extends EndpointDefinitions\r\n > {\r\n select: MutationResultSelectorFactory<\r\n Definition,\r\n _RootState<\r\n Definitions,\r\n TagTypesFrom<Definition>,\r\n ReducerPathFrom<Definition>\r\n >\r\n >\r\n }\r\n}\r\n\r\ntype QueryResultSelectorFactory<\r\n Definition extends QueryDefinition<any, any, any, any>,\r\n RootState\r\n> = (\r\n queryArg: QueryArgFrom<Definition> | SkipToken\r\n) => (state: RootState) => QueryResultSelectorResult<Definition>\r\n\r\nexport type QueryResultSelectorResult<\r\n Definition extends QueryDefinition<any, any, any, any>\r\n> = QuerySubState<Definition> & RequestStatusFlags\r\n\r\ntype MutationResultSelectorFactory<\r\n Definition extends MutationDefinition<any, any, any, any>,\r\n RootState\r\n> = (\r\n requestId:\r\n | string\r\n | { requestId: string | undefined; fixedCacheKey: string | undefined }\r\n | SkipToken\r\n) => (state: RootState) => MutationResultSelectorResult<Definition>\r\n\r\nexport type MutationResultSelectorResult<\r\n Definition extends MutationDefinition<any, any, any, any>\r\n> = MutationSubState<Definition> & RequestStatusFlags\r\n\r\nconst initialSubState: QuerySubState<any> = {\r\n status: QueryStatus.uninitialized as const,\r\n}\r\n\r\n// abuse immer to freeze default states\r\nconst defaultQuerySubState = /* @__PURE__ */ createNextState(\r\n initialSubState,\r\n () => {}\r\n)\r\nconst defaultMutationSubState = /* @__PURE__ */ createNextState(\r\n initialSubState as MutationSubState<any>,\r\n () => {}\r\n)\r\n\r\nexport function buildSelectors<\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string\r\n>({\r\n serializeQueryArgs,\r\n reducerPath,\r\n}: {\r\n serializeQueryArgs: InternalSerializeQueryArgs\r\n reducerPath: ReducerPath\r\n}) {\r\n type RootState = _RootState<Definitions, string, string>\r\n\r\n const selectSkippedQuery = (state: RootState) => defaultQuerySubState\r\n const selectSkippedMutation = (state: RootState) => defaultMutationSubState\r\n\r\n return { buildQuerySelector, buildMutationSelector, selectInvalidatedBy }\r\n\r\n function withRequestFlags<T extends { status: QueryStatus }>(\r\n substate: T\r\n ): T & RequestStatusFlags {\r\n return {\r\n ...substate,\r\n ...getRequestStatusFlags(substate.status),\r\n }\r\n }\r\n\r\n function selectInternalState(rootState: RootState) {\r\n const state = rootState[reducerPath]\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!state) {\r\n if ((selectInternalState as any).triggered) return state\r\n ;(selectInternalState as any).triggered = true\r\n console.error(\r\n `Error: No data found at \\`state.${reducerPath}\\`. Did you forget to add the reducer to the store?`\r\n )\r\n }\r\n }\r\n return state\r\n }\r\n\r\n function buildQuerySelector(\r\n endpointName: string,\r\n endpointDefinition: QueryDefinition<any, any, any, any>\r\n ) {\r\n return ((queryArgs: any) => {\r\n const serializedArgs = serializeQueryArgs({\r\n queryArgs,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n const selectQuerySubstate = (state: RootState) =>\r\n selectInternalState(state)?.queries?.[serializedArgs] ??\r\n defaultQuerySubState\r\n const finalSelectQuerySubState =\r\n queryArgs === skipToken ? selectSkippedQuery : selectQuerySubstate\r\n\r\n return createSelector(finalSelectQuerySubState, withRequestFlags)\r\n }) as QueryResultSelectorFactory<any, RootState>\r\n }\r\n\r\n function buildMutationSelector() {\r\n return ((id) => {\r\n let mutationId: string | typeof skipToken\r\n if (typeof id === 'object') {\r\n mutationId = getMutationCacheKey(id) ?? skipToken\r\n } else {\r\n mutationId = id\r\n }\r\n const selectMutationSubstate = (state: RootState) =>\r\n selectInternalState(state)?.mutations?.[mutationId as string] ??\r\n defaultMutationSubState\r\n const finalSelectMutationSubstate =\r\n mutationId === skipToken\r\n ? selectSkippedMutation\r\n : selectMutationSubstate\r\n\r\n return createSelector(finalSelectMutationSubstate, withRequestFlags)\r\n }) as MutationResultSelectorFactory<any, RootState>\r\n }\r\n\r\n function selectInvalidatedBy(\r\n state: RootState,\r\n tags: ReadonlyArray<TagDescription<string>>\r\n ): Array<{\r\n endpointName: string\r\n originalArgs: any\r\n queryCacheKey: QueryCacheKey\r\n }> {\r\n const apiState = state[reducerPath]\r\n const toInvalidate = new Set<QueryCacheKey>()\r\n for (const tag of tags.map(expandTagDescription)) {\r\n const provided = apiState.provided[tag.type]\r\n if (!provided) {\r\n continue\r\n }\r\n\r\n let invalidateSubscriptions =\r\n (tag.id !== undefined\r\n ? // id given: invalidate all queries that provide this type & id\r\n provided[tag.id]\r\n : // no id: invalidate all queries that provide this type\r\n flatten(Object.values(provided))) ?? []\r\n\r\n for (const invalidate of invalidateSubscriptions) {\r\n toInvalidate.add(invalidate)\r\n }\r\n }\r\n\r\n return flatten(\r\n Array.from(toInvalidate.values()).map((queryCacheKey) => {\r\n const querySubState = apiState.queries[queryCacheKey]\r\n return querySubState\r\n ? [\r\n {\r\n queryCacheKey,\r\n endpointName: querySubState.endpointName!,\r\n originalArgs: querySubState.originalArgs,\r\n },\r\n ]\r\n : []\r\n })\r\n )\r\n }\r\n}\r\n","import type { QueryCacheKey } from './core/apiState'\r\nimport type { EndpointDefinition } from './endpointDefinitions'\r\nimport { isPlainObject } from '@reduxjs/toolkit'\r\n\r\nconst cache: WeakMap<any, string> | undefined = WeakMap\r\n ? new WeakMap()\r\n : undefined\r\n\r\nexport const defaultSerializeQueryArgs: SerializeQueryArgs<any> = ({\r\n endpointName,\r\n queryArgs,\r\n}) => {\r\n let serialized = ''\r\n\r\n const cached = cache?.get(queryArgs)\r\n\r\n if (typeof cached === 'string') {\r\n serialized = cached\r\n } else {\r\n const stringified = JSON.stringify(queryArgs, (key, value) =>\r\n isPlainObject(value)\r\n ? Object.keys(value)\r\n .sort()\r\n .reduce<any>((acc, key) => {\r\n acc[key] = (value as any)[key]\r\n return acc\r\n }, {})\r\n : value\r\n )\r\n if (isPlainObject(queryArgs)) {\r\n cache?.set(queryArgs, stringified)\r\n }\r\n serialized = stringified\r\n }\r\n // Sort the object keys before stringifying, to prevent useQuery({ a: 1, b: 2 }) having a different cache key than useQuery({ b: 2, a: 1 })\r\n return `${endpointName}(${serialized})`\r\n}\r\n\r\nexport type SerializeQueryArgs<QueryArgs, ReturnType = string> = (_: {\r\n queryArgs: QueryArgs\r\n endpointDefinition: EndpointDefinition<any, any, any, any>\r\n endpointName: string\r\n}) => ReturnType\r\n\r\nexport type InternalSerializeQueryArgs = (_: {\r\n queryArgs: any\r\n endpointDefinition: EndpointDefinition<any, any, any, any>\r\n endpointName: string\r\n}) => QueryCacheKey\r\n","import type { Api, ApiContext, Module, ModuleName } from './apiTypes'\r\nimport type { CombinedState } from './core/apiState'\r\nimport type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes'\r\nimport type { SerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport { defaultSerializeQueryArgs } from './defaultSerializeQueryArgs'\r\nimport type {\r\n EndpointBuilder,\r\n EndpointDefinitions,\r\n} from './endpointDefinitions'\r\nimport { DefinitionType, isQueryDefinition } from './endpointDefinitions'\r\nimport { nanoid } from '@reduxjs/toolkit'\r\nimport type { AnyAction } from '@reduxjs/toolkit'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { defaultMemoize } from 'reselect'\r\n\r\nexport interface CreateApiOptions<\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string = 'api',\r\n TagTypes extends string = never\r\n> {\r\n /**\r\n * The base query used by each endpoint if no `queryFn` option is specified. RTK Query exports a utility called [fetchBaseQuery](./fetchBaseQuery) as a lightweight wrapper around `fetch` for common use-cases. See [Customizing Queries](../../rtk-query/usage/customizing-queries) if `fetchBaseQuery` does not handle your requirements.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n *\r\n * const api = createApi({\r\n * // highlight-start\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * // highlight-end\r\n * endpoints: (build) => ({\r\n * // ...endpoints\r\n * }),\r\n * })\r\n * ```\r\n */\r\n baseQuery: BaseQuery\r\n /**\r\n * An array of string tag type names. Specifying tag types is optional, but you should define them so that they can be used for caching and invalidation. When defining a tag type, you will be able to [provide](../../rtk-query/usage/automated-refetching#providing-tags) them with `providesTags` and [invalidate](../../rtk-query/usage/automated-refetching#invalidating-tags) them with `invalidatesTags` when configuring [endpoints](#endpoints).\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * // highlight-start\r\n * tagTypes: ['Post', 'User'],\r\n * // highlight-end\r\n * endpoints: (build) => ({\r\n * // ...endpoints\r\n * }),\r\n * })\r\n * ```\r\n */\r\n tagTypes?: readonly TagTypes[]\r\n /**\r\n * The `reducerPath` is a _unique_ key that your service will be mounted to in your store. If you call `createApi` more than once in your application, you will need to provide a unique value each time. Defaults to `'api'`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"apis.js\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query';\r\n *\r\n * const apiOne = createApi({\r\n * // highlight-start\r\n * reducerPath: 'apiOne',\r\n * // highlight-end\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (builder) => ({\r\n * // ...endpoints\r\n * }),\r\n * });\r\n *\r\n * const apiTwo = createApi({\r\n * // highlight-start\r\n * reducerPath: 'apiTwo',\r\n * // highlight-end\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (builder) => ({\r\n * // ...endpoints\r\n * }),\r\n * });\r\n * ```\r\n */\r\n reducerPath?: ReducerPath\r\n /**\r\n * Accepts a custom function if you have a need to change the creation of cache keys for any reason.\r\n */\r\n serializeQueryArgs?: SerializeQueryArgs<BaseQueryArg<BaseQuery>>\r\n /**\r\n * Endpoints are just a set of operations that you want to perform against your server. You define them as an object using the builder syntax. There are two basic endpoint types: [`query`](../../rtk-query/usage/queries) and [`mutation`](../../rtk-query/usage/mutations).\r\n */\r\n endpoints(\r\n build: EndpointBuilder<BaseQuery, TagTypes, ReducerPath>\r\n ): Definitions\r\n /**\r\n * Defaults to `60` _(this value is in seconds)_. This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"keepUnusedDataFor example\"\r\n *\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n * type PostsResponse = Post[]\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * endpoints: (build) => ({\r\n * getPosts: build.query<PostsResponse, void>({\r\n * query: () => 'posts',\r\n * // highlight-start\r\n * keepUnusedDataFor: 5\r\n * // highlight-end\r\n * })\r\n * })\r\n * })\r\n * ```\r\n */\r\n keepUnusedDataFor?: number\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether if a cached result is already available RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\r\n * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\r\n * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\r\n * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n */\r\n refetchOnMountOrArgChange?: boolean | number\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after the application window regains focus.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnFocus?: boolean\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether RTK Query will try to refetch all subscribed queries after regaining a network connection.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n *\r\n * Note: requires [`setupListeners`](./setupListeners) to have been called.\r\n */\r\n refetchOnReconnect?: boolean\r\n /**\r\n * A function that is passed every dispatched action. If this returns something other than `undefined`,\r\n * that return value will be used to rehydrate fulfilled & errored queries.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * // codeblock-meta title=\"next-redux-wrapper rehydration example\"\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\r\n * import { HYDRATE } from 'next-redux-wrapper'\r\n *\r\n * export const api = createApi({\r\n * baseQuery: fetchBaseQuery({ baseUrl: '/' }),\r\n * // highlight-start\r\n * extractRehydrationInfo(action, { reducerPath }) {\r\n * if (action.type === HYDRATE) {\r\n * return action.payload[reducerPath]\r\n * }\r\n * },\r\n * // highlight-end\r\n * endpoints: (build) => ({\r\n * // omitted\r\n * }),\r\n * })\r\n * ```\r\n */\r\n extractRehydrationInfo?: (\r\n action: AnyAction,\r\n {\r\n reducerPath,\r\n }: {\r\n reducerPath: ReducerPath\r\n }\r\n ) =>\r\n | undefined\r\n | CombinedState<\r\n NoInfer<Definitions>,\r\n NoInfer<TagTypes>,\r\n NoInfer<ReducerPath>\r\n >\r\n}\r\n\r\nexport type CreateApi<Modules extends ModuleName> = {\r\n /**\r\n * Creates a service to use in your application. Contains only the basic redux logic (the core module).\r\n *\r\n * @link https://rtk-query-docs.netlify.app/api/createApi\r\n */\r\n <\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string = 'api',\r\n TagTypes extends string = never\r\n >(\r\n options: CreateApiOptions<BaseQuery, Definitions, ReducerPath, TagTypes>\r\n ): Api<BaseQuery, Definitions, ReducerPath, TagTypes, Modules>\r\n}\r\n\r\n/**\r\n * Builds a `createApi` method based on the provided `modules`.\r\n *\r\n * @link https://rtk-query-docs.netlify.app/concepts/customizing-create-api\r\n *\r\n * @example\r\n * ```ts\r\n * const MyContext = React.createContext<ReactReduxContextValue>(null as any);\r\n * const customCreateApi = buildCreateApi(\r\n * coreModule(),\r\n * reactHooksModule({ useDispatch: createDispatchHook(MyContext) })\r\n * );\r\n * ```\r\n *\r\n * @param modules - A variable number of modules that customize how the `createApi` method handles endpoints\r\n * @returns A `createApi` method using the provided `modules`.\r\n */\r\nexport function buildCreateApi<Modules extends [Module<any>, ...Module<any>[]]>(\r\n ...modules: Modules\r\n): CreateApi<Modules[number]['name']> {\r\n return function baseCreateApi(options) {\r\n const extractRehydrationInfo = defaultMemoize((action: AnyAction) =>\r\n options.extractRehydrationInfo?.(action, {\r\n reducerPath: (options.reducerPath ?? 'api') as any,\r\n })\r\n )\r\n\r\n const optionsWithDefaults: CreateApiOptions<any, any, any, any> = {\r\n reducerPath: 'api',\r\n keepUnusedDataFor: 60,\r\n refetchOnMountOrArgChange: false,\r\n refetchOnFocus: false,\r\n refetchOnReconnect: false,\r\n ...options,\r\n extractRehydrationInfo,\r\n serializeQueryArgs(queryArgsApi) {\r\n let finalSerializeQueryArgs = defaultSerializeQueryArgs\r\n if ('serializeQueryArgs' in queryArgsApi.endpointDefinition) {\r\n const endpointSQA =\r\n queryArgsApi.endpointDefinition.serializeQueryArgs!\r\n finalSerializeQueryArgs = (queryArgsApi) => {\r\n const initialResult = endpointSQA(queryArgsApi)\r\n if (typeof initialResult === 'string') {\r\n // If the user function returned a string, use it as-is\r\n return initialResult\r\n } else {\r\n // Assume they returned an object (such as a subset of the original\r\n // query args) or a primitive, and serialize it ourselves\r\n return defaultSerializeQueryArgs({\r\n ...queryArgsApi,\r\n queryArgs: initialResult,\r\n })\r\n }\r\n }\r\n } else if (options.serializeQueryArgs) {\r\n finalSerializeQueryArgs = options.serializeQueryArgs\r\n }\r\n\r\n return finalSerializeQueryArgs(queryArgsApi)\r\n },\r\n tagTypes: [...(options.tagTypes || [])],\r\n }\r\n\r\n const context: ApiContext<EndpointDefinitions> = {\r\n endpointDefinitions: {},\r\n batch(fn) {\r\n // placeholder \"batch\" method to be overridden by plugins, for example with React.unstable_batchedUpdate\r\n fn()\r\n },\r\n apiUid: nanoid(),\r\n extractRehydrationInfo,\r\n hasRehydrationInfo: defaultMemoize(\r\n (action) => extractRehydrationInfo(action) != null\r\n ),\r\n }\r\n\r\n const api = {\r\n injectEndpoints,\r\n enhanceEndpoints({ addTagTypes, endpoints }) {\r\n if (addTagTypes) {\r\n for (const eT of addTagTypes) {\r\n if (!optionsWithDefaults.tagTypes!.includes(eT as any)) {\r\n ;(optionsWithDefaults.tagTypes as any[]).push(eT)\r\n }\r\n }\r\n }\r\n if (endpoints) {\r\n for (const [endpointName, partialDefinition] of Object.entries(\r\n endpoints\r\n )) {\r\n if (typeof partialDefinition === 'function') {\r\n partialDefinition(context.endpointDefinitions[endpointName])\r\n } else {\r\n Object.assign(\r\n context.endpointDefinitions[endpointName] || {},\r\n partialDefinition\r\n )\r\n }\r\n }\r\n }\r\n return api\r\n },\r\n } as Api<BaseQueryFn, {}, string, string, Modules[number]['name']>\r\n\r\n const initializedModules = modules.map((m) =>\r\n m.init(api as any, optionsWithDefaults as any, context)\r\n )\r\n\r\n function injectEndpoints(\r\n inject: Parameters<typeof api.injectEndpoints>[0]\r\n ) {\r\n const evaluatedEndpoints = inject.endpoints({\r\n query: (x) => ({ ...x, type: DefinitionType.query } as any),\r\n mutation: (x) => ({ ...x, type: DefinitionType.mutation } as any),\r\n })\r\n\r\n for (const [endpointName, definition] of Object.entries(\r\n evaluatedEndpoints\r\n )) {\r\n if (\r\n !inject.overrideExisting &&\r\n endpointName in context.endpointDefinitions\r\n ) {\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n console.error(\r\n `called \\`injectEndpoints\\` to override already-existing endpointName ${endpointName} without specifying \\`overrideExisting: true\\``\r\n )\r\n }\r\n\r\n continue\r\n }\r\n\r\n context.endpointDefinitions[endpointName] = definition\r\n for (const m of initializedModules) {\r\n m.injectEndpoint(endpointName, definition)\r\n }\r\n }\r\n\r\n return api as any\r\n }\r\n\r\n return api.injectEndpoints({ endpoints: options.endpoints as any })\r\n }\r\n}\r\n","import type { BaseQueryFn } from '../../baseQueryTypes'\r\nimport type { QueryDefinition } from '../../endpointDefinitions'\r\nimport type { ConfigState, QueryCacheKey } from '../apiState'\r\nimport type {\r\n QueryStateMeta,\r\n SubMiddlewareApi,\r\n TimeoutId,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n InternalMiddlewareState,\r\n} from './types'\r\n\r\nexport type ReferenceCacheCollection = never\r\n\r\nfunction isObjectEmpty(obj: Record<any, any>) {\r\n // Apparently a for..in loop is faster than `Object.keys()` here:\r\n // https://stackoverflow.com/a/59787784/62937\r\n for (let k in obj) {\r\n // If there is at least one key, it's not empty\r\n return false\r\n }\r\n return true\r\n}\r\n\r\ndeclare module '../../endpointDefinitions' {\r\n interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n /**\r\n * Overrides the api-wide definition of `keepUnusedDataFor` for this endpoint only. _(This value is in seconds.)_\r\n *\r\n * This is how long RTK Query will keep your data cached for **after** the last component unsubscribes. For example, if you query an endpoint, then unmount the component, then mount another component that makes the same request within the given time frame, the most recent value will be served from the cache.\r\n */\r\n keepUnusedDataFor?: number\r\n }\r\n}\r\n\r\n// Per https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value , browsers store\r\n// `setTimeout()` timer values in a 32-bit int. If we pass a value in that's larger than that,\r\n// it wraps and ends up executing immediately.\r\n// Our `keepUnusedDataFor` values are in seconds, so adjust the numbers here accordingly.\r\nexport const THIRTY_TWO_BIT_MAX_INT = 2_147_483_647\r\nexport const THIRTY_TWO_BIT_MAX_TIMER_SECONDS = 2_147_483_647 / 1_000 - 1\r\n\r\nexport const buildCacheCollectionHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n api,\r\n context,\r\n internalState,\r\n}) => {\r\n const { removeQueryResult, unsubscribeQueryResult } = api.internalActions\r\n\r\n function anySubscriptionsRemainingForKey(queryCacheKey: string) {\r\n const subscriptions = internalState.currentSubscriptions[queryCacheKey]\r\n return !!subscriptions && !isObjectEmpty(subscriptions)\r\n }\r\n\r\n const currentRemovalTimeouts: QueryStateMeta<TimeoutId> = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (\r\n action,\r\n mwApi,\r\n internalState\r\n ) => {\r\n if (unsubscribeQueryResult.match(action)) {\r\n const state = mwApi.getState()[reducerPath]\r\n const { queryCacheKey } = action.payload\r\n\r\n handleUnsubscribe(\r\n queryCacheKey,\r\n state.queries[queryCacheKey]?.endpointName,\r\n mwApi,\r\n state.config\r\n )\r\n }\r\n\r\n if (api.util.resetApiState.match(action)) {\r\n for (const [key, timeout] of Object.entries(currentRemovalTimeouts)) {\r\n if (timeout) clearTimeout(timeout)\r\n delete currentRemovalTimeouts[key]\r\n }\r\n }\r\n\r\n if (context.hasRehydrationInfo(action)) {\r\n const state = mwApi.getState()[reducerPath]\r\n const { queries } = context.extractRehydrationInfo(action)!\r\n for (const [queryCacheKey, queryState] of Object.entries(queries)) {\r\n // Gotcha:\r\n // If rehydrating before the endpoint has been injected,the global `keepUnusedDataFor`\r\n // will be used instead of the endpoint-specific one.\r\n handleUnsubscribe(\r\n queryCacheKey as QueryCacheKey,\r\n queryState?.endpointName,\r\n mwApi,\r\n state.config\r\n )\r\n }\r\n }\r\n }\r\n\r\n function handleUnsubscribe(\r\n queryCacheKey: QueryCacheKey,\r\n endpointName: string | undefined,\r\n api: SubMiddlewareApi,\r\n config: ConfigState<string>\r\n ) {\r\n const endpointDefinition = context.endpointDefinitions[\r\n endpointName!\r\n ] as QueryDefinition<any, any, any, any>\r\n const keepUnusedDataFor =\r\n endpointDefinition?.keepUnusedDataFor ?? config.keepUnusedDataFor\r\n\r\n if (keepUnusedDataFor === Infinity) {\r\n // Hey, user said keep this forever!\r\n return\r\n }\r\n // Prevent `setTimeout` timers from overflowing a 32-bit internal int, by\r\n // clamping the max value to be at most 1000ms less than the 32-bit max.\r\n // Look, a 24.8-day keepalive ought to be enough for anybody, right? :)\r\n // Also avoid negative values too.\r\n const finalKeepUnusedDataFor = Math.max(\r\n 0,\r\n Math.min(keepUnusedDataFor, THIRTY_TWO_BIT_MAX_TIMER_SECONDS)\r\n )\r\n\r\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\r\n const currentTimeout = currentRemovalTimeouts[queryCacheKey]\r\n if (currentTimeout) {\r\n clearTimeout(currentTimeout)\r\n }\r\n currentRemovalTimeouts[queryCacheKey] = setTimeout(() => {\r\n if (!anySubscriptionsRemainingForKey(queryCacheKey)) {\r\n api.dispatch(removeQueryResult({ queryCacheKey }))\r\n }\r\n delete currentRemovalTimeouts![queryCacheKey]\r\n }, finalKeepUnusedDataFor * 1000)\r\n }\r\n }\r\n\r\n return handler\r\n}\r\n","import type { QueryThunk, RejectedAction } from '../buildThunks'\r\nimport type { InternalHandlerBuilder } from './types'\r\nimport type {\r\n SubscriptionState,\r\n QuerySubstateIdentifier,\r\n Subscribers,\r\n} from '../apiState'\r\nimport { produceWithPatches } from 'immer'\r\nimport type { AnyAction } from '@reduxjs/toolkit';\r\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\n\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise<any>\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nexport const buildBatchedActionsHandler: InternalHandlerBuilder<\r\n [actionShouldContinue: boolean, subscriptionExists: boolean]\r\n> = ({ api, queryThunk, internalState }) => {\r\n const subscriptionsPrefix = `${api.reducerPath}/subscriptions`\r\n\r\n let previousSubscriptions: SubscriptionState =\r\n null as unknown as SubscriptionState\r\n\r\n let dispatchQueued = false\r\n\r\n const { updateSubscriptionOptions, unsubscribeQueryResult } =\r\n api.internalActions\r\n\r\n // Actually intentionally mutate the subscriptions state used in the middleware\r\n // This is done to speed up perf when loading many components\r\n const actuallyMutateSubscriptions = (\r\n mutableState: SubscriptionState,\r\n action: AnyAction\r\n ) => {\r\n if (updateSubscriptionOptions.match(action)) {\r\n const { queryCacheKey, requestId, options } = action.payload\r\n\r\n if (mutableState?.[queryCacheKey]?.[requestId]) {\r\n mutableState[queryCacheKey]![requestId] = options\r\n }\r\n return true\r\n }\r\n if (unsubscribeQueryResult.match(action)) {\r\n const { queryCacheKey, requestId } = action.payload\r\n if (mutableState[queryCacheKey]) {\r\n delete mutableState[queryCacheKey]![requestId]\r\n }\r\n return true\r\n }\r\n if (api.internalActions.removeQueryResult.match(action)) {\r\n delete mutableState[action.payload.queryCacheKey]\r\n return true\r\n }\r\n if (queryThunk.pending.match(action)) {\r\n const {\r\n meta: { arg, requestId },\r\n } = action\r\n if (arg.subscribe) {\r\n const substate = (mutableState[arg.queryCacheKey] ??= {})\r\n substate[requestId] =\r\n arg.subscriptionOptions ?? substate[requestId] ?? {}\r\n\r\n return true\r\n }\r\n }\r\n if (queryThunk.rejected.match(action)) {\r\n const {\r\n meta: { condition, arg, requestId },\r\n } = action\r\n if (condition && arg.subscribe) {\r\n const substate = (mutableState[arg.queryCacheKey] ??= {})\r\n substate[requestId] =\r\n arg.subscriptionOptions ?? substate[requestId] ?? {}\r\n\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n\r\n return (action, mwApi) => {\r\n if (!previousSubscriptions) {\r\n // Initialize it the first time this handler runs\r\n previousSubscriptions = JSON.parse(\r\n JSON.stringify(internalState.currentSubscriptions)\r\n )\r\n }\r\n\r\n if (api.util.resetApiState.match(action)) {\r\n previousSubscriptions = internalState.currentSubscriptions = {}\r\n return [true, false]\r\n }\r\n\r\n // Intercept requests by hooks to see if they're subscribed\r\n // Necessary because we delay updating store state to the end of the tick\r\n if (api.internalActions.internal_probeSubscription.match(action)) {\r\n const { queryCacheKey, requestId } = action.payload\r\n const hasSubscription =\r\n !!internalState.currentSubscriptions[queryCacheKey]?.[requestId]\r\n return [false, hasSubscription]\r\n }\r\n\r\n // Update subscription data based on this action\r\n const didMutate = actuallyMutateSubscriptions(\r\n internalState.currentSubscriptions,\r\n action\r\n )\r\n\r\n if (didMutate) {\r\n if (!dispatchQueued) {\r\n queueMicrotaskShim(() => {\r\n // Deep clone the current subscription data\r\n const newSubscriptions: SubscriptionState = JSON.parse(\r\n JSON.stringify(internalState.currentSubscriptions)\r\n )\r\n // Figure out a smaller diff between original and current\r\n const [, patches] = produceWithPatches(\r\n previousSubscriptions,\r\n () => newSubscriptions\r\n )\r\n\r\n // Sync the store state for visibility\r\n mwApi.next(api.internalActions.subscriptionsUpdated(patches))\r\n // Save the cloned state for later reference\r\n previousSubscriptions = newSubscriptions\r\n dispatchQueued = false\r\n })\r\n dispatchQueued = true\r\n }\r\n\r\n const isSubscriptionSliceAction =\r\n !!action.type?.startsWith(subscriptionsPrefix)\r\n const isAdditionalSubscriptionAction =\r\n queryThunk.rejected.match(action) &&\r\n action.meta.condition &&\r\n !!action.meta.arg.subscribe\r\n\r\n const actionShouldContinue =\r\n !isSubscriptionSliceAction && !isAdditionalSubscriptionAction\r\n\r\n return [actionShouldContinue, false]\r\n }\r\n\r\n return [true, false]\r\n }\r\n}\r\n","import { isAnyOf, isFulfilled, isRejectedWithValue } from '@reduxjs/toolkit'\r\n\r\nimport type { FullTagDescription } from '../../endpointDefinitions'\r\nimport { calculateProvidedBy } from '../../endpointDefinitions'\r\nimport type { QueryCacheKey } from '../apiState'\r\nimport { QueryStatus } from '../apiState'\r\nimport { calculateProvidedByThunk } from '../buildThunks'\r\nimport type {\r\n SubMiddlewareApi,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n} from './types'\r\n\r\nexport const buildInvalidationByTagsHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n context,\r\n context: { endpointDefinitions },\r\n mutationThunk,\r\n api,\r\n assertTagType,\r\n refetchQuery,\r\n}) => {\r\n const { removeQueryResult } = api.internalActions\r\n const isThunkActionWithTags = isAnyOf(\r\n isFulfilled(mutationThunk),\r\n isRejectedWithValue(mutationThunk)\r\n )\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (isThunkActionWithTags(action)) {\r\n invalidateTags(\r\n calculateProvidedByThunk(\r\n action,\r\n 'invalidatesTags',\r\n endpointDefinitions,\r\n assertTagType\r\n ),\r\n mwApi\r\n )\r\n }\r\n\r\n if (api.util.invalidateTags.match(action)) {\r\n invalidateTags(\r\n calculateProvidedBy(\r\n action.payload,\r\n undefined,\r\n undefined,\r\n undefined,\r\n undefined,\r\n assertTagType\r\n ),\r\n mwApi\r\n )\r\n }\r\n }\r\n\r\n function invalidateTags(\r\n tags: readonly FullTagDescription<string>[],\r\n mwApi: SubMiddlewareApi\r\n ) {\r\n const rootState = mwApi.getState()\r\n const state = rootState[reducerPath]\r\n\r\n const toInvalidate = api.util.selectInvalidatedBy(rootState, tags)\r\n\r\n context.batch(() => {\r\n const valuesArray = Array.from(toInvalidate.values())\r\n for (const { queryCacheKey } of valuesArray) {\r\n const querySubState = state.queries[queryCacheKey]\r\n const subscriptionSubState = state.subscriptions[queryCacheKey] ?? {}\r\n\r\n if (querySubState) {\r\n if (Object.keys(subscriptionSubState).length === 0) {\r\n mwApi.dispatch(\r\n removeQueryResult({\r\n queryCacheKey: queryCacheKey as QueryCacheKey,\r\n })\r\n )\r\n } else if (querySubState.status !== QueryStatus.uninitialized) {\r\n mwApi.dispatch(refetchQuery(querySubState, queryCacheKey))\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n return handler\r\n}\r\n","import type { QuerySubstateIdentifier, Subscribers } from '../apiState'\r\nimport { QueryStatus } from '../apiState'\r\nimport type {\r\n QueryStateMeta,\r\n SubMiddlewareApi,\r\n TimeoutId,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n InternalMiddlewareState,\r\n} from './types'\r\n\r\nexport const buildPollingHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n queryThunk,\r\n api,\r\n refetchQuery,\r\n internalState,\r\n}) => {\r\n const currentPolls: QueryStateMeta<{\r\n nextPollTimestamp: number\r\n timeout?: TimeoutId\r\n pollingInterval: number\r\n }> = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (\r\n api.internalActions.updateSubscriptionOptions.match(action) ||\r\n api.internalActions.unsubscribeQueryResult.match(action)\r\n ) {\r\n updatePollingInterval(action.payload, mwApi)\r\n }\r\n\r\n if (\r\n queryThunk.pending.match(action) ||\r\n (queryThunk.rejected.match(action) && action.meta.condition)\r\n ) {\r\n updatePollingInterval(action.meta.arg, mwApi)\r\n }\r\n\r\n if (\r\n queryThunk.fulfilled.match(action) ||\r\n (queryThunk.rejected.match(action) && !action.meta.condition)\r\n ) {\r\n startNextPoll(action.meta.arg, mwApi)\r\n }\r\n\r\n if (api.util.resetApiState.match(action)) {\r\n clearPolls()\r\n }\r\n }\r\n\r\n function startNextPoll(\r\n { queryCacheKey }: QuerySubstateIdentifier,\r\n api: SubMiddlewareApi\r\n ) {\r\n const state = api.getState()[reducerPath]\r\n const querySubState = state.queries[queryCacheKey]\r\n const subscriptions = internalState.currentSubscriptions[queryCacheKey]\r\n\r\n if (!querySubState || querySubState.status === QueryStatus.uninitialized)\r\n return\r\n\r\n const lowestPollingInterval = findLowestPollingInterval(subscriptions)\r\n if (!Number.isFinite(lowestPollingInterval)) return\r\n\r\n const currentPoll = currentPolls[queryCacheKey]\r\n\r\n if (currentPoll?.timeout) {\r\n clearTimeout(currentPoll.timeout)\r\n currentPoll.timeout = undefined\r\n }\r\n\r\n const nextPollTimestamp = Date.now() + lowestPollingInterval\r\n\r\n const currentInterval: typeof currentPolls[number] = (currentPolls[\r\n queryCacheKey\r\n ] = {\r\n nextPollTimestamp,\r\n pollingInterval: lowestPollingInterval,\r\n timeout: setTimeout(() => {\r\n currentInterval!.timeout = undefined\r\n api.dispatch(refetchQuery(querySubState, queryCacheKey))\r\n }, lowestPollingInterval),\r\n })\r\n }\r\n\r\n function updatePollingInterval(\r\n { queryCacheKey }: QuerySubstateIdentifier,\r\n api: SubMiddlewareApi\r\n ) {\r\n const state = api.getState()[reducerPath]\r\n const querySubState = state.queries[queryCacheKey]\r\n const subscriptions = internalState.currentSubscriptions[queryCacheKey]\r\n\r\n if (!querySubState || querySubState.status === QueryStatus.uninitialized) {\r\n return\r\n }\r\n\r\n const lowestPollingInterval = findLowestPollingInterval(subscriptions)\r\n\r\n if (!Number.isFinite(lowestPollingInterval)) {\r\n cleanupPollForKey(queryCacheKey)\r\n return\r\n }\r\n\r\n const currentPoll = currentPolls[queryCacheKey]\r\n const nextPollTimestamp = Date.now() + lowestPollingInterval\r\n\r\n if (!currentPoll || nextPollTimestamp < currentPoll.nextPollTimestamp) {\r\n startNextPoll({ queryCacheKey }, api)\r\n }\r\n }\r\n\r\n function cleanupPollForKey(key: string) {\r\n const existingPoll = currentPolls[key]\r\n if (existingPoll?.timeout) {\r\n clearTimeout(existingPoll.timeout)\r\n }\r\n delete currentPolls[key]\r\n }\r\n\r\n function clearPolls() {\r\n for (const key of Object.keys(currentPolls)) {\r\n cleanupPollForKey(key)\r\n }\r\n }\r\n\r\n function findLowestPollingInterval(subscribers: Subscribers = {}) {\r\n let lowestPollingInterval = Number.POSITIVE_INFINITY\r\n for (let key in subscribers) {\r\n if (!!subscribers[key].pollingInterval) {\r\n lowestPollingInterval = Math.min(\r\n subscribers[key].pollingInterval!,\r\n lowestPollingInterval\r\n )\r\n }\r\n }\r\n\r\n return lowestPollingInterval\r\n }\r\n return handler\r\n}\r\n","import { isAsyncThunkAction, isFulfilled } from '@reduxjs/toolkit'\r\nimport type { AnyAction } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { BaseQueryFn, BaseQueryMeta } from '../../baseQueryTypes'\r\nimport { DefinitionType } from '../../endpointDefinitions'\r\nimport type { RootState } from '../apiState'\r\nimport type {\r\n MutationResultSelectorResult,\r\n QueryResultSelectorResult,\r\n} from '../buildSelectors'\r\nimport { getMutationCacheKey } from '../buildSlice'\r\nimport type { PatchCollection, Recipe } from '../buildThunks'\r\nimport type {\r\n ApiMiddlewareInternalHandler,\r\n InternalHandlerBuilder,\r\n PromiseWithKnownReason,\r\n SubMiddlewareApi,\r\n} from './types'\r\n\r\nexport type ReferenceCacheLifecycle = never\r\n\r\ndeclare module '../../endpointDefinitions' {\r\n export interface QueryBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends LifecycleApi<ReducerPath> {\r\n /**\r\n * Gets the current value of this cache entry.\r\n */\r\n getCacheEntry(): QueryResultSelectorResult<\r\n { type: DefinitionType.query } & BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType\r\n >\r\n >\r\n /**\r\n * Updates the current cache entry value.\r\n * For documentation see `api.util.updateQueryData`.\r\n */\r\n updateCachedData(updateRecipe: Recipe<ResultType>): PatchCollection\r\n }\r\n\r\n export interface MutationBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends LifecycleApi<ReducerPath> {\r\n /**\r\n * Gets the current value of this cache entry.\r\n */\r\n getCacheEntry(): MutationResultSelectorResult<\r\n { type: DefinitionType.mutation } & BaseEndpointDefinition<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType\r\n >\r\n >\r\n }\r\n\r\n export interface LifecycleApi<ReducerPath extends string = string> {\r\n /**\r\n * The dispatch method for the store\r\n */\r\n dispatch: ThunkDispatch<any, any, AnyAction>\r\n /**\r\n * A method to get the current state\r\n */\r\n getState(): RootState<any, any, ReducerPath>\r\n /**\r\n * `extra` as provided as `thunk.extraArgument` to the `configureStore` `getDefaultMiddleware` option.\r\n */\r\n extra: unknown\r\n /**\r\n * A unique ID generated for the mutation\r\n */\r\n requestId: string\r\n }\r\n\r\n export interface CacheLifecyclePromises<\r\n ResultType = unknown,\r\n MetaType = unknown\r\n > {\r\n /**\r\n * Promise that will resolve with the first value for this cache key.\r\n * This allows you to `await` until an actual value is in cache.\r\n *\r\n * If the cache entry is removed from the cache before any value has ever\r\n * been resolved, this Promise will reject with\r\n * `new Error('Promise never resolved before cacheEntryRemoved.')`\r\n * to prevent memory leaks.\r\n * You can just re-throw that error (or not handle it at all) -\r\n * it will be caught outside of `cacheEntryAdded`.\r\n *\r\n * If you don't interact with this promise, it will not throw.\r\n */\r\n cacheDataLoaded: PromiseWithKnownReason<\r\n {\r\n /**\r\n * The (transformed) query result.\r\n */\r\n data: ResultType\r\n /**\r\n * The `meta` returned by the `baseQuery`\r\n */\r\n meta: MetaType\r\n },\r\n typeof neverResolvedError\r\n >\r\n /**\r\n * Promise that allows you to wait for the point in time when the cache entry\r\n * has been removed from the cache, by not being used/subscribed to any more\r\n * in the application for too long or by dispatching `api.util.resetApiState`.\r\n */\r\n cacheEntryRemoved: Promise<void>\r\n }\r\n\r\n export interface QueryCacheLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>,\r\n CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\r\n\r\n export interface MutationCacheLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends MutationBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n CacheLifecyclePromises<ResultType, BaseQueryMeta<BaseQuery>> {}\r\n\r\n interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n onCacheEntryAdded?(\r\n arg: QueryArg,\r\n api: QueryCacheLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>\r\n ): Promise<void> | void\r\n }\r\n\r\n interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n onCacheEntryAdded?(\r\n arg: QueryArg,\r\n api: MutationCacheLifecycleApi<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType,\r\n ReducerPath\r\n >\r\n ): Promise<void> | void\r\n }\r\n}\r\n\r\nconst neverResolvedError = new Error(\r\n 'Promise never resolved before cacheEntryRemoved.'\r\n) as Error & {\r\n message: 'Promise never resolved before cacheEntryRemoved.'\r\n}\r\n\r\nexport const buildCacheLifecycleHandler: InternalHandlerBuilder = ({\r\n api,\r\n reducerPath,\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n internalState,\r\n}) => {\r\n const isQueryThunk = isAsyncThunkAction(queryThunk)\r\n const isMutationThunk = isAsyncThunkAction(mutationThunk)\r\n const isFulfilledThunk = isFulfilled(queryThunk, mutationThunk)\r\n\r\n type CacheLifecycle = {\r\n valueResolved?(value: { data: unknown; meta: unknown }): unknown\r\n cacheEntryRemoved(): void\r\n }\r\n const lifecycleMap: Record<string, CacheLifecycle> = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (\r\n action,\r\n mwApi,\r\n stateBefore\r\n ) => {\r\n const cacheKey = getCacheKey(action)\r\n\r\n if (queryThunk.pending.match(action)) {\r\n const oldState = stateBefore[reducerPath].queries[cacheKey]\r\n const state = mwApi.getState()[reducerPath].queries[cacheKey]\r\n if (!oldState && state) {\r\n handleNewKey(\r\n action.meta.arg.endpointName,\r\n action.meta.arg.originalArgs,\r\n cacheKey,\r\n mwApi,\r\n action.meta.requestId\r\n )\r\n }\r\n } else if (mutationThunk.pending.match(action)) {\r\n const state = mwApi.getState()[reducerPath].mutations[cacheKey]\r\n if (state) {\r\n handleNewKey(\r\n action.meta.arg.endpointName,\r\n action.meta.arg.originalArgs,\r\n cacheKey,\r\n mwApi,\r\n action.meta.requestId\r\n )\r\n }\r\n } else if (isFulfilledThunk(action)) {\r\n const lifecycle = lifecycleMap[cacheKey]\r\n if (lifecycle?.valueResolved) {\r\n lifecycle.valueResolved({\r\n data: action.payload,\r\n meta: action.meta.baseQueryMeta,\r\n })\r\n delete lifecycle.valueResolved\r\n }\r\n } else if (\r\n api.internalActions.removeQueryResult.match(action) ||\r\n api.internalActions.removeMutationResult.match(action)\r\n ) {\r\n const lifecycle = lifecycleMap[cacheKey]\r\n if (lifecycle) {\r\n delete lifecycleMap[cacheKey]\r\n lifecycle.cacheEntryRemoved()\r\n }\r\n } else if (api.util.resetApiState.match(action)) {\r\n for (const [cacheKey, lifecycle] of Object.entries(lifecycleMap)) {\r\n delete lifecycleMap[cacheKey]\r\n lifecycle.cacheEntryRemoved()\r\n }\r\n }\r\n }\r\n\r\n function getCacheKey(action: any) {\r\n if (isQueryThunk(action)) return action.meta.arg.queryCacheKey\r\n if (isMutationThunk(action)) return action.meta.requestId\r\n if (api.internalActions.removeQueryResult.match(action))\r\n return action.payload.queryCacheKey\r\n if (api.internalActions.removeMutationResult.match(action))\r\n return getMutationCacheKey(action.payload)\r\n return ''\r\n }\r\n\r\n function handleNewKey(\r\n endpointName: string,\r\n originalArgs: any,\r\n queryCacheKey: string,\r\n mwApi: SubMiddlewareApi,\r\n requestId: string\r\n ) {\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n const onCacheEntryAdded = endpointDefinition?.onCacheEntryAdded\r\n if (!onCacheEntryAdded) return\r\n\r\n let lifecycle = {} as CacheLifecycle\r\n\r\n const cacheEntryRemoved = new Promise<void>((resolve) => {\r\n lifecycle.cacheEntryRemoved = resolve\r\n })\r\n const cacheDataLoaded: PromiseWithKnownReason<\r\n { data: unknown; meta: unknown },\r\n typeof neverResolvedError\r\n > = Promise.race([\r\n new Promise<{ data: unknown; meta: unknown }>((resolve) => {\r\n lifecycle.valueResolved = resolve\r\n }),\r\n cacheEntryRemoved.then(() => {\r\n throw neverResolvedError\r\n }),\r\n ])\r\n // prevent uncaught promise rejections from happening.\r\n // if the original promise is used in any way, that will create a new promise that will throw again\r\n cacheDataLoaded.catch(() => {})\r\n lifecycleMap[queryCacheKey] = lifecycle\r\n const selector = (api.endpoints[endpointName] as any).select(\r\n endpointDefinition.type === DefinitionType.query\r\n ? originalArgs\r\n : queryCacheKey\r\n )\r\n\r\n const extra = mwApi.dispatch((_, __, extra) => extra)\r\n const lifecycleApi = {\r\n ...mwApi,\r\n getCacheEntry: () => selector(mwApi.getState()),\r\n requestId,\r\n extra,\r\n updateCachedData: (endpointDefinition.type === DefinitionType.query\r\n ? (updateRecipe: Recipe<any>) =>\r\n mwApi.dispatch(\r\n api.util.updateQueryData(\r\n endpointName as never,\r\n originalArgs,\r\n updateRecipe\r\n )\r\n )\r\n : undefined) as any,\r\n\r\n cacheDataLoaded,\r\n cacheEntryRemoved,\r\n }\r\n\r\n const runningHandler = onCacheEntryAdded(originalArgs, lifecycleApi)\r\n // if a `neverResolvedError` was thrown, but not handled in the running handler, do not let it leak out further\r\n Promise.resolve(runningHandler).catch((e) => {\r\n if (e === neverResolvedError) return\r\n throw e\r\n })\r\n }\r\n\r\n return handler\r\n}\r\n","import { isPending, isRejected, isFulfilled } from '@reduxjs/toolkit'\r\nimport type {\r\n BaseQueryError,\r\n BaseQueryFn,\r\n BaseQueryMeta,\r\n} from '../../baseQueryTypes'\r\nimport { DefinitionType } from '../../endpointDefinitions'\r\nimport type { QueryFulfilledRejectionReason } from '../../endpointDefinitions'\r\nimport type { Recipe } from '../buildThunks'\r\nimport type {\r\n PromiseWithKnownReason,\r\n PromiseConstructorWithKnownReason,\r\n InternalHandlerBuilder,\r\n ApiMiddlewareInternalHandler,\r\n} from './types'\r\n\r\nexport type ReferenceQueryLifecycle = never\r\n\r\ndeclare module '../../endpointDefinitions' {\r\n export interface QueryLifecyclePromises<\r\n ResultType,\r\n BaseQuery extends BaseQueryFn\r\n > {\r\n /**\r\n * Promise that will resolve with the (transformed) query result.\r\n *\r\n * If the query fails, this promise will reject with the error.\r\n *\r\n * This allows you to `await` for the query to finish.\r\n *\r\n * If you don't interact with this promise, it will not throw.\r\n */\r\n queryFulfilled: PromiseWithKnownReason<\r\n {\r\n /**\r\n * The (transformed) query result.\r\n */\r\n data: ResultType\r\n /**\r\n * The `meta` returned by the `baseQuery`\r\n */\r\n meta: BaseQueryMeta<BaseQuery>\r\n },\r\n QueryFulfilledRejectionReason<BaseQuery>\r\n >\r\n }\r\n\r\n type QueryFulfilledRejectionReason<BaseQuery extends BaseQueryFn> =\r\n | {\r\n error: BaseQueryError<BaseQuery>\r\n /**\r\n * If this is `false`, that means this error was returned from the `baseQuery` or `queryFn` in a controlled manner.\r\n */\r\n isUnhandledError: false\r\n /**\r\n * The `meta` returned by the `baseQuery`\r\n */\r\n meta: BaseQueryMeta<BaseQuery>\r\n }\r\n | {\r\n error: unknown\r\n meta?: undefined\r\n /**\r\n * If this is `true`, that means that this error is the result of `baseQueryFn`, `queryFn`, `transformResponse` or `transformErrorResponse` throwing an error instead of handling it properly.\r\n * There can not be made any assumption about the shape of `error`.\r\n */\r\n isUnhandledError: true\r\n }\r\n\r\n interface QueryExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n /**\r\n * A function that is called when the individual query is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\r\n *\r\n * Can be used to perform side-effects throughout the lifecycle of the query.\r\n *\r\n * @example\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n * import { messageCreated } from './notificationsSlice\r\n * export interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({\r\n * baseUrl: '/',\r\n * }),\r\n * endpoints: (build) => ({\r\n * getPost: build.query<Post, number>({\r\n * query: (id) => `post/${id}`,\r\n * async onQueryStarted(id, { dispatch, queryFulfilled }) {\r\n * // `onStart` side-effect\r\n * dispatch(messageCreated('Fetching posts...'))\r\n * try {\r\n * const { data } = await queryFulfilled\r\n * // `onSuccess` side-effect\r\n * dispatch(messageCreated('Posts received!'))\r\n * } catch (err) {\r\n * // `onError` side-effect\r\n * dispatch(messageCreated('Error fetching posts!'))\r\n * }\r\n * }\r\n * }),\r\n * }),\r\n * })\r\n * ```\r\n */\r\n onQueryStarted?(\r\n arg: QueryArg,\r\n api: QueryLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>\r\n ): Promise<void> | void\r\n }\r\n\r\n interface MutationExtraOptions<\r\n TagTypes extends string,\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ReducerPath extends string = string\r\n > {\r\n /**\r\n * A function that is called when the individual mutation is started. The function is called with a lifecycle api object containing properties such as `queryFulfilled`, allowing code to be run when a query is started, when it succeeds, and when it fails (i.e. throughout the lifecycle of an individual query/mutation call).\r\n *\r\n * Can be used for `optimistic updates`.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'\r\n * export interface Post {\r\n * id: number\r\n * name: string\r\n * }\r\n *\r\n * const api = createApi({\r\n * baseQuery: fetchBaseQuery({\r\n * baseUrl: '/',\r\n * }),\r\n * tagTypes: ['Post'],\r\n * endpoints: (build) => ({\r\n * getPost: build.query<Post, number>({\r\n * query: (id) => `post/${id}`,\r\n * providesTags: ['Post'],\r\n * }),\r\n * updatePost: build.mutation<void, Pick<Post, 'id'> & Partial<Post>>({\r\n * query: ({ id, ...patch }) => ({\r\n * url: `post/${id}`,\r\n * method: 'PATCH',\r\n * body: patch,\r\n * }),\r\n * invalidatesTags: ['Post'],\r\n * async onQueryStarted({ id, ...patch }, { dispatch, queryFulfilled }) {\r\n * const patchResult = dispatch(\r\n * api.util.updateQueryData('getPost', id, (draft) => {\r\n * Object.assign(draft, patch)\r\n * })\r\n * )\r\n * try {\r\n * await queryFulfilled\r\n * } catch {\r\n * patchResult.undo()\r\n * }\r\n * },\r\n * }),\r\n * }),\r\n * })\r\n * ```\r\n */\r\n onQueryStarted?(\r\n arg: QueryArg,\r\n api: MutationLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>\r\n ): Promise<void> | void\r\n }\r\n\r\n export interface QueryLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends QueryBaseLifecycleApi<QueryArg, BaseQuery, ResultType, ReducerPath>,\r\n QueryLifecyclePromises<ResultType, BaseQuery> {}\r\n\r\n export interface MutationLifecycleApi<\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n ResultType,\r\n ReducerPath extends string = string\r\n > extends MutationBaseLifecycleApi<\r\n QueryArg,\r\n BaseQuery,\r\n ResultType,\r\n ReducerPath\r\n >,\r\n QueryLifecyclePromises<ResultType, BaseQuery> {}\r\n}\r\n\r\nexport const buildQueryLifecycleHandler: InternalHandlerBuilder = ({\r\n api,\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n}) => {\r\n const isPendingThunk = isPending(queryThunk, mutationThunk)\r\n const isRejectedThunk = isRejected(queryThunk, mutationThunk)\r\n const isFullfilledThunk = isFulfilled(queryThunk, mutationThunk)\r\n\r\n type CacheLifecycle = {\r\n resolve(value: { data: unknown; meta: unknown }): unknown\r\n reject(value: QueryFulfilledRejectionReason<any>): unknown\r\n }\r\n const lifecycleMap: Record<string, CacheLifecycle> = {}\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (isPendingThunk(action)) {\r\n const {\r\n requestId,\r\n arg: { endpointName, originalArgs },\r\n } = action.meta\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n const onQueryStarted = endpointDefinition?.onQueryStarted\r\n if (onQueryStarted) {\r\n const lifecycle = {} as CacheLifecycle\r\n const queryFulfilled =\r\n new (Promise as PromiseConstructorWithKnownReason)<\r\n { data: unknown; meta: unknown },\r\n QueryFulfilledRejectionReason<any>\r\n >((resolve, reject) => {\r\n lifecycle.resolve = resolve\r\n lifecycle.reject = reject\r\n })\r\n // prevent uncaught promise rejections from happening.\r\n // if the original promise is used in any way, that will create a new promise that will throw again\r\n queryFulfilled.catch(() => {})\r\n lifecycleMap[requestId] = lifecycle\r\n const selector = (api.endpoints[endpointName] as any).select(\r\n endpointDefinition.type === DefinitionType.query\r\n ? originalArgs\r\n : requestId\r\n )\r\n\r\n const extra = mwApi.dispatch((_, __, extra) => extra)\r\n const lifecycleApi = {\r\n ...mwApi,\r\n getCacheEntry: () => selector(mwApi.getState()),\r\n requestId,\r\n extra,\r\n updateCachedData: (endpointDefinition.type === DefinitionType.query\r\n ? (updateRecipe: Recipe<any>) =>\r\n mwApi.dispatch(\r\n api.util.updateQueryData(\r\n endpointName as never,\r\n originalArgs,\r\n updateRecipe\r\n )\r\n )\r\n : undefined) as any,\r\n queryFulfilled,\r\n }\r\n onQueryStarted(originalArgs, lifecycleApi)\r\n }\r\n } else if (isFullfilledThunk(action)) {\r\n const { requestId, baseQueryMeta } = action.meta\r\n lifecycleMap[requestId]?.resolve({\r\n data: action.payload,\r\n meta: baseQueryMeta,\r\n })\r\n delete lifecycleMap[requestId]\r\n } else if (isRejectedThunk(action)) {\r\n const { requestId, rejectedWithValue, baseQueryMeta } = action.meta\r\n lifecycleMap[requestId]?.reject({\r\n error: action.payload ?? action.error,\r\n isUnhandledError: !rejectedWithValue,\r\n meta: baseQueryMeta as any,\r\n })\r\n delete lifecycleMap[requestId]\r\n }\r\n }\r\n\r\n return handler\r\n}\r\n","import type { InternalHandlerBuilder } from './types'\r\n\r\nexport const buildDevCheckHandler: InternalHandlerBuilder = ({\r\n api,\r\n context: { apiUid },\r\n reducerPath,\r\n}) => {\r\n return (action, mwApi) => {\r\n if (api.util.resetApiState.match(action)) {\r\n // dispatch after api reset\r\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid))\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (\r\n api.internalActions.middlewareRegistered.match(action) &&\r\n action.payload === apiUid &&\r\n mwApi.getState()[reducerPath]?.config?.middlewareRegistered ===\r\n 'conflict'\r\n ) {\r\n console.warn(`There is a mismatch between slice and middleware for the reducerPath \"${reducerPath}\".\r\nYou can only have one api per reducer path, this will lead to crashes in various situations!${\r\n reducerPath === 'api'\r\n ? `\r\nIf you have multiple apis, you *have* to specify the reducerPath option when using createApi!`\r\n : ''\r\n }`)\r\n }\r\n }\r\n }\r\n}\r\n","import type { AnyAction, Middleware, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport { createAction } from '@reduxjs/toolkit'\r\n\r\nimport type {\r\n EndpointDefinitions,\r\n FullTagDescription,\r\n} from '../../endpointDefinitions'\r\nimport type { QueryStatus, QuerySubState, RootState } from '../apiState'\r\nimport type { QueryThunkArg } from '../buildThunks'\r\nimport { buildCacheCollectionHandler } from './cacheCollection'\r\nimport { buildInvalidationByTagsHandler } from './invalidationByTags'\r\nimport { buildPollingHandler } from './polling'\r\nimport type {\r\n BuildMiddlewareInput,\r\n InternalHandlerBuilder,\r\n InternalMiddlewareState,\r\n} from './types'\r\nimport { buildWindowEventHandler } from './windowEventHandling'\r\nimport { buildCacheLifecycleHandler } from './cacheLifecycle'\r\nimport { buildQueryLifecycleHandler } from './queryLifecycle'\r\nimport { buildDevCheckHandler } from './devMiddleware'\r\nimport { buildBatchedActionsHandler } from './batchActions'\r\n\r\nexport function buildMiddleware<\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string,\r\n TagTypes extends string\r\n>(input: BuildMiddlewareInput<Definitions, ReducerPath, TagTypes>) {\r\n const { reducerPath, queryThunk, api, context } = input\r\n const { apiUid } = context\r\n\r\n const actions = {\r\n invalidateTags: createAction<\r\n Array<TagTypes | FullTagDescription<TagTypes>>\r\n >(`${reducerPath}/invalidateTags`),\r\n }\r\n\r\n const isThisApiSliceAction = (action: AnyAction) => {\r\n return (\r\n !!action &&\r\n typeof action.type === 'string' &&\r\n action.type.startsWith(`${reducerPath}/`)\r\n )\r\n }\r\n\r\n const handlerBuilders: InternalHandlerBuilder[] = [\r\n buildDevCheckHandler,\r\n buildCacheCollectionHandler,\r\n buildInvalidationByTagsHandler,\r\n buildPollingHandler,\r\n buildCacheLifecycleHandler,\r\n buildQueryLifecycleHandler,\r\n ]\r\n\r\n const middleware: Middleware<\r\n {},\r\n RootState<Definitions, string, ReducerPath>,\r\n ThunkDispatch<any, any, AnyAction>\r\n > = (mwApi) => {\r\n let initialized = false\r\n\r\n let internalState: InternalMiddlewareState = {\r\n currentSubscriptions: {},\r\n }\r\n\r\n const builderArgs = {\r\n ...(input as any as BuildMiddlewareInput<\r\n EndpointDefinitions,\r\n string,\r\n string\r\n >),\r\n internalState,\r\n refetchQuery,\r\n }\r\n\r\n const handlers = handlerBuilders.map((build) => build(builderArgs))\r\n\r\n const batchedActionsHandler = buildBatchedActionsHandler(builderArgs)\r\n const windowEventsHandler = buildWindowEventHandler(builderArgs)\r\n\r\n return (next) => {\r\n return (action) => {\r\n if (!initialized) {\r\n initialized = true\r\n // dispatch before any other action\r\n mwApi.dispatch(api.internalActions.middlewareRegistered(apiUid))\r\n }\r\n\r\n const mwApiWithNext = { ...mwApi, next }\r\n\r\n const stateBefore = mwApi.getState()\r\n\r\n const [actionShouldContinue, hasSubscription] = batchedActionsHandler(\r\n action,\r\n mwApiWithNext,\r\n stateBefore\r\n )\r\n\r\n let res: any\r\n\r\n if (actionShouldContinue) {\r\n res = next(action)\r\n } else {\r\n res = hasSubscription\r\n }\r\n\r\n if (!!mwApi.getState()[reducerPath]) {\r\n // Only run these checks if the middleware is registered okay\r\n\r\n // This looks for actions that aren't specific to the API slice\r\n windowEventsHandler(action, mwApiWithNext, stateBefore)\r\n\r\n if (\r\n isThisApiSliceAction(action) ||\r\n context.hasRehydrationInfo(action)\r\n ) {\r\n // Only run these additional checks if the actions are part of the API slice,\r\n // or the action has hydration-related data\r\n for (let handler of handlers) {\r\n handler(action, mwApiWithNext, stateBefore)\r\n }\r\n }\r\n }\r\n\r\n return res\r\n }\r\n }\r\n }\r\n\r\n return { middleware, actions }\r\n\r\n function refetchQuery(\r\n querySubState: Exclude<\r\n QuerySubState<any>,\r\n { status: QueryStatus.uninitialized }\r\n >,\r\n queryCacheKey: string,\r\n override: Partial<QueryThunkArg> = {}\r\n ) {\r\n return queryThunk({\r\n type: 'query',\r\n endpointName: querySubState.endpointName,\r\n originalArgs: querySubState.originalArgs,\r\n subscribe: false,\r\n forceRefetch: true,\r\n queryCacheKey: queryCacheKey as any,\r\n ...override,\r\n })\r\n }\r\n}\r\n","import { QueryStatus } from '../apiState'\r\nimport type { QueryCacheKey } from '../apiState'\r\nimport { onFocus, onOnline } from '../setupListeners'\r\nimport type {\r\n ApiMiddlewareInternalHandler,\r\n InternalHandlerBuilder,\r\n SubMiddlewareApi,\r\n} from './types'\r\n\r\nexport const buildWindowEventHandler: InternalHandlerBuilder = ({\r\n reducerPath,\r\n context,\r\n api,\r\n refetchQuery,\r\n internalState,\r\n}) => {\r\n const { removeQueryResult } = api.internalActions\r\n\r\n const handler: ApiMiddlewareInternalHandler = (action, mwApi) => {\r\n if (onFocus.match(action)) {\r\n refetchValidQueries(mwApi, 'refetchOnFocus')\r\n }\r\n if (onOnline.match(action)) {\r\n refetchValidQueries(mwApi, 'refetchOnReconnect')\r\n }\r\n }\r\n\r\n function refetchValidQueries(\r\n api: SubMiddlewareApi,\r\n type: 'refetchOnFocus' | 'refetchOnReconnect'\r\n ) {\r\n const state = api.getState()[reducerPath]\r\n const queries = state.queries\r\n const subscriptions = internalState.currentSubscriptions\r\n\r\n context.batch(() => {\r\n for (const queryCacheKey of Object.keys(subscriptions)) {\r\n const querySubState = queries[queryCacheKey]\r\n const subscriptionSubState = subscriptions[queryCacheKey]\r\n\r\n if (!subscriptionSubState || !querySubState) continue\r\n\r\n const shouldRefetch =\r\n Object.values(subscriptionSubState).some(\r\n (sub) => sub[type] === true\r\n ) ||\r\n (Object.values(subscriptionSubState).every(\r\n (sub) => sub[type] === undefined\r\n ) &&\r\n state.config[type])\r\n\r\n if (shouldRefetch) {\r\n if (Object.keys(subscriptionSubState).length === 0) {\r\n api.dispatch(\r\n removeQueryResult({\r\n queryCacheKey: queryCacheKey as QueryCacheKey,\r\n })\r\n )\r\n } else if (querySubState.status !== QueryStatus.uninitialized) {\r\n api.dispatch(refetchQuery(querySubState, queryCacheKey))\r\n }\r\n }\r\n }\r\n })\r\n }\r\n\r\n return handler\r\n}\r\n","export type Id<T> = { [K in keyof T]: T[K] } & {}\r\nexport type WithRequiredProp<T, K extends keyof T> = Omit<T, K> &\r\n Required<Pick<T, K>>\r\nexport type Override<T1, T2> = T2 extends any ? Omit<T1, keyof T2> & T2 : never\r\nexport function assertCast<T>(v: any): asserts v is T {}\r\n\r\nexport function safeAssign<T extends object>(\r\n target: T,\r\n ...args: Array<Partial<NoInfer<T>>>\r\n) {\r\n Object.assign(target, ...args)\r\n}\r\n\r\n/**\r\n * Convert a Union type `(A|B)` to an intersection type `(A&B)`\r\n */\r\nexport type UnionToIntersection<U> = (\r\n U extends any ? (k: U) => void : never\r\n) extends (k: infer I) => void\r\n ? I\r\n : never\r\n\r\nexport type NonOptionalKeys<T> = {\r\n [K in keyof T]-?: undefined extends T[K] ? never : K\r\n}[keyof T]\r\n\r\nexport type HasRequiredProps<T, True, False> = NonOptionalKeys<T> extends never\r\n ? False\r\n : True\r\n\r\nexport type OptionalIfAllPropsOptional<T> = HasRequiredProps<T, T, T | never>\r\n\r\nexport type NoInfer<T> = [T][T extends any ? 0 : never]\r\n\r\nexport type NonUndefined<T> = T extends undefined ? never : T\r\n\r\nexport type UnwrapPromise<T> = T extends PromiseLike<infer V> ? V : T\r\n\r\nexport type MaybePromise<T> = T | PromiseLike<T>\r\n\r\nexport type OmitFromUnion<T, K extends keyof T> = T extends any\r\n ? Omit<T, K>\r\n : never\r\n\r\nexport type IsAny<T, True, False = never> = true | false extends (\r\n T extends never ? true : false\r\n)\r\n ? True\r\n : False\r\n\r\nexport type CastAny<T, CastTo> = IsAny<T, CastTo, T>\r\n","/**\r\n * Note: this file should import all other files for type discovery and declaration merging\r\n */\r\nimport type {\r\n PatchQueryDataThunk,\r\n UpdateQueryDataThunk,\r\n UpsertQueryDataThunk,\r\n} from './buildThunks'\r\nimport { buildThunks } from './buildThunks'\r\nimport type {\r\n ActionCreatorWithPayload,\r\n AnyAction,\r\n Middleware,\r\n Reducer,\r\n ThunkAction,\r\n ThunkDispatch,\r\n} from '@reduxjs/toolkit'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryArgFrom,\r\n QueryDefinition,\r\n MutationDefinition,\r\n AssertTagTypes,\r\n TagDescription,\r\n} from '../endpointDefinitions'\r\nimport { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions'\r\nimport type {\r\n CombinedState,\r\n QueryKeys,\r\n MutationKeys,\r\n RootState,\r\n} from './apiState'\r\nimport type { Api, Module } from '../apiTypes'\r\nimport { onFocus, onFocusLost, onOnline, onOffline } from './setupListeners'\r\nimport { buildSlice } from './buildSlice'\r\nimport { buildMiddleware } from './buildMiddleware'\r\nimport { buildSelectors } from './buildSelectors'\r\nimport type {\r\n MutationActionCreatorResult,\r\n QueryActionCreatorResult,\r\n} from './buildInitiate'\r\nimport { buildInitiate } from './buildInitiate'\r\nimport { assertCast, safeAssign } from '../tsHelpers'\r\nimport type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\nimport type { SliceActions } from './buildSlice'\r\nimport type { BaseQueryFn } from '../baseQueryTypes'\r\n\r\nimport type { ReferenceCacheLifecycle } from './buildMiddleware/cacheLifecycle'\r\nimport type { ReferenceQueryLifecycle } from './buildMiddleware/queryLifecycle'\r\nimport type { ReferenceCacheCollection } from './buildMiddleware/cacheCollection'\r\nimport { enablePatches } from 'immer'\r\n\r\n/**\r\n * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_\r\n * - If specified, it will only run the query if the difference between `new Date()` and the last `fulfilledTimeStamp` is greater than the given value\r\n *\r\n * @overloadSummary\r\n * `force`\r\n * - If `force: true`, it will ignore the `ifOlderThan` value if it is set and the query will be run even if it exists in the cache.\r\n */\r\nexport type PrefetchOptions =\r\n | {\r\n ifOlderThan?: false | number\r\n }\r\n | { force?: boolean }\r\n\r\nexport const coreModuleName = /* @__PURE__ */ Symbol()\r\nexport type CoreModule =\r\n | typeof coreModuleName\r\n | ReferenceCacheLifecycle\r\n | ReferenceQueryLifecycle\r\n | ReferenceCacheCollection\r\n\r\nexport interface ThunkWithReturnValue<T> extends ThunkAction<T, any, any, AnyAction> {}\r\n\r\ndeclare module '../apiTypes' {\r\n export interface ApiModules<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n ReducerPath extends string,\r\n TagTypes extends string\r\n > {\r\n [coreModuleName]: {\r\n /**\r\n * This api's reducer should be mounted at `store[api.reducerPath]`.\r\n *\r\n * @example\r\n * ```ts\r\n * configureStore({\r\n * reducer: {\r\n * [api.reducerPath]: api.reducer,\r\n * },\r\n * middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\r\n * })\r\n * ```\r\n */\r\n reducerPath: ReducerPath\r\n /**\r\n * Internal actions not part of the public API. Note: These are subject to change at any given time.\r\n */\r\n internalActions: InternalActions\r\n /**\r\n * A standard redux reducer that enables core functionality. Make sure it's included in your store.\r\n *\r\n * @example\r\n * ```ts\r\n * configureStore({\r\n * reducer: {\r\n * [api.reducerPath]: api.reducer,\r\n * },\r\n * middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\r\n * })\r\n * ```\r\n */\r\n reducer: Reducer<\r\n CombinedState<Definitions, TagTypes, ReducerPath>,\r\n AnyAction\r\n >\r\n /**\r\n * This is a standard redux middleware and is responsible for things like polling, garbage collection and a handful of other things. Make sure it's included in your store.\r\n *\r\n * @example\r\n * ```ts\r\n * configureStore({\r\n * reducer: {\r\n * [api.reducerPath]: api.reducer,\r\n * },\r\n * middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(api.middleware),\r\n * })\r\n * ```\r\n */\r\n middleware: Middleware<\r\n {},\r\n RootState<Definitions, string, ReducerPath>,\r\n ThunkDispatch<any, any, AnyAction>\r\n >\r\n /**\r\n * A collection of utility thunks for various situations.\r\n */\r\n util: {\r\n /**\r\n * This method had to be removed due to a conceptual bug in RTK.\r\n *\r\n * Despite TypeScript errors, it will continue working in the \"buggy\" way it did\r\n * before in production builds and will be removed in the next major release.\r\n *\r\n * Nonetheless, you should immediately replace it with the new recommended approach.\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for new guidance on SSR.\r\n *\r\n * Please see https://github.com/reduxjs/redux-toolkit/pull/2481 for details.\r\n * @deprecated\r\n */\r\n getRunningOperationPromises: never // this is now types as `never` to immediately throw TS errors on use, but still allow for a comment\r\n\r\n /**\r\n * This method had to be removed due to a conceptual bug in RTK.\r\n * It has been replaced by `api.util.getRunningQueryThunk` and `api.util.getRunningMutationThunk`.\r\n * Please see https://github.com/reduxjs/redux-toolkit/pull/2481 for details.\r\n * @deprecated\r\n */\r\n getRunningOperationPromise: never // this is now types as `never` to immediately throw TS errors on use, but still allow for a comment\r\n\r\n /**\r\n * A thunk that (if dispatched) will return a specific running query, identified\r\n * by `endpointName` and `args`.\r\n * If that query is not running, dispatching the thunk will result in `undefined`.\r\n *\r\n * Can be used to await a specific query triggered in any way,\r\n * including via hook calls or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningQueryThunk<EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n args: QueryArgFrom<Definitions[EndpointName]>\r\n ): ThunkWithReturnValue<\r\n | QueryActionCreatorResult<\r\n Definitions[EndpointName] & { type: 'query' }\r\n >\r\n | undefined\r\n >\r\n\r\n /**\r\n * A thunk that (if dispatched) will return a specific running mutation, identified\r\n * by `endpointName` and `fixedCacheKey` or `requestId`.\r\n * If that mutation is not running, dispatching the thunk will result in `undefined`.\r\n *\r\n * Can be used to await a specific mutation triggered in any way,\r\n * including via hook trigger functions or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningMutationThunk<EndpointName extends MutationKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n fixedCacheKeyOrRequestId: string\r\n ): ThunkWithReturnValue<\r\n | MutationActionCreatorResult<\r\n Definitions[EndpointName] & { type: 'mutation' }\r\n >\r\n | undefined\r\n >\r\n\r\n /**\r\n * A thunk that (if dispatched) will return all running queries.\r\n *\r\n * Useful for SSR scenarios to await all running queries triggered in any way,\r\n * including via hook calls or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningQueriesThunk(): ThunkWithReturnValue<\r\n Array<QueryActionCreatorResult<any>>\r\n >\r\n\r\n /**\r\n * A thunk that (if dispatched) will return all running mutations.\r\n *\r\n * Useful for SSR scenarios to await all running mutations triggered in any way,\r\n * including via hook calls or manually dispatching `initiate` actions.\r\n *\r\n * See https://redux-toolkit.js.org/rtk-query/usage/server-side-rendering for details.\r\n */\r\n getRunningMutationsThunk(): ThunkWithReturnValue<\r\n Array<MutationActionCreatorResult<any>>\r\n >\r\n\r\n /**\r\n * A Redux thunk that can be used to manually trigger pre-fetching of data.\r\n *\r\n * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a set of options used to determine if the data actually should be re-fetched based on cache staleness.\r\n *\r\n * React Hooks users will most likely never need to use this directly, as the `usePrefetch` hook will dispatch this thunk internally as needed when you call the prefetching function supplied by the hook.\r\n *\r\n * @example\r\n *\r\n * ```ts no-transpile\r\n * dispatch(api.util.prefetch('getPosts', undefined, { force: true }))\r\n * ```\r\n */\r\n prefetch<EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n arg: QueryArgFrom<Definitions[EndpointName]>,\r\n options: PrefetchOptions\r\n ): ThunkAction<void, any, any, AnyAction>\r\n /**\r\n * A Redux thunk action creator that, when dispatched, creates and applies a set of JSON diff/patch objects to the current state. This immediately updates the Redux state with those changes.\r\n *\r\n * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and an `updateRecipe` callback function. The callback receives an Immer-wrapped `draft` of the current state, and may modify the draft to match the expected results after the mutation completes successfully.\r\n *\r\n * The thunk executes _synchronously_, and returns an object containing `{patches: Patch[], inversePatches: Patch[], undo: () => void}`. The `patches` and `inversePatches` are generated using Immer's [`produceWithPatches` method](https://immerjs.github.io/immer/patches).\r\n *\r\n * This is typically used as the first step in implementing optimistic updates. The generated `inversePatches` can be used to revert the updates by calling `dispatch(patchQueryData(endpointName, args, inversePatches))`. Alternatively, the `undo` method can be called directly to achieve the same effect.\r\n *\r\n * Note that the first two arguments (`endpointName` and `args`) are used to determine which existing cache entry to update. If no existing cache entry is found, the `updateRecipe` callback will not run.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * const patchCollection = dispatch(\r\n * api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\r\n * draftPosts.push({ id: 1, name: 'Teddy' })\r\n * })\r\n * )\r\n * ```\r\n */\r\n updateQueryData: UpdateQueryDataThunk<\r\n Definitions,\r\n RootState<Definitions, string, ReducerPath>\r\n >\r\n /** @deprecated renamed to `updateQueryData` */\r\n updateQueryResult: UpdateQueryDataThunk<\r\n Definitions,\r\n RootState<Definitions, string, ReducerPath>\r\n >\r\n /**\r\n * A Redux thunk action creator that, when dispatched, acts as an artificial API request to upsert a value into the cache.\r\n *\r\n * The thunk action creator accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and the data to upsert.\r\n *\r\n * If no cache entry for that cache key exists, a cache entry will be created and the data added. If a cache entry already exists, this will _overwrite_ the existing cache entry data.\r\n *\r\n * The thunk executes _asynchronously_, and returns a promise that resolves when the store has been updated.\r\n *\r\n * If dispatched while an actual request is in progress, both the upsert and request will be handled as soon as they resolve, resulting in a \"last result wins\" update behavior.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * await dispatch(\r\n * api.util.upsertQueryData('getPost', {id: 1}, {id: 1, text: \"Hello!\"})\r\n * )\r\n * ```\r\n */\r\n upsertQueryData: UpsertQueryDataThunk<\r\n Definitions,\r\n RootState<Definitions, string, ReducerPath>\r\n >\r\n /**\r\n * A Redux thunk that applies a JSON diff/patch array to the cached data for a given query result. This immediately updates the Redux state with those changes.\r\n *\r\n * The thunk accepts three arguments: the name of the endpoint we are updating (such as `'getPost'`), the appropriate query arg values to construct the desired cache key, and a JSON diff/patch array as produced by Immer's `produceWithPatches`.\r\n *\r\n * This is typically used as the second step in implementing optimistic updates. If a request fails, the optimistically-applied changes can be reverted by dispatching `patchQueryData` with the `inversePatches` that were generated by `updateQueryData` earlier.\r\n *\r\n * In cases where it is desired to simply revert the previous changes, it may be preferable to call the `undo` method returned from dispatching `updateQueryData` instead.\r\n *\r\n * @example\r\n * ```ts\r\n * const patchCollection = dispatch(\r\n * api.util.updateQueryData('getPosts', undefined, (draftPosts) => {\r\n * draftPosts.push({ id: 1, name: 'Teddy' })\r\n * })\r\n * )\r\n *\r\n * // later\r\n * dispatch(\r\n * api.util.patchQueryData('getPosts', undefined, patchCollection.inversePatches)\r\n * )\r\n *\r\n * // or\r\n * patchCollection.undo()\r\n * ```\r\n */\r\n patchQueryData: PatchQueryDataThunk<\r\n Definitions,\r\n RootState<Definitions, string, ReducerPath>\r\n >\r\n /** @deprecated renamed to `patchQueryData` */\r\n patchQueryResult: PatchQueryDataThunk<\r\n Definitions,\r\n RootState<Definitions, string, ReducerPath>\r\n >\r\n /**\r\n * A Redux action creator that can be dispatched to manually reset the api state completely. This will immediately remove all existing cache entries, and all queries will be considered 'uninitialized'.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * dispatch(api.util.resetApiState())\r\n * ```\r\n */\r\n resetApiState: SliceActions['resetApiState']\r\n /**\r\n * A Redux action creator that can be used to manually invalidate cache tags for [automated re-fetching](../../usage/automated-refetching.mdx).\r\n *\r\n * The action creator accepts one argument: the cache tags to be invalidated. It returns an action with those tags as a payload, and the corresponding `invalidateTags` action type for the api.\r\n *\r\n * Dispatching the result of this action creator will [invalidate](../../usage/automated-refetching.mdx#invalidating-cache-data) the given tags, causing queries to automatically re-fetch if they are subscribed to cache data that [provides](../../usage/automated-refetching.mdx#providing-cache-data) the corresponding tags.\r\n *\r\n * The array of tags provided to the action creator should be in one of the following formats, where `TagType` is equal to a string provided to the [`tagTypes`](../createApi.mdx#tagtypes) property of the api:\r\n *\r\n * - `[TagType]`\r\n * - `[{ type: TagType }]`\r\n * - `[{ type: TagType, id: number | string }]`\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * dispatch(api.util.invalidateTags(['Post']))\r\n * dispatch(api.util.invalidateTags([{ type: 'Post', id: 1 }]))\r\n * dispatch(\r\n * api.util.invalidateTags([\r\n * { type: 'Post', id: 1 },\r\n * { type: 'Post', id: 'LIST' },\r\n * ])\r\n * )\r\n * ```\r\n */\r\n invalidateTags: ActionCreatorWithPayload<\r\n Array<TagDescription<TagTypes>>,\r\n string\r\n >\r\n\r\n /**\r\n * A function to select all `{ endpointName, originalArgs, queryCacheKey }` combinations that would be invalidated by a specific set of tags.\r\n *\r\n * Can be used for mutations that want to do optimistic updates instead of invalidating a set of tags, but don't know exactly what they need to update.\r\n */\r\n selectInvalidatedBy: (\r\n state: RootState<Definitions, string, ReducerPath>,\r\n tags: ReadonlyArray<TagDescription<TagTypes>>\r\n ) => Array<{\r\n endpointName: string\r\n originalArgs: any\r\n queryCacheKey: string\r\n }>\r\n }\r\n /**\r\n * Endpoints based on the input endpoints provided to `createApi`, containing `select` and `action matchers`.\r\n */\r\n endpoints: {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n any,\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? ApiEndpointQuery<Definitions[K], Definitions>\r\n : Definitions[K] extends MutationDefinition<any, any, any, any, any>\r\n ? ApiEndpointMutation<Definitions[K], Definitions>\r\n : never\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport interface ApiEndpointQuery<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definition extends QueryDefinition<any, any, any, any, any>,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n> {\r\n name: string\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types: NonNullable<Definition['Types']>\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport interface ApiEndpointMutation<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definition extends MutationDefinition<any, any, any, any, any>,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Definitions extends EndpointDefinitions\r\n> {\r\n name: string\r\n /**\r\n * All of these are `undefined` at runtime, purely to be used in TypeScript declarations!\r\n */\r\n Types: NonNullable<Definition['Types']>\r\n}\r\n\r\nexport type ListenerActions = {\r\n /**\r\n * Will cause the RTK Query middleware to trigger any refetchOnReconnect-related behavior\r\n * @link https://rtk-query-docs.netlify.app/api/setupListeners\r\n */\r\n onOnline: typeof onOnline\r\n onOffline: typeof onOffline\r\n /**\r\n * Will cause the RTK Query middleware to trigger any refetchOnFocus-related behavior\r\n * @link https://rtk-query-docs.netlify.app/api/setupListeners\r\n */\r\n onFocus: typeof onFocus\r\n onFocusLost: typeof onFocusLost\r\n}\r\n\r\nexport type InternalActions = SliceActions & ListenerActions\r\n\r\n/**\r\n * Creates a module containing the basic redux logic for use with `buildCreateApi`.\r\n *\r\n * @example\r\n * ```ts\r\n * const createBaseApi = buildCreateApi(coreModule());\r\n * ```\r\n */\r\nexport const coreModule = (): Module<CoreModule> => ({\r\n name: coreModuleName,\r\n init(\r\n api,\r\n {\r\n baseQuery,\r\n tagTypes,\r\n reducerPath,\r\n serializeQueryArgs,\r\n keepUnusedDataFor,\r\n refetchOnMountOrArgChange,\r\n refetchOnFocus,\r\n refetchOnReconnect,\r\n },\r\n context\r\n ) {\r\n enablePatches()\r\n\r\n assertCast<InternalSerializeQueryArgs>(serializeQueryArgs)\r\n\r\n const assertTagType: AssertTagTypes = (tag) => {\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (!tagTypes.includes(tag.type as any)) {\r\n console.error(\r\n `Tag type '${tag.type}' was used, but not specified in \\`tagTypes\\`!`\r\n )\r\n }\r\n }\r\n return tag\r\n }\r\n\r\n Object.assign(api, {\r\n reducerPath,\r\n endpoints: {},\r\n internalActions: {\r\n onOnline,\r\n onOffline,\r\n onFocus,\r\n onFocusLost,\r\n },\r\n util: {},\r\n })\r\n\r\n const {\r\n queryThunk,\r\n mutationThunk,\r\n patchQueryData,\r\n updateQueryData,\r\n upsertQueryData,\r\n prefetch,\r\n buildMatchThunkActions,\r\n } = buildThunks({\r\n baseQuery,\r\n reducerPath,\r\n context,\r\n api,\r\n serializeQueryArgs,\r\n assertTagType,\r\n })\r\n\r\n const { reducer, actions: sliceActions } = buildSlice({\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n reducerPath,\r\n assertTagType,\r\n config: {\r\n refetchOnFocus,\r\n refetchOnReconnect,\r\n refetchOnMountOrArgChange,\r\n keepUnusedDataFor,\r\n reducerPath,\r\n },\r\n })\r\n\r\n safeAssign(api.util, {\r\n patchQueryData,\r\n updateQueryData,\r\n upsertQueryData,\r\n prefetch,\r\n resetApiState: sliceActions.resetApiState,\r\n })\r\n safeAssign(api.internalActions, sliceActions)\r\n\r\n const { middleware, actions: middlewareActions } = buildMiddleware({\r\n reducerPath,\r\n context,\r\n queryThunk,\r\n mutationThunk,\r\n api,\r\n assertTagType,\r\n })\r\n safeAssign(api.util, middlewareActions)\r\n\r\n safeAssign(api, { reducer: reducer as any, middleware })\r\n\r\n const { buildQuerySelector, buildMutationSelector, selectInvalidatedBy } =\r\n buildSelectors({\r\n serializeQueryArgs: serializeQueryArgs as any,\r\n reducerPath,\r\n })\r\n\r\n safeAssign(api.util, { selectInvalidatedBy })\r\n\r\n const {\r\n buildInitiateQuery,\r\n buildInitiateMutation,\r\n getRunningMutationThunk,\r\n getRunningMutationsThunk,\r\n getRunningQueriesThunk,\r\n getRunningQueryThunk,\r\n getRunningOperationPromises,\r\n removalWarning,\r\n } = buildInitiate({\r\n queryThunk,\r\n mutationThunk,\r\n api,\r\n serializeQueryArgs: serializeQueryArgs as any,\r\n context,\r\n })\r\n\r\n safeAssign(api.util, {\r\n getRunningOperationPromises: getRunningOperationPromises as any,\r\n getRunningOperationPromise: removalWarning as any,\r\n getRunningMutationThunk,\r\n getRunningMutationsThunk,\r\n getRunningQueryThunk,\r\n getRunningQueriesThunk,\r\n })\r\n\r\n return {\r\n name: coreModuleName,\r\n injectEndpoint(endpointName, definition) {\r\n const anyApi = api as any as Api<\r\n any,\r\n Record<string, any>,\r\n string,\r\n string,\r\n CoreModule\r\n >\r\n anyApi.endpoints[endpointName] ??= {} as any\r\n if (isQueryDefinition(definition)) {\r\n safeAssign(\r\n anyApi.endpoints[endpointName],\r\n {\r\n name: endpointName,\r\n select: buildQuerySelector(endpointName, definition),\r\n initiate: buildInitiateQuery(endpointName, definition),\r\n },\r\n buildMatchThunkActions(queryThunk, endpointName)\r\n )\r\n } else if (isMutationDefinition(definition)) {\r\n safeAssign(\r\n anyApi.endpoints[endpointName],\r\n {\r\n name: endpointName,\r\n select: buildMutationSelector(),\r\n initiate: buildInitiateMutation(endpointName),\r\n },\r\n buildMatchThunkActions(mutationThunk, endpointName)\r\n )\r\n }\r\n },\r\n }\r\n },\r\n})\r\n","import { buildCreateApi, CreateApi } from '../createApi'\r\nimport { coreModule, coreModuleName } from './module'\r\n\r\nconst createApi = /* @__PURE__ */ buildCreateApi(coreModule())\r\n\r\nexport { createApi, coreModule, coreModuleName }\r\n","import { useEffect, useRef, useMemo } from 'react'\r\nimport type { SerializeQueryArgs } from '@reduxjs/toolkit/query'\r\nimport type { EndpointDefinition } from '@reduxjs/toolkit/query'\r\n\r\nexport function useStableQueryArgs<T>(\r\n queryArgs: T,\r\n serialize: SerializeQueryArgs<any>,\r\n endpointDefinition: EndpointDefinition<any, any, any, any>,\r\n endpointName: string\r\n) {\r\n const incoming = useMemo(\r\n () => ({\r\n queryArgs,\r\n serialized:\r\n typeof queryArgs == 'object'\r\n ? serialize({ queryArgs, endpointDefinition, endpointName })\r\n : queryArgs,\r\n }),\r\n [queryArgs, serialize, endpointDefinition, endpointName]\r\n )\r\n const cache = useRef(incoming)\r\n useEffect(() => {\r\n if (cache.current.serialized !== incoming.serialized) {\r\n cache.current = incoming\r\n }\r\n }, [incoming])\r\n\r\n return cache.current.serialized === incoming.serialized\r\n ? cache.current.queryArgs\r\n : queryArgs\r\n}\r\n","export const UNINITIALIZED_VALUE = Symbol()\r\nexport type UninitializedValue = typeof UNINITIALIZED_VALUE\r\n","import { useEffect, useRef } from 'react'\r\nimport { shallowEqual } from 'react-redux'\r\n\r\nexport function useShallowStableValue<T>(value: T) {\r\n const cache = useRef(value)\r\n useEffect(() => {\r\n if (!shallowEqual(cache.current, value)) {\r\n cache.current = value\r\n }\r\n }, [value])\r\n\r\n return shallowEqual(cache.current, value) ? cache.current : value\r\n}\r\n","import type { AnyAction, ThunkAction, ThunkDispatch } from '@reduxjs/toolkit'\r\nimport { createSelector } from '@reduxjs/toolkit'\r\nimport type { Selector } from '@reduxjs/toolkit'\r\nimport type { DependencyList } from 'react'\r\nimport {\r\n useCallback,\r\n useDebugValue,\r\n useEffect,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { QueryStatus, skipToken } from '@reduxjs/toolkit/query'\r\nimport type {\r\n QuerySubState,\r\n SubscriptionOptions,\r\n QueryKeys,\r\n RootState,\r\n} from '@reduxjs/toolkit/query'\r\nimport type {\r\n EndpointDefinitions,\r\n MutationDefinition,\r\n QueryDefinition,\r\n QueryArgFrom,\r\n ResultTypeFrom,\r\n} from '@reduxjs/toolkit/query'\r\nimport type {\r\n QueryResultSelectorResult,\r\n MutationResultSelectorResult,\r\n SkipToken,\r\n} from '@reduxjs/toolkit/query'\r\nimport type {\r\n QueryActionCreatorResult,\r\n MutationActionCreatorResult,\r\n} from '@reduxjs/toolkit/query'\r\nimport type { SerializeQueryArgs } from '@reduxjs/toolkit/query'\r\nimport { shallowEqual } from 'react-redux'\r\nimport type { Api, ApiContext } from '@reduxjs/toolkit/query'\r\nimport type {\r\n TSHelpersId,\r\n TSHelpersNoInfer,\r\n TSHelpersOverride,\r\n} from '@reduxjs/toolkit/query'\r\nimport type {\r\n ApiEndpointMutation,\r\n ApiEndpointQuery,\r\n CoreModule,\r\n PrefetchOptions,\r\n} from '@reduxjs/toolkit/query'\r\nimport type { ReactHooksModuleOptions } from './module'\r\nimport { useStableQueryArgs } from './useSerializedStableValue'\r\nimport type { UninitializedValue } from './constants'\r\nimport { UNINITIALIZED_VALUE } from './constants'\r\nimport { useShallowStableValue } from './useShallowStableValue'\r\nimport type { BaseQueryFn } from '../baseQueryTypes'\r\nimport { defaultSerializeQueryArgs } from '../defaultSerializeQueryArgs'\r\n\r\n// Copy-pasted from React-Redux\r\nexport const useIsomorphicLayoutEffect =\r\n typeof window !== 'undefined' &&\r\n !!window.document &&\r\n !!window.document.createElement\r\n ? useLayoutEffect\r\n : useEffect\r\n\r\nexport interface QueryHooks<\r\n Definition extends QueryDefinition<any, any, any, any, any>\r\n> {\r\n useQuery: UseQuery<Definition>\r\n useLazyQuery: UseLazyQuery<Definition>\r\n useQuerySubscription: UseQuerySubscription<Definition>\r\n useLazyQuerySubscription: UseLazyQuerySubscription<Definition>\r\n useQueryState: UseQueryState<Definition>\r\n}\r\n\r\nexport interface MutationHooks<\r\n Definition extends MutationDefinition<any, any, any, any, any>\r\n> {\r\n useMutation: UseMutation<Definition>\r\n}\r\n\r\n/**\r\n * A React hook that automatically triggers fetches of data from an endpoint, 'subscribes' the component to the cached data, and reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\r\n *\r\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already, and the hook will return the data for that query arg once it's available.\r\n *\r\n * This hook combines the functionality of both [`useQueryState`](#usequerystate) and [`useQuerySubscription`](#usequerysubscription) together, and is intended to be used in the majority of situations.\r\n *\r\n * #### Features\r\n *\r\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n */\r\nexport type UseQuery<D extends QueryDefinition<any, any, any, any>> = <\r\n R extends Record<string, any> = UseQueryStateDefaultResult<D>\r\n>(\r\n arg: QueryArgFrom<D> | SkipToken,\r\n options?: UseQuerySubscriptionOptions & UseQueryStateOptions<D, R>\r\n) => UseQueryHookResult<D, R>\r\n\r\nexport type UseQueryHookResult<\r\n D extends QueryDefinition<any, any, any, any>,\r\n R = UseQueryStateDefaultResult<D>\r\n> = UseQueryStateResult<D, R> & UseQuerySubscriptionResult<D>\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useQuery` hook in userland code.\r\n */\r\nexport type TypedUseQueryHookResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n R = UseQueryStateDefaultResult<\r\n QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>\r\n >\r\n> = TypedUseQueryStateResult<ResultType, QueryArg, BaseQuery, R> &\r\n TypedUseQuerySubscriptionResult<ResultType, QueryArg, BaseQuery>\r\n\r\ninterface UseQuerySubscriptionOptions extends SubscriptionOptions {\r\n /**\r\n * Prevents a query from automatically running.\r\n *\r\n * @remarks\r\n * When `skip` is true (or `skipToken` is passed in as `arg`):\r\n *\r\n * - **If the query has cached data:**\r\n * * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\r\n * * The query will have a status of `uninitialized`\r\n * * If `skip: false` is set after the initial load, the cached result will be used\r\n * - **If the query does not have cached data:**\r\n * * The query will have a status of `uninitialized`\r\n * * The query will not exist in the state when viewed with the dev tools\r\n * * The query will not automatically fetch on mount\r\n * * The query will not automatically run when additional components with the same query are added that do run\r\n *\r\n * @example\r\n * ```tsx\r\n * // codeblock-meta no-transpile title=\"Skip example\"\r\n * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\r\n * const { data, error, status } = useGetPokemonByNameQuery(name, {\r\n * skip,\r\n * });\r\n *\r\n * return (\r\n * <div>\r\n * {name} - {status}\r\n * </div>\r\n * );\r\n * };\r\n * ```\r\n */\r\n skip?: boolean\r\n /**\r\n * Defaults to `false`. This setting allows you to control whether if a cached result is already available, RTK Query will only serve a cached result, or if it should `refetch` when set to `true` or if an adequate amount of time has passed since the last successful query result.\r\n * - `false` - Will not cause a query to be performed _unless_ it does not exist yet.\r\n * - `true` - Will always refetch when a new subscriber to a query is added. Behaves the same as calling the `refetch` callback or passing `forceRefetch: true` in the action creator.\r\n * - `number` - **Value is in seconds**. If a number is provided and there is an existing query in the cache, it will compare the current time vs the last fulfilled timestamp, and only refetch if enough time has elapsed.\r\n *\r\n * If you specify this option alongside `skip: true`, this **will not be evaluated** until `skip` is false.\r\n */\r\n refetchOnMountOrArgChange?: boolean | number\r\n}\r\n\r\n/**\r\n * A React hook that automatically triggers fetches of data from an endpoint, and 'subscribes' the component to the cached data.\r\n *\r\n * The query arg is used as a cache key. Changing the query arg will tell the hook to re-fetch the data if it does not exist in the cache already.\r\n *\r\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useQuery`](#usequery) or [`useQueryState`](#usequerystate).\r\n *\r\n * #### Features\r\n *\r\n * - Automatically triggers requests to retrieve data based on the hook argument and whether cached data exists by default\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met\r\n */\r\nexport type UseQuerySubscription<\r\n D extends QueryDefinition<any, any, any, any>\r\n> = (\r\n arg: QueryArgFrom<D> | SkipToken,\r\n options?: UseQuerySubscriptionOptions\r\n) => UseQuerySubscriptionResult<D>\r\n\r\nexport type UseQuerySubscriptionResult<\r\n D extends QueryDefinition<any, any, any, any>\r\n> = Pick<QueryActionCreatorResult<D>, 'refetch'>\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useQuerySubscription` hook in userland code.\r\n */\r\nexport type TypedUseQuerySubscriptionResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn\r\n> = UseQuerySubscriptionResult<\r\n QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>\r\n>\r\n\r\nexport type UseLazyQueryLastPromiseInfo<\r\n D extends QueryDefinition<any, any, any, any>\r\n> = {\r\n lastArg: QueryArgFrom<D>\r\n}\r\n\r\n/**\r\n * A React hook similar to [`useQuery`](#usequery), but with manual control over when the data fetching occurs.\r\n *\r\n * This hook includes the functionality of [`useLazyQuerySubscription`](#uselazyquerysubscription).\r\n *\r\n * #### Features\r\n *\r\n * - Manual control over firing a request to retrieve data\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\r\n *\r\n * #### Note\r\n *\r\n * When the trigger function returned from a LazyQuery is called, it always initiates a new request to the server even if there is cached data. Set `preferCacheValue`(the second argument to the function) as `true` if you want it to immediately return a cached value if one exists.\r\n */\r\nexport type UseLazyQuery<D extends QueryDefinition<any, any, any, any>> = <\r\n R extends Record<string, any> = UseQueryStateDefaultResult<D>\r\n>(\r\n options?: SubscriptionOptions & Omit<UseQueryStateOptions<D, R>, 'skip'>\r\n) => [\r\n LazyQueryTrigger<D>,\r\n UseQueryStateResult<D, R>,\r\n UseLazyQueryLastPromiseInfo<D>\r\n]\r\n\r\nexport type LazyQueryTrigger<D extends QueryDefinition<any, any, any, any>> = {\r\n /**\r\n * Triggers a lazy query.\r\n *\r\n * By default, this will start a new request even if there is already a value in the cache.\r\n * If you want to use the cache value and only start a request if there is no cache value, set the second argument to `true`.\r\n *\r\n * @remarks\r\n * If you need to access the error or success payload immediately after a lazy query, you can chain .unwrap().\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap with async await\"\r\n * try {\r\n * const payload = await getUserById(1).unwrap();\r\n * console.log('fulfilled', payload)\r\n * } catch (error) {\r\n * console.error('rejected', error);\r\n * }\r\n * ```\r\n */\r\n (\r\n arg: QueryArgFrom<D>,\r\n preferCacheValue?: boolean\r\n ): QueryActionCreatorResult<D>\r\n}\r\n\r\n/**\r\n * A React hook similar to [`useQuerySubscription`](#usequerysubscription), but with manual control over when the data fetching occurs.\r\n *\r\n * Note that this hook does not return a request status or cached data. For that use-case, see [`useLazyQuery`](#uselazyquery).\r\n *\r\n * #### Features\r\n *\r\n * - Manual control over firing a request to retrieve data\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Accepts polling/re-fetching options to trigger automatic re-fetches when the corresponding criteria is met and the fetch has been manually called at least once\r\n */\r\nexport type UseLazyQuerySubscription<\r\n D extends QueryDefinition<any, any, any, any>\r\n> = (\r\n options?: SubscriptionOptions\r\n) => readonly [LazyQueryTrigger<D>, QueryArgFrom<D> | UninitializedValue]\r\n\r\nexport type QueryStateSelector<\r\n R extends Record<string, any>,\r\n D extends QueryDefinition<any, any, any, any>\r\n> = (state: UseQueryStateDefaultResult<D>) => R\r\n\r\n/**\r\n * A React hook that reads the request status and cached data from the Redux store. The component will re-render as the loading status changes and the data becomes available.\r\n *\r\n * Note that this hook does not trigger fetching new data. For that use-case, see [`useQuery`](#usequery) or [`useQuerySubscription`](#usequerysubscription).\r\n *\r\n * #### Features\r\n *\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n */\r\nexport type UseQueryState<D extends QueryDefinition<any, any, any, any>> = <\r\n R extends Record<string, any> = UseQueryStateDefaultResult<D>\r\n>(\r\n arg: QueryArgFrom<D> | SkipToken,\r\n options?: UseQueryStateOptions<D, R>\r\n) => UseQueryStateResult<D, R>\r\n\r\nexport type UseQueryStateOptions<\r\n D extends QueryDefinition<any, any, any, any>,\r\n R extends Record<string, any>\r\n> = {\r\n /**\r\n * Prevents a query from automatically running.\r\n *\r\n * @remarks\r\n * When skip is true:\r\n *\r\n * - **If the query has cached data:**\r\n * * The cached data **will not be used** on the initial load, and will ignore updates from any identical query until the `skip` condition is removed\r\n * * The query will have a status of `uninitialized`\r\n * * If `skip: false` is set after skipping the initial load, the cached result will be used\r\n * - **If the query does not have cached data:**\r\n * * The query will have a status of `uninitialized`\r\n * * The query will not exist in the state when viewed with the dev tools\r\n * * The query will not automatically fetch on mount\r\n * * The query will not automatically run when additional components with the same query are added that do run\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Skip example\"\r\n * const Pokemon = ({ name, skip }: { name: string; skip: boolean }) => {\r\n * const { data, error, status } = useGetPokemonByNameQuery(name, {\r\n * skip,\r\n * });\r\n *\r\n * return (\r\n * <div>\r\n * {name} - {status}\r\n * </div>\r\n * );\r\n * };\r\n * ```\r\n */\r\n skip?: boolean\r\n /**\r\n * `selectFromResult` allows you to get a specific segment from a query result in a performant manner.\r\n * When using this feature, the component will not rerender unless the underlying data of the selected item has changed.\r\n * If the selected item is one element in a larger collection, it will disregard changes to elements in the same collection.\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using selectFromResult to extract a single result\"\r\n * function PostsList() {\r\n * const { data: posts } = api.useGetPostsQuery();\r\n *\r\n * return (\r\n * <ul>\r\n * {posts?.data?.map((post) => (\r\n * <PostById key={post.id} id={post.id} />\r\n * ))}\r\n * </ul>\r\n * );\r\n * }\r\n *\r\n * function PostById({ id }: { id: number }) {\r\n * // Will select the post with the given id, and will only rerender if the given posts data changes\r\n * const { post } = api.useGetPostsQuery(undefined, {\r\n * selectFromResult: ({ data }) => ({ post: data?.find((post) => post.id === id) }),\r\n * });\r\n *\r\n * return <li>{post?.name}</li>;\r\n * }\r\n * ```\r\n */\r\n selectFromResult?: QueryStateSelector<R, D>\r\n}\r\n\r\nexport type UseQueryStateResult<\r\n _ extends QueryDefinition<any, any, any, any>,\r\n R\r\n> = TSHelpersNoInfer<R>\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useQueryState` hook in userland code.\r\n */\r\nexport type TypedUseQueryStateResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n R = UseQueryStateDefaultResult<\r\n QueryDefinition<QueryArg, BaseQuery, string, ResultType, string>\r\n >\r\n> = TSHelpersNoInfer<R>\r\n\r\ntype UseQueryStateBaseResult<D extends QueryDefinition<any, any, any, any>> =\r\n QuerySubState<D> & {\r\n /**\r\n * Where `data` tries to hold data as much as possible, also re-using\r\n * data from the last arguments passed into the hook, this property\r\n * will always contain the received data from the query, for the current query arguments.\r\n */\r\n currentData?: ResultTypeFrom<D>\r\n /**\r\n * Query has not started yet.\r\n */\r\n isUninitialized: false\r\n /**\r\n * Query is currently loading for the first time. No data yet.\r\n */\r\n isLoading: false\r\n /**\r\n * Query is currently fetching, but might have data from an earlier request.\r\n */\r\n isFetching: false\r\n /**\r\n * Query has data from a successful load.\r\n */\r\n isSuccess: false\r\n /**\r\n * Query is currently in \"error\" state.\r\n */\r\n isError: false\r\n }\r\n\r\ntype UseQueryStateDefaultResult<D extends QueryDefinition<any, any, any, any>> =\r\n TSHelpersId<\r\n | TSHelpersOverride<\r\n Extract<\r\n UseQueryStateBaseResult<D>,\r\n { status: QueryStatus.uninitialized }\r\n >,\r\n { isUninitialized: true }\r\n >\r\n | TSHelpersOverride<\r\n UseQueryStateBaseResult<D>,\r\n | { isLoading: true; isFetching: boolean; data: undefined }\r\n | ({\r\n isSuccess: true\r\n isFetching: true\r\n error: undefined\r\n } & Required<\r\n Pick<UseQueryStateBaseResult<D>, 'data' | 'fulfilledTimeStamp'>\r\n >)\r\n | ({\r\n isSuccess: true\r\n isFetching: false\r\n error: undefined\r\n } & Required<\r\n Pick<\r\n UseQueryStateBaseResult<D>,\r\n 'data' | 'fulfilledTimeStamp' | 'currentData'\r\n >\r\n >)\r\n | ({ isError: true } & Required<\r\n Pick<UseQueryStateBaseResult<D>, 'error'>\r\n >)\r\n >\r\n > & {\r\n /**\r\n * @deprecated will be removed in the next version\r\n * please use the `isLoading`, `isFetching`, `isSuccess`, `isError`\r\n * and `isUninitialized` flags instead\r\n */\r\n status: QueryStatus\r\n }\r\n\r\nexport type MutationStateSelector<\r\n R extends Record<string, any>,\r\n D extends MutationDefinition<any, any, any, any>\r\n> = (state: MutationResultSelectorResult<D>) => R\r\n\r\nexport type UseMutationStateOptions<\r\n D extends MutationDefinition<any, any, any, any>,\r\n R extends Record<string, any>\r\n> = {\r\n selectFromResult?: MutationStateSelector<R, D>\r\n fixedCacheKey?: string\r\n}\r\n\r\nexport type UseMutationStateResult<\r\n D extends MutationDefinition<any, any, any, any>,\r\n R\r\n> = TSHelpersNoInfer<R> & {\r\n originalArgs?: QueryArgFrom<D>\r\n /**\r\n * Resets the hook state to it's initial `uninitialized` state.\r\n * This will also remove the last result from the cache.\r\n */\r\n reset: () => void\r\n}\r\n\r\n/**\r\n * Helper type to manually type the result\r\n * of the `useMutation` hook in userland code.\r\n */\r\nexport type TypedUseMutationResult<\r\n ResultType,\r\n QueryArg,\r\n BaseQuery extends BaseQueryFn,\r\n R = MutationResultSelectorResult<\r\n MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>\r\n >\r\n> = UseMutationStateResult<\r\n MutationDefinition<QueryArg, BaseQuery, string, ResultType, string>,\r\n R\r\n>\r\n\r\n/**\r\n * A React hook that lets you trigger an update request for a given endpoint, and subscribes the component to read the request status from the Redux store. The component will re-render as the loading status changes.\r\n *\r\n * #### Features\r\n *\r\n * - Manual control over firing a request to alter data on the server or possibly invalidate the cache\r\n * - 'Subscribes' the component to keep cached data in the store, and 'unsubscribes' when the component unmounts\r\n * - Returns the latest request status and cached data from the Redux store\r\n * - Re-renders as the request status changes and data becomes available\r\n */\r\nexport type UseMutation<D extends MutationDefinition<any, any, any, any>> = <\r\n R extends Record<string, any> = MutationResultSelectorResult<D>\r\n>(\r\n options?: UseMutationStateOptions<D, R>\r\n) => readonly [MutationTrigger<D>, UseMutationStateResult<D, R>]\r\n\r\nexport type MutationTrigger<D extends MutationDefinition<any, any, any, any>> =\r\n {\r\n /**\r\n * Triggers the mutation and returns a Promise.\r\n * @remarks\r\n * If you need to access the error or success payload immediately after a mutation, you can chain .unwrap().\r\n *\r\n * @example\r\n * ```ts\r\n * // codeblock-meta title=\"Using .unwrap with async await\"\r\n * try {\r\n * const payload = await addPost({ id: 1, name: 'Example' }).unwrap();\r\n * console.log('fulfilled', payload)\r\n * } catch (error) {\r\n * console.error('rejected', error);\r\n * }\r\n * ```\r\n */\r\n (arg: QueryArgFrom<D>): MutationActionCreatorResult<D>\r\n }\r\n\r\nconst defaultQueryStateSelector: QueryStateSelector<any, any> = (x) => x\r\nconst defaultMutationStateSelector: MutationStateSelector<any, any> = (x) => x\r\n\r\n/**\r\n * Wrapper around `defaultQueryStateSelector` to be used in `useQuery`.\r\n * We want the initial render to already come back with\r\n * `{ isUninitialized: false, isFetching: true, isLoading: true }`\r\n * to prevent that the library user has to do an additional check for `isUninitialized`/\r\n */\r\nconst noPendingQueryStateSelector: QueryStateSelector<any, any> = (\r\n selected\r\n) => {\r\n if (selected.isUninitialized) {\r\n return {\r\n ...selected,\r\n isUninitialized: false,\r\n isFetching: true,\r\n isLoading: selected.data !== undefined ? false : true,\r\n status: QueryStatus.pending,\r\n } as any\r\n }\r\n return selected\r\n}\r\n\r\ntype GenericPrefetchThunk = (\r\n endpointName: any,\r\n arg: any,\r\n options: PrefetchOptions\r\n) => ThunkAction<void, any, any, AnyAction>\r\n\r\n/**\r\n *\r\n * @param opts.api - An API with defined endpoints to create hooks for\r\n * @param opts.moduleOptions.batch - The version of the `batchedUpdates` function to be used\r\n * @param opts.moduleOptions.useDispatch - The version of the `useDispatch` hook to be used\r\n * @param opts.moduleOptions.useSelector - The version of the `useSelector` hook to be used\r\n * @returns An object containing functions to generate hooks based on an endpoint\r\n */\r\nexport function buildHooks<Definitions extends EndpointDefinitions>({\r\n api,\r\n moduleOptions: {\r\n batch,\r\n useDispatch,\r\n useSelector,\r\n useStore,\r\n unstable__sideEffectsInRender,\r\n },\r\n serializeQueryArgs,\r\n context,\r\n}: {\r\n api: Api<any, Definitions, any, any, CoreModule>\r\n moduleOptions: Required<ReactHooksModuleOptions>\r\n serializeQueryArgs: SerializeQueryArgs<any>\r\n context: ApiContext<Definitions>\r\n}) {\r\n const usePossiblyImmediateEffect: (\r\n effect: () => void | undefined,\r\n deps?: DependencyList\r\n ) => void = unstable__sideEffectsInRender ? (cb) => cb() : useEffect\r\n\r\n return { buildQueryHooks, buildMutationHook, usePrefetch }\r\n\r\n function queryStatePreSelector(\r\n currentState: QueryResultSelectorResult<any>,\r\n lastResult: UseQueryStateDefaultResult<any> | undefined,\r\n queryArgs: any\r\n ): UseQueryStateDefaultResult<any> {\r\n // if we had a last result and the current result is uninitialized,\r\n // we might have called `api.util.resetApiState`\r\n // in this case, reset the hook\r\n if (lastResult?.endpointName && currentState.isUninitialized) {\r\n const { endpointName } = lastResult\r\n const endpointDefinition = context.endpointDefinitions[endpointName]\r\n if (\r\n serializeQueryArgs({\r\n queryArgs: lastResult.originalArgs,\r\n endpointDefinition,\r\n endpointName,\r\n }) ===\r\n serializeQueryArgs({\r\n queryArgs,\r\n endpointDefinition,\r\n endpointName,\r\n })\r\n )\r\n lastResult = undefined\r\n }\r\n\r\n // data is the last known good request result we have tracked - or if none has been tracked yet the last good result for the current args\r\n let data = currentState.isSuccess ? currentState.data : lastResult?.data\r\n if (data === undefined) data = currentState.data\r\n\r\n const hasData = data !== undefined\r\n\r\n // isFetching = true any time a request is in flight\r\n const isFetching = currentState.isLoading\r\n // isLoading = true only when loading while no data is present yet (initial load with no data in the cache)\r\n const isLoading = !hasData && isFetching\r\n // isSuccess = true when data is present\r\n const isSuccess = currentState.isSuccess || (isFetching && hasData)\r\n\r\n return {\r\n ...currentState,\r\n data,\r\n currentData: currentState.data,\r\n isFetching,\r\n isLoading,\r\n isSuccess,\r\n } as UseQueryStateDefaultResult<any>\r\n }\r\n\r\n function usePrefetch<EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n defaultOptions?: PrefetchOptions\r\n ) {\r\n const dispatch = useDispatch<ThunkDispatch<any, any, AnyAction>>()\r\n const stableDefaultOptions = useShallowStableValue(defaultOptions)\r\n\r\n return useCallback(\r\n (arg: any, options?: PrefetchOptions) =>\r\n dispatch(\r\n (api.util.prefetch as GenericPrefetchThunk)(endpointName, arg, {\r\n ...stableDefaultOptions,\r\n ...options,\r\n })\r\n ),\r\n [endpointName, dispatch, stableDefaultOptions]\r\n )\r\n }\r\n\r\n function buildQueryHooks(name: string): QueryHooks<any> {\r\n const useQuerySubscription: UseQuerySubscription<any> = (\r\n arg: any,\r\n {\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n refetchOnMountOrArgChange,\r\n skip = false,\r\n pollingInterval = 0,\r\n } = {}\r\n ) => {\r\n const { initiate } = api.endpoints[name] as ApiEndpointQuery<\r\n QueryDefinition<any, any, any, any, any>,\r\n Definitions\r\n >\r\n const dispatch = useDispatch<ThunkDispatch<any, any, AnyAction>>()\r\n const stableArg = useStableQueryArgs(\r\n skip ? skipToken : arg,\r\n // Even if the user provided a per-endpoint `serializeQueryArgs` with\r\n // a consistent return value, _here_ we want to use the default behavior\r\n // so we can tell if _anything_ actually changed. Otherwise, we can end up\r\n // with a case where the query args did change but the serialization doesn't,\r\n // and then we never try to initiate a refetch.\r\n defaultSerializeQueryArgs,\r\n context.endpointDefinitions[name],\r\n name\r\n )\r\n const stableSubscriptionOptions = useShallowStableValue({\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n pollingInterval,\r\n })\r\n\r\n const lastRenderHadSubscription = useRef(false)\r\n\r\n const promiseRef = useRef<QueryActionCreatorResult<any>>()\r\n\r\n let { queryCacheKey, requestId } = promiseRef.current || {}\r\n\r\n // HACK Because the latest state is in the middleware, we actually\r\n // dispatch an action that will be intercepted and returned.\r\n let currentRenderHasSubscription = false\r\n if (queryCacheKey && requestId) {\r\n // This _should_ return a boolean, even if the types don't line up\r\n const returnedValue = dispatch(\r\n api.internalActions.internal_probeSubscription({\r\n queryCacheKey,\r\n requestId,\r\n })\r\n )\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof returnedValue !== 'boolean') {\r\n throw new Error(\r\n `Warning: Middleware for RTK-Query API at reducerPath \"${api.reducerPath}\" has not been added to the store.\r\n You must add the middleware for RTK-Query to function correctly!`\r\n )\r\n }\r\n }\r\n\r\n currentRenderHasSubscription = !!returnedValue\r\n }\r\n\r\n const subscriptionRemoved =\r\n !currentRenderHasSubscription && lastRenderHadSubscription.current\r\n\r\n usePossiblyImmediateEffect(() => {\r\n lastRenderHadSubscription.current = currentRenderHasSubscription\r\n })\r\n\r\n usePossiblyImmediateEffect((): void | undefined => {\r\n if (subscriptionRemoved) {\r\n promiseRef.current = undefined\r\n }\r\n }, [subscriptionRemoved])\r\n\r\n usePossiblyImmediateEffect((): void | undefined => {\r\n const lastPromise = promiseRef.current\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'removeMeOnCompilation'\r\n ) {\r\n // this is only present to enforce the rule of hooks to keep `isSubscribed` in the dependency array\r\n console.log(subscriptionRemoved)\r\n }\r\n\r\n if (stableArg === skipToken) {\r\n lastPromise?.unsubscribe()\r\n promiseRef.current = undefined\r\n return\r\n }\r\n\r\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions\r\n\r\n if (!lastPromise || lastPromise.arg !== stableArg) {\r\n lastPromise?.unsubscribe()\r\n const promise = dispatch(\r\n initiate(stableArg, {\r\n subscriptionOptions: stableSubscriptionOptions,\r\n forceRefetch: refetchOnMountOrArgChange,\r\n })\r\n )\r\n\r\n promiseRef.current = promise\r\n } else if (stableSubscriptionOptions !== lastSubscriptionOptions) {\r\n lastPromise.updateSubscriptionOptions(stableSubscriptionOptions)\r\n }\r\n }, [\r\n dispatch,\r\n initiate,\r\n refetchOnMountOrArgChange,\r\n stableArg,\r\n stableSubscriptionOptions,\r\n subscriptionRemoved,\r\n ])\r\n\r\n useEffect(() => {\r\n return () => {\r\n promiseRef.current?.unsubscribe()\r\n promiseRef.current = undefined\r\n }\r\n }, [])\r\n\r\n return useMemo(\r\n () => ({\r\n /**\r\n * A method to manually refetch data for the query\r\n */\r\n refetch: () => {\r\n if (!promiseRef.current)\r\n throw new Error(\r\n 'Cannot refetch a query that has not been started yet.'\r\n )\r\n return promiseRef.current?.refetch()\r\n },\r\n }),\r\n []\r\n )\r\n }\r\n\r\n const useLazyQuerySubscription: UseLazyQuerySubscription<any> = ({\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n pollingInterval = 0,\r\n } = {}) => {\r\n const { initiate } = api.endpoints[name] as ApiEndpointQuery<\r\n QueryDefinition<any, any, any, any, any>,\r\n Definitions\r\n >\r\n const dispatch = useDispatch<ThunkDispatch<any, any, AnyAction>>()\r\n\r\n const [arg, setArg] = useState<any>(UNINITIALIZED_VALUE)\r\n const promiseRef = useRef<QueryActionCreatorResult<any> | undefined>()\r\n\r\n const stableSubscriptionOptions = useShallowStableValue({\r\n refetchOnReconnect,\r\n refetchOnFocus,\r\n pollingInterval,\r\n })\r\n\r\n usePossiblyImmediateEffect(() => {\r\n const lastSubscriptionOptions = promiseRef.current?.subscriptionOptions\r\n\r\n if (stableSubscriptionOptions !== lastSubscriptionOptions) {\r\n promiseRef.current?.updateSubscriptionOptions(\r\n stableSubscriptionOptions\r\n )\r\n }\r\n }, [stableSubscriptionOptions])\r\n\r\n const subscriptionOptionsRef = useRef(stableSubscriptionOptions)\r\n usePossiblyImmediateEffect(() => {\r\n subscriptionOptionsRef.current = stableSubscriptionOptions\r\n }, [stableSubscriptionOptions])\r\n\r\n const trigger = useCallback(\r\n function (arg: any, preferCacheValue = false) {\r\n let promise: QueryActionCreatorResult<any>\r\n\r\n batch(() => {\r\n promiseRef.current?.unsubscribe()\r\n\r\n promiseRef.current = promise = dispatch(\r\n initiate(arg, {\r\n subscriptionOptions: subscriptionOptionsRef.current,\r\n forceRefetch: !preferCacheValue,\r\n })\r\n )\r\n\r\n setArg(arg)\r\n })\r\n\r\n return promise!\r\n },\r\n [dispatch, initiate]\r\n )\r\n\r\n /* cleanup on unmount */\r\n useEffect(() => {\r\n return () => {\r\n promiseRef?.current?.unsubscribe()\r\n }\r\n }, [])\r\n\r\n /* if \"cleanup on unmount\" was triggered from a fast refresh, we want to reinstate the query */\r\n useEffect(() => {\r\n if (arg !== UNINITIALIZED_VALUE && !promiseRef.current) {\r\n trigger(arg, true)\r\n }\r\n }, [arg, trigger])\r\n\r\n return useMemo(() => [trigger, arg] as const, [trigger, arg])\r\n }\r\n\r\n const useQueryState: UseQueryState<any> = (\r\n arg: any,\r\n { skip = false, selectFromResult } = {}\r\n ) => {\r\n const { select } = api.endpoints[name] as ApiEndpointQuery<\r\n QueryDefinition<any, any, any, any, any>,\r\n Definitions\r\n >\r\n const stableArg = useStableQueryArgs(\r\n skip ? skipToken : arg,\r\n serializeQueryArgs,\r\n context.endpointDefinitions[name],\r\n name\r\n )\r\n\r\n type ApiRootState = Parameters<ReturnType<typeof select>>[0]\r\n\r\n const lastValue = useRef<any>()\r\n\r\n const selectDefaultResult: Selector<ApiRootState, any, [any]> = useMemo(\r\n () =>\r\n createSelector(\r\n [\r\n select(stableArg),\r\n (_: ApiRootState, lastResult: any) => lastResult,\r\n (_: ApiRootState) => stableArg,\r\n ],\r\n queryStatePreSelector\r\n ),\r\n [select, stableArg]\r\n )\r\n\r\n const querySelector: Selector<ApiRootState, any, [any]> = useMemo(\r\n () =>\r\n selectFromResult\r\n ? createSelector([selectDefaultResult], selectFromResult)\r\n : selectDefaultResult,\r\n [selectDefaultResult, selectFromResult]\r\n )\r\n\r\n const currentState = useSelector(\r\n (state: RootState<Definitions, any, any>) =>\r\n querySelector(state, lastValue.current),\r\n shallowEqual\r\n )\r\n\r\n const store = useStore<RootState<Definitions, any, any>>()\r\n const newLastValue = selectDefaultResult(\r\n store.getState(),\r\n lastValue.current\r\n )\r\n useIsomorphicLayoutEffect(() => {\r\n lastValue.current = newLastValue\r\n }, [newLastValue])\r\n\r\n return currentState\r\n }\r\n\r\n return {\r\n useQueryState,\r\n useQuerySubscription,\r\n useLazyQuerySubscription,\r\n useLazyQuery(options) {\r\n const [trigger, arg] = useLazyQuerySubscription(options)\r\n const queryStateResults = useQueryState(arg, {\r\n ...options,\r\n skip: arg === UNINITIALIZED_VALUE,\r\n })\r\n\r\n const info = useMemo(() => ({ lastArg: arg }), [arg])\r\n return useMemo(\r\n () => [trigger, queryStateResults, info],\r\n [trigger, queryStateResults, info]\r\n )\r\n },\r\n useQuery(arg, options) {\r\n const querySubscriptionResults = useQuerySubscription(arg, options)\r\n const queryStateResults = useQueryState(arg, {\r\n selectFromResult:\r\n arg === skipToken || options?.skip\r\n ? undefined\r\n : noPendingQueryStateSelector,\r\n ...options,\r\n })\r\n\r\n const { data, status, isLoading, isSuccess, isError, error } =\r\n queryStateResults\r\n useDebugValue({ data, status, isLoading, isSuccess, isError, error })\r\n\r\n return useMemo(\r\n () => ({ ...queryStateResults, ...querySubscriptionResults }),\r\n [queryStateResults, querySubscriptionResults]\r\n )\r\n },\r\n }\r\n }\r\n\r\n function buildMutationHook(name: string): UseMutation<any> {\r\n return ({\r\n selectFromResult = defaultMutationStateSelector,\r\n fixedCacheKey,\r\n } = {}) => {\r\n const { select, initiate } = api.endpoints[name] as ApiEndpointMutation<\r\n MutationDefinition<any, any, any, any, any>,\r\n Definitions\r\n >\r\n const dispatch = useDispatch<ThunkDispatch<any, any, AnyAction>>()\r\n const [promise, setPromise] = useState<MutationActionCreatorResult<any>>()\r\n\r\n useEffect(\r\n () => () => {\r\n if (!promise?.arg.fixedCacheKey) {\r\n promise?.reset()\r\n }\r\n },\r\n [promise]\r\n )\r\n\r\n const triggerMutation = useCallback(\r\n function (arg: Parameters<typeof initiate>['0']) {\r\n const promise = dispatch(initiate(arg, { fixedCacheKey }))\r\n setPromise(promise)\r\n return promise\r\n },\r\n [dispatch, initiate, fixedCacheKey]\r\n )\r\n\r\n const { requestId } = promise || {}\r\n const mutationSelector = useMemo(\r\n () =>\r\n createSelector(\r\n [select({ fixedCacheKey, requestId: promise?.requestId })],\r\n selectFromResult\r\n ),\r\n [select, promise, selectFromResult, fixedCacheKey]\r\n )\r\n\r\n const currentState = useSelector(mutationSelector, shallowEqual)\r\n const originalArgs =\r\n fixedCacheKey == null ? promise?.arg.originalArgs : undefined\r\n const reset = useCallback(() => {\r\n batch(() => {\r\n if (promise) {\r\n setPromise(undefined)\r\n }\r\n if (fixedCacheKey) {\r\n dispatch(\r\n api.internalActions.removeMutationResult({\r\n requestId,\r\n fixedCacheKey,\r\n })\r\n )\r\n }\r\n })\r\n }, [dispatch, fixedCacheKey, promise, requestId])\r\n\r\n const {\r\n endpointName,\r\n data,\r\n status,\r\n isLoading,\r\n isSuccess,\r\n isError,\r\n error,\r\n } = currentState\r\n useDebugValue({\r\n endpointName,\r\n data,\r\n status,\r\n isLoading,\r\n isSuccess,\r\n isError,\r\n error,\r\n })\r\n\r\n const finalState = useMemo(\r\n () => ({ ...currentState, originalArgs, reset }),\r\n [currentState, originalArgs, reset]\r\n )\r\n\r\n return useMemo(\r\n () => [triggerMutation, finalState] as const,\r\n [triggerMutation, finalState]\r\n )\r\n }\r\n }\r\n}\r\n","export function capitalize(str: string) {\r\n return str.replace(str[0], str[0].toUpperCase())\r\n}\r\n","import type { MutationHooks, QueryHooks } from './buildHooks'\r\nimport { buildHooks } from './buildHooks'\r\nimport { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions'\r\nimport type {\r\n EndpointDefinitions,\r\n QueryDefinition,\r\n MutationDefinition,\r\n QueryArgFrom,\r\n} from '@reduxjs/toolkit/query'\r\nimport type { Api, Module } from '../apiTypes'\r\nimport { capitalize } from '../utils'\r\nimport { safeAssign } from '../tsHelpers'\r\nimport type { BaseQueryFn } from '@reduxjs/toolkit/query'\r\n\r\nimport type { HooksWithUniqueNames } from './namedHooks'\r\n\r\nimport {\r\n useDispatch as rrUseDispatch,\r\n useSelector as rrUseSelector,\r\n useStore as rrUseStore,\r\n batch as rrBatch,\r\n} from 'react-redux'\r\nimport type { QueryKeys } from '../core/apiState'\r\nimport type { PrefetchOptions } from '../core/module'\r\n\r\nexport const reactHooksModuleName = /* @__PURE__ */ Symbol()\r\nexport type ReactHooksModule = typeof reactHooksModuleName\r\n\r\ndeclare module '@reduxjs/toolkit/query' {\r\n export interface ApiModules<\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n BaseQuery extends BaseQueryFn,\r\n Definitions extends EndpointDefinitions,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ReducerPath extends string,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n TagTypes extends string\r\n > {\r\n [reactHooksModuleName]: {\r\n /**\r\n * Endpoints based on the input endpoints provided to `createApi`, containing `select`, `hooks` and `action matchers`.\r\n */\r\n endpoints: {\r\n [K in keyof Definitions]: Definitions[K] extends QueryDefinition<\r\n any,\r\n any,\r\n any,\r\n any,\r\n any\r\n >\r\n ? QueryHooks<Definitions[K]>\r\n : Definitions[K] extends MutationDefinition<any, any, any, any, any>\r\n ? MutationHooks<Definitions[K]>\r\n : never\r\n }\r\n /**\r\n * A hook that accepts a string endpoint name, and provides a callback that when called, pre-fetches the data for that endpoint.\r\n */\r\n usePrefetch<EndpointName extends QueryKeys<Definitions>>(\r\n endpointName: EndpointName,\r\n options?: PrefetchOptions\r\n ): (\r\n arg: QueryArgFrom<Definitions[EndpointName]>,\r\n options?: PrefetchOptions\r\n ) => void\r\n } & HooksWithUniqueNames<Definitions>\r\n }\r\n}\r\n\r\ntype RR = typeof import('react-redux')\r\n\r\nexport interface ReactHooksModuleOptions {\r\n /**\r\n * The version of the `batchedUpdates` function to be used\r\n */\r\n batch?: RR['batch']\r\n /**\r\n * The version of the `useDispatch` hook to be used\r\n */\r\n useDispatch?: RR['useDispatch']\r\n /**\r\n * The version of the `useSelector` hook to be used\r\n */\r\n useSelector?: RR['useSelector']\r\n /**\r\n * The version of the `useStore` hook to be used\r\n */\r\n useStore?: RR['useStore']\r\n /**\r\n * Enables performing asynchronous tasks immediately within a render.\r\n *\r\n * @example\r\n *\r\n * ```ts\r\n * import {\r\n * buildCreateApi,\r\n * coreModule,\r\n * reactHooksModule\r\n * } from '@reduxjs/toolkit/query/react'\r\n *\r\n * const createApi = buildCreateApi(\r\n * coreModule(),\r\n * reactHooksModule({ unstable__sideEffectsInRender: true })\r\n * )\r\n * ```\r\n */\r\n unstable__sideEffectsInRender?: boolean\r\n}\r\n\r\n/**\r\n * Creates a module that generates react hooks from endpoints, for use with `buildCreateApi`.\r\n *\r\n * @example\r\n * ```ts\r\n * const MyContext = React.createContext<ReactReduxContextValue>(null as any);\r\n * const customCreateApi = buildCreateApi(\r\n * coreModule(),\r\n * reactHooksModule({ useDispatch: createDispatchHook(MyContext) })\r\n * );\r\n * ```\r\n *\r\n * @returns A module for use with `buildCreateApi`\r\n */\r\nexport const reactHooksModule = ({\r\n batch = rrBatch,\r\n useDispatch = rrUseDispatch,\r\n useSelector = rrUseSelector,\r\n useStore = rrUseStore,\r\n unstable__sideEffectsInRender = false,\r\n}: ReactHooksModuleOptions = {}): Module<ReactHooksModule> => ({\r\n name: reactHooksModuleName,\r\n init(api, { serializeQueryArgs }, context) {\r\n const anyApi = api as any as Api<\r\n any,\r\n Record<string, any>,\r\n string,\r\n string,\r\n ReactHooksModule\r\n >\r\n const { buildQueryHooks, buildMutationHook, usePrefetch } = buildHooks({\r\n api,\r\n moduleOptions: {\r\n batch,\r\n useDispatch,\r\n useSelector,\r\n useStore,\r\n unstable__sideEffectsInRender,\r\n },\r\n serializeQueryArgs,\r\n context,\r\n })\r\n safeAssign(anyApi, { usePrefetch })\r\n safeAssign(context, { batch })\r\n\r\n return {\r\n injectEndpoint(endpointName, definition) {\r\n if (isQueryDefinition(definition)) {\r\n const {\r\n useQuery,\r\n useLazyQuery,\r\n useLazyQuerySubscription,\r\n useQueryState,\r\n useQuerySubscription,\r\n } = buildQueryHooks(endpointName)\r\n safeAssign(anyApi.endpoints[endpointName], {\r\n useQuery,\r\n useLazyQuery,\r\n useLazyQuerySubscription,\r\n useQueryState,\r\n useQuerySubscription,\r\n })\r\n ;(api as any)[`use${capitalize(endpointName)}Query`] = useQuery\r\n ;(api as any)[`useLazy${capitalize(endpointName)}Query`] =\r\n useLazyQuery\r\n } else if (isMutationDefinition(definition)) {\r\n const useMutation = buildMutationHook(endpointName)\r\n safeAssign(anyApi.endpoints[endpointName], {\r\n useMutation,\r\n })\r\n ;(api as any)[`use${capitalize(endpointName)}Mutation`] = useMutation\r\n }\r\n },\r\n }\r\n },\r\n})\r\n","import { coreModule, buildCreateApi } from '@reduxjs/toolkit/query'\r\nimport { reactHooksModule, reactHooksModuleName } from './module'\r\n\r\nexport * from '@reduxjs/toolkit/query'\r\nexport { ApiProvider } from './ApiProvider'\r\n\r\nconst createApi = /* @__PURE__ */ buildCreateApi(\r\n coreModule(),\r\n reactHooksModule()\r\n)\r\n\r\nexport type {\r\n TypedUseQueryHookResult,\r\n TypedUseQueryStateResult,\r\n TypedUseQuerySubscriptionResult,\r\n TypedUseMutationResult,\r\n} from './buildHooks'\r\nexport { createApi, reactHooksModule, reactHooksModuleName }\r\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Endpoints-Constant\n *@developer Aditya P\n *@desc Define all constant endpoints\n */\n\n// export const BASE_URL = \"https://api.fourthstarstaging.com/api/v1\";\n// export const BASE_URL_CREATOR = \"https://api.fourthstarstaging.com\";\nexport const BASE_URL = process.env.REACT_APP_BASE_API_URL;\nexport const BASE_URL_CREATOR = process.env.REACT_APP_BASE_CREATOR_API_URL;\nexport const EndpointsSlug = {\n LOGIN: \"/user/auth/signin\",\n GOOGLESIGIN: \"/user/auth/google-login\",\n SIGNUP: \"/user/auth/signup\",\n VERIFY_OTP: \"/user/auth/verifyUser\",\n RESEND_OTP: \"/user/auth/resendVerificationEmail\",\n FORGOT_PASSWORD: \"/user/auth/forgotPassword\",\n DELETE_USER_OTP: \"/user/auth/send-delete-otp\",\n DELETE_USER: \"/user/auth/delete-user\",\n VERIFY_FORGOT_OTP: \"/user/auth/verifyForgetPasswordOtp\",\n RESET_PASSWORD: \"/user/auth/reset-password\",\n USERNAME_VALIDATOR: \"/user/auth/usernameValidator\",\n VERIFY_FORGET_PASSWORD_LINK: \"/user/auth/verifyForgetPasswordLink\",\n ADD_USER_INFO: \"/user/profile/updateUsernameWithGenderAndDob\",\n GET_USER_PROFILE: \"/user/profile/getProfile\",\n UPD_USER_INFO: \"/user/profile/editUserProfileData\",\n UPD_USER_PROFILE_PHOTO: \"/user/profile/updateProfilePhoto\",\n REM_USER_PROFILE_PHOTO: \"/user/profile/removeProfilePhoto\",\n UPD_USER_USER_CHANGE_PASSWORD: \"/user/profile/changeUserPassword\",\n GET_USER_PREFERENCE: \"/user/profile/getUserPreference\",\n GET_USER_TAGS: \"/user/profile/getUserTags\",\n GET_USER_SUGGESTED_TAGS: \"/user/profile/getSuggestedTags\",\n UPD_USER_PREFERENCE: \"/user/profile/updateUserPreference\",\n UPD_USER_TAGS: \"/user/profile/updateUserTags\",\n SEARCH_FRIEND: \"user/friend/searchUser\",\n FRIEND_REQUEST_SEND: \"user/friend/sendFriendRequestToUser\",\n ACCEPT_FRIEND_REQUEST: \"user/friend/sendFriendRequestToUser\",\n ACCEPT_FRIEND: \"/user/friend/acceptFriendRequest\",\n REJECT_FRIEND_REQUEST: \"user/friend/rejectFriendRequest\",\n GET_BLOCKED_FRIENDS: \"user/friend/getBlockedFriend\",\n CANCEL_REQUEST_FRIEND: \"/user/friend/cancelRequestedRequest\",\n GET_FRIENDS: \"user/friend/getFriends\",\n GET_PENDING_INVITES: \"user/friend/getPendingRequest\",\n GET_REQUESTED_FRIEND_REQUEST: \"user/friend/getRequestedFriendRequest\",\n REMOVE_FRIEND: \"/user/friend/removeFriend\",\n BLOCK_FRIEND: \"/user/friend/blockFriend\",\n UNBLOCK_FRIEND: \"/user/friend/unBlockFriend\",\n GET_180_VIDEOS: \"/entertainment/get180Videos\",\n GET_SINGLE_180_VIDEO: \"/entertainment/getSingle180Video\",\n GET_360_VIDEOS: \"/entertainment/get360Videos\",\n GET_SINGLE_360_VIDEO: \"/entertainment/getSingle360Video\",\n GET_VOL_VIDEOS: \"/entertainment/getVolumetricVideos\",\n GET_SINGLE_VOL_VIDEO: \"/entertainment/getSingleVolumetricVideo\",\n GET_2D_VIDEOS: \"/entertainment/get2dvideos\",\n GET_SINGLE_2D_VIDEO: \"/entertainment/getSingle2dVideo\",\n GET_MUSIC_VIDEOS: \"/entertainment/getMusicVideos\",\n GET_SINGLE_MUSIC_VIDEO: \"/entertainment/getSingleMusicVideo\",\n GET_ALL_CHANNELLIST: \"/entertainment/getAllChannelList\",\n GET_SINGLE_CHANNEL: \"/entertainment/getSingleChannel\",\n GET_CHANNEL_EMAIL: (channelSlug) =>\n \"/entertainment/get-channel-email/\" + channelSlug,\n GET_MOST_TRENDING_VIDEOS: \"/entertainment/getMostTrendingVideos\",\n GET_PREMIUM_VIDEOS: \"/entertainment/getPremiumVideos\",\n GET_MOST_TRENDING_CONTENT: \"/analytics/get-most-trending-content\",\n GET_PREMIUM_CHANNELS: \"/analytics/premium-channel\",\n GET_RECOMMENDED_CHANNELS: \"/analytics/get-recommended-channel\",\n GET_RECOMMENDED_CONTENT: \"/analytics/get-recommended-content\",\n POST_TRENDING_CHANNELS: \"/analytics/trending-channel\",\n GET_ALL_CAT_DATA: `/api/creator/get-allCategoryDataByChannelID`,\n POST_CHECK_USER_ASSETS_INFO: `/iap/userAssets`,\n POST_CHECK_USER_ADD_FREE_ASSET: `/iap/addToAsset`,\n GET_SINGLE_USER_ASSETS: \"/iap/userAssetsLists\",\n GET_SINGLE_USER_SUBSCRIBED_CHANNEL: \"/subscription/userSubscribedChannels\",\n GET_USER_ALL_NOTIFICATION: \"/user/notification/getAllNotifications\",\n GET_SINGLE_NOTIFICATION: \"/user/notification/getSingleNotification\",\n CREATE_USER_INTERACTION: \"/analytics/create-user-interaction\",\n READ_ALL_NOTIFICATION: \"/user/notification/readAllNotification\",\n FILE_NAME_GENERATE: \"/user/profile/file-name-generate\",\n FILE_USER_UPLOAD: \"/user/profile/user-upload\",\n REPORT_CONTENT: \"/admin/report/create-reported-content\",\n REPORT_CHANNEL: \"/admin/report/create-reported-channel\",\n GET_ALL_CHANNEL_CONTENT: \"/entertainment/allChannelContent\",\n GET_ALL_APARTMENT: \"/apartment/get-apartment-list\",\n GET_SINGLE_APARTMENT: \"/apartment/get-one-apartment\",\n GET_ALL_SHIPS: \"/ship/get-ship-list\",\n GET_CART_ITEMS: \"/user/cart/getUsdCartItems\",\n GET_CART_ITEMS_COUNT: \"/user/cart/getCartItemsCount\",\n GET_STAR_CART_ITEMS: \"/user/cart/getStarCartItems\",\n GET_SINGLE_SHIP: \"/ship/get-one-ship\",\n GET_SINGLE_CLOTHING: \"/clothing/get-one-clothing\",\n GET_SINGLE_AVATAR: \"/avatar/get-one-avatar\",\n GET_SINGLE_COMPANION: \"/companion/get-one-companion\",\n CREATE_CART_ITEMS: \"/user/cart/addToCart\",\n REMOVE_CART_ITEM: \"/user/cart/removeFromCart\",\n GET_EVENT_LIST: \"/events/guest-user-event-list\",\n GET_ONE_EVENT: \"/events/get-one-event\",\n GET_RECC_EVENT: \"/analytics/get-recommended-event\",\n GET_TODAY_EVENT_LIST: \"/events/get-today-event-list\",\n GET_USER_EVENT_LIST: \"/events/get-user-event-list\",\n ADD_PARTICIPANT_TO_EVENT: \"/events/add-participant-event\",\n IAP_ASSET_LIST: \"/iap/userIAPAssetsLists/all\",\n LIST_IAP_ASSETS: \"iap/userIAPAssetsLists\",\n EQUIP_DEFAULT_CLOTHING_AVATAR: \"iap/equip-default-clothing-avatar\",\n WEAR_ALL_ITEMS: \"iap/clothing-avatar-equip-allwear\",\n MARKETPLACE_CLOTHING: \"clothing/get-clothing-list\",\n MARKETPLACE_AVATAR: \"avatar/get-avatar-list\",\n MARKETPLACE_COMPANION: \"companion/get-companion-list\",\n INITIATE_TRANS: \"/payment/transaction/initiateTransaction\",\n INITIATE_EVENT_TRANS: \"/payment/transaction/initiateEventPayment\",\n VERIFY_GATEWAY_TRANSACTION: \"/payment/transaction/verifyTransaction\",\n CREATE_SUBSCRIPTION_MONTHLY: \"/payment/transaction/subscribeChannel\",\n GET_FRIEND_LIST_APARTMENT_ASSET:\n \"/apartment/access/getFriendsWithGrantStatus\",\n INVITE_FRIEND_APARTMENT_ASSET: \"/apartment/access/apartmentGrantsToFriends\",\n REMOVE_FRIEND_APARTMENT_ASSET: \"/apartment/access/removeApartmentGrants\",\n GET_FRIEND_LIST_SHIP_ASSET: \"/ship/access/getFriendsWithShipGrantStatus\",\n INVITE_FRIEND_SHIP_ASSET: \"/ship/access/shipGrantsToFriends\",\n REMOVE_FRIEND_SHIP_ASSET: \"/ship/access/removeShipGrants\",\n GET_CHANNEL_CONTENT_ASSET:\n \"/entertainment/getUserSubscribedChannelWithTopContent\",\n POST_CURRENCY_CONVERSION: \"/guest/currency/usd-fstr-currency-exchange\",\n GET_MY_ORDERS_ASSET: \"/user/order/list\",\n GET_MY_ORDER_DETAIL: \"/user/order/detail\",\n INITIATE_CRYPTO_TRANSACTION: \"/payment/transaction/initiateCryptoTransaction\",\n INITIATE_CRYPTO_SUBSCRIPTION:\n \"/payment/transaction/initiateCryptoSubscription\",\n INITIATE_CRYPTO_EVENT_PURCHASE:\n \"/payment/transaction/initiateCryptoEventPurchase\",\n VERIFY_CRYPTO_TRANSACTION: \"/token/verifyCryptoTransaction\",\n PROCESS_CRYPTO_TRANSACTION: \"/token/processCryptoTransaction\",\n GET_USER_SUBSCRIPTION_LIST: \"/subscription/user/subscriptionList\",\n GET_USER_SUBSCRIPTION_TRANS_DETAILS: \"/subscription/user/transactiondetail\",\n CHECK_USER_SUBSCRIPTION: \"/payment/user/checksubscription\",\n CANCEL_SUBSCRIPTION: \"/subscription/cancelSubscription\",\n // ADD_TICKET_RAISE: \"/user/helpCenter/raiseTicket\", // DEPRECATED AFTER CHAT FUNCTIONALITY UPDATE\n GET_TICKET_LIST: \"/user/helpCenter/get-user-tickets\",\n GET_SINGLE_FEEDBACK: (ticketId) =>\n `${BASE_URL}/user/helpCenter/get-ticket-details?ticketId=${ticketId}`,\n SEND_FEEDBACK: `${BASE_URL}/user/helpCenter/handle-ticket-user`,\n CHANGE_STATUS_FEEDBACK: `${BASE_URL}/user/helpCenter/close-ticket`,\n UPDATE_ACCOUNT_PRIVATE: \"/user/profile/updateIsPrivateStatus\",\n POST_REQUEST_REFUND: \"/payment/withdraw/refund\",\n CHECK_REFUND_STATUS: \"/payment/withdraw/refundStatus\",\n GET_USER_WALLET_LIST: \"/user/profile/web3_wallet/get\",\n ADD_USER_WALLET_ADDRESS: \"/user/profile/web3_wallet/add\",\n REMOVE_USER_WALLET_ADDRESS: \"/user/profile/web3_wallet/remove\",\n GET_CRYPTO_TRANSACTION_QR: \"/token/cryptoTransactionQR\",\n MODIFY_CRYPTO_TRANSACTION: \"/payment/transaction/modifyCryptoTransaction\",\n CANCEL_CRYPTO_TRANSACTION: \"/payment/transaction/cancelCryptoTransaction\",\n};\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","let e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,r=e=>{let r=t(e),l=r.data;return r.data=\"\",l},l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\\s*)/g,a=/\\/\\*[^]*?\\*\\/| +/g,n=/\\n+/g,o=(e,t)=>{let r=\"\",l=\"\",a=\"\";for(let n in e){let c=e[n];\"@\"==n[0]?\"i\"==n[1]?r=n+\" \"+c+\";\":l+=\"f\"==n[1]?o(c,n):n+\"{\"+o(c,\"k\"==n[1]?\"\":t)+\"}\":\"object\"==typeof c?l+=o(c,t?t.replace(/([^,])+/g,e=>n.replace(/(^:.*)|([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):n):null!=c&&(n=/^--/.test(n)?n:n.replace(/[A-Z]/g,\"-$&\").toLowerCase(),a+=o.p?o.p(n,c):n+\":\"+c+\";\")}return r+(t&&a?t+\"{\"+a+\"}\":a)+l},c={},s=e=>{if(\"object\"==typeof e){let t=\"\";for(let r in e)t+=r+s(e[r]);return t}return e},i=(e,t,r,i,p)=>{let u=s(e),d=c[u]||(c[u]=(e=>{let t=0,r=11;for(;t<e.length;)r=101*r+e.charCodeAt(t++)>>>0;return\"go\"+r})(u));if(!c[d]){let t=u!==e?e:(e=>{let t,r,o=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]?o.shift():t[3]?(r=t[3].replace(n,\" \").trim(),o.unshift(o[0][r]=o[0][r]||{})):o[0][t[1]]=t[2].replace(n,\" \").trim();return o[0]})(e);c[d]=o(p?{[\"@keyframes \"+d]:t}:t,r?\"\":\".\"+d)}let f=r&&c.g?c.g:null;return r&&(c.g=c[d]),((e,t,r,l)=>{l?t.data=t.data.replace(l,e):-1===t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e)})(c[d],t,i,f),d},p=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):!1===e?\"\":e}return e+l+(null==n?\"\":n)},\"\");function u(e){let r=this||{},l=e.call?e(r.p):e;return i(l.unshift?l.raw?p(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>Object.assign(e,t&&t.call?t(r.p):t),{}):l,t(r.target),r.g,r.o,r.k)}let d,f,g,b=u.bind({g:1}),h=u.bind({k:1});function m(e,t,r,l){o.p=t,d=e,f=r,g=l}function j(e,t){let r=this||{};return function(){let l=arguments;function a(n,o){let c=Object.assign({},n),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=u.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=o);let i=e;return e[0]&&(i=c.as||e,delete c.as),g&&i[0]&&g(c),d(i,c)}return t?t(a):a}}export{u as css,r as extractCss,b as glob,h as keyframes,m as setup,j as styled};\n","import { CSSProperties } from 'react';\n\nexport type ToastType = 'success' | 'error' | 'loading' | 'blank' | 'custom';\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport type Renderable = JSX.Element | string | null;\n\nexport interface IconTheme {\n primary: string;\n secondary: string;\n}\n\nexport type ValueFunction<TValue, TArg> = (arg: TArg) => TValue;\nexport type ValueOrFunction<TValue, TArg> =\n | TValue\n | ValueFunction<TValue, TArg>;\n\nconst isFunction = <TValue, TArg>(\n valOrFunction: ValueOrFunction<TValue, TArg>\n): valOrFunction is ValueFunction<TValue, TArg> =>\n typeof valOrFunction === 'function';\n\nexport const resolveValue = <TValue, TArg>(\n valOrFunction: ValueOrFunction<TValue, TArg>,\n arg: TArg\n): TValue => (isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction);\n\nexport interface Toast {\n type: ToastType;\n id: string;\n message: ValueOrFunction<Renderable, Toast>;\n icon?: Renderable;\n duration?: number;\n pauseDuration: number;\n position?: ToastPosition;\n\n ariaProps: {\n role: 'status' | 'alert';\n 'aria-live': 'assertive' | 'off' | 'polite';\n };\n\n style?: CSSProperties;\n className?: string;\n iconTheme?: IconTheme;\n\n createdAt: number;\n visible: boolean;\n height?: number;\n}\n\nexport type ToastOptions = Partial<\n Pick<\n Toast,\n | 'id'\n | 'icon'\n | 'duration'\n | 'ariaProps'\n | 'className'\n | 'style'\n | 'position'\n | 'iconTheme'\n >\n>;\n\nexport type DefaultToastOptions = ToastOptions & {\n [key in ToastType]?: ToastOptions;\n};\n\nexport interface ToasterProps {\n position?: ToastPosition;\n toastOptions?: DefaultToastOptions;\n reverseOrder?: boolean;\n gutter?: number;\n containerStyle?: React.CSSProperties;\n containerClassName?: string;\n children?: (toast: Toast) => JSX.Element;\n}\n\nexport interface ToastWrapperProps {\n id: string;\n className?: string;\n style?: React.CSSProperties;\n onHeightUpdate: (id: string, height: number) => void;\n children?: React.ReactNode;\n}\n","export const genId = (() => {\n let count = 0;\n return () => {\n return (++count).toString();\n };\n})();\n\nexport const prefersReducedMotion = (() => {\n // Cache result\n let shouldReduceMotion: boolean | undefined = undefined;\n\n return () => {\n if (shouldReduceMotion === undefined && typeof window !== 'undefined') {\n const mediaQuery = matchMedia('(prefers-reduced-motion: reduce)');\n shouldReduceMotion = !mediaQuery || mediaQuery.matches;\n }\n return shouldReduceMotion;\n };\n})();\n","import { useEffect, useState } from 'react';\nimport { DefaultToastOptions, Toast, ToastType } from './types';\n\nconst TOAST_LIMIT = 20;\n\nexport enum ActionType {\n ADD_TOAST,\n UPDATE_TOAST,\n UPSERT_TOAST,\n DISMISS_TOAST,\n REMOVE_TOAST,\n START_PAUSE,\n END_PAUSE,\n}\n\ntype Action =\n | {\n type: ActionType.ADD_TOAST;\n toast: Toast;\n }\n | {\n type: ActionType.UPSERT_TOAST;\n toast: Toast;\n }\n | {\n type: ActionType.UPDATE_TOAST;\n toast: Partial<Toast>;\n }\n | {\n type: ActionType.DISMISS_TOAST;\n toastId?: string;\n }\n | {\n type: ActionType.REMOVE_TOAST;\n toastId?: string;\n }\n | {\n type: ActionType.START_PAUSE;\n time: number;\n }\n | {\n type: ActionType.END_PAUSE;\n time: number;\n };\n\ninterface State {\n toasts: Toast[];\n pausedAt: number | undefined;\n}\n\nconst toastTimeouts = new Map<Toast['id'], ReturnType<typeof setTimeout>>();\n\nexport const TOAST_EXPIRE_DISMISS_DELAY = 1000;\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: ActionType.REMOVE_TOAST,\n toastId: toastId,\n });\n }, TOAST_EXPIRE_DISMISS_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nconst clearFromRemoveQueue = (toastId: string) => {\n const timeout = toastTimeouts.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case ActionType.ADD_TOAST:\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case ActionType.UPDATE_TOAST:\n // ! Side effects !\n if (action.toast.id) {\n clearFromRemoveQueue(action.toast.id);\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case ActionType.UPSERT_TOAST:\n const { toast } = action;\n return state.toasts.find((t) => t.id === toast.id)\n ? reducer(state, { type: ActionType.UPDATE_TOAST, toast })\n : reducer(state, { type: ActionType.ADD_TOAST, toast });\n\n case ActionType.DISMISS_TOAST:\n const { toastId } = action;\n\n // ! Side effects ! - This could be execrated into a dismissToast() action, but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n visible: false,\n }\n : t\n ),\n };\n case ActionType.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n\n case ActionType.START_PAUSE:\n return {\n ...state,\n pausedAt: action.time,\n };\n\n case ActionType.END_PAUSE:\n const diff = action.time - (state.pausedAt || 0);\n\n return {\n ...state,\n pausedAt: undefined,\n toasts: state.toasts.map((t) => ({\n ...t,\n pauseDuration: t.pauseDuration + diff,\n })),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [], pausedAt: undefined };\n\nexport const dispatch = (action: Action) => {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n};\n\nexport const defaultTimeouts: {\n [key in ToastType]: number;\n} = {\n blank: 4000,\n error: 4000,\n success: 2000,\n loading: Infinity,\n custom: 4000,\n};\n\nexport const useStore = (toastOptions: DefaultToastOptions = {}): State => {\n const [state, setState] = useState<State>(memoryState);\n useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n const mergedToasts = state.toasts.map((t) => ({\n ...toastOptions,\n ...toastOptions[t.type],\n ...t,\n duration:\n t.duration ||\n toastOptions[t.type]?.duration ||\n toastOptions?.duration ||\n defaultTimeouts[t.type],\n style: {\n ...toastOptions.style,\n ...toastOptions[t.type]?.style,\n ...t.style,\n },\n }));\n\n return {\n ...state,\n toasts: mergedToasts,\n };\n};\n","import {\n Renderable,\n Toast,\n ToastOptions,\n ToastType,\n DefaultToastOptions,\n ValueOrFunction,\n resolveValue,\n} from './types';\nimport { genId } from './utils';\nimport { dispatch, ActionType } from './store';\n\ntype Message = ValueOrFunction<Renderable, Toast>;\n\ntype ToastHandler = (message: Message, options?: ToastOptions) => string;\n\nconst createToast = (\n message: Message,\n type: ToastType = 'blank',\n opts?: ToastOptions\n): Toast => ({\n createdAt: Date.now(),\n visible: true,\n type,\n ariaProps: {\n role: 'status',\n 'aria-live': 'polite',\n },\n message,\n pauseDuration: 0,\n ...opts,\n id: opts?.id || genId(),\n});\n\nconst createHandler =\n (type?: ToastType): ToastHandler =>\n (message, options) => {\n const toast = createToast(message, type, options);\n dispatch({ type: ActionType.UPSERT_TOAST, toast });\n return toast.id;\n };\n\nconst toast = (message: Message, opts?: ToastOptions) =>\n createHandler('blank')(message, opts);\n\ntoast.error = createHandler('error');\ntoast.success = createHandler('success');\ntoast.loading = createHandler('loading');\ntoast.custom = createHandler('custom');\n\ntoast.dismiss = (toastId?: string) => {\n dispatch({\n type: ActionType.DISMISS_TOAST,\n toastId,\n });\n};\n\ntoast.remove = (toastId?: string) =>\n dispatch({ type: ActionType.REMOVE_TOAST, toastId });\n\ntoast.promise = <T>(\n promise: Promise<T>,\n msgs: {\n loading: Renderable;\n success: ValueOrFunction<Renderable, T>;\n error: ValueOrFunction<Renderable, any>;\n },\n opts?: DefaultToastOptions\n) => {\n const id = toast.loading(msgs.loading, { ...opts, ...opts?.loading });\n\n promise\n .then((p) => {\n toast.success(resolveValue(msgs.success, p), {\n id,\n ...opts,\n ...opts?.success,\n });\n return p;\n })\n .catch((e) => {\n toast.error(resolveValue(msgs.error, e), {\n id,\n ...opts,\n ...opts?.error,\n });\n });\n\n return promise;\n};\n\nexport { toast };\n","import { useEffect, useCallback } from 'react';\nimport { dispatch, ActionType, useStore } from './store';\nimport { toast } from './toast';\nimport { DefaultToastOptions, Toast, ToastPosition } from './types';\n\nconst updateHeight = (toastId: string, height: number) => {\n dispatch({\n type: ActionType.UPDATE_TOAST,\n toast: { id: toastId, height },\n });\n};\nconst startPause = () => {\n dispatch({\n type: ActionType.START_PAUSE,\n time: Date.now(),\n });\n};\n\nexport const useToaster = (toastOptions?: DefaultToastOptions) => {\n const { toasts, pausedAt } = useStore(toastOptions);\n\n useEffect(() => {\n if (pausedAt) {\n return;\n }\n\n const now = Date.now();\n const timeouts = toasts.map((t) => {\n if (t.duration === Infinity) {\n return;\n }\n\n const durationLeft =\n (t.duration || 0) + t.pauseDuration - (now - t.createdAt);\n\n if (durationLeft < 0) {\n if (t.visible) {\n toast.dismiss(t.id);\n }\n return;\n }\n return setTimeout(() => toast.dismiss(t.id), durationLeft);\n });\n\n return () => {\n timeouts.forEach((timeout) => timeout && clearTimeout(timeout));\n };\n }, [toasts, pausedAt]);\n\n const endPause = useCallback(() => {\n if (pausedAt) {\n dispatch({ type: ActionType.END_PAUSE, time: Date.now() });\n }\n }, [pausedAt]);\n\n const calculateOffset = useCallback(\n (\n toast: Toast,\n opts?: {\n reverseOrder?: boolean;\n gutter?: number;\n defaultPosition?: ToastPosition;\n }\n ) => {\n const { reverseOrder = false, gutter = 8, defaultPosition } = opts || {};\n\n const relevantToasts = toasts.filter(\n (t) =>\n (t.position || defaultPosition) ===\n (toast.position || defaultPosition) && t.height\n );\n const toastIndex = relevantToasts.findIndex((t) => t.id === toast.id);\n const toastsBefore = relevantToasts.filter(\n (toast, i) => i < toastIndex && toast.visible\n ).length;\n\n const offset = relevantToasts\n .filter((t) => t.visible)\n .slice(...(reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]))\n .reduce((acc, t) => acc + (t.height || 0) + gutter, 0);\n\n return offset;\n },\n [toasts]\n );\n\n return {\n toasts,\n handlers: {\n updateHeight,\n startPause,\n endPause,\n calculateOffset,\n },\n };\n};\n","import { styled, keyframes } from 'goober';\n\nconst circleAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n opacity: 1;\n}`;\n\nconst firstLineAnimation = keyframes`\nfrom {\n transform: scale(0);\n opacity: 0;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`;\n\nconst secondLineAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(90deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(90deg);\n\topacity: 1;\n}`;\n\nexport interface ErrorTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const ErrorIcon = styled('div')<ErrorTheme>`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(p) => p.primary || '#ff4b4b'};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${circleAnimation} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n\n &:after,\n &:before {\n content: '';\n animation: ${firstLineAnimation} 0.15s ease-out forwards;\n animation-delay: 150ms;\n position: absolute;\n border-radius: 3px;\n opacity: 0;\n background: ${(p) => p.secondary || '#fff'};\n bottom: 9px;\n left: 4px;\n height: 2px;\n width: 12px;\n }\n\n &:before {\n animation: ${secondLineAnimation} 0.15s ease-out forwards;\n animation-delay: 180ms;\n transform: rotate(90deg);\n }\n`;\n","import { styled, keyframes } from 'goober';\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nexport interface LoaderTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const LoaderIcon = styled('div')<LoaderTheme>`\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n border: 2px solid;\n border-radius: 100%;\n border-color: ${(p) => p.secondary || '#e0e0e0'};\n border-right-color: ${(p) => p.primary || '#616161'};\n animation: ${rotate} 1s linear infinite;\n`;\n","import { styled, keyframes } from 'goober';\n\nconst circleAnimation = keyframes`\nfrom {\n transform: scale(0) rotate(45deg);\n\topacity: 0;\n}\nto {\n transform: scale(1) rotate(45deg);\n\topacity: 1;\n}`;\n\nconst checkmarkAnimation = keyframes`\n0% {\n\theight: 0;\n\twidth: 0;\n\topacity: 0;\n}\n40% {\n height: 0;\n\twidth: 6px;\n\topacity: 1;\n}\n100% {\n opacity: 1;\n height: 10px;\n}`;\n\nexport interface CheckmarkTheme {\n primary?: string;\n secondary?: string;\n}\n\nexport const CheckmarkIcon = styled('div')<CheckmarkTheme>`\n width: 20px;\n opacity: 0;\n height: 20px;\n border-radius: 10px;\n background: ${(p) => p.primary || '#61d345'};\n position: relative;\n transform: rotate(45deg);\n\n animation: ${circleAnimation} 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n animation-delay: 100ms;\n &:after {\n content: '';\n box-sizing: border-box;\n animation: ${checkmarkAnimation} 0.2s ease-out forwards;\n opacity: 0;\n animation-delay: 200ms;\n position: absolute;\n border-right: 2px solid;\n border-bottom: 2px solid;\n border-color: ${(p) => p.secondary || '#fff'};\n bottom: 6px;\n left: 6px;\n height: 10px;\n width: 6px;\n }\n`;\n","import * as React from 'react';\nimport { styled, keyframes } from 'goober';\n\nimport { Toast } from '../core/types';\nimport { ErrorIcon, ErrorTheme } from './error';\nimport { LoaderIcon, LoaderTheme } from './loader';\nimport { CheckmarkIcon, CheckmarkTheme } from './checkmark';\n\nconst StatusWrapper = styled('div')`\n position: absolute;\n`;\n\nconst IndicatorWrapper = styled('div')`\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 20px;\n min-height: 20px;\n`;\n\nconst enter = keyframes`\nfrom {\n transform: scale(0.6);\n opacity: 0.4;\n}\nto {\n transform: scale(1);\n opacity: 1;\n}`;\n\nexport const AnimatedIconWrapper = styled('div')`\n position: relative;\n transform: scale(0.6);\n opacity: 0.4;\n min-width: 20px;\n animation: ${enter} 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\n forwards;\n`;\n\nexport type IconThemes = Partial<{\n success: CheckmarkTheme;\n error: ErrorTheme;\n loading: LoaderTheme;\n}>;\n\nexport const ToastIcon: React.FC<{\n toast: Toast;\n}> = ({ toast }) => {\n const { icon, type, iconTheme } = toast;\n if (icon !== undefined) {\n if (typeof icon === 'string') {\n return <AnimatedIconWrapper>{icon}</AnimatedIconWrapper>;\n } else {\n return icon;\n }\n }\n\n if (type === 'blank') {\n return null;\n }\n\n return (\n <IndicatorWrapper>\n <LoaderIcon {...iconTheme} />\n {type !== 'loading' && (\n <StatusWrapper>\n {type === 'error' ? (\n <ErrorIcon {...iconTheme} />\n ) : (\n <CheckmarkIcon {...iconTheme} />\n )}\n </StatusWrapper>\n )}\n </IndicatorWrapper>\n );\n};\n","import * as React from 'react';\nimport { styled, keyframes } from 'goober';\n\nimport { Toast, ToastPosition, resolveValue, Renderable } from '../core/types';\nimport { ToastIcon } from './toast-icon';\nimport { prefersReducedMotion } from '../core/utils';\n\nconst enterAnimation = (factor: number) => `\n0% {transform: translate3d(0,${factor * -200}%,0) scale(.6); opacity:.5;}\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\n`;\n\nconst exitAnimation = (factor: number) => `\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\n100% {transform: translate3d(0,${factor * -150}%,-1px) scale(.6); opacity:0;}\n`;\n\nconst fadeInAnimation = `0%{opacity:0;} 100%{opacity:1;}`;\nconst fadeOutAnimation = `0%{opacity:1;} 100%{opacity:0;}`;\n\nconst ToastBarBase = styled('div')`\n display: flex;\n align-items: center;\n background: #fff;\n color: #363636;\n line-height: 1.3;\n will-change: transform;\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\n max-width: 350px;\n pointer-events: auto;\n padding: 8px 10px;\n border-radius: 8px;\n`;\n\nconst Message = styled('div')`\n display: flex;\n justify-content: center;\n margin: 4px 10px;\n color: inherit;\n flex: 1 1 auto;\n white-space: pre-line;\n`;\n\ninterface ToastBarProps {\n toast: Toast;\n position?: ToastPosition;\n style?: React.CSSProperties;\n children?: (components: {\n icon: Renderable;\n message: Renderable;\n }) => Renderable;\n}\n\nconst getAnimationStyle = (\n position: ToastPosition,\n visible: boolean\n): React.CSSProperties => {\n const top = position.includes('top');\n const factor = top ? 1 : -1;\n\n const [enter, exit] = prefersReducedMotion()\n ? [fadeInAnimation, fadeOutAnimation]\n : [enterAnimation(factor), exitAnimation(factor)];\n\n return {\n animation: visible\n ? `${keyframes(enter)} 0.35s cubic-bezier(.21,1.02,.73,1) forwards`\n : `${keyframes(exit)} 0.4s forwards cubic-bezier(.06,.71,.55,1)`,\n };\n};\n\nexport const ToastBar: React.FC<ToastBarProps> = React.memo(\n ({ toast, position, style, children }) => {\n const animationStyle: React.CSSProperties = toast.height\n ? getAnimationStyle(\n toast.position || position || 'top-center',\n toast.visible\n )\n : { opacity: 0 };\n\n const icon = <ToastIcon toast={toast} />;\n const message = (\n <Message {...toast.ariaProps}>\n {resolveValue(toast.message, toast)}\n </Message>\n );\n\n return (\n <ToastBarBase\n className={toast.className}\n style={{\n ...animationStyle,\n ...style,\n ...toast.style,\n }}\n >\n {typeof children === 'function' ? (\n children({\n icon,\n message,\n })\n ) : (\n <>\n {icon}\n {message}\n </>\n )}\n </ToastBarBase>\n );\n }\n);\n","import { css, setup } from 'goober';\nimport * as React from 'react';\nimport {\n resolveValue,\n ToasterProps,\n ToastPosition,\n ToastWrapperProps,\n} from '../core/types';\nimport { useToaster } from '../core/use-toaster';\nimport { prefersReducedMotion } from '../core/utils';\nimport { ToastBar } from './toast-bar';\n\nsetup(React.createElement);\n\nconst ToastWrapper = ({\n id,\n className,\n style,\n onHeightUpdate,\n children,\n}: ToastWrapperProps) => {\n const ref = React.useCallback(\n (el: HTMLElement | null) => {\n if (el) {\n const updateHeight = () => {\n const height = el.getBoundingClientRect().height;\n onHeightUpdate(id, height);\n };\n updateHeight();\n new MutationObserver(updateHeight).observe(el, {\n subtree: true,\n childList: true,\n characterData: true,\n });\n }\n },\n [id, onHeightUpdate]\n );\n\n return (\n <div ref={ref} className={className} style={style}>\n {children}\n </div>\n );\n};\n\nconst getPositionStyle = (\n position: ToastPosition,\n offset: number\n): React.CSSProperties => {\n const top = position.includes('top');\n const verticalStyle: React.CSSProperties = top ? { top: 0 } : { bottom: 0 };\n const horizontalStyle: React.CSSProperties = position.includes('center')\n ? {\n justifyContent: 'center',\n }\n : position.includes('right')\n ? {\n justifyContent: 'flex-end',\n }\n : {};\n return {\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transition: prefersReducedMotion()\n ? undefined\n : `all 230ms cubic-bezier(.21,1.02,.73,1)`,\n transform: `translateY(${offset * (top ? 1 : -1)}px)`,\n ...verticalStyle,\n ...horizontalStyle,\n };\n};\n\nconst activeClass = css`\n z-index: 9999;\n > * {\n pointer-events: auto;\n }\n`;\n\nconst DEFAULT_OFFSET = 16;\n\nexport const Toaster: React.FC<ToasterProps> = ({\n reverseOrder,\n position = 'top-center',\n toastOptions,\n gutter,\n children,\n containerStyle,\n containerClassName,\n}) => {\n const { toasts, handlers } = useToaster(toastOptions);\n\n return (\n <div\n style={{\n position: 'fixed',\n zIndex: 9999,\n top: DEFAULT_OFFSET,\n left: DEFAULT_OFFSET,\n right: DEFAULT_OFFSET,\n bottom: DEFAULT_OFFSET,\n pointerEvents: 'none',\n ...containerStyle,\n }}\n className={containerClassName}\n onMouseEnter={handlers.startPause}\n onMouseLeave={handlers.endPause}\n >\n {toasts.map((t) => {\n const toastPosition = t.position || position;\n const offset = handlers.calculateOffset(t, {\n reverseOrder,\n gutter,\n defaultPosition: position,\n });\n const positionStyle = getPositionStyle(toastPosition, offset);\n\n return (\n <ToastWrapper\n id={t.id}\n key={t.id}\n onHeightUpdate={handlers.updateHeight}\n className={t.visible ? activeClass : ''}\n style={positionStyle}\n >\n {t.type === 'custom' ? (\n resolveValue(t.message, t)\n ) : children ? (\n children(t)\n ) : (\n <ToastBar toast={t} position={toastPosition} />\n )}\n </ToastWrapper>\n );\n })}\n </div>\n );\n};\n","import { toast } from './core/toast';\n\nexport * from './headless';\n\nexport { ToastBar } from './components/toast-bar';\nexport { ToastIcon } from './components/toast-icon';\nexport { Toaster } from './components/toaster';\nexport { CheckmarkIcon } from './components/checkmark';\nexport { ErrorIcon } from './components/error';\nexport { LoaderIcon } from './components/loader';\n\nexport { toast };\nexport default toast;\n","import axios from \"axios\";\nimport { fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL } from \"constant/api/Endpoints\";\nimport { toast } from \"react-hot-toast\";\n\nconst webRequestHandler = (url) => {\n const isClientSide = typeof window !== \"undefined\";\n const token = isClientSide ? localStorage.getItem(\"accessToken\") : null;\n const showErrorNotification = (message) => {\n toast.error(message, {\n id: \"network_issue\",\n duration: 4000,\n style: {\n border: \"1px solid #ff4d4d\",\n padding: \"16px\",\n background: \"#ff4d4d\",\n color: \"#FFFAEE\",\n },\n iconTheme: {\n secondary: \"#ff4d4d\",\n primary: \"#FFFAEE\",\n },\n });\n };\n\n const instance = axios.create({\n baseURL: url,\n headers: {\n Authorization: isClientSide && token ? `Bearer ${token}` : \"\",\n \"Content-Type\": \"application/json\",\n },\n // ... other options\n });\n // Add a response interceptor\n instance.interceptors.response.use(\n (response) => {\n if (\n response.data.response.statusEnum >= 400 &&\n response.data.response.statusEnum < 500\n ) {\n localStorage.clear();\n window.location.href = \"/signin\";\n }\n // Return the response if the status code is 200\n return response.data;\n },\n (error) => {\n // Perform an action if the status code is 401\n if (!error.response) {\n // Handle network error\n axios\n .get(\"https://1.1.1.1/cdn-cgi/trace\")\n .then((pingResponse) => {\n // If the ping succeeds, show an alternate error message\n const errorMessage =\n \"Some services are temporarily unavailable. We're addressing the issue and will restore full functionality shortly. Thank you for your understanding.\";\n showErrorNotification(errorMessage);\n })\n .catch((e) => {\n // If the ping fails, it's likely a network issue\n const networkError =\n \"Network error occurred. Please check your internet.\";\n showErrorNotification(networkError);\n });\n } else if (error.response.status === 502) {\n // Handle 500-599 server-side errors\n const networkError =\n \"Network error occurred. Please check your internet.\";\n showErrorNotification(networkError);\n } else if (error.response.status >= 500 && error.response.status < 600) {\n // Handle 500-599 server-side errors\n const serverError = `Server error (${error.response.status}): Please try again later.`;\n showErrorNotification(serverError);\n } else if (\n error.response &&\n error.response.status >= 400 &&\n error.response.status < 500\n ) {\n // Here, you can perform any action you need when the status code is 401\n console.error(\n \"Request failed with status code:\",\n error.response.status\n );\n localStorage.clear();\n window.location.href = \"/signin\";\n\n // For example, you can redirect the user, show an error message, etc.\n }\n\n // Return the rejected Promise to propagate the error\n return Promise.reject(error);\n }\n );\n\n return instance;\n};\n\nexport default webRequestHandler;\n\n// // Custom base query with error handling\n// export const customBaseQuery = async (args, api, extraOptions) => {\n// const rawBaseQuery = fetchBaseQuery();\n// const result = await rawBaseQuery(args, api, extraOptions);\n// if (result.error && result.error.originalStatus >= 400 && result.error.originalStatus < 500) {\n// // Handle 400-499 errors\n// console.error(\"Request failed with status code:\", result.error.originalStatus);\n// localStorage.clear();\n// window.location.href = \"/signin\";\n// // Optionally, you can return a new error or result\n// return {\n// error: { status: result.error.originalStatus, message: \"Custom error handling\" },\n// };\n// }\n\n// return result;\n// };\n// Custom base query function that takes a dynamic config object\nconst customBaseQuery = ({ baseUrl, prepareHeaders }) => {\n return fetchBaseQuery({\n baseUrl,\n prepareHeaders: prepareHeaders || ((headers) => headers),\n });\n};\n\nconst showErrorNotification = (message) => {\n toast.error(message, {\n id: \"network_issue\",\n duration: 4000,\n style: {\n border: \"1px solid #ff4d4d\",\n padding: \"16px\",\n background: \"#ff4d4d\",\n color: \"#FFFAEE\",\n },\n iconTheme: {\n secondary: \"#ff4d4d\",\n primary: \"#FFFAEE\",\n },\n });\n};\n\n// Base query with error handling\nexport const baseQueryWithReauth =\n (config) =>\n async (args, api, extraOptions = {}) => {\n const baseQuery = customBaseQuery(config);\n let result = await baseQuery(args, api, extraOptions.showError);\n const showError =\n extraOptions.showError !== undefined ? extraOptions.showError : true;\n\n if (\n !result ||\n (result.error &&\n (result.error.status === \"FETCH_ERROR\" ||\n result.error.status === \"NETWORK_ERROR\"))\n ) {\n axios\n .get(\"https://1.1.1.1/cdn-cgi/trace\")\n .then((pingResponse) => {\n // If the ping succeeds, show an alternate error message\n const errorMessage =\n \"Some services are temporarily unavailable. We're addressing the issue and will restore full functionality shortly. Thank you for your understanding.\";\n showErrorNotification(errorMessage);\n showError && showErrorNotification(errorMessage);\n })\n .catch((e) => {\n // If the ping fails, it's likely a network issue\n const networkError =\n \"Network error occurred. Please check your internet.\";\n showErrorNotification(networkError);\n showError && showErrorNotification(networkError);\n });\n } else if (\n (result.data?.statusCode >= 500 && result.data?.statusCode < 600) ||\n (result?.error?.status >= 500 && result?.error?.status < 600)\n ) {\n // Handle 500-599 server-side errors\n const serverError = `Server error (${\n result.data?.statusCode || result.error?.status\n }): Please try again later.`;\n showErrorNotification(serverError);\n } else if (\n (result.data?.statusCode >= 400 && result.data?.statusCode < 500) ||\n (result.error?.status >= 400 && result.error?.status < 500)\n ) {\n console.error(\n \"Request failed with status code:\",\n result.data?.statusCode || result.error?.status\n );\n localStorage.clear();\n window.location.href = \"/signin\";\n }\n\n return result;\n };\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Reducer-functions\n *@developer Aditya P\n */\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\nexport const ApartmentSlice = createApi({\n reducerPath: \"apartment\",\n baseQuery: baseQueryWithReauth({ baseUrl: BASE_URL }),\n endpoints: (builder) => ({\n GetAllApartment: builder.query({\n query: ({ limit, page }) => ({\n url: EndpointsSlug.GET_ALL_APARTMENT,\n method: \"GET\",\n params: { limit, page },\n }),\n }),\n GetSingleApartment: builder.query({\n query: (payload = \"\") => ({\n url: EndpointsSlug.GET_SINGLE_APARTMENT + \"/\" + payload,\n method: \"GET\",\n }),\n }),\n }),\n});\n\nexport const { useGetAllApartmentQuery, useGetSingleApartmentQuery } =\n ApartmentSlice;\n","const ImageConstant = {\n APARTMENT_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/apartment-front-banner-3.png\",\n SHIP_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/ship-front-banner.jpeg\",\n ENTERTAINMENT_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/entertainment-hero.png\",\n CLOTHING_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/clothing-banner-image.jpg\",\n AVATAR_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/avatar_banner_image.png\",\n COMPANION_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/companion+hero.png\",\n GAMING_BANNER_IMAGE:\n \"https://d30s60cgc31mft.cloudfront.net/Gaming+hero-section-image.jpg\",\n};\n\nexport default ImageConstant;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer sudhanshu <sudhanshu@instaacoder.com>\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n// import { Canvas } from '@react-three/fiber';\n// import { useGLTF, Stage, PresentationControls } from '@react-three/drei';\nimport { Fade, Zoom } from \"react-reveal\";\nimport PremAptImg from \"assets/images/apartment-banner.jpeg\";\nimport Penthouse from \"assets/images/premium_apt.png\";\nimport AptImg from \"assets/images/apartment-1.png\";\nimport AptImg2 from \"assets/images/apartment-2.png\";\nimport FeatureImg1 from \"assets/images/feature-icon.png\";\nimport FeatureImg2 from \"assets/images/feature-icon-2.png\";\nimport FeatureImg3 from \"assets/images/feature-icon-3.png\";\nimport FeatureImg4 from \"assets/images/feature-icon-4.png\";\nimport MarketPlaceCard from \"components/card/marketplace\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport FeaturedCard from \"components/card/feature\";\nimport { useGetAllApartmentQuery } from \"store/slicer/Apartments\";\nimport Loader from \"components/Loader/Loader\";\nimport ImageConstant from \"../../../constant/imageConstant\";\n\n// function Model(props) {\n// const { scene } = useGLTF(\n// 'https://fourthstar-userdashboard.s3.amazonaws.com/abc.glb'\n// );\n// // https://fourthstar-userdashboard.s3.amazonaws.com/ship.glb\n// return <primitive object={scene} {...props} />;\n// }\n\n/* The above code is a React component called \"Index\". It renders a grid layout with various sections\n displaying information about Fourth Star Apartments. */\n\nconst Index = () => {\n const { data, isLoading } = useGetAllApartmentQuery({\n limit: 10,\n page: 1,\n });\n const navigate = useNavigate();\n const [aptFeaturedCard, setAptFeaturedCard] = useState([\n {\n img: FeatureImg1,\n title: \"Ultimate Gaming Experience\",\n desc: `Our apartments and ships are equipped with everything you need to unleash your gaming prowess. Engage in thrilling multiplayer battles, conquer epic quests, and explore immersive virtual worlds, all from the comfort of your own living space.`,\n },\n {\n img: FeatureImg2,\n title: \"Exclusive Immersive Streaming\",\n desc: `Immerse yourself in a realm of unparalleled entertainment with your choice of 180 and 360 immersive entertainment content. Granting you access to an extraordinary selection of movies, shows, virtual travel experiences and live events with your friends.`,\n },\n {\n img: FeatureImg3,\n title: \"Volumetric Video\",\n desc: `Science Fiction Holograms become a reality. Discover a world of captivating virtual reality content with Volumetric Video. See your favourite Artist standing right in front of you. Relax in your living space with a Personal Performance from the biggest Rock Stars on the Planet.`,\n },\n {\n img: FeatureImg4,\n title: \"180 and 360 Entertainment\",\n desc: `Dive into captivating 180 and 360-degree VR videos for immersive visual adventures. Explore stunning landscapes, thrilling stories, and captivating narratives in virtual reality. Experience every angle, depth, and action like never before.`,\n },\n ]);\n const [apartments, setApartments] = useState([]);\n\n useEffect(() => {\n const url = window.location.href;\n const parts = url.split(\"/\");\n const valueAfterApartments = parts[parts.indexOf(\"apartments\") + 1];\n if (data?.response?.statusEnum === 1) {\n setApartments(data?.response?.data?.data);\n }\n });\n\n return (\n <div className=\"relative px-2 md:px-4\">\n <Zoom>\n <div className=\"xl:min-h-[350px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative\">\n <img\n src={ImageConstant.APARTMENT_BANNER_IMAGE}\n alt=\"Network Problem\"\n className=\"h-full w-full object-cover\"\n />\n </div>\n </Zoom>\n\n <h2 className=\"font-heading text-center text-lg md:text-2xl mt-14 lg:mt-28 mb-8 md:mb-14\">\n Explore Apartments\n </h2>\n <div className=\"grid grid-cols-1 gap-x-5 gap-y-8 lg:gap-y-16 mb-28 mx-auto relative z-10\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n {isLoading ? (\n <div className=\"text-center\">\n <Loader />\n </div>\n ) : (\n apartments.map((item, i) => {\n return (\n <Fade key={i}>\n <MarketPlaceCard\n item={{\n ...item,\n category: \"apartment\",\n }}\n type=\"large\"\n />\n </Fade>\n );\n })\n )}\n </div>\n <div className=\"relative\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n <div className=\"flex flex-col items-center mb-5 relative z-10\">\n <h1 className=\"text-lg md:text-2xl leading-normal font-heading text-center mb-3\">\n Fourth Star Apartments: A New Dimension of Living.\n </h1>\n <p className=\"text-sm lg:text-base text-white/[0.90] text-center max-w-[972px]\">\n Explore ultimate metaverse living experience at Fourth Star\n Apartments. Our thoughtfully designed spaces combine luxury and\n cutting-edge technology to create a haven where gaming and\n entertainment thrive.{\" \"}\n </p>\n </div>\n <div className=\"grid md:grid-cols-2 grid-cols-1 gap-x-10 lg:gap-x-14 gap-y-10 lg:gap-y-20 my-14 md:my-20 mx-auto max-w-4xl relative z-10\">\n {aptFeaturedCard.map((item, i) => (\n <FeaturedCard item={item} key={i} />\n ))}\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:-bottom-[150px]\" />\n </div>\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Ships-Reducer-functions\n *@developer Aditya P\n */\n\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\nexport const ShipSlice = createApi({\n reducerPath: \"ship\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n }),\n endpoints: (builder) => ({\n GetAllShip: builder.query({\n query: ({ limit, page }) => ({\n url: EndpointsSlug.GET_ALL_SHIPS,\n method: \"GET\",\n params: { limit, page },\n }),\n }),\n GetSingleShip: builder.query({\n query: (payload = \"\") => ({\n url: EndpointsSlug.GET_SINGLE_SHIP + \"/\" + payload,\n method: \"GET\",\n }),\n }),\n }),\n});\n\nexport const { useGetAllShipQuery, useGetSingleShipQuery } = ShipSlice;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Ship-Page\n *@developer sudhanshu <sudhanshu@instaacoder.com>\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n// import { Canvas } from '@react-three/fiber';\n// import { useGLTF, Stage, PresentationControls } from '@react-three/drei';\nimport { Fade, Zoom } from \"react-reveal\";\nimport PremAptImg from \"assets/images/ship-banner.jpeg\";\nimport FeaturedCard from \"components/card/feature\";\nimport MarketPlaceCard from \"components/card/marketplace\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport FeatureImg1 from \"assets/images/feature-icon.png\";\nimport FeatureImg2 from \"assets/images/feature-icon-2.png\";\nimport FeatureImg3 from \"assets/images/feature-icon-3.png\";\nimport FeatureImg4 from \"assets/images/feature-icon-4.png\";\nimport ShipStarHwakImg from \"assets/images/Starhawk thumbnail.jpg\";\nimport ShipMachraiderImg from \"assets/images/Machraider thumbnail.jpg\";\nimport ShipPrometheusImg from \"assets/images/Prometheus thumbnail.jpg\";\nimport { useGetAllShipQuery } from \"store/slicer/Ships\";\nimport Loader from \"components/Loader/Loader\";\nimport ImageConstant from \"../../../constant/imageConstant\";\n\n// function Model(props) {\n// const { scene } = useGLTF(\n// 'https://fourthstar-userdashboard.s3.amazonaws.com/abc.glb'\n// );\n// // https://fourthstar-userdashboard.s3.amazonaws.com/ship.glb\n// return <primitive object={scene} {...props} />;\n// }\n\n/* The above code is a React component called \"Index\". It renders a grid layout with various sections\n displaying information about Fourth Star Apartments. */\n\nconst Index = () => {\n const { data, isLoading } = useGetAllShipQuery({\n limit: 10,\n page: 1,\n });\n const navigate = useNavigate();\n const [aptFeaturedCard, setAptFeaturedCard] = useState([\n {\n img: FeatureImg1,\n title: \"Ultimate Gaming Experience\",\n desc: `Our apartments and ships are equipped with everything you need to unleash your gaming prowess. Engage in thrilling multiplayer battles, conquer epic quests, and explore immersive virtual worlds, all from the comfort of your own living space.`,\n },\n {\n img: FeatureImg2,\n title: \"Exclusive Immersive Streaming\",\n desc: `Immerse yourself in a realm of unparalleled entertainment with your choice of 180 and 360 immersive entertainment content. Granting you access to an extraordinary selection of movies, shows, virtual travel experiences and live events with your friends.`,\n },\n {\n img: FeatureImg3,\n title: \"Volumetric Video\",\n desc: `Science Fiction Holograms become a reality. Discover a world of captivating virtual reality content with Volumetric Video. See your favourite Artist standing right in front of you. Relax in your living space with a Personal Performance from the biggest Rock Stars on the Planet.`,\n },\n {\n img: FeatureImg4,\n title: \"180 and 360 Entertainment\",\n desc: `Dive into captivating 180 and 360-degree VR videos for immersive visual adventures. Explore stunning landscapes, thrilling stories, and captivating narratives in virtual reality. Experience every angle, depth, and action like never before.`,\n },\n ]);\n const [ships, setShips] = useState([]);\n\n useEffect(() => {\n const url = window.location.href;\n const parts = url.split(\"/\");\n const valueAfterApartments = parts[parts.indexOf(\"apartments\") + 1];\n if (data?.response?.statusEnum === 1) {\n setShips(data?.response?.data?.data);\n }\n });\n return (\n <div className=\"relative px-2 md:px-4\">\n <Zoom>\n <div className=\"xl:min-h-[350px] bg-[#2D2D2D] h-full mb-20 z-10 relative\">\n <img\n src={ImageConstant.SHIP_BANNER_IMAGE}\n alt=\"Network Problem\"\n className=\"h-full w-full object-cover\"\n />\n </div>\n </Zoom>\n <h2 className=\"font-heading text-center text-lg md:text-2xl mt-14 lg:mt-28 mb-8 md:mb-14\">\n Explore Ships\n </h2>\n <div className=\"grid grid-cols-1 gap-x-5 gap-y-8 lg:gap-y-16 mb-28 mx-auto relative z-10\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n {isLoading ? (\n <div className=\"text-center\">\n <Loader />\n </div>\n ) : (\n ships.map((item, i) => {\n return (\n <Fade key={i}>\n <MarketPlaceCard item={item} type=\"large\" />\n </Fade>\n );\n })\n )}\n </div>\n <div className=\"relative\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n <div className=\"flex flex-col items-center mb-5 relative z-10\">\n <h1 className=\"text-lg md:text-2xl leading-normal font-heading text-center mb-3\">\n Cruise in Style: Luxury Ships for Discerning Adventures\n </h1>\n <p className=\"text-sm lg:text-base text-white/[0.90] text-center max-w-[972px]\">\n Discover a world of gaming, streaming, and immersive entertainment\n as you navigate the digital seas in style.{\" \"}\n </p>\n </div>\n\n <div className=\"grid md:grid-cols-2 grid-cols-1 gap-x-10 lg:gap-x-14 gap-y-10 lg:gap-y-20 my-14 md:my-20 mx-auto max-w-4xl relative z-10\">\n {aptFeaturedCard.map((item, i) => (\n <FeaturedCard item={item} key={i} />\n ))}\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:-bottom-[150px]\" />\n </div>\n </div>\n );\n};\n\nexport default Index;\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEyeOn(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.98676 4.375C6.94223 4.375 3.81918 6.13711 1.36058 9.66133C1.29041 9.76303 1.25195 9.88325 1.25007 10.0068C1.24819 10.1303 1.28298 10.2517 1.35004 10.3555C3.2391 13.3125 6.32035 15.625 9.98676 15.625C13.6133 15.625 16.7579 13.3055 18.6504 10.3418C18.7159 10.24 18.7507 10.1216 18.7507 10.0006C18.7507 9.87958 18.7159 9.76113 18.6504 9.65937C16.7536 6.72969 13.586 4.375 9.98676 4.375Z\",\n stroke: \"white\",\n strokeWidth: 1.25,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 13.125C11.7259 13.125 13.125 11.7259 13.125 10C13.125 8.27411 11.7259 6.875 10 6.875C8.27411 6.875 6.875 8.27411 6.875 10C6.875 11.7259 8.27411 13.125 10 13.125Z\",\n stroke: \"white\",\n strokeWidth: 1.25,\n strokeMiterlimit: 10\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeOn);\nexport default __webpack_public_path__ + \"static/media/eye-on.fa932235055fceb5a42fe3ed9cf38f26.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgEyeOff(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.82097 8.82227C8.50845 9.13489 8.33293 9.55885 8.33301 10.0009C8.33309 10.4429 8.50876 10.8668 8.82138 11.1793C9.13401 11.4919 9.55797 11.6674 10 11.6673C10.4421 11.6672 10.866 11.4916 11.1785 11.1789\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.9008 13.8942C12.7319 14.6255 11.3789 15.0091 10 15C7 15 4.5 13.3333 2.5 10C3.56 8.23333 4.76 6.935 6.1 6.105M8.48333 5.15C8.98253 5.04894 9.49068 4.99869 10 5C13 5 15.5 6.66667 17.5 10C16.945 10.925 16.3508 11.7225 15.7183 12.3917M2.5 2.5L17.5 17.5\",\n stroke: \"white\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgEyeOff);\nexport default __webpack_public_path__ + \"static/media/eye-off.1a6794deec3c937dd1988def82a9cd62.svg\";\nexport { ForwardRef as ReactComponent };","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module utility-function\n *@developer Aditya P\n */\n\n/*\n This file contains 3rd party utility function for handling complex logix and calculation\n*/\n\nimport eyeOn from \"assets/images/eye-on.svg\";\nimport eyeOff from \"assets/images/eye-off.svg\";\nimport axios from \"axios\";\nimport { BASE_URL } from \"constant/api/Endpoints\";\nimport { EndpointsSlug } from \"constant/api/Endpoints\";\nimport webRequestHandler from \"constant/api/apiInstance\";\n// Toggle Password Visibility Function\nexport const togglePasswordVisibility = (event) => {\n event.preventDefault();\n const previousSibling = event.currentTarget.previousElementSibling;\n if (previousSibling.tagName === \"INPUT\") {\n if (previousSibling.getAttribute(\"type\") === \"password\") {\n previousSibling.setAttribute(\"type\", \"text\");\n event.currentTarget.innerHTML = `<img src=${eyeOn} alt=\"PasswordVisibility\" />`;\n } else {\n previousSibling.setAttribute(\"type\", \"password\");\n event.currentTarget.innerHTML = `<img src=${eyeOff} alt=\"PasswordVisibility\" />`;\n }\n }\n};\n\n// Validation for Email\nexport const isValidEmail = (email) => {\n const emailRegex =\n /^[a-zA-Z0-9][a-zA-Z0-9._%+-]*@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n return emailRegex.test(email);\n};\n\n// username\nexport const isValidUsername = (username) => {\n const userNameRegex = /^[a-zA-Z][a-zA-Z0-9]*$/;\n return userNameRegex.test(username);\n};\n\n// validationRules\n\nexport function isContainsSpecialChars(value) {\n const specialChars = /[`!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?~]/;\n return specialChars.test(value);\n}\n\nexport const isContainsNumber = (value) => {\n return /[0-9]/.test(value);\n};\n\nexport const UPPERCASE_REGEX = new RegExp(/.*[A-Z]/);\nexport const LOWERCASE_REGEX = new RegExp(/.*[a-z]/);\nexport const NUMBER_REGEX = new RegExp(/.*\\d/);\nexport const LENGTH_REGEX = new RegExp(/.{8,}$/);\nexport const SPECIAL_CHARS_REGEX = new RegExp(/[!@#$%^&*(),.?\":{}|<>]/);\n\nexport const isStrongPassword = (password) => {\n // Check each condition independently\n const isUppercaseValid = UPPERCASE_REGEX.test(password);\n const isLowercaseValid = LOWERCASE_REGEX.test(password);\n const isNumberValid = NUMBER_REGEX.test(password);\n const isLengthValid = LENGTH_REGEX.test(password);\n const isSpecialCharValid = SPECIAL_CHARS_REGEX.test(password);\n\n // Return true if all conditions are met\n return (\n isUppercaseValid &&\n isLowercaseValid &&\n isNumberValid &&\n isLengthValid &&\n isSpecialCharValid\n );\n};\nexport const PASSWORD_VALID_REGEX = new RegExp(\n `^(?=${[\n LENGTH_REGEX.source,\n UPPERCASE_REGEX.source,\n NUMBER_REGEX.source,\n SPECIAL_CHARS_REGEX.source,\n ].join(\")(?=\")}).*$`\n);\n\n/**\n *@desc handling string validation - contain only alphabets not contain any characters, digits or empty\n */\nexport const IsStringValid = (value) => {\n // value.match(/^\\s*$/g) || !value.match(/^[A-Za-z0-9 ]+$/) || value.match(/\\d/)\n if (value.match(/^\\s*$/g)) {\n return false;\n }\n if (!value.match(/^[a-zA-Z]+$/)) {\n return false;\n }\n\n return true;\n};\n\nexport function calculateTotalPages(totalDataCount, rowsPerPage) {\n return Math.ceil(totalDataCount / rowsPerPage);\n}\n\nexport const getUsdToFstrPrice = async () => {\n const instance = webRequestHandler();\n try {\n const res = await instance.post(\n BASE_URL + EndpointsSlug.POST_CURRENCY_CONVERSION,\n {\n USD: 1,\n }\n );\n\n if (res.response?.statusEnum != 1) {\n throw new Error(\n res.response?.message || \"Couldnt get latest price from api\"\n );\n }\n\n let fstrPrice = res.response?.data?.platform_token?.split(\" \")[0];\n let fstrMarketPrice = res.response?.data?.market_token?.split(\" \")[0];\n let discount = res.response?.data?.discount?.split(\" \")[0];\n discount = Number(discount).toFixed(10);\n\n sessionStorage.setItem(\"USDPLATFORMFSTRKEY\", fstrPrice);\n sessionStorage.setItem(\"USDMARKETFSTRKEY\", fstrMarketPrice);\n sessionStorage.setItem(\"FSTRDISCOUNT\", discount);\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const convertUsdToFstrPrice = (usd) => {\n if (usd == undefined) {\n throw new Error(\"Must pass a valid usd price\");\n }\n\n // both number and string are valid usd types\n\n let sanitizedUsdPrice = String(usd)?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedUsdPrice.split(\".\").length > 2) {\n sanitizedUsdPrice =\n sanitizedUsdPrice.split(\".\")[0] + \".\" + sanitizedUsdPrice.split(\".\")[1];\n }\n\n const oneUsdToFstr = JSON.parse(sessionStorage.getItem(\"USDPLATFORMFSTRKEY\"));\n\n let fstrPrice = oneUsdToFstr * sanitizedUsdPrice;\n\n return fstrPrice.toFixed(6);\n};\n\n// Without Round off convert\nexport const convertActualUsdToFstrPrice = (usd) => {\n if (usd == undefined) {\n throw new Error(\"Must pass a valid usd price\");\n }\n\n // both number and string are valid usd types\n\n let sanitizedUsdPrice = String(usd)?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedUsdPrice.split(\".\").length > 2) {\n sanitizedUsdPrice =\n sanitizedUsdPrice.split(\".\")[0] + \".\" + sanitizedUsdPrice.split(\".\")[1];\n }\n\n const oneUsdToFstr = JSON.parse(sessionStorage.getItem(\"USDPLATFORMFSTRKEY\"));\n\n let fstrPrice = oneUsdToFstr * sanitizedUsdPrice;\n\n return fstrPrice;\n};\n// this function returns the price in usd against the market fstr token\nexport const convertUsdToMarketFstrUsd = (usd) => {\n if (usd == undefined) {\n throw new Error(\"Must pass a valid usd price\");\n }\n\n // both number and string are valid usd types\n\n let sanitizedUsdPrice = String(usd)?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedUsdPrice.split(\".\").length > 2) {\n sanitizedUsdPrice =\n sanitizedUsdPrice.split(\".\")[0] + \".\" + sanitizedUsdPrice.split(\".\")[1];\n }\n\n const fstrPltToken = JSON.parse(sessionStorage.getItem(\"USDPLATFORMFSTRKEY\"));\n const fstrMrktToken = JSON.parse(sessionStorage.getItem(\"USDMARKETFSTRKEY\"));\n\n let finalInUsd = Number((fstrPltToken / fstrMrktToken) * sanitizedUsdPrice);\n // let finalInUsd = Number((fstrMrktToken / fstrPltToken) * usd).toFixed(10);\n\n return finalInUsd;\n};\n\nexport const getFstrDiscount = () => {\n return JSON.parse(sessionStorage.getItem(\"FSTRDISCOUNT\"));\n};\n\nexport const sanitizeStringToNumber = (price) => {\n price = String(price);\n let sanitizedPrice = price?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedPrice.split(\".\").length > 2) {\n sanitizedPrice =\n sanitizedPrice.split(\".\")[0] + \".\" + sanitizedPrice.split(\".\")[1];\n }\n\n return sanitizedPrice;\n};\nexport function cropWithEllipsis(str, maxLength) {\n if (str?.length > maxLength) {\n return str?.substring(0, maxLength - 3) + \"...\";\n }\n return str;\n}\n\nexport function removeTrailingZeroes(number) {\n // Convert the number to a string to remove trailing zeroes\n const numberwithDecimal = Number(number).toFixed(4);\n const numberString = numberwithDecimal.toString();\n\n // Convert the string back to a number\n const trimmedNumber = parseFloat(numberString);\n\n return trimmedNumber;\n}\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-Profile-Reducer-functions\n *@developer Aditya P\n */\n\n// Handling State function or logics of User Authentication Module\n// Replace the CreateSlice method with RTK function - createAPI for storing api data directly into slicer\nexport const UserProfile = createApi({\n reducerPath: \"UserProfile\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n tagTypes: [\"walletAddress\"], // Add tag for invalodated cache\n endpoints: (builder) => ({\n GetUserProfileByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_PROFILE,\n method: \"GET\",\n }),\n }),\n UpdateUserInfoDataByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UPD_USER_INFO,\n method: \"PATCH\",\n body: payload,\n }),\n }),\n ValidateUsername: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.USERNAME_VALIDATOR,\n method: \"POST\",\n body: payload,\n }),\n }),\n UpdateUsernameWithGenderAndDob: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.ADD_USER_INFO,\n method: \"PATCH\",\n body: payload,\n }),\n }),\n UpdateUserProfilePhotoByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UPD_USER_PROFILE_PHOTO,\n method: \"PATCH\",\n body: {\n photoUrl: payload,\n },\n }),\n }),\n RemoveUserProfilePhotoByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REM_USER_PROFILE_PHOTO,\n method: \"PATCH\",\n body: payload,\n }),\n }),\n UpdateUserPasswordByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UPD_USER_USER_CHANGE_PASSWORD,\n method: \"PATCH\",\n body: payload,\n }),\n }),\n GetUserPreferenceByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_PREFERENCE,\n method: \"GET\",\n }),\n }),\n GetUserTagsByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_TAGS,\n method: \"GET\",\n }),\n }),\n UpdateUserPreferenceByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UPD_USER_PREFERENCE,\n method: \"PATCH\",\n body: payload,\n }),\n }),\n UpdateUserTagsByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UPD_USER_TAGS,\n method: \"PATCH\",\n body: {\n tags: payload,\n },\n }),\n }),\n GetUserSuggestedTagsByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_SUGGESTED_TAGS,\n method: \"GET\",\n }),\n }),\n GetSingleUserAssetsByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_SINGLE_USER_ASSETS,\n method: \"GET\",\n }),\n }),\n GetSingleUserSubscribedChannel: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_SINGLE_USER_SUBSCRIBED_CHANNEL,\n method: \"GET\",\n }),\n }),\n UpdateFileName: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.FILE_NAME_GENERATE,\n method: \"POST\",\n body: {\n mimetype: payload.mimetype,\n path: payload.path,\n },\n }),\n }),\n UpdateUserFilePhoto: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.FILE_USER_UPLOAD,\n method: \"POST\",\n body: {\n fileId: payload,\n },\n }),\n }),\n UpdateAccountPrivate: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UPDATE_ACCOUNT_PRIVATE,\n method: \"PATCH\",\n // body: {\n // fileId: payload,\n // },\n }),\n }),\n DeleteUserOtp: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.DELETE_USER_OTP,\n method: \"POST\",\n // body: {\n // fileId: payload,\n // },\n }),\n }),\n DeleteUser: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.DELETE_USER,\n method: \"PATCH\",\n body: {\n otp: payload.otp,\n password: payload.password,\n },\n }),\n }),\n GetUserWalletList: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_WALLET_LIST,\n method: \"GET\",\n }),\n providesTags: [\"walletAddress\"],\n }),\n AddUserWalletAddress: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.ADD_USER_WALLET_ADDRESS,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"walletAddress\"],\n }),\n RemoveUserWalletAddress: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REMOVE_USER_WALLET_ADDRESS,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"walletAddress\"],\n }),\n }),\n});\n\nexport const {\n useGetUserProfileByTokenQuery,\n useLazyGetUserProfileByTokenQuery,\n useUpdateUserInfoDataByTokenMutation,\n useValidateUsernameMutation,\n useUpdateUsernameWithGenderAndDobMutation,\n useRemoveUserProfilePhotoByTokenMutation,\n useUpdateUserProfilePhotoByTokenMutation,\n useUpdateUserPasswordByTokenMutation,\n useGetUserPreferenceByTokenQuery,\n useGetUserTagsByTokenQuery,\n useUpdateUserPreferenceByTokenMutation,\n useUpdateUserTagsByTokenMutation,\n useGetUserSuggestedTagsByTokenQuery,\n useGetSingleUserAssetsByTokenQuery,\n useLazyGetSingleUserAssetsByTokenQuery,\n useGetSingleUserSubscribedChannelQuery,\n useUpdateFileNameMutation,\n useUpdateUserFilePhotoMutation,\n useUpdateAccountPrivateMutation,\n useDeleteUserOtpMutation,\n useDeleteUserMutation,\n useGetUserWalletListQuery,\n useAddUserWalletAddressMutation,\n useRemoveUserWalletAddressMutation\n} = UserProfile;\n","import React, { useEffect } from \"react\";\nimport AssetMusicIcon from \"assets/images/myassets/ph_play-fill.png\";\nimport { Link } from \"react-router-dom\";\nimport {\n convertUsdToFstrPrice,\n cropWithEllipsis,\n removeTrailingZeroes,\n} from \"utils\";\nimport { useLazyGetSingleUserAssetsByTokenQuery } from \"store/slicer/userProfile\";\n\nconst AssetCardOpen = ({\n cardClass,\n title,\n isComing,\n Mkey,\n category,\n baseRoute,\n image,\n channelID,\n contentID,\n price,\n star,\n setShowComingSoonPopup,\n myAsset = false,\n itemId = \"\",\n}) => {\n const clothingLink = baseRoute + \"/\" + title?.split(\" \").join(\"-\");\n\n // fetching all user assets here and checking if user already owns this asset, calling this here wouldnt create an issue since the request will be cached and its better than calling this api in every page\n let [\n GetSingleUserAssetsByToken,\n { data: userAssetsData, isFetching, isSuccess, isError },\n ] = useLazyGetSingleUserAssetsByTokenQuery();\n\n if (!isFetching && isSuccess && userAssetsData?.response?.statusEnum == 1) {\n userAssetsData = userAssetsData?.response?.data;\n userAssetsData = userAssetsData.map((item) => item.content_id);\n } else {\n userAssetsData = [];\n }\n const handleClick = () => {\n if (isComing) {\n setShowComingSoonPopup && setShowComingSoonPopup(true);\n }\n };\n let userOwnsAsset = false;\n\n if (userAssetsData.includes(itemId)) {\n userOwnsAsset = true;\n }\n\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetSingleUserAssetsByToken();\n }, []);\n return (\n <Link\n to={`${\n !isComing\n ? category === \"CLOTHLAN\"\n ? clothingLink\n : baseRoute + \"/\" + channelID + \"/\" + contentID\n : \"#\"\n }`}\n onClick={handleClick}\n >\n <div className={cardClass.cardMainclass}>\n <div\n className={cardClass.cardMediaClass}\n style={{\n backgroundImage: `url('${image}')`,\n }}\n onError={({ target }) => {\n // Hide the div if the image fails to load\n target.style.display = \"none\";\n }}\n >\n {Mkey === \"music\" ? (\n <div className=\"w-[50px] h-[50px]\">\n <img src={AssetMusicIcon} alt=\"music+icon\" />\n </div>\n ) : image === null ? (\n <></>\n ) : (\n <img src={image} className=\"w-full object-cover rounded-[10px]\" />\n )}\n </div>\n <h5 title={title} className={cardClass.cardtitleClass}>\n {cropWithEllipsis(title, 22)}\n </h5>\n {userOwnsAsset && (\n <span className=\"text-[14px] font-body font-bold bg-[#FBBC5E]/5 px-2 py-1 rounded-[4px] text-[#6BFEF6]\">\n Added to assets\n </span>\n )}\n {!userOwnsAsset &&\n !isComing &&\n price &&\n price.toLowerCase() == \"free\" && (\n <span className=\"text-[14px] font-body font-bold bg-[#FBBC5E]/5 px-2 py-1 rounded-[4px]\">\n Free\n </span>\n )}\n {!userOwnsAsset &&\n !isComing &&\n price &&\n price.toLowerCase() != \"free\" && (\n <span className=\"text-[14px] font-body font-bold bg-[#FBBC5E]/5 px-2 py-1 rounded-[4px] whitespace-nowrap\">\n {removeTrailingZeroes(\n convertUsdToFstrPrice(price.split(\" \")[0])\n ) +\n \" FSTR \" +\n \"( \" +\n Number(price.split(\" \")[0]).toFixed(2) +\n \" \" +\n price.split(\" \")[1] +\n \" )\"}\n {/* {star\n ? Number(star).toFixed(2) +\n \" FSTR \" +\n \"( \" +\n Number(price.split(\" \")[0]).toFixed(2) +\n \" \" +\n price.split(\" \")[1] +\n \" )\"\n : Number(price.split(\" \")[0]).toFixed(2) +\n \" \" +\n price.split(\" \")[1]} */}\n </span>\n )}\n {isComing && (\n <span className=\"text-[14px] px-[6px] py-1 font-body text-[#F3A151] font-medium\">\n Coming Soon\n </span>\n )}\n {(title === \"Starlight Celestial Suit\" && <></>) ||\n (title === \"Stellar Sentinel Armor\" && <></>) ||\n (category === \"CLOTHLAN\" && (\n <span className=\"pl-[6px] font-body px-[6px] py-1 text-[#F3A151] font-medium\">\n Coming Soon\n </span>\n ))}\n </div>\n </Link>\n );\n};\n\nexport default AssetCardOpen;\n","import React from 'react'\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Generic-Outline-Button\n *@developer Aditya P\n */\n\nconst OutlineButton = ({btnclass, btntext}) => {\n return <button className={btnclass}>{btntext}</button>\n\n}\n\nexport default OutlineButton","import React from \"react\";\nimport OutlineButton from \"components/buttons/outline-button/OutlineButton\";\nimport { Link } from \"react-router-dom\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Explore-Marketplace-Default-button\n *@developer Aditya P\n */\n\nconst Explore = () => {\n return (\n <div className=\"__assets_default_explore_main\">\n <div className=\"__explore_container text-center\">\n <p className=\"font-medium text-[grey]\">\n You don't have anything in your assets\n </p>\n <Link to=\"/marketplace\">\n <OutlineButton\n btnclass=\"border-[2px] \n text-[#fff] \n font-medium \n border-[#FBBC5E4D] \n mt-[25px] \n py-[3px] \n text-[14px] \n px-[30px] \n rounded-[7px] \n hover:bg-[#FBBC5E4D] \n hover:text-[#fff] \n hover:border-[#FBBC5E4D]\n max-[768px]:text-[9px]\n max-[768px]:px-[15px]\n max-[768px]:mt-[15px]\n max-[1280px]:text-[10px]\n max-[1280px]:px-[13px]\n max-[1280px]:mt-[15px]\n \"\n btntext=\"Explore Marketplace\"\n />\n </Link>\n </div>\n </div>\n );\n};\n\nexport default Explore;\n","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport isHostComponent from '../isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}\nexport default appendOwnerState;","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default extractEventHandlers;","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default omitEventHandlers;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport extractEventHandlers from '../extractEventHandlers';\nimport omitEventHandlers from '../omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\nexport default mergeSlotProps;","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\nexport default resolveComponentProps;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport useForkRef from '../useForkRef';\nimport appendOwnerState from '../appendOwnerState';\nimport mergeSlotProps from '../mergeSlotProps';\nimport resolveComponentProps from '../resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nfunction useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}\nexport default useSlotProps;","'use client';\n\n/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n if (node.contentEditable === 'true' || (node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO' || node.nodeName === 'DETAILS') && node.getAttribute('tabindex') === null) {\n return 0;\n }\n return node.tabIndex;\n}\nfunction isNonTabbableRadio(node) {\n if (node.tagName !== 'INPUT' || node.type !== 'radio') {\n return false;\n }\n if (!node.name) {\n return false;\n }\n const getRadio = selector => node.ownerDocument.querySelector(`input[type=\"radio\"]${selector}`);\n let roving = getRadio(`[name=\"${node.name}\"]:checked`);\n if (!roving) {\n roving = getRadio(`[name=\"${node.name}\"]`);\n }\n return roving !== node;\n}\nfunction isNodeMatchingSelectorFocusable(node) {\n if (node.disabled || node.tagName === 'INPUT' && node.type === 'hidden' || isNonTabbableRadio(node)) {\n return false;\n }\n return true;\n}\nfunction defaultGetTabbable(root) {\n const regularTabNodes = [];\n const orderedTabNodes = [];\n Array.from(root.querySelectorAll(candidatesSelector)).forEach((node, i) => {\n const nodeTabIndex = getTabIndex(node);\n if (nodeTabIndex === -1 || !isNodeMatchingSelectorFocusable(node)) {\n return;\n }\n if (nodeTabIndex === 0) {\n regularTabNodes.push(node);\n } else {\n orderedTabNodes.push({\n documentOrder: i,\n tabIndex: nodeTabIndex,\n node: node\n });\n }\n });\n return orderedTabNodes.sort((a, b) => a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex).map(a => a.node).concat(regularTabNodes);\n}\nfunction defaultIsEnabled() {\n return true;\n}\n\n/**\n * @ignore - internal component.\n */\nfunction FocusTrap(props) {\n const {\n children,\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableRestoreFocus = false,\n getTabbable = defaultGetTabbable,\n isEnabled = defaultIsEnabled,\n open\n } = props;\n const ignoreNextEnforceFocus = React.useRef(false);\n const sentinelStart = React.useRef(null);\n const sentinelEnd = React.useRef(null);\n const nodeToRestore = React.useRef(null);\n const reactFocusEventTarget = React.useRef(null);\n // This variable is useful when disableAutoFocus is true.\n // It waits for the active element to move into the component to activate.\n const activated = React.useRef(false);\n const rootRef = React.useRef(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef(children.ref, rootRef);\n const lastKeydown = React.useRef(null);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n activated.current = !disableAutoFocus;\n }, [disableAutoFocus, open]);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n const doc = ownerDocument(rootRef.current);\n if (!rootRef.current.contains(doc.activeElement)) {\n if (!rootRef.current.hasAttribute('tabIndex')) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(['MUI: The modal content node does not accept focus.', 'For the benefit of assistive technologies, ' + 'the tabIndex of the node is being set to \"-1\".'].join('\\n'));\n }\n rootRef.current.setAttribute('tabIndex', '-1');\n }\n if (activated.current) {\n rootRef.current.focus();\n }\n }\n return () => {\n // restoreLastFocus()\n if (!disableRestoreFocus) {\n // In IE11 it is possible for document.activeElement to be null resulting\n // in nodeToRestore.current being null.\n // Not all elements in IE11 have a focus method.\n // Once IE11 support is dropped the focus() call can be unconditional.\n if (nodeToRestore.current && nodeToRestore.current.focus) {\n ignoreNextEnforceFocus.current = true;\n nodeToRestore.current.focus();\n }\n nodeToRestore.current = null;\n }\n };\n // Missing `disableRestoreFocus` which is fine.\n // We don't support changing that prop on an open FocusTrap\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n React.useEffect(() => {\n // We might render an empty child.\n if (!open || !rootRef.current) {\n return;\n }\n const doc = ownerDocument(rootRef.current);\n const loopFocus = nativeEvent => {\n lastKeydown.current = nativeEvent;\n if (disableEnforceFocus || !isEnabled() || nativeEvent.key !== 'Tab') {\n return;\n }\n\n // Make sure the next tab starts from the right place.\n // doc.activeElement refers to the origin.\n if (doc.activeElement === rootRef.current && nativeEvent.shiftKey) {\n // We need to ignore the next contain as\n // it will try to move the focus back to the rootRef element.\n ignoreNextEnforceFocus.current = true;\n if (sentinelEnd.current) {\n sentinelEnd.current.focus();\n }\n }\n };\n const contain = () => {\n const rootElement = rootRef.current;\n\n // Cleanup functions are executed lazily in React 17.\n // Contain can be called between the component being unmounted and its cleanup function being run.\n if (rootElement === null) {\n return;\n }\n if (!doc.hasFocus() || !isEnabled() || ignoreNextEnforceFocus.current) {\n ignoreNextEnforceFocus.current = false;\n return;\n }\n\n // The focus is already inside\n if (rootElement.contains(doc.activeElement)) {\n return;\n }\n\n // The disableEnforceFocus is set and the focus is outside of the focus trap (and sentinel nodes)\n if (disableEnforceFocus && doc.activeElement !== sentinelStart.current && doc.activeElement !== sentinelEnd.current) {\n return;\n }\n\n // if the focus event is not coming from inside the children's react tree, reset the refs\n if (doc.activeElement !== reactFocusEventTarget.current) {\n reactFocusEventTarget.current = null;\n } else if (reactFocusEventTarget.current !== null) {\n return;\n }\n if (!activated.current) {\n return;\n }\n let tabbable = [];\n if (doc.activeElement === sentinelStart.current || doc.activeElement === sentinelEnd.current) {\n tabbable = getTabbable(rootRef.current);\n }\n\n // one of the sentinel nodes was focused, so move the focus\n // to the first/last tabbable element inside the focus trap\n if (tabbable.length > 0) {\n var _lastKeydown$current, _lastKeydown$current2;\n const isShiftTab = Boolean(((_lastKeydown$current = lastKeydown.current) == null ? void 0 : _lastKeydown$current.shiftKey) && ((_lastKeydown$current2 = lastKeydown.current) == null ? void 0 : _lastKeydown$current2.key) === 'Tab');\n const focusNext = tabbable[0];\n const focusPrevious = tabbable[tabbable.length - 1];\n if (typeof focusNext !== 'string' && typeof focusPrevious !== 'string') {\n if (isShiftTab) {\n focusPrevious.focus();\n } else {\n focusNext.focus();\n }\n }\n // no tabbable elements in the trap focus or the focus was outside of the focus trap\n } else {\n rootElement.focus();\n }\n };\n doc.addEventListener('focusin', contain);\n doc.addEventListener('keydown', loopFocus, true);\n\n // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area.\n // for example https://bugzilla.mozilla.org/show_bug.cgi?id=559561.\n // Instead, we can look if the active element was restored on the BODY element.\n //\n // The whatwg spec defines how the browser should behave but does not explicitly mention any events:\n // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.\n const interval = setInterval(() => {\n if (doc.activeElement && doc.activeElement.tagName === 'BODY') {\n contain();\n }\n }, 50);\n return () => {\n clearInterval(interval);\n doc.removeEventListener('focusin', contain);\n doc.removeEventListener('keydown', loopFocus, true);\n };\n }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open, getTabbable]);\n const onFocus = event => {\n if (nodeToRestore.current === null) {\n nodeToRestore.current = event.relatedTarget;\n }\n activated.current = true;\n reactFocusEventTarget.current = event.target;\n const childrenPropsHandler = children.props.onFocus;\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const handleFocusSentinel = event => {\n if (nodeToRestore.current === null) {\n nodeToRestore.current = event.relatedTarget;\n }\n activated.current = true;\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n tabIndex: open ? 0 : -1,\n onFocus: handleFocusSentinel,\n ref: sentinelStart,\n \"data-testid\": \"sentinelStart\"\n }), /*#__PURE__*/React.cloneElement(children, {\n ref: handleRef,\n onFocus\n }), /*#__PURE__*/_jsx(\"div\", {\n tabIndex: open ? 0 : -1,\n onFocus: handleFocusSentinel,\n ref: sentinelEnd,\n \"data-testid\": \"sentinelEnd\"\n })]\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? FocusTrap.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A single child content element.\n */\n children: elementAcceptingRef,\n /**\n * If `true`, the focus trap will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any focus trap children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the focus trap less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the focus trap will not prevent focus from leaving the focus trap while open.\n *\n * Generally this should never be set to `true` as it makes the focus trap less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, the focus trap will not restore focus to previously focused element once\n * focus trap is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Returns an array of ordered tabbable nodes (i.e. in tab order) within the root.\n * For instance, you can provide the \"tabbable\" npm dependency.\n * @param {HTMLElement} root\n */\n getTabbable: PropTypes.func,\n /**\n * This prop extends the `open` prop.\n * It allows to toggle the open state without having to wait for a rerender when changing the `open` prop.\n * This prop should be memoized.\n * It can be used to support multiple focus trap mounted at the same time.\n * @default function defaultIsEnabled(): boolean {\n * return true;\n * }\n */\n isEnabled: PropTypes.func,\n /**\n * If `true`, focus is locked.\n */\n open: PropTypes.bool.isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n FocusTrap['propTypes' + ''] = exactProp(FocusTrap.propTypes);\n}\nexport default FocusTrap;","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/material-ui/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/material-ui/api/portal/)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport default Portal;","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\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\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","'use client';\n\nimport * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme[THEME_ID] || theme;\n}","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst styles = {\n entering: {\n opacity: 1\n },\n entered: {\n opacity: 1\n }\n};\n\n/**\n * The Fade transition is used by the [Modal](/material-ui/react-modal/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {\n const theme = useTheme();\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const enableStrictModeCompat = true;\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);\n node.style.transition = theme.transitions.create('opacity', transitionProps);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: enableStrictModeCompat ? nodeRef : undefined,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Fade.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Fade;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getBackdropUtilityClass(slot) {\n return generateUtilityClass('MuiBackdrop', slot);\n}\nconst backdropClasses = generateUtilityClasses('MuiBackdrop', ['root', 'invisible']);\nexport default backdropClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"components\", \"componentsProps\", \"invisible\", \"open\", \"slotProps\", \"slots\", \"TransitionComponent\", \"transitionDuration\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Fade from '../Fade';\nimport { getBackdropUtilityClass } from './backdropClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n invisible\n } = ownerState;\n const slots = {\n root: ['root', invisible && 'invisible']\n };\n return composeClasses(slots, getBackdropUtilityClass, classes);\n};\nconst BackdropRoot = styled('div', {\n name: 'MuiBackdrop',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.invisible && styles.invisible];\n }\n})(({\n ownerState\n}) => _extends({\n position: 'fixed',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n right: 0,\n bottom: 0,\n top: 0,\n left: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n WebkitTapHighlightColor: 'transparent'\n}, ownerState.invisible && {\n backgroundColor: 'transparent'\n}));\nconst Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {\n var _slotProps$root, _ref, _slots$root;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiBackdrop'\n });\n const {\n children,\n className,\n component = 'div',\n components = {},\n componentsProps = {},\n invisible = false,\n open,\n slotProps = {},\n slots = {},\n TransitionComponent = Fade,\n transitionDuration\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n invisible\n });\n const classes = useUtilityClasses(ownerState);\n const rootSlotProps = (_slotProps$root = slotProps.root) != null ? _slotProps$root : componentsProps.root;\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: open,\n timeout: transitionDuration\n }, other, {\n children: /*#__PURE__*/_jsx(BackdropRoot, _extends({\n \"aria-hidden\": true\n }, rootSlotProps, {\n as: (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : component,\n className: clsx(classes.root, className, rootSlotProps == null ? void 0 : rootSlotProps.className),\n ownerState: _extends({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),\n classes: classes,\n ref: ref,\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Backdrop.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * If `true`, the backdrop is invisible.\n * It can be used when rendering a popover or a custom select component.\n * @default false\n */\n invisible: PropTypes.bool,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Backdrop;","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(doc) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = doc.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}","import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = ownerDocument(container);\n if (doc.body === container) {\n return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n }\n return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(element, show) {\n if (show) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\nfunction getPaddingRight(element) {\n return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\nfunction isAriaHiddenForbiddenOnElement(element) {\n // The forbidden HTML tags are the ones from ARIA specification that\n // can be children of body and can't have aria-hidden attribute.\n // cf. https://www.w3.org/TR/html-aria/#docconformance\n const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];\n const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;\n const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n [].forEach.call(container.children, element => {\n const isNotExcludedElement = blacklist.indexOf(element) === -1;\n const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n if (isNotExcludedElement && isNotForbiddenElement) {\n ariaHidden(element, show);\n }\n });\n}\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n return false;\n });\n return idx;\n}\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = getScrollbarSize(ownerDocument(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n });\n // Use computed style, here to get the real padding to add our scrollbar width.\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;\n\n // .mui-fixed is a global helper.\n const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n }\n let scrollContainer;\n if (container.parentNode instanceof DocumentFragment) {\n scrollContainer = ownerDocument(container).body;\n } else {\n // Support html overflow-y: auto for scroll stability between pages\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n const parent = container.parentElement;\n const containerWindow = ownerWindow(container);\n scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;\n }\n\n // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n return restore;\n}\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport class ModalManager {\n constructor() {\n this.containers = void 0;\n this.modals = void 0;\n this.modals = [];\n this.containers = [];\n }\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n if (modalIndex !== -1) {\n return modalIndex;\n }\n modalIndex = this.modals.length;\n this.modals.push(modal);\n\n // If the modal we are adding is already in the DOM.\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n remove(modal, ariaHiddenState = true) {\n const modalIndex = this.modals.indexOf(modal);\n if (modalIndex === -1) {\n return modalIndex;\n }\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1);\n\n // If that was the last modal in a container, clean up the container.\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, ariaHiddenState);\n }\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1];\n // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n return modalIndex;\n }\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\nimport { ModalManager, ariaHidden } from './ModalManager';\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\nfunction getHasTransition(children) {\n return children ? children.props.hasOwnProperty('in') : false;\n}\n\n// A modal manager used to track and manage the state of open Modals.\n// Modals don't open on the server so this won't conflict with concurrent requests.\nconst defaultManager = new ModalManager();\n/**\n *\n * Demos:\n *\n * - [Modal](https://mui.com/base-ui/react-modal/#hook)\n *\n * API:\n *\n * - [useModal API](https://mui.com/base-ui/react-modal/hooks-api/#use-modal)\n */\nfunction useModal(parameters) {\n const {\n container,\n disableEscapeKeyDown = false,\n disableScrollLock = false,\n // @ts-ignore internal logic - Base UI supports the manager as a prop too\n manager = defaultManager,\n closeAfterTransition = false,\n onTransitionEnter,\n onTransitionExited,\n children,\n onClose,\n open,\n rootRef\n } = parameters;\n\n // @ts-ignore internal logic\n const modal = React.useRef({});\n const mountNodeRef = React.useRef(null);\n const modalRef = React.useRef(null);\n const handleRef = useForkRef(modalRef, rootRef);\n const [exited, setExited] = React.useState(!open);\n const hasTransition = getHasTransition(children);\n let ariaHiddenProp = true;\n if (parameters['aria-hidden'] === 'false' || parameters['aria-hidden'] === false) {\n ariaHiddenProp = false;\n }\n const getDoc = () => ownerDocument(mountNodeRef.current);\n const getModal = () => {\n modal.current.modalRef = modalRef.current;\n modal.current.mount = mountNodeRef.current;\n return modal.current;\n };\n const handleMounted = () => {\n manager.mount(getModal(), {\n disableScrollLock\n });\n\n // Fix a bug on Chrome where the scroll isn't initially 0.\n if (modalRef.current) {\n modalRef.current.scrollTop = 0;\n }\n };\n const handleOpen = useEventCallback(() => {\n const resolvedContainer = getContainer(container) || getDoc().body;\n manager.add(getModal(), resolvedContainer);\n\n // The element was already mounted.\n if (modalRef.current) {\n handleMounted();\n }\n });\n const isTopModal = React.useCallback(() => manager.isTopModal(getModal()), [manager]);\n const handlePortalRef = useEventCallback(node => {\n mountNodeRef.current = node;\n if (!node) {\n return;\n }\n if (open && isTopModal()) {\n handleMounted();\n } else if (modalRef.current) {\n ariaHidden(modalRef.current, ariaHiddenProp);\n }\n });\n const handleClose = React.useCallback(() => {\n manager.remove(getModal(), ariaHiddenProp);\n }, [ariaHiddenProp, manager]);\n React.useEffect(() => {\n return () => {\n handleClose();\n };\n }, [handleClose]);\n React.useEffect(() => {\n if (open) {\n handleOpen();\n } else if (!hasTransition || !closeAfterTransition) {\n handleClose();\n }\n }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);\n const createHandleKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n if (event.key !== 'Escape' || event.which === 229 ||\n // Wait until IME is settled.\n !isTopModal()) {\n return;\n }\n if (!disableEscapeKeyDown) {\n // Swallow the event, in case someone is listening for the escape key on the body.\n event.stopPropagation();\n if (onClose) {\n onClose(event, 'escapeKeyDown');\n }\n }\n };\n const createHandleBackdropClick = otherHandlers => event => {\n var _otherHandlers$onClic;\n (_otherHandlers$onClic = otherHandlers.onClick) == null || _otherHandlers$onClic.call(otherHandlers, event);\n if (event.target !== event.currentTarget) {\n return;\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const getRootProps = (otherHandlers = {}) => {\n const propsEventHandlers = extractEventHandlers(parameters);\n\n // The custom event handlers shouldn't be spread on the root element\n delete propsEventHandlers.onTransitionEnter;\n delete propsEventHandlers.onTransitionExited;\n const externalEventHandlers = _extends({}, propsEventHandlers, otherHandlers);\n return _extends({\n role: 'presentation'\n }, externalEventHandlers, {\n onKeyDown: createHandleKeyDown(externalEventHandlers),\n ref: handleRef\n });\n };\n const getBackdropProps = (otherHandlers = {}) => {\n const externalEventHandlers = otherHandlers;\n return _extends({\n 'aria-hidden': true\n }, externalEventHandlers, {\n onClick: createHandleBackdropClick(externalEventHandlers),\n open\n });\n };\n const getTransitionProps = () => {\n const handleEnter = () => {\n setExited(false);\n if (onTransitionEnter) {\n onTransitionEnter();\n }\n };\n const handleExited = () => {\n setExited(true);\n if (onTransitionExited) {\n onTransitionExited();\n }\n if (closeAfterTransition) {\n handleClose();\n }\n };\n return {\n onEnter: createChainedFunction(handleEnter, children == null ? void 0 : children.props.onEnter),\n onExited: createChainedFunction(handleExited, children == null ? void 0 : children.props.onExited)\n };\n };\n return {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n rootRef: handleRef,\n portalRef: handlePortalRef,\n isTopModal,\n exited,\n hasTransition\n };\n}\nexport default useModal;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getModalUtilityClass(slot) {\n return generateUtilityClass('MuiModal', slot);\n}\nconst modalClasses = generateUtilityClasses('MuiModal', ['root', 'hidden', 'backdrop']);\nexport default modalClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"BackdropComponent\", \"BackdropProps\", \"classes\", \"className\", \"closeAfterTransition\", \"children\", \"container\", \"component\", \"components\", \"componentsProps\", \"disableAutoFocus\", \"disableEnforceFocus\", \"disableEscapeKeyDown\", \"disablePortal\", \"disableRestoreFocus\", \"disableScrollLock\", \"hideBackdrop\", \"keepMounted\", \"onBackdropClick\", \"onClose\", \"onTransitionEnter\", \"onTransitionExited\", \"open\", \"slotProps\", \"slots\", \"theme\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport FocusTrap from '../Unstable_TrapFocus';\nimport Portal from '../Portal';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Backdrop from '../Backdrop';\nimport useModal from './useModal';\nimport { getModalUtilityClass } from './modalClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n open,\n exited,\n classes\n } = ownerState;\n const slots = {\n root: ['root', !open && exited && 'hidden'],\n backdrop: ['backdrop']\n };\n return composeClasses(slots, getModalUtilityClass, classes);\n};\nconst ModalRoot = styled('div', {\n name: 'MuiModal',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.open && ownerState.exited && styles.hidden];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'fixed',\n zIndex: (theme.vars || theme).zIndex.modal,\n right: 0,\n bottom: 0,\n top: 0,\n left: 0\n}, !ownerState.open && ownerState.exited && {\n visibility: 'hidden'\n}));\nconst ModalBackdrop = styled(Backdrop, {\n name: 'MuiModal',\n slot: 'Backdrop',\n overridesResolver: (props, styles) => {\n return styles.backdrop;\n }\n})({\n zIndex: -1\n});\n\n/**\n * Modal is a lower-level construct that is leveraged by the following components:\n *\n * - [Dialog](/material-ui/api/dialog/)\n * - [Drawer](/material-ui/api/drawer/)\n * - [Menu](/material-ui/api/menu/)\n * - [Popover](/material-ui/api/popover/)\n *\n * If you are creating a modal dialog, you probably want to use the [Dialog](/material-ui/api/dialog/) component\n * rather than directly using Modal.\n *\n * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).\n */\nconst Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {\n var _ref, _slots$root, _ref2, _slots$backdrop, _slotProps$root, _slotProps$backdrop;\n const props = useDefaultProps({\n name: 'MuiModal',\n props: inProps\n });\n const {\n BackdropComponent = ModalBackdrop,\n BackdropProps,\n className,\n closeAfterTransition = false,\n children,\n container,\n component,\n components = {},\n componentsProps = {},\n disableAutoFocus = false,\n disableEnforceFocus = false,\n disableEscapeKeyDown = false,\n disablePortal = false,\n disableRestoreFocus = false,\n disableScrollLock = false,\n hideBackdrop = false,\n keepMounted = false,\n onBackdropClick,\n open,\n slotProps,\n slots\n // eslint-disable-next-line react/prop-types\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const propsWithDefaults = _extends({}, props, {\n closeAfterTransition,\n disableAutoFocus,\n disableEnforceFocus,\n disableEscapeKeyDown,\n disablePortal,\n disableRestoreFocus,\n disableScrollLock,\n hideBackdrop,\n keepMounted\n });\n const {\n getRootProps,\n getBackdropProps,\n getTransitionProps,\n portalRef,\n isTopModal,\n exited,\n hasTransition\n } = useModal(_extends({}, propsWithDefaults, {\n rootRef: ref\n }));\n const ownerState = _extends({}, propsWithDefaults, {\n exited\n });\n const classes = useUtilityClasses(ownerState);\n const childProps = {};\n if (children.props.tabIndex === undefined) {\n childProps.tabIndex = '-1';\n }\n\n // It's a Transition like component\n if (hasTransition) {\n const {\n onEnter,\n onExited\n } = getTransitionProps();\n childProps.onEnter = onEnter;\n childProps.onExited = onExited;\n }\n const RootSlot = (_ref = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components.Root) != null ? _ref : ModalRoot;\n const BackdropSlot = (_ref2 = (_slots$backdrop = slots == null ? void 0 : slots.backdrop) != null ? _slots$backdrop : components.Backdrop) != null ? _ref2 : BackdropComponent;\n const rootSlotProps = (_slotProps$root = slotProps == null ? void 0 : slotProps.root) != null ? _slotProps$root : componentsProps.root;\n const backdropSlotProps = (_slotProps$backdrop = slotProps == null ? void 0 : slotProps.backdrop) != null ? _slotProps$backdrop : componentsProps.backdrop;\n const rootProps = useSlotProps({\n elementType: RootSlot,\n externalSlotProps: rootSlotProps,\n externalForwardedProps: other,\n getSlotProps: getRootProps,\n additionalProps: {\n ref,\n as: component\n },\n ownerState,\n className: clsx(className, rootSlotProps == null ? void 0 : rootSlotProps.className, classes == null ? void 0 : classes.root, !ownerState.open && ownerState.exited && (classes == null ? void 0 : classes.hidden))\n });\n const backdropProps = useSlotProps({\n elementType: BackdropSlot,\n externalSlotProps: backdropSlotProps,\n additionalProps: BackdropProps,\n getSlotProps: otherHandlers => {\n return getBackdropProps(_extends({}, otherHandlers, {\n onClick: e => {\n if (onBackdropClick) {\n onBackdropClick(e);\n }\n if (otherHandlers != null && otherHandlers.onClick) {\n otherHandlers.onClick(e);\n }\n }\n }));\n },\n className: clsx(backdropSlotProps == null ? void 0 : backdropSlotProps.className, BackdropProps == null ? void 0 : BackdropProps.className, classes == null ? void 0 : classes.backdrop),\n ownerState\n });\n if (!keepMounted && !open && (!hasTransition || exited)) {\n return null;\n }\n return /*#__PURE__*/_jsx(Portal, {\n ref: portalRef,\n container: container,\n disablePortal: disablePortal,\n children: /*#__PURE__*/_jsxs(RootSlot, _extends({}, rootProps, {\n children: [!hideBackdrop && BackdropComponent ? /*#__PURE__*/_jsx(BackdropSlot, _extends({}, backdropProps)) : null, /*#__PURE__*/_jsx(FocusTrap, {\n disableEnforceFocus: disableEnforceFocus,\n disableAutoFocus: disableAutoFocus,\n disableRestoreFocus: disableRestoreFocus,\n isEnabled: isTopModal,\n open: open,\n children: /*#__PURE__*/React.cloneElement(children, childProps)\n })]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Modal.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Backdrop`](/material-ui/api/backdrop/) element.\n * @deprecated Use `slotProps.backdrop` instead.\n */\n BackdropProps: PropTypes.object,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * When set to true the Modal waits until a nested Transition is completed before closing.\n * @default false\n */\n closeAfterTransition: PropTypes.bool,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Backdrop: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * You can also provide a callback, which is called in a React layout effect.\n * This lets you set the container from a ref, and also makes server-side rendering possible.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true`, the modal will not automatically shift focus to itself when it opens, and\n * replace it to the last focused element when it closes.\n * This also works correctly with any modal children that have the `disableAutoFocus` prop.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableAutoFocus: PropTypes.bool,\n /**\n * If `true`, the modal will not prevent focus from leaving the modal while open.\n *\n * Generally this should never be set to `true` as it makes the modal less\n * accessible to assistive technologies, like screen readers.\n * @default false\n */\n disableEnforceFocus: PropTypes.bool,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * If `true`, the modal will not restore focus to previously focused element once\n * modal is hidden or unmounted.\n * @default false\n */\n disableRestoreFocus: PropTypes.bool,\n /**\n * Disable the scroll lock behavior.\n * @default false\n */\n disableScrollLock: PropTypes.bool,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Always keep the children in the DOM.\n * This prop can be useful in SEO situation or\n * when you want to maximize the responsiveness of the Modal.\n * @default false\n */\n keepMounted: PropTypes.bool,\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * A function called when a transition enters.\n */\n onTransitionEnter: PropTypes.func,\n /**\n * A function called when a transition has exited.\n */\n onTransitionExited: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The props used for each slot inside the Modal.\n * @default {}\n */\n slotProps: PropTypes.shape({\n backdrop: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside the Modal.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n backdrop: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Modal;","// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\nconst getOverlayAlpha = elevation => {\n let alphaValue;\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n return (alphaValue / 100).toFixed(2);\n};\nexport default getOverlayAlpha;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPaperUtilityClass(slot) {\n return generateUtilityClass('MuiPaper', slot);\n}\nconst paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);\nexport default paperClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"elevation\", \"square\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport styled from '../styles/styled';\nimport getOverlayAlpha from '../styles/getOverlayAlpha';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport useTheme from '../styles/useTheme';\nimport { getPaperUtilityClass } from './paperClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n square,\n elevation,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]\n };\n return composeClasses(slots, getPaperUtilityClass, classes);\n};\nconst PaperRoot = styled('div', {\n name: 'MuiPaper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$vars$overlays;\n return _extends({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n color: (theme.vars || theme).palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n }, !ownerState.square && {\n borderRadius: theme.shape.borderRadius\n }, ownerState.variant === 'outlined' && {\n border: `1px solid ${(theme.vars || theme).palette.divider}`\n }, ownerState.variant === 'elevation' && _extends({\n boxShadow: (theme.vars || theme).shadows[ownerState.elevation]\n }, !theme.vars && theme.palette.mode === 'dark' && {\n backgroundImage: `linear-gradient(${alpha('#fff', getOverlayAlpha(ownerState.elevation))}, ${alpha('#fff', getOverlayAlpha(ownerState.elevation))})`\n }, theme.vars && {\n backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation]\n }));\n});\nconst Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPaper'\n });\n const {\n className,\n component = 'div',\n elevation = 1,\n square = false,\n variant = 'elevation'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n elevation,\n square,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const theme = useTheme();\n if (theme.shadows[elevation] === undefined) {\n console.error([`MUI: The elevation provided <Paper elevation={${elevation}}> is not available in the theme.`, `Please make sure that \\`theme.shadows[${elevation}]\\` is defined.`].join('\\n'));\n }\n }\n return /*#__PURE__*/_jsx(PaperRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n * @default 1\n */\n elevation: chainPropTypes(integerPropType, props => {\n const {\n elevation,\n variant\n } = props;\n if (elevation > 0 && variant === 'outlined') {\n return new Error(`MUI: Combining \\`elevation={${elevation}}\\` with \\`variant=\"${variant}\"\\` has no effect. Either use \\`elevation={0}\\` or use a different \\`variant\\`.`);\n }\n return null;\n }),\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'elevation'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['elevation', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Paper;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDialogUtilityClass(slot) {\n return generateUtilityClass('MuiDialog', slot);\n}\nconst dialogClasses = generateUtilityClasses('MuiDialog', ['root', 'scrollPaper', 'scrollBody', 'container', 'paper', 'paperScrollPaper', 'paperScrollBody', 'paperWidthFalse', 'paperWidthXs', 'paperWidthSm', 'paperWidthMd', 'paperWidthLg', 'paperWidthXl', 'paperFullWidth', 'paperFullScreen']);\nexport default dialogClasses;","import * as React from 'react';\nconst DialogContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n DialogContext.displayName = 'DialogContext';\n}\nexport default DialogContext;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-describedby\", \"aria-labelledby\", \"BackdropComponent\", \"BackdropProps\", \"children\", \"className\", \"disableEscapeKeyDown\", \"fullScreen\", \"fullWidth\", \"maxWidth\", \"onBackdropClick\", \"onClick\", \"onClose\", \"open\", \"PaperComponent\", \"PaperProps\", \"scroll\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useId from '@mui/utils/useId';\nimport capitalize from '../utils/capitalize';\nimport Modal from '../Modal';\nimport Fade from '../Fade';\nimport Paper from '../Paper';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport dialogClasses, { getDialogUtilityClass } from './dialogClasses';\nimport DialogContext from './DialogContext';\nimport Backdrop from '../Backdrop';\nimport useTheme from '../styles/useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DialogBackdrop = styled(Backdrop, {\n name: 'MuiDialog',\n slot: 'Backdrop',\n overrides: (props, styles) => styles.backdrop\n})({\n // Improve scrollable dialog support.\n zIndex: -1\n});\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n scroll,\n maxWidth,\n fullWidth,\n fullScreen\n } = ownerState;\n const slots = {\n root: ['root'],\n container: ['container', `scroll${capitalize(scroll)}`],\n paper: ['paper', `paperScroll${capitalize(scroll)}`, `paperWidth${capitalize(String(maxWidth))}`, fullWidth && 'paperFullWidth', fullScreen && 'paperFullScreen']\n };\n return composeClasses(slots, getDialogUtilityClass, classes);\n};\nconst DialogRoot = styled(Modal, {\n name: 'MuiDialog',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n '@media print': {\n // Use !important to override the Modal inline-style.\n position: 'absolute !important'\n }\n});\nconst DialogContainer = styled('div', {\n name: 'MuiDialog',\n slot: 'Container',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.container, styles[`scroll${capitalize(ownerState.scroll)}`]];\n }\n})(({\n ownerState\n}) => _extends({\n height: '100%',\n '@media print': {\n height: 'auto'\n },\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n}, ownerState.scroll === 'body' && {\n overflowY: 'auto',\n overflowX: 'hidden',\n textAlign: 'center',\n '&::after': {\n content: '\"\"',\n display: 'inline-block',\n verticalAlign: 'middle',\n height: '100%',\n width: '0'\n }\n}));\nconst DialogPaper = styled(Paper, {\n name: 'MuiDialog',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`scrollPaper${capitalize(ownerState.scroll)}`], styles[`paperWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fullWidth && styles.paperFullWidth, ownerState.fullScreen && styles.paperFullScreen];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 32,\n position: 'relative',\n overflowY: 'auto',\n // Fix IE11 issue, to remove at some point.\n '@media print': {\n overflowY: 'visible',\n boxShadow: 'none'\n }\n}, ownerState.scroll === 'paper' && {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: 'calc(100% - 64px)'\n}, ownerState.scroll === 'body' && {\n display: 'inline-block',\n verticalAlign: 'middle',\n textAlign: 'left' // 'initial' doesn't work on IE11\n}, !ownerState.maxWidth && {\n maxWidth: 'calc(100% - 64px)'\n}, ownerState.maxWidth === 'xs' && {\n maxWidth: theme.breakpoints.unit === 'px' ? Math.max(theme.breakpoints.values.xs, 444) : `max(${theme.breakpoints.values.xs}${theme.breakpoints.unit}, 444px)`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.maxWidth && ownerState.maxWidth !== 'xs' && {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`,\n [`&.${dialogClasses.paperScrollBody}`]: {\n [theme.breakpoints.down(theme.breakpoints.values[ownerState.maxWidth] + 32 * 2)]: {\n maxWidth: 'calc(100% - 64px)'\n }\n }\n}, ownerState.fullWidth && {\n width: 'calc(100% - 64px)'\n}, ownerState.fullScreen && {\n margin: 0,\n width: '100%',\n maxWidth: '100%',\n height: '100%',\n maxHeight: 'none',\n borderRadius: 0,\n [`&.${dialogClasses.paperScrollBody}`]: {\n margin: 0,\n maxWidth: '100%'\n }\n}));\n\n/**\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\nconst Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDialog'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n 'aria-describedby': ariaDescribedby,\n 'aria-labelledby': ariaLabelledbyProp,\n BackdropComponent,\n BackdropProps,\n children,\n className,\n disableEscapeKeyDown = false,\n fullScreen = false,\n fullWidth = false,\n maxWidth = 'sm',\n onBackdropClick,\n onClick,\n onClose,\n open,\n PaperComponent = Paper,\n PaperProps = {},\n scroll = 'paper',\n TransitionComponent = Fade,\n transitionDuration = defaultTransitionDuration,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n disableEscapeKeyDown,\n fullScreen,\n fullWidth,\n maxWidth,\n scroll\n });\n const classes = useUtilityClasses(ownerState);\n const backdropClick = React.useRef();\n const handleMouseDown = event => {\n // We don't want to close the dialog when clicking the dialog content.\n // Make sure the event starts and ends on the same DOM element.\n backdropClick.current = event.target === event.currentTarget;\n };\n const handleBackdropClick = event => {\n if (onClick) {\n onClick(event);\n }\n\n // Ignore the events not coming from the \"backdrop\".\n if (!backdropClick.current) {\n return;\n }\n backdropClick.current = null;\n if (onBackdropClick) {\n onBackdropClick(event);\n }\n if (onClose) {\n onClose(event, 'backdropClick');\n }\n };\n const ariaLabelledby = useId(ariaLabelledbyProp);\n const dialogContextValue = React.useMemo(() => {\n return {\n titleId: ariaLabelledby\n };\n }, [ariaLabelledby]);\n return /*#__PURE__*/_jsx(DialogRoot, _extends({\n className: clsx(classes.root, className),\n closeAfterTransition: true,\n components: {\n Backdrop: DialogBackdrop\n },\n componentsProps: {\n backdrop: _extends({\n transitionDuration,\n as: BackdropComponent\n }, BackdropProps)\n },\n disableEscapeKeyDown: disableEscapeKeyDown,\n onClose: onClose,\n open: open,\n ref: ref,\n onClick: handleBackdropClick,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n role: \"presentation\"\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(DialogContainer, {\n className: clsx(classes.container),\n onMouseDown: handleMouseDown,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogPaper, _extends({\n as: PaperComponent,\n elevation: 24,\n role: \"dialog\",\n \"aria-describedby\": ariaDescribedby,\n \"aria-labelledby\": ariaLabelledby\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(DialogContext.Provider, {\n value: dialogContextValue,\n children: children\n })\n }))\n })\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Dialog.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The id(s) of the element(s) that describe the dialog.\n */\n 'aria-describedby': PropTypes.string,\n /**\n * The id(s) of the element(s) that label the dialog.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A backdrop component. This prop enables custom backdrop rendering.\n * @deprecated Use `slots.backdrop` instead. While this prop currently works, it will be removed in the next major version.\n * Use the `slots.backdrop` prop to make your application ready for the next version of Material UI.\n * @default styled(Backdrop, {\n * name: 'MuiModal',\n * slot: 'Backdrop',\n * overridesResolver: (props, styles) => {\n * return styles.backdrop;\n * },\n * })({\n * zIndex: -1,\n * })\n */\n BackdropComponent: PropTypes.elementType,\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * Dialog children, usually the included sub-components.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, hitting escape will not fire the `onClose` callback.\n * @default false\n */\n disableEscapeKeyDown: PropTypes.bool,\n /**\n * If `true`, the dialog is full-screen.\n * @default false\n */\n fullScreen: PropTypes.bool,\n /**\n * If `true`, the dialog stretches to `maxWidth`.\n *\n * Notice that the dialog width grow is limited by the default margin.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Determine the max-width of the dialog.\n * The dialog width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'sm'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * Callback fired when the backdrop is clicked.\n * @deprecated Use the `onClose` prop with the `reason` argument to handle the `backdropClick` events.\n */\n onBackdropClick: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * The component used to render the body of the dialog.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Determine the container for scrolling the dialog.\n * @default 'paper'\n */\n scroll: PropTypes.oneOf(['body', 'paper']),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Fade\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Dialog;","import resolveProps from '@mui/utils/resolveProps';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport { getThemeProps } from '../useThemeProps';\nimport useTheme from '../useThemeWithoutDefault';\n\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\n/**\n * @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.\n */\n\n/**\n * @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const [match, setMatch] = React.useState(() => {\n if (noSsr && matchMedia) {\n return matchMedia(query).matches;\n }\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n }\n\n // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n return defaultMatches;\n });\n useEnhancedEffect(() => {\n let active = true;\n if (!matchMedia) {\n return undefined;\n }\n const queryList = matchMedia(query);\n const updateMatch = () => {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n updateMatch();\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n queryList.addListener(updateMatch);\n return () => {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia]);\n return match;\n}\n\n// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n const getServerSnapshot = React.useMemo(() => {\n if (noSsr && matchMedia) {\n return () => matchMedia(query).matches;\n }\n if (ssrMatchMedia !== null) {\n const {\n matches\n } = ssrMatchMedia(query);\n return () => matches;\n }\n return getDefaultSnapshot;\n }, [getDefaultSnapshot, query, ssrMatchMedia, noSsr, matchMedia]);\n const [getSnapshot, subscribe] = React.useMemo(() => {\n if (matchMedia === null) {\n return [getDefaultSnapshot, () => () => {}];\n }\n const mediaQueryList = matchMedia(query);\n return [() => mediaQueryList.matches, notify => {\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n mediaQueryList.addListener(notify);\n return () => {\n mediaQueryList.removeListener(notify);\n };\n }];\n }, [getDefaultSnapshot, matchMedia, query]);\n const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n return match;\n}\nexport default function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme();\n // Wait for jsdom to support the match media feature.\n // All the browsers MUI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const {\n defaultMatches = false,\n matchMedia = supportMatchMedia ? window.matchMedia : null,\n ssrMatchMedia = null,\n noSsr = false\n } = getThemeProps({\n name: 'MuiUseMediaQuery',\n props: options,\n theme\n });\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, '');\n\n // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query,\n match\n });\n }\n return match;\n}","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module BuyContent\n *@developer Shubham K\n */\n\nimport * as React from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport ComingSoonImage from \"assets/images/star_icon.png\";\nimport Cross from \"assets/images/cross.png\";\nconst Index = ({ status, handleData, text }) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n const handleClick = () => {\n handleData(false);\n };\n return (\n <Dialog\n maxWidth={fullScreen}\n open={status}\n onClose={handleClick}\n aria-labelledby=\"responsive-dialog-title\"\n >\n <div className=\"relative py-[70px] px-[84px] bg-[#262626] text-white lg:w-[650px] flex flex-col justify-between items-center\">\n <div className=\"mb-9\">\n <img src={ComingSoonImage} alt=\"star\" className=\"h-[72px] w-[72px]\" />\n </div>\n <div className=\"mb-9\">\n <h2 className=\"font-heading md:text-[20px] text-center\">\n COMING SOON\n </h2>\n </div>\n <div>\n <p className=\"text-[12px] md:text-[16px] leading-6 font-normal text-center\">\n {text}\n </p>\n </div>\n <div className=\"absolute top-[8px] right-[20px] w-[28px] h-[28px] p-[6px] cursor-pointer\">\n <div\n onClick={handleClick}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-full w-[30px] h-[30px]\"\n >\n <img\n src={Cross}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div>\n\n {/* <img src={Cross} alt=\"cancel\" className=''/> */}\n </div>\n </div>\n </Dialog>\n );\n};\n\nexport default Index;\n","import React, { useState } from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { ClothingCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\nconst Formal = ({\n type,\n belongTo,\n data,\n myAsset,\n pageNum,\n totalPages,\n isFetching,\n handlePageChange,\n}) => {\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n return (\n <>\n {data && data.length ? (\n <>\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {data?.map((_vitem, index) => {\n return (\n <AssetCardOpen\n key={_vitem?.slug}\n image={_vitem.img}\n channelID={_vitem.iapType}\n contentID={_vitem.slug}\n itemId={_vitem._id}\n baseRoute={`/marketplace/${_vitem.iapCategory}`}\n name=\"\"\n title={_vitem.title}\n cardClass={ClothingCardClass}\n price={_vitem.price}\n star={_vitem.star}\n myAsset={myAsset}\n isComing={_vitem.paymentType === \"coming_soon\"}\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum ? (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n ) : null}\n </div>\n </>\n ) : (\n <div className=\"__explore_default_button flex justify-center items-center h-[25vh] max-[768px]:flex-none\">\n {!isFetching && (myAsset ? <Explore /> : <>No Data</>)}\n </div>\n )}\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This cloth is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n );\n};\n\nexport default Formal;\n","import React, { useState } from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { ClothingCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Clothing-Casual\n */\n\nconst Casual = ({\n type,\n belongTo,\n data,\n myAsset,\n pageNum,\n totalPages,\n isFetching,\n handlePageChange,\n}) => {\n const [showComingSoonPopup,setShowComingSoonPopup] = useState(false)\n return (\n <>\n {data && data.length ? (\n <>\n {console.log(\"gsdg\", data)}\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {data?.map((_vitem, index) => {\n return (\n <AssetCardOpen\n key={_vitem?.slug}\n image={_vitem.img}\n channelID={_vitem.iapType}\n contentID={_vitem.slug}\n itemId={_vitem._id}\n baseRoute={`/marketplace/${_vitem.iapCategory}`}\n name=\"\"\n title={_vitem.title}\n cardClass={ClothingCardClass}\n price={_vitem.price}\n star={_vitem.star}\n myAsset={myAsset}\n isComing={_vitem.paymentType === \"coming_soon\"}\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum ? (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n ) : null}\n </div>\n </>\n ) : (\n <div className=\"__explore_default_button flex justify-center items-center h-[25vh] max-[768px]:flex-none\">\n {myAsset ? <Explore /> : <>No Data</>}\n </div>\n )}\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This cloth is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n );\n};\n\nexport default Casual;\n","import React, { useState } from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { ClothingCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\nconst SpaceSuit = ({\n type,\n belongTo,\n data,\n myAsset,\n pageNum,\n totalPages,\n isFetching,\n handlePageChange,\n}) => {\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n return (\n <>\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n {data && data.length ? (\n <>\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {data?.map((_vitem, index) => {\n return (\n <AssetCardOpen\n key={_vitem?.slug}\n image={_vitem.img}\n channelID={_vitem.iapType}\n contentID={_vitem.slug}\n itemId={_vitem._id}\n baseRoute={`/marketplace/${_vitem.iapCategory}`}\n name=\"\"\n title={_vitem.title}\n cardClass={ClothingCardClass}\n price={_vitem.price}\n star={_vitem.star}\n myAsset={myAsset}\n isComing={_vitem.paymentType === \"coming_soon\"}\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum ? (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n ) : null}\n </div>\n </>\n ) : (\n <div className=\"__explore_default_button flex justify-center items-center h-[25vh] max-[768px]:flex-none\">\n {!isFetching && (myAsset ? <Explore /> : <>No Data</>)}\n </div>\n )}\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This cloth is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n );\n};\n\nexport default SpaceSuit;\n","import React, { useState } from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { ClothingCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\nconst ExoSuit = ({\n type,\n belongTo,\n data,\n myAsset,\n pageNum,\n totalPages,\n isFetching,\n handlePageChange,\n}) => {\n const [showComingSoonPopup,setShowComingSoonPopup] = useState(false)\n return (\n <>\n {data && data.length ? (\n <>\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {data?.map((_vitem, index) => {\n return (\n <AssetCardOpen\n key={_vitem?.slug}\n image={_vitem.img}\n channelID={_vitem.iapType}\n contentID={_vitem.slug}\n itemId={_vitem._id}\n baseRoute={`/marketplace/${_vitem.iapCategory}`}\n name=\"\"\n title={_vitem.title}\n cardClass={ClothingCardClass}\n price={_vitem.price}\n star={_vitem.star}\n myAsset={myAsset}\n isComing={_vitem.paymentType === \"coming_soon\"}\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum ? (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n ) : null}\n </div>\n </>\n ) : (\n <div className=\"__explore_default_button flex justify-center items-center h-[25vh] max-[768px]:flex-none\">\n {myAsset ? <Explore /> : <>No Data</>}\n </div>\n )}\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This cloth is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n );\n};\n\nexport default ExoSuit;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Marketplace-api-calls\n *@developer Vuppuluri Anhad, Amardeep Singh\n */\n\nexport const MarketplaceSlice = createApi({\n reducerPath: \"Marketplace\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n GetListMarketplaceClothing: builder.query({\n query: ({\n searchQuery = \"\",\n page = 1,\n limit = 1000,\n clothType = \"\",\n }) => ({\n url:\n EndpointsSlug.MARKETPLACE_CLOTHING +\n \"?searchQuery=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\" +\n limit +\n \"&clothType=\" +\n clothType,\n method: \"GET\",\n }),\n }),\n\n GetSingleClothing: builder.query({\n query: (payload = \"\") => ({\n url: EndpointsSlug.GET_SINGLE_CLOTHING + \"/\" + payload,\n method: \"GET\",\n }),\n }),\n\n // postEquipDefaultAvatar: builder.mutation({\n // query: (payload) => ({\n // url: EndpointsSlug.EQUIP_DEFAULT_CLOTHING_AVATAR,\n // method: \"POST\",\n // body: payload,\n // }),\n // }),\n // postWearAllItems: builder.mutation({\n // query: (payload) => ({\n // url: EndpointsSlug.WEAR_ALL_ITEMS,\n // method: \"POST\",\n // body: payload,\n // }),\n // }),\n GetListMarketplaceAvatar: builder.query({\n query: ({ searchQuery = \"\", page = 1, limit = 1000, species = \"\" }) => ({\n url:\n EndpointsSlug.MARKETPLACE_AVATAR +\n \"?searchQuery=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\" +\n limit +\n \"&species=\" +\n species,\n method: \"GET\",\n }),\n }),\n GetListMarketplaceCompanion: builder.query({\n query: ({ searchQuery = \"\", page = 1, limit = 1000, species = \"\" }) => ({\n url:\n EndpointsSlug.MARKETPLACE_COMPANION +\n \"?searchQuery=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\" +\n limit +\n \"&species=\" +\n species,\n method: \"GET\",\n }),\n }),\n GetSingleAvatar: builder.query({\n query: (payload = \"\") => ({\n url: EndpointsSlug.GET_SINGLE_AVATAR + \"/\" + payload,\n method: \"GET\",\n }),\n }),\n GetSingleCompanion: builder.query({\n query: (payload = \"\") => ({\n url: EndpointsSlug.GET_SINGLE_COMPANION + \"/\" + payload,\n method: \"GET\",\n }),\n }),\n }),\n});\n\nexport const {\n useGetListMarketplaceClothingQuery,\n useGetListMarketplaceAvatarQuery,\n useGetListMarketplaceCompanionQuery,\n useGetSingleClothingQuery,\n useGetSingleAvatarQuery,\n useGetSingleCompanionQuery,\n // usePostEquipDefaultAvatarMutation,\n // usePostWearAllItemsMutation,\n} = MarketplaceSlice;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Clothing-Landing-component\n *@developer Aditya P\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { Zoom } from \"react-reveal\";\nimport { ClothTabs } from \"constant\";\nimport ClothingBannerImg from \"assets/images/clothing-banner-image.jpg\";\nimport {\n Formal,\n Casual,\n SpaceSuit,\n ExoSuit,\n} from \"components/assets/myassets/clothing/index\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { useGetListMarketplaceClothingQuery } from \"store/slicer/Marketplace\";\nimport Loader from \"components/Loader/Loader\";\nimport ImageConstant from \"../../../constant/imageConstant\";\nimport { calculateTotalPages } from \"utils\";\nimport { useSearchParams, useHistory } from \"react-router-dom\";\n\nconst Index = () => {\n const [marketplaceData, setMarketplaceData] = useState([]);\n const [pageNum, setPageNum] = useState(1);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 8;\n const [searchParams, setSearchParams] = useSearchParams();\n const categoryQuery = searchParams.get(\"category\");\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const [activeKey, setActiveKey] = useState(categoryQuery || \"spacesuit\");\n\n const { data, isFetching, isError, isSuccess, refetch } =\n useGetListMarketplaceClothingQuery(\n {\n page: pageNum,\n limit: limit,\n clothType: activeKey,\n searchQuery: \"\",\n }\n // { refetchOnMountOrArgChange: true }\n );\n const [activeTabs, setActivetab] = useState({\n id: 0,\n key: \"spacesuit\",\n name: \"Space Suits\",\n component: (\n <SpaceSuit\n pageNum={pageNum}\n totalPages={totalPages}\n isFetching={isFetching}\n handlePageChange={handlePageChange}\n data={marketplaceData}\n />\n ),\n });\n if (!isFetching && data.response.statusEnum != 1) {\n isError = true;\n }\n\n // const getData = () => {\n // setIsLoading(true);\n // setClothingData([]);\n // };\n const handleClickAsset = (tabs) => {\n setActiveKey(tabs.key);\n if (searchParams.has(\"category\")) {\n searchParams.delete(\"category\");\n setSearchParams(searchParams);\n }\n };\n\n // const ClothingTabs = [\n // {\n // id: 0,\n // key: \"spacesuit\",\n // name: \"Space Suits\",\n // component: <SpaceSuit data={marketplaceData} />,\n // },\n // {\n // id: 1,\n // key: \"exosuit\",\n // name: \"Exo Suits\",\n // component: <ExoSuit data={marketplaceData} />,\n // },\n // {\n // id: 2,\n // key: \"formal\",\n // name: \"Formal\",\n // component: <Formal data={marketplaceData} />,\n // },\n // {\n // id: 3,\n // key: \"casual\",\n // name: \"Casual\",\n // component: <Casual data={marketplaceData} />,\n // },\n // ];\n useEffect(() => {\n setTotalPages(data?.response.data.pagination.totalPages);\n // Fetch data and then execute the following code\n let updatedNewData = data?.response.data.data.map((item) => ({\n _id: item._id,\n slug: item.IAPslug ?? item.iapId,\n img: item.thumbnail.url,\n title: item.assetName,\n desc: Array.isArray(item.shortDescription)\n ? item.shortDescription.join(\",\")\n : item.shortDescription,\n iapCategory: item.category,\n iapType: item.clothSubType,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n paymentType: item.paymentType,\n }));\n if (pageNum > 1) {\n setMarketplaceData((prevEntertainmentData) => [\n ...prevEntertainmentData,\n ...updatedNewData,\n ]);\n } else {\n setMarketplaceData(updatedNewData);\n }\n // setMarketplaceData(updatedNewData);\n switch (activeKey) {\n case \"exosuit\":\n setActivetab({\n key: \"exosuit\",\n name: \"Exo Suits\",\n component: (\n <ExoSuit\n data={\n pageNum > 1\n ? [...marketplaceData, ...updatedNewData]\n : updatedNewData\n }\n pageNum={pageNum}\n totalPages={data?.response.data.pagination.totalPages}\n isFetching={isFetching}\n handlePageChange={handlePageChange}\n />\n ),\n });\n break;\n case \"formal\":\n setActivetab({\n key: \"formal\",\n name: \"Formals\",\n\n component: (\n <Formal\n data={\n pageNum > 1\n ? [...marketplaceData, ...updatedNewData]\n : updatedNewData\n }\n pageNum={pageNum}\n totalPages={data?.response.data.pagination.totalPages}\n isFetching={isFetching}\n handlePageChange={handlePageChange}\n />\n ),\n });\n break;\n case \"casual\":\n setActivetab({\n key: \"casual\",\n name: \"Casuals\",\n\n component: (\n <Casual\n data={\n pageNum > 1\n ? [...marketplaceData, ...updatedNewData]\n : updatedNewData\n }\n pageNum={pageNum}\n totalPages={data?.response.data.pagination.totalPages}\n isFetching={isFetching}\n handlePageChange={handlePageChange}\n />\n ),\n });\n break;\n default:\n setActivetab({\n key: \"spacesuit\",\n name: \"Space Suits\",\n\n component: (\n <SpaceSuit\n data={\n pageNum > 1\n ? [...marketplaceData, ...updatedNewData]\n : updatedNewData\n }\n pageNum={pageNum}\n totalPages={data?.response.data.pagination.totalPages}\n isFetching={isFetching}\n handlePageChange={handlePageChange}\n />\n ),\n });\n break;\n }\n }, [data]);\n useEffect(() => {\n setPageNum(1);\n // refetch();\n }, [activeKey]);\n return (\n <div className=\"px-2\">\n <Zoom>\n <div\n className=\"min-h-[250px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.CLOTHING_BANNER_IMAGE}')`,\n backgroundSize: \"cover\", // Ensures the image is fully visible\n backgroundPosition: \"center\", // Centers the image\n backgroundRepeat: \"no-repeat\", // Prevents repeating\n }}\n >\n <div className=\"absolute top-0 left-0 w-full h-full flex flex-col items-left justify-center p-2 lg:p-6 pl-2 md:pl-10\">\n <h1 className=\"font-heading text-lg md:text-2xl lg:text-3xl text-left mb-2 md:mb-4\">\n Discover Your Cosmic Look\n </h1>\n <div className=\"w-full md:w-[47%] py-4 lg:py-10 text-xs sm:text-sm md:text-base lg:text-lg\">\n Embark on a sartorial journey through the cosmos with our\n collection of interstellar fashion. From sleek space suits to\n futuristic formal wear, our clothing line is designed to elevate\n your style as you traverse the stars.\n </div>\n </div>\n </div>\n </Zoom>\n\n {/* Clothing Content Tabs and Data Cards */}\n\n <div className=\"flex max-[768px]:flex-col max-[768px]:p-0\">\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <div className=\"__clothing_landing_category_panel w-[20%] py-[20px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0 relative\">\n <h5 className=\"text-[grey] font-body font-bold tracking-[1px] max-[768px]:hidden\">\n Category\n </h5>\n <ul\n role=\"cloth-category-list\"\n className=\"overflow-y-scroll\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n max-[768px]:text-[11px]\n \"\n >\n {ClothTabs?.map((tabs, index) => {\n return (\n <li\n key={tabs.key}\n className={`hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n }`}\n onClick={() => handleClickAsset(tabs)}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n\n {/* Tabs container data */}\n\n <div className=\"__clothing_landing_tabs_container_panel pl-[50px] max-[768px]:pl-0 pt-[20px] max-[768px]:pt-0 w-[80%] p-[10px] max-[768px]:w-auto max-[768px]:h-auto max-[768px]:mt-[0px]\">\n <div className=\"font-heading font-bold tracking-[1px] text-[20px] max-[768px]:text-[15px] max-[768px]:mt-[15px] pl-[10px]\">\n <h4>{activeTabs.name}</h4>\n </div>\n {isError && (\n <div className=\"h-[250px] w-full grid place-content-center\">\n <p className=\"text-white/50 font-bold\">Something went wrong</p>\n </div>\n )}\n {activeTabs.component}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Index;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Companion-Landing-Slider-Header\n *@developer Aditya P\n */\n\nconst SliderHeader = ({ title, seeMoreUrl }) => {\n return (\n <div className=\"__slider_main_header mt-[60px] z-[10] flex justify-between items-center\">\n <h4 className=\"text-[24px] font-heading max-[768px]:text-[15px] capitalize\">\n {title}\n </h4>\n {seeMoreUrl && (\n <Link to={seeMoreUrl} className=\"text-[#fbbc5e] font-medium\">\n See More\n </Link>\n )}\n </div>\n );\n};\n\nexport default SliderHeader;\n","import React, { useEffect } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport AlphaBotImage from \"assets/images/Alpha Bot King.png\";\nimport DracoImage from \"assets/images/draco guardian.jpg\";\nimport GoblinImage from \"assets/images/Sci-fi goblin.png\";\nimport ExoSuitImage from \"assets/images/exo suite.png\";\nimport AlphaLeoImage from \"assets/images/Alpha leo.png\";\nimport RoboticDogImage from \"assets/images/Robotic dog.png\";\nimport Gremlin from \"assets/images/Gremlin.png\";\nimport Gizmo from \"assets/images/Gizmo.png\";\nimport Vanguard from \"assets/images/Vanguard.png\";\nimport Hover from \"assets/images/Hover.png\";\n\nimport ComingSoon1Image from \"assets/images/coming soon comp 1.png\";\nimport ComingSoon2Image from \"assets/images/coming soon comp 2.png\";\nimport ComingSoon3Image from \"assets/images/coming soon comp 3.png\";\nimport ComingSoon4Image from \"assets/images/coming soon comp 4.png\";\nimport ComingSoon5Image from \"assets/images/coming soon comp 5.png\";\n\nimport { convertUsdToFstrPrice, removeTrailingZeroes } from \"utils\";\nimport { useLazyGetSingleUserAssetsByTokenQuery } from \"store/slicer/userProfile\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Companion-Landing-SliderCard\n */\n// /marketplace/gaming/:category/:item\nconst SliderCards = ({\n item,\n id,\n baseRoute,\n category,\n type,\n price,\n setShowComingSoonPopup,\n}) => {\n const CompanionLink = baseRoute + \"/\" + id + \"/\" + item?.IAPslug;\n const isComing =\n item.isComing ||\n item.heading == \"coming soon\" ||\n item.paymentType === \"coming_soon\";\n // fetching all user assets here and checking if user already owns this asset, calling this here wouldnt create an issue since the request will be cached and its better than calling this api in every page\n let [\n GetSingleUserAssetsByToken,\n { data: userAssetsData, isFetching, isSuccess, isError },\n ] = useLazyGetSingleUserAssetsByTokenQuery();\n\n if (!isFetching && isSuccess && userAssetsData?.response?.statusEnum == 1) {\n userAssetsData = userAssetsData?.response?.data;\n userAssetsData = userAssetsData.map((item) => item.content_id);\n } else {\n userAssetsData = [];\n }\n const handleClick = () => {\n if (isComing) {\n setShowComingSoonPopup && setShowComingSoonPopup(true);\n }\n };\n let userOwnsAsset = false;\n\n if (userAssetsData.includes(item._id)) {\n userOwnsAsset = true;\n }\n const randomImages = [\n ComingSoon1Image,\n ComingSoon2Image,\n ComingSoon3Image,\n ComingSoon4Image,\n ComingSoon5Image,\n ];\n const renderImage = (item) => {\n if (item.heading) {\n if (item.heading === \"Alpha Bot King\") {\n console.log(\"itemm\", item);\n return <img src={AlphaBotImage} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Draco Guardian\") {\n return <img src={DracoImage} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Exo suit\") {\n return <img src={ExoSuitImage} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Goblin\") {\n return <img src={GoblinImage} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Robotic Dog\") {\n return <img src={RoboticDogImage} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Alpha Leo\") {\n return <img src={AlphaLeoImage} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Gremlin\") {\n return <img src={Gremlin} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Gizmo\") {\n return <img src={Gizmo} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Vanguard\") {\n return <img src={Vanguard} className=\"rounded-[16px]\" />;\n } else if (item.heading === \"Hover\") {\n return <img src={Hover} className=\"rounded-[16px]\" />;\n } else {\n // If none of the conditions match, render one of the random images\n return isComing ? (\n <img\n src={randomImages[Math.floor(Math.random() * randomImages.length)]}\n className=\"rounded-[16px]\"\n />\n ) : null;\n }\n } else {\n // If item?.headings doesn't exist, render a random image based on item?.isComing\n return isComing ? (\n <img\n src={randomImages[Math.floor(Math.random() * randomImages.length)]}\n className=\"rounded-[16px]\"\n />\n ) : null;\n }\n };\n\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetSingleUserAssetsByToken();\n }, []);\n\n return (\n <Link\n to={`${\n type === \"COMP\" && item.IAPslug && !isComing ? \"/\" + CompanionLink : \"#\"\n }`}\n onClick={handleClick}\n >\n <div\n key={item?.id}\n className={`__card_body hover:cursor-pointer hover:scale-[1.024] transition duration-300 ease-in-out p-1`}\n >\n <div\n className={`__card_banner bg-[#242424] ${\n id === \"gaming\"\n ? \"w-auto h-[337px] max-[768px]:w-[100%] max-[1200px]:w-auto\"\n : \"\"\n } w-[297px] h-[327px] rounded-[16px]`}\n >\n {item.thumbnail && (\n <img\n className=\"h-full w-full object-cover rounded-[16px]\"\n src={item.thumbnail}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.style.display = \"none\";\n }}\n />\n )}\n {/* {item?.heading === \"Alpha Bot King\" ? (\n <img src={AlphaBotImage} className=\"rounded-[16px]\" />\n ) : (\n <></>\n )}\n {item?.heading === \"Draco Guardian\" ? (\n <img src={DracoImage} className=\"rounded-[16px]\" />\n ) : (\n <></>\n )}\n {item?.heading === \"Exo suit\" ? (\n <img src={ExoSuitImage} className=\"rounded-[16px]\" />\n ) : (\n <></>\n )}\n {item?.heading === \"Goblin\" ? (\n <img src={GoblinImage} className=\"rounded-[16px]\" />\n ) : (\n <></>\n )} */}\n {!item.thumbnail && renderImage(item)}\n </div>\n <div className=\"__card_heading mt-[8px] pl-[5px]\">\n <h5 className=\"text-[14px] font-body\">\n {type === \"COMP\" ? item?.heading : \"\"}\n </h5>\n </div>\n <div className=\"__card_exception_main pl-[5px]\">\n {isComing ? (\n <span className=\"text-[14px] font-body py-1 text-[#F3A151] font-medium\">\n Coming Soon \n </span>\n ) : (\n \"\"\n )}\n {item.price &&\n Number(item.price.split(\" \")[0]) != 0 &&\n String(item.price).toLowerCase() != \"free\" &&\n !isComing &&\n !userOwnsAsset && (\n <span className=\"text-[14px] font-body font-bold bg-[#FBBC5E]/5 px-2 py-1 rounded-[4px]\">\n {removeTrailingZeroes(\n convertUsdToFstrPrice(item.price.split(\" \")[0])\n ) +\n \" FSTR \" +\n \"( \" +\n Number(item.price.split(\" \")[0])?.toFixed(2) +\n \" USD )\"}\n </span>\n )}\n {(!item.price ||\n Number(item.price.split(\" \")[0]) == 0 ||\n String(item.price).toLowerCase() == \"free\") &&\n !isComing &&\n !userOwnsAsset && (\n <span className=\"text-[14px] font-body font-bold bg-[#FBBC5E]/5 px-2 py-1 rounded-[4px]\">\n Free\n </span>\n )}\n\n {userOwnsAsset && (\n <span className=\"text-[14px] font-body font-bold bg-[#FBBC5E]/5 px-2 py-1 rounded-[4px] text-[#6BFEF6]\">\n Added to assets\n </span>\n )}\n </div>\n </div>\n </Link>\n );\n};\n\nexport default SliderCards;\n","import React, { useState } from \"react\";\nimport { Zoom } from \"react-reveal\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport SliderCards from \"components/partials/SliderCards\";\n// import AvatarBannerImage from \"assets/images/companions_banner_image.png\";\nimport Slider from \"react-slick\";\nimport { useGetListMarketplaceCompanionQuery } from \"store/slicer/Marketplace\";\nimport Loader from \"components/Loader/Loader\";\nimport ImageConstant from \"constant/imageConstant\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { companionCategories } from \"constant\";\n\nconst sliderSettings = {\n slidesToShow: 4.5,\n slidesToScroll: 1,\n dots: false,\n arrows: true,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: false,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1535,\n settings: {\n slidesToShow: 4,\n },\n },\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 3.5,\n },\n },\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 3,\n },\n },\n {\n breakpoint: 820,\n settings: {\n slidesToShow: 2.2,\n },\n },\n {\n breakpoint: 670,\n settings: {\n slidesToShow: 1.5,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1.2,\n },\n },\n {\n breakpoint: 360,\n settings: {\n slidesToShow: 1.1,\n },\n },\n ],\n};\n\nconst Index = () => {\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n\n let {\n data: dataPet,\n isFetching: isFetchingPet,\n isSuccess: isSuccessPet,\n isError: isErrorPet,\n } = useGetListMarketplaceCompanionQuery({\n searchQuery: \"\",\n species: \"pet\",\n page: 1,\n limit: 12,\n });\n let {\n data: dataSidekick,\n isFetching: isFetchingSidekick,\n isSuccess: isSuccessSidekick,\n isError: isErrorSidekick,\n } = useGetListMarketplaceCompanionQuery({\n searchQuery: \"\",\n species: \"sideKick\",\n page: 1,\n limit: 12,\n });\n\n let {\n data: dataMaster,\n isFetching: isFetchingMaster,\n isSuccess: isSuccessMaster,\n isError: isErrorMaster,\n } = useGetListMarketplaceCompanionQuery({\n searchQuery: \"\",\n species: \"master\",\n page: 1,\n limit: 12,\n });\n\n let {\n data: dataBodyguard,\n isFetching: isFetchingBodyguard,\n isSuccess: isSuccessBodyguard,\n isError: isErrorBodyguard,\n } = useGetListMarketplaceCompanionQuery({\n searchQuery: \"\",\n species: \"bodyguard\",\n page: 1,\n limit: 12,\n });\n\n let {\n data: dataAI,\n isFetching: isFetchingAI,\n isSuccess: isSuccessAI,\n isError: isErrorAI,\n } = useGetListMarketplaceCompanionQuery({\n searchQuery: \"\",\n species: \"ai\",\n page: 1,\n limit: 12,\n });\n if (\n isFetchingPet ||\n isFetchingSidekick ||\n isFetchingMaster ||\n isFetchingBodyguard ||\n isFetchingAI\n ) {\n return (\n <div className=\"h-screen w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n if (\n isErrorSidekick ||\n dataSidekick?.response?.statusEnum != 1 ||\n isErrorPet ||\n dataPet?.response?.statusEnum != 1\n ) {\n return (\n <div className=\"h-screen w-full text-white/70 grid place-content-center\">\n <p>Something went wrong</p>\n </div>\n );\n }\n let filteredDataSidekick = [];\n if (isSuccessSidekick && dataSidekick?.response?.statusEnum == 1) {\n dataSidekick = dataSidekick.response.data.data;\n filteredDataSidekick = dataSidekick.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n\n let filteredDataBodyguard = [];\n if (isSuccessBodyguard && dataBodyguard?.response?.statusEnum == 1) {\n dataBodyguard = dataBodyguard?.response.data.data;\n filteredDataBodyguard = dataBodyguard?.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n\n let filteredDataMaster = [];\n if (isSuccessMaster && dataMaster?.response?.statusEnum == 1) {\n dataMaster = dataMaster?.response.data.data;\n filteredDataMaster = dataMaster?.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n\n let filteredDataAI = [];\n if (isSuccessAI && dataAI?.response?.statusEnum == 1) {\n dataAI = dataAI?.response.data.data;\n filteredDataAI = dataAI?.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n\n let filteredDataPet = [];\n if (isSuccessPet && dataPet?.response?.statusEnum == 1) {\n dataPet = dataPet?.response.data.data;\n filteredDataPet = dataPet?.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n // let humnaoidData = [];\n // let alienData = [];\n\n // if (filteredData?.length > 0) {\n // alienData = filteredData.filter((item) => item.species === \"alien\");\n // humnaoidData = filteredData.filter((item) => item.species !== \"alien\");\n // }\n return (\n <div\n data-testid=\"__companion_landing_page\"\n className=\"__companion_landing_page px-2\"\n >\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <Zoom>\n <div\n className=\"min-h-[250px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.COMPANION_BANNER_IMAGE}')`,\n backgroundSize: \"cover\", // Ensures the image is fully visible\n backgroundPosition: \"center\", // Centers the image\n backgroundRepeat: \"no-repeat\", // Prevents repeating\n }}\n >\n {/* <div\n className=\"min-h-[200px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.COMPANION_BANNER_IMAGE}')`,\n }}\n > */}\n <div className=\"absolute top-0 left-0 w-full h-full flex flex-col items-center justify-center p-4\">\n <h1 className=\"font-heading text-xl md:text-2xl lg:text-3xl text-center bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] bg-[length:100%_2px] text-transparent bg-clip-text\">\n Coming Soon\n </h1>\n </div>\n </div>\n </Zoom>\n\n {/* Slider Section */}\n\n {/* Pets */}\n {filteredDataPet.length > 0 && (\n <>\n <SliderHeader\n title=\"Pets\"\n seeMoreUrl={\n filteredDataPet.length > 4 ? \"/marketplace/companions/pet\" : null\n }\n />\n <div className=\"__pets__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div data-testid=\"slider-card\" className=\"py-[10px]\">\n <Slider {...sliderSettings} className=\"carousel-section\">\n {\" \"}\n {filteredDataPet.map((data, index) => {\n return (\n <SliderCards\n key={index}\n item={data}\n id=\"pet\"\n type=\"COMP\"\n baseRoute=\"marketplace/companions\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n </div>\n </>\n )}\n {/* Bodyguards */}\n {filteredDataBodyguard.length > 0 && (\n <>\n <SliderHeader\n title=\"Butlers and Bodyguards\"\n seeMoreUrl={\n filteredDataBodyguard.length > 4\n ? \"/marketplace/companions/bodyguard\"\n : null\n }\n />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px]\"\n >\n <Slider {...sliderSettings} className=\"carousel-section\">\n {filteredDataBodyguard.map((data, index) => {\n return (\n <SliderCards\n key={index}\n item={data}\n id=\"bodyguard\"\n type=\"COMP\"\n baseRoute=\"marketplace/companions\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n </div>\n </>\n )}\n\n {/* Masters */}\n {filteredDataMaster.length > 0 && (\n <>\n <SliderHeader\n title=\"Masters\"\n seeMoreUrl={\n filteredDataMaster.length > 4\n ? \"/marketplace/companions/master\"\n : null\n }\n />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px]\"\n >\n <Slider {...sliderSettings} className=\"carousel-section\">\n {filteredDataMaster.map((data, index) => {\n return (\n <SliderCards\n key={index}\n item={data}\n id=\"master\"\n type=\"COMP\"\n baseRoute=\"marketplace/companions\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n </div>\n </>\n )}\n\n {/* SideKicks */}\n {filteredDataSidekick.length > 0 && (\n <>\n <SliderHeader\n title=\"Sidekicks\"\n seeMoreUrl={\n filteredDataSidekick.length > 4\n ? \"/marketplace/companions/sidekick\"\n : null\n }\n />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px]\"\n >\n <Slider {...sliderSettings} className=\"carousel-section\">\n {filteredDataSidekick.map((data, index) => {\n return (\n <SliderCards\n key={index}\n item={data}\n id=\"sidekick\"\n type=\"COMP\"\n baseRoute=\"marketplace/companions\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n </div>\n </>\n )}\n\n {/* AIs */}\n {filteredDataAI.length > 0 && (\n <>\n <SliderHeader\n title=\"AIs\"\n seeMoreUrl={\n filteredDataAI.length > 4 ? \"/marketplace/companions/ai\" : null\n }\n />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px]\"\n >\n <Slider {...sliderSettings} className=\"carousel-section\">\n {filteredDataAI.map((data, index) => {\n return (\n <SliderCards\n key={index}\n item={data}\n id=\"ai\"\n type=\"COMP\"\n baseRoute=\"marketplace/companions\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n </div>\n </>\n )}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This companion is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Companion-Landing-Component\n *@developer Shubham K\n */\nimport React, { useState, useEffect } from \"react\";\n\nimport Loader from \"components/Loader/Loader\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useGetListMarketplaceCompanionQuery } from \"store/slicer/Marketplace\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { calculateTotalPages } from \"utils\";\n\nconst dummyData = [\n {\n id: 0,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 1,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 2,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 3,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 4,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 5,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 6,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 7,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n];\n\nconst CompanionsList = () => {\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const navigate = useNavigate();\n const params = useParams();\n const categorytype = params.categorytype;\n const [pageNum, setPageNum] = useState(1);\n const [allData, setAllData] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 8;\n\n let { data, isFetching, isSuccess, isError } =\n useGetListMarketplaceCompanionQuery({\n searchQuery: \"\",\n species: categorytype,\n page: pageNum,\n limit: limit,\n });\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n useEffect(() => {\n let filteredData = [];\n if (isSuccess && data?.response?.statusEnum == 1) {\n setTotalPages(\n calculateTotalPages(data.response?.data?.pagination.totalCount, limit)\n );\n data = data.response.data.data;\n filteredData = data.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n // filteredData = filteredData.filter(\n // (item) => item.species.toLowerCase() == categorytype\n // );\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, filteredData);\n\n setAllData((prevData) => [...prevData, ...filteredData]);\n } else {\n setAllData(() => [...filteredData]);\n }\n }\n }, [isFetching, data]);\n\n if (!isFetching && (isError || data?.response?.statusEnum != 1)) {\n return (\n <div className=\"h-screen w-full text-white/70 grid place-content-center\">\n <p>Something went wrong</p>\n </div>\n );\n }\n\n return (\n <div className=\"px-2\">\n <div className=\"__BACK_BTN_CONTAINER__\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </div>\n <div className=\"mt-[60px]\">\n <SliderHeader title={`${categorytype} Companions`} />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <>\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px] flex justify-start items-center flex-wrap gap-[60px]\"\n >\n {allData?.map((data) => {\n return (\n <SliderCards\n key={data._id}\n item={data}\n id={categorytype}\n type=\"COMP\"\n baseRoute=\"marketplace/companions\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum ? (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n ) : null}\n </div>\n </>\n </div>\n </div>\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center h-[30vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This companion is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n );\n};\n\nexport default CompanionsList;\n","import React from \"react\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nimport CoinStarIcon from \"assets/images/coin_star.png\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { getFstrDiscount, removeTrailingZeroes } from \"utils\";\nimport DummyCart from \"assets/images/dummy-cart.png\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nconst BuyNowNoTheme = ({\n title,\n price,\n type,\n handleData,\n onBuyHandle,\n isLocked,\n}) => {\n const handleClick = () => {\n handleData(\"BuyNow\");\n };\n const navigate = useNavigate();\n const location = useLocation();\n\n let sanitizedPrice = price?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedPrice.split(\".\").length > 2) {\n sanitizedPrice =\n sanitizedPrice.split(\".\")[0] + \".\" + sanitizedPrice.split(\".\")[1];\n }\n\n return (\n <>\n <p className=\"my-5 text-white/80 text-[14px] font-bold leading-[17.07px]\">\n Purchase:\n </p>\n <div className=\"mt-3 mb-3 text-[20px] leading-[30px] font-bold\">\n <img\n src={CoinStarIcon}\n className=\"inline h-[38px] w-[38px] object-cover rounded-full\"\n alt=\"coin_icon\"\n />\n <span className=\"text-[#FBBC5E] pl-2\">{sanitizedPrice} USD | </span>\n <span className=\"text-[#FFDF6E]\">\n {sanitizedPrice &&\n removeTrailingZeroes(convertUsdToFstrPrice(sanitizedPrice))}{\" \"}\n FSTR{\" \"}\n <span className=\"text-[16px] leading-[24px]\">\n (≈{\" \"}\n {sanitizedPrice &&\n removeTrailingZeroes(\n convertUsdToMarketFstrUsd(sanitizedPrice)\n )}{\" \"}\n USD)\n </span>\n </span>\n </div>\n {/* {title && (\n <h6\n className=\"mt-4 text-[14px] text-[#FFFFFF66] font-body font-semibold\"\n dangerouslySetInnerHTML={{ __html: title }}\n ></h6>\n )} */}\n {/* {price && type === \"product\" && (\n <div className=\"my-4 flex gap-2 items-center\">\n <img alt=\"coin\" src={CoinIcon} className=\"w-auto h-auto\" />\n <span className=\"font-extrabold\">{price}</span>\n </div>\n )} */}\n <div className=\"mt-7 mb-3 bg-[#473e30] p-4 rounded-[8px]\">\n <p className=\"text-[#FFCE1F] font-bold\">\n Purchase in FSTR to receive a DISCOUNT of {getFstrDiscount() || \"NA\"}%\n </p>\n <p className=\"mt-2\">\n Select FSTR at checkout to make your purchase and unlock a special\n discount.{\" \"}\n </p>\n </div>\n {isLocked ? (\n <div className=\"relative\">\n <img src={DummyCart} className=\"blur w-full\" alt=\"\" />\n <div\n className=\"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center text-white font-bold w-full flex justify-center items-center\"\n style={{\n zIndex: 10, // Ensures the text is on top of the image\n }}\n >\n <button\n type=\"button\"\n className=\"flex font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-auto text-black py-3 px-5 mt-3 items-center\"\n onClick={() =>\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n })\n }\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"mb-1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7734 10.9092C11.3506 10.9092 11.0078 10.5664 11.0078 10.1436V5.6853C11.0078 4.18271 9.78534 2.9602 8.28271 2.9602C6.78012 2.9602 5.55762 4.18267 5.55762 5.6853V8.27833C5.55762 8.70117 5.21484 9.04395 4.79199 9.04395C4.36915 9.04395 4.02637 8.70117 4.02637 8.27833V5.6853C4.02637 3.33833 5.93574 1.42896 8.28271 1.42896C10.6297 1.42896 12.5391 3.33833 12.5391 5.6853V10.1436C12.5391 10.5664 12.1963 10.9092 11.7734 10.9092Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9411 15.5455H3.62432C2.75447 15.5455 2.04932 14.8404 2.04932 13.9705V8.58403C2.04932 7.71419 2.75447 7.00903 3.62432 7.00903H12.9411C13.811 7.00903 14.5161 7.71419 14.5161 8.58403V13.9705C14.5161 14.8404 13.811 15.5455 12.9411 15.5455Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.41587 14.2762H3.33696C3.08843 14.2762 2.88696 14.0747 2.88696 13.8262V8.72832C2.88696 8.47979 3.08843 8.27832 3.33696 8.27832H3.41587C3.6644 8.27832 3.86587 8.47979 3.86587 8.72832V13.8262C3.86587 14.0747 3.6644 14.2762 3.41587 14.2762Z\"\n fill=\"currentColor\"\n />\n </svg>\n   Sign In To Continue\n </button>\n </div>\n </div>\n ) : (\n <>\n <button\n type=\"button\"\n className=\"font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-full text-black py-3 px-5 mt-5\"\n onClick={onBuyHandle}\n >\n {type === \"content\" ? \"Proceed to Checkout\" : \"Buy Now\"}\n </button>\n <button\n type=\"button\"\n className=\"font-bold text-sm md:text-base rounded-lg border-[1.5px] border-sec justify-center w-full py-2.5 px-5 flex gap-2 mt-5 items-center btn-outline hover:text-dark\"\n onClick={handleClick}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"25\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n >\n <path\n d=\"M22.322 7.931C22.23 7.79808 22.1072 7.68943 21.964 7.61436C21.8209 7.5393 21.6616 7.50006 21.5 7.5H7.833L6.679 4.73C6.52769 4.36523 6.27147 4.05359 5.94282 3.83462C5.61418 3.61564 5.22791 3.49918 4.833 3.5H2.5V5.5H4.833L9.577 16.885C9.65299 17.0672 9.78118 17.2228 9.94542 17.3322C10.1097 17.4416 10.3026 17.5 10.5 17.5H18.5C18.917 17.5 19.29 17.241 19.437 16.852L22.437 8.852C22.4937 8.70063 22.5129 8.53776 22.4928 8.37735C22.4728 8.21695 22.4142 8.06379 22.322 7.931Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11 21.5C11.8284 21.5 12.5 20.8284 12.5 20C12.5 19.1716 11.8284 18.5 11 18.5C10.1716 18.5 9.5 19.1716 9.5 20C9.5 20.8284 10.1716 21.5 11 21.5Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18 21.5C18.8284 21.5 19.5 20.8284 19.5 20C19.5 19.1716 18.8284 18.5 18 18.5C17.1716 18.5 16.5 19.1716 16.5 20C16.5 20.8284 17.1716 21.5 18 21.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n Add to Cart\n </button>\n </>\n )}\n </>\n );\n};\n\nexport default BuyNowNoTheme;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Free\n *@developer Sudhanshu\n */\n\nimport React from \"react\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nimport DummyCart from \"assets/images/dummy-cart.png\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nconst Free = ({ title, handleData, isLocked }) => {\n const handleClick = () => {\n handleData(\"MyAsset\");\n };\n const navigate = useNavigate();\n const location = useLocation();\n\n return (\n <>\n {isLocked ? (\n <div className=\"relative\">\n <img src={DummyCart} className=\"blur w-full\" alt=\"\" />\n <div\n className=\"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center text-white font-bold w-full flex justify-center items-center\"\n style={{\n zIndex: 10, // Ensures the text is on top of the image\n }}\n >\n <button\n type=\"button\"\n className=\"flex font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-auto text-black py-3 px-5 mt-3 items-center\"\n onClick={() =>\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n })\n }\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"mb-1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7734 10.9092C11.3506 10.9092 11.0078 10.5664 11.0078 10.1436V5.6853C11.0078 4.18271 9.78534 2.9602 8.28271 2.9602C6.78012 2.9602 5.55762 4.18267 5.55762 5.6853V8.27833C5.55762 8.70117 5.21484 9.04395 4.79199 9.04395C4.36915 9.04395 4.02637 8.70117 4.02637 8.27833V5.6853C4.02637 3.33833 5.93574 1.42896 8.28271 1.42896C10.6297 1.42896 12.5391 3.33833 12.5391 5.6853V10.1436C12.5391 10.5664 12.1963 10.9092 11.7734 10.9092Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9411 15.5455H3.62432C2.75447 15.5455 2.04932 14.8404 2.04932 13.9705V8.58403C2.04932 7.71419 2.75447 7.00903 3.62432 7.00903H12.9411C13.811 7.00903 14.5161 7.71419 14.5161 8.58403V13.9705C14.5161 14.8404 13.811 15.5455 12.9411 15.5455Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.41587 14.2762H3.33696C3.08843 14.2762 2.88696 14.0747 2.88696 13.8262V8.72832C2.88696 8.47979 3.08843 8.27832 3.33696 8.27832H3.41587C3.6644 8.27832 3.86587 8.47979 3.86587 8.72832V13.8262C3.86587 14.0747 3.6644 14.2762 3.41587 14.2762Z\"\n fill=\"currentColor\"\n />\n </svg>\n   Sign In To Continue\n </button>\n </div>\n </div>\n ) : (\n <>\n <h4\n className=\"text-white text-base mb-0\"\n dangerouslySetInnerHTML={{ __html: title }}\n ></h4>\n <button\n type=\"button\"\n onClick={handleClick}\n className=\"font-bold rounded-lg border-[1.5px] border-sec justify-center w-full py-3 px-5 flex gap-2 mt-5\"\n >\n Add to my Assets\n </button>\n </>\n )}\n </>\n );\n};\n\nexport default Free;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Premium\n *@developer Sudhanshu\n */\n\nimport React from \"react\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nimport CoinStarIcon from \"assets/images/coin_star.png\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { getFstrDiscount, removeTrailingZeroes } from \"utils\";\nimport DummyCart from \"assets/images/dummy-cart.png\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nconst Premium = ({ title, price, plan = \"Month\", handleData, justAdded, isLocked}) => {\n const handleClick = () => {\n handleData(\"Premium\");\n };\n const navigate = useNavigate();\n const location = useLocation();\n\n let sanitizedPrice = price?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedPrice.split(\".\").length > 2) {\n sanitizedPrice =\n sanitizedPrice.split(\".\")[0] + \".\" + sanitizedPrice.split(\".\")[1];\n }\n\n return justAdded ? (\n <button\n type=\"button\"\n className=\"font-bold rounded-lg bg-[#FBBC5E0D] bg-opacity-5 justify-center w-full py-4 px-5 flex gap-2 mt-5 items-center text-[#25B39E]\"\n >\n <svg\n className=\"stroke-[#25B39E]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <path\n d=\"M21.5 6.99984L9.5 18.9998L4 13.4998L5.41 12.0898L9.5 16.1698L20.09 5.58984L21.5 6.99984Z\"\n fill=\"currentColor\"\n />\n </svg>\n You've already subscribed this channel.\n </button>\n ) : (\n <>\n <h4\n className=\"text-white text-base mb-0\"\n dangerouslySetInnerHTML={{ __html: title }}\n ></h4>\n <p className=\"mt-[25px] text-[#FFFFFF66] text-[14px] font-bold leading-[17.07px] font-body\">\n Monthly Subscription:\n </p>\n <div className=\"mt-3 mb-3 text-[20px] leading-[30px] font-bold\">\n <img\n src={CoinStarIcon}\n className=\"inline h-[38px] w-[38px] object-cover rounded-full\"\n alt=\"coin_icon\"\n />\n <span className=\"text-[#FBBC5E] pl-2\">{sanitizedPrice} USD | </span>\n <span className=\"text-[#FFDF6E]\">\n {sanitizedPrice &&\n removeTrailingZeroes(convertUsdToFstrPrice(sanitizedPrice))}{\" \"}\n FSTR{\" \"}\n <span className=\"text-[16px] leading-[24px]\">\n (≈{\" \"}\n {sanitizedPrice &&\n removeTrailingZeroes(\n convertUsdToMarketFstrUsd(sanitizedPrice)\n )}{\" \"}\n USD)\n </span>\n </span>\n </div>\n <div className=\"mt-5 mb-5 bg-[#4d4232] p-4 rounded-[8px]\">\n <p className=\"text-[#FFCE1F] font-bold\">\n Purchase in FSTR to receive a DISCOUNT of {getFstrDiscount() || \"NA\"}%\n </p>\n <p className=\"mt-2\">\n Select FSTR at checkout to make your purchase and unlock a special\n discount.{\" \"}\n </p>\n </div>\n {isLocked ? (\n <div className=\"relative\">\n <img src={DummyCart} className=\"blur w-full\" alt=\"\" />\n <div\n className=\"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center text-white font-bold w-full flex justify-center items-center\"\n style={{\n zIndex: 10, // Ensures the text is on top of the image\n }}\n >\n <button\n type=\"button\"\n className=\"flex font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-auto text-black py-3 px-5 mt-3 items-center\"\n onClick={() =>\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n })\n }\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"mb-1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7734 10.9092C11.3506 10.9092 11.0078 10.5664 11.0078 10.1436V5.6853C11.0078 4.18271 9.78534 2.9602 8.28271 2.9602C6.78012 2.9602 5.55762 4.18267 5.55762 5.6853V8.27833C5.55762 8.70117 5.21484 9.04395 4.79199 9.04395C4.36915 9.04395 4.02637 8.70117 4.02637 8.27833V5.6853C4.02637 3.33833 5.93574 1.42896 8.28271 1.42896C10.6297 1.42896 12.5391 3.33833 12.5391 5.6853V10.1436C12.5391 10.5664 12.1963 10.9092 11.7734 10.9092Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9411 15.5455H3.62432C2.75447 15.5455 2.04932 14.8404 2.04932 13.9705V8.58403C2.04932 7.71419 2.75447 7.00903 3.62432 7.00903H12.9411C13.811 7.00903 14.5161 7.71419 14.5161 8.58403V13.9705C14.5161 14.8404 13.811 15.5455 12.9411 15.5455Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.41587 14.2762H3.33696C3.08843 14.2762 2.88696 14.0747 2.88696 13.8262V8.72832C2.88696 8.47979 3.08843 8.27832 3.33696 8.27832H3.41587C3.6644 8.27832 3.86587 8.47979 3.86587 8.72832V13.8262C3.86587 14.0747 3.6644 14.2762 3.41587 14.2762Z\"\n fill=\"currentColor\"\n />\n </svg>\n   Sign In To Continue\n </button>\n </div>\n </div>\n ) : (\n <button\n type=\"button\"\n onClick={handleClick}\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 mt-5 flex justify-center gap-2 items-center\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M6 22C5.45 22 4.979 21.804 4.587 21.412C4.195 21.02 3.99934 20.5493 4 20V10C4 9.45 4.196 8.979 4.588 8.587C4.98 8.195 5.45067 7.99933 6 8H7V6C7 4.61667 7.48767 3.43733 8.463 2.462C9.43834 1.48667 10.6173 0.999334 12 1C13.3833 1 14.5627 1.48767 15.538 2.463C16.5133 3.43833 17.0007 4.61733 17 6V8H18C18.55 8 19.021 8.196 19.413 8.588C19.805 8.98 20.0007 9.45067 20 10V20C20 20.55 19.804 21.021 19.412 21.413C19.02 21.805 18.5493 22.0007 18 22H6ZM6 20H18V10H6V20ZM12 17C12.55 17 13.021 16.804 13.413 16.412C13.805 16.02 14.0007 15.5493 14 15C14 14.45 13.804 13.979 13.412 13.587C13.02 13.195 12.5493 12.9993 12 13C11.45 13 10.979 13.196 10.587 13.588C10.195 13.98 9.99934 14.4507 10 15C10 15.55 10.196 16.021 10.588 16.413C10.98 16.805 11.4507 17.0007 12 17ZM9 8H15V6C15 5.16667 14.7083 4.45833 14.125 3.875C13.5417 3.29167 12.8333 3 12 3C11.1667 3 10.4583 3.29167 9.875 3.875C9.29167 4.45833 9 5.16667 9 6V8Z\"\n fill=\"black\"\n />\n </svg>\n {/* Unlock Premium @{price}/{plan} */}\n Subscribe now\n </button>\n )}\n </>\n );\n};\n\nexport default Premium;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module InMyAssets\n *@developer Sudhanshu\n */\n\nimport React from \"react\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nconst InMyAssets = ({ title, price, justAdded }) => {\n return (\n <>\n {/* <h4 className='text-white/[0.5] text-base mb-2' dangerouslySetInnerHTML={{__html: title}}></h4>\n {price && <div className='my-4 flex gap-2 items-center mb-14'>\n <img alt='coin' src={CoinIcon} className='w-auto h-auto' />\n <span className='font-extrabold'>{price}</span>\n </div>} */}\n <button\n type=\"button\"\n className=\"font-bold rounded-lg bg-[#FBBC5E0D] bg-opacity-5 justify-center w-full py-4 px-5 flex gap-2 mt-5 items-center text-[#25B39E]\"\n >\n <svg\n className=\"stroke-[#25B39E]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <path\n d=\"M21.5 6.99984L9.5 18.9998L4 13.4998L5.41 12.0898L9.5 16.1698L20.09 5.58984L21.5 6.99984Z\"\n fill=\"currentColor\"\n />\n </svg>\n {justAdded\n ? \"The content has been added to your assets\"\n : \"This content is already added to your assets.\"}\n </button>\n </>\n );\n};\n\nexport default InMyAssets;\n","import React from 'react'\n\nconst AddToCart = ({type, handleData}) => {\n const handleClick = () => {\n handleData('BuyNow');\n }\n return <button type=\"button\" className=\"font-bold rounded-lg bg-[#FBBC5E0D] bg-opacity-5 justify-center w-full py-4 px-5 flex gap-2 mt-5 items-center text-[#25B39E]\">\n <svg className='stroke-[#25B39E]' xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"24\" viewBox=\"0 0 25 24\" fill=\"none\">\n <path d=\"M21.5 6.99984L9.5 18.9998L4 13.4998L5.41 12.0898L9.5 16.1698L20.09 5.58984L21.5 6.99984Z\" fill=\"currentColor\" />\n </svg>\n This content is already added to your Cart.</button>\n}\n\nexport default AddToCart","import React, { useEffect, useState } from \"react\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nimport CoinStarIcon from \"assets/images/coin_star.png\";\nimport DummyCart from \"assets/images/dummy-cart.png\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { getFstrDiscount, removeTrailingZeroes } from \"utils\";\nimport Loader from \"components/Loader/Loader\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nconst BuyNowTheme = ({\n title,\n price,\n isLocked,\n type,\n handleData,\n onBuyHandle,\n selectedThemeIndex = 0,\n onThemeChange,\n themes,\n star,\n isAddedToCart = false,\n isOwned = false,\n isLoading = false,\n}) => {\n // themes = [\"Classic Theme\", \"Theme 1\", \"Theme 2\"];\n const [showDropDown, setShowDropDown] = useState(false);\n const navigate = useNavigate();\n const location = useLocation();\n\n const onClickDropDown = (e) => {\n e.stopPropagation();\n setShowDropDown((prev) => !prev);\n };\n\n const handleClick = () => {\n handleData(\"BuyNow\");\n };\n\n // to close dropdown on outside click\n useEffect(() => {\n const hideDropDown = () => {\n setShowDropDown(false);\n };\n\n document.addEventListener(\"click\", hideDropDown);\n\n return () => document.removeEventListener(\"click\", hideDropDown);\n }, []);\n\n let sanitizedPrice = price?.replace(/[^0-9.]/g, \"\");\n\n // if more than one decimal is present\n if (sanitizedPrice.split(\".\").length > 2) {\n sanitizedPrice =\n sanitizedPrice.split(\".\")[0] + \".\" + sanitizedPrice.split(\".\")[1];\n }\n\n return (\n <>\n {title && (\n <h6\n className=\"text-[20px] text-white leading-[24.38px] font-body font-bold\"\n dangerouslySetInnerHTML={{ __html: title }}\n ></h6>\n )}\n\n <div className=\"w-full\">\n <p className=\"mt-6 text-[14px] text-white/80 leading-[17.07px] font-body font-bold\">\n Theme selected:\n </p>\n <div\n className=\"mt-2 flex justify-between items-center px-2 py-2 border border-white/50 rounded-[8px] cursor-pointer relative\"\n onClick={onClickDropDown}\n >\n <p className=\"text-[18px] leading-[23.85px] font-medium text-[#fbbc5e]\">\n {themes[selectedThemeIndex]}\n </p>\n <div>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.50178 4.16585H17.5018C17.6536 4.16632 17.8025 4.20821 17.9323 4.28699C18.0622 4.36578 18.1681 4.47848 18.2386 4.61297C18.3092 4.74746 18.3417 4.89865 18.3327 5.05025C18.3237 5.20185 18.2736 5.34813 18.1876 5.47335L10.6876 16.3067C10.3768 16.7558 9.62845 16.7558 9.31678 16.3067L1.81678 5.47335C1.72997 5.34839 1.67906 5.20204 1.66958 5.05018C1.66011 4.89833 1.69243 4.74678 1.76304 4.61201C1.83365 4.47723 1.93984 4.36438 2.07008 4.28573C2.20032 4.20707 2.34963 4.16561 2.50178 4.16585Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n {showDropDown && (\n <div className=\"__DROPDOWN_OPTIONS__ absolute w-full top-[104%] left-0 bg-[#2b2724] rounded-[8px]\">\n {themes.map((item, index) => {\n return (\n <p\n key={index}\n className=\"py-2 px-2 text-[18px] leading-[23.85px] font-medium text-white/80 hover:text-[#fbbc5e]\"\n onClick={() => onThemeChange(index)}\n >\n {item}\n </p>\n );\n })}\n </div>\n )}\n </div>\n </div>\n\n {isLoading && (\n <div className=\"flex justify-center items-center w-full\">\n <Loader />{\" \"}\n </div>\n )}\n\n {!isLoading &&\n (isOwned ? (\n <button\n type=\"button\"\n className=\"font-bold rounded-lg bg-[#FBBC5E0D] bg-opacity-5 justify-center w-full py-4 px-5 flex gap-2 mt-8 items-center text-[#25B39E] cursor-default\"\n >\n <svg\n className=\"stroke-[#25B39E]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <path\n d=\"M21.5 6.99984L9.5 18.9998L4 13.4998L5.41 12.0898L9.5 16.1698L20.09 5.58984L21.5 6.99984Z\"\n fill=\"currentColor\"\n />\n </svg>\n This content is already added to your assets.\n </button>\n ) : isAddedToCart ? (\n <>\n <button\n type=\"button\"\n className=\"font-bold rounded-lg bg-[#FBBC5E0D] bg-opacity-5 justify-center w-full py-4 px-5 flex gap-2 mt-8 items-center text-[#25B39E] cursor-default\"\n >\n <svg\n className=\"stroke-[#25B39E]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <path\n d=\"M21.5 6.99984L9.5 18.9998L4 13.4998L5.41 12.0898L9.5 16.1698L20.09 5.58984L21.5 6.99984Z\"\n fill=\"currentColor\"\n />\n </svg>\n This theme is already added to your cart.\n </button>\n <button\n type=\"button\"\n className=\"font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-full text-black py-3 px-5 mt-3\"\n onClick={onBuyHandle}\n disabled\n >\n Purchase now\n </button>\n </>\n ) : (\n <>\n {\" \"}\n <p className=\"my-5 text-white/80 text-[14px] font-bold leading-[17.07px]\">\n Purchase:\n </p>\n <div className=\"mt-3 mb-3 text-[20px] leading-[30px] font-bold\">\n <img\n src={CoinStarIcon}\n className=\"inline h-[38px] w-[38px] object-cover rounded-full\"\n alt=\"coin_icon\"\n />\n <span className=\"text-[#FBBC5E] pl-2\">\n {sanitizedPrice} USD |{\" \"}\n </span>\n <span className=\"text-[#FFDF6E]\">\n {sanitizedPrice &&\n removeTrailingZeroes(\n convertUsdToFstrPrice(sanitizedPrice)\n )}{\" \"}\n FSTR{\" \"}\n <span className=\"text-[16px] leading-[24px]\">\n (≈{\" \"}\n {sanitizedPrice &&\n removeTrailingZeroes(\n convertUsdToMarketFstrUsd(sanitizedPrice)\n )}{\" \"}\n USD)\n </span>\n </span>\n </div>\n <div className=\"mt-5 mb-4 bg-[#4d4232] p-4 rounded-[8px]\">\n <p className=\"text-[#FFCE1F] font-bold\">\n Purchase in FSTR to receive a DISCOUNT of{\" \"}\n {getFstrDiscount() || \"NA\"}%\n </p>\n <p className=\"mt-2\">\n Select FSTR at checkout to make your purchase and unlock a\n special discount.{\" \"}\n </p>\n </div>\n {isLocked ? (\n <div className=\"relative\">\n <img src={DummyCart} className=\"blur w-full\" alt=\"\" />\n <div\n className=\"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center text-white font-bold w-full flex justify-center items-center\"\n style={{\n zIndex: 10, // Ensures the text is on top of the image\n }}\n >\n <button\n type=\"button\"\n className=\"flex font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-auto text-black py-3 px-5 mt-3 items-center\"\n onClick={() =>\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n })\n }\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"mb-1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7734 10.9092C11.3506 10.9092 11.0078 10.5664 11.0078 10.1436V5.6853C11.0078 4.18271 9.78534 2.9602 8.28271 2.9602C6.78012 2.9602 5.55762 4.18267 5.55762 5.6853V8.27833C5.55762 8.70117 5.21484 9.04395 4.79199 9.04395C4.36915 9.04395 4.02637 8.70117 4.02637 8.27833V5.6853C4.02637 3.33833 5.93574 1.42896 8.28271 1.42896C10.6297 1.42896 12.5391 3.33833 12.5391 5.6853V10.1436C12.5391 10.5664 12.1963 10.9092 11.7734 10.9092Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9411 15.5455H3.62432C2.75447 15.5455 2.04932 14.8404 2.04932 13.9705V8.58403C2.04932 7.71419 2.75447 7.00903 3.62432 7.00903H12.9411C13.811 7.00903 14.5161 7.71419 14.5161 8.58403V13.9705C14.5161 14.8404 13.811 15.5455 12.9411 15.5455Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.41587 14.2762H3.33696C3.08843 14.2762 2.88696 14.0747 2.88696 13.8262V8.72832C2.88696 8.47979 3.08843 8.27832 3.33696 8.27832H3.41587C3.6644 8.27832 3.86587 8.47979 3.86587 8.72832V13.8262C3.86587 14.0747 3.6644 14.2762 3.41587 14.2762Z\"\n fill=\"currentColor\"\n />\n </svg> \n  \n Sign In To Continue\n </button>\n </div>\n </div>\n ) : (\n <>\n <button\n type=\"button\"\n className=\"font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-full text-black py-3 px-5 mt-3\"\n onClick={onBuyHandle}\n >\n Proceed to Checkout\n </button>\n <button\n type=\"button\"\n className=\"font-bold text-sm md:text-base rounded-lg border-[1.5px] border-sec justify-center w-full py-2 px-5 flex gap-2 mt-5 items-center btn-outline hover:text-dark\"\n onClick={handleClick}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"25\"\n viewBox=\"0 0 25 25\"\n fill=\"none\"\n >\n <path\n d=\"M22.322 7.931C22.23 7.79808 22.1072 7.68943 21.964 7.61436C21.8209 7.5393 21.6616 7.50006 21.5 7.5H7.833L6.679 4.73C6.52769 4.36523 6.27147 4.05359 5.94282 3.83462C5.61418 3.61564 5.22791 3.49918 4.833 3.5H2.5V5.5H4.833L9.577 16.885C9.65299 17.0672 9.78118 17.2228 9.94542 17.3322C10.1097 17.4416 10.3026 17.5 10.5 17.5H18.5C18.917 17.5 19.29 17.241 19.437 16.852L22.437 8.852C22.4937 8.70063 22.5129 8.53776 22.4928 8.37735C22.4728 8.21695 22.4142 8.06379 22.322 7.931Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11 21.5C11.8284 21.5 12.5 20.8284 12.5 20C12.5 19.1716 11.8284 18.5 11 18.5C10.1716 18.5 9.5 19.1716 9.5 20C9.5 20.8284 10.1716 21.5 11 21.5Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18 21.5C18.8284 21.5 19.5 20.8284 19.5 20C19.5 19.1716 18.8284 18.5 18 18.5C17.1716 18.5 16.5 19.1716 16.5 20C16.5 20.8284 17.1716 21.5 18 21.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n Add to Cart\n </button>\n </>\n )}\n </>\n ))}\n </>\n );\n};\n\nexport default BuyNowTheme;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Premium\n *@developer Amardeep Singh\n */\n\nimport React from \"react\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nimport CoinStarIcon from \"assets/images/coin_star.png\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { getFstrDiscount } from \"utils\";\nimport DummyCart from \"assets/images/dummy-cart.png\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\n\nconst ChannelPremium = ({\n title,\n price,\n isLocked,\n plan = \"Month\",\n handleData,\n justAdded,\n}) => {\n const handleClick = () => {\n handleData(\"Premium\");\n };\n const navigate = useNavigate();\n const location = useLocation();\n\n return justAdded ? (\n <button\n type=\"button\"\n className=\"font-bold rounded-lg text-[20px] w-full text-[#25B39E] mt-1 \"\n disabled\n >\n Subscribed\n </button>\n ) : isLocked ? (\n <button\n type=\"button\"\n className=\"flex font-bold rounded-lg border border-sec btn-gradient text-black bg-[#1D1D1D] w-full py-1 px-5\"\n onClick={() =>\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n })\n }\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"mt-1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7734 10.9092C11.3506 10.9092 11.0078 10.5664 11.0078 10.1436V5.6853C11.0078 4.18271 9.78534 2.9602 8.28271 2.9602C6.78012 2.9602 5.55762 4.18267 5.55762 5.6853V8.27833C5.55762 8.70117 5.21484 9.04395 4.79199 9.04395C4.36915 9.04395 4.02637 8.70117 4.02637 8.27833V5.6853C4.02637 3.33833 5.93574 1.42896 8.28271 1.42896C10.6297 1.42896 12.5391 3.33833 12.5391 5.6853V10.1436C12.5391 10.5664 12.1963 10.9092 11.7734 10.9092Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9411 15.5455H3.62432C2.75447 15.5455 2.04932 14.8404 2.04932 13.9705V8.58403C2.04932 7.71419 2.75447 7.00903 3.62432 7.00903H12.9411C13.811 7.00903 14.5161 7.71419 14.5161 8.58403V13.9705C14.5161 14.8404 13.811 15.5455 12.9411 15.5455Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.41587 14.2762H3.33696C3.08843 14.2762 2.88696 14.0747 2.88696 13.8262V8.72832C2.88696 8.47979 3.08843 8.27832 3.33696 8.27832H3.41587C3.6644 8.27832 3.86587 8.47979 3.86587 8.72832V13.8262C3.86587 14.0747 3.6644 14.2762 3.41587 14.2762Z\"\n fill=\"currentColor\"\n />\n </svg>\n   Sign In To Subscribe\n </button>\n ) : (\n <button\n type=\"button\"\n onClick={handleClick}\n className=\"font-bold rounded-lg border border-sec btn-outline hover:text-black bg-[#1D1D1D] w-full py-1 px-5 \"\n >\n Subscribe\n </button>\n );\n};\n\nexport default ChannelPremium;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module BuyCards\n *@developer Sudhanshu\n\n Type : BuyNow || Free || Premium || MyAsset\n Card : content || product\n\n */\n\nimport React from \"react\";\nimport BuyNowNoTheme from \"./BuyNowNoTheme\";\nimport Free from \"./free\";\nimport Premium from \"./premium\";\nimport InMyAssets from \"./myAssets\";\nimport AddToCart from \"./AddToCart\";\nimport BuyNowTheme from \"./BuyNowTheme\";\nimport ChannelPremium from \"./channelPremium\";\n\nconst BuyCards = ({\n type,\n card,\n title,\n price,\n plan,\n handleData,\n justAdded,\n onBuyHandle,\n selectedThemeIndex,\n onThemeChange,\n themes,\n star,\n isAddedToCart,\n isOwned,\n isSubscription,\n isLoading = false,\n}) => {\n const handleClick = (e) => {\n handleData(e);\n };\n const isLocked = !localStorage.getItem(\"accessToken\");\n return (\n <div className=\"rounded-[20px] \">\n {type === \"BuyNow\" && (\n <BuyNowNoTheme\n type={card}\n title={title}\n price={price}\n isLocked={isLocked}\n handleData={handleClick}\n onBuyHandle={onBuyHandle}\n />\n )}\n {type === \"BuyNowTheme\" && (\n <BuyNowTheme\n type={card}\n title={title}\n price={price}\n isLocked={isLocked}\n handleData={handleClick}\n onBuyHandle={onBuyHandle}\n selectedThemeIndex={selectedThemeIndex}\n onThemeChange={onThemeChange}\n themes={themes}\n star={star}\n isAddedToCart={isAddedToCart}\n isOwned={isOwned}\n isLoading={isLoading}\n />\n )}\n {type === \"Free\" && (\n <Free title={title} isLocked={isLocked} handleData={handleClick} />\n )}\n {type === \"Premium\" && (\n <Premium\n price={price}\n isLocked={isLocked}\n plan={plan}\n title={title}\n handleData={handleClick}\n justAdded={justAdded}\n />\n )}\n {type === \"MyAsset\" && (\n <InMyAssets\n price={price}\n isLocked={isLocked}\n title={title}\n handleData={handleClick}\n justAdded={justAdded}\n />\n )}\n {type === \"AddToCart\" && (\n <AddToCart\n type={card}\n title={title}\n price={price}\n isLocked={isLocked}\n handleData={handleClick}\n />\n )}\n {type === \"ChannelPremium\" && (\n <ChannelPremium\n price={price}\n isLocked={isLocked}\n plan={plan}\n title={title}\n handleData={handleClick}\n justAdded={justAdded}\n />\n )}\n </div>\n );\n};\n\nexport default BuyCards;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Shubham K <shubhamk@instaacoders.com>\n */\n\nimport React, { useState } from \"react\";\n\n// This component defines a wrapper component called PopupWrapper, it will wrap other components and display them as a popup\n// will only display the popup if open is true\n// onClose will be called on the parent component when the popup closes, click anywhere outside the children to close popup\n// pass canClose=false from parent component if need to prevent popup from closing\nconst PopupWrapper = (props) => {\n const {\n open,\n onClose,\n canClose = true,\n position = \"center\",\n children,\n } = props;\n\n const [isOpen, setIsOpen] = useState(open);\n\n if (!isOpen) {\n return null;\n }\n\n const closePopup = () => {\n if (canClose) {\n if (typeof onClose == \"function\") {\n onClose();\n }\n setIsOpen(false);\n }\n };\n\n let position_classes =\n \"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full md:w-1/2 max-w-[650px] mt-[30px] overflow-y-auto showScrollbar\";\n if (position == \"top\") {\n position_classes =\n \"top-[100px] left-1/2 -translate-x-1/2 mx-auto w-full max-w-[1025px] max-h-[675px]\";\n }\n\n return (\n <div\n className=\"__DIALOG_CONTAINER__ !z-[999999] fixed top-0 left-0 w-screen h-screen !bg-black/70\"\n onClick={closePopup}\n >\n <div\n className={`__MAIN_CONTAINER__ absolute max-h-[80vh] ${position_classes}`}\n onClick={(e) => e.stopPropagation()}\n >\n {React.cloneElement(children, {\n ...props,\n })}\n </div>\n </div>\n );\n};\n\nexport default PopupWrapper;\n","import React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport CrossIcon from \"assets/images/red_cross.png\";\nimport CheckIcon from \"assets/images/check_icon.png\";\nimport ErrorCrossIcon from \"assets/images/alert_icon.png\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\n// import PendingIcon from \"assets/images/loading.png\";\nimport PendingIcon from \"assets/images/processingpending.png\";\n\nconst Alert = ({\n open,\n onClose,\n canClose,\n heading,\n message,\n isSuccess = true,\n buttonText = \"OK\",\n showCloseIcon = false,\n onClickCloseIcon,\n}) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"pt-8 pb-8 px-12 max-sm:px-4 rounded-lg bg-[#262626] relative\">\n {showCloseIcon && (\n <div\n onClick={onClickCloseIcon}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] absolute top-[-15px] right-[-25px] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[40px] h-[40px]\"\n >\n <img\n src={ModalCloseIcon}\n className=\"w-[15px] h-[15px]\"\n alt=\"modal_close_btn\"\n />\n </div>\n )}\n <div className=\"__ICON_CONTAINER__ grid place-content-center\">\n {isSuccess == true ? (\n <div className=\"h-[70px] w-[70px] rounded-full\">\n <img\n className=\"h-full w-full object-cover\"\n src={CheckIcon}\n alt=\"processing\"\n />\n </div>\n ) : isSuccess == \"pending\" ? (\n <div className=\"h-[70px] w-[70px] rounded-full\">\n <img\n className=\"h-full w-full object-cover\"\n src={PendingIcon}\n alt=\"processing\"\n />\n </div>\n ) : (\n <div className=\"h-[70px] w-[70px] rounded-full\">\n <img\n className=\"h-full w-full object-cover\"\n src={ErrorCrossIcon}\n alt=\"processing\"\n />\n </div>\n )}\n </div>\n {isSuccess == true && (\n <p className=\"__HEADING__ mt-8 text-xl font-heading text-center\">\n {heading}\n </p>\n )}\n {isSuccess == \"pending\" && (\n <p className=\"__HEADING__ mt-8 text-xl font-heading text-center\">\n {heading}\n </p>\n )}\n {isSuccess == \"error\" && heading && (\n <p className=\"__HEADING__ mt-8 text-xl font-heading text-center\">\n {heading}\n </p>\n )}\n <p\n className={`mt-8 font-body text-center ${\n isSuccess ? \"text-md\" : \"text-lg\"\n }`}\n >\n {message}\n </p>\n <div className=\"__ACTION_BTN_CONT__\">\n <button\n className={`mt-8 mx-auto font-bold rounded-lg btn-gradient text-black py-3 px-12 flex justify-center items-center`}\n type=\"button\"\n onClick={onClose}\n >\n {buttonText}\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default Alert;\n","import { ITokenMetadata } from '../types'\n\nexport const tokens: ITokenMetadata[] = [\n {\n \"id\": \"moon\",\n \"symbol\": \"moon\",\n \"name\": \"r/CryptoCurrency Moons\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-nova\": \"0x0057ac2d777797d31cd3f8f13bf5e927571d6ad0\",\n \"arbitrum-one\": \"0x24404dc041d74cd03cfe28855f555559390c931b\"\n },\n \"marketCapRank\": 1104\n },\n {\n \"id\": \"bakerytoken\",\n \"symbol\": \"bake\",\n \"name\": \"BakerySwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xe02df9e3e622debdd69fb838bb799e3f168902c5\",\n \"harmony-shard-0\": \"0x4da9464daf2b878e32e29115e2cfd786fe84692a\"\n },\n \"marketCapRank\": 451\n },\n {\n \"id\": \"alva\",\n \"symbol\": \"aa\",\n \"name\": \"ALVA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x99e6ca7e6c5c5aea22b4a992eb6895bc6d433298\"\n },\n \"marketCapRank\": 788\n },\n {\n \"id\": \"aag-ventures\",\n \"symbol\": \"aag\",\n \"name\": \"AAG\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5ba19d656b65f1684cfea4af428c23b9f3628f97\",\n \"harmony-shard-0\": \"0xae0609a062a4eaed49de28c5f6a193261e0150ea\"\n },\n \"marketCapRank\": 2030\n },\n {\n \"id\": \"aave\",\n \"symbol\": \"aave\",\n \"name\": \"Aave\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9\",\n \"avalanche\": \"0x63a72806098bd3d9520cc43356dd78afe5d386d9\",\n \"sora\": \"0x0091bd8d8295b25cab5a7b8b0e44498e678cfc15d872ede3215f7d4c7635ba36\",\n \"optimistic-ethereum\": \"0x76fb31fb4af56892a25e32cfc43de717950c9278\",\n \"near-protocol\": \"7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9.factory.bridge.near\",\n \"huobi-token\": \"0x202b4936fe1a82a4965220860ae46d7d3939bb25\",\n \"polygon-pos\": \"0xd6df932a45c0f255f85145f286ea0b292b21c90b\",\n \"fantom\": \"0x6a07a792ab2965c72a5b8088d3a069a7ac3a993b\",\n \"harmony-shard-0\": \"0xcf323aad9e522b93f11c352caa519ad0e14eb40f\",\n \"binance-smart-chain\": \"0xfb6115445bff7b52feb98650c87f44907e58f802\",\n \"energi\": \"0xa7f2f790355e0c32cab03f92f6eb7f488e6f049a\"\n },\n \"marketCapRank\": 66\n },\n {\n \"id\": \"aavegotchi\",\n \"symbol\": \"ghst\",\n \"name\": \"Aavegotchi\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3f382dbd960e3a9bbceae22651e88158d2791550\",\n \"polygon-pos\": \"0x385eeac5cb85a38a9a07a70c73e0a3271cfb54a7\",\n \"energi\": \"0x4bd75f8c7e067ea9b6e2dfbecd99d805396bc5ff\"\n },\n \"marketCapRank\": 575\n },\n {\n \"id\": \"alpha-finance\",\n \"symbol\": \"alpha\",\n \"name\": \"Stella\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa1faa113cbe53436df28ff0aee54275c13b40975\",\n \"avalanche\": \"0x2147efff675e4a4ee1c2f918d181cdbd7a8e208f\",\n \"binance-smart-chain\": \"0xa1faa113cbe53436df28ff0aee54275c13b40975\",\n \"energi\": \"0x05b357201b31093a13a22d76de1b1eb23ad83017\"\n },\n \"marketCapRank\": 431\n },\n {\n \"id\": \"metadium\",\n \"symbol\": \"meta\",\n \"name\": \"Metadium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xde2f7766c8bf14ca67193128535e5c7454f8387c\"\n },\n \"marketCapRank\": 562\n },\n {\n \"id\": \"airswap\",\n \"symbol\": \"ast\",\n \"name\": \"AirSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x27054b13b1b798b345b591a4d22e6562d47ea75a\"\n },\n \"marketCapRank\": 921\n },\n {\n \"id\": \"access-protocol\",\n \"name\": \"Access Protocol\",\n \"variants\": [\n \"branded\"\n ],\n \"symbol\": \"acs\",\n \"marketCapRank\": 0,\n \"addresses\": {}\n },\n {\n \"id\": \"acet-token\",\n \"name\": \"Acet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"act\",\n \"marketCapRank\": 0,\n \"addresses\": {}\n },\n {\n \"id\": \"acquire-fi\",\n \"symbol\": \"acq\",\n \"name\": \"Acquire.Fi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4bdcb66b968060d9390c1d12bd29734496205581\"\n },\n \"marketCapRank\": 1334\n },\n {\n \"id\": \"acria\",\n \"symbol\": \"acria\",\n \"name\": \"Acria.AI\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x44f5909e97e1cbf5fbbdf0fc92fd83cde5d5c58a\",\n \"binance-smart-chain\": \"0x44f5909e97e1cbf5fbbdf0fc92fd83cde5d5c58a\"\n },\n \"marketCapRank\": 1944\n },\n {\n \"id\": \"across-protocol\",\n \"symbol\": \"acx\",\n \"name\": \"Across Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x44108f0223a3c3028f5fe7aec7f9bb2e66bef82f\",\n \"polygon-pos\": \"0xf328b73b6c685831f238c30a23fc19140cb4d8fc\",\n \"optimistic-ethereum\": \"0xff733b2a3557a7ed6697007ab5d11b79fdd1b76b\",\n \"arbitrum-one\": \"0x53691596d1bce8cea565b84d4915e69e03d9c99d\",\n \"boba\": \"0x96821b258955587069f680729cd77369c0892b40\"\n },\n \"marketCapRank\": 568\n },\n {\n \"id\": \"adapad\",\n \"symbol\": \"adapad\",\n \"name\": \"ADAPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xdb0170e2d0c1cc1b2e7a90313d9b9afa4f250289\",\n \"ethereum\": \"0xdb0170e2d0c1cc1b2e7a90313d9b9afa4f250289\"\n },\n \"marketCapRank\": 1962\n },\n {\n \"id\": \"frencoin-2\",\n \"symbol\": \"fren\",\n \"name\": \"Frencoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2541\n },\n {\n \"id\": \"adappter-token\",\n \"symbol\": \"adp\",\n \"name\": \"Adappter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc314b0e758d5ff74f63e307a86ebfe183c95767b\"\n },\n \"marketCapRank\": 1385\n },\n {\n \"id\": \"cardano\",\n \"symbol\": \"ada\",\n \"name\": \"Cardano\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 10\n },\n {\n \"id\": \"adex\",\n \"symbol\": \"adx\",\n \"name\": \"AdEx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xade00c28244d5ce17d72e40330b1c318cd12b7c3\",\n \"polygon-pos\": \"0xdda7b23d2d72746663e7939743f929a3d85fc975\",\n \"binance-smart-chain\": \"0x6bff4fb161347ad7de4a625ae5aa3a1ca7077819\"\n },\n \"marketCapRank\": 866\n },\n {\n \"id\": \"adshares\",\n \"symbol\": \"ads\",\n \"name\": \"Adshares\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcfcecfe2bd2fed07a9145222e8a7ad9cf1ccd22a\",\n \"binance-smart-chain\": \"0xcfcecfe2bd2fed07a9145222e8a7ad9cf1ccd22a\",\n \"polygon-pos\": \"0x598e49f01befeb1753737934a5b11fea9119c796\"\n },\n \"marketCapRank\": 1174\n },\n {\n \"id\": \"adventure-gold\",\n \"symbol\": \"agld\",\n \"name\": \"Adventure Gold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x32353a6c91143bfd6c7d363b546e62a9a2489a20\"\n },\n \"marketCapRank\": 457\n },\n {\n \"id\": \"advertise-coin\",\n \"symbol\": \"adco\",\n \"name\": \"Advertise Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb6c3dc857845a713d3531cea5ac546f6767992f4\"\n },\n \"marketCapRank\": 947\n },\n {\n \"id\": \"aegis-ai\",\n \"symbol\": \"aegis\",\n \"name\": \"Aegis Ai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x55a8f6c6b3aa58ad6d1f26f6afeded78f32e19f4\"\n },\n \"marketCapRank\": 1007\n },\n {\n \"id\": \"aelf\",\n \"symbol\": \"elf\",\n \"name\": \"aelf\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbf2179859fc6d5bee9bf9158632dc51678a4100e\"\n },\n \"marketCapRank\": 195\n },\n {\n \"id\": \"aergo\",\n \"symbol\": \"aergo\",\n \"name\": \"Aergo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x91af0fbb28aba7e31403cb457106ce79397fd4e6\"\n },\n \"marketCapRank\": 592\n },\n {\n \"id\": \"aerodrome-finance\",\n \"symbol\": \"aero\",\n \"name\": \"Aerodrome Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"base\": \"0x940181a94a35a4569e4529a3cdfb74e38fd98631\"\n },\n \"marketCapRank\": 176\n },\n {\n \"id\": \"aeternity\",\n \"symbol\": \"ae\",\n \"name\": \"Aeternity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5ca9a71b1d01849c0a95490cc00559717fcf0d1d\"\n },\n \"marketCapRank\": 1244\n },\n {\n \"id\": \"athenadao-token\",\n \"symbol\": \"ath\",\n \"name\": \"AthenaDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa4ffdf3208f46898ce063e25c1c43056fa754739\"\n },\n \"marketCapRank\": 1593\n },\n {\n \"id\": \"affyn\",\n \"symbol\": \"fyn\",\n \"name\": \"Affyn\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x3b56a704c01d650147ade2b8cee594066b3f9421\"\n },\n \"marketCapRank\": 848\n },\n {\n \"id\": \"teh-fund\",\n \"symbol\": \"fund\",\n \"name\": \"Teh Fund\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7d8d7c26179b7a6aebbf66a91c38ed92d5b4996b\"\n },\n \"marketCapRank\": 2557\n },\n {\n \"id\": \"delysium\",\n \"symbol\": \"agi\",\n \"name\": \"Delysium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7da2641000cbb407c329310c461b2cb9c70c3046\",\n \"binance-smart-chain\": \"0x818835503f55283cd51a4399f595e295a9338753\"\n },\n \"marketCapRank\": 277\n },\n {\n \"id\": \"agoras-currency-of-tau\",\n \"symbol\": \"agrs\",\n \"name\": \"Agoras: Currency of Tau\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x738865301a9b7dd80dc3666dd48cf034ec42bdda\"\n },\n \"marketCapRank\": 588\n },\n {\n \"id\": \"agoric\",\n \"symbol\": \"bld\",\n \"name\": \"Agoric\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/2DA9C149E9AD2BD27FEFA635458FB37093C256C1A940392634A16BEA45262604\",\n \"archway\": \"ibc/8CB56C813A5C2387140BBEAABCCE797AFA0960C8D07B171F71A5188726CFED2C\",\n \"secret\": \"secret1uxvpq889uxjcpj656yjjexsqa3zqm6ntkyjsjq\"\n },\n \"marketCapRank\": 576\n },\n {\n \"id\": \"ahatoken\",\n \"symbol\": \"aht\",\n \"name\": \"AhaToken\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 771\n },\n {\n \"id\": \"a-hunters-dream\",\n \"symbol\": \"caw\",\n \"name\": \"A Hunters Dream\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf3b9569f82b18aef890de263b84189bd33ebe452\"\n },\n \"marketCapRank\": 725\n },\n {\n \"id\": \"ait-protocol\",\n \"symbol\": \"ait\",\n \"name\": \"AIT Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x89d584a1edb3a70b3b07963f9a3ea5399e38b136\"\n },\n \"marketCapRank\": 736\n },\n {\n \"id\": \"sleepless-ai\",\n \"symbol\": \"ai\",\n \"name\": \"Sleepless AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbda011d7f8ec00f66c1923b049b94c67d148d8b2\"\n },\n \"marketCapRank\": 321\n },\n {\n \"id\": \"aimbot\",\n \"symbol\": \"aimbot\",\n \"name\": \"Aimbot AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0c48250eb1f29491f1efbeec0261eb556f0973c7\"\n },\n \"marketCapRank\": 1820\n },\n {\n \"id\": \"aimedis-new\",\n \"symbol\": \"aimx\",\n \"name\": \"Aimedis (NEW)\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x33b6d77c607ea499ab5db7e2201c5a516a78a5db\"\n },\n \"marketCapRank\": 1928\n },\n {\n \"id\": \"ai-network\",\n \"symbol\": \"ain\",\n \"name\": \"AI Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3a810ff7211b40c4fa76205a14efe161615d0385\"\n },\n \"marketCapRank\": 1388\n },\n {\n \"id\": \"aioz-network\",\n \"symbol\": \"aioz\",\n \"name\": \"AIOZ Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x626e8036deb333b408be468f951bdb42433cbf18\",\n \"binance-smart-chain\": \"0x33d08d8c7a168333a85285a68c0042b39fc3741d\"\n },\n \"marketCapRank\": 122\n },\n {\n \"id\": \"aipad\",\n \"symbol\": \"aipad\",\n \"name\": \"AIPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe55d97a97ae6a17706ee281486e98a84095d8aaf\",\n \"binance-smart-chain\": \"0xe55d97a97ae6a17706ee281486e98a84095d8aaf\"\n },\n \"marketCapRank\": 1249\n },\n {\n \"id\": \"altair\",\n \"symbol\": \"air\",\n \"name\": \"Altair\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1299\n },\n {\n \"id\": \"airbloc-protocol\",\n \"symbol\": \"abl\",\n \"name\": \"Airbloc\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf8b358b3397a8ea5464f8cc753645d42e14b79ea\"\n },\n \"marketCapRank\": 2698\n },\n {\n \"id\": \"airight\",\n \"symbol\": \"airi\",\n \"name\": \"aiRight\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7e2a35c746f2f7c240b664f1da4dd100141ae71f\"\n },\n \"marketCapRank\": 1615\n },\n {\n \"id\": \"airtor-protocol\",\n \"symbol\": \"ator\",\n \"name\": \"AirTor Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0f7b3f5a8fed821c5eb60049538a548db2d479ce\"\n },\n \"marketCapRank\": 313\n },\n {\n \"id\": \"aisociety\",\n \"symbol\": \"ais\",\n \"name\": \"AISociety\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x42a7797351dfd281a80807196c8508eb70bb2af9\"\n },\n \"marketCapRank\": 2439\n },\n {\n \"id\": \"akash-network\",\n \"symbol\": \"akt\",\n \"name\": \"Akash Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"akash\": \"uakt\"\n },\n \"marketCapRank\": 102\n },\n {\n \"id\": \"cashaa\",\n \"symbol\": \"cas\",\n \"name\": \"Cashaa\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x780207b8c0fdc32cf60e957415bfa1f2d4d9718c\"\n },\n \"marketCapRank\": 2057\n },\n {\n \"id\": \"alaska-gold-rush\",\n \"symbol\": \"carat\",\n \"name\": \"Alaska Gold Rush\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x426c1c971fb00caaf1883bd801323a8becb0c919\"\n },\n \"marketCapRank\": 2010\n },\n {\n \"id\": \"alchemix\",\n \"symbol\": \"alcx\",\n \"name\": \"Alchemix\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdbdb4d16eda451d0503b854cf79d55697f90c8df\",\n \"near-protocol\": \"dbdb4d16eda451d0503b854cf79d55697f90c8df.factory.bridge.near\"\n },\n \"marketCapRank\": 616\n },\n {\n \"id\": \"alchemy-pay\",\n \"symbol\": \"ach\",\n \"name\": \"Alchemy Pay\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xed04915c23f00a313a544955524eb7dbd823143d\",\n \"binance-smart-chain\": \"0xbc7d6b50616989655afd682fb42743507003056d\"\n },\n \"marketCapRank\": 355\n },\n {\n \"id\": \"aldrin\",\n \"symbol\": \"rin\",\n \"name\": \"Aldrin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"E5ndSkaB17Dm7CsD22dvcjfrYSDLCxFcMd6z8ddCk5wp\"\n },\n \"marketCapRank\": 2004\n },\n {\n \"id\": \"aleph\",\n \"symbol\": \"aleph\",\n \"name\": \"Aleph.im\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x27702a26126e0b3702af63ee09ac4d1a084ef628\",\n \"binance-smart-chain\": \"0x82d2f8e02afb160dd5a480a617692e62de9038c4\"\n },\n \"marketCapRank\": 758\n },\n {\n \"id\": \"alephium\",\n \"symbol\": \"alph\",\n \"name\": \"Alephium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x590f820444fa3638e022776752c5eef34e2f89a6\"\n },\n \"marketCapRank\": 342\n },\n {\n \"id\": \"aleph-zero\",\n \"symbol\": \"azero\",\n \"name\": \"Aleph Zero\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 256\n },\n {\n \"id\": \"alethea-artificial-liquid-intelligence-token\",\n \"symbol\": \"ali\",\n \"name\": \"Artificial Liquid Intelligence\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b0b3a982b4634ac68dd83a4dbf02311ce324181\",\n \"cronos\": \"0x45c135c1cdce8d25a3b729a28659561385c52671\",\n \"polygon-pos\": \"0xbfc70507384047aa74c29cdc8c5cb88d0f7213ac\",\n \"base\": \"0x97c806e7665d3afd84a8fe1837921403d59f3dcc\"\n },\n \"marketCapRank\": 553\n },\n {\n \"id\": \"alexgo\",\n \"symbol\": \"alex\",\n \"name\": \"ALEX Lab\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe7c3755482d0da522678af05945062d4427e0923\"\n },\n \"marketCapRank\": 239\n },\n {\n \"id\": \"algebra\",\n \"symbol\": \"algb\",\n \"name\": \"Algebra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x0169ec1f8f639b32eec6d923e24c2a2ff45b9dd6\"\n },\n \"marketCapRank\": 1431\n },\n {\n \"id\": \"algorand\",\n \"symbol\": \"algo\",\n \"name\": \"Algorand\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 61\n },\n {\n \"id\": \"alien-worlds\",\n \"symbol\": \"tlm\",\n \"name\": \"Alien Worlds\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x888888848b652b3e3a0f34c96e00eec0f3a23f72\",\n \"binance-smart-chain\": \"0x2222227e22102fe3322098e4cbfe18cfebd57c95\"\n },\n \"marketCapRank\": 500\n },\n {\n \"id\": \"all-art\",\n \"symbol\": \"aart\",\n \"name\": \"ALL.ART\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"F3nefJBcejYbtdREjui1T9DPh5dBgpkKq7u2GAAMXs5B\"\n },\n \"marketCapRank\": 2009\n },\n {\n \"id\": \"allbridge\",\n \"symbol\": \"abr\",\n \"name\": \"Allbridge\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa11bd36801d8fa4448f0ac4ea7a62e3634ce8c7c\",\n \"avalanche\": \"0xafc43610c7840b20b90caaf93759be5b54b291c9\",\n \"near-protocol\": \"abr.a11bd.near\",\n \"polygon-pos\": \"0x04429fbb948bbd09327763214b45e505a5293346\",\n \"huobi-token\": \"0x2d7e64def6c3311a75c2f6eb45e835cd58e52cde\",\n \"fantom\": \"0x543acd673960041eee1305500893260f1887b679\",\n \"binance-smart-chain\": \"0x68784ffaa6ff05e3e04575df77960dc1d9f42b4a\",\n \"aurora\": \"0x2bae00c8bc1868a5f7a216e881bae9e662630111\",\n \"celo\": \"0x6e512bfc33be36f2666754e996ff103ad1680cc9\",\n \"solana\": \"a11bdAAuV8iB2fu7X6AxAvDTo1QZ8FXB3kk5eecdasp\"\n },\n \"marketCapRank\": 1822\n },\n {\n \"id\": \"allianceblock-nexera\",\n \"symbol\": \"nxra\",\n \"name\": \"AllianceBlock Nexera\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x644192291cc835a93d6330b24ea5f5fedd0eef9e\",\n \"avalanche\": \"0x644192291cc835a93d6330b24ea5f5fedd0eef9e\",\n \"polygon-pos\": \"0x644192291cc835a93d6330b24ea5f5fedd0eef9e\",\n \"binance-smart-chain\": \"0x644192291cc835a93d6330b24ea5f5fedd0eef9e\"\n },\n \"marketCapRank\": 349\n },\n {\n \"id\": \"all-in\",\n \"symbol\": \"allin\",\n \"name\": \"All In\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9b2b931d6ab97b6a887b2c5d8529537e6fe73ebe\"\n },\n \"marketCapRank\": 2510\n },\n {\n \"id\": \"alongside-crypto-market-index\",\n \"symbol\": \"amkt\",\n \"name\": \"Alongside Crypto Market Index\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf17a3fe536f8f7847f1385ec1bc967b2ca9cae8d\",\n \"base\": \"0x13f4196cc779275888440b3000ae533bbbbc3166\",\n \"optimistic-ethereum\": \"0xc27d9bc194a648fe3069955a5126699c4e49351c\",\n \"polygon-pos\": \"0xb87904db461005fc716a6bf9f2d451c33b10b80b\",\n \"arbitrum-one\": \"0x498c620c7c91c6eba2e3cd5485383f41613b7eb6\"\n },\n \"marketCapRank\": 1904\n },\n {\n \"id\": \"alpaca-finance\",\n \"symbol\": \"alpaca\",\n \"name\": \"Alpaca Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8f0528ce5ef7b51152a59745befdd91d97091d2f\",\n \"fantom\": \"0xad996a45fd2373ed0b10efa4a8ecb9de445a4302\"\n },\n \"marketCapRank\": 892\n },\n {\n \"id\": \"alpha-quark-token\",\n \"symbol\": \"aqt\",\n \"name\": \"Alpha Quark\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2a9bdcff37ab68b95a53435adfd8892e86084f93\"\n },\n \"marketCapRank\": 764\n },\n {\n \"id\": \"alphascan\",\n \"symbol\": \"ascn\",\n \"name\": \"AlphaScan AI\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x1b8d516e2146d7a32aca0fcbf9482db85fd42c3a\"\n },\n \"marketCapRank\": 1948\n },\n {\n \"id\": \"altered-state-token\",\n \"symbol\": \"asto\",\n \"name\": \"Altered State Machine\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x823556202e86763853b40e9cde725f412e294689\"\n },\n \"marketCapRank\": 706\n },\n {\n \"id\": \"altura\",\n \"symbol\": \"alu\",\n \"name\": \"Altura\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8263cd1601fe73c066bf49cc09841f35348e3be0\"\n },\n \"marketCapRank\": 780\n },\n {\n \"id\": \"alvey-chain\",\n \"symbol\": \"walv\",\n \"name\": \"Alvey Chain\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x256d1fce1b1221e8398f65f9b36033ce50b2d497\",\n \"ethereum\": \"0x256d1fce1b1221e8398f65f9b36033ce50b2d497\"\n },\n \"marketCapRank\": 2288\n },\n {\n \"id\": \"amber\",\n \"symbol\": \"amb\",\n \"name\": \"AirDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x586ee5df24c5a426e42ed7ea6e3eb0f00a4a2256\",\n \"binance-smart-chain\": \"0x96c7957030aa8b1fd3c6e0ee3d84c4695c6eae9c\"\n },\n \"marketCapRank\": 867\n },\n {\n \"id\": \"ambire-wallet\",\n \"symbol\": \"wallet\",\n \"name\": \"Ambire Wallet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x88800092ff476844f74dc2fc427974bbee2794ae\",\n \"polygon-pos\": \"0x564906ec1df8399f00e4ad32c0ecac0404a27a1c\"\n },\n \"marketCapRank\": 1583\n },\n {\n \"id\": \"amo\",\n \"symbol\": \"amo\",\n \"name\": \"AMO Coin\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x6e6c55ac20c41669261969089fad7f7fcd9ba690\"\n },\n \"marketCapRank\": 1169\n },\n {\n \"id\": \"ampleforth\",\n \"symbol\": \"ampl\",\n \"name\": \"Ampleforth\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd46ba6d942050d489dbd938a2c909a5d5039a161\",\n \"avalanche\": \"0x027dbca046ca156de9622cd1e2d907d375e53aa7\",\n \"near-protocol\": \"77fba179c79de5b7653f68b5039af940ada60ce0.factory.bridge.near\",\n \"harmony-shard-0\": \"0xf2f5bf00cd952f3f980a02f5dce278cbff4dae05\",\n \"energi\": \"0x79786ed8a70ccec6c7a31debc7fefc5119f9dc95\",\n \"binance-smart-chain\": \"0xdb021b1b247fe2f1fa57e0a87c748cc1e321f07f\"\n },\n \"marketCapRank\": 291\n },\n {\n \"id\": \"ampleforth-governance-token\",\n \"symbol\": \"forth\",\n \"name\": \"Ampleforth Governance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x77fba179c79de5b7653f68b5039af940ada60ce0\"\n },\n \"marketCapRank\": 649\n },\n {\n \"id\": \"amp-token\",\n \"symbol\": \"amp\",\n \"name\": \"Amp\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xff20817765cb7f73d4bde2e66e067e58d11095c2\",\n \"near-protocol\": \"ff20817765cb7f73d4bde2e66e067e58d11095c2.factory.bridge.near\",\n \"energi\": \"0xad7abe6f12f1059bdf48ae67bff92b00438ced95\"\n },\n \"marketCapRank\": 167\n },\n {\n \"id\": \"zeroliquid\",\n \"symbol\": \"zero\",\n \"name\": \"ZeroLiquid\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb0ed33f79d89541dfdcb04a8f04bc2c6be025ecc\"\n },\n \"marketCapRank\": 2629\n },\n {\n \"id\": \"anchor-protocol\",\n \"symbol\": \"anc\",\n \"name\": \"Anchor Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"terra\": \"terra14z56l0fp2lsf86zy3hty2z47ezkhnthtr9yq76\",\n \"ethereum\": \"0x0f3adc247e91c3c50bc08721355a41037e89bc20\"\n },\n \"marketCapRank\": 1721\n },\n {\n \"id\": \"angle-protocol\",\n \"symbol\": \"angle\",\n \"name\": \"ANGLE\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x31429d1856ad1377a8a0079410b297e1a9e214c2\"\n },\n \"marketCapRank\": 1112\n },\n {\n \"id\": \"angola\",\n \"symbol\": \"agla\",\n \"name\": \"Angola\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xd6a33f67b733d422c821c36f0f79ca145b930d01\",\n \"ethereum\": \"0x1f7e5118521b550bb1a9b435727c003eb033fc51\"\n },\n \"marketCapRank\": 1395\n },\n {\n \"id\": \"ankr\",\n \"symbol\": \"ankr\",\n \"name\": \"Ankr Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8290333cef9e6d528dd5618fb97a76f268f3edd4\",\n \"mode\": \"0xdf474b7109b73b7d57926d43598d5934131136b2\",\n \"avalanche\": \"0x20cf1b6e9d856321ed4686877cf4538f2c84b4de\",\n \"polygon-zkevm\": \"0xdf474b7109b73b7d57926d43598d5934131136b2\",\n \"optimistic-ethereum\": \"0xaeaeed23478c3a4b798e4ed40d8b7f41366ae861\",\n \"polygon-pos\": \"0x101a023270368c0d50bffb62780f4afd4ea79c35\",\n \"arbitrum-one\": \"0xaeaeed23478c3a4b798e4ed40d8b7f41366ae861\",\n \"binance-smart-chain\": \"0xf307910a4c7bbc79691fd374889b36d8531b08e3\",\n \"fantom\": \"0xdf474b7109b73b7d57926d43598d5934131136b2\"\n },\n \"marketCapRank\": 181\n },\n {\n \"id\": \"ankreth\",\n \"symbol\": \"ankreth\",\n \"name\": \"Ankr Staked ETH\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe95a203b1a91a908f9b9ce46459d101078c2c3cb\",\n \"fantom\": \"0x12d8ce035c5de3ce39b1fdd4c1d5a745eaba3b8c\",\n \"optimistic-ethereum\": \"0xe05a08226c49b636acf99c40da8dc6af83ce5bb3\",\n \"mode\": \"0x12d8ce035c5de3ce39b1fdd4c1d5a745eaba3b8c\",\n \"avalanche\": \"0x12d8ce035c5de3ce39b1fdd4c1d5a745eaba3b8c\",\n \"polygon-zkevm\": \"0x12d8ce035c5de3ce39b1fdd4c1d5a745eaba3b8c\",\n \"arbitrum-one\": \"0xe05a08226c49b636acf99c40da8dc6af83ce5bb3\",\n \"binance-smart-chain\": \"0xe05a08226c49b636acf99c40da8dc6af83ce5bb3\"\n },\n \"marketCapRank\": 609\n },\n {\n \"id\": \"oni-token\",\n \"symbol\": \"oni\",\n \"name\": \"ONINO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xea89199344a492853502a7a699cc4230854451b8\",\n \"fantom\": \"0x667c856f1a624baefe89fc4909c8701296c86c98\"\n },\n \"marketCapRank\": 1389\n },\n {\n \"id\": \"apecoin\",\n \"symbol\": \"ape\",\n \"name\": \"ApeCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4d224452801aced8b2f0aebe155379bb5d594381\",\n \"polygon-pos\": \"0xb7b31a6bc18e48888545ce79e83e06003be70930\"\n },\n \"marketCapRank\": 97\n },\n {\n \"id\": \"banana-gun\",\n \"symbol\": \"banana\",\n \"name\": \"Banana Gun\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x38e68a37e401f7271568cecaac63c6b1e19130b4\"\n },\n \"marketCapRank\": 541\n },\n {\n \"id\": \"apex-token-2\",\n \"symbol\": \"apex\",\n \"name\": \"ApeX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x52a8845df664d76c69d2eea607cd793565af42b8\",\n \"arbitrum-one\": \"0x61a1ff55c5216b636a294a07d77c6f4df10d3b56\"\n },\n \"marketCapRank\": 412\n },\n {\n \"id\": \"apf-coin\",\n \"symbol\": \"apfc\",\n \"name\": \"APF coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8ed955a2b7d2c3a17a9d05daca95e01818f8c11e\"\n },\n \"marketCapRank\": 1787\n },\n {\n \"id\": \"aptos\",\n \"symbol\": \"apt\",\n \"name\": \"Aptos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"aptos\": \"0x1::aptos_coin::AptosCoin\"\n },\n \"marketCapRank\": 24\n },\n {\n \"id\": \"apm-coin\",\n \"symbol\": \"apm\",\n \"name\": \"apM Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc8c424b91d8ce0137bab4b832b7f7d154156ba6c\"\n },\n \"marketCapRank\": 2050\n },\n {\n \"id\": \"apollon-limassol\",\n \"symbol\": \"apl\",\n \"name\": \"Apollon Limassol Fan Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xb407a167fe99eb97970e41b2608d0d9484c489c8\"\n },\n \"marketCapRank\": 2001\n },\n {\n \"id\": \"apollo-2\",\n \"symbol\": \"apollo\",\n \"name\": \"Apollo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"neutron\": \"neutron154gg0wtm2v4h9ur8xg32ep64e8ef0g5twlsgvfeajqwghdryvyqsqhgk8e\"\n },\n \"marketCapRank\": 1317\n },\n {\n \"id\": \"apollox-2\",\n \"symbol\": \"apx\",\n \"name\": \"APX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x78f5d389f5cdccfc41594abab4b0ed02f31398b3\"\n },\n \"marketCapRank\": 663\n },\n {\n \"id\": \"apwine\",\n \"symbol\": \"apw\",\n \"name\": \"Spectra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4104b135dbc9609fc1a9490e61369036497660c8\",\n \"polygon-pos\": \"0x6c0ab120dbd11ba701aff6748568311668f63fe0\"\n },\n \"marketCapRank\": 1162\n },\n {\n \"id\": \"aqtis\",\n \"symbol\": \"aqtis\",\n \"name\": \"AQTIS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6ff2241756549b5816a177659e766eaf14b34429\"\n },\n \"marketCapRank\": 1073\n },\n {\n \"id\": \"aquarius\",\n \"symbol\": \"aqua\",\n \"name\": \"Aquarius\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"stellar\": \"GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA\"\n },\n \"marketCapRank\": 1124\n },\n {\n \"id\": \"aragon\",\n \"symbol\": \"ant\",\n \"name\": \"Aragon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa117000000f279d81a1d3cc75430faa017fa5a2e\",\n \"energi\": \"0x4b3686eec98b2b89102f2830003097c7d4e1f691\"\n },\n \"marketCapRank\": 236\n },\n {\n \"id\": \"arbidoge\",\n \"symbol\": \"adoge\",\n \"name\": \"ArbiDoge\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x155f0dd04424939368972f4e1838687d6a831151\"\n },\n \"marketCapRank\": 1946\n },\n {\n \"id\": \"arbipad\",\n \"symbol\": \"arbi\",\n \"name\": \"ArbiPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x07dd5beaffb65b8ff2e575d500bdf324a05295dc\",\n \"binance-smart-chain\": \"0xa7bd657c5838472ddf85ff0797a2e6fce8fd4833\"\n },\n \"marketCapRank\": 2623\n },\n {\n \"id\": \"arbitrum\",\n \"symbol\": \"arb\",\n \"name\": \"Arbitrum\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x912ce59144191c1204e64559fe8253a0e49e6548\",\n \"arbitrum-nova\": \"0xf823c3cd3cebe0a1fa952ba88dc9eef8e0bf46ad\",\n \"ethereum\": \"0xb50721bcf8d664c30412cfbc6cf7a15145234ad1\"\n },\n \"marketCapRank\": 32\n },\n {\n \"id\": \"tether\",\n \"symbol\": \"usdt\",\n \"name\": \"Tether\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdac17f958d2ee523a2206206994597c13d831ec7\",\n \"avalanche\": \"0x9702230a8ea53601f5cd2dc00fdbc13d4df4a8c7\",\n \"kava\": \"0x919c1c267bc06a7039e03fcc2ef738525769109c\",\n \"tron\": \"TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t\",\n \"near-protocol\": \"usdt.tether-token.near\",\n \"solana\": \"Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB\"\n },\n \"marketCapRank\": 3\n },\n {\n \"id\": \"arc\",\n \"symbol\": \"arc\",\n \"name\": \"Arc\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc82e3db60a52cf7529253b4ec688f631aad9e7c2\"\n },\n \"marketCapRank\": 567\n },\n {\n \"id\": \"arcblock\",\n \"symbol\": \"abt\",\n \"name\": \"Arcblock\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb98d4c97425d9908e66e53a6fdf673acca0be986\"\n },\n \"marketCapRank\": 343\n },\n {\n \"id\": \"hunt-token\",\n \"symbol\": \"hunt\",\n \"name\": \"Hunt\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9aab071b4129b083b01cb5a0cb513ce7eca26fa5\"\n },\n \"marketCapRank\": 494\n },\n {\n \"id\": \"archway\",\n \"symbol\": \"arch\",\n \"name\": \"Archway\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"archway\": \"aarch\",\n \"osmosis\": \"ibc/23AB778D694C1ECFC59B91D8C399C115CC53B0BD1C61020D8E19519F002BDD85\"\n },\n \"marketCapRank\": 745\n },\n {\n \"id\": \"ardor\",\n \"symbol\": \"ardr\",\n \"name\": \"Ardor\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 431\n },\n {\n \"id\": \"areon-network\",\n \"symbol\": \"area\",\n \"name\": \"Areon Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1339\n },\n {\n \"id\": \"ari10\",\n \"symbol\": \"ari10\",\n \"name\": \"Ari10\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x80262f604acac839724f66846f290a2cc8b48662\"\n },\n \"marketCapRank\": 1579\n },\n {\n \"id\": \"arianee\",\n \"symbol\": \"aria20\",\n \"name\": \"Arianee\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xedf6568618a00c6f0908bf7758a16f76b6e04af9\",\n \"polygon-pos\": \"0x46f48fbdedaa6f5500993bede9539ef85f4bee8e\"\n },\n \"marketCapRank\": 1594\n },\n {\n \"id\": \"ariva\",\n \"symbol\": \"arv\",\n \"name\": \"Ariva\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6679eb24f59dfe111864aec72b443d1da666b360\"\n },\n \"marketCapRank\": 2078\n },\n {\n \"id\": \"arix\",\n \"symbol\": \"arix\",\n \"name\": \"Arix\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4db2495afad4c0e481ffc40fdaf66e13a786b619\",\n \"ethereum\": \"0xbb6cf73a00f480d0951ba979a7606857cdde626b\"\n },\n \"marketCapRank\": 2127\n },\n {\n \"id\": \"ark\",\n \"symbol\": \"ark\",\n \"name\": \"ARK\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 354\n },\n {\n \"id\": \"arkadiko-protocol\",\n \"symbol\": \"diko\",\n \"name\": \"Arkadiko\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"stacks\": \"SP2C2YFP12AJZB4MABJBAJ55XECVS7E4PMMZ89YZR\"\n },\n \"marketCapRank\": 790\n },\n {\n \"id\": \"arkham\",\n \"symbol\": \"arkm\",\n \"name\": \"Arkham\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6e2a43be0b1d33b726f0ca3b8de60b3482b8b050\"\n },\n \"marketCapRank\": 180\n },\n {\n \"id\": \"arsenal-fan-token\",\n \"symbol\": \"afc\",\n \"name\": \"Arsenal Fan Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"chiliz\": \"0x1d4343d35f0e0e14c14115876d01deaa4792550b\"\n },\n \"marketCapRank\": 1236\n },\n {\n \"id\": \"arpa\",\n \"symbol\": \"arpa\",\n \"name\": \"ARPA\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba50933c268f567bdc86e1ac131be072c6b0b71a\",\n \"binance-smart-chain\": \"0x6f769e65c14ebd1f68817f5f1dcdb61cfa2d6f7e\",\n \"polygon-pos\": \"0xee800b277a96b0f490a1a732e1d6395fad960a26\"\n },\n \"marketCapRank\": 535\n },\n {\n \"id\": \"arthswap\",\n \"symbol\": \"arsw\",\n \"name\": \"ArthSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"astar\": \"0xde2578edec4669ba7f41c5d5d2386300bcea4678\"\n },\n \"marketCapRank\": 2351\n },\n {\n \"id\": \"arweave\",\n \"symbol\": \"ar\",\n \"name\": \"Arweave\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 53\n },\n {\n \"id\": \"electronic-usd\",\n \"symbol\": \"eusd\",\n \"name\": \"Electronic USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0d69e286b938e21cbf7e51d71f6a4c8918f482f\",\n \"base\": \"0xcfa3ef56d303ae4faaba0592388f19d7c3399fb4\"\n },\n \"marketCapRank\": 1130\n },\n {\n \"id\": \"asd\",\n \"symbol\": \"asd\",\n \"name\": \"AscendEx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xff742d05420b6aca4481f635ad8341f81a6300c2\"\n },\n \"marketCapRank\": 755\n },\n {\n \"id\": \"odin-protocol\",\n \"symbol\": \"odin\",\n \"name\": \"Odin Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/c360ef34a86d334f625e4cbb7da3223aea97174b61f35bb3758081a8160f7d9b\"\n },\n \"marketCapRank\": 2318\n },\n {\n \"id\": \"asia-coin\",\n \"symbol\": \"asia\",\n \"name\": \"Asia Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf519381791c03dd7666c142d4e49fd94d3536011\",\n \"polygon-pos\": \"0x50bcbc40306230713239ae1bddd5eefeeaa273dc\",\n \"binance-smart-chain\": \"0xebaffc2d2ea7c66fb848c48124b753f93a0a90ec\"\n },\n \"marketCapRank\": 1682\n },\n {\n \"id\": \"asmatch\",\n \"symbol\": \"asm\",\n \"name\": \"AsMatch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"manta-pacific\": \"0xcd5d6de3fdbce1895f0dac13a065673599ed6806\"\n },\n \"marketCapRank\": 1726\n },\n {\n \"id\": \"assaplay\",\n \"symbol\": \"assa\",\n \"name\": \"AssaPlay\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7d29e5fffd1b207158aa5dbfa6d039e8bffc6a79\"\n },\n \"marketCapRank\": 2171\n },\n {\n \"id\": \"assetmantle\",\n \"symbol\": \"mntl\",\n \"name\": \"AssetMantle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/00F2B62EB069321A454B708876476AFCD9C23C8C9C4A5A206DDF1CD96B645057\",\n \"polygon-pos\": \"0x38a536a31ba4d8c1bcca016abbf786ecd25877e8\",\n \"ethereum\": \"0x2c4f1df9c7de0c59778936c9b145ff56813f3295\"\n },\n \"marketCapRank\": 1750\n },\n {\n \"id\": \"astar\",\n \"symbol\": \"astr\",\n \"name\": \"Astar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 136\n },\n {\n \"id\": \"aston-villa-fan-token\",\n \"symbol\": \"avl\",\n \"name\": \"Aston Villa Fan Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"chiliz\": \"0x095726841dc9bf395114ac83f8fd42b176cfad10\"\n },\n \"marketCapRank\": 2573\n },\n {\n \"id\": \"astra-dao-2\",\n \"symbol\": \"astradao\",\n \"name\": \"Astra DAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xd3188e0df68559c0b63361f6160c57ad88b239d8\"\n },\n \"marketCapRank\": 1748\n },\n {\n \"id\": \"astrafer\",\n \"symbol\": \"astrafer\",\n \"name\": \"Astrafer\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xdfce1e99a31c4597a3f8a8945cbfa9037655e335\",\n \"ethereum\": \"0x97bbbc5d96875fb78d2f14b7ff8d7a3a74106f17\"\n },\n \"marketCapRank\": 687\n },\n {\n \"id\": \"astroport\",\n \"symbol\": \"astroc\",\n \"name\": \"Astroport Classic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"terra\": \"terra1xj49zyqrwpv5k928jwfpfy2ha668nwdgkwlrg3\"\n },\n \"marketCapRank\": 2863\n },\n {\n \"id\": \"atari\",\n \"symbol\": \"atri\",\n \"name\": \"Atari\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdacd69347de42babfaecd09dc88958378780fb62\",\n \"fantom\": \"0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b\",\n \"polygon-pos\": \"0xb140665dde25c644c6b418e417c930de8a8a6ac9\",\n \"binance-smart-chain\": \"0xc0c6e4c6e70c6231b20979bda581a66f062a7967\"\n },\n \"marketCapRank\": 2016\n },\n {\n \"id\": \"automata\",\n \"symbol\": \"ata\",\n \"name\": \"Automata\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa2120b9e674d3fc3875f415a7df52e382f141225\",\n \"binance-smart-chain\": \"0xa2120b9e674d3fc3875f415a7df52e382f141225\",\n \"polygon-pos\": \"0x0df0f72ee0e5c9b7ca761ecec42754992b2da5bf\"\n },\n \"marketCapRank\": 563\n },\n {\n \"id\": \"star-atlas\",\n \"symbol\": \"atlas\",\n \"name\": \"Star Atlas\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx\"\n },\n \"marketCapRank\": 470\n },\n {\n \"id\": \"atlas-navi\",\n \"symbol\": \"navi\",\n \"name\": \"Atlas Navi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfc1c93a2507975e98b9d0e9260ded61a00152bf1\"\n },\n \"marketCapRank\": 831\n },\n {\n \"id\": \"atletico-madrid\",\n \"symbol\": \"atm\",\n \"name\": \"Atletico Madrid Fan Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xe9506f70be469d2369803ccf41823713bafe8154\"\n },\n \"marketCapRank\": 1327\n },\n {\n \"id\": \"atpay\",\n \"symbol\": \"atpay\",\n \"name\": \"AtPay\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"8sF1JWbZVCUvb6TyHYbsu9CkM8Qm6jnFVe6PqtAsdzCU\"\n },\n \"marketCapRank\": 1328\n },\n {\n \"id\": \"auction\",\n \"symbol\": \"auction\",\n \"name\": \"Bounce\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa9b1eb5908cfc3cdf91f9b8b3a74108598009096\"\n },\n \"marketCapRank\": 385\n },\n {\n \"id\": \"audius\",\n \"symbol\": \"audio\",\n \"name\": \"Audius\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x18aaa7115705e8be94bffebde57af9bfc265b998\",\n \"energi\": \"0x2c25972d4adb478773be354a09e4596f29e31fb3\"\n },\n \"marketCapRank\": 229\n },\n {\n \"id\": \"augur\",\n \"symbol\": \"rep\",\n \"name\": \"Augur\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x221657776846890989a759ba2973e427dff5c9bb\",\n \"energi\": \"0x2a2666f62157769d09a64488bbb51bd77036f6ce\"\n },\n \"marketCapRank\": 1478\n },\n {\n \"id\": \"aura-bal\",\n \"symbol\": \"aurabal\",\n \"name\": \"Aura BAL\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x616e8bfa43f920657b3497dbf40d6b1a02d4608d\"\n },\n \"marketCapRank\": 786\n },\n {\n \"id\": \"aura-finance\",\n \"symbol\": \"aura\",\n \"name\": \"Aura Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc0c293ce456ff0ed870add98a0828dd4d2903dbf\",\n \"xdai\": \"0x1509706a6c66ca549ff0cb464de88231ddbe213b\"\n },\n \"marketCapRank\": 906\n },\n {\n \"id\": \"aurigami\",\n \"symbol\": \"ply\",\n \"name\": \"Aurigami\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"aurora\": \"0x09c9d464b58d96837f8d8b6f4d9fe4ad408d3a4f\",\n \"ethereum\": \"0x1ab43204a195a0fd37edec621482afd3792ef90b\",\n \"near-protocol\": \"1ab43204a195a0fd37edec621482afd3792ef90b.factory.bridge.near\"\n },\n \"marketCapRank\": 2303\n },\n {\n \"id\": \"aurora-dao\",\n \"symbol\": \"idex\",\n \"name\": \"IDEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb705268213d593b8fd88d3fdeff93aff5cbdcfae\",\n \"polygon-pos\": \"0x9cb74c8032b007466865f060ad2c46145d45553d\"\n },\n \"marketCapRank\": 605\n },\n {\n \"id\": \"aurora-near\",\n \"symbol\": \"aurora\",\n \"name\": \"Aurora\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaaaaaa20d9e0e2461697782ef11675f668207961\",\n \"aurora\": \"0x8bec47865ade3b172a928df8f990bc7f2a3b9f79\",\n \"near-protocol\": \"aaaaaa20d9e0e2461697782ef11675f668207961.factory.bridge.near\"\n },\n \"marketCapRank\": 388\n },\n {\n \"id\": \"aurory\",\n \"symbol\": \"aury\",\n \"name\": \"Aurory\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"AURYydfxJib1ZkTir1Jn1J9ECYUtjb6rKQVmtYaixWPP\",\n \"arbitrum-one\": \"0x11bf4f05eb28b802ed3ab672594decb20ffe2313\"\n },\n \"marketCapRank\": 820\n },\n {\n \"id\": \"cube-intelligence\",\n \"symbol\": \"auto\",\n \"name\": \"Cube Intelligence\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x622dffcc4e83c64ba959530a5a5580687a57581b\"\n },\n \"marketCapRank\": 2017\n },\n {\n \"id\": \"concierge-io\",\n \"symbol\": \"ava\",\n \"name\": \"AVA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa6c0c097741d55ecd9a3a7def3a8253fd022ceb9\",\n \"energi\": \"0x8476d1c07cbc7e2dd9e97ffbd9850836835ee7a8\"\n },\n \"marketCapRank\": 780\n },\n {\n \"id\": \"avalanche-2\",\n \"symbol\": \"avax\",\n \"name\": \"Avalanche\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 11\n },\n {\n \"id\": \"avalaunch\",\n \"symbol\": \"xava\",\n \"name\": \"Avalaunch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xd1c3f94de7e5b45fa4edbba472491a9f4b166fc4\"\n },\n \"marketCapRank\": 760\n },\n {\n \"id\": \"avaocado-dao\",\n \"symbol\": \"avg\",\n \"name\": \"Avocado DAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa41f142b6eb2b164f8164cae0716892ce02f311f\",\n \"binance-smart-chain\": \"0xa41f142b6eb2b164f8164cae0716892ce02f311f\"\n },\n \"marketCapRank\": 2104\n },\n {\n \"id\": \"aventus\",\n \"symbol\": \"avt\",\n \"name\": \"Aventus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0d88ed6e74bbfd96b831231638b66c05571e824f\"\n },\n \"marketCapRank\": 806\n },\n {\n \"id\": \"aviator\",\n \"symbol\": \"avi\",\n \"name\": \"Aviator\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd2bdaaf2b9cc6981fd273dcb7c04023bfbe0a7fe\"\n },\n \"marketCapRank\": 890\n },\n {\n \"id\": \"avinoc\",\n \"symbol\": \"avinoc\",\n \"name\": \"AVINOC\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf1ca9cb74685755965c7458528a36934df52a3ef\"\n },\n \"marketCapRank\": 1119\n },\n {\n \"id\": \"axe-cap\",\n \"symbol\": \"axe\",\n \"name\": \"Axe Cap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x070e984fda37dd942f5c953f6b2375339adac308\"\n },\n \"marketCapRank\": 2384\n },\n {\n \"id\": \"axel\",\n \"symbol\": \"axel\",\n \"name\": \"AXEL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1398\n },\n {\n \"id\": \"axelar\",\n \"symbol\": \"axl\",\n \"name\": \"Axelar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x467719ad09025fcc6cf6f8311755809d45a5e5f3\",\n \"avalanche\": \"0x44c784266cf024a60e8acf2427b9857ace194c5d\",\n \"optimistic-ethereum\": \"0x23ee2343b892b1bb63503a4fabc840e0e2c6810f\",\n \"arbitrum-one\": \"0x23ee2343b892b1bb63503a4fabc840e0e2c6810f\",\n \"base\": \"0x23ee2343b892b1bb63503a4fabc840e0e2c6810f\",\n \"binance-smart-chain\": \"0x8b1f4432f943c465a973fedc6d7aa50fc96f1f65\",\n \"secret\": \"secret1vcau4rkn7mvfwl8hf0dqa9p0jr59983e3qqe3z\",\n \"moonbeam\": \"0x467719ad09025fcc6cf6f8311755809d45a5e5f3\",\n \"fantom\": \"0x8b1f4432f943c465a973fedc6d7aa50fc96f1f65\",\n \"osmosis\": \"ibc/903A61A498756EA560B85A85132D3AEE21B5DEDD41213725D22ABF276EA6945E\",\n \"polygon-pos\": \"0x6e4e624106cb12e168e6533f8ec7c82263358940\"\n },\n \"marketCapRank\": 99\n },\n {\n \"id\": \"axie-infinity\",\n \"symbol\": \"axs\",\n \"name\": \"Axie Infinity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbb0e17ef65f82ab018d8edd776e8dd940327b28b\",\n \"ronin\": \"0x97a9107c1793bc407d6f527b77e7fff4d812bece\",\n \"binance-smart-chain\": \"0x715d400f88c167884bbcc41c5fea407ed4d2f8a0\",\n \"harmony-shard-0\": \"0x14a7b318fed66ffdcc80c1517c172c13852865de\",\n \"energi\": \"0x7cd3d51bee45434dd80822c5d58b999333b69ffb\"\n },\n \"marketCapRank\": 78\n },\n {\n \"id\": \"azit\",\n \"symbol\": \"azit\",\n \"name\": \"azit\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x6cef6dd9a3c4ad226b8b66effeea2c125df194f1\"\n },\n \"marketCapRank\": 1234\n },\n {\n \"id\": \"baanx\",\n \"symbol\": \"bxx\",\n \"name\": \"Baanx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b1a8f210ec6b7b6643cea3583fb0c079f367898\"\n },\n \"marketCapRank\": 1819\n },\n {\n \"id\": \"babb\",\n \"symbol\": \"bax\",\n \"name\": \"BABB\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf920e4f3fbef5b3ad0a25017514b769bdc4ac135\"\n },\n \"marketCapRank\": 1358\n },\n {\n \"id\": \"baby-doge-coin\",\n \"symbol\": \"babydoge\",\n \"name\": \"Baby Doge Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc748673057861a797275cd8a068abb95a902e8de\",\n \"ethereum\": \"0xac57de9c1a09fec648e93eb98875b212db0d460b\"\n },\n \"marketCapRank\": 236\n },\n {\n \"id\": \"baby-shiba-inu-erc\",\n \"symbol\": \"babyshib\",\n \"name\": \"Baby Shiba Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x00000000051b48047be6dc0ada6de5c3de86a588\"\n },\n \"marketCapRank\": 2411\n },\n {\n \"id\": \"babytrump\",\n \"symbol\": \"babytrump\",\n \"name\": \"BABYTRUMP\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x354c8cda7e3b737d360513a0dc5abcee8ee1cea3\",\n \"binance-smart-chain\": \"0xc4bb2e24f4b6f762d31fc28eaac98882c32bc828\",\n \"solana\": \"6NbnHQKD2dh4jswTLmMCP7LnSh4Nh6y2cNgdQg2ny9zW\"\n },\n \"marketCapRank\": 2153\n },\n {\n \"id\": \"bomber-coin\",\n \"symbol\": \"bcoin\",\n \"name\": \"BombCrypto\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x00e1656e45f18ec6747f5a8496fd39b50b38396d\"\n },\n \"marketCapRank\": 1703\n },\n {\n \"id\": \"badger-dao\",\n \"symbol\": \"badger\",\n \"name\": \"Badger\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3472a5a71965499acd81997a54bba8d852c6e53d\",\n \"fantom\": \"0x753fbc5800a8c8e3fb6dc6415810d627a387dfc9\",\n \"xdai\": \"0xdfc20ae04ed70bd9c7d720f449eedae19f659d65\",\n \"harmony-shard-0\": \"0x06b19a0ce12dc71f1c7a6dd39e8983e089c40e0d\",\n \"arbitrum-one\": \"0xbfa641051ba0a0ad1b0acf549a89536a0d76472e\",\n \"energi\": \"0x32e6842a6ea6a913687885ac856c2493b5b12f6f\"\n },\n \"marketCapRank\": 432\n },\n {\n \"id\": \"bad-idea-ai\",\n \"symbol\": \"bad\",\n \"name\": \"Bad Idea AI\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x32b86b99441480a7e5bd3a26c124ec2373e3f015\"\n },\n \"marketCapRank\": 1051\n },\n {\n \"id\": \"bai-stablecoin\",\n \"symbol\": \"bai\",\n \"name\": \"BAI Stablecoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"astar\": \"0x733ebcc6df85f8266349defd0980f8ced9b45f35\"\n },\n \"marketCapRank\": 2585\n },\n {\n \"id\": \"balancer\",\n \"symbol\": \"bal\",\n \"name\": \"Balancer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba100000625a3754423978a60c9317c58a424e3d\",\n \"harmony-shard-0\": \"0xdc5f76104d0b8d2bf2c2bbe06cdfe17004e9010f\",\n \"avalanche\": \"0xe15bcb9e0ea69e6ab9fa080c4c4a5632896298c3\",\n \"polygon-zkevm\": \"0x120ef59b80774f02211563834d8e3b72cb1649d6\",\n \"optimistic-ethereum\": \"0xfe8b128ba8c78aabc59d4c64cee7ff28e9379921\",\n \"near-protocol\": \"ba100000625a3754423978a60c9317c58a424e3d.factory.bridge.near\",\n \"xdai\": \"0x7ef541e2a22058048904fe5744f9c7e4c57af717\",\n \"base\": \"0x4158734d47fc9692176b5085e0f52ee0da5d47f1\",\n \"huobi-token\": \"0x045de15ca76e76426e8fc7cba8392a3138078d0f\",\n \"polygon-pos\": \"0x9a71012b13ca4d3d0cdc72a177df3ef03b0e76a3\",\n \"arbitrum-one\": \"0x040d1edc9569d4bab2d15287dc5a4f10f56a56b8\",\n \"energi\": \"0x9b817c6e9a38e604606aea3ad6ed271ce8eaa9d6\"\n },\n \"marketCapRank\": 281\n },\n {\n \"id\": \"bananacat\",\n \"symbol\": \"bcat\",\n \"name\": \"BananaCat\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0590cc9232ebf68d81f6707a119898219342ecb9\"\n },\n \"marketCapRank\": 2589\n },\n {\n \"id\": \"bancor\",\n \"symbol\": \"bnt\",\n \"name\": \"Bancor Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1f573d6fb3f13d689ff844b4ce37794d79a7ff1c\",\n \"energi\": \"0x9419e8edcf570a71eb0dd006602949742b711a80\"\n },\n \"marketCapRank\": 481\n },\n {\n \"id\": \"band-protocol\",\n \"symbol\": \"band\",\n \"name\": \"Band Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba11d00c5f74255f56a5e366f4f77f5a186d7f55\",\n \"fantom\": \"0x46e7628e8b4350b2716ab470ee0ba1fa9e76c6c5\",\n \"energi\": \"0xb2ef65460bf71a05d59fdf5e8f114a32d445d164\"\n },\n \"marketCapRank\": 260\n },\n {\n \"id\": \"bao-finance\",\n \"symbol\": \"bao\",\n \"name\": \"Bao Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x374cb8c27130e2c9e04f44303f3c8351b9de61c1\",\n \"energi\": \"0x04cb6ed1d4cef27b2b0d42d628f57ee223d6beee\"\n },\n \"marketCapRank\": 2473\n },\n {\n \"id\": \"barnbridge\",\n \"symbol\": \"bond\",\n \"name\": \"BarnBridge\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0391d2021f89dc339f60fff84546ea23e337750f\",\n \"optimistic-ethereum\": \"0x3e7ef8f50246f725885102e8238cbba33f276747\",\n \"arbitrum-one\": \"0x0d81e50bc677fa67341c44d7eaa9228dee64a4e1\"\n },\n \"marketCapRank\": 817\n },\n {\n \"id\": \"blockbank\",\n \"symbol\": \"bbank\",\n \"name\": \"blockbank\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf4b5470523ccd314c6b9da041076e7d79e0df267\",\n \"binance-smart-chain\": \"0xf4b5470523ccd314c6b9da041076e7d79e0df267\"\n },\n \"marketCapRank\": 2930\n },\n {\n \"id\": \"cap\",\n \"symbol\": \"cap\",\n \"name\": \"Cap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x031d35296154279dc1984dcd93e392b1f946737b\",\n \"ethereum\": \"0x43044f861ec040db59a7e324c40507addb673142\"\n },\n \"marketCapRank\": 2574\n },\n {\n \"id\": \"basilisk\",\n \"symbol\": \"bsx\",\n \"name\": \"Basilisk\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1907\n },\n {\n \"id\": \"basic-attention-token\",\n \"symbol\": \"bat\",\n \"name\": \"Basic Attention\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0d8775f648430679a709e98d2b0cb6250d2887ef\",\n \"harmony-shard-0\": \"0x2875b4cfab0a4cc4bdc7fbdf94b6e376826a4332\",\n \"avalanche\": \"0x98443b96ea4b0858fdf3219cd13e98c7a4690588\",\n \"near-protocol\": \"0d8775f648430679a709e98d2b0cb6250d2887ef.factory.bridge.near\",\n \"polygon-pos\": \"0x3cef98bb43d732e2f285ee605a8158cde967d219\",\n \"energi\": \"0xe8ba8d7765bd33ba7ff3b19b9020c15bf14123b6\",\n \"solana\": \"EPeUFDgHRxs9xxEPVaL6kfGQvCon7jmAWKVUHuux1Tpz\"\n },\n \"marketCapRank\": 189\n },\n {\n \"id\": \"the-doge-nft\",\n \"symbol\": \"dog\",\n \"name\": \"The Doge NFT\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbaac2b4491727d78d2b78815144570b9f2fe8899\",\n \"base\": \"0xafb89a09d82fbde58f18ac6437b3fc81724e4df6\",\n \"optimistic-ethereum\": \"0x8f69ee043d52161fd29137aedf63f5e70cd504d5\",\n \"polygon-pos\": \"0xeee3371b89fc43ea970e908536fcddd975135d8a\",\n \"arbitrum-one\": \"0x4425742f1ec8d98779690b5a3a6276db85ddc01a\",\n \"binance-smart-chain\": \"0xaa88c603d142c371ea0eac8756123c5805edee03\"\n },\n \"marketCapRank\": 281\n },\n {\n \"id\": \"beoble\",\n \"symbol\": \"bbl\",\n \"name\": \"Beoble\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd979c468a68062e7bdff4ba6df7842dfd3492e0f\"\n },\n \"marketCapRank\": 1198\n },\n {\n \"id\": \"brickken\",\n \"symbol\": \"bkn\",\n \"name\": \"Brickken\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0a638f07acc6969abf392bb009f216d22adea36d\",\n \"binance-smart-chain\": \"0x0e28bc9b03971e95acf9ae1326e51ecf9c55b498\"\n },\n \"marketCapRank\": 1044\n },\n {\n \"id\": \"bata\",\n \"symbol\": \"bta\",\n \"name\": \"Bata\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2474\n },\n {\n \"id\": \"the-big-five\",\n \"symbol\": \"bft\",\n \"name\": \"The Big Five\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4b87f578d6fabf381f43bd2197fbb2a877da6ef8\"\n },\n \"marketCapRank\": 968\n },\n {\n \"id\": \"battle-infinity\",\n \"symbol\": \"ibat\",\n \"name\": \"Battle Infinity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x19cd9b8e42d4ef62c3ea124110d5cfd283ceac43\"\n },\n \"marketCapRank\": 2567\n },\n {\n \"id\": \"battle-world\",\n \"symbol\": \"bwo\",\n \"name\": \"Battle World\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xc1543024dc71247888a7e139c644f44e75e96d38\"\n },\n \"marketCapRank\": 1703\n },\n {\n \"id\": \"bazaars\",\n \"symbol\": \"bzr\",\n \"name\": \"Bazaars\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8d96b4ab6c741a4c8679ae323a100d74f085ba8f\"\n },\n \"marketCapRank\": 527\n },\n {\n \"id\": \"b-cube-ai\",\n \"symbol\": \"bcube\",\n \"name\": \"B-cube.ai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x93c9175e26f57d2888c7df8b470c9eea5c0b0a93\"\n },\n \"marketCapRank\": 1834\n },\n {\n \"id\": \"beam-2\",\n \"symbol\": \"beam\",\n \"name\": \"Beam\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x62d0a8458ed7719fdaf978fe5929c6d342b0bfce\",\n \"binance-smart-chain\": \"0x62d0a8458ed7719fdaf978fe5929c6d342b0bfce\"\n },\n \"marketCapRank\": 70\n },\n {\n \"id\": \"usd-coin\",\n \"symbol\": \"usdc\",\n \"name\": \"USDC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\",\n \"polkadot\": \"1337\",\n \"flow\": \"A.b19436aae4d94622.FiatToken\",\n \"avalanche\": \"0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e\",\n \"optimistic-ethereum\": \"0x0b2c639c533813f4aa9d7837caf62653d097ff85\",\n \"stellar\": \"USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN\",\n \"near-protocol\": \"17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1\",\n \"hedera-hashgraph\": \"0.0.456858\",\n \"tron\": \"TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8\",\n \"celo\": \"0xceba9300f2b948710d2653dd7b07f33a8b32118c\",\n \"arbitrum-one\": \"0xaf88d065e77c8cc2239327c5edb3a432268e5831\",\n \"base\": \"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913\",\n \"polygon-pos\": \"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359\",\n \"solana\": \"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\"\n },\n \"marketCapRank\": 8\n },\n {\n \"id\": \"bean\",\n \"symbol\": \"bean\",\n \"name\": \"Bean\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbea0000029ad1c77d3d5d23ba2d8893db9d1efab\"\n },\n \"marketCapRank\": 813\n },\n {\n \"id\": \"solchat\",\n \"symbol\": \"chat\",\n \"name\": \"Solchat\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"947tEoG318GUmyjVYhraNRvWpMX7fpBTDQFBoJvSkSG3\"\n },\n \"marketCapRank\": 619\n },\n {\n \"id\": \"beefy-finance\",\n \"symbol\": \"bifi\",\n \"name\": \"Beefy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb1f1ee126e9c96231cc3d3fad7c08b4cf873b1f1\"\n },\n \"marketCapRank\": 929\n },\n {\n \"id\": \"beethoven-x\",\n \"symbol\": \"beets\",\n \"name\": \"Beethoven X\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0xf24bcf4d1e507740041c9cfd2dddb29585adce1e\",\n \"optimistic-ethereum\": \"0xb4bc46bc6cb217b59ea8f4530bae26bf69f677f0\"\n },\n \"marketCapRank\": 1535\n },\n {\n \"id\": \"beldex\",\n \"symbol\": \"bdx\",\n \"name\": \"Beldex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 288\n },\n {\n \"id\": \"bella-protocol\",\n \"symbol\": \"bel\",\n \"name\": \"Bella Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa91ac63d040deb1b7a5e4d4134ad23eb0ba07e14\",\n \"manta-pacific\": \"0xb385e52903c802b3bdca7c4d0c78460a8988e1ce\",\n \"binance-smart-chain\": \"0x8443f091997f06a61670b735ed92734f5628692f\"\n },\n \"marketCapRank\": 715\n },\n {\n \"id\": \"belt\",\n \"symbol\": \"belt\",\n \"name\": \"Belt\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xe0e514c71282b6f4e823703a39374cf58dc3ea4f\"\n },\n \"marketCapRank\": 2293\n },\n {\n \"id\": \"bytecoin\",\n \"symbol\": \"bcn\",\n \"name\": \"Bytecoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1660\n },\n {\n \"id\": \"ben-2\",\n \"symbol\": \"ben\",\n \"name\": \"Ben\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9bf1d7d63dd7a4ce167cf4866388226eeefa702e\"\n },\n \"marketCapRank\": 1331\n },\n {\n \"id\": \"benddao\",\n \"symbol\": \"bend\",\n \"name\": \"BendDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0d02755a5700414b26ff040e1de35d337df56218\"\n },\n \"marketCapRank\": 1862\n },\n {\n \"id\": \"bepro-network\",\n \"symbol\": \"bepro\",\n \"name\": \"Bepro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcf3c8be2e2c42331da80ef210e9b1b307c03d36a\"\n },\n \"marketCapRank\": 1317\n },\n {\n \"id\": \"berry\",\n \"symbol\": \"berry\",\n \"name\": \"Berry\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2d787d4f5005bd66ac910c2e821241625c406ed5\"\n },\n \"marketCapRank\": 1814\n },\n {\n \"id\": \"beta-finance\",\n \"symbol\": \"beta\",\n \"name\": \"Beta Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbe1a001fe942f96eea22ba08783140b9dcc09d28\",\n \"avalanche\": \"0x511d35c52a3c244e7b8bd92c0c297755fbd89212\",\n \"binance-smart-chain\": \"0xbe1a001fe942f96eea22ba08783140b9dcc09d28\"\n },\n \"marketCapRank\": 590\n },\n {\n \"id\": \"betswap-gg\",\n \"symbol\": \"bsgg\",\n \"name\": \"Betswap.gg\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xda16cf041e2780618c49dbae5d734b89a6bac9b3\",\n \"avalanche\": \"0x49f519002eeced6902f24c0be72b6d898e4d27fc\",\n \"fantom\": \"0xce22c3e95b5e118ea61c4fb9357fe45cbb34cb56\"\n },\n \"marketCapRank\": 1903\n },\n {\n \"id\": \"betswirl\",\n \"symbol\": \"bets\",\n \"name\": \"BetSwirl\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5\",\n \"avalanche\": \"0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5\",\n \"optimistic-ethereum\": \"0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5\",\n \"arbitrum-one\": \"0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5\",\n \"polygon-pos\": \"0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5\",\n \"binance-smart-chain\": \"0x94025780a1ab58868d9b2dbbb775f44b32e8e6e5\"\n },\n \"marketCapRank\": 2013\n },\n {\n \"id\": \"bficoin\",\n \"symbol\": \"bfic\",\n \"name\": \"BFICoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1199\n },\n {\n \"id\": \"bhnetwork\",\n \"symbol\": \"bhat\",\n \"name\": \"BHNetwork\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"elrond\": \"BHAT-c1fde3\"\n },\n \"marketCapRank\": 2019\n },\n {\n \"id\": \"biconomy\",\n \"symbol\": \"bico\",\n \"name\": \"Biconomy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf17e65822b568b3903685a7c9f496cf7656cc6c2\",\n \"arbitrum-one\": \"0xa68ec98d7ca870cf1dd0b00ebbb7c4bf60a8e74d\"\n },\n \"marketCapRank\": 194\n },\n {\n \"id\": \"biconomy-exchange-token\",\n \"symbol\": \"bit\",\n \"name\": \"Biconomy Exchange Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc864019047b864b6ab609a968ae2725dfaee808a\"\n },\n \"marketCapRank\": 2455\n },\n {\n \"id\": \"big-data-protocol\",\n \"symbol\": \"bdp\",\n \"name\": \"Big Data Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf3dcbc6d72a4e1892f7917b7c43b74131df8480e\"\n },\n \"marketCapRank\": 1596\n },\n {\n \"id\": \"bidz-coin\",\n \"symbol\": \"bidz\",\n \"name\": \"BIDZ Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x20de6118c3672659e488d1d45279cdf77391fbdc\"\n },\n \"marketCapRank\": 1146\n },\n {\n \"id\": \"bigshortbets\",\n \"symbol\": \"bigsb\",\n \"name\": \"BigShortBets\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x131157c6760f78f7ddf877c0019eba175ba4b6f6\"\n },\n \"marketCapRank\": 1731\n },\n {\n \"id\": \"bilira\",\n \"symbol\": \"tryb\",\n \"name\": \"BiLira\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2c537e5624e4af88a7ae4060c022609376c8d0eb\",\n \"avalanche\": \"0x564a341df6c126f90cf3ecb92120fd7190acb401\",\n \"binance-smart-chain\": \"0xc1fdbed7dac39cae2ccc0748f7a80dc446f6a594\",\n \"polygon-pos\": \"0x4fb71290ac171e1d144f7221d882becac7196eb5\",\n \"solana\": \"A94X2fRy3wydNShU4dRaDyap2UuoeWJGWyATtyp61WZf\"\n },\n \"marketCapRank\": 1022\n },\n {\n \"id\": \"bitcoin-cash\",\n \"symbol\": \"bch\",\n \"name\": \"Bitcoin Cash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 15\n },\n {\n \"id\": \"binance-usd\",\n \"symbol\": \"busd\",\n \"name\": \"BUSD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4fabb145d64652a948d72533023f6e7a623c7c53\",\n \"harmony-shard-0\": \"0xe176ebe47d621b984a73036b9da5d834411ef734\",\n \"thundercore\": \"0xbeb0131d95ac3f03fd15894d0ade5dbf7451d171\",\n \"iotex\": \"0x84abcb2832be606341a50128aeb1db43aa017449\",\n \"cronos\": \"0xc74d59a548ecf7fc1754bb7810d716e9ac3e3ae5\",\n \"aptos\": \"0xccc9620d38c4f3991fa68a03ad98ef3735f18d04717cb75d7a1300dd8a7eed75::coin::T\",\n \"okex-chain\": \"0x332730a4f6e03d9c55829435f10360e13cfa41ff\",\n \"moonriver\": \"0x5d9ab5522c64e1f6ef5e3627eccc093f56167818\",\n \"sora\": \"0x00567d096a736f33bf78cad7b01e33463923b9c933ee13ab7e3fb7b23f5f953a\",\n \"fuse\": \"0x6a5f6a8121592becd6747a38d67451b310f7f156\",\n \"meter\": \"0x24aa189dfaa76c671c279262f94434770f557c35\",\n \"theta\": \"0x7b37d0787a3424a0810e02b24743a45ebd5530b2\",\n \"moonbeam\": \"0xa649325aa7c5093d12d6f98eb4378deae68ce23f\",\n \"milkomeda-cardano\": \"0x218c3c3d49d0e7b37aff0d8bb079de36ae61a4c0\",\n \"elastos\": \"0x9f1d0ed4e041c503bd487e5dc9fc935ab57f9a57\",\n \"polygon-pos\": \"0xdab529f40e671a1d4bf91361c21bf9f0c9712ab7\",\n \"astar\": \"0x4bf769b05e832fcdc9053fffbc78ca889acb5e1e\",\n \"xdai\": \"0xdd96b45877d0e8361a4ddb732da741e97f3191ff\",\n \"velas\": \"0xc9baa8cfdde8e328787e29b4b078abf2dadc2055\"\n },\n \"marketCapRank\": 577\n },\n {\n \"id\": \"dogecoin\",\n \"symbol\": \"doge\",\n \"name\": \"Dogecoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 9\n },\n {\n \"id\": \"eos\",\n \"symbol\": \"eos\",\n \"name\": \"EOS\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 97\n },\n {\n \"id\": \"filecoin\",\n \"symbol\": \"fil\",\n \"name\": \"Filecoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 26\n },\n {\n \"id\": \"zcoin\",\n \"symbol\": \"firo\",\n \"name\": \"Firo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1032\n },\n {\n \"id\": \"litecoin\",\n \"symbol\": \"ltc\",\n \"name\": \"Litecoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 22\n },\n {\n \"id\": \"ontology\",\n \"symbol\": \"ont\",\n \"name\": \"Ontology\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 254\n },\n {\n \"id\": \"polkadot\",\n \"symbol\": \"dot\",\n \"name\": \"Polkadot\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 14\n },\n {\n \"id\": \"ripple\",\n \"symbol\": \"xrp\",\n \"name\": \"XRP\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 6\n },\n {\n \"id\": \"binaryx\",\n \"symbol\": \"bnx\",\n \"name\": \"BinaryX [OLD]\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8c851d1a123ff703bd1f9dabe631b69902df5f97\"\n },\n \"marketCapRank\": 2545\n },\n {\n \"id\": \"biso\",\n \"symbol\": \"biso\",\n \"name\": \"BISO\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ordinals\": \"9c10df68525b43f36d683baadbd18328a09754423a7da13597e79a59dd976430i0\"\n },\n \"marketCapRank\": 2751\n },\n {\n \"id\": \"bistroo\",\n \"symbol\": \"bist\",\n \"name\": \"Bistroo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6e8908cfa881c9f6f2c64d3436e7b80b1bf0093f\",\n \"binance-smart-chain\": \"0xbd525e51384905c6c0936a431bc7efb6c4903ea0\"\n },\n \"marketCapRank\": 2498\n },\n {\n \"id\": \"biswap\",\n \"symbol\": \"bsw\",\n \"name\": \"Biswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x965f527d9159dce6288a2219db51fc6eef120dd1\"\n },\n \"marketCapRank\": 632\n },\n {\n \"id\": \"bit2me\",\n \"symbol\": \"b2m\",\n \"name\": \"Bit2Me\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd7c302fc3ac829c7e896a32c4bd126f3e8bd0a1f\",\n \"binance-smart-chain\": \"0x6e2a5ea25b161befa6a8444c71ae3a89c39933c6\",\n \"polygon-pos\": \"0xe613a914bbb433855378183c3ab13003285da40a\"\n },\n \"marketCapRank\": 839\n },\n {\n \"id\": \"bitcicoin\",\n \"symbol\": \"bitci\",\n \"name\": \"Bitcicoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1361\n },\n {\n \"id\": \"catcoin-cash\",\n \"symbol\": \"cat\",\n \"name\": \"Catcoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a\",\n \"ethereum\": \"0x59f4f336bf3d0c49dbfba4a74ebd2a6ace40539a\",\n \"solana\": \"7hWcHohzwtLddDUG81H2PkWq6KEkMtSDNkYXsso18Fy3\"\n },\n \"marketCapRank\": 841\n },\n {\n \"id\": \"bitcoin\",\n \"name\": \"Bitcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"btc\",\n \"marketCapRank\": null,\n \"addresses\": {}\n },\n {\n \"id\": \"bitcoin-2\",\n \"symbol\": \"btc2\",\n \"name\": \"Bitcoin 2\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1648\n },\n {\n \"id\": \"bitcoin-cash-sv\",\n \"symbol\": \"bsv\",\n \"name\": \"Bitcoin SV\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 65\n },\n {\n \"id\": \"bitcoin-diamond\",\n \"symbol\": \"bcd\",\n \"name\": \"Bitcoin Diamond\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1048\n },\n {\n \"id\": \"bitcoin-gold\",\n \"symbol\": \"btg\",\n \"name\": \"Bitcoin Gold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 122\n },\n {\n \"id\": \"bitcoin-pro\",\n \"symbol\": \"btcp\",\n \"name\": \"Bitcoin Pro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x723cbfc05e2cfcc71d3d89e770d32801a5eef5ab\"\n },\n \"marketCapRank\": 1722\n },\n {\n \"id\": \"bitcone\",\n \"symbol\": \"cone\",\n \"name\": \"BitCone\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xba777ae3a3c91fcd83ef85bfe65410592bdd0f7c\"\n },\n \"marketCapRank\": 1986\n },\n {\n \"id\": \"bitget-token\",\n \"symbol\": \"bgb\",\n \"name\": \"Bitget Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x19de6b897ed14a376dda0fe53a5420d2ac828a28\"\n },\n \"marketCapRank\": 83\n },\n {\n \"id\": \"bitkub-coin\",\n \"symbol\": \"kub\",\n \"name\": \"Bitkub Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 313\n },\n {\n \"id\": \"bitmart-token\",\n \"symbol\": \"bmx\",\n \"name\": \"BitMart\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x986ee2b944c42d017f52af21c4c69b84dbea35d8\"\n },\n \"marketCapRank\": 521\n },\n {\n \"id\": \"bitmex-token\",\n \"symbol\": \"bmex\",\n \"name\": \"BitMEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb113c6cf239f60d380359b762e95c13817275277\"\n },\n \"marketCapRank\": 1028\n },\n {\n \"id\": \"b-protocol\",\n \"symbol\": \"bpro\",\n \"name\": \"B.Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbbbbbbb5aa847a2003fbc6b5c16df0bd1e725f61\"\n },\n \"marketCapRank\": 2070\n },\n {\n \"id\": \"bitrise-token\",\n \"symbol\": \"brise\",\n \"name\": \"Bitgert\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8fff93e810a2edaafc326edee51071da9d398e83\",\n \"ethereum\": \"0xf2b2f7b47715256ce4ea43363a867fdce9353e3a\"\n },\n \"marketCapRank\": 534\n },\n {\n \"id\": \"bitrock\",\n \"symbol\": \"brock\",\n \"name\": \"Bitrock\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xde67d97b8770dc98c746a3fc0093c538666eb493\"\n },\n \"marketCapRank\": 1084\n },\n {\n \"id\": \"bitshares\",\n \"symbol\": \"bts\",\n \"name\": \"BitShares\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1443\n },\n {\n \"id\": \"bitsong\",\n \"symbol\": \"btsg\",\n \"name\": \"BitSong\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x05079687d35b93538cbd59fe5596380cae9054a9\"\n },\n \"marketCapRank\": 2422\n },\n {\n \"id\": \"bittensor\",\n \"symbol\": \"tao\",\n \"name\": \"Bittensor\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 44\n },\n {\n \"id\": \"bittorrent\",\n \"symbol\": \"btt\",\n \"name\": \"BitTorrent\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"tron\": \"TAFjULxiVgT4qWk6UZwjqwZXTSaGaqnVp4\",\n \"bittorrent\": \"0x0000000000000000000000000000000000001010\",\n \"energi\": \"0xf1bdcf2d4163adf9554111439dabdd6f18ff9ba7\",\n \"ethereum\": \"0xc669928185dbce49d2230cc9b0979be6dc797957\"\n },\n \"marketCapRank\": 81\n },\n {\n \"id\": \"blackdragon-token\",\n \"symbol\": \"bdt\",\n \"name\": \"BlackDragon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x21ccbc5e7f353ec43b2f5b1fb12c3e9d89d30dca\"\n },\n \"marketCapRank\": null\n },\n {\n \"id\": \"blackpool-token\",\n \"symbol\": \"bpt\",\n \"name\": \"BlackPool\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0ec9f76202a7061eb9b3a7d6b59d36215a7e37da\",\n \"polygon-pos\": \"0x6863bd30c9e313b264657b107352ba246f8af8e0\"\n },\n \"marketCapRank\": 2487\n },\n {\n \"id\": \"blacksmith-token\",\n \"symbol\": \"bs\",\n \"name\": \"Blacksmith Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5eca7b975e34567d9460fa613013a7a6993ad185\"\n },\n \"marketCapRank\": 2848\n },\n {\n \"id\": \"blank\",\n \"symbol\": \"blank\",\n \"name\": \"BlockWallet\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x41a3dba3d677e573636ba691a70ff2d606c29666\",\n \"polygon-pos\": \"0xf4c83080e80ae530d6f8180572cbbf1ac9d5d435\"\n },\n \"marketCapRank\": 2517\n },\n {\n \"id\": \"blastar\",\n \"symbol\": \"blast\",\n \"name\": \"Blastar\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"pulsechain\": \"0x6a44be19d96f087494bafa66ee5df1bf7aaf220f\"\n },\n \"marketCapRank\": 2530\n },\n {\n \"id\": \"bullperks\",\n \"symbol\": \"blp\",\n \"name\": \"BullPerks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfe1d7f7a8f0bda6e415593a2e4f82c64b446d404\"\n },\n \"marketCapRank\": 1813\n },\n {\n \"id\": \"blocto-token\",\n \"symbol\": \"blt\",\n \"name\": \"Blocto\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"BLT1noyNr3GttckEVrtcfC6oyK6yV1DpPgSyXbncMwef\"\n },\n \"marketCapRank\": 1694\n },\n {\n \"id\": \"blockasset\",\n \"symbol\": \"block\",\n \"name\": \"Blockasset\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"NFTUkR4u7wKxy9QLaX2TGvd9oZSWoMo4jqSJqdMb7Nk\",\n \"binance-smart-chain\": \"0xbc7a566b85ef73f935e640a06b5a8b031cd975df\"\n },\n \"marketCapRank\": 1212\n },\n {\n \"id\": \"blockchain-bets\",\n \"symbol\": \"bcb\",\n \"name\": \"Blockchain Bets\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2d886570a0da04885bfd6eb48ed8b8ff01a0eb7e\"\n },\n \"marketCapRank\": 1192\n },\n {\n \"id\": \"blockchain-brawlers\",\n \"symbol\": \"brwl\",\n \"name\": \"Blockchain Brawlers\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4086e77c5e993fdb90a406285d00111a974f877a\"\n },\n \"marketCapRank\": 1442\n },\n {\n \"id\": \"blockchain-certified-data-token\",\n \"symbol\": \"bcdt\",\n \"name\": \"EvidenZ\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xacfa209fb73bf3dd5bbfb1101b9bc999c49062a5\",\n \"binance-smart-chain\": \"0x8683e604cdf911cd72652a04bf9d571697a86a60\"\n },\n \"marketCapRank\": 2475\n },\n {\n \"id\": \"blockchain-monster-hunt\",\n \"symbol\": \"bcmc\",\n \"name\": \"Blockchain Monster Hunt\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2ba8349123de45e931a8c8264c332e6e9cf593f9\",\n \"binance-smart-chain\": \"0xc10358f062663448a3489fc258139944534592ac\",\n \"polygon-pos\": \"0xc10358f062663448a3489fc258139944534592ac\"\n },\n \"marketCapRank\": 2373\n },\n {\n \"id\": \"blockchainspace\",\n \"symbol\": \"guild\",\n \"name\": \"BlockchainSpace\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x83e9f223e1edb3486f876ee888d76bfba26c475a\",\n \"polygon-pos\": \"0xaff41da975501e5b71848c975834341777d1a473\",\n \"binance-smart-chain\": \"0x0565805ca3a4105faee51983b0bd8ffb5ce1455c\"\n },\n \"marketCapRank\": 2108\n },\n {\n \"id\": \"blocksquare\",\n \"symbol\": \"bst\",\n \"name\": \"Blocksquare\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x509a38b7a1cc0dcd83aa9d06214663d9ec7c7f4a\"\n },\n \"marketCapRank\": 883\n },\n {\n \"id\": \"blockstack\",\n \"symbol\": \"stx\",\n \"name\": \"Stacks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 27\n },\n {\n \"id\": \"blockv\",\n \"symbol\": \"vee\",\n \"name\": \"BLOCKv\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x340d2bde5eb28c1eed91b2f790723e3b160613b7\",\n \"optimistic-ethereum\": \"0xe3c332a5dce0e1d9bc2cc72a68437790570c28a4\",\n \"polygon-pos\": \"0xf1c1a3c2481a3a8a3f173a9ab5ade275292a6fa3\"\n },\n \"marketCapRank\": 1006\n },\n {\n \"id\": \"blocx-3\",\n \"symbol\": \"blx\",\n \"name\": \"BlocX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xe9da86435265477bcde46c7e9aa7ace5aa7e2d18\"\n },\n \"marketCapRank\": 2644\n },\n {\n \"id\": \"blox\",\n \"symbol\": \"cdt\",\n \"name\": \"Blox\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x177d39ac676ed1c67a2b268ad7f1e58826e5b0af\"\n },\n \"marketCapRank\": 202\n },\n {\n \"id\": \"blox-2\",\n \"symbol\": \"blox\",\n \"name\": \"BLOX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc9f00080d96cea3ef92d2e2e563d4cd41fb5bb36\"\n },\n \"marketCapRank\": 2240\n },\n {\n \"id\": \"bloxmove-erc20\",\n \"symbol\": \"blxm\",\n \"name\": \"bloXmove\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x38d9eb07a7b8df7d86f440a4a5c4a4c1a27e1a08\",\n \"binance-smart-chain\": \"0x40e51e0ec04283e300f12f6bb98da157bb22036e\"\n },\n \"marketCapRank\": 2078\n },\n {\n \"id\": \"bluemove\",\n \"symbol\": \"move\",\n \"name\": \"BlueMove\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"aptos\": \"0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb::move_coin::MoveCoin\",\n \"sui\": \"0xd9f9b0b4f35276eecd1eea6985bfabe2a2bbd5575f9adb9162ccbdb4ddebde7f::smove::SMOVE\"\n },\n \"marketCapRank\": 1608\n },\n {\n \"id\": \"bluesparrow\",\n \"symbol\": \"bluesparrow\",\n \"name\": \"BlueSparrow\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x24ccedebf841544c9e6a62af4e8c2fa6e5a46fde\"\n },\n \"marketCapRank\": 2241\n },\n {\n \"id\": \"white-whale\",\n \"symbol\": \"whale\",\n \"name\": \"White Whale\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"migaloo\": \"migaloo1ull9s4el2pmkdevdgrjt6pwa4e5xhkda40w84kghftnlxg4h3knqpm5u3n\",\n \"injective\": \"ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445\",\n \"juno\": \"ibc/3A6ADE78FB8169C034C29C4F2E1A61CE596EC8235366F22381D981A98F1F5A5C\",\n \"terra-2\": \"ibc/36A02FFC4E74DF4F64305130C3DFA1B06BEAC775648927AA44467C76A77AB8DB\"\n },\n \"marketCapRank\": 1350\n },\n {\n \"id\": \"blur\",\n \"symbol\": \"blur\",\n \"name\": \"Blur\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5283d291dbcf85356a21ba090e6db59121208b44\"\n },\n \"marketCapRank\": 121\n },\n {\n \"id\": \"bluzelle\",\n \"symbol\": \"blz\",\n \"name\": \"Bluzelle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5732046a883704404f284ce41ffadd5b007fd668\",\n \"binance-smart-chain\": \"0x935a544bf5816e3a7c13db2efe3009ffda0acda2\",\n \"energi\": \"0x3fa2c976654a6ba6dcb1e532a4b1e31fd4dcd3b9\"\n },\n \"marketCapRank\": 386\n },\n {\n \"id\": \"bnb48-club-token\",\n \"symbol\": \"koge\",\n \"name\": \"KOGE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xe6df05ce8c8301223373cf5b969afcb1498c5528\"\n },\n \"marketCapRank\": 681\n },\n {\n \"id\": \"bob-token\",\n \"symbol\": \"bob\",\n \"name\": \"BOB Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7d8146cf21e8d7cbe46054e01588207b51198729\"\n },\n \"marketCapRank\": 1071\n },\n {\n \"id\": \"boba-network\",\n \"symbol\": \"boba\",\n \"name\": \"Boba Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x42bbfa2e77757c645eeaad1655e0911a7553efbc\",\n \"boba\": \"0xa18bf3994c0cc6e3b63ac420308e5383f53120d7\"\n },\n \"marketCapRank\": 332\n },\n {\n \"id\": \"bolide\",\n \"symbol\": \"blid\",\n \"name\": \"Bolide\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8a7adc1b690e81c758f1bd0f72dfe27ae6ec56a5\",\n \"polygon-pos\": \"0x4b27cd6e6a5e83d236ead376d256fe2f9e9f0d2e\",\n \"arbitrum-one\": \"0x81de4945807bb31425362f8f7109c18e3dc4f8f0\",\n \"binance-smart-chain\": \"0x766afcf83fd5eaf884b3d529b432ca27a6d84617\"\n },\n \"marketCapRank\": 1461\n },\n {\n \"id\": \"bolt\",\n \"symbol\": \"bolt\",\n \"name\": \"Bolt\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd5930c307d7395ff807f2921f12c5eb82131a789\"\n },\n \"marketCapRank\": 1945\n },\n {\n \"id\": \"bondly\",\n \"symbol\": \"bondly\",\n \"name\": \"Forj\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x91dfbee3965baaee32784c2d546b7a0c62f268c9\",\n \"binance-smart-chain\": \"0x5d0158a5c3ddf47d4ea4517d8db0d76aa2e87563\",\n \"polygon-pos\": \"0x64ca1571d1476b7a21c5aaf9f1a750a193a103c0\"\n },\n \"marketCapRank\": 1944\n },\n {\n \"id\": \"bonfida\",\n \"symbol\": \"fida\",\n \"name\": \"Bonfida\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"EchesyfXePKdLtoiZSL8pBe8Myagyy8ZRqsACNCFGnvp\"\n },\n \"marketCapRank\": 620\n },\n {\n \"id\": \"bonk\",\n \"symbol\": \"bonk\",\n \"name\": \"Bonk\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263\",\n \"neon-evm\": \"0xd4b6520f7fb78e1ee75639f3376c581a71bcdb0e\",\n \"ethereum\": \"0x1151cb3d861920e07a38e03eead12c32178567f6\",\n \"aptos\": \"0x2a90fae71afc7460ee42b20ee49a9c9b29272905ad71fef92fbd8b3905a24b56\",\n \"arbitrum-one\": \"0x09199d9a5f4448d0848e4395d065e1ad9c4a1f74\",\n \"polygon-pos\": \"0xe5b49820e5a1063f6f4ddf851327b5e8b2301048\",\n \"binance-smart-chain\": \"0xa697e272a73744b343528c3bc4702f2565b2f422\"\n },\n \"marketCapRank\": 72\n },\n {\n \"id\": \"garden-2\",\n \"symbol\": \"seed\",\n \"name\": \"Garden\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5eed99d066a8caf10f3e4327c1b3d8b673485eed\",\n \"arbitrum-one\": \"0x86f65121804d2cdbef79f9f072d4e0c2eebabc08\"\n },\n \"marketCapRank\": 2138\n },\n {\n \"id\": \"boosted-lusd\",\n \"symbol\": \"blusd\",\n \"name\": \"Boosted LUSD\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb9d7dddca9a4ac480991865efef82e01273f79c3\"\n },\n \"marketCapRank\": 1829\n },\n {\n \"id\": \"bora\",\n \"symbol\": \"bora\",\n \"name\": \"BORA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x02cbe46fb8a1f579254a9b485788f2d86cad51aa\"\n },\n \"marketCapRank\": 335\n },\n {\n \"id\": \"boringdao\",\n \"symbol\": \"boring\",\n \"name\": \"BoringDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbc19712feb3a26080ebf6f2f7849b417fdd792ca\",\n \"binance-smart-chain\": \"0xffeecbf8d7267757c2dc3d13d730e97e15bfdf7f\"\n },\n \"marketCapRank\": 1602\n },\n {\n \"id\": \"bosagora\",\n \"symbol\": \"boa\",\n \"name\": \"BOSagora\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x746dda2ea243400d5a63e0700f190ab79f06489e\"\n },\n \"marketCapRank\": 1425\n },\n {\n \"id\": \"boson-protocol\",\n \"symbol\": \"boson\",\n \"name\": \"Boson Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc477d038d5420c6a9e0b031712f61c5120090de9\",\n \"polygon-pos\": \"0x9b3b0703d392321ad24338ff1f846650437a43c9\"\n },\n \"marketCapRank\": 557\n },\n {\n \"id\": \"bostrom\",\n \"symbol\": \"boot\",\n \"name\": \"Bostrom\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1003\n },\n {\n \"id\": \"botto\",\n \"symbol\": \"botto\",\n \"name\": \"Botto\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9dfad1b7102d46b1b197b90095b5c4e9f5845bba\"\n },\n \"marketCapRank\": 688\n },\n {\n \"id\": \"bountymarketcap\",\n \"symbol\": \"bmc\",\n \"name\": \"BountyMarketCap\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd945d2031b4c63c0e363304fb771f709b502dc0a\"\n },\n \"marketCapRank\": 1614\n },\n {\n \"id\": \"defibox\",\n \"symbol\": \"box\",\n \"name\": \"DefiBox\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2138\n },\n {\n \"id\": \"breederdao\",\n \"symbol\": \"breed\",\n \"name\": \"BreederDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x94e9eb8b5ab9fd6b9ea3169d55ffade62a01702e\",\n \"polygon-pos\": \"0x6949804b60dd9dcea43fd8d10ccdc640b55f9f7f\"\n },\n \"marketCapRank\": 1515\n },\n {\n \"id\": \"brick\",\n \"symbol\": \"brick\",\n \"name\": \"r/FortNiteBR Bricks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-nova\": \"0x6dcb98f460457fe4952e12779ba852f82ecc62c1\"\n },\n \"marketCapRank\": 1550\n },\n {\n \"id\": \"ethereum\",\n \"symbol\": \"eth\",\n \"name\": \"Ethereum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2\n },\n {\n \"id\": \"curve-dao-token\",\n \"symbol\": \"crv\",\n \"name\": \"Curve DAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd533a949740bb3306d119cc777fa900ba034cd52\",\n \"energi\": \"0xd3319eaf3c4743ac75aace77befcfa445ed6e69e\",\n \"optimistic-ethereum\": \"0x0994206dfe8de6ec6920ff4d779b0d950605fb53\",\n \"polygon-pos\": \"0x172370d5cd63279efa6d502dab29171933a610af\",\n \"fantom\": \"0x1e4f97b9f9f913c46f1632781732927b9019c68b\",\n \"arbitrum-one\": \"0x11cdb42b0eb46d95f990bedd4695a6e3fa034978\",\n \"sora\": \"0x002ead91a2de57b8855b53d4a62c25277073fd7f65f7e5e79f4936ed747fcad0\"\n },\n \"marketCapRank\": 131\n },\n {\n \"id\": \"dai\",\n \"symbol\": \"dai\",\n \"name\": \"Dai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b175474e89094c44da98b954eedeac495271d0f\",\n \"kava\": \"0x765277eebeca2e31912c9946eae1021199b39c61\",\n \"fantom\": \"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e\",\n \"energi\": \"0x0ee5893f434017d8881750101ea2f7c49c0eb503\",\n \"avalanche\": \"0xd586e7f844cea2f87f50152665bcbc2c279d8d70\",\n \"polygon-zkevm\": \"0xc5015b9d9161dca7e18e32f6f25c4ad850731fd4\",\n \"optimistic-ethereum\": \"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1\",\n \"zksync\": \"0x4b9eb6c0b6ea15176bbf62841c6b2a8a398cb656\",\n \"cronos\": \"0xf2001b145b43032aaf5ee2884e456ccd805f677d\",\n \"arbitrum-one\": \"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1\",\n \"base\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n \"polygon-pos\": \"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063\",\n \"binance-smart-chain\": \"0x1af3f329e8be154074d8769d1ffa4ee058b1dbc3\",\n \"metis-andromeda\": \"0x4651b38e7ec14bb3db731369bfe5b08f2466bd0a\",\n \"harmony-shard-0\": \"0xef977d2f931c1978db5f6747666fa1eacb0d0339\",\n \"sora\": \"0x0200060000000000000000000000000000000000000000000000000000000000\",\n \"moonriver\": \"0x80a16016cc4a2e6a2caca8a4a498b1699ff0f844\",\n \"aurora\": \"0xe3520349f477a5f6eb06107066048508498a291b\",\n \"moonbeam\": \"0x765277eebeca2e31912c9946eae1021199b39c61\",\n \"syscoin\": \"0xefaeee334f0fd1712f9a8cc375f427d9cdd40d73\",\n \"milkomeda-cardano\": \"0x639a647fbe20b6c8ac19e48e2de44ea792c62c5c\",\n \"cosmos\": \"ibc/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7\",\n \"astar\": \"0x6de33698e9e9b787e09d3bd7771ef63557e148bb\",\n \"velas\": \"0xe3f5a90f9cb311505cd691a46596599aa1a0ad7d\",\n \"arbitrum-nova\": \"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1\",\n \"klay-token\": \"0x078db7827a5531359f6cb63f62cfa20183c4f10c\",\n \"xdai\": \"0x44fa8e6f47987339850636f88629646662444217\",\n \"hydra\": \"abc2cd00700e06922bcf30fe0ad648507113cc56\",\n \"near-protocol\": \"6b175474e89094c44da98b954eedeac495271d0f.factory.bridge.near\"\n },\n \"marketCapRank\": 30\n },\n {\n \"id\": \"matic-network\",\n \"symbol\": \"matic\",\n \"name\": \"Polygon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0\",\n \"sora\": \"0x009134d5c7b7fda8863985531f456f89bef5fbd76684a8acdb737b3e451d0877\",\n \"energi\": \"0x98997e1651919faeacee7b96afbb3dfd96cb6036\",\n \"polygon-pos\": \"0x0000000000000000000000000000000000001010\",\n \"harmony-shard-0\": \"0x301259f392b551ca8c592c9f676fcd2f9a0a84c5\",\n \"moonriver\": \"0x682f81e57eaa716504090c3ecba8595fb54561d8\",\n \"moonbeam\": \"0x3405a1bd46b85c5c029483fbecf2f3e611026e45\",\n \"binance-smart-chain\": \"0xcc42724c6683b7e57334c4e856f4c9965ed682bd\"\n },\n \"marketCapRank\": 20\n },\n {\n \"id\": \"rocket-pool-eth\",\n \"symbol\": \"reth\",\n \"name\": \"Rocket Pool ETH\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xae78736cd615f374d3085123a210448e74fc6393\",\n \"optimistic-ethereum\": \"0x9bcef72be871e61ed4fbbc7630889bee758eb81d\",\n \"arbitrum-one\": \"0xec70dcb4a1efa46b8f2d97c310c9c4790ba5ffa8\",\n \"polygon-pos\": \"0x0266f4f08d82372cf0fcbccc0ff74309089c74d1\",\n \"base\": \"0xb6fe221fe9eef5aba221c348ba20a1bf5e73624c\"\n },\n \"marketCapRank\": 62\n },\n {\n \"id\": \"true-usd\",\n \"symbol\": \"tusd\",\n \"name\": \"TrueUSD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0000000000085d4780b73119b644ae5ecd22b376\",\n \"avalanche\": \"0x1c20e891bab6b1727d14da358fae2984ed9b59eb\",\n \"binance-smart-chain\": \"0x40af3827f39d0eacbf4a168f8d4ee67c121d11c9\",\n \"tron\": \"TUpMhErZL2fhh4sVNULAbNKLokS4GjC1F4\",\n \"binancecoin\": \"TUSDB-888\"\n },\n \"marketCapRank\": 192\n },\n {\n \"id\": \"wrapped-bitcoin\",\n \"symbol\": \"wbtc\",\n \"name\": \"Wrapped Bitcoin\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599\",\n \"thundercore\": \"0x18fb0a62f207a2a082ca60aa78f47a1af4985190\",\n \"fantom\": \"0x321162cd933e2be498cd2267a90534a804051b11\",\n \"polygon-zkevm\": \"0xea034fb02eb1808c2cc3adbc15f447b93cbe08e1\",\n \"sora\": \"0x002c48630dcb8c75cc36162cbdbc8ff27b843973b951ba9b6e260f869d45bcdc\",\n \"avalanche\": \"0x50b7545627a5162f82a992c33b87adc75187b218\",\n \"optimistic-ethereum\": \"0x68f180fcce6836688e9084f035309e29bf0a2095\",\n \"cronos\": \"0x062e66477faf219f25d27dced647bf57c3107d52\",\n \"zksync\": \"0xbbeb516fb02a01611cbbe0453fe3c580d7281011\",\n \"energi\": \"0x29a791703e5a5a8d1578f8611b4d3691377cebc0\",\n \"polygon-pos\": \"0x1bfd67037b42cf73acf2047067bd4f2c47d9bfd6\",\n \"tomochain\": \"0x503b2ddc059b81788fd1239561596614b27faade\",\n \"harmony-shard-0\": \"0x3095c7557bcb296ccc6e363de01b760ba031f2d9\",\n \"moonriver\": \"0x6ab6d61428fde76768d7b45d8bfeec19c6ef91a8\",\n \"boba\": \"0xdc0486f8bf31df57a952bcd3c1d3e166e3d9ec8b\",\n \"metis-andromeda\": \"0xa5b55ab1daf0f8e1efc0eb1931a957fd89b918f4\",\n \"xdai\": \"0x8e5bbbb09ed1ebde8674cda39a0c169401db4252\",\n \"aurora\": \"0xf4eb217ba2454613b15dbdea6e5f22276410e89e\",\n \"fuse\": \"0x33284f95ccb7b948d9d352e1439561cf83d8d00d\",\n \"meter\": \"0xc1f6c86abee8e2e0b6fd5bd80f0b51fef783635c\",\n \"moonbeam\": \"0x922d641a426dcffaef11680e5358f34d97d112e1\",\n \"telos\": \"0xf390830df829cf22c53c8840554b98eafc5dcbc2\",\n \"syscoin\": \"0xc9baa8cfdde8e328787e29b4b078abf2dadc2055\",\n \"milkomeda-cardano\": \"0x6ab6d61428fde76768d7b45d8bfeec19c6ef91a8\",\n \"conflux\": \"0x1f545487c62e5acfea45dcadd9c627361d1616d8\",\n \"kava\": \"0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b\",\n \"astar\": \"0xad543f18cff85c77e140e3e5e3c3392f6ba9d5ca\",\n \"cube\": \"0x040ea5c10e6ba4badb6c433a365ccc4968697230\",\n \"velas\": \"0x639a647fbe20b6c8ac19e48e2de44ea792c62c5c\",\n \"klay-token\": \"0xdcbacf3f7a069922e677912998c8d57423c37dfa\",\n \"hydra\": \"27a459ac47204f1e7fc5c48ffeafa990af244e13\",\n \"step-network\": \"0xb44a9b6905af7c801311e8f4e76932ee959c663c\",\n \"arbitrum-one\": \"0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f\",\n \"near-protocol\": \"2260fac5e5542a773aa44fbcfedf7c193bc2c599.factory.bridge.near\",\n \"celo\": \"0xd629eb00deced2a080b7ec630ef6ac117e614f1b\"\n },\n \"marketCapRank\": 17\n },\n {\n \"id\": \"seth\",\n \"symbol\": \"seth\",\n \"name\": \"sETH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5e74c9036fb86bd7ecdcb084a0673efc32ea31cb\",\n \"optimistic-ethereum\": \"0xe405de8f52ba7559f9df3c368500b6e6ae6cee49\"\n },\n \"marketCapRank\": 829\n },\n {\n \"id\": \"bridge-oracle\",\n \"symbol\": \"brg\",\n \"name\": \"Bridge Oracle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6e4a971b81ca58045a2aa982eaa3d50c4ac38f42\",\n \"ethereum\": \"0xc9c4fd7579133701fa2769b6955e7e56bb386db1\",\n \"arbitrum-one\": \"0xc9c4fd7579133701fa2769b6955e7e56bb386db1\",\n \"nuls\": \"NULSd6Hgu5DRgAg11zwyq1C1NGpKBGYUm3Uhu\"\n },\n \"marketCapRank\": 1592\n },\n {\n \"id\": \"brn-metaverse\",\n \"symbol\": \"brn\",\n \"name\": \"BRN Metaverse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x926ecc7687fcfb296e97a2b4501f41a6f5f8c214\"\n },\n \"marketCapRank\": 1299\n },\n {\n \"id\": \"bscpad\",\n \"symbol\": \"bscpad\",\n \"name\": \"BSCPAD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x5a3010d4d8d3b5fb49f8b6e57fb9e48063f16700\"\n },\n \"marketCapRank\": 1312\n },\n {\n \"id\": \"bsc-station\",\n \"symbol\": \"bscs\",\n \"name\": \"BSCS\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbcb24afb019be7e93ea9c43b7e22bb55d5b7f45d\"\n },\n \"marketCapRank\": 2168\n },\n {\n \"id\": \"btc-standard-hashrate-token\",\n \"symbol\": \"btcst\",\n \"name\": \"BTC Standard Hashrate Token\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x78650b139471520656b9e7aa7a5e9276814a38e9\"\n },\n \"marketCapRank\": 1972\n },\n {\n \"id\": \"btse-token\",\n \"symbol\": \"btse\",\n \"name\": \"BTSE Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x666d875c600aa06ac1cf15641361dec3b00432ef\"\n },\n \"marketCapRank\": 446\n },\n {\n \"id\": \"btu-protocol\",\n \"symbol\": \"btu\",\n \"name\": \"BTU Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb683d83a532e2cb7dfa5275eed3698436371cc9f\",\n \"polygon-pos\": \"0xfdc26cda2d2440d0e83cd1dee8e8be48405806dc\"\n },\n \"marketCapRank\": 1434\n },\n {\n \"id\": \"build\",\n \"symbol\": \"build\",\n \"name\": \"BUILD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x83b27de2fca046fa63a11c7ce7743de33ec58822\",\n \"optimistic-ethereum\": \"0xe4de4b87345815c71aa843ea4841bcdc682637bb\",\n \"polygon-pos\": \"0xe94845ac6782a2e71c407abe4d5201445c26a62b\",\n \"ethereum\": \"0x57b59f981730c6257df57cf6f0d98283749a9eeb\",\n \"fantom\": \"0xa6097a4dbef3eb44c50bad6286a5ed2bc4418aa2\",\n \"avalanche\": \"0x5f018e73c185ab23647c82bd039e762813877f0e\",\n \"cronos\": \"0x6467df17771ab26d1825bf0891b3c421d92ebc1d\"\n },\n \"marketCapRank\": 1407\n },\n {\n \"id\": \"bullieverse\",\n \"symbol\": \"bull\",\n \"name\": \"Bullieverse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x9f95e17b2668afe01f8fbd157068b0a4405cc08d\"\n },\n \"marketCapRank\": 1601\n },\n {\n \"id\": \"bumper\",\n \"symbol\": \"bump\",\n \"name\": \"Bumper\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x785c34312dfa6b74f6f1829f79ade39042222168\",\n \"arbitrum-one\": \"0xfb930d1a28990820c98144201637c99bea8cb91c\"\n },\n \"marketCapRank\": 1808\n },\n {\n \"id\": \"buying\",\n \"symbol\": \"buy\",\n \"name\": \"Buying.com\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"algorand\": \"137020565\",\n \"ethereum\": \"0x396ec402b42066864c406d1ac3bc86b575003ed8\",\n \"binance-smart-chain\": \"0x40225c6277b29bf9056b4acb7ee1512cbff11671\"\n },\n \"marketCapRank\": 1296\n },\n {\n \"id\": \"burger-swap\",\n \"symbol\": \"burger\",\n \"name\": \"BurgerCities\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xae9269f27437f0fcbc232d39ec814844a51d6b8f\"\n },\n \"marketCapRank\": 1012\n },\n {\n \"id\": \"burrow\",\n \"symbol\": \"brrr\",\n \"name\": \"Burrow\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"near-protocol\": \"token.burrow.near\"\n },\n \"marketCapRank\": 1756\n },\n {\n \"id\": \"bware-infra\",\n \"symbol\": \"infra\",\n \"name\": \"Bware\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x013062189dc3dcc99e9cee714c513033b8d99e3c\",\n \"avalanche\": \"0xa4fb4f0ff2431262d236778495145ecbc975c38b\"\n },\n \"marketCapRank\": 1824\n },\n {\n \"id\": \"byteball\",\n \"symbol\": \"gbyte\",\n \"name\": \"Obyte\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xeb34de0c4b2955ce0ff1526cdf735c9e6d249d09\",\n \"kava\": \"0x0b93109d05ef330acd2c75148891cc61d20c3ef1\",\n \"ethereum\": \"0x31f69de127c8a0ff10819c0955490a4ae46fcc2a\",\n \"polygon-pos\": \"0xab5f7a0e20b0d056aed4aa4528c78da45be7308b\"\n },\n \"marketCapRank\": 1250\n },\n {\n \"id\": \"bytom\",\n \"symbol\": \"btm\",\n \"name\": \"Bytom\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1130\n },\n {\n \"id\": \"bzx-protocol\",\n \"symbol\": \"bzrx\",\n \"name\": \"bZx Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x56d811088235f11c8920698a204a5010a788f4b3\",\n \"energi\": \"0xe19ab0a7f5bf5b243e011bd070cf9e26296f7ebc\"\n },\n \"marketCapRank\": 992\n },\n {\n \"id\": \"cakepie-xyz\",\n \"symbol\": \"ckp\",\n \"name\": \"Cakepie\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x2b5d9adea07b590b638ffc165792b2c610eda649\"\n },\n \"marketCapRank\": 1140\n },\n {\n \"id\": \"calamari-network\",\n \"symbol\": \"kma\",\n \"name\": \"Calamari Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1783\n },\n {\n \"id\": \"calaxy\",\n \"symbol\": \"clxy\",\n \"name\": \"Calaxy\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"hedera-hashgraph\": \"0x00000000000000000000000000000000000d1ea6\"\n },\n \"marketCapRank\": 1603\n },\n {\n \"id\": \"camelot-token\",\n \"symbol\": \"grail\",\n \"name\": \"Camelot Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x3d9907f9a368ad0a51be60f7da3b97cf940982d8\"\n },\n \"marketCapRank\": 855\n },\n {\n \"id\": \"canto\",\n \"symbol\": \"canto\",\n \"name\": \"CANTO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"canto\": \"0x826551890dc65655a0aceca109ab11abdbd7a07b\",\n \"ethereum\": \"0x56c03b8c4fa80ba37f5a7b60caaaef749bb5b220\"\n },\n \"marketCapRank\": 358\n },\n {\n \"id\": \"coin-capsule\",\n \"symbol\": \"caps\",\n \"name\": \"Ternoa\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x03be5c903c727ee2c8c4e9bc0acc860cca4715e2\",\n \"binance-smart-chain\": \"0xffba7529ac181c2ee1844548e6d7061c9a597df4\"\n },\n \"marketCapRank\": 847\n },\n {\n \"id\": \"carbify\",\n \"symbol\": \"cby\",\n \"name\": \"Carbify\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xb6a5ae40e79891e4deadad06c8a7ca47396df21c\",\n \"ethereum\": \"0xb9d27bc093ed0a3b7c18366266704cfe5e7af77b\"\n },\n \"marketCapRank\": 898\n },\n {\n \"id\": \"carbon\",\n \"symbol\": \"carbon\",\n \"name\": \"Carbon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xefb5df8eb84055026018030e71bc2cdfa2f138b9\"\n },\n \"marketCapRank\": 2627\n },\n {\n \"id\": \"carbon-browser\",\n \"symbol\": \"csix\",\n \"name\": \"Carbon Browser\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x04756126f044634c9a0f0e985e60c88a51acc206\",\n \"ethereum\": \"0x345887cdb19e12833ed376bbf8b8b38269f5f5c8\"\n },\n \"marketCapRank\": 950\n },\n {\n \"id\": \"carbon-credit\",\n \"symbol\": \"cct\",\n \"name\": \"Carbon Credit\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"algorand\": \"657291910\"\n },\n \"marketCapRank\": 1921\n },\n {\n \"id\": \"cardstack\",\n \"symbol\": \"card\",\n \"name\": \"Cardstack\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x954b890704693af242613edef1b603825afcd708\"\n },\n \"marketCapRank\": 2272\n },\n {\n \"id\": \"cargox\",\n \"symbol\": \"cxo\",\n \"name\": \"CargoX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb6ee9668771a79be7967ee29a63d4184f8097143\",\n \"polygon-pos\": \"0xf2ae0038696774d65e67892c9d301c5f2cbbda58\"\n },\n \"marketCapRank\": 1271\n },\n {\n \"id\": \"carry\",\n \"symbol\": \"cre\",\n \"name\": \"Carry\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x115ec79f1de567ec68b7ae7eda501b406626478e\"\n },\n \"marketCapRank\": 596\n },\n {\n \"id\": \"cartesi\",\n \"symbol\": \"ctsi\",\n \"name\": \"Cartesi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x491604c0fdf08347dd1fa4ee062a822a5dd06b5d\",\n \"avalanche\": \"0x6b289cceaa8639e3831095d75a3e43520fabf552\",\n \"optimistic-ethereum\": \"0xec6adef5e1006bb305bb1975333e8fc4071295bf\",\n \"arbitrum-one\": \"0x319f865b287fcc10b30d8ce6144e8b6d1b476999\",\n \"polygon-pos\": \"0x2727ab1c2d22170abc9b595177b2d5c6e1ab7b7b\",\n \"binance-smart-chain\": \"0x8da443f84fea710266c8eb6bc34b71702d033ef2\"\n },\n \"marketCapRank\": 298\n },\n {\n \"id\": \"cow-protocol\",\n \"symbol\": \"cow\",\n \"name\": \"CoW Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdef1ca1fb7fbcdc777520aa7f396b4e015f497ab\",\n \"xdai\": \"0x177127622c4a00f3d409b75571e12cb3c8973d3c\"\n },\n \"marketCapRank\": 639\n },\n {\n \"id\": \"casper-network\",\n \"symbol\": \"cspr\",\n \"name\": \"Casper Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 199\n },\n {\n \"id\": \"castello-coin\",\n \"symbol\": \"cast\",\n \"name\": \"Castello Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3fab0bbaa03bceaf7c49e2b12877db0142be65fc\"\n },\n \"marketCapRank\": 1102\n },\n {\n \"id\": \"whales-market\",\n \"symbol\": \"whales\",\n \"name\": \"Whales Market\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"GTH3wG3NErjwcf7VGCoXEXkgXSHvYhx5gtATeeM5JAS1\"\n },\n \"marketCapRank\": 914\n },\n {\n \"id\": \"catapult\",\n \"symbol\": \"atd\",\n \"name\": \"A2DAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8052327f1baf94a9dc8b26b9100f211ee3774f54\",\n \"binance-smart-chain\": \"0x1ce440d1a64eea6aa1db2a5aa51c9b326930957c\"\n },\n \"marketCapRank\": 2620\n },\n {\n \"id\": \"catgirl\",\n \"symbol\": \"catgirl\",\n \"name\": \"Catgirl\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x79ebc9a2ce02277a4b5b3a768b1c0a4ed75bd936\"\n },\n \"marketCapRank\": 1031\n },\n {\n \"id\": \"comtech-gold\",\n \"symbol\": \"cgo\",\n \"name\": \"Comtech Gold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdc8f9920283470f52128bf11b0c14e798be704fd15\"\n },\n \"marketCapRank\": 1473\n },\n {\n \"id\": \"catheon-gaming\",\n \"symbol\": \"catheon\",\n \"name\": \"Catheon Gaming\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x7e7737c40878e720b32e7bc9cd096259f876d69f\"\n },\n \"marketCapRank\": 2305\n },\n {\n \"id\": \"caviar\",\n \"symbol\": \"cvr\",\n \"name\": \"Caviar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x6ae96cc93331c19148541d4d2f31363684917092\"\n },\n \"marketCapRank\": 2319\n },\n {\n \"id\": \"cdai\",\n \"symbol\": \"cdai\",\n \"name\": \"cDAI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5d3a536e4d6dbd6114cc1ead35777bab948e3643\"\n },\n \"marketCapRank\": 639\n },\n {\n \"id\": \"ceek\",\n \"symbol\": \"ceek\",\n \"name\": \"CEEK Smart VR\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb056c38f6b7dc4064367403e26424cd2c60655e1\",\n \"binance-smart-chain\": \"0xe0f94ac5462997d2bc57287ac3a3ae4c31345d66\"\n },\n \"marketCapRank\": 605\n },\n {\n \"id\": \"celer-network\",\n \"symbol\": \"celr\",\n \"name\": \"Celer Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4f9254c83eb525f9fcf346490bbb3ed28a81c667\",\n \"arbitrum-one\": \"0x3a8b787f78d775aecfeea15706d4221b40f345ab\",\n \"energi\": \"0x1833e138fadf220eb951a8590b8ba9058785ddde\"\n },\n \"marketCapRank\": 362\n },\n {\n \"id\": \"celestia\",\n \"symbol\": \"tia\",\n \"name\": \"Celestia\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/D79E7D83AB399BFFF93433E54FAA480C191248FC556924A2A8351AE2638B3877\",\n \"secret\": \"secret1s9h6mrp4k9gll4zfv5h78ll68hdq8ml7jrnn20\"\n },\n \"marketCapRank\": 52\n },\n {\n \"id\": \"cellframe\",\n \"symbol\": \"cell\",\n \"name\": \"Cellframe\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x26c8afbbfe1ebaca03c2bb082e69d0476bffe099\",\n \"binance-smart-chain\": \"0xd98438889ae7364c7e2a3540547fad042fb24642\"\n },\n \"marketCapRank\": 801\n },\n {\n \"id\": \"celo\",\n \"symbol\": \"celo\",\n \"name\": \"Celo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"celo\": \"0x471ece3750da237f93b8e339c536989b8978a438\"\n },\n \"marketCapRank\": 154\n },\n {\n \"id\": \"celo-dollar\",\n \"symbol\": \"cusd\",\n \"name\": \"Celo Dollar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"celo\": \"0x765de816845861e75a25fca122bb6898b8b1282a\",\n \"near-protocol\": \"cusd.token.a11bd.near\"\n },\n \"marketCapRank\": 889\n },\n {\n \"id\": \"celo-euro\",\n \"symbol\": \"ceur\",\n \"name\": \"Celo Euro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"celo\": \"0xd8763cba276a3738e6de85b4b3bf5fded6d6ca73\"\n },\n \"marketCapRank\": 1497\n },\n {\n \"id\": \"celsius-degree-token\",\n \"symbol\": \"cel\",\n \"name\": \"Celsius Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaaaebe6fe48e54f431b0c390cfaf0b017d09d42d\",\n \"fantom\": \"0x2c78f1b70ccf63cdee49f9233e9faa99d43aa07e\",\n \"energi\": \"0x1b53c0662414b195fcd5802c09754765b930a312\",\n \"polygon-pos\": \"0xd85d1e945766fea5eda9103f918bd915fbca63e6\",\n \"harmony-shard-0\": \"0xd562c88e0f8e7dae43076018bb1ea3115617984d\"\n },\n \"marketCapRank\": 476\n },\n {\n \"id\": \"centrifuge\",\n \"symbol\": \"cfg\",\n \"name\": \"Centrifuge\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 204\n },\n {\n \"id\": \"cere-network\",\n \"symbol\": \"cere\",\n \"name\": \"Cere Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2da719db753dfa10a62e140f436e1d67f2ddb0d6\"\n },\n \"marketCapRank\": 677\n },\n {\n \"id\": \"certik\",\n \"symbol\": \"ctk\",\n \"name\": \"Shentu\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 442\n },\n {\n \"id\": \"cetus-protocol\",\n \"symbol\": \"cetus\",\n \"name\": \"Cetus Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"sui\": \"0x6864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS\"\n },\n \"marketCapRank\": 699\n },\n {\n \"id\": \"chain-games\",\n \"symbol\": \"chain\",\n \"name\": \"Chain Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc4c2614e694cf534d407ee49f8e44d125e4681c4\",\n \"harmony-shard-0\": \"0x84ec08c887dd8c14d389abe56e609379b7c5262e\",\n \"polygon-pos\": \"0xd55fce7cdab84d84f2ef3f99816d765a2a94a509\",\n \"binance-smart-chain\": \"0x35de111558f691f77f791fb0c08b2d6b931a9d47\"\n },\n \"marketCapRank\": 1721\n },\n {\n \"id\": \"chaingpt\",\n \"symbol\": \"cgpt\",\n \"name\": \"ChainGPT\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9840652dc04fb9db2c43853633f0f62be6f00f98\",\n \"ethereum\": \"0x25931894a86d47441213199621f1f2994e1c39aa\"\n },\n \"marketCapRank\": 407\n },\n {\n \"id\": \"chain-guardians\",\n \"symbol\": \"cgg\",\n \"name\": \"Chain Guardians\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1fe24f25b1cf609b9c4e7e12d802e3640dfa5e43\",\n \"polygon-pos\": \"0x2ab4f9ac80f33071211729e45cfc346c1f8446d5\",\n \"binance-smart-chain\": \"0x1613957159e9b0ac6c80e824f7eea748a32a0ae2\"\n },\n \"marketCapRank\": 1875\n },\n {\n \"id\": \"chainlink\",\n \"symbol\": \"link\",\n \"name\": \"Chainlink\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x514910771af9ca656af840dff83e8264ecf986ca\",\n \"fantom\": \"0xb3654dc3d10ea7645f8319668e8f54d2574fbdc8\",\n \"avalanche\": \"0x5947bb275c521040051d82396192181b413227a3\",\n \"energi\": \"0x68ca48ca2626c415a89756471d4ade2cc9034008\",\n \"optimistic-ethereum\": \"0x350a791bfc2c21f9ed5d10980dad2e2638ffa7f6\",\n \"near-protocol\": \"514910771af9ca656af840dff83e8264ecf986ca.factory.bridge.near\",\n \"arbitrum-one\": \"0xf97f4df75117a78c1a5a0dbb814af92458539fb4\",\n \"huobi-token\": \"0x9e004545c59d359f6b7bfb06a26390b087717b42\",\n \"xdai\": \"0xe2e73a1c69ecf83f464efce6a5be353a37ca09b2\",\n \"polygon-pos\": \"0x53e0bca35ec356bd5dddfebbd1fc0fd03fabad39\",\n \"harmony-shard-0\": \"0x218532a12a389a4a92fc0c5fb22901d1c19198aa\",\n \"sora\": \"0x008484148dcf23d1b48908393e7a00d5fdc3bf81029a73eeca62a15ebfb1205a\",\n \"binance-smart-chain\": \"0xf8a0bf9cf54bb92f17374d9e9a321e6a111a51bd\",\n \"milkomeda-cardano\": \"0xf390830df829cf22c53c8840554b98eafc5dcbc2\",\n \"osmosis\": \"ibc/D3327A763C23F01EC43D1F0DB3CEFEC390C362569B6FD191F40A5192F8960049\"\n },\n \"marketCapRank\": 16\n },\n {\n \"id\": \"chainport\",\n \"symbol\": \"portx\",\n \"name\": \"ChainPort\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x104f3152d8ebfc3f679392977356962ff36566ac\",\n \"polygon-pos\": \"0x189586b5f6317538ae50c20a976597da38984a24\"\n },\n \"marketCapRank\": 2446\n },\n {\n \"id\": \"metahero\",\n \"symbol\": \"hero\",\n \"name\": \"Metahero\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd40bedb44c081d2935eeba6ef5a3c8a31a1bbe13\"\n },\n \"marketCapRank\": 831\n },\n {\n \"id\": \"champignons-of-arborethia\",\n \"symbol\": \"champz\",\n \"name\": \"Champignons of Arborethia\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x571e21a545842c6ce596663cda5caa8196ac1c7a\"\n },\n \"marketCapRank\": 1660\n },\n {\n \"id\": \"coinnavigator\",\n \"symbol\": \"cng\",\n \"name\": \"CoinNavigator\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfd60b3c3c1916bdbb4319a3d264894f1dfd5eca2\"\n },\n \"marketCapRank\": 1905\n },\n {\n \"id\": \"charged-particles\",\n \"symbol\": \"ionx\",\n \"name\": \"Charged Particles\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x02d3a27ac3f55d5d91fb0f52759842696a864217\"\n },\n \"marketCapRank\": 2468\n },\n {\n \"id\": \"charli3\",\n \"symbol\": \"c3\",\n \"name\": \"Charli3\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"cardano\": \"8e51398904a5d3fc129fbf4f1589701de23c7824d5c90fdb9490e15a\"\n },\n \"marketCapRank\": 1917\n },\n {\n \"id\": \"cheems\",\n \"symbol\": \"cheems\",\n \"name\": \"Cheems\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"3FoUAsGDbvTD6YZ4wVKJgTB76onJUKz7GPEBNiR5b8wc\"\n },\n \"marketCapRank\": 2218\n },\n {\n \"id\": \"cheqd-network\",\n \"symbol\": \"cheq\",\n \"name\": \"CHEQD Network\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x70edf1c215d0ce69e7f16fd4e6276ba0d99d4de7\"\n },\n \"marketCapRank\": 632\n },\n {\n \"id\": \"chia\",\n \"symbol\": \"xch\",\n \"name\": \"Chia\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 209\n },\n {\n \"id\": \"city-tycoon-games\",\n \"symbol\": \"ctg\",\n \"name\": \"City Tycoon Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb3ba14f6a482dfdebc3c2fb726ac10df91ee504c\"\n },\n \"marketCapRank\": 2454\n },\n {\n \"id\": \"chihuahua-token\",\n \"symbol\": \"huahua\",\n \"name\": \"Chihuahua Chain\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/B9E0A1A524E98BB407D3CED8720EFEFD186002F90C1B1B7964811DD0CCC12228\"\n },\n \"marketCapRank\": 1228\n },\n {\n \"id\": \"eggdog\",\n \"symbol\": \"egg\",\n \"name\": \"Eggdog\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"EXA537HSBVpsFijENbt6Muuy9AADUN8dUmYKD4oKbjJE\"\n },\n \"marketCapRank\": 1899\n },\n {\n \"id\": \"chiliz\",\n \"symbol\": \"chz\",\n \"name\": \"Chiliz\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3506424f91fd33084466f402d5d97f05f8e3b4af\",\n \"energi\": \"0xa82fc24687ffbde40776dede7c70f845b67f3ef7\"\n },\n \"marketCapRank\": 89\n },\n {\n \"id\": \"chirpley\",\n \"symbol\": \"chrp\",\n \"name\": \"Chirpley\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xed00fc7d48b57b81fe65d1ce71c0985e4cf442cb\",\n \"ethereum\": \"0x70bc0dc6414eb8974bc70685f798838a87d8cce4\"\n },\n \"marketCapRank\": 1275\n },\n {\n \"id\": \"toucan-protocol-base-carbon-tonne\",\n \"symbol\": \"bct\",\n \"name\": \"Toucan Protocol: Base Carbon Tonne\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x2f800db0fdb5223b3c3f354886d907a671414a7f\"\n },\n \"marketCapRank\": 1164\n },\n {\n \"id\": \"choise\",\n \"symbol\": \"cho\",\n \"name\": \"Choise.com\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbba39fd2935d5769116ce38d46a71bde9cf03099\"\n },\n \"marketCapRank\": 1721\n },\n {\n \"id\": \"chromaway\",\n \"symbol\": \"chr\",\n \"name\": \"Chromia\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8a2279d4a90b6fe1c4b30fa660cc9f926797baa2\",\n \"binance-smart-chain\": \"0xf9cec8d50f6c8ad3fb6dccec577e05aa32b224fe\"\n },\n \"marketCapRank\": 228\n },\n {\n \"id\": \"chronobank\",\n \"symbol\": \"time\",\n \"name\": \"chrono.tech\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x485d17a6f1b8780392d53d64751824253011a260\",\n \"binance-smart-chain\": \"0x3b198e26e473b8fab2085b37978e36c9de5d7f68\"\n },\n \"marketCapRank\": 1109\n },\n {\n \"id\": \"chumbai-valley\",\n \"symbol\": \"chmb\",\n \"name\": \"Chumbi Valley\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x5492ef6aeeba1a3896357359ef039a8b11621b45\"\n },\n \"marketCapRank\": 1692\n },\n {\n \"id\": \"cindicator\",\n \"symbol\": \"cnd\",\n \"name\": \"Cindicator\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd4c435f5b09f855c3317c8524cb1f586e42795fa\"\n },\n \"marketCapRank\": 2437\n },\n {\n \"id\": \"circuits-of-value\",\n \"symbol\": \"coval\",\n \"name\": \"Circuits of Value\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3d658390460295fb963f54dc0899cfb1c30776df\",\n \"xdai\": \"0x8b8407c6184f1f0fd1082e83d6a3b8349caced12\",\n \"fantom\": \"0x8b8407c6184f1f0fd1082e83d6a3b8349caced12\",\n \"polygon-pos\": \"0x4597c8a59ab28b36840b82b3a674994a279593d0\",\n \"binance-smart-chain\": \"0xd15cee1deafbad6c0b3fd7489677cc102b141464\"\n },\n \"marketCapRank\": 695\n },\n {\n \"id\": \"cirus\",\n \"symbol\": \"cirus\",\n \"name\": \"Cirus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa01199c61841fce3b3dafb83fefc1899715c8756\"\n },\n \"marketCapRank\": 1949\n },\n {\n \"id\": \"forta\",\n \"symbol\": \"fort\",\n \"name\": \"Forta\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x41545f8b9472d758bb669ed8eaeeecd7a9c4ec29\",\n \"polygon-pos\": \"0x9ff62d1fc52a907b6dcba8077c2ddca6e6a9d3e1\"\n },\n \"marketCapRank\": 574\n },\n {\n \"id\": \"civic\",\n \"symbol\": \"cvc\",\n \"name\": \"Civic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x41e5560054824ea6b0732e656e3ad64e20e94e45\",\n \"energi\": \"0x0d91d554768dc20e1d3d95ff9d5bc041edc3ba0f\",\n \"polygon-pos\": \"0x66dc5a08091d1968e08c16aa5b27bac8398b02be\"\n },\n \"marketCapRank\": 374\n },\n {\n \"id\": \"cjournal\",\n \"symbol\": \"ucjl\",\n \"name\": \"Utility Cjournal\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf5355ddc7ffbf7ca119bf3222cb0ecac2fbb4502\"\n },\n \"marketCapRank\": 2343\n },\n {\n \"id\": \"clash-of-lilliput\",\n \"symbol\": \"col\",\n \"name\": \"Clash of Lilliput\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9ce116224459296abc7858627abd5879514bc629\"\n },\n \"marketCapRank\": 635\n },\n {\n \"id\": \"cleardao\",\n \"symbol\": \"clh\",\n \"name\": \"ClearDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd7d8f3b8bc8bc48d3acc37879eaba7b85889fa52\"\n },\n \"marketCapRank\": 2414\n },\n {\n \"id\": \"clearpool\",\n \"symbol\": \"cpool\",\n \"name\": \"Clearpool\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x66761fa41377003622aee3c7675fc7b5c1c2fac5\"\n },\n \"marketCapRank\": 446\n },\n {\n \"id\": \"clover-finance\",\n \"symbol\": \"clv\",\n \"name\": \"Clover Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x80c62fe4487e1351b47ba49809ebd60ed085bf52\",\n \"binance-smart-chain\": \"0x09e889bb4d5b474f561db0491c38702f367a4e4d\"\n },\n \"marketCapRank\": 517\n },\n {\n \"id\": \"clintex-cti\",\n \"symbol\": \"cti\",\n \"name\": \"ClinTex CTi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcb8fb2438a805664cd8c3e640b85ac473da5be87\",\n \"binance-smart-chain\": \"0x7c3b67b30efbacc8f787f7ebd3bdc65234299f4c\",\n \"polygon-pos\": \"0x03c2f6808502ffd4ab2787ad1a98ec13dbd5718b\",\n \"solana\": \"9ET2QCQJdFkeKkuaampNbmicbA8eLYauFCWch9Ddh9p5\"\n },\n \"marketCapRank\": 1855\n },\n {\n \"id\": \"clore-ai\",\n \"symbol\": \"clore\",\n \"name\": \"Clore.ai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 547\n },\n {\n \"id\": \"honk\",\n \"symbol\": \"honk\",\n \"name\": \"Honk\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"3ag1Mj9AKz9FAkCQ6gAEhpLSX8B2pUbPdkb9iBsDLZNB\"\n },\n \"marketCapRank\": 1522\n },\n {\n \"id\": \"santiment-network-token\",\n \"symbol\": \"san\",\n \"name\": \"Santiment Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7c5a0ce9267ed19b22f8cae653f198e3e8daf098\"\n },\n \"marketCapRank\": 1646\n },\n {\n \"id\": \"cnh-tether\",\n \"symbol\": \"cnht\",\n \"name\": \"CNH Tether\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6e109e9dd7fa1a58bc3eff667e8e41fc3cc07aef\"\n },\n \"marketCapRank\": 2125\n },\n {\n \"id\": \"cocktailbar\",\n \"symbol\": \"coc\",\n \"name\": \"The Cocktailbar\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x22b6c31c2beb8f2d0d5373146eed41ab9ede3caf\"\n },\n \"marketCapRank\": 1961\n },\n {\n \"id\": \"cocos-bcx\",\n \"symbol\": \"combo\",\n \"name\": \"COMBO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc03fbf20a586fa89c2a5f6f941458e1fbc40c661\",\n \"binance-smart-chain\": \"0xc03fbf20a586fa89c2a5f6f941458e1fbc40c661\"\n },\n \"marketCapRank\": 600\n },\n {\n \"id\": \"coin98\",\n \"symbol\": \"c98\",\n \"name\": \"Coin98\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xaec945e04baf28b135fa7c640f624f8d90f1c3a6\",\n \"tomochain\": \"0x0fd0288aaae91eaf935e2ec14b23486f86516c8c\",\n \"ethereum\": \"0xae12c5930881c53715b369cec7606b70d8eb229f\",\n \"polygon-pos\": \"0x77f56cf9365955486b12c4816992388ee8606f0e\",\n \"solana\": \"C98A4nkJXhpVZNAZdHUA95RpTF3T4whtQubL3YobiUX9\"\n },\n \"marketCapRank\": 302\n },\n {\n \"id\": \"coinbase-wrapped-staked-eth\",\n \"symbol\": \"cbeth\",\n \"name\": \"Coinbase Wrapped Staked ETH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbe9895146f7af43049ca1c1ae358b0541ea49704\",\n \"optimistic-ethereum\": \"0xaddb6a0412de1ba0f936dcaeb8aaa24578dcf3b2\",\n \"polygon-pos\": \"0x4b4327db1600b8b1440163f667e199cef35385f5\",\n \"arbitrum-one\": \"0x1debd73e752beaf79865fd6446b0c970eae7732f\",\n \"base\": \"0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22\"\n },\n \"marketCapRank\": 153\n },\n {\n \"id\": \"coinmerge-os\",\n \"symbol\": \"cmos\",\n \"name\": \"CoinMerge OS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x87869a9789291a6cec99f3c3ef2ff71fceb12a8e\"\n },\n \"marketCapRank\": 2742\n },\n {\n \"id\": \"coinmetro\",\n \"symbol\": \"xcm\",\n \"name\": \"Coinmetro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x36ac219f90f5a6a3c77f2a7b660e3cc701f68e25\"\n },\n \"marketCapRank\": 1065\n },\n {\n \"id\": \"coinweb\",\n \"symbol\": \"cweb\",\n \"name\": \"Coinweb\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x505b5eda5e25a67e1c24a2bf1a527ed9eb88bf04\"\n },\n \"marketCapRank\": 686\n },\n {\n \"id\": \"sacabam\",\n \"symbol\": \"scb\",\n \"name\": \"Sacabam\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"sui\": \"0x9a5502414b5d51d01c8b5641db7436d789fa15a245694b24aa37c25c2a6ce001::scb::SCB\"\n },\n \"marketCapRank\": 2079\n },\n {\n \"id\": \"coldstack\",\n \"symbol\": \"cls\",\n \"name\": \"Coldstack\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x675bbc7514013e2073db7a919f6e4cbef576de37\",\n \"binance-smart-chain\": \"0x668048e70284107a6afab1711f28d88df3e72948\"\n },\n \"marketCapRank\": 1762\n },\n {\n \"id\": \"collab-land\",\n \"symbol\": \"collab\",\n \"name\": \"Collab.Land\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xf18c263ec50cc211ef3f172228549b6618f10613\"\n },\n \"marketCapRank\": 2462\n },\n {\n \"id\": \"colony\",\n \"symbol\": \"cly\",\n \"name\": \"Colony\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xec3492a2508ddf4fdc0cd76f31f340b30d1793e6\"\n },\n \"marketCapRank\": 1008\n },\n {\n \"id\": \"comdex\",\n \"symbol\": \"cmdx\",\n \"name\": \"COMDEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"comdex\": \"ucmdx\",\n \"archway\": \"ibc/BF8BDCAA292B56035E669D80711D9881CC96796AC6BCB0376836FAD045355E37\",\n \"osmosis\": \"ibc/EA3E1640F9B1532AB129A571203A0B9F789A7F14BB66E350DCBFA18E1A1931F0\"\n },\n \"marketCapRank\": 1733\n },\n {\n \"id\": \"compound-governance-token\",\n \"symbol\": \"comp\",\n \"name\": \"Compound\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc00e94cb662c3520282e6f5717214004a7f26888\",\n \"energi\": \"0x66bc411714e16b6f0c68be12bd9c666cc4576063\",\n \"avalanche\": \"0xc3048e19e76cb9a3aa9d77d8c03c29fc906e2437\",\n \"near-protocol\": \"c00e94cb662c3520282e6f5717214004a7f26888.factory.bridge.near\",\n \"polygon-pos\": \"0x8505b9d2254a7ae468c0e9dd10ccea3a837aef5c\",\n \"harmony-shard-0\": \"0x32137b9275ea35162812883582623cd6f6950958\",\n \"arbitrum-one\": \"0x354a6da3fcde098f8389cad84b0182725c6c91de\",\n \"binance-smart-chain\": \"0x52ce071bd9b1c4b00a0b92d298c512478cad67e8\",\n \"sora\": \"0x00dbd45af9f2ea406746f9025110297469e9d29efc60df8d88efb9b0179d6c2c\"\n },\n \"marketCapRank\": 181\n },\n {\n \"id\": \"compound-usd-coin\",\n \"symbol\": \"cusdc\",\n \"name\": \"cUSDC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x39aa39c021dfbae8fac545936693ac917d5e7563\"\n },\n \"marketCapRank\": 636\n },\n {\n \"id\": \"concentrated-voting-power\",\n \"symbol\": \"cvp\",\n \"name\": \"PowerPool Concentrated Voting Power\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x38e4adb44ef08f22f5b5b76a8f0c2d0dcbe7dca1\"\n },\n \"marketCapRank\": 1163\n },\n {\n \"id\": \"concentrator\",\n \"symbol\": \"ctr\",\n \"name\": \"Concentrator\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb3ad645db386d7f6d753b2b9c3f4b853da6890b8\"\n },\n \"marketCapRank\": 2765\n },\n {\n \"id\": \"concordium\",\n \"symbol\": \"ccd\",\n \"name\": \"Concordium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 793\n },\n {\n \"id\": \"conflux-token\",\n \"symbol\": \"cfx\",\n \"name\": \"Conflux\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 69\n },\n {\n \"id\": \"conic-finance\",\n \"symbol\": \"cnc\",\n \"name\": \"Conic\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9ae380f0272e2162340a5bb646c354271c0f5cfc\"\n },\n \"marketCapRank\": 1865\n },\n {\n \"id\": \"connect-financial\",\n \"symbol\": \"cnfi\",\n \"name\": \"Connect Financial\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xeabb8996ea1662cad2f7fb715127852cd3262ae9\",\n \"arbitrum-one\": \"0x6f5401c53e2769c858665621d22ddbf53d8d27c5\"\n },\n \"marketCapRank\": 2211\n },\n {\n \"id\": \"constellation-labs\",\n \"symbol\": \"dag\",\n \"name\": \"Constellation\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 355\n },\n {\n \"id\": \"constitutiondao\",\n \"symbol\": \"people\",\n \"name\": \"ConstitutionDAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7a58c0be72be218b41c608b7fe7c5bb630736c71\"\n },\n \"marketCapRank\": 349\n },\n {\n \"id\": \"contentos\",\n \"symbol\": \"cos\",\n \"name\": \"Contentos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binancecoin\": \"COS-2E4\"\n },\n \"marketCapRank\": 757\n },\n {\n \"id\": \"convergence\",\n \"symbol\": \"conv\",\n \"name\": \"Convergence\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc834fa996fa3bec7aad3693af486ae53d8aa8b50\"\n },\n \"marketCapRank\": 2157\n },\n {\n \"id\": \"cope\",\n \"symbol\": \"cope\",\n \"name\": \"Cope\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"8HGyAAB1yoM1ttS7pXjHMa3dukTFGQggnFFH3hJZgzQh\"\n },\n \"marketCapRank\": 2330\n },\n {\n \"id\": \"coredaoorg\",\n \"symbol\": \"core\",\n \"name\": \"Core\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 112\n },\n {\n \"id\": \"cornucopias\",\n \"symbol\": \"copi\",\n \"name\": \"Cornucopias\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfea292e5ea4510881bdb840e3cec63abd43f936f\",\n \"cardano\": \"asset1c6uau7pufsxhnm7eg0eerhu4snwfd9sn7kvvvz\",\n \"ethereum\": \"0x42baf1f659d765c65ade5bb7e08eb2c680360d9d\"\n },\n \"marketCapRank\": 619\n },\n {\n \"id\": \"cortex\",\n \"symbol\": \"ctxc\",\n \"name\": \"Cortex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 513\n },\n {\n \"id\": \"cosmos\",\n \"symbol\": \"atom\",\n \"name\": \"Cosmos Hub\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"kava\": \"0x15932e26f5bd4923d46a2b205191c4b5d5f43fe3\",\n \"evmos\": \"0xc5e00d3b04563950941f7137b5afa3a534f0d6d6\",\n \"archway\": \"ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2\",\n \"osmosis\": \"ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2\",\n \"binance-smart-chain\": \"0x0eb3a705fc54725037cc9e008bdede697f62f335\",\n \"canto\": \"0xeceeefcee421d8062ef8d6b4d814efe4dc898265\"\n },\n \"marketCapRank\": 29\n },\n {\n \"id\": \"coti\",\n \"symbol\": \"coti\",\n \"name\": \"COTI\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xddb3422497e61e13543bea06989c0789117555c5\"\n },\n \"marketCapRank\": 274\n },\n {\n \"id\": \"counterparty\",\n \"symbol\": \"xcp\",\n \"name\": \"Counterparty\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1070\n },\n {\n \"id\": \"covalent\",\n \"symbol\": \"cqt\",\n \"name\": \"Covalent\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd417144312dbf50465b1c641d016962017ef6240\"\n },\n \"marketCapRank\": 339\n },\n {\n \"id\": \"covesting\",\n \"symbol\": \"cov\",\n \"name\": \"Covesting\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xada86b1b313d1d5267e3fc0bb303f0a2b66d0ea7\",\n \"binance-smart-chain\": \"0x0f237db17aa4e6de062e6f052bd9c805789b01c3\"\n },\n \"marketCapRank\": 2782\n },\n {\n \"id\": \"cratos\",\n \"symbol\": \"crts\",\n \"name\": \"Cratos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x678e840c640f619e17848045d23072844224dd37\",\n \"binance-smart-chain\": \"0x678e840c640f619e17848045d23072844224dd37\"\n },\n \"marketCapRank\": 640\n },\n {\n \"id\": \"cream-2\",\n \"symbol\": \"cream\",\n \"name\": \"Cream\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2ba592f78db6436527729929aaf6c908497cb200\",\n \"energi\": \"0x1cca61099dcebe517f8cac58f27218e7aff2d3bf\",\n \"sora\": \"0x00521ad5caeadc2e3e04be4d4ebb0b7c8c9b71ba657c2362a3953490ebc81410\",\n \"near-protocol\": \"2ba592f78db6436527729929aaf6c908497cb200.factory.bridge.near\",\n \"arbitrum-one\": \"0xf4d48ce3ee1ac3651998971541badbb9a14d7234\",\n \"fantom\": \"0x657a1861c15a3ded9af0b6799a195a249ebdcbc6\"\n },\n \"marketCapRank\": 1121\n },\n {\n \"id\": \"credefi\",\n \"symbol\": \"credi\",\n \"name\": \"Credefi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xae6e307c3fe9e922e5674dbd7f830ed49c014c6b\",\n \"binance-smart-chain\": \"0x2235e79086dd23135119366da45851c741874e5b\"\n },\n \"marketCapRank\": 1122\n },\n {\n \"id\": \"creditcoin-2\",\n \"symbol\": \"ctc\",\n \"name\": \"Creditcoin\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa3ee21c306a700e682abcdfe9baa6a08f3820419\"\n },\n \"marketCapRank\": 262\n },\n {\n \"id\": \"creo-engine\",\n \"symbol\": \"creo\",\n \"name\": \"Creo Engine\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9521728bf66a867bc65a93ece4a543d817871eb7\"\n },\n \"marketCapRank\": 846\n },\n {\n \"id\": \"cronos-id\",\n \"symbol\": \"croid\",\n \"name\": \"Cronos ID\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0xcbf0adea24fd5f32c6e7f0474f0d1b94ace4e2e7\"\n },\n \"marketCapRank\": 1034\n },\n {\n \"id\": \"cropbytes\",\n \"symbol\": \"cbx\",\n \"name\": \"CropBytes\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x37fc4b48ce93469dbea9918468993c735049642a\"\n },\n \"marketCapRank\": 1779\n },\n {\n \"id\": \"octus-bridge\",\n \"symbol\": \"bridge\",\n \"name\": \"Octus Bridge\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"everscale\": \"0:f2679d80b682974e065e03bf42bbee285ce7c587eb153b41d761ebfd954c45e1\"\n },\n \"marketCapRank\": 1560\n },\n {\n \"id\": \"degen-base\",\n \"symbol\": \"degen\",\n \"name\": \"Degen (Base)\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"base\": \"0x4ed4e862860bed51a9570b96d89af5e1b0efefed\"\n },\n \"marketCapRank\": 228\n },\n {\n \"id\": \"crowdswap\",\n \"symbol\": \"crowd\",\n \"name\": \"CrowdSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x483dd3425278c1f79f377f1034d9d2cae55648b6\"\n },\n \"marketCapRank\": 1996\n },\n {\n \"id\": \"crown-by-third-time-games\",\n \"symbol\": \"crown\",\n \"name\": \"Crown by Third Time Games\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"GDfnEsia2WLAW5t8yx2X5j2mkfA74i5kwGdDuZHt7XmG\"\n },\n \"marketCapRank\": 313\n },\n {\n \"id\": \"crowns\",\n \"symbol\": \"cws\",\n \"name\": \"Seascape Crowns\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x99aa29ac023057951781dc5d1784e9a4c362ce23\"\n },\n \"marketCapRank\": 1989\n },\n {\n \"id\": \"crowny-token\",\n \"symbol\": \"crwny\",\n \"name\": \"Crowny\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"CRWNYkqdgvhGGae9CKfNka58j6QQkaD5bLhKXvUYqnc1\"\n },\n \"marketCapRank\": 1584\n },\n {\n \"id\": \"crust-network\",\n \"symbol\": \"cru\",\n \"name\": \"Crust Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x32a7c02e79c4ea1008dd6564b35f131428673c41\"\n },\n \"marketCapRank\": 707\n },\n {\n \"id\": \"crvusd\",\n \"symbol\": \"crvusd\",\n \"name\": \"crvUSD\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf939e0a03fb07f59a73314e73794be0e57ac1b4e\",\n \"arbitrum-one\": \"0x498bf2b1e120fed3ad3d42ea2165e9b73f99c1e5\",\n \"optimistic-ethereum\": \"0xc52d7f23a2e460248db6ee192cb23dd12bddcbf6\",\n \"base\": \"0x417ac0e078398c154edfadd9ef675d30be60af93\",\n \"xdai\": \"0xabef652195f98a91e490f047a5006b71c85f058d\",\n \"polygon-pos\": \"0xc4ce1d6f5d98d65ee25cf85e9f2e9dcfee6cb5d6\"\n },\n \"marketCapRank\": 411\n },\n {\n \"id\": \"cryowar-token\",\n \"symbol\": \"cwar\",\n \"name\": \"Cryowar\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"HfYFjMKNZygfMC8LsQ8LtpPsPxEJoXJx4M6tqi75Hajo\"\n },\n \"marketCapRank\": 1561\n },\n {\n \"id\": \"crypterium\",\n \"symbol\": \"crpt\",\n \"name\": \"Crypterium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x08389495d7456e1951ddf7c3a1314a4bfb646d8b\"\n },\n \"marketCapRank\": 1815\n },\n {\n \"id\": \"cryptex-finance\",\n \"symbol\": \"ctx\",\n \"name\": \"Cryptex Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x321c2fe4446c7c963dc41dd58879af648838f98d\"\n },\n \"marketCapRank\": 1057\n },\n {\n \"id\": \"cryptocart\",\n \"symbol\": \"ccv2\",\n \"name\": \"CryptoCart V2\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x612e1726435fe38dd49a0b35b4065b56f49c8f11\",\n \"binance-smart-chain\": \"0x612e1726435fe38dd49a0b35b4065b56f49c8f11\"\n },\n \"marketCapRank\": 2466\n },\n {\n \"id\": \"crypto-com-chain\",\n \"symbol\": \"cro\",\n \"name\": \"Cronos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b\"\n },\n \"marketCapRank\": 36\n },\n {\n \"id\": \"cryptofranc\",\n \"symbol\": \"xchf\",\n \"name\": \"CryptoFranc\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb4272071ecadd69d933adcd19ca99fe80664fc08\"\n },\n \"marketCapRank\": 2295\n },\n {\n \"id\": \"crypto-gladiator-shards\",\n \"symbol\": \"cgl\",\n \"name\": \"Crypto Gladiator League\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x2627c26b33f5193da4adfb26df60202479ccd2d3\"\n },\n \"marketCapRank\": 1258\n },\n {\n \"id\": \"cryptogpt-token\",\n \"symbol\": \"lai\",\n \"name\": \"LayerAI\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x168e209d7b2f58f1f24b8ae7b7d35e662bbf11cc\",\n \"binance-smart-chain\": \"0x776f9987d9deed90eed791cbd824d971fd5ccf09\"\n },\n \"marketCapRank\": 1173\n },\n {\n \"id\": \"defi-kingdoms-crystal\",\n \"symbol\": \"crystal\",\n \"name\": \"DeFi Kingdoms Crystal\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"defi-kingdoms-blockchain\": \"0x04b9da42306b023f3572e106b11d82aad9d32ebb\"\n },\n \"marketCapRank\": 2331\n },\n {\n \"id\": \"csp-dao-network\",\n \"symbol\": \"nebo\",\n \"name\": \"CSP DAO Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7f0c8b125040f707441cad9e5ed8a8408673b455\"\n },\n \"marketCapRank\": 1796\n },\n {\n \"id\": \"cudos\",\n \"symbol\": \"cudos\",\n \"name\": \"Cudos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x817bbdbc3e8a1204f3691d14bb44992841e3db35\",\n \"archway\": \"ibc/2AE1ECA44CAD0C933CE178742595CE6796530FA1983E4FA7F4E43FBB5854D505\"\n },\n \"marketCapRank\": 438\n },\n {\n \"id\": \"cult-dao\",\n \"symbol\": \"cult\",\n \"name\": \"Cult DAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf0f9d895aca5c8678f706fb8216fa22957685a13\"\n },\n \"marketCapRank\": 1200\n },\n {\n \"id\": \"cuminu\",\n \"symbol\": \"cuminu\",\n \"name\": \"Cuminu\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd6327ce1fb9d6020e8c2c0e124a1ec23dcab7536\"\n },\n \"marketCapRank\": 1851\n },\n {\n \"id\": \"cumrocket\",\n \"symbol\": \"cummies\",\n \"name\": \"CumRocket\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x27ae27110350b98d564b9a3eed31baebc82d878d\"\n },\n \"marketCapRank\": 1223\n },\n {\n \"id\": \"curate\",\n \"symbol\": \"xcur\",\n \"name\": \"Curate\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe1c7e30c42c24582888c758984f6e382096786bd\",\n \"binance-smart-chain\": \"0xd52669712f253cd6b2fe8a8638f66ed726cb770c\",\n \"solana\": \"35r2jMGKytAJ7FyKfKRHPanT8kpjg3emPy7WG6GANCNB\"\n },\n \"marketCapRank\": 2519\n },\n {\n \"id\": \"curio-governance\",\n \"symbol\": \"cgt\",\n \"name\": \"Curio Governance Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf56b164efd3cfc02ba739b719b6526a6fa1ca32a\",\n \"binance-smart-chain\": \"0x3d04edc843e74935c09f54cc4b2fe1870e347ac9\"\n },\n \"marketCapRank\": 1954\n },\n {\n \"id\": \"cyberconnect\",\n \"symbol\": \"cyber\",\n \"name\": \"CyberConnect\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x14778860e937f509e651192a90589de711fb88a9\",\n \"optimistic-ethereum\": \"0x14778860e937f509e651192a90589de711fb88a9\",\n \"binance-smart-chain\": \"0x14778860e937f509e651192a90589de711fb88a9\"\n },\n \"marketCapRank\": 402\n },\n {\n \"id\": \"cypherium\",\n \"symbol\": \"cph\",\n \"name\": \"Cypherium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1494\n },\n {\n \"id\": \"d3d-social\",\n \"symbol\": \"d3d\",\n \"name\": \"D3D Social\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd3c7e51caab1089002ec05569a04d14bcc478bc4\"\n },\n \"marketCapRank\": 1285\n },\n {\n \"id\": \"dacxi\",\n \"symbol\": \"dacxi\",\n \"name\": \"Dacxi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xefab7248d36585e2340e5d25f8a8d243e6e3193f\"\n },\n \"marketCapRank\": 1512\n },\n {\n \"id\": \"dafi-protocol\",\n \"symbol\": \"dafi\",\n \"name\": \"Dafi Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfc979087305a826c2b2a0056cfaba50aad3e6439\",\n \"binance-smart-chain\": \"0x4e0fe270b856eebb91fb4b4364312be59f499a3f\",\n \"polygon-pos\": \"0x638df98ad8069a15569da5a6b01181804c47e34c\"\n },\n \"marketCapRank\": 2302\n },\n {\n \"id\": \"dao-maker\",\n \"symbol\": \"dao\",\n \"name\": \"DAO Maker\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0f51bb10119727a7e5ea3538074fb341f56b09ad\",\n \"arbitrum-one\": \"0xcaa38bcc8fb3077975bbe217acfaa449e6596a84\",\n \"binance-smart-chain\": \"0x4d2d32d8652058bf98c772953e1df5c5c85d9f45\",\n \"step-network\": \"0xd67de0e0a0fd7b15dc8348bb9be742f3c5850454\"\n },\n \"marketCapRank\": 221\n },\n {\n \"id\": \"decentr\",\n \"symbol\": \"dec\",\n \"name\": \"Decentr\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x30f271c9e86d2b7d00a6376cd96a1cfbd5f0b9b3\",\n \"archway\": \"ibc/e3409e92f78ae5bf44dbc7c4741901e21ef73b7b8f98c4d48f2bd360af242c00\",\n \"osmosis\": \"ibc/9BCB27203424535B6230D594553F1659C77EC173E36D9CF4759E7186EE747E84\"\n },\n \"marketCapRank\": 2678\n },\n {\n \"id\": \"dream-machine-token\",\n \"symbol\": \"dmt\",\n \"name\": \"Dream Machine Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x8b0e6f19ee57089f7649a455d89d7bc6314d04e8\",\n \"ethereum\": \"0x0b7f0e51cd1739d6c96982d55ad8fa634dd43a9c\"\n },\n \"marketCapRank\": 972\n },\n {\n \"id\": \"diamond\",\n \"symbol\": \"dmd\",\n \"name\": \"Diamond\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1640\n },\n {\n \"id\": \"darwinia-network-native-token\",\n \"symbol\": \"ring\",\n \"name\": \"Darwinia Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9469d013805bffb7d3debe5e7839237e535ec483\",\n \"arbitrum-one\": \"0x9e523234d36973f9e38642886197d023c88e307e\",\n \"polygon-pos\": \"0x9c1c23e60b72bc88a043bf64afdb16a02540ae8f\"\n },\n \"marketCapRank\": 1513\n },\n {\n \"id\": \"dash\",\n \"symbol\": \"dash\",\n \"name\": \"Dash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 200\n },\n {\n \"id\": \"dash-2-trade\",\n \"symbol\": \"d2t\",\n \"name\": \"Dash 2 Trade\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4dd942baa75810a3c1e876e79d5cd35e09c97a76\"\n },\n \"marketCapRank\": 2360\n },\n {\n \"id\": \"streamr\",\n \"symbol\": \"data\",\n \"name\": \"Streamr\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8f693ca8d21b157107184d29d398a8d082b38b76\",\n \"binance-smart-chain\": \"0x0864c156b3c5f69824564dec60c629ae6401bf2a\",\n \"polygon-pos\": \"0x3a9a81d576d83ff21f26f325066054540720fc34\",\n \"xdai\": \"0x256eb8a51f382650b2a1e946b8811953640ee47d\"\n },\n \"marketCapRank\": 674\n },\n {\n \"id\": \"databroker-dao\",\n \"symbol\": \"dtx\",\n \"name\": \"DaTa eXchange DTX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x765f0c16d1ddc279295c1a7c24b0883f62d33f75\"\n },\n \"marketCapRank\": 2410\n },\n {\n \"id\": \"data-lake\",\n \"symbol\": \"lake\",\n \"name\": \"Data Lake\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf9ca9523e5b5a42c3018c62b084db8543478c400\"\n },\n \"marketCapRank\": 1153\n },\n {\n \"id\": \"datamall-coin\",\n \"symbol\": \"dmc\",\n \"name\": \"Datamall Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 803\n },\n {\n \"id\": \"dogechain\",\n \"symbol\": \"dc\",\n \"name\": \"Dogechain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"dogechain\": \"0x7b4328c127b85369d9f82ca0503b000d09cf9180\",\n \"ethereum\": \"0x7b4328c127b85369d9f82ca0503b000d09cf9180\"\n },\n \"marketCapRank\": 966\n },\n {\n \"id\": \"deapcoin\",\n \"symbol\": \"dep\",\n \"name\": \"DEAPCOIN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1a3496c18d558bd9c6c8f609e1b129f67ab08163\",\n \"avalanche\": \"0xd4d026322c88c2d49942a75dff920fcfbc5614c1\",\n \"binance-smart-chain\": \"0xcaf5191fc480f43e4df80106c7695eca56e48b18\",\n \"solana\": \"BgwQjVNMWvt2d8CN51CsbniwRWyZ9H9HfHkEsvikeVuZ\"\n },\n \"marketCapRank\": 677\n },\n {\n \"id\": \"defichain\",\n \"symbol\": \"dfi\",\n \"name\": \"DeFiChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x361c60b7c2828fcab80988d00d1d542c83387b50\",\n \"ethereum\": \"0x8fc8f8269ebca376d046ce292dc7eac40c8d358a\"\n },\n \"marketCapRank\": 641\n },\n {\n \"id\": \"decentraland\",\n \"symbol\": \"mana\",\n \"name\": \"Decentraland\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0f5d2fb29fb7d3cfee444a200298f468908cc942\",\n \"polygon-pos\": \"0xa1c57f48f0deb89f569dfbe6e2b7f46d33606fd4\"\n },\n \"marketCapRank\": 94\n },\n {\n \"id\": \"decentral-games-governance\",\n \"symbol\": \"xdg\",\n \"name\": \"Decentral Games Governance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4f81c790581b240a5c948afd173620ecc8c71c8d\",\n \"polygon-pos\": \"0xc6480da81151b2277761024599e8db2ad4c388c8\"\n },\n \"marketCapRank\": 1444\n },\n {\n \"id\": \"ice\",\n \"symbol\": \"ice\",\n \"name\": \"Ice Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc335df7c25b72eec661d5aa32a7c2b7b2a1d1874\",\n \"ethereum\": \"0x79f05c263055ba20ee0e814acd117c20caa10e0c\"\n },\n \"marketCapRank\": 1018\n },\n {\n \"id\": \"decentralized-advertising\",\n \"symbol\": \"dad\",\n \"name\": \"DAD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5b322514ff727253292637d9054301600c2c81e8\"\n },\n \"marketCapRank\": 1651\n },\n {\n \"id\": \"dia-data\",\n \"symbol\": \"dia\",\n \"name\": \"DIA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x84ca8bc7997272c7cfb4d0cd3d55cd942b3c9419\",\n \"sora\": \"0x001f7a13792061236adfc93fa3aa8bad1dc8a8e8f889432b3d8d416b986f2c43\",\n \"binance-smart-chain\": \"0x99956d38059cf7beda96ec91aa7bb2477e0901dd\"\n },\n \"marketCapRank\": 608\n },\n {\n \"id\": \"decentraweb\",\n \"symbol\": \"dweb\",\n \"name\": \"DecentraWeb\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe7f58a92476056627f9fdb92286778abd83b285f\",\n \"polygon-pos\": \"0x8839e639f210b80ffea73aedf51baed8dac04499\"\n },\n \"marketCapRank\": 2719\n },\n {\n \"id\": \"decimal\",\n \"symbol\": \"del\",\n \"name\": \"Decimal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 998\n },\n {\n \"id\": \"decred\",\n \"symbol\": \"dcr\",\n \"name\": \"Decred\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 202\n },\n {\n \"id\": \"decubate\",\n \"symbol\": \"dcb\",\n \"name\": \"Decubate\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xeac9873291ddaca754ea5642114151f3035c67a2\"\n },\n \"marketCapRank\": 792\n },\n {\n \"id\": \"deepbrain-chain\",\n \"symbol\": \"dbc\",\n \"name\": \"DeepBrain Chain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1221\n },\n {\n \"id\": \"deepfakeai\",\n \"symbol\": \"fakeai\",\n \"name\": \"DeepFakeAI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5aef5bba19e6a1644805bd4f5c93c8557b87c62c\"\n },\n \"marketCapRank\": 1123\n },\n {\n \"id\": \"deeponion\",\n \"symbol\": \"onion\",\n \"name\": \"DeepOnion\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2617\n },\n {\n \"id\": \"deepspace\",\n \"symbol\": \"dps\",\n \"name\": \"DEEPSPACE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb7b1570e26315baad369b8ea0a943b7f140db9eb\",\n \"binance-smart-chain\": \"0xf275e1ac303a4c9d987a2c48b8e555a77fec3f1c\"\n },\n \"marketCapRank\": 2035\n },\n {\n \"id\": \"defactor\",\n \"symbol\": \"factr\",\n \"name\": \"Defactor\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe0bceef36f3a6efdd5eebfacd591423f8549b9d5\",\n \"polygon-pos\": \"0xe0bceef36f3a6efdd5eebfacd591423f8549b9d5\",\n \"binance-smart-chain\": \"0xdefac16715671b7b6aeefe012125f1e19ee4b7d7\"\n },\n \"marketCapRank\": 1180\n },\n {\n \"id\": \"de-fi\",\n \"symbol\": \"defi\",\n \"name\": \"DeFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b0faca7ba905a86f221ceb5ca404f605e5b3131\",\n \"binance-smart-chain\": \"0x6d106c0b8d2f47c5465bdbd58d1be253762cbbc1\"\n },\n \"marketCapRank\": 983\n },\n {\n \"id\": \"defi-kingdoms\",\n \"symbol\": \"jewel\",\n \"name\": \"DeFi Kingdoms\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x997ddaa07d716995de90577c123db411584e5e46\"\n },\n \"marketCapRank\": 1090\n },\n {\n \"id\": \"definity\",\n \"symbol\": \"defx\",\n \"name\": \"DeFinity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5f474906637bdcda05f29c74653f6962bb0f8eda\",\n \"binance-smart-chain\": \"0xbe4cb2c354480042a39350a0c6c26bf54786539f\"\n },\n \"marketCapRank\": 1526\n },\n {\n \"id\": \"paladin\",\n \"symbol\": \"pal\",\n \"name\": \"Paladin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xab846fb6c81370327e784ae7cbb6d6a6af6ff4bf\"\n },\n \"marketCapRank\": 2293\n },\n {\n \"id\": \"defipulse-index\",\n \"symbol\": \"dpi\",\n \"name\": \"DeFi Pulse Index\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1494ca1f11d487c2bbe4543e90080aeba4ba3c2b\",\n \"energi\": \"0x8b8e6090542b612b7e2d73a934f9f5ea7e9a40af\",\n \"polygon-pos\": \"0x85955046df4668e1dd369d2de9f3aeb98dd2a369\",\n \"xdai\": \"0xd3d47d5578e55c880505dc40648f7f9307c3e7a8\"\n },\n \"marketCapRank\": 1016\n },\n {\n \"id\": \"defit\",\n \"symbol\": \"defit\",\n \"name\": \"Digital Fitness\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x428360b02c1269bc1c79fbc399ad31d58c1e8fda\"\n },\n \"marketCapRank\": 1693\n },\n {\n \"id\": \"defi-yield-protocol\",\n \"symbol\": \"dyp\",\n \"name\": \"Dypius [OLD]\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17\",\n \"avalanche\": \"0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17\",\n \"binance-smart-chain\": \"0x961c8c0b1aad0c0b10a51fef6a867e3091bcef17\"\n },\n \"marketCapRank\": 1679\n },\n {\n \"id\": \"degenx\",\n \"symbol\": \"dgnx\",\n \"name\": \"DegenX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x51e48670098173025c477d9aa3f0eff7bf9f7812\",\n \"ethereum\": \"0x0000000000300dd8b0230efcfef136ecdf6abcde\"\n },\n \"marketCapRank\": 2017\n },\n {\n \"id\": \"degen-zoo\",\n \"symbol\": \"dzoo\",\n \"name\": \"Degen Zoo\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc97d6c52f3add91fa1c5287a453d7444aecbca83\",\n \"binance-smart-chain\": \"0x56d06a78ef8e95d6043341f24759e2834be6f97b\"\n },\n \"marketCapRank\": 1797\n },\n {\n \"id\": \"dego-finance\",\n \"symbol\": \"dego\",\n \"name\": \"Dego Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3da932456d082cba208feb0b096d49b202bf89c8\",\n \"binance-smart-chain\": \"0x3da932456d082cba208feb0b096d49b202bf89c8\"\n },\n \"marketCapRank\": 1193\n },\n {\n \"id\": \"dejitaru-hoshi\",\n \"symbol\": \"hoshi\",\n \"name\": \"Dejitaru Hoshi\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5362ca75aa3c0e714bc628296640c43dc5cb9ed6\"\n },\n \"marketCapRank\": 2469\n },\n {\n \"id\": \"dejitaru-tsuka\",\n \"symbol\": \"tsuka\",\n \"name\": \"Dejitaru Tsuka\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc5fb36dd2fb59d3b98deff88425a3f425ee469ed\"\n },\n \"marketCapRank\": 875\n },\n {\n \"id\": \"dent\",\n \"symbol\": \"dent\",\n \"name\": \"Dent\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3597bfd533a99c9aa083587b074434e61eb0a258\"\n },\n \"marketCapRank\": 359\n },\n {\n \"id\": \"derace\",\n \"symbol\": \"derc\",\n \"name\": \"DeRace\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9fa69536d1cda4a04cfb50688294de75b505a9ae\",\n \"binance-smart-chain\": \"0x373e768f79c820aa441540d254dca6d045c6d25b\",\n \"polygon-pos\": \"0xb35fcbcf1fd489fce02ee146599e893fdcdc60e6\"\n },\n \"marketCapRank\": 862\n },\n {\n \"id\": \"derby-stars-run\",\n \"symbol\": \"dsrun\",\n \"name\": \"Derby Stars RUN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xff76c0b48363a7c7307868a81548d340049b0023\"\n },\n \"marketCapRank\": 1886\n },\n {\n \"id\": \"deri-protocol\",\n \"symbol\": \"deri\",\n \"name\": \"Deri Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa487bf43cf3b10dffc97a9a744cbb7036965d3b9\",\n \"manta-pacific\": \"0xd212377f71f15a1b962c9265dc44fbceaf0bc46d\",\n \"arbitrum-one\": \"0x21e60ee73f17ac0a411ae5d690f908c3ed66fe12\",\n \"binance-smart-chain\": \"0xe60eaf5a997dfae83739e035b005a33afdcc6df5\",\n \"huobi-token\": \"0x2bda3e331cf735d9420e41567ab843441980c4b8\",\n \"polygon-pos\": \"0x3d1d2afd191b165d140e3e8329e634665ffb0e5e\"\n },\n \"marketCapRank\": 2148\n },\n {\n \"id\": \"dero\",\n \"symbol\": \"dero\",\n \"name\": \"Dero\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 692\n },\n {\n \"id\": \"desmos\",\n \"symbol\": \"dsm\",\n \"name\": \"Desmos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/EA4C0A9F72E2CEDF10D0E7A9A6A22954DB3444910DB5BE980DF59B05A46DAD1C\"\n },\n \"marketCapRank\": 2281\n },\n {\n \"id\": \"deso\",\n \"symbol\": \"deso\",\n \"name\": \"Decentralized Social\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 264\n },\n {\n \"id\": \"devour-2\",\n \"symbol\": \"dpay\",\n \"name\": \"Devour\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe5a733681bbe6cd8c764bb8078ef8e13a576dd78\",\n \"solana\": \"Gnca3UkjR4a1FFNZuGfEELmbaHkL6GteSC2swpdWRmf7\"\n },\n \"marketCapRank\": 1450\n },\n {\n \"id\": \"dexalot\",\n \"symbol\": \"alot\",\n \"name\": \"Dexalot\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x093783055f9047c2bff99c4e414501f8a147bc69\"\n },\n \"marketCapRank\": 947\n },\n {\n \"id\": \"dexcheck\",\n \"symbol\": \"dck\",\n \"name\": \"DexCheck\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x16faf9daa401aa42506af503aa3d80b871c467a3\",\n \"ethereum\": \"0x672f4fa517894496b8a958b4b3fca068ce513a39\"\n },\n \"marketCapRank\": 922\n },\n {\n \"id\": \"dexe\",\n \"symbol\": \"dexe\",\n \"name\": \"DeXe\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xde4ee8057785a7e8e800db58f9784845a5c2cbd6\",\n \"binance-smart-chain\": \"0x6e88056e8376ae7709496ba64d37fa2f8015ce3e\"\n },\n \"marketCapRank\": 129\n },\n {\n \"id\": \"dex-game\",\n \"symbol\": \"dxgm\",\n \"name\": \"DexGame\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x66f73d0fd4161cfad4302dc145ff994375c13475\"\n },\n \"marketCapRank\": 2427\n },\n {\n \"id\": \"dexkit\",\n \"symbol\": \"kit\",\n \"name\": \"DexKit\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7866e48c74cbfb8183cd1a929cd9b95a7a5cb4f4\",\n \"binance-smart-chain\": \"0x314593fa9a2fa16432913dbccc96104541d32d11\",\n \"polygon-pos\": \"0x4d0def42cf57d6f27cd4983042a55dce1c9f853c\"\n },\n \"marketCapRank\": 2590\n },\n {\n \"id\": \"dexlab\",\n \"symbol\": \"dxl\",\n \"name\": \"Dexlab\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"GsNzxJfFn6zQdJGeYsupJWzUAm57Ba7335mfhWvFiE9Z\"\n },\n \"marketCapRank\": 2125\n },\n {\n \"id\": \"dexpools\",\n \"symbol\": \"dxp\",\n \"name\": \"Dexpools\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x88aa4a6c5050b9a1b2aa7e34d0582025ca6ab745\",\n \"metis-andromeda\": \"0xa31848aa61f784cdbb6f74260d224a4356295799\"\n },\n \"marketCapRank\": 1880\n },\n {\n \"id\": \"dextf\",\n \"symbol\": \"dextf\",\n \"name\": \"Domani Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5f64ab1544d28732f0a24f4713c2c8ec0da089f0\",\n \"avalanche\": \"0x03e8d118a1864c7dc53bf91e007ab7d91f5a06fa\",\n \"zksync\": \"0x9929bcac4417a21d7e6fc86f6dae1cc7f27a2e41\"\n },\n \"marketCapRank\": 1097\n },\n {\n \"id\": \"dextools\",\n \"symbol\": \"dext\",\n \"name\": \"DexTools\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfb7b4564402e5500db5bb6d63ae671302777c75a\",\n \"binance-smart-chain\": \"0xe91a8d2c584ca93c7405f15c22cdfe53c29896e3\"\n },\n \"marketCapRank\": 610\n },\n {\n \"id\": \"dforce-token\",\n \"symbol\": \"df\",\n \"name\": \"dForce\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0\",\n \"energi\": \"0xc588d81d1a9ef1a119446482fc7cbcdb0012292a\",\n \"arbitrum-one\": \"0xae6aab43c4f3e0cea4ab83752c278f8debaba689\",\n \"binance-smart-chain\": \"0x4a9a2b2b04549c3927dd2c9668a5ef3fca473623\"\n },\n \"marketCapRank\": 807\n },\n {\n \"id\": \"dfx-finance\",\n \"symbol\": \"dfx\",\n \"name\": \"DFX Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x888888435fde8e7d4c54cab67f206e4199454c60\",\n \"arbitrum-one\": \"0x27f485b62c4a7e635f561a87560adf5090239e93\",\n \"polygon-pos\": \"0x27f485b62c4a7e635f561a87560adf5090239e93\"\n },\n \"marketCapRank\": 2015\n },\n {\n \"id\": \"dfyn-network\",\n \"symbol\": \"dfyn\",\n \"name\": \"Dfyn Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9695e0114e12c0d3a3636fab5a18e6b737529023\",\n \"polygon-pos\": \"0xc168e40227e4ebd8c1cae80f7a55a4f0e6d66c97\"\n },\n \"marketCapRank\": 1770\n },\n {\n \"id\": \"dhedge-dao\",\n \"symbol\": \"dht\",\n \"name\": \"dHEDGE DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xca1207647ff814039530d7d35df0e1dd2e91fa84\",\n \"optimistic-ethereum\": \"0xaf9fe3b5ccdae78188b1f8b9a49da7ae9510f151\",\n \"base\": \"0x54bc229d1cb15f8b6415efeab4290a40bc8b7d84\",\n \"arbitrum-one\": \"0x8038f3c971414fd1fc220ba727f2d4a0fc98cb65\",\n \"polygon-pos\": \"0x8c92e38eca8210f4fcbf17f0951b198dd7668292\"\n },\n \"marketCapRank\": 1563\n },\n {\n \"id\": \"diamond-launch\",\n \"symbol\": \"dlc\",\n \"name\": \"Diamond Launch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xde83180dd1166d4f8e5c2b7de14a2163b1bb4a87\"\n },\n \"marketCapRank\": 1312\n },\n {\n \"id\": \"digibyte\",\n \"symbol\": \"dgb\",\n \"name\": \"DigiByte\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 306\n },\n {\n \"id\": \"digitalbits\",\n \"symbol\": \"xdb\",\n \"name\": \"XDB CHAIN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1289\n },\n {\n \"id\": \"digix-gold\",\n \"symbol\": \"dgx\",\n \"name\": \"Digix Gold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4f3afec4e5a3f2a6a1a411def7d7dfe50ee057bf\"\n },\n \"marketCapRank\": 2598\n },\n {\n \"id\": \"dimitra\",\n \"symbol\": \"dmtr\",\n \"name\": \"Dimitra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x51cb253744189f11241becb29bedd3f1b5384fdb\"\n },\n \"marketCapRank\": 530\n },\n {\n \"id\": \"dimo\",\n \"symbol\": \"dimo\",\n \"name\": \"DIMO\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xe261d618a959afffd53168cd07d12e37b26761db\",\n \"iotex\": \"0x61db9b084326d2251ccb0252c18fd9b0e887ca4f\",\n \"ethereum\": \"0x5fab9761d60419c9eeebe3915a8fa1ed7e8d2e1b\"\n },\n \"marketCapRank\": 562\n },\n {\n \"id\": \"dingocoin\",\n \"symbol\": \"dingo\",\n \"name\": \"Dingocoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"6VYF5jXq6rfq4QRgGMG6co7b1Ev1Lj7KSbHBxfQ9e1L3\",\n \"binance-smart-chain\": \"0x9b208b117b2c4f76c1534b6f006b033220a681a4\"\n },\n \"marketCapRank\": 2074\n },\n {\n \"id\": \"dinox\",\n \"symbol\": \"dnxc\",\n \"name\": \"DinoX\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x20a8cec5fffea65be7122bcab2ffe32ed4ebf03a\",\n \"polygon-pos\": \"0xcaf5191fc480f43e4df80106c7695eca56e48b18\",\n \"binance-smart-chain\": \"0x3c1748d647e6a56b37b66fcd2b5626d0461d3aa0\"\n },\n \"marketCapRank\": 2668\n },\n {\n \"id\": \"dione\",\n \"symbol\": \"dione\",\n \"name\": \"Dione\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x89b69f2d1adffa9a253d40840b6baa7fc903d697\"\n },\n \"marketCapRank\": 476\n },\n {\n \"id\": \"etherisc\",\n \"symbol\": \"dip\",\n \"name\": \"Etherisc DIP\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc719d010b63e5bbf2c0551872cd5316ed26acd83\",\n \"xdai\": \"0x48b1b0d077b4919b65b4e4114806dd803901e1d9\"\n },\n \"marketCapRank\": 1437\n },\n {\n \"id\": \"district0x\",\n \"symbol\": \"dnt\",\n \"name\": \"district0x\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0abdace70d3790235af448c88547603b945604ea\",\n \"energi\": \"0x8dc6bb6ec3caddefb16b0317fa91217a7df93000\"\n },\n \"marketCapRank\": 653\n },\n {\n \"id\": \"divergence-protocol\",\n \"symbol\": \"diver\",\n \"name\": \"Divergence Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfb782396c9b20e564a64896181c7ac8d8979d5f4\"\n },\n \"marketCapRank\": 2069\n },\n {\n \"id\": \"diversified-staked-eth\",\n \"symbol\": \"dseth\",\n \"name\": \"Diversified Staked ETH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x341c05c0e9b33c0e38d64de76516b2ce970bb3be\"\n },\n \"marketCapRank\": 2183\n },\n {\n \"id\": \"divi\",\n \"symbol\": \"divi\",\n \"name\": \"Divi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x246908bff0b1ba6ecadcf57fb94f6ae2fcd43a77\"\n },\n \"marketCapRank\": 1552\n },\n {\n \"id\": \"djed\",\n \"symbol\": \"djed\",\n \"name\": \"Djed\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cardano\": \"8db269c3ec630e06ae29f74bc39edd1f87c819f1056206e879a1cd61446a65644d6963726f555344\"\n },\n \"marketCapRank\": 1956\n },\n {\n \"id\": \"dkargo\",\n \"symbol\": \"dka\",\n \"name\": \"dKargo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5dc60c4d5e75d22588fa17ffeb90a63e535efce0\"\n },\n \"marketCapRank\": 431\n },\n {\n \"id\": \"dodo\",\n \"symbol\": \"dodo\",\n \"name\": \"DODO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd\",\n \"energi\": \"0x4fec4e046e6b8de5d22785c3fbdb104f14f5a306\",\n \"near-protocol\": \"43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd.factory.bridge.near\",\n \"arbitrum-one\": \"0x69eb4fa4a2fbd498c257c57ea8b7655a2559a581\",\n \"binance-smart-chain\": \"0x67ee3cb086f8a16f34bee3ca72fad36f7db929e2\",\n \"aurora\": \"0xe301ed8c7630c9678c39e4e45193d1e7dfb914f7\",\n \"polygon-pos\": \"0xe4bf2864ebec7b7fdf6eeca9bacae7cdfdaffe78\"\n },\n \"marketCapRank\": 396\n },\n {\n \"id\": \"dogami\",\n \"symbol\": \"doga\",\n \"name\": \"Dogami\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"tezos\": \"KT1Ha4yFVeyzw6KRAdkzq6TxDHB97KG4pZe8\",\n \"polygon-pos\": \"0x2f3e306d9f02ee8e8850f9040404918d0b345207\"\n },\n \"marketCapRank\": 1669\n },\n {\n \"id\": \"dogebonk\",\n \"symbol\": \"dobo\",\n \"name\": \"DogeBonk\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xae2df9f730c54400934c06a17462c41c08a06ed8\"\n },\n \"marketCapRank\": 1753\n },\n {\n \"id\": \"doge-eat-doge\",\n \"symbol\": \"omnom\",\n \"name\": \"Doge Eat Doge\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"dogechain\": \"0xe3fca919883950c5cd468156392a6477ff5d18de\"\n },\n \"marketCapRank\": 813\n },\n {\n \"id\": \"dogegf\",\n \"symbol\": \"dogegf\",\n \"name\": \"DogeGF\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfb130d93e49dca13264344966a611dc79a456bc5\",\n \"polygon-pos\": \"0x0e7252706393470ffb0629da2caa39fc9340f2d4\"\n },\n \"marketCapRank\": 1793\n },\n {\n \"id\": \"dogelon-mars\",\n \"symbol\": \"elon\",\n \"name\": \"Dogelon Mars\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3\",\n \"fuse\": \"0x5dd8015cec49f4db01fd228f688bf30337d3e0a9\",\n \"cronos\": \"0x02dccaf514c98451320a9365c5b46c61d3246ff3\",\n \"binance-smart-chain\": \"0x7bd6fabd64813c48545c9c0e312a0099d9be2540\",\n \"polygon-pos\": \"0xe0339c80ffde91f3e20494df88d4206d86024cdf\",\n \"solana\": \"7ZCm8WBN9aLa3o47SoYctU6iLdj7wkGG5SV2hE5CgtD5\"\n },\n \"marketCapRank\": 343\n },\n {\n \"id\": \"dor\",\n \"symbol\": \"dor\",\n \"name\": \"Dor\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2479\n },\n {\n \"id\": \"dola-borrowing-right\",\n \"symbol\": \"dbr\",\n \"name\": \"DOLA Borrowing Right\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xad038eb671c44b853887a7e32528fab35dc5d710\"\n },\n \"marketCapRank\": 2510\n },\n {\n \"id\": \"dola-usd\",\n \"symbol\": \"dola\",\n \"name\": \"DOLA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x865377367054516e17014ccded1e7d814edc9ce4\",\n \"optimistic-ethereum\": \"0x8ae125e8653821e851f12a49f7765db9a9ce7384\",\n \"arbitrum-one\": \"0x6a7661795c374c0bfc635934efaddff3a7ee23b6\",\n \"base\": \"0x4621b7a9c75199271f773ebd9a499dbd165c3191\",\n \"binance-smart-chain\": \"0x2f29bc0ffaf9bff337b31cbe6cb5fb3bf12e5840\",\n \"fantom\": \"0x3129662808bec728a27ab6a6b9afd3cbaca8a43c\"\n },\n \"marketCapRank\": 651\n },\n {\n \"id\": \"domi\",\n \"symbol\": \"domi\",\n \"name\": \"Domi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbbca42c60b5290f2c48871a596492f93ff0ddc82\",\n \"avalanche\": \"0xfc6da929c031162841370af240dec19099861d3b\",\n \"ethereum\": \"0x45c2f8c9b4c0bdc76200448cc26c48ab6ffef83f\"\n },\n \"marketCapRank\": 1160\n },\n {\n \"id\": \"don-t-buy-inu\",\n \"symbol\": \"dbi\",\n \"name\": \"Don't Buy Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2de509bf0014ddf697b220be628213034d320ece\"\n },\n \"marketCapRank\": 1714\n },\n {\n \"id\": \"donut\",\n \"symbol\": \"donut\",\n \"name\": \"Donut\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc0f9bd5fa5698b6505f643900ffa515ea5df54a9\",\n \"xdai\": \"0x524b969793a64a602342d89bc2789d43a016b13a\"\n },\n \"marketCapRank\": 2062\n },\n {\n \"id\": \"dope-wars-paper\",\n \"symbol\": \"paper\",\n \"name\": \"Dope Wars Paper\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7ae1d57b58fa6411f32948314badd83583ee0e8c\",\n \"optimistic-ethereum\": \"0x00f932f0fe257456b32deda4758922e56a4f4b42\"\n },\n \"marketCapRank\": 2199\n },\n {\n \"id\": \"dopex\",\n \"symbol\": \"dpx\",\n \"name\": \"Dopex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xeec2be5c91ae7f8a338e1e5f3b5de49d07afdc81\",\n \"arbitrum-one\": \"0x6c2c06790b3e3e3c38e12ee22f8183b37a13ee55\"\n },\n \"marketCapRank\": null\n },\n {\n \"id\": \"dopex-rebate-token\",\n \"symbol\": \"rdpx\",\n \"name\": \"Dopex Rebate\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0ff5a8451a839f5f0bb3562689d9a44089738d11\",\n \"arbitrum-one\": \"0x32eb7902d4134bf98a28b963d26de779af92a212\"\n },\n \"marketCapRank\": 1659\n },\n {\n \"id\": \"dora-factory-2\",\n \"symbol\": \"dora\",\n \"name\": \"Dora Factory\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x70b790d0948a760e80bc3f892b142f7779b538b2\"\n },\n \"marketCapRank\": 484\n },\n {\n \"id\": \"dose-token\",\n \"symbol\": \"dose\",\n \"name\": \"DOSE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb31ef9e52d94d4120eb44fe1ddfde5b4654a6515\",\n \"polygon-pos\": \"0x81382e9693de2afc33f69b70a6c12ca9b3a73f47\",\n \"binance-smart-chain\": \"0x7837fd820ba38f95c54d6dac4ca3751b81511357\"\n },\n \"marketCapRank\": 1458\n },\n {\n \"id\": \"dotmoovs\",\n \"symbol\": \"moov\",\n \"name\": \"dotmoovs\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x24ec2ca132abf8f6f8a6e24a1b97943e31f256a7\",\n \"binance-smart-chain\": \"0x0ebd9537a25f56713e34c45b38f421a1e7191469\",\n \"polygon-pos\": \"0xe46f5128b933e5a6f907fe73ece80059c222db0a\"\n },\n \"marketCapRank\": 1449\n },\n {\n \"id\": \"dragonchain\",\n \"symbol\": \"drgn\",\n \"name\": \"Dragonchain\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x419c4db4b9e25d6db2ad9691ccb832c8d9fda05e\"\n },\n \"marketCapRank\": 1116\n },\n {\n \"id\": \"joystream\",\n \"symbol\": \"joy\",\n \"name\": \"Joystream\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1212\n },\n {\n \"id\": \"drep-new\",\n \"symbol\": \"drep\",\n \"name\": \"Drep\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3ab6ed69ef663bd986ee59205ccad8a20f98b4c2\",\n \"binance-smart-chain\": \"0xec583f25a049cc145da9a256cdbe9b6201a705ff\"\n },\n \"marketCapRank\": 1860\n },\n {\n \"id\": \"drunk-robots\",\n \"symbol\": \"metal\",\n \"name\": \"Badmad Robots\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x200c234721b5e549c3693ccc93cf191f90dc2af9\",\n \"binance-smart-chain\": \"0x200c234721b5e549c3693ccc93cf191f90dc2af9\"\n },\n \"marketCapRank\": 825\n },\n {\n \"id\": \"mixmarvel\",\n \"symbol\": \"mix\",\n \"name\": \"MixMarvel\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5d285f735998f36631f678ff41fb56a10a4d0429\",\n \"binance-smart-chain\": \"0xcf1b55d79e824da0ae0652f96c66fe33263d743f\"\n },\n \"marketCapRank\": 1052\n },\n {\n \"id\": \"dtravel\",\n \"symbol\": \"trvl\",\n \"name\": \"TRVL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd47bdf574b4f76210ed503e0efe81b58aa061f3d\",\n \"binance-smart-chain\": \"0x6a8fd46f88dbd7bdc2d536c604f811c63052ce0f\"\n },\n \"marketCapRank\": 1053\n },\n {\n \"id\": \"dua-token\",\n \"symbol\": \"dua\",\n \"name\": \"Brillion\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xb418417374fca27bb54169d3c777492e6fe17ee7\",\n \"ethereum\": \"0x6c249b6f6492864d914361308601a7abb32e68f8\"\n },\n \"marketCapRank\": 1305\n },\n {\n \"id\": \"dusk-network\",\n \"symbol\": \"dusk\",\n \"name\": \"Dusk\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x940a2db1b7008b6c776d4faaca729d6d4a4aa551\",\n \"energi\": \"0x458a9f6a008055fd79f321ea7eb3f83a6cb326e2\"\n },\n \"marketCapRank\": 294\n },\n {\n \"id\": \"dust-protocol\",\n \"symbol\": \"dust\",\n \"name\": \"Dust Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb5b1b659da79a2507c27aad509f15b4874edc0cc\",\n \"polygon-pos\": \"0x4987a49c253c38b3259092e9aac10ec0c7ef7542\",\n \"solana\": \"DUSTawucrTsGU8hcqRdHDCbuYhCPADMLM2VcCb8VnFnQ\"\n },\n \"marketCapRank\": 1407\n },\n {\n \"id\": \"dvision-network\",\n \"symbol\": \"dvi\",\n \"name\": \"Dvision Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x10633216e7e8281e33c86f02bf8e565a635d9770\"\n },\n \"marketCapRank\": 1453\n },\n {\n \"id\": \"dydx-chain\",\n \"symbol\": \"dydx\",\n \"name\": \"dYdX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/831F0B1BBB1D08A2B75311892876D71565478C532967545476DF4C2D7492E48C\"\n },\n \"marketCapRank\": 76\n },\n {\n \"id\": \"hold-2\",\n \"symbol\": \"earn\",\n \"name\": \"HOLD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0b61c4f33bcdef83359ab97673cb5961c6435f4e\",\n \"binance-smart-chain\": \"0x2ac895feba458b42884dcbcb47d57e44c3a303c8\",\n \"solana\": \"8CuPzHKuZQUyYbear8fi3u6iuTY652WVZT2cHZ2yeNbE\"\n },\n \"marketCapRank\": 1991\n },\n {\n \"id\": \"ecash\",\n \"symbol\": \"xec\",\n \"name\": \"eCash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 93\n },\n {\n \"id\": \"echelon-prime\",\n \"symbol\": \"prime\",\n \"name\": \"Echelon Prime\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb23d80f5fefcddaa212212f028021b41ded428cf\",\n \"base\": \"0xfa980ced6895ac314e7de34ef1bfae90a5add21b\"\n },\n \"marketCapRank\": 136\n },\n {\n \"id\": \"eco\",\n \"symbol\": \"eco\",\n \"name\": \"ECO\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8dbf9a4c99580fc7fd4024ee08f3994420035727\"\n },\n \"marketCapRank\": 2037\n },\n {\n \"id\": \"evergrowcoin\",\n \"symbol\": \"egc\",\n \"name\": \"EverGrow Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc001bbe2b87079294c63ece98bdd0a88d761434e\"\n },\n \"marketCapRank\": 723\n },\n {\n \"id\": \"ecoin-2\",\n \"symbol\": \"ecoin\",\n \"name\": \"Ecoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdc536dd70445cea1e97f9bf1bada04cbda5199a2a1\"\n },\n \"marketCapRank\": 779\n },\n {\n \"id\": \"ecomi\",\n \"symbol\": \"omi\",\n \"name\": \"ECOMI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xed35af169af46a02ee13b9d79eb57d6d68c1749e\",\n \"energi\": \"0x003d765f3793de38ad5ea9d5fd0021cf12c3ba68\"\n },\n \"marketCapRank\": 339\n },\n {\n \"id\": \"ecox\",\n \"symbol\": \"ecox\",\n \"name\": \"ECOx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcccd1ba9f7acd6117834e0d28f25645decb1736a\"\n },\n \"marketCapRank\": 742\n },\n {\n \"id\": \"eden\",\n \"symbol\": \"eden\",\n \"name\": \"EDEN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1559fa1b8f28238fd5d76d9f434ad86fd20d1559\"\n },\n \"marketCapRank\": 1256\n },\n {\n \"id\": \"edge\",\n \"symbol\": \"edge\",\n \"name\": \"Edge\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4ec1b60b96193a64acae44778e51f7bff2007831\"\n },\n \"marketCapRank\": 1684\n },\n {\n \"id\": \"edgeware\",\n \"symbol\": \"edg\",\n \"name\": \"Edgeware\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4e0da40b9063dc48364c1c0ffb4ae9d091fc2270\",\n \"polygon-pos\": \"0x4e0da40b9063dc48364c1c0ffb4ae9d091fc2270\",\n \"arbitrum-one\": \"0x4e0da40b9063dc48364c1c0ffb4ae9d091fc2270\"\n },\n \"marketCapRank\": 2128\n },\n {\n \"id\": \"edu-coin\",\n \"symbol\": \"edu\",\n \"name\": \"Open Campus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbdeae1ca48894a1759a8374d63925f21f2ee2639\",\n \"ethereum\": \"0x26aad156ba8efa501b32b42ffcdc8413f90e9c99\",\n \"polygon-pos\": \"0xb03e3b00baf9954bf1604d09a4dbd5cf88e1f695\"\n },\n \"marketCapRank\": 284\n },\n {\n \"id\": \"effect-network\",\n \"symbol\": \"efx\",\n \"name\": \"Effect Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1682\n },\n {\n \"id\": \"efinity\",\n \"symbol\": \"efi\",\n \"name\": \"Efinity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x656c00e1bcd96f256f224ad9112ff426ef053733\"\n },\n \"marketCapRank\": 1461\n },\n {\n \"id\": \"paysenger-ego\",\n \"symbol\": \"ego\",\n \"name\": \"Paysenger EGO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1676\n },\n {\n \"id\": \"elastos\",\n \"symbol\": \"ela\",\n \"name\": \"Elastos\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe6fd75ff38adca4b97fbcd938c86b98772431867\",\n \"huobi-token\": \"0xa1ecfc2bec06e4b43ddd423b94fef84d0dbc8f5c\"\n },\n \"marketCapRank\": 608\n },\n {\n \"id\": \"electra-protocol\",\n \"symbol\": \"xep\",\n \"name\": \"Electra Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb897d0a0f68800f8be7d69ffdd1c24b69f57bf3e\"\n },\n \"marketCapRank\": 1076\n },\n {\n \"id\": \"electroneum\",\n \"symbol\": \"etn\",\n \"name\": \"Electroneum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 476\n },\n {\n \"id\": \"electronicgulden\",\n \"symbol\": \"efl\",\n \"name\": \"Electronic Gulden\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1956\n },\n {\n \"id\": \"el-hippo\",\n \"symbol\": \"hipp\",\n \"name\": \"El Hippo\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7b744eea1deca2f1b7b31f15ba036fa1759452d7\"\n },\n \"marketCapRank\": 1906\n },\n {\n \"id\": \"elk-finance\",\n \"symbol\": \"elk\",\n \"name\": \"Elk Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"fantom\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"cronos\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"binance-smart-chain\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"fuse\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"moonriver\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"elastos\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"telos\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"polygon-pos\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"ethereum\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\",\n \"xdai\": \"0xeeeeeb57642040be42185f49c52f7e9b38f8eeee\"\n },\n \"marketCapRank\": 2288\n },\n {\n \"id\": \"elrond-erd-2\",\n \"symbol\": \"egld\",\n \"name\": \"MultiversX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 75\n },\n {\n \"id\": \"elumia\",\n \"symbol\": \"elu\",\n \"name\": \"Elumia\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"4tJZhSdGePuMEfZQ3h5LaHjTPsw1iWTRFTojnZcwsAU6\"\n },\n \"marketCapRank\": 1575\n },\n {\n \"id\": \"elvishmagic\",\n \"symbol\": \"emagic\",\n \"name\": \"ElvishMagic\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xaf55e53cfa099a59aa30554fe106f33c47564a25\"\n },\n \"marketCapRank\": 2162\n },\n {\n \"id\": \"elysia\",\n \"symbol\": \"el\",\n \"name\": \"ELYSIA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2781246fe707bb15cee3e5ea354e2154a2877b16\"\n },\n \"marketCapRank\": 514\n },\n {\n \"id\": \"eml-protocol\",\n \"symbol\": \"eml\",\n \"name\": \"EML Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x03dde9e5bb31ee40a471476e2fccf75c67921062\"\n },\n \"marketCapRank\": 1480\n },\n {\n \"id\": \"e-money\",\n \"symbol\": \"ngm\",\n \"name\": \"e-Money\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xed0d5747a9ab03a75fbfec3228cd55848245b75d\",\n \"osmosis\": \"ibc/1DC495FCEFDA068A3820F903EDBD78B942FBD204D7E93D3BA2B432E9669D1A59\"\n },\n \"marketCapRank\": 2668\n },\n {\n \"id\": \"empyreal\",\n \"symbol\": \"emp\",\n \"name\": \"Empyreal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x772598e9e62155d7fdfe65fdf01eb5a53a8465be\",\n \"ethereum\": \"0x39d5313c3750140e5042887413ba8aa6145a9bd2\"\n },\n \"marketCapRank\": 1214\n },\n {\n \"id\": \"enigma\",\n \"symbol\": \"eng\",\n \"name\": \"Enigma\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf0ee6b27b759c9893ce4f094b49ad28fd15a23e4\"\n },\n \"marketCapRank\": 2645\n },\n {\n \"id\": \"energi\",\n \"symbol\": \"nrg\",\n \"name\": \"Energi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1416946162b1c2c871a73b07e932d2fb6c932069\"\n },\n \"marketCapRank\": 1436\n },\n {\n \"id\": \"energy-web-token\",\n \"symbol\": \"ewt\",\n \"name\": \"Energy Web\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdai\": \"0x6a8cb6714b1ee5b471a7d2ec4302cb4f5ff25ec2\"\n },\n \"marketCapRank\": 473\n },\n {\n \"id\": \"enjincoin\",\n \"symbol\": \"enj\",\n \"name\": \"Enjin Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf629cbd94d3791c9250152bd8dfbdf380e2a3b9c\",\n \"energi\": \"0x204a90b57d15417864080df1cd6e907831c206a6\",\n \"harmony-shard-0\": \"0xadbd41bfb4389de499535c14a8a3a12fead8f66a\"\n },\n \"marketCapRank\": 147\n },\n {\n \"id\": \"enjinstarter\",\n \"symbol\": \"ejs\",\n \"name\": \"Enjinstarter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x96610186f3ab8d73ebee1cf950c750f3b1fb79c2\",\n \"binance-smart-chain\": \"0x09f423ac3c9babbff6f94d372b16e4206e71439f\"\n },\n \"marketCapRank\": 962\n },\n {\n \"id\": \"enreachdao\",\n \"symbol\": \"nrch\",\n \"name\": \"Enreach\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x69fa8e7f6bf1ca1fb0de61e1366f7412b827cc51\",\n \"binance-smart-chain\": \"0x69fa8e7f6bf1ca1fb0de61e1366f7412b827cc51\"\n },\n \"marketCapRank\": 1996\n },\n {\n \"id\": \"entangle\",\n \"symbol\": \"ngl\",\n \"name\": \"Entangle\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x12652c6d93fdb6f4f37d48a8687783c782bb0d10\"\n },\n \"marketCapRank\": 328\n },\n {\n \"id\": \"vigorus\",\n \"symbol\": \"vis\",\n \"name\": \"Vigorus\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xcc1b9517460d8ae86fe576f614d091fca65a28fc\"\n },\n \"marketCapRank\": 2498\n },\n {\n \"id\": \"epic-cash\",\n \"symbol\": \"epic\",\n \"name\": \"Epic Cash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1924\n },\n {\n \"id\": \"epik-prime\",\n \"symbol\": \"epik\",\n \"name\": \"Epik Prime\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4da0c48376c277cdbd7fc6fdc6936dee3e4adf75\",\n \"binance-smart-chain\": \"0x368ce786ea190f32439074e8d22e12ecb718b44c\"\n },\n \"marketCapRank\": 1382\n },\n {\n \"id\": \"eqifi\",\n \"symbol\": \"eqx\",\n \"name\": \"EQIFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbd3de9a069648c84d27d74d701c9fa3253098b15\",\n \"binance-smart-chain\": \"0x436c52a8cee41d5e9c5e6f4cb146e66d552fb700\"\n },\n \"marketCapRank\": 1964\n },\n {\n \"id\": \"equalizer-dex\",\n \"symbol\": \"equal\",\n \"name\": \"Equalizer DEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0x3fd3a0c85b70754efc07ac9ac0cbbdce664865a6\"\n },\n \"marketCapRank\": 2086\n },\n {\n \"id\": \"equation\",\n \"symbol\": \"equ\",\n \"name\": \"Equation\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x87aaffdf26c6885f6010219208d5b161ec7609c0\"\n },\n \"marketCapRank\": 1973\n },\n {\n \"id\": \"equilibria-finance\",\n \"symbol\": \"eqb\",\n \"name\": \"Equilibria Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xbfbcfe8873fe28dfa25f1099282b088d52bbad9c\",\n \"ethereum\": \"0xfe80d611c6403f70e5b1b9b722d2b3510b740b2b\",\n \"binance-smart-chain\": \"0x374ca32fd7934c5d43240e1e73fa9b2283468609\"\n },\n \"marketCapRank\": 1308\n },\n {\n \"id\": \"equilibrium-eosdt\",\n \"symbol\": \"eosdt\",\n \"name\": \"Equilibrium EOSDT\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2390\n },\n {\n \"id\": \"e-radix\",\n \"symbol\": \"exrd\",\n \"name\": \"e-Radix\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6468e79a80c0eab0f9a2b574c8d5bc374af59414\"\n },\n \"marketCapRank\": 571\n },\n {\n \"id\": \"era-swap-token\",\n \"symbol\": \"es\",\n \"name\": \"Era Swap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x72108a8cc3254813c6be2f1b77be53e185abfdd9\"\n },\n \"marketCapRank\": 1602\n },\n {\n \"id\": \"ergo\",\n \"symbol\": \"erg\",\n \"name\": \"Ergo\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 418\n },\n {\n \"id\": \"ertha\",\n \"symbol\": \"ertha\",\n \"name\": \"Ertha\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x62823659d09f9f9d2222058878f89437425eb261\"\n },\n \"marketCapRank\": 2020\n },\n {\n \"id\": \"morpheus-labs\",\n \"symbol\": \"mind\",\n \"name\": \"Morpheus Labs\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc9eb61ffb66d5815d643bbb8195e17c49687ae1e\",\n \"polygon-pos\": \"0x280053c54006a624c26989cb8354fa4cb86f14d1\"\n },\n \"marketCapRank\": 2245\n },\n {\n \"id\": \"ethereans\",\n \"symbol\": \"os\",\n \"name\": \"Ethereans\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6100dd79fcaa88420750dcee3f735d168abcb771\",\n \"optimistic-ethereum\": \"0x6af3cb766d6cd37449bfd321d961a61b0515c1bc\"\n },\n \"marketCapRank\": 2059\n },\n {\n \"id\": \"etherempires\",\n \"symbol\": \"ete\",\n \"name\": \"Etherempires\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd27b128dc6536309cdebf7f1aff0cb7717bc0268\"\n },\n \"marketCapRank\": 1717\n },\n {\n \"id\": \"ethereum-classic\",\n \"symbol\": \"etc\",\n \"name\": \"Ethereum Classic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 29\n },\n {\n \"id\": \"ethereum-meta\",\n \"symbol\": \"ethm\",\n \"name\": \"Ethereum Meta\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfd957f21bd95e723645c07c48a2d8acb8ffb3794\",\n \"binance-smart-chain\": \"0x0b33542240d6fa323c796749f6d6869fdb7f13ca\",\n \"polygon-pos\": \"0x55b1a124c04a54eefdefe5fa2ef5f852fb5f2f26\"\n },\n \"marketCapRank\": 1245\n },\n {\n \"id\": \"ethereum-name-service\",\n \"symbol\": \"ens\",\n \"name\": \"Ethereum Name Service\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc18360217d8f7ab5e7c516566761ea12ce7f9d72\"\n },\n \"marketCapRank\": 152\n },\n {\n \"id\": \"ethereum-pow-iou\",\n \"symbol\": \"ethw\",\n \"name\": \"EthereumPoW\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 188\n },\n {\n \"id\": \"ethereum-push-notification-service\",\n \"symbol\": \"push\",\n \"name\": \"Push Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf418588522d5dd018b425e472991e52ebbeeeeee\",\n \"polygon-pos\": \"0x58001cc1a9e17a20935079ab40b1b8f4fc19efd1\"\n },\n \"marketCapRank\": 1232\n },\n {\n \"id\": \"etherland\",\n \"symbol\": \"eland\",\n \"name\": \"Etherland\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x33e07f5055173cf8febede8b21b12d1e2b523205\",\n \"polygon-pos\": \"0xb0f61c597bbcc29f3f38396b01f9c0f0c2e8bff0\",\n \"binance-smart-chain\": \"0x708cb02ad77e1b245b1640cee51b3cc844bcaef4\"\n },\n \"marketCapRank\": 1602\n },\n {\n \"id\": \"ethernity-chain\",\n \"symbol\": \"ern\",\n \"name\": \"Ethernity Chain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbbc2ae13b23d715c30720f079fcd9b4a74093505\"\n },\n \"marketCapRank\": 473\n },\n {\n \"id\": \"ethichub\",\n \"symbol\": \"ethix\",\n \"name\": \"Ethix\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfd09911130e6930bf87f2b0554c44f400bd80d3e\",\n \"xdai\": \"0xec3f3e6d7907acda3a7431abd230196cda3fbb19\",\n \"celo\": \"0x9995cc8f20db5896943afc8ee0ba463259c931ed\"\n },\n \"marketCapRank\": 1317\n },\n {\n \"id\": \"ethos\",\n \"symbol\": \"vgx\",\n \"name\": \"Voyager VGX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3c4b6e6e1ea3d4863700d7f76b36b7f3d3f13e3d\",\n \"energi\": \"0xad3eac6a2ef827833880a10592c6e46605e4f9d6\"\n },\n \"marketCapRank\": 957\n },\n {\n \"id\": \"etica\",\n \"symbol\": \"eti\",\n \"name\": \"Etica\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2646\n },\n {\n \"id\": \"euler\",\n \"symbol\": \"eul\",\n \"name\": \"Euler\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd9fcd98c322942075a5c3860693e9f4f03aae07b\"\n },\n \"marketCapRank\": 511\n },\n {\n \"id\": \"euno\",\n \"symbol\": \"euno\",\n \"name\": \"EUNO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2340\n },\n {\n \"id\": \"euroe-stablecoin\",\n \"symbol\": \"euroe\",\n \"name\": \"EUROe Stablecoin\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x820802fa8a99901f52e39acd21177b0be6ee2974\",\n \"avalanche\": \"0x820802fa8a99901f52e39acd21177b0be6ee2974\",\n \"optimistic-ethereum\": \"0x820802fa8a99901f52e39acd21177b0be6ee2974\",\n \"arbitrum-one\": \"0xcf985aba4647a432e60efceeb8054bbd64244305\",\n \"polygon-pos\": \"0x820802fa8a99901f52e39acd21177b0be6ee2974\",\n \"solana\": \"2VhjJ9WxaGC3EZFwJG9BDUs9KxKCAjQY4vgd1qxgYWVg\"\n },\n \"marketCapRank\": 2328\n },\n {\n \"id\": \"eve-ai\",\n \"symbol\": \"eveai\",\n \"name\": \"Eve AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x05fe069626543842439ef90d9fa1633640c50cf1\"\n },\n \"marketCapRank\": 1834\n },\n {\n \"id\": \"everdome\",\n \"symbol\": \"dome\",\n \"name\": \"Everdome\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x475bfaa1848591ae0e6ab69600f48d828f61a80e\"\n },\n \"marketCapRank\": 1281\n },\n {\n \"id\": \"space-id\",\n \"symbol\": \"id\",\n \"name\": \"SPACE ID\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x2dff88a56767223a5529ea5960da7a3f5f766406\",\n \"ethereum\": \"0x2dff88a56767223a5529ea5960da7a3f5f766406\"\n },\n \"marketCapRank\": 202\n },\n {\n \"id\": \"everipedia\",\n \"symbol\": \"iq\",\n \"name\": \"IQ\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x579cea1889991f68acc35ff5c3dd0621ff29b0c9\",\n \"polygon-pos\": \"0xb9638272ad6998708de56bbc0a290a1de534a578\",\n \"binance-smart-chain\": \"0x0e37d70b51ffa2b98b4d34a5712c5291115464e3\"\n },\n \"marketCapRank\": 301\n },\n {\n \"id\": \"everrise\",\n \"symbol\": \"rise\",\n \"name\": \"EverRise\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc17c30e98541188614df99239cabd40280810ca3\",\n \"avalanche\": \"0xc17c30e98541188614df99239cabd40280810ca3\",\n \"ethereum\": \"0xc17c30e98541188614df99239cabd40280810ca3\",\n \"fantom\": \"0xc17c30e98541188614df99239cabd40280810ca3\",\n \"polygon-pos\": \"0xc17c30e98541188614df99239cabd40280810ca3\"\n },\n \"marketCapRank\": 1491\n },\n {\n \"id\": \"everscale\",\n \"symbol\": \"ever\",\n \"name\": \"Everscale\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1ffefd8036409cb6d652bd610de465933b226917\"\n },\n \"marketCapRank\": 614\n },\n {\n \"id\": \"everton-fan-token\",\n \"symbol\": \"efc\",\n \"name\": \"Everton Fan Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xabee61f8ff0eadd8d4ee87092792aaf2d9b2ca8e\"\n },\n \"marketCapRank\": 2000\n },\n {\n \"id\": \"holdstation\",\n \"symbol\": \"hold\",\n \"name\": \"Holdstation\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"zksync\": \"0xed4040fd47629e7c8fbb7da76bb50b3e7695f0f2\"\n },\n \"marketCapRank\": 930\n },\n {\n \"id\": \"evmos\",\n \"symbol\": \"evmos\",\n \"name\": \"Evmos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"evmos\": \"0xd4949664cd82660aae99bedc034a0dea8a0bd517\",\n \"ethereum\": \"0x93581991f68dbae1ea105233b67f7fa0d6bdee7b\"\n },\n \"marketCapRank\": 854\n },\n {\n \"id\": \"exorde\",\n \"symbol\": \"exd\",\n \"name\": \"Exorde\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x02de007d412266a2e0fa9287c103474170f06560\"\n },\n \"marketCapRank\": 2275\n },\n {\n \"id\": \"exosama-network\",\n \"symbol\": \"sama\",\n \"name\": \"Moonsama\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe04f47ff45576249bc5083dfdf987e03d0550113\",\n \"exosama\": \"0x8c992cba48189a79204223d106fcb1d797a5f87a\"\n },\n \"marketCapRank\": 1531\n },\n {\n \"id\": \"extra-finance\",\n \"symbol\": \"extra\",\n \"name\": \"Extra Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"optimistic-ethereum\": \"0x2dad3a13ef0c6366220f989157009e501e7938f8\",\n \"base\": \"0x2dad3a13ef0c6366220f989157009e501e7938f8\"\n },\n \"marketCapRank\": 944\n },\n {\n \"id\": \"fable-of-the-dragon\",\n \"symbol\": \"tyrant\",\n \"name\": \"Fable Of The Dragon\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8ee325ae3e54e83956ef2d5952d3c8bc1fa6ec27\"\n },\n \"marketCapRank\": 2442\n },\n {\n \"id\": \"fabwelt\",\n \"symbol\": \"welt\",\n \"name\": \"Fabwelt\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x23e8b6a3f6891254988b84da3738d2bfe5e703b9\",\n \"binance-smart-chain\": \"0x1785113910847770290f5f840b4c74fc46451201\"\n },\n \"marketCapRank\": 1924\n },\n {\n \"id\": \"factor\",\n \"symbol\": \"fctr\",\n \"name\": \"FactorDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x6dd963c510c2d2f09d5eddb48ede45fed063eb36\"\n },\n \"marketCapRank\": 2478\n },\n {\n \"id\": \"feathercoin\",\n \"symbol\": \"ftc\",\n \"name\": \"Feathercoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2570\n },\n {\n \"id\": \"fantom\",\n \"symbol\": \"ftm\",\n \"name\": \"Fantom\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 51\n },\n {\n \"id\": \"faraland\",\n \"symbol\": \"fara\",\n \"name\": \"FaraLand\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf4ed363144981d3a65f42e7d0dc54ff9eef559a1\"\n },\n \"marketCapRank\": 2530\n },\n {\n \"id\": \"harvest-finance\",\n \"symbol\": \"farm\",\n \"name\": \"Harvest Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0246c9032bc3a600820415ae600c6388619a14d\",\n \"energi\": \"0xc59a4b20ea0f8a7e6e216e7f1b070247520a4514\",\n \"binance-smart-chain\": \"0x4b5c23cac08a567ecf0c1ffca8372a45a5d33743\"\n },\n \"marketCapRank\": 916\n },\n {\n \"id\": \"fasttoken\",\n \"symbol\": \"ftn\",\n \"name\": \"Fasttoken\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaedf386b755465871ff874e3e37af5976e247064\"\n },\n \"marketCapRank\": 178\n },\n {\n \"id\": \"fear\",\n \"symbol\": \"fear\",\n \"name\": \"FEAR\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x88a9a52f944315d5b4e917b9689e65445c401e83\",\n \"polygon-pos\": \"0xa2ca40dbe72028d3ac78b5250a8cb8c404e7fb8c\",\n \"binance-smart-chain\": \"0x9ba6a67a6f3b21705a46b380a1b97373a33da311\",\n \"fantom\": \"0x14418c22165553251b002b289f8abe4d1ed41d76\"\n },\n \"marketCapRank\": 2049\n },\n {\n \"id\": \"fedoracoin\",\n \"symbol\": \"tips\",\n \"name\": \"Fedoracoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2101\n },\n {\n \"id\": \"feg-bsc\",\n \"symbol\": \"feg\",\n \"name\": \"FEG BSC\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbededdf2ef49e87037c4fb2ca34d1ff3d3992a11\"\n },\n \"marketCapRank\": 857\n },\n {\n \"id\": \"feisty-doge-nft\",\n \"symbol\": \"nfd\",\n \"name\": \"Feisty Doge NFT\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdfdb7f72c1f195c5951a234e8db9806eb0635346\"\n },\n \"marketCapRank\": 1320\n },\n {\n \"id\": \"fei-usd\",\n \"symbol\": \"fei\",\n \"name\": \"Fei USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x956f47f50a910163d8bf957cf5846d573e7f87ca\"\n },\n \"marketCapRank\": 1319\n },\n {\n \"id\": \"flux-token\",\n \"symbol\": \"flx\",\n \"name\": \"SEDA Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3ea8ea4237344c9931214796d9417af1a1180770\",\n \"aurora\": \"0xea62791aa682d455614eaa2a12ba3d9a2fd197af\"\n },\n \"marketCapRank\": 799\n },\n {\n \"id\": \"ferro\",\n \"symbol\": \"fer\",\n \"name\": \"Ferro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0x39bc1e38c842c60775ce37566d03b41a7a66c782\",\n \"ethereum\": \"0x2f32b39023da7d6a6486a85d12b346eb9c2a0d19\"\n },\n \"marketCapRank\": 1464\n },\n {\n \"id\": \"ferrum-network\",\n \"symbol\": \"frm\",\n \"name\": \"Ferrum Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe5caef4af8780e59df925470b050fb23c43ca68c\",\n \"energi\": \"0xee0837e18f64ec6cf3bece2da75a1e5f679a6d84\",\n \"avalanche\": \"0xe5caef4af8780e59df925470b050fb23c43ca68c\",\n \"arbitrum-one\": \"0x9f6abbf0ba6b5bfa27f4deb6597cc6ec20573fda\",\n \"polygon-pos\": \"0xd99bafe5031cc8b345cb2e8c80135991f12d7130\",\n \"binance-smart-chain\": \"0xa719b8ab7ea7af0ddb4358719a34631bb79d15dc\"\n },\n \"marketCapRank\": 1059\n },\n {\n \"id\": \"fetch-ai\",\n \"symbol\": \"fet\",\n \"name\": \"Fetch.ai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaea46a60368a7bd060eec7df8cba43b7ef41ad85\",\n \"binance-smart-chain\": \"0x031b41e504677879370e9dbcf937283a8691fa7f\",\n \"osmosis\": \"ibc/5D1F516200EE8C6B2354102143B78A2DEDA25EDE771AC0F8DC3C1837C8FD4447\"\n },\n \"marketCapRank\": 48\n },\n {\n \"id\": \"findora\",\n \"symbol\": \"fra\",\n \"name\": \"Fractal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"findora\": \"0x0000000000000000000000000000000000001000\"\n },\n \"marketCapRank\": 1334\n },\n {\n \"id\": \"fio-protocol\",\n \"symbol\": \"fio\",\n \"name\": \"FIO Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 907\n },\n {\n \"id\": \"firestarter\",\n \"symbol\": \"flame\",\n \"name\": \"FireStarter\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x22e3f02f86bc8ea0d73718a2ae8851854e62adc5\"\n },\n \"marketCapRank\": 1563\n },\n {\n \"id\": \"firmachain\",\n \"symbol\": \"fct\",\n \"name\": \"Firmachain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe1bad922f84b198a08292fb600319300ae32471b\"\n },\n \"marketCapRank\": 659\n },\n {\n \"id\": \"first-digital-usd\",\n \"symbol\": \"fdusd\",\n \"name\": \"First Digital USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc5f0f7b66764f6ec8c8dff7ba683102295e16409\",\n \"binance-smart-chain\": \"0xc5f0f7b66764f6ec8c8dff7ba683102295e16409\"\n },\n \"marketCapRank\": 52\n },\n {\n \"id\": \"koinos\",\n \"symbol\": \"koin\",\n \"name\": \"Koinos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 882\n },\n {\n \"id\": \"flamingo-finance\",\n \"symbol\": \"flm\",\n \"name\": \"Flamingo Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 611\n },\n {\n \"id\": \"flare-networks\",\n \"symbol\": \"flr\",\n \"name\": \"Flare\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 94\n },\n {\n \"id\": \"flatqube\",\n \"symbol\": \"qube\",\n \"name\": \"FlatQube\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"everscale\": \"0:9f20666ce123602fd7a995508aeaa0ece4f92133503c0dfbd609b3239f3901e2\"\n },\n \"marketCapRank\": 2263\n },\n {\n \"id\": \"flex-coin\",\n \"symbol\": \"flex\",\n \"name\": \"FLEX Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfcf8eda095e37a41e002e266daad7efc1579bc0a\",\n \"smartbch\": \"0x98dd7ec28fb43b3c4c770ae532417015fa939dd3\"\n },\n \"marketCapRank\": 1137\n },\n {\n \"id\": \"flits\",\n \"symbol\": \"fls\",\n \"name\": \"Flits\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2886\n },\n {\n \"id\": \"floordao\",\n \"symbol\": \"floor\",\n \"name\": \"FloorDAO (Old)\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf59257e961883636290411c11ec5ae622d19455e\"\n },\n \"marketCapRank\": 1906\n },\n {\n \"id\": \"flow\",\n \"symbol\": \"flow\",\n \"name\": \"Flow\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 64\n },\n {\n \"id\": \"fluid-2\",\n \"symbol\": \"fluid\",\n \"name\": \"Fluid\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4e47951508fd4a4126f8ff9cf5e6fa3b7cc8e073\",\n \"arbitrum-one\": \"0x4e47951508fd4a4126f8ff9cf5e6fa3b7cc8e073\"\n },\n \"marketCapRank\": 2281\n },\n {\n \"id\": \"zelcash\",\n \"symbol\": \"flux\",\n \"name\": \"Flux\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 204\n },\n {\n \"id\": \"foam-protocol\",\n \"symbol\": \"foam\",\n \"name\": \"FOAM\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4946fcea7c692606e8908002e55a582af44ac121\"\n },\n \"marketCapRank\": 1435\n },\n {\n \"id\": \"foom\",\n \"symbol\": \"foom\",\n \"name\": \"Foom\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd0d56273290d339aaf1417d9bfa1bb8cfe8a0933\"\n },\n \"marketCapRank\": 1838\n },\n {\n \"id\": \"force-protocol\",\n \"symbol\": \"for\",\n \"name\": \"ForTube\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1fcdce58959f536621d76f5b7ffb955baa5a672f\",\n \"binance-smart-chain\": \"0x658a109c5900bc6d2357c87549b651670e5b0539\"\n },\n \"marketCapRank\": 1152\n },\n {\n \"id\": \"fore-protocol\",\n \"symbol\": \"fore\",\n \"name\": \"FORE Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xcbe94d75ec713b7ead84f55620dc3174beeb1cfe\",\n \"ethereum\": \"0xb2ee0adbe0ef1281025d0676511bb1df14600f4d\"\n },\n \"marketCapRank\": 1924\n },\n {\n \"id\": \"the-4th-pillar\",\n \"symbol\": \"four\",\n \"name\": \"FOUR\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4730fb1463a6f1f44aeb45f6c5c422427f37f4d0\",\n \"binance-smart-chain\": \"0xd882739fca9cbae00f3821c4c65189e2d7e26147\",\n \"polygon-pos\": \"0x48cbc913de09317df2365e6827df50da083701d5\",\n \"solana\": \"DAtU322C23YpoZyWBm8szk12QyqHa9rUQe1EYXzbm1JE\"\n },\n \"marketCapRank\": 2489\n },\n {\n \"id\": \"frax\",\n \"symbol\": \"frax\",\n \"name\": \"Frax\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x853d955acef822db058eb8505911ed77f175b99e\",\n \"moonbeam\": \"0x322e86852e492a7ee17f28a78c663da38fb33bfb\",\n \"avalanche\": \"0xd24c2ad096400b6fbcd2ad8b24e7acbc21a1da64\",\n \"polygon-zkevm\": \"0xff8544fed5379d9ffa8d47a74ce6b91e632ac44d\",\n \"optimistic-ethereum\": \"0x2e3d870790dc77a83dd1d18184acc7439a53f475\",\n \"near-protocol\": \"853d955acef822db058eb8505911ed77f175b99e.factory.bridge.near\",\n \"arbitrum-one\": \"0x17fc002b466eec40dae837fc4be5c67993ddbd6f\",\n \"binance-smart-chain\": \"0x90c97f71e18723b0cf0dfa30ee176ab653e89f40\",\n \"moonriver\": \"0x1a93b23281cc1cde4c4741353f3064709a16197d\",\n \"fantom\": \"0xdc301622e621166bd8e82f2ca0a26c13ad0be355\",\n \"harmony-shard-0\": \"0xfa7191d292d5633f702b0bd7e3e3bccc0e633200\",\n \"polygon-pos\": \"0x45c32fa6df82ead1e2ef74d17b76547eddfaff89\",\n \"evmos\": \"0xe03494d0033687543a80c9b1ca7d6237f2ea8bd8\",\n \"solana\": \"FR87nWEUxVgerFGhZM8Y4AggKGLnaXswr1Pd8wZ4kZcp\"\n },\n \"marketCapRank\": 156\n },\n {\n \"id\": \"frax-price-index-share\",\n \"symbol\": \"fpis\",\n \"name\": \"Frax Price Index Share\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc2544a32872a91f4a553b404c6950e89de901fdb\",\n \"arbitrum-one\": \"0x3405e88af759992937b84e58f2fe691ef0eea320\",\n \"binance-smart-chain\": \"0xd1738eb733a636d1b8665f48bc8a24da889c2562\"\n },\n \"marketCapRank\": 919\n },\n {\n \"id\": \"frax-share\",\n \"symbol\": \"fxs\",\n \"name\": \"Frax Share\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0\",\n \"fantom\": \"0x7d016eec9c25232b01f23ef992d98ca97fc2af5a\",\n \"polygon-zkevm\": \"0x6b856a14cea1d7dcfaf80fa6936c0b75972ccace\",\n \"arbitrum-one\": \"0x9d2f299715d94d8a7e6f5eaa8e654e8c74a988a7\",\n \"polygon-pos\": \"0x1a3acf6d19267e2d3e7f898f42803e90c9219062\",\n \"avalanche\": \"0x214db107654ff987ad859f34125307783fc8e387\",\n \"binance-smart-chain\": \"0xe48a3d7d0bc88d552f730b62c006bc925eadb9ee\",\n \"moonriver\": \"0x6f1d1ee50846fcbc3de91723e61cb68cfa6d0e98\",\n \"harmony-shard-0\": \"0x0767d8e1b05efa8d6a301a65b324b6b66a1cc14c\",\n \"evmos\": \"0xd8176865dd0d672c6ab4a427572f80a72b4b4a9c\",\n \"solana\": \"6LX8BhMQ4Sy2otmAWj7Y5sKd9YTVVUgfMsBzT6B9W7ct\"\n },\n \"marketCapRank\": 165\n },\n {\n \"id\": \"freedom-coin\",\n \"symbol\": \"free\",\n \"name\": \"FREEdom coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2f141ce366a2462f02cea3d12cf93e4dca49e4fd\",\n \"binance-smart-chain\": \"0x12e34cdf6a031a10fe241864c32fb03a4fdad739\"\n },\n \"marketCapRank\": 2231\n },\n {\n \"id\": \"friends-with-benefits-pro\",\n \"symbol\": \"fwb\",\n \"name\": \"Friends With Benefits Pro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x35bd01fc9d6d5d81ca9e055db88dc49aa2c699a8\"\n },\n \"marketCapRank\": 1896\n },\n {\n \"id\": \"fringe-finance\",\n \"symbol\": \"frin\",\n \"name\": \"Fringe Finance\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc9fe6e1c76210be83dc1b5b20ec7fd010b0b1d15\"\n },\n \"marketCapRank\": 2236\n },\n {\n \"id\": \"frontier-token\",\n \"symbol\": \"front\",\n \"name\": \"Frontier\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf8c3527cc04340b208c854e985240c02f7b7793f\",\n \"harmony-shard-0\": \"0x1ee5839950fd7a227f91cf679b1931dd6f5798b3\",\n \"polygon-pos\": \"0xa3ed22eee92a3872709823a6970069e12a4540eb\",\n \"binance-smart-chain\": \"0x928e55dab735aa8260af3cedada18b5f70c72f1b\"\n },\n \"marketCapRank\": 487\n },\n {\n \"id\": \"fsn\",\n \"symbol\": \"fsn\",\n \"name\": \"FUSION\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x979aca85ba37c675e78322ed5d97fa980b9bdf00\",\n \"binance-smart-chain\": \"0xfa4fa764f15d0f6e20aaec8e0d696870e5b77c6e\",\n \"fantom\": \"0x50eb82cc284e3d35936827023b048106aaecfc5f\",\n \"huobi-token\": \"0xa790b07796abed3cdaf81701b4535014bf5e1a65\",\n \"fusion-network\": \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n \"polygon-pos\": \"0x2bf9b864cdc97b08b6d79ad4663e71b8ab65c45c\"\n },\n \"marketCapRank\": 1293\n },\n {\n \"id\": \"funfair\",\n \"symbol\": \"fun\",\n \"name\": \"FUNToken\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x419d0d8bdd9af5e606ae2232ed285aff190e711b\",\n \"energi\": \"0x04cd06cf05b816f09395375f0143584b4a95ea9f\"\n },\n \"marketCapRank\": 622\n },\n {\n \"id\": \"volt-inu-2\",\n \"symbol\": \"volt\",\n \"name\": \"Volt Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7f792db54b0e580cdc755178443f0430cf799aca\",\n \"polygon-pos\": \"0x7f792db54b0e580cdc755178443f0430cf799aca\",\n \"binance-smart-chain\": \"0x7f792db54b0e580cdc755178443f0430cf799aca\"\n },\n \"marketCapRank\": 902\n },\n {\n \"id\": \"fuse-network-token\",\n \"symbol\": \"fuse\",\n \"name\": \"Fuse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x970b9bb2c0444f5e81e9d0efb84c8ccdcdcaf84d\",\n \"optimistic-ethereum\": \"0xe453d6649643f1f460c371dc3d1da98f7922fe51\",\n \"xdai\": \"0xd589f00fa2eb83367f732ab3cda92ee0940389cf\",\n \"arbitrum-one\": \"0x6b021b3f68491974be6d4009fee61a4e3c708fd6\",\n \"binance-smart-chain\": \"0x5857c96dae9cf8511b08cb07f85753c472d36ea3\",\n \"polygon-pos\": \"0x6b021b3f68491974be6d4009fee61a4e3c708fd6\"\n },\n \"marketCapRank\": 1181\n },\n {\n \"id\": \"futurecoin\",\n \"symbol\": \"future\",\n \"name\": \"FutureCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9fbff386a9405b4c98329824418ec02b5c20976b\"\n },\n \"marketCapRank\": 1982\n },\n {\n \"id\": \"fx-coin\",\n \"symbol\": \"fx\",\n \"name\": \"Function X\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8c15ef5b4b21951d50e53e4fbda8298ffad25057\"\n },\n \"marketCapRank\": 428\n },\n {\n \"id\": \"gains\",\n \"symbol\": \"gains\",\n \"name\": \"Gains\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x056c1d42fb1326f57da7f19ebb7dda4673f1ff55\",\n \"binance-smart-chain\": \"0xf1c3e69494e27bf067c4076a6f244a46446719d6\"\n },\n \"marketCapRank\": 1331\n },\n {\n \"id\": \"gains-network\",\n \"symbol\": \"gns\",\n \"name\": \"Gains Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xe5417af564e4bfda1c483642db72007871397896\",\n \"arbitrum-one\": \"0x18c11fd286c5ec11c3b683caa813b77f5163a122\"\n },\n \"marketCapRank\": 385\n },\n {\n \"id\": \"gala\",\n \"symbol\": \"gala\",\n \"name\": \"GALA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd1d2eb1b1e90b638588728b4130137d262c87cae\"\n },\n \"marketCapRank\": 56\n },\n {\n \"id\": \"gala-music\",\n \"symbol\": \"music\",\n \"name\": \"Gala Music\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd8c0b13b551718b808fc97ead59499d5ef862775\"\n },\n \"marketCapRank\": 1282\n },\n {\n \"id\": \"project-galaxy\",\n \"symbol\": \"gal\",\n \"name\": \"Galxe\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5faa989af96af85384b8a938c2ede4a7378d9875\",\n \"binance-smart-chain\": \"0xe4cc45bb5dbda06db6183e8bf016569f40497aa5\"\n },\n \"marketCapRank\": 187\n },\n {\n \"id\": \"galaxia\",\n \"symbol\": \"gxa\",\n \"name\": \"Galaxia\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0xa80e96cceb1419f9bd9f1c67f7978f51b534a11b\"\n },\n \"marketCapRank\": 1749\n },\n {\n \"id\": \"galaxy-fight-club\",\n \"symbol\": \"gcoin\",\n \"name\": \"Galaxy Fight Club\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x071ac29d569a47ebffb9e57517f855cb577dcc4c\"\n },\n \"marketCapRank\": 2615\n },\n {\n \"id\": \"galeon\",\n \"symbol\": \"galeon\",\n \"name\": \"Galeon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x1d0ac23f03870f768ca005c84cbb6fb82aa884fd\"\n },\n \"marketCapRank\": 1358\n },\n {\n \"id\": \"gitcoin\",\n \"symbol\": \"gtc\",\n \"name\": \"Gitcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xde30da39c46104798bb5aa3fe8b9e0e1f348163f\",\n \"near-protocol\": \"de30da39c46104798bb5aa3fe8b9e0e1f348163f.factory.bridge.near\"\n },\n \"marketCapRank\": 451\n },\n {\n \"id\": \"gamestarter\",\n \"symbol\": \"game\",\n \"name\": \"Gamestarter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd567b5f02b9073ad3a982a099a23bf019ff11d1c\",\n \"binance-smart-chain\": \"0x66109633715d2110dda791e64a7b2afadb517abb\"\n },\n \"marketCapRank\": 1611\n },\n {\n \"id\": \"gameai\",\n \"symbol\": \"gat\",\n \"name\": \"GameAI\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xdacd068618fcdb358f8951eca2af3e2d7e7555c6\"\n },\n \"marketCapRank\": 1361\n },\n {\n \"id\": \"gamee\",\n \"symbol\": \"gmee\",\n \"name\": \"GAMEE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd9016a907dc0ecfa3ca425ab20b6b785b42f2373\",\n \"the-open-network\": \"EQCqnhZndBGbwjPpV8K_8WOK58ZkQPXlS_bshau9DKWnAF-p\",\n \"binance-smart-chain\": \"0x84e9a6f9d240fdd33801f7135908bfa16866939a\"\n },\n \"marketCapRank\": 1423\n },\n {\n \"id\": \"gifto\",\n \"symbol\": \"gft\",\n \"name\": \"Gifto\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x72ff5742319ef07061836f5c924ac6d72c919080\"\n },\n \"marketCapRank\": 1009\n },\n {\n \"id\": \"gamefi\",\n \"symbol\": \"gafi\",\n \"name\": \"GameFi.org\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x89af13a10b32f1b2f8d1588f93027f69b6f4e27e\"\n },\n \"marketCapRank\": 550\n },\n {\n \"id\": \"gamercoin\",\n \"symbol\": \"ghx\",\n \"name\": \"GamerCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x728f30fa2f100742c7949d1961804fa8e0b1387d\",\n \"binance-smart-chain\": \"0xbd7b8e4de08d9b01938f7ff2058f110ee1e0e8d4\"\n },\n \"marketCapRank\": 454\n },\n {\n \"id\": \"games-for-a-living\",\n \"symbol\": \"gfal\",\n \"name\": \"Games for a Living\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x47c454ca6be2f6def6f32b638c80f91c9c3c5949\"\n },\n \"marketCapRank\": 751\n },\n {\n \"id\": \"gamespad\",\n \"symbol\": \"gmpd\",\n \"name\": \"GamesPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9720ca160bbd4e7f3dd4bb3f8bd4227ca0342e63\"\n },\n \"marketCapRank\": 2552\n },\n {\n \"id\": \"gameswap-org\",\n \"symbol\": \"gswap\",\n \"name\": \"Gameswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaac41ec512808d64625576eddd580e7ea40ef8b2\"\n },\n \"marketCapRank\": 1667\n },\n {\n \"id\": \"gameswift\",\n \"symbol\": \"gswift\",\n \"name\": \"GameSwift\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x580e933d90091b9ce380740e3a4a39c67eb85b4c\",\n \"ethereum\": \"0x580e933d90091b9ce380740e3a4a39c67eb85b4c\"\n },\n \"marketCapRank\": 901\n },\n {\n \"id\": \"gamezone\",\n \"symbol\": \"gzone\",\n \"name\": \"GameZone\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb6adb74efb5801160ff749b1985fd3bd5000e938\"\n },\n \"marketCapRank\": 1461\n },\n {\n \"id\": \"gami-world\",\n \"symbol\": \"gami\",\n \"name\": \"GAMI World\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x1236a887ef31b4d32e1f0a2b5e4531f52cec7e75\"\n },\n \"marketCapRank\": 1628\n },\n {\n \"id\": \"gamium\",\n \"symbol\": \"gmm\",\n \"name\": \"Gamium\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x5b6bf0c7f989de824677cfbd507d9635965e9cd3\",\n \"ethereum\": \"0x4b19c70da4c6fa4baa0660825e889d2f7eabc279\"\n },\n \"marketCapRank\": 889\n },\n {\n \"id\": \"gamma-strategies\",\n \"symbol\": \"gamma\",\n \"name\": \"Gamma Strategies\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6bea7cfef803d1e3d5f7c0103f7ded065644e197\"\n },\n \"marketCapRank\": 1357\n },\n {\n \"id\": \"gari-network\",\n \"symbol\": \"gari\",\n \"name\": \"Gari Network\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"CKaKtYvz6dKPyMvYq9Rh3UBrnNqYZAyd7iF4hJtjUvks\"\n },\n \"marketCapRank\": 1268\n },\n {\n \"id\": \"gas\",\n \"symbol\": \"gas\",\n \"name\": \"Gas\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"neo\": \"602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7\"\n },\n \"marketCapRank\": 208\n },\n {\n \"id\": \"gatechain-token\",\n \"symbol\": \"gt\",\n \"name\": \"Gate\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe66747a101bff2dba3697199dcce5b743b454759\"\n },\n \"marketCapRank\": 86\n },\n {\n \"id\": \"gogopool\",\n \"symbol\": \"ggp\",\n \"name\": \"GoGoPool\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x69260b9483f9871ca57f81a90d91e2f96c2cd11d\"\n },\n \"marketCapRank\": 894\n },\n {\n \"id\": \"geeq\",\n \"symbol\": \"geeq\",\n \"name\": \"GEEQ\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b9f031d718dded0d681c20cb754f97b3bb81b78\"\n },\n \"marketCapRank\": 1452\n },\n {\n \"id\": \"gelato\",\n \"symbol\": \"gel\",\n \"name\": \"Gelato\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x15b7c0c907e4c6b9adaaaabc300c08991d6cea05\",\n \"fantom\": \"0x15b7c0c907e4c6b9adaaaabc300c08991d6cea05\",\n \"polygon-pos\": \"0x15b7c0c907e4c6b9adaaaabc300c08991d6cea05\"\n },\n \"marketCapRank\": 436\n },\n {\n \"id\": \"gemhub\",\n \"symbol\": \"ghub\",\n \"name\": \"GemHUB\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x4836cc1f355bb2a61c210eaa0cd3f729160cd95e\"\n },\n \"marketCapRank\": 1497\n },\n {\n \"id\": \"gemini-dollar\",\n \"symbol\": \"gusd\",\n \"name\": \"Gemini Dollar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x056fd409e1d7a124bd7017459dfea2f387b6d5cd\",\n \"near-protocol\": \"056fd409e1d7a124bd7017459dfea2f387b6d5cd.factory.bridge.near\"\n },\n \"marketCapRank\": 454\n },\n {\n \"id\": \"gemlink\",\n \"symbol\": \"glink\",\n \"name\": \"GemLink\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0ee7292bd28f4a490f849fb30c28cabab9440f9e\"\n },\n \"marketCapRank\": 2423\n },\n {\n \"id\": \"generaitiv\",\n \"symbol\": \"gai\",\n \"name\": \"Generaitiv\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0d8ca4b20b115d4da5c13dc45dd582a5de3e78bf\"\n },\n \"marketCapRank\": 2168\n },\n {\n \"id\": \"genesysgo-shadow\",\n \"symbol\": \"shdw\",\n \"name\": \"Shadow Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"SHDWyBxihqiCj6YekG2GUr7wqKLeLAMK1gHZck9pL6y\"\n },\n \"marketCapRank\": 264\n },\n {\n \"id\": \"genius\",\n \"symbol\": \"geni\",\n \"name\": \"Genius\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x444444444444c1a66f394025ac839a535246fcc8\",\n \"avalanche\": \"0x444444444444c1a66f394025ac839a535246fcc8\",\n \"polygon-pos\": \"0x444444444444c1a66f394025ac839a535246fcc8\",\n \"binance-smart-chain\": \"0x444444444444c1a66f394025ac839a535246fcc8\"\n },\n \"marketCapRank\": 2434\n },\n {\n \"id\": \"gensokishis-metaverse\",\n \"symbol\": \"mv\",\n \"name\": \"GensoKishi Metaverse\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xa3c322ad15218fbfaed26ba7f616249f7705d945\",\n \"ethereum\": \"0xae788f80f2756a86aa2f410c651f2af83639b95b\"\n },\n \"marketCapRank\": 1482\n },\n {\n \"id\": \"geodnet\",\n \"symbol\": \"geod\",\n \"name\": \"Geodnet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xac0f66379a6d7801d7726d5a943356a172549adb\"\n },\n \"marketCapRank\": 1159\n },\n {\n \"id\": \"geojam\",\n \"symbol\": \"jam\",\n \"name\": \"Geojam\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x23894dc9da6c94ecb439911caf7d337746575a72\"\n },\n \"marketCapRank\": 1380\n },\n {\n \"id\": \"getkicks\",\n \"symbol\": \"kicks\",\n \"name\": \"GetKicks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfeb4e9b932ef708c498cc997abe51d0ee39300cf\"\n },\n \"marketCapRank\": 2378\n },\n {\n \"id\": \"get-token\",\n \"symbol\": \"get\",\n \"name\": \"GET Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8a854288a5976036a725879164ca3e91d30c6a1b\",\n \"polygon-pos\": \"0xdb725f82818de83e99f1dac22a9b5b51d3d04dd4\"\n },\n \"marketCapRank\": 696\n },\n {\n \"id\": \"ghost-by-mcafee\",\n \"symbol\": \"ghost\",\n \"name\": \"Ghost\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xb5e0cfe1b4db501ac003b740665bf43192cc7853\"\n },\n \"marketCapRank\": 2184\n },\n {\n \"id\": \"gho\",\n \"symbol\": \"gho\",\n \"name\": \"GHO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x40d16fc0246ad3160ccc09b8d0d3a2cd28ae6c2f\"\n },\n \"marketCapRank\": 857\n },\n {\n \"id\": \"giveth\",\n \"symbol\": \"giv\",\n \"name\": \"Giveth\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x900db999074d9277c5da2a43f252d74366230da0\",\n \"xdai\": \"0x4f4f9b8d5b4d0dc10506e5551b0513b61fd59e75\"\n },\n \"marketCapRank\": 2140\n },\n {\n \"id\": \"gleec-coin\",\n \"symbol\": \"gleec\",\n \"name\": \"Gleec Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2201\n },\n {\n \"id\": \"global-coin-research\",\n \"symbol\": \"gcr\",\n \"name\": \"Global Coin Research\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6307b25a665efc992ec1c1bc403c38f3ddd7c661\",\n \"polygon-pos\": \"0xa69d14d6369e414a32a5c7e729b7afbafd285965\"\n },\n \"marketCapRank\": 2454\n },\n {\n \"id\": \"global-digital-cluster-co\",\n \"symbol\": \"gdcc\",\n \"name\": \"Global Digital Cluster Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2163\n },\n {\n \"id\": \"globiance-exchange\",\n \"symbol\": \"gbex\",\n \"name\": \"Globiance Exchange\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdc34514748f86a8da01ef082306b6d6e738f777f5a\"\n },\n \"marketCapRank\": 1222\n },\n {\n \"id\": \"gmx\",\n \"symbol\": \"gmx\",\n \"name\": \"GMX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xfc5a1a6eb076a2c7ad06ed22c90d7e710e35ad0a\",\n \"avalanche\": \"0x62edc0692bd897d2295872a9ffcac5425011c661\"\n },\n \"marketCapRank\": 212\n },\n {\n \"id\": \"gnosis\",\n \"symbol\": \"gno\",\n \"name\": \"Gnosis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6810e776880c02933d47db1b9fc05908e5386b96\",\n \"energi\": \"0xf452bff8e958c6f335f06fc3aac427ee195366fe\",\n \"arbitrum-one\": \"0xa0b862f60edef4452f25b4160f177db44deb6cf1\",\n \"xdai\": \"0x9c58bacc331c9aa871afd802db6379a98e80cedb\"\n },\n \"marketCapRank\": 119\n },\n {\n \"id\": \"gny\",\n \"symbol\": \"gny\",\n \"name\": \"GNY\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb1f871ae9462f1b2c6826e88a7827e76f86751d4\"\n },\n \"marketCapRank\": 1826\n },\n {\n \"id\": \"gochain\",\n \"symbol\": \"go\",\n \"name\": \"GoChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1557\n },\n {\n \"id\": \"gods-unchained\",\n \"symbol\": \"gods\",\n \"name\": \"Gods Unchained\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xccc8cb5229b0ac8069c51fd58367fd1e622afd97\"\n },\n \"marketCapRank\": 519\n },\n {\n \"id\": \"goldcoin\",\n \"symbol\": \"glc\",\n \"name\": \"Goldcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1467\n },\n {\n \"id\": \"golden-inu-token\",\n \"symbol\": \"golden\",\n \"name\": \"Golden Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd87996ff3d06858bfc20989aef50cc5fcd4d84ca\"\n },\n \"marketCapRank\": 2364\n },\n {\n \"id\": \"golem\",\n \"symbol\": \"glm\",\n \"name\": \"Golem\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7dd9c5cba05e151c895fde1cf355c9a1d5da6429\",\n \"energi\": \"0xf3ff3bf1d1afcbebd98a304482c4099dc953e9a8\"\n },\n \"marketCapRank\": 165\n },\n {\n \"id\": \"good-games-guild\",\n \"symbol\": \"ggg\",\n \"name\": \"Good Games Guild\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd8047afecb86e44eff3add991b9f063ed4ca716b\"\n },\n \"marketCapRank\": 1828\n },\n {\n \"id\": \"good-person-coin\",\n \"symbol\": \"gpcx\",\n \"name\": \"Good Person Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1785\n },\n {\n \"id\": \"goons-of-balatroon\",\n \"symbol\": \"gob\",\n \"name\": \"Goons of Balatroon\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xa2f9ecf83a48b86265ff5fd36cdbaaa1f349916c\",\n \"beam\": \"0x7fb5a9921cf98362aa425e42f66bf3484c2c2b5f\",\n \"ethereum\": \"0x830eb1204380e9c44434db8700257025358707c6\"\n },\n \"marketCapRank\": 2289\n },\n {\n \"id\": \"goosefx\",\n \"symbol\": \"gofx\",\n \"name\": \"GooseFX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD\"\n },\n \"marketCapRank\": 1550\n },\n {\n \"id\": \"goracle-network\",\n \"symbol\": \"gora\",\n \"name\": \"Gora\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"algorand\": \"1138500612\"\n },\n \"marketCapRank\": 2130\n },\n {\n \"id\": \"gorilla\",\n \"symbol\": \"gorilla\",\n \"name\": \"Gorilla\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x33c04bed4533e31f2afb8ac4a61a48eda38c4fa0\"\n },\n \"marketCapRank\": 1879\n },\n {\n \"id\": \"governance-zil\",\n \"symbol\": \"gzil\",\n \"name\": \"governance ZIL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1970\n },\n {\n \"id\": \"govi\",\n \"symbol\": \"govi\",\n \"name\": \"CVI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xeeaa40b28a2d1b0b08f6f97bb1dd4b75316c6107\",\n \"zksync\": \"0xd63ef5e9c628c8a0e8984cdfb7444aee44b09044\",\n \"arbitrum-one\": \"0x07e49d5de43dda6162fa28d24d5935c151875283\",\n \"polygon-pos\": \"0x43df9c0a1156c96cea98737b511ac89d0e2a1f46\"\n },\n \"marketCapRank\": 1850\n },\n {\n \"id\": \"goztepe-s-k-fan-token\",\n \"symbol\": \"goz\",\n \"name\": \"Göztepe S.K. Fan Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"chiliz\": \"0x0e469d1c78421c7952e4d9626800dad22f45361d\"\n },\n \"marketCapRank\": 2226\n },\n {\n \"id\": \"grai\",\n \"symbol\": \"grai\",\n \"name\": \"Grai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x15f74458ae0bfdaa1a96ca1aa779d715cc1eefe4\",\n \"arbitrum-one\": \"0x894134a25a5fac1c2c26f1d8fbf05111a3cb9487\",\n \"zksync\": \"0x5fc44e95eaa48f9eb84be17bd3ac66b6a82af709\"\n },\n \"marketCapRank\": 1747\n },\n {\n \"id\": \"granary\",\n \"symbol\": \"grain\",\n \"name\": \"Granary\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf88baf18fab7e330fa0c4f83949e23f52fececce\",\n \"fantom\": \"0x02838746d9e1413e07ee064fcbada57055417f21\",\n \"avalanche\": \"0x9df4ac62f9e435dbcd85e06c990a7f0ea32739a9\",\n \"optimistic-ethereum\": \"0xfd389dc9533717239856190f42475d3f263a270d\",\n \"arbitrum-one\": \"0x80bb30d62a16e1f2084deae84dc293531c3ac3a1\",\n \"binance-smart-chain\": \"0x8f87a7d376821c7b2658a005aaf190ec778bf37a\"\n },\n \"marketCapRank\": 2118\n },\n {\n \"id\": \"graphlinq-protocol\",\n \"symbol\": \"glq\",\n \"name\": \"GraphLinq Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9f9c8ec3534c3ce16f928381372bfbfbfb9f4d24\"\n },\n \"marketCapRank\": 787\n },\n {\n \"id\": \"graviton\",\n \"symbol\": \"grav\",\n \"name\": \"Graviton\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"gravity-bridge\": \"ugraviton\",\n \"osmosis\": \"ibc/E97634A40119F1898989C2A23224ED83FDD0A57EA46B3A094E287288D1672B44\",\n \"archway\": \"ibc/31D711D31CD5D83D98E76B1486EEDA1A38CD1F7D6FCBD03521FE51323115AECA\",\n \"kujira\": \"kujira1jlyyyg0m649v75nqzm40jfdmjar9sf7rh3qnuz8yqa4345s9tqvqhxwxjq\",\n \"crescent\": \"ibc/C950356239AD2A205DE09FDF066B1F9FF19A7CA7145EA48A5B19B76EE47E52F7\",\n \"evmos\": \"0x80b5a32e4f032b2a058b4f29ec95eefeeb87adcd\"\n },\n \"marketCapRank\": 2241\n },\n {\n \"id\": \"gridcoin-research\",\n \"symbol\": \"grc\",\n \"name\": \"Gridcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1980\n },\n {\n \"id\": \"grin\",\n \"symbol\": \"grin\",\n \"name\": \"Grin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1487\n },\n {\n \"id\": \"grizzly-honey\",\n \"symbol\": \"ghny\",\n \"name\": \"Grizzly Honey\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xa045e37a0d1dd3a45fefb8803d22457abc0a728a\"\n },\n \"marketCapRank\": 1998\n },\n {\n \"id\": \"groestlcoin\",\n \"symbol\": \"grs\",\n \"name\": \"Groestlcoin\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 669\n },\n {\n \"id\": \"grove\",\n \"symbol\": \"grv\",\n \"name\": \"GroveCoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf33893de6eb6ae9a67442e066ae9abd228f5290c\",\n \"ethereum\": \"0xf33893de6eb6ae9a67442e066ae9abd228f5290c\"\n },\n \"marketCapRank\": 1806\n },\n {\n \"id\": \"gsenetwork\",\n \"symbol\": \"gse\",\n \"name\": \"GSENetwork\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe530441f4f73bdb6dc2fa5af7c3fc5fd551ec838\"\n },\n \"marketCapRank\": 2624\n },\n {\n \"id\": \"guild-of-guardians\",\n \"symbol\": \"gog\",\n \"name\": \"Guild of Guardians\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9ab7bb7fdc60f4357ecfef43986818a2a3569c62\"\n },\n \"marketCapRank\": 566\n },\n {\n \"id\": \"gulfcoin-2\",\n \"symbol\": \"gulf\",\n \"name\": \"GulfCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7597bdccf10e41bccc374a6a0104cf430c420884\"\n },\n \"marketCapRank\": 1760\n },\n {\n \"id\": \"gunstar-metaverse\",\n \"symbol\": \"gsts\",\n \"name\": \"Gunstar Metaverse\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7edc0ec89f987ecd85617b891c44fe462a325869\"\n },\n \"marketCapRank\": 2486\n },\n {\n \"id\": \"gxchain\",\n \"symbol\": \"gxc\",\n \"name\": \"GXChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 756\n },\n {\n \"id\": \"gyen\",\n \"symbol\": \"gyen\",\n \"name\": \"GYEN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc08512927d12348f6620a698105e1baac6ecd911\",\n \"stellar\": \"GYEN:GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB\",\n \"solana\": \"Crn4x1Y2HUKko7ox2EZMT6N2t2ZyH7eKtwkBGVnhEq1g\",\n \"arbitrum-one\": \"0x589d35656641d6ab57a545f08cf473ecd9b6d5f7\"\n },\n \"marketCapRank\": 1312\n },\n {\n \"id\": \"gym-network\",\n \"symbol\": \"gymnet\",\n \"name\": \"Gym Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0012365f0a1e5f30a5046c680dcb21d07b15fcf7\"\n },\n \"marketCapRank\": 2149\n },\n {\n \"id\": \"h2o-dao\",\n \"symbol\": \"h2o\",\n \"name\": \"H2O Dao\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xaf3287cae99c982586c07401c0d911bf7de6cd82\"\n },\n \"marketCapRank\": 790\n },\n {\n \"id\": \"hackenai\",\n \"symbol\": \"hai\",\n \"name\": \"Hacken\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xaa9e582e5751d703f85912903bacaddfed26484c\",\n \"ethereum\": \"0x05fb86775fd5c16290f1e838f5caaa7342bd9a63\",\n \"vechain\": \"0xacc280010b2ee0efc770bce34774376656d8ce14\"\n },\n \"marketCapRank\": 762\n },\n {\n \"id\": \"hairdao\",\n \"symbol\": \"hair\",\n \"name\": \"HairDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9ce115f0341ae5dabc8b477b74e83db2018a6f42\"\n },\n \"marketCapRank\": 1022\n },\n {\n \"id\": \"pizabrc\",\n \"symbol\": \"piza\",\n \"name\": \"PIZA (Ordinals)\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ordinals\": \"c0dd0bc7d0620a02cfedc57a280cfd79823bc754623f9318d9755bcd3b131d14i0\"\n },\n \"marketCapRank\": 1915\n },\n {\n \"id\": \"handle-fi\",\n \"symbol\": \"forex\",\n \"name\": \"handle.fi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdb298285fe4c5410b05390ca80e8fbe9de1f259b\",\n \"arbitrum-one\": \"0xdb298285fe4c5410b05390ca80e8fbe9de1f259b\",\n \"polygon-pos\": \"0xdb298285fe4c5410b05390ca80e8fbe9de1f259b\"\n },\n \"marketCapRank\": 2875\n },\n {\n \"id\": \"handy\",\n \"symbol\": \"handy\",\n \"name\": \"Handy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8bbe1a2961b41340468d0548c2cd5b7dfa9b684c\"\n },\n \"marketCapRank\": 2150\n },\n {\n \"id\": \"hapi\",\n \"symbol\": \"hapi\",\n \"name\": \"HAPI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd9c2d319cd7e6177336b0a9c93c21cb48d84fb54\",\n \"near-protocol\": \"d9c2d319cd7e6177336b0a9c93c21cb48d84fb54.factory.bridge.near\",\n \"binance-smart-chain\": \"0xd9c2d319cd7e6177336b0a9c93c21cb48d84fb54\",\n \"solana\": \"6VNKqgz9hk7zRShTFdg5AnkfKwZUcojzwAkzxSH3bnUm\"\n },\n \"marketCapRank\": 1268\n },\n {\n \"id\": \"hathor\",\n \"symbol\": \"htr\",\n \"name\": \"Hathor\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 918\n },\n {\n \"id\": \"harmony\",\n \"symbol\": \"one\",\n \"name\": \"Harmony\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 229\n },\n {\n \"id\": \"saitama-inu\",\n \"symbol\": \"saitama\",\n \"name\": \"Saitama\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xce3f08e664693ca792cace4af1364d5e220827b2\"\n },\n \"marketCapRank\": 531\n },\n {\n \"id\": \"harrypottertrumphomersimpson777inu\",\n \"symbol\": \"ethereum\",\n \"name\": \"HarryPotterTrumpHomerSimpson777Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x24249b5a869a445c9b0ce269a08d73c618df9d21\"\n },\n \"marketCapRank\": 2450\n },\n {\n \"id\": \"hashflow\",\n \"symbol\": \"hft\",\n \"name\": \"Hashflow\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb3999f658c0391d94a37f7ff328f3fec942bcadc\",\n \"binance-smart-chain\": \"0x44ec807ce2f4a6f2737a92e985f318d035883e47\"\n },\n \"marketCapRank\": 377\n },\n {\n \"id\": \"hatom\",\n \"symbol\": \"htm\",\n \"name\": \"Hatom\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"elrond\": \"HTM-f51d55\"\n },\n \"marketCapRank\": 781\n },\n {\n \"id\": \"havah\",\n \"symbol\": \"hvh\",\n \"name\": \"HAVAH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd076c4ba62c57b3fa10800bcfd8da66742110e0e\"\n },\n \"marketCapRank\": 1049\n },\n {\n \"id\": \"haven\",\n \"symbol\": \"xhv\",\n \"name\": \"Haven\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2045\n },\n {\n \"id\": \"havven\",\n \"symbol\": \"snx\",\n \"name\": \"Synthetix Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f\",\n \"harmony-shard-0\": \"0x7b9c523d59aefd362247bd5601a89722e3774dd2\",\n \"avalanche\": \"0xbec243c995409e6520d7c41e404da5deba4b209b\",\n \"near-protocol\": \"c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f.factory.bridge.near\",\n \"optimistic-ethereum\": \"0x8700daec35af8ff88c16bdf0418774cb3d7599b4\",\n \"huobi-token\": \"0x777850281719d5a96c29812ab72f822e0e09f3da\",\n \"polygon-pos\": \"0x50b728d8d964fd00c2d0aad81718b71311fef68a\",\n \"fantom\": \"0x56ee926bd8c72b2d5fa1af4d9e4cbb515a1e3adc\",\n \"energi\": \"0xa255461ff545d6ece153283f421d67d2de5d0e29\"\n },\n \"marketCapRank\": 81\n },\n {\n \"id\": \"hawksight\",\n \"symbol\": \"hawk\",\n \"name\": \"Hawksight\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"BKipkearSqAUdNKa1WDstvcMjoPsSKBuNyvKDQDDu9WE\"\n },\n \"marketCapRank\": 2136\n },\n {\n \"id\": \"headstarter\",\n \"symbol\": \"hst\",\n \"name\": \"HeadStarter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"hedera-hashgraph\": \"0x00000000000000000000000000000000000ec585\"\n },\n \"marketCapRank\": 1862\n },\n {\n \"id\": \"hedera-hashgraph\",\n \"symbol\": \"hbar\",\n \"name\": \"Hedera\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 38\n },\n {\n \"id\": \"unsheth\",\n \"symbol\": \"ush\",\n \"name\": \"unshETHing_Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe60779cc1b2c1d0580611c526a8df0e3f870ec48\",\n \"arbitrum-one\": \"0x51a80238b5738725128d3a3e06ab41c1d4c05c74\",\n \"binance-smart-chain\": \"0x91d6d6af7635b7b23a8ced9508117965180e2362\"\n },\n \"marketCapRank\": 2595\n },\n {\n \"id\": \"hegic\",\n \"symbol\": \"hegic\",\n \"name\": \"Hegic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x584bc13c7d411c00c01a62e8019472de68768430\",\n \"fantom\": \"0x44b26e839eb3572c5e959f994804a5de66600349\",\n \"energi\": \"0x762204d444123bcc511718a24158a86e3d853266\",\n \"arbitrum-one\": \"0x431402e8b9de9aa016c743880e04e517074d8cec\"\n },\n \"marketCapRank\": 1071\n },\n {\n \"id\": \"helium\",\n \"symbol\": \"hnt\",\n \"name\": \"Helium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux\"\n },\n \"marketCapRank\": 111\n },\n {\n \"id\": \"helium-mobile\",\n \"symbol\": \"mobile\",\n \"name\": \"Helium Mobile\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"mb1eu7TzEc71KxDpsmsKoucSSuuoGLv1drys1oP2jh6\"\n },\n \"marketCapRank\": 254\n },\n {\n \"id\": \"hello-labs\",\n \"symbol\": \"hello\",\n \"name\": \"HELLO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x411099c0b413f4feddb10edf6a8be63bd321311c\",\n \"binance-smart-chain\": \"0x0f1cbed8efa0e012adbccb1638d0ab0147d5ac00\"\n },\n \"marketCapRank\": 938\n },\n {\n \"id\": \"hera-finance\",\n \"symbol\": \"hera\",\n \"name\": \"Hera Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"metis-andromeda\": \"0x6f05709bc91bad933346f9e159f0d3fdbc2c9dce\",\n \"ethereum\": \"0xa2c2c937333165d4c5f2dc5f31a43e1239fecfeb\"\n },\n \"marketCapRank\": 1193\n },\n {\n \"id\": \"hmx\",\n \"symbol\": \"hmx\",\n \"name\": \"HMX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x83d6c8c06ac276465e4c92e7ac8c23740f435140\",\n \"ethereum\": \"0x83d6c8c06ac276465e4c92e7ac8c23740f435140\"\n },\n \"marketCapRank\": 1390\n },\n {\n \"id\": \"hermes-protocol\",\n \"symbol\": \"hermes\",\n \"name\": \"Hermes Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"metis-andromeda\": \"0xb27bbeaaca2c00d6258c3118bab6b5b6975161c8\"\n },\n \"marketCapRank\": 2022\n },\n {\n \"id\": \"hermez-network-token\",\n \"symbol\": \"hez\",\n \"name\": \"Hermez Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xeef9f339514298c6a857efcfc1a762af84438dee\"\n },\n \"marketCapRank\": 631\n },\n {\n \"id\": \"hero-blaze-three-kingdoms\",\n \"symbol\": \"mudol2\",\n \"name\": \"Hero Blaze: Three Kingdoms\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x5e7f472b9481c80101b22d0ba4ef4253aa61dabc\"\n },\n \"marketCapRank\": 2141\n },\n {\n \"id\": \"heroes-of-nft\",\n \"symbol\": \"hon\",\n \"name\": \"Heroes of NFT\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xed2b42d3c9c6e97e11755bb37df29b6375ede3eb\"\n },\n \"marketCapRank\": 2479\n },\n {\n \"id\": \"hiblocks\",\n \"symbol\": \"hibs\",\n \"name\": \"Hiblocks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0xe06b40df899b9717b4e6b50711e1dc72d08184cf\"\n },\n \"marketCapRank\": 2469\n },\n {\n \"id\": \"hifi-finance\",\n \"symbol\": \"hifi\",\n \"name\": \"Hifi Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4b9278b94a1112cad404048903b8d343a810b07e\"\n },\n \"marketCapRank\": 419\n },\n {\n \"id\": \"hilo\",\n \"symbol\": \"hilo\",\n \"name\": \"HILO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbb9fd9fa4863c03c574007ff3370787b9ce65ff6\"\n },\n \"marketCapRank\": 1664\n },\n {\n \"id\": \"humanscape\",\n \"symbol\": \"hpo\",\n \"name\": \"Hippocrat\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfe39c384d702914127a005523f9915addb9bd59b\"\n },\n \"marketCapRank\": 497\n },\n {\n \"id\": \"hive\",\n \"symbol\": \"hive\",\n \"name\": \"Hive\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 366\n },\n {\n \"id\": \"hive-game-token\",\n \"symbol\": \"hgt\",\n \"name\": \"Hive Game Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"HGTxJQKzuMjzKkHVpRLcFHwE6ngVCJbcP35FDQtmRzhx\"\n },\n \"marketCapRank\": 2855\n },\n {\n \"id\": \"hivemapper\",\n \"symbol\": \"honey\",\n \"name\": \"Hivemapper\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"4vMsoUT2BWatFweudnQM1xedRLfJgJ7hswhcpz4xgBTy\"\n },\n \"marketCapRank\": 391\n },\n {\n \"id\": \"hummingbot\",\n \"symbol\": \"hbot\",\n \"name\": \"Hummingbot\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe5097d9baeafb89f9bcb78c9290d545db5f9e9cb\"\n },\n \"marketCapRank\": 2375\n },\n {\n \"id\": \"hoge-finance\",\n \"symbol\": \"hoge\",\n \"name\": \"Hoge Finance\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfad45e47083e4607302aa43c65fb3106f1cd7607\"\n },\n \"marketCapRank\": 1351\n },\n {\n \"id\": \"holoride\",\n \"symbol\": \"ride\",\n \"name\": \"holoride\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"elrond\": \"RIDE-7d18e9\",\n \"ethereum\": \"0xf97e2a78f1f3d1fd438ff7cc3bb7de01e5945b83\"\n },\n \"marketCapRank\": 1336\n },\n {\n \"id\": \"holotoken\",\n \"symbol\": \"hot\",\n \"name\": \"Holo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6c6ee5e31d828de241282b9606c8e98ea48526e2\",\n \"harmony-shard-0\": \"0x5dfeadcdd2d4eb29ac5ae876daa07ffd07bf6483\",\n \"sora\": \"0x004baaeb9bf0d5210a51fab72d10c84a34f53bea4e0e102d794d531a45ec50f9\",\n \"energi\": \"0x34b97eeab6fd9bbe95a5eaf4645307c5a6f3d4d0\"\n },\n \"marketCapRank\": 163\n },\n {\n \"id\": \"honeyland-honey\",\n \"symbol\": \"hxd\",\n \"name\": \"Honeyland\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"3dgCCb15HMQSA4Pn3Tfii5vRk7aRqTH95LJjxzsG2Mug\"\n },\n \"marketCapRank\": 942\n },\n {\n \"id\": \"hooked-protocol\",\n \"symbol\": \"hook\",\n \"name\": \"Hooked Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xa260e12d2b924cb899ae80bb58123ac3fee1e2f0\"\n },\n \"marketCapRank\": 334\n },\n {\n \"id\": \"hop-protocol\",\n \"symbol\": \"hop\",\n \"name\": \"Hop Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc\",\n \"polygon-pos\": \"0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc\",\n \"optimistic-ethereum\": \"0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc\",\n \"base\": \"0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc\",\n \"xdai\": \"0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc\",\n \"arbitrum-one\": \"0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc\"\n },\n \"marketCapRank\": 1923\n },\n {\n \"id\": \"hopr\",\n \"symbol\": \"hopr\",\n \"name\": \"HOPR\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf5581dfefd8fb0e4aec526be659cfab1f8c781da\",\n \"xdai\": \"0xd057604a14982fe8d88c5fc25aac3267ea142a08\"\n },\n \"marketCapRank\": 628\n },\n {\n \"id\": \"hord\",\n \"symbol\": \"hord\",\n \"name\": \"Hord\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x43a96962254855f16b925556f9e97be436a43448\",\n \"arbitrum-one\": \"0xb1bc21f748ae2be95674876710bc6d78235480e0\"\n },\n \"marketCapRank\": 1846\n },\n {\n \"id\": \"horizon-protocol\",\n \"symbol\": \"hzn\",\n \"name\": \"Horizon Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc0eff7749b125444953ef89682201fb8c6a917cd\"\n },\n \"marketCapRank\": 1503\n },\n {\n \"id\": \"hourglass\",\n \"symbol\": \"wait\",\n \"name\": \"Hourglass\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2559813bbb508c4c79e9ccce4703bcb1f149edd7\"\n },\n \"marketCapRank\": 1424\n },\n {\n \"id\": \"hubble\",\n \"symbol\": \"hbb\",\n \"name\": \"Hubble\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"HBB111SCo9jkCejsZfz8Ec8nH7T6THF8KEKSnvwT6XK6\"\n },\n \"marketCapRank\": 1185\n },\n {\n \"id\": \"humanode\",\n \"symbol\": \"hmnd\",\n \"name\": \"Humanode\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1379\n },\n {\n \"id\": \"humans-ai\",\n \"symbol\": \"heart\",\n \"name\": \"Humans.ai\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8fac8031e079f409135766c7d5de29cf22ef897c\",\n \"osmosis\": \"ibc/35CECC330D11DD00FACB555D07687631E0BC7D226260CC5F015F6D7980819533\"\n },\n \"marketCapRank\": 310\n },\n {\n \"id\": \"huobi-btc\",\n \"symbol\": \"hbtc\",\n \"name\": \"Huobi BTC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0316eb71485b0ab14103307bf65a021042c6d380\",\n \"huobi-token\": \"0x66a79d23e58475d2738179ca52cd0b41d73f0bea\"\n },\n \"marketCapRank\": 336\n },\n {\n \"id\": \"huobi-token\",\n \"symbol\": \"ht\",\n \"name\": \"Huobi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6f259637dcd74c767781e37bc6133cd6a68aa161\",\n \"near-protocol\": \"6f259637dcd74c767781e37bc6133cd6a68aa161.factory.bridge.near\",\n \"harmony-shard-0\": \"0xbaa0974354680b0e8146d64bb27fb92c03c4a2f2\",\n \"elastos\": \"0xeceefc50f9aacf0795586ed90a8b9e24f55ce3f3\"\n },\n \"marketCapRank\": 434\n },\n {\n \"id\": \"husd\",\n \"symbol\": \"husd\",\n \"name\": \"HUSD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdf574c24545e5ffecb9a659c229253d4111d87e1\",\n \"huobi-token\": \"0x0298c2b32eae4da002a15f36fdf7615bea3da047\",\n \"sora\": \"0x008ba21aa988b21e86d5b25ed9ea690d28a6ba6c5ba9037424c215fd5b193c32\",\n \"elastos\": \"0xf9ca2ea3b1024c0db31adb224b407441becc18bb\",\n \"cube\": \"0x9db853f46dd7d541d0fba1c8b6b7e7b1d8ff58d3\"\n },\n \"marketCapRank\": 1307\n },\n {\n \"id\": \"husky-avax\",\n \"symbol\": \"husky\",\n \"name\": \"Husky Avax\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x65378b697853568da9ff8eab60c13e1ee9f4a654\"\n },\n \"marketCapRank\": 1544\n },\n {\n \"id\": \"hxro\",\n \"symbol\": \"hxro\",\n \"name\": \"HXRO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4bd70556ae3f8a6ec6c4080a0c327b24325438f3\",\n \"energi\": \"0xf25ef66291cc2469781fa18512d6b26431cb0747\",\n \"solana\": \"HxhWkVpk5NS4Ltg5nij2G671CKXFRKPK8vy271Ub4uEK\"\n },\n \"marketCapRank\": 664\n },\n {\n \"id\": \"hydra\",\n \"symbol\": \"hydra\",\n \"name\": \"Hydra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"hydra\": \"6d9115a21863ce31b44cd231e4c4ccc87566222f\"\n },\n \"marketCapRank\": 1238\n },\n {\n \"id\": \"hydradx\",\n \"symbol\": \"hdx\",\n \"name\": \"HydraDX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 769\n },\n {\n \"id\": \"hypergpt\",\n \"symbol\": \"hgpt\",\n \"name\": \"HyperGPT\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x529c79f6918665ebe250f32eeeaa1d410a0798c6\",\n \"the-open-network\": \"EQAuw01klxL8qKe9cBioTfjst0d6Gdagg51_c73z8X2-zJmj\"\n },\n \"marketCapRank\": 965\n },\n {\n \"id\": \"hypersign-identity-token\",\n \"symbol\": \"hid\",\n \"name\": \"Hypersign Identity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb14ebf566511b9e6002bb286016ab2497b9b9c9d\",\n \"polygon-pos\": \"0x87847703d4bb4fcd42db887ffdcb94496e77e3ab\"\n },\n \"marketCapRank\": 2200\n },\n {\n \"id\": \"hytopia\",\n \"symbol\": \"topia\",\n \"name\": \"HYCHAIN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xccccb68e1a848cbdb5b60a974e07aae143ed40c3\"\n },\n \"marketCapRank\": 697\n },\n {\n \"id\": \"hyve\",\n \"symbol\": \"hyve\",\n \"name\": \"Hyve\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd794dd1cada4cf79c9eebaab8327a1b0507ef7d4\",\n \"fantom\": \"0x90b89e881961e1053aeaddba13217d56f747349a\",\n \"binance-smart-chain\": \"0xf6565a97dc832d93dc83b75ee9aa5c7e8ecb0f9d\",\n \"polygon-pos\": \"0x61aee582896064ecd5d85d66a32ddeb5574a699d\"\n },\n \"marketCapRank\": 2433\n },\n {\n \"id\": \"ibuffer-token\",\n \"symbol\": \"bfr\",\n \"name\": \"Buffer Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x1a5b0aaf478bf1fda7b934c76e7692d722982a6d\"\n },\n \"marketCapRank\": 2736\n },\n {\n \"id\": \"ichi-farm\",\n \"symbol\": \"ichi\",\n \"name\": \"ICHI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x111111517e4929d3dcbdfa7cce55d30d4b6bc4d6\",\n \"binance-smart-chain\": \"0x0ef4a107b48163ab4b57fca36e1352151a587be4\",\n \"arbitrum-one\": \"0xadf5dd3e51bf28ab4f07e684ecf5d00691818790\",\n \"polygon-pos\": \"0x111111517e4929d3dcbdfa7cce55d30d4b6bc4d6\"\n },\n \"marketCapRank\": 1115\n },\n {\n \"id\": \"icon\",\n \"symbol\": \"icx\",\n \"name\": \"ICON\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 235\n },\n {\n \"id\": \"idavoll-network\",\n \"symbol\": \"idv\",\n \"name\": \"Idavoll DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x45448e05020576929fcdeabc228e35b420098840\"\n },\n \"marketCapRank\": 2159\n },\n {\n \"id\": \"ideaology\",\n \"symbol\": \"idea\",\n \"name\": \"Ideaology\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5d3a4f62124498092ce665f865e0b38ff6f5fbea\"\n },\n \"marketCapRank\": 2176\n },\n {\n \"id\": \"idena\",\n \"symbol\": \"idna\",\n \"name\": \"Idena\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0de08c1abe5fb86dd7fd2ac90400ace305138d5b\"\n },\n \"marketCapRank\": 2203\n },\n {\n \"id\": \"idia\",\n \"symbol\": \"idia\",\n \"name\": \"Impossible Finance Launchpad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0b15ddf19d47e6a86a56148fb4afffc6929bcb89\",\n \"avalanche\": \"0xfcaf13227dcbfa2dc2b1928acfca03b85e2d25dd\",\n \"arbitrum-one\": \"0xe6045890b20945d00e6f3c01878265c03c5435d3\",\n \"moonriver\": \"0x2d28aa28fa1e5e6bf121cf688309bf3faaae3c70\"\n },\n \"marketCapRank\": 655\n },\n {\n \"id\": \"idle\",\n \"symbol\": \"idle\",\n \"name\": \"IDLE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x875773784af8135ea0ef43b5a374aad105c5d39e\",\n \"polygon-pos\": \"0xc25351811983818c9fe6d8c580531819c8ade90f\"\n },\n \"marketCapRank\": 2222\n },\n {\n \"id\": \"instadapp-eth\",\n \"symbol\": \"ieth\",\n \"name\": \"iETH v1\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc383a3833a87009fd9597f8184979af5edfad019\"\n },\n \"marketCapRank\": 2509\n },\n {\n \"id\": \"iexec-rlc\",\n \"symbol\": \"rlc\",\n \"name\": \"iExec RLC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x607f4c5bb672230e8672085532f7e901544a7375\",\n \"sora\": \"0x008294f7b08f568a661de2b248c34fc574e7e0012a12ef7959eb1a5c6b349e09\",\n \"energi\": \"0xb4ff17b5e93c40ff09326b0d538118022f02dc2b\"\n },\n \"marketCapRank\": 278\n },\n {\n \"id\": \"ignis\",\n \"symbol\": \"ignis\",\n \"name\": \"Ignis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1880\n },\n {\n \"id\": \"iguverse-igu\",\n \"symbol\": \"igu\",\n \"name\": \"IguVerse IGU\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x201bc9f242f74c47bbd898a5dc99cdcd81a21943\"\n },\n \"marketCapRank\": 1626\n },\n {\n \"id\": \"illuvium\",\n \"symbol\": \"ilv\",\n \"name\": \"Illuvium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x767fe9edc9e0df98e07454847909b5e959d7ca0e\",\n \"energi\": \"0xa4ecf6d10b8d61d4a022821a6ff8b9536a47c70d\"\n },\n \"marketCapRank\": 128\n },\n {\n \"id\": \"ime-lab\",\n \"symbol\": \"lime\",\n \"name\": \"iMe Lab\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7bc75e291e656e8658d66be1cc8154a3769a35dd\",\n \"polygon-pos\": \"0x7f67639ffc8c93dd558d452b8920b28815638c44\"\n },\n \"marketCapRank\": 782\n },\n {\n \"id\": \"imgnai\",\n \"symbol\": \"imgnai\",\n \"name\": \"Image Generation AI\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa735a3af76cc30791c61c10d585833829d36cbe0\"\n },\n \"marketCapRank\": 1099\n },\n {\n \"id\": \"imo\",\n \"symbol\": \"imo\",\n \"name\": \"IMO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x94d79c325268c898d2902050730f27a478c56cc1\"\n },\n \"marketCapRank\": 2145\n },\n {\n \"id\": \"impt\",\n \"symbol\": \"impt\",\n \"name\": \"IMPT\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x04c17b9d3b29a78f7bd062a57cf44fc633e71f85\"\n },\n \"marketCapRank\": 1739\n },\n {\n \"id\": \"infinitybit-token\",\n \"symbol\": \"ibit\",\n \"name\": \"InfinityBit Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa3cb87080e68ad54d00573983d935fa85d168fde\"\n },\n \"marketCapRank\": 1983\n },\n {\n \"id\": \"infinity-pad-2\",\n \"symbol\": \"ipad\",\n \"name\": \"Infinity PAD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xa7266989b0df675cc8257d53b6bc1358faf6626a\"\n },\n \"marketCapRank\": 2251\n },\n {\n \"id\": \"inscribe\",\n \"symbol\": \"ins\",\n \"name\": \"Inscribe\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe9572938bcbf08adcee86fd12a7c0d08dc4ab841\"\n },\n \"marketCapRank\": 1848\n },\n {\n \"id\": \"injective-protocol\",\n \"symbol\": \"inj\",\n \"name\": \"Injective\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe28b3b32b6c345a34ff64674606124dd5aceca30\",\n \"cosmos\": \"ibc/64BA6E31FE887D66C6F8F31C7B1A80C7CA179239677B4088BB55F5EA07DBE273\",\n \"binance-smart-chain\": \"0xa2b726b1145a4773f68593cf171187d8ebe4d495\",\n \"secret\": \"secret14706vxakdzkz9a36872cs62vpl5qd84kpwvpew\"\n },\n \"marketCapRank\": 46\n },\n {\n \"id\": \"instadapp\",\n \"symbol\": \"inst\",\n \"name\": \"Instadapp\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6f40d4a6237c257fff2db00fa0510deeecd303eb\",\n \"polygon-pos\": \"0xf50d05a1402d0adafa880d36050736f9f6ee7dee\"\n },\n \"marketCapRank\": 922\n },\n {\n \"id\": \"insurace\",\n \"symbol\": \"insur\",\n \"name\": \"InsurAce\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x544c42fbb96b39b21df61cf322b5edc285ee7429\",\n \"avalanche\": \"0x544c42fbb96b39b21df61cf322b5edc285ee7429\",\n \"polygon-pos\": \"0x8a0e8b4b0903929f47c3ea30973940d4a9702067\",\n \"binance-smart-chain\": \"0x3192ccddf1cdce4ff055ebc80f3f0231b86a7e30\"\n },\n \"marketCapRank\": 2051\n },\n {\n \"id\": \"insure\",\n \"symbol\": \"sure\",\n \"name\": \"inSure DeFi\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcb86c6a22cb56b6cf40cafedb06ba0df188a416e\",\n \"avalanche\": \"0x5fc17416925789e0852fbfcd81c490ca4abc51f9\",\n \"polygon-pos\": \"0xf88332547c680f755481bf489d890426248bb275\",\n \"binance-smart-chain\": \"0x9b17baadf0f21f03e35249e0e59723f34994f806\"\n },\n \"marketCapRank\": 398\n },\n {\n \"id\": \"ix-token\",\n \"symbol\": \"ixt\",\n \"name\": \"Planet IX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xe06bd4f5aac8d0aa337d13ec88db6defc6eaeefe\"\n },\n \"marketCapRank\": 1369\n },\n {\n \"id\": \"integritee\",\n \"symbol\": \"teer\",\n \"name\": \"Integritee\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1994\n },\n {\n \"id\": \"interlay\",\n \"symbol\": \"intr\",\n \"name\": \"Interlay\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1618\n },\n {\n \"id\": \"internet-computer\",\n \"symbol\": \"icp\",\n \"name\": \"Internet Computer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"internet-computer\": \"ryjl3-tyaaa-aaaaa-aaaba-cai\"\n },\n \"marketCapRank\": 21\n },\n {\n \"id\": \"interport-token\",\n \"symbol\": \"itp\",\n \"name\": \"Interport Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"polygon-zkevm\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"linea\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"arbitrum-one\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"optimistic-ethereum\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"zksync\": \"0xd03465338226ea0178337f4abb16fdd6df529f57\",\n \"avalanche\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"scroll\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"fantom\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"opbnb\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"polygon-pos\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"base\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\",\n \"binance-smart-chain\": \"0x2b1d36f5b61addaf7da7ebbd11b35fd8cfb0de31\"\n },\n \"marketCapRank\": 1896\n },\n {\n \"id\": \"inter-stable-token\",\n \"symbol\": \"ist\",\n \"name\": \"Inter Stable Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/92BE0717F4678905E53F4E45B2DED18BC0CB97BF1F8B6A25AFEDF3D5A879B4D5\",\n \"archway\": \"ibc/C0336ECF2DF64E7D2C98B1422EC2B38DE9EF33C34AAADF18C6F2E3FFC7BE3615\",\n \"secret\": \"secret1xmqsk8tnge0atzy4e079h0l2wrgz6splcq0a24\"\n },\n \"marketCapRank\": 2534\n },\n {\n \"id\": \"intrepid-token\",\n \"symbol\": \"int\",\n \"name\": \"Intrepid Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa2762ba628b962f93498d8893b6e4346140fe96d\"\n },\n \"marketCapRank\": 2632\n },\n {\n \"id\": \"inverse-finance\",\n \"symbol\": \"inv\",\n \"name\": \"Inverse Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x41d5d79431a913c4ae7d69a668ecdfe5ff9dfb68\"\n },\n \"marketCapRank\": 988\n },\n {\n \"id\": \"ion\",\n \"symbol\": \"ion\",\n \"name\": \"Ion\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"uion\"\n },\n \"marketCapRank\": 1519\n },\n {\n \"id\": \"iostoken\",\n \"symbol\": \"iost\",\n \"name\": \"IOST\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 315\n },\n {\n \"id\": \"iota\",\n \"symbol\": \"iota\",\n \"name\": \"IOTA\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 106\n },\n {\n \"id\": \"wifi\",\n \"symbol\": \"wifi\",\n \"name\": \"WiFi Map\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xe238ecb42c424e877652ad82d8a939183a04c35f\"\n },\n \"marketCapRank\": 810\n },\n {\n \"id\": \"wicrypt\",\n \"symbol\": \"wnt\",\n \"name\": \"Wicrypt\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x82a0e6c02b91ec9f6ff943c0a933c03dbaa19689\",\n \"arbitrum-one\": \"0xad4b9c1fbf4923061814dd9d5732eb703faa53d4\"\n },\n \"marketCapRank\": 1238\n },\n {\n \"id\": \"ipor\",\n \"symbol\": \"ipor\",\n \"name\": \"IPOR\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1e4746dc744503b53b4a082cb3607b169a289090\",\n \"arbitrum-one\": \"0x34229b3f16fbcdfa8d8d9d17c0852f9496f4c7bb\"\n },\n \"marketCapRank\": 1460\n },\n {\n \"id\": \"iris-network\",\n \"symbol\": \"iris\",\n \"name\": \"IRISnet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/7C4D60AA95E5A7558B0A364860979CA34B7FF8AAF255B87AF9E879374470CEC0\"\n },\n \"marketCapRank\": 640\n },\n {\n \"id\": \"iron-fish\",\n \"symbol\": \"iron\",\n \"name\": \"Iron Fish\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 848\n },\n {\n \"id\": \"titanswap\",\n \"symbol\": \"titan\",\n \"name\": \"TitanSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3a8cccb969a61532d1e6005e2ce12c200caece87\"\n },\n \"marketCapRank\": 2199\n },\n {\n \"id\": \"iskra-token\",\n \"symbol\": \"isk\",\n \"name\": \"ISKRA Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x17d2628d30f8e9e966c9ba831c9b9b01ea8ea75c\",\n \"klay-token\": \"0x17d2628d30f8e9e966c9ba831c9b9b01ea8ea75c\"\n },\n \"marketCapRank\": 960\n },\n {\n \"id\": \"ispolink\",\n \"symbol\": \"isp\",\n \"name\": \"Ispolink\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc8807f0f5ba3fa45ffbdc66928d71c5289249014\",\n \"manta-pacific\": \"0xbab1c57ec0bb0ae81d948503e51d90166459d154\",\n \"binance-smart-chain\": \"0xd2e7b964770fcf51df088a5f0bb2d33a3c60cccf\"\n },\n \"marketCapRank\": 1419\n },\n {\n \"id\": \"itheum\",\n \"symbol\": \"itheum\",\n \"name\": \"Itheum\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"elrond\": \"ITHEUM-df6f26\"\n },\n \"marketCapRank\": 1370\n },\n {\n \"id\": \"ixo\",\n \"symbol\": \"ixo\",\n \"name\": \"IXO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/F3FF7A84A73B62921538642F9797C423D2B4C4ACB3C7FCFFCE7F12AA69909C4B\"\n },\n \"marketCapRank\": 1454\n },\n {\n \"id\": \"ix-swap\",\n \"symbol\": \"ixs\",\n \"name\": \"IX Swap\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x73d7c860998ca3c01ce8c808f5577d94d545d1b4\",\n \"polygon-pos\": \"0x1ba17c639bdaecd8dc4aac37df062d17ee43a1b8\"\n },\n \"marketCapRank\": 486\n },\n {\n \"id\": \"jackal-protocol\",\n \"symbol\": \"jkl\",\n \"name\": \"Jackal Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"secret\": \"secret1sgaz455pmtgld6dequqayrdseq8vy2fc48n8y3\",\n \"osmosis\": \"ibc/8E697BDABE97ACE8773C6DF7402B2D1D5104DD1EEABE12608E3469B7F64C15BA\",\n \"archway\": \"ibc/926432AE1C5FA4F857B36D970BE7774C7472079506820B857B75C5DE041DD7A3\"\n },\n \"marketCapRank\": 700\n },\n {\n \"id\": \"jasmycoin\",\n \"symbol\": \"jasmy\",\n \"name\": \"JasmyCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7420b4b9a0110cdc71fb720908340c03f9bc03ec\"\n },\n \"marketCapRank\": 113\n },\n {\n \"id\": \"jesus-coin\",\n \"symbol\": \"jesus\",\n \"name\": \"Jesus Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba386a4ca26b85fd057ab1ef86e3dc7bdeb5ce70\"\n },\n \"marketCapRank\": 1060\n },\n {\n \"id\": \"joe\",\n \"symbol\": \"joe\",\n \"name\": \"JOE\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x6e84a6216ea6dacc71ee8e6b0a5b7322eebc0fdd\",\n \"arbitrum-one\": \"0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07\",\n \"mantle\": \"0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07\",\n \"binance-smart-chain\": \"0x371c7ec6d8039ff7933a2aa28eb827ffe1f52f07\"\n },\n \"marketCapRank\": 267\n },\n {\n \"id\": \"pepefork\",\n \"symbol\": \"pork\",\n \"name\": \"PepeFork\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb9f599ce614feb2e1bbe58f180f370d05b39344e\"\n },\n \"marketCapRank\": 549\n },\n {\n \"id\": \"jones-dao\",\n \"symbol\": \"jones\",\n \"name\": \"Jones DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x10393c20975cf177a3513071bc110f7962cd67da\"\n },\n \"marketCapRank\": 1945\n },\n {\n \"id\": \"julswap\",\n \"symbol\": \"juld\",\n \"name\": \"JulSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf5d8015d625be6f59b8073c8189bd51ba28792e1\",\n \"harmony-shard-0\": \"0x504d7d5bd2075fa782fbd0be9bea4cdc7e25f5a1\"\n },\n \"marketCapRank\": 2062\n },\n {\n \"id\": \"jumptoken\",\n \"symbol\": \"jmpt\",\n \"name\": \"JumpToken\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x88d7e9b65dc24cf54f5edef929225fc3e1580c25\",\n \"celo\": \"0x1d18d0386f51ab03e7e84e71bda1681eba865f1f\",\n \"ethereum\": \"0x420a24c9c65bd44c48bfb1cc8d6cd1ea8b1ac840\",\n \"polygon-pos\": \"0x03cf5d93ca7c70ce0a21a09f4d70779d2c66b25a\"\n },\n \"marketCapRank\": 1328\n },\n {\n \"id\": \"juno-network\",\n \"symbol\": \"juno\",\n \"name\": \"JUNO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/46B44899322F3CD854D2D46DEEF881958467CDD4B3B10086DA49296BBED94BED\",\n \"evmos\": \"0x3452e23f9c4cc62c70b7adad699b264af3549c19\",\n \"secret\": \"secret1z6e4skg5g9w65u5sqznrmagu05xq8u6zjcdg4a\"\n },\n \"marketCapRank\": 1064\n },\n {\n \"id\": \"just\",\n \"symbol\": \"jst\",\n \"name\": \"JUST\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"tron\": \"TCFLL5dx5ZJdKnWuesXxi1VPwjLVmWZZy9\"\n },\n \"marketCapRank\": 242\n },\n {\n \"id\": \"k21\",\n \"symbol\": \"k21\",\n \"name\": \"K21\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb9d99c33ea2d86ec5ec6b8a4dd816ebba64404af\"\n },\n \"marketCapRank\": 2304\n },\n {\n \"id\": \"kadena\",\n \"symbol\": \"kda\",\n \"name\": \"Kadena\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 224\n },\n {\n \"id\": \"kaizen\",\n \"symbol\": \"kzen\",\n \"name\": \"Kaizen.Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x4550003152f12014558e5ce025707e4dd841100f\",\n \"ethereum\": \"0x4550003152f12014558e5ce025707e4dd841100f\",\n \"binance-smart-chain\": \"0x4550003152f12014558e5ce025707e4dd841100f\",\n \"solana\": \"kZEn3aDxEzcFADPe2VQ6WcJRbS1hVGjUcgCw4HiuYSU\"\n },\n \"marketCapRank\": null\n },\n {\n \"id\": \"kalmar\",\n \"symbol\": \"kalm\",\n \"name\": \"KALM\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4ba0057f784858a48fe351445c672ff2a3d43515\",\n \"avalanche\": \"0x62aceea3e666c5706ce1c61055fac1a669d31d93\",\n \"fantom\": \"0x4f851750a3e6f80f1e1f89c67b56960bfc29a934\"\n },\n \"marketCapRank\": 2581\n },\n {\n \"id\": \"kamaleont\",\n \"symbol\": \"klt\",\n \"name\": \"Kamaleont\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf87940f78f2f4d99a0c5c22e3fcc21795cd53245\"\n },\n \"marketCapRank\": 1566\n },\n {\n \"id\": \"karat\",\n \"symbol\": \"kat\",\n \"name\": \"Karat\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"zksync\": \"0xcdb7d260c107499c80b4b748e8331c64595972a1\"\n },\n \"marketCapRank\": 2213\n },\n {\n \"id\": \"kan\",\n \"symbol\": \"kan\",\n \"name\": \"BitKan\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1410434b0346f5be678d0fb554e5c7ab620f8f4a\"\n },\n \"marketCapRank\": 1720\n },\n {\n \"id\": \"kapital-dao\",\n \"symbol\": \"kap\",\n \"name\": \"KAP Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9625ce7753ace1fa1865a47aae2c5c2ce4418569\",\n \"arbitrum-one\": \"0x965d00aa7abc62ca10132e641d08593435ac811d\",\n \"hedera-hashgraph\": \"0.0.3299785\",\n \"polygon-pos\": \"0xc27158bb8e08899d38765752f91d7d778e16ab8e\",\n \"blast\": \"0x15d24de366f69b835be19f7cf9447e770315dd80\"\n },\n \"marketCapRank\": 1306\n },\n {\n \"id\": \"karate-combat\",\n \"symbol\": \"karate\",\n \"name\": \"Karate Combat\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x80008bcd713c38af90a9930288d446bc3bd2e684\",\n \"hedera-hashgraph\": \"0.0.2283230\"\n },\n \"marketCapRank\": 1002\n },\n {\n \"id\": \"kardiachain\",\n \"symbol\": \"kai\",\n \"name\": \"KardiaChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"kardiachain\": \"0xaf984e23eaa3e7967f3c5e007fbe397d8566d23d\",\n \"binance-smart-chain\": \"0x39ae8eefb05138f418bb27659c21632dc1ddab10\"\n },\n \"marketCapRank\": 1090\n },\n {\n \"id\": \"karura\",\n \"symbol\": \"kar\",\n \"name\": \"Karura\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1081\n },\n {\n \"id\": \"kaspa\",\n \"symbol\": \"kas\",\n \"name\": \"Kaspa\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 47\n },\n {\n \"id\": \"kasta\",\n \"symbol\": \"kasta\",\n \"name\": \"Kasta\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x235737dbb56e8517391473f7c964db31fa6ef280\"\n },\n \"marketCapRank\": 1163\n },\n {\n \"id\": \"katana-inu\",\n \"symbol\": \"kata\",\n \"name\": \"Katana Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2e85ae1c47602f7927bcabc2ff99c40aa222ae15\",\n \"binance-smart-chain\": \"0x6d6ba21e4c4b29ca7bfa1c344ba1e35b8dae7205\"\n },\n \"marketCapRank\": 741\n },\n {\n \"id\": \"kava\",\n \"symbol\": \"kava\",\n \"name\": \"Kava\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 107\n },\n {\n \"id\": \"kava-lend\",\n \"symbol\": \"hard\",\n \"name\": \"Kava Lend\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"energi\": \"0xeeaccbb6ce1b5be68a2cf9d0dea27d4b807848d2\"\n },\n \"marketCapRank\": 881\n },\n {\n \"id\": \"keep3rv1\",\n \"symbol\": \"kp3r\",\n \"name\": \"Keep3rV1\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1ceb5cb57c4d4e2b2433641b95dd330a33185a44\",\n \"fantom\": \"0x2a5062d22adcfaafbd5c541d4da82e4b450d4212\",\n \"energi\": \"0x09f24e5e54db6705df1a1a71d2bd5eac0d692bea\"\n },\n \"marketCapRank\": 788\n },\n {\n \"id\": \"keep-network\",\n \"symbol\": \"keep\",\n \"name\": \"Keep Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x85eee30c52b0b379b046fb0f85f4f3dc3009afec\",\n \"harmony-shard-0\": \"0x43bf77db5e784b263a459141bdcdf5cf6987936d\",\n \"energi\": \"0x9caa73156981600f4d276a10f80970a171abc1d1\"\n },\n \"marketCapRank\": 447\n },\n {\n \"id\": \"kek\",\n \"symbol\": \"keke\",\n \"name\": \"KEK\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf7168c8abb0ff80116413a8d95396bbdc318a3ff\"\n },\n \"marketCapRank\": 2249\n },\n {\n \"id\": \"ki\",\n \"symbol\": \"xki\",\n \"name\": \"KI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/B547DC9B897E7C3AA5B824696110B8E3D2C31E3ED3F02FF363DCBAD82457E07E\"\n },\n \"marketCapRank\": 1865\n },\n {\n \"id\": \"kiba-inu\",\n \"symbol\": \"kiba\",\n \"name\": \"Kiba Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x005d1123878fc55fbd56b54c73963b234a64af3c\",\n \"binance-smart-chain\": \"0xc3afde95b6eb9ba8553cdaea6645d45fb3a7faf5\"\n },\n \"marketCapRank\": 2060\n },\n {\n \"id\": \"kiboshib\",\n \"symbol\": \"kibshi\",\n \"name\": \"KiboShib\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x02e7f808990638e9e67e1f00313037ede2362361\"\n },\n \"marketCapRank\": 1867\n },\n {\n \"id\": \"kick\",\n \"symbol\": \"kick\",\n \"name\": \"Kick\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x824a50df33ac1b41afc52f4194e2e8356c17c3ac\",\n \"harmony-shard-0\": \"0xc63fd3e9c9527ccdf1d331bbadfe21e77e357b5e\"\n },\n \"marketCapRank\": 2161\n },\n {\n \"id\": \"kilt-protocol\",\n \"symbol\": \"kilt\",\n \"name\": \"KILT Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 692\n },\n {\n \"id\": \"kin\",\n \"symbol\": \"kin\",\n \"name\": \"Kin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"kinXdEcpDQeHPEuQnqmUgtYykqKGVFq6CeVX5iAHJq6\"\n },\n \"marketCapRank\": 645\n },\n {\n \"id\": \"phantasma\",\n \"symbol\": \"soul\",\n \"name\": \"Phantasma\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x75858677e27c930fb622759feaffee2b754af07f\",\n \"binance-smart-chain\": \"0x298eff8af1ecebbb2c034eaa3b9a5d0cc56c59cd\"\n },\n \"marketCapRank\": 1131\n },\n {\n \"id\": \"kine-protocol\",\n \"symbol\": \"kine\",\n \"name\": \"Kine Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcbfef8fdd706cde6f208460f2bf39aa9c785f05d\"\n },\n \"marketCapRank\": 1876\n },\n {\n \"id\": \"kinesis-gold\",\n \"symbol\": \"kau\",\n \"name\": \"Kinesis Gold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 531\n },\n {\n \"id\": \"kinesis-silver\",\n \"symbol\": \"kag\",\n \"name\": \"Kinesis Silver\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 565\n },\n {\n \"id\": \"king-shiba\",\n \"symbol\": \"kingshib\",\n \"name\": \"King Shiba\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x84f4f7cdb4574c9556a494dab18ffc1d1d22316c\"\n },\n \"marketCapRank\": 2334\n },\n {\n \"id\": \"kintsugi\",\n \"symbol\": \"kint\",\n \"name\": \"Kintsugi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2186\n },\n {\n \"id\": \"kira-network\",\n \"symbol\": \"kex\",\n \"name\": \"KIRA Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x16980b3b4a3f9d89e33311b5aa8f80303e5ca4f8\",\n \"binance-smart-chain\": \"0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e\"\n },\n \"marketCapRank\": 1071\n },\n {\n \"id\": \"kishu-inu\",\n \"symbol\": \"kishu\",\n \"name\": \"Kishu Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa2b4c0af19cc16a6cfacce81f192b024d625817d\"\n },\n \"marketCapRank\": 1035\n },\n {\n \"id\": \"kitty-inu\",\n \"symbol\": \"kitty\",\n \"name\": \"Kitty Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x61a35258107563f6b6f102ae25490901c8760b12\"\n },\n \"marketCapRank\": 1944\n },\n {\n \"id\": \"klaycity-orb\",\n \"symbol\": \"orb\",\n \"name\": \"Orbcity\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x20c750c57c3bc5145af4b7a33d4fb66a8e79fe05\",\n \"ethereum\": \"0x3c917054e03485808137eb306eafa8da0ab695cd\"\n },\n \"marketCapRank\": 1432\n },\n {\n \"id\": \"klay-token\",\n \"symbol\": \"klay\",\n \"name\": \"Klaytn\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 117\n },\n {\n \"id\": \"kleekai\",\n \"symbol\": \"klee\",\n \"name\": \"KleeKai\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa67e9f021b9d208f7e3365b2a155e3c55b27de71\"\n },\n \"marketCapRank\": 2751\n },\n {\n \"id\": \"kleros\",\n \"symbol\": \"pnk\",\n \"name\": \"Kleros\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x93ed3fbe21207ec2e8f2d3c3de6e058cb73bc04d\",\n \"xdai\": \"0x37b60f4e9a31a64ccc0024dce7d0fd07eaa0f7b3\"\n },\n \"marketCapRank\": 1124\n },\n {\n \"id\": \"kleva\",\n \"symbol\": \"kleva\",\n \"name\": \"KLEVA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x5fff3a6c16c2208103f318f4713d4d90601a7313\"\n },\n \"marketCapRank\": 1484\n },\n {\n \"id\": \"klever\",\n \"symbol\": \"klv\",\n \"name\": \"Klever\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 946\n },\n {\n \"id\": \"klima-dao\",\n \"symbol\": \"klima\",\n \"name\": \"KlimaDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x4e78011ce80ee02d2c3e649fb657e45898257815\"\n },\n \"marketCapRank\": 992\n },\n {\n \"id\": \"kommunitas\",\n \"symbol\": \"kom\",\n \"name\": \"Kommunitas\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xc004e2318722ea2b15499d6375905d75ee5390b8\",\n \"arbitrum-one\": \"0xa58663faef461761e44066ea26c1fcddf2927b80\",\n \"binance-smart-chain\": \"0x471ea49dd8e60e697f4cac262b5fafcc307506e4\"\n },\n \"marketCapRank\": 1961\n },\n {\n \"id\": \"komodo\",\n \"symbol\": \"kmd\",\n \"name\": \"Komodo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 576\n },\n {\n \"id\": \"kompete\",\n \"symbol\": \"kompete\",\n \"name\": \"KOMPETE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1e0b2992079b620aa13a7c2e7c88d2e1e18e46e9\",\n \"base\": \"0x8f019931375454fe4ee353427eb94e2e0c9e0a8c\"\n },\n \"marketCapRank\": 1026\n },\n {\n \"id\": \"kondux-v2\",\n \"symbol\": \"kndx\",\n \"name\": \"KONDUX\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7ca5af5ba3472af6049f63c1abc324475d44efc1\"\n },\n \"marketCapRank\": 660\n },\n {\n \"id\": \"kromatika\",\n \"symbol\": \"krom\",\n \"name\": \"Kromatika\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3af33bef05c2dcb3c7288b77fe1c8d2aeba4d789\",\n \"optimistic-ethereum\": \"0xf98dcd95217e15e05d8638da4c91125e59590b07\",\n \"arbitrum-one\": \"0x55ff62567f09906a85183b866df84bf599a4bf70\",\n \"polygon-pos\": \"0x14af1f2f02dccb1e43402339099a05a5e363b83c\"\n },\n \"marketCapRank\": 2096\n },\n {\n \"id\": \"kryll\",\n \"symbol\": \"krl\",\n \"name\": \"KRYLL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x464ebe77c293e473b48cfe96ddcf88fcf7bfdac0\"\n },\n \"marketCapRank\": 903\n },\n {\n \"id\": \"kryptomon\",\n \"symbol\": \"kmon\",\n \"name\": \"Kryptomon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xc732b6586a93b6b7cf5fed3470808bc74998224d\",\n \"ethereum\": \"0xc4170fd71eced3c80badca77f4e12e8aac1e3436\"\n },\n \"marketCapRank\": 1343\n },\n {\n \"id\": \"kryptonite\",\n \"symbol\": \"seilor\",\n \"name\": \"Kryptonite\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"sei-network\": \"sei10knxlv9e54z0xcywdhtycc63uf970aefeec73ycqwd75ep9nu45sh66m6a\",\n \"binance-smart-chain\": \"0xe29142e14e52bdfbb8108076f66f49661f10ec10\"\n },\n \"marketCapRank\": 1224\n },\n {\n \"id\": \"ktx-finance\",\n \"symbol\": \"ktc\",\n \"name\": \"KTX.Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"mantle\": \"0x779f4e5fb773e17bc8e809f4ef1abb140861159a\",\n \"binance-smart-chain\": \"0x545356d4d69d8cd1213ee7e339867574738751ca\"\n },\n \"marketCapRank\": null\n },\n {\n \"id\": \"kucoin-shares\",\n \"symbol\": \"kcs\",\n \"name\": \"KuCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 110\n },\n {\n \"id\": \"kujira\",\n \"symbol\": \"kuji\",\n \"name\": \"Kujira\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/BB6BCDB515050BAE97516111873CCD7BCF1FD0CCB723CC12F3C4F704D6C646CE\",\n \"optimistic-ethereum\": \"0x3a18dcc9745edcd1ef33ecb93b0b6eba5671e7ca\",\n \"ethereum\": \"0x96543ef8d2c75c26387c1a319ae69c0bee6f3fe7\",\n \"arbitrum-one\": \"0x3a18dcc9745edcd1ef33ecb93b0b6eba5671e7ca\",\n \"binance-smart-chain\": \"0x073690e6ce25be816e68f32dca3e11067c9fb5cc\",\n \"secret\": \"secret13hvh0rn0rcf5zr486yxlrucvwpzwqu2dsz6zu8\"\n },\n \"marketCapRank\": 253\n },\n {\n \"id\": \"kuma-inu\",\n \"symbol\": \"kuma\",\n \"name\": \"Kuma Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x48c276e8d03813224bb1e55f953adb6d02fd3e02\"\n },\n \"marketCapRank\": 2658\n },\n {\n \"id\": \"kunci-coin\",\n \"symbol\": \"kunci\",\n \"name\": \"Kunci Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6cf271270662be1c4fc1b7bb7d7d7fc60cc19125\"\n },\n \"marketCapRank\": 3927\n },\n {\n \"id\": \"kusama\",\n \"symbol\": \"ksm\",\n \"name\": \"Kusama\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 208\n },\n {\n \"id\": \"kwai\",\n \"symbol\": \"kwai\",\n \"name\": \"KWAI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x235d650fc6d9eb7d4bac77e128265295a0054304\"\n },\n \"marketCapRank\": 1671\n },\n {\n \"id\": \"kwenta\",\n \"symbol\": \"kwenta\",\n \"name\": \"Kwenta\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"optimistic-ethereum\": \"0x920cf626a271321c151d027030d5d08af699456b\"\n },\n \"marketCapRank\": 676\n },\n {\n \"id\": \"kyber-network-crystal\",\n \"symbol\": \"knc\",\n \"name\": \"Kyber Network Crystal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdefa4e8a7bcba345f687a2f1456f5edd9ce97202\",\n \"fantom\": \"0x1e1085efaa63edfe74aad7c05a28eae4ef917c3f\",\n \"linea\": \"0x3b2f62d42db19b30588648bf1c184865d4c3b1d6\",\n \"polygon-zkevm\": \"0x6a80a465409ce8d36c513129c0feea61bed579ba\",\n \"optimistic-ethereum\": \"0xa00e3a3511aac35ca78530c85007afcd31753819\",\n \"zksync\": \"0x6ee46cb7cd2f15ee1ec9534cf29a5b51c83283e6\",\n \"arbitrum-one\": \"0xe4dddfe67e7164b0fe14e218d80dc4c08edc01cb\",\n \"avalanche\": \"0x39fc9e94caeacb435842fadedecb783589f50f5f\",\n \"polygon-pos\": \"0x1c954e8fe737f99f68fa1ccda3e51ebdb291948c\",\n \"binance-smart-chain\": \"0xfe56d5892bdffc7bf58f2e84be1b2c32d21c308b\"\n },\n \"marketCapRank\": 408\n },\n {\n \"id\": \"kyve-network\",\n \"symbol\": \"kyve\",\n \"name\": \"KYVE Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 702\n },\n {\n \"id\": \"l7dex\",\n \"symbol\": \"lsd\",\n \"name\": \"L7DEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xcd1b51b87a8a7137d6421ba5a976225187a26777\"\n },\n \"marketCapRank\": 291\n },\n {\n \"id\": \"lambda\",\n \"symbol\": \"lamb\",\n \"name\": \"Lambda\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8971f9fd7196e5cee2c1032b50f656855af7dd26\"\n },\n \"marketCapRank\": 1238\n },\n {\n \"id\": \"leisuremeta\",\n \"symbol\": \"lm\",\n \"name\": \"LeisureMeta\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc064f4f215b6a1e4e7f39bd8530c4de0fc43ee9d\"\n },\n \"marketCapRank\": 1100\n },\n {\n \"id\": \"landshare\",\n \"symbol\": \"land\",\n \"name\": \"Landshare\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xa73164db271931cf952cbaeff9e8f5817b42fa5c\"\n },\n \"marketCapRank\": 1205\n },\n {\n \"id\": \"land-of-conquest-slg\",\n \"symbol\": \"slg\",\n \"name\": \"SLG.GAMES\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfc0b60e0df5dc9d4b72d957ca2d251cee308019a\"\n },\n \"marketCapRank\": 897\n },\n {\n \"id\": \"latoken\",\n \"symbol\": \"la\",\n \"name\": \"LA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe50365f5d679cb98a1dd62d6f6e58e59321bcddf\"\n },\n \"marketCapRank\": 2263\n },\n {\n \"id\": \"lattice-token\",\n \"symbol\": \"ltx\",\n \"name\": \"Lattice\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa393473d64d2f9f026b60b6df7859a689715d092\"\n },\n \"marketCapRank\": 1859\n },\n {\n \"id\": \"launchpool\",\n \"symbol\": \"lpool\",\n \"name\": \"Launchpool\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6149c26cd2f7b5ccdb32029af817123f6e37df5b\",\n \"binance-smart-chain\": \"0xcfb24d3c3767364391340a2e6d99c64f1cbd7a3d\"\n },\n \"marketCapRank\": 2213\n },\n {\n \"id\": \"law-blocks\",\n \"symbol\": \"lbt\",\n \"name\": \"Law Blocks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdc05940b2df33d6371201e7ae099ced4c363855dfe\"\n },\n \"marketCapRank\": 1679\n },\n {\n \"id\": \"unilayer\",\n \"symbol\": \"layer\",\n \"name\": \"UniLayer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0ff6ffcfda92c53f615a4a75d982f399c989366b\",\n \"binance-smart-chain\": \"0xc2c23a86def9e9f5972a633b3d25f7ecbfa5e575\",\n \"harmony-shard-0\": \"0xe88699ad32d5a610987a3ba8519c06289549cca7\"\n },\n \"marketCapRank\": 2337\n },\n {\n \"id\": \"lazio-fan-token\",\n \"symbol\": \"lazio\",\n \"name\": \"Lazio Fan Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x77d547256a2cd95f32f67ae0313e450ac200648d\"\n },\n \"marketCapRank\": 1007\n },\n {\n \"id\": \"lcx\",\n \"symbol\": \"lcx\",\n \"name\": \"LCX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x037a54aab062628c9bbae1fdb1583c195585fe41\"\n },\n \"marketCapRank\": 293\n },\n {\n \"id\": \"league-of-kingdoms\",\n \"symbol\": \"loka\",\n \"name\": \"League of Kingdoms\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x61e90a50137e1f645c9ef4a0d3a4f01477738406\"\n },\n \"marketCapRank\": 782\n },\n {\n \"id\": \"leash\",\n \"symbol\": \"leash\",\n \"name\": \"Doge Killer\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x27c70cd1946795b66be9d954418546998b546634\"\n },\n \"marketCapRank\": 691\n },\n {\n \"id\": \"leeds-united-fan-token\",\n \"symbol\": \"lufc\",\n \"name\": \"Leeds United Fan Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xf67a8a4299f7ebf0c58dbfb38941d0867f300c30\"\n },\n \"marketCapRank\": 2237\n },\n {\n \"id\": \"leo-token\",\n \"symbol\": \"leo\",\n \"name\": \"LEO Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2af5d2ad76741191d15dfe7bf6ac92d4bd912ca3\",\n \"sora\": \"0x009e199267a6a2c8ae075bb8d4c40ee8d05c1b769085ee59ce98e50c2b2d8756\"\n },\n \"marketCapRank\": 25\n },\n {\n \"id\": \"leox\",\n \"symbol\": \"leox\",\n \"name\": \"LEOX\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa444ec96ee01bb219a44b285de47bf33c3447ad5\"\n },\n \"marketCapRank\": 927\n },\n {\n \"id\": \"level\",\n \"symbol\": \"lvl\",\n \"name\": \"Level\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb64e280e9d1b5dbec4accedb2257a87b400db149\",\n \"arbitrum-one\": \"0xb64e280e9d1b5dbec4accedb2257a87b400db149\"\n },\n \"marketCapRank\": 1886\n },\n {\n \"id\": \"lever\",\n \"symbol\": \"lever\",\n \"name\": \"LeverFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4b5f49487ea7b3609b1ad05459be420548789f1f\"\n },\n \"marketCapRank\": 599\n },\n {\n \"id\": \"leverj-gluon\",\n \"symbol\": \"l2\",\n \"name\": \"Leverj Gluon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbbff34e47e559ef680067a6b1c980639eeb64d24\"\n },\n \"marketCapRank\": 2833\n },\n {\n \"id\": \"lgcy-network\",\n \"symbol\": \"lgcy\",\n \"name\": \"LGCY Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xae697f994fc5ebc000f8e22ebffee04612f98a0d\"\n },\n \"marketCapRank\": 2132\n },\n {\n \"id\": \"libra-incentix\",\n \"symbol\": \"lixx\",\n \"name\": \"Libra Incentix\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x16530b5c105fcb7c50bc84a039a0a4ed806a5124\"\n },\n \"marketCapRank\": 1050\n },\n {\n \"id\": \"lybra-finance\",\n \"symbol\": \"lbr\",\n \"name\": \"Lybra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xed1167b6dc64e8a366db86f2e952a482d0981ebd\",\n \"arbitrum-one\": \"0xa23e44aea714fbbc08ef28340d78067b9a8cad73\"\n },\n \"marketCapRank\": 1319\n },\n {\n \"id\": \"libre\",\n \"symbol\": \"libre\",\n \"name\": \"Libre\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2207\n },\n {\n \"id\": \"lido-dao\",\n \"symbol\": \"ldo\",\n \"name\": \"Lido DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5a98fcbea516cf06857215779fd812ca3bef1b32\",\n \"optimistic-ethereum\": \"0xfdb794692724153d1488ccdbe0c56c252596735f\",\n \"polygon-pos\": \"0xc3c7d422809852031b44ab29eec9f1eff2a58756\",\n \"arbitrum-one\": \"0x13ad51ed4f1b7e9dc168d8a00cb3f4ddd85efa60\"\n },\n \"marketCapRank\": 55\n },\n {\n \"id\": \"lido-staked-sol\",\n \"symbol\": \"stsol\",\n \"name\": \"Lido Staked SOL\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj\"\n },\n \"marketCapRank\": 122\n },\n {\n \"id\": \"lif3\",\n \"symbol\": \"lif3\",\n \"name\": \"LIF3 (OLD)\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0xbf60e7414ef09026733c1e7de72e7393888c64da\",\n \"tombchain\": \"0x4200000000000000000000000000000000000108\"\n },\n \"marketCapRank\": 857\n },\n {\n \"id\": \"limewire-token\",\n \"symbol\": \"lmwr\",\n \"name\": \"LimeWire\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x628a3b2e302c7e896acc432d2d0dd22b6cb9bc88\",\n \"binance-smart-chain\": \"0x307bc76e3d59ed73886a9cf9360a9286f6281ba7\"\n },\n \"marketCapRank\": 602\n },\n {\n \"id\": \"linear\",\n \"symbol\": \"lina\",\n \"name\": \"Linear\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3e9bc21c9b189c09df3ef1b824798658d5011937\",\n \"harmony-shard-0\": \"0x946c8286bd9b52b81f681903210e1a57872fdd85\",\n \"binance-smart-chain\": \"0x762539b45a1dcce3d36d080f74d1aed37844b878\"\n },\n \"marketCapRank\": 579\n },\n {\n \"id\": \"linda-2\",\n \"symbol\": \"linda\",\n \"name\": \"Linda\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"linea\": \"0x82cc61354d78b846016b559e3ccd766fa7e793d5\",\n \"ethereum\": \"0x039d2e8f097331278bd6c1415d839310e0d5ece4\",\n \"binance-smart-chain\": \"0x039d2e8f097331278bd6c1415d839310e0d5ece4\",\n \"avalanche\": \"0x039d2e8f097331278bd6c1415d839310e0d5ece4\",\n \"polygon-pos\": \"0x039d2e8f097331278bd6c1415d839310e0d5ece4\",\n \"arbitrum-one\": \"0x039d2e8f097331278bd6c1415d839310e0d5ece4\"\n },\n \"marketCapRank\": 2085\n },\n {\n \"id\": \"lingose\",\n \"symbol\": \"ling\",\n \"name\": \"Lingose\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1072\n },\n {\n \"id\": \"link\",\n \"symbol\": \"fnsa\",\n \"name\": \"FINSCHIA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 286\n },\n {\n \"id\": \"linkeye\",\n \"symbol\": \"let\",\n \"name\": \"Linkeye\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfa3118b34522580c35ae27f6cf52da1dbb756288\"\n },\n \"marketCapRank\": 2586\n },\n {\n \"id\": \"liquiddriver\",\n \"symbol\": \"lqdr\",\n \"name\": \"LiquidDriver\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x816e21c33fa5f8440ebcdf6e01d39314541bea72\",\n \"fantom\": \"0x4b6b3d425f82248996d77ecc3f3df1e500aac1db\",\n \"kava\": \"0x332c72dd7e77070740f01d2d35851c461585d5d0\",\n \"polygon-pos\": \"0x0294d8eb7857d43feb1210db72456d41481f9ede\",\n \"binance-smart-chain\": \"0x4b6b3d425f82248996d77ecc3f3df1e500aac1db\"\n },\n \"marketCapRank\": 2033\n },\n {\n \"id\": \"liquity\",\n \"symbol\": \"lqty\",\n \"name\": \"Liquity\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6dea81c8171d0ba574754ef6f8b412f2ed88c54d\",\n \"arbitrum-one\": \"0xfb9e5d956d889d91a82737b9bfcdac1dce3e1449\"\n },\n \"marketCapRank\": 411\n },\n {\n \"id\": \"liquity-usd\",\n \"symbol\": \"lusd\",\n \"name\": \"Liquity USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5f98805a4e8be255a32880fdec7f6728c6568ba0\",\n \"zksync\": \"0x503234f203fc7eb888eec8513210612a43cf6115\",\n \"optimistic-ethereum\": \"0xc40f949f8a4e094d1b49a23ea9241d289b7b2819\",\n \"arbitrum-one\": \"0x93b346b6bc2548da6a1e7d98e9a421b42541425b\",\n \"polygon-pos\": \"0x23001f892c0c82b79303edc9b9033cd190bb21c7\"\n },\n \"marketCapRank\": 467\n },\n {\n \"id\": \"lisk\",\n \"symbol\": \"lsk\",\n \"name\": \"Lisk\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 277\n },\n {\n \"id\": \"litentry\",\n \"symbol\": \"lit\",\n \"name\": \"Litentry\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb59490ab09a0f526cc7305822ac65f2ab12f9723\"\n },\n \"marketCapRank\": 581\n },\n {\n \"id\": \"litecoin-cash\",\n \"symbol\": \"lcc\",\n \"name\": \"Litecoin Cash\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1871\n },\n {\n \"id\": \"lithium-finance\",\n \"symbol\": \"lith\",\n \"name\": \"Lithium Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x188e817b02e635d482ae4d81e25dda98a97c4a42\"\n },\n \"marketCapRank\": 1355\n },\n {\n \"id\": \"litlab-games\",\n \"symbol\": \"litt\",\n \"name\": \"LitLab Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xcebef3df1f3c5bfd90fde603e71f31a53b11944d\"\n },\n \"marketCapRank\": 1316\n },\n {\n \"id\": \"luna-inu\",\n \"symbol\": \"linu\",\n \"name\": \"Luna Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x78132543d8e20d2417d8a07d9ae199d458a0d581\"\n },\n \"marketCapRank\": 1441\n },\n {\n \"id\": \"livepeer\",\n \"symbol\": \"lpt\",\n \"name\": \"Livepeer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x58b6a8a3302369daec383334672404ee733ab239\",\n \"arbitrum-one\": \"0x289ba1701c2f088cf0faf8b3705246331cb8a839\",\n \"harmony-shard-0\": \"0xbd3e698b51d340cc53b0cc549b598c13e0172b7c\"\n },\n \"marketCapRank\": 170\n },\n {\n \"id\": \"liza-2\",\n \"symbol\": \"liza\",\n \"name\": \"LIZA\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8b227d72570d3ead66014bca8305cbef7f90d1ee\"\n },\n \"marketCapRank\": 1495\n },\n {\n \"id\": \"localcoinswap\",\n \"symbol\": \"lcs\",\n \"name\": \"LocalCoinSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaa19961b6b858d9f18a115f25aa1d98abc1fdba8\"\n },\n \"marketCapRank\": 2050\n },\n {\n \"id\": \"lockchain\",\n \"symbol\": \"loc\",\n \"name\": \"LockTrip\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5e3346444010135322268a4630d2ed5f8d09446c\",\n \"hydra\": \"4ab26aaa1803daa638910d71075c06386e391147\"\n },\n \"marketCapRank\": 2036\n },\n {\n \"id\": \"lodestar\",\n \"symbol\": \"lode\",\n \"name\": \"Lodestar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xf19547f9ed24aa66b03c3a552d181ae334fbb8db\"\n },\n \"marketCapRank\": 2176\n },\n {\n \"id\": \"loki-network\",\n \"symbol\": \"oxen\",\n \"name\": \"Oxen\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1437\n },\n {\n \"id\": \"looksrare\",\n \"symbol\": \"looks\",\n \"name\": \"LooksRare\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf4d2888d29d722226fafa5d9b24f9164c092421e\"\n },\n \"marketCapRank\": 440\n },\n {\n \"id\": \"loom-network-new\",\n \"symbol\": \"loom\",\n \"name\": \"Loom Network (NEW)\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x42476f744292107e34519f9c357927074ea3f75d\",\n \"energi\": \"0xb506a79b296b78965f0a5c15e1474b026c23d9fa\"\n },\n \"marketCapRank\": 427\n },\n {\n \"id\": \"loopring\",\n \"symbol\": \"lrc\",\n \"name\": \"Loopring\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbbbbca6a901c926f240b89eacb641d8aec7aeafd\",\n \"energi\": \"0x193da10f8a969d4c081b9097b15337b1488cbbec\",\n \"arbitrum-one\": \"0x46d0ce7de6247b0a95f67b43b589b4041bae7fbe\"\n },\n \"marketCapRank\": 197\n },\n {\n \"id\": \"lords\",\n \"symbol\": \"lords\",\n \"name\": \"LORDS\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x686f2404e77ab0d9070a46cdfb0b7fecdd2318b0\",\n \"starknet\": \"0x0124aeb495b947201f5fac96fd1138e326ad86195b98df6dec9009158a533b49\"\n },\n \"marketCapRank\": 1032\n },\n {\n \"id\": \"lossless\",\n \"symbol\": \"lss\",\n \"name\": \"Lossless\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3b9be07d622accaed78f479bc0edabfd6397e320\",\n \"binance-smart-chain\": \"0xf7686f43591302cd9b4b9c4fe1291473fae7d9c9\"\n },\n \"marketCapRank\": 1227\n },\n {\n \"id\": \"loungem\",\n \"symbol\": \"lzm\",\n \"name\": \"LoungeM\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1920\n },\n {\n \"id\": \"lovely-inu-finance\",\n \"symbol\": \"lovely\",\n \"name\": \"Lovely Inu finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9e24415d1e549ebc626a13a482bb117a2b43e9cf\"\n },\n \"marketCapRank\": 1533\n },\n {\n \"id\": \"stader-ethx\",\n \"symbol\": \"ethx\",\n \"name\": \"Stader ETHx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa35b1b31ce002fbf2058d22f30f95d405200a15b\"\n },\n \"marketCapRank\": 211\n },\n {\n \"id\": \"lto-network\",\n \"symbol\": \"lto\",\n \"name\": \"LTO Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd01409314acb3b245cea9500ece3f6fd4d70ea30\",\n \"binance-smart-chain\": \"0x857b222fc79e1cbbf8ca5f78cb133d1b7cf34bbd\"\n },\n \"marketCapRank\": 487\n },\n {\n \"id\": \"lua-token\",\n \"symbol\": \"lua\",\n \"name\": \"LuaSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb1f66997a5760428d3a87d68b90bfe0ae64121cc\",\n \"tomochain\": \"0x7262fa193e9590b2e075c3c16170f3f2f32f5c74\"\n },\n \"marketCapRank\": 1528\n },\n {\n \"id\": \"luca\",\n \"symbol\": \"luca\",\n \"name\": \"LUCA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x51e6ac1533032e72e92094867fd5921e3ea1bfa0\"\n },\n \"marketCapRank\": 1702\n },\n {\n \"id\": \"lucidao\",\n \"symbol\": \"lcd\",\n \"name\": \"Lucidao\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xc2a45fe7d40bcac8369371b08419ddafd3131b4a\"\n },\n \"marketCapRank\": 1660\n },\n {\n \"id\": \"lucro\",\n \"symbol\": \"lcr\",\n \"name\": \"Lucro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x988f7c894e4001eeb7b570cde80dffe21cf7b6b9\"\n },\n \"marketCapRank\": 1784\n },\n {\n \"id\": \"lukso-token\",\n \"symbol\": \"lyxe\",\n \"name\": \"LUKSO [OLD]\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa8b919680258d369114910511cc87595aec0be6d\",\n \"harmony-shard-0\": \"0x8a8ca151562a68ed3732fd963ec4e0e713b39bb3\"\n },\n \"marketCapRank\": 628\n },\n {\n \"id\": \"lukso-token-2\",\n \"symbol\": \"lyx\",\n \"name\": \"LUKSO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 439\n },\n {\n \"id\": \"terra-luna\",\n \"symbol\": \"lunc\",\n \"name\": \"Terra Luna Classic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 125\n },\n {\n \"id\": \"lunr-token\",\n \"symbol\": \"lunr\",\n \"name\": \"LunarCrush\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"zilliqa\": \"zil1xxl6yp2twxvljdnn87g9fk7wykdrcv66xdy4rc\",\n \"stacks\": \"SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.token-slunr\",\n \"ethereum\": \"0xa87135285ae208e22068acdbff64b11ec73eaa5a\",\n \"polygon-pos\": \"0xbbfe0b60de96a189bf09079de86a2db7bf0c7883\",\n \"binance-smart-chain\": \"0x37807d4fbeb84124347b8899dd99616090d3e304\"\n },\n \"marketCapRank\": 1110\n },\n {\n \"id\": \"luxurious-pro-network-token\",\n \"symbol\": \"lpnt\",\n \"name\": \"Luxurious Pro Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6a4c76874e686a7d080d173987a35a9c48905583\"\n },\n \"marketCapRank\": 1657\n },\n {\n \"id\": \"lympo\",\n \"symbol\": \"lym\",\n \"name\": \"Lympo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5\"\n },\n \"marketCapRank\": 1942\n },\n {\n \"id\": \"lyra-finance\",\n \"symbol\": \"lyra\",\n \"name\": \"Lyra Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x01ba67aac7f75f647d94220cc98fb30fcc5105bf\",\n \"optimistic-ethereum\": \"0x50c5725949a6f0c72e6c4a641f24049a917db0cb\",\n \"arbitrum-one\": \"0x079504b86d38119f859c4194765029f692b7b7aa\"\n },\n \"marketCapRank\": 544\n },\n {\n \"id\": \"mad-meerkat-etf\",\n \"symbol\": \"metf\",\n \"name\": \"Mad Meerkat ETF\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0xb8df27c687c6af9afe845a2afad2d01e199f4878\"\n },\n \"marketCapRank\": 2282\n },\n {\n \"id\": \"mad-meerkat-optimizer\",\n \"symbol\": \"mmo\",\n \"name\": \"Mad Meerkat Optimizer\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"cronos\": \"0x50c0c5bda591bc7e89a342a3ed672fb59b3c46a7\"\n },\n \"marketCapRank\": 2716\n },\n {\n \"id\": \"musd\",\n \"symbol\": \"musd\",\n \"name\": \"mStable USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe2f2a5c287993345a840db3b0845fbc70f5935a5\"\n },\n \"marketCapRank\": 2075\n },\n {\n \"id\": \"magiccraft\",\n \"symbol\": \"mcrt\",\n \"name\": \"MagicCraft\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4b8285ab433d8f69cb48d5ad62b415ed1a221e4f\",\n \"fantom\": \"0xe705af5f63fcabdcdf5016aa838eaaac35d12890\",\n \"ethereum\": \"0xde16ce60804a881e9f8c4ebb3824646edecd478d\"\n },\n \"marketCapRank\": 1574\n },\n {\n \"id\": \"merit-circle\",\n \"symbol\": \"mc\",\n \"name\": \"Merit Circle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x949d48eca67b17269629c7194f4b727d4ef9e5d6\",\n \"binance-smart-chain\": \"0x949d48eca67b17269629c7194f4b727d4ef9e5d6\"\n },\n \"marketCapRank\": 550\n },\n {\n \"id\": \"magic-internet-money\",\n \"symbol\": \"mim\",\n \"name\": \"Magic Internet Money\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x99d8a9c45b2eca8864373a26d1459e3dff1e17f3\",\n \"blast\": \"0x76da31d7c9cbeae102aff34d3398bc450c8374c1\",\n \"fantom\": \"0x82f0b8b456c1a451378467398982d4834b6829c1\",\n \"kava\": \"0x471EE749bAl270eb4c1165B5AD95E614947f6fCeb\",\n \"avalanche\": \"0x130966628846bfd36ff31a822705796e8cb8c18d\",\n \"optimistic-ethereum\": \"0xb153fb3d196a8eb25522705560ac152eeec57901\",\n \"linea\": \"0xdd3b8084af79b9bae3d1b668c0de08ccc2c9429a\",\n \"polygon-pos\": \"0x49a0400587a7f65072c87c4910449fdcc5c47242\",\n \"base\": \"0x4a3a6dd60a34bb2aba60d73b4c88315e9ceb6a3d\",\n \"moonriver\": \"0x0cae51e1032e8461f4806e26332c030e34de3adb\",\n \"arbitrum-one\": \"0xfea7a6a0b346362bf88a9e4a88416b77a57d6c2a\",\n \"binance-smart-chain\": \"0xfe19f0b51438fd612f6fd59c1dbb3ea319f433ba\"\n },\n \"marketCapRank\": 723\n },\n {\n \"id\": \"magpie\",\n \"symbol\": \"mgp\",\n \"name\": \"Magpie\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd06716e1ff2e492cc5034c2e81805562dd3b45fa\",\n \"arbitrum-one\": \"0xa61f74247455a40b01b0559ff6274441fafa22a3\"\n },\n \"marketCapRank\": 925\n },\n {\n \"id\": \"mahadao\",\n \"symbol\": \"maha\",\n \"name\": \"MahaDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x745407c86df8db893011912d3ab28e68b62e49b0\",\n \"polygon-pos\": \"0xeb99748e91afca94a6289db3b02e7ef4a8f0a22d\",\n \"arbitrum-one\": \"0xedd6ca8a4202d4a36611e2fff109648c4863ae19\"\n },\n \"marketCapRank\": 1627\n },\n {\n \"id\": \"mimatic\",\n \"symbol\": \"mimatic\",\n \"name\": \"MAI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xa3fa99a148fa48d14ed51d610c367c61876997f1\",\n \"moonriver\": \"0x7f5a79576620c046a293f54ffcdbd8f2468174f1\",\n \"xdai\": \"0x3f56e0c36d275367b8c502090edf38289b3dea0d\",\n \"iotex\": \"0x3f56e0c36d275367b8c502090edf38289b3dea0d\",\n \"cronos\": \"0x2ae35c8e3d4bd57e8898ff7cd2bbff87166ef8cb\",\n \"metis-andromeda\": \"0xdfa46478f9e5ea86d57387849598dbfb2e964b02\",\n \"aurora\": \"0xdfa46478f9e5ea86d57387849598dbfb2e964b02\",\n \"harmony-shard-0\": \"0x3f56e0c36d275367b8c502090edf38289b3dea0d\",\n \"boba\": \"0x3f56e0c36d275367b8c502090edf38289b3dea0d\",\n \"moonbeam\": \"0xdfa46478f9e5ea86d57387849598dbfb2e964b02\",\n \"milkomeda-cardano\": \"0xb9c8f0d3254007ee4b98970b94544e473cd610ec\",\n \"syscoin\": \"0x2611fa1cae2a3e20ed47fb1b293437c14f41b00f\",\n \"klay-token\": \"0x3f56e0c36d275367b8c502090edf38289b3dea0d\",\n \"celo\": \"0xb9c8f0d3254007ee4b98970b94544e473cd610ec\",\n \"solana\": \"9mWRABuz2x6koTPCWiCPM49WUbcrNqGTHBV9T9k7y1o7\"\n },\n \"marketCapRank\": 1122\n },\n {\n \"id\": \"maiar-dex\",\n \"symbol\": \"mex\",\n \"name\": \"xExchange\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1008\n },\n {\n \"id\": \"maidsafecoin\",\n \"symbol\": \"emaid\",\n \"name\": \"MaidSafeCoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x329c6e459ffa7475718838145e5e85802db2a303\"\n },\n \"marketCapRank\": 1273\n },\n {\n \"id\": \"mainframe\",\n \"symbol\": \"mft\",\n \"name\": \"Mainframe\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdf2c7238198ad8b389666574f2d8bc411a4b7428\",\n \"energi\": \"0x9594e7431144e80178b1bc6849edcba7d2d5bb27\"\n },\n \"marketCapRank\": 526\n },\n {\n \"id\": \"maker\",\n \"symbol\": \"mkr\",\n \"name\": \"Maker\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2\",\n \"avalanche\": \"0x88128fd4b259552a9a1d457f435a6527aab72d42\",\n \"polygon-pos\": \"0x6f7c932e7684666c9fd1d44527765433e01ff61d\",\n \"energi\": \"0x050317d93f29d1ba5ff3eac3b8157fd4e345588d\",\n \"sora\": \"0x00ec184ef0b4bd955db05eea5a8489ae72888ab6e63682a15beca1cd39344c8f\"\n },\n \"marketCapRank\": 42\n },\n {\n \"id\": \"mancium\",\n \"symbol\": \"manc\",\n \"name\": \"Mancium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe0c05ec44775e4ad62cdc2eecdf337aa7a143363\"\n },\n \"marketCapRank\": 1520\n },\n {\n \"id\": \"mdex\",\n \"symbol\": \"mdx\",\n \"name\": \"Mdex (HECO)\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"huobi-token\": \"0x25d2e80cb6b86881fd7e07dd263fb79f4abe033c\"\n },\n \"marketCapRank\": 753\n },\n {\n \"id\": \"mangoman-intelligent\",\n \"symbol\": \"mmit\",\n \"name\": \"MangoMan Intelligent\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9767c8e438aa18f550208e6d1fdf5f43541cc2c8\"\n },\n \"marketCapRank\": 1443\n },\n {\n \"id\": \"mango-markets\",\n \"symbol\": \"mngo\",\n \"name\": \"Mango\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"MangoCzJ36AjZyKwVj3VnYU4GTonjfVEnJmvvWaxLac\",\n \"neon-evm\": \"0x6d12eaa69f8e4902d3f83d546b31f7318717014c\"\n },\n \"marketCapRank\": 1066\n },\n {\n \"id\": \"manifold-finance\",\n \"symbol\": \"fold\",\n \"name\": \"Manifold Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd084944d3c05cd115c09d072b9f44ba3e0e45921\"\n },\n \"marketCapRank\": 836\n },\n {\n \"id\": \"matrix-ai-network\",\n \"symbol\": \"man\",\n \"name\": \"Matrix AI Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1126\n },\n {\n \"id\": \"metastrike\",\n \"symbol\": \"mts\",\n \"name\": \"Metastrike\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x496cc0b4ee12aa2ac4c42e93067484e7ff50294b\"\n },\n \"marketCapRank\": 2036\n },\n {\n \"id\": \"mantle\",\n \"symbol\": \"mnt\",\n \"name\": \"Mantle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3c3a81e81dc49a522a592e7622a7e711c06bf354\",\n \"mantle\": \"0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000\"\n },\n \"marketCapRank\": 35\n },\n {\n \"id\": \"minu\",\n \"symbol\": \"minu\",\n \"name\": \"Minu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf48f91df403976060cc05dbbf8a0901b09fdefd4\"\n },\n \"marketCapRank\": 2024\n },\n {\n \"id\": \"mantra-dao\",\n \"symbol\": \"om\",\n \"name\": \"MANTRA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3593d125a4f7849a1b059e64f4517a86dd60c95d\",\n \"polygon-pos\": \"0xc3ec80343d2bae2f8e680fdadde7c17e71e114ea\",\n \"binance-smart-chain\": \"0xf78d2e7936f5fe18308a3b2951a93b6c4a41f5e2\"\n },\n \"marketCapRank\": 175\n },\n {\n \"id\": \"maple\",\n \"symbol\": \"mpl\",\n \"name\": \"Maple\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x33349b282065b0284d756f0577fb39c158f935e6\"\n },\n \"marketCapRank\": 386\n },\n {\n \"id\": \"maps\",\n \"symbol\": \"maps\",\n \"name\": \"MAPS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"MAPS41MDahZ9QdKXhVa4dWB9RuyfV4XqhyAZ8XcYepb\",\n \"energi\": \"0x0702bf2abbb53f8feb101a71199965b891dbae97\"\n },\n \"marketCapRank\": 2216\n },\n {\n \"id\": \"marblex\",\n \"symbol\": \"mbx\",\n \"name\": \"Marblex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf95a5532d67c944dfa7eddd2f8c358fe0dc7fac2\",\n \"klay-token\": \"0xd068c52d81f4409b9502da926ace3301cc41f623\",\n \"aptos\": \"0x665d06fcd9c94430099f82973f2a5e5f13142e42fa172e72ce14f51a64bd8ad9::coin_mbx::MBX\"\n },\n \"marketCapRank\": 393\n },\n {\n \"id\": \"marcopolo\",\n \"symbol\": \"map\",\n \"name\": \"MAP Protocol\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9e976f211daea0d652912ab99b0dc21a7fd728e4\"\n },\n \"marketCapRank\": 593\n },\n {\n \"id\": \"marinade\",\n \"symbol\": \"mnde\",\n \"name\": \"Marinade\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey\"\n },\n \"marketCapRank\": 597\n },\n {\n \"id\": \"market-making-pro\",\n \"symbol\": \"mmpro\",\n \"name\": \"Market Making Pro\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6067490d05f3cf2fdffc0e353b1f5fd6e5ccdf70\"\n },\n \"marketCapRank\": 1568\n },\n {\n \"id\": \"marlin\",\n \"symbol\": \"pond\",\n \"name\": \"Marlin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x57b946008913b82e4df85f501cbaed910e58d26c\",\n \"arbitrum-one\": \"0xda0a57b710768ae17941a9fa33f8b720c8bd9ddd\"\n },\n \"marketCapRank\": 284\n },\n {\n \"id\": \"mars4\",\n \"symbol\": \"mars4\",\n \"name\": \"MARS4\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x16cda4028e9e872a38acb903176719299beaed87\",\n \"binance-smart-chain\": \"0x9cd9c5a44cb8fab39b2ee3556f5c439e65e4fddd\"\n },\n \"marketCapRank\": 1672\n },\n {\n \"id\": \"marsdao\",\n \"symbol\": \"mdao\",\n \"name\": \"MarsDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x60322971a672b81bcce5947706d22c19daecf6fb\"\n },\n \"marketCapRank\": 1302\n },\n {\n \"id\": \"mask-network\",\n \"symbol\": \"mask\",\n \"name\": \"Mask Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x69af81e73a73b40adf4f3d4223cd9b1ece623074\",\n \"energi\": \"0x746514e2c7d91e1e84c20c54d1f6f537b28a7d8e\",\n \"polygon-pos\": \"0x2b9e7ccdf0f4e5b24757c1e1a80e311e34cb10c7\",\n \"binance-smart-chain\": \"0x2ed9a5c8c13b93955103b9a7c167b67ef4d568a3\"\n },\n \"marketCapRank\": 180\n },\n {\n \"id\": \"masq\",\n \"symbol\": \"masq\",\n \"name\": \"MASQ\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x06f3c323f0238c72bf35011071f2b5b7f43a054c\",\n \"polygon-pos\": \"0xee9a352f6aac4af1a5b9f467f6a93e0ffbe9dd35\",\n \"tomochain\": \"0xea478716a70dc086707e23de17965acb5c7b7840\"\n },\n \"marketCapRank\": 1514\n },\n {\n \"id\": \"maverick-protocol\",\n \"symbol\": \"mav\",\n \"name\": \"Maverick Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7448c7456a97769f6cd04f1e83a4a23ccdc46abd\",\n \"zksync\": \"0x787c09494ec8bcb24dcaf8659e7d5d69979ee508\",\n \"binance-smart-chain\": \"0xd691d9a68c887bdf34da8c36f63487333acfd103\"\n },\n \"marketCapRank\": 390\n },\n {\n \"id\": \"mass-vehicle-ledger\",\n \"symbol\": \"mvl\",\n \"name\": \"MVL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa849eaae994fb86afa73382e9bd88c2b6b18dc71\",\n \"binance-smart-chain\": \"0x5f588efaf8eb57e3837486e834fc5a4e07768d98\"\n },\n \"marketCapRank\": 367\n },\n {\n \"id\": \"materium\",\n \"symbol\": \"mtrm\",\n \"name\": \"Materium\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcd17fa52528f37facb3028688e62ec82d9417581\"\n },\n \"marketCapRank\": 2088\n },\n {\n \"id\": \"math\",\n \"symbol\": \"math\",\n \"name\": \"MATH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x08d967bb0134f2d07f7cfb6e246680c53927dd30\",\n \"arbitrum-one\": \"0x99f40b01ba9c469193b360f72740e416b17ac332\",\n \"binance-smart-chain\": \"0xf218184af829cf2b0019f8e6f0b2423498a36983\"\n },\n \"marketCapRank\": 915\n },\n {\n \"id\": \"metavault-trade\",\n \"symbol\": \"mvx\",\n \"name\": \"Metavault Trade\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x2760e46d9bb43dafcbecaad1f64b93207f9f0ed7\",\n \"linea\": \"0x0018d96c579121a94307249d47f053e2d687b5e7\",\n \"scroll\": \"0x0018d96c579121a94307249d47f053e2d687b5e7\",\n \"zksync\": \"0xc8ac6191cdc9c7bf846ad6b52aaaa7a0757ee305\"\n },\n \"marketCapRank\": 1898\n },\n {\n \"id\": \"maxity\",\n \"symbol\": \"max\",\n \"name\": \"Maxity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x63f7b1b538a78cb699e5399621b3d2e047c40de4\"\n },\n \"marketCapRank\": 1764\n },\n {\n \"id\": \"mbd-financials\",\n \"symbol\": \"mbd\",\n \"name\": \"MBD Financials\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf899e83e6c6df1a0d4887cf0209193aa97236322\"\n },\n \"marketCapRank\": 1727\n },\n {\n \"id\": \"mcdex\",\n \"symbol\": \"mcb\",\n \"name\": \"MUX Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4e352cf164e64adcbad318c3a1e222e9eba4ce42\",\n \"arbitrum-one\": \"0x4e352cf164e64adcbad318c3a1e222e9eba4ce42\",\n \"binance-smart-chain\": \"0x5fe80d2cd054645b9419657d3d10d26391780a7b\"\n },\n \"marketCapRank\": 809\n },\n {\n \"id\": \"mch-coin\",\n \"symbol\": \"mchc\",\n \"name\": \"MCH Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd69f306549e9d96f183b1aeca30b8f4353c2ecc3\",\n \"polygon-pos\": \"0xee7666aacaefaa6efeef62ea40176d3eb21953b9\"\n },\n \"marketCapRank\": 2065\n },\n {\n \"id\": \"mcontent\",\n \"symbol\": \"mcontent\",\n \"name\": \"MContent\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x799e1cf88a236e42b4a87c544a22a94ae95a6910\",\n \"ethereum\": \"0xd3c51de3e6dd9b53d7f37699afb3ee3bf9b9b3f4\"\n },\n \"marketCapRank\": 1662\n },\n {\n \"id\": \"mcpepe-s\",\n \"symbol\": \"pepes\",\n \"name\": \"McPepe's\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6bf765c43030387a983f429c1438e9d2025b7e12\"\n },\n \"marketCapRank\": 2582\n },\n {\n \"id\": \"meanfi\",\n \"symbol\": \"mean\",\n \"name\": \"Mean DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"MEANeD3XDdUmNMsRGjASkSWdC8prLYsoRJ61pPeHctD\",\n \"ethereum\": \"0x9b25889c493ae6df34ceef1ecb10d77c1ba73318\",\n \"polygon-pos\": \"0x4867b60ad7c6adc98653f661f1aea31740986ba5\",\n \"binance-smart-chain\": \"0x6c9297be2e3ce9c10c480a25b7157a43fd992942\"\n },\n \"marketCapRank\": 1685\n },\n {\n \"id\": \"measurable-data-token\",\n \"symbol\": \"mdt\",\n \"name\": \"Measurable Data\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x814e0908b12a99fecf5bc101bb5d0b8b5cdf7d26\"\n },\n \"marketCapRank\": 656\n },\n {\n \"id\": \"media-network\",\n \"symbol\": \"media\",\n \"name\": \"Media Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"ETAtLmCmsoiEEKfNrHKJ2kYy3MoABhU6NQvpSfij5tDs\",\n \"ethereum\": \"0xdb726152680ece3c9291f1016f1d36f3995f6941\",\n \"base\": \"0x6e51b3a19f114013e5dc09d0477a536c7e4e0207\"\n },\n \"marketCapRank\": 1771\n },\n {\n \"id\": \"medibloc\",\n \"symbol\": \"med\",\n \"name\": \"Medibloc\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 427\n },\n {\n \"id\": \"medicinal-pork\",\n \"symbol\": \"mork\",\n \"name\": \"Medicinal Pork\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": null\n },\n {\n \"id\": \"meeds-dao\",\n \"symbol\": \"meed\",\n \"name\": \"Meeds DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8503a7b00b4b52692cc6c14e5b96f142e30547b7\",\n \"polygon-pos\": \"0x6aca77cf3bab0c4e8210a09b57b07854a995289a\"\n },\n \"marketCapRank\": 1934\n },\n {\n \"id\": \"meld-2\",\n \"symbol\": \"meld\",\n \"name\": \"MELD\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"cardano\": \"a2944573e99d2ed3055b808eaa264f0bf119e01fc6b18863067c63e44d454c44\",\n \"avalanche\": \"0x333000333b26ee30214b4af6419d9ab07a450400\",\n \"ethereum\": \"0x333000333b26ee30214b4af6419d9ab07a450400\"\n },\n \"marketCapRank\": 590\n },\n {\n \"id\": \"melon\",\n \"symbol\": \"mln\",\n \"name\": \"Enzyme\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xec67005c4e498ec7f55e092bd1d35cbc47c91892\",\n \"polygon-pos\": \"0xa9f37d84c856fda3812ad0519dad44fa0a3fe207\"\n },\n \"marketCapRank\": 914\n },\n {\n \"id\": \"meme-ai-coin\",\n \"symbol\": \"memeai\",\n \"name\": \"Meme AI Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x695d38eb4e57e0f137e36df7c1f0f2635981246b\"\n },\n \"marketCapRank\": 1774\n },\n {\n \"id\": \"memecoin-2\",\n \"symbol\": \"meme\",\n \"name\": \"Memecoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb131f4a55907b10d1f0a50d8ab8fa09ec342cd74\"\n },\n \"marketCapRank\": 169\n },\n {\n \"id\": \"meridian-mst\",\n \"symbol\": \"mst\",\n \"name\": \"Meridian MST\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"base\": \"0x2f3b1a07e3efb1fcc64bd09b86bd0fa885d93552\"\n },\n \"marketCapRank\": 2663\n },\n {\n \"id\": \"messier\",\n \"symbol\": \"m87\",\n \"name\": \"MESSIER\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x80122c6a83c8202ea365233363d3f4837d13e888\"\n },\n \"marketCapRank\": 1724\n },\n {\n \"id\": \"meta\",\n \"symbol\": \"mta\",\n \"name\": \"mStable Governance: Meta\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa3bed4e1c75d00fa6f4e5e6922db7261b5e9acd2\",\n \"optimistic-ethereum\": \"0x929b939f8524c3be977af57a4a0ad3fb1e374b50\",\n \"polygon-pos\": \"0xf501dd45a1198c2e1b5aef5314a68b9006d842e0\"\n },\n \"marketCapRank\": 2478\n },\n {\n \"id\": \"meta-apes-peel\",\n \"symbol\": \"peel\",\n \"name\": \"Meta Apes PEEL\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x734548a9e43d2d564600b1b2ed5be9c2b911c6ab\"\n },\n \"marketCapRank\": 1868\n },\n {\n \"id\": \"metacade\",\n \"symbol\": \"mcade\",\n \"name\": \"Metacade\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xed328e9c1179a30ddc1e7595e036aed8760c22af\"\n },\n \"marketCapRank\": 873\n },\n {\n \"id\": \"metafighter\",\n \"symbol\": \"mf\",\n \"name\": \"MetaFighter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbb6cdedac5cab4a420211a4a8e8b5dca879b31de\"\n },\n \"marketCapRank\": 2479\n },\n {\n \"id\": \"metal\",\n \"symbol\": \"mtl\",\n \"name\": \"Metal DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf433089366899d83a9f26a773d59ec7ecf30355e\",\n \"energi\": \"0xd2d28530a79634423154c1fd5bdb7c1b0216cd1a\"\n },\n \"marketCapRank\": 425\n },\n {\n \"id\": \"million\",\n \"symbol\": \"mm\",\n \"name\": \"Million\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b4c7a5e3f0b99fcd83e9c089bddd6c7fce5c611\",\n \"binance-smart-chain\": \"0xbf05279f9bf1ce69bbfed670813b7e431142afa4\",\n \"tomochain\": \"0x0f320856fa4bc7e4030a6ab989d494c5e4d58308\"\n },\n \"marketCapRank\": 2347\n },\n {\n \"id\": \"metaplex\",\n \"symbol\": \"mplx\",\n \"name\": \"Metaplex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"METAewgxyPbgwsseH8T16a39CQ5VyVxZi9zXiDPY18m\"\n },\n \"marketCapRank\": 473\n },\n {\n \"id\": \"metars-genesis\",\n \"symbol\": \"mrs\",\n \"name\": \"Metars Genesis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x238d02ee3f80fbf5e381f049616025c186889b68\"\n },\n \"marketCapRank\": 417\n },\n {\n \"id\": \"thunder-token\",\n \"symbol\": \"tt\",\n \"name\": \"ThunderCore\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1e053d89e08c24aa2ce5c5b4206744dc2d7bd8f5\"\n },\n \"marketCapRank\": 674\n },\n {\n \"id\": \"terracoin\",\n \"symbol\": \"trc\",\n \"name\": \"Terracoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1395\n },\n {\n \"id\": \"metavault-dao\",\n \"symbol\": \"mvd\",\n \"name\": \"Metavault DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x788b6d2b37aa51d916f2837ae25b05f0e61339d1\",\n \"arbitrum-one\": \"0x15a808ed3846d25e88ae868de79f1bcb1ac382b5\"\n },\n \"marketCapRank\": 2603\n },\n {\n \"id\": \"metaverse-etp\",\n \"symbol\": \"etp\",\n \"name\": \"Metaverse ETP\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2358\n },\n {\n \"id\": \"metaverse-index\",\n \"symbol\": \"mvi\",\n \"name\": \"Metaverse Index\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x72e364f2abdc788b7e918bc238b21f109cd634d7\",\n \"polygon-pos\": \"0xfe712251173a2cd5f5be2b46bb528328ea3565e1\"\n },\n \"marketCapRank\": 1587\n },\n {\n \"id\": \"metaverse-network-pioneer\",\n \"symbol\": \"neer\",\n \"name\": \"MNet Pioneer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1872\n },\n {\n \"id\": \"metaverser\",\n \"symbol\": \"mtvt\",\n \"name\": \"Metaverser\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb92c5e0135a510a4a3a8803f143d2cb085bbaf73\"\n },\n \"marketCapRank\": 2435\n },\n {\n \"id\": \"metavpad\",\n \"symbol\": \"metav\",\n \"name\": \"MetaVPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x62858686119135cc00c4a3102b436a0eb314d402\"\n },\n \"marketCapRank\": 2381\n },\n {\n \"id\": \"metronome\",\n \"symbol\": \"met\",\n \"name\": \"Metronome\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2ebd53d035150f328bd754d6dc66b99b0edb89aa\"\n },\n \"marketCapRank\": 1553\n },\n {\n \"id\": \"meter\",\n \"symbol\": \"mtrg\",\n \"name\": \"Meter Governance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"meter\": \"0x228ebbee999c6a7ad74a6130e81b12f9fe237ba3\",\n \"binance-smart-chain\": \"0xbd2949f67dcdc549c6ebe98696449fa79d988a9f\",\n \"theta\": \"0xbd2949f67dcdc549c6ebe98696449fa79d988a9f\"\n },\n \"marketCapRank\": 626\n },\n {\n \"id\": \"metfi-2\",\n \"symbol\": \"metfi\",\n \"name\": \"MetFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x3e7f1039896454b9cb27c53cc7383e1ab9d9512a\"\n },\n \"marketCapRank\": 1875\n },\n {\n \"id\": \"metis-token\",\n \"symbol\": \"metis\",\n \"name\": \"Metis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9e32b13ce7f2e80a01932b42553652e053d6ed8e\",\n \"metis-andromeda\": \"0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000\"\n },\n \"marketCapRank\": 186\n },\n {\n \"id\": \"mettalex\",\n \"symbol\": \"mtlx\",\n \"name\": \"Mettalex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2e1e15c44ffe4df6a0cb7371cd00d5028e571d14\",\n \"binance-smart-chain\": \"0x5921dee8556c4593eefcfad3ca5e2f618606483b\"\n },\n \"marketCapRank\": 1191\n },\n {\n \"id\": \"microvisionchain\",\n \"symbol\": \"space\",\n \"name\": \"MicrovisionChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 736\n },\n {\n \"id\": \"milady-meme-coin\",\n \"symbol\": \"ladys\",\n \"name\": \"Milady Meme Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x12970e6868f88f6557b76120662c1b3e50a646bf\",\n \"arbitrum-one\": \"0x3b60ff35d3f7f62d636b067dd0dc0dfdad670e4e\"\n },\n \"marketCapRank\": 315\n },\n {\n \"id\": \"milk-alliance\",\n \"symbol\": \"mlk\",\n \"name\": \"MiL.k Alliance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 430\n },\n {\n \"id\": \"mimo-parallel-governance-token\",\n \"symbol\": \"mimo\",\n \"name\": \"Mimo Governance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x90b831fa3bebf58e9744a14d638e25b4ee06f9bc\",\n \"fantom\": \"0x1d1764f04de29da6b90ffbef372d1a45596c4855\",\n \"polygon-pos\": \"0xadac33f543267c4d59a8c299cf804c303bc3e4ac\"\n },\n \"marketCapRank\": 1672\n },\n {\n \"id\": \"mimblewimblecoin\",\n \"symbol\": \"mwc\",\n \"name\": \"MimbleWimbleCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 462\n },\n {\n \"id\": \"mina-protocol\",\n \"symbol\": \"mina\",\n \"name\": \"Mina Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 90\n },\n {\n \"id\": \"minativerse\",\n \"symbol\": \"mntc\",\n \"name\": \"MINATIVERSE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xe4e11e02aa14c7f24db749421986eaec1369e8c9\"\n },\n \"marketCapRank\": 1601\n },\n {\n \"id\": \"mind-language\",\n \"symbol\": \"mnd\",\n \"name\": \"Mind\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0dd6dd7775e93eb842db0aa142c9c581031ed3b\"\n },\n \"marketCapRank\": 1472\n },\n {\n \"id\": \"mineable\",\n \"symbol\": \"mnb\",\n \"name\": \"Mineable\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x42b91f1d05afea671a2da3c780eda2abf0a2a366\"\n },\n \"marketCapRank\": 3384\n },\n {\n \"id\": \"mineral\",\n \"symbol\": \"mnr\",\n \"name\": \"Mineral\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x27dcd181459bcddc63c37bab1e404a313c0dfd79\"\n },\n \"marketCapRank\": 2078\n },\n {\n \"id\": \"minswap\",\n \"symbol\": \"min\",\n \"name\": \"Minswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cardano\": \"29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6\"\n },\n \"marketCapRank\": 828\n },\n {\n \"id\": \"minted\",\n \"symbol\": \"mtd\",\n \"name\": \"Minted\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0x0224010ba2d567ffa014222ed960d1fa43b8c8e1\",\n \"ethereum\": \"0x809e130e10e787139c54e1d12d3d1971b7a675bf\"\n },\n \"marketCapRank\": 1475\n },\n {\n \"id\": \"mintlayer\",\n \"symbol\": \"ml\",\n \"name\": \"Mintlayer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x059956483753947536204e89bfad909e1a434cc6\"\n },\n \"marketCapRank\": 839\n },\n {\n \"id\": \"minto\",\n \"symbol\": \"btcmt\",\n \"name\": \"Minto\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"huobi-token\": \"0x410a56541bd912f9b60943fcb344f1e3d6f09567\",\n \"binance-smart-chain\": \"0x410a56541bd912f9b60943fcb344f1e3d6f09567\"\n },\n \"marketCapRank\": 1888\n },\n {\n \"id\": \"mirror-protocol\",\n \"symbol\": \"mir\",\n \"name\": \"Mirror Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x09a3ecafa817268f77be1283176b946c4ff2e608\",\n \"energi\": \"0x7e58cef7c589e0e1771b9c049cba313fdec31976\",\n \"binance-smart-chain\": \"0x5b6dcf557e2abe2323c48445e8cc948910d8c2c9\",\n \"terra\": \"terra15gwkyepfc6xgca5t5zefzwy42uts8l2m4g40k6\"\n },\n \"marketCapRank\": 1424\n },\n {\n \"id\": \"mixmob\",\n \"symbol\": \"mxm\",\n \"name\": \"MixMob\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"H53UGEyBrB9easo9ego8yYk7o4Zq1G5cCtkxD3E3hZav\"\n },\n \"marketCapRank\": 1458\n },\n {\n \"id\": \"mizar\",\n \"symbol\": \"mzr\",\n \"name\": \"Mizar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xbbea044f9e7c0520195e49ad1e561572e7e1b948\"\n },\n \"marketCapRank\": 1998\n },\n {\n \"id\": \"mmfinance\",\n \"symbol\": \"mmf\",\n \"name\": \"MMFinance (Cronos)\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"cronos\": \"0x97749c9b61f878a880dfe312d2594ae07aed7656\"\n },\n \"marketCapRank\": 1749\n },\n {\n \"id\": \"mobius\",\n \"symbol\": \"mobi\",\n \"name\": \"Mobius\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"stellar\": \"OBI-GA6HCMBLTZS5VYYBCATRBRZ3BZJMAFUDKYYF6AH6MVCMGWMRDNSWJPIH\"\n },\n \"marketCapRank\": 1774\n },\n {\n \"id\": \"mobox\",\n \"symbol\": \"mbox\",\n \"name\": \"Mobox\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x3203c9e46ca618c8c1ce5dc67e7e9d75f5da2377\"\n },\n \"marketCapRank\": 457\n },\n {\n \"id\": \"moby\",\n \"symbol\": \"moby\",\n \"name\": \"Moby\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x40a7df3df8b56147b781353d379cb960120211d7\"\n },\n \"marketCapRank\": 1215\n },\n {\n \"id\": \"mochi-thecatcoin\",\n \"symbol\": \"mochi\",\n \"name\": \"Mochi\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"base\": \"0xf6e932ca12afa26665dc4dde7e27be02a7c02e50\"\n },\n \"marketCapRank\": 734\n },\n {\n \"id\": \"modefi\",\n \"symbol\": \"mod\",\n \"name\": \"Modefi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xea1ea0972fa092dd463f2968f9bb51cc4c981d71\",\n \"fantom\": \"0xe64b9fd040d1f9d4715c645e0d567ef69958d3d9\",\n \"binance-smart-chain\": \"0xd4fbc57b6233f268e7fba3b66e62719d74deecbc\",\n \"polygon-pos\": \"0x8346ab8d5ea7a9db0209aed2d1806afa0e2c4c21\"\n },\n \"marketCapRank\": 2482\n },\n {\n \"id\": \"moe-3\",\n \"symbol\": \"moe\",\n \"name\": \"MOE\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"mantle\": \"0x4515a45337f461a11ff0fe8abf3c606ae5dc00c9\"\n },\n \"marketCapRank\": 1591\n },\n {\n \"id\": \"mog-coin\",\n \"symbol\": \"mog\",\n \"name\": \"Mog Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaaee1a9723aadb7afa2810263653a34ba2c21c7a\"\n },\n \"marketCapRank\": 270\n },\n {\n \"id\": \"stargaze\",\n \"symbol\": \"stars\",\n \"name\": \"Stargaze\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/987C17B11ABC2B20019178ACE62929FE9840202CE79498E29FE8E5CB02B7C0A4\",\n \"evmos\": \"0x5ad523d94efb56c400941eb6f34393b84c75ba39\"\n },\n \"marketCapRank\": 653\n },\n {\n \"id\": \"selfkey\",\n \"symbol\": \"key\",\n \"name\": \"SelfKey\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4cc19356f2d37338b9802aa8e8fc58b0373296e7\",\n \"polygon-pos\": \"0x32dc2dd3c2be453a369625e6fe0e438aed814919\"\n },\n \"marketCapRank\": 660\n },\n {\n \"id\": \"monavale\",\n \"symbol\": \"mona\",\n \"name\": \"Monavale\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x275f5ad03be0fa221b4c6649b8aee09a42d9412a\",\n \"polygon-pos\": \"0x6968105460f67c3bf751be7c15f92f5286fd0ce5\"\n },\n \"marketCapRank\": 2327\n },\n {\n \"id\": \"monero\",\n \"symbol\": \"xmr\",\n \"name\": \"Monero\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 57\n },\n {\n \"id\": \"monetha\",\n \"symbol\": \"mth\",\n \"name\": \"Monetha\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaf4dce16da2877f8c9e00544c93b62ac40631f16\"\n },\n \"marketCapRank\": 2675\n },\n {\n \"id\": \"mossland\",\n \"symbol\": \"moc\",\n \"name\": \"Mossland\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x865ec58b06bf6305b886793aa20a2da31d034e68\"\n },\n \"marketCapRank\": 737\n },\n {\n \"id\": \"polymath\",\n \"symbol\": \"poly\",\n \"name\": \"Polymath\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9992ec3cf6a55b00978cddf2b27bc6882d88d1ec\",\n \"energi\": \"0xe99bbd3b25a014aac93127cf868d3de07386c4dd\"\n },\n \"marketCapRank\": 540\n },\n {\n \"id\": \"moonbeam\",\n \"symbol\": \"glmr\",\n \"name\": \"Moonbeam\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 215\n },\n {\n \"id\": \"woof-token\",\n \"symbol\": \"woof\",\n \"name\": \"WOOF\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"9nEqaUcb16sQ3Tn1psbkWqyhPdLmfHWjKGymREjsAgTE\"\n },\n \"marketCapRank\": 2172\n },\n {\n \"id\": \"moonedge\",\n \"symbol\": \"mooned\",\n \"name\": \"MoonEdge\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x7e4c577ca35913af564ee2a24d882a4946ec492b\"\n },\n \"marketCapRank\": 2107\n },\n {\n \"id\": \"moonriver\",\n \"symbol\": \"movr\",\n \"name\": \"Moonriver\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"moonriver\": \"0x98878b06940ae243284ca214f92bb71a2b032b8a\",\n \"meter\": \"0xb158870beb809ad955bf56065c5c10d7fd957cc0\"\n },\n \"marketCapRank\": 352\n },\n {\n \"id\": \"moonstarter\",\n \"symbol\": \"mnst\",\n \"name\": \"MoonStarter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6a6ccf15b38da4b5b0ef4c8fe9fefcb472a893f9\"\n },\n \"marketCapRank\": 2455\n },\n {\n \"id\": \"moon-tropica\",\n \"symbol\": \"cah\",\n \"name\": \"Moon Tropica\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8e0e57dcb1ce8d9091df38ec1bfc3b224529754a\"\n },\n \"marketCapRank\": 544\n },\n {\n \"id\": \"moonwell-artemis\",\n \"symbol\": \"well\",\n \"name\": \"Moonwell\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"moonbeam\": \"0x511ab53f793683763e5a8829738301368a2411e3\",\n \"base\": \"0xff8adec2221f9f4d8dfbafa6b9a297d17603493d\"\n },\n \"marketCapRank\": 549\n },\n {\n \"id\": \"morpheus-network\",\n \"symbol\": \"mnw\",\n \"name\": \"Morpheus Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd3e4ba569045546d09cf021ecc5dfe42b1d7f6e4\",\n \"polygon-pos\": \"0x3c59798620e5fec0ae6df1a19c6454094572ab92\"\n },\n \"marketCapRank\": 821\n },\n {\n \"id\": \"moviebloc\",\n \"symbol\": \"mbl\",\n \"name\": \"MovieBloc\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ontology\": \"e5a49d7fd57e7178e189d3965d1ee64368a1036d\"\n },\n \"marketCapRank\": 500\n },\n {\n \"id\": \"msol\",\n \"symbol\": \"msol\",\n \"name\": \"Marinade staked SOL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So\"\n },\n \"marketCapRank\": 100\n },\n {\n \"id\": \"mt-pelerin-shares\",\n \"symbol\": \"mps\",\n \"name\": \"Mt Pelerin Shares\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x96c645d3d3706f793ef52c19bbace441900ed47d\",\n \"xdai\": \"0xfa57aa7beed63d03aaf85ffd1753f5f6242588fb\"\n },\n \"marketCapRank\": 2254\n },\n {\n \"id\": \"multivac\",\n \"symbol\": \"mtv\",\n \"name\": \"MultiVAC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6226e00bcac68b0fe55583b90a1d727c14fab77f\",\n \"binance-smart-chain\": \"0x8aa688ab789d1848d131c65d98ceaa8875d97ef1\"\n },\n \"marketCapRank\": 1708\n },\n {\n \"id\": \"mummy-finance\",\n \"symbol\": \"mmy\",\n \"name\": \"Mummy Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0x01e77288b38b416f972428d562454fb329350bac\",\n \"optimistic-ethereum\": \"0x47536f17f4ff30e64a96a7555826b8f9e66ec468\"\n },\n \"marketCapRank\": 2126\n },\n {\n \"id\": \"muse-2\",\n \"symbol\": \"muse\",\n \"name\": \"Muse DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb6ca7399b4f9ca56fc27cbff44f4d2e4eef1fc81\"\n },\n \"marketCapRank\": 1176\n },\n {\n \"id\": \"mute\",\n \"symbol\": \"mute\",\n \"name\": \"Mute\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa49d7499271ae71cd8ab9ac515e6694c755d400c\",\n \"zksync\": \"0x0e97c7a0f8b2c9885c8ac9fc6136e829cbc21d42\"\n },\n \"marketCapRank\": 1109\n },\n {\n \"id\": \"mxc\",\n \"symbol\": \"mxc\",\n \"name\": \"MXC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5ca381bbfb58f0092df149bd3d243b08b9a8386e\"\n },\n \"marketCapRank\": 736\n },\n {\n \"id\": \"mx-token\",\n \"symbol\": \"mx\",\n \"name\": \"MX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x11eef04c884e24d9b7b4760e7476d06ddf797f36\"\n },\n \"marketCapRank\": 214\n },\n {\n \"id\": \"my-defi-pet\",\n \"symbol\": \"dpet\",\n \"name\": \"My DeFi Pet\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfb62ae373aca027177d1c18ee0862817f9080d08\",\n \"kardiachain\": \"0xfb62ae373aca027177d1c18ee0862817f9080d08\",\n \"ethereum\": \"0xfb62ae373aca027177d1c18ee0862817f9080d08\"\n },\n \"marketCapRank\": 1848\n },\n {\n \"id\": \"my-neighbor-alice\",\n \"symbol\": \"alice\",\n \"name\": \"My Neighbor Alice\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xac51066d7bec65dc4589368da368b212745d63e8\",\n \"binance-smart-chain\": \"0xac51066d7bec65dc4589368da368b212745d63e8\"\n },\n \"marketCapRank\": 386\n },\n {\n \"id\": \"myria\",\n \"symbol\": \"myria\",\n \"name\": \"Myria\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0ef786bf476fe0810408caba05e536ac800ff86\"\n },\n \"marketCapRank\": 378\n },\n {\n \"id\": \"mysterium\",\n \"symbol\": \"myst\",\n \"name\": \"Mysterium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4cf89ca06ad997bc732dc876ed2a7f26a9e7f361\",\n \"polygon-pos\": \"0x1379e8886a944d2d9d440b3d88df536aea08d9f3\",\n \"binance-smart-chain\": \"0x2ff0b946a6782190c4fe5d4971cfe79f0b6e4df2\"\n },\n \"marketCapRank\": 1808\n },\n {\n \"id\": \"nabox\",\n \"symbol\": \"nabox\",\n \"name\": \"Nabox\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x03d1e72765545729a035e909edd9371a405f77fb\",\n \"binance-smart-chain\": \"0x755f34709e369d37c6fa52808ae84a32007d1155\"\n },\n \"marketCapRank\": 2245\n },\n {\n \"id\": \"nada-protocol-token\",\n \"symbol\": \"nada\",\n \"name\": \"NADA Protocol Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"hedera-hashgraph\": \"0.0.4622883\"\n },\n \"marketCapRank\": 1453\n },\n {\n \"id\": \"naga\",\n \"symbol\": \"ngc\",\n \"name\": \"NAGA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x72dd4b6bd852a3aa172be4d6c5a6dbec588cf131\"\n },\n \"marketCapRank\": 2005\n },\n {\n \"id\": \"nakamoto-games\",\n \"symbol\": \"naka\",\n \"name\": \"Nakamoto Games\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x311434160d7537be358930def317afb606c0d737\"\n },\n \"marketCapRank\": 422\n },\n {\n \"id\": \"nals\",\n \"symbol\": \"nals\",\n \"name\": \"NALS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ordinals\": \"fd8a5b4d53d9afb37ee2845bb5bb70a490373293bf281728bbe712ee9b0872dbi0\"\n },\n \"marketCapRank\": 2073\n },\n {\n \"id\": \"nano\",\n \"symbol\": \"xno\",\n \"name\": \"Nano\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 326\n },\n {\n \"id\": \"nanobyte\",\n \"symbol\": \"nbt\",\n \"name\": \"NanoByte\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x1d3437e570e93581bd94b2fd8fbf202d4a65654a\",\n \"ethereum\": \"0x446f2a8a39cc730ef378be759a3c57f1a3fe824c\"\n },\n \"marketCapRank\": 2081\n },\n {\n \"id\": \"naos-finance\",\n \"symbol\": \"naos\",\n \"name\": \"NAOS Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4a615bb7166210cce20e6642a6f8fb5d4d044496\",\n \"binance-smart-chain\": \"0x758d08864fb6cce3062667225ca10b8f00496cc2\"\n },\n \"marketCapRank\": 1836\n },\n {\n \"id\": \"napoli-fan-token\",\n \"symbol\": \"nap\",\n \"name\": \"Napoli Fan Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xbe7f1ebb1fd6246844e093b04991ae0e66d12c77\"\n },\n \"marketCapRank\": 1823\n },\n {\n \"id\": \"nav-coin\",\n \"symbol\": \"nav\",\n \"name\": \"Navcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbfef6ccfc830d3baca4f6766a0d4aaa242ca9f3d\"\n },\n \"marketCapRank\": 1997\n },\n {\n \"id\": \"near\",\n \"symbol\": \"near\",\n \"name\": \"NEAR Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 23\n },\n {\n \"id\": \"neighbourhoods\",\n \"symbol\": \"nht\",\n \"name\": \"Neighbourhoods\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x84342e932797fc62814189f01f0fb05f52519708\",\n \"polygon-pos\": \"0x84342e932797fc62814189f01f0fb05f52519708\"\n },\n \"marketCapRank\": 1888\n },\n {\n \"id\": \"nem\",\n \"symbol\": \"xem\",\n \"name\": \"NEM\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 201\n },\n {\n \"id\": \"neo\",\n \"symbol\": \"neo\",\n \"name\": \"NEO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 105\n },\n {\n \"id\": \"neon\",\n \"symbol\": \"neon\",\n \"name\": \"Neon\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"NeonTjSjsuo3rexg9o6vHuMXw62f9V7zvmu8M8Zut44\"\n },\n \"marketCapRank\": 537\n },\n {\n \"id\": \"neon-exchange\",\n \"symbol\": \"nex\",\n \"name\": \"Nash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"neo\": \"3a4acd3647086e7c44398aac0349802e6a171129\",\n \"ethereum\": \"0xe2dc070524a6e305ddb64d8513dc444b6a1ec845\",\n \"polygon-pos\": \"0xa486c6bc102f409180ccb8a94ba045d39f8fc7cb\"\n },\n \"marketCapRank\": 1664\n },\n {\n \"id\": \"neos-credits\",\n \"symbol\": \"ncr\",\n \"name\": \"Neos Credits\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdb5c3c46e28b53a39c255aa39a411dd64e5fed9c\"\n },\n \"marketCapRank\": 2047\n },\n {\n \"id\": \"neptune-mutual\",\n \"symbol\": \"npm\",\n \"name\": \"Neptune Mutual\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x57f12fe6a4e5fe819eec699fadf9db2d06606bb4\",\n \"arbitrum-one\": \"0x57f12fe6a4e5fe819eec699fadf9db2d06606bb4\",\n \"polygon-pos\": \"0x57f12fe6a4e5fe819eec699fadf9db2d06606bb4\",\n \"binance-smart-chain\": \"0x57f12fe6a4e5fe819eec699fadf9db2d06606bb4\"\n },\n \"marketCapRank\": 2110\n },\n {\n \"id\": \"nervenetwork\",\n \"symbol\": \"nvt\",\n \"name\": \"NerveNetwork\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1684\n },\n {\n \"id\": \"nervos-network\",\n \"symbol\": \"ckb\",\n \"name\": \"Nervos Network\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 129\n },\n {\n \"id\": \"nest\",\n \"symbol\": \"nest\",\n \"name\": \"Nest Protocol\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcd6926193308d3b371fdd6a6219067e550000000\",\n \"binance-smart-chain\": \"0xcd6926193308d3b371fdd6a6219067e550000000\"\n },\n \"marketCapRank\": 1083\n },\n {\n \"id\": \"netswap\",\n \"symbol\": \"nett\",\n \"name\": \"Netswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"metis-andromeda\": \"0x90fe084f877c65e1b577c7b2ea64b8d8dd1ab278\"\n },\n \"marketCapRank\": 1761\n },\n {\n \"id\": \"neurai\",\n \"symbol\": \"xna\",\n \"name\": \"Neurai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 981\n },\n {\n \"id\": \"neuroni-ai\",\n \"symbol\": \"neuroni\",\n \"name\": \"Neuroni AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x922e2708462c7a3d014d8344f7c4d92b27ecf332\"\n },\n \"marketCapRank\": 1901\n },\n {\n \"id\": \"neutrino-system-base-token\",\n \"symbol\": \"nsbt\",\n \"name\": \"Neutrino System Base\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"waves\": \"6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g\",\n \"ethereum\": \"0x9d79d5b61de59d882ce90125b18f74af650acb93\"\n },\n \"marketCapRank\": 2335\n },\n {\n \"id\": \"new-order\",\n \"symbol\": \"newo\",\n \"name\": \"New Order\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x98585dfc8d9e7d48f0b1ae47ce33332cf4237d96\",\n \"avalanche\": \"0x4bfc90322dd638f81f034517359bd447f8e0235a\"\n },\n \"marketCapRank\": 2453\n },\n {\n \"id\": \"pepe\",\n \"symbol\": \"pepe\",\n \"name\": \"Pepe\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6982508145454ce325ddbe47a25d4ec3d2311933\",\n \"arbitrum-one\": \"0x25d887ce7a35172c62febfd67a1856f20faebb00\",\n \"binance-smart-chain\": \"0x25d887ce7a35172c62febfd67a1856f20faebb00\"\n },\n \"marketCapRank\": 42\n },\n {\n \"id\": \"newscrypto-coin\",\n \"symbol\": \"nwc\",\n \"name\": \"Newscrypto Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"stellar\": \"NWC-GDZJD363YP7P3TNYDK3ZD6GLXFMAI3GLVIH7CGFLNZWIZBQUCVE6PTU7\",\n \"ethereum\": \"0x968f6f898a6df937fc1859b323ac2f14643e3fed\",\n \"binance-smart-chain\": \"0x968f6f898a6df937fc1859b323ac2f14643e3fed\"\n },\n \"marketCapRank\": 1045\n },\n {\n \"id\": \"nexacoin\",\n \"symbol\": \"nexa\",\n \"name\": \"Nexa\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1011\n },\n {\n \"id\": \"nexo\",\n \"symbol\": \"nexo\",\n \"name\": \"NEXO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb62132e35a6c13ee1ee0f84dc5d40bad8d815206\",\n \"energi\": \"0x04640dc771edd73cbeb934fb5461674830baea11\",\n \"polygon-pos\": \"0x41b3966b4ff7b427969ddf5da3627d6aeae9a48e\",\n \"fantom\": \"0x7c598c96d02398d89fbcb9d41eab3df0c16f227d\",\n \"sora\": \"0x003005b2417b5046455e73f7fc39779a013f1a33b4518bcd83a790900dca49ff\"\n },\n \"marketCapRank\": 143\n },\n {\n \"id\": \"nft-art-finance\",\n \"symbol\": \"nftart\",\n \"name\": \"NFT Art Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf7844cb890f4c339c497aeab599abdc3c874b67a\"\n },\n \"marketCapRank\": 2397\n },\n {\n \"id\": \"nftb\",\n \"symbol\": \"nftb\",\n \"name\": \"NFTb\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xde3dbbe30cfa9f437b293294d1fd64b26045c71a\"\n },\n \"marketCapRank\": 1841\n },\n {\n \"id\": \"nftbooks\",\n \"symbol\": \"nftbs\",\n \"name\": \"NFTBooks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x6396252377f54ad33cff9131708da075b21d9b88\"\n },\n \"marketCapRank\": 2296\n },\n {\n \"id\": \"nft-worlds\",\n \"symbol\": \"wrld\",\n \"name\": \"NFT Worlds\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd5d86fc8d5c0ea1ac1ac5dfab6e529c9967a45e9\",\n \"polygon-pos\": \"0xd5d86fc8d5c0ea1ac1ac5dfab6e529c9967a45e9\"\n },\n \"marketCapRank\": 909\n },\n {\n \"id\": \"nftx\",\n \"symbol\": \"nftx\",\n \"name\": \"NFTX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x87d73e916d7057945c9bcd8cdd94e42a6f47f776\"\n },\n \"marketCapRank\": 1625\n },\n {\n \"id\": \"shiba-inu\",\n \"symbol\": \"shib\",\n \"name\": \"Shiba Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x95ad61b0a150d79219dcf64e1e6cc01f0b64c4ce\"\n },\n \"marketCapRank\": 13\n },\n {\n \"id\": \"nimiq-2\",\n \"symbol\": \"nim\",\n \"name\": \"Nimiq\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1202\n },\n {\n \"id\": \"nitro-cartel\",\n \"symbol\": \"trove\",\n \"name\": \"Arbitrove Governance Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x982239d38af50b0168da33346d85fb12929c4c07\"\n },\n \"marketCapRank\": 2377\n },\n {\n \"id\": \"nunet\",\n \"symbol\": \"ntx\",\n \"name\": \"NuNet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf0d33beda4d734c72684b5f9abbebf715d0a7935\",\n \"cardano\": \"edfd7a1d77bcb8b884c474bdc92a16002d1fb720e454fa6e993444794e5458\",\n \"binance-smart-chain\": \"0x5c4bcc4dbaeabc7659f6435bce4e659314ebad87\"\n },\n \"marketCapRank\": 778\n },\n {\n \"id\": \"nix-bridge-token\",\n \"symbol\": \"voice\",\n \"name\": \"Voice\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2e2364966267b5d7d2ce6cd9a9b5bd19d9c7c6a9\"\n },\n \"marketCapRank\": 1946\n },\n {\n \"id\": \"nkn\",\n \"symbol\": \"nkn\",\n \"name\": \"NKN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5cf04716ba20127f1e2297addcf4b5035000c9eb\"\n },\n \"marketCapRank\": 454\n },\n {\n \"id\": \"nodle-network\",\n \"symbol\": \"nodl\",\n \"name\": \"Nodle Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 973\n },\n {\n \"id\": \"noia-network\",\n \"symbol\": \"noia\",\n \"name\": \"Syntropy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa8c8cfb141a3bb59fea1e2ea6b79b5ecbcd7b6ca\"\n },\n \"marketCapRank\": 349\n },\n {\n \"id\": \"nolus\",\n \"symbol\": \"nls\",\n \"name\": \"Nolus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1322\n },\n {\n \"id\": \"nominex\",\n \"symbol\": \"nmx\",\n \"name\": \"Nominex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd32d01a43c869edcd1117c640fbdcfcfd97d9d65\"\n },\n \"marketCapRank\": 2532\n },\n {\n \"id\": \"non-playable-coin\",\n \"symbol\": \"npc\",\n \"name\": \"Non-Playable Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8ed97a637a790be1feff5e888d43629dc05408f6\",\n \"base\": \"0xb166e8b140d35d9d8226e40c09f757bac5a4d87d\"\n },\n \"marketCapRank\": 1173\n },\n {\n \"id\": \"nord-finance\",\n \"symbol\": \"nord\",\n \"name\": \"Nord Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6e9730ecffbed43fd876a264c982e254ef05a0de\",\n \"fantom\": \"0xeaf26191ac1d35ae30baa19a5ad5558dd8156aef\",\n \"binance-smart-chain\": \"0x6e9730ecffbed43fd876a264c982e254ef05a0de\",\n \"polygon-pos\": \"0xf6f85b3f9fd581c2ee717c404f7684486f057f95\"\n },\n \"marketCapRank\": 2574\n },\n {\n \"id\": \"robonomics-network\",\n \"symbol\": \"xrt\",\n \"name\": \"Robonomics Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7de91b204c1c737bcee6f000aaa6569cf7061cb7\",\n \"sora\": \"0x0083d5cbb4b90163b6a003e8f771eb7c0e2b706892cd0cbadb03f55cb9e06919\"\n },\n \"marketCapRank\": 1534\n },\n {\n \"id\": \"nosana\",\n \"symbol\": \"nos\",\n \"name\": \"Nosana\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"nosXBVoaCTtYdLvKY6Csb4AC8JCdQKKAaWYtx2ZMoo7\"\n },\n \"marketCapRank\": 223\n },\n {\n \"id\": \"uno-re\",\n \"symbol\": \"uno\",\n \"name\": \"Uno Re\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x474021845c4643113458ea4414bdb7fb74a01a77\",\n \"binance-smart-chain\": \"0x474021845c4643113458ea4414bdb7fb74a01a77\"\n },\n \"marketCapRank\": 1766\n },\n {\n \"id\": \"not-financial-advice\",\n \"symbol\": \"nfai\",\n \"name\": \"Not Financial Advice\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x17c50d62e6e8d20d2dc18e9ad79c43263d0720d9\"\n },\n \"marketCapRank\": 2394\n },\n {\n \"id\": \"nucleon-xcfx\",\n \"symbol\": \"xcfx\",\n \"name\": \"Nucleon xCFX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"conflux\": \"0x889138644274a7dc602f25a7e7d53ff40e6d0091\"\n },\n \"marketCapRank\": 1490\n },\n {\n \"id\": \"nuco-cloud\",\n \"symbol\": \"ncdt\",\n \"name\": \"nuco.cloud\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe0c8b298db4cffe05d1bea0bb1ba414522b33c1b\"\n },\n \"marketCapRank\": 990\n },\n {\n \"id\": \"nuls\",\n \"symbol\": \"nuls\",\n \"name\": \"NULS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 554\n },\n {\n \"id\": \"numbers-protocol\",\n \"symbol\": \"num\",\n \"name\": \"Numbers Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3496b523e5c00a4b4150d6721320cddb234c3079\",\n \"binance-smart-chain\": \"0xeceb87cf00dcbf2d4e2880223743ff087a995ad9\"\n },\n \"marketCapRank\": 610\n },\n {\n \"id\": \"numeraire\",\n \"symbol\": \"nmr\",\n \"name\": \"Numeraire\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1776e1f26f98b1a5df9cd347953a26dd3cb46671\",\n \"energi\": \"0xd72922e849477a042a7e6dc84309f4bc1c1227a2\"\n },\n \"marketCapRank\": 319\n },\n {\n \"id\": \"nuritopia\",\n \"symbol\": \"nblu\",\n \"name\": \"Nuritopia\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6ba5657bbff83cb579503847c6baa47295ef79a8\"\n },\n \"marketCapRank\": 2275\n },\n {\n \"id\": \"nusd\",\n \"symbol\": \"susd\",\n \"name\": \"sUSD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x57ab1ec28d129707052df4df418d58a2d46d5f51\",\n \"fantom\": \"0x0e1694483ebb3b74d3054e383840c6cf011e518e\",\n \"optimistic-ethereum\": \"0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9\",\n \"arbitrum-one\": \"0xa970af1a584579b618be4d69ad6f73459d112f95\"\n },\n \"marketCapRank\": 772\n },\n {\n \"id\": \"nvirworld\",\n \"symbol\": \"nvir\",\n \"name\": \"NvirWorld\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9d71ce49ab8a0e6d2a1e7bfb89374c9392fd6804\",\n \"binance-smart-chain\": \"0x9d71ce49ab8a0e6d2a1e7bfb89374c9392fd6804\"\n },\n \"marketCapRank\": 1128\n },\n {\n \"id\": \"nxm\",\n \"symbol\": \"nxm\",\n \"name\": \"Nexus Mutual\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd7c49cee7e9188cca6ad8ff264c1da2e69d4cf3b\"\n },\n \"marketCapRank\": 271\n },\n {\n \"id\": \"nxt\",\n \"symbol\": \"nxt\",\n \"name\": \"NXT\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2496\n },\n {\n \"id\": \"nym\",\n \"symbol\": \"nym\",\n \"name\": \"Nym\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x525a8f6f3ba4752868cde25164382bfbae3990e1\"\n },\n \"marketCapRank\": 358\n },\n {\n \"id\": \"o3-swap\",\n \"symbol\": \"o3\",\n \"name\": \"O3 Swap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"fantom\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"avalanche\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"optimistic-ethereum\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"ethereum\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"huobi-token\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"arbitrum-one\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"polygon-pos\": \"0xee9801669c6138e84bd50deb500827b776777d28\",\n \"okex-chain\": \"0xee9801669c6138e84bd50deb500827b776777d28\"\n },\n \"marketCapRank\": 2442\n },\n {\n \"id\": \"oasis-network\",\n \"symbol\": \"rose\",\n \"name\": \"Oasis Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf00600ebc7633462bc4f9c61ea2ce99f5aaebd4a\"\n },\n \"marketCapRank\": 120\n },\n {\n \"id\": \"oasys\",\n \"symbol\": \"oas\",\n \"name\": \"Oasys\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 376\n },\n {\n \"id\": \"oath\",\n \"symbol\": \"oath\",\n \"name\": \"OATH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0x21ada0d2ac28c3a5fa3cd2ee30882da8812279b6\",\n \"ethereum\": \"0xd20523b39faf1d6e9023a4d6085f87b7b0de7926\",\n \"polygon-pos\": \"0x7c603c3c0c97a565cf202c94ab5298bf8510f7dc\",\n \"arbitrum-one\": \"0x00e1724885473b63bce08a9f0a52f35b0979e35a\",\n \"optimistic-ethereum\": \"0x00e1724885473b63bce08a9f0a52f35b0979e35a\",\n \"avalanche\": \"0xad090976ce846935dcff1ded852668beed912916\",\n \"binance-smart-chain\": \"0x73f4c95af5c2892253c068850b8c9a753636f58d\"\n },\n \"marketCapRank\": 1923\n },\n {\n \"id\": \"obortech\",\n \"symbol\": \"obot\",\n \"name\": \"Obortech\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xedadeb5faa413e6c8623461849dfd0b7c3790c32\",\n \"binance-smart-chain\": \"0xb5be8d87fce6ce87a24b90abdb019458a8ec31f9\",\n \"polygon-pos\": \"0x221743dc9e954be4f86844649bf19b43d6f8366d\"\n },\n \"marketCapRank\": 1287\n },\n {\n \"id\": \"observer-coin\",\n \"symbol\": \"obsr\",\n \"name\": \"Observer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x3cb6be2fc6677a63cb52b07aed523f93f5a06cb4\"\n },\n \"marketCapRank\": 1204\n },\n {\n \"id\": \"oceanex\",\n \"symbol\": \"oce\",\n \"name\": \"OceanEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"vechain\": \"0x0ce6661b4ba86a0ea7ca2bd86a0de87b0b860f14\"\n },\n \"marketCapRank\": 2198\n },\n {\n \"id\": \"ocean-protocol\",\n \"symbol\": \"ocean\",\n \"name\": \"Ocean Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x967da4048cd07ab37855c090aaf366e4ce1b9f48\",\n \"sora\": \"0x002ca40397c794e25dba18cf807910eeb69eb8e81b3f07bb54f7c5d1d8ab76b9\",\n \"energi\": \"0x99a17fb61fbdc4e42f6b0f496fe92ba820ce5d2b\",\n \"optimistic-ethereum\": \"0x2561aa2bb1d2eb6629edd7b0938d7679b8b49f9e\",\n \"polygon-pos\": \"0x282d8efce846a88b159800bd4130ad77443fa1a1\"\n },\n \"marketCapRank\": 131\n },\n {\n \"id\": \"octaspace\",\n \"symbol\": \"octa\",\n \"name\": \"OctaSpace\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 898\n },\n {\n \"id\": \"octavia\",\n \"symbol\": \"via\",\n \"name\": \"Octavia\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x21ac3bb914f90a2bb1a16088e673a9fdda641434\"\n },\n \"marketCapRank\": 1342\n },\n {\n \"id\": \"octo-gaming\",\n \"symbol\": \"otk\",\n \"name\": \"Octokn\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"octo82drBEdm8CSDaEKBymVn86TBtgmPnDdmE64PTqJ\"\n },\n \"marketCapRank\": 1082\n },\n {\n \"id\": \"oddz\",\n \"symbol\": \"oddz\",\n \"name\": \"Oddz\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcd2828fc4d8e8a0ede91bb38cf64b1a81de65bf6\",\n \"avalanche\": \"0xb0a6e056b587d0a85640b39b1cb44086f7a26a1e\",\n \"binance-smart-chain\": \"0xcd40f2670cf58720b694968698a5514e924f742d\",\n \"polygon-pos\": \"0x4e830f67ec499e69930867f9017aeb5b3f629c73\"\n },\n \"marketCapRank\": 2444\n },\n {\n \"id\": \"oec-token\",\n \"symbol\": \"okt\",\n \"name\": \"OKT Chain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 234\n },\n {\n \"id\": \"offshift\",\n \"symbol\": \"xft\",\n \"name\": \"Offshift\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x76bc677d444f1e9d57daf5187ee2b7dc852745ae\",\n \"binance-smart-chain\": \"0xe138c66982fd5c890c60b94fdba1747faf092c20\"\n },\n \"marketCapRank\": 1713\n },\n {\n \"id\": \"oggy-inu\",\n \"symbol\": \"oggy\",\n \"name\": \"Oggy Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x92ed61fb8955cc4e392781cb8b7cd04aadc43d0c\"\n },\n \"marketCapRank\": 1823\n },\n {\n \"id\": \"okb\",\n \"symbol\": \"okb\",\n \"name\": \"OKB\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x75231f58b43240c9718dd58b4967c5114342a86c\",\n \"okex-chain\": \"0xdf54b6c6195ea4d948d03bfd818d365cf175cfc2\",\n \"sora\": \"0x0080edc40a944d29562b2dea2de42ed27b9047d16eeea27c5bc1b2e02786abe9\"\n },\n \"marketCapRank\": 39\n },\n {\n \"id\": \"okratech-token\",\n \"symbol\": \"ort\",\n \"name\": \"Okratech\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9e711221b34a2d4b8f552bd5f4a6c4e7934920f7\"\n },\n \"marketCapRank\": 1820\n },\n {\n \"id\": \"omax-token\",\n \"symbol\": \"omax\",\n \"name\": \"Omax\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1412\n },\n {\n \"id\": \"omisego\",\n \"symbol\": \"omg\",\n \"name\": \"OMG Network\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd26114cd6ee289accf82350c8d8487fedb8a0c07\",\n \"boba\": \"0xe1e2ec9a85c607092668789581251115bcbd20de\"\n },\n \"marketCapRank\": 400\n },\n {\n \"id\": \"ommniverse\",\n \"symbol\": \"ommi\",\n \"name\": \"Ommniverse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xbc2659ead8d2d13a157a75bfc5acc156e1ea06df\"\n },\n \"marketCapRank\": 1603\n },\n {\n \"id\": \"omnicat\",\n \"symbol\": \"omni\",\n \"name\": \"OmniCat\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9e20461bc2c4c980f62f1b279d71734207a6a356\",\n \"blast\": \"0x9e20461bc2c4c980f62f1b279d71734207a6a356\",\n \"canto\": \"0x9e20461bc2c4c980f62f1b279d71734207a6a356\",\n \"polygon-pos\": \"0x9e20461bc2c4c980f62f1b279d71734207a6a356\",\n \"arbitrum-one\": \"0x9e20461bc2c4c980f62f1b279d71734207a6a356\",\n \"base\": \"0xc48e605c7b722a57277e087a6170b9e227e5ac0a\",\n \"binance-smart-chain\": \"0x9e20461bc2c4c980f62f1b279d71734207a6a356\",\n \"solana\": \"7mmXL6Et4SbpDs2iXoZQ3oPEeXeAiyETxh1QjDNi5qnV\"\n },\n \"marketCapRank\": 843\n },\n {\n \"id\": \"onbuff\",\n \"symbol\": \"onit\",\n \"name\": \"ONBUFF\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x410e731c2970dce3add351064acf5ce9e33fdbf0\"\n },\n \"marketCapRank\": 953\n },\n {\n \"id\": \"one-ledger\",\n \"symbol\": \"olt\",\n \"name\": \"OneLedger\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x64a60493d888728cf42616e034a0dfeae38efcf0\"\n },\n \"marketCapRank\": 2452\n },\n {\n \"id\": \"onerare\",\n \"symbol\": \"orare\",\n \"name\": \"OneRare\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xff2382bd52efacef02cc895bcbfc4618608aa56f\"\n },\n \"marketCapRank\": 2400\n },\n {\n \"id\": \"ong\",\n \"symbol\": \"ong\",\n \"name\": \"Ontology Gas\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 398\n },\n {\n \"id\": \"onomy-protocol\",\n \"symbol\": \"nom\",\n \"name\": \"Onomy Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/B9606D347599F0F2FDF82BA3EE339000673B7D274EA50F59494DC51EFCD42163\"\n },\n \"marketCapRank\": 869\n },\n {\n \"id\": \"onooks\",\n \"symbol\": \"ooks\",\n \"name\": \"Onooks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x69d9905b2e5f6f5433212b7f3c954433f23c1572\"\n },\n \"marketCapRank\": 1811\n },\n {\n \"id\": \"ooki\",\n \"symbol\": \"ooki\",\n \"name\": \"Ooki\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0de05f6447ab4d22c8827449ee4ba2d5c288379b\"\n },\n \"marketCapRank\": 1245\n },\n {\n \"id\": \"openanx\",\n \"symbol\": \"oax\",\n \"name\": \"OAX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x701c244b988a513c945973defa05de933b23fe1d\"\n },\n \"marketCapRank\": 1420\n },\n {\n \"id\": \"openocean\",\n \"symbol\": \"ooe\",\n \"name\": \"OpenOcean\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8ea5219a16c2dbf1d6335a6aa0c6bd45c50347c5\",\n \"arbitrum-one\": \"0xdcbf4cb83d27c408b30dd7f39bfcabd7176b1ba3\"\n },\n \"marketCapRank\": 1422\n },\n {\n \"id\": \"opium\",\n \"symbol\": \"opium\",\n \"name\": \"Opium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x888888888889c00c67689029d7856aac1065ec11\",\n \"binance-smart-chain\": \"0x566cedd201f67e542a6851a2959c1a449a041945\",\n \"polygon-pos\": \"0xe8f157e041df3b28151b667364e9c90789da7923\"\n },\n \"marketCapRank\": 2179\n },\n {\n \"id\": \"optimism\",\n \"symbol\": \"op\",\n \"name\": \"Optimism\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"optimistic-ethereum\": \"0x4200000000000000000000000000000000000042\"\n },\n \"marketCapRank\": 40\n },\n {\n \"id\": \"optimus-ai\",\n \"symbol\": \"opti\",\n \"name\": \"Optimus AI\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x562e362876c8aee4744fc2c6aac8394c312d215d\"\n },\n \"marketCapRank\": 927\n },\n {\n \"id\": \"opulous\",\n \"symbol\": \"opul\",\n \"name\": \"Opulous\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x80d55c03180349fff4a229102f62328220a96444\",\n \"arbitrum-one\": \"0x0c5fa0e07949f941a6c2c29a008252db1527d6ee\",\n \"algorand\": \"287867876\",\n \"binance-smart-chain\": \"0x686318000d982bc8dcc1cdcf8ffd22322f0960ed\"\n },\n \"marketCapRank\": 451\n },\n {\n \"id\": \"oraichain-token\",\n \"symbol\": \"orai\",\n \"name\": \"Oraichain\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4c11249814f11b9346808179cf06e71ac328c1b5\",\n \"binance-smart-chain\": \"0xa325ad6d9c92b55a3fc5ad7e412b1518f96441c0\"\n },\n \"marketCapRank\": 313\n },\n {\n \"id\": \"origin-ether\",\n \"symbol\": \"oeth\",\n \"name\": \"Origin Ether\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x856c4efb76c1d1ae02e20ceb03a2a6a08b0b8dc3\"\n },\n \"marketCapRank\": 403\n },\n {\n \"id\": \"orbofi-ai\",\n \"symbol\": \"obi\",\n \"name\": \"Orbofi AI\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbb3a8fd6ec4bf0fdc6cd2739b1e41192d12b1873\",\n \"binance-smart-chain\": \"0x69a87c8788d4a48c1362b3b357d0e6b59c11d93f\"\n },\n \"marketCapRank\": 1296\n },\n {\n \"id\": \"orbs\",\n \"symbol\": \"orbs\",\n \"name\": \"Orbs\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xff56cc6b1e6ded347aa0b7676c85ab0b3d08b0fa\",\n \"fantom\": \"0x43a8cab15d06d3a5fe5854d714c37e7e9246f170\",\n \"avalanche\": \"0x3ab1c9adb065f3fca0059652cd7a52b05c98f9a9\",\n \"arbitrum-one\": \"0xf3c091ed43de9c270593445163a41a876a0bb3dd\",\n \"binance-smart-chain\": \"0x43a8cab15d06d3a5fe5854d714c37e7e9246f170\",\n \"polygon-pos\": \"0x614389eaae0a6821dc49062d56bda3d9d45fa2ff\"\n },\n \"marketCapRank\": 343\n },\n {\n \"id\": \"orchid-protocol\",\n \"symbol\": \"oxt\",\n \"name\": \"Orchid Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4575f41308ec1483f3d399aa9a2826d74da13deb\"\n },\n \"marketCapRank\": 555\n },\n {\n \"id\": \"ordinals\",\n \"symbol\": \"ordi\",\n \"name\": \"ORDI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ordinals\": \"b61b0172d95e266c18aea0c624db987e971a5d6d4ebc2aaed85da4642d635735i0\"\n },\n \"marketCapRank\": 87\n },\n {\n \"id\": \"origin-dollar\",\n \"symbol\": \"ousd\",\n \"name\": \"Origin Dollar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2a8e1e676ec238d8a992307b495b45b3feaa5e86\",\n \"astar\": \"0x29f6e49c6e3397c3a84f715885f9f233a441165c\"\n },\n \"marketCapRank\": 1466\n },\n {\n \"id\": \"origin-protocol\",\n \"symbol\": \"ogn\",\n \"name\": \"Origin Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8207c1ffc5b6804f6024322ccf34f29c3541ae26\",\n \"sora\": \"0x0064c02f602195e298780323c79a0eb5b4fd0ffcad68d440a7ca7725bc79d912\",\n \"energi\": \"0x1e3eed9c1eba5e5114d4c185dc71d13c3c66dd84\"\n },\n \"marketCapRank\": 490\n },\n {\n \"id\": \"origintrail\",\n \"symbol\": \"trac\",\n \"name\": \"OriginTrail\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaa7a9ca87d3694b5755f213b5d04094b8d0f0a6f\"\n },\n \"marketCapRank\": 195\n },\n {\n \"id\": \"orion-protocol\",\n \"symbol\": \"orn\",\n \"name\": \"Orion\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0258f474786ddfd37abce6df6bbb1dd5dfc4434a\",\n \"energi\": \"0x5e2d55bc07b63b18af6c9ed8da06cd33258ebb35\",\n \"binance-smart-chain\": \"0xe4ca1f75eca6214393fce1c1b316c237664eaa8e\"\n },\n \"marketCapRank\": 605\n },\n {\n \"id\": \"osaka-protocol\",\n \"symbol\": \"osak\",\n \"name\": \"Osaka Protocol\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa21af1050f7b26e0cff45ee51548254c41ed6b5c\",\n \"optimistic-ethereum\": \"0xbfd5206962267c7b4b4a8b3d76ac2e1b2a5c4d5e\",\n \"arbitrum-one\": \"0xbfd5206962267c7b4b4a8b3d76ac2e1b2a5c4d5e\",\n \"avalanche\": \"0x96e1056a8814de39c8c3cd0176042d6cecd807d7\",\n \"polygon-pos\": \"0x11cd72f7a4b699c67f225ca8abb20bc9f8db90c7\",\n \"base\": \"0xbfd5206962267c7b4b4a8b3d76ac2e1b2a5c4d5e\",\n \"binance-smart-chain\": \"0x11cd72f7a4b699c67f225ca8abb20bc9f8db90c7\"\n },\n \"marketCapRank\": 317\n },\n {\n \"id\": \"osmosis\",\n \"symbol\": \"osmo\",\n \"name\": \"Osmosis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"evmos\": \"0xfa3c22c069b9556a4b2f7ece1ee3b467909f4864\",\n \"secret\": \"secret150jec8mc2hzyyqak4umv6cfevelr0x9p0mjxgg\"\n },\n \"marketCapRank\": 121\n },\n {\n \"id\": \"outer-ring\",\n \"symbol\": \"gq\",\n \"name\": \"Blink Galaxy\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf700d4c708c2be1463e355f337603183d20e0808\"\n },\n \"marketCapRank\": 1500\n },\n {\n \"id\": \"ovr\",\n \"symbol\": \"ovr\",\n \"name\": \"Ovr\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x21bfbda47a0b4b5b1248c767ee49f7caa9b23697\",\n \"binance-smart-chain\": \"0x7e35d0e9180bf3a1fc47b0d110be7a21a10b41fe\",\n \"polygon-pos\": \"0x1631244689ec1fecbdd22fb5916e920dfc9b8d30\"\n },\n \"marketCapRank\": 1075\n },\n {\n \"id\": \"oxbull-tech-2\",\n \"symbol\": \"oxb\",\n \"name\": \"Oxbull Tech\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7536c00711e41df6aebcca650791107645b6bc52\"\n },\n \"marketCapRank\": 1387\n },\n {\n \"id\": \"ox-fun\",\n \"symbol\": \"ox\",\n \"name\": \"OX Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba0dda8762c24da9487f5fa026a9b64b695a07ea\",\n \"arbitrum-one\": \"0xba0dda8762c24da9487f5fa026a9b64b695a07ea\",\n \"binance-smart-chain\": \"0xba0dda8762c24da9487f5fa026a9b64b695a07ea\",\n \"avalanche\": \"0xba0dda8762c24da9487f5fa026a9b64b695a07ea\",\n \"polygon-pos\": \"0xba0dda8762c24da9487f5fa026a9b64b695a07ea\"\n },\n \"marketCapRank\": 822\n },\n {\n \"id\": \"oxygen\",\n \"symbol\": \"oxy\",\n \"name\": \"Oxygen\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"z3dn17yLaGMKffVogeFHQ9zWVcXgqgf3PQnDsNs2g6M\",\n \"ethereum\": \"0x965697b4ef02f0de01384d0d4f9f782b1670c163\"\n },\n \"marketCapRank\": 1309\n },\n {\n \"id\": \"ozone-chain\",\n \"symbol\": \"ozo\",\n \"name\": \"Ozone Chain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 537\n },\n {\n \"id\": \"paal-ai\",\n \"symbol\": \"paal\",\n \"name\": \"PAAL AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x14fee680690900ba0cccfc76ad70fd1b95d10e16\"\n },\n \"marketCapRank\": 222\n },\n {\n \"id\": \"paccoin\",\n \"symbol\": \"pac\",\n \"name\": \"PAC Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2533\n },\n {\n \"id\": \"parrot-usd\",\n \"symbol\": \"pai\",\n \"name\": \"Parrot USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"Ea5SjE2Y6yvCeW5dYTn7PYMuW5ikXkvbGdcmSnXeaLjS\"\n },\n \"marketCapRank\": 1915\n },\n {\n \"id\": \"paid-network\",\n \"symbol\": \"paid\",\n \"name\": \"PAID Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1614f18fc94f47967a3fbe5ffcd46d4e7da3d787\",\n \"binance-smart-chain\": \"0xad86d0e9764ba90ddd68747d64bffbd79879a238\"\n },\n \"marketCapRank\": 665\n },\n {\n \"id\": \"paint-swap\",\n \"symbol\": \"brush\",\n \"name\": \"Paint Swap\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"fantom\": \"0x85dec8c4b2680793661bca91a8f129607571863d\"\n },\n \"marketCapRank\": 1414\n },\n {\n \"id\": \"poollotto-finance\",\n \"symbol\": \"plt\",\n \"name\": \"Poollotto.finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x631c2f0edabac799f07550aee4ff0bf7fd35212b\"\n },\n \"marketCapRank\": 1133\n },\n {\n \"id\": \"palm-ai\",\n \"symbol\": \"palm\",\n \"name\": \"PaLM AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf1df7305e4bab3885cab5b1e4dfc338452a67891\"\n },\n \"marketCapRank\": 613\n },\n {\n \"id\": \"pancakeswap-token\",\n \"symbol\": \"cake\",\n \"name\": \"PancakeSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82\",\n \"ethereum\": \"0x152649ea73beab28c5b49b26eb48f7ead6d4c898\",\n \"aptos\": \"0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT\"\n },\n \"marketCapRank\": 104\n },\n {\n \"id\": \"pangolin\",\n \"symbol\": \"png\",\n \"name\": \"Pangolin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x60781c2586d68229fde47564546784ab3faca982\"\n },\n \"marketCapRank\": 508\n },\n {\n \"id\": \"panther\",\n \"symbol\": \"zkp\",\n \"name\": \"Panther Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x909e34d3f6124c324ac83dcca84b74398a6fa173\",\n \"polygon-pos\": \"0x9a06db14d639796b25a6cec6a1bf614fd98815ec\"\n },\n \"marketCapRank\": 1412\n },\n {\n \"id\": \"paragen\",\n \"symbol\": \"rgen\",\n \"name\": \"Paragen\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x25382fb31e4b22e0ea09cb0761863df5ad97ed72\"\n },\n \"marketCapRank\": 2592\n },\n {\n \"id\": \"paragonsdao\",\n \"symbol\": \"pdt\",\n \"name\": \"ParagonsDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x375abb85c329753b1ba849a601438ae77eec9893\"\n },\n \"marketCapRank\": 1127\n },\n {\n \"id\": \"paratoken-2\",\n \"symbol\": \"para\",\n \"name\": \"Para\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd16fd95d949f996e3808eeea0e3881c59e76ef1e\"\n },\n \"marketCapRank\": 2123\n },\n {\n \"id\": \"paraswap\",\n \"symbol\": \"psp\",\n \"name\": \"ParaSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcafe001067cdef266afb7eb5a286dcfd277f3de5\",\n \"optimistic-ethereum\": \"0xd3594e879b358f430e20f82bea61e83562d49d48\",\n \"binance-smart-chain\": \"0xcafe001067cdef266afb7eb5a286dcfd277f3de5\",\n \"polygon-pos\": \"0x42d61d766b85431666b39b89c43011f24451bff6\"\n },\n \"marketCapRank\": 732\n },\n {\n \"id\": \"parex\",\n \"symbol\": \"prx\",\n \"name\": \"Parex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x90e3414e00e231b962666bd94adb811d5bcd0c2a\"\n },\n \"marketCapRank\": 1721\n },\n {\n \"id\": \"paribus\",\n \"symbol\": \"pbx\",\n \"name\": \"Paribus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd528cf2e081f72908e086f8800977df826b5a483\",\n \"cardano\": \"cc8d1b026353022abbfcc2e1e71159f9e308d9c6e905ac1db24c7fb650617269627573\",\n \"arbitrum-one\": \"0xbad58ed9b5f26a002ea250d7a60dc6729a4a2403\"\n },\n \"marketCapRank\": 1208\n },\n {\n \"id\": \"parsiq\",\n \"symbol\": \"prq\",\n \"name\": \"PARSIQ\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x362bc847a3a9637d3af6624eec853618a43ed7d2\",\n \"binance-smart-chain\": \"0xd21d29b38374528675c34936bf7d5dd693d2a577\"\n },\n \"marketCapRank\": 840\n },\n {\n \"id\": \"particl\",\n \"symbol\": \"part\",\n \"name\": \"Particl\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1795\n },\n {\n \"id\": \"passage\",\n \"symbol\": \"pasg\",\n \"name\": \"Passage\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/208B2F137CDE510B44C41947C045CFDC27F996A9D990EA64460BDD5B3DBEB2ED\"\n },\n \"marketCapRank\": 940\n },\n {\n \"id\": \"pastel\",\n \"symbol\": \"psl\",\n \"name\": \"Pastel\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc775c0c30840cb9f51e21061b054ebf1a00acc29\"\n },\n \"marketCapRank\": 2017\n },\n {\n \"id\": \"pawswap\",\n \"symbol\": \"paw\",\n \"name\": \"PAWSWAP\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdc63269ea166b70d4780b3a11f5c825c2b761b01\"\n },\n \"marketCapRank\": 1658\n },\n {\n \"id\": \"pawthereum\",\n \"symbol\": \"pawth\",\n \"name\": \"Pawthereum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaecc217a749c2405b5ebc9857a16d58bdc1c367f\",\n \"binance-smart-chain\": \"0x409e215738e31d8ab252016369c2dd9c2008fee0\"\n },\n \"marketCapRank\": 2183\n },\n {\n \"id\": \"pax-gold\",\n \"symbol\": \"paxg\",\n \"name\": \"PAX Gold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x45804880de22913dafe09f4980848ece6ecbaf78\",\n \"harmony-shard-0\": \"0x7afb0e2eba6dc938945fe0f42484d3b8f442d0ac\",\n \"energi\": \"0xbf8afa4663b30c621a5f7497a972fc63c1a06c66\"\n },\n \"marketCapRank\": 216\n },\n {\n \"id\": \"tenx\",\n \"symbol\": \"pay\",\n \"name\": \"TenX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb97048628db6b661d4c2aa833e95dbe1a905b280\"\n },\n \"marketCapRank\": 2614\n },\n {\n \"id\": \"paypal-usd\",\n \"symbol\": \"pyusd\",\n \"name\": \"PayPal USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6c3ea9036406852006290770bedfcaba0e23a0e8\"\n },\n \"marketCapRank\": 361\n },\n {\n \"id\": \"pchain\",\n \"symbol\": \"pi\",\n \"name\": \"Plian\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1959\n },\n {\n \"id\": \"peardao\",\n \"symbol\": \"pex\",\n \"name\": \"PearDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6a0b66710567b6beb81a71f7e9466450a91a384b\"\n },\n \"marketCapRank\": 2488\n },\n {\n \"id\": \"peercoin\",\n \"symbol\": \"ppc\",\n \"name\": \"Peercoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x044d078f1c86508e13328842cc75ac021b272958\",\n \"polygon-pos\": \"0x91e7e32c710661c44ae44d10aa86135d91c3ed65\"\n },\n \"marketCapRank\": 1354\n },\n {\n \"id\": \"pegaxy-stone\",\n \"symbol\": \"pgx\",\n \"name\": \"Pegaxy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xc1c93d475dc82fe72dbc7074d55f5a734f8ceeae\",\n \"avalanche\": \"0x0ef27ddc8f89d4886e89d630de089962ffc12e43\"\n },\n \"marketCapRank\": 1954\n },\n {\n \"id\": \"penpie\",\n \"symbol\": \"pnp\",\n \"name\": \"Penpie\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7dedbce5a2e31e4c75f87fea60bf796c17718715\",\n \"arbitrum-one\": \"0x2ac2b254bc18cd4999f64773a966e4f4869c34ee\",\n \"binance-smart-chain\": \"0x5012c90f14d190607662ca8344120812aaa2639d\"\n },\n \"marketCapRank\": 1289\n },\n {\n \"id\": \"peri-finance\",\n \"symbol\": \"peri\",\n \"name\": \"PERI Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5d30ad9c6374bf925d0a75454fa327aacf778492\",\n \"binance-smart-chain\": \"0xb49b7e0742ecb4240ffe91661d2a580677460b6a\",\n \"polygon-pos\": \"0xdc0e17eae3b9651875030244b971fa0223a1764f\"\n },\n \"marketCapRank\": 2383\n },\n {\n \"id\": \"perion\",\n \"symbol\": \"perc\",\n \"name\": \"Perion\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x60be1e1fe41c1370adaf5d8e66f07cf1c2df2268\"\n },\n \"marketCapRank\": 1301\n },\n {\n \"id\": \"perpetual-protocol\",\n \"symbol\": \"perp\",\n \"name\": \"Perpetual Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbc396689893d065f41bc2c6ecbee5e0085233447\",\n \"optimistic-ethereum\": \"0x9e1028f5f1d5ede59748ffcee5532509976840e0\",\n \"xdai\": \"0x7ecf26cd9a36990b8ea477853663092333f59979\",\n \"arbitrum-one\": \"0x753d224bcf9aafacd81558c32341416df61d3dac\",\n \"binance-smart-chain\": \"0x4e7f408be2d4e9d60f49a64b89bb619c84c7c6f5\"\n },\n \"marketCapRank\": 507\n },\n {\n \"id\": \"per-project\",\n \"symbol\": \"per\",\n \"name\": \"PER Project\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x7eee60a000986e9efe7f5c90340738558c24317b\"\n },\n \"marketCapRank\": 1838\n },\n {\n \"id\": \"perpy-finance\",\n \"symbol\": \"pry\",\n \"name\": \"Perpy Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x1824a51c106efc27d35a74efb56d9bf54ddb22d4\"\n },\n \"marketCapRank\": 2265\n },\n {\n \"id\": \"persistence\",\n \"symbol\": \"xprt\",\n \"name\": \"Persistence One\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/A0CC0CF735BFB30E730C70019D4218A1244FF383503FF7579C9201AB93CA9293\"\n },\n \"marketCapRank\": 624\n },\n {\n \"id\": \"petals\",\n \"symbol\": \"pts\",\n \"name\": \"Petals\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfa53a4778431712af31a11621edee4d0926df1ac\"\n },\n \"marketCapRank\": 1056\n },\n {\n \"id\": \"pha\",\n \"symbol\": \"pha\",\n \"name\": \"Phala\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6c5ba91642f10282b576d91922ae6448c9d52f4e\",\n \"sora\": \"0x0033271716eec64234a5324506c4558de27b7c23c42f3e3b74801f98bdfeebf7\"\n },\n \"marketCapRank\": 388\n },\n {\n \"id\": \"phoenix-global\",\n \"symbol\": \"phb\",\n \"name\": \"Phoenix\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0409633a72d846fc5bbe2f98d88564d35987904d\"\n },\n \"marketCapRank\": 459\n },\n {\n \"id\": \"phonon-dao\",\n \"symbol\": \"phonon\",\n \"name\": \"Phonon DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x758b4684be769e92eefea93f60dda0181ea303ec\",\n \"arbitrum-one\": \"0x39a49bc5017fc668299cd32e734c9269acc35295\"\n },\n \"marketCapRank\": 1935\n },\n {\n \"id\": \"pibble\",\n \"symbol\": \"pib\",\n \"name\": \"Pibble\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1864ce27e9f7517047933caae530674e8c70b8a7\",\n \"klay-token\": \"0xafde910130c335fa5bd5fe991053e3e0a49dce7b\"\n },\n \"marketCapRank\": 1307\n },\n {\n \"id\": \"picasso\",\n \"symbol\": \"pica\",\n \"name\": \"Picasso\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbb63a9b64a80e9338b8ea298c51765e57c4f159c\",\n \"secret\": \"secret1e0y9vf4xr9wffyxsvlz35jzl5st2srkdl8frac\"\n },\n \"marketCapRank\": 879\n },\n {\n \"id\": \"piccolo-inu\",\n \"symbol\": \"pinu\",\n \"name\": \"Piccolo Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3a1311b8c404629e38f61d566cefefed083b9670\"\n },\n \"marketCapRank\": 2540\n },\n {\n \"id\": \"pickle-finance\",\n \"symbol\": \"pickle\",\n \"name\": \"Pickle Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x429881672b9ae42b8eba0e26cd9c73711b891ca5\",\n \"arbitrum-one\": \"0x965772e0e9c84b6f359c8597c891108dcf1c5b1a\",\n \"polygon-pos\": \"0x2b88ad57897a8b496595925f43048301c37615da\",\n \"aurora\": \"0x291c8fceaca3342b29cc36171deb98106f712c66\"\n },\n \"marketCapRank\": 2149\n },\n {\n \"id\": \"pika-protocol\",\n \"symbol\": \"pika\",\n \"name\": \"Pika Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"optimistic-ethereum\": \"0x9a601c5bb360811d96a23689066af316a30c3027\"\n },\n \"marketCapRank\": 1451\n },\n {\n \"id\": \"pillar\",\n \"symbol\": \"plr\",\n \"name\": \"Pillar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe3818504c1b32bf1557b16c238b2e01fd3149c17\",\n \"polygon-pos\": \"0xa6b37fc85d870711c56fbcb8afe2f8db049ae774\",\n \"binance-smart-chain\": \"0x790cfdc6ab2e0ee45a433aac5434f183be1f6a20\"\n },\n \"marketCapRank\": 2619\n },\n {\n \"id\": \"pinksale\",\n \"symbol\": \"pinksale\",\n \"name\": \"PinkSale\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x602ba546a7b06e0fc7f58fd27eb6996ecc824689\"\n },\n \"marketCapRank\": 999\n },\n {\n \"id\": \"snailbrook\",\n \"symbol\": \"snail\",\n \"name\": \"SnailBrook\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6bc40d4099f9057b23af309c08d935b890d7adc0\"\n },\n \"marketCapRank\": 1271\n },\n {\n \"id\": \"pintu-token\",\n \"symbol\": \"ptu\",\n \"name\": \"Pintu\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc229c69eb3bb51828d0caa3509a05a51083898dd\"\n },\n \"marketCapRank\": 1046\n },\n {\n \"id\": \"pip\",\n \"symbol\": \"pip\",\n \"name\": \"PIP\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"HHjoYwUp5aU6pnrvN4s2pwEErwXNZKhxKGYjRJMoBjLw\"\n },\n \"marketCapRank\": 1146\n },\n {\n \"id\": \"pirate-chain\",\n \"symbol\": \"arrr\",\n \"name\": \"Pirate Chain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 946\n },\n {\n \"id\": \"pointpay\",\n \"symbol\": \"pxp\",\n \"name\": \"PointPay\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x95aa5d2dbd3c16ee3fdea82d5c6ec3e38ce3314f\"\n },\n \"marketCapRank\": 1976\n },\n {\n \"id\": \"pivx\",\n \"symbol\": \"pivx\",\n \"name\": \"PIVX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 896\n },\n {\n \"id\": \"pixels\",\n \"symbol\": \"pixel\",\n \"name\": \"Pixels\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3429d03c6f7521aec737a0bbf2e5ddcef2c3ae31\",\n \"ronin\": \"0x7eae20d11ef8c779433eb24503def900b9d28ad7\"\n },\n \"marketCapRank\": 176\n },\n {\n \"id\": \"pkt\",\n \"symbol\": \"pkt\",\n \"name\": \"PKT\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1373\n },\n {\n \"id\": \"planetwatch\",\n \"symbol\": \"planets\",\n \"name\": \"PlanetWatch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"algorand\": \"27165954\"\n },\n \"marketCapRank\": 1990\n },\n {\n \"id\": \"plasma-finance\",\n \"symbol\": \"ppay\",\n \"name\": \"Plasma Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x054d64b73d3d8a21af3d764efd76bcaa774f3bb2\",\n \"polygon-pos\": \"0x08158a6b5d4018340387d1a302f882e98a8bc5b4\",\n \"binance-smart-chain\": \"0xfb288d60d3b66f9c3e231a9a39ed3f158a4269aa\"\n },\n \"marketCapRank\": 2421\n },\n {\n \"id\": \"plastiks\",\n \"symbol\": \"plastik\",\n \"name\": \"Plastiks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"celo\": \"0x27cd006548df7c8c8e9fdc4a67fa05c2e3ca5cf9\"\n },\n \"marketCapRank\": 2602\n },\n {\n \"id\": \"platon-network\",\n \"symbol\": \"lat\",\n \"name\": \"PlatON Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 518\n },\n {\n \"id\": \"playa3ull-games-2\",\n \"symbol\": \"3ull\",\n \"name\": \"PLAYA3ULL GAMES\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xa77e70d0af1ac7ff86726740db1bd065c3566937\"\n },\n \"marketCapRank\": 933\n },\n {\n \"id\": \"playchip\",\n \"symbol\": \"pla\",\n \"name\": \"PlayChip\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0198f46f520f33cd4329bd4be380a25a90536cd5\"\n },\n \"marketCapRank\": null\n },\n {\n \"id\": \"waves\",\n \"symbol\": \"waves\",\n \"name\": \"Waves\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1cf4592ebffd730c7dc92c1bdffdfc3b9efcf29a\"\n },\n \"marketCapRank\": 227\n },\n {\n \"id\": \"playzap\",\n \"symbol\": \"pzp\",\n \"name\": \"PlayZap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6ad9e9c098a45b2b41b519119c31c3dcb02accb2\",\n \"eos\": \"0xf6f46bd1f85ebf00c6d7490678ad020bc73969a7\",\n \"solana\": \"2CnfY3wZu715Mdbj1CeWfMNcsKNqkREPjTmW4o1Psj9J\",\n \"kucoin-community-chain\": \"0x22648c12acd87912ea1710357b1302c6a4154ebc\",\n \"eos-evm\": \"0xbb8e513b2897ac9c1c47eecfcb42dbd4b77f9275\"\n },\n \"marketCapRank\": 1383\n },\n {\n \"id\": \"plearn\",\n \"symbol\": \"pln\",\n \"name\": \"PLEARN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbe0d3526fc797583dada3f30bc390013062a048b\"\n },\n \"marketCapRank\": 1359\n },\n {\n \"id\": \"pleasure-coin\",\n \"symbol\": \"nsfw\",\n \"name\": \"Pleasure Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x8f006d1e1d9dc6c98996f50a4c810f17a47fbf19\",\n \"ethereum\": \"0x8f006d1e1d9dc6c98996f50a4c810f17a47fbf19\",\n \"binance-smart-chain\": \"0xaa076b62efc6f357882e07665157a271ab46a063\"\n },\n \"marketCapRank\": 2003\n },\n {\n \"id\": \"plebbit\",\n \"symbol\": \"pleb\",\n \"name\": \"Plebbit\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xea81dab2e0ecbc6b5c4172de4c22b6ef6e55bd8f\"\n },\n \"marketCapRank\": 1366\n },\n {\n \"id\": \"plex\",\n \"symbol\": \"plex\",\n \"name\": \"PLEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1698\n },\n {\n \"id\": \"plugin\",\n \"symbol\": \"pli\",\n \"name\": \"Plugin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdcff7412ea7c8445c46a8254dfb557ac1e48094391\"\n },\n \"marketCapRank\": 1836\n },\n {\n \"id\": \"pluton\",\n \"symbol\": \"plu\",\n \"name\": \"Pluton\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd8912c10681d8b21fd3742244f44658dba12264e\"\n },\n \"marketCapRank\": 994\n },\n {\n \"id\": \"pnetwork\",\n \"symbol\": \"pnt\",\n \"name\": \"pNetwork\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x89ab32156e46f46d02ade3fecbe5fc4243b9aaed\",\n \"binance-smart-chain\": \"0xdaacb0ab6fb34d24e8a67bfa14bf4d95d4c7af92\"\n },\n \"marketCapRank\": 1805\n },\n {\n \"id\": \"pocket-network\",\n \"symbol\": \"pokt\",\n \"name\": \"Pocket Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 244\n },\n {\n \"id\": \"polaris-share\",\n \"symbol\": \"pola\",\n \"name\": \"Polaris Share\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc691bc298a304d591ad9b352c7a8d216de9f2ced\"\n },\n \"marketCapRank\": 1114\n },\n {\n \"id\": \"polkabridge\",\n \"symbol\": \"pbr\",\n \"name\": \"PolkaBridge\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x298d492e8c1d909d3f63bc4a36c66c64acb3d695\",\n \"polygon-pos\": \"0x0d6ae2a429df13e44a07cd2969e085e4833f64a0\",\n \"binance-smart-chain\": \"0x1d1cb8997570e73949930c01fe5796c88d7336c6\"\n },\n \"marketCapRank\": 1851\n },\n {\n \"id\": \"polka-city\",\n \"symbol\": \"polc\",\n \"name\": \"Polkacity\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaa8330fb2b4d5d07abfe7a72262752a8505c6b37\",\n \"binance-smart-chain\": \"0x6ae9701b9c423f40d54556c9a443409d79ce170a\"\n },\n \"marketCapRank\": 1539\n },\n {\n \"id\": \"polkadex\",\n \"symbol\": \"pdex\",\n \"name\": \"Polkadex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf59ae934f6fe444afc309586cc60a84a0f89aaea\",\n \"sora\": \"0x008a99c642c508f4f718598f32fa9ecbeea854e335312fecdbd298b92de26e21\"\n },\n \"marketCapRank\": 1729\n },\n {\n \"id\": \"polkafoundry\",\n \"symbol\": \"pkf\",\n \"name\": \"Red Kite\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8b39b70e39aa811b69365398e0aace9bee238aeb\"\n },\n \"marketCapRank\": 1283\n },\n {\n \"id\": \"polkamarkets\",\n \"symbol\": \"polk\",\n \"name\": \"Polkamarkets\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd478161c952357f05f0292b56012cd8457f1cfbf\"\n },\n \"marketCapRank\": 1912\n },\n {\n \"id\": \"polkastarter\",\n \"symbol\": \"pols\",\n \"name\": \"Polkastarter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x83e6f1e41cdd28eaceb20cb649155049fac3d5aa\",\n \"binance-smart-chain\": \"0x7e624fa0e1c4abfd309cc15719b7e2580887f570\"\n },\n \"marketCapRank\": 481\n },\n {\n \"id\": \"polkaswap\",\n \"symbol\": \"pswap\",\n \"name\": \"Polkaswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x519c1001d550c0a1dae7d1fc220f7d14c2a521bb\",\n \"sora\": \"0x0200050000000000000000000000000000000000000000000000000000000000\"\n },\n \"marketCapRank\": 1542\n },\n {\n \"id\": \"polker\",\n \"symbol\": \"pkr\",\n \"name\": \"Polker\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x140a4e80dd8184536acc45f1c452d7540472e6e1\"\n },\n \"marketCapRank\": 2324\n },\n {\n \"id\": \"polychain-monsters\",\n \"symbol\": \"pmon\",\n \"name\": \"Polychain Monsters\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1796ae0b0fa4862485106a0de9b654efe301d0b2\",\n \"binance-smart-chain\": \"0x1796ae0b0fa4862485106a0de9b654efe301d0b2\",\n \"polygon-pos\": \"0x1796ae0b0fa4862485106a0de9b654efe301d0b2\"\n },\n \"marketCapRank\": 2080\n },\n {\n \"id\": \"polydoge\",\n \"symbol\": \"polydoge\",\n \"name\": \"PolyDoge\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x8a953cfe442c5e8855cc6c61b1293fa648bae472\"\n },\n \"marketCapRank\": 1465\n },\n {\n \"id\": \"polygon-ecosystem-token\",\n \"symbol\": \"pol\",\n \"name\": \"Polygon Ecosystem Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x455e53cbb86018ac2b8092fdcd39d8444affc3f6\"\n },\n \"marketCapRank\": 487\n },\n {\n \"id\": \"polylastic\",\n \"symbol\": \"polx\",\n \"name\": \"Polylastic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x187ae45f2d361cbce37c6a8622119c91148f261b\"\n },\n \"marketCapRank\": 2054\n },\n {\n \"id\": \"polymesh\",\n \"symbol\": \"polyx\",\n \"name\": \"Polymesh\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 157\n },\n {\n \"id\": \"polypad\",\n \"symbol\": \"polypad\",\n \"name\": \"PolyPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x30ea765d4dda26e0f89e1b23a7c7b2526b7d29ec\",\n \"binance-smart-chain\": \"0x8ae619d633cce175a2fbcfa1cea119ddc80f1342\"\n },\n \"marketCapRank\": 2305\n },\n {\n \"id\": \"polyswarm\",\n \"symbol\": \"nct\",\n \"name\": \"PolySwarm\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9e46a38f5daabe8683e10793b06749eef7d733d1\",\n \"polygon-pos\": \"0x4985e0b13554fb521840e893574d3848c10fcc6f\"\n },\n \"marketCapRank\": 755\n },\n {\n \"id\": \"polytrade\",\n \"symbol\": \"trade\",\n \"name\": \"Polytrade\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6e5970dbd6fc7eb1f29c6d2edf2bc4c36124c0c1\",\n \"arbitrum-one\": \"0xe22c452bd2ade15dfc8ad98286bc6bdf0c9219b7\",\n \"polygon-pos\": \"0x692ac1e363ae34b6b489148152b12e2785a3d8d6\",\n \"binance-smart-chain\": \"0x6ba7a8f9063c712c1c8cabc776b1da7126805f3b\"\n },\n \"marketCapRank\": 601\n },\n {\n \"id\": \"pooh\",\n \"symbol\": \"pooh\",\n \"name\": \"POOH\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb69753c06bb5c366be51e73bfc0cc2e3dc07e371\",\n \"solana\": \"J8XFfJgS1cs5WVGxGwZb9Rt5rJZizdyzaLhidtvDnYjC\"\n },\n \"marketCapRank\": 1121\n },\n {\n \"id\": \"poolz-finance-2\",\n \"symbol\": \"poolx\",\n \"name\": \"Poolz Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbaea9aba1454df334943951d51116ae342eab255\"\n },\n \"marketCapRank\": 1082\n },\n {\n \"id\": \"popcat\",\n \"symbol\": \"popcat\",\n \"name\": \"Popcat\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr\"\n },\n \"marketCapRank\": 259\n },\n {\n \"id\": \"popcorn\",\n \"symbol\": \"pop\",\n \"name\": \"Popcorn\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd0cd466b34a24fcb2f87676278af2005ca8a78c4\",\n \"optimistic-ethereum\": \"0x6f0fecbc276de8fc69257065fe47c5a03d986394\",\n \"arbitrum-one\": \"0x68ead55c258d6fa5e46d67fc90f53211eab885be\",\n \"binance-smart-chain\": \"0xe8647ea19496e87c061bbad79f457928b2f52b5a\",\n \"polygon-pos\": \"0xc5b57e9a1e7914fda753a88f24e5703e617ee50c\"\n },\n \"marketCapRank\": 2835\n },\n {\n \"id\": \"populous\",\n \"symbol\": \"ppt\",\n \"name\": \"Populous\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd4fa1460f537bb9085d22c7bccb5dd450ef28e3a\",\n \"energi\": \"0x2483a716a4a5476da5e657be13a37cf62b608ab6\"\n },\n \"marketCapRank\": 2529\n },\n {\n \"id\": \"portal-2\",\n \"symbol\": \"portal\",\n \"name\": \"Portal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1bbe973bef3a977fc51cbed703e8ffdefe001fed\"\n },\n \"marketCapRank\": 251\n },\n {\n \"id\": \"power\",\n \"symbol\": \"pwr\",\n \"name\": \"MaxxChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd9dcd611bed2be9a4700c725a3810870b9bff094\"\n },\n \"marketCapRank\": 2824\n },\n {\n \"id\": \"power-ledger\",\n \"symbol\": \"powr\",\n \"name\": \"Powerledger\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x595832f8fc6bf59c85c527fec3740a1b7a361269\",\n \"energi\": \"0xd1bbc2a68b97a8ae4b423bbf534e767ef6275a30\"\n },\n \"marketCapRank\": 331\n },\n {\n \"id\": \"presearch\",\n \"symbol\": \"pre\",\n \"name\": \"Presearch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xec213f83defb583af3a000b1c0ada660b1902a0f\"\n },\n \"marketCapRank\": 1421\n },\n {\n \"id\": \"premia\",\n \"symbol\": \"premia\",\n \"name\": \"Premia\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6399c842dd2be3de30bf99bc7d1bbf6fa3650e70\",\n \"fantom\": \"0x3028b4395f98777123c7da327010c40f3c7cc4ef\",\n \"optimistic-ethereum\": \"0x374ad0f47f4ca39c78e5cc54f1c9e426ff8f231a\",\n \"arbitrum-one\": \"0x51fc0f6660482ea73330e414efd7808811a57fa2\"\n },\n \"marketCapRank\": 1352\n },\n {\n \"id\": \"primal-b3099cd0-995a-4311-80d5-9c133153b38e\",\n \"symbol\": \"primal\",\n \"name\": \"PRIMAL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xcb5327ed4649548e0d73e70b633cdfd99af6da87\",\n \"ethereum\": \"0xdd13dedecebda566322195bc4451d672a148752c\",\n \"step-network\": \"0x0bbe45a033aab7a90006c05aa648efd3d2993f9e\"\n },\n \"marketCapRank\": 2560\n },\n {\n \"id\": \"prism\",\n \"symbol\": \"prism\",\n \"name\": \"Prism\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"PRSMNsEPqhGVCH1TtWiJqPjJyh2cKrLostPZTNy1o5x\"\n },\n \"marketCapRank\": 1694\n },\n {\n \"id\": \"probit-exchange\",\n \"symbol\": \"prob\",\n \"name\": \"Probit\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfb559ce67ff522ec0b9ba7f5dc9dc7ef6c139803\"\n },\n \"marketCapRank\": 2096\n },\n {\n \"id\": \"propy\",\n \"symbol\": \"pro\",\n \"name\": \"Propy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x226bb599a12c826476e3a771454697ea52e9e220\"\n },\n \"marketCapRank\": 495\n },\n {\n \"id\": \"project-with\",\n \"symbol\": \"wiken\",\n \"name\": \"Project WITH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x275f942985503d8ce9558f8377cc526a3aba3566\"\n },\n \"marketCapRank\": 1279\n },\n {\n \"id\": \"prometeus\",\n \"symbol\": \"prom\",\n \"name\": \"Prom\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfc82bb4ba86045af6f327323a46e80412b91b27d\",\n \"binance-smart-chain\": \"0xaf53d56ff99f1322515e54fdde93ff8b3b7dafd5\"\n },\n \"marketCapRank\": 298\n },\n {\n \"id\": \"propbase\",\n \"symbol\": \"props\",\n \"name\": \"Propbase\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"aptos\": \"0xe50684a338db732d8fb8a3ac71c4b8633878bd0193bca5de2ebc852a83b35099\"\n },\n \"marketCapRank\": 628\n },\n {\n \"id\": \"propchain\",\n \"symbol\": \"propc\",\n \"name\": \"Propchain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9ff58067bd8d239000010c154c6983a325df138e\"\n },\n \"marketCapRank\": 595\n },\n {\n \"id\": \"prosper\",\n \"symbol\": \"pros\",\n \"name\": \"Prosper\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8642a849d0dcb7a15a974794668adcfbe4794b56\",\n \"polygon-pos\": \"0x6109cb051c5c64093830121ed76272ab04bbdd7c\",\n \"binance-smart-chain\": \"0xed8c8aa8299c10f067496bb66f8cc7fb338a3405\"\n },\n \"marketCapRank\": 1242\n },\n {\n \"id\": \"protectorate-protocol\",\n \"symbol\": \"prtc\",\n \"name\": \"Protectorate Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb9098d3669a78e9afe8b94a97290407400d9da31\"\n },\n \"marketCapRank\": 2276\n },\n {\n \"id\": \"proteo-defi\",\n \"symbol\": \"proteo\",\n \"name\": \"Proteo DeFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"elrond\": \"PROTEO-0c7311\"\n },\n \"marketCapRank\": 2371\n },\n {\n \"id\": \"proton\",\n \"symbol\": \"xpr\",\n \"name\": \"XPR Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd7efb00d12c2c13131fd319336fdf952525da2af\",\n \"binance-smart-chain\": \"0x5de3939b2f811a61d830e6f52d13b066881412ab\"\n },\n \"marketCapRank\": 778\n },\n {\n \"id\": \"proximax\",\n \"symbol\": \"xpx\",\n \"name\": \"ProximaX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6f3aaf802f57d045efdd2ac9c06d8879305542af\"\n },\n \"marketCapRank\": 1737\n },\n {\n \"id\": \"pstake-finance\",\n \"symbol\": \"pstake\",\n \"name\": \"pSTAKE Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfb5c6815ca3ac72ce9f5006869ae67f18bf77006\",\n \"binance-smart-chain\": \"0x4c882ec256823ee773b25b414d36f92ef58a7c0c\"\n },\n \"marketCapRank\": 705\n },\n {\n \"id\": \"pumlx\",\n \"symbol\": \"pumlx\",\n \"name\": \"PUMLx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8c088775e4139af116ac1fa6f281bbf71e8c1c73\"\n },\n \"marketCapRank\": 2378\n },\n {\n \"id\": \"pundi-x\",\n \"symbol\": \"npxs\",\n \"name\": \"Pundi X [OLD]\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa15c7ebe1f07caf6bff097d8a589fb8ac49ae5b3\",\n \"energi\": \"0x1bf6ea422574e0f5d336083a771768cb4e11390d\"\n },\n \"marketCapRank\": 593\n },\n {\n \"id\": \"pundi-x-2\",\n \"symbol\": \"pundix\",\n \"name\": \"Pundi X\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0fd10b9899882a6f2fcb5c371e17e70fdee00c38\"\n },\n \"marketCapRank\": 382\n },\n {\n \"id\": \"pundi-x-purse\",\n \"symbol\": \"purse\",\n \"name\": \"Pundi X PURSE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x29a63f4b209c29b4dc47f06ffa896f32667dad2c\",\n \"function-x\": \"0x5fd55a1b9fc24967c4db09c513c3ba0dfa7ff687\",\n \"ethereum\": \"0x95987b0cdc7f65d989a30b3b7132a38388c548eb\"\n },\n \"marketCapRank\": 1570\n },\n {\n \"id\": \"purefi\",\n \"symbol\": \"ufi\",\n \"name\": \"PureFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcda4e840411c00a614ad9205caec807c7458a0e3\",\n \"binance-smart-chain\": \"0xe2a59d5e33c6540e18aaa46bf98917ac3158db0d\",\n \"polygon-pos\": \"0x3c205c8b3e02421da82064646788c82f7bd753b9\"\n },\n \"marketCapRank\": 1217\n },\n {\n \"id\": \"pussy-financial\",\n \"symbol\": \"pussy\",\n \"name\": \"Pussy Financial\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9196e18bc349b1f64bc08784eae259525329a1ad\",\n \"binance-smart-chain\": \"0xd9e8d20bde081600fac0d94b88eafaddce55aa43\"\n },\n \"marketCapRank\": 2133\n },\n {\n \"id\": \"pyth-network\",\n \"symbol\": \"pyth\",\n \"name\": \"Pyth Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3\",\n \"manta-pacific\": \"0x90e95735378a31bfad2dcd87128fbb80ffeb6917\",\n \"neon-evm\": \"0x0575dd4afd93b7522fee4e0179f243eca3856137\"\n },\n \"marketCapRank\": 86\n },\n {\n \"id\": \"qanplatform\",\n \"symbol\": \"qanx\",\n \"name\": \"QANplatform\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaaa9214f675316182eaa21c85f0ca99160cc3aaa\",\n \"binance-smart-chain\": \"0xaaa9214f675316182eaa21c85f0ca99160cc3aaa\"\n },\n \"marketCapRank\": 423\n },\n {\n \"id\": \"qash\",\n \"symbol\": \"qash\",\n \"name\": \"QASH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x618e75ac90b12c6049ba3b27f5d5f8651b0037f6\"\n },\n \"marketCapRank\": 1149\n },\n {\n \"id\": \"qlink\",\n \"symbol\": \"qlc\",\n \"name\": \"Kepple [OLD]\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1427\n },\n {\n \"id\": \"qmall\",\n \"symbol\": \"qmall\",\n \"name\": \"Qmall\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x07e551e31a793e20dc18494ff6b03095a8f8ee36\",\n \"ethereum\": \"0x2217e5921b7edfb4bb193a6228459974010d2198\",\n \"velas\": \"0x2217e5921b7edfb4bb193a6228459974010d2198\"\n },\n \"marketCapRank\": 1742\n },\n {\n \"id\": \"qredo\",\n \"symbol\": \"qrdo\",\n \"name\": \"Qredo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4123a133ae3c521fd134d7b13a2dec35b56c2463\"\n },\n \"marketCapRank\": 689\n },\n {\n \"id\": \"qrolli\",\n \"symbol\": \"qr\",\n \"name\": \"Qrolli\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xccdb064a41afcd432bcea6f6d0d1e7c371d0b002\"\n },\n \"marketCapRank\": 2261\n },\n {\n \"id\": \"qtum\",\n \"symbol\": \"qtum\",\n \"name\": \"Qtum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 190\n },\n {\n \"id\": \"quadency\",\n \"symbol\": \"quad\",\n \"name\": \"Quadency\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xab2a7b5876d707e0126b3a75ef7781c77c8877ee\"\n },\n \"marketCapRank\": 2291\n },\n {\n \"id\": \"quadrant-protocol\",\n \"symbol\": \"equad\",\n \"name\": \"Quadrant Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc28e931814725bbeb9e670676fabbcb694fe7df2\"\n },\n \"marketCapRank\": 1982\n },\n {\n \"id\": \"quant-network\",\n \"symbol\": \"qnt\",\n \"name\": \"Quant\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4a220e6096b25eadb88358cb44068a3248254675\",\n \"energi\": \"0x462b35452e552a66b519ecf70aedb1835d434965\"\n },\n \"marketCapRank\": 65\n },\n {\n \"id\": \"quantum-resistant-ledger\",\n \"symbol\": \"qrl\",\n \"name\": \"Quantum Resistant Ledger\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1095\n },\n {\n \"id\": \"quark-chain\",\n \"symbol\": \"qkc\",\n \"name\": \"QuarkChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xea26c4ac16d4a5a106820bc8aee85fd0b7b2b664\",\n \"energi\": \"0x02c6c53930b20bced86ddf64007bebcd923e1093\"\n },\n \"marketCapRank\": 505\n },\n {\n \"id\": \"quasar-2\",\n \"symbol\": \"qsr\",\n \"name\": \"Quasar\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 494\n },\n {\n \"id\": \"quick\",\n \"symbol\": \"quick\",\n \"name\": \"Quickswap [OLD]\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6c28aef8977c9b773996d0e8376d2ee379446f2f\",\n \"polygon-pos\": \"0x831753dd7087cac61ab5644b308642cc1c33dc13\"\n },\n \"marketCapRank\": 739\n },\n {\n \"id\": \"quidd\",\n \"symbol\": \"quidd\",\n \"name\": \"Quidd\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xda9fdab21bc4a5811134a6e0ba6ca06624e67c07\",\n \"polygon-pos\": \"0x123706cdd8e60324e610e9a2cc7012d0f45a5b8e\",\n \"binance-smart-chain\": \"0x7961ade0a767c0e5b67dd1a1f78ba44f727642ed\"\n },\n \"marketCapRank\": 3058\n },\n {\n \"id\": \"quint\",\n \"symbol\": \"quint\",\n \"name\": \"Quint\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x64619f611248256f7f4b72fe83872f89d5d60d64\"\n },\n \"marketCapRank\": 1746\n },\n {\n \"id\": \"quiztok\",\n \"symbol\": \"qtcon\",\n \"name\": \"Quiztok\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1bf7fd22709733ccd7c45ab27dd02c7ec8e50078\",\n \"solana\": \"DkNihsQs1hqEwf9TgKP8FmGv7dmMQ7hnKjS2ZSmMZZBE\"\n },\n \"marketCapRank\": 1215\n },\n {\n \"id\": \"r\",\n \"symbol\": \"r\",\n \"name\": \"R\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2381\n },\n {\n \"id\": \"rabbitx\",\n \"symbol\": \"rbx\",\n \"name\": \"RabbitX\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3ba925fdeae6b46d0bb4d424d829982cb2f7309e\"\n },\n \"marketCapRank\": 1006\n },\n {\n \"id\": \"radicle\",\n \"symbol\": \"rad\",\n \"name\": \"Radworks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x31c8eacbffdd875c74b94b077895bd78cf1e64a3\"\n },\n \"marketCapRank\": 408\n },\n {\n \"id\": \"radiant\",\n \"symbol\": \"rxd\",\n \"name\": \"Radiant\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1091\n },\n {\n \"id\": \"radiant-capital\",\n \"symbol\": \"rdnt\",\n \"name\": \"Radiant Capital\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x3082cc23568ea640225c2467653db90e9250aaa0\",\n \"ethereum\": \"0x137ddb47ee24eaa998a535ab00378d6bfa84f893\",\n \"binance-smart-chain\": \"0xf7de7e8a6bd59ed41a4b5fe50278b3b7f31384df\"\n },\n \"marketCapRank\": 393\n },\n {\n \"id\": \"radioshack\",\n \"symbol\": \"radio\",\n \"name\": \"RadioShack\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x613a489785c95afeb3b404cc41565ccff107b6e0\",\n \"avalanche\": \"0x02bfd11499847003de5f0f5aa081c43854d48815\",\n \"optimistic-ethereum\": \"0xf899e3909b4492859d44260e1de41a9e663e70f5\",\n \"binance-smart-chain\": \"0x30807d3b851a31d62415b8bb7af7dca59390434a\",\n \"ethereum\": \"0x7a5d3a9dcd33cb8d527f7b5f96eb4fef43d55636\",\n \"cronos\": \"0xf899e3909b4492859d44260e1de41a9e663e70f5\",\n \"fantom\": \"0xf899e3909b4492859d44260e1de41a9e663e70f5\"\n },\n \"marketCapRank\": 2241\n },\n {\n \"id\": \"radix\",\n \"symbol\": \"xrd\",\n \"name\": \"Radix\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 134\n },\n {\n \"id\": \"rae-token\",\n \"symbol\": \"rae\",\n \"name\": \"Receive Access Ecosystem\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe5a3229ccb22b6484594973a03a3851dcd948756\"\n },\n \"marketCapRank\": 1671\n },\n {\n \"id\": \"rai\",\n \"symbol\": \"rai\",\n \"name\": \"Rai Reflex Index\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x03ab458634910aad20ef5f1c8ee96f1d6ac54919\",\n \"avalanche\": \"0x97cd1cfe2ed5712660bb6c14053c0ecb031bff7d\",\n \"optimistic-ethereum\": \"0x7fb688ccf682d58f86d7e38e03f9d22e7705448b\",\n \"polygon-pos\": \"0x00e5646f60ac6fb446f621d146b6e1886f002905\"\n },\n \"marketCapRank\": 1787\n },\n {\n \"id\": \"raiden-network\",\n \"symbol\": \"rdn\",\n \"name\": \"Raiden Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x255aa6df07540cb5d3d297f0d0d4d84cb52bc8e6\"\n },\n \"marketCapRank\": 2458\n },\n {\n \"id\": \"rai-finance\",\n \"symbol\": \"sofi\",\n \"name\": \"RAI Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb49fa25978abf9a248b8212ab4b87277682301c0\",\n \"base\": \"0x703d57164ca270b0b330a87fd159cfef1490c0a5\",\n \"binance-smart-chain\": \"0x1a28ed8472f644e8898a169a644503b779748d6e\"\n },\n \"marketCapRank\": 1206\n },\n {\n \"id\": \"railgun\",\n \"symbol\": \"rail\",\n \"name\": \"Railgun\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe76c6c83af64e4c60245d8c7de953df673a7a33d\"\n },\n \"marketCapRank\": 979\n },\n {\n \"id\": \"rainbow-token-2\",\n \"symbol\": \"rbw\",\n \"name\": \"Rainbow Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x431cd3c9ac9fc73644bf68bf5691f4b83f9e104f\"\n },\n \"marketCapRank\": 1379\n },\n {\n \"id\": \"rake-com\",\n \"symbol\": \"rake\",\n \"name\": \"Rake.com\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6553565eac5daa9bfc5e2892b36291634c9b2ad6\"\n },\n \"marketCapRank\": 1699\n },\n {\n \"id\": \"rally-2\",\n \"symbol\": \"rly\",\n \"name\": \"Rally\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf1f955016ecbcd7321c7266bccfb96c68ea5e49b\"\n },\n \"marketCapRank\": 492\n },\n {\n \"id\": \"ramses-exchange\",\n \"symbol\": \"ram\",\n \"name\": \"Ramses Exchange\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xaaa6c1e32c55a7bfa8066a6fae9b42650f262418\"\n },\n \"marketCapRank\": 1742\n },\n {\n \"id\": \"ramp\",\n \"symbol\": \"ramp\",\n \"name\": \"RAMP [OLD]\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x33d0568941c0c64ff7e0fb4fba0b11bd37deed9f\",\n \"binance-smart-chain\": \"0x8519ea49c997f50ceffa444d240fb655e89248aa\",\n \"polygon-pos\": \"0xaecebfcf604ad245eaf0d5bd68459c3a7a6399c2\"\n },\n \"marketCapRank\": 875\n },\n {\n \"id\": \"rangers-protocol-gas\",\n \"symbol\": \"rpg\",\n \"name\": \"Rangers Protocol Gas\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1f16d41f9b3db03b462bdd6c92245ee708d1c103\",\n \"binance-smart-chain\": \"0x61dc650c10ec3c758d251cd2d1ab45af1a43e941\"\n },\n \"marketCapRank\": 1193\n },\n {\n \"id\": \"raptoreum\",\n \"symbol\": \"rtm\",\n \"name\": \"Raptoreum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1706\n },\n {\n \"id\": \"rarible\",\n \"symbol\": \"rari\",\n \"name\": \"RARI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfca59cd816ab1ead66534d82bc21e7515ce441cf\",\n \"energi\": \"0x87ce5dde0595d9306db44dc0baa9703ace18c415\"\n },\n \"marketCapRank\": 703\n },\n {\n \"id\": \"rari-governance-token\",\n \"symbol\": \"rgt\",\n \"name\": \"Rari Governance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd291e7a03283640fdc51b121ac401383a46cc623\",\n \"arbitrum-one\": \"0xef888bca6ab6b1d26dbec977c455388ecd794794\",\n \"fantom\": \"0xcf726a06f3dcec8ef2b033336d138caa0eae5af2\",\n \"polygon-pos\": \"0xf4bb0ed25ac7bcc9c327b88bac5ca288a08ec41e\",\n \"energi\": \"0xf4bb0ed25ac7bcc9c327b88bac5ca288a08ec41e\"\n },\n \"marketCapRank\": 1863\n },\n {\n \"id\": \"ravencoin\",\n \"symbol\": \"rvn\",\n \"name\": \"Ravencoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 160\n },\n {\n \"id\": \"revenue-coin\",\n \"symbol\": \"rvc\",\n \"name\": \"Revenue Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xbcbdecf8e76a5c32dba69de16985882ace1678c6\"\n },\n \"marketCapRank\": 2069\n },\n {\n \"id\": \"raven-protocol\",\n \"symbol\": \"raven\",\n \"name\": \"Raven Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binancecoin\": \"RAVEN-F66\",\n \"binance-smart-chain\": \"0xcd7c5025753a49f1881b31c48caa7c517bb46308\"\n },\n \"marketCapRank\": 1597\n },\n {\n \"id\": \"raydium\",\n \"symbol\": \"ray\",\n \"name\": \"Raydium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R\"\n },\n \"marketCapRank\": 171\n },\n {\n \"id\": \"razor-network\",\n \"symbol\": \"razor\",\n \"name\": \"Razor Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x50de6856358cc35f3a9a57eaaa34bd4cb707d2cd\",\n \"binance-smart-chain\": \"0x50de6856358cc35f3a9a57eaaa34bd4cb707d2cd\",\n \"polygon-pos\": \"0xc91c06db0f7bffba61e2a5645cc15686f0a8c828\"\n },\n \"marketCapRank\": 1803\n },\n {\n \"id\": \"realfevr\",\n \"symbol\": \"fevr\",\n \"name\": \"RealFevr\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x82030cdbd9e4b7c5bb0b811a61da6360d69449cc\",\n \"avalanche\": \"0x73178fceb736a9d6c1a9ef1fe413f09cba2d4a68\",\n \"ethereum\": \"0x9fb83c0635de2e815fd1c21b3a292277540c2e8d\",\n \"polygon-pos\": \"0xe6b9d092223f39013656702a40dbe6b7decc5746\"\n },\n \"marketCapRank\": 1877\n },\n {\n \"id\": \"realm\",\n \"symbol\": \"realm\",\n \"name\": \"Realm\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x464fdb8affc9bac185a7393fd4298137866dcfb8\",\n \"binance-smart-chain\": \"0x464fdb8affc9bac185a7393fd4298137866dcfb8\"\n },\n \"marketCapRank\": 2075\n },\n {\n \"id\": \"rebel-bots\",\n \"symbol\": \"rbls\",\n \"name\": \"Rebel Bots\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xe26cda27c13f4f87cffc2f437c5900b27ebb5bbb\"\n },\n \"marketCapRank\": 1520\n },\n {\n \"id\": \"reboot\",\n \"symbol\": \"gg\",\n \"name\": \"Reboot\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x000000000026839b3f4181f2cf69336af6153b99\",\n \"arbitrum-nova\": \"0x000000000026839b3f4181f2cf69336af6153b99\"\n },\n \"marketCapRank\": 1643\n },\n {\n \"id\": \"redacted\",\n \"symbol\": \"btrfly\",\n \"name\": \"Redacted\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc55126051b22ebb829d00368f4b12bde432de5da\"\n },\n \"marketCapRank\": 583\n },\n {\n \"id\": \"reddcoin\",\n \"symbol\": \"rdd\",\n \"name\": \"Reddcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2029\n },\n {\n \"id\": \"redfox-labs-2\",\n \"symbol\": \"rfox\",\n \"name\": \"RFOX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa1d6df714f91debf4e0802a542e13067f31b8262\",\n \"energi\": \"0xaad4add9b6ed577f3fe9e6bccbbe3bdce596b062\",\n \"binance-smart-chain\": \"0x0a3a21356793b49154fd3bbe91cbc2a16c0457f5\"\n },\n \"marketCapRank\": 1470\n },\n {\n \"id\": \"reef\",\n \"symbol\": \"reef\",\n \"name\": \"Reef\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfe3e6a25e6b192a42a44ecddcd13796471735acf\",\n \"sora\": \"0x0004d3168f737e96b66b72fbb1949a2a23d4ef87182d1e8bf64096f1bb348e0b\",\n \"energi\": \"0x2c969b248144dc371b428705da84b413203d9e76\",\n \"binance-smart-chain\": \"0xf21768ccbc73ea5b6fd3c687208a7c2def2d966e\",\n \"harmony-shard-0\": \"0x9ab0db833557d95aff98c09b560145ad34e681b8\"\n },\n \"marketCapRank\": 619\n },\n {\n \"id\": \"ref-finance\",\n \"symbol\": \"ref\",\n \"name\": \"Ref Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"near-protocol\": \"token.v2.ref-finance.near\"\n },\n \"marketCapRank\": 1304\n },\n {\n \"id\": \"refund\",\n \"symbol\": \"rfd\",\n \"name\": \"Refund\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x955d5c14c8d4944da1ea7836bd44d54a8ec35ba1\"\n },\n \"marketCapRank\": 1663\n },\n {\n \"id\": \"regen\",\n \"symbol\": \"regen\",\n \"name\": \"Regen\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/1DCC8A6CB5689018431323953344A9F6CC4D0BFB261E88C9F7777372C10CD076\",\n \"evmos\": \"0x0ce35b0d42608ca54eb7bcc8044f7087c18e7717\"\n },\n \"marketCapRank\": 1401\n },\n {\n \"id\": \"rejuve-ai\",\n \"symbol\": \"rjv\",\n \"name\": \"Rejuve.AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa1f410f13b6007fca76833ee7eb58478d47bc5ef\",\n \"cardano\": \"8cfd6893f5f6c1cc954cec1a0a1460841b74da6e7803820dde62bb78\",\n \"binance-smart-chain\": \"0x602b6c6cce5f95c00603bd07d8fa7ebaf3747d44\"\n },\n \"marketCapRank\": 1077\n },\n {\n \"id\": \"renbtc\",\n \"symbol\": \"renbtc\",\n \"name\": \"renBTC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xeb4c2781e4eba804ce9a9803c67d0893436bb27d\",\n \"sora\": \"0x00438aac3a91cc6cee0c8d2f14e4bf7ec4512ca708b180cc0fda47b0eb1ad538\",\n \"binance-smart-chain\": \"0xfce146bf3146100cfe5db4129cf6c82b0ef4ad8c\",\n \"polygon-pos\": \"0xdbf31df14b66535af65aac99c32e9ea844e14501\",\n \"harmony-shard-0\": \"0x41ca97b94d5dee79195856034d196ddfa0d43edd\"\n },\n \"marketCapRank\": 1156\n },\n {\n \"id\": \"render-token\",\n \"symbol\": \"rndr\",\n \"name\": \"Render\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6de037ef9ad2725eb40118bb1702ebb27e4aeb24\",\n \"polygon-pos\": \"0x61299774020da444af134c82fa83e3810b309991\",\n \"solana\": \"rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof\"\n },\n \"marketCapRank\": 35\n },\n {\n \"id\": \"renewable-energy\",\n \"symbol\": \"ret\",\n \"name\": \"Renewable Energy\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x10b9dd394467f2cfbc769e07e88dc7e2c41b0965\"\n },\n \"marketCapRank\": 1980\n },\n {\n \"id\": \"republic-protocol\",\n \"symbol\": \"ren\",\n \"name\": \"Ren\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x408e41876cccdc0f92210600ef50372656052a38\",\n \"harmony-shard-0\": \"0x451e129b6045b6e4f48e7247388f21163f7743b7\",\n \"sora\": \"0x00e8a7823b8207e4cab2e46cd10b54d1be6b82c284037b6ee76afd52c0dceba6\",\n \"energi\": \"0x83ab721c8b3dd30ad711460f666371366550c5a7\",\n \"near-protocol\": \"408e41876cccdc0f92210600ef50372656052a38.factory.bridge.near\"\n },\n \"marketCapRank\": 528\n },\n {\n \"id\": \"request-network\",\n \"symbol\": \"req\",\n \"name\": \"Request\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8f8221afbb33998d8584a2b05749ba73c37a938a\",\n \"polygon-pos\": \"0xb25e20de2f2ebb4cffd4d16a55c7b395e8a94762\"\n },\n \"marketCapRank\": 460\n },\n {\n \"id\": \"researchcoin\",\n \"symbol\": \"rsc\",\n \"name\": \"ResearchCoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd101dcc414f310268c37eeb4cd376ccfa507f571\"\n },\n \"marketCapRank\": 656\n },\n {\n \"id\": \"reserve-rights-token\",\n \"symbol\": \"rsr\",\n \"name\": \"Reserve Rights\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x320623b8e4ff03373931769a31fc52a4e78b5d70\",\n \"base\": \"0xab36452dbac151be02b16ca17d8919826072f64a\",\n \"energi\": \"0xfce13bb63b60f6e20ed846ae73ed242d29129800\"\n },\n \"marketCapRank\": 180\n },\n {\n \"id\": \"source\",\n \"symbol\": \"source\",\n \"name\": \"Source\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1139\n },\n {\n \"id\": \"reunit-wallet\",\n \"symbol\": \"reuni\",\n \"name\": \"Reunit Wallet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x9ed7e4b1bff939ad473da5e7a218c771d1569456\",\n \"avalanche\": \"0x9ed7e4b1bff939ad473da5e7a218c771d1569456\",\n \"optimistic-ethereum\": \"0x9ed7e4b1bff939ad473da5e7a218c771d1569456\",\n \"ethereum\": \"0x9ed7e4b1bff939ad473da5e7a218c771d1569456\",\n \"binance-smart-chain\": \"0x9ed7e4b1bff939ad473da5e7a218c771d1569456\"\n },\n \"marketCapRank\": 2209\n },\n {\n \"id\": \"rev3al\",\n \"symbol\": \"rev3l\",\n \"name\": \"REV3AL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x30b5e345c79255101b8af22a19805a6fb96ddebb\"\n },\n \"marketCapRank\": 1515\n },\n {\n \"id\": \"revain\",\n \"symbol\": \"rev\",\n \"name\": \"Revain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2ef52ed7de8c5ce03a4ef0efbe9b7450f2d7edc9\",\n \"tron\": \"TD4bVgcwj3FRbmAo283HxNvqZvY7T3uD8k\"\n },\n \"marketCapRank\": 1807\n },\n {\n \"id\": \"revenant\",\n \"symbol\": \"gamefi\",\n \"name\": \"Revenant\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"metis-andromeda\": \"0x966b25d174be6ba703e0ff80c68bb6e167236ba2\"\n },\n \"marketCapRank\": 2347\n },\n {\n \"id\": \"revest-finance\",\n \"symbol\": \"rvst\",\n \"name\": \"Revest Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x120a3879da835a5af037bb2d1456bebd6b54d4ba\"\n },\n \"marketCapRank\": 967\n },\n {\n \"id\": \"revomon-2\",\n \"symbol\": \"revo\",\n \"name\": \"Revomon\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xaab09b5cd1694d12c8c980306f5e2f5d65b00e1c\"\n },\n \"marketCapRank\": 1820\n },\n {\n \"id\": \"revv\",\n \"symbol\": \"revv\",\n \"name\": \"REVV\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x557b933a7c2c45672b610f8954a3deb39a51a8ca\",\n \"polygon-pos\": \"0x70c006878a5a50ed185ac4c87d837633923de296\",\n \"binance-smart-chain\": \"0x833f307ac507d47309fd8cdd1f835bef8d702a93\"\n },\n \"marketCapRank\": 1347\n },\n {\n \"id\": \"rhinofi\",\n \"symbol\": \"dvf\",\n \"name\": \"Rhino.fi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdddddd4301a082e62e84e43f474f044423921918\",\n \"arbitrum-one\": \"0xa7aa2921618e3d63da433829d448b58c9445a4c3\"\n },\n \"marketCapRank\": 1533\n },\n {\n \"id\": \"ribbit-meme\",\n \"symbol\": \"ribbit\",\n \"name\": \"Ribbit Meme\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb794ad95317f75c44090f64955954c3849315ffe\"\n },\n \"marketCapRank\": 2597\n },\n {\n \"id\": \"ribbon-finance\",\n \"symbol\": \"rbn\",\n \"name\": \"Ribbon Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6123b0049f904d730db3c36a31167d9d4121fa6b\"\n },\n \"marketCapRank\": 74\n },\n {\n \"id\": \"ridotto\",\n \"symbol\": \"rdt\",\n \"name\": \"Ridotto\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4740735aa98dc8aa232bd049f8f0210458e7fca3\",\n \"binance-smart-chain\": \"0xe9c64384deb0c2bf06d991a8d708c77eb545e3d5\"\n },\n \"marketCapRank\": 1508\n },\n {\n \"id\": \"rif-token\",\n \"symbol\": \"rif\",\n \"name\": \"RSK Infrastructure Framework\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"rootstock\": \"0x2acc95758f8b5f583470ba265eb685a8f45fc9d5\"\n },\n \"marketCapRank\": 291\n },\n {\n \"id\": \"rigoblock\",\n \"symbol\": \"grg\",\n \"name\": \"RigoBlock\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4fbb350052bca5417566f188eb2ebce5b19bc964\",\n \"optimistic-ethereum\": \"0xecf46257ed31c329f204eb43e254c609dee143b3\",\n \"polygon-pos\": \"0xbc0bea8e634ec838a2a45f8a43e7e16cd2a8ba99\",\n \"arbitrum-one\": \"0x7f4638a58c0615037decc86f1dae60e55fe92874\",\n \"base\": \"0x09188484e1ab980daef53a9755241d759c5b7d60\",\n \"binance-smart-chain\": \"0x3d473c3ef4cd4c909b020f48477a2ee2617a8e3c\"\n },\n \"marketCapRank\": 1207\n },\n {\n \"id\": \"ripio-credit-network\",\n \"symbol\": \"rcn\",\n \"name\": \"Ripio Credit Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf970b8e36e23f7fc3fd752eea86f8be8d83375a6\"\n },\n \"marketCapRank\": 2477\n },\n {\n \"id\": \"risitas\",\n \"symbol\": \"risita\",\n \"name\": \"Risitas\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe6f47303032a09c8c0f8ebb713c00e6ed345e8c3\",\n \"arbitrum-one\": \"0x7d86f1eaff29f076576b2ff09ce3bcc7533fd2c5\"\n },\n \"marketCapRank\": 3745\n },\n {\n \"id\": \"ritestream\",\n \"symbol\": \"rite\",\n \"name\": \"ritestream\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0808bf94d57c905f1236212654268ef82e1e594e\"\n },\n \"marketCapRank\": 1745\n },\n {\n \"id\": \"rmrk\",\n \"symbol\": \"rmrk\",\n \"name\": \"RMRK\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x524d524b4c9366be706d3a90dcf70076ca037ae3\",\n \"moonbeam\": \"0x524d524b4c9366be706d3a90dcf70076ca037ae3\",\n \"binance-smart-chain\": \"0x524d524b4c9366be706d3a90dcf70076ca037ae3\",\n \"polygon-pos\": \"0x524d524b4c9366be706d3a90dcf70076ca037ae3\",\n \"base\": \"0x524d524b4c9366be706d3a90dcf70076ca037ae3\"\n },\n \"marketCapRank\": 1140\n },\n {\n \"id\": \"roasthimjim\",\n \"symbol\": \"jim\",\n \"name\": \"Jim\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd807f7e2818db8eda0d28b5be74866338eaedb86\"\n },\n \"marketCapRank\": 2307\n },\n {\n \"id\": \"robo-inu-finance\",\n \"symbol\": \"rbif\",\n \"name\": \"Robo Inu Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0e6fa9c050c8a707e7f56a2b3695665e4f9eac9b\"\n },\n \"marketCapRank\": 1560\n },\n {\n \"id\": \"rocket-pool\",\n \"symbol\": \"rpl\",\n \"name\": \"Rocket Pool\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd33526068d116ce69f19a9ee46f0bd304f21a51f\",\n \"polygon-pos\": \"0x7205705771547cf79201111b4bd8aaf29467b9ec\",\n \"arbitrum-one\": \"0xb766039cc6db368759c1e56b79affe831d0cc507\"\n },\n \"marketCapRank\": 166\n },\n {\n \"id\": \"rocketx\",\n \"symbol\": \"rvf\",\n \"name\": \"RocketX Exchange\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdc8af07a7861bedd104b8093ae3e9376fc8596d2\",\n \"binance-smart-chain\": \"0x872a34ebb2d54af86827810eebc7b9dc6b2144aa\",\n \"polygon-pos\": \"0x2ce13e4199443fdfff531abb30c9b6594446bbc7\"\n },\n \"marketCapRank\": 806\n },\n {\n \"id\": \"roko-network\",\n \"symbol\": \"roko\",\n \"name\": \"Roko Network\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6f222e04f6c53cc688ffb0abe7206aac66a8ff98\"\n },\n \"marketCapRank\": 1334\n },\n {\n \"id\": \"rollbit-coin\",\n \"symbol\": \"rlb\",\n \"name\": \"Rollbit Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x046eee2cc3188071c02bfc1745a6b17c656e3f3d\"\n },\n \"marketCapRank\": 262\n },\n {\n \"id\": \"rome\",\n \"symbol\": \"rome\",\n \"name\": \"Rome\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"moonriver\": \"0x4a436073552044d5f2f49b176853ad3ad473d9d6\"\n },\n \"marketCapRank\": 2179\n },\n {\n \"id\": \"roobee\",\n \"symbol\": \"roobee\",\n \"name\": \"Roobee\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa31b1767e09f842ecfd4bc471fe44f830e3891aa\",\n \"avalanche\": \"0x4036f3d9c45a20f44f0b8b85dd6ca33005ff9654\",\n \"optimistic-ethereum\": \"0xb12c13e66ade1f72f71834f2fc5082db8c091358\",\n \"arbitrum-one\": \"0x3bd2dfd03bc7c3011ed7fb8c4d0949b382726cee\",\n \"polygon-pos\": \"0xfafa220145dfa5c3ec85b6fa8a75aee2451cde5e\",\n \"binance-smart-chain\": \"0xf77351d8f4ee853135961a936bb8d2e4ffa75f9d\"\n },\n \"marketCapRank\": 2505\n },\n {\n \"id\": \"rook\",\n \"symbol\": \"rook\",\n \"name\": \"Rook\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfa5047c9c78b8877af97bdcb85db743fd7313d4a\",\n \"harmony-shard-0\": \"0x08310baf9deb5f13b885edf5eea6fd19dc21af3a\",\n \"sora\": \"0x00f58df67a15fe6c45d122767251c8660f33a2c544b5e2b70084c465b7cf84e7\",\n \"energi\": \"0xf653d401a6af0ec568183d9d0714e3c5e61691d2\"\n },\n \"marketCapRank\": 2391\n },\n {\n \"id\": \"route\",\n \"symbol\": \"route\",\n \"name\": \"Router Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x16eccfdbb4ee1a85a33f3a9b21175cd7ae753db4\",\n \"avalanche\": \"0xf44ff799ea2bbfec96f9a50498209aac3c2b3b8b\",\n \"fantom\": \"0x11bbf12363dc8375b78d2719395d505f52a02f68\",\n \"aurora\": \"0xa1fc14bc890a98142443b7abc0eeccae6186cd9a\",\n \"optimistic-ethereum\": \"0x8413041a7702603d9d991f2c4add29e4e8a241f8\",\n \"arbitrum-one\": \"0x11bbf12363dc8375b78d2719395d505f52a02f68\",\n \"binance-smart-chain\": \"0xfd2700c51812753215754de9ec51cdd42bf725b9\",\n \"polygon-pos\": \"0x16eccfdbb4ee1a85a33f3a9b21175cd7ae753db4\"\n },\n \"marketCapRank\": 689\n },\n {\n \"id\": \"rowan-coin\",\n \"symbol\": \"rwn\",\n \"name\": \"Rowan Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 784\n },\n {\n \"id\": \"rss3\",\n \"symbol\": \"rss3\",\n \"name\": \"RSS3\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc98d64da73a6616c42117b582e832812e7b8d57f\"\n },\n \"marketCapRank\": 232\n },\n {\n \"id\": \"rubidium\",\n \"symbol\": \"rbd\",\n \"name\": \"Rubidium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2418\n },\n {\n \"id\": \"rug-rugged-art\",\n \"symbol\": \"rug\",\n \"name\": \"Rug\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbe33f57f41a20b2f00dec91dcc1169597f36221f\",\n \"binance-smart-chain\": \"0xea4821632b139b7f08e37533d8152d50976618c6\",\n \"solana\": \"BJRfDU8abGXmPiAj72kuc8AtXfxV8KFZAvdG3GTuB5Qc\"\n },\n \"marketCapRank\": 3052\n },\n {\n \"id\": \"rupiah-token\",\n \"symbol\": \"idrt\",\n \"name\": \"Rupiah Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x998ffe1e43facffb941dc337dd0468d52ba5b48a\",\n \"harmony-shard-0\": \"0xcefbea899cfccdc653b171d063481b622086be3f\",\n \"polygon-pos\": \"0x554cd6bdd03214b10aafa3e0d4d42de0c5d2937b\",\n \"binance-smart-chain\": \"0x66207e39bb77e6b99aab56795c7c340c08520d83\"\n },\n \"marketCapRank\": 1415\n },\n {\n \"id\": \"safe-coin-2\",\n \"symbol\": \"safe\",\n \"name\": \"SafeCoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2003\n },\n {\n \"id\": \"safe-deal\",\n \"symbol\": \"sfd\",\n \"name\": \"SafeDeal\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1181\n },\n {\n \"id\": \"safe-haven\",\n \"symbol\": \"sha\",\n \"name\": \"Safe Haven\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"vechain\": \"0x5db3c8a942333f6468176a870db36eef120a34dc\",\n \"binance-smart-chain\": \"0x40fed5691e547885cabd7a2990de719dcc8497fc\",\n \"polygon-pos\": \"0x534f39c5f4df9cb13e16b24ca07c7c8c0e2eadb7\",\n \"ethereum\": \"0x40fed5691e547885cabd7a2990de719dcc8497fc\"\n },\n \"marketCapRank\": 1962\n },\n {\n \"id\": \"safemars\",\n \"symbol\": \"safemars\",\n \"name\": \"Safemars\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x3ad9594151886ce8538c1ff615efa2385a8c3a88\"\n },\n \"marketCapRank\": 1839\n },\n {\n \"id\": \"safemoon-2\",\n \"symbol\": \"sfm\",\n \"name\": \"SafeMoon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x42981d0bfbaf196529376ee702f2a9eb9092fcb5\"\n },\n \"marketCapRank\": 615\n },\n {\n \"id\": \"safemoon-inu\",\n \"symbol\": \"smi\",\n \"name\": \"SafeMoon Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcd7492db29e2ab436e819b249452ee1bbdf52214\"\n },\n \"marketCapRank\": 2560\n },\n {\n \"id\": \"safepal\",\n \"symbol\": \"sfp\",\n \"name\": \"SafePal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x12e2b8033420270db2f3b328e32370cb5b2ca134\",\n \"binance-smart-chain\": \"0xd41fdb03ba84762dd66a0af1a6c8540ff1ba5dfb\",\n \"energi\": \"0x12490d720747e312be64029dfd475837ed285cfe\"\n },\n \"marketCapRank\": 240\n },\n {\n \"id\": \"saffron-finance\",\n \"symbol\": \"sfi\",\n \"name\": \"saffron.finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb753428af26e81097e7fd17f40c88aaa3e04902c\",\n \"energi\": \"0x09319044a98e6bb4d95a6c112789afcebe5b58ac\"\n },\n \"marketCapRank\": 2112\n },\n {\n \"id\": \"sai\",\n \"symbol\": \"sai\",\n \"name\": \"Sai\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359\"\n },\n \"marketCapRank\": 769\n },\n {\n \"id\": \"sail-2\",\n \"symbol\": \"sail\",\n \"name\": \"Clipper SAIL\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd8f1460044925d2d5c723c7054cd9247027415b7\"\n },\n \"marketCapRank\": 1792\n },\n {\n \"id\": \"saitarealty\",\n \"symbol\": \"srlty\",\n \"name\": \"SaitaRealty\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x142a774e8b52550e88e196cedd7a5835acb646d0\",\n \"binance-smart-chain\": \"0xee8ed80bb013325ea63df19233aae584e94f3826\"\n },\n \"marketCapRank\": 1966\n },\n {\n \"id\": \"saito\",\n \"symbol\": \"saito\",\n \"name\": \"Saito\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfa14fa6958401314851a17d6c5360ca29f74b57b\",\n \"binance-smart-chain\": \"0x3c6dad0475d3a1696b359dc04c99fd401be134da\"\n },\n \"marketCapRank\": 1227\n },\n {\n \"id\": \"sakai-vault\",\n \"symbol\": \"sakai\",\n \"name\": \"Sakai Vault\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x43b35e89d15b91162dea1c51133c4c93bdd1c4af\"\n },\n \"marketCapRank\": 1941\n },\n {\n \"id\": \"salt\",\n \"symbol\": \"salt\",\n \"name\": \"SALT\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4156d3342d5c385a87d264f90653733592000581\"\n },\n \"marketCapRank\": 2382\n },\n {\n \"id\": \"samoyedcoin\",\n \"symbol\": \"samo\",\n \"name\": \"Samoyedcoin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU\"\n },\n \"marketCapRank\": 696\n },\n {\n \"id\": \"samsunspor-fan-token\",\n \"symbol\": \"sam\",\n \"name\": \"Samsunspor Fan Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xfc21c38f4802ab29aed8cc7367542a0955cfa9d7\"\n },\n \"marketCapRank\": 2050\n },\n {\n \"id\": \"sandclock\",\n \"symbol\": \"quartz\",\n \"name\": \"Sandclock\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba8a621b4a54e61c442f5ec623687e2a942225ef\",\n \"polygon-pos\": \"0xa91fe5a535967f52d3abebdffb3b306d964ace13\"\n },\n \"marketCapRank\": 2518\n },\n {\n \"id\": \"the-sandbox\",\n \"symbol\": \"sand\",\n \"name\": \"The Sandbox\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3845badade8e6dff049820680d1f14bd3903a5d0\",\n \"harmony-shard-0\": \"0x35de8649e1e4fd1a7bd3b14f7e24e5e7887174ed\",\n \"polygon-pos\": \"0xbbba073c31bf03b8acf7c28ef0738decf3695683\",\n \"energi\": \"0x73a4ac88c12d66ad08c1cfc891bf47883919ba74\"\n },\n \"marketCapRank\": 77\n },\n {\n \"id\": \"sanin-inu\",\n \"symbol\": \"sani\",\n \"name\": \"Sanin Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4521c9ad6a3d423c7252e092ed238be11f8b342f\"\n },\n \"marketCapRank\": 1942\n },\n {\n \"id\": \"sats-ordinals\",\n \"symbol\": \"sats\",\n \"name\": \"SATS (Ordinals)\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ordinals\": \"9b664bdd6f5ed80d8d88957b63364c41f3ad4efb8eee11366aa16435974d9333i0\"\n },\n \"marketCapRank\": 109\n },\n {\n \"id\": \"trustswap\",\n \"symbol\": \"swap\",\n \"name\": \"TrustSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcc4304a31d09258b0029ea7fe63d032f52e44efe\",\n \"energi\": \"0x324a1e5707f356218356c95cfe20d5d9b1440f30\",\n \"polygon-pos\": \"0x3809dcdd5dde24b37abe64a5a339784c3323c44f\",\n \"avalanche\": \"0xc7b5d72c836e718cda8888eaf03707faef675079\",\n \"binance-smart-chain\": \"0x82443a77684a7da92fdcb639c8d2bd068a596245\"\n },\n \"marketCapRank\": 1110\n },\n {\n \"id\": \"satt\",\n \"symbol\": \"satt\",\n \"name\": \"SaTT\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdf49c9f599a0a9049d97cff34d0c30e468987389\"\n },\n \"marketCapRank\": 3102\n },\n {\n \"id\": \"saucerswap\",\n \"symbol\": \"sauce\",\n \"name\": \"SaucerSwap\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"hedera-hashgraph\": \"0x00000000000000000000000000000000000b2ad5\"\n },\n \"marketCapRank\": 560\n },\n {\n \"id\": \"savage\",\n \"symbol\": \"savg\",\n \"name\": \"SAVAGE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x981aecc6eb4d382b96a02b75e931900705e95a31\"\n },\n \"marketCapRank\": 1880\n },\n {\n \"id\": \"saveplanetearth\",\n \"symbol\": \"spe\",\n \"name\": \"SavePlanetEarth\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4ac81e3631dcda62109e3117c4cae7bf70bbbbd2\"\n },\n \"marketCapRank\": 1809\n },\n {\n \"id\": \"sbtc\",\n \"symbol\": \"sbtc\",\n \"name\": \"sBTC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfe18be6b3bd88a2d2a7f928d00292e7a9963cfc6\"\n },\n \"marketCapRank\": 1220\n },\n {\n \"id\": \"scallop\",\n \"symbol\": \"sclp\",\n \"name\": \"Scallop\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf2c96e402c9199682d5ded26d3771c6b192c01af\"\n },\n \"marketCapRank\": 821\n },\n {\n \"id\": \"siren\",\n \"symbol\": \"si\",\n \"name\": \"Siren\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd23ac27148af6a2f339bd82d0e3cff380b5093de\"\n },\n \"marketCapRank\": 2417\n },\n {\n \"id\": \"secret\",\n \"symbol\": \"scrt\",\n \"name\": \"Secret\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"secret\": \"secret1k0jntykt7e4g3y88ltc60czgjuqdy4c9e8fzek\"\n },\n \"marketCapRank\": 365\n },\n {\n \"id\": \"seedify-fund\",\n \"symbol\": \"sfund\",\n \"name\": \"Seedify.fund\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x477bc8d23c634c154061869478bce96be6045d12\",\n \"ethereum\": \"0x560363bda52bc6a44ca6c8c9b4a5fadbda32fa60\",\n \"arbitrum-one\": \"0x560363bda52bc6a44ca6c8c9b4a5fadbda32fa60\"\n },\n \"marketCapRank\": 285\n },\n {\n \"id\": \"sei-network\",\n \"symbol\": \"sei\",\n \"name\": \"Sei\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 60\n },\n {\n \"id\": \"senate\",\n \"symbol\": \"senate\",\n \"name\": \"SENATE\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x34be5b8c30ee4fde069dc878989686abe9884470\"\n },\n \"marketCapRank\": 1322\n },\n {\n \"id\": \"send-token\",\n \"symbol\": \"send\",\n \"name\": \"/send\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3f14920c99beb920afa163031c4e47a3e03b3e4a\",\n \"base\": \"0x3f14920c99beb920afa163031c4e47a3e03b3e4a\"\n },\n \"marketCapRank\": 1425\n },\n {\n \"id\": \"sentinel\",\n \"symbol\": \"dvpn\",\n \"name\": \"Sentinel\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/9712DBB13B9631EDFA9BF61B55F1B2D290B2ADB67E3A4EB3A875F3B6081B3B84\"\n },\n \"marketCapRank\": 846\n },\n {\n \"id\": \"status\",\n \"symbol\": \"snt\",\n \"name\": \"Status\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x744d70fdbe2ba4cf95131626614a1763df805b9e\",\n \"energi\": \"0x6bb14afedc740dce4904b7a65807fe3b967f4c94\"\n },\n \"marketCapRank\": 345\n },\n {\n \"id\": \"sentinel-protocol\",\n \"symbol\": \"upp\",\n \"name\": \"Sentinel Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc86d054809623432210c107af2e3f619dcfbf652\"\n },\n \"marketCapRank\": 723\n },\n {\n \"id\": \"serum\",\n \"symbol\": \"srm\",\n \"name\": \"Serum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x476c5e26a75bd202a9683ffd34359c0cc15be0ff\",\n \"energi\": \"0x83af4137ed450f4765a72831dd938b5203f5d2fb\",\n \"tomochain\": \"0xc01643ac912b6a8ffc50cf8c1390934a6142bc91\",\n \"solana\": \"SRMuApVNdxXokk5GT7XD5cUUgXMBCoAz2LHeuAoKWRt\"\n },\n \"marketCapRank\": 1070\n },\n {\n \"id\": \"seth2\",\n \"symbol\": \"seth2\",\n \"name\": \"sETH2\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfe2e637202056d30016725477c5da089ab0a043a\"\n },\n \"marketCapRank\": 588\n },\n {\n \"id\": \"shibadoge\",\n \"symbol\": \"shibdoge\",\n \"name\": \"ShibaDoge\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6adb2e268de2aa1abf6578e4a8119b960e02928f\"\n },\n \"marketCapRank\": 1936\n },\n {\n \"id\": \"shiba-predator\",\n \"symbol\": \"qom\",\n \"name\": \"Shiba Predator\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa71d0588eaf47f12b13cf8ec750430d21df04974\"\n },\n \"marketCapRank\": 1017\n },\n {\n \"id\": \"synesis-one\",\n \"symbol\": \"sns\",\n \"name\": \"Synesis One\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"SNSNkV9zfG5ZKWQs6x4hxvBRV6s8SqMfSGCtECDvdMd\"\n },\n \"marketCapRank\": 651\n },\n {\n \"id\": \"shiba-saga\",\n \"symbol\": \"shia\",\n \"name\": \"Shiba Saga\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x43d7e65b8ff49698d9550a7f315c87e67344fb59\"\n },\n \"marketCapRank\": 1627\n },\n {\n \"id\": \"verse-bitcoin\",\n \"symbol\": \"verse\",\n \"name\": \"Verse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x249ca82617ec3dfb2589c4c17ab7ec9765350a18\",\n \"polygon-pos\": \"0xc708d6f2153933daa50b2d0758955be0a93a8fec\"\n },\n \"marketCapRank\": 1962\n },\n {\n \"id\": \"sovryn\",\n \"symbol\": \"sov\",\n \"name\": \"Sovryn\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbdab72602e9ad40fc6a6852caf43258113b8f7a5\",\n \"rootstock\": \"0xefc78fc7d48b64958315949279ba181c2114abbd\"\n },\n \"marketCapRank\": 605\n },\n {\n \"id\": \"shiden\",\n \"symbol\": \"sdn\",\n \"name\": \"Shiden Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1184\n },\n {\n \"id\": \"shido-2\",\n \"symbol\": \"shido\",\n \"name\": \"Shido\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe2512a2f19f0388ad3d7a5263eaa82acd564827b\"\n },\n \"marketCapRank\": 896\n },\n {\n \"id\": \"shikoku\",\n \"symbol\": \"shik\",\n \"name\": \"Shikoku\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x24da31e7bb182cb2cabfef1d88db19c2ae1f5572\"\n },\n \"marketCapRank\": 2432\n },\n {\n \"id\": \"shina-inu\",\n \"symbol\": \"shi\",\n \"name\": \"Shina Inu\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x243cacb4d5ff6814ad668c3e225246efa886ad5a\"\n },\n \"marketCapRank\": 1252\n },\n {\n \"id\": \"shockwaves\",\n \"symbol\": \"neuros\",\n \"name\": \"Shockwaves\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x95b0fffabd2817959ce410070600d77bce93d454\"\n },\n \"marketCapRank\": 2081\n },\n {\n \"id\": \"shrapnel-2\",\n \"symbol\": \"shrap\",\n \"name\": \"Shrapnel\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0xd402298a793948698b9a63311404fbbee944eafd\",\n \"ethereum\": \"0x31e4efe290973ebe91b3a875a7994f650942d28f\",\n \"binance-smart-chain\": \"0x31e4efe290973ebe91b3a875a7994f650942d28f\"\n },\n \"marketCapRank\": 477\n },\n {\n \"id\": \"shroom-finance\",\n \"symbol\": \"shroom\",\n \"name\": \"Niftyx Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xed0439eacf4c4965ae4613d77a5c2efe10e5f183\"\n },\n \"marketCapRank\": 2044\n },\n {\n \"id\": \"shyft-network-2\",\n \"symbol\": \"shft\",\n \"name\": \"Shyft Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb17c88bda07d28b3838e0c1de6a30eafbcf52d85\"\n },\n \"marketCapRank\": 1539\n },\n {\n \"id\": \"siacoin\",\n \"symbol\": \"sc\",\n \"name\": \"Siacoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 175\n },\n {\n \"id\": \"siaprime-coin\",\n \"symbol\": \"scp\",\n \"name\": \"ScPrime\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1506\n },\n {\n \"id\": \"sidus\",\n \"symbol\": \"sidus\",\n \"name\": \"Sidus\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x549020a9cb845220d66d3e9c6d9f9ef61c981102\"\n },\n \"marketCapRank\": 486\n },\n {\n \"id\": \"signum\",\n \"symbol\": \"signa\",\n \"name\": \"Signum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2116\n },\n {\n \"id\": \"silent-notary\",\n \"symbol\": \"ubsn\",\n \"name\": \"Silent Notary\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x86efc496dca70bcfd92d19194290e8457a375773\"\n },\n \"marketCapRank\": 2359\n },\n {\n \"id\": \"silk-bcec1136-561c-4706-a42c-8b67d0d7f7d2\",\n \"symbol\": \"silk\",\n \"name\": \"Silk\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"secret\": \"secret1fl449muk5yq8dlad7a22nje4p5d2pnsgymhjfd\",\n \"osmosis\": \"ibc/8A025A1E70101E39DE0C0F153E582A30806D3DA16795F6D868A3AA247D2DEDF7\"\n },\n \"marketCapRank\": 1912\n },\n {\n \"id\": \"silo-finance\",\n \"symbol\": \"silo\",\n \"name\": \"Silo Finance\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6f80310ca7f2c654691d1383149fa1a57d8ab1f8\",\n \"arbitrum-one\": \"0x0341c0c0ec423328621788d4854119b97f44e391\"\n },\n \"marketCapRank\": 972\n },\n {\n \"id\": \"singularitydao\",\n \"symbol\": \"sdao\",\n \"name\": \"SingularityDAO\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x993864e43caa7f7f12953ad6feb1d1ca635b875f\",\n \"binance-smart-chain\": \"0x90ed8f1dc86388f14b64ba8fb4bbd23099f18240\"\n },\n \"marketCapRank\": 546\n },\n {\n \"id\": \"singularitynet\",\n \"symbol\": \"agix\",\n \"name\": \"SingularityNET\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5b7533812759b45c2b44c19e320ba2cd2681b542\",\n \"sora\": \"0x005e152271f8816d76221c7a0b5c6cafcb54fdfb6954dd8812f0158bfeac900d\",\n \"cardano\": \"f43a62fdc3965df486de8a0d32fe800963589c41b38946602a0dc535\"\n },\n \"marketCapRank\": 73\n },\n {\n \"id\": \"sipher\",\n \"symbol\": \"sipher\",\n \"name\": \"SIPHER\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9f52c8ecbee10e00d9faaac5ee9ba0ff6550f511\"\n },\n \"marketCapRank\": 850\n },\n {\n \"id\": \"six-network\",\n \"symbol\": \"six\",\n \"name\": \"SIX Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"stellar\": \"SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z\"\n },\n \"marketCapRank\": 1446\n },\n {\n \"id\": \"skale\",\n \"symbol\": \"skl\",\n \"name\": \"SKALE\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x00c83aecc790e8a4453e5dd3b0b4b3680501a7a7\"\n },\n \"marketCapRank\": 161\n },\n {\n \"id\": \"skeb\",\n \"symbol\": \"skeb\",\n \"name\": \"Skeb\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6d614686550b9e1c1df4b2cd8f91c9d4df66c810\"\n },\n \"marketCapRank\": 1588\n },\n {\n \"id\": \"skey-network\",\n \"symbol\": \"skey\",\n \"name\": \"Skey Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x06a01a4d579479dd5d884ebf61a31727a3d8d442\"\n },\n \"marketCapRank\": 1140\n },\n {\n \"id\": \"slam-token\",\n \"symbol\": \"slam\",\n \"name\": \"Slam\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x000851476180bfc499ea68450a5327d21c9b050e\"\n },\n \"marketCapRank\": 2421\n },\n {\n \"id\": \"smooth-love-potion\",\n \"symbol\": \"slp\",\n \"name\": \"Smooth Love Potion\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ronin\": \"0xa8754b9fa15fc18bb59458815510e40a12cd2014\",\n \"ethereum\": \"0xcc8fa225d80b9c7d42f96e9570156c65d6caaa25\",\n \"energi\": \"0xa598b856fa2d5e016d2e84a6a86ff99d69dd841e\"\n },\n \"marketCapRank\": 305\n },\n {\n \"id\": \"smardex\",\n \"symbol\": \"sdex\",\n \"name\": \"SmarDex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5de8ab7e27f6e7a1fff3e5b337584aa43961beef\",\n \"arbitrum-one\": \"0xabd587f2607542723b17f14d00d99b987c29b074\",\n \"polygon-pos\": \"0x6899face15c14348e1759371049ab64a3a06bfa6\",\n \"base\": \"0xfd4330b0312fdeec6d4225075b82e00493ff2e3f\",\n \"binance-smart-chain\": \"0xfdc66a08b0d0dc44c17bbd471b88f49f50cdd20f\"\n },\n \"marketCapRank\": 377\n },\n {\n \"id\": \"smartcredit-token\",\n \"symbol\": \"smartcredit\",\n \"name\": \"SmartCredit\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x72e9d9038ce484ee986fea183f8d8df93f9ada13\"\n },\n \"marketCapRank\": 2413\n },\n {\n \"id\": \"swarm-markets\",\n \"symbol\": \"smt\",\n \"name\": \"Swarm Markets\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb17548c7b510427baac4e267bea62e800b247173\",\n \"base\": \"0x2974dc646e375e83bd1c0342625b49f288987fa4\",\n \"polygon-pos\": \"0xe631dabef60c37a37d70d3b4f812871df663226f\"\n },\n \"marketCapRank\": 744\n },\n {\n \"id\": \"smart-valor\",\n \"symbol\": \"valor\",\n \"name\": \"Smart Valor\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x297e4e5e59ad72b1b0a2fd446929e76117be0e0a\"\n },\n \"marketCapRank\": 1358\n },\n {\n \"id\": \"snek\",\n \"symbol\": \"snek\",\n \"name\": \"Snek\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"cardano\": \"279c909f348e533da5808898f87f9a14bb2c3dfbbacccd631d927a3f\"\n },\n \"marketCapRank\": 506\n },\n {\n \"id\": \"solana\",\n \"symbol\": \"sol\",\n \"name\": \"Solana\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 5\n },\n {\n \"id\": \"solanium\",\n \"symbol\": \"slim\",\n \"name\": \"Solanium\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"xxxxa1sKNGwFtw2kFn8XauW9xq8hBZ5kVtcSesTT9fW\"\n },\n \"marketCapRank\": 955\n },\n {\n \"id\": \"solarcoin\",\n \"symbol\": \"slr\",\n \"name\": \"Solarcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"zksync\": \"0xe027d939f7de6f521675907cf086f59e4d75b876\",\n \"ethereum\": \"0x4e9e4ab99cfc14b852f552f5fb3aa68617825b6c\"\n },\n \"marketCapRank\": 2484\n },\n {\n \"id\": \"solcasino-token\",\n \"symbol\": \"scs\",\n \"name\": \"Solcasino Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"solana\": \"SCSuPPNUSypLBsV4darsrYNg4ANPgaGhKhsA3GmMyjz\"\n },\n \"marketCapRank\": 573\n },\n {\n \"id\": \"solcial\",\n \"symbol\": \"slcl\",\n \"name\": \"Solcial\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"SLCLww7nc1PD2gQPQdGayHviVVcpMthnqUz2iWKhNQV\"\n },\n \"marketCapRank\": 2158\n },\n {\n \"id\": \"soldex\",\n \"symbol\": \"solx\",\n \"name\": \"Soldex\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"CH74tuRLTYcxG7qNJCsV9rghfLXJCQJbsu7i52a8F1Gn\"\n },\n \"marketCapRank\": 3821\n },\n {\n \"id\": \"solend\",\n \"symbol\": \"slnd\",\n \"name\": \"Solend\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"SLNDpmoWTVADgEdndyvWzroNL7zSi1dF9PC3xHGtPwp\"\n },\n \"marketCapRank\": 648\n },\n {\n \"id\": \"solfarm\",\n \"symbol\": \"tulip\",\n \"name\": \"Tulip Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"TuLipcqtGVXP9XR62wM8WWCm6a9vhLs7T1uoWBk6FDs\"\n },\n \"marketCapRank\": 2321\n },\n {\n \"id\": \"solidlydex\",\n \"symbol\": \"solid\",\n \"name\": \"Solidly\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x777172d858dc1599914a1c4c6c9fc48c99a60990\",\n \"fantom\": \"0x777cf5ba9c291a1a8f57ff14836f6f9dc5c0f9dd\"\n },\n \"marketCapRank\": 1753\n },\n {\n \"id\": \"solidus-aitech\",\n \"symbol\": \"aitech\",\n \"name\": \"Solidus Ai Tech\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x2d060ef4d6bf7f9e5edde373ab735513c0e4f944\"\n },\n \"marketCapRank\": 419\n },\n {\n \"id\": \"solo-coin\",\n \"symbol\": \"solo\",\n \"name\": \"Sologenic\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 680\n },\n {\n \"id\": \"solve-care\",\n \"symbol\": \"solve\",\n \"name\": \"SOLVE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x446c9033e7516d820cc9a2ce2d0b7328b579406f\"\n },\n \"marketCapRank\": 1199\n },\n {\n \"id\": \"sombra-network\",\n \"symbol\": \"smbr\",\n \"name\": \"Sombra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x16b3e050e9e2f0ac4f1bea1b3e4fdc43d7f062dd\",\n \"ethereum\": \"0x16b3e050e9e2f0ac4f1bea1b3e4fdc43d7f062dd\"\n },\n \"marketCapRank\": 2438\n },\n {\n \"id\": \"somesing\",\n \"symbol\": \"ssx\",\n \"name\": \"SOMESING Exchange\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0xdcd62c57182e780e23d2313c4782709da85b9d6c\"\n },\n \"marketCapRank\": 1847\n },\n {\n \"id\": \"sommelier\",\n \"symbol\": \"somm\",\n \"name\": \"Sommelier\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/9BBA9A1C257E971E38C1422780CE6F0B0686F0A3085E2D61118D904BFE0F5F5E\",\n \"ethereum\": \"0xa670d7237398238de01267472c6f13e5b8010fd1\"\n },\n \"marketCapRank\": 805\n },\n {\n \"id\": \"somnium-space-cubes\",\n \"symbol\": \"cube\",\n \"name\": \"Somnium Space CUBEs\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdf801468a808a32656d2ed2d2d80b72a129739f4\"\n },\n \"marketCapRank\": 1246\n },\n {\n \"id\": \"suncontract\",\n \"symbol\": \"snc\",\n \"name\": \"SunContract\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf4134146af2d511dd5ea8cdb1c4ac88c57d60404\"\n },\n \"marketCapRank\": 1621\n },\n {\n \"id\": \"sonne-finance\",\n \"symbol\": \"sonne\",\n \"name\": \"Sonne Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"optimistic-ethereum\": \"0x1db2466d9f5e10d7090e7152b68d62703a2245f0\",\n \"base\": \"0x22a2488fe295047ba13bd8cccdbc8361dbd8cf7c\"\n },\n \"marketCapRank\": 1406\n },\n {\n \"id\": \"soonswap\",\n \"symbol\": \"soon\",\n \"name\": \"SoonVerse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x574d22e2555cac0ce71e44778f6de2e7487ae229\"\n },\n \"marketCapRank\": 1750\n },\n {\n \"id\": \"sophiaverse\",\n \"symbol\": \"soph\",\n \"name\": \"SophiaVerse\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x73fbd93bfda83b111ddc092aa3a4ca77fd30d380\",\n \"ethereum\": \"0x73fbd93bfda83b111ddc092aa3a4ca77fd30d380\"\n },\n \"marketCapRank\": 1136\n },\n {\n \"id\": \"sora\",\n \"symbol\": \"xor\",\n \"name\": \"Sora\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x40fd72257597aa14c7231a7b1aaa29fce868f677\",\n \"sora\": \"0x0200000000000000000000000000000000000000000000000000000000000000\"\n },\n \"marketCapRank\": 2092\n },\n {\n \"id\": \"source-protocol\",\n \"symbol\": \"srcx\",\n \"name\": \"Source Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x454b90716a9435e7161a9aea5cf00e0acbe565ae\"\n },\n \"marketCapRank\": 2250\n },\n {\n \"id\": \"spacechain-erc-20\",\n \"symbol\": \"spc\",\n \"name\": \"SpaceChain (ERC-20)\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x86ed939b500e121c0c5f493f399084db596dad20\"\n },\n \"marketCapRank\": 1965\n },\n {\n \"id\": \"spacefalcon\",\n \"symbol\": \"fcon\",\n \"name\": \"SpaceFalcon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"HovGjrBGTfna4dvg6exkMxXuexB3tUfEZKcut8AWowXj\"\n },\n \"marketCapRank\": 1661\n },\n {\n \"id\": \"spacen\",\n \"symbol\": \"sn\",\n \"name\": \"SpaceN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x939dd9e433552e325d78c33a16ef4cd8004d2f9c\"\n },\n \"marketCapRank\": 1281\n },\n {\n \"id\": \"spain-national-fan-token\",\n \"symbol\": \"snft\",\n \"name\": \"Spain National Football Team Fan Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"Bitcichain\": \"0x3e6f1be54feb9cc37dbfc31a894a8810357c3f9c\"\n },\n \"marketCapRank\": 2206\n },\n {\n \"id\": \"spankchain\",\n \"symbol\": \"spank\",\n \"name\": \"SpankChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x42d6622dece394b54999fbd73d108123806f6a18\"\n },\n \"marketCapRank\": 1757\n },\n {\n \"id\": \"sparkpoint\",\n \"symbol\": \"srk\",\n \"name\": \"SparkPoint\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0488401c3f535193fa8df029d9ffe615a06e74e6\",\n \"harmony-shard-0\": \"0x9500a1fbef7014dbd384633fd20bb1e6916d6fca\"\n },\n \"marketCapRank\": 2320\n },\n {\n \"id\": \"sperax\",\n \"symbol\": \"spa\",\n \"name\": \"Sperax\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x5575552988a3a80504bbaeb1311674fcfd40ad4b\",\n \"ethereum\": \"0xb4a3b0faf0ab53df58001804dda5bfc6a3d59008\"\n },\n \"marketCapRank\": 987\n },\n {\n \"id\": \"spartadex\",\n \"symbol\": \"sparta\",\n \"name\": \"SpartaDEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x11f98c7e42a367dab4f200d2fdc460fb445ce9a8\"\n },\n \"marketCapRank\": 1170\n },\n {\n \"id\": \"spell-token\",\n \"symbol\": \"spell\",\n \"name\": \"Spell\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x090185f2135308bad17527004364ebcc2d37e5f6\",\n \"avalanche\": \"0xce1bffbd5374dac86a2893119683f4911a2f7814\",\n \"fantom\": \"0x468003b688943977e6130f4f68f23aad939a1040\",\n \"arbitrum-one\": \"0x3e6648c5a70a150a88bce65f4ad4d506fe15d2af\"\n },\n \"marketCapRank\": 372\n },\n {\n \"id\": \"sphere-finance\",\n \"symbol\": \"sphere\",\n \"name\": \"Sphere Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x62f594339830b90ae4c084ae7d223ffafd9658a7\"\n },\n \"marketCapRank\": 1866\n },\n {\n \"id\": \"spheroid-universe\",\n \"symbol\": \"sph\",\n \"name\": \"Spheroid Universe\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa0cf46eb152656c7090e769916eb44a138aaa406\"\n },\n \"marketCapRank\": 1707\n },\n {\n \"id\": \"spiritswap\",\n \"symbol\": \"spirit\",\n \"name\": \"SpiritSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0x5cc61a78f164885776aa610fb0fe1257df78e59b\"\n },\n \"marketCapRank\": 1918\n },\n {\n \"id\": \"splyt\",\n \"symbol\": \"shopx\",\n \"name\": \"SHOPX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7bef710a5759d197ec0bf621c3df802c2d60d848\"\n },\n \"marketCapRank\": 1447\n },\n {\n \"id\": \"spool-dao-token\",\n \"symbol\": \"spool\",\n \"name\": \"Spool\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x40803cea2b2a32bda1be61d3604af6a814e70976\",\n \"arbitrum-one\": \"0xeca14f81085e5b8d1c9d32dcb596681574723561\"\n },\n \"marketCapRank\": 1350\n },\n {\n \"id\": \"spore\",\n \"symbol\": \"spore\",\n \"name\": \"Spore\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x6e7f5c0b9f4432716bdd0a77a3601291b9d9e985\",\n \"binance-smart-chain\": \"0x33a3d962955a3862c8093d1273344719f03ca17c\"\n },\n \"marketCapRank\": 2501\n },\n {\n \"id\": \"spx6900\",\n \"symbol\": \"spx\",\n \"name\": \"SPX6900\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe0f63a424a4439cbe457d80e4f4b51ad25b2c56c\",\n \"base\": \"0x50da645f148798f68ef2d7db7c1cb22a6819bb2c\",\n \"solana\": \"J3NKxxXZcnNiMjKw9hYb2K4LUxgwB6t1FtPtQVsv3KFr\"\n },\n \"marketCapRank\": 2171\n },\n {\n \"id\": \"squad\",\n \"symbol\": \"squad\",\n \"name\": \"Superpower Squad\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x724a32dfff9769a0a0e1f0515c0012d1fb14c3bd\",\n \"arbitrum-nova\": \"0x223fb0ceb2c6e5310264efe38151d7d083db91f1\",\n \"arbitrum-one\": \"0xd45e486a90ebb84e9336d371a35dcb021424b96c\"\n },\n \"marketCapRank\": 2551\n },\n {\n \"id\": \"squidgrow\",\n \"symbol\": \"squidgrow\",\n \"name\": \"SquidGrow\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd8fa690304d2b2824d918c0c7376e2823704557a\",\n \"ethereum\": \"0xd8fa690304d2b2824d918c0c7376e2823704557a\"\n },\n \"marketCapRank\": 1294\n },\n {\n \"id\": \"ssv-network\",\n \"symbol\": \"ssv\",\n \"name\": \"SSV Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9d65ff81a3c488d585bbfb0bfe3c7707c7917f54\"\n },\n \"marketCapRank\": 219\n },\n {\n \"id\": \"stake-dao\",\n \"symbol\": \"sdt\",\n \"name\": \"Stake DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x73968b9a57c6e53d41345fd57a6e6ae27d6cdb2f\",\n \"arbitrum-one\": \"0x7ba4a00d54a07461d9db2aef539e91409943adc9\",\n \"polygon-pos\": \"0x361a5a4993493ce00f61c32d4ecca5512b82ce90\"\n },\n \"marketCapRank\": 1278\n },\n {\n \"id\": \"stacktical\",\n \"symbol\": \"dsla\",\n \"name\": \"DSLA Protocol\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3affcca64c2a6f4e3b6bd9c64cd2c969efd1ecbe\",\n \"harmony-shard-0\": \"0x34704c70e9ec9fb9a921da6daad7d3e19f43c734\",\n \"arbitrum-one\": \"0x7ce746b45eabd0c4321538dec1b849c79a9a8476\",\n \"avalanche\": \"0xd7c295e399ca928a3a14b01d760e794f1adf8990\",\n \"polygon-pos\": \"0xa0e390e9cea0d0e8cd40048ced9fa9ea10d71639\",\n \"binance-smart-chain\": \"0x1861c9058577c3b48e73d91d6f25c18b17fbffe0\",\n \"fantom\": \"0x25a528af62e56512a19ce8c3cab427807c28cc19\"\n },\n \"marketCapRank\": 1836\n },\n {\n \"id\": \"stader-maticx\",\n \"symbol\": \"maticx\",\n \"name\": \"Stader MaticX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf03a7eb46d01d9ecaa104558c732cf82f6b6b645\",\n \"manta-pacific\": \"0x01d27580c464d5b3b26f78bee12e684901dbc02a\",\n \"polygon-pos\": \"0xfa68fb4628dff1028cfec22b4162fccd0d45efb6\"\n },\n \"marketCapRank\": 415\n },\n {\n \"id\": \"stader-sftmx\",\n \"symbol\": \"sftmx\",\n \"name\": \"BeethovenX sFTMX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0xd7028092c830b5c8fce061af2e593413ebbc1fc1\"\n },\n \"marketCapRank\": 1104\n },\n {\n \"id\": \"stafi\",\n \"symbol\": \"fis\",\n \"name\": \"Stafi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polkadot\": \"0xef3a930e1ffffacd2fc13434ac81bd278b0ecc8d\",\n \"sora\": \"0x00e6df883c9844e34b354b840e3a527f5fc6bfc937138c67908b1c8f2931f3e9\",\n \"ethereum\": \"0xef3a930e1ffffacd2fc13434ac81bd278b0ecc8d\"\n },\n \"marketCapRank\": 452\n },\n {\n \"id\": \"staked-frax-ether\",\n \"symbol\": \"sfrxeth\",\n \"name\": \"Staked Frax Ether\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xac3e018457b222d93114458476f3e3416abbe38f\",\n \"moonbeam\": \"0xecf91116348af1cffe335e9807f0051332be128d\",\n \"fantom\": \"0xb90ccd563918ff900928dc529aa01046795ccb4a\",\n \"optimistic-ethereum\": \"0x484c2d6e3cdd945a8b2df735e079178c1036578c\",\n \"arbitrum-one\": \"0x95ab45875cffdba1e5f451b950bc2e42c0053f39\",\n \"polygon-pos\": \"0x6d1fdbb266fcc09a16a22016369210a15bb95761\",\n \"binance-smart-chain\": \"0x3cd55356433c89e50dc51ab07ee0fa0a95623d53\"\n },\n \"marketCapRank\": 159\n },\n {\n \"id\": \"stfx\",\n \"symbol\": \"stfx\",\n \"name\": \"STFX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x9343e24716659a3551eb10aff9472a2dcad5db2d\",\n \"arbitrum-one\": \"0x7dd747d63b094971e6638313a6a2685e80c7fb2e\"\n },\n \"marketCapRank\": 1037\n },\n {\n \"id\": \"strikecoin\",\n \"symbol\": \"strx\",\n \"name\": \"StrikeX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd6fdde76b8c1c45b33790cc8751d5b88984c44ec\"\n },\n \"marketCapRank\": 663\n },\n {\n \"id\": \"stake-link\",\n \"symbol\": \"sdl\",\n \"name\": \"stake.link\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa95c5ebb86e0de73b4fb8c47a45b792cfea28c23\"\n },\n \"marketCapRank\": 1493\n },\n {\n \"id\": \"stakewise\",\n \"symbol\": \"swise\",\n \"name\": \"StakeWise\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x48c3399719b582dd63eb5aadf12a40b4c3f52fa2\"\n },\n \"marketCapRank\": 1286\n },\n {\n \"id\": \"stargate-finance\",\n \"symbol\": \"stg\",\n \"name\": \"Stargate Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaf5191b0de278c7286d6c7cc6ab6bb8a73ba2cd6\",\n \"avalanche\": \"0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590\",\n \"optimistic-ethereum\": \"0x296f55f8fb28e498b858d0bcda06d955b2cb3f97\",\n \"arbitrum-one\": \"0x6694340fc020c5e6b96567843da2df01b2ce1eb6\",\n \"fantom\": \"0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590\",\n \"polygon-pos\": \"0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590\",\n \"binance-smart-chain\": \"0xb0d502e938ed5f4df2e681fe6e419ff29631d62b\"\n },\n \"marketCapRank\": 406\n },\n {\n \"id\": \"starknet\",\n \"symbol\": \"strk\",\n \"name\": \"Starknet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xca14007eff0db1f8135f4c25b34de49ab0d42766\",\n \"starknet\": \"0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d\"\n },\n \"marketCapRank\": 78\n },\n {\n \"id\": \"starlink\",\n \"symbol\": \"starl\",\n \"name\": \"StarLink\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8e6cd950ad6ba651f6dd608dc70e5886b1aa6b24\"\n },\n \"marketCapRank\": 883\n },\n {\n \"id\": \"storx\",\n \"symbol\": \"srx\",\n \"name\": \"StorX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdc5d5f074837f5d4618b3916ba74de1bf9662a3fed\"\n },\n \"marketCapRank\": 1229\n },\n {\n \"id\": \"stasis-eurs\",\n \"symbol\": \"eurs\",\n \"name\": \"STASIS EURO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdb25f211ab05b1c97d595516f45794528a807ad8\",\n \"polygon-pos\": \"0xe111178a87a3bff0c8d18decba5798827539ae99\"\n },\n \"marketCapRank\": 444\n },\n {\n \"id\": \"stat\",\n \"symbol\": \"stat\",\n \"name\": \"STAT\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4fc15c91a9c4a9efb404174464687e8e128730c2\"\n },\n \"marketCapRank\": 1567\n },\n {\n \"id\": \"steem\",\n \"symbol\": \"steem\",\n \"name\": \"Steem\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 399\n },\n {\n \"id\": \"steem-dollars\",\n \"symbol\": \"sbd\",\n \"name\": \"Steem Dollars\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 672\n },\n {\n \"id\": \"stellar\",\n \"symbol\": \"xlm\",\n \"name\": \"Stellar\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 37\n },\n {\n \"id\": \"stellaswap\",\n \"symbol\": \"stella\",\n \"name\": \"StellaSwap\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"moonbeam\": \"0x0e358838ce72d5e61e0018a2ffac4bec5f4c88d2\"\n },\n \"marketCapRank\": 2056\n },\n {\n \"id\": \"step-finance\",\n \"symbol\": \"step\",\n \"name\": \"Step Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"StepAscQoEioFxxWGnh2sLBDFp9d8rvKz2Yp39iDpyT\"\n },\n \"marketCapRank\": 1032\n },\n {\n \"id\": \"step-app-fitfi\",\n \"symbol\": \"fitfi\",\n \"name\": \"Step App\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x714f020c54cc9d104b6f4f6998c63ce2a31d1888\",\n \"binance-smart-chain\": \"0x7588df009c3d82378be6ab81f2108fa963c10fc8\",\n \"step-network\": \"0xb58a9d5920af6ac1a9522b0b10f55df16686d1b6\"\n },\n \"marketCapRank\": 984\n },\n {\n \"id\": \"stima\",\n \"symbol\": \"stima\",\n \"name\": \"STIMA\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd2e5decc08a80be6538f89f9ab8ff296e2f724df\"\n },\n \"marketCapRank\": 2071\n },\n {\n \"id\": \"stobox-token\",\n \"symbol\": \"stbu\",\n \"name\": \"Stobox\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa6422e3e219ee6d4c1b18895275fe43556fd50ed\",\n \"binance-smart-chain\": \"0xb0c4080a8fa7afa11a09473f3be14d44af3f8743\",\n \"polygon-pos\": \"0xcf403036bc139d30080d2cf0f5b48066f98191bb\"\n },\n \"marketCapRank\": 1128\n },\n {\n \"id\": \"storj\",\n \"symbol\": \"storj\",\n \"name\": \"Storj\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb64ef51c888972c908cfacf59b47c1afbc0ab8ac\",\n \"harmony-shard-0\": \"0x266f341e33aa61c30c6a9af89314811a5b097cb4\",\n \"energi\": \"0xcde71daaffb6a12d584f55777d4c9e9d3c353c1e\"\n },\n \"marketCapRank\": 485\n },\n {\n \"id\": \"storm\",\n \"symbol\": \"stmx\",\n \"name\": \"StormX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa62cc35625b0c8dc1faea39d33625bb4c15bd71c\"\n },\n \"marketCapRank\": 449\n },\n {\n \"id\": \"stp-network\",\n \"symbol\": \"stpt\",\n \"name\": \"STP\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xde7d85157d9714eadf595045cc12ca4a5f3e2adb\"\n },\n \"marketCapRank\": 405\n },\n {\n \"id\": \"stratis\",\n \"symbol\": \"strax\",\n \"name\": \"Stratis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2109\n },\n {\n \"id\": \"stratos\",\n \"symbol\": \"stos\",\n \"name\": \"Stratos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x08c32b0726c5684024ea6e141c50ade9690bbdcc\"\n },\n \"marketCapRank\": 559\n },\n {\n \"id\": \"streamr-xdata\",\n \"symbol\": \"xdata\",\n \"name\": \"Streamr XDATA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0cf0ee63788a0849fe5297f3407f701e122cc023\"\n },\n \"marketCapRank\": 716\n },\n {\n \"id\": \"stride\",\n \"symbol\": \"strd\",\n \"name\": \"Stride\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/A8CA5EE328FA10C9519DF6057DA1F69682D28F7D0F5CCC7ECB72E3DCA2D157A4\"\n },\n \"marketCapRank\": 280\n },\n {\n \"id\": \"stride-staked-atom\",\n \"symbol\": \"statom\",\n \"name\": \"Stride Staked Atom\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"evmos\": \"0xc8b4d3e67238e38b20d38908646ff6f4f48de5ec\",\n \"secret\": \"secret155w9uxruypsltvqfygh5urghd5v0zc6f9g69sq\",\n \"osmosis\": \"ibc/C140AFD542AE77BD7DCC83F13FDD8C5E5BB8C4929785E6EC2F4C636F98F17901\"\n },\n \"marketCapRank\": 751\n },\n {\n \"id\": \"stride-staked-juno\",\n \"symbol\": \"stjuno\",\n \"name\": \"Stride Staked Juno\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/84502A75BCA4A5F68D464C00B3F610CE2585847D59B52E5FFB7C3C9D2DDCD3FE\",\n \"secret\": \"secret1097nagcaavlkchl87xkqptww2qkwuvhdnsqs2v\"\n },\n \"marketCapRank\": 2505\n },\n {\n \"id\": \"stride-staked-osmo\",\n \"symbol\": \"stosmo\",\n \"name\": \"Stride Staked Osmo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/D176154B0C63D1F9C6DCFB4F70349EBF2E2B5A87A05902F57A6AE92B863E9AEC\"\n },\n \"marketCapRank\": 969\n },\n {\n \"id\": \"stride-staked-stars\",\n \"symbol\": \"ststars\",\n \"name\": \"Stride Staked Stars\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cosmos\": \"ibc/5DD1F95ED336014D00CE2520977EC71566D282F9749170ADC83A392E0EA7426A\"\n },\n \"marketCapRank\": 2547\n },\n {\n \"id\": \"strips-finance\",\n \"symbol\": \"strp\",\n \"name\": \"Strips Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x97872eafd79940c7b24f7bcc1eadb1457347adc9\",\n \"arbitrum-one\": \"0x326c33fd1113c1f29b35b4407f3d6312a8518431\"\n },\n \"marketCapRank\": 1896\n },\n {\n \"id\": \"strong\",\n \"symbol\": \"strong\",\n \"name\": \"Strong\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x990f341946a3fdb507ae7e52d17851b87168017c\"\n },\n \"marketCapRank\": 2322\n },\n {\n \"id\": \"stronghold-token\",\n \"symbol\": \"shx\",\n \"name\": \"Stronghold\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"stellar\": \"SHX-GDSTRSHXHGJ7ZIVRBXEYE5Q74XUVCUSEKEBR7UCHEUUEK72N7I7KJ6JH\"\n },\n \"marketCapRank\": 789\n },\n {\n \"id\": \"subsocial\",\n \"symbol\": \"sub\",\n \"name\": \"Subsocial\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"moonbeam\": \"0xffffffff43b4560bc0c451a3386e082bff50ac90\"\n },\n \"marketCapRank\": 1709\n },\n {\n \"id\": \"sudoswap\",\n \"symbol\": \"sudo\",\n \"name\": \"sudoswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3446dd70b2d52a6bf4a5a192d9b0a161295ab7f9\"\n },\n \"marketCapRank\": 1819\n },\n {\n \"id\": \"sui\",\n \"symbol\": \"sui\",\n \"name\": \"Sui\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"sui\": \"0x2::sui::SUI\"\n },\n \"marketCapRank\": 58\n },\n {\n \"id\": \"suipad\",\n \"symbol\": \"suip\",\n \"name\": \"SuiPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"sui\": \"0xe4239cd951f6c53d9c41e25270d80d31f925ad1655e5ba5b543843d4a66975ee::SUIP::SUIP\"\n },\n \"marketCapRank\": 1626\n },\n {\n \"id\": \"suiswap\",\n \"symbol\": \"sswp\",\n \"name\": \"Suiswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1323\n },\n {\n \"id\": \"suku\",\n \"symbol\": \"suku\",\n \"name\": \"SUKU\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0763fdccf1ae541a5961815c0872a8c5bc6de4d7\"\n },\n \"marketCapRank\": 1021\n },\n {\n \"id\": \"sun-token\",\n \"symbol\": \"sun\",\n \"name\": \"Sun Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"tron\": \"TSSMHYeV2uE9qYH95DqyoCuNCzEL1NvU3S\"\n },\n \"marketCapRank\": 403\n },\n {\n \"id\": \"superlauncher-dao\",\n \"symbol\": \"launch\",\n \"name\": \"Superlauncher\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"zksync\": \"0xf6d9a093a1c69a152d87e269a7d909e9d76b1815\"\n },\n \"marketCapRank\": 2420\n },\n {\n \"id\": \"superrare\",\n \"symbol\": \"rare\",\n \"name\": \"SuperRare\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba5bde662c17e2adff1075610382b9b691296350\"\n },\n \"marketCapRank\": 451\n },\n {\n \"id\": \"superwalk\",\n \"symbol\": \"grnd\",\n \"name\": \"SuperWalk\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x84f8c3c8d6ee30a559d73ec570d574f671e82647\"\n },\n \"marketCapRank\": 1473\n },\n {\n \"id\": \"super-zero\",\n \"symbol\": \"sero\",\n \"name\": \"SERO\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2316\n },\n {\n \"id\": \"sushi\",\n \"symbol\": \"sushi\",\n \"name\": \"Sushi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6b3595068778dd592e39a122f4f5a5cf09c90fe2\",\n \"fantom\": \"0xae75a438b2e0cb8bb01ec1e1e376de11d44477cc\",\n \"harmony-shard-0\": \"0xbec775cb42abfa4288de81f387a9b1a3c4bc552a\",\n \"avalanche\": \"0x37b608519f91f70f2eeb0e5ed9af4061722e4f76\",\n \"energi\": \"0x32aff6adc46331dac93e608a9cd4b0332d93a23a\",\n \"near-protocol\": \"6b3595068778dd592e39a122f4f5a5cf09c90fe2.factory.bridge.near\",\n \"arbitrum-one\": \"0xd4d42f0b6def4ce0383636770ef773390d85c61a\",\n \"polygon-pos\": \"0x0b3f868e0be5597d5db7feb59e1cadbb0fdda50a\",\n \"binance-smart-chain\": \"0x947950bcc74888a40ffa2593c5798f11fc9124c4\",\n \"sora\": \"0x0078f4e6c5113b3d8c954dff62ece8fc36a8411f86f1cbb48a52527e22e73be2\",\n \"celo\": \"0xd15ec721c2a896512ad29c671997dd68f9593226\",\n \"solana\": \"ChVzxWRmrTeSgwd3Ui3UumcN8KX7VK3WaD4KGeSKpypj\"\n },\n \"marketCapRank\": 238\n },\n {\n \"id\": \"suterusu\",\n \"symbol\": \"suter\",\n \"name\": \"Suterusu\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaa2ce7ae64066175e0b90497ce7d9c190c315db4\"\n },\n \"marketCapRank\": 2349\n },\n {\n \"id\": \"swarm-bzz\",\n \"symbol\": \"bzz\",\n \"name\": \"Swarm\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x19062190b1925b5b6689d7073fdfc8c2976ef8cb\",\n \"xdai\": \"0xdbf3ea6f5bee45c02255b2c26a16f300502f68da\"\n },\n \"marketCapRank\": 864\n },\n {\n \"id\": \"swash\",\n \"symbol\": \"swash\",\n \"name\": \"Swash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa130e3a33a4d84b04c3918c4e5762223ae252f80\",\n \"xdai\": \"0x84e2c67cbefae6b5148fca7d02b341b12ff4b5bb\",\n \"polygon-pos\": \"0xba3cb8329d442e6f9eb70fafe1e214251df3d275\",\n \"binance-smart-chain\": \"0x41065e3428188ba6eb27fbdde8526ae3af8e3830\"\n },\n \"marketCapRank\": 1149\n },\n {\n \"id\": \"sweatcoin\",\n \"symbol\": \"sweat\",\n \"name\": \"Sweat Economy\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb4b9dc1c77bdbb135ea907fd5a08094d98883a35\",\n \"near-protocol\": \"token.sweat\"\n },\n \"marketCapRank\": 517\n },\n {\n \"id\": \"sweth\",\n \"symbol\": \"sweth\",\n \"name\": \"Swell Ethereum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf951e335afb289353dc249e82926178eac7ded78\",\n \"arbitrum-one\": \"0xbc011a12da28e8f0f528d9ee5e7039e22f91cf18\"\n },\n \"marketCapRank\": 137\n },\n {\n \"id\": \"swftcoin\",\n \"symbol\": \"swftc\",\n \"name\": \"SWFTCOIN\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0bb217e40f8a5cb79adf04e1aab60e5abd0dfc1e\",\n \"binance-smart-chain\": \"0xe64e30276c2f826febd3784958d6da7b55dfbad3\"\n },\n \"marketCapRank\": 728\n },\n {\n \"id\": \"swipe\",\n \"symbol\": \"sxp\",\n \"name\": \"SXP\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8ce9137d39326ad0cd6491fb5cc0cba0e089b6a9\",\n \"harmony-shard-0\": \"0x77d046614710fddf5ca3e3ce85f4f09f7abc283c\",\n \"binance-smart-chain\": \"0x47bead2563dcbf3bf2c9407fea4dc236faba485a\"\n },\n \"marketCapRank\": 274\n },\n {\n \"id\": \"switcheo\",\n \"symbol\": \"swth\",\n \"name\": \"Carbon Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/8FEFAE6AECF6E2A255585617F781F35A8D5709A545A804482A261C0C9548A9D3\",\n \"neo\": \"ab38352559b8b203bde5fddfa0b07d8b2525e132\",\n \"zilliqa\": \"zil1yk93f957fanapf0yszgm84p62xrxxfytj4d2tl\",\n \"arbitrum-one\": \"0xf763fa322dc58dee588252fafee5f448e863b633\",\n \"binance-smart-chain\": \"0xc0ecb8499d8da2771abcbf4091db7f65158f1468\"\n },\n \"marketCapRank\": 1298\n },\n {\n \"id\": \"sylo\",\n \"symbol\": \"sylo\",\n \"name\": \"Sylo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf293d23bf2cdc05411ca0eddd588eb1977e8dcd4\"\n },\n \"marketCapRank\": 1337\n },\n {\n \"id\": \"symbiosis-finance\",\n \"symbol\": \"sis\",\n \"name\": \"Symbiosis\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd38bb40815d2b0c2d2c866e0c72c5728ffc76dd9\",\n \"linea\": \"0x6ef95b6f3b0f39508e3e04054be96d5ee39ede0d\",\n \"zksync\": \"0xdd9f72afed3631a6c85b5369d84875e6c42f1827\",\n \"arbitrum-one\": \"0x9e758b8a98a42d612b3d38b66a22074dc03d7370\",\n \"scroll\": \"0x1467b62a6ae5cdcb10a6a8173cfe187dd2c5a136\",\n \"binance-smart-chain\": \"0xf98b660adf2ed7d9d9d9daacc2fb0cace4f21835\"\n },\n \"marketCapRank\": 1014\n },\n {\n \"id\": \"syncus\",\n \"symbol\": \"sync\",\n \"name\": \"Syncus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa41d2f8ee4f47d3b860a149765a7df8c3287b7f0\",\n \"zksync\": \"0x2d20b8891f2f9ed0ebf1b179b2279f936dec9282\"\n },\n \"marketCapRank\": 627\n },\n {\n \"id\": \"syscoin\",\n \"symbol\": \"sys\",\n \"name\": \"Syscoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 312\n },\n {\n \"id\": \"taboo-token\",\n \"symbol\": \"taboo\",\n \"name\": \"Taboo\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9abdba20edfba06b782126b4d8d72a5853918fd0\"\n },\n \"marketCapRank\": 1097\n },\n {\n \"id\": \"taki\",\n \"symbol\": \"taki\",\n \"name\": \"Taki Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"Taki7fi3Zicv7Du1xNAWLaf6mRK7ikdn77HeGzgwvo4\",\n \"polygon-pos\": \"0xe78aee6ccb05471a69677fb74da80f5d251c042b\"\n },\n \"marketCapRank\": 908\n },\n {\n \"id\": \"tamadoge\",\n \"symbol\": \"tama\",\n \"name\": \"Tamadoge\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x12b6893ce26ea6341919fe289212ef77e51688c8\"\n },\n \"marketCapRank\": 1553\n },\n {\n \"id\": \"trustpad-2-0\",\n \"symbol\": \"tpad\",\n \"name\": \"TrustPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x7029f86dc4634c5d59ee3f1578c193783505e2c1\"\n },\n \"marketCapRank\": 2001\n },\n {\n \"id\": \"tap\",\n \"symbol\": \"xtp\",\n \"name\": \"Tap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6368e1e18c4c419ddfc608a0bed1ccb87b9250fc\"\n },\n \"marketCapRank\": 1689\n },\n {\n \"id\": \"taraxa\",\n \"symbol\": \"tara\",\n \"name\": \"Taraxa\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 901\n },\n {\n \"id\": \"tarot\",\n \"symbol\": \"tarot\",\n \"name\": \"Tarot V1\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0xc5e2b037d30a390e62180970b3aa4e91868764cd\",\n \"optimistic-ethereum\": \"0x375488f097176507e39b9653b88fdc52cde736bf\",\n \"ethereum\": \"0x837d904a3799c0769079be9ecbaddf1abd4ccd6e\",\n \"arbitrum-one\": \"0x6688b00f0c23a4a546beaae51a7c90c439895d48\",\n \"binance-smart-chain\": \"0xa8cd6e4bf45724d3ac27f9e31e47ba4e399a7b52\"\n },\n \"marketCapRank\": 2382\n },\n {\n \"id\": \"tbtc\",\n \"symbol\": \"tbtc\",\n \"name\": \"tBTC\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x18084fba666a33d37592fa2633fd49a74dd93a88\",\n \"polygon-pos\": \"0x236aa50979d5f3de3bd1eeb40e81137f22ab794b\",\n \"optimistic-ethereum\": \"0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40\",\n \"arbitrum-one\": \"0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40\",\n \"base\": \"0x236aa50979d5f3de3bd1eeb40e81137f22ab794b\",\n \"solana\": \"6DNSN2BJsaPFdFFc1zP37kkeNe4Usc1Sqkzr9C9vPWcU\"\n },\n \"marketCapRank\": 488\n },\n {\n \"id\": \"tectonic\",\n \"symbol\": \"tonic\",\n \"name\": \"Tectonic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0xdd73dea10abc2bff99c60882ec5b2b81bb1dc5b2\"\n },\n \"marketCapRank\": 931\n },\n {\n \"id\": \"tectum\",\n \"symbol\": \"tet\",\n \"name\": \"Tectum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x68a47fe1cf42eba4a030a10cd4d6a1031ca3ca0a\"\n },\n \"marketCapRank\": 332\n },\n {\n \"id\": \"telcoin\",\n \"symbol\": \"tel\",\n \"name\": \"Telcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x467bccd9d29f223bce8043b84e8c8b282827790f\",\n \"sora\": \"0x008f925e3e422218604fac1cc2f06f3ef9c1e244e0d2a9a823e5bd8ce9778434\",\n \"polygon-pos\": \"0xdf7837de1f2fa4631d716cf2502f8b230f1dcc32\"\n },\n \"marketCapRank\": 259\n },\n {\n \"id\": \"tellor\",\n \"symbol\": \"trb\",\n \"name\": \"Tellor Tributes\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0\",\n \"manta-pacific\": \"0x8d7090ddda057f48fdbbb2abcea22d1113ab566a\",\n \"optimistic-ethereum\": \"0xaf8ca653fa2772d58f4368b0a71980e9e3ceb888\",\n \"arbitrum-one\": \"0xd58d345fd9c82262e087d2d0607624b410d88242\",\n \"xdai\": \"0xaad66432d27737ecf6ed183160adc5ef36ab99f2\",\n \"polygon-pos\": \"0xe3322702bedaaed36cddab233360b939775ae5f1\"\n },\n \"marketCapRank\": 308\n },\n {\n \"id\": \"telos\",\n \"symbol\": \"tlos\",\n \"name\": \"Telos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 390\n },\n {\n \"id\": \"tenet-1b000f7b-59cb-4e06-89ce-d62b32d362b9\",\n \"symbol\": \"tenet\",\n \"name\": \"TENET\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x788d86e00ab31db859c3d6b80d5a9375801d7f2a\"\n },\n \"marketCapRank\": 958\n },\n {\n \"id\": \"tenset\",\n \"symbol\": \"10set\",\n \"name\": \"Tenset\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x1ae369a6ab222aff166325b7b87eb9af06c86e57\"\n },\n \"marketCapRank\": 374\n },\n {\n \"id\": \"terra-luna-2\",\n \"symbol\": \"luna\",\n \"name\": \"Terra\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/785AFEC6B3741100D15E7AF01374E3C4C36F24888E96479B1C33F5C71F364EF9\"\n },\n \"marketCapRank\": 140\n },\n {\n \"id\": \"terrausd\",\n \"symbol\": \"ustc\",\n \"name\": \"TerraClassicUSD\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"terra\": \"uusd\"\n },\n \"marketCapRank\": 302\n },\n {\n \"id\": \"tether-eurt\",\n \"symbol\": \"eurt\",\n \"name\": \"Euro Tether\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc581b735a1688071a1746c968e0798d642ede491\"\n },\n \"marketCapRank\": 887\n },\n {\n \"id\": \"tether-gold\",\n \"symbol\": \"xaut\",\n \"name\": \"Tether Gold\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x68749665ff8d2d112fa859aa293f07a622782f38\"\n },\n \"marketCapRank\": 180\n },\n {\n \"id\": \"tetu\",\n \"symbol\": \"tetu\",\n \"name\": \"TETU\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x255707b70bf90aa112006e1b07b9aea6de021424\",\n \"fantom\": \"0x65c9d9d080714cda7b5d58989dc27f897f165179\"\n },\n \"marketCapRank\": 2443\n },\n {\n \"id\": \"tezos\",\n \"symbol\": \"xtz\",\n \"name\": \"Tezos\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 88\n },\n {\n \"id\": \"tgold\",\n \"symbol\": \"txau\",\n \"name\": \"tGOLD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xa6da8c8999c094432c77e7d318951d34019af24b\",\n \"ethereum\": \"0xe4a6f23fb9e00fca037aa0ea0a6954de0a6c53bf\"\n },\n \"marketCapRank\": 1776\n },\n {\n \"id\": \"thales\",\n \"symbol\": \"thales\",\n \"name\": \"Thales\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8947da500eb47f82df21143d0c01a29862a8c3c5\",\n \"optimistic-ethereum\": \"0x217d47011b23bb961eb6d93ca9945b7501a5bb11\",\n \"arbitrum-one\": \"0xe85b662fe97e8562f4099d8a1d5a92d4b453bf30\",\n \"base\": \"0xf34e0cff046e154cafcae502c7541b9e5fd8c249\",\n \"polygon-pos\": \"0x692c44990e4f408ba0917f5c78a83160c1557237\"\n },\n \"marketCapRank\": 1206\n },\n {\n \"id\": \"the-abyss\",\n \"symbol\": \"abyss\",\n \"name\": \"Abyss\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0e8d6b471e332f140e7d9dbb99e5e3822f728da6\",\n \"harmony-shard-0\": \"0xa52d0c7943cc1020a926b23dd1c64fc60b4fadde\"\n },\n \"marketCapRank\": 2203\n },\n {\n \"id\": \"the-graph\",\n \"symbol\": \"grt\",\n \"name\": \"The Graph\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc944e90c64b2c07662a292be6244bdf05cda44a7\",\n \"harmony-shard-0\": \"0x002fa662f2e09de7c306d2bab0085ee9509488ff\",\n \"energi\": \"0x771513ba693d457df3678c951c448701f2eaaad5\",\n \"near-protocol\": \"c944e90c64b2c07662a292be6244bdf05cda44a7.factory.bridge.near\",\n \"avalanche\": \"0x8a0cac13c7da965a312f08ea4229c37869e85cb9\",\n \"polygon-pos\": \"0x5fe2b58c013d7601147dcdd68c143a77499f5531\",\n \"arbitrum-one\": \"0x9623063377ad1b27544c965ccd7342f7ea7e88c7\",\n \"sora\": \"0x00d1fb79bbd1005a678fbf2de9256b3afe260e8eead49bb07bd3a566f9fe8355\"\n },\n \"marketCapRank\": 41\n },\n {\n \"id\": \"thena\",\n \"symbol\": \"the\",\n \"name\": \"Thena\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf4c8e32eadec4bfe97e0f595add0f4450a863a11\",\n \"opbnb\": \"0x9d94a7ff461e83f161c8c040e78557e31d8cba72\"\n },\n \"marketCapRank\": 1254\n },\n {\n \"id\": \"the-open-network\",\n \"symbol\": \"ton\",\n \"name\": \"Toncoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x582d872a1b094fc48f5de31d3b73f2d9be47def1\",\n \"binance-smart-chain\": \"0x76a797a59ba2c17726896976b7b3747bfd1d220f\"\n },\n \"marketCapRank\": 12\n },\n {\n \"id\": \"theopetra\",\n \"symbol\": \"theo\",\n \"name\": \"Theopetra\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xfac0403a24229d7e2edd994d50f5940624cbeac2\"\n },\n \"marketCapRank\": 1335\n },\n {\n \"id\": \"thetadrop\",\n \"symbol\": \"tdrop\",\n \"name\": \"ThetaDrop\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"theta\": \"0x1336739b05c7ab8a526d40dcc0d04a826b5f8b03\"\n },\n \"marketCapRank\": 707\n },\n {\n \"id\": \"theta-fuel\",\n \"symbol\": \"tfuel\",\n \"name\": \"Theta Fuel\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 182\n },\n {\n \"id\": \"theta-token\",\n \"symbol\": \"theta\",\n \"name\": \"Theta Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 50\n },\n {\n \"id\": \"the-three-kingdoms\",\n \"symbol\": \"ttk\",\n \"name\": \"The Three Kingdoms\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x39703a67bac0e39f9244d97f4c842d15fbad9c1f\"\n },\n \"marketCapRank\": 2310\n },\n {\n \"id\": \"the-unfettered-souls\",\n \"symbol\": \"souls\",\n \"name\": \"The Unfettered Ecosystem\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xaa4fbc6809a8e1924520fc85282ac4c76a7671d7\"\n },\n \"marketCapRank\": 1840\n },\n {\n \"id\": \"the-virtua-kolect\",\n \"symbol\": \"tvk\",\n \"name\": \"Virtua\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd084b83c305dafd76ae3e1b4e1f1fe2ecccb3988\"\n },\n \"marketCapRank\": 761\n },\n {\n \"id\": \"the-winkyverse\",\n \"symbol\": \"wnk\",\n \"name\": \"Winkies\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe1bda0c3bfa2be7f740f0119b6a34f057bd58eba\",\n \"binance-smart-chain\": \"0xb160a5f19ebccd8e0549549327e43ddd1d023526\"\n },\n \"marketCapRank\": 1990\n },\n {\n \"id\": \"thol-token\",\n \"symbol\": \"thol\",\n \"name\": \"AngelBlock\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x207e14389183a94343942de7afbc607f57460618\"\n },\n \"marketCapRank\": 1646\n },\n {\n \"id\": \"thorswap\",\n \"symbol\": \"thor\",\n \"name\": \"THORSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa5f2211b9b8170f694421f2046281775e8468044\"\n },\n \"marketCapRank\": 690\n },\n {\n \"id\": \"thorchain\",\n \"symbol\": \"rune\",\n \"name\": \"THORChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 49\n },\n {\n \"id\": \"thorstarter\",\n \"symbol\": \"xrune\",\n \"name\": \"Thorstarter\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x69fa0fee221ad11012bab0fdb45d444d3d2ce71c\",\n \"fantom\": \"0xe1e6b01ae86ad82b1f1b4eb413b219ac32e17bf6\",\n \"terra\": \"terra1td743l5k5cmfy7tqq202g7vkmdvq35q48u2jfm\"\n },\n \"marketCapRank\": 2091\n },\n {\n \"id\": \"thorwallet\",\n \"symbol\": \"tgt\",\n \"name\": \"THORWallet DEX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x108a850856db3f85d0269a2693d896b394c80325\"\n },\n \"marketCapRank\": 1394\n },\n {\n \"id\": \"thought\",\n \"symbol\": \"tht\",\n \"name\": \"Thought\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 874\n },\n {\n \"id\": \"threshold-network-token\",\n \"symbol\": \"t\",\n \"name\": \"Threshold Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcdf7028ceab81fa0c6971208e83fa7872994bee5\"\n },\n \"marketCapRank\": 195\n },\n {\n \"id\": \"tidal-finance\",\n \"symbol\": \"tidal\",\n \"name\": \"Tidal Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x29cbd0510eec0327992cd6006e63f9fa8e7f33b7\",\n \"polygon-pos\": \"0xb41ec2c036f8a42da384dde6ada79884f8b84b26\"\n },\n \"marketCapRank\": 2252\n },\n {\n \"id\": \"tierion\",\n \"symbol\": \"tnt\",\n \"name\": \"Tierion\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x08f5a9235b08173b7569f83645d2c7fb55e8ccd8\"\n },\n \"marketCapRank\": 2122\n },\n {\n \"id\": \"tifi-token\",\n \"symbol\": \"tifi\",\n \"name\": \"TiFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x17e65e6b9b166fb8e7c59432f0db126711246bc0\"\n },\n \"marketCapRank\": 2308\n },\n {\n \"id\": \"tigris\",\n \"symbol\": \"tig\",\n \"name\": \"Tigris\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x3a33473d7990a605a88ac72a78ad4efc40a54adb\"\n },\n \"marketCapRank\": 2363\n },\n {\n \"id\": \"tokencard\",\n \"symbol\": \"tkn\",\n \"name\": \"Monolith\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xaaaf91d9b90df800df4f55c205fd6989c977e73a\"\n },\n \"marketCapRank\": 2006\n },\n {\n \"id\": \"tokenfi\",\n \"symbol\": \"token\",\n \"name\": \"TokenFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4507cef57c46789ef8d1a19ea45f4216bae2b528\",\n \"binance-smart-chain\": \"0x4507cef57c46789ef8d1a19ea45f4216bae2b528\"\n },\n \"marketCapRank\": 314\n },\n {\n \"id\": \"token-in\",\n \"symbol\": \"tin\",\n \"name\": \"Token IN\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"aptos\": \"0xc32ba5d293577cbb1df390f35b2bc6369a593b736d0865fedec1a2b08565de8e::in_coin::InCoin\"\n },\n \"marketCapRank\": 2577\n },\n {\n \"id\": \"tokenize-xchange\",\n \"symbol\": \"tkx\",\n \"name\": \"Tokenize Xchange\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x667102bd3413bfeaa3dffb48fa8288819e480a88\"\n },\n \"marketCapRank\": 102\n },\n {\n \"id\": \"tokenlon\",\n \"symbol\": \"lon\",\n \"name\": \"Tokenlon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0000000000095413afc295d19edeb1ad7b71c952\",\n \"arbitrum-one\": \"0x55678cd083fcdc2947a0df635c93c838c89454a3\"\n },\n \"marketCapRank\": 540\n },\n {\n \"id\": \"tokocrypto\",\n \"symbol\": \"tko\",\n \"name\": \"Tokocrypto\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9f589e3eabe42ebc94a44727b3f3531c0c877809\"\n },\n \"marketCapRank\": 763\n },\n {\n \"id\": \"tokpie\",\n \"symbol\": \"tkp\",\n \"name\": \"TOKPIE\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd31695a1d35e489252ce57b129fd4b1b05e6acac\",\n \"binance-smart-chain\": \"0x7849ed1447250d0b896f89b58f3075b127ca29b3\"\n },\n \"marketCapRank\": 680\n },\n {\n \"id\": \"tomb\",\n \"symbol\": \"tomb\",\n \"name\": \"Tomb\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"fantom\": \"0x6c021ae822bea943b2e66552bde1d2696a53fbb7\",\n \"tombchain\": \"0xdeaddeaddeaddeaddeaddeaddeaddeaddead0000\",\n \"avalanche\": \"0xb84527d59b6ecb96f433029ecc890d4492c5dce1\",\n \"binance-smart-chain\": \"0x8f01d597d2022656494e30fb76eccf1eea2e092e\",\n \"polygon-pos\": \"0x0e98c977b943f06075b2d795794238fbfb9b9a34\"\n },\n \"marketCapRank\": 2053\n },\n {\n \"id\": \"tominet\",\n \"symbol\": \"tomi\",\n \"name\": \"tomiNet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4385328cc4d643ca98dfea734360c0f596c83449\"\n },\n \"marketCapRank\": 556\n },\n {\n \"id\": \"top-network\",\n \"symbol\": \"top\",\n \"name\": \"TOP Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdcd85914b8ae28c1e62f1c488e1d968d5aaffe2b\"\n },\n \"marketCapRank\": 2558\n },\n {\n \"id\": \"tor\",\n \"symbol\": \"tor\",\n \"name\": \"TOR\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0x74e23df9110aa9ea0b6ff2faee01e740ca1c642e\",\n \"binance-smart-chain\": \"0x1d6cbdc6b29c6afbae65444a1f65ba9252b8ca83\"\n },\n \"marketCapRank\": 360\n },\n {\n \"id\": \"tornado-cash\",\n \"symbol\": \"torn\",\n \"name\": \"Tornado Cash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x77777feddddffc19ff86db637967013e6c6a116c\",\n \"binance-smart-chain\": \"0x1ba8d3c4c219b124d351f603060663bd1bcd9bbf\"\n },\n \"marketCapRank\": 1464\n },\n {\n \"id\": \"torum\",\n \"symbol\": \"xtm\",\n \"name\": \"Torum\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x443cab9583b83eaa7a712c9d64525e57e2a7eb3f\"\n },\n \"marketCapRank\": 1341\n },\n {\n \"id\": \"toshi\",\n \"symbol\": \"toshi\",\n \"name\": \"Toshi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"base\": \"0xac1bd2486aaf3b5c0fc3fd868558b082a531b2b4\"\n },\n \"marketCapRank\": 332\n },\n {\n \"id\": \"tower\",\n \"symbol\": \"tower\",\n \"name\": \"Tower\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1c9922314ed1415c95b9fd453c3818fd41867d0b\",\n \"base\": \"0xf7c1cefcf7e1dd8161e00099facd3e1db9e528ee\",\n \"polygon-pos\": \"0x2bc07124d8dac638e290f401046ad584546bc47b\",\n \"binance-smart-chain\": \"0xe7c9c6bc87b86f9e5b57072f907ee6460b593924\"\n },\n \"marketCapRank\": 1559\n },\n {\n \"id\": \"trava-finance\",\n \"symbol\": \"trava\",\n \"name\": \"Trava Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x0391be54e72f7e001f6bbc331777710b4f2999ef\",\n \"ethereum\": \"0x186d0ba3dfc3386c464eecd96a61fbb1e2da00bf\",\n \"fantom\": \"0x477a9d5df9beda06f6b021136a2efe7be242fcc9\"\n },\n \"marketCapRank\": 2512\n },\n {\n \"id\": \"traxx\",\n \"symbol\": \"traxx\",\n \"name\": \"Traxx\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd43be54c1aedf7ee4099104f2dae4ea88b18a249\"\n },\n \"marketCapRank\": 2626\n },\n {\n \"id\": \"treeb\",\n \"symbol\": \"treeb\",\n \"name\": \"Retreeb\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0xc60d7067dfbc6f2caf30523a064f416a5af52963\"\n },\n \"marketCapRank\": 1552\n },\n {\n \"id\": \"tree-capital\",\n \"symbol\": \"tree\",\n \"name\": \"Tree\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xba25b2281214300e4e649fead9a6d6acd25f1c0a\"\n },\n \"marketCapRank\": 1256\n },\n {\n \"id\": \"treecle\",\n \"symbol\": \"trcl\",\n \"name\": \"Treecle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"klay-token\": \"0x4b91c67a89d4c4b2a4ed9fcde6130d7495330972\"\n },\n \"marketCapRank\": 2557\n },\n {\n \"id\": \"trias-token\",\n \"symbol\": \"trias\",\n \"name\": \"TriasLab\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xa4838122c683f732289805fc3c207febd55babdd\",\n \"ethereum\": \"0x3a856d4effa670c54585a5d523e96513e148e95d\"\n },\n \"marketCapRank\": 471\n },\n {\n \"id\": \"tribe-2\",\n \"symbol\": \"tribe\",\n \"name\": \"Tribe\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc7283b66eb1eb5fb86327f08e1b5816b0720212b\"\n },\n \"marketCapRank\": 331\n },\n {\n \"id\": \"tribeone\",\n \"symbol\": \"haka\",\n \"name\": \"TribeOne\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd85ad783cc94bd04196a13dc042a3054a9b52210\",\n \"binance-smart-chain\": \"0xd85ad783cc94bd04196a13dc042a3054a9b52210\"\n },\n \"marketCapRank\": 2273\n },\n {\n \"id\": \"tron\",\n \"symbol\": \"trx\",\n \"name\": \"TRON\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 18\n },\n {\n \"id\": \"tronpad\",\n \"symbol\": \"tronpad\",\n \"name\": \"TRONPAD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x1bf7aedec439d6bfe38f8f9b20cf3dc99e3571c4\"\n },\n \"marketCapRank\": 2386\n },\n {\n \"id\": \"troy\",\n \"symbol\": \"troy\",\n \"name\": \"TROY\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binancecoin\": \"TROY-9B8\"\n },\n \"marketCapRank\": 944\n },\n {\n \"id\": \"truefi\",\n \"symbol\": \"tru\",\n \"name\": \"TrueFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4c19596f5aaff459fa38b0f7ed92f11ae6543784\"\n },\n \"marketCapRank\": 386\n },\n {\n \"id\": \"trust-wallet-token\",\n \"symbol\": \"twt\",\n \"name\": \"Trust Wallet\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4b0f1812e5df2a09796481ff14017e6005508003\",\n \"energi\": \"0xfaa02b262130431b44c929fdd960e202ffeabfe3\",\n \"binancecoin\": \"TWT-8C2\"\n },\n \"marketCapRank\": 175\n },\n {\n \"id\": \"tutellus\",\n \"symbol\": \"tut\",\n \"name\": \"Tutellus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x12a34a6759c871c4c1e8a0a42cfc97e4d7aaf68d\"\n },\n \"marketCapRank\": 2531\n },\n {\n \"id\": \"ubxs-token\",\n \"symbol\": \"ubxs\",\n \"name\": \"UBXS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x4f1960e29b2ca581a38c5c474e123f420f8092db\"\n },\n \"marketCapRank\": 1064\n },\n {\n \"id\": \"ultra\",\n \"symbol\": \"uos\",\n \"name\": \"Ultra\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd13c7342e1ef687c5ad21b27c2b65d772cab5c8c\"\n },\n \"marketCapRank\": 523\n },\n {\n \"id\": \"uma\",\n \"symbol\": \"uma\",\n \"name\": \"UMA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x04fa0d235c4abf4bcf4787af4cf447de572ef828\",\n \"avalanche\": \"0x3bd2b1c7ed8d396dbb98ded3aebb41350a5b2339\"\n },\n \"marketCapRank\": 251\n },\n {\n \"id\": \"umami-finance\",\n \"symbol\": \"umami\",\n \"name\": \"Umami\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x1622bf67e6e5747b81866fe0b85178a93c7f86e3\"\n },\n \"marketCapRank\": 2132\n },\n {\n \"id\": \"umbrella-network\",\n \"symbol\": \"umb\",\n \"name\": \"Umbrella Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6fc13eace26590b80cccab1ba5d51890577d83b2\",\n \"binance-smart-chain\": \"0x846f52020749715f02aef25b5d1d65e48945649d\"\n },\n \"marketCapRank\": 1334\n },\n {\n \"id\": \"undead-blocks\",\n \"symbol\": \"undead\",\n \"name\": \"Undead Blocks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x310c8f00b9de3c31ab95ea68feb6c877538f7947\"\n },\n \"marketCapRank\": 2303\n },\n {\n \"id\": \"unibot\",\n \"symbol\": \"unibot\",\n \"name\": \"Unibot\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf819d9cb1c2a819fd991781a822de3ca8607c3c9\"\n },\n \"marketCapRank\": 1128\n },\n {\n \"id\": \"unibright\",\n \"symbol\": \"ubt\",\n \"name\": \"Unibright\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8400d94a5cb0fa0d041a3788e395285d61c9ee5e\",\n \"energi\": \"0xe3d7a5c28d5a4143831242e8ab218d7e9b5c2c87\",\n \"polygon-pos\": \"0x7fbc10850cae055b27039af31bd258430e714c62\"\n },\n \"marketCapRank\": 1234\n },\n {\n \"id\": \"uniswap\",\n \"symbol\": \"uni\",\n \"name\": \"Uniswap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984\",\n \"xdai\": \"0x4537e328bf7e4efa29d05caea260d7fe26af9d74\",\n \"avalanche\": \"0x8ebaf22b6f053dffeaf46f4dd9efa95d89ba8580\",\n \"near-protocol\": \"1f9840a85d5af5bf1d1762f925bdaddc4201f984.factory.bridge.near\",\n \"energi\": \"0x665b3a802979ec24e076c80025bff33c18eb6007\",\n \"optimistic-ethereum\": \"0x6fd9d7ad17242c41f7131d257212c54a0e816691\",\n \"arbitrum-one\": \"0xfa7f8980b0f1e64a2062791cc3b0871572f1f7f0\",\n \"huobi-token\": \"0x22c54ce8321a4015740ee1109d9cbc25815c46e6\",\n \"polygon-pos\": \"0xb33eaad8d922b1083446dc23f610c2567fb5180f\",\n \"harmony-shard-0\": \"0x90d81749da8867962c760414c1c25ec926e889b6\",\n \"sora\": \"0x009be848df92a400da2f217256c88d1a9b1a0304f9b3e90991a67418e1d3b08c\",\n \"binance-smart-chain\": \"0xbf5140a22578168fd562dccf235e5d43a02ce9b1\"\n },\n \"marketCapRank\": 19\n },\n {\n \"id\": \"unicrypt-2\",\n \"symbol\": \"uncx\",\n \"name\": \"UNCX Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xadb2437e6f65682b85f814fbc12fec0508a7b1d0\",\n \"xdai\": \"0x0116e28b43a358162b96f70b4de14c98a4465f25\",\n \"binance-smart-chain\": \"0x09a6c44c3947b69e2b45f4d51b67e6a39acfb506\"\n },\n \"marketCapRank\": 1403\n },\n {\n \"id\": \"unidef\",\n \"symbol\": \"u\",\n \"name\": \"Unidef\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x89db9b433fec1307d3dc8908f2813e9f7a1d38f0\"\n },\n \"marketCapRank\": 1770\n },\n {\n \"id\": \"unix\",\n \"symbol\": \"unix\",\n \"name\": \"UniX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xddd6a0ecc3c6f6c102e5ea3d8af7b801d1a77ac8\",\n \"avalanche\": \"0x6f97d3f120fbbdaacf1c9da61a8ad126b7426861\"\n },\n \"marketCapRank\": 1946\n },\n {\n \"id\": \"unifi-protocol-dao\",\n \"symbol\": \"unfi\",\n \"name\": \"Unifi Protocol DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x441761326490cacf7af299725b6292597ee822c2\",\n \"binance-smart-chain\": \"0x728c5bac3c3e370e372fc4671f9ef6916b814d8b\"\n },\n \"marketCapRank\": 702\n },\n {\n \"id\": \"unisocks\",\n \"symbol\": \"socks\",\n \"name\": \"Unisocks\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x23b608675a2b2fb1890d3abbd85c5775c51691d5\",\n \"pulsechain\": \"0x23b608675a2b2fb1890d3abbd85c5775c51691d5\"\n },\n \"marketCapRank\": 1490\n },\n {\n \"id\": \"unizen\",\n \"symbol\": \"zcx\",\n \"name\": \"Unizen\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc52c326331e9ce41f04484d3b5e5648158028804\"\n },\n \"marketCapRank\": 324\n },\n {\n \"id\": \"unlend-finance\",\n \"symbol\": \"uft\",\n \"name\": \"UniLend Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0202be363b8a4820f3f4de7faf5224ff05943ab1\",\n \"polygon-pos\": \"0x5b4cf2c120a9702225814e18543ee658c5f8631e\",\n \"binance-smart-chain\": \"0x2645d5f59d952ef2317c8e0aaa5a61c392ccd44d\"\n },\n \"marketCapRank\": 759\n },\n {\n \"id\": \"uwu-lend\",\n \"symbol\": \"uwu\",\n \"name\": \"UwU Lend\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x55c08ca52497e2f1534b59e2917bf524d4765257\"\n },\n \"marketCapRank\": 835\n },\n {\n \"id\": \"unmarshal\",\n \"symbol\": \"marsh\",\n \"name\": \"Unmarshal\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5a666c7d92e5fa7edcb6390e4efd6d0cdd69cf37\",\n \"binance-smart-chain\": \"0x2fa5daf6fe0708fbd63b1a7d1592577284f52256\"\n },\n \"marketCapRank\": 1303\n },\n {\n \"id\": \"unstoppable-defi\",\n \"symbol\": \"und\",\n \"name\": \"Unstoppable DeFi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xb5a628803ee72d82098d4bcaf29a42e63531b441\"\n },\n \"marketCapRank\": 2389\n },\n {\n \"id\": \"youves-you-governance\",\n \"symbol\": \"you\",\n \"name\": \"Youves YOU Governance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"tezos\": \"KT1Xobej4mc6XgEjDoJoHtTKgbD1ELMvcQuL\"\n },\n \"marketCapRank\": 1837\n },\n {\n \"id\": \"uquid-coin\",\n \"symbol\": \"uqc\",\n \"name\": \"Uquid Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8806926ab68eb5a7b909dcaf6fdbe5d93271d6e2\"\n },\n \"marketCapRank\": 549\n },\n {\n \"id\": \"urus-token\",\n \"symbol\": \"urus\",\n \"name\": \"Aurox\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc6dddb5bc6e61e0841c54f3e723ae1f3a807260b\",\n \"binance-smart-chain\": \"0xc6dddb5bc6e61e0841c54f3e723ae1f3a807260b\"\n },\n \"marketCapRank\": 2111\n },\n {\n \"id\": \"usdd\",\n \"symbol\": \"usdd\",\n \"name\": \"USDD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"tron\": \"TPYmHEhy5n8TCEfYGqW2rPxsghSfzghPDn\",\n \"near-protocol\": \"0c10bf8fcb7bf5412187a595ab97a3609160b5c6.factory.bridge.near\",\n \"avalanche\": \"0xb514cabd09ef5b169ed3fe0fa8dbd590741e81c2\",\n \"bittorrent\": \"0x17f235fd5974318e4e2a5e37919a209f7c37a6d1\",\n \"ethereum\": \"0x0c10bf8fcb7bf5412187a595ab97a3609160b5c6\",\n \"arbitrum-one\": \"0x680447595e8b7b3aa1b43beb9f6098c79ac2ab3f\",\n \"binance-smart-chain\": \"0xd17479997f34dd9156deef8f95a52d81d265be9c\"\n },\n \"marketCapRank\": 145\n },\n {\n \"id\": \"verified-usd-foundation-usdv\",\n \"symbol\": \"usdv\",\n \"name\": \"Verified USD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0e573ce2736dd9637a0b21058352e1667925c7a8\",\n \"tomochain\": \"0x323665443cef804a3b5206103304bd4872ea4253\",\n \"avalanche\": \"0x323665443cef804a3b5206103304bd4872ea4253\",\n \"optimistic-ethereum\": \"0x323665443cef804a3b5206103304bd4872ea4253\",\n \"arbitrum-one\": \"0x323665443cef804a3b5206103304bd4872ea4253\",\n \"polygon-pos\": \"0x323665443cef804a3b5206103304bd4872ea4253\",\n \"binance-smart-chain\": \"0x323665443cef804a3b5206103304bd4872ea4253\"\n },\n \"marketCapRank\": 1086\n },\n {\n \"id\": \"usdx\",\n \"symbol\": \"usdx\",\n \"name\": \"USDX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 530\n },\n {\n \"id\": \"utility-web3shot\",\n \"symbol\": \"uw3s\",\n \"name\": \"Utility Web3Shot\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x961e149db8bfbdb318c182152725ac806d7be3f4\"\n },\n \"marketCapRank\": 1904\n },\n {\n \"id\": \"vabble\",\n \"symbol\": \"vab\",\n \"name\": \"Vabble\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xe7ae6d0c56cacaf007b7e4d312f9af686a9e9a04\",\n \"polygon-pos\": \"0xea73dcf6f49f8d6ad5a129aaede776d78d418cfd\"\n },\n \"marketCapRank\": 2131\n },\n {\n \"id\": \"vaiot\",\n \"symbol\": \"vai\",\n \"name\": \"Vaiot\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xd13cfd3133239a3c73a9e535a5c4dadee36b395c\"\n },\n \"marketCapRank\": 559\n },\n {\n \"id\": \"valencia-cf-fan-token\",\n \"symbol\": \"vcf\",\n \"name\": \"Valencia CF Fan Token\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"chiliz\": \"0xba0c26485b1909f80476067272d74a99cc0e1d57\"\n },\n \"marketCapRank\": 2315\n },\n {\n \"id\": \"vcore\",\n \"symbol\": \"vcore\",\n \"name\": \"IMVU\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x733b5056a0697e7a4357305fe452999a0c409feb\"\n },\n \"marketCapRank\": 2247\n },\n {\n \"id\": \"vechain\",\n \"symbol\": \"vet\",\n \"name\": \"VeChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 44\n },\n {\n \"id\": \"vector-finance\",\n \"symbol\": \"vtx\",\n \"name\": \"Vector Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x5817d4f0b62a59b17f75207da1848c2ce75e7af4\"\n },\n \"marketCapRank\": 2132\n },\n {\n \"id\": \"vectorspace\",\n \"symbol\": \"vxv\",\n \"name\": \"Vectorspace AI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7d29a64504629172a429e64183d6673b9dacbfce\"\n },\n \"marketCapRank\": 858\n },\n {\n \"id\": \"vega-protocol\",\n \"symbol\": \"vega\",\n \"name\": \"Vega Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcb84d72e61e383767c4dfeb2d8ff7f4fb89abc6e\"\n },\n \"marketCapRank\": 714\n },\n {\n \"id\": \"velas\",\n \"symbol\": \"vlx\",\n \"name\": \"Velas\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8c543aed163909142695f2d2acd0d55791a9edb9\",\n \"binance-smart-chain\": \"0xe9c803f48dffe50180bd5b01dc04da939e3445fc\"\n },\n \"marketCapRank\": 780\n },\n {\n \"id\": \"velaspad\",\n \"symbol\": \"vlxpad\",\n \"name\": \"VelasPad\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb8e3bb633f7276cc17735d86154e0ad5ec9928c0\",\n \"ethereum\": \"0xb8e3bb633f7276cc17735d86154e0ad5ec9928c0\",\n \"velas\": \"0xa065e0858417dfc7abc6f2bd4d0185332475c180\"\n },\n \"marketCapRank\": 1997\n },\n {\n \"id\": \"vela-token\",\n \"symbol\": \"vela\",\n \"name\": \"Vela Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x088cd8f5ef3652623c22d48b1605dcfe860cd704\",\n \"base\": \"0x5a76a56ad937335168b30df3aa1327277421c6ae\"\n },\n \"marketCapRank\": 1348\n },\n {\n \"id\": \"velhalla\",\n \"symbol\": \"scar\",\n \"name\": \"ScarQuest\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8d9fb713587174ee97e91866050c383b5cee6209\"\n },\n \"marketCapRank\": 1548\n },\n {\n \"id\": \"velodrome-finance\",\n \"symbol\": \"velo\",\n \"name\": \"Velodrome Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"optimistic-ethereum\": \"0x9560e827af36c94d2ac33a39bce1fe78631088db\"\n },\n \"marketCapRank\": 372\n },\n {\n \"id\": \"veloce-vext\",\n \"symbol\": \"vext\",\n \"name\": \"Veloce\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0x27842334c55c01ddfe81bf687425f906816c5141\",\n \"ethereum\": \"0xb2492e97a68a6e4b9e9a11b99f6c42e5accd38c7\"\n },\n \"marketCapRank\": 1401\n },\n {\n \"id\": \"vinuchain\",\n \"symbol\": \"vc\",\n \"name\": \"VinuChain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x2bf83d080d8bc4715984e75e5b3d149805d11751\"\n },\n \"marketCapRank\": 1537\n },\n {\n \"id\": \"vexanium\",\n \"symbol\": \"vex\",\n \"name\": \"Vexanium\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2523\n },\n {\n \"id\": \"vempire-ddao\",\n \"symbol\": \"vemp\",\n \"name\": \"VEMP\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xcfeb09c3c5f0f78ad72166d55f9e6e9a60e96eec\",\n \"fantom\": \"0x526f1dc408cfe7fc5330ab9f1e78474ceff2a5dd\",\n \"pulsechain\": \"0xa712329708af665991c3fcff43bc5734924f7b9a\",\n \"binance-smart-chain\": \"0xedf3ce4dd6725650a8e9398e5c6398d061fa7955\",\n \"okex-chain\": \"0x2c9a1d0e1226939edb7bbb68c43a080c28743c5c\"\n },\n \"marketCapRank\": 2160\n },\n {\n \"id\": \"veno-finance\",\n \"symbol\": \"vno\",\n \"name\": \"Veno Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0xdb7d0a1ec37de1de924f8e8adac6ed338d4404e9\",\n \"zksync\": \"0xe75a17b4f5c4f844688d5670b684515d7c785e63\"\n },\n \"marketCapRank\": 627\n },\n {\n \"id\": \"vent-finance\",\n \"symbol\": \"vent\",\n \"name\": \"Vent Finance\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5f0bc16d50f72d10b719dbf6845de2e599eb5624\",\n \"polygon-pos\": \"0xf21441f9ec4c1fe69cb7cf186eceab31af2b658d\",\n \"binance-smart-chain\": \"0x872d068c25511be88c1f5990c53eeffcdf46c9b4\"\n },\n \"marketCapRank\": 1990\n },\n {\n \"id\": \"venus\",\n \"symbol\": \"xvs\",\n \"name\": \"Venus\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xcf6bb5389c92bdda8a3747ddb454cb7a64626c63\",\n \"ethereum\": \"0xd3cc9d8f3689b83c91b7b59cab4946b063eb894a\"\n },\n \"marketCapRank\": 305\n },\n {\n \"id\": \"verasity\",\n \"symbol\": \"vra\",\n \"name\": \"Verasity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf411903cbc70a74d22900a5de66a2dda66507255\"\n },\n \"marketCapRank\": 547\n },\n {\n \"id\": \"verge\",\n \"symbol\": \"xvg\",\n \"name\": \"Verge\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 499\n },\n {\n \"id\": \"versagames\",\n \"symbol\": \"versa\",\n \"name\": \"VersaGames\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"cronos\": \"0x00d7699b71290094ccb1a5884cd835bd65a78c17\",\n \"polygon-pos\": \"0x8497842420cfdbc97896c2353d75d89fc8d5be5d\"\n },\n \"marketCapRank\": 2400\n },\n {\n \"id\": \"vertcoin\",\n \"symbol\": \"vtc\",\n \"name\": \"Vertcoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1910\n },\n {\n \"id\": \"vesper-finance\",\n \"symbol\": \"vsp\",\n \"name\": \"Vesper Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1b40183efb4dd766f11bda7a7c3ad8982e998421\",\n \"fantom\": \"0x461d52769884ca6235b685ef2040f47d30c94eb5\",\n \"polygon-pos\": \"0x09c5a4bca808bd1ba2b8e6b3aaf7442046b4ca5b\"\n },\n \"marketCapRank\": 1943\n },\n {\n \"id\": \"vesta-finance\",\n \"symbol\": \"vsta\",\n \"name\": \"Vesta Finance\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xa684cd057951541187f288294a1e1c2646aa2d24\"\n },\n \"marketCapRank\": 1380\n },\n {\n \"id\": \"vethor-token\",\n \"symbol\": \"vtho\",\n \"name\": \"VeThor\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 265\n },\n {\n \"id\": \"viberate\",\n \"symbol\": \"vib\",\n \"name\": \"Viberate\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2c974b2d0ba1716e644c1fc59982a89ddd2ff724\"\n },\n \"marketCapRank\": 1160\n },\n {\n \"id\": \"victoria-vr\",\n \"symbol\": \"vr\",\n \"name\": \"Victoria VR\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7d5121505149065b562c789a0145ed750e6e8cdd\"\n },\n \"marketCapRank\": 374\n },\n {\n \"id\": \"vidt-dao\",\n \"symbol\": \"vidt\",\n \"name\": \"VIDT DAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3be7bf1a5f23bd8336787d0289b70602f1940875\"\n },\n \"marketCapRank\": 814\n },\n {\n \"id\": \"vidya\",\n \"symbol\": \"vidya\",\n \"name\": \"Vidya\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3d3d35bb9bec23b06ca00fe472b50e7a4c692c30\"\n },\n \"marketCapRank\": 2063\n },\n {\n \"id\": \"vita-inu\",\n \"symbol\": \"vinu\",\n \"name\": \"Vita Inu\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfebe8c1ed424dbf688551d4e2267e7a53698f0aa\",\n \"vite\": \"tti_541b25bd5e5db35166864096\",\n \"polygon-pos\": \"0xafcdd4f666c84fed1d8bd825aa762e3714f652c9\",\n \"ethereum\": \"0xafcdd4f666c84fed1d8bd825aa762e3714f652c9\"\n },\n \"marketCapRank\": 1161\n },\n {\n \"id\": \"virtual-versions\",\n \"symbol\": \"vv\",\n \"name\": \"Virtual Versions\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2556\n },\n {\n \"id\": \"virtuswap\",\n \"symbol\": \"vrsw\",\n \"name\": \"VirtuSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x99a01a4d6a4d621094983050d9a2f10b2912e53d\",\n \"arbitrum-one\": \"0xd1e094cabc5acb9d3b0599c3f76f2d01ff8d3563\",\n \"polygon-pos\": \"0x57999936fc9a9ec0751a8d146cce11901be8bed0\"\n },\n \"marketCapRank\": 1892\n },\n {\n \"id\": \"vitadao\",\n \"symbol\": \"vita\",\n \"name\": \"VitaDAO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x81f8f0bb1cb2a06649e51913a151f0e7ef6fa321\"\n },\n \"marketCapRank\": 632\n },\n {\n \"id\": \"vite\",\n \"symbol\": \"vite\",\n \"name\": \"Vite\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xadd5e8871058060d432f80381fb52f45b53f3e70\",\n \"binance-smart-chain\": \"0x2794dad4077602ed25a88d03781528d1637898b4\",\n \"vite\": \"tti_5649544520544f4b454e6e40\"\n },\n \"marketCapRank\": 898\n },\n {\n \"id\": \"vixco\",\n \"symbol\": \"vix\",\n \"name\": \"Vixco\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc0b68eb52c89e3fffa62d78012ac8b661bfaa323\"\n },\n \"marketCapRank\": 1440\n },\n {\n \"id\": \"vlaunch-2\",\n \"symbol\": \"vpad\",\n \"name\": \"VLaunch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xf574ba6bde97cc09784e616ebaed432b4e896b49\"\n },\n \"marketCapRank\": 1167\n },\n {\n \"id\": \"vnx-euro\",\n \"symbol\": \"veur\",\n \"name\": \"VNX EURO\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6ba75d640bebfe5da1197bb5a2aff3327789b5d3\",\n \"avalanche\": \"0x7678e162f38ec9ef2bfd1d0aaf9fd93355e5fa0b\",\n \"tezos\": \"KT1FenS7BCUjn1otfFyfrfxguiGnL4UTF3aG\",\n \"polygon-pos\": \"0xe4095d9372e68d108225c306a4491cacfb33b097\",\n \"solana\": \"C4Kkr9NZU3VbyedcgutU6LKmi6MKz81sx6gRmk5pX519\"\n },\n \"marketCapRank\": 2220\n },\n {\n \"id\": \"voxies\",\n \"symbol\": \"voxel\",\n \"name\": \"Voxies\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xd0258a3fd00f38aa8090dfee343f10a9d4d30d3f\"\n },\n \"marketCapRank\": 798\n },\n {\n \"id\": \"v-systems\",\n \"symbol\": \"vsys\",\n \"name\": \"V.SYSTEMS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1756\n },\n {\n \"id\": \"vulcan-forged\",\n \"symbol\": \"pyr\",\n \"name\": \"Vulcan Forged\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x430ef9263e76dae63c84292c3409d61c598e9682\",\n \"polygon-pos\": \"0x430ef9263e76dae63c84292c3409d61c598e9682\"\n },\n \"marketCapRank\": 374\n },\n {\n \"id\": \"vvs-finance\",\n \"symbol\": \"vvs\",\n \"name\": \"VVS Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"cronos\": \"0x2d03bece6747adc00e1a131bba1469c15fd11e03\",\n \"ethereum\": \"0x839e71613f9aa06e5701cf6de63e303616b0dde3\"\n },\n \"marketCapRank\": 320\n },\n {\n \"id\": \"wagmi-2\",\n \"symbol\": \"wagmi\",\n \"name\": \"Wagmi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"metis-andromeda\": \"0xaf20f5f19698f1d19351028cd7103b63d30de7d7\",\n \"fantom\": \"0xb1f795776cb9ddac6e7e162f31c7419dd3d48297\",\n \"kava\": \"0xaf20f5f19698f1d19351028cd7103b63d30de7d7\",\n \"avalanche\": \"0xaf20f5f19698f1d19351028cd7103b63d30de7d7\",\n \"optimistic-ethereum\": \"0xaf20f5f19698f1d19351028cd7103b63d30de7d7\",\n \"ethereum\": \"0x92cc36d66e9d739d50673d1f27929a371fb83a67\",\n \"zksync\": \"0x3613ad277df1d5935d41400a181aa9ec1dc2dc9e\",\n \"polygon-pos\": \"0x07ed33a242bd9c08ca3c198e01189e35265024da\",\n \"arbitrum-one\": \"0xaf20f5f19698f1d19351028cd7103b63d30de7d7\",\n \"binance-smart-chain\": \"0xaf20f5f19698f1d19351028cd7103b63d30de7d7\"\n },\n \"marketCapRank\": 1087\n },\n {\n \"id\": \"wagmi-game-2\",\n \"symbol\": \"wagmigames\",\n \"name\": \"WAGMI Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3b604747ad1720c01ded0455728b62c0d2f100f0\"\n },\n \"marketCapRank\": 832\n },\n {\n \"id\": \"walken\",\n \"symbol\": \"wlkn\",\n \"name\": \"Walken\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"EcQCUYv57C4V6RoPxkVUiDwtX1SP8y8FP5AEToYL8Az\"\n },\n \"marketCapRank\": 1897\n },\n {\n \"id\": \"wam\",\n \"symbol\": \"wam\",\n \"name\": \"Wam\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xebbaeff6217d22e7744394061d874015709b8141\"\n },\n \"marketCapRank\": 1744\n },\n {\n \"id\": \"wanchain\",\n \"symbol\": \"wan\",\n \"name\": \"Wanchain\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 594\n },\n {\n \"id\": \"wasder\",\n \"symbol\": \"was\",\n \"name\": \"Wasder\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0c572544a4ee47904d54aaa6a970af96b6f00e1b\"\n },\n \"marketCapRank\": 1355\n },\n {\n \"id\": \"wax\",\n \"symbol\": \"waxp\",\n \"name\": \"WAX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2a79324c19ef2b89ea98b23bc669b7e7c9f8a517\"\n },\n \"marketCapRank\": 250\n },\n {\n \"id\": \"wazirx\",\n \"symbol\": \"wrx\",\n \"name\": \"WazirX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binancecoin\": \"WRX-ED1\",\n \"energi\": \"0x0894840ba7d57c7adf2caf8fd3c41eb79af5b8e7\",\n \"polygon-pos\": \"0x72d6066f486bd0052eefb9114b66ae40e0a6031a\",\n \"binance-smart-chain\": \"0x8e17ed70334c87ece574c9d537bc153d8609e2a3\"\n },\n \"marketCapRank\": 418\n },\n {\n \"id\": \"web3war\",\n \"symbol\": \"fps\",\n \"name\": \"web3war\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x351da1e7500aba1d168b9435dce73415718d212f\",\n \"zilliqa\": \"zil1j2wrzjljwyjelspmtr63vfl34c467ype2w3mjl\"\n },\n \"marketCapRank\": 1580\n },\n {\n \"id\": \"webchain\",\n \"symbol\": \"mintme\",\n \"name\": \"MintMe.com Coin\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x138218c8e064ed2a011c9ff203759a8a1e23e6c8\",\n \"ethereum\": \"0x772722b55cdc2a086abd064267a17855eb15e8b3\",\n \"cronos\": \"0xd652776de7ad802be5ec7bebfafda37600222b48\",\n \"arbitrum-one\": \"0x7d05d38e6109a3aeeebf0a570eb8f6856cb4b55e\"\n },\n \"marketCapRank\": 2425\n },\n {\n \"id\": \"wefi-finance\",\n \"symbol\": \"wefi\",\n \"name\": \"Wefi Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"polygon-pos\": \"0xffa188493c15dfaf2c206c97d8633377847b6a52\",\n \"ethereum\": \"0xffa188493c15dfaf2c206c97d8633377847b6a52\",\n \"zksync\": \"0x81e7186947fb59aaaaeb476a47daac60680cbbaf\",\n \"arbitrum-one\": \"0xffa188493c15dfaf2c206c97d8633377847b6a52\",\n \"binance-smart-chain\": \"0xffa188493c15dfaf2c206c97d8633377847b6a52\"\n },\n \"marketCapRank\": 1901\n },\n {\n \"id\": \"wemix-token\",\n \"symbol\": \"wemix\",\n \"name\": \"WEMIX\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 131\n },\n {\n \"id\": \"wesendit\",\n \"symbol\": \"wsi\",\n \"name\": \"WeSendit\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x837a130aed114300bab4f9f1f4f500682f7efd48\"\n },\n \"marketCapRank\": 1831\n },\n {\n \"id\": \"weway\",\n \"symbol\": \"wwy\",\n \"name\": \"WeWay\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x9ab70e92319f0b9127df78868fd3655fb9f1e322\",\n \"ethereum\": \"0x9ab70e92319f0b9127df78868fd3655fb9f1e322\"\n },\n \"marketCapRank\": 976\n },\n {\n \"id\": \"whitebit\",\n \"symbol\": \"wbt\",\n \"name\": \"WhiteBIT Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x925206b8a707096ed26ae47c84747fe0bb734f59\",\n \"tron\": \"TFptbWaARrWTX5Yvy3gNG5Lm8BmhPx82Bt\"\n },\n \"marketCapRank\": 101\n },\n {\n \"id\": \"whiteheart\",\n \"symbol\": \"white\",\n \"name\": \"Whiteheart\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5f0e628b693018f639d10e4a4f59bd4d8b2b6b44\"\n },\n \"marketCapRank\": 745\n },\n {\n \"id\": \"wigoswap\",\n \"symbol\": \"wigo\",\n \"name\": \"WigoSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0xe992beab6659bff447893641a378fbbf031c5bd6\"\n },\n \"marketCapRank\": 1118\n },\n {\n \"id\": \"wild-goat-coin\",\n \"symbol\": \"wgc\",\n \"name\": \"Wild Goat Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"AfPeB1BDUotBeNoLv82XRDCNQcdAA1mqis3YC5SMTe7a\",\n \"polygon-pos\": \"0x382586651f043cbdec7bb586e367d77b26d7d149\"\n },\n \"marketCapRank\": 2240\n },\n {\n \"id\": \"wing-finance\",\n \"symbol\": \"wing\",\n \"name\": \"Wing Finance\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 869\n },\n {\n \"id\": \"wink\",\n \"symbol\": \"win\",\n \"name\": \"WINkLink\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"tron\": \"TLa2f6VPqDgRE67v1736s7bJ8Ray5wYjU7\"\n },\n \"marketCapRank\": 395\n },\n {\n \"id\": \"winr-protocol\",\n \"symbol\": \"winr\",\n \"name\": \"WINR Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0xd77b108d4f6cefaa0cae9506a934e825becca46e\",\n \"solana\": \"CsxCtA8usvWKdRhe7KhLU5GgwzYaLkoHsz1MKBVZ4W3M\"\n },\n \"marketCapRank\": 1068\n },\n {\n \"id\": \"wirex\",\n \"symbol\": \"wxt\",\n \"name\": \"WXT Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa02120696c7b8fe16c09c749e4598819b2b0e915\",\n \"avalanche\": \"0xfcde4a87b8b6fa58326bb462882f1778158b02f1\",\n \"stellar\": \"WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT\"\n },\n \"marketCapRank\": 1263\n },\n {\n \"id\": \"wise-token11\",\n \"symbol\": \"wise\",\n \"name\": \"Wise\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x66a0f676479cee1d7373f3dc2e2952778bff5bd6\",\n \"harmony-shard-0\": \"0xe7e3c4d1cfc722b45a428736845b6aff862842a1\"\n },\n \"marketCapRank\": 1286\n },\n {\n \"id\": \"witch-token\",\n \"symbol\": \"witch\",\n \"name\": \"Witch Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdc524e3c6910257744c1f93cf15e9f472b5bd236\"\n },\n \"marketCapRank\": 1477\n },\n {\n \"id\": \"wliti\",\n \"symbol\": \"wliti\",\n \"name\": \"wLITI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0b63128c40737b13647552e0c926bcfeccc35f93\"\n },\n \"marketCapRank\": 2669\n },\n {\n \"id\": \"wojak\",\n \"symbol\": \"wojak\",\n \"name\": \"Wojak\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x5026f006b85729a8b14553fae6af249ad16c9aab\"\n },\n \"marketCapRank\": 1005\n },\n {\n \"id\": \"wombat\",\n \"symbol\": \"wombat\",\n \"name\": \"Wombat\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0c9c7712c83b3c70e7c5e11100d33d9401bdf9dd\",\n \"polygon-pos\": \"0x0c9c7712c83b3c70e7c5e11100d33d9401bdf9dd\"\n },\n \"marketCapRank\": 1511\n },\n {\n \"id\": \"wom-token\",\n \"symbol\": \"wom\",\n \"name\": \"WOM Protocol\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbd356a39bff2cada8e9248532dd879147221cf76\"\n },\n \"marketCapRank\": 1432\n },\n {\n \"id\": \"wonderman-nation\",\n \"symbol\": \"wndr\",\n \"name\": \"Wonderman Nation\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xdfd7b0dd7bf1012dfdf3307a964c36b972300ac8\"\n },\n \"marketCapRank\": 2534\n },\n {\n \"id\": \"woo-network\",\n \"symbol\": \"woo\",\n \"name\": \"WOO\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4691937a7508860f876c9c0a2a617e7d9e945d4b\",\n \"fantom\": \"0x6626c47c00f1d87902fc13eecfac3ed06d5e8d8a\",\n \"avalanche\": \"0xabc9547b534519ff73921b1fba6e672b5f58d083\",\n \"zksync\": \"0x9e22d758629761fc5708c171d06c2fabb60b5159\",\n \"arbitrum-one\": \"0xcafcd85d8ca7ad1e1c6f82f651fa15e33aefd07b\",\n \"binance-smart-chain\": \"0x4691937a7508860f876c9c0a2a617e7d9e945d4b\",\n \"huobi-token\": \"0x3befb2308bce92da97264077faf37dcd6c8a75e6\",\n \"okex-chain\": \"0x5427a224e50a9af4d030aeecd2a686d41f348dfe\",\n \"polygon-pos\": \"0x1b815d120b3ef02039ee11dc2d33de7aa4a8c603\",\n \"near-protocol\": \"4691937a7508860f876c9c0a2a617e7d9e945d4b.factory.bridge.near\",\n \"solana\": \"E5rk3nmgLUuKUiS94gg4bpWwWwyjCMtddsAXkTFLtHEy\"\n },\n \"marketCapRank\": 130\n },\n {\n \"id\": \"wownero\",\n \"symbol\": \"wow\",\n \"name\": \"Wownero\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 1381\n },\n {\n \"id\": \"wozx\",\n \"symbol\": \"wozx\",\n \"name\": \"Efforce\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x34950ff2b487d9e5282c5ab342d08a2f712eb79f\"\n },\n \"marketCapRank\": 1810\n },\n {\n \"id\": \"wrapped-accumulate\",\n \"symbol\": \"wacme\",\n \"name\": \"Wrapped Accumulate\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdf4ef6ee483953fe3b84abd08c6a060445c01170\"\n },\n \"marketCapRank\": 1877\n },\n {\n \"id\": \"wrapped-ampleforth\",\n \"symbol\": \"wampl\",\n \"name\": \"Wrapped Ampleforth\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xedb171c18ce90b633db442f2a6f72874093b49ef\",\n \"base\": \"0x489fe42c267fe0366b16b0c39e7aeef977e841ef\"\n },\n \"marketCapRank\": 1220\n },\n {\n \"id\": \"wrapped-beacon-eth\",\n \"symbol\": \"wbeth\",\n \"name\": \"Wrapped Beacon ETH\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa2e3356610840701bdf5611a53974510ae27e2e1\",\n \"binance-smart-chain\": \"0xa2e3356610840701bdf5611a53974510ae27e2e1\"\n },\n \"marketCapRank\": 295\n },\n {\n \"id\": \"wrapped-centrifuge\",\n \"symbol\": \"wcfg\",\n \"name\": \"Wrapped Centrifuge\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc221b7e65ffc80de234bbb6667abdd46593d34f0\"\n },\n \"marketCapRank\": 231\n },\n {\n \"id\": \"wrapped-nxm\",\n \"symbol\": \"wnxm\",\n \"name\": \"Wrapped NXM\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0d438f3b5175bebc262bf23753c1e53d03432bde\"\n },\n \"marketCapRank\": 591\n },\n {\n \"id\": \"x2y2\",\n \"symbol\": \"x2y2\",\n \"name\": \"X2Y2\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x1e4ede388cbc9f4b5c79681b7f94d36a11abebc9\"\n },\n \"marketCapRank\": 1831\n },\n {\n \"id\": \"xana\",\n \"symbol\": \"xeta\",\n \"name\": \"XANA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x31c994ac062c1970c086260bc61babb708643fac\",\n \"ethereum\": \"0x967fb0d760ed3ce53afe2f0a071674cccae73550\",\n \"binance-smart-chain\": \"0xbc7370641ddcf16a27eea11230af4a9f247b61f9\",\n \"step-network\": \"0xf390830df829cf22c53c8840554b98eafc5dcbc2\"\n },\n \"marketCapRank\": 660\n },\n {\n \"id\": \"xaurum\",\n \"symbol\": \"xaur\",\n \"name\": \"Xaurum\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x4df812f6064def1e5e029f1ca858777cc98d2d81\"\n },\n \"marketCapRank\": 2671\n },\n {\n \"id\": \"xcad-network\",\n \"symbol\": \"xcad\",\n \"name\": \"XCAD Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x7659ce147d0e714454073a5dd7003544234b6aa0\",\n \"binance-smart-chain\": \"0xa026ad2ceda16ca5fc28fd3c72f99e2c332c8a26\",\n \"polygon-pos\": \"0xa55870278d6389ec5b524553d03c04f5677c061e\",\n \"zilliqa\": \"zil1z5l74hwy3pc3pr3gdh3nqju4jlyp0dzkhq2f5y\",\n \"metis-andromeda\": \"0x66673f0a3b5d99524ba76a558b93a9ca1386f4cd\",\n \"step-network\": \"0xe6801928061cdbe32ac5ad0634427e140efd05f9\"\n },\n \"marketCapRank\": 638\n },\n {\n \"id\": \"xdce-crowd-sale\",\n \"symbol\": \"xdc\",\n \"name\": \"XDC Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 151\n },\n {\n \"id\": \"xdefi\",\n \"symbol\": \"xdefi\",\n \"name\": \"XDEFI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x72b886d09c117654ab7da13a14d603001de0b777\",\n \"arbitrum-one\": \"0x180f7cf38805d1be95c7632f653e26b0838e2969\"\n },\n \"marketCapRank\": 1245\n },\n {\n \"id\": \"xels\",\n \"symbol\": \"xels\",\n \"name\": \"XELS\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x397deb686c72384fad502a81f4d7fdb89e1f1280\"\n },\n \"marketCapRank\": 1608\n },\n {\n \"id\": \"xfinite-entertainment-token\",\n \"symbol\": \"xet\",\n \"name\": \"Xfinite Entertainment\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"algorand\": \"283820866\"\n },\n \"marketCapRank\": 2536\n },\n {\n \"id\": \"xfund\",\n \"symbol\": \"xfund\",\n \"name\": \"xFUND\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x892a6f9df0147e5f079b0993f486f9aca3c87881\",\n \"sora\": \"0x007e908e399cc73f3dad9f02f9c5c83a7adcd07e78dd91676ff3c002e245d8e9\"\n },\n \"marketCapRank\": 1741\n },\n {\n \"id\": \"xido-finance\",\n \"symbol\": \"xido\",\n \"name\": \"Xido Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xf6650117017ffd48b725b4ec5a00b414097108a7\",\n \"binance-smart-chain\": \"0x3764bc0de9b6a68c67929130aaec16b6060cab8c\"\n },\n \"marketCapRank\": 907\n },\n {\n \"id\": \"xi-token\",\n \"symbol\": \"xi\",\n \"name\": \"Xi\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x295b42684f90c77da7ea46336001010f2791ec8c\"\n },\n \"marketCapRank\": 2212\n },\n {\n \"id\": \"xmon\",\n \"symbol\": \"xmon\",\n \"name\": \"XMON\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x3aada3e213abf8529606924d8d1c55cbdc70bf74\"\n },\n \"marketCapRank\": 2259\n },\n {\n \"id\": \"xpla\",\n \"symbol\": \"xpla\",\n \"name\": \"XPLA\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"osmosis\": \"ibc/95C9B5870F95E21A242E6AF9ADCB1F212EE4A8855087226C36FBE43FC41A77B8\"\n },\n \"marketCapRank\": 441\n },\n {\n \"id\": \"xp-network\",\n \"symbol\": \"xpnet\",\n \"name\": \"XP Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x8cf8238abf7b933bf8bb5ea2c7e4be101c11de2a\"\n },\n \"marketCapRank\": 2292\n },\n {\n \"id\": \"xsgd\",\n \"symbol\": \"xsgd\",\n \"name\": \"XSGD\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x70e8de73ce538da2beed35d14187f6959a8eca96\",\n \"zilliqa\": \"zil180v66mlw007ltdv8tq5t240y7upwgf7djklmwh\",\n \"polygon-pos\": \"0xdc3326e71d45186f113a2f448984ca0e8d201995\"\n },\n \"marketCapRank\": 883\n },\n {\n \"id\": \"xswap-protocol\",\n \"symbol\": \"xsp\",\n \"name\": \"XSwap Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"xdc-network\": \"xdc36726235dadbdb4658d33e62a249dca7c4b2bc68\"\n },\n \"marketCapRank\": 2227\n },\n {\n \"id\": \"xsushi\",\n \"symbol\": \"xsushi\",\n \"name\": \"xSUSHI\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x8798249c2e607446efb7ad49ec89dd1865ff4272\"\n },\n \"marketCapRank\": 722\n },\n {\n \"id\": \"xwin-finance\",\n \"symbol\": \"xwin\",\n \"name\": \"xWIN Finance\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xd88ca08d8eec1e9e09562213ae83a7853ebb5d28\",\n \"polygon-pos\": \"0x6cd6cb131764c704ba9167c29930fbdc38901ab7\"\n },\n \"marketCapRank\": 1753\n },\n {\n \"id\": \"x-world-games\",\n \"symbol\": \"xwg\",\n \"name\": \"X World Games\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0x6b23c89196deb721e6fd9726e6c76e4810a464bc\",\n \"arbitrum-one\": \"0xeb4d25db65dcef52380c99ba7e1344c820ecb1fc\",\n \"ethereum\": \"0x0a77ef9bf662d62fbf9ba4cf861eaa83f9cc4fec\"\n },\n \"marketCapRank\": 1536\n },\n {\n \"id\": \"xy-finance\",\n \"symbol\": \"xy\",\n \"name\": \"XY Finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x77777777772cf0455fb38ee0e75f38034dfa50de\",\n \"binance-smart-chain\": \"0x666666661f9b6d8c581602aaa2f76cbead06c401\",\n \"fantom\": \"0x444444443b0fcb2733b93f23c910580fba52fffa\",\n \"polygon-pos\": \"0x55555555a687343c6ce28c8e1f6641dc71659fad\"\n },\n \"marketCapRank\": 2167\n },\n {\n \"id\": \"xyo-network\",\n \"symbol\": \"xyo\",\n \"name\": \"XYO Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x55296f69f40ea6d20e478533c15a6b08b654e758\"\n },\n \"marketCapRank\": 413\n },\n {\n \"id\": \"y2k\",\n \"symbol\": \"y2k\",\n \"name\": \"Y2K\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"arbitrum-one\": \"0x65c936f008bc34fe819bce9fa5afd9dc2d49977f\"\n },\n \"marketCapRank\": 2606\n },\n {\n \"id\": \"yield-yak\",\n \"symbol\": \"yak\",\n \"name\": \"Yield Yak\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"avalanche\": \"0x59414b3089ce2af0010e7523dea7e2b35d776ec7\",\n \"arbitrum-one\": \"0x7f4db37d7beb31f445307782bc3da0f18df13696\"\n },\n \"marketCapRank\": 1596\n },\n {\n \"id\": \"yam-2\",\n \"symbol\": \"yam\",\n \"name\": \"YAM\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0aacfbec6a24756c20d41914f2caba817c0d8521\",\n \"harmony-shard-0\": \"0x7202adf025cbd1cc9411fd56e3cc8ef2e9dffa9d\"\n },\n \"marketCapRank\": 2350\n },\n {\n \"id\": \"yearn-finance\",\n \"symbol\": \"yfi\",\n \"name\": \"yearn.finance\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e\",\n \"xdai\": \"0xbf65bfcb5da067446cee6a706ba3fe2fb1a9fdfd\",\n \"avalanche\": \"0x9eaac1b23d935365bd7b542fe22ceee2922f52dc\",\n \"optimistic-ethereum\": \"0x9046d36440290ffde54fe0dd84db8b1cfee9107b\",\n \"near-protocol\": \"0bc529c00c6401aef6d220be8c6ea1667f6ad93e.factory.bridge.near\",\n \"energi\": \"0x2726dd5efb3a209a54c512e9562a2045b8f45dbc\",\n \"base\": \"0x9eaf8c1e34f05a589eda6bafdf391cf6ad3cb239\",\n \"huobi-token\": \"0xb4f019beac758abbee2f906033aaa2f0f6dacb35\",\n \"polygon-pos\": \"0xda537104d6a5edd53c6fbba9a898708e465260b6\",\n \"harmony-shard-0\": \"0xa0dc05f84a27fccbd341305839019ab86576bc07\",\n \"fantom\": \"0x29b0da86e484e1c0029b56e817912d778ac0ec69\",\n \"arbitrum-one\": \"0x82e3a8f066a6989666b031d916c43672085b1582\",\n \"sora\": \"0x002676c3edea5b08bc0f9b6809a91aa313b7da35e28b190222e9dc032bf1e662\"\n },\n \"marketCapRank\": 272\n },\n {\n \"id\": \"yes-money\",\n \"symbol\": \"yes\",\n \"name\": \"YES Money\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"blast\": \"0x20fe91f17ec9080e3cac2d688b4ecb48c5ac3a9c\"\n },\n \"marketCapRank\": 663\n },\n {\n \"id\": \"yfii-finance\",\n \"symbol\": \"yfii\",\n \"name\": \"DFI.money\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xa1d0e215a23d7030842fc67ce582a6afa3ccab83\",\n \"energi\": \"0xba71e0c0b13e724bf2329ecb9bdf5775a2ce9e8d\"\n },\n \"marketCapRank\": 1132\n },\n {\n \"id\": \"yield-guild-games\",\n \"symbol\": \"ygg\",\n \"name\": \"Yield Guild Games\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x25f8087ead173b73d6e8b84329989a8eea16cf73\",\n \"ronin\": \"0x1c306872bc82525d72bf3562e8f0aa3f8f26e857\",\n \"polygon-pos\": \"0x82617aa52dddf5ed9bb7b370ed777b3182a30fd1\",\n \"harmony-shard-0\": \"0x63cf309500d8be0b9fdb8f1fb66c821236c0438c\"\n },\n \"marketCapRank\": 210\n },\n {\n \"id\": \"yieldification\",\n \"symbol\": \"ydf\",\n \"name\": \"Yieldification\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x30dcba0405004cf124045793e1933c798af9e66a\",\n \"arbitrum-one\": \"0x30dcba0405004cf124045793e1933c798af9e66a\"\n },\n \"marketCapRank\": 2358\n },\n {\n \"id\": \"yoshi-exchange\",\n \"symbol\": \"yoshi\",\n \"name\": \"Yoshi.exchange\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"fantom\": \"0x3dc57b391262e3aae37a08d91241f9ba9d58b570\",\n \"binance-smart-chain\": \"0x4374f26f0148a6331905edf4cd33b89d8eed78d1\"\n },\n \"marketCapRank\": 1657\n },\n {\n \"id\": \"yuan-chain-coin\",\n \"symbol\": \"ycc\",\n \"name\": \"Yuan Chain Coin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x37e1160184f7dd29f00b78c050bf13224780b0b0\"\n },\n \"marketCapRank\": 1651\n },\n {\n \"id\": \"zano\",\n \"symbol\": \"zano\",\n \"name\": \"Zano\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xdb85f6685950e285b1e611037bebe5b34e2b7d78\"\n },\n \"marketCapRank\": 783\n },\n {\n \"id\": \"zap\",\n \"symbol\": \"zap\",\n \"name\": \"Zap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x6781a0f84c7e9e846dcb84a9a5bd49333067b104\",\n \"solana\": \"HxPoEHMt1vKeqjKCePcqTj6yYgn6Xqq1fKTY3Pjx4YrX\",\n \"binance-smart-chain\": \"0xc5326b32e8baef125acd68f8bc646fd646104f1c\"\n },\n \"marketCapRank\": 2064\n },\n {\n \"id\": \"zcash\",\n \"symbol\": \"zec\",\n \"name\": \"Zcash\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 207\n },\n {\n \"id\": \"zebec-protocol\",\n \"symbol\": \"zbc\",\n \"name\": \"Zebec Protocol\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"solana\": \"zebeczgi5fSEtbpfQKVZKCJ3WgYXxjkMUkNNx7fLKAF\"\n },\n \"marketCapRank\": 346\n },\n {\n \"id\": \"zeitgeist\",\n \"symbol\": \"ztg\",\n \"name\": \"Zeitgeist\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2602\n },\n {\n \"id\": \"zencash\",\n \"symbol\": \"zen\",\n \"name\": \"Horizen\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 330\n },\n {\n \"id\": \"zenlink-network-token\",\n \"symbol\": \"zlk\",\n \"name\": \"Zenlink Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"moonriver\": \"0x0f47ba9d9bde3442b42175e51d6a367928a1173b\",\n \"astar\": \"0x998082c488e548820f970df5173bd2061ce90635\"\n },\n \"marketCapRank\": 2648\n },\n {\n \"id\": \"zenon-2\",\n \"symbol\": \"znn\",\n \"name\": \"Zenon\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb2e96a63479c2edd2fd62b382c89d5ca79f572d3\"\n },\n \"marketCapRank\": 1297\n },\n {\n \"id\": \"zeroswap\",\n \"symbol\": \"zee\",\n \"name\": \"ZeroSwap\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x2edf094db69d6dcd487f1b3db9febe2eec0dd4c5\",\n \"avalanche\": \"0x44754455564474a89358b2c2265883df993b12f0\",\n \"binance-smart-chain\": \"0x44754455564474a89358b2c2265883df993b12f0\",\n \"polygon-pos\": \"0xfd4959c06fbcc02250952daebf8e0fb38cf9fd8c\"\n },\n \"marketCapRank\": 2194\n },\n {\n \"id\": \"zignaly\",\n \"symbol\": \"zig\",\n \"name\": \"Zignaly\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xb2617246d0c6c0087f18703d576831899ca94f01\",\n \"injective\": \"peggy0xb2617246d0c6c0087f18703d576831899ca94f01\",\n \"polygon-pos\": \"0x7bebd226154e865954a87650faefa8f485d36081\",\n \"binance-smart-chain\": \"0x8c907e0a72c3d55627e853f4ec6a96b0c8771145\",\n \"solana\": \"ANqY8h3sRSwkC29FvGJenAh7VGRABVVx7Ls6Mq4BuGT\"\n },\n \"marketCapRank\": 461\n },\n {\n \"id\": \"zigzag-2\",\n \"symbol\": \"zz\",\n \"name\": \"ZigZag\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xc91a71a1ffa3d8b22ba615ba1b9c01b2bbbf55ad\"\n },\n \"marketCapRank\": 2150\n },\n {\n \"id\": \"zilliqa\",\n \"symbol\": \"zil\",\n \"name\": \"Zilliqa\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xb86abcb37c3a4b64f74f59301aff131a1becc787\"\n },\n \"marketCapRank\": 153\n },\n {\n \"id\": \"zkapes-token\",\n \"symbol\": \"zat\",\n \"name\": \"zkApes Token\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"zksync\": \"0x47ef4a5641992a72cfd57b9406c9d9cefee8e0c4\"\n },\n \"marketCapRank\": 2624\n },\n {\n \"id\": \"zkspace\",\n \"symbol\": \"zkb\",\n \"name\": \"ZKBase\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0xbbbbbbbb46a1da0f0c3f64522c275baa4c332636\",\n \"energi\": \"0xc4efad8386124927fb46b146526625e143e5a63a\"\n },\n \"marketCapRank\": 1485\n },\n {\n \"id\": \"zksync-id\",\n \"symbol\": \"zkid\",\n \"name\": \"zkSync id\",\n \"variants\": [\n \"mono\"\n ],\n \"addresses\": {\n \"zksync\": \"0x2141d7fe06a1d69c016fc638ba75b6ef92fa1435\"\n },\n \"marketCapRank\": 2003\n },\n {\n \"id\": \"zmine\",\n \"symbol\": \"zmn\",\n \"name\": \"ZMINE\",\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"binance-smart-chain\": \"0xfcb8a4b1a0b645e08064e05b98e9cc6f48d2aa57\"\n },\n \"marketCapRank\": 1618\n },\n {\n \"id\": \"zoid-pay\",\n \"symbol\": \"zpay\",\n \"name\": \"ZoidPay\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"tomochain\": \"0xe1a9a5fae06696d314994a9d6915c12a63ad055d\"\n },\n \"marketCapRank\": 1638\n },\n {\n \"id\": \"zoomer\",\n \"symbol\": \"zoomer\",\n \"name\": \"Zoomer\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {\n \"ethereum\": \"0x0d505c03d30e65f6e9b4ef88855a47a89e4b7676\",\n \"polygon-pos\": \"0xb962150760f9a3bb00e3e9cf48297ee20ada4a33\",\n \"arbitrum-nova\": \"0xb962150760f9a3bb00e3e9cf48297ee20ada4a33\",\n \"optimistic-ethereum\": \"0xb962150760f9a3bb00e3e9cf48297ee20ada4a33\",\n \"base\": \"0xd1db4851bcf5b41442caa32025ce0afe6b8eabc2\",\n \"binance-smart-chain\": \"0xb962150760f9a3bb00e3e9cf48297ee20ada4a33\",\n \"solana\": \"nBZEcHSG771mRbi4y2sSgKjfDUH8jsM2Eo5fNcASLeU\"\n },\n \"marketCapRank\": 1913\n },\n {\n \"id\": \"zynecoin\",\n \"symbol\": \"zyn\",\n \"name\": \"Zynecoin\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": 2235\n },\n {\n \"id\": \"utrust\",\n \"symbol\": \"utk\",\n \"name\": \"xMoney\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"marketCapRank\": null,\n \"addresses\": {\n \"ethereum\": \"0xdc9ac3c20d1ed0b540df9b1fedc10039df13f99c\",\n \"elrond\": \"UTK-2f80e9\"\n }\n },\n {\n \"id\": \"pendle\",\n \"symbol\": \"pendle\",\n \"name\": \"Pendle\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"marketCapRank\": 191,\n \"addresses\": {\n \"ethereum\": \"0x808507121b80c02388fad14726482e061b8da827\",\n \"avalanche\": \"0xfb98b335551a418cd0737375a2ea0ded62ea213b\",\n \"optimistic-ethereum\": \"0xbc7b1ff1c6989f006a1185318ed4e7b5796e66e1\",\n \"arbitrum-one\": \"0x0c880f6761f1af8d9aa9c466984b80dab9a8c9e8\",\n \"binance-smart-chain\": \"0xb3ed0a426155b79b898849803e3b36552f7ed507\"\n }\n },\n {\n \"id\": \"jupiter\",\n \"symbol\": \"jup\",\n \"name\": \"Jupiter Project\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"marketCapRank\": 2628,\n \"addresses\": {\n \"ethereum\": \"0x4b1e80cac91e2216eeb63e29b957eb91ae9c2be8\",\n \"binance-smart-chain\": \"0x0231f91e02debd20345ae8ab7d71a41f8e140ce7\"\n }\n },\n {\n \"id\": \"artrade\",\n \"symbol\": \"atr\",\n \"name\": \"Artrade\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"marketCapRank\": 480,\n \"addresses\": {\n \"solana\": \"ATRLuHph8dxnPny4WSNW7fxkhbeivBrtWbY6BfB4xpLj\"\n }\n },\n {\n \"id\": \"binancecoin\",\n \"symbol\": \"bnb\",\n \"name\": \"BNB\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"marketCapRank\": 4,\n \"addresses\": {\n \"ethereum\": \"0xb8c77482e45f1f44de1745f52c74426c631bdd52\"\n }\n },\n {\n \"id\": \"sensegenesis\",\n \"name\": \"Sense\",\n \"symbol\": \"sense\",\n \"marketCapRank\": null,\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {}\n },\n {\n \"id\": \"amzcoinvault\",\n \"name\": \"AMZCoin\",\n \"symbol\": \"amz\",\n \"marketCapRank\": null,\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {}\n },\n {\n \"id\": \"danchortoken\",\n \"name\": \"USN\",\n \"symbol\": \"usn\",\n \"marketCapRank\": null,\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {}\n },\n {\n \"id\": \"g-token\",\n \"symbol\": \"g\",\n \"name\": \"Gravity\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {},\n \"marketCapRank\": null\n },\n {\n \"id\": \"0x0-ai-ai-smart-contract\",\n \"name\": \"0x0.ai: AI Smart Contract\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"0x0\",\n \"marketCapRank\": 376,\n \"addresses\": {\n \"ethereum\": \"0x5a3e6a77ba2f983ec0d371ea3b475f8bc0811ad5\"\n }\n },\n {\n \"id\": \"0xgasless-2\",\n \"name\": \"0xGasless\",\n \"variants\": [\n \"branded\"\n ],\n \"symbol\": \"0xgas\",\n \"marketCapRank\": 3040,\n \"addresses\": {\n \"ethereum\": \"0x5fc111f3fa4c6b32eaf65659cfebdeed57234069\"\n }\n },\n {\n \"id\": \"1art\",\n \"name\": \"OneArt\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"1art\",\n \"marketCapRank\": 2680,\n \"addresses\": {\n \"binance-smart-chain\": \"0xd3c325848d7c6e29b574cb0789998b2ff901f17e\",\n \"fantom\": \"0xd3c325848d7c6e29b574cb0789998b2ff901f17e\",\n \"ethereum\": \"0xd3c325848d7c6e29b574cb0789998b2ff901f17e\"\n }\n },\n {\n \"id\": \"1inch\",\n \"name\": \"1inch\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"1inch\",\n \"marketCapRank\": 165,\n \"addresses\": {\n \"ethereum\": \"0x111111111117dc0aa78b770fa6a738034120c302\",\n \"harmony-shard-0\": \"0x58f1b044d8308812881a1433d9bbeff99975e70c\",\n \"avalanche\": \"0xd501281565bf7789224523144fe5d98e8b28f267\",\n \"binance-smart-chain\": \"0x111111111117dc0aa78b770fa6a738034120c302\",\n \"near-protocol\": \"111111111117dc0aa78b770fa6a738034120c302.factory.bridge.near\",\n \"polygon-pos\": \"0x9c2c5fd7b07e95ee044ddeba0e97a665f142394f\",\n \"energi\": \"0xdda6205dc3f47e5280eb726613b27374eee9d130\"\n }\n },\n {\n \"id\": \"2dai-io\",\n \"name\": \"2DAI.io\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"2dai\",\n \"marketCapRank\": 2443,\n \"addresses\": {\n \"ethereum\": \"0xb44b653f147569d88a684cbf6549e1968e8b2a1d\"\n }\n },\n {\n \"id\": \"apefi\",\n \"name\": \"apefi\",\n \"symbol\": \"apefi\",\n \"marketCapRank\": null,\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"addresses\": {}\n },\n {\n \"id\": \"base\",\n \"name\": \"SwapBased\",\n \"symbol\": \"base\",\n \"marketCapRank\": null,\n \"variants\": [\n \"branded\"\n ],\n \"addresses\": {\n \"base\": \"0xd07379a755a8f11b57610154861d694b2a0f615a\"\n }\n },\n {\n \"id\": \"orderly-network\",\n \"name\": \"Orderly Network\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"order\",\n \"marketCapRank\": 1057,\n \"addresses\": {\n \"ethereum\": \"0xabd4c63d2616a5201454168269031355f4764337\",\n \"arbitrum-one\": \"0x4e200fe2f3efb977d5fd9c430a41531fb04d97b8\",\n \"optimistic-ethereum\": \"0x4e200fe2f3efb977d5fd9c430a41531fb04d97b8\",\n \"base\": \"0x4e200fe2f3efb977d5fd9c430a41531fb04d97b8\",\n \"polygon-pos\": \"0x4e200fe2f3efb977d5fd9c430a41531fb04d97b8\"\n }\n },\n {\n \"id\": \"banano\",\n \"name\": \"Banano\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"ban\",\n \"marketCapRank\": null,\n \"addresses\": {}\n },\n {\n \"id\": \"sonic-3\",\n \"name\": \"Sonic\",\n \"variants\": [\n \"branded\",\n \"mono\"\n ],\n \"symbol\": \"s\",\n \"marketCapRank\": null,\n \"addresses\": {}\n }\n]","/**\n *\n * @param str\n * @returns kebab-case\n */\nexport const toKebabCase = (str: string) => {\n return str\n .split(' ')\n .map((part, index) => {\n if (index === 0) {\n return part.toLowerCase()\n }\n return part.charAt(0).toLowerCase() + part.slice(1)\n })\n .join('-')\n}\n\n/**\n *\n * @param str\n * @returns camelCase\n */\nexport const toCamelCase = (str: string) => {\n return str.replace(/[-_]+(.)?/g, (match, chr) =>\n chr ? chr.toUpperCase() : '',\n )\n}\n\n/**\n *\n * @param str: kebab-case\n * @returns camelCase\n */\nexport const kebabToCamel = (str: string) => {\n return str\n .split('-')\n .map((part, index) => {\n if (index === 0) {\n return part\n }\n return part.charAt(0).toUpperCase() + part.slice(1)\n })\n .join('')\n}\n\n/**\n *\n * @param str\n * @returns to PascalCase\n */\nexport const toPascalCase = (str: string): string => {\n const words = str.match(/[a-z0-9]+/gi) || []\n return words\n .map(\n (word) => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase(),\n )\n .join('')\n}\n\n/**\n *\n * @param str kebab-case\n * @returns PascalCase\n */\nexport const kebabToPascalCase = (str: string): string => {\n return str.replace(/(^\\w|-\\w)/g, (match) =>\n match.replace('-', '').toUpperCase(),\n )\n}\n\n/**\n *\n * @param str\n * @returns boolean\n */\nexport const isUppercase = (filename: string): boolean =>\n filename === filename.toUpperCase()\n\n/**\n *\n * @param str\n * @returns boolean\n */\nexport const isKebabCase = (filename: string): boolean => {\n return /^([a-z0-9]+(-[a-z0-9]+)*)/.test(filename)\n}\n","/* Generated */\n// This file maps dynamically importable icon components.\n\n// Type for a single import function that dynamically imports a module\ntype IconImportFunction = () => Promise<{ default: React.ComponentType<any> }>\n\n// Type for the map containing all network icon import functions\ninterface IconImportMap {\n [name: string]: IconImportFunction\n}\n\nexport const NETWORK_ICON_IMPORT_MAP: IconImportMap = {\nNetworkBitkubChain: () => import('../icons/networks/NetworkBitkubChain'),\nNetworkLinea: () => import('../icons/networks/NetworkLinea'),\nNetworkKakarot: () => import('../icons/networks/NetworkKakarot'),\nNetworkFio: () => import('../icons/networks/NetworkFio'),\nNetworkOkex: () => import('../icons/networks/NetworkOkex'),\nNetworkMatic: () => import('../icons/networks/NetworkMatic'),\nNetworkPolkadot: () => import('../icons/networks/NetworkPolkadot'),\nNetworkKava: () => import('../icons/networks/NetworkKava'),\nNetworkZksync: () => import('../icons/networks/NetworkZksync'),\nNetworkAurora: () => import('../icons/networks/NetworkAurora'),\nNetworkVelas: () => import('../icons/networks/NetworkVelas'),\nNetworkTombchain: () => import('../icons/networks/NetworkTombchain'),\nNetworkAstar: () => import('../icons/networks/NetworkAstar'),\nNetworkLyra: () => import('../icons/networks/NetworkLyra'),\nNetworkViction: () => import('../icons/networks/NetworkViction'),\nNetworkSonic: () => import('../icons/networks/NetworkSonic'),\nNetworkApexLayer: () => import('../icons/networks/NetworkApexLayer'),\nNetworkOptimism: () => import('../icons/networks/NetworkOptimism'),\nNetworkMilkomedaC1: () => import('../icons/networks/NetworkMilkomedaC1'),\nNetworkIotex: () => import('../icons/networks/NetworkIotex'),\nNetworkLoopring: () => import('../icons/networks/NetworkLoopring'),\nNetworkLukso: () => import('../icons/networks/NetworkLukso'),\nNetworkSongbird: () => import('../icons/networks/NetworkSongbird'),\nNetworkHederaHashgraph: () => import('../icons/networks/NetworkHederaHashgraph'),\nNetworkBoba: () => import('../icons/networks/NetworkBoba'),\nNetworkXLayer: () => import('../icons/networks/NetworkXLayer'),\nNetworkWorld: () => import('../icons/networks/NetworkWorld'),\nNetworkMantra: () => import('../icons/networks/NetworkMantra'),\nNetworkBlast: () => import('../icons/networks/NetworkBlast'),\nNetworkEnergyWeb: () => import('../icons/networks/NetworkEnergyWeb'),\nNetworkCosmos: () => import('../icons/networks/NetworkCosmos'),\nNetworkKujira: () => import('../icons/networks/NetworkKujira'),\nNetworkOrderly: () => import('../icons/networks/NetworkOrderly'),\nNetworkSeiNetwork: () => import('../icons/networks/NetworkSeiNetwork'),\nNetworkMantaPacific: () => import('../icons/networks/NetworkMantaPacific'),\nNetworkNeoX: () => import('../icons/networks/NetworkNeoX'),\nNetworkCronos: () => import('../icons/networks/NetworkCronos'),\nNetworkLumia: () => import('../icons/networks/NetworkLumia'),\nNetworkEdgeless: () => import('../icons/networks/NetworkEdgeless'),\nNetworkFluence: () => import('../icons/networks/NetworkFluence'),\nNetworkWemix: () => import('../icons/networks/NetworkWemix'),\nNetworkDogechain: () => import('../icons/networks/NetworkDogechain'),\nNetworkSoneium: () => import('../icons/networks/NetworkSoneium'),\nNetworkClover: () => import('../icons/networks/NetworkClover'),\nNetworkReya: () => import('../icons/networks/NetworkReya'),\nNetworkKaia: () => import('../icons/networks/NetworkKaia'),\nNetworkFantom: () => import('../icons/networks/NetworkFantom'),\nNetworkAvalanche: () => import('../icons/networks/NetworkAvalanche'),\nNetworkChiliz: () => import('../icons/networks/NetworkChiliz'),\nNetworkNearProtocol: () => import('../icons/networks/NetworkNearProtocol'),\nNetworkCelo: () => import('../icons/networks/NetworkCelo'),\nNetworkWax: () => import('../icons/networks/NetworkWax'),\nNetworkBouncebit: () => import('../icons/networks/NetworkBouncebit'),\nNetworkEnuls: () => import('../icons/networks/NetworkEnuls'),\nNetworkInjective: () => import('../icons/networks/NetworkInjective'),\nNetworkOsmosis: () => import('../icons/networks/NetworkOsmosis'),\nNetworkNeonEvm: () => import('../icons/networks/NetworkNeonEvm'),\nNetworkRootstock: () => import('../icons/networks/NetworkRootstock'),\nNetworkLavaNetwork: () => import('../icons/networks/NetworkLavaNetwork'),\nNetworkMoonbaseAlpha: () => import('../icons/networks/NetworkMoonbaseAlpha'),\nNetworkMeter: () => import('../icons/networks/NetworkMeter'),\nNetworkTheta: () => import('../icons/networks/NetworkTheta'),\nNetworkZilliqa: () => import('../icons/networks/NetworkZilliqa'),\nNetworkStarknet: () => import('../icons/networks/NetworkStarknet'),\nNetworkMantle: () => import('../icons/networks/NetworkMantle'),\nNetworkMoonbeam: () => import('../icons/networks/NetworkMoonbeam'),\nNetworkRollux: () => import('../icons/networks/NetworkRollux'),\nNetworkEtherlink: () => import('../icons/networks/NetworkEtherlink'),\nNetworkBase: () => import('../icons/networks/NetworkBase'),\nNetworkShiden: () => import('../icons/networks/NetworkShiden'),\nNetworkZetaChain: () => import('../icons/networks/NetworkZetaChain'),\nNetworkAptos: () => import('../icons/networks/NetworkAptos'),\nNetworkSuperseed: () => import('../icons/networks/NetworkSuperseed'),\nNetworkXrp: () => import('../icons/networks/NetworkXrp'),\nNetworkLisk: () => import('../icons/networks/NetworkLisk'),\nNetworkDiode: () => import('../icons/networks/NetworkDiode'),\nNetworkVanar: () => import('../icons/networks/NetworkVanar'),\nNetworkKardia: () => import('../icons/networks/NetworkKardia'),\nNetworkOptopia: () => import('../icons/networks/NetworkOptopia'),\nNetworkUbiq: () => import('../icons/networks/NetworkUbiq'),\nNetworkConflux: () => import('../icons/networks/NetworkConflux'),\nNetworkKarura: () => import('../icons/networks/NetworkKarura'),\nNetworkSui: () => import('../icons/networks/NetworkSui'),\nNetworkAcala: () => import('../icons/networks/NetworkAcala'),\nNetworkZora: () => import('../icons/networks/NetworkZora'),\nNetworkRei: () => import('../icons/networks/NetworkRei'),\nNetworkGnosis: () => import('../icons/networks/NetworkGnosis'),\nNetworkHemi: () => import('../icons/networks/NetworkHemi'),\nNetworkAbstract: () => import('../icons/networks/NetworkAbstract'),\nNetworkFraxtal: () => import('../icons/networks/NetworkFraxtal'),\nNetworkSys: () => import('../icons/networks/NetworkSys'),\nNetworkStep: () => import('../icons/networks/NetworkStep'),\nNetworkOasys: () => import('../icons/networks/NetworkOasys'),\nNetworkBob: () => import('../icons/networks/NetworkBob'),\nNetworkCoinexSmartChain: () => import('../icons/networks/NetworkCoinexSmartChain'),\nNetworkMultiversx: () => import('../icons/networks/NetworkMultiversx'),\nNetworkScroll: () => import('../icons/networks/NetworkScroll'),\nNetworkBinanceSmartChain: () => import('../icons/networks/NetworkBinanceSmartChain'),\nNetworkFilecoin: () => import('../icons/networks/NetworkFilecoin'),\nNetworkShimmerEvm: () => import('../icons/networks/NetworkShimmerEvm'),\nNetworkThundercore: () => import('../icons/networks/NetworkThundercore'),\nNetworkPolygonZkevm: () => import('../icons/networks/NetworkPolygonZkevm'),\nNetworkLitecoin: () => import('../icons/networks/NetworkLitecoin'),\nNetworkFuse: () => import('../icons/networks/NetworkFuse'),\nNetworkTelos: () => import('../icons/networks/NetworkTelos'),\nNetworkElastos: () => import('../icons/networks/NetworkElastos'),\nNetworkLycan: () => import('../icons/networks/NetworkLycan'),\nNetworkStellar: () => import('../icons/networks/NetworkStellar'),\nNetworkXdc: () => import('../icons/networks/NetworkXdc'),\nNetworkUnichain: () => import('../icons/networks/NetworkUnichain'),\nNetworkArweave: () => import('../icons/networks/NetworkArweave'),\nNetworkImmutable: () => import('../icons/networks/NetworkImmutable'),\nNetworkStargaze: () => import('../icons/networks/NetworkStargaze'),\nNetworkMetisAndromeda: () => import('../icons/networks/NetworkMetisAndromeda'),\nNetworkRari: () => import('../icons/networks/NetworkRari'),\nNetworkNahmii: () => import('../icons/networks/NetworkNahmii'),\nNetworkXai: () => import('../icons/networks/NetworkXai'),\nNetworkTenet: () => import('../icons/networks/NetworkTenet'),\nNetworkHarmony: () => import('../icons/networks/NetworkHarmony'),\nNetworkEos: () => import('../icons/networks/NetworkEos'),\nNetworkEthereumClassic: () => import('../icons/networks/NetworkEthereumClassic'),\nNetworkCronosZkevm: () => import('../icons/networks/NetworkCronosZkevm'),\nNetworkCosmosHub: () => import('../icons/networks/NetworkCosmosHub'),\nNetworkMoonriver: () => import('../icons/networks/NetworkMoonriver'),\nNetworkGravity: () => import('../icons/networks/NetworkGravity'),\nNetworkKucoin: () => import('../icons/networks/NetworkKucoin'),\nNetworkUltron: () => import('../icons/networks/NetworkUltron'),\nNetworkPolygonPos: () => import('../icons/networks/NetworkPolygonPos'),\nNetworkEthereum: () => import('../icons/networks/NetworkEthereum'),\nNetworkLumio: () => import('../icons/networks/NetworkLumio'),\nNetworkArbitrumNova: () => import('../icons/networks/NetworkArbitrumNova'),\nNetworkMilkomedaA1: () => import('../icons/networks/NetworkMilkomedaA1'),\nNetworkLightlink: () => import('../icons/networks/NetworkLightlink'),\nNetworkZyx: () => import('../icons/networks/NetworkZyx'),\nNetworkRonin: () => import('../icons/networks/NetworkRonin'),\nNetworkMode: () => import('../icons/networks/NetworkMode'),\nNetworkBotanix: () => import('../icons/networks/NetworkBotanix'),\nNetworkCardano: () => import('../icons/networks/NetworkCardano'),\nNetworkJuno: () => import('../icons/networks/NetworkJuno'),\nNetworkKroma: () => import('../icons/networks/NetworkKroma'),\nNetworkL3x: () => import('../icons/networks/NetworkL3x'),\nNetworkHubbleExchange: () => import('../icons/networks/NetworkHubbleExchange'),\nNetworkBitcoin: () => import('../icons/networks/NetworkBitcoin'),\nNetworkLens: () => import('../icons/networks/NetworkLens'),\nNetworkAlgorand: () => import('../icons/networks/NetworkAlgorand'),\nNetworkSolana: () => import('../icons/networks/NetworkSolana'),\nNetworkMoonbase: () => import('../icons/networks/NetworkMoonbase'),\nNetworkTaiko: () => import('../icons/networks/NetworkTaiko'),\nNetworkTron: () => import('../icons/networks/NetworkTron'),\nNetworkCorn: () => import('../icons/networks/NetworkCorn'),\nNetworkArbitrumOne: () => import('../icons/networks/NetworkArbitrumOne'),\nNetworkBeam: () => import('../icons/networks/NetworkBeam'),\nNetworkFlare: () => import('../icons/networks/NetworkFlare'),\n};\n\nexport const TOKEN_ICON_IMPORT_MAP: IconImportMap = {\nTokenVXV: () => import('../icons/tokens/TokenVXV'),\nTokenAXL: () => import('../icons/tokens/TokenAXL'),\nTokenXTZ: () => import('../icons/tokens/TokenXTZ'),\nTokenCCD: () => import('../icons/tokens/TokenCCD'),\nTokenXTM: () => import('../icons/tokens/TokenXTM'),\nTokenREEF: () => import('../icons/tokens/TokenREEF'),\nTokenAUCTION: () => import('../icons/tokens/TokenAUCTION'),\nTokenMBX: () => import('../icons/tokens/TokenMBX'),\nTokenSAMA: () => import('../icons/tokens/TokenSAMA'),\nTokenHAIR: () => import('../icons/tokens/TokenHAIR'),\nTokenDIA: () => import('../icons/tokens/TokenDIA'),\nTokenDESO: () => import('../icons/tokens/TokenDESO'),\nTokenECOX: () => import('../icons/tokens/TokenECOX'),\nTokenOXT: () => import('../icons/tokens/TokenOXT'),\nTokenAVG: () => import('../icons/tokens/TokenAVG'),\nTokenFITFI: () => import('../icons/tokens/TokenFITFI'),\nTokenCNC: () => import('../icons/tokens/TokenCNC'),\nTokenACQ: () => import('../icons/tokens/TokenACQ'),\nTokenCOMBO: () => import('../icons/tokens/TokenCOMBO'),\nTokenABYSS: () => import('../icons/tokens/TokenABYSS'),\nTokenBLAST: () => import('../icons/tokens/TokenBLAST'),\nTokenMNTL: () => import('../icons/tokens/TokenMNTL'),\nTokenCEEK: () => import('../icons/tokens/TokenCEEK'),\nTokenPOKT: () => import('../icons/tokens/TokenPOKT'),\nTokenR: () => import('../icons/tokens/TokenR'),\nTokenFORE: () => import('../icons/tokens/TokenFORE'),\nTokenAART: () => import('../icons/tokens/TokenAART'),\nTokenALI: () => import('../icons/tokens/TokenALI'),\nTokenCVR: () => import('../icons/tokens/TokenCVR'),\nTokenSATT: () => import('../icons/tokens/TokenSATT'),\nTokenDNXC: () => import('../icons/tokens/TokenDNXC'),\nTokenSCLP: () => import('../icons/tokens/TokenSCLP'),\nTokenPAID: () => import('../icons/tokens/TokenPAID'),\nTokenHFT: () => import('../icons/tokens/TokenHFT'),\nTokenPAPER: () => import('../icons/tokens/TokenPAPER'),\nTokenAMZ: () => import('../icons/tokens/TokenAMZ'),\nTokenHYVE: () => import('../icons/tokens/TokenHYVE'),\nTokenWGC: () => import('../icons/tokens/TokenWGC'),\nTokenKINE: () => import('../icons/tokens/TokenKINE'),\nTokenDFYN: () => import('../icons/tokens/TokenDFYN'),\nTokenICX: () => import('../icons/tokens/TokenICX'),\nTokenRVN: () => import('../icons/tokens/TokenRVN'),\nTokenWIGO: () => import('../icons/tokens/TokenWIGO'),\nTokenPLU: () => import('../icons/tokens/TokenPLU'),\nTokenNAOS: () => import('../icons/tokens/TokenNAOS'),\nTokenYES: () => import('../icons/tokens/TokenYES'),\nTokenIDRT: () => import('../icons/tokens/TokenIDRT'),\nTokenFACTR: () => import('../icons/tokens/TokenFACTR'),\nTokenPXP: () => import('../icons/tokens/TokenPXP'),\nTokenWHALE: () => import('../icons/tokens/TokenWHALE'),\nTokenBEND: () => import('../icons/tokens/TokenBEND'),\nTokenCUMMIES: () => import('../icons/tokens/TokenCUMMIES'),\nTokenPTS: () => import('../icons/tokens/TokenPTS'),\nTokenDOGA: () => import('../icons/tokens/TokenDOGA'),\nTokenLDO: () => import('../icons/tokens/TokenLDO'),\nTokenAGIX: () => import('../icons/tokens/TokenAGIX'),\nTokenQTUM: () => import('../icons/tokens/TokenQTUM'),\nTokenKAR: () => import('../icons/tokens/TokenKAR'),\nTokenKAS: () => import('../icons/tokens/TokenKAS'),\nTokenCAKE: () => import('../icons/tokens/TokenCAKE'),\nTokenMTRM: () => import('../icons/tokens/TokenMTRM'),\nTokenIXS: () => import('../icons/tokens/TokenIXS'),\nToken0XGAS: () => import('../icons/tokens/Token0XGAS'),\nTokenRVST: () => import('../icons/tokens/TokenRVST'),\nTokenENS: () => import('../icons/tokens/TokenENS'),\nTokenDXGM: () => import('../icons/tokens/TokenDXGM'),\nTokenBKN: () => import('../icons/tokens/TokenBKN'),\nTokenLITT: () => import('../icons/tokens/TokenLITT'),\nTokenITP: () => import('../icons/tokens/TokenITP'),\nTokenKLT: () => import('../icons/tokens/TokenKLT'),\nTokenLAZIO: () => import('../icons/tokens/TokenLAZIO'),\nTokenBABYDOGE: () => import('../icons/tokens/TokenBABYDOGE'),\nTokenSAITO: () => import('../icons/tokens/TokenSAITO'),\nTokenRCN: () => import('../icons/tokens/TokenRCN'),\nTokenSOLID: () => import('../icons/tokens/TokenSOLID'),\nTokenGOB: () => import('../icons/tokens/TokenGOB'),\nTokenSUIP: () => import('../icons/tokens/TokenSUIP'),\nTokenDSRUN: () => import('../icons/tokens/TokenDSRUN'),\nTokenYFI: () => import('../icons/tokens/TokenYFI'),\nTokenMOCHI: () => import('../icons/tokens/TokenMOCHI'),\nTokenMASQ: () => import('../icons/tokens/TokenMASQ'),\nTokenCARAT: () => import('../icons/tokens/TokenCARAT'),\nTokenCAST: () => import('../icons/tokens/TokenCAST'),\nTokenPLT: () => import('../icons/tokens/TokenPLT'),\nTokenAGRS: () => import('../icons/tokens/TokenAGRS'),\nTokenNFD: () => import('../icons/tokens/TokenNFD'),\nTokenBICO: () => import('../icons/tokens/TokenBICO'),\nTokenDSLA: () => import('../icons/tokens/TokenDSLA'),\nTokenBUSD: () => import('../icons/tokens/TokenBUSD'),\nTokenPNK: () => import('../icons/tokens/TokenPNK'),\nTokenRXD: () => import('../icons/tokens/TokenRXD'),\nTokenDORA: () => import('../icons/tokens/TokenDORA'),\nTokenDOSE: () => import('../icons/tokens/TokenDOSE'),\nTokenCOSMOSHUB: () => import('../icons/tokens/TokenCOSMOSHUB'),\nTokenTRAC: () => import('../icons/tokens/TokenTRAC'),\nTokenILV: () => import('../icons/tokens/TokenILV'),\nTokenKWENTA: () => import('../icons/tokens/TokenKWENTA'),\nTokenLRC: () => import('../icons/tokens/TokenLRC'),\nTokenGAI: () => import('../icons/tokens/TokenGAI'),\nTokenSPX: () => import('../icons/tokens/TokenSPX'),\nTokenGAINS: () => import('../icons/tokens/TokenGAINS'),\nTokenLAND: () => import('../icons/tokens/TokenLAND'),\nTokenSTMX: () => import('../icons/tokens/TokenSTMX'),\nTokenSTSTARS: () => import('../icons/tokens/TokenSTSTARS'),\nTokenBFIC: () => import('../icons/tokens/TokenBFIC'),\nTokenS: () => import('../icons/tokens/TokenS'),\nTokenVAB: () => import('../icons/tokens/TokenVAB'),\nTokenCUBE: () => import('../icons/tokens/TokenCUBE'),\nTokenAPOLLO: () => import('../icons/tokens/TokenAPOLLO'),\nTokenDEFX: () => import('../icons/tokens/TokenDEFX'),\nTokenABT: () => import('../icons/tokens/TokenABT'),\nTokenCXO: () => import('../icons/tokens/TokenCXO'),\nTokenSDEX: () => import('../icons/tokens/TokenSDEX'),\nTokenADCO: () => import('../icons/tokens/TokenADCO'),\nTokenSTSOL: () => import('../icons/tokens/TokenSTSOL'),\nTokenGO: () => import('../icons/tokens/TokenGO'),\nTokenGRND: () => import('../icons/tokens/TokenGRND'),\nTokenVTC: () => import('../icons/tokens/TokenVTC'),\nTokenOXB: () => import('../icons/tokens/TokenOXB'),\nTokenSHI: () => import('../icons/tokens/TokenSHI'),\nTokenDC: () => import('../icons/tokens/TokenDC'),\nTokenGENI: () => import('../icons/tokens/TokenGENI'),\nTokenZBC: () => import('../icons/tokens/TokenZBC'),\nTokenSHIA: () => import('../icons/tokens/TokenSHIA'),\nTokenVPAD: () => import('../icons/tokens/TokenVPAD'),\nTokenHPO: () => import('../icons/tokens/TokenHPO'),\nTokenDEC: () => import('../icons/tokens/TokenDEC'),\nTokenHST: () => import('../icons/tokens/TokenHST'),\nTokenDFX: () => import('../icons/tokens/TokenDFX'),\nTokenXVS: () => import('../icons/tokens/TokenXVS'),\nTokenLORDS: () => import('../icons/tokens/TokenLORDS'),\nTokenBSGG: () => import('../icons/tokens/TokenBSGG'),\nTokenID: () => import('../icons/tokens/TokenID'),\nTokenD3D: () => import('../icons/tokens/TokenD3D'),\nTokenRISE: () => import('../icons/tokens/TokenRISE'),\nTokenGRAI: () => import('../icons/tokens/TokenGRAI'),\nTokenSOMM: () => import('../icons/tokens/TokenSOMM'),\nTokenSPOOL: () => import('../icons/tokens/TokenSPOOL'),\nTokenJIM: () => import('../icons/tokens/TokenJIM'),\nTokenIQ: () => import('../icons/tokens/TokenIQ'),\nTokenFORTH: () => import('../icons/tokens/TokenFORTH'),\nTokenZMN: () => import('../icons/tokens/TokenZMN'),\nTokenFSN: () => import('../icons/tokens/TokenFSN'),\nTokenEMAGIC: () => import('../icons/tokens/TokenEMAGIC'),\nTokenKATA: () => import('../icons/tokens/TokenKATA'),\nTokenOXEN: () => import('../icons/tokens/TokenOXEN'),\nTokenCOS: () => import('../icons/tokens/TokenCOS'),\nTokenCLH: () => import('../icons/tokens/TokenCLH'),\nTokenGYMNET: () => import('../icons/tokens/TokenGYMNET'),\nTokenXWIN: () => import('../icons/tokens/TokenXWIN'),\nTokenMBL: () => import('../icons/tokens/TokenMBL'),\nTokenSIX: () => import('../icons/tokens/TokenSIX'),\nTokenMTA: () => import('../icons/tokens/TokenMTA'),\nTokenAURABAL: () => import('../icons/tokens/TokenAURABAL'),\nTokenBTCST: () => import('../icons/tokens/TokenBTCST'),\nTokenVITE: () => import('../icons/tokens/TokenVITE'),\nTokenFET: () => import('../icons/tokens/TokenFET'),\nTokenMTV: () => import('../icons/tokens/TokenMTV'),\nTokenSTBU: () => import('../icons/tokens/TokenSTBU'),\nTokenPSTAKE: () => import('../icons/tokens/TokenPSTAKE'),\nTokenLOOM: () => import('../icons/tokens/TokenLOOM'),\nTokenJST: () => import('../icons/tokens/TokenJST'),\nTokenPOPCAT: () => import('../icons/tokens/TokenPOPCAT'),\nTokenMVI: () => import('../icons/tokens/TokenMVI'),\nTokenVNO: () => import('../icons/tokens/TokenVNO'),\nTokenTVK: () => import('../icons/tokens/TokenTVK'),\nTokenSSV: () => import('../icons/tokens/TokenSSV'),\nTokenH2O: () => import('../icons/tokens/TokenH2O'),\nTokenXCP: () => import('../icons/tokens/TokenXCP'),\nTokenPLASTIK: () => import('../icons/tokens/TokenPLASTIK'),\nTokenNFTART: () => import('../icons/tokens/TokenNFTART'),\nTokenRADIO: () => import('../icons/tokens/TokenRADIO'),\nTokenIPOR: () => import('../icons/tokens/TokenIPOR'),\nTokenQUIDD: () => import('../icons/tokens/TokenQUIDD'),\nTokenLADYS: () => import('../icons/tokens/TokenLADYS'),\nTokenXMON: () => import('../icons/tokens/TokenXMON'),\nTokenAIRI: () => import('../icons/tokens/TokenAIRI'),\nTokenTSUKA: () => import('../icons/tokens/TokenTSUKA'),\nTokenBRN: () => import('../icons/tokens/TokenBRN'),\nTokenPERI: () => import('../icons/tokens/TokenPERI'),\nTokenETH: () => import('../icons/tokens/TokenETH'),\nTokenGNS: () => import('../icons/tokens/TokenGNS'),\nTokenEUL: () => import('../icons/tokens/TokenEUL'),\nTokenXAVA: () => import('../icons/tokens/TokenXAVA'),\nTokenDASH: () => import('../icons/tokens/TokenDASH'),\nTokenEGLD: () => import('../icons/tokens/TokenEGLD'),\nTokenINFRA: () => import('../icons/tokens/TokenINFRA'),\nTokenPLA: () => import('../icons/tokens/TokenPLA'),\nTokenBDT: () => import('../icons/tokens/TokenBDT'),\nTokenSILO: () => import('../icons/tokens/TokenSILO'),\nTokenWHALES: () => import('../icons/tokens/TokenWHALES'),\nTokenDAFI: () => import('../icons/tokens/TokenDAFI'),\nTokenWEMIX: () => import('../icons/tokens/TokenWEMIX'),\nTokenRAD: () => import('../icons/tokens/TokenRAD'),\nTokenKLV: () => import('../icons/tokens/TokenKLV'),\nTokenKOM: () => import('../icons/tokens/TokenKOM'),\nTokenAUTO: () => import('../icons/tokens/TokenAUTO'),\nTokenRLC: () => import('../icons/tokens/TokenRLC'),\nTokenLINDA: () => import('../icons/tokens/TokenLINDA'),\nTokenKLEE: () => import('../icons/tokens/TokenKLEE'),\nTokenARPA: () => import('../icons/tokens/TokenARPA'),\nTokenKUJI: () => import('../icons/tokens/TokenKUJI'),\nTokenENG: () => import('../icons/tokens/TokenENG'),\nTokenKAP: () => import('../icons/tokens/TokenKAP'),\nTokenMCRT: () => import('../icons/tokens/TokenMCRT'),\nTokenRLB: () => import('../icons/tokens/TokenRLB'),\nTokenRARI: () => import('../icons/tokens/TokenRARI'),\nTokenDODO: () => import('../icons/tokens/TokenDODO'),\nTokenRDNT: () => import('../icons/tokens/TokenRDNT'),\nTokenKAG: () => import('../icons/tokens/TokenKAG'),\nTokenLUFC: () => import('../icons/tokens/TokenLUFC'),\nTokenRAE: () => import('../icons/tokens/TokenRAE'),\nTokenDIONE: () => import('../icons/tokens/TokenDIONE'),\nTokenKMD: () => import('../icons/tokens/TokenKMD'),\nTokenNSFW: () => import('../icons/tokens/TokenNSFW'),\nTokenCARD: () => import('../icons/tokens/TokenCARD'),\nTokenAITECH: () => import('../icons/tokens/TokenAITECH'),\nTokenWIFI: () => import('../icons/tokens/TokenWIFI'),\nTokenHGPT: () => import('../icons/tokens/TokenHGPT'),\nTokenNGC: () => import('../icons/tokens/TokenNGC'),\nTokenETI: () => import('../icons/tokens/TokenETI'),\nTokenGLM: () => import('../icons/tokens/TokenGLM'),\nTokenPOL: () => import('../icons/tokens/TokenPOL'),\nTokenION: () => import('../icons/tokens/TokenION'),\nTokenLSS: () => import('../icons/tokens/TokenLSS'),\nTokenAREA: () => import('../icons/tokens/TokenAREA'),\nTokenINJ: () => import('../icons/tokens/TokenINJ'),\nTokenARDR: () => import('../icons/tokens/TokenARDR'),\nTokenLSD: () => import('../icons/tokens/TokenLSD'),\nTokenKUB: () => import('../icons/tokens/TokenKUB'),\nTokenOSMO: () => import('../icons/tokens/TokenOSMO'),\nTokenSTOS: () => import('../icons/tokens/TokenSTOS'),\nTokenCTX: () => import('../icons/tokens/TokenCTX'),\nTokenANC: () => import('../icons/tokens/TokenANC'),\nTokenANT: () => import('../icons/tokens/TokenANT'),\nTokenCVP: () => import('../icons/tokens/TokenCVP'),\nTokenMXC: () => import('../icons/tokens/TokenMXC'),\nTokenAMO: () => import('../icons/tokens/TokenAMO'),\nTokenHEZ: () => import('../icons/tokens/TokenHEZ'),\nTokenDSM: () => import('../icons/tokens/TokenDSM'),\nTokenVELO: () => import('../icons/tokens/TokenVELO'),\nTokenSI: () => import('../icons/tokens/TokenSI'),\nTokenHXRO: () => import('../icons/tokens/TokenHXRO'),\nTokenSTATOM: () => import('../icons/tokens/TokenSTATOM'),\nTokenATPAY: () => import('../icons/tokens/TokenATPAY'),\nTokenXOR: () => import('../icons/tokens/TokenXOR'),\nTokenXNA: () => import('../icons/tokens/TokenXNA'),\nTokenACS: () => import('../icons/tokens/TokenACS'),\nTokenDEXTF: () => import('../icons/tokens/TokenDEXTF'),\nTokenG: () => import('../icons/tokens/TokenG'),\nTokenMAV: () => import('../icons/tokens/TokenMAV'),\nTokenMYRIA: () => import('../icons/tokens/TokenMYRIA'),\nTokenWAGMI: () => import('../icons/tokens/TokenWAGMI'),\nTokenMOBILE: () => import('../icons/tokens/TokenMOBILE'),\nTokenDERI: () => import('../icons/tokens/TokenDERI'),\nTokenES: () => import('../icons/tokens/TokenES'),\nTokenSTARL: () => import('../icons/tokens/TokenSTARL'),\nToken10SET: () => import('../icons/tokens/Token10SET'),\nTokenALICE: () => import('../icons/tokens/TokenALICE'),\nTokenATM: () => import('../icons/tokens/TokenATM'),\nTokenVERSA: () => import('../icons/tokens/TokenVERSA'),\nTokenHT: () => import('../icons/tokens/TokenHT'),\nTokenPAWTH: () => import('../icons/tokens/TokenPAWTH'),\nTokenSHIB: () => import('../icons/tokens/TokenSHIB'),\nTokenD2T: () => import('../icons/tokens/TokenD2T'),\nTokenZLK: () => import('../icons/tokens/TokenZLK'),\nTokenXVG: () => import('../icons/tokens/TokenXVG'),\nTokenETHIX: () => import('../icons/tokens/TokenETHIX'),\nTokenNPXS: () => import('../icons/tokens/TokenNPXS'),\nTokenOOKI: () => import('../icons/tokens/TokenOOKI'),\nTokenGBEX: () => import('../icons/tokens/TokenGBEX'),\nTokenSPACE: () => import('../icons/tokens/TokenSPACE'),\nTokenXWG: () => import('../icons/tokens/TokenXWG'),\nTokenNRCH: () => import('../icons/tokens/TokenNRCH'),\nTokenSEI: () => import('../icons/tokens/TokenSEI'),\nTokenMMF: () => import('../icons/tokens/TokenMMF'),\nTokenAVA: () => import('../icons/tokens/TokenAVA'),\nTokenSALT: () => import('../icons/tokens/TokenSALT'),\nTokenDHT: () => import('../icons/tokens/TokenDHT'),\nTokenCLXY: () => import('../icons/tokens/TokenCLXY'),\nTokenDIP: () => import('../icons/tokens/TokenDIP'),\nTokenXPLA: () => import('../icons/tokens/TokenXPLA'),\nTokenVERSE: () => import('../icons/tokens/TokenVERSE'),\nTokenCOV: () => import('../icons/tokens/TokenCOV'),\nTokenQR: () => import('../icons/tokens/TokenQR'),\nTokenT: () => import('../icons/tokens/TokenT'),\nTokenMTS: () => import('../icons/tokens/TokenMTS'),\nTokenXLM: () => import('../icons/tokens/TokenXLM'),\nTokenMVL: () => import('../icons/tokens/TokenMVL'),\nTokenFORT: () => import('../icons/tokens/TokenFORT'),\nTokenMTD: () => import('../icons/tokens/TokenMTD'),\nTokenNEXO: () => import('../icons/tokens/TokenNEXO'),\nTokenCVC: () => import('../icons/tokens/TokenCVC'),\nTokenZYN: () => import('../icons/tokens/TokenZYN'),\nTokenSETH2: () => import('../icons/tokens/TokenSETH2'),\nTokenSPH: () => import('../icons/tokens/TokenSPH'),\nTokenSMBR: () => import('../icons/tokens/TokenSMBR'),\nTokenCTK: () => import('../icons/tokens/TokenCTK'),\nTokenVENT: () => import('../icons/tokens/TokenVENT'),\nTokenTOKEN: () => import('../icons/tokens/TokenTOKEN'),\nTokenPBX: () => import('../icons/tokens/TokenPBX'),\nTokenPAC: () => import('../icons/tokens/TokenPAC'),\nTokenTRCL: () => import('../icons/tokens/TokenTRCL'),\nTokenSPIRIT: () => import('../icons/tokens/TokenSPIRIT'),\nTokenXSGD: () => import('../icons/tokens/TokenXSGD'),\nTokenKINT: () => import('../icons/tokens/TokenKINT'),\nTokenNEO: () => import('../icons/tokens/TokenNEO'),\nTokenBSX: () => import('../icons/tokens/TokenBSX'),\nTokenYDF: () => import('../icons/tokens/TokenYDF'),\nTokenWBTC: () => import('../icons/tokens/TokenWBTC'),\nTokenWIN: () => import('../icons/tokens/TokenWIN'),\nTokenNEX: () => import('../icons/tokens/TokenNEX'),\nTokenBPT: () => import('../icons/tokens/TokenBPT'),\nTokenGMM: () => import('../icons/tokens/TokenGMM'),\nTokenBEAM: () => import('../icons/tokens/TokenBEAM'),\nTokenTRYB: () => import('../icons/tokens/TokenTRYB'),\nTokenUFT: () => import('../icons/tokens/TokenUFT'),\nTokenPYR: () => import('../icons/tokens/TokenPYR'),\nTokenKAT: () => import('../icons/tokens/TokenKAT'),\nTokenIXT: () => import('../icons/tokens/TokenIXT'),\nTokenELK: () => import('../icons/tokens/TokenELK'),\nTokenPTU: () => import('../icons/tokens/TokenPTU'),\nTokenWNXM: () => import('../icons/tokens/TokenWNXM'),\nTokenTRVL: () => import('../icons/tokens/TokenTRVL'),\nTokenLIBRE: () => import('../icons/tokens/TokenLIBRE'),\nTokenQANX: () => import('../icons/tokens/TokenQANX'),\nTokenSIDUS: () => import('../icons/tokens/TokenSIDUS'),\nTokenWIKEN: () => import('../icons/tokens/TokenWIKEN'),\nTokenKAU: () => import('../icons/tokens/TokenKAU'),\nTokenANGLE: () => import('../icons/tokens/TokenANGLE'),\nTokenSILK: () => import('../icons/tokens/TokenSILK'),\nTokenNRG: () => import('../icons/tokens/TokenNRG'),\nTokenBDP: () => import('../icons/tokens/TokenBDP'),\nTokenKMA: () => import('../icons/tokens/TokenKMA'),\nTokenMETAL: () => import('../icons/tokens/TokenMETAL'),\nTokenPLR: () => import('../icons/tokens/TokenPLR'),\nTokenPEPE: () => import('../icons/tokens/TokenPEPE'),\nTokenKIBA: () => import('../icons/tokens/TokenKIBA'),\nTokenMATIC: () => import('../icons/tokens/TokenMATIC'),\nTokenFRIN: () => import('../icons/tokens/TokenFRIN'),\nTokenTROY: () => import('../icons/tokens/TokenTROY'),\nTokenBRWL: () => import('../icons/tokens/TokenBRWL'),\nTokenMMIT: () => import('../icons/tokens/TokenMMIT'),\nTokenKTC: () => import('../icons/tokens/TokenKTC'),\nTokenMORK: () => import('../icons/tokens/TokenMORK'),\nTokenNIM: () => import('../icons/tokens/TokenNIM'),\nTokenLINK: () => import('../icons/tokens/TokenLINK'),\nTokenALOT: () => import('../icons/tokens/TokenALOT'),\nTokenREGEN: () => import('../icons/tokens/TokenREGEN'),\nTokenFIS: () => import('../icons/tokens/TokenFIS'),\nTokenDPS: () => import('../icons/tokens/TokenDPS'),\nTokenTUT: () => import('../icons/tokens/TokenTUT'),\nTokenJULD: () => import('../icons/tokens/TokenJULD'),\nTokenSATS: () => import('../icons/tokens/TokenSATS'),\nTokenGYEN: () => import('../icons/tokens/TokenGYEN'),\nTokenFARM: () => import('../icons/tokens/TokenFARM'),\nTokenPOLYX: () => import('../icons/tokens/TokenPOLYX'),\nTokenVITA: () => import('../icons/tokens/TokenVITA'),\nTokenABR: () => import('../icons/tokens/TokenABR'),\nTokenEVEAI: () => import('../icons/tokens/TokenEVEAI'),\nTokenONI: () => import('../icons/tokens/TokenONI'),\nTokenFEG: () => import('../icons/tokens/TokenFEG'),\nTokenDEFI: () => import('../icons/tokens/TokenDEFI'),\nTokenUBXS: () => import('../icons/tokens/TokenUBXS'),\nTokenU: () => import('../icons/tokens/TokenU'),\nTokenBABYSHIB: () => import('../icons/tokens/TokenBABYSHIB'),\nTokenSHDW: () => import('../icons/tokens/TokenSHDW'),\nTokenDINGO: () => import('../icons/tokens/TokenDINGO'),\nTokenATH: () => import('../icons/tokens/TokenATH'),\nTokenCOW: () => import('../icons/tokens/TokenCOW'),\nToken1ART: () => import('../icons/tokens/Token1ART'),\nTokenCUMINU: () => import('../icons/tokens/TokenCUMINU'),\nTokenCERE: () => import('../icons/tokens/TokenCERE'),\nTokenCND: () => import('../icons/tokens/TokenCND'),\nTokenSHX: () => import('../icons/tokens/TokenSHX'),\nTokenDFI: () => import('../icons/tokens/TokenDFI'),\nTokenCCT: () => import('../icons/tokens/TokenCCT'),\nTokenWCFG: () => import('../icons/tokens/TokenWCFG'),\nTokenSDL: () => import('../icons/tokens/TokenSDL'),\nTokenSFD: () => import('../icons/tokens/TokenSFD'),\nTokenEDGE: () => import('../icons/tokens/TokenEDGE'),\nTokenDGX: () => import('../icons/tokens/TokenDGX'),\nTokenSOLX: () => import('../icons/tokens/TokenSOLX'),\nTokenTOMB: () => import('../icons/tokens/TokenTOMB'),\nTokenDEP: () => import('../icons/tokens/TokenDEP'),\nTokenSDN: () => import('../icons/tokens/TokenSDN'),\nTokenSOLO: () => import('../icons/tokens/TokenSOLO'),\nTokenXYO: () => import('../icons/tokens/TokenXYO'),\nTokenCLY: () => import('../icons/tokens/TokenCLY'),\nTokenBUILD: () => import('../icons/tokens/TokenBUILD'),\nTokenTHEO: () => import('../icons/tokens/TokenTHEO'),\nTokenXDEFI: () => import('../icons/tokens/TokenXDEFI'),\nTokenATRI: () => import('../icons/tokens/TokenATRI'),\nTokenASTO: () => import('../icons/tokens/TokenASTO'),\nTokenFPS: () => import('../icons/tokens/TokenFPS'),\nTokenQSR: () => import('../icons/tokens/TokenQSR'),\nTokenFX: () => import('../icons/tokens/TokenFX'),\nTokenOSAK: () => import('../icons/tokens/TokenOSAK'),\nTokenDEGO: () => import('../icons/tokens/TokenDEGO'),\nTokenSN: () => import('../icons/tokens/TokenSN'),\nTokenSCAR: () => import('../icons/tokens/TokenSCAR'),\nTokenOLT: () => import('../icons/tokens/TokenOLT'),\nTokenAIMBOT: () => import('../icons/tokens/TokenAIMBOT'),\nTokenFER: () => import('../icons/tokens/TokenFER'),\nTokenMVX: () => import('../icons/tokens/TokenMVX'),\nTokenOMG: () => import('../icons/tokens/TokenOMG'),\nTokenACT: () => import('../icons/tokens/TokenACT'),\nTokenITHEUM: () => import('../icons/tokens/TokenITHEUM'),\nTokenOAS: () => import('../icons/tokens/TokenOAS'),\nTokenELAND: () => import('../icons/tokens/TokenELAND'),\nTokenQKC: () => import('../icons/tokens/TokenQKC'),\nTokenCWS: () => import('../icons/tokens/TokenCWS'),\nTokenETHEREUM: () => import('../icons/tokens/TokenETHEREUM'),\nTokenPAW: () => import('../icons/tokens/TokenPAW'),\nTokenLIME: () => import('../icons/tokens/TokenLIME'),\nTokenSWEAT: () => import('../icons/tokens/TokenSWEAT'),\nTokenGCR: () => import('../icons/tokens/TokenGCR'),\nTokenGALA: () => import('../icons/tokens/TokenGALA'),\nTokenRUG: () => import('../icons/tokens/TokenRUG'),\nTokenMMPRO: () => import('../icons/tokens/TokenMMPRO'),\nTokenGAME: () => import('../icons/tokens/TokenGAME'),\nTokenARKM: () => import('../icons/tokens/TokenARKM'),\nTokenETN: () => import('../icons/tokens/TokenETN'),\nTokenBEAN: () => import('../icons/tokens/TokenBEAN'),\nTokenLOVELY: () => import('../icons/tokens/TokenLOVELY'),\nTokenVOLT: () => import('../icons/tokens/TokenVOLT'),\nTokenNPM: () => import('../icons/tokens/TokenNPM'),\nTokenROSE: () => import('../icons/tokens/TokenROSE'),\nTokenAIPAD: () => import('../icons/tokens/TokenAIPAD'),\nTokenRBN: () => import('../icons/tokens/TokenRBN'),\nTokenIDEX: () => import('../icons/tokens/TokenIDEX'),\nToken0X0: () => import('../icons/tokens/Token0X0'),\nTokenTUSD: () => import('../icons/tokens/TokenTUSD'),\nTokenCROWD: () => import('../icons/tokens/TokenCROWD'),\nTokenEML: () => import('../icons/tokens/TokenEML'),\nTokenEOS: () => import('../icons/tokens/TokenEOS'),\nTokenCYBER: () => import('../icons/tokens/TokenCYBER'),\nTokenCTSI: () => import('../icons/tokens/TokenCTSI'),\nTokenBIT: () => import('../icons/tokens/TokenBIT'),\nTokenHERO: () => import('../icons/tokens/TokenHERO'),\nTokenSAKAI: () => import('../icons/tokens/TokenSAKAI'),\nTokenLEO: () => import('../icons/tokens/TokenLEO'),\nTokenDOGE: () => import('../icons/tokens/TokenDOGE'),\nTokenSTELLA: () => import('../icons/tokens/TokenSTELLA'),\nTokenTIME: () => import('../icons/tokens/TokenTIME'),\nTokenFDUSD: () => import('../icons/tokens/TokenFDUSD'),\nTokenJESUS: () => import('../icons/tokens/TokenJESUS'),\nTokenTPAD: () => import('../icons/tokens/TokenTPAD'),\nTokenPYTH: () => import('../icons/tokens/TokenPYTH'),\nTokenRBX: () => import('../icons/tokens/TokenRBX'),\nTokenSHRAP: () => import('../icons/tokens/TokenSHRAP'),\nTokenEWT: () => import('../icons/tokens/TokenEWT'),\nTokenRWN: () => import('../icons/tokens/TokenRWN'),\nTokenHBOT: () => import('../icons/tokens/TokenHBOT'),\nTokenORDER: () => import('../icons/tokens/TokenORDER'),\nTokenDVPN: () => import('../icons/tokens/TokenDVPN'),\nTokenLUSD: () => import('../icons/tokens/TokenLUSD'),\nTokenGOG: () => import('../icons/tokens/TokenGOG'),\nTokenGMX: () => import('../icons/tokens/TokenGMX'),\nTokenSPELL: () => import('../icons/tokens/TokenSPELL'),\nTokenSTRONG: () => import('../icons/tokens/TokenSTRONG'),\nTokenPIKA: () => import('../icons/tokens/TokenPIKA'),\nTokenGAL: () => import('../icons/tokens/TokenGAL'),\nTokenCOPE: () => import('../icons/tokens/TokenCOPE'),\nTokenFREN: () => import('../icons/tokens/TokenFREN'),\nTokenPORTAL: () => import('../icons/tokens/TokenPORTAL'),\nTokenJUNO: () => import('../icons/tokens/TokenJUNO'),\nTokenBAND: () => import('../icons/tokens/TokenBAND'),\nTokenHDX: () => import('../icons/tokens/TokenHDX'),\nTokenMBOX: () => import('../icons/tokens/TokenMBOX'),\nTokenCTI: () => import('../icons/tokens/TokenCTI'),\nTokenGLEEC: () => import('../icons/tokens/TokenGLEEC'),\nTokenHGT: () => import('../icons/tokens/TokenHGT'),\nTokenOBI: () => import('../icons/tokens/TokenOBI'),\nTokenBOLT: () => import('../icons/tokens/TokenBOLT'),\nTokenBONK: () => import('../icons/tokens/TokenBONK'),\nTokenHORD: () => import('../icons/tokens/TokenHORD'),\nTokenSOUL: () => import('../icons/tokens/TokenSOUL'),\nTokenHOGE: () => import('../icons/tokens/TokenHOGE'),\nTokenAVT: () => import('../icons/tokens/TokenAVT'),\nTokenTON: () => import('../icons/tokens/TokenTON'),\nTokenMARSH: () => import('../icons/tokens/TokenMARSH'),\nTokenCRPT: () => import('../icons/tokens/TokenCRPT'),\nTokenFRM: () => import('../icons/tokens/TokenFRM'),\nToken3ULL: () => import('../icons/tokens/Token3ULL'),\nTokenDF: () => import('../icons/tokens/TokenDF'),\nTokenX2Y2: () => import('../icons/tokens/TokenX2Y2'),\nTokenDERO: () => import('../icons/tokens/TokenDERO'),\nTokenSANI: () => import('../icons/tokens/TokenSANI'),\nTokenSIPHER: () => import('../icons/tokens/TokenSIPHER'),\nTokenAXEL: () => import('../icons/tokens/TokenAXEL'),\nTokenCNG: () => import('../icons/tokens/TokenCNG'),\nTokenOZO: () => import('../icons/tokens/TokenOZO'),\nTokenCOC: () => import('../icons/tokens/TokenCOC'),\nTokenMAP: () => import('../icons/tokens/TokenMAP'),\nTokenCAH: () => import('../icons/tokens/TokenCAH'),\nTokenSEILOR: () => import('../icons/tokens/TokenSEILOR'),\nTokenBRUSH: () => import('../icons/tokens/TokenBRUSH'),\nTokenSFP: () => import('../icons/tokens/TokenSFP'),\nTokenEDEN: () => import('../icons/tokens/TokenEDEN'),\nTokenSAFE: () => import('../icons/tokens/TokenSAFE'),\nTokenDBR: () => import('../icons/tokens/TokenDBR'),\nTokenDAI: () => import('../icons/tokens/TokenDAI'),\nTokenCGO: () => import('../icons/tokens/TokenCGO'),\nTokenCDT: () => import('../icons/tokens/TokenCDT'),\nTokenWAXP: () => import('../icons/tokens/TokenWAXP'),\nTokenSHOPX: () => import('../icons/tokens/TokenSHOPX'),\nTokenHTR: () => import('../icons/tokens/TokenHTR'),\nTokenORT: () => import('../icons/tokens/TokenORT'),\nTokenSTRX: () => import('../icons/tokens/TokenSTRX'),\nTokenCEUR: () => import('../icons/tokens/TokenCEUR'),\nTokenALEPH: () => import('../icons/tokens/TokenALEPH'),\nTokenNULS: () => import('../icons/tokens/TokenNULS'),\nTokenAEGIS: () => import('../icons/tokens/TokenAEGIS'),\nTokenFUN: () => import('../icons/tokens/TokenFUN'),\nTokenZEE: () => import('../icons/tokens/TokenZEE'),\nTokenVRA: () => import('../icons/tokens/TokenVRA'),\nTokenALPHA: () => import('../icons/tokens/TokenALPHA'),\nTokenHZN: () => import('../icons/tokens/TokenHZN'),\nTokenC3: () => import('../icons/tokens/TokenC3'),\nTokenFCT: () => import('../icons/tokens/TokenFCT'),\nTokenPAAL: () => import('../icons/tokens/TokenPAAL'),\nTokenADA: () => import('../icons/tokens/TokenADA'),\nTokenPOOH: () => import('../icons/tokens/TokenPOOH'),\nTokenPOLS: () => import('../icons/tokens/TokenPOLS'),\nTokenQOM: () => import('../icons/tokens/TokenQOM'),\nTokenATOR: () => import('../icons/tokens/TokenATOR'),\nTokenXDC: () => import('../icons/tokens/TokenXDC'),\nTokenTRC: () => import('../icons/tokens/TokenTRC'),\nTokenXEP: () => import('../icons/tokens/TokenXEP'),\nTokenGMPD: () => import('../icons/tokens/TokenGMPD'),\nTokenBZR: () => import('../icons/tokens/TokenBZR'),\nTokenROME: () => import('../icons/tokens/TokenROME'),\nTokenGET: () => import('../icons/tokens/TokenGET'),\nTokenPKR: () => import('../icons/tokens/TokenPKR'),\nTokenCROID: () => import('../icons/tokens/TokenCROID'),\nTokenRSS3: () => import('../icons/tokens/TokenRSS3'),\nTokenSKEB: () => import('../icons/tokens/TokenSKEB'),\nTokenBAO: () => import('../icons/tokens/TokenBAO'),\nTokenBAX: () => import('../icons/tokens/TokenBAX'),\nTokenMONA: () => import('../icons/tokens/TokenMONA'),\nTokenKEY: () => import('../icons/tokens/TokenKEY'),\nTokenGMEE: () => import('../icons/tokens/TokenGMEE'),\nTokenUMA: () => import('../icons/tokens/TokenUMA'),\nTokenFEVR: () => import('../icons/tokens/TokenFEVR'),\nTokenAGLA: () => import('../icons/tokens/TokenAGLA'),\nTokenAURY: () => import('../icons/tokens/TokenAURY'),\nTokenICHI: () => import('../icons/tokens/TokenICHI'),\nTokenPRQ: () => import('../icons/tokens/TokenPRQ'),\nTokenRIN: () => import('../icons/tokens/TokenRIN'),\nTokenCSPR: () => import('../icons/tokens/TokenCSPR'),\nTokenSBTC: () => import('../icons/tokens/TokenSBTC'),\nTokenTIDAL: () => import('../icons/tokens/TokenTIDAL'),\nTokenDOBO: () => import('../icons/tokens/TokenDOBO'),\nTokenKEX: () => import('../icons/tokens/TokenKEX'),\nTokenEFL: () => import('../icons/tokens/TokenEFL'),\nTokenWXT: () => import('../icons/tokens/TokenWXT'),\nTokenUSDD: () => import('../icons/tokens/TokenUSDD'),\nTokenNCDT: () => import('../icons/tokens/TokenNCDT'),\nTokenBAN: () => import('../icons/tokens/TokenBAN'),\nTokenCONE: () => import('../icons/tokens/TokenCONE'),\nTokenBRRR: () => import('../icons/tokens/TokenBRRR'),\nTokenLIF3: () => import('../icons/tokens/TokenLIF3'),\nTokenSLAM: () => import('../icons/tokens/TokenSLAM'),\nTokenCHEEMS: () => import('../icons/tokens/TokenCHEEMS'),\nTokenGIV: () => import('../icons/tokens/TokenGIV'),\nTokenRPL: () => import('../icons/tokens/TokenRPL'),\nTokenPEX: () => import('../icons/tokens/TokenPEX'),\nTokenNADA: () => import('../icons/tokens/TokenNADA'),\nTokenNLS: () => import('../icons/tokens/TokenNLS'),\nTokenXCFX: () => import('../icons/tokens/TokenXCFX'),\nTokenTEER: () => import('../icons/tokens/TokenTEER'),\nTokenBLUR: () => import('../icons/tokens/TokenBLUR'),\nTokenSOLVE: () => import('../icons/tokens/TokenSOLVE'),\nTokenKUNCI: () => import('../icons/tokens/TokenKUNCI'),\nTokenKP3R: () => import('../icons/tokens/TokenKP3R'),\nTokenXPRT: () => import('../icons/tokens/TokenXPRT'),\nTokenTRB: () => import('../icons/tokens/TokenTRB'),\nTokenAHT: () => import('../icons/tokens/TokenAHT'),\nTokenPUMLX: () => import('../icons/tokens/TokenPUMLX'),\nTokenXY: () => import('../icons/tokens/TokenXY'),\nTokenBTSG: () => import('../icons/tokens/TokenBTSG'),\nTokenFLM: () => import('../icons/tokens/TokenFLM'),\nTokenXDB: () => import('../icons/tokens/TokenXDB'),\nTokenTRU: () => import('../icons/tokens/TokenTRU'),\nTokenCRO: () => import('../icons/tokens/TokenCRO'),\nTokenCQT: () => import('../icons/tokens/TokenCQT'),\nTokenHON: () => import('../icons/tokens/TokenHON'),\nTokenMOONED: () => import('../icons/tokens/TokenMOONED'),\nTokenVR: () => import('../icons/tokens/TokenVR'),\nTokenXHV: () => import('../icons/tokens/TokenXHV'),\nTokenSTEP: () => import('../icons/tokens/TokenSTEP'),\nTokenODDZ: () => import('../icons/tokens/TokenODDZ'),\nTokenSXP: () => import('../icons/tokens/TokenSXP'),\nTokenAPE: () => import('../icons/tokens/TokenAPE'),\nTokenSCRT: () => import('../icons/tokens/TokenSCRT'),\nTokenMIMATIC: () => import('../icons/tokens/TokenMIMATIC'),\nTokenCREDI: () => import('../icons/tokens/TokenCREDI'),\nTokenMNGO: () => import('../icons/tokens/TokenMNGO'),\nTokenDOT: () => import('../icons/tokens/TokenDOT'),\nTokenVRSW: () => import('../icons/tokens/TokenVRSW'),\nTokenBCDT: () => import('../icons/tokens/TokenBCDT'),\nTokenOP: () => import('../icons/tokens/TokenOP'),\nTokenFOOM: () => import('../icons/tokens/TokenFOOM'),\nTokenORB: () => import('../icons/tokens/TokenORB'),\nTokenTGT: () => import('../icons/tokens/TokenTGT'),\nTokenZIG: () => import('../icons/tokens/TokenZIG'),\nTokenBLANK: () => import('../icons/tokens/TokenBLANK'),\nTokenHOLD: () => import('../icons/tokens/TokenHOLD'),\nTokenCHAIN: () => import('../icons/tokens/TokenCHAIN'),\nTokenMX: () => import('../icons/tokens/TokenMX'),\nTokenCGL: () => import('../icons/tokens/TokenCGL'),\nTokenFYN: () => import('../icons/tokens/TokenFYN'),\nTokenJOY: () => import('../icons/tokens/TokenJOY'),\nTokenAVAX: () => import('../icons/tokens/TokenAVAX'),\nTokenCWEB: () => import('../icons/tokens/TokenCWEB'),\nTokenO3: () => import('../icons/tokens/TokenO3'),\nTokenBORA: () => import('../icons/tokens/TokenBORA'),\nTokenDCB: () => import('../icons/tokens/TokenDCB'),\nTokenMM: () => import('../icons/tokens/TokenMM'),\nTokenXPR: () => import('../icons/tokens/TokenXPR'),\nTokenMIND: () => import('../icons/tokens/TokenMIND'),\nTokenSOFI: () => import('../icons/tokens/TokenSOFI'),\nTokenMUSIC: () => import('../icons/tokens/TokenMUSIC'),\nTokenSOL: () => import('../icons/tokens/TokenSOL'),\nTokenEUROE: () => import('../icons/tokens/TokenEUROE'),\nTokenAQT: () => import('../icons/tokens/TokenAQT'),\nTokenMDX: () => import('../icons/tokens/TokenMDX'),\nTokenIRIS: () => import('../icons/tokens/TokenIRIS'),\nTokenOMMI: () => import('../icons/tokens/TokenOMMI'),\nTokenZRX: () => import('../icons/tokens/TokenZRX'),\nTokenOKB: () => import('../icons/tokens/TokenOKB'),\nTokenEQUAL: () => import('../icons/tokens/TokenEQUAL'),\nTokenSPORE: () => import('../icons/tokens/TokenSPORE'),\nTokenBTSE: () => import('../icons/tokens/TokenBTSE'),\nTokenMEME: () => import('../icons/tokens/TokenMEME'),\nTokenPLANETS: () => import('../icons/tokens/TokenPLANETS'),\nTokenAIR: () => import('../icons/tokens/TokenAIR'),\nTokenSUB: () => import('../icons/tokens/TokenSUB'),\nTokenFAKEAI: () => import('../icons/tokens/TokenFAKEAI'),\nTokenBURGER: () => import('../icons/tokens/TokenBURGER'),\nTokenWALV: () => import('../icons/tokens/TokenWALV'),\nTokenFLX: () => import('../icons/tokens/TokenFLX'),\nTokenNFAI: () => import('../icons/tokens/TokenNFAI'),\nTokenCOTI: () => import('../icons/tokens/TokenCOTI'),\nTokenFNSA: () => import('../icons/tokens/TokenFNSA'),\nTokenSHIDO: () => import('../icons/tokens/TokenSHIDO'),\nTokenWNDR: () => import('../icons/tokens/TokenWNDR'),\nTokenBTM: () => import('../icons/tokens/TokenBTM'),\nTokenXCHF: () => import('../icons/tokens/TokenXCHF'),\nTokenNAV: () => import('../icons/tokens/TokenNAV'),\nTokenALGO: () => import('../icons/tokens/TokenALGO'),\nTokenNODL: () => import('../icons/tokens/TokenNODL'),\nTokenPKF: () => import('../icons/tokens/TokenPKF'),\nTokenONIT: () => import('../icons/tokens/TokenONIT'),\nTokenPIVX: () => import('../icons/tokens/TokenPIVX'),\nTokenBIST: () => import('../icons/tokens/TokenBIST'),\nTokenBAL: () => import('../icons/tokens/TokenBAL'),\nTokenBCD: () => import('../icons/tokens/TokenBCD'),\nTokenKIN: () => import('../icons/tokens/TokenKIN'),\nTokenPEOPLE: () => import('../icons/tokens/TokenPEOPLE'),\nTokenLPOOL: () => import('../icons/tokens/TokenLPOOL'),\nTokenPROM: () => import('../icons/tokens/TokenPROM'),\nTokenIDLE: () => import('../icons/tokens/TokenIDLE'),\nTokenEXTRA: () => import('../icons/tokens/TokenEXTRA'),\nTokenHANDY: () => import('../icons/tokens/TokenHANDY'),\nTokenBNT: () => import('../icons/tokens/TokenBNT'),\nTokenWWY: () => import('../icons/tokens/TokenWWY'),\nTokenLAT: () => import('../icons/tokens/TokenLAT'),\nTokenCHEQ: () => import('../icons/tokens/TokenCHEQ'),\nTokenHUSD: () => import('../icons/tokens/TokenHUSD'),\nTokenKLAY: () => import('../icons/tokens/TokenKLAY'),\nTokenBMX: () => import('../icons/tokens/TokenBMX'),\nTokenNXT: () => import('../icons/tokens/TokenNXT'),\nTokenUMB: () => import('../icons/tokens/TokenUMB'),\nTokenHONEY: () => import('../icons/tokens/TokenHONEY'),\nTokenBNB: () => import('../icons/tokens/TokenBNB'),\nTokenPRIME: () => import('../icons/tokens/TokenPRIME'),\nTokenPRE: () => import('../icons/tokens/TokenPRE'),\nTokenUNO: () => import('../icons/tokens/TokenUNO'),\nTokenKEKE: () => import('../icons/tokens/TokenKEKE'),\nTokenRJV: () => import('../icons/tokens/TokenRJV'),\nTokenEDG: () => import('../icons/tokens/TokenEDG'),\nTokenBADGER: () => import('../icons/tokens/TokenBADGER'),\nTokenCUDOS: () => import('../icons/tokens/TokenCUDOS'),\nTokenEFX: () => import('../icons/tokens/TokenEFX'),\nTokenIST: () => import('../icons/tokens/TokenIST'),\nTokenTYRANT: () => import('../icons/tokens/TokenTYRANT'),\nTokenBTRFLY: () => import('../icons/tokens/TokenBTRFLY'),\nTokenREN: () => import('../icons/tokens/TokenREN'),\nTokenLEVER: () => import('../icons/tokens/TokenLEVER'),\nTokenFLEX: () => import('../icons/tokens/TokenFLEX'),\nTokenRSC: () => import('../icons/tokens/TokenRSC'),\nTokenBCOIN: () => import('../icons/tokens/TokenBCOIN'),\nTokenCATHEON: () => import('../icons/tokens/TokenCATHEON'),\nTokenYAM: () => import('../icons/tokens/TokenYAM'),\nTokenVTHO: () => import('../icons/tokens/TokenVTHO'),\nTokenNEURONI: () => import('../icons/tokens/TokenNEURONI'),\nTokenMOVE: () => import('../icons/tokens/TokenMOVE'),\nTokenBXX: () => import('../icons/tokens/TokenBXX'),\nTokenLTC: () => import('../icons/tokens/TokenLTC'),\nTokenMOVR: () => import('../icons/tokens/TokenMOVR'),\nTokenIMPT: () => import('../icons/tokens/TokenIMPT'),\nTokenUMAMI: () => import('../icons/tokens/TokenUMAMI'),\nTokenQLC: () => import('../icons/tokens/TokenQLC'),\nTokenSTG: () => import('../icons/tokens/TokenSTG'),\nTokenASIA: () => import('../icons/tokens/TokenASIA'),\nTokenAIS: () => import('../icons/tokens/TokenAIS'),\nTokenUNFI: () => import('../icons/tokens/TokenUNFI'),\nTokenCELR: () => import('../icons/tokens/TokenCELR'),\nTokenOKT: () => import('../icons/tokens/TokenOKT'),\nTokenBZRX: () => import('../icons/tokens/TokenBZRX'),\nTokenCETUS: () => import('../icons/tokens/TokenCETUS'),\nTokenQUBE: () => import('../icons/tokens/TokenQUBE'),\nTokenSSWP: () => import('../icons/tokens/TokenSSWP'),\nTokenKINGSHIB: () => import('../icons/tokens/TokenKINGSHIB'),\nTokenXIDO: () => import('../icons/tokens/TokenXIDO'),\nTokenMETF: () => import('../icons/tokens/TokenMETF'),\nTokenMPLX: () => import('../icons/tokens/TokenMPLX'),\nTokenVSP: () => import('../icons/tokens/TokenVSP'),\nTokenLAUNCH: () => import('../icons/tokens/TokenLAUNCH'),\nTokenHXD: () => import('../icons/tokens/TokenHXD'),\nTokenTAKI: () => import('../icons/tokens/TokenTAKI'),\nTokenML: () => import('../icons/tokens/TokenML'),\nTokenHOOK: () => import('../icons/tokens/TokenHOOK'),\nTokenOS: () => import('../icons/tokens/TokenOS'),\nTokenSMARTCREDIT: () => import('../icons/tokens/TokenSMARTCREDIT'),\nTokenEXRD: () => import('../icons/tokens/TokenEXRD'),\nTokenVCORE: () => import('../icons/tokens/TokenVCORE'),\nTokenHONK: () => import('../icons/tokens/TokenHONK'),\nTokenDBC: () => import('../icons/tokens/TokenDBC'),\nTokenPUSSY: () => import('../icons/tokens/TokenPUSSY'),\nTokenMIM: () => import('../icons/tokens/TokenMIM'),\nTokenTHOL: () => import('../icons/tokens/TokenTHOL'),\nTokenMKR: () => import('../icons/tokens/TokenMKR'),\nTokenMINA: () => import('../icons/tokens/TokenMINA'),\nTokenBTCMT: () => import('../icons/tokens/TokenBTCMT'),\nTokenDAO: () => import('../icons/tokens/TokenDAO'),\nTokenTEL: () => import('../icons/tokens/TokenTEL'),\nTokenWITCH: () => import('../icons/tokens/TokenWITCH'),\nTokenBMEX: () => import('../icons/tokens/TokenBMEX'),\nTokenRBIF: () => import('../icons/tokens/TokenRBIF'),\nTokenPEPES: () => import('../icons/tokens/TokenPEPES'),\nTokenSAIL: () => import('../icons/tokens/TokenSAIL'),\nTokenCNFI: () => import('../icons/tokens/TokenCNFI'),\nTokenZEC: () => import('../icons/tokens/TokenZEC'),\nTokenTKP: () => import('../icons/tokens/TokenTKP'),\nTokenOCTA: () => import('../icons/tokens/TokenOCTA'),\nTokenKZEN: () => import('../icons/tokens/TokenKZEN'),\nTokenJEWEL: () => import('../icons/tokens/TokenJEWEL'),\nTokenSLR: () => import('../icons/tokens/TokenSLR'),\nTokenEOSDT: () => import('../icons/tokens/TokenEOSDT'),\nTokenMST: () => import('../icons/tokens/TokenMST'),\nToken2DAI: () => import('../icons/tokens/Token2DAI'),\nTokenADP: () => import('../icons/tokens/TokenADP'),\nTokenGALEON: () => import('../icons/tokens/TokenGALEON'),\nTokenUW3S: () => import('../icons/tokens/TokenUW3S'),\nTokenSYS: () => import('../icons/tokens/TokenSYS'),\nTokenOMAX: () => import('../icons/tokens/TokenOMAX'),\nTokenXI: () => import('../icons/tokens/TokenXI'),\nTokenDVF: () => import('../icons/tokens/TokenDVF'),\nTokenBANANA: () => import('../icons/tokens/TokenBANANA'),\nTokenSOURCE: () => import('../icons/tokens/TokenSOURCE'),\nTokenPALM: () => import('../icons/tokens/TokenPALM'),\nTokenBHAT: () => import('../icons/tokens/TokenBHAT'),\nTokenMELD: () => import('../icons/tokens/TokenMELD'),\nTokenROOK: () => import('../icons/tokens/TokenROOK'),\nTokenCMOS: () => import('../icons/tokens/TokenCMOS'),\nTokenYOU: () => import('../icons/tokens/TokenYOU'),\nTokenSUTER: () => import('../icons/tokens/TokenSUTER'),\nTokenWINR: () => import('../icons/tokens/TokenWINR'),\nTokenEPIC: () => import('../icons/tokens/TokenEPIC'),\nTokenIGU: () => import('../icons/tokens/TokenIGU'),\nTokenEQB: () => import('../icons/tokens/TokenEQB'),\nTokenOPUL: () => import('../icons/tokens/TokenOPUL'),\nTokenWOM: () => import('../icons/tokens/TokenWOM'),\nTokenEQU: () => import('../icons/tokens/TokenEQU'),\nTokenERN: () => import('../icons/tokens/TokenERN'),\nTokenMTLX: () => import('../icons/tokens/TokenMTLX'),\nTokenPKT: () => import('../icons/tokens/TokenPKT'),\nTokenISP: () => import('../icons/tokens/TokenISP'),\nTokenUSDT: () => import('../icons/tokens/TokenUSDT'),\nTokenVSYS: () => import('../icons/tokens/TokenVSYS'),\nTokenUSDC: () => import('../icons/tokens/TokenUSDC'),\nTokenBAI: () => import('../icons/tokens/TokenBAI'),\nTokenNORD: () => import('../icons/tokens/TokenNORD'),\nTokenRDN: () => import('../icons/tokens/TokenRDN'),\nTokenEGO: () => import('../icons/tokens/TokenEGO'),\nTokenOBSR: () => import('../icons/tokens/TokenOBSR'),\nTokenGAMEFI: () => import('../icons/tokens/TokenGAMEFI'),\nTokenBOB: () => import('../icons/tokens/TokenBOB'),\nTokenTROVE: () => import('../icons/tokens/TokenTROVE'),\nTokenPLEX: () => import('../icons/tokens/TokenPLEX'),\nTokenLCX: () => import('../icons/tokens/TokenLCX'),\nTokenFUSE: () => import('../icons/tokens/TokenFUSE'),\nTokenMETIS: () => import('../icons/tokens/TokenMETIS'),\nTokenZERO: () => import('../icons/tokens/TokenZERO'),\nTokenBUMP: () => import('../icons/tokens/TokenBUMP'),\nTokenBLX: () => import('../icons/tokens/TokenBLX'),\nTokenEDU: () => import('../icons/tokens/TokenEDU'),\nTokenRGT: () => import('../icons/tokens/TokenRGT'),\nTokenSAUCE: () => import('../icons/tokens/TokenSAUCE'),\nToken1INCH: () => import('../icons/tokens/Token1INCH'),\nTokenKASTA: () => import('../icons/tokens/TokenKASTA'),\nTokenGZIL: () => import('../icons/tokens/TokenGZIL'),\nTokenRISITA: () => import('../icons/tokens/TokenRISITA'),\nTokenPOOLX: () => import('../icons/tokens/TokenPOOLX'),\nTokenQUARTZ: () => import('../icons/tokens/TokenQUARTZ'),\nTokenGODS: () => import('../icons/tokens/TokenGODS'),\nTokenOPTI: () => import('../icons/tokens/TokenOPTI'),\nTokenLZM: () => import('../icons/tokens/TokenLZM'),\nTokenPRTC: () => import('../icons/tokens/TokenPRTC'),\nTokenBITCI: () => import('../icons/tokens/TokenBITCI'),\nTokenSTIMA: () => import('../icons/tokens/TokenSTIMA'),\nTokenSLND: () => import('../icons/tokens/TokenSLND'),\nTokenBORING: () => import('../icons/tokens/TokenBORING'),\nTokenDTX: () => import('../icons/tokens/TokenDTX'),\nTokenPROTEO: () => import('../icons/tokens/TokenPROTEO'),\nTokenVC: () => import('../icons/tokens/TokenVC'),\nTokenFOUR: () => import('../icons/tokens/TokenFOUR'),\nTokenTOSHI: () => import('../icons/tokens/TokenTOSHI'),\nTokenDXL: () => import('../icons/tokens/TokenDXL'),\nTokenPOLC: () => import('../icons/tokens/TokenPOLC'),\nTokenHERMES: () => import('../icons/tokens/TokenHERMES'),\nTokenVEX: () => import('../icons/tokens/TokenVEX'),\nTokenPORTX: () => import('../icons/tokens/TokenPORTX'),\nTokenWOOF: () => import('../icons/tokens/TokenWOOF'),\nTokenARK: () => import('../icons/tokens/TokenARK'),\nTokenTIN: () => import('../icons/tokens/TokenTIN'),\nTokenDOR: () => import('../icons/tokens/TokenDOR'),\nTokenFTM: () => import('../icons/tokens/TokenFTM'),\nTokenAPT: () => import('../icons/tokens/TokenAPT'),\nTokenMEX: () => import('../icons/tokens/TokenMEX'),\nTokenMGP: () => import('../icons/tokens/TokenMGP'),\nTokenMNDE: () => import('../icons/tokens/TokenMNDE'),\nTokenONION: () => import('../icons/tokens/TokenONION'),\nTokenMFT: () => import('../icons/tokens/TokenMFT'),\nTokenBSCPAD: () => import('../icons/tokens/TokenBSCPAD'),\nTokenPIXEL: () => import('../icons/tokens/TokenPIXEL'),\nTokenCNHT: () => import('../icons/tokens/TokenCNHT'),\nTokenLM: () => import('../icons/tokens/TokenLM'),\nTokenHVH: () => import('../icons/tokens/TokenHVH'),\nTokenMIN: () => import('../icons/tokens/TokenMIN'),\nTokenNEER: () => import('../icons/tokens/TokenNEER'),\nTokenMINU: () => import('../icons/tokens/TokenMINU'),\nTokenBS: () => import('../icons/tokens/TokenBS'),\nTokenDOG: () => import('../icons/tokens/TokenDOG'),\nTokenGLINK: () => import('../icons/tokens/TokenGLINK'),\nTokenCRYSTAL: () => import('../icons/tokens/TokenCRYSTAL'),\nTokenMETA: () => import('../icons/tokens/TokenMETA'),\nTokenCHR: () => import('../icons/tokens/TokenCHR'),\nTokenASM: () => import('../icons/tokens/TokenASM'),\nTokenETHW: () => import('../icons/tokens/TokenETHW'),\nTokenSOCKS: () => import('../icons/tokens/TokenSOCKS'),\nTokenDNT: () => import('../icons/tokens/TokenDNT'),\nTokenMPL: () => import('../icons/tokens/TokenMPL'),\nTokenXKI: () => import('../icons/tokens/TokenXKI'),\nTokenVV: () => import('../icons/tokens/TokenVV'),\nTokenTRIBE: () => import('../icons/tokens/TokenTRIBE'),\nTokenMRS: () => import('../icons/tokens/TokenMRS'),\nTokenEVER: () => import('../icons/tokens/TokenEVER'),\nTokenSTFX: () => import('../icons/tokens/TokenSTFX'),\nTokenMYST: () => import('../icons/tokens/TokenMYST'),\nTokenPOLA: () => import('../icons/tokens/TokenPOLA'),\nTokenADS: () => import('../icons/tokens/TokenADS'),\nTokenDENT: () => import('../icons/tokens/TokenDENT'),\nTokenSHIBDOGE: () => import('../icons/tokens/TokenSHIBDOGE'),\nTokenODIN: () => import('../icons/tokens/TokenODIN'),\nTokenSWFTC: () => import('../icons/tokens/TokenSWFTC'),\nTokenAIT: () => import('../icons/tokens/TokenAIT'),\nTokenSQUIDGROW: () => import('../icons/tokens/TokenSQUIDGROW'),\nTokenFOR: () => import('../icons/tokens/TokenFOR'),\nTokenREVV: () => import('../icons/tokens/TokenREVV'),\nTokenNABOX: () => import('../icons/tokens/TokenNABOX'),\nTokenORBS: () => import('../icons/tokens/TokenORBS'),\nTokenLVL: () => import('../icons/tokens/TokenLVL'),\nTokenSONNE: () => import('../icons/tokens/TokenSONNE'),\nTokenNAP: () => import('../icons/tokens/TokenNAP'),\nTokenSWTH: () => import('../icons/tokens/TokenSWTH'),\nTokenPOLYPAD: () => import('../icons/tokens/TokenPOLYPAD'),\nTokenALPACA: () => import('../icons/tokens/TokenALPACA'),\nTokenBLOX: () => import('../icons/tokens/TokenBLOX'),\nTokenCONV: () => import('../icons/tokens/TokenCONV'),\nTokenLON: () => import('../icons/tokens/TokenLON'),\nTokenBCB: () => import('../icons/tokens/TokenBCB'),\nTokenMETFI: () => import('../icons/tokens/TokenMETFI'),\nTokenTHETA: () => import('../icons/tokens/TokenTHETA'),\nTokenWLKN: () => import('../icons/tokens/TokenWLKN'),\nTokenWAMPL: () => import('../icons/tokens/TokenWAMPL'),\nTokenGHOST: () => import('../icons/tokens/TokenGHOST'),\nTokenBOA: () => import('../icons/tokens/TokenBOA'),\nTokenBLZ: () => import('../icons/tokens/TokenBLZ'),\nTokenWELT: () => import('../icons/tokens/TokenWELT'),\nTokenKARATE: () => import('../icons/tokens/TokenKARATE'),\nTokenPSP: () => import('../icons/tokens/TokenPSP'),\nTokenUNI: () => import('../icons/tokens/TokenUNI'),\nTokenAGLD: () => import('../icons/tokens/TokenAGLD'),\nTokenNFTX: () => import('../icons/tokens/TokenNFTX'),\nTokenVSTA: () => import('../icons/tokens/TokenVSTA'),\nTokenMTVT: () => import('../icons/tokens/TokenMTVT'),\nTokenDEGEN: () => import('../icons/tokens/TokenDEGEN'),\nTokenDMTR: () => import('../icons/tokens/TokenDMTR'),\nTokenBCT: () => import('../icons/tokens/TokenBCT'),\nTokenAIMX: () => import('../icons/tokens/TokenAIMX'),\nTokenPENDLE: () => import('../icons/tokens/TokenPENDLE'),\nTokenEFI: () => import('../icons/tokens/TokenEFI'),\nTokenMOOV: () => import('../icons/tokens/TokenMOOV'),\nTokenUSDV: () => import('../icons/tokens/TokenUSDV'),\nTokenDIVER: () => import('../icons/tokens/TokenDIVER'),\nTokenDOLA: () => import('../icons/tokens/TokenDOLA'),\nTokenRFD: () => import('../icons/tokens/TokenRFD'),\nTokenDOME: () => import('../icons/tokens/TokenDOME'),\nTokenGOFX: () => import('../icons/tokens/TokenGOFX'),\nTokenWOO: () => import('../icons/tokens/TokenWOO'),\nTokenWNK: () => import('../icons/tokens/TokenWNK'),\nTokenYCC: () => import('../icons/tokens/TokenYCC'),\nTokenRSR: () => import('../icons/tokens/TokenRSR'),\nTokenYAK: () => import('../icons/tokens/TokenYAK'),\nTokenBIDZ: () => import('../icons/tokens/TokenBIDZ'),\nTokenBUY: () => import('../icons/tokens/TokenBUY'),\nTokenHEGIC: () => import('../icons/tokens/TokenHEGIC'),\nTokenQUINT: () => import('../icons/tokens/TokenQUINT'),\nTokenLUA: () => import('../icons/tokens/TokenLUA'),\nTokenWAS: () => import('../icons/tokens/TokenWAS'),\nTokenWING: () => import('../icons/tokens/TokenWING'),\nTokenORAI: () => import('../icons/tokens/TokenORAI'),\nTokenNMR: () => import('../icons/tokens/TokenNMR'),\nTokenKWAI: () => import('../icons/tokens/TokenKWAI'),\nTokenNOM: () => import('../icons/tokens/TokenNOM'),\nTokenYFII: () => import('../icons/tokens/TokenYFII'),\nTokenRETH: () => import('../icons/tokens/TokenRETH'),\nTokenXEC: () => import('../icons/tokens/TokenXEC'),\nTokenXDG: () => import('../icons/tokens/TokenXDG'),\nTokenHOSHI: () => import('../icons/tokens/TokenHOSHI'),\nTokenXET: () => import('../icons/tokens/TokenXET'),\nTokenVIX: () => import('../icons/tokens/TokenVIX'),\nTokenDIVI: () => import('../icons/tokens/TokenDIVI'),\nTokenLOKA: () => import('../icons/tokens/TokenLOKA'),\nTokenTDROP: () => import('../icons/tokens/TokenTDROP'),\nTokenAGI: () => import('../icons/tokens/TokenAGI'),\nTokenCIRUS: () => import('../icons/tokens/TokenCIRUS'),\nTokenJUP: () => import('../icons/tokens/TokenJUP'),\nTokenAPW: () => import('../icons/tokens/TokenAPW'),\nTokenSMT: () => import('../icons/tokens/TokenSMT'),\nTokenSLP: () => import('../icons/tokens/TokenSLP'),\nTokenFTN: () => import('../icons/tokens/TokenFTN'),\nTokenSTPT: () => import('../icons/tokens/TokenSTPT'),\nTokenSNX: () => import('../icons/tokens/TokenSNX'),\nTokenFWB: () => import('../icons/tokens/TokenFWB'),\nTokenAI: () => import('../icons/tokens/TokenAI'),\nTokenSLG: () => import('../icons/tokens/TokenSLG'),\nTokenSTRK: () => import('../icons/tokens/TokenSTRK'),\nTokenDUST: () => import('../icons/tokens/TokenDUST'),\nTokenMIX: () => import('../icons/tokens/TokenMIX'),\nTokenDCR: () => import('../icons/tokens/TokenDCR'),\nTokenRITE: () => import('../icons/tokens/TokenRITE'),\nTokenWLITI: () => import('../icons/tokens/TokenWLITI'),\nTokenMIMO: () => import('../icons/tokens/TokenMIMO'),\nTokenBOSON: () => import('../icons/tokens/TokenBOSON'),\nTokenBBANK: () => import('../icons/tokens/TokenBBANK'),\nTokenFOLD: () => import('../icons/tokens/TokenFOLD'),\nTokenPMON: () => import('../icons/tokens/TokenPMON'),\nTokenIBAT: () => import('../icons/tokens/TokenIBAT'),\nTokenCFX: () => import('../icons/tokens/TokenCFX'),\nTokenOX: () => import('../icons/tokens/TokenOX'),\nTokenSAM: () => import('../icons/tokens/TokenSAM'),\nTokenTET: () => import('../icons/tokens/TokenTET'),\nTokenXPX: () => import('../icons/tokens/TokenXPX'),\nTokenXRP: () => import('../icons/tokens/TokenXRP'),\nTokenKOMPETE: () => import('../icons/tokens/TokenKOMPETE'),\nTokenBLOCK: () => import('../icons/tokens/TokenBLOCK'),\nTokenPAXG: () => import('../icons/tokens/TokenPAXG'),\nTokenZKP: () => import('../icons/tokens/TokenZKP'),\nTokenBSCS: () => import('../icons/tokens/TokenBSCS'),\nTokenAPM: () => import('../icons/tokens/TokenAPM'),\nTokenDMT: () => import('../icons/tokens/TokenDMT'),\nTokenDMC: () => import('../icons/tokens/TokenDMC'),\nTokenSIGNA: () => import('../icons/tokens/TokenSIGNA'),\nTokenFTC: () => import('../icons/tokens/TokenFTC'),\nTokenDACXI: () => import('../icons/tokens/TokenDACXI'),\nTokenDVI: () => import('../icons/tokens/TokenDVI'),\nTokenFLR: () => import('../icons/tokens/TokenFLR'),\nTokenLAYER: () => import('../icons/tokens/TokenLAYER'),\nTokenVIB: () => import('../icons/tokens/TokenVIB'),\nTokenUBSN: () => import('../icons/tokens/TokenUBSN'),\nTokenSEED: () => import('../icons/tokens/TokenSEED'),\nTokenDZOO: () => import('../icons/tokens/TokenDZOO'),\nTokenNOIA: () => import('../icons/tokens/TokenNOIA'),\nTokenPDT: () => import('../icons/tokens/TokenPDT'),\nTokenZKID: () => import('../icons/tokens/TokenZKID'),\nTokenPPAY: () => import('../icons/tokens/TokenPPAY'),\nTokenFEAR: () => import('../icons/tokens/TokenFEAR'),\nTokenPGX: () => import('../icons/tokens/TokenPGX'),\nTokenLYX: () => import('../icons/tokens/TokenLYX'),\nTokenQASH: () => import('../icons/tokens/TokenQASH'),\nTokenIDV: () => import('../icons/tokens/TokenIDV'),\nTokenBTG: () => import('../icons/tokens/TokenBTG'),\nTokenCANTO: () => import('../icons/tokens/TokenCANTO'),\nTokenCSIX: () => import('../icons/tokens/TokenCSIX'),\nTokenRIBBIT: () => import('../icons/tokens/TokenRIBBIT'),\nTokenGZONE: () => import('../icons/tokens/TokenGZONE'),\nTokenNCT: () => import('../icons/tokens/TokenNCT'),\nTokenBCN: () => import('../icons/tokens/TokenBCN'),\nTokenCOLLAB: () => import('../icons/tokens/TokenCOLLAB'),\nTokenROOBEE: () => import('../icons/tokens/TokenROOBEE'),\nTokenGRT: () => import('../icons/tokens/TokenGRT'),\nTokenBPRO: () => import('../icons/tokens/TokenBPRO'),\nTokenLBR: () => import('../icons/tokens/TokenLBR'),\nTokenNYM: () => import('../icons/tokens/TokenNYM'),\nTokenLAI: () => import('../icons/tokens/TokenLAI'),\nTokenGRC: () => import('../icons/tokens/TokenGRC'),\nTokenRIF: () => import('../icons/tokens/TokenRIF'),\nTokenPRY: () => import('../icons/tokens/TokenPRY'),\nTokenNFTB: () => import('../icons/tokens/TokenNFTB'),\nTokenOETH: () => import('../icons/tokens/TokenOETH'),\nTokenSENATE: () => import('../icons/tokens/TokenSENATE'),\nTokenUND: () => import('../icons/tokens/TokenUND'),\nTokenSFUND: () => import('../icons/tokens/TokenSFUND'),\nTokenPRX: () => import('../icons/tokens/TokenPRX'),\nTokenBULL: () => import('../icons/tokens/TokenBULL'),\nTokenLUNA: () => import('../icons/tokens/TokenLUNA'),\nTokenTBTC: () => import('../icons/tokens/TokenTBTC'),\nTokenGARI: () => import('../icons/tokens/TokenGARI'),\nTokenADAPAD: () => import('../icons/tokens/TokenADAPAD'),\nTokenTOWER: () => import('../icons/tokens/TokenTOWER'),\nTokenTRAXX: () => import('../icons/tokens/TokenTRAXX'),\nTokenPRO: () => import('../icons/tokens/TokenPRO'),\nTokenANKR: () => import('../icons/tokens/TokenANKR'),\nTokenNVT: () => import('../icons/tokens/TokenNVT'),\nTokenDOMI: () => import('../icons/tokens/TokenDOMI'),\nTokenLOC: () => import('../icons/tokens/TokenLOC'),\nTokenGORILLA: () => import('../icons/tokens/TokenGORILLA'),\nTokenBEETS: () => import('../icons/tokens/TokenBEETS'),\nTokenPHA: () => import('../icons/tokens/TokenPHA'),\nTokenWOJAK: () => import('../icons/tokens/TokenWOJAK'),\nTokenMATH: () => import('../icons/tokens/TokenMATH'),\nTokenBIFI: () => import('../icons/tokens/TokenBIFI'),\nTokenSLCL: () => import('../icons/tokens/TokenSLCL'),\nTokenFUTURE: () => import('../icons/tokens/TokenFUTURE'),\nTokenUTK: () => import('../icons/tokens/TokenUTK'),\nTokenCBETH: () => import('../icons/tokens/TokenCBETH'),\nTokenBZZ: () => import('../icons/tokens/TokenBZZ'),\nTokenPINU: () => import('../icons/tokens/TokenPINU'),\nTokenSWISE: () => import('../icons/tokens/TokenSWISE'),\nTokenHIVE: () => import('../icons/tokens/TokenHIVE'),\nTokenGHNY: () => import('../icons/tokens/TokenGHNY'),\nTokenSAFEMARS: () => import('../icons/tokens/TokenSAFEMARS'),\nTokenARCH: () => import('../icons/tokens/TokenARCH'),\nTokenURUS: () => import('../icons/tokens/TokenURUS'),\nTokenTARA: () => import('../icons/tokens/TokenTARA'),\nTokenXFT: () => import('../icons/tokens/TokenXFT'),\nTokenATOM: () => import('../icons/tokens/TokenATOM'),\nTokenAIN: () => import('../icons/tokens/TokenAIN'),\nTokenFLS: () => import('../icons/tokens/TokenFLS'),\nTokenBANANO: () => import('../icons/tokens/TokenBANANO'),\nTokenSUI: () => import('../icons/tokens/TokenSUI'),\nTokenCELO: () => import('../icons/tokens/TokenCELO'),\nTokenHNT: () => import('../icons/tokens/TokenHNT'),\nTokenVEGA: () => import('../icons/tokens/TokenVEGA'),\nTokenHOP: () => import('../icons/tokens/TokenHOP'),\nTokenTORN: () => import('../icons/tokens/TokenTORN'),\nTokenPOND: () => import('../icons/tokens/TokenPOND'),\nTokenSTOSMO: () => import('../icons/tokens/TokenSTOSMO'),\nTokenMNST: () => import('../icons/tokens/TokenMNST'),\nTokenHMX: () => import('../icons/tokens/TokenHMX'),\nTokenRING: () => import('../icons/tokens/TokenRING'),\nTokenDYP: () => import('../icons/tokens/TokenDYP'),\nTokenTRIAS: () => import('../icons/tokens/TokenTRIAS'),\nTokenAR: () => import('../icons/tokens/TokenAR'),\nTokenSTRP: () => import('../icons/tokens/TokenSTRP'),\nTokenTIA: () => import('../icons/tokens/TokenTIA'),\nTokenTHE: () => import('../icons/tokens/TokenTHE'),\nTokenSNC: () => import('../icons/tokens/TokenSNC'),\nTokenAQTIS: () => import('../icons/tokens/TokenAQTIS'),\nTokenAE: () => import('../icons/tokens/TokenAE'),\nTokenETHM: () => import('../icons/tokens/TokenETHM'),\nTokenHEART: () => import('../icons/tokens/TokenHEART'),\nTokenCRTS: () => import('../icons/tokens/TokenCRTS'),\nTokenAPL: () => import('../icons/tokens/TokenAPL'),\nTokenSNT: () => import('../icons/tokens/TokenSNT'),\nTokenCGG: () => import('../icons/tokens/TokenCGG'),\nTokenHTM: () => import('../icons/tokens/TokenHTM'),\nTokenDEXT: () => import('../icons/tokens/TokenDEXT'),\nTokenDPAY: () => import('../icons/tokens/TokenDPAY'),\nTokenMF: () => import('../icons/tokens/TokenMF'),\nTokenSCS: () => import('../icons/tokens/TokenSCS'),\nTokenDIMO: () => import('../icons/tokens/TokenDIMO'),\nTokenJOE: () => import('../icons/tokens/TokenJOE'),\nTokenDCK: () => import('../icons/tokens/TokenDCK'),\nTokenCATGIRL: () => import('../icons/tokens/TokenCATGIRL'),\nTokenPYUSD: () => import('../icons/tokens/TokenPYUSD'),\nTokenSAN: () => import('../icons/tokens/TokenSAN'),\nTokenXRD: () => import('../icons/tokens/TokenXRD'),\nTokenDWEB: () => import('../icons/tokens/TokenDWEB'),\nTokenGEEQ: () => import('../icons/tokens/TokenGEEQ'),\nTokenZIL: () => import('../icons/tokens/TokenZIL'),\nTokenEARN: () => import('../icons/tokens/TokenEARN'),\nTokenFOAM: () => import('../icons/tokens/TokenFOAM'),\nTokenCUSD: () => import('../icons/tokens/TokenCUSD'),\nTokenETHX: () => import('../icons/tokens/TokenETHX'),\nTokenKOIN: () => import('../icons/tokens/TokenKOIN'),\nTokenKITTY: () => import('../icons/tokens/TokenKITTY'),\nTokenPOLY: () => import('../icons/tokens/TokenPOLY'),\nTokenAFC: () => import('../icons/tokens/TokenAFC'),\nTokenKLEVA: () => import('../icons/tokens/TokenKLEVA'),\nTokenSDAO: () => import('../icons/tokens/TokenSDAO'),\nTokenZZ: () => import('../icons/tokens/TokenZZ'),\nTokenHBB: () => import('../icons/tokens/TokenHBB'),\nTokenBAKE: () => import('../icons/tokens/TokenBAKE'),\nTokenQNT: () => import('../icons/tokens/TokenQNT'),\nTokenSTX: () => import('../icons/tokens/TokenSTX'),\nTokenVIA: () => import('../icons/tokens/TokenVIA'),\nTokenKOGE: () => import('../icons/tokens/TokenKOGE'),\nTokenXEM: () => import('../icons/tokens/TokenXEM'),\nTokenGFAL: () => import('../icons/tokens/TokenGFAL'),\nTokenORARE: () => import('../icons/tokens/TokenORARE'),\nTokenTLOS: () => import('../icons/tokens/TokenTLOS'),\nTokenASTROC: () => import('../icons/tokens/TokenASTROC'),\nTokenPINKSALE: () => import('../icons/tokens/TokenPINKSALE'),\nTokenBTS: () => import('../icons/tokens/TokenBTS'),\nTokenPIP: () => import('../icons/tokens/TokenPIP'),\nTokenRPG: () => import('../icons/tokens/TokenRPG'),\nTokenDJED: () => import('../icons/tokens/TokenDJED'),\nTokenASTRADAO: () => import('../icons/tokens/TokenASTRADAO'),\nTokenNSBT: () => import('../icons/tokens/TokenNSBT'),\nTokenSTRAX: () => import('../icons/tokens/TokenSTRAX'),\nTokenREQ: () => import('../icons/tokens/TokenREQ'),\nTokenUSDX: () => import('../icons/tokens/TokenUSDX'),\nTokenXPNET: () => import('../icons/tokens/TokenXPNET'),\nTokenZOOMER: () => import('../icons/tokens/TokenZOOMER'),\nTokenEGC: () => import('../icons/tokens/TokenEGC'),\nTokenCTXC: () => import('../icons/tokens/TokenCTXC'),\nTokenREF: () => import('../icons/tokens/TokenREF'),\nTokenISK: () => import('../icons/tokens/TokenISK'),\nTokenNUM: () => import('../icons/tokens/TokenNUM'),\nTokenEUNO: () => import('../icons/tokens/TokenEUNO'),\nTokenCARBON: () => import('../icons/tokens/TokenCARBON'),\nTokenEJS: () => import('../icons/tokens/TokenEJS'),\nTokenPROS: () => import('../icons/tokens/TokenPROS'),\nTokenOUSD: () => import('../icons/tokens/TokenOUSD'),\nTokenK21: () => import('../icons/tokens/TokenK21'),\nTokenWELL: () => import('../icons/tokens/TokenWELL'),\nTokenLUNC: () => import('../icons/tokens/TokenLUNC'),\nTokenSERO: () => import('../icons/tokens/TokenSERO'),\nTokenBOX: () => import('../icons/tokens/TokenBOX'),\nTokenANKRETH: () => import('../icons/tokens/TokenANKRETH'),\nTokenGSE: () => import('../icons/tokens/TokenGSE'),\nTokenCCV2: () => import('../icons/tokens/TokenCCV2'),\nTokenGRV: () => import('../icons/tokens/TokenGRV'),\nTokenKDA: () => import('../icons/tokens/TokenKDA'),\nTokenMOBI: () => import('../icons/tokens/TokenMOBI'),\nTokenBLT: () => import('../icons/tokens/TokenBLT'),\nTokenLCC: () => import('../icons/tokens/TokenLCC'),\nTokenHUSKY: () => import('../icons/tokens/TokenHUSKY'),\nTokenTELOS: () => import('../icons/tokens/TokenTELOS'),\nTokenPLEB: () => import('../icons/tokens/TokenPLEB'),\nTokenBLUSD: () => import('../icons/tokens/TokenBLUSD'),\nTokenBAD: () => import('../icons/tokens/TokenBAD'),\nTokenSWAP: () => import('../icons/tokens/TokenSWAP'),\nTokenKEEP: () => import('../icons/tokens/TokenKEEP'),\nTokenREP: () => import('../icons/tokens/TokenREP'),\nTokenSYLO: () => import('../icons/tokens/TokenSYLO'),\nTokenMOON: () => import('../icons/tokens/TokenMOON'),\nTokenRDT: () => import('../icons/tokens/TokenRDT'),\nTokenLYM: () => import('../icons/tokens/TokenLYM'),\nTokenRDPX: () => import('../icons/tokens/TokenRDPX'),\nTokenEQX: () => import('../icons/tokens/TokenEQX'),\nTokenPHB: () => import('../icons/tokens/TokenPHB'),\nTokenGHX: () => import('../icons/tokens/TokenGHX'),\nTokenVOXEL: () => import('../icons/tokens/TokenVOXEL'),\nTokenWOW: () => import('../icons/tokens/TokenWOW'),\nTokenGHO: () => import('../icons/tokens/TokenGHO'),\nTokenMATICX: () => import('../icons/tokens/TokenMATICX'),\nTokenALEX: () => import('../icons/tokens/TokenALEX'),\nTokenCHRP: () => import('../icons/tokens/TokenCHRP'),\nTokenQUICK: () => import('../icons/tokens/TokenQUICK'),\nTokenKRL: () => import('../icons/tokens/TokenKRL'),\nTokenFLAME: () => import('../icons/tokens/TokenFLAME'),\nTokenPER: () => import('../icons/tokens/TokenPER'),\nTokenAZERO: () => import('../icons/tokens/TokenAZERO'),\nTokenHYDRA: () => import('../icons/tokens/TokenHYDRA'),\nTokenCRE: () => import('../icons/tokens/TokenCRE'),\nTokenCELL: () => import('../icons/tokens/TokenCELL'),\nTokenHAWK: () => import('../icons/tokens/TokenHAWK'),\nTokenREVO: () => import('../icons/tokens/TokenREVO'),\nTokenMEAN: () => import('../icons/tokens/TokenMEAN'),\nTokenUNIX: () => import('../icons/tokens/TokenUNIX'),\nTokenEQUAD: () => import('../icons/tokens/TokenEQUAD'),\nTokenPOLX: () => import('../icons/tokens/TokenPOLX'),\nTokenHMND: () => import('../icons/tokens/TokenHMND'),\nTokenVET: () => import('../icons/tokens/TokenVET'),\nTokenVIDT: () => import('../icons/tokens/TokenVIDT'),\nTokenMET: () => import('../icons/tokens/TokenMET'),\nTokenAPX: () => import('../icons/tokens/TokenAPX'),\nTokenZEN: () => import('../icons/tokens/TokenZEN'),\nTokenJAM: () => import('../icons/tokens/TokenJAM'),\nTokenAST: () => import('../icons/tokens/TokenAST'),\nTokenCKP: () => import('../icons/tokens/TokenCKP'),\nTokenNBLU: () => import('../icons/tokens/TokenNBLU'),\nTokenSTRD: () => import('../icons/tokens/TokenSTRD'),\nTokenDGNX: () => import('../icons/tokens/TokenDGNX'),\nTokenPOWR: () => import('../icons/tokens/TokenPOWR'),\nTokenGLMR: () => import('../icons/tokens/TokenGLMR'),\nTokenOM: () => import('../icons/tokens/TokenOM'),\nTokenRAVEN: () => import('../icons/tokens/TokenRAVEN'),\nTokenLA: () => import('../icons/tokens/TokenLA'),\nTokenQMALL: () => import('../icons/tokens/TokenQMALL'),\nTokenVALOR: () => import('../icons/tokens/TokenVALOR'),\nTokenCEL: () => import('../icons/tokens/TokenCEL'),\nTokenSCP: () => import('../icons/tokens/TokenSCP'),\nTokenMV: () => import('../icons/tokens/TokenMV'),\nTokenPDEX: () => import('../icons/tokens/TokenPDEX'),\nTokenTHOR: () => import('../icons/tokens/TokenTHOR'),\nTokenSRLTY: () => import('../icons/tokens/TokenSRLTY'),\nTokenGRAIL: () => import('../icons/tokens/TokenGRAIL'),\nTokenARC: () => import('../icons/tokens/TokenARC'),\nTokenMDT: () => import('../icons/tokens/TokenMDT'),\nTokenWOZX: () => import('../icons/tokens/TokenWOZX'),\nTokenCHO: () => import('../icons/tokens/TokenCHO'),\nTokenTKN: () => import('../icons/tokens/TokenTKN'),\nTokenSNS: () => import('../icons/tokens/TokenSNS'),\nTokenMUSD: () => import('../icons/tokens/TokenMUSD'),\nTokenPOLK: () => import('../icons/tokens/TokenPOLK'),\nTokenTT: () => import('../icons/tokens/TokenTT'),\nTokenVGX: () => import('../icons/tokens/TokenVGX'),\nTokenSOPH: () => import('../icons/tokens/TokenSOPH'),\nTokenQUAD: () => import('../icons/tokens/TokenQUAD'),\nTokenAERGO: () => import('../icons/tokens/TokenAERGO'),\nTokenCHAMPZ: () => import('../icons/tokens/TokenCHAMPZ'),\nTokenOMNI: () => import('../icons/tokens/TokenOMNI'),\nTokenGCOIN: () => import('../icons/tokens/TokenGCOIN'),\nTokenLAKE: () => import('../icons/tokens/TokenLAKE'),\nTokenFCON: () => import('../icons/tokens/TokenFCON'),\nTokenRNDR: () => import('../icons/tokens/TokenRNDR'),\nTokenCRV: () => import('../icons/tokens/TokenCRV'),\nTokenVIS: () => import('../icons/tokens/TokenVIS'),\nTokenPSWAP: () => import('../icons/tokens/TokenPSWAP'),\nTokenLODE: () => import('../icons/tokens/TokenLODE'),\nTokenSUN: () => import('../icons/tokens/TokenSUN'),\nTokenOMNOM: () => import('../icons/tokens/TokenOMNOM'),\nTokenWBT: () => import('../icons/tokens/TokenWBT'),\nTokenGEL: () => import('../icons/tokens/TokenGEL'),\nTokenNCR: () => import('../icons/tokens/TokenNCR'),\nTokenPIB: () => import('../icons/tokens/TokenPIB'),\nTokenERG: () => import('../icons/tokens/TokenERG'),\nTokenBTA: () => import('../icons/tokens/TokenBTA'),\nTokenLEASH: () => import('../icons/tokens/TokenLEASH'),\nTokenTFUEL: () => import('../icons/tokens/TokenTFUEL'),\nTokenNVIR: () => import('../icons/tokens/TokenNVIR'),\nTokenCOMP: () => import('../icons/tokens/TokenCOMP'),\nTokenJASMY: () => import('../icons/tokens/TokenJASMY'),\nTokenLUCA: () => import('../icons/tokens/TokenLUCA'),\nTokenGDCC: () => import('../icons/tokens/TokenGDCC'),\nTokenSYNC: () => import('../icons/tokens/TokenSYNC'),\nTokenHELLO: () => import('../icons/tokens/TokenHELLO'),\nTokenXDATA: () => import('../icons/tokens/TokenXDATA'),\nTokenPRIMAL: () => import('../icons/tokens/TokenPRIMAL'),\nTokenBBL: () => import('../icons/tokens/TokenBBL'),\nTokenBISO: () => import('../icons/tokens/TokenBISO'),\nTokenBCH: () => import('../icons/tokens/TokenBCH'),\nTokenGORA: () => import('../icons/tokens/TokenGORA'),\nTokenRET: () => import('../icons/tokens/TokenRET'),\nTokenBMC: () => import('../icons/tokens/TokenBMC'),\nTokenBNX: () => import('../icons/tokens/TokenBNX'),\nTokenLBT: () => import('../icons/tokens/TokenLBT'),\nTokenTHALES: () => import('../icons/tokens/TokenTHALES'),\nTokenMANA: () => import('../icons/tokens/TokenMANA'),\nTokenPSL: () => import('../icons/tokens/TokenPSL'),\nTokenINSUR: () => import('../icons/tokens/TokenINSUR'),\nTokenIDNA: () => import('../icons/tokens/TokenIDNA'),\nTokenTONIC: () => import('../icons/tokens/TokenTONIC'),\nTokenBLP: () => import('../icons/tokens/TokenBLP'),\nTokenVLXPAD: () => import('../icons/tokens/TokenVLXPAD'),\nTokenWRLD: () => import('../icons/tokens/TokenWRLD'),\nTokenHUSH: () => import('../icons/tokens/TokenHUSH'),\nTokenPIZA: () => import('../icons/tokens/TokenPIZA'),\nTokenGRS: () => import('../icons/tokens/TokenGRS'),\nTokenAURA: () => import('../icons/tokens/TokenAURA'),\nTokenROUTE: () => import('../icons/tokens/TokenROUTE'),\nTokenSCNSOL: () => import('../icons/tokens/TokenSCNSOL'),\nTokenAIOZ: () => import('../icons/tokens/TokenAIOZ'),\nTokenGHUB: () => import('../icons/tokens/TokenGHUB'),\nTokenNXRA: () => import('../icons/tokens/TokenNXRA'),\nTokenEFC: () => import('../icons/tokens/TokenEFC'),\nTokenBONDLY: () => import('../icons/tokens/TokenBONDLY'),\nTokenEGG: () => import('../icons/tokens/TokenEGG'),\nTokenKIT: () => import('../icons/tokens/TokenKIT'),\nTokenKYVE: () => import('../icons/tokens/TokenKYVE'),\nTokenEPIK: () => import('../icons/tokens/TokenEPIK'),\nTokenALGB: () => import('../icons/tokens/TokenALGB'),\nTokenPUSH: () => import('../icons/tokens/TokenPUSH'),\nTokenBLXM: () => import('../icons/tokens/TokenBLXM'),\nTokenNAKA: () => import('../icons/tokens/TokenNAKA'),\nTokenNMX: () => import('../icons/tokens/TokenNMX'),\nTokenLTX: () => import('../icons/tokens/TokenLTX'),\nTokenFRAX: () => import('../icons/tokens/TokenFRAX'),\nTokenWAN: () => import('../icons/tokens/TokenWAN'),\nTokenKSM: () => import('../icons/tokens/TokenKSM'),\nTokenHUAHUA: () => import('../icons/tokens/TokenHUAHUA'),\nTokenLTO: () => import('../icons/tokens/TokenLTO'),\nTokenSENSE: () => import('../icons/tokens/TokenSENSE'),\nTokenNEST: () => import('../icons/tokens/TokenNEST'),\nTokenCPH: () => import('../icons/tokens/TokenCPH'),\nTokenFOREX: () => import('../icons/tokens/TokenFOREX'),\nTokenMINTME: () => import('../icons/tokens/TokenMINTME'),\nTokenREALM: () => import('../icons/tokens/TokenREALM'),\nTokenSTJUNO: () => import('../icons/tokens/TokenSTJUNO'),\nTokenADX: () => import('../icons/tokens/TokenADX'),\nTokenQRDO: () => import('../icons/tokens/TokenQRDO'),\nTokenTKO: () => import('../icons/tokens/TokenTKO'),\nTokenTHT: () => import('../icons/tokens/TokenTHT'),\nTokenMUSE: () => import('../icons/tokens/TokenMUSE'),\nTokenSMI: () => import('../icons/tokens/TokenSMI'),\nTokenSOV: () => import('../icons/tokens/TokenSOV'),\nTokenCKB: () => import('../icons/tokens/TokenCKB'),\nTokenTKX: () => import('../icons/tokens/TokenTKX'),\nTokenDMD: () => import('../icons/tokens/TokenDMD'),\nTokenGULF: () => import('../icons/tokens/TokenGULF'),\nTokenFCTR: () => import('../icons/tokens/TokenFCTR'),\nTokenBCUBE: () => import('../icons/tokens/TokenBCUBE'),\nTokenTIG: () => import('../icons/tokens/TokenTIG'),\nTokenARB: () => import('../icons/tokens/TokenARB'),\nTokenINTR: () => import('../icons/tokens/TokenINTR'),\nTokenDEXE: () => import('../icons/tokens/TokenDEXE'),\nTokenPOLYDOGE: () => import('../icons/tokens/TokenPOLYDOGE'),\nTokenTRONPAD: () => import('../icons/tokens/TokenTRONPAD'),\nTokenMIR: () => import('../icons/tokens/TokenMIR'),\nTokenDAG: () => import('../icons/tokens/TokenDAG'),\nTokenL2: () => import('../icons/tokens/TokenL2'),\nTokenSCB: () => import('../icons/tokens/TokenSCB'),\nTokenKISHU: () => import('../icons/tokens/TokenKISHU'),\nTokenSBD: () => import('../icons/tokens/TokenSBD'),\nTokenCFG: () => import('../icons/tokens/TokenCFG'),\nTokenWALLET: () => import('../icons/tokens/TokenWALLET'),\nTokenDBI: () => import('../icons/tokens/TokenDBI'),\nTokenCGT: () => import('../icons/tokens/TokenCGT'),\nTokenZKB: () => import('../icons/tokens/TokenZKB'),\nTokenASSA: () => import('../icons/tokens/TokenASSA'),\nTokenDYDX: () => import('../icons/tokens/TokenDYDX'),\nTokenASD: () => import('../icons/tokens/TokenASD'),\nTokenDUSK: () => import('../icons/tokens/TokenDUSK'),\nTokenBASE: () => import('../icons/tokens/TokenBASE'),\nTokenMED: () => import('../icons/tokens/TokenMED'),\nTokenGRIN: () => import('../icons/tokens/TokenGRIN'),\nTokenAA: () => import('../icons/tokens/TokenAA'),\nTokenCRWNY: () => import('../icons/tokens/TokenCRWNY'),\nTokenHOT: () => import('../icons/tokens/TokenHOT'),\nTokenSPHERE: () => import('../icons/tokens/TokenSPHERE'),\nTokenDXP: () => import('../icons/tokens/TokenDXP'),\nTokenYOSHI: () => import('../icons/tokens/TokenYOSHI'),\nTokenAUDIO: () => import('../icons/tokens/TokenAUDIO'),\nTokenTRX: () => import('../icons/tokens/TokenTRX'),\nTokenOGN: () => import('../icons/tokens/TokenOGN'),\nTokenBRISE: () => import('../icons/tokens/TokenBRISE'),\nTokenSWASH: () => import('../icons/tokens/TokenSWASH'),\nTokenCRU: () => import('../icons/tokens/TokenCRU'),\nTokenTREE: () => import('../icons/tokens/TokenTREE'),\nTokenTIPS: () => import('../icons/tokens/TokenTIPS'),\nTokenTAROT: () => import('../icons/tokens/TokenTAROT'),\nTokenGGG: () => import('../icons/tokens/TokenGGG'),\nTokenGFT: () => import('../icons/tokens/TokenGFT'),\nTokenGGP: () => import('../icons/tokens/TokenGGP'),\nTokenSKEY: () => import('../icons/tokens/TokenSKEY'),\nTokenFLOOR: () => import('../icons/tokens/TokenFLOOR'),\nTokenBTU: () => import('../icons/tokens/TokenBTU'),\nTokenGSTS: () => import('../icons/tokens/TokenGSTS'),\nTokenWNT: () => import('../icons/tokens/TokenWNT'),\nTokenPICA: () => import('../icons/tokens/TokenPICA'),\nTokenHILO: () => import('../icons/tokens/TokenHILO'),\nTokenWAVES: () => import('../icons/tokens/TokenWAVES'),\nTokenRDD: () => import('../icons/tokens/TokenRDD'),\nTokenIOST: () => import('../icons/tokens/TokenIOST'),\nTokenNTX: () => import('../icons/tokens/TokenNTX'),\nTokenBAT: () => import('../icons/tokens/TokenBAT'),\nTokenNWC: () => import('../icons/tokens/TokenNWC'),\nTokenNEUROS: () => import('../icons/tokens/TokenNEUROS'),\nTokenMOBY: () => import('../icons/tokens/TokenMOBY'),\nTokenBLD: () => import('../icons/tokens/TokenBLD'),\nTokenPROB: () => import('../icons/tokens/TokenPROB'),\nTokenLCS: () => import('../icons/tokens/TokenLCS'),\nTokenTIFI: () => import('../icons/tokens/TokenTIFI'),\nTokenHIBS: () => import('../icons/tokens/TokenHIBS'),\nTokenPPC: () => import('../icons/tokens/TokenPPC'),\nTokenLYXE: () => import('../icons/tokens/TokenLYXE'),\nTokenLUNR: () => import('../icons/tokens/TokenLUNR'),\nTokenSOULS: () => import('../icons/tokens/TokenSOULS'),\nTokenLCD: () => import('../icons/tokens/TokenLCD'),\nTokenPPT: () => import('../icons/tokens/TokenPPT'),\nTokenMANC: () => import('../icons/tokens/TokenMANC'),\nTokenUOS: () => import('../icons/tokens/TokenUOS'),\nTokenKUMA: () => import('../icons/tokens/TokenKUMA'),\nTokenLCR: () => import('../icons/tokens/TokenLCR'),\nTokenNXM: () => import('../icons/tokens/TokenNXM'),\nTokenGRG: () => import('../icons/tokens/TokenGRG'),\nTokenUBT: () => import('../icons/tokens/TokenUBT'),\nTokenREV: () => import('../icons/tokens/TokenREV'),\nTokenTRAVA: () => import('../icons/tokens/TokenTRAVA'),\nTokenELON: () => import('../icons/tokens/TokenELON'),\nTokenALPH: () => import('../icons/tokens/TokenALPH'),\nTokenDATA: () => import('../icons/tokens/TokenDATA'),\nTokenBTT: () => import('../icons/tokens/TokenBTT'),\nTokenRAMP: () => import('../icons/tokens/TokenRAMP'),\nTokenBWO: () => import('../icons/tokens/TokenBWO'),\nTokenUWU: () => import('../icons/tokens/TokenUWU'),\nTokenNBT: () => import('../icons/tokens/TokenNBT'),\nTokenBTC: () => import('../icons/tokens/TokenBTC'),\nTokenGAFI: () => import('../icons/tokens/TokenGAFI'),\nTokenARBI: () => import('../icons/tokens/TokenARBI'),\nTokenWAM: () => import('../icons/tokens/TokenWAM'),\nTokenNOS: () => import('../icons/tokens/TokenNOS'),\nTokenKLIMA: () => import('../icons/tokens/TokenKLIMA'),\nTokenWBETH: () => import('../icons/tokens/TokenWBETH'),\nTokenAKT: () => import('../icons/tokens/TokenAKT'),\nTokenHAI: () => import('../icons/tokens/TokenHAI'),\nTokenOATH: () => import('../icons/tokens/TokenOATH'),\nTokenAAVE: () => import('../icons/tokens/TokenAAVE'),\nTokenBREED: () => import('../icons/tokens/TokenBREED'),\nTokenDUA: () => import('../icons/tokens/TokenDUA'),\nTokenXSUSHI: () => import('../icons/tokens/TokenXSUSHI'),\nTokenVEE: () => import('../icons/tokens/TokenVEE'),\nTokenMPS: () => import('../icons/tokens/TokenMPS'),\nTokenARV: () => import('../icons/tokens/TokenARV'),\nTokenATLAS: () => import('../icons/tokens/TokenATLAS'),\nTokenDLC: () => import('../icons/tokens/TokenDLC'),\nTokenTULIP: () => import('../icons/tokens/TokenTULIP'),\nTokenPICKLE: () => import('../icons/tokens/TokenPICKLE'),\nTokenCHZ: () => import('../icons/tokens/TokenCHZ'),\nTokenLQTY: () => import('../icons/tokens/TokenLQTY'),\nTokenFXS: () => import('../icons/tokens/TokenFXS'),\nTokenMC: () => import('../icons/tokens/TokenMC'),\nTokenSAI: () => import('../icons/tokens/TokenSAI'),\nTokenGRAIN: () => import('../icons/tokens/TokenGRAIN'),\nTokenFLUID: () => import('../icons/tokens/TokenFLUID'),\nTokenXSP: () => import('../icons/tokens/TokenXSP'),\nTokenDAD: () => import('../icons/tokens/TokenDAD'),\nTokenXRT: () => import('../icons/tokens/TokenXRT'),\nTokenORN: () => import('../icons/tokens/TokenORN'),\nTokenMNR: () => import('../icons/tokens/TokenMNR'),\nTokenAXE: () => import('../icons/tokens/TokenAXE'),\nTokenIGNIS: () => import('../icons/tokens/TokenIGNIS'),\nTokenZCX: () => import('../icons/tokens/TokenZCX'),\nTokenMCB: () => import('../icons/tokens/TokenMCB'),\nTokenSAND: () => import('../icons/tokens/TokenSAND'),\nTokenDEFIT: () => import('../icons/tokens/TokenDEFIT'),\nTokenGG: () => import('../icons/tokens/TokenGG'),\nTokenMUTE: () => import('../icons/tokens/TokenMUTE'),\nTokenSHA: () => import('../icons/tokens/TokenSHA'),\nTokenTAMA: () => import('../icons/tokens/TokenTAMA'),\nTokenZAP: () => import('../icons/tokens/TokenZAP'),\nTokenCREO: () => import('../icons/tokens/TokenCREO'),\nTokenIPAD: () => import('../icons/tokens/TokenIPAD'),\nTokenJUNGLE4EOS: () => import('../icons/tokens/TokenJUNGLE4EOS'),\nTokenFEI: () => import('../icons/tokens/TokenFEI'),\nTokenONG: () => import('../icons/tokens/TokenONG'),\nTokenREV3L: () => import('../icons/tokens/TokenREV3L'),\nTokenAAG: () => import('../icons/tokens/TokenAAG'),\nTokenDRGN: () => import('../icons/tokens/TokenDRGN'),\nTokenACX: () => import('../icons/tokens/TokenACX'),\nTokenNETT: () => import('../icons/tokens/TokenNETT'),\nTokenCRVUSD: () => import('../icons/tokens/TokenCRVUSD'),\nTokenNEWO: () => import('../icons/tokens/TokenNEWO'),\nTokenXCM: () => import('../icons/tokens/TokenXCM'),\nTokenKALM: () => import('../icons/tokens/TokenKALM'),\nTokenGSWAP: () => import('../icons/tokens/TokenGSWAP'),\nTokenSRX: () => import('../icons/tokens/TokenSRX'),\nTokenHBAR: () => import('../icons/tokens/TokenHBAR'),\nTokenPAL: () => import('../icons/tokens/TokenPAL'),\nTokenSLIM: () => import('../icons/tokens/TokenSLIM'),\nTokenLPT: () => import('../icons/tokens/TokenLPT'),\nTokenIONX: () => import('../icons/tokens/TokenIONX'),\nTokenINV: () => import('../icons/tokens/TokenINV'),\nTokenSHROOM: () => import('../icons/tokens/TokenSHROOM'),\nTokenHIPP: () => import('../icons/tokens/TokenHIPP'),\nTokenMDAO: () => import('../icons/tokens/TokenMDAO'),\nTokenROKO: () => import('../icons/tokens/TokenROKO'),\nTokenGAMI: () => import('../icons/tokens/TokenGAMI'),\nTokenPOP: () => import('../icons/tokens/TokenPOP'),\nTokenKICK: () => import('../icons/tokens/TokenKICK'),\nTokenGLQ: () => import('../icons/tokens/TokenGLQ'),\nTokenCMDX: () => import('../icons/tokens/TokenCMDX'),\nTokenPNT: () => import('../icons/tokens/TokenPNT'),\nTokenBSW: () => import('../icons/tokens/TokenBSW'),\nTokenPERC: () => import('../icons/tokens/TokenPERC'),\nTokenOPIUM: () => import('../icons/tokens/TokenOPIUM'),\nTokenGNY: () => import('../icons/tokens/TokenGNY'),\nTokenKNC: () => import('../icons/tokens/TokenKNC'),\nTokenGXC: () => import('../icons/tokens/TokenGXC'),\nTokenECOIN: () => import('../icons/tokens/TokenECOIN'),\nTokenRAY: () => import('../icons/tokens/TokenRAY'),\nTokenIOTA: () => import('../icons/tokens/TokenIOTA'),\nTokenSURE: () => import('../icons/tokens/TokenSURE'),\nTokenEMAID: () => import('../icons/tokens/TokenEMAID'),\nTokenXCUR: () => import('../icons/tokens/TokenXCUR'),\nTokenASTRAFER: () => import('../icons/tokens/TokenASTRAFER'),\nTokenKCS: () => import('../icons/tokens/TokenKCS'),\nTokenLET: () => import('../icons/tokens/TokenLET'),\nTokenACRIA: () => import('../icons/tokens/TokenACRIA'),\nTokenGUILD: () => import('../icons/tokens/TokenGUILD'),\nTokenPHONON: () => import('../icons/tokens/TokenPHONON'),\nTokenLIZA: () => import('../icons/tokens/TokenLIZA'),\nTokenAERO: () => import('../icons/tokens/TokenAERO'),\nTokenIDIA: () => import('../icons/tokens/TokenIDIA'),\nTokenPZP: () => import('../icons/tokens/TokenPZP'),\nTokenLYRA: () => import('../icons/tokens/TokenLYRA'),\nTokenBEL: () => import('../icons/tokens/TokenBEL'),\nTokenICP: () => import('../icons/tokens/TokenICP'),\nTokenRFOX: () => import('../icons/tokens/TokenRFOX'),\nTokenRVF: () => import('../icons/tokens/TokenRVF'),\nTokenPNB: () => import('../icons/tokens/TokenPNB'),\nTokenEUSD: () => import('../icons/tokens/TokenEUSD'),\nTokenETC: () => import('../icons/tokens/TokenETC'),\nTokenSUSHI: () => import('../icons/tokens/TokenSUSHI'),\nTokenGNO: () => import('../icons/tokens/TokenGNO'),\nTokenBSV: () => import('../icons/tokens/TokenBSV'),\nTokenUSTC: () => import('../icons/tokens/TokenUSTC'),\nTokenALCX: () => import('../icons/tokens/TokenALCX'),\nTokenEVMOS: () => import('../icons/tokens/TokenEVMOS'),\nTokenCOPI: () => import('../icons/tokens/TokenCOPI'),\nTokenTABOO: () => import('../icons/tokens/TokenTABOO'),\nTokenLOOKS: () => import('../icons/tokens/TokenLOOKS'),\nTokenADOGE: () => import('../icons/tokens/TokenADOGE'),\nTokenGBYTE: () => import('../icons/tokens/TokenGBYTE'),\nTokenCTR: () => import('../icons/tokens/TokenCTR'),\nTokenNEXA: () => import('../icons/tokens/TokenNEXA'),\nTokenDREP: () => import('../icons/tokens/TokenDREP'),\nTokenSC: () => import('../icons/tokens/TokenSC'),\nTokenLQDR: () => import('../icons/tokens/TokenLQDR'),\nTokenZTG: () => import('../icons/tokens/TokenZTG'),\nTokenHID: () => import('../icons/tokens/TokenHID'),\nTokenBOOT: () => import('../icons/tokens/TokenBOOT'),\nTokenGQ: () => import('../icons/tokens/TokenGQ'),\nTokenFRA: () => import('../icons/tokens/TokenFRA'),\nTokenDKA: () => import('../icons/tokens/TokenDKA'),\nTokenGEOD: () => import('../icons/tokens/TokenGEOD'),\nTokenZCN: () => import('../icons/tokens/TokenZCN'),\nTokenSIS: () => import('../icons/tokens/TokenSIS'),\nTokenQRL: () => import('../icons/tokens/TokenQRL'),\nTokenTREEB: () => import('../icons/tokens/TokenTREEB'),\nTokenSKL: () => import('../icons/tokens/TokenSKL'),\nTokenDERC: () => import('../icons/tokens/TokenDERC'),\nTokenCLORE: () => import('../icons/tokens/TokenCLORE'),\nTokenDGB: () => import('../icons/tokens/TokenDGB'),\nTokenSQUAD: () => import('../icons/tokens/TokenSQUAD'),\nTokenMND: () => import('../icons/tokens/TokenMND'),\nTokenAXS: () => import('../icons/tokens/TokenAXS'),\nTokenNEBO: () => import('../icons/tokens/TokenNEBO'),\nTokenSDT: () => import('../icons/tokens/TokenSDT'),\nTokenCAS: () => import('../icons/tokens/TokenCAS'),\nTokenSOON: () => import('../icons/tokens/TokenSOON'),\nTokenM87: () => import('../icons/tokens/TokenM87'),\nTokenSFI: () => import('../icons/tokens/TokenSFI'),\nTokenJKL: () => import('../icons/tokens/TokenJKL'),\nTokenAMPL: () => import('../icons/tokens/TokenAMPL'),\nTokenXTP: () => import('../icons/tokens/TokenXTP'),\nTokenMLN: () => import('../icons/tokens/TokenMLN'),\nTokenPORK: () => import('../icons/tokens/TokenPORK'),\nTokenVINU: () => import('../icons/tokens/TokenVINU'),\nTokenVEUR: () => import('../icons/tokens/TokenVEUR'),\nTokenOCEAN: () => import('../icons/tokens/TokenOCEAN'),\nTokenCLV: () => import('../icons/tokens/TokenCLV'),\nTokenATR: () => import('../icons/tokens/TokenATR'),\nTokenPREMIA: () => import('../icons/tokens/TokenPREMIA'),\nTokenCREAM: () => import('../icons/tokens/TokenCREAM'),\nTokenIRON: () => import('../icons/tokens/TokenIRON'),\nTokenSTARS: () => import('../icons/tokens/TokenSTARS'),\nTokenEL: () => import('../icons/tokens/TokenEL'),\nTokenMEED: () => import('../icons/tokens/TokenMEED'),\nTokenAPEFI: () => import('../icons/tokens/TokenAPEFI'),\nTokenRGEN: () => import('../icons/tokens/TokenRGEN'),\nTokenSPARTA: () => import('../icons/tokens/TokenSPARTA'),\nTokenVAI: () => import('../icons/tokens/TokenVAI'),\nTokenXMR: () => import('../icons/tokens/TokenXMR'),\nTokenAZIT: () => import('../icons/tokens/TokenAZIT'),\nTokenMTH: () => import('../icons/tokens/TokenMTH'),\nTokenBOTTO: () => import('../icons/tokens/TokenBOTTO'),\nTokenVOICE: () => import('../icons/tokens/TokenVOICE'),\nTokenDPI: () => import('../icons/tokens/TokenDPI'),\nTokenRIDE: () => import('../icons/tokens/TokenRIDE'),\nTokenAMP: () => import('../icons/tokens/TokenAMP'),\nTokenCTG: () => import('../icons/tokens/TokenCTG'),\nTokenMUDOL2: () => import('../icons/tokens/TokenMUDOL2'),\nTokenCDAI: () => import('../icons/tokens/TokenCDAI'),\nTokenLGCY: () => import('../icons/tokens/TokenLGCY'),\nTokenMEMEAI: () => import('../icons/tokens/TokenMEMEAI'),\nTokenUSN: () => import('../icons/tokens/TokenUSN'),\nTokenWACME: () => import('../icons/tokens/TokenWACME'),\nTokenBST: () => import('../icons/tokens/TokenBST'),\nTokenICE: () => import('../icons/tokens/TokenICE'),\nTokenCAPS: () => import('../icons/tokens/TokenCAPS'),\nTokenBRG: () => import('../icons/tokens/TokenBRG'),\nTokenRAM: () => import('../icons/tokens/TokenRAM'),\nTokenBEN: () => import('../icons/tokens/TokenBEN'),\nTokenMETAV: () => import('../icons/tokens/TokenMETAV'),\nTokenTOPIA: () => import('../icons/tokens/TokenTOPIA'),\nTokenB2M: () => import('../icons/tokens/TokenB2M'),\nTokenLITH: () => import('../icons/tokens/TokenLITH'),\nTokenBROCK: () => import('../icons/tokens/TokenBROCK'),\nTokenSNFT: () => import('../icons/tokens/TokenSNFT'),\nTokenUCJL: () => import('../icons/tokens/TokenUCJL'),\nTokenIXO: () => import('../icons/tokens/TokenIXO'),\nTokenMEDIA: () => import('../icons/tokens/TokenMEDIA'),\nTokenHERA: () => import('../icons/tokens/TokenHERA'),\nTokenLEOX: () => import('../icons/tokens/TokenLEOX'),\nTokenHIFI: () => import('../icons/tokens/TokenHIFI'),\nTokenGTC: () => import('../icons/tokens/TokenGTC'),\nTokenELF: () => import('../icons/tokens/TokenELF'),\nTokenKAN: () => import('../icons/tokens/TokenKAN'),\nTokenAGEUR: () => import('../icons/tokens/TokenAGEUR'),\nTokenMTRG: () => import('../icons/tokens/TokenMTRG'),\nTokenTITAN: () => import('../icons/tokens/TokenTITAN'),\nTokenGXA: () => import('../icons/tokens/TokenGXA'),\nTokenLIT: () => import('../icons/tokens/TokenLIT'),\nTokenZPAY: () => import('../icons/tokens/TokenZPAY'),\nTokenIDEA: () => import('../icons/tokens/TokenIDEA'),\nTokenNPC: () => import('../icons/tokens/TokenNPC'),\nTokenBFT: () => import('../icons/tokens/TokenBFT'),\nTokenRBW: () => import('../icons/tokens/TokenRBW'),\nTokenAURORA: () => import('../icons/tokens/TokenAURORA'),\nTokenXAUR: () => import('../icons/tokens/TokenXAUR'),\nTokenRTM: () => import('../icons/tokens/TokenRTM'),\nTokenPLI: () => import('../icons/tokens/TokenPLI'),\nTokenEURT: () => import('../icons/tokens/TokenEURT'),\nTokenYGG: () => import('../icons/tokens/TokenYGG'),\nTokenBETA: () => import('../icons/tokens/TokenBETA'),\nTokenORDI: () => import('../icons/tokens/TokenORDI'),\nTokenINT: () => import('../icons/tokens/TokenINT'),\nTokenIMO: () => import('../icons/tokens/TokenIMO'),\nTokenPAY: () => import('../icons/tokens/TokenPAY'),\nTokenIMX: () => import('../icons/tokens/TokenIMX'),\nTokenLING: () => import('../icons/tokens/TokenLING'),\nTokenGAT: () => import('../icons/tokens/TokenGAT'),\nTokenHARD: () => import('../icons/tokens/TokenHARD'),\nTokenSPE: () => import('../icons/tokens/TokenSPE'),\nTokenVLX: () => import('../icons/tokens/TokenVLX'),\nTokenIETH: () => import('../icons/tokens/TokenIETH'),\nTokenLAMB: () => import('../icons/tokens/TokenLAMB'),\nTokenUNCX: () => import('../icons/tokens/TokenUNCX'),\nTokenPROPC: () => import('../icons/tokens/TokenPROPC'),\nTokenDOGEGF: () => import('../icons/tokens/TokenDOGEGF'),\nTokenCGPT: () => import('../icons/tokens/TokenCGPT'),\nTokenALU: () => import('../icons/tokens/TokenALU'),\nTokenTTK: () => import('../icons/tokens/TokenTTK'),\nTokenFARA: () => import('../icons/tokens/TokenFARA'),\nTokenSRM: () => import('../icons/tokens/TokenSRM'),\nTokenWOMBAT: () => import('../icons/tokens/TokenWOMBAT'),\nTokenOMI: () => import('../icons/tokens/TokenOMI'),\nTokenBOND: () => import('../icons/tokens/TokenBOND'),\nTokenBIGSB: () => import('../icons/tokens/TokenBIGSB'),\nTokenONE: () => import('../icons/tokens/TokenONE'),\nTokenTXAU: () => import('../icons/tokens/TokenTXAU'),\nTokenATD: () => import('../icons/tokens/TokenATD'),\nTokenRBLS: () => import('../icons/tokens/TokenRBLS'),\nTokenAVL: () => import('../icons/tokens/TokenAVL'),\nTokenTLM: () => import('../icons/tokens/TokenTLM'),\nTokenCOL: () => import('../icons/tokens/TokenCOL'),\nTokenKAVA: () => import('../icons/tokens/TokenKAVA'),\nTokenMBD: () => import('../icons/tokens/TokenMBD'),\nTokenOTK: () => import('../icons/tokens/TokenOTK'),\nTokenMOC: () => import('../icons/tokens/TokenMOC'),\nTokenCAP: () => import('../icons/tokens/TokenCAP'),\nTokenDIKO: () => import('../icons/tokens/TokenDIKO'),\nTokenSHIK: () => import('../icons/tokens/TokenSHIK'),\nTokenVEXT: () => import('../icons/tokens/TokenVEXT'),\nTokenGRAV: () => import('../icons/tokens/TokenGRAV'),\nTokenKMON: () => import('../icons/tokens/TokenKMON'),\nTokenSTORJ: () => import('../icons/tokens/TokenSTORJ'),\nTokenMNT: () => import('../icons/tokens/TokenMNT'),\nTokenMMO: () => import('../icons/tokens/TokenMMO'),\nTokenZNN: () => import('../icons/tokens/TokenZNN'),\nTokenBTCP: () => import('../icons/tokens/TokenBTCP'),\nTokenCBX: () => import('../icons/tokens/TokenCBX'),\nTokenMLK: () => import('../icons/tokens/TokenMLK'),\nTokenSAITAMA: () => import('../icons/tokens/TokenSAITAMA'),\nTokenINST: () => import('../icons/tokens/TokenINST'),\nTokenCWAR: () => import('../icons/tokens/TokenCWAR'),\nTokenCAT: () => import('../icons/tokens/TokenCAT'),\nTokenMOG: () => import('../icons/tokens/TokenMOG'),\nTokenOOKS: () => import('../icons/tokens/TokenOOKS'),\nTokenRUNE: () => import('../icons/tokens/TokenRUNE'),\nTokenSPANK: () => import('../icons/tokens/TokenSPANK'),\nTokenPARA: () => import('../icons/tokens/TokenPARA'),\nTokenCOVAL: () => import('../icons/tokens/TokenCOVAL'),\nTokenCLS: () => import('../icons/tokens/TokenCLS'),\nTokenTOR: () => import('../icons/tokens/TokenTOR'),\nTokenXETA: () => import('../icons/tokens/TokenXETA'),\nTokenASTR: () => import('../icons/tokens/TokenASTR'),\nTokenLMWR: () => import('../icons/tokens/TokenLMWR'),\nTokenAMKT: () => import('../icons/tokens/TokenAMKT'),\nTokenWHITE: () => import('../icons/tokens/TokenWHITE'),\nTokenGPCX: () => import('../icons/tokens/TokenGPCX'),\nTokenMNTC: () => import('../icons/tokens/TokenMNTC'),\nTokenOOE: () => import('../icons/tokens/TokenOOE'),\nTokenAMB: () => import('../icons/tokens/TokenAMB'),\nTokenSPA: () => import('../icons/tokens/TokenSPA'),\nTokenFIL: () => import('../icons/tokens/TokenFIL'),\nTokenTWT: () => import('../icons/tokens/TokenTWT'),\nTokenCOSMOS: () => import('../icons/tokens/TokenCOSMOS'),\nTokenFREE: () => import('../icons/tokens/TokenFREE'),\nTokenBEPRO: () => import('../icons/tokens/TokenBEPRO'),\nTokenMAPS: () => import('../icons/tokens/TokenMAPS'),\nTokenKNDX: () => import('../icons/tokens/TokenKNDX'),\nTokenUQC: () => import('../icons/tokens/TokenUQC'),\nTokenARIX: () => import('../icons/tokens/TokenARIX'),\nTokenAVINOC: () => import('../icons/tokens/TokenAVINOC'),\nTokenFUND: () => import('../icons/tokens/TokenFUND'),\nTokenUPP: () => import('../icons/tokens/TokenUPP'),\nTokenTRADE: () => import('../icons/tokens/TokenTRADE'),\nTokenPRISM: () => import('../icons/tokens/TokenPRISM'),\nTokenBDX: () => import('../icons/tokens/TokenBDX'),\nTokenRBD: () => import('../icons/tokens/TokenRBD'),\nTokenWISE: () => import('../icons/tokens/TokenWISE'),\nTokenWEFI: () => import('../icons/tokens/TokenWEFI'),\nTokenCHMB: () => import('../icons/tokens/TokenCHMB'),\nTokenDONUT: () => import('../icons/tokens/TokenDONUT'),\nTokenOGGY: () => import('../icons/tokens/TokenOGGY'),\nTokenPEEL: () => import('../icons/tokens/TokenPEEL'),\nTokenMCONTENT: () => import('../icons/tokens/TokenMCONTENT'),\nTokenCROWN: () => import('../icons/tokens/TokenCROWN'),\nTokenERTHA: () => import('../icons/tokens/TokenERTHA'),\nTokenSETH: () => import('../icons/tokens/TokenSETH'),\nTokenFPIS: () => import('../icons/tokens/TokenFPIS'),\nTokenBELT: () => import('../icons/tokens/TokenBELT'),\nTokenFIDA: () => import('../icons/tokens/TokenFIDA'),\nTokenSWETH: () => import('../icons/tokens/TokenSWETH'),\nTokenNAVI: () => import('../icons/tokens/TokenNAVI'),\nTokenWSI: () => import('../icons/tokens/TokenWSI'),\nTokenENJ: () => import('../icons/tokens/TokenENJ'),\nTokenELU: () => import('../icons/tokens/TokenELU'),\nTokenARRR: () => import('../icons/tokens/TokenARRR'),\nTokenLIXX: () => import('../icons/tokens/TokenLIXX'),\nTokenARI10: () => import('../icons/tokens/TokenARI10'),\nTokenKIBSHI: () => import('../icons/tokens/TokenKIBSHI'),\nTokenSNEK: () => import('../icons/tokens/TokenSNEK'),\nTokenARSW: () => import('../icons/tokens/TokenARSW'),\nTokenEMP: () => import('../icons/tokens/TokenEMP'),\nTokenRLY: () => import('../icons/tokens/TokenRLY'),\nTokenRARE: () => import('../icons/tokens/TokenRARE'),\nTokenHBTC: () => import('../icons/tokens/TokenHBTC'),\nTokenREUNI: () => import('../icons/tokens/TokenREUNI'),\nTokenRAI: () => import('../icons/tokens/TokenRAI'),\nTokenAPFC: () => import('../icons/tokens/TokenAPFC'),\nTokenAPEX: () => import('../icons/tokens/TokenAPEX'),\nTokenGSWIFT: () => import('../icons/tokens/TokenGSWIFT'),\nTokenBGB: () => import('../icons/tokens/TokenBGB'),\nTokenPURSE: () => import('../icons/tokens/TokenPURSE'),\nTokenSTEEM: () => import('../icons/tokens/TokenSTEEM'),\nTokenBETS: () => import('../icons/tokens/TokenBETS'),\nTokenDSETH: () => import('../icons/tokens/TokenDSETH'),\nTokenGOZ: () => import('../icons/tokens/TokenGOZ'),\nTokenETE: () => import('../icons/tokens/TokenETE'),\nTokenKILT: () => import('../icons/tokens/TokenKILT'),\nTokenTENET: () => import('../icons/tokens/TokenTENET'),\nTokenBRIDGE: () => import('../icons/tokens/TokenBRIDGE'),\nTokenLINU: () => import('../icons/tokens/TokenLINU'),\nTokenSUDO: () => import('../icons/tokens/TokenSUDO'),\nTokenVEMP: () => import('../icons/tokens/TokenVEMP'),\nTokenHAPI: () => import('../icons/tokens/TokenHAPI'),\nTokenOAX: () => import('../icons/tokens/TokenOAX'),\nTokenBABYTRUMP: () => import('../icons/tokens/TokenBABYTRUMP'),\nTokenCPOOL: () => import('../icons/tokens/TokenCPOOL'),\nTokenNFTBS: () => import('../icons/tokens/TokenNFTBS'),\nTokenWAIT: () => import('../icons/tokens/TokenWAIT'),\nTokenRENBTC: () => import('../icons/tokens/TokenRENBTC'),\nTokenCTC: () => import('../icons/tokens/TokenCTC'),\nTokenABL: () => import('../icons/tokens/TokenABL'),\nTokenUNIBOT: () => import('../icons/tokens/TokenUNIBOT'),\nTokenACH: () => import('../icons/tokens/TokenACH'),\nTokenMVD: () => import('../icons/tokens/TokenMVD'),\nTokenJONES: () => import('../icons/tokens/TokenJONES'),\nTokenSTAT: () => import('../icons/tokens/TokenSTAT'),\nTokenMTL: () => import('../icons/tokens/TokenMTL'),\nTokenPI: () => import('../icons/tokens/TokenPI'),\nTokenALLIN: () => import('../icons/tokens/TokenALLIN'),\nTokenAVI: () => import('../icons/tokens/TokenAVI'),\nTokenVVS: () => import('../icons/tokens/TokenVVS'),\nTokenMARS4: () => import('../icons/tokens/TokenMARS4'),\nTokenC98: () => import('../icons/tokens/TokenC98'),\nTokenNEON: () => import('../icons/tokens/TokenNEON'),\nTokenSAMO: () => import('../icons/tokens/TokenSAMO'),\nTokenATA: () => import('../icons/tokens/TokenATA'),\nTokenZANO: () => import('../icons/tokens/TokenZANO'),\nTokenNEAR: () => import('../icons/tokens/TokenNEAR'),\nTokenTAO: () => import('../icons/tokens/TokenTAO'),\nTokenMNB: () => import('../icons/tokens/TokenMNB'),\nTokenMMY: () => import('../icons/tokens/TokenMMY'),\nTokenSFRXETH: () => import('../icons/tokens/TokenSFRXETH'),\nTokenSFM: () => import('../icons/tokens/TokenSFM'),\nTokenDEL: () => import('../icons/tokens/TokenDEL'),\nTokenDPET: () => import('../icons/tokens/TokenDPET'),\nTokenBCAT: () => import('../icons/tokens/TokenBCAT'),\nTokenCBY: () => import('../icons/tokens/TokenCBY'),\nTokenTOMI: () => import('../icons/tokens/TokenTOMI'),\nTokenMCADE: () => import('../icons/tokens/TokenMCADE'),\nTokenBTC2: () => import('../icons/tokens/TokenBTC2'),\nTokenKICKS: () => import('../icons/tokens/TokenKICKS'),\nTokenBRICK: () => import('../icons/tokens/TokenBRICK'),\nTokenMNW: () => import('../icons/tokens/TokenMNW'),\nTokenVIDYA: () => import('../icons/tokens/TokenVIDYA'),\nTokenIMGNAI: () => import('../icons/tokens/TokenIMGNAI'),\nTokenMOD: () => import('../icons/tokens/TokenMOD'),\nTokenCAW: () => import('../icons/tokens/TokenCAW'),\nTokenUNDEAD: () => import('../icons/tokens/TokenUNDEAD'),\nTokenHAKA: () => import('../icons/tokens/TokenHAKA'),\nTokenIBIT: () => import('../icons/tokens/TokenIBIT'),\nTokenSFTMX: () => import('../icons/tokens/TokenSFTMX'),\nTokenSHFT: () => import('../icons/tokens/TokenSHFT'),\nTokenMAX: () => import('../icons/tokens/TokenMAX'),\nTokenXNO: () => import('../icons/tokens/TokenXNO'),\nTokenDPX: () => import('../icons/tokens/TokenDPX'),\nTokenVELA: () => import('../icons/tokens/TokenVELA'),\nTokenXCH: () => import('../icons/tokens/TokenXCH'),\nTokenMXM: () => import('../icons/tokens/TokenMXM'),\nTokenMZR: () => import('../icons/tokens/TokenMZR'),\nTokenXELS: () => import('../icons/tokens/TokenXELS'),\nTokenCULT: () => import('../icons/tokens/TokenCULT'),\nTokenSAVG: () => import('../icons/tokens/TokenSAVG'),\nTokenOCE: () => import('../icons/tokens/TokenOCE'),\nTokenFIO: () => import('../icons/tokens/TokenFIO'),\nTokenPROPS: () => import('../icons/tokens/TokenPROPS'),\nTokenEXD: () => import('../icons/tokens/TokenEXD'),\nTokenINS: () => import('../icons/tokens/TokenINS'),\nTokenNKN: () => import('../icons/tokens/TokenNKN'),\nTokenCORE: () => import('../icons/tokens/TokenCORE'),\nTokenSRCX: () => import('../icons/tokens/TokenSRCX'),\nTokenFIRO: () => import('../icons/tokens/TokenFIRO'),\nTokenPBR: () => import('../icons/tokens/TokenPBR'),\nTokenPAI: () => import('../icons/tokens/TokenPAI'),\nTokenGAS: () => import('../icons/tokens/TokenGAS'),\nTokenGLC: () => import('../icons/tokens/TokenGLC'),\nTokenPLY: () => import('../icons/tokens/TokenPLY'),\nTokenMSOL: () => import('../icons/tokens/TokenMSOL'),\nTokenPUNDIX: () => import('../icons/tokens/TokenPUNDIX'),\nTokenNGM: () => import('../icons/tokens/TokenNGM'),\nTokenRAKE: () => import('../icons/tokens/TokenRAKE'),\nTokenSUKU: () => import('../icons/tokens/TokenSUKU'),\nTokenMASK: () => import('../icons/tokens/TokenMASK'),\nTokenPLN: () => import('../icons/tokens/TokenPLN'),\nTokenY2K: () => import('../icons/tokens/TokenY2K'),\nTokenETP: () => import('../icons/tokens/TokenETP'),\nTokenNALS: () => import('../icons/tokens/TokenNALS'),\nTokenEURS: () => import('../icons/tokens/TokenEURS'),\nTokenUSH: () => import('../icons/tokens/TokenUSH'),\nTokenMCHC: () => import('../icons/tokens/TokenMCHC'),\nTokenJMPT: () => import('../icons/tokens/TokenJMPT'),\nTokenFLUX: () => import('../icons/tokens/TokenFLUX'),\nTokenBERRY: () => import('../icons/tokens/TokenBERRY'),\nTokenGOVI: () => import('../icons/tokens/TokenGOVI'),\nTokenGHST: () => import('../icons/tokens/TokenGHST'),\nTokenUFI: () => import('../icons/tokens/TokenUFI'),\nTokenBLUESPARROW: () => import('../icons/tokens/TokenBLUESPARROW'),\nTokenKAI: () => import('../icons/tokens/TokenKAI'),\nTokenELA: () => import('../icons/tokens/TokenELA'),\nTokenSNAIL: () => import('../icons/tokens/TokenSNAIL'),\nTokenKROM: () => import('../icons/tokens/TokenKROM'),\nTokenTETU: () => import('../icons/tokens/TokenTETU'),\nTokenGAMMA: () => import('../icons/tokens/TokenGAMMA'),\nTokenMAHA: () => import('../icons/tokens/TokenMAHA'),\nTokenCUSDC: () => import('../icons/tokens/TokenCUSDC'),\nTokenSUSD: () => import('../icons/tokens/TokenSUSD'),\nTokenARIA20: () => import('../icons/tokens/TokenARIA20'),\nTokenPWR: () => import('../icons/tokens/TokenPWR'),\nTokenCHAT: () => import('../icons/tokens/TokenCHAT'),\nTokenWRX: () => import('../icons/tokens/TokenWRX'),\nTokenBFR: () => import('../icons/tokens/TokenBFR'),\nTokenECO: () => import('../icons/tokens/TokenECO'),\nTokenBLID: () => import('../icons/tokens/TokenBLID'),\nTokenXFUND: () => import('../icons/tokens/TokenXFUND'),\nTokenRAIL: () => import('../icons/tokens/TokenRAIL'),\nTokenPNP: () => import('../icons/tokens/TokenPNP'),\nTokenSEND: () => import('../icons/tokens/TokenSEND'),\nTokenHUNT: () => import('../icons/tokens/TokenHUNT'),\nTokenLPNT: () => import('../icons/tokens/TokenLPNT'),\nTokenPERP: () => import('../icons/tokens/TokenPERP'),\nTokenOBOT: () => import('../icons/tokens/TokenOBOT'),\nTokenXAUT: () => import('../icons/tokens/TokenXAUT'),\nTokenRVC: () => import('../icons/tokens/TokenRVC'),\nTokenPNG: () => import('../icons/tokens/TokenPNG'),\nTokenNGL: () => import('../icons/tokens/TokenNGL'),\nTokenXCAD: () => import('../icons/tokens/TokenXCAD'),\nTokenLINA: () => import('../icons/tokens/TokenLINA'),\nTokenFLOW: () => import('../icons/tokens/TokenFLOW'),\nTokenQTCON: () => import('../icons/tokens/TokenQTCON'),\nTokenRMRK: () => import('../icons/tokens/TokenRMRK'),\nTokenLSK: () => import('../icons/tokens/TokenLSK'),\nTokenNHT: () => import('../icons/tokens/TokenNHT'),\nTokenSRK: () => import('../icons/tokens/TokenSRK'),\nTokenWAGMIGAMES: () => import('../icons/tokens/TokenWAGMIGAMES'),\nTokenGUSD: () => import('../icons/tokens/TokenGUSD'),\nTokenFRONT: () => import('../icons/tokens/TokenFRONT'),\nTokenBOBA: () => import('../icons/tokens/TokenBOBA'),\nTokenSSX: () => import('../icons/tokens/TokenSSX'),\nTokenSPC: () => import('../icons/tokens/TokenSPC'),\nTokenAQUA: () => import('../icons/tokens/TokenAQUA'),\nTokenASCN: () => import('../icons/tokens/TokenASCN'),\nTokenXRUNE: () => import('../icons/tokens/TokenXRUNE'),\nTokenRAZOR: () => import('../icons/tokens/TokenRAZOR'),\nTokenGOLDEN: () => import('../icons/tokens/TokenGOLDEN'),\nTokenMWC: () => import('../icons/tokens/TokenMWC'),\nTokenONT: () => import('../icons/tokens/TokenONT'),\nTokenVCF: () => import('../icons/tokens/TokenVCF'),\nTokenHOPR: () => import('../icons/tokens/TokenHOPR'),\nTokenPART: () => import('../icons/tokens/TokenPART'),\nTokenTOP: () => import('../icons/tokens/TokenTOP'),\nTokenOXY: () => import('../icons/tokens/TokenOXY'),\nTokenTNT: () => import('../icons/tokens/TokenTNT'),\nTokenBCMC: () => import('../icons/tokens/TokenBCMC'),\nTokenGT: () => import('../icons/tokens/TokenGT'),\nTokenMAN: () => import('../icons/tokens/TokenMAN'),\nTokenZAT: () => import('../icons/tokens/TokenZAT'),\nTokenVTX: () => import('../icons/tokens/TokenVTX'),\nTokenPASG: () => import('../icons/tokens/TokenPASG'),\nTokenMOE: () => import('../icons/tokens/TokenMOE'),\nTokenOVR: () => import('../icons/tokens/TokenOVR'),\n};\n\nexport const WALLET_ICON_IMPORT_MAP: IconImportMap = {\nWalletMyEtherWallet: () => import('../icons/wallets/WalletMyEtherWallet'),\nWalletLedger: () => import('../icons/wallets/WalletLedger'),\nWalletMetamask: () => import('../icons/wallets/WalletMetamask'),\nWalletVenly: () => import('../icons/wallets/WalletVenly'),\nWalletPillar: () => import('../icons/wallets/WalletPillar'),\nWalletTokenPocket: () => import('../icons/wallets/WalletTokenPocket'),\nWalletSender: () => import('../icons/wallets/WalletSender'),\nWalletSoul: () => import('../icons/wallets/WalletSoul'),\nWalletRonin: () => import('../icons/wallets/WalletRonin'),\nWalletCoin98: () => import('../icons/wallets/WalletCoin98'),\nWalletSafe: () => import('../icons/wallets/WalletSafe'),\nWalletMultis: () => import('../icons/wallets/WalletMultis'),\nWalletObvious: () => import('../icons/wallets/WalletObvious'),\nWalletWallet3: () => import('../icons/wallets/WalletWallet3'),\nWalletPortal: () => import('../icons/wallets/WalletPortal'),\nWalletBackpack: () => import('../icons/wallets/WalletBackpack'),\nWalletSequence: () => import('../icons/wallets/WalletSequence'),\nWalletClave: () => import('../icons/wallets/WalletClave'),\nWalletTrust: () => import('../icons/wallets/WalletTrust'),\nWalletRabby: () => import('../icons/wallets/WalletRabby'),\nWalletPhantom: () => import('../icons/wallets/WalletPhantom'),\nWalletZengo: () => import('../icons/wallets/WalletZengo'),\nWalletWalletConnect: () => import('../icons/wallets/WalletWalletConnect'),\nWalletOkx: () => import('../icons/wallets/WalletOkx'),\nWalletAlfa1: () => import('../icons/wallets/WalletAlfa1'),\nWalletTrezor: () => import('../icons/wallets/WalletTrezor'),\nWalletEnkrypt: () => import('../icons/wallets/WalletEnkrypt'),\nWalletAlphaWallet: () => import('../icons/wallets/WalletAlphaWallet'),\nWalletKraken: () => import('../icons/wallets/WalletKraken'),\nWalletRainbow: () => import('../icons/wallets/WalletRainbow'),\nWalletLit: () => import('../icons/wallets/WalletLit'),\nWalletZerion: () => import('../icons/wallets/WalletZerion'),\nWalletSquads: () => import('../icons/wallets/WalletSquads'),\nWalletUnipass: () => import('../icons/wallets/WalletUnipass'),\nWalletCoinbase: () => import('../icons/wallets/WalletCoinbase'),\nWalletImtoken: () => import('../icons/wallets/WalletImtoken'),\nWalletXdefi: () => import('../icons/wallets/WalletXdefi'),\nWalletArgent: () => import('../icons/wallets/WalletArgent'),\n};\n\n","import { forwardRef, ReactElement, ReactNode, useEffect, useState } from 'react'\nimport {\n INetworkMetadata,\n ITokenMetadata,\n IWalletMetadata,\n TType,\n} from '@web3icons/common'\nimport { BaseIcon } from './BaseIcon'\nimport {\n toPascalCase,\n NETWORK_ICON_IMPORT_MAP,\n TOKEN_ICON_IMPORT_MAP,\n WALLET_ICON_IMPORT_MAP,\n} from './utils'\n/**\n * Interface for DynamicIcon component props.\n *\n * @property {IWalletMetadata | ITokenMetadata | INetworkMetadata | undefined} metadata - Metadata for the icon.\n * @property {TType} type - Type of the icon (token, network, or wallet).\n * @property {React.ForwardedRef<SVGSVGElement>} ref - Forwarded ref for the icon.\n * @property {(string | number)} [size] - Size of the icon.\n * @property {string} [color] - Color of the icon.\n * @property {string} [className] - Additional CSS classes for the icon.\n * @property {'mono' | 'branded'} [variant] - Variant of the icon.\n * @property {(string | ReactNode)} [fallback] - Fallback content to display if the icon fails to load.\n */\ninterface IDynamicIcon {\n metadata: ITokenMetadata | IWalletMetadata | INetworkMetadata | undefined\n type: TType\n ref?: React.ForwardedRef<SVGSVGElement>\n size?: string | number\n color?: string\n className?: string\n variant?: 'mono' | 'branded'\n fallback?: string | ReactNode\n}\n\n/**\n * DynamicIcon component dynamically loads and renders icons based on the provided metadata and type.\n *\n * @param {IDynamicIcon} props\n * @param {React.ForwardedRef<SVGSVGElement>} ref\n * @returns {ReactElement | null} JSX Element for the DynamicIcon component or null if the icon fails to load.\n */\nexport const DynamicIcon = forwardRef<SVGSVGElement, IDynamicIcon>(\n (\n { size, color, className, variant, fallback, metadata, type }: IDynamicIcon,\n ref,\n ): ReactElement | null => {\n const [IconComponent, setIconComponent] = useState<ReactElement | null>(\n null,\n )\n\n useEffect(() => {\n const loadIcon = async () => {\n let importFunction\n if (!metadata) {\n if (!fallback) return null\n setIconComponent(\n <BaseIcon\n ref={ref}\n size={size}\n color={color}\n className={className}\n fallback={fallback}\n />,\n )\n return\n }\n\n switch (type) {\n case 'token':\n importFunction =\n TOKEN_ICON_IMPORT_MAP[\n `Token${(metadata as ITokenMetadata).symbol.toUpperCase()}`\n ]\n break\n case 'network':\n importFunction =\n NETWORK_ICON_IMPORT_MAP[\n `Network${toPascalCase(metadata.name)}`\n ] ??\n NETWORK_ICON_IMPORT_MAP[`Network${toPascalCase(metadata.id)}`]\n break\n case 'wallet':\n importFunction =\n WALLET_ICON_IMPORT_MAP[`Wallet${toPascalCase(metadata.name)}`] ??\n WALLET_ICON_IMPORT_MAP[`Wallet${toPascalCase(metadata.id)}`]\n break\n default:\n throw new Error(`invalid type ${type}`)\n }\n\n if (importFunction) {\n try {\n const { default: ImportedIcon } = await importFunction()\n setIconComponent(\n <ImportedIcon\n ref={ref}\n size={size}\n color={color}\n className={className}\n variant={variant}\n />,\n )\n } catch (error) {\n if (fallback) {\n setIconComponent(\n <BaseIcon\n ref={ref}\n size={size}\n color={color}\n className={className}\n fallback={fallback}\n />,\n )\n }\n }\n } else {\n if (fallback) {\n setIconComponent(\n <BaseIcon\n ref={ref}\n size={size}\n color={color}\n className={className}\n fallback={fallback}\n />,\n )\n }\n }\n }\n\n loadIcon()\n }, [ref, size, color, className, variant, fallback])\n\n return IconComponent\n },\n)\n","import { forwardRef } from 'react'\nimport { TokenIconProps } from './types'\nimport { findToken } from './utils'\nimport { DynamicIcon } from './DynamicIcon'\n\n/**\n * @component @name TokenIcon\n *\n * @description A React component for rendering token icons dynamically based on the provided symbol, address, and network.\n *\n * @param {TokenIconProps} props\n * @param {SVGSVGElement} ref\n *\n * @returns {JSX.Element} JSX Element for the TokenIcon component.\n */\nexport const TokenIcon = forwardRef<SVGSVGElement, TokenIconProps>(\n (\n {\n symbol,\n size,\n className,\n variant = 'mono',\n color,\n address,\n network,\n fallback,\n },\n ref,\n ) => {\n const metadata = findToken(symbol ? { symbol } : { address, network })\n return (\n <DynamicIcon\n type=\"token\"\n metadata={metadata}\n className={className}\n color={color}\n fallback={fallback}\n ref={ref}\n size={size}\n variant={variant}\n />\n )\n },\n)\n\nTokenIcon.displayName = 'TokenIcon'\n","import { toKebabCase } from './naming-conventions'\nimport {\n INetworkMetadata,\n ITokenMetadata,\n IWalletMetadata,\n networks,\n tokens,\n wallets,\n} from '@web3icons/common'\n\nexport const findWallet = ({\n wallet,\n}: {\n wallet: string\n}): IWalletMetadata | undefined => {\n const walletObj = wallets.find(\n (w) =>\n w.id.toLowerCase() === toKebabCase(wallet) ||\n w.name.toLowerCase() === wallet.toLowerCase(),\n )\n return walletObj\n}\n\nexport const findToken = ({\n symbol,\n address,\n network,\n}: {\n symbol?: string\n address?: string\n network?: string\n}): ITokenMetadata | undefined => {\n if (symbol) {\n return tokens.find(\n (token) => token.symbol.toLowerCase() === symbol.toLowerCase(),\n )\n } else if (address && network) {\n return tokens.find(\n (token) =>\n token.addresses[network]?.toLowerCase() === address.toLowerCase(),\n )\n }\n return undefined\n}\n\nexport const findNetwork = ({\n network,\n chainId,\n}: {\n network?: string\n chainId?: number | string\n}): INetworkMetadata | undefined => {\n if (network) {\n const networkObj = networks.find(\n (net) =>\n net.id.toLowerCase() === toKebabCase(network) ||\n net.name.toLowerCase() === network.toLowerCase() ||\n net.shortName?.toLowerCase() === network.toLowerCase(),\n )\n return networkObj\n }\n\n if (chainId) {\n const networkObj = networks.find((net) => net.chainId === chainId)\n return networkObj\n }\n\n return undefined\n}\n","import { forwardRef } from 'react'\nimport { NetworkIconProps } from './types'\nimport { findNetwork } from './utils'\nimport { DynamicIcon } from './DynamicIcon'\n\n/**\n * @component @name NetworkIcon\n *\n * @description A React component for rendering network icons dynamically based on the provided network or chain ID.\n *\n * @param {NetworkIconProps} props\n * @param {SVGSVGElement} ref\n *\n * @returns {JSX.Element} JSX Element for the NetworkIcon component.\n */\nexport const NetworkIcon = forwardRef<SVGSVGElement, NetworkIconProps>(\n (\n { network, chainId, size, className, variant = 'mono', color, fallback },\n ref,\n ) => {\n const metadata = findNetwork(network ? { network } : { chainId })\n return (\n <DynamicIcon\n type=\"network\"\n metadata={metadata}\n size={size}\n className={className}\n variant={variant}\n color={color}\n ref={ref}\n fallback={fallback}\n />\n )\n },\n)\n\nNetworkIcon.displayName = 'NetworkIcon'\n","import { forwardRef } from 'react'\nimport { WalletIconProps } from './types'\nimport { DynamicIcon } from './DynamicIcon'\nimport { findWallet } from './utils'\n\n/**\n * @component @name WalletIcon\n *\n * @description A React component for rendering wallet icons dynamically based on the provided wallet ID or name.\n *\n * @param {WalletIconProps} props\n * @param {SVGSVGElement} ref\n *\n * @returns {JSX.Element} JSX Element for the WalletIcon component.\n */\nexport const WalletIcon = forwardRef<SVGSVGElement, WalletIconProps>(\n ({ id, name, size, className, variant = 'mono', color, fallback }, ref) => {\n const metadata = findWallet({ wallet: id ?? name })\n\n return (\n <DynamicIcon\n metadata={metadata}\n type=\"wallet\"\n size={size}\n className={className}\n variant={variant}\n color={color}\n ref={ref}\n fallback={fallback}\n />\n )\n },\n)\n\nWalletIcon.displayName = 'WalletIcon'\n","export const walletIcon = [\n {\n label: \"MetaMask\",\n icon: \"metamask\",\n },\n {\n label: \"wallet-connect\",\n icon: \"wallet connect\",\n },\n {\n label: \"trust-wallet\",\n icon: \"trust\",\n },\n {\n label: \"phantom\",\n icon: \"phantom\",\n },\n {\n label: \"coinbase\",\n icon: \"coinbase wallet\",\n },\n {\n label: \"alfa1\",\n icon: \"alfa1\",\n },\n {\n label: \"argent x\",\n icon: \"argent\",\n },\n {\n label: \"backpack\",\n icon: \"backpack\",\n },\n {\n label: \"coin98\",\n icon: \"coin98\",\n },\n\n {\n label: \"enkrypt\",\n icon: \"enkrypt\",\n },\n {\n label: \"imtoken\",\n icon: \"imToken\",\n },\n {\n label: \"kraken\",\n icon: \"kraken wallet\",\n },\n {\n label: \"argent x\",\n icon: \"argent\",\n },\n {\n label: \"lit\",\n icon: \"lit protocol\",\n },\n {\n label: \"obvious\",\n icon: \"obvious wallet\",\n },\n {\n label: \"okx\",\n icon: \"okx wallet\",\n },\n\n {\n label: \"portal\",\n icon: \"portal\",\n },\n {\n label: \"rabby\",\n icon: \"rabby\",\n },\n {\n label: \"rainbow\",\n icon: \"rainbow\",\n },\n {\n label: \"safe\",\n icon: \"safe wallet\",\n },\n {\n label: \"ledger\",\n icon: \"ledger\",\n },\n {\n label: \"soul\",\n icon: \"soul\",\n },\n {\n label: \"token-pocket\",\n icon: \"token pocket\",\n },\n {\n label: \"trezor\",\n icon: \"trezor\",\n },\n {\n label: \"unipass\",\n icon: \"unipass\",\n },\n {\n label: \"venly\",\n icon: \"venly\",\n },\n {\n label: \"zengo\",\n icon: \"zengo\",\n },\n {\n label: \"zerion\",\n icon: \"zerion\",\n },\n {\n label: \"alpha-wallet\",\n icon: \"alpha wallet\",\n },\n {\n label: \"my-ether-wallet\",\n icon: \"MyEtherWallet\",\n },\n {\n label: \"pillar\",\n icon: \"Pillar\",\n },\n {\n label: \"ronin\",\n icon: \"ronin\",\n },\n {\n label: \"sender\",\n icon: \"sender\",\n },\n {\n label: \"sequence\",\n icon: \"sequence\",\n },\n {\n label: \"squads\",\n icon: \"squads\",\n },\n {\n label: \"wallet-3\",\n icon: \"wallet3\",\n },\n {\n label: \"xdefi\",\n icon: \"xdefi\",\n },\n {\n label: \"clave\",\n icon: \"clave\",\n },\n];\n","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getCircularProgressUtilityClass(slot) {\n return generateUtilityClass('MuiCircularProgress', slot);\n}\nconst circularProgressClasses = generateUtilityClasses('MuiCircularProgress', ['root', 'determinate', 'indeterminate', 'colorPrimary', 'colorSecondary', 'svg', 'circle', 'circleDeterminate', 'circleIndeterminate', 'circleDisableShrink']);\nexport default circularProgressClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"disableShrink\", \"size\", \"style\", \"thickness\", \"value\", \"variant\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled from '../styles/styled';\nimport { getCircularProgressUtilityClass } from './circularProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst SIZE = 44;\nconst circularRotateKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(360deg);\n }\n`));\nconst circularDashKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n`));\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color,\n disableShrink\n } = ownerState;\n const slots = {\n root: ['root', variant, `color${capitalize(color)}`],\n svg: ['svg'],\n circle: ['circle', `circle${capitalize(variant)}`, disableShrink && 'circleDisableShrink']\n };\n return composeClasses(slots, getCircularProgressUtilityClass, classes);\n};\nconst CircularProgressRoot = styled('span', {\n name: 'MuiCircularProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n display: 'inline-block'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('transform')\n}, ownerState.color !== 'inherit' && {\n color: (theme.vars || theme).palette[ownerState.color].main\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && css(_t3 || (_t3 = _`\n animation: ${0} 1.4s linear infinite;\n `), circularRotateKeyframe));\nconst CircularProgressSVG = styled('svg', {\n name: 'MuiCircularProgress',\n slot: 'Svg',\n overridesResolver: (props, styles) => styles.svg\n})({\n display: 'block' // Keeps the progress centered\n});\nconst CircularProgressCircle = styled('circle', {\n name: 'MuiCircularProgress',\n slot: 'Circle',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.circle, styles[`circle${capitalize(ownerState.variant)}`], ownerState.disableShrink && styles.circleDisableShrink];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n stroke: 'currentColor'\n}, ownerState.variant === 'determinate' && {\n transition: theme.transitions.create('stroke-dashoffset')\n}, ownerState.variant === 'indeterminate' && {\n // Some default value that looks fine waiting for the animation to kicks in.\n strokeDasharray: '80px, 200px',\n strokeDashoffset: 0 // Add the unit to fix a Edge 16 and below bug.\n}), ({\n ownerState\n}) => ownerState.variant === 'indeterminate' && !ownerState.disableShrink && css(_t4 || (_t4 = _`\n animation: ${0} 1.4s ease-in-out infinite;\n `), circularDashKeyframe));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst CircularProgress = /*#__PURE__*/React.forwardRef(function CircularProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiCircularProgress'\n });\n const {\n className,\n color = 'primary',\n disableShrink = false,\n size = 40,\n style,\n thickness = 3.6,\n value = 0,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n disableShrink,\n size,\n thickness,\n value,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const circleStyle = {};\n const rootStyle = {};\n const rootProps = {};\n if (variant === 'determinate') {\n const circumference = 2 * Math.PI * ((SIZE - thickness) / 2);\n circleStyle.strokeDasharray = circumference.toFixed(3);\n rootProps['aria-valuenow'] = Math.round(value);\n circleStyle.strokeDashoffset = `${((100 - value) / 100 * circumference).toFixed(3)}px`;\n rootStyle.transform = 'rotate(-90deg)';\n }\n return /*#__PURE__*/_jsx(CircularProgressRoot, _extends({\n className: clsx(classes.root, className),\n style: _extends({\n width: size,\n height: size\n }, rootStyle, style),\n ownerState: ownerState,\n ref: ref,\n role: \"progressbar\"\n }, rootProps, other, {\n children: /*#__PURE__*/_jsx(CircularProgressSVG, {\n className: classes.svg,\n ownerState: ownerState,\n viewBox: `${SIZE / 2} ${SIZE / 2} ${SIZE} ${SIZE}`,\n children: /*#__PURE__*/_jsx(CircularProgressCircle, {\n className: classes.circle,\n style: circleStyle,\n ownerState: ownerState,\n cx: SIZE,\n cy: SIZE,\n r: (SIZE - thickness) / 2,\n fill: \"none\",\n strokeWidth: thickness\n })\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? CircularProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the shrink animation is disabled.\n * This only works if variant is `indeterminate`.\n * @default false\n */\n disableShrink: chainPropTypes(PropTypes.bool, props => {\n if (props.disableShrink && props.variant && props.variant !== 'indeterminate') {\n return new Error('MUI: You have provided the `disableShrink` prop ' + 'with a variant other than `indeterminate`. This will have no effect.');\n }\n return null;\n }),\n /**\n * The size of the component.\n * If using a number, the pixel unit is assumed.\n * If using a string, you need to provide the CSS unit, for example '3rem'.\n * @default 40\n */\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The thickness of the circle.\n * @default 3.6\n */\n thickness: PropTypes.number,\n /**\n * The value of the progress indicator for the determinate variant.\n * Value between 0 and 100.\n * @default 0\n */\n value: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['determinate', 'indeterminate'])\n} : void 0;\nexport default CircularProgress;","/**\n * * This file is part of FourthStar Add Wallet Address Model\n *------------------------------------------------------\n *@module Add-Wallet-Address\n *@developer Shiv Pandey\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { walletIcon } from \"constant/Icon\";\nimport { WalletIcon } from \"@web3icons/react\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\nimport { useAddUserWalletAddressMutation } from \"store/slicer/userProfile\";\nconst AddWalletAddress = ({ onClose, walletAdd }) => {\n const [walletAddress, setWalletAddress] = useState(\"\");\n const [labelText, setLabelText] = useState(\"\");\n const [showDropDown, setShowDropDown] = useState(false);\n const [selectedIcon, setSelectedIcon] = useState(null);\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n const [addUserWalletAddress, { isLoading }] =\n useAddUserWalletAddressMutation();\n\n // Close add wallet popup box\n const onCloseConfirmPopup = () => {\n onClose();\n walletAdd(true);\n setLabelText(\"\");\n setSelectedIcon(\"\");\n setWalletAddress(\"\");\n };\n\n const onClickDropDown = (e) => {\n e.stopPropagation();\n setShowDropDown((prev) => !prev);\n };\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n // to close dropdown on outside click\n useEffect(() => {\n const hideDropDown = () => {\n setShowDropDown(false);\n };\n\n document.addEventListener(\"click\", hideDropDown);\n\n return () => document.removeEventListener(\"click\", hideDropDown);\n }, []);\n\n // Add Wallet Address\n const handleSubmit = async (e) => {\n if (!walletAddress) {\n setAlertMessage(\"Wallet Address is required\");\n setSuccessAlert(false);\n return;\n }\n\n let body = { walletId: walletAddress };\n if (labelText) body = { ...body, label: labelText };\n\n if (selectedIcon) body = { ...body, icon: selectedIcon };\n\n await addUserWalletAddress(body)\n .then((res) => {\n // console.log(\"RESULT: \", res);\n if (res?.data?.response?.statusEnum === 1) {\n setAlertMessage(res?.data?.response?.message);\n setSuccessAlert(true);\n onCloseConfirmPopup();\n } else if (res?.data?.response?.statusEnum === 0) {\n setAlertMessage(res?.data?.response?.message);\n setSuccessAlert(false);\n } else {\n setAlertMessage(\"Invalid Wallet Address\");\n setSuccessAlert(false);\n }\n })\n .catch((error) => {\n setAlertMessage(\"Api Error Occured.\");\n setSuccessAlert(false);\n });\n };\n\n return (\n <>\n <div className=\"flex bg-[#00000099] w-[100%] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[99999] outline-none focus:outline-none\">\n Overlay\n </div>\n\n <div className=\"hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[99999] outline-none focus:outline-none max-[768px]:p-[20px]\">\n <div className=\"bg-[#242424] __modal__container w-[38%] max-[768px]:w-[100%] max-[900px]:w-[75%] h-auto max-[1024px]:w-[70%] max-[1365px]:w-[55%] max-[1621px]:w-[45%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"__modal_close_icon_container flex justify-end p-[10px] pb-0\">\n <div\n onClick={onClose}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[40px] h-[40px]\"\n >\n <img\n src={ModalCloseIcon}\n className=\"w-[15px] h-[15px]\"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n\n <div className=\"relative bg-[#242424] rounded-[8px] py-4 px-8 max-[599px]:px-4\">\n <h1 className=\"font-heading text-center font-normal text-[20px] leading-[25px] text-[#FFFFFF]\">\n Add Web3 Wallets\n </h1>\n <p className=\"mt-8 font-body font-normal text-[18px] text-[#939393] text-center leading-[24px]\">\n Connect your Web3 wallets to enable seamless FSTR payments.\n </p>\n\n {/* {openInputForm && ( */}\n <>\n <div className=\"mt-8 flex items-center justify-center\">\n <div className=\"flex w-full px-4 max-[1365px]:px-0 flex-col gap-y-[5px]\">\n <input\n className={`bg-transparent w-full rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none placeholder-[#666262]`}\n type=\"text\"\n name=\"walletAddress\"\n placeholder=\"Enter wallet address\"\n required\n onChange={(e) => setWalletAddress(e.target.value)}\n />\n </div>\n </div>\n\n <div className=\"mt-4 flex px-4 max-[1365px]:px-0 max-[599px]:flex-col max-[599px]:gap-4 items-center justify-between\">\n <div\n className=\" flex w-[30%] max-[599px]:w-full justify-between items-center px-2 py-2 border border-white/50 rounded-[8px] cursor-pointer relative\"\n onClick={onClickDropDown}\n >\n <p className=\"text-[14px] leading-[23.85px] text-[#ffffff]\">\n {selectedIcon || \"Select Icon\"}\n </p>\n <div>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n style={{ color: \"#929292\" }}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.50178 4.16585H17.5018C17.6536 4.16632 17.8025 4.20821 17.9323 4.28699C18.0622 4.36578 18.1681 4.47848 18.2386 4.61297C18.3092 4.74746 18.3417 4.89865 18.3327 5.05025C18.3237 5.20185 18.2736 5.34813 18.1876 5.47335L10.6876 16.3067C10.3768 16.7558 9.62845 16.7558 9.31678 16.3067L1.81678 5.47335C1.72997 5.34839 1.67906 5.20204 1.66958 5.05018C1.66011 4.89833 1.69243 4.74678 1.76304 4.61201C1.83365 4.47723 1.93984 4.36438 2.07008 4.28573C2.20032 4.20707 2.34963 4.16561 2.50178 4.16585Z\"\n fill=\"white\"\n />\n </svg>\n </div>\n {showDropDown && (\n <div className=\"__DROPDOWN_OPTIONS__ absolute w-full top-[104%] left-0 bg-[#2b2724] rounded-[8px] h-[22vh] max-[599px]:h-[30vh] overflow-auto\">\n {walletIcon.map((item, index) => {\n return (\n <div\n key={index}\n className=\"flex items-center hover:bg-[#FBBC5E] hover:bg-opacity-10 hover:text-[#FBBC5E] rounded-[8px] pl-2\"\n onClick={() => setSelectedIcon(item?.icon)}\n >\n <WalletIcon name={item?.icon} variant=\"branded\" />\n <span className=\"py-2 px-2 text-sm leading-[23.85px] font-medium text-white/80 hover:text-[#fbbc5e]\">\n {item?.label}\n </span>\n </div>\n );\n })}\n </div>\n )}\n </div>\n <div className=\"flex w-[67%] max-[599px]:w-full flex-col gap-y-[5px]\">\n <input\n className={`bg-transparent rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none placeholder-[#666262]`}\n type=\"text\"\n name=\"label\"\n placeholder=\"Label (optional) \"\n onChange={(e) => setLabelText(e.target.value)}\n />\n </div>\n </div>\n <div className=\"mt-[30px] mb-[40px] flex justify-center gap-x-[4%]\">\n <button\n onClick={handleSubmit}\n className=\"px-2 w-[20%] flex justify-center py-3 text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] max-[599px]:w-[48%] hover:from-[#DB9149] hover:to-[#DB9149]\"\n disabled={isLoading}\n >\n {isLoading ? (\n <CircularProgress\n style={{\n width: \"20px\",\n height: \"20px\",\n color: \"#535353\",\n }}\n />\n ) : (\n \"Add\"\n )}\n </button>\n </div>\n </>\n </div>\n </div>\n </div>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default AddWalletAddress;\n","/**\n * * This file is part of FourthStar Wallet Address Model\n *------------------------------------------------------\n *@module Wallet-Address-List\n *@developer Shiv Pandey\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { WalletIcon } from \"@web3icons/react\";\nimport defaultWalletIcon from \"assets/icons/default-wallet-icon.png\";\nimport AddWalletAddress from \"./AddWalletAddress\";\n\nconst WalletAddressModel = ({\n addressList,\n onCancel,\n onNext,\n btnText = \"Next\",\n selectedWalletId,\n}) => {\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\n const [selectWalletAddress, setSelectWalletAddress] = useState(\"\");\n\n //Close Add wallet address box\n const onCloseConfirmPopup = () => {\n setShowConfirmPopup(false);\n };\n\n useEffect(() => {\n setSelectWalletAddress(\n selectedWalletId ? selectedWalletId : addressList[0]?.walletId\n );\n \n }, [addressList]);\n\n return (\n <>\n {showConfirmPopup && <AddWalletAddress onClose={onCloseConfirmPopup} />}\n <div className=\"flex bg-[#00000099] w-[100%] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9998] outline-none focus:outline-none\">\n Overlay\n </div>\n\n <div className=\"hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\">\n <div className=\"bg-[#242424] __modal__container w-[38%] max-h-[75vh] max-[768px]:max-h-[80vh] max-[768px]:w-[100%] max-[900px]:w-[75%] h-auto max-[1024px]:w-[70%] max-[1365px]:w-[55%] max-[1621px]:w-[45%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"relative bg-[#242424] rounded-[8px] py-4 px-8 max-[599px]:px-4\">\n <div className=\"mt-8 pb-[20px] flex items-center justify-between max-[599px]:p-[10px] \">\n <p className=\"font-body text-[16px] font-bold text-[#FFFFFF] leading-[24px] max-[599px]:text-[14px]\">\n Select Web3 Wallet\n </p>\n <button\n onClick={() => {\n setShowConfirmPopup(true);\n }}\n className=\"bg-[#F3A151] text-[#000] text-[16px] max-[768px]:text-[14px] font-semibold w-[20%] rounded-[8px] py-[10px] max-[599px]:w-[40%]\"\n >\n Add wallet\n </button>\n </div>\n <div className=\"mt-[10px] mb-[20px] flex flex-col gap-y-[15px] h-[50vh] max-[768px]:h-[60vh] overflow-y-auto pr-3 max-[599px]:pr-[5px] showScrollbar\">\n {addressList.length > 0 ? (\n addressList.map((address, i) => {\n return (\n <div\n key={address?.walletId}\n onClick={() => {\n setSelectWalletAddress(address?.walletId);\n }}\n className=\" bg-[#65656533] flex items-center justify-between rounded-[10px] gap-[20px] p-[15px] max-[599px]:p-[15px] pl-3\"\n >\n {/* <label className=\"inline-flex items-center\"> */}\n <div className=\"flex gap-[20px] max-[599px]:gap-[10px] items-center\">\n <div className=\"min-h-[28px] min-w-[28px] h-[1.7rem] w-[1.7rem] flex items-center justify-center rounded-full border-2 border-white bg-gray-800\">\n {selectWalletAddress?.toLowerCase() == address?.walletId?.toLowerCase() ? (\n <span className=\"inline-block h-[75%] w-[75%] bg-teal-500 rounded-full\"></span>\n ) : (\n <span className=\"inline-block h-[75%] w-[75%] bg-gray-800 rounded-full\"></span>\n )}\n </div>\n\n <span className=\"rounded-full border-2 border-[#535353] bg-black p-1 \">\n {address?.icon ? (\n <WalletIcon\n size=\"45\"\n name={`${address?.icon}`}\n variant=\"branded\"\n />\n ) : (\n <img\n src={defaultWalletIcon}\n className=\"w-[45px] h-[45px]\"\n />\n )}\n </span>\n <div className=\"flex flex-col items-start justify-start\">\n <p className=\"font-semibold text-[16px]\">\n {`${address?.label ? address?.label : \"_\"}`}\n </p>\n <p className=\"text-[12px] text-white/50 break-words break-all\">\n {`${address?.walletId ? address?.walletId : \"\"}`}\n </p>\n </div>\n </div>\n {/* </label> */}\n </div>\n );\n })\n ) : (\n <div className=\"text-white/70 text-lg text-center h-[400px] grid place-content-center\">\n No wallet added\n </div>\n )}\n </div>\n <div className=\"__form_btn_group flex justify-center mt-[40px] mb-[40px] gap-[30px] max-[768px]:my-3\">\n <button\n onClick={onCancel}\n className=\"border text-[16px] max-[768px]:text-[14px] font-medium w-[40%] rounded-[8px] py-[15px]\"\n >\n Cancel\n </button>\n <button\n onClick={() => onNext(selectWalletAddress)}\n className=\"bg-[#F3A151] text-[#000] text-[16px] max-[768px]:text-[14px] font-semibold w-[40%] rounded-[8px]\"\n >\n {btnText}\n </button>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default WalletAddressModel;\n","/**\n *@module Buy-Popup-Iap\n *@developer Shiv Pandey\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport CurrencyStar from \"../../../assets/images/currency-star.png\";\n// import CurrencyStar from \"assets/images/coin_star.png\";\n\nimport CurrencyUsd from \"../../../assets/images/currency-usd.png\";\nimport ComingSoon from \"../comingsoon\";\nimport Loader from \"components/Loader/Loader\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { getFstrDiscount, removeTrailingZeroes } from \"utils\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useGetUserWalletListQuery } from \"store/slicer/userProfile\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport WalletAddressModel from \"components/Modal/Payments/WalletAddressModel\";\nimport AddWalletAddress from \"components/Modal/Payments/AddWalletAddress\";\n\nconst BuyPopupIap = ({\n open,\n onClose,\n canClose,\n onCurrencyChange,\n isCart = true,\n addedToCart = false,\n loading = false,\n actionBtnHandler,\n proceedToCheckoutHandler,\n isSubscription = false,\n priceUsd = 0,\n}) => {\n const navigate = useNavigate();\n const [selectedCurrency, setSelectedCurrency] = useState(\"fstr\");\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const [acknowledged, setAcknowledged] = useState(false);\n\n const [walletAddressList, setWalletAddressList] = useState([]);\n const [showAlert, setShowAlert] = useState(false);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertSuccess, setAlertSuccess] = useState(true);\n const [openWalletAddressPopup, setOpenWalletAddressPopup] = useState(false);\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\n\n // const goToWalletAddress = () => {\n // navigate(\"/wallet\");\n // };\n\n // Open add wallet address model\n const openWalletAddress = () => {\n setShowAlert(false);\n setShowConfirmPopup(true);\n };\n\n // Open add wallet address list model\n const walletAdded = (success) => {\n if (success) {\n setOpenWalletAddressPopup(true);\n }\n };\n\n //Close Add wallet address box\n const onCloseConfirmPopup = () => {\n setShowConfirmPopup(false);\n // setOpenWalletAddressPopup(true);\n };\n\n const onAlertClose = () => {\n setShowAlert(false);\n setAlertMessage(\"\");\n setAlertSuccess(true);\n };\n\n const onWalletPopupClose = () => {\n setOpenWalletAddressPopup(false);\n };\n\n useEffect(() => {\n if (onCurrencyChange && typeof onCurrencyChange == \"function\") {\n onCurrencyChange(selectedCurrency);\n }\n }, [selectedCurrency]);\n\n const addressLists = useGetUserWalletListQuery();\n\n useEffect(() => {\n setWalletAddressList(addressLists?.data?.response?.data?.web3Wallets);\n }, [addressLists]);\n\n const onActionNextBtnClick = (walletId) => {\n // console.log(\"walletId after click next buton\", walletId);\n actionBtnHandler(walletId);\n };\n\n // Todo: Temporary comming soon\n const onActionBtnClick = (e) => {\n console.log(\"ActionBtnClick\", selectedCurrency);\n if (selectedCurrency === \"fstr\") {\n // Get Wallet Addres list\n if (isCart && !addedToCart && !loading) {\n actionBtnHandler(e);\n } else {\n if (addressLists?.data?.response?.data?.web3Wallets.length > 0) {\n setOpenWalletAddressPopup(true);\n setShowAlert(false);\n } else {\n // console.log(\"No wallet address list found\");\n setAlertSuccess(false);\n setAlertMessage(\n \"You haven’t connected any wallet yet. Please add a Web3 wallet to proceed with your FSTR payment. Without a wallet, you won’t be able to complete the purchase.\"\n );\n setShowAlert(true);\n setOpenWalletAddressPopup(false);\n }\n }\n // console.log(\"Get Wallet\", addressLists);\n } else {\n actionBtnHandler(e);\n }\n };\n\n return (\n <>\n {showAlert && !openWalletAddressPopup ? (\n <Alert\n open={showAlert}\n message={alertMessage}\n showCloseIcon={true}\n isSuccess={alertSuccess}\n canClose={false}\n onClose={openWalletAddress}\n onClickCloseIcon={onAlertClose}\n buttonText={\"Add Wallet\"}\n />\n ) : openWalletAddressPopup && !showAlert ? (\n <WalletAddressModel\n addressList={walletAddressList}\n onCancel={onWalletPopupClose}\n onNext={onActionNextBtnClick}\n btnText=\"Next\"\n />\n ) : showConfirmPopup && !showAlert ? (\n <AddWalletAddress\n walletAdd={walletAdded}\n onClose={onCloseConfirmPopup}\n />\n ) : (\n <>\n <ComingSoon\n status={showComingSoonPopup}\n text={`Payment processing will be going live soon`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] px-4 py-4\">\n <div\n className=\"absolute top-0 right-0 cursor-pointer\"\n onClick={onClose}\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"28\"\n height=\"28\"\n rx=\"14\"\n fill=\"white\"\n fillOpacity=\"0.1\"\n />\n <path\n d=\"M19.6875 8.3125L8.3125 19.6875M8.3125 8.3125L19.6875 19.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n <p className=\"text-white text-[20px] leading-[25px] font-heading\">\n Select Your Payment Method\n </p>\n\n {/* {isSubscription && (\n <p className=\"font-normal text-[16px] leading-[28.4px] text-white/70 pt-8 pb-2\">\n Unlock the access exclusive content and early releases curated just\n for you. Subscribe by selecting the options below.\n </p>\n )} */}\n\n <div\n onClick={() => setSelectedCurrency(\"fstr\")}\n className={`__STAR_CONTAINER__ mt-6 p-4 rounded-[8px] flex justify-start items-center gap-2 border ${\n selectedCurrency == \"fstr\"\n ? \"border-[#fbbc5e] bg-[#fbbc5e]/5\"\n : \"border-[#444444]\"\n } cursor-pointer`}\n >\n <img\n className=\"hidden sm:block h-[60px] w-[60px] rounded-full\"\n src={CurrencyStar}\n alt=\"star\"\n />\n <div className=\"w-full flex justify-between items-stretch\">\n <div className=\"__TEXT_CONTAINER__ max-w-[93%] flex flex-col gap-2 justify-evenly\">\n <div className=\"font-body text-[16px] leading-[19.5px] text-white font-semibold\">\n {isSubscription &&\n `Subscribe @${removeTrailingZeroes(\n convertUsdToFstrPrice(priceUsd)\n )} FSTR `}\n {isSubscription && (\n <span className=\"text-white/50 text-[12px]\">\n (\n {removeTrailingZeroes(\n convertUsdToMarketFstrUsd(priceUsd)\n )}{\" \"}\n USD)\n </span>\n )}\n {isSubscription && ` / Month`}\n\n {!isSubscription &&\n `Pay ${removeTrailingZeroes(\n convertUsdToFstrPrice(priceUsd)\n )} FSTR `}\n {!isSubscription && (\n <span className=\"text-white/50 text-[12px]\">\n (\n {removeTrailingZeroes(\n convertUsdToMarketFstrUsd(priceUsd)\n )}{\" \"}\n USD)\n </span>\n )}\n </div>\n <p className=\"text-[#FFDF6E] font-semibold text-[14px] font-body leading-[17.07px]\">\n (Get {getFstrDiscount()}% Discount)\n </p>\n <p className=\"text-white/60 text-[16px] leading-[19.5px]\">\n Tokens will be deducted from your wallet upon selection.\n </p>\n </div>\n <div\n className={`__VIRTUAL_SELECT__ self-center shrink-0 !h-[24px] !w-[24px] rounded-full border-[2px] ${\n selectedCurrency == \"fstr\"\n ? \"border-[#fbbc5e]\"\n : \"border-[#7a7a7a]\"\n }`}\n >\n <div\n className={`h-full w-full rounded-full border-[2px] border-[#252525] ${\n selectedCurrency == \"fstr\" ? \"bg-[#fbbc5e]\" : \"\"\n }`}\n ></div>\n </div>\n </div>\n </div>\n <div\n onClick={() => setSelectedCurrency(\"usd\")}\n className={`__USD_CONTAINER__ mt-4 p-4 rounded-[8px] flex justify-start gap-2 border ${\n selectedCurrency == \"usd\"\n ? \"border-[#fbbc5e] bg-[#fbbc5e]/5\"\n : \"border-[#444444]\"\n } cursor-pointer`}\n >\n <img\n className=\"hidden sm:block h-[60px] w-[60px] rounded-full\"\n src={CurrencyUsd}\n alt=\"usd\"\n />\n <div className=\"w-full flex justify-between items-stretch\">\n <div className=\"__TEXT_CONTAINER__ max-w-[93%] flex flex-col gap-2 justify-evenly\">\n <div className=\"font-body text-[16px] leading-[19.5px] text-white font-semibold\">\n {isSubscription && `Subscribe @${priceUsd} USD / Month`}\n\n {!isSubscription && `Pay @${priceUsd} USD`}\n </div>\n <p className=\"text-white/60 text-[16px] leading-[19.5px]\">\n You will be directed to the payment gateway.\n </p>\n </div>\n <div\n className={`__VIRTUAL_SELECT__ self-center shrink-0 !h-[24px] !w-[24px] rounded-full border-[2px] ${\n selectedCurrency == \"usd\"\n ? \"border-[#fbbc5e]\"\n : \"border-[#7a7a7a]\"\n }`}\n >\n <div\n className={`h-full w-full rounded-full border-[2px] border-[#252525] ${\n selectedCurrency == \"usd\" ? \"bg-[#fbbc5e]\" : \"\"\n }`}\n ></div>\n </div>\n </div>\n </div>\n {/* {isCart && !addedToCart && !loading && ( */}\n <div className=\"mt-8\">\n <input\n type=\"checkbox\"\n className=\"form-checkbox h-[18px] w-[18px] accent-[#FBBC5E] border rounded-md\"\n checked={acknowledged}\n onChange={(e) => setAcknowledged(e.target.checked)}\n />\n <span className=\"text-white/60 text-[16px] leading-[19.5px] mt-[30px]\">\n {\" \"}\n I agree to{\" \"}\n <a\n href=\"/refund-cancellation-policy\"\n target=\"_blank\"\n className=\"[text-decoration:underline] text-[#FBBC5E]\"\n >\n Content Refund Policy.\n </a>\n </span>\n </div>\n {/* )} */}\n\n <button\n className={`mt-7 w-full font-bold rounded-lg btn-gradient text-black py-3 px-3 flex justify-center items-center disabled:bg-[#FBBC5E80_!important] disabled:!text-white`}\n type=\"button\"\n onClick={onActionBtnClick}\n // disabled={addedToCart || loading || (isCart && !acknowledged)}\n disabled={addedToCart || loading || !acknowledged}\n >\n {isCart && addedToCart && !loading && (\n <svg\n className=\"mr-2\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.3832 6.61604L20.3832 6.61598C20.1488 6.38164 19.8309 6.25 19.4994 6.25C19.168 6.25 18.8501 6.38164 18.6157 6.61598L18.6157 6.61601L9.99943 15.2322L6.38321 11.616L6.38323 11.616L6.38011 11.613C6.14436 11.3853 5.8286 11.2593 5.50086 11.2621C5.17311 11.265 4.8596 11.3964 4.62784 11.6282C4.39608 11.86 4.26461 12.1735 4.26177 12.5012C4.25892 12.829 4.38491 13.1447 4.61261 13.3805L4.61258 13.3805L4.61565 13.3836L9.11565 17.8836L9.11568 17.8836C9.35009 18.1179 9.66798 18.2496 9.99943 18.2496C10.3309 18.2496 10.6488 18.1179 10.8832 17.8836L10.8832 17.8836L20.3832 8.38356L20.3832 8.38354C20.6176 8.14913 20.7492 7.83124 20.7492 7.49979C20.7492 7.16833 20.6176 6.85045 20.3832 6.61604Z\"\n fill=\"white\"\n stroke=\"white\"\n strokeWidth=\"0.5\"\n />\n </svg>\n )}\n {isCart && addedToCart && !loading && \"Added to Cart\"}\n {isCart && !addedToCart && !loading && \"Add to Cart\"}\n {!isCart && !loading && !isSubscription && \"Instant Buy\"}\n {!isCart && !loading && isSubscription && \"Confirm\"}\n {loading && (\n <svg\n aria-hidden=\"true\"\n className=\" inline w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-[#e2931d]\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n )}\n </button>\n\n {isCart && (\n <button\n className=\"mt-2 w-full font-semibold text-[16px] leading-[26.24px] rounded-lg text-[#fbbc5e] filter hover:brightness-75 py-3 px-3 flex justify-center items-center\"\n onClick={() => navigate(\"/cart\")}\n >\n Proceed to cart!\n </button>\n )}\n </div>\n </PopupWrapper>\n </>\n )}\n </>\n );\n};\n\nexport default BuyPopupIap;\n","import React from \"react\";\nimport ReportFlagIcon from \"assets/images/flag_report.png\";\n\nconst Flag = ({ onClick }) => {\n return (\n <div\n onClick={onClick}\n className=\"__report__flag__section\n hover:cursor-pointer \n hover:border\n hover:border-[#FBBC5E]\n flex \n flex-col \n justify-center \n items-center \n rounded-[50%] \n w-[30px] \n h-[30px] \n bg-[#FFFFFF1A]\n \"\n >\n <img\n src={ReportFlagIcon}\n className=\"w-[15px] h-[15px]\"\n alt=\"__report_flag\"\n />\n </div>\n );\n};\n\nexport default Flag;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Api-Calls-For-Admin\n *@developer Shubham K\n */\n\nexport const AdminSlice = createApi({\n reducerPath: \"Admin\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n postReportContent: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REPORT_CONTENT,\n method: \"POST\",\n body: payload,\n }),\n }),\n postReportChannel: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REPORT_CHANNEL,\n method: \"POST\",\n body: payload,\n }),\n }),\n }),\n});\n\nexport const { usePostReportContentMutation, usePostReportChannelMutation } =\n AdminSlice;\n","import React, { useState, useRef, useEffect } from \"react\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\nimport DownArrowIcon from \"assets/images/down-scroll-arrow.png\";\nimport SuccessTickIcon from \"assets/images/check_icon.png\";\nimport WarningTickIcon from \"assets/images/mdi_tick.png\";\nimport ErrorCrossIcon from \"assets/images/alert_icon.png\";\nimport styles from \"./AssetsReportModal.module.css\";\nimport { useSelector } from \"react-redux\";\nimport {\n usePostReportContentMutation,\n usePostReportChannelMutation,\n} from \"store/slicer/Admin\";\nimport PopupWrapper from \"components/popup/PopupWrapper\";\n\nconst ReportListData = [\n {\n id: \"report-1\",\n reportName: \"Inappropriate Content\",\n },\n {\n id: \"report-2\",\n reportName: \"Hateful or Abusive Content\",\n },\n {\n id: \"report-3\",\n reportName: \"Harassments or Bullying\",\n },\n {\n id: \"report-4\",\n reportName: \"Threats of harm or encouragement of self harm\",\n },\n {\n id: \"report-5\",\n reportName: \"Promotion or glorification of real life violence\",\n },\n {\n id: \"report-6\",\n reportName: \"Infringes on the rights of another\",\n },\n {\n id: \"report-7\",\n reportName: \"Infringes on my rights\",\n },\n {\n id: \"report-8\",\n reportName: \"Spam\",\n },\n];\n\nconst AssetsReportModal = ({ handleModalStatus, idToReport, contentType }) => {\n const [isReportSuccess, setReportSuccess] = useState(false);\n const [isReportedAlready, setReportedAlready] = useState(false);\n const [isReportError, setReportError] = useState(false);\n const [isSubmitActive, setSubmitActive] = useState(false);\n const [reportType, setReportType] = useState(\"\");\n const textRef = useRef();\n // const firstNameRef = useRef();\n // const lastNameRef = useRef();\n // const emailRef = useRef();\n\n let userInfo = localStorage.getItem(\"userInfo\");\n // console.log(\"user info\", userInfo);\n userInfo = JSON.parse(userInfo);\n let userId = userInfo?.id;\n\n const [reportContentTrigger, reportContentInfo] =\n usePostReportContentMutation();\n const [reportChannelTrigger, reportChannelInfo] =\n usePostReportChannelMutation();\n const {\n data: reportContentData,\n isLoading: isReportContentLoading,\n isSuccess: isReportContentSuccess,\n isError: isReportContentError,\n } = reportContentInfo;\n const {\n data: reportChannelData,\n isLoading: isReportChannelLoading,\n isSuccess: isReportChannelSuccess,\n isError: isReportChannelError,\n } = reportChannelInfo;\n const handleRadioChange = (e) => {\n setReportType(e.target.value);\n setSubmitActive(true);\n };\n\n const onSubmitHandler = (e) => {\n e.preventDefault();\n // setReportSuccess(true);\n setReportedAlready(false);\n setReportSuccess(false);\n setReportError(false);\n if (contentType?.includes(\"channel\") || contentType?.includes(\"creator\")) {\n // call channel report here\n const payload = {\n channelId: idToReport,\n reportType,\n reportById: userId,\n userComment: textRef?.current?.value || \"\",\n reporterEntityType: localStorage.getItem(\"userInfo\") ? \"User\" : \"Guest\",\n };\n\n reportChannelTrigger(payload);\n } else {\n // call content report here\n const payload = {\n contentId: idToReport,\n contentType: contentType,\n reportType,\n reportById: userId,\n userComment: textRef?.current?.value || \"\",\n reporterEntityType: localStorage.getItem(\"userInfo\") ? \"User\" : \"Guest\",\n };\n\n reportContentTrigger(payload);\n }\n };\n useEffect(() => {\n console.log(\"statusChanged\", isReportContentSuccess, isReportContentError);\n if (\n isReportContentSuccess &&\n reportContentData &&\n reportContentData?.response?.statusEnum === 1\n ) {\n console.log(reportContentData);\n setReportSuccess(true);\n } else if (\n isReportContentSuccess &&\n reportContentData?.response?.statusEnum === 0\n ) {\n setReportedAlready(true);\n setReportSuccess(false);\n setReportError(false);\n } else if (isReportContentError) {\n setReportSuccess(false);\n setReportedAlready(false);\n setReportError(true);\n }\n }, [reportContentData, isReportContentError, isReportContentSuccess]);\n\n useEffect(() => {\n console.log(\"statusChanged\", isReportChannelSuccess, isReportChannelError);\n if (\n isReportChannelSuccess &&\n reportChannelData &&\n reportChannelData?.response?.statusEnum === 1\n ) {\n console.log(reportChannelData);\n setReportSuccess(true);\n } else if (\n isReportChannelSuccess &&\n reportChannelData?.response?.statusEnum === 0\n ) {\n setReportedAlready(true);\n setReportSuccess(false);\n setReportError(false);\n } else if (isReportChannelError) {\n setReportSuccess(false);\n setReportedAlready(false);\n setReportError(true);\n }\n }, [reportChannelData, isReportChannelError, isReportChannelSuccess]);\n return (\n <>\n <PopupWrapper open={()=>handleModalStatus} onClose={()=>handleModalStatus} canClose={true}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4 \">\n <div\n className=\"absolute top-1 right-1 bg-white/10 w-[28px] h-[28px] rounded-full grid place-content-center cursor-pointer\"\n onClick={handleModalStatus}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.6875 1.3125L1.3125 12.6875M1.3125 1.3125L12.6875 12.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n {isReportError && (\n <div className=\"__reportFlag__success__section flex flex-col justify-center items-center\">\n <img\n src={ErrorCrossIcon}\n alt=\"success__flag\"\n className=\"w-[75px] h-[75px] max-[768px]:w-[55px] max-[768px]:h-[55px]\"\n />\n <h4 className=\"text-[16px] max-[768px]:text-[13px] font-heading pt-[40px] text-center\">\n Failed to send your report.\n </h4>\n <span className=\"text-[16px] max-[768px]:text-[13px] font-normal font-body text-center pt-[27px]\">\n Please retry after some time or raise a ticket.\n </span>\n <button\n onClick={handleModalStatus}\n className=\"mt-[50px] rounded-[8px] py-[10px] px-[18px] bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] text-[#000] text-[16px] font-semibold\"\n >\n Go Back\n </button>\n </div>\n )}\n {isReportedAlready && (\n <div className=\"__reportFlag__success__section flex flex-col mt-[55px] justify-center items-center\">\n <img\n src={WarningTickIcon}\n alt=\"success__flag\"\n className=\"w-[75px] h-[75px] max-[768px]:w-[55px] max-[768px]:h-[55px]\"\n />\n <h4 className=\"text-[16px] max-[768px]:text-[13px] font-heading pt-[40px] text-center\">\n Thankyou, you have already reported for this content.\n </h4>\n <span className=\"text-[16px] max-[768px]:text-[13px] font-normal font-body text-center pt-[27px]\">\n Report already submitted. Thank you for helping us maintain a\n safe environment.\n </span>\n <button\n onClick={handleModalStatus}\n className=\"mt-[50px] rounded-[8px] py-[10px] px-[18px] bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] text-[#000] text-[16px] font-semibold\"\n >\n Go Back\n </button>\n </div>\n )}\n {!isReportError &&\n !isReportedAlready &&\n (isReportSuccess ? (\n <div className=\"__reportFlag__success__section flex flex-col justify-center items-center\">\n <img\n src={SuccessTickIcon}\n alt=\"success__flag\"\n className=\"w-[75px] h-[75px] max-[768px]:w-[55px] max-[768px]:h-[55px]\"\n />\n <h4 className=\"text-[16px] max-[768px]:text-[13px] font-heading pt-[40px] text-center\">\n Thankyou, We received your report.\n </h4>\n <span className=\"text-[16px] max-[768px]:text-[13px] font-normal font-body text-center pt-[27px]\">\n Report submitted. Thank you for helping us maintain a safe\n environment.\n </span>\n <button\n onClick={handleModalStatus}\n className=\"mt-[50px] rounded-[8px] py-[10px] px-[18px] bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] text-[#000] text-[16px] font-semibold\"\n >\n Go Back\n </button>\n </div>\n ) : (\n <>\n <div className=\"__modal_close_icon_container flex justify-end \">\n {/* <div onClick={handleModalStatus} className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[20px] h-[20px]\">\n <img \n src={ModalCloseIcon}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div> */}\n </div>\n <div\n className={`px-4 max-h-[100%]`}\n >\n <form onSubmit={onSubmitHandler}>\n <div className=\"__modal__heading__main\">\n <h4 className=\"text-[16px] font-heading\">Report Asset</h4>\n </div>\n {!localStorage.getItem(\"userInfo\") && (\n <div className=\"__USERINFO_CONT__ mt-[28px]\">\n <div className=\"flex justify-between\">\n <div className=\"w-[48%] flex flex-col gap-2\">\n <label\n htmlFor=\"First Name\"\n className=\"text-[14px] font-semibold\"\n >\n First Name\n </label>\n <input\n className=\"py-2 px-[6px] bg-transparent border border-[#535353] rounded-[4px] placeholder:text-[12px] placeholder:text-white/20\"\n placeholder=\"John\"\n type=\"text\"\n name=\"First Name\"\n id=\"First Name\"\n />\n </div>\n <div className=\"w-[48%] flex flex-col gap-2\">\n <label\n htmlFor=\"Last Name\"\n className=\"text-[14px] font-semibold\"\n >\n Last Name\n </label>\n <input\n className=\"py-2 px-[6px] bg-transparent border border-[#535353] rounded-[4px] placeholder:text-[12px] placeholder:text-white/20\"\n placeholder=\"Doe\"\n type=\"text\"\n name=\"Last Name\"\n id=\"Last Name\"\n />\n </div>\n </div>\n <div className=\"mt-2 flex flex-col gap-2\">\n <label\n htmlFor=\"Email ID\"\n className=\"text-[14px] font-semibold\"\n >\n Email ID\n </label>\n <input\n className=\"py-2 px-[6px] bg-transparent border border-[#535353] rounded-[4px] placeholder:text-[12px] placeholder:text-white/20\"\n placeholder=\"johndoe123@gmail.com\"\n type=\"text\"\n name=\"Email ID\"\n id=\"Email ID\"\n />\n </div>\n </div>\n )}\n <h6 className=\"text-[14px] font-body font-medium py-[17px]\">\n Select Report Type\n </h6>\n <div className=\"__radio__list__report__section\">\n {ReportListData?.map((reportItem, ind) => {\n return (\n <div\n className={`${\n ind === 0 ? \"\" : \"pt-[19px] max-[768px]:pt-[12px]\"\n } flex gap-[8px]`}\n key={ind + reportItem?.id}\n >\n <input\n key={ind + reportItem?.id}\n type=\"radio\"\n id={`report${ind}`}\n name=\"report\"\n onChange={handleRadioChange}\n value={reportItem.reportName}\n required\n />\n <label\n className=\"text-[14px] max-[768px]:text-[11px] font-body font-normal\"\n htmlFor={`report${ind}`}\n >\n {reportItem?.reportName}\n </label>\n <br />\n </div>\n );\n })}\n </div>\n <div className=\"__extra__information__section pt-[34px]\">\n <h5 className=\"text-[14px] font-body font-medium\">\n Provide Additional Information\n </h5>\n <textarea\n ref={textRef}\n placeholder=\"Write specific details about the issue.\"\n rows={8}\n className=\"w-full px-6 py-[7px] min-h-[150px] font-normal rounded-[4px] mt-[17px] bg-transparent border border-[#535353] placeholder:text-[14px] placeholder:text-[#FFFFFF33]\"\n ></textarea>\n </div>\n\n <div className=\"flex justify-between gap-[28px] py-[42px] max-[768px]:py-[30px] max-[768px]:text-[12px] max-[768px]:[&>button]:py-[6px] [&>button]:w-[50%] [&>button]:rounded-[8px] [&>button]:py-[10px] [&>button]:font-semibold\">\n <button\n onClick={handleModalStatus}\n className=\"__cancel__btn border\"\n >\n Cancel\n </button>\n <button\n disabled={isSubmitActive ? \"\" : \"disabled\"}\n // onClick={() => setReportSuccess(!isReportSuccess)}\n className={`__submitreport__btn ${\n isSubmitActive\n ? \"bg-gradient-to-r text-[#000] from-[#FBBC5E] to-[#F3A151]\"\n : \"bg-[#7A7A7A] text-[#fff]\"\n } `}\n >\n Submit Report\n </button>\n </div>\n </form>\n </div>\n {/* <div className=\"__down__arrow__section flex flex-col justify-center items-center\">\n <img\n src={DownArrowIcon}\n alt=\"down__arrow__icon\"\n className=\"w-[50px] h-[20px]\"\n />\n <span className=\"text-[12px]\">Scroll down</span>\n </div> */}\n </>\n ))}\n </div>\n </PopupWrapper>\n </>\n );\n};\n\nexport default AssetsReportModal;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Cart-Reducer-functions\n *@developer Aditya P\n */\n\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\nexport const CartSlice = createApi({\n reducerPath: \"cart\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n GetCartItemByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_CART_ITEMS,\n method: \"GET\",\n }),\n }),\n GetStarCartItemByToken: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_STAR_CART_ITEMS,\n method: \"GET\",\n }),\n }),\n UpdateCartItembyToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.CREATE_CART_ITEMS,\n method: \"POST\",\n body: {\n itemCategory: payload.category,\n itemId: payload.itemId,\n currencyType: payload.currencyType,\n itemThemeId: payload?.itemThemeId || null,\n },\n }),\n }),\n DeleteCartItemByToken: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REMOVE_CART_ITEM,\n method: \"DELETE\",\n body: {\n cartItemId: payload.id,\n },\n }),\n }),\n GetCartItemsCount: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_CART_ITEMS_COUNT,\n method: \"GET\",\n }),\n extraOptions: { showError: false },\n }),\n }),\n});\n\nexport const {\n useGetCartItemByTokenQuery,\n useLazyGetCartItemByTokenQuery,\n useGetCartItemsCountQuery,\n useGetStarCartItemByTokenQuery,\n useUpdateCartItembyTokenMutation,\n useDeleteCartItemByTokenMutation,\n} = CartSlice;\n","import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\nimport { BASE_URL, EndpointsSlug } from 'constant/api/Endpoints'\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-Assets-Reducer-functions\n *@developer Shubham K\n */\n\n\n// Handling State function or logics to check and add user assets status\n// Replace the CreateSlice method with RTK function - createAPI for storing api data directly into slicer\nexport const UserAssets = createApi({\n reducerPath: 'UserAssets',\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem('accessToken') || \"\";\n headers.set('Content-type', 'application/json; charset=UTF-8')\n if (token) {\n headers.set('Authorization', `Bearer ${token}`)\n \n }\n return headers\n },\n }),\n endpoints: (builder) => ({\n PostCheckUserAssets: builder.mutation({\n query: (payload) => ({\n url: BASE_URL + EndpointsSlug.POST_CHECK_USER_ASSETS_INFO,\n method: 'POST',\n body: payload, \n })\n }),\n PostAddFreeAssetForUser: builder.mutation({\n query: (payload) => ({\n url: BASE_URL + EndpointsSlug.POST_CHECK_USER_ADD_FREE_ASSET,\n method: 'POST',\n body: payload, \n })\n }),\n CheckUserSubscriptions: builder.mutation({\n query: (payload) => ({\n url: BASE_URL + EndpointsSlug.CHECK_USER_SUBSCRIPTION,\n method: 'POST',\n body: payload, \n })\n }),\n })\n})\n\n\nexport const {\n usePostCheckUserAssetsMutation,\n usePostAddFreeAssetForUserMutation,\n useCheckUserSubscriptionsMutation\n} = UserAssets","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport Loader from \"components/Loader/Loader\";\n\nimport BuyCards from \"components/buy-cards\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport Flag from \"components/report/Flag\";\n\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { useGetSingleCompanionQuery } from \"store/slicer/Marketplace\";\nimport {\n useLazyGetCartItemByTokenQuery,\n useUpdateCartItembyTokenMutation,\n} from \"store/slicer/Cart\";\nimport {\n usePostCheckUserAssetsMutation,\n usePostAddFreeAssetForUserMutation,\n} from \"store/slicer/userAssets\";\nimport DOMPurify from \"dompurify\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\nabout an apartment, including its image, price, description, themes, gaming and streaming options,\nand suggested apartments. It also includes a dialog box that allows the user to preview the\napartment in a 3D model. The component uses various React hooks and components, such as useState,\nuseNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\ndesired UI and functionality. */\n\nconst Index = () => {\n const navigate = useNavigate();\n const params = useParams();\n const { categorytype, item } = params;\n const { data, isLoading, refetch } = useGetSingleCompanionQuery(item);\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n\n const [isreportModal, setReportModal] = useState(false);\n const [companionData, setCompanionData] = useState({});\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const SuggestedItem = [\n {\n id: 0,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 1,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 2,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 3,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 4,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 5,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 6,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 7,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n ];\n\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n // const handleClick = (e) => {\n // if (e === \"MyAsset\") {\n // // setContentType(\"MyAsset\");\n // }\n // if (e === \"Premium\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // if (e === \"BuyNow\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // };\n useEffect(() => {\n if (data && data.response.statusEnum === 1) {\n setCompanionData(data.response.data);\n } else if (data) {\n navigate(\"/marketplace/companions\");\n }\n }, [data]);\n const handleClick = async (e) => {\n if (e === \"MyAsset\") {\n let uInfo = localStorage.getItem(\"userInfo\");\n if (!uInfo) return;\n\n uInfo = JSON.parse(uInfo);\n\n const uId = uInfo.id;\n\n if (!uId) return;\n\n const res = await addAssetToUser({\n content_id: companionData._id,\n content_type: \"companion\",\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n setIsAssetOwned(true);\n setJustAddedToAssets(true);\n }\n }\n if (e === \"Premium\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n };\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [isAddedToCart, setIsAddedToCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n const [isAssetOwned, setIsAssetOwned] = useState(false);\n const [justAddedToAssets, setJustAddedToAssets] = useState(false);\n\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n const [addAssetToUser, addAssetToUserInfo] =\n usePostAddFreeAssetForUserMutation();\n\n useEffect(() => {\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: data?.response?.data?._id,\n isIap: true,\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n if (isOwned) {\n setIsAssetOwned(true);\n }\n }\n } catch (e) {}\n }\n if (\n localStorage.getItem(\"accessToken\") &&\n data?.response?.statusEnum == 1\n ) {\n checkIfOwnedAsset();\n }\n }, [data]);\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap(walletId);\n }\n }\n };\n\n const addIapToCart = () => {\n AddToCartQuery({\n category: \"companion\",\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency == \"usd\" ? \"usd\" : \"fstr\",\n })\n .then((res) => {\n console.log(res.data);\n if (res?.data?.response?.statusEnum == 1) {\n setIsAddedToCart(true);\n refetchCartItems();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const checkoutIap = (walletId) => {\n if (popupCurrency == \"usd\") {\n navigate(\n `/checkout?productType=companion&productName=${data?.response?.data?.assetName}&amount=${data?.response?.data?.priceFiat}&productId=${data?.response?.data?._id}`\n );\n } else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?productType=companion&productName=${\n data?.response?.data?.assetName\n }&amount=${convertActualUsdToFstrPrice(\n data?.response?.data?.priceFiat\n )}&productId=${data?.response?.data?._id}&walletId=${walletId}`\n );\n }\n };\n\n // fetching all cart items\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch: refetchCartItems,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n\n // this effect will check if this item is already added to user's cart\n useEffect(() => {\n if (isFetchCartSuccess && GetCartItemQuery?.response?.statusEnum == 1) {\n const cartList = GetCartItemQuery?.response?.data?.map(\n (item) => item?.itemId\n );\n if (cartList?.includes(data?.response?.data?._id)) {\n setIsAddedToCart(true);\n }\n }\n }, [getCartItemLoader, data]);\n\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetCartItemByToken();\n }, []);\n\n let buyCardType = \"Free\";\n if (companionData?.priceFiat && companionData?.priceFiat != 0) {\n buyCardType = \"BuyNow\";\n }\n if (isAddedToCart) {\n buyCardType = \"AddToCart\";\n }\n if (isAssetOwned) {\n buyCardType = \"MyAsset\";\n }\n\n return (\n <div className=\"relative px-4\">\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={isAddedToCart}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkoutIap}\n priceUsd={companionData?.priceFiat}\n />\n )}\n <div className=\"__back__container__section flex justify-between pb-[12px]\">\n <button\n onClick={() => navigate(\"/marketplace/companions/\")}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n {/* <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n report this assets\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div> */}\n </div>\n <div className=\"__details__data__container ml-3 mt-[20px] relative z-[10]\">\n {isLoading ? (\n <div className=\"text-center pt-[10%]\">\n <Loader />\n </div>\n ) : data?.response?.statusEnum === 1 &&\n data?.response?.data?.length === 0 ? (\n \"No data\"\n ) : (\n <div className=\"__detail__page__container flex gap-[50px] max-[678px]:flex-col max-[678px]:gap-[30px]\">\n {/* <div className=\"__image__section bg-[#242424] w-[100%] h-[678px] max-[678px]:h-[300px] rounded-[20px] object-fit contents\">\n <img\n className=\"object-cover rounded-[20px]\"\n src={companionData?.largeThumbnail?.url}\n alt={companionData?.largeThumbnail?.fileName}\n />\n </div> */}\n <div className=\"__image__section w-[100%] h-full\">\n <Zoom>\n <img\n src={companionData?.largeThumbnail?.url}\n alt={companionData?.largeThumbnail?.fileName}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.style.display = \"none\";\n }}\n className=\" h-auto w-full object-contain rounded-[20px]\"\n />\n </Zoom>\n </div>\n <div className=\"__item__content__section mt-[10px] flex flex-col max-[678px]:mt-[5px] w-[100%]\">\n <h4 className=\"text-[24px] font-heading max-[678px]:text-[18px]\">\n {companionData?.assetName || \"\"}\n </h4>\n <div className=\"__category__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff] capitalize\">\n {categorytype?.toLowerCase()}\n </span>\n </div>\n\n <div className=\"__description__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Description:\n </h6>\n {data &&\n companionData?.longDescription?.map((htmlString, index) => (\n <div\n key={index}\n className=\"inner-html-headings text-white/90 max-md:[&>p]:text-[13px] [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n style={{\n wordBreak: \"break-word\",\n }}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(htmlString),\n }}\n />\n ))}\n </div>\n {/* <div className=\"__tag_line pt-[20px]\">\n <span className=\"font-body px-[10px] py-[8px] rounded-3xl text-[15px] max-[668px]:text-[13px] bg-white/[0.10]\">\n {categorytype?.split(\"-\").join(\" \")}\n </span>\n </div> */}\n\n <div className=\"__buy__main pt-[28px] pr-[40px] max-[768px]:pr-0\">\n <div className=\"flex-1 w-full lg:mt-0 min-h-180\">\n {userAssetInfo?.isLoading || addAssetToUserInfo?.isLoading ? (\n <div className=\"w-full h-[150px] grid place-content-center\">\n <Loader />\n </div>\n ) : (\n <>\n {\" \"}\n <BuyCards\n type={buyCardType}\n justAdded={justAddedToAssets}\n card=\"product\"\n title=\"Buy this Companion\"\n price={`$ ${companionData?.priceFiat}`}\n handleData={(e) => {\n handleClick(\n e,\n companionData?.category,\n companionData?._id\n );\n }}\n onBuyHandle={() => {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n }}\n />\n <ComingSoon\n status={showComingSoonPopup}\n text={`In-app purchases are on the way, and you'll soon have the opportunity to own exciting assets. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n )}\n {/* {contentType == \"Premium\" && <> <UnlockPremium status={open} text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>${price}/Month ( $288.00/year )</b>.`} heading=\"Unlock the Premium\" handleData={() => setOpen(false)}\n handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(\"You unlocked this content by subscribing to <b style='color:white'>Fourth Star</b> channel\")}}\n />\n </>} */}\n\n {/* {contentType == \"BuyNow\" && <Popup status={open} text=\"Buy this content and get lifetime access to it.\" heading=\"Buy Content\" button={`Buy now @$${price}`} handleData={() => setOpen(false)} handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(`Purchased access on <b style=\"color:white\">${dateFormat(new Date(), \"d mmmm yyyy\")}</b>`)}} />} */}\n </div>\n </div>\n {/* <a\n href=\"#\"\n className=\"text-[16px] font-body text-[#FFFFFF80] hover:underline underline-offset-4 pt-[44px]\"\n >\n Buy this Companion\n </a>\n <div className=\"__price__section pt-[30px] flex items-center gap-[10px]\">\n <img\n src={CoinIcon}\n alt=\"__coin__icon\"\n className=\"w-[32px] h-[32px] max-[668px]:w-[28px] max-[668px]:h-[28px]\"\n />\n <span className=\"text-[16px] text-[#FFFFFF80] font-body\">\n $99.00\n </span>\n </div>\n <span className=\"text-[#F3A151] text-[18px] font-body pt-[24px] max-[668px]:text-[15px]\">\n Coming Soon\n </span> */}\n </div>\n </div>\n )}\n\n {/* Content Divider Section */}\n <div className=\"__content__divider py-[120px] max-[668px]:py-[80px]\">\n {/* <hr className=\"border-[0.1px] border-[#5A5A5A80]\" /> */}\n </div>\n\n {/* Suggested Item Slider Section */}\n\n {/* <div className=\"__suggested__items__container\">\n <SliderHeader title={`${`Suggested Companion`}`} />\n <div className=\"__pets__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div className=\"__slider_card_container flex gap-[20px] overflow-x-scroll py-[10px]\">\n {SuggestedItem.map((data) => {\n return (\n <SliderCards\n item={data}\n id={\"companion\"}\n baseRoute={\"marketplace/companions\"}\n />\n );\n })}\n </div>\n </div>\n </div> */}\n </div>\n\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n idToReport={data?.response?.data?._id}\n contentType={\"companion\"}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default Index;\n","import React, { useState } from \"react\";\nimport { Zoom } from \"react-reveal\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport Slider from \"react-slick\";\nimport { useGetListMarketplaceAvatarQuery } from \"store/slicer/Marketplace\";\nimport Loader from \"components/Loader/Loader\";\nimport ImageConstant from \"constant/imageConstant\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\nconst sliderSettings = {\n slidesToShow: 4.5,\n slidesToScroll: 1,\n dots: false,\n arrows: true,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: false,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1535,\n settings: {\n slidesToShow: 4,\n },\n },\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 3.5,\n },\n },\n {\n breakpoint: 1024,\n settings: {\n slidesToShow: 3,\n },\n },\n {\n breakpoint: 820,\n settings: {\n slidesToShow: 2.2,\n },\n },\n {\n breakpoint: 670,\n settings: {\n slidesToShow: 1.5,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1.2,\n },\n },\n {\n breakpoint: 360,\n settings: {\n slidesToShow: 1.1,\n },\n },\n ],\n};\n\nconst Index = () => {\n let {\n data: dataHumanoid,\n isFetching: isFetchingHumanoid,\n isSuccess: isSuccessHumanoid,\n isError: isErrorHumanoid,\n } = useGetListMarketplaceAvatarQuery({\n searchQuery: \"\",\n species: \"humanoid\",\n page: 1,\n limit: 12,\n });\n let {\n data: dataAlien,\n isFetching: isFetchingAlien,\n isSuccess: isSuccessAlien,\n isError: isErrorAlien,\n } = useGetListMarketplaceAvatarQuery({\n searchQuery: \"\",\n species: \"alien\",\n page: 1,\n limit: 12,\n });\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n\n if (isFetchingHumanoid || isFetchingAlien) {\n return (\n <div className=\"h-screen w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n if (\n isErrorAlien ||\n dataAlien?.response?.statusEnum != 1 ||\n isErrorHumanoid ||\n dataHumanoid?.response?.statusEnum != 1\n ) {\n return (\n <div className=\"h-screen w-full text-white/70 grid place-content-center\">\n <p>Something went wrong</p>\n </div>\n );\n }\n let filteredDataAlien = [];\n if (isSuccessAlien && dataAlien?.response?.statusEnum == 1) {\n dataAlien = dataAlien.response.data.data;\n filteredDataAlien = dataAlien.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n\n let filteredDataHumanoid = [];\n if (isSuccessHumanoid && dataHumanoid?.response?.statusEnum == 1) {\n dataHumanoid = dataHumanoid.response.data.data;\n filteredDataHumanoid = dataHumanoid.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n }\n // let humnaoidData = [];\n // let alienData = [];\n\n // if (filteredData?.length > 0) {\n // alienData = filteredData.filter((item) => item.species === \"alien\");\n // humnaoidData = filteredData.filter((item) => item.species !== \"alien\");\n // }\n return (\n <div\n data-testid=\"__avatar_landing_page\"\n className=\"__avatar_landing_page px-2\"\n >\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <Zoom>\n <div\n className=\"min-h-[250px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.AVATAR_BANNER_IMAGE}')`,\n backgroundSize: \"cover\", // Ensures the image is fully visible\n backgroundPosition: \"center\", // Centers the image\n backgroundRepeat: \"no-repeat\", // Prevents repeating\n }}\n >\n {/* <div\n className=\"min-h-[200px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.AVATAR_BANNER_IMAGE}')`,\n }}\n > */}\n <div className=\"absolute top-0 left-0 w-full h-full flex flex-col items-left justify-center p-2 lg:p-6 pl-2 md:pl-10\">\n <h1 className=\"font-heading text-lg md:text-2xl lg:text-3xl text-left mb-2 md:mb-4\">\n Just Be Yourself!\n </h1>\n <div className=\"w-full md:w-[47%] py-4 lg:py-10 text-xs sm:text-sm md:text-base lg:text-lg\">\n Shape Your Digital Persona: Uncover Avatars Tailored to Your\n Unique Essence!\n </div>\n </div>\n </div>\n </Zoom>\n\n {/* Slider Section */}\n\n {/* Pets */}\n <SliderHeader\n title=\"Humanoid Avatars\"\n seeMoreUrl={\n filteredDataHumanoid.length > 4\n ? \"/marketplace/avatars/humanoid\"\n : null\n }\n />\n <div className=\"__pets__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div data-testid=\"slider-card\" className=\"py-[10px]\">\n <Slider {...sliderSettings} className=\"carousel-section\">\n {\" \"}\n {filteredDataHumanoid.map((data) => {\n return (\n <SliderCards\n item={data}\n id=\"humanoid\"\n type=\"COMP\"\n baseRoute=\"marketplace/avatars\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n </div>\n\n {/* Butlers and Bodyguards slider Section */}\n <SliderHeader\n title=\"Alien Avatars\"\n seeMoreUrl={\n filteredDataAlien.length > 4 ? \"/marketplace/avatars/alien\" : null\n }\n />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px]\"\n >\n <Slider {...sliderSettings} className=\"carousel-section\">\n {filteredDataAlien.map((data) => {\n return (\n <SliderCards\n item={data}\n id=\"alien\"\n type=\"COMP\"\n baseRoute=\"marketplace/avatars\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </Slider>\n </div>\n <ComingSoon\n status={showComingSoonPopup}\n text={`This avatar is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Gaming-Landing-Page\n *@developer Aditya P\n */\n\nimport React from \"react\";\nimport { Zoom } from \"react-reveal\";\nimport GamingBannerImg from \"assets/images/Gaming hero-section-image.jpg\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport EnvironmentGamingImg from \"assets/images/Environmental-Gaming.png\";\nimport HoloSuiteImg from \"assets/images/game_landingPage-1.png\";\nimport { Link } from \"react-router-dom\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport ImageConstant from \"constant/imageConstant\";\n\nconst TopGameData = [\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n];\n\nconst Index = () => {\n return (\n <div\n data-testid=\"__gaming__landing__main\"\n className=\"__gaming__landing__main px-2\"\n >\n <Zoom>\n <div\n className=\"min-h-[200px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.GAMING_BANNER_IMAGE}')`,\n }}\n >\n <div className=\"absolute top-0 left-0 w-full h-full flex flex-col items-center justify-center p-4\">\n <h1 className=\"font-heading text-xl md:text-2xl lg:text-3xl text-center bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] bg-[length:100%_2px] text-transparent bg-clip-text\">\n Coming Soon\n </h1>\n </div>\n </div>\n </Zoom>\n <ShadowFrame className=\"w-[250px] md:w-[500px] h-[250px] md:h-[500px] rounded-[250px] md:rounded-[500px] -left-1/3 top-[350px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.60]\" />\n <ShadowFrame className=\"w-[250px] md:w-[500px] h-[250px] md:h-[500px] rounded-[250px] md:rounded-[500px] -right-1/3 top-[40%] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.60]\" />\n {/* Game Category Content Section */}\n <div className=\"__holoSuite__gaming__container flex w-[90%] mx-auto justify-between pt-[50px] max-[668px]:pt-[30px] max-[668px]:flex-col max-[768px]:gap-[30px]\">\n <div className=\"__holosuite__image__section w-[55%] max-[1280px]:w-max max-[768px]:w-[100%] pl-[30px] md:pl-0 relative\">\n <div\n className=\"absolute top-1/2 left-1/2 w-[150%] h-[150%] -translate-x-1/2 -translate-y-1/2 bg-no-repeat bg- bg-center bg-reflection filter blur-lg brightness-125 saturate-150 opacity-10 z-10\"\n style={{\n backgroundImage: `url(${HoloSuiteImg})`,\n }}\n ></div>\n <img\n src={HoloSuiteImg}\n alt=\"environ_game_img\"\n className=\"w-full h-full object-cover z-20\"\n />\n </div>\n <div className=\"__holosuite__content__section flex flex-col justify-start pl-[30px] w-[40%] max-[768px]:w-[100%] max-[1280px]:w-[50%]\">\n <div className=\"__content__heading\">\n <h4 className=\"font-heading text-[34px] leading-10 max-[768px]:text-[24px] max-[1280px]:text-[24px] max-[768px]:leading-7\">\n <span>Holosuite Gaming: </span>\n <span>Gaming Inside </span>\n <span>Apartment and Ships</span>\n </h4>\n </div>\n <div className=\"__content__description py-[40px] font-light w-[70%] max-[768px]:w-[100%] max-[1280px]:w-[100%]\">\n <p>\n With a wide range of games and adventures awaiting you, get ready\n to level up your gaming experience. whether you're exploring\n virtual apartments or commanding powerful ships.\n </p>\n </div>\n {/* <div className=\"__content__explore__link\">\n <Link\n to=\"/marketplace/gaming/holo-suite-gaming\"\n className=\"underline underline-offset-4 text-[16px] text-[#F3A151] font-body\"\n >\n Explore Holosuite Gaming\n </Link>\n </div> */}\n </div>\n </div>\n\n <div className=\"__holoSuite__gaming__container flex w-[90%] mx-auto justify-between pt-[300px] max-[668px]:pt-[30px] max-[668px]:flex-col max-[768px]:gap-[30px]\">\n <div className=\"__holosuite__content__section flex flex-col justify-start w-[40%] pl-[30px] lg:pl-0 max-[768px]:w-[100%]\">\n <div className=\"__content__heading\">\n <h4 className=\"font-heading text-[34px] leading-10 max-[768px]:text-[24px] max-[1280px]:text-[24px] max-[768px]:leading-7\">\n Environmental Gaming\n </h4>\n </div>\n <div className=\"__content__description py-[40px] font-light w-[70%] max-[768px]:w-[100%] max-[1280px]:w-[100%]\">\n <p>\n Unleash your gaming prowess in breathtaking environments. Conquer\n challenges, battle foes, and create unforgettable memories. Coming\n soon, prepare for immersive adventures beyond imagination.\n </p>\n </div>\n {/* <div className=\"__content__explore__link\">\n <Link\n to=\"/marketplace/gaming/environmental-gaming\"\n className=\"underline underline-offset-4 text-[16px] text-[#F3A151] font-body\"\n >\n Explore Envrionmental Gaming\n </Link>\n </div> */}\n </div>\n\n <div className=\"__holosuite__image__section w-[55%] max-[1280px]:w-max max-[768px]:w-[100%] pr-[30px] md:pr-0 relative\">\n <div\n className=\"absolute top-1/2 left-1/2 w-[150%] h-[150%] -translate-x-1/2 -translate-y-1/2 bg-no-repeat bg- bg-center bg-reflection filter blur-lg brightness-125 saturate-150 opacity-10 z-10\"\n style={{\n backgroundImage: `url(${EnvironmentGamingImg})`,\n }}\n ></div>\n <img\n src={EnvironmentGamingImg}\n alt=\"environ_game_img\"\n className=\"w-full h-full left-0 object-cover z-20\"\n />\n </div>\n </div>\n\n {/* Top Games Section */}\n {/* <div className=\"__top_games__slider__container pt-[200px] max-[768px]:pt-20 max-[1280px]:pt-16\">\n <div className=\"__slider__header flex justify-between\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[15px]\">\n Top Pick Games for you\n </h4>\n <Link to=\"/marketplace/gaming/all\">\n <span className=\"font-body max-[768px]:text-[14px] text-[#F3A151] font-medium hover:cursor-pointer hover:underline underline-offset-4\">\n See more\n </span>\n </Link>\n </div>\n <div className=\"__slider_card__container flex gap-[20px] overflow-x-scroll py-[30px]\">\n {TopGameData.map((data) => {\n return <SliderCards item={data} id=\"top-game\" />;\n })}\n </div>\n </div> */}\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Preview\n *@developer Sudhanshu\n */\n\n import * as React from 'react';\n import Dialog from '@mui/material/Dialog';\n const Preview = ({ status, handleData, heading, text }) => {\n const handleClick = () => {\n handleData(false)\n }\n return (\n <Dialog\n maxWidth={'lg'}\n open={status}\n onClose={handleClick}\n aria-labelledby=\"responsive-dialog-title\"\n >\n <div className='py-14 px-28 bg-[#2C2C2C] text-white'>\n <div className='text-center max-w-[638px]'>\n <h2 className='font-heading text-2xl mb-8'>{heading}</h2>\n <p className=\"leading-relaxed\">{text}</p>\n <button type=\"button\" onClick={handleClick} className=\"font-bold rounded-lg btn-gradient leading-none text-black py-3 px-12 mt-6\">Got it!</button>\n </div>\n </div>\n </Dialog>\n )\n }\n \n export default Preview;","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport PremAptImg from \"assets/images/premium_apt.png\";\nimport PremAptImg1 from \"assets/images/apartment-1.png\";\nimport PremAptImg2 from \"assets/images/apartment-2.png\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport SlickSlider from \"react-slick\";\nimport MarketPlaceCard from \"components/card/marketplace\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport GameRoom1 from \"assets/images/game-room-1.png\";\nimport GameRoom2 from \"assets/images/game-room-2.png\";\nimport GameRoom3 from \"assets/images/game-room-3.png\";\nimport PremiumApt from \"assets/images/Premium-apartment.png\";\nimport ApartmentThumb from \"assets/images/apartment-thumbnail.png\";\nimport PremiumApt2 from \"assets/images/Premium-final-1.png\";\nimport StandredAppartment from \"assets/images/StandredAppartment.png\";\nimport BuyCards from \"components/buy-cards\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport Slider from \"assets/images/slider-1.png\";\nimport Slider2 from \"assets/images/slider-2.png\";\n\nimport SneakyPeakNebulaImg1 from \"assets/images/sneaky_peak_nebula-1.jpg\";\nimport SneakyPeakNebulaImg2 from \"assets/images/sneaky_peak_nebula-2.jpg\";\nimport SneakyPeakNebulaImg3 from \"assets/images/sneaky_peak_nebula-3.jpg\";\nimport SneakyPeakNebulaImg4 from \"assets/images/sneaky_peak_nebula-4.jpg\";\n\nimport SneakyPeakAstralImg1 from \"assets/images/sp1 astral.jpg\";\nimport SneakyPeakAstralImg2 from \"assets/images/sp2 astral.jpg\";\nimport SneakyPeakAstralImg3 from \"assets/images/sp3 astral.jpg\";\nimport SneakyPeakAstralImg4 from \"assets/images/sp4 astral.jpg\";\nimport SneakyPeakAstralImg5 from \"assets/images/sp5 astral.jpg\";\n\nimport SneakyPeakOrionImg1 from \"assets/images/sp1 orion.jpg\";\nimport SneakyPeakOrionImg2 from \"assets/images/sp2 orion.jpg\";\nimport SneakyPeakOrionImg3 from \"assets/images/sp3 orion.jpg\";\nimport SneakyPeakOrionImg4 from \"assets/images/sp4 orion.jpg\";\nimport SneakyPeakOrionImg5 from \"assets/images/sp5 orion.jpg\";\n\nimport Thumb1 from \"assets/images/StandredAppartment-thum.png\";\nimport Thumb2 from \"assets/images/StandredAppartment-thum2.png\";\nimport Thumb3 from \"assets/images/StandredAppartment-thum3.png\";\nimport Thumb4 from \"assets/images/StandredAppartment-thum4.png\";\nimport Preview from \"components/popup/Preview\";\nimport Flag from \"components/report/Flag\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { useGetSingleApartmentQuery } from \"store/slicer/Apartments\";\nimport {\n useLazyGetCartItemByTokenQuery,\n useUpdateCartItembyTokenMutation,\n} from \"store/slicer/Cart\";\nimport { usePostCheckUserAssetsMutation } from \"store/slicer/userAssets\";\nimport Loader from \"components/Loader/Loader\";\nimport DOMPurify from \"dompurify\";\nimport { convertUsdToFstrPrice, convertActualUsdToFstrPrice } from \"utils\";\n\nconst sliderSettings = {\n slidesToShow: 3,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n // responsive: [\n // {\n // breakpoint: 1921,\n // settings: {\n // slidesToShow: 3,\n // },\n // },\n // {\n // breakpoint: 1200,\n // settings: {\n // slidesToShow: 2,\n // },\n // },\n\n // {\n // breakpoint: 1025,\n // settings: {\n // slidesToShow: 1.55,\n // },\n // },\n // {\n // breakpoint: 913,\n // settings: {\n // slidesToShow: 1.4,\n // },\n // },\n // {\n // breakpoint: 821,\n // settings: {\n // slidesToShow: 1.2,\n // },\n // },\n // {\n // breakpoint: 768,\n // settings: {\n // slidesToShow: 1.1,\n // },\n // },\n // {\n // breakpoint: 616,\n // settings: {\n // slidesToShow: 1,\n // },\n // },\n // ],\n};\n\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\nabout an apartment, including its image, price, description, themes, gaming and streaming options,\nand suggested apartments. It also includes a dialog box that allows the user to preview the\napartment in a 3D model. The component uses various React hooks and components, such as useState,\nuseNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\ndesired UI and functionality. */\nconst Index = () => {\n const { apartmentId, apartment_name } = useParams();\n const { data, isLoading, refetch } = useGetSingleApartmentQuery(apartmentId);\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n const navigate = useNavigate();\n\n const sliderContainerRef = useRef(null);\n const [sneakPeakItemWidthRatio, setSneakPeakItemWidthRatio] = useState(1);\n\n useEffect(() => {\n const updateSliderItemWidth = () => {\n if (!sliderContainerRef.current) {\n return;\n }\n\n const container = sliderContainerRef.current;\n let sliderImageWidth = 615;\n\n if (container.clientWidth <= 615) {\n sliderImageWidth = container.clientWidth;\n }\n\n const updatedItemWidthRatio =\n (container.clientWidth / sliderImageWidth) * 0.95;\n setSneakPeakItemWidthRatio(updatedItemWidthRatio);\n };\n\n if (isLoading) {\n return;\n }\n\n updateSliderItemWidth();\n\n window.addEventListener(\"resize\", updateSliderItemWidth);\n\n return () => {\n return window.removeEventListener(\"resize\", updateSliderItemWidth);\n };\n }, [data]);\n\n const [gameImage, setGameImage] = useState([\n {\n img: GameRoom1,\n title: \"Ultimate Gaming Experience\",\n },\n {\n img: \"https://d30s60cgc31mft.cloudfront.net/assets/ship-small.png\",\n title: \"Ultimate Gaming Experience\",\n },\n {\n img: GameRoom3,\n title: \"Ultimate Gaming Experience\",\n },\n ]);\n\n const [themes, setThemes] = useState([\n {\n img: PremiumApt,\n title: \"Classic theme apartment\",\n active: true,\n },\n {\n img: PremiumApt2,\n title: \"Sci-Fi theme apartment\",\n active: false,\n },\n ]);\n\n const [singleApartmentData, setSingleApartmentData] = useState({});\n\n const Nebulaslider = [\n {\n id: 0,\n largeImg: SneakyPeakNebulaImg4,\n thumbImg: Thumb1,\n },\n\n {\n id: 1,\n largeImg: SneakyPeakNebulaImg1,\n thumbImg: Thumb2,\n },\n\n {\n id: 2,\n largeImg: SneakyPeakNebulaImg2,\n thumbImg: Thumb3,\n },\n {\n id: 3,\n largeImg: SneakyPeakNebulaImg3,\n thumbImg: Thumb3,\n },\n ];\n\n const Astralslider = [\n {\n id: 0,\n largeImg: SneakyPeakAstralImg1,\n thumbImg: Thumb1,\n },\n\n {\n id: 1,\n largeImg: SneakyPeakAstralImg2,\n thumbImg: Thumb2,\n },\n\n {\n id: 2,\n largeImg: SneakyPeakAstralImg3,\n thumbImg: Thumb3,\n },\n {\n id: 3,\n largeImg: SneakyPeakAstralImg4,\n thumbImg: Thumb3,\n },\n {\n id: 4,\n largeImg: SneakyPeakAstralImg5,\n thumbImg: Thumb3,\n },\n ];\n\n const Orionslider = [\n {\n id: 0,\n largeImg: SneakyPeakOrionImg1,\n thumbImg: Thumb1,\n },\n\n {\n id: 1,\n largeImg: SneakyPeakOrionImg2,\n thumbImg: Thumb2,\n },\n\n {\n id: 2,\n largeImg: SneakyPeakOrionImg3,\n thumbImg: Thumb3,\n },\n {\n id: 3,\n largeImg: SneakyPeakOrionImg4,\n thumbImg: Thumb3,\n },\n {\n id: 4,\n largeImg: SneakyPeakOrionImg5,\n thumbImg: Thumb3,\n },\n ];\n const [open, setOpen] = useState(false);\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const handleClick = (e, category, id) => {\n if (e === \"MyAsset\") {\n // setContentType(\"MyAsset\");\n }\n if (e === \"Premium\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n // setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n };\n\n // let title = \"\";\n // let description = \"\";\n // let bannerImage = PremAptImg;\n\n // switch (apartment_name) {\n // case \"orion-penthouse\":\n // title = \"Orion Penthouse\";\n // description =\n // \"Indulge in the opulence of these towering apartments that capture the essence of a radiant galaxy, offering a sophisticated and cosmopolitan living experience. Immerse yourself in the wonders of virtual living, where every corner is a gateway to adventure, entertainment, and boundless exploration.\";\n // bannerImage = PremAptImg;\n // break;\n\n // case \"astral-suite\":\n // title = \"Astral Suite\";\n // description =\n // \"Find yourself enchanted by the mesmerizing allure of the aurora in these exclusive enclaves, where the ethereal beauty of the night sky is brought to life.Immerse yourself in the wonders of virtual living, where every corner is a gateway to adventure, entertainment, and boundless exploration.\";\n // bannerImage = PremAptImg2;\n // break;\n\n // case \"nebula-apartment\":\n // title = \"Nebula Apartment\";\n // description =\n // \"Find yourself enchanted by the mesmerizing allure of the aurora in these exclusive enclaves, where the ethereal beauty of the night sky is brought to life..Immerse yourself in the wonders of virtual living, where every corner is a gateway to adventure, entertainment, and boundless exploration.\";\n // bannerImage = PremAptImg1;\n // break;\n\n // default:\n // title = \"Orion Penthouse\";\n // description =\n // \"Indulge in the opulence of these towering apartments that capture the essence of a radiant galaxy, offering a sophisticated and cosmopolitan living experience. Immerse yourself in the wonders of virtual living, where every corner is a gateway to adventure, entertainment, and boundless exploration.\";\n // bannerImage = PremAptImg;\n // }\n\n // const [apartments, setApartments] = useState([]);\n\n // const [IstooltipHover, setTooltipHover] = useState(false);\n\n // const HandletooltipHover = () => {\n // setTooltipHover(!IstooltipHover);\n // };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n useEffect(() => {\n // if(data?.resposne?.statusEnum === 1){\n // setSingleApartmentData(data?.resposne?.data)\n // }\n refetch();\n }, [apartmentId]);\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [isAddedToCart, setIsAddedToCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n const [isAssetOwned, setIsAssetOwned] = useState(false);\n const [selectedThemeIndex, setSelectedThemIndex] = useState(0);\n\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n\n // This needs to be updated from the api side first, we need to be able to pass the theme id to check too\n useEffect(() => {\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: data?.response?.data?._id,\n themeId: themesArr[selectedThemeIndex]?._id,\n isIap: true,\n });\n\n if (\n res?.data?.response?.statusEnum == 1 ||\n res?.data?.response?.statusEnum == 0\n ) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n setIsAssetOwned(isOwned);\n }\n } catch (e) {}\n }\n if (\n localStorage.getItem(\"accessToken\") &&\n data?.response?.statusEnum == 1\n ) {\n checkIfOwnedAsset();\n }\n }, [data, selectedThemeIndex]);\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap(walletId);\n }\n }\n };\n\n const addIapToCart = () => {\n AddToCartQuery({\n category: \"apartment\",\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency == \"usd\" ? \"usd\" : \"fstr\",\n itemThemeId: themesArr[selectedThemeIndex]._id,\n })\n .then((res) => {\n console.log(res.data);\n if (res?.data?.response?.statusEnum == 1) {\n setIsAddedToCart(true);\n refetchCartItems();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const checkoutIap = (walletId) => {\n if (popupCurrency == \"usd\") {\n navigate(\n `/checkout?productType=apartment&productName=${data?.response?.data?.assetName}&amount=${themesArr[selectedThemeIndex]?.priceFiat}&productId=${data?.response?.data?._id}&themeId=${themesArr[selectedThemeIndex]._id}`\n );\n } else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?productType=apartment&productName=${\n data?.response?.data?.assetName\n }&amount=${convertActualUsdToFstrPrice(\n themesArr[selectedThemeIndex]?.priceFiat\n )}&productId=${data?.response?.data?._id}&themeId=${\n themesArr[selectedThemeIndex]._id\n }&walletId=${walletId}`\n );\n }\n };\n\n // fetching all cart items\n // const {\n // data: GetCartItemQuery,\n // isLoading: getCartItemLoader,\n // refetch: refetchCartItems,\n // isSuccess: isFetchCartSuccess,\n // } = useGetCartItemByTokenQuery(undefined, { skip: isLoading });\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch: refetchCartItems,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n // this effect will check if this item is already added to user's cart\n useEffect(() => {\n if (isFetchCartSuccess && GetCartItemQuery?.response?.statusEnum == 1) {\n let foundItem = GetCartItemQuery?.response?.data?.find((item) => {\n return (\n item?.itemId == data?.response?.data?._id &&\n item?.itemsThemeId == themesArr[selectedThemeIndex]._id\n );\n });\n\n // found an item in cart list with same item and theme id\n if (foundItem) {\n setIsAddedToCart(true);\n } else {\n setIsAddedToCart(false);\n }\n }\n }, [getCartItemLoader, data, selectedThemeIndex]);\n\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetCartItemByToken();\n }, []);\n\n let buyCardType = \"BuyNowTheme\";\n if (isAddedToCart) {\n // buyCardType = \"AddToCart\";\n } else if (isAssetOwned) {\n // buyCardType = \"MyAsset\";\n }\n if (data?.response && data.response.statusEnum !== 1) {\n navigate(\"/marketplace/apartments\");\n }\n\n let themesArr = [];\n if (data?.response?.statusEnum == 1) {\n themesArr = data?.response?.data?.themesArr.slice();\n }\n\n if (isLoading) {\n return (\n <div className=\"h-[500px] w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n return (\n <div className=\"relative px-4\">\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={isAddedToCart}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkoutIap}\n priceUsd={themesArr[selectedThemeIndex]?.priceFiat}\n />\n )}\n <div className=\"__back__container__section flex justify-between pb-[12px]\">\n <button\n onClick={() => navigate(\"/marketplace/apartments\")}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n {/* <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this asset\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div> */}\n </div>\n <div className=\"lg:min-h-[350px] mb-6 md:mb-9 z-10 relative rounded flex justify-center items-center\">\n <Zoom>\n <img\n src={data?.response?.data?.largeThumbnail?.url}\n alt={data?.response?.data?.largeThumbnail?.fileName}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.style.display = \"none\";\n }}\n className=\"h-full w-full object-cover\"\n />\n </Zoom>\n </div>\n <div className=\"relative\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n <div className=\"block md:flex justify-stretch xl:justify-between items-start mb-7 md:mb-14 relative z-10 gap-10 md:gap-8 lg:gap-14 \">\n <div className=\"sm:max-w-[48%] mb-10\">\n {/* <p className=\"clip-text font-medium mb-3\">About Apartment</p> */}\n <h1 className=\"font-heading text-md mb-3\">\n {data?.response?.data?.assetName}\n </h1>\n <h3 className=\"text-gray-400 font-semibold mt-8\">Description:</h3>\n {data?.response?.data?.longDescription?.map((item, i) => (\n <div\n key={i}\n className=\"inner-html-headings [&>p]:text-white/90 max-md:[&>p]:text-[13px] [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(item),\n }}\n ></div>\n ))}\n\n {/* <p\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(\n data?.response?.data?.longDescription?.[0]\n ),\n }}\n className=\"text-sm text-white text-opacity-90\"\n ></p> */}\n </div>\n <div className=\"flex-auto sm:max-w-[48%] py-[34px] px-7 bg-gradient-to-r from-[#312d26] to-[#30261d] rounded-[20px]\">\n {/* Type : BuyNow || Free || Premium || MyAsset */}\n <BuyCards\n type={buyCardType}\n isAddedToCart={isAddedToCart}\n // isOwned={isAssetOwned}\n isOwned={false}\n isLoading={userAssetInfo.isLoading ?? false}\n card=\"product\"\n title=\"Buy Apartment\"\n price={`$${themesArr[selectedThemeIndex]?.priceFiat}`}\n star={convertUsdToFstrPrice(\n themesArr[selectedThemeIndex]?.priceFiat\n )}\n handleData={(e) => {\n handleClick(\n e,\n data?.response?.data?.category,\n data?.response?.data?._id\n );\n }}\n onBuyHandle={() => {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n }}\n selectedThemeIndex={selectedThemeIndex}\n onThemeChange={(ind) => setSelectedThemIndex(ind)}\n themes={themesArr.map((item) => item.themeName)}\n />\n <ComingSoon\n status={showComingSoonPopup}\n text={`In-app purchases are on the way, and you'll soon have the opportunity to own exciting assets. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n </div>\n <div className=\"streaming-section my-10 md:my-20 z-10 relative\">\n <h2 className=\"font-heading text-lg md:text-2xl mb-5\">Themes</h2>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4\">\n {themesArr?.map((item, i) => (\n <div className=\"relative\" key={item._id}>\n <div\n className={`aspect-[247/149] rounded-lg border-2 ${\n i === selectedThemeIndex\n ? \"border-sec\"\n : \" border-transparent\"\n } ${item.comingSoon ? \"coming-soon\" : \"\"} cursor-pointer`}\n key={i}\n onClick={() => setSelectedThemIndex(i)}\n >\n <img\n src={item.thumbnail?.url}\n alt={item.themeName}\n className=\"h-full w-full object-cover rounded-lg\"\n />\n </div>\n <p className=\"font-medium mt-3\">{item?.themeName}</p>\n </div>\n ))}\n </div>\n </div>\n <div className=\"streaming-section my-10 md:my-20 z-10 relative\">\n <h2 className=\"font-heading text-lg md:text-2xl mb-5\">Sneaky Peek</h2>\n <div className=\"max-w-full\" ref={sliderContainerRef}>\n <SlickSlider\n {...sliderSettings}\n slidesToShow={sneakPeakItemWidthRatio}\n className=\"carousel-section\"\n >\n {themesArr[selectedThemeIndex].sneakPeakImages.map((item) => {\n return (\n <div\n key={item._id}\n className=\"w-full max-w-[615px] h-[292px]\"\n >\n <img\n className=\"h-full w-full object-cover\"\n src={item.url}\n alt=\"\"\n />\n </div>\n );\n })}\n </SlickSlider>\n </div>\n <div className=\"mt-12\">\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className=\"rounded-lg font-medium bg-gradient-3 border border-sec justify-center py-3 px-5 md:px-10 flex gap-2 mt-4\"\n >\n Preview in Marketing Suite\n </button>\n <Preview\n status={open}\n text=\"To preview the apartment, login to Oculus to have full apartment view inside Marketing Suite.\"\n heading=\"Preview in Marketing Suite\"\n handleData={() => setOpen(false)}\n />\n </div>\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:-bottom-[150px]\" />\n </div>\n <div className=\"streaming-section my-12 mt-14 md:my-20 md:mt-28 z-10 relative\">\n <div className=\"max-w-3xl mb-12\">\n <h2 className=\"font-heading text-lg md:text-2xl text-white mb-5\">\n Explore Gaming & Streaming inside Apartment\n </h2>\n <p className=\"text-white/[0.90] text-sm md:text-base leading-normal\">\n Experience next-level gaming and streaming. Dive into immersive\n worlds, challenge friends in multiplayer battles, or simply relax\n and enjoy your favorite content. With cutting-edge technology and a\n vast selection of games and entertainment.\n </p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4\">\n {gameImage.map((item, i) => (\n <div className=\"aspect-[403/207] bg-[#EFEFEF]\" key={i}>\n <img\n src={item.img}\n alt={item.title}\n className=\"h-full w-full object-cover\"\n />\n </div>\n ))}\n </div>\n </div>\n <div className=\"h-[1px] bg-[#5a5a5a]/[0.20]\"></div>\n {/* <h2 className=\"font-heading text-lg md:text-2xl mt-10 md:mt-20 mb-7\">\n Suggested Apartments\n </h2>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-x-5 gap-y-8 lg:gap-y-16 mb-14 md:mb-28 mx-auto relative z-10\">\n {apartments.map((item, i) => (\n <Fade key={i}>\n <MarketPlaceCard item={item} type=\"large\" />\n </Fade>\n ))}\n </div> */}\n\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n idToReport={data?.response?.data?._id}\n contentType={\"apartment\"}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport Loader from \"components/Loader/Loader\";\nimport Flag from \"components/report/Flag\";\n\nimport BuyCards from \"components/buy-cards\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport SliderCards from \"components/partials/SliderCards\";\n\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { useGetSingleClothingQuery } from \"store/slicer/Marketplace\";\nimport {\n useLazyGetCartItemByTokenQuery,\n useUpdateCartItembyTokenMutation,\n} from \"store/slicer/Cart\";\nimport {\n usePostCheckUserAssetsMutation,\n usePostAddFreeAssetForUserMutation,\n} from \"store/slicer/userAssets\";\nimport DOMPurify from \"dompurify\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\nabout an apartment, including its image, price, description, themes, gaming and streaming options,\nand suggested apartments. It also includes a dialog box that allows the user to preview the\napartment in a 3D model. The component uses various React hooks and components, such as useState,\nuseNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\ndesired UI and functionality. */\n\nconst Index = () => {\n const navigate = useNavigate();\n const params = useParams();\n const { categorytype, item } = params;\n const { data, isLoading, refetch } = useGetSingleClothingQuery(item);\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n\n const [isreportModal, setReportModal] = useState(false);\n const [clothingData, setClothingData] = useState({});\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const SuggestedItem = [\n {\n id: 0,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 1,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 2,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 3,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 4,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 5,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 6,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 7,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n ];\n\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n // const handleClick = (e) => {\n // if (e === \"MyAsset\") {\n // // setContentType(\"MyAsset\");\n // }\n // if (e === \"Premium\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // if (e === \"BuyNow\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // };\n useEffect(() => {\n if (data && data.response.statusEnum === 1) {\n setClothingData(data.response.data);\n } else if (data) {\n navigate(\"/marketplace/clothing\");\n }\n }, [data]);\n const handleClick = async (e) => {\n if (e === \"MyAsset\") {\n let uInfo = localStorage.getItem(\"userInfo\");\n if (!uInfo) return;\n\n uInfo = JSON.parse(uInfo);\n\n const uId = uInfo.id;\n\n if (!uId) return;\n\n const res = await addAssetToUser({\n content_id: clothingData._id,\n content_type: \"clothing\",\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n setIsAssetOwned(true);\n setJustAddedToAssets(true);\n }\n }\n if (e === \"Premium\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n };\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [isAddedToCart, setIsAddedToCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n const [isAssetOwned, setIsAssetOwned] = useState(false);\n const [justAddedToAssets, setJustAddedToAssets] = useState(false);\n\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n const [addAssetToUser, addAssetToUserInfo] =\n usePostAddFreeAssetForUserMutation();\n\n useEffect(() => {\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: data?.response?.data?._id,\n isIap: true,\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n if (isOwned) {\n setIsAssetOwned(true);\n }\n }\n } catch (e) {}\n }\n if (\n localStorage.getItem(\"accessToken\") &&\n data?.response?.statusEnum == 1\n ) {\n checkIfOwnedAsset();\n }\n }, [data]);\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap(walletId);\n }\n }\n };\n\n const addIapToCart = () => {\n AddToCartQuery({\n category: \"clothing\",\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency == \"usd\" ? \"usd\" : \"fstr\",\n })\n .then((res) => {\n console.log(res.data);\n if (res?.data?.response?.statusEnum == 1) {\n setIsAddedToCart(true);\n refetchCartItems();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const checkoutIap = (walletId) => {\n if (popupCurrency == \"usd\") {\n navigate(\n `/checkout?productType=clothing&productName=${data?.response?.data?.assetName}&amount=${data?.response?.data?.priceFiat}&productId=${data?.response?.data?._id}`\n );\n } else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?productType=clothing&productName=${\n data?.response?.data?.assetName\n }&amount=${convertActualUsdToFstrPrice(\n data?.response?.data?.priceFiat\n )}&productId=${data?.response?.data?._id}&walletId=${walletId}`\n );\n }\n };\n\n // fetching all cart items\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch: refetchCartItems,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n\n // this effect will check if this item is already added to user's cart\n useEffect(() => {\n if (isFetchCartSuccess && GetCartItemQuery?.response?.statusEnum == 1) {\n const cartList = GetCartItemQuery?.response?.data?.map(\n (item) => item?.itemId\n );\n if (cartList?.includes(data?.response?.data?._id)) {\n setIsAddedToCart(true);\n }\n }\n }, [getCartItemLoader, data]);\n\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetCartItemByToken();\n }, []);\n\n let buyCardType = \"Free\";\n if (clothingData?.priceFiat && clothingData?.priceFiat != 0) {\n buyCardType = \"BuyNow\";\n }\n if (isAddedToCart) {\n buyCardType = \"AddToCart\";\n }\n if (isAssetOwned) {\n buyCardType = \"MyAsset\";\n }\n\n return (\n <div className=\"relative px-4\">\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={isAddedToCart}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkoutIap}\n priceUsd={clothingData?.priceFiat}\n />\n )}\n <div className=\"__back__container__section flex justify-between pb-[12px]\">\n <button\n onClick={() =>\n navigate(\n `/marketplace/clothing?category=${clothingData?.clothType}`\n )\n }\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n {/* <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n report this assets\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div> */}\n </div>\n <div className=\"__details__data__container ml-3 mt-[20px] relative z-[10]\">\n {isLoading ? (\n <div className=\"text-center pt-[10%]\">\n <Loader />\n </div>\n ) : data?.response?.statusEnum === 1 &&\n data?.response?.data?.length === 0 ? (\n \"No data\"\n ) : (\n <div className=\"__detail__page__container flex gap-[50px] max-[678px]:flex-col max-[678px]:gap-[30px]\">\n {/* <div className=\"__image__section bg-[#242424] w-[100%] h-[678px] max-[678px]:h-[300px] rounded-[20px] object-fit contents\">\n <img\n className=\"object-cover rounded-[20px]\"\n src={clothingData?.largeThumbnail?.url}\n alt={clothingData?.largeThumbnail?.fileName}\n />\n </div> */}\n <div className=\"__image__section w-[100%] h-full\">\n <Zoom>\n <img\n src={clothingData?.largeThumbnail?.url}\n alt={clothingData?.largeThumbnail?.fileName}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.style.display = \"none\";\n }}\n className=\" h-auto w-full object-contain rounded-[20px]\"\n />\n </Zoom>\n </div>\n <div className=\"__item__content__section mt-[10px] flex flex-col max-[678px]:mt-[5px] w-[100%]\">\n <h4 className=\"text-[24px] font-heading max-[678px]:text-[18px]\">\n {clothingData?.assetName || \"\"}\n </h4>\n <div className=\"__category__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff] capitalize\">\n {categorytype?.toLowerCase()}\n </span>\n </div>\n\n <div className=\"__description__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Description:\n </h6>\n {data &&\n clothingData?.longDescription?.map((htmlString, index) => (\n <div\n key={index}\n className=\"inner-html-headings text-white/90 max-md:[&>p]:text-[13px] [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n style={{\n wordBreak: \"break-word\",\n }}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(htmlString),\n }}\n />\n ))}\n </div>\n {/* <div className=\"__tag_line pt-[20px]\">\n <span className=\"font-body px-[10px] py-[8px] rounded-3xl text-[15px] max-[678px]:text-[13px] bg-white/[0.10]\">\n {categorytype?.split(\"-\").join(\" \")}\n </span>\n </div> */}\n\n <div className=\"__buy__main pt-[28px] pr-[40px] max-[768px]:pr-0\">\n <div className=\"flex-1 w-full lg:mt-0 min-h-180\">\n {userAssetInfo?.isLoading || addAssetToUserInfo.isLoading ? (\n <div className=\"w-full h-[150px] grid place-content-center\">\n <Loader />\n </div>\n ) : (\n <>\n {\" \"}\n <BuyCards\n type={buyCardType}\n card=\"product\"\n title=\"Buy this Clothing\"\n price={`$ ${clothingData?.priceFiat}`}\n handleData={(e) => {\n handleClick(\n e,\n clothingData?.category,\n clothingData?._id\n );\n }}\n onBuyHandle={() => {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n }}\n />\n </>\n )}\n <ComingSoon\n status={showComingSoonPopup}\n text={`In-app purchases are on the way, and you'll soon have the opportunity to own exciting assets. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n {/* {contentType == \"Premium\" && <> <UnlockPremium status={open} text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>${price}/Month ( $288.00/year )</b>.`} heading=\"Unlock the Premium\" handleData={() => setOpen(false)}\n handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(\"You unlocked this content by subscribing to <b style='color:white'>Fourth Star</b> channel\")}}\n />\n </>} */}\n\n {/* {contentType == \"BuyNow\" && <Popup status={open} text=\"Buy this content and get lifetime access to it.\" heading=\"Buy Content\" button={`Buy now @$${price}`} handleData={() => setOpen(false)} handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(`Purchased access on <b style=\"color:white\">${dateFormat(new Date(), \"d mmmm yyyy\")}</b>`)}} />} */}\n </div>\n </div>\n {/* <a\n href=\"#\"\n className=\"text-[16px] font-body text-[#FFFFFF80] hover:underline underline-offset-4 pt-[44px]\"\n >\n Buy this Clothing\n </a>\n <div className=\"__price__section pt-[30px] flex items-center gap-[10px]\">\n <img\n src={CoinIcon}\n alt=\"__coin__icon\"\n className=\"w-[32px] h-[32px] max-[668px]:w-[28px] max-[668px]:h-[28px]\"\n />\n <span className=\"text-[16px] text-[#FFFFFF80] font-body\">\n $99.00\n </span>\n </div>\n <span className=\"text-[#F3A151] text-[18px] font-body pt-[24px] max-[668px]:text-[15px]\">\n Coming Soon\n </span> */}\n </div>\n </div>\n )}\n {/* Content Divider Section */}\n <div className=\"__content__divider py-[120px] max-[668px]:py-[80px]\">\n <hr className=\"border-[0.1px] border-[#5A5A5A80]\" />\n </div>\n\n {/* Suggested Item Slider Section */}\n\n <div className=\"__suggested__items__container\">\n <SliderHeader title={`${`Suggested Clothing`}`} />\n <div className=\"__pets__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n {/* {id.toLowerCase() != \"avatars\" && ( */}\n <div className=\"__slider_card_container flex gap-[20px] overflow-x-scroll py-[10px]\">\n {SuggestedItem.map((data) => {\n return (\n <SliderCards\n item={data}\n id={\"clothing\"}\n baseRoute={\"marketplace/clothing\"}\n />\n );\n })}\n </div>\n {/* {id.toLowerCase() == \"avatars\" && (\n <div className=\"__slider_card_container py-[10px]\">\n <Slider {...sliderSettings} className=\"carousel-section\">\n {SuggestedAvatarItems.map((data) => {\n return (\n <SliderCards\n item={data}\n id={categorytype}\n type=\"COMP\"\n baseRoute=\"marketplace/avatars\"\n />\n );\n })}\n </Slider>\n </div>\n )} */}\n </div>\n </div>\n </div>\n\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n idToReport={data?.response?.data?._id}\n contentType={\"clothing\"}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport Loader from \"components/Loader/Loader\";\n\nimport BuyCards from \"components/buy-cards\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport Flag from \"components/report/Flag\";\n\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { useGetSingleAvatarQuery } from \"store/slicer/Marketplace\";\nimport {\n useLazyGetCartItemByTokenQuery,\n useUpdateCartItembyTokenMutation,\n} from \"store/slicer/Cart\";\nimport {\n usePostCheckUserAssetsMutation,\n usePostAddFreeAssetForUserMutation,\n} from \"store/slicer/userAssets\";\nimport DOMPurify from \"dompurify\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\nabout an apartment, including its image, price, description, themes, gaming and streaming options,\nand suggested apartments. It also includes a dialog box that allows the user to preview the\napartment in a 3D model. The component uses various React hooks and components, such as useState,\nuseNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\ndesired UI and functionality. */\n\nconst Index = () => {\n const navigate = useNavigate();\n const params = useParams();\n const { categorytype, item } = params;\n const { data, isLoading, refetch } = useGetSingleAvatarQuery(item);\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n\n const [avatarData, setAvatarData] = useState({});\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const SuggestedItem = [\n {\n id: 0,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 1,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 2,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 3,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 4,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 5,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 6,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n {\n id: 7,\n heading: \"NebulaWalker Armor\",\n isComing: true,\n },\n ];\n\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n // const handleClick = (e) => {\n // if (e === \"MyAsset\") {\n // // setContentType(\"MyAsset\");\n // }\n // if (e === \"Premium\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // if (e === \"BuyNow\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // };\n useEffect(() => {\n if (data && data.response.statusEnum === 1) {\n setAvatarData(data.response.data);\n } else if (data) {\n navigate(\"/marketplace/avatars\");\n }\n }, [data]);\n const handleClick = async (e) => {\n if (e === \"MyAsset\") {\n let uInfo = localStorage.getItem(\"userInfo\");\n if (!uInfo) return;\n\n uInfo = JSON.parse(uInfo);\n\n const uId = uInfo.id;\n\n if (!uId) return;\n\n const res = await addAssetToUser({\n content_id: avatarData._id,\n content_type: \"avatar\",\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n setIsAssetOwned(true);\n setJustAddedToAssets(true);\n }\n }\n if (e === \"Premium\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n };\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [isAddedToCart, setIsAddedToCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n const [isAssetOwned, setIsAssetOwned] = useState(false);\n const [justAddedToAssets, setJustAddedToAssets] = useState(false);\n\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n const [addAssetToUser, addAssetToUserInfo] =\n usePostAddFreeAssetForUserMutation();\n\n useEffect(() => {\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: data?.response?.data?._id,\n isIap: true,\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n if (isOwned) {\n setIsAssetOwned(true);\n }\n }\n } catch (e) {}\n }\n if (\n localStorage.getItem(\"accessToken\") &&\n data?.response?.statusEnum == 1\n ) {\n checkIfOwnedAsset();\n }\n }, [data]);\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap(walletId);\n }\n }\n };\n\n const addIapToCart = () => {\n AddToCartQuery({\n category: \"avatar\",\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency == \"usd\" ? \"usd\" : \"fstr\",\n })\n .then((res) => {\n console.log(res.data);\n if (res?.data?.response?.statusEnum == 1) {\n setIsAddedToCart(true);\n refetchCartItems();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const checkoutIap = (walletId) => {\n if (popupCurrency == \"usd\") {\n navigate(\n `/checkout?productType=avatar&productName=${data?.response?.data?.assetName}&amount=${data?.response?.data?.priceFiat}&productId=${data?.response?.data?._id}`\n );\n } else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?productType=avatar&productName=${\n data?.response?.data?.assetName\n }&amount=${convertActualUsdToFstrPrice(\n data?.response?.data?.priceFiat\n )}&productId=${data?.response?.data?._id}&walletId=${walletId}`\n );\n }\n };\n\n // fetching all cart items\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch: refetchCartItems,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n\n // this effect will check if this item is already added to user's cart\n useEffect(() => {\n if (isFetchCartSuccess && GetCartItemQuery?.response?.statusEnum == 1) {\n const cartList = GetCartItemQuery?.response?.data?.map(\n (item) => item?.itemId\n );\n if (cartList?.includes(data?.response?.data?._id)) {\n setIsAddedToCart(true);\n }\n }\n }, [getCartItemLoader, data]);\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetCartItemByToken();\n }, []);\n let buyCardType = \"Free\";\n if (avatarData?.priceFiat && avatarData?.priceFiat != 0) {\n buyCardType = \"BuyNow\";\n }\n if (isAddedToCart) {\n buyCardType = \"AddToCart\";\n }\n if (isAssetOwned) {\n buyCardType = \"MyAsset\";\n }\n\n return (\n <div className=\"relative px-4\">\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={isAddedToCart}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkoutIap}\n priceUsd={avatarData?.priceFiat}\n />\n )}\n <div className=\"__back__container__section flex justify-between pb-[12px]\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n {/* <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n report this assets\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div> */}\n </div>\n <div className=\"__details__data__container ml-3 mt-[20px] relative z-[10]\">\n {isLoading ? (\n <div className=\"text-center pt-[10%]\">\n <Loader />\n </div>\n ) : data?.response?.statusEnum === 1 &&\n data?.response?.data?.length === 0 ? (\n \"No data\"\n ) : (\n <div className=\"__detail__page__container flex gap-[50px] max-[678px]:flex-col max-[678px]:gap-[30px]\">\n {/* <div className=\"__image__section bg-[#242424] w-[100%] h-[678px] max-[678px]:h-[300px] rounded-[20px] object-fit contents\">\n <img\n className=\"object-cover rounded-[20px]\"\n src={avatarData?.largeThumbnail?.url}\n alt={avatarData?.largeThumbnail?.fileName}\n />\n </div> */}\n <div className=\"__image__section w-[100%] h-full\">\n <Zoom>\n <img\n src={avatarData?.largeThumbnail?.url}\n alt={avatarData?.largeThumbnail?.fileName}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.style.display = \"none\";\n }}\n className=\" h-auto w-full object-contain rounded-[20px]\"\n />\n </Zoom>\n </div>\n <div className=\"__item__content__section mt-[10px] flex flex-col max-[678px]:mt-[5px] w-[100%]\">\n <h4 className=\"text-[24px] font-heading max-[678px]:text-[18px]\">\n {avatarData?.assetName || \"\"}\n </h4>\n <div className=\"__category__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff] capitalize\">\n {categorytype?.toLowerCase()}\n </span>\n </div>\n\n <div className=\"__description__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Description:\n </h6>\n {data &&\n avatarData?.longDescription?.map((htmlString, index) => (\n <div\n key={index}\n className=\"inner-html-headings text-white/90 max-md:[&>p]:text-[13px] [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n style={{\n wordBreak: \"break-word\",\n }}\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(htmlString),\n }}\n />\n ))}\n </div>\n {/* <div className=\"__tag_line pt-[20px]\">\n <span className=\"font-body px-[10px] py-[8px] rounded-3xl text-[15px] max-[678px]:text-[13px] bg-white/[0.10]\">\n {categorytype?.split(\"-\").join(\" \")}\n </span>\n </div> */}\n\n <div className=\"__buy__main pt-[28px] pr-[40px] max-[768px]:pr-0\">\n <div className=\"flex-1 w-full lg:mt-0 min-h-180\">\n {userAssetInfo?.isLoading || addAssetToUserInfo?.isLoading ? (\n <div className=\"w-full h-[150px] grid place-content-center\">\n <Loader />\n </div>\n ) : (\n <>\n {\" \"}\n <BuyCards\n type={buyCardType}\n justAdded={justAddedToAssets}\n card=\"product\"\n title=\"Buy this Avatar\"\n price={`$ ${avatarData?.priceFiat}`}\n handleData={(e) => {\n handleClick(e, avatarData?.category, avatarData?._id);\n }}\n onBuyHandle={() => {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n }}\n />\n <ComingSoon\n status={showComingSoonPopup}\n text={`In-app purchases are on the way, and you'll soon have the opportunity to own exciting assets. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n )}\n {/* {contentType == \"Premium\" && <> <UnlockPremium status={open} text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>${price}/Month ( $288.00/year )</b>.`} heading=\"Unlock the Premium\" handleData={() => setOpen(false)}\n handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(\"You unlocked this content by subscribing to <b style='color:white'>Fourth Star</b> channel\")}}\n />\n </>} */}\n\n {/* {contentType == \"BuyNow\" && <Popup status={open} text=\"Buy this content and get lifetime access to it.\" heading=\"Buy Content\" button={`Buy now @$${price}`} handleData={() => setOpen(false)} handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(`Purchased access on <b style=\"color:white\">${dateFormat(new Date(), \"d mmmm yyyy\")}</b>`)}} />} */}\n </div>\n </div>\n {/* <a\n href=\"#\"\n className=\"text-[16px] font-body text-[#FFFFFF80] hover:underline underline-offset-4 pt-[44px]\"\n >\n Buy this Avatar\n </a>\n <div className=\"__price__section pt-[30px] flex items-center gap-[10px]\">\n <img\n src={CoinIcon}\n alt=\"__coin__icon\"\n className=\"w-[32px] h-[32px] max-[678px]:w-[28px] max-[678px]:h-[28px]\"\n />\n <span className=\"text-[16px] text-[#FFFFFF80] font-body\">\n $99.00\n </span>\n </div>\n <span className=\"text-[#F3A151] text-[18px] font-body pt-[24px] max-[678px]:text-[15px]\">\n Coming Soon\n </span> */}\n </div>\n </div>\n )}\n\n {/* Content Divider Section */}\n <div className=\"__content__divider py-[120px] max-[678px]:py-[80px]\">\n {/* <hr className=\"border-[0.1px] border-[#5A5A5A80]\" /> */}\n </div>\n\n {/* Suggested Item Slider Section */}\n\n {/* <div className=\"__suggested__items__container\">\n <SliderHeader title={`${`Suggested Avatar`}`} />\n <div className=\"__pets__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <div className=\"__slider_card_container flex gap-[20px] overflow-x-scroll py-[10px]\">\n {SuggestedItem.map((data) => {\n return (\n <SliderCards\n item={data}\n id={\"avatar\"}\n baseRoute={\"marketplace/avatars\"}\n />\n );\n })}\n </div>\n </div>\n </div> */}\n </div>\n\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n idToReport={data?.response?.data?._id}\n contentType={\"avatar\"}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport PremImg1 from \"assets/images/ship-l.png\";\nimport PremImg2 from \"assets/images/machraider_l.jpg\";\nimport PremImg3 from \"assets/images/starhawk_l.jpg\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport SlickSlider from \"react-slick\";\nimport MarketPlaceCard from \"components/card/marketplace\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport GameRoom1 from \"assets/images/game-room-1.png\";\nimport GameRoom2 from \"assets/images/game-room-2.png\";\nimport GameRoom3 from \"assets/images/game-room-3.png\";\nimport ShipTheme from \"assets/images/ship-theme.png\";\nimport StandredAppartment from \"assets/images/StandredAppartment.png\";\nimport BuyCards from \"components/buy-cards\";\nimport Slider from \"assets/images/ship-large.png\";\n\nimport SneakyPeakStarHawkImg1 from \"assets/images/sp1 Starhawk.jpg\";\nimport SneakyPeakStarHawkImg2 from \"assets/images/sp2 Starhawk.jpg\";\nimport SneakyPeakStarHawkImg3 from \"assets/images/sp3 Starhawk.jpg\";\nimport SneakyPeakStarHawkImg4 from \"assets/images/sp4 Starhawk.jpg\";\n\nimport SneakyPeakPrometheusImg1 from \"assets/images/sp1 Prometheus.png\";\nimport SneakyPeakPrometheusImg2 from \"assets/images/sp2 Prometheus.png\";\nimport SneakyPeakPrometheusImg3 from \"assets/images/sp3 Prometheus.png\";\nimport SneakyPeakPrometheusImg4 from \"assets/images/sp4 Prometheus.png\";\n\nimport SneakyPeakMachraiderImg1 from \"assets/images/sp1 machraider.jpg\";\nimport SneakyPeakMachraiderImg2 from \"assets/images/sp2 machraider.jpg\";\nimport SneakyPeakMachraiderImg3 from \"assets/images/sp3 machraider.jpg\";\nimport SneakyPeakMachraiderImg4 from \"assets/images/sp4 machraider.jpg\";\n\nimport Thumb1 from \"assets/images/ship-thumb-1.png\";\nimport Thumb2 from \"assets/images/ship-thumb-2.png\";\nimport Thumb3 from \"assets/images/ship-thumb-3.png\";\nimport Preview from \"components/popup/Preview\";\nimport Ship1 from \"assets/images/ship-1.png\";\nimport Ship2 from \"assets/images/ship-2.png\";\nimport Ship3 from \"assets/images/ship-3.png\";\nimport Flag from \"components/report/Flag\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { useGetSingleShipQuery } from \"store/slicer/Ships\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport {\n useLazyGetCartItemByTokenQuery,\n useUpdateCartItembyTokenMutation,\n} from \"store/slicer/Cart\";\nimport { usePostCheckUserAssetsMutation } from \"store/slicer/userAssets\";\nimport Loader from \"components/Loader/Loader\";\nimport DOMPurify from \"dompurify\";\nimport { convertUsdToFstrPrice, convertActualUsdToFstrPrice } from \"utils\";\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\nabout an apartment, including its image, price, description, themes, gaming and streaming options,\nand suggested apartments. It also includes a dialog box that allows the user to preview the\napartment in a 3D model. The component uses various React hooks and components, such as useState,\nuseNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\ndesired UI and functionality. */\n\nconst sliderSettings = {\n slidesToShow: 3,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n // responsive: [\n // {\n // breakpoint: 1921,\n // settings: {\n // slidesToShow: 3,\n // },\n // },\n // {\n // breakpoint: 1200,\n // settings: {\n // slidesToShow: 2,\n // },\n // },\n\n // {\n // breakpoint: 1025,\n // settings: {\n // slidesToShow: 1.55,\n // },\n // },\n // {\n // breakpoint: 913,\n // settings: {\n // slidesToShow: 1.4,\n // },\n // },\n // {\n // breakpoint: 821,\n // settings: {\n // slidesToShow: 1.2,\n // },\n // },\n // {\n // breakpoint: 768,\n // settings: {\n // slidesToShow: 1.1,\n // },\n // },\n // {\n // breakpoint: 616,\n // settings: {\n // slidesToShow: 1,\n // },\n // },\n // ],\n};\n\nconst Index = () => {\n const navigate = useNavigate();\n const params = useParams();\n const { ship_name, shipid } = params;\n const { data, isLoading, refetch } = useGetSingleShipQuery(shipid);\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n\n const sliderContainerRef = useRef(null);\n const [sneakPeakItemWidthRatio, setSneakPeakItemWidthRatio] = useState(1);\n\n useEffect(() => {\n const updateSliderItemWidth = () => {\n if (!sliderContainerRef.current) {\n return;\n }\n\n const container = sliderContainerRef.current;\n let sliderImageWidth = 615;\n\n if (container.clientWidth <= 615) {\n sliderImageWidth = container.clientWidth;\n }\n\n const updatedItemWidthRatio =\n (container.clientWidth / sliderImageWidth) * 0.95;\n setSneakPeakItemWidthRatio(updatedItemWidthRatio);\n };\n\n if (isLoading) {\n return;\n }\n\n updateSliderItemWidth();\n\n window.addEventListener(\"resize\", updateSliderItemWidth);\n\n return () => {\n return window.removeEventListener(\"resize\", updateSliderItemWidth);\n };\n }, [data]);\n\n const [gameImage, setGameImage] = useState([\n {\n img: GameRoom1,\n title: \"Ultimate Gaming Experience\",\n },\n {\n img: \"https://d30s60cgc31mft.cloudfront.net/assets/ship-small.png\",\n title: \"Ultimate Gaming Experience\",\n },\n {\n img: GameRoom3,\n title: \"Ultimate Gaming Experience\",\n },\n ]);\n\n const [themes, setThemes] = useState([\n {\n img: ShipTheme,\n title: \"Classic theme\",\n active: true,\n },\n ]);\n\n const StarHawkslider = [\n {\n id: 0,\n largeImg: SneakyPeakStarHawkImg1,\n thumbImg: Thumb1,\n },\n {\n id: 1,\n largeImg: SneakyPeakStarHawkImg2,\n thumbImg: Thumb2,\n },\n\n {\n id: 2,\n largeImg: SneakyPeakStarHawkImg3,\n thumbImg: Thumb3,\n },\n {\n id: 3,\n largeImg: SneakyPeakStarHawkImg4,\n thumbImg: Thumb1,\n },\n ];\n\n const Prometheusslider = [\n {\n id: 0,\n largeImg: SneakyPeakPrometheusImg1,\n thumbImg: Thumb1,\n },\n {\n id: 1,\n largeImg: SneakyPeakPrometheusImg2,\n thumbImg: Thumb2,\n },\n\n {\n id: 2,\n largeImg: SneakyPeakPrometheusImg3,\n thumbImg: Thumb3,\n },\n {\n id: 3,\n largeImg: SneakyPeakPrometheusImg4,\n thumbImg: Thumb1,\n },\n ];\n\n const MachraiderSlider = [\n {\n id: 0,\n largeImg: SneakyPeakMachraiderImg1,\n thumbImg: Thumb1,\n },\n {\n id: 1,\n largeImg: SneakyPeakMachraiderImg2,\n thumbImg: Thumb2,\n },\n\n {\n id: 2,\n largeImg: SneakyPeakMachraiderImg3,\n thumbImg: Thumb3,\n },\n {\n id: 3,\n largeImg: SneakyPeakMachraiderImg4,\n thumbImg: Thumb1,\n },\n ];\n\n const [open, setOpen] = useState(false);\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n // const handleClick = (e) => {\n // if (e === \"MyAsset\") {\n // // setContentType(\"MyAsset\");\n // }\n // if (e === \"Premium\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // if (e === \"BuyNow\") {\n // setShowComingSoonPopup(true);\n // // This will open popup for purchasing when implemented, do not remove this will be used later\n // // setOpen(true);\n // }\n // };\n\n const handleClick = (e) => {\n if (e === \"MyAsset\") {\n // setContentType(\"MyAsset\");\n }\n if (e === \"Premium\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n }\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [isAddedToCart, setIsAddedToCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n const [isAssetOwned, setIsAssetOwned] = useState(false);\n const [selectedThemeIndex, setSelectedThemIndex] = useState(0);\n\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n // This needs to be updated from the api side first, we need to be able to pass the theme id to check too\n useEffect(() => {\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: data?.response?.data?._id,\n themeId: themesArr[selectedThemeIndex]?._id,\n isIap: true,\n });\n\n if (\n res?.data?.response?.statusEnum == 1 ||\n res?.data?.response?.statusEnum == 0\n ) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n setIsAssetOwned(isOwned);\n }\n } catch (e) {}\n }\n if (\n localStorage.getItem(\"accessToken\") &&\n data?.response?.statusEnum == 1\n ) {\n checkIfOwnedAsset();\n }\n }, [data, selectedThemeIndex]);\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // handle logic for usd currency here\n if (popupCurrency === \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency === \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addIapToCart();\n }\n // purchase iap\n else {\n checkoutIap(walletId);\n }\n }\n };\n\n const addIapToCart = () => {\n AddToCartQuery({\n category: \"ship\",\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency === \"usd\" ? \"usd\" : \"fstr\",\n itemThemeId: themesArr[selectedThemeIndex]._id,\n })\n .then((res) => {\n console.log(res.data);\n if (res?.data?.response?.statusEnum === 1) {\n setIsAddedToCart(true);\n refetchCartItems();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const checkoutIap = (walletId) => {\n if (popupCurrency == \"usd\") {\n navigate(\n `/checkout?productType=ship&productName=${data?.response?.data?.assetName}&amount=${themesArr[selectedThemeIndex]?.priceFiat}&productId=${data?.response?.data?._id}&themeId=${themesArr[selectedThemeIndex]._id}`\n );\n } else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?productType=ship&productName=${\n data?.response?.data?.assetName\n }&amount=${convertActualUsdToFstrPrice(\n themesArr[selectedThemeIndex]?.priceFiat\n )}&productId=${data?.response?.data?._id}&themeId=${\n themesArr[selectedThemeIndex]._id\n }&walletId=${walletId}`\n );\n }\n };\n\n // fetching all cart items\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch: refetchCartItems,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n\n // this effect will check if this item is already added to user's cart\n useEffect(() => {\n if (isFetchCartSuccess && GetCartItemQuery?.response?.statusEnum == 1) {\n let foundItem = GetCartItemQuery?.response?.data?.find((item) => {\n return (\n item?.itemId == data?.response?.data?._id &&\n item?.itemsThemeId == themesArr[selectedThemeIndex]._id\n );\n });\n\n // found an item in cart list with same item and theme id\n if (foundItem) {\n setIsAddedToCart(true);\n } else {\n setIsAddedToCart(false);\n }\n }\n }, [getCartItemLoader, data, selectedThemeIndex]);\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetCartItemByToken();\n }, []);\n\n let buyCardType = \"BuyNowTheme\";\n if (isAddedToCart) {\n // buyCardType = \"AddToCart\";\n } else if (isAssetOwned) {\n // buyCardType = \"MyAsset\";\n }\n\n if (data?.response && data.response.statusEnum !== 1) {\n navigate(\"/marketplace/ships\");\n // console.log(\"ifff con\");\n }\n\n let themesArr = [];\n\n if (data?.response?.statusEnum == 1) {\n themesArr = data?.response?.data?.themesArr.slice();\n }\n\n if (isLoading) {\n return (\n <div className=\"h-[500px] w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n return (\n <div className=\"relative px-4\">\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={isAddedToCart}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkoutIap}\n priceUsd={themesArr[selectedThemeIndex]?.priceFiat}\n />\n )}\n <div className=\"__back__container__section flex justify-between pb-[12px]\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n {/* <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this asset\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div> */}\n </div>\n <div className=\"lg:min-h-[350px] h-[350px] mb-6 md:mb-9 z-10 relative rounded flex justify-center items-center\">\n <Zoom>\n {\" \"}\n <img\n src={data?.response?.data?.largeThumbnail?.url}\n alt={data?.response?.data?.largeThumbnail?.fileName}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.style.display = \"none\";\n }}\n className=\"h-full w-full object-cover\"\n />\n </Zoom>\n </div>\n <div className=\"relative\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n <div className=\"block md:flex justify-stretch xl:justify-between items-start mb-7 md:mb-14 relative z-10 gap-10 md:gap-8 lg:gap-14\">\n <div className=\"sm:max-w-[48%] mb-10\">\n {/* <p className=\"clip-text font-medium mb-3\">About Ship</p> */}\n <h1 className=\"font-heading text-md mb-3\">\n {data?.response?.data?.assetName}\n </h1>\n <h3 className=\"text-gray-400 font-semibold mt-8\">Description:</h3>\n\n {data?.response?.data?.longDescription?.map((item, i) => (\n <div\n key={i}\n className=\"inner-html-headings [&>p]:text-white/90 max-md:[&>p]:text-[13px] [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(item),\n }}\n ></div>\n ))}\n {/* <p\n dangerouslySetInnerHTML={{\n __html: data?.response?.data?.longDescription?.[0],\n }}\n className=\"text-sm text-white text-opacity-90\"\n ></p> */}\n </div>\n <div className=\"flex-auto sm:max-w-[48%] py-[34px] px-7 bg-gradient-to-r from-[#312d26] to-[#30261d] rounded-[20px]\">\n {/* Type : BuyNow || Free || Premium || MyAsset */}\n <BuyCards\n type={buyCardType}\n isAddedToCart={isAddedToCart}\n // isOwned={isAssetOwned}\n isOwned={false}\n isLoading={userAssetInfo.isLoading ?? false}\n card=\"product\"\n title=\"Buy Ship\"\n // price={`$${data?.response?.data?.themesArr?.[0]?.priceFiat}`}\n price={`$${themesArr[selectedThemeIndex]?.priceFiat}`}\n star={convertUsdToFstrPrice(\n data?.response?.data?.themesArr?.[0]?.priceFiat\n )}\n handleData={(e) => {\n // if (process.env.REACT_APP_ENVIRONMENT === \"developer\") {\n handleClick(e);\n // } else {\n // setShowComingSoonPopup(true);\n // }\n }}\n onBuyHandle={() => {\n //if (process.env.REACT_APP_ENVIRONMENT === \"developer\") {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n // } else {\n // setShowComingSoonPopup(true);\n // }\n }}\n selectedThemeIndex={selectedThemeIndex}\n onThemeChange={(ind) => setSelectedThemIndex(ind)}\n themes={themesArr.map((item) => item.themeName)}\n />\n <ComingSoon\n status={showComingSoonPopup}\n text={`Ship purchases are on the way, and you'll soon have the opportunity to own exciting assets. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n </div>\n <div className=\"streaming-section my-10 md:my-20 z-10 relative\">\n <h2 className=\"font-heading text-lg md:text-2xl mb-5\">Themes</h2>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 gap-4\">\n {themesArr?.map((item, i) => (\n <div className=\"relative\" key={i}>\n <div\n className={`aspect-[247/149] rounded-lg border-2 ${\n i === selectedThemeIndex\n ? \"border-sec\"\n : \" border-transparent\"\n } ${item.comingSoon ? \"coming-soon\" : \"\"} cursor-pointer`}\n key={i}\n onClick={() => setSelectedThemIndex(i)}\n >\n <img\n src={item.thumbnail?.url}\n alt={item.themeName}\n className=\"h-full w-full object-cover rounded-lg\"\n />\n </div>\n <p className=\"font-medium mt-3\">{item?.themeName}</p>\n </div>\n ))}\n </div>\n </div>\n <div className=\"streaming-section my-10 md:my-20 z-10 relative\">\n <h2 className=\"font-heading text-lg md:text-2xl mb-5\">Sneaky Peek</h2>\n <div className=\"max-w-full\" ref={sliderContainerRef}>\n <SlickSlider\n {...sliderSettings}\n slidesToShow={sneakPeakItemWidthRatio}\n className=\"carousel-section\"\n >\n {themesArr[selectedThemeIndex].sneakPeakImages.map((item) => {\n return (\n <div\n key={item._id}\n className=\"w-full max-w-[615px] h-[292px]\"\n >\n <img\n className=\"h-full w-full object-cover\"\n src={item.url}\n alt=\"\"\n />\n </div>\n );\n })}\n </SlickSlider>\n </div>\n <div className=\"mt-12\">\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className=\"rounded-lg font-medium bg-gradient-3 border border-sec text-sm md:text-base justify-center py-3 px-5 md:px-10 flex gap-2 mt-4\"\n >\n Preview in Shuttle dealership\n </button>\n <Preview\n status={open}\n text=\"To preview the ship, login to Oculus to have full ship view inside Shuttle Dealership.\"\n heading=\"Preview in Shuttle Dealership\"\n handleData={() => setOpen(false)}\n />\n </div>\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:-bottom-[150px]\" />\n </div>\n <div className=\"streaming-section my-12 mt-14 md:my-20 md:mt-28 z-10 relative\">\n <div className=\"max-w-3xl mb-12\">\n <h2 className=\"font-heading text-lg md:text-2xl text-white mb-5\">\n Explore Gaming & Streaming inside Ship\n </h2>\n <p className=\"text-white/[0.90] text-sm md:text-base leading-normal\">\n Experience next-level gaming and streaming. Dive into immersive\n worlds, challenge friends in multiplayer battles, or simply relax\n and enjoy your favorite content. With cutting-edge technology and a\n vast selection of games and entertainment.\n </p>\n <h4 className=\"font-heading text-sm md:text-base clip-text mt-10 mb-3\">\n Explore Holo-Suite gaming\n </h4>\n <p className=\"text-white/[0.90] text-sm md:text-base leading-normal\">\n Embark on thrilling adventures within our Holo Suite, where gaming\n reaches new dimensions. Immerse yourself in futuristic challenges\n and interactive experiences like never before right inside your\n living space.\n </p>\n <h4 className=\"font-heading text-sm md:text-base clip-text mt-10 mb-3\">\n Explore Environmental gaming\n </h4>\n <p className=\"text-white/[0.90] text-sm md:text-base leading-normal\">\n Embark on epic adventures in otherworldly environments with\n Environmental Gaming. Explore alien planets and futuristic\n landscapes in a gaming experience like no other.\n </p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4\">\n {gameImage.map((item, i) => (\n <div className=\"aspect-[403/207] bg-[#2D2D2D]\" key={i}>\n <img\n src={item.img}\n alt={item.title}\n className=\"h-full w-full object-cover\"\n />\n </div>\n ))}\n </div>\n </div>\n <div className=\"h-[1px] bg-[#5a5a5a]/[0.20]\"></div>\n {/* <h2 className=\"font-heading text-lg md:text-2xl mt-10 md:mt-20 mb-7\">\n Suggested Ships\n </h2> */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-x-5 gap-y-8 lg:gap-y-16 mb-14 md:mb-28 mx-auto relative z-10\">\n {/* {ships?.map((item, i) => (\n <Fade key={i}>\n <MarketPlaceCard item={item} type=\"large\" />\n </Fade>\n ))} */}\n </div>\n\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n idToReport={data?.response?.data?._id}\n contentType={\"ship\"}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module utility-function\n *@developer Shubham K\n */\n\nexport const generateVideoPageUrl = (type, channelId, contentId) => {\n const base_url = \"content\";\n let url = base_url + \"/\" + type + \"/\" + channelId + \"/\" + contentId;\n return url;\n};\n\nexport const generateMusicPageUrl = (channelId, contentId) => {\n const base_url = \"content/music\";\n let url = base_url + \"/\" + channelId + \"/\" + contentId;\n return url;\n};\n\nexport const generateIapUrls = (\n contentType,\n contentIdOrSlug,\n contentName = \"\",\n contentSubType\n) => {\n const base_url = \"/marketplace\";\n let url;\n\n if (!contentType || !contentIdOrSlug) {\n throw new Error(\"must pass contentType and id/slug\");\n }\n\n contentType = contentType.toLowerCase();\n\n switch (contentType) {\n case \"apartment\":\n url = base_url + `/apartments/${contentIdOrSlug}/${contentName}`;\n break;\n case \"ship\":\n url = base_url + `/ships/${contentIdOrSlug}/${contentName}`;\n break;\n case \"clothing\":\n url = base_url + `/clothing/${contentSubType}/${contentIdOrSlug}`;\n break;\n case \"avatar\":\n url = base_url + `/avatars/${contentSubType}/${contentIdOrSlug}`;\n break;\n default:\n url = \"#\";\n }\n\n return url;\n};\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module MostTreadingarousel\n *@developer Sudhanshu\n */\n\nimport React, { useEffect } from \"react\";\nimport Slider from \"react-slick\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { Link } from \"react-router-dom\";\nimport { generateMusicPageUrl } from \"utils/generateUrls\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\nimport { convertUsdToFstrPrice, removeTrailingZeroes } from \"utils\";\nimport { useLazyGetSingleUserAssetsByTokenQuery } from \"store/slicer/userProfile\";\n\nconst LargeCarousel = ({ slider, type, isSuggestedContent }) => {\n // const CompanionCardClass = {\n // cardMainclass: \"w-full\",\n // cardMediaClass: \"w-[100%] hover:shadow-[0px_0px_5px_0px_rgba(102,102,102,1)] bg-[#2B2B2B] min-h-[200px] rounded-[10px]\",\n // cardtitleClass: \"py-[12px] text-[14px] font-light pl-[6px] max-[768px]:text-[13px]\",\n // cardButtonclass: \"\",\n // };\n\n // const settings = {\n // slidesToShow: 2.5,\n // slidesToScroll: 1,\n // dots: false,\n // swipeToSlide: true,\n // infinite: false,\n // focusOnSelect: true,\n // // arrows: false,\n // responsive: [\n // {\n // breakpoint: 1200,\n // settings: {\n // slidesToShow: 2.5,\n // },\n // },\n // {\n // breakpoint: 991,\n // settings: {\n // slidesToShow: 2.15,\n // },\n // },\n // {\n // breakpoint: 600,\n // settings: {\n // slidesToShow: 1.5,\n // },\n // },\n // {\n // breakpoint: 480,\n // settings: {\n // slidesToShow: 1,\n // },\n // },\n // ],\n // };\n const settings = {\n slidesToShow: isSuggestedContent ? 3 : 2.5,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: isSuggestedContent ? 3 : 2.5,\n },\n },\n {\n breakpoint: 991,\n settings: {\n slidesToShow: isSuggestedContent ? 3 : 2.15,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: isSuggestedContent ? 2 : 1.5,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: isSuggestedContent ? 1 : 1,\n },\n },\n ],\n };\n\n const setting2 = {\n slidesToShow: 4,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 4,\n },\n },\n {\n breakpoint: 991,\n settings: {\n slidesToShow: 2.5,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n },\n },\n ],\n };\n\n const setting3 = {\n slidesToShow: 6.75,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 6.75,\n },\n },\n {\n breakpoint: 991,\n settings: {\n slidesToShow: 5.5,\n },\n },\n {\n breakpoint: 767,\n settings: {\n slidesToShow: 5,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 3,\n },\n },\n ],\n };\n\n function generateLink() {\n let link = \"\";\n\n if (type == \"music\") {\n // link = `/marketplace/entertainment/content/music/`;\n link = `/marketplace/entertainment/`;\n }\n\n if (type == \"channel\") {\n link = `/marketplace/entertainment/channels/`;\n }\n\n if (type == \"trending\") {\n link = `/marketplace/entertainment/`;\n }\n\n return link;\n }\n\n const baseLink = generateLink();\n\n // fetching all user assets here and checking if user already owns this asset, calling this here wouldnt create an issue since the request will be cached and its better than calling this api in every page\n let [\n GetSingleUserAssetsByToken,\n { data: userAssetsData, isFetching, isSuccess, isError },\n ] = useLazyGetSingleUserAssetsByTokenQuery();\n\n if (!isFetching && isSuccess && userAssetsData?.response?.statusEnum == 1) {\n userAssetsData = userAssetsData?.response?.data;\n userAssetsData = userAssetsData.map((item) => item.content_id);\n } else {\n userAssetsData = [];\n }\n\n const isOwned = (id) => {\n return userAssetsData.includes(id);\n };\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetSingleUserAssetsByToken();\n }, []);\n return (\n <Slider\n {...((type === \"trending\" || type === \"premium\") && settings)}\n {...(type === \"music\" && setting2)}\n {...(type === \"channel\" && setting3)}\n className={`carousel-section ${\n type === \"channel\" ? \"channel-section\" : \"\"\n }`}\n >\n {slider.map(\n (slide, index) => {\n let link = baseLink;\n let bgUrl = \"\";\n // console.log(slide.category)\n switch (type) {\n case \"music\":\n // link = link + slide.channel + \"/\" + slide._id;\n link =\n link + generateMusicPageUrl(slide.channel, slide.contentSlug);\n break;\n case \"channel\":\n link = link + slide.channelHandle;\n bgUrl = slide?.channelThumbnail;\n break;\n case \"trending\":\n bgUrl = slide.thumbnail;\n // link = \"/marketplace/entertainment/content/volumetric-video/\" + slide.channel + \"/\" + slide._id;\n if (slide.category?.includes(\"180\")) {\n // link = link + \"180-video/\" + slide.channel + \"/\" + slide._id;\n link =\n link +\n generateVideoPageUrl(\n \"180-video\",\n slide.channel,\n slide.contentSlug\n );\n slide.tags = \"180 Video\";\n } else if (slide.category?.includes(\"360\")) {\n // link = link + \"360-video/\" + slide.channel + \"/\" + slide._id;\n link =\n link +\n generateVideoPageUrl(\n \"360-video\",\n slide.channel,\n slide.contentSlug\n );\n slide.tags = \"360 Video\";\n } else if (\n slide.category?.includes(\"2d\") ||\n slide.category?.includes(\"2D\")\n ) {\n // link = link + \"2D-video/\" + slide.channel + \"/\" + slide._id;\n link =\n link +\n generateVideoPageUrl(\n \"2D-video\",\n slide.channel,\n slide.contentSlug\n );\n slide.tags = \"2D Video\";\n } else if (slide.category?.includes(\"vol\")) {\n // link = link + \"volumetric-video/\" + slide.channel + \"/\" + slide._id;\n link =\n link +\n generateVideoPageUrl(\n \"volumetric-video\",\n slide.channel,\n slide.contentSlug\n );\n slide.tags = \"Volumetric\";\n }\n break;\n default:\n // link = \"/marketplace/entertainment/content/volumetric-video/\" + slide.channel + \"/\" + slide._id;\n link =\n link +\n generateVideoPageUrl(\n \"volumetric-video\",\n slide.channel,\n slide._id\n );\n slide.tags = \"Volumetric Video\";\n }\n\n return (\n <div className=\"slick-slide px-2.5\" key={index}>\n {/* <AssetCardOpen title=\"Robo Dog\" cardClass={CompanionCardClass} /> */}\n <div>\n {type !== \"channel\" && (\n <>\n <Link to={link}>\n <div\n className=\"aspect-[456/239] relative rounded-2xl bg-[#2B2B2B] mb-2.5 bg-center bg-cover\"\n style={{\n backgroundImage: `url('${\n bgUrl || slide.thumbnail || slide.mediaFile\n }')`,\n }}\n >\n {slide?.tags && (\n <span className=\"tags\">{slide?.tags}</span>\n )}\n {type === \"music\" && (\n <span className=\"music-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M21 3V15.5C21 16.4283 20.6313 17.3185 19.9749 17.9749C19.3185 18.6313 18.4283 19 17.5 19C16.5717 19 15.6815 18.6313 15.0251 17.9749C14.3687 17.3185 14 16.4283 14 15.5C14 14.5717 14.3687 13.6815 15.0251 13.0251C15.6815 12.3687 16.5717 12 17.5 12C18.04 12 18.55 12.12 19 12.34V6.47L9 8.6V17.5C9 18.4283 8.63125 19.3185 7.97487 19.9749C7.3185 20.6313 6.42826 21 5.5 21C4.57174 21 3.6815 20.6313 3.02513 19.9749C2.36875 19.3185 2 18.4283 2 17.5C2 16.5717 2.36875 15.6815 3.02513 15.0251C3.6815 14.3687 4.57174 14 5.5 14C6.04 14 6.55 14.12 7 14.34V6L21 3Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n )}\n </div>\n </Link>\n <p className=\"mb-2 text-sm\">{slide?.title}</p>\n {isOwned(slide._id) && (\n <button className=\"tag-item text-[#6BFEF6]\">\n Added to assets\n </button>\n )}\n {!isOwned(slide._id) && (\n <>\n {\" \"}\n {slide?.productType === \"Free\" && (\n <button className=\"tag-item\">Free</button>\n )}\n {slide?.productType === \"Paid\" && slide?.price && (\n <button className=\"tag-item\">\n {slide?.price} |{\" \"}\n {removeTrailingZeroes(\n convertUsdToFstrPrice(slide?.price)\n )}{\" \"}\n FSTR\n </button>\n )}\n {slide?.productType === \"Premium\" && (\n <button className=\"tag-item flex gap-4 items-center\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n >\n <path\n d=\"M6 22.0356C5.45 22.0356 4.979 21.8396 4.587 21.4476C4.195 21.0556 3.99934 20.585 4 20.0356V10.0356C4 9.48565 4.196 9.01465 4.588 8.62264C4.98 8.23064 5.45067 8.03498 6 8.03565H7V6.03565C7 4.65231 7.48767 3.47298 8.463 2.49765C9.43834 1.52231 10.6173 1.03498 12 1.03565C13.3833 1.03565 14.5627 1.52331 15.538 2.49865C16.5133 3.47398 17.0007 4.65298 17 6.03565V8.03565H18C18.55 8.03565 19.021 8.23165 19.413 8.62365C19.805 9.01565 20.0007 9.48631 20 10.0356V20.0356C20 20.5856 19.804 21.0566 19.412 21.4486C19.02 21.8406 18.5493 22.0363 18 22.0356H6ZM6 20.0356H18V10.0356H6V20.0356ZM12 17.0356C12.55 17.0356 13.021 16.8396 13.413 16.4476C13.805 16.0556 14.0007 15.585 14 15.0356C14 14.4856 13.804 14.0146 13.412 13.6226C13.02 13.2306 12.5493 13.035 12 13.0356C11.45 13.0356 10.979 13.2316 10.587 13.6236C10.195 14.0156 9.99934 14.4863 10 15.0356C10 15.5856 10.196 16.0566 10.588 16.4486C10.98 16.8406 11.4507 17.0363 12 17.0356ZM9 8.03565H15V6.03565C15 5.20231 14.7083 4.49398 14.125 3.91065C13.5417 3.32731 12.8333 3.03565 12 3.03565C11.1667 3.03565 10.4583 3.32731 9.875 3.91065C9.29167 4.49398 9 5.20231 9 6.03565V8.03565Z\"\n fill=\"white\"\n />\n </svg>\n Unlock Premium\n </button>\n )}\n </>\n )}\n </>\n )}\n {type === \"channel\" && (\n <>\n <Link to={link}>\n <img\n src={bgUrl}\n alt=\"\"\n className=\"aspect-square rounded-full\"\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src =\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/default.jpeg\";\n }}\n />\n <p className=\"my-2 leading-relaxed text-center text-sm md:text-base font-bold\">\n {slide?.channelName}\n </p>\n </Link>\n </>\n )}\n </div>\n </div>\n );\n }\n\n // <div className=\"slick-slide px-2.5\" key={index}>\n // <AssetCardOpen title=\"Robo Dog\" cardClass={CompanionCardClass} />\n // <div>\n // {type !== \"channel\" && <><div className='aspect-[456/239] relative rounded-2xl bg-[#2B2B2B] mb-2.5'>\n // {slide?.tags && <span className='tags'>{slide?.tags}</span>}\n // {type === \"music\" && <span className='music-icon'><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n // <path d=\"M21 3V15.5C21 16.4283 20.6313 17.3185 19.9749 17.9749C19.3185 18.6313 18.4283 19 17.5 19C16.5717 19 15.6815 18.6313 15.0251 17.9749C14.3687 17.3185 14 16.4283 14 15.5C14 14.5717 14.3687 13.6815 15.0251 13.0251C15.6815 12.3687 16.5717 12 17.5 12C18.04 12 18.55 12.12 19 12.34V6.47L9 8.6V17.5C9 18.4283 8.63125 19.3185 7.97487 19.9749C7.3185 20.6313 6.42826 21 5.5 21C4.57174 21 3.6815 20.6313 3.02513 19.9749C2.36875 19.3185 2 18.4283 2 17.5C2 16.5717 2.36875 15.6815 3.02513 15.0251C3.6815 14.3687 4.57174 14 5.5 14C6.04 14 6.55 14.12 7 14.34V6L21 3Z\" fill=\"white\" />\n // </svg></span>}\n // </div>\n // <p className='mb-2 text-sm'>{slide?.title}</p>\n // {slide?.productType === \"Free\" && <button className='tag-item'>Free</button>}\n // {slide?.productType === \"Paid\" && slide?.price && <button className='tag-item'>{slide?.price}</button>}\n // {slide?.productType === \"Premium\" && <button className='tag-item flex gap-4 items-center'>\n // <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\">\n // <path d=\"M6 22.0356C5.45 22.0356 4.979 21.8396 4.587 21.4476C4.195 21.0556 3.99934 20.585 4 20.0356V10.0356C4 9.48565 4.196 9.01465 4.588 8.62264C4.98 8.23064 5.45067 8.03498 6 8.03565H7V6.03565C7 4.65231 7.48767 3.47298 8.463 2.49765C9.43834 1.52231 10.6173 1.03498 12 1.03565C13.3833 1.03565 14.5627 1.52331 15.538 2.49865C16.5133 3.47398 17.0007 4.65298 17 6.03565V8.03565H18C18.55 8.03565 19.021 8.23165 19.413 8.62365C19.805 9.01565 20.0007 9.48631 20 10.0356V20.0356C20 20.5856 19.804 21.0566 19.412 21.4486C19.02 21.8406 18.5493 22.0363 18 22.0356H6ZM6 20.0356H18V10.0356H6V20.0356ZM12 17.0356C12.55 17.0356 13.021 16.8396 13.413 16.4476C13.805 16.0556 14.0007 15.585 14 15.0356C14 14.4856 13.804 14.0146 13.412 13.6226C13.02 13.2306 12.5493 13.035 12 13.0356C11.45 13.0356 10.979 13.2316 10.587 13.6236C10.195 14.0156 9.99934 14.4863 10 15.0356C10 15.5856 10.196 16.0566 10.588 16.4486C10.98 16.8406 11.4507 17.0363 12 17.0356ZM9 8.03565H15V6.03565C15 5.20231 14.7083 4.49398 14.125 3.91065C13.5417 3.32731 12.8333 3.03565 12 3.03565C11.1667 3.03565 10.4583 3.32731 9.875 3.91065C9.29167 4.49398 9 5.20231 9 6.03565V8.03565Z\" fill=\"white\" />\n // </svg>\n // Unlock Premium\n // </button>}\n // </>}\n // {type === \"channel\" && <>\n // <img src={slide?.url} alt='' className='aspect-square rounded-full' />\n // <p className='my-2 leading-relaxed text-center text-sm md:text-base font-bold'>{slide?.title}</p>\n // </>}\n // </div>\n // </div>\n )}\n </Slider>\n );\n};\n\nexport default LargeCarousel;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Entertainment-Data-Fetching-Api-Calls\n *@developer Shubham K\n */\n\nexport const EntertainmentSlice = createApi({\n reducerPath: \"Entertainment\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n getVolumetricVideos: builder.query({\n query: ({ channelId = \"\", searchQuery = \"\", page=1,limit=1000 }) => ({\n url:\n EndpointsSlug.GET_VOL_VIDEOS +\n \"?channelHandle=\" +\n channelId +\n \"&search=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\"+\n limit,\n method: \"GET\",\n }),\n }),\n getSingleVolumetricVideo: builder.query({\n query: (id) => ({\n url: EndpointsSlug.GET_SINGLE_VOL_VIDEO + `/${id}`,\n method: \"GET\",\n }),\n }),\n get180Videos: builder.query({\n query: ({ channelId = \"\", searchQuery = \"\", page=1,limit=1000 }) => ({\n url:\n EndpointsSlug.GET_180_VIDEOS +\n \"?channelHandle=\" +\n channelId +\n \"&search=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\"+\n limit,\n method: \"GET\",\n }),\n }),\n getSingle180Video: builder.query({\n query: (id) => ({\n url: EndpointsSlug.GET_SINGLE_180_VIDEO + `/${id}`,\n method: \"GET\",\n }),\n }),\n get360Videos: builder.query({\n query: ({ channelId = \"\", searchQuery = \"\", page=1,limit=1000 }) => ({\n url:\n EndpointsSlug.GET_360_VIDEOS +\n \"?channelHandle=\" +\n channelId +\n \"&search=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\"+\n limit,\n method: \"GET\",\n }),\n }),\n getSingle360Video: builder.query({\n query: (id) => ({\n url: EndpointsSlug.GET_SINGLE_360_VIDEO + `/${id}`,\n method: \"GET\",\n }),\n }),\n get2DVideos: builder.query({\n query: ({ channelId = \"\", searchQuery = \"\", page=1,limit=1000 }) => ({\n url:\n EndpointsSlug.GET_2D_VIDEOS +\n \"?channelHandle=\" +\n channelId +\n \"&search=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\"+\n limit,\n method: \"GET\",\n }),\n }),\n getSingle2DVideo: builder.query({\n query: (id) => ({\n url: EndpointsSlug.GET_SINGLE_2D_VIDEO + `/${id}`,\n method: \"GET\",\n }),\n }),\n getMusicVideos: builder.query({\n query: ({ channelId = \"\", searchQuery = \"\", page=1,limit=1000 }) => ({\n url:\n EndpointsSlug.GET_MUSIC_VIDEOS +\n \"?channelHandle=\" +\n channelId +\n \"&search=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=\"+\n limit,\n method: \"GET\",\n }),\n }),\n getSingleMusicVideo: builder.query({\n query: (id) => ({\n url: EndpointsSlug.GET_SINGLE_MUSIC_VIDEO + `/${id}`,\n method: \"GET\",\n }),\n }),\n getAllChannelsList: builder.query({\n query: ({ searchQuery = \"\" }) => ({\n url: EndpointsSlug.GET_ALL_CHANNELLIST + \"?searchQuery=\" + searchQuery,\n method: \"GET\",\n }),\n }),\n getSingleChannel: builder.query({\n query: (id) => ({\n url: EndpointsSlug.GET_SINGLE_CHANNEL + `/${id}`,\n method: \"GET\",\n }),\n }),\n getPremiumVideos: builder.query({\n query: (channelId = \"\") => ({\n url: EndpointsSlug.GET_PREMIUM_VIDEOS + \"?channelId=\" + channelId,\n method: \"GET\",\n }),\n }),\n getPremiumChannels: builder.query({\n query: (page, limit) => ({\n url: EndpointsSlug.GET_PREMIUM_CHANNELS,\n method: \"GET\",\n }),\n }),\n getRecommendedContent: builder.query({\n query: (data, category) => ({\n url:\n EndpointsSlug.GET_RECOMMENDED_CONTENT +\n \"?userId=\" +\n data.userId +\n \"&contentId=\" +\n data.contentId +\n \"&category=\" +\n data.category,\n method: \"GET\",\n }),\n }),\n getRecommendedChannels: builder.query({\n query: (userId = \"\", channelId) => ({\n url:\n EndpointsSlug.GET_RECOMMENDED_CHANNELS +\n \"?userId=\" +\n userId +\n \"&channelId=\" +\n channelId,\n method: \"GET\",\n }),\n }),\n getMostTrendingContent: builder.query({\n query: (contentType) => ({\n url:\n EndpointsSlug.GET_MOST_TRENDING_CONTENT +\n \"?contentType=\" +\n contentType,\n method: \"GET\",\n }),\n }),\n getTrendingChannels: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.POST_TRENDING_CHANNELS,\n method: \"POST\",\n body: payload,\n }),\n }),\n getAllChannelContent: builder.query({\n query: ({ searchQuery = \"\" }) => ({\n url: EndpointsSlug.GET_ALL_CHANNEL_CONTENT + \"?search=\" + searchQuery,\n method: \"GET\",\n }),\n }),\n getChannelContentAsset: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_CHANNEL_CONTENT_ASSET,\n method: \"GET\",\n }),\n }),\n }),\n});\n\nexport const {\n useGetVolumetricVideosQuery,\n useGetSingleVolumetricVideoQuery,\n useGet360VideosQuery,\n useGetSingle360VideoQuery,\n useGet180VideosQuery,\n useGetSingle180VideoQuery,\n useGet2DVideosQuery,\n useGetSingle2DVideoQuery,\n useGetMusicVideosQuery,\n useGetSingleMusicVideoQuery,\n useGetAllChannelsListQuery,\n useGetSingleChannelQuery,\n useGetPremiumVideosQuery,\n useGetPremiumChannelsQuery,\n useGetRecommendedChannelsQuery,\n useGetRecommendedContentQuery,\n useGetMostTrendingContentQuery,\n useGetTrendingChannelsMutation,\n useGetAllChannelContentQuery,\n useGetChannelContentAssetQuery,\n} = EntertainmentSlice;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module EntertainmentsLandingPage\n *@developer Sudhanshu\n */\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport { NavLink, useNavigate, useParams } from \"react-router-dom\";\nimport { Zoom } from \"react-reveal\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport LargeCarousel from \"components/carousel/MostTreading\";\nimport ChannelImage from \"assets/images/channel.png\";\nimport {\n useGetMusicVideosQuery,\n useGetPremiumVideosQuery,\n useGetMostTrendingContentQuery,\n useGetTrendingChannelsMutation,\n} from \"store/slicer/Entertainment\";\nimport Loader from \"components/Loader/Loader\";\nimport EntertainmentHero from \"assets/images/entertainment-hero.png\";\nimport ImageConstant from \"../../../constant/imageConstant\";\n\n/* The `Index` component is a React functional component that represents a page in the FourthStar User\nDashboard. It displays a layout of Entertainment Page with category Volumetric, 180, 360, 2D, Music and Channels */\nconst Index = () => {\n const navigate = useNavigate();\n\n const [allCategory] = useState([\n { name: \"Events\", slug: \"events\" },\n { name: \"Volumetric Video\", slug: \"volumetric-video\" },\n { name: \"180 video\", slug: \"180-video\" },\n { name: \"360 Video\", slug: \"360-video\" },\n { name: \"2D Video\", slug: \"2D-video\" },\n { name: \"Music\", slug: \"music\" },\n { name: \"Channels\", slug: \"channels\" },\n ]);\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n // const PremiumContent = [\n // { title: \"StellarVerse Spectacle: Cosmic Symphony\", productType: \"Premium\", id: \"1\"},\n // { title: \"StellarVerse Spectacle: Cosmic Symphony\", productType: \"Premium\", id: \"2\", tags: \"Volcap\"},\n // { title: \"StellarVerse Spectacle: Cosmic Symphony\", productType: \"Premium\", id: \"3\"},\n // { title: \"StellarVerse Spectacle: Cosmic Symphony\", productType: \"Premium\", id: \"4\"},\n // { title: \"StellarVerse Spectacle: Cosmic Symphony\", productType: \"Premium\", id: \"5\"},\n // ]\n\n //fetching trending channels\n const [TrendingChannelsData, setTrendingChannelsData] = useState([]);\n const [fetchTrendingChannels, trendindChannelInfo] =\n useGetTrendingChannelsMutation();\n\n useEffect(() => {\n async function fetchTChannels() {\n const res = await fetchTrendingChannels();\n if (res?.data?.result?.statusEnum == 1) {\n let data = res?.data?.result?.data;\n // channel data is stored inside another _id field\n data = data.map((item) => item?._id);\n data = data.map((item) => {\n let url = item?.channelThumbnail || ChannelImage;\n return {\n ...item,\n channelThumbnail: url,\n };\n });\n setTrendingChannelsData(data);\n }\n }\n\n fetchTChannels();\n }, []);\n\n // fetching music\n let {\n data: Music = [],\n isFetching: isFetchingMusic,\n isSuccess: isSuccessMusic,\n isError: isErrorMusic,\n error: errorMusic,\n } = useGetMusicVideosQuery({\n searchQuery: \"\",\n });\n\n // fetching trending content\n let {\n data: TrendingContent = [],\n isFetching: isFetchingtrendingContent,\n isSuccess: isSuccesstrendingContent,\n isError: isErrortrendingContent,\n error: errortrendingContent,\n } = useGetMostTrendingContentQuery(\"video\");\n\n // fetching premium videos\n let {\n data: PremiumContent = [],\n isFetching: isFetchingPremium,\n isSuccess: isSuccessPremium,\n isError: isErrorPremium,\n error: errorPremium,\n } = useGetPremiumVideosQuery(\"\");\n\n // Mapping music data\n if (isSuccessMusic && Music?.response?.statusEnum == 1) {\n Music = Music.response.data.content;\n\n Music = Music.map((item, ind) => {\n const title = item.contentName;\n let productType = \"Free\";\n if (\n item.contentPreference == \"paid\" ||\n item.contentPreference == \"premium\"\n ) {\n productType = \"Paid\";\n }\n if (item.contentPreference == \"subscription\") {\n productType = \"Premium\";\n }\n\n return {\n ...item,\n channel: item.channel?.channelHandle || item.channel?._id,\n title,\n productType,\n price: \"$\" + (item.price || 0),\n id: item._id,\n };\n });\n }\n\n // Mapping Premium data\n if (isSuccessPremium && PremiumContent?.response?.statusEnum == 1) {\n PremiumContent = PremiumContent.response.data;\n\n PremiumContent = PremiumContent.map((item, ind) => {\n const title = item.contentName;\n let productType = \"Paid\";\n if (\n item.contentPreference == \"paid\" ||\n item.contentPreference == \"premium\"\n ) {\n productType = \"Paid\";\n }\n if (item.contentPreference == \"subscription\") {\n productType = \"Premium\";\n }\n\n return {\n ...item,\n channel: item.channel?.channelHandle || item.channel?._id,\n title,\n productType,\n price: \"$\" + (item.price || 0),\n id: item._id,\n };\n });\n }\n\n // Mapping Trending Content data\n if (\n isSuccesstrendingContent &&\n !isErrortrendingContent &&\n TrendingContent?.result?.statusEnum == 1\n ) {\n TrendingContent = TrendingContent?.result?.data;\n\n TrendingContent = TrendingContent.map((item) => {\n return {\n ...item?.contentData,\n channel: item.channelId.channelHandle || item.contentData.channel,\n };\n });\n\n TrendingContent = TrendingContent.map((item, ind) => {\n const title = item.contentName;\n let productType = \"Free\";\n if (\n item.contentPreference == \"paid\" ||\n item.contentPreference == \"premium\"\n ) {\n productType = \"Paid\";\n }\n if (item.contentPreference == \"subscription\") {\n productType = \"Premium\";\n }\n\n return {\n ...item,\n title,\n productType,\n price: \"$\" + (item.price || 0),\n id: item._id,\n };\n });\n }\n\n // const Music = [\n // { title: \"Supermassive black hole\", productType: \"Paid\", id: \"1\", price: \"US$ 9.99\"},\n // { title: \"Supermassive black hole\", productType: \"Paid\", id: \"2\", price: \"US$ 9.99\"},\n // { title: \"Supermassive black hole\", productType: \"Paid\", id: \"3\", price: \"US$ 9.99\"},\n // { title: \"Supermassive black hole\", productType: \"Paid\", id: \"4\", price: \"US$ 9.99\"},\n // { title: \"Supermassive black hole\", productType: \"Paid\", id: \"5\", price: \"US$ 9.99\"},\n // ]\n\n const Channel = [\n { title: \"Nureal\", id: \"1\", url: ChannelImage },\n { title: \"Nureal\", id: \"2\", url: ChannelImage },\n { title: \"Nureal\", id: \"3\", url: ChannelImage },\n { title: \"Nureal\", id: \"4\", url: ChannelImage },\n { title: \"Nureal\", id: \"4\", url: ChannelImage },\n { title: \"Nureal\", id: \"4\", url: ChannelImage },\n { title: \"Nureal\", id: \"4\", url: ChannelImage },\n { title: \"Nureal\", id: \"5\", url: ChannelImage },\n ];\n\n const onSearchHandler = (q) => {\n navigate(\n `/marketplace/entertainment/volumetric-video?q=${encodeURIComponent(q)}`\n );\n };\n\n const searchInputRef = useRef(null);\n\n return (\n <div className=\"relative px-2 md:px-4 mb-14 lg:mb-28\">\n <Zoom>\n <div\n className=\"min-h-[200px] xl:min-h-[390px] bg-[#2D2D2D] h-full mb-10 md:mb-20 z-10 relative rounded bg-cover\"\n style={{\n backgroundImage: `url('${ImageConstant.ENTERTAINMENT_BANNER_IMAGE}')`,\n }}\n >\n <div className=\"absolute top-0 left-0 w-full h-full flex flex-col items-center justify-center p-4\">\n <h1 className=\"font-heading text-xl md:text-2xl lg:text-3xl text-center\">\n Welcome to Fourth Star Entertainment\n </h1>\n </div>\n </div>\n </Zoom>\n <div className=\"relative\">\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" />\n <div className=\"mb-20 heading relative z-10\">\n <div className=\"flex items-center justify-between mb-4 lg:mb-2\">\n <h3 className=\"font-heading text-sm sm:text-lg md:text-2xl\">\n Explore Categories\n </h3>\n <div className=\"relative w-1/2 sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n onClick={() => {\n onSearchHandler(searchInputRef?.current?.value);\n }}\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n ref={searchInputRef}\n onKeyDown={(e) => {\n if (e.key == \"Enter\") {\n onSearchHandler(searchInputRef?.current?.value);\n }\n }}\n />\n </div>\n </div>\n <p className=\"text-white text-opacity-90\">\n Explore a Multitude of Captivating Experiences.\n </p>\n <div className=\"mt-5 md:mt-8\">\n <ul className=\"flex gap-5 overflow-x-auto\">\n {allCategory?.map((category, i) => {\n if (category.slug == \"events\") {\n return (\n <li key={i}>\n <NavLink to={category?.slug} className=\"link-item\">\n <svg\n className=\"inline mt-[-4px] mr-2\"\n width=\"18\"\n height=\"20\"\n viewBox=\"0 0 18 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16 2H15V0H13V2H5V0H3V2H2C0.89 2 0.00999999 2.9 0.00999999 4L0 18C0 18.5304 0.210714 19.0391 0.585786 19.4142C0.960859 19.7893 1.46957 20 2 20H16C17.1 20 18 19.1 18 18V4C18 2.9 17.1 2 16 2ZM16 18H2V8H16V18ZM16 6H2V4H16V6ZM9 11H14V16H9V11Z\"\n fill=\"white\"\n />\n </svg>\n {category?.name}\n <span className=\"font-heading text-[14px] text-[#fbbc5e]\">\n {\" \"}\n LIVE\n </span>\n </NavLink>\n </li>\n );\n }\n\n return (\n <li key={i}>\n <NavLink to={category?.slug} className=\"link-item\">\n {category?.name}\n </NavLink>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n {isSuccesstrendingContent &&\n !isErrortrendingContent &&\n TrendingContent.length > 0 && (\n <div className=\"item-section mb-12 md:mb-24 relative z-10\">\n <h3 className=\"font-heading text-lg md:text-2xl mb-5\">\n Trending\n </h3>\n <LargeCarousel\n slider={TrendingContent}\n type=\"trending\"\n ></LargeCarousel>\n </div>\n )}\n {isFetchingtrendingContent && (\n <div className=\"min-h-[250px] grid place-items-center item-section mb-12 md:mb-24 relative z-10\">\n <Loader />\n </div>\n )}\n\n {isSuccessPremium && !isErrorPremium && PremiumContent.length > 0 && (\n <div className=\"item-section mb-12 md:mb-24 relative z-10\">\n <h3 className=\"font-heading text-lg md:text-2xl mb-5\">\n Premium Content: top picks for you\n </h3>\n <LargeCarousel\n slider={PremiumContent}\n type=\"trending\"\n ></LargeCarousel>\n </div>\n )}\n {isFetchingPremium && (\n <div className=\"min-h-[250px] grid place-items-center item-section mb-12 md:mb-24 relative z-10\">\n <Loader />\n </div>\n )}\n\n {/* <div className='item-section mb-12 md:mb-24 relative z-10'>\n <h3 className='font-heading text-lg md:text-2xl mb-5'>Premium Content: top picks for you</h3>\n {isSuccessPremium && !isErrorPremium && <LargeCarousel slider={PremiumContent} type=\"premium\"></LargeCarousel>}\n {isFetchingPremium && <div className='min-h-[250px] grid place-content-center'><Loader/></div>}\n </div> */}\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:-bottom-[150px]\" />\n </div>\n <div className=\"relative\">\n {!trendindChannelInfo.isLoading && TrendingChannelsData.length > 0 && (\n <div className=\"item-section mb-12 md:mb-24\">\n <div className=\"flex flex-wrap justify-between items-center mb-5 gap-4\">\n <h3 className=\"font-heading text-lg md:text-2xl\">\n Trending Channels\n </h3>\n {!trendindChannelInfo.isLoading &&\n TrendingChannelsData.length > 6 && (\n <NavLink\n to=\"/marketplace/entertainment/channels\"\n className={`clip-text text-[15px] font-semibold`}\n >\n See More\n </NavLink>\n )}\n </div>\n <LargeCarousel\n slider={TrendingChannelsData}\n type=\"channel\"\n ></LargeCarousel>\n </div>\n )}\n {trendindChannelInfo.isLoading && (\n <div className=\"min-h-[250px] grid place-content-center item-section mb-12 md:mb-24\">\n <Loader />\n </div>\n )}\n\n {isSuccessMusic && !isErrorMusic && Music.length > 0 && (\n <div className=\"item-section mb-12 md:mb-24\">\n <div className=\"flex flex-wrap justify-between items-center mb-5 gap-4\">\n <h3 className=\"font-heading text-lg md:text-2xl\">\n Discover Music\n </h3>\n <NavLink\n to=\"/marketplace/entertainment/music\"\n className={`clip-text text-[15px] font-semibold`}\n >\n See More\n </NavLink>\n </div>\n <LargeCarousel slider={Music} type=\"music\"></LargeCarousel>\n </div>\n )}\n {isFetchingMusic && (\n <div className=\"min-h-[250px] grid place-items-center mb-12 md:mb-24\">\n <Loader />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Events-Carousel-Card\n *@developer Shubham K\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport BgImage from \"assets/images/carousel_event_1.png\";\nimport CoinImage from \"assets/images/coin_dollar.png\";\nimport { Link } from \"react-router-dom\";\nimport { convertUsdToFstrPrice } from \"utils\";\n\nconst CarouselCard = ({ data }) => {\n const {\n id,\n type,\n title,\n channelName,\n dateAndTime,\n startTime,\n location,\n price,\n imgUrl,\n } = data;\n\n const [countDownText, setCountDownText] = useState(\"00D: 00H: 00M: 00S\");\n\n // logic for event countdown\n useEffect(() => {\n function calculateCountDown() {\n const eventDateTime = new Date(startTime);\n const currentTime = new Date();\n\n if (eventDateTime <= currentTime) {\n return setCountDownText(\"00D: 00H: 00M: 00S\");\n }\n\n // get total seconds between the times\n var delta =\n Math.abs(eventDateTime.getTime() - currentTime.getTime()) / 1000;\n\n // calculate (and subtract) whole days\n var days = Math.floor(delta / 86400);\n delta -= days * 86400;\n\n // calculate (and subtract) whole hours\n var hours = Math.floor(delta / 3600) % 24;\n delta -= hours * 3600;\n\n // calculate (and subtract) whole minutes\n var minutes = Math.floor(delta / 60) % 60;\n delta -= minutes * 60;\n\n // what's left is seconds\n var seconds = delta % 60; // in theory the modulus is not required\n\n setCountDownText(\n `${days}D: ${hours}H: ${minutes}M ${Math.floor(seconds)}S`\n );\n }\n\n const interval = setInterval(calculateCountDown, 1000);\n\n return () => clearInterval(interval);\n }, []);\n\n let chipText = \"360\";\n\n if (type?.includes(\"180\")) {\n chipText = \"180\";\n } else if (type?.toLowerCase().includes(\"vol\")) {\n chipText = \"Volumetric\";\n } else if (type?.toLowerCase().includes(\"2d\")) {\n chipText = \"2D\";\n } else if (type?.toLowerCase().includes(\"music\")) {\n chipText = \"Music\";\n }\n\n let eventText = \"Expo Dome\";\n\n if (type?.includes(\"180\")) {\n eventText = \"180 Lounge\";\n } else if (type?.includes(\"vol\")) {\n eventText = \"Expo Dome\";\n } else if (type?.includes(\"360\")) {\n eventText = \"360 Lounge\";\n }\n\n return (\n <Link to={`/marketplace/entertainment/event/${id}`}>\n <div\n className=\"__MAIN_CONTAINER__ relative w-[825px] max-w-full h-[434px] bg-center bg-no-repeat rounded-[8px] font-body\"\n // style={{\n // backgroundImage: `url('${imgUrl}')`,\n // }}\n >\n <img\n className=\"absolute top-0 left-0 w-full h-full rounded-[8px]\"\n src={imgUrl}\n alt=\"event-thumb\"\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = BgImage;\n }}\n />\n <div className=\"__GRADIENT_OVER_IMAGE__ events_card_gradient absolute top-0 left-0 w-full h-full rounded-[8px]\">\n <div className=\"__MAIN_CONTENT__ h-full p-[30px] flex flex-col justify-between items-start\">\n <span className=\"__ETA__ self-end rounded-[4px] bg-[#8A5F1E] py-[5px] px-[6px] lg:py-[10px] lg:px-[13px] text-[12px] md:text-[14px] lg:text-[20px] font-semibold leading-[16.6px]\">\n {countDownText}\n </span>\n <div className=\"__EVENT_DETAILS__\">\n <span className=\"rounded-[4px] bg-[rgba(67,67,67,0.40)] text-[10px] lg:text-[13px] font-semibold leading-[10.8px] px-[6px] py-[5px] lg:px-[13px] lg:py-[10px] backdrop:blur-sm\">\n {chipText} Event\n </span>\n <p className=\"__TITLE__ mt-[12px] text-[14px] sm:text-[16px] md:text-[20px] lg:text-[24px] font-bold leading-[26.4px]\">\n {title}\n </p>\n <p className=\"__HOSTED_BY__ mt-[8px] text-white/70 text-[10px] lg:text-[14px] font-bold leading-[21px]\">\n Hosted by {channelName}\n </p>\n <div className=\"__DATE_TIME__ mt-[13px] flex items-center gap-[9px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n {\" \"}\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.4 4.4H20V3.2C20 2.88174 19.8736 2.57652 19.6485 2.35147C19.4235 2.12643 19.1183 2 18.8 2C18.4817 2 18.1765 2.12643 17.9515 2.35147C17.7264 2.57652 17.6 2.88174 17.6 3.2V4.4H10.4V3.2C10.4 2.88174 10.2736 2.57652 10.0485 2.35147C9.82348 2.12643 9.51826 2 9.2 2C8.88174 2 8.57652 2.12643 8.35147 2.35147C8.12643 2.57652 8 2.88174 8 3.2V4.4H5.6C4.64522 4.4 3.72955 4.77928 3.05442 5.45442C2.37928 6.12955 2 7.04522 2 8V22.4C2 23.3548 2.37928 24.2705 3.05442 24.9456C3.72955 25.6207 4.64522 26 5.6 26H22.4C23.3548 26 24.2705 25.6207 24.9456 24.9456C25.6207 24.2705 26 23.3548 26 22.4V8C26 7.04522 25.6207 6.12955 24.9456 5.45442C24.2705 4.77928 23.3548 4.4 22.4 4.4ZM23.6 22.4C23.6 22.7183 23.4736 23.0235 23.2485 23.2485C23.0235 23.4736 22.7183 23.6 22.4 23.6H5.6C5.28174 23.6 4.97652 23.4736 4.75147 23.2485C4.52643 23.0235 4.4 22.7183 4.4 22.4V14H23.6V22.4ZM23.6 11.6H4.4V8C4.4 7.68174 4.52643 7.37652 4.75147 7.15147C4.97652 6.92643 5.28174 6.8 5.6 6.8H8V8C8 8.31826 8.12643 8.62348 8.35147 8.84853C8.57652 9.07357 8.88174 9.2 9.2 9.2C9.51826 9.2 9.82348 9.07357 10.0485 8.84853C10.2736 8.62348 10.4 8.31826 10.4 8V6.8H17.6V8C17.6 8.31826 17.7264 8.62348 17.9515 8.84853C18.1765 9.07357 18.4817 9.2 18.8 9.2C19.1183 9.2 19.4235 9.07357 19.6485 8.84853C19.8736 8.62348 20 8.31826 20 8V6.8H22.4C22.7183 6.8 23.0235 6.92643 23.2485 7.15147C23.4736 7.37652 23.6 7.68174 23.6 8V11.6Z\"\n fill=\"#CEC9C5\"\n />\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[16px] font-bold leading-[24px]\">\n {dateAndTime}\n </p>\n </div>\n <div className=\"__LOCATION__ mt-[13px] flex items-center gap-[9px]\">\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_3707_10888)\">\n <path\n d=\"M22.043 20.2733L15.8568 26.4554C15.613 26.6991 15.3235 26.8924 15.0049 27.0243C14.6864 27.1562 14.3449 27.2241 14 27.2241C13.6552 27.2241 13.3137 27.1562 12.9951 27.0243C12.6765 26.8924 12.387 26.6991 12.1433 26.4554L5.95702 20.2733C4.90068 19.2181 4.06272 17.9654 3.491 16.5867C2.91927 15.2079 2.62496 13.7302 2.62488 12.2378C2.6248 10.7455 2.91894 9.26771 3.49052 7.88891C4.0621 6.51012 4.89992 5.25729 5.95614 4.20197C7.01236 3.14666 8.2663 2.30951 9.64637 1.73833C11.0264 1.16715 12.5056 0.873128 13.9994 0.873047C15.4932 0.872966 16.9724 1.16683 18.3525 1.73786C19.7326 2.30889 20.9867 3.1459 22.043 4.2011C23.0994 5.25637 23.9375 6.5092 24.5092 7.88805C25.0809 9.26689 25.3752 10.7448 25.3752 12.2372C25.3752 13.7297 25.0809 15.2076 24.5092 16.5864C23.9375 17.9653 23.0994 19.2181 22.043 20.2733ZM20.188 6.05606C19.3754 5.24422 18.4107 4.60024 17.3489 4.16088C16.2872 3.72151 15.1492 3.49538 14 3.49538C12.8508 3.49538 11.7128 3.72151 10.6511 4.16088C9.58936 4.60024 8.62464 5.24422 7.81202 6.05606C6.9994 6.8679 6.35479 7.83169 5.915 8.8924C5.47522 9.95312 5.24886 11.09 5.24886 12.2381C5.24886 13.3862 5.47522 14.5231 5.915 15.5838C6.35479 16.6445 6.9994 17.6083 7.81202 18.4201L14 24.5987L20.188 18.4201C21.0008 17.6084 21.6455 16.6446 22.0854 15.5839C22.5252 14.5232 22.7516 13.3863 22.7516 12.2381C22.7516 11.0899 22.5252 9.95304 22.0854 8.89231C21.6455 7.83159 21.0008 6.86782 20.188 6.05606ZM14 15.7347C13.5339 15.7453 13.0704 15.6627 12.6367 15.4918C12.203 15.3209 11.8079 15.0651 11.4745 14.7396C11.1411 14.414 10.8761 14.0252 10.6952 13.5959C10.5143 13.1667 10.421 12.7056 10.4209 12.2399C10.4208 11.7741 10.5138 11.313 10.6945 10.8837C10.8752 10.4543 11.14 10.0654 11.4732 9.73963C11.8065 9.4139 12.2015 9.15797 12.6351 8.98687C13.0687 8.81576 13.5322 8.73292 13.9983 8.74322C14.9127 8.76342 15.783 9.14048 16.4227 9.79367C17.0624 10.4469 17.4207 11.3243 17.4209 12.2381C17.4211 13.1519 17.0632 14.0295 16.4239 14.6831C15.7845 15.3366 14.9145 15.7141 14 15.7347Z\"\n fill=\"white\"\n fillOpacity=\"0.7\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3707_10888\">\n <rect width=\"28\" height=\"27.973\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n\n <p className=\"text-white/70 text-[12px] lg:text-[16px] font-bold leading-[24px]\">\n {eventText}\n </p>\n </div>\n <div className=\"__PRICE__ mt-[13px] flex items-center gap-[9px]\">\n <img src={CoinImage} className=\"w-[26px] h-[26px]\" alt=\"\" />\n {price == 0 ? <p className=\"text-[12px] md:text-[16px] lg:text-[20px] text-[#fbbc5e] font-bold leading-[30px]\">Free</p>:<p className=\"text-[12px] md:text-[16px] lg:text-[20px] text-[#fbbc5e] font-bold leading-[30px]\">\n ${price} |{\" \"}\n <span className=\"text-[#FFDF6E]\">\n {convertUsdToFstrPrice(price)} FSTR\n </span>\n </p>}\n </div>\n </div>\n </div>\n </div>\n </div>\n </Link>\n );\n};\n\nexport default CarouselCard;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Event-Card\n *@developer Shubham K\n */\n\nimport { Link } from \"react-router-dom\";\nimport CoinImage from \"assets/images/coin_dollar.png\";\nimport card1 from \"assets/images/event_card_1.png\";\nimport { convertUsdToFstrPrice } from \"utils\";\n\nconst EventCard = ({ data }) => {\n const {\n id,\n type,\n title,\n channelName,\n dateAndTime,\n // location,\n price,\n imgUrl,\n isCarousel = false,\n } = data;\n\n let chipText = \"Volumetric\";\n\n if (type?.includes(\"180\")) {\n chipText = \"180\";\n } else if (type?.includes(\"vol\")) {\n chipText = \"Volumetric\";\n } else if (type?.includes(\"360\")) {\n chipText = \"360\";\n }\n\n let eventText = \"Expo Dome\";\n\n if (type?.includes(\"180\")) {\n eventText = \"180 Lounge\";\n } else if (type?.includes(\"vol\")) {\n eventText = \"Expo Dome\";\n } else if (type?.includes(\"360\")) {\n eventText = \"360 Lounge\";\n }\n // else if (type?.includes(\"2d\")) {\n // chipText = \"2D\";\n // } else if (type?.includes(\"music\")) {\n // chipText = \"Music\";\n // }\n\n return (\n <Link\n to={`/marketplace/entertainment/event/${id}`}\n className={`__MAIN_CONTAINER__ block w-full ${\n isCarousel ? \"max-w-[360px] 2xl:max-w-[404px]\" : \" lg:max-w-[48%]\"\n } ${isCarousel ? \"\" : \"hover:scale-105\"} transition-transform`}\n >\n <div className=\"\">\n <div\n className={`__BANNER_IMAGE_CONT__ relative h-[256px] !bg-cover !bg-no-repeat rounded-tl-lg rounded-tr-lg`}\n // style={{\n // background: `url('${imgUrl}')`,\n // }}\n >\n <img\n className=\"absolute top-0 left-0 w-full h-full object-cover rounded-tl-lg rounded-tr-lg\"\n src={imgUrl}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = card1;\n }}\n alt=\"event-thumb\"\n />\n <span className=\"absolute top-[12px] right-[12px] rounded-[4px] py-[10px] px-[13px] bg-[rgba(67,67,67,0.40)] backdrop:blur-[10px] text-[12px] font-bold\">\n {chipText} Event\n </span>\n </div>\n <div className=\"__CONTENT_DETAIL_CONTAINER__ px-[16px] pt-[16px] pb-[32px] bg-[rgba(255,255,255,0.04)] rounded-bl-lg rounded-br-lg\">\n <p className=\"__TITLE__ text-[18px] font-bold leading-[27px]\">\n {title}\n </p>\n <p className=\"__HOSTED_BY__ mt-[8px] text-white/70 text-[14px] font-semibold leading-[21px]\">\n Hosted by {channelName} Entertainment\n </p>\n <div className=\"__DATE_TIME__ mt-[13px] flex items-center gap-[6px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n {\" \"}\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.4 4.4H20V3.2C20 2.88174 19.8736 2.57652 19.6485 2.35147C19.4235 2.12643 19.1183 2 18.8 2C18.4817 2 18.1765 2.12643 17.9515 2.35147C17.7264 2.57652 17.6 2.88174 17.6 3.2V4.4H10.4V3.2C10.4 2.88174 10.2736 2.57652 10.0485 2.35147C9.82348 2.12643 9.51826 2 9.2 2C8.88174 2 8.57652 2.12643 8.35147 2.35147C8.12643 2.57652 8 2.88174 8 3.2V4.4H5.6C4.64522 4.4 3.72955 4.77928 3.05442 5.45442C2.37928 6.12955 2 7.04522 2 8V22.4C2 23.3548 2.37928 24.2705 3.05442 24.9456C3.72955 25.6207 4.64522 26 5.6 26H22.4C23.3548 26 24.2705 25.6207 24.9456 24.9456C25.6207 24.2705 26 23.3548 26 22.4V8C26 7.04522 25.6207 6.12955 24.9456 5.45442C24.2705 4.77928 23.3548 4.4 22.4 4.4ZM23.6 22.4C23.6 22.7183 23.4736 23.0235 23.2485 23.2485C23.0235 23.4736 22.7183 23.6 22.4 23.6H5.6C5.28174 23.6 4.97652 23.4736 4.75147 23.2485C4.52643 23.0235 4.4 22.7183 4.4 22.4V14H23.6V22.4ZM23.6 11.6H4.4V8C4.4 7.68174 4.52643 7.37652 4.75147 7.15147C4.97652 6.92643 5.28174 6.8 5.6 6.8H8V8C8 8.31826 8.12643 8.62348 8.35147 8.84853C8.57652 9.07357 8.88174 9.2 9.2 9.2C9.51826 9.2 9.82348 9.07357 10.0485 8.84853C10.2736 8.62348 10.4 8.31826 10.4 8V6.8H17.6V8C17.6 8.31826 17.7264 8.62348 17.9515 8.84853C18.1765 9.07357 18.4817 9.2 18.8 9.2C19.1183 9.2 19.4235 9.07357 19.6485 8.84853C19.8736 8.62348 20 8.31826 20 8V6.8H22.4C22.7183 6.8 23.0235 6.92643 23.2485 7.15147C23.4736 7.37652 23.6 7.68174 23.6 8V11.6Z\"\n fill=\"#CEC9C5\"\n />\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[14px] font-bold leading-[21px]\">\n {dateAndTime}\n </p>\n </div>\n <div className=\"__LOCATION__ mt-[13px] flex items-center gap-[6px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n {\" \"}\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_3707_10888)\">\n <path\n d=\"M22.043 20.2733L15.8568 26.4554C15.613 26.6991 15.3235 26.8924 15.0049 27.0243C14.6864 27.1562 14.3449 27.2241 14 27.2241C13.6552 27.2241 13.3137 27.1562 12.9951 27.0243C12.6765 26.8924 12.387 26.6991 12.1433 26.4554L5.95702 20.2733C4.90068 19.2181 4.06272 17.9654 3.491 16.5867C2.91927 15.2079 2.62496 13.7302 2.62488 12.2378C2.6248 10.7455 2.91894 9.26771 3.49052 7.88891C4.0621 6.51012 4.89992 5.25729 5.95614 4.20197C7.01236 3.14666 8.2663 2.30951 9.64637 1.73833C11.0264 1.16715 12.5056 0.873128 13.9994 0.873047C15.4932 0.872966 16.9724 1.16683 18.3525 1.73786C19.7326 2.30889 20.9867 3.1459 22.043 4.2011C23.0994 5.25637 23.9375 6.5092 24.5092 7.88805C25.0809 9.26689 25.3752 10.7448 25.3752 12.2372C25.3752 13.7297 25.0809 15.2076 24.5092 16.5864C23.9375 17.9653 23.0994 19.2181 22.043 20.2733ZM20.188 6.05606C19.3754 5.24422 18.4107 4.60024 17.3489 4.16088C16.2872 3.72151 15.1492 3.49538 14 3.49538C12.8508 3.49538 11.7128 3.72151 10.6511 4.16088C9.58936 4.60024 8.62464 5.24422 7.81202 6.05606C6.9994 6.8679 6.35479 7.83169 5.915 8.8924C5.47522 9.95312 5.24886 11.09 5.24886 12.2381C5.24886 13.3862 5.47522 14.5231 5.915 15.5838C6.35479 16.6445 6.9994 17.6083 7.81202 18.4201L14 24.5987L20.188 18.4201C21.0008 17.6084 21.6455 16.6446 22.0854 15.5839C22.5252 14.5232 22.7516 13.3863 22.7516 12.2381C22.7516 11.0899 22.5252 9.95304 22.0854 8.89231C21.6455 7.83159 21.0008 6.86782 20.188 6.05606ZM14 15.7347C13.5339 15.7453 13.0704 15.6627 12.6367 15.4918C12.203 15.3209 11.8079 15.0651 11.4745 14.7396C11.1411 14.414 10.8761 14.0252 10.6952 13.5959C10.5143 13.1667 10.421 12.7056 10.4209 12.2399C10.4208 11.7741 10.5138 11.313 10.6945 10.8837C10.8752 10.4543 11.14 10.0654 11.4732 9.73963C11.8065 9.4139 12.2015 9.15797 12.6351 8.98687C13.0687 8.81576 13.5322 8.73292 13.9983 8.74322C14.9127 8.76342 15.783 9.14048 16.4227 9.79367C17.0624 10.4469 17.4207 11.3243 17.4209 12.2381C17.4211 13.1519 17.0632 14.0295 16.4239 14.6831C15.7845 15.3366 14.9145 15.7141 14 15.7347Z\"\n fill=\"white\"\n fillOpacity=\"0.7\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3707_10888\">\n <rect width=\"28\" height=\"27.973\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[14px] font-bold leading-[21px]\">\n {eventText}\n </p>\n </div>\n <div className=\"__PRICE__ mt-[13px] flex items-center gap-[9px]\">\n <img src={CoinImage} className=\"w-[24px] h-[24px]\" alt=\"\" />\n {price == 0 ? <p className=\"text-[12px] md:text-[16px] lg:text-[20px] text-[#fbbc5e] font-bold leading-[30px]\">Free</p>:<p className=\"text-[12px] md:text-[16px] lg:text-[20px] text-[#fbbc5e] font-bold leading-[30px]\">\n {price} USD |{\" \"}\n <p className=\"inline text-[#FFDF6E]\">\n {convertUsdToFstrPrice(price)} FSTR\n </p>\n </p>}\n </div>\n </div>\n </div>\n </Link>\n );\n};\n\nexport default EventCard;\n","import React, { useState } from \"react\";\n\nconst FilterDropdown = ({ options, onChange }) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selectedOption, setSelectedOption] = useState(options[0]); // Initial filter value\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen);\n };\n\n const handleItemClick = (item) => {\n setSelectedOption(item); // Update the selected option\n setIsOpen(false); // Close the dropdown after selection\n onChange(item); // Call the onChange function with the selected item\n };\n\n return (\n <div className=\"relative inline-block\">\n <button\n className=\"bg-black text-white text-[16px] text-md flex justify-between px-[11px] py-1 items-center rounded cursor-pointer w-[190px] h-[34px] bg-transparent shadow border border-solid border-1 border-[#6A6A6A] whitespace-nowrap\"\n onClick={toggleDropdown}\n >\n {selectedOption}\n <span className=\" text-xs\">▼</span>\n </button>\n\n {isOpen && (\n <div className=\"absolute top-full left-0 w-auto rounded mt-[2px] py-1 bg-black text-white z-[2]\">\n {options.map((item, index) => (\n <div\n key={index}\n className={`px-3 py-2 text-md cursor-pointer whitespace-nowrap hover:text-[#fbbc5e] ${\n index !== options.length - 1 ? \"\" : \"\"\n }`}\n onClick={() => handleItemClick(item)}\n >\n {item}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default FilterDropdown;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Entertainment-Data-Fetching-Api-Calls\n *@developer Shubham K\n */\n\nexport const EventsSlice = createApi({\n reducerPath: \"Events\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n tagTypes: [\"eventListing\"],\n endpoints: (builder) => ({\n getEventsList: builder.query({\n query: ({ searchQuery = \"\", page = 1 }) => ({\n url:\n EndpointsSlug.GET_EVENT_LIST +\n \"?searchQuery=\" +\n searchQuery +\n \"&page=\" +\n page +\n \"&limit=10\",\n method: \"GET\",\n }),\n }),\n getEvent: builder.query({\n query: ({ eventId }) => ({\n url: EndpointsSlug.GET_ONE_EVENT + \"/\" + eventId,\n method: \"GET\",\n }),\n }),\n getRecommendedEvent: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_RECC_EVENT,\n method: \"GET\",\n }),\n }),\n getTodayEventsList: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_TODAY_EVENT_LIST,\n method: \"GET\",\n }),\n }),\n getUserEventsList: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_EVENT_LIST + \"?page=1&limit=9999\",\n method: \"GET\",\n }),\n providesTags: [\"eventListing\"],\n }),\n postAddParticipantToEvent: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.ADD_PARTICIPANT_TO_EVENT,\n method: \"POST\",\n body: payload,\n }),\n invalidatesTags: [\"eventListing\"],\n }),\n }),\n});\n\nexport const {\n useGetEventsListQuery,\n useGetEventQuery,\n useGetRecommendedEventQuery,\n useGetTodayEventsListQuery,\n useGetUserEventsListQuery,\n useLazyGetUserEventsListQuery,\n usePostAddParticipantToEventMutation,\n} = EventsSlice;\n","var token=/d{1,4}|D{3,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|W{1,2}|[LlopSZN]|\"[^\"]*\"|'[^']*'/g;var timezone=/\\b(?:[A-Z]{1,3}[A-Z][TC])(?:[-+]\\d{4})?|((?:Australian )?(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time)\\b/g;var timezoneClip=/[^-+\\dA-Z]/g;export default function dateFormat(date,mask,utc,gmt){if(arguments.length===1&&typeof date===\"string\"&&!/\\d/.test(date)){mask=date;date=undefined}date=date||date===0?date:new Date;if(!(date instanceof Date)){date=new Date(date)}if(isNaN(date)){throw TypeError(\"Invalid date\")}mask=String(masks[mask]||mask||masks[\"default\"]);var maskSlice=mask.slice(0,4);if(maskSlice===\"UTC:\"||maskSlice===\"GMT:\"){mask=mask.slice(4);utc=true;if(maskSlice===\"GMT:\"){gmt=true}}var _=function _(){return utc?\"getUTC\":\"get\"};var _d=function d(){return date[_()+\"Date\"]()};var D=function D(){return date[_()+\"Day\"]()};var _m=function m(){return date[_()+\"Month\"]()};var y=function y(){return date[_()+\"FullYear\"]()};var _H=function H(){return date[_()+\"Hours\"]()};var _M=function M(){return date[_()+\"Minutes\"]()};var _s=function s(){return date[_()+\"Seconds\"]()};var _L=function L(){return date[_()+\"Milliseconds\"]()};var _o=function o(){return utc?0:date.getTimezoneOffset()};var _W=function W(){return getWeek(date)};var _N=function N(){return getDayOfWeek(date)};var flags={d:function d(){return _d()},dd:function dd(){return pad(_d())},ddd:function ddd(){return i18n.dayNames[D()]},DDD:function DDD(){return getDayName({y:y(),m:_m(),d:_d(),_:_(),dayName:i18n.dayNames[D()],short:true})},dddd:function dddd(){return i18n.dayNames[D()+7]},DDDD:function DDDD(){return getDayName({y:y(),m:_m(),d:_d(),_:_(),dayName:i18n.dayNames[D()+7]})},m:function m(){return _m()+1},mm:function mm(){return pad(_m()+1)},mmm:function mmm(){return i18n.monthNames[_m()]},mmmm:function mmmm(){return i18n.monthNames[_m()+12]},yy:function yy(){return String(y()).slice(2)},yyyy:function yyyy(){return pad(y(),4)},h:function h(){return _H()%12||12},hh:function hh(){return pad(_H()%12||12)},H:function H(){return _H()},HH:function HH(){return pad(_H())},M:function M(){return _M()},MM:function MM(){return pad(_M())},s:function s(){return _s()},ss:function ss(){return pad(_s())},l:function l(){return pad(_L(),3)},L:function L(){return pad(Math.floor(_L()/10))},t:function t(){return _H()<12?i18n.timeNames[0]:i18n.timeNames[1]},tt:function tt(){return _H()<12?i18n.timeNames[2]:i18n.timeNames[3]},T:function T(){return _H()<12?i18n.timeNames[4]:i18n.timeNames[5]},TT:function TT(){return _H()<12?i18n.timeNames[6]:i18n.timeNames[7]},Z:function Z(){return gmt?\"GMT\":utc?\"UTC\":formatTimezone(date)},o:function o(){return(_o()>0?\"-\":\"+\")+pad(Math.floor(Math.abs(_o())/60)*100+Math.abs(_o())%60,4)},p:function p(){return(_o()>0?\"-\":\"+\")+pad(Math.floor(Math.abs(_o())/60),2)+\":\"+pad(Math.floor(Math.abs(_o())%60),2)},S:function S(){return[\"th\",\"st\",\"nd\",\"rd\"][_d()%10>3?0:(_d()%100-_d()%10!=10)*_d()%10]},W:function W(){return _W()},WW:function WW(){return pad(_W())},N:function N(){return _N()}};return mask.replace(token,function(match){if(match in flags){return flags[match]()}return match.slice(1,match.length-1)})}export var masks={default:\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",paddedShortDate:\"mm/dd/yyyy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"};export var i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],timeNames:[\"a\",\"p\",\"am\",\"pm\",\"A\",\"P\",\"AM\",\"PM\"]};var pad=function pad(val){var len=arguments.length>1&&arguments[1]!==undefined?arguments[1]:2;return String(val).padStart(len,\"0\")};var getDayName=function getDayName(_ref){var y=_ref.y,m=_ref.m,d=_ref.d,_=_ref._,dayName=_ref.dayName,_ref$short=_ref[\"short\"],_short=_ref$short===void 0?false:_ref$short;var today=new Date;var yesterday=new Date;yesterday.setDate(yesterday[_+\"Date\"]()-1);var tomorrow=new Date;tomorrow.setDate(tomorrow[_+\"Date\"]()+1);var today_d=function today_d(){return today[_+\"Date\"]()};var today_m=function today_m(){return today[_+\"Month\"]()};var today_y=function today_y(){return today[_+\"FullYear\"]()};var yesterday_d=function yesterday_d(){return yesterday[_+\"Date\"]()};var yesterday_m=function yesterday_m(){return yesterday[_+\"Month\"]()};var yesterday_y=function yesterday_y(){return yesterday[_+\"FullYear\"]()};var tomorrow_d=function tomorrow_d(){return tomorrow[_+\"Date\"]()};var tomorrow_m=function tomorrow_m(){return tomorrow[_+\"Month\"]()};var tomorrow_y=function tomorrow_y(){return tomorrow[_+\"FullYear\"]()};if(today_y()===y&&today_m()===m&&today_d()===d){return _short?\"Tdy\":\"Today\"}else if(yesterday_y()===y&&yesterday_m()===m&&yesterday_d()===d){return _short?\"Ysd\":\"Yesterday\"}else if(tomorrow_y()===y&&tomorrow_m()===m&&tomorrow_d()===d){return _short?\"Tmw\":\"Tomorrow\"}return dayName};var getWeek=function getWeek(date){var targetThursday=new Date(date.getFullYear(),date.getMonth(),date.getDate());targetThursday.setDate(targetThursday.getDate()-(targetThursday.getDay()+6)%7+3);var firstThursday=new Date(targetThursday.getFullYear(),0,4);firstThursday.setDate(firstThursday.getDate()-(firstThursday.getDay()+6)%7+3);var ds=targetThursday.getTimezoneOffset()-firstThursday.getTimezoneOffset();targetThursday.setHours(targetThursday.getHours()-ds);var weekDiff=(targetThursday-firstThursday)/(864e5*7);return 1+Math.floor(weekDiff)};var getDayOfWeek=function getDayOfWeek(date){var dow=date.getDay();if(dow===0){dow=7}return dow};export var formatTimezone=function formatTimezone(date){return(String(date).match(timezone)||[\"\"]).pop().replace(timezoneClip,\"\").replace(/GMT\\+0000/g,\"UTC\")};","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Event-Cat-Page\n *@developer Shubham K\n */\n\nimport { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst All = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n // if (item.venueType?.includes(\"2d\")) {\n // eventType = \"2D\";\n // }\n // if (item.venueType?.includes(\"music\")) {\n // eventType = \"Music\";\n // }\n const currentTime = new Date();\n // Convert item.startTime to a Date object if it's a timestamp\n const itemStartTime = new Date(item.startTime);\n console.log(itemStartTime, currentTime);\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: eventType + \" Event\",\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default All;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst ArtCulture = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"art\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default ArtCulture;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst Education = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"education\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default Education;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst Gaming = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"gaming\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default Gaming;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst DanceMusic = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"dance\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default DanceMusic;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst Party = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"party\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default Party;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst Concerts = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"concert\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default Concerts;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst LiveQuest = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"quest\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default LiveQuest;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst Adventure = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"adventure\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default Adventure;\n","import { useState, useEffect } from \"react\";\nimport EventCard from \"../components/eventcard/EventCard\";\n\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport FilterDropdown from \"../components/filterdropdown/FilterDropDown\";\nimport { useGetEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport { Link } from \"react-router-dom\";\n\nconst Nature = () => {\n const [pageNum, setPageNum] = useState(1);\n const [allEventsData, setAllEventsData] = useState([]);\n const [totalPages, setTotalPages] = useState(null);\n const [isError, setIsError] = useState(false);\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\n \"All\",\n \"Volumetric Events\",\n \"360 Events\",\n \"180 Events\",\n ];\n\n const {\n data: currentEventsData,\n isFetching,\n isSuccess,\n isError: currentIsError,\n } = useGetEventsListQuery({ searchQuery: \"nature\", page: pageNum });\n\n useEffect(() => {\n if (\n !isFetching &&\n isSuccess &&\n currentEventsData.response.statusEnum === 1\n ) {\n console.log(\"allEventsData\", allEventsData);\n setTotalPages(currentEventsData.response?.data?.pagination.totalPages);\n const formattedEventsData = currentEventsData.response.data.data.map(\n (item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n }\n );\n if (pageNum > 1) {\n setAllEventsData((prevEventsData) => [\n ...prevEventsData,\n ...formattedEventsData,\n ]);\n } else {\n setAllEventsData(() => [...formattedEventsData]);\n }\n }\n }, [isFetching, isSuccess, currentEventsData]);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n\n const dummyEventsData = [\n {\n id: 1,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: 4,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n let filterdEventsData = allEventsData;\n\n if (selectedFilter == \"Volumetric Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"vol\")\n );\n }\n if (selectedFilter == \"360 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"360\")\n );\n }\n if (selectedFilter == \"180 Events\") {\n filterdEventsData = filterdEventsData.filter((item) =>\n item.venueType.toLowerCase().includes(\"180\")\n );\n }\n\n return (\n <>\n <div className=\"flex justify-between items-center\">\n <h2 className=\"font-heading text-[20px] leading-[30px]\">\n Upcoming Events\n </h2>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filterdEventsData?.length > 0 && (\n <>\n <div className=\"mt-[40px] flex justify-center lg:justify-between items-center gap-y-[20px] flex-wrap\">\n {filterdEventsData.map((item, ind) => (\n <EventCard key={item?.id} data={item} />\n ))}\n </div>\n\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n (!filterdEventsData || filterdEventsData?.length == 0) && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n </>\n );\n};\n\nexport default Nature;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Events-Main-Page\n *@developer Shubham K\n */\n\nimport Slider from \"react-slick\";\nimport CarouselCard from \"./components/carouselcard/CarouselCard\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport All from \"./list/All\";\nimport ArtCulture from \"./list/ArtCulture\";\nimport Education from \"./list/Education\";\nimport Gaming from \"./list/Gaming\";\nimport DanceMusic from \"./list/DanceMusic\";\nimport Party from \"./list/Party\";\nimport Concerts from \"./list/Concerts\";\nimport LiveQuest from \"./list/LiveQuest\";\nimport Adventure from \"./list/Adventure\";\nimport Nature from \"./list/Nature\";\n\nimport { useEffect, useState } from \"react\";\nimport { useGetTodayEventsListQuery } from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\n\nimport CarouselImage1 from \"assets/images/carousel_event_1.png\";\nimport CarouselImage2 from \"assets/images/carousel_event_2.png\";\nimport Loader from \"components/Loader/Loader\";\n\nconst Events = () => {\n const navigate = useNavigate();\n\n let {\n data: eventsData,\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n } = useGetTodayEventsListQuery();\n\n if (!isFetching && IsDataAvailable && eventsData.response.statusEnum == 1) {\n eventsData = eventsData.response.data.data.map((item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n startTime: item.startTime,\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n });\n } else {\n eventsData = [];\n isError = true;\n }\n\n const dummyCarouselData = [\n {\n id: 1,\n type: \"Volumetric\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n eta: \"00D: 12H: 45M: 45S\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: CarouselImage1,\n },\n {\n id: 2,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n eta: \"00D: 12H: 45M: 45S\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: CarouselImage2,\n },\n {\n id: 3,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n eta: \"00D: 12H: 45M: 45S\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: CarouselImage1,\n },\n {\n id: 4,\n type: \"Volumetric\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n eta: \"00D: 12H: 45M: 45S\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: CarouselImage2,\n },\n {\n id: 5,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n eta: \"00D: 12H: 45M: 45S\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: CarouselImage1,\n },\n ];\n\n const sliderSettings = {\n slidesToShow: 1.71,\n slidesToScroll: 1,\n dots: false,\n arrows: true,\n swipeToSlide: true,\n // infinite: false,\n focusOnSelect: true,\n autoplay: true,\n cssEase: \"ease-in\",\n // arrows: false,\n responsive: [\n {\n breakpoint: 1507,\n settings: {\n slidesToShow: 1.5,\n },\n },\n {\n breakpoint: 1281,\n settings: {\n slidesToShow: 1.25,\n },\n },\n {\n breakpoint: 1025,\n settings: {\n slidesToShow: 1.15,\n },\n },\n {\n breakpoint: 913,\n settings: {\n slidesToShow: 1,\n },\n },\n ],\n };\n\n const myAssetsTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"all\",\n name: \"All\",\n children: null,\n component: <All />,\n },\n {\n id: 1,\n parentId: 0,\n key: \"art-culture\",\n name: \"Art & Culture\",\n children: null,\n component: <ArtCulture />,\n },\n {\n id: 2,\n parentId: 0,\n key: \"education\",\n name: \"Education\",\n children: null,\n component: <Education />,\n },\n {\n id: 3,\n parentId: 0,\n key: \"gaming\",\n name: \"Gaming\",\n children: null,\n component: <Gaming />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"dance-music\",\n name: \"Dance & Music\",\n children: null,\n component: <DanceMusic />,\n },\n {\n id: 5,\n parentId: 0,\n key: \"party\",\n name: \"Party\",\n children: null,\n component: <Party />,\n },\n {\n id: 6,\n parentId: 0,\n key: \"concerts\",\n name: \"Concerts\",\n children: null,\n component: <Concerts />,\n },\n {\n id: 7,\n parentId: 0,\n key: \"live-quest\",\n name: \"Live Quest\",\n children: null,\n component: <LiveQuest />,\n },\n {\n id: 8,\n parentId: 0,\n key: \"nature\",\n name: \"Nature\",\n children: null,\n component: <Nature />,\n },\n {\n id: 9,\n parentId: 0,\n key: \"adventure\",\n name: \"Adventure\",\n children: null,\n component: <Adventure />,\n },\n ];\n\n const handleChange = (event, newValue) => {\n switch (newValue) {\n case 0:\n navigate(\"/marketplace/entertainment/events/all\");\n break;\n case 1:\n navigate(\"/marketplace/entertainment/events/art-culture\");\n break;\n case 2:\n navigate(\"/marketplace/entertainment/events/education\");\n break;\n case 3:\n navigate(\"/marketplace/entertainment/events/gaming\");\n break;\n case 4:\n navigate(\"/marketplace/entertainment/events/dance-music\");\n break;\n case 5:\n navigate(\"/marketplace/entertainment/events/party\");\n break;\n case 6:\n navigate(\"/marketplace/entertainment/events/concerts\");\n break;\n case 7:\n navigate(\"/marketplace/entertainment/events/live-quest\");\n break;\n case 8:\n navigate(\"/marketplace/entertainment/events/nature\");\n break;\n case 9:\n navigate(\"/marketplace/entertainment/events/adventure\");\n break;\n default:\n break;\n }\n };\n const { activeTab } = useParams();\n\n const [activeTabs, setActivetab] = useState(() => {\n const tab = myAssetsTabs.find((tab) => tab.key === activeTab);\n return tab ? tab : myAssetsTabs[0]; // Default to the first tab if activeTab is not found\n });\n\n return (\n <div className=\"\">\n <div className=\"__back_btn_container__\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.30] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </div>\n {!isFetching && eventsData && eventsData.length > 0 && (\n <div className=\"__CAROUSEL_CONTAINER__ mt-[22px]\">\n <h3 className=\" text-white/50 font-bold text-[16px] leading-[24px]\">\n Today's Events\n </h3>\n <div className=\"__CAROUSEL__ mt-[12px] lg:pl-[10px]\">\n <Slider\n {...sliderSettings}\n infinite={eventsData?.length > 1}\n className=\"carousel-section\"\n >\n {eventsData.map((item, index) => {\n return <CarouselCard key={index} data={item} />;\n })}\n </Slider>\n </div>\n </div>\n )}\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n <div\n className={`__myassets_container_main ${\n eventsData && eventsData?.length > 0 ? \"mt-[40px]\" : \"mt-[22px]\"\n } py-[35px] flex flex-col md:flex-row max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]`}\n >\n <div className=\"__assets_category_panel w-[100%] md:w-[20%] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <h5 className=\"text-[grey] font-body mb-[10px] font-bold tracking-[1px] max-[768px]:hidden text-sm\">\n Category\n </h5>\n <div className=\"volumetric-card-left-shadow \"></div>\n <div className=\"overflow-hidden\">\n <ul\n data-testid=\"tablist\"\n className=\"overflow-y-scroll\n flex md:flex-col\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n \"\n >\n {myAssetsTabs?.map((tabs, index) => {\n return (\n <li\n role=\"tab\"\n key={tabs.key}\n className={`mr-8 md:mr-[0] whitespace-nowrap hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n }`}\n onClick={() => {\n setActivetab(tabs);\n handleChange(tabs.key, index);\n }}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n\n <div className=\"__assets_tabs_container_panel w-[100%] md:w-[80%] sm:p-[10px] md:pl-[56px] xl:pl-[96px] max-[768px]:w-auto max-[768px]:h-auto xl:min-h-[768px] max-[768px]:mt-[18px]\">\n {activeTabs.component}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Events;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module GoogleButton \n *@developer Sudhanshu\n */\nimport googleIcon from \"assets/images/google-icon.png\"\nconst GoogleLogin = (props) => {\n const { className, text, type, disabled, onClick } = props;\n return (\n <button className={`${className} bg-white py-3 px-5 w-full rounded-lg text-black font-medium tracking-[0.8px] flex items-center justify-center gap-3`} type={type} onClick={onClick} disabled={disabled}>\n <img src={googleIcon} alt=\"\" className=\"mr-3 w-auto h-auto\"/> {text}\n </button>\n );\n}\n\nexport default GoogleLogin;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module PasswordCheckList\n *@developer Sudhanshu\n */\n\nimport {\n UPPERCASE_REGEX,\n LOWERCASE_REGEX,\n NUMBER_REGEX,\n LENGTH_REGEX,\n SPECIAL_CHARS_REGEX,\n} from \"utils/index\";\n\nconst rules = [\n { label: \"At least 1 Uppercase.\", pattern: UPPERCASE_REGEX },\n { label: \"At least 1 Lowercase.\", pattern: LOWERCASE_REGEX },\n { label: \"At least 1 Number.\", pattern: NUMBER_REGEX },\n { label: \"Minimum 8 Characters.\", pattern: LENGTH_REGEX },\n { label: \"At least 1 Special Character.\", pattern: SPECIAL_CHARS_REGEX },\n];\n\nconst CheckList = (props) => {\n return (\n <div className=\"mt-4 checklist pb-4\">\n <p className=\"text-sm font-semibold text-white mb-4\">\n Your password must contain:\n </p>\n {rules.map((rule, index) => {\n const cn =\n props.value && props.value.match(rule.pattern)\n ? \"passed\"\n : props.value.length > 0\n ? \"!text-error\"\n : \"\";\n return (\n <p className={`${cn} text-sm font-semibold mb-2 items`} key={index}>\n {rule.label}\n </p>\n );\n })}\n </div>\n );\n};\n\nexport default CheckList;\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport webRequestHandler from \"constant/api/apiInstance\";\nimport packageInfo from \"../../../../package.json\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\nconst instance = webRequestHandler(BASE_URL);\nexport const userLogin = createAsyncThunk(\n \"auth/login\",\n async ({ email, password }, { rejectWithValue }) => {\n try {\n const data = await instance.post(EndpointsSlug.LOGIN, {\n email,\n password,\n loginFrom: \"web\",\n version: packageInfo.version,\n });\n\n if (data?.response && data?.response?.statusEnum === 1) {\n // store user's token in local storage\n localStorage.setItem(\"accessToken\", data?.response?.data?.accessToken);\n let userInfo = {\n ...(data?.response?.data?.user?._id && {\n id: data?.response?.data?.user?._id,\n }),\n ...(data?.response?.data?.user?.email && {\n email: data?.response?.data?.user?.email,\n }),\n ...(data?.response?.data?.user?.firstName && {\n firstName: data?.response?.data?.user?.firstName,\n }),\n ...(data?.response?.data?.user?.lastName && {\n lastName: data?.response?.data?.user?.lastName,\n }),\n ...(data?.response?.data?.user?.userName && {\n userName: data?.response?.data?.user?.userName,\n }),\n ...(data?.response?.data?.user?.gender && {\n gender: data?.response?.data?.user?.gender,\n }),\n ...(data?.response?.data?.user?.dob && {\n dob: data?.response?.data?.user?.dob,\n }),\n ...(data?.response?.data?.user?.statusFlag && {\n statusFlag: data?.response?.data?.user?.statusFlag,\n }),\n ...(data?.response?.data?.user?.isVerified && {\n isVerified: data?.response?.data?.user?.isVerified,\n }),\n ...(data?.response?.data?.user?.photo && {\n photo: data?.response?.data?.user?.photo,\n }),\n };\n localStorage.setItem(\"userInfo\", JSON.stringify(userInfo));\n localStorage.setItem(\"email\", email);\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n\nexport const googleSigin = createAsyncThunk(\n \"auth/googlesigin\",\n async ({ access_token }, { rejectWithValue }) => {\n try {\n const data = await instance.post(EndpointsSlug.GOOGLESIGIN, {\n access_token,\n });\n if (data?.response && data?.response?.statusEnum === 1) {\n // store user's token in local storage\n localStorage.setItem(\"accessToken\", data?.response?.data?.accessToken);\n // let userInfo = {\n // ...(data?.response?.data?.userData?._id && {\n // id: data?.response?.data?.userData?._id,\n // }),\n // ...(data?.response?.data?.userData?.email && {\n // email: data?.response?.data?.userData?.email,\n // }),\n // ...(data?.response?.data?.userData?.firstName && {\n // firstName: data?.response?.data?.userData?.firstName,\n // }),\n // ...(data?.response?.data?.userData?.lastName && {\n // lastName: data?.response?.data?.userData?.lastName,\n // }),\n // ...(data?.response?.data?.userData?.userName && {\n // userName: data?.response?.data?.userData?.userName,\n // }),\n // ...(data?.response?.data?.userData?.gender && {\n // gender: data?.response?.data?.userData?.gender,\n // }),\n // ...(data?.response?.data?.userData?.dob && {\n // dob: data?.response?.data?.userData?.dob,\n // }),\n // ...(data?.response?.data?.userData?.statusFlag && {\n // statusFlag: data?.response?.data?.userData?.statusFlag,\n // }),\n // ...(data?.response?.data?.userData?.isVerified && {\n // isVerified: data?.response?.data?.userData?.isVerified,\n // }),\n // ...(data?.response?.data?.userData?.photo && {\n // photo: data?.response?.data?.userData?.photo,\n // }),\n // };\n let userInfo = data?.response?.data?.user;\n userInfo = {\n ...userInfo,\n id: userInfo?._id,\n };\n localStorage.setItem(\"userInfo\", JSON.stringify(userInfo));\n localStorage.setItem(\"email\", data?.response?.data?.user?.email);\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n\nexport const registerUser = createAsyncThunk(\n \"auth/register\",\n async ({ name, email, password, isPromotion }, { rejectWithValue }) => {\n try {\n const data = await instance.post(EndpointsSlug.SIGNUP, {\n name,\n email,\n password,\n isPromotion,\n });\n if (data?.response && data?.response?.statusEnum === 1) {\n localStorage.setItem(\"email\", data?.response?.data?.email);\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n\nexport const verifyUser = createAsyncThunk(\n \"auth/verify\",\n async ({ email, otp }, { rejectWithValue }) => {\n try {\n const path = localStorage.getItem(\"isForgot\")\n ? EndpointsSlug.VERIFY_FORGOT_OTP\n : EndpointsSlug.VERIFY_OTP;\n const data = await instance.post(path, { email, otp });\n if (data?.response && data?.response?.statusEnum === 1) {\n localStorage.removeItem(\"email\");\n if (data?.response?.data?.accessToken) {\n localStorage.setItem(\n \"accessToken\",\n data?.response?.data?.accessToken\n );\n }\n if (data?.response?.data?.user) {\n let userInfo = {\n ...(data?.response?.data?.user?._id && {\n id: data?.response?.data?.user?._id,\n }),\n ...(data?.response?.data?.user?.email && {\n email: data?.response?.data?.user?.email,\n }),\n ...(data?.response?.data?.user?.firstName && {\n firstName: data?.response?.data?.user?.firstName,\n }),\n ...(data?.response?.data?.user?.lastName && {\n lastName: data?.response?.data?.user?.lastName,\n }),\n ...(data?.response?.data?.user?.userName && {\n userName: data?.response?.data?.user?.userName,\n }),\n ...(data?.response?.data?.user?.gender && {\n gender: data?.response?.data?.user?.gender,\n }),\n ...(data?.response?.data?.user?.dob && {\n dob: data?.response?.data?.user?.dob,\n }),\n ...(data?.response?.data?.user?.statusFlag && {\n statusFlag: data?.response?.data?.user?.statusFlag,\n }),\n ...(data?.response?.data?.user?.isVerified && {\n isVerified: data?.response?.data?.user?.isVerified,\n }),\n };\n localStorage.setItem(\"userInfo\", JSON.stringify(userInfo));\n }\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n\nexport const forgotPassword = createAsyncThunk(\n \"auth/forgot\",\n async ({ email }, { rejectWithValue }) => {\n try {\n const data = await instance.post(EndpointsSlug.FORGOT_PASSWORD, {\n email,\n });\n if (data?.response && data?.response?.statusEnum === 1) {\n localStorage.setItem(\"isForgot\", email);\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n\n// export const resetPassword = createAsyncThunk(\n// 'auth/reset',\n// async ({ email, password }, { rejectWithValue }) => {\n// try {\n// const data = await instance.post(EndpointsSlug.RESET_PASSWORD, {email, password});\n// if (data?.response && data?.response?.statusEnum === 1) {\n// localStorage.removeItem('isForgot');\n// return data?.response;\n// } else {\n// return rejectWithValue(data.response)\n// }\n\n// } catch (error) {\n// if (error.response && error.response.data.message) {\n// return rejectWithValue(error.response.data.message)\n// } else {\n// return rejectWithValue(error.message)\n// }\n// }\n// }\n\nexport const resetPassword = createAsyncThunk(\n \"auth/reset\",\n async ({ passwordResetToken, password }, { rejectWithValue }) => {\n try {\n const data = await instance.post(EndpointsSlug.RESET_PASSWORD, {\n passwordResetToken,\n password,\n });\n if (data?.response && data?.response?.statusEnum === 1) {\n localStorage.removeItem(\"isForgot\");\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n\nexport const verifyForgetPasswordLink = createAsyncThunk(\n \"auth/verifyforgetpasswordlink\",\n async ({ passwordResetToken }, { rejectWithValue }) => {\n try {\n const data = await instance.post(\n EndpointsSlug.VERIFY_FORGET_PASSWORD_LINK,\n { passwordResetToken }\n );\n if (data?.response && data?.response?.statusEnum === 1) {\n return data?.response;\n } else {\n return rejectWithValue(data.response);\n }\n } catch (error) {\n if (error.response && error.response.data.message) {\n return rejectWithValue(error.response.data.message);\n } else {\n return rejectWithValue(error.message);\n }\n }\n }\n);\n","import { createSlice } from \"@reduxjs/toolkit\";\nimport {\n userLogin,\n registerUser,\n verifyUser,\n forgotPassword,\n resetPassword,\n verifyForgetPasswordLink,\n googleSigin,\n} from \"./authActions\";\n\nconst userToken = localStorage.getItem(\"accessToken\")\n ? localStorage.getItem(\"accessToken\")\n : null;\nconst userInfo = localStorage.getItem(\"userInfo\")\n ? JSON.parse(localStorage.getItem(\"userInfo\"))\n : null;\nconst initialState = {\n loading: false,\n userInfo, // for user object\n userToken, // for storing the JWT\n error: null,\n success: false, // for monitoring the registration process.\n successMsg: null,\n pwdTokenVerified: false, // to check if reset password token verified\n pwdResetComplete: false, // to check if password is reset successfully\n};\n\n// Handling State function or logics of User Authentication Module\n// Replace the CreateSlice method with RTK function - createAPI for storing api data directly into slicer\nexport const UserAuthSlice = createSlice({\n name: \"UserAuth\",\n initialState,\n reducers: {\n logout: (state) => {\n localStorage.removeItem(\"accessToken\"); // delete token from storage\n localStorage.removeItem(\"userInfo\");\n localStorage.removeItem(\"email\");\n state.loading = false;\n state.userInfo = null;\n state.userToken = null;\n state.error = null;\n state.successMsg = null;\n },\n setCredentials: (state, { payload }) => {\n if (payload?.message === \"Ok\") {\n if (payload?.response?.data) {\n state.userInfo = payload?.response?.data;\n }\n } else {\n state.userInfo = null;\n }\n },\n clearMsgState: (state) => {\n state.loading = false;\n state.error = null;\n state.successMsg = null;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(userLogin.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n })\n .addCase(userLogin.fulfilled, (state, { payload }) => {\n state.loading = false;\n state.userInfo = payload?.data?.user;\n state.success = true;\n state.successMsg = payload?.message;\n state.userToken = payload?.data?.accessToken;\n })\n .addCase(userLogin.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n })\n .addCase(googleSigin.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n })\n .addCase(googleSigin.fulfilled, (state, { payload }) => {\n state.loading = false;\n state.userInfo = payload?.data?.user;\n state.success = true;\n state.successMsg = payload?.message;\n state.userToken = payload?.data?.accessToken;\n })\n .addCase(googleSigin.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n })\n .addCase(registerUser.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n })\n .addCase(registerUser.fulfilled, (state, { payload }) => {\n state.loading = false;\n state.success = true;\n state.successMsg = payload?.message;\n })\n .addCase(registerUser.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n })\n .addCase(verifyUser.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n state.success = false;\n })\n .addCase(verifyUser.fulfilled, (state, { payload }) => {\n state.loading = false;\n if (payload?.data?.accessToken) {\n state.userToken = payload?.data?.accessToken;\n }\n if (payload?.data?.user) {\n state.userInfo = payload?.data?.user;\n }\n state.success = true;\n state.successMsg = payload?.message;\n })\n .addCase(verifyUser.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n })\n .addCase(forgotPassword.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n state.success = false;\n })\n .addCase(forgotPassword.fulfilled, (state, { payload }) => {\n state.loading = false;\n state.success = true;\n state.successMsg = payload?.message;\n })\n .addCase(forgotPassword.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n })\n .addCase(resetPassword.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n state.success = false;\n state.pwdResetComplete = false;\n })\n .addCase(resetPassword.fulfilled, (state, { payload }) => {\n state.loading = false;\n state.success = true;\n state.successMsg = payload?.message;\n state.pwdResetComplete = true;\n })\n .addCase(resetPassword.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n state.pwdResetComplete = false;\n })\n .addCase(verifyForgetPasswordLink.pending, (state) => {\n state.loading = true;\n state.error = null;\n state.successMsg = null;\n state.success = false;\n state.pwdTokenVerified = false;\n })\n .addCase(verifyForgetPasswordLink.fulfilled, (state, { payload }) => {\n state.loading = false;\n state.success = true;\n state.successMsg = payload?.message;\n state.pwdTokenVerified = true;\n })\n .addCase(verifyForgetPasswordLink.rejected, (state, { payload }) => {\n state.loading = false;\n state.error = payload?.message;\n state.successMsg = null;\n state.pwdTokenVerified = false;\n });\n },\n});\n\nexport const { logout, setCredentials, clearMsgState } = UserAuthSlice.actions;\n\nexport default UserAuthSlice.reducer;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module SingUp\n *@developer Sudhanshu <sudhanshut@instaacoders.com>\n */\n\nimport { Box } from \"@mui/material\";\nimport { useState, useEffect } from \"react\";\nimport { NavLink, useNavigate } from \"react-router-dom\";\nimport GoogleLogin from \"components/buttons/Google\";\nimport {\n isValidEmail,\n isStrongPassword,\n togglePasswordVisibility,\n} from \"utils/index\";\nimport { isContainsSpecialChars, isContainsNumber } from \"utils\";\n\nimport eyeOff from \"assets/images/eye-off.svg\";\nimport CheckList from \"components/password/checklist\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { registerUser } from \"store/slicer/userAuth/authActions\";\nimport { clearMsgState } from \"store/slicer/userAuth\";\nimport Alert from \"components/popup/Alert/Alert\";\n/* This code is a React component for user registration with the option to switch between \"User\" and \"Creator\" accounts. It performs real-time validation for name, email, and password, including password strength checks. Users can toggle the visibility of the password, and the form is enabled for submission when all requirements are met.\n */\nconst SignUp = () => {\n const [signUpType, setSignUpType] = useState(\"user\");\n const [formData, setFormData] = useState({\n name: \"\",\n email: \"\",\n password: \"\",\n });\n const [formErrors, setFormErrors] = useState({\n name: \"\",\n email: \"\",\n password: \"\",\n });\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n const [successBtnText, setSuccessBtnText] = useState(\"OK\");\n\n const [isMobile, setIsMobile] = useState(false);\n const [checkboxes, setCheckboxes] = useState({\n terms: false,\n cookies: false,\n promotions: false,\n });\n\n // Handle checkbox change\n const handleCheckboxChange = (event) => {\n const { name, checked } = event.target;\n setCheckboxes((prevCheckboxes) => ({\n ...prevCheckboxes,\n [name]: checked,\n }));\n };\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n handleResize();\n\n // Event listener for window resize\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n if (successAlert) {\n navigate(\"/otp-verification\");\n setFormData({\n name: \"\",\n email: \"\",\n password: \"\",\n });\n }\n dispatch(clearMsgState());\n\n setAlertMessage(\"\");\n setSuccessAlert(true);\n setAlertHeading(\"\");\n setSuccessBtnText(\"OK\");\n };\n\n const isRequired = (value) => (value === \"\" ? false : true);\n // Function to toggle between user and creator sign-up\n const toggleSignUpType = () => {\n setSignUpType((prevSignUpType) =>\n prevSignUpType === \"user\" ? \"creator\" : \"user\"\n );\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n };\n\n // Function to validate the form data\n const validateForm = () => {\n let isValid =\n checkName(formData.name) &&\n checkEmail(formData.email) &&\n checkPassword(formData.password);\n return isValid;\n };\n // Function to handle input changes\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setFormData({\n ...formData,\n [name]: value,\n });\n };\n\n // Function to check if the form is valid\n const isFormValid = () => {\n return (\n formData.name &&\n !isContainsNumber(formData.name) &&\n !isContainsSpecialChars(formData.name) &&\n isValidEmail(formData.email) &&\n isStrongPassword(formData.password) &&\n checkboxes.terms &&\n checkboxes.cookies\n );\n };\n\n // api\n const { loading, userInfo, userToken, error, success, successMsg } =\n useSelector((state) => state.auth);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (error) {\n setAlertMessage(error);\n setSuccessAlert(false);\n }\n if (userInfo && userToken) {\n navigate(\"/me\");\n }\n // redirect user to otp verification if registration was successful\n if (success && successMsg) {\n setAlertMessage(successMsg);\n setAlertHeading(\"Account Created!\");\n setSuccessAlert(true);\n setSuccessBtnText(\"Verify OTP\");\n // setTimeout(() => {\n // dispatch(clearMsgState());\n // navigate(\"/otp-verification\");\n // setFormData({\n // name: \"\",\n // email: \"\",\n // password: \"\",\n // });\n // }, 1000);\n\n //\n }\n }, [navigate, userInfo, userToken, error, success, successMsg]);\n\n // Function to handle form submission\n const handleSubmit = (e) => {\n e.preventDefault();\n if (validateForm()) {\n formData.email = formData.email.toLowerCase();\n formData.isPromotion = checkboxes.promotions;\n dispatch(registerUser(formData));\n }\n };\n // checkName\n const checkName = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n name: \"Name is required\",\n });\n } else if (isContainsNumber(value.trim())) {\n setFormErrors({\n ...formErrors,\n name: \"Name must not contain any numbers\",\n });\n } else if (isContainsSpecialChars(value.trim())) {\n setFormErrors({\n ...formErrors,\n name: \"Name must not contain any special characters\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n name: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n // checkEmail\n const checkEmail = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n email: \"Email is required\",\n });\n } else if (!isValidEmail(fieldInput)) {\n setFormErrors({\n ...formErrors,\n email: \"Invalid Email Address\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n email: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n // checkPassword\n const checkPassword = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n password: \"Password is required\",\n });\n }\n // else if (!isStrongPassword(fieldInput)) {\n // setFormErrors({\n // ...formErrors,\n // password: 'Password is not strong enough'\n // });\n // }\n else {\n setFormErrors({\n ...formErrors,\n password: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n return (\n <>\n <Box\n className={`w-full max-w-[700px] rounded-lg p-5 md:p-[32px] lg:p-[58px] ${\n isMobile ? \"border border-[#363636] signin-form\" : \"\"\n } `}\n >\n <Box className=\"text-white max-w-[500px] mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[36px]\">\n Create User Account\n </h1>\n\n <form className=\"auth-form mb-5\" onSubmit={handleSubmit}>\n <div className=\"mb-4\">\n <label\n htmlFor=\"name\"\n className=\"font-medium text-white/[.80] text-sm\"\n >\n Name\n </label>\n <div className=\"mt-2\">\n <input\n type=\"text\"\n name=\"name\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none ${\n formErrors.name ? \"!border-error\" : \"\"\n }`}\n id=\"name\"\n value={formData.name}\n onChange={handleInputChange}\n onBlur={(e) => checkName(e.target.value)}\n />\n {formErrors.name && (\n <span className=\"text-error text-sm\">{formErrors.name}</span>\n )}\n </div>\n </div>\n\n <div className=\"mb-4\">\n <label\n htmlFor=\"email\"\n className=\"font-medium text-white/[.80] text-sm\"\n >\n Email\n </label>\n <div className=\"mt-2\">\n <input\n type=\"email\"\n name=\"email\"\n data-testid=\"email\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none ${\n formErrors.email ? \"!border-error\" : \"\"\n }`}\n id=\"email\"\n value={formData.email}\n onChange={handleInputChange}\n onBlur={(e) => checkEmail(e.target.value)}\n />\n {formErrors.email && (\n <span className=\"text-error text-sm\">{formErrors.email}</span>\n )}\n </div>\n </div>\n\n <div className=\"mb-6\">\n <label\n htmlFor=\"password\"\n className=\"font-medium text-white/[.80] text-sm\"\n >\n Password\n </label>\n <div className=\"mt-2 flex relative\">\n <input\n type=\"password\"\n name=\"password\"\n data-testid=\"Password\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] ${\n formErrors.password ? \"!border-error\" : \"\"\n }`}\n id=\"password\"\n value={formData.password}\n onInput={handleInputChange}\n onBlur={(e) => checkPassword(e.target.value)}\n />\n <span\n data-testid=\"PasswordVisibility\"\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer text-white\"\n onClick={(e) => togglePasswordVisibility(e)}\n >\n <img src={eyeOff} alt=\"PasswordVisibility\" />\n </span>\n </div>\n <CheckList value={formData.password} />\n {formErrors.password && (\n <span className=\"text-error text-sm\">\n {formErrors.password}\n </span>\n )}\n </div>\n <div className=\"mb-[30px] mt-[-30px]\">\n <label className=\"flex items-center space-x-2\">\n <input\n type=\"checkbox\"\n name=\"terms\"\n className=\"form-checkbox h-4 w-4 accent-[#FBBC5E] border border-[#DCDCDC] rounded-md\"\n checked={checkboxes.terms}\n onChange={handleCheckboxChange}\n />\n <span className=\"text-white text-[14px]\">\n I have read and agree to the{\" \"}\n <NavLink\n to=\"/terms-condition\"\n className=\"text-[#FBBC5E] underline \"\n >\n Terms & Conditions{\" \"}\n </NavLink>\n and{\" \"}\n <NavLink\n to=\"/privacy-policy\"\n className=\"text-[#FBBC5E] underline \"\n >\n Privacy Policy\n </NavLink>\n .\n </span>\n </label>\n <label className=\"flex items-center space-x-2\">\n <input\n type=\"checkbox\"\n name=\"cookies\"\n className=\"form-checkbox h-4 w-4 accent-[#FBBC5E] border border-[#DCDCDC] rounded-md\"\n checked={checkboxes.cookies}\n onChange={handleCheckboxChange}\n />\n <span className=\"text-white text-[14px]\">\n I agree with the use of cookies for a better browsing\n experience.\n </span>\n </label>\n <label className=\"flex items-center space-x-2\">\n <input\n type=\"checkbox\"\n name=\"promotions\"\n className=\"form-checkbox h-4 w-4 accent-[#FBBC5E] border border-[#DCDCDC] rounded-md\"\n checked={checkboxes.promotions}\n onChange={handleCheckboxChange}\n />\n <span className=\"text-white text-[14px]\">\n I agree to receive Promotional and Marketing information.\n </span>\n </label>\n </div>\n\n <button\n type=\"submit\"\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 flex justify-center\"\n disabled={!isFormValid() || loading}\n >\n {loading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Create my account\"\n )}\n </button>\n </form>\n\n <div className=\"divider flex gap-x-2 mb-5\">\n <span className=\"text-sm font-medium\">Or</span>\n </div>\n\n <GoogleLogin\n type=\"button\"\n text=\"Continue with Google\"\n className=\"mb-6\"\n />\n\n <p className=\"mb-5 text-sm text-center\">\n Already have an account?{\" \"}\n <NavLink\n to=\"/signin\"\n className=\"text-sec hover:text-secDark font-medium\"\n >\n Sign In\n </NavLink>\n </p>\n\n <p className=\"text-center text-sm text-sec hover:text-secDark font-bold\">\n <button onClick={toggleSignUpType}>\n {signUpType === \"creator\" ? (\n \"Create User Account\"\n ) : (\n <a\n href={`${process.env.REACT_APP_CREATOR_WEB_URL}/auth/signup`}\n >\n Become a Creator\n </a>\n )}\n </button>\n </p>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n buttonText={successBtnText}\n canClose={!successAlert}\n />\n )}\n </>\n );\n};\n\nexport default SignUp;\n","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst GridContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n GridContext.displayName = 'GridContext';\n}\nexport default GridContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getGridUtilityClass(slot) {\n return generateUtilityClass('MuiGrid', slot);\n}\nconst SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nconst DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];\nconst WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];\nconst GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\nconst gridClasses = generateUtilityClasses('MuiGrid', ['root', 'container', 'item', 'zeroMinWidth',\n// spacings\n...SPACINGS.map(spacing => `spacing-xs-${spacing}`),\n// direction values\n...DIRECTIONS.map(direction => `direction-xs-${direction}`),\n// wrap values\n...WRAPS.map(wrap => `wrap-xs-${wrap}`),\n// grid sizes for all breakpoints\n...GRID_SIZES.map(size => `grid-xs-${size}`), ...GRID_SIZES.map(size => `grid-sm-${size}`), ...GRID_SIZES.map(size => `grid-md-${size}`), ...GRID_SIZES.map(size => `grid-lg-${size}`), ...GRID_SIZES.map(size => `grid-xl-${size}`)]);\nexport default gridClasses;","'use client';\n\n// A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"columns\", \"columnSpacing\", \"component\", \"container\", \"direction\", \"item\", \"rowSpacing\", \"spacing\", \"wrap\", \"zeroMinWidth\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';\nimport { extendSxProp } from '@mui/system/styleFunctionSx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport requirePropFactory from '../utils/requirePropFactory';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport useTheme from '../styles/useTheme';\nimport GridContext from './GridContext';\nimport gridClasses, { getGridUtilityClass } from './gridClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getOffset(val) {\n const parse = parseFloat(val);\n return `${parse}${String(val).replace(String(parse), '') || 'px'}`;\n}\nexport function generateGrid({\n theme,\n ownerState\n}) {\n let size;\n return theme.breakpoints.keys.reduce((globalStyles, breakpoint) => {\n // Use side effect over immutability for better performance.\n let styles = {};\n if (ownerState[breakpoint]) {\n size = ownerState[breakpoint];\n }\n if (!size) {\n return globalStyles;\n }\n if (size === true) {\n // For the auto layouting\n styles = {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%'\n };\n } else if (size === 'auto') {\n styles = {\n flexBasis: 'auto',\n flexGrow: 0,\n flexShrink: 0,\n maxWidth: 'none',\n width: 'auto'\n };\n } else {\n const columnsBreakpointValues = resolveBreakpointValues({\n values: ownerState.columns,\n breakpoints: theme.breakpoints.values\n });\n const columnValue = typeof columnsBreakpointValues === 'object' ? columnsBreakpointValues[breakpoint] : columnsBreakpointValues;\n if (columnValue === undefined || columnValue === null) {\n return globalStyles;\n }\n // Keep 7 significant numbers.\n const width = `${Math.round(size / columnValue * 10e7) / 10e5}%`;\n let more = {};\n if (ownerState.container && ownerState.item && ownerState.columnSpacing !== 0) {\n const themeSpacing = theme.spacing(ownerState.columnSpacing);\n if (themeSpacing !== '0px') {\n const fullWidth = `calc(${width} + ${getOffset(themeSpacing)})`;\n more = {\n flexBasis: fullWidth,\n maxWidth: fullWidth\n };\n }\n }\n\n // Close to the bootstrap implementation:\n // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n styles = _extends({\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width\n }, more);\n }\n\n // No need for a media query for the first size.\n if (theme.breakpoints.values[breakpoint] === 0) {\n Object.assign(globalStyles, styles);\n } else {\n globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n }\n return globalStyles;\n }, {});\n}\nexport function generateDirection({\n theme,\n ownerState\n}) {\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n });\n return handleBreakpoints({\n theme\n }, directionValues, propValue => {\n const output = {\n flexDirection: propValue\n };\n if (propValue.indexOf('column') === 0) {\n output[`& > .${gridClasses.item}`] = {\n maxWidth: 'none'\n };\n }\n return output;\n });\n}\n\n/**\n * Extracts zero value breakpoint keys before a non-zero value breakpoint key.\n * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]\n * @returns [xs, sm]\n */\nfunction extractZeroValueBreakpointKeys({\n breakpoints,\n values\n}) {\n let nonZeroKey = '';\n Object.keys(values).forEach(key => {\n if (nonZeroKey !== '') {\n return;\n }\n if (values[key] !== 0) {\n nonZeroKey = key;\n }\n });\n const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {\n return breakpoints[a] - breakpoints[b];\n });\n return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));\n}\nexport function generateRowGap({\n theme,\n ownerState\n}) {\n const {\n container,\n rowSpacing\n } = ownerState;\n let styles = {};\n if (container && rowSpacing !== 0) {\n const rowSpacingValues = resolveBreakpointValues({\n values: rowSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof rowSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: rowSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, rowSpacingValues, (propValue, breakpoint) => {\n var _zeroValueBreakpointK;\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n marginTop: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingTop: getOffset(themeSpacing)\n }\n };\n }\n if ((_zeroValueBreakpointK = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK.includes(breakpoint)) {\n return {};\n }\n return {\n marginTop: 0,\n [`& > .${gridClasses.item}`]: {\n paddingTop: 0\n }\n };\n });\n }\n return styles;\n}\nexport function generateColumnGap({\n theme,\n ownerState\n}) {\n const {\n container,\n columnSpacing\n } = ownerState;\n let styles = {};\n if (container && columnSpacing !== 0) {\n const columnSpacingValues = resolveBreakpointValues({\n values: columnSpacing,\n breakpoints: theme.breakpoints.values\n });\n let zeroValueBreakpointKeys;\n if (typeof columnSpacingValues === 'object') {\n zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({\n breakpoints: theme.breakpoints.values,\n values: columnSpacingValues\n });\n }\n styles = handleBreakpoints({\n theme\n }, columnSpacingValues, (propValue, breakpoint) => {\n var _zeroValueBreakpointK2;\n const themeSpacing = theme.spacing(propValue);\n if (themeSpacing !== '0px') {\n return {\n width: `calc(100% + ${getOffset(themeSpacing)})`,\n marginLeft: `-${getOffset(themeSpacing)}`,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: getOffset(themeSpacing)\n }\n };\n }\n if ((_zeroValueBreakpointK2 = zeroValueBreakpointKeys) != null && _zeroValueBreakpointK2.includes(breakpoint)) {\n return {};\n }\n return {\n width: '100%',\n marginLeft: 0,\n [`& > .${gridClasses.item}`]: {\n paddingLeft: 0\n }\n };\n });\n }\n return styles;\n}\nexport function resolveSpacingStyles(spacing, breakpoints, styles = {}) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [styles[`spacing-xs-${String(spacing)}`]];\n }\n // in case of object `spacing`\n const spacingStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n spacingStyles.push(styles[`spacing-${breakpoint}-${String(value)}`]);\n }\n });\n return spacingStyles;\n}\n\n// Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\nconst GridRoot = styled('div', {\n name: 'MuiGrid',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingStyles = [];\n\n // in case of grid item\n if (container) {\n spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);\n }\n const breakpointsStyles = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsStyles.push(styles[`grid-${breakpoint}-${String(value)}`]);\n }\n });\n return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];\n }\n})(({\n ownerState\n}) => _extends({\n boxSizing: 'border-box'\n}, ownerState.container && {\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%'\n}, ownerState.item && {\n margin: 0 // For instance, it's useful when used with a `figure` element.\n}, ownerState.zeroMinWidth && {\n minWidth: 0\n}, ownerState.wrap !== 'wrap' && {\n flexWrap: ownerState.wrap\n}), generateDirection, generateRowGap, generateColumnGap, generateGrid);\nexport function resolveSpacingClasses(spacing, breakpoints) {\n // undefined/null or `spacing` <= 0\n if (!spacing || spacing <= 0) {\n return [];\n }\n // in case of string/number `spacing`\n if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {\n return [`spacing-xs-${String(spacing)}`];\n }\n // in case of object `spacing`\n const classes = [];\n breakpoints.forEach(breakpoint => {\n const value = spacing[breakpoint];\n if (Number(value) > 0) {\n const className = `spacing-${breakpoint}-${String(value)}`;\n classes.push(className);\n }\n });\n return classes;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n container,\n direction,\n item,\n spacing,\n wrap,\n zeroMinWidth,\n breakpoints\n } = ownerState;\n let spacingClasses = [];\n\n // in case of grid item\n if (container) {\n spacingClasses = resolveSpacingClasses(spacing, breakpoints);\n }\n const breakpointsClasses = [];\n breakpoints.forEach(breakpoint => {\n const value = ownerState[breakpoint];\n if (value) {\n breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);\n }\n });\n const slots = {\n root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]\n };\n return composeClasses(slots, getGridUtilityClass, classes);\n};\nconst Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useDefaultProps({\n props: inProps,\n name: 'MuiGrid'\n });\n const {\n breakpoints\n } = useTheme();\n const props = extendSxProp(themeProps);\n const {\n className,\n columns: columnsProp,\n columnSpacing: columnSpacingProp,\n component = 'div',\n container = false,\n direction = 'row',\n item = false,\n rowSpacing: rowSpacingProp,\n spacing = 0,\n wrap = 'wrap',\n zeroMinWidth = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const rowSpacing = rowSpacingProp || spacing;\n const columnSpacing = columnSpacingProp || spacing;\n const columnsContext = React.useContext(GridContext);\n\n // columns set with default breakpoint unit of 12\n const columns = container ? columnsProp || 12 : columnsContext;\n const breakpointsValues = {};\n const otherFiltered = _extends({}, other);\n breakpoints.keys.forEach(breakpoint => {\n if (other[breakpoint] != null) {\n breakpointsValues[breakpoint] = other[breakpoint];\n delete otherFiltered[breakpoint];\n }\n });\n const ownerState = _extends({}, props, {\n columns,\n container,\n direction,\n item,\n rowSpacing,\n columnSpacing,\n wrap,\n zeroMinWidth,\n spacing\n }, breakpointsValues, {\n breakpoints: breakpoints.keys\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(GridContext.Provider, {\n value: columns,\n children: /*#__PURE__*/_jsx(GridRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n as: component,\n ref: ref\n }, otherFiltered))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Grid.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The number of columns.\n * @default 12\n */\n columns: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number, PropTypes.object]),\n /**\n * Defines the horizontal space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n columnSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the component will have the flex *container* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n container: PropTypes.bool,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'row'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * If `true`, the component will have the flex *item* behavior.\n * You should be wrapping *items* with a *container*.\n * @default false\n */\n item: PropTypes.bool,\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `lg` breakpoint and wider screens if not overridden.\n * @default false\n */\n lg: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `md` breakpoint and wider screens if not overridden.\n * @default false\n */\n md: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the vertical space between the type `item` components.\n * It overrides the value of the `spacing` prop.\n */\n rowSpacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `sm` breakpoint and wider screens if not overridden.\n * @default false\n */\n sm: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * Defines the space between the type `item` components.\n * It can only be used on a type `container` component.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Defines the `flex-wrap` style property.\n * It's applied for all screen sizes.\n * @default 'wrap'\n */\n wrap: PropTypes.oneOf(['nowrap', 'wrap-reverse', 'wrap']),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for the `xl` breakpoint and wider screens if not overridden.\n * @default false\n */\n xl: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If a number, it sets the number of columns the grid item uses.\n * It can't be greater than the total number of columns of the container (12 by default).\n * If 'auto', the grid item's width matches its content.\n * If false, the prop is ignored.\n * If true, the grid item's width grows to use the space available in the grid container.\n * The value is applied for all the screen sizes with the lowest priority.\n * @default false\n */\n xs: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.bool]),\n /**\n * If `true`, it sets `min-width: 0` on the item.\n * Refer to the limitations section of the documentation to better understand the use case.\n * @default false\n */\n zeroMinWidth: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n const requireProp = requirePropFactory('Grid', Grid);\n // eslint-disable-next-line no-useless-concat\n Grid['propTypes' + ''] = _extends({}, Grid.propTypes, {\n direction: requireProp('container'),\n lg: requireProp('item'),\n md: requireProp('item'),\n sm: requireProp('item'),\n spacing: requireProp('container'),\n wrap: requireProp('container'),\n xs: requireProp('item'),\n zeroMinWidth: requireProp('item')\n });\n}\nexport default Grid;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RtlContext = /*#__PURE__*/React.createContext();\nfunction RtlProvider(_ref) {\n let {\n value\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(RtlContext.Provider, _extends({\n value: value != null ? value : true\n }, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? RtlProvider.propTypes = {\n children: PropTypes.node,\n value: PropTypes.bool\n} : void 0;\nexport const useRtl = () => {\n const value = React.useContext(RtlContext);\n return value != null ? value : false;\n};\nexport default RtlProvider;","'use client';\n\nimport * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst ListContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\nexport default ListContext;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport ListContext from './ListContext';\nimport { getListUtilityClass } from './listClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})(({\n ownerState\n}) => _extends({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n}, !ownerState.disablePadding && {\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.subheader && {\n paddingTop: 0\n}));\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = _extends({}, props, {\n component,\n dense,\n disablePadding\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [subheader, children]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default List;","import getScrollbarSize from '@mui/utils/getScrollbarSize';\nexport default getScrollbarSize;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, {\n direction\n }) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n if (activeItemIndex === index) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other, {\n children: items\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport useTimeout from '@mui/utils/useTimeout';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { getTransitionProps, reflow } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const timer = useTimeout();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.start(autoTimeout.current || 0, next);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getPopoverUtilityClass(slot) {\n return generateUtilityClass('MuiPopover', slot);\n}\nconst popoverClasses = generateUtilityClasses('MuiPopover', ['root', 'paper']);\nexport default popoverClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onEntering\"],\n _excluded2 = [\"action\", \"anchorEl\", \"anchorOrigin\", \"anchorPosition\", \"anchorReference\", \"children\", \"className\", \"container\", \"elevation\", \"marginThreshold\", \"open\", \"PaperProps\", \"slots\", \"slotProps\", \"transformOrigin\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\", \"disableScrollLock\"],\n _excluded3 = [\"slotProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport isHostComponent from '@mui/utils/isHostComponent';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport debounce from '../utils/debounce';\nimport ownerDocument from '../utils/ownerDocument';\nimport ownerWindow from '../utils/ownerWindow';\nimport useForkRef from '../utils/useForkRef';\nimport Grow from '../Grow';\nimport Modal from '../Modal';\nimport PaperBase from '../Paper';\nimport { getPopoverUtilityClass } from './popoverClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getOffsetTop(rect, vertical) {\n let offset = 0;\n if (typeof vertical === 'number') {\n offset = vertical;\n } else if (vertical === 'center') {\n offset = rect.height / 2;\n } else if (vertical === 'bottom') {\n offset = rect.height;\n }\n return offset;\n}\nexport function getOffsetLeft(rect, horizontal) {\n let offset = 0;\n if (typeof horizontal === 'number') {\n offset = horizontal;\n } else if (horizontal === 'center') {\n offset = rect.width / 2;\n } else if (horizontal === 'right') {\n offset = rect.width;\n }\n return offset;\n}\nfunction getTransformOriginValue(transformOrigin) {\n return [transformOrigin.horizontal, transformOrigin.vertical].map(n => typeof n === 'number' ? `${n}px` : n).join(' ');\n}\nfunction resolveAnchorEl(anchorEl) {\n return typeof anchorEl === 'function' ? anchorEl() : anchorEl;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper']\n };\n return composeClasses(slots, getPopoverUtilityClass, classes);\n};\nexport const PopoverRoot = styled(Modal, {\n name: 'MuiPopover',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nexport const PopoverPaper = styled(PaperBase, {\n name: 'MuiPopover',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n position: 'absolute',\n overflowY: 'auto',\n overflowX: 'hidden',\n // So we see the popover when it's empty.\n // It's most likely on issue on userland.\n minWidth: 16,\n minHeight: 16,\n maxWidth: 'calc(100% - 32px)',\n maxHeight: 'calc(100% - 32px)',\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {\n var _slotProps$paper, _slots$root, _slots$paper;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiPopover'\n });\n const {\n action,\n anchorEl,\n anchorOrigin = {\n vertical: 'top',\n horizontal: 'left'\n },\n anchorPosition,\n anchorReference = 'anchorEl',\n children,\n className,\n container: containerProp,\n elevation = 8,\n marginThreshold = 16,\n open,\n PaperProps: PaperPropsProp = {},\n slots,\n slotProps,\n transformOrigin = {\n vertical: 'top',\n horizontal: 'left'\n },\n TransitionComponent = Grow,\n transitionDuration: transitionDurationProp = 'auto',\n TransitionProps: {\n onEntering\n } = {},\n disableScrollLock = false\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const externalPaperSlotProps = (_slotProps$paper = slotProps == null ? void 0 : slotProps.paper) != null ? _slotProps$paper : PaperPropsProp;\n const paperRef = React.useRef();\n const handlePaperRef = useForkRef(paperRef, externalPaperSlotProps.ref);\n const ownerState = _extends({}, props, {\n anchorOrigin,\n anchorReference,\n elevation,\n marginThreshold,\n externalPaperSlotProps,\n transformOrigin,\n TransitionComponent,\n transitionDuration: transitionDurationProp,\n TransitionProps\n });\n const classes = useUtilityClasses(ownerState);\n\n // Returns the top/left offset of the position\n // to attach to on the anchor element (or body if none is provided)\n const getAnchorOffset = React.useCallback(() => {\n if (anchorReference === 'anchorPosition') {\n if (process.env.NODE_ENV !== 'production') {\n if (!anchorPosition) {\n console.error('MUI: You need to provide a `anchorPosition` prop when using ' + '<Popover anchorReference=\"anchorPosition\" />.');\n }\n }\n return anchorPosition;\n }\n const resolvedAnchorEl = resolveAnchorEl(anchorEl);\n\n // If an anchor element wasn't provided, just use the parent body element of this Popover\n const anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : ownerDocument(paperRef.current).body;\n const anchorRect = anchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'production') {\n const box = anchorElement.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n console.warn(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n }\n return {\n top: anchorRect.top + getOffsetTop(anchorRect, anchorOrigin.vertical),\n left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)\n };\n }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]);\n\n // Returns the base transform origin using the element\n const getTransformOrigin = React.useCallback(elemRect => {\n return {\n vertical: getOffsetTop(elemRect, transformOrigin.vertical),\n horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)\n };\n }, [transformOrigin.horizontal, transformOrigin.vertical]);\n const getPositioningStyle = React.useCallback(element => {\n const elemRect = {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n\n // Get the transform origin point on the element itself\n const elemTransformOrigin = getTransformOrigin(elemRect);\n if (anchorReference === 'none') {\n return {\n top: null,\n left: null,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }\n\n // Get the offset of the anchoring element\n const anchorOffset = getAnchorOffset();\n\n // Calculate element positioning\n let top = anchorOffset.top - elemTransformOrigin.vertical;\n let left = anchorOffset.left - elemTransformOrigin.horizontal;\n const bottom = top + elemRect.height;\n const right = left + elemRect.width;\n\n // Use the parent window of the anchorEl if provided\n const containerWindow = ownerWindow(resolveAnchorEl(anchorEl));\n\n // Window thresholds taking required margin into account\n const heightThreshold = containerWindow.innerHeight - marginThreshold;\n const widthThreshold = containerWindow.innerWidth - marginThreshold;\n\n // Check if the vertical axis needs shifting\n if (marginThreshold !== null && top < marginThreshold) {\n const diff = top - marginThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n } else if (marginThreshold !== null && bottom > heightThreshold) {\n const diff = bottom - heightThreshold;\n top -= diff;\n elemTransformOrigin.vertical += diff;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (elemRect.height > heightThreshold && elemRect.height && heightThreshold) {\n console.error(['MUI: The popover component is too tall.', `Some part of it can not be seen on the screen (${elemRect.height - heightThreshold}px).`, 'Please consider adding a `max-height` to improve the user-experience.'].join('\\n'));\n }\n }\n\n // Check if the horizontal axis needs shifting\n if (marginThreshold !== null && left < marginThreshold) {\n const diff = left - marginThreshold;\n left -= diff;\n elemTransformOrigin.horizontal += diff;\n } else if (right > widthThreshold) {\n const diff = right - widthThreshold;\n left -= diff;\n elemTransformOrigin.horizontal += diff;\n }\n return {\n top: `${Math.round(top)}px`,\n left: `${Math.round(left)}px`,\n transformOrigin: getTransformOriginValue(elemTransformOrigin)\n };\n }, [anchorEl, anchorReference, getAnchorOffset, getTransformOrigin, marginThreshold]);\n const [isPositioned, setIsPositioned] = React.useState(open);\n const setPositioningStyles = React.useCallback(() => {\n const element = paperRef.current;\n if (!element) {\n return;\n }\n const positioning = getPositioningStyle(element);\n if (positioning.top !== null) {\n element.style.top = positioning.top;\n }\n if (positioning.left !== null) {\n element.style.left = positioning.left;\n }\n element.style.transformOrigin = positioning.transformOrigin;\n setIsPositioned(true);\n }, [getPositioningStyle]);\n React.useEffect(() => {\n if (disableScrollLock) {\n window.addEventListener('scroll', setPositioningStyles);\n }\n return () => window.removeEventListener('scroll', setPositioningStyles);\n }, [anchorEl, disableScrollLock, setPositioningStyles]);\n const handleEntering = (element, isAppearing) => {\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n setPositioningStyles();\n };\n const handleExited = () => {\n setIsPositioned(false);\n };\n React.useEffect(() => {\n if (open) {\n setPositioningStyles();\n }\n });\n React.useImperativeHandle(action, () => open ? {\n updatePosition: () => {\n setPositioningStyles();\n }\n } : null, [open, setPositioningStyles]);\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n const handleResize = debounce(() => {\n setPositioningStyles();\n });\n const containerWindow = ownerWindow(anchorEl);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [anchorEl, open, setPositioningStyles]);\n let transitionDuration = transitionDurationProp;\n if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {\n transitionDuration = undefined;\n }\n\n // If the container prop is provided, use that\n // If the anchorEl prop is provided, use its parent body element as the container\n // If neither are provided let the Modal take care of choosing the container\n const container = containerProp || (anchorEl ? ownerDocument(resolveAnchorEl(anchorEl)).body : undefined);\n const RootSlot = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : PopoverRoot;\n const PaperSlot = (_slots$paper = slots == null ? void 0 : slots.paper) != null ? _slots$paper : PopoverPaper;\n const paperProps = useSlotProps({\n elementType: PaperSlot,\n externalSlotProps: _extends({}, externalPaperSlotProps, {\n style: isPositioned ? externalPaperSlotProps.style : _extends({}, externalPaperSlotProps.style, {\n opacity: 0\n })\n }),\n additionalProps: {\n elevation,\n ref: handlePaperRef\n },\n ownerState,\n className: clsx(classes.paper, externalPaperSlotProps == null ? void 0 : externalPaperSlotProps.className)\n });\n const _useSlotProps = useSlotProps({\n elementType: RootSlot,\n externalSlotProps: (slotProps == null ? void 0 : slotProps.root) || {},\n externalForwardedProps: other,\n additionalProps: {\n ref,\n slotProps: {\n backdrop: {\n invisible: true\n }\n },\n container,\n open\n },\n ownerState,\n className: clsx(classes.root, className)\n }),\n {\n slotProps: rootSlotPropsProp\n } = _useSlotProps,\n rootProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded3);\n return /*#__PURE__*/_jsx(RootSlot, _extends({}, rootProps, !isHostComponent(RootSlot) && {\n slotProps: rootSlotPropsProp,\n disableScrollLock\n }, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n onEntering: handleEntering,\n onExited: handleExited,\n timeout: transitionDuration\n }, TransitionProps, {\n children: /*#__PURE__*/_jsx(PaperSlot, _extends({}, paperProps, {\n children: children\n }))\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Popover.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * A ref for imperative actions.\n * It currently only supports updatePosition() action.\n */\n action: refType,\n /**\n * An HTML element, [PopoverVirtualElement](/material-ui/react-popover/#virtual-element),\n * or a function that returns either.\n * It's used to set the position of the popover.\n */\n anchorEl: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open && (!props.anchorReference || props.anchorReference === 'anchorEl')) {\n const resolvedAnchorEl = resolveAnchorEl(props.anchorEl);\n if (resolvedAnchorEl && resolvedAnchorEl.nodeType === 1) {\n const box = resolvedAnchorEl.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else {\n return new Error(['MUI: The `anchorEl` prop provided to the component is invalid.', `It should be an Element or PopoverVirtualElement instance but it's \\`${resolvedAnchorEl}\\` instead.`].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * This is the point on the anchor where the popover's\n * `anchorEl` will attach to. This is not used when the\n * anchorReference is 'anchorPosition'.\n *\n * Options:\n * vertical: [top, center, bottom];\n * horizontal: [left, center, right].\n * @default {\n * vertical: 'top',\n * horizontal: 'left',\n * }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n /**\n * This is the position that may be used to set the position of the popover.\n * The coordinates are relative to the application's client area.\n */\n anchorPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired\n }),\n /**\n * This determines which anchor prop to refer to when setting\n * the position of the popover.\n * @default 'anchorEl'\n */\n anchorReference: PropTypes.oneOf(['anchorEl', 'anchorPosition', 'none']),\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * An HTML element, component instance, or function that returns either.\n * The `container` will passed to the Modal component.\n *\n * By default, it uses the body of the anchorEl's top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * Disable the scroll lock behavior.\n * @default false\n */\n disableScrollLock: PropTypes.bool,\n /**\n * The elevation of the popover.\n * @default 8\n */\n elevation: integerPropType,\n /**\n * Specifies how close to the edge of the window the popover can appear.\n * If null, the popover will not be constrained by the window.\n * @default 16\n */\n marginThreshold: PropTypes.number,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n *\n * This prop is an alias for `slotProps.paper` and will be overriden by it if both are used.\n * @deprecated Use `slotProps.paper` instead.\n *\n * @default {}\n */\n PaperProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n component: elementTypeAcceptingRef\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n paper: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * This is the point on the popover which\n * will attach to the anchor's origin.\n *\n * Options:\n * vertical: [top, center, bottom, x(px)];\n * horizontal: [left, center, right, x(px)].\n * @default {\n * vertical: 'top',\n * horizontal: 'left',\n * }\n */\n transformOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOfType([PropTypes.oneOf(['center', 'left', 'right']), PropTypes.number]).isRequired,\n vertical: PropTypes.oneOfType([PropTypes.oneOf(['bottom', 'center', 'top']), PropTypes.number]).isRequired\n }),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Popover;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass('MuiMenu', slot);\n}\nconst menuClasses = generateUtilityClasses('MuiMenu', ['root', 'paper', 'list']);\nexport default menuClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onEntering\"],\n _excluded2 = [\"autoFocus\", \"children\", \"className\", \"disableAutoFocusItem\", \"MenuListProps\", \"onClose\", \"open\", \"PaperProps\", \"PopoverClasses\", \"transitionDuration\", \"TransitionProps\", \"variant\", \"slots\", \"slotProps\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport MenuList from '../MenuList';\nimport Popover, { PopoverPaper } from '../Popover';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getMenuUtilityClass } from './menuClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RTL_ORIGIN = {\n vertical: 'top',\n horizontal: 'right'\n};\nconst LTR_ORIGIN = {\n vertical: 'top',\n horizontal: 'left'\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n paper: ['paper'],\n list: ['list']\n };\n return composeClasses(slots, getMenuUtilityClass, classes);\n};\nconst MenuRoot = styled(Popover, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiMenu',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\nexport const MenuPaper = styled(PopoverPaper, {\n name: 'MuiMenu',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})({\n // specZ: The maximum height of a simple menu should be one or more rows less than the view\n // height. This ensures a tappable area outside of the simple menu with which to dismiss\n // the menu.\n maxHeight: 'calc(100% - 96px)',\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch'\n});\nconst MenuMenuList = styled(MenuList, {\n name: 'MuiMenu',\n slot: 'List',\n overridesResolver: (props, styles) => styles.list\n})({\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0\n});\nconst Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {\n var _slots$paper, _slotProps$paper;\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiMenu'\n });\n const {\n autoFocus = true,\n children,\n className,\n disableAutoFocusItem = false,\n MenuListProps = {},\n onClose,\n open,\n PaperProps = {},\n PopoverClasses,\n transitionDuration = 'auto',\n TransitionProps: {\n onEntering\n } = {},\n variant = 'selectedMenu',\n slots = {},\n slotProps = {}\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const isRtl = useRtl();\n const ownerState = _extends({}, props, {\n autoFocus,\n disableAutoFocusItem,\n MenuListProps,\n onEntering,\n PaperProps,\n transitionDuration,\n TransitionProps,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const autoFocusItem = autoFocus && !disableAutoFocusItem && open;\n const menuListActionsRef = React.useRef(null);\n const handleEntering = (element, isAppearing) => {\n if (menuListActionsRef.current) {\n menuListActionsRef.current.adjustStyleForScrollbar(element, {\n direction: isRtl ? 'rtl' : 'ltr'\n });\n }\n if (onEntering) {\n onEntering(element, isAppearing);\n }\n };\n const handleListKeyDown = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n if (onClose) {\n onClose(event, 'tabKeyDown');\n }\n }\n };\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.map(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n });\n const PaperSlot = (_slots$paper = slots.paper) != null ? _slots$paper : MenuPaper;\n const paperExternalSlotProps = (_slotProps$paper = slotProps.paper) != null ? _slotProps$paper : PaperProps;\n const rootSlotProps = useSlotProps({\n elementType: slots.root,\n externalSlotProps: slotProps.root,\n ownerState,\n className: [classes.root, className]\n });\n const paperSlotProps = useSlotProps({\n elementType: PaperSlot,\n externalSlotProps: paperExternalSlotProps,\n ownerState,\n className: classes.paper\n });\n return /*#__PURE__*/_jsx(MenuRoot, _extends({\n onClose: onClose,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: isRtl ? 'right' : 'left'\n },\n transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,\n slots: {\n paper: PaperSlot,\n root: slots.root\n },\n slotProps: {\n root: rootSlotProps,\n paper: paperSlotProps\n },\n open: open,\n ref: ref,\n transitionDuration: transitionDuration,\n TransitionProps: _extends({\n onEntering: handleEntering\n }, TransitionProps),\n ownerState: ownerState\n }, other, {\n classes: PopoverClasses,\n children: /*#__PURE__*/_jsx(MenuMenuList, _extends({\n onKeyDown: handleListKeyDown,\n actions: menuListActionsRef,\n autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),\n autoFocusItem: autoFocusItem,\n variant: variant\n }, MenuListProps, {\n className: clsx(classes.list, MenuListProps.className),\n children: children\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Menu.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the position of the menu.\n */\n anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * If `true` (Default) will focus the `[role=\"menu\"]` if no focusable child is found. Disabled\n * children are not focusable. If you set this prop to `false` focus will be placed\n * on the parent modal container. This has severe accessibility implications\n * and should only be considered if you manage focus otherwise.\n * @default true\n */\n autoFocus: PropTypes.bool,\n /**\n * Menu contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * When opening the menu will not focus the active item but the `[role=\"menu\"]`\n * unless `autoFocus` is also set to `false`. Not using the default means not\n * following WAI-ARIA authoring practices. Please be considerate about possible\n * accessibility implications.\n * @default false\n */\n disableAutoFocusItem: PropTypes.bool,\n /**\n * Props applied to the [`MenuList`](/material-ui/api/menu-list/) element.\n * @default {}\n */\n MenuListProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`, `\"tabKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n PaperProps: PropTypes.object,\n /**\n * `classes` prop applied to the [`Popover`](/material-ui/api/popover/) element.\n */\n PopoverClasses: PropTypes.object,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n paper: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The length of the transition in `ms`, or 'auto'\n * @default 'auto'\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default Menu;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"container\", \"direction\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport HTMLElementType from '@mui/utils/HTMLElementType';\nimport elementAcceptingRef from '@mui/utils/elementAcceptingRef';\nimport debounce from '../utils/debounce';\nimport useForkRef from '../utils/useForkRef';\nimport useTheme from '../styles/useTheme';\nimport { reflow, getTransitionProps } from '../transitions/utils';\nimport { ownerWindow } from '../utils';\n\n// Translate the node so it can't be seen on the screen.\n// Later, we're going to translate the node back to its original location with `none`.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getTranslateValue(direction, node, resolvedContainer) {\n const rect = node.getBoundingClientRect();\n const containerRect = resolvedContainer && resolvedContainer.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n let transform;\n if (node.fakeTransform) {\n transform = node.fakeTransform;\n } else {\n const computedStyle = containerWindow.getComputedStyle(node);\n transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');\n }\n let offsetX = 0;\n let offsetY = 0;\n if (transform && transform !== 'none' && typeof transform === 'string') {\n const transformValues = transform.split('(')[1].split(')')[0].split(',');\n offsetX = parseInt(transformValues[4], 10);\n offsetY = parseInt(transformValues[5], 10);\n }\n if (direction === 'left') {\n if (containerRect) {\n return `translateX(${containerRect.right + offsetX - rect.left}px)`;\n }\n return `translateX(${containerWindow.innerWidth + offsetX - rect.left}px)`;\n }\n if (direction === 'right') {\n if (containerRect) {\n return `translateX(-${rect.right - containerRect.left - offsetX}px)`;\n }\n return `translateX(-${rect.left + rect.width - offsetX}px)`;\n }\n if (direction === 'up') {\n if (containerRect) {\n return `translateY(${containerRect.bottom + offsetY - rect.top}px)`;\n }\n return `translateY(${containerWindow.innerHeight + offsetY - rect.top}px)`;\n }\n\n // direction === 'down'\n if (containerRect) {\n return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n return `translateY(-${rect.top + rect.height - offsetY}px)`;\n}\nfunction resolveContainer(containerPropProp) {\n return typeof containerPropProp === 'function' ? containerPropProp() : containerPropProp;\n}\nexport function setTranslateValue(direction, node, containerProp) {\n const resolvedContainer = resolveContainer(containerProp);\n const transform = getTranslateValue(direction, node, resolvedContainer);\n if (transform) {\n node.style.webkitTransform = transform;\n node.style.transform = transform;\n }\n}\n\n/**\n * The Slide transition is used by the [Drawer](/material-ui/react-drawer/) component.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {\n const theme = useTheme();\n const defaultEasing = {\n enter: theme.transitions.easing.easeOut,\n exit: theme.transitions.easing.sharp\n };\n const defaultTimeout = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n addEndListener,\n appear = true,\n children,\n container: containerProp,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = defaultTimeout,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const childrenRef = React.useRef(null);\n const handleRef = useForkRef(children.ref, childrenRef, ref);\n const normalizedTransitionCallback = callback => isAppearing => {\n if (callback) {\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (isAppearing === undefined) {\n callback(childrenRef.current);\n } else {\n callback(childrenRef.current, isAppearing);\n }\n }\n };\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n setTranslateValue(direction, node, containerProp);\n reflow(node);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntering = normalizedTransitionCallback((node, isAppearing) => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'enter'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', _extends({}, transitionProps));\n node.style.transition = theme.transitions.create('transform', _extends({}, transitionProps));\n node.style.webkitTransform = 'none';\n node.style.transform = 'none';\n if (onEntering) {\n onEntering(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const transitionProps = getTransitionProps({\n timeout,\n style,\n easing: easingProp\n }, {\n mode: 'exit'\n });\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n setTranslateValue(direction, node, containerProp);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(node => {\n // No need for transitions when the component is hidden\n node.style.webkitTransition = '';\n node.style.transition = '';\n if (onExited) {\n onExited(node);\n }\n });\n const handleAddEndListener = next => {\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(childrenRef.current, next);\n }\n };\n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n }, [direction, containerProp]);\n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n if (inProp || direction === 'down' || direction === 'right') {\n return undefined;\n }\n const handleResize = debounce(() => {\n if (childrenRef.current) {\n setTranslateValue(direction, childrenRef.current, containerProp);\n }\n });\n const containerWindow = ownerWindow(childrenRef.current);\n containerWindow.addEventListener('resize', handleResize);\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n }, [direction, inProp, containerProp]);\n React.useEffect(() => {\n if (!inProp) {\n // We need to update the position of the drawer when the direction change and\n // when it's hidden.\n updatePosition();\n }\n }, [inProp, updatePosition]);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n nodeRef: childrenRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n appear: appear,\n in: inProp,\n timeout: timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n ref: handleRef,\n style: _extends({\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, style, children.props.style)\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slide.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * An HTML element, or a function that returns one.\n * It's used to set the container the Slide is transitioning from.\n */\n container: chainPropTypes(PropTypes.oneOfType([HTMLElementType, PropTypes.func]), props => {\n if (props.open) {\n const resolvedContainer = resolveContainer(props.container);\n if (resolvedContainer && resolvedContainer.nodeType === 1) {\n const box = resolvedContainer.getBoundingClientRect();\n if (process.env.NODE_ENV !== 'test' && box.top === 0 && box.left === 0 && box.right === 0 && box.bottom === 0) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'The anchor element should be part of the document layout.', \"Make sure the element is present in the document or that it's not display none.\"].join('\\n'));\n }\n } else if (!resolvedContainer || typeof resolvedContainer.getBoundingClientRect !== 'function' || resolvedContainer.contextElement != null && resolvedContainer.contextElement.nodeType !== 1) {\n return new Error(['MUI: The `container` prop provided to the component is invalid.', 'It should be an HTML element instance.'].join('\\n'));\n }\n }\n return null;\n }),\n /**\n * Direction the child node will enter from.\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n * @default {\n * enter: theme.transitions.easing.easeOut,\n * exit: theme.transitions.easing.sharp,\n * }\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nexport default Slide;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getDrawerUtilityClass(slot) {\n return generateUtilityClass('MuiDrawer', slot);\n}\nconst drawerClasses = generateUtilityClasses('MuiDrawer', ['root', 'docked', 'paper', 'paperAnchorLeft', 'paperAnchorRight', 'paperAnchorTop', 'paperAnchorBottom', 'paperAnchorDockedLeft', 'paperAnchorDockedRight', 'paperAnchorDockedTop', 'paperAnchorDockedBottom', 'modal']);\nexport default drawerClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"BackdropProps\"],\n _excluded2 = [\"anchor\", \"BackdropProps\", \"children\", \"className\", \"elevation\", \"hideBackdrop\", \"ModalProps\", \"onClose\", \"open\", \"PaperProps\", \"SlideProps\", \"TransitionComponent\", \"transitionDuration\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport Modal from '../Modal';\nimport Slide from '../Slide';\nimport Paper from '../Paper';\nimport capitalize from '../utils/capitalize';\nimport useTheme from '../styles/useTheme';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getDrawerUtilityClass } from './drawerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, (ownerState.variant === 'permanent' || ownerState.variant === 'persistent') && styles.docked, styles.modal];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchor,\n variant\n } = ownerState;\n const slots = {\n root: ['root'],\n docked: [(variant === 'permanent' || variant === 'persistent') && 'docked'],\n modal: ['modal'],\n paper: ['paper', `paperAnchor${capitalize(anchor)}`, variant !== 'temporary' && `paperAnchorDocked${capitalize(anchor)}`]\n };\n return composeClasses(slots, getDrawerUtilityClass, classes);\n};\nconst DrawerRoot = styled(Modal, {\n name: 'MuiDrawer',\n slot: 'Root',\n overridesResolver\n})(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.drawer\n}));\nconst DrawerDockedRoot = styled('div', {\n shouldForwardProp: rootShouldForwardProp,\n name: 'MuiDrawer',\n slot: 'Docked',\n skipVariantsResolver: false,\n overridesResolver\n})({\n flex: '0 0 auto'\n});\nconst DrawerPaper = styled(Paper, {\n name: 'MuiDrawer',\n slot: 'Paper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.paper, styles[`paperAnchor${capitalize(ownerState.anchor)}`], ownerState.variant !== 'temporary' && styles[`paperAnchorDocked${capitalize(ownerState.anchor)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n overflowY: 'auto',\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n flex: '1 0 auto',\n zIndex: (theme.vars || theme).zIndex.drawer,\n // Add iOS momentum scrolling for iOS < 13.0\n WebkitOverflowScrolling: 'touch',\n // temporary style\n position: 'fixed',\n top: 0,\n // We disable the focus ring for mouse, touch and keyboard users.\n // At some point, it would be better to keep it for keyboard users.\n // :focus-ring CSS pseudo-class will help.\n outline: 0\n}, ownerState.anchor === 'left' && {\n left: 0\n}, ownerState.anchor === 'top' && {\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n}, ownerState.anchor === 'right' && {\n right: 0\n}, ownerState.anchor === 'bottom' && {\n top: 'auto',\n left: 0,\n bottom: 0,\n right: 0,\n height: 'auto',\n maxHeight: '100%'\n}, ownerState.anchor === 'left' && ownerState.variant !== 'temporary' && {\n borderRight: `1px solid ${(theme.vars || theme).palette.divider}`\n}, ownerState.anchor === 'top' && ownerState.variant !== 'temporary' && {\n borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`\n}, ownerState.anchor === 'right' && ownerState.variant !== 'temporary' && {\n borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`\n}, ownerState.anchor === 'bottom' && ownerState.variant !== 'temporary' && {\n borderTop: `1px solid ${(theme.vars || theme).palette.divider}`\n}));\nconst oppositeDirection = {\n left: 'right',\n right: 'left',\n top: 'down',\n bottom: 'up'\n};\nexport function isHorizontal(anchor) {\n return ['left', 'right'].indexOf(anchor) !== -1;\n}\nexport function getAnchor({\n direction\n}, anchor) {\n return direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;\n}\n\n/**\n * The props of the [Modal](/material-ui/api/modal/) component are available\n * when `variant=\"temporary\"` is set.\n */\nconst Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiDrawer'\n });\n const theme = useTheme();\n const isRtl = useRtl();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n anchor: anchorProp = 'left',\n BackdropProps,\n children,\n className,\n elevation = 16,\n hideBackdrop = false,\n ModalProps: {\n BackdropProps: BackdropPropsProp\n } = {},\n onClose,\n open = false,\n PaperProps = {},\n SlideProps,\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Slide,\n transitionDuration = defaultTransitionDuration,\n variant = 'temporary'\n } = props,\n ModalProps = _objectWithoutPropertiesLoose(props.ModalProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n\n // Let's assume that the Drawer will always be rendered on user space.\n // We use this state is order to skip the appear transition during the\n // initial mount of the component.\n const mounted = React.useRef(false);\n React.useEffect(() => {\n mounted.current = true;\n }, []);\n const anchorInvariant = getAnchor({\n direction: isRtl ? 'rtl' : 'ltr'\n }, anchorProp);\n const anchor = anchorProp;\n const ownerState = _extends({}, props, {\n anchor,\n elevation,\n open,\n variant\n }, other);\n const classes = useUtilityClasses(ownerState);\n const drawer = /*#__PURE__*/_jsx(DrawerPaper, _extends({\n elevation: variant === 'temporary' ? elevation : 0,\n square: true\n }, PaperProps, {\n className: clsx(classes.paper, PaperProps.className),\n ownerState: ownerState,\n children: children\n }));\n if (variant === 'permanent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, _extends({\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: drawer\n }));\n }\n const slidingDrawer = /*#__PURE__*/_jsx(TransitionComponent, _extends({\n in: open,\n direction: oppositeDirection[anchorInvariant],\n timeout: transitionDuration,\n appear: mounted.current\n }, SlideProps, {\n children: drawer\n }));\n if (variant === 'persistent') {\n return /*#__PURE__*/_jsx(DrawerDockedRoot, _extends({\n className: clsx(classes.root, classes.docked, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: slidingDrawer\n }));\n }\n\n // variant === temporary\n return /*#__PURE__*/_jsx(DrawerRoot, _extends({\n BackdropProps: _extends({}, BackdropProps, BackdropPropsProp, {\n transitionDuration\n }),\n className: clsx(classes.root, classes.modal, className),\n open: open,\n ownerState: ownerState,\n onClose: onClose,\n hideBackdrop: hideBackdrop,\n ref: ref\n }, other, ModalProps, {\n children: slidingDrawer\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Drawer.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Side from which the drawer will appear.\n * @default 'left'\n */\n anchor: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),\n /**\n * @ignore\n */\n BackdropProps: PropTypes.object,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The elevation of the drawer.\n * @default 16\n */\n elevation: integerPropType,\n /**\n * If `true`, the backdrop is not rendered.\n * @default false\n */\n hideBackdrop: PropTypes.bool,\n /**\n * Props applied to the [`Modal`](/material-ui/api/modal/) element.\n * @default {}\n */\n ModalProps: PropTypes.object,\n /**\n * Callback fired when the component requests to be closed.\n * The `reason` parameter can optionally be used to control the response to `onClose`.\n *\n * @param {object} event The event source of the callback.\n * @param {string} reason Can be: `\"escapeKeyDown\"`, `\"backdropClick\"`.\n */\n onClose: PropTypes.func,\n /**\n * If `true`, the component is shown.\n * @default false\n */\n open: PropTypes.bool,\n /**\n * Props applied to the [`Paper`](/material-ui/api/paper/) element.\n * @default {}\n */\n PaperProps: PropTypes.object,\n /**\n * Props applied to the [`Slide`](/material-ui/api/slide/) element.\n */\n SlideProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * The variant to use.\n * @default 'temporary'\n */\n variant: PropTypes.oneOf(['permanent', 'persistent', 'temporary'])\n} : void 0;\nexport default Drawer;","import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\nimport { BASE_URL, EndpointsSlug } from 'constant/api/Endpoints'\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-Notification-Reducer-functions\n *@developer Aditya P\n */\n\nexport const UserNotification = createApi({\n reducerPath: 'UserNotification',\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem('accessToken') || \"\";\n headers.set('Content-type', 'application/json; charset=UTF-8')\n if (token) {\n headers.set('Authorization', `Bearer ${token}`)\n \n }\n return headers\n },\n }),\n endpoints: (builder) => ({\n GetAllUserNotification: builder.query({\n query: () => ({\n url: EndpointsSlug.GET_USER_ALL_NOTIFICATION,\n method: 'GET',\n })\n }),\n GetSingleNotification: builder.query({\n query: ({notificationId}) => ({\n url: EndpointsSlug.GET_SINGLE_NOTIFICATION,\n method: 'GET',\n params: {notificationId}\n })\n }),\n PatchReadAllNotification: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.READ_ALL_NOTIFICATION,\n method: 'PATCH',\n body: {payload}\n })\n })\n })\n})\n\nexport const {\n useGetAllUserNotificationQuery,\n useGetSingleNotificationQuery,\n usePatchReadAllNotificationMutation\n} = UserNotification","import React, { useEffect } from \"react\";\nimport { Menu } from \"@mui/material\";\nimport ChannelImage from \"assets/images/channel.png\";\nimport Drawer from \"@mui/material/Drawer\";\nimport { NavLink } from \"react-router-dom\";\nimport Loader from \"components/Loader/Loader\";\nimport { usePatchReadAllNotificationMutation } from \"store/slicer/notification\";\nimport DOMPurify from \"dompurify\";\n\nconst NotificationItem = ({ onClose, notifications }) => {\n const [readAllNotificationsTrigger, readAllNotificationsInfo] =\n usePatchReadAllNotificationMutation();\n // call this once to trigger read all notif api\n useEffect(() => {\n readAllNotificationsTrigger();\n }, []);\n\n const handleNotificationClick = () => {\n onClose(); // Close the dropdown when the \"Notifications\" icon is clicked\n };\n return (\n <>\n <div className=\"notification-heading px-4 py-5 md:px-3 md:py-3 flex justify-between items-center\">\n <div className=\"flex gap-[15px] justify-center items-baseline\">\n <h5 className=\"font-semibold text-lg md:text-sm text-white md:text-[#7A7A7A]\">\n Notifications\n </h5>\n <NavLink to=\"/me/all/notification\">\n <span className=\"font-medium hover:underline underline-offset-2 text-[#FBBC5E] text-[12px]\">\n See All\n </span>\n </NavLink>\n </div>\n <button\n className=\"text-white md:text-[#7A7A7A] hover:text-white\"\n onClick={handleNotificationClick}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n >\n <path\n d=\"M19.6875 8.3125L8.3125 19.6875M8.3125 8.3125L19.6875 19.6875\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n <div className=\"notification-body overflow-y-auto mr-1\">\n <ul className=\"mr-1\">\n {notifications === null\n ? \"No Notification received yet!\"\n : notifications\n ?.slice(0)\n ?.reverse()\n ?.map((el) => (\n <a href={`/me/notification/${el?._id}`}>\n <li\n key={el?._id}\n className=\"group flex gap-6 border-l-4 border-l-transparent hover:bg-white hover:bg-opacity-10 hover:border-l-[#FBBC5E] cursor-pointer py-4 border-b border-b-[#424242]\"\n >\n {/* <div className=\"notification_image ml-0\">\n <img\n src={el?.image === \"TBD\" ? ChannelImage : el?.image}\n alt=\"\"\n className=\"rounded-full w-[58px] h-[58px]\"\n />\n </div> */}\n <div className=\"message overflow-hidden pl-[10px]\">\n <div\n className=\"content text-sm text-white text-opacity-80 group-hover:text-opacity-100\"\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(el?.title),\n }}\n ></div>\n <div className=\"overflow-hidden w-[85%]\">\n <p className=\"truncate text-[#AEAEAE] text-[13px]\">\n {el?.message}\n </p>\n </div>\n <div className=\"timestamp text-sm text-[#AEAEAE] mt-2\">\n {el?.timestamp}\n </div>\n </div>\n </li>\n </a>\n ))}\n </ul>\n </div>\n </>\n );\n};\nconst NotificationDropdown = ({\n anchorEl,\n onClose,\n notifications,\n isMobile,\n loader,\n}) => {\n const open = Boolean(anchorEl);\n const handleNotificationClick = () => {\n onClose(); // Close the dropdown when the \"Notifications\" icon is clicked\n };\n return (\n <>\n {!isMobile && (\n <Menu\n id=\"notification\"\n sx={{\n \"& .MuiModal-backdrop\": { backgroundColor: \"rgba(0,0,0,0.6)\" },\n }}\n anchorEl={anchorEl}\n PopoverClasses={{\n paper: \"notification-dropdown\",\n }}\n MenuListProps={{\n component: \"div\",\n }}\n open={open}\n PaperProps={{\n elevation: 0,\n sx: {\n overflow: \"visible\",\n mt: 2.5,\n pt: 0,\n bgcolor: \"#2D2D2D\",\n \"& > .MuiMenu-list\": {\n paddingTop: 0,\n },\n \"&:before\": {\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n right: \"calc(50% - 55px)\",\n width: 20,\n height: 20,\n display: { xs: \"none\", md: \"block\" },\n backgroundImage: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"15\" viewBox=\"0 0 18 15\" fill=\"none\"><path d=\"M9 0L17.6603 15H0.339746L9 0Z\" fill=\"%232D2D2D\"/></svg>')`,\n transform: \"translateY(-50%)\",\n zIndex: 0,\n },\n },\n style: {\n width: \"100%\",\n maxWidth: \"435px\",\n },\n }}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"left\" }}\n >\n {loader ? (\n <Loader />\n ) : (\n <NotificationItem\n onClose={handleNotificationClick}\n notifications={notifications}\n />\n )}\n </Menu>\n )}\n\n {isMobile && (\n <Drawer\n anchor={\"right\"}\n open={open}\n onClose={handleNotificationClick}\n sx={{\n display: { xs: \"block\", lg: \"none\" },\n \"& .MuiDrawer-paper\": {\n boxSizing: \"border-box\",\n width: \"100%\",\n maxWidth: \"500px\",\n backgroundColor: \"#1D1D1D\",\n backdropFilter: \"blur(10px)\",\n },\n }}\n >\n <NotificationItem\n onClose={handleNotificationClick}\n notifications={notifications}\n />\n </Drawer>\n )}\n </>\n );\n};\n\nexport default NotificationDropdown;\n","var _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRollingProfiler(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n style: {\n margin: \"auto\",\n background: \"none\",\n display: \"block\",\n shapeRendering: \"auto\"\n },\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n fill: \"none\",\n stroke: \"#e2931d\",\n strokeWidth: 5,\n r: 41,\n strokeDasharray: \"193.20794819577225 66.40264939859075\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n repeatCount: \"indefinite\",\n dur: \"1s\",\n values: \"0 50 50;360 50 50\",\n keyTimes: \"0;1\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRollingProfiler);\nexport default __webpack_public_path__ + \"static/media/Rolling-profiler.626336d5c52fbfd2ed7e1d2a425389a1.svg\";\nexport { ForwardRef as ReactComponent };","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.arrayBuffer().then(toArray).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 /* State.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 /* State.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 /* State.READ_PAYLOAD */;\n }\n else if (expectedLength === 126) {\n state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n }\n else {\n state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n }\n }\n else if (state === 1 /* State.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 /* State.READ_PAYLOAD */;\n }\n else if (state === 2 /* State.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 /* State.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 /* State.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 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 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})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.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/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n return (Date.now().toString(36).substring(3) +\n Math.random().toString(36).substring(2, 5));\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 this.supportsBinary = !opts.forceBase64;\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/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 { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n constructor() {\n super(...arguments);\n this._polling = false;\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] = randomString();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\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","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @package\n */\n constructor(opts) {\n super(opts);\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 /**\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(createRequest, uri, opts) {\n super();\n this.createRequest = createRequest;\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 = this.createRequest(opts));\n try {\n xhr.open(this._method, this._uri, true);\n try {\n if (this._opts.extraHeaders) {\n // @ts-ignore\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(\n // @ts-ignore\n xhr.getResponseHeader(\"set-cookie\"));\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}\nconst hasXHR2 = (function () {\n const xhr = newRequest({\n xdomain: false,\n });\n return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n constructor(opts) {\n super(opts);\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd }, this.opts);\n return new Request(newRequest, this.uri(), opts);\n }\n}\nfunction newRequest(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}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n get name() {\n return \"websocket\";\n }\n doOpen() {\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 = this.createSocket(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 // 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 this.doWrite(packet, data);\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.onerror = () => { };\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] = randomString();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n return this.createUri(schema, query);\n }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n createSocket(uri, protocols, opts) {\n return !isReactNative\n ? protocols\n ? new WebSocketCtor(uri, protocols)\n : new WebSocketCtor(uri)\n : new WebSocketCtor(uri, protocols, opts);\n }\n doWrite(_packet, data) {\n this.ws.send(data);\n }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n websocket: WS,\n webtransport: WT,\n polling: XHR,\n};\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n get name() {\n return \"webtransport\";\n }\n doOpen() {\n try {\n // @ts-ignore\n this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\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","// 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 <stevenlevithan.com> (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 > 8000) {\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 as DEFAULT_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 { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n // script, so we create one single event listener here which will forward the event to the socket instances\n addEventListener(\"offline\", () => {\n OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade 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 this._prevBufferLen = 0;\n this._pingInterval = -1;\n this._pingTimeout = -1;\n this._maxPayload = -1;\n /**\n * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n */\n this._pingTimeoutTime = Infinity;\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n const parsedUri = parse(uri);\n opts.hostname = parsedUri.host;\n opts.secure =\n parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n opts.port = parsedUri.port;\n if (parsedUri.query)\n opts.query = parsedUri.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 = [];\n this._transportsByName = {};\n opts.transports.forEach((t) => {\n const transportName = t.prototype.name;\n this.transports.push(transportName);\n this._transportsByName[transportName] = t;\n });\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 if (withEventListeners) {\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 OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n }\n }\n if (this.opts.withCredentials) {\n this._cookieJar = createCookieJar();\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 this._transportsByName[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @private\n */\n _open() {\n if (this.transports.length === 0) {\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 const transportName = this.opts.rememberUpgrade &&\n SocketWithoutUpgrade.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1\n ? \"websocket\"\n : this.transports[0];\n this.readyState = \"opening\";\n const transport = this.createTransport(transportName);\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 * Called when connection is deemed open.\n *\n * @private\n */\n onOpen() {\n this.readyState = \"open\";\n SocketWithoutUpgrade.priorWebsocketSuccess =\n \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\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 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 this._resetPingTimeout();\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._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 const delay = this._pingInterval + this._pingTimeout;\n this._pingTimeoutTime = Date.now() + delay;\n this._pingTimeoutTimer = this.setTimeoutFn(() => {\n this._onClose(\"ping timeout\");\n }, delay);\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 * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n *\n * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n * `write()` method then the message would not be buffered by the Socket.IO client.\n *\n * @return {boolean}\n * @private\n */\n /* private */ _hasPingExpired() {\n if (!this._pingTimeoutTime)\n return true;\n const hasExpired = Date.now() > this._pingTimeoutTime;\n if (hasExpired) {\n this._pingTimeoutTime = 0;\n nextTick(() => {\n this._onClose(\"ping timeout\");\n }, this.setTimeoutFn);\n }\n return hasExpired;\n }\n /**\n * Sends a message.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - 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 /**\n * Sends a message. Alias of {@link Socket#write}.\n *\n * @param {String} msg - message.\n * @param {Object} options.\n * @param {Function} fn - callback function.\n * @return {Socket} for chaining.\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 SocketWithoutUpgrade.priorWebsocketSuccess = false;\n if (this.opts.tryAllTransports &&\n this.transports.length > 1 &&\n this.readyState === \"opening\") {\n this.transports.shift();\n return this._open();\n }\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 (withEventListeners) {\n if (this._beforeunloadEventListener) {\n removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n }\n if (this._offlineEventListener) {\n const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n if (i !== -1) {\n OFFLINE_EVENT_LISTENERS.splice(i, 1);\n }\n }\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}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n * transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n constructor() {\n super(...arguments);\n this._upgrades = [];\n }\n onOpen() {\n super.onOpen();\n if (\"open\" === this.readyState && this.opts.upgrade) {\n for (let i = 0; i < this._upgrades.length; i++) {\n this._probe(this._upgrades[i]);\n }\n }\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 SocketWithoutUpgrade.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 SocketWithoutUpgrade.priorWebsocketSuccess =\n \"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 onHandshake(data) {\n this._upgrades = this._filterUpgrades(data.upgrades);\n super.onHandshake(data);\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 for (let i = 0; i < upgrades.length; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n * socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n constructor(uri, opts = {}) {\n const o = typeof uri === \"object\" ? uri : opts;\n if (!o.transports ||\n (o.transports && typeof o.transports[0] === \"string\")) {\n o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n .filter((t) => !!t);\n }\n super(uri, o);\n }\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 /**\n * A map containing acknowledgement handlers.\n *\n * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n *\n * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n * - `const value = await socket.emitWithAck(\"test\")`\n *\n * From those that don't:\n *\n * - `socket.emit(\"test\", (value) => { ... });`\n *\n * In the first case, the handlers will be called with an error when:\n *\n * - the timeout is reached\n * - the socket gets disconnected\n *\n * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n * an acknowledgement from the server.\n *\n * @private\n */\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 var _a, _b, _c;\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 = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n const discardPacket = this.flags.volatile && !isTransportWritable;\n if (discardPacket) {\n }\n else if (isConnected) {\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 const fn = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, args);\n };\n fn.withError = true;\n this.acks[id] = fn;\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 return new Promise((resolve, reject) => {\n const fn = (arg1, arg2) => {\n return arg1 ? reject(arg1) : resolve(arg2);\n };\n fn.withError = true;\n args.push(fn);\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 this._clearAcks();\n }\n /**\n * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n * the server.\n *\n * @private\n */\n _clearAcks() {\n Object.keys(this.acks).forEach((id) => {\n const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n if (!isBuffered) {\n // note: handlers that do not accept an error as first argument are ignored here\n const ack = this.acks[id];\n delete this.acks[id];\n if (ack.withError) {\n ack.call(this, new Error(\"socket has been disconnected\"));\n }\n }\n });\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 acknowledgement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (typeof ack !== \"function\") {\n return;\n }\n delete this.acks[packet.id];\n // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n if (ack.withError) {\n packet.data.unshift(null);\n }\n // @ts-ignore\n ack.apply(this, packet.data);\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 if (!v) {\n this.skipReconnect = true;\n }\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)), \n // @ts-ignore\n 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 }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called when:\n *\n * - the low-level engine is closed\n * - the parser encountered a badly formatted packet\n * - all sockets are disconnected\n *\n * @private\n */\n onclose(reason, description) {\n var _a;\n this.cleanup();\n (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\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, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\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 randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { createContext, useEffect, useRef, useState, useContext } from \"react\";\nimport { io } from \"socket.io-client\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst WebSocketContext = createContext();\n\nexport const WebSocketProvider = ({ children }) => {\n const [authToken, setAuthToken] = useState(null);\n const publicSocket = useRef(null);\n const privateSocket = useRef(null);\n\n const [isConnected, setIsConnected] = useState(null);\n const SOCKET_URL = process.env.REACT_APP_BASE_CREATOR_API_URL;\n\n useEffect(() => {\n const token = localStorage.getItem(\"accessToken\");\n setAuthToken(token);\n\n return () => {\n // Cleanup on unmount\n publicSocket.current?.disconnect();\n privateSocket.current?.disconnect();\n };\n }, []);\n\n // Initialize the public WebSocket connection with a 3-second delay\n useEffect(() => {\n if (!authToken) {\n const timeoutId = setTimeout(() => {\n const newSocket = io(SOCKET_URL, {\n transports: [\"websocket\"],\n });\n\n newSocket.on(\"connect\", () => {\n console.log(\"Public Socket connection established!\");\n setIsConnected(true);\n });\n\n const userId = uuidv4();\n newSocket.emit(\"connect_user_by_web\", {\n userId: userId,\n userType: \"guest\",\n });\n\n newSocket.on(\"disconnect\", () => {\n console.log(\"Public Socket disconnected.\");\n setIsConnected(false);\n });\n\n publicSocket.current = newSocket;\n }, 3000); // Delay the connection by 3 seconds\n\n return () => {\n clearTimeout(timeoutId);\n publicSocket.current?.disconnect();\n };\n }\n }, [authToken]);\n\n // Initialize the private WebSocket connection with a 3-second delay\n useEffect(() => {\n if (authToken) {\n const timeoutId = setTimeout(() => {\n const userInfo = JSON.parse(localStorage.getItem(\"userInfo\"));\n const userId = userInfo?.id;\n\n const newSocket = io(SOCKET_URL, {\n auth: { authorization: `Bearer ${authToken}`, role: \"user\" },\n transports: [\"websocket\"],\n });\n\n newSocket.on(\"connect\", () => {\n console.log(\"Auth Socket connection established!\");\n setIsConnected(true);\n });\n\n newSocket.emit(\"connect_user_by_web\", {\n userId: userId,\n userType: \"normal\",\n });\n\n newSocket.on(\"connect_user_by_web\", (data) => {\n console.log(\"Connected to user:\", data);\n });\n\n newSocket.on(\"disconnect\", () => {\n console.log(\"Auth Socket disconnected.\");\n setIsConnected(false);\n });\n\n newSocket.on(\"connect_error\", (error) => {\n console.error(\"Socket connection error:\", error);\n });\n\n privateSocket.current = newSocket;\n }, 3000); // Delay the connection by 3 seconds\n\n return () => {\n clearTimeout(timeoutId);\n privateSocket.current?.disconnect();\n };\n }\n }, [authToken]);\n\n // Update token and manage socket connections\n const setToken = (token) => {\n if (token) {\n publicSocket.current?.disconnect(); // Disconnect public socket on login\n } else {\n privateSocket.current?.disconnect(); // Disconnect private socket on logout\n }\n setAuthToken(token);\n };\n\n return (\n <WebSocketContext.Provider\n value={{\n socket: authToken ? privateSocket.current : publicSocket.current,\n setToken, // Expose function to update token\n }}\n >\n {children}\n </WebSocketContext.Provider>\n );\n};\n\n// Custom hook to use WebSocket context\nexport const useWebSocket = () => {\n return useContext(WebSocketContext);\n};\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module AfterLogin\n *@developer Sudhanshu <<sudhanshut@instaacoders.com>>\n */\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport { useNavigate, useLocation, NavLink, Link } from \"react-router-dom\";\nimport { Box, Menu, MenuItem } from \"@mui/material\";\nimport Drawer from \"@mui/material/Drawer\";\n// import logo from \"assets/images/beta_logo.png\";\nimport logo from \"assets/images/logo.png\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport NotificationDropdown from \"components/notification/Index\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { logout } from \"store/slicer/userAuth\";\nimport { useGetAllUserNotificationQuery } from \"store/slicer/notification\";\nimport { useGetUserProfileByTokenQuery } from \"store/slicer/userProfile\";\nimport RollingProfilerLoader from \"assets/images/Rolling-profiler.svg\";\nimport { getUsdToFstrPrice } from \"utils\";\nimport { useGetCartItemByTokenQuery } from \"store/slicer/Cart\";\nimport { useGetStarCartItemByTokenQuery } from \"store/slicer/Cart\";\nimport { useGetCartItemsCountQuery } from \"store/slicer/Cart\";\nimport toast from \"react-hot-toast\";\nimport { useWebSocket } from \"../../services/socket/index\";\nimport { FaMeta } from \"react-icons/fa6\";\n\nconst SearchResultItem = ({ text, searchTerm, onClick }) => {\n const highlightedText = text.replace(\n new RegExp(searchTerm, \"gi\"),\n (match) => `${match}`\n );\n\n return (\n <li\n onClick={onClick}\n dangerouslySetInnerHTML={{\n __html: `<span class=\"text-[#7A7A7A] pr-2 inline-block\">Go to</span> ${highlightedText}`,\n }}\n className=\"cursor-pointer hover:bg-white/[0.2] py-1 text-white font-bold text-sm h-10 flex items-center pl-8 c\"\n />\n );\n};\n\nconst AfterLogin = () => {\n const { data, isLoading, error, refetch } = useGetAllUserNotificationQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const {\n data: getUserProfileData,\n isLoading: profileLoader,\n refetch: refetchProfileData,\n } = useGetUserProfileByTokenQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const [userInfo, setUserInfo] = useState({});\n // const { userInfo } = useSelector((state) => state.auth);\n const dispatch = useDispatch();\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [searchResults, setSearchResults] = useState([]);\n const [showDropdown, setShowDropdown] = useState(false);\n const searchRef = useRef(null);\n const [showSearch, setShowSearch] = useState(false);\n const navigate = useNavigate();\n const location = useLocation();\n const [isHovered, setIsHovered] = useState(false);\n const { data: cartCount, refetch: cartCountRefetch } =\n useGetCartItemsCountQuery();\n const { data: cartData, refetch: cartRefetch } = useGetCartItemByTokenQuery();\n const { data: starData, refetch: starRefetch } =\n useGetStarCartItemByTokenQuery();\n\n let hasUnreadNotification = false;\n\n const { setToken, socket } = useWebSocket(); // Get the setToken function from context\n\n // refetch profile data on route change to check for session expire\n useEffect(() => {\n refetchProfileData();\n }, [location]);\n\n // get usd > fstr conversion on page change\n useEffect(() => {\n getUsdToFstrPrice();\n }, [location]);\n\n // check for session expire here\n if (getUserProfileData && getUserProfileData?.statusCode == 401) {\n localStorage.clear();\n sessionStorage.setItem(\"sessionExpired\", true);\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n });\n }\n\n if (data?.response?.data?.notifications?.length > 0) {\n let allNotifs = data?.response?.data?.notifications;\n allNotifs.map((notif) => {\n if (notif?.is_read == false) {\n hasUnreadNotification = true;\n }\n });\n }\n\n const handleInputChange = (event) => {\n const value = event.target.value;\n setSearchTerm(value);\n\n const results = [\"Apartments\", \"My Assets\"].filter((item) =>\n item.toLowerCase().includes(value.toLowerCase())\n );\n\n setSearchResults(results);\n setShowDropdown(true);\n };\n\n const handleResultClick = (result) => {\n if (result.toLowerCase() == \"apartments\") {\n navigate(\"/marketplace/apartments\");\n } else if (result.toLowerCase() == \"my assets\") {\n navigate(\"/my-assets\");\n }\n setSearchTerm(\"\");\n setShowDropdown(false);\n };\n\n const [handleToggleHamburger, sethandleToggleHamburger] = useState(false);\n useEffect(() => {\n const handleClickOutside = (event) => {\n setShowDropdown(false);\n if (\n searchRef.current &&\n !searchRef.current.contains(event.target) &&\n searchTerm === \"\"\n ) {\n setShowDropdown(false);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"click\", handleClickOutside);\n };\n }, [searchTerm]);\n const handleSearch = () => {\n setShowSearch(!showSearch);\n sethandleToggleHamburger(false);\n };\n const handleHamburger = () => {\n sethandleToggleHamburger(!handleToggleHamburger);\n setShowSearch(false);\n };\n const { pathname } = useLocation();\n useEffect(() => {\n sethandleToggleHamburger(false);\n }, [pathname]);\n const [sticky, setSticky] = useState({ isSticky: false, offset: 0 });\n const headerRef = useRef(null);\n // handle scroll event\n const handleScroll = (elTopOffset, elHeight) => {\n // if (window.pageYOffset > (elTopOffset + elHeight)) {\n if (window.pageYOffset > 10) {\n setSticky({ isSticky: true, offset: elHeight });\n } else {\n setSticky({ isSticky: false, offset: 0 });\n }\n };\n // add/remove scroll event listener\n\n useEffect(() => {\n let header = headerRef.current.getBoundingClientRect();\n const handleScrollEvent = () => {\n handleScroll(header.top, header.height);\n };\n\n window.addEventListener(\"scroll\", handleScrollEvent);\n\n return () => {\n window.removeEventListener(\"scroll\", handleScrollEvent);\n };\n }, []);\n\n //profile menu \\\n const [anchorEl, setAnchorEl] = useState(null);\n const open = Boolean(anchorEl);\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleOnFocus = (event) => {\n let $target = event.currentTarget;\n // $target.par\n };\n // notification\n const notificationData = [\n {\n id: \"1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed\",\n content:\n \"<b>Merrianne</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"baec3fc9-2286-3e96-5d5c-e0569bb6ad10\",\n content:\n \"Great news! Your purchase of Astral Suite Apartment is complete.\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"e3a5208c-74a1-8046-0f2a-3bbc8dd8939e\",\n content:\n \"<b>Trivan48_g</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"d5c2dea4-e0e7-3a30-d4f5-74181ecdd8eb\",\n content:\n \"Discover thrilling new VR games and experiences just added to the Marketplace!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"d37bb53c-df76-0d2c-7055-66f400daf80e\",\n content:\n \"Congratulations on your first purchase! You've won 1 XLN star as a reward.\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"2c9be0a4-a3a5-e2ce-3e1a-2908c316c4d1\",\n content:\n \"<b>Trivan48_g</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"658b99a6-a1bb-f042-b961-00910e1802aa\",\n content:\n \"<b>Merrianne</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"88f4a019-3344-7b62-2c07-827ad0b7f4d9\",\n content:\n \"<b>Merrianne</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"572979fb-4946-a01c-b992-55196767f29c\",\n content:\n \"<b>Merrianne</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n {\n id: \"eb8585c1-f1c2-0ce7-dede-36ac8d2ca3e9\",\n content:\n \"<b>Merrianne</b> has invited you to explore their apartment. Join the party now!\",\n timestamp: \"48 mins\",\n img: \"\",\n },\n ];\n const [notifyDDOpen, setNotifyDDOpen] = useState(null);\n\n useEffect(() => {\n refetch();\n }, [notifyDDOpen]);\n\n const [notifyDDMobile, setNotifyDDMobile] = useState(false);\n const handleToggleNotifyDD = (event) => {\n if (!notifyDDOpen) {\n setNotifyDDOpen(event.currentTarget);\n } else {\n setNotifyDDOpen(null);\n }\n };\n\n const handleCloseNotifyDD = () => {\n setNotifyDDMobile(false);\n setNotifyDDOpen(null);\n };\n\n const handleNotifyMobileToggle = (event) => {\n if (!notifyDDOpen) {\n setNotifyDDMobile(true);\n setNotifyDDOpen(event.currentTarget);\n } else {\n setNotifyDDMobile(false);\n setNotifyDDOpen(null);\n }\n };\n\n // mobile search drawer\n const [searchDrawer, setSearchDrawer] = React.useState(false);\n\n // disconnect user web socket from server\n const disconnectUserWebSocket = async () => {\n const userInfo = JSON.parse(localStorage.getItem(\"userInfo\"));\n const userId = userInfo?.id;\n\n // console.log(\"userId\", userId);\n socket.emit(\"disconnect_user_by_web\", {\n userId: userId,\n userType: \"normal\",\n });\n\n // Unsubscribe from the event when the component is unmounted\n return () => {\n socket.off(\"disconnect_user_by_web\");\n };\n };\n\n // logout user from server and disconnect user auth websocket connection\n const logoutUser = async () => {\n await disconnectUserWebSocket();\n dispatch(logout());\n setToken(null);\n navigate(\"/\");\n };\n\n const toggleDrawer = (open) => (event) => {\n if (\n event.type === \"keydown\" &&\n (event.key === \"Tab\" || event.key === \"Shift\")\n ) {\n return;\n }\n setSearchDrawer(open);\n };\n\n useEffect(() => {\n // Ensure the socket is ready before attempting to listen for events\n if (!socket) {\n console.log(\"Socket is not ready yet.socket_notification\");\n return;\n }\n\n console.log(\"socket_notification==============\", socket);\n // Listen for the specific event\n\n socket.on(\"user_push_notification_web\", (data) => {\n console.log(\"Received notification event:\", data);\n if (data?.info) {\n refetchProfileData();\n // TODO: Add toaster to show new notification\n toast(\"You have got a new notification!\", {\n icon: \"🔔\",\n style: {\n marginTop: \"40px\",\n borderRadius: \"10px\",\n background: \"#0BDA51\",\n color: \"#fff\",\n },\n });\n }\n });\n\n // Unsubscribe from the event when the component is unmounted\n return () => {\n socket.off(\"user_push_notification_web\");\n };\n }, [socket]);\n\n useEffect(() => {\n setUserInfo(JSON.parse(localStorage.getItem(\"userInfo\")));\n }, [localStorage.getItem(\"userInfo\")]);\n useEffect(() => {\n if (localStorage.getItem(\"userBasicData\")) {\n toast.error(\"Please complete your account setup to continue.\", {\n id: \"account_setup\",\n });\n navigate(\"/add-details\");\n }\n const interval = setInterval(() => {\n cartCountRefetch();\n }, 5000);\n return () => clearInterval(interval);\n }, []);\n\n return (\n <>\n {/* backdrop-blur-[2px] */}\n <Box\n className={`w-full ${\n pathname == \"/\" || pathname == \"/genevieve\"\n ? \"bg-black\"\n : \"border-white/[0.1] border-b-[0.6px]\"\n } ${\n sticky.isSticky ? \"bg-dark/[0.90] \" : \"\"\n } py-2 md:py-4 px-4 lg:px-6 transition-all sticky top-0 z-[50]`}\n ref={headerRef}\n >\n <Box className=\"container mx-auto header-wrapper\">\n <Box className=\"flex items-center\">\n <Box className=\"logo-image\">\n <NavLink to=\"/\">\n <img\n src={logo}\n className=\"cursor-pointer auth-logo\"\n alt=\"Network problem\"\n />\n </NavLink>\n </Box>\n <Box className=\"menu-bar-before flex justify-between items-center w-full\">\n <Box>\n <ul className=\"flex justify-between items-center text-sm\">\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink\n to=\"/marketplace\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Marketplace\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink\n to=\"/my-assets\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Assets\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink\n to=\"/friends\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Friends\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink\n to=\"/genevieve\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Genevieve\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink\n to=\"/fstr\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n FSTR\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink\n to=\"/help-center\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Help\n </NavLink>\n </li>\n </ul>\n </Box>\n <Box>\n <ul className=\"flex justify-between items-center text-sm\">\n {/* <li className=\"mx-2 lg:mx-2\">\n <div ref={searchRef} className=\"relative w-30 lg:w-72 mx-auto py-4\">\n <div className=\"relative rounded-lg bg-black shadow border border-solid border-1 border-[#7A7A7A]\">\n <div className=\"absolute top-0 left-2 flex items-center h-full pl-1\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"currentColor\">\n <path d=\"M10.4167 9.16667H9.75834L9.525 8.94167C10.3699 7.96169 10.8343 6.71058 10.8333 5.41667C10.8333 4.34535 10.5157 3.2981 9.92046 2.40733C9.32527 1.51656 8.4793 0.822296 7.48954 0.412322C6.49977 0.00234696 5.41066 -0.104921 4.35993 0.104082C3.3092 0.313085 2.34404 0.828973 1.58651 1.58651C0.828973 2.34404 0.313085 3.3092 0.104082 4.35993C-0.104921 5.41066 0.00234696 6.49977 0.412322 7.48954C0.822296 8.4793 1.51656 9.32527 2.40733 9.92046C3.2981 10.5157 4.34535 10.8333 5.41667 10.8333C6.75834 10.8333 7.99167 10.3417 8.94167 9.525L9.16667 9.75834V10.4167L13.3333 14.575L14.575 13.3333L10.4167 9.16667ZM5.41667 9.16667C3.34167 9.16667 1.66667 7.49167 1.66667 5.41667C1.66667 3.34167 3.34167 1.66667 5.41667 1.66667C7.49167 1.66667 9.16667 3.34167 9.16667 5.41667C9.16667 7.49167 7.49167 9.16667 5.41667 9.16667Z\" fill=\"#777777\" />\n </svg>\n </div>\n <input\n type=\"text\"\n className=\"w-full py-2 pl-8 pr-3 text-sm leading-none text-white-700 outline-none bg-white bg-opacity-5 rounded-lg\"\n placeholder=\"Search\"\n value={searchTerm}\n onChange={handleInputChange}\n onFocus={handleOnFocus}\n // onBlur={()=>setShowDropdown(false)}\n />\n {showDropdown && (\n <div className=\"absolute z-[12] top-12 left-0 w-full lg:w-[390px] rounded-lg bg-[#2D2D2D]\">\n <p className=\"p-4 pt-5 leading-none text-sm font-semibold text-[#7A7A7A]\">{!!searchResults.length ? 'Results' : 'No Result'}</p>\n <ul className=\"pb-2\">\n {searchResults.map((result, index) => (\n <SearchResultItem\n key={index}\n text={result}\n searchTerm={searchTerm}\n onClick={() => handleResultClick(result)}\n />\n ))}\n </ul>\n </div>\n )}\n </div>\n </div>\n </li> */}\n <li className=\"mx-1 lg:mx-3.5\">\n {/* <NavLink\n to=\"/sidequest\"\n className=\"text-white text-xs py-2.5 px-4 font-bold rounded-[8px] border border-sec btn-outline hover:text-dark flex gap-x-2 items-center\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"17\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isHovered ? \"black\" : \"white\"}\n />\n </svg>\n <span>Metaverse</span>\n </NavLink> */}\n <NavLink\n to=\"https://www.meta.com/experiences/fourth-star/9675427669158125/\"\n target=\"_blank\"\n className=\"flex items-center lg:min-w-[202px] gap-x-2 bg-black text-white text-base md:text-lg font-bold py-2 px-4 md:px-6 rounded-lg border border-[#FBBC5E] hover:bg-[#FBBC5E] hover:text-black transition duration-300 ease-in-out\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Available on\n </span>\n <FaMeta className=\"text-blue-500 text-xl md:text-2xl\" />\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Meta\n </span>\n </NavLink>\n </li>\n {/* <li className=\"mx-1 lg:mx-3.5\">\n <NavLink\n to=\"https://buy.fourthstar.com/\"\n className=\"text-white font-semibold text-xs py-2.5 px-4 rounded-[8px] border border-sec inline-flex btn-outline hover:text-dark\"\n >\n FSTR Airdrop\n </NavLink>\n </li> */}\n <li className=\"mx-4 flex\">\n <button\n className={`group has-message relative ${\n notifyDDOpen ? \"text-[#FBBC5E]\" : \"\"\n }`}\n onClick={handleToggleNotifyDD}\n aria-controls={notifyDDOpen ? \"notification\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={notifyDDOpen ? \"true\" : undefined}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M15 17V18C15 18.7956 14.6839 19.5587 14.1213 20.1213C13.5587 20.6839 12.7956 21 12 21C11.2044 21 10.4413 20.6839 9.87868 20.1213C9.31607 19.5587 9 18.7956 9 18V17M15 17H9M15 17H18.59C18.973 17 19.165 17 19.32 16.948C19.4658 16.8986 19.5982 16.8163 19.707 16.7074C19.8157 16.5984 19.8979 16.4659 19.947 16.32C20 16.164 20 15.972 20 15.586C20 15.417 20 15.333 19.986 15.252C19.9614 15.1006 19.9022 14.9568 19.813 14.832C19.765 14.765 19.705 14.705 19.586 14.586L19.196 14.196C19.1338 14.1337 19.0845 14.0598 19.0508 13.9785C19.0172 13.8972 18.9999 13.81 19 13.722V10C19 9.08075 18.8189 8.1705 18.4672 7.32122C18.1154 6.47194 17.5998 5.70026 16.9497 5.05025C16.2997 4.40024 15.5281 3.88463 14.6788 3.53284C13.8295 3.18106 12.9193 3 12 3C11.0807 3 10.1705 3.18106 9.32122 3.53284C8.47194 3.88463 7.70026 4.40024 7.05025 5.05025C6.40024 5.70026 5.88463 6.47194 5.53284 7.32122C5.18106 8.1705 5 9.08075 5 10V13.722C5.00006 13.81 4.98279 13.8972 4.94915 13.9785C4.91552 14.0598 4.8662 14.1337 4.804 14.196L4.414 14.586C4.294 14.706 4.235 14.765 4.188 14.831C4.09803 14.956 4.03814 15.1001 4.013 15.252C4 15.332 4 15.417 4 15.586C4 15.972 4 16.164 4.052 16.32C4.10133 16.4661 4.18378 16.5988 4.29289 16.7077C4.40201 16.8167 4.53484 16.8989 4.681 16.948C4.836 17 5.027 17 5.41 17H9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"hover:stroke-[#FBBC5E]\"\n />\n </svg>\n {hasUnreadNotification && (\n <span className=\"hidden group-[.has-message]:block w-2 h-2 rounded-full absolute -top-[3px] -right-[4px] bg-[#EC4134]\"></span>\n )}\n <NotificationDropdown\n anchorEl={notifyDDOpen}\n onClose={handleCloseNotifyDD}\n notifications={data?.response?.data?.notifications}\n loader={isLoading}\n isMobile={notifyDDMobile}\n />\n </button>\n </li>\n <li className=\"mx-4\">\n <Link\n to=\"/cart\"\n data-testid=\"shopping-cart-icon\"\n className=\"relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n className=\"inline\"\n >\n <path\n d=\"M2.85024 2C2.62474 2 2.40848 2.0878 2.24903 2.24408C2.08958 2.40036 2 2.61232 2 2.83333C2 3.05435 2.08958 3.26631 2.24903 3.42259C2.40848 3.57887 2.62474 3.66667 2.85024 3.66667H3.26856C3.45318 3.66698 3.63269 3.72618 3.77994 3.83533C3.9272 3.94448 4.0342 4.09764 4.08479 4.27167L6.78176 13.5217C6.93429 14.0437 7.25609 14.5028 7.69849 14.8297C8.14089 15.1565 8.67984 15.3333 9.23385 15.3333H17.0034C17.5132 15.3334 18.0114 15.1837 18.4337 14.9036C18.8559 14.6234 19.1828 14.2257 19.3721 13.7617L21.8786 7.61833C21.9817 7.36554 22.02 7.09186 21.9902 6.82122C21.9604 6.55057 21.8634 6.2912 21.7077 6.06576C21.552 5.84033 21.3424 5.65571 21.0971 5.52803C20.8518 5.40035 20.5783 5.33351 20.3006 5.33333H6.16278L5.71895 3.81333C5.56681 3.29129 5.2454 2.83198 4.80331 2.50483C4.36123 2.17768 3.8225 2.00047 3.26856 2H2.85024ZM8.41762 13.0617L6.64912 7H20.2989L17.7924 13.1433C17.7292 13.2978 17.6203 13.4302 17.4797 13.5235C17.3391 13.6168 17.1732 13.6666 17.0034 13.6667H9.23385C9.04923 13.6664 8.86973 13.6071 8.72247 13.498C8.57521 13.3889 8.46821 13.2357 8.41762 13.0617ZM9.65217 22C9.98714 22 10.3188 21.9353 10.6283 21.8097C10.9378 21.6841 11.2189 21.4999 11.4558 21.2678C11.6927 21.0356 11.8805 20.76 12.0087 20.4567C12.1369 20.1534 12.2029 19.8283 12.2029 19.5C12.2029 19.1717 12.1369 18.8466 12.0087 18.5433C11.8805 18.24 11.6927 17.9644 11.4558 17.7322C11.2189 17.5001 10.9378 17.3159 10.6283 17.1903C10.3188 17.0647 9.98714 17 9.65217 17C8.97568 17 8.32689 17.2634 7.84854 17.7322C7.37018 18.2011 7.10145 18.837 7.10145 19.5C7.10145 20.163 7.37018 20.7989 7.84854 21.2678C8.32689 21.7366 8.97568 22 9.65217 22ZM9.65217 20.3333C9.42667 20.3333 9.21041 20.2455 9.05096 20.0893C8.89151 19.933 8.80193 19.721 8.80193 19.5C8.80193 19.279 8.89151 19.067 9.05096 18.9107C9.21041 18.7545 9.42667 18.6667 9.65217 18.6667C9.87767 18.6667 10.0939 18.7545 10.2534 18.9107C10.4128 19.067 10.5024 19.279 10.5024 19.5C10.5024 19.721 10.4128 19.933 10.2534 20.0893C10.0939 20.2455 9.87767 20.3333 9.65217 20.3333ZM16.4541 22C16.7891 22 17.1208 21.9353 17.4302 21.8097C17.7397 21.6841 18.0209 21.4999 18.2577 21.2678C18.4946 21.0356 18.6825 20.76 18.8107 20.4567C18.9388 20.1534 19.0048 19.8283 19.0048 19.5C19.0048 19.1717 18.9388 18.8466 18.8107 18.5433C18.6825 18.24 18.4946 17.9644 18.2577 17.7322C18.0209 17.5001 17.7397 17.3159 17.4302 17.1903C17.1208 17.0647 16.7891 17 16.4541 17C15.7776 17 15.1288 17.2634 14.6505 17.7322C14.1721 18.2011 13.9034 18.837 13.9034 19.5C13.9034 20.163 14.1721 20.7989 14.6505 21.2678C15.1288 21.7366 15.7776 22 16.4541 22ZM16.4541 20.3333C16.2286 20.3333 16.0123 20.2455 15.8529 20.0893C15.6934 19.933 15.6039 19.721 15.6039 19.5C15.6039 19.279 15.6934 19.067 15.8529 18.9107C16.0123 18.7545 16.2286 18.6667 16.4541 18.6667C16.6796 18.6667 16.8959 18.7545 17.0553 18.9107C17.2148 19.067 17.3043 19.279 17.3043 19.5C17.3043 19.721 17.2148 19.933 17.0553 20.0893C16.8959 20.2455 16.6796 20.3333 16.4541 20.3333Z\"\n fill=\"currentColor\"\n className=\"hover:stroke-[#FBBC5E]\"\n />\n </svg>\n {cartCount?.response?.data ? (\n <span className=\" group-[.has-message]:block w-4 h-4 rounded-full absolute -top-[8px] -right-[8px] bg-[#EC4134] flex justify-center items-center text-[10px]\">\n {cartCount?.response?.data}\n </span>\n ) : (\n <></>\n )}\n </Link>\n </li>\n <li className=\"mx-4 cursor-pointer rounded-full\">\n <div\n className={`${\n getUserProfileData?.response?.data?.photo === null\n ? \"p-2 bg-[#40351A]\"\n : \"\"\n } text-white-700 rounded-full text-base font-semibold min-w-[48px] min-h-[48px] text-center grid place-content-center`}\n onClick={handleClick}\n aria-controls={open ? \"account-menu\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? \"true\" : undefined}\n >\n {profileLoader ? (\n <div className=\"\">\n <img src={RollingProfilerLoader} />\n </div>\n ) : getUserProfileData?.response?.data?.photo === null ? (\n `${\n userInfo?.firstName === null ||\n userInfo?.firstName === undefined\n ? \"\"\n : userInfo?.firstName?.charAt(0).toUpperCase()\n }${\n userInfo?.lastName === null ||\n userInfo?.lastName === undefined\n ? \"\"\n : userInfo?.lastName?.charAt(0).toUpperCase()\n }`\n ) : (\n <img\n className=\"rounded-full w-[48px] h-[48px] text-center object-cover\"\n src={getUserProfileData?.response?.data?.photo}\n />\n )}\n </div>\n </li>\n </ul>\n <Menu\n anchorEl={anchorEl}\n id=\"account-menu\"\n open={open}\n onClose={handleClose}\n onClick={handleClose}\n disableScrollLock={true}\n PaperProps={{\n elevation: 0,\n sx: {\n overflow: \"visible\",\n mt: 1.5,\n backgroundColor: \"#000\",\n border: \"1px solid #383838\",\n borderRadius: \"8px;\",\n width: \"300px\",\n padding: \"20px 24px\",\n maxHeight: \"initial\",\n },\n }}\n transformOrigin={{ horizontal: \"right\", vertical: \"top\" }}\n anchorOrigin={{ horizontal: \"right\", vertical: \"bottom\" }}\n >\n <div className=\"flex flex-col\">\n <div className=\"mb-5\">\n <h5 className=\"text-sm font-semibold text-white mb-1\">\n {userInfo?.firstName} {userInfo?.lastName}\n </h5>\n <p className=\"text-[#7A7A7A] text-sm font-medium pr-1 overflow-hidden text-ellipsis\">\n {userInfo?.email}\n </p>\n </div>\n <ul className=\"flex flex-col gap-4 border-t border-[#383838] pt-3\">\n <li>\n <NavLink\n to=\"/me\"\n className=\"font-semibold text-white block py-3 px-3.5 rounded hover:bg-white/[0.10]\"\n >\n My Profile\n </NavLink>\n </li>\n {/* <li>\n <NavLink\n to=\"/me/transaction\"\n className=\"font-semibold text-white block py-3 px-3.5 rounded hover:bg-white/[0.10]\"\n >\n Transactions\n </NavLink>\n </li> */}\n <li>\n <NavLink\n to=\"/wallet\"\n className=\"font-semibold text-white block py-3 px-3.5 rounded hover:bg-white/[0.10]\"\n >\n Wallet\n </NavLink>\n </li>\n <li>\n <NavLink\n to=\"/my-assets/subscriptions\"\n className=\"font-semibold text-white block py-3 px-3.5 rounded hover:bg-white/[0.10]\"\n >\n Manage Subscriptions\n </NavLink>\n </li>\n <li>\n <button\n onClick={logoutUser}\n className=\"font-semibold text-white block py-3 px-3.5 rounded hover:bg-white/[0.10] text-start w-full\"\n >\n Sign out\n </button>\n </li>\n </ul>\n </div>\n </Menu>\n </Box>\n </Box>\n\n <Box className=\"menu-bar-after flex justify-between items-center w-full\">\n <Box className=\"ml-auto\">\n <ul className=\"flex justify-end items-center text-sm\">\n {/* <li className=\"ml-3\">\n <button\n className=\"flex focus:outline-none\"\n onClick={toggleDrawer(true)}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M21.3187 20.0273L15.232 13.9406C16.1766 12.7195 16.6875 11.2266 16.6875 9.65625C16.6875 7.77656 15.9539 6.01406 14.6273 4.68516C13.3008 3.35625 11.5336 2.625 9.65625 2.625C7.77891 2.625 6.01172 3.35859 4.68516 4.68516C3.35625 6.01172 2.625 7.77656 2.625 9.65625C2.625 11.5336 3.35859 13.3008 4.68516 14.6273C6.01172 15.9562 7.77656 16.6875 9.65625 16.6875C11.2266 16.6875 12.7172 16.1766 13.9383 15.2344L20.025 21.3187C20.0428 21.3366 20.064 21.3508 20.0874 21.3604C20.1107 21.3701 20.1357 21.3751 20.1609 21.3751C20.1862 21.3751 20.2112 21.3701 20.2345 21.3604C20.2578 21.3508 20.279 21.3366 20.2969 21.3187L21.3187 20.2992C21.3366 20.2814 21.3508 20.2602 21.3604 20.2369C21.3701 20.2135 21.3751 20.1885 21.3751 20.1633C21.3751 20.138 21.3701 20.113 21.3604 20.0897C21.3508 20.0664 21.3366 20.0452 21.3187 20.0273ZM13.3688 13.3688C12.375 14.3602 11.0578 14.9062 9.65625 14.9062C8.25469 14.9062 6.9375 14.3602 5.94375 13.3688C4.95234 12.375 4.40625 11.0578 4.40625 9.65625C4.40625 8.25469 4.95234 6.93516 5.94375 5.94375C6.9375 4.95234 8.25469 4.40625 9.65625 4.40625C11.0578 4.40625 12.3773 4.95 13.3688 5.94375C14.3602 6.9375 14.9062 8.25469 14.9062 9.65625C14.9062 11.0578 14.3602 12.3773 13.3688 13.3688Z\"\n fill=\"white\"\n />\n </svg>\n </button>\n </li> */}\n {/* <li className=\"ml-3 flex\">\n <button className={`group has-message relative ${notifyDDOpen ? 'text-[#FBBC5E]' : ''}`} onClick={handleToggleNotifyDD}\n aria-controls={notifyDDOpen ? 'notification' : undefined}\n aria-haspopup=\"true\"\n aria-expanded={notifyDDOpen ? 'true' : undefined}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M15 17V18C15 18.7956 14.6839 19.5587 14.1213 20.1213C13.5587 20.6839 12.7956 21 12 21C11.2044 21 10.4413 20.6839 9.87868 20.1213C9.31607 19.5587 9 18.7956 9 18V17M15 17H9M15 17H18.59C18.973 17 19.165 17 19.32 16.948C19.4658 16.8986 19.5982 16.8163 19.707 16.7074C19.8157 16.5984 19.8979 16.4659 19.947 16.32C20 16.164 20 15.972 20 15.586C20 15.417 20 15.333 19.986 15.252C19.9614 15.1006 19.9022 14.9568 19.813 14.832C19.765 14.765 19.705 14.705 19.586 14.586L19.196 14.196C19.1338 14.1337 19.0845 14.0598 19.0508 13.9785C19.0172 13.8972 18.9999 13.81 19 13.722V10C19 9.08075 18.8189 8.1705 18.4672 7.32122C18.1154 6.47194 17.5998 5.70026 16.9497 5.05025C16.2997 4.40024 15.5281 3.88463 14.6788 3.53284C13.8295 3.18106 12.9193 3 12 3C11.0807 3 10.1705 3.18106 9.32122 3.53284C8.47194 3.88463 7.70026 4.40024 7.05025 5.05025C6.40024 5.70026 5.88463 6.47194 5.53284 7.32122C5.18106 8.1705 5 9.08075 5 10V13.722C5.00006 13.81 4.98279 13.8972 4.94915 13.9785C4.91552 14.0598 4.8662 14.1337 4.804 14.196L4.414 14.586C4.294 14.706 4.235 14.765 4.188 14.831C4.09803 14.956 4.03814 15.1001 4.013 15.252C4 15.332 4 15.417 4 15.586C4 15.972 4 16.164 4.052 16.32C4.10133 16.4661 4.18378 16.5988 4.29289 16.7077C4.40201 16.8167 4.53484 16.8989 4.681 16.948C4.836 17 5.027 17 5.41 17H9\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n <span className=\"hidden group-[.has-message]:block w-2 h-2 rounded-full absolute -top-[3px] -right-[4px] bg-[#EC4134]\"></span>\n </button>\n </li> */}\n <li className=\"ml-3\">\n <Link\n to=\"/cart\"\n data-testid=\"shopping-cart-icon\"\n className=\"relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M2.85024 2C2.62474 2 2.40848 2.0878 2.24903 2.24408C2.08958 2.40036 2 2.61232 2 2.83333C2 3.05435 2.08958 3.26631 2.24903 3.42259C2.40848 3.57887 2.62474 3.66667 2.85024 3.66667H3.26856C3.45318 3.66698 3.63269 3.72618 3.77994 3.83533C3.9272 3.94448 4.0342 4.09764 4.08479 4.27167L6.78176 13.5217C6.93429 14.0437 7.25609 14.5028 7.69849 14.8297C8.14089 15.1565 8.67984 15.3333 9.23385 15.3333H17.0034C17.5132 15.3334 18.0114 15.1837 18.4337 14.9036C18.8559 14.6234 19.1828 14.2257 19.3721 13.7617L21.8786 7.61833C21.9817 7.36554 22.02 7.09186 21.9902 6.82122C21.9604 6.55057 21.8634 6.2912 21.7077 6.06576C21.552 5.84033 21.3424 5.65571 21.0971 5.52803C20.8518 5.40035 20.5783 5.33351 20.3006 5.33333H6.16278L5.71895 3.81333C5.56681 3.29129 5.2454 2.83198 4.80331 2.50483C4.36123 2.17768 3.8225 2.00047 3.26856 2H2.85024ZM8.41762 13.0617L6.64912 7H20.2989L17.7924 13.1433C17.7292 13.2978 17.6203 13.4302 17.4797 13.5235C17.3391 13.6168 17.1732 13.6666 17.0034 13.6667H9.23385C9.04923 13.6664 8.86973 13.6071 8.72247 13.498C8.57521 13.3889 8.46821 13.2357 8.41762 13.0617ZM9.65217 22C9.98714 22 10.3188 21.9353 10.6283 21.8097C10.9378 21.6841 11.2189 21.4999 11.4558 21.2678C11.6927 21.0356 11.8805 20.76 12.0087 20.4567C12.1369 20.1534 12.2029 19.8283 12.2029 19.5C12.2029 19.1717 12.1369 18.8466 12.0087 18.5433C11.8805 18.24 11.6927 17.9644 11.4558 17.7322C11.2189 17.5001 10.9378 17.3159 10.6283 17.1903C10.3188 17.0647 9.98714 17 9.65217 17C8.97568 17 8.32689 17.2634 7.84854 17.7322C7.37018 18.2011 7.10145 18.837 7.10145 19.5C7.10145 20.163 7.37018 20.7989 7.84854 21.2678C8.32689 21.7366 8.97568 22 9.65217 22ZM9.65217 20.3333C9.42667 20.3333 9.21041 20.2455 9.05096 20.0893C8.89151 19.933 8.80193 19.721 8.80193 19.5C8.80193 19.279 8.89151 19.067 9.05096 18.9107C9.21041 18.7545 9.42667 18.6667 9.65217 18.6667C9.87767 18.6667 10.0939 18.7545 10.2534 18.9107C10.4128 19.067 10.5024 19.279 10.5024 19.5C10.5024 19.721 10.4128 19.933 10.2534 20.0893C10.0939 20.2455 9.87767 20.3333 9.65217 20.3333ZM16.4541 22C16.7891 22 17.1208 21.9353 17.4302 21.8097C17.7397 21.6841 18.0209 21.4999 18.2577 21.2678C18.4946 21.0356 18.6825 20.76 18.8107 20.4567C18.9388 20.1534 19.0048 19.8283 19.0048 19.5C19.0048 19.1717 18.9388 18.8466 18.8107 18.5433C18.6825 18.24 18.4946 17.9644 18.2577 17.7322C18.0209 17.5001 17.7397 17.3159 17.4302 17.1903C17.1208 17.0647 16.7891 17 16.4541 17C15.7776 17 15.1288 17.2634 14.6505 17.7322C14.1721 18.2011 13.9034 18.837 13.9034 19.5C13.9034 20.163 14.1721 20.7989 14.6505 21.2678C15.1288 21.7366 15.7776 22 16.4541 22ZM16.4541 20.3333C16.2286 20.3333 16.0123 20.2455 15.8529 20.0893C15.6934 19.933 15.6039 19.721 15.6039 19.5C15.6039 19.279 15.6934 19.067 15.8529 18.9107C16.0123 18.7545 16.2286 18.6667 16.4541 18.6667C16.6796 18.6667 16.8959 18.7545 17.0553 18.9107C17.2148 19.067 17.3043 19.279 17.3043 19.5C17.3043 19.721 17.2148 19.933 17.0553 20.0893C16.8959 20.2455 16.6796 20.3333 16.4541 20.3333Z\"\n fill=\"currentColor\"\n />\n </svg>\n {cartCount?.response?.data ? (\n <span className=\" group-[.has-message]:block w-4 h-4 rounded-full absolute -top-[8px] -right-[8px] bg-[#EC4134] flex justify-center items-center text-[10px]\">\n {cartCount?.response?.data}\n </span>\n ) : (\n <></>\n )}\n </Link>\n </li>\n\n <li className=\"ml-3\">\n <button\n onClick={handleHamburger}\n data-testid=\"menu-icon\"\n className={`menu-icon text-white w-[34px] h-[34px] flex item-center gap-[0.563rem] flex-col items-center justify-center focus:outline-none ${\n handleToggleHamburger ? \"active\" : \"\"\n }`}\n >\n <span className=\"block w-[28px] h-[2px] bg-white\"></span>\n <span className=\"block w-[28px] h-[2px] bg-white\"></span>\n </button>\n </li>\n </ul>\n </Box>\n </Box>\n </Box>\n </Box>\n </Box>\n <div className={`overlay ${handleToggleHamburger ? \"open\" : \"\"}`}>\n <div className=\"inner-content relative mt-20 md:mt-32\">\n <ul className=\"flex flex-col gap-5 justify-between items-center relative z-50\">\n <li>\n <NavLink\n to=\"/marketplace\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Marketplace\n </NavLink>\n </li>\n <li>\n <NavLink\n to=\"/my-assets\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Assets\n </NavLink>\n </li>\n <li>\n <NavLink\n to=\"/friends\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Friends\n </NavLink>\n </li>\n {/* <li>\n <NavLink\n to=\"/genevieve\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Genevieve\n </NavLink>\n </li> */}\n <li>\n <NavLink\n to=\"/help-center\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Help\n </NavLink>\n </li>\n <li>\n {/* <NavLink\n to=\"/sidequest\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold flex gap-x-2\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n // className=\"mt-1\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isHovered ? \"black\" : \"white\"}\n />\n </svg>\n <span>Metaverse</span>\n </NavLink> */}\n <NavLink\n to=\"https://www.meta.com/experiences/fourth-star/9675427669158125/\"\n target=\"_blank\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"flex items-center lg:min-w-[202px] gap-x-2 text-white text-base md:text-lg font-bold py-2 px-4 md:px-6 rounded-lg border border-[#FBBC5E] hover:bg-[#FBBC5E] hover:text-black transition duration-300 ease-in-out\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Available on\n </span>\n <FaMeta className=\"text-blue-500 text-xl md:text-2xl\" />\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Meta\n </span>\n </NavLink>\n </li>\n {/* <li>\n <NavLink\n to=\"https://buy.fourthstar.com/\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold \"\n >\n FSTR Airdrop\n </NavLink>\n </li> */}\n <li>\n <NavLink\n to=\"/me\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n My Profile\n </NavLink>\n </li>\n <li>\n <NavLink\n to=\"/wallet\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Wallet\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink to=\"/genevieve\" className=\"text-white font-semibold \">\n Genevieve\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-2 xl:mx-4 2xl:mx-7\">\n <NavLink to=\"/fstr\" className=\"text-white font-semibold \">\n FSTR\n </NavLink>\n </li>\n <li>\n <button\n aria-controls={notifyDDOpen ? \"notification\" : undefined}\n aria-haspopup=\"true\"\n aria-expanded={notifyDDOpen ? \"true\" : undefined}\n onClick={handleNotifyMobileToggle}\n className=\"group has-message relative text-white font-semibold\"\n >\n Notifications\n {hasUnreadNotification && (\n <span className=\"hidden group-[.has-message]:block w-2 h-2 rounded-full absolute -top-[3px] -right-[8px] bg-[#EC4134]\"></span>\n )}\n </button>\n </li>\n <li>\n <button onClick={logoutUser} className=\"text-white font-semibold\">\n Sign Out\n </button>\n </li>\n </ul>\n <ShadowFrame className=\"w-[436px] h-[436px] rounded-[436px] left-[50%] top-[50%] -translate-y-1/2 -translate-x-1/2 !blur-[150px]\" />\n </div>\n </div>\n {/* <Drawer\n anchor={\"right\"}\n open={searchDrawer}\n onClose={toggleDrawer(false)}\n sx={{\n display: { xs: \"block\", lg: \"none\" },\n \"& .MuiDrawer-paper\": {\n boxSizing: \"border-box\",\n width: \"100%\",\n maxWidth: \"500px\",\n backgroundColor: \"#1D1D1D\",\n backdropFilter: \"blur(10px)\",\n },\n }}\n >\n <div className=\"search-heading py-4 px-5 flex items-center gap-2\">\n <button onClick={toggleDrawer(false)} className=\"w-[28px] h-[28px]\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n >\n <path\n d=\"M3.5 14H24.5M3.5 14L10.5 21M3.5 14L10.5 7\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n <form className=\"grow-1 flex w-full items-center\">\n <input\n type=\"text\"\n className=\"w-full grow-1 py-2 px-5 text-sm text-white outline-none bg-white border border-[#7A797A] focus:border-white bg-opacity-5 rounded-lg\"\n placeholder=\"Search\"\n value={searchTerm}\n onChange={handleInputChange}\n />\n\n <button className=\"w-[28px] h-[28px] ml-3.5\" type=\"submit\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M21.3187 20.0273L15.232 13.9406C16.1766 12.7195 16.6875 11.2266 16.6875 9.65625C16.6875 7.77656 15.9539 6.01406 14.6273 4.68516C13.3008 3.35625 11.5336 2.625 9.65625 2.625C7.77891 2.625 6.01172 3.35859 4.68516 4.68516C3.35625 6.01172 2.625 7.77656 2.625 9.65625C2.625 11.5336 3.35859 13.3008 4.68516 14.6273C6.01172 15.9562 7.77656 16.6875 9.65625 16.6875C11.2266 16.6875 12.7172 16.1766 13.9383 15.2344L20.025 21.3187C20.0428 21.3366 20.064 21.3508 20.0874 21.3604C20.1107 21.3701 20.1357 21.3751 20.1609 21.3751C20.1862 21.3751 20.2112 21.3701 20.2345 21.3604C20.2578 21.3508 20.279 21.3366 20.2969 21.3187L21.3187 20.2992C21.3366 20.2814 21.3508 20.2602 21.3604 20.2369C21.3701 20.2135 21.3751 20.1885 21.3751 20.1633C21.3751 20.138 21.3701 20.113 21.3604 20.0897C21.3508 20.0664 21.3366 20.0452 21.3187 20.0273ZM13.3688 13.3688C12.375 14.3602 11.0578 14.9062 9.65625 14.9062C8.25469 14.9062 6.9375 14.3602 5.94375 13.3688C4.95234 12.375 4.40625 11.0578 4.40625 9.65625C4.40625 8.25469 4.95234 6.93516 5.94375 5.94375C6.9375 4.95234 8.25469 4.40625 9.65625 4.40625C11.0578 4.40625 12.3773 4.95 13.3688 5.94375C14.3602 6.9375 14.9062 8.25469 14.9062 9.65625C14.9062 11.0578 14.3602 12.3773 13.3688 13.3688Z\"\n fill=\"white\"\n />\n </svg>\n </button>\n </form>\n </div>\n <div className=\"search-body\">\n {showDropdown && (\n <div className=\"w-full py-4 px-5\">\n <p className=\"text-sm text-[#7a7a7a] font-semibold\">\n {!!searchResults.length ? \"Results\" : \"No Result\"}\n </p>\n <ul className=\"py-2\">\n {searchResults.map((result, index) => (\n <SearchResultItem\n key={index}\n text={result}\n searchTerm={searchTerm}\n onClick={() => handleResultClick(result)}\n />\n ))}\n </ul>\n </div>\n )}\n </div>\n </Drawer> */}\n </>\n );\n};\n\nexport default AfterLogin;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module BeforeLogin\n *@developer Sudhanshu <<sudhanshut@instaacoders.com>>\n */\n\nimport React, { useState, useEffect, useRef } from \"react\";\nimport { useNavigate, useLocation, NavLink } from \"react-router-dom\";\nimport { Box, Menu } from \"@mui/material\";\nimport logo from \"assets/images/logo.png\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { getUsdToFstrPrice } from \"utils\";\nimport toast from \"react-hot-toast\";\nimport { FaMeta } from \"react-icons/fa6\";\n\nconst BeforeLogin = () => {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const [handleToggleHamburger, sethandleToggleHamburger] = useState(false);\n const [isHovered, setIsHovered] = useState(false);\n\n const handleHamburger = () => {\n sethandleToggleHamburger(!handleToggleHamburger);\n };\n\n useEffect(() => {\n sethandleToggleHamburger(false);\n }, [navigate]);\n const [sticky, setSticky] = useState({ isSticky: false, offset: 0 });\n const headerRef = useRef(null);\n // handle scroll event\n const handleScroll = (elTopOffset, elHeight) => {\n // if (window.pageYOffset > (elTopOffset + elHeight)) {\n if (window.pageYOffset > 10) {\n setSticky({ isSticky: true, offset: elHeight });\n } else {\n setSticky({ isSticky: false, offset: 0 });\n }\n };\n // add/remove scroll event listener\n\n useEffect(() => {\n if (localStorage.getItem(\"userBasicData\")) {\n toast.error(\"Please complete your account setup to continue.\", {\n id: \"account_setup\",\n });\n navigate(\"/add-details\");\n }\n let header = headerRef.current.getBoundingClientRect();\n const handleScrollEvent = () => {\n handleScroll(header.top, header.height);\n };\n\n window.addEventListener(\"scroll\", handleScrollEvent);\n\n return () => {\n window.removeEventListener(\"scroll\", handleScrollEvent);\n };\n }, []);\n\n // get usd > fstr conversion on page change\n useEffect(() => {\n getUsdToFstrPrice();\n }, [pathname]);\n\n return (\n // header before login\n <>\n <Box\n className={`w-full ${\n pathname == \"/\" || pathname == \"/genevieve\"\n ? \"bg-black\"\n : \"border-white/[0.1] border-[0.6px]\"\n } ${\n sticky.isSticky ? \"bg-dark/[0.90] \" : \"\"\n }py-2 md:py-4 px-4 lg:px-6 transition-all backdrop-blur-[2px] sticky top-0 z-50`}\n ref={headerRef}\n >\n <Box className=\"container mx-auto header-wrapper\">\n <Box className=\"flex justify-between items-center\">\n <Box className=\"logo-image flex items-center\">\n <NavLink to=\"/\">\n <img\n src={logo}\n className=\"cursor-pointer w-auto h-auto\"\n alt=\"Network problem\"\n />\n </NavLink>\n <ul className=\"menu-bar-before flex justify-between items-center text-sm ml-5\">\n <li className=\"mx-1 lg:mx-3.5\">\n <NavLink\n to=\"/marketplace\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Marketplace\n </NavLink>\n </li>\n\n <li className=\"mx-2 lg:mx-3.5 xl:mx-7\">\n <NavLink\n to=\"/genevieve\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Genevieve\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-3.5 xl:mx-7\">\n <NavLink\n to=\"/fstr\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n FSTR\n </NavLink>\n </li>\n\n {/* <li className=\"mx-1 lg:mx-3.5 \">\n <NavLink\n to=\"https://buy.fourthstar.com/\"\n className=\"text-white font-semibold text-xs py-2.5 px-4 rounded-[8px] border border-sec flex btn-outline hover:text-dark\"\n >\n FSTR Airdrop\n </NavLink>\n </li> */}\n </ul>\n </Box>\n <Box className=\"menu-bar-before\">\n <ul className=\"flex justify-between items-center text-sm\">\n {/* <li className=\"mx-1 lg:mx-3.5\">\n <NavLink\n to=\"/marketplace\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Marketplace\n </NavLink>\n </li> */}\n <li className=\"mx-1 lg:mx-2 xl:mx-3.5\">\n <NavLink\n to=\"/signin\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Sign in\n </NavLink>\n </li>\n <li className=\"mx-1 lg:mx-2 xl:mx-3.5\">\n <NavLink\n to={`${process.env.REACT_APP_CREATOR_WEB_URL}/auth/signup`}\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Become a Creator\n </NavLink>\n </li>\n {/* <li className=\"mx-2 lg:mx-3.5 xl:mx-7\">\n <NavLink\n to=\"/genevieve\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n Genevieve\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-3.5 xl:mx-7\">\n <NavLink\n to=\"/fstr\"\n className=\"text-white font-semibold py-2 px-1 border-b-2 border-transparent inline-block hover:text-[#FBBC5E]\"\n >\n FSTR\n </NavLink>\n </li> */}\n <li className=\"mx-1 lg:mx-2 xl:mx-3.5\">\n {/* <NavLink\n to=\"/signin\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-bold text-xs py-2.5 px-4 rounded-[8px] border border-sec btn-outline hover:text-dark flex gap-x-2 items-center\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"17\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isHovered ? \"black\" : \"white\"}\n />\n </svg>\n <span>Metaverse</span>\n </NavLink> */}\n <NavLink\n to=\"https://www.meta.com/experiences/fourth-star/9675427669158125/\"\n target=\"_blank\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"flex items-center lg:min-w-[202px] gap-x-2 bg-black text-white text-base md:text-lg font-bold py-2 px-4 md:px-6 rounded-lg border border-[#FBBC5E] hover:bg-[#FBBC5E] hover:text-black transition duration-300 ease-in-out\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Available on\n </span>\n <FaMeta className=\"text-blue-500 text-xl md:text-2xl\" />\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Meta\n </span>\n </NavLink>\n </li>\n {/* <li className=\"mx-1 lg:mx-3.5 \">\n <NavLink\n to=\"https://buy.fourthstar.com/\"\n className=\"text-white font-semibold text-xs py-2.5 px-4 rounded-[8px] border border-sec flex btn-outline hover:text-dark\"\n >\n FSTR Airdrop\n </NavLink>\n </li> */}\n </ul>\n </Box>\n <Box className=\"menu-bar-after flex justify-between items-center w-full\">\n <Box className=\"ml-auto\">\n <ul className=\"flex justify-end items-center text-sm\">\n {/* <li className=\"ml-3\">\n <a href=\"\" data-testid=\"shopping-cart-icon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M2.85024 2C2.62474 2 2.40848 2.0878 2.24903 2.24408C2.08958 2.40036 2 2.61232 2 2.83333C2 3.05435 2.08958 3.26631 2.24903 3.42259C2.40848 3.57887 2.62474 3.66667 2.85024 3.66667H3.26856C3.45318 3.66698 3.63269 3.72618 3.77994 3.83533C3.9272 3.94448 4.0342 4.09764 4.08479 4.27167L6.78176 13.5217C6.93429 14.0437 7.25609 14.5028 7.69849 14.8297C8.14089 15.1565 8.67984 15.3333 9.23385 15.3333H17.0034C17.5132 15.3334 18.0114 15.1837 18.4337 14.9036C18.8559 14.6234 19.1828 14.2257 19.3721 13.7617L21.8786 7.61833C21.9817 7.36554 22.02 7.09186 21.9902 6.82122C21.9604 6.55057 21.8634 6.2912 21.7077 6.06576C21.552 5.84033 21.3424 5.65571 21.0971 5.52803C20.8518 5.40035 20.5783 5.33351 20.3006 5.33333H6.16278L5.71895 3.81333C5.56681 3.29129 5.2454 2.83198 4.80331 2.50483C4.36123 2.17768 3.8225 2.00047 3.26856 2H2.85024ZM8.41762 13.0617L6.64912 7H20.2989L17.7924 13.1433C17.7292 13.2978 17.6203 13.4302 17.4797 13.5235C17.3391 13.6168 17.1732 13.6666 17.0034 13.6667H9.23385C9.04923 13.6664 8.86973 13.6071 8.72247 13.498C8.57521 13.3889 8.46821 13.2357 8.41762 13.0617ZM9.65217 22C9.98714 22 10.3188 21.9353 10.6283 21.8097C10.9378 21.6841 11.2189 21.4999 11.4558 21.2678C11.6927 21.0356 11.8805 20.76 12.0087 20.4567C12.1369 20.1534 12.2029 19.8283 12.2029 19.5C12.2029 19.1717 12.1369 18.8466 12.0087 18.5433C11.8805 18.24 11.6927 17.9644 11.4558 17.7322C11.2189 17.5001 10.9378 17.3159 10.6283 17.1903C10.3188 17.0647 9.98714 17 9.65217 17C8.97568 17 8.32689 17.2634 7.84854 17.7322C7.37018 18.2011 7.10145 18.837 7.10145 19.5C7.10145 20.163 7.37018 20.7989 7.84854 21.2678C8.32689 21.7366 8.97568 22 9.65217 22ZM9.65217 20.3333C9.42667 20.3333 9.21041 20.2455 9.05096 20.0893C8.89151 19.933 8.80193 19.721 8.80193 19.5C8.80193 19.279 8.89151 19.067 9.05096 18.9107C9.21041 18.7545 9.42667 18.6667 9.65217 18.6667C9.87767 18.6667 10.0939 18.7545 10.2534 18.9107C10.4128 19.067 10.5024 19.279 10.5024 19.5C10.5024 19.721 10.4128 19.933 10.2534 20.0893C10.0939 20.2455 9.87767 20.3333 9.65217 20.3333ZM16.4541 22C16.7891 22 17.1208 21.9353 17.4302 21.8097C17.7397 21.6841 18.0209 21.4999 18.2577 21.2678C18.4946 21.0356 18.6825 20.76 18.8107 20.4567C18.9388 20.1534 19.0048 19.8283 19.0048 19.5C19.0048 19.1717 18.9388 18.8466 18.8107 18.5433C18.6825 18.24 18.4946 17.9644 18.2577 17.7322C18.0209 17.5001 17.7397 17.3159 17.4302 17.1903C17.1208 17.0647 16.7891 17 16.4541 17C15.7776 17 15.1288 17.2634 14.6505 17.7322C14.1721 18.2011 13.9034 18.837 13.9034 19.5C13.9034 20.163 14.1721 20.7989 14.6505 21.2678C15.1288 21.7366 15.7776 22 16.4541 22ZM16.4541 20.3333C16.2286 20.3333 16.0123 20.2455 15.8529 20.0893C15.6934 19.933 15.6039 19.721 15.6039 19.5C15.6039 19.279 15.6934 19.067 15.8529 18.9107C16.0123 18.7545 16.2286 18.6667 16.4541 18.6667C16.6796 18.6667 16.8959 18.7545 17.0553 18.9107C17.2148 19.067 17.3043 19.279 17.3043 19.5C17.3043 19.721 17.2148 19.933 17.0553 20.0893C16.8959 20.2455 16.6796 20.3333 16.4541 20.3333Z\" fill=\"currentColor\" />\n </svg>\n </a>\n </li> */}\n <li className=\"ml-3\">\n <button\n onClick={handleHamburger}\n data-testid=\"menu-icon\"\n className={`menu-icon text-white w-[34px] h-[34px] flex item-center gap-[0.563rem] flex-col items-center justify-center focus:outline-none ${\n handleToggleHamburger ? \"active\" : \"\"\n }`}\n >\n <span className=\"block w-[28px] h-[2px] bg-white\"></span>\n <span className=\"block w-[28px] h-[2px] bg-white\"></span>\n </button>\n </li>\n </ul>\n </Box>\n </Box>\n </Box>\n </Box>\n </Box>\n <div className={`overlay ${handleToggleHamburger ? \"open\" : \"\"}`}>\n <div className=\"inner-content relative mt-28 md:mt-32\">\n <ul className=\"flex flex-col gap-5 justify-between items-center relative z-50\">\n <li>\n <NavLink\n to=\"/marketplace\"\n className=\"text-white font-semibold\"\n onClick={() => sethandleToggleHamburger(false)}\n >\n Marketplace\n </NavLink>\n </li>\n <li>\n <NavLink\n to=\"/genevieve\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-semibold\"\n >\n Genevieve\n </NavLink>\n </li>\n <li className=\"mx-2 lg:mx-3.5 xl:mx-7\">\n <NavLink to=\"/fstr\" className=\"text-white font-semibold\">\n FSTR\n </NavLink>\n </li>\n {/* <li className=\"mx-1 lg:mx-3.5\">\n <NavLink\n to=\"/signin\"\n className=\"text-white font-semibold flex gap-x-2\"\n onClick={() => sethandleToggleHamburger(false)}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n // className=\"mt-1\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isHovered ? \"black\" : \"white\"}\n />\n </svg>\n <span>Metaverse</span>\n </NavLink>\n </li> */}\n {/* <li>\n <NavLink\n to=\"https://buy.fourthstar.com/\"\n className=\"text-white font-semibold\"\n onClick={() => sethandleToggleHamburger(false)}\n >\n FSTR Airdrop\n </NavLink>\n </li> */}\n <li>\n <NavLink to=\"/signin\" className=\"text-white font-semibold\">\n Sign in\n </NavLink>\n </li>\n <li>\n <NavLink\n to={`${process.env.REACT_APP_CREATOR_WEB_URL}/auth/signup`}\n className=\"text-white font-semibold\"\n >\n Become a Creator\n </NavLink>\n </li>\n <li className=\"mt-8\">\n {/* <NavLink\n to=\"/signin\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"text-white font-bold text-xs py-2.5 px-4 rounded-[8px] border border-sec btn-outline hover:text-dark flex gap-x-2 items-center\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <svg\n width=\"24\"\n height=\"17\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16.59 9H15V4C15 3.45 14.55 3 14 3H10C9.45 3 9 3.45 9 4V9H7.41C6.52 9 6.07 10.08 6.7 10.71L11.29 15.3C11.68 15.69 12.31 15.69 12.7 15.3L17.29 10.71C17.92 10.08 17.48 9 16.59 9ZM5 19C5 19.55 5.45 20 6 20H18C18.55 20 19 19.55 19 19C19 18.45 18.55 18 18 18H6C5.45 18 5 18.45 5 19Z\"\n fill={isHovered ? \"black\" : \"white\"}\n />\n </svg>\n <span>Metaverse</span>\n </NavLink> */}\n <NavLink\n to=\"https://www.meta.com/experiences/fourth-star/9675427669158125/\"\n target=\"_blank\"\n onClick={() => sethandleToggleHamburger(false)}\n className=\"flex items-center lg:min-w-[202px] gap-x-2 text-white text-base md:text-lg font-bold py-2 px-4 md:px-6 rounded-lg border border-[#FBBC5E] hover:bg-[#FBBC5E] hover:text-black transition duration-300 ease-in-out\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Available on\n </span>\n <FaMeta className=\"text-blue-500 text-xl md:text-2xl\" />\n <span className=\"font-bold text-sm md:text-base lg:text-[12px] xl:text-[12px] 2xl:text-[16px]\">\n Meta\n </span>\n </NavLink>\n </li>\n </ul>\n <ShadowFrame className=\"w-[436px] h-[436px] rounded-[436px] left-[50%] top-[50%] -translate-y-1/2 -translate-x-1/2 !blur-[150px]\" />\n </div>\n </div>\n </>\n );\n};\n\nexport default BeforeLogin;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Header\n *@developer Sudhanshu <sudhanshut@instaacoders.com>>\n */\n\nimport React from \"react\";\n// import { useNavigate } from \"react-router-dom\";\n// import { Avatar, Badge, Button, Grid, Container, Box } from \"@mui/material\";\n// import { LightSpeed } from \"react-reveal\";\n\n// import SearchIcon from \"@mui/icons-material/Search\";\n// // import AccountCircleIcon from '@mui/icons-material/AccountCircle';\n// import NotificationsNoneIcon from \"@mui/icons-material/NotificationsNone\";\n// import logo from \"assets/images/logo.png\";\nimport AfterLogin from \"./AfterLogin\";\nimport BeforeLogin from \"./BeforeLogin\";\nimport { useSelector } from 'react-redux';\n/* nav bar */\nconst Index = () => {\n const { userInfo, userToken } = useSelector((state) => state.auth);\n return (\n // header before login \n // <BeforeLogin/>\n // headerżafter login \n (userInfo && userToken) ? <AfterLogin/> : <BeforeLogin/>\n \n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Footer Component\n *@developer Sudhanshu <sudhanshut@instaacoders.com>\n */\n\nimport React, { useState } from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { NavLink } from \"react-router-dom\";\n// footer\nconst Index = () => {\n const [telegramColor, setTelegramColor] = useState(\"white\");\n\n return (\n <Grid container item xs={12} className=\"bg-dark\">\n <Grid container item xs={12} className=\"h-full flex justify-center px-4\">\n <div className=\"text-xs flex flex-wrap flex-col md:flex-row gap-4 justify-center items-center py-[34px] md:py-[68px] flex-1\">\n <div className=\"flex flex-wrap gap-4 md:gap-8 justify-center items-center relative z-2\">\n <NavLink\n to=\"/privacy-policy\"\n data-testid=\"link-privacy\"\n className=\"text-white hover:text-[#FBBC5E] leading-relaxed \"\n >\n Privacy Policy\n </NavLink>\n <NavLink\n to=\"/terms-condition\"\n data-testid=\"link-terms\"\n className=\"text-white hover:text-[#FBBC5E] leading-relaxed \"\n >\n Terms & Conditions\n </NavLink>\n {/* <NavLink\n to=\"/help-center\"\n data-testid=\"link-terms\"\n className=\"text-white hover:text-[#FBBC5E] leading-relaxed \"\n >\n Help Center\n </NavLink> */}\n </div>\n <div className=\"flex flex-wrap gap-4 md:gap-8 md:ml-4 justify-center items-center relative z-2\">\n {/* <NavLink\n to=\"#\"\n className=\"text-white hover:text-[#FBBC5E] pointer-events-none\"\n title=\"Instagram\"\n data-testid=\"Instagram\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M7.8 2H16.2C19.4 2 22 4.6 22 7.8V16.2C22 17.7383 21.3889 19.2135 20.3012 20.3012C19.2135 21.3889 17.7383 22 16.2 22H7.8C4.6 22 2 19.4 2 16.2V7.8C2 6.26174 2.61107 4.78649 3.69878 3.69878C4.78649 2.61107 6.26174 2 7.8 2ZM7.6 4C6.64522 4 5.72955 4.37928 5.05442 5.05442C4.37928 5.72955 4 6.64522 4 7.6V16.4C4 18.39 5.61 20 7.6 20H16.4C17.3548 20 18.2705 19.6207 18.9456 18.9456C19.6207 18.2705 20 17.3548 20 16.4V7.6C20 5.61 18.39 4 16.4 4H7.6ZM17.25 5.5C17.5815 5.5 17.8995 5.6317 18.1339 5.86612C18.3683 6.10054 18.5 6.41848 18.5 6.75C18.5 7.08152 18.3683 7.39946 18.1339 7.63388C17.8995 7.8683 17.5815 8 17.25 8C16.9185 8 16.6005 7.8683 16.3661 7.63388C16.1317 7.39946 16 7.08152 16 6.75C16 6.41848 16.1317 6.10054 16.3661 5.86612C16.6005 5.6317 16.9185 5.5 17.25 5.5ZM12 7C13.3261 7 14.5979 7.52678 15.5355 8.46447C16.4732 9.40215 17 10.6739 17 12C17 13.3261 16.4732 14.5979 15.5355 15.5355C14.5979 16.4732 13.3261 17 12 17C10.6739 17 9.40215 16.4732 8.46447 15.5355C7.52678 14.5979 7 13.3261 7 12C7 10.6739 7.52678 9.40215 8.46447 8.46447C9.40215 7.52678 10.6739 7 12 7ZM12 9C11.2044 9 10.4413 9.31607 9.87868 9.87868C9.31607 10.4413 9 11.2044 9 12C9 12.7956 9.31607 13.5587 9.87868 14.1213C10.4413 14.6839 11.2044 15 12 15C12.7956 15 13.5587 14.6839 14.1213 14.1213C14.6839 13.5587 15 12.7956 15 12C15 11.2044 14.6839 10.4413 14.1213 9.87868C13.5587 9.31607 12.7956 9 12 9Z\"\n fill=\"currentColor\"\n />\n </svg>\n </NavLink> */}\n <NavLink\n to=\"https://www.facebook.com/profile.php?id=61569863293850\"\n target=\"_blank\"\n className=\"text-white hover:text-[#FBBC5E] \"\n title=\"Facebook\"\n data-testid=\"Facebook\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <g clipPath=\"url(#clip0_162_5167)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4 12C4.00014 10.4605 4.44451 8.95364 5.27979 7.66038C6.11506 6.36712 7.30576 5.34234 8.70901 4.70901C10.1123 4.07568 11.6684 3.8607 13.1908 4.08987C14.7132 4.31904 16.1372 4.98262 17.2918 6.00099C18.4464 7.01936 19.2826 8.34926 19.7002 9.83111C20.1177 11.313 20.0988 12.8838 19.6457 14.3552C19.1926 15.8265 18.3246 17.1359 17.1458 18.1262C15.967 19.1165 14.5275 19.7456 13 19.938V14H15C15.2652 14 15.5196 13.8946 15.7071 13.7071C15.8946 13.5196 16 13.2652 16 13C16 12.7348 15.8946 12.4804 15.7071 12.2929C15.5196 12.1054 15.2652 12 15 12H13V10C13 9.73478 13.1054 9.48043 13.2929 9.29289C13.4804 9.10536 13.7348 9 14 9H14.5C14.7652 9 15.0196 8.89464 15.2071 8.70711C15.3946 8.51957 15.5 8.26522 15.5 8C15.5 7.73478 15.3946 7.48043 15.2071 7.29289C15.0196 7.10536 14.7652 7 14.5 7H14C13.2044 7 12.4413 7.31607 11.8787 7.87868C11.3161 8.44129 11 9.20435 11 10V12H9C8.73478 12 8.48043 12.1054 8.29289 12.2929C8.10536 12.4804 8 12.7348 8 13C8 13.2652 8.10536 13.5196 8.29289 13.7071C8.48043 13.8946 8.73478 14 9 14H11V19.938C9.0667 19.6942 7.28882 18.7533 6 17.2917C4.71119 15.8302 4.00003 13.9486 4 12ZM12 22C17.523 22 22 17.523 22 12C22 6.477 17.523 2 12 2C6.477 2 2 6.477 2 12C2 17.523 6.477 22 12 22Z\"\n fill=\"currentColor\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_162_5167\">\n <rect width=\"24\" height=\"24\" fill=\"currentColor\" />\n </clipPath>\n </defs>\n </svg>\n </NavLink>\n <NavLink\n to=\"https://www.youtube.com/@FourthStarMetaverse/\"\n target=\"_blank\"\n className=\"text-white hover:text-[#FBBC5E] \"\n title=\"Youtube\"\n data-testid=\"Youtube\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5 7H19C19.2652 7 19.5196 7.10536 19.7071 7.29289C19.8946 7.48043 20 7.73478 20 8V16C20 16.2652 19.8946 16.5196 19.7071 16.7071C19.5196 16.8946 19.2652 17 19 17H5C4.73478 17 4.48043 16.8946 4.29289 16.7071C4.10536 16.5196 4 16.2652 4 16V8C4 7.73478 4.10536 7.48043 4.29289 7.29289C4.48043 7.10536 4.73478 7 5 7ZM2 8C2 7.20435 2.31607 6.44129 2.87868 5.87868C3.44129 5.31607 4.20435 5 5 5H19C19.7956 5 20.5587 5.31607 21.1213 5.87868C21.6839 6.44129 22 7.20435 22 8V16C22 16.7956 21.6839 17.5587 21.1213 18.1213C20.5587 18.6839 19.7956 19 19 19H5C4.20435 19 3.44129 18.6839 2.87868 18.1213C2.31607 17.5587 2 16.7956 2 16V8ZM10 9L14 12L10 15V9Z\"\n fill=\"currentColor\"\n />\n </svg>\n </NavLink>\n <NavLink\n to=\"https://x.com/FourthStarPromo\"\n target=\"_blank\"\n className=\"text-white hover:text-[#FBBC5E] \"\n title=\"Twitter\"\n data-testid=\"Twitter\"\n >\n <svg\n className=\"hover:stroke-[#FBBC5E]\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M17.7512 3H20.818L14.1179 10.6246L22 21H15.8275L10.9936 14.7074L5.46266 21H2.39401L9.56038 12.8446L2 3H8.32735L12.6967 8.75169L17.7493 3H17.7512ZM16.6748 19.1723H18.3742L7.4049 4.73169H5.58133L16.6748 19.1723Z\"\n fill=\"white\"\n />\n </svg>\n </NavLink>\n <NavLink\n to=\"https://t.me/+lw-qxdSPArtkODNh\"\n target=\"_blank\"\n className=\"text-white hover:text-[#FBBC5E] \"\n title=\"Telegram\"\n data-testid=\"Telegram\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M21 5L2 12.5L9 13.5M21 5L18.5 20L9 13.5M21 5L9 13.5M9 13.5V19L12.249 15.723\"\n stroke={telegramColor}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n onMouseOver={() => setTelegramColor(\"#FBBC5E\")}\n onMouseOut={() => setTelegramColor(\"white\")}\n />\n </svg>\n </NavLink>\n <NavLink\n to=\"https://www.linkedin.com/company/fourth-star-metaverse/\"\n target=\"_blank\"\n className=\"text-white hover:text-[#FBBC5E] \"\n title=\"Linkedin\"\n data-testid=\"Linkedin\"\n >\n <svg\n className=\"hover:stroke-[#FBBC5E]\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_138_115)\">\n <path\n d=\"M11.9335 9.64837L11.9462 9.71836L12.0077 9.68267C12.224 9.55726 12.4476 9.44493 12.6773 9.34628C13.3916 9.0411 14.4613 8.87356 15.4246 9.17579C15.9291 9.33581 16.4339 9.63384 16.8077 10.1404L16.8077 10.1404C17.1422 10.5916 17.3237 11.1417 17.3602 11.7627L17.3667 12.0007V16.3333C17.3664 16.5967 17.2655 16.85 17.0847 17.0415C16.9039 17.233 16.6568 17.3483 16.3939 17.3637C16.131 17.3791 15.8721 17.2936 15.6701 17.1245C15.4685 16.9558 15.3388 16.7166 15.3074 16.4556L15.3 16.3318V12C15.3 11.6337 15.211 11.4561 15.1473 11.3692L15.1474 11.3692L15.146 11.3674C15.0586 11.2588 14.9383 11.1814 14.8033 11.147C14.4124 11.024 13.8581 11.0894 13.4895 11.2466L13.4894 11.2466C12.9412 11.4812 12.4399 11.8491 12.098 12.1899L12.0979 12.1899L12.0967 12.1912L11.9634 12.3342L11.95 12.3486V12.3683V16.3333C11.9497 16.5967 11.8489 16.85 11.6681 17.0415C11.4873 17.233 11.2401 17.3483 10.9772 17.3637C10.7143 17.3791 10.4554 17.2936 10.2534 17.1245C10.0518 16.9558 9.92215 16.7166 9.89074 16.4556L9.88333 16.3318V9.83333C9.88333 9.55928 9.9922 9.29644 10.186 9.10266C10.3798 8.90887 10.6426 8.8 10.9167 8.8C11.1587 8.79996 11.393 8.88486 11.5788 9.0399C11.7646 9.19494 11.8902 9.41027 11.9335 9.64837ZM18.5 2.3C19.3487 2.3 20.1626 2.63714 20.7627 3.23726C21.3629 3.83737 21.7 4.65131 21.7 5.5V18.5C21.7 19.3487 21.3629 20.1626 20.7627 20.7627C20.1626 21.3629 19.3487 21.7 18.5 21.7H5.5C4.65131 21.7 3.83737 21.3629 3.23726 20.7627C2.63714 20.1626 2.3 19.3487 2.3 18.5V5.5C2.3 4.65131 2.63714 3.83737 3.23726 3.23726C3.83737 2.63714 4.65131 2.3 5.5 2.3H18.5ZM18.5 4.36667H5.5C5.19942 4.36667 4.91115 4.48607 4.69861 4.69861C4.48607 4.91115 4.36667 5.19942 4.36667 5.5V18.5C4.36667 18.8006 4.48607 19.0888 4.69861 19.3014C4.91115 19.5139 5.19942 19.6333 5.5 19.6333H18.5C18.8006 19.6333 19.0888 19.5139 19.3014 19.3014C19.5139 19.0888 19.6333 18.8006 19.6333 18.5V5.5C19.6333 5.19942 19.5139 4.91115 19.3014 4.69861C19.0888 4.48607 18.8006 4.36667 18.5 4.36667ZM7.66666 9.88333C7.91976 9.88337 8.16404 9.97629 8.35318 10.1445C8.54196 10.3123 8.6627 10.5435 8.69259 10.7944L8.7 10.9182V16.3333C8.69971 16.5967 8.59886 16.85 8.41806 17.0415C8.23726 17.233 7.99015 17.3483 7.72723 17.3637C7.4643 17.3791 7.20541 17.2936 7.00344 17.1245C6.80184 16.9558 6.67215 16.7166 6.64074 16.4556L6.63333 16.3318V10.9167C6.63333 10.6426 6.7422 10.3798 6.93599 10.186C7.12978 9.9922 7.39261 9.88333 7.66666 9.88333ZM7.66667 6.63333C7.94072 6.63333 8.20356 6.7422 8.39734 6.93599C8.59113 7.12978 8.7 7.39261 8.7 7.66667C8.7 7.94072 8.59113 8.20356 8.39734 8.39734C8.20356 8.59113 7.94072 8.7 7.66667 8.7C7.39261 8.7 7.12978 8.59113 6.93599 8.39734C6.7422 8.20356 6.63333 7.94072 6.63333 7.66667C6.63333 7.39261 6.7422 7.12978 6.93599 6.93599C7.12978 6.7422 7.39261 6.63333 7.66667 6.63333Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_138_115\">\n <rect width=\"24\" height=\"24\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </NavLink>\n <NavLink\n to=\"https://medium.com/@fourthstarmetaverse\"\n target=\"_blank\"\n className=\"text-white hover:text-[#FBBC5E] \"\n title=\"Medium\"\n data-testid=\"Medium\"\n >\n <svg\n className=\"hover:stroke-[#FBBC5E]\"\n width=\"17\"\n height=\"17\"\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_139_121)\">\n <path\n d=\"M15.6435 3.35222L17 2.05455V1.77051H12.3009L8.95192 10.1062L5.1425 1.77051H0.214625V2.05455L1.79917 3.9628C1.95429 4.10305 2.03504 4.30988 2.01379 4.51672V12.0123C2.12571 12.6314 1.69646 12.7504 0 14.92V15.2005H5.06175V14.9165C3.33837 12.7277 2.94312 12.6307 3.03025 12.013V5.52892L7.47292 15.204H7.98929L11.81 5.52892C11.81 14.133 11.8837 13.4077 11.6769 13.6145L10.3027 14.9441V15.2288H16.9695V14.9448C15.6414 13.589 15.4374 13.5898 15.4934 13.2689V3.73047C15.4686 3.58738 15.5274 3.43934 15.6435 3.35222Z\"\n fill=\"white\"\n />\n <path\n d=\"M5.14248 1.77051H0.2146V2.05455L1.79914 3.9628C1.95427 4.10305 2.03502 4.30988 2.01377 4.51672V8.49967H3.02952V5.52892L4.39377 8.49967H8.21806L5.14248 1.77051ZM17 1.77051H12.3009L9.59718 8.49967H10.6363L11.8093 5.52892V8.49967H15.4919V3.73047C15.4686 3.58667 15.5274 3.43934 15.6435 3.35222L17 2.05455V1.77051Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_139_121\">\n <rect width=\"17\" height=\"17\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </NavLink>\n </div>\n </div>\n </Grid>\n </Grid>\n );\n};\n\nexport default Index;\n","import React, { useState, useEffect } from \"react\";\nimport { hasCookie, setCookie } from \"cookies-next\";\nimport { NavLink, useLocation } from \"react-router-dom\";\n\nexport default function CookiesConsent() {\n const [showConsent, setShowConsent] = useState(true);\n const location = useLocation();\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n setShowConsent(hasCookie(\"localConsent\"));\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n handleResize();\n\n // Event listener for window resize\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n const acceptCookie = () => {\n setShowConsent(true);\n setCookie(\"localConsent\", \"true\", { path: \"/\", maxAge: 31536000 });\n };\n console.log(location);\n if (\n showConsent ||\n location.pathname === \"/cookie-policy\" ||\n location.pathname === \"/terms-condition\" ||\n location.pathname === \"/privacy-policy\"\n ) {\n return null;\n }\n return (\n <>\n {isMobile ? (\n <div className=\"fixed flex justify-center items-center z-[5000] mt-10\">\n <div className=\"relative bg-[#2c2c2c] max-w-[30%] max-[1200px]:max-w-[60%] max-[490px]:max-w-[90%] rounded-[8px] py-12 px-12\">\n <h1 className=\"font-heading font-normal text-[20px] leading-[25px] text-white\">\n <span style={{ display: \"inline-flex\", alignItems: \"center\" }}>\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_1739_17534)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M34.1929 19.2273C32.1246 19.2273 30.4484 17.5393 30.4484 15.4563C30.4484 14.7999 30.6149 14.1828 30.9079 13.6457C30.4561 13.7874 29.9854 13.8595 29.5118 13.8594C26.9271 13.8594 24.8318 11.7483 24.8318 9.14565C24.8318 9.0489 24.8403 8.9544 24.8459 8.8599C24.3364 9.04739 23.798 9.14392 23.2551 9.14509C20.671 9.14509 18.5751 7.03459 18.5751 4.43134C18.5751 3.89528 18.6691 3.38284 18.8339 2.90415C18.5507 2.96643 18.2616 2.99811 17.9716 2.99865C16.4393 2.99865 15.1056 2.13803 14.4222 0.871277C6.67657 2.5284 0.864258 9.45503 0.864258 17.7497C0.864258 27.2818 8.53676 35.0088 18.0008 35.0088C27.0076 35.0088 34.3859 28.0085 35.0789 19.1171C34.789 19.189 34.4916 19.226 34.1929 19.2273Z\"\n fill=\"#B4814A\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M18.8339 21.2079C18.8339 23.4382 17.0395 25.2456 14.8249 25.2456C12.6104 25.2456 10.8154 23.4382 10.8154 21.2079C10.8154 18.9776 12.6104 17.1697 14.8249 17.1697C17.0395 17.1697 18.8339 18.9776 18.8339 21.2079Z\"\n fill=\"#513A2B\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14.8252 18.0404C13.091 18.0404 11.6809 19.4613 11.6809 21.2073C11.6809 22.9533 13.091 24.3742 14.8252 24.3742C16.5594 24.3742 17.9696 22.9533 17.9696 21.2073C17.9696 19.4613 16.5594 18.0404 14.8252 18.0404ZM14.8252 26.1163C12.1382 26.1163 9.95117 23.9146 9.95117 21.2073C9.95117 18.5006 12.1382 16.299 14.8252 16.299C17.5123 16.299 19.6993 18.5006 19.6993 21.2073C19.6993 23.9146 17.5123 26.1163 14.8252 26.1163Z\"\n fill=\"#2E2E30\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0.865945 17.8211C1.3497 18.2098 1.95326 18.4522 2.61982 18.4522C4.1802 18.4522 5.44413 17.1781 5.44413 15.6071C5.44413 14.0355 4.1802 12.7625 2.62038 12.7625C2.24655 12.7621 1.87644 12.8367 1.53195 12.9819C1.089 14.5326 0.864281 16.1375 0.864258 17.7502C0.864258 17.7738 0.865945 17.7969 0.865945 17.8211ZM15.0966 8.55165C15.0966 9.77452 14.1123 10.7656 12.8984 10.7656C11.6839 10.7656 10.7001 9.77452 10.7001 8.55165C10.7001 7.32877 11.6845 6.33765 12.8984 6.33765C14.1123 6.33765 15.0966 7.32877 15.0966 8.55165Z\"\n fill=\"#513A2B\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12.8987 7.20843C12.544 7.21022 12.2044 7.35263 11.9545 7.60445C11.7046 7.85626 11.5647 8.19691 11.5656 8.55168C11.5649 8.90636 11.7048 9.24686 11.9547 9.49855C12.2046 9.75024 12.5441 9.89258 12.8987 9.89437C13.2534 9.89258 13.5929 9.75024 13.8428 9.49855C14.0927 9.24686 14.2326 8.90636 14.2319 8.55168C14.2328 8.19691 14.0929 7.85626 13.843 7.60445C13.5931 7.35263 13.2535 7.21022 12.8987 7.20843ZM12.8987 11.6364C11.2096 11.6364 9.83594 10.2527 9.83594 8.55168C9.83594 6.85012 11.2096 5.46637 12.8987 5.46637C14.5879 5.46637 15.9616 6.85012 15.9616 8.55168C15.9616 10.2527 14.5879 11.6364 12.8987 11.6364Z\"\n fill=\"#2E2E30\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M28.9741 23.5935C28.9741 24.8164 27.9903 25.8075 26.7764 25.8075C25.5619 25.8075 24.5781 24.8164 24.5781 23.5935C24.5781 22.3712 25.5625 21.3795 26.7764 21.3795C27.9903 21.3795 28.9746 22.3712 28.9746 23.5935\"\n fill=\"#513A2B\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M26.7763 22.2508C26.4216 22.2526 26.0821 22.3949 25.8322 22.6466C25.5823 22.8983 25.4424 23.2388 25.4431 23.5935C25.4422 23.9483 25.5821 24.2889 25.832 24.5407C26.0819 24.7925 26.4215 24.9349 26.7763 24.9367C27.131 24.9349 27.4706 24.7925 27.7205 24.5407C27.9704 24.2889 28.1103 23.9483 28.1094 23.5935C28.1101 23.2388 27.9702 22.8983 27.7203 22.6466C27.4704 22.3949 27.1309 22.2526 26.7763 22.2508ZM26.7763 26.6788C25.0871 26.6788 23.7129 25.295 23.7129 23.5935C23.7129 21.8925 25.0871 20.5087 26.7763 20.5087C28.4655 20.5087 29.8385 21.8925 29.8385 23.5935C29.8385 25.295 28.4655 26.6788 26.7763 26.6788Z\"\n fill=\"#2E2E30\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M18.0014 35.0088C18.4987 35.0088 18.9909 34.9835 19.478 34.9419C19.5056 34.7675 19.5247 34.5903 19.5247 34.4075C19.5247 32.5822 18.0549 31.1028 16.2425 31.1028C14.483 31.1028 13.0509 32.4984 12.9688 34.2512C14.5988 34.7546 16.2954 35.01 18.0014 35.0088Z\"\n fill=\"#513A2B\"\n />\n <path\n opacity=\"0.2\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M34.1935 19.2273C33.9831 19.2273 33.7783 19.206 33.5775 19.1722C30.7785 26.0763 24.0527 30.9442 16.1906 30.9442C10.7299 30.9442 5.81421 28.5952 2.38184 24.8478C5.07002 30.8385 11.05 35.0088 18.0013 35.0088C27.0081 35.0088 34.3864 28.0085 35.0794 19.1171C34.7895 19.189 34.4921 19.226 34.1935 19.2273Z\"\n fill=\"#010202\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M20.3636 33.9606C20.1414 31.8681 18.3791 30.2317 16.2422 30.2317C14.4107 30.2317 12.8543 31.4276 12.3098 33.1016C6.57113 30.936 2.3625 25.5967 1.79775 19.2152C2.06663 19.2787 2.34 19.3221 2.62069 19.3221C4.65469 19.3221 6.30956 17.6559 6.30956 15.6067C6.30956 13.6273 4.76438 12.0096 2.826 11.9016C4.69575 7.02411 8.81888 3.17605 14.0231 1.85811C14.4533 2.44905 15.0104 2.93604 15.6535 3.28327C16.2967 3.6305 17.0095 3.82913 17.7396 3.86455C17.7203 4.05276 17.7106 4.24181 17.7103 4.43099C17.7103 7.51068 20.1983 10.0166 23.256 10.0166C23.5136 10.0166 23.7707 9.99749 24.0261 9.96036C24.4254 12.6964 26.7992 14.7782 29.6409 14.7287C29.6021 14.9694 29.583 15.2124 29.583 15.4566C29.583 17.985 31.6018 20.0482 34.101 20.0977C33.0739 27.2634 27.3904 32.9104 20.3636 33.9606ZM18.0011 34.1377C17.6856 34.1377 17.3711 34.1265 17.0578 34.1085C16.9605 34.1029 16.8649 34.0933 16.7681 34.086C16.4404 34.0613 16.1134 34.0268 15.7877 33.9825C15.5762 33.9532 15.3664 33.9195 15.1566 33.8818C15.0548 33.8638 14.9524 33.8469 14.8511 33.8272C14.5942 33.776 14.3386 33.7186 14.0844 33.6551C14.0423 33.6444 13.9989 33.6366 13.9562 33.6253C14.1157 33.1449 14.4223 32.7269 14.8326 32.4305C15.2429 32.1341 15.736 31.9743 16.2422 31.9738C17.4791 31.9738 18.5018 32.9143 18.6424 34.1226C18.4286 34.1315 18.2154 34.1377 18.0011 34.1377ZM2.62013 13.6329C3.70013 13.6329 4.57988 14.5183 4.57988 15.6073C4.57988 16.6952 3.70069 17.5811 2.62013 17.5811C2.31518 17.5809 2.0149 17.5062 1.74544 17.3634C1.75331 17.0338 1.76063 16.7042 1.78763 16.3791C1.79044 16.3459 1.7955 16.3127 1.79888 16.2795C1.83431 15.8912 1.88385 15.5043 1.94738 15.1196L1.98563 14.8873C2.05875 14.4767 2.14425 14.0706 2.24775 13.6695C2.36981 13.6459 2.49413 13.6329 2.62013 13.6329ZM35.9398 19.1848C35.9623 18.9069 35.8498 18.6347 35.6383 18.4536C35.4285 18.2736 35.1433 18.2061 34.8739 18.2707C34.6511 18.3265 34.4224 18.3554 34.1927 18.3568C32.6042 18.3568 31.3127 17.0557 31.3127 15.4566C31.3127 14.9706 31.4342 14.4891 31.6654 14.0649C31.7485 13.9126 31.7844 13.7391 31.7687 13.5663C31.753 13.3936 31.6863 13.2294 31.5771 13.0946C31.4684 12.9604 31.322 12.8619 31.1567 12.8119C30.9914 12.762 30.8149 12.7629 30.6501 12.8145C30.2817 12.9302 29.8977 12.989 29.5116 12.9889C27.4078 12.9889 25.6961 11.2642 25.6961 9.1453C25.6961 9.09299 25.7001 9.04124 25.7034 8.99005L25.7085 8.91186C25.7174 8.76808 25.6905 8.62434 25.6302 8.49349C25.5699 8.36264 25.4782 8.24877 25.3631 8.16205C25.2486 8.07595 25.1144 8.0198 24.9726 7.99868C24.8309 7.97756 24.6861 7.99215 24.5514 8.04111C24.1365 8.19431 23.6978 8.27333 23.2554 8.27455C21.1517 8.27455 19.4389 6.55049 19.4389 4.43099C19.4389 4.01474 19.5103 3.5968 19.6509 3.18843C19.7008 3.04226 19.7112 2.88553 19.6812 2.73405C19.6512 2.58256 19.5818 2.44166 19.4799 2.32555C19.3783 2.21004 19.2476 2.12383 19.1014 2.07586C18.9552 2.02789 18.7989 2.01991 18.6486 2.05274C17.2344 2.36436 15.8451 1.68374 15.1824 0.455239C15.0942 0.290653 14.9549 0.159166 14.7855 0.0805514C14.6161 0.00193651 14.4257 -0.0195576 14.2431 0.0193012C7.695 1.41993 2.57569 6.4048 0.738 12.6531C0.726188 12.6823 0.710438 12.711 0.701438 12.7419C0.676688 12.8291 0.659813 12.918 0.636188 13.0052C0.557885 13.2903 0.486614 13.5772 0.422438 13.8658C0.397688 13.9822 0.376875 14.0981 0.353813 14.2146C0.298756 14.4882 0.25018 14.7632 0.208125 15.0392C0.195188 15.1281 0.18 15.2169 0.167625 15.3058C0.119813 15.6585 0.08325 16.0146 0.05625 16.3717C0.0495 16.4561 0.045 16.5405 0.039375 16.6249C0.01575 16.9978 0 17.3724 0 17.7499L0.0016875 17.8247V17.8269C0.036 25.9326 5.3775 32.8007 12.7013 35.0777C12.7058 35.0794 12.7097 35.0827 12.7142 35.0844C12.7671 35.1007 12.8211 35.1109 12.8734 35.1266C13.1918 35.2222 13.5146 35.3077 13.8392 35.3854C13.9416 35.4101 14.0434 35.4349 14.1452 35.4574C14.5271 35.5417 14.9124 35.6171 15.3017 35.6762C15.3388 35.6818 15.3748 35.6846 15.4119 35.6902C15.7703 35.7426 16.1319 35.7819 16.4964 35.8123C16.5988 35.8207 16.6989 35.8292 16.8013 35.8359C17.1979 35.8618 17.5978 35.8809 18.0006 35.8809C18.2576 35.8809 18.5181 35.8736 18.7847 35.8612C18.981 35.8528 19.1745 35.8376 19.3686 35.8224C19.4304 35.8179 19.4889 35.8162 19.5514 35.8101L19.5587 35.8084C28.1936 35.0467 35.2524 28.0211 35.9404 19.1859\"\n fill=\"#2E2E30\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1739_17534\">\n <rect width=\"36\" height=\"36\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n  \n {\"Cookies & Privacy\"}\n </span>\n </h1>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px]\">\n We use cookies to ensure you have the best browsing experience on\n our website. By using our site, you acknowledge that you have read\n and understood our{\" \"}\n <NavLink\n to=\"/cookie-policy\"\n className=\"text-[#FBBC5E] underline \"\n >\n Cookie Policy\n </NavLink>\n {\" & \"}\n <NavLink\n to=\"/privacy-policy\"\n className=\"text-[#FBBC5E] underline \"\n >\n Privacy Policy\n </NavLink>\n .\n </p>\n <div className=\"mt-8 flex items-center justify-center\">\n {/* <button className=\"w-[48%] btn-outline rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 border border-[#fbbc5e] hover:text-black\">\n Keep Subscription\n </button> */}\n <button\n id=\"acceptCookieButton\"\n className=\"w-[94%] btn-gradient rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 text-black\"\n onClick={acceptCookie}\n >\n Got It!\n </button>\n </div>\n </div>\n {/* <span className=\"text-dark text-base mr-16\">\n This website uses cookies to improve user experience. By using our\n website you consent to all the Terms of Usage in accordance with our\n </span>\n <button\n className=\"bg-custom_blue py-2 px-10 rounded text-white\"\n onClick={() => acceptCookie()}\n >\n Accept\n </button> */}\n {/* <ConfirmCancel\n open={showCo{() => console.log(\"closed\")}\n cancelBtnHandler={() => console.log(\"canceled\")}\n /> */}\n </div>\n ) : (\n <div className=\"fixed bottom-8 left-1/2 transform -translate-x-1/2 flex items-center justify-center px-4 py-4 z-[5000] w-[60%]\">\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-6 px-6\">\n <h1 className=\"font-heading font-normal text-[20px] leading-[10px] text-white\">\n <span style={{ display: \"inline-flex\", alignItems: \"center\" }}>\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_1739_17534)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M34.1929 19.2273C32.1246 19.2273 30.4484 17.5393 30.4484 15.4563C30.4484 14.7999 30.6149 14.1828 30.9079 13.6457C30.4561 13.7874 29.9854 13.8595 29.5118 13.8594C26.9271 13.8594 24.8318 11.7483 24.8318 9.14565C24.8318 9.0489 24.8403 8.9544 24.8459 8.8599C24.3364 9.04739 23.798 9.14392 23.2551 9.14509C20.671 9.14509 18.5751 7.03459 18.5751 4.43134C18.5751 3.89528 18.6691 3.38284 18.8339 2.90415C18.5507 2.96643 18.2616 2.99811 17.9716 2.99865C16.4393 2.99865 15.1056 2.13803 14.4222 0.871277C6.67657 2.5284 0.864258 9.45503 0.864258 17.7497C0.864258 27.2818 8.53676 35.0088 18.0008 35.0088C27.0076 35.0088 34.3859 28.0085 35.0789 19.1171C34.789 19.189 34.4916 19.226 34.1929 19.2273Z\"\n fill=\"#B4814A\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M18.8339 21.2079C18.8339 23.4382 17.0395 25.2456 14.8249 25.2456C12.6104 25.2456 10.8154 23.4382 10.8154 21.2079C10.8154 18.9776 12.6104 17.1697 14.8249 17.1697C17.0395 17.1697 18.8339 18.9776 18.8339 21.2079Z\"\n fill=\"#513A2B\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14.8252 18.0404C13.091 18.0404 11.6809 19.4613 11.6809 21.2073C11.6809 22.9533 13.091 24.3742 14.8252 24.3742C16.5594 24.3742 17.9696 22.9533 17.9696 21.2073C17.9696 19.4613 16.5594 18.0404 14.8252 18.0404ZM14.8252 26.1163C12.1382 26.1163 9.95117 23.9146 9.95117 21.2073C9.95117 18.5006 12.1382 16.299 14.8252 16.299C17.5123 16.299 19.6993 18.5006 19.6993 21.2073C19.6993 23.9146 17.5123 26.1163 14.8252 26.1163Z\"\n fill=\"#2E2E30\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0.865945 17.8211C1.3497 18.2098 1.95326 18.4522 2.61982 18.4522C4.1802 18.4522 5.44413 17.1781 5.44413 15.6071C5.44413 14.0355 4.1802 12.7625 2.62038 12.7625C2.24655 12.7621 1.87644 12.8367 1.53195 12.9819C1.089 14.5326 0.864281 16.1375 0.864258 17.7502C0.864258 17.7738 0.865945 17.7969 0.865945 17.8211ZM15.0966 8.55165C15.0966 9.77452 14.1123 10.7656 12.8984 10.7656C11.6839 10.7656 10.7001 9.77452 10.7001 8.55165C10.7001 7.32877 11.6845 6.33765 12.8984 6.33765C14.1123 6.33765 15.0966 7.32877 15.0966 8.55165Z\"\n fill=\"#513A2B\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12.8987 7.20843C12.544 7.21022 12.2044 7.35263 11.9545 7.60445C11.7046 7.85626 11.5647 8.19691 11.5656 8.55168C11.5649 8.90636 11.7048 9.24686 11.9547 9.49855C12.2046 9.75024 12.5441 9.89258 12.8987 9.89437C13.2534 9.89258 13.5929 9.75024 13.8428 9.49855C14.0927 9.24686 14.2326 8.90636 14.2319 8.55168C14.2328 8.19691 14.0929 7.85626 13.843 7.60445C13.5931 7.35263 13.2535 7.21022 12.8987 7.20843ZM12.8987 11.6364C11.2096 11.6364 9.83594 10.2527 9.83594 8.55168C9.83594 6.85012 11.2096 5.46637 12.8987 5.46637C14.5879 5.46637 15.9616 6.85012 15.9616 8.55168C15.9616 10.2527 14.5879 11.6364 12.8987 11.6364Z\"\n fill=\"#2E2E30\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M28.9741 23.5935C28.9741 24.8164 27.9903 25.8075 26.7764 25.8075C25.5619 25.8075 24.5781 24.8164 24.5781 23.5935C24.5781 22.3712 25.5625 21.3795 26.7764 21.3795C27.9903 21.3795 28.9746 22.3712 28.9746 23.5935\"\n fill=\"#513A2B\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M26.7763 22.2508C26.4216 22.2526 26.0821 22.3949 25.8322 22.6466C25.5823 22.8983 25.4424 23.2388 25.4431 23.5935C25.4422 23.9483 25.5821 24.2889 25.832 24.5407C26.0819 24.7925 26.4215 24.9349 26.7763 24.9367C27.131 24.9349 27.4706 24.7925 27.7205 24.5407C27.9704 24.2889 28.1103 23.9483 28.1094 23.5935C28.1101 23.2388 27.9702 22.8983 27.7203 22.6466C27.4704 22.3949 27.1309 22.2526 26.7763 22.2508ZM26.7763 26.6788C25.0871 26.6788 23.7129 25.295 23.7129 23.5935C23.7129 21.8925 25.0871 20.5087 26.7763 20.5087C28.4655 20.5087 29.8385 21.8925 29.8385 23.5935C29.8385 25.295 28.4655 26.6788 26.7763 26.6788Z\"\n fill=\"#2E2E30\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M18.0014 35.0088C18.4987 35.0088 18.9909 34.9835 19.478 34.9419C19.5056 34.7675 19.5247 34.5903 19.5247 34.4075C19.5247 32.5822 18.0549 31.1028 16.2425 31.1028C14.483 31.1028 13.0509 32.4984 12.9688 34.2512C14.5988 34.7546 16.2954 35.01 18.0014 35.0088Z\"\n fill=\"#513A2B\"\n />\n <path\n opacity=\"0.2\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M34.1935 19.2273C33.9831 19.2273 33.7783 19.206 33.5775 19.1722C30.7785 26.0763 24.0527 30.9442 16.1906 30.9442C10.7299 30.9442 5.81421 28.5952 2.38184 24.8478C5.07002 30.8385 11.05 35.0088 18.0013 35.0088C27.0081 35.0088 34.3864 28.0085 35.0794 19.1171C34.7895 19.189 34.4921 19.226 34.1935 19.2273Z\"\n fill=\"#010202\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M20.3636 33.9606C20.1414 31.8681 18.3791 30.2317 16.2422 30.2317C14.4107 30.2317 12.8543 31.4276 12.3098 33.1016C6.57113 30.936 2.3625 25.5967 1.79775 19.2152C2.06663 19.2787 2.34 19.3221 2.62069 19.3221C4.65469 19.3221 6.30956 17.6559 6.30956 15.6067C6.30956 13.6273 4.76438 12.0096 2.826 11.9016C4.69575 7.02411 8.81888 3.17605 14.0231 1.85811C14.4533 2.44905 15.0104 2.93604 15.6535 3.28327C16.2967 3.6305 17.0095 3.82913 17.7396 3.86455C17.7203 4.05276 17.7106 4.24181 17.7103 4.43099C17.7103 7.51068 20.1983 10.0166 23.256 10.0166C23.5136 10.0166 23.7707 9.99749 24.0261 9.96036C24.4254 12.6964 26.7992 14.7782 29.6409 14.7287C29.6021 14.9694 29.583 15.2124 29.583 15.4566C29.583 17.985 31.6018 20.0482 34.101 20.0977C33.0739 27.2634 27.3904 32.9104 20.3636 33.9606ZM18.0011 34.1377C17.6856 34.1377 17.3711 34.1265 17.0578 34.1085C16.9605 34.1029 16.8649 34.0933 16.7681 34.086C16.4404 34.0613 16.1134 34.0268 15.7877 33.9825C15.5762 33.9532 15.3664 33.9195 15.1566 33.8818C15.0548 33.8638 14.9524 33.8469 14.8511 33.8272C14.5942 33.776 14.3386 33.7186 14.0844 33.6551C14.0423 33.6444 13.9989 33.6366 13.9562 33.6253C14.1157 33.1449 14.4223 32.7269 14.8326 32.4305C15.2429 32.1341 15.736 31.9743 16.2422 31.9738C17.4791 31.9738 18.5018 32.9143 18.6424 34.1226C18.4286 34.1315 18.2154 34.1377 18.0011 34.1377ZM2.62013 13.6329C3.70013 13.6329 4.57988 14.5183 4.57988 15.6073C4.57988 16.6952 3.70069 17.5811 2.62013 17.5811C2.31518 17.5809 2.0149 17.5062 1.74544 17.3634C1.75331 17.0338 1.76063 16.7042 1.78763 16.3791C1.79044 16.3459 1.7955 16.3127 1.79888 16.2795C1.83431 15.8912 1.88385 15.5043 1.94738 15.1196L1.98563 14.8873C2.05875 14.4767 2.14425 14.0706 2.24775 13.6695C2.36981 13.6459 2.49413 13.6329 2.62013 13.6329ZM35.9398 19.1848C35.9623 18.9069 35.8498 18.6347 35.6383 18.4536C35.4285 18.2736 35.1433 18.2061 34.8739 18.2707C34.6511 18.3265 34.4224 18.3554 34.1927 18.3568C32.6042 18.3568 31.3127 17.0557 31.3127 15.4566C31.3127 14.9706 31.4342 14.4891 31.6654 14.0649C31.7485 13.9126 31.7844 13.7391 31.7687 13.5663C31.753 13.3936 31.6863 13.2294 31.5771 13.0946C31.4684 12.9604 31.322 12.8619 31.1567 12.8119C30.9914 12.762 30.8149 12.7629 30.6501 12.8145C30.2817 12.9302 29.8977 12.989 29.5116 12.9889C27.4078 12.9889 25.6961 11.2642 25.6961 9.1453C25.6961 9.09299 25.7001 9.04124 25.7034 8.99005L25.7085 8.91186C25.7174 8.76808 25.6905 8.62434 25.6302 8.49349C25.5699 8.36264 25.4782 8.24877 25.3631 8.16205C25.2486 8.07595 25.1144 8.0198 24.9726 7.99868C24.8309 7.97756 24.6861 7.99215 24.5514 8.04111C24.1365 8.19431 23.6978 8.27333 23.2554 8.27455C21.1517 8.27455 19.4389 6.55049 19.4389 4.43099C19.4389 4.01474 19.5103 3.5968 19.6509 3.18843C19.7008 3.04226 19.7112 2.88553 19.6812 2.73405C19.6512 2.58256 19.5818 2.44166 19.4799 2.32555C19.3783 2.21004 19.2476 2.12383 19.1014 2.07586C18.9552 2.02789 18.7989 2.01991 18.6486 2.05274C17.2344 2.36436 15.8451 1.68374 15.1824 0.455239C15.0942 0.290653 14.9549 0.159166 14.7855 0.0805514C14.6161 0.00193651 14.4257 -0.0195576 14.2431 0.0193012C7.695 1.41993 2.57569 6.4048 0.738 12.6531C0.726188 12.6823 0.710438 12.711 0.701438 12.7419C0.676688 12.8291 0.659813 12.918 0.636188 13.0052C0.557885 13.2903 0.486614 13.5772 0.422438 13.8658C0.397688 13.9822 0.376875 14.0981 0.353813 14.2146C0.298756 14.4882 0.25018 14.7632 0.208125 15.0392C0.195188 15.1281 0.18 15.2169 0.167625 15.3058C0.119813 15.6585 0.08325 16.0146 0.05625 16.3717C0.0495 16.4561 0.045 16.5405 0.039375 16.6249C0.01575 16.9978 0 17.3724 0 17.7499L0.0016875 17.8247V17.8269C0.036 25.9326 5.3775 32.8007 12.7013 35.0777C12.7058 35.0794 12.7097 35.0827 12.7142 35.0844C12.7671 35.1007 12.8211 35.1109 12.8734 35.1266C13.1918 35.2222 13.5146 35.3077 13.8392 35.3854C13.9416 35.4101 14.0434 35.4349 14.1452 35.4574C14.5271 35.5417 14.9124 35.6171 15.3017 35.6762C15.3388 35.6818 15.3748 35.6846 15.4119 35.6902C15.7703 35.7426 16.1319 35.7819 16.4964 35.8123C16.5988 35.8207 16.6989 35.8292 16.8013 35.8359C17.1979 35.8618 17.5978 35.8809 18.0006 35.8809C18.2576 35.8809 18.5181 35.8736 18.7847 35.8612C18.981 35.8528 19.1745 35.8376 19.3686 35.8224C19.4304 35.8179 19.4889 35.8162 19.5514 35.8101L19.5587 35.8084C28.1936 35.0467 35.2524 28.0211 35.9404 19.1859\"\n fill=\"#2E2E30\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1739_17534\">\n <rect width=\"36\" height=\"36\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n  \n {\"Cookies & Privacy\"}\n </span>\n </h1>\n <div className=\"grid grid-cols-10 gap-4 mt-4\">\n <div className=\"col-span-8\">\n <p className=\"font-body font-normal text-[16px] leading-[24px]\">\n We use cookies to ensure you have the best browsing experience\n on our website. By using our site, you acknowledge that you\n have read and understood our{\" \"}\n <NavLink\n to=\"/cookie-policy\"\n className=\"text-[#FBBC5E] underline \"\n >\n Cookie Policy\n </NavLink>\n {\" & \"}\n <NavLink\n to=\"/privacy-policy\"\n className=\"text-[#FBBC5E] underline \"\n >\n Privacy Policy\n </NavLink>\n .\n </p>\n </div>\n <div className=\"col-span-2 flex items-center justify-end\">\n {/* <button className=\"w-[48%] btn-outline rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 border border-[#fbbc5e] hover:text-black\">\n Keep Subscription\n </button> */}\n <button\n id=\"acceptCookieButton\"\n className=\"w-[94%] btn-gradient rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 text-black\"\n onClick={acceptCookie}\n >\n Got It!\n </button>\n </div>\n </div>\n </div>\n </div>\n )}\n </>\n );\n}\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate, useLocation, Outlet } from \"react-router-dom\";\nimport { Button, Grid, Typography } from \"@mui/material\";\n// import StorefrontIcon from '@mui/icons-material/Storefront';\nimport Header from \"components/header/Index\";\nimport Footer from \"components/footer/Index.jsx\";\n// import ImgTest from 'assets/images/test_bg.png';\nimport CookiesConsent from \"components/CookiesConsent\";\n\n/* The code defines a functional component called `Index` that takes in a prop called `children`. */\nconst Index = () => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n\n const [active, setActive] = useState(\"\");\n\n useEffect(() => {\n if (pathname) {\n let arr = pathname.split(\"/\");\n setActive(arr.includes(\"marketplace\") ? \"marketplace\" : \"\");\n }\n }, [pathname]);\n return (\n <>\n <Header />\n <Grid container item xs={12} className=\"h-full flex \">\n <Grid\n container\n item\n sm={12}\n md={12}\n lg={12}\n className=\"\"\n sx={{ width: \"100vw\", overflow: \"hidden\" }}\n >\n <Outlet />\n <CookiesConsent />\n </Grid>\n </Grid>\n <Footer />\n </>\n );\n};\n\nexport default Index;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport capitalize from '@mui/utils/capitalize';\nimport getDisplayName from '@mui/utils/getDisplayName';\nimport createTheme from './createTheme';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, _extends({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = _objectWithoutPropertiesLoose(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props(_extends({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style(_extends({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || isPlainObject(stylesArg)) {\n return props => processStyleArg(stylesArg, _extends({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, _extends({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, _extends({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"fixed\", \"maxWidth\", \"classes\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport capitalize from '@mui/utils/capitalize';\nimport useThemePropsSystem from '../useThemeProps';\nimport systemStyled from '../styled';\nimport createTheme from '../createTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n});\nconst useThemePropsDefault = inProps => useThemePropsSystem({\n props: inProps,\n name: 'MuiContainer',\n defaultTheme\n});\nconst useUtilityClasses = (ownerState, componentName) => {\n const getContainerUtilityClass = slot => {\n return generateUtilityClass(componentName, slot);\n };\n const {\n classes,\n fixed,\n disableGutters,\n maxWidth\n } = ownerState;\n const slots = {\n root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getContainerUtilityClass, classes);\n};\nexport default function createContainer(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiContainer'\n } = options;\n const ContainerRoot = createStyledComponent(({\n theme,\n ownerState\n }) => _extends({\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n display: 'block'\n }, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n }), ({\n theme,\n ownerState\n }) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpointValueKey) => {\n const breakpoint = breakpointValueKey;\n const value = theme.breakpoints.values[breakpoint];\n if (value !== 0) {\n // @ts-ignore\n acc[theme.breakpoints.up(breakpoint)] = {\n maxWidth: `${value}${theme.breakpoints.unit}`\n };\n }\n return acc;\n }, {}), ({\n theme,\n ownerState\n }) => _extends({}, ownerState.maxWidth === 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('xs')]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n }\n }, ownerState.maxWidth &&\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ownerState.maxWidth !== 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up(ownerState.maxWidth)]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`\n }\n }));\n const Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {\n const props = useThemeProps(inProps);\n const {\n className,\n component = 'div',\n disableGutters = false,\n fixed = false,\n maxWidth = 'lg'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n fixed,\n maxWidth\n });\n\n // @ts-ignore module augmentation fails if custom breakpoints are used\n const classes = useUtilityClasses(ownerState, componentName);\n return (\n /*#__PURE__*/\n // @ts-ignore theme is injected by the styled util\n _jsx(ContainerRoot, _extends({\n as: component\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other))\n );\n });\n process.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n component: PropTypes.elementType,\n disableGutters: PropTypes.bool,\n fixed: PropTypes.bool,\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Container;\n}","'use client';\n\nimport getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createContainer } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nconst Container = createContainer({\n createStyledComponent: styled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n }),\n useThemeProps: inProps => useDefaultProps({\n props: inProps,\n name: 'MuiContainer'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","/**\n * This file is part of FourthStar Auth Layout\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module AuthLayout\n *@developer Sudhanshu\n */\n\n// import React, { useEffect, useState } from 'react';\nimport { Outlet } from \"react-router-dom\";\nimport { Box, Grid, Container } from \"@mui/material\";\nimport logo from \"assets/images/logo.png\";\nimport { NavLink } from \"react-router-dom\";\n// import StorefrontIcon from '@mui/icons-material/Storefront';\nimport Footer from \"components/footer/Index.jsx\";\nimport { Toaster } from \"react-hot-toast\";\nimport HeroOnboarding from \"assets/images/hero-onboarding.png\";\n/* The code defines a functional component called `Index` that render children using outlet */\nconst Index = ({ onBoardingComplete = false }) => {\n return (\n <>\n <Toaster position=\"top-center\" />\n\n <div\n className={`relative overflow-hidden ${\n onBoardingComplete ? \"!bg-cover !bg-no-repeat\" : \"\"\n }`}\n style={{\n background:\n onBoardingComplete == true ? `url('${HeroOnboarding}')` : \"\",\n }}\n >\n {!onBoardingComplete && <Box className=\"leftShadow\"></Box>}\n {!onBoardingComplete && <Box className=\"rightShadow\"></Box>}\n <Grid container className=\"min-h-auth-m xl:min-h-auth relative\">\n <Container\n maxWidth=\"xl\"\n className=\"!flex flex-wrap items-center justify-center p-36 md:py-32\"\n >\n <NavLink to=\"/\">\n <img\n src={logo}\n className=\"cursor-pointer auth-logo absolute\"\n alt=\"Network problem\"\n />\n </NavLink>\n <Outlet />\n </Container>\n </Grid>\n <Footer />\n </div>\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar Before Login Layout\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module AuthLayout\n *@developer Amardeep Singh\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { Outlet } from \"react-router-dom\";\nimport { Box, Grid, Container } from \"@mui/material\";\nimport logo from \"assets/images/logo.png\";\nimport { NavLink } from \"react-router-dom\";\n// import StorefrontIcon from '@mui/icons-material/Storefront';\nimport Footer from \"components/footer/Index.jsx\";\nimport HeroOnboarding from \"assets/images/hero-onboarding.png\";\nimport LoginBackground from \"assets/images/login-background.png\";\n/* The code defines a functional component called `Index` that render children using outlet */\nconst Index = ({ onBoardingComplete = false }) => {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n handleResize();\n\n // Event listener for window resize\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return (\n <>\n {/* <Toaster position=\"top-center\" /> */}\n {isMobile && (\n <div\n className={`relative overflow-hidden ${\n onBoardingComplete ? \"!bg-cover !bg-no-repeat\" : \"\"\n }`}\n style={{\n background:\n onBoardingComplete == true ? `url('${HeroOnboarding}')` : \"\",\n }}\n >\n {!onBoardingComplete && <Box className=\"leftShadow\"></Box>}\n {!onBoardingComplete && <Box className=\"rightShadow\"></Box>}\n <Grid container className=\"min-h-auth-m xl:min-h-auth relative\">\n <Container\n maxWidth=\"xl\"\n className=\"!flex flex-wrap items-center justify-center p-36 md:py-32\"\n >\n <NavLink to=\"/\">\n <img\n src={logo}\n className=\"cursor-pointer auth-logo absolute\"\n alt=\"Network problem\"\n />\n </NavLink>\n <Outlet />\n </Container>\n </Grid>\n <Footer />\n </div>\n )}\n\n {!isMobile && (\n <div className=\"flex overflow-hidden h-full relative\">\n <Box className=\"rightShadow\"></Box>\n <div className={`relative w-[55%]`}>\n <img\n src={LoginBackground}\n alt=\"login background\"\n className=\"relative w-[100%] h-[100%] object-cover\"\n />\n <NavLink to=\"/\">\n <img\n src={logo}\n className=\"cursor-pointer auth-logo absolute\"\n alt=\"Network problem\"\n />\n </NavLink>\n <div className=\"top-0 left-0 flex flex-col flex-wrap mt-[400px] xl:mt-[500px] 2xl:mt-[550px] mx-[90px] absolute \">\n <h1 className=\"font-bold text-[32px] leading-9\">\n Step into the Future of Entertainment and Gaming!\n </h1>\n <p className=\"font-[500] mt-3\">\n Join us to unlock a new dimension of entertainment. Dive into a\n world where you can explore, create, and connect like never\n before.\n </p>\n </div>\n </div>\n <div className={`relative overflow-hidden w-[45%] min-h-[100vh]`}>\n <Grid container className=\"min-h-auth-m xl:min-h-auth relative\">\n <Container\n maxWidth=\"xl\"\n className=\"!flex flex-wrap items-center justify-center p-36 md:py-32\"\n >\n <Outlet />\n </Container>\n </Grid>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","'use client'\nimport React, { useState, useRef, useEffect, createContext, useMemo, useContext, useCallback } from 'react';\n\nfunction useLoadGsiScript(options = {}) {\r\n const { nonce, onScriptLoadSuccess, onScriptLoadError } = options;\r\n const [scriptLoadedSuccessfully, setScriptLoadedSuccessfully] = useState(false);\r\n const onScriptLoadSuccessRef = useRef(onScriptLoadSuccess);\r\n onScriptLoadSuccessRef.current = onScriptLoadSuccess;\r\n const onScriptLoadErrorRef = useRef(onScriptLoadError);\r\n onScriptLoadErrorRef.current = onScriptLoadError;\r\n useEffect(() => {\r\n const scriptTag = document.createElement('script');\r\n scriptTag.src = 'https://accounts.google.com/gsi/client';\r\n scriptTag.async = true;\r\n scriptTag.defer = true;\r\n scriptTag.nonce = nonce;\r\n scriptTag.onload = () => {\r\n var _a;\r\n setScriptLoadedSuccessfully(true);\r\n (_a = onScriptLoadSuccessRef.current) === null || _a === void 0 ? void 0 : _a.call(onScriptLoadSuccessRef);\r\n };\r\n scriptTag.onerror = () => {\r\n var _a;\r\n setScriptLoadedSuccessfully(false);\r\n (_a = onScriptLoadErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onScriptLoadErrorRef);\r\n };\r\n document.body.appendChild(scriptTag);\r\n return () => {\r\n document.body.removeChild(scriptTag);\r\n };\r\n }, [nonce]);\r\n return scriptLoadedSuccessfully;\r\n}\n\nconst GoogleOAuthContext = createContext(null);\r\nfunction GoogleOAuthProvider({ clientId, nonce, onScriptLoadSuccess, onScriptLoadError, children, }) {\r\n const scriptLoadedSuccessfully = useLoadGsiScript({\r\n nonce,\r\n onScriptLoadSuccess,\r\n onScriptLoadError,\r\n });\r\n const contextValue = useMemo(() => ({\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n }), [clientId, scriptLoadedSuccessfully]);\r\n return (React.createElement(GoogleOAuthContext.Provider, { value: contextValue }, children));\r\n}\r\nfunction useGoogleOAuth() {\r\n const context = useContext(GoogleOAuthContext);\r\n if (!context) {\r\n throw new Error('Google OAuth components must be used within GoogleOAuthProvider');\r\n }\r\n return context;\r\n}\n\nfunction extractClientId(credentialResponse) {\r\n var _a;\r\n const clientId = (_a = credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.clientId) !== null && _a !== void 0 ? _a : credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.client_id;\r\n return clientId;\r\n}\n\nconst containerHeightMap = { large: 40, medium: 32, small: 20 };\r\nfunction GoogleLogin({ onSuccess, onError, useOneTap, promptMomentNotification, type = 'standard', theme = 'outline', size = 'large', text, shape, logo_alignment, width, locale, click_listener, containerProps, ...props }) {\r\n const btnContainerRef = useRef(null);\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const promptMomentNotificationRef = useRef(promptMomentNotification);\r\n promptMomentNotificationRef.current = promptMomentNotification;\r\n useEffect(() => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.initialize({\r\n client_id: clientId,\r\n callback: (credentialResponse) => {\r\n var _a;\r\n if (!(credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.credential)) {\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef);\r\n }\r\n const { credential, select_by } = credentialResponse;\r\n onSuccessRef.current({\r\n credential,\r\n clientId: extractClientId(credentialResponse),\r\n select_by,\r\n });\r\n },\r\n ...props,\r\n });\r\n (_f = (_e = (_d = window === null || window === void 0 ? void 0 : window.google) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.renderButton(btnContainerRef.current, {\r\n type,\r\n theme,\r\n size,\r\n text,\r\n shape,\r\n logo_alignment,\r\n width,\r\n locale,\r\n click_listener,\r\n });\r\n if (useOneTap)\r\n (_j = (_h = (_g = window === null || window === void 0 ? void 0 : window.google) === null || _g === void 0 ? void 0 : _g.accounts) === null || _h === void 0 ? void 0 : _h.id) === null || _j === void 0 ? void 0 : _j.prompt(promptMomentNotificationRef.current);\r\n return () => {\r\n var _a, _b, _c;\r\n if (useOneTap)\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.cancel();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n useOneTap,\r\n type,\r\n theme,\r\n size,\r\n text,\r\n shape,\r\n logo_alignment,\r\n width,\r\n locale,\r\n ]);\r\n return (React.createElement(\"div\", { ...containerProps, ref: btnContainerRef, style: { height: containerHeightMap[size], ...containerProps === null || containerProps === void 0 ? void 0 : containerProps.style } }));\r\n}\n\nfunction googleLogout() {\r\n var _a, _b, _c;\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.disableAutoSelect();\r\n}\n\n/* eslint-disable import/export */\r\nfunction useGoogleLogin({ flow = 'implicit', scope = '', onSuccess, onError, onNonOAuthError, overrideScope, state, ...props }) {\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const clientRef = useRef();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const onNonOAuthErrorRef = useRef(onNonOAuthError);\r\n onNonOAuthErrorRef.current = onNonOAuthError;\r\n useEffect(() => {\r\n var _a, _b;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n const clientMethod = flow === 'implicit' ? 'initTokenClient' : 'initCodeClient';\r\n const client = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.oauth2[clientMethod]({\r\n client_id: clientId,\r\n scope: overrideScope ? scope : `openid profile email ${scope}`,\r\n callback: (response) => {\r\n var _a, _b;\r\n if (response.error)\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef, response);\r\n (_b = onSuccessRef.current) === null || _b === void 0 ? void 0 : _b.call(onSuccessRef, response);\r\n },\r\n error_callback: (nonOAuthError) => {\r\n var _a;\r\n (_a = onNonOAuthErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onNonOAuthErrorRef, nonOAuthError);\r\n },\r\n state,\r\n ...props,\r\n });\r\n clientRef.current = client;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [clientId, scriptLoadedSuccessfully, flow, scope, state]);\r\n const loginImplicitFlow = useCallback((overrideConfig) => { var _a; return (_a = clientRef.current) === null || _a === void 0 ? void 0 : _a.requestAccessToken(overrideConfig); }, []);\r\n const loginAuthCodeFlow = useCallback(() => { var _a; return (_a = clientRef.current) === null || _a === void 0 ? void 0 : _a.requestCode(); }, []);\r\n return flow === 'implicit' ? loginImplicitFlow : loginAuthCodeFlow;\r\n}\n\nfunction useGoogleOneTapLogin({ onSuccess, onError, promptMomentNotification, cancel_on_tap_outside, prompt_parent_id, state_cookie_domain, hosted_domain, use_fedcm_for_prompt = false, disabled, auto_select, }) {\r\n const { clientId, scriptLoadedSuccessfully } = useGoogleOAuth();\r\n const onSuccessRef = useRef(onSuccess);\r\n onSuccessRef.current = onSuccess;\r\n const onErrorRef = useRef(onError);\r\n onErrorRef.current = onError;\r\n const promptMomentNotificationRef = useRef(promptMomentNotification);\r\n promptMomentNotificationRef.current = promptMomentNotification;\r\n useEffect(() => {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n if (!scriptLoadedSuccessfully)\r\n return;\r\n if (disabled) {\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.cancel();\r\n return;\r\n }\r\n (_f = (_e = (_d = window === null || window === void 0 ? void 0 : window.google) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e.id) === null || _f === void 0 ? void 0 : _f.initialize({\r\n client_id: clientId,\r\n callback: (credentialResponse) => {\r\n var _a;\r\n if (!(credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.credential)) {\r\n return (_a = onErrorRef.current) === null || _a === void 0 ? void 0 : _a.call(onErrorRef);\r\n }\r\n const { credential, select_by } = credentialResponse;\r\n onSuccessRef.current({\r\n credential,\r\n clientId: extractClientId(credentialResponse),\r\n select_by,\r\n });\r\n },\r\n hosted_domain,\r\n cancel_on_tap_outside,\r\n prompt_parent_id,\r\n state_cookie_domain,\r\n use_fedcm_for_prompt,\r\n auto_select,\r\n });\r\n (_j = (_h = (_g = window === null || window === void 0 ? void 0 : window.google) === null || _g === void 0 ? void 0 : _g.accounts) === null || _h === void 0 ? void 0 : _h.id) === null || _j === void 0 ? void 0 : _j.prompt(promptMomentNotificationRef.current);\r\n return () => {\r\n var _a, _b, _c;\r\n (_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.id) === null || _c === void 0 ? void 0 : _c.cancel();\r\n };\r\n }, [\r\n clientId,\r\n scriptLoadedSuccessfully,\r\n cancel_on_tap_outside,\r\n prompt_parent_id,\r\n state_cookie_domain,\r\n hosted_domain,\r\n use_fedcm_for_prompt,\r\n disabled,\r\n auto_select,\r\n ]);\r\n}\n\n/**\r\n * Checks if the user granted all the specified scope or scopes\r\n * @returns True if all the scopes are granted\r\n */\r\nfunction hasGrantedAllScopesGoogle(tokenResponse, firstScope, ...restScopes) {\r\n var _a, _b, _c;\r\n if (!(window === null || window === void 0 ? void 0 : window.google))\r\n return false;\r\n return (((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.oauth2) === null || _c === void 0 ? void 0 : _c.hasGrantedAllScopes(tokenResponse, firstScope, ...restScopes)) || false);\r\n}\n\n/**\r\n * Checks if the user granted any of the specified scope or scopes.\r\n * @returns True if any of the scopes are granted\r\n */\r\nfunction hasGrantedAnyScopeGoogle(tokenResponse, firstScope, ...restScopes) {\r\n var _a, _b, _c;\r\n if (!(window === null || window === void 0 ? void 0 : window.google))\r\n return false;\r\n return (((_c = (_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.accounts) === null || _b === void 0 ? void 0 : _b.oauth2) === null || _c === void 0 ? void 0 : _c.hasGrantedAnyScope(tokenResponse, firstScope, ...restScopes)) || false);\r\n}\n\nexport { GoogleLogin, GoogleOAuthProvider, googleLogout, hasGrantedAllScopesGoogle, hasGrantedAnyScopeGoogle, useGoogleLogin, useGoogleOAuth, useGoogleOneTapLogin };\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module SingIn\n *@developer Sudhanshu <sudhanshut@instaacoders.com>\n */\nimport { Box } from \"@mui/material\";\nimport { useState, useEffect } from \"react\";\nimport GoogleLogin from \"components/buttons/Google\";\nimport { NavLink, useNavigate, useSearchParams } from \"react-router-dom\";\nimport { isValidEmail, togglePasswordVisibility } from \"utils/index\";\nimport eyeOff from \"assets/images/eye-off.svg\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { userLogin, googleSigin } from \"store/slicer/userAuth/authActions\";\nimport { clearMsgState } from \"store/slicer/userAuth\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport { useGoogleLogin } from \"@react-oauth/google\";\nimport ReactGA from \"react-ga4\";\nimport { useWebSocket } from \"../../../services/socket/index\";\n\n/* This code is a React component for user sign-in with the option to switch between \"User\" and \"Creator\" accounts. It performs real-time validation for email, and password, including password strength checks. Users can toggle the visibility of the password, and the form is enabled for submission when all requirements are met.\n */\n\nconst SignIn = () => {\n let [searchParams, setSearchParams] = useSearchParams();\n const [signInType, setSignInType] = useState(\"user\");\n const [formData, setFormData] = useState({\n email: \"\",\n password: \"\",\n });\n const [formErrors, setFormErrors] = useState({\n email: \"\",\n password: \"\",\n });\n const GOOGLE_ANALYTICS_MEASUREMENT_ID =\n process.env.REACT_APP_GOOGLE_ANALYTICS_MEASUREMENT_ID;\n const isRequired = (value) => (value === \"\" ? false : true);\n // api\n const { loading, userInfo, userToken, error, success, successMsg } =\n useSelector((state) => state.auth);\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const UID = \"userID\" + JSON.parse(localStorage.getItem(\"userInfo\"))?.id;\n const UMail =\n \"userMail\" + JSON.parse(localStorage.getItem(\"userInfo\"))?.email;\n\n ReactGA.initialize(GOOGLE_ANALYTICS_MEASUREMENT_ID, {\n gaOptions: {\n userId: UID,\n },\n });\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n console.log(\"success\", alertMessage);\n\n const { setToken } = useWebSocket(); // Get the setToken function from context\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n handleResize();\n\n // Event listener for window resize\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n dispatch(clearMsgState());\n };\n\n // Function to toggle between user and creator sign-up\n const toggleSignInType = () => {\n setSignInType((prevSignInType) =>\n prevSignInType === \"user\" ? \"creator\" : \"user\"\n );\n window.scrollTo({\n top: 0,\n behavior: \"smooth\",\n });\n };\n // Function to validate the form data\n const validateForm = () => {\n let isValid =\n checkEmail(formData.email) && checkPassword(formData.password);\n return isValid;\n };\n\n // Function to handle input changes\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setFormData({\n ...formData,\n [name]: value.trim(),\n });\n // if (name === \"email\") {\n // if (!value.trim() && !value.trim().includes('@')) {\n // checkEmail(value);\n // }\n // if (value.trim() && value.trim().includes('@')) {\n // checkEmail(value);\n // } else {\n // setFormErrors({\n // ...formErrors,\n // email: ''\n // });\n // }\n // }\n // if (name === \"password\") {\n // checkPassword(value);\n // }\n };\n // Function to check if the form is valid\n const isFormValid = () => {\n return isValidEmail(formData.email) && formData.password;\n };\n\n // Function to handle form submission\n const handleSubmit = (e) => {\n e.preventDefault();\n if (validateForm()) {\n formData.email = formData.email.toLowerCase();\n dispatch(userLogin(formData));\n }\n };\n\n // checkEmail\n const checkEmail = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n email: \"Email is required\",\n });\n } else if (!isValidEmail(fieldInput)) {\n setFormErrors({\n ...formErrors,\n email: \"Invalid Email Address\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n email: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n // checkPassword\n const checkPassword = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n password: \"Password is required\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n password: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n useEffect(() => {\n // removing it here to fix verify user and forgot password flow\n localStorage.removeItem(\"isForgot\");\n }, []);\n\n // to check if session is expired and reload the page\n useEffect(() => {\n if (sessionStorage.getItem(\"sessionExpired\")) {\n sessionStorage.removeItem(\"sessionExpired\");\n window.location.reload();\n }\n }, []);\n\n useEffect(() => {\n if (error) {\n setAlertMessage(error);\n setSuccessAlert(false);\n }\n if (userInfo && userToken) {\n // Google Analytics Sending login event\n // Set the userId for future hits\n ReactGA.set({ UID });\n // ReactGA.set({\n // dimension1: \"UMail\",\n // });\n // Track the login event\n ReactGA.event({\n category: \"User\",\n action: \"Login\",\n label: UID,\n });\n\n // Set the token in WebSocket context\n setToken(userToken);\n // ReactGA.event({\n // category: \"User\",\n // action: \"Login\",\n // label: UID,\n // dimension1: \"UMail\", // Include the user name in the custom dimension\n // });\n // account not verified\n if (!userInfo?.isVerified) {\n return navigate(\"/otp-verification\");\n }\n // onboarding not started, send to first onboarding page\n else if (userInfo?.statusFlag == 0) {\n return navigate(\"/add-details\");\n }\n // 1st step of onboarding completed, send to next page\n else if (userInfo?.statusFlag == 1) {\n return navigate(\"/select-preferences\");\n }\n // 2nd step of onboarding completed, send to next page\n else if (userInfo?.statusFlag == 2) {\n return navigate(\"/add-tags\");\n }\n // redirect user to the page being visited after signing in\n else if (userInfo?.statusFlag == 3 && searchParams.get(\"ref\")) {\n return navigate(searchParams.get(\"ref\"), {\n replace: true,\n });\n }\n // onboarding is completed\n else if (userInfo?.statusFlag == 3) {\n return navigate(\"/\");\n }\n // if(!userInfo?.dob){\n // navigate('/add-details');\n // } else{\n // navigate('/me');\n // }\n }\n // redirect user to otp verification if registration was successful\n // if (success && successMsg) {\n // setTimeout(() => {\n // dispatch(clearMsgState());\n // let e = JSON.parse(localStorage.getItem(\"userInfo\"));\n // if(!e?.dob){\n // navigate('/add-details');\n // } else{\n // navigate('/me');\n // }\n\n // setFormData({\n // email: \"\",\n // password: \"\",\n // })\n // }, 2000)\n\n // };\n }, [navigate, userInfo, userToken, error, success, successMsg]);\n\n // Google Sigin Setup and hooks\n const [googleUserData, setGoogleUserData] = useState([]);\n\n const GoogleLoginUser = useGoogleLogin({\n onSuccess: (response) => {\n console.log(response?.access_token);\n let googletoken = {\n access_token: response?.access_token,\n };\n // setGoogleUserData(response);\n dispatch(googleSigin(googletoken));\n },\n onError: (error) => console.log(\"Login Failed: \", error),\n });\n\n return (\n <>\n <Box\n className={`w-full max-w-[700px] rounded-lg p-5 md:p-[32px] lg:p-[58px] ${\n isMobile ? \"border border-[#363636] signin-form\" : \"\"\n } `}\n >\n <Box className=\"text-white max-w-[500px] mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[36px]\">\n User Sign In\n </h1>\n <form className=\"auth-form mb-5\" onSubmit={handleSubmit}>\n <div className=\"mb-4\">\n <label\n htmlFor=\"email\"\n className=\"font-medium text-white/[.80] text-sm\"\n >\n Email\n </label>\n <div className=\"mt-2\">\n <input\n type=\"email\"\n name=\"email\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none autofill:bg-transparent ${\n formErrors.email ? \"!border-error\" : \"\"\n }`}\n id=\"email\"\n value={formData.email}\n onChange={handleInputChange}\n onBlur={(e) => checkEmail(e.target.value)}\n />\n {formErrors.email && (\n <span className=\"text-error text-sm\">{formErrors.email}</span>\n )}\n </div>\n </div>\n <div className=\"mb-2\">\n <label\n htmlFor=\"password\"\n className=\"font-medium text-white/[.80] text-sm\"\n >\n Password\n </label>\n <div className=\"mt-2 flex relative\">\n <input\n type=\"password\"\n name=\"password\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] autofill:bg-transparent ${\n formErrors.password ? \"!border-error\" : \"\"\n }`}\n id=\"password\"\n value={formData.password}\n onChange={handleInputChange}\n onBlur={(e) => checkPassword(e.target.value)}\n />\n <span\n data-testid=\"PasswordVisibility\"\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer text-white\"\n onClick={(e) => togglePasswordVisibility(e)}\n >\n <img src={eyeOff} alt=\"PasswordVisibility\" />\n </span>\n </div>\n {formErrors.password && (\n <span className=\"text-error text-sm\">\n {formErrors.password}\n </span>\n )}\n </div>\n <div className=\"mb-6\">\n <NavLink\n to=\"/forgot-password\"\n className=\"text-sec hover:text-secDark font-semibold text-sm\"\n >\n Forgot Password?\n </NavLink>\n </div>\n <button\n type=\"submit\"\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 flex justify-center\"\n disabled={!isFormValid() || loading}\n >\n {loading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Sign In\"\n )}\n </button>\n </form>\n\n <div className=\"divider flex gap-x-2 mb-5\">\n <span className=\"text-sm font-medium\">Or</span>\n </div>\n\n <GoogleLogin\n type=\"button\"\n onClick={GoogleLoginUser}\n text=\"Continue with Google\"\n className=\"mb-6\"\n />\n\n <p className=\"mb-5 text-sm text-center\">\n Don't have an account?{\" \"}\n <NavLink\n to=\"/signup\"\n className=\"text-sec hover:text-secDark font-medium\"\n >\n Create account\n </NavLink>\n </p>\n\n <p className=\"text-center text-sm text-sec hover:text-secDark font-bold\">\n <button onClick={toggleSignInType}>\n {signInType === \"creator\" ? (\n \"Sign In as User\"\n ) : (\n <NavLink\n to={`${process.env.REACT_APP_CREATOR_WEB_URL}/auth/login`}\n >\n Sign in as Creator\n </NavLink>\n )}\n </button>\n </p>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default SignIn;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module OtpVerification\n *@developer Sudhanshu <<sudhanshut@instaacoders.com>>\n */\n\nimport { Box } from \"@mui/material\";\nimport { useState, useEffect } from \"react\";\nimport { useNavigate, NavLink } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { forgotPassword } from \"store/slicer/userAuth/authActions\";\nimport { clearMsgState } from \"store/slicer/userAuth\";\nimport { isValidEmail } from \"utils\";\nimport Alert from \"components/popup/Alert/Alert\";\n\n/* This code is a React component for getting OTP is you forgot account passwords.\n */\nconst ForgotPassword = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n navigate(\"/\");\n };\n\n const [formData, setFormData] = useState({\n email: \"\",\n });\n const [formErrors, setFormErrors] = useState({\n email: \"\",\n });\n\n // Function to validate the form data\n const validateForm = () => {\n let isValid = checkEmail(formData.email);\n return isValid;\n };\n\n const { loading, userInfo, userToken, error, success, successMsg } =\n useSelector((state) => state.auth);\n\n // Function to handle input changes\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setFormData({\n ...formData,\n [name]: value,\n });\n };\n const isFormValid = () => {\n return isValidEmail(formData.email);\n };\n // Function to handle form submission\n const handleSubmit = (e) => {\n e.preventDefault();\n if (validateForm()) {\n formData.email = formData.email.toLowerCase();\n dispatch(forgotPassword(formData));\n }\n };\n\n const isRequired = (value) => (value === \"\" ? false : true);\n // checkEmail\n const checkEmail = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n email: \"Email is required\",\n });\n } else if (!isValidEmail(fieldInput)) {\n setFormErrors({\n ...formErrors,\n email: \"Invalid Email Address\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n email: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n useEffect(() => {\n if (error) {\n setAlertMessage(error);\n setSuccessAlert(false);\n }\n if (userInfo && userToken && userInfo?.isVerified) {\n navigate(\"/\");\n }\n // redirect user to otp verification if registration was successful\n if (success && successMsg) {\n setAlertMessage(\n \"Open the email and click the reset link to create a strong new password for your account.\"\n );\n setAlertHeading(\"We've sent a password reset link to your email address\");\n setSuccessAlert(true);\n setTimeout(() => {\n dispatch(clearMsgState());\n // navigate('/otp-verification');\n\n setFormData({\n email: \"\",\n });\n }, 5000);\n //\n }\n }, [navigate, userInfo, userToken, error, success, successMsg]);\n\n return (\n <>\n <Box className=\"w-full max-w-[700px] rounded-lg border border-[#363636] p-5 md:p-[32px] lg:p-[58px] signin-form\">\n <Box className=\"text-white max-w-[500px] mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[28px]\">\n Enter Email\n </h1>\n <p className=\"text-center mb-[40px]\">\n Enter email address to receive Password Reset Link.{\" \"}\n </p>\n <form className=\"auth-form mb-5\" onSubmit={handleSubmit}>\n <div className=\"mb-4\">\n {/* <label htmlFor=\"password\" className=\"font-medium text-white/[.80] text-sm\">Email Address</label> */}\n <div className=\"mt-2\">\n <input\n type=\"email\"\n name=\"email\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none autofill:bg-transparent ${\n formErrors.email ? \"!border-error\" : \"\"\n }`}\n id=\"email\"\n placeholder=\"user@email.com\"\n value={formData.email}\n onChange={handleInputChange}\n onBlur={(e) => checkEmail(e.target.value)}\n />\n {formErrors.email && (\n <span className=\"text-error text-sm\">{formErrors.email}</span>\n )}\n </div>\n </div>\n\n <button\n type=\"submit\"\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 mt-6 flex justify-center\"\n disabled={!isFormValid() || loading}\n >\n {loading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Sending Link...\n </>\n ) : (\n \"Send Link\"\n )}\n </button>\n </form>\n <div className=\"text-center\">\n <NavLink\n to={\"/signin\"}\n className=\"font-semibold text-sec hover:text-secDark w-full mt-[14px]\"\n >\n Back to login\n </NavLink>\n </div>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n canClose={false}\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n buttonText={\"Got It!\"}\n />\n )}\n </>\n );\n};\n\nexport default ForgotPassword;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module OtpVerification\n *@developer Sudhanshu <<sudhanshut@instaacoders.com>>\n */\n\nimport { Box } from \"@mui/material\";\nimport { useState, useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { verifyUser } from \"store/slicer/userAuth/authActions\";\nimport webRequestHandler from \"constant/api/apiInstance\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\nimport { clearMsgState } from \"store/slicer/userAuth\";\nimport Alert from \"components/popup/Alert/Alert\";\n\n/* This code is a React component for getting OTP is you forgot account passwords.\n */\nconst OtpVerification = () => {\n const instance = webRequestHandler(BASE_URL);\n const [formData, setFormData] = useState({\n otp: \"\",\n email: localStorage.getItem(\"email\") || localStorage.getItem(\"isForgot\"),\n });\n const [formErrors, setFormErrors] = useState({\n otp: \"\",\n email: \"\",\n });\n const [isOTPexist, setIsOTPexist] = useState(true);\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n // Function to validate the form data\n const validateForm = () => {\n const errors = {};\n let isValid = true;\n\n if (!formData.otp) {\n errors.otp = \"Please enter OTP\";\n isValid = false;\n } else {\n isValid = true;\n setIsOTPexist(isValid);\n }\n\n setIsOTPexist(isValid);\n setFormErrors(errors);\n return isValid;\n };\n\n // Function to handle input changes\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setFormData({\n ...formData,\n [name]: value,\n });\n\n // Clear the error and remove the red border when the user starts typing\n if (name === \"otp\") {\n setFormErrors({ ...formErrors, otp: \"\" });\n }\n };\n const dispatch = useDispatch();\n const { loading, userInfo, userToken, error, success, successMsg } =\n useSelector((state) => state.auth);\n const navigate = useNavigate();\n\n // Function to handle form submission\n const handleSubmit = (e) => {\n e.preventDefault();\n if (validateForm()) {\n dispatch(verifyUser(formData));\n }\n };\n useEffect(() => {\n if (\n !localStorage.getItem(\"isForgot\") &&\n !localStorage.getItem(\"email\") &&\n userInfo?.isVerified\n ) {\n navigate(\"/signin\");\n }\n }, []);\n useEffect(() => {\n if (error) {\n setAlertMessage(error);\n setSuccessAlert(false);\n }\n if (\n userInfo &&\n userToken &&\n userInfo?.isVerified &&\n userInfo.statusFlag == 3\n ) {\n return navigate(\"/\");\n }\n // redirect user to otp verification if registration was successful\n else if (success && successMsg && userInfo?.isVerified) {\n setAlertMessage(successMsg);\n setAlertHeading(\"OTP Verified!\");\n setSuccessAlert(true);\n // old code\n\n // setTimeout(() => {\n // dispatch(clearMsgState());\n // if (localStorage.getItem(\"isForgot\")) {\n // navigate('/reset-password');\n // } else {\n // navigate('/add-details');\n // }\n\n // setFormData({\n // otp: \"\",\n // email: \"\"\n // })\n // }, 2000)\n\n // testing pending for below code\n dispatch(clearMsgState());\n if (localStorage.getItem(\"isForgot\")) {\n navigate(\"/reset-password\");\n } // onboarding not started, send to first onboarding page\n else if (userInfo?.statusFlag == 0) {\n return navigate(\"/add-details\");\n }\n // 1st step of onboarding completed, send to next page\n else if (userInfo?.statusFlag == 1) {\n return navigate(\"/select-preferences\");\n }\n // 2nd step of onboarding completed, send to next page\n else if (userInfo?.statusFlag == 2) {\n return navigate(\"/add-tags\");\n }\n // onboarding is completed\n else if (userInfo?.statusFlag == 3) {\n return navigate(\"/\");\n }\n }\n }, [navigate, userInfo, userToken, error, success, successMsg]);\n\n const sendCodeAgain = async () => {\n try {\n const payload = {\n email: formData.email,\n };\n const data = await instance.post(EndpointsSlug.RESEND_OTP, payload);\n console.log(\"data\", data);\n\n if (data?.response?.statusEnum === 1) {\n setAlertMessage(data?.response?.message);\n setAlertHeading(\"Verification Code Resent!\");\n setSuccessAlert(true);\n } else {\n setAlertMessage(data?.response?.message);\n setSuccessAlert(false);\n }\n } catch (error) {\n setAlertMessage(\"Something went wrong\");\n setSuccessAlert(false);\n }\n };\n\n return (\n <>\n <Box className=\"w-full max-w-[700px] rounded-lg border border-[#363636] p-5 md:p-[32px] lg:p-[58px] signin-form\">\n <Box className=\"text-white max-w-[500px] mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[28px]\">\n OTP Verification\n </h1>\n <p className=\"text-center text-[#C4C4C4] mb-[50px]\">\n Please Enter the verification code we sent to your Email <br />\n <b>{formData.email}</b>\n </p>\n <form className=\"auth-form mb-5\" onSubmit={handleSubmit}>\n <div className=\"mb-4\">\n <div className=\"mt-2\">\n <input\n type=\"text\"\n name=\"otp\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] autofill:bg-transparent ${\n !isOTPexist ? \"!border-error\" : \"\"\n } font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] placeholder-normal`}\n id=\"otp\"\n placeholder=\"Enter Verification Code\"\n value={formData.otp}\n onChange={handleInputChange}\n />\n {formErrors.otp && (\n <span className=\"text-error text-sm\">{formErrors.otp}</span>\n )}\n </div>\n </div>\n\n <button\n type=\"submit\"\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 mt-6 flex justify-center\"\n disabled={loading}\n >\n {loading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Verify\"\n )}\n </button>\n </form>\n <button\n type=\"button\"\n className=\"text-center font-semibold text-sec hover:text-secDark w-full mt-[14px]\"\n onClick={sendCodeAgain}\n >\n Resend Code\n </button>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default OtpVerification;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module ConfirmPassword\n *@developer Sudhanshu <<sudhanshut@instaacoders.com>>\n */\n\nimport { useRef, useState } from \"react\";\nimport { Box } from \"@mui/material\";\nimport { isStrongPassword, togglePasswordVisibility } from \"utils/index\";\nimport eyeOff from \"assets/images/eye-off.svg\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n resetPassword,\n verifyForgetPasswordLink,\n} from \"store/slicer/userAuth/authActions\";\nimport { clearMsgState } from \"store/slicer/userAuth\";\nimport { useEffect } from \"react\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport { isContainsSpecialChars, isContainsNumber } from \"utils\";\n\n/* This code is a React component for setting reset password with confirm functionality .\n */\nconst ConfirmPassword = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const {\n loading,\n userInfo,\n userToken,\n error,\n success,\n successMsg,\n pwdTokenVerified,\n pwdResetComplete,\n } = useSelector((state) => state.auth);\n const [formData, setFormData] = useState({\n password: \"\",\n confirmPassword: \"\",\n });\n const [formErrors, setFormErrors] = useState({\n password: \"\",\n confirmPassword: \"\",\n });\n const [isPasswordValid, setIsPasswordValid] = useState(true);\n const [isConfirmPasswordValid, setIsConfirmPasswordValid] = useState(true);\n const [passwordMatchError, setPasswordMatchError] = useState(\"\");\n const [searchParams, setSearchParams] = useSearchParams();\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n const isContainsUpperCase = (value) => {\n return /[A-Z]/.test(value);\n };\n\n const isContainsLowerCase = (value) => {\n return /[a-z]/.test(value);\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setFormData({\n ...formData,\n [name]: value,\n });\n\n if (name === \"password\") {\n const isValid = isStrongPassword(value);\n let message = \"Password is not strong enough\";\n\n if (!isContainsNumber(value)) {\n message = \"Password must contain a number\";\n }\n if (!isContainsSpecialChars(value)) {\n message = \"Password must contain a special character\";\n }\n if (!isContainsUpperCase(value)) {\n message = \"Password must contain an uppercase letter\";\n }\n if (!isContainsLowerCase(value)) {\n message = \"Password must contain a lowercase letter\";\n }\n\n if (!value.trim()) {\n message = \"Please enter a password\";\n }\n\n setIsPasswordValid(isValid);\n if (!isValid) {\n setFormErrors({\n ...formErrors,\n password: message,\n });\n } else {\n setFormErrors({\n ...formErrors,\n password: \"\",\n });\n }\n }\n if (name === \"confirmPassword\") {\n const isValid = isStrongPassword(value);\n let message = \"Password is not strong enough\";\n\n if (!isContainsNumber(value)) {\n message = \"Password must contain a number\";\n }\n if (!isContainsSpecialChars(value)) {\n message = \"Password must contain a special character\";\n }\n if (!isContainsUpperCase(value)) {\n message = \"Password must contain an uppercase letter\";\n }\n if (!isContainsLowerCase(value)) {\n message = \"Password must contain a lowercase letter\";\n }\n setIsPasswordValid(isValid);\n if (!isValid) {\n setFormErrors({\n ...formErrors,\n confirmPassword: message,\n });\n } else if (formData.password !== value) {\n setFormErrors({\n ...formErrors,\n confirmPassword: \"Passwords do not match.\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n confirmPassword: \"\",\n });\n }\n }\n };\n\n const isFormValid = () => {\n return (\n formData.password.length >= 8 &&\n isPasswordValid &&\n formData.password === formData.confirmPassword\n );\n };\n\n useEffect(() => {\n if (!searchParams.get(\"passwordResetToken\")) {\n navigate(\"/signin\");\n } else {\n const payload = {\n passwordResetToken: searchParams.get(\"passwordResetToken\"),\n };\n\n dispatch(verifyForgetPasswordLink(payload));\n }\n }, []);\n\n useEffect(() => {\n if (!localStorage.getItem(\"isForgot\")) {\n // navigate(\"/signin\");\n }\n }, []);\n const handleSubmit = (e) => {\n e.preventDefault();\n if (!isFormValid()) {\n setPasswordMatchError(\"Passwords do not match.\");\n } else {\n setPasswordMatchError(\"\"); // Reset password match error\n // let payload = {\n // email: localStorage.getItem(\"isForgot\"),\n // password: formData.confirmPassword\n // }\n let payload = {\n passwordResetToken: searchParams.get(\"passwordResetToken\"),\n password: formData.confirmPassword,\n };\n dispatch(resetPassword(payload));\n }\n };\n\n useEffect(() => {\n if (error) {\n setAlertMessage(error);\n setSuccessAlert(false);\n }\n // if (!userInfo) {\n // navigate('/signup');\n // }\n if (userInfo && userToken && userInfo?.isVerified) {\n navigate(\"/\");\n }\n // redirect user to otp verification if registration was successful\n if (success && successMsg && pwdTokenVerified && pwdResetComplete) {\n setAlertMessage(successMsg);\n setAlertHeading(\"Password Changed!\");\n setSuccessAlert(true);\n setTimeout(() => {\n dispatch(clearMsgState());\n navigate(\"/signin\");\n setFormData({\n password: \"\",\n confirmPassword: \"\",\n });\n }, 2000);\n\n //\n }\n }, [navigate, userInfo, userToken, error, success, successMsg]);\n\n const submitBtn = useRef(null);\n\n return (\n <>\n <Box className=\"w-full max-w-[700px] rounded-lg border border-[#363636] p-5 md:p-[32px] lg:p-[58px] signin-form\">\n <Box className=\"text-white max-w-[500px] mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[36px]\">\n Reset Password\n </h1>\n\n <form className=\"auth-form mb-5\" onSubmit={handleSubmit}>\n <div className=\"mb-6\">\n <div className=\"mt-2 flex relative\">\n <input\n type=\"password\"\n name=\"password\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] autofill:bg-transparent font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] placeholder-normal ${\n !isPasswordValid ? \"!border-error\" : \"\"\n }`}\n id=\"password\"\n placeholder=\"Enter new password\"\n value={formData.password}\n onChange={handleInputChange}\n onKeyDown={(e) => {\n if (e.key == \"Enter\") {\n e.preventDefault();\n if (submitBtn.current && !submitBtn.current.disabled) {\n submitBtn.current.click();\n }\n }\n }}\n />\n <span\n data-testid=\"PasswordVisibility\"\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer text-white\"\n onClick={(e) => togglePasswordVisibility(e)}\n >\n <img src={eyeOff} alt=\"PasswordVisibility\" />\n </span>\n </div>\n {!isPasswordValid && formErrors.password && (\n <span className=\"text-error text-sm\">\n {formErrors.password}\n </span>\n )}\n </div>\n <div className=\"mb-6\">\n <div className=\"mt-2 flex relative\">\n <input\n type=\"password\"\n name=\"confirmPassword\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#f6f6f6] autofill:bg-transparent font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] placeholder-normal ${\n !isConfirmPasswordValid ? \"!border-error\" : \"\"\n }`}\n id=\"confirmPassword\"\n value={formData.confirmPassword}\n placeholder=\"Confirm new password\"\n onChange={handleInputChange}\n onKeyDown={(e) => {\n if (e.key == \"Enter\") {\n e.preventDefault();\n if (submitBtn.current && !submitBtn.current.disabled) {\n submitBtn.current.click();\n }\n }\n }}\n />\n <button\n data-testid=\"ConfPasswordVisibility\"\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer text-white\"\n onClick={(e) => togglePasswordVisibility(e)}\n tabIndex={-1}\n >\n <img src={eyeOff} alt=\"PasswordVisibility\" />\n </button>\n </div>\n\n {formErrors.confirmPassword && (\n <span className=\"text-error text-sm\">\n {formErrors.confirmPassword}\n </span>\n )}\n </div>\n\n <button\n type=\"submit\"\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 flex justify-center\"\n disabled={!isFormValid() || loading}\n ref={submitBtn}\n >\n {loading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Change Password\"\n )}\n </button>\n </form>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default ConfirmPassword;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-friends-Reducer-functions\n *@developer Aditya P\n */\n\nimport { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\nexport const UserFriend = createApi({\n reducerPath: \"userfriend\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n SearchUserFriend: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.SEARCH_FRIEND,\n method: \"POST\",\n body: payload,\n }),\n }),\n AddFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.FRIEND_REQUEST_SEND,\n method: \"PATCH\",\n body: payload,\n }),\n }),\n AcceptFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.ACCEPT_FRIEND_REQUEST,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n RejectFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REJECT_FRIEND_REQUEST,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n PendingFriendrequest: builder.mutation({\n query: (payload) => ({\n url: \"\",\n method: \"PATCH\",\n body: payload,\n }),\n }),\n GetBlockFriendRequest: builder.query({\n query: () => ({\n url: EndpointsSlug?.GET_BLOCKED_FRIENDS,\n method: \"GET\",\n }),\n }),\n GetUserFriendRequest: builder.query({\n query: () => ({\n url: EndpointsSlug?.GET_FRIENDS,\n method: \"GET\",\n }),\n }),\n GetPendingInvitesRequest: builder.query({\n query: () => ({\n url: EndpointsSlug?.GET_PENDING_INVITES,\n method: \"GET\",\n }),\n }),\n GetRequestedFriendRequest: builder.query({\n query: () => ({\n url: EndpointsSlug?.GET_REQUESTED_FRIEND_REQUEST,\n method: \"GET\",\n }),\n }),\n CancelRequestedFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.CANCEL_REQUEST_FRIEND,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n RemoveFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REMOVE_FRIEND,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n BlockFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.BLOCK_FRIEND,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n AcceptPendingRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.ACCEPT_FRIEND,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n UnblockFriendRequest: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.UNBLOCK_FRIEND,\n method: \"PATCH\",\n body: {\n senderId: payload,\n },\n }),\n }),\n getFriendListApartmentAsset: builder.query({\n query: ({ apartmentAssetId = \"\" }) => ({\n url:\n EndpointsSlug.GET_FRIEND_LIST_APARTMENT_ASSET +\n \"?apartmentAssetId=\" +\n apartmentAssetId,\n method: \"GET\",\n }),\n }),\n inviteFriendApartmentAsset: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.INVITE_FRIEND_APARTMENT_ASSET,\n method: \"POST\",\n body: payload,\n }),\n }),\n removeFriendApartmentAsset: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REMOVE_FRIEND_APARTMENT_ASSET,\n method: \"DELETE\",\n body: payload,\n }),\n }),\n getFriendListShipAsset: builder.query({\n query: ({ shipAssetId = \"\" }) => ({\n url:\n EndpointsSlug.GET_FRIEND_LIST_SHIP_ASSET +\n \"?shipAssetId=\" +\n shipAssetId,\n method: \"GET\",\n }),\n }),\n inviteFriendShipAsset: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.INVITE_FRIEND_SHIP_ASSET,\n method: \"POST\",\n body: payload,\n }),\n }),\n removeFriendShipAsset: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.REMOVE_FRIEND_SHIP_ASSET,\n method: \"DELETE\",\n body: payload,\n }),\n }),\n }),\n});\n\nexport const {\n useGetBlockFriendRequestQuery,\n useGetUserFriendRequestQuery,\n useGetPendingInvitesRequestQuery,\n useGetRequestedFriendRequestQuery,\n useAddFriendRequestMutation,\n useSearchUserFriendMutation,\n useCancelRequestedFriendRequestMutation,\n useRemoveFriendRequestMutation,\n useBlockFriendRequestMutation,\n useAcceptFriendRequestMutation,\n useAcceptPendingRequestMutation,\n useRejectFriendRequestMutation,\n useUnblockFriendRequestMutation,\n useGetFriendListApartmentAssetQuery,\n useInviteFriendApartmentAssetMutation,\n useRemoveFriendApartmentAssetMutation,\n useGetFriendListShipAssetQuery,\n useInviteFriendShipAssetMutation,\n useRemoveFriendShipAssetMutation,\n} = UserFriend;\n","import React, { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport InvitefriendIcon from \"assets/icons/team 1.png\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport {\n useGetFriendListApartmentAssetQuery,\n useInviteFriendApartmentAssetMutation,\n useRemoveFriendApartmentAssetMutation,\n useGetFriendListShipAssetQuery,\n useInviteFriendShipAssetMutation,\n useRemoveFriendShipAssetMutation,\n} from \"store/slicer/friends\";\nimport Loader from \"components/Loader/Loader\";\n\nconst FriendErrorLimitModal = ({ onClose }) => {\n return (\n <>\n <Alert\n open={true}\n onClose={() => onClose()}\n message={\n \"Sorry, you've reached the maximum limit of 4 friends for invitations. Please remove a friend before adding another.\"\n }\n heading={\"You can only invite 4 friends.\"}\n isSuccess={false}\n />\n </>\n );\n};\n\nconst EmptyFriendListView = () => {\n return (\n <div className=\"flex flex-col justify-center items-center h-[300px] max-h-[400px] text-center p-8\">\n <img\n src={InvitefriendIcon}\n className=\"w-[61px] h-[61px]\"\n alt=\"Invite friend icon\"\n />\n <h4 className=\"text-[16px] font-bold font-body pt-[15px]\">\n 0 Friends Invited\n </h4>\n <p className=\"pt-[20px] text-[14px] text-[#7A7A7A] font-bold font-body\">\n To invite a friend, simply click on the toggle button next to their\n name.\n </p>\n </div>\n );\n};\n\nconst ListView = ({ data, onInvitedClick, isInvited, type, isLoading }) => {\n return (\n <div className=\"__list__item__section flex justify-between border-b border-b-[#7A7A7A33] py-4\">\n <div className=\"__user__data__section flex gap-[8px]\">\n <div className=\"__avatar__profile__section\">\n <img\n src={\n data.photo ||\n \"static/media/_user_default_profile.07300db72dd3c12efff9.png\"\n }\n className=\"w-[56px] h-[56px] rounded-full\"\n alt={`${data.userName}'s profile`}\n />\n </div>\n <div className=\"__content__section flex flex-col justify-center items-start\">\n <h4 className=\"text-[16px] font-Inter font-medium\">\n {data?.userName}\n </h4>\n <p className=\"text-[16px] font-Inter font-normal text-[#FFFFFF80]\">\n {data.firstName || \"\"} {data.lastName || \"\"}\n </p>\n </div>\n </div>\n <div className=\"__action__switch__section flex justify-center items-center\">\n {isLoading ? (\n <div role=\"status\">\n <svg\n aria-hidden=\"true\"\n class=\"inline w-8 h-8 text-gray-200 animate-spin dark:text-gray-600 fill-[#FBBC5E]\"\n viewBox=\"0 0 100 101\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z\"\n fill=\"currentFill\"\n />\n </svg>\n <span class=\"sr-only\">Loading...</span>\n </div>\n ) : (\n <label className=\"relative inline-flex items-center cursor-pointer\">\n <input\n onClick={() => onInvitedClick()}\n type=\"checkbox\"\n value=\"\"\n className=\"sr-only peer\"\n checked={isInvited}\n readOnly\n />\n <div\n className=\"\n w-11\n h-6\n bg-[#474747] \n peer-focus:outline-none \n rounded-full \n peer \n peer-checked:after:translate-x-full \n rtl:peer-checked:after:-translate-x-full \n peer-checked:after:border-[#FBBC5E] \n after:content-[''] \n after:absolute \n after:top-[3px] \n after:start-[4px] \n after:bg-[#7E7E7E] \n peer-checked:after:bg-[#FBBC5E] \n after:border-[#7E7E7E] \n after:border \n after:rounded-full \n after:h-[18px] \n after:w-[18px] \n after:transition-all \n dark:border-gray-600 \n peer-checked:bg-[#F3A1514D]\"\n ></div>\n </label>\n )}\n </div>\n </div>\n );\n};\n\nconst AssetInvite = ({ type, iapId, particularData, handelBack }) => {\n const navigate = useNavigate();\n const useAssetQueryHook =\n type === \"APARTMENT\"\n ? useGetFriendListApartmentAssetQuery\n : useGetFriendListShipAssetQuery;\n\n const useAssetInviteQueryHook =\n type === \"APARTMENT\"\n ? useInviteFriendApartmentAssetMutation\n : useInviteFriendShipAssetMutation;\n\n const useAssetRemoveQueryHook =\n type === \"APARTMENT\"\n ? useRemoveFriendApartmentAssetMutation\n : useRemoveFriendShipAssetMutation;\n const {\n data: friendData,\n isLoading,\n error,\n status,\n refetch,\n } = useAssetQueryHook(\n type === \"APARTMENT\"\n ? {\n apartmentAssetId: particularData?.assetId,\n }\n : {\n shipAssetId: particularData?.assetId,\n }\n );\n const friendWithoutInvitation = friendData?.response.data.filter(\n (item) => item.access === false\n );\n const friendWithInvitation = friendData?.response.data.filter(\n (item) => item.access === true\n );\n const [FrienderrorModal, setFriendErrorModal] = useState(false);\n const [addInviteFriend] = useAssetInviteQueryHook();\n const [removeInviteFriend] = useAssetRemoveQueryHook();\n const [loadingStates, setLoadingStates] = useState({});\n\n const handleInviteSwitch = async (id) => {\n if (friendWithInvitation.length > 3) {\n setFriendErrorModal(!FrienderrorModal);\n console.log(\"Greater than 4 limit\");\n return;\n }\n setLoadingStates((prev) => ({ ...prev, [id]: true }));\n await addInviteFriend(\n type === \"APARTMENT\"\n ? {\n apartmentAssetId: particularData?.assetId,\n friendId: id,\n }\n : {\n shipAssetId: particularData?.assetId,\n friendId: id,\n }\n );\n await refetch();\n setLoadingStates((prev) => ({ ...prev, [id]: false }));\n };\n\n const handleRemoveSwitch = async (id) => {\n setLoadingStates((prev) => ({ ...prev, [id]: true }));\n await removeInviteFriend(\n type === \"APARTMENT\"\n ? {\n apartmentAssetId: particularData?.assetId,\n friendId: id,\n }\n : {\n shipAssetId: particularData?.assetId,\n friendId: id,\n }\n );\n await refetch();\n setLoadingStates((prev) => ({ ...prev, [id]: false }));\n };\n\n return (\n <>\n <div className=\"__assets__invite__main pl-[15px] max-sm:pl-0\">\n <div className=\"__back__container__section flex justify-between pb-[12px]\">\n <button\n onClick={() => handelBack()}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </div>\n\n <div className=\"__heading pt-[30px] max-sm:pt-[15px]\">\n <h4 className=\"text-2xl max-sm:text-sm font-normal font-heading\">\n Invite Friends to your {type === \"APARTMENT\" ? \"Apartment\" : \"Ship\"}{\" \"}\n </h4>\n <p className=\"text-[#7A7A7A] text-sm max-sm:text-xs font-bold font-body pt-[16px] max-sm:pt-[8px]\">\n Extend Invitations to Your Friends and Join the Immersive Experience\n Together.\n </p>\n </div>\n\n <div className=\"__invite__dialog__section__main grid grid-cols-2 max-sm:grid-cols-1 gap-x-[20px] gap-y-[20px] pt-[50px]\">\n <div className=\"__list__of__friends__section bg-[#FBBC5E0D] rounded-[8px] py-6\">\n <h4 className=\"text-[20px] font-bold font-body text-[#FFFFFFCC] px-6 pb-3\">\n List of friends:\n </h4>\n <div className=\" h-[820px] max-h-[880px] overflow-y-auto showScrollbar px-6 \">\n <div className=\"__listing__of__friends__section\">\n {isLoading ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col text-center\">\n <h4 className=\"text-[16px] max-[768px]:text-[14px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n ) : friendData?.response.statusEnum === 1 ? (\n friendWithoutInvitation.length === 0 ||\n friendData.response.data.length === 0 ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col text-center\">\n <h4 className=\"text-[16px] max-[768px]:text-[14px] text-[#7A7A7A] font-body font-medium\">\n {friendData.response.data.length === 0\n ? \"You Don't have a friend yet\"\n : \"All your friends are invited\"}\n </h4>\n <button\n onClick={() => navigate(\"/friends\")}\n className=\"w-[222px] \n py-[6px] \n border \n border-[#F3A151] \n mt-[20px] \n rounded-[8px] \n hover:bg-[#F3A151] \n hover:text-[#000] \n font-medium \n font-body\n max-[768px]:py-[3px]\n max-[768px]:text-[13px]\n \"\n >\n Add\n {friendData.response.data.length ? \" more\":\"\"} friends\n </button>\n </div>\n </div>\n ) : (\n <>\n \n {friendWithoutInvitation.map((item, index) => {\n return (\n <ListView\n key={index}\n data={item}\n onInvitedClick={() =>\n handleInviteSwitch(item?.friendId)\n }\n isInvited={false}\n type=\"INVITE\"\n isLoading={loadingStates[item?.friendId]}\n />\n );\n })}\n </>\n )\n ) : (\n \"There is some problem while fetching the friends! Try again\"\n )}\n </div>\n </div>\n\n </div>\n\n <div\n className={`__invite__to__${\n type === \"APARTMENT\" ? \"Apartment\" : \"Ship\"\n }__section bg-[#282828] py-6 px-[24px] border border-[#656565] h-[900px] max-h-[960px] overflow-y-hidden rounded-[8px]`}\n >\n <h4 className=\"text-[20px] font-bold font-body text-[#FFFFFFCC] text-center\">\n Invite to {type === \"APARTMENT\" ? \"Apartment\" : \"Ship\"}\n </h4>\n\n <div className=\"__asset__info__section\">\n <div className=\"__asset__banner__section pt-[24px]\">\n <img src={particularData?.img} alt=\"Asset banner\" />\n </div>\n <div className=\"__info__section pt-[12px] flex gap-[20px]\">\n <div className=\"__key__name [&>p]:text-[16px] [&>p]:font-semibold [&>p]:text-[#7A7A7A] flex flex-col\">\n <p>\n {type === \"APARTMENT\" ? \"Apartment Name:\" : \"Ship Name:\"}\n </p>\n <p>\n {type === \"APARTMENT\"\n ? \"Apartment Number:\"\n : \"Ship Number:\"}\n </p>\n </div>\n <div className=\"__key__data flex flex-col\">\n <p>{particularData?.iapName}</p>\n <p>\n {type === \"APARTMENT\"\n ? particularData?.iapDetails?.apartmentNumber\n : particularData?.iapDetails?.shipNumber}\n </p>\n </div>\n </div>\n </div>\n\n <h5 className=\"pt-[36px] text-[#FBBC5E] text-[14px] font-medium font-body\">\n You can Invite up to 4 Friends granting them access to your\n {type === \"APARTMENT\" ? \"apartment\" : \"ship\"}.\n </h5>\n <h5 className=\"pt-[20px] text-[#7A7A7A] text-[14px] font-bold font-body\">\n Invited friends:\n </h5>\n\n <div className=\"__invited__friends__list__section\">\n {isLoading ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col text-center\">\n <h4 className=\"text-[16px] max-[768px]:text-[14px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n ) : (\n friendWithInvitation?.map((item, index) => {\n return (\n <ListView\n key={index}\n data={item}\n onInvitedClick={() => handleRemoveSwitch(item?.friendId)}\n isInvited={true}\n type=\"INVITED\"\n isLoading={loadingStates[item?.friendId]}\n />\n );\n })\n )}\n {!isLoading &&\n friendWithInvitation &&\n friendWithInvitation.length === 0 && <EmptyFriendListView />}\n </div>\n </div>\n </div>\n </div>\n\n {FrienderrorModal && (\n <FriendErrorLimitModal\n onClose={() => setFriendErrorModal(!FrienderrorModal)}\n />\n )}\n </>\n );\n};\n\nexport default AssetInvite;\n","import React, { useState, useEffect } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport Loader from \"components/Loader/Loader\";\nimport Explore from \"components/Explore/Explore\";\nimport ApartmentImg from \"assets/images/myassets/card_img.png\";\nimport MarketPlaceCard from \"components/card/marketplace\";\n// import { useGetSingleUserAssetsByTokenQuery } from \"store/slicer/userProfile\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport AssetInvite from \"./Invite/AssetInvite\";\n\nconst ApartmentCard = ({ item, onInviteClick }) => {\n return (\n <NavLink\n className=\"group relative overflow-hidden rounded-xl lg:rounded-[20px] bg-[#1D1D1D] block h-full\"\n to={``}\n >\n <div className=\"p-3\">\n <div className=\"bg-[#2D2D2D] aspect-[590/298] rounded-lg relative z-10 overflow-hidden\">\n <img\n src={item?.img}\n className=\"h-full w-full rounded-lg object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"flex flex-wrap justify-between relative z-10 gap-5 items-center px-2 lg:px-4 py-4 pb-2\">\n <div className=\"max-w-3xl w-full\">\n <h4 className=\"font-bold text-base lg:text-xl mb-3 md:mb-4\">\n {item?.title}\n </h4>\n <p className=\"leading-sung text-sm text-white/[0.90]\">\n {item?.desc}\n </p>\n\n <div className=\"__action__button__groups max-sm:[&>button]:text-xs max-sm:[&>button]:px-[20px] max-sm:[&>button]:py-[8px] pt-[20px] flex gap-[16px] [&>button]:w-[50%] [&>button]:py-[12px] [&>button]:rounded-[8px]\">\n <button\n onClick={() => onInviteClick()}\n className=\"border border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000] text-[16px] font-bold font-body\"\n >\n Invite Friends\n </button>\n <button\n onClick={\n () => onInviteClick()\n // (window.location.href =\n // `/marketplace/${\n // item?.iapCategory === \"apartment\" ? \"apartments\" : \"ships\"\n // }/${item?.slug || item?.iapId}/${item?.title\n // ?.split(\" \")\n // .join(\"-\")\n // .toLowerCase()}` || null)\n }\n className=\"border hover:border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000] hover:font-bold text-[16px]\"\n >\n View Details\n </button>\n </div>\n </div>\n </div>\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[50%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </NavLink>\n );\n};\n\nconst Apartments = ({ apartmentData }) => {\n // const {data, isLoading, error} = useGetSingleUserAssetsByTokenQuery()\n\n // console.log(data)\n\n // This is just a temp variable for testing\n // const IsDataAvailable = true;\n const [IsInviteAssets, setinviteAsset] = useState(false);\n const [loading, setLoading] = useState(false);\n const [iapId, setIapId] = useState(\"\");\n const [particularData, setParticularData] = useState(null);\n\n useEffect(() => {\n if (apartmentData) {\n setLoading(false);\n }\n }, [apartmentData]);\n\n const handleInvite = (data) => {\n setinviteAsset(!IsInviteAssets);\n console.log(\"hihi\", data);\n\n setIapId(data.iapId);\n // let filter = apartmentData.filter(\n // (item) =>\n // item.iapDetails.apartmentNumber === data.iapDetails.apartmentNumber\n // );\n // setParticularData(filter[0]);\n setParticularData(data);\n };\n\n const handelBack = () => {\n setinviteAsset(false);\n };\n\n return (\n <>\n {/* This __explore_default_button class is a conditional component and it will appears when user don't have any assets */}\n {IsInviteAssets ? (\n <AssetInvite\n type=\"APARTMENT\"\n iapId={iapId}\n particularData={particularData}\n handelBack={handelBack}\n />\n ) : (\n <>\n {apartmentData && apartmentData?.length > 0 && (\n <div className=\"__apartment_assets_main pl-[15px] max-[768px]:p-0\">\n <div className=\"__apartment_assets_heading mb-[10px] pt-[10px] max-[768px]:pl-0\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Apartments\n </h4>\n </div>\n\n <div className=\"_apartment_container grid grid-cols-1 md:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {apartmentData?.map((data, index) => {\n return (\n <ApartmentCard\n key={index}\n item={data}\n onInviteClick={() => handleInvite(data)}\n />\n );\n })}\n </div>\n </div>\n )}\n {!loading && apartmentData?.length === 0 && (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n </div>\n )}\n {loading && !apartmentData && (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default Apartments;\n","import React, { useState } from \"react\";\nimport { ClothTabs } from \"constant\";\nimport {\n Formal,\n Casual,\n SpaceSuit,\n ExoSuit,\n} from \"components/assets/myassets/clothing/index\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Clothing-Module\n */\n\nconst Clothing = ({ dataClothing }) => {\n const [clothActiveTab, setclothActiveTab] = useState({\n id: 0,\n activetabs: \"spacesuit\",\n name: \"Space Suits\",\n component: (\n <SpaceSuit\n data={dataClothing.filter((item) => item.iapSuperType === \"spacesuit\")}\n myAsset={true}\n />\n ),\n });\n\n const handleClickAsset = (tabs) => {\n let result;\n switch (tabs.key) {\n case \"exosuit\":\n result = dataClothing.filter((item) => item.iapSuperType === \"exosuit\");\n setclothActiveTab({\n ...tabs,\n activetabs: \"exosuit\",\n component: <ExoSuit data={result} myAsset={true} />,\n });\n break;\n case \"formal\":\n result = dataClothing.filter((item) => item.iapSuperType === \"formal\");\n setclothActiveTab({\n ...tabs,\n activetabs: \"formal\",\n component: <Formal data={result} myAsset={true} />,\n });\n break;\n case \"casual\":\n result = dataClothing.filter((item) => item.iapSuperType === \"casual\");\n setclothActiveTab({\n ...tabs,\n activetabs: \"casual\",\n component: <Casual data={result} myAsset={true} />,\n });\n break;\n default:\n result = dataClothing.filter(\n (item) => item.iapSuperType === \"spacesuit\"\n );\n setclothActiveTab({\n ...tabs,\n activetabs: \"spacesuit\",\n component: <SpaceSuit data={result} myAsset={true} />,\n });\n break;\n }\n };\n return (\n <>\n {/* <div className=\"h-[50vh]\">\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n </div>\n </div> */}\n {/* This __explore_default_button class is a conditional component and it will appears when user don't have any assets */}\n\n {dataClothing && dataClothing.length > 0 ? (\n <div className=\"__clothing_assets_main max-[768px]:p-[15px]\">\n <div className=\"__clothing_assets_heading mb-[10px]\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] px-[10px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Clothing\n </h4>\n </div>\n\n <div className=\"__entertaiments__tabs_main mt-[22px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <ul\n className=\"\n pl-[15px] \n flex \n overflow\n gap-[20px] \n hover:[&>li]:cursor-pointer \n max-[768px]:overflow-x-scroll \n max-[768px]:p-0 \n max-[768px]:[&>li]:underline-offset-1\n \"\n >\n {ClothTabs?.map((tabs, ind) => {\n return (\n <li\n key={tabs?.key}\n className={`${\n clothActiveTab.activetabs === tabs.key\n ? \"text-[#fff] bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] bg-[length:100%_2px] bg-no-repeat bg-bottom font-medium\"\n : \"text-[gray]\"\n }`}\n onClick={() => handleClickAsset(tabs)}\n >\n {tabs?.name}\n </li>\n );\n })}\n </ul>\n </div>\n\n {clothActiveTab.component}\n </div>\n ) : (\n <div className=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%] \">\n <Explore />\n </div>\n )}\n </>\n );\n};\n\nexport default Clothing;\n","import React from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { AvatarCardClass } from \"constant\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Companion-Module\n *@developer Aditya P\n */\n\nconst CompanionCardClass = {\n cardMainclass:\n \"w-full min-h-[257px] pl-[10px] mb-[0px] hover:cursor-pointer hover:scale-[1.024] transition duration-300 ease-in-out max-[768px]:w-[100%] max-[768px]:p-0\",\n cardMediaClass: \"w-[100%] bg-[#2B2B2B] min-h-[257px] rounded-[10px]\",\n cardtitleClass:\n \"py-[12px] text-[14px] font-light pl-[6px] max-[768px]:text-[13px]\",\n cardButtonclass: \"\",\n};\n\nconst Companion = ({ dataCompanion }) => {\n // This is just a temp variable for testing\n const IsDataAvailable = false;\n return (\n <>\n {/* This __explore_default_button class is a conditional component and it will appears when user don't have any assets */}\n\n {dataCompanion && dataCompanion.length > 0 ? (\n <div className=\"__clothing_assets_main pl-[15px] max-[768px]:p-0\">\n <div className=\"__clothing_assets_heading mb-[10px]\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] px-[10px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Companion\n </h4>\n </div>\n\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {dataCompanion?.map((_vitem, index) => {\n return (\n <AssetCardOpen\n key={_vitem?.slug}\n image={_vitem.img}\n channelID={_vitem.iapType}\n contentID={_vitem.slug}\n baseRoute={\n _vitem.iapCategory !== \"companion\"\n ? `/marketplace/${_vitem.iapCategory}`\n : `/marketplace/companions`\n }\n name=\"\"\n title={_vitem.title}\n cardClass={AvatarCardClass}\n />\n );\n })}\n </div>\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n {/* <Loader/> */}\n </div>\n )}\n </>\n );\n};\n\nexport default Companion;\n","import React from 'react'\nimport AssetCardOpen from 'components/card/assets/AssetCardOpen'\nimport { GamingCardClass } from 'constant'\nimport Explore from 'components/Explore/Explore'\n\nconst AllGaming = () => {\n return <>\n <div className='absolute h-[50vh] w-full ml-auto grid place-content-center'>\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n </div>\n </div>\n {/* <AssetCardOpen\n title=\"Galactic Warfare: Multiverse war\"\n cardClass={GamingCardClass}\n baseRoute=\"\"\n />\n <AssetCardOpen\n title=\"Galactic Warfare: Multiverse war\"\n cardClass={GamingCardClass}\n baseRoute=\"\"\n />\n <AssetCardOpen\n title=\"Galactic Warfare: Multiverse war\"\n cardClass={GamingCardClass}\n baseRoute=\"\"\n />\n <AssetCardOpen\n title=\"Galactic Warfare: Multiverse war\"\n cardClass={GamingCardClass}\n baseRoute=\"\"\n />\n <AssetCardOpen\n title=\"Galactic Warfare: Multiverse war\"\n cardClass={GamingCardClass}\n baseRoute=\"\"\n /> */}\n</>\n\n}\n\nexport default AllGaming","import React from \"react\";\nimport Explore from \"components/Explore/Explore\";\n\nconst EnvironGaming = () => {\n return (\n <div className=\"absolute h-[50vh] w-full ml-auto grid place-content-center\">\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n </div>\n </div>\n );\n};\n\nexport default EnvironGaming;\n","import React from \"react\";\nimport Explore from \"components/Explore/Explore\";\n\nconst SuiteGaming = () => {\n return (\n <div className=\"absolute h-[50vh] w-full ml-auto grid place-content-center\">\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n </div>\n </div>\n );\n};\n\nexport default SuiteGaming;\n","import React, { useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport { AllGaming, SuiteGaming, EnvironGaming } from \"./gaming/index\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Gaming-Module\n *@developer Aditya P\n */\n\nconst GamingTabs = [\n { id: 0, key: \"all\", name: \"All\" },\n { id: 0, key: \"suite-gaming\", name: \"Holosuite Gaming\" },\n { id: 0, key: \"environ-gaming\", name: \"Environmental Gaming\" },\n];\n\nconst Gaming = () => {\n const [gamingActiveTab, setgamingActiveTab] = useState({\n id: 0,\n activetabs: \"all\",\n });\n\n // This is just a temp variable for testing\n const IsDataAvailable = true;\n\n return (\n <>\n {/* This __explore_default_button class is a conditional component and it will appears when user don't have any assets */}\n\n {IsDataAvailable ? (\n <div className=\"__gaming_assets_main pl-[15px] max-[768px]:p-0\">\n <div className=\"__gaming_assets_heading mb-[10px]\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Gaming\n </h4>\n </div>\n\n <div className=\"__gaming__tabs_main mt-[22px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <ul\n className=\" \n flex \n overflow\n gap-[20px] \n hover:[&>li]:cursor-pointer \n max-[768px]:overflow-x-scroll \n max-[768px]:p-0 \n max-[768px]:[&>li]:underline-offset-1\n max-[768px]:text-[15px]\n \"\n >\n {GamingTabs?.map((tabs, ind) => {\n return (\n <li\n key={tabs?.key}\n className={`${\n gamingActiveTab.activetabs === tabs.key\n ? \"text-[#fff] decoration-2 underline underline-offset-8 decoration-[#FBBC5E] font-medium\"\n : \"text-[gray]\"\n }`}\n onClick={() => setgamingActiveTab({ activetabs: tabs.key })}\n >\n {tabs?.name}\n </li>\n );\n })}\n </ul>\n </div>\n\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {/* Entertainment Tabs Container */}\n {gamingActiveTab.activetabs === \"all\" && <AllGaming />}\n {gamingActiveTab.activetabs === \"suite-gaming\" && <SuiteGaming />}\n {gamingActiveTab.activetabs === \"environ-gaming\" && (\n <EnvironGaming />\n )}\n </div>\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n {/* <Loader/> */}\n </div>\n )}\n </>\n );\n};\n\nexport default Gaming;\n","import React, { useState, useEffect } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport Explore from \"components/Explore/Explore\";\nimport ShipImg from \"assets/images/myassets/Ship_new.png\";\nimport MarketPlaceCard from \"components/card/marketplace\";\nimport Loader from \"components/Loader/Loader\";\nimport AssetInvite from \"./Invite/AssetInvite\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\nconst ShipCard = ({ item, onInviteClick }) => {\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n\n return (\n <NavLink\n className=\"group relative overflow-hidden rounded-xl lg:rounded-[20px] bg-[#1D1D1D] block h-full\"\n to={``}\n >\n <div className=\"p-3\">\n <div className=\"bg-[#2D2D2D] aspect-[590/298] rounded-lg relative z-10 overflow-hidden\">\n <img\n src={item?.img}\n className=\"h-full w-full rounded-lg object-cover group-hover:scale-105 transition duration-300 ease-in-out\"\n />\n </div>\n <div className=\"flex flex-wrap justify-between relative z-10 gap-5 items-center px-2 lg:px-4 py-4 pb-2\">\n <div className=\"max-w-3xl w-full\">\n <h4 className=\"font-bold text-base lg:text-xl mb-3 md:mb-4\">\n {item?.title}\n </h4>\n <p className=\"leading-sung text-sm text-white/[0.90]\">\n {item?.desc}\n </p>\n\n <div className=\"__action__button__groups max-sm:[&>button]:text-xs max-sm:[&>button]:px-[20px] max-sm:[&>button]:py-[8px] pt-[20px] flex gap-[16px] [&>button]:w-[50%] [&>button]:py-[12px] [&>button]:rounded-[8px]\">\n <button\n onClick={() => {\n if (process.env.REACT_APP_ENVIRONMENT === \"developer\") {\n onInviteClick();\n } else {\n setShowComingSoonPopup(true);\n }\n }}\n // onClick={() => onInviteClick()}\n // onClick={() => setShowComingSoonPopup(true)}\n className=\"border border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000] text-[16px] font-bold font-body\"\n >\n Invite Friends\n </button>\n <button\n onClick={() => {\n if (process.env.REACT_APP_ENVIRONMENT === \"developer\") {\n onInviteClick();\n } else {\n setShowComingSoonPopup(true);\n }\n }}\n // onClick={() => setShowComingSoonPopup(true)}\n // onClick={\n // () => onInviteClick()\n // // setShowComingSoonPopup(true)\n // // (window.location.href =\n // // `/marketplace/${\n // // item?.iapCategory === \"apartment\" ? \"apartments\" : \"ships\"\n // // }/${item?.slug || item?.iapId}/${item?.title\n // // ?.split(\" \")\n // // .join(\"-\")\n // // .toLowerCase()}` || null)\n // }\n className=\"border hover:border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000] hover:font-bold text-[16px]\"\n >\n View Details\n </button>\n </div>\n </div>\n </div>\n <ComingSoon\n status={showComingSoonPopup}\n text={`We are enhancing the way you and your friends experience ship flights. You'll be able to invite friends to your Ship, explore entertainment, and embark on thrilling ship flights together.`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[50%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </NavLink>\n );\n};\n\nconst Ships = ({ shipData }) => {\n // This is just a temp variable for testing\n const IsDataAvailable = true;\n\n const [IsInviteAssets, setinviteAsset] = useState(false);\n\n const [loading, setLoading] = useState(true);\n const [particularData, setParticularData] = useState(null);\n const [iapId, setIapId] = useState(\"\");\n\n useEffect(() => {\n if (shipData) {\n setLoading(false);\n }\n }, [shipData]);\n\n const handleInvite = (data) => {\n setinviteAsset(!IsInviteAssets);\n setIapId(data.iapId);\n // let filter = shipData.filter((i) => i.iapId === iapIdSlug);\n // setParticularData(filter[0]);\n setParticularData(data);\n };\n\n const handelBack = () => {\n setinviteAsset(false);\n };\n\n return (\n <>\n {/* This __explore_default_button class is a conditional component and it will appears when user don't have any assets */}\n {IsInviteAssets ? (\n <AssetInvite\n type=\"SHIP\"\n iapId={iapId}\n particularData={particularData}\n handelBack={handelBack}\n />\n ) : (\n <>\n {shipData && shipData.length > 0 && (\n <div className=\"__ships_assets_main pl-[15px] max-[768px]:p-0\">\n <div className=\"__ships_assets_heading mb-[10px] max-[768px]:pl-0\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Ships\n </h4>\n </div>\n\n <div className=\"_ships_container grid grid-cols-1 md:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {shipData?.map((data) => {\n return (\n <ShipCard\n key={data.id}\n item={data}\n onInviteClick={() => handleInvite(data)}\n />\n );\n })}\n </div>\n </div>\n )}\n {!loading && shipData.length === 0 && (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n {/* <Loader/> */}\n </div>\n )}\n {loading && !shipData && (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default Ships;\n","import React from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { AvatarCardClass } from \"constant\";\n\nconst Avatar = ({ dataAvatar }) => {\n return (\n <>\n {/* This __explore_default_button class is a conditional component and it will appears when user don't have any assets */}\n\n {dataAvatar && dataAvatar.length > 0 ? (\n <div className=\"__clothing_assets_main pl-[15px] max-[768px]:p-0\">\n <div className=\"__clothing_assets_heading mb-[10px]\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] px-[10px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Avatar\n </h4>\n </div>\n\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-2 gap-x-5 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {dataAvatar?.map((_vitem, index) => {\n return (\n <AssetCardOpen\n key={_vitem?.slug}\n image={_vitem.img}\n channelID={_vitem.iapType}\n contentID={_vitem.slug}\n baseRoute={\n _vitem.iapCategory !== \"avatar\"\n ? `/marketplace/${_vitem.iapCategory}`\n : `/marketplace/avatars`\n }\n name=\"\"\n title={_vitem.title}\n cardClass={AvatarCardClass}\n />\n );\n })}\n </div>\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n <Explore />\n {/* <Loader/> */}\n </div>\n )}\n </>\n );\n};\n\nexport default Avatar;\n","import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\nimport { BASE_URL_CREATOR, EndpointsSlug } from 'constant/api/Endpoints'\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Entertainment-Data-Fetching-Api-Calls\n *@developer Shubham K\n */\n\n export const CreatorSlice = createApi({\n reducerPath:\"Creator\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL_CREATOR,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem('accessToken') || \"\";\n headers.set('Content-type', 'application/json; charset=UTF-8')\n if (token) {\n headers.set('Authorization', `Bearer ${token}`)\n \n }\n return headers\n },\n }),\n endpoints: (builder) =>({\n getAllCategoryDataByChannelId:builder.query({\n query:(channelId=\"\")=>({\n url:EndpointsSlug.GET_ALL_CAT_DATA + \"/\" +channelId,\n method: 'GET'\n })\n }), \n })\n })\n\n export const {\n useGetAllCategoryDataByChannelIdQuery\n\n } = CreatorSlice","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module ChannelsAllContent;\n *@developer Shubham K\n */\nimport LargeCarousel from \"components/carousel/MostTreading\";\nimport ChannelImage from \"assets/images/channel.png\";\nimport { NavLink } from \"react-router-dom\";\nimport { useGetAllCategoryDataByChannelIdQuery } from \"store/slicer/Creator\";\nimport Loader from \"components/Loader/Loader\";\n\n/* It defines a component called index which will show all channel content except music in the channels tab of entertainment page */\n\nconst Index = ({ channelDetails }) => {\n let channelContent = [];\n\n if (channelDetails) {\n console.log(channelDetails);\n channelContent = channelDetails?.content;\n\n channelContent = channelContent.map((item, index) => {\n const title = item.contentName;\n let productType = \"Free\";\n if (\n item.contentPreference == \"paid\" ||\n item.contentPreference == \"premium\"\n ) {\n productType = \"Paid\";\n }\n if (item.contentPreference == \"subscription\") {\n productType = \"Premium\";\n }\n\n return {\n ...item,\n title,\n productType,\n price: \"$\" + item.price,\n id: item._id,\n channel: channelDetails.channelHandle || channelDetails._id,\n };\n });\n }\n\n // exclude music videos from this tab\n channelContent = channelContent.filter(\n (item) => !item.category.includes(\"music\")\n );\n\n if (channelContent?.length == 0) {\n return null;\n }\n\n return (\n <>\n <div className=\"\">\n <div className=\"flex items-center mb-[17px]\">\n <img\n className=\"w-[39px] h-[39px] sm:w-[59px] sm:h-[59px] rounded-full mr-[20px] \"\n src={channelDetails.channelThumbnail || ChannelImage}\n alt=\"load image\"\n />\n <p className=\"text-sm sm:text-xl font-semibold mr-[10px] sm:mr-[20px]\">\n {channelDetails.channelName}\n </p>\n <NavLink\n to={`/marketplace/entertainment/channels/${channelDetails.channelHandle}`}\n className={`clip-text text-[12px] sm:text-[15px] font-semibold`}\n >\n See More\n </NavLink>\n </div>\n <div className=\"item-section relative z-10\">\n <LargeCarousel\n slider={channelContent}\n SlideToShow={2}\n type=\"trending\"\n ></LargeCarousel>\n </div>\n </div>\n </>\n );\n};\n\nexport default Index;\n","import React from \"react\";\nimport ChannelsAllContent from \"components/channels/ChannelsAllContent\";\nimport { useGetChannelContentAssetQuery } from \"store/slicer/Entertainment\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\n\n// when need to implement api go to \"/src/pages/marketplace/entertainment/components/channels.jsx\" and copy the required code from there to map the api data in a format similar to the dummy data below\n\nlet dummyChannelsData = [\n {\n _id: \"65adff283f8112ef049cb8f5\",\n user: \"65adfdb33f8112ef049cb834\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/jghsh-1706164738719.jpeg\",\n channelThumbnailDetails: \"65b20202d913da00288b280b\",\n channelName: \"Test Entertainment\",\n channelHandle: \"testingfourthstar\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/qwrhq-1705901785350.jpeg\",\n bannerImageDetails: \"65adfed93f8112ef049cb8e8\",\n subscriptionPrice: 60,\n agreeToTerms: false,\n channelCategory: \"657189a1939000bd49d005e4\",\n channelSubCategory: [\n \"657191a7939000bd49d006e0\",\n \"657191ba939000bd49d006e3\",\n ],\n createdAt: \"2024-01-22T05:37:44.155Z\",\n updatedAt: \"2024-01-25T06:39:03.110Z\",\n content: [\n {\n _id: \"65ae57093f8112ef049cbf3d\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/vnpiz-1705924285263.mp4\",\n mediaFileDetails: \"65ae56bd3f8112ef049cbf2a\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bskac-1705924356107.jpeg\",\n thumbnailDetails: \"65ae57043f8112ef049cbf34\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65ae57233f8112ef049cbf5e\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"music video\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-22T11:52:41.040Z\",\n contentName: \"music content\",\n description: \"music description\",\n contentSlug: \"musiccontent_147\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bskac-1705924356107.jpeg\",\n },\n {\n _id: \"65ae558a3f8112ef049cbeb8\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/spocl-1705923901066.mp4\",\n mediaFileDetails: \"65ae553d3f8112ef049cbea9\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/riawg-1705923973823.jpeg\",\n thumbnailDetails: \"65ae55853f8112ef049cbeaf\",\n contentHighlights: [\n {\n highlightHeading: \"2d heading\",\n highlightDescription: \"2d description\",\n _id: \"65ae55b93f8112ef049cbee7\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/xomiv-1705924007058.jpeg\",\n _id: \"65ae55a73f8112ef049cbebc\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65ae55a73f8112ef049cbebc\",\n _id: \"65ae55b93f8112ef049cbee5\",\n },\n ],\n tag: [\"2d video content\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-22T11:46:18.600Z\",\n contentName: \"2d content\",\n description: \"2d description\",\n contentSlug: \"2dcontent_35\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/spocl-1705923901066.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/riawg-1705923973823.jpeg\",\n },\n {\n _id: \"65ae0f483f8112ef049cba9d\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/xiuhp-1705905855914.mp4\",\n mediaFileDetails: \"65ae0ebf3f8112ef049cba8e\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/dniwl-1705905986135.jpeg\",\n thumbnailDetails: \"65ae0f423f8112ef049cba94\",\n contentHighlights: [\n {\n highlightHeading: \"heading1\",\n highlightDescription: \"highlight description\",\n _id: \"65ae0f8c3f8112ef049cbafe\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/vsfgf-1705906031991.jpeg\",\n _id: \"65ae0f6f3f8112ef049cbad3\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65ae0f6f3f8112ef049cbad3\",\n _id: \"65ae0f8c3f8112ef049cbafc\",\n },\n ],\n tag: [\"360 video\"],\n contentPreference: \"paid\",\n tags: [],\n createdAt: \"2024-01-22T06:46:32.145Z\",\n contentName: \"360 content\",\n description: \"360 description\",\n currency: \"USD\",\n price: 35,\n contentSlug: \"360content_858\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/dniwl-1705905986135.jpeg\",\n },\n {\n _id: \"65ae54953f8112ef049cbe30\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/qjbry-1705923706913.mp4\",\n mediaFileDetails: \"65ae547a3f8112ef049cbe21\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/smdin-1705923725252.jpeg\",\n thumbnailDetails: \"65ae548d3f8112ef049cbe27\",\n contentHighlights: [\n {\n highlightHeading: \"180 heading\",\n highlightDescription: \"180 description\",\n _id: \"65ae54d33f8112ef049cbe5f\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/mtpkw-1705923768522.jpeg\",\n _id: \"65ae54b83f8112ef049cbe34\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65ae54b83f8112ef049cbe34\",\n _id: \"65ae54d33f8112ef049cbe5d\",\n },\n ],\n tag: [\"180 content\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-22T11:42:13.291Z\",\n contentName: \"180 content\",\n description: \"180 description\",\n contentSlug: \"180content_667\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/smdin-1705923725252.jpeg\",\n },\n {\n _id: \"65b0e1d83f8112ef049cea16\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/rcvdw-1706090947567.mp4\",\n mediaFileDetails: \"65b0e1c33f8112ef049cea07\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bfedy-1706090963643.jpeg\",\n thumbnailDetails: \"65b0e1d33f8112ef049cea0d\",\n contentHighlights: [\n {\n highlightHeading: \"heading\",\n highlightDescription: \"description\",\n _id: \"65b0e22c3f8112ef049cea45\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/jybro-1706091032619.jpeg\",\n _id: \"65b0e2183f8112ef049cea1a\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0e2183f8112ef049cea1a\",\n _id: \"65b0e22c3f8112ef049cea43\",\n },\n ],\n tag: [\"medical\"],\n contentPreference: \"paid\",\n tags: [],\n createdAt: \"2024-01-24T10:09:28.322Z\",\n contentName: \"medical\",\n description: \"description\",\n currency: \"USD\",\n price: 45,\n contentSlug: \"medical_881\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bfedy-1706090963643.jpeg\",\n },\n {\n _id: \"65b0e1113f8112ef049ce998\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/juqds-1706090702432.mp4\",\n mediaFileDetails: \"65b0e0ce3f8112ef049ce989\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/iakgv-1706090764597.jpeg\",\n thumbnailDetails: \"65b0e10c3f8112ef049ce98f\",\n contentHighlights: [\n {\n highlightHeading: \"meta\",\n highlightDescription: \"verse\",\n _id: \"65b0e1473f8112ef049ce9c7\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/tcozv-1706090802291.jpeg\",\n _id: \"65b0e1323f8112ef049ce99c\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0e1323f8112ef049ce99c\",\n _id: \"65b0e1473f8112ef049ce9c5\",\n },\n ],\n tag: [\"metaverse\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T10:06:09.831Z\",\n contentName: \"metaverse \",\n description: \"description\",\n contentSlug: \"metaverse_626\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/juqds-1706090702432.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/iakgv-1706090764597.jpeg\",\n },\n {\n _id: \"65b0e01f3f8112ef049ce913\",\n user: \"65adfdb33f8112ef049cb834\",\n channel: \"65adff283f8112ef049cb8f5\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/sncpj-1706090493015.mp4\",\n mediaFileDetails: \"65b0dffd3f8112ef049ce8fe\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/pjzix-1706090520900.jpeg\",\n thumbnailDetails: \"65b0e0183f8112ef049ce907\",\n contentHighlights: [\n {\n highlightHeading: \"heading\",\n highlightDescription: \"description\",\n _id: \"65b0e09d3f8112ef049ce94f\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/wmsul-1706090632993.jpeg\",\n _id: \"65b0e0883f8112ef049ce924\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0e0883f8112ef049ce924\",\n _id: \"65b0e09d3f8112ef049ce94d\",\n },\n ],\n tag: [\"astronaut\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-24T10:02:07.230Z\",\n contentName: \"astronaut\",\n description: \"description\",\n contentSlug: \"astronaut_401\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/pjzix-1706090520900.jpeg\",\n },\n ],\n },\n {\n _id: \"65ae63183f8112ef049cc16c\",\n user: \"65ae57223f8112ef049cbf55\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/umavl-1705927139783.jpeg\",\n channelThumbnailDetails: \"65ae61e33f8112ef049cc145\",\n channelName: \"fourth Star Metaverse\",\n channelHandle: \"fourthstar\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/grwfv-1705927419055.jpeg\",\n bannerImageDetails: \"65ae62fb3f8112ef049cc15f\",\n subscriptionPrice: 20,\n agreeToTerms: false,\n channelCategory: \"65718a4c939000bd49d00642\",\n channelSubCategory: [\n \"65719833939000bd49d00737\",\n \"65719839939000bd49d0073a\",\n ],\n createdAt: \"2024-01-22T12:44:08.644Z\",\n updatedAt: \"2024-01-23T08:28:31.774Z\",\n content: [\n {\n _id: \"65afab133f8112ef049cd7e2\",\n user: \"65ae57223f8112ef049cbf55\",\n channel: \"65ae63183f8112ef049cc16c\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/pnszt-1706011223745.mp4\",\n mediaFileDetails: \"65afaa573f8112ef049cd7b6\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vlycw-1706011405807.png\",\n thumbnailDetails: \"65afab0d3f8112ef049cd7d6\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afab443f8112ef049cd802\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"music\", \"first\", \"melodious\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T12:03:31.138Z\",\n contentName: \"My music\",\n description: \"This is my first music \",\n contentSlug: \"Mymusic_572\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vlycw-1706011405807.png\",\n },\n {\n _id: \"65afa0d83f8112ef049cd0aa\",\n user: \"65ae57223f8112ef049cbf55\",\n channel: \"65ae63183f8112ef049cc16c\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/xdjqq-1706008534655.mp4\",\n mediaFileDetails: \"65af9fd63f8112ef049ccf98\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/oiqdu-1706008786045.png\",\n thumbnailDetails: \"65afa0d23f8112ef049cd0a1\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afa13c3f8112ef049cd15e\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/kemnk-1706008818980.png\",\n _id: \"65afa0f23f8112ef049cd0d2\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa0f23f8112ef049cd0d2\",\n _id: \"65afa13c3f8112ef049cd15c\",\n },\n ],\n tag: [\"space\", \"ray\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:19:52.209Z\",\n contentName: \"2D video\",\n description: \"This is my 1st 2D video\",\n contentSlug: \"2Dvideo_334\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/xdjqq-1706008534655.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/oiqdu-1706008786045.png\",\n },\n {\n _id: \"65b226b6d913da00288b2f51\",\n user: \"65ae57223f8112ef049cbf55\",\n channel: \"65ae63183f8112ef049cc16c\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/echvy-1706174104806.mp4\",\n mediaFileDetails: \"65b22698d913da00288b2f42\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/nwhxs-1706174129079.png\",\n thumbnailDetails: \"65b226b1d913da00288b2f48\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b226e8d913da00288b2f80\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/wziis-1706174161029.png\",\n _id: \"65b226d1d913da00288b2f55\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b226d1d913da00288b2f55\",\n _id: \"65b226e8d913da00288b2f7e\",\n },\n ],\n tag: [\"space\", \"360\", \"180\", \"moon\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-25T09:15:34.516Z\",\n contentName: \"New space\",\n description: \"This is in the space \",\n contentSlug: \"Newspace_588\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/echvy-1706174104806.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/nwhxs-1706174129079.png\",\n },\n {\n _id: \"65ae66a03f8112ef049cc19c\",\n user: \"65ae57223f8112ef049cbf55\",\n channel: \"65ae63183f8112ef049cc16c\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/zelgl-1705928043809.mp4\",\n mediaFileDetails: \"65ae656b3f8112ef049cc18d\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/uvkqc-1705928345894.jpeg\",\n thumbnailDetails: \"65ae66993f8112ef049cc193\",\n contentHighlights: [],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/jqgwd-1705928586017.jpeg\",\n _id: \"65ae678a3f8112ef049cc1a0\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65ae678a3f8112ef049cc1a0\",\n _id: \"65af8bce3f8112ef049cc733\",\n },\n ],\n tag: [\"space \", \"metaverse\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-22T12:59:12.042Z\",\n contentName: \"My Metaverse\",\n description: \"This is new metaverse\",\n contentSlug: \"MyMetaverse_367\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/zelgl-1705928043809.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/uvkqc-1705928345894.jpeg\",\n },\n {\n _id: \"65af91913f8112ef049ccab4\",\n user: \"65ae57223f8112ef049cbf55\",\n channel: \"65ae63183f8112ef049cc16c\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/udpsb-1706004859801.mp4\",\n mediaFileDetails: \"65af917b3f8112ef049cca99\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/lpkoh-1706004877770.jpeg\",\n thumbnailDetails: \"65af918d3f8112ef049ccaa8\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65af92553f8112ef049ccb62\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/qvvcm-1706005049271.jpeg\",\n _id: \"65af92393f8112ef049ccb35\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65af92393f8112ef049ccb35\",\n _id: \"65af92553f8112ef049ccb60\",\n },\n ],\n tag: [\"moon\", \"space\"],\n contentPreference: \"paid\",\n tags: [],\n createdAt: \"2024-01-23T10:14:41.701Z\",\n contentName: \"!80 video\",\n description: \"This is my 1st 180 video\",\n currency: \"USD\",\n price: 20,\n contentSlug: \"!80video_130\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/lpkoh-1706004877770.jpeg\",\n },\n ],\n },\n {\n _id: \"65af8cb83f8112ef049cc798\",\n user: \"65af7a563f8112ef049cc525\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/zhksf-1706003466216.png\",\n channelThumbnailDetails: \"65af8c0a3f8112ef049cc75d\",\n channelName: \"Space Channel\",\n channelHandle: \"divya1234\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/smnrt-1706003532247.png\",\n bannerImageDetails: \"65af8c4c3f8112ef049cc77b\",\n subscriptionPrice: 50,\n agreeToTerms: false,\n channelCategory: \"657189a1939000bd49d005e4\",\n channelSubCategory: [\n \"657191a7939000bd49d006e0\",\n \"657192b9939000bd49d006fe\",\n ],\n createdAt: \"2024-01-23T09:54:00.403Z\",\n updatedAt: \"2024-01-23T09:54:00.403Z\",\n content: [\n {\n _id: \"65b0a7bf3f8112ef049ce4a8\",\n user: \"65af7a563f8112ef049cc525\",\n channel: \"65af8cb83f8112ef049cc798\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/gbkcd-1706075824372.mp4\",\n mediaFileDetails: \"65b0a6b03f8112ef049ce499\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/mfcdo-1706076089225.png\",\n thumbnailDetails: \"65b0a7b93f8112ef049ce49f\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0a8123f8112ef049ce4c0\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T06:01:35.006Z\",\n contentName: \"Yoga theme \",\n description: \"Yoga theme added \",\n contentSlug: \"Yogatheme_603\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/gbkcd-1706075824372.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/mfcdo-1706076089225.png\",\n },\n {\n _id: \"65b0a62a3f8112ef049ce42a\",\n user: \"65af7a563f8112ef049cc525\",\n channel: \"65af8cb83f8112ef049cc798\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/rjzpu-1706075671232.mp4\",\n mediaFileDetails: \"65b0a6173f8112ef049ce41b\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/eqnmm-1706075685934.png\",\n thumbnailDetails: \"65b0a6253f8112ef049ce421\",\n contentHighlights: [\n {\n highlightHeading: \"witness celestial wonders\",\n highlightDescription:\n \"Celestial melodies by artist will take you on an interstellar journey. Experience her enchanting performance that transcends galaxies. Get ready to be captivated by her celestial talent.\",\n _id: \"65b0a68a3f8112ef049ce459\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/hmyvw-1706075750902.png\",\n _id: \"65b0a6663f8112ef049ce42e\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0a6663f8112ef049ce42e\",\n _id: \"65b0a68a3f8112ef049ce457\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T05:54:50.838Z\",\n contentName: \"Yoga theme \",\n description: \"Yoga theme added \",\n contentSlug: \"Yogatheme_312\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/rjzpu-1706075671232.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/eqnmm-1706075685934.png\",\n },\n {\n _id: \"65af8ecc3f8112ef049cc8ea\",\n user: \"65af7a563f8112ef049cc525\",\n channel: \"65af8cb83f8112ef049cc798\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/jomxx-1706004143579.mp4\",\n mediaFileDetails: \"65af8eaf3f8112ef049cc8e1\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/tnsxc-1706003990922.png\",\n thumbnailDetails: \"65af8e163f8112ef049cc8d8\",\n contentHighlights: [\n {\n highlightHeading: \"witness celestial wonders\",\n highlightDescription:\n \"Celestial melodies by artist will take you on an interstellar journey. Experience her enchanting performance that transcends galaxies. Get ready to be captivated by her celestial talent.\",\n _id: \"65af91d13f8112ef049ccadd\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/ugvdp-1706004876073.png\",\n _id: \"65af918c3f8112ef049ccaa5\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65af918c3f8112ef049ccaa5\",\n _id: \"65af91d13f8112ef049ccadb\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T10:02:52.508Z\",\n contentName: \"Space\",\n description: \"Space theme added \",\n contentSlug: \"Space_55\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/jomxx-1706004143579.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/tnsxc-1706003990922.png\",\n },\n {\n _id: \"65b0a53a3f8112ef049ce38b\",\n user: \"65af7a563f8112ef049cc525\",\n channel: \"65af8cb83f8112ef049cc798\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/zbjtc-1706075387288.mp4\",\n mediaFileDetails: \"65b0a4fb3f8112ef049ce371\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/tkiis-1706075444568.png\",\n thumbnailDetails: \"65b0a5343f8112ef049ce382\",\n contentHighlights: [\n {\n highlightHeading: \"Galactic Soundscapes\",\n highlightDescription:\n \"Journey through the cosmos with electrifying performances by interstellar musicians. Witness the fusion of music and technology in an otherworldly setting, where soundwaves transcend the boundaries of space.\",\n _id: \"65b0a5913f8112ef049ce3d0\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/mbgnj-1706075523378.png\",\n _id: \"65b0a5833f8112ef049ce3a5\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0a5833f8112ef049ce3a5\",\n _id: \"65b0a5913f8112ef049ce3ce\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T05:50:50.827Z\",\n contentName: \"Yoga Theme \",\n description: \"Yoga theme added \",\n contentSlug: \"YogaTheme_521\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/zbjtc-1706075387288.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/tkiis-1706075444568.png\",\n },\n {\n _id: \"65b0a4803f8112ef049ce2dc\",\n user: \"65af7a563f8112ef049cc525\",\n channel: \"65af8cb83f8112ef049cc798\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/lnnkw-1706075217577.mp4\",\n mediaFileDetails: \"65b0a4513f8112ef049ce2cb\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/nexwo-1706075258791.png\",\n thumbnailDetails: \"65b0a47a3f8112ef049ce2d3\",\n contentHighlights: [\n {\n highlightHeading: \"witness celestial wonders\",\n highlightDescription:\n \"Celestial melodies by artist will take you on an interstellar journey. Experience her enchanting performance that transcends galaxies. Get ready to be captivated by her celestial talent.\",\n _id: \"65b0a4e43f8112ef049ce339\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/jwqfu-1706075348133.png\",\n _id: \"65b0a4d43f8112ef049ce2e9\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0a4d43f8112ef049ce2e9\",\n _id: \"65b0a4e43f8112ef049ce337\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T05:47:44.758Z\",\n contentName: \"Yoga theme \",\n description: \"Yoga theme added\",\n contentSlug: \"Yogatheme_842\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/lnnkw-1706075217577.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/nexwo-1706075258791.png\",\n },\n ],\n },\n {\n _id: \"65af9bf83f8112ef049ccdcb\",\n user: \"65af9a783f8112ef049ccd54\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/rftlr-1706007463821.png\",\n channelThumbnailDetails: \"65af9ba73f8112ef049ccda9\",\n channelName: \"Yoga Channel\",\n channelHandle: \"yogatheme\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/kipld-1706007510550.png\",\n bannerImageDetails: \"65af9bd63f8112ef049ccdb5\",\n subscriptionPrice: 100,\n agreeToTerms: false,\n channelCategory: \"65718a72939000bd49d00648\",\n channelSubCategory: [\"6585564be994b7dd4237791c\"],\n createdAt: \"2024-01-23T10:59:04.453Z\",\n updatedAt: \"2024-01-23T10:59:04.453Z\",\n content: [\n {\n _id: \"65afa3b63f8112ef049cd2ec\",\n user: \"65af9a783f8112ef049ccd54\",\n channel: \"65af9bf83f8112ef049ccdcb\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/tjftf-1706009504277.mp4\",\n mediaFileDetails: \"65afa3a03f8112ef049cd2d7\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/loeft-1706009521899.png\",\n thumbnailDetails: \"65afa3b13f8112ef049cd2e3\",\n contentHighlights: [\n {\n highlightHeading: \"Galactic Soundscapes\",\n highlightDescription:\n \"Journey through the cosmos with electrifying performances by interstellar musicians. Witness the fusion of music and technology in an otherworldly setting, where soundwaves transcend the boundaries of space.\",\n _id: \"65afa4033f8112ef049cd349\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/xtoml-1706009588715.png\",\n _id: \"65afa3f43f8112ef049cd31e\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa3f43f8112ef049cd31e\",\n _id: \"65afa4033f8112ef049cd347\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:32:06.895Z\",\n contentName: \"Yoga Theme \",\n description: \"Yoga theme added\",\n contentSlug: \"YogaTheme_391\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/tjftf-1706009504277.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/loeft-1706009521899.png\",\n },\n {\n _id: \"65af9f893f8112ef049ccf87\",\n user: \"65af9a783f8112ef049ccd54\",\n channel: \"65af9bf83f8112ef049ccdcb\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/ugveu-1706007589192.mp4\",\n mediaFileDetails: \"65af9c253f8112ef049ccdfd\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/myhsf-1706008452049.png\",\n thumbnailDetails: \"65af9f843f8112ef049ccf7e\",\n contentHighlights: [\n {\n highlightHeading: \"Galactic Soundscapes\",\n highlightDescription:\n \"Journey through the cosmos with electrifying performances by interstellar musicians. Witness the fusion of music and technology in an otherworldly setting, where soundwaves transcend the boundaries of space.\\n\",\n _id: \"65af9ffa3f8112ef049ccfe0\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/fbkod-1706008553295.png\",\n _id: \"65af9fe93f8112ef049ccfa1\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/hvffp-1706008553293.png\",\n _id: \"65af9fe93f8112ef049ccf9f\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65af9fe93f8112ef049ccfa1\",\n _id: \"65af9ffa3f8112ef049ccfdc\",\n },\n {\n image: \"65af9fe93f8112ef049ccf9f\",\n _id: \"65af9ffa3f8112ef049ccfdd\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:14:17.049Z\",\n contentName: \"Yoga theme\",\n description: \"Yoga theme added\",\n contentSlug: \"Yogatheme_928\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/ugveu-1706007589192.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/myhsf-1706008452049.png\",\n },\n {\n _id: \"65afa0763f8112ef049cd057\",\n user: \"65af9a783f8112ef049ccd54\",\n channel: \"65af9bf83f8112ef049ccdcb\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/cjfxl-1706008635168.mp4\",\n mediaFileDetails: \"65afa03b3f8112ef049cd040\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/qpdnl-1706008689186.png\",\n thumbnailDetails: \"65afa0713f8112ef049cd04c\",\n contentHighlights: [\n {\n highlightHeading: \"witness celestial wonders\",\n highlightDescription:\n \"Celestial melodies by artist will take you on an interstellar journey. Experience her enchanting performance that transcends galaxies. Get ready to be captivated by her celestial talent.\",\n _id: \"65afa1053f8112ef049cd0fc\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/zcymc-1706008804685.png\",\n _id: \"65afa0e43f8112ef049cd0b5\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/czvct-1706008804688.png\",\n _id: \"65afa0e43f8112ef049cd0b7\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa0e43f8112ef049cd0b5\",\n _id: \"65afa1053f8112ef049cd0f8\",\n },\n {\n image: \"65afa0e43f8112ef049cd0b7\",\n _id: \"65afa1053f8112ef049cd0f9\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:18:14.183Z\",\n contentName: \"Yoga 180 video\",\n description: \"Yoga 180 video added\",\n contentSlug: \"Yoga180video_235\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/cjfxl-1706008635168.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/qpdnl-1706008689186.png\",\n },\n {\n _id: \"65afa32c3f8112ef049cd24c\",\n user: \"65af9a783f8112ef049ccd54\",\n channel: \"65af9bf83f8112ef049ccdcb\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/lyund-1706008896015.mp4\",\n mediaFileDetails: \"65afa1403f8112ef049cd18a\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ctfsh-1706009384681.png\",\n thumbnailDetails: \"65afa3283f8112ef049cd243\",\n contentHighlights: [\n {\n highlightHeading: \"witness celestial wonders\",\n highlightDescription:\n \"Celestial melodies by artist will take you on an interstellar journey. Experience her enchanting performance that transcends galaxies. Get ready to be captivated by her celestial talent.\\nGalactic Soundscapes\",\n _id: \"65afa38d3f8112ef049cd294\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/zgkov-1706009464577.png\",\n _id: \"65afa3783f8112ef049cd253\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa3783f8112ef049cd253\",\n _id: \"65afa38d3f8112ef049cd292\",\n },\n ],\n tag: [],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:29:49.002Z\",\n contentName: \"Yoga theme \",\n description: \"Yoga theme added\",\n contentSlug: \"Yogatheme_847\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/lyund-1706008896015.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ctfsh-1706009384681.png\",\n },\n ],\n },\n {\n _id: \"65afa09c3f8112ef049cd081\",\n user: \"65af915b3f8112ef049cca4a\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/bfmhj-1707108978564.png\",\n channelThumbnailDetails: \"65c06a72d694b556b4fb3019\",\n channelName: \"Fourth Star Entertainment\",\n channelHandle: \"fourthstarentertainment\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/kgvhw-1707109044965.png\",\n bannerImageDetails: \"65c06ab4d694b556b4fb3040\",\n subscriptionPrice: 20,\n agreeToTerms: false,\n channelCategory: \"65718a34939000bd49d00639\",\n channelSubCategory: [\"657197f4939000bd49d0072c\"],\n createdAt: \"2024-01-23T11:18:52.363Z\",\n updatedAt: \"2024-02-05T04:57:32.034Z\",\n content: [\n {\n _id: \"65afa8d63f8112ef049cd6b1\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/pdpyg-1706010707030.mp4\",\n mediaFileDetails: \"65afa8533f8112ef049cd646\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vrjmw-1706010832562.png\",\n thumbnailDetails: \"65afa8d03f8112ef049cd6a8\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afa8f93f8112ef049cd6cd\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"arabian\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T11:53:58.301Z\",\n contentName: \"Arabian Music\",\n description:\n \"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n contentSlug: \"ArabianMusic_385\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vrjmw-1706010832562.png\",\n },\n {\n _id: \"65afa7113f8112ef049cd4af\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/uphwy-1706010264524.mp4\",\n mediaFileDetails: \"65afa6983f8112ef049cd490\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/beurj-1706010379594.png\",\n thumbnailDetails: \"65afa70b3f8112ef049cd4a6\",\n contentHighlights: [\n {\n highlightHeading:\n \"voluptate velit esse cillum dolore eu fugiat nulla pariatur. \",\n highlightDescription:\n \"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in \",\n _id: \"65afa79e3f8112ef049cd50d\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afa79e3f8112ef049cd50e\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/jxmyp-1706010500419.png\",\n _id: \"65afa7843f8112ef049cd4c1\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/vaenn-1706010500416.png\",\n _id: \"65afa7843f8112ef049cd4bf\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa7843f8112ef049cd4c1\",\n _id: \"65afa79e3f8112ef049cd509\",\n },\n {\n image: \"65afa7843f8112ef049cd4bf\",\n _id: \"65afa79e3f8112ef049cd50a\",\n },\n ],\n tag: [\"fire\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:46:25.435Z\",\n contentName: \"Woman Made of Fire\",\n description:\n \"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \",\n contentSlug: \"WomanMadeofFire_13\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/uphwy-1706010264524.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/beurj-1706010379594.png\",\n },\n {\n _id: \"65c22865d694b556b4fb4053\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/gnosb-1707223123891.mp4\",\n mediaFileDetails: \"65c22853d694b556b4fb403f\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/phneo-1707223137234.png\",\n thumbnailDetails: \"65c22861d694b556b4fb4047\",\n contentSlug: \"thVkKHlk\",\n contentHighlights: [\n {\n highlightHeading:\n \"Proin tincidunt augue et ultrices vehicula. Sed tristique euismod justo, vel s\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n _id: \"65c2289bd694b556b4fb40c7\",\n },\n {\n highlightHeading: \"\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n _id: \"65c2289bd694b556b4fb40c8\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65c2289bd694b556b4fb40c9\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/deywq-1707223174210.png\",\n _id: \"65c22886d694b556b4fb405f\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/ulbig-1707223174217.png\",\n _id: \"65c22886d694b556b4fb4061\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65c22886d694b556b4fb405f\",\n _id: \"65c2289bd694b556b4fb40c3\",\n },\n {\n image: \"65c22886d694b556b4fb4061\",\n _id: \"65c2289bd694b556b4fb40c4\",\n },\n ],\n tag: [\"Raccoon\", \"Jungle life\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-02-06T12:39:01.791Z\",\n contentModerated: true,\n contentName: \"If i ever get a chance to live like a Raccoon\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/gnosb-1707223123891.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/phneo-1707223137234.png\",\n },\n {\n _id: \"65c2276cd694b556b4fb3f75\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/cgjye-1707222876019.mp4\",\n mediaFileDetails: \"65c2275cd694b556b4fb3f61\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ullbt-1707222886584.png\",\n thumbnailDetails: \"65c22766d694b556b4fb3f69\",\n contentSlug: \"thijxlyD\",\n contentHighlights: [\n {\n highlightHeading:\n \"Proin tincidunt augue et ultrices vehicula. Sed tristique euismod justo, vel s\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n _id: \"65c227a2d694b556b4fb3fe9\",\n },\n {\n highlightHeading:\n \"Proin tincidunt augue et ultrices vehicula. Sed tristique euismod justo, vel s\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n _id: \"65c227a2d694b556b4fb3fea\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65c227a2d694b556b4fb3feb\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/tizpk-1707222919804.png\",\n _id: \"65c22787d694b556b4fb3f81\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/horgi-1707222919807.png\",\n _id: \"65c22787d694b556b4fb3f83\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65c22787d694b556b4fb3f81\",\n _id: \"65c227a2d694b556b4fb3fe5\",\n },\n {\n image: \"65c22787d694b556b4fb3f83\",\n _id: \"65c227a2d694b556b4fb3fe6\",\n },\n ],\n tag: [\"Water\", \"ocean monsters\", \"deadly\", \"creatures\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-02-06T12:34:52.743Z\",\n contentModerated: true,\n contentName: \"Ocean Monsters deadly predators\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/cgjye-1707222876019.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ullbt-1707222886584.png\",\n },\n {\n _id: \"65c2265dd694b556b4fb3e97\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/grnas-1707222601134.mp4\",\n mediaFileDetails: \"65c22649d694b556b4fb3e83\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/umbse-1707222613404.png\",\n thumbnailDetails: \"65c22655d694b556b4fb3e8b\",\n contentSlug: \"thNwFlDB\",\n contentHighlights: [\n {\n highlightHeading:\n \"Proin tincidunt augue et ultrices vehicula. Sed tristique euismod justo, vel s\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n _id: \"65c2268bd694b556b4fb3f0b\",\n },\n {\n highlightHeading:\n \"Proin tincidunt augue et ultrices vehicula. Sed tristique euismod justo, vel s\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n _id: \"65c2268bd694b556b4fb3f0c\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65c2268bd694b556b4fb3f0d\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/ihzrq-1707222649690.png\",\n _id: \"65c22679d694b556b4fb3ea3\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/bacrt-1707222649693.png\",\n _id: \"65c22679d694b556b4fb3ea5\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65c22679d694b556b4fb3ea3\",\n _id: \"65c2268bd694b556b4fb3f07\",\n },\n {\n image: \"65c22679d694b556b4fb3ea5\",\n _id: \"65c2268bd694b556b4fb3f08\",\n },\n ],\n tag: [\"Merry Christmas\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-02-06T12:30:21.665Z\",\n contentModerated: true,\n contentName: \"Merry Christmas\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque felis nec gravida feugiat. Vestibulum venenatis, lectus at efficitur consectetur, felis eros consectetur purus, vitae vehicula magna est id neque. Vivamus auctor est id turpis congue, vitae feugiat mauris hendrerit. Sed a turpis nisi. Vivamus ac turpis nec leo malesuada sollicitudin nec id tortor. Integer ut rhoncus velit. Donec interdum nulla ac risus posuere, eu lacinia mauris viverra. Sed vel sapien ac felis rhoncus ultricies. Nullam ac ultrices urna. In hac habitasse platea dictumst. Vivamus eu est ac sem faucibus congue. Vivamus nec elit quam. Phasellus et ligula eget odio efficitur feugiat nec nec purus.\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/grnas-1707222601134.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/umbse-1707222613404.png\",\n },\n {\n _id: \"65afa5f73f8112ef049cd3dc\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/bfbdv-1706009968257.mp4\",\n mediaFileDetails: \"65afa5703f8112ef049cd386\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/hhnhh-1706010098093.png\",\n thumbnailDetails: \"65afa5f23f8112ef049cd3d3\",\n contentHighlights: [\n {\n highlightHeading: \"Lorem ipsum dolor sit amet\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n _id: \"65afa66b3f8112ef049cd448\",\n },\n {\n highlightHeading: \"Lorem ipsum dolor sit amet\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n _id: \"65afa66b3f8112ef049cd449\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/amywo-1706010202081.png\",\n _id: \"65afa65a3f8112ef049cd403\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/pdpad-1706010202077.png\",\n _id: \"65afa65a3f8112ef049cd401\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa65a3f8112ef049cd403\",\n _id: \"65afa66b3f8112ef049cd444\",\n },\n {\n image: \"65afa65a3f8112ef049cd401\",\n _id: \"65afa66b3f8112ef049cd445\",\n },\n ],\n tag: [\"Venice\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T11:41:43.210Z\",\n contentName: \"Visit to Venice\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.\",\n contentSlug: \"VisittoVenice_211\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/hhnhh-1706010098093.png\",\n },\n {\n _id: \"65afa8113f8112ef049cd591\",\n user: \"65af915b3f8112ef049cca4a\",\n channel: \"65afa09c3f8112ef049cd081\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/ntlbn-1706010546363.mp4\",\n mediaFileDetails: \"65afa7b23f8112ef049cd558\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ksbtx-1706010634598.png\",\n thumbnailDetails: \"65afa80a3f8112ef049cd588\",\n contentHighlights: [\n {\n highlightHeading:\n \"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n highlightDescription:\n \"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \",\n _id: \"65afa8463f8112ef049cd60a\",\n },\n {\n highlightHeading:\n \"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n highlightDescription:\n \"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \",\n _id: \"65afa8463f8112ef049cd60b\",\n },\n {\n highlightHeading:\n \"quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n highlightDescription:\n \"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \",\n _id: \"65b89aaca37be42646c21819\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/wongj-1706010675865.png\",\n _id: \"65afa8333f8112ef049cd5b8\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/bzgef-1706010675862.png\",\n _id: \"65afa8333f8112ef049cd5b6\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afa8333f8112ef049cd5b8\",\n _id: \"65c21349d694b556b4fb3683\",\n },\n {\n image: \"65afa8333f8112ef049cd5b6\",\n _id: \"65c21349d694b556b4fb3684\",\n },\n ],\n tag: [\"stars\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T11:50:41.221Z\",\n contentName: \"Beyond the stars\",\n description:\n \"Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. \",\n currency: \"USD\",\n price: 20,\n contentModerated: true,\n contentSlug: \"Beyondthestars_858\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/ntlbn-1706010546363.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ksbtx-1706010634598.png\",\n },\n ],\n },\n {\n _id: \"65afac963f8112ef049cd92c\",\n user: \"65afab9a3f8112ef049cd8a6\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/tlzco-1706011782370.png\",\n channelThumbnailDetails: \"65afac863f8112ef049cd91f\",\n channelName: \"Art and Design\",\n channelHandle: \"artndesign\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/qqyfc-1706011778706.png\",\n bannerImageDetails: \"65afac823f8112ef049cd919\",\n subscriptionPrice: 20,\n agreeToTerms: false,\n channelCategory: \"657189fe939000bd49d00629\",\n channelSubCategory: [\"658554b8e994b7dd423778ea\"],\n createdAt: \"2024-01-23T12:09:58.911Z\",\n updatedAt: \"2024-01-23T12:09:58.911Z\",\n content: [\n {\n _id: \"65afb27b3f8112ef049cdfeb\",\n user: \"65afab9a3f8112ef049cd8a6\",\n channel: \"65afac963f8112ef049cd92c\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/pvjey-1706013290066.mp4\",\n mediaFileDetails: \"65afb26a3f8112ef049cdfc2\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/gwskk-1706013304751.png\",\n thumbnailDetails: \"65afb2783f8112ef049cdfd8\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afb29c3f8112ef049ce014\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"Rajasthan\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T12:35:07.956Z\",\n contentName: \"Rajasthani Folk Song\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. \",\n contentSlug: \"RajasthaniFolkSong_819\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/gwskk-1706013304751.png\",\n },\n {\n _id: \"65afb1f03f8112ef049cdefb\",\n user: \"65afab9a3f8112ef049cd8a6\",\n channel: \"65afac963f8112ef049cd92c\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/qnequ-1706012563971.mp4\",\n mediaFileDetails: \"65afaf933f8112ef049cdcf4\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/yxolh-1706013162699.png\",\n thumbnailDetails: \"65afb1ea3f8112ef049cdef2\",\n contentHighlights: [\n {\n highlightHeading:\n \"Duis aute irure dolor in reprehenderit in voluptate velit esse\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n _id: \"65afb22b3f8112ef049cdf4d\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/tepgh-1706013208156.png\",\n _id: \"65afb2183f8112ef049cdf02\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/mghpd-1706013208153.png\",\n _id: \"65afb2183f8112ef049cdf00\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afb2183f8112ef049cdf02\",\n _id: \"65afb22b3f8112ef049cdf49\",\n },\n {\n image: \"65afb2183f8112ef049cdf00\",\n _id: \"65afb22b3f8112ef049cdf4a\",\n },\n ],\n tag: [\"Birds\"],\n contentPreference: \"paid\",\n tags: [],\n createdAt: \"2024-01-23T12:32:48.320Z\",\n contentName: \"Little birds\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n currency: \"USD\",\n price: 20,\n contentSlug: \"Littlebirds_204\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/yxolh-1706013162699.png\",\n },\n {\n _id: \"65afaf493f8112ef049cdbe1\",\n user: \"65afab9a3f8112ef049cd8a6\",\n channel: \"65afac963f8112ef049cd92c\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/dryul-1706012083424.mp4\",\n mediaFileDetails: \"65afadb33f8112ef049cdb2e\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/hxgwk-1706012484749.png\",\n thumbnailDetails: \"65afaf443f8112ef049cdbd8\",\n contentHighlights: [\n {\n highlightHeading: \"Enjoy the Kpop concert footage\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n _id: \"65afaf833f8112ef049cdc84\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/uyrqv-1706012529122.png\",\n _id: \"65afaf713f8112ef049cdc1e\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/auwxp-1706012529141.png\",\n _id: \"65afaf713f8112ef049cdc21\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afaf713f8112ef049cdc1e\",\n _id: \"65b2234bd913da00288b2b36\",\n },\n {\n image: \"65afaf713f8112ef049cdc21\",\n _id: \"65b2234bd913da00288b2b37\",\n },\n ],\n tag: [\"Kpop\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T12:21:29.693Z\",\n contentName: \"Kpop star night\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n currency: \"USD\",\n price: 20,\n contentSlug: \"Kpopstarnight_201\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/dryul-1706012083424.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/hxgwk-1706012484749.png\",\n },\n {\n _id: \"65afad6c3f8112ef049cda94\",\n user: \"65afab9a3f8112ef049cd8a6\",\n channel: \"65afac963f8112ef049cd92c\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/vqkyg-1706011926581.mp4\",\n mediaFileDetails: \"65afad163f8112ef049cd9f6\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bfbej-1706012007204.png\",\n thumbnailDetails: \"65afad673f8112ef049cda8b\",\n contentHighlights: [\n {\n highlightHeading:\n \", quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam\",\n _id: \"65afada93f8112ef049cdaf6\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/apjte-1706012044832.png\",\n _id: \"65afad8c3f8112ef049cda9f\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/cwhrd-1706012044835.png\",\n _id: \"65afad8c3f8112ef049cdaa1\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afad8c3f8112ef049cda9f\",\n _id: \"65afada93f8112ef049cdaf2\",\n },\n {\n image: \"65afad8c3f8112ef049cdaa1\",\n _id: \"65afada93f8112ef049cdaf3\",\n },\n ],\n tag: [],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T12:13:32.129Z\",\n contentName: \"King of Jungle\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n contentSlug: \"KingofJungle_388\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bfbej-1706012007204.png\",\n },\n {\n _id: \"65afacd53f8112ef049cd95b\",\n user: \"65afab9a3f8112ef049cd8a6\",\n channel: \"65afac963f8112ef049cd92c\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/urufe-1706011843555.mp4\",\n mediaFileDetails: \"65afacc33f8112ef049cd94c\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/zaavn-1706011858075.png\",\n thumbnailDetails: \"65afacd23f8112ef049cd952\",\n contentHighlights: [\n {\n highlightHeading:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore\",\n highlightDescription:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n _id: \"65afad093f8112ef049cd9b8\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/uvpeh-1706011900205.png\",\n _id: \"65afacfc3f8112ef049cd96f\",\n },\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/hxqbx-1706011900207.png\",\n _id: \"65afacfc3f8112ef049cd971\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afacfc3f8112ef049cd96f\",\n _id: \"65afad093f8112ef049cd9b4\",\n },\n {\n image: \"65afacfc3f8112ef049cd971\",\n _id: \"65afad093f8112ef049cd9b5\",\n },\n ],\n tag: [\"volcano\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T12:11:01.792Z\",\n contentName: \"Fuming Volcano island\",\n description:\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\",\n contentSlug: \"FumingVolcanoisland_366\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/urufe-1706011843555.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/zaavn-1706011858075.png\",\n },\n ],\n },\n {\n _id: \"65afad3b3f8112ef049cda06\",\n user: \"65afab823f8112ef049cd8a1\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/lfovr-1706011954891.png\",\n channelThumbnailDetails: \"65afad323f8112ef049cd9fc\",\n channelName: \"Entertainment\",\n channelHandle: \"entertainment\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/crqwy-1706011911574.png\",\n bannerImageDetails: \"65afad073f8112ef049cd991\",\n subscriptionPrice: 25,\n agreeToTerms: false,\n channelCategory: \"657189a1939000bd49d005e4\",\n channelSubCategory: [\n \"65719246939000bd49d006ec\",\n \"6571925d939000bd49d006ef\",\n \"6571926b939000bd49d006f2\",\n ],\n createdAt: \"2024-01-23T12:12:43.463Z\",\n updatedAt: \"2024-01-23T12:13:13.759Z\",\n content: [\n {\n _id: \"65afb1773f8112ef049cdeb2\",\n user: \"65afab823f8112ef049cd8a1\",\n channel: \"65afad3b3f8112ef049cda06\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/wrtrv-1706012947161.mp4\",\n mediaFileDetails: \"65afb1133f8112ef049cde9a\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/kfvhs-1706013041875.png\",\n thumbnailDetails: \"65afb1713f8112ef049cdea9\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afb1a03f8112ef049cdeca\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"Street\", \"dance\", \"cool\"],\n contentPreference: \"paid\",\n tags: [],\n createdAt: \"2024-01-23T12:30:47.420Z\",\n contentName: \"Dance\",\n description: \"Street Dance\",\n currency: \"USD\",\n price: 12,\n contentSlug: \"Dance_386\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/kfvhs-1706013041875.png\",\n },\n {\n _id: \"65afb0b03f8112ef049cdde3\",\n user: \"65afab823f8112ef049cd8a1\",\n channel: \"65afad3b3f8112ef049cda06\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/wyppv-1706012781552.mp4\",\n mediaFileDetails: \"65afb06d3f8112ef049cddd4\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/wxyko-1706012843000.png\",\n thumbnailDetails: \"65afb0ab3f8112ef049cddda\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afb0ea3f8112ef049cde46\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/pugub-1706012877773.png\",\n _id: \"65afb0cd3f8112ef049cdde7\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afb0cd3f8112ef049cdde7\",\n _id: \"65afb0ea3f8112ef049cde44\",\n },\n ],\n tag: [\"headphone\", \"silence\", \"peace\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T12:27:28.261Z\",\n contentName: \"Peace music\",\n description: \"This is Silent music\",\n contentSlug: \"Peacemusic_557\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/wxyko-1706012843000.png\",\n },\n {\n _id: \"65afaff43f8112ef049cdd09\",\n user: \"65afab823f8112ef049cd8a1\",\n channel: \"65afad3b3f8112ef049cda06\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/xahln-1706012572765.mp4\",\n mediaFileDetails: \"65afaf9c3f8112ef049cdcf7\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ujmnj-1706012654122.png\",\n thumbnailDetails: \"65afafee3f8112ef049cdd00\",\n contentHighlights: [],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/ruaxp-1706012699553.jpeg\",\n _id: \"65afb01b3f8112ef049cdd0d\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afb01b3f8112ef049cdd0d\",\n _id: \"65b22466d913da00288b2d8e\",\n },\n ],\n tag: [\"Burning fire\", \"Dance\", \"Fire dance\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T12:24:20.513Z\",\n contentName: \"360 \",\n description: \"360 video\",\n currency: \"USD\",\n price: 43,\n contentSlug: \"360_320\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/xahln-1706012572765.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/ujmnj-1706012654122.png\",\n },\n {\n _id: \"65afaf153f8112ef049cdbc4\",\n user: \"65afab823f8112ef049cd8a1\",\n channel: \"65afad3b3f8112ef049cda06\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/cjbje-1706012350328.mp4\",\n mediaFileDetails: \"65afaebe3f8112ef049cdbb5\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/qkgfk-1706012431801.png\",\n thumbnailDetails: \"65afaf0f3f8112ef049cdbbb\",\n contentHighlights: [\n {\n highlightHeading:\n \"Celestial melodies by artist will take you on an interstellar journey.\",\n highlightDescription:\n \"Experience her enchanting performance that transcends galaxies.\",\n _id: \"65afaf653f8112ef049cdc16\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afaf653f8112ef049cdc17\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/rraus-1706012495768.jpeg\",\n _id: \"65afaf4f3f8112ef049cdbe5\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afaf4f3f8112ef049cdbe5\",\n _id: \"65afaf653f8112ef049cdc14\",\n },\n ],\n tag: [\"space music\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T12:20:37.308Z\",\n contentName: \"Dance\",\n description: \"This is dancing video\",\n contentSlug: \"Dance_837\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/cjbje-1706012350328.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/qkgfk-1706012431801.png\",\n },\n {\n _id: \"65afae173f8112ef049cdb3d\",\n user: \"65afab823f8112ef049cd8a1\",\n channel: \"65afad3b3f8112ef049cda06\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/tqham-1706012018181.mp4\",\n mediaFileDetails: \"65afad723f8112ef049cda98\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/rknkj-1706012178439.png\",\n thumbnailDetails: \"65afae123f8112ef049cdb34\",\n contentHighlights: [\n {\n highlightHeading: \"witness celestial wonders\",\n highlightDescription:\n \"Celestial melodies by artist will take you on an interstellar journey.\",\n _id: \"65afaea63f8112ef049cdb7a\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65afaea63f8112ef049cdb7b\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/vftwf-1706012286493.png\",\n _id: \"65afae7e3f8112ef049cdb49\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afae7e3f8112ef049cdb49\",\n _id: \"65afaea63f8112ef049cdb78\",\n },\n ],\n tag: [\"CD\", \"DVD\", \"Music\", \"OLD\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-23T12:16:23.086Z\",\n contentName: \"Singer's aMic\",\n description: \"This is singer's mic \",\n contentSlug: \"Singer'saMic_710\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/rknkj-1706012178439.png\",\n },\n ],\n },\n {\n _id: \"65afd9343f8112ef049ce0a4\",\n user: \"65ae52dc3f8112ef049cbe06\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/wfxkk-1706023134548.png\",\n channelThumbnailDetails: \"65afd8de3f8112ef049ce089\",\n channelName: \"C - Test Channel\",\n channelHandle: \"ctestchannel\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vziko-1706023182468.png\",\n bannerImageDetails: \"65afd90e3f8112ef049ce097\",\n subscriptionPrice: 0,\n agreeToTerms: false,\n channelCategory: \"657189a1939000bd49d005e4\",\n channelSubCategory: [\n \"657191a7939000bd49d006e0\",\n \"657191ba939000bd49d006e3\",\n ],\n createdAt: \"2024-01-23T15:20:20.209Z\",\n updatedAt: \"2024-01-23T17:20:58.722Z\",\n content: [\n {\n _id: \"65afdb2b3f8112ef049ce0d3\",\n user: \"65ae52dc3f8112ef049cbe06\",\n channel: \"65afd9343f8112ef049ce0a4\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/wpzyn-1706023607198.mp4\",\n mediaFileDetails: \"65afdab73f8112ef049ce0c4\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bsxjc-1706023719035.png\",\n thumbnailDetails: \"65afdb273f8112ef049ce0ca\",\n contentHighlights: [\n {\n highlightHeading: \"testing 2d\",\n highlightDescription: \"test info here\",\n _id: \"65afe2bd3f8112ef049ce102\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/fmtfd-1706023785406.png\",\n _id: \"65afdb693f8112ef049ce0d7\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65afdb693f8112ef049ce0d7\",\n _id: \"65afe2bd3f8112ef049ce100\",\n },\n ],\n tag: [\"entertainment\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-23T15:28:43.108Z\",\n contentName: \"test 2d video\",\n description: \"testing 2d upload\",\n contentSlug: \"test2dvideo_580\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/wpzyn-1706023607198.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/bsxjc-1706023719035.png\",\n },\n ],\n },\n {\n _id: \"65b0a4d83f8112ef049ce2f3\",\n user: \"65b0a0d43f8112ef049ce20c\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/ujufo-1706075214315.png\",\n channelThumbnailDetails: \"65b0a44e3f8112ef049ce2c5\",\n channelName: \"Space TEchnology\",\n channelHandle: \"technoguru\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/xemvn-1706075314097.png\",\n bannerImageDetails: \"65b0a4b23f8112ef049ce2e0\",\n subscriptionPrice: 30,\n agreeToTerms: false,\n channelCategory: \"65718a4c939000bd49d00642\",\n channelSubCategory: [\n \"65719833939000bd49d00737\",\n \"65719839939000bd49d0073a\",\n ],\n createdAt: \"2024-01-24T05:49:12.272Z\",\n updatedAt: \"2024-01-24T05:49:12.272Z\",\n content: [\n {\n _id: \"65b0d2893f8112ef049ce7e0\",\n user: \"65b0a0d43f8112ef049ce20c\",\n channel: \"65b0a4d83f8112ef049ce2f3\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/lwckx-1706086959121.mp4\",\n mediaFileDetails: \"65b0d22f3f8112ef049ce7cf\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/njgle-1706087039109.png\",\n thumbnailDetails: \"65b0d27f3f8112ef049ce7d7\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0d2be3f8112ef049ce7f8\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"mp3\", \"mp4\", \"music\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T09:04:09.643Z\",\n contentName: \"Mp3 Music\",\n description: \"This is mp3 music\",\n contentSlug: \"Mp3Music_673\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/lwckx-1706086959121.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/njgle-1706087039109.png\",\n },\n {\n _id: \"65b0d17c3f8112ef049ce737\",\n user: \"65b0a0d43f8112ef049ce20c\",\n channel: \"65b0a4d83f8112ef049ce2f3\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/hsmgx-1706086721713.mp4\",\n mediaFileDetails: \"65b0d1413f8112ef049ce728\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/mgmuj-1706086773861.png\",\n thumbnailDetails: \"65b0d1753f8112ef049ce72e\",\n contentHighlights: [\n {\n highlightHeading:\n \"Journey through the cosmos with electrifying performances by interstellar musicians. \",\n highlightDescription:\n \" Witness the fusion of music and technology in an otherworldly setting, where soundwaves transcend the boundaries of space.\",\n _id: \"65b0d20f3f8112ef049ce76e\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0d20f3f8112ef049ce76f\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/ebryr-1706086897258.png\",\n _id: \"65b0d1f13f8112ef049ce73d\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0d1f13f8112ef049ce73d\",\n _id: \"65b0d20f3f8112ef049ce76c\",\n },\n ],\n tag: [\"Song\", \"2D\", \"music\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-24T08:59:40.808Z\",\n contentName: \"@2D video\",\n description: \"This is my new 2D entertainment video\",\n contentSlug: \"@2Dvideo_915\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/mgmuj-1706086773861.png\",\n },\n {\n _id: \"65b0d0733f8112ef049ce6c2\",\n user: \"65b0a0d43f8112ef049ce20c\",\n channel: \"65b0a4d83f8112ef049ce2f3\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/gdiaq-1706076614569.mp4\",\n mediaFileDetails: \"65b0a9c63f8112ef049ce623\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/akznl-1706076654758.png\",\n thumbnailDetails: \"65b0a9ee3f8112ef049ce629\",\n contentHighlights: [],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/qcfep-1706086648105.png\",\n _id: \"65b0d0f83f8112ef049ce6c6\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0d0f83f8112ef049ce6c6\",\n _id: \"65b22432d913da00288b2d12\",\n },\n ],\n tag: [\"Technology\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T08:55:15.128Z\",\n contentName: \"Round video\",\n description: \"This is my first 360 video\",\n currency: \"USD\",\n price: 10,\n contentSlug: \"Roundvideo_169\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/gdiaq-1706076614569.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/akznl-1706076654758.png\",\n },\n {\n _id: \"65b0a9693f8112ef049ce5a9\",\n user: \"65b0a0d43f8112ef049ce20c\",\n channel: \"65b0a4d83f8112ef049ce2f3\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/yqlxo-1706076340643.mp4\",\n mediaFileDetails: \"65b0a8b43f8112ef049ce59a\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/nqlye-1706076514335.png\",\n thumbnailDetails: \"65b0a9623f8112ef049ce5a0\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0a9a13f8112ef049ce5d8\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/jjdcs-1706076556764.png\",\n _id: \"65b0a98c3f8112ef049ce5ad\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0a98c3f8112ef049ce5ad\",\n _id: \"65b0a9a13f8112ef049ce5d6\",\n },\n ],\n tag: [\"space\", \"180\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-24T06:08:41.433Z\",\n contentName: \"180 video of space technology\",\n description: \"my first space technology\",\n contentSlug: \"180videoofspacetechnology_855\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/nqlye-1706076514335.png\",\n },\n {\n _id: \"65b0a54c3f8112ef049ce398\",\n user: \"65b0a0d43f8112ef049ce20c\",\n channel: \"65b0a4d83f8112ef049ce2f3\",\n category: \"volumetric-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/jglxe-1706075380837.mp4\",\n mediaFileDetails: \"65b0a4f43f8112ef049ce36e\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vlowb-1706075461631.png\",\n thumbnailDetails: \"65b0a5453f8112ef049ce38f\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0a88e3f8112ef049ce555\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/fqlld-1706076274174.png\",\n _id: \"65b0a8723f8112ef049ce52a\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0a8723f8112ef049ce52a\",\n _id: \"65b0a88e3f8112ef049ce553\",\n },\n ],\n tag: [\"Technology\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T05:51:08.278Z\",\n contentName: \"Space technology\",\n description: \"This is my first space technology channel\",\n contentSlug: \"Spacetechnology_636\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/jglxe-1706075380837.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/vlowb-1706075461631.png\",\n },\n ],\n },\n {\n _id: \"65b0dff13f8112ef049ce8dd\",\n user: \"65b0d3253f8112ef049ce822\",\n channelThumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/pzejs-1706090471492.png\",\n channelThumbnailDetails: \"65b0dfe73f8112ef049ce8d3\",\n channelName: \"Yoga\",\n channelHandle: \"yoga\",\n bannerImage:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/cnlby-1706090362819.png\",\n bannerImageDetails: \"65b0df7a3f8112ef049ce894\",\n subscriptionPrice: 28,\n agreeToTerms: false,\n channelCategory: \"65718a25939000bd49d00637\",\n channelSubCategory: [\"65855612e994b7dd4237790c\"],\n createdAt: \"2024-01-24T10:01:21.439Z\",\n updatedAt: \"2024-01-24T10:01:21.439Z\",\n content: [\n {\n _id: \"65b0e62c3f8112ef049cecde\",\n user: \"65b0d3253f8112ef049ce822\",\n channel: \"65b0dff13f8112ef049ce8dd\",\n category: \"music\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/qodyu-1706092037276.mp4\",\n mediaFileDetails: \"65b0e6053f8112ef049ceccf\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/owfvm-1706092071123.png\",\n thumbnailDetails: \"65b0e6273f8112ef049cecd5\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0e6643f8112ef049cecf6\",\n },\n ],\n sneakPeakImages: [],\n sneakPeakImagesDetails: [],\n tag: [\"padma\", \"padmasan\", \"padmasana\"],\n contentPreference: \"subscription\",\n tags: [],\n createdAt: \"2024-01-24T10:27:56.008Z\",\n contentName: \"Padmasana\",\n description: \"This is padmasana\",\n contentSlug: \"Padmasana_940\",\n mediaFileS3Url: null,\n mediaFileData: null,\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/owfvm-1706092071123.png\",\n },\n {\n _id: \"65b0e4d23f8112ef049cec53\",\n user: \"65b0d3253f8112ef049ce822\",\n channel: \"65b0dff13f8112ef049ce8dd\",\n category: \"2D-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/prqyg-1706091651248.mp4\",\n mediaFileDetails: \"65b0e4833f8112ef049cec44\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/zwclf-1706091725474.png\",\n thumbnailDetails: \"65b0e4cd3f8112ef049cec4a\",\n contentHighlights: [\n {\n highlightHeading:\n \"journey through the cosmos with electrifying performances by interstellar musicians.\",\n highlightDescription:\n \"Witness the fusion of music and technology in an otherworldly setting, where soundwaves transcend the boundaries of space.\",\n _id: \"65b0e5553f8112ef049cec88\",\n },\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0e5553f8112ef049cec89\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/whojk-1706091833542.png\",\n _id: \"65b0e5393f8112ef049cec57\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0e5393f8112ef049cec57\",\n _id: \"65b0e5553f8112ef049cec86\",\n },\n ],\n tag: [\"mat\", \"sitting yoga\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T10:22:10.288Z\",\n contentName: \"Bound Angle pose\",\n description: \"This is bound angle pose\",\n contentSlug: \"BoundAnglepose_480\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/prqyg-1706091651248.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/zwclf-1706091725474.png\",\n },\n {\n _id: \"65b0e3ee3f8112ef049ceb7c\",\n user: \"65b0d3253f8112ef049ce822\",\n channel: \"65b0dff13f8112ef049ce8dd\",\n category: \"360-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/trmys-1706091369456.mp4\",\n mediaFileDetails: \"65b0e3693f8112ef049ceb6d\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/gpuar-1706091496453.png\",\n thumbnailDetails: \"65b0e3e83f8112ef049ceb73\",\n contentHighlights: [],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/hgrxf-1706091581984.png\",\n _id: \"65b0e43d3f8112ef049ceb80\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0e43d3f8112ef049ceb80\",\n _id: \"65b223e9d913da00288b2c96\",\n },\n ],\n tag: [\"open yoga\", \"stretch\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T10:18:22.633Z\",\n contentName: \"Mass yoga\",\n description: \"This is mass yoga\",\n contentSlug: \"Massyoga_431\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/trmys-1706091369456.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/gpuar-1706091496453.png\",\n },\n {\n _id: \"65b0e3093f8112ef049ceafa\",\n user: \"65b0d3253f8112ef049ce822\",\n channel: \"65b0dff13f8112ef049ce8dd\",\n category: \"180-video\",\n mediaFile:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/iftpj-1706091213995.mp4\",\n mediaFileDetails: \"65b0e2cd3f8112ef049ceaeb\",\n thumbnail:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/datrq-1706091266052.png\",\n thumbnailDetails: \"65b0e3023f8112ef049ceaf1\",\n contentHighlights: [\n {\n highlightHeading: \"\",\n highlightDescription: \"\",\n _id: \"65b0e3573f8112ef049ceb29\",\n },\n ],\n sneakPeakImages: [\n {\n image:\n \"https://creater-dashboard.s3.amazonaws.com/sneakPeak/geubj-1706091327025.png\",\n _id: \"65b0e33f3f8112ef049ceafe\",\n },\n ],\n sneakPeakImagesDetails: [\n {\n image: \"65b0e33f3f8112ef049ceafe\",\n _id: \"65b0e3573f8112ef049ceb27\",\n },\n ],\n tag: [\"stand\", \"standing\", \"yoga\"],\n contentPreference: \"free\",\n tags: [],\n createdAt: \"2024-01-24T10:14:33.820Z\",\n contentName: \"Meditation\",\n description: \"This meditation makes mind calm\",\n contentSlug: \"Meditation_301\",\n mediaFileS3Url:\n \"https://creater-dashboard.s3.amazonaws.com/videoContent/iftpj-1706091213995.mp4\",\n mediaFileData: {\n low: \"videoUrlLow.m3u8\",\n medium: \"videoUrlMedium.m3u8\",\n high: \"videoUrlHigh.m3u8\",\n },\n thumbnailUrl:\n \"https://creater-dashboard.s3.amazonaws.com/channelBanner/datrq-1706091266052.png\",\n },\n ],\n },\n];\n\nconst Channels = () => {\n let {\n data: channelContentData,\n isLoading,\n isSuccess,\n error,\n status,\n refetch,\n } = useGetChannelContentAssetQuery({ count: 1 }, { refetch: true });\n\n if (isLoading) {\n return (\n <div className=\"w-full h-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n if (isSuccess && channelContentData?.response?.statusEnum == 1) {\n channelContentData = channelContentData?.response?.data;\n } else {\n return (\n <div className=\"h-full w-full grid place-content-center\">\n <p className=\"text-white/50\">Something went wrong</p>\n </div>\n );\n }\n\n return (\n <>\n {!isLoading && channelContentData?.response?.statusEnum === 1 && (\n <div>\n {\" \"}\n <div className=\"__channels_assets_heading mb-[32px]\">\n <h4 className=\"font-medium font-heading text-[18px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Channels\n </h4>\n </div>\n {channelContentData?.response?.data.map((channelData, index) => {\n return (\n <div key={channelData._id}>\n <ChannelsAllContent channelDetails={channelData} />\n {index < dummyChannelsData.length - 1 &&\n channelData?.content?.length > 0 ? (\n <hr className=\"border-[0.1px] border-[#5A5A5A80] my-[35px] sm:mt-[40px] sm:mb-[56px]\" />\n ) : null}\n </div>\n );\n })}\n </div>\n )}\n {!isLoading &&\n (channelContentData?.response?.statusEnum !== 1 ||\n channelContentData?.response?.data.length === 0) && (\n <div className=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%] \">\n <Explore />\n </div>\n )}\n {isLoading && (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n )}\n </>\n );\n};\n\nexport default Channels;\n","import React from \"react\";\nimport Apartments from \"./Apartments\";\nimport Ships from \"./Ships\";\nimport Gaming from \"./Gaming\";\nimport Clothing from \"./Clothing\";\nimport Companion from \"./Companion\";\nimport Avatar from \"./Avatar\";\nimport { useState, useEffect } from \"react\";\nimport webRequestHandler from \"constant/api/apiInstance\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\nimport Channels from \"./Channels\";\nimport Loader from \"components/Loader/Loader\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Home-Module\n *@developer Aditya P\n */\n\nconst myAssetsTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"apartments\",\n name: \"Apartments\",\n children: null,\n component: <Apartments />,\n },\n {\n id: 1,\n parentId: 0,\n key: \"ships\",\n name: \"Ships\",\n children: null,\n component: <Ships />,\n },\n {\n id: 3,\n parentId: 0,\n key: \"clothing\",\n name: \"Clothing\",\n children: [\n {\n id: 0,\n key: \"space-suits\",\n name: \"Space Suits\",\n },\n {\n id: 1,\n key: \"top-wear\",\n name: \"Top Wear\",\n },\n {\n id: 2,\n key: \"bottom-wear\",\n name: \"Bottom Wear\",\n },\n {\n id: 3,\n key: \"accessories\",\n name: \"Accessories\",\n },\n ],\n component: <Clothing />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"companion\",\n name: \"Companions\",\n children: null,\n component: <Companion />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"avatar\",\n name: \"Avatar\",\n children: null,\n component: <Avatar />,\n },\n {\n id: 5,\n parentId: 0,\n key: \"game\",\n name: \"Gaming\",\n children: null,\n component: <Gaming />,\n },\n];\n\nconst MyAssetsHome = () => {\n const [activeTabs, setActivetab] = useState({\n id: 0,\n parentId: 0,\n key: \"apartments\",\n name: \"Apartments\",\n children: [],\n component: <Apartments />,\n });\n const [assetData, setAssetData] = useState([]);\n const instance = webRequestHandler();\n\n const [isLoading, setIsLoading] = useState(true);\n\n const fetchData = async () => {\n // Simulate fetching data from an API\n try {\n const r = await instance.get(\n `${BASE_URL}${EndpointsSlug.IAP_ASSET_LIST}`\n );\n console.log(r, \"line128\");\n if (r.response.data) {\n const newData = r.response.data;\n let updatedNewData = [];\n // eslint-disable-next-line array-callback-return\n newData.map((item) => {\n updatedNewData.push({\n slug: item.IAPslug ?? item.iapId,\n img: item.thumbnail?.url ?? item.thumbnail, // If tumbnail is an object type then we will add\n title: item.iapName,\n desc: item.description,\n iapCategory: item.iapCategory,\n iapType: item.iapType,\n iapSuperType: item.iapSuperType,\n iapId: item.iapId,\n iapName: item.iapName,\n iapDetails: item.details,\n assetId:item._id\n });\n });\n setAssetData(updatedNewData);\n updatedNewData = updatedNewData.filter(\n (item) => item.iapCategory === \"apartment\"\n );\n console.log(updatedNewData, \"line146\");\n setActivetab({\n ...activeTabs,\n component: <Apartments apartmentData={updatedNewData} />,\n });\n }\n } catch (error) {\n setActivetab({\n ...activeTabs,\n component: <Apartments apartmentData={[]} />,\n });\n console.error(\"Error while fetching iap asset list\", error);\n } finally {\n setIsLoading(false);\n }\n };\n\n useEffect(() => {\n fetchData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClickAsset = (tabs) => {\n let result;\n switch (tabs.key) {\n case \"apartments\":\n result = assetData.filter((item) => item.iapCategory === \"apartment\");\n setActivetab({\n ...tabs,\n component: <Apartments apartmentData={result} />,\n });\n break;\n case \"ships\":\n result = assetData.filter((item) => item.iapCategory === \"ship\");\n setActivetab({ ...tabs, component: <Ships shipData={result} /> });\n break;\n case \"clothing\":\n result = assetData.filter((item) => item.iapCategory === \"clothing\");\n setActivetab({\n ...tabs,\n component: <Clothing dataClothing={result} />,\n });\n break;\n\n case \"companion\":\n result = assetData.filter((item) => item.iapCategory === \"companion\");\n setActivetab({\n ...tabs,\n component: <Companion dataCompanion={result} />,\n });\n break;\n case \"avatar\":\n result = assetData.filter((item) => item.iapCategory === \"avatar\");\n setActivetab({ ...tabs, component: <Avatar dataAvatar={result} /> });\n break;\n case \"game\":\n result = assetData.filter((item) => item.iapCategory === \"gaming\");\n setActivetab({ ...tabs, component: <Gaming /> });\n break;\n default:\n result = assetData.filter((item) => item.iapCategory === \"channel\");\n setActivetab({\n ...tabs,\n component: <Channels />,\n });\n }\n };\n\n if (isLoading) {\n return (\n <div className=\"h-[500px] w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n return (\n <div\n data-testid=\"my-assetsHome-main\"\n className=\"__myassets_container_main px-[15px] py-[35px] flex max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\"\n >\n <div\n // data-testid=\"myAssets-category-main\"\n className=\"__assets_category_panel w-[20%] py-[20px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0 \"\n >\n <h5 className=\"text-[grey] font-body font-bold tracking-[1px] max-[768px]:hidden\">\n My Assets\n </h5>\n <ul\n className=\"overflow-y-scroll\n relative\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n max-[768px]:text-[11px]\n \"\n >\n {myAssetsTabs?.map((tabs, index) => {\n return (\n <li\n key={tabs.key}\n className={`hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n }`}\n onClick={() => handleClickAsset(tabs)}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n\n <div className=\"__assets_tabs_container_panel w-[80%] p-[10px] max-[768px]:w-auto max-[768px]:h-auto max-[768px]:mt-[18px]\">\n {activeTabs.component}\n </div>\n </div>\n );\n};\n\nexport default MyAssetsHome;\n","import React from 'react'\n\nconst CustomizeAvatar = () => {\n return (\n <div className='flex justify-center h-[100vh] pt-[20px] text-[#F3A151] text-[14px] max-[768px]:text-[11px]'>Coming Soon</div>\n )\n}\n\nexport default CustomizeAvatar","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-wardrobe-component\n *@developer Shubham K\n */\n\nimport React from \"react\";\n\nconst SideNavIcon = ({ img, selected, onClickHandler }) => {\n return (\n <div\n className={`rounded-[8px] h-[65px] w-[65px] grid place-content-center bg-black/60 cursor-pointer hover:border hover:border-[#FBBC5E]/50 ${\n selected ? \"border border-[#FBBC5E]\" : \"\"\n }`}\n onClick={onClickHandler}\n >\n <img className=\"pointer-events-none\" src={img} alt=\"wardrobe_nav_thumb\" />\n </div>\n );\n};\n\nexport default SideNavIcon;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module RotateItemPopup\n *@developer Shubham K\n */\n\nimport PopupWrapper from \"components/popup/PopupWrapper\";\nimport React from \"react\";\nimport BgImage from \"assets/images/blue_bg.png\";\nimport AvatarImg from \"assets/images/avatar_full.png\";\n\nconst RotatePopup = ({ open, onClose, canClose, img = AvatarImg }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div\n className=\"h-[650px] bg-cover bg-no-repeat bg-center rounded-lg border border-[#656565]\"\n style={{\n backgroundImage: `url('${BgImage}')`,\n backgroundPosition: \"-2px -2px\",\n }}\n >\n <div className=\"h-[calc(100%-48px)] p-8 rounded-t-lg\">\n <p className=\"text-center\">Rotate to view 360-degree</p>\n <div className=\"relative mt-2 h-[446px] w-[308px] mx-auto\">\n <img\n className=\"h-full w-full object-cover mx-auto\"\n src={img}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = AvatarImg;\n }}\n alt=\"3d image\"\n />\n <svg\n className=\"absolute left-1/2 bottom-[25%] -translate-x-1/2\"\n width=\"43\"\n height=\"51\"\n viewBox=\"0 0 43 51\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"43\"\n height=\"43\"\n rx=\"21.5\"\n fill=\"black\"\n fill-opacity=\"0.2\"\n />\n <path\n d=\"M13.7503 25.6875C13.7503 23.4497 14.6392 21.3036 16.2216 19.7213C17.8039 18.1389 19.95 17.25 22.1878 17.25C24.4256 17.25 26.5717 18.1389 28.154 19.7213C29.7363 21.3036 30.6253 23.4497 30.6253 25.6875C30.6253 25.9859 30.5068 26.272 30.2958 26.483C30.0848 26.694 29.7987 26.8125 29.5003 26.8125C29.2019 26.8125 28.9158 26.694 28.7048 26.483C28.4938 26.272 28.3753 25.9859 28.3753 25.6875C28.3753 24.0465 27.7234 22.4727 26.563 21.3123C25.4026 20.1519 23.8288 19.5 22.1878 19.5C20.5468 19.5 18.973 20.1519 17.8126 21.3123C16.6522 22.4727 16.0003 24.0465 16.0003 25.6875C16.0003 25.9859 15.8818 26.272 15.6708 26.483C15.4598 26.694 15.1737 26.8125 14.8753 26.8125C14.5769 26.8125 14.2908 26.694 14.0798 26.483C13.8688 26.272 13.7503 25.9859 13.7503 25.6875ZM33.4378 31.875C32.7815 31.8743 32.1356 32.0382 31.559 32.3517C31.3868 31.8186 31.1027 31.3284 30.7258 30.9138C30.349 30.4993 29.888 30.1699 29.3736 29.9478C28.8593 29.7256 28.3035 29.6158 27.7433 29.6256C27.1832 29.6354 26.6315 29.7646 26.1253 30.0047V25.6875C26.1253 24.6432 25.7105 23.6417 24.972 22.9033C24.2336 22.1648 23.2321 21.75 22.1878 21.75C21.1435 21.75 20.142 22.1648 19.4036 22.9033C18.6651 23.6417 18.2503 24.6432 18.2503 25.6875V36.9375L17.7131 36.0755C17.1878 35.1727 16.3254 34.5156 15.3156 34.2487C14.3058 33.9818 13.2313 34.127 12.3286 34.6523C11.4258 35.1777 10.7687 36.0401 10.5018 37.0499C10.235 38.0597 10.3801 39.1341 10.9055 40.0369L15.0286 47.0681C15.0977 47.2051 15.1942 47.3264 15.3119 47.4247C15.4297 47.523 15.5664 47.5962 15.7135 47.6398C15.8606 47.6833 16.015 47.6963 16.1673 47.678C16.3196 47.6596 16.4666 47.6103 16.5991 47.5331C16.7317 47.4559 16.8471 47.3523 16.9381 47.2289C17.0292 47.1054 17.0941 46.9647 17.1287 46.8152C17.1634 46.6658 17.1671 46.5108 17.1397 46.3599C17.1122 46.2089 17.0542 46.0652 16.9692 45.9375L12.8503 38.9062C12.7347 38.7142 12.6585 38.501 12.6261 38.2791C12.5938 38.0573 12.606 37.8312 12.662 37.6141C12.7181 37.397 12.8168 37.1933 12.9524 37.0148C13.0881 36.8363 13.258 36.6866 13.4521 36.5745C13.6463 36.4624 13.8608 36.3901 14.0832 36.3618C14.3056 36.3335 14.5314 36.3499 14.7474 36.4099C14.9635 36.4698 15.1654 36.5723 15.3414 36.7111C15.5174 36.85 15.6639 37.0226 15.7725 37.2188L15.7922 37.2511L18.419 41.4698C18.548 41.678 18.7414 41.8383 18.9697 41.9266C19.1981 42.0148 19.449 42.0262 19.6845 41.9589C19.9199 41.8916 20.1269 41.7494 20.2741 41.5538C20.4214 41.3581 20.5008 41.1198 20.5003 40.875V25.6875C20.5003 25.2399 20.6781 24.8107 20.9946 24.4943C21.311 24.1778 21.7402 24 22.1878 24C22.6353 24 23.0646 24.1778 23.381 24.4943C23.6975 24.8107 23.8753 25.2399 23.8753 25.6875V35.25C23.8753 35.5484 23.9938 35.8345 24.2048 36.0455C24.4158 36.2565 24.7019 36.375 25.0003 36.375C25.2987 36.375 25.5848 36.2565 25.7958 36.0455C26.0068 35.8345 26.1253 35.5484 26.1253 35.25V33.5625C26.1253 33.1149 26.3031 32.6857 26.6196 32.3693C26.936 32.0528 27.3652 31.875 27.8128 31.875C28.2603 31.875 28.6896 32.0528 29.006 32.3693C29.3225 32.6857 29.5003 33.1149 29.5003 33.5625V36.375C29.5003 36.6734 29.6188 36.9595 29.8298 37.1705C30.0408 37.3815 30.3269 37.5 30.6253 37.5C30.9237 37.5 31.2098 37.3815 31.4208 37.1705C31.6318 36.9595 31.7503 36.6734 31.7503 36.375V35.8125C31.7503 35.3649 31.9281 34.9357 32.2446 34.6193C32.561 34.3028 32.9902 34.125 33.4378 34.125C33.8853 34.125 34.3146 34.3028 34.631 34.6193C34.9475 34.9357 35.1253 35.3649 35.1253 35.8125V40.875C35.1253 43.9139 34.1269 45.9797 34.1184 45.9966C33.9851 46.2634 33.9633 46.5723 34.0577 46.8553C34.1521 47.1382 34.355 47.3721 34.6219 47.5055C34.7779 47.5844 34.9504 47.6253 35.1253 47.625C35.3343 47.6251 35.5392 47.5671 35.7171 47.4573C35.8949 47.3475 36.0386 47.1903 36.1322 47.0034C36.1842 46.9008 37.3767 44.4722 37.3767 40.875V35.8125C37.3767 35.2953 37.2748 34.7832 37.0768 34.3054C36.8789 33.8275 36.5887 33.3934 36.2229 33.0278C35.8572 32.6621 35.4229 32.3721 34.945 32.1743C34.4672 31.9765 33.955 31.8748 33.4378 31.875Z\"\n fill=\"white\"\n />\n </svg>\n <svg\n className=\"absolute left-1/2 bottom-[25%] -translate-x-1/2\"\n width=\"316\"\n height=\"68\"\n viewBox=\"0 0 316 68\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.40614 0.0861884C4.90145 -0.138116 4.31049 0.0891774 4.08619 0.593862L0.430942 8.81817C0.206638 9.32285 0.433931 9.91381 0.938615 10.1381C1.4433 10.3624 2.03426 10.1351 2.25857 9.63044L5.50767 2.31995L12.8182 5.56906C13.3228 5.79336 13.9138 5.56607 14.1381 5.06138C14.3624 4.5567 14.1351 3.96574 13.6304 3.74143L5.40614 0.0861884ZM308.707 0.292893C308.317 -0.0976311 307.683 -0.0976311 307.293 0.292893L300.929 6.65685C300.538 7.04738 300.538 7.68054 300.929 8.07107C301.319 8.46159 301.953 8.46159 302.343 8.07107L308 2.41421L313.657 8.07107C314.047 8.46159 314.681 8.46159 315.071 8.07107C315.462 7.68054 315.462 7.04738 315.071 6.65685L308.707 0.292893ZM4.06665 1.35898C4.3745 2.15938 4.69539 2.95169 5.0291 3.73595L6.86942 2.95287C6.54487 2.19014 6.23278 1.41954 5.93335 0.641021L4.06665 1.35898ZM7.18338 8.34496C7.95489 9.85574 8.7763 11.3342 9.64581 12.7807L11.3599 11.7502C10.5139 10.3429 9.71492 8.90471 8.96456 7.43535L7.18338 8.34496ZM12.4125 17.0469C13.3798 18.4335 14.3935 19.7881 15.4519 21.1111L17.0137 19.8618C15.9821 18.5723 14.9946 17.2527 14.0528 15.9026L12.4125 17.0469ZM18.7469 24.9724C19.8811 26.2205 21.0573 27.4379 22.2736 28.6251L23.6706 27.1939C22.4821 26.0339 21.3337 24.8451 20.227 23.6273L18.7469 24.9724ZM25.996 32.057C27.2662 33.1641 28.5734 34.2425 29.9159 35.2924L31.148 33.717C29.8327 32.6883 28.5529 31.6325 27.3102 30.5493L25.996 32.057ZM33.9671 38.3008C35.3454 39.273 36.756 40.2184 38.1972 41.1375L39.2726 39.4512C37.8568 38.5484 36.4721 37.6202 35.1199 36.6664L33.9671 38.3008ZM42.4921 43.7471C43.9519 44.5923 45.4394 45.4128 46.9531 46.209L47.8842 44.4389C46.3937 43.6549 44.9299 42.8475 43.4942 42.0163L42.4921 43.7471ZM51.4371 48.4605C52.9513 49.1862 54.489 49.8894 56.0488 50.5705L56.8491 48.7376C55.3103 48.0657 53.794 47.3722 52.3014 46.6569L51.4371 48.4605ZM60.6999 52.5103C62.2524 53.1284 63.8247 53.7261 65.4154 54.3034L66.0977 52.4234C64.5258 51.8529 62.9727 51.2625 61.4397 50.6521L60.6999 52.5103ZM70.2032 55.9622C71.7827 56.4841 73.3787 56.9871 74.99 57.4716L75.5658 55.5563C73.9714 55.0769 72.3927 54.5793 70.8307 54.0631L70.2032 55.9622ZM79.869 58.8693C81.474 59.3069 83.0928 59.7269 84.7243 60.1296L85.2035 58.1879C83.5873 57.789 81.9842 57.373 80.3951 56.9397L79.869 58.8693ZM89.6367 61.2815C91.273 61.6454 92.9208 61.9927 94.5791 62.3234L94.9703 60.362C93.326 60.0341 91.6926 59.6899 90.0709 59.3292L89.6367 61.2815ZM99.5139 63.2536C101.169 63.5477 102.833 63.826 104.505 64.0886L104.815 62.1129C103.156 61.8523 101.505 61.5762 99.864 61.2844L99.5139 63.2536ZM109.473 64.8197C111.131 65.0476 112.797 65.2606 114.469 65.4588L114.704 63.4728C113.044 63.2759 111.391 63.0645 109.745 62.8383L109.473 64.8197ZM119.488 66.0082C121.15 66.1751 122.817 66.3278 124.489 66.4666L124.654 64.4735C122.994 64.3356 121.338 64.1839 119.688 64.0182L119.488 66.0082ZM129.518 66.8413C131.189 66.9518 132.865 67.0487 134.543 67.1321L134.642 65.1346C132.975 65.0517 131.31 64.9555 129.65 64.8457L129.518 66.8413ZM139.569 67.3417C141.247 67.3983 142.927 67.4417 144.609 67.4721L144.645 65.4725C142.974 65.4422 141.304 65.3991 139.637 65.3428L139.569 67.3417ZM149.639 67.5246C151.316 67.5292 152.994 67.5212 154.671 67.5006L154.647 65.5007C152.979 65.5212 151.311 65.5292 149.644 65.5246L149.639 67.5246ZM159.705 67.4012C161.383 67.3556 163.061 67.2975 164.737 67.2272L164.653 65.229C162.987 65.2989 161.319 65.3566 159.65 65.4019L159.705 67.4012ZM169.759 66.9798C171.438 66.8848 173.114 66.7777 174.787 66.6585L174.645 64.6635C172.982 64.782 171.315 64.8886 169.646 64.983L169.759 66.9798ZM179.807 66.2642C181.476 66.1208 183.141 65.9655 184.801 65.7985L184.601 63.8086C182.951 63.9746 181.295 64.1289 179.635 64.2715L179.807 66.2642ZM189.826 65.2558C191.495 65.0631 193.158 64.8585 194.815 64.6423L194.556 62.6591C192.909 62.874 191.256 63.0774 189.596 63.269L189.826 65.2558ZM199.798 63.9539C201.469 63.7102 203.132 63.4547 204.787 63.1875L204.468 61.213C202.824 61.4786 201.17 61.7326 199.509 61.9748L199.798 63.9539ZM209.724 62.351C211.393 62.0549 213.052 61.7468 214.7 61.427L214.319 59.4636C212.681 59.7814 211.033 60.0875 209.375 60.3817L209.724 62.351ZM219.629 60.4285C221.277 60.0806 222.913 59.7207 224.535 59.3492L224.089 57.3997C222.478 57.7686 220.853 58.126 219.216 58.4717L219.629 60.4285ZM229.459 58.1762C231.085 57.7732 232.697 57.3583 234.294 56.9317L233.777 54.9995C232.193 55.4229 230.593 55.8348 228.978 56.2349L229.459 58.1762ZM239.192 55.5718C240.813 55.1045 242.415 54.6248 243.999 54.1331L243.406 52.223C241.836 52.7107 240.246 53.1865 238.638 53.6501L239.192 55.5718ZM248.807 52.5832C250.419 52.0439 252.008 51.4916 253.575 50.9267L252.896 49.0453C251.345 49.6049 249.77 50.1521 248.172 50.6866L248.807 52.5832ZM258.277 49.1647C259.873 48.5433 261.443 47.9081 262.983 47.2595L262.207 45.4163C260.684 46.0576 259.132 46.6859 257.551 47.3009L258.277 49.1647ZM267.565 45.2508C269.135 44.5343 270.67 43.8029 272.17 43.0571L271.279 41.2664C269.8 42.0019 268.285 42.7237 266.734 43.4314L267.565 45.2508ZM276.61 40.7482C278.133 39.9198 279.613 39.0752 281.047 38.2148L280.019 36.4998C278.61 37.345 277.154 38.1757 275.655 38.9913L276.61 40.7482ZM285.303 35.5253C286.745 34.5641 288.132 33.5849 289.461 32.5881L288.26 30.9884C286.963 31.9616 285.607 32.9194 284.194 33.8612L285.303 35.5253ZM293.435 29.403C294.739 28.2838 295.971 27.1442 297.128 25.9848L295.712 24.5722C294.594 25.6928 293.4 26.7975 292.132 27.8854L293.435 29.403ZM300.608 22.159C301.719 20.8082 302.731 19.4326 303.636 18.0331L301.956 16.9471C301.096 18.2779 300.13 19.5919 299.063 20.8879L300.608 22.159ZM306.119 13.5643C306.863 11.9698 307.47 10.3477 307.931 8.69969L306.005 8.16029C305.575 9.6979 305.007 11.2179 304.307 12.719L306.119 13.5643ZM308.879 3.60831C308.959 2.74426 309 1.87473 309 1H307C307 1.8125 306.962 2.62004 306.887 3.42252L308.879 3.60831Z\"\n fill=\"url(#paint0_linear_4149_12000)\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_4149_12000\"\n x1=\"6.5\"\n y1=\"2.50001\"\n x2=\"308\"\n y2=\"-2.99999\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stop-color=\"white\" />\n <stop offset=\"0.445\" stop-color=\"#B4B4B4\" stop-opacity=\"0\" />\n <stop offset=\"1\" stop-color=\"white\" />\n </linearGradient>\n </defs>\n </svg>\n </div>\n </div>\n <div\n className=\"h-[48px] grid place-content-center text-center font-bold text-[20px] leading-[20px] bg-[#2C2C2C] filter hover:brightness-90 transition-all cursor-pointer rounded-b-lg\"\n onClick={onClose}\n >\n <p>Close</p>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default RotatePopup;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module IAP-api-calls\n *@developer Shubham K\n */\n\nexport const IapSlice = createApi({\n reducerPath: \"IAP\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n getListIapAssets: builder.query({\n query: ({ category = \"all\" }) => ({\n url: EndpointsSlug.LIST_IAP_ASSETS + \"/\" + category,\n method: \"GET\",\n }),\n }),\n postEquipDefaultAvatar: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.EQUIP_DEFAULT_CLOTHING_AVATAR,\n method: \"POST\",\n body: payload,\n }),\n }),\n postWearAllItems: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.WEAR_ALL_ITEMS,\n method: \"POST\",\n body: payload,\n }),\n }),\n }),\n});\n\nexport const {\n useGetListIapAssetsQuery,\n usePostEquipDefaultAvatarMutation,\n usePostWearAllItemsMutation,\n} = IapSlice;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-wardrobe-component\n *@developer Shubham K\n */\n\nimport { createContext, useEffect, useState } from \"react\";\nimport { useGetListIapAssetsQuery } from \"store/slicer/Iap\";\n\nexport const WardrobeContext = createContext();\n\nconst WardrobeContextProvider = ({ children }) => {\n let { data, isFetching, isError, isSuccess, refetch } =\n useGetListIapAssetsQuery({\n category: \"all\",\n });\n\n if (!isFetching && data.response.statusEnum != 1) {\n isError = true;\n }\n const [refetchData, setRefetchData] = useState(false);\n\n useEffect(() => {\n if (!isFetching) {\n refetch();\n }\n }, [refetchData]);\n\n const [selectedItems, setSelectedItems] = useState([]);\n\n console.log(\"si\", selectedItems);\n\n // get selected items from api and store it in state\n useEffect(() => {\n if (!isFetching && isSuccess && data?.response?.statusEnum == 1) {\n const sI = data.response.data.filter((item) => {\n if (item)\n return (\n item.isEquiped &&\n (item.iapCategory == \"avatar\" || item.iapCategory == \"clothing\")\n );\n });\n setSelectedItems(sI);\n }\n }, [isFetching, data]);\n\n const selectItem = (type, id) => {\n if (!type || !id) {\n return;\n }\n\n let updatedArr = selectedItems.slice();\n\n if (type == \"avatar\") {\n const avtToSelect = data?.response.data.find((item) => {\n return item?.iapCategory == \"avatar\" && item.iapId == id;\n });\n\n updatedArr = updatedArr.map((item) => {\n if (item?.iapCategory == \"avatar\") {\n return avtToSelect;\n }\n return item;\n });\n } else {\n const itemToSelect = data?.response.data.find((item) => {\n return type.toLowerCase().includes(item?.iapType) && item.iapId == id;\n });\n\n const similarSelectedItem = updatedArr.find((item) =>\n type.toLowerCase().includes(item.iapType)\n );\n\n // we are checking if an item of similar type is already preesent in the selectedItems arr, if it is then we are simply replacing it, if its not then we are pushing the new item to select to selectedItems arr\n if (similarSelectedItem) {\n updatedArr = updatedArr.map((item) => {\n if (type.toLowerCase().includes(item.iapType)) {\n return itemToSelect;\n }\n return item;\n });\n } else {\n updatedArr.push(itemToSelect);\n }\n }\n\n setSelectedItems(updatedArr);\n };\n\n const values = {\n wardrobeData: data,\n isFetching,\n isError,\n isSuccess,\n selectedItems,\n selectItem,\n setRefetchData,\n };\n\n return (\n <WardrobeContext.Provider value={values}>\n {children}\n </WardrobeContext.Provider>\n );\n};\n\nexport default WardrobeContextProvider;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-wardrobe-component\n *@developer Shubham K\n */\n\nimport React, { useState, useContext } from \"react\";\nimport RotatePopup from \"components/popup/MyAvatar/Rotate/RotatePopup\";\nimport { WardrobeContext } from \"./WardrobeContextProvider\";\n\nimport topwearImg from \"assets/images/topwear_item.png\";\nimport bottomwearImg from \"assets/images/bottomwear_item.png\";\nimport suitImg from \"assets/images/suit_item.png\";\n\nconst Item = ({ equipped = false, img, largeImg = \"\", type, id }) => {\n const { selectItem } = useContext(WardrobeContext);\n\n let defaultImg = topwearImg;\n if (type?.includes(\"bottomwear\")) {\n defaultImg = bottomwearImg;\n }\n if (type?.includes(\"suit\")) {\n defaultImg = suitImg;\n }\n\n const onClickEquip = () => {\n if (equipped) {\n return;\n }\n };\n\n let bgColor = \"#4B4335\";\n\n if (type?.toLowerCase() == \"topwear\") {\n bgColor = \"#4B4335\";\n } else if (type?.toLowerCase() == \"bottomwear\") {\n bgColor = \"#453D32\";\n } else if (type?.toLowerCase() == \"suits\") {\n bgColor = \"#453D31\";\n }\n\n const [showPreview, setShowPreview] = useState(false);\n\n const onClickPreview = () => {\n setShowPreview(true);\n };\n\n const onPreviewClose = () => {\n setShowPreview(false);\n };\n\n return (\n <>\n {showPreview && (\n <RotatePopup\n open={showPreview}\n onClose={onPreviewClose}\n img={largeImg}\n type={type}\n />\n )}\n <div\n className={`relative overflow-hidden flex flex-col h-[150px] w-[150px] rounded-[8px] hover:border hover:border-[#fbbc5e] group`}\n style={{\n backgroundColor: bgColor,\n }}\n >\n <div\n className=\"hidden group-hover:flex absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 px-2 py-1 cursor-pointer justify-center items-center gap-1 rounded-[8px] bg-black/20 hover:bg-black/50 transition-all\"\n onClick={onClickPreview}\n >\n <div>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_3983_11677)\">\n <path\n d=\"M4.92188 4.11309V2.63652C4.92188 2.3998 4.72969 2.20996 4.49531 2.20996C4.25859 2.20996 4.06875 2.40215 4.06875 2.63652V4.11309H2.5125C2.27578 4.11309 2.08594 4.30527 2.08594 4.53965C2.08594 4.77637 2.27812 4.96621 2.5125 4.96621H4.06875V6.36777C4.06875 6.60449 4.26094 6.79434 4.49531 6.79434C4.73203 6.79434 4.92188 6.60215 4.92188 6.36777V4.96855H6.39375C6.62812 4.96855 6.82031 4.77637 6.82031 4.53965C6.82031 4.30293 6.62812 4.11309 6.39375 4.11309H4.92188Z\"\n fill=\"white\"\n />\n <path\n d=\"M11.7004 10.242L9.26992 7.81152C9.05664 7.59824 8.7707 7.50215 8.4918 7.51621L8.05352 7.07793C8.43789 6.52715 8.86914 5.65996 8.86914 4.53027C8.86914 2.90605 7.99023 1.83027 7.61289 1.44355C7.3082 1.13184 6.17852 0.112305 4.45352 0.112305C2.84102 0.112305 1.76992 0.981836 1.3832 1.35449C0.131641 2.56621 0.0332031 4.09199 0.0332031 4.53262C0.0332031 6.20137 0.961328 7.2959 1.36211 7.68965C1.7582 8.07871 2.84102 8.97402 4.45117 8.97168C4.4793 8.97168 4.50977 8.97168 4.53789 8.97168C5.68398 8.94824 6.55117 8.47949 7.10195 8.06465L7.52383 8.48418C7.50977 8.76543 7.60586 9.04902 7.81914 9.26231L10.2496 11.6928C10.4488 11.892 10.7137 11.9928 10.9762 11.9928C11.2387 11.9928 11.5012 11.892 11.7027 11.6928C12.1012 11.292 12.1012 10.6428 11.7004 10.242ZM6.64023 6.65605C6.37305 6.93262 5.63242 7.58184 4.51211 7.60527C3.36836 7.62402 2.60195 6.99121 2.32305 6.71699C2.10742 6.50371 1.40195 5.71621 1.40195 4.53262C1.40195 4.23027 1.46992 3.17559 2.33008 2.34121C2.53867 2.13965 3.30742 1.4834 4.45117 1.4834C5.6418 1.4834 6.42227 2.18652 6.6332 2.40215C6.83711 2.61074 7.50039 3.37949 7.50039 4.53262C7.50039 5.63887 6.89805 6.38418 6.64023 6.65605Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3983_11677\">\n <rect width=\"12\" height=\"12\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n <span>Preview</span>\n </div>\n {equipped && (\n <svg\n className=\"absolute top-1 right-1\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"20\" height=\"20\" rx=\"10\" fill=\"#FBBC5E\" />\n <path\n d=\"M15.1805 7.01409L15.3462 6.84116L15.1805 6.66823L14.3748 5.82707L14.1944 5.63867L14.0138 5.82698L8.14272 11.9506L5.98604 9.70455L5.80549 9.51652L5.62517 9.70477L4.81946 10.5459L4.65382 10.7189L4.81946 10.8918L7.96232 14.1729L8.14286 14.3614L8.3234 14.1729L15.1805 7.01409Z\"\n fill=\"black\"\n stroke=\"black\"\n strokeWidth=\"0.5\"\n />\n </svg>\n )}\n <div className=\"__IMAGE_CONTAINER__ h-full group-hover:h-[80%] transition-all\">\n <img\n className={`${\n type == \"suits\" ? \"w-[90%] h-[90%]\" : \"w-full h-full\"\n } object-contain mx-auto`}\n src={img}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = defaultImg;\n }}\n alt=\"item\"\n />\n </div>\n <div\n className={`scale-y-0 opacity-0 group-hover:opacity-100 group-hover:scale-y-100 bg-[#28231980] ${\n equipped\n ? \"text-[#25B39E]\"\n : \"text-[#FBBC5E] filter hover:brightness-75\"\n } font-bold rounded-b-[8px] text-[14px] grid place-content-center py-[3px] cursor-pointer h-[20%] transition-all delay-100 origin-bottom`}\n onClick={onClickEquip}\n >\n <p\n className=\"text-center\"\n onClick={() => {\n selectItem(type, id);\n }}\n >\n {equipped ? \"Already Equipped\" : \"Equip this item\"}\n </p>\n </div>\n </div>\n </>\n );\n};\n\nexport default Item;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-item-component\n *@developer Shubham K\n */\n\nimport { useContext } from \"react\";\nimport { WardrobeContext } from \"./WardrobeContextProvider\";\n\nimport BgGreen from \"assets/images/avt_gradient_green.png\";\nimport BgSky from \"assets/images/avt_gradient_sky.png\";\nimport BgBlue from \"assets/images/avt_gradient_blue.png\";\nimport BgYellow from \"assets/images/avt_gradient_yellow.png\";\nimport avt_thumb_1 from \"assets/images/avt_thumb_1.png\";\n\nconst AvatarItem = ({\n equipped = false,\n img = avt_thumb_1,\n title,\n index = 0,\n isPreview = false,\n id,\n}) => {\n index += 1;\n let bgImage;\n if (index % 4 == 0) {\n bgImage = BgSky;\n } else if (index % 2 == 0) {\n bgImage = BgBlue;\n } else if (index % 3 == 0) {\n bgImage = BgGreen;\n } else {\n bgImage = BgYellow;\n }\n\n const { selectItem } = useContext(WardrobeContext);\n\n return (\n <div\n className={`w-[107px] hover:scale-110 transition-all overflow-hidden`}\n onClick={() => {\n selectItem(\"avatar\", id);\n }}\n >\n <div\n className={`relative rounded-full h-[107px] cursor-pointer ${\n equipped || isPreview\n ? \"border border-[#fbbc5e]\"\n : \"hover:border hover:border-[#fbbc5e]/50\"\n }`}\n style={{\n backgroundImage: `url('${bgImage}')`,\n }}\n >\n {equipped && (\n <div className=\"absolute top-[5px] right-[5px] bg-[#fbbc5e] p-1 rounded-full\">\n <svg\n width=\"12\"\n height=\"10\"\n viewBox=\"0 0 12 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.1805 2.01409L11.3462 1.84116L11.1805 1.66823L10.3748 0.827069L10.1944 0.638674L10.0138 0.826983L4.14272 6.95061L1.98604 4.70455L1.80549 4.51652L1.62517 4.70477L0.81946 5.54593L0.653816 5.71887L0.81946 5.8918L3.96232 9.17293L4.14286 9.36141L4.3234 9.17293L11.1805 2.01409Z\"\n fill=\"black\"\n stroke=\"black\"\n strokeWidth=\"0.5\"\n />\n </svg>\n </div>\n )}\n <div className=\"h-full w-full rounded-full bg-contain bg-center bg-no-repeat overflow-hidden\">\n <img\n className=\"h-full w-full object-cover\"\n src={img}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = avt_thumb_1;\n }}\n />\n </div>\n </div>\n <p\n className={`mt-1 text-[12px] text-center font-semibold ${\n equipped ? \"text-[#fbbc5e]\" : \"\"\n }`}\n >\n {title}\n </p>\n </div>\n );\n};\n\nexport default AvatarItem;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-wardrobe-component\n *@developer Shubham K\n */\n\nimport React from \"react\";\n\nimport Item from \"./Item\";\nimport AvatarItem from \"./AvatarItem\";\nimport { useContext } from \"react\";\nimport { WardrobeContext } from \"./WardrobeContextProvider\";\n\nimport topwearImg from \"assets/images/topwear_item.png\";\nimport bottomwearImg from \"assets/images/bottomwear_item.png\";\nimport suitImg from \"assets/images/suit_item.png\";\n\nimport avt_thumb_1 from \"assets/images/avt_thumb_1.png\";\nimport avt_thumb_2 from \"assets/images/avt_thumb_2.png\";\nimport avt_thumb_3 from \"assets/images/avt_thumb_3.png\";\nimport avt_thumb_4 from \"assets/images/avt_thumb_4.png\";\n\nimport hangerImg from \"assets/images/hanger.png\";\nimport Loader from \"components/Loader/Loader\";\n\nconst dummyAvatarList = [\n { title: \"Human Male\", img: avt_thumb_1 },\n {\n title: \"Human Female\",\n img: avt_thumb_2,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Goblin\",\n img: avt_thumb_4,\n },\n { title: \"Human Male\", img: avt_thumb_1 },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n {\n title: \"Alien Royality\",\n img: avt_thumb_3,\n },\n];\n\nconst ItemList = ({ type }) => {\n const contextValues = useContext(WardrobeContext);\n\n let { wardrobeData, selectedItems, isFetching, isError, isSuccess } =\n contextValues;\n\n if (!isFetching && isSuccess && wardrobeData.response.statusEnum == 1) {\n wardrobeData = wardrobeData.response.data;\n wardrobeData = wardrobeData.filter((item) => {\n if (type == \"avatar\") {\n return item.iapCategory == type;\n }\n return item.iapType && type.includes(item.iapType.toLowerCase());\n });\n } else {\n wardrobeData = [];\n }\n\n let dummyItemsData = [];\n\n if (type == \"avatar\") {\n dummyItemsData = dummyAvatarList;\n }\n\n if (type == \"topwear\") {\n dummyItemsData = new Array(10);\n dummyItemsData.fill({ img: topwearImg });\n }\n if (type == \"bottomwear\") {\n dummyItemsData = new Array(10);\n dummyItemsData.fill({ img: bottomwearImg });\n }\n if (type == \"suits\") {\n dummyItemsData = new Array(10);\n dummyItemsData.fill({ img: suitImg });\n }\n\n const isEquipped = (id) => {\n const index = selectedItems.findIndex((item) => item.iapId == id);\n return index != -1;\n };\n\n if (isFetching) {\n return (\n <div className=\"h-full grid place-content-center border border-[#656565] rounded-lg\">\n <Loader />\n </div>\n );\n }\n\n if (isError) {\n return (\n <div className=\"h-full w-full border border-[#656565] rounded-lg grid place-content-center\">\n <p className=\"text-white/50 font-bold\">Something went wrong</p>\n </div>\n );\n }\n\n return (\n <div className=\"p-[27px] border border-[#656565] rounded-lg h-full overflow-y-scroll\">\n <p className=\"text-[14px] font-bold capitalize mb-[32px]\">\n {type == \"avatar\" ? \"Select Avatar Type\" : \"Select \" + type}\n </p>\n {type == \"avatar\" && wardrobeData?.length > 0 && (\n <div className=\"__AVATAR_LIST_CONTAINER grid grid-cols-[repeat(auto-fit,minmax(min(107px,100%),1fr))] justify-items-center gap-[20px] gap-y-[50px]\">\n {wardrobeData.map((item, ind) => {\n return (\n <AvatarItem\n key={item._id}\n id={item.iapId}\n equipped={isEquipped(item.iapId)}\n img={item.thumbnail}\n title={item.iapName}\n index={ind}\n />\n );\n })}\n </div>\n )}\n {type != \"avatar\" && wardrobeData?.length > 0 && (\n <div className=\"__ITEM_LIST_CONTAINER grid grid-cols-[repeat(auto-fit,minmax(min(150px,100%),1fr))] justify-items-center gap-[20px] gap-y-[50px]\">\n {wardrobeData.map((item, ind) => {\n return (\n <Item\n key={item._id}\n img={item.thumbnail}\n largeImg={item.largeThumbnail}\n type={type}\n id={item.iapId}\n equipped={isEquipped(item.iapId)}\n />\n );\n })}\n </div>\n )}\n\n {wardrobeData?.length == 0 && (\n <div className=\"flex flex-col justify-start mt-[100px] items-center gap-4 overflow-hidden\">\n <img className=\"w-[68px] h-[68px]\" src={hangerImg} alt=\"hanger\" />\n <p className=\"text-[14px] leading-[21px] font-semibold\">\n Waiting for New Styles\n </p>\n <p className=\"text-[14px] leading-[21px] font-medium text-[#7A7A7A]\">\n No Items are available at the moment\n </p>\n </div>\n )}\n </div>\n );\n};\n\nexport default ItemList;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-item-component\n *@developer Shubham K\n */\n\nimport React from \"react\";\nimport topwearImg from \"assets/images/topwear_item.png\";\nimport bottomwearImg from \"assets/images/bottomwear_item.png\";\nimport suitImg from \"assets/images/suit_item.png\";\n\nconst ItemPreviewIcon = ({ img, type = \"\", onClickReplace }) => {\n const onClickHandler = () => {\n onClickReplace(type);\n };\n\n let defaultImg = topwearImg;\n if (type == \"bottomwear\") {\n defaultImg = bottomwearImg;\n }\n if (type.includes(\"suit\")) {\n defaultImg = suitImg;\n }\n\n return (\n <div className=\"relative h-[113px] w-[113px] bg-[#332D23] rounded-lg transition-transform hover:scale-105\">\n <img\n className=\"h-full w-full object-contain rounded-lg\"\n src={img}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = defaultImg;\n }}\n alt=\"\"\n />\n <div\n className=\"absolute bottom-0 left-0 w-full text-center text-[14px] py-1 px-2 bg-[#2E281F]/70 font-bold text-[#fbbc5e] cursor-pointer rounded-b-lg filter hover:brightness-125\"\n onClick={onClickHandler}\n >\n Replace\n </div>\n </div>\n );\n};\n\nexport default ItemPreviewIcon;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module RotateItemPopup\n *@developer Shubham K\n */\n\nimport PopupWrapper from \"components/popup/PopupWrapper\";\nimport React from \"react\";\nimport BgImg from \"assets/images/avt_customize_success.png\";\n\nconst Success = ({ open, onClose, canClose }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"h-[572px] max-h-[calc(100vh-170px)] border border-white/30 rounded-lg\">\n <div className=\"h-[46%] w-full rounded-t-lg\">\n <img\n className=\"w-full h-full object-cover rounded-t-lg\"\n src={BgImg}\n alt=\"success_img\"\n />\n </div>\n <div className=\"h-[54%] p-4 bg-[#2C2C2C] rounded-b-lg flex flex-col justify-evenly items-center\">\n <div>\n <svg\n className=\"mx-auto\"\n width=\"44\"\n height=\"44\"\n viewBox=\"0 0 44 44\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M22 4C12.0589 4 4 12.0589 4 22C4 31.9412 12.0589 40 22 40C31.9412 40 40 31.9412 40 22C40 12.0589 31.9412 4 22 4ZM0 22C0 9.84974 9.84974 0 22 0C34.1502 0 44 9.84974 44 22C44 34.1502 34.1502 44 22 44C9.84974 44 0 34.1502 0 22ZM34.4142 13.5858C35.1952 14.3668 35.1952 15.6332 34.4142 16.4142L20.4142 30.4142C19.6332 31.1952 18.3668 31.1952 17.5858 30.4142L9.58578 22.4142C8.80474 21.6332 8.80474 20.3668 9.58578 19.5858C10.3668 18.8048 11.6332 18.8048 12.4142 19.5858L19 26.1716L31.5858 13.5858C32.3668 12.8047 33.6332 12.8047 34.4142 13.5858Z\"\n fill=\"#25B39E\"\n />\n </svg>\n </div>\n <p className=\" text-center text-[20px] leading-[25px] font-heading font-normal\">\n Avatar customization is Successful\n </p>\n <p className=\" text-center text-[16px] leading-[26.24px]\">\n Your Wardrobe Selection is Saved. Discover your full avatar look on\n Oculus!{\" \"}\n </p>\n <div className=\"\">\n <button\n className=\"block mx-auto text-[16px] font-bold py-[4px] px-[24px] lg:py-[8px] lg:px-[48px] rounded-[8px] border-[1px] border-[#fbbc5e] hover:bg-[#fbbc5e] hover:text-black\"\n type=\"button\"\n onClick={onClose}\n >\n Got It\n </button>\n </div>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default Success;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-wardrobe-component\n *@developer Shubham K\n */\n\nimport React, { useState, useContext } from \"react\";\nimport AvatarItem from \"./AvatarItem\";\nimport ItemPreviewIcon from \"./ItemPreviewIcon\";\nimport SuccessPopup from \"components/popup/MyAvatar/CustomizeSuccess/Success\";\nimport { WardrobeContext } from \"./WardrobeContextProvider\";\nimport {\n usePostEquipDefaultAvatarMutation,\n usePostWearAllItemsMutation,\n} from \"store/slicer/Iap\";\n\nimport AvatarImg from \"assets/images/avatar_full.png\";\nimport avt_thumb_1 from \"assets/images/avt_thumb_1.png\";\nimport topwearImg from \"assets/images/topwear_item.png\";\nimport bottomwearImg from \"assets/images/bottomwear_item.png\";\nimport suitImg from \"assets/images/suit_item.png\";\nimport Loader from \"components/Loader/Loader\";\n\nconst dummyItemsData = [\n {\n type: \"topwear\",\n img: topwearImg,\n },\n {\n type: \"bottomwear\",\n img: bottomwearImg,\n },\n {\n type: \"suits\",\n img: suitImg,\n },\n];\n\nconst PreviewTab = ({ type, onClickNext, onReplace }) => {\n const { selectedItems, isFetching, isError, setRefetchData } =\n useContext(WardrobeContext);\n\n const selectedAvatar = selectedItems.find(\n (item) => item.iapCategory == \"avatar\"\n );\n\n let otherSelectedItems = selectedItems.slice();\n otherSelectedItems = selectedItems.filter(\n (item) => item.iapCategory != \"avatar\"\n );\n\n const [showSuccessPopup, setShowSuccessPopup] = useState(false);\n\n const [postWearAllTrigger, postWearAllInfo] = usePostWearAllItemsMutation();\n const [postEquipDefaultAvatarTrigger, postEquipDefaultAvatarInfo] =\n usePostEquipDefaultAvatarMutation();\n\n const {\n isLoading: isSaving,\n isSuccess: isSaveSuccess,\n isError: isSaveError,\n } = postWearAllInfo;\n const {\n isLoading: isReseting,\n isSuccess: isResetSuccess,\n isError: isResetError,\n } = postEquipDefaultAvatarInfo;\n\n const onClickSave = async () => {\n let payload = {};\n\n selectedItems.forEach((item) => {\n if (item.iapCategory == \"avatar\") {\n payload[\"avatarId\"] = item.iapId;\n } else {\n let key;\n switch (item.iapType) {\n case \"topwear\":\n key = \"clothingIdTop\";\n break;\n case \"bottomwear\":\n key = \"clothingIdBottom\";\n break;\n case \"headwear\":\n key = \"clothingIdHead\";\n break;\n case \"footwear\":\n key = \"clothingIdFoot\";\n break;\n case \"suit\":\n key = \"clothingIdSuit\";\n break;\n case \"suits\":\n key = \"clothingIdSuit\";\n break;\n case \"accessory\":\n key = \"clothingIdAccessory\";\n break;\n }\n payload[key] = item.iapId;\n }\n });\n\n let res = await postWearAllTrigger(payload);\n\n if (res?.data?.response?.statusEnum == 1) {\n setShowSuccessPopup(true);\n setRefetchData((prev) => !prev);\n }\n };\n\n const onClickReset = async () => {\n const res = await postEquipDefaultAvatarTrigger();\n if (res?.data?.response?.statusEnum == 1) {\n setRefetchData((prev) => !prev);\n }\n };\n\n const onPopupClose = () => {\n setShowSuccessPopup(false);\n };\n\n if (isFetching) {\n return (\n <div className=\"h-full w-full border border-[#656565] rounded-lg grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n if (isError) {\n return (\n <div className=\"h-full w-full border border-[#656565] rounded-lg grid place-content-center\">\n <p className=\"text-white/50 font-bold\">Something went wrong</p>\n </div>\n );\n }\n\n return (\n <>\n {showSuccessPopup && (\n <SuccessPopup\n open={showSuccessPopup}\n onClose={onPopupClose}\n canClose={false}\n />\n )}\n <div className=\"h-full w-full border border-[#656565] rounded-lg overflow-y-scroll\">\n {type == \"avatar\" && (\n <div className=\"p-[27px] flex flex-col justify-start items-center gap-[40px]\">\n <p className=\"text-[16px] leading-[24px] font-bold text-center\">\n Your Avatar Selection\n </p>\n <p className=\"text-[14px] leading-[21px] font-medium text-center text-[#fbbc5e]\">\n Clothing items will be suggested based on the type of avatar you\n selected.\n </p>\n <div className=\"h-[346px] w-[302px] bg-cover bg-no-repeat bg-center\">\n <img\n className=\"h-full w-full object-cover\"\n src={selectedAvatar?.largeThumbnail || AvatarImg}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = AvatarImg;\n }}\n alt=\"avt-image\"\n />\n </div>\n <button\n className=\"btn-gradient py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] rounded-[8px] text-black text-[14px] lg:text-[16px] font-bold\"\n onClick={onClickNext}\n >\n Next\n </button>\n </div>\n )}\n {type != \"avatar\" && (\n <div className=\"h-full\">\n <div className=\"__ITEMS_CONTAINER__ p-[27px] h-[90%] overflow-y-scroll flex flex-col justify-start gap-[40px]\">\n <div className=\"__AVATAR_CONTAINER__\">\n <p className=\"text-[14px] leading-[21px] font-bold\">\n Your Avatar Selection\n </p>\n <div className=\"mt-2\" onClick={() => onReplace(\"avatar\")}>\n <AvatarItem\n img={selectedAvatar?.thumbnail}\n title={selectedAvatar?.iapName}\n isPreview={true}\n />\n </div>\n </div>\n <div className=\"__OTHER_ITEMS_CONTAINER__\">\n <p className=\"text-[14px] leading-[21px] font-bold\">\n Your Wardrobe Selection\n </p>\n <div className=\"__OTHER_ITEMS__ mt-4 flex justify-start items-center flex-wrap gap-4\">\n {otherSelectedItems.map((item, ind) => {\n return (\n <ItemPreviewIcon\n key={ind}\n img={item?.thumbnail}\n type={item.iapType}\n onClickReplace={(type) => {\n onReplace(type);\n }}\n />\n );\n })}\n </div>\n </div>\n </div>\n <div className=\"__BUTTONS_CONTAINER__ h-[10%] bg-black flex justify-end py-2 px-4 gap-4\">\n {!isSaving && !isReseting && (\n <>\n <button\n className=\"text-[16px] font-bold py-[4px] px-[24px] lg:py-[8px] lg:px-[48px] rounded-[8px] border-[1px] hover:bg-[#fbbc5e] hover:text-black disabled:bg-[grey] disabled:hover:border-[grey]\"\n type=\"button\"\n disabled\n // onClick={onClickReset}\n >\n Reset\n </button>\n <button\n className=\"btn-gradient py-[4px] px-[24px] lg:py-[8px] lg:px-[48px] rounded-[8px] text-black text-[14px] lg:text-[16px] font-bold\"\n onClick={onClickSave}\n disabled={isSaving}\n >\n Save Wardrobe\n </button>\n </>\n )}\n\n {(isSaving || isReseting) && (\n <button\n className=\"btn-gradient py-[4px] px-[24px] lg:py-[8px] lg:px-[48px] rounded-[8px] text-black text-[14px] lg:text-[16px] font-bold\"\n disabled\n >\n <svg\n className=\"animate-spin mx-auto h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n </>\n );\n};\n\nexport default PreviewTab;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-wardrobe-component\n *@developer Shubham K\n */\n\nimport React, { useState } from \"react\";\nimport avatar_icon from \"assets/images/avatar.png\";\nimport topwear_icon from \"assets/images/top.png\";\nimport bottomwear_icon from \"assets/images/bottom.png\";\nimport suit_icon from \"assets/images/suit.png\";\nimport hat_icon from \"assets/images/hat.png\";\nimport shoe_icon from \"assets/images/shoe.png\";\nimport glasses_icon from \"assets/images/glasses.png\";\nimport SideNavIcon from \"./components/SideNavIcon\";\nimport ItemList from \"./components/ItemList\";\nimport PreviewTab from \"./components/PreviewTab\";\n\nimport WardrobeContextProvider from \"./components/WardrobeContextProvider\";\n\nconst tabs_list = [\n {\n title: \"avatar\",\n img: avatar_icon,\n },\n {\n title: \"topwear\",\n img: topwear_icon,\n },\n {\n title: \"bottomwear\",\n img: bottomwear_icon,\n },\n {\n title: \"suits\",\n img: suit_icon,\n },\n {\n title: \"headwear\",\n img: hat_icon,\n },\n {\n title: \"footwear\",\n img: shoe_icon,\n },\n {\n title: \"accessories\",\n img: glasses_icon,\n },\n];\n\nconst Wardrobe_New = () => {\n const [selectedTab, setSelectedTab] = useState(\"avatar\");\n\n return (\n <WardrobeContextProvider>\n <div className=\"mt-[20px] flex gap-4 justify-start flex-col lg:flex-row\">\n <div className=\"__NAV_ICONS_AND_LISTING_CONTAINER__ flex gap-4 w-full lg:w-1/2\">\n <div className=\"__NAV_ICONS_CONTAINER__ flex flex-col justify-start items-center gap-2\">\n {tabs_list.map((item) => (\n <SideNavIcon\n key={item.title}\n onClickHandler={() => {\n setSelectedTab(item.title);\n }}\n img={item.img}\n selected={selectedTab == item.title}\n />\n ))}\n </div>\n <div className=\"__ITEMS_LISTING_CONTAINER__ h-[600px] w-full\">\n <ItemList type={selectedTab} />\n </div>\n </div>\n\n <div className=\"__PREVIEW_CONTAINER__ max-lg:self-end w-[calc(100%-81px)] lg:w-1/2 h-[600px]\">\n <PreviewTab\n type={selectedTab}\n onClickNext={() => setSelectedTab(\"topwear\")}\n onReplace={(type = \"topwear\") => {\n setSelectedTab(type);\n }}\n />\n </div>\n </div>\n </WardrobeContextProvider>\n );\n};\n\nexport default Wardrobe_New;\n","import React from \"react\";\nimport { useState } from \"react\";\nimport Wardrobe from \"./wardrobe/Wardrobe\";\nimport CustomizeAvatar from \"./customize/CustomizeAvatar\";\nimport Wardrobe_New from \"./wardrobe/Wardrobe_New\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-Home-Component\n *@developer Aditya P\n */\n\nconst AvatarTabs = [\n {\n id: 0,\n key: \"wardrobe\",\n name: \"Wardrobe\",\n isComing: false,\n },\n {\n id: 0,\n key: \"customize\",\n name: \"Customize look\",\n isComing: true,\n },\n];\n\nconst MyAvatarHome = () => {\n const [CurrentavatarTab, setavatarTab] = useState({\n id: 0,\n key: \"wardrobe\",\n name: \"Wardrobe\",\n isComing: false,\n });\n\n return (\n <div\n data-testid=\"my-avatarHome-main\"\n className=\"__myavatar_container_main px-[15px] py-[35px] flex flex-col max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\"\n >\n <div className=\"__myavatar__tabs__container w-max max-[768px]:w-full max-[768px]:pt-[20px]\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[15px]\">\n My avatar\n </h4>\n <p className=\"font-body text-[16px] pt-[14px] text-[#FFFFFFB2] max-[768px]:text-[13px]\">\n Elevate Your Style: Personalize Your Avatar's look and wardrobe.\n </p>\n\n <div className=\"__tabs__container pt-[35px] max-[768px]:pt-[25px] border-b-[1px] border-[#383838] relative z-10\">\n <ul className=\"flex gap-6\">\n {AvatarTabs.map((tab) => {\n return (\n <li\n onClick={() => setavatarTab(tab)}\n key={tab?.key}\n className={`hover:cursor-pointer text-[16px] max-[768px]:text-[13px] font-medium ${\n CurrentavatarTab?.key === tab?.key\n ? \"border-[#F3A151] transition-all\"\n : \"text-[#7A7A7A] border-transparent border-b-0 transition-all\"\n } border-b-[2px] font-body px-[10px]`}\n >\n {tab?.name}{\" \"}\n {tab?.isComing ? (\n <span className=\"text-[#F3A151] text-[14px] max-[768px]:text-[11px]\">\n Coming Soon\n </span>\n ) : (\n <></>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n\n <div className=\"__tabs__contents__container w-full\">\n {CurrentavatarTab?.key === \"wardrobe\" && <Wardrobe_New />}\n {/* {CurrentavatarTab?.key === \"wardrobe\" && <Wardrobe />} */}\n {CurrentavatarTab?.key === \"customize\" && <CustomizeAvatar />}\n </div>\n </div>\n );\n};\n\nexport default MyAvatarHome;\n","import React from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { EntertainmentCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\n\nconst VolumetricVideo = ({ item }) => {\n console.log(\"rec\", item);\n const filterVolumetricData = item?.filter((vitem) => {\n return vitem?.content_type === \"volumetric-video\";\n });\n\n console.log(\"filtered\", filterVolumetricData);\n\n return (\n <>\n {filterVolumetricData?.length === 0 ? (\n <div class=\"__explore_default_button h-[500px] w-full grid place-content-center\">\n <Explore />\n </div>\n ) : (\n <>\n {\" \"}\n <h2 className=\"mb-4 text-white text-[24px] leading-[36px] font-heading\">\n Volumetric Videos\n </h2>\n <div className=\"w-full flex justify-between gap-[20px] gap-y-[32px] flex-wrap\">\n {filterVolumetricData?.map((_vitem) => {\n return (\n <div key={_vitem?.content_id} className=\"w-full lg:w-[48%]\">\n {\" \"}\n <AssetCardOpen\n baseRoute={`/marketplace/entertainment/content/${_vitem?.content_type}`}\n channelID={_vitem?.content_data?.channel.channelHandle}\n contentID={_vitem?.content_data.contentSlug}\n image={_vitem?.content_data?.thumbnail}\n name=\"\"\n title={_vitem?.content_data?.contentName}\n subtitleButton=\"Watch in VR\"\n cardClass={EntertainmentCardClass}\n />\n </div>\n );\n })}\n </div>\n </>\n )}\n </>\n );\n};\n\nexport default VolumetricVideo;\n","import React from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\nimport Explore from \"components/Explore/Explore\";\n\nconst EntertainmentCardClass = {\n cardMainclass:\n \"w-full min-h-[136px] mb-[30px] hover:cursor-pointer hover:scale-[1.024] transition duration-300 ease-in-out max-[768px]:w-[100%] max-[768px]:p-0\",\n cardMediaClass:\n \"w-[100%] flex justify-center items-center text-center min-h-[136px] rounded-[10px] aspect-[456/239] relative rounded-2xl bg-[#2B2B2B] mb-2.5 bg-center bg-cover\",\n cardtitleClass:\n \"py-[12px] font-body text-[14px] font-light pl-[6px] max-[768px]:text-[13px]\",\n cardButtonclass:\n \"pl-[6px] [&>img]:w-[23px] gap-[10px] flex font-bold bg-[#FBBC5E0D] px-[15px] py-[7px] rounded-[8px] text-center text-[15px] hover:shadow-[0_0_3px_1px_rgba(251,188,94,0.47)] hover:border-[#FBBC5E] max-[768px]:text-[13px]\",\n};\n\nconst Music = ({ item }) => {\n const filtermusicData = item?.filter((vitem) => {\n return vitem?.content_type === \"music\";\n });\n\n return (\n <>\n {filtermusicData.length === 0 ? (\n <div class=\"__explore_default_button h-[500px] w-full grid place-content-center\">\n <Explore />\n </div>\n ) : (\n <>\n {\" \"}\n <h2 className=\"mb-4 text-white text-[24px] leading-[36px] font-heading\">\n Music\n </h2>\n <div className=\"w-full flex justify-between gap-[20px] gap-y-[32px] flex-wrap\">\n {filtermusicData?.map((_vitem) => {\n return (\n <div key={_vitem?.content_id} className=\"w-full lg:w-[30%]\">\n <AssetCardOpen\n key={_vitem?.content_id}\n Mkey={\"music\"}\n baseRoute={`/marketplace/entertainment/content/${_vitem?.content_type}`}\n channelID={_vitem?.content_data?.channel.channelHandle}\n contentID={_vitem?.content_data.contentSlug}\n image={_vitem?.content_data?.thumbnail}\n name=\"\"\n title={_vitem?.content_data?.contentName}\n subtitleButton=\"Watch in VR\"\n cardClass={EntertainmentCardClass}\n />\n </div>\n );\n })}\n </div>\n </>\n )}\n </>\n );\n};\n\nexport default Music;\n","import React from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { EntertainmentCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Entertainment-2D-video\n *@developer Aditya P\n */\n\nconst _2DVideo = ({ item }) => {\n const filter2DData = item?.filter((vitem) => {\n return vitem?.content_type === \"2D-video\";\n });\n return (\n <>\n {filter2DData.length === 0 ? (\n <div class=\"__explore_default_button h-[500px] w-full grid place-content-center\">\n <Explore />\n </div>\n ) : (\n <>\n <h2 className=\"mb-4 text-white text-[24px] leading-[36px] font-heading\">\n 2D Videos\n </h2>\n <div className=\"w-full flex justify-between gap-[20px] gap-y-[32px] flex-wrap\">\n {filter2DData?.map((_vitem) => {\n return (\n <div key={_vitem?.content_id} className=\"w-full lg:w-[48%]\">\n {\" \"}\n <AssetCardOpen\n baseRoute={`/marketplace/entertainment/content/${_vitem?.content_type}`}\n channelID={_vitem?.content_data?.channel.channelHandle}\n contentID={_vitem?.content_data.contentSlug}\n image={_vitem?.content_data?.thumbnail}\n name=\"\"\n title={_vitem?.content_data?.contentName}\n subtitleButton=\"Watch in VR\"\n cardClass={EntertainmentCardClass}\n />\n </div>\n );\n })}\n </div>\n </>\n )}\n </>\n );\n};\n\nexport default _2DVideo;\n","import React from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { EntertainmentCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Entertainment-360-video\n *@developer Aditya P\n */\n\nconst _360Video = ({ item }) => {\n const filter360Data = item?.filter((vitem) => {\n return vitem?.content_type === \"360-video\";\n });\n\n return (\n <>\n {filter360Data?.length === 0 ? (\n <div class=\"__explore_default_button h-[500px] w-full grid place-content-center\">\n <Explore />\n </div>\n ) : (\n <>\n {\" \"}\n <h2 className=\"mb-4 text-white text-[24px] leading-[36px] font-heading\">\n 360 Videos\n </h2>\n <div className=\"w-full flex justify-between gap-[20px] gap-y-[32px] flex-wrap\">\n {filter360Data?.map((_vitem) => {\n return (\n <div key={_vitem?.content_id} className=\"w-full lg:w-[48%]\">\n {\" \"}\n <AssetCardOpen\n baseRoute={`/marketplace/entertainment/content/${_vitem?.content_type}`}\n channelID={_vitem?.content_data?.channel.channelHandle}\n contentID={_vitem?.content_data.contentSlug}\n image={_vitem?.content_data?.thumbnail}\n name=\"\"\n title={_vitem?.content_data?.contentName}\n subtitleButton=\"Watch in VR\"\n cardClass={EntertainmentCardClass}\n />\n </div>\n );\n })}\n </div>\n </>\n )}\n </>\n );\n};\n\nexport default _360Video;\n","import React from \"react\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport { EntertainmentCardClass } from \"constant\";\nimport Explore from \"components/Explore/Explore\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Entertainment-180-video\n *@developer Aditya P\n */\n\nconst _180Video = ({ item }) => {\n const filter180Data = item?.filter((vitem) => {\n return vitem?.content_type === \"180-video\";\n });\n return (\n <>\n {filter180Data.length === 0 ? (\n <div class=\"__explore_default_button h-[500px] w-full grid place-content-center\">\n <Explore />\n </div>\n ) : (\n <>\n {\" \"}\n <h2 className=\"mb-4 text-white text-[24px] leading-[36px] font-heading\">\n 180 Videos\n </h2>\n <div className=\"w-full flex justify-between gap-[20px] gap-y-[32px] flex-wrap\">\n {filter180Data?.map((_vitem) => {\n return (\n <div key={_vitem?.content_id} className=\"w-full lg:w-[48%]\">\n {\" \"}\n <AssetCardOpen\n baseRoute={`/marketplace/entertainment/content/${_vitem?.content_type}`}\n channelID={_vitem?.content_data?.channel.channelHandle}\n contentID={_vitem?.content_data.contentSlug}\n image={_vitem?.content_data?.thumbnail}\n name=\"\"\n title={_vitem?.content_data?.contentName}\n subtitleButton=\"Watch in VR\"\n cardClass={EntertainmentCardClass}\n />\n </div>\n );\n })}\n </div>\n </>\n )}\n </>\n );\n};\n\nexport default _180Video;\n","import React from \"react\";\nimport SubscribeImg from \"assets/images/myassets/EARTH CITY.png\";\nimport Explore from \"components/Explore/Explore\";\nimport dateFormat from \"dateformat\";\n\nconst Subscription = ({ item }) => {\n console.log(\"ittems\", item);\n const isSubscribe = true;\n return (\n <>\n {item && item.length > 0 ? (\n <>\n {item?.map((_vitem) => {\n return (\n <>\n <div className=\"__subscription_main_container w-[100%] mt-[60px] max-[768px]:mt-[40px] mb-[20px] max-[768px]:p-0\">\n <div className=\"__subscribe__main__list__container\">\n <div className=\"__subscribe_list flex pl-[10px]\">\n <img\n src={_vitem.channelThumbnail || SubscribeImg}\n alt=\"subscribeIMG\"\n className=\"rounded-[50%] max-[768px]:mt-[10px] w-[55px] h-[55px] max-[768px]:w-[40px] max-[768px]:h-[40px]\"\n />\n <div className=\"pl-[20px] mt-[4px] max-[768px]:pl-[10px] max-[768px]:mt-[8px] max-[1280px]:mt-[15px]\">\n <h5 className=\"__list_title text-[16px] max-[768px]:text-[12px]\">\n {_vitem.channelName}{\" \"}\n <a\n href={`/marketplace/entertainment/channels/${_vitem?.channelHandle}`}\n className=\"text-[12px] pl-[10px] text-[#FBBC5E] hover:underline hover:cursor-pointer max-[768px]:text-[8px] max-[768px]:p-0\"\n >\n Go to channel\n </a>\n </h5>\n <p className=\"__list__subtitle text-[13px] text-[grey] max-[768px]:text-[7px]\">\n Subscription renews on{\" \"}\n {dateFormat(_vitem?.endDate * 1000, \"mmmm dd, yyyy\")}\n </p>\n </div>\n </div>\n </div>\n </div>\n <div className=\"w-[100%] mt-[30px] h-[2px] max-[768px]:pl-[15px] max-[768px]:mt-[15px]\">\n <hr className=\"border-[0.1px] border-[#5A5A5A80]\" />\n </div>\n </>\n );\n })}\n </>\n ) : (\n <div\n data-testid=\"explore-default-button\"\n class=\"__explore_default_button mt-12 flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\"\n >\n <Explore />\n {/* <Loader/> */}\n </div>\n )}\n </>\n );\n};\n\nexport default Subscription;\n","import React, { useEffect, useState } from \"react\";\nimport {\n VolumetricVideo,\n _180Video,\n _2DVideo,\n _360Video,\n Music,\n Subscription,\n} from \"./components/index\";\nimport { useGetSingleUserAssetsByTokenQuery,useGetSingleUserSubscribedChannelQuery } from \"store/slicer/userProfile\";\nimport Loader from \"components/Loader/Loader\";\n\nconst myAssetsTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"volumetric-videos\",\n name: \"Volumetric Videos\",\n children: null,\n component: <VolumetricVideo />,\n },\n {\n id: 1,\n parentId: 0,\n key: \"360-videos\",\n name: \"360 Videos\",\n children: null,\n component: <_360Video />,\n },\n {\n id: 2,\n parentId: 0,\n key: \"180-videos\",\n name: \"180 Videos\",\n children: null,\n component: <_180Video />,\n },\n {\n id: 3,\n parentId: 0,\n key: \"2d-videos\",\n name: \"2D Videos\",\n children: null,\n component: <_2DVideo />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"music\",\n name: \"Music\",\n children: null,\n component: <Music />,\n },\n {\n id: 5,\n parentId: 0,\n key: \"channels\",\n name: \"Channel Subscription\",\n children: null,\n component: <Subscription />,\n },\n];\n\nconst MyContentsHome = () => {\n const [activeTabs, setActivetab] = useState({\n id: 0,\n parentId: 0,\n key: \"volumetric-videos\",\n name: \"Volumetric Video\",\n children: [],\n component: <VolumetricVideo />,\n });\n\n const { data, isLoading, error } = useGetSingleUserAssetsByTokenQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const userAssets = !isLoading && data?.response?.statusEnum === 1 && data?.response?.errorCode === 0 \n ? data?.response?.data \n : [];\n const { data:subscribeData, isLoading:subscribeIsLoading, error:subscribeError } = \n useGetSingleUserSubscribedChannelQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n\n\n useEffect(() => {\n if (!isLoading && data?.response?.statusEnum == 1) {\n setActivetab({\n id: 0,\n parentId: 0,\n key: \"volumetric-videos\",\n name: \"Volumetric Video\",\n children: [],\n component: <VolumetricVideo item={userAssets} />,\n });\n }\n }, [isLoading]);\n\n const handleClickAsset = (tabs) => {\n switch (tabs.key) {\n case \"volumetric-videos\":\n setActivetab({\n ...tabs,\n component: <VolumetricVideo item={userAssets} />,\n });\n break;\n case \"360-videos\":\n setActivetab({\n ...tabs,\n component: <_360Video item={userAssets} />,\n });\n break;\n case \"180-videos\":\n setActivetab({\n ...tabs,\n component: <_180Video item={userAssets} />,\n });\n break;\n\n case \"2d-videos\":\n setActivetab({\n ...tabs,\n component: <_2DVideo item={userAssets} />,\n });\n break;\n case \"music\":\n setActivetab({\n ...tabs,\n component: <Music item={userAssets} />,\n });\n break;\n case \"channels\":\n setActivetab({\n ...tabs,\n component: <Subscription item={subscribeData?.response?.data} />,\n });\n break;\n default:\n setActivetab({\n ...tabs,\n component: <VolumetricVideo item={userAssets} />,\n });\n }\n };\n\n if (isLoading) {\n return (\n <div className=\"h-[500px] w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n return (\n <div\n data-testid=\"my-assetsHome-main\"\n className=\"__myassets_container_main px-[15px] py-[35px] flex max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\"\n >\n <div\n data-testid=\"myAssets-category-main\"\n className=\"__assets_category_panel w-[20%] py-[20px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\"\n >\n <h5 className=\"text-[grey] font-body font-bold tracking-[1px] max-[768px]:hidden\">\n My Entertainment\n </h5>\n <ul\n className=\"overflow-y-scroll\n relative\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n max-[768px]:text-[11px]\n \"\n >\n {myAssetsTabs?.map((tabs, index) => {\n return (\n <li\n key={tabs.key}\n className={`hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n } whitespace-nowrap`}\n onClick={() => handleClickAsset(tabs)}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n\n <div className=\"__assets_tabs_container_panel w-[80%] p-[10px] max-[768px]:w-auto max-[768px]:h-auto max-[768px]:mt-[18px]\">\n {activeTabs.component}\n </div>\n </div>\n );\n};\nexport default MyContentsHome;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Event-Card\n *@developer Shubham K\n */\n\nimport { Link } from \"react-router-dom\";\nimport CoinImage from \"assets/images/coin_dollar.png\";\nimport card1 from \"assets/images/event_card_1.png\";\n\nconst MyEventCard = ({ data }) => {\n const {\n id,\n type,\n title,\n channelName,\n dateAndTime,\n location,\n price,\n imgUrl,\n isCarousel = false,\n dateOnly,\n } = data;\n\n let chipText = \"Volumetric\";\n\n if (type?.includes(\"180\")) {\n chipText = \"180\";\n } else if (type?.includes(\"vol\")) {\n chipText = \"Volumetric\";\n } else if (type?.includes(\"360\")) {\n chipText = \"360\";\n }\n\n let eventText = \"Expo Dome\";\n\n if (type?.includes(\"180\")) {\n eventText = \"180 Lounge\";\n } else if (type?.includes(\"vol\")) {\n eventText = \"Expo Dome\";\n } else if (type?.includes(\"360\")) {\n eventText = \"360 Lounge\";\n }\n return (\n <div\n className={`__MAIN_CONTAINER__ block w-full ${\n isCarousel ? \"max-w-[360px] 2xl:max-w-[404px]\" : \" lg:max-w-[48%]\"\n } ${isCarousel ? \"\" : \"hover:scale-105\"} transition-transform`}\n >\n <div className=\"\">\n <div\n className={`__BANNER_IMAGE_CONT__ relative h-[256px] !bg-cover !bg-no-repeat rounded-tl-lg rounded-tr-lg`}\n // style={{\n // background: `url('${imgUrl}')`,\n // }}\n >\n <img\n className=\"absolute top-0 left-0 w-full h-full object-cover rounded-tl-lg rounded-tr-lg\"\n src={imgUrl}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = card1;\n }}\n alt=\"event-thumb\"\n />\n <span className=\"absolute top-[12px] right-[12px] rounded-[4px] py-[10px] px-[13px] bg-[rgba(67,67,67,0.40)] backdrop:blur-[10px] text-[12px] font-bold\">\n {chipText} Event\n </span>\n </div>\n <div className=\"__CONTENT_DETAIL_CONTAINER__ px-[16px] pt-[16px] pb-[32px] bg-[rgba(255,255,255,0.04)] rounded-bl-lg rounded-br-lg\">\n <p className=\"__TITLE__ text-[18px] font-bold leading-[27px]\">\n {title}\n </p>\n <p className=\"__HOSTED_BY__ mt-[8px] text-white/70 text-[14px] font-semibold leading-[21px]\">\n Hosted by {channelName}\n </p>\n <div className=\"__DATE_TIME__ mt-[13px] flex items-center gap-[6px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n {\" \"}\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.4 4.4H20V3.2C20 2.88174 19.8736 2.57652 19.6485 2.35147C19.4235 2.12643 19.1183 2 18.8 2C18.4817 2 18.1765 2.12643 17.9515 2.35147C17.7264 2.57652 17.6 2.88174 17.6 3.2V4.4H10.4V3.2C10.4 2.88174 10.2736 2.57652 10.0485 2.35147C9.82348 2.12643 9.51826 2 9.2 2C8.88174 2 8.57652 2.12643 8.35147 2.35147C8.12643 2.57652 8 2.88174 8 3.2V4.4H5.6C4.64522 4.4 3.72955 4.77928 3.05442 5.45442C2.37928 6.12955 2 7.04522 2 8V22.4C2 23.3548 2.37928 24.2705 3.05442 24.9456C3.72955 25.6207 4.64522 26 5.6 26H22.4C23.3548 26 24.2705 25.6207 24.9456 24.9456C25.6207 24.2705 26 23.3548 26 22.4V8C26 7.04522 25.6207 6.12955 24.9456 5.45442C24.2705 4.77928 23.3548 4.4 22.4 4.4ZM23.6 22.4C23.6 22.7183 23.4736 23.0235 23.2485 23.2485C23.0235 23.4736 22.7183 23.6 22.4 23.6H5.6C5.28174 23.6 4.97652 23.4736 4.75147 23.2485C4.52643 23.0235 4.4 22.7183 4.4 22.4V14H23.6V22.4ZM23.6 11.6H4.4V8C4.4 7.68174 4.52643 7.37652 4.75147 7.15147C4.97652 6.92643 5.28174 6.8 5.6 6.8H8V8C8 8.31826 8.12643 8.62348 8.35147 8.84853C8.57652 9.07357 8.88174 9.2 9.2 9.2C9.51826 9.2 9.82348 9.07357 10.0485 8.84853C10.2736 8.62348 10.4 8.31826 10.4 8V6.8H17.6V8C17.6 8.31826 17.7264 8.62348 17.9515 8.84853C18.1765 9.07357 18.4817 9.2 18.8 9.2C19.1183 9.2 19.4235 9.07357 19.6485 8.84853C19.8736 8.62348 20 8.31826 20 8V6.8H22.4C22.7183 6.8 23.0235 6.92643 23.2485 7.15147C23.4736 7.37652 23.6 7.68174 23.6 8V11.6Z\"\n fill=\"#CEC9C5\"\n />\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[14px] font-bold leading-[21px]\">\n {dateAndTime}\n </p>\n </div>\n <div className=\"__LOCATION__ mt-[13px] flex items-center gap-[6px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n {\" \"}\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_3707_10888)\">\n <path\n d=\"M22.043 20.2733L15.8568 26.4554C15.613 26.6991 15.3235 26.8924 15.0049 27.0243C14.6864 27.1562 14.3449 27.2241 14 27.2241C13.6552 27.2241 13.3137 27.1562 12.9951 27.0243C12.6765 26.8924 12.387 26.6991 12.1433 26.4554L5.95702 20.2733C4.90068 19.2181 4.06272 17.9654 3.491 16.5867C2.91927 15.2079 2.62496 13.7302 2.62488 12.2378C2.6248 10.7455 2.91894 9.26771 3.49052 7.88891C4.0621 6.51012 4.89992 5.25729 5.95614 4.20197C7.01236 3.14666 8.2663 2.30951 9.64637 1.73833C11.0264 1.16715 12.5056 0.873128 13.9994 0.873047C15.4932 0.872966 16.9724 1.16683 18.3525 1.73786C19.7326 2.30889 20.9867 3.1459 22.043 4.2011C23.0994 5.25637 23.9375 6.5092 24.5092 7.88805C25.0809 9.26689 25.3752 10.7448 25.3752 12.2372C25.3752 13.7297 25.0809 15.2076 24.5092 16.5864C23.9375 17.9653 23.0994 19.2181 22.043 20.2733ZM20.188 6.05606C19.3754 5.24422 18.4107 4.60024 17.3489 4.16088C16.2872 3.72151 15.1492 3.49538 14 3.49538C12.8508 3.49538 11.7128 3.72151 10.6511 4.16088C9.58936 4.60024 8.62464 5.24422 7.81202 6.05606C6.9994 6.8679 6.35479 7.83169 5.915 8.8924C5.47522 9.95312 5.24886 11.09 5.24886 12.2381C5.24886 13.3862 5.47522 14.5231 5.915 15.5838C6.35479 16.6445 6.9994 17.6083 7.81202 18.4201L14 24.5987L20.188 18.4201C21.0008 17.6084 21.6455 16.6446 22.0854 15.5839C22.5252 14.5232 22.7516 13.3863 22.7516 12.2381C22.7516 11.0899 22.5252 9.95304 22.0854 8.89231C21.6455 7.83159 21.0008 6.86782 20.188 6.05606ZM14 15.7347C13.5339 15.7453 13.0704 15.6627 12.6367 15.4918C12.203 15.3209 11.8079 15.0651 11.4745 14.7396C11.1411 14.414 10.8761 14.0252 10.6952 13.5959C10.5143 13.1667 10.421 12.7056 10.4209 12.2399C10.4208 11.7741 10.5138 11.313 10.6945 10.8837C10.8752 10.4543 11.14 10.0654 11.4732 9.73963C11.8065 9.4139 12.2015 9.15797 12.6351 8.98687C13.0687 8.81576 13.5322 8.73292 13.9983 8.74322C14.9127 8.76342 15.783 9.14048 16.4227 9.79367C17.0624 10.4469 17.4207 11.3243 17.4209 12.2381C17.4211 13.1519 17.0632 14.0295 16.4239 14.6831C15.7845 15.3366 14.9145 15.7141 14 15.7347Z\"\n fill=\"white\"\n fillOpacity=\"0.7\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3707_10888\">\n <rect width=\"28\" height=\"27.973\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[14px] font-bold leading-[21px]\">\n {eventText}\n </p>\n </div>\n <div className=\"__PRICE__ mt-[13px] flex items-center gap-[9px]\">\n {/* <img src={CoinImage} className=\"w-[24px] h-[24px]\" alt=\"\" /> */}\n <p className=\"text-[12px] md:text-[14px] lg:text-[14px] text-[#706868] font-semibold leading-[30px]\">\n Tickets Purchased on {dateOnly}\n </p>\n </div>\n <Link\n to={`/marketplace/entertainment/event/${id}`}\n className=\"mt-[13px] block w-full border border-[#25B39E] rounded-[8px] text-white font-bold text-[16px] leading-[19.5px] text-center py-2 hover:bg-[#25B39E]\"\n >\n See Event Details\n </Link>\n </div>\n </div>\n </div>\n );\n};\n\nexport default MyEventCard;\n","import Explore from \"components/Explore/Explore\";\nimport React from \"react\";\n\nimport card5 from \"assets/images/event_card_5.png\";\nimport MyEventCard from \"./components/MyEventCard\";\nimport { useGetUserEventsListQuery } from \"store/slicer/Events\";\nimport Loader from \"components/Loader/Loader\";\nimport dateFormat from \"dateformat\";\n\nconst MyEventsHome = () => {\n let {\n data: userEventsData,\n isFetching: userEventsFetching,\n isError: userEventsError,\n isSuccess: userEventsDataAvailable,\n } = useGetUserEventsListQuery({\n refetchOnMountOrArgChange: true,\n });\n\n if (\n !userEventsFetching &&\n userEventsDataAvailable &&\n userEventsData.response.statusEnum == 1\n ) {\n userEventsData = userEventsData.response.data.data;\n } else {\n userEventsData = [];\n userEventsError = true;\n }\n\n if (userEventsFetching) {\n return (\n <div className=\"h-[500px] w-full grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n if (\n !userEventsFetching &&\n userEventsDataAvailable &&\n userEventsData?.length == 0\n ) {\n return (\n <div class=\"__explore_default_button h-[500px] w-full grid place-content-center\">\n <Explore />\n </div>\n );\n }\n\n let filteredEventsData = userEventsData?.map((item) => {\n let eventId = item.eventId;\n // item = item.eventDetails;\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: eventId,\n type: item?.eventDetails?.venueType,\n title: item?.eventDetails.name,\n channelName: item?.creatorDetails?.channelName,\n dateAndTime: dateFormat(\n item?.eventDetails.startTime,\n \"mmmm dd, yyyy, h:MM TT\"\n ),\n location: item?.eventDetails.venueName,\n price: item?.eventDetails.priceFiat,\n imgUrl: item?.eventDetails.promoBanner,\n dateOnly: dateFormat(item.createdAt, \"mmmm dd, yyyy\"),\n };\n });\n\n return (\n <div className=\"px-3 mb-16\">\n <h2 className=\"mt-8 mb-8 text-white text-[24px] leading-[36px] font-heading\">\n My Events\n </h2>\n <div className=\"w-full flex max-lg:justify-between justify-start flex-wrap gap-[20px] max-md:[&>div]:w-full max-lg:[&>div]:w-[48%] xl:[&>div]:max-w-[max(32%,407px)]\">\n {filteredEventsData.map((item) => (\n <MyEventCard key={item.id} data={item} />\n ))}\n </div>\n </div>\n );\n};\n\nexport default MyEventsHome;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module My-Order-Reducer-functions\n *@developer Amardeep Singh\n */\n\n// Handling State function or logics of my orders Module\n// Replace the CreateSlice method with RTK function - createAPI for storing api data directly into slicer\nexport const MyOrders = createApi({\n reducerPath: \"MyOrders\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n GetMyOrdersList: builder.query({\n query: ({ page, size }) => ({\n url: EndpointsSlug.GET_MY_ORDERS_ASSET,\n method: \"GET\",\n params: { page, size },\n }),\n }),\n GetMyOrderDetail: builder.query({\n query: ({ orderId }) => ({\n url: EndpointsSlug.GET_MY_ORDER_DETAIL,\n method: \"GET\",\n params: { orderId },\n }),\n }),\n RequestRefund: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.POST_REQUEST_REFUND,\n method: \"POST\",\n body: payload,\n }),\n }),\n CheckRefundStatus: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.CHECK_REFUND_STATUS,\n method: \"POST\",\n body: payload,\n }),\n }),\n }),\n});\n\nexport const {\n useGetMyOrdersListQuery,\n useGetMyOrderDetailQuery,\n useRequestRefundMutation,\n useCheckRefundStatusMutation,\n} = MyOrders;\n","import Swal from \"sweetalert2\";\n\nconst ErrorAlert = (errorMessage) => {\n const swalWithBootstrapButtons = Swal.mixin({\n customClass: {\n confirmButton: \"btn-primary\",\n cancelButton: \"btn-secondary\",\n },\n buttonsStyling: false,\n });\n swalWithBootstrapButtons.fire({\n icon: \"error\",\n html: `<b style='font-family:Montserrat !important;'>${errorMessage}</b>`,\n });\n};\n\nexport default ErrorAlert;\n","import Swal from \"sweetalert2\";\n\nconst SuccessAlert = (title) => {\n const swalWithBootstrapButtons = Swal.mixin({\n customClass: {\n confirmButton: \"btn-primary\",\n cancelButton: \"btn-secondary\",\n },\n buttonsStyling: false,\n });\n swalWithBootstrapButtons.fire({\n title: `${title}`,\n icon: \"success\",\n });\n};\n\nexport default SuccessAlert;\n","/* eslint-disable jsx-a11y/img-redundant-alt */\n\nimport React, { useState, useEffect } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport { useRequestRefundMutation } from \"store/slicer/MyOrders\";\nimport ErrorAlert from \"utils/errorAlert\";\nimport SuccessAlert from \"utils/successAlert\";\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Refund-Item-Modal\n *@developer Amardeep Singh\n */\n\n// order item modal component\nconst RefundItemModal = ({ cancelRefund, orderId, productDetail }) => {\n const [selectedOption, setSelectedOption] = useState(\"\");\n const [reportIssue, setReportIssue] = useState(false);\n const [disableRefund, setDisableRefund] = useState(true);\n const [addRequestRefund] = useRequestRefundMutation();\n const [reason, setReason] = useState(\"\");\n const [requestSubmit, setRequestSubmit] = useState(false);\n\n const handleRadioChange = (event) => {\n setSelectedOption(event.target.value);\n setDisableRefund(false);\n };\n\n const handleSubmit = async () => {\n setRequestSubmit(true);\n await addRequestRefund({\n gatewayTransactionId: orderId,\n productId: productDetail?.productId,\n productType: productDetail?.productType,\n userReasonForReturn: reason,\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n cancelRefund();\n SuccessAlert(\"Refund Request Successful\");\n } else {\n ErrorAlert(res?.data?.response?.message);\n }\n setRequestSubmit(false);\n })\n .catch((error) => {\n console.log(\"Error occured while requesting refund\", error);\n setRequestSubmit(false);\n ErrorAlert(error?.message);\n });\n };\n\n useEffect(() => {\n if (productDetail.productType === \"iap\") {\n setReportIssue(true);\n }\n }, []);\n\n return (\n <>\n {/* <div className=\"flex bg-[#00000099] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9998] outline-none focus:outline-none\">\n Overlay\n </div> */}\n <div\n data-testid=\"invite-friend-modal\"\n className=\"__invite_search_component hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\"\n >\n <div className=\"bg-[#2C2C2C] __modal__container w-[40%] max-[768px]:w-[100%] max-h-[400px] max-[1920px]:max-h-[500px] max-[768px]:h-auto max-[1280px]:w-[50%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"__modal_content_main my-[60px] px-[50px] mb-[20px] max-[768px]:p-0\">\n <div className=\"__modal_heading text-left \">\n <h4 className=\"font-heading text-[24px] \">\n Report Issues related to this item\n </h4>\n </div>\n <div className=\"mt-[40px] \">\n <label className=\"inline-flex items-center\">\n <input\n type=\"radio\"\n className=\"form-radio accent-[#FBBC5E] h-6 w-6\"\n value=\"option1\"\n checked={reportIssue ? true : selectedOption === \"option1\"}\n onChange={handleRadioChange}\n />\n <span className=\"ml-2\">Cancel and Refund this Item</span>\n </label>\n </div>\n {!reportIssue && (\n <>\n <div className=\"mt-[30px] flex justify-start items-center\">\n <p className=\"text-white/80 font-medium \">\n Explain the reason\n </p>\n </div>\n <textarea\n className=\"my-[10px] p-[15px] w-full bg-[transparent] rounded-[4px] border border-white/70 resize-none text-[14px] font-medium \"\n name=\"response\"\n value={reason}\n placeholder=\"Item was different from the product description.\"\n onChange={(e) => setReason(e.target.value)}\n ></textarea>\n <div className=\"my-[30px] \">\n <label className=\"flex items-center space-x-2\">\n {/* <input\n type=\"checkbox\"\n className=\"form-checkbox h-6 w-6 accent-[#FBBC5E] border border-[#1a1919] rounded-md\"\n /> */}\n <span className=\"text-white/50 font-medium\">\n Read\n <NavLink\n to=\"/refund-cancellation-policy\"\n className=\"ml-2 text-[#FBBC5E] underline \"\n >\n Refund & Cancellation Policy\n </NavLink>\n .\n </span>\n </label>\n </div>\n </>\n )}\n {reportIssue && (\n <>\n <div className=\"mt-[20px] flex justify-start items-center\">\n <p className=\"text-[#EC4134] font-bold \">\n Refunds are not available for this item.\n </p>\n </div>\n <div className=\"mt-[20px] flex justify-start items-center\">\n <p className=\"text-[#7A7A7A] font-medium \">\n Don't worry; you can still reach out to our team for\n assistance.\n </p>\n </div>\n <div className=\"my-[30px] \">\n <span className=\"text-white/50 font-medium\">\n Read{\" \"}\n <NavLink\n to=\"/refund-cancellation-policy\"\n className=\"ml-2 text-[#FBBC5E] underline \"\n >\n Refund & Cancellation Policy\n </NavLink>\n .\n </span>\n </div>\n </>\n )}\n\n <div className=\"my-6 text-[10px] md:text-[12px] xl:text-[16px] flex gap-x-5 \">\n <button\n className=\"px-2 md:px-4 lg:px-8 xl:px-12 py-3 text-center font-bold rounded-lg bg-[#7a7a7a] w-[50%] \"\n onClick={cancelRefund}\n >\n Cancel\n </button>\n {!reportIssue && (\n <button\n className=\"px-2 md:px-6 lg:px-8 xl:px-3 py-3 text-center text-[#000000] font-bold rounded-lg bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] w-[50%] \"\n disabled={disableRefund}\n onClick={handleSubmit}\n >\n {requestSubmit ? \"Requesting Refund ...\" : \"Request Refund\"}\n </button>\n )}\n {reportIssue && (\n <button\n className=\"px-2 md:px-6 lg:px-8 xl:px-3 py-3 text-center text-[#000000] font-bold rounded-lg bg-[#94764c] w-[50%] \"\n disabled\n >\n Request Refund\n </button>\n )}\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default RefundItemModal;\n","/* eslint-disable jsx-a11y/img-redundant-alt */\n\nimport React, { useState, useEffect } from \"react\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\n// import OrderItem from \"../../../assets/images/order-item.png\";\n// import OrderItem2 from \"../../../assets/images/order-item2.png\";\n// import OrderItem3 from \"../../../assets/images/order-item3.png\";\nimport { useGetMyOrderDetailQuery } from \"store/slicer/MyOrders\";\nimport Loader from \"components/Loader/Loader\";\nimport RefundItemModal from \"../RefundItem/RefundItemModal\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Order-Item-Modal\n *@developer Amardeep Singh\n */\n\n// order item modal component\nconst MyOrderItemModal = ({ handleModalStatus, orderId }) => {\n const { data, isLoading, refetch } = useGetMyOrderDetailQuery({ orderId });\n const [orderDetail, setOrderDetail] = useState([]);\n const [refundIssue, setRefundIssue] = useState(false);\n const [issueItem, setIssueItem] = useState(null);\n\n useEffect(() => {\n if (data?.response?.data?.products?.length) {\n setOrderDetail(data.response.data.products);\n }\n }, [data, orderId]);\n\n const cancelRefund = () => {\n setRefundIssue(false);\n refetch();\n };\n\n return (\n <>\n <div className=\"flex bg-[#00000099] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9990] outline-none focus:outline-none\">\n Overlay\n </div>\n <div\n data-testid=\"invite-friend-modal\"\n className=\"__invite_search_component hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\"\n >\n <div\n className={`${\n refundIssue ? \"bg-[#1f1d1d]\" : \"bg-[#2C2C2C]\"\n } __modal__container w-[45%] max-[768px]:w-[100%] max-h-[400px] max-[1920px]:max-h-[500px] max-[768px]:h-auto max-[1280px]:w-[50%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500 overflow-auto`}\n >\n <div className=\"__modal_close_icon_container flex justify-end p-[10px]\">\n <div\n onClick={handleModalStatus}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[20px] h-[20px]\"\n >\n <img\n src={ModalCloseIcon}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n <div className=\"__modal_content_main px-[35px] mb-[20px] max-[768px]:p-0\">\n <div className=\"__modal_heading text-left px-[10px]\">\n <h4 className=\"font-heading text-[20px] \">Order Items</h4>\n </div>\n {orderDetail.map((item, index) => {\n return (\n <div\n key={index}\n className=\"__input_group_main py-[18px] max-[768px]:p-0 max-[768px]:mt-[15px]\"\n >\n <div className=\"__transaction__table__content_main w-[100%] mt-[20px] overflow-x-scroll\">\n <table className=\"table-auto w-full\">\n <tbody>\n <tr\n className={`[&>td]:px-[10px] [&>td]:py-[15px] [&>td]:text-[14px] ${\n index === orderDetail.length - 1\n ? \"[&>td]:border-b-0 \"\n : \"[&>td]:border-b [&>td]:border-b-[#5A5A5A80]\"\n } flex `}\n >\n <td>\n <img\n src={\n item?.detailedProductInfo.thumbnail ||\n item?.detailedProductInfo?.smallThumbnail\n ?.url ||\n item?.detailedProductInfo.channelThumbnail ||\n item?.detailedProductInfo.promoBanner ||\n item.smallThumbnail?.url\n }\n alt=\"No Image\"\n className=\"w-[169px] h-[85px]\"\n />\n </td>\n <td className=\"mt-2 w-[40%]\">\n <div>\n {item.assetName ||\n item.contentName ||\n item.channelName ||\n item.name}\n </div>\n <div className=\"mt-1 text-[#d3c3c380]\">\n {item.productType}\n </div>\n </td>\n <td className=\"mt-2 text-center \">\n Price:{\" \"}\n {item?.amount?.$numberDecimal || item?.amount}{\" \"}\n {data?.response?.data?.currency}\n {!item.refund && (\n <p\n className=\"text-[10px] text-[#FBBC5E] font-semibold cursor-pointer \"\n onClick={() => {\n setRefundIssue(true);\n setIssueItem(item);\n }}\n >\n Any Issues with this Item?\n </p>\n )}\n {item.refund &&\n item?.refund?.adminApprovalStatus ===\n \"pending\" && (\n <p className=\"text-[12px] text-[#7A7A7A] font-semibold \">\n Refund request Initiated\n </p>\n )}\n {item.refund &&\n item?.refund?.adminApprovalStatus ===\n \"approved\" && (\n <p className=\"text-[12px] text-white/50 font-semibold \">\n Refund credited\n </p>\n )}\n {item.refund &&\n item?.refund?.adminApprovalStatus ===\n \"rejected\" && (\n <p className=\"text-[12px] text-white/50 font-semibold \">\n Refund rejected\n </p>\n )}\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n );\n })}\n {isLoading && orderDetail.length === 0 && (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n {refundIssue && (\n <RefundItemModal\n cancelRefund={cancelRefund}\n orderId={data?.response?.data?._id}\n productDetail={issueItem}\n />\n )}\n </>\n );\n};\n\nexport default MyOrderItemModal;\n","import React, { useState, useEffect } from \"react\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport MyOrderItemModal from \"components/Modal/MyOrderItem/MyOrderItemModal\";\nimport OrderCart from \"../../../assets/images/order-cart.png\";\nimport { useGetMyOrdersListQuery } from \"store/slicer/MyOrders\";\nimport Loader from \"components/Loader/Loader\";\nimport { useNavigate } from \"react-router-dom\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module My-Order-Home-Component\n *@developer Amardeep Singh\n */\n\n// Default Transaction Data\n// const UserTransaction = [\n// {\n// orderId: \"TRX987654321\",\n// totalAmount: \"24.00 STARS\",\n// time: \"12/10/2023, 12:39 PM\",\n// paymentMethod: \"FSTR\",\n// status: true,\n// action: null,\n// },\n// {\n// orderId: \"TRX987654321\",\n// totalAmount: \"24.00 USD\",\n// time: \"12/10/2023, 12:39 PM\",\n// paymentMethod: \"USD\",\n// status: false,\n// action: null,\n// },\n// {\n// orderId: \"TRX987654321\",\n// totalAmount: \"24.00 USD\",\n// time: \"12/10/2023, 12:39 PM\",\n// paymentMethod: \"USD\",\n// status: false,\n// action: null,\n// },\n// ];\n\nfunction formatDate(date) {\n // Extract individual components from the Date object\n var month = date.getMonth() + 1; // Months are zero-indexed, so we add 1\n var day = date.getDate();\n var year = date.getFullYear();\n var hours = date.getHours();\n var minutes = date.getMinutes();\n var period = hours >= 12 ? \"PM\" : \"AM\";\n\n // Convert hours to 12-hour format\n hours = hours % 12;\n hours = hours ? hours : 12; // Handle midnight (0 hours)\n\n // Format the date and time string\n var formattedDate =\n day +\n \"/\" +\n month +\n \"/\" +\n year +\n \", \" +\n hours +\n \":\" +\n (minutes < 10 ? \"0\" : \"\") +\n minutes +\n \" \" +\n period;\n\n return formattedDate;\n}\n\n// my-order component in assets section\nconst MyOrderHome = () => {\n const [isInviteModalStatus, setInviteModal] = useState(false);\n const [orderData, setOrderData] = useState([]);\n const [orderId, setOrderId] = useState(null);\n const [page, setPage] = useState(1);\n const navigate = useNavigate();\n const { data, isLoading, isFetching, refetch } = useGetMyOrdersListQuery({\n page: page,\n size: 10,\n });\n\n const [buttonStates, setButtonStates] = useState({});\n\n const handleInviteModal = () => {\n setInviteModal(!isInviteModalStatus);\n };\n\n const goToCheckoutPage = (orderId) => {\n console.log(\"Checkout page is called\");\n navigate(`/checkoutfstr`, {\n state: { orderId: orderId },\n });\n };\n\n useEffect(() => {\n const fetchStoredData = async () => {\n const states = {};\n for (const order of orderData) {\n const storedData = JSON.parse(\n await sessionStorage.getItem(`${order._id}`)\n );\n if (storedData) {\n const expireTime = storedData?.expiryTime;\n const currentTime = Date.now();\n if (currentTime > expireTime) {\n // Order expired, remove from storage\n sessionStorage.removeItem(`${order._id}`);\n } else {\n states[order._id] = storedData;\n }\n }\n }\n setButtonStates(states);\n };\n\n if (orderData?.length) fetchStoredData();\n }, [orderData]);\n\n const renderStatus = (orderId, status) => {\n const storedData = buttonStates[orderId]; // Check session data for this order\n if (storedData && status === \"await\") {\n return <span className=\"text-[#6bb0fa] font-medium\">Awaiting</span>;\n } else if (status === \"expired\") {\n return <span className=\"text-[#FF6458] font-medium\">Expired</span>;\n } else if (status === \"cancelled\") {\n return <span className=\"text-[#FF6458] font-medium\">Cancelled</span>;\n } else {\n return <span className=\"text-[#FBBC5E] font-medium\">Pending</span>;\n }\n };\n\n const renderOrderButton = (orderId, status) => {\n const storedData = buttonStates[orderId];\n if (storedData && status === \"await\") {\n return (\n <button\n className=\"border border-[#a5a3a3] text-[#6bb0fa] w-[98px] br-[8px] text-[12px] font-bold font-body rounded-[20px]\"\n onClick={() => goToCheckoutPage(orderId)}\n >\n Pay Now\n </button>\n );\n } else {\n return (\n <button\n className=\"border border-[#a5a3a3] w-[98px] br-[8px] text-[12px] font-bold font-body rounded-[20px]\"\n onClick={() => {\n setInviteModal(!isInviteModalStatus);\n setOrderId(orderId);\n }}\n >\n View Items\n </button>\n );\n }\n };\n\n useEffect(() => {\n if (page === 1) {\n if (data?.response?.data?.gateways?.length) {\n setOrderData(data.response.data.gateways);\n }\n } else {\n if (data?.response?.data?.gateways?.length) {\n setOrderData((prevData) => [\n ...prevData,\n ...data.response.data.gateways,\n ]);\n }\n }\n }, [data]);\n\n useEffect(() => {\n refetch();\n }, [page]);\n\n return (\n <div className=\"__my_transaction__container__main mb-[100px] container mx-auto px-[15px] py-[50px] max-[768px]:px-[15px] max-[768px]:py-[40px] max-[1280px]:px-[15px] relative\">\n <ShadowFrame className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <ShadowFrame className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <div className=\"__transaction__header__main relative\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[18px]\">\n My Orders\n </h4>\n </div>\n <div className=\"__transaction__content__main h-[90%] relative\">\n {!isLoading && orderData && orderData.length > 0 && (\n <div className=\"__transaction__table__content_main w-[100%] mt-[30px] overflow-x-scroll\">\n <table className=\"table-auto w-full\">\n <thead>\n <tr className=\"[&>th]:text-[#FFFFFF99] [&>th]:font-normal [&>th]:text-[12px] [&>th]:text-left [&>th]:px-[10px] [&>th]:py-[10px] [&>th]:border-b [&>th]:border-b-[#8d8a8a80]\">\n <th>Order ID</th>\n <th>Order Placed on</th>\n <th>Total Amount</th>\n <th>Payment method</th>\n <th>Status</th>\n <th>Action</th>\n </tr>\n </thead>\n <tbody>\n {orderData.map((_tr, index) => {\n return (\n <tr\n key={index}\n className=\"[&>td]:px-[10px] [&>td]:py-[18px] [&>td]:text-[14px] [&>td]:border-b [&>td]:border-b-[#5A5A5A80]\"\n >\n <td>{_tr?.orderID}</td>\n <td>{formatDate(new Date(_tr?.createdAt))}</td>\n <td>\n {_tr?.total_amount} {_tr?.currency}\n </td>\n <td>{_tr?.currency}</td>\n <td>\n {\n _tr?.status === \"success\" ? (\n <span className=\"text-[#56AA6D] font-medium\">\n Success\n </span>\n ) : (\n renderStatus(_tr?._id, _tr?.status)\n )\n // _tr?.status === \"pending\" ? (\n // <span className=\"text-[#FF6458] font-medium\">\n // Pending\n // </span>\n // ) : (\n // <span className=\"text-[#FF6458] font-medium\">\n // Failed\n // </span>\n // )\n }\n </td>\n <td>\n <td>{renderOrderButton(_tr?._id, _tr?.status)}</td>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )}\n {!isLoading && orderData.length === 0 && (\n <div className=\"__transaction__empty__container flex flex-col mt-[200px] items-center h-[100%] max-[768px]:justify-start max-[768px]:pt-[30px] max-[1280px]:pt-[30px] max-[1280px]:justify-start gap-3\">\n <img src={OrderCart} className=\"w-[60px] h-[60px]\" />\n <span className=\"text-[#FFFFFF99] text-[16px] font-medium font-body max-[768px]:text-[14px]\">\n No orders placed yet!\n </span>\n </div>\n )}\n {isFetching && (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n )}\n {data?.response?.data?.gateways?.length === 10 && (\n <div className=\"flex justify-center mt-[30px]\">\n <button\n onClick={() => setPage(page + 1)}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n </div>\n )}\n </div>\n\n {isInviteModalStatus ? (\n <MyOrderItemModal\n handleModalStatus={handleInviteModal}\n orderId={orderId}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default MyOrderHome;\n","import { MyIAPsHome } from \"components/assets/myassets\";\nimport { MyAvatarHome } from \"components/assets/myavatar\";\nimport { useEffect, useState } from \"react\";\nimport { AssetsParentTab } from \"constant\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport MyContentsHome from \"components/assets/mycontents/MyContentsHome\";\nimport MyEventsHome from \"components/assets/myevents/MyEventsHome\";\nimport MyOrderHome from \"components/assets/myorders/MyOrderHome\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-Assets-Component\n */\n\nconst MyAssets = () => {\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n const [parentActivetab, setParentActivetab] = useState({\n id: 0,\n activeTab: \"my-iaps\",\n });\n\n useEffect(() => {\n switch (searchParams.get(\"tab\")) {\n case \"1\":\n setParentActivetab({\n id: 1,\n activeTab: \"my-contents\",\n });\n break;\n case \"2\":\n setParentActivetab({\n id: 2,\n activeTab: \"my-events\",\n });\n break;\n case \"3\":\n setParentActivetab({\n id: 3,\n activeTab: \"my-avatar\",\n });\n break;\n\n case \"4\":\n setParentActivetab({\n id: 4,\n activeTab: \"my-orders\",\n });\n break;\n\n default:\n setParentActivetab({\n id: 0,\n activeTab: \"my-iaps\",\n });\n break;\n }\n }, [searchParams.get(\"tab\")]);\n\n return (\n // <div data-testid=\"my-assets-main\" className=\"__my_assets_main container mx-auto px-[80px] py-[25px] max-[768px]:px-[15px] max-[1280px]:px-0 bg-[#1D1D1D]\">\n <div\n data-testid=\"my-assets-main\"\n className=\"min-h-[calc(100vh-170px)] container app-container mx-auto px-2 md:px-3 xl:px-6 2xl:px-10 py-[25px] relative z-10\"\n >\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"pointer-events-none z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"pointer-events-none z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <div\n data-testid=\"parent-tabs\"\n className=\"__myassets_parentTabs_main \n border-gray-50 \n px-[15px] \n py-[15px] \n [&>ul]:pb-[15px]\n max-[768px]:p-0\n \"\n >\n <ul\n data-testid=\"parenttab\"\n className={`flex gap-6 [&>li]:font-medium [&>li]:font-body [&>li]:cursor-pointer overflow-y-scroll`}\n >\n {AssetsParentTab?.map((tabs, ind) => {\n return (\n <li\n role=\"parent-list-item\"\n key={tabs.key}\n className={`${\n parentActivetab.activeTab === tabs.key\n ? \"text-[#fff] text-[18px] max-[768px]:text-[12px] transition-all\"\n : \"text-[gray] text-[18px] max-[768px]:text-[12px] transition-all\"\n } whitespace-nowrap`}\n onClick={() => navigate(`/my-assets?tab=${ind}`)}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n <hr className=\"border-[0.1px] border-[#5A5A5A80]\" />\n </div>\n\n {/* My Assets Container */}\n {parentActivetab.activeTab === \"my-iaps\" && <MyIAPsHome />}\n\n {/* My Avatar Container */}\n\n {parentActivetab.activeTab === \"my-contents\" && <MyContentsHome />}\n\n {parentActivetab.activeTab === \"my-events\" && <MyEventsHome />}\n {parentActivetab.activeTab === \"my-avatar\" && <MyAvatarHome />}\n\n {parentActivetab.activeTab === \"my-orders\" && <MyOrderHome />}\n </div>\n );\n};\n\nexport default MyAssets;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Global-Redux-Store\n *@developer Aditya P\n *@desc Handling Global state management for FourthStar Project\n */\n\nimport { configureStore } from \"@reduxjs/toolkit\";\nimport { setupListeners } from \"@reduxjs/toolkit/query\";\nimport UserAuthSlice from \"./slicer/userAuth\";\nimport { UserNotification } from \"./slicer/notification\";\nimport { UserProfile } from \"./slicer/userProfile\";\nimport {ApartmentSlice} from \"./slicer/Apartments\"\nimport { ShipSlice } from \"./slicer/Ships\";\nimport { CartSlice } from \"./slicer/Cart\";\n\n// Only Public Data and User Authentication will be used under this Store\n// Configure the middleware and dynamic reducer function name according to your API needs\nexport const GlobalStore = configureStore({\n reducer: {\n auth: UserAuthSlice,\n [UserNotification.reducerPath]: UserNotification.reducer,\n [UserProfile.reducerPath]: UserProfile.reducer,\n [ApartmentSlice.reducerPath]: ApartmentSlice.reducer,\n [ShipSlice.reducerPath]: ShipSlice.reducer,\n [CartSlice.reducerPath]: CartSlice.reducer,\n },\n middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(UserNotification.middleware).concat(UserProfile.middleware).concat(ApartmentSlice.middleware).concat(ShipSlice.middleware).concat(CartSlice.middleware)\n})\n\nsetupListeners(GlobalStore.dispatch)","import OutlineButton from \"components/buttons/outline-button/OutlineButton\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nconst Explore = ({ active = true }) => {\n return (\n <div className=\"__assets_default_explore_main\">\n <div className=\"__explore_container text-center\">\n <h3 className=\"font-body font-semibold text-[16px] lg:text-[20px] leading-[30px] text-center\">\n {active ? \"No Active Subscription!\" : \"No Cancelled Subscriptions!\"}\n </h3>\n <p className=\"mt-4 font-medium text-[grey]\">\n {active\n ? \"It looks like you don't have an active subscription. To access active subscriptions, please consider subscribing.\"\n : \"You don't have any cancelled subscriptions.\"}\n </p>\n <Link to=\"/marketplace/entertainment\">\n <OutlineButton\n btnclass=\"border-[2px] \n text-[#fff] \n font-medium \n border-[#FBBC5E4D] \n mt-[25px] \n py-[3px] \n text-[14px] \n px-[30px] \n rounded-[7px] \n hover:bg-[#FBBC5E4D] \n hover:text-[#fff] \n hover:border-[#FBBC5E4D]\n max-[768px]:text-[9px]\n max-[768px]:px-[15px]\n max-[768px]:mt-[15px]\n max-[1280px]:text-[10px]\n max-[1280px]:px-[13px]\n max-[1280px]:mt-[15px]\n \"\n btntext=\"Explore Marketplace\"\n />\n </Link>\n </div>\n </div>\n );\n};\n\nexport default Explore;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Channel-Subscription-Item\n *@developer Shubham K\n */\n\nimport React from \"react\";\nimport defaultChannelLogo from \"assets/images/channel.png\";\nimport { Link } from \"react-router-dom\";\n\nconst ChannelItem = ({\n id,\n channelThumb,\n channelName,\n channelHandle,\n channelId,\n subscriptionStatus,\n paymentMethod,\n price,\n lastPaymentStatus,\n renewalDate,\n dueDate,\n expiredDate,\n cancelled = false,\n seeAllTransactionsHandler,\n cancelBtnHandler,\n payRenewBtnHandler,\n}) => {\n return (\n <div className=\"flex justify-start items-start md:items-center [&>*]:h-full [&>*]:w-1/4 [&>*]:pr-1 pt-6 pb-6 lg:pb-12 border-b border-b-[#7a7a7a]/50\">\n <Link\n to={`/marketplace/entertainment/channels/${channelHandle}`}\n className=\"__CHANNEL_THUMB_NAME_CONT flex justify-start items-start md:items-center gap-3\"\n >\n <img\n src={channelThumb}\n alt=\"channelthumb\"\n className=\"h-[64px] w-[64px] hidden md:block rounded-full object-cover\"\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = defaultChannelLogo;\n }}\n />\n <div className=\"h-full flex flex-col items-start justify-center gap-1 text-ellipsis overflow-hidden\">\n <p className=\"font-semibold text-[12px] md:text-[14px] leading-[21px]\">\n {channelName}\n </p>\n <p className=\"font-body font-medium text-[12px] md:text-[14px] leading-[17.07px] text-white/60 break-all\">\n @{channelHandle}\n </p>\n </div>\n </Link>\n <div className=\"__SUBCR_DETAILS_CONT__ flex flex-col justify-start items-start gap-2\">\n <p\n className={`font-semibold text-[12px] md:text-[14px] leading-[17.07px] font-body capitalize ${\n subscriptionStatus?.toLowerCase() == \"active\"\n ? \"text-white\"\n : \"text-[#FF9393]\"\n }`}\n >\n {subscriptionStatus}\n </p>\n <p className=\"font-normal text-[12px] md:text-[14px] leading-[17.07px] font-body text-white\">\n Payment Method:{\" \"}\n {paymentMethod?.toLowerCase() == \"usd\" ? \"USD\" : \"FSTR\"}\n </p>\n <p className=\"font-normal text-[12px] md:text-[14px] leading-[17.07px] font-body text-white\">\n Price: {price}{\" \"}\n {paymentMethod?.toLowerCase() == \"usd\" ? \"USD\" : \"FSTR\"}\n </p>\n </div>\n <div className=\"__DEBIT_STATUS_CONT__ flex flex-col justify-start items-start gap-2\">\n {!cancelled && (\n <>\n {\" \"}\n {lastPaymentStatus?.toLowerCase() == \"success\" && subscriptionStatus?.toLowerCase() == \"active\" && (\n <p className=\"font-normal text-[12px] md:text-[14px] leading-[17.07px] font-body text-[#25B39E]\">\n Payment Successful\n </p>\n )}\n {(lastPaymentStatus?.toLowerCase() == \"failed\" || subscriptionStatus?.toLowerCase() == \"failed\") && (\n <p className=\"font-normal text-[12px] md:text-[14px] leading-[17.07px] font-body text-[#EC4134]\">\n <svg\n className=\"inline mr-1 mb-[2px]\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_159_11555)\">\n <path\n d=\"M8.00065 1.33398C11.6827 1.33398 14.6673 4.31865 14.6673 8.00065C14.6673 11.6827 11.6827 14.6673 8.00065 14.6673C4.31865 14.6673 1.33398 11.6827 1.33398 8.00065C1.33398 4.31865 4.31865 1.33398 8.00065 1.33398ZM8.00065 2.66732C6.58616 2.66732 5.22961 3.22922 4.22941 4.22941C3.22922 5.22961 2.66732 6.58616 2.66732 8.00065C2.66732 9.41514 3.22922 10.7717 4.22941 11.7719C5.22961 12.7721 6.58616 13.334 8.00065 13.334C9.41514 13.334 10.7717 12.7721 11.7719 11.7719C12.7721 10.7717 13.334 9.41514 13.334 8.00065C13.334 6.58616 12.7721 5.22961 11.7719 4.22941C10.7717 3.22922 9.41514 2.66732 8.00065 2.66732ZM8.00065 10.0007C8.17746 10.0007 8.34703 10.0709 8.47205 10.1959C8.59708 10.3209 8.66732 10.4905 8.66732 10.6673C8.66732 10.8441 8.59708 11.0137 8.47205 11.1387C8.34703 11.2637 8.17746 11.334 8.00065 11.334C7.82384 11.334 7.65427 11.2637 7.52925 11.1387C7.40422 11.0137 7.33398 10.8441 7.33398 10.6673C7.33398 10.4905 7.40422 10.3209 7.52925 10.1959C7.65427 10.0709 7.82384 10.0007 8.00065 10.0007ZM8.00065 4.00065C8.17746 4.00065 8.34703 4.07089 8.47205 4.19591C8.59708 4.32094 8.66732 4.49051 8.66732 4.66732V8.66732C8.66732 8.84413 8.59708 9.0137 8.47205 9.13872C8.34703 9.26375 8.17746 9.33398 8.00065 9.33398C7.82384 9.33398 7.65427 9.26375 7.52925 9.13872C7.40422 9.0137 7.33398 8.84413 7.33398 8.66732V4.66732C7.33398 4.49051 7.40422 4.32094 7.52925 4.19591C7.65427 4.07089 7.82384 4.00065 8.00065 4.00065Z\"\n fill=\"#EC4134\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_159_11555\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n Payment Failed\n </p>\n )}\n {lastPaymentStatus?.toLowerCase() != \"success\" &&\n subscriptionStatus?.toLowerCase() == \"onhold\" && (\n <p className=\"font-normal text-[12px] md:text-[14px] leading-[17.07px] font-body text-[#EC4134]\">\n <svg\n className=\"inline mr-1 mb-[2px]\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_159_11555)\">\n <path\n d=\"M8.00065 1.33398C11.6827 1.33398 14.6673 4.31865 14.6673 8.00065C14.6673 11.6827 11.6827 14.6673 8.00065 14.6673C4.31865 14.6673 1.33398 11.6827 1.33398 8.00065C1.33398 4.31865 4.31865 1.33398 8.00065 1.33398ZM8.00065 2.66732C6.58616 2.66732 5.22961 3.22922 4.22941 4.22941C3.22922 5.22961 2.66732 6.58616 2.66732 8.00065C2.66732 9.41514 3.22922 10.7717 4.22941 11.7719C5.22961 12.7721 6.58616 13.334 8.00065 13.334C9.41514 13.334 10.7717 12.7721 11.7719 11.7719C12.7721 10.7717 13.334 9.41514 13.334 8.00065C13.334 6.58616 12.7721 5.22961 11.7719 4.22941C10.7717 3.22922 9.41514 2.66732 8.00065 2.66732ZM8.00065 10.0007C8.17746 10.0007 8.34703 10.0709 8.47205 10.1959C8.59708 10.3209 8.66732 10.4905 8.66732 10.6673C8.66732 10.8441 8.59708 11.0137 8.47205 11.1387C8.34703 11.2637 8.17746 11.334 8.00065 11.334C7.82384 11.334 7.65427 11.2637 7.52925 11.1387C7.40422 11.0137 7.33398 10.8441 7.33398 10.6673C7.33398 10.4905 7.40422 10.3209 7.52925 10.1959C7.65427 10.0709 7.82384 10.0007 8.00065 10.0007ZM8.00065 4.00065C8.17746 4.00065 8.34703 4.07089 8.47205 4.19591C8.59708 4.32094 8.66732 4.49051 8.66732 4.66732V8.66732C8.66732 8.84413 8.59708 9.0137 8.47205 9.13872C8.34703 9.26375 8.17746 9.33398 8.00065 9.33398C7.82384 9.33398 7.65427 9.26375 7.52925 9.13872C7.40422 9.0137 7.33398 8.84413 7.33398 8.66732V4.66732C7.33398 4.49051 7.40422 4.32094 7.52925 4.19591C7.65427 4.07089 7.82384 4.00065 8.00065 4.00065Z\"\n fill=\"#EC4134\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_159_11555\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n Payment not completed\n </p>\n )}\n <p\n className=\"font-semibold text-[12px] md:text-[14px] leading-[17.07px] text-white cursor-pointer hover:text-white/80\"\n onClick={() => seeAllTransactionsHandler(channelId)}\n >\n See all Transactions\n </p>\n {lastPaymentStatus?.toLowerCase() == \"success\" && subscriptionStatus?.toLowerCase() == \"active\" && (\n <p className=\"text-[12px] md:text-[14px] leading-[17.07px] text-white/50\">\n Next renewal date: {renewalDate}\n </p>\n )}\n {lastPaymentStatus?.toLowerCase() == \"failed\" &&\n subscriptionStatus?.toLowerCase() == \"failed\" && (\n <p className=\"text-[12px] md:text-[14px] leading-[17.07px] text-[#EC4134]\">\n Due date: {dueDate}\n </p>\n )}\n {(subscriptionStatus?.toLowerCase() == \"expired\" || subscriptionStatus?.toLowerCase() == \"cancelled\") && (\n <p className=\"text-[12px] md:text-[14px] leading-[17.07px] text-[#EC4134]\">\n Expired on: {expiredDate}\n </p>\n )}\n </>\n )}\n {cancelled && <p>-</p>}\n </div>\n <div className=\"__ACTION_CONT__ font-normal flex flex-col justify-start items-start gap-2\">\n {subscriptionStatus?.toLowerCase() == \"active\" && <button\n className={`w-full md:max-w-3/4 py-2 px-3 rounded-[8px] border border-white/50 font-medium text-[10px] md:text-[12px] leading-[14.64px] text-center hover:bg-[#EC4134]/80 hover:text-white transition-all disabled:bg-white/10 disabled:text-white/50 disabled:border-0 ${\n !cancelled ? \"text-[#EC4134]\" : \"\"\n }`}\n onClick={() => cancelBtnHandler(channelId)}\n disabled={cancelled}\n >\n {cancelled ? \"Cancelled Subscription\" : \"Cancel Subscription\"}\n </button>}\n {(lastPaymentStatus?.toLowerCase() != \"success\" || cancelled == true) &&\n subscriptionStatus?.toLowerCase() != \"inactive\" && (\n <button\n className=\"w-full md:max-w-3/4 py-2 px-3 rounded-[8px] border border-white/50 font-medium text-[10px] md:text-[12px] leading-[14.64px] text-center text-[#fbbc5e] hover:text-black btn-outline transition-all\"\n onClick={() => payRenewBtnHandler(channelId)}\n >\n {cancelled ? \"Renew Subscription\" : \"PAY NOW\"}\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default ChannelItem;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Shubham K <shubhamkinstaacoders@gmail.com>\n */\n\nimport React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\n\nconst ConfirmCancel = ({ open, onClose, canClose, cancelBtnHandler, isLoading }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <div\n className=\"absolute top-1 right-1 bg-white/10 w-[28px] h-[28px] rounded-full grid place-content-center cursor-pointer\"\n onClick={onClose}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.6875 1.3125L1.3125 12.6875M1.3125 1.3125L12.6875 12.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n\n <h1 className=\"font-heading font-normal text-[20px] leading-[25px] text-white\">\n Cancel Subscription\n </h1>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px]\">\n Are you sure you want to cancel your subscription? This action cannot\n be undone. Your subscription will remain active until the end of the\n current billing period.\n </p>\n <p className=\"mt-4 font-body font-normal text-[16px] leading-[24px]\">\n Auto-debit will stop, and your subscription will become inactive.\n </p>\n <div className=\"mt-8 flex items-center justify-between\">\n <button\n className=\"w-[48%] btn-outline rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 border border-[#fbbc5e] hover:text-black\"\n onClick={onClose}\n disabled={isLoading}\n >\n Keep Subscription\n </button>\n <button\n className=\"w-[48%] btn-gradient rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 text-black\"\n onClick={cancelBtnHandler}\n disabled={isLoading}\n >\n {isLoading ? \"Cancelling...\" : \"Cancel Subscription\"}\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default ConfirmCancel;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Shubham K <shubhamkinstaacoders@gmail.com>\n */\n\nimport React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport SuccessIcon from \"assets/images/success_icon.png\";\n\nconst Cancelled = ({ open, onClose, canClose }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <img\n src={SuccessIcon}\n className=\"w-[52px] h-[52px] mx-auto rounded-full object-cover\"\n alt=\"\"\n />\n <h1 className=\"mx-auto mt-8 font-body font-bold text-[24px] leading-[36px] text-center text-white\">\n Subscription Cancellation Successful\n </h1>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px] text-center\">\n Your subscription has been successfully cancelled. You will continue\n to have access to the service until the end of the current billing\n period. Thank you for being a part of our community.\n </p>\n <div className=\"mt-8 w-full md:w-3/4 lg:w-1/2 mx-auto flex justify-center items-center\">\n <button\n to=\"/my-assets/subscriptions\"\n className=\"w-full btn-gradient rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] text-center py-3 px-2 text-black\"\n onClick={onClose}\n >\n Go back to Subscriptions\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default Cancelled;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-Profile-Reducer-functions\n *@developer Shubham K\n */\n\n// Handling user subscriptions api\nexport const UserSubscriptions = createApi({\n reducerPath: \"UserSubscriptions\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n getSubscriptionsList: builder.query({\n query: ({ page = 1, limit = 9999 }) => ({\n url:\n EndpointsSlug.GET_USER_SUBSCRIPTION_LIST +\n `?page=${page}&limit=${limit}`,\n method: \"GET\",\n }),\n }),\n getUserSubscriptionTransactions: builder.query({\n query: ({ channelId, page = 1, limit = 9999 }) => ({\n url:\n EndpointsSlug.GET_USER_SUBSCRIPTION_TRANS_DETAILS +\n `?channelId=${channelId}&page=${page}&limit=${limit}`,\n method: \"GET\",\n }),\n }),\n patchCancelSubscription: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.CANCEL_SUBSCRIPTION,\n method: 'POST',\n body: payload,\n })\n }),\n }),\n});\n\nexport const {\n useGetSubscriptionsListQuery,\n useGetUserSubscriptionTransactionsQuery,\n usePatchCancelSubscriptionMutation,\n} = UserSubscriptions;\n","import React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport { useGetUserSubscriptionTransactionsQuery } from \"store/slicer/MyAssets/Subscriptions\";\nimport Loader from \"components/Loader/Loader\";\nimport dateFormat from \"dateformat\";\n\nconst TransactionsTable = ({ open, onClose, canClose, channelId }) => {\n let filteredData = [];\n\n let { data, isFetching, isSuccess, isError } =\n useGetUserSubscriptionTransactionsQuery({\n channelId,\n page: 1,\n limit: 9999,\n });\n\n if (!isFetching && data?.response?.statusEnum == 1) {\n filteredData = data?.response?.data?.transactions;\n filteredData = filteredData.map((item) => {\n return {\n transactionMethod:\n item?.currencyType?.toLowerCase() == \"fiat\"\n ? \"USD- Payment gateway\"\n : \"FSTR- MetaMask wallet\",\n amount:\n typeof item?.price == \"object\"\n ? item?.price?.$numberDecimal\n : item?.price,\n currency: item?.currencyType?.toLowerCase() == \"fiat\" ? \"usd\" : \"fstr\",\n transactionId: item?.paymentId,\n dateTime: dateFormat(new Date(item?.purchaseTime), \"mm/dd/yyyy, hh:mm\"),\n status: item?.purchaseStatus,\n };\n });\n }\n\n return (\n <PopupWrapper\n open={open}\n onClose={onClose}\n canClose={canClose}\n position=\"top\"\n >\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-2 z-[100]\">\n <div\n className=\"absolute top-1 right-1 bg-white/10 w-[28px] h-[28px] rounded-full grid place-content-center cursor-pointer\"\n onClick={onClose}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.6875 1.3125L1.3125 12.6875M1.3125 1.3125L12.6875 12.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n <h1 className=\"font-semibold text-[20px] leading-[24.38px]\">\n Transactions Details\n </h1>\n {isFetching && (\n <div className=\"h-[400px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isFetching && data?.response?.statusEnum != 1 && (\n <div className=\"h-[400px] grid place-content-center\">\n <p className=\"text-[16px] leading-[21px] text-white/70\">\n Something went wrong\n </p>\n </div>\n )}\n {!isFetching && data?.response?.statusEnum == 1 && (\n <>\n {\" \"}\n <div className=\"__HEADING_CONTAINER__ mt-6 flex justify-start items-center [&>*]:w-1/5 py-4 bg-[#484848] pl-4 pr-1\">\n <p className=\"font-Inter text-[8px] md:text-[10px] leading-[12.1px] text-white/50\">\n Transaction Method\n </p>\n <p className=\"font-Inter text-[8px] md:text-[10px] leading-[12.1px] text-white/50\">\n Payment\n </p>\n <p className=\"font-Inter text-[8px] md:text-[10px] leading-[12.1px] text-white/50\">\n Transaction ID\n </p>\n <p className=\"font-Inter text-[8px] md:text-[10px] leading-[12.1px] text-white/50\">\n Date & Time\n </p>\n <p className=\"font-Inter text-[8px] md:text-[10px] leading-[12.1px] text-white/50\">\n Status\n </p>\n </div>\n <div\n className=\"__MAIN_DATA_CONTAINER__ [&>:not(:last-child)]:border-b-[0.5px] [&>:not(:last-child)]:border-b-[#595959] showScrollbar styled_scrollbar overflow-y-auto max-h-[600px]\"\n id=\"notification\"\n >\n {filteredData.map((item, ind) => (\n <div className=\"flex justify-start items-center [&>*]:w-1/5 [&>*]:break-all py-6 pr-1 pl-4 bg-[#3A3A3A]\">\n <div className=\"__TRANSACTION__METHOD__CONT__ \">\n <p className=\"font-body font-normal text-[10px] md:text-[12px] leading-[14.64px]\">\n {item.transactionMethod}\n </p>\n </div>\n <div className=\"__PAYMENT__CONT__\">\n <p className=\"font-Inter font-medium text-[10px] md:text-[12px] leading-[14.64px]\">\n {item.amount}{\" \"}\n {item.currency?.toLowerCase() == \"usd\" ? \"USD\" : \"FSTR\"}\n </p>\n </div>\n <div className=\"__TRANSACTION__ID__CONT__\">\n <p className=\"font-Inter text-start whitespace-nowrap overflow-hidden text-ellipsis pr-2 hover:whitespace-normal hover:overflow-auto font-medium text-[12px] md:text-[14px] leading-[14.64px] break-all\">\n {item.transactionId}\n </p>\n </div>\n <div className=\"__DATE__TIME__CONT__\">\n <p className=\"font-body font-normal text-[10px] md:text-[12px] leading-[14.64px]\">\n {item.dateTime}\n </p>\n </div>\n <div className=\"__TRANSACTION__STATUS__CONT__\">\n <p\n className={`font-Inter font-medium text-[12px] md:text-[14px] leading-[14.64px] capitalize ${\n item.status == \"success\"\n ? \"text-[#25B39E]\"\n : \"text-[#FF9393]\"\n }`}\n >\n {item.status}\n </p>\n </div>\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n </PopupWrapper>\n );\n};\n\nexport default TransactionsTable;\n","import React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport AlertIcon from \"assets/images/alert_icon.png\";\n\nconst CancelledError = ({ open, onClose, canClose }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <img\n src={AlertIcon}\n className=\"w-[52px] h-[52px] mx-auto rounded-full object-cover\"\n alt=\"\"\n />\n <h1 className=\"mx-auto mt-8 font-body font-bold text-[24px] leading-[36px] text-center text-white\">\n Subscription Cancellation Error\n </h1>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px] text-center\">\n Something went wrong went try to cancel the subscription.\n </p>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px] text-center\">\n Please try again.\n </p>\n <div className=\"mt-8 w-full md:w-3/4 lg:w-1/2 mx-auto flex justify-center items-center\">\n <button\n to=\"/my-assets/subscriptions\"\n className=\"w-full btn-gradient rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] text-center py-3 px-2 text-black\"\n onClick={onClose}\n >\n Go back to Subscriptions\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default CancelledError;","import React, { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Explore from \"../Explore\";\nimport ChannelItem from \"../ChannelItem\";\nimport ConfirmCancel from \"components/popup/subscriptions/ConfirmCancel\";\nimport Cancelled from \"components/popup/subscriptions/Cancelled\";\nimport TransactionsTable from \"components/popup/subscriptions/TransactionsTable\";\n\nimport {\n useGetSubscriptionsListQuery,\n usePatchCancelSubscriptionMutation,\n} from \"store/slicer/MyAssets/Subscriptions\";\n\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\nimport CancelledError from \"components/popup/subscriptions/CancelledError\";\n\nconst ActiveSubscriptions = () => {\n const navigate = useNavigate();\n let { data, isFetching, isSuccess, isError, refetch } =\n useGetSubscriptionsListQuery({\n page: 1,\n limit: 9999,\n });\n const [cancelSubscription, cancelSubscriptionInfo] =\n usePatchCancelSubscriptionMutation();\n\n if (!isFetching && data?.response?.statusEnum == 1) {\n data = data?.response?.data?.subscribedUsers;\n data = data?.filter((item) => {\n return (\n item?.status == \"active\" ||\n item?.status == \"onhold\" ||\n item?.status == \"failed\"\n );\n });\n\n data = data.map((item) => {\n return {\n id: item?.subscription?._id,\n channelThumb: item?.channelThumbnail,\n channelName: item?.channelName,\n channelHandle: item?.channelHandle,\n channelId: item?.subscription?.channelId,\n subscriptionStatus: item?.subscription?.subscriptionType,\n paymentMethod: item?.currency?.toLowerCase() == \"usd\" ? \"usd\" : \"fstr\",\n price: item?.price,\n lastPaymentStatus: item?.paymentStatus,\n renewalDate: dateFormat(\n new Date(item?.renewalDate || \"\"),\n \"dd/mm/yyyy\"\n ),\n dueDate: dateFormat(\n new Date(item?.renewalDate != undefined ? item?.renewalDate : 0),\n \"mm/dd/yyyy\"\n ),\n expiredDate: dateFormat(\n new Date(item?.expiredDate != undefined ? item?.expiredDate : 0),\n \"dd/mm/yyyy\"\n ),\n cancelled:\n item?.subscription?.subscriptionType == \"cancelled\" ||\n item?.subscription?.subscriptionType == \"expired\",\n };\n });\n } else {\n data = [];\n // isError = true;\n }\n\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\n const [showCancelledPopup, setShowCancelledPopup] = useState(false);\n const [showErrorPopup, setShowErrorPopup] = useState(false);\n const [showTransactionsPopup, setShowTransactionsPopup] = useState(false);\n const [activeChannelId, setActiveChannelId] = useState(null);\n\n const onCloseConfirmPopup = () => {\n setShowConfirmPopup(false);\n };\n\n const onCloseCancelledPopup = () => {\n refetch();\n setShowCancelledPopup(false);\n setShowErrorPopup(false)\n };\n\n const onCloseTransactionPopup = () => {\n setShowTransactionsPopup(false);\n };\n\n const onSeeAllTransactions = (id) => {\n setActiveChannelId(id);\n setShowTransactionsPopup(true);\n };\n\n const onCancelSubscription = (channelId) => {\n setActiveChannelId(channelId);\n setShowConfirmPopup(true);\n };\n\n const onPaySubscription = (id) => {\n console.log(\"pay for subscription \", id);\n navigate(`/initiatepayment?isSubscription=true&channelId=${id}`);\n };\n\n const onConfirmCancel = async () => {\n const cancelSubscriptionDetails = await cancelSubscription({ channelId: activeChannelId });\n if(cancelSubscriptionDetails.error) {\n onCloseConfirmPopup();\n setShowErrorPopup(true)\n } else {\n onCloseConfirmPopup();\n setShowCancelledPopup(true);\n }\n };\n\n if (isFetching) {\n return (\n <div className=\"min-h-screen grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n // if (!isFetching && isError) {\n // return (\n // <div className=\"min-h-screen grid place-content-center\">\n // <p className=\"text-white/70 text-[16px] leading-[21px]\">\n // Something went wrong\n // </p>\n // </div>\n // );\n // }\n\n if (!isFetching && data?.length === 0) {\n return (\n <div className=\"min-h-screen grid place-content-center\">\n <div className=\"mt-20 w-full lg:max-w-[500px] mx-auto\">\n <Explore />\n </div>\n </div>\n );\n }\n\n return (\n <>\n {showCancelledPopup && (\n <Cancelled\n open={showCancelledPopup}\n canClose={true}\n onClose={onCloseCancelledPopup}\n />\n )}\n {showErrorPopup && (\n <CancelledError\n open={showErrorPopup}\n canClose={true}\n onClose={onCloseCancelledPopup}\n />\n )}\n {showConfirmPopup && (\n <ConfirmCancel\n open={showConfirmPopup}\n onClose={onCloseConfirmPopup}\n cancelBtnHandler={onConfirmCancel}\n isLoading={cancelSubscriptionInfo.isLoading}\n />\n )}\n\n {showTransactionsPopup && (\n <TransactionsTable\n channelId={activeChannelId}\n open={showTransactionsPopup}\n onClose={onCloseTransactionPopup}\n />\n )}\n <div className=\"__ITEMS_MAIN_CONTAINER__ mt-3\">\n <div className=\"flex justify-start items-center py-4 px-2 [&>p]:w-1/4 bg-[#2E2E2E]\">\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium\">\n Channel Subscribed\n </p>\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium\">\n Subscription Details\n </p>\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium\">\n Last Auto-debit Status\n </p>\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium text-center\">\n Actions\n </p>\n </div>\n {data.map((item, index) => (\n <ChannelItem\n key={index}\n {...item}\n seeAllTransactionsHandler={onSeeAllTransactions}\n cancelBtnHandler={onCancelSubscription}\n payRenewBtnHandler={onPaySubscription}\n />\n ))}\n </div>\n </>\n );\n};\n\nexport default ActiveSubscriptions;\n","import React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Explore from \"../Explore\";\nimport ChannelItem from \"../ChannelItem\";\n\nimport { useGetSubscriptionsListQuery } from \"store/slicer/MyAssets/Subscriptions\";\n\nimport dateFormat from \"dateformat\";\nimport Loader from \"components/Loader/Loader\";\n\nconst CancelledSubscriptions = () => {\n const navigate = useNavigate();\n let { data, isFetching, isSuccess, isError } = useGetSubscriptionsListQuery({\n page: 1,\n limit: 9999,\n });\n\n if (!isFetching && data?.response?.statusEnum == 1) {\n data = data?.response?.data?.subscribedUsers;\n data = data?.filter((item) => {\n return item?.status == \"cancelled\" || item?.status == \"expired\";\n });\n\n data = data.map((item) => {\n return {\n id: item?.subscription?._id,\n channelThumb: item?.channelThumbnail,\n channelName: item?.channelName,\n channelHandle: item?.channelHandle,\n channelId: item?.channelId,\n subscriptionStatus: item?.subscription?.subscriptionType,\n paymentMethod: item?.currency?.toLowerCase() == \"usd\" ? \"usd\" : \"fstr\",\n price: item?.price,\n lastPaymentStatus: item?.paymentStatus,\n renewalDate: dateFormat(\n new Date(item?.renewalDate || \"\"),\n \"mm/dd/yyyy\"\n ),\n dueDate: dateFormat(\n new Date(item?.dueDate != undefined ? item?.dueDate : 0),\n \"mm/dd/yyyy\"\n ),\n expiredDate: dateFormat(\n new Date(item?.expiredDate != undefined ? item?.expiredDate : 0),\n \"mm/dd/yyyy\"\n ),\n cancelled:\n item?.subscription?.subscriptionType == \"cancelled\" ||\n item?.subscription?.subscriptionType == \"expired\",\n };\n });\n } else {\n data = [];\n // isError = true;\n }\n\n if (isFetching) {\n return (\n <div className=\"min-h-screen grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n // if (!isFetching && isError) {\n // return (\n // <div className=\"min-h-screen grid place-content-center\">\n // <p className=\"text-white/70 text-[16px] leading-[21px]\">\n // Something went wrong\n // </p>\n // </div>\n // );\n // }\n\n if (!isFetching && data?.length === 0) {\n return (\n <div className=\"min-h-screen grid place-content-center\">\n <div className=\"mt-20 w-full lg:max-w-[500px] mx-auto\">\n <Explore active={false} />\n </div>\n </div>\n );\n }\n\n const onRenewSubscription = (id) => {\n console.log(\"Renew for subscription \", id);\n navigate(`/initiatepayment?isSubscription=true&channelId=${id}`);\n };\n\n return (\n // <div className=\"mt-20 w-full lg:max-w-[500px] mx-auto\">\n // <Explore active={false} />\n // </div>\n <div className=\"__ITEMS_MAIN_CONTAINER__ mt-3\">\n <div className=\"flex justify-start items-center py-4 px-2 [&>p]:w-1/4 bg-[#2E2E2E]\">\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium\">\n Channel Subscribed\n </p>\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium\">\n Subscription Details\n </p>\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium\">\n Last Auto-debit Status\n </p>\n <p className=\"font-Inter text-white/60 text-[10px] md:text-[12px] md:leading-[14.52px] font-medium text-center\">\n Actions\n </p>\n </div>\n {data.map((item, index) => (\n <ChannelItem\n key={index}\n {...item}\n payRenewBtnHandler={onRenewSubscription}\n />\n ))}\n </div>\n );\n};\n\nexport default CancelledSubscriptions;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module My-Subscriptions-Page\n *@developer Shubham K\n */\n\nimport ShadowFrame from \"components/shadow-frame\";\nimport React, { useState } from \"react\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { GlobalStore } from \"store/GlobalStore\";\nimport ActiveSubscriptions from \"./components/tabs/ActiveSubscriptions\";\nimport CancelledSubscriptions from \"./components/tabs/CancelledSubscriptions\";\n\nconst parentTabs = [\n { id: 0, key: \"active-subscriptions\", name: \"Active Subscriptions\" },\n { id: 1, key: \"cancelled-subscriptions\", name: \"Cancelled Subscriptions\" },\n];\n\nconst Index = () => {\n const navigate = useNavigate();\n const location = useLocation();\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n const authState = GlobalStore.getState()?.auth;\n\n // user not signed in\n if (!accessToken) {\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n });\n }\n\n // user signed in but did not verify his email\n if (accessToken && !authState?.userInfo?.isVerified) {\n navigate(`/otp-verification`, {\n replace: true,\n });\n }\n\n const [parentActivetab, setParentActivetab] = useState({\n id: 0,\n activeTab: \"active-subscriptions\",\n });\n\n return (\n // <div data-testid=\"my-assets-main\" className=\"__my_assets_main container mx-auto px-[80px] py-[25px] max-[768px]:px-[15px] max-[1280px]:px-0 bg-[#1D1D1D]\">\n <div\n data-testid=\"my-assets-main\"\n className=\"min-h-[calc(100vh-170px)] container app-container mx-auto px-2 md:px-3 xl:px-6 2xl:px-10 py-[25px] relative z-10\"\n >\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"pointer-events-none z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"pointer-events-none z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[100%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n\n <h1 className=\"my-4 pl-2 text-[18px] lg:text-[24px] leading-[36px] text-white font-heading\">\n Manage Subscriptions\n </h1>\n\n <div\n data-testid=\"parent-tabs\"\n className=\"__myassets_parentTabs_main \n border-gray-50 \n px-[15px] \n py-[15px] \n max-[768px]:p-0\n \"\n >\n <ul\n data-testid=\"parenttab\"\n className={`flex gap-6 [&>li]:font-medium [&>li]:font-body [&>li]:cursor-pointer`}\n >\n {parentTabs?.map((tabs, ind) => {\n return (\n <li\n role=\"parent-list-item\"\n key={tabs.key}\n className={`${\n parentActivetab.activeTab === tabs.key\n ? \"text-[#fff] text-[18px] max-[768px]:text-[12px] transition-all border-b-[2px] border-b-[#fbbc5e]\"\n : \"text-[gray] text-[18px] max-[768px]:text-[12px] transition-all\"\n } whitespace-nowrap pb-2`}\n onClick={() => setParentActivetab({ activeTab: tabs.key })}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n <hr className=\"border-[0.1px] mt-[-1px] border-[#5A5A5A80]\" />\n </div>\n\n {parentActivetab.activeTab === \"active-subscriptions\" && (\n <div className=\"px-3\">\n <ActiveSubscriptions />\n </div>\n )}\n\n {parentActivetab.activeTab === \"cancelled-subscriptions\" && (\n <div className=\"px-3\">\n <CancelledSubscriptions />\n </div>\n )}\n </div>\n );\n};\n\nexport default Index;\n","import React, { useState } from \"react\";\nimport { useAddFriendRequestMutation } from \"store/slicer/friends\";\n\nconst FriendSearchCard = ({\n avtarImg,\n username,\n fullname,\n email,\n statustype,\n}) => {\n const [sentFriendRequest, { isLoading }] = useAddFriendRequestMutation();\n const [sentRequestData, setRequestData] = useState(null);\n const [checkSentrequest, setCheckSentRequest] = useState(false);\n\n const sentFriendRequestHandle = (e, email) => {\n e.preventDefault();\n sentFriendRequest({\n email: email,\n })\n .then((res) => {\n setRequestData(res.data);\n setCheckSentRequest(true);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n return (\n <div className=\"__List_card_view flex border-b-[0.4px] border-[#7A7A7A33] py-[10px]\">\n <div className=\"__list__avatar w-[50px] h-[50px] rounded-[50%]\">\n <img\n src={avtarImg}\n alt=\"freinds_avatar\"\n className=\"w-[50px] h-[50px] rounded-[50%] object-cover\"\n />\n </div>\n <div className=\"__user_emailData w-[60%] pl-[10px]\">\n <div className=\"__upperData\">\n <span className=\"text-[15px] max-[768px]:text-xs\">{username}</span>\n {/* <span className=\"text-[#FFFFFF80] text-[13px] max-[768px]:text-xs\"> {fullname}</span> */}\n </div>\n <div className=\"__lowerData overflow-hidden w-[80%]\">\n <span className=\"text-[13px] text-[#FFFFFF99] max-[768px]:text-xs truncate\">\n {\" \"}\n {fullname}\n </span>\n </div>\n </div>\n <div className=\"__request_btn w-[30%] text-right\">\n {statustype === 0 && !checkSentrequest && (\n <button\n onClick={(e) => sentFriendRequestHandle(e, email)}\n className=\"text-[12px] max-[768px]:text-xs text-right font-medium text-[#F3A151] px-[8px] rounded-[5px] hover:bg-[#494848]\"\n >\n {isLoading ? \"Sending...\" : \"Send Request\"}\n </button>\n )}\n {statustype === 0 && checkSentrequest && (\n <button className=\"text-[13px] max-[768px]:text-xs text-right px-[8px] font-medium text-[#fff] hover:cursor-not-allowed\">\n Requested\n </button>\n )}\n {statustype === 1 && (\n <button className=\"text-[13px] max-[768px]:text-xs text-right px-[8px] font-medium text-[#fff] hover:cursor-not-allowed\">\n Requested\n </button>\n )}\n {statustype === 2 && (\n <button className=\"text-[13px] max-[768px]:text-xs text-right px-[8px] font-medium text-[#5ad65e] hover:cursor-not-allowed\">\n Already Friend\n </button>\n )}\n {statustype === 3 && (\n <button className=\"text-[13px] max-[768px]:text-xs text-right px-[8px] font-medium text-[#d65a5a] hover:cursor-not-allowed\">\n Blocked\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default FriendSearchCard;\n","import React, { useState } from \"react\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\nimport DefaultFriend from \"assets/images/default_friend.png\";\nimport FriendSearchCard from \"components/card/friend/FriendSearchCard\";\nimport InviteSentIcon from \"assets/images/mdi_tick.png\";\nimport { useAddFriendRequestMutation } from \"store/slicer/friends\";\nimport { useSearchUserFriendMutation } from \"store/slicer/friends\";\nimport Loader from \"components/Loader/Loader\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Invite-Friend-Modal-Module\n *@developer Aditya P\n */\n\nconst InviteFriendModal = ({ handleModalStatus }) => {\n const [sentFriendRequest] = useAddFriendRequestMutation();\n const [SearchfriendQuery] = useSearchUserFriendMutation();\n\n const [IssentInvite, setsentInvite] = useState(false);\n const [sentInvite, SetsentInvite] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [sentRequest, setSentrequest] = useState({\n sent_email_id: \"\",\n });\n const [requesterror, setRequestError] = useState(\"\");\n const [isLoad, setLoad] = useState(false);\n const [searchResult, setSearchResult] = useState(null);\n\n const handleSearchChange = (e) => {\n setSearchTerm(e.target.value);\n };\n\n const handleSentrequestChange = (e) => {\n setSentrequest(() => {\n return {\n sent_email_id: e.target.value,\n };\n });\n setRequestError(\"\");\n };\n\n /**\n *@desc Implement Function Sent Request via email\n */\n const handleSentRequestViaEmail = (e) => {\n setLoad(true);\n e.preventDefault();\n sentFriendRequest({\n email: sentRequest?.sent_email_id,\n })\n .then((res) => {\n setLoad(false);\n if (res.data.response.statusEnum === 1) {\n SetsentInvite(!sentInvite);\n }\n if (res.data.response.statusEnum === 0) {\n setRequestError(res.data.response.message);\n }\n if (res.data.response.statusEnum === 2) {\n setRequestError(res.data.response.message);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n /**\n *@desc Implement Function search request via email\n */\n const handleSearchFriend = (e) => {\n if (searchTerm.length === 0) return 0;\n setLoad(true);\n e.preventDefault();\n SearchfriendQuery({\n name: searchTerm,\n })\n .then((res) => {\n setLoad(false);\n setSearchResult(res.data);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n return (\n <>\n <div className=\"flex bg-[#00000099] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9998] outline-none focus:outline-none\">\n Overlay\n </div>\n <div\n data-testid=\"invite-friend-modal\"\n className=\"__invite_search_component hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\"\n >\n <div className=\"bg-[#2C2C2C] __modal__container w-[35%] max-[768px]:w-[100%] mt-24 max-h-[500px] max-[1920px]:max-h-[500px] max-[768px]:h-auto max-[1280px]:w-[50%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n {sentInvite ? (\n <></>\n ) : (\n <div className=\"__modal_close_icon_container flex justify-end p-[10px] z-[999999]\">\n <div\n onClick={handleModalStatus}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] mb-[-20px] w-[20px] h-[20px]\"\n >\n <img\n src={ModalCloseIcon}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n )}\n <div className=\"__modal_content_main px-[35px] mb-[10px] max-[768px]:p-0 z-9\">\n <div className=\"__modal_heading text-center\">\n <h4 className=\"font-heading text-[13px] \">\n {sentInvite ? \"\" : \"Send Invite to Friends\"}\n </h4>\n </div>\n <div className=\"__input_group_main py-[12px] mx-[20px] max-[768px]:p-0 max-[768px]:mt-[10px]\">\n {/* Search Input Component */}\n {IssentInvite ? (\n \"\"\n ) : (\n <>\n <form>\n <div>\n <label className=\"font-body text-[14px] text-[#FFFFFFCC] max-[768px]:text-[11px]\">\n Enter name, username\n </label>\n </div>\n <div className=\"flex mt-[5px] gap-[10px]\">\n <div className=\"__input_ele w-[80%]\">\n <input\n className=\"bg-transparent w-[100%] border border-[#FFFFFF4D] py-[5px] rounded-[8px] px-[10px] text-[14px] font-light max-[768px]:py-[3px]\"\n type=\"text\"\n name=\"search_ele\"\n onChange={(e) => handleSearchChange(e)}\n required\n />\n </div>\n <div className=\"__search_button_main w-[20%]\">\n <button\n onClick={handleSearchFriend}\n className=\"border-[2px] py-[5px] rounded-[8px] px-[15px] text-[14px] border-[#F3A151] max-[768px]:py-[3px] max-[768px]:px-[10px] max-[768px]:text-[10px]\"\n >\n Search\n </button>\n </div>\n </div>\n </form>\n {/* <div className=\"__invite_via_email_container text-center\">\n <p className=\"text-[14px] mt-[20px] max-[768px]:text-xs\">\n Did not find User? Try inviting{\" \"}\n <span className=\"text-[#F3A151] font-medium\">\n <button\n onClick={() => setsentInvite(!IssentInvite)}\n className=\"hover:underline\"\n >\n via Email\n </button>\n </span>\n </p>\n </div> */}\n </>\n )}\n\n {/* Sent Email Component */}\n {IssentInvite ? (\n sentInvite ? (\n \"\"\n ) : (\n <form>\n <div>\n <label className=\"font-body text-[14px] text-[#FFFFFFCC] max-[768px]:text-[11px]\">\n Enter email id\n </label>\n </div>\n <div className=\"flex flex-col mt-[5px] gap-[10px]\">\n <div className=\"__input_sent_ele w-[100%]\">\n <input\n className=\"bg-transparent w-[100%] border border-[#FFFFFF4D] py-[5px] rounded-[8px] px-[10px] text-[14px] font-light max-[768px]:py-[3px]\"\n type=\"text\"\n name=\"sent_email_id\"\n placeholder=\"Enter email\"\n onChange={handleSentrequestChange}\n required\n />\n <span className=\"pt-4 text-[13px] text-[#F3A151]\">\n {requesterror}\n </span>\n </div>\n <div className=\"__search_button_main flex justify-center py-[20px]\">\n <button\n onClick={handleSentRequestViaEmail}\n className=\"border-[2px] py-[5px] rounded-[8px] px-[15px] text-[14px] border-[#F3A151] max-[768px]:py-[3px] max-[768px]:px-[10px] max-[768px]:text-[10px]\"\n >\n {isLoad ? \"Sending request...\" : \"Send Invite\"}\n </button>\n </div>\n </div>\n </form>\n )\n ) : (\n \"\"\n )}\n\n {/* Invite Sent Component */}\n {sentInvite ? (\n <div className=\"__invite_sent_dialog flex flex-col gap-[20px] justify-center items-center mt-[15px]\">\n <img\n src={InviteSentIcon}\n alt=\"invite_sent_icon\"\n className=\"w-[52px] h-[52px]\"\n />\n <h4 className=\"font-heading text-[15px]\">Invitation Sent</h4>\n <p className=\"text-[16px] text-center\">\n They will added to your friends list once they accept your\n invite.\n </p>\n <button\n onClick={handleModalStatus}\n className=\"border-[2px] py-[5px] rounded-[8px] px-[15px] text-[14px] border-[#F3A151] max-[768px]:py-[3px] max-[768px]:px-[10px] max-[768px]:text-[10px]\"\n >\n Got it!\n </button>\n </div>\n ) : (\n \"\"\n )}\n </div>\n\n {/* Search Container */}\n <div className=\"p-2 max-h-[250px] lg:max-h-[300px] overflow-y-auto showScrollbar\">\n <div className=\"__search_result_container max-[768px]:mt-[15px]\">\n {isLoad ? (\n <div className=\"flex justify-center\">\n <Loader />\n </div>\n ) : searchResult === null ? (\n \"\"\n ) : searchResult?.response.statusEnum === 0 ||\n searchResult?.response?.statusEnum === 1 ? (\n searchResult?.response?.data?.length === 0 ? (\n <div className=\"__no_user_found_main text-center py-[50px] px-[35px]\">\n <span className=\"text-[14px] font-body\">\n No user was found with this name or username.\n </span>\n <br />\n {/* <button\n onClick={() => {\n setsentInvite(!IssentInvite);\n setSearchResult(null);\n }}\n className=\"text-[#F3A151] text-[14px] hover:underline\"\n >\n Invite via email\n </button> */}\n </div>\n ) : (\n searchResult?.response?.data?.map((_searchItem, ind) => {\n return (\n <div className=\"__friend_list_scroll_container pr-[10px] max-h-[250px] px-[25px]\">\n <FriendSearchCard\n key={_searchItem?._id}\n avtarImg={\n _searchItem?.photo === null ||\n _searchItem?.photo === \"\"\n ? DefaultFriend\n : _searchItem?.photo\n }\n username={`@${_searchItem?.userName}`}\n fullname={`${_searchItem?.firstName} ${\n _searchItem?.lastName === null\n ? \"\"\n : _searchItem?.lastName\n }`}\n email={_searchItem?.email}\n statustype={_searchItem?.requestStatus}\n />\n </div>\n );\n })\n )\n ) : (\n \"\"\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default InviteFriendModal;\n","import InviteFriendModal from \"components/Modal/InviteFriend/InviteFriendModal\";\nimport React, { useState } from \"react\";\n\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Invite-Friend-Module\n *@developer Aditya P\n */\n\nconst InviteFriend = () => {\n\n const [isInviteModalStatus, setInviteModal] = useState(false)\n\n const handleInviteModal = () => {\n setInviteModal(!isInviteModalStatus)\n }\n\n return (\n <div className=\"__friends_invite_container py-[45px] min-h-[400px] px-[30px] max-[768px]:p-0\">\n <div className=\"__invite__box__container\n bg-gradient-to-r \n from-[#FBBC5E1A] \n to-[#F3A1511A] \n text-center \n h-[330px] \n flex \n flex-col \n justify-center \n align-middle \n items-center \n rounded-[8px]\n max-[768px]:h-[200px]\n max-[768px]:w-[100%]\n max-[1280px]:h-[220px]\n \">\n <h2 className=\"text-[20px] font-heading max-[768px]:text-[13px] max-[768px]:mt-[20px] max-[1280px]:text-[13px]\">Invite Friends</h2>\n <p className=\"font-body text-[16px] mt-[35px] max-[768px]:text-[11px] max-[768px]:px-[15px] max-[1280px]:px-[15px] max-[768px]:mt-[15px] max-[1280px]:text-[12px] max-[1280px]:mt-[15px]\">\n Explore the virtual world with your friends and invite them to your{\" \"}\n <br /> virtual space and tours.\n </p>\n <button onClick={() => {setInviteModal(!isInviteModalStatus)}} className=\"bg-transparency border border-[#F3A151] px-[130px] py-[7px] mt-[30px] rounded-[8px] font-medium transition-all hover:text-[#000] hover:bg-[#FBBC5E] max-[768px]:mt-[10px] max-[768px]:px-[80px] max-[768px]:text-[14px] max-[768px]:py-[3px]\">\n Invite\n </button>\n </div>\n\n {\n isInviteModalStatus ? <InviteFriendModal handleModalStatus={handleInviteModal} /> : <></>\n }\n\n </div>\n );\n};\n\nexport default InviteFriend;\n","import React from \"react\";\nimport DefaultFriend from \"assets/images/default_friend.png\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Your-Friend-Card\n *@developer Aditya P\n */\n\nconst FriendProfileCard = ({\n fkey,\n h_card,\n userData,\n handleModal,\n handleUnblock,\n loader,\n}) => {\n return (\n <div\n onClick={() => handleModal(userData)}\n className={`__list_card_main flex flex-col justify-center items-center max-[668px]:w-[100%] py-[10px] w-[218px] h-[${h_card}] bg-gradient-to-r from-[#FBBC5E0D] to-[#F3A1510D] rounded-[8px] hover:cursor-pointer hover:border-[#FFFFFF80] [&>img]:hover:scale-[1.10]`}\n >\n <img\n src={userData?.photo === null ? DefaultFriend : userData?.photo}\n alt=\"f_avatar\"\n className=\"w-[100px] h-[100px] rounded-full transition duration-300 ease-in-out object-cover\"\n />\n <span className=\"mt-[15px] text-[16px]\">@{userData?.userName}</span>\n <span className=\"text-[14px] text-[#FFFFFF80]\">{`${userData?.firstName} ${\n userData?.lastName === null ? \"\" : userData?.lastName\n }`}</span>\n {fkey === \"BLOCKED\" ? (\n <button\n onClick={() => handleUnblock(userData?._id)}\n className=\"mt-[15px] text-[13px] border border-[#7A7A7A] rounded-[8px] py-[6px] px-[16px] bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000] hover:font-semibold hover:border-[#FBBC5E]\"\n >\n {loader ? \"Unblock...\" : \"Unblock User\"}\n </button>\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default FriendProfileCard;\n","import React, { useState } from \"react\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\nimport DefaultFriend from \"assets/images/default_friend.png\";\nimport { useRemoveFriendRequestMutation } from \"store/slicer/friends\";\nimport { useBlockFriendRequestMutation } from \"store/slicer/friends\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Friend-Profile-Modal\n *@developer Aditya P\n */\n\nconst FriendProfileModal = ({ handleModalStatus, modalData, refresh }) => {\n const [removefriendQuery, { isLoading }] = useRemoveFriendRequestMutation();\n const [blockFriendQuery, { isLoading: blockLoader }] =\n useBlockFriendRequestMutation();\n const [isRemoved, setIsRemoved] = useState({\n key: \"REM\",\n status: false,\n });\n const [isBlocked, setIsBlocked] = useState({\n key: \"BLOC\",\n status: false,\n });\n\n const removefriendHandler = (senderId) => {\n removefriendQuery(senderId)\n .then((res) => {\n if (res.data.response.statusEnum === 1) {\n setIsRemoved(() => {\n return {\n status: true,\n };\n });\n refresh();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const blockfriendHandler = (senderId) => {\n blockFriendQuery(senderId)\n .then((res) => {\n if (res.data.response.statusEnum === 1) {\n setIsBlocked(() => {\n return {\n status: true,\n };\n });\n refresh();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n return (\n <>\n <div className=\"flex bg-[#00000099] w-[100%] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9998] outline-none focus:outline-none\">\n Overlay\n </div>\n\n <div className=\"hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\">\n <div className=\"bg-[#2C2C2C] __modal__container w-[35%] max-[768px]:w-[100%] h-auto max-[768px]:h-auto max-[1280px]:w-[50%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"__modal_close_icon_container flex justify-end p-[10px]\">\n <div\n onClick={handleModalStatus}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[20px] h-[20px]\"\n >\n <img\n src={ModalCloseIcon}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n\n <div className=\"__modal__content_main flex flex-col justify-center items-center mt-[20px] mb-[50px]\">\n <img\n src={modalData?.photo === null ? DefaultFriend : modalData?.photo}\n alt=\"avatar_profile\"\n className=\"w-[150px] h-[150px] rounded-full transition duration-300 ease-in-out object-cover\"\n />\n <h4 className=\"text-[20px] mt-[15px]\">@{modalData?.userName}</h4>\n <span className=\"text-[16px] text-[#FFFFFF80]\">{`${\n modalData?.firstName\n } ${\n modalData?.lastName === null ? \"\" : modalData?.lastName\n }`}</span>\n\n {isRemoved?.status || isBlocked.status ? (\n <div className=\"pt-[40px] text-center\">\n {isRemoved.status &&\n \"User has been Removed from your friends list.\"}\n {isBlocked.status && \"User has been blocked.\"}\n </div>\n ) : (\n <div className=\"flex py-[30px] [&>button]:border gap-[20px] [&>button]:text-[16px] [&>button]:w-[135px] [&>button]:p-[5px] [&>button]:rounded-[5px] [&>button]:border-[#F3A151]\">\n <button\n onClick={() => removefriendHandler(modalData?._id)}\n className=\"hover:bg-[#F3A151] hover:text-[#000]\"\n >\n {isLoading ? \"Removing...\" : \"Remove\"}\n </button>\n <button\n onClick={() => blockfriendHandler(modalData?._id)}\n className=\"hover:bg-[#F3A151] hover:text-[#000]\"\n >\n {blockLoader ? \"Blocking...\" : \"Block\"}\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default FriendProfileModal;\n","import React, { useState } from \"react\";\nimport SearchIcon from \"assets/images/search_icon.png\";\nimport FriendProfileCard from \"components/card/friend/FriendProfileCard\";\nimport { FriendSearchList } from \"constant\";\nimport FriendProfileModal from \"components/Modal/InviteFriend/FriendProfileModal\";\nimport { useGetUserFriendRequestQuery } from \"store/slicer/friends\";\nimport Loader from \"components/Loader/Loader\";\nimport InviteFriendModal from \"components/Modal/InviteFriend/InviteFriendModal\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Your-Friend-Component\n *@developer Aditya P\n */\n\nconst YourFriend = () => {\n const { data, isLoading, error, status, refetch } =\n useGetUserFriendRequestQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const [openProfile, setOpenProfile] = useState(false);\n const [userProfileData, setUserProfileData] = useState({});\n const [isInviteModal, setIsInviteModal] = useState(false);\n\n const handleOpenProfileModal = (userData) => {\n setUserProfileData(userData);\n setOpenProfile(!openProfile);\n };\n\n const handleIsInviteModal = () => {\n setIsInviteModal(!isInviteModal);\n };\n\n return (\n <div className=\"__yourFriend_container\">\n <div className=\"__header_container_main flex max-[768px]:flex-col justify-between\">\n <div className=\"w-[50%] max-[768px]:w-[100%]\">\n <h4 className=\"font-heading text-[20px] max-[768px]:text-[15px]\">\n Your Friends\n </h4>\n </div>\n {/* <div className=\"__friend_search_container w-[50%] relative max-[768px]:w-[100%] max-[768px]:mt-[15px]\">\n <input\n className=\"w-[100%] bg-[#383838] border border-[#FFFFFF0D] rounded-[20px] px-[35px] py-[3px] text-[11px] outline-none focus:bg-[#fff] focus:text-[#000]\"\n type=\"text\"\n placeholder=\"Search\"\n name=\"fr_search\"\n onChange={() => {}}\n />\n <img\n src={SearchIcon}\n alt=\"search_ico\"\n className=\"w-[14px] h-[14px] absolute top-[10px] left-[12px]\"\n />\n </div> */}\n </div>\n\n {isLoading ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col text-center\">\n <h4 className=\"text-[16px] max-[768px]:text-[14px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n ) : data?.response.statusEnum === 1 ? (\n data?.response.data.length === 0 ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col text-center\">\n <h4 className=\"text-[16px] max-[768px]:text-[14px] text-[#7A7A7A] font-body font-medium\">\n You Don't have a friend yet\n </h4>\n <button\n onClick={handleIsInviteModal}\n className=\"w-[222px] \n py-[6px] \n border \n border-[#F3A151] \n mt-[20px] \n rounded-[8px] \n hover:bg-[#F3A151] \n hover:text-[#000] \n font-medium \n font-body\n max-[768px]:py-[3px]\n max-[768px]:text-[13px]\n \"\n >\n Invite friends\n </button>\n </div>\n </div>\n ) : (\n <div className=\"__friend_list_card_container flex flex-wrap justify-normal gap-[20px] mt-[20px] max-[1180px]:justify-evenly\">\n {data?.response?.data?.map((f) => {\n return (\n <FriendProfileCard\n key={f?.friend._id}\n fkey=\"FRIEND\"\n h_card=\"215px\"\n userData={f?.friend}\n handleModal={() => handleOpenProfileModal(f?.friend)}\n />\n );\n })}\n </div>\n )\n ) : (\n \"There is some problem while fetching the friends! Try again\"\n )}\n\n {openProfile ? (\n <FriendProfileModal\n handleModalStatus={handleOpenProfileModal}\n modalData={userProfileData}\n refresh={refetch}\n />\n ) : (\n \"\"\n )}\n\n {isInviteModal ? (\n <InviteFriendModal handleModalStatus={handleIsInviteModal} />\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default YourFriend;\n","import React from \"react\";\nimport DefaultFriend from \"assets/images/default_friend.png\";\nimport { timeAgo } from \"constant\";\n\nconst FriendStatusCard = ({\n statusKey,\n friendData,\n cancelRequest,\n acceptfriendhandler,\n rejectfriendhandler,\n requestedAt,\n}) => {\n return (\n <div className={`__container_card${friendData?._id} mt-[15px]`}>\n <div className=\"__card__container_view flex justify-between px-[30px] max-[768px]:px-[10px] h-[70px] max-[768px]:h-[90px] max-[1200px]:h-[100px] rounded-[8px] bg-gradient-to-r from-[#FBBC5E0D] to-[#F3A1510D]\">\n <div className=\"__card__user_container flex justify-center items-center\">\n <img\n src={friendData?.photo === null ? DefaultFriend : friendData?.photo}\n alt=\"friends_avatar\"\n className=\"w-[57px] h-[57px] max-[768px]:w-[40px] max-[768px]:h-[40px] rounded-full object-cover\"\n />\n <div className=\"__user_data flex flex-col px-[15px] max-[768px]:px-[10px]\">\n <div>\n <span className=\"text-[16px] max-[768px]:text-[12px]\">\n @{friendData?.userName}\n </span>\n <span className=\"text-[14px] text-[#FFFFFF80] max-[768px]:text-[11px]\">\n {\" \"}\n {`${friendData?.firstName} ${\n friendData?.lastName === null ? \"\" : friendData?.lastName\n }`}\n </span>\n </div>\n <div>\n <span className=\"text-[12px] text-[#FFFFFF99] max-[768px]:text-[9px]\">\n {statusKey === \"PENDING\"\n ? \"Wants to invite you as friends.\"\n : \"You have sent a friend request to them.\"}{\" \"}\n {statusKey === \"PENDING\" ? (\n <span className=\"text-[#fff]\"> {timeAgo(requestedAt)}</span>\n ) : (\n \"\"\n )}\n </span>\n </div>\n </div>\n </div>\n <div\n className=\"__card__button__group \n flex \n gap-[15px] \n justify-center \n items-center \n [&>button]:border \n [&>button]:px-[16px] \n [&>button]:rounded-[8px] \n [&>button]:py-[4px] \n [&>button]:border-[#7A7A7A] \n [&>button]:text-[13px] \n [&>button]:font-medium\n max-[768px]:[&>button]:text-[9px]\n max-[768px]:[&>button]:w-[80px]\n max-[768px]:gap-[7px]\n max-[768px]:[&>button]:px-[15px]\n max-[768px]:[&>button]:py-[1px]\n max-[768px]:flex-col\n \"\n >\n {statusKey === \"PENDING\" ? (\n <button\n onClick={() => rejectfriendhandler(friendData?._id)}\n className={`__reject__button__${friendData?._id} hover:bg-[#EC4134] hover:border-[#EC4134] hover:text-[#fff] transition-all`}\n >\n Reject\n </button>\n ) : (\n <button\n onClick={() => cancelRequest(friendData?._id)}\n className=\"hover:bg-[#EC4134] hover:border-[#EC4134] hover:text-[#fff] transition-all\"\n >\n Cancel\n </button>\n )}\n\n {statusKey === \"PENDING\" ? (\n <button\n onClick={() => acceptfriendhandler(friendData?._id)}\n className={`__accept__button__${friendData?._id} text-[#F3A151] hover:border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] transition-all hover:text-[#000]`}\n >\n Accept\n </button>\n ) : (\n <button className=\"hover:cursor-not-allowed text-[#7A7A7A] border-[#7A7A7A] opacity-70\">\n Requested\n </button>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default FriendStatusCard;\n","import React, { useEffect, useState } from \"react\";\nimport SearchIcon from \"assets/images/search_icon.png\";\nimport FriendStatusCard from \"components/card/friend/FriendStatusCard\";\nimport { useGetPendingInvitesRequestQuery } from \"store/slicer/friends\";\nimport Loader from \"components/Loader/Loader\";\nimport { useAcceptPendingRequestMutation } from \"store/slicer/friends\";\nimport { useRejectFriendRequestMutation } from \"store/slicer/friends\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Friend-Pending-Invites-Module\n *@developer Aditya P\n */\n\nconst PendingRecentInvitesData = [\n {\n userId: \"user-1\",\n key: \"PENDING\",\n username: \"xavier29\",\n fullname: \"Xavier Samuel\",\n tagMsg: \"Wants to invite you as friends\",\n time: \"9 mins ago\",\n },\n {\n userId: \"user-2\",\n key: \"PENDING\",\n username: \"xavier29\",\n fullname: \"Xavier Samuel\",\n tagMsg: \"Wants to invite you as friends\",\n time: \"9 mins ago\",\n },\n {\n userId: \"user-3\",\n key: \"PENDING\",\n username: \"xavier29\",\n fullname: \"Xavier Samuel\",\n tagMsg: \"Wants to invite you as friends\",\n time: \"9 mins ago\",\n },\n];\n\nconst PendingPreviousInviteData = [\n {\n userId: \"user-1\",\n username: \"xavier29\",\n key: \"PENDING\",\n fullname: \"Xavier Samuel\",\n tagMsg: \"Wants to invite you as friends\",\n time: \"9 mins ago\",\n },\n {\n userId: \"user-2\",\n key: \"PENDING\",\n username: \"xavier29\",\n fullname: \"Xavier Samuel\",\n tagMsg: \"Wants to invite you as friends\",\n time: \"9 mins ago\",\n },\n {\n userId: \"user-3\",\n key: \"PENDING\",\n username: \"xavier29\",\n fullname: \"Xavier Samuel\",\n tagMsg: \"Wants to invite you as friends\",\n time: \"9 mins ago\",\n },\n];\n\nconst PendingInvites = () => {\n const { data, isLoading, error, status, refetch } =\n useGetPendingInvitesRequestQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const [acceptfriendQuery, { isLoading: acceptFriendLoader }] =\n useAcceptPendingRequestMutation(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const [rejectfriendQuery, { isLoading: rejectfriendloader }] =\n useRejectFriendRequestMutation(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const handleAcceptfriend = (friendId) => {\n acceptfriendQuery(friendId)\n .then((res) => {\n if (res.data.response.statusEnum === 1) {\n refetch();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const handlerejectfriend = (friendId) => {\n rejectfriendQuery(friendId)\n .then((res) => {\n if (res.data.response.statusEnum === 1) {\n refetch();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n return (\n <div className=\"__friend__pending__invites\">\n <div className=\"__header_container_main flex max-[768px]:flex-col justify-between\">\n <div className=\"w-[50%] max-[768px]:w-[100%]\">\n <h4 className=\"font-heading text-[20px] max-[768px]:text-[15px]\">\n Friend Requests\n </h4>\n </div>\n {/* <div className=\"__friend_search_container w-[50%] relative max-[768px]:w-[100%] max-[768px]:mt-[15px]\">\n <input\n className=\"w-[100%] bg-[#383838] border border-[#FFFFFF0D] rounded-[20px] px-[35px] py-[3px] text-[11px] outline-none focus:bg-[#fff] focus:text-[#000]\"\n type=\"text\"\n placeholder=\"Search\"\n name=\"fr_search\"\n onChange={() => {}}\n />\n <img\n src={SearchIcon}\n alt=\"search_ico\"\n className=\"w-[14px] h-[14px] absolute top-[10px] left-[12px]\"\n />\n </div> */}\n </div>\n\n {isLoading ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n ) : data?.response.statusEnum === 1 ? (\n data?.response?.data?.length === 0 ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n No Pending Invites\n </h4>\n </div>\n </div>\n ) : (\n <div className=\"__friend__status__container mt-[50px]\">\n <div className=\"flex justify-between items-end\">\n <h6 className=\"text-[14px] text-[#FFFFFF80]\">Recent</h6>\n {acceptFriendLoader || rejectfriendloader ? <Loader /> : \"\"}\n </div>\n {data?.response?.data.map((req) => {\n return (\n <FriendStatusCard\n key={req?._id}\n statusKey=\"PENDING\"\n friendData={req.user}\n acceptfriendhandler={handleAcceptfriend}\n requestedAt={req.requestedAt}\n rejectfriendhandler={handlerejectfriend}\n />\n );\n })}\n\n {/* <h6 className=\"text-[14px] text-[#FFFFFF80] mt-[50px]\">Previous</h6>\n <FriendStatusCard statusKey=\"PENDING\" />\n <FriendStatusCard statusKey=\"PENDING\" />\n <FriendStatusCard statusKey=\"PENDING\" />\n <FriendStatusCard statusKey=\"PENDING\" /> */}\n </div>\n )\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default PendingInvites;\n","import React, { useEffect, useState } from \"react\";\nimport SearchIcon from \"assets/images/search_icon.png\";\nimport FriendStatusCard from \"components/card/friend/FriendStatusCard\";\nimport {\n useGetRequestedFriendRequestQuery,\n useCancelRequestedFriendRequestMutation,\n} from \"store/slicer/friends\";\nimport Loader from \"components/Loader/Loader\";\n\nconst Requests = () => {\n const { data, isLoading, error, status, refetch } =\n useGetRequestedFriendRequestQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const [CancelRequest, { isLoading: cancelLoader }] =\n useCancelRequestedFriendRequestMutation(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const [canceRequestedDataList, setCancelrequestedDataList] = useState([]);\n const CancelRequestedRequest = (senderId) => {\n CancelRequest(senderId)\n .then((res) => {\n refetch();\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n // useEffect(() => {\n // setCancelrequestedDataList(data?.response?.data)\n // },[data])\n\n return (\n <div className=\"__friend__request__invites\">\n <div className=\"__header_container_main flex max-[768px]:flex-col justify-between\">\n <div className=\"w-[50%] max-[768px]:w-[100%]\">\n <h4 className=\"font-heading text-[20px] max-[768px]:text-[15px]\">\n Sent Requests\n </h4>\n </div>\n {/* <div className=\"__friend_search_container w-[50%] relative max-[768px]:w-[100%] max-[768px]:mt-[15px]\">\n <input\n className=\"w-[100%] bg-[#383838] border border-[#FFFFFF0D] rounded-[20px] px-[35px] py-[3px] text-[11px] outline-none focus:bg-[#fff] focus:text-[#000]\"\n type=\"text\"\n placeholder=\"Search\"\n name=\"fr_search\"\n onChange={() => {}}\n />\n <img\n src={SearchIcon}\n alt=\"search_ico\"\n className=\"w-[14px] h-[14px] absolute top-[10px] left-[12px]\"\n />\n </div> */}\n </div>\n\n {isLoading ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n ) : data?.response.statusEnum === 1 ? (\n data?.response?.data.length === 0 ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n No Pending Invites\n </h4>\n </div>\n </div>\n ) : (\n <div className=\"__friend__status__container mt-[50px]\">\n <div className=\"flex justify-between items-end\">\n <h6 className=\"text-[14px] text-[#FFFFFF80]\">Recent</h6>\n {cancelLoader ? <Loader /> : \"\"}\n </div>\n {data?.response?.data?.map((req) => {\n return (\n <FriendStatusCard\n key={req?._id}\n statusKey=\"REQ\"\n friendData={req.friend}\n requestedAt={req.requestedAt}\n cancelRequest={CancelRequestedRequest}\n />\n );\n })}\n {/* <FriendStatusCard statusKey=\"REQ\" />\n <FriendStatusCard statusKey=\"REQ\" />\n <FriendStatusCard statusKey=\"REQ\" /> */}\n\n {/* <h6 className=\"text-[14px] text-[#FFFFFF80] mt-[50px]\">Previous</h6>\n <FriendStatusCard statusKey=\"REQ\" />\n <FriendStatusCard statusKey=\"REQ\" />\n <FriendStatusCard statusKey=\"REQ\" />\n <FriendStatusCard statusKey=\"REQ\" /> */}\n </div>\n )\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default Requests;\n","import React, { useEffect, useState } from \"react\";\nimport SearchIcon from \"assets/images/search_icon.png\";\nimport FriendProfileCard from \"components/card/friend/FriendProfileCard\";\nimport { FriendSearchList } from \"constant\";\nimport { useGetBlockFriendRequestQuery } from \"store/slicer/friends\";\nimport Loader from \"components/Loader/Loader\";\nimport { useUnblockFriendRequestMutation } from \"store/slicer/friends\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Friend-Blocked-Module\n *@developer Aditya P\n */\n\nconst Blocked = () => {\n const { data, isLoading, error, status, refetch } =\n useGetBlockFriendRequestQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const [unblockfriendQuery, { isLoading: unblockLoader }] =\n useUnblockFriendRequestMutation(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const unblockfriendHandle = (friendId) => {\n unblockfriendQuery(friendId)\n .then((res) => {\n refetch();\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n return (\n <div className=\"__friend_blocked_container\">\n <div className=\"__header_container_main flex max-[768px]:flex-col justify-between\">\n <div className=\"w-[50%] max-[768px]:w-[100%]\">\n <h4 className=\"font-heading text-[20px] max-[768px]:text-[15px]\">\n Blocked Friends\n </h4>\n </div>\n {/* <div className=\"__friend_search_container w-[50%] relative max-[768px]:w-[100%] max-[768px]:mt-[15px]\">\n <input\n className=\"w-[100%] bg-[#383838] border border-[#FFFFFF0D] rounded-[20px] px-[35px] py-[3px] text-[11px] outline-none focus:bg-[#fff] focus:text-[#000]\"\n type=\"text\"\n placeholder=\"Search\"\n name=\"fr_search\"\n onChange={() => {}}\n />\n <img\n src={SearchIcon}\n alt=\"search_ico\"\n className=\"w-[14px] h-[14px] absolute top-[10px] left-[12px]\"\n />\n </div> */}\n </div>\n {isLoading ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n ) : data?.response?.statusEnum === 1 ? (\n data?.response?.data?.length === 0 ? (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n No Blocked Friends\n </h4>\n </div>\n </div>\n ) : (\n <div className=\"__friend_list_card_container flex flex-wrap justify-normal gap-[20px] mt-[20px] max-[1180px]:justify-evenly\">\n {data?.response?.data?.map((f) => {\n return (\n <FriendProfileCard\n key={f?.friend._id}\n fkey=\"BLOCKED\"\n h_card=\"257px\"\n userData={f.friend}\n handleModal={() => {}}\n handleUnblock={unblockfriendHandle}\n loader={unblockLoader}\n />\n );\n })}\n </div>\n )\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default Blocked;\n","import React, { useState } from \"react\";\nimport FriendBannerImg from \"assets/images/myassets/Friends hero section image 3.jpg\";\nimport InviteFriend from \"components/assets/myassets/friend/InviteFriend\";\nimport YourFriend from \"components/assets/myassets/friend/YourFriend\";\nimport PendingInvites from \"components/assets/myassets/friend/PendingInvites\";\nimport Requests from \"components/assets/myassets/friend/Requests\";\nimport Blocked from \"components/assets/myassets/friend/Blocked\";\nimport ShadowFrame from \"components/shadow-frame\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Friend-Invite-Home-Component\n *@developer Aditya P\n */\n\nconst myFriendTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"invite-friend\",\n name: \"Invite\",\n children: [],\n component: <InviteFriend />,\n },\n {\n id: 1,\n parentId: 0,\n key: \"your-friend\",\n name: \"Your Friends\",\n children: [],\n component: <YourFriend />,\n },\n {\n id: 2,\n parentId: 0,\n key: \"pending-invites\",\n name: \"Friend Requests\",\n children: [],\n component: <PendingInvites />,\n },\n {\n id: 3,\n parentId: 0,\n key: \"request\",\n name: \"Sent Requests\",\n children: [],\n component: <Requests />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"blocked\",\n name: \"Blocked\",\n children: [],\n component: <Blocked />,\n },\n];\n\nconst InviteHome = () => {\n const [activeTabs, setActivetab] = useState({\n id: 0,\n parentId: 0,\n key: \"invite-friend\",\n name: \"Invite\",\n children: [],\n component: <InviteFriend />,\n });\n\n return (\n <div className=\"min-h-[calc(100vh-170px)] __invite_friend_home w-[100%]\">\n <div className=\"__invite_friend_banner_main relative top-0 right-0\">\n <img\n src={FriendBannerImg}\n alt=\"friend_banner_bg\"\n className=\"w-[100%] z-0\"\n />\n <div className=\" absolute top-[50%] left-0 w-[100%] text-center -translate-y-1/2\">\n {\" \"}\n <h1 className=\"font-heading text-xl md:text-2xl lg:text-3xl text-center\">\n Bring Your Friends to the virtual party\n </h1>\n </div>\n </div>\n\n {/* <div className=\"container mx-auto px-[60px] py-[25px] max-[768px]:px-[15px] max-[1280px]:px-0 relative z-10\"> */}\n <div className=\" container app-container mx-auto px-2 md:px-3 xl:px-6 2xl:px-10 py-[25px] relative z-10\">\n <div className=\"__myfriend_invite_container_main px-[15px] py-[35px] flex max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\">\n <div className=\"__myfriend_invite_category_panel w-[25%] py-[20px] px-[10px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <h5 className=\"text-[grey] font-bold tracking-[1px] max-[768px]:hidden\">\n Friends\n </h5>\n <div className=\"overflow-auto\">\n <ul\n data-role=\"list\"\n className=\"\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:my-[15px] \n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:w-max\n max-[768px]:[&>li]:float-left\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n max-[768px]:[&>li]:text-[12px]\n \"\n >\n {myFriendTabs?.map((tabs, index) => {\n return (\n <li\n key={tabs?.key}\n className={`hover:bg-[#FBBC5E1A] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n }`}\n onClick={() => setActivetab(tabs)}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n\n <div className=\"__friends_tabs_container_panel z-[9999] w-[75%] p-[10px] max-[768px]:w-auto max-[768px]:h-auto max-[768px]:mt-[18px]\">\n {activeTabs.key === \"invite-friend\" && activeTabs.component}\n {activeTabs.key === \"your-friend\" && activeTabs.component}\n {activeTabs.key === \"pending-invites\" && activeTabs.component}\n {activeTabs.key === \"request\" && activeTabs.component}\n {activeTabs.key === \"blocked\" && activeTabs.component}\n </div>\n </div>\n </div>\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[350px] md:w-[650px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[70%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[70%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n </div>\n );\n};\n\nexport default InviteHome;\n","import React, { useState } from \"react\";\nimport ModalClose from \"assets/images/myassets/charm_cross.png\";\nimport EyeOffPass from \"assets/images/eye-off.svg\";\nimport EyeOnPass from \"assets/images/eye-on.svg\";\nimport { useUpdateUserPasswordByTokenMutation } from \"store/slicer/userProfile\";\nimport Alert from \"components/popup/Alert/Alert\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Password-Reset-Modal\n *@developer Aditya P\n */\n\nconst PasswordModal = ({ handleModalStatus, modalStatus }) => {\n const [isPasswordCurrentDisplay, SetPasswordCurrentDisplay] = useState(false);\n const [isPasswordNewDisplay, SetPasswordNewDisplay] = useState(false);\n const [isPasswordConfirmDisplay, SetPasswordConfirmDisplay] = useState(false);\n\n const [updatePassword] = useUpdateUserPasswordByTokenMutation();\n const [isLoading, setLoading] = useState(false);\n const [passObj, setpassObj] = useState({\n curr_pass: \"\",\n new_pass: \"\",\n confirm_new_pass: \"\",\n });\n const [passResult, setPassResult] = useState({\n responseMsg: \"\",\n status: false,\n });\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n handleModalStatus();\n };\n\n const handleChangePassword = (e) => {\n setPassResult(() => {\n return {\n ...passResult,\n status: false,\n };\n });\n setpassObj(() => {\n return {\n ...passObj,\n [e.target.name]: e.target.value,\n };\n });\n };\n\n const handleUpdatePassword = (e) => {\n e.preventDefault();\n setLoading(true);\n\n if (\n passObj?.new_pass !== passObj?.confirm_new_pass ||\n passObj?.new_pass.length < 6\n ) {\n setPassResult(() => {\n return {\n responseMsg:\n \"There is some problem while updating the password, try to check the valid password or password length!\",\n status: false,\n };\n });\n setAlertMessage(\n \"There is some problem while updating the password, try to check the valid password or password length!\"\n );\n setSuccessAlert(false);\n setLoading(false);\n } else {\n updatePassword({\n currentPassword: passObj?.curr_pass,\n newPassword: passObj?.new_pass,\n })\n .then((res) => {\n setLoading(false);\n setPassResult(() => {\n return {\n responseMsg: res.data.response.message,\n status: true,\n };\n });\n setAlertMessage(res.data.response.message);\n setSuccessAlert(res.data.response.statusEnum == 1);\n })\n .catch((err) => {\n console.log(err);\n });\n }\n setpassObj(() => {\n return {\n curr_pass: \"\",\n new_pass: \"\",\n confirm_new_pass: \"\",\n };\n });\n };\n\n return (\n <>\n <div className=\"flex bg-[#00000099] w-[100%] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[5] outline-none focus:outline-none\">\n Overlay\n </div>\n <div className=\"hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\">\n <div className=\"bg-[#2C2C2C] __modal__container w-[35%] max-[768px]:w-[100%] h-auto max-[768px]:h-auto max-[1280px]:w-[50%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"__modal_close_icon_container flex justify-end p-[10px]\">\n <div\n onClick={handleModalStatus}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[20px] h-[20px]\"\n >\n <img\n src={ModalClose}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n <div className=\"__modal_content_main px-[35px]\">\n <h4 className=\"text-[18px] max-[768px]:text-[16px] font-bold\">\n Change Password\n </h4>\n <div className=\"__passwordreset_form_container flex flex-col\">\n <form onSubmit={() => {}}>\n <div className=\"flex flex-col relative container mx-auto\">\n <label\n htmlFor=\"curr_pass\"\n className=\"text-[14px] max-[768px]:text-[12px] mt-[20px]\"\n >\n Current Password\n </label>\n <input\n type={`${isPasswordCurrentDisplay ? \"text\" : \"password\"}`}\n className=\"mt-[5px] bg-transparent border-[1px] border-[#FFFFFF1A] rounded-[8px] p-[10px] focus:border-[#f6f6f6] outline-none\"\n name=\"curr_pass\"\n data-testid=\"Password\"\n required\n onChange={handleChangePassword}\n value={passObj?.curr_pass}\n />\n <span\n onClick={() =>\n SetPasswordCurrentDisplay(!isPasswordCurrentDisplay)\n }\n className=\"hover:cursor-pointer absolute top-[60px] right-0 flex items-center px-4 text-gray-600\"\n >\n <img\n className=\"w-[20px] h-[20px]\"\n src={isPasswordCurrentDisplay ? EyeOnPass : EyeOffPass}\n />\n </span>\n </div>\n <div className=\"flex flex-col relative container mx-auto\">\n <label\n htmlFor=\"new_pass\"\n className=\"text-[14px] max-[768px]:text-[12px] mt-[20px]\"\n >\n New Password\n </label>\n <input\n type={`${isPasswordNewDisplay ? \"text\" : \"password\"}`}\n className=\"mt-[5px] bg-transparent border-[1px] border-[#FFFFFF1A] rounded-[8px] p-[10px] focus:border-[#f6f6f6] outline-none\"\n name=\"new_pass\"\n required\n onChange={handleChangePassword}\n value={passObj?.new_pass}\n />\n <span\n onClick={() => SetPasswordNewDisplay(!isPasswordNewDisplay)}\n className=\"hover:cursor-pointer absolute top-[60px] right-0 flex items-center px-4 text-gray-600\"\n >\n <img\n className=\"w-[20px] h-[20px]\"\n src={isPasswordNewDisplay ? EyeOnPass : EyeOffPass}\n />\n </span>\n </div>\n <div className=\"flex flex-col relative container mx-auto\">\n <label\n htmlFor=\"con_new_pass\"\n className=\"text-[14px] max-[768px]:text-[12px] mt-[20px]\"\n >\n Confirm New Password\n </label>\n <input\n type={`${isPasswordConfirmDisplay ? \"text\" : \"password\"}`}\n className=\"mt-[5px] bg-transparent border-[1px] border-[#FFFFFF1A] rounded-[8px] p-[10px] focus:border-[#f6f6f6] outline-none\"\n name=\"confirm_new_pass\"\n required\n onChange={handleChangePassword}\n value={passObj?.confirm_new_pass}\n />\n {passResult?.status ? (\n <span className=\"pt-[10px] text-[13px] text-[#F3A151] font-medium\">\n {passResult?.responseMsg}\n </span>\n ) : (\n \"\"\n )}\n <span\n onClick={() =>\n SetPasswordConfirmDisplay(!isPasswordConfirmDisplay)\n }\n className=\"hover:cursor-pointer absolute top-[60px] right-0 flex items-center px-4 text-gray-600\"\n >\n <img\n className=\"w-[20px] h-[20px]\"\n src={isPasswordConfirmDisplay ? EyeOnPass : EyeOffPass}\n />\n </span>\n </div>\n\n <div className=\"__form_btn_group flex justify-center mt-[40px] mb-[40px] gap-[20px]\">\n <button\n onClick={handleModalStatus}\n className=\"bg-[#7A7A7A] text-[16px] max-[768px]:text-[14px] font-medium w-[50%] rounded-[8px] py-[10px]\"\n >\n Cancel\n </button>\n <button\n onClick={(e) => handleUpdatePassword(e)}\n className=\"bg-[#F3A151] text-[#000] text-[16px] max-[768px]:text-[14px] font-semibold w-[50%] rounded-[8px]\"\n >\n {isLoading ? (\n <span className=\"text-[13px] font-normal\">\n Updating password...\n </span>\n ) : (\n \"Change\"\n )}\n </button>\n </div>\n </form>\n </div>\n </div>\n </div>\n </div>\n\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default PasswordModal;\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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 = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"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 = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\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, inner;\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 if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\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 var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\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 { Area, MediaSize, Point, Size } from './types'\n\n/**\n * Compute the dimension of the crop area based on media size,\n * aspect ratio and optionally rotation\n */\nexport function getCropSize(\n mediaWidth: number,\n mediaHeight: number,\n containerWidth: number,\n containerHeight: number,\n aspect: number,\n rotation = 0\n): Size {\n const { width, height } = rotateSize(mediaWidth, mediaHeight, rotation)\n const fittingWidth = Math.min(width, containerWidth)\n const fittingHeight = Math.min(height, containerHeight)\n\n if (fittingWidth > fittingHeight * aspect) {\n return {\n width: fittingHeight * aspect,\n height: fittingHeight,\n }\n }\n\n return {\n width: fittingWidth,\n height: fittingWidth / aspect,\n }\n}\n\n/**\n * Compute media zoom.\n * We fit the media into the container with \"max-width: 100%; max-height: 100%;\"\n */\nexport function getMediaZoom(mediaSize: MediaSize) {\n // Take the axis with more pixels to improve accuracy\n return mediaSize.width > mediaSize.height\n ? mediaSize.width / mediaSize.naturalWidth\n : mediaSize.height / mediaSize.naturalHeight\n}\n\n/**\n * Ensure a new media position stays in the crop area.\n */\nexport function restrictPosition(\n position: Point,\n mediaSize: Size,\n cropSize: Size,\n zoom: number,\n rotation = 0\n): Point {\n const { width, height } = rotateSize(mediaSize.width, mediaSize.height, rotation)\n\n return {\n x: restrictPositionCoord(position.x, width, cropSize.width, zoom),\n y: restrictPositionCoord(position.y, height, cropSize.height, zoom),\n }\n}\n\nfunction restrictPositionCoord(\n position: number,\n mediaSize: number,\n cropSize: number,\n zoom: number\n): number {\n const maxPosition = (mediaSize * zoom) / 2 - cropSize / 2\n\n return clamp(position, -maxPosition, maxPosition)\n}\n\nexport function getDistanceBetweenPoints(pointA: Point, pointB: Point) {\n return Math.sqrt(Math.pow(pointA.y - pointB.y, 2) + Math.pow(pointA.x - pointB.x, 2))\n}\n\nexport function getRotationBetweenPoints(pointA: Point, pointB: Point) {\n return (Math.atan2(pointB.y - pointA.y, pointB.x - pointA.x) * 180) / Math.PI\n}\n\n/**\n * Compute the output cropped area of the media in percentages and pixels.\n * x/y are the top-left coordinates on the src media\n */\nexport function computeCroppedArea(\n crop: Point,\n mediaSize: MediaSize,\n cropSize: Size,\n aspect: number,\n zoom: number,\n rotation = 0,\n restrictPosition = true\n): { croppedAreaPercentages: Area; croppedAreaPixels: Area } {\n // if the media is rotated by the user, we cannot limit the position anymore\n // as it might need to be negative.\n const limitAreaFn = restrictPosition ? limitArea : noOp\n\n const mediaBBoxSize = rotateSize(mediaSize.width, mediaSize.height, rotation)\n const mediaNaturalBBoxSize = rotateSize(mediaSize.naturalWidth, mediaSize.naturalHeight, rotation)\n\n // calculate the crop area in percentages\n // in the rotated space\n const croppedAreaPercentages = {\n x: limitAreaFn(\n 100,\n (((mediaBBoxSize.width - cropSize.width / zoom) / 2 - crop.x / zoom) / mediaBBoxSize.width) *\n 100\n ),\n y: limitAreaFn(\n 100,\n (((mediaBBoxSize.height - cropSize.height / zoom) / 2 - crop.y / zoom) /\n mediaBBoxSize.height) *\n 100\n ),\n width: limitAreaFn(100, ((cropSize.width / mediaBBoxSize.width) * 100) / zoom),\n height: limitAreaFn(100, ((cropSize.height / mediaBBoxSize.height) * 100) / zoom),\n }\n\n // we compute the pixels size naively\n const widthInPixels = Math.round(\n limitAreaFn(\n mediaNaturalBBoxSize.width,\n (croppedAreaPercentages.width * mediaNaturalBBoxSize.width) / 100\n )\n )\n const heightInPixels = Math.round(\n limitAreaFn(\n mediaNaturalBBoxSize.height,\n (croppedAreaPercentages.height * mediaNaturalBBoxSize.height) / 100\n )\n )\n const isImgWiderThanHigh = mediaNaturalBBoxSize.width >= mediaNaturalBBoxSize.height * aspect\n\n // then we ensure the width and height exactly match the aspect (to avoid rounding approximations)\n // if the media is wider than high, when zoom is 0, the crop height will be equals to image height\n // thus we want to compute the width from the height and aspect for accuracy.\n // Otherwise, we compute the height from width and aspect.\n const sizePixels = isImgWiderThanHigh\n ? {\n width: Math.round(heightInPixels * aspect),\n height: heightInPixels,\n }\n : {\n width: widthInPixels,\n height: Math.round(widthInPixels / aspect),\n }\n\n const croppedAreaPixels = {\n ...sizePixels,\n x: Math.round(\n limitAreaFn(\n mediaNaturalBBoxSize.width - sizePixels.width,\n (croppedAreaPercentages.x * mediaNaturalBBoxSize.width) / 100\n )\n ),\n y: Math.round(\n limitAreaFn(\n mediaNaturalBBoxSize.height - sizePixels.height,\n (croppedAreaPercentages.y * mediaNaturalBBoxSize.height) / 100\n )\n ),\n }\n\n return { croppedAreaPercentages, croppedAreaPixels }\n}\n\n/**\n * Ensure the returned value is between 0 and max\n */\nfunction limitArea(max: number, value: number): number {\n return Math.min(max, Math.max(0, value))\n}\n\nfunction noOp(_max: number, value: number) {\n return value\n}\n\n/**\n * Compute crop and zoom from the croppedAreaPercentages.\n */\nexport function getInitialCropFromCroppedAreaPercentages(\n croppedAreaPercentages: Area,\n mediaSize: MediaSize,\n rotation: number,\n cropSize: Size,\n minZoom: number,\n maxZoom: number\n) {\n const mediaBBoxSize = rotateSize(mediaSize.width, mediaSize.height, rotation)\n\n // This is the inverse process of computeCroppedArea\n const zoom = clamp(\n (cropSize.width / mediaBBoxSize.width) * (100 / croppedAreaPercentages.width),\n minZoom,\n maxZoom\n )\n\n const crop = {\n x:\n (zoom * mediaBBoxSize.width) / 2 -\n cropSize.width / 2 -\n mediaBBoxSize.width * zoom * (croppedAreaPercentages.x / 100),\n y:\n (zoom * mediaBBoxSize.height) / 2 -\n cropSize.height / 2 -\n mediaBBoxSize.height * zoom * (croppedAreaPercentages.y / 100),\n }\n\n return { crop, zoom }\n}\n\n/**\n * Compute zoom from the croppedAreaPixels\n */\nfunction getZoomFromCroppedAreaPixels(\n croppedAreaPixels: Area,\n mediaSize: MediaSize,\n cropSize: Size\n): number {\n const mediaZoom = getMediaZoom(mediaSize)\n\n return cropSize.height > cropSize.width\n ? cropSize.height / (croppedAreaPixels.height * mediaZoom)\n : cropSize.width / (croppedAreaPixels.width * mediaZoom)\n}\n\n/**\n * Compute crop and zoom from the croppedAreaPixels\n */\nexport function getInitialCropFromCroppedAreaPixels(\n croppedAreaPixels: Area,\n mediaSize: MediaSize,\n rotation = 0,\n cropSize: Size,\n minZoom: number,\n maxZoom: number\n): { crop: Point; zoom: number } {\n const mediaNaturalBBoxSize = rotateSize(mediaSize.naturalWidth, mediaSize.naturalHeight, rotation)\n\n const zoom = clamp(\n getZoomFromCroppedAreaPixels(croppedAreaPixels, mediaSize, cropSize),\n minZoom,\n maxZoom\n )\n\n const cropZoom =\n cropSize.height > cropSize.width\n ? cropSize.height / croppedAreaPixels.height\n : cropSize.width / croppedAreaPixels.width\n\n const crop = {\n x:\n ((mediaNaturalBBoxSize.width - croppedAreaPixels.width) / 2 - croppedAreaPixels.x) * cropZoom,\n y:\n ((mediaNaturalBBoxSize.height - croppedAreaPixels.height) / 2 - croppedAreaPixels.y) *\n cropZoom,\n }\n return { crop, zoom }\n}\n\n/**\n * Return the point that is the center of point a and b\n */\nexport function getCenter(a: Point, b: Point): Point {\n return {\n x: (b.x + a.x) / 2,\n y: (b.y + a.y) / 2,\n }\n}\n\nexport function getRadianAngle(degreeValue: number) {\n return (degreeValue * Math.PI) / 180\n}\n\n/**\n * Returns the new bounding area of a rotated rectangle.\n */\nexport function rotateSize(width: number, height: number, rotation: number): Size {\n const rotRad = getRadianAngle(rotation)\n\n return {\n width: Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height),\n height: Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height),\n }\n}\n\n/**\n * Clamp value between min and max\n */\nexport function clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max)\n}\n\n/**\n * Combine multiple class names into a single string.\n */\nexport function classNames(...args: (boolean | string | number | undefined | void | null)[]) {\n return args\n .filter((value) => {\n if (typeof value === 'string' && value.length > 0) {\n return true\n }\n\n return false\n })\n .join(' ')\n .trim()\n}\n","import * as React from 'react'\nimport normalizeWheel from 'normalize-wheel'\nimport { Area, MediaSize, Point, Size, VideoSrc } from './types'\nimport {\n getCropSize,\n restrictPosition,\n getDistanceBetweenPoints,\n getRotationBetweenPoints,\n computeCroppedArea,\n getCenter,\n getInitialCropFromCroppedAreaPixels,\n getInitialCropFromCroppedAreaPercentages,\n classNames,\n clamp,\n} from './helpers'\nimport cssStyles from './styles.css'\n\nexport type CropperProps = {\n image?: string\n video?: string | VideoSrc[]\n transform?: string\n crop: Point\n zoom: number\n rotation: number\n aspect: number\n minZoom: number\n maxZoom: number\n cropShape: 'rect' | 'round'\n cropSize?: Size\n objectFit?: 'contain' | 'cover' | 'horizontal-cover' | 'vertical-cover'\n showGrid?: boolean\n zoomSpeed: number\n zoomWithScroll?: boolean\n onCropChange: (location: Point) => void\n onZoomChange?: (zoom: number) => void\n onRotationChange?: (rotation: number) => void\n onCropComplete?: (croppedArea: Area, croppedAreaPixels: Area) => void\n onCropAreaChange?: (croppedArea: Area, croppedAreaPixels: Area) => void\n onCropSizeChange?: (cropSize: Size) => void\n onInteractionStart?: () => void\n onInteractionEnd?: () => void\n onMediaLoaded?: (mediaSize: MediaSize) => void\n style: {\n containerStyle?: React.CSSProperties\n mediaStyle?: React.CSSProperties\n cropAreaStyle?: React.CSSProperties\n }\n classes: {\n containerClassName?: string\n mediaClassName?: string\n cropAreaClassName?: string\n }\n restrictPosition: boolean\n mediaProps: React.ImgHTMLAttributes<HTMLElement> | React.VideoHTMLAttributes<HTMLElement>\n disableAutomaticStylesInjection?: boolean\n initialCroppedAreaPixels?: Area\n initialCroppedAreaPercentages?: Area\n onTouchRequest?: (e: React.TouchEvent<HTMLDivElement>) => boolean\n onWheelRequest?: (e: WheelEvent) => boolean\n setImageRef?: (ref: React.RefObject<HTMLImageElement>) => void\n setVideoRef?: (ref: React.RefObject<HTMLVideoElement>) => void\n setMediaSize?: (size: MediaSize) => void\n setCropSize?: (size: Size) => void\n nonce?: string\n}\n\ntype State = {\n cropSize: Size | null\n hasWheelJustStarted: boolean\n mediaObjectFit: String | undefined\n}\n\nconst MIN_ZOOM = 1\nconst MAX_ZOOM = 3\n\ntype GestureEvent = UIEvent & {\n rotation: number\n scale: number\n clientX: number\n clientY: number\n}\n\nclass Cropper extends React.Component<CropperProps, State> {\n static defaultProps = {\n zoom: 1,\n rotation: 0,\n aspect: 4 / 3,\n maxZoom: MAX_ZOOM,\n minZoom: MIN_ZOOM,\n cropShape: 'rect' as const,\n objectFit: 'contain' as const,\n showGrid: true,\n style: {},\n classes: {},\n mediaProps: {},\n zoomSpeed: 1,\n restrictPosition: true,\n zoomWithScroll: true,\n }\n\n imageRef: React.RefObject<HTMLImageElement> = React.createRef()\n videoRef: React.RefObject<HTMLVideoElement> = React.createRef()\n containerPosition: Point = { x: 0, y: 0 }\n containerRef: HTMLDivElement | null = null\n styleRef: HTMLStyleElement | null = null\n containerRect: DOMRect | null = null\n mediaSize: MediaSize = { width: 0, height: 0, naturalWidth: 0, naturalHeight: 0 }\n dragStartPosition: Point = { x: 0, y: 0 }\n dragStartCrop: Point = { x: 0, y: 0 }\n gestureZoomStart = 0\n gestureRotationStart = 0\n isTouching = false\n lastPinchDistance = 0\n lastPinchRotation = 0\n rafDragTimeout: number | null = null\n rafPinchTimeout: number | null = null\n wheelTimer: number | null = null\n currentDoc: Document | null = typeof document !== 'undefined' ? document : null\n currentWindow: Window | null = typeof window !== 'undefined' ? window : null\n resizeObserver: ResizeObserver | null = null\n\n state: State = {\n cropSize: null,\n hasWheelJustStarted: false,\n mediaObjectFit: undefined,\n }\n\n componentDidMount() {\n if (!this.currentDoc || !this.currentWindow) return\n if (this.containerRef) {\n if (this.containerRef.ownerDocument) {\n this.currentDoc = this.containerRef.ownerDocument\n }\n if (this.currentDoc.defaultView) {\n this.currentWindow = this.currentDoc.defaultView\n }\n\n this.initResizeObserver()\n // only add window resize listener if ResizeObserver is not supported. Otherwise, it would be redundant\n if (typeof window.ResizeObserver === 'undefined') {\n this.currentWindow.addEventListener('resize', this.computeSizes)\n }\n this.props.zoomWithScroll &&\n this.containerRef.addEventListener('wheel', this.onWheel, { passive: false })\n this.containerRef.addEventListener('gesturestart', this.onGestureStart as EventListener)\n }\n\n this.currentDoc.addEventListener('scroll', this.onScroll)\n\n if (!this.props.disableAutomaticStylesInjection) {\n this.styleRef = this.currentDoc.createElement('style')\n this.styleRef.setAttribute('type', 'text/css')\n if (this.props.nonce) {\n this.styleRef.setAttribute('nonce', this.props.nonce)\n }\n this.styleRef.innerHTML = cssStyles\n this.currentDoc.head.appendChild(this.styleRef)\n }\n\n // when rendered via SSR, the image can already be loaded and its onLoad callback will never be called\n if (this.imageRef.current && this.imageRef.current.complete) {\n this.onMediaLoad()\n }\n\n // set image and video refs in the parent if the callbacks exist\n if (this.props.setImageRef) {\n this.props.setImageRef(this.imageRef)\n }\n\n if (this.props.setVideoRef) {\n this.props.setVideoRef(this.videoRef)\n }\n }\n\n componentWillUnmount() {\n if (!this.currentDoc || !this.currentWindow) return\n if (typeof window.ResizeObserver === 'undefined') {\n this.currentWindow.removeEventListener('resize', this.computeSizes)\n }\n this.resizeObserver?.disconnect()\n if (this.containerRef) {\n this.containerRef.removeEventListener('gesturestart', this.preventZoomSafari)\n }\n\n if (this.styleRef) {\n this.styleRef.parentNode?.removeChild(this.styleRef)\n }\n\n this.cleanEvents()\n this.props.zoomWithScroll && this.clearScrollEvent()\n }\n\n componentDidUpdate(prevProps: CropperProps) {\n if (prevProps.rotation !== this.props.rotation) {\n this.computeSizes()\n this.recomputeCropPosition()\n } else if (prevProps.aspect !== this.props.aspect) {\n this.computeSizes()\n } else if (prevProps.objectFit !== this.props.objectFit) {\n this.computeSizes()\n } else if (prevProps.zoom !== this.props.zoom) {\n this.recomputeCropPosition()\n } else if (\n prevProps.cropSize?.height !== this.props.cropSize?.height ||\n prevProps.cropSize?.width !== this.props.cropSize?.width\n ) {\n this.computeSizes()\n } else if (\n prevProps.crop?.x !== this.props.crop?.x ||\n prevProps.crop?.y !== this.props.crop?.y\n ) {\n this.emitCropAreaChange()\n }\n if (prevProps.zoomWithScroll !== this.props.zoomWithScroll && this.containerRef) {\n this.props.zoomWithScroll\n ? this.containerRef.addEventListener('wheel', this.onWheel, { passive: false })\n : this.clearScrollEvent()\n }\n if (prevProps.video !== this.props.video) {\n this.videoRef.current?.load()\n }\n\n const objectFit = this.getObjectFit()\n if (objectFit !== this.state.mediaObjectFit) {\n this.setState({ mediaObjectFit: objectFit }, this.computeSizes)\n }\n }\n\n initResizeObserver = () => {\n if (typeof window.ResizeObserver === 'undefined' || !this.containerRef) {\n return\n }\n let isFirstResize = true\n this.resizeObserver = new window.ResizeObserver((entries) => {\n if (isFirstResize) {\n isFirstResize = false // observe() is called on mount, we don't want to trigger a recompute on mount\n return\n }\n this.computeSizes()\n })\n this.resizeObserver.observe(this.containerRef)\n }\n\n // this is to prevent Safari on iOS >= 10 to zoom the page\n preventZoomSafari = (e: Event) => e.preventDefault()\n\n cleanEvents = () => {\n if (!this.currentDoc) return\n this.currentDoc.removeEventListener('mousemove', this.onMouseMove)\n this.currentDoc.removeEventListener('mouseup', this.onDragStopped)\n this.currentDoc.removeEventListener('touchmove', this.onTouchMove)\n this.currentDoc.removeEventListener('touchend', this.onDragStopped)\n this.currentDoc.removeEventListener('gesturemove', this.onGestureMove as EventListener)\n this.currentDoc.removeEventListener('gestureend', this.onGestureEnd as EventListener)\n this.currentDoc.removeEventListener('scroll', this.onScroll)\n }\n\n clearScrollEvent = () => {\n if (this.containerRef) this.containerRef.removeEventListener('wheel', this.onWheel)\n if (this.wheelTimer) {\n clearTimeout(this.wheelTimer)\n }\n }\n\n onMediaLoad = () => {\n const cropSize = this.computeSizes()\n\n if (cropSize) {\n this.emitCropData()\n this.setInitialCrop(cropSize)\n }\n\n if (this.props.onMediaLoaded) {\n this.props.onMediaLoaded(this.mediaSize)\n }\n }\n\n setInitialCrop = (cropSize: Size) => {\n if (this.props.initialCroppedAreaPercentages) {\n const { crop, zoom } = getInitialCropFromCroppedAreaPercentages(\n this.props.initialCroppedAreaPercentages,\n this.mediaSize,\n this.props.rotation,\n cropSize,\n this.props.minZoom,\n this.props.maxZoom\n )\n\n this.props.onCropChange(crop)\n this.props.onZoomChange && this.props.onZoomChange(zoom)\n } else if (this.props.initialCroppedAreaPixels) {\n const { crop, zoom } = getInitialCropFromCroppedAreaPixels(\n this.props.initialCroppedAreaPixels,\n this.mediaSize,\n this.props.rotation,\n cropSize,\n this.props.minZoom,\n this.props.maxZoom\n )\n\n this.props.onCropChange(crop)\n this.props.onZoomChange && this.props.onZoomChange(zoom)\n }\n }\n\n getAspect() {\n const { cropSize, aspect } = this.props\n if (cropSize) {\n return cropSize.width / cropSize.height\n }\n return aspect\n }\n\n getObjectFit() {\n if (this.props.objectFit === 'cover') {\n const mediaRef = this.imageRef.current || this.videoRef.current\n\n if (mediaRef && this.containerRef) {\n this.containerRect = this.containerRef.getBoundingClientRect()\n const containerAspect = this.containerRect.width / this.containerRect.height\n const naturalWidth =\n this.imageRef.current?.naturalWidth || this.videoRef.current?.videoWidth || 0\n const naturalHeight =\n this.imageRef.current?.naturalHeight || this.videoRef.current?.videoHeight || 0\n const mediaAspect = naturalWidth / naturalHeight\n\n return mediaAspect < containerAspect ? 'horizontal-cover' : 'vertical-cover'\n }\n return 'horizontal-cover'\n }\n\n return this.props.objectFit\n }\n\n computeSizes = () => {\n const mediaRef = this.imageRef.current || this.videoRef.current\n\n if (mediaRef && this.containerRef) {\n this.containerRect = this.containerRef.getBoundingClientRect()\n this.saveContainerPosition()\n const containerAspect = this.containerRect.width / this.containerRect.height\n const naturalWidth =\n this.imageRef.current?.naturalWidth || this.videoRef.current?.videoWidth || 0\n const naturalHeight =\n this.imageRef.current?.naturalHeight || this.videoRef.current?.videoHeight || 0\n const isMediaScaledDown =\n mediaRef.offsetWidth < naturalWidth || mediaRef.offsetHeight < naturalHeight\n const mediaAspect = naturalWidth / naturalHeight\n\n // We do not rely on the offsetWidth/offsetHeight if the media is scaled down\n // as the values they report are rounded. That will result in precision losses\n // when calculating zoom. We use the fact that the media is positionned relative\n // to the container. That allows us to use the container's dimensions\n // and natural aspect ratio of the media to calculate accurate media size.\n // However, for this to work, the container should not be rotated\n let renderedMediaSize: Size\n\n if (isMediaScaledDown) {\n switch (this.state.mediaObjectFit) {\n default:\n case 'contain':\n renderedMediaSize =\n containerAspect > mediaAspect\n ? {\n width: this.containerRect.height * mediaAspect,\n height: this.containerRect.height,\n }\n : {\n width: this.containerRect.width,\n height: this.containerRect.width / mediaAspect,\n }\n break\n case 'horizontal-cover':\n renderedMediaSize = {\n width: this.containerRect.width,\n height: this.containerRect.width / mediaAspect,\n }\n break\n case 'vertical-cover':\n renderedMediaSize = {\n width: this.containerRect.height * mediaAspect,\n height: this.containerRect.height,\n }\n break\n }\n } else {\n renderedMediaSize = {\n width: mediaRef.offsetWidth,\n height: mediaRef.offsetHeight,\n }\n }\n\n this.mediaSize = {\n ...renderedMediaSize,\n naturalWidth,\n naturalHeight,\n }\n\n // set media size in the parent\n if (this.props.setMediaSize) {\n this.props.setMediaSize(this.mediaSize)\n }\n\n const cropSize = this.props.cropSize\n ? this.props.cropSize\n : getCropSize(\n this.mediaSize.width,\n this.mediaSize.height,\n this.containerRect.width,\n this.containerRect.height,\n this.props.aspect,\n this.props.rotation\n )\n\n if (\n this.state.cropSize?.height !== cropSize.height ||\n this.state.cropSize?.width !== cropSize.width\n ) {\n this.props.onCropSizeChange && this.props.onCropSizeChange(cropSize)\n }\n this.setState({ cropSize }, this.recomputeCropPosition)\n // pass crop size to parent\n if (this.props.setCropSize) {\n this.props.setCropSize(cropSize)\n }\n\n return cropSize\n }\n }\n\n saveContainerPosition = () => {\n if (this.containerRef) {\n const bounds = this.containerRef.getBoundingClientRect()\n this.containerPosition = { x: bounds.left, y: bounds.top }\n }\n }\n\n static getMousePoint = (e: MouseEvent | React.MouseEvent | GestureEvent) => ({\n x: Number(e.clientX),\n y: Number(e.clientY),\n })\n\n static getTouchPoint = (touch: Touch | React.Touch) => ({\n x: Number(touch.clientX),\n y: Number(touch.clientY),\n })\n\n onMouseDown = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (!this.currentDoc) return\n e.preventDefault()\n this.currentDoc.addEventListener('mousemove', this.onMouseMove)\n this.currentDoc.addEventListener('mouseup', this.onDragStopped)\n this.saveContainerPosition()\n this.onDragStart(Cropper.getMousePoint(e))\n }\n\n onMouseMove = (e: MouseEvent) => this.onDrag(Cropper.getMousePoint(e))\n\n onScroll = (e: Event) => {\n if (!this.currentDoc) return\n e.preventDefault()\n this.saveContainerPosition()\n }\n\n onTouchStart = (e: React.TouchEvent<HTMLDivElement>) => {\n if (!this.currentDoc) return\n this.isTouching = true\n if (this.props.onTouchRequest && !this.props.onTouchRequest(e)) {\n return\n }\n\n this.currentDoc.addEventListener('touchmove', this.onTouchMove, { passive: false }) // iOS 11 now defaults to passive: true\n this.currentDoc.addEventListener('touchend', this.onDragStopped)\n\n this.saveContainerPosition()\n\n if (e.touches.length === 2) {\n this.onPinchStart(e)\n } else if (e.touches.length === 1) {\n this.onDragStart(Cropper.getTouchPoint(e.touches[0]))\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n // Prevent whole page from scrolling on iOS.\n e.preventDefault()\n if (e.touches.length === 2) {\n this.onPinchMove(e)\n } else if (e.touches.length === 1) {\n this.onDrag(Cropper.getTouchPoint(e.touches[0]))\n }\n }\n\n onGestureStart = (e: GestureEvent) => {\n if (!this.currentDoc) return\n e.preventDefault()\n this.currentDoc.addEventListener('gesturechange', this.onGestureMove as EventListener)\n this.currentDoc.addEventListener('gestureend', this.onGestureEnd as EventListener)\n this.gestureZoomStart = this.props.zoom\n this.gestureRotationStart = this.props.rotation\n }\n\n onGestureMove = (e: GestureEvent) => {\n e.preventDefault()\n if (this.isTouching) {\n // this is to avoid conflict between gesture and touch events\n return\n }\n\n const point = Cropper.getMousePoint(e)\n const newZoom = this.gestureZoomStart - 1 + e.scale\n this.setNewZoom(newZoom, point, { shouldUpdatePosition: true })\n if (this.props.onRotationChange) {\n const newRotation = this.gestureRotationStart + e.rotation\n this.props.onRotationChange(newRotation)\n }\n }\n\n onGestureEnd = (e: GestureEvent) => {\n this.cleanEvents()\n }\n\n onDragStart = ({ x, y }: Point) => {\n this.dragStartPosition = { x, y }\n this.dragStartCrop = { ...this.props.crop }\n this.props.onInteractionStart?.()\n }\n\n onDrag = ({ x, y }: Point) => {\n if (!this.currentWindow) return\n if (this.rafDragTimeout) this.currentWindow.cancelAnimationFrame(this.rafDragTimeout)\n\n this.rafDragTimeout = this.currentWindow.requestAnimationFrame(() => {\n if (!this.state.cropSize) return\n if (x === undefined || y === undefined) return\n const offsetX = x - this.dragStartPosition.x\n const offsetY = y - this.dragStartPosition.y\n const requestedPosition = {\n x: this.dragStartCrop.x + offsetX,\n y: this.dragStartCrop.y + offsetY,\n }\n\n const newPosition = this.props.restrictPosition\n ? restrictPosition(\n requestedPosition,\n this.mediaSize,\n this.state.cropSize,\n this.props.zoom,\n this.props.rotation\n )\n : requestedPosition\n this.props.onCropChange(newPosition)\n })\n }\n\n onDragStopped = () => {\n this.isTouching = false\n this.cleanEvents()\n this.emitCropData()\n this.props.onInteractionEnd?.()\n }\n\n onPinchStart(e: React.TouchEvent<HTMLDivElement>) {\n const pointA = Cropper.getTouchPoint(e.touches[0])\n const pointB = Cropper.getTouchPoint(e.touches[1])\n this.lastPinchDistance = getDistanceBetweenPoints(pointA, pointB)\n this.lastPinchRotation = getRotationBetweenPoints(pointA, pointB)\n this.onDragStart(getCenter(pointA, pointB))\n }\n\n onPinchMove(e: TouchEvent) {\n if (!this.currentDoc || !this.currentWindow) return\n const pointA = Cropper.getTouchPoint(e.touches[0])\n const pointB = Cropper.getTouchPoint(e.touches[1])\n const center = getCenter(pointA, pointB)\n this.onDrag(center)\n\n if (this.rafPinchTimeout) this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout)\n this.rafPinchTimeout = this.currentWindow.requestAnimationFrame(() => {\n const distance = getDistanceBetweenPoints(pointA, pointB)\n const newZoom = this.props.zoom * (distance / this.lastPinchDistance)\n this.setNewZoom(newZoom, center, { shouldUpdatePosition: false })\n this.lastPinchDistance = distance\n\n const rotation = getRotationBetweenPoints(pointA, pointB)\n const newRotation = this.props.rotation + (rotation - this.lastPinchRotation)\n this.props.onRotationChange && this.props.onRotationChange(newRotation)\n this.lastPinchRotation = rotation\n })\n }\n\n onWheel = (e: WheelEvent) => {\n if (!this.currentWindow) return\n if (this.props.onWheelRequest && !this.props.onWheelRequest(e)) {\n return\n }\n\n e.preventDefault()\n const point = Cropper.getMousePoint(e)\n const { pixelY } = normalizeWheel(e)\n const newZoom = this.props.zoom - (pixelY * this.props.zoomSpeed) / 200\n this.setNewZoom(newZoom, point, { shouldUpdatePosition: true })\n\n if (!this.state.hasWheelJustStarted) {\n this.setState({ hasWheelJustStarted: true }, () => this.props.onInteractionStart?.())\n }\n\n if (this.wheelTimer) {\n clearTimeout(this.wheelTimer)\n }\n this.wheelTimer = this.currentWindow.setTimeout(\n () => this.setState({ hasWheelJustStarted: false }, () => this.props.onInteractionEnd?.()),\n 250\n )\n }\n\n getPointOnContainer = ({ x, y }: Point, containerTopLeft: Point): Point => {\n if (!this.containerRect) {\n throw new Error('The Cropper is not mounted')\n }\n return {\n x: this.containerRect.width / 2 - (x - containerTopLeft.x),\n y: this.containerRect.height / 2 - (y - containerTopLeft.y),\n }\n }\n\n getPointOnMedia = ({ x, y }: Point) => {\n const { crop, zoom } = this.props\n return {\n x: (x + crop.x) / zoom,\n y: (y + crop.y) / zoom,\n }\n }\n\n setNewZoom = (zoom: number, point: Point, { shouldUpdatePosition = true } = {}) => {\n if (!this.state.cropSize || !this.props.onZoomChange) return\n\n const newZoom = clamp(zoom, this.props.minZoom, this.props.maxZoom)\n\n if (shouldUpdatePosition) {\n const zoomPoint = this.getPointOnContainer(point, this.containerPosition)\n const zoomTarget = this.getPointOnMedia(zoomPoint)\n const requestedPosition = {\n x: zoomTarget.x * newZoom - zoomPoint.x,\n y: zoomTarget.y * newZoom - zoomPoint.y,\n }\n\n const newPosition = this.props.restrictPosition\n ? restrictPosition(\n requestedPosition,\n this.mediaSize,\n this.state.cropSize,\n newZoom,\n this.props.rotation\n )\n : requestedPosition\n\n this.props.onCropChange(newPosition)\n }\n this.props.onZoomChange(newZoom)\n }\n\n getCropData = () => {\n if (!this.state.cropSize) {\n return null\n }\n\n // this is to ensure the crop is correctly restricted after a zoom back (https://github.com/ValentinH/react-easy-crop/issues/6)\n const restrictedPosition = this.props.restrictPosition\n ? restrictPosition(\n this.props.crop,\n this.mediaSize,\n this.state.cropSize,\n this.props.zoom,\n this.props.rotation\n )\n : this.props.crop\n return computeCroppedArea(\n restrictedPosition,\n this.mediaSize,\n this.state.cropSize,\n this.getAspect(),\n this.props.zoom,\n this.props.rotation,\n this.props.restrictPosition\n )\n }\n\n emitCropData = () => {\n const cropData = this.getCropData()\n if (!cropData) return\n\n const { croppedAreaPercentages, croppedAreaPixels } = cropData\n if (this.props.onCropComplete) {\n this.props.onCropComplete(croppedAreaPercentages, croppedAreaPixels)\n }\n\n if (this.props.onCropAreaChange) {\n this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels)\n }\n }\n\n emitCropAreaChange = () => {\n const cropData = this.getCropData()\n if (!cropData) return\n\n const { croppedAreaPercentages, croppedAreaPixels } = cropData\n if (this.props.onCropAreaChange) {\n this.props.onCropAreaChange(croppedAreaPercentages, croppedAreaPixels)\n }\n }\n\n recomputeCropPosition = () => {\n if (!this.state.cropSize) return\n\n const newPosition = this.props.restrictPosition\n ? restrictPosition(\n this.props.crop,\n this.mediaSize,\n this.state.cropSize,\n this.props.zoom,\n this.props.rotation\n )\n : this.props.crop\n\n this.props.onCropChange(newPosition)\n this.emitCropData()\n }\n\n render() {\n const {\n image,\n video,\n mediaProps,\n transform,\n crop: { x, y },\n rotation,\n zoom,\n cropShape,\n showGrid,\n style: { containerStyle, cropAreaStyle, mediaStyle },\n classes: { containerClassName, cropAreaClassName, mediaClassName },\n } = this.props\n\n const objectFit = this.state.mediaObjectFit ?? this.getObjectFit()\n\n return (\n <div\n onMouseDown={this.onMouseDown}\n onTouchStart={this.onTouchStart}\n ref={(el) => (this.containerRef = el)}\n data-testid=\"container\"\n style={containerStyle}\n className={classNames('reactEasyCrop_Container', containerClassName)}\n >\n {image ? (\n <img\n alt=\"\"\n className={classNames(\n 'reactEasyCrop_Image',\n objectFit === 'contain' && 'reactEasyCrop_Contain',\n objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal',\n objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical',\n mediaClassName\n )}\n {...(mediaProps as React.ImgHTMLAttributes<HTMLElement>)}\n src={image}\n ref={this.imageRef}\n style={{\n ...mediaStyle,\n transform:\n transform || `translate(${x}px, ${y}px) rotate(${rotation}deg) scale(${zoom})`,\n }}\n onLoad={this.onMediaLoad}\n />\n ) : (\n video && (\n <video\n autoPlay\n playsInline\n loop\n muted={true}\n className={classNames(\n 'reactEasyCrop_Video',\n objectFit === 'contain' && 'reactEasyCrop_Contain',\n objectFit === 'horizontal-cover' && 'reactEasyCrop_Cover_Horizontal',\n objectFit === 'vertical-cover' && 'reactEasyCrop_Cover_Vertical',\n mediaClassName\n )}\n {...mediaProps}\n ref={this.videoRef}\n onLoadedMetadata={this.onMediaLoad}\n style={{\n ...mediaStyle,\n transform:\n transform || `translate(${x}px, ${y}px) rotate(${rotation}deg) scale(${zoom})`,\n }}\n controls={false}\n >\n {(Array.isArray(video) ? video : [{ src: video }]).map((item) => (\n <source key={item.src} {...item} />\n ))}\n </video>\n )\n )}\n {this.state.cropSize && (\n <div\n style={{\n ...cropAreaStyle,\n width: this.state.cropSize.width,\n height: this.state.cropSize.height,\n }}\n data-testid=\"cropper\"\n className={classNames(\n 'reactEasyCrop_CropArea',\n cropShape === 'round' && 'reactEasyCrop_CropAreaRound',\n showGrid && 'reactEasyCrop_CropAreaGrid',\n cropAreaClassName\n )}\n />\n )}\n </div>\n )\n }\n}\n\nexport default Cropper\n","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getLinearProgressUtilityClass(slot) {\n return generateUtilityClass('MuiLinearProgress', slot);\n}\nconst linearProgressClasses = generateUtilityClasses('MuiLinearProgress', ['root', 'colorPrimary', 'colorSecondary', 'determinate', 'indeterminate', 'buffer', 'query', 'dashed', 'dashedColorPrimary', 'dashedColorSecondary', 'bar', 'barColorPrimary', 'barColorSecondary', 'bar1Indeterminate', 'bar1Determinate', 'bar1Buffer', 'bar2Indeterminate', 'bar2Buffer']);\nexport default linearProgressClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"value\", \"valueBuffer\", \"variant\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4,\n _t5,\n _t6;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { keyframes, css } from '@mui/system';\nimport { darken, lighten } from '@mui/system/colorManipulator';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport { getLinearProgressUtilityClass } from './linearProgressClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TRANSITION_DURATION = 4; // seconds\nconst indeterminate1Keyframe = keyframes(_t || (_t = _`\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n`));\nconst indeterminate2Keyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n left: -200%;\n right: 100%;\n }\n\n 60% {\n left: 107%;\n right: -8%;\n }\n\n 100% {\n left: 107%;\n right: -8%;\n }\n`));\nconst bufferKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n opacity: 1;\n background-position: 0 -23px;\n }\n\n 60% {\n opacity: 0;\n background-position: 0 -23px;\n }\n\n 100% {\n opacity: 1;\n background-position: -200px -23px;\n }\n`));\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n color\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, variant],\n dashed: ['dashed', `dashedColor${capitalize(color)}`],\n bar1: ['bar', `barColor${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar1Indeterminate', variant === 'determinate' && 'bar1Determinate', variant === 'buffer' && 'bar1Buffer'],\n bar2: ['bar', variant !== 'buffer' && `barColor${capitalize(color)}`, variant === 'buffer' && `color${capitalize(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar2Indeterminate', variant === 'buffer' && 'bar2Buffer']\n };\n return composeClasses(slots, getLinearProgressUtilityClass, classes);\n};\nconst getColorShade = (theme, color) => {\n if (color === 'inherit') {\n return 'currentColor';\n }\n if (theme.vars) {\n return theme.vars.palette.LinearProgress[`${color}Bg`];\n }\n return theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.5);\n};\nconst LinearProgressRoot = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`color${capitalize(ownerState.color)}`], styles[ownerState.variant]];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n position: 'relative',\n overflow: 'hidden',\n display: 'block',\n height: 4,\n zIndex: 0,\n // Fix Safari's bug during composition of different paint.\n '@media print': {\n colorAdjust: 'exact'\n },\n backgroundColor: getColorShade(theme, ownerState.color)\n}, ownerState.color === 'inherit' && ownerState.variant !== 'buffer' && {\n backgroundColor: 'none',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'currentColor',\n opacity: 0.3\n }\n}, ownerState.variant === 'buffer' && {\n backgroundColor: 'transparent'\n}, ownerState.variant === 'query' && {\n transform: 'rotate(180deg)'\n}));\nconst LinearProgressDashed = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Dashed',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.dashed, styles[`dashedColor${capitalize(ownerState.color)}`]];\n }\n})(({\n ownerState,\n theme\n}) => {\n const backgroundColor = getColorShade(theme, ownerState.color);\n return _extends({\n position: 'absolute',\n marginTop: 0,\n height: '100%',\n width: '100%'\n }, ownerState.color === 'inherit' && {\n opacity: 0.3\n }, {\n backgroundImage: `radial-gradient(${backgroundColor} 0%, ${backgroundColor} 16%, transparent 42%)`,\n backgroundSize: '10px 10px',\n backgroundPosition: '0 -23px'\n });\n}, css(_t4 || (_t4 = _`\n animation: ${0} 3s infinite linear;\n `), bufferKeyframe));\nconst LinearProgressBar1 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar1',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar1Indeterminate, ownerState.variant === 'determinate' && styles.bar1Determinate, ownerState.variant === 'buffer' && styles.bar1Buffer];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left',\n backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : (theme.vars || theme).palette[ownerState.color].main\n}, ownerState.variant === 'determinate' && {\n transition: `transform .${TRANSITION_DURATION}s linear`\n}, ownerState.variant === 'buffer' && {\n zIndex: 1,\n transition: `transform .${TRANSITION_DURATION}s linear`\n}), ({\n ownerState\n}) => (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && css(_t5 || (_t5 = _`\n width: auto;\n animation: ${0} 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\n `), indeterminate1Keyframe));\nconst LinearProgressBar2 = styled('span', {\n name: 'MuiLinearProgress',\n slot: 'Bar2',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.bar, styles[`barColor${capitalize(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar2Indeterminate, ownerState.variant === 'buffer' && styles.bar2Buffer];\n }\n})(({\n ownerState,\n theme\n}) => _extends({\n width: '100%',\n position: 'absolute',\n left: 0,\n bottom: 0,\n top: 0,\n transition: 'transform 0.2s linear',\n transformOrigin: 'left'\n}, ownerState.variant !== 'buffer' && {\n backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : (theme.vars || theme).palette[ownerState.color].main\n}, ownerState.color === 'inherit' && {\n opacity: 0.3\n}, ownerState.variant === 'buffer' && {\n backgroundColor: getColorShade(theme, ownerState.color),\n transition: `transform .${TRANSITION_DURATION}s linear`\n}), ({\n ownerState\n}) => (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && css(_t6 || (_t6 = _`\n width: auto;\n animation: ${0} 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;\n `), indeterminate2Keyframe));\n\n/**\n * ## ARIA\n *\n * If the progress bar is describing the loading progress of a particular region of a page,\n * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`\n * attribute to `true` on that region until it has finished loading.\n */\nconst LinearProgress = /*#__PURE__*/React.forwardRef(function LinearProgress(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiLinearProgress'\n });\n const {\n className,\n color = 'primary',\n value,\n valueBuffer,\n variant = 'indeterminate'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const isRtl = useRtl();\n const rootProps = {};\n const inlineStyles = {\n bar1: {},\n bar2: {}\n };\n if (variant === 'determinate' || variant === 'buffer') {\n if (value !== undefined) {\n rootProps['aria-valuenow'] = Math.round(value);\n rootProps['aria-valuemin'] = 0;\n rootProps['aria-valuemax'] = 100;\n let transform = value - 100;\n if (isRtl) {\n transform = -transform;\n }\n inlineStyles.bar1.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a value prop ' + 'when using the determinate or buffer variant of LinearProgress .');\n }\n }\n if (variant === 'buffer') {\n if (valueBuffer !== undefined) {\n let transform = (valueBuffer || 0) - 100;\n if (isRtl) {\n transform = -transform;\n }\n inlineStyles.bar2.transform = `translateX(${transform}%)`;\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('MUI: You need to provide a valueBuffer prop ' + 'when using the buffer variant of LinearProgress.');\n }\n }\n return /*#__PURE__*/_jsxs(LinearProgressRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n role: \"progressbar\"\n }, rootProps, {\n ref: ref\n }, other, {\n children: [variant === 'buffer' ? /*#__PURE__*/_jsx(LinearProgressDashed, {\n className: classes.dashed,\n ownerState: ownerState\n }) : null, /*#__PURE__*/_jsx(LinearProgressBar1, {\n className: classes.bar1,\n ownerState: ownerState,\n style: inlineStyles.bar1\n }), variant === 'determinate' ? null : /*#__PURE__*/_jsx(LinearProgressBar2, {\n className: classes.bar2,\n ownerState: ownerState,\n style: inlineStyles.bar2\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? LinearProgress.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'primary', 'secondary']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the progress indicator for the determinate and buffer variants.\n * Value between 0 and 100.\n */\n value: PropTypes.number,\n /**\n * The value for the buffer variant.\n * Value between 0 and 100.\n */\n valueBuffer: PropTypes.number,\n /**\n * The variant to use.\n * Use indeterminate or query when there is no progress value.\n * @default 'indeterminate'\n */\n variant: PropTypes.oneOf(['buffer', 'determinate', 'indeterminate', 'query'])\n} : void 0;\nexport default LinearProgress;","import React, { useRef, useState } from \"react\";\nimport ModalClose from \"assets/images/myassets/charm_cross.png\";\nimport UploadIcon from \"assets/images/upload__icon.png\";\nimport Cropper from \"react-easy-crop\";\nimport { getCroppedImg } from \"constant\";\nimport AWS from \"aws-sdk\";\nimport { LinearProgress } from \"@mui/material\";\nimport axios from \"axios\";\nimport Loader from \"components/Loader/Loader\";\nimport { useUpdateFileNameMutation } from \"store/slicer/userProfile\";\nimport { useUpdateUserFilePhotoMutation } from \"store/slicer/userProfile\";\nimport ErrorAlert from \"utils/errorAlert\";\n\n// AWS S3-bucket Setup\nconst _S3_BUCKET = process.env.REACT_APP_AWS_S3_BUCKET_NAME;\nconst AWS_REGION = process.env.REACT_APP_AWS_S3_BUCKET_REGION;\n\n// AWS.config.update({\n// accessKeyId: process.env.REACT_APP_AWS_ACCESS_KEY_ID,\n// secretAccessKey: process.env.REACT_APP_AWS_SECRET_KEY_ID,\n// });\n\nconst MyBucketContainer = new AWS.S3({\n params: { Bucket: _S3_BUCKET },\n region: AWS_REGION,\n accessKeyId: process.env.REACT_APP_AWS_ACCESS_KEY_ID,\n secretAccessKey: process.env.REACT_APP_AWS_SECRET_KEY_ID,\n});\n\nconst ProfilePhotoModal = ({ handlePhotoModal, UpdateProfilePic }) => {\n const [updateFilenameQuery] = useUpdateFileNameMutation();\n const [updateFilePhotoQuery] = useUpdateUserFilePhotoMutation();\n const [IsNextUpload, setNextUpload] = useState(false);\n const [ProfileViewImage, setProfileViewImage] = useState(null);\n const [selectedFile, setSelectedFile] = useState(null);\n const [crop, setCrop] = useState({ x: 0, y: 0 });\n const [rotation, setRotation] = useState(0);\n const [zoom, setZoom] = useState(1);\n const Inputref = useRef();\n const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);\n const [progressData, setprogressData] = useState(0);\n const [s3ImageURL, setS3ImageURL] = useState(\"\");\n const [isProgress, setProgress] = useState(true);\n const [isLoading, setLoading] = useState(false);\n const [serverFileNameMeta, setServerFileNameMeta] = useState({});\n\n const onCropComplete = (croppedArea, croppedAreaPixels) => {\n setCroppedAreaPixels(croppedAreaPixels);\n };\n\n const showCroppedImage = async (filename) => {\n try {\n const croppedImage = await getCroppedImg(\n ProfileViewImage,\n croppedAreaPixels,\n rotation,\n filename\n );\n // const response = await fetch(croppedImage);\n\n // console.log(\"croppedPix\", response);\n // // here image is url/location of image\n // const blobCropped = await response.blob();\n // const fileImg = new File([blobCropped], filename, { type: blobCropped.type });\n // console.log(\"fileImg\", fileImg, blobCropped);\n // // const dataURL = ReadImageFile()\n // // console.log(croppedImage)\n // // const getImage = await blobToImage(new Blob([croppedImage]))\n // // console.log(getImage)\n // // const blob = new Blob([croppedImage]);\n // const file = new File([croppedImage], selectedFile);\n // console.log(croppedImage);\n // return fileImg;\n return croppedImage;\n } catch (e) {\n console.error(e);\n }\n };\n\n const handleOpenFileSystem = () => {\n Inputref.current.click();\n };\n\n const handleCancelProfileViewer = () => {\n setProfileViewImage(null);\n setProgress(true);\n setNextUpload(!IsNextUpload);\n };\n\n const handleChangeFile = async (e) => {\n const File = e.target.files[0];\n setSelectedFile(File);\n setNextUpload(!IsNextUpload);\n const ImageDataUrl = await ReadImageFile(File);\n setProfileViewImage(ImageDataUrl.result);\n };\n\n // read a file selected by user and convert it into data object URL\n const ReadImageFile = (file) => {\n return new Promise((resolve) => {\n const reader = new FileReader();\n reader.addEventListener(\"load\", () => {\n resolve(reader);\n });\n reader.readAsDataURL(file);\n });\n };\n const randomDigit = Date.now() + Math.round(Math.random() * 1000);\n\n // Upload Profile Photo To S3\n const UploadProfileImageToS3 = async () => {\n setLoading(true);\n // Generate unique File name for selected photo\n let currentSeletedFileType = selectedFile?.type;\n let derivedFolderName = \"user-profile\";\n\n const fileNameObj = {\n mimetype: currentSeletedFileType,\n path: derivedFolderName,\n };\n\n const getFilenameMeta = await updateFilenameQuery(fileNameObj);\n // const checkAndPreviewFile = (file) => {\n // // Check if the file is an image by checking its type\n // const validImageTypes = [\"image/jpeg\", \"image/png\", \"image/gif\"];\n\n // if (validImageTypes.includes(file.type)) {\n // console.log(\"This is a valid image file:\", file);\n\n // // Create a URL to preview the image\n // const imageUrl = URL.createObjectURL(file);\n\n // // Option 1: Log the URL so you can inspect it in the console\n // console.log(\"Image URL:\", imageUrl);\n\n // // Option 2: Open the image in a new browser tab\n // window.open(imageUrl, \"_blank\");\n\n // // Option 3: Display the image in the DOM (for preview in the UI)\n // const imgElement = document.createElement(\"img\");\n // imgElement.src = imageUrl;\n // imgElement.alt = \"Cropped Image Preview\";\n // document.body.appendChild(imgElement); // Append the image to the body (or any container element)\n\n // // You can later revoke the URL when you're done with it\n // URL.revokeObjectURL(imageUrl); // Optional: clean up the URL after preview\n // } else {\n // console.error(\"The file is not a valid image.\");\n // }\n // };\n\n if (getFilenameMeta?.data?.response?.statusEnum === 1) {\n setServerFileNameMeta(getFilenameMeta?.data?.response?.data);\n // Upload the photo to s3\n\n showCroppedImage(getFilenameMeta?.data?.response?.data?.fileName).then(\n (resp) => {\n // checkAndPreviewFile(resp);\n console.log(resp, \"croppedIMG\");\n const params = {\n Bucket: _S3_BUCKET,\n Key: `user-profile/${getFilenameMeta?.data?.response?.data?.fileName}`,\n Body: resp,\n };\n\n const upload = MyBucketContainer.putObject(params)\n .on(\"httpUploadProgress\", (evt) => {\n setprogressData((evt.loaded * 100) / evt.total);\n setProgress(false);\n })\n .promise();\n\n upload\n .then(async (data, err) => {\n if (err) {\n ErrorAlert(\"Error in uploading.\");\n\n console.log(err);\n } else {\n setProgress(true);\n handlePhotoModal();\n\n const getVerifyfileId = await updateFilePhotoQuery(\n getFilenameMeta?.data?.response?.data?._id\n );\n if (getVerifyfileId?.data?.response?.statusEnum === 1) {\n setS3ImageURL(\n `https://${_S3_BUCKET}.s3.amazonaws.com/user-profile/${getFilenameMeta?.data?.response?.data?.fileName}`\n );\n UpdateProfilePic(getVerifyfileId?.data?.response?.data?._id);\n }\n setLoading(false);\n }\n })\n .catch((error) => {\n ErrorAlert(\"Error while uploading.\");\n setLoading(false);\n setProfileViewImage(null);\n setProgress(true);\n handlePhotoModal();\n console.error(\"Error uploading file:\", error);\n // Handle the error (e.g., display an error message to the user)\n });\n }\n );\n } else {\n ErrorAlert(\"Error in generating imageID.\");\n console.log(getFilenameMeta?.data?.message);\n }\n\n // fetch the user details with upload photo id\n\n // showCroppedImage().then((resp)=>{\n // console.log(resp,\"resssssp\");\n // const params = {\n // Bucket: _S3_BUCKET,\n // Key: `user-profile/${randomDigit}${resp.name}`,\n // Body: resp,\n // };\n\n // const upload = MyBucketContainer.putObject(params).on('httpUploadProgress', (evt) => {\n // setprogressData((evt.loaded * 100) / evt.total)\n // setProgress(false)\n // }).promise()\n\n // upload.then((data, err) => {\n // if(err){\n // console.log(err)\n // }else{\n // setProgress(true)\n // handlePhotoModal()\n // setS3ImageURL(`https://${_S3_BUCKET}.s3.amazonaws.com/user-profile/${randomDigit}${resp.name}`)\n // UpdateProfilePic(`https://${_S3_BUCKET}.s3.amazonaws.com/user-profile/${randomDigit}${resp.name}`)\n // }\n // })})\n };\n\n return (\n <>\n <div className=\"flex bg-[#00000099] w-[100%] opacity-100 justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9998] outline-none focus:outline-none\">\n Overlay\n </div>\n <div className=\"hs-overlay flex justify-center items-center overflow-x-hidden overflow-y-auto fixed inset-0 z-[9999] outline-none focus:outline-none max-[768px]:p-[20px]\">\n <div className=\"bg-[#2C2C2C] __modal__container w-[35%] max-[768px]:w-[100%] h-auto max-[768px]:h-auto max-[1280px]:w-[50%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"__modal_close_icon_container flex justify-end p-[10px]\">\n <div\n onClick={() => {\n setProfileViewImage(null);\n setProgress(true);\n handlePhotoModal();\n }}\n className=\"bg-[#FFFFFF1A] hover:bg-[#FFFFFF4D] hover:cursor-pointer flex flex-col justify-center items-center rounded-[50%] w-[20px] h-[20px]\"\n >\n <img\n src={ModalClose}\n className=\"w-[10px] h-[10px] \"\n alt=\"modal_close_btn\"\n />\n </div>\n </div>\n\n <div className=\"__upload__container__section px-8 pb-[30px]\">\n {IsNextUpload ? (\n <div className=\"__upload__card__container\">\n <div className=\"__profile__photo__viewer__section flex justify-center rounded-full\">\n {ProfileViewImage === null ? (\n \"\"\n ) : (\n <div className=\"relative border w-[100%] h-[400px] max-h-[400px] max-[768px]:h-[300px]\">\n <Cropper\n image={ProfileViewImage}\n crop={crop}\n zoom={zoom}\n aspect={1 / 1}\n cropShape=\"round\"\n onCropChange={setCrop}\n onZoomChange={setZoom}\n onCropComplete={onCropComplete}\n />\n </div>\n )}\n {/* <img\n className=\"w-[50%] rounded-full object-contain\"\n src={URL.createObjectURL(ProfileViewImage)}\n alt=\"__profile__viewer__image\"\n /> */}\n </div>\n\n <div className=\"__upload__action__center__section\">\n <div className=\"__action__center__button__section flex justify-center gap-[10px] py-[15px] [&>button]:w-[50%] max-[768px]:[&>button]:py-[6px] [&>button]:rounded-[8px] [&>button]:font-semibold [&>button]:py-[10px] max-[768px]:[&>button]:text-[13px]\">\n <button\n onClick={handleCancelProfileViewer}\n className=\"border \"\n >\n Cancel\n </button>\n {isLoading ? (\n <div className=\" w-[50%] h-10 grid place-content-center\">\n <Loader />\n </div>\n ) : (\n <button\n onClick={UploadProfileImageToS3}\n className=\"bg-gradient-to-r text-[#000] from-[#FBBC5E] to-[#F3A151]\"\n >\n Crop & Upload\n </button>\n )}\n </div>\n\n <div className=\"__upload__progress__bar_-section\">\n {isProgress ? (\n \"\"\n ) : (\n <div className=\"flex flex-col gap-[10px]\">\n <span\n className={`font-medium font-body ${\n isProgress ? \"text-[green]\" : \"text-[gray]\"\n }`}\n >\n {isProgress\n ? \"Upload Successfully!\"\n : \"Upload Starting...\"}\n </span>\n <LinearProgress\n value={progressData}\n variant=\"determinate\"\n />\n </div>\n )}\n {/* <div className=\"__progres__bar__body w-[100%] bg-[#000] h-[5px]\">\n <div className={`__progress__bar__loader w-[100%] bg-[gray] h-[5px]`}>\n\n </div>\n </div> */}\n </div>\n </div>\n </div>\n ) : (\n <div\n onClick={handleOpenFileSystem}\n className=\"__upload__form__container border-2 border-[#FBBC5E] border-dashed hover:bg-[#f3a25112] py-[8px] rounded-[6px] decoration-dotted hover:cursor-pointer\"\n >\n <form>\n <input\n ref={Inputref}\n onChange={handleChangeFile}\n name=\"upload_file\"\n type=\"file\"\n accept=\"image/png, image/jpg, image/jpeg\"\n hidden\n />\n <div className=\"__upload__contents flex justify-center gap-8 py-[10px] max-[768px]:gap-2 max-[768px]:py-[5px] max-[768px]:leading-4\">\n <div className=\"__image_icon__container bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] p-4 rounded-full\">\n <img\n src={UploadIcon}\n alt=\"upload__icon\"\n className=\"w-[30px] h-[30px] max-[768px]:w-[18px] max-[768px]:h-[18px]\"\n />\n </div>\n <span className=\"pt-[20px] font-heading text-[13px] max-[768px]:text-[11px]\">\n Browse File to upload\n </span>\n </div>\n </form>\n </div>\n )}\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default ProfilePhotoModal;\n","import React, { useState, useEffect } from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport { log } from \"three/examples/jsm/nodes/Nodes\";\nconst ConfirmDeletion = ({\n open,\n onClose,\n canClose,\n resendOtpHandler,\n resendOtpHandlerInfo,\n deleteBtnHandler,\n isLoading,\n otp,\n setOtp,\n password,\n setPassword,\n}) => {\n const [acknowledged, setAcknowleged] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [otpSent, setOtpSent] = useState(false);\n const [isOtpPristine, setIsOtpPristine] = useState(true);\n const [isPasswordPristine, setIsPasswordPristine] = useState(true);\n const [formErrors, setFormErrors] = useState({\n otp: \"\",\n password: \"\",\n });\n const checkFormErrors = () => {\n // resetting the errors\n let errors = {\n otp: \"\",\n password: \"\",\n };\n setFormErrors(errors);\n let isValid = true;\n if (!otp) {\n errors.otp = \"Please provide OTP which we sent you \";\n isValid = false;\n }\n if (!password) {\n errors.password = \"Please provide your current password\";\n isValid = false;\n }\n setFormErrors(errors);\n setIsFormValid(isValid);\n };\n\n useEffect(() => {\n if (resendOtpHandlerInfo.isSuccess) {\n console.log(\"resendOtpHandlerInfo\", resendOtpHandlerInfo);\n setOtpSent(true);\n // setIsOtpPristine(false);\n }\n }, [resendOtpHandlerInfo]);\n\n useEffect(() => {\n checkFormErrors();\n }, [otp, password]);\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <div\n className=\"absolute top-1 right-1 bg-white/10 w-[28px] h-[28px] rounded-full grid place-content-center cursor-pointer\"\n onClick={onClose}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.6875 1.3125L1.3125 12.6875M1.3125 1.3125L12.6875 12.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n\n <h1 className=\"font-heading font-normal text-[20px] leading-[25px] text-white\">\n Are you sure you want to delete your account?\n </h1>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px]\">\n Are you sure you want to delete your account? If you proceed, your\n account and all associated data, including in-app purchases, will be\n permanently deleted after <strong>30 days</strong>. However, if you\n log in to your account within <strong>30 days</strong>, your deletion\n request will be canceled.\n </p>\n <p className=\"mt-4 font-body font-normal text-[16px] leading-[24px]\">\n Please enter the One-Time Password (OTP) sent to your email.\n </p>\n <div className=\"__username_field relative flex flex-col pt-[20px] \">\n <input\n className={`bg-transparent w-[100%] mt-[5px] ml-[3px] rounded-[8px] border border-[#FFFFFF1A] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none`}\n type=\"text\"\n name=\"otp\"\n placeholder=\"Enter OTP\"\n onChange={(e) => setOtp(e.target.value)}\n onBlur={() => setIsOtpPristine(false)}\n />\n {resendOtpHandlerInfo.isLoading ? (\n <span className=\"vector absolute left-[74%] max-[1024px]:left-[58%] max-[372px]:left-[48%] translate-y-1/2 pt-1\">\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n </span>\n ) : otpSent ? (\n <span\n className={`vector absolute left-[54%] max-[1024px]:left-[38%] max-[372px]:left-[28%] translate-y-1/2 pt-1 text-[#206331]`}\n\n // onMouseEnter={(e) => toggleUserGuidelines(e)}\n // onMouseLeave={(e) => toggleUserGuidelines(e)}\n >\n <strong>OTP Sent Successfully</strong>\n </span>\n ) : (\n <span\n className={`vector absolute left-[78%] max-[1024px]:left-[68%] max-[372px]:left-[58%] translate-y-1/2 cursor-pointer pt-1 text-[#FBBC5E]`}\n onClick={() => {\n resendOtpHandler();\n }}\n // onMouseEnter={(e) => toggleUserGuidelines(e)}\n // onMouseLeave={(e) => toggleUserGuidelines(e)}\n >\n Resend OTP\n </span>\n )}\n {!isOtpPristine && formErrors.otp && (\n <span className=\"__error__validation text-[14px] px-2 pt-[10px] text-[#FF5144]\">\n {formErrors.otp}\n </span>\n )}\n {/* {userGuideLines && (\n <div className={`notification-dropdown popover absolute ${screenSize.width > 1226 ? \"top-14 left-[53%]\" : \"top-8 right-4 rotate-180\"} delay-200 transition`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n >\n <path\n d=\"M19.6752 0.847325L0.643729 11.8411L19.6803 22.826L19.6752 0.847325Z\"\n fill=\"#716046\"\n />\n </svg>\n </div>\n )} */}\n </div>\n <div className=\"__lastname_field flex flex-col pt-[20px] w-full\">\n <label className=\"max-[768px]:text-[12px]\" htmlFor=\"password\">\n Enter your current password\n </label>\n <input\n className={`bg-transparent max-[768px]:w-[100%] mt-[20px] max-[768px]:ml-0 ml-[3px] rounded-[8px] border border-[#FFFFFF1A] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none`}\n type=\"password\"\n name=\"password\"\n placeholder=\"Enter Password\"\n onChange={(e) => setPassword(e.target.value)}\n onBlur={() => setIsPasswordPristine(false)}\n value={password}\n // required\n // disabled={!isformEditable}\n />\n {!isPasswordPristine && formErrors.password && (\n <span className=\"__error__validation text-[14px] px-2 pt-[10px] text-[#FF5144]\">\n {formErrors.password}\n </span>\n )}\n </div>\n <div class=\"mt-8\">\n <input\n type=\"checkbox\"\n className=\"form-checkbox h-[18px] w-[18px] accent-[#FBBC5E] border rounded-md\"\n checked={acknowledged}\n onChange={(e) => setAcknowleged(e.target.checked)}\n />\n <span className=\"text-white/60 text-[16px] \">\n {\" \"}\n I understand and agree that by deleting my account, I will\n permanently lose all my data and in-app purchases and this action\n cannot be undone.\n </span>\n </div>\n <div className=\"mt-8 flex items-center justify-between\">\n <button\n className=\"w-[48%] btn-cancel rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3\"\n onClick={onClose}\n disabled={isLoading}\n >\n Cancel\n </button>\n <button\n className=\"w-[48%] btn-danger rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] py-3 \"\n onClick={deleteBtnHandler}\n disabled={isLoading || !isFormValid || !acknowledged}\n >\n {isLoading ? \"Deleting...\" : \"Delete Account\"}\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default ConfirmDeletion;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Shubham K <shubhamkinstaacoders@gmail.com>\n */\n\nimport React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport SuccessIcon from \"assets/images/success_icon.png\";\n\nconst Deleted = ({ open, onClose, canClose }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <img\n src={SuccessIcon}\n className=\"w-[52px] h-[52px] mx-auto rounded-full object-cover\"\n alt=\"\"\n />\n <h1 className=\"mx-auto mt-8 font-body font-bold text-[24px] leading-[36px] text-center text-white\">\n Your account has been deleted.\n </h1>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px] text-center\">\n Your account deletion request has been successfully submitted. Your account and all associated data will be permanently deleted in <strong>30 days</strong>. We're sorry to see you go. Thank you for being a part of our community.\n </p>\n <div className=\"mt-8 w-full md:w-3/4 lg:w-1/2 mx-auto flex justify-center items-center\">\n <button\n className=\"w-full btn-outline border border-[#fbbc5e] hover:text-black rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] text-center py-3 px-2\"\n onClick={onClose}\n >\n Close\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default Deleted;\n","import React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport AlertIcon from \"assets/images/alert_icon.png\";\n\nconst DeletionError = ({\n open,\n onClose,\n canClose,\n message = \"Something went wrong when try to delete the account.\",\n}) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <img\n src={AlertIcon}\n className=\"w-[52px] h-[52px] mx-auto rounded-full object-cover\"\n alt=\"\"\n />\n <h1 className=\"mx-auto mt-8 font-body font-bold text-[24px] leading-[36px] text-center text-white\">\n Account Deletion Fail\n </h1>\n <p className=\"mt-8 font-body font-normal text-[20px] leading-[24px] text-center\">\n {message}\n </p>\n <p className=\"mt-8 font-body font-normal text-[16px] leading-[24px] text-center\">\n Please try again.\n </p>\n <div className=\"mt-8 w-full md:w-3/4 lg:w-1/2 mx-auto flex justify-center items-center\">\n <button\n to=\"/me\"\n className=\"w-full btn-gradient rounded-[8px] font-Inter font-semibold text-[16px] leading-[19.36px] text-center py-3 px-2 text-black\"\n onClick={onClose}\n >\n Go back to My Profile\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default DeletionError;\n","import PasswordModal from \"components/Modal/UserProfile/PasswordModal\";\nimport { useState, useRef, useEffect } from \"react\";\nimport _userDefaultProfileImg from \"assets/images/_user_default_profile.png\";\nimport {\n useGetUserProfileByTokenQuery,\n useUpdateAccountPrivateMutation,\n useDeleteUserOtpMutation,\n useDeleteUserMutation,\n} from \"store/slicer/userProfile\";\nimport spinner from \"assets/images/spinner_.gif\";\nimport { useUpdateUserInfoDataByTokenMutation } from \"store/slicer/userProfile\";\nimport { IsStringValid } from \"utils\";\nimport { useRemoveUserProfilePhotoByTokenMutation } from \"store/slicer/userProfile\";\nimport Loader from \"components/Loader/Loader\";\nimport { useUpdateUsernameWithGenderAndDobMutation } from \"store/slicer/userProfile\";\nimport ProfilePhotoModal from \"components/Modal/UserProfile/ProfilePhotoModal\";\nimport { useUpdateUserProfilePhotoByTokenMutation } from \"store/slicer/userProfile\";\nimport { useNavigate, useLocation, NavLink, Link } from \"react-router-dom\";\n\nimport dateFormat from \"dateformat\";\nimport { Calendar as HyperCalendar } from \"react-date-range\";\nimport \"assets/css/hyperxcalendarstyles.css\"; // main style file\nimport \"assets/css/hyperxcalendartheme.css\"; // theme css file\nimport { isValidUsername } from \"utils\";\nimport ConfirmDeletion from \"components/popup/account-deletion/ConfirmDeletion\";\nimport Deleted from \"components/popup/account-deletion/Deleted\";\nimport DeletionError from \"components/popup/account-deletion/DeletionError\";\nimport { useValidateUsernameMutation } from \"store/slicer/userProfile\";\nimport { isContainsSpecialChars, isContainsNumber } from \"utils\";\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-MyProfile-Component\n *@developer Aditya P\n */\n\nconst dateConversionTo = (dateString, key) => {\n // Create a new Date object from the given string\n const date =\n key === \"DOB\" ? new Date(dateString) : new Date(dateString * 1000);\n\n // Get the month, day, and year from the Date object\n const month = date.getMonth() + 1; // Months are zero-indexed in JavaScript\n const day = date.getDate();\n const year = date.getFullYear();\n\n // Format the date as MM/DD/YYYY\n const formattedDate = `${month}/${day}/${year}`;\n return formattedDate;\n};\n\nconst MyProfile = () => {\n // getting user info data from an API\n const [\n ValidateUsername,\n {\n isLoading: is_loading,\n isError: is_Error,\n error: u_error,\n isSuccess: is_Success,\n },\n ] = useValidateUsernameMutation();\n const { data, error, isLoading, status, refetch } =\n useGetUserProfileByTokenQuery();\n const [\n updateUserInfo,\n {\n isLoading: updateUserInfoLoading,\n isError: updateUserInfoErrorStatus,\n error: updateUserInfoErrorMessage,\n isSuccess: updateUserInfoSuccess,\n },\n ] = useUpdateUserInfoDataByTokenMutation();\n const [userNamePristine, setUsernamePristine] = useState(true);\n\n const [removeProfilePic] = useRemoveUserProfilePhotoByTokenMutation();\n\n const [UpdateProfilepic] = useUpdateUserProfilePhotoByTokenMutation();\n const navigate = useNavigate();\n const [sendDeleteUserOtp, sendDeleteUserOtpInfo] = useDeleteUserOtpMutation();\n const [reSendDeleteUserOtp, reSendDeleteUserOtpInfo] =\n useDeleteUserOtpMutation();\n const [deleteUser, deleteUserInfo] = useDeleteUserMutation();\n const focusRef = useRef(null);\n const [isformEditable, setFormEditable] = useState(false);\n const [isModalStatus, setModalstatus] = useState(false);\n const [formaData, setFormData] = useState({});\n const [formValidationError, setFormValidationError] = useState({\n errMsg: \"\",\n status: false,\n });\n const [formErrors, setFormErrors] = useState({\n userName: \"\",\n gender: \"\",\n dob: \"\",\n firstname: \"\",\n lastname: \"\",\n });\n const hasError = Object.values(formErrors).some((value) => value !== \"\");\n\n const [IsProfilePhotoModalOpen, setProfilePhotoModal] = useState(false);\n const [isLoad, setLoad] = useState(false);\n const [otp, setOtp] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\n const [showCancelledPopup, setShowCancelledPopup] = useState(false);\n const [showErrorPopup, setShowErrorPopup] = useState(false);\n const [deletionErrorMessage, setDeletionErrorMessage] = useState(\"\");\n const onCloseCancelledPopup = (isDeleted) => {\n // refetch();\n setOtp(\"\");\n setPassword(\"\");\n setShowCancelledPopup(false);\n setShowErrorPopup(false);\n if (isDeleted) {\n localStorage.removeItem(\"accessToken\"); // delete token from storage\n localStorage.removeItem(\"userInfo\");\n localStorage.removeItem(\"email\");\n navigate(\"/\");\n }\n };\n const onConfirmDelete = async () => {\n deleteUser({ otp: otp, password: password }).then((resp) => {\n console.log(resp);\n if (resp.data.response.statusEnum !== 1) {\n setDeletionErrorMessage(resp.data.response.message);\n setShowConfirmPopup(false);\n setShowErrorPopup(true);\n } else {\n setShowConfirmPopup(false);\n setShowCancelledPopup(true);\n }\n setOtp(\"\");\n setPassword(\"\");\n });\n // const cancelSubscriptionDetails = await cancelSubscription({\n // channelId: activeChannelId,\n // });\n };\n const [userGuideLines, setuserGuideLines] = useState(false);\n\n const toggleUserGuidelines = (e) => {\n setuserGuideLines(!userGuideLines);\n };\n\n const [Calender, setCalender] = useState(false);\n const [selectedDate, setselectedDate] = useState(\"MM/DD/YYYY\");\n\n const [updateAccountPrivate] = useUpdateAccountPrivateMutation();\n const [checked, setChecked] = useState(false);\n\n // const [isAvatarChange, setAvatarChange] = useState(true);\n\n const handleProfilePhotoModal = () => {\n setProfilePhotoModal(!IsProfilePhotoModalOpen);\n };\n\n const IsFormEditable = () => {\n setFormErrors({\n userName: \"\",\n gender: \"\",\n dob: \"\",\n firstname: \"\",\n lastname: \"\",\n });\n setFormEditable(!isformEditable);\n // focusRef.current?.focus();\n // Save the details of already sign in user data from an API by default\n setFormData(() => {\n return {\n ...formaData,\n firstname: data.response.data.firstName,\n lastname:\n data.response.data.lastName === null\n ? \"\"\n : data.response.data.lastName,\n userName: data.response.data.userName,\n gender: data.response.data.gender,\n dob: dateConversionTo(data.response.data.dob, \"DOB\"),\n };\n });\n };\n\n const handleChangeUserData = (e) => {\n setFormData(() => {\n return {\n ...formaData,\n dob: selectedDate,\n [e.target.name]: e.target.value,\n };\n });\n setFormValidationError(() => {\n return {\n status: false,\n errMsg: \"\",\n };\n });\n };\n\n const handleModal = () => {\n setModalstatus(!isModalStatus);\n };\n\n const handleSave = (e) => {\n console.log(formaData);\n setLoad(true);\n\n updateUserInfo({\n firstName: formaData?.firstname,\n lastName: formaData?.lastname === \"\" ? null : formaData?.lastname,\n userName: formaData?.userName,\n dob: selectedDate,\n gender: formaData?.gender || \"Male\",\n })\n .then((res) => {\n console.log(res.data);\n setFormEditable(!isformEditable);\n if (res.data.response.statusEnum === 2) {\n } else {\n refetch();\n setFormData(() => {\n return {\n firstname: res.data.response.data.firstName,\n lastname: res.data.response.data.lastName,\n userName: res.data.response.data.userName,\n dob: dateConversionTo(res.data.response.data.dob, \"DOB\"),\n gender: res.data.response.data.gender,\n };\n });\n }\n setLoad(false);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const removeProfilePhoto = () => {\n setLoad(true);\n removeProfilePic({})\n .then((res) => {\n console.log(res.data);\n // setAvatarChange(false);\n setLoad(false);\n window.location.reload();\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n useEffect(() => {\n if (isLoading) {\n setFormData(() => {\n return {\n firstname: \"Loading info...\",\n lastname: \"Loading info...\",\n userName: \"Loading info...\",\n gender: \"Loading info...\",\n dob: \"Loading info...\",\n };\n });\n } else {\n let userInfoClone = JSON.parse(localStorage.getItem(\"userInfo\"));\n userInfoClone[\"lastName\"] =\n data.response.data.lastName === null ? \"\" : data.response.data.lastName;\n userInfoClone[\"firstName\"] = data.response.data.firstName;\n userInfoClone[\"dob\"] = data.response.data.dob;\n userInfoClone[\"gender\"] = data.response.data.gender;\n\n localStorage.setItem(\"userInfo\", JSON.stringify(userInfoClone));\n setFormData(() => {\n return {\n ...formaData,\n firstname: data.response.data.firstName,\n lastname:\n data.response.data.lastName === null\n ? \"\"\n : data.response.data.lastName,\n userName: data.response.data.userName,\n gender: data.response.data.gender,\n dob: dateConversionTo(data.response.data.dob, \"DOB\"),\n };\n });\n\n setselectedDate(dateConversionTo(data.response.data.dob, \"DOB\"));\n setChecked(data.response.data.isPrivate);\n }\n }, [data]);\n\n // checkName\n const checkFirstName = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!fieldInput) {\n setFormErrors({\n ...formErrors,\n firstname: \"First name is required\",\n });\n } else if (isContainsNumber(value.trim())) {\n setFormErrors({\n ...formErrors,\n firstname: \"First name must not contain any numbers\",\n });\n } else if (isContainsSpecialChars(value.trim())) {\n setFormErrors({\n ...formErrors,\n firstname: \"First name must not contain any special characters\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n firstname: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n const checkLastName = (value) => {\n let valid = false;\n const fieldInput = value.trim();\n if (!fieldInput) {\n setFormErrors({\n ...formErrors,\n lastname: \"Last name is required\",\n });\n } else if (isContainsNumber(value.trim())) {\n setFormErrors({\n ...formErrors,\n lastname: \"Last name must not contain any numbers\",\n });\n } else if (isContainsSpecialChars(value.trim())) {\n setFormErrors({\n ...formErrors,\n lastname: \"Last name must not contain any special characters\",\n });\n } else {\n setFormErrors({\n ...formErrors,\n lastname: \"\",\n });\n valid = true;\n }\n return valid;\n };\n\n const checkUserName = async (value) => {\n let valid = true;\n const fieldInput = value?.trim();\n if (!fieldInput) {\n setFormErrors({\n ...formErrors,\n userName: \"Username is required\",\n });\n valid = false;\n } else if (!isValidUsername(fieldInput)) {\n setFormErrors({\n ...formErrors,\n userName: \"Username must only contain letters and numbers\",\n });\n valid = false;\n } else {\n const payload = {\n username: formaData.userName,\n };\n const res = await ValidateUsername(payload);\n\n if (res?.data?.response?.statusEnum != 1) {\n const sets = res?.data?.response?.data?.sets;\n const filteredSet = sets?.filter((set) => set.key == \"userName\");\n const errObj = filteredSet?.length && filteredSet[0];\n const errMessage = errObj?.message || res?.data?.response?.message;\n if (errMessage) {\n setFormErrors({\n ...formErrors,\n userName: errMessage,\n });\n } else {\n }\n\n valid = false;\n }\n }\n valid &&\n setFormErrors({\n ...formErrors,\n userName: \"\",\n });\n return valid;\n };\n\n const handleUpdateProfilePhoto = (filenameId) => {\n UpdateProfilepic(filenameId)\n .then((res) => {\n refetch();\n window.location.reload();\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const isDateValid = (dateStr) => {\n return !isNaN(new Date(dateStr));\n };\n\n const [showCalendar, setShowCalendar] = useState(false);\n\n const calendarContainerRef = useRef(null);\n\n const handleAccountPrivate = (e) => {\n setChecked(e.target.checked);\n updateAccountPrivate();\n refetch();\n };\n\n useEffect(() => {\n const delaySearch = setTimeout(() => {\n if (!userNamePristine && isformEditable) {\n // checkUsername\n checkUserName(formaData.userName);\n }\n }, 1000);\n\n return () => {\n clearTimeout(delaySearch);\n };\n }, [formaData.userName]);\n\n useEffect(() => {\n console.log(data?.response.data?.photo, \"photo\");\n }, [data?.response.data?.photo]);\n // this will close the calendar if we click outside it\n useEffect(() => {\n const handleClickOutsideCalendar = (e) => {\n if (\n e.target != calendarContainerRef.current &&\n !calendarContainerRef.current?.contains(e.target) &&\n !e.target.closest(\".rdrCalendarWrapper\")\n ) {\n setShowCalendar(false);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutsideCalendar);\n\n return () =>\n document.removeEventListener(\"click\", handleClickOutsideCalendar);\n }, []);\n\n if (!data)\n return (\n <div className=\"__network__error__containeer h-[100vh] w-full flex flex-col justify-center items-center\">\n <Loader />\n <span className=\"pt-4\">Loading user profile...</span>\n </div>\n );\n\n return (\n <div className=\"__my_profile_main container mx-auto px-[300px] py-[55px] max-[768px]:px-[15px] max-[1280px]:px-0 w-[80%]\">\n <div className=\"__my_avatar_main\">\n <h5 className=\"text-[24px] max-[768px]:text-[18px]\">User Profile</h5>\n <div className=\"__avatar_container py-[30px]\">\n <div className=\"__avatar bg-[#4B4B4B] w-[100px] h-[100px] rounded-[50%] max-[768px]:w-[80px] max-[768px]:h-[80px]\">\n {isLoading ? (\n <div className=\"spinner\">\n <img src={spinner} />\n </div>\n ) : data?.response.data?.photo === null ? (\n <img\n className=\"rounded-[50%] object-cover\"\n src={_userDefaultProfileImg}\n alt=\"__user_default_logo\"\n />\n ) : (\n <img\n className=\"rounded-[50%] object-cover\"\n src={data?.response.data?.photo}\n alt=\"user_avatar_logo\"\n onError={(e) => {\n e.target.onerror = null; // Prevents infinite loop if fallback image also fails\n e.target.src = _userDefaultProfileImg; // Set the path to your fallback image here\n }}\n />\n )}\n </div>\n <div\n className={`__edit_avatar py-[15px] text-[12px] max-[768px]:text-[10px] flex gap-[15px] [&>span]:hover:cursor-pointer`}\n >\n {data?.response.data?.photo === null ? (\n <div className=\"w-[100px] text-center max-[768px]:w-[80px]\">\n <span\n className=\"text-[#FBBC5E] text-[14px] max-[768px]:text-[12px] hover:cursor-pointer\"\n onClick={() => handleProfilePhotoModal()}\n >\n Upload\n </span>\n </div>\n ) : (\n <>\n <span\n onClick={handleProfilePhotoModal}\n className=\"text-[#FBBC5E]\"\n >\n Replace\n </span>\n <span className=\"text-[#7A7A7A]\" onClick={removeProfilePhoto}>\n {isLoad ? (\n \"Removing...\"\n ) : (\n <span className=\"font-medium\">Remove</span>\n )}\n </span>\n </>\n )}\n </div>\n </div>\n </div>\n\n <div className=\"__profile_form_main w-max max-[768px]:w-full\">\n <h5 className=\"font-medium text-[18px] max-[768px]:text-[16px]\">\n Details\n </h5>\n <div className=\"__form_container\">\n <form onSubmit={() => {}} className=\"__myprofile_form\">\n <div className=\"flex justify-between gap-[2px] max-[768px]:flex-col\">\n <div className=\"__firstname_field flex flex-col pt-[20px] w-full\">\n <label\n className=\"font-light text-[14px] max-[768px]:text-[12px]\"\n htmlFor=\"firstname\"\n >\n First Name\n </label>\n <input\n ref={focusRef}\n className={`bg-transparent mt-[5px] max-[768px]:w-[100%] max-[768px]:ml-0 ml-[3px] rounded-[8px] border border-[#FFFFFF1A] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none ${\n formErrors.firstname ? \"!border-error\" : \"\"\n }`}\n type=\"text\"\n name=\"firstname\"\n placeholder=\"\"\n onChange={handleChangeUserData}\n value={formaData.firstname}\n required\n disabled={!isformEditable}\n onBlur={(e) => checkFirstName(e.target.value)}\n />\n {formErrors.firstname && (\n <span className=\"text-error text-sm\">\n {formErrors.firstname}\n </span>\n )}\n </div>\n\n <div className=\"__lastname_field flex flex-col pt-[20px] w-full\">\n <label\n className=\"font-light text-[14px] max-[768px]:text-[12px]\"\n htmlFor=\"lastname\"\n >\n Last Name\n </label>\n <input\n className={`bg-transparent max-[768px]:w-[100%] max-[768px]:ml-0 mt-[5px] ml-[3px] rounded-[8px] border border-[#FFFFFF1A] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none ${\n formErrors.lastname ? \"!border-error\" : \"\"\n }`}\n type=\"text\"\n name=\"lastname\"\n placeholder=\"\"\n onChange={handleChangeUserData}\n value={formaData.lastname}\n required\n disabled={!isformEditable}\n onBlur={(e) => checkLastName(e.target.value)}\n />\n {formErrors.firstname && (\n <span className=\"text-error text-sm\">\n {formErrors.lastname}\n </span>\n )}\n </div>\n </div>\n\n <div className=\"__userName_field relative flex flex-col pt-[20px] \">\n <label\n className=\"font-light text-[14px] max-[768px]:text-[12px]\"\n htmlFor=\"userName\"\n >\n Username\n </label>\n <input\n className={`bg-transparent w-[500px] max-[768px]:w-[100%] max-[768px]:ml-0 mt-[5px] ml-[3px] rounded-[8px] border border-[#FFFFFF1A] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none ${\n formErrors.userName ? \"!border-[red]\" : \"\"\n }`}\n type=\"text\"\n name=\"userName\"\n placeholder=\"\"\n onChange={handleChangeUserData}\n onClick={() => {\n setUsernamePristine(false);\n }}\n value={formaData?.userName}\n required\n disabled={!isformEditable}\n />\n {is_loading ? (\n <span className=\"vector absolute left-[93%] max-[668px]:left-[90%] max-[768px]:left-[95%] max-[1280px]:left-[93%] top-12 translate-y-1/2 cursor-pointer text-white\">\n <svg\n className=\"animate-spin h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n </span>\n ) : (\n <span\n className={`vector absolute left-[93%] max-[668px]:left-[90%] max-[768px]:left-[95%] max-[1280px]:left-[93%] top-12 translate-y-1/2 cursor-pointer text-white`}\n onClick={(e) => toggleUserGuidelines(e)}\n onMouseEnter={(e) => toggleUserGuidelines(e)}\n onMouseLeave={(e) => toggleUserGuidelines(e)}\n >\n <svg\n className=\"peer\"\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.75\"\n y=\"0.75\"\n width=\"20.5\"\n height=\"20.5\"\n rx=\"10.25\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M10.4995 18V9.456H12.4995V18H10.4995ZM11.5075 8.048C11.1342 8.048 10.8248 7.93067 10.5795 7.696C10.3448 7.46133 10.2275 7.17867 10.2275 6.848C10.2275 6.50667 10.3448 6.224 10.5795 6C10.8248 5.76533 11.1342 5.648 11.5075 5.648C11.8808 5.648 12.1848 5.76 12.4195 5.984C12.6648 6.19733 12.7875 6.46933 12.7875 6.8C12.7875 7.152 12.6702 7.45067 12.4355 7.696C12.2008 7.93067 11.8915 8.048 11.5075 8.048Z\"\n fill=\"white\"\n />\n </svg>\n {\n <>\n <div\n className={`notification-dropdown popover transition-opacity pointer-events-none opacity-0 peer-hover:opacity-100 absolute xl:top-[8px] xl:-right-[32px] top-[40px] right-[0px] rotate-90 xl:rotate-0`}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n >\n <path\n d=\"M19.6752 0.847325L0.643729 11.8411L19.6803 22.826L19.6752 0.847325Z\"\n fill=\"#716046\"\n />\n </svg>\n </div>\n <div\n data-testid=\"Username\"\n className={`absolute transition-opacity pointer-events-none opacity-0 peer-hover:opacity-100 top-[50px] xl:top-0 xl:-right-[380px] w-[500px] -right-[0px] p-5 max-w-[357px] z-[1] rounded-md bg-[#716046] backdrop-blur-sm`}\n >\n <p className=\"text-[14px] text-[#FBBC5E] font-bold pb-[9px]\">\n Username Guidelines\n </p>\n <ul className=\"pl-5\">\n <li className=\"text-[14px] font-semibold list-disc\">\n There should be no spaces.\n </li>\n <li className=\"text-[14px] font-semibold list-disc\">\n Username should not start with a number.\n </li>\n <li className=\"text-[14px] font-semibold list-disc\">\n Username should only contain alphabets and numbers.\n </li>\n <li className=\"text-[14px] font-semibold list-disc\">\n Username should not contain any special character.\n </li>\n </ul>\n </div>\n </>\n }\n </span>\n )}\n {formErrors.userName && (\n <span className=\"text-error text-sm\">\n {formErrors.userName}\n </span>\n )}\n {/* {userGuideLines && (\n <div className={`notification-dropdown popover absolute ${screenSize.width > 1226 ? \"top-14 left-[53%]\" : \"top-8 right-4 rotate-180\"} delay-200 transition`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n >\n <path\n d=\"M19.6752 0.847325L0.643729 11.8411L19.6803 22.826L19.6752 0.847325Z\"\n fill=\"#716046\"\n />\n </svg>\n </div>\n )} */}\n </div>\n\n <div className={`mb-4 pt-[20px]`}>\n <p\n className=\"font-light text-[14px] max-[768px]:text-[12px]\"\n data-testid=\"Date Of Birth\"\n >\n Date Of Birth\n </p>\n\n <div\n className=\"mt-2 flex relative\"\n ref={calendarContainerRef}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n {/* <div\n tabIndex={0}\n className={`rounded-lg w-full cursor-pointer remove-icon bg-transparent border border-[#FFFFFF1A] focus:border-[#f6f6f6] py-3 px-5 leading-normal font-semibold outline-none ${\n DOBError ? \"!border-error\" : \"\"\n }`}\n onClick={(e) => toggleCalender(e)}\n >\n <div>{selectedDate}</div>\n <span\n data-testid=\"PasswordVisibility\"\n className=\"vector absolute left-[93%] max-[668px]:left-[90%] max-[768px]:left-[95%] max-[1280px]:left-[93%] top-0 translate-y-1/2\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M19 4H17V3C17 2.73478 16.8946 2.48043 16.7071 2.29289C16.5196 2.10536 16.2652 2 16 2C15.7348 2 15.4804 2.10536 15.2929 2.29289C15.1054 2.48043 15 2.73478 15 3V4H9V3C9 2.73478 8.89464 2.48043 8.70711 2.29289C8.51957 2.10536 8.26522 2 8 2C7.73478 2 7.48043 2.10536 7.29289 2.29289C7.10536 2.48043 7 2.73478 7 3V4H5C4.20435 4 3.44129 4.31607 2.87868 4.87868C2.31607 5.44129 2 6.20435 2 7V19C2 19.7956 2.31607 20.5587 2.87868 21.1213C3.44129 21.6839 4.20435 22 5 22H19C19.7956 22 20.5587 21.6839 21.1213 21.1213C21.6839 20.5587 22 19.7956 22 19V7C22 6.20435 21.6839 5.44129 21.1213 4.87868C20.5587 4.31607 19.7956 4 19 4ZM20 19C20 19.2652 19.8946 19.5196 19.7071 19.7071C19.5196 19.8946 19.2652 20 19 20H5C4.73478 20 4.48043 19.8946 4.29289 19.7071C4.10536 19.5196 4 19.2652 4 19V12H20V19ZM20 10H4V7C4 6.73478 4.10536 6.48043 4.29289 6.29289C4.48043 6.10536 4.73478 6 5 6H7V7C7 7.26522 7.10536 7.51957 7.29289 7.70711C7.48043 7.89464 7.73478 8 8 8C8.26522 8 8.51957 7.89464 8.70711 7.70711C8.89464 7.51957 9 7.26522 9 7V6H15V7C15 7.26522 15.1054 7.51957 15.2929 7.70711C15.4804 7.89464 15.7348 8 16 8C16.2652 8 16.5196 7.89464 16.7071 7.70711C16.8946 7.51957 17 7.26522 17 7V6H19C19.2652 6 19.5196 6.10536 19.7071 6.29289C19.8946 6.48043 20 6.73478 20 7V10Z\"\n fill={`${focus.dob ? \"#FBBC5E\" : \"white\"}`}\n />\n </svg>\n </span>\n </div>\n {Calender && (\n <div className=\"absolute bg-white text-black top-[51px] z-[4]\">\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DateCalendar\n view={currentCalendarView}\n disableFuture\n defaultValue={dayjs(selectedDate)}\n value={dayjs(\n `${selectedYear}/${selectedMonth}/${selectedDay}`\n )}\n onChange={(newValue) => handleDate(newValue)}\n onMonthChange={onCalendarMonthChange}\n onYearChange={onCalendarYearChange}\n />\n </LocalizationProvider>\n </div>\n )} */}\n\n <div\n tabIndex={0}\n className={`rounded-lg w-full remove-icon bg-transparent border border-[#FFFFFF1A] py-3 px-5 leading-normal outline-none ${\n isformEditable\n ? \"focus:border-[#f6f6f6] cursor-pointer\"\n : \"\"\n }`}\n onClick={(e) => {\n isformEditable && setShowCalendar(true);\n }}\n >\n <div>\n {isDateValid(selectedDate?.toString()) &&\n dateFormat(new Date(selectedDate), \"mm/dd/yyyy\")}\n {!isDateValid(selectedDate?.toString()) && \"MM/DD/YYYY\"}\n </div>\n </div>\n </div>\n {showCalendar && (\n <div className=\"w-fit\">\n <HyperCalendar\n minDate={new Date(\"01/01/1900\")}\n maxDate={new Date()}\n onChange={(date) => {\n setselectedDate(dateFormat(new Date(date)), \"mm/dd/yyyy\");\n }}\n date={new Date(selectedDate) || null}\n />\n </div>\n )}\n </div>\n\n <div className=\"__gender_field flex flex-col pt-[20px] relative\">\n <label\n className=\"font-light text-[14px] max-[768px]:text-[12px]\"\n htmlFor=\"gender\"\n >\n Gender\n </label>\n <select\n required\n name=\"gender\"\n onChange={handleChangeUserData}\n disabled={!isformEditable}\n className=\"bg-transparent w-[500px] max-[768px]:w-[100%] max-[768px]:ml-0 mt-[5px] ml-[3px] rounded-[8px] border border-[#FFFFFF1A] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none\"\n >\n <option\n selected={formaData?.gender === \"Male\" ? \"selected\" : \"\"}\n className=\"text-[#000] font-medium p-[10px]\"\n value=\"Male\"\n >\n Male\n </option>\n <option\n selected={formaData?.gender === \"Female\" ? \"selected\" : \"\"}\n className=\"text-[#000] font-medium\"\n value=\"Female\"\n >\n Female\n </option>\n\n <option\n selected={formaData?.gender === \"Others\" ? \"selected\" : \"\"}\n className=\"text-[#000] font-medium\"\n value=\"Others\"\n >\n Other\n </option>\n </select>\n </div>\n </form>\n {formValidationError?.status ? (\n <span className=\"__error__validation text-[12px] px-2 pt-[10px] text-[#F3A151]\">\n {formValidationError?.errMsg}\n </span>\n ) : (\n \"\"\n )}\n\n <div className=\"__edit_form_button pt-[60px] ml-[3px]\">\n {isformEditable ? (\n <div className=\"__editable__button_group flex gap-[20px]\">\n <button\n onClick={IsFormEditable}\n className=\"bg-[#7A7A7A] max-[768px]:text-[12px] text-[#fff] py-[4px] px-[14px] rounded-[6px] text-[14px]\"\n >\n Cancel\n </button>\n <button\n // disabled={formValidationError.status}\n disabled={updateUserInfoLoading || is_loading || hasError}\n onClick={handleSave}\n className=\"btn-gradient max-[768px]:text-[12px] font-medium text-[#000] py-[4px] px-[22px] rounded-[6px] text-[14px]\"\n >\n {isLoad ? \"Updating user info...\" : \"Save\"}\n </button>\n </div>\n ) : (\n <button\n onClick={IsFormEditable}\n className=\"border-[2px] border-[#FBBC5E] max-[768px]:text-[10px] py-[2px] px-[25px] rounded-[7px] font-medium text-[12px] hover:bg-[#FBBC5E4D] \n hover:text-[#fff] \n hover:border-[#FBBC5E4D]\"\n >\n Edit\n </button>\n )}\n {/* <div className=\"__editable__button_group flex gap-[20px]\">\n <button\n onClick={IsFormEditable}\n className=\"bg-[#7A7A7A] max-[768px]:text-[12px] text-[#fff] py-[4px] px-[14px] rounded-[6px] text-[14px]\"\n >\n Cancel\n </button>\n <button\n onClick={handleSave}\n className=\"bg-[#F3A151] max-[768px]:text-[12px] font-medium text-[#000] py-[4px] px-[22px] rounded-[6px] text-[14px]\"\n >\n {isLoad ? \"Updating user info...\" : \"Save\"}\n </button>\n </div> */}\n </div>\n </div>\n </div>\n\n <div className=\"__profile__setting_main pt-[70px]\">\n <h5 className=\"font-medium text-[18px]\">Account Setting</h5>\n <div className=\"__setting_data\">\n <div className=\"__email_data pt-[25px]\">\n <h5 className=\"text-[14px] max-[768px]:text-[12px] font-light\">\n Email\n </h5>\n <p className=\"text-[16px] max-[768px]:text-[14px] max-[768px]:mt-[10px] max-[1280px]:mt-[10px]\">\n {isLoading\n ? \"Loading Info...\"\n : data.response.data.email === null\n ? \"NA\"\n : data.response.data.email}\n </p>\n </div>\n <div className=\"__pass_data mt-[50px] max-[768px]:mt-[30px]\">\n <h5>Password</h5>\n <div className=\"flex gap-[15px] mt-[20px] max-[768px]:mt-[15px]\">\n <p className=\"text-[14px] h-[30px] leading-[30px] mt-[2px] tracking-[3px] max-[768px]:text-[12px] max-[768px]:tracking-[2px]\">\n ***********\n </p>\n <button\n onClick={() => {\n setModalstatus(!isModalStatus);\n }}\n className=\"text-[16px] text-[#FBBC5E] hover:underline max-[768px]:text-[14px]\"\n >\n Change\n </button>\n <p className=\"text-[16px] text-[#FFFFFF80] mt-[4px] max-[768px]:text-[13px] max-[768px]:mt-[9px]\">\n {data.response.data.lastPasswordChange === 0\n ? \"\"\n : \"( last changed \" +\n dateConversionTo(data.response.data.lastPasswordChange) +\n \" )\"}\n </p>\n </div>\n </div>\n <div className=\"mt-[50px] max-[768px]:mt-[30px] flex flex-col gap-y-[12px] \">\n <div className=\"flex items-center gap-x-2 \">\n <svg\n width=\"14\"\n height=\"18\"\n viewBox=\"0 0 14 18\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11 9H12.4C12.5591 9 12.7117 9.06321 12.8243 9.17574C12.9368 9.28826 13 9.44087 13 9.6V16.4C13 16.5591 12.9368 16.7117 12.8243 16.8243C12.7117 16.9368 12.5591 17 12.4 17H1.6C1.44087 17 1.28826 16.9368 1.17574 16.8243C1.06321 16.7117 1 16.5591 1 16.4V9.6C1 9.44087 1.06321 9.28826 1.17574 9.17574C1.28826 9.06321 1.44087 9 1.6 9H3M11 9V5C11 3.667 10.2 1 7 1C3.8 1 3 3.667 3 5V9M11 9H3\"\n stroke=\"#CCCCCC\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <span className=\"text-[14px] font-medium text-white/80 \">\n Account Privacy\n </span>\n </div>\n <label class=\"inline-flex items-center gap-x-4 cursor-pointer \">\n <span class=\"font-medium \">Private Account</span>\n <input\n type=\"checkbox\"\n className=\"sr-only peer\"\n checked={checked}\n onChange={handleAccountPrivate}\n />\n <div class=\"relative w-11 h-6 bg-white/20 rounded-full peer dark:peer-focus:ring-blue-800 peer-checked:after:translate-x-full rtl:peer-checked:after:-translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-0.5 after:start-[2px] after:bg-white/20 after:border-gray-300 peer-checked:after:bg-white peer-checked:after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-[#FBBC5E] \"></div>\n </label>\n <p className=\"text-[12px] text-white/50 font-medium \">\n Making your account private will hide your profile from search\n results, and others will be unable to send you friend requests.\n </p>\n </div>\n </div>\n\n <div className=\"__user__preference__tags__section flex gap-[21px] pt-[45px]\">\n <h4 className=\"text-[18px] font-medium font-body\">\n Preferences and tags\n </h4>\n <a href=\"/me/edit/preference\">\n <button className=\"text-[16px] text-[#FBBC5E] hover:underline max-[768px]:text-[14px]\">\n Edit\n </button>\n </a>\n </div>\n <div className=\"__user__preference__tags__section flex gap-[21px] pt-[45px]\">\n <button\n className=\"text-[18px] font-bold text-[#fb5e5e] max-[768px]:text-[14px]\"\n onClick={() => {\n sendDeleteUserOtp();\n setShowConfirmPopup(true);\n }}\n >\n Delete Account\n </button>\n </div>\n </div>\n {showCancelledPopup && (\n <Deleted\n open={showCancelledPopup}\n canClose={true}\n onClose={() => onCloseCancelledPopup(true)}\n />\n )}\n {showErrorPopup && (\n <DeletionError\n open={showErrorPopup}\n canClose={true}\n onClose={() => onCloseCancelledPopup(false)}\n message={deletionErrorMessage}\n />\n )}\n {showConfirmPopup && (\n <ConfirmDeletion\n open={() => showConfirmPopup}\n onClose={() => {\n setShowConfirmPopup(false);\n setOtp(\"\");\n setPassword(\"\");\n }}\n deleteBtnHandler={onConfirmDelete}\n resendOtpHandler={() => reSendDeleteUserOtp()}\n resendOtpHandlerInfo={reSendDeleteUserOtpInfo}\n isLoading={deleteUserInfo.isLoading}\n otp={otp}\n setOtp={setOtp}\n password={password}\n setPassword={setPassword}\n />\n )}\n {isModalStatus ? (\n <PasswordModal\n handleModalStatus={handleModal}\n modalStatus={isModalStatus}\n />\n ) : (\n <></>\n )}\n\n {IsProfilePhotoModalOpen ? (\n <ProfilePhotoModal\n handlePhotoModal={handleProfilePhotoModal}\n UpdateProfilePic={handleUpdateProfilePhoto}\n />\n ) : (\n <></>\n )}\n </div>\n );\n};\n\nexport default MyProfile;\n","import React, { useState } from \"react\";\n\nconst FilterDropdown = ({ options, onChange }) => {\n const [isOpen, setIsOpen] = useState(false);\n const [selectedOption, setSelectedOption] = useState(options[0]); // Initial filter value\n\n const toggleDropdown = () => {\n setIsOpen(!isOpen);\n };\n\n const handleItemClick = (item) => {\n setSelectedOption(item); // Update the selected option\n setIsOpen(false); // Close the dropdown after selection\n onChange(item); // Call the onChange function with the selected item\n };\n\n return (\n <div className=\"relative inline-block\">\n <button\n className=\"bg-black text-white text-md flex justify-between px-[11px] py-1 items-center rounded cursor-pointer w-[166px] h-[34px] bg-transparent shadow border border-solid border-1 border-gray-700\"\n onClick={toggleDropdown}\n >\n {selectedOption}\n <span className=\" text-xs\">▼</span>\n </button>\n\n {isOpen && (\n <div className=\"absolute top-full left-0 w-full rounded mt-[2px] py-1 bg-black text-white z-[2]\">\n {options.map((item, index) => (\n <div\n key={index}\n className={`px-3 py-2 text-md cursor-pointer hover:text-[#fbbc5e] ${\n index !== options.length - 1 ? \"\" : \"\"\n }`}\n onClick={() => handleItemClick(item)}\n >\n {item}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nexport default FilterDropdown;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module UnlockPremium\n *@developer Sudhanshu\n */\n\nimport * as React from \"react\";\nimport Dialog from \"@mui/material/Dialog\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { useTheme } from \"@mui/material/styles\";\nimport DOMPurify from \"dompurify\";\nconst UnlockPremium = ({\n status,\n handleData,\n handleSub,\n heading,\n text,\n price = 50,\n}) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n const handleClick = () => {\n handleData(false);\n };\n const handleClickSub = () => {\n handleSub(true);\n handleData(false);\n };\n return (\n <Dialog\n fullScreen={fullScreen}\n open={status}\n onClose={handleClick}\n aria-labelledby=\"responsive-dialog-title\"\n >\n <div className=\"py-8 px-9 bg-[#2C2C2C] text-white\">\n <div className=\"text-left\">\n <h2 className=\"font-heading text-2xl mb-8\">{heading}</h2>\n <p\n className=\"leading-relaxed text-opacity-70 text-white\"\n dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(text) }}\n ></p>\n <button\n type=\"button\"\n onClick={handleClickSub}\n className=\"font-bold rounded-lg flex w-full btn-gradient leading-none text-black py-3 px-12 mt-6 gap-x-2.5 items-center justify-center\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"currentColor\"\n >\n <path d=\"M12 17.5C12.5304 17.5 13.0391 17.2893 13.4142 16.9142C13.7893 16.5391 14 16.0304 14 15.5C14 14.9696 13.7893 14.4609 13.4142 14.0858C13.0391 13.7107 12.5304 13.5 12 13.5C11.4696 13.5 10.9609 13.7107 10.5858 14.0858C10.2107 14.4609 10 14.9696 10 15.5C10 16.0304 10.2107 16.5391 10.5858 16.9142C10.9609 17.2893 11.4696 17.5 12 17.5ZM18 8.5C18.5304 8.5 19.0391 8.71071 19.4142 9.08579C19.7893 9.46086 20 9.96957 20 10.5V20.5C20 21.0304 19.7893 21.5391 19.4142 21.9142C19.0391 22.2893 18.5304 22.5 18 22.5H6C5.46957 22.5 4.96086 22.2893 4.58579 21.9142C4.21071 21.5391 4 21.0304 4 20.5V10.5C4 9.96957 4.21071 9.46086 4.58579 9.08579C4.96086 8.71071 5.46957 8.5 6 8.5H7V6.5C7 5.17392 7.52678 3.90215 8.46447 2.96447C9.40215 2.02678 10.6739 1.5 12 1.5C12.6566 1.5 13.3068 1.62933 13.9134 1.8806C14.52 2.13188 15.0712 2.50017 15.5355 2.96447C15.9998 3.42876 16.3681 3.97995 16.6194 4.58658C16.8707 5.19321 17 5.84339 17 6.5V8.5H18ZM12 3.5C11.2044 3.5 10.4413 3.81607 9.87868 4.37868C9.31607 4.94129 9 5.70435 9 6.5V8.5H15V6.5C15 5.70435 14.6839 4.94129 14.1213 4.37868C13.5587 3.81607 12.7956 3.5 12 3.5Z\" />\n </svg>\n Subscribe now @${price.toFixed(2)}/Month\n </button>\n </div>\n </div>\n </Dialog>\n );\n};\n\nexport default UnlockPremium;\n","import React, { useEffect, useState } from \"react\";\nimport AssetMusicIcon from \"assets/images/myassets/ph_play-fill.png\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport { Link } from \"react-router-dom\";\nimport { useLazyGetSingleUserAssetsByTokenQuery } from \"store/slicer/userProfile\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Generic-Entertainment-card\n *@developer Sudhanshu\n */\n\nconst VolumetricCard = ({\n slide,\n title,\n subtitleButton,\n tagType,\n tags,\n thumbnailIcon,\n imageUrl,\n handleData,\n link,\n itemId = \"\",\n justAdded = false,\n}) => {\n const [premiumModalStatus, setpremiumModalStatus] = useState(false);\n function handlePremiumModal() {\n setpremiumModalStatus(!premiumModalStatus);\n }\n const handleClick = () => {\n handleData(true);\n };\n\n // fetching all user assets here and checking if user already owns this asset, calling this here wouldnt create an issue since the request will be cached and its better than calling this api in every page\n let [\n GetSingleUserAssetsByToken,\n { data: userAssetsData, isFetching, isSuccess, isError },\n ] = useLazyGetSingleUserAssetsByTokenQuery();\n\n if (!isFetching && isSuccess && userAssetsData?.response?.statusEnum == 1) {\n userAssetsData = userAssetsData?.response?.data;\n userAssetsData = userAssetsData.map((item) => item.content_id);\n } else {\n userAssetsData = [];\n }\n\n let userOwnsAsset = false;\n\n if (userAssetsData.includes(itemId)) {\n userOwnsAsset = true;\n }\n useEffect(() => {\n localStorage.getItem(\"accessToken\") && GetSingleUserAssetsByToken();\n }, []);\n return (\n <div className=\"mb-12 relative z-[1]\" data-testid=\"volumetric-card\">\n <Link to={link}>\n <div\n className=\"aspect-[456/239] relative rounded-2xl bg-[#2B2B2B] mb-2.5 bg-center bg-cover bg-no-repeat\"\n style={{\n backgroundImage: `url('${imageUrl}')`,\n }}\n >\n {tags && <span className=\"tags\">{tags}</span>}\n {thumbnailIcon && (\n <span className=\"music-icon z-2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M21 3V15.5C21 16.4283 20.6313 17.3185 19.9749 17.9749C19.3185 18.6313 18.4283 19 17.5 19C16.5717 19 15.6815 18.6313 15.0251 17.9749C14.3687 17.3185 14 16.4283 14 15.5C14 14.5717 14.3687 13.6815 15.0251 13.0251C15.6815 12.3687 16.5717 12 17.5 12C18.04 12 18.55 12.12 19 12.34V6.47L9 8.6V17.5C9 18.4283 8.63125 19.3185 7.97487 19.9749C7.3185 20.6313 6.42826 21 5.5 21C4.57174 21 3.6815 20.6313 3.02513 19.9749C2.36875 19.3185 2 18.4283 2 17.5C2 16.5717 2.36875 15.6815 3.02513 15.0251C3.6815 14.3687 4.57174 14 5.5 14C6.04 14 6.55 14.12 7 14.34V6L21 3Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n )}\n </div>\n </Link>\n\n <p className=\"mb-2 text-sm px-1\">{title}</p>\n\n {userOwnsAsset && (\n <button className=\"tag-item px-1 text-base md:text-xs lg:text-base text-[#6BFEF6]\">\n Added to assets\n </button>\n )}\n\n {!userOwnsAsset && (\n <>\n {\" \"}\n {tagType === \"Free\" && (\n <button className=\"tag-item px-1 text-base md:text-xs lg:text-base\">\n Free\n </button>\n )}\n {tagType === \"Paid\" && (\n <button className=\"tag-item px-1 text-base md:text-xs lg:text-base\">\n {subtitleButton}\n </button>\n )}\n {/* {tagType === \"Unlocked\" && (\n <button className=\"tag-item px-1 text-base md:text-xs lg:text-base text-[#6BFEF6]\">\n {subtitleButton}\n </button>\n )} */}\n {tagType === \"Premium\" && !justAdded && (\n <button\n className=\"tag-item flex gap-4 items-center px-1 text-base md:text-xs lg:text-base\"\n onClick={handleClick}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n >\n <path\n d=\"M6 22.0356C5.45 22.0356 4.979 21.8396 4.587 21.4476C4.195 21.0556 3.99934 20.585 4 20.0356V10.0356C4 9.48565 4.196 9.01465 4.588 8.62264C4.98 8.23064 5.45067 8.03498 6 8.03565H7V6.03565C7 4.65231 7.48767 3.47298 8.463 2.49765C9.43834 1.52231 10.6173 1.03498 12 1.03565C13.3833 1.03565 14.5627 1.52331 15.538 2.49865C16.5133 3.47398 17.0007 4.65298 17 6.03565V8.03565H18C18.55 8.03565 19.021 8.23165 19.413 8.62365C19.805 9.01565 20.0007 9.48631 20 10.0356V20.0356C20 20.5856 19.804 21.0566 19.412 21.4486C19.02 21.8406 18.5493 22.0363 18 22.0356H6ZM6 20.0356H18V10.0356H6V20.0356ZM12 17.0356C12.55 17.0356 13.021 16.8396 13.413 16.4476C13.805 16.0556 14.0007 15.585 14 15.0356C14 14.4856 13.804 14.0146 13.412 13.6226C13.02 13.2306 12.5493 13.035 12 13.0356C11.45 13.0356 10.979 13.2316 10.587 13.6236C10.195 14.0156 9.99934 14.4863 10 15.0356C10 15.5856 10.196 16.0566 10.588 16.4486C10.98 16.8406 11.4507 17.0363 12 17.0356ZM9 8.03565H15V6.03565C15 5.20231 14.7083 4.49398 14.125 3.91065C13.5417 3.32731 12.8333 3.03565 12 3.03565C11.1667 3.03565 10.4583 3.32731 9.875 3.91065C9.29167 4.49398 9 5.20231 9 6.03565V8.03565Z\"\n fill=\"white\"\n />\n </svg>\n Unlock Premium\n </button>\n )}\n {tagType === \"Premium\" && justAdded && (\n <button\n className=\"tag-item flex gap-4 items-center px-1 text-base md:text-xs lg:text-base\"\n onClick={handleClick}\n disabled\n >\n Unlocked\n </button>\n )}\n </>\n )}\n {premiumModalStatus ? <UnlockPremium /> : <></>}\n </div>\n );\n};\n\nexport default VolumetricCard;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module 2D-List_page\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport { useGet2DVideosQuery } from \"store/slicer/Entertainment\";\nimport { Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { calculateTotalPages } from \"utils\";\n\nconst Index = () => {\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n const [pageNum, setPageNum] = useState(1);\n const [all2dData, setAll2dData] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 10;\n const [searchText, setSearchText] = useState(\"\");\n const [searchInputText, setSearchInputText] = useState(\"\");\n const searchTimeout = useRef(null);\n const inputRef = useRef(null);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n const handleSearchInputChange = (e) => {\n setSearchInputText(inputRef.current.value);\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const ts = setTimeout(() => {\n setPageNum(1);\n setSearchText(inputRef.current.value);\n }, 1000);\n\n searchTimeout.current = ts;\n };\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGet2DVideosQuery({\n searchQuery: searchText,\n page: pageNum,\n limit: limit,\n });\n useEffect(() => {\n if (\n !isFetching &&\n IsDataAvailable &&\n entertainmentData.response.statusEnum == 1\n ) {\n setTotalPages(\n calculateTotalPages(entertainmentData.response?.data?.totalCount, limit)\n );\n // entertainmentData = entertainmentData?.response?.data?.content;\n const formattedEntertainmentData =\n entertainmentData?.response?.data?.content.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `${item.price || 0} USD | ${convertUsdToFstrPrice(\n item.price || 0\n )} FSTR`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, formattedEntertainmentData);\n\n setAll2dData((prevEntertainmentData) => [\n ...prevEntertainmentData,\n ...formattedEntertainmentData,\n ]);\n } else {\n setAll2dData(() => [...formattedEntertainmentData]);\n }\n }\n }, [isFetching, IsDataAvailable, entertainmentData]);\n // if (IsDataAvailable && entertainmentData.response.statusEnum == 1) {\n // entertainmentData = entertainmentData?.response?.data?.content;\n // entertainmentData = entertainmentData.map((item) => {\n // const contentPref = item.contentPreference;\n // const title = item.contentName;\n // let subtitleButton = \"Free\";\n // let tagType = \"Free\";\n\n // if (contentPref == \"subscription\") {\n // subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n // tagType = \"Premium\";\n // }\n\n // if (contentPref == \"premium\" || contentPref == \"paid\") {\n // subtitleButton = `US$ ${item.price}`;\n // tagType = \"Paid\";\n // }\n\n // return {\n // ...item,\n // channel: item.channel.channelHandle || item.channel._id,\n // title,\n // subtitleButton,\n // tagType,\n // cardClass: EntertainmentCardClass,\n // };\n // });\n // } else {\n // entertainmentData = [];\n // }\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\"\n // },\n // ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = all2dData.filter((item) => {\n if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n\n console.log(filteredData);\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {/* {IsDataAvailable ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 2D Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"2D Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/content/2D-video/${item.channel}/${item._id}`}\n />\n ))}\n\n\n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader/>\n </div>\n )} */}\n <div className=\"mt-4 relative ml-auto w-full sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n onChange={handleSearchInputChange}\n value={searchInputText}\n ref={inputRef}\n />\n </div>\n <div className=\"__entertainment_assets_main max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 2D Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filteredData.length > 0 && (\n <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"2D Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"2D-video\",\n item.channel,\n item.contentSlug\n )}`}\n itemId={item._id}\n />\n ))}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n {isFetching && (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n )}\n\n {filteredData.length == 0 && !isFetching && searchText.length == 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n {filteredData.length == 0 && !isFetching && searchText.length != 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"text-[#7A7A7A] font-semibold\">No results found</p>\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module 180-List_page\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport { useGet180VideosQuery } from \"store/slicer/Entertainment\";\nimport { Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { calculateTotalPages } from \"utils\";\n\nconst Index = () => {\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n\n const [searchText, setSearchText] = useState(\"\");\n const [pageNum, setPageNum] = useState(1);\n const [all180Data, setAll180Data] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 10;\n const [searchInputText, setSearchInputText] = useState(\"\");\n const searchTimeout = useRef(null);\n const inputRef = useRef(null);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n const handleSearchInputChange = (e) => {\n setSearchInputText(inputRef.current.value);\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const ts = setTimeout(() => {\n setPageNum(1);\n setSearchText(inputRef.current.value);\n }, 1000);\n\n searchTimeout.current = ts;\n };\n\n let {\n data: entertainmentData,\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGet180VideosQuery({\n searchQuery: searchText,\n page: pageNum,\n limit: limit,\n });\n useEffect(() => {\n if (\n !isFetching &&\n IsDataAvailable &&\n entertainmentData.response.statusEnum == 1\n ) {\n setTotalPages(\n calculateTotalPages(entertainmentData.response?.data?.totalCount, limit)\n );\n // entertainmentData = entertainmentData?.response?.data?.content;\n const formattedEntertainmentData =\n entertainmentData?.response?.data?.content.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `${item.price || 0} USD | ${convertUsdToFstrPrice(\n item.price || 0\n )} FSTR`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, formattedEntertainmentData);\n\n setAll180Data((prevEntertainmentData) => [\n ...prevEntertainmentData,\n ...formattedEntertainmentData,\n ]);\n } else {\n setAll180Data(() => [...formattedEntertainmentData]);\n }\n }\n }, [isFetching, IsDataAvailable, entertainmentData]);\n // if (IsDataAvailable && entertainmentData.response.statusEnum == 1) {\n // entertainmentData = entertainmentData?.response?.data?.content;\n // entertainmentData = entertainmentData.map((item) => {\n // const contentPref = item.contentPreference;\n // const title = item.contentName;\n // let subtitleButton = \"Free\";\n // let tagType = \"Free\";\n\n // if (contentPref == \"subscription\") {\n // subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n // tagType = \"Premium\";\n // }\n\n // if (contentPref == \"premium\" || contentPref == \"paid\") {\n // subtitleButton = `US$ ${item.price}`;\n // tagType = \"Paid\";\n // }\n\n // return {\n // ...item,\n // channel: item.channel.channelHandle || item.channel._id,\n // title,\n // subtitleButton,\n // tagType,\n // cardClass: EntertainmentCardClass,\n // };\n // });\n // } else {\n // entertainmentData = [];\n // }\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType:\"Premium\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = all180Data.filter((item) => {\n if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {/* {IsDataAvailable ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 180 Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n \n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"180 Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType ={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/content/180-video/${item.channel}/${item._id}`}\n />\n\n ))}\n\n \n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n \n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader/>\n </div>\n )} */}\n <div className=\"mt-4 relative ml-auto w-full sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n onChange={handleSearchInputChange}\n value={searchInputText}\n ref={inputRef}\n />\n </div>\n <div className=\"__entertainment_assets_main max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 180 Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filteredData.length > 0 && (\n <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"180 Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"180-video\",\n item.channel,\n item.contentSlug\n )}`}\n itemId={item._id}\n />\n ))}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n {isFetching && (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n )}\n\n {filteredData.length == 0 && !isFetching && searchText.length == 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n {filteredData.length == 0 && !isFetching && searchText.length != 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"text-[#7A7A7A] font-semibold\">No results found</p>\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module 360-List_page\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport { useGet360VideosQuery } from \"store/slicer/Entertainment\";\nimport { Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { calculateTotalPages } from \"utils\";\n\nconst Index = () => {\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n const [pageNum, setPageNum] = useState(1);\n const [all360Data, setAll360Data] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 10;\n const [searchText, setSearchText] = useState(\"\");\n const [searchInputText, setSearchInputText] = useState(\"\");\n const searchTimeout = useRef(null);\n const inputRef = useRef(null);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n const handleSearchInputChange = (e) => {\n setSearchInputText(inputRef.current.value);\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const ts = setTimeout(() => {\n setPageNum(1);\n setSearchText(inputRef.current.value);\n }, 1000);\n\n searchTimeout.current = ts;\n };\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGet360VideosQuery({\n searchQuery: searchText,\n page: pageNum,\n limit: limit,\n });\n useEffect(() => {\n if (\n !isFetching &&\n IsDataAvailable &&\n entertainmentData.response.statusEnum == 1\n ) {\n setTotalPages(\n calculateTotalPages(entertainmentData.response?.data?.totalCount, limit)\n );\n // entertainmentData = entertainmentData?.response?.data?.content;\n const formattedEntertainmentData =\n entertainmentData?.response?.data?.content.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `${item.price || 0} USD | ${convertUsdToFstrPrice(\n item.price || 0\n )} FSTR`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, formattedEntertainmentData);\n\n setAll360Data((prevEntertainmentData) => [\n ...prevEntertainmentData,\n ...formattedEntertainmentData,\n ]);\n } else {\n setAll360Data(() => [...formattedEntertainmentData]);\n }\n }\n }, [isFetching, IsDataAvailable, entertainmentData]);\n // if (IsDataAvailable && entertainmentData.response.statusEnum == 1) {\n // entertainmentData = entertainmentData?.response?.data?.content;\n // entertainmentData = entertainmentData.map((item) => {\n // const contentPref = item.contentPreference;\n // const title = item.contentName;\n // let subtitleButton = \"Free\";\n // let tagType = \"Free\";\n\n // if (contentPref == \"subscription\") {\n // subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n // tagType = \"Premium\";\n // }\n\n // if (contentPref == \"premium\" || contentPref == \"paid\") {\n // subtitleButton = `US$ ${item.price}`;\n // tagType = \"Paid\";\n // }\n\n // return {\n // ...item,\n // channel: item.channel.channelHandle || item.channel._id,\n // title,\n // subtitleButton,\n // tagType,\n // cardClass: EntertainmentCardClass,\n // };\n // });\n // } else {\n // entertainmentData = [];\n // }\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType:\"Premium\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = all360Data.filter((item) => {\n if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {/* {IsDataAvailable ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 360 Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n \n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"360 Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType ={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/content/360-video/${item.channel}/${item._id}`}\n />\n ))}\n\n \n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n \n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader/>\n </div>\n )} */}\n <div className=\"mt-4 relative ml-auto w-full sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n onChange={handleSearchInputChange}\n value={searchInputText}\n ref={inputRef}\n />\n </div>\n <div className=\"__entertainment_assets_main max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 360 Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filteredData.length > 0 && (\n <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"360 Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"360-video\",\n item.channel,\n item.contentSlug\n )}`}\n itemId={item._id}\n />\n ))}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n {isFetching && (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n )}\n\n {filteredData.length == 0 && !isFetching && searchText.length == 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n {filteredData.length == 0 && !isFetching && searchText.length != 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"text-[#7A7A7A] font-semibold\">No results found</p>\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Channel;\n *@developer sudhanshu\n */\n\nimport React, { useState, useEffect, Fragment, useRef } from \"react\";\nimport { Link, NavLink } from \"react-router-dom\";\nimport LargeCarousel from \"components/carousel/MostTreading\";\nimport ChannelImage from \"assets/images/channel.png\";\nimport nureal from \"assets/images/nureal.png\";\nimport bigBang from \"assets/images/bigBang.png\";\nimport { useGetAllChannelContentQuery } from \"store/slicer/Entertainment\";\nimport { BASE_URL } from \"constant/api/Endpoints\";\nimport { EndpointsSlug } from \"constant/api/Endpoints\";\nimport Loader from \"components/Loader/Loader\";\nimport ChannelsAllContent from \"components/channels/ChannelsAllContent\";\n/*It defines a\ncomponent called `Index` that renders a list of volumetric cards. */\nconst Index = () => {\n const [searchText, setSearchText] = useState(\"\");\n const [searchInputText, setSearchInputText] = useState(\"\");\n const searchTimeout = useRef(null);\n const inputRef = useRef(null);\n\n const handleSearchInputChange = (e) => {\n setSearchInputText(inputRef.current.value);\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const ts = setTimeout(() => {\n setSearchText(inputRef.current.value);\n }, 1000);\n\n searchTimeout.current = ts;\n };\n\n // let {\n // data: channelListData = [],\n // isFetching,\n // isSuccess: IsDataAvailable,\n // isError,\n // error,\n // } = useGetAllChannelsListQuery({\n // searchQuery: searchText,\n // });\n let {\n data: channelListData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGetAllChannelContentQuery({\n searchQuery: searchText,\n });\n\n if (IsDataAvailable && channelListData?.response?.statusEnum == 1) {\n channelListData = channelListData?.response?.data?.content;\n } else {\n channelListData = [];\n }\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n return (\n <>\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"relative ml-auto w-full sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n onChange={handleSearchInputChange}\n value={searchInputText}\n ref={inputRef}\n />\n </div>\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Channel\n </h4>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \"></div>\n <div className=\"volumetric-card-right-shadow\"></div>\n\n {channelListData.length > 0 &&\n IsDataAvailable &&\n !isFetching &&\n channelListData.map((channelData, index) => {\n return (\n <div key={channelData._id}>\n <ChannelsAllContent channelDetails={channelData} />\n {index < channelListData.length - 1 &&\n channelData?.content?.length > 0 ? (\n <hr className=\"border-[0.1px] border-[#5A5A5A80] my-[35px] sm:mt-[40px] sm:mb-[56px]\" />\n ) : null}\n </div>\n );\n })}\n\n {isFetching && (\n <div className=\"h-[70vh] grid place-items-center\">\n <Loader />\n </div>\n )}\n {!isFetching &&\n channelListData.length == 0 &&\n searchText.length == 0 && (\n <div className=\"flex h-[70vh] flex-col gap-3 items-center justify-center\">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n {channelListData.length == 0 &&\n !isFetching &&\n searchText.length != 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"text-[#7A7A7A] font-semibold\">No results found</p>\n </div>\n )}\n\n {/* {(channelListData.length == 0 || (!IsDataAvailable && !isFetching)) && <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>} */}\n\n {/* <div className=\"\">\n <div className=\"flex items-center mb-[17px]\">\n <img\n className=\"w-[39px] h-[39px] sm:w-[59px] sm:h-[59px] rounded-full mr-[20px] \"\n src={ChannelImage}\n alt=\"load image\"\n />\n <p className=\"text-sm sm:text-xl font-semibold mr-[10px] sm:mr-[20px]\">\n Fourth Star Entertainment\n </p>\n <NavLink\n to=\"/marketplace/entertainment/channels/fourth-star-entertainment\"\n className={`clip-text text-[12px] sm:text-[15px] font-semibold`}\n >\n See More\n </NavLink>\n </div>\n <div className=\"item-section relative z-10\">\n <LargeCarousel\n slider={mostTrending}\n SlideToShow={2}\n type=\"trending\"\n ></LargeCarousel>\n </div>\n </div>\n\n <hr className=\"border-[0.1px] border-[#5A5A5A80] my-[35px] sm:mt-[40px] sm:mb-[56px]\" />\n <div className=\"\">\n <div className=\"flex items-center mb-[17px]\">\n <img\n className=\"w-[39px] h-[39px] sm:w-[59px] sm:h-[59px] rounded-full mr-[20px] \"\n src={nureal}\n alt=\"load image\"\n />\n <p className=\"text-sm sm:text-xl font-semibold mr-[10px] sm:mr-[20px]\">\n Nureal Entertainment\n\n </p>\n <NavLink\n to=\"/marketplace/entertainment/channels/fourth-star-entertainment\"\n className={`clip-text text-[12px] sm:text-[15px] font-semibold`}\n >\n See More\n </NavLink>\n </div>\n <div className=\"item-section relative z-10\">\n <LargeCarousel\n slider={mostTrending}\n SlideToShow={2}\n type=\"trending\"\n ></LargeCarousel>\n </div>\n </div>\n\n <hr className=\"border-[0.1px] border-[#5A5A5A80] my-[35px] sm:mt-[40px] sm:mb-[56px]\" />\n <div className=\"\">\n <div className=\"flex items-center mb-[17px]\">\n <img\n className=\"w-[39px] h-[39px] sm:w-[59px] sm:h-[59px] rounded-full mr-[20px] \"\n src={bigBang}\n alt=\"load image\"\n />\n <p className=\"text-sm sm:text-xl font-semibold mr-[10px] sm:mr-[20px]\">\n Big Bang Entertainment\n\n </p>\n <NavLink\n to=\"/marketplace/entertainment/channels/fourth-star-entertainment\"\n className={`clip-text text-[12px] sm:text-[15px] font-semibold`}\n >\n See More\n </NavLink>\n </div>\n <div className=\"item-section relative z-10\">\n <LargeCarousel\n slider={mostTrending}\n SlideToShow={2}\n type=\"trending\"\n ></LargeCarousel>\n </div>\n </div> */}\n </div>\n {/* <div className=\"\">\n <div className=\"flex h-screen flex-col gap-3 items-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <a\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </a>\n </div>\n </div> */}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Music\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport FilterDropdown from \"../../../../components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport { useGetMusicVideosQuery } from \"store/slicer/Entertainment\";\nimport { Link } from \"react-router-dom\";\nimport { generateMusicPageUrl } from \"utils/generateUrls\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { calculateTotalPages } from \"utils\";\n\nconst Index = () => {\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n const [pageNum, setPageNum] = useState(1);\n const [allVolumetricData, setAllVolumetricData] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 10;\n const [searchText, setSearchText] = useState(\"\");\n const [searchInputText, setSearchInputText] = useState(\"\");\n const searchTimeout = useRef(null);\n const inputRef = useRef(null);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n const handleSearchInputChange = (e) => {\n setSearchInputText(inputRef.current.value);\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const ts = setTimeout(() => {\n setPageNum(1);\n setSearchText(inputRef.current.value);\n }, 1000);\n\n searchTimeout.current = ts;\n };\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGetMusicVideosQuery({\n searchQuery: searchText,\n page: pageNum,\n limit: limit,\n });\n useEffect(() => {\n if (\n !isFetching &&\n IsDataAvailable &&\n entertainmentData.response.statusEnum == 1\n ) {\n setTotalPages(\n calculateTotalPages(entertainmentData.response?.data?.totalCount, limit)\n );\n // entertainmentData = entertainmentData?.response?.data?.content;\n const formattedEntertainmentData =\n entertainmentData?.response?.data?.content.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `${item.price || 0} USD | ${convertUsdToFstrPrice(\n item.price || 0\n )} FSTR`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, formattedEntertainmentData);\n\n setAllVolumetricData((prevEntertainmentData) => [\n ...prevEntertainmentData,\n ...formattedEntertainmentData,\n ]);\n } else {\n setAllVolumetricData(() => [...formattedEntertainmentData]);\n }\n }\n }, [isFetching, IsDataAvailable, entertainmentData]);\n // if (IsDataAvailable && entertainmentData.response.statusEnum == 1) {\n // entertainmentData = entertainmentData?.response?.data?.content;\n // entertainmentData = entertainmentData.map((item) => {\n // const contentPref = item.contentPreference;\n // const title = item.contentName;\n // let subtitleButton = \"Free\";\n // let tagType = \"Free\";\n\n // if (contentPref == \"subscription\") {\n // subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n // tagType = \"Premium\";\n // }\n\n // if (contentPref == \"premium\" || contentPref == \"paid\") {\n // subtitleButton = `US$ ${item.price}`;\n // tagType = \"Paid\";\n // }\n\n // return {\n // ...item,\n // channel: item.channel.channelHandle || item.channel._id,\n // title,\n // subtitleButton,\n // tagType,\n // cardClass: EntertainmentCardClass,\n // };\n // });\n // } else {\n // entertainmentData = [];\n // }\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType:\"Premium\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Paid\"\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType:\"Free\"\n // },\n // ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = allVolumetricData.filter((item) => {\n if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {/* {IsDataAvailable ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Music\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 \">\n \n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType ={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={true}\n imageUrl={item.thumbnail || item.mediaFile}\n link={`/marketplace/entertainment/content/music/${item.channel}/${item._id}`}\n />\n ))}\n\n \n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n \n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none \">\n <Loader/>\n </div>\n )} */}\n <div className=\"mt-4 relative ml-auto w-full sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n onChange={handleSearchInputChange}\n value={searchInputText}\n ref={inputRef}\n />\n </div>\n <div className=\"__entertainment_assets_main max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Music\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filteredData.length > 0 && (\n <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={true}\n imageUrl={item.thumbnail || item.mediaFile}\n link={`/marketplace/entertainment/${generateMusicPageUrl(\n item.channel,\n item.contentSlug\n )}`}\n itemId={item._id}\n />\n ))}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n {isFetching && (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none \">\n <Loader />\n </div>\n )}\n\n {filteredData.length == 0 && !isFetching && searchText.length == 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n {filteredData.length == 0 && !isFetching && searchText.length != 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"text-[#7A7A7A] font-semibold\">No results found</p>\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n\n// The OLD CODE ---------->>>>>>>>>>>>>>>>\n// /**\n// * This file is part of FourthStar User Dashboard\n// *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n// *------------------------------------------------------\n// *@module user\n// *@developer Sameer <sameer@shadowcast.io>\n// */\n\n// import React, { useState, useEffect } from 'react';\n// import { useNavigate } from 'react-router-dom';\n// import { Grid, Typography } from '@mui/material';\n// import { Fade, Zoom } from 'react-reveal';\n\n// import Card from 'components/card/music/index';\n\n// /*It defines a\n// component called `Index` that renders a list of Music cards. */\n// const Index = () => {\n// const [list, setList] = useState([\n// { name: 'Supermassive black hole', price: '' },\n// { name: 'Supermassive black hole', price: 9.99 },\n// { name: 'Supermassive black hole', price: '' },\n// { name: 'Supermassive black hole', price: 99 },\n// { name: 'Supermassive black hole', price: '' },\n// { name: 'Supermassive black hole', price: '' },\n// { name: 'Supermassive black hole', price: '' },\n// ]);\n\n// return (\n// <>\n// <Grid container item xs={12} className=\"fs24px justify-center\">\n// <Grid container item xs={11} sm={12} className=\"gap-16\" columnGap={6}>\n// <Grid item xs={12}>\n// <Typography className=\"fs20px font-bold\">Music</Typography>\n// </Grid>\n\n// {list?.map((item, i) => (\n// <Card\n// data={item}\n// key={i}\n// redirect={'/marketplace/entertainment/music'}\n// />\n// ))}\n// </Grid>\n// </Grid>\n// </>\n// );\n// };\n\n// export default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Volumetric-List_page\n *@developer Sudhanshu\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport Loader from \"components/Loader/Loader\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport { useGetVolumetricVideosQuery } from \"store/slicer/Entertainment\";\nimport { Link, useSearchParams } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { calculateTotalPages } from \"utils\";\n\nconst Index = () => {\n const [selectedFilter, setSelectedFilter] = useState(\"All\");\n const [searchParams, setSearchParams] = useSearchParams();\n const [pageNum, setPageNum] = useState(1);\n const [allVolumetricData, setAllVolumetricData] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 10;\n const [searchText, setSearchText] = useState(searchParams.get(\"q\") || \"\");\n const [searchInputText, setSearchInputText] = useState(\n searchParams.get(\"q\") || \"\"\n );\n const searchTimeout = useRef(null);\n const inputRef = useRef(null);\n\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n const handleSearchInputChange = (e) => {\n setSearchInputText(inputRef.current.value);\n\n if (searchTimeout.current) {\n clearTimeout(searchTimeout.current);\n }\n\n const ts = setTimeout(() => {\n setPageNum(1);\n setSearchText(inputRef.current.value);\n }, 1000);\n\n searchTimeout.current = ts;\n };\n // const entertainmentData\n // const isFetching= false\n // const IsDataAvailable = false\n // const totalCount = 0\n let {\n data: entertainmentData,\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n totalCount,\n refetch,\n } = useGetVolumetricVideosQuery({\n searchQuery: searchText,\n page: pageNum,\n limit: limit,\n });\n useEffect(() => {\n if (\n !isFetching &&\n IsDataAvailable &&\n entertainmentData.response.statusEnum == 1\n ) {\n setTotalPages(\n calculateTotalPages(entertainmentData.response?.data?.totalCount, limit)\n );\n // entertainmentData = entertainmentData?.response?.data?.content;\n const formattedEntertainmentData =\n entertainmentData?.response?.data?.content.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `${item.price} USD | ${convertUsdToFstrPrice(\n item.price ?? 0\n )} FSTR`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item?.channel?.channelHandle || item.channel?._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, formattedEntertainmentData);\n\n setAllVolumetricData((prevEntertainmentData) => [\n ...prevEntertainmentData,\n ...formattedEntertainmentData,\n ]);\n } else {\n setAllVolumetricData(() => [...formattedEntertainmentData]);\n }\n }\n }, [isFetching, IsDataAvailable, entertainmentData]);\n // if (IsDataAvailable && entertainmentData.response.statusEnum == 1) {\n // entertainmentData = entertainmentData?.response?.data?.content;\n // entertainmentData = entertainmentData.map((item) => {\n // const contentPref = item.contentPreference;\n // const title = item.contentName;\n // let subtitleButton = \"Free\";\n // let tagType = \"Free\";\n\n // if (contentPref == \"subscription\") {\n // subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n // tagType = \"Premium\";\n // }\n\n // if (contentPref == \"premium\" || contentPref == \"paid\") {\n // subtitleButton = `US$ ${item.price}`;\n // tagType = \"Paid\";\n // }\n\n // return {\n // ...item,\n // channel: item.channel.channelHandle || item.channel._id,\n // title,\n // subtitleButton,\n // tagType,\n // cardClass: EntertainmentCardClass,\n // };\n // });\n // } else {\n // entertainmentData = [];\n // }\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // comment the below 2 declaration out after testing\n\n // IsDataAvailable = true;\n // entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = allVolumetricData.filter((item) => {\n if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {/* {IsDataAvailable ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Volumetric Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"Volumetric\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/content/volumetric-video/${item.channel}/${item._id}`}\n />\n ))}\n\n\n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none \">\n <Loader/>\n </div>\n )} */}\n <div className=\"mt-4 relative ml-auto w-full sm:max-w-[380px]\">\n <svg\n className=\"absolute top-1/2 -translate-y-1/2 left-3\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.4351 10.0629H10.7124L10.4563 9.8159C11.3838 8.7401 11.8935 7.36667 11.8925 5.94626C11.8925 4.7702 11.5438 3.62055 10.8904 2.64269C10.237 1.66484 9.30832 0.902692 8.22179 0.452634C7.13525 0.00257642 5.93966 -0.115179 4.7862 0.114258C3.63274 0.343696 2.57322 0.910021 1.74162 1.74162C0.910021 2.57322 0.343696 3.63274 0.114258 4.7862C-0.115179 5.93966 0.00257642 7.13525 0.452634 8.22179C0.902692 9.30832 1.66484 10.237 2.64269 10.8904C3.62055 11.5438 4.7702 11.8925 5.94626 11.8925C7.4191 11.8925 8.77301 11.3528 9.8159 10.4563L10.0629 10.7124V11.4351L14.6369 16L16 14.6369L11.4351 10.0629ZM5.94626 10.0629C3.66838 10.0629 1.82962 8.22413 1.82962 5.94626C1.82962 3.66838 3.66838 1.82962 5.94626 1.82962C8.22413 1.82962 10.0629 3.66838 10.0629 5.94626C10.0629 8.22413 8.22413 10.0629 5.94626 10.0629Z\"\n fill=\"#CFCFCF\"\n />\n </svg>\n <input\n className=\"w-full px-3 py-2 sm:py-3 pl-[34px] bg-transparent border border-[#5C5C5C] rounded-lg placeholder:text-[#cfcfcf] placeholder:text-[14px] placeholder:leading-[9.57px]\"\n type=\"text\"\n name=\"searchquery\"\n id=\"searchquery\"\n placeholder=\"Search\"\n onChange={handleSearchInputChange}\n value={searchInputText}\n ref={inputRef}\n />\n </div>\n <div className=\"__entertainment_assets_main max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mt-4 mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Volumetric Video\n </h4>\n <div className=\"pt-3\">\n <FilterDropdown\n options={filterOptions}\n onChange={handleFilterChange}\n />\n </div>\n </div>\n {filteredData.length > 0 && (\n <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"Volumetric\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n imageUrl={item.thumbnail || item.mediaFile}\n // tags =\"vol\"\n thumbnailIcon={false}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"volumetric-video\",\n item.channel,\n item.contentSlug\n )}`}\n itemId={item._id}\n />\n ))}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum && (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n )}\n </div>\n </>\n )}\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n {isFetching && (\n <div class=\"__explore_default_button flex justify-center items-center h-[70vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n )}\n\n {filteredData.length == 0 && !isFetching && searchText.length == 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"font-heading font-semibold clip-text\">Coming Soon</p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n )}\n {filteredData.length == 0 && !isFetching && searchText.length != 0 && (\n <div className=\"h-[60vh] flex flex-col gap-3 items-center justify-center \">\n <p className=\"text-[#7A7A7A] font-semibold\">No results found</p>\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","import React from \"react\";\nimport Video2D from \"../components/2d\";\nimport Video180 from \"../components/180\";\nimport Video360 from \"../components/360\";\nimport Channels from \"../components/channels\";\nimport Music from \"../components/music\";\nimport Volumetric from \"../components/volumetric\";\nimport EventsPage from \"../events/Events\";\nimport { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useParams } from \"react-router-dom\";\n\n// const myAssetsTabs = [\n// {\n// id: 0,\n// parentId: 0,\n// key: \"volumetric-video\",\n// name: \"Volumetric Video\",\n// children: null,\n// component: <Volumetric />,\n// },\n// {\n// id: 1,\n// parentId: 0,\n// key: \"180-video\",\n// name: \"180 Video\",\n// children: null,\n// component: <Video180 />,\n// },\n// {\n// id: 2,\n// parentId: 0,\n// key: \"360-video\",\n// name: \"360 Video\",\n// children: null,\n// component: <Video360 />,\n// },\n// {\n// id: 3,\n// parentId: 0,\n// key: \"2D-video\",\n// name: \"2D Video\",\n// children: null,\n// component: <Video2D />,\n// },\n// {\n// id: 4,\n// parentId: 0,\n// key: \"music\",\n// name: \"Music\",\n// children: null,\n// component: <Music />,\n// },\n// {\n// id: 5,\n// parentId: 0,\n// key: \"channels\",\n// name: \"Channels\",\n// children: null,\n// component: <Channels />,\n// },\n// ];\n\nconst myAssetsTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"events\",\n name: \"Events\",\n children: null,\n component: <EventsPage />,\n },\n {\n id: 1,\n parentId: 0,\n key: \"volumetric-video\",\n name: \"Volumetric Video\",\n children: null,\n component: <Volumetric />,\n },\n {\n id: 2,\n parentId: 0,\n key: \"180-video\",\n name: \"180 Video\",\n children: null,\n component: <Video180 />,\n },\n {\n id: 3,\n parentId: 0,\n key: \"360-video\",\n name: \"360 Video\",\n children: null,\n component: <Video360 />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"2D-video\",\n name: \"2D Video\",\n children: null,\n component: <Video2D />,\n },\n {\n id: 5,\n parentId: 0,\n key: \"music\",\n name: \"Music\",\n children: null,\n component: <Music />,\n },\n {\n id: 6,\n parentId: 0,\n key: \"channels\",\n name: \"Channels\",\n children: null,\n component: <Channels />,\n },\n];\n\nconst Index = () => {\n const navigate = useNavigate();\n\n const handleChange = (event, newValue) => {\n switch (newValue) {\n case 0:\n navigate(\"/marketplace/entertainment/events\");\n break;\n case 1:\n navigate(\"/marketplace/entertainment/volumetric-video\");\n break;\n case 2:\n navigate(\"/marketplace/entertainment/180-video\");\n break;\n case 3:\n navigate(\"/marketplace/entertainment/360-video\");\n break;\n case 4:\n navigate(\"/marketplace/entertainment/2D-video\");\n break;\n case 5:\n navigate(\"/marketplace/entertainment/music\");\n break;\n case 6:\n navigate(\"/marketplace/entertainment/channels\");\n break;\n default:\n break;\n }\n // switch (newValue) {\n // case 0:\n // navigate(\"/marketplace/entertainment/volumetric-video\");\n // break;\n // case 1:\n // navigate(\"/marketplace/entertainment/180-video\");\n // break;\n // case 2:\n // navigate(\"/marketplace/entertainment/360-video\");\n // break;\n // case 3:\n // navigate(\"/marketplace/entertainment/2D-video\");\n // break;\n // case 4:\n // navigate(\"/marketplace/entertainment/music\");\n // break;\n // case 5:\n // navigate(\"/marketplace/entertainment/channels\");\n // break;\n // default:\n // break;\n // }\n };\n const { activeTab } = useParams();\n\n const [activeTabs, setActivetab] = useState(() => {\n const tab = myAssetsTabs.find((tab) => tab.key === activeTab);\n return tab ? tab : myAssetsTabs[0]; // Default to the first tab if activeTab is not found\n });\n\n return (\n <div className=\"relative px-2 md:px-4\">\n <hr className=\"border-[0.1px] border-[#5A5A5A80]\" />\n\n {activeTabs.key == \"events\" ? (\n <div className=\"mt-[16px]\">{activeTabs.component}</div>\n ) : (\n <div className=\"__myassets_container_main flex flex-col md:flex-row max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\">\n <div className=\"__assets_category_panel w-[100%] md:w-[20%] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0 py-[35px]\">\n <h5 className=\"text-[grey] font-body mb-[10px] font-bold tracking-[1px] max-[768px]:hidden text-sm\">\n Category\n </h5>\n <div className=\"volumetric-card-left-shadow \"></div>\n <div className=\"overflow-hidden\">\n <ul\n data-testid=\"tablist\"\n className=\"overflow-y-scroll\n flex md:flex-col\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n \"\n >\n {myAssetsTabs?.map((tabs, index) => {\n return (\n <li\n role=\"tab\"\n key={tabs.key}\n className={`mr-8 md:mr-[0] whitespace-nowrap hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n }`}\n onClick={() => {\n setActivetab(tabs);\n handleChange(tabs.key, index);\n }}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n\n <div className=\"__assets_tabs_container_panel w-[100%] md:w-[80%] sm:p-[10px] md:pl-[56px] xl:pl-[96px] max-[768px]:w-auto max-[768px]:h-auto xl:min-h-[768px] max-[768px]:mt-[18px]\">\n {activeTabs.key === \"volumetric-video\" && activeTabs.component}\n {activeTabs.key === \"180-video\" && activeTabs.component}\n {activeTabs.key === \"360-video\" && activeTabs.component}\n {activeTabs.key === \"2D-video\" && activeTabs.component}\n {activeTabs.key === \"music\" && activeTabs.component}\n {activeTabs.key === \"channels\" && activeTabs.component}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer sudhanshu <sameer@shadowcast.io>\n */\n\nimport React, { useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\n// import AssetCardOpen from \"components/card/assets/AssetCardOpen\";\n// import FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Loader from \"components/Loader/Loader\";\n// change this to corrrect api for a specific channel when the api goes live\nimport { useGet2DVideosQuery } from \"store/slicer/Entertainment\";\nimport { useParams, Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\n/*It defines a\n component called `Index` that renders a list of volumetric cards. */\nconst Index = ({ labelStatus, justAdded }) => {\n const [selectedFilter, setSelectedFilter] = useState(\n labelStatus ? labelStatus : \"All\"\n );\n const [premiumContent, setPremiumContent] = useState(false);\n const [premiumPrice, setPremiumPrice] = useState(40);\n\n const { channelId } = useParams();\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n const [open, setOpen] = useState(false);\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGet2DVideosQuery({ channelId }); // change to correct api for specific channel api when it goes live\n\n if (IsDataAvailable) {\n entertainmentData = entertainmentData.response.data.content;\n entertainmentData = entertainmentData.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `US$ ${item.price}`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n } else {\n entertainmentData = [];\n }\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // ];\n const premiumData = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = entertainmentData.filter((item) => {\n if (\n selectedFilter === \"premiumOnly\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {IsDataAvailable && filteredData.length ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] px-[0] lg:px-[20px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 2D Video\n </h4>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"2D Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={false}\n imageUrl={item.thumbnail || item.mediaFile}\n handleData={() => setOpen(true)}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"2D-video\",\n item.channel,\n item.contentSlug\n )}`}\n itemId={item._id}\n justAdded={justAdded}\n />\n ))}\n </div>\n <UnlockPremium\n status={open}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${premiumPrice.toFixed(\n 2\n )}/Month ( $${(premiumPrice * 12).toFixed(2)}/year )</b>.`}\n heading=\"Unlock the Premium\"\n price={premiumPrice}\n handleData={() => setOpen(false)}\n handleSub={() => setPremiumContent(true)}\n />\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n {isFetching && <Loader />}\n {filteredData.length == 0 && !isFetching && (\n <div className=\"\">\n <div className=\"flex flex-col gap-3 items-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer sudhanshu <sameer@shadowcast.io>\n */\n\nimport React, { useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\n// import AssetCardOpen from \"components/card/assets/AssetCardOpen\";\n// import FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Loader from \"components/Loader/Loader\";\n// change this to corrrect api for a specific channel when the api goes live\nimport { useGet180VideosQuery } from \"store/slicer/Entertainment\";\nimport { useParams, Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\n/*It defines a\n component called `Index` that renders a list of volumetric cards. */\nconst Index = ({ labelStatus, justAdded }) => {\n const [selectedFilter, setSelectedFilter] = useState(\n labelStatus ? labelStatus : \"All\"\n );\n const [premiumContent, setPremiumContent] = useState(false);\n const [premiumPrice, setPremiumPrice] = useState(40);\n const { channelId } = useParams();\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n const [open, setOpen] = useState(false);\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGet180VideosQuery({ channelId }); // change to correct api for specific channel api when it goes live\n\n if (IsDataAvailable) {\n entertainmentData = entertainmentData.response.data.content;\n entertainmentData = entertainmentData.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `US$ ${item.price}`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n } else {\n entertainmentData = [];\n }\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // ];\n const premiumData = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = entertainmentData.filter((item) => {\n if (\n selectedFilter === \"premiumOnly\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {IsDataAvailable && filteredData.length ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] px-[0] lg:px-[20px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 180 Video\n </h4>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"180 Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={false}\n imageUrl={item.thumbnail || item.mediaFile}\n handleData={() => setOpen(true)}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"180-video\",\n item.channel,\n item.contentSlug\n )}`}\n justAdded={justAdded}\n />\n ))}\n </div>\n <UnlockPremium\n status={open}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${premiumPrice.toFixed(\n 2\n )}/Month ( $${(premiumPrice * 12).toFixed(2)}/year )</b>.`}\n heading=\"Unlock the Premium\"\n price={premiumPrice}\n handleData={() => setOpen(false)}\n handleSub={() => setPremiumContent(true)}\n />\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n {isFetching && <Loader />}\n {filteredData.length == 0 && !isFetching && (\n <div className=\"\">\n <div className=\"flex flex-col gap-3 items-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer sudhanshu <sameer@shadowcast.io>\n */\n\nimport React, { useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\n// import AssetCardOpen from \"components/card/assets/AssetCardOpen\";\n// import FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Loader from \"components/Loader/Loader\";\n// change this to corrrect api for a specific channel when the api goes live\nimport { useGet360VideosQuery } from \"store/slicer/Entertainment\";\nimport { useParams, Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\n/*It defines a\n component called `Index` that renders a list of volumetric cards. */\nconst Index = ({ labelStatus, justAdded }) => {\n const [selectedFilter, setSelectedFilter] = useState(\n labelStatus ? labelStatus : \"All\"\n );\n const [premiumContent, setPremiumContent] = useState(false);\n const [premiumPrice, setPremiumPrice] = useState(40);\n const { channelId } = useParams();\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n const [open, setOpen] = useState(false);\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGet360VideosQuery({ channelId }); // change to correct api for specific channel api when it goes live\n\n if (IsDataAvailable) {\n entertainmentData = entertainmentData.response.data.content;\n entertainmentData = entertainmentData.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `US$ ${item.price}`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n } else {\n entertainmentData = [];\n }\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // ];\n const premiumData = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = entertainmentData.filter((item) => {\n if (\n selectedFilter === \"premiumOnly\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {IsDataAvailable && filteredData.length ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] px-[0] lg:px-[20px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n 360 Video\n </h4>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"360 Video\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={false}\n imageUrl={item.thumbnail || item.mediaFile}\n handleData={() => setOpen(true)}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"360-video\",\n item.channel,\n item.contentSlug\n )}`}\n justAdded={justAdded}\n />\n ))}\n </div>\n <UnlockPremium\n status={open}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${premiumPrice.toFixed(\n 2\n )}/Month ( $${(premiumPrice * 12).toFixed(2)}/year )</b>.`}\n heading=\"Unlock the Premium\"\n price={premiumPrice}\n handleData={() => setOpen(false)}\n handleSub={() => setPremiumContent(true)}\n />\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n {isFetching && <Loader />}\n {filteredData.length == 0 && !isFetching && (\n <div className=\"\">\n <div className=\"flex flex-col gap-3 items-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer sudhanshu <sameer@shadowcast.io>\n */\n\nimport React, { useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\n// import AssetCardOpen from \"components/card/assets/AssetCardOpen\";\n// import FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Loader from \"components/Loader/Loader\";\nimport { useGetMusicVideosQuery } from \"store/slicer/Entertainment\";\nimport { useParams, Link } from \"react-router-dom\";\nimport { generateMusicPageUrl } from \"utils/generateUrls\";\n/*It defines a\n component called `Index` that renders a list of volumetric cards. */\nconst Index = ({ labelStatus, justAdded }) => {\n const [selectedFilter, setSelectedFilter] = useState(\n labelStatus ? labelStatus : \"All\"\n );\n const [premiumContent, setPremiumContent] = useState(false);\n const [premiumPrice, setPremiumPrice] = useState(40);\n const { channelId } = useParams();\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n const [open, setOpen] = useState(false);\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGetMusicVideosQuery({ channelId }); // change to correct api for specific channel api when it goes live\n\n if (IsDataAvailable) {\n entertainmentData = entertainmentData.response.data.content;\n entertainmentData = entertainmentData.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `US$ ${item.price}`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n } else {\n entertainmentData = [];\n }\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // ];\n const premiumData = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = entertainmentData.filter((item) => {\n if (\n selectedFilter === \"premiumOnly\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {IsDataAvailable && filteredData.length ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] px-[0] lg:px-[20px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Music\n </h4>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4 \">\n {filteredData.map((item, index) => (\n <VolumetricCard\n key={item._id}\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={true}\n imageUrl={item.thumbnail || item.mediaFile}\n handleData={() => setOpen(true)}\n link={`/marketplace/entertainment/${generateMusicPageUrl(\n item.channel,\n item.contentSlug\n )}`}\n justAdded={justAdded}\n />\n ))}\n </div>\n <UnlockPremium\n status={open}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${premiumPrice.toFixed(\n 2\n )}/Month ( $${(premiumPrice * 12).toFixed(2)}/year )</b>.`}\n heading=\"Unlock the Premium\"\n price={premiumPrice}\n handleData={() => setOpen(false)}\n handleSub={() => setPremiumContent(true)}\n />\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n {isFetching && <Loader />}\n {filteredData.length == 0 && !isFetching && (\n <div className=\"\">\n <div className=\"flex flex-col gap-3 items-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer sudhanshu <sameer@shadowcast.io>\n */\n\nimport React, { useState } from \"react\";\nimport Explore from \"components/Explore/Explore\";\nimport { EntertainmentCardClass } from \"constant\";\nimport PremiumLockIcon from \"assets/images/myassets/material-symbols_lock-outline.png\";\n// import AssetCardOpen from \"components/card/assets/AssetCardOpen\";\n// import FilterDropdown from \"components/FilterDropdown/FilterDropdown\";\nimport VolumetricCard from \"components/card/marketplace/entertainment/VolumetricCard\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Loader from \"components/Loader/Loader\";\nimport { useGetVolumetricVideosQuery } from \"store/slicer/Entertainment\";\nimport { useParams, Link } from \"react-router-dom\";\nimport { generateVideoPageUrl } from \"utils/generateUrls\";\n/*It defines a\ncomponent called `Index` that renders a list of volumetric cards. */\nconst Index = ({ labelStatus, justAdded }) => {\n const [selectedFilter, setSelectedFilter] = useState(\n labelStatus ? labelStatus : \"All\"\n );\n const [premiumContent, setPremiumContent] = useState(false);\n const [premiumPrice, setPremiumPrice] = useState(40);\n\n const { channelId } = useParams();\n\n const handleFilterChange = (selectedValue) => {\n setSelectedFilter(selectedValue);\n };\n const [open, setOpen] = useState(false);\n\n let {\n data: entertainmentData = [],\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n error,\n } = useGetVolumetricVideosQuery({ channelId });\n\n if (IsDataAvailable) {\n entertainmentData = entertainmentData.response.data.content;\n entertainmentData = entertainmentData?.map((item) => {\n const contentPref = item.contentPreference;\n const title = item.contentName;\n let subtitleButton = \"Free\";\n let tagType = \"Free\";\n\n if (contentPref == \"subscription\") {\n subtitleButton = `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`;\n tagType = \"Premium\";\n }\n\n if (contentPref == \"premium\" || contentPref == \"paid\") {\n subtitleButton = `US$ ${item.price}`;\n tagType = \"Paid\";\n }\n\n return {\n ...item,\n channel: item.channel.channelHandle || item.channel._id,\n title,\n subtitleButton,\n tagType,\n cardClass: EntertainmentCardClass,\n };\n });\n } else {\n entertainmentData = [];\n }\n\n const filterOptions = [\"All\", \"Free\", \"Premium\", \"Buy\"];\n\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: `<img src=${PremiumLockIcon} class=\"w-[24px] h-[24px] mr-4 \" alt='lockIcon'/> Unlock Premium`,\n // cardClass: EntertainmentCardClass,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Paid\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // cardClass: EntertainmentCardClass,\n // tagType: \"Free\",\n // },\n // ];\n const premiumData = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: `Unlocked`,\n cardClass: EntertainmentCardClass,\n tagType: \"Unlocked\",\n },\n ];\n\n // Filter the entertainmentData based on the selected filter\n const filteredData = entertainmentData?.filter((item) => {\n if (\n selectedFilter === \"premiumOnly\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (selectedFilter === \"All\") {\n return true;\n } else if (\n selectedFilter === \"Free\" &&\n item.subtitleButton.includes(\"Free\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Premium\" &&\n item.subtitleButton.includes(\"Unlock Premium\")\n ) {\n return true;\n } else if (\n selectedFilter === \"Buy\" &&\n item.subtitleButton.includes(\"USD\")\n ) {\n return true;\n }\n return false;\n });\n\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"2\",\n tags: \"Volcap\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Free\",\n id: \"5\",\n },\n ];\n\n return (\n <>\n {IsDataAvailable && filteredData?.length ? (\n <div className=\"__entertainment_assets_main pt-4 max-[768px]:p-0\">\n <div className=\"__entertainment_assets_heading mb-[29px] lg:mb-[39px] sm:flex justify-between\">\n <h4 className=\"font-medium font-heading text-[18px] px-[0] lg:px-[20px] lg:text-[28px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px] mb-4 sm:mb-0\">\n Volumetric Video\n </h4>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 \">\n {filteredData?.map((item, index) => (\n <VolumetricCard\n key={item._id}\n tags=\"Volumetric\"\n // slider ={mostTrending}\n type=\"trending\"\n name=\"\"\n title={item.title}\n subtitleButton={item.subtitleButton}\n tagType={item.tagType}\n // tags =\"vol\"\n thumbnailIcon={false}\n imageUrl={item.thumbnail || item.mediaFile}\n handleData={() => setOpen(true)}\n link={`/marketplace/entertainment/${generateVideoPageUrl(\n \"volumetric-video\",\n item.channel,\n item.contentSlug\n )}`}\n justAdded={justAdded}\n />\n ))}\n </div>\n <UnlockPremium\n status={open}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${premiumPrice.toFixed(\n 2\n )}/Month ( $${(premiumPrice * 12).toFixed(2)}/year )</b>.`}\n heading=\"Unlock the Premium\"\n price={premiumPrice}\n handleData={() => setOpen(false)}\n handleSub={() => setPremiumContent(true)}\n />\n </div>\n ) : (\n <div class=\"__explore_default_button flex justify-center items-center h-[50vh] max-[768px]:flex-none max-[1280px]:h-[100%]\">\n {isFetching && <Loader />}\n {filteredData?.length == 0 && !isFetching && (\n <div className=\"\">\n <div className=\"flex flex-col gap-3 items-center \">\n <p className=\"font-heading font-semibold clip-text\">\n Coming Soon\n </p>\n <p className=\"text-[#7A7A7A] font-semibold\">\n Try exploring other exciting contents in marketplace.\n </p>\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm mt-4 rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center w-full py-3 px-4\"\n >\n Browse other content\n </Link>\n </div>\n </div>\n )}\n </div>\n )}\n </>\n );\n};\n\nexport default Index;\n","import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'\nimport { BASE_URL } from 'constant/api/Endpoints';\nimport { BASE_URL_CREATOR, EndpointsSlug } from 'constant/api/Endpoints'\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Analytics-Api-Calls\n *@developer Shubham K\n */\n\n export const AnalyticsSlice = createApi({\n reducerPath:\"Analytics\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL_CREATOR,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem('accessToken') || \"\";\n headers.set('Content-type', 'application/json; charset=UTF-8')\n if (token) {\n headers.set('Authorization', `Bearer ${token}`)\n \n }\n return headers\n },\n }),\n endpoints: (builder) =>({\n postCreateUserInteraction:builder.mutation({\n query:(payload)=>({\n url:BASE_URL + EndpointsSlug.CREATE_USER_INTERACTION,\n method: 'POST',\n body:payload\n })\n }), \n })\n })\n\n export const {\n usePostCreateUserInteractionMutation\n\n } = AnalyticsSlice","import React from \"react\";\nimport Video2D from \"./components/2d\";\nimport Video180 from \"./components/180\";\nimport Video360 from \"./components/360\";\nimport Music from \"./components/music\";\nimport Volumetric from \"./components/volumetric\";\nimport { useState, useEffect } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { usePostCreateUserInteractionMutation } from \"store/slicer/Analytics\";\n\nconst All = ({ justAdded }) => {\n const navigate = useNavigate();\n // const { type, channelId } = useParams();\n const { type, channelId, tabId } = useParams();\n // const routePaths = [\n // \"/marketplace/entertainment/channels/volumetric-video\",\n // \"/marketplace/entertainment/channels/180-video\",\n // \"/marketplace/entertainment/channels/360-video\",\n // \"/marketplace/entertainment/channels/2D\",\n // \"/marketplace/entertainment/channels/music\",\n // \"/marketplace/entertainment/channels/channels\",\n // ];\n\n const routePaths = [\n \"/marketplace/entertainment/channels/\" + channelId + \"/volumetric-video\",\n \"/marketplace/entertainment/channels/\" + channelId + \"/180-video\",\n \"/marketplace/entertainment/channels/\" + channelId + \"/360-video\",\n \"/marketplace/entertainment/channels/\" + channelId + \"/2D\",\n \"/marketplace/entertainment/channels/\" + channelId + \"/music\",\n \"/marketplace/entertainment/channels/\" + channelId + \"/channels\",\n ];\n\n const myAssetsTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"volumetric-video\",\n name: \"Volumetric Video\",\n children: null,\n component: <Volumetric justAdded={justAdded} />,\n },\n {\n id: 1,\n parentId: 1,\n key: \"180-video\",\n name: \"180 Video\",\n children: null,\n component: <Video180 justAdded={justAdded} />,\n },\n {\n id: 2,\n parentId: 2,\n key: \"360-video\",\n name: \"360 Video\",\n children: null,\n component: <Video360 justAdded={justAdded} />,\n },\n {\n id: 3,\n parentId: 3,\n key: \"2D-video\",\n name: \"2D Video\",\n children: null,\n component: <Video2D justAdded={justAdded} />,\n },\n {\n id: 4,\n parentId: 4,\n key: \"music\",\n name: \"Music\",\n children: null,\n component: <Music justAdded={justAdded} />,\n },\n ];\n\n // const [activeTabs, setActivetab] = useState(() => {\n // if (type === 'channels') {\n // const tab = myAssetsTabs.find((tab) => tab.key === channelId);\n // return tab || myAssetsTabs[0]; // Default to the first tab if activeTab is not found\n // } else {\n // // window.location.href = \"http://localhost:3000\";\n // window.location.href = window.location.protocol + \"//\" + window.location.host;\n // }\n // });\n\n const [activeTabs, setActivetab] = useState(() => {\n const tab = myAssetsTabs.find((tab) => tab.key === tabId);\n return tab || myAssetsTabs[0]; // Default to the first tab if activeTab is not found\n });\n\n // calling create user interaction api\n const [createUserInteractionTrigger, createUserInteractionInfo] =\n usePostCreateUserInteractionMutation();\n // calling create user interaction api\n\n // useEffect(()=>{\n // let userInteractionPayload = {\n // keyType:\"channel\",\n // channelId:channelId,\n // contentType:\"channel\",\n // contentId:channelId\n // };\n\n // createUserInteractionTrigger(userInteractionPayload)\n // },[])\n\n return (\n <>\n <hr className=\"border-[0.1px] border-[#5A5A5A80] mx-3\" />\n\n <div className=\"__myassets_container_main px-[15px] py-[35px] flex flex-col md:flex-row max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\">\n <div className=\"__assets_category_panel w-[100%] md:w-[20%] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <h5 className=\"text-[grey] font-body mb-[10px] font-bold tracking-[1px] max-[768px]:hidden text-sm\">\n Category\n </h5>\n <div className=\"overflow-hidden\">\n <ul\n data-testid=\"tablist\"\n className=\"flex md:flex-col\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n \"\n >\n {myAssetsTabs?.map((tabs, index) => (\n <li\n role=\"tab\"\n key={tabs.key}\n className={`mr-8 md:mr-[0] whitespace-nowrap hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs && activeTabs.key == tabs.key\n ? \"!bg-[#FBBC5E4D]\"\n : \"\"\n }`}\n onClick={() => {\n setActivetab(tabs);\n // navigate(routePaths[index], {\n // preventScrollReset: true,\n // });\n }}\n >\n {tabs.name}\n </li>\n ))}\n </ul>\n </div>\n </div>\n\n <div className=\"__assets_tabs_container_panel w-[100%] md:w-[80%] sm:p-[10px] md:pl-[56px] xl:pl-[96px] max-[768px]:w-auto max-[768px]:h-auto max-[768px]:mt-[18px]\">\n {activeTabs && activeTabs.component}\n </div>\n </div>\n </>\n );\n};\n\nexport default All;\n","import React from \"react\";\nimport Video2D from \"./components/2d\";\nimport Video180 from \"./components/180\";\nimport Video360 from \"./components/360\";\nimport Music from \"./components/music\";\nimport Volumetric from \"./components/volumetric\";\nimport { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useParams } from \"react-router-dom\";\n\nimport { AssetsParentTab } from \"constant\";\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Assets-Home-Module\n *@developer Aditya P\n */\n\nconst Premium = ({ loginStatus }) => {\n const navigate = useNavigate();\n const { type, channelId, tabId } = useParams();\n const myAssetsTabs = [\n {\n id: 0,\n parentId: 0,\n key: \"volumetric-video\",\n name: \"Volumetric Video\",\n children: null,\n component: <Volumetric labelStatus=\"premiumOnly\" />,\n },\n {\n id: 1,\n parentId: 0,\n key: \"180-video\",\n name: \"180 Video\",\n children: null,\n component: <Video180 labelStatus=\"premiumOnly\" />,\n },\n {\n id: 2,\n parentId: 0,\n key: \"360-video\",\n name: \"360 Video\",\n children: null,\n component: <Video360 labelStatus=\"premiumOnly\" />,\n },\n {\n id: 3,\n parentId: 0,\n key: \"2D-video\",\n name: \"2D Video\",\n children: null,\n component: <Video2D labelStatus=\"premiumOnly\" />,\n },\n {\n id: 4,\n parentId: 0,\n key: \"music\",\n name: \"Music\",\n children: null,\n component: <Music labelStatus=\"premiumOnly\" />,\n },\n ];\n\n const handleChange = (event, newValue) => {\n switch (newValue) {\n case 0:\n navigate(\n \"/marketplace/entertainment/channels/\" +\n channelId +\n \"/volumetric-video\"\n );\n break;\n case 1:\n navigate(\n \"/marketplace/entertainment/channels/\" + channelId + \"/180-video\"\n );\n break;\n case 2:\n navigate(\n \"/marketplace/entertainment/channels/\" + channelId + \"/360-video\"\n );\n break;\n case 3:\n navigate(\"/marketplace/entertainment/channels/\" + channelId + \"/2D\");\n break;\n case 4:\n navigate(\"/marketplace/entertainment/channels/\" + channelId + \"/music\");\n break;\n case 5:\n navigate(\n \"/marketplace/entertainment/channels/\" + channelId + \"/channels\"\n );\n break;\n default:\n break;\n }\n };\n const { activeTab } = useParams();\n\n const [activeTabs, setActivetab] = useState(() => {\n const tab = myAssetsTabs.find((tab) => tab.key === activeTab);\n return tab ? tab : myAssetsTabs[0]; // Default to the first tab if activeTab is not found\n });\n\n const [parentActivetab, setParentActivetab] = useState({\n id: 0,\n activeTab: \"my-assets\",\n });\n\n return (\n <>\n <hr className=\"border-[0.1px] border-[#5A5A5A80] mx-3\" />\n\n <div className=\"__myassets_container_main px-[15px] py-[35px] flex flex-col md:flex-row max-[768px]:flex-col max-[768px]:p-0 max-[1280px]:py-[25px]\">\n <div className=\"__assets_category_panel w-[100%] md:w-[20%] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <h5 className=\"text-[grey] font-body mb-[10px] font-bold tracking-[1px] max-[768px]:hidden text-sm\">\n Category\n </h5>\n <div className=\"overflow-hidden\">\n <ul\n data-testid=\"tablist\"\n className=\"overflow-y-scroll\n flex md:flex-col\n px-[0px]\n [&>li]:px-[12px] \n [&>li]:py-[10px] \n [&>li]:font-light \n [&>li]:font-body\n [&>li]:my-[15px] \n hover:[&>li]:bg-[#FBBC5E1A]\n hover:[&>li]:rounded-[5px]\n hover:[&>li]:cursor-pointer\n max-[768px]:overflow-x-scroll\n max-[768px]:flex\n max-[768px]:[&>li]:py-[5px]\n max-[768px]:[&>li]:my-[10px]\n max-[768px]:px-0\n \"\n >\n {myAssetsTabs?.map((tabs, index) => {\n return (\n <li\n role=\"tab\"\n key={tabs.key}\n className={`mr-8 md:mr-[0] whitespace-nowrap hover:bg-[#FBBC5E4D] rounded-[5px] ${\n activeTabs.key === tabs.key ? \"!bg-[#FBBC5E4D]\" : \"\"\n }`}\n onClick={() => {\n setActivetab(tabs);\n handleChange(tabs.key, index);\n }}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n\n <div className=\"__assets_tabs_container_panel w-[100%] md:w-[80%] sm:p-[10px] md:pl-[56px] xl:pl-[96px] max-[768px]:w-auto max-[768px]:h-auto max-[768px]:mt-[18px]\">\n {activeTabs.key === \"volumetric-video\" && activeTabs.component}\n {activeTabs.key === \"180-video\" && activeTabs.component}\n {activeTabs.key === \"360-video\" && activeTabs.component}\n {activeTabs.key === \"2D-video\" && activeTabs.component}\n {activeTabs.key === \"music\" && activeTabs.component}\n {activeTabs.key === \"channels\" && activeTabs.component}\n </div>\n </div>\n </>\n );\n};\n\nexport default Premium;\n","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback, unstable_useTimeout as useTimeout } from '@mui/utils';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\n/**\n * The basic building block for creating custom snackbar.\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/#hook)\n *\n * API:\n *\n * - [useSnackbar API](https://mui.com/base-ui/react-snackbar/hooks-api/#use-snackbar)\n */\nfunction useSnackbar(parameters = {}) {\n const {\n autoHideDuration = null,\n disableWindowBlurListener = false,\n onClose,\n open,\n resumeHideDuration\n } = parameters;\n const timerAutoHide = useTimeout();\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n function handleKeyDown(nativeEvent) {\n if (!nativeEvent.defaultPrevented) {\n // IE11, Edge (prior to using Blink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n onClose == null || onClose(nativeEvent, 'escapeKeyDown');\n }\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [open, onClose]);\n const handleClose = useEventCallback((event, reason) => {\n onClose == null || onClose(event, reason);\n });\n const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n if (!onClose || autoHideDurationParam == null) {\n return;\n }\n timerAutoHide.start(autoHideDurationParam, () => {\n handleClose(null, 'timeout');\n });\n });\n React.useEffect(() => {\n if (open) {\n setAutoHideTimer(autoHideDuration);\n }\n return timerAutoHide.clear;\n }, [open, autoHideDuration, setAutoHideTimer, timerAutoHide]);\n const handleClickAway = event => {\n onClose == null || onClose(event, 'clickaway');\n };\n\n // Pause the timer when the user is interacting with the Snackbar\n // or when the user hide the window.\n const handlePause = timerAutoHide.clear;\n\n // Restart the timer when the user is no longer interacting with the Snackbar\n // or when the window is shown back.\n const handleResume = React.useCallback(() => {\n if (autoHideDuration != null) {\n setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n }\n }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n const createHandleBlur = otherHandlers => event => {\n const onBlurCallback = otherHandlers.onBlur;\n onBlurCallback == null || onBlurCallback(event);\n handleResume();\n };\n const createHandleFocus = otherHandlers => event => {\n const onFocusCallback = otherHandlers.onFocus;\n onFocusCallback == null || onFocusCallback(event);\n handlePause();\n };\n const createMouseEnter = otherHandlers => event => {\n const onMouseEnterCallback = otherHandlers.onMouseEnter;\n onMouseEnterCallback == null || onMouseEnterCallback(event);\n handlePause();\n };\n const createMouseLeave = otherHandlers => event => {\n const onMouseLeaveCallback = otherHandlers.onMouseLeave;\n onMouseLeaveCallback == null || onMouseLeaveCallback(event);\n handleResume();\n };\n React.useEffect(() => {\n // TODO: window global should be refactored here\n if (!disableWindowBlurListener && open) {\n window.addEventListener('focus', handleResume);\n window.addEventListener('blur', handlePause);\n return () => {\n window.removeEventListener('focus', handleResume);\n window.removeEventListener('blur', handlePause);\n };\n }\n return undefined;\n }, [disableWindowBlurListener, open, handleResume, handlePause]);\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n return _extends({\n // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n // See https://github.com/mui/material-ui/issues/29080\n role: 'presentation'\n }, externalProps, externalEventHandlers, {\n onBlur: createHandleBlur(externalEventHandlers),\n onFocus: createHandleFocus(externalEventHandlers),\n onMouseEnter: createMouseEnter(externalEventHandlers),\n onMouseLeave: createMouseLeave(externalEventHandlers)\n });\n };\n return {\n getRootProps,\n onClickAway: handleClickAway\n };\n}\nexport default useSnackbar;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/material-ui/react-click-away-listener/)\n * - [Menu](https://mui.com/material-ui/react-menu/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/material-ui/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(\n // @ts-expect-error TODO upstream fix\n children.ref, nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(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 = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSnackbarContentUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbarContent', slot);\n}\nconst snackbarContentClasses = generateUtilityClasses('MuiSnackbarContent', ['root', 'message', 'action']);\nexport default snackbarContentClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"action\", \"className\", \"message\", \"role\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { emphasize } from '@mui/system/colorManipulator';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport Paper from '../Paper';\nimport { getSnackbarContentUtilityClass } from './snackbarContentClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n action: ['action'],\n message: ['message']\n };\n return composeClasses(slots, getSnackbarContentUtilityClass, classes);\n};\nconst SnackbarContentRoot = styled(Paper, {\n name: 'MuiSnackbarContent',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => {\n const emphasis = theme.palette.mode === 'light' ? 0.8 : 0.98;\n const backgroundColor = emphasize(theme.palette.background.default, emphasis);\n return _extends({}, theme.typography.body2, {\n color: theme.vars ? theme.vars.palette.SnackbarContent.color : theme.palette.getContrastText(backgroundColor),\n backgroundColor: theme.vars ? theme.vars.palette.SnackbarContent.bg : backgroundColor,\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n padding: '6px 16px',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n flexGrow: 1,\n [theme.breakpoints.up('sm')]: {\n flexGrow: 'initial',\n minWidth: 288\n }\n });\n});\nconst SnackbarContentMessage = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0'\n});\nconst SnackbarContentAction = styled('div', {\n name: 'MuiSnackbarContent',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'center',\n marginLeft: 'auto',\n paddingLeft: 16,\n marginRight: -8\n});\nconst SnackbarContent = /*#__PURE__*/React.forwardRef(function SnackbarContent(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSnackbarContent'\n });\n const {\n action,\n className,\n message,\n role = 'alert'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SnackbarContentRoot, _extends({\n role: role,\n square: true,\n elevation: 6,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SnackbarContentMessage, {\n className: classes.message,\n ownerState: ownerState,\n children: message\n }), action ? /*#__PURE__*/_jsx(SnackbarContentAction, {\n className: classes.action,\n ownerState: ownerState,\n children: action\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SnackbarContent.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The message to display.\n */\n message: PropTypes.node,\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default SnackbarContent;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSnackbarUtilityClass(slot) {\n return generateUtilityClass('MuiSnackbar', slot);\n}\nconst snackbarClasses = generateUtilityClasses('MuiSnackbar', ['root', 'anchorOriginTopCenter', 'anchorOriginBottomCenter', 'anchorOriginTopRight', 'anchorOriginBottomRight', 'anchorOriginTopLeft', 'anchorOriginBottomLeft']);\nexport default snackbarClasses;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onEnter\", \"onExited\"],\n _excluded2 = [\"action\", \"anchorOrigin\", \"autoHideDuration\", \"children\", \"className\", \"ClickAwayListenerProps\", \"ContentProps\", \"disableWindowBlurListener\", \"message\", \"onBlur\", \"onClose\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport composeClasses from '@mui/utils/composeClasses';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport useSnackbar from './useSnackbar';\nimport ClickAwayListener from '../ClickAwayListener';\nimport { styled, useTheme } from '../styles';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport SnackbarContent from '../SnackbarContent';\nimport { getSnackbarUtilityClass } from './snackbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n anchorOrigin\n } = ownerState;\n const slots = {\n root: ['root', `anchorOrigin${capitalize(anchorOrigin.vertical)}${capitalize(anchorOrigin.horizontal)}`]\n };\n return composeClasses(slots, getSnackbarUtilityClass, classes);\n};\nconst SnackbarRoot = styled('div', {\n name: 'MuiSnackbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`anchorOrigin${capitalize(ownerState.anchorOrigin.vertical)}${capitalize(ownerState.anchorOrigin.horizontal)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const center = {\n left: '50%',\n right: 'auto',\n transform: 'translateX(-50%)'\n };\n return _extends({\n zIndex: (theme.vars || theme).zIndex.snackbar,\n position: 'fixed',\n display: 'flex',\n left: 8,\n right: 8,\n justifyContent: 'center',\n alignItems: 'center'\n }, ownerState.anchorOrigin.vertical === 'top' ? {\n top: 8\n } : {\n bottom: 8\n }, ownerState.anchorOrigin.horizontal === 'left' && {\n justifyContent: 'flex-start'\n }, ownerState.anchorOrigin.horizontal === 'right' && {\n justifyContent: 'flex-end'\n }, {\n [theme.breakpoints.up('sm')]: _extends({}, ownerState.anchorOrigin.vertical === 'top' ? {\n top: 24\n } : {\n bottom: 24\n }, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' && {\n left: 24,\n right: 'auto'\n }, ownerState.anchorOrigin.horizontal === 'right' && {\n right: 24,\n left: 'auto'\n })\n });\n});\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiSnackbar'\n });\n const theme = useTheme();\n const defaultTransitionDuration = {\n enter: theme.transitions.duration.enteringScreen,\n exit: theme.transitions.duration.leavingScreen\n };\n const {\n action,\n anchorOrigin: {\n vertical,\n horizontal\n } = {\n vertical: 'bottom',\n horizontal: 'left'\n },\n autoHideDuration = null,\n children,\n className,\n ClickAwayListenerProps,\n ContentProps,\n disableWindowBlurListener = false,\n message,\n open,\n TransitionComponent = Grow,\n transitionDuration = defaultTransitionDuration,\n TransitionProps: {\n onEnter,\n onExited\n } = {}\n } = props,\n TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),\n other = _objectWithoutPropertiesLoose(props, _excluded2);\n const ownerState = _extends({}, props, {\n anchorOrigin: {\n vertical,\n horizontal\n },\n autoHideDuration,\n disableWindowBlurListener,\n TransitionComponent,\n transitionDuration\n });\n const classes = useUtilityClasses(ownerState);\n const {\n getRootProps,\n onClickAway\n } = useSnackbar(_extends({}, ownerState));\n const [exited, setExited] = React.useState(true);\n const rootProps = useSlotProps({\n elementType: SnackbarRoot,\n getSlotProps: getRootProps,\n externalForwardedProps: other,\n ownerState,\n additionalProps: {\n ref\n },\n className: [classes.root, className]\n });\n const handleExited = node => {\n setExited(true);\n if (onExited) {\n onExited(node);\n }\n };\n const handleEnter = (node, isAppearing) => {\n setExited(false);\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n };\n\n // So we only render active snackbars.\n if (!open && exited) {\n return null;\n }\n return /*#__PURE__*/_jsx(ClickAwayListener, _extends({\n onClickAway: onClickAway\n }, ClickAwayListenerProps, {\n children: /*#__PURE__*/_jsx(SnackbarRoot, _extends({}, rootProps, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: true,\n in: open,\n timeout: transitionDuration,\n direction: vertical === 'top' ? 'down' : 'up',\n onEnter: handleEnter,\n onExited: handleExited\n }, TransitionProps, {\n children: children || /*#__PURE__*/_jsx(SnackbarContent, _extends({\n message: message,\n action: action\n }, ContentProps))\n }))\n }))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The action to display. It renders after the message, at the end of the snackbar.\n */\n action: PropTypes.node,\n /**\n * The anchor of the `Snackbar`.\n * On smaller screens, the component grows to occupy all the available width,\n * the horizontal alignment is ignored.\n * @default { vertical: 'bottom', horizontal: 'left' }\n */\n anchorOrigin: PropTypes.shape({\n horizontal: PropTypes.oneOf(['center', 'left', 'right']).isRequired,\n vertical: PropTypes.oneOf(['bottom', 'top']).isRequired\n }),\n /**\n * The number of milliseconds to wait before automatically calling the\n * `onClose` function. `onClose` should then set the state of the `open`\n * prop to hide the Snackbar. This behavior is disabled by default with\n * the `null` value.\n * @default null\n */\n autoHideDuration: PropTypes.number,\n /**\n * Replace the `SnackbarContent` component.\n */\n children: PropTypes.element,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Props applied to the `ClickAwayListener` element.\n */\n ClickAwayListenerProps: PropTypes.object,\n /**\n * Props applied to the [`SnackbarContent`](/material-ui/api/snackbar-content/) element.\n */\n ContentProps: PropTypes.object,\n /**\n * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n * @default false\n */\n disableWindowBlurListener: PropTypes.bool,\n /**\n * When displaying multiple consecutive snackbars using a single parent-rendered\n * `<Snackbar/>`, add the `key` prop to ensure independent treatment of each message.\n * For instance, use `<Snackbar key={message} />`. Otherwise, messages might update\n * in place, and features like `autoHideDuration` could be affected.\n */\n key: () => null,\n /**\n * The message to display.\n */\n message: PropTypes.node,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the component requests to be closed.\n * Typically `onClose` is used to set state in the parent component,\n * which is used to control the `Snackbar` `open` prop.\n * The `reason` parameter can optionally be used to control the response to `onClose`,\n * for example ignoring `clickaway`.\n *\n * @param {React.SyntheticEvent<any> | Event} event The event source of the callback.\n * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n */\n onClose: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onMouseEnter: PropTypes.func,\n /**\n * @ignore\n */\n onMouseLeave: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * The number of milliseconds to wait before dismissing after user interaction.\n * If `autoHideDuration` prop isn't specified, it does nothing.\n * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n * we default to `autoHideDuration / 2` ms.\n */\n resumeHideDuration: PropTypes.number,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n * @default {\n * enter: theme.transitions.duration.enteringScreen,\n * exit: theme.transitions.duration.leavingScreen,\n * }\n */\n transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })]),\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.\n * @default {}\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Snackbar;","var _circle;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSpinnerWhite(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n style: {\n margin: \"auto\",\n background: \"none\",\n display: \"block\",\n shapeRendering: \"auto\"\n },\n width: \"217px\",\n height: \"217px\",\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"xMidYMid\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 50,\n cy: 50,\n fill: \"none\",\n stroke: \"#fbbc5e\",\n strokeWidth: 3,\n r: 25,\n strokeDasharray: \"117.80972450961724 41.269908169872416\"\n }, /*#__PURE__*/React.createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n repeatCount: \"indefinite\",\n dur: \"1s\",\n values: \"0 50 50;360 50 50\",\n keyTimes: \"0;1\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSpinnerWhite);\nexport default __webpack_public_path__ + \"static/media/spinner-white.754b1c1372662f114df9f1c3b76ea21a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState, useEffect } from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport { Snackbar } from \"@mui/material\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\nimport RollingProfilerLoader from \"assets/icons/spinner-white.svg\";\nimport webRequestHandler from \"constant/api/apiInstance\";\n\nconst CreatorInfo = ({ open, onClose, canClose, channelDetail = {} }) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n const instance = webRequestHandler(BASE_URL);\n const [creatorEmail, setCreatorEmail] = useState(null);\n const [fetchingEmail, setFetchingEmail] = useState(false);\n const [emailError, setEmailError] = useState(\"\");\n const vertical = \"bottom\";\n const horizontal = \"center\";\n console.log(channelDetail);\n\n const copyToClipboard = (path) => {\n navigator?.clipboard?.writeText(path);\n setOpenSnackbar(true);\n };\n const getEmail = async () => {\n setFetchingEmail(true);\n try {\n const resp = await instance.get(\n EndpointsSlug.GET_CHANNEL_EMAIL(channelDetail?.channelHandle)\n );\n console.log(\"data\", resp.response?.data);\n if (resp?.response?.statusEnum === 1) {\n setCreatorEmail(resp?.response?.data.channelEmail);\n setFetchingEmail(false);\n } else {\n setEmailError(resp?.response?.message);\n setFetchingEmail(false);\n }\n } catch (error) {\n console.log(\"error\", error);\n setEmailError(\"Something went wrong, please try again later.\");\n setFetchingEmail(false);\n }\n };\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"relative bg-[#2c2c2c] rounded-[8px] py-4 px-4\">\n <div\n className=\"absolute top-1 right-1 bg-white/10 w-[28px] h-[28px] rounded-full grid place-content-center cursor-pointer\"\n onClick={onClose}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12.6875 1.3125L1.3125 12.6875M1.3125 1.3125L12.6875 12.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n\n <h1 className=\"font-heading font-normal text-[20px] leading-[25px] text-white\">\n About Channel\n </h1>\n <div className=\"__channel__profile__data__section\">\n {channelDetail?.channelDescription && (\n <div className=\"__profile__data__section mt-5\">\n <h4 className=\"text-lg font-body font-medium\">Description</h4>\n <p className=\"text-lg text-[#FFFFFF80]\">\n {channelDetail?.channelDescription}\n </p>\n </div>\n )}\n {channelDetail?.links && channelDetail?.links.length > 0 && (\n <div className=\"__profile__data__section mt-5\">\n <h4 className=\"text-lg font-body font-medium\">Links</h4>\n {channelDetail?.links?.map((link) => {\n return (\n <div className=\"mt-2\">\n <p className=\"text-lg text-[#FFFFFF80]\">{link.platform}</p>\n <a\n href={link.url}\n target=\"_blank\"\n className=\"text-[#FBBC5E]\"\n rel=\"noopener noreferrer\"\n key={link.url}\n >\n {link.url}\n </a>\n </div>\n );\n })}\n </div>\n )}\n <div className=\"__profile__data__section mt-5\">\n <h4 className=\"text-lg font-body font-medium\">Details</h4>\n\n {channelDetail?.contactInfo?.contactEmail && (\n <div className=\"__created__section flex md:gap-[8px] pt-[5px]\">\n <span className=\"text-[12px] font-body font-normal text-[#FFFFFF80]\">\n Email:\n </span>\n <p className=\"text-[14px] font-body font-medium w-full\">\n {creatorEmail\n ? creatorEmail\n : channelDetail?.contactInfo?.contactEmail}{\" \"}\n {emailError ? (\n <span className=\"text-[red]\">{emailError}</span>\n ) : (\n !creatorEmail &&\n (fetchingEmail ? (\n <img\n style={{\n height: \"28px\",\n width: \"28px\",\n display: \"inline-block\",\n }}\n src={RollingProfilerLoader}\n />\n ) : (\n <span\n style={{\n display: \"inline-block\",\n height: \"28px\",\n width: \"28px\",\n }}\n className=\"cursor-pointer\"\n onClick={getEmail}\n >\n Show\n </span>\n ))\n )}\n </p>\n </div>\n )}\n\n {channelDetail?.contactInfo?.websiteName && (\n <div className=\"__subs__section flex md:gap-[8px] pt-[14px]\">\n <span className=\"text-[12px] font-body font-normal text-[#FFFFFF80]\">\n Website:\n </span>\n <p className=\"text-[14px] font-body font-medium w-11/12 break-words\">\n {channelDetail?.contactInfo?.websiteName}\n </p>\n </div>\n )}\n\n <div className=\"__totalSubs__section flex md:gap-[8px] pt-[14px]\">\n <span className=\"text-[12px] font-body font-normal text-[#FFFFFF80]\">\n Total Subscribers:\n </span>\n <p className=\"text-[14px] font-body font-medium\">\n {channelDetail?.channelSubscribers || 0}\n </p>\n </div>\n\n <div className=\"__totalSubs__section flex md:gap-[8px] pt-[14px]\">\n <span className=\"text-[12px] font-body font-normal text-[#FFFFFF80]\">\n Total Content:\n </span>\n <p className=\"text-[14px] font-body font-medium\">\n {channelDetail?.channelContent || 0}\n </p>\n </div>\n\n {channelDetail?.contactInfo?.country.countryName && (\n <div className=\"__totalSubs__section flex md:gap-[8px] pt-[14px]\">\n <span className=\"text-[12px] font-body font-normal text-[#FFFFFF80]\">\n Country:\n </span>\n <p className=\"text-[14px] font-body font-medium\">\n {channelDetail?.contactInfo?.country.countryName}\n </p>\n </div>\n )}\n </div>\n <div className=\"__profile__data__section mt-5\">\n <button\n onClick={() => copyToClipboard(window.location.href)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center\"\n >\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M18.867 12.6697C19 12.3484 19 11.9401 19 11.125C19 10.3099 19 9.90156 18.867 9.58033C18.7791 9.36795 18.6501 9.17497 18.4876 9.01242C18.325 8.84988 18.1321 8.72095 17.9197 8.633C17.5984 8.5 17.1901 8.5 16.375 8.5H11.3C10.32 8.5 9.83 8.5 9.45589 8.69056C9.12631 8.85838 8.85838 9.12631 8.69056 9.45589C8.5 9.82922 8.5 10.3192 8.5 11.3V16.375C8.5 17.1901 8.5 17.5984 8.633 17.9197C8.81111 18.3482 9.15178 18.6897 9.58033 18.867C9.90156 19 10.3099 19 11.125 19C11.9401 19 12.3484 19 12.6697 18.867M18.867 12.6697C18.7791 12.8821 18.6501 13.075 18.4876 13.2376C18.325 13.4001 18.1321 13.5291 17.9197 13.617C17.5984 13.75 17.1901 13.75 16.375 13.75C15.5599 13.75 15.1516 13.75 14.8303 13.883C14.6179 13.9709 14.425 14.0999 14.2624 14.2624C14.0999 14.425 13.9709 14.6179 13.883 14.8303C13.75 15.1516 13.75 15.5599 13.75 16.375C13.75 17.1901 13.75 17.5984 13.617 17.9197C13.5291 18.1321 13.4001 18.325 13.2376 18.4876C13.075 18.6501 12.8821 18.7791 12.6697 18.867M18.867 12.6697C18.4486 14.1124 17.679 15.4288 16.627 16.5011C15.5751 17.5734 14.2736 18.3681 12.8392 18.8141L12.6697 18.867M15.5 8.5V7.8C15.5 6.82 15.5 6.33 15.3094 5.95589C15.1418 5.62643 14.8742 5.35852 14.5449 5.19056C14.17 5 13.68 5 12.7 5H7.8C6.82 5 6.33 5 5.95589 5.19056C5.62631 5.35838 5.35838 5.62631 5.19056 5.95589C5 6.32922 5 6.81922 5 7.8V12.7C5 13.68 5 14.17 5.19056 14.5441C5.35856 14.8739 5.62611 15.1414 5.95589 15.3094C6.32922 15.5 6.82 15.5 7.80078 15.5H8.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n <span>Copy Link</span>\n </button>\n <Snackbar\n anchorOrigin={{ vertical, horizontal }}\n sx={{ position: \"absolute\", zIndex: 9999 }}\n open={openSnackbar}\n autoHideDuration={5000}\n onClose={() => setOpenSnackbar(false)}\n message=\"Copied to clipboard\"\n />\n </div>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default CreatorInfo;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport {\n useParams,\n useNavigate,\n useSearchParams,\n useLocation,\n} from \"react-router-dom\";\n\nimport nureal from \"assets/images/nureal.png\";\nimport ChannelImage from \"assets/images/channel.png\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport PremAptImg from \"assets/images/apartment-banner.jpeg\";\n\nimport { ChannelContentTab } from \"constant\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport All from \"./All\";\nimport Premium from \"./Premium\";\n\nimport { useGetSingleChannelQuery } from \"store/slicer/Entertainment\";\nimport Flag from \"components/report/Flag\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport { GlobalStore } from \"store/GlobalStore\";\nimport Loader from \"components/Loader/Loader\";\nimport ChannelPremium from \"components/buy-cards/channelPremium\";\nimport { useCheckUserSubscriptionsMutation } from \"store/slicer/userAssets\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\nimport CreatorInfo from \"components/popup/CreatorInfo\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Channel-Page\n *@developer Sudhanshu\n */\n\nconst ChannelContent = () => {\n const { channelId } = useParams();\n\n let [searchParams, setSearchParams] = useSearchParams();\n const [channelSubscribed, setChannelSubscribed] = useState(false);\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [creatorInfoOpen, setCreatorInfoOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [IsItemAdded, setIsItemAdded] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n\n const location = useLocation();\n const navigate = useNavigate();\n\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n const authState = GlobalStore.getState()?.auth;\n\n // // user not signed in\n // if (!accessToken) {\n // navigate(`/signin?ref=${location.pathname}`, {\n // replace: true,\n // });\n // }\n\n // // user signed in but did not verify his email\n // if (accessToken && !authState?.userInfo?.isVerified) {\n // navigate(`/otp-verification`, {\n // replace: true,\n // });\n // }\n\n const {\n data: channelData = {\n response: {\n data: {},\n },\n },\n } = useGetSingleChannelQuery(channelId);\n\n //channel details\n const {\n channelThumbnail,\n channelName,\n channelHandle,\n bannerImage,\n _id: cId,\n subscriptionPrice,\n } = channelData?.response?.data;\n\n const [checkSubscription, checkSubscriptionInfo] =\n useCheckUserSubscriptionsMutation();\n async function checkIfOwnedAsset() {\n try {\n const subscriptionInfo = await checkSubscription({\n channelId: cId,\n });\n const isOwned = subscriptionInfo?.data?.response?.data;\n setChannelSubscribed(isOwned);\n } catch (e) {\n console.error(\"Error while checking user asset:\", e);\n }\n }\n\n const [parentActivetab, setParentActivetab] = useState({\n id: 0,\n activeTab: \"all\",\n });\n\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const [thumbLoaded, setThumbLoaded] = useState(false);\n\n const handleClick = async () => {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n };\n\n useEffect(() => {\n if (accessToken && cId ) checkIfOwnedAsset();\n }, [cId]);\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // handle logic for usd currency here\n if (popupCurrency === \"usd\") {\n onPopupClose();\n navigate(\n `/checkout?isSubscription=true&channelId=${channelData?.response?.data?._id}`\n );\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency === \"fstr\") {\n onPopupClose();\n navigate(\n `/initiatepayment?isSubscription=true&channelId=${channelData?.response?.data?._id}&walletId=${walletId}`\n );\n }\n };\n\n const checkout = (walletId) => {\n if (popupCurrency === \"usd\") {\n navigate(\n `/checkout?productType=channel&amount=${subscriptionPrice}¤cy=usd&productId=${cId}&productName=${channelName}`\n );\n } else if (popupCurrency === \"fstr\") {\n navigate(\n `/initiatepayment?productType=channel&amount=${convertActualUsdToFstrPrice(\n subscriptionPrice\n )}&cproductId=${cId}&productName=${channelName}&walletId=${walletId}`\n );\n }\n };\n\n return (\n <>\n <div>\n <div className=\"lg:min-h-[350px] mb-6 md:mb-9 z-10 relative bg-[#333] rounded flex justify-center items-center\">\n <Zoom>\n <img\n src={bannerImage}\n alt=\"\"\n className=\"h-[350px] w-auto bg-cover \"\n style={{ objectFit: \"fill\", width: \"-webkit-fill-available\" }}\n />\n </Zoom>\n <Zoom delay={500}>\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center absolute top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </Zoom>\n </div>\n\n <div className=\"relative flex items-center mb-[17px] mt-[10px] sm:mt-[-70px] pl-4 sm:pl-6\">\n <div className=\"z-[12] relative flex-shrink-0\">\n <img\n className=\"w-[60px] h-[60px] sm:w-[154px] sm:h-[154px] border-2 sm:border-4 border-black rounded-full object-cover mr-[10px] sm:mr-[20px] z-[12] opacity-0 transition-opacity\"\n src={channelThumbnail}\n alt=\"main image\"\n onLoad={({ currentTarget }) => {\n setThumbLoaded(true);\n currentTarget.onLoad = null;\n currentTarget.style.opacity = \"1\";\n }}\n onError={({ currentTarget }) => {\n currentTarget.onError = null;\n // load default channel image for invalid img\n currentTarget.src = ChannelImage;\n }}\n />\n {!thumbLoaded && (\n <div className=\"absolute top-0 left-0 w-[60px] h-[60px] sm:w-[154px] sm:h-[154px] border-2 sm:border-4 border-black/30 rounded-full z-[12] grid place-content-center bg-[#212120]/30\">\n <div className=\"mb-2 ml-2\">\n <Loader />\n </div>\n </div>\n )}\n </div>\n <div className=\"flex justify-between w-full ml-1\">\n <div className=\"__channel__heading__title__section flex gap-x-[10px] \">\n <div className=\"\">\n <div className=\"flex flex-row \">\n <span\n className=\"text-xs sm:text-2xl font-semibold mr-[10px] sm:mr-[20px]\"\n style={{ textWrap: \"nowrap\" }}\n >\n {channelName}\n </span>\n <ChannelPremium\n type=\"ChannelPremium\"\n isLocked={!accessToken}\n justAdded={channelSubscribed}\n price={subscriptionPrice}\n handleData={handleClick}\n />\n </div>\n <div className=\"flex flex-row\">\n <span\n className=\"__channel__username__ text-xl text-[lightgray]\"\n style={{ textWrap: \"nowrap\" }}\n >\n {channelHandle === null || channelHandle === undefined\n ? \"\"\n : `@${channelHandle}`}\n </span>\n <span\n className=\"ml-4 text-[#FBBC5E] text-base font-semibold cursor-pointer text-center mt-1\"\n onClick={() => setCreatorInfoOpen(true)}\n >\n About channel\n </span>\n </div>\n </div>\n </div>\n\n <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this channel\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div>\n </div>\n </div>\n </div>\n {creatorInfoOpen && (\n <CreatorInfo\n open={creatorInfoOpen}\n onClose={() => setCreatorInfoOpen(false)}\n canClose={true}\n channelDetail={channelData?.response?.data}\n />\n )}\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={IsItemAdded}\n loading={false}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkout}\n isSubscription={true}\n priceUsd={subscriptionPrice}\n />\n )}\n\n <div\n data-testid=\"my-assets-main\"\n className=\"__my_assets_main container mx-auto relative\"\n >\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[250px]\" />\n <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:top-[450px]\" />\n <div\n data-testid=\"parent-tabs\"\n className=\"__myassets_parentTabs_main \n border-gray-50 \n px-[15px] \n py-[15px] \n [&>ul]:pb-[15px]\n max-[768px]:p-0\n z-10 relative\"\n >\n <ul\n className={`flex gap-8 [&>li]:font-semibold [&>li]:cursor-pointer`}\n >\n {ChannelContentTab?.map((tabs, ind) => {\n return (\n <li\n key={tabs.key}\n className={`text-[#fff] text-xl max-[768px]:text-[12px] transition-all pb-2 border-b-2 ${\n parentActivetab.activeTab === tabs.key\n ? \"border-[#FBBC5E]\"\n : \"text-[gray] border-transparent\"\n }`}\n onClick={() => setParentActivetab({ activeTab: tabs.key })}\n >\n {tabs.name}\n </li>\n );\n })}\n </ul>\n {/* <hr className=\"border-[0.1px] border-[#5A5A5A80]\" /> */}\n </div>\n <div className=\"relative z-10\">\n {/* My Assets Container */}\n {parentActivetab.activeTab === \"all\" && (\n <All justAdded={channelSubscribed} />\n )}\n\n {/* My Avatar Container */}\n {parentActivetab.activeTab === \"premium\" && (\n <Premium loginStatus={true} />\n )}\n </div>\n </div>\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n contentType=\"channel\"\n idToReport={cId}\n />\n ) : (\n <></>\n )}\n </>\n );\n};\n\nexport default ChannelContent;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module MostTreadingarousel\n *@developer Sudhanshu\n */\n\n import React from 'react';\n import Slider from \"react-slick\";\n import AssetCardOpen from \"components/card/assets/AssetCardOpen\";\n const SneakyPeak = ({ slider, type , SlideToShow, sneakyPeek }) => {\n \n // const CompanionCardClass = {\n // cardMainclass: \"w-full\",\n // cardMediaClass: \"w-[100%] hover:shadow-[0px_0px_5px_0px_rgba(102,102,102,1)] bg-[#2B2B2B] min-h-[200px] rounded-[10px]\",\n // cardtitleClass: \"py-[12px] text-[14px] font-light pl-[6px] max-[768px]:text-[13px]\",\n // cardButtonclass: \"\",\n // };\n \n const settings = {\n slidesToShow: SlideToShow ? 3 : 2.5,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: false,\n \n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow:SlideToShow? 3 : 2.5,\n },\n },\n {\n breakpoint: 991,\n settings: {\n slidesToShow: SlideToShow ? 3: 2.15,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow:SlideToShow ? 2: 1.5,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: SlideToShow ? 1: 1,\n },\n },\n ],\n };\n \n const setting2 = {\n slidesToShow: 4,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 4,\n },\n },\n {\n breakpoint: 991,\n settings: {\n slidesToShow: 2.5,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n },\n },\n ],\n };\n \n const setting3 = {\n slidesToShow: 6.75,\n slidesToScroll: 1,\n dots: false,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 6.75,\n },\n },\n {\n breakpoint: 991,\n settings: {\n slidesToShow: 5.5,\n },\n },\n {\n breakpoint: 767,\n settings: {\n slidesToShow: 5,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 3,\n },\n },\n ],\n };\n return (\n <Slider\n \n {...(type === \"trending\" || type === \"premium\") && settings}\n {...(type === \"music\") && setting2}\n {...(type === \"channel\") && setting3}\n className={`carousel-section ${type === \"channel\" ? \"channel-section\" : \"\"}`}>\n {slider.map((slide, index) =>\n <div className=\"slick-slide px-2.5\" key={index}>\n {/* <AssetCardOpen title=\"Robo Dog\" cardClass={CompanionCardClass} /> */}\n <div>\n {type !== \"channel\" && <><div className={`aspect-[456/239] relative ${!sneakyPeek ? \"rounded-2xl\" : \"\"} bg-[#2B2B2B] bg-left-top bg-cover bg-no-repeat mb-2.5`} style={{\n backgroundImage:slide.imageURL && `url('${slide.imageURL}')`\n }}>\n {slide?.tags && <span className='tags'>{slide?.tags}</span>}\n {type === \"music\" && <span className='music-icon'><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M21 3V15.5C21 16.4283 20.6313 17.3185 19.9749 17.9749C19.3185 18.6313 18.4283 19 17.5 19C16.5717 19 15.6815 18.6313 15.0251 17.9749C14.3687 17.3185 14 16.4283 14 15.5C14 14.5717 14.3687 13.6815 15.0251 13.0251C15.6815 12.3687 16.5717 12 17.5 12C18.04 12 18.55 12.12 19 12.34V6.47L9 8.6V17.5C9 18.4283 8.63125 19.3185 7.97487 19.9749C7.3185 20.6313 6.42826 21 5.5 21C4.57174 21 3.6815 20.6313 3.02513 19.9749C2.36875 19.3185 2 18.4283 2 17.5C2 16.5717 2.36875 15.6815 3.02513 15.0251C3.6815 14.3687 4.57174 14 5.5 14C6.04 14 6.55 14.12 7 14.34V6L21 3Z\" fill=\"white\" />\n </svg></span>}\n </div>\n {sneakyPeek ? \"\" : <> <p className='mb-2 text-sm'>{slide?.title}</p>\n {slide?.productType === \"Free\" && <button className='tag-item'>Free</button>}\n {slide?.productType === \"Paid\" && slide?.price && <button className='tag-item'>{slide?.price}</button>}\n {slide?.productType === \"Premium\" && <button className='tag-item flex gap-4 items-center'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\">\n <path d=\"M6 22.0356C5.45 22.0356 4.979 21.8396 4.587 21.4476C4.195 21.0556 3.99934 20.585 4 20.0356V10.0356C4 9.48565 4.196 9.01465 4.588 8.62264C4.98 8.23064 5.45067 8.03498 6 8.03565H7V6.03565C7 4.65231 7.48767 3.47298 8.463 2.49765C9.43834 1.52231 10.6173 1.03498 12 1.03565C13.3833 1.03565 14.5627 1.52331 15.538 2.49865C16.5133 3.47398 17.0007 4.65298 17 6.03565V8.03565H18C18.55 8.03565 19.021 8.23165 19.413 8.62365C19.805 9.01565 20.0007 9.48631 20 10.0356V20.0356C20 20.5856 19.804 21.0566 19.412 21.4486C19.02 21.8406 18.5493 22.0363 18 22.0356H6ZM6 20.0356H18V10.0356H6V20.0356ZM12 17.0356C12.55 17.0356 13.021 16.8396 13.413 16.4476C13.805 16.0556 14.0007 15.585 14 15.0356C14 14.4856 13.804 14.0146 13.412 13.6226C13.02 13.2306 12.5493 13.035 12 13.0356C11.45 13.0356 10.979 13.2316 10.587 13.6236C10.195 14.0156 9.99934 14.4863 10 15.0356C10 15.5856 10.196 16.0566 10.588 16.4486C10.98 16.8406 11.4507 17.0363 12 17.0356ZM9 8.03565H15V6.03565C15 5.20231 14.7083 4.49398 14.125 3.91065C13.5417 3.32731 12.8333 3.03565 12 3.03565C11.1667 3.03565 10.4583 3.32731 9.875 3.91065C9.29167 4.49398 9 5.20231 9 6.03565V8.03565Z\" fill=\"white\" />\n </svg>\n Unlock Premium\n </button>}</>}\n </>}\n {type === \"channel\" && <>\n <img src={slide?.url} alt='' className='aspect-square rounded-full' />\n <p className='my-2 leading-relaxed text-center text-sm md:text-base font-bold'>{slide?.title}</p>\n </>}\n </div>\n </div>\n )}\n </Slider>\n )\n }\n \n export default SneakyPeak;","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module BuyContent\n *@developer Sudhanshu\n */\n\nimport * as React from 'react';\nimport Dialog from '@mui/material/Dialog';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { useTheme } from '@mui/material/styles';\nconst BuyContent = ({ status, handleData, handleSub, heading, text, buttonTxt }) => {\n const theme = useTheme();\n const fullScreen = useMediaQuery(theme.breakpoints.down('md'));\n const handleClick = () => {\n handleData(false)\n }\n return (\n <Dialog\n maxWidth={fullScreen}\n open={status}\n onClose={handleClick}\n aria-labelledby=\"responsive-dialog-title\"\n >\n <div className='py-8 px-9 bg-[#2C2C2C] text-white lg:w-[650px]'>\n <div className='text-left'>\n <h2 className='font-heading text-lg md:text-2xl mb-4 lg:mb-8'>{heading}</h2>\n <p className=\"text-sm lg:text-base leading-relaxed\">{text}</p>\n <button type=\"button\" onClick={handleSub} className=\"font-bold rounded-lg w-full btn-gradient leading-none text-black py-3 px-12 mt-6\">{buttonTxt || \"Got it!\"}</button>\n </div>\n </div>\n </Dialog>\n )\n}\n\nexport default BuyContent;","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Popup\n *@developer Sudhanshu\n */\n\nimport * as React from 'react';\nimport Preview from './Preview';\nimport UnlockPremium from './unlockPremium';\nimport BuyContent from './BuyContent';\nconst Popup = ({ status, handleData, handleSub, heading, text, button }) => {\n const handleClick = () => {\n handleData(false)\n }\n return <BuyContent status={status} text={text} heading={heading} buttonTxt={button} handleData={handleClick} handleSub={handleSub}/>\n}\n\nexport default Popup;","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useState } from \"react\";\nimport {\n Link,\n NavLink,\n useNavigate,\n useParams,\n useSearchParams,\n useLocation,\n} from \"react-router-dom\";\nimport PremAptImg from \"assets/images/premium_apt.png\";\nimport { Fade, Zoom } from \"react-reveal\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport BuyCards from \"components/buy-cards\";\nimport CartIcon from \"assets/images/bxs_cart.png\";\nimport ChannelImage from \"assets/images/channel.png\";\nimport videoContent from \"assets/images/videoContent.png\";\nimport SneakyPeak from \"components/carousel/SneakyPeak\";\nimport LargeCarousel from \"components/carousel/MostTreading\";\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Popup from \"components/popup\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport {\n useGetSingle180VideoQuery,\n useGetSingle360VideoQuery,\n useGetSingleVolumetricVideoQuery,\n useGetSingle2DVideoQuery,\n useGetSingleChannelQuery,\n useGetRecommendedContentQuery,\n} from \"store/slicer/Entertainment\";\nimport { useLazyGetUserProfileByTokenQuery } from \"store/slicer/userProfile\";\nimport {\n usePostCheckUserAssetsMutation,\n usePostAddFreeAssetForUserMutation,\n useCheckUserSubscriptionsMutation,\n} from \"store/slicer/userAssets\";\nimport { usePostCreateUserInteractionMutation } from \"store/slicer/Analytics\";\nimport { useSearchUserFriendMutation } from \"store/slicer/friends\";\nimport { useEffect } from \"react\";\nimport dateFormat, { masks } from \"dateformat\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport Flag from \"components/report/Flag\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport Loader from \"components/Loader/Loader\";\nimport { GlobalStore } from \"store/GlobalStore\";\nimport { useUpdateCartItembyTokenMutation } from \"store/slicer/Cart\";\nimport { useLazyGetCartItemByTokenQuery } from \"store/slicer/Cart\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\n about an apartment, including its image, price, description, themes, gaming and streaming options,\n and suggested apartments. It also includes a dialog box that allows the user to preview the\n apartment in a 3D model. The component uses various React hooks and components, such as useState,\n useNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\n desired UI and functionality. */\nconst Index = () => {\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n const navigate = useNavigate();\n const { type, contentId, channelId } = useParams();\n let [searchParams, setSearchParams] = useSearchParams();\n const [contentType, setContentType] = useState(\"MyAsset\");\n const [justAddedToAssets, setJustAddedToAssets] = useState(false);\n const [buyCardTitle, setBuyCardTitle] = useState(\"\");\n const [comingSoonText, setComingSoonText] = useState(\"\");\n const [cartItem, setCartItem] = useState([]);\n const [channelSubscribed, setChannelSubscribed] = useState(false);\n\n const [IsItemAdded, setIsItemAdded] = useState(false);\n\n const [cartContentIds, setCartContentIds] = useState([]);\n\n const [isItemAddCheck, setIsItemAddCheck] = useState(false);\n const [fetchedContentId, setFetchedContentId] = useState(null);\n\n const location = useLocation();\n const accessToken = localStorage.getItem(\"accessToken\");\n\n\n // user not signed in\n // if (!accessToken) {\n // navigate(`/signin?ref=${location.pathname}`, {\n // replace: true,\n // });\n // }\n\n // // user signed in but did not verify his email\n // if (accessToken && !authState?.userInfo?.isVerified) {\n // navigate(`/otp-verification`, {\n // replace: true,\n // });\n // }\n\n let dataToFetch = useGetSingleVolumetricVideoQuery;\n let itemCategory = \"\";\n\n // here we are deciding which type of content to page for current page\n switch (type) {\n case \"volumetric-video\":\n dataToFetch = useGetSingleVolumetricVideoQuery;\n itemCategory = \"Volumetric Videos\";\n break;\n case \"2D-video\":\n dataToFetch = useGetSingle2DVideoQuery;\n itemCategory = \"2D Videos\";\n break;\n case \"2D-video\":\n dataToFetch = useGetSingle2DVideoQuery;\n itemCategory = \"2D Videos\";\n break;\n case \"180-video\":\n dataToFetch = useGetSingle180VideoQuery;\n itemCategory = \"180 Videos\";\n break;\n case \"360-video\":\n dataToFetch = useGetSingle360VideoQuery;\n itemCategory = \"360 Videos\";\n break;\n default:\n dataToFetch = useGetSingleVolumetricVideoQuery;\n }\n\n // fetching content data\n const {\n data = {\n response: {\n data: {},\n },\n },\n isFetching,\n isSuccess,\n isError,\n error,\n } = dataToFetch(contentId);\n\n // calling create user interaction api\n const [createUserInteractionTrigger, createUserInteractionInfo] =\n usePostCreateUserInteractionMutation();\n // calling create user interaction api\n useEffect(() => {\n let userInteractionPayload = {};\n\n switch (type) {\n case \"volumetric-video\":\n userInteractionPayload = {\n keyType: \"volumetricvideo\",\n contentId: id,\n contentType: \"video\",\n channelId: channelId,\n };\n\n break;\n case \"2D-video\":\n userInteractionPayload = {\n keyType: \"video2d\",\n contentId: id,\n contentType: \"video\",\n channelId: channelId,\n };\n break;\n case \"2D-video\":\n userInteractionPayload = {\n keyType: \"video2d\",\n contentId: id,\n contentType: \"video\",\n channelId: channelId,\n };\n break;\n case \"180-video\":\n userInteractionPayload = {\n keyType: \"video180\",\n contentId: id,\n contentType: \"video\",\n channelId: channelId,\n };\n break;\n case \"360-video\":\n userInteractionPayload = {\n keyType: \"video360\",\n contentId: id,\n contentType: \"video\",\n channelId: channelId,\n };\n break;\n default:\n userInteractionPayload = {\n keyType: \"video180\",\n contentId: id,\n contentType: \"video\",\n channelId: channelId,\n };\n }\n\n if (!isFetching) {\n createUserInteractionTrigger(userInteractionPayload);\n }\n }, [isFetching]);\n\n // fetching channel data\n const {\n data: channelData = {\n response: {\n data: {},\n },\n },\n isError: isErrorChannel,\n isFetching: isFetchingChannel,\n } = useGetSingleChannelQuery(channelId);\n\n // fetching user data\n const [\n GetUserProfileByToken,\n {\n data: userData = {\n response: {\n data: {},\n },\n },\n isFetching: isFetchingUser,\n isSuccess: isSuccessUser,\n isError: isrrorUser,\n error: errorUser,\n },\n ] = useLazyGetUserProfileByTokenQuery();\n\n // user details\n let { _id: userId = \"\" } = userData?.response?.data || {};\n\n // console.log(\"user id\",userId)\n\n // fetching suggested content here\n const [loadReccContent, setLoadReccContent] = useState(false);\n\n // content details\n let {\n contentName = \"\",\n description: contentDescription = \"\",\n sneakPeakImages = [],\n contentHighlights = [],\n contentPreference = \"\",\n tag: tags = [],\n category: contentCategory = \"\",\n price = 0,\n mediaFile,\n thumbnail: contentThumbnail,\n _id: id = \"65ae68134ef93602447cb58f\", // sample objectId to prevent 500 error while fetching\n currency: currencyType,\n } = data?.response?.data || {};\n\n //channel details\n const {\n _id: channelProductId,\n channelThumbnail,\n channelName,\n channelHandle,\n subscriptionPrice,\n } = channelData?.response?.data || { _id: \"\" };\n\n sneakPeakImages = sneakPeakImages?.map((item) => ({\n imageURL: item.image,\n }));\n\n // userId is needed to fetch recommended content\n useEffect(() => {\n if (userId && id) {\n setFetchedContentId(id);\n setLoadReccContent(true);\n }\n }, [isFetchingUser, isSuccessUser, isFetching]);\n // console.log(fetchedContentId, id);\n\n // data will not be fetched until skip becomes false\n let {\n data: recommendedContentData = [],\n isFetching: isFetchingRecommendedContent,\n isSuccess: isSuccessRecommendedContent,\n isError: isrrorRecommendedContent,\n error: errorRecommendedContent,\n } = useGetRecommendedContentQuery(\n {\n userId,\n contentId: id,\n category: type == \"2D-video\" ? \"2D-video\" : type,\n },\n {\n skip: !loadReccContent,\n }\n );\n\n if (\n isSuccessRecommendedContent &&\n recommendedContentData?.result?.statusEnum == 1\n ) {\n recommendedContentData = recommendedContentData.result.data;\n\n recommendedContentData = recommendedContentData?.map((item, ind) => {\n const title = item.contentName;\n let productType = \"Free\";\n if (item.contentPreference == \"paid\") {\n productType = \"Paid\";\n }\n if (item.contentPreference == \"subscription\") {\n productType = \"Premium\";\n }\n\n return {\n ...item,\n title,\n channel:\n item.channel?.channelHandle || item.channel?._id || item?.channel,\n productType,\n price: \"$\" + item.price,\n id: item._id,\n };\n });\n } else {\n recommendedContentData = [];\n }\n\n // setting buy card initial title\n\n useEffect(() => {\n switch (contentPreference) {\n case \"free\":\n setBuyCardTitle(\n \"This content is available for free. Add to your assets and enjoy\"\n );\n setContentType(\"Free\");\n break;\n case \"paid\":\n setBuyCardTitle(\"Buy this Content:\");\n setContentType(\"BuyNow\");\n setComingSoonText(\n \"Entertainment content purchases will soon be available. Stay tuned!\"\n );\n break;\n // change this to 'subscription' when api gets updated\n case \"premium\":\n setBuyCardTitle(\n `This content is locked. To access this premium content, Buy <b>${channelName}</b> Premium Subscription.`\n );\n setContentType(\"Premium\");\n setComingSoonText(\n \"Subscriptions will soon be available, allowing you to unlock premium content and exclusive features. Stay tuned!\"\n );\n break;\n case \"subscription\":\n setBuyCardTitle(\n `This content is locked. To access this premium content, Buy <b>${channelName}</b> Premium Subscription.`\n );\n setContentType(\"Premium\");\n setComingSoonText(\n \"Subscriptions will soon be available, allowing you to unlock premium content and exclusive features. Stay tuned!\"\n );\n break;\n default:\n setBuyCardTitle(\n \"This content is available for free. Add to your assets and enjoy\"\n );\n setContentType(\"Free\");\n }\n }, [channelData, data]);\n\n // console.log(searchParams.get(\"type\"));\n // const entertainmentData = [\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: ` Unlock Premium`,\n // tagType: \"Premium\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"Free\",\n // tagType: \"Free\",\n // },\n // {\n // title: \"StellarVerse Spectacle: Cosmic Symphony\",\n // subtitleButton: \"US$ 9.99\",\n // tagType: \"Paid\",\n // }\n // ];\n const mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"2\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"5\",\n },\n ];\n\n const SneakyPeek = [\n {\n title: \"\",\n productType: \"\",\n price: \"\",\n id: \"1\",\n },\n {\n title: \"\",\n productType: \"\",\n price: \"\",\n id: \"2\",\n },\n {\n title: \"\",\n productType: \"\",\n price: \"\",\n id: \"3\",\n },\n {\n title: \"\",\n productType: \"\",\n price: \"\",\n id: \"4\",\n },\n {\n title: \"\",\n productType: \"\",\n price: \"\",\n id: \"5\",\n },\n ];\n\n const [open, setOpen] = useState(false);\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const handleClick = async (e, assetType, id) => {\n if (e === \"MyAsset\") {\n // add adding asset to user here\n if (userId) {\n // check upper or lower case for 2d video\n\n const res = await addAssetToUser({\n content_id: id,\n content_type: type.toLowerCase().includes(\"2d\") ? \"2D-video\" : type,\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n setJustAddedToAssets(true);\n setContentType(\"MyAsset\");\n }\n }\n }\n if (e === \"Premium\") {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n }\n };\n let options = {\n ...(searchParams.get(\"type\") === \"Premium\" && { price: \"$24.00\" }),\n ...(searchParams.get(\"type\") === \"BuyNow\" && { price: \"$99.00\" }),\n ...(searchParams.get(\"type\") === \"Premium\" && { plan: \"month\" }),\n };\n\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n const [checkSubscription, checkSubscriptionInfo] =\n useCheckUserSubscriptionsMutation();\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: id,\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n if (isOwned) {\n setContentType(\"MyAsset\");\n }\n }\n if (\n (contentPreference === \"subscription\" ||\n contentPreference === \"premium\") &&\n channelProductId\n ) {\n let subscriptionInfo = await checkSubscription({\n channelId: channelProductId,\n });\n if (subscriptionInfo?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = subscriptionInfo?.data?.response?.data;\n setChannelSubscribed(isOwned);\n }\n }\n } catch (e) {\n console.error(\"Error while checking user asset:\", e);\n }\n }\n const [addAssetToUser, addAssetToUserInfo] =\n usePostAddFreeAssetForUserMutation();\n useEffect(() => {\n if (\n accessToken &&\n isSuccessUser &&\n id &&\n id !== \"65ae68134ef93602447cb58f\"\n ) {\n // Make sure id has a value before calling the function\n checkIfOwnedAsset();\n }\n }, [isSuccessUser, id]); // Add id to the dependency array\n\n // useEffect(() => {\n // // refetch();\n // if (!getCartItemLoader) {\n // setCartItem(GetCartItemQuery);\n // }\n // }, [getCartItemLoader]);\n\n // Filter cart array or current content id for checking item added to the cart or not\n\n // const [currentContentId, setCurrentContentId] = useState(data?.response?.data?._id)\n\n const addToCart = async () => {\n AddToCartQuery({\n category: data?.response?.data?.category,\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency.toLowerCase() == \"usd\" ? \"usd\" : \"fstr\",\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n setIsItemAdded(true);\n setContentType(\"AddToCart\");\n setIsItemAddCheck(true);\n // console.log(res.data)\n }\n if (res?.data?.response?.statusEnum === 0) {\n console.log(res?.data?.response?.message);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const cartList = GetCartItemQuery?.response?.data?.map(\n (item) => item?.itemId\n );\n // console.log(cartList, data?.response?.data?._id);\n\n useEffect(() => {\n if (cartList?.includes(data?.response?.data?._id)) {\n setIsItemAddCheck(true);\n setContentType(\"AddToCart\");\n }\n }, [data]);\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n\n const checkout = (walletId) => {\n if (popupCurrency == \"usd\") {\n if (contentType == \"Premium\") {\n navigate(\n `/checkout?productType=channel&amount=${subscriptionPrice}¤cy=usd&productId=${channelProductId}&productName=${channelName}`\n );\n } else {\n navigate(\n `/checkout?productType=${type}&amount=${price}¤cy=usd&productId=${data?.response?.data?._id}&productName=${contentName}`\n );\n }\n } else if (popupCurrency == \"fstr\") {\n if (contentType == \"Premium\") {\n navigate(\n `/initiatepayment?productType=channel&amount=${convertActualUsdToFstrPrice(\n subscriptionPrice\n )}&cproductId=${channelProductId}&productName=${channelName}&walletId=${walletId}`\n );\n } else {\n navigate(\n `/initiatepayment?productType=${type}&amount=${convertActualUsdToFstrPrice(\n price\n )}¤cy=usd&productId=${\n data?.response?.data?._id\n }&productName=${contentName}&walletId=${walletId}`\n );\n }\n }\n };\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // for paid content\n if (contentPreference == \"paid\") {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addToCart();\n }\n // purchase iap\n else {\n checkout();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addToCart();\n }\n // purchase iap\n else {\n checkout(walletId);\n }\n }\n }\n\n // for subscription\n else {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n onPopupClose();\n navigate(\n `/checkout?isSubscription=true&channelId=${channelData?.response?.data?._id}`\n );\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n onPopupClose();\n navigate(\n `/initiatepayment?isSubscription=true&channelId=${channelData?.response?.data?._id}&walletId=${walletId}`\n );\n }\n }\n };\n\n useEffect(() => {\n accessToken && GetCartItemByToken() && GetUserProfileByToken();\n }, []);\n\n return (\n <>\n <div className=\"px-4 mt-[13px]\">\n <div className=\"__back__section flex justify-between\">\n <button\n onClick={() => navigate(\"/marketplace/entertainment\")}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this content\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div>\n </div>\n </div>\n {isFetching && !isError && (\n <div className=\"min-h-[568px] grid place-items-center\">\n <Loader />\n </div>\n )}\n {(isError || data?.response?.errorCode != 0) && !isFetching && (\n <div className=\"h-[360px] w-full grid place-content-center text-white/70\">\n Something went wrong\n </div>\n )}\n {isSuccess &&\n !isFetching &&\n !isError &&\n data?.response?.errorCode == 0 && (\n <div className=\"relative px-4 mb-[140px] max-[768px]:mb-[50px] flex flex-col lg:flex-row py-[16px] max-[1280px]:py-[25px] gap-4\">\n <div className=\"w-[100%] lg:w-[59%] max-[1024px]:w-auto max-[1024px]:p-0 max-[1280px]:p-0 \">\n <div className=\" mb-6 md:mb-[19px] z-10 relative rounded flex justify-center items-center\">\n <Zoom>\n <img\n src={contentThumbnail}\n alt=\"Network Problem\"\n className=\"h-auto w-full object-cover rounded-[20px]\"\n />\n </Zoom>\n <Zoom delay={500}></Zoom>\n </div>\n <div className=\"relative\">\n <div className=\"volumetric-card-left-shadow \"></div>\n <div className=\"lg:flex jusitfy-between mb-[21px] relative z-10 gap-10 md:gap-8 lg:gap-14 pt-[36px] max-[768px]:pt-[16px]\">\n <div className=\"__music__detail__description__main\">\n <div className=\"__header__main\">\n <span className=\"font-body font-medium text-[#FFFFFF66] text-[14px]\">\n Description:\n </span>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n {contentDescription}\n </p>\n </div>\n\n <div className=\"__header__main pt-[30px]\">\n <span className=\"font-body font-medium text-[#FFFFFF66] text-[14px]\">\n Highlight:\n </span>\n </div>\n {contentHighlights?.map((item, index) => {\n return (\n <div\n className=\"__description__main pr-[40px] max-[768px]:p-0\"\n key={item._id}\n >\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n {item.highlightHeading}\n </h4>\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n {item.highlightDescription}\n </p>\n </div>\n );\n })}\n {/* <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n witness celestial wonders\n </h4>\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n Celestial melodies by artist will take you on an\n interstellar journey. Experience her enchanting performance\n that transcends galaxies. Get ready to be captivated by her\n celestial talent.\n </p>\n </div>\n\n <div className=\"__header__main pt-[30px]\">\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n Galactic Soundscapes\n </h4>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n Journey through the cosmos with electrifying performances by\n interstellar musicians. Witness the fusion of music and\n technology in an otherworldly setting, where soundwaves\n transcend the boundaries of space.\n </p>\n </div>\n\n <div className=\"__header__main pt-[30px]\">\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n Dynamic Perspectives\n </h4>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n Experience a new level of storytelling with dynamic\n perspectives. As the viewer, you have control over where to\n look, allowing you to focus on the details that interest you\n the most.\n </p>\n </div> */}\n </div>\n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n </div>\n <div className=\" w-[100%] lg:w-[41%] max-[1024px]:w-auto max-[1024px]:h-auto max-[1024px]:mt-[18px]\">\n <div className=\"__entertainment_assets_heading flex flex-col mb-[16px] lg:mb-[20px] sm:flex justify-between pt-4 px-[30px] max-[768px]:p-0\">\n <div className=\"__heading leading-[40px]\">\n <h4 className=\"text-[24px] font-heading text-[#ffffff]\">\n {contentName}\n </h4>\n </div>\n <div className=\"__creator__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Creator:\n </h6>\n {isFetchingChannel && (\n <div className=\"min-h-[240px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {(isErrorChannel ||\n channelData?.response?.errorCode != 0) && (\n <h2 className=\"font-semibold mt-4 text-white/70\">\n Channel not found\n </h2>\n )}\n {!isErrorChannel &&\n !isFetchingChannel &&\n channelData?.response?.errorCode == 0 && (\n <Link\n to={`/marketplace/entertainment/channels/${channelId}`}\n >\n <div className=\"__creator__profiler__main pt-[14px] flex gap-[6px]\">\n <img\n src={\n channelThumbnail ||\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/default.jpeg\"\n }\n className=\"w-[52px] h-[52px] rounded-[50%]\"\n alt=\"__creator_profile__img\"\n />\n <div>\n <h5 className=\"text-[16px] font-body font-semibold\">\n {channelName}\n </h5>\n <span className=\"text-[14px] font-body font-medium text-[#FFFFFF99]\">\n @{channelHandle}\n </span>\n </div>\n </div>\n </Link>\n )}\n </div>\n <div className=\"__category__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff]\">\n {itemCategory}\n </span>\n </div>\n <div className=\"__tags__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Tags:\n </h6>\n <span className=\"text-[16px] font-body font-medium\">\n {tags.join(\", \")}\n </span>\n </div>\n\n <div className=\"__buy__main pt-[28px] pr-[40px] max-[768px]:pr-0\">\n {/* <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Buy this Content:\n </h6> */}\n\n <div className=\"flex-1 w-full lg:mt-0 min-h-180\">\n {(userAssetInfo.isLoading ||\n addAssetToUserInfo.isLoading ||\n checkSubscriptionInfo.isLoading ||\n !channelProductId) && (\n <div className=\"min-h-[160px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!userAssetInfo.isLoading &&\n !addAssetToUserInfo.isLoading &&\n !checkSubscriptionInfo.isLoading &&\n channelProductId && (\n <BuyCards\n justAdded={justAddedToAssets || channelSubscribed}\n isSubscription={contentPreference != \"paid\"} // Aded afterwords\n type={contentType}\n title={contentType != \"MyAsset\" ? buyCardTitle : null}\n card=\"content\"\n price={\n contentType != \"MyAsset\"\n ? \"$\" +\n (contentType == \"Premium\"\n ? subscriptionPrice\n : price)\n : null\n }\n handleData={(e) => {\n handleClick(e, type, data?.response?.data?._id);\n }}\n onBuyHandle={() => {\n setIsPopupCart(false);\n setBuyPopupOpen(true);\n }}\n // onBuyHandle={() => setOpen(true)}\n />\n )}\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={IsItemAdded}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkout}\n isSubscription={contentPreference != \"paid\"}\n priceUsd={\n contentType == \"Premium\" ? subscriptionPrice : price\n }\n />\n )}\n {contentType == \"Premium\" && (\n <>\n {\" \"}\n <UnlockPremium\n status={open}\n price={price}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${price}/Month ( $${\n price * 12\n }/year )</b>.`}\n heading=\"Unlock the Premium\"\n handleData={() => setOpen(false)}\n handleSub={() => {\n setContentType(\"MyAsset\");\n setBuyCardTitle(\n \"You unlocked this content by subscribing to <b style='color:white'>Fourth Star</b> channel\"\n );\n }}\n />\n </>\n )}\n\n {/* use handle sub when actually buying the content */}\n {contentType == \"BuyNow\" && (\n <Popup\n status={open}\n text=\"Buy this content and get lifetime access to it.\"\n heading=\"Buy Content\"\n button={`Buy now @$${price}`}\n handleData={() => setOpen(false)}\n handleSub={() => {\n navigate(\n `/checkout?productType=${type}&amount=${price}¤cy=${data?.response?.data?.currency}&productId=${data?.response?.data?._id}&productName=${contentName}`\n );\n }}\n />\n )}\n\n <ComingSoon\n status={showComingSoonPopup}\n text={comingSoonText}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n </div>\n </div>\n {/* <div className=\"grid grid-cols-1 gap-4 \">Content</div> */}\n </div>\n </div>\n )}\n\n <div className=\"__sneaky__peek__container px-4 \">\n <div className=\"__heading\">\n <SliderHeader title=\"Sneaky Peek\" />\n </div>\n <div className=\"__content__slider pt-[24px]\">\n <SneakyPeak\n slider={sneakPeakImages}\n SlideToShow={3}\n type=\"trending\"\n ></SneakyPeak>\n </div>\n </div>\n\n {/* Divider */}\n\n <hr className=\"border-[0.1px] border-[#5A5A5A80] my-[100px]\" />\n\n <div className=\"__suggested__video__container mb-[90px] px-4\">\n <div className=\"__heading\">\n <SliderHeader title={accessToken && `Suggested ${itemCategory}`} />\n </div>\n <div className=\"__content__slider pt-[24px]\">\n {/* <SneakyPeak\n slider={mostTrending}\n SlideToShow={3}\n type=\"trending\"\n ></SneakyPeak> */}\n {recommendedContentData && !isFetchingRecommendedContent && (\n <LargeCarousel\n slider={recommendedContentData}\n isSuggestedContent={true}\n type=\"trending\"\n ></LargeCarousel>\n )}\n {isFetchingRecommendedContent && (\n <div className=\"w-full min-h[320px] grid place-content-center\">\n <Loader />\n </div>\n )}\n </div>\n </div>\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n contentType={type?.toLowerCase()}\n idToReport={id}\n />\n ) : (\n <></>\n )}\n\n {/* {IsItemAdded && (\n <Alert\n open={true}\n onClose={() => {\n setIsItemAdded(!IsItemAdded);\n }}\n heading=\"Item Added to the Cart\"\n message=\"\"\n isSuccess={true}\n />\n )} */}\n </>\n );\n};\n\nexport default Index;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Apartment-Detail-Page\n *@developer Sudhanshu\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport {\n NavLink,\n useNavigate,\n useLocation,\n useSearchParams,\n} from \"react-router-dom\";\nimport { Zoom } from \"react-reveal\";\n\nimport UnlockPremium from \"components/popup/unlockPremium\";\nimport Popup from \"components/popup\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport BuyCards from \"components/buy-cards\";\n\nimport LargeCarousel from \"components/carousel/MostTreading\";\n\nimport { useUpdateCartItembyTokenMutation } from \"store/slicer/Cart\";\nimport { useLazyGetCartItemByTokenQuery } from \"store/slicer/Cart\";\nimport Alert from \"components/popup/Alert/Alert\";\n\nimport GameRoom1 from \"assets/images/game-room-1.png\";\nimport GameRoom2 from \"assets/images/game-room-2.png\";\nimport PremiumApt from \"assets/images/Premium-apartment.png\";\nimport PremiumApt2 from \"assets/images/Premium-final-1.png\";\nimport StandredAppartment from \"assets/images/StandredAppartment.png\";\nimport Thumb1 from \"assets/images/StandredAppartment-thum.png\";\nimport Thumb2 from \"assets/images/StandredAppartment-thum2.png\";\nimport Thumb3 from \"assets/images/StandredAppartment-thum3.png\";\nimport Thumb4 from \"assets/images/StandredAppartment-thum4.png\";\nimport ChannelImage from \"assets/images/nureal.png\";\nimport musicContent from \"assets/images/musicContent.png\";\nimport MusicCard from \"components/card/marketplace/entertainment/MusicCard\";\nimport CartIcon from \"assets/images/bxs_cart.png\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport AssetCardOpen from \"components/card/assets/AssetCardOpen\";\nimport AssetMusicIcon from \"assets/images/myassets/ph_play-fill.png\";\n\nimport dateFormat, { masks } from \"dateformat\";\n\nimport {\n useGetSingleMusicVideoQuery,\n useGetSingleChannelQuery,\n useGetRecommendedContentQuery,\n} from \"store/slicer/Entertainment\";\nimport { useLazyGetUserProfileByTokenQuery } from \"store/slicer/userProfile\";\nimport {\n usePostCheckUserAssetsMutation,\n usePostAddFreeAssetForUserMutation,\n} from \"store/slicer/userAssets\";\nimport { usePostCreateUserInteractionMutation } from \"store/slicer/Analytics\";\nimport { useParams, Link } from \"react-router-dom\";\nimport Loader from \"components/Loader/Loader\";\nimport Flag from \"components/report/Flag\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport { GlobalStore } from \"store/GlobalStore\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\nimport { useCheckUserSubscriptionsMutation } from \"store/slicer/userAssets\";\n/* The above code is a React component called \"Index\". It renders a webpage that displays information\n about an apartment, including its image, price, description, themes, gaming and streaming options,\n and suggested apartments. It also includes a dialog box that allows the user to preview the\n apartment in a 3D model. The component uses various React hooks and components, such as useState,\n useNavigate, Grid, Typography, Button, Dialog, AppBar, Toolbar, Canvas, and Stage, to create the\n desired UI and functionality. */\n\nconst MusicContent = () => {\n const location = useLocation();\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n const authState = GlobalStore.getState()?.auth;\n\n // // user not signed in\n // if (!accessToken) {\n // navigate(`/signin?ref=${location.pathname}`, {\n // replace: true,\n // });\n // }\n\n // // user signed in but did not verify his email\n // if (accessToken && !authState?.userInfo?.isVerified) {\n // navigate(`/otp-verification`, {\n // replace: true,\n // });\n // }\n\n const [\n GetCartItemByToken,\n {\n data: GetCartItemQuery,\n isLoading: getCartItemLoader,\n refetch,\n isSuccess: isFetchCartSuccess,\n },\n ] = useLazyGetCartItemByTokenQuery();\n const [AddToCartQuery, { isLoading: addtoCartLoader }] =\n useUpdateCartItembyTokenMutation();\n const navigate = useNavigate();\n const [open, setOpen] = useState(false);\n const { type = \"music\", contentId, channelId } = useParams();\n const [contentType, setContentType] = useState(\"Free\");\n const [justAddedToAssets, setJustAddedToAssets] = useState(false);\n const [buyCardTitle, setBuyCardTitle] = useState(\"\");\n const [comingSoonText, setComingSoonText] = useState(\"\");\n let [searchParams, setSearchParams] = useSearchParams();\n\n const [IsItemAdded, setIsItemAdded] = useState(false);\n const [isItemAddCheck, setIsItemAddCheck] = useState(false);\n const [channelSubscribed, setChannelSubscribed] = useState(false);\n\n // calling api and fetching data\n const {\n data = {\n response: {\n data: {},\n },\n },\n isFetching,\n isSuccess,\n isError,\n error,\n } = useGetSingleMusicVideoQuery(contentId);\n\n // calling create user interaction api\n const [createUserInteractionTrigger, createUserInteractionInfo] =\n usePostCreateUserInteractionMutation();\n // calling create user interaction api\n\n useEffect(() => {\n let userInteractionPayload = {\n keyType: \"music\",\n contentId: id,\n contentType: \"music\",\n channelId: channelId,\n };\n\n if (!isFetching) {\n createUserInteractionTrigger(userInteractionPayload);\n }\n }, [isFetching]);\n\n // fetching user data\n const [\n GetUserProfileByToken,\n {\n data: userData = {\n response: {\n data: {},\n },\n },\n isFetching: isFetchingUser,\n isSuccess: isSuccessUser,\n isError: isrrorUser,\n error: errorUser,\n },\n ] = useLazyGetUserProfileByTokenQuery();\n\n // user details\n let { _id: userId = \"\" } = userData?.response?.data || {};\n\n // content details\n let {\n contentName = \"\",\n description: contentDescription = \"\",\n sneakPeakImages = [],\n contentHighlights = [],\n contentPreference = \"\",\n tag: tags = [],\n category: contentCategory = \"\",\n price = 0,\n mediaFile,\n thumbnail: contentThumbnail,\n _id: id = \"65ae68134ef93602447cb58f\", // sample objectId to prevent 500 error while fetching\n currency: currencyType,\n } = data?.response?.data || {};\n\n // fetching channel data\n const {\n data: channelData = {\n response: {\n data: {},\n },\n },\n isError: isErrorChannel,\n isFetching: isFetchingChannel,\n } = useGetSingleChannelQuery(channelId);\n\n // fetching suggested content here\n const [loadReccContent, setLoadReccContent] = useState(false);\n\n // userId is needed to fetch recommended content\n useEffect(() => {\n if (userId) {\n setLoadReccContent(true);\n }\n }, [userId]);\n\n // data will not be fetched until skip becomes false\n let {\n data: recommendedContentData = [],\n isFetching: isFetchingRecommendedContent,\n isSuccess: isSuccessRecommendedContent,\n isError: isrrorRecommendedContent,\n error: errorRecommendedContent,\n } = useGetRecommendedContentQuery(\n {\n userId,\n contentId: id,\n category: \"music\",\n },\n {\n skip: !loadReccContent,\n }\n );\n\n if (\n isSuccessRecommendedContent &&\n recommendedContentData?.result?.statusEnum == 1\n ) {\n recommendedContentData = recommendedContentData.result.data;\n\n recommendedContentData = recommendedContentData?.map((item, ind) => {\n const title = item.contentName;\n let productType = \"Free\";\n if (item.contentPreference == \"paid\") {\n productType = \"Paid\";\n }\n if (item.contentPreference == \"subscription\") {\n productType = \"Premium\";\n }\n\n return {\n ...item,\n title,\n channel:\n item.channel?.channelHandle || item.channel?._id || item?.channel,\n productType,\n price: \"$\" + item.price,\n id: item._id,\n };\n });\n } else {\n recommendedContentData = [];\n }\n\n useEffect(() => {\n switch (contentPreference) {\n case \"free\":\n setBuyCardTitle(\n \"This content is available for free. Add to your assets and enjoy\"\n );\n setContentType(\"Free\");\n break;\n case \"paid\":\n setBuyCardTitle(\"Buy this Content:\");\n setContentType(\"BuyNow\");\n setComingSoonText(\n \"Entertainment content purchases will soon be available. Stay tuned!\"\n );\n break;\n // premium and subscription are same\n case \"premium\":\n setBuyCardTitle(\n `This content is locked. To access this premium content, Buy <b>${channelName}</b> Premium Subscription.`\n );\n setContentType(\"Premium\");\n setComingSoonText(\n \"Subscriptions will soon be available, allowing you to unlock premium content and exclusive features. Stay tuned!\"\n );\n break;\n case \"subscription\":\n setBuyCardTitle(\n `This content is locked. To access this premium content, Buy <b>${channelName}</b> Premium Subscription.`\n );\n setContentType(\"Premium\");\n setComingSoonText(\n \"Subscriptions will soon be available, allowing you to unlock premium content and exclusive features. Stay tuned!\"\n );\n break;\n default:\n setBuyCardTitle(\n \"This content is available for free. Add to your assets and enjoy\"\n );\n setContentType(\"Free\");\n }\n }, [channelData, data]);\n\n //channel details\n const {\n _id: channelProductId,\n channelThumbnail,\n channelName,\n channelHandle,\n subscriptionPrice,\n } = channelData?.response?.data || { _id: \"\" };\n\n sneakPeakImages = sneakPeakImages?.map((item) => ({\n imageURL: item.image,\n }));\n\n const entertainmentData = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: ` Unlock Premium`,\n tagType: \"Premium\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: \"Free\",\n tagType: \"Free\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: \"US$ 9.99\",\n tagType: \"Paid\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: ` Unlock Premium`,\n tagType: \"Premium\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: ` Unlock Premium`,\n tagType: \"Premium\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: ` Unlock Premium`,\n tagType: \"Premium\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: \"Free\",\n tagType: \"Free\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: \"US$ 9.99\",\n tagType: \"Paid\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n subtitleButton: \"Free\",\n tagType: \"Free\",\n },\n ];\n\n const [cardAdded, setcardAdded] = useState(false);\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const handleClick = async (e, assetType, id) => {\n // setcardAdded(true);\n if (e === \"MyAsset\") {\n // add adding asset to user here\n if (userId) {\n // check upper or lower case for 2d video\n const res = await addAssetToUser({\n content_id: id,\n content_type: \"music\",\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n setJustAddedToAssets(true);\n setContentType(\"MyAsset\");\n }\n }\n }\n if (e === \"Premium\") {\n setBuyPopupOpen(true);\n setIsPopupCart(false);\n }\n if (e === \"BuyNow\") {\n setBuyPopupOpen(true);\n setIsPopupCart(true);\n }\n };\n\n const [checkUserAsset, userAssetInfo] = usePostCheckUserAssetsMutation();\n const [addAssetToUser, addAssetToUserInfo] =\n usePostAddFreeAssetForUserMutation();\n const [checkSubscription, checkSubscriptionInfo] =\n useCheckUserSubscriptionsMutation();\n\n async function checkIfOwnedAsset() {\n try {\n const res = await checkUserAsset({\n content_id: data?.response?.data?._id,\n });\n\n if (res?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = res?.data?.response?.data;\n\n if (isOwned) {\n setContentType(\"MyAsset\");\n }\n }\n if (\n (contentPreference === \"subscription\" ||\n contentPreference === \"premium\") &&\n channelProductId\n ) {\n const subscriptionInfo = await checkSubscription({\n channelId: channelProductId,\n });\n\n if (subscriptionInfo?.data?.response?.statusEnum == 1) {\n // check here if user owns the asset\n const isOwned = subscriptionInfo?.data?.response?.data;\n setChannelSubscribed(isOwned);\n }\n }\n } catch (e) {}\n }\n\n useEffect(() => {\n if (\n accessToken &&\n isSuccessUser &&\n id &&\n id !== \"65ae68134ef93602447cb58f\"\n ) {\n // Make sure id has a value before calling the function\n checkIfOwnedAsset();\n }\n }, [isSuccessUser, id]); // Add id to the dependency array\n\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const addToCart = async () => {\n AddToCartQuery({\n category: \"music\",\n itemId: data?.response?.data?._id,\n currencyType: popupCurrency.toLowerCase() == \"usd\" ? \"usd\" : \"fstr\",\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n setIsItemAdded(true);\n setContentType(\"AddToCart\");\n setIsItemAddCheck(true);\n // console.log(res.data)\n }\n if (res?.data?.response?.statusEnum === 0) {\n console.log(res?.data?.response?.message);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n // Filter cart array or current content id for checking item added to the cart or not\n\n const cartList = GetCartItemQuery?.response?.data?.map(\n (item) => item?.itemId\n );\n // console.log(cartList, data?.response?.data?._id);\n\n useEffect(() => {\n if (cartList?.includes(data?.response?.data?._id)) {\n setIsItemAddCheck(true);\n setContentType(\"AddToCart\");\n }\n }, [data]);\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [isPopupCart, setIsPopupCart] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n\n const checkout = (walletId) => {\n if (popupCurrency == \"usd\") {\n if (contentType == \"Premium\") {\n navigate(\n `/checkout?productType=channel&amount=${subscriptionPrice}¤cy=usd&productId=${channelProductId}&productName=${channelName}`\n );\n } else {\n navigate(\n `/checkout?productType=${type}&amount=${price}¤cy=usd&productId=${data?.response?.data?._id}&productName=${contentName}`\n );\n }\n } else if (popupCurrency == \"fstr\") {\n if (contentType == \"Premium\") {\n navigate(\n `/initiatepayment?productType=channel&amount=${convertActualUsdToFstrPrice(\n subscriptionPrice\n )}&cproductId=${channelProductId}&productName=${channelName}&walletId=${walletId}`\n );\n } else {\n navigate(\n `/initiatepayment?productType=${type}&amount=${convertActualUsdToFstrPrice(\n price\n )}¤cy=usd&productId=${\n data?.response?.data?._id\n }&productName=${contentName}&walletId=${walletId}`\n );\n }\n }\n };\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const onPopupActionHandler = (walletId) => {\n // for paid content\n if (contentPreference == \"paid\") {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n // add iap to cart\n if (isPopupCart) {\n addToCart();\n }\n // purchase iap\n else {\n checkout();\n }\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n // add iap to cart\n if (isPopupCart) {\n addToCart();\n }\n // purchase iap\n else {\n checkout(walletId);\n }\n }\n }\n\n // for subscription\n else {\n // handle logic for usd currency here\n if (popupCurrency == \"usd\") {\n navigate(\n `/checkout?isSubscription=true&channelId=${channelData?.response?.data?._id}`\n );\n onPopupClose();\n }\n\n // handle logic for purchasing from wallet here\n else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?isSubscription=true&channelId=${channelData?.response?.data?._id}&walletId=${walletId}`\n );\n onPopupClose();\n }\n }\n };\n\n useEffect(() => {\n accessToken && GetCartItemByToken() && GetUserProfileByToken();\n }, []);\n\n return (\n <>\n <div className=\"px-4 mt-[13px]\">\n <div className=\"__back__container__section flex justify-between\">\n <button\n onClick={() => navigate(\"/marketplace/entertainment\")}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this content\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div>\n </div>\n </div>\n <div className=\"relative px-4 mb-[140px] max-[768px]:mb-[50px] flex flex-col lg:flex-row py-[16px] max-[1280px]:py-[25px] gap-4\">\n {isFetching && !isError && (\n <div className=\"min-h-[568px] w-full grid place-content-center\">\n <Loader />\n </div>\n )}\n {(isError || data?.response?.errorCode != 0) && !isFetching && (\n <div className=\"h-[360px] w-full grid place-content-center text-white/70\">\n Something went wrong\n </div>\n )}\n {isSuccess &&\n !isFetching &&\n !isError &&\n data?.response?.errorCode == 0 && (\n <>\n <div className=\"w-[100%] lg:w-[59%] max-[1024px]:w-auto max-[1024px]:p-0 max-[1280px]:p-0 \">\n <div className=\" mb-6 md:mb-[19px] z-10 relative rounded flex justify-center items-center\">\n <Zoom>\n <img\n src={contentThumbnail}\n alt=\"Network Problem\"\n className=\"h-auto w-full object-cover rounded-[20px]\"\n />\n </Zoom>\n <Zoom delay={500}></Zoom>\n </div>\n <div className=\"relative\">\n {/* <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -left-[80px] md:-left-[300px] -top-[80px] md:-top-[150px]\" /> */}\n\n <div className=\"volumetric-card-left-shadow \"></div>\n <div className=\"lg:flex jusitfy-between mb-[21px] relative z-10 gap-10 md:gap-8 lg:gap-14 pt-[36px] max-[768px]:pt-[16px]\">\n <div className=\"__music__detail__description__main\">\n <div className=\"__header__main\">\n <span className=\"font-body font-medium text-[#FFFFFF66] text-[14px]\">\n Description:\n </span>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-medium max-[768px]:text-[13px]\">\n {contentDescription}\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"volumetric-card-right-shadow\"></div>\n {/* <ShadowFrame className=\"w-[250px] md:w-[775px] h-[250px] md:h-[775px] rounded-[250px] md:rounded-[775px] -right-[80px] md:-right-[300px] -bottom-[80px] md:-bottom-[150px]\" /> */}\n </div>{\" \"}\n </div>\n <div className=\" w-[100%] lg:w-[41%] max-[1024px]:w-auto max-[1024px]:h-auto max-[1024px]:mt-[18px]\">\n <div className=\"__entertainment_assets_heading flex flex-col mb-[16px] lg:mb-[20px] sm:flex justify-between pt-4 px-[30px] max-[768px]:p-0\">\n <div className=\"__heading leading-[40px]\">\n <h4 className=\"text-[24px] font-heading text-[#ffffff]\">\n {contentName}\n </h4>\n </div>\n {isFetchingChannel && (\n <div className=\"min-h-[240px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {(isErrorChannel ||\n channelData?.response?.errorCode != 0) && (\n <h2 className=\"font-semibold mt-4 text-white/70\">\n Channel not found\n </h2>\n )}\n {(isErrorChannel ||\n channelData?.response?.errorCode == 0) && (\n <Link\n to={`/marketplace/entertainment/channels/${channelId}`}\n >\n <div className=\"__creator__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Creator:\n </h6>\n <div className=\"__creator__profiler__main pt-[14px] flex gap-[6px]\">\n <img\n src={\n channelThumbnail ||\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/default.jpeg\"\n }\n className=\"w-[52px] h-[52px] rounded-[50%]\"\n alt=\"__creator_profile__img\"\n />\n <div>\n <h5 className=\"text-[16px] font-body font-semibold\">\n {channelName}\n </h5>\n <span className=\"text-[14px] font-body font-medium text-[#FFFFFF99]\">\n @{channelHandle}\n </span>\n </div>\n </div>\n </div>\n </Link>\n )}\n <div className=\"__category__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff]\">\n Music\n </span>\n </div>\n <div className=\"__tags__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Tags:\n </h6>\n <span className=\"text-[16px] font-body font-medium\">\n {tags.join(\", \")}\n </span>\n </div>\n\n <div className=\"__buy__main pt-[28px] pr-[40px] max-[768px]:pr-0\">\n <div className=\"flex-1 w-full lg:mt-0 min-h-180\">\n {(userAssetInfo.isLoading ||\n addAssetToUserInfo.isLoading ||\n checkSubscriptionInfo.isLoading ||\n !channelProductId) && (\n <div className=\"min-h-[160px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!userAssetInfo.isLoading &&\n !addAssetToUserInfo.isLoading &&\n !checkSubscriptionInfo.isLoading &&\n channelProductId && (\n <BuyCards\n justAdded={justAddedToAssets || channelSubscribed}\n isSubscription={contentPreference != \"paid\"}\n type={contentType}\n title={\n contentType != \"MyAsset\" ? buyCardTitle : null\n }\n card=\"content\"\n price={\n contentType != \"MyAsset\"\n ? \"$\" +\n (contentType == \"Premium\"\n ? subscriptionPrice\n : price)\n : null\n }\n handleData={(e) => {\n handleClick(e, type, data?.response?.data?._id);\n }}\n onBuyHandle={() => {\n setIsPopupCart(false);\n setBuyPopupOpen(true);\n }}\n />\n )}\n {/* {console.log(\"dfdsfds\", contentType, subscriptionPrice)} */}\n\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={isPopupCart}\n addedToCart={IsItemAdded}\n loading={addtoCartLoader}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={onPopupActionHandler}\n proceedToCheckoutHandler={checkout}\n isSubscription={contentPreference != \"paid\"}\n priceUsd={\n contentType == \"Premium\" ? subscriptionPrice : price\n }\n />\n )}\n {contentType == \"Premium\" && (\n <>\n {\" \"}\n <UnlockPremium\n status={open}\n price={price}\n text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>$${price}/Month ( $${(\n price * 12\n ).toFixed(2)}/year )</b>.`}\n heading=\"Unlock the Premium\"\n handleData={() => setOpen(false)}\n handleSub={() => {\n setContentType(\"MyAsset\");\n setBuyCardTitle(\n \"You unlocked this content by subscribing to <b style='color:white'>Fourth Star</b> channel\"\n );\n }}\n />\n </>\n )}\n\n {/* use handle sub when actually buying the content */}\n {contentType == \"BuyNow\" && (\n <Popup\n status={open}\n text=\"Buy this content and get lifetime access to it.\"\n heading=\"Buy Content\"\n button={`Buy now @$${price}`}\n handleData={() => setOpen(false)}\n handleSub={() => {\n navigate(\n `/checkout?productType=music&amount=${price}¤cy=${data?.response?.data?.currency}&productId=${data?.response?.data?._id}&productName=${contentName}`\n );\n }}\n />\n )}\n\n <ComingSoon\n status={showComingSoonPopup}\n text={comingSoonText}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n </div>\n </div>\n {/* <div className=\"grid grid-cols-1 gap-4 \">Content</div> */}\n </div>\n </>\n )}\n </div>\n\n {/* Divider */}\n\n <hr className=\"border-[0.1px] border-[#5A5A5A80]\" />\n\n <div className=\"__suggested__video__container mb-[90px] px-4\">\n <div className=\"__heading\">\n <SliderHeader title={accessToken && `Suggested for you`} />\n </div>\n <div className=\"__content__slider pt-[24px]\">\n {/* <SneakyPeak\n slider={mostTrending}\n SlideToShow={3}\n type=\"trending\"\n ></SneakyPeak> */}\n {recommendedContentData && !isFetchingRecommendedContent && (\n <LargeCarousel\n slider={recommendedContentData}\n isSuggestedContent={true}\n type=\"music\"\n ></LargeCarousel>\n )}\n {isFetchingRecommendedContent && (\n <div className=\"w-full min-h[320px] grid place-content-center\">\n <Loader />\n </div>\n )}\n </div>\n </div>\n\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n contentType={\"music\"}\n idToReport={id}\n />\n ) : (\n <></>\n )}\n\n {/* {IsItemAdded && (\n <Alert\n open={true}\n onClose={() => {\n setIsItemAdded(!IsItemAdded);\n }}\n heading=\"Item Added to the Cart\"\n message=\"\"\n isSuccess={true}\n />\n )} */}\n </>\n );\n};\n\nexport default MusicContent;\n","import React, { useEffect, useState } from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { Zoom } from \"react-reveal\";\n// import { AllGaming, SuiteGaming, EnvironGaming } from \"components/assets/myassets/gaming/index\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport ShadowFrame from \"components/shadow-frame\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Gaming-Category-Page\n *@developer Aditya P\n */\n\nconst GamingTabs = [\n { id: 0, key: \"all\", name: \"All\" },\n { id: 0, key: \"holo-suite-gaming\", name: \"Holosuite Gaming\" },\n { id: 0, key: \"environmental-gaming\", name: \"Environmental Gaming\" },\n];\n\nconst GamingData = {\n all: [\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n ],\n HoloSuite: [\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n ],\n Environment: [\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n {\n id: 0,\n heading: \"Galactic battles: Multiverse War\",\n isComing: true,\n },\n ],\n};\n\nconst GameCategory = ({ value, defaultRoute }) => {\n const navigate = useNavigate();\n const { category } = useParams();\n const [allCategory] = useState([\n { label: \"Apartments\", coming: false },\n { label: \"Ships\", coming: false },\n { label: \"Entertainment\", coming: false },\n { label: \"Clothing\", coming: false },\n { label: \"Companions\", coming: false },\n { label: \"Gaming\", coming: false },\n ]);\n const [values, setValues] = useState(0);\n const [gamingActiveTab, setgamingActiveTab] = useState({\n id: 0,\n activetabs: category,\n });\n\n const handleChange = (event, newValue) => {\n event.preventDefault();\n switch (newValue) {\n case 0:\n navigate(\"/marketplace/apartments\");\n break;\n case 1:\n navigate(\"/marketplace/ships\");\n break;\n case 2:\n navigate(\"/marketplace/entertainment\");\n break;\n case 3:\n navigate(\"/marketplace/clothing/\");\n break;\n case 4:\n navigate(\"/marketplace/companions/\");\n break;\n case 5:\n navigate(\"/marketplace/gaming/\");\n break;\n default:\n navigate(\"/marketplace/\");\n break;\n }\n };\n\n useEffect(() => {\n if (value) setValues(+value);\n navigate(`/marketplace/gaming/${gamingActiveTab?.activetabs}`);\n }, [value, gamingActiveTab]);\n return (\n <>\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[30%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[20%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <div className=\"__game__category__container container app-container mx-auto px-2 md:px-3 xl:px-6 2xl:px-10 relative z-10\">\n <ul\n className=\"flex overflow-x-auto text-sm md:text-base font-semibold text-center py-5 px-4 md:py-8 md:px-4\"\n data-testid=\"tablist\"\n >\n {allCategory?.map((category, i) => (\n <li className=\"mr-8\" key={i} role=\"tab\">\n <a\n href=\"#\"\n onClick={(e) => handleChange(e, i)}\n aria-current={values === i ? \"page\" : \"\"}\n className={`inline-block text-[#7A7A7A] hover:text-white ${\n values === i ? \"text-white\" : \"\"\n }`}\n >\n {!category?.coming ? (\n category?.label\n ) : (\n <>\n {category?.label}\n <span className=\"ml-2 text-xs clip-text font-medium whitespace-nowrap\">\n Coming soon\n </span>\n </>\n )}\n </a>\n </li>\n ))}\n </ul>\n\n <div className=\"__navigate__back__\">\n <Zoom>\n <button\n onClick={() => navigate(-1)}\n className=\"flex h-[32px] justify-center items-center gap-[8px] ml-3 text-white font-semibold text-xs md:text-sm bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </Zoom>\n </div>\n\n {/* Gameing Tabs Section */}\n <div className=\"__gaming_assets_main py-[50px] pl-[15px] max-[768px]:p-[15px] max-[768px]:py-[30px]\">\n <div className=\"__gaming_assets_heading mb-[10px]\">\n <h4 className=\"font-medium font-heading text-[24px] tracking-[1px] max-[768px]:p-0 max-[768px]:text-[15px]\">\n Gaming\n </h4>\n </div>\n\n <div className=\"__gaming__tabs_main mt-[22px] max-[768px]:w-auto max-[768px]:p-0 max-[1280px]:p-0\">\n <ul\n className=\" \n flex \n overflow\n gap-[20px] \n hover:[&>li]:cursor-pointer \n max-[768px]:overflow-x-scroll \n max-[768px]:p-0 \n max-[768px]:[&>li]:underline-offset-1\n max-[768px]:[&>li]:text-[12px]\n \"\n >\n {GamingTabs?.map((tabs, ind) => {\n return (\n <li\n key={tabs?.key}\n className={`${\n gamingActiveTab.activetabs === tabs.key\n ? \"text-[#fff] decoration-2 underline underline-offset-8 decoration-[#FBBC5E] font-medium\"\n : \"text-[gray]\"\n }`}\n onClick={() => setgamingActiveTab({ activetabs: tabs.key })}\n >\n {tabs?.name}\n </li>\n );\n })}\n </ul>\n </div>\n\n <div className=\"_assets_container grid grid-cols-4 md:grid-cols-4 max-[1200px]:md:grid-cols-3 max-[768px]:grid-cols-1 gap-x-4 gap-y-4 lg:gap-y-8 mb-14 md:mb-28 mx-auto relative z-10 mt-[30px]\">\n {/* Entertainment Tabs Container */}\n {gamingActiveTab.activetabs === \"all\" && (\n <>\n {GamingData.all.map((data, ind) => {\n return (\n <SliderCards\n key={ind}\n item={data}\n id=\"gaming\"\n baseRoute=\"marketplace\"\n category=\"all\"\n />\n );\n })}\n </>\n )}\n {gamingActiveTab.activetabs === \"holo-suite-gaming\" && (\n <>\n {GamingData.HoloSuite.map((data, ind) => {\n return (\n <SliderCards\n key={ind}\n item={data}\n id=\"gaming\"\n baseRoute=\"marketplace\"\n category=\"holo-suite-gaming\"\n />\n );\n })}\n </>\n )}\n {gamingActiveTab.activetabs === \"environmental-gaming\" && (\n <>\n {GamingData.Environment.map((data, ind) => {\n return (\n <SliderCards\n key={ind}\n item={data}\n id=\"gaming\"\n baseRoute=\"marketplace\"\n category=\"environmental-gaming\"\n />\n );\n })}\n </>\n )}\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default GameCategory;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module SingUp\n *@developer Sudhanshu <sudhanshut@instaacoders.com>\n */\n\nimport { Box } from \"@mui/material\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { NavLink, useNavigate } from \"react-router-dom\";\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\nimport { DateCalendar } from \"@mui/x-date-pickers/DateCalendar\";\nimport { isValidUsername } from \"utils\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport {\n useValidateUsernameMutation,\n useUpdateUsernameWithGenderAndDobMutation,\n} from \"store/slicer/userProfile\";\nimport dayjs from \"dayjs\";\n\nimport dateFormat from \"dateformat\";\nimport { Calendar as HyperCalendar } from \"react-date-range\";\nimport \"assets/css/hyperxcalendarstyles.css\"; // main style file\nimport \"assets/css/hyperxcalendartheme.css\"; // theme css file\n\n/* This code is a React component for user registration with the option to switch between \"User\" and \"Creator\" accounts. It performs real-time validation for name, email, and password, including password strength checks. Users can toggle the visibility of the password, and the form is enabled for submission when all requirements are met.\n */\nconst AddDetails = () => {\n const navigate = useNavigate();\n const [value, setValue] = useState(new Date());\n const [screenSize, setScreenSize] = useState({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n\n // Function to update screen size\n const updateScreenSize = () => {\n setScreenSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n };\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n const [usernamePristine, setUsernamePristine] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n useEffect(() => {\n // Add event listener for resize event\n window.addEventListener(\"resize\", updateScreenSize);\n // Clean up the event listener on component unmount\n return () => {\n window.removeEventListener(\"resize\", updateScreenSize);\n };\n }, [screenSize.width]);\n const [formData, setFormData] = useState({\n userName: \"\",\n gender: \"\",\n dob: \"\",\n });\n const [formErrors, setFormErrors] = useState({\n userName: \"\",\n gender: \"\",\n dob: \"\",\n });\n const hasError = Object.values(formErrors).some((value) => value !== \"\");\n\n const isRequired = (value) => (value === \"\" ? false : true);\n\n // Function to validate the form data\n const validateForm = async () => {\n if (!isRequired(formData.userName)) {\n setFormErrors({\n ...formErrors,\n userName: \"Username is required\",\n });\n } else if (!isValidUsername(formData.userName)) {\n setFormErrors({\n ...formErrors,\n userName: \"Username must only contain letters and numbers\",\n });\n } else {\n const payload = {\n username: formData.userName,\n };\n const res = await ValidateUsername(payload);\n\n // if(res?.data?.response?.statusEnum == 2){\n // const errMessage = res?.data?.response?.message;\n // if(errMessage){\n // setFormErrors({\n // ...formErrors,\n // \"userName\": errMessage,\n // });\n // }\n // setIsValid(false);\n // }\n\n if (res?.data?.response?.statusEnum != 1) {\n const sets = res?.data?.response?.data?.sets;\n const filteredSet = sets?.filter((set) => set.key == \"username\");\n const errObj = filteredSet?.length && filteredSet[0];\n const errMessage = errObj?.message || res?.data?.response?.message;\n if (errMessage) {\n setFormErrors({\n ...formErrors,\n userName: errMessage,\n });\n }\n }\n }\n const boolName = isValidUsername(formData.userName);\n const boolGender = checkGender(selectedGender);\n const boolCalenderDate = checkCalenderDate(selectedDate);\n if (boolGender && boolCalenderDate && boolName) {\n return true;\n } else return false;\n };\n\n const checkGender = (selectedGender) => {\n if (selectedGender === \"-Select-\") {\n setgenderError(true);\n return false;\n } else {\n setgenderError(false);\n return true;\n }\n };\n const checkCalenderDate = (selectedGender) => {\n if (selectedDate === \"MM/DD/YYYY\") {\n setDOBError(\"Please select DOB\");\n return false;\n } else {\n setDOBError(null);\n return true;\n }\n };\n\n // Function to handle input changes\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n // if (value.trim()) {\n // setFormErrors({\n // ...formErrors,\n // [name]: \"\",\n // });\n // }\n setFormData({\n ...formData,\n [name]: value.trim(),\n });\n };\n const [\n UpdateUsernameWithGenderAndDob,\n { data, isLoading, isError, error, isSuccess },\n ] = useUpdateUsernameWithGenderAndDobMutation();\n // Function to handle form submission\n const handleSubmit = (e) => {\n e.preventDefault();\n // if (validateForm()) {\n setIsValid(false);\n // Retrieve the existing userBasicData from localStorage\n const existingData =\n JSON.parse(localStorage.getItem(\"userBasicData\")) || {};\n\n // Merge the existing data with the new formData\n const updatedData = { ...existingData, ...formData };\n\n // Update the localStorage with the merged data\n localStorage.setItem(\"userBasicData\", JSON.stringify(updatedData));\n UpdateUsernameWithGenderAndDob(formData);\n // }\n };\n\n useEffect(() => {\n if (isSuccess && data) {\n console.log(data);\n if (data?.response?.statusEnum === 1) {\n setAlertMessage(data?.response?.message);\n setAlertHeading(\"Changes Saved!\");\n setSuccessAlert(true);\n setTimeout(() => {\n setselectedDate(\"MM/DD/YYYY\");\n setselectedGender(\"-Select-\");\n setFormData({\n userName: \"\",\n gender: \"\",\n dob: \"\",\n });\n // navigate(\"/me\");\n navigate(\"/select-preferences\");\n }, 2000);\n } else if (data?.response?.statusEnum === 2) {\n // make a warning alert popup for here if needed\n setAlertMessage(data?.response.data.sets[0].message);\n setSuccessAlert(false);\n return;\n } else {\n setAlertMessage(data?.response?.message);\n setSuccessAlert(false);\n }\n }\n if (isError) {\n setAlertMessage(error);\n setSuccessAlert(false);\n }\n }, [data, isError, isSuccess]);\n\n const [\n ValidateUsername,\n {\n isLoading: is_loading,\n isError: is_Error,\n error: u_error,\n isSuccess: is_Success,\n },\n ] = useValidateUsernameMutation();\n const [isValid, setIsValid] = useState(false);\n const [userNameValid, setUserNameValid] = useState(false);\n useEffect(() => {\n // if (is_Success) {\n // setIsValid(true);\n // } else {\n // setIsValid(false)\n // }\n\n if (is_Success && userNameValid) {\n setIsValid(true);\n } else {\n setIsValid(false);\n }\n }, [is_Success, is_loading, userNameValid]);\n // checkName\n const checkName = async (value) => {\n let valid = true;\n const fieldInput = value?.trim();\n if (!isRequired(fieldInput)) {\n setFormErrors({\n ...formErrors,\n userName: \"Username is required\",\n });\n valid = false;\n } \n // else if (!isValidUsername(fieldInput)) {\n // setFormErrors({\n // ...formErrors,\n // userName: \"Username must only contain letters and numbers\",\n // });\n // valid = false;\n // } \n else {\n const payload = {\n username: formData.userName,\n };\n const res = await ValidateUsername(payload);\n\n // if(res?.data?.response?.statusEnum == 2){\n // const errMessage = res?.data?.response?.message;\n // if(errMessage){\n // setFormErrors({\n // ...formErrors,\n // \"userName\": errMessage,\n // });\n // }\n // valid = false;\n // }\n\n if (res?.data?.response?.statusEnum != 1) {\n const sets = res?.data?.response?.data?.sets;\n const filteredSet = sets?.filter((set) => set.key == \"username\");\n const errObj = filteredSet?.length && filteredSet[0];\n const errMessage = errObj?.message || res?.data?.response?.message;\n if (errMessage) {\n setFormErrors({\n ...formErrors,\n userName: errMessage,\n });\n } else {\n }\n\n valid = false;\n }\n }\n valid &&\n setFormErrors({\n ...formErrors,\n userName: \"\",\n });\n setUserNameValid(valid);\n return valid;\n };\n\n const [userGuideLines, setuserGuideLines] = useState(false);\n\n const toggleUserGuidelines = (show) => {\n setuserGuideLines(show);\n };\n const [Calender, setCalender] = useState(false);\n\n const toggleCalender = (e) => {\n setCalender(!Calender);\n };\n\n const [selectedGender, setselectedGender] = useState(\"-Select-\");\n const handleGender = (e) => {\n // console.log(\"🚀 ~ file: Index.jsx:193 ~ handleGender ~ e:\", e);\n setGender(!Gender);\n setgenderError(false);\n setselectedGender(e);\n setFormData({\n ...formData,\n gender: e,\n });\n };\n\n const [Gender, setGender] = useState(false);\n const toggleGender = (e) => {\n setGender(!Gender);\n };\n\n const [focus, setFocus] = useState({\n username: false,\n dob: false,\n gender: false,\n });\n\n const userGuideLineRef = useRef(null);\n const dobRef = useRef(null);\n const genderDropdownRef = useRef(null);\n useEffect(() => {\n const handleOutsideClick = (event) => {\n if (dobRef.current && !dobRef.current.contains(event.target)) {\n setCalender(false);\n }\n\n if (\n genderDropdownRef.current &&\n !genderDropdownRef.current.contains(event.target)\n ) {\n setGender(false);\n }\n if (\n userGuideLineRef.current &&\n !userGuideLineRef.current.contains(event.target)\n ) {\n setuserGuideLines(false);\n }\n };\n\n document.addEventListener(\"click\", handleOutsideClick);\n\n return () => {\n document.removeEventListener(\"click\", handleOutsideClick);\n };\n }, []);\n\n const [selectedDate, setselectedDate] = useState(\"MM/DD/YYYY\");\n\n const [currentCalendarView, setCurrentCalendarView] = useState(\"year\");\n\n const [selectedDay, setSelctedDay] = useState(\"01\");\n const [selectedMonth, setSelectedMonth] = useState(\"01\");\n const [selectedYear, setSelectedYear] = useState(\"2000\");\n\n // const handleDate = (value) => {\n // setCalender(false);\n // const dateString = value.format();\n // console.log(\"date string\",dateString);\n // var ToDate = new Date();\n // if (new Date(dateString).getTime() > ToDate.getTime()) {\n // setDOBError(\"Date of Birth must be less than today date\");\n // return\n // }\n // // Split into date and time\n // const [datePart, timePart] = dateString.split(\"T\");\n // // Split the date into day, month, and year\n // const [year, month, day] = datePart.split(\"-\");\n // // Create the desired format (dd/mm/yyyy)\n // const formattedDate = `${month}/${day}/${year}`;\n // setDOBError(null)\n // setselectedDate(formattedDate);\n // // console.log(formattedDate); // Output: 11/11/2023\n // setFormData({\n // ...formData,\n // dob: formattedDate,\n // })\n\n // };\n const handleDate = (value) => {\n setCurrentCalendarView(\"year\");\n setCalender(false);\n let dateString = value.format();\n const chosenDate = dateString.split(\"T\")[0].split(\"-\")[2];\n setSelctedDay(chosenDate);\n var ToDate = new Date();\n if (\n new Date(`${selectedYear}-${selectedMonth}-${chosenDate}`).getTime() >\n ToDate.getTime()\n ) {\n setDOBError(\"Date of Birth must be less than today date\");\n console.log(\"test\");\n return;\n }\n // Split into date and time\n // const [datePart, timePart] = dateString.split(\"T\");\n // // Split the date into day, month, and year\n // const [year, month, day] = datePart.split(\"-\");\n const year = selectedYear;\n const month = selectedMonth;\n const day = chosenDate;\n // Create the desired format (dd/mm/yyyy)\n const formattedDate = `${month}/${day}/${year}`;\n console.log(\"formatte date\", formattedDate);\n setDOBError(null);\n setselectedDate(formattedDate);\n // console.log(formattedDate); // Output: 11/11/2023\n setFormData({\n ...formData,\n dob: formattedDate,\n });\n };\n\n const onCalendarMonthChange = (value) => {\n setCalender(true);\n setCurrentCalendarView(\"day\");\n const dateString = value.format();\n const month = dateString.split(\"T\")[0].split(\"-\")[1];\n const year = dateString.split(\"T\")[0].split(\"-\")[0];\n\n const ToDate = new Date();\n if (new Date(`${year}-${month}-01`).getTime() > ToDate.getTime()) {\n setDOBError(\"Date of Birth must be less than today date\");\n setSelctedDay(\"01\");\n setSelectedMonth(\"1\");\n setSelectedYear(\"2000\");\n return;\n }\n\n // need to change both day and year as well, because changing month can change the year, and different months have different number of days\n setDOBError(null);\n setSelctedDay(\"01\");\n setSelectedMonth(month);\n setSelectedYear(year);\n setselectedDate(`${month}/01/${year}`);\n };\n\n const onCalendarYearChange = (value) => {\n setCalender(true);\n setCurrentCalendarView(\"month\");\n const dateString = value.format();\n const year = dateString.split(\"T\")[0].split(\"-\")[0];\n\n const ToDate = new Date();\n if (year > ToDate.getFullYear()) {\n setDOBError(\"Date of Birth must be less than today date\");\n setSelectedYear(\"2000\");\n return;\n }\n\n setDOBError(null);\n setSelectedYear(year);\n setselectedDate(`${selectedMonth}/${selectedDay}/${year}`);\n };\n\n const [genderError, setgenderError] = useState(false);\n const [DOBError, setDOBError] = useState(\"\");\n\n const isDateValid = (dateStr) => {\n return !isNaN(new Date(dateStr));\n };\n\n const [showCalendar, setShowCalendar] = useState(false);\n\n const calendarContainerRef = useRef(null);\n\n useEffect(() => {\n const delaySearch = setTimeout(() => {\n if (!usernamePristine) {\n // checkUsername\n checkName(formData.userName);\n }\n }, 1000);\n\n return () => {\n clearTimeout(delaySearch);\n };\n }, [formData.userName]);\n\n useEffect(() => {\n // fetching user pref and storing in state\n if (localStorage.getItem(\"userBasicData\")) {\n const userBasicData = JSON.parse(localStorage.getItem(\"userBasicData\"));\n setFormData({\n userName: userBasicData.userName,\n gender: userBasicData.gender,\n dob: userBasicData.dob,\n });\n setselectedDate(dateFormat(new Date(userBasicData.dob)), \"mm/dd/yyyy\");\n setselectedGender(userBasicData.gender);\n }\n // this will close the calendar if we click outside it\n const handleClickOutsideCalendar = (e) => {\n if (\n e.target != calendarContainerRef.current &&\n !calendarContainerRef.current?.contains(e.target) &&\n !e.target.closest(\".rdrCalendarWrapper\")\n ) {\n setShowCalendar(false);\n }\n };\n\n document.addEventListener(\"click\", handleClickOutsideCalendar);\n\n return () =>\n document.removeEventListener(\"click\", handleClickOutsideCalendar);\n }, []);\n\n return (\n <>\n <Box className=\"w-full max-w-[768px] rounded-lg border border-[#363636] p-5 md:p-[32px] lg:p-[58px] signin-form\">\n <Box className=\"text-white mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[36px]\">\n Let's Setup Your Account\n </h1>\n\n <div className=\"relative flex justify-between items-center mb-[36px] px-0 w-full md:w-3/5 mx-auto\">\n <div className=\"absolute bottom-[53px] left-[35px] h-[2px] w-[calc(50%-35px)] bg-[#545454] z-0\"></div>\n <div className=\"absolute bottom-[53px] right-[35px] h-[2px] w-[calc(50%-35px)] bg-[#545454] z-0\"></div>\n\n <div className=\"flex flex-col justify-between items-center w-[70px] h-[70px] z-10\">\n <div className=\"text-black h-8 w-8 bg-[#FBBC5E] rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 1\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Add Details\n </p>\n </div>\n\n <div className=\"flex flex-col justify-between items-center min-w-[70px] h-[70px] z-10\">\n <div className=\"text-white bg-[#545454] h-8 w-8 rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 2\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Select Preferences\n </p>\n </div>\n\n <div className=\"flex flex-col justify-between items-center w-[70px] h-[70px] z-10\">\n <div className=\"text-white bg-[#545454] h-8 w-8 rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 3\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Add Tags\n </p>\n </div>\n </div>\n\n <form className=\"auth-form mb-5\" onSubmit={handleSubmit}>\n <div className=\"mb-4\">\n <label\n htmlFor=\"name\"\n className=\"font-medium text-white/[.80] text-sm\"\n data-testid=\"Username\"\n >\n Username\n </label>\n <div className=\"mt-2 relative\" ref={userGuideLineRef}>\n <input\n type=\"text\"\n placeholder=\"eg. John123\"\n name=\"userName\"\n className={`rounded-lg w-full bg-transparent border border-white focus:border-[#FBBC5E] font-normal py-3 px-5 leading-normal font-semibold outline-none ${\n formErrors.userName ? \"!border-error\" : \"\"\n } ${focus ? \"\" : \"\"}`}\n id=\"userName\"\n value={formData.userName}\n onChange={handleInputChange}\n onClick={() => {\n setUsernamePristine(false);\n }}\n // onBlur={(e) => checkName(e.target.value)}\n />\n {is_loading ? (\n <span className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer\">\n <svg\n className=\"animate-spin h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n </span>\n ) : (\n <>\n <span\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer \"\n onClick={() => toggleUserGuidelines(!userGuideLines)}\n onMouseEnter={() => toggleUserGuidelines(true)}\n onMouseLeave={() => toggleUserGuidelines(false)}\n >\n <svg\n width=\"22\"\n height=\"22\"\n viewBox=\"0 0 22 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.75\"\n y=\"0.75\"\n width=\"20.5\"\n height=\"20.5\"\n rx=\"10.25\"\n stroke=\"white\"\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M10.4995 18V9.456H12.4995V18H10.4995ZM11.5075 8.048C11.1342 8.048 10.8248 7.93067 10.5795 7.696C10.3448 7.46133 10.2275 7.17867 10.2275 6.848C10.2275 6.50667 10.3448 6.224 10.5795 6C10.8248 5.76533 11.1342 5.648 11.5075 5.648C11.8808 5.648 12.1848 5.76 12.4195 5.984C12.6648 6.19733 12.7875 6.46933 12.7875 6.8C12.7875 7.152 12.6702 7.45067 12.4355 7.696C12.2008 7.93067 11.8915 8.048 11.5075 8.048Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n {userGuideLines && (\n <div\n className={`notification-dropdown popover absolute ${\n screenSize.width > 1226\n ? \"top-4 right-1\"\n : \"top-8 right-4 rotate-90\"\n } delay-200 transition`}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"23\"\n viewBox=\"0 0 20 23\"\n fill=\"none\"\n >\n <path\n d=\"M19.6752 0.847325L0.643729 11.8411L19.6803 22.826L19.6752 0.847325Z\"\n fill=\"#716046\"\n />\n </svg>\n </div>\n )}\n {userGuideLines && (\n <div\n data-testid=\"Username\"\n onBlur={() => toggleUserGuidelines(false)}\n className={`absolute ${\n screenSize.width > 1226\n ? \"top-0 -right-[350px]\"\n : \"-right-[0px]\"\n } p-5 max-w-[357px] overflow-hidden z-[1] rounded-md bg-[#716046] backdrop-blur-sm`}\n >\n <p className=\"text-[14px] text-[#FBBC5E] font-bold pb-[9px]\">\n Username Guidelines\n </p>\n <ul className=\"pl-5\">\n <li className=\"text-[14px] font-semibold list-disc\">\n There should be no spaces.\n </li>\n <li className=\"text-[14px] font-semibold list-disc\">\n Username should not start with a number.\n </li>\n <li className=\"text-[14px] font-semibold list-disc\">\n Username should only contain alphabets and numbers.\n </li>\n <li className=\"text-[14px] font-semibold list-disc\">\n Username should not contain any special character.\n </li>\n </ul>\n </div>\n )}{\" \"}\n </>\n )}\n </div>\n\n {formErrors.userName && (\n <span className=\"text-error text-sm\">\n {formErrors.userName}\n </span>\n )}\n\n {is_Error && (\n <span className=\"text-error text-sm\">{u_error}</span>\n )}\n\n {isValid && (\n <span className=\"text-[#25B39E] text-sm flex gap-2\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M17.5003 5.83516L7.50033 15.8352L2.91699 11.2518L4.09199 10.0768L7.50033 13.4768L16.3253 4.66016L17.5003 5.83516Z\"\n fill=\"currentColor\"\n />\n </svg>\n Username available\n </span>\n )}\n </div>\n\n <div className=\"mb-4\">\n <p\n className=\"font-medium text-white/[.80] text-sm\"\n data-testid=\"Date Of Birth\"\n >\n Date Of Birth\n </p>\n\n <div className=\"mt-2 flex relative\" ref={calendarContainerRef}>\n <div\n className={`rounded-lg cursor-pointer w-full remove-icon bg-transparent border border-white focus:border-[#FBBC5E] font-normal py-3 px-5 leading-normal font-semibold outline-none ${\n DOBError ? \"!border-error\" : \"\"\n }`}\n onClick={(e) => setShowCalendar(true)}\n >\n <div\n className={`${\n selectedDate === \"MM/DD/YYYY\"\n ? \"text-slate-400\t\"\n : \"text-white\"\n }`}\n >\n {\" \"}\n {isDateValid(selectedDate?.toString()) &&\n dateFormat(new Date(selectedDate), \"mm/dd/yyyy\")}\n {!isDateValid(selectedDate?.toString()) && \"MM/DD/YYYY\"}\n </div>\n <span\n data-testid=\"PasswordVisibility\"\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M19 4H17V3C17 2.73478 16.8946 2.48043 16.7071 2.29289C16.5196 2.10536 16.2652 2 16 2C15.7348 2 15.4804 2.10536 15.2929 2.29289C15.1054 2.48043 15 2.73478 15 3V4H9V3C9 2.73478 8.89464 2.48043 8.70711 2.29289C8.51957 2.10536 8.26522 2 8 2C7.73478 2 7.48043 2.10536 7.29289 2.29289C7.10536 2.48043 7 2.73478 7 3V4H5C4.20435 4 3.44129 4.31607 2.87868 4.87868C2.31607 5.44129 2 6.20435 2 7V19C2 19.7956 2.31607 20.5587 2.87868 21.1213C3.44129 21.6839 4.20435 22 5 22H19C19.7956 22 20.5587 21.6839 21.1213 21.1213C21.6839 20.5587 22 19.7956 22 19V7C22 6.20435 21.6839 5.44129 21.1213 4.87868C20.5587 4.31607 19.7956 4 19 4ZM20 19C20 19.2652 19.8946 19.5196 19.7071 19.7071C19.5196 19.8946 19.2652 20 19 20H5C4.73478 20 4.48043 19.8946 4.29289 19.7071C4.10536 19.5196 4 19.2652 4 19V12H20V19ZM20 10H4V7C4 6.73478 4.10536 6.48043 4.29289 6.29289C4.48043 6.10536 4.73478 6 5 6H7V7C7 7.26522 7.10536 7.51957 7.29289 7.70711C7.48043 7.89464 7.73478 8 8 8C8.26522 8 8.51957 7.89464 8.70711 7.70711C8.89464 7.51957 9 7.26522 9 7V6H15V7C15 7.26522 15.1054 7.51957 15.2929 7.70711C15.4804 7.89464 15.7348 8 16 8C16.2652 8 16.5196 7.89464 16.7071 7.70711C16.8946 7.51957 17 7.26522 17 7V6H19C19.2652 6 19.5196 6.10536 19.7071 6.29289C19.8946 6.48043 20 6.73478 20 7V10Z\"\n fill={`${focus.dob ? \"#FBBC5E\" : \"white\"}`}\n />\n </svg>\n </span>\n </div>\n {showCalendar && (\n <div className=\"w-fit absolute top-full left-0 z-10\">\n <HyperCalendar\n minDate={new Date(\"01/01/1900\")}\n maxDate={new Date()}\n onChange={(date) => {\n setselectedDate(\n dateFormat(new Date(date)),\n \"mm/dd/yyyy\"\n );\n setFormData((data) => {\n return {\n ...data,\n dob: date,\n };\n });\n }}\n date={\n isDateValid(new Date(selectedDate))\n ? new Date(selectedDate)\n : null\n }\n />\n </div>\n )}\n {/* {Calender && (\n <div className=\"absolute bg-white text-black top-[51px] z-[4]\">\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DateCalendar\n view={currentCalendarView}\n disableFuture\n defaultValue={dayjs(\"01/01/2000\")}\n value={dayjs(\n `${selectedYear}/${selectedMonth}/${selectedDay}`\n )}\n onChange={(newValue) => handleDate(newValue)}\n onMonthChange={onCalendarMonthChange}\n onYearChange={onCalendarYearChange}\n />\n </LocalizationProvider>\n </div>\n )} */}\n </div>\n {DOBError && (\n <span className=\"text-error text-sm\">{DOBError}</span>\n )}\n </div>\n\n <div className=\"mb-6\">\n <label\n htmlFor=\"Gender\"\n className=\"font-medium text-white/[.80] text-sm\"\n data-testid=\"Gender\"\n >\n Gender\n </label>\n <div className=\"mt-2 flex relative date\" ref={genderDropdownRef}>\n <div\n className={`rounded-lg cursor-pointer w-full bg-transparent border border-white focus:border-[#f6f6f6] font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] ${\n genderError ? \"!border-error\" : \"\"\n } ${\n selectedGender === \"-Select-\"\n ? \"text-slate-400\t\"\n : \"text-white\"\n }`}\n onClick={(e) => toggleGender(e)}\n >\n {selectedGender}\n </div>\n\n <span\n data-testid=\"Gender\"\n className=\"vector absolute right-4 top-1/2 -translate-y-1/2 cursor-pointer text-white\"\n onClick={(e) => toggleGender(e)}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M19 8L12 15L5 8\"\n stroke=\"white\"\n strokeidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n {Gender && (\n <div className=\"absolute w-full top-14 rounded-lg border border-[#FBBC5E] bg-[#332e28] z-[3] overflow-hidden\">\n <div\n className={`w-full bg-transparent focus:border-[#f6f6f6] hover:bg-[#FBBC5E] hover:bg-opacity-10 hover:text-[#FBBC5E] cursor-pointer font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] ${\n formErrors.password ? \"!border-error\" : \"\"\n }`}\n onClick={() => {\n handleGender(\"Male\");\n }}\n >\n Male\n </div>\n <div\n className={` w-full bg-transparent focus:border-[#f6f6f6] hover:bg-[#FBBC5E] hover:bg-opacity-10 hover:text-[#FBBC5E] cursor-pointer font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] ${\n formErrors.password ? \"!border-error\" : \"\"\n }`}\n onClick={() => {\n handleGender(\"Female\");\n }}\n >\n Female\n </div>\n <div\n className={` w-full bg-transparent focus:border-[#f6f6f6] hover:bg-[#FBBC5E] hover:bg-opacity-10 hover:text-[#FBBC5E] cursor-pointer font-normal py-3 px-5 leading-normal font-semibold outline-none pr-[40px] ${\n formErrors.password ? \"!border-error\" : \"\"\n }`}\n onClick={() => {\n handleGender(\"Others\");\n }}\n >\n Other\n </div>\n </div>\n )}\n </div>\n {genderError && (\n <span className=\"text-error text-sm\">Please select gender</span>\n )}\n </div>\n\n <button\n type=\"submit\"\n className=\"font-bold rounded-lg btn-gradient w-full text-black py-3 px-5 flex justify-center\"\n disabled={\n isLoading ||\n is_loading ||\n // hasError ||\n selectedDate === \"MM/DD/YYYY\" ||\n selectedGender === \"-Select-\"\n }\n // disabled={!isFormValid()}\n >\n {isLoading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Save and Next\"\n )}\n </button>\n </form>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default AddDetails;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Select-Preference-Page\n *@developer Shubham K\n */\n\nimport { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"components/Loader/Loader\";\nimport {\n useUpdateUserPreferenceByTokenMutation,\n useGetUserPreferenceByTokenQuery,\n} from \"store/slicer/userProfile\";\nimport { Preferencelist } from \"constant/index.js\";\nimport Alert from \"components/popup/Alert/Alert\";\n\nconst SelectUserPreferences = () => {\n const [allPreferences, setAllPreferences] = useState(null);\n const [prefLoaded, setPrefLoaded] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const navigate = useNavigate();\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n const [submitUserPref, submitUserPrefInfo] =\n useUpdateUserPreferenceByTokenMutation();\n\n let {\n data: fetchedPreferences = [],\n isFetching,\n isSuccess = false,\n isError,\n error,\n } = useGetUserPreferenceByTokenQuery();\n\n // fetching user pref and storing in state\n useEffect(() => {\n if (\n !isFetching &&\n Object.keys(fetchedPreferences).length == 0 &&\n (isError || fetchedPreferences?.response?.statusEnum != 1)\n ) {\n console.log(fetchedPreferences);\n setAlertMessage(\"Something went wrong\");\n setSuccessAlert(false);\n }\n if (\n !isFetching &&\n isSuccess &&\n fetchedPreferences?.response?.statusEnum == 1\n ) {\n fetchedPreferences = fetchedPreferences?.response?.data?.preference;\n if (Object.keys(fetchedPreferences).length > 0) {\n let prefState = {\n ...fetchedPreferences,\n };\n setAllPreferences(prefState);\n setPrefLoaded(true);\n }\n }\n }, [isSuccess, isFetching]);\n\n // checking if form is valid\n useEffect(() => {\n if (allPreferences) {\n let valid = false;\n\n const keys = Object.keys(allPreferences);\n\n for (let i = 0; i < keys.length; i++) {\n if (allPreferences[keys[i]] == 1) {\n valid = true;\n break;\n }\n }\n setIsFormValid(valid);\n }\n });\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n if (!isFormValid) {\n return;\n }\n\n const res = await submitUserPref(allPreferences);\n\n if (res?.data?.response?.statusEnum == 1) {\n // Retrieve the existing userBasicData from localStorage\n const existingData =\n JSON.parse(localStorage.getItem(\"userBasicData\")) || {};\n\n // Merge the existing data with the new formData\n const updatedData = { ...existingData, preferences: allPreferences };\n\n // Update the localStorage with the merged data\n localStorage.setItem(\"userBasicData\", JSON.stringify(updatedData));\n navigate(\"/add-tags\");\n } else {\n setAlertMessage(\"Something went wrong\");\n setSuccessAlert(false);\n }\n };\n\n const onChangeInput = (e) => {\n const statekey = e.target.name;\n let stateValue;\n const checked = e.target.checked;\n\n if (allPreferences[statekey] == 0) {\n stateValue = 1;\n } else {\n stateValue = 0;\n }\n\n let newState = {\n ...allPreferences,\n [statekey]: checked ? 1 : 0,\n };\n\n setAllPreferences(newState);\n };\n\n useEffect(() => {\n // fetching user pref and storing in state\n if (localStorage.getItem(\"userBasicData\")) {\n const userBasicData = JSON.parse(localStorage.getItem(\"userBasicData\"));\n\n if (userBasicData.preferences)\n setAllPreferences(userBasicData.preferences);\n }\n }, []);\n\n return (\n <>\n <Box className=\"w-full max-w-[768px] rounded-lg border border-[#363636] p-5 md:p-[32px] lg:p-[58px] signin-form\">\n <Box className=\"text-white mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[36px]\">\n Let's Setup Your Account\n </h1>\n\n <div className=\"relative flex justify-between items-center mb-[36px] px-0 w-full md:w-3/5 mx-auto\">\n <div className=\"absolute bottom-[53px] left-[35px] h-[2px] w-[calc(50%-35px)] bg-[#FBBC5E] z-0\"></div>\n <div className=\"absolute bottom-[53px] right-[35px] h-[2px] w-[calc(50%-35px)] bg-[#545454] z-0\"></div>\n\n <div className=\"flex flex-col justify-between items-center w-[70px] h-[70px] z-10\">\n <div className=\"text-black h-8 w-8 bg-[#FBBC5E] rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 1\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Add Details\n </p>\n </div>\n\n <div className=\"flex flex-col justify-between items-center min-w-[70px] h-[70px] z-10\">\n <div className=\"text-black bg-[#FBBC5E] h-8 w-8 rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 2\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Select Preferences\n </p>\n </div>\n\n <div className=\"flex flex-col justify-between items-center w-[70px] h-[70px] z-10\">\n <div className=\"text-white bg-[#545454] h-8 w-8 rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 3\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Add Tags\n </p>\n </div>\n </div>\n\n {isSuccess && prefLoaded && (\n <form className=\"auth-form mb-5 w-full\" onSubmit={handleSubmit}>\n <h2 className=\"mb-[32px] text-[18px] font-body font-medium md:pl-10\">\n Select Preferences\n </h2>\n\n <div className=\"grid grid-cols-2 gap-x-10 lg:gap-x-20 md:pl-10 mb-[50px]\">\n {Object.keys(allPreferences).map((item) => {\n let foundKeyValue = Preferencelist.find(\n (i) => i?.key == item\n );\n // check if this key exists in our key value mapping\n if (foundKeyValue != null) {\n return (\n <div key={item} className=\"flex items-center mb-5\">\n <div className=\"relative w-6 h-6 max-[768px]:w-4 max-[768px]:h-4\">\n <input\n className=\"w-full h-full peer opacity-0 accent-[#FBBC5E]\"\n type=\"checkbox\"\n name={item}\n id={`checkbox-${item}`}\n defaultChecked={allPreferences[item] == 1}\n onClick={onChangeInput}\n />\n <div className=\"absolute top-0 left-0 w-full h-full rounded-sm lg:rounded-md border-2 border-white peer-checked:border-0 peer-checked:bg-[#FBBC5E] pointer-events-none\"></div>\n <span className=\"absolute top-0 left-0 w-full h-full opacity-0 peer-checked:opacity-100 grid place-content-center pointer-events-none\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M2.75 8.75L6.25 12.25L13.25 4.75\"\n stroke=\"black\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </span>\n </div>\n {/* <input\n className=\"w-6 h-6 max-[768px]:w-4 max-[768px]:h-4 accent-[#FBBC5E] bg-red-300 rounded-sm\"\n type=\"checkbox\"\n name={item}\n id={`checkbox-${item}`}\n defaultChecked={allPreferences[item] == 1}\n onClick={onChangeInput}\n /> */}\n\n <label\n className=\"text-[16px] font-thin font-body pl-[12px] max-[400px]:text-[8px] max-[768px]:text-[12px] max-[768px]:pl-[6px]\"\n htmlFor={`checkbox-${item}`}\n >\n {foundKeyValue.name}\n </label>\n </div>\n );\n }\n })}\n </div>\n\n <div className=\"flex justify-end px-2\">\n <button\n className=\"py-3 px-7 border-[#fbbc5e] border-[2px] rounded-lg font-body font-bold\"\n disabled={submitUserPrefInfo.isLoading}\n onClick={() => {\n navigate(\"/add-details\");\n }}\n >\n Back\n </button>\n <button\n className=\"ml-4 font-bold rounded-lg btn-gradient text-black py-3 px-5 flex justify-center items-center\"\n type=\"submit\"\n disabled={submitUserPrefInfo.isLoading || !isFormValid}\n >\n {submitUserPrefInfo.isLoading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Save and Next\"\n )}\n </button>\n </div>\n </form>\n )}\n {isFetching && (\n <div className=\"min-h-[360px] grid place-content-center\">\n <Loader />\n </div>\n )}\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default SelectUserPreferences;\n","import React from \"react\";\n\nconst TagsChip = ({\n styleClass,\n keyId,\n text,\n icon,\n onAddHandle,\n onRemoveHandle,\n type,\n}) => {\n return (\n <div\n className={`__tags__chips__card w-max text-center py-[12px] px-[20px] rounded-[20px] ${styleClass} max-[768px]:py-[6px] max-[768px]:px-[10px] cursor-pointer`}\n onClick={\n type === \"ADDED\" ? () => onRemoveHandle(text) : () => onAddHandle(text)\n }\n >\n <div className=\"__content__section flex justify-center gap-[12px]\">\n <span className=\"text-[14px] font-body font-medium max-[768px]:text-[10px]\">\n {text}\n </span>\n <span className=\"hover:cursor-pointer flex flex-col justify-center\">\n <img\n className=\"w-[14px] h-[14px] rounded-[50%] hover:bg-[#00000027] p-[2px]\"\n src={icon}\n alt={`__tags__${type}`}\n />\n </span>\n </div>\n </div>\n );\n};\n\nexport default TagsChip;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Add-Tags-Page\n *@developer Shubham K\n */\n\nimport { useEffect, useState, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Box } from \"@mui/material\";\nimport Loader from \"components/Loader/Loader\";\nimport {\n useUpdateUserTagsByTokenMutation,\n useGetUserSuggestedTagsByTokenQuery,\n} from \"store/slicer/userProfile\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport TagsChip from \"components/partials/TagsChip\";\nimport CloseTagIcon from \"assets/images/cross_tag.png\";\nimport PlusTagIcon from \"assets/images/plus_tag.png\";\n\n// This function renders a list of suggested tags and allows to add or remove new tags\nconst AddTags = () => {\n const [suggestedTags, setSuggestedTags] = useState([]);\n const [addedTags, setAddedTags] = useState([]);\n const [isFormValid, setIsFormValid] = useState(false);\n const inputRef = useRef(null);\n const navigate = useNavigate();\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n const [submitUserTags, submitUserTagsInfo] =\n useUpdateUserTagsByTokenMutation();\n\n let {\n data: fetchedTags = [],\n isFetching,\n isSuccess = false,\n isError,\n error,\n } = useGetUserSuggestedTagsByTokenQuery();\n\n // fetching suggested tags and storing in state\n useEffect(() => {\n if (!isFetching && isSuccess && fetchedTags?.response?.statusEnum == 1) {\n let ft = fetchedTags?.response?.data?.tags;\n // create a copy\n ft = ft.slice();\n if (ft.length > 0) {\n setSuggestedTags(ft);\n }\n }\n }, [isSuccess, isFetching]);\n\n // checking if form is valid\n useEffect(() => {\n let valid = false;\n if (addedTags && addedTags.length > 0) {\n valid = true;\n }\n setIsFormValid(valid);\n });\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n if (!isFormValid) {\n return;\n }\n\n const res = await submitUserTags(addedTags);\n\n if (res?.data?.response?.statusEnum == 1) {\n // Retrieve the existing userBasicData from localStorage\n const existingData =\n JSON.parse(localStorage.getItem(\"userBasicData\")) || {};\n\n // Merge the existing data with the new formData\n const updatedData = { ...existingData, tags: addedTags };\n\n // Update the localStorage with the merged data\n localStorage.setItem(\"userBasicData\", JSON.stringify(updatedData));\n navigate(\"/onboarding-complete\");\n } else {\n setAlertMessage(\"Something went wrong\");\n setSuccessAlert(false);\n }\n };\n\n const updateSelectedTags = (tagName) => {\n // tag is already added\n if (addedTags.indexOf(tagName.trim()) != -1) {\n return;\n }\n if (typeof tagName == \"string\" && tagName.trim().length > 0) {\n const newAddedTags = addedTags.slice();\n newAddedTags.push(tagName);\n setAddedTags(newAddedTags);\n\n // remove the tag from suggested tags\n const newSuggestedTags = suggestedTags.filter(\n (item) => item.trim() != tagName.trim()\n );\n setSuggestedTags(newSuggestedTags);\n }\n };\n\n const removeTag = (tagName) => {\n // removing tag from addedTags\n let newAddedTags = addedTags.filter(\n (item) => item.trim() != tagName.trim()\n );\n setAddedTags(newAddedTags);\n\n // adding it back to suggested tags if it was there originally\n let ft = fetchedTags?.response?.data?.tags;\n if (Array.isArray(ft) && ft.indexOf(tagName) != -1) {\n let newSuggestedTags = suggestedTags.slice();\n newSuggestedTags.push(tagName.trim());\n setSuggestedTags(newSuggestedTags);\n }\n };\n\n useEffect(() => {\n // fetching user pref and storing in state\n if (localStorage.getItem(\"userBasicData\")) {\n const userBasicData = JSON.parse(localStorage.getItem(\"userBasicData\"));\n\n if (userBasicData.tags)\n setAddedTags(userBasicData.tags);\n }\n }, []);\n\n return (\n <>\n {/* <div className=\"absolute z-20 w-screen h-full bg-black\"></div> */}\n <Box className=\"w-full max-w-[768px] rounded-lg border border-[#363636] p-5 md:p-[32px] lg:p-[58px] signin-form\">\n <Box className=\"text-white mx-auto\">\n <h1 className=\"text-lg lg:text-xl text-center font-heading mb-[36px]\">\n Let's Setup Your Account\n </h1>\n\n <div className=\"relative flex justify-between items-center mb-[36px] px-0 w-full md:w-3/5 mx-auto\">\n <div className=\"absolute bottom-[53px] left-[35px] h-[2px] w-[calc(50%-35px)] bg-[#FBBC5E] z-0\"></div>\n <div className=\"absolute bottom-[53px] right-[35px] h-[2px] w-[calc(50%-35px)] bg-[#FBBC5E] z-0\"></div>\n\n <div className=\"flex flex-col justify-between items-center w-[70px] h-[70px] z-10\">\n <div className=\"text-black h-8 w-8 bg-[#FBBC5E] rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 1\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Add Details\n </p>\n </div>\n\n <div className=\"flex flex-col justify-between items-center min-w-[70px] h-[70px] z-10\">\n <div className=\"text-black bg-[#FBBC5E] h-8 w-8 rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 2\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Select Preferences\n </p>\n </div>\n\n <div className=\"flex flex-col justify-between items-center w-[70px] h-[70px] z-10\">\n <div className=\"text-black bg-[#FBBC5E] h-8 w-8 rounded-full grid place-content-center text-[16px] font-bold font-Inter\">\n 3\n </div>\n <p className=\"text-white text-center font-normal mt-1 text-[8px] whitespace-nowrap md:text-[12px] font-body\">\n Add Tags\n </p>\n </div>\n </div>\n\n <form className=\"auth-form mb-5 w-full \" onSubmit={handleSubmit}>\n <div className=\"__tags__section mb-[50px]\">\n <h5 className=\"font-heading text-[16px] max-[768px]:text-[13px]\">\n Tell us more about your preferences\n </h5>\n\n <h5 className=\"font-body font-light text-[16px] pt-[30px] max-[768px]:text-[13px] max-[768px]:pt-[15px]\">\n Added tags:\n </h5>\n\n <div className=\"__added__tags__container__main w-[80%] max-[768px]:w-full flex flex-wrap justify-start gap-[12px] pt-[34px] max-[768px]:pt-[17px]\">\n {addedTags?.map((item, ind) => {\n return (\n <TagsChip\n key={item}\n styleClass=\"bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133]\"\n text={item}\n icon={CloseTagIcon}\n onRemoveHandle={() => {\n removeTag(item);\n }}\n type=\"ADDED\"\n />\n );\n })}\n </div>\n\n <h5 className=\"font-body font-light text-[16px] pt-[30px] max-[768px]:text-[13px] max-[768px]:pt-[15px]\">\n Add tags:\n </h5>\n\n <div className=\"__add__tags__container pt-[16px]\">\n <input\n ref={inputRef}\n type=\"text\"\n placeholder=\"Add tags...\"\n className=\"w-[90%] max-[768px]:w-full grow-[2] rounded-[8px] py-[8px] text-[14px] font-light px-[13px] focus:outline-none border border-[#FBBC5E] bg-transparent\"\n onKeyDown={(e) => {\n if (e.key.toLowerCase() == \"enter\") {\n e.preventDefault();\n updateSelectedTags(inputRef.current.value);\n inputRef.current.value = \"\";\n e.target.focus();\n }\n }}\n />\n <button\n className=\"ml-[-50px] text-[16px] text-[#FBBC5E] font-semibold\"\n onClick={() => {\n updateSelectedTags(inputRef.current.value);\n inputRef.current.value = \"\";\n }}\n type=\"button\"\n >\n Add\n </button>\n </div>\n\n <h5 className=\"font-body font-light text-[16px] pt-[30px] max-[768px]:text-[13px] max-[768px]:pt-[15px]\">\n Suggested tags:\n </h5>\n\n <div className=\"__added__tags__container__main w-full max-[768px]:w-full flex flex-wrap justify-start gap-[12px] pt-[34px] max-[768px]:pt-[17px]\">\n {isFetching ? (\n <div className=\"h-[250px] w-full grid place-content-center\">\n <Loader />\n </div>\n ) : (\n suggestedTags?.map((item, ind) => {\n return (\n <TagsChip\n key={item}\n styleClass=\"bg-[#262422]\"\n text={item}\n icon={PlusTagIcon}\n onAddHandle={() => {\n updateSelectedTags(item);\n }}\n type=\"SUGGESTED\"\n />\n );\n })\n )}\n </div>\n </div>\n\n <div className=\"flex justify-end px-2\">\n <button\n className=\"py-3 px-7 border-[#fbbc5e] border-[2px] rounded-lg font-body font-bold\"\n disabled={submitUserTagsInfo.isLoading}\n onClick={() => {\n navigate(\"/select-preferences\");\n }}\n type=\"button\"\n >\n Back\n </button>\n <button\n className=\"ml-4 font-bold rounded-lg btn-gradient text-black py-3 px-5 flex justify-center items-center\"\n type=\"submit\"\n disabled={submitUserTagsInfo.isLoading || !isFormValid}\n >\n {submitUserTagsInfo.isLoading ? (\n <>\n <svg\n className=\"animate-spin -ml-1 mr-3 h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n Processing...\n </>\n ) : (\n \"Save and Next\"\n )}\n </button>\n </div>\n </form>\n </Box>\n </Box>\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </>\n );\n};\n\nexport default AddTags;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Onboarding-Complete-Page\n *@developer Shubham K\n */\n\nimport { useNavigate } from \"react-router-dom\";\nimport CheckIcon from \"assets/images/check-onboarding.png\";\n\nconst OnboardingComplete = () => {\n const navigate = useNavigate();\n\n return (\n <div className=\"py-20 px-24 rounded-lg bg-[#dfdfdf]/10 backdrop-blur-[2px]\">\n <div className=\"mx-auto h-[58px] w-[58px] rounded-full mb-8\">\n <img className=\"h-full w-full object-cover\" src={CheckIcon} alt=\"\" />\n </div>\n\n <div>\n <h1 className=\"text-[20px] font-heading text-center mb-8\">\n You're All Set!\n </h1>\n </div>\n <p className=\"text-center text-[18px] leading-[32.35px] font-body mb-8 lg:max-w-[75%] mx-auto\">\n Begin your metaverse journey now. Explore, customize and enjoy your\n Virtual world!\n </p>\n <button\n className=\"mx-auto font-bold rounded-lg btn-gradient text-black py-3 px-10 flex justify-center\"\n onClick={() => {\n localStorage.removeItem(\"userBasicData\")\n navigate(\"/\");\n }}\n >\n Let's Begin\n </button>\n </div>\n );\n};\n\nexport default OnboardingComplete;\n","import { createApi, fetchBaseQuery } from \"@reduxjs/toolkit/query/react\";\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\n// Custom base query with error handling\nimport { baseQueryWithReauth } from \"constant/api/apiInstance\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Help-Center\n *@developer Amardeep Singh\n */\n\n// Handling State function or logics of my orders Module\n// Replace the CreateSlice method with RTK function - createAPI for storing api data directly into slicer\nexport const HelpCenter = createApi({\n reducerPath: \"HelpCenter\",\n baseQuery: baseQueryWithReauth({\n baseUrl: BASE_URL,\n prepareHeaders: (headers, { getState }) => {\n const token = localStorage.getItem(\"accessToken\") || \"\";\n headers.set(\"Content-type\", \"application/json; charset=UTF-8\");\n if (token) {\n headers.set(\"Authorization\", `Bearer ${token}`);\n }\n return headers;\n },\n }),\n endpoints: (builder) => ({\n AddTicket: builder.mutation({\n query: (payload) => ({\n url: EndpointsSlug.SEND_FEEDBACK,\n method: \"POST\",\n body: payload,\n }),\n }),\n GetTicketList: builder.query({\n query: ({ page, limit }) => ({\n url: EndpointsSlug.GET_TICKET_LIST,\n method: \"GET\",\n params: { page, limit },\n }),\n }),\n }),\n});\n\nexport const { useAddTicketMutation, useGetTicketListQuery } = HelpCenter;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Local-Redux-Store\n *@developer Aditya P\n *@desc Handling Local state management for FourthStar Project\n */\n\nimport { configureStore } from \"@reduxjs/toolkit\";\nimport { setupListeners } from \"@reduxjs/toolkit/query\";\nimport { UserProfile } from \"./slicer/userProfile\";\nimport { UserFriend } from \"./slicer/friends\";\nimport { EntertainmentSlice } from \"./slicer/Entertainment\";\nimport { UserAssets } from \"./slicer/userAssets\";\nimport { CreatorSlice } from \"./slicer/Creator\";\nimport { UserNotification } from \"./slicer/notification\";\nimport { AnalyticsSlice } from \"./slicer/Analytics\";\nimport { AdminSlice } from \"./slicer/Admin\";\nimport { ApartmentSlice } from \"./slicer/Apartments\";\nimport { CartSlice } from \"./slicer/Cart\";\nimport { EventsSlice } from \"./slicer/Events\";\nimport { IapSlice } from \"./slicer/Iap\";\nimport { MarketplaceSlice } from \"./slicer/Marketplace\";\nimport { MyOrders } from \"./slicer/MyOrders\";\nimport { UserSubscriptions } from \"./slicer/MyAssets/Subscriptions\";\nimport { HelpCenter } from \"./slicer/HelpCenter\";\nimport { ShipSlice } from \"./slicer/Ships\";\n\n// We use all related local API calls for different modules and section of the pages\n// Configure the middleware and dynamic reducer function name according to your API needs\nexport const LocalStore = configureStore({\n reducer: {\n [UserProfile.reducerPath]: UserProfile.reducer,\n [UserFriend.reducerPath]: UserFriend.reducer,\n [EntertainmentSlice.reducerPath]: EntertainmentSlice.reducer,\n [CreatorSlice.reducerPath]: CreatorSlice.reducer,\n [UserAssets.reducerPath]: UserAssets.reducer,\n [UserNotification.reducerPath]: UserNotification.reducer,\n [AnalyticsSlice.reducerPath]: AnalyticsSlice.reducer,\n [AdminSlice.reducerPath]: AdminSlice.reducer,\n [ApartmentSlice.reducerPath]: ApartmentSlice.reducer,\n [CartSlice.reducerPath]: CartSlice.reducer,\n [EventsSlice.reducerPath]: EventsSlice.reducer,\n [IapSlice.reducerPath]: IapSlice.reducer,\n [MarketplaceSlice.reducerPath]: MarketplaceSlice.reducer,\n [MyOrders.reducerPath]: MyOrders.reducer,\n [UserSubscriptions.reducerPath]: UserSubscriptions.reducer,\n [HelpCenter.reducerPath]: HelpCenter.reducer,\n [ShipSlice.reducerPath]: ShipSlice.reducer,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware()\n .concat(UserProfile.middleware)\n .concat(UserFriend.middleware)\n .concat(EntertainmentSlice.middleware)\n .concat(CreatorSlice.middleware)\n .concat(UserAssets.middleware)\n .concat(UserNotification.middleware)\n .concat(AnalyticsSlice.middleware)\n .concat(AdminSlice.middleware)\n .concat(ApartmentSlice.middleware)\n .concat(CartSlice.middleware)\n .concat(IapSlice.middleware)\n .concat(MarketplaceSlice.middleware)\n .concat(EventsSlice.middleware)\n .concat(MyOrders.middleware)\n .concat(UserSubscriptions.middleware)\n .concat(HelpCenter.middleware)\n .concat(ShipSlice.middleware),\n});\n\nsetupListeners(LocalStore.dispatch);\n","import { useSelector } from \"react-redux\";\nimport { Provider } from \"react-redux\";\nimport { LocalStore } from \"store/LocalStore\";\nimport { Navigate, useLocation } from \"react-router-dom\";\n\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Protected-Route-Wrapper\n *@developer Aditya P\n */\n\nconst ProtectedRoute = ({ children }) => {\n const { userInfo, userToken } = useSelector((state) => state.auth);\n const location = useLocation();\n \n if(!userToken && !userInfo){\n return <Navigate to=\"/\" state={{from: location}} replace />\n }\n\n return <Provider store={LocalStore}>\n {children}\n </Provider>\n};\n\nexport default ProtectedRoute;\n","import React, { useState } from \"react\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { Link, NavLink } from \"react-router-dom\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-My-Transaction-Component\n *@developer Aditya P\n */\n\n// Default Transaction Data\nconst UserTransaction = [\n {\n transactionId: \"TRX987654321\",\n tr_name: \"Apartment- Astral Suite\",\n price: \"USD 25.97\",\n time: \"12/10/2023, 12:39 PM\",\n paymentMethod: \"Rapyd\",\n tr_status: true,\n tr_remark: null,\n },\n {\n transactionId: \"TRX987654321\",\n tr_name: \"360 video- Skydiving into black hole\",\n price: \"USD 25.97\",\n time: \"12/10/2023, 12:39 PM\",\n paymentMethod: \"Credit\",\n tr_status: false,\n tr_remark: \"Refund successful\",\n },\n {\n transactionId: \"TRX987654321\",\n tr_name: \"Apartment- Astral Suite\",\n price: \"USD 25.97\",\n time: \"12/10/2023, 12:39 PM\",\n paymentMethod: \"Rapyd\",\n tr_status_msg: \"Success\",\n tr_status: true,\n tr_remark: null,\n },\n {\n transactionId: \"TRX987654321\",\n tr_name: \"Apartment- Astral Suite\",\n price: \"USD 25.97\",\n time: \"12/10/2023, 12:39 PM\",\n paymentMethod: \"Rapyd\",\n tr_status_msg: \"Success\",\n tr_status: true,\n tr_remark: null,\n },\n {\n transactionId: \"TRX987654321\",\n tr_name: \"Apartment- Astral Suite\",\n price: \"USD 25.97\",\n time: \"12/10/2023, 12:39 PM\",\n paymentMethod: \"Rapyd\",\n tr_status_msg: \"Success\",\n tr_status: true,\n tr_remark: null,\n },\n];\n\nconst MyTransaction = () => {\n const [isTransactionAvailable, setTransaction] = useState(true);\n\n return (\n <div className=\"__my_transaction__container__main mb-[100px] container mx-auto px-[100px] py-[60px] h-[100vh] max-[768px]:px-[15px] max-[768px]:py-[40px] max-[1280px]:px-[15px] relative\">\n <ShadowFrame className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <ShadowFrame className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <div className=\"__transaction__header__main relative\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[18px]\">\n Transactions\n </h4>\n <h5 className=\"font-body text-[18px] font-medium pt-[40px] underline underline-offset-8 decoration-[#FBBC5E] max-[768px]:text-[15px] max-[768px]:pt-[25px]\">\n All Transactions\n </h5>\n {isTransactionAvailable ? (\n <></>\n ) : (\n <hr className=\"mt-[24px] border-[0.1px] border-[#5A5A5A80]\" />\n )}\n </div>\n <div className=\"__transaction__content__main h-[90%] relative\">\n {isTransactionAvailable ? (\n <div className=\"__transaction__table__content_main w-[100%] mt-[24px] overflow-x-scroll\">\n <table className=\"table-auto w-full\">\n <thead className=\"bg-[#2E2E2E]\">\n <tr className=\"[&>th]:text-[#FFFFFF99] [&>th]:font-normal [&>th]:text-[12px] [&>th]:text-left [&>th]:px-[10px] [&>th]:py-[10px]\">\n <th>Asset Category & name</th>\n <th>Price</th>\n <th>Date & time</th>\n <th>Method</th>\n <th>Transaction ID</th>\n <th>Transaction Status</th>\n <th>Remark</th>\n </tr>\n </thead>\n <tbody>\n {UserTransaction.map((_tr, index) => {\n return (\n <tr\n key={index}\n className=\"[&>td]:px-[10px] [&>td]:py-[18px] [&>td]:text-[14px] [&>td]:border-b [&>td]:border-b-[#5A5A5A80]\"\n >\n <td className=\"text-[#FBBC5E] w-[30%] max-[768px]:w-[300px]\">\n <Link to=\"#\">\n <span className=\"hover:cursor-pointer hover:underline\">\n {_tr?.tr_name}\n </span>\n </Link>\n </td>\n <td>{_tr?.price}</td>\n <td>{_tr?.time}</td>\n <td>{_tr?.paymentMethod}</td>\n <td>{_tr?.transactionId}</td>\n <td>\n {_tr?.tr_status ? (\n <span className=\"text-[#56AA6D] font-medium\">\n Success\n </span>\n ) : (\n <span className=\"text-[#FF6458] font-medium\">\n Failed\n </span>\n )}\n </td>\n <td>{_tr?.tr_remark === null ? \"-\" : _tr?.tr_remark}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n ) : (\n <div className=\"__transaction__empty__container flex flex-col justify-center items-center h-[100%] max-[768px]:justify-start max-[768px]:pt-[30px] max-[1280px]:pt-[30px] max-[1280px]:justify-start\">\n <span className=\"text-[#FFFFFF99] text-[16px] font-medium font-body max-[768px]:text-[14px]\">\n You don't have any transactions yet.\n </span>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default MyTransaction;\n","import React, { useEffect,useRef } from \"react\";\nimport { useState } from \"react\";\nimport { useGetUserPreferenceByTokenQuery } from \"store/slicer/userProfile\";\nimport Loader from \"components/Loader/Loader\";\n\nconst PreferenceList = ({list, changeInput, listStateFunction}) => {\n\n const {data, isLoading, error, refetch} = useGetUserPreferenceByTokenQuery({ count: 1 },\n { refetchOnMountOrArgChange: true })\n const checkInputRef = useRef([])\n\n useEffect(() => {\n if(data){\n listStateFunction(() => {\n return data?.response?.data?.preference\n })\n }\n },[data])\n\n return (\n isLoading ? <div className=\"py-[30px]\"><Loader/></div> : <div className=\"__checkboxes__list__container py-[48px] grid grid-cols-2 gap-x-[200px] max-[768px]:gap-x-[50px] max-[768px]:py-[30px] max-[1980px]:gap-x-[100px] gap-y-[8px]\">\n {list.map((__list, ind) => {\n return (\n <div key={ind} className={`__checkbox_${ind}`}>\n <input\n ref={checkInputRef}\n // checked={defaultList[__list?.key] === 1 ? \"checked\" : \"\"}\n // __list?.key === data?.response?.data?.preference[__list?.key] ? check : ''\n name={__list?.key}\n onChange={(e) => changeInput(e)}\n type=\"checkbox\"\n defaultChecked={(data?.response?.data?.preference[__list?.key] === 1) ? \"checked\" : \"\"}\n id={`checkbox${ind}`}\n className=\"\n w-5 h-5\n max-[768px]:w-4\n max-[768px]:h-4\n relative\n bottom-[1px]\n align-middle\n accent-[#FBBC5E]\n \"\n />\n <label\n htmlFor=\"checkbox0\"\n className=\"text-[15px] font-medium font-body pl-[12px] max-[768px]:text-[12px] max-[768px]:pl-[6px]\"\n >\n {__list?.name}\n </label>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default PreferenceList;\n","import React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport PreferenceList from \"components/partials/PreferenceList\";\nimport { Preferencelist } from \"constant\";\nimport TagsChip from \"components/partials/TagsChip\";\nimport CloseTagIcon from \"assets/images/cross_tag.png\";\nimport PlusTagIcon from \"assets/images/plus_tag.png\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport {\n useGetUserTagsByTokenQuery,\n useGetUserSuggestedTagsByTokenQuery,\n useUpdateUserTagsByTokenMutation,\n} from \"store/slicer/userProfile\";\nimport Loader from \"components/Loader/Loader\";\nimport { useUpdateUserPreferenceByTokenMutation } from \"store/slicer/userProfile\";\nimport ModalClose from \"assets/images/myassets/charm_cross.png\";\nimport Alert from \"components/popup/Alert/Alert\";\n\nconst MyPreference = () => {\n const { data, isLoading, error } = useGetUserTagsByTokenQuery(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n const {\n data: suggestedData,\n isLoading: suggestedLoading,\n error: suggestedError,\n } = useGetUserSuggestedTagsByTokenQuery();\n\n const [updateUsertagsQuery, { isLoading: updateLoader }] =\n useUpdateUserTagsByTokenMutation(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const [\n updateUserPrefereneceQuery,\n { isLoading: updatePLoader, refetch: Prefetch },\n ] = useUpdateUserPreferenceByTokenMutation(\n { count: 1 },\n { refetchOnMountOrArgChange: true }\n );\n\n const [tags, setTags] = useState(\"\");\n const [addTags, setAddTags] = useState([]);\n const [suggestedTags, setSuggestedTags] = useState([]);\n const [defaultList, setDefaultList] = useState({\n musicNEntertainment: 0,\n fashionNStyle: 0,\n socialVREvents: 0,\n spaceNScifi: 0,\n meditationNMindfulness: 0,\n astronomyNSpace: 0,\n travelExplorer: 0,\n artNDesign: 0,\n gamingNSports: 0,\n digitalFashionNAvatars: 0,\n nft: 0,\n digitalAssetTrading: 0,\n techNGadgets: 0,\n cryptocurrencyInvestments: 0,\n holographicTechnology: 0,\n blockchainGaming: 0,\n virtualRealEstate: 0,\n immersiveStorytelling: 0,\n });\n\n const [userError, setUserError] = useState(\"\");\n const [openErrorModal, setErrorModal] = useState(false);\n\n // console.log(suggestedData);\n\n const navigate = useNavigate();\n\n // handle open and close ebent for error modal\n const handleModalEvent = () => {\n setErrorModal(!openErrorModal);\n };\n\n const handleAddTagsSubmit = (e) => {\n e.preventDefault();\n if (tags.length === 0) return;\n if (addTags?.includes(tags?.toLowerCase())) {\n setErrorModal(!openErrorModal);\n setUserError(`\"${tags}\" is already added to the list`);\n return;\n }\n // console.log('aditya')\n let tempArr = [\n ...addTags.slice(0, addTags.length - 1),\n ...addTags.slice(addTags.length - 1),\n tags,\n ];\n setAddTags(tempArr);\n setTags(\"\");\n setUserError(\"\");\n };\n\n useEffect(() => {\n setAddTags(data?.response?.data?.tags);\n setSuggestedTags(suggestedData?.response?.data?.tags);\n }, [data, suggestedData]);\n\n const handleOnchangePreferneceList = (e) => {\n const checkboxKey = e.target.name;\n const isChecked = e.target.checked;\n\n setDefaultList(() => {\n return {\n ...defaultList,\n [checkboxKey]: isChecked ? 1 : 0,\n };\n });\n };\n\n const handleOnSave = (e) => {\n e.preventDefault();\n updateUserPrefereneceQuery(defaultList)\n .then((res) => {\n if (res.data.response.statusEnum === 1) {\n // console.log(res.data)\n Prefetch();\n navigate(\"/me\");\n }\n })\n .catch((err) => {\n console.log(err);\n });\n\n updateUsertagsQuery(addTags)\n .then((res) => {\n if (res.data.response.statusEnum === 1) {\n navigate(\"/me\");\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const OnRemoveUserTags = (tagName) => {\n let removeAddtags = addTags.filter((item) => item.trim() != tagName.trim());\n setAddTags(removeAddtags);\n };\n\n const onAddUserTags = (tagName) => {\n if (addTags?.includes(tagName)) {\n setErrorModal(!openErrorModal);\n setUserError(`\"${tagName}\" is already added to the list`);\n return;\n }\n\n let tempArr = [\n ...addTags.slice(0, addTags.length - 1),\n ...addTags.slice(addTags.length - 1),\n tagName,\n ];\n\n let removeSuggestedTags = suggestedTags.filter(\n (item) => item.trim() != tagName.trim()\n );\n setSuggestedTags(removeSuggestedTags);\n setAddTags(tempArr);\n setUserError(\"\");\n };\n\n const handleFilterSuggestedtags = () => {\n return suggestedTags?.filter((item, ind) => !addTags?.includes(item));\n };\n\n return (\n <>\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[350px] md:w-[450px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[20%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n data-testid=\"shadow-frame\"\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <div className=\"__preference&tags__container__main py-[100px] px-[12%] max-[1280px]:px-[6%] max-[768px]:py-[60px] max-[768px]:px-[5%]\">\n <div className=\"__back__section\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </div>\n\n <div className=\"__user__preference\">\n <h4 className=\"font-heading text-[20px] py-[43px] max-[768px]:py-[25px] max-[768px]:text-[16px]\">\n Preferences and Tags\n </h4>\n\n <form>\n <div className=\"__preferences__section\">\n <h5 className=\"font-heading text-[16px] max-[768px]:text-[13px]\">\n 1. Select your preferences\n </h5>\n <PreferenceList\n list={Preferencelist}\n changeInput={handleOnchangePreferneceList}\n listStateFunction={setDefaultList}\n />\n </div>\n\n <div className=\"__tags__section\">\n <h5 className=\"font-heading text-[16px] max-[768px]:text-[13px]\">\n 2. Tell us more about your preferences\n </h5>\n\n <h5 className=\"font-body font-light text-[16px] pt-[30px] max-[768px]:text-[13px] max-[768px]:pt-[15px]\">\n Added tags:\n </h5>\n\n <div className=\"__added__tags__container__main w-[80%] max-[768px]:w-full flex flex-wrap justify-start gap-[12px] pt-[34px] max-[768px]:pt-[17px]\">\n {isLoading ? (\n <Loader />\n ) : (\n addTags?.map((item, ind) => {\n return (\n <TagsChip\n keyId={ind}\n styleClass=\"bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133]\"\n text={item}\n icon={CloseTagIcon}\n onRemoveHandle={OnRemoveUserTags}\n type=\"ADDED\"\n />\n );\n })\n )}\n </div>\n\n <h5 className=\"font-body font-light text-[16px] pt-[30px] max-[768px]:text-[13px] max-[768px]:pt-[15px]\">\n Add tags:\n </h5>\n\n <div className=\"__add__tags__container pt-[16px]\">\n <input\n type=\"text\"\n onChange={(e) => setTags(e.target.value)}\n value={tags}\n placeholder=\"Add tags...\"\n className=\"w-[80%] max-[768px]:w-full grow-[2] rounded-[8px] py-[8px] text-[14px] font-light px-[13px] focus:outline-none border border-[#FBBC5E] bg-transparent\"\n />\n <button\n onClick={handleAddTagsSubmit}\n className=\"ml-[-50px] text-[16px] text-[#FBBC5E] font-semibold\"\n >\n Add\n </button>\n {updateLoader ? (\n <span>\n <Loader />\n </span>\n ) : (\n <></>\n )}\n </div>\n\n <h5 className=\"font-body font-light text-[16px] pt-[30px] max-[768px]:text-[13px] max-[768px]:pt-[15px]\">\n Suggested tags:\n </h5>\n\n <div className=\"__added__tags__container__main w-[80%] max-[768px]:w-full flex flex-wrap justify-start gap-[12px] pt-[34px] max-[768px]:pt-[17px]\">\n {suggestedLoading ? (\n <Loader />\n ) : (\n handleFilterSuggestedtags()?.map((item, ind) => {\n return (\n <TagsChip\n keyId={ind}\n styleClass=\"bg-[#262422]\"\n text={item}\n icon={PlusTagIcon}\n onAddHandle={onAddUserTags}\n type=\"SUGGESTED\"\n />\n );\n })\n )}\n </div>\n </div>\n <div className=\"__save__button__container pt-[50px]\">\n <button\n onClick={handleOnSave}\n className=\"bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] rounded-[8px] py-[7px] px-[30px] text-[#000] text-[16px] font-semibold\"\n >\n {updatePLoader ? \"Updating...\" : \"Save\"}\n </button>\n </div>\n </form>\n </div>\n </div>\n {openErrorModal ? (\n <Alert\n open={openErrorModal}\n onClose={handleModalEvent}\n message={userError}\n heading={\"\"}\n isSuccess={false}\n />\n ) : (\n \"\"\n )}\n </>\n );\n};\n\nexport default MyPreference;\n","import Flag from \"components/report/Flag\";\nimport React, { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Zoom } from \"react-reveal\";\nimport BuyCards from \"components/buy-cards\";\nimport GamingDetailBanner from \"assets/images/gaming_detail_banner.png\";\nimport GamingProfileImg from \"assets/images/gaming_detail_profile_img.png\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport SneakyPeak from \"components/carousel/SneakyPeak\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\n\nconst mostTrending = [\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"1\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"2\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"3\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"4\",\n },\n {\n title: \"StellarVerse Spectacle: Cosmic Symphony\",\n productType: \"Paid\",\n price: \"Buy @US$ 9.99\",\n id: \"5\",\n },\n];\nconst GameCategoryDetail = () => {\n const navigate = useNavigate();\n const [IstooltipHover, setTooltipHover] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const handleClick = (e) => {\n if (e === \"MyAsset\") {\n // setContentType(\"MyAsset\");\n }\n if (e === \"Premium\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n if (e === \"BuyNow\") {\n setShowComingSoonPopup(true);\n // This will open popup for purchasing when implemented, do not remove this will be used later\n // setOpen(true);\n }\n };\n\n return (\n <>\n <div className=\"px-4 mt-[13px]\">\n <div className=\"__back__section flex justify-between\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n\n {/* <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n data-testid=\"report-button\"\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this asset\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div> */}\n </div>\n </div>\n\n <div className=\"relative px-4 mb-[140px] max-[768px]:mb-[50px] flex flex-col lg:flex-row py-[16px] max-[1280px]:py-[25px] gap-4\">\n <div className=\"w-[100%] lg:w-[59%] max-[1024px]:w-auto max-[1024px]:p-0 max-[1280px]:p-0 \">\n <div className=\" mb-6 md:mb-[19px] z-10 relative rounded flex justify-center items-center\">\n <Zoom>\n <img\n src={GamingDetailBanner}\n alt=\"Network Problem\"\n className=\"h-full w-full object-cover aspect-[826/380]\"\n />\n </Zoom>\n <Zoom delay={500}></Zoom>\n </div>\n <div className=\"relative\">\n <div className=\"volumetric-card-left-shadow \"></div>\n <div className=\"lg:flex jusitfy-between mb-[21px] relative z-10 gap-10 md:gap-8 lg:gap-14 pt-[36px] max-[768px]:pt-[16px]\">\n <div className=\"__music__detail__description__main\">\n <div className=\"__header__main\">\n <span className=\"font-body font-medium text-[#FFFFFF66] text-[14px]\">\n Description:\n </span>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFE5] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n In the distant reaches of the cosmos, a fierce conflict\n unfolds. Engage in epic battles across galaxies, commanding\n powerful starships and leading your army to victory. Cosmic\n Warfare: Galactic Battles is a thrilling space-themed war\n game where strategic maneuvers and tactical decisions will\n determine the fate of the universe. Immerse yourself in\n stunning visuals, engage in intense dogfights, and unleash\n devastating weapons upon your enemies. Read more\n </p>\n </div>\n\n <div className=\"__header__main pt-[30px]\">\n <h4 className=\"font-heading font-medium text-[#FFFFFF] text-[24px]\">\n Game Features\n </h4>\n <ul className=\"py-[25px] list-disc [&>li]:text-[15px] [&>li]:text-[#FFFFFFE5] pl-[20px]\">\n <li>\n Engage in intense space battles against players from\n around the world\n </li>\n <li>\n Upgrade and customize your spaceship with advanced weapons\n and equipment\n </li>\n <li>\n Explore stunning and immersive interstellar environments\n </li>\n <li>\n Team up with friends and form alliances to dominate the\n cosmic battleground\n </li>\n <li>\n Experience fast-paced dogfights and strategic gameplay\n </li>\n <li>Unleash powerful futuristic weapons and abilities</li>\n <li>\n Compete in epic multiplayer tournaments and climb the\n ranks\n </li>\n <li>\n Immerse yourself in a visually stunning and dynamic\n universe\n </li>\n <li>\n Become a legendary space pilot and leave your mark in the\n cosmic warfare\n </li>\n </ul>\n </div>\n {/* <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n witness celestial wonders\n </h4>\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n Celestial melodies by artist will take you on an\n interstellar journey. Experience her enchanting performance\n that transcends galaxies. Get ready to be captivated by her\n celestial talent.\n </p>\n </div>\n\n <div className=\"__header__main pt-[30px]\">\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n Galactic Soundscapes\n </h4>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n Journey through the cosmos with electrifying performances by\n interstellar musicians. Witness the fusion of music and\n technology in an otherworldly setting, where soundwaves\n transcend the boundaries of space.\n </p>\n </div>\n\n <div className=\"__header__main pt-[30px]\">\n <h4 className=\"text-[20px] font-semibold font-body pt-[9px]\">\n Dynamic Perspectives\n </h4>\n </div>\n <div className=\"__description__main pr-[40px] max-[768px]:p-0\">\n <p className=\"text-[15px] text-[#FFFFFFCC] pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n Experience a new level of storytelling with dynamic\n perspectives. As the viewer, you have control over where to\n look, allowing you to focus on the details that interest you\n the most.\n </p>\n </div> */}\n </div>\n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n </div>\n <div className=\" w-[100%] lg:w-[41%] max-[1024px]:w-auto max-[1024px]:h-auto max-[1024px]:mt-[18px]\">\n <div className=\"__entertainment_assets_heading flex flex-col mb-[16px] lg:mb-[20px] sm:flex justify-between px-[30px] max-[768px]:p-0\">\n <div className=\"__heading__profile__image border w-max rounded-[16px]\">\n <img\n src={GamingProfileImg}\n className=\"w-[190px] h-[210px] rounded-[16px]\"\n alt=\"gaming__profile__img\"\n />\n </div>\n <div className=\"__heading leading-[40px] pt-[17px] pr-[30px]\">\n <h4 className=\"text-[24px] font-heading text-[#ffffff]\">\n {/* {contentName} */}\n Capital Letter by Hailee Steinfield\n </h4>\n </div>\n {/* <div className=\"__creator__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Creator:\n </h6>\n <Link to={`/marketplace/entertainment/channels/${channelId}`}>\n <div className=\"__creator__profiler__main pt-[14px] flex gap-[6px]\">\n <img\n src={channelThumbnail || ChannelImage}\n className=\"w-[52px] h-[52px] rounded-[50%]\"\n alt=\"__creator_profile__img\"\n />\n <div>\n <h5 className=\"text-[16px] font-body font-semibold\">\n {channelName}\n </h5>\n <span className=\"text-[14px] font-body font-medium text-[#FFFFFF99]\">\n @{channelHandle}\n </span>\n </div>\n </div>\n </Link>\n </div> */}\n <div className=\"__category__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff]\">\n Holosuite game\n </span>\n </div>\n <div className=\"__tags__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Tags:\n </h6>\n <span className=\"text-[16px] font-body font-medium\">\n {/* {tags.join(\",\")} */}\n Concert, Event, Katty Perry, Volumetric concert, Live\n Performance\n </span>\n </div>\n\n <div className=\"__game__mode__main pt-[28px]\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Game Mode:\n </h6>\n <span className=\"text-[16px] font-body font-light\">\n Multiplayer\n </span>\n </div>\n\n <div className=\"__buy__main pt-[28px] pr-[40px] max-[768px]:pr-0\">\n <h6 className=\"text-[14px] text-[#FFFFFF66] font-body font-semibold\">\n Buy:\n </h6>\n\n <div className=\"flex-1 w-full lg:mt-0 min-h-180\">\n <BuyCards\n // type={contentType}\n type=\"BuyNow\"\n // title=\"This content is locked. To access this premium content, Buy <b>Fourth Star</b> Premium Subscription.\"\n card=\"content\"\n price=\"$99.00\"\n handleData={(e) => {\n handleClick(e);\n }}\n />\n <ComingSoon\n status={showComingSoonPopup}\n text={`In-app purchases are on the way, and you'll soon have the opportunity to own exciting assets. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n {/* {contentType == \"Premium\" && <> <UnlockPremium status={open} text={`Unlock the access exclusive content and early releases curated just for you. Subscribe for <b>${price}/Month ( $288.00/year )</b>.`} heading=\"Unlock the Premium\" handleData={() => setOpen(false)}\n handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(\"You unlocked this content by subscribing to <b style='color:white'>Fourth Star</b> channel\")}}\n />\n </>} */}\n\n {/* {contentType == \"BuyNow\" && <Popup status={open} text=\"Buy this content and get lifetime access to it.\" heading=\"Buy Content\" button={`Buy now @$${price}`} handleData={() => setOpen(false)} handleSub={() => {setContentType(\"MyAsset\"); setBuyCardTitle(`Purchased access on <b style=\"color:white\">${dateFormat(new Date(), \"d mmmm yyyy\")}</b>`)}} />} */}\n </div>\n\n {/* <div className=\"__button__groups__main\">\n <p className=\"pt-[28px] font-medium font-body text-[16px]\">This content is locked. To access this premium content, Buy Fourth Star Premium Subscription.</p>\n <button\n type=\"button\"\n onClick={() => {setOpen(true)}}\n className=\"flex items-center w-full text-[16px] sm:text-[16px] justify-center font-bold rounded-lg btn-gradient leading-none text-black py-3 mt-6\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n className=\"mr-[10px]\"\n >\n <path\n d=\"M12 17.5C12.5304 17.5 13.0391 17.2893 13.4142 16.9142C13.7893 16.5391 14 16.0304 14 15.5C14 14.9696 13.7893 14.4609 13.4142 14.0858C13.0391 13.7107 12.5304 13.5 12 13.5C11.4696 13.5 10.9609 13.7107 10.5858 14.0858C10.2107 14.4609 10 14.9696 10 15.5C10 16.0304 10.2107 16.5391 10.5858 16.9142C10.9609 17.2893 11.4696 17.5 12 17.5ZM18 8.5C18.5304 8.5 19.0391 8.71071 19.4142 9.08579C19.7893 9.46086 20 9.96957 20 10.5V20.5C20 21.0304 19.7893 21.5391 19.4142 21.9142C19.0391 22.2893 18.5304 22.5 18 22.5H6C5.46957 22.5 4.96086 22.2893 4.58579 21.9142C4.21071 21.5391 4 21.0304 4 20.5V10.5C4 9.96957 4.21071 9.46086 4.58579 9.08579C4.96086 8.71071 5.46957 8.5 6 8.5H7V6.5C7 5.17392 7.52678 3.90215 8.46447 2.96447C9.40215 2.02678 10.6739 1.5 12 1.5C12.6566 1.5 13.3068 1.62933 13.9134 1.8806C14.52 2.13188 15.0712 2.50017 15.5355 2.96447C15.9998 3.42876 16.3681 3.97995 16.6194 4.58658C16.8707 5.19321 17 5.84339 17 6.5V8.5H18ZM12 3.5C11.2044 3.5 10.4413 3.81607 9.87868 4.37868C9.31607 4.94129 9 5.70435 9 6.5V8.5H15V6.5C15 5.70435 14.6839 4.94129 14.1213 4.37868C13.5587 3.81607 12.7956 3.5 12 3.5Z\"\n fill=\"black\"\n />\n </svg>\n Buy @$99.00\n </button>\n <button\n type=\"button\"\n onClick={() => {}}\n className=\"flex items-center w-full text-[16px] sm:text-[16px] justify-center font-bold rounded-lg border border-[#FBBC5E] leading-none text-[#fff] py-3 mt-6\"\n >\n <img\n src={CartIcon}\n alt=\"cart_icon\"\n className=\"w-[24px] h-[24px] mr-[10px]\"\n />\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"25\"\n viewBox=\"0 0 24 25\"\n fill=\"none\"\n className=\"mr-[10px]\"\n >\n <path\n d=\"M12 17.5C12.5304 17.5 13.0391 17.2893 13.4142 16.9142C13.7893 16.5391 14 16.0304 14 15.5C14 14.9696 13.7893 14.4609 13.4142 14.0858C13.0391 13.7107 12.5304 13.5 12 13.5C11.4696 13.5 10.9609 13.7107 10.5858 14.0858C10.2107 14.4609 10 14.9696 10 15.5C10 16.0304 10.2107 16.5391 10.5858 16.9142C10.9609 17.2893 11.4696 17.5 12 17.5ZM18 8.5C18.5304 8.5 19.0391 8.71071 19.4142 9.08579C19.7893 9.46086 20 9.96957 20 10.5V20.5C20 21.0304 19.7893 21.5391 19.4142 21.9142C19.0391 22.2893 18.5304 22.5 18 22.5H6C5.46957 22.5 4.96086 22.2893 4.58579 21.9142C4.21071 21.5391 4 21.0304 4 20.5V10.5C4 9.96957 4.21071 9.46086 4.58579 9.08579C4.96086 8.71071 5.46957 8.5 6 8.5H7V6.5C7 5.17392 7.52678 3.90215 8.46447 2.96447C9.40215 2.02678 10.6739 1.5 12 1.5C12.6566 1.5 13.3068 1.62933 13.9134 1.8806C14.52 2.13188 15.0712 2.50017 15.5355 2.96447C15.9998 3.42876 16.3681 3.97995 16.6194 4.58658C16.8707 5.19321 17 5.84339 17 6.5V8.5H18ZM12 3.5C11.2044 3.5 10.4413 3.81607 9.87868 4.37868C9.31607 4.94129 9 5.70435 9 6.5V8.5H15V6.5C15 5.70435 14.6839 4.94129 14.1213 4.37868C13.5587 3.81607 12.7956 3.5 12 3.5Z\"\n fill=\"black\"\n />\n </svg>\n Add to Cart\n </button>\n </div> */}\n </div>\n </div>\n {/* <div className=\"grid grid-cols-1 gap-4 \">Content</div> */}\n </div>\n </div>\n\n <div className=\"__sneaky__peek__container px-4 \">\n <div className=\"__heading\">\n <SliderHeader title=\"Sneaky Peek\" />\n </div>\n <div className=\"__content__slider pt-[24px]\">\n <SneakyPeak slider={[]} SlideToShow={3} type=\"trending\"></SneakyPeak>\n </div>\n </div>\n\n {/* Divider */}\n\n <hr className=\"border-[0.1px] border-[#5A5A5A80] my-[100px]\" />\n\n <div className=\"__suggested__video__container mb-[90px] px-4\">\n <div className=\"__heading\">\n <SliderHeader title=\"Suggested Gaming\" />\n </div>\n <div className=\"__content__slider pt-[24px]\">\n <SneakyPeak\n slider={mostTrending}\n SlideToShow={3}\n type=\"trending\"\n ></SneakyPeak>\n </div>\n </div>\n {isreportModal ? (\n <AssetsReportModal handleModalStatus={handleCloseReportModal} />\n ) : (\n <></>\n )}\n </>\n );\n};\n\nexport default GameCategoryDetail;\n","import Loader from \"components/Loader/Loader\";\nimport React, { useState } from \"react\";\nimport { Link, NavLink } from \"react-router-dom\";\nimport { useGetAllUserNotificationQuery } from \"store/slicer/notification\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { timeAgo, formatTimestamp } from \"constant\";\n\nconst MyNotification = () => {\n const [isNotificationAvailable, setNotification] = useState(true);\n const { data, isLoading, error } = useGetAllUserNotificationQuery({ count: 1 },{ refetchOnMountOrArgChange: true });\n\n return (\n <div className=\"__my_notification__container__main mb-[100px] min-h-[calc(100vh-170px)] container mx-auto px-[100px] py-[60px] max-[768px]:px-[15px] max-[768px]:py-[40px] max-[1280px]:px-[15px] relative\">\n <ShadowFrame\n className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <div className=\"__notification__header__main relative\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[18px]\">\n Notification\n </h4>\n <h5 className=\"font-body text-[18px] font-medium pt-[40px] underline underline-offset-8 decoration-[#FBBC5E] max-[768px]:text-[15px] max-[768px]:pt-[25px]\">\n All Notification\n </h5>\n {isNotificationAvailable ? (\n <></>\n ) : (\n <hr className=\"mt-[24px] border-[0.1px] border-[#5A5A5A80]\" />\n )}\n </div>\n\n {isLoading ? (\n <div className=\"flex pt-[20px]\">\n <Loader />\n </div>\n ) : (\n <div className=\"__notification__content__main h-[90%] relative\">\n {data?.response?.statusEnum === 1 ? (\n data?.response?.data?.notifications.length === 0 ? (\n <div className=\"__notification__empty__container flex flex-col justify-center items-center h-[100%] max-[768px]:justify-start max-[768px]:pt-[30px] max-[1280px]:pt-[30px] max-[1280px]:justify-start\">\n <span className=\"text-[#FFFFFF99] text-[16px] font-medium font-body max-[768px]:text-[14px]\">\n You don't have any Notification yet.\n </span>\n </div>\n ) : (\n <div className=\"__notification__content_main w-[100%]\">\n <div className=\"pt-[25px]\">\n <h5 className=\"text-[#FFFFFF99]\">Recent Notification</h5>\n </div>\n\n {\n data?.response?.data?.notifications?.slice(0)?.reverse()?.map((_notifyItem) => {\n return <div key={_notifyItem?._id} className=\"__notification__card__container mt-[25px] rounded-[8px] bg-gradient-to-r from-[#FBBC5E0D] to-[#F3A1510D] hover:scale-[1.014] transition duration-300 ease-in-out\">\n <div className=\"__notification__card__body px-[20px] py-[15px]\">\n <h4 className=\"font-heading max-[768px]:text-[14px]\">\n {_notifyItem?.title}\n </h4>\n <p className=\"font-body font-light text-[13px] max-[768px]:text-[12px] text-[#FFFFFF99] w-[80%] max-[768px]:w-[70%] truncate\">\n {_notifyItem?.message}\n </p>\n <div className=\"__notification__action__center__container flex justify-between items-baseline\">\n <span className=\"font-body font-medium text-[#FFFFFF99] text-[13px]\">\n {timeAgo(_notifyItem?.receivedAt)}\n </span>\n <NavLink to={`/me/notification/${_notifyItem?._id}`}>\n <button className=\"__notify__btn max-[768px]:text-[12px] px-[16px] py-[4px] rounded-[6px] border border-[#7A7A7A] text-[#FBBC5E] transition-all hover:border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000]\">\n Open\n </button>\n </NavLink>\n </div>\n </div>\n </div>\n })\n }\n {/* <div className=\"__notification__card__container mt-[25px] rounded-[8px] bg-gradient-to-r from-[#FBBC5E0D] to-[#F3A1510D] hover:scale-[1.014] transition duration-300 ease-in-out\">\n <div className=\"__notification__card__body px-[20px] py-[15px]\">\n <h4 className=\"font-heading max-[768px]:text-[14px]\">\n Notification - 1\n </h4>\n <p className=\"font-body font-light text-[13px] max-[768px]:text-[12px] text-[#FFFFFF99]\">\n Merrianne has invited you to explore their apartment. Join\n the party now!\n </p>\n <div className=\"__notification__action__center__container flex justify-between items-baseline\">\n <span className=\"font-body font-medium text-[#FFFFFF99] text-[13px]\">\n 35 mins ago\n </span>\n <NavLink to={`/me/notification/notification1`}>\n <button className=\"__notify__btn max-[768px]:text-[12px] px-[16px] py-[4px] rounded-[6px] border border-[#7A7A7A] text-[#FBBC5E] transition-all hover:border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000]\">\n Open\n </button>\n </NavLink>\n </div>\n </div>\n </div> */}\n\n {/* <div className=\"__notification__card__container mt-[25px] rounded-[8px] bg-gradient-to-r from-[#FBBC5E0D] to-[#F3A1510D] hover:scale-[1.014] transition duration-300 ease-in-out\">\n <div className=\"__notification__card__body px-[20px] py-[15px]\">\n <h4 className=\"font-heading max-[768px]:text-[14px]\">\n Notification - 2\n </h4>\n <p className=\"font-body font-light text-[13px] max-[768px]:text-[12px] text-[#FFFFFF99]\">\n Merrianne has invited you to explore their apartment. Join\n the party now!\n </p>\n <div className=\"__notification__action__center__container flex justify-between items-baseline\">\n <span className=\"font-body font-medium text-[#FFFFFF99] text-[13px] max-[768px]:text-[12px]\">\n 35 mins ago\n </span>\n <NavLink to={`/me/notification/notification2`}>\n <button className=\"__notify__btn max-[768px]:text-[12px] px-[16px] py-[4px] rounded-[6px] border border-[#7A7A7A] text-[#FBBC5E] transition-all hover:border-[#FBBC5E] hover:bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000]\">\n Open\n </button>\n </NavLink>\n </div>\n </div>\n </div> */}\n </div>\n )\n ) : (\n <div className=\"__transaction__empty__container flex flex-col justify-center items-center h-[100%] max-[768px]:justify-start max-[768px]:pt-[30px] max-[1280px]:pt-[30px] max-[1280px]:justify-start\">\n <span className=\"text-[#FFFFFF99] text-[16px] font-medium font-body max-[768px]:text-[14px]\">\n There is some problem while fetching the notification\n </span>\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default MyNotification;\n","import Loader from \"components/Loader/Loader\";\nimport React from \"react\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useGetSingleNotificationQuery } from \"store/slicer/notification\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { timeAgo } from \"constant\";\n\nconst SingleNotification = () => {\n const { notifyId } = useParams();\n const navigate = useNavigate();\n\n const { data, isLoading, error } = useGetSingleNotificationQuery({\n notificationId: notifyId,\n },{ count: 1 },{ refetchOnMountOrArgChange: true });\n\n return (\n <div className=\"__my_notification__container__main mb-[100px] container mx-auto px-[100px] py-[60px] h-[100vh] max-[768px]:px-[15px] max-[768px]:py-[40px] max-[1280px]:px-[15px] relative\">\n <ShadowFrame\n className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <ShadowFrame\n className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\"\n />\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n\n {isLoading ? (\n <div className=\"flex pt-[20px]\">\n <Loader />\n </div>\n ) : data?.response?.statusEnum === 1 ? (\n data?.response?.data === null ? (\n <span>No Data</span>\n ) : (\n <div className=\"__notification__header__main relative mt-[25px]\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[18px]\">\n {data?.response?.data?.title}\n </h4>\n\n <div className=\"__single__notification__content__section my-[20px]\">\n <div className=\"__content__body py-[15px] px-[10px] whitespace-pre-line rounded-[8px] bg-[#2C2C2C] [&>p]:p-0\">\n <p>{data?.response?.data?.message}</p>\n <div className=\"pt-[15px]\">\n <span className=\"font-body font-medium text-[#FFFFFF99] text-[14px]\">\n {timeAgo(data?.response?.data?.receivedAt)}\n </span>\n </div>\n </div>\n </div>\n </div>\n )\n ) : (\n <div className=\"pt-[20px]\">\n <p>There is some problem while fetching the data</p>\n </div>\n )}\n </div>\n );\n};\n\nexport default SingleNotification;\n","import React, { useEffect, useState } from \"react\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { Link, NavLink, useNavigate } from \"react-router-dom\";\nimport CartItemThumb from \"assets/images/cart_item_thumb.png\";\nimport CoinIcon from \"assets/images/coin-icon.png\";\nimport {\n useGetCartItemByTokenQuery,\n useGetStarCartItemByTokenQuery,\n} from \"store/slicer/Cart\";\nimport Loader from \"components/Loader/Loader\";\nimport { useDeleteCartItemByTokenMutation } from \"store/slicer/Cart\";\nimport MiniLoader from \"../../assets/icons/spinner-white.svg\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport CartFstrIcon from \"assets/images/cart_fstr_icon.png\";\nimport CartUsdIcon from \"assets/images/cart_usd_icon.png\";\nimport { useGetUserWalletListQuery } from \"store/slicer/userProfile\";\nimport WalletAddressModel from \"components/Modal/Payments/WalletAddressModel\";\nimport AddWalletAddress from \"components/Modal/Payments/AddWalletAddress\";\n\n/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module User-My-Transaction-Component\n *@developer Shubham K, Shiv Pandey\n */\n\n// const dummyData = [\n// {\n// title: \"Experience Cool Breeze\",\n// thumb_url: CartItemThumb,\n// creator_handle: \"@SonicSketchEntertainment\",\n// category: \"Volumetric\",\n// price: \"24.00\",\n// id: \"1\",\n// creator_id: \"1\",\n// },\n// {\n// title: \"Experience Cool Breeze\",\n// thumb_url: CartItemThumb,\n// creator_handle: \"@SonicSketchEntertainment\",\n// category: \"Volumetric\",\n// price: \"24.00\",\n// id: \"1\",\n// creator_id: \"1\",\n// },\n// ];\n\nconst Cart = () => {\n const { data, isLoading, refetch } = useGetCartItemByTokenQuery();\n const {\n data: starData,\n isLoading: starLoading,\n refetch: starRefetch,\n } = useGetStarCartItemByTokenQuery();\n const [DeleteCartItemQuery, { isLoading: deleteCartLoader }] =\n useDeleteCartItemByTokenMutation();\n const [cartData, setCartData] = useState([]);\n const [IsalertMsg, setIsAlertMsg] = useState(false);\n\n const [loadingIndexes, setLoadingIndexes] = useState([]);\n const [openWalletAddressPopup, setOpenWalletAddressPopup] = useState(false);\n const addressLists = useGetUserWalletListQuery();\n const [walletAddressList, setWalletAddressList] = useState([]);\n const [showAlert, setShowAlert] = useState(false);\n const [alertSuccess, setAlertSuccess] = useState(true);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\n // const goToWalletAddress = () => {\n // navigate(\"/wallet\");\n // };\n\n // Open add wallet address model\n const openWalletAddress = () => {\n setShowAlert(false);\n setShowConfirmPopup(true);\n };\n\n // Open add wallet address list model\n const walletAdded = (success) => {\n if (success) {\n setOpenWalletAddressPopup(true);\n }\n };\n\n //Close Add wallet address box\n const onCloseConfirmPopup = () => {\n setShowConfirmPopup(false);\n // setOpenWalletAddressPopup(true);\n };\n\n const onAlertClose = () => {\n setShowAlert(false);\n setAlertMessage(\"\");\n setAlertSuccess(true);\n };\n\n const onWalletPopupClose = () => {\n setOpenWalletAddressPopup(false);\n };\n\n const onActionNextBtnClick = (walletId) => {\n // console.log(\"walletId after click next buton\", walletId);\n checkoutCartStar(walletId);\n };\n\n useEffect(() => {\n refetch();\n starRefetch();\n setCartData(data?.response?.data);\n }, [data, starData]);\n\n // Calculate Total Sum of Cart Items\n const CartSumOfItemPrice = () => {\n return data?.response?.data\n .map((item) => item?.price)\n .reduce((accumulator, currentValue) => accumulator + currentValue, 0);\n };\n\n const CartStarSumOfItemPrice = () => {\n return starData?.response?.data\n .map((item) => item?.price)\n .reduce((accumulator, currentValue) => accumulator + currentValue, 0);\n };\n\n // Delete Cart Items\n const deleteCartItem = (cartItemId, index) => {\n setLoadingIndexes((prev) => [...prev, index]);\n DeleteCartItemQuery({ id: cartItemId })\n .then((res) => {\n setIsAlertMsg(true);\n refetch();\n starRefetch();\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const navigate = useNavigate();\n\n const checkoutCartUSD = () => {\n let cartCheckoutData = data?.response?.data.slice();\n cartCheckoutData = cartCheckoutData.map((item) => {\n return {\n amount: item.price,\n productId: item.itemId,\n productType: item.itemCategory,\n name: item.itemName,\n themeId: item.itemsThemeId,\n };\n });\n\n sessionStorage.setItem(\n \"cartCheckoutData\",\n JSON.stringify(cartCheckoutData)\n );\n navigate(\"/checkout?isCart=true\");\n };\n\n useEffect(() => {\n setWalletAddressList(addressLists?.data?.response?.data?.web3Wallets);\n }, [addressLists]);\n\n const handleFstrCheckout = () => {\n if (addressLists?.data?.response?.data?.web3Wallets.length > 0) {\n // setWalletAddressList(addressLists?.data?.response?.data?.web3Wallets);\n setOpenWalletAddressPopup(true);\n setShowAlert(false);\n } else {\n // console.log(\"No wallet address list found\");\n setAlertSuccess(false);\n setAlertMessage(\n \"You haven’t connected any wallet yet. Please add a Web3 wallet to proceed with your FSTR payment. Without a wallet, you won’t be able to complete the purchase.\"\n );\n setShowAlert(true);\n setOpenWalletAddressPopup(false);\n }\n };\n\n const checkoutCartStar = (walletId) => {\n let cartCheckoutData = starData?.response?.data.slice();\n cartCheckoutData = cartCheckoutData.map((item) => {\n return {\n amount: item.price,\n productId: item.itemId,\n productType: item.itemCategory,\n name: item.itemName,\n themeId: item.itemsThemeId,\n };\n });\n\n sessionStorage.setItem(\n \"cartCheckoutDataCrypto\",\n JSON.stringify(cartCheckoutData)\n );\n const amount = cartCheckoutData.reduce((acc, current) => {\n return acc + current.amount;\n }, 0);\n navigate(`/initiatepayment?isCart=true&amount=${amount}&walletId=${walletId}`);\n };\n\n return (\n <>\n <div className=\"__my_transaction__container__main mb-[100px] container mx-auto px-[100px] py-[60px] max-[768px]:px-[15px] max-[768px]:py-[40px] relative font-body min-h-[100vh]\">\n <ShadowFrame className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <ShadowFrame className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n {/* <div className=\"flex items-center gap-4\">\n <img src={CartUsdIcon} className=\"h-[40px] w-[40px] inline\" alt=\"\" />\n <h1 className=\"text-[24px] font-heading \">USD Purchases</h1>\n </div> */}\n\n {/* USD CART */}\n\n {isLoading && (\n <div className=\"text-center pt-[10%]\">\n <Loader />\n </div>\n )}\n {!isLoading &&\n data?.response?.statusEnum != 1 &&\n (data.response?.message || (\n <p className=\"font-bold text-white/50\">Something went wrong</p>\n ))}\n {!isLoading &&\n data?.response?.statusEnum == 1 &&\n data?.response?.data?.length == 0 &&\n starData?.response?.data?.length == 0 && (\n <div className=\"__EMPTY_CART_CONTAINER__ mt-[130px] w-full md:max-w-[50%] mx-auto\">\n <h4 className=\"text-[20px] font-bold leading-[30px] text-center\">\n Cart is empty!\n </h4>\n <p className=\"mt-[35px] text-[16px] text-[#7a7a7a] font-bold leading-[24px] text-center\">\n 🌟 All purchases are coming soon! We're gearing up for exciting\n releases, so stay tuned for amazing content. 🚀\n </p>\n <div className=\"mt-[60px] flex justify-center items-center\">\n <Link\n to=\"/marketplace\"\n className=\"border-[1.5px] border-sec text-sm rounded-lg max-w-[250px] hover:bg-sec hover:text-dark font-bold text-center py-3 px-4\"\n >\n Explore Marketplace\n </Link>\n </div>\n </div>\n )}\n\n {!isLoading &&\n data?.response?.statusEnum == 1 &&\n data?.response?.data?.length > 0 && (\n <div>\n <div className=\"flex items-center gap-4\">\n <img\n src={CartUsdIcon}\n className=\"h-[40px] w-[40px] inline\"\n alt=\"\"\n />\n <h1 className=\"text-[24px] font-heading \">USD Purchases</h1>\n </div>\n <table className=\"__CART_ITEMS_CONTAINER__ mt-[34px] mx-auto w-full max-md:table-fixed \">\n <thead>\n <tr className=\"text-[8px] sm:text-[10px] md:text-[12px] text-white/70 font-bold border-b border-white/50\">\n <th className=\"text-start pb-[12px]\">Thumbnail & name</th>\n <th className=\"text-start pb-[12px]\">Category</th>\n <th className=\"text-start pb-[12px]\">Price</th>\n <th className=\"text-start pb-[12px]\">Action</th>\n </tr>\n </thead>\n <tbody>\n {data?.response?.data\n .slice(0)\n ?.reverse()\n ?.map((item, index) => {\n return (\n <tr\n key={item?._id + item?.userId}\n className=\"border-b border-white/20 \"\n >\n <td className=\"py-[10px]\">\n <div className=\"__THUMB_NAME_CONTAINER__ md:flex items-center gap-2 md:gap-[20px]\">\n <div className=\"__THUMB_CONTAINER_ hidden sm:block w-[100px] h-[85px] md:w-[162px] md:h-[85px] bg-black\">\n <img\n src={item?.thumbnail}\n className=\"w-full h-full object-contain\"\n alt=\"asset\"\n />\n </div>\n <div className=\"__TITLE_CREAT_HANDLE_CONTAINER__\">\n <p className=\"text-[12px] md:text-[14px] font-bold max-md:max-w-[90%] text-ellipsis whitespace-nowrap overflow-hidden\">\n {item.itemName}\n </p>\n {item?.itemChannelHandle && (\n <p className=\"text-[#7a7a7a] text-[10px] md:text-[12px] font-bold max-md:max-w-[90%] text-ellipsis whitespace-nowrap overflow-hidden\">\n <Link\n to={`/marketplace/entertainment/channels/${item.creator_id}`}\n >\n {item?.itemCategory}\n </Link>\n </p>\n )}\n </div>\n </div>\n </td>\n\n <td className=\"text-[#7a7a7a] text-[12px] md:text-[14px] font-bold pl-1 capitalize\">\n {item?.itemCategory?.split(\"-\")?.join(\" \")}\n </td>\n\n <td>\n <div className=\"__COIN_PRICE_CONTAINER__ flex items-center gap-2 pl-1\">\n {/* <img\n src={CoinIcon}\n className=\"hidden md:block w-[20px] h-[20px]\"\n alt=\"coin\"\n /> */}\n <span className=\"text-[12px] md:text-[14px] font-bold whitespace-nowrap\">\n {item?.price} USD\n </span>\n </div>\n </td>\n\n <td className=\"xl:w-[150px]\">\n <div className=\"__BUY_DELETE_CONTAINER__ flex items-center pl-3 justify-start\">\n {/* <button className=\"btn-outline py-[4px] px-[6px] md:py-[7px] md:px-[12px] text-[8px] sm:text-[12px] md:text-[14px] border border-[#fbbc5e] rounded-[20px] font-medium\">\n Buy Now\n </button> */}\n\n {deleteCartLoader &&\n loadingIndexes.includes(index) ? (\n <img\n src={MiniLoader}\n className=\"w-[25px] h-[25px]\"\n />\n ) : (\n <span\n onClick={() =>\n deleteCartItem(item?._id, index)\n }\n className=\"__delete__handle__item cursor-pointer\"\n >\n <svg\n className=\"w-[16px] h-[16px] md:w-[24px] md:h-[24px]\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7 21C6.45 21 5.979 20.804 5.587 20.412C5.195 20.02 4.99933 19.5493 5 19V6H4V4H9V3H15V4H20V6H19V19C19 19.55 18.804 20.021 18.412 20.413C18.02 20.805 17.5493 21.0007 17 21H7ZM17 6H7V19H17V6ZM9 17H11V8H9V17ZM13 17H15V8H13V17Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n )}\n </div>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n\n <div className=\"__BUY_ALL_CONTAINER__ mt-[24px] max-md:mx-auto md:ml-auto w-full max-w-[400px] flex flex-col gap-5\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white/50 font-semibold text-[16px]\">\n Total Items:\n </span>\n <span className=\"text-white font-medium text-[16px]\">\n {data?.response?.data?.length} Items\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white/50 font-semibold text-[16px]\">\n Total Amount:\n </span>\n <span className=\"text-white font-bold text-[16px]\">\n {CartSumOfItemPrice()} USD\n </span>\n </div>\n\n <button\n className=\" btn-gradient py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] rounded-[8px] text-black text-[12px] lg:text-[16px] font-bold\"\n onClick={checkoutCartUSD}\n >\n Checkout\n </button>\n </div>\n </div>\n )}\n {!starLoading &&\n starData?.response?.statusEnum == 1 &&\n starData?.response?.data?.length > 0 && (\n <div>\n <div className=\"flex items-center gap-4 mt-[30px]\">\n <img\n src={CartFstrIcon}\n className=\"h-[40px] w-[40px] inline\"\n alt=\"\"\n />\n <h1 className=\"text-[24px] font-heading \">FSTR Purchases</h1>\n </div>\n <table className=\"__CART_ITEMS_CONTAINER__ mt-[34px] mx-auto w-full max-md:table-fixed \">\n <thead>\n <tr className=\"text-[8px] sm:text-[10px] md:text-[12px] text-white/70 font-bold border-b border-white/50\">\n <th className=\"text-start pb-[12px]\">Items </th>\n <th className=\"text-start pb-[12px]\">Category</th>\n <th className=\"text-start pb-[12px]\">Price</th>\n <th className=\"text-start pb-[12px]\">Action</th>\n </tr>\n </thead>\n <tbody>\n {starData?.response?.data\n .slice(0)\n ?.reverse()\n ?.map((item, index) => {\n return (\n <tr\n key={item?._id + item?.userId}\n className=\"border-b border-white/20 \"\n >\n <td className=\"py-[10px]\">\n <div className=\"__THUMB_NAME_CONTAINER__ md:flex items-center gap-2 md:gap-[20px]\">\n <div className=\"__THUMB_CONTAINER_ hidden sm:block w-[100px] h-[85px] md:w-[162px] md:h-[85px] bg-black\">\n <img\n src={item?.thumbnail}\n className=\"w-full h-full object-contain\"\n alt=\"asset\"\n />\n </div>\n <div className=\"__TITLE_CREAT_HANDLE_CONTAINER__\">\n <p className=\"text-[12px] md:text-[14px] font-bold max-md:max-w-[90%] text-ellipsis whitespace-nowrap overflow-hidden\">\n {item.itemName}\n </p>\n {item?.itemChannelHandle && (\n <p className=\"text-[#7a7a7a] text-[10px] md:text-[12px] font-bold max-md:max-w-[90%] text-ellipsis whitespace-nowrap overflow-hidden\">\n <Link\n to={`/marketplace/entertainment/channels/${item.creator_id}`}\n >\n {item?.itemCategory}\n </Link>\n </p>\n )}\n </div>\n </div>\n </td>\n\n <td className=\"text-[#7a7a7a] text-[12px] md:text-[14px] font-bold pl-1 capitalize\">\n {item?.itemCategory?.split(\"-\")?.join(\" \")}\n </td>\n\n <td>\n <div className=\"__COIN_PRICE_CONTAINER__ flex items-center gap-2 pl-1\">\n {/* <img\n src={CoinIcon}\n className=\"hidden md:block w-[20px] h-[20px]\"\n alt=\"coin\"\n /> */}\n <span className=\"text-[12px] md:text-[14px] font-bold whitespace-nowrap\">\n {item?.price} FSTR\n </span>\n </div>\n </td>\n\n <td className=\"xl:w-[150px]\">\n <div className=\"__BUY_DELETE_CONTAINER__ flex items-center pl-3 justify-start\">\n {/* <button className=\"btn-outline py-[4px] px-[6px] md:py-[7px] md:px-[12px] text-[8px] sm:text-[12px] md:text-[14px] border border-[#fbbc5e] rounded-[20px] font-medium\">\n Buy Now\n </button> */}\n\n {deleteCartLoader &&\n loadingIndexes.includes(index) ? (\n <img\n src={MiniLoader}\n className=\"w-[25px] h-[25px]\"\n />\n ) : (\n <span\n onClick={() =>\n deleteCartItem(item?._id, index)\n }\n className=\"__delete__handle__item cursor-pointer\"\n >\n <svg\n className=\"w-[16px] h-[16px] md:w-[24px] md:h-[24px]\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7 21C6.45 21 5.979 20.804 5.587 20.412C5.195 20.02 4.99933 19.5493 5 19V6H4V4H9V3H15V4H20V6H19V19C19 19.55 18.804 20.021 18.412 20.413C18.02 20.805 17.5493 21.0007 17 21H7ZM17 6H7V19H17V6ZM9 17H11V8H9V17ZM13 17H15V8H13V17Z\"\n fill=\"white\"\n />\n </svg>\n </span>\n )}\n </div>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n\n <div className=\"__BUY_ALL_CONTAINER__ mt-[24px] max-md:mx-auto md:ml-auto w-full max-w-[400px] flex flex-col gap-5\">\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white/50 font-semibold text-[16px]\">\n Total Items:\n </span>\n <span className=\"text-white font-medium text-[16px]\">\n {starData?.response?.data?.length} Items\n </span>\n </div>\n <div className=\"flex items-center justify-between\">\n <span className=\"text-white/50 font-semibold text-[16px]\">\n Total Amount:\n </span>\n <span className=\"text-white font-bold text-[16px]\">\n {CartStarSumOfItemPrice()} FSTR\n </span>\n </div>\n\n <button\n className=\" btn-gradient py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] rounded-[8px] text-black text-[12px] lg:text-[16px] font-bold\"\n onClick={handleFstrCheckout}\n >\n Checkout\n </button>\n </div>\n </div>\n )}\n </div>\n\n {openWalletAddressPopup && !showAlert && (\n <WalletAddressModel\n addressList={walletAddressList}\n onCancel={onWalletPopupClose}\n onNext={onActionNextBtnClick}\n btnText=\"Next\"\n />\n )}\n\n {showConfirmPopup && !showAlert && (\n <AddWalletAddress\n walletAdd={walletAdded}\n onClose={onCloseConfirmPopup}\n />\n )}\n\n {showAlert && !openWalletAddressPopup && (\n <Alert\n open={showAlert}\n message={alertMessage}\n showCloseIcon={true}\n isSuccess={alertSuccess}\n canClose={false}\n onClose={openWalletAddress}\n onClickCloseIcon={onAlertClose}\n buttonText={\"Add Wallet\"}\n />\n )}\n\n {IsalertMsg && (\n <Alert\n open={true}\n onClose={() => {\n setIsAlertMsg(!IsalertMsg);\n }}\n heading=\"Item Removed\"\n message=\"\"\n isSuccess={true}\n />\n )}\n </>\n );\n};\n\nexport default Cart;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Events-Details-Page\n *@developer Shubham K\n */\n\nimport { useEffect, useState } from \"react\";\nimport { useNavigate, Link, useParams, useLocation } from \"react-router-dom\";\nimport { Zoom } from \"react-reveal\";\nimport Flag from \"components/report/Flag\";\nimport AssetsReportModal from \"components/Modal/Report/AssetsReportModal\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport Slider from \"react-slick\";\nimport EventCard from \"../components/eventcard/EventCard\";\nimport ReactPlayer from \"react-player\";\nimport {\n useGetEventQuery,\n useGetRecommendedEventQuery,\n usePostAddParticipantToEventMutation,\n useLazyGetUserEventsListQuery,\n} from \"store/slicer/Events\";\nimport dateFormat from \"dateformat\";\nimport DummyCart from \"assets/images/dummy-cart.png\";\n\nimport HeroImg from \"assets/images/Event_Car_2.png\";\nimport ChannelThumbnail from \"assets/images/channel_logo.png\";\nimport CoinImage from \"assets/images/coin_dollar.png\";\nimport LocationImage from \"assets/images/location_icon_color.png\";\nimport card1 from \"assets/images/event_card_1.png\";\nimport card2 from \"assets/images/event_card_2.png\";\nimport card3 from \"assets/images/event_card_3.png\";\nimport card4 from \"assets/images/event_card_4.png\";\nimport card5 from \"assets/images/event_card_5.png\";\nimport Loader from \"components/Loader/Loader\";\n\nimport { GlobalStore } from \"store/GlobalStore\";\nimport BuyPopupIap from \"components/popup/BuyPopupIap/BuyPopupIap\";\n\nimport * as DOMPurify from \"dompurify\";\nimport { convertUsdToFstrPrice } from \"utils\";\nimport { sanitizeStringToNumber } from \"utils\";\nimport { convertUsdToMarketFstrUsd } from \"utils\";\nimport { convertActualUsdToFstrPrice } from \"utils\";\nimport Free from \"components/buy-cards/free\";\n\nconst EventDetail = () => {\n const location = useLocation();\n const navigate = useNavigate();\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n\n // // user not signed in\n // if (!accessToken) {\n // navigate(`/signin?ref=${location.pathname}`, {\n // replace: true,\n // });\n // }\n\n // // user signed in but did not verify his email\n // if (accessToken && !authState?.userInfo?.isVerified) {\n // navigate(`/otp-verification`, {\n // replace: true,\n // });\n // }\n\n const params = useParams();\n\n let {\n data: eventData,\n isFetching,\n isSuccess: IsDataAvailable,\n isError,\n } = useGetEventQuery({ eventId: params.id });\n\n if (!isFetching && IsDataAvailable && eventData.response.statusEnum == 1) {\n eventData = eventData.response.data;\n\n let chipText = \"Volumetric\";\n let eventType = eventData.venueType?.toLowerCase();\n if (eventType.includes(\"360\")) {\n chipText = \"360\";\n }\n if (eventType.includes(\"180\")) {\n chipText = \"180\";\n }\n\n eventData = {\n ...eventData,\n chipText,\n dateTime: dateFormat(eventData.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n };\n } else {\n eventData = {};\n isError = true;\n }\n\n console.log(eventData);\n\n const [countDownText, setCountDownText] = useState(\"00D: 00H: 00M: 00S\");\n const [isEventEnded, setIsEventEnded] = useState(false);\n\n // logic to check the first time if event has expired | to not show ui transitions to user\n useEffect(() => {\n if (isFetching || !eventData || !eventData.startTime) {\n return;\n }\n\n if (new Date(eventData.startTime) < new Date()) {\n setIsEventEnded(true);\n }\n }, [isFetching]);\n\n // logic for event countdown\n useEffect(() => {\n if (isFetching || isError) {\n return;\n }\n\n function calculateCountDown() {\n const eventDateTime = new Date(eventData.startTime);\n const currentTime = new Date();\n\n if (eventDateTime <= currentTime) {\n setIsEventEnded(true);\n return setCountDownText(\"00D: 00H: 00M: 00S\");\n }\n\n // get total seconds between the times\n var delta =\n Math.abs(eventDateTime.getTime() - currentTime.getTime()) / 1000;\n\n // calculate (and subtract) whole days\n var days = Math.floor(delta / 86400);\n delta -= days * 86400;\n\n // calculate (and subtract) whole hours\n var hours = Math.floor(delta / 3600) % 24;\n delta -= hours * 3600;\n\n // calculate (and subtract) whole minutes\n var minutes = Math.floor(delta / 60) % 60;\n delta -= minutes * 60;\n\n // what's left is seconds\n var seconds = delta % 60; // in theory the modulus is not required\n\n setCountDownText(\n `${days}D: ${hours}H: ${minutes}M ${Math.floor(seconds)}S`\n );\n }\n\n const interval = setInterval(calculateCountDown, 1000);\n\n return () => clearInterval(interval);\n }, [isFetching]);\n\n let {\n data: recommendedData,\n isFetching: isReccFetching,\n isError: isReccError,\n isSuccess: isReccDataAvailable,\n } = useGetRecommendedEventQuery();\n\n if (\n !isReccFetching &&\n isReccDataAvailable &&\n recommendedData.result.statusEnum == 1\n ) {\n recommendedData = recommendedData.result.data.map((item) => {\n let eventType = \"Volumetric\";\n if (item.venueType?.includes(\"360\")) {\n eventType = \"360\";\n }\n if (item.venueType?.includes(\"180\")) {\n eventType = \"180\";\n }\n if (item.venueType?.includes(\"2d\")) {\n eventType = \"2D\";\n }\n if (item.venueType?.includes(\"music\")) {\n eventType = \"Music\";\n }\n return {\n ...item,\n id: item._id,\n type: eventType,\n title: item.name,\n channelName: item.creatorDetails.channelName,\n dateAndTime: dateFormat(item.startTime, \"mmmm dd, yyyy, h:MM TT\"),\n location: item.venueName,\n price: item.priceFiat,\n imgUrl: item.promoBanner,\n };\n });\n } else {\n recommendedData = [];\n isReccError = true;\n }\n\n const [IstooltipHover, setTooltipHover] = useState(false);\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const [videoPlaying, setVideoPlaying] = useState(false);\n\n const HandletooltipHover = () => {\n setTooltipHover(!IstooltipHover);\n };\n\n const [isreportModal, setReportModal] = useState(false);\n\n const handleCloseReportModal = () => {\n setReportModal(!isreportModal);\n };\n\n const dummyEventsData = [\n {\n id: params.id,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card1,\n },\n {\n id: params.id,\n type: \"180\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"180 Lounge\",\n price: \"48.29\",\n imgUrl: card2,\n },\n {\n id: params.id,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card3,\n },\n {\n id: params.id,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card4,\n },\n {\n id: params.id,\n type: \"360\",\n title: \"Cave Culinary Quest: 360 Culinary Adventure\",\n channelName: \"Stellar Sounds Entertainment\",\n dateAndTime: \"November 12, 2024, 8:30 PM GMT + 5.3\",\n location: \"360 Lounge\",\n price: \"48.29\",\n imgUrl: card5,\n },\n ];\n\n const filterdEventsData = dummyEventsData;\n\n const sliderSettings = {\n slidesToShow: 3.2,\n slidesToScroll: 1,\n dots: false,\n arrows: true,\n swipeToSlide: true,\n infinite: false,\n focusOnSelect: true,\n // arrows: false,\n responsive: [\n {\n breakpoint: 1200,\n settings: {\n slidesToShow: 2.7,\n },\n },\n {\n breakpoint: 913,\n settings: {\n slidesToShow: 2.3,\n },\n },\n {\n breakpoint: 769,\n settings: {\n slidesToShow: 2,\n },\n },\n {\n breakpoint: 541,\n settings: {\n slidesToShow: 1.2,\n },\n },\n {\n breakpoint: 500,\n settings: {\n slidesToShow: 1.1,\n },\n },\n {\n breakpoint: 415,\n settings: {\n slidesToShow: 1.02,\n },\n },\n {\n breakpoint: 400,\n settings: {\n slidesToShow: 1,\n },\n },\n ],\n };\n\n let [\n GetUserEventsListQuery,\n {\n data: userEventsData,\n isFetching: userEventsFetching,\n isError: userEventsError,\n isSuccess: userEventsDataAvailable,\n refetch: refetchUserEventsData,\n },\n ] = useLazyGetUserEventsListQuery({\n refetchOnMountOrArgChange: true,\n });\n\n if (\n !userEventsFetching &&\n userEventsDataAvailable &&\n userEventsData.response.statusEnum == 1\n ) {\n userEventsData = userEventsData.response.data.data;\n } else {\n userEventsData = [];\n userEventsError = true;\n }\n\n const [addParticipantToEventTrigger, addParticipantToEventInfo] =\n usePostAddParticipantToEventMutation();\n\n const {\n data: addEventData,\n isLoading: addEventLoading,\n isFetching: addEventFetching,\n isSuccess: addEventSuccess,\n isError: addEventError,\n } = addParticipantToEventInfo;\n\n const [isEventBooked, setIsEventBooked] = useState(false);\n\n // Effect to check if event is already booked by the user\n useEffect(() => {\n if (userEventsFetching || userEventsError) {\n return;\n }\n const foundEvent = userEventsData.filter(\n (item) => item.eventId == params.id\n );\n console.log(\"test\", userEventsData, foundEvent);\n\n if (foundEvent?.length > 0) {\n setIsEventBooked(true);\n }\n }, [userEventsFetching]);\n useEffect(() => {\n if (addEventData && addEventData.response.statusEnum == 1) {\n setIsEventBooked(true);\n }\n }, [addEventLoading]);\n\n const [buyPopupOpen, setBuyPopupOpen] = useState(false);\n const [popupCurrency, setPopupCurrency] = useState(\"fstr\");\n\n const onPopupClose = () => {\n setBuyPopupOpen(false);\n };\n\n const onPurchaseCurrencyChange = (currency) => {\n setPopupCurrency(currency);\n };\n\n const checkoutIap = (walletId) => {\n if (popupCurrency == \"usd\") {\n // ***** REMOVE THIS AFTER PURCHASE IS INTEGRATED ***********\n // buyEventMock();\n navigate(\n `/checkout?productType=event&productName=${eventData?.name}&amount=${eventData?.priceFiat}&productId=${eventData?._id}`\n );\n } else if (popupCurrency == \"fstr\") {\n navigate(\n `/initiatepayment?productType=event&productName=${\n eventData?.name\n }&amount=${convertActualUsdToFstrPrice(\n eventData?.priceFiat\n )}&productId=${eventData?._id}&walletId=${walletId}`\n );\n }\n setBuyPopupOpen(false);\n };\n\n const buyEventTicketHandler = async () => {\n setBuyPopupOpen(true);\n };\n\n useEffect(() => {\n accessToken && GetUserEventsListQuery();\n }, []);\n\n if (!isFetching && isError) {\n return (\n <div className=\"h-screen grid place-content-center text-white/50\">\n Something went wrong\n </div>\n );\n }\n\n if (isFetching) {\n return (\n <div className=\"h-screen grid place-content-center\">\n <Loader />\n </div>\n );\n }\n\n return (\n <>\n {buyPopupOpen && (\n <BuyPopupIap\n open={buyPopupOpen}\n onClose={onPopupClose}\n isCart={false}\n addedToCart={false}\n loading={false}\n onCurrencyChange={onPurchaseCurrencyChange}\n actionBtnHandler={checkoutIap}\n proceedToCheckoutHandler={checkoutIap}\n priceUsd={eventData.priceFiat}\n />\n )}\n <div className=\"__BACK_BTN_REPORT_CONTAINER__ px-4 mt-[13px]\">\n <div className=\"__back__section flex justify-between\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n\n <div\n onMouseEnter={HandletooltipHover}\n onMouseLeave={HandletooltipHover}\n className=\"flex justify-center items-center\"\n >\n <div\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n className={`__report__tooltip__section transition-all delay-100 ${\n IstooltipHover ? \"\" : \"hidden\"\n } hover:cursor-pointer border border-[#FBBC5E] bg-gradient-to-r from-[#FBBC5E33] to-[#F3A15133] px-[12px] py-[2px] rounded-[8px] text-[12px] font-medium font-body mr-[10px] max-[768px]:mr-[10px]`}\n >\n Report this event\n </div>\n <Flag\n onClick={() => {\n setReportModal(!isreportModal);\n }}\n />\n </div>\n </div>\n {isreportModal ? (\n <AssetsReportModal\n handleModalStatus={handleCloseReportModal}\n idToReport={eventData?._id}\n contentType={\"event\"}\n />\n ) : (\n <></>\n )}\n </div>\n <div className=\"MAIN_CONTENT_CONTAINER__ relative mt-[30px] px-4 lg:pb-[70px] border-b border-[#5a5a5a80] max-[768px]:mb-[50px] flex flex-col lg:flex-row py-[16px] max-[1280px]:py-[25px] gap-4\">\n <div className=\"__LEFT__ w-[100%] lg:w-[59%] max-[1024px]:w-auto max-[1024px]:p-0 max-[1280px]:p-0 \">\n <div className=\" mb-6 md:mb-[19px] z-10 relative rounded flex justify-center items-center\">\n <Zoom>\n <div className=\"relative w-full rounded-lg\">\n <img\n className=\"h-full w-full object-cover aspect-[740/390] rounded-lg\"\n src={eventData.promoBanner}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = HeroImg;\n }}\n alt=\"\"\n />\n <div className=\"absolute top-[20px] right-[20px] flex items-stretch gap-2\">\n <span className=\"rounded-[4px] bg-[rgba(67,67,67,0.40)] text-[10px] lg:text-[13px] font-semibold leading-[10.8px] py-[5px] px-[6px] lg:py-[10px] lg:px-[13px] backdrop:blur-sm grid place-content-center\">\n {eventData.chipText} Event\n </span>\n {!isEventBooked && (\n <span className=\"__ETA__ rounded-[4px] bg-[#8A5F1E] py-[5px] px-[6px] lg:py-[10px] lg:px-[13px] text-[12px] md:text-[14px] lg:text-[20px] font-semibold leading-[16.6px]\">\n {countDownText}\n </span>\n )}\n </div>\n </div>\n </Zoom>\n <Zoom delay={500}></Zoom>\n </div>\n <div className=\"relative\">\n <div className=\"volumetric-card-left-shadow \"></div>\n <div className=\"lg:flex jusitfy-between mb-[21px] relative z-10 gap-10 md:gap-8 lg:gap-14 pt-[36px] max-[768px]:pt-[16px]\">\n <div className=\"__music__detail__description__main\">\n <div className=\"__header__main\">\n <span className=\"font-body font-medium text-[#FFFFFF66] text-[14px]\">\n Description:\n </span>\n </div>\n <div\n className=\"__description__main pr-[40px] max-[768px]:p-0 max-[768px]:[&>p]:text-[13px] [&>p]:text-[16px] [&>p]:text-white/90 inner-html-headings pt-4 [&>ul]:list-disc [&>ul]:ml-5 [&>ol]:list-decimal [&>ol]:ml-5\"\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(eventData.description),\n }}\n >\n {/* <h4 className=\"__DESC_HEADING__ mt-4 text-[20px] font-bold\">\n {eventData.description}\n </h4>\n <p className=\"text-[16px] text-white/90 pt-[10px] font-body font-light max-[768px]:text-[13px]\">\n {eventData.description}\n </p> */}\n </div>\n </div>\n </div>\n <div className=\"volumetric-card-right-shadow\"></div>\n </div>\n <div className=\"_DATE_TIME_CONTAINER__ mt-[30px] text-[14px] lg:text-[16px]\">\n <p className=\"font-bold\">\n <span className=\"text-[#fbbc5e]\">Event Entry Time:</span>{\" \"}\n {dateFormat(eventData.entryTime, \"h:MM TT\")}\n </p>\n <p className=\"mt-4 font-bold\">\n <span className=\"text-[#fbbc5e]\">Start Time:</span>{\" \"}\n {dateFormat(eventData.startTime, \"h:MM TT\")}\n </p>\n <p className=\"mt-4 font-bold\">\n <span className=\"text-[#fbbc5e]\">End Time:</span>{\" \"}\n {dateFormat(eventData.endTime, \"h:MM TT\")}\n </p>\n <p className=\"mt-4 text-[12px] lg:text-[14px] text-white/50 font-semibold leading-[18.55px]\">\n Ensure you arrive before the start time of the event; otherwise,\n entry may be unavailable.\n </p>\n </div>\n\n {/* Add Video Player here */}\n </div>\n <div className=\"__RIGHT__ w-[100%] lg:w-[41%] max-[1024px]:w-auto max-[1024px]:h-auto max-[1024px]:mt-[18px]\">\n <div className=\"__entertainment_assets_heading flex flex-col mb-[16px] lg:mb-[20px] sm:flex justify-between pt-4 px-[30px] max-[768px]:p-0\">\n <div className=\"__heading leading-[40px]\">\n <h4 className=\"text-[24px] font-heading text-[#ffffff]\">\n {eventData.name}\n </h4>\n </div>\n <div className=\"__creator__main pt-[28px]\">\n <h6 className=\"text-[14px] text-white/40 font-body font-semibold\">\n Creator:\n </h6>\n {/* {isFetchingChannel && <div className=\"min-h-[240px] grid place-content-center\"><Loader/></div>} */}\n {/* {(isErrorChannel || channelData?.response?.errorCode != 0) && <h2 className=\"font-semibold mt-4 text-white/70\">Channel not found</h2>} */}\n <Link\n to={`/marketplace/entertainment/channels/${eventData.creatorDetails.channelHandle}`}\n >\n <div className=\"__creator__profiler__main pt-[14px] flex gap-[6px]\">\n <img\n src={eventData.creatorDetails.channelThumbnail}\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src =\n \"https://creater-dashboard.s3.amazonaws.com/channelThumbnail/default.jpeg\";\n }}\n className=\"w-[52px] h-[52px] rounded-[50%]\"\n alt=\"__creator_profile__img\"\n />\n <div>\n <h5 className=\"text-[16px] font-body font-semibold\">\n {eventData.creatorDetails.channelName}\n </h5>\n <span className=\"text-[14px] font-body font-medium text-[#FFFFFF99]\">\n @{eventData.creatorDetails.channelHandle}\n </span>\n </div>\n </div>\n </Link>\n </div>\n <div className=\"__DATE_TIME__ pt-[28px] flex items-center gap-[9px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n {\" \"}\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.4 4.4H20V3.2C20 2.88174 19.8736 2.57652 19.6485 2.35147C19.4235 2.12643 19.1183 2 18.8 2C18.4817 2 18.1765 2.12643 17.9515 2.35147C17.7264 2.57652 17.6 2.88174 17.6 3.2V4.4H10.4V3.2C10.4 2.88174 10.2736 2.57652 10.0485 2.35147C9.82348 2.12643 9.51826 2 9.2 2C8.88174 2 8.57652 2.12643 8.35147 2.35147C8.12643 2.57652 8 2.88174 8 3.2V4.4H5.6C4.64522 4.4 3.72955 4.77928 3.05442 5.45442C2.37928 6.12955 2 7.04522 2 8V22.4C2 23.3548 2.37928 24.2705 3.05442 24.9456C3.72955 25.6207 4.64522 26 5.6 26H22.4C23.3548 26 24.2705 25.6207 24.9456 24.9456C25.6207 24.2705 26 23.3548 26 22.4V8C26 7.04522 25.6207 6.12955 24.9456 5.45442C24.2705 4.77928 23.3548 4.4 22.4 4.4ZM23.6 22.4C23.6 22.7183 23.4736 23.0235 23.2485 23.2485C23.0235 23.4736 22.7183 23.6 22.4 23.6H5.6C5.28174 23.6 4.97652 23.4736 4.75147 23.2485C4.52643 23.0235 4.4 22.7183 4.4 22.4V14H23.6V22.4ZM23.6 11.6H4.4V8C4.4 7.68174 4.52643 7.37652 4.75147 7.15147C4.97652 6.92643 5.28174 6.8 5.6 6.8H8V8C8 8.31826 8.12643 8.62348 8.35147 8.84853C8.57652 9.07357 8.88174 9.2 9.2 9.2C9.51826 9.2 9.82348 9.07357 10.0485 8.84853C10.2736 8.62348 10.4 8.31826 10.4 8V6.8H17.6V8C17.6 8.31826 17.7264 8.62348 17.9515 8.84853C18.1765 9.07357 18.4817 9.2 18.8 9.2C19.1183 9.2 19.4235 9.07357 19.6485 8.84853C19.8736 8.62348 20 8.31826 20 8V6.8H22.4C22.7183 6.8 23.0235 6.92643 23.2485 7.15147C23.4736 7.37652 23.6 7.68174 23.6 8V11.6Z\"\n fill=\"#CEC9C5\"\n />\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[16px] font-bold leading-[24px]\">\n {dateFormat(eventData.startTime, \"ddd, mmm dd, yyyy h:MM TT\")}\n </p>\n </div>\n <div className=\"__LOCATION__ pt-[17px] flex items-center gap-[9px]\">\n <div className=\"max-[568px]:self-start max-[568px]:pt-1\">\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_3707_10888)\">\n <path\n d=\"M22.043 20.2733L15.8568 26.4554C15.613 26.6991 15.3235 26.8924 15.0049 27.0243C14.6864 27.1562 14.3449 27.2241 14 27.2241C13.6552 27.2241 13.3137 27.1562 12.9951 27.0243C12.6765 26.8924 12.387 26.6991 12.1433 26.4554L5.95702 20.2733C4.90068 19.2181 4.06272 17.9654 3.491 16.5867C2.91927 15.2079 2.62496 13.7302 2.62488 12.2378C2.6248 10.7455 2.91894 9.26771 3.49052 7.88891C4.0621 6.51012 4.89992 5.25729 5.95614 4.20197C7.01236 3.14666 8.2663 2.30951 9.64637 1.73833C11.0264 1.16715 12.5056 0.873128 13.9994 0.873047C15.4932 0.872966 16.9724 1.16683 18.3525 1.73786C19.7326 2.30889 20.9867 3.1459 22.043 4.2011C23.0994 5.25637 23.9375 6.5092 24.5092 7.88805C25.0809 9.26689 25.3752 10.7448 25.3752 12.2372C25.3752 13.7297 25.0809 15.2076 24.5092 16.5864C23.9375 17.9653 23.0994 19.2181 22.043 20.2733ZM20.188 6.05606C19.3754 5.24422 18.4107 4.60024 17.3489 4.16088C16.2872 3.72151 15.1492 3.49538 14 3.49538C12.8508 3.49538 11.7128 3.72151 10.6511 4.16088C9.58936 4.60024 8.62464 5.24422 7.81202 6.05606C6.9994 6.8679 6.35479 7.83169 5.915 8.8924C5.47522 9.95312 5.24886 11.09 5.24886 12.2381C5.24886 13.3862 5.47522 14.5231 5.915 15.5838C6.35479 16.6445 6.9994 17.6083 7.81202 18.4201L14 24.5987L20.188 18.4201C21.0008 17.6084 21.6455 16.6446 22.0854 15.5839C22.5252 14.5232 22.7516 13.3863 22.7516 12.2381C22.7516 11.0899 22.5252 9.95304 22.0854 8.89231C21.6455 7.83159 21.0008 6.86782 20.188 6.05606ZM14 15.7347C13.5339 15.7453 13.0704 15.6627 12.6367 15.4918C12.203 15.3209 11.8079 15.0651 11.4745 14.7396C11.1411 14.414 10.8761 14.0252 10.6952 13.5959C10.5143 13.1667 10.421 12.7056 10.4209 12.2399C10.4208 11.7741 10.5138 11.313 10.6945 10.8837C10.8752 10.4543 11.14 10.0654 11.4732 9.73963C11.8065 9.4139 12.2015 9.15797 12.6351 8.98687C13.0687 8.81576 13.5322 8.73292 13.9983 8.74322C14.9127 8.76342 15.783 9.14048 16.4227 9.79367C17.0624 10.4469 17.4207 11.3243 17.4209 12.2381C17.4211 13.1519 17.0632 14.0295 16.4239 14.6831C15.7845 15.3366 14.9145 15.7141 14 15.7347Z\"\n fill=\"white\"\n fillOpacity=\"0.7\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3707_10888\">\n <rect width=\"28\" height=\"27.973\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n\n <p className=\"text-white/70 text-[12px] lg:text-[16px] font-bold leading-[24px]\">\n {eventData.chipText == \"Volumetric\" ? \"Expo Dome\" : \"\"}\n {eventData.chipText == \"360\" ? \"360 Lounge\" : \"\"}\n {eventData.chipText == \"180\" ? \"180 Lounge\" : \"\"}\n </p>\n </div>\n <div className=\"__PRICE__ pt-[30px] flex items-stretch gap-[9px]\">\n <img src={CoinImage} className=\"w-[26px] h-[26px]\" alt=\"\" />\n {eventData.priceFiat == 0 ? (\n <p className=\"text-[12px] md:text-[16px] lg:text-[20px] text-[#fbbc5e] font-bold leading-[30px]\">\n Free\n </p>\n ) : (\n <p className=\"text-[16px] lg:text-[20px] text-[#fbbc5e] font-bold leading-[30px]\">\n {sanitizeStringToNumber(eventData.priceFiat)} USD |\n <p className=\"inline text-[#ffdf6e]\">\n {\" \"}\n {convertUsdToFstrPrice(eventData.priceFiat)} FSTR{\" \"}\n <p className=\"inlconvertUsdToFstrPriceine text-[16px] leading-[24px]\">\n (≈ {convertUsdToMarketFstrUsd(eventData.priceFiat)} USD)\n </p>\n </p>\n </p>\n )}\n </div>\n <div className=\"__CATEGORY__main pt-[28px]\">\n <h6 className=\"text-[14px] text-white/40 font-body font-semibold\">\n Category:\n </h6>\n <span className=\"font-body font-medium text-[#fff] leading-[21.20px]\">\n {eventData.chipText}\n </span>\n </div>\n <div className=\"__TAGS__main pt-[28px]\">\n <h6 className=\"text-[14px] text-white/40 font-body font-semibold\">\n Tags:\n </h6>\n <span className=\"text-[16px] font-body font-medium leading-[21.20px]\">\n {eventData.tags.join(\", \")}\n </span>\n </div>\n <div className=\"__BUTTON_CONTAINER__ mt-[28px]\">\n {accessToken &&\n (addEventLoading == true || userEventsFetching == true ? (\n <div className=\"grid place-content-center py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] z-10\">\n <Loader />\n </div>\n ) : (\n <>\n {\" \"}\n {!addEventLoading &&\n !userEventsFetching &&\n !isEventBooked &&\n !isEventEnded &&\n (eventData.priceFiat == 0 ? (\n <Free\n // title={\"haha\"}\n isLocked={!accessToken}\n handleData={() =>\n addParticipantToEventTrigger({\n eventId: params.id,\n })\n }\n />\n ) : (\n <button\n className=\"w-full btn-gradient py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] rounded-[8px] text-black text-[14px] lg:text-[16px] font-bold btn-gradient-disabled\"\n onClick={() => buyEventTicketHandler()}\n disabled={isEventEnded}\n >\n {\" \"}\n Buy Event Tickets\n </button>\n ))}\n {isEventEnded && (\n <>\n <button\n className=\"w-full btn-gradient py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] rounded-[8px] text-black text-[14px] lg:text-[16px] font-bold btn-gradient-disabled\"\n onClick={() => buyEventTicketHandler()}\n disabled={isEventEnded}\n >\n {\" \"}\n Buy Event Tickets\n </button>\n <p className=\"mt-4 text-[#FF6155] text-[16px] font-medium leading-[21.2px] text-center\">\n This event has already started\n </p>\n </>\n )}\n {isEventBooked && !isEventEnded && (\n <div className=\"bg-[#25B39E]/20 text-[#25B39E] border border-[#25B39E] py-[8px] px-[24px] lg:py-[12px] lg:px-[48px] rounded-[8px] font-bold grid place-content-center text-center\">\n Event starts in {countDownText}\n </div>\n )}\n {isEventBooked && !isEventEnded && (\n <p className=\"text-[14px] text-center text-white/50\">\n You will be able to access the events on Oculus at the\n scheduled entry time.\n </p>\n )}\n </>\n ))}\n {!accessToken && (\n <div className=\"relative\">\n <img src={DummyCart} className=\"blur w-full\" alt=\"\" />\n <div\n className=\"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-center text-white font-bold w-full flex justify-center items-center\"\n style={{\n zIndex: 10, // Ensures the text is on top of the image\n }}\n >\n <button\n type=\"button\"\n className=\"flex font-bold text-sm md:text-base rounded-lg btn-gradient hover:text-white w-auto text-black py-3 px-5 mt-3 items-center\"\n onClick={() =>\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n })\n }\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"mb-1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.7734 10.9092C11.3506 10.9092 11.0078 10.5664 11.0078 10.1436V5.6853C11.0078 4.18271 9.78534 2.9602 8.28271 2.9602C6.78012 2.9602 5.55762 4.18267 5.55762 5.6853V8.27833C5.55762 8.70117 5.21484 9.04395 4.79199 9.04395C4.36915 9.04395 4.02637 8.70117 4.02637 8.27833V5.6853C4.02637 3.33833 5.93574 1.42896 8.28271 1.42896C10.6297 1.42896 12.5391 3.33833 12.5391 5.6853V10.1436C12.5391 10.5664 12.1963 10.9092 11.7734 10.9092Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M12.9411 15.5455H3.62432C2.75447 15.5455 2.04932 14.8404 2.04932 13.9705V8.58403C2.04932 7.71419 2.75447 7.00903 3.62432 7.00903H12.9411C13.811 7.00903 14.5161 7.71419 14.5161 8.58403V13.9705C14.5161 14.8404 13.811 15.5455 12.9411 15.5455Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M3.41587 14.2762H3.33696C3.08843 14.2762 2.88696 14.0747 2.88696 13.8262V8.72832C2.88696 8.47979 3.08843 8.27832 3.33696 8.27832H3.41587C3.6644 8.27832 3.86587 8.47979 3.86587 8.72832V13.8262C3.86587 14.0747 3.6644 14.2762 3.41587 14.2762Z\"\n fill=\"currentColor\"\n />\n </svg>\n   Sign In To Continue\n </button>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n <div className=\"__VENUE_INSTRUCTIONS_CONT__ mt-[46px] lg:max-w-[60%]\">\n <div className=\"flex justify-start items-center gap-[12px]\">\n <img src={LocationImage} className=\"w-[32px] h-[32px]\" alt=\"\" />\n <p className=\"text-[20px] font-bold\">How to reach the venue</p>\n </div>\n <p className=\"mt-[26px] text-[16px] text-white/90\">\n {eventData.chipText == \"Volumetric\" &&\n \"All Volumetric events are hosted at the Expo Dome. To reach the Expo Dome, you need to follow below steps\"}\n {eventData.chipText == \"360\" &&\n \"All 360 events are hosted at the 360 Room. To reach the 360 Room, you need to follow below steps\"}\n {eventData.chipText == \"180\" &&\n \"All 360 events are hosted at the 180 Room. To reach the 180 Room, you need to follow below steps\"}\n </p>\n <p className=\"mt-[26px] text-[16px] text-white/90\">\n <span className=\"font-bold\">Step 1- </span>Login to the oculus app.\n </p>\n <p className=\"mt-[26px] text-[16px] text-white/90\">\n <span className=\"font-bold\">Step 2- </span>Please utilize the\n Entertainment lift located in the Lift Lobby on the reception level.\n </p>\n <p className=\"mt-[26px] text-[16px] text-white/90\">\n <span className=\"font-bold\">Step 3- </span>Select the{\" \"}\n {eventData.chipText == \"Volumetric\" ? \"“Expo Dome” \" : \"\"}\n {eventData.chipText == \"360\" ? \"“360 Room” \" : \"\"}\n {eventData.chipText == \"180\" ? \"“180 Room” \" : \"\"}\n option from the interactive panel inside the lift, and voila! You'll\n be seamlessly teleported to the event venue.\n </p>\n </div>\n <div className=\"__VIDEO_PLAYER_CONTAINER__ mt-[40px] w-full max-w-[740px] h-[389px] rounded-lg max-lg:mx-auto\">\n {!videoPlaying && (\n <div\n className=\"relative w-full h-full bg-center bg-no-repeat bg-cover rounded-lg\"\n // style={{\n // backgroundImage: `url('${HeroImg}')`,\n // }}\n >\n <img\n className=\"absolute top-0 left-0 w-full h-full object-cover rounded-lg\"\n src={eventData.promoBanner}\n alt=\"video-thumb\"\n onError={({ currentTarget }) => {\n currentTarget.onerror = null; // prevents looping\n currentTarget.src = HeroImg;\n }}\n />\n <div\n className=\"absolute h-full w-full flex flex-col\n justify-center items-center gap-4 events_card_gradient rounded-lg cursor-pointer z-20\"\n onClick={() => setVideoPlaying(true)}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"48\"\n height=\"48\"\n viewBox=\"0 0 48 48\"\n fill=\"none\"\n >\n <path\n d=\"M24 3C19.8466 3 15.7865 4.23163 12.333 6.53914C8.8796 8.84665 6.18798 12.1264 4.59854 15.9636C3.0091 19.8009 2.59323 24.0233 3.40352 28.0969C4.21381 32.1705 6.21386 35.9123 9.15077 38.8492C12.0877 41.7861 15.8295 43.7862 19.9031 44.5965C23.9767 45.4068 28.1991 44.9909 32.0364 43.4015C35.8736 41.812 39.1534 39.1204 41.4609 35.667C43.7684 32.2135 45 28.1534 45 24C45 18.4305 42.7875 13.089 38.8493 9.15076C34.911 5.21249 29.5696 3 24 3ZM35.1705 25.3425L17.1705 34.3425C16.9418 34.4568 16.6876 34.5107 16.4321 34.4992C16.1767 34.4876 15.9284 34.4109 15.711 34.2764C15.4935 34.1419 15.314 33.954 15.1896 33.7306C15.0651 33.5072 14.9999 33.2557 15 33V15C15.0001 14.7444 15.0656 14.4931 15.1901 14.2699C15.3147 14.0467 15.4942 13.859 15.7116 13.7247C15.929 13.5904 16.1772 13.5138 16.4325 13.5023C16.6878 13.4908 16.9419 13.5448 17.1705 13.659L35.1705 22.659C35.4193 22.7837 35.6285 22.9752 35.7748 23.212C35.921 23.4488 35.9984 23.7217 35.9984 24C35.9984 24.2783 35.921 24.5512 35.7748 24.788C35.6285 25.0248 35.4193 25.2163 35.1705 25.341\"\n fill=\"#F0F0F0\"\n />\n </svg>\n <p className=\"text-[#f0f0f0] text-[20px] font-semibold leading-[28px]\">\n Watch Promo Video\n </p>\n </div>\n </div>\n )}\n {videoPlaying && (\n <ReactPlayer\n controls\n width=\"100%\"\n height=\"100%\"\n playing={videoPlaying}\n url={eventData.promoVideo}\n />\n )}\n </div>\n <div className=\"mt-[70px] sticky w-[200vw] -translate-x-[100vw] border-b border-[#5a5a5a80]\" />\n <div className=\"__SUGGESTED_EVENTS_CONTAINER mt-[36px]\">\n <h4 className=\"font-heading text-[20px] font-normal leading-[30px]\">\n Suggested Events\n </h4>\n {isReccFetching && (\n <div className=\"h-[500px] grid place-content-center\">\n <Loader />\n </div>\n )}\n {!isReccFetching && isReccDataAvailable && (\n <div className=\"__CAROUSEL_CONTAINER__ mt-[20px] px-4 lg:px-0\">\n <Slider className=\"carousel-section\" {...sliderSettings}>\n {recommendedData.map((item, ind) => (\n <EventCard\n key={ind}\n data={{\n ...item,\n isCarousel: true,\n }}\n />\n ))}\n </Slider>\n </div>\n )}\n </div>\n <ComingSoon\n status={showComingSoonPopup}\n text=\"Event tickets purchases will soon be available. Stay tuned!\"\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </>\n );\n};\n\nexport default EventDetail;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module Avatar-Landing-Component\n *@developer Shubham K\n */\nimport React, { useState, useEffect } from \"react\";\n\nimport Loader from \"components/Loader/Loader\";\nimport SliderCards from \"components/partials/SliderCards\";\nimport SliderHeader from \"components/partials/SliderHeader\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport { useGetListMarketplaceAvatarQuery } from \"store/slicer/Marketplace\";\nimport ComingSoon from \"components/popup/comingsoon\";\nimport { calculateTotalPages } from \"utils\";\n\nconst dummyData = [\n {\n id: 0,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 1,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 2,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 3,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 4,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 5,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 6,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n {\n id: 7,\n heading: \"Lumina Vox\",\n price: \"US$ 9.99\",\n isComing: false,\n },\n];\n\nconst AvatarsList = () => {\n const [showComingSoonPopup, setShowComingSoonPopup] = useState(false);\n const navigate = useNavigate();\n const params = useParams();\n const categorytype = params.categorytype;\n const [pageNum, setPageNum] = useState(1);\n const [allData, setAllData] = useState([]);\n const [totalPages, setTotalPages] = useState(0);\n const limit = 8;\n\n let { data, isFetching, isSuccess, isError } =\n useGetListMarketplaceAvatarQuery({\n searchQuery: \"\",\n species: categorytype,\n page: pageNum,\n limit: limit,\n });\n const handlePageChange = () => {\n setPageNum((prevPageNum) => prevPageNum + 1);\n };\n useEffect(() => {\n let filteredData = [];\n if (isSuccess && data?.response?.statusEnum == 1) {\n setTotalPages(\n calculateTotalPages(data.response?.data?.pagination.totalCount, limit)\n );\n data = data.response.data.data;\n filteredData = data.map((item) => ({\n ...item,\n heading: item.assetName,\n price: item.priceFiat ? `${item.priceFiat} USD` : \"Free\",\n star: item.priceToken,\n thumbnail: item.thumbnail?.url,\n }));\n // filteredData = filteredData.filter(\n // (item) => item.species.toLowerCase() == categorytype\n // );\n if (pageNum > 1) {\n console.log(\"tottal\", pageNum, filteredData);\n\n setAllData((prevData) => [...prevData, ...filteredData]);\n } else {\n setAllData(() => [...filteredData]);\n }\n }\n }, [isFetching, data]);\n\n if (!isFetching && (isError || data?.response?.statusEnum != 1)) {\n return (\n <div className=\"h-screen w-full text-white/70 grid place-content-center\">\n <p>Something went wrong</p>\n </div>\n );\n }\n\n return (\n <div className=\"px-2\">\n <div className=\"__BACK_BTN_CONTAINER__\">\n <button\n onClick={() => navigate(-1)}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-dark rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n </div>\n <div className=\"mt-[60px]\">\n <SliderHeader title={`${categorytype} Avatars`} />\n <div className=\"__butler__slider__container py-[40px] max-[768px]:py-[10px] relative z-[10]\">\n <>\n <div\n data-testid=\"slider-card\"\n className=\"__slider_card_container py-[10px] flex justify-start items-center flex-wrap gap-[60px]\"\n >\n {allData?.map((data) => {\n return (\n <SliderCards\n key={data._id}\n item={data}\n id={categorytype}\n type=\"COMP\"\n baseRoute=\"marketplace/avatars\"\n setShowComingSoonPopup={setShowComingSoonPopup}\n />\n );\n })}\n </div>\n <div className=\"flex justify-center\">\n {!isFetching && totalPages && totalPages > pageNum ? (\n <button\n onClick={handlePageChange}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n ) : null}\n </div>\n </>\n </div>\n </div>\n {isFetching ? (\n <div class=\"__explore_default_button flex justify-center items-center h-[30vh] max-[768px]:flex-none\">\n <Loader />\n </div>\n ) : null}\n <ComingSoon\n status={showComingSoonPopup}\n text={`This avatar is on the way, and you'll soon have the opportunity to own this asset. Stay tuned!`}\n handleData={() => {\n setShowComingSoonPopup(false);\n }}\n />\n </div>\n );\n};\n\nexport default AvatarsList;\n","/*!\n * react-paypal-js v8.7.0 (2024-09-16T17:52:54.237Z)\n * Copyright 2020-present, PayPal, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport React, { createContext, useContext, useRef, useState, useEffect, useReducer } from 'react';\n\n/**\n * Enum for the SDK script resolve status,\n *\n * @enum {string}\n */\nvar SCRIPT_LOADING_STATE;\n(function (SCRIPT_LOADING_STATE) {\n SCRIPT_LOADING_STATE[\"INITIAL\"] = \"initial\";\n SCRIPT_LOADING_STATE[\"PENDING\"] = \"pending\";\n SCRIPT_LOADING_STATE[\"REJECTED\"] = \"rejected\";\n SCRIPT_LOADING_STATE[\"RESOLVED\"] = \"resolved\";\n})(SCRIPT_LOADING_STATE || (SCRIPT_LOADING_STATE = {}));\n/**\n * Enum for the PayPalScriptProvider context dispatch actions\n *\n * @enum {string}\n */\nvar DISPATCH_ACTION;\n(function (DISPATCH_ACTION) {\n DISPATCH_ACTION[\"LOADING_STATUS\"] = \"setLoadingStatus\";\n DISPATCH_ACTION[\"RESET_OPTIONS\"] = \"resetOptions\";\n DISPATCH_ACTION[\"SET_BRAINTREE_INSTANCE\"] = \"braintreeInstance\";\n})(DISPATCH_ACTION || (DISPATCH_ACTION = {}));\n/**\n * Enum for all the available hosted fields\n *\n * @enum {string}\n */\nvar PAYPAL_HOSTED_FIELDS_TYPES;\n(function (PAYPAL_HOSTED_FIELDS_TYPES) {\n PAYPAL_HOSTED_FIELDS_TYPES[\"NUMBER\"] = \"number\";\n PAYPAL_HOSTED_FIELDS_TYPES[\"CVV\"] = \"cvv\";\n PAYPAL_HOSTED_FIELDS_TYPES[\"EXPIRATION_DATE\"] = \"expirationDate\";\n PAYPAL_HOSTED_FIELDS_TYPES[\"EXPIRATION_MONTH\"] = \"expirationMonth\";\n PAYPAL_HOSTED_FIELDS_TYPES[\"EXPIRATION_YEAR\"] = \"expirationYear\";\n PAYPAL_HOSTED_FIELDS_TYPES[\"POSTAL_CODE\"] = \"postalCode\";\n})(PAYPAL_HOSTED_FIELDS_TYPES || (PAYPAL_HOSTED_FIELDS_TYPES = {}));\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nfunction __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}\ntypeof 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\n/*********************************************\n * Common reference to the script identifier *\n *********************************************/\n// keep this script id value in kebab-case format\nvar SCRIPT_ID = \"data-react-paypal-script-id\";\nvar SDK_SETTINGS = {\n DATA_CLIENT_TOKEN: \"dataClientToken\",\n DATA_JS_SDK_LIBRARY: \"dataJsSdkLibrary\",\n DATA_LIBRARY_VALUE: \"react-paypal-js\",\n DATA_NAMESPACE: \"dataNamespace\",\n DATA_SDK_INTEGRATION_SOURCE: \"dataSdkIntegrationSource\",\n DATA_USER_ID_TOKEN: \"dataUserIdToken\"\n};\nvar LOAD_SCRIPT_ERROR = \"Failed to load the PayPal JS SDK script.\";\n/****************************\n * Braintree error messages *\n ****************************/\nvar EMPTY_BRAINTREE_AUTHORIZATION_ERROR_MESSAGE = \"Invalid authorization data. Use dataClientToken or dataUserIdToken to authorize.\";\nvar braintreeVersion = \"3.84.0\";\nvar BRAINTREE_SOURCE = \"https://js.braintreegateway.com/web/\".concat(braintreeVersion, \"/js/client.min.js\");\nvar BRAINTREE_PAYPAL_CHECKOUT_SOURCE = \"https://js.braintreegateway.com/web/\".concat(braintreeVersion, \"/js/paypal-checkout.min.js\");\n/*********************\n * PayPal namespaces *\n *********************/\nvar DEFAULT_PAYPAL_NAMESPACE = \"paypal\";\nvar DEFAULT_BRAINTREE_NAMESPACE = \"braintree\";\n/*****************\n * Hosted Fields *\n *****************/\nvar HOSTED_FIELDS_CHILDREN_ERROR = \"To use HostedFields you must use it with at least 3 children with types: [number, cvv, expirationDate] includes\";\nvar HOSTED_FIELDS_DUPLICATE_CHILDREN_ERROR = \"Cannot use duplicate HostedFields as children\";\n/*******************\n * Script Provider *\n *******************/\nvar SCRIPT_PROVIDER_REDUCER_ERROR = \"usePayPalScriptReducer must be used within a PayPalScriptProvider\";\nvar CARD_FIELDS_DUPLICATE_CHILDREN_ERROR = \"Cannot use duplicate CardFields as children\";\nvar CARD_FIELDS_CONTEXT_ERROR = \"Individual CardFields must be rendered inside the PayPalCardFieldsProvider\";\n\n/**\n * Get the namespace from the window in the browser\n * this is useful to get the paypal object from window\n * after load PayPal SDK script\n *\n * @param namespace the name space to return\n * @returns the namespace if exists or undefined otherwise\n */\nfunction getPayPalWindowNamespace$1(namespace) {\n if (namespace === void 0) {\n namespace = DEFAULT_PAYPAL_NAMESPACE;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return window[namespace];\n}\n/**\n * Get a namespace from the window in the browser\n * this is useful to get the braintree from window\n * after load Braintree script\n *\n * @param namespace the name space to return\n * @returns the namespace if exists or undefined otherwise\n */\nfunction getBraintreeWindowNamespace(namespace) {\n if (namespace === void 0) {\n namespace = DEFAULT_BRAINTREE_NAMESPACE;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return window[namespace];\n}\n/**\n * Creates a string hash code based on the string argument\n *\n * @param str the source input string to hash\n * @returns string hash code\n */\nfunction hashStr(str) {\n var hash = \"\";\n for (var i = 0; i < str.length; i++) {\n var total = str[i].charCodeAt(0) * i;\n if (str[i + 1]) {\n total += str[i + 1].charCodeAt(0) * (i - 1);\n }\n hash += String.fromCharCode(97 + Math.abs(total) % 26);\n }\n return hash;\n}\nfunction generateErrorMessage(_a) {\n var reactComponentName = _a.reactComponentName,\n sdkComponentKey = _a.sdkComponentKey,\n _b = _a.sdkRequestedComponents,\n sdkRequestedComponents = _b === void 0 ? \"\" : _b,\n _c = _a.sdkDataNamespace,\n sdkDataNamespace = _c === void 0 ? DEFAULT_PAYPAL_NAMESPACE : _c;\n var requiredOptionCapitalized = sdkComponentKey.charAt(0).toUpperCase().concat(sdkComponentKey.substring(1));\n var errorMessage = \"Unable to render <\".concat(reactComponentName, \" /> because window.\").concat(sdkDataNamespace, \".\").concat(requiredOptionCapitalized, \" is undefined.\");\n // The JS SDK only loads the buttons component by default.\n // All other components like messages and marks must be requested using the \"components\" query parameter\n var requestedComponents = typeof sdkRequestedComponents === \"string\" ? sdkRequestedComponents : sdkRequestedComponents.join(\",\");\n if (!requestedComponents.includes(sdkComponentKey)) {\n var expectedComponents = [requestedComponents, sdkComponentKey].filter(Boolean).join();\n errorMessage += \"\\nTo fix the issue, add '\".concat(sdkComponentKey, \"' to the list of components passed to the parent PayPalScriptProvider:\") + \"\\n`<PayPalScriptProvider options={{ components: '\".concat(expectedComponents, \"'}}>`.\");\n }\n return errorMessage;\n}\n\n/**\n * Generate a new random identifier for react-paypal-js\n *\n * @returns the {@code string} containing the random library name\n */\nfunction getScriptID(options) {\n // exclude the data-react-paypal-script-id value from the options hash\n var _a = options,\n _b = SCRIPT_ID;\n _a[_b];\n var paypalScriptOptions = __rest(_a, [_b + \"\"]);\n return \"react-paypal-js-\".concat(hashStr(JSON.stringify(paypalScriptOptions)));\n}\n/**\n * Destroy the PayPal SDK from the document page\n *\n * @param reactPayPalScriptID the script identifier\n */\nfunction destroySDKScript(reactPayPalScriptID) {\n var scriptNode = self.document.querySelector(\"script[\".concat(SCRIPT_ID, \"=\\\"\").concat(reactPayPalScriptID, \"\\\"]\"));\n if (scriptNode === null || scriptNode === void 0 ? void 0 : scriptNode.parentNode) {\n scriptNode.parentNode.removeChild(scriptNode);\n }\n}\n/**\n * Reducer function to handle complex state changes on the context\n *\n * @param state the current state on the context object\n * @param action the action to be executed on the previous state\n * @returns a the same state if the action wasn't found, or a new state otherwise\n */\nfunction scriptReducer(state, action) {\n var _a, _b;\n switch (action.type) {\n case DISPATCH_ACTION.LOADING_STATUS:\n if (typeof action.value === \"object\") {\n return __assign(__assign({}, state), {\n loadingStatus: action.value.state,\n loadingStatusErrorMessage: action.value.message\n });\n }\n return __assign(__assign({}, state), {\n loadingStatus: action.value\n });\n case DISPATCH_ACTION.RESET_OPTIONS:\n // destroy existing script to make sure only one script loads at a time\n destroySDKScript(state.options[SCRIPT_ID]);\n return __assign(__assign({}, state), {\n loadingStatus: SCRIPT_LOADING_STATE.PENDING,\n options: __assign(__assign((_a = {}, _a[SDK_SETTINGS.DATA_SDK_INTEGRATION_SOURCE] = SDK_SETTINGS.DATA_LIBRARY_VALUE, _a), action.value), (_b = {}, _b[SCRIPT_ID] = \"\".concat(getScriptID(action.value)), _b))\n });\n case DISPATCH_ACTION.SET_BRAINTREE_INSTANCE:\n return __assign(__assign({}, state), {\n braintreePayPalCheckoutInstance: action.value\n });\n default:\n {\n return state;\n }\n }\n}\n// Create the React context to use in the script provider component\nvar ScriptContext = createContext(null);\n\n/**\n * Check if the context is valid and ready to dispatch actions.\n *\n * @param scriptContext the result of connecting to the context provider\n * @returns strict context avoiding null values in the type\n */\nfunction validateReducer(scriptContext) {\n if (typeof (scriptContext === null || scriptContext === void 0 ? void 0 : scriptContext.dispatch) === \"function\" && scriptContext.dispatch.length !== 0) {\n return scriptContext;\n }\n throw new Error(SCRIPT_PROVIDER_REDUCER_ERROR);\n}\n/**\n * Check if the dataClientToken or the dataUserIdToken are\n * set in the options of the context.\n * @type dataClientToken is use to pass a client token\n * @type dataUserIdToken is use to pass a client tokenization key\n *\n * @param scriptContext the result of connecting to the context provider\n * @throws an {@link Error} if both dataClientToken and the dataUserIdToken keys are null or undefined\n * @returns strict context if one of the keys are defined\n */\nvar validateBraintreeAuthorizationData = function (scriptContext) {\n var _a, _b;\n if (!((_a = scriptContext === null || scriptContext === void 0 ? void 0 : scriptContext.options) === null || _a === void 0 ? void 0 : _a[SDK_SETTINGS.DATA_CLIENT_TOKEN]) && !((_b = scriptContext === null || scriptContext === void 0 ? void 0 : scriptContext.options) === null || _b === void 0 ? void 0 : _b[SDK_SETTINGS.DATA_USER_ID_TOKEN])) {\n throw new Error(EMPTY_BRAINTREE_AUTHORIZATION_ERROR_MESSAGE);\n }\n return scriptContext;\n};\n\n/**\n * Custom hook to get access to the Script context and\n * dispatch actions to modify the state on the {@link ScriptProvider} component\n *\n * @returns a tuple containing the state of the context and\n * a dispatch function to modify the state\n */\nfunction usePayPalScriptReducer() {\n var scriptContext = validateReducer(useContext(ScriptContext));\n var derivedStatusContext = __assign(__assign({}, scriptContext), {\n isInitial: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.INITIAL,\n isPending: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.PENDING,\n isResolved: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.RESOLVED,\n isRejected: scriptContext.loadingStatus === SCRIPT_LOADING_STATE.REJECTED\n });\n return [derivedStatusContext, scriptContext.dispatch];\n}\n/**\n * Custom hook to get access to the ScriptProvider context\n *\n * @returns the latest state of the context\n */\nfunction useScriptProviderContext() {\n var scriptContext = validateBraintreeAuthorizationData(validateReducer(useContext(ScriptContext)));\n return [scriptContext, scriptContext.dispatch];\n}\n\n// Create the React context to use in the PayPal hosted fields provider\nvar PayPalHostedFieldsContext = createContext({});\n\n/**\n * Custom hook to get access to the PayPal Hosted Fields instance.\n * The instance represent the returned object after the render process\n * With this object a user can submit the fields and dynamically modify the cards\n *\n * @returns the hosted fields instance if is available in the component\n */\nfunction usePayPalHostedFields() {\n return useContext(PayPalHostedFieldsContext);\n}\n\n/**\nThis `<PayPalButtons />` component supports rendering [buttons](https://developer.paypal.com/docs/business/javascript-sdk/javascript-sdk-reference/#buttons) for PayPal, Venmo, and alternative payment methods.\nIt relies on the `<PayPalScriptProvider />` parent component for managing state related to loading the JS SDK script.\n*/\nvar PayPalButtons = function (_a) {\n var _b;\n var _c = _a.className,\n className = _c === void 0 ? \"\" : _c,\n _d = _a.disabled,\n disabled = _d === void 0 ? false : _d,\n children = _a.children,\n _e = _a.forceReRender,\n forceReRender = _e === void 0 ? [] : _e,\n buttonProps = __rest(_a, [\"className\", \"disabled\", \"children\", \"forceReRender\"]);\n var isDisabledStyle = disabled ? {\n opacity: 0.38\n } : {};\n var classNames = \"\".concat(className, \" \").concat(disabled ? \"paypal-buttons-disabled\" : \"\").trim();\n var buttonsContainerRef = useRef(null);\n var buttons = useRef(null);\n var _f = usePayPalScriptReducer()[0],\n isResolved = _f.isResolved,\n options = _f.options;\n var _g = useState(null),\n initActions = _g[0],\n setInitActions = _g[1];\n var _h = useState(true),\n isEligible = _h[0],\n setIsEligible = _h[1];\n var _j = useState(null),\n setErrorState = _j[1];\n function closeButtonsComponent() {\n if (buttons.current !== null) {\n buttons.current.close().catch(function () {\n // ignore errors when closing the component\n });\n }\n }\n if ((_b = buttons.current) === null || _b === void 0 ? void 0 : _b.updateProps) {\n buttons.current.updateProps({\n message: buttonProps.message\n });\n }\n // useEffect hook for rendering the buttons\n useEffect(function () {\n // verify the sdk script has successfully loaded\n if (isResolved === false) {\n return closeButtonsComponent;\n }\n var paypalWindowNamespace = getPayPalWindowNamespace$1(options.dataNamespace);\n // verify dependency on window object\n if (paypalWindowNamespace === undefined || paypalWindowNamespace.Buttons === undefined) {\n setErrorState(function () {\n throw new Error(generateErrorMessage({\n reactComponentName: PayPalButtons.displayName,\n sdkComponentKey: \"buttons\",\n sdkRequestedComponents: options.components,\n sdkDataNamespace: options[SDK_SETTINGS.DATA_NAMESPACE]\n }));\n });\n return closeButtonsComponent;\n }\n var decoratedOnInit = function (data, actions) {\n setInitActions(actions);\n if (typeof buttonProps.onInit === \"function\") {\n buttonProps.onInit(data, actions);\n }\n };\n try {\n buttons.current = paypalWindowNamespace.Buttons(__assign(__assign({}, buttonProps), {\n onInit: decoratedOnInit\n }));\n } catch (err) {\n return setErrorState(function () {\n throw new Error(\"Failed to render <PayPalButtons /> component. Failed to initialize: \".concat(err));\n });\n }\n // only render the button when eligible\n if (buttons.current.isEligible() === false) {\n setIsEligible(false);\n return closeButtonsComponent;\n }\n if (!buttonsContainerRef.current) {\n return closeButtonsComponent;\n }\n buttons.current.render(buttonsContainerRef.current).catch(function (err) {\n // component failed to render, possibly because it was closed or destroyed.\n if (buttonsContainerRef.current === null || buttonsContainerRef.current.children.length === 0) {\n // paypal buttons container is no longer in the DOM, we can safely ignore the error\n return;\n }\n // paypal buttons container is still in the DOM\n setErrorState(function () {\n throw new Error(\"Failed to render <PayPalButtons /> component. \".concat(err));\n });\n });\n return closeButtonsComponent;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, __spreadArray(__spreadArray([isResolved], forceReRender, true), [buttonProps.fundingSource], false));\n // useEffect hook for managing disabled state\n useEffect(function () {\n if (initActions === null) {\n return;\n }\n if (disabled === true) {\n initActions.disable().catch(function () {\n // ignore errors when disabling the component\n });\n } else {\n initActions.enable().catch(function () {\n // ignore errors when enabling the component\n });\n }\n }, [disabled, initActions]);\n return React.createElement(React.Fragment, null, isEligible ? React.createElement(\"div\", {\n ref: buttonsContainerRef,\n style: isDisabledStyle,\n className: classNames\n }) : children);\n};\nPayPalButtons.displayName = \"PayPalButtons\";\nfunction findScript(url, attributes) {\n var currentScript = document.querySelector(\"script[src=\\\"\".concat(url, \"\\\"]\"));\n if (currentScript === null) return null;\n var nextScript = createScriptElement(url, attributes);\n var currentScriptClone = currentScript.cloneNode();\n delete currentScriptClone.dataset.uidAuto;\n if (Object.keys(currentScriptClone.dataset).length !== Object.keys(nextScript.dataset).length) {\n return null;\n }\n var isExactMatch = true;\n Object.keys(currentScriptClone.dataset).forEach(function (key) {\n if (currentScriptClone.dataset[key] !== nextScript.dataset[key]) {\n isExactMatch = false;\n }\n });\n return isExactMatch ? currentScript : null;\n}\nfunction insertScriptElement(_a) {\n var url = _a.url,\n attributes = _a.attributes,\n onSuccess = _a.onSuccess,\n onError = _a.onError;\n var newScript = createScriptElement(url, attributes);\n newScript.onerror = onError;\n newScript.onload = onSuccess;\n document.head.insertBefore(newScript, document.head.firstElementChild);\n}\nfunction processOptions(options) {\n var environment = options.environment;\n var sdkBaseUrl = environment === \"sandbox\" ? \"https://www.sandbox.paypal.com/sdk/js\" : \"https://www.paypal.com/sdk/js\";\n delete options.environment;\n if (options.sdkBaseUrl) {\n sdkBaseUrl = options.sdkBaseUrl;\n delete options.sdkBaseUrl;\n }\n var optionsWithStringIndex = options;\n var _a = Object.keys(optionsWithStringIndex).filter(function (key) {\n return typeof optionsWithStringIndex[key] !== \"undefined\" && optionsWithStringIndex[key] !== null && optionsWithStringIndex[key] !== \"\";\n }).reduce(function (accumulator, key) {\n var value = optionsWithStringIndex[key].toString();\n key = camelCaseToKebabCase(key);\n if (key.substring(0, 4) === \"data\" || key === \"crossorigin\") {\n accumulator.attributes[key] = value;\n } else {\n accumulator.queryParams[key] = value;\n }\n return accumulator;\n }, {\n queryParams: {},\n attributes: {}\n }),\n queryParams = _a.queryParams,\n attributes = _a.attributes;\n if (queryParams[\"merchant-id\"] && queryParams[\"merchant-id\"].indexOf(\",\") !== -1) {\n attributes[\"data-merchant-id\"] = queryParams[\"merchant-id\"];\n queryParams[\"merchant-id\"] = \"*\";\n }\n return {\n url: \"\".concat(sdkBaseUrl, \"?\").concat(objectToQueryString(queryParams)),\n attributes: attributes\n };\n}\nfunction camelCaseToKebabCase(str) {\n var replacer = function (match, indexOfMatch) {\n return (indexOfMatch ? \"-\" : \"\") + match.toLowerCase();\n };\n return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, replacer);\n}\nfunction objectToQueryString(params) {\n var queryString = \"\";\n Object.keys(params).forEach(function (key) {\n if (queryString.length !== 0) queryString += \"&\";\n queryString += key + \"=\" + params[key];\n });\n return queryString;\n}\nfunction createScriptElement(url, attributes) {\n if (attributes === void 0) {\n attributes = {};\n }\n var newScript = document.createElement(\"script\");\n newScript.src = url;\n Object.keys(attributes).forEach(function (key) {\n newScript.setAttribute(key, attributes[key]);\n if (key === \"data-csp-nonce\") {\n newScript.setAttribute(\"nonce\", attributes[\"data-csp-nonce\"]);\n }\n });\n return newScript;\n}\nfunction loadScript(options, PromisePonyfill) {\n if (PromisePonyfill === void 0) {\n PromisePonyfill = Promise;\n }\n validateArguments(options, PromisePonyfill);\n if (typeof document === \"undefined\") return PromisePonyfill.resolve(null);\n var _a = processOptions(options),\n url = _a.url,\n attributes = _a.attributes;\n var namespace = attributes[\"data-namespace\"] || \"paypal\";\n var existingWindowNamespace = getPayPalWindowNamespace(namespace);\n if (!attributes[\"data-js-sdk-library\"]) {\n attributes[\"data-js-sdk-library\"] = \"paypal-js\";\n }\n if (findScript(url, attributes) && existingWindowNamespace) {\n return PromisePonyfill.resolve(existingWindowNamespace);\n }\n return loadCustomScript({\n url: url,\n attributes: attributes\n }, PromisePonyfill).then(function () {\n var newWindowNamespace = getPayPalWindowNamespace(namespace);\n if (newWindowNamespace) {\n return newWindowNamespace;\n }\n throw new Error(\"The window.\".concat(namespace, \" global variable is not available.\"));\n });\n}\nfunction loadCustomScript(options, PromisePonyfill) {\n if (PromisePonyfill === void 0) {\n PromisePonyfill = Promise;\n }\n validateArguments(options, PromisePonyfill);\n var url = options.url,\n attributes = options.attributes;\n if (typeof url !== \"string\" || url.length === 0) {\n throw new Error(\"Invalid url.\");\n }\n if (typeof attributes !== \"undefined\" && typeof attributes !== \"object\") {\n throw new Error(\"Expected attributes to be an object.\");\n }\n return new PromisePonyfill(function (resolve, reject) {\n if (typeof document === \"undefined\") return resolve();\n insertScriptElement({\n url: url,\n attributes: attributes,\n onSuccess: function () {\n return resolve();\n },\n onError: function () {\n var defaultError = new Error(\"The script \\\"\".concat(url, \"\\\" failed to load. Check the HTTP status code and response body in DevTools to learn more.\"));\n return reject(defaultError);\n }\n });\n });\n}\nfunction getPayPalWindowNamespace(namespace) {\n return window[namespace];\n}\nfunction validateArguments(options, PromisePonyfill) {\n if (typeof options !== \"object\" || options === null) {\n throw new Error(\"Expected an options object.\");\n }\n var environment = options.environment;\n if (environment && environment !== \"production\" && environment !== \"sandbox\") {\n throw new Error('The `environment` option must be either \"production\" or \"sandbox\".');\n }\n if (typeof PromisePonyfill !== \"undefined\" && typeof PromisePonyfill !== \"function\") {\n throw new Error(\"Expected PromisePonyfill to be a function.\");\n }\n}\n\n/**\n * Simple check to determine if the Braintree is a valid namespace.\n *\n * @param braintreeSource the source {@link BraintreeNamespace}\n * @returns a boolean representing if the namespace is valid.\n */\nvar isValidBraintreeNamespace = function (braintreeSource) {\n var _a, _b;\n if (typeof ((_a = braintreeSource === null || braintreeSource === void 0 ? void 0 : braintreeSource.client) === null || _a === void 0 ? void 0 : _a.create) !== \"function\" && typeof ((_b = braintreeSource === null || braintreeSource === void 0 ? void 0 : braintreeSource.paypalCheckout) === null || _b === void 0 ? void 0 : _b.create) !== \"function\") {\n throw new Error(\"The braintreeNamespace property is not a valid BraintreeNamespace type.\");\n }\n return true;\n};\n/**\n * Use `actions.braintree` to provide an interface for the paypalCheckoutInstance\n * through the createOrder, createBillingAgreement and onApprove callbacks\n *\n * @param braintreeButtonProps the component button options\n * @returns a new copy of the component button options casted as {@link PayPalButtonsComponentProps}\n */\nvar decorateActions = function (buttonProps, payPalCheckoutInstance) {\n var createOrderRef = buttonProps.createOrder;\n var createBillingAgreementRef = buttonProps.createBillingAgreement;\n var onApproveRef = buttonProps.onApprove;\n if (typeof createOrderRef === \"function\") {\n buttonProps.createOrder = function (data, actions) {\n return createOrderRef(data, __assign(__assign({}, actions), {\n braintree: payPalCheckoutInstance\n }));\n };\n }\n if (typeof createBillingAgreementRef === \"function\") {\n buttonProps.createBillingAgreement = function (data, actions) {\n return createBillingAgreementRef(data, __assign(__assign({}, actions), {\n braintree: payPalCheckoutInstance\n }));\n };\n }\n if (typeof onApproveRef === \"function\") {\n buttonProps.onApprove = function (data, actions) {\n return onApproveRef(data, __assign(__assign({}, actions), {\n braintree: payPalCheckoutInstance\n }));\n };\n }\n return __assign({}, buttonProps);\n};\n/**\n * Get the Braintree namespace from the component props.\n * If the prop `braintreeNamespace` is undefined will try to load it from the CDN.\n * This function allows users to set the braintree manually on the `BraintreePayPalButtons` component.\n *\n * Use case can be for example legacy sites using AMD/UMD modules,\n * trying to integrate the `BraintreePayPalButtons` component.\n * If we attempt to load the Braintree from the CDN won't define the braintree namespace.\n * This happens because the braintree script is an UMD module.\n * After detecting the AMD on the global scope will create an anonymous module using `define`\n * and the `BraintreePayPalButtons` won't be able to get access to the `window.braintree` namespace\n * from the global context.\n *\n * @param braintreeSource the source {@link BraintreeNamespace}\n * @returns the {@link BraintreeNamespace}\n */\nvar getBraintreeNamespace = function (braintreeSource) {\n if (braintreeSource && isValidBraintreeNamespace(braintreeSource)) {\n return Promise.resolve(braintreeSource);\n }\n return Promise.all([loadCustomScript({\n url: BRAINTREE_SOURCE\n }), loadCustomScript({\n url: BRAINTREE_PAYPAL_CHECKOUT_SOURCE\n })]).then(function () {\n return getBraintreeWindowNamespace();\n });\n};\n\n/**\nThis `<BraintreePayPalButtons />` component renders the [Braintree PayPal Buttons](https://developer.paypal.com/braintree/docs/guides/paypal/overview) for Braintree Merchants.\nIt relies on the `<PayPalScriptProvider />` parent component for managing state related to loading the JS SDK script.\n\nNote: You are able to make your integration using the client token or using the tokenization key.\n\n- To use the client token integration set the key `dataClientToken` in the `PayPayScriptProvider` component's options.\n- To use the tokenization key integration set the key `dataUserIdToken` in the `PayPayScriptProvider` component's options.\n*/\nvar BraintreePayPalButtons = function (_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n _c = _a.disabled,\n disabled = _c === void 0 ? false : _c,\n children = _a.children,\n _d = _a.forceReRender,\n forceReRender = _d === void 0 ? [] : _d,\n braintreeNamespace = _a.braintreeNamespace,\n merchantAccountId = _a.merchantAccountId,\n buttonProps = __rest(_a, [\"className\", \"disabled\", \"children\", \"forceReRender\", \"braintreeNamespace\", \"merchantAccountId\"]);\n var _e = useState(null),\n setErrorState = _e[1];\n var _f = useScriptProviderContext(),\n providerContext = _f[0],\n dispatch = _f[1];\n useEffect(function () {\n getBraintreeNamespace(braintreeNamespace).then(function (braintree) {\n var clientTokenizationKey = providerContext.options[SDK_SETTINGS.DATA_USER_ID_TOKEN];\n var clientToken = providerContext.options[SDK_SETTINGS.DATA_CLIENT_TOKEN];\n return braintree.client.create({\n authorization: clientTokenizationKey || clientToken\n }).then(function (clientInstance) {\n var merchantProp = merchantAccountId ? {\n merchantAccountId: merchantAccountId\n } : {};\n return braintree.paypalCheckout.create(__assign(__assign({}, merchantProp), {\n client: clientInstance\n }));\n }).then(function (paypalCheckoutInstance) {\n dispatch({\n type: DISPATCH_ACTION.SET_BRAINTREE_INSTANCE,\n value: paypalCheckoutInstance\n });\n });\n }).catch(function (err) {\n setErrorState(function () {\n throw new Error(\"\".concat(LOAD_SCRIPT_ERROR, \" \").concat(err));\n });\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [providerContext.options]);\n return React.createElement(React.Fragment, null, providerContext.braintreePayPalCheckoutInstance && React.createElement(PayPalButtons, __assign({\n className: className,\n disabled: disabled,\n forceReRender: forceReRender\n }, decorateActions(buttonProps, providerContext.braintreePayPalCheckoutInstance)), children));\n};\n\n/**\nThe `<PayPalMarks />` component is used for conditionally rendering different payment options using radio buttons.\nThe [Display PayPal Buttons with other Payment Methods guide](https://developer.paypal.com/docs/business/checkout/add-capabilities/buyer-experience/#display-paypal-buttons-with-other-payment-methods) describes this style of integration in detail.\nIt relies on the `<PayPalScriptProvider />` parent component for managing state related to loading the JS SDK script.\n\nThis component can also be configured to use a single funding source similar to the [standalone buttons](https://developer.paypal.com/docs/business/checkout/configure-payments/standalone-buttons/) approach.\nA `FUNDING` object is exported by this library which has a key for every available funding source option.\n*/\nvar PayPalMarks = function (_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n children = _a.children,\n markProps = __rest(_a, [\"className\", \"children\"]);\n var _c = usePayPalScriptReducer()[0],\n isResolved = _c.isResolved,\n options = _c.options;\n var markContainerRef = useRef(null);\n var _d = useState(true),\n isEligible = _d[0],\n setIsEligible = _d[1];\n var _e = useState(null),\n setErrorState = _e[1];\n /**\n * Render PayPal Mark into the DOM\n */\n var renderPayPalMark = function (mark) {\n var current = markContainerRef.current;\n // only render the mark when eligible\n if (!current || !mark.isEligible()) {\n return setIsEligible(false);\n }\n // Remove any children before render it again\n if (current.firstChild) {\n current.removeChild(current.firstChild);\n }\n mark.render(current).catch(function (err) {\n // component failed to render, possibly because it was closed or destroyed.\n if (current === null || current.children.length === 0) {\n // paypal marks container is no longer in the DOM, we can safely ignore the error\n return;\n }\n // paypal marks container is still in the DOM\n setErrorState(function () {\n throw new Error(\"Failed to render <PayPalMarks /> component. \".concat(err));\n });\n });\n };\n useEffect(function () {\n // verify the sdk script has successfully loaded\n if (isResolved === false) {\n return;\n }\n var paypalWindowNamespace = getPayPalWindowNamespace$1(options[SDK_SETTINGS.DATA_NAMESPACE]);\n // verify dependency on window object\n if (paypalWindowNamespace === undefined || paypalWindowNamespace.Marks === undefined) {\n return setErrorState(function () {\n throw new Error(generateErrorMessage({\n reactComponentName: PayPalMarks.displayName,\n sdkComponentKey: \"marks\",\n sdkRequestedComponents: options.components,\n sdkDataNamespace: options[SDK_SETTINGS.DATA_NAMESPACE]\n }));\n });\n }\n renderPayPalMark(paypalWindowNamespace.Marks(__assign({}, markProps)));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isResolved, markProps.fundingSource]);\n return React.createElement(React.Fragment, null, isEligible ? React.createElement(\"div\", {\n ref: markContainerRef,\n className: className\n }) : children);\n};\nPayPalMarks.displayName = \"PayPalMarks\";\n\n/**\nThis `<PayPalMessages />` messages component renders a credit messaging on upstream merchant sites.\nIt relies on the `<PayPalScriptProvider />` parent component for managing state related to loading the JS SDK script.\n*/\nvar PayPalMessages = function (_a) {\n var _b = _a.className,\n className = _b === void 0 ? \"\" : _b,\n _c = _a.forceReRender,\n forceReRender = _c === void 0 ? [] : _c,\n messageProps = __rest(_a, [\"className\", \"forceReRender\"]);\n var _d = usePayPalScriptReducer()[0],\n isResolved = _d.isResolved,\n options = _d.options;\n var messagesContainerRef = useRef(null);\n var messages = useRef(null);\n var _e = useState(null),\n setErrorState = _e[1];\n useEffect(function () {\n // verify the sdk script has successfully loaded\n if (isResolved === false) {\n return;\n }\n var paypalWindowNamespace = getPayPalWindowNamespace$1(options[SDK_SETTINGS.DATA_NAMESPACE]);\n // verify dependency on window object\n if (paypalWindowNamespace === undefined || paypalWindowNamespace.Messages === undefined) {\n return setErrorState(function () {\n throw new Error(generateErrorMessage({\n reactComponentName: PayPalMessages.displayName,\n sdkComponentKey: \"messages\",\n sdkRequestedComponents: options.components,\n sdkDataNamespace: options[SDK_SETTINGS.DATA_NAMESPACE]\n }));\n });\n }\n messages.current = paypalWindowNamespace.Messages(__assign({}, messageProps));\n messages.current.render(messagesContainerRef.current).catch(function (err) {\n // component failed to render, possibly because it was closed or destroyed.\n if (messagesContainerRef.current === null || messagesContainerRef.current.children.length === 0) {\n // paypal messages container is no longer in the DOM, we can safely ignore the error\n return;\n }\n // paypal messages container is still in the DOM\n setErrorState(function () {\n throw new Error(\"Failed to render <PayPalMessages /> component. \".concat(err));\n });\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, __spreadArray([isResolved], forceReRender, true));\n return React.createElement(\"div\", {\n ref: messagesContainerRef,\n className: className\n });\n};\nPayPalMessages.displayName = \"PayPalMessages\";\n\n/**\nThis `<PayPalScriptProvider />` component takes care of loading the JS SDK `<script>`.\nIt manages state for script loading so children components like `<PayPalButtons />` know when it's safe to use the `window.paypal` global namespace.\n\nNote: You always should use this component as a wrapper for `PayPalButtons`, `PayPalMarks`, `PayPalMessages` and `BraintreePayPalButtons` components.\n */\nvar PayPalScriptProvider = function (_a) {\n var _b;\n var _c = _a.options,\n options = _c === void 0 ? {\n clientId: \"test\"\n } : _c,\n children = _a.children,\n _d = _a.deferLoading,\n deferLoading = _d === void 0 ? false : _d;\n var _e = useReducer(scriptReducer, {\n options: __assign(__assign({}, options), (_b = {}, _b[SDK_SETTINGS.DATA_JS_SDK_LIBRARY] = SDK_SETTINGS.DATA_LIBRARY_VALUE, _b[SDK_SETTINGS.DATA_SDK_INTEGRATION_SOURCE] = SDK_SETTINGS.DATA_LIBRARY_VALUE, _b[SCRIPT_ID] = \"\".concat(getScriptID(options)), _b)),\n loadingStatus: deferLoading ? SCRIPT_LOADING_STATE.INITIAL : SCRIPT_LOADING_STATE.PENDING\n }),\n state = _e[0],\n dispatch = _e[1];\n useEffect(function () {\n if (deferLoading === false && state.loadingStatus === SCRIPT_LOADING_STATE.INITIAL) {\n return dispatch({\n type: DISPATCH_ACTION.LOADING_STATUS,\n value: SCRIPT_LOADING_STATE.PENDING\n });\n }\n if (state.loadingStatus !== SCRIPT_LOADING_STATE.PENDING) {\n return;\n }\n var isSubscribed = true;\n loadScript(state.options).then(function () {\n if (isSubscribed) {\n dispatch({\n type: DISPATCH_ACTION.LOADING_STATUS,\n value: SCRIPT_LOADING_STATE.RESOLVED\n });\n }\n }).catch(function (err) {\n console.error(\"\".concat(LOAD_SCRIPT_ERROR, \" \").concat(err));\n if (isSubscribed) {\n dispatch({\n type: DISPATCH_ACTION.LOADING_STATUS,\n value: {\n state: SCRIPT_LOADING_STATE.REJECTED,\n message: String(err)\n }\n });\n }\n });\n return function () {\n isSubscribed = false;\n };\n }, [state.options, deferLoading, state.loadingStatus]);\n return React.createElement(ScriptContext.Provider, {\n value: __assign(__assign({}, state), {\n dispatch: dispatch\n })\n }, children);\n};\n\n/**\n * Custom hook to store registered hosted fields children\n * Each `PayPalHostedField` component should be registered on the parent provider\n *\n * @param initialValue the initially registered components\n * @returns at first, an {@link Object} containing the registered hosted fields,\n * and at the second a function handler to register the hosted fields components\n */\nvar useHostedFieldsRegister = function (initialValue) {\n if (initialValue === void 0) {\n initialValue = {};\n }\n var registeredFields = useRef(initialValue);\n var registerHostedField = function (component) {\n registeredFields.current = __assign(__assign({}, registeredFields.current), component);\n };\n return [registeredFields, registerHostedField];\n};\n\n/**\n * Throw an exception if the HostedFields is not found in the paypal namespace\n * Probably cause for this problem is not sending the hosted-fields string\n * as part of the components props in options\n * {@code <PayPalScriptProvider options={{ components: 'hosted-fields'}}>}\n *\n * @param param0 and object containing the components and namespace defined in options\n * @throws {@code Error}\n *\n */\nvar generateMissingHostedFieldsError = function (_a) {\n var _b = _a.components,\n components = _b === void 0 ? \"\" : _b,\n _c = SDK_SETTINGS.DATA_NAMESPACE,\n _d = _a[_c],\n dataNamespace = _d === void 0 ? DEFAULT_PAYPAL_NAMESPACE : _d;\n var expectedComponents = components ? \"\".concat(components, \",hosted-fields\") : \"hosted-fields\";\n var errorMessage = \"Unable to render <PayPalHostedFieldsProvider /> because window.\".concat(dataNamespace, \".HostedFields is undefined.\");\n if (!components.includes(\"hosted-fields\")) {\n errorMessage += \"\\nTo fix the issue, add 'hosted-fields' to the list of components passed to the parent PayPalScriptProvider: <PayPalScriptProvider options={{ components: '\".concat(expectedComponents, \"'}}>\");\n }\n return errorMessage;\n};\n/**\n * Validate the expiration date component. Valid combinations are:\n * 1- Only the `expirationDate` field exists.\n * 2- Only the `expirationMonth` and `expirationYear` fields exist. Cannot be used with the `expirationDate` field.\n *\n * @param registerTypes\n * @returns @type {true} when the children are valid\n */\nvar validateExpirationDate = function (registerTypes) {\n return !registerTypes.includes(PAYPAL_HOSTED_FIELDS_TYPES.EXPIRATION_DATE) && !registerTypes.includes(PAYPAL_HOSTED_FIELDS_TYPES.EXPIRATION_MONTH) && !registerTypes.includes(PAYPAL_HOSTED_FIELDS_TYPES.EXPIRATION_YEAR);\n};\n/**\n * Check if we find the [number, expiration, cvv] in children\n *\n * @param requiredChildren the list with required children [number, expiration, cvv]\n * @param registerTypes the list of all the children types pass to the parent\n * @throw an @type {Error} when not find the default children\n */\nvar hasDefaultChildren = function (registerTypes) {\n if (!registerTypes.includes(PAYPAL_HOSTED_FIELDS_TYPES.NUMBER) || !registerTypes.includes(PAYPAL_HOSTED_FIELDS_TYPES.CVV) || validateExpirationDate(registerTypes)) {\n throw new Error(HOSTED_FIELDS_CHILDREN_ERROR);\n }\n};\n/**\n * Check if we don't have duplicate children types\n *\n * @param registerTypes the list of all the children types pass to the parent\n * @throw an @type {Error} when duplicate types was found\n */\nvar noDuplicateChildren = function (registerTypes) {\n if (registerTypes.length !== new Set(registerTypes).size) {\n throw new Error(HOSTED_FIELDS_DUPLICATE_CHILDREN_ERROR);\n }\n};\n/**\n * Validate the hosted field children in the PayPalHostedFieldsProvider component.\n * These are the rules:\n * 1- We need to find 3 default children for number, expiration, cvv\n * 2- No duplicate children are allowed\n * 3- No invalid combinations of `expirationDate`, `expirationMonth`, and `expirationYear`\n *\n * @param childrenList the list of children\n * @param requiredChildren the list with required children [number, expiration, cvv]\n */\nvar validateHostedFieldChildren = function (registeredFields) {\n hasDefaultChildren(registeredFields);\n noDuplicateChildren(registeredFields);\n};\n\n/**\nThis `<PayPalHostedFieldsProvider />` provider component wraps the form field elements and accepts props like `createOrder()`.\n\nThis provider component is designed to be used with the `<PayPalHostedField />` component.\n\nWarning: If you don't see anything in the screen probably your client is ineligible.\nTo handle this problem make sure to use the prop `notEligibleError` and pass a component with a custom message.\nTake a look to this link if that is the case: https://developer.paypal.com/docs/checkout/advanced/integrate/\n*/\nvar PayPalHostedFieldsProvider = function (_a) {\n var styles = _a.styles,\n createOrder = _a.createOrder,\n notEligibleError = _a.notEligibleError,\n children = _a.children,\n installments = _a.installments;\n var _b = useScriptProviderContext()[0],\n options = _b.options,\n loadingStatus = _b.loadingStatus;\n var _c = useState(true),\n isEligible = _c[0],\n setIsEligible = _c[1];\n var _d = useState(),\n cardFields = _d[0],\n setCardFields = _d[1];\n var _e = useState(null),\n setErrorState = _e[1];\n var hostedFieldsContainerRef = useRef(null);\n var hostedFields = useRef();\n var _f = useHostedFieldsRegister(),\n registeredFields = _f[0],\n registerHostedField = _f[1];\n useEffect(function () {\n var _a;\n validateHostedFieldChildren(Object.keys(registeredFields.current));\n // Only render the hosted fields when script is loaded and hostedFields is eligible\n if (!(loadingStatus === SCRIPT_LOADING_STATE.RESOLVED)) {\n return;\n }\n // Get the hosted fields from the [window.paypal.HostedFields] SDK\n hostedFields.current = getPayPalWindowNamespace$1(options[SDK_SETTINGS.DATA_NAMESPACE]).HostedFields;\n if (!hostedFields.current) {\n throw new Error(generateMissingHostedFieldsError((_a = {\n components: options.components\n }, _a[SDK_SETTINGS.DATA_NAMESPACE] = options[SDK_SETTINGS.DATA_NAMESPACE], _a)));\n }\n if (!hostedFields.current.isEligible()) {\n return setIsEligible(false);\n }\n // Clean all the fields before the rerender\n if (cardFields) {\n cardFields.teardown();\n }\n hostedFields.current.render({\n // Call your server to set up the transaction\n createOrder: createOrder,\n fields: registeredFields.current,\n installments: installments,\n styles: styles\n }).then(function (cardFieldsInstance) {\n if (hostedFieldsContainerRef.current) {\n setCardFields(cardFieldsInstance);\n }\n }).catch(function (err) {\n setErrorState(function () {\n throw new Error(\"Failed to render <PayPalHostedFieldsProvider /> component. \".concat(err));\n });\n });\n }, [loadingStatus, styles]); // eslint-disable-line react-hooks/exhaustive-deps\n return React.createElement(\"div\", {\n ref: hostedFieldsContainerRef\n }, isEligible ? React.createElement(PayPalHostedFieldsContext.Provider, {\n value: {\n cardFields: cardFields,\n registerHostedField: registerHostedField\n }\n }, children) : notEligibleError);\n};\n\n/**\nThis `<PayPalHostedField />` component renders individual fields for [Hosted Fields](https://developer.paypal.com/docs/business/checkout/advanced-card-payments/integrate#3-add-javascript-sdk-and-card-form) integrations.\nIt relies on the `<PayPalHostedFieldsProvider />` parent component for managing state related to loading the JS SDK script\nand execute some validations before the rendering the fields.\n\nTo use the PayPal hosted fields you need to define at least three fields:\n\n- A card number field\n- The CVV code from the client card\n- The expiration date\n\nYou can define the expiration date as a single field similar to the example below,\nor you are able to define it in [two separate fields](https://paypal.github.io/react-paypal-js//?path=/docs/paypal-paypalhostedfields--expiration-date). One for the month and second for year.\n\nNote: Take care when using multiple instances of the PayPal Hosted Fields on the same page.\nThe component will fail to render when any of the selectors return more than one element.\n*/\nvar PayPalHostedField = function (_a) {\n var hostedFieldType = _a.hostedFieldType,\n // eslint-disable-line @typescript-eslint/no-unused-vars\n options = _a.options,\n // eslint-disable-line @typescript-eslint/no-unused-vars\n props = __rest(_a, [\"hostedFieldType\", \"options\"]);\n var hostedFieldContext = useContext(PayPalHostedFieldsContext);\n useEffect(function () {\n var _a;\n if (!(hostedFieldContext === null || hostedFieldContext === void 0 ? void 0 : hostedFieldContext.registerHostedField)) {\n throw new Error(\"The HostedField cannot be register in the PayPalHostedFieldsProvider parent component\");\n }\n // Register in the parent provider\n hostedFieldContext.registerHostedField((_a = {}, _a[hostedFieldType] = {\n selector: options.selector,\n placeholder: options.placeholder,\n type: options.type,\n formatInput: options.formatInput,\n maskInput: options.maskInput,\n select: options.select,\n maxlength: options.maxlength,\n minlength: options.minlength,\n prefill: options.prefill,\n rejectUnsupportedCards: options.rejectUnsupportedCards\n }, _a));\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n return React.createElement(\"div\", __assign({}, props));\n};\n\n/**\n * Throw an exception if the CardFields is not found in the paypal namespace\n * Probably cause for this problem is not sending the card-fields string\n * as part of the components props in options\n * {@code <PayPalScriptProvider options={{ components: 'card-fields'}}>}\n *\n * @param param0 and object containing the components and namespace defined in options\n * @throws {@code Error}\n *\n */\nvar generateMissingCardFieldsError = function (_a) {\n var _b = _a.components,\n components = _b === void 0 ? \"\" : _b,\n _c = SDK_SETTINGS.DATA_NAMESPACE,\n _d = _a[_c],\n dataNamespace = _d === void 0 ? DEFAULT_PAYPAL_NAMESPACE : _d;\n var expectedComponents = components ? \"\".concat(components, \",card-fields\") : \"card-fields\";\n var errorMessage = \"Unable to render <PayPalCardFieldsProvider /> because window.\".concat(dataNamespace, \".CardFields is undefined.\");\n if (!components.includes(\"card-fields\")) {\n errorMessage += \"\\nTo fix the issue, add 'card-fields' to the list of components passed to the parent PayPalScriptProvider: <PayPalScriptProvider options={{ components: '\".concat(expectedComponents, \"'}}>\");\n }\n return errorMessage;\n};\nfunction ignore() {\n return;\n}\nfunction hasChildren(container) {\n var _a;\n return !!((_a = container.current) === null || _a === void 0 ? void 0 : _a.children.length);\n}\nvar PayPalCardFieldsContext = createContext({\n cardFieldsForm: null,\n fields: {},\n registerField: ignore,\n unregisterField: ignore // implementation is inside hook and passed through the provider\n});\nvar usePayPalCardFields = function () {\n return useContext(PayPalCardFieldsContext);\n};\nvar usePayPalCardFieldsRegistry = function () {\n var _a = useState(null),\n setError = _a[1];\n var registeredFields = useRef({});\n var registerField = function () {\n var props = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n props[_i] = arguments[_i];\n }\n var fieldName = props[0],\n options = props[1],\n cardFields = props[2];\n if (registeredFields.current[fieldName]) {\n setError(function () {\n throw new Error(CARD_FIELDS_DUPLICATE_CHILDREN_ERROR);\n });\n }\n registeredFields.current[fieldName] = cardFields === null || cardFields === void 0 ? void 0 : cardFields[fieldName](options);\n return registeredFields.current[fieldName];\n };\n var unregisterField = function (fieldName) {\n var field = registeredFields.current[fieldName];\n if (field) {\n field.close().catch(ignore);\n delete registeredFields.current[fieldName];\n }\n };\n return {\n fields: registeredFields.current,\n registerField: registerField,\n unregisterField: unregisterField\n };\n};\nvar FullWidthContainer = function (_a) {\n var children = _a.children;\n return React.createElement(\"div\", {\n style: {\n width: \"100%\"\n }\n }, children);\n};\n\n/**\nThe `<PayPalCardFieldsProvider />` is a context provider that is designed to support the rendering and state management of PayPal CardFields in your application.\n\nThe context provider will initialize the `CardFields` instance from the JS SDK and determine eligibility to render the CardField components. Once the `CardFields` are initialized, the context provider will manage the state of the `CardFields` instance as well as the reference to each individual card field.\n\nPassing the `inputEvents` and `style` props to the context provider will apply them to each of the individual field components.\n\nThe state managed by the provider is accessible through our custom hook `usePayPalCardFields`.\n\n*/\nvar PayPalCardFieldsProvider = function (_a) {\n var children = _a.children,\n props = __rest(_a, [\"children\"]);\n var _b = usePayPalScriptReducer()[0],\n isResolved = _b.isResolved,\n options = _b.options;\n var _c = usePayPalCardFieldsRegistry(),\n fields = _c.fields,\n registerField = _c.registerField,\n unregisterField = _c.unregisterField;\n var _d = useState(null),\n cardFieldsForm = _d[0],\n setCardFieldsForm = _d[1];\n var cardFieldsInstance = useRef(null);\n var _e = useState(false),\n isEligible = _e[0],\n setIsEligible = _e[1];\n // We set the error inside state so that it can be caught by React's error boundary\n var _f = useState(null),\n setError = _f[1];\n useEffect(function () {\n var _a, _b, _c;\n if (!isResolved) {\n return;\n }\n try {\n cardFieldsInstance.current = (_c = (_b = (_a = getPayPalWindowNamespace$1(options[SDK_SETTINGS.DATA_NAMESPACE])).CardFields) === null || _b === void 0 ? void 0 : _b.call(_a, __assign({}, props))) !== null && _c !== void 0 ? _c : null;\n } catch (error) {\n setError(function () {\n throw new Error(\"Failed to render <PayPalCardFieldsProvider /> component. Failed to initialize: \".concat(error));\n });\n return;\n }\n if (!cardFieldsInstance.current) {\n setError(function () {\n var _a;\n throw new Error(generateMissingCardFieldsError((_a = {\n components: options.components\n }, _a[SDK_SETTINGS.DATA_NAMESPACE] = options[SDK_SETTINGS.DATA_NAMESPACE], _a)));\n });\n return;\n }\n setIsEligible(cardFieldsInstance.current.isEligible());\n setCardFieldsForm(cardFieldsInstance.current);\n return function () {\n setCardFieldsForm(null);\n cardFieldsInstance.current = null;\n };\n }, [isResolved]); // eslint-disable-line react-hooks/exhaustive-deps\n if (!isEligible) {\n // TODO: What should be returned here?\n return React.createElement(\"div\", null);\n }\n return React.createElement(FullWidthContainer, null, React.createElement(PayPalCardFieldsContext.Provider, {\n value: {\n cardFieldsForm: cardFieldsForm,\n fields: fields,\n registerField: registerField,\n unregisterField: unregisterField\n }\n }, children));\n};\nvar PayPalCardField = function (_a) {\n var className = _a.className,\n fieldName = _a.fieldName,\n options = __rest(_a, [\"className\", \"fieldName\"]);\n var _b = usePayPalCardFields(),\n cardFieldsForm = _b.cardFieldsForm,\n registerField = _b.registerField,\n unregisterField = _b.unregisterField;\n var containerRef = useRef(null);\n // Set errors is state so that they can be caught by React's error boundary\n var _c = useState(null),\n setError = _c[1];\n function closeComponent() {\n unregisterField(fieldName);\n }\n useEffect(function () {\n if (!cardFieldsForm) {\n setError(function () {\n throw new Error(CARD_FIELDS_CONTEXT_ERROR);\n });\n return closeComponent;\n }\n if (!containerRef.current) {\n return closeComponent;\n }\n var registeredField = registerField(fieldName, options, cardFieldsForm);\n registeredField === null || registeredField === void 0 ? void 0 : registeredField.render(containerRef.current).catch(function (err) {\n if (!hasChildren(containerRef)) {\n // Component no longer in the DOM, we can safely ignore the error\n return;\n }\n // Component is still in the DOM\n setError(function () {\n throw new Error(\"Failed to render <PayPal\".concat(fieldName, \" /> component. \").concat(err));\n });\n });\n return closeComponent;\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n return React.createElement(\"div\", {\n ref: containerRef,\n className: className\n });\n};\nvar PayPalNameField = function (options) {\n return React.createElement(PayPalCardField, __assign({\n fieldName: \"NameField\"\n }, options));\n};\nvar PayPalNumberField = function (options) {\n return React.createElement(PayPalCardField, __assign({\n fieldName: \"NumberField\"\n }, options));\n};\nvar PayPalExpiryField = function (options) {\n return React.createElement(PayPalCardField, __assign({\n fieldName: \"ExpiryField\"\n }, options));\n};\nvar PayPalCVVField = function (options) {\n return React.createElement(PayPalCardField, __assign({\n fieldName: \"CVVField\"\n }, options));\n};\nvar FlexContainer = function (_a) {\n var children = _a.children;\n return React.createElement(\"div\", {\n style: {\n display: \"flex\",\n width: \"100%\"\n }\n }, children);\n};\n\n/**\nThis `<PayPalCardFieldsForm />` component renders the 4 individual fields for [Card Fields](https://developer.paypal.com/docs/business/checkout/advanced-card-payments/integrate#3-add-javascript-sdk-and-card-form) integrations.\nThis setup relies on the `<PayPalCardFieldsProvider />` parent component, which manages the state related to loading the JS SDK script and performs certain validations before rendering the fields.\n\n\n\nNote: If you want to have more granular control over the layout of how the fields are rendered, you can alternatively use our Individual Fields.\n*/\nvar PayPalCardFieldsForm = function (_a) {\n var className = _a.className;\n return React.createElement(\"div\", {\n className: className\n }, React.createElement(PayPalCardField, {\n fieldName: \"NameField\"\n }), React.createElement(PayPalCardField, {\n fieldName: \"NumberField\"\n }), React.createElement(FlexContainer, null, React.createElement(FullWidthContainer, null, React.createElement(PayPalCardField, {\n fieldName: \"ExpiryField\"\n })), React.createElement(FullWidthContainer, null, React.createElement(PayPalCardField, {\n fieldName: \"CVVField\"\n }))));\n};\nvar FUNDING$1 = {\n PAYPAL: \"paypal\",\n VENMO: \"venmo\",\n APPLEPAY: \"applepay\",\n ITAU: \"itau\",\n CREDIT: \"credit\",\n PAYLATER: \"paylater\",\n CARD: \"card\",\n IDEAL: \"ideal\",\n SEPA: \"sepa\",\n BANCONTACT: \"bancontact\",\n GIROPAY: \"giropay\",\n SOFORT: \"sofort\",\n EPS: \"eps\",\n MYBANK: \"mybank\",\n P24: \"p24\",\n PAYU: \"payu\",\n BLIK: \"blik\",\n TRUSTLY: \"trustly\",\n OXXO: \"oxxo\",\n BOLETO: \"boleto\",\n BOLETOBANCARIO: \"boletobancario\",\n WECHATPAY: \"wechatpay\",\n MERCADOPAGO: \"mercadopago\",\n MULTIBANCO: \"multibanco\",\n SATISPAY: \"satispay\",\n PAIDY: \"paidy\",\n ZIMPLER: \"zimpler\",\n MAXIMA: \"maxima\"\n};\n[FUNDING$1.IDEAL, FUNDING$1.BANCONTACT, FUNDING$1.GIROPAY, FUNDING$1.SOFORT, FUNDING$1.EPS, FUNDING$1.MYBANK, FUNDING$1.P24, FUNDING$1.PAYU, FUNDING$1.BLIK, FUNDING$1.TRUSTLY, FUNDING$1.OXXO, FUNDING$1.BOLETO, FUNDING$1.BOLETOBANCARIO, FUNDING$1.WECHATPAY, FUNDING$1.MERCADOPAGO, FUNDING$1.MULTIBANCO, FUNDING$1.SATISPAY, FUNDING$1.PAIDY, FUNDING$1.MAXIMA, FUNDING$1.ZIMPLER];\n\n// We do not re-export `FUNDING` from the `sdk-constants` module\n// directly because it has no type definitions.\n//\n// See https://github.com/paypal/react-paypal-js/issues/125\nvar FUNDING = FUNDING$1;\nexport { BraintreePayPalButtons, DISPATCH_ACTION, FUNDING, PAYPAL_HOSTED_FIELDS_TYPES, PayPalButtons, PayPalCVVField, PayPalCardFieldsContext, PayPalCardFieldsForm, PayPalCardFieldsProvider, PayPalExpiryField, PayPalHostedField, PayPalHostedFieldsProvider, PayPalMarks, PayPalMessages, PayPalNameField, PayPalNumberField, PayPalScriptProvider, SCRIPT_LOADING_STATE, ScriptContext, destroySDKScript, getScriptID, scriptReducer, usePayPalCardFields, usePayPalHostedFields, usePayPalScriptReducer, useScriptProviderContext };\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useLocation, useNavigate, useSearchParams } from \"react-router-dom\";\n\nimport { GlobalStore } from \"store/GlobalStore\";\n\nimport { EndpointsSlug } from \"constant/api/Endpoints\";\nimport Loader from \"components/Loader/Loader\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { PayPalScriptProvider, PayPalButtons } from \"@paypal/react-paypal-js\";\nimport { BASE_URL } from \"constant/api/Endpoints\";\nconst Checkout = () => {\n const navigate = useNavigate();\n const location = useLocation();\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n const authState = GlobalStore.getState()?.auth;\n\n // user not signed in\n if (!accessToken) {\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n });\n }\n\n // user signed in but did not verify his email\n if (accessToken && !authState?.userInfo?.isVerified) {\n navigate(`/otp-verification`, {\n replace: true,\n });\n }\n\n const [searchParams] = useSearchParams();\n\n const productType = searchParams.get(\"productType\");\n const productName = searchParams.get(\"productName\");\n const amount = searchParams.get(\"amount\");\n const productId = searchParams.get(\"productId\");\n const themeId = searchParams.get(\"themeId\");\n const isSubscription = searchParams.get(\"isSubscription\");\n const channelId = searchParams.get(\"channelId\");\n const [transactionDetail, setTransactionDetail] = useState({});\n const transactionDetailRef = useRef({});\n\n // for paid items, NOT subscription\n async function initiateTrans() {\n try {\n setLoading(true);\n let product = {\n amount: Number(amount),\n productId: productId,\n productType: productType,\n name: productName,\n };\n\n // for apartments and ships\n if (themeId) {\n product = {\n ...product,\n themeId,\n };\n }\n\n // payload for checking out a single paid product\n let payload = {\n products: [product],\n paymentGatewayName: \"paypal\",\n total_amount: Number(amount),\n };\n\n if (productType === \"event\") payload[\"eventId\"] = productId;\n\n // if we are checking out a cart, we are getting the payload stored in session storage from the cart page and usingit here\n if (searchParams.get(\"isCart\")) {\n console.log(\"cart checkout\");\n payload = {\n products: JSON.parse(sessionStorage.getItem(\"cartCheckoutData\")),\n paymentGatewayName: \"paypal\",\n total_amount: JSON.parse(\n sessionStorage.getItem(\"cartCheckoutData\")\n ).reduce((acc, current) => {\n return acc + current.amount;\n }, 0),\n };\n }\n\n let res = await fetch(\n productType === \"event\"\n ? BASE_URL + EndpointsSlug.INITIATE_EVENT_TRANS\n : BASE_URL + EndpointsSlug.INITIATE_TRANS,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n } else {\n throw new Error(\"Transaction initiation failed\");\n }\n\n if (res?.response?.statusEnum !== 1) {\n throw new Error(\n res.response?.message || \"Transaction initiation failed\"\n );\n }\n\n transactionDetailRef.current = res.response?.data;\n return res.response?.data?.gatewayTransaction?.paymentGatewayId;\n } catch (e) {\n console.log(e.message, e.statusEnum);\n // alert(e);\n if (e.message.toString() == \"Failed to create PayPal order\")\n navigate(\"/checkout/cancelled\");\n else navigate(\"/checkout/already-in-asset\");\n // /checkout/cancelled\n setIsError(true);\n } finally {\n setLoading(false);\n }\n }\n\n // for subscription\n async function initiateSubscriptionTrans() {\n let payload = {\n channelId: channelId,\n paymentGatewayName: \"paypal\",\n };\n\n try {\n setLoading(true);\n\n let res = await fetch(\n BASE_URL + EndpointsSlug.CREATE_SUBSCRIPTION_MONTHLY,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n\n if (res?.response?.statusEnum != 1) {\n throw new Error(res.response?.message);\n }\n // setTransactionDetail(res.response?.data);\n transactionDetailRef.current = res.response?.data;\n\n // setPaymentUrl(res.response?.data?.session?.url);\n return res.response?.data?.gatewayTransaction?.paymentGatewayId;\n } catch (e) {\n console.log(e);\n navigate(\"/checkout/already-in-asset\");\n setIsError(true);\n } finally {\n setLoading(false);\n }\n }\n\n if (\n !searchParams.get(\"isCart\") &&\n !searchParams.get(\"isSubscription\") &&\n (!productType || !amount || !productId)\n ) {\n navigate(-1);\n }\n\n const [loading, setLoading] = useState(false);\n const [paymentUrl, setPaymentUrl] = useState(\"\");\n const [isError, setIsError] = useState(false);\n async function createOrder() {\n let orderId;\n if (!isSubscription) {\n orderId = await initiateTrans();\n } else {\n orderId = await initiateSubscriptionTrans();\n }\n\n // If no order ID is returned, throw an error\n if (!orderId) {\n throw new Error(\"Order creation failed: No order ID returned\");\n }\n\n return orderId; // PayPal will use this ID for the next steps\n\n // .then((response) => response.json())\n // .then((order) => order.id);\n }\n function onApprove(data) {\n if (!data.orderID) {\n alert(\"Invalid order ID\");\n return;\n }\n\n navigate(\"/checkout/success\");\n }\n\n // useEffect(() => {\n // if (!loading && paymentUrl) {\n // const a = document.createElement(\"a\");\n // a.href = paymentUrl;\n // a.click();\n // }\n // }, [loading]);\n const initialOptions = {\n clientId: process.env.REACT_APP_PAYPAL_CLIENT_ID,\n };\n\n return (\n <div className=\"relative min-h-screen w-full px-8 py-4\">\n <div className=\"flex flex-col justify-center items-center h-full\">\n <div className=\"bg-black max-w-[620px] flex flex-col items-center gap-8 p-10 rounded-md\">\n <div className=\"flex flex-col gap-8\">\n {isSubscription && (\n <p className=\"font-bold text-lg md:text-xl text-center text-green-600\">\n Coming Soon !\n </p>\n )}\n <p className=\"font-bold text-xl md:text-2xl text-center\">\n Choose Your Payment Mode!\n </p>\n <p className=\"text-sm sm:text-md text-center\">\n Select your preferred payment option below to complete your\n transaction in USD. You can choose to pay securely through{\" \"}\n <span className=\"font-bold\">PayPal</span> or use your{\" \"}\n <span className=\"font-bold\">debit card</span> for a quick and easy\n checkout.\n </p>\n </div>\n <div className=\" bg-[#E1DBCB] p-3 rounded-md z-[20]\">\n <PayPalScriptProvider options={initialOptions}>\n {!isSubscription ? (\n <PayPalButtons\n createOrder={createOrder}\n onApprove={onApprove}\n className=\"min-w-[250px] md:w-[400px]\"\n onError={(err) => console.log(err)}\n />\n ) : (\n <PayPalButtons\n createOrder={createOrder}\n onApprove={onApprove}\n vault={isSubscription ? true : false} // Enable vaulting to store the payment method\n className=\"min-w-[250px] md:w-[400px] !cursor-not-allowed\"\n disabled={true}\n />\n )}\n </PayPalScriptProvider>\n </div>\n </div>\n\n {loading && (\n <>\n <span className=\"block mx-auto\">\n <Loader />\n </span>\n <p className=\"mt-2 text-lg text-white/50 font-body\">\n You will soon be redirected to payments page.\n </p>\n </>\n )}\n {isError && (\n <p className=\"text-lg text-white/50 font-body\">\n Something went wrong.\n </p>\n )}\n </div>\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[60%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </div>\n );\n};\n\nexport default Checkout;\n","export default [\n { inputs: [], stateMutability: \"nonpayable\", type: \"constructor\" },\n {\n inputs: [\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"allowance\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"needed\", type: \"uint256\" },\n ],\n name: \"ERC20InsufficientAllowance\",\n type: \"error\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"sender\", type: \"address\" },\n { internalType: \"uint256\", name: \"balance\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"needed\", type: \"uint256\" },\n ],\n name: \"ERC20InsufficientBalance\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"approver\", type: \"address\" }],\n name: \"ERC20InvalidApprover\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"receiver\", type: \"address\" }],\n name: \"ERC20InvalidReceiver\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"sender\", type: \"address\" }],\n name: \"ERC20InvalidSender\",\n type: \"error\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"spender\", type: \"address\" }],\n name: \"ERC20InvalidSpender\",\n type: \"error\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"owner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"spender\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n ],\n name: \"Approval\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"from\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"to\", type: \"address\" },\n { indexed: false, internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n ],\n name: \"Transfer\",\n type: \"event\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"owner\", type: \"address\" },\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n ],\n name: \"allowance\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"spender\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n ],\n name: \"approve\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"account\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [{ internalType: \"uint8\", name: \"\", type: \"uint8\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"symbol\",\n outputs: [{ internalType: \"string\", name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"totalSupply\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n ],\n name: \"transfer\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"address\", name: \"from\", type: \"address\" },\n { internalType: \"address\", name: \"to\", type: \"address\" },\n { internalType: \"uint256\", name: \"value\", type: \"uint256\" },\n ],\n name: \"transferFrom\",\n outputs: [{ internalType: \"bool\", name: \"\", type: \"bool\" }],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Bytes, HexString, Numbers } from './primitives_types.js';\n\nexport enum FMT_NUMBER {\n\tNUMBER = 'NUMBER_NUMBER',\n\tHEX = 'NUMBER_HEX',\n\tSTR = 'NUMBER_STR',\n\tBIGINT = 'NUMBER_BIGINT',\n}\n\nexport type NumberTypes = {\n\t[FMT_NUMBER.NUMBER]: number;\n\t[FMT_NUMBER.HEX]: HexString;\n\t[FMT_NUMBER.STR]: string;\n\t[FMT_NUMBER.BIGINT]: bigint;\n};\n\nexport enum FMT_BYTES {\n\tHEX = 'BYTES_HEX',\n\tUINT8ARRAY = 'BYTES_UINT8ARRAY',\n}\n\nexport type ByteTypes = {\n\t[FMT_BYTES.HEX]: HexString;\n\t[FMT_BYTES.UINT8ARRAY]: Uint8Array;\n};\n\n/**\n * Used to specify how data should be formatted. Bytes can be formatted as hexadecimal strings or\n * Uint8Arrays. Numbers can be formatted as BigInts, hexadecimal strings, primitive numbers, or\n * strings.\n */\nexport type DataFormat = {\n\treadonly number: FMT_NUMBER;\n\treadonly bytes: FMT_BYTES;\n};\n\nexport const DEFAULT_RETURN_FORMAT = {\n\tnumber: FMT_NUMBER.BIGINT,\n\tbytes: FMT_BYTES.HEX,\n} as const;\nexport const ETH_DATA_FORMAT = { number: FMT_NUMBER.HEX, bytes: FMT_BYTES.HEX } as const;\n\nexport type FormatType<T, F extends DataFormat> = number extends Extract<T, Numbers>\n\t? NumberTypes[F['number']] | Exclude<T, Numbers>\n\t: Uint8Array extends Extract<T, Bytes>\n\t? ByteTypes[F['bytes']] | Exclude<T, Bytes>\n\t: T extends object | undefined\n\t? {\n\t\t\t[P in keyof T]: FormatType<T[P], F>;\n\t }\n\t: T;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Bytes, HexString, Numbers } from './primitives_types.js';\n\nexport type ValueTypes = 'address' | 'bool' | 'string' | 'int256' | 'uint256' | 'bytes' | 'bigint';\n// Hex encoded 32 bytes\nexport type HexString32Bytes = HexString;\n// Hex encoded 16 bytes\nexport type HexString16Bytes = HexString;\n// Hex encoded 8 bytes\nexport type HexString8Bytes = HexString;\n// Hex encoded 1 byte\nexport type HexStringSingleByte = HexString;\n// Hex encoded 1 byte\nexport type HexStringBytes = HexString;\n// Hex encoded 256 byte\nexport type HexString256Bytes = HexString;\n// Hex encoded unsigned integer\nexport type Uint = HexString;\n// Hex encoded unsigned integer 32 bytes\nexport type Uint256 = HexString;\n// Hex encoded address\nexport type Address = HexString;\n\n// https://github.com/ethereum/execution-apis/blob/main/src/schemas/filter.json#L59\nexport type Topic = HexString32Bytes;\n\nexport type TransactionHash = HexString;\nexport type Uncles = HexString32Bytes[];\nexport enum BlockTags {\n\tEARLIEST = 'earliest',\n\tLATEST = 'latest',\n\tPENDING = 'pending',\n\tSAFE = 'safe',\n\tFINALIZED = 'finalized',\n\tCOMMITTED = 'committed',\n}\nexport type BlockTag = `${BlockTags}`;\n\nexport type BlockNumberOrTag = Numbers | BlockTag;\n\nexport interface Proof {\n\treadonly address: HexString;\n\treadonly nonce: string;\n\treadonly balance: string;\n}\n\nexport interface TransactionInput {\n\treadonly [key: string]: unknown;\n\treadonly to?: HexString; // If its a contract creation tx then no address wil be specified.\n\treadonly from?: HexString;\n\treadonly data?: string;\n\treadonly input?: string;\n\treadonly gas: HexString;\n\treadonly gasLimit?: string;\n\treadonly gasPrice?: string;\n\treadonly maxPriorityFeePerGas?: string;\n\treadonly maxFeePerGas?: string;\n\treadonly nonce: string;\n\treadonly value: string;\n\treadonly blockNumber?: HexString;\n\treadonly transactionIndex?: HexString;\n\treadonly type?: HexString;\n\treadonly chainId?: HexString;\n}\n\nexport type TransactionOutput = {\n\treadonly [key: string]: unknown;\n\treadonly to?: HexString; // If its a contract creation tx then no address wil be specified.\n\treadonly from?: HexString;\n\treadonly input: string;\n\treadonly gas?: Numbers;\n\treadonly gasLimit?: string;\n\treadonly nonce: Numbers;\n\treadonly value: Numbers;\n\treadonly blockNumber?: Numbers;\n\treadonly transactionIndex?: Numbers;\n} & (\n\t| { maxPriorityFeePerGas: Numbers; maxFeePerGas: Numbers; gasPrice?: never }\n\t| { maxPriorityFeePerGas?: never; maxFeePerGas?: never; gasPrice: Numbers }\n);\n\nexport interface LogsInput {\n\treadonly blockHash?: HexString;\n\treadonly transactionHash?: HexString;\n\treadonly logIndex?: HexString;\n\treadonly id?: string;\n\treadonly blockNumber?: HexString;\n\treadonly transactionIndex?: HexString;\n\treadonly address: HexString;\n\treadonly topics: HexString[];\n\treadonly data: HexString;\n}\nexport interface LogsOutput {\n\treadonly id?: string;\n\treadonly removed: boolean;\n\treadonly logIndex?: Numbers;\n\treadonly transactionIndex?: Numbers;\n\treadonly transactionHash?: HexString32Bytes;\n\treadonly blockHash?: HexString32Bytes;\n\treadonly blockNumber?: Numbers;\n\treadonly address: string;\n\treadonly topics: HexString[];\n\treadonly data: HexString;\n}\n\nexport interface BlockInput {\n\treadonly gasLimit: HexString;\n\treadonly gasUsed: HexString;\n\treadonly size: HexString;\n\treadonly timestamp: HexString;\n\treadonly number?: HexString;\n\treadonly difficulty?: HexString;\n\treadonly totalDifficulty?: HexString;\n\treadonly transactions?: TransactionInput[];\n\treadonly miner?: HexString;\n\treadonly baseFeePerGas?: HexString;\n}\n\nexport interface Withdrawals {\n\treadonly index: Numbers;\n\treadonly validatorIndex: Numbers;\n\treadonly address: Address;\n\treadonly amount: Numbers;\n}\n\nexport interface BlockOutput {\n\treadonly gasLimit: bigint | number;\n\treadonly gasUsed: bigint | number;\n\treadonly size: bigint | number;\n\treadonly timestamp: bigint | number;\n\treadonly number?: bigint | number;\n\treadonly difficulty?: bigint | number;\n\treadonly totalDifficulty?: bigint | number;\n\treadonly transactions?: TransactionOutput[];\n\treadonly miner?: HexString;\n\treadonly baseFeePerGas?: bigint | number;\n\treadonly parentHash?: HexString32Bytes;\n\n\t// Added properties\n\treadonly blobGasUsed?: bigint | number;\n\treadonly excessBlobGas?: bigint | number;\n\treadonly extraData?: Bytes;\n\treadonly hash?: HexString32Bytes;\n\treadonly logsBloom?: Bytes;\n\treadonly nonce?: bigint | number;\n\treadonly parentBeaconBlockRoot?: HexString32Bytes;\n\treadonly receiptsRoot?: HexString32Bytes;\n\treadonly sha3Uncles: HexString32Bytes[];\n\treadonly stateRoot?: HexString32Bytes;\n\treadonly transactionsRoot?: HexString32Bytes;\n\treadonly withdrawalsRoot?: HexString32Bytes;\n\treadonly mixHash?: HexString32Bytes;\n\treadonly uncles?: Uncles;\n\treadonly withdrawals?: Withdrawals[];\n}\n\nexport interface BlockHeaderOutput {\n\treadonly baseFeePerGas?: Numbers;\n\treadonly blobGasUsed?: Numbers;\n\treadonly difficulty?: Numbers;\n\treadonly excessBlobGas?: Numbers;\n\treadonly extraData?: Bytes;\n\treadonly gasLimit: Numbers;\n\treadonly gasUsed: Numbers;\n\treadonly hash?: HexString32Bytes;\n\treadonly logsBloom?: Bytes;\n\treadonly miner?: HexString;\n\treadonly nonce?: Numbers;\n\treadonly number?: Numbers;\n\treadonly parentBeaconBlockRoot?: HexString32Bytes;\n\treadonly parentHash?: HexString32Bytes;\n\treadonly receiptsRoot?: HexString32Bytes;\n\treadonly sha3Uncles: HexString32Bytes[];\n\treadonly stateRoot?: HexString32Bytes;\n\treadonly timestamp: Numbers;\n\treadonly transactionsRoot?: HexString32Bytes;\n\treadonly withdrawalsRoot?: HexString32Bytes;\n\n\t// These fields are returned when the RPC client is Nethermind,\n\t// but aren't available in other clients such as Geth\n\treadonly author?: Address;\n\treadonly totalDifficulty?: Numbers;\n\treadonly size?: Numbers;\n\treadonly excessDataGas?: Numbers;\n\treadonly mixHash?: HexString32Bytes;\n\treadonly transactions?: TransactionOutput[];\n\treadonly uncles?: Uncles;\n\treadonly withdrawals?: Withdrawals[];\n}\n\nexport interface ReceiptInput {\n\treadonly [x: string]: unknown;\n\treadonly blockNumber?: HexString;\n\treadonly transactionIndex?: HexString;\n\treadonly cumulativeGasUsed: HexString;\n\treadonly gasUsed: HexString;\n\treadonly logs?: LogsInput[];\n\treadonly contractAddress?: HexString;\n\treadonly status?: string;\n\treadonly effectiveGasPrice?: HexString;\n}\n\nexport interface ReceiptOutput {\n\treadonly blockNumber?: bigint | number;\n\treadonly transactionIndex?: bigint | number;\n\treadonly cumulativeGasUsed: bigint | number;\n\treadonly gasUsed: bigint | number;\n\treadonly logs?: LogsOutput[];\n\treadonly contractAddress?: HexString;\n\treadonly status: boolean;\n\treadonly effectiveGasPrice?: bigint | number;\n}\n\nexport interface PostInput {\n\treadonly ttl?: HexString;\n\treadonly workToProve?: HexString;\n\treadonly priority?: HexString;\n\treadonly expiry?: HexString;\n\treadonly sent?: HexString;\n\treadonly workProved?: HexString;\n\treadonly topics?: HexString[];\n}\n\nexport interface PostOutput {\n\treadonly ttl?: bigint | number;\n\treadonly workToProve?: bigint | number;\n\treadonly priority?: bigint | number;\n\treadonly expiry?: bigint | number;\n\treadonly sent?: bigint | number;\n\treadonly workProved?: bigint | number;\n\treadonly topics?: string[];\n}\n\nexport interface SyncInput {\n\treadonly startingBlock: HexString;\n\treadonly currentBlock: HexString;\n\treadonly highestBlock: HexString;\n\treadonly knownStates?: HexString;\n\treadonly pulledStates?: HexString;\n}\n\nexport interface SyncOutput {\n\treadonly startingBlock: Numbers;\n\treadonly currentBlock: Numbers;\n\treadonly highestBlock: Numbers;\n\treadonly knownStates?: Numbers;\n\treadonly pulledStates?: Numbers;\n}\n\nexport type Receipt = Record<string, unknown>;\n\ntype FilterOption = Record<string, Numbers | Numbers[] | boolean | boolean[]>;\n\n// https://github.com/ethereum/execution-apis/blob/main/src/schemas/filter.json#L28\nexport interface Filter {\n\treadonly fromBlock?: BlockNumberOrTag;\n\treadonly toBlock?: BlockNumberOrTag;\n\treadonly address?: Address | Address[];\n\treadonly blockHash?: Address;\n\t// Using \"null\" type intentionally to match specifications\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\treadonly topics?: (null | Topic | Topic[])[];\n\treadonly filter?: FilterOption;\n}\n\nexport interface AccessListEntry {\n\treadonly address?: Address;\n\treadonly storageKeys?: HexString32Bytes[];\n}\nexport type AccessList = AccessListEntry[];\n\nexport type AccessListResult = {\n\treadonly accessList?: AccessList;\n\treadonly gasUsed?: Numbers;\n};\n\nexport type ValidChains = 'goerli' | 'kovan' | 'mainnet' | 'rinkeby' | 'ropsten' | 'sepolia';\n\n// This list of hardforks is expected to be in order\n// keep this in mind when making changes to it\nexport enum HardforksOrdered {\n\tchainstart = 'chainstart',\n\tfrontier = 'frontier',\n\thomestead = 'homestead',\n\tdao = 'dao',\n\ttangerineWhistle = 'tangerineWhistle',\n\tspuriousDragon = 'spuriousDragon',\n\tbyzantium = 'byzantium',\n\tconstantinople = 'constantinople',\n\tpetersburg = 'petersburg',\n\tistanbul = 'istanbul',\n\tmuirGlacier = 'muirGlacier',\n\tberlin = 'berlin',\n\tlondon = 'london',\n\taltair = 'altair',\n\tarrowGlacier = 'arrowGlacier',\n\tgrayGlacier = 'grayGlacier',\n\tbellatrix = 'bellatrix',\n\tmerge = 'merge',\n\tcapella = 'capella',\n\tshanghai = 'shanghai',\n}\n\nexport type Hardfork = `${HardforksOrdered}`;\n\nexport interface LogBase<NumberType, ByteType> {\n\treadonly removed?: boolean;\n\treadonly logIndex?: NumberType;\n\treadonly transactionIndex?: NumberType;\n\treadonly transactionHash?: ByteType;\n\treadonly blockHash?: ByteType;\n\treadonly blockNumber?: NumberType;\n\treadonly address?: Address;\n\treadonly data?: ByteType;\n\treadonly topics?: ByteType[];\n\treadonly id?: string;\n}\nexport interface Log extends LogBase<Numbers, Bytes> {\n\treadonly id?: string;\n}\n\nexport interface EventLog {\n\treadonly event: string;\n\treadonly id?: string;\n\treadonly logIndex?: bigint | number | string;\n\treadonly transactionIndex?: bigint | number | string;\n\treadonly transactionHash?: HexString32Bytes;\n\treadonly blockHash?: HexString32Bytes;\n\treadonly blockNumber?: bigint | number | string;\n\treadonly address: string;\n\treadonly topics: HexString[];\n\treadonly data: HexString;\n\treadonly raw?: { data: string; topics: unknown[] };\n\treadonly returnValues: Record<string, unknown>;\n\treadonly signature?: HexString;\n}\n\nexport interface TransactionReceiptBase<numberType, hashByteType, logsBloomByteType, logsType> {\n\treadonly transactionHash: hashByteType;\n\treadonly transactionIndex: numberType;\n\treadonly blockHash: hashByteType;\n\treadonly blockNumber: numberType;\n\treadonly from: Address;\n\treadonly to: Address;\n\treadonly cumulativeGasUsed: numberType;\n\treadonly gasUsed: numberType;\n\treadonly effectiveGasPrice?: numberType;\n\treadonly contractAddress?: Address;\n\treadonly logs: logsType[];\n\treadonly logsBloom: logsBloomByteType;\n\treadonly root: hashByteType;\n\treadonly status: numberType;\n\treadonly type?: numberType;\n\tevents?: { [key: string]: EventLog };\n}\n\nexport type TransactionReceipt = TransactionReceiptBase<Numbers, Bytes, Bytes, Log>;\n\nexport interface CustomChain {\n\tname?: string;\n\tnetworkId: Numbers;\n\tchainId: Numbers;\n}\n\nexport interface Common {\n\tcustomChain: CustomChain;\n\tbaseChain?: ValidChains;\n\thardfork?: Hardfork;\n}\n\ninterface TransactionBase {\n\tvalue?: Numbers;\n\taccessList?: AccessList;\n\tcommon?: Common;\n\tgas?: Numbers;\n\tgasPrice?: Numbers;\n\ttype?: Numbers;\n\tmaxFeePerGas?: Numbers;\n\tmaxPriorityFeePerGas?: Numbers;\n\tdata?: Bytes;\n\tinput?: Bytes;\n\tnonce?: Numbers;\n\tchain?: ValidChains;\n\thardfork?: Hardfork;\n\tchainId?: Numbers;\n\tnetworkId?: Numbers;\n\tgasLimit?: Numbers;\n\tyParity?: Uint;\n\tv?: Numbers;\n\tr?: Bytes;\n\ts?: Bytes;\n}\n\nexport interface Transaction extends TransactionBase {\n\tfrom?: Address;\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tto?: Address | null;\n}\n\nexport interface TransactionForAccessList extends Transaction {\n\tfrom: Address;\n}\n\nexport interface TransactionCall extends Transaction {\n\tto: Address;\n}\n\nexport interface TransactionWithFromLocalWalletIndex extends Omit<Transaction, 'from'> {\n\tfrom: Numbers;\n}\n\nexport interface TransactionWithToLocalWalletIndex extends Omit<Transaction, 'to'> {\n\tto: Numbers;\n}\n\nexport interface TransactionWithFromAndToLocalWalletIndex extends Omit<Transaction, 'from' | 'to'> {\n\tfrom: Numbers;\n\tto: Numbers;\n}\n\nexport interface TransactionInfo extends Transaction {\n\treadonly blockHash?: Bytes;\n\treadonly blockNumber?: Numbers;\n\treadonly from: Address;\n\treadonly hash: Bytes;\n\treadonly transactionIndex?: Numbers;\n}\n\nexport interface PopulatedUnsignedBaseTransaction {\n\tfrom: Address;\n\tto?: Address;\n\tvalue: Numbers;\n\tgas?: Numbers;\n\tgasPrice: Numbers;\n\ttype: Numbers;\n\tinput?: Bytes;\n\tdata?: Bytes;\n\tnonce: Numbers;\n\tnetworkId: Numbers;\n\tchain: ValidChains;\n\thardfork: Hardfork;\n\tchainId: Numbers;\n\tcommon: Common;\n\tgasLimit: Numbers;\n}\n\nexport interface PopulatedUnsignedEip2930Transaction extends PopulatedUnsignedBaseTransaction {\n\taccessList: AccessList;\n}\n\nexport interface PopulatedUnsignedEip1559Transaction extends PopulatedUnsignedEip2930Transaction {\n\tgasPrice: never;\n\tmaxFeePerGas: Numbers;\n\tmaxPriorityFeePerGas: Numbers;\n}\nexport type PopulatedUnsignedTransaction =\n\t| PopulatedUnsignedBaseTransaction\n\t| PopulatedUnsignedEip2930Transaction\n\t| PopulatedUnsignedEip1559Transaction;\n\nexport interface BlockBase<\n\tByteType,\n\tHexStringType,\n\tNumberType,\n\textraDataType,\n\tTransactionTypes,\n\tlogsBloomType,\n> {\n\treadonly parentHash: ByteType;\n\treadonly sha3Uncles: ByteType;\n\treadonly miner: HexStringType;\n\treadonly stateRoot: ByteType;\n\treadonly transactionsRoot: ByteType;\n\treadonly receiptsRoot: ByteType;\n\treadonly logsBloom?: logsBloomType;\n\treadonly difficulty?: NumberType;\n\treadonly number: NumberType;\n\treadonly gasLimit: NumberType;\n\treadonly gasUsed: NumberType;\n\treadonly timestamp: NumberType;\n\treadonly extraData: extraDataType;\n\treadonly mixHash: ByteType;\n\treadonly nonce: NumberType;\n\treadonly totalDifficulty: NumberType;\n\treadonly baseFeePerGas?: NumberType;\n\treadonly size: NumberType;\n\treadonly transactions: TransactionTypes;\n\treadonly uncles: Uncles;\n\treadonly hash?: ByteType;\n}\n\nexport type Block = BlockBase<\n\tBytes,\n\tBytes,\n\tNumbers,\n\tBytes,\n\tTransactionHash[] | TransactionInfo[],\n\tBytes\n>;\n\nexport interface FeeHistoryBase<NumberType> {\n\treadonly oldestBlock: NumberType;\n\treadonly baseFeePerGas: NumberType;\n\treadonly reward: NumberType[][];\n\treadonly gasUsedRatio: NumberType[];\n}\n\nexport type FeeHistory = FeeHistoryBase<Numbers>;\n\nexport interface StorageProof {\n\treadonly key: Bytes;\n\treadonly value: Numbers;\n\treadonly proof: Bytes[];\n}\n\nexport interface AccountObject {\n\treadonly balance: Numbers;\n\treadonly codeHash: Bytes;\n\treadonly nonce: Numbers;\n\treadonly storageHash: Bytes;\n\treadonly accountProof: Bytes[];\n\treadonly storageProof: StorageProof[];\n}\n\nexport interface Eip712TypeDetails {\n\tname: string;\n\ttype: string;\n}\nexport interface Eip712TypedData {\n\treadonly types: {\n\t\tEIP712Domain: Eip712TypeDetails[];\n\t\t[key: string]: Eip712TypeDetails[];\n\t};\n\treadonly primaryType: string;\n\treadonly domain: Record<string, string | number>;\n\treadonly message: Record<string, unknown>;\n}\n\n/**\n * To contain the gas Fee Data to be used with EIP-1559 transactions.\n * EIP-1559 was applied to Ethereum after London hardfork.\n *\n * Typically you will only need `maxFeePerGas` and `maxPriorityFeePerGas` for a transaction following EIP-1559.\n * However, if you want to get informed about the fees of last block, you can use `baseFeePerGas` too.\n *\n *\n * \t@see https://eips.ethereum.org/EIPS/eip-1559\n *\n */\nexport interface FeeData {\n\t/**\n\t * This filed is used for legacy networks that does not support EIP-1559.\n\t */\n\treadonly gasPrice?: Numbers;\n\n\t/**\n\t * The baseFeePerGas returned from the last available block.\n\t *\n\t * If EIP-1559 is not supported, this will be `undefined`\n\t *\n\t * However, the user will only pay (the future baseFeePerGas + the maxPriorityFeePerGas).\n\t * And this value is just for getting informed about the fees of last block.\n\t */\n\treadonly baseFeePerGas?: Numbers;\n\n\t/**\n\t * The maximum fee that the user would be willing to pay per-gas.\n\t *\n\t * However, the user will only pay (the future baseFeePerGas + the maxPriorityFeePerGas).\n\t * And the `maxFeePerGas` could be used to prevent paying more than it, if `baseFeePerGas` went too high.\n\t *\n\t * If EIP-1559 is not supported, this will be `undefined`\n\t */\n\treadonly maxFeePerGas?: Numbers;\n\n\t/**\n\t * The validator's tip for including a transaction in a block.\n\t *\n\t * If EIP-1559 is not supported, this will be `undefined`\n\t */\n\treadonly maxPriorityFeePerGas?: Numbers;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nexport type HexString = string;\nexport type Bytes = Uint8Array | HexString;\nexport type Numbers = number | bigint | string | HexString;\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\nexport const TypedArray = Object.getPrototypeOf(Uint8Array);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Socket } from 'net';\n\nimport { Web3Error } from './error_types.js';\nimport { EthExecutionAPI } from './apis/eth_execution_api.js';\n// eslint-disable-next-line require-extensions/require-extensions\nimport {\n\tJsonRpcNotification,\n\tJsonRpcPayload,\n\tJsonRpcResponse,\n\tJsonRpcResponseWithError,\n\tJsonRpcResponseWithResult,\n\tJsonRpcResult,\n\tJsonRpcSubscriptionResult,\n} from './json_rpc_types';\n// eslint-disable-next-line require-extensions/require-extensions\nimport {\n\tWeb3APISpec,\n\tWeb3APIMethod,\n\tWeb3APIReturnType,\n\tWeb3APIPayload,\n\tProviderConnectInfo,\n\tProviderRpcError,\n\tProviderMessage,\n} from './web3_api_types';\n// eslint-disable-next-line require-extensions/require-extensions\nimport { Web3EthExecutionAPI } from './apis/web3_eth_execution_api';\n// eslint-disable-next-line require-extensions/require-extensions\nimport { Web3DeferredPromiseInterface } from './web3_deferred_promise_type';\n\nconst symbol = Symbol.for('web3/base-provider');\n\nexport interface SocketRequestItem<\n\tAPI extends Web3APISpec,\n\tMethod extends Web3APIMethod<API>,\n\tResponseType,\n> {\n\tpayload: Web3APIPayload<API, Method>;\n\tdeferredPromise: Web3DeferredPromiseInterface<ResponseType>;\n}\n\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md#connectivity\nexport type Web3ProviderStatus = 'connecting' | 'connected' | 'disconnected';\n\nexport type Web3ProviderEventCallback<T = JsonRpcResult> = (\n\terror: Error | ProviderRpcError | undefined,\n\tresult?: JsonRpcSubscriptionResult | JsonRpcNotification<T>,\n) => void;\n\nexport type Web3ProviderMessageEventCallback<T = JsonRpcResult> = (\n\tresult?: JsonRpcSubscriptionResult | JsonRpcNotification<T>,\n) => void;\n\nexport type Web3Eip1193ProviderEventCallback<T> = (data: T) => void;\n\nexport type Web3ProviderRequestCallback<ResultType = unknown> = (\n\t// Used \"null\" value to match the legacy version\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\terr?: Error | Web3Error | null | JsonRpcResponseWithError<Error>,\n\tresponse?: JsonRpcResponseWithResult<ResultType>,\n) => void;\n\nexport interface LegacySendProvider {\n\tsend<R = JsonRpcResult, P = unknown>(\n\t\tpayload: JsonRpcPayload<P>,\n\t\t// Used \"null\" value to match the legacy version\n\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\tcallback: (err: Error | null, response?: JsonRpcResponse<R>) => void,\n\t): void;\n}\n\nexport interface LegacySendAsyncProvider {\n\tsendAsync<R = JsonRpcResult, P = unknown>(\n\t\tpayload: JsonRpcPayload<P>,\n\t): Promise<JsonRpcResponse<R>>;\n}\n\nexport interface LegacyRequestProvider {\n\trequest<R = JsonRpcResult, P = unknown>(\n\t\tpayload: JsonRpcPayload<P>,\n\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\tcallback: (err: Error | null, response: JsonRpcResponse<R>) => void,\n\t): void;\n}\n\nexport interface SimpleProvider<API extends Web3APISpec> {\n\trequest<Method extends Web3APIMethod<API>, ResponseType = Web3APIReturnType<API, Method>>(\n\t\targs: Web3APIPayload<API, Method>,\n\t): Promise<JsonRpcResponseWithResult<ResponseType> | unknown>;\n}\n\nexport interface ProviderInfo {\n\tchainId: string;\n}\n\nexport type ProviderChainId = string;\n\nexport type ProviderAccounts = string[];\n\nexport type Eip1193EventName =\n\t| 'connect'\n\t| 'disconnect'\n\t| 'message'\n\t| 'chainChanged'\n\t| 'accountsChanged';\n\nexport interface EIP1193Provider<API extends Web3APISpec> extends SimpleProvider<API> {\n\ton(event: 'connect', listener: (info: ProviderInfo) => void): void;\n\ton(event: 'disconnect', listener: (error: ProviderRpcError) => void): void;\n\ton(event: 'message', listener: (message: ProviderMessage) => void): void;\n\ton(event: 'chainChanged', listener: (chainId: ProviderChainId) => void): void;\n\ton(event: 'accountsChanged', listener: (accounts: ProviderAccounts) => void): void;\n\n\tremoveListener(event: 'connect', listener: (info: ProviderInfo) => void): void;\n\tremoveListener(event: 'disconnect', listener: (error: ProviderRpcError) => void): void;\n\tremoveListener(event: 'message', listener: (message: ProviderMessage) => void): void;\n\tremoveListener(event: 'chainChanged', listener: (chainId: ProviderChainId) => void): void;\n\tremoveListener(event: 'accountsChanged', listener: (accounts: ProviderAccounts) => void): void;\n}\n\nexport interface MetaMaskProvider<API extends Web3APISpec> extends SimpleProvider<API> {\n\ton(event: 'connect', listener: (info: ProviderInfo) => void): void;\n\ton(event: 'disconnect', listener: (error: ProviderRpcError) => void): void;\n\ton(event: 'message', listener: (message: ProviderMessage) => void): void;\n\ton(event: 'chainChanged', listener: (chainId: ProviderChainId) => void): void;\n\ton(event: 'accountsChanged', listener: (accounts: ProviderAccounts) => void): void;\n\n\tremoveListener(event: 'connect', listener: (info: ProviderInfo) => void): void;\n\tremoveListener(event: 'disconnect', listener: (error: ProviderRpcError) => void): void;\n\tremoveListener(event: 'message', listener: (message: ProviderMessage) => void): void;\n\tremoveListener(event: 'chainChanged', listener: (chainId: ProviderChainId) => void): void;\n\tremoveListener(event: 'accountsChanged', listener: (accounts: ProviderAccounts) => void): void;\n\tisMetaMask: boolean;\n}\n\nexport type Eip1193Compatible<API extends Web3APISpec = EthExecutionAPI> = Omit<\n\t// eslint-disable-next-line no-use-before-define\n\tOmit<Web3BaseProvider, 'request'>,\n\t'asEIP1193Provider'\n> & {\n\trequest<\n\t\tMethod extends Web3APIMethod<API>,\n\t\tResultType = Web3APIReturnType<API, Method> | unknown,\n\t>(\n\t\trequest: Web3APIPayload<API, Method>,\n\t): Promise<ResultType>;\n};\n\n// Provider interface compatible with EIP-1193\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md\nexport abstract class Web3BaseProvider<API extends Web3APISpec = EthExecutionAPI>\n\timplements LegacySendProvider, LegacySendAsyncProvider, EIP1193Provider<API>\n{\n\tpublic static isWeb3Provider(provider: unknown) {\n\t\treturn (\n\t\t\tprovider instanceof Web3BaseProvider ||\n\t\t\tBoolean(provider && (provider as { [symbol]: boolean })[symbol])\n\t\t);\n\t}\n\n\t// To match an object \"instanceof\" does not work if\n\t// matcher class and object is using different package versions\n\t// to overcome this bottleneck used this approach.\n\t// The symbol value for one string will always remain same regardless of package versions\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic get [symbol]() {\n\t\treturn true;\n\t}\n\n\tpublic abstract getStatus(): Web3ProviderStatus;\n\tpublic abstract supportsSubscriptions(): boolean;\n\n\t/**\n\t * @deprecated Please use `.request` instead.\n\t * @param payload - Request Payload\n\t * @param callback - Callback\n\t */\n\tpublic send<ResultType = JsonRpcResult, P = unknown>(\n\t\tpayload: JsonRpcPayload<P>,\n\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\tcallback: (err: Error | null, response?: JsonRpcResponse<ResultType>) => void,\n\t) {\n\t\tthis.request<Web3APIMethod<API>, ResultType>(\n\t\t\tpayload as Web3APIPayload<API, Web3APIMethod<API>>,\n\t\t)\n\t\t\t.then(response => {\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\tcallback(null, response);\n\t\t\t})\n\t\t\t.catch((err: Error | Web3Error) => {\n\t\t\t\tcallback(err);\n\t\t\t});\n\t}\n\n\t/**\n\t * @deprecated Please use `.request` instead.\n\t * @param payload - Request Payload\n\t */\n\tpublic async sendAsync<R = JsonRpcResult, P = unknown>(payload: JsonRpcPayload<P>) {\n\t\treturn this.request(payload as Web3APIPayload<API, Web3APIMethod<API>>) as Promise<\n\t\t\tJsonRpcResponse<R>\n\t\t>;\n\t}\n\n\t/**\n\t * Modify the return type of the request method to be fully compatible with EIP-1193\n\t *\n\t * [deprecated] In the future major releases (\\>= v5) all providers are supposed to be fully compatible with EIP-1193.\n\t * So this method will not be needed and would not be available in the future.\n\t *\n\t * @returns A new instance of the provider with the request method fully compatible with EIP-1193\n\t *\n\t * @example\n\t * ```ts\n\t * const provider = new Web3HttpProvider('http://localhost:8545');\n\t * const fullyCompatibleProvider = provider.asEIP1193Provider();\n\t * const result = await fullyCompatibleProvider.request({ method: 'eth_getBalance' });\n\t * console.log(result); // '0x0234c8a3397aab58' or something like that\n\t * ```\n\t */\n\tpublic asEIP1193Provider(): Eip1193Compatible<API> {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst newObj = Object.create(this) as Eip1193Compatible<API>;\n\t\t// eslint-disable-next-line @typescript-eslint/unbound-method\n\t\tconst originalRequest = newObj.request;\n\t\tnewObj.request = async function request(\n\t\t\targs: Web3APIPayload<API, Web3APIMethod<API>>,\n\t\t): Promise<unknown> {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n\t\t\tconst response = (await originalRequest(args)) as JsonRpcResponseWithResult<unknown>;\n\t\t\treturn response.result;\n\t\t} as typeof newObj.request;\n\t\t// @ts-expect-error the property should not be available in the new object because of using Object.create(this).\n\t\t//\tBut it is available if we do not delete it.\n\t\tnewObj.asEIP1193Provider = undefined; // to prevent the user for calling this method again\n\t\treturn newObj;\n\t}\n\n\t// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md#request\n\tpublic abstract request<\n\t\tMethod extends Web3APIMethod<API>,\n\t\tResultType = Web3APIReturnType<API, Method> | unknown,\n\t>(args: Web3APIPayload<API, Method>): Promise<JsonRpcResponseWithResult<ResultType>>;\n\n\t// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md#events\n\n\tpublic abstract on(\n\t\ttype: 'disconnect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderRpcError>,\n\t): void;\n\tpublic abstract on<T = JsonRpcResult>(\n\t\ttype: 'message' | string,\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<ProviderMessage>\n\t\t\t| Web3ProviderMessageEventCallback<T>,\n\t): void;\n\t// for old providers\n\tpublic abstract on<T = JsonRpcResult>(\n\t\ttype: 'data' | string,\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<ProviderMessage>\n\t\t\t| Web3ProviderMessageEventCallback<T>,\n\t): void;\n\tpublic abstract on(\n\t\ttype: 'connect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>,\n\t): void;\n\tpublic abstract on(\n\t\ttype: 'chainChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string>,\n\t): void;\n\tpublic abstract on(\n\t\ttype: 'accountsChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string[]>,\n\t): void;\n\tpublic abstract removeListener(\n\t\ttype: 'disconnect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderRpcError>,\n\t): void;\n\tpublic abstract removeListener<T = JsonRpcResult>(\n\t\ttype: 'message' | string,\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderMessage> | Web3ProviderEventCallback<T>,\n\t): void;\n\tpublic abstract removeListener(\n\t\ttype: 'connect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>,\n\t): void;\n\tpublic abstract removeListener(\n\t\ttype: 'chainChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string>,\n\t): void;\n\tpublic abstract removeListener(\n\t\ttype: 'accountsChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string[]>,\n\t): void;\n\tpublic abstract once(\n\t\ttype: 'disconnect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderRpcError>,\n\t): void;\n\tpublic abstract once<T = JsonRpcResult>(\n\t\ttype: 'message' | string,\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderMessage> | Web3ProviderEventCallback<T>,\n\t): void;\n\tpublic abstract once(\n\t\ttype: 'connect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>,\n\t): void;\n\tpublic abstract once(\n\t\ttype: 'chainChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string>,\n\t): void;\n\tpublic abstract once(\n\t\ttype: 'accountsChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string[]>,\n\t): void;\n\tpublic abstract removeAllListeners?(type: string): void;\n\tpublic abstract connect(): void;\n\tpublic abstract disconnect(code?: number, data?: string): void;\n\tpublic abstract reset(): void;\n}\n\nexport type SupportedProviders<API extends Web3APISpec = Web3EthExecutionAPI> =\n\t| EIP1193Provider<API>\n\t| Web3BaseProvider<API>\n\t| LegacyRequestProvider\n\t| LegacySendProvider\n\t| LegacySendAsyncProvider\n\t| SimpleProvider<API>\n\t| MetaMaskProvider<API>;\n\nexport type Web3BaseProviderConstructor = new <API extends Web3APISpec>(\n\turl: string,\n\tnet?: Socket,\n) => Web3BaseProvider<API>;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Transaction } from './eth_types.js';\nimport { HexString } from './primitives_types.js';\n\nexport type Cipher = 'aes-128-ctr' | 'aes-128-cbc' | 'aes-256-cbc';\n\nexport type CipherOptions = {\n\tsalt?: Uint8Array | string;\n\tiv?: Uint8Array | string;\n\tkdf?: 'scrypt' | 'pbkdf2';\n\tdklen?: number;\n\tc?: number; // iterrations\n\tn?: number; // cpu/memory cost\n\tr?: number; // block size\n\tp?: number; // parallelization cost\n};\n\nexport type ScryptParams = {\n\tdklen: number;\n\tn: number;\n\tp: number;\n\tr: number;\n\tsalt: Uint8Array | string;\n};\nexport type PBKDF2SHA256Params = {\n\tc: number; // iterations\n\tdklen: number;\n\tprf: 'hmac-sha256';\n\tsalt: Uint8Array | string;\n};\n\nexport type KeyStore = {\n\tcrypto: {\n\t\tcipher: Cipher;\n\t\tciphertext: string;\n\t\tcipherparams: {\n\t\t\tiv: string;\n\t\t};\n\t\tkdf: 'pbkdf2' | 'scrypt';\n\t\tkdfparams: ScryptParams | PBKDF2SHA256Params;\n\t\tmac: HexString;\n\t};\n\tid: string;\n\tversion: 3;\n\taddress: string;\n};\n\nexport interface Web3BaseWalletAccount {\n\t[key: string]: unknown;\n\treadonly address: string;\n\treadonly privateKey: string;\n\treadonly signTransaction: (tx: Transaction) => Promise<{\n\t\treadonly messageHash: HexString;\n\t\treadonly r: HexString;\n\t\treadonly s: HexString;\n\t\treadonly v: HexString;\n\t\treadonly rawTransaction: HexString;\n\t\treadonly transactionHash: HexString;\n\t}>;\n\treadonly sign: (data: Record<string, unknown> | string) => {\n\t\treadonly messageHash: HexString;\n\t\treadonly r: HexString;\n\t\treadonly s: HexString;\n\t\treadonly v: HexString;\n\t\treadonly message?: string;\n\t\treadonly signature: HexString;\n\t};\n\treadonly encrypt: (password: string, options?: Record<string, unknown>) => Promise<KeyStore>;\n}\n\nexport interface Web3AccountProvider<T> {\n\tprivateKeyToAccount: (privateKey: string) => T;\n\tcreate: () => T;\n\tdecrypt: (\n\t\tkeystore: KeyStore | string,\n\t\tpassword: string,\n\t\toptions?: Record<string, unknown>,\n\t) => Promise<T>;\n}\n\nexport abstract class Web3BaseWallet<T extends Web3BaseWalletAccount> extends Array<T> {\n\tprotected readonly _accountProvider: Web3AccountProvider<T>;\n\n\tpublic constructor(accountProvider: Web3AccountProvider<T>) {\n\t\tsuper();\n\t\tthis._accountProvider = accountProvider;\n\t}\n\n\tpublic abstract create(numberOfAccounts: number): this;\n\tpublic abstract add(account: T | string): this;\n\tpublic abstract get(addressOrIndex: string | number): T | undefined;\n\tpublic abstract remove(addressOrIndex: string | number): boolean;\n\tpublic abstract clear(): this;\n\tpublic abstract encrypt(\n\t\tpassword: string,\n\t\toptions?: Record<string, unknown>,\n\t): Promise<KeyStore[]>;\n\tpublic abstract decrypt(\n\t\tencryptedWallet: KeyStore[],\n\t\tpassword: string,\n\t\toptions?: Record<string, unknown>,\n\t): Promise<this>;\n\tpublic abstract save(password: string, keyName?: string): Promise<boolean | never>;\n\tpublic abstract load(password: string, keyName?: string): Promise<this | never>;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// Response error\nexport const ERR_RESPONSE = 100;\nexport const ERR_INVALID_RESPONSE = 101;\n\n// Generic errors\nexport const ERR_PARAM = 200;\nexport const ERR_FORMATTERS = 201;\nexport const ERR_METHOD_NOT_IMPLEMENTED = 202;\nexport const ERR_OPERATION_TIMEOUT = 203;\nexport const ERR_OPERATION_ABORT = 204;\nexport const ERR_ABI_ENCODING = 205;\nexport const ERR_EXISTING_PLUGIN_NAMESPACE = 206;\nexport const ERR_INVALID_METHOD_PARAMS = 207;\nexport const ERR_MULTIPLE_ERRORS = 208;\n\n// Contract error codes\nexport const ERR_CONTRACT = 300;\nexport const ERR_CONTRACT_RESOLVER_MISSING = 301;\nexport const ERR_CONTRACT_ABI_MISSING = 302;\nexport const ERR_CONTRACT_REQUIRED_CALLBACK = 303;\nexport const ERR_CONTRACT_EVENT_NOT_EXISTS = 304;\nexport const ERR_CONTRACT_RESERVED_EVENT = 305;\nexport const ERR_CONTRACT_MISSING_DEPLOY_DATA = 306;\nexport const ERR_CONTRACT_MISSING_ADDRESS = 307;\nexport const ERR_CONTRACT_MISSING_FROM_ADDRESS = 308;\nexport const ERR_CONTRACT_INSTANTIATION = 309;\nexport const ERR_CONTRACT_EXECUTION_REVERTED = 310;\nexport const ERR_CONTRACT_TX_DATA_AND_INPUT = 311;\n\n// Transaction error codes\nexport const ERR_TX = 400;\nexport const ERR_TX_REVERT_INSTRUCTION = 401;\nexport const ERR_TX_REVERT_TRANSACTION = 402;\nexport const ERR_TX_NO_CONTRACT_ADDRESS = 403;\nexport const ERR_TX_CONTRACT_NOT_STORED = 404;\nexport const ERR_TX_REVERT_WITHOUT_REASON = 405;\nexport const ERR_TX_OUT_OF_GAS = 406;\nexport const ERR_RAW_TX_UNDEFINED = 407;\n\nexport const ERR_TX_INVALID_SENDER = 408;\nexport const ERR_TX_INVALID_CALL = 409;\nexport const ERR_TX_MISSING_CUSTOM_CHAIN = 410;\nexport const ERR_TX_MISSING_CUSTOM_CHAIN_ID = 411;\nexport const ERR_TX_CHAIN_ID_MISMATCH = 412;\nexport const ERR_TX_INVALID_CHAIN_INFO = 413;\nexport const ERR_TX_MISSING_CHAIN_INFO = 414;\nexport const ERR_TX_MISSING_GAS = 415;\nexport const ERR_TX_INVALID_LEGACY_GAS = 416;\nexport const ERR_TX_INVALID_FEE_MARKET_GAS = 417;\nexport const ERR_TX_INVALID_FEE_MARKET_GAS_PRICE = 418;\nexport const ERR_TX_INVALID_LEGACY_FEE_MARKET = 419;\nexport const ERR_TX_INVALID_OBJECT = 420;\nexport const ERR_TX_INVALID_NONCE_OR_CHAIN_ID = 421;\nexport const ERR_TX_UNABLE_TO_POPULATE_NONCE = 422;\nexport const ERR_TX_UNSUPPORTED_EIP_1559 = 423;\nexport const ERR_TX_UNSUPPORTED_TYPE = 424;\nexport const ERR_TX_DATA_AND_INPUT = 425;\nexport const ERR_TX_POLLING_TIMEOUT = 426;\nexport const ERR_TX_RECEIPT_MISSING_OR_BLOCKHASH_NULL = 427;\nexport const ERR_TX_RECEIPT_MISSING_BLOCK_NUMBER = 428;\n\nexport const ERR_TX_LOCAL_WALLET_NOT_AVAILABLE = 429;\n\nexport const ERR_TX_NOT_FOUND = 430;\nexport const ERR_TX_SEND_TIMEOUT = 431;\nexport const ERR_TX_BLOCK_TIMEOUT = 432;\n\nexport const ERR_TX_SIGNING = 433;\nexport const ERR_TX_GAS_MISMATCH = 434;\n\nexport const ERR_TX_CHAIN_MISMATCH = 435;\nexport const ERR_TX_HARDFORK_MISMATCH = 436;\nexport const ERR_TX_INVALID_RECEIVER = 437;\nexport const ERR_TX_REVERT_TRANSACTION_CUSTOM_ERROR = 438;\nexport const ERR_TX_INVALID_PROPERTIES_FOR_TYPE = 439;\n\nexport const ERR_TX_MISSING_GAS_INNER_ERROR = 440;\nexport const ERR_TX_GAS_MISMATCH_INNER_ERROR = 441;\n// Connection error codes\nexport const ERR_CONN = 500;\nexport const ERR_CONN_INVALID = 501;\nexport const ERR_CONN_TIMEOUT = 502;\nexport const ERR_CONN_NOT_OPEN = 503;\nexport const ERR_CONN_CLOSE = 504;\nexport const ERR_CONN_MAX_ATTEMPTS = 505;\nexport const ERR_CONN_PENDING_REQUESTS = 506;\nexport const ERR_REQ_ALREADY_SENT = 507;\n\n// Provider error codes\nexport const ERR_PROVIDER = 600;\nexport const ERR_INVALID_PROVIDER = 601;\nexport const ERR_INVALID_CLIENT = 602;\nexport const ERR_SUBSCRIPTION = 603;\nexport const ERR_WS_PROVIDER = 604;\n\n// Account error codes\nexport const ERR_PRIVATE_KEY_LENGTH = 701;\nexport const ERR_INVALID_PRIVATE_KEY = 702;\nexport const ERR_UNSUPPORTED_KDF = 703;\nexport const ERR_KEY_DERIVATION_FAIL = 704;\nexport const ERR_KEY_VERSION_UNSUPPORTED = 705;\nexport const ERR_INVALID_PASSWORD = 706;\nexport const ERR_IV_LENGTH = 707;\nexport const ERR_INVALID_KEYSTORE = 708;\nexport const ERR_PBKDF2_ITERATIONS = 709;\n\n// Signature error codes\nexport const ERR_SIGNATURE_FAILED = 801;\nexport const ERR_INVALID_SIGNATURE = 802;\n\nexport const GENESIS_BLOCK_NUMBER = '0x0';\n\n// RPC error codes (EIP-1193)\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md#provider-errors\nexport const JSONRPC_ERR_REJECTED_REQUEST = 4001;\nexport const JSONRPC_ERR_UNAUTHORIZED = 4100;\nexport const JSONRPC_ERR_UNSUPPORTED_METHOD = 4200;\nexport const JSONRPC_ERR_DISCONNECTED = 4900;\nexport const JSONRPC_ERR_CHAIN_DISCONNECTED = 4901;\n\n// ENS error codes\nexport const ERR_ENS_CHECK_INTERFACE_SUPPORT = 901;\nexport const ERR_ENS_UNSUPPORTED_NETWORK = 902;\nexport const ERR_ENS_NETWORK_NOT_SYNCED = 903;\n\n// Utils error codes\nexport const ERR_INVALID_STRING = 1001;\nexport const ERR_INVALID_BYTES = 1002;\nexport const ERR_INVALID_NUMBER = 1003;\nexport const ERR_INVALID_UNIT = 1004;\nexport const ERR_INVALID_ADDRESS = 1005;\nexport const ERR_INVALID_HEX = 1006;\nexport const ERR_INVALID_TYPE = 1007;\nexport const ERR_INVALID_BOOLEAN = 1008;\nexport const ERR_INVALID_UNSIGNED_INTEGER = 1009;\nexport const ERR_INVALID_SIZE = 1010;\nexport const ERR_INVALID_LARGE_VALUE = 1011;\nexport const ERR_INVALID_BLOCK = 1012;\nexport const ERR_INVALID_TYPE_ABI = 1013;\nexport const ERR_INVALID_NIBBLE_WIDTH = 1014;\nexport const ERR_INVALID_INTEGER = 1015;\n\n// Validation error codes\nexport const ERR_VALIDATION = 1100;\n\n\n// Core error codes\nexport const ERR_CORE_HARDFORK_MISMATCH = 1101;\nexport const ERR_CORE_CHAIN_MISMATCH = 1102;\n\n// Schema error codes\nexport const ERR_SCHEMA_FORMAT = 1200;\n\n// RPC error codes (EIP-1474)\n// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1474.md\nexport const ERR_RPC_INVALID_JSON = -32700;\nexport const ERR_RPC_INVALID_REQUEST = -32600;\nexport const ERR_RPC_INVALID_METHOD = -32601;\nexport const ERR_RPC_INVALID_PARAMS = -32602;\nexport const ERR_RPC_INTERNAL_ERROR = -32603;\nexport const ERR_RPC_INVALID_INPUT = -32000;\nexport const ERR_RPC_MISSING_RESOURCE = -32001;\nexport const ERR_RPC_UNAVAILABLE_RESOURCE = -32002;\nexport const ERR_RPC_TRANSACTION_REJECTED = -32003;\nexport const ERR_RPC_UNSUPPORTED_METHOD = -32004;\nexport const ERR_RPC_LIMIT_EXCEEDED = -32005;\nexport const ERR_RPC_NOT_SUPPORTED = -32006;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport { Web3Error } from 'web3-types';\nimport { ERR_MULTIPLE_ERRORS } from './error_codes.js';\n\n/**\n * Base class for Web3 errors.\n */\nexport abstract class BaseWeb3Error extends Error implements Web3Error {\n\tpublic readonly name: string;\n\tpublic abstract readonly code: number;\n\tpublic stack: string | undefined;\n\n\tpublic cause: Error | undefined;\n\n\t/**\n\t * @deprecated Use the `cause` property instead.\n\t */\n\tpublic get innerError(): Error | Error[] | undefined {\n\t\t// eslint-disable-next-line no-use-before-define\n\t\tif (this.cause instanceof MultipleErrors) {\n\t\t\treturn this.cause.errors;\n\t\t}\n\t\treturn this.cause;\n\t}\n\t/**\n\t * @deprecated Use the `cause` property instead.\n\t */\n\tpublic set innerError(cause: Error | Error[] | undefined) {\n\t\tif (Array.isArray(cause)) {\n\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\tthis.cause = new MultipleErrors(cause);\n\t\t} else {\n\t\t\tthis.cause = cause;\n\t\t}\n\t}\n\n\tpublic constructor(msg?: string, cause?: Error | Error[]) {\n\t\tsuper(msg);\n\n\t\tif (Array.isArray(cause)) {\n\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\tthis.cause = new MultipleErrors(cause);\n\t\t} else {\n\t\t\tthis.cause = cause;\n\t\t}\n\n\t\tthis.name = this.constructor.name;\n\n\t\tif (typeof Error.captureStackTrace === 'function') {\n\t\t\tError.captureStackTrace(new.target.constructor);\n\t\t} else {\n\t\t\tthis.stack = new Error().stack;\n\t\t}\n\t}\n\n\tpublic static convertToString(value: unknown, unquotValue = false) {\n\t\t// Using \"null\" value intentionally for validation\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (value === null || value === undefined) return 'undefined';\n\n\t\tconst result = JSON.stringify(\n\t\t\tvalue,\n\t\t\t(_, v) => (typeof v === 'bigint' ? v.toString() : v) as unknown,\n\t\t);\n\n\t\treturn unquotValue && ['bigint', 'string'].includes(typeof value)\n\t\t\t? result.replace(/['\\\\\"]+/g, '')\n\t\t\t: result;\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tcode: this.code,\n\t\t\tmessage: this.message,\n\t\t\tcause: this.cause,\n\t\t\t// deprecated\n\t\t\tinnerError: this.cause,\n\t\t};\n\t}\n}\n\nexport class MultipleErrors extends BaseWeb3Error {\n\tpublic code = ERR_MULTIPLE_ERRORS;\n\tpublic errors: Error[];\n\n\tpublic constructor(errors: Error[]) {\n\t\tsuper(`Multiple errors occurred: [${errors.map(e => e.message).join('], [')}]`);\n\t\tthis.errors = errors;\n\t}\n}\n\nexport abstract class InvalidValueError extends BaseWeb3Error {\n\tpublic readonly name: string;\n\n\tpublic constructor(value: unknown, msg: string) {\n\t\tsuper(\n\t\t\t`Invalid value given \"${BaseWeb3Error.convertToString(value, true)}\". Error: ${msg}.`,\n\t\t);\n\t\tthis.name = this.constructor.name;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport {\n\tERR_PRIVATE_KEY_LENGTH,\n\tERR_INVALID_PRIVATE_KEY,\n\tERR_INVALID_SIGNATURE,\n\tERR_UNSUPPORTED_KDF,\n\tERR_KEY_DERIVATION_FAIL,\n\tERR_KEY_VERSION_UNSUPPORTED,\n\tERR_INVALID_PASSWORD,\n\tERR_IV_LENGTH,\n\tERR_PBKDF2_ITERATIONS,\n} from '../error_codes.js';\nimport { BaseWeb3Error } from '../web3_error_base.js';\n\nexport class PrivateKeyLengthError extends BaseWeb3Error {\n\tpublic code = ERR_PRIVATE_KEY_LENGTH;\n\tpublic constructor() {\n\t\tsuper(`Private key must be 32 bytes.`);\n\t}\n}\n\nexport class InvalidPrivateKeyError extends BaseWeb3Error {\n\tpublic code = ERR_INVALID_PRIVATE_KEY;\n\tpublic constructor() {\n\t\tsuper(`Invalid Private Key, Not a valid string or uint8Array`);\n\t}\n}\n\nexport class InvalidSignatureError extends BaseWeb3Error {\n\tpublic code = ERR_INVALID_SIGNATURE;\n\tpublic constructor(errorDetails: string) {\n\t\tsuper(`\"${errorDetails}\"`);\n\t}\n}\n\nexport class InvalidKdfError extends BaseWeb3Error {\n\tpublic code = ERR_UNSUPPORTED_KDF;\n\tpublic constructor() {\n\t\tsuper(`Invalid key derivation function`);\n\t}\n}\n\nexport class KeyDerivationError extends BaseWeb3Error {\n\tpublic code = ERR_KEY_DERIVATION_FAIL;\n\tpublic constructor() {\n\t\tsuper(`Key derivation failed - possibly wrong password`);\n\t}\n}\n\nexport class KeyStoreVersionError extends BaseWeb3Error {\n\tpublic code = ERR_KEY_VERSION_UNSUPPORTED;\n\tpublic constructor() {\n\t\tsuper('Unsupported key store version');\n\t}\n}\n\nexport class InvalidPasswordError extends BaseWeb3Error {\n\tpublic code = ERR_INVALID_PASSWORD;\n\tpublic constructor() {\n\t\tsuper('Password cannot be empty');\n\t}\n}\n\nexport class IVLengthError extends BaseWeb3Error {\n\tpublic code = ERR_IV_LENGTH;\n\tpublic constructor() {\n\t\tsuper('Initialization vector must be 16 bytes');\n\t}\n}\n\nexport class PBKDF2IterationsError extends BaseWeb3Error {\n\tpublic code = ERR_PBKDF2_ITERATIONS;\n\tpublic constructor() {\n\t\tsuper('c > 1000, pbkdf2 is less secure with less iterations');\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport { ConnectionEvent } from 'web3-types';\nimport {\n\tERR_CONN,\n\tERR_CONN_INVALID,\n\tERR_CONN_TIMEOUT,\n\tERR_CONN_NOT_OPEN,\n\tERR_CONN_CLOSE,\n\tERR_CONN_MAX_ATTEMPTS,\n\tERR_CONN_PENDING_REQUESTS,\n\tERR_REQ_ALREADY_SENT,\n} from '../error_codes.js';\nimport { BaseWeb3Error } from '../web3_error_base.js';\n\nexport class ConnectionError extends BaseWeb3Error {\n\tpublic code = ERR_CONN;\n\tpublic errorCode?: number;\n\tpublic errorReason?: string;\n\n\tpublic constructor(message: string, event?: ConnectionEvent) {\n\t\tsuper(message);\n\n\t\tif (event) {\n\t\t\tthis.errorCode = event.code;\n\t\t\tthis.errorReason = event.reason;\n\t\t}\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), errorCode: this.errorCode, errorReason: this.errorReason };\n\t}\n}\n\nexport class InvalidConnectionError extends ConnectionError {\n\tpublic constructor(public host: string, event?: ConnectionEvent) {\n\t\tsuper(`CONNECTION ERROR: Couldn't connect to node ${host}.`, event);\n\t\tthis.code = ERR_CONN_INVALID;\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), host: this.host };\n\t}\n}\n\nexport class ConnectionTimeoutError extends ConnectionError {\n\tpublic constructor(public duration: number) {\n\t\tsuper(`CONNECTION TIMEOUT: timeout of ${duration}ms achieved`);\n\t\tthis.code = ERR_CONN_TIMEOUT;\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), duration: this.duration };\n\t}\n}\n\nexport class ConnectionNotOpenError extends ConnectionError {\n\tpublic constructor(event?: ConnectionEvent) {\n\t\tsuper('Connection not open', event);\n\t\tthis.code = ERR_CONN_NOT_OPEN;\n\t}\n}\n\nexport class ConnectionCloseError extends ConnectionError {\n\tpublic constructor(event?: ConnectionEvent) {\n\t\tsuper(\n\t\t\t`CONNECTION ERROR: The connection got closed with the close code ${\n\t\t\t\tevent?.code ?? ''\n\t\t\t} and the following reason string ${event?.reason ?? ''}`,\n\t\t\tevent,\n\t\t);\n\t\tthis.code = ERR_CONN_CLOSE;\n\t}\n}\n\nexport class MaxAttemptsReachedOnReconnectingError extends ConnectionError {\n\tpublic constructor(numberOfAttempts: number) {\n\t\tsuper(`Maximum number of reconnect attempts reached! (${numberOfAttempts})`);\n\t\tthis.code = ERR_CONN_MAX_ATTEMPTS;\n\t}\n}\n\nexport class PendingRequestsOnReconnectingError extends ConnectionError {\n\tpublic constructor() {\n\t\tsuper('CONNECTION ERROR: Provider started to reconnect before the response got received!');\n\t\tthis.code = ERR_CONN_PENDING_REQUESTS;\n\t}\n}\n\nexport class RequestAlreadySentError extends ConnectionError {\n\tpublic constructor(id: number | string) {\n\t\tsuper(`Request already sent with following id: ${id}`);\n\t\tthis.code = ERR_REQ_ALREADY_SENT;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport { JsonRpcError, TransactionReceipt, HexString } from 'web3-types';\nimport {\n\tERR_CONTRACT,\n\tERR_CONTRACT_ABI_MISSING,\n\tERR_CONTRACT_EXECUTION_REVERTED,\n\tERR_CONTRACT_EVENT_NOT_EXISTS,\n\tERR_CONTRACT_INSTANTIATION,\n\tERR_CONTRACT_MISSING_ADDRESS,\n\tERR_CONTRACT_MISSING_DEPLOY_DATA,\n\tERR_CONTRACT_MISSING_FROM_ADDRESS,\n\tERR_CONTRACT_REQUIRED_CALLBACK,\n\tERR_CONTRACT_RESERVED_EVENT,\n\tERR_CONTRACT_RESOLVER_MISSING,\n\tERR_CONTRACT_TX_DATA_AND_INPUT,\n} from '../error_codes.js';\nimport { BaseWeb3Error, InvalidValueError } from '../web3_error_base.js';\n\nexport class Web3ContractError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT;\n\tpublic receipt?: TransactionReceipt;\n\n\tpublic constructor(message: string, receipt?: TransactionReceipt) {\n\t\tsuper(message);\n\n\t\tthis.receipt = receipt;\n\t}\n}\nexport class ResolverMethodMissingError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_RESOLVER_MISSING;\n\n\tpublic constructor(public address: string, public name: string) {\n\t\tsuper(`The resolver at ${address} does not implement requested method: \"${name}\".`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), address: this.address, name: this.name };\n\t}\n}\n\nexport class ContractMissingABIError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_ABI_MISSING;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'You must provide the json interface of the contract when instantiating a contract object.',\n\t\t);\n\t}\n}\n\nexport class ContractOnceRequiresCallbackError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_REQUIRED_CALLBACK;\n\n\tpublic constructor() {\n\t\tsuper('Once requires a callback as the second parameter.');\n\t}\n}\n\nexport class ContractEventDoesNotExistError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_EVENT_NOT_EXISTS;\n\n\tpublic constructor(public eventName: string) {\n\t\tsuper(`Event \"${eventName}\" doesn't exist in this contract.`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), eventName: this.eventName };\n\t}\n}\n\nexport class ContractReservedEventError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_RESERVED_EVENT;\n\n\tpublic constructor(public type: string) {\n\t\tsuper(`Event \"${type}\" doesn't exist in this contract.`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), type: this.type };\n\t}\n}\n\nexport class ContractMissingDeployDataError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_MISSING_DEPLOY_DATA;\n\n\tpublic constructor() {\n\t\tsuper(`No \"data\" specified in neither the given options, nor the default options.`);\n\t}\n}\n\nexport class ContractNoAddressDefinedError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_MISSING_ADDRESS;\n\n\tpublic constructor() {\n\t\tsuper(\"This contract object doesn't have address set yet, please set an address first.\");\n\t}\n}\n\nexport class ContractNoFromAddressDefinedError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_MISSING_FROM_ADDRESS;\n\n\tpublic constructor() {\n\t\tsuper('No \"from\" address specified in neither the given options, nor the default options.');\n\t}\n}\n\nexport class ContractInstantiationError extends BaseWeb3Error {\n\tpublic code = ERR_CONTRACT_INSTANTIATION;\n}\n\nexport type ProviderErrorData =\n\t| HexString\n\t| { data: HexString }\n\t| { originalError: { data: HexString } };\n\n/**\n * This class is expected to be set as an `cause` inside ContractExecutionError\n * The properties would be typically decoded from the `data` if it was encoded according to EIP-838\n */\nexport class Eip838ExecutionError extends Web3ContractError {\n\tpublic readonly name: string;\n\tpublic code: number;\n\tpublic data?: HexString;\n\tpublic errorName?: string;\n\tpublic errorSignature?: string;\n\tpublic errorArgs?: { [K in string]: unknown };\n\n\t// eslint-disable-next-line no-use-before-define\n\tpublic cause: Eip838ExecutionError | undefined;\n\n\tpublic constructor(error: JsonRpcError<ProviderErrorData> | Eip838ExecutionError) {\n\t\tsuper(error.message || 'Error');\n\n\t\tthis.name = ('name' in error && error.name) || this.constructor.name;\n\t\tthis.stack = ('stack' in error && error.stack) || undefined;\n\t\tthis.code = error.code;\n\n\t\t// get embedded error details got from some providers like MetaMask\n\t\t// and set this.data from the inner error data for easier read.\n\t\t// note: the data is a hex string inside either:\n\t\t//\t error.data, error.data.data or error.data.originalError.data (https://github.com/web3/web3.js/issues/4454#issuecomment-1485953455)\n\t\tif (typeof error.data === 'object') {\n\t\t\tlet originalError: { data: string };\n\t\t\tif (error.data && 'originalError' in error.data) {\n\t\t\t\toriginalError = error.data.originalError;\n\t\t\t} else {\n\t\t\t\t// Ganache has no `originalError` sub-object unlike others\n\t\t\t\toriginalError = error.data;\n\t\t\t}\n\t\t\tthis.data = originalError.data;\n\t\t\tthis.cause = new Eip838ExecutionError(originalError as JsonRpcError<ProviderErrorData>);\n\t\t} else {\n\t\t\tthis.data = error.data;\n\t\t}\n\t}\n\n\tpublic setDecodedProperties(\n\t\terrorName: string,\n\t\terrorSignature?: string,\n\t\terrorArgs?: { [K in string]: unknown },\n\t) {\n\t\tthis.errorName = errorName;\n\t\tthis.errorSignature = errorSignature;\n\t\tthis.errorArgs = errorArgs;\n\t}\n\n\tpublic toJSON() {\n\t\tlet json = {\n\t\t\t...super.toJSON(),\n\t\t\tdata: this.data,\n\t\t} as {\n\t\t\tname: string;\n\t\t\tcode: number;\n\t\t\tmessage: string;\n\t\t\tinnerError: Eip838ExecutionError | undefined;\n\t\t\tcause: Eip838ExecutionError | undefined;\n\t\t\tdata: string;\n\t\t\terrorName?: string;\n\t\t\terrorSignature?: string;\n\t\t\terrorArgs?: { [K in string]: unknown };\n\t\t};\n\n\t\tif (this.errorName) {\n\t\t\tjson = {\n\t\t\t\t...json,\n\t\t\t\terrorName: this.errorName,\n\t\t\t\terrorSignature: this.errorSignature,\n\t\t\t\terrorArgs: this.errorArgs,\n\t\t\t};\n\t\t}\n\t\treturn json;\n\t}\n}\n\n/**\n * Used when an error is raised while executing a function inside a smart contract.\n * The data is expected to be encoded according to EIP-848.\n */\nexport class ContractExecutionError extends Web3ContractError {\n\tpublic cause: Eip838ExecutionError;\n\n\tpublic constructor(rpcError: JsonRpcError) {\n\t\tsuper('Error happened while trying to execute a function inside a smart contract');\n\t\tthis.code = ERR_CONTRACT_EXECUTION_REVERTED;\n\t\tthis.cause = new Eip838ExecutionError(rpcError as JsonRpcError<ProviderErrorData>);\n\t}\n}\n\nexport class ContractTransactionDataAndInputError extends InvalidValueError {\n\tpublic code = ERR_CONTRACT_TX_DATA_AND_INPUT;\n\n\tpublic constructor(value: { data: HexString | undefined; input: HexString | undefined }) {\n\t\tsuper(\n\t\t\t`data: ${value.data ?? 'undefined'}, input: ${value.input ?? 'undefined'}`,\n\t\t\t'You can\\'t have \"data\" and \"input\" as properties of a contract at the same time, please use either \"data\" or \"input\" instead.',\n\t\t);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport {\n\tERR_ENS_CHECK_INTERFACE_SUPPORT,\n\tERR_ENS_NETWORK_NOT_SYNCED,\n\tERR_ENS_UNSUPPORTED_NETWORK,\n} from '../error_codes.js';\nimport { BaseWeb3Error } from '../web3_error_base.js';\n\nexport class ENSCheckInterfaceSupportError extends BaseWeb3Error {\n\tpublic code = ERR_ENS_CHECK_INTERFACE_SUPPORT;\n\tpublic constructor(errorDetails: string) {\n\t\tsuper(`ENS resolver check interface support error. \"${errorDetails}\"`);\n\t}\n}\n\nexport class ENSUnsupportedNetworkError extends BaseWeb3Error {\n\tpublic code = ERR_ENS_UNSUPPORTED_NETWORK;\n\tpublic constructor(networkType: string) {\n\t\tsuper(`ENS is not supported on network ${networkType}`);\n\t}\n}\n\nexport class ENSNetworkNotSyncedError extends BaseWeb3Error {\n\tpublic code = ERR_ENS_NETWORK_NOT_SYNCED;\n\tpublic constructor() {\n\t\tsuper(`Network not synced`);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport {\n\tERR_ABI_ENCODING,\n\tERR_FORMATTERS,\n\tERR_METHOD_NOT_IMPLEMENTED,\n\tERR_OPERATION_ABORT,\n\tERR_OPERATION_TIMEOUT,\n\tERR_PARAM,\n\tERR_EXISTING_PLUGIN_NAMESPACE,\n\tERR_INVALID_METHOD_PARAMS,\n} from '../error_codes.js';\nimport { BaseWeb3Error } from '../web3_error_base.js';\n\nexport class InvalidNumberOfParamsError extends BaseWeb3Error {\n\tpublic code = ERR_PARAM;\n\n\tpublic constructor(public got: number, public expected: number, public method: string) {\n\t\tsuper(`Invalid number of parameters for \"${method}\". Got \"${got}\" expected \"${expected}\"!`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\t...super.toJSON(),\n\t\t\tgot: this.got,\n\t\t\texpected: this.expected,\n\t\t\tmethod: this.method,\n\t\t};\n\t}\n}\n\nexport class InvalidMethodParamsError extends BaseWeb3Error {\n\tpublic code = ERR_INVALID_METHOD_PARAMS;\n\n\tpublic constructor(public hint?: string) {\n\t\tsuper(`Invalid parameters passed. \"${typeof hint !== 'undefined' ? hint : ''}\"`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\t...super.toJSON(),\n\t\t\thint: this.hint,\n\t\t};\n\t}\n}\n\nexport class FormatterError extends BaseWeb3Error {\n\tpublic code = ERR_FORMATTERS;\n}\n\nexport class MethodNotImplementedError extends BaseWeb3Error {\n\tpublic code = ERR_METHOD_NOT_IMPLEMENTED;\n\n\tpublic constructor() {\n\t\tsuper(\"The method you're trying to call is not implemented.\");\n\t}\n}\n\nexport class OperationTimeoutError extends BaseWeb3Error {\n\tpublic code = ERR_OPERATION_TIMEOUT;\n}\n\nexport class OperationAbortError extends BaseWeb3Error {\n\tpublic code = ERR_OPERATION_ABORT;\n}\n\nexport class AbiError extends BaseWeb3Error {\n\tpublic code = ERR_ABI_ENCODING;\n\tpublic readonly props: Record<string, unknown> & { name?: string };\n\n\tpublic constructor(message: string, props?: Record<string, unknown> & { name?: string }) {\n\t\tsuper(message);\n\t\tthis.props = props ?? {};\n\t}\n}\n\nexport class ExistingPluginNamespaceError extends BaseWeb3Error {\n\tpublic code = ERR_EXISTING_PLUGIN_NAMESPACE;\n\n\tpublic constructor(pluginNamespace: string) {\n\t\tsuper(`A plugin with the namespace: ${pluginNamespace} has already been registered.`);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport {\n\tERR_PROVIDER,\n\tERR_INVALID_PROVIDER,\n\tERR_INVALID_CLIENT,\n\tERR_SUBSCRIPTION,\n\tERR_WS_PROVIDER,\n} from '../error_codes.js';\nimport { BaseWeb3Error } from '../web3_error_base.js';\n\nexport class ProviderError extends BaseWeb3Error {\n\tpublic code = ERR_PROVIDER;\n}\n\nexport class InvalidProviderError extends BaseWeb3Error {\n\tpublic code = ERR_INVALID_PROVIDER;\n\n\tpublic constructor(public clientUrl: string) {\n\t\tsuper(`Provider with url \"${clientUrl}\" is not set or invalid`);\n\t}\n}\n\nexport class InvalidClientError extends BaseWeb3Error {\n\tpublic code = ERR_INVALID_CLIENT;\n\n\tpublic constructor(clientUrl: string) {\n\t\tsuper(`Client URL \"${clientUrl}\" is invalid.`);\n\t}\n}\n\nexport class SubscriptionError extends BaseWeb3Error {\n\tpublic code = ERR_SUBSCRIPTION;\n}\n\nexport class Web3WSProviderError extends BaseWeb3Error {\n\tpublic code = ERR_WS_PROVIDER; // this had duplicate code with generic provider\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ERR_SIGNATURE_FAILED } from '../error_codes.js';\nimport { InvalidValueError } from '../web3_error_base.js';\n\nexport class SignatureError extends InvalidValueError {\n\tpublic code = ERR_SIGNATURE_FAILED;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport {\n\tBytes,\n\tHexString,\n\tNumbers,\n\tTransactionReceipt,\n\tWeb3ValidationErrorObject,\n} from 'web3-types';\nimport {\n\tERR_RAW_TX_UNDEFINED,\n\tERR_TX,\n\tERR_TX_BLOCK_TIMEOUT,\n\tERR_TX_CONTRACT_NOT_STORED,\n\tERR_TX_CHAIN_ID_MISMATCH,\n\tERR_TX_DATA_AND_INPUT,\n\tERR_TX_GAS_MISMATCH,\n\tERR_TX_CHAIN_MISMATCH,\n\tERR_TX_HARDFORK_MISMATCH,\n\tERR_TX_INVALID_CALL,\n\tERR_TX_INVALID_CHAIN_INFO,\n\tERR_TX_INVALID_FEE_MARKET_GAS,\n\tERR_TX_INVALID_FEE_MARKET_GAS_PRICE,\n\tERR_TX_INVALID_LEGACY_FEE_MARKET,\n\tERR_TX_INVALID_LEGACY_GAS,\n\tERR_TX_INVALID_NONCE_OR_CHAIN_ID,\n\tERR_TX_INVALID_OBJECT,\n\tERR_TX_INVALID_SENDER,\n\tERR_TX_INVALID_RECEIVER,\n\tERR_TX_LOCAL_WALLET_NOT_AVAILABLE,\n\tERR_TX_MISSING_CHAIN_INFO,\n\tERR_TX_MISSING_CUSTOM_CHAIN,\n\tERR_TX_MISSING_CUSTOM_CHAIN_ID,\n\tERR_TX_MISSING_GAS,\n\tERR_TX_NO_CONTRACT_ADDRESS,\n\tERR_TX_NOT_FOUND,\n\tERR_TX_OUT_OF_GAS,\n\tERR_TX_POLLING_TIMEOUT,\n\tERR_TX_RECEIPT_MISSING_BLOCK_NUMBER,\n\tERR_TX_RECEIPT_MISSING_OR_BLOCKHASH_NULL,\n\tERR_TX_REVERT_INSTRUCTION,\n\tERR_TX_REVERT_TRANSACTION,\n\tERR_TX_REVERT_WITHOUT_REASON,\n\tERR_TX_SEND_TIMEOUT,\n\tERR_TX_SIGNING,\n\tERR_TX_UNABLE_TO_POPULATE_NONCE,\n\tERR_TX_UNSUPPORTED_EIP_1559,\n\tERR_TX_UNSUPPORTED_TYPE,\n\tERR_TX_REVERT_TRANSACTION_CUSTOM_ERROR,\n\tERR_TX_INVALID_PROPERTIES_FOR_TYPE,\n\tERR_TX_MISSING_GAS_INNER_ERROR,\n\tERR_TX_GAS_MISMATCH_INNER_ERROR,\n} from '../error_codes.js';\nimport { InvalidValueError, BaseWeb3Error } from '../web3_error_base.js';\n\nexport class TransactionError<ReceiptType = TransactionReceipt> extends BaseWeb3Error {\n\tpublic code = ERR_TX;\n\n\tpublic constructor(message: string, public receipt?: ReceiptType) {\n\t\tsuper(message);\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), receipt: this.receipt };\n\t}\n}\n\nexport class RevertInstructionError extends BaseWeb3Error {\n\tpublic code = ERR_TX_REVERT_INSTRUCTION;\n\n\tpublic constructor(public reason: string, public signature: string) {\n\t\tsuper(`Your request got reverted with the following reason string: ${reason}`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), reason: this.reason, signature: this.signature };\n\t}\n}\n\nexport class TransactionRevertInstructionError<\n\tReceiptType = TransactionReceipt,\n> extends BaseWeb3Error {\n\tpublic code = ERR_TX_REVERT_TRANSACTION;\n\n\tpublic constructor(\n\t\tpublic reason: string,\n\t\tpublic signature?: string,\n\t\tpublic receipt?: ReceiptType,\n\t\tpublic data?: string,\n\t) {\n\t\tsuper(\n\t\t\t`Transaction has been reverted by the EVM${\n\t\t\t\treceipt === undefined ? '' : `:\\n ${BaseWeb3Error.convertToString(receipt)}`\n\t\t\t}`,\n\t\t);\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\t...super.toJSON(),\n\t\t\treason: this.reason,\n\t\t\tsignature: this.signature,\n\t\t\treceipt: this.receipt,\n\t\t\tdata: this.data,\n\t\t};\n\t}\n}\n\n/**\n * This error is used when a transaction to a smart contract fails and\n * a custom user error (https://blog.soliditylang.org/2021/04/21/custom-errors/)\n * is able to be parsed from the revert reason\n */\nexport class TransactionRevertWithCustomError<\n\tReceiptType = TransactionReceipt,\n> extends TransactionRevertInstructionError<ReceiptType> {\n\tpublic code = ERR_TX_REVERT_TRANSACTION_CUSTOM_ERROR;\n\n\tpublic constructor(\n\t\tpublic reason: string,\n\t\tpublic customErrorName: string,\n\t\tpublic customErrorDecodedSignature: string,\n\t\tpublic customErrorArguments: Record<string, unknown>,\n\t\tpublic signature?: string,\n\t\tpublic receipt?: ReceiptType,\n\t\tpublic data?: string,\n\t) {\n\t\tsuper(reason);\n\t}\n\n\tpublic toJSON() {\n\t\treturn {\n\t\t\t...super.toJSON(),\n\t\t\treason: this.reason,\n\t\t\tcustomErrorName: this.customErrorName,\n\t\t\tcustomErrorDecodedSignature: this.customErrorDecodedSignature,\n\t\t\tcustomErrorArguments: this.customErrorArguments,\n\t\t\tsignature: this.signature,\n\t\t\treceipt: this.receipt,\n\t\t\tdata: this.data,\n\t\t};\n\t}\n}\n\nexport class NoContractAddressFoundError extends TransactionError {\n\tpublic constructor(receipt: TransactionReceipt) {\n\t\tsuper(\"The transaction receipt didn't contain a contract address.\", receipt);\n\t\tthis.code = ERR_TX_NO_CONTRACT_ADDRESS;\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), receipt: this.receipt };\n\t}\n}\n\nexport class ContractCodeNotStoredError extends TransactionError {\n\tpublic constructor(receipt: TransactionReceipt) {\n\t\tsuper(\"The contract code couldn't be stored, please check your gas limit.\", receipt);\n\t\tthis.code = ERR_TX_CONTRACT_NOT_STORED;\n\t}\n}\n\nexport class TransactionRevertedWithoutReasonError<\n\tReceiptType = TransactionReceipt,\n> extends TransactionError<ReceiptType> {\n\tpublic constructor(receipt?: ReceiptType) {\n\t\tsuper(\n\t\t\t`Transaction has been reverted by the EVM${\n\t\t\t\treceipt === undefined ? '' : `:\\n ${BaseWeb3Error.convertToString(receipt)}`\n\t\t\t}`,\n\t\t\treceipt,\n\t\t);\n\t\tthis.code = ERR_TX_REVERT_WITHOUT_REASON;\n\t}\n}\n\nexport class TransactionOutOfGasError extends TransactionError {\n\tpublic constructor(receipt: TransactionReceipt) {\n\t\tsuper(\n\t\t\t`Transaction ran out of gas. Please provide more gas:\\n ${JSON.stringify(\n\t\t\t\treceipt,\n\t\t\t\tundefined,\n\t\t\t\t2,\n\t\t\t)}`,\n\t\t\treceipt,\n\t\t);\n\t\tthis.code = ERR_TX_OUT_OF_GAS;\n\t}\n}\n\nexport class UndefinedRawTransactionError extends TransactionError {\n\tpublic constructor() {\n\t\tsuper(`Raw transaction undefined`);\n\t\tthis.code = ERR_RAW_TX_UNDEFINED;\n\t}\n}\nexport class TransactionNotFound extends TransactionError {\n\tpublic constructor() {\n\t\tsuper('Transaction not found');\n\t\tthis.code = ERR_TX_NOT_FOUND;\n\t}\n}\n\nexport class InvalidTransactionWithSender extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_SENDER;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid transaction with invalid sender');\n\t}\n}\nexport class InvalidTransactionWithReceiver extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_RECEIVER;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid transaction with invalid receiver');\n\t}\n}\nexport class InvalidTransactionCall extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_CALL;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid transaction call');\n\t}\n}\n\nexport class MissingCustomChainError extends InvalidValueError {\n\tpublic code = ERR_TX_MISSING_CUSTOM_CHAIN;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'MissingCustomChainError',\n\t\t\t'If tx.common is provided it must have tx.common.customChain',\n\t\t);\n\t}\n}\n\nexport class MissingCustomChainIdError extends InvalidValueError {\n\tpublic code = ERR_TX_MISSING_CUSTOM_CHAIN_ID;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'MissingCustomChainIdError',\n\t\t\t'If tx.common is provided it must have tx.common.customChain and tx.common.customChain.chainId',\n\t\t);\n\t}\n}\n\nexport class ChainIdMismatchError extends InvalidValueError {\n\tpublic code = ERR_TX_CHAIN_ID_MISMATCH;\n\n\tpublic constructor(value: { txChainId: unknown; customChainId: unknown }) {\n\t\tsuper(\n\t\t\tJSON.stringify(value),\n\t\t\t// https://github.com/ChainSafe/web3.js/blob/8783f4d64e424456bdc53b34ef1142d0a7cee4d7/packages/web3-eth-accounts/src/index.js#L176\n\t\t\t'Chain Id doesnt match in tx.chainId tx.common.customChain.chainId',\n\t\t);\n\t}\n}\n\nexport class ChainMismatchError extends InvalidValueError {\n\tpublic code = ERR_TX_CHAIN_MISMATCH;\n\n\tpublic constructor(value: { txChain: unknown; baseChain: unknown }) {\n\t\tsuper(JSON.stringify(value), 'Chain doesnt match in tx.chain tx.common.basechain');\n\t}\n}\n\nexport class HardforkMismatchError extends InvalidValueError {\n\tpublic code = ERR_TX_HARDFORK_MISMATCH;\n\n\tpublic constructor(value: { txHardfork: unknown; commonHardfork: unknown }) {\n\t\tsuper(JSON.stringify(value), 'hardfork doesnt match in tx.hardfork tx.common.hardfork');\n\t}\n}\n\nexport class CommonOrChainAndHardforkError extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_CHAIN_INFO;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'CommonOrChainAndHardforkError',\n\t\t\t'Please provide the common object or the chain and hardfork property but not all together.',\n\t\t);\n\t}\n}\n\nexport class MissingChainOrHardforkError extends InvalidValueError {\n\tpublic code = ERR_TX_MISSING_CHAIN_INFO;\n\n\tpublic constructor(value: { chain: string | undefined; hardfork: string | undefined }) {\n\t\tsuper(\n\t\t\t'MissingChainOrHardforkError',\n\t\t\t`When specifying chain and hardfork, both values must be defined. Received \"chain\": ${\n\t\t\t\tvalue.chain ?? 'undefined'\n\t\t\t}, \"hardfork\": ${value.hardfork ?? 'undefined'}`,\n\t\t);\n\t}\n}\n\nexport class MissingGasInnerError extends BaseWeb3Error {\n\tpublic code = ERR_TX_MISSING_GAS_INNER_ERROR;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'Missing properties in transaction, either define \"gas\" and \"gasPrice\" for type 0 transactions or \"gas\", \"maxPriorityFeePerGas\" and \"maxFeePerGas\" for type 2 transactions',\n\t\t);\n\t}\n}\n\nexport class MissingGasError extends InvalidValueError {\n\tpublic code = ERR_TX_MISSING_GAS;\n\n\tpublic constructor(value: {\n\t\tgas: Numbers | undefined;\n\t\tgasPrice: Numbers | undefined;\n\t\tmaxPriorityFeePerGas: Numbers | undefined;\n\t\tmaxFeePerGas: Numbers | undefined;\n\t}) {\n\t\tsuper(\n\t\t\t`gas: ${value.gas ?? 'undefined'}, gasPrice: ${\n\t\t\t\tvalue.gasPrice ?? 'undefined'\n\t\t\t}, maxPriorityFeePerGas: ${value.maxPriorityFeePerGas ?? 'undefined'}, maxFeePerGas: ${\n\t\t\t\tvalue.maxFeePerGas ?? 'undefined'\n\t\t\t}`,\n\t\t\t'\"gas\" is missing',\n\t\t);\n\t\tthis.cause = new MissingGasInnerError();\n\t}\n}\n\nexport class TransactionGasMismatchInnerError extends BaseWeb3Error {\n\tpublic code = ERR_TX_GAS_MISMATCH_INNER_ERROR;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'Missing properties in transaction, either define \"gas\" and \"gasPrice\" for type 0 transactions or \"gas\", \"maxPriorityFeePerGas\" and \"maxFeePerGas\" for type 2 transactions, not both',\n\t\t);\n\t}\n}\n\nexport class TransactionGasMismatchError extends InvalidValueError {\n\tpublic code = ERR_TX_GAS_MISMATCH;\n\n\tpublic constructor(value: {\n\t\tgas: Numbers | undefined;\n\t\tgasPrice: Numbers | undefined;\n\t\tmaxPriorityFeePerGas: Numbers | undefined;\n\t\tmaxFeePerGas: Numbers | undefined;\n\t}) {\n\t\tsuper(\n\t\t\t`gas: ${value.gas ?? 'undefined'}, gasPrice: ${\n\t\t\t\tvalue.gasPrice ?? 'undefined'\n\t\t\t}, maxPriorityFeePerGas: ${value.maxPriorityFeePerGas ?? 'undefined'}, maxFeePerGas: ${\n\t\t\t\tvalue.maxFeePerGas ?? 'undefined'\n\t\t\t}`,\n\t\t\t'transaction must specify legacy or fee market gas properties, not both',\n\t\t);\n\t\tthis.cause = new TransactionGasMismatchInnerError();\n\t}\n}\n\nexport class InvalidGasOrGasPrice extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_LEGACY_GAS;\n\n\tpublic constructor(value: { gas: Numbers | undefined; gasPrice: Numbers | undefined }) {\n\t\tsuper(\n\t\t\t`gas: ${value.gas ?? 'undefined'}, gasPrice: ${value.gasPrice ?? 'undefined'}`,\n\t\t\t'Gas or gasPrice is lower than 0',\n\t\t);\n\t}\n}\n\nexport class InvalidMaxPriorityFeePerGasOrMaxFeePerGas extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_FEE_MARKET_GAS;\n\n\tpublic constructor(value: {\n\t\tmaxPriorityFeePerGas: Numbers | undefined;\n\t\tmaxFeePerGas: Numbers | undefined;\n\t}) {\n\t\tsuper(\n\t\t\t`maxPriorityFeePerGas: ${value.maxPriorityFeePerGas ?? 'undefined'}, maxFeePerGas: ${\n\t\t\t\tvalue.maxFeePerGas ?? 'undefined'\n\t\t\t}`,\n\t\t\t'maxPriorityFeePerGas or maxFeePerGas is lower than 0',\n\t\t);\n\t}\n}\n\nexport class Eip1559GasPriceError extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_FEE_MARKET_GAS_PRICE;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, \"eip-1559 transactions don't support gasPrice\");\n\t}\n}\n\nexport class UnsupportedFeeMarketError extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_LEGACY_FEE_MARKET;\n\n\tpublic constructor(value: {\n\t\tmaxPriorityFeePerGas: Numbers | undefined;\n\t\tmaxFeePerGas: Numbers | undefined;\n\t}) {\n\t\tsuper(\n\t\t\t`maxPriorityFeePerGas: ${value.maxPriorityFeePerGas ?? 'undefined'}, maxFeePerGas: ${\n\t\t\t\tvalue.maxFeePerGas ?? 'undefined'\n\t\t\t}`,\n\t\t\t\"pre-eip-1559 transaction don't support maxFeePerGas/maxPriorityFeePerGas\",\n\t\t);\n\t}\n}\n\nexport class InvalidTransactionObjectError extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_OBJECT;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid transaction object');\n\t}\n}\n\nexport class InvalidNonceOrChainIdError extends InvalidValueError {\n\tpublic code = ERR_TX_INVALID_NONCE_OR_CHAIN_ID;\n\n\tpublic constructor(value: { nonce: Numbers | undefined; chainId: Numbers | undefined }) {\n\t\tsuper(\n\t\t\t`nonce: ${value.nonce ?? 'undefined'}, chainId: ${value.chainId ?? 'undefined'}`,\n\t\t\t'Nonce or chainId is lower than 0',\n\t\t);\n\t}\n}\n\nexport class UnableToPopulateNonceError extends InvalidValueError {\n\tpublic code = ERR_TX_UNABLE_TO_POPULATE_NONCE;\n\n\tpublic constructor() {\n\t\tsuper('UnableToPopulateNonceError', 'unable to populate nonce, no from address available');\n\t}\n}\n\nexport class Eip1559NotSupportedError extends InvalidValueError {\n\tpublic code = ERR_TX_UNSUPPORTED_EIP_1559;\n\n\tpublic constructor() {\n\t\tsuper('Eip1559NotSupportedError', \"Network doesn't support eip-1559\");\n\t}\n}\n\nexport class UnsupportedTransactionTypeError extends InvalidValueError {\n\tpublic code = ERR_TX_UNSUPPORTED_TYPE;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'unsupported transaction type');\n\t}\n}\n\nexport class TransactionDataAndInputError extends InvalidValueError {\n\tpublic code = ERR_TX_DATA_AND_INPUT;\n\n\tpublic constructor(value: { data: HexString | undefined; input: HexString | undefined }) {\n\t\tsuper(\n\t\t\t`data: ${value.data ?? 'undefined'}, input: ${value.input ?? 'undefined'}`,\n\t\t\t'You can\\'t have \"data\" and \"input\" as properties of transactions at the same time, please use either \"data\" or \"input\" instead.',\n\t\t);\n\t}\n}\n\nexport class TransactionSendTimeoutError extends BaseWeb3Error {\n\tpublic code = ERR_TX_SEND_TIMEOUT;\n\n\tpublic constructor(value: { numberOfSeconds: number; transactionHash?: Bytes }) {\n\t\tsuper(\n\t\t\t`The connected Ethereum Node did not respond within ${\n\t\t\t\tvalue.numberOfSeconds\n\t\t\t} seconds, please make sure your transaction was properly sent and you are connected to a healthy Node. Be aware that transaction might still be pending or mined!\\n\\tTransaction Hash: ${\n\t\t\t\tvalue.transactionHash ? value.transactionHash.toString() : 'not available'\n\t\t\t}`,\n\t\t);\n\t}\n}\n\nfunction transactionTimeoutHint(transactionHash?: Bytes) {\n\treturn `Please make sure your transaction was properly sent and there are no previous pending transaction for the same account. However, be aware that it might still be mined!\\n\\tTransaction Hash: ${\n\t\ttransactionHash ? transactionHash.toString() : 'not available'\n\t}`;\n}\n\nexport class TransactionPollingTimeoutError extends BaseWeb3Error {\n\tpublic code = ERR_TX_POLLING_TIMEOUT;\n\n\tpublic constructor(value: { numberOfSeconds: number; transactionHash: Bytes }) {\n\t\tsuper(\n\t\t\t`Transaction was not mined within ${\n\t\t\t\tvalue.numberOfSeconds\n\t\t\t} seconds. ${transactionTimeoutHint(value.transactionHash)}`,\n\t\t);\n\t}\n}\n\nexport class TransactionBlockTimeoutError extends BaseWeb3Error {\n\tpublic code = ERR_TX_BLOCK_TIMEOUT;\n\n\tpublic constructor(value: {\n\t\tstarterBlockNumber: number;\n\t\tnumberOfBlocks: number;\n\t\ttransactionHash?: Bytes;\n\t}) {\n\t\tsuper(\n\t\t\t`Transaction started at ${value.starterBlockNumber} but was not mined within ${\n\t\t\t\tvalue.numberOfBlocks\n\t\t\t} blocks. ${transactionTimeoutHint(value.transactionHash)}`,\n\t\t);\n\t}\n}\n\nexport class TransactionMissingReceiptOrBlockHashError extends InvalidValueError {\n\tpublic code = ERR_TX_RECEIPT_MISSING_OR_BLOCKHASH_NULL;\n\n\tpublic constructor(value: {\n\t\treceipt: TransactionReceipt;\n\t\tblockHash: Bytes;\n\t\ttransactionHash: Bytes;\n\t}) {\n\t\tsuper(\n\t\t\t`receipt: ${JSON.stringify(\n\t\t\t\tvalue.receipt,\n\t\t\t)}, blockHash: ${value.blockHash?.toString()}, transactionHash: ${value.transactionHash?.toString()}`,\n\t\t\t`Receipt missing or blockHash null`,\n\t\t);\n\t}\n}\n\nexport class TransactionReceiptMissingBlockNumberError extends InvalidValueError {\n\tpublic code = ERR_TX_RECEIPT_MISSING_BLOCK_NUMBER;\n\n\tpublic constructor(value: { receipt: TransactionReceipt }) {\n\t\tsuper(`receipt: ${JSON.stringify(value.receipt)}`, `Receipt missing block number`);\n\t}\n}\n\nexport class TransactionSigningError extends BaseWeb3Error {\n\tpublic code = ERR_TX_SIGNING;\n\tpublic constructor(errorDetails: string) {\n\t\tsuper(`Invalid signature. \"${errorDetails}\"`);\n\t}\n}\n\nexport class LocalWalletNotAvailableError extends InvalidValueError {\n\tpublic code = ERR_TX_LOCAL_WALLET_NOT_AVAILABLE;\n\n\tpublic constructor() {\n\t\tsuper(\n\t\t\t'LocalWalletNotAvailableError',\n\t\t\t`Attempted to index account in local wallet, but no wallet is available`,\n\t\t);\n\t}\n}\nexport class InvalidPropertiesForTransactionTypeError extends BaseWeb3Error {\n\tpublic code = ERR_TX_INVALID_PROPERTIES_FOR_TYPE;\n\n\tpublic constructor(\n\t\tvalidationError: Web3ValidationErrorObject[],\n\t\ttxType: '0x0' | '0x1' | '0x2',\n\t) {\n\t\tconst invalidPropertyNames: string[] = [];\n\t\tvalidationError.forEach(error => invalidPropertyNames.push(error.keyword));\n\t\tsuper(\n\t\t\t`The following properties are invalid for the transaction type ${txType}: ${invalidPropertyNames.join(\n\t\t\t\t', ',\n\t\t\t)}`,\n\t\t);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport {\n\tERR_INVALID_BYTES,\n\tERR_INVALID_NUMBER,\n\tERR_INVALID_ADDRESS,\n\tERR_INVALID_BLOCK,\n\tERR_INVALID_BOOLEAN,\n\tERR_INVALID_HEX,\n\tERR_INVALID_LARGE_VALUE,\n\tERR_INVALID_NIBBLE_WIDTH,\n\tERR_INVALID_SIZE,\n\tERR_INVALID_STRING,\n\tERR_INVALID_TYPE,\n\tERR_INVALID_TYPE_ABI,\n\tERR_INVALID_UNIT,\n\tERR_INVALID_INTEGER,\n\tERR_INVALID_UNSIGNED_INTEGER,\n} from '../error_codes.js';\nimport { InvalidValueError } from '../web3_error_base.js';\n\nexport class InvalidBytesError extends InvalidValueError {\n\tpublic code = ERR_INVALID_BYTES;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'can not parse as byte data');\n\t}\n}\n\nexport class InvalidNumberError extends InvalidValueError {\n\tpublic code = ERR_INVALID_NUMBER;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'can not parse as number data');\n\t}\n}\n\nexport class InvalidAddressError extends InvalidValueError {\n\tpublic code = ERR_INVALID_ADDRESS;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid ethereum address');\n\t}\n}\n\nexport class InvalidStringError extends InvalidValueError {\n\tpublic code = ERR_INVALID_STRING;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'not a valid string');\n\t}\n}\n\nexport class InvalidUnitError extends InvalidValueError {\n\tpublic code = ERR_INVALID_UNIT;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid unit');\n\t}\n}\n\nexport class InvalidIntegerError extends InvalidValueError {\n\tpublic code = ERR_INVALID_INTEGER;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'not a valid unit. Must be a positive integer');\n\t\n\t}\n}\n\nexport class HexProcessingError extends InvalidValueError {\n\tpublic code = ERR_INVALID_HEX;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'can not be converted to hex');\n\t}\n}\n\nexport class NibbleWidthError extends InvalidValueError {\n\tpublic code = ERR_INVALID_NIBBLE_WIDTH;\n\n\tpublic constructor(value: string) {\n\t\tsuper(value, 'value greater than the nibble width');\n\t}\n}\n\nexport class InvalidTypeError extends InvalidValueError {\n\tpublic code = ERR_INVALID_TYPE;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid type, type not supported');\n\t}\n}\n\nexport class InvalidBooleanError extends InvalidValueError {\n\tpublic code = ERR_INVALID_BOOLEAN;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'not a valid boolean.');\n\t}\n}\n\nexport class InvalidUnsignedIntegerError extends InvalidValueError {\n\tpublic code = ERR_INVALID_UNSIGNED_INTEGER;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'not a valid unsigned integer.');\n\t}\n}\n\nexport class InvalidSizeError extends InvalidValueError {\n\tpublic code = ERR_INVALID_SIZE;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'invalid size given.');\n\t}\n}\n\nexport class InvalidLargeValueError extends InvalidValueError {\n\tpublic code = ERR_INVALID_LARGE_VALUE;\n\n\tpublic constructor(value: unknown) {\n\t\tsuper(value, 'value is larger than size.');\n\t}\n}\n\nexport class InvalidBlockError extends InvalidValueError {\n\tpublic code = ERR_INVALID_BLOCK;\n\n\tpublic constructor(value: string) {\n\t\tsuper(value, 'invalid string given');\n\t}\n}\n\nexport class InvalidTypeAbiInputError extends InvalidValueError {\n\tpublic code = ERR_INVALID_TYPE_ABI;\n\n\tpublic constructor(value: string) {\n\t\tsuper(value, 'components found but type is not tuple');\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// eslint-disable-next-line max-classes-per-file\nimport {\n\tJsonRpcError,\n\tJsonRpcPayload,\n\tJsonRpcResponse,\n\tJsonRpcResponseWithError,\n} from 'web3-types';\nimport { BaseWeb3Error, MultipleErrors } from '../web3_error_base.js';\nimport { ERR_INVALID_RESPONSE, ERR_RESPONSE } from '../error_codes.js';\n\n// To avoid circular package dependency, copied to code here. If you update this please update same function in `json_rpc.ts`\nconst isResponseWithError = <Error = unknown, Result = unknown>(\n\tresponse: JsonRpcResponse<Result, Error>,\n): response is JsonRpcResponseWithError<Error> =>\n\t!Array.isArray(response) &&\n\tresponse.jsonrpc === '2.0' &&\n\t!!response &&\n\t// eslint-disable-next-line no-null/no-null\n\t(response.result === undefined || response.result === null) &&\n\t// JSON RPC consider \"null\" as valid response\n\t'error' in response &&\n\t(typeof response.id === 'number' || typeof response.id === 'string');\n\nconst buildErrorMessage = (response: JsonRpcResponse<unknown, unknown>): string =>\n\tisResponseWithError(response) ? response.error.message : '';\n\nexport class ResponseError<ErrorType = unknown, RequestType = unknown> extends BaseWeb3Error {\n\tpublic code = ERR_RESPONSE;\n\tpublic data?: ErrorType | ErrorType[];\n\tpublic request?: JsonRpcPayload<RequestType>;\n\tpublic statusCode?: number;\n\n\tpublic constructor(\n\t\tresponse: JsonRpcResponse<unknown, ErrorType>,\n\t\tmessage?: string,\n\t\trequest?: JsonRpcPayload<RequestType>,\n\t\tstatusCode?: number\n\t) {\n\t\tsuper(\n\t\t\tmessage ??\n\t\t\t\t`Returned error: ${\n\t\t\t\t\tArray.isArray(response)\n\t\t\t\t\t\t? response.map(r => buildErrorMessage(r)).join(',')\n\t\t\t\t\t\t: buildErrorMessage(response)\n\t\t\t\t}`,\n\t\t);\n\n\t\tif (!message) {\n\t\t\tthis.data = Array.isArray(response)\n\t\t\t\t? response.map(r => r.error?.data as ErrorType)\n\t\t\t\t: response?.error?.data;\n\t\t}\n\n\t\tthis.statusCode = statusCode;\n\t\tthis.request = request;\n\t\tlet errorOrErrors: JsonRpcError | JsonRpcError[] | undefined;\n\t\tif (`error` in response) {\n\t\t\terrorOrErrors = response.error as JsonRpcError;\n\t\t} else if (response instanceof Array) {\n\t\t\terrorOrErrors = response.filter(r => r.error).map(r => r.error) as JsonRpcError[];\n\t\t}\n\n\t\tif (Array.isArray(errorOrErrors) && errorOrErrors.length > 0) {\n\t\t\tthis.cause = new MultipleErrors(errorOrErrors as unknown as Error[]);\n\t\t} else {\n\t\t\tthis.cause = errorOrErrors as Error | undefined;\n\t\t}\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), data: this.data, request: this.request, statusCode: this.statusCode };\n\t}\n}\n\nexport class InvalidResponseError<ErrorType = unknown, RequestType = unknown> extends ResponseError<\n\tErrorType,\n\tRequestType\n> {\n\tpublic constructor(\n\t\tresult: JsonRpcResponse<unknown, ErrorType>,\n\t\trequest?: JsonRpcPayload<RequestType>,\n\t) {\n\t\tsuper(result, undefined, request);\n\t\tthis.code = ERR_INVALID_RESPONSE;\n\t\tlet errorOrErrors: JsonRpcError | JsonRpcError[] | undefined;\n\t\tif (`error` in result) {\n\t\t\terrorOrErrors = result.error as JsonRpcError;\n\t\t} else if (result instanceof Array) {\n\t\t\terrorOrErrors = result.map(r => r.error) as JsonRpcError[];\n\t\t}\n\t\tif (Array.isArray(errorOrErrors)) {\n\t\t\tthis.cause = new MultipleErrors(errorOrErrors as unknown as Error[]);\n\t\t} else {\n\t\t\tthis.cause = errorOrErrors as Error | undefined;\n\t\t}\n\t}\n}","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport { BaseWeb3Error } from '../web3_error_base.js';\nimport { ERR_CORE_HARDFORK_MISMATCH } from '../error_codes.js';\n\nexport class ConfigHardforkMismatchError extends BaseWeb3Error {\n\tpublic code = ERR_CORE_HARDFORK_MISMATCH;\n\n\tpublic constructor(defaultHardfork: string, commonHardFork: string) {\n\t\tsuper(\n\t\t\t`Web3Config hardfork doesnt match in defaultHardfork ${defaultHardfork} and common.hardfork ${commonHardFork}`,\n\t\t);\n\t}\n}\n\nexport class ConfigChainMismatchError extends BaseWeb3Error {\n\tpublic code = ERR_CORE_HARDFORK_MISMATCH;\n\n\tpublic constructor(defaultHardfork: string, commonHardFork: string) {\n\t\tsuper(\n\t\t\t`Web3Config chain doesnt match in defaultHardfork ${defaultHardfork} and common.hardfork ${commonHardFork}`,\n\t\t);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tERR_RPC_INTERNAL_ERROR,\n\tERR_RPC_INVALID_INPUT,\n\tERR_RPC_INVALID_JSON,\n\tERR_RPC_INVALID_METHOD,\n\tERR_RPC_INVALID_PARAMS,\n\tERR_RPC_INVALID_REQUEST,\n\tERR_RPC_LIMIT_EXCEEDED,\n\tERR_RPC_MISSING_RESOURCE,\n\tERR_RPC_NOT_SUPPORTED,\n\tERR_RPC_TRANSACTION_REJECTED,\n\tERR_RPC_UNAVAILABLE_RESOURCE,\n\tERR_RPC_UNSUPPORTED_METHOD,\n\tJSONRPC_ERR_CHAIN_DISCONNECTED,\n\tJSONRPC_ERR_DISCONNECTED,\n\tJSONRPC_ERR_REJECTED_REQUEST,\n\tJSONRPC_ERR_UNAUTHORIZED,\n\tJSONRPC_ERR_UNSUPPORTED_METHOD,\n} from '../error_codes.js';\n\n/**\n * A template string for a generic Rpc Error. The `*code*` will be replaced with the code number.\n * Note: consider in next version that a spelling mistake could be corrected for `occured` and the value could be:\n * \t`An Rpc error has occurred with a code of *code*`\n */\nexport const genericRpcErrorMessageTemplate = 'An Rpc error has occured with a code of *code*';\n\n/* eslint-disable @typescript-eslint/naming-convention */\nexport const RpcErrorMessages: {\n\t[key: number | string]: { name?: string; message: string; description?: string };\n} = {\n\t// EIP-1474 & JSON RPC 2.0\n\t// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1474.md\n\t[ERR_RPC_INVALID_JSON]: {\n\t\tmessage: 'Parse error',\n\t\tdescription: 'Invalid JSON',\n\t},\n\t[ERR_RPC_INVALID_REQUEST]: {\n\t\tmessage: 'Invalid request',\n\t\tdescription: 'JSON is not a valid request object\t',\n\t},\n\t[ERR_RPC_INVALID_METHOD]: {\n\t\tmessage: 'Method not found',\n\t\tdescription: 'Method does not exist\t',\n\t},\n\t[ERR_RPC_INVALID_PARAMS]: {\n\t\tmessage: 'Invalid params',\n\t\tdescription: 'Invalid method parameters',\n\t},\n\t[ERR_RPC_INTERNAL_ERROR]: {\n\t\tmessage: 'Internal error',\n\t\tdescription: 'Internal JSON-RPC error',\n\t},\n\n\t[ERR_RPC_INVALID_INPUT]: {\n\t\tmessage: 'Invalid input',\n\t\tdescription: 'Missing or invalid parameters',\n\t},\n\t[ERR_RPC_MISSING_RESOURCE]: {\n\t\tmessage: 'Resource not found',\n\t\tdescription: 'Requested resource not found',\n\t},\n\t[ERR_RPC_UNAVAILABLE_RESOURCE]: {\n\t\tmessage: 'Resource unavailable',\n\t\tdescription: 'Requested resource not available',\n\t},\n\t[ERR_RPC_TRANSACTION_REJECTED]: {\n\t\tmessage: 'Transaction rejected',\n\t\tdescription: 'Transaction creation failed',\n\t},\n\t[ERR_RPC_UNSUPPORTED_METHOD]: {\n\t\tmessage: 'Method not supported',\n\t\tdescription: 'Method is not implemented',\n\t},\n\t[ERR_RPC_LIMIT_EXCEEDED]: {\n\t\tmessage: 'Limit exceeded',\n\t\tdescription: 'Request exceeds defined limit',\n\t},\n\t[ERR_RPC_NOT_SUPPORTED]: {\n\t\tmessage: 'JSON-RPC version not supported',\n\t\tdescription: 'Version of JSON-RPC protocol is not supported',\n\t},\n\n\t// EIP-1193\n\t// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md#provider-errors\n\t[JSONRPC_ERR_REJECTED_REQUEST]: {\n\t\tname: 'User Rejected Request',\n\t\tmessage: 'The user rejected the request.',\n\t},\n\t[JSONRPC_ERR_UNAUTHORIZED]: {\n\t\tname: 'Unauthorized',\n\t\tmessage: 'The requested method and/or account has not been authorized by the user.',\n\t},\n\t[JSONRPC_ERR_UNSUPPORTED_METHOD]: {\n\t\tname: 'Unsupported Method',\n\t\tmessage: 'The Provider does not support the requested method.',\n\t},\n\t[JSONRPC_ERR_DISCONNECTED]: {\n\t\tname: 'Disconnected',\n\t\tmessage: 'The Provider is disconnected from all chains.',\n\t},\n\t[JSONRPC_ERR_CHAIN_DISCONNECTED]: {\n\t\tname: 'Chain Disconnected',\n\t\tmessage: 'The Provider is not connected to the requested chain.',\n\t},\n\n\t// EIP-1193 - CloseEvent\n\t// https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent/code\n\t'0-999': {\n\t\tname: '',\n\t\tmessage: 'Not used.',\n\t},\n\t1000: {\n\t\tname: 'Normal Closure',\n\t\tmessage: 'The connection successfully completed the purpose for which it was created.',\n\t},\n\t1001: {\n\t\tname: 'Going Away',\n\t\tmessage:\n\t\t\t'The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.',\n\t},\n\t1002: {\n\t\tname: 'Protocol error',\n\t\tmessage: 'The endpoint is terminating the connection due to a protocol error.',\n\t},\n\t1003: {\n\t\tname: 'Unsupported Data',\n\t\tmessage:\n\t\t\t'The connection is being terminated because the endpoint received data of a type it cannot accept. (For example, a text-only endpoint received binary data.)',\n\t},\n\t1004: {\n\t\tname: 'Reserved',\n\t\tmessage: 'Reserved. A meaning might be defined in the future.',\n\t},\n\t1005: {\n\t\tname: 'No Status Rcvd',\n\t\tmessage:\n\t\t\t'Reserved. Indicates that no status code was provided even though one was expected.',\n\t},\n\t1006: {\n\t\tname: 'Abnormal Closure',\n\t\tmessage:\n\t\t\t'Reserved. Indicates that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.',\n\t},\n\t1007: {\n\t\tname: 'Invalid frame payload data',\n\t\tmessage:\n\t\t\t'The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message).',\n\t},\n\t1008: {\n\t\tname: 'Policy Violation',\n\t\tmessage:\n\t\t\t'The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.',\n\t},\n\t1009: {\n\t\tname: 'Message Too Big',\n\t\tmessage:\n\t\t\t'The endpoint is terminating the connection because a data frame was received that is too large.',\n\t},\n\t1010: {\n\t\tname: 'Mandatory Ext.',\n\t\tmessage:\n\t\t\t\"The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.\",\n\t},\n\t1011: {\n\t\tname: 'Internal Error',\n\t\tmessage:\n\t\t\t'The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.',\n\t},\n\t1012: {\n\t\tname: 'Service Restart',\n\t\tmessage: 'The server is terminating the connection because it is restarting.',\n\t},\n\t1013: {\n\t\tname: 'Try Again Later',\n\t\tmessage:\n\t\t\t'The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients.',\n\t},\n\t1014: {\n\t\tname: 'Bad Gateway',\n\t\tmessage:\n\t\t\t'The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code.',\n\t},\n\t1015: {\n\t\tname: 'TLS handshake',\n\t\tmessage:\n\t\t\t\"Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).\",\n\t},\n\t'1016-2999': {\n\t\tname: '',\n\t\tmessage:\n\t\t\t'For definition by future revisions of the WebSocket Protocol specification, and for definition by extension specifications.',\n\t},\n\t'3000-3999': {\n\t\tname: '',\n\t\tmessage:\n\t\t\t'For use by libraries, frameworks, and applications. These status codes are registered directly with IANA. The interpretation of these codes is undefined by the WebSocket protocol.',\n\t},\n\t'4000-4999': {\n\t\tname: '',\n\t\tmessage:\n\t\t\t\"For private use, and thus can't be registered. Such codes can be used by prior agreements between WebSocket applications. The interpretation of these codes is undefined by the WebSocket protocol.\",\n\t},\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport { JsonRpcResponseWithError, JsonRpcId, JsonRpcError } from 'web3-types';\nimport { BaseWeb3Error } from '../web3_error_base.js';\nimport {\n\tERR_RPC_INTERNAL_ERROR,\n\tERR_RPC_INVALID_INPUT,\n\tERR_RPC_INVALID_JSON,\n\tERR_RPC_INVALID_METHOD,\n\tERR_RPC_INVALID_PARAMS,\n\tERR_RPC_INVALID_REQUEST,\n\tERR_RPC_LIMIT_EXCEEDED,\n\tERR_RPC_MISSING_RESOURCE,\n\tERR_RPC_NOT_SUPPORTED,\n\tERR_RPC_TRANSACTION_REJECTED,\n\tERR_RPC_UNAVAILABLE_RESOURCE,\n\tERR_RPC_UNSUPPORTED_METHOD,\n} from '../error_codes.js';\nimport { RpcErrorMessages, genericRpcErrorMessageTemplate } from './rpc_error_messages.js';\n\nexport class RpcError extends BaseWeb3Error {\n\tpublic code: number;\n\tpublic id: JsonRpcId;\n\tpublic jsonrpc: string;\n\tpublic jsonRpcError: JsonRpcError;\n\tpublic constructor(rpcError: JsonRpcResponseWithError, message?: string) {\n\t\tsuper(\n\t\t\tmessage ??\n\t\t\t\tgenericRpcErrorMessageTemplate.replace('*code*', rpcError.error.code.toString()),\n\t\t);\n\t\tthis.code = rpcError.error.code;\n\t\tthis.id = rpcError.id;\n\t\tthis.jsonrpc = rpcError.jsonrpc;\n\t\tthis.jsonRpcError = rpcError.error;\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), error: this.jsonRpcError, id: this.id, jsonRpc: this.jsonrpc };\n\t}\n}\n\nexport class EIP1193ProviderRpcError extends BaseWeb3Error {\n\tpublic code: number;\n\tpublic data?: unknown;\n\n\tpublic constructor(code: number, data?: unknown) {\n\t\tif (!code) {\n\t\t\t// this case should ideally not happen\n\t\t\tsuper();\n\t\t} else if (RpcErrorMessages[code]?.message) {\n\t\t\tsuper(RpcErrorMessages[code].message);\n\t\t} else {\n\t\t\t// Retrieve the status code object for the given code from the table, by searching through the appropriate range\n\t\t\tconst statusCodeRange = Object.keys(RpcErrorMessages).find(\n\t\t\t\tstatusCode =>\n\t\t\t\t\ttypeof statusCode === 'string' &&\n\t\t\t\t\tcode >= parseInt(statusCode.split('-')[0], 10) &&\n\t\t\t\t\tcode <= parseInt(statusCode.split('-')[1], 10),\n\t\t\t);\n\t\t\tsuper(\n\t\t\t\tRpcErrorMessages[statusCodeRange ?? '']?.message ??\n\t\t\t\t\tgenericRpcErrorMessageTemplate.replace('*code*', code?.toString() ?? '\"\"'),\n\t\t\t);\n\t\t}\n\t\tthis.code = code;\n\t\tthis.data = data;\n\t}\n}\n\nexport class ParseError extends RpcError {\n\tpublic code = ERR_RPC_INVALID_JSON;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_INVALID_JSON].message);\n\t}\n}\n\nexport class InvalidRequestError extends RpcError {\n\tpublic code = ERR_RPC_INVALID_REQUEST;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_INVALID_REQUEST].message);\n\t}\n}\n\nexport class MethodNotFoundError extends RpcError {\n\tpublic code = ERR_RPC_INVALID_METHOD;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_INVALID_METHOD].message);\n\t}\n}\n\nexport class InvalidParamsError extends RpcError {\n\tpublic code = ERR_RPC_INVALID_PARAMS;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_INVALID_PARAMS].message);\n\t}\n}\n\nexport class InternalError extends RpcError {\n\tpublic code = ERR_RPC_INTERNAL_ERROR;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_INTERNAL_ERROR].message);\n\t}\n}\n\nexport class InvalidInputError extends RpcError {\n\tpublic code = ERR_RPC_INVALID_INPUT;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_INVALID_INPUT].message);\n\t}\n}\n\nexport class MethodNotSupported extends RpcError {\n\tpublic code = ERR_RPC_UNSUPPORTED_METHOD;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_UNSUPPORTED_METHOD].message);\n\t}\n}\n\nexport class ResourceUnavailableError extends RpcError {\n\tpublic code = ERR_RPC_UNAVAILABLE_RESOURCE;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_UNAVAILABLE_RESOURCE].message);\n\t}\n}\n\nexport class ResourcesNotFoundError extends RpcError {\n\tpublic code = ERR_RPC_MISSING_RESOURCE;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_MISSING_RESOURCE].message);\n\t}\n}\n\nexport class VersionNotSupportedError extends RpcError {\n\tpublic code = ERR_RPC_NOT_SUPPORTED;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_NOT_SUPPORTED].message);\n\t}\n}\n\nexport class TransactionRejectedError extends RpcError {\n\tpublic code = ERR_RPC_TRANSACTION_REJECTED;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_TRANSACTION_REJECTED].message);\n\t}\n}\n\nexport class LimitExceededError extends RpcError {\n\tpublic code = ERR_RPC_LIMIT_EXCEEDED;\n\tpublic constructor(rpcError: JsonRpcResponseWithError) {\n\t\tsuper(rpcError, RpcErrorMessages[ERR_RPC_LIMIT_EXCEEDED].message);\n\t}\n}\n\nexport const rpcErrorsMap = new Map<number, { error: typeof RpcError }>();\nrpcErrorsMap.set(ERR_RPC_INVALID_JSON, { error: ParseError });\nrpcErrorsMap.set(ERR_RPC_INVALID_REQUEST, {\n\terror: InvalidRequestError,\n});\nrpcErrorsMap.set(ERR_RPC_INVALID_METHOD, {\n\terror: MethodNotFoundError,\n});\nrpcErrorsMap.set(ERR_RPC_INVALID_PARAMS, { error: InvalidParamsError });\nrpcErrorsMap.set(ERR_RPC_INTERNAL_ERROR, { error: InternalError });\nrpcErrorsMap.set(ERR_RPC_INVALID_INPUT, { error: InvalidInputError });\nrpcErrorsMap.set(ERR_RPC_UNSUPPORTED_METHOD, {\n\terror: MethodNotSupported,\n});\nrpcErrorsMap.set(ERR_RPC_UNAVAILABLE_RESOURCE, {\n\terror: ResourceUnavailableError,\n});\nrpcErrorsMap.set(ERR_RPC_TRANSACTION_REJECTED, {\n\terror: TransactionRejectedError,\n});\nrpcErrorsMap.set(ERR_RPC_MISSING_RESOURCE, {\n\terror: ResourcesNotFoundError,\n});\nrpcErrorsMap.set(ERR_RPC_NOT_SUPPORTED, {\n\terror: VersionNotSupportedError,\n});\nrpcErrorsMap.set(ERR_RPC_LIMIT_EXCEEDED, { error: LimitExceededError });\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ERR_SCHEMA_FORMAT } from '../error_codes.js';\nimport { BaseWeb3Error } from '../web3_error_base.js';\n\nexport class SchemaFormatError extends BaseWeb3Error {\n\tpublic code = ERR_SCHEMA_FORMAT;\n\n\tpublic constructor(public type: string) {\n\t\tsuper(`Format for the type ${type} is unsupported`);\n\t}\n\n\tpublic toJSON() {\n\t\treturn { ...super.toJSON(), type: this.type };\n\t}\n\n}\n","function number(n: number) {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error(`positive integer expected, not ${n}`);\n}\n\nfunction bool(b: boolean) {\n if (typeof b !== 'boolean') throw new Error(`boolean expected, not ${b}`);\n}\n\n// copied from utils\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nfunction bytes(b: Uint8Array | undefined, ...lengths: number[]) {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\n\ntype Hash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\nfunction hash(h: Hash) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\n\nfunction exists(instance: any, checkFinished = true) {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\nfunction output(out: any, instance: any) {\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}\n\nexport { number, bool, bytes, hash, exists, output };\n\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n: bigint, le = false) {\n if (le) 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}\n\nfunction split(lst: bigint[], 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}\n\nconst toBig = (h: number, l: number) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, _l: number, s: number) => h >>> s;\nconst shrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h: number, l: number) => l;\nconst rotr32L = (h: number, _l: number) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number) => (h << (s - 32)) | (l >>> (64 - s));\n\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: number, Al: number, Bh: number, Bl: number) {\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: number, Bl: number, Cl: number) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number) =>\n (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number) =>\n (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number) =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) =>\n (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nexport {\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};\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","// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// See utils.ts for details.\ndeclare const globalThis: Record<string, any> | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\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 (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n// Cast array to different type\nexport const u8 = (arr: TypedArray) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr: TypedArray) =>\n new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n\n// Cast array to view\nexport const createView = (arr: TypedArray) =>\n new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word: number, shift: number) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word: number, shift: number) =>\n (word << shift) | ((word >>> (32 - shift)) >>> 0);\n\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word: number) =>\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n: number) => n : (n: number) => byteSwap(n);\n\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr: Uint32Array) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\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// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\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\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters: number, tick: number, cb: (i: number) => void) {\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) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\nexport type Input = Uint8Array | string;\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: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// For runtime check if class implements interface\nexport abstract class Hash<T extends Hash<T>> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF<T extends Hash<T>> = Hash<T> & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\nconst toStr = {}.toString;\ntype EmptyObj = {};\nexport function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\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 as T1 & T2;\n}\n\nexport type CHash = ReturnType<typeof wrapConstructor>;\n\nexport function wrapConstructor<T extends Hash<T>>(hashCons: () => Hash<T>) {\n const hashC = (msg: Input): Uint8Array => 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}\n\nexport function wrapConstructorWithOpts<H extends Hash<H>, T extends Object>(\n hashCons: (opts?: T) => Hash<H>\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\nexport function wrapXOFConstructorWithOpts<H extends HashXOF<H>, T extends Object>(\n hashCons: (opts?: T) => HashXOF<H>\n) {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts: T) => hashCons(opts);\n return hashC;\n}\n\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32): Uint8Array {\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","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport {\n Hash,\n u32,\n Input,\n toBytes,\n wrapConstructor,\n wrapXOFConstructorWithOpts,\n HashXOF,\n isLE,\n byteSwap32,\n} from './utils.js';\n\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\n// Various per round constants calculations\nconst SHA3_PI: number[] = [];\nconst SHA3_ROTL: number[] = [];\nconst _SHA3_IOTA: bigint[] = [];\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) 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\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h: number, l: number, s: number) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h: number, l: number, s: number) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s: Uint32Array, rounds: number = 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++) 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++) B[x] = s[y + x];\n for (let x = 0; x < 10; x++) 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}\n\nexport class Keccak extends Hash<Keccak> implements HashXOF<Keccak> {\n protected state: Uint8Array;\n protected pos = 0;\n protected posOut = 0;\n protected finished = false;\n protected state32: Uint32Array;\n protected destroyed = false;\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(\n public blockLen: number,\n public suffix: number,\n public outputLen: number,\n protected enableXOF = false,\n protected rounds: number = 24\n ) {\n super();\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 protected keccak() {\n if (!isLE) byteSwap32(this.state32);\n keccakP(this.state32, this.rounds);\n if (!isLE) byteSwap32(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data: Input) {\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++) state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen) this.keccak();\n }\n return this;\n }\n protected finish() {\n if (this.finished) 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) this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n protected writeInto(out: Uint8Array): Uint8Array {\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) 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: Uint8Array): Uint8Array {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes: number): Uint8Array {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out: Uint8Array) {\n output(out, this);\n if (this.finished) 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?: Keccak): Keccak {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n 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}\n\nconst gen = (suffix: number, blockLen: number, outputLen: number) =>\n wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\n\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);\n\nexport type ShakeOpts = { dkLen?: number };\n\nconst genShake = (suffix: number, blockLen: number, outputLen: number) =>\n wrapXOFConstructorWithOpts<HashXOF<Keccak>, ShakeOpts>(\n (opts: ShakeOpts = {}) =>\n new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)\n );\n\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n","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","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","var util;\n(function (util) {\n util.assertEqual = (val) => val;\n function assertIs(_arg) { }\n util.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n util.assertNever = assertNever;\n util.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util.getValidEnumValues = (obj) => {\n const validKeys = util.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util.objectValues(filtered);\n };\n util.objectValues = (obj) => {\n return util.objectKeys(obj).map(function (e) {\n return obj[e];\n });\n };\n util.objectKeys = typeof Object.keys === \"function\" // eslint-disable-line ban/ban\n ? (obj) => Object.keys(obj) // eslint-disable-line ban/ban\n : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return undefined;\n };\n util.isInteger = typeof Number.isInteger === \"function\"\n ? (val) => Number.isInteger(val) // eslint-disable-line ban/ban\n : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array\n .map((val) => (typeof val === \"string\" ? `'${val}'` : val))\n .join(separator);\n }\n util.joinValues = joinValues;\n util.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function (objectUtil) {\n objectUtil.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second, // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nconst ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\",\n]);\nconst getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then &&\n typeof data.then === \"function\" &&\n data.catch &&\n typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n};\n\nconst ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\",\n]);\nconst quotelessJson = (obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n};\nclass ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n // eslint-disable-next-line ban/ban\n Object.setPrototypeOf(this, actualProto);\n }\n else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper ||\n function (issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = (error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n }\n else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n }\n else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n }\n else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n // if (typeof el === \"string\") {\n // curr[el] = curr[el] || { _errors: [] };\n // } else if (typeof el === \"number\") {\n // const errorArray: any = [];\n // errorArray._errors = [];\n // curr[el] = curr[el] || errorArray;\n // }\n }\n else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n };\n processError(this);\n return fieldErrors;\n }\n static assert(value) {\n if (!(value instanceof ZodError)) {\n throw new Error(`Not a ZodError: ${value}`);\n }\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n}\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\n\nconst errorMap = (issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n }\n else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n }\n else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n }\n else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n }\n else {\n util.assertNever(issue.validation);\n }\n }\n else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n }\n else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly equal to `\n : issue.inclusive\n ? `greater than or equal to `\n : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `less than or equal to`\n : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact\n ? `exactly`\n : issue.inclusive\n ? `smaller than or equal to`\n : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n};\n\nlet overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n\nconst makeIssue = (params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...(issueData.path || [])];\n const fullIssue = {\n ...issueData,\n path: fullPath,\n };\n if (issueData.message !== undefined) {\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message,\n };\n }\n let errorMessage = \"\";\n const maps = errorMaps\n .filter((m) => !!m)\n .slice()\n .reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: errorMessage,\n };\n};\nconst EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const overrideMap = getErrorMap();\n const issue = makeIssue({\n issueData: issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n overrideMap,\n overrideMap === errorMap ? undefined : errorMap, // then global default map\n ].filter((x) => !!x),\n });\n ctx.common.issues.push(issue);\n}\nclass ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n });\n }\n return ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" &&\n (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n}\nconst INVALID = Object.freeze({\n status: \"aborted\",\n});\nconst DIRTY = (value) => ({ status: \"dirty\", value });\nconst OK = (value) => ({ status: \"valid\", value });\nconst isAborted = (x) => x.status === \"aborted\";\nconst isDirty = (x) => x.status === \"dirty\";\nconst isValid = (x) => x.status === \"valid\";\nconst isAsync = (x) => typeof Promise !== \"undefined\" && x instanceof Promise;\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\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\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\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\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar errorUtil;\n(function (errorUtil) {\n errorUtil.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\n\nvar _ZodEnum_cache, _ZodNativeEnum_cache;\nclass ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n }\n else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n}\nconst handleResult = (ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n }\n else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n },\n };\n }\n};\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap, invalid_type_error, required_error, description } = params;\n if (errorMap && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap)\n return { errorMap: errorMap, description };\n const customMap = (iss, ctx) => {\n var _a, _b;\n const { message } = params;\n if (iss.code === \"invalid_enum_value\") {\n return { message: message !== null && message !== void 0 ? message : ctx.defaultError };\n }\n if (typeof ctx.data === \"undefined\") {\n return { message: (_a = message !== null && message !== void 0 ? message : required_error) !== null && _a !== void 0 ? _a : ctx.defaultError };\n }\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n return { message: (_b = message !== null && message !== void 0 ? message : invalid_type_error) !== null && _b !== void 0 ? _b : ctx.defaultError };\n };\n return { errorMap: customMap, description };\n}\nclass ZodType {\n constructor(def) {\n /** Alias of safeParseAsync */\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return (ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n });\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent,\n },\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true,\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data),\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult)\n ? maybeAsyncResult\n : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = (val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n }\n else if (typeof message === \"function\") {\n return message(val);\n }\n else {\n return message;\n }\n };\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = () => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val),\n });\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n }\n else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\"\n ? refinementData(val, ctx)\n : refinementData);\n return false;\n }\n else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement },\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform },\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def),\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description,\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(undefined).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n}\nconst cuidRegex = /^c[^\\s-]{8,}$/i;\nconst cuid2Regex = /^[0-9a-z]+$/;\nconst ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\n// const uuidRegex =\n// /^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i;\nconst uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nconst nanoidRegex = /^[a-z0-9_-]{21}$/i;\nconst durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\\d+Y)|(?:[-+]?\\d+[.,]\\d+Y$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:(?:[-+]?\\d+W)|(?:[-+]?\\d+[.,]\\d+W$))?(?:(?:[-+]?\\d+D)|(?:[-+]?\\d+[.,]\\d+D$))?(?:T(?=[\\d+-])(?:(?:[-+]?\\d+H)|(?:[-+]?\\d+[.,]\\d+H$))?(?:(?:[-+]?\\d+M)|(?:[-+]?\\d+[.,]\\d+M$))?(?:[-+]?\\d+(?:[.,]\\d+)?S)?)??$/;\n// from https://stackoverflow.com/a/46181/1550155\n// old version: too slow, didn't support unicode\n// const emailRegex = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i;\n//old email regex\n// const emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@((?!-)([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{1,})[^-<>()[\\].,;:\\s@\"]$/i;\n// eslint-disable-next-line\n// const emailRegex =\n// /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\])|(\\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\\.[A-Za-z]{2,})+))$/;\n// const emailRegex =\n// /^[a-zA-Z0-9\\.\\!\\#\\$\\%\\&\\'\\*\\+\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~\\-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n// const emailRegex =\n// /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i;\nconst emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\n// const emailRegex =\n// /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\\.[a-z0-9\\-]+)*$/i;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\nconst _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nlet emojiRegex;\n// faster, simpler, safer\nconst ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;\nconst ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nconst base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;\n// simple\n// const dateRegexSource = `\\\\d{4}-\\\\d{2}-\\\\d{2}`;\n// no leap year validation\n// const dateRegexSource = `\\\\d{4}-((0[13578]|10|12)-31|(0[13-9]|1[0-2])-30|(0[1-9]|1[0-2])-(0[1-9]|1\\\\d|2\\\\d))`;\n// with leap year validation\nconst dateRegexSource = `((\\\\d\\\\d[2468][048]|\\\\d\\\\d[13579][26]|\\\\d\\\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\\\d|30)|(02)-(0[1-9]|1\\\\d|2[0-8])))`;\nconst dateRegex = new RegExp(`^${dateRegexSource}$`);\nfunction timeRegexSource(args) {\n // let regex = `\\\\d{2}:\\\\d{2}:\\\\d{2}`;\n let regex = `([01]\\\\d|2[0-3]):[0-5]\\\\d:[0-5]\\\\d`;\n if (args.precision) {\n regex = `${regex}\\\\.\\\\d{${args.precision}}`;\n }\n else if (args.precision == null) {\n regex = `${regex}(\\\\.\\\\d+)?`;\n }\n return regex;\n}\nfunction timeRegex(args) {\n return new RegExp(`^${timeRegexSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nfunction datetimeRegex(args) {\n let regex = `${dateRegexSource}T${timeRegexSource(args)}`;\n const opts = [];\n opts.push(args.local ? `Z?` : `Z`);\n if (args.offset)\n opts.push(`([+-]\\\\d{2}:?\\\\d{2})`);\n regex = `${regex}(${opts.join(\"|\")})`;\n return new RegExp(`^${regex}$`);\n}\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\nclass ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message,\n });\n }\n status.dirty();\n }\n }\n else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"nanoid\") {\n if (!nanoidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"nanoid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n }\n catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n }\n else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n }\n else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n }\n else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"date\") {\n const regex = dateRegex;\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"date\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"time\") {\n const regex = timeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"time\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"duration\") {\n if (!durationRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"duration\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"base64\") {\n if (!base64Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"base64\",\n code: ZodIssueCode.invalid_string,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message),\n });\n }\n _addCheck(check) {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n nanoid(message) {\n return this._addCheck({ kind: \"nanoid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n base64(message) {\n return this._addCheck({ kind: \"base64\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a, _b;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n local: false,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n local: (_b = options === null || options === void 0 ? void 0 : options.local) !== null && _b !== void 0 ? _b : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n date(message) {\n return this._addCheck({ kind: \"date\", message });\n }\n time(options) {\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"time\",\n precision: null,\n message: options,\n });\n }\n return this._addCheck({\n kind: \"time\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n duration(message) {\n return this._addCheck({ kind: \"duration\", ...errorUtil.errToObj(message) });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex: regex,\n ...errorUtil.errToObj(message),\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value: value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message),\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value: value,\n ...errorUtil.errToObj(message),\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message),\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message),\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message),\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }],\n });\n }\n toLowerCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }],\n });\n }\n toUpperCase() {\n return new ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }],\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isDate() {\n return !!this._def.checks.find((ch) => ch.kind === \"date\");\n }\n get isTime() {\n return !!this._def.checks.find((ch) => ch.kind === \"time\");\n }\n get isDuration() {\n return !!this._def.checks.find((ch) => ch.kind === \"duration\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isNANOID() {\n return !!this._def.checks.find((ch) => ch.kind === \"nanoid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get isBase64() {\n return !!this._def.checks.find((ch) => ch.kind === \"base64\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\n// https://stackoverflow.com/questions/3966484/why-does-modulus-operator-return-fractional-number-in-javascript/31711034#31711034\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return (valInt % stepInt) / Math.pow(10, decCount);\n}\nclass ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message),\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value: value,\n message: errorUtil.toString(message),\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message),\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message),\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" ||\n (ch.kind === \"multipleOf\" && util.isInteger(ch.value)));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" ||\n ch.kind === \"int\" ||\n ch.kind === \"multipleOf\") {\n return true;\n }\n else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n}\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n let ctx = undefined;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive\n ? input.data < check.value\n : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n const tooBig = check.inclusive\n ? input.data > check.value\n : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message,\n });\n status.dirty();\n }\n }\n else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message,\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message),\n },\n ],\n });\n }\n _addCheck(check) {\n return new ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message),\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message),\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message),\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n}\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params),\n });\n};\nclass ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params),\n });\n};\nclass ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_date,\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = undefined;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\",\n });\n status.dirty();\n }\n }\n else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime()),\n };\n }\n _addCheck(check) {\n return new ZodDate({\n ...this._def,\n checks: [...this._def.checks, check],\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message),\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n}\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params),\n });\n};\nclass ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params),\n });\n};\nclass ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params),\n });\n};\nclass ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params),\n });\n};\nclass ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n // to prevent instances of other classes from extending ZodAny. this causes issues with catchall in ZodObject.\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params),\n });\n};\nclass ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n // required\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n}\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params),\n });\n};\nclass ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n}\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params),\n });\n};\nclass ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n}\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params),\n });\n};\nclass ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: (tooSmall ? def.exactLength.value : undefined),\n maximum: (tooBig ? def.exactLength.value : undefined),\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message,\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message,\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message,\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result) => {\n return ParseStatus.mergeArray(status, result);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) },\n });\n }\n max(maxLength, message) {\n return new ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) },\n });\n }\n length(len, message) {\n return new ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) },\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params),\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape,\n });\n }\n else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element),\n });\n }\n else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n }\n else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n }\n else {\n return schema;\n }\n}\nclass ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n /**\n * @deprecated In most cases, this is no longer needed - unknown properties are now silently stripped.\n * If you want to pass through unknown properties, use `.passthrough()` instead.\n */\n this.nonstrict = this.passthrough;\n // extend<\n // Augmentation extends ZodRawShape,\n // NewOutput extends util.flatten<{\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // }>,\n // NewInput extends util.flatten<{\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }>\n // >(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<T, Augmentation>,\n // UnknownKeys,\n // Catchall,\n // NewOutput,\n // NewInput\n // > {\n // return new ZodObject({\n // ...this._def,\n // shape: () => ({\n // ...this._def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // }\n /**\n * @deprecated Use `.extend` instead\n * */\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return (this._cached = { shape, keys });\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever &&\n this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] },\n });\n }\n }\n else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys,\n });\n status.dirty();\n }\n }\n else if (unknownKeys === \"strip\") ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n }\n else {\n // run catchall validation\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data,\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve()\n .then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n syncPairs.push({\n key,\n value,\n alwaysSet: pair.alwaysSet,\n });\n }\n return syncPairs;\n })\n .then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...(message !== undefined\n ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError,\n };\n return {\n message: defaultError,\n };\n },\n }\n : {}),\n });\n }\n strip() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"strip\",\n });\n }\n passthrough() {\n return new ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\",\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation,\n }),\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape(),\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new ZodObject({\n ...this._def,\n catchall: index,\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => shape,\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n }\n else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n }\n else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new ZodObject({\n ...this._def,\n shape: () => newShape,\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n}\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params),\n });\n};\nclass ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n // return first issue-free validation if it exists\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n // add issues from dirty option\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n // return invalid\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n }),\n ctx: childCtx,\n };\n })).then(handleResults);\n }\n else {\n let dirty = undefined;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n parent: null,\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx,\n });\n if (result.status === \"valid\") {\n return result;\n }\n else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues) => new ZodError(issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors,\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n}\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params),\n });\n};\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\n////////// //////////\n////////// ZodDiscriminatedUnion //////////\n////////// //////////\n/////////////////////////////////////////////////////\n/////////////////////////////////////////////////////\nconst getDiscriminator = (type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n }\n else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n }\n else if (type instanceof ZodLiteral) {\n return [type.value];\n }\n else if (type instanceof ZodEnum) {\n return type.options;\n }\n else if (type instanceof ZodNativeEnum) {\n // eslint-disable-next-line ban/ban\n return util.objectValues(type.enum);\n }\n else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n }\n else if (type instanceof ZodUndefined) {\n return [undefined];\n }\n else if (type instanceof ZodNull) {\n return [null];\n }\n else if (type instanceof ZodOptional) {\n return [undefined, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodNullable) {\n return [null, ...getDiscriminator(type.unwrap())];\n }\n else if (type instanceof ZodBranded) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodReadonly) {\n return getDiscriminator(type.unwrap());\n }\n else if (type instanceof ZodCatch) {\n return getDiscriminator(type._def.innerType);\n }\n else {\n return [];\n }\n};\nclass ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator],\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n // Get all the valid discriminator values\n const optionsMap = new Map();\n // try {\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues.length) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params),\n });\n }\n}\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util\n .objectKeys(a)\n .filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n else if (aType === ZodParsedType.date &&\n bType === ZodParsedType.date &&\n +a === +b) {\n return { valid: true, data: a };\n }\n else {\n return { valid: false };\n }\n}\nclass ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = (parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types,\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n };\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }),\n ]).then(([left, right]) => handleParsed(left, right));\n }\n else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n }));\n }\n }\n}\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left: left,\n right: right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params),\n });\n};\nclass ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\",\n });\n status.dirty();\n }\n const items = [...ctx.data]\n .map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n })\n .filter((x) => !!x); // filter nulls\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n }\n else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new ZodTuple({\n ...this._def,\n rest,\n });\n }\n}\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params),\n });\n};\nclass ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)),\n alwaysSet: key in ctx.data,\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n }\n else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third),\n });\n }\n return new ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second),\n });\n }\n}\nclass ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"])),\n };\n });\n if (ctx.common.async) {\n const finalMap = new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n }\n else {\n const finalMap = new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n}\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params),\n });\n};\nclass ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message,\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message,\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements) {\n const parsedSet = new Set();\n for (const element of elements) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements) => finalizeSet(elements));\n }\n else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) },\n });\n }\n max(maxSize, message) {\n return new ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) },\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n}\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params),\n });\n};\nclass ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error,\n },\n });\n }\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap,\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error,\n },\n });\n }\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(async function (...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args\n .parseAsync(args, params)\n .catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type\n .parseAsync(result, params)\n .catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n }\n else {\n // Would love a way to avoid disabling this rule, but we need\n // an alias (using an arrow function was what caused 2651).\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const me = this;\n return OK(function (...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create()),\n });\n }\n returns(returnType) {\n return new ZodFunction({\n ...this._def,\n returns: returnType,\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new ZodFunction({\n args: (args\n ? args\n : ZodTuple.create([]).rest(ZodUnknown.create())),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params),\n });\n }\n}\nclass ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n}\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter: getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params),\n });\n};\nclass ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n}\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value: value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params),\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params),\n });\n}\nclass ZodEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodEnum_cache.set(this, void 0);\n }\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodEnum_cache, new Set(this._def.values), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodEnum_cache, \"f\").has(input.data)) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Values() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n get Enum() {\n const enumValues = {};\n for (const val of this._def.values) {\n enumValues[val] = val;\n }\n return enumValues;\n }\n extract(values, newDef = this._def) {\n return ZodEnum.create(values, {\n ...this._def,\n ...newDef,\n });\n }\n exclude(values, newDef = this._def) {\n return ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), {\n ...this._def,\n ...newDef,\n });\n }\n}\n_ZodEnum_cache = new WeakMap();\nZodEnum.create = createZodEnum;\nclass ZodNativeEnum extends ZodType {\n constructor() {\n super(...arguments);\n _ZodNativeEnum_cache.set(this, void 0);\n }\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string &&\n ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type,\n });\n return INVALID;\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\")) {\n __classPrivateFieldSet(this, _ZodNativeEnum_cache, new Set(util.getValidEnumValues(this._def.values)), \"f\");\n }\n if (!__classPrivateFieldGet(this, _ZodNativeEnum_cache, \"f\").has(input.data)) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues,\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n}\n_ZodNativeEnum_cache = new WeakMap();\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values: values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params),\n });\n};\nclass ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise &&\n ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise\n ? ctx.data\n : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap,\n });\n }));\n }\n}\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params),\n });\n};\nclass ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects\n ? this._def.schema.sourceType()\n : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n }\n else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n },\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(processed).then(async (processed) => {\n if (status.value === \"aborted\")\n return INVALID;\n const result = await this._def.schema._parseAsync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n });\n }\n else {\n if (status.value === \"aborted\")\n return INVALID;\n const result = this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx,\n });\n if (result.status === \"aborted\")\n return INVALID;\n if (result.status === \"dirty\")\n return DIRTY(result.value);\n if (status.value === \"dirty\")\n return DIRTY(result.value);\n return result;\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = (acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n };\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n // return value is ignored\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n }\n else {\n return this._def.schema\n ._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx })\n .then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n}\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params),\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params),\n });\n};\nclass ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(undefined);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params),\n });\n};\nclass ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params),\n });\n};\nclass ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n}\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\"\n ? params.default\n : () => params.default,\n ...processCreateParams(params),\n });\n};\nclass ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n // newCtx is used to not collect issues from inner types in ctx\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: [],\n },\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx,\n },\n });\n if (isAsync(result)) {\n return result.then((result) => {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n });\n }\n else {\n return {\n status: \"valid\",\n value: result.status === \"valid\"\n ? result.value\n : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data,\n }),\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n}\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params),\n });\n};\nclass ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType,\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n}\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params),\n });\n};\nconst BRAND = Symbol(\"zod_brand\");\nclass ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx,\n });\n }\n unwrap() {\n return this._def.type;\n }\n}\nclass ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n }\n else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n };\n return handleAsync();\n }\n else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx,\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value,\n };\n }\n else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx,\n });\n }\n }\n }\n static create(a, b) {\n return new ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline,\n });\n }\n}\nclass ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n const freeze = (data) => {\n if (isValid(data)) {\n data.value = Object.freeze(data.value);\n }\n return data;\n };\n return isAsync(result)\n ? result.then((data) => freeze(data))\n : freeze(result);\n }\n unwrap() {\n return this._def.innerType;\n }\n}\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params),\n });\n};\nfunction custom(check, params = {}, \n/**\n * @deprecated\n *\n * Pass `fatal` into the params object instead:\n *\n * ```ts\n * z.string().custom((val) => val.length > 5, { fatal: false })\n * ```\n *\n */\nfatal) {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\"\n ? params(data)\n : typeof params === \"string\"\n ? { message: params }\n : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n}\nconst late = {\n object: ZodObject.lazycreate,\n};\nvar ZodFirstPartyTypeKind;\n(function (ZodFirstPartyTypeKind) {\n ZodFirstPartyTypeKind[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nconst instanceOfType = (\n// const instanceOfType = <T extends new (...args: any[]) => any>(\ncls, params = {\n message: `Input not instance of ${cls.name}`,\n}) => custom((data) => data instanceof cls, params);\nconst stringType = ZodString.create;\nconst numberType = ZodNumber.create;\nconst nanType = ZodNaN.create;\nconst bigIntType = ZodBigInt.create;\nconst booleanType = ZodBoolean.create;\nconst dateType = ZodDate.create;\nconst symbolType = ZodSymbol.create;\nconst undefinedType = ZodUndefined.create;\nconst nullType = ZodNull.create;\nconst anyType = ZodAny.create;\nconst unknownType = ZodUnknown.create;\nconst neverType = ZodNever.create;\nconst voidType = ZodVoid.create;\nconst arrayType = ZodArray.create;\nconst objectType = ZodObject.create;\nconst strictObjectType = ZodObject.strictCreate;\nconst unionType = ZodUnion.create;\nconst discriminatedUnionType = ZodDiscriminatedUnion.create;\nconst intersectionType = ZodIntersection.create;\nconst tupleType = ZodTuple.create;\nconst recordType = ZodRecord.create;\nconst mapType = ZodMap.create;\nconst setType = ZodSet.create;\nconst functionType = ZodFunction.create;\nconst lazyType = ZodLazy.create;\nconst literalType = ZodLiteral.create;\nconst enumType = ZodEnum.create;\nconst nativeEnumType = ZodNativeEnum.create;\nconst promiseType = ZodPromise.create;\nconst effectsType = ZodEffects.create;\nconst optionalType = ZodOptional.create;\nconst nullableType = ZodNullable.create;\nconst preprocessType = ZodEffects.createWithPreprocess;\nconst pipelineType = ZodPipeline.create;\nconst ostring = () => stringType().optional();\nconst onumber = () => numberType().optional();\nconst oboolean = () => booleanType().optional();\nconst coerce = {\n string: ((arg) => ZodString.create({ ...arg, coerce: true })),\n number: ((arg) => ZodNumber.create({ ...arg, coerce: true })),\n boolean: ((arg) => ZodBoolean.create({\n ...arg,\n coerce: true,\n })),\n bigint: ((arg) => ZodBigInt.create({ ...arg, coerce: true })),\n date: ((arg) => ZodDate.create({ ...arg, coerce: true })),\n};\nconst NEVER = INVALID;\n\nvar z = /*#__PURE__*/Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap: setErrorMap,\n getErrorMap: getErrorMap,\n makeIssue: makeIssue,\n EMPTY_PATH: EMPTY_PATH,\n addIssueToContext: addIssueToContext,\n ParseStatus: ParseStatus,\n INVALID: INVALID,\n DIRTY: DIRTY,\n OK: OK,\n isAborted: isAborted,\n isDirty: isDirty,\n isValid: isValid,\n isAsync: isAsync,\n get util () { return util; },\n get objectUtil () { return objectUtil; },\n ZodParsedType: ZodParsedType,\n getParsedType: getParsedType,\n ZodType: ZodType,\n datetimeRegex: datetimeRegex,\n ZodString: ZodString,\n ZodNumber: ZodNumber,\n ZodBigInt: ZodBigInt,\n ZodBoolean: ZodBoolean,\n ZodDate: ZodDate,\n ZodSymbol: ZodSymbol,\n ZodUndefined: ZodUndefined,\n ZodNull: ZodNull,\n ZodAny: ZodAny,\n ZodUnknown: ZodUnknown,\n ZodNever: ZodNever,\n ZodVoid: ZodVoid,\n ZodArray: ZodArray,\n ZodObject: ZodObject,\n ZodUnion: ZodUnion,\n ZodDiscriminatedUnion: ZodDiscriminatedUnion,\n ZodIntersection: ZodIntersection,\n ZodTuple: ZodTuple,\n ZodRecord: ZodRecord,\n ZodMap: ZodMap,\n ZodSet: ZodSet,\n ZodFunction: ZodFunction,\n ZodLazy: ZodLazy,\n ZodLiteral: ZodLiteral,\n ZodEnum: ZodEnum,\n ZodNativeEnum: ZodNativeEnum,\n ZodPromise: ZodPromise,\n ZodEffects: ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional: ZodOptional,\n ZodNullable: ZodNullable,\n ZodDefault: ZodDefault,\n ZodCatch: ZodCatch,\n ZodNaN: ZodNaN,\n BRAND: BRAND,\n ZodBranded: ZodBranded,\n ZodPipeline: ZodPipeline,\n ZodReadonly: ZodReadonly,\n custom: custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late: late,\n get ZodFirstPartyTypeKind () { return ZodFirstPartyTypeKind; },\n coerce: coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n 'enum': enumType,\n 'function': functionType,\n 'instanceof': instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n 'null': nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean: oboolean,\n onumber: onumber,\n optional: optionalType,\n ostring: ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n 'undefined': undefinedType,\n union: unionType,\n unknown: unknownType,\n 'void': voidType,\n NEVER: NEVER,\n ZodIssueCode: ZodIssueCode,\n quotelessJson: quotelessJson,\n ZodError: ZodError\n});\n\nexport { BRAND, DIRTY, EMPTY_PATH, INVALID, NEVER, OK, ParseStatus, ZodType as Schema, ZodAny, ZodArray, ZodBigInt, ZodBoolean, ZodBranded, ZodCatch, ZodDate, ZodDefault, ZodDiscriminatedUnion, ZodEffects, ZodEnum, ZodError, ZodFirstPartyTypeKind, ZodFunction, ZodIntersection, ZodIssueCode, ZodLazy, ZodLiteral, ZodMap, ZodNaN, ZodNativeEnum, ZodNever, ZodNull, ZodNullable, ZodNumber, ZodObject, ZodOptional, ZodParsedType, ZodPipeline, ZodPromise, ZodReadonly, ZodRecord, ZodType as ZodSchema, ZodSet, ZodString, ZodSymbol, ZodEffects as ZodTransformer, ZodTuple, ZodType, ZodUndefined, ZodUnion, ZodUnknown, ZodVoid, addIssueToContext, anyType as any, arrayType as array, bigIntType as bigint, booleanType as boolean, coerce, custom, dateType as date, datetimeRegex, z as default, errorMap as defaultErrorMap, discriminatedUnionType as discriminatedUnion, effectsType as effect, enumType as enum, functionType as function, getErrorMap, getParsedType, instanceOfType as instanceof, intersectionType as intersection, isAborted, isAsync, isDirty, isValid, late, lazyType as lazy, literalType as literal, makeIssue, mapType as map, nanType as nan, nativeEnumType as nativeEnum, neverType as never, nullType as null, nullableType as nullable, numberType as number, objectType as object, objectUtil, oboolean, onumber, optionalType as optional, ostring, pipelineType as pipeline, preprocessType as preprocess, promiseType as promise, quotelessJson, recordType as record, setType as set, setErrorMap, strictObjectType as strictObject, stringType as string, symbolType as symbol, effectsType as transformer, tupleType as tuple, undefinedType as undefined, unionType as union, unknownType as unknown, util, voidType as void, z };\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { BaseWeb3Error, ERR_VALIDATION } from 'web3-errors';\nimport { Web3ValidationErrorObject } from 'web3-types';\n\nconst errorFormatter = (error: Web3ValidationErrorObject): string => {\n\tif (error.message) {\n\t\treturn error.message;\n\t}\n\n\treturn 'unspecified error';\n};\n\nexport class Web3ValidatorError extends BaseWeb3Error {\n\tpublic code = ERR_VALIDATION;\n\tpublic readonly errors: Web3ValidationErrorObject[];\n\n\tpublic constructor(errors: Web3ValidationErrorObject[]) {\n\t\tsuper();\n\n\t\tthis.errors = errors;\n\n\t\tsuper.message = `Web3 validator found ${\n\t\t\terrors.length\n\t\t} error[s]:\\n${this._compileErrors().join('\\n')}`;\n\t}\n\n\tprivate _compileErrors(): string[] {\n\t\treturn this.errors.map(errorFormatter);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nexport const VALID_ETH_BASE_TYPES = ['bool', 'int', 'uint', 'bytes', 'string', 'address', 'tuple'];\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiParameter } from 'web3-types';\n// eslint-disable-next-line require-extensions/require-extensions\nimport { ShortValidationSchema } from '../types';\n\nexport const isAbiParameterSchema = (\n\tschema: string | ShortValidationSchema | AbiParameter,\n): schema is AbiParameter => typeof schema === 'object' && 'type' in schema && 'name' in schema;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ValidInputTypes } from '../types.js';\n\n/**\n * checks input if typeof data is valid string input\n */\nexport const isString = (value: ValidInputTypes) => typeof value === 'string';\n\nexport const isHexStrict = (hex: ValidInputTypes) =>\n\ttypeof hex === 'string' && /^((-)?0x[0-9a-f]+|(0x))$/i.test(hex);\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: string, length?: number): boolean {\n\tif (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) return false;\n\n\tif (typeof length !== 'undefined' && length > 0 && value.length !== 2 + 2 * length)\n\t\treturn false;\n\n\treturn true;\n}\n\nexport const isHex = (hex: ValidInputTypes): boolean =>\n\ttypeof hex === 'number' ||\n\ttypeof hex === 'bigint' ||\n\t(typeof hex === 'string' && /^((-0x|0x|-)?[0-9a-f]+|(0x))$/i.test(hex));\n\nexport const isHexString8Bytes = (value: string, prefixed = true) =>\n\tprefixed ? isHexStrict(value) && value.length === 18 : isHex(value) && value.length === 16;\n\nexport const isHexString32Bytes = (value: string, prefixed = true) =>\n\tprefixed ? isHexStrict(value) && value.length === 66 : isHex(value) && value.length === 64;\n\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: string): boolean {\n\tif (typeof str !== 'string') {\n\t\tthrow new Error(`[isHexPrefixed] input must be type 'string', received type ${typeof str}`);\n\t}\n\n\treturn str.startsWith('0x');\n}\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 = function (values: {\n\t[key: string]: Uint8Array | undefined;\n}) {\n\tfor (const [k, v] of Object.entries(values)) {\n\t\tif (v !== undefined && v.length > 0 && v[0] === 0) {\n\t\t\tthrow new Error(`${k} cannot have leading zeroes, received: ${v.toString()}`);\n\t\t}\n\t}\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { InvalidBytesError, InvalidNumberError } from 'web3-errors';\nimport { VALID_ETH_BASE_TYPES } from './constants.js';\nimport {\n\tFullValidationSchema,\n\tJsonSchema,\n\tShortValidationSchema,\n\tValidationSchemaInput,\n\tValidInputTypes,\n} from './types.js';\nimport { isAbiParameterSchema } from './validation/abi.js';\nimport { isHexStrict } from './validation/string.js';\nimport { Web3ValidatorError } from './errors.js';\n\nconst extraTypes = ['hex', 'number', 'blockNumber', 'blockNumberOrTag', 'filter', 'bloom'];\n\nexport const parseBaseType = <T = typeof VALID_ETH_BASE_TYPES[number]>(\n\ttype: string,\n): {\n\tbaseType?: T;\n\tbaseTypeSize: number | undefined;\n\tarraySizes: number[];\n\tisArray: boolean;\n} => {\n\t// Remove all empty spaces to avoid any parsing issue.\n\tlet strippedType = type.replace(/ /, '');\n\tlet baseTypeSize: number | undefined;\n\tlet isArray = false;\n\tlet arraySizes: number[] = [];\n\n\tif (type.includes('[')) {\n\t\t// Extract the array type\n\t\tstrippedType = strippedType.slice(0, strippedType.indexOf('['));\n\t\t// Extract array indexes\n\t\tarraySizes = [...type.matchAll(/(?:\\[(\\d*)\\])/g)]\n\t\t\t.map(match => parseInt(match[1], 10))\n\t\t\t.map(size => (Number.isNaN(size) ? -1 : size));\n\n\t\tisArray = arraySizes.length > 0;\n\t}\n\n\tif (VALID_ETH_BASE_TYPES.includes(strippedType)) {\n\t\treturn { baseType: strippedType as unknown as T, isArray, baseTypeSize, arraySizes };\n\t}\n\n\tif (strippedType.startsWith('int')) {\n\t\tbaseTypeSize = parseInt(strippedType.substring(3), 10);\n\t\tstrippedType = 'int';\n\t} else if (strippedType.startsWith('uint')) {\n\t\tbaseTypeSize = parseInt(type.substring(4), 10);\n\t\tstrippedType = 'uint';\n\t} else if (strippedType.startsWith('bytes')) {\n\t\tbaseTypeSize = parseInt(strippedType.substring(5), 10);\n\t\tstrippedType = 'bytes';\n\t} else {\n\t\treturn { baseType: undefined, isArray: false, baseTypeSize: undefined, arraySizes };\n\t}\n\n\treturn { baseType: strippedType as unknown as T, isArray, baseTypeSize, arraySizes };\n};\n\nconst convertEthType = (\n\ttype: string,\n\tparentSchema: JsonSchema = {},\n): { format?: string; required?: boolean } => {\n\tconst typePropertyPresent = Object.keys(parentSchema).includes('type');\n\n\tif (typePropertyPresent) {\n\t\tthrow new Web3ValidatorError([\n\t\t\t{\n\t\t\t\tkeyword: 'eth',\n\t\t\t\tmessage: 'Either \"eth\" or \"type\" can be presented in schema',\n\t\t\t\tparams: { eth: type },\n\t\t\t\tinstancePath: '',\n\t\t\t\tschemaPath: '',\n\t\t\t},\n\t\t]);\n\t}\n\n\tconst { baseType, baseTypeSize } = parseBaseType(type);\n\n\tif (!baseType && !extraTypes.includes(type)) {\n\t\tthrow new Web3ValidatorError([\n\t\t\t{\n\t\t\t\tkeyword: 'eth',\n\t\t\t\tmessage: `Eth data type \"${type}\" is not valid`,\n\t\t\t\tparams: { eth: type },\n\t\t\t\tinstancePath: '',\n\t\t\t\tschemaPath: '',\n\t\t\t},\n\t\t]);\n\t}\n\n\tif (baseType) {\n\t\tif (baseType === 'tuple') {\n\t\t\tthrow new Error('\"tuple\" type is not implemented directly.');\n\t\t}\n\t\treturn { format: `${baseType}${baseTypeSize ?? ''}`, required: true };\n\t}\n\tif (type) {\n\t\treturn { format: type, required: true };\n\t}\n\n\treturn {};\n};\n\nexport const abiSchemaToJsonSchema = (\n\tabis: ShortValidationSchema | FullValidationSchema,\n\tlevel = '/0',\n) => {\n\tconst schema: JsonSchema = {\n\t\ttype: 'array',\n\t\titems: [],\n\t\tmaxItems: abis.length,\n\t\tminItems: abis.length,\n\t};\n\n\tfor (const [index, abi] of abis.entries()) {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tlet abiType!: string;\n\t\tlet abiName!: string;\n\t\tlet abiComponents: ShortValidationSchema | FullValidationSchema | undefined = [];\n\n\t\t// If it's a complete Abi Parameter\n\t\t// e.g. {name: 'a', type: 'uint'}\n\t\tif (isAbiParameterSchema(abi)) {\n\t\t\tabiType = abi.type;\n\t\t\tabiName = abi.name || `${level}/${index}`;\n\t\t\tabiComponents = abi.components as FullValidationSchema;\n\t\t\t// If its short form string value e.g. ['uint']\n\t\t} else if (typeof abi === 'string') {\n\t\t\tabiType = abi;\n\t\t\tabiName = `${level}/${index}`;\n\n\t\t\t// If it's provided in short form of tuple e.g. [['uint', 'string']]\n\t\t} else if (Array.isArray(abi)) {\n\t\t\t// If its custom tuple e.g. ['tuple[2]', ['uint', 'string']]\n\t\t\tif (\n\t\t\t\tabi[0] &&\n\t\t\t\ttypeof abi[0] === 'string' &&\n\t\t\t\tabi[0].startsWith('tuple') &&\n\t\t\t\t!Array.isArray(abi[0]) &&\n\t\t\t\tabi[1] &&\n\t\t\t\tArray.isArray(abi[1])\n\t\t\t) {\n\t\t\t\t// eslint-disable-next-line prefer-destructuring\n\t\t\t\tabiType = abi[0];\n\t\t\t\tabiName = `${level}/${index}`;\n\t\t\t\tabiComponents = abi[1] as ReadonlyArray<ShortValidationSchema>;\n\t\t\t} else {\n\t\t\t\tabiType = 'tuple';\n\t\t\t\tabiName = `${level}/${index}`;\n\t\t\t\tabiComponents = abi;\n\t\t\t}\n\t\t}\n\n\t\tconst { baseType, isArray, arraySizes } = parseBaseType(abiType);\n\n\t\tlet childSchema: JsonSchema;\n\t\tlet lastSchema = schema;\n\t\tfor (let i = arraySizes.length - 1; i > 0; i -= 1) {\n\t\t\tchildSchema = {\n\t\t\t\ttype: 'array',\n\t\t\t\t$id: abiName,\n\t\t\t\titems: [],\n\t\t\t\tmaxItems: arraySizes[i],\n\t\t\t\tminItems: arraySizes[i],\n\t\t\t};\n\n\t\t\tif (arraySizes[i] < 0) {\n\t\t\t\tdelete childSchema.maxItems;\n\t\t\t\tdelete childSchema.minItems;\n\t\t\t}\n\n\t\t\t// lastSchema.items is a Schema, concat with 'childSchema'\n\t\t\tif (!Array.isArray(lastSchema.items)) {\n\t\t\t\tlastSchema.items = [lastSchema.items as JsonSchema, childSchema];\n\t\t\t} // lastSchema.items is an empty Scheme array, set it to 'childSchema'\n\t\t\telse if (lastSchema.items.length === 0) {\n\t\t\t\tlastSchema.items = [childSchema];\n\t\t\t} // lastSchema.items is a non-empty Scheme array, append 'childSchema'\n\t\t\telse {\n\t\t\t\tlastSchema.items.push(childSchema);\n\t\t\t}\n\t\t\tlastSchema = childSchema;\n\t\t}\n\n\t\tif (baseType === 'tuple' && !isArray) {\n\t\t\tconst nestedTuple = abiSchemaToJsonSchema(abiComponents, abiName);\n\t\t\tnestedTuple.$id = abiName;\n\t\t\t(lastSchema.items as JsonSchema[]).push(nestedTuple);\n\t\t} else if (baseType === 'tuple' && isArray) {\n const arraySize = arraySizes[0];\n const item: JsonSchema = {\n type: 'array',\n $id: abiName,\n items: abiSchemaToJsonSchema(abiComponents, abiName),\n ...(arraySize >= 0 && { minItems: arraySize, maxItems: arraySize }),\n };\n\n (lastSchema.items as JsonSchema[]).push(item);\n\t\t} else if (isArray) {\n\t\t const arraySize = arraySizes[0];\n const item: JsonSchema = {\n type: 'array',\n $id: abiName,\n items: convertEthType(abiType),\n ...(arraySize >= 0 && { minItems: arraySize, maxItems: arraySize }),\n };\n\n (lastSchema.items as JsonSchema[]).push(item);\n\t\t} else if (Array.isArray(lastSchema.items)) {\n\t\t\t// Array of non-tuple items\n\t\t\tlastSchema.items.push({ $id: abiName, ...convertEthType(abiType) });\n\t\t} else {\n\t\t\t// Nested object\n\t\t\t(lastSchema.items as JsonSchema[]).push({\n\t\t\t\t$id: abiName,\n\t\t\t\t...convertEthType(abiType),\n\t\t\t});\n\t\t}\n\t\tlastSchema = schema;\n\t}\n\n\treturn schema;\n};\n\nexport const ethAbiToJsonSchema = (abis: ValidationSchemaInput) => abiSchemaToJsonSchema(abis);\n\nexport const fetchArrayElement = (data: Array<unknown>, level: number): unknown => {\n\tif (level === 1) {\n\t\treturn data;\n\t}\n\n\treturn fetchArrayElement(data[0] as Array<unknown>, level - 1);\n};\n\nexport const transformJsonDataToAbiFormat = (\n\tabis: FullValidationSchema,\n\tdata: ReadonlyArray<unknown> | Record<string, unknown>,\n\ttransformedData?: Array<unknown>,\n): Array<unknown> => {\n\tconst newData: Array<unknown> = [];\n\n\tfor (const [index, abi] of abis.entries()) {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tlet abiType!: string;\n\t\tlet abiName!: string;\n\t\tlet abiComponents: ShortValidationSchema | FullValidationSchema | undefined = [];\n\n\t\t// If it's a complete Abi Parameter\n\t\t// e.g. {name: 'a', type: 'uint'}\n\t\tif (isAbiParameterSchema(abi)) {\n\t\t\tabiType = abi.type;\n\t\t\tabiName = abi.name;\n\t\t\tabiComponents = abi.components as FullValidationSchema;\n\t\t\t// If its short form string value e.g. ['uint']\n\t\t} else if (typeof abi === 'string') {\n\t\t\tabiType = abi;\n\n\t\t\t// If it's provided in short form of tuple e.g. [['uint', 'string']]\n\t\t} else if (Array.isArray(abi)) {\n\t\t\t// If its custom tuple e.g. ['tuple[2]', ['uint', 'string']]\n\t\t\tif (abi[1] && Array.isArray(abi[1])) {\n\t\t\t\tabiType = abi[0] as string;\n\t\t\t\tabiComponents = abi[1] as ReadonlyArray<ShortValidationSchema>;\n\t\t\t} else {\n\t\t\t\tabiType = 'tuple';\n\t\t\t\tabiComponents = abi;\n\t\t\t}\n\t\t}\n\n\t\tconst { baseType, isArray, arraySizes } = parseBaseType(abiType);\n\t\tconst dataItem = Array.isArray(data)\n\t\t\t? (data as Array<unknown>)[index]\n\t\t\t: (data as Record<string, unknown>)[abiName];\n\n\t\tif (baseType === 'tuple' && !isArray) {\n\t\t\tnewData.push(\n\t\t\t\ttransformJsonDataToAbiFormat(\n\t\t\t\t\tabiComponents as FullValidationSchema,\n\t\t\t\t\tdataItem as Array<unknown>,\n\t\t\t\t\ttransformedData,\n\t\t\t\t),\n\t\t\t);\n\t\t} else if (baseType === 'tuple' && isArray) {\n\t\t\tconst tupleData = [];\n\t\t\tfor (const tupleItem of dataItem as Array<unknown>) {\n\t\t\t\t// Nested array\n\t\t\t\tif (arraySizes.length > 1) {\n\t\t\t\t\tconst nestedItems = fetchArrayElement(\n\t\t\t\t\t\ttupleItem as Array<unknown>,\n\t\t\t\t\t\tarraySizes.length - 1,\n\t\t\t\t\t);\n\t\t\t\t\tconst nestedData = [];\n\n\t\t\t\t\tfor (const nestedItem of nestedItems as Array<unknown>) {\n\t\t\t\t\t\tnestedData.push(\n\t\t\t\t\t\t\ttransformJsonDataToAbiFormat(\n\t\t\t\t\t\t\t\tabiComponents as FullValidationSchema,\n\t\t\t\t\t\t\t\tnestedItem as Array<unknown>,\n\t\t\t\t\t\t\t\ttransformedData,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\ttupleData.push(nestedData);\n\t\t\t\t} else {\n\t\t\t\t\ttupleData.push(\n\t\t\t\t\t\ttransformJsonDataToAbiFormat(\n\t\t\t\t\t\t\tabiComponents as FullValidationSchema,\n\t\t\t\t\t\t\ttupleItem as Array<unknown>,\n\t\t\t\t\t\t\ttransformedData,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\tnewData.push(tupleData);\n\t\t} else {\n\t\t\tnewData.push(dataItem);\n\t\t}\n\t}\n\n\t// Have to reassign before pushing to transformedData\n\t// eslint-disable-next-line no-param-reassign\n\ttransformedData = transformedData ?? [];\n\ttransformedData.push(...newData);\n\n\treturn transformedData;\n};\n\n/**\n * Code points to int\n */\n\nexport const codePointToInt = (codePoint: number): number => {\n\tif (codePoint >= 48 && codePoint <= 57) {\n\t\t/* ['0'..'9'] -> [0..9] */\n\t\treturn codePoint - 48;\n\t}\n\n\tif (codePoint >= 65 && codePoint <= 70) {\n\t\t/* ['A'..'F'] -> [10..15] */\n\t\treturn codePoint - 55;\n\t}\n\n\tif (codePoint >= 97 && codePoint <= 102) {\n\t\t/* ['a'..'f'] -> [10..15] */\n\t\treturn codePoint - 87;\n\t}\n\n\tthrow new Error(`Invalid code point: ${codePoint}`);\n};\n\n/**\n * Converts value to it's number representation\n */\nexport const hexToNumber = (value: string): bigint | number => {\n\tif (!isHexStrict(value)) {\n\t\tthrow new Error('Invalid hex string');\n\t}\n\n\tconst [negative, hexValue] = value.startsWith('-') ? [true, value.slice(1)] : [false, value];\n\tconst num = BigInt(hexValue);\n\n\tif (num > Number.MAX_SAFE_INTEGER) {\n\t\treturn negative ? -num : num;\n\t}\n\n\tif (num < Number.MIN_SAFE_INTEGER) {\n\t\treturn num;\n\t}\n\n\treturn negative ? -1 * Number(num) : Number(num);\n};\n\n/**\n * Converts value to it's hex representation\n */\nexport const numberToHex = (value: ValidInputTypes): string => {\n\tif ((typeof value === 'number' || typeof value === 'bigint') && value < 0) {\n\t\treturn `-0x${value.toString(16).slice(1)}`;\n\t}\n\n\tif ((typeof value === 'number' || typeof value === 'bigint') && value >= 0) {\n\t\treturn `0x${value.toString(16)}`;\n\t}\n\n\tif (typeof value === 'string' && isHexStrict(value)) {\n\t\tconst [negative, hex] = value.startsWith('-') ? [true, value.slice(1)] : [false, value];\n\t\tconst hexValue = hex.split(/^(-)?0(x|X)/).slice(-1)[0];\n\t\treturn `${negative ? '-' : ''}0x${hexValue.replace(/^0+/, '').toLowerCase()}`;\n\t}\n\n\tif (typeof value === 'string' && !isHexStrict(value)) {\n\t\treturn numberToHex(BigInt(value));\n\t}\n\n\tthrow new InvalidNumberError(value);\n};\n\n/**\n * Adds a padding on the left of a string, if value is a integer or bigInt will be converted to a hex string.\n */\nexport const padLeft = (value: ValidInputTypes, characterAmount: number, sign = '0'): string => {\n\tif (typeof value === 'string' && !isHexStrict(value)) {\n\t\treturn value.padStart(characterAmount, sign);\n\t}\n\n\tconst hex = typeof value === 'string' && isHexStrict(value) ? value : numberToHex(value);\n\n\tconst [prefix, hexValue] = hex.startsWith('-') ? ['-0x', hex.slice(3)] : ['0x', hex.slice(2)];\n\n\treturn `${prefix}${hexValue.padStart(characterAmount, sign)}`;\n};\n\nexport function uint8ArrayToHexString(uint8Array: Uint8Array): string {\n\tlet hexString = '0x';\n\tfor (const e of uint8Array) {\n\t\tconst hex = e.toString(16);\n\t\thexString += hex.length === 1 ? `0${hex}` : hex;\n\t}\n\treturn hexString;\n}\n\n// for optimized technique for hex to bytes conversion\nconst charCodeMap = {\n\tzero: 48,\n\tnine: 57,\n\tA: 65,\n\tF: 70,\n\ta: 97,\n\tf: 102,\n } as const\n\n function charCodeToBase16(char: number) {\n\tif (char >= charCodeMap.zero && char <= charCodeMap.nine)\n\t return char - charCodeMap.zero\n\tif (char >= charCodeMap.A && char <= charCodeMap.F)\n\t return char - (charCodeMap.A - 10)\n\tif (char >= charCodeMap.a && char <= charCodeMap.f)\n\t return char - (charCodeMap.a - 10)\n\treturn undefined\n }\n\nexport function hexToUint8Array(hex: string): Uint8Array {\n\tlet offset = 0;\n\tif (hex.startsWith('0') && (hex[1] === 'x' || hex[1] === 'X')) {\n\t\toffset = 2;\n\t}\n\tif (hex.length % 2 !== 0) {\n\t\tthrow new InvalidBytesError(`hex string has odd length: ${hex}`);\n\t}\n\tconst length = (hex.length - offset) / 2;\n\tconst bytes = new Uint8Array(length);\n\tfor (let index = 0, j = offset; index < length; index+=1) {\n\t // eslint-disable-next-line no-plusplus\n\t const nibbleLeft = charCodeToBase16(hex.charCodeAt(j++))\n\t // eslint-disable-next-line no-plusplus\n\t const nibbleRight = charCodeToBase16(hex.charCodeAt(j++))\n\t if (nibbleLeft === undefined || nibbleRight === undefined) {\n\t\tthrow new InvalidBytesError(\n\t\t\t`Invalid byte sequence (\"${hex[j - 2]}${\n\t\t\t\thex[j - 1]\n\t\t\t }\" in \"${hex}\").`,\n\t\t)\n\t }\n\t bytes[index] = nibbleLeft * 16 + nibbleRight\n\t}\n\treturn bytes\n}\n\n// @TODO: Remove this function and its usages once all sub dependencies uses version 1.3.3 or above of @noble/hashes\nexport function ensureIfUint8Array<T = any>(data: T) {\n\tif (\n\t\t!(data instanceof Uint8Array) &&\n\t\t(data as { constructor: { name: string } })?.constructor?.name === 'Uint8Array'\n\t) {\n\t\treturn Uint8Array.from(data as unknown as Uint8Array);\n\t}\n\treturn data;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ValidInputTypes } from '../types.js';\nimport { hexToUint8Array, parseBaseType } from '../utils.js';\nimport { isHexStrict } from './string.js';\n\n/**\n * checks input if typeof data is valid Uint8Array input\n */\nexport const isUint8Array = (data: ValidInputTypes): data is Uint8Array =>\n\tdata instanceof Uint8Array || data?.constructor?.name === 'Uint8Array' || data?.constructor?.name === 'Buffer';\n\nexport const isBytes = (\n\tvalue: ValidInputTypes | Uint8Array | number[],\n\toptions: { abiType: string; size?: never } | { size: number; abiType?: never } = {\n\t\tabiType: 'bytes',\n\t},\n) => {\n\tif (typeof value !== 'string' && !Array.isArray(value) && !isUint8Array(value)) {\n\t\treturn false;\n\t}\n\n\t// isHexStrict also accepts - prefix which can not exists in bytes\n\tif (typeof value === 'string' && isHexStrict(value) && value.startsWith('-')) {\n\t\treturn false;\n\t}\n\n\tif (typeof value === 'string' && !isHexStrict(value)) {\n\t\treturn false;\n\t}\n\n\tlet valueToCheck: Uint8Array;\n\n\tif (typeof value === 'string') {\n\t\tif (value.length % 2 !== 0) {\n\t\t\t// odd length hex\n\t\t\treturn false;\n\t\t}\n\t\tvalueToCheck = hexToUint8Array(value);\n\t} else if (Array.isArray(value)) {\n\t\tif (value.some(d => d < 0 || d > 255 || !Number.isInteger(d))) {\n\t\t\treturn false;\n\t\t}\n\t\tvalueToCheck = new Uint8Array(value);\n\t} else {\n\t\tvalueToCheck = value;\n\t}\n\n\tif (options?.abiType) {\n\t\tconst { baseTypeSize } = parseBaseType(options.abiType);\n\n\t\treturn baseTypeSize ? valueToCheck.length === baseTypeSize : true;\n\t}\n\n\tif (options?.size) {\n\t\treturn valueToCheck.length === options?.size;\n\t}\n\n\treturn true;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { utf8ToBytes } from 'ethereum-cryptography/utils.js';\nimport { ValidInputTypes } from '../types.js';\nimport { ensureIfUint8Array, uint8ArrayToHexString } from '../utils.js';\nimport { isHexStrict } from './string.js';\nimport { isUint8Array } from './bytes.js';\n\n/**\n * Checks the checksum of a given address. Will also return false on non-checksum addresses.\n */\nexport const checkAddressCheckSum = (data: string): boolean => {\n\tif (!/^(0x)?[0-9a-f]{40}$/i.test(data)) return false;\n\tconst address = data.slice(2);\n\tconst updatedData = utf8ToBytes(address.toLowerCase());\n\n\tconst addressHash = uint8ArrayToHexString(keccak256(ensureIfUint8Array(updatedData))).slice(2);\n\n\tfor (let i = 0; i < 40; i += 1) {\n\t\t// the nth letter should be uppercase if the nth digit of casemap is 1\n\t\tif (\n\t\t\t(parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i]) ||\n\t\t\t(parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i])\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\n\n/**\n * Checks if a given string is a valid Ethereum address. It will also check the checksum, if the address has upper and lowercase letters.\n */\nexport const isAddress = (value: ValidInputTypes, checkChecksum = true) => {\n\tif (typeof value !== 'string' && !isUint8Array(value)) {\n\t\treturn false;\n\t}\n\n\tlet valueToCheck: string;\n\n\tif (isUint8Array(value)) {\n\t\tvalueToCheck = uint8ArrayToHexString(value);\n\t} else if (typeof value === 'string' && !isHexStrict(value)) {\n\t\tvalueToCheck = value.toLowerCase().startsWith('0x') ? value : `0x${value}`;\n\t} else {\n\t\tvalueToCheck = value;\n\t}\n\n\t// check if it has the basic requirements of an address\n\tif (!/^(0x)?[0-9a-f]{40}$/i.test(valueToCheck)) {\n\t\treturn false;\n\t}\n\t// If it's ALL lowercase or ALL upppercase\n\tif (\n\t\t/^(0x|0X)?[0-9a-f]{40}$/.test(valueToCheck) ||\n\t\t/^(0x|0X)?[0-9A-F]{40}$/.test(valueToCheck)\n\t) {\n\t\treturn true;\n\t\t// Otherwise check each case\n\t}\n\treturn checkChecksum ? checkAddressCheckSum(valueToCheck) : true;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ValidInputTypes } from '../types.js';\nimport { parseBaseType, hexToNumber } from '../utils.js';\nimport { isHexStrict } from './string.js';\n\n/**\n * Checks if a given value is a valid big int\n */\nexport const isBigInt = (value: ValidInputTypes): boolean => typeof value === 'bigint';\n\n// Note: this could be simplified using ** operator, but babel does not handle it well\n// \tyou can find more at: https://github.com/babel/babel/issues/13109 and https://github.com/web3/web3.js/issues/6187\n/** @internal */\nexport const bigintPower = (base: bigint, expo: bigint) => {\n\t// edge case\n\tif (expo === BigInt(0)) {\n\t\treturn BigInt(1);\n\t}\n\tlet res = base;\n\tfor (let index = 1; index < expo; index += 1) {\n\t\tres *= base;\n\t}\n\treturn res;\n};\n\nexport const isUInt = (\n\tvalue: ValidInputTypes,\n\toptions: { abiType: string; bitSize?: never } | { bitSize: number; abiType?: never } = {\n\t\tabiType: 'uint',\n\t},\n) => {\n\tif (\n\t\t!['number', 'string', 'bigint'].includes(typeof value) ||\n\t\t(typeof value === 'string' && value.length === 0)\n\t) {\n\t\treturn false;\n\t}\n\n\tlet size!: number;\n\n\tif (options?.abiType) {\n\t\tconst { baseTypeSize } = parseBaseType(options.abiType);\n\n\t\tif (baseTypeSize) {\n\t\t\tsize = baseTypeSize;\n\t\t}\n\t} else if (options.bitSize) {\n\t\tsize = options.bitSize;\n\t}\n\n\tconst maxSize = bigintPower(BigInt(2), BigInt(size ?? 256)) - BigInt(1);\n\n\ttry {\n\t\tconst valueToCheck =\n\t\t\ttypeof value === 'string' && isHexStrict(value)\n\t\t\t\t? BigInt(hexToNumber(value))\n\t\t\t\t: BigInt(value as number);\n\n\t\treturn valueToCheck >= 0 && valueToCheck <= maxSize;\n\t} catch (error) {\n\t\t// Some invalid number value given which can not be converted via BigInt\n\t\treturn false;\n\t}\n};\n\nexport const isInt = (\n\tvalue: ValidInputTypes,\n\toptions: { abiType: string; bitSize?: never } | { bitSize: number; abiType?: never } = {\n\t\tabiType: 'int',\n\t},\n) => {\n\tif (!['number', 'string', 'bigint'].includes(typeof value)) {\n\t\treturn false;\n\t}\n\n\tif (typeof value === 'number' && value > Number.MAX_SAFE_INTEGER) {\n\t\treturn false;\n\t}\n\n\tlet size!: number;\n\n\tif (options?.abiType) {\n\t\tconst { baseTypeSize, baseType } = parseBaseType(options.abiType);\n\n\t\tif (baseType !== 'int') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (baseTypeSize) {\n\t\t\tsize = baseTypeSize;\n\t\t}\n\t} else if (options.bitSize) {\n\t\tsize = options.bitSize;\n\t}\n\n\tconst maxSize = bigintPower(BigInt(2), BigInt((size ?? 256) - 1));\n\tconst minSize = BigInt(-1) * bigintPower(BigInt(2), BigInt((size ?? 256) - 1));\n\n\ttry {\n\t\tconst valueToCheck =\n\t\t\ttypeof value === 'string' && isHexStrict(value)\n\t\t\t\t? BigInt(hexToNumber(value))\n\t\t\t\t: BigInt(value as number);\n\n\t\treturn valueToCheck >= minSize && valueToCheck <= maxSize;\n\t} catch (error) {\n\t\t// Some invalid number value given which can not be converted via BigInt\n\t\treturn false;\n\t}\n};\n\nexport const isNumber = (value: ValidInputTypes) => {\n\tif (isInt(value)) {\n\t\treturn true;\n\t}\n\n\t// It would be a decimal number\n\tif (\n\t\ttypeof value === 'string' &&\n\t\t/[0-9.]/.test(value) &&\n\t\tvalue.indexOf('.') === value.lastIndexOf('.')\n\t) {\n\t\treturn true;\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { BlockTags } from 'web3-types';\nimport { isUInt } from './numbers.js';\n\nexport const isBlockNumber = (value: string | number | bigint): boolean => isUInt(value);\n\n/**\n * Returns true if the given blockNumber is 'latest', 'pending', 'earliest, 'safe' or 'finalized'\n */\nexport const isBlockTag = (value: string) => Object.values(BlockTags).includes(value as BlockTags);\n\n/**\n * Returns true if given value is valid hex string and not negative, or is a valid BlockTag\n */\nexport const isBlockNumberOrTag = (value: string | number | bigint) =>\n\tisBlockTag(value as string) || isBlockNumber(value);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { ValidInputTypes } from '../types.js';\nimport { codePointToInt, hexToUint8Array, padLeft, uint8ArrayToHexString } from '../utils.js';\nimport { isAddress } from './address.js';\nimport { isHexStrict } from './string.js';\n\n/**\n * Returns true if the bloom is a valid bloom\n * https://github.com/joshstevens19/ethereum-bloom-filters/blob/fbeb47b70b46243c3963fe1c2988d7461ef17236/src/index.ts#L7\n */\nexport const isBloom = (bloom: ValidInputTypes): boolean => {\n\tif (typeof bloom !== 'string') {\n\t\treturn false;\n\t}\n\n\tif (!/^(0x)?[0-9a-f]{512}$/i.test(bloom)) {\n\t\treturn false;\n\t}\n\n\tif (/^(0x)?[0-9a-f]{512}$/.test(bloom) || /^(0x)?[0-9A-F]{512}$/.test(bloom)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Returns true if the value is part of the given bloom\n * note: false positives are possible.\n */\nexport const isInBloom = (bloom: string, value: string | Uint8Array): boolean => {\n\tif (typeof value === 'string' && !isHexStrict(value)) {\n\t\treturn false;\n\t}\n\n\tif (!isBloom(bloom)) {\n\t\treturn false;\n\t}\n\n\tconst uint8Array = typeof value === 'string' ? hexToUint8Array(value) : value;\n\n\tconst hash = uint8ArrayToHexString(keccak256(uint8Array)).slice(2);\n\n\tfor (let i = 0; i < 12; i += 4) {\n\t\t// calculate bit position in bloom filter that must be active\n\t\tconst bitpos =\n\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t((parseInt(hash.slice(i, i + 2), 16) << 8) + parseInt(hash.slice(i + 2, i + 4), 16)) &\n\t\t\t2047;\n\n\t\t// test if bitpos in bloom is active\n\t\tconst code = codePointToInt(bloom.charCodeAt(bloom.length - 1 - Math.floor(bitpos / 4)));\n\n\t\t// eslint-disable-next-line no-bitwise\n\t\tconst offset = 1 << bitpos % 4;\n\n\t\t// eslint-disable-next-line no-bitwise\n\t\tif ((code & offset) !== offset) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\n/**\n * Returns true if the ethereum users address is part of the given bloom note: false positives are possible.\n */\nexport const isUserEthereumAddressInBloom = (bloom: string, ethereumAddress: string): boolean => {\n\tif (!isBloom(bloom)) {\n\t\treturn false;\n\t}\n\n\tif (!isAddress(ethereumAddress)) {\n\t\treturn false;\n\t}\n\n\t// you have to pad the ethereum address to 32 bytes\n\t// else the bloom filter does not work\n\t// this is only if your matching the USERS\n\t// ethereum address. Contract address do not need this\n\t// hence why we have 2 methods\n\t// (0x is not in the 2nd parameter of padleft so 64 chars is fine)\n\n\tconst address = padLeft(ethereumAddress, 64);\n\n\treturn isInBloom(bloom, address);\n};\n\n/**\n * Returns true if the contract address is part of the given bloom.\n * note: false positives are possible.\n */\nexport const isContractAddressInBloom = (bloom: string, contractAddress: string): boolean => {\n\tif (!isBloom(bloom)) {\n\t\treturn false;\n\t}\n\n\tif (!isAddress(contractAddress)) {\n\t\treturn false;\n\t}\n\n\treturn isInBloom(bloom, contractAddress);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { TypedArray } from 'web3-types';\n\n// Explicitly check for the\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const isNullish = (item: unknown): item is undefined | null =>\n\t// Using \"null\" value intentionally for validation\n\t// eslint-disable-next-line no-null/no-null\n\titem === undefined || item === null;\n\nexport const isObject = (item: unknown): item is Record<string, unknown> =>\n\ttypeof item === 'object' &&\n\t!isNullish(item) &&\n\t!Array.isArray(item) &&\n\t!(item instanceof TypedArray);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { isBloom, isInBloom } from './bloom.js';\n\n/**\n * Checks if its a valid topic\n */\nexport const isTopic = (topic: string): boolean => {\n\tif (typeof topic !== 'string') {\n\t\treturn false;\n\t}\n\n\tif (!/^(0x)?[0-9a-f]{64}$/i.test(topic)) {\n\t\treturn false;\n\t}\n\n\tif (/^(0x)?[0-9a-f]{64}$/.test(topic) || /^(0x)?[0-9A-F]{64}$/.test(topic)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\n/**\n * Returns true if the topic is part of the given bloom.\n * note: false positives are possible.\n */\nexport const isTopicInBloom = (bloom: string, topic: string): boolean => {\n\tif (!isBloom(bloom)) {\n\t\treturn false;\n\t}\n\n\tif (!isTopic(topic)) {\n\t\treturn false;\n\t}\n\n\treturn isInBloom(bloom, topic);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Filter } from 'web3-types';\nimport { ValidInputTypes } from './types.js';\nimport { isAddress } from './validation/address.js';\nimport { isBlockNumber, isBlockNumberOrTag, isBlockTag } from './validation/block.js';\nimport { isBloom } from './validation/bloom.js';\nimport { isBoolean } from './validation/boolean.js';\nimport { isBytes } from './validation/bytes.js';\nimport { isFilterObject } from './validation/filter.js';\nimport { isHexStrict, isString } from './validation/string.js';\nimport { isNumber, isInt, isUInt } from './validation/numbers.js';\n\nconst formats: { [key: string]: (data: unknown) => boolean } = {\n\taddress: (data: unknown) => isAddress(data as ValidInputTypes),\n\tbloom: (data: unknown) => isBloom(data as ValidInputTypes),\n\tblockNumber: (data: unknown) => isBlockNumber(data as string | number | bigint),\n\tblockTag: (data: unknown) => isBlockTag(data as string),\n\tblockNumberOrTag: (data: unknown) => isBlockNumberOrTag(data as string | number | bigint),\n\tbool: (data: unknown) => isBoolean(data as ValidInputTypes),\n\tbytes: (data: unknown) => isBytes(data as ValidInputTypes | Uint8Array | number[]),\n\tfilter: (data: unknown) => isFilterObject(data as Filter),\n\thex: (data: unknown) => isHexStrict(data as ValidInputTypes),\n\tuint: (data: unknown) => isUInt(data as ValidInputTypes),\n\tint: (data: unknown) => isInt(data as ValidInputTypes),\n\tnumber: (data: unknown) => isNumber(data as ValidInputTypes),\n\tstring: (data: unknown) => isString(data as ValidInputTypes),\n};\n// generate formats for all numbers types\nfor (let bitSize = 8; bitSize <= 256; bitSize += 8) {\n\tformats[`int${bitSize}`] = data => isInt(data as ValidInputTypes, { bitSize });\n\tformats[`uint${bitSize}`] = data => isUInt(data as ValidInputTypes, { bitSize });\n}\n// generate bytes\nfor (let size = 1; size <= 32; size += 1) {\n\tformats[`bytes${size}`] = data =>\n\t\tisBytes(data as ValidInputTypes | Uint8Array | number[], { size });\n}\nformats.bytes256 = formats.bytes;\n\nexport default formats;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ValidInputTypes } from '../types.js';\nimport { isHexStrict } from './string.js';\n\nexport const isBoolean = (value: ValidInputTypes) => {\n\tif (!['number', 'string', 'boolean'].includes(typeof value)) {\n\t\treturn false;\n\t}\n\n\tif (typeof value === 'boolean') {\n\t\treturn true;\n\t}\n\n\tif (typeof value === 'string' && !isHexStrict(value)) {\n\t\treturn value === '1' || value === '0';\n\t}\n\n\tif (typeof value === 'string' && isHexStrict(value)) {\n\t\treturn value === '0x1' || value === '0x0';\n\t}\n\n\t// type === number\n\treturn value === 1 || value === 0;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Filter } from 'web3-types';\nimport { isAddress } from './address.js';\nimport { isBlockNumberOrTag } from './block.js';\nimport { isNullish } from './object.js';\nimport { isTopic } from './topic.js';\n\n/**\n * First we check if all properties in the provided value are expected,\n * then because all Filter properties are optional, we check if the expected properties\n * are defined. If defined and they're not the expected type, we immediately return false,\n * otherwise we return true after all checks pass.\n */\nexport const isFilterObject = (value: Filter) => {\n\tconst expectedFilterProperties: (keyof Filter)[] = [\n\t\t'fromBlock',\n\t\t'toBlock',\n\t\t'address',\n\t\t'topics',\n\t\t'blockHash',\n\t];\n\tif (isNullish(value) || typeof value !== 'object') return false;\n\n\tif (\n\t\t!Object.keys(value).every(property =>\n\t\t\texpectedFilterProperties.includes(property as keyof Filter),\n\t\t)\n\t)\n\t\treturn false;\n\n\tif (\n\t\t(!isNullish(value.fromBlock) && !isBlockNumberOrTag(value.fromBlock)) ||\n\t\t(!isNullish(value.toBlock) && !isBlockNumberOrTag(value.toBlock))\n\t)\n\t\treturn false;\n\n\tif (!isNullish(value.address)) {\n\t\tif (Array.isArray(value.address)) {\n\t\t\tif (!value.address.every(address => isAddress(address))) return false;\n\t\t} else if (!isAddress(value.address)) return false;\n\t}\n\n\tif (!isNullish(value.topics)) {\n\t\tif (\n\t\t\t!value.topics.every(topic => {\n\t\t\t\tif (isNullish(topic)) return true;\n\n\t\t\t\tif (Array.isArray(topic)) {\n\t\t\t\t\treturn topic.every(nestedTopic => isTopic(nestedTopic));\n\t\t\t\t}\n\n\t\t\t\tif (isTopic(topic)) return true;\n\n\t\t\t\treturn false;\n\t\t\t})\n\t\t)\n\t\t\treturn false;\n\t}\n\n\treturn true;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { SchemaFormatError } from 'web3-errors';\nimport { Web3ValidationErrorObject } from 'web3-types';\n\nimport { z, ZodType, ZodIssue, ZodIssueCode, ZodTypeAny } from 'zod';\n\nimport { RawCreateParams } from 'zod/lib/types';\nimport { Web3ValidatorError } from './errors.js';\nimport { Json, JsonSchema } from './types.js';\nimport formats from './formats.js';\n\nconst convertToZod = (schema: JsonSchema): ZodType => {\n\tif ((!schema?.type || schema?.type === 'object') && schema?.properties) {\n\t\tconst obj: { [key: string]: ZodType } = {};\n\t\tfor (const name of Object.keys(schema.properties)) {\n\t\t\tconst zItem = convertToZod(schema.properties[name]);\n\t\t\tif (zItem) {\n\t\t\t\tobj[name] = zItem;\n\t\t\t}\n\t\t}\n\n\t\tif (Array.isArray(schema.required)) {\n\t\t\treturn z\n\t\t\t\t.object(obj)\n\t\t\t\t.partial()\n\t\t\t\t.required(schema.required.reduce((acc, v: string) => ({ ...acc, [v]: true }), {}));\n\t\t}\n\t\treturn z.object(obj).partial();\n\t}\n\n\tif (schema?.type === 'array' && schema?.items) {\n\t\tif (Array.isArray(schema.items) && schema.items.length > 1\n\t\t && schema.maxItems !== undefined\n\t\t && new Set(schema.items.map((item: JsonSchema) => item.$id)).size === schema.items.length) {\n\t\t\tconst arr: Partial<[ZodTypeAny, ...ZodTypeAny[]]> = [];\n\t\t\tfor (const item of schema.items) {\n\t\t\t\tconst zItem = convertToZod(item);\n\t\t\t\tif (zItem) {\n\t\t\t\t\tarr.push(zItem);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn z.tuple(arr as [ZodTypeAny, ...ZodTypeAny[]]);\n\t\t}\n\t\tconst nextSchema = Array.isArray(schema.items) ? schema.items[0] : schema.items;\n let zodArraySchema = z.array(convertToZod(nextSchema));\n\n zodArraySchema = schema.minItems !== undefined ? zodArraySchema.min(schema.minItems) : zodArraySchema;\n zodArraySchema = schema.maxItems !== undefined ? zodArraySchema.max(schema.maxItems) : zodArraySchema;\n\t\treturn zodArraySchema;\n\t}\n\n\tif (schema.oneOf && Array.isArray(schema.oneOf)) {\n\t\treturn z.union(\n\t\t\tschema.oneOf.map(oneOfSchema => convertToZod(oneOfSchema)) as [\n\t\t\t\tZodTypeAny,\n\t\t\t\tZodTypeAny,\n\t\t\t\t...ZodTypeAny[],\n\t\t\t],\n\t\t);\n\t}\n\n\tif (schema?.format) {\n\t\tif (!formats[schema.format]) {\n\t\t\tthrow new SchemaFormatError(schema.format);\n\t\t}\n\n\t\treturn z.any().refine(formats[schema.format], (value: unknown) => ({\n\t\t\tparams: { value, format: schema.format },\n\t\t}));\n\t}\n\n\tif (\n\t\tschema?.type &&\n\t\tschema?.type !== 'object' &&\n\t\ttypeof (z as unknown as { [key: string]: (params?: RawCreateParams) => ZodType })[\n\t\t\tString(schema.type)\n\t\t] === 'function'\n\t) {\n\t\treturn (z as unknown as { [key: string]: (params?: RawCreateParams) => ZodType })[\n\t\t\tString(schema.type)\n\t\t]();\n\t}\n\treturn z.object({ data: z.any() }).partial();\n};\n\nexport class Validator {\n\t// eslint-disable-next-line no-use-before-define\n\tprivate static validatorInstance?: Validator;\n\n\t// eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n\tpublic static factory(): Validator {\n\t\tif (!Validator.validatorInstance) {\n\t\t\tValidator.validatorInstance = new Validator();\n\t\t}\n\t\treturn Validator.validatorInstance;\n\t}\n\n\tpublic validate(schema: JsonSchema, data: Json, options?: { silent?: boolean }) {\n\t\tconst zod = convertToZod(schema);\n\t\tconst result = zod.safeParse(data);\n\t\tif (!result.success) {\n\t\t\tconst errors = this.convertErrors(result.error?.issues ?? []);\n\t\t\tif (errors) {\n\t\t\t\tif (options?.silent) {\n\t\t\t\t\treturn errors;\n\t\t\t\t}\n\t\t\t\tthrow new Web3ValidatorError(errors);\n\t\t\t}\n\t\t}\n\t\treturn undefined;\n\t}\n\t// eslint-disable-next-line class-methods-use-this\n\tprivate convertErrors(errors: ZodIssue[] | undefined): Web3ValidationErrorObject[] | undefined {\n\t\tif (errors && Array.isArray(errors) && errors.length > 0) {\n\t\t\treturn errors.map((error: ZodIssue) => {\n\t\t\t\tlet message;\n\t\t\t\tlet keyword;\n\t\t\t\tlet params;\n\t\t\t\tlet schemaPath;\n\n\t\t\t\tschemaPath = error.path.join('/');\n\n\t\t\t\tconst field = String(error.path[error.path.length - 1]);\n\t\t\t\tconst instancePath = error.path.join('/');\n\t\t\t\tif (error.code === ZodIssueCode.too_big) {\n\t\t\t\t\tkeyword = 'maxItems';\n\t\t\t\t\tschemaPath = `${instancePath}/maxItems`;\n\t\t\t\t\tparams = { limit: error.maximum };\n\t\t\t\t\tmessage = `must NOT have more than ${error.maximum} items`;\n\t\t\t\t} else if (error.code === ZodIssueCode.too_small) {\n\t\t\t\t\tkeyword = 'minItems';\n\t\t\t\t\tschemaPath = `${instancePath}/minItems`;\n\t\t\t\t\tparams = { limit: error.minimum };\n\t\t\t\t\tmessage = `must NOT have fewer than ${error.minimum} items`;\n\t\t\t\t} else if (error.code === ZodIssueCode.custom) {\n\t\t\t\t\tconst { value, format } = (error.params ?? {}) as {\n\t\t\t\t\t\tvalue: unknown;\n\t\t\t\t\t\tformat: string;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (typeof value === 'undefined') {\n\t\t\t\t\t\tmessage = `value at \"/${schemaPath}\" is required`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmessage = `value \"${\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t\t\t\ttypeof value === 'object' ? JSON.stringify(value) : value\n\t\t\t\t\t\t}\" at \"/${schemaPath}\" must pass \"${format}\" validation`;\n\t\t\t\t\t}\n\n\t\t\t\t\tparams = { value };\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tkeyword: keyword ?? field,\n\t\t\t\t\tinstancePath: instancePath ? `/${instancePath}` : '',\n\t\t\t\t\tschemaPath: schemaPath ? `#${schemaPath}` : '#',\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tparams: params ?? { value: error.message },\n\t\t\t\t\tmessage: message ?? error.message,\n\t\t\t\t} as Web3ValidationErrorObject;\n\t\t\t});\n\t\t}\n\t\treturn undefined;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Validator } from './web3_validator.js';\n\nexport const validator = new Web3Validator();\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3ValidationErrorObject } from 'web3-types';\n\nimport { Validator } from './validator.js';\nimport { ethAbiToJsonSchema } from './utils.js';\nimport { Json, ValidationSchemaInput, Web3ValidationOptions } from './types.js';\nimport { Web3ValidatorError } from './errors.js';\n\nexport class Web3Validator {\n\tprivate readonly _validator: Validator;\n\tpublic constructor() {\n\t\tthis._validator = Validator.factory();\n\t}\n\tpublic validateJSONSchema(\n\t\tschema: object,\n\t\tdata: object,\n\t\toptions?: Web3ValidationOptions,\n\t): Web3ValidationErrorObject[] | undefined {\n\t\treturn this._validator.validate(schema, data as Json, options);\n\t}\n\tpublic validate(\n\t\tschema: ValidationSchemaInput,\n\t\tdata: ReadonlyArray<unknown>,\n\t\toptions: Web3ValidationOptions = { silent: false },\n\t): Web3ValidationErrorObject[] | undefined {\n\t\tconst jsonSchema = ethAbiToJsonSchema(schema);\n\t\tif (\n\t\t\tArray.isArray(jsonSchema.items) &&\n\t\t\tjsonSchema.items?.length === 0 &&\n\t\t\tdata.length === 0\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (\n\t\t\tArray.isArray(jsonSchema.items) &&\n\t\t\tjsonSchema.items?.length === 0 &&\n\t\t\tdata.length !== 0\n\t\t) {\n\t\t\tthrow new Web3ValidatorError([\n\t\t\t\t{\n\t\t\t\t\tinstancePath: '/0',\n\t\t\t\t\tschemaPath: '/',\n\t\t\t\t\tkeyword: 'required',\n\t\t\t\t\tmessage: 'empty schema against data can not be validated',\n\t\t\t\t\tparams: data,\n\t\t\t\t},\n\t\t\t]);\n\t\t}\n\n\t\treturn this._validator.validate(jsonSchema, data as Json, options);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nexport function isUint8Array(data: unknown | Uint8Array): data is Uint8Array {\n\treturn (\n\t\tdata instanceof Uint8Array ||\n\t\t(data as { constructor: { name: string } })?.constructor?.name === 'Uint8Array' ||\n\t\t(data as { constructor: { name: string } })?.constructor?.name === 'Buffer'\n\t);\n}\n\nexport function uint8ArrayConcat(...parts: Uint8Array[]): Uint8Array {\n\tconst length = parts.reduce((prev, part) => {\n\t\tconst agg = prev + part.length;\n\t\treturn agg;\n\t}, 0);\n\tconst result = new Uint8Array(length);\n\tlet offset = 0;\n\tfor (const part of parts) {\n\t\tresult.set(part, offset);\n\t\toffset += part.length;\n\t}\n\treturn result;\n}\n\n/**\n * Returns true if the two passed Uint8Arrays have the same content\n */\nexport function uint8ArrayEquals(a: Uint8Array, b: Uint8Array): boolean {\n\tif (a === b) {\n\t\treturn true;\n\t}\n\n\tif (a.byteLength !== b.byteLength) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < a.byteLength; i += 1) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * @module Utils\n */\n\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { bytesToUtf8, utf8ToBytes as ecUtf8ToBytes } from 'ethereum-cryptography/utils.js';\nimport { Address, Bytes, HexString, Numbers, ValueTypes } from 'web3-types';\nimport {\n\tisAddress,\n\tisHex,\n\tisHexStrict,\n\tisInt,\n\tisUInt,\n\tisNullish,\n\tutils,\n\tutils as validatorUtils,\n\tvalidator,\n\tbigintPower,\n} from 'web3-validator';\n\nimport {\n\tHexProcessingError,\n\tInvalidAddressError,\n\tInvalidBooleanError,\n\tInvalidBytesError,\n\tInvalidNumberError,\n\tInvalidUnitError,\n\tInvalidIntegerError,\n} from 'web3-errors';\nimport { isUint8Array } from './uint8array.js';\n\n// Ref: https://ethdocs.org/en/latest/ether.html\n// Note: this could be simplified using ** operator, but babel does not handle it well (https://github.com/babel/babel/issues/13109)\n/** @internal */\nexport const ethUnitMap = {\n\tnoether: BigInt(0),\n\twei: BigInt(1),\n\tkwei: BigInt(1000),\n\tKwei: BigInt(1000),\n\tbabbage: BigInt(1000),\n\tfemtoether: BigInt(1000),\n\tmwei: BigInt(1000000),\n\tMwei: BigInt(1000000),\n\tlovelace: BigInt(1000000),\n\tpicoether: BigInt(1000000),\n\tgwei: BigInt(1000000000),\n\tGwei: BigInt(1000000000),\n\tshannon: BigInt(1000000000),\n\tnanoether: BigInt(1000000000),\n\tnano: BigInt(1000000000),\n\tszabo: BigInt(1000000000000),\n\tmicroether: BigInt(1000000000000),\n\tmicro: BigInt(1000000000000),\n\tfinney: BigInt(1000000000000000),\n\tmilliether: BigInt(1000000000000000),\n\tmilli: BigInt(1000000000000000),\n\tether: BigInt('1000000000000000000'),\n\tkether: BigInt('1000000000000000000000'),\n\tgrand: BigInt('1000000000000000000000'),\n\tmether: BigInt('1000000000000000000000000'),\n\tgether: BigInt('1000000000000000000000000000'),\n\ttether: BigInt('1000000000000000000000000000000'),\n};\n\nconst PrecisionLossWarning =\n\t'Warning: Using type `number` with values that are large or contain many decimals may cause loss of precision, it is recommended to use type `string` or `BigInt` when using conversion methods';\n\nexport type EtherUnits = keyof typeof ethUnitMap;\n/**\n * Convert a value from bytes to Uint8Array\n * @param data - Data to be converted\n * @returns - The Uint8Array representation of the input data\n *\n * @example\n * ```ts\n * console.log(web3.utils.bytesToUint8Array(\"0xab\")));\n * > Uint8Array(1) [ 171 ]\n * ```\n */\nexport const bytesToUint8Array = (data: Bytes): Uint8Array | never => {\n\tvalidator.validate(['bytes'], [data]);\n\n\tif (isUint8Array(data)) {\n\t\treturn data;\n\t}\n\n\tif (Array.isArray(data)) {\n\t\treturn new Uint8Array(data);\n\t}\n\n\tif (typeof data === 'string') {\n\t\treturn validatorUtils.hexToUint8Array(data);\n\t}\n\n\tthrow new InvalidBytesError(data);\n};\n\n/**\n * @internal\n */\nconst { uint8ArrayToHexString } = validatorUtils;\n\n/**\n * Convert a byte array to a hex string\n * @param bytes - Byte array to be converted\n * @returns - The hex string representation of the input byte array\n *\n * @example\n * ```ts\n * console.log(web3.utils.bytesToHex(new Uint8Array([72, 12])));\n * > \"0x480c\"\n *\n */\nexport const bytesToHex = (bytes: Bytes): HexString =>\n\tuint8ArrayToHexString(bytesToUint8Array(bytes));\n\n/**\n * Convert a hex string to a byte array\n * @param hex - Hex string to be converted\n * @returns - The byte array representation of the input hex string\n *\n * @example\n * ```ts\n * console.log(web3.utils.hexToBytes('0x74657374'));\n * > Uint8Array(4) [ 116, 101, 115, 116 ]\n * ```\n */\nexport const hexToBytes = (bytes: HexString): Uint8Array => {\n\tif (typeof bytes === 'string' && bytes.slice(0, 2).toLowerCase() !== '0x') {\n\t\treturn bytesToUint8Array(`0x${bytes}`);\n\t}\n\treturn bytesToUint8Array(bytes);\n};\n\n/**\n * Converts value to it's number representation\n * @param value - Hex string to be converted\n * @returns - The number representation of the input value\n *\n * @example\n * ```ts\n * conoslle.log(web3.utils.hexToNumber('0xa'));\n * > 10\n * ```\n */\nexport const hexToNumber = (value: HexString): bigint | number => {\n\tvalidator.validate(['hex'], [value]);\n\n\t// To avoid duplicate code and circular dependency we will\n\t// use `hexToNumber` implementation from `web3-validator`\n\treturn validatorUtils.hexToNumber(value);\n};\n\n/**\n * Converts value to it's number representation @alias `hexToNumber`\n */\nexport const toDecimal = hexToNumber;\n\n/**\n * Converts value to it's hex representation\n * @param value - Value to be converted\n * @param hexstrict - Add padding to converted value if odd, to make it hexstrict\n * @returns - The hex representation of the input value\n *\n * @example\n * ```ts\n * console.log(web3.utils.numberToHex(10));\n * > \"0xa\"\n * ```\n */\nexport const numberToHex = (value: Numbers, hexstrict?: boolean): HexString => {\n\tif (typeof value !== 'bigint') validator.validate(['int'], [value]);\n\t// To avoid duplicate code and circular dependency we will\n\t// use `numberToHex` implementation from `web3-validator`\n\tlet updatedValue = validatorUtils.numberToHex(value);\n\tif (hexstrict) {\n\t\tif (!updatedValue.startsWith('-') && updatedValue.length % 2 === 1) {\n\t\t\t// To avoid duplicate a circular dependency we will not be using the padLeft method\n\t\t\tupdatedValue = '0x0'.concat(updatedValue.slice(2));\n\t\t} else if (updatedValue.length % 2 === 0 && updatedValue.startsWith('-'))\n\t\t\tupdatedValue = '-0x0'.concat(updatedValue.slice(3));\n\t}\n\treturn updatedValue;\n};\n/**\n * Converts value to it's hex representation @alias `numberToHex`\n *\n */\nexport const fromDecimal = numberToHex;\n\n/**\n * Converts value to it's decimal representation in string\n * @param value - Hex string to be converted\n * @returns - The decimal representation of the input value\n *\n * @example\n * ```ts\n * console.log(web3.utils.hexToNumberString('0xa'));\n * > \"10\"\n * ```\n */\nexport const hexToNumberString = (data: HexString): string => hexToNumber(data).toString();\n\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string\n * @param str - Utf8 string to be converted\n * @returns - The hex representation of the input string\n *\n * @example\n * ```ts\n * console.log(utf8ToHex('web3.js'));\n * > \"0x776562332e6a73\"\n * ```\n *\n */\nexport const utf8ToHex = (str: string): HexString => {\n\tvalidator.validate(['string'], [str]);\n\n\t// To be compatible with 1.x trim null character\n\t// eslint-disable-next-line no-control-regex\n\tlet strWithoutNullCharacter = str.replace(/^(?:\\u0000)/, '');\n\t// eslint-disable-next-line no-control-regex\n\tstrWithoutNullCharacter = strWithoutNullCharacter.replace(/(?:\\u0000)$/, '');\n\n\treturn bytesToHex(new TextEncoder().encode(strWithoutNullCharacter));\n};\n\n/**\n * @alias utf8ToHex\n */\n\nexport const fromUtf8 = utf8ToHex;\n/**\n * @alias utf8ToHex\n */\nexport const stringToHex = utf8ToHex;\n\n/**\n * Should be called to get utf8 from it's hex representation\n * @param str - Hex string to be converted\n * @returns - Utf8 string\n *\n * @example\n * ```ts\n * console.log(web3.utils.hexToUtf8('0x48656c6c6f20576f726c64'));\n * > Hello World\n * ```\n */\nexport const hexToUtf8 = (str: HexString): string => bytesToUtf8(hexToBytes(str));\n\n/**\n * @alias hexToUtf8\n */\nexport const toUtf8 = (input: HexString | Uint8Array) => {\n\tif (typeof input === 'string') {\n\t\treturn hexToUtf8(input);\n\t}\n\tvalidator.validate(['bytes'], [input]);\n\treturn bytesToUtf8(input);\n};\n\nexport const utf8ToBytes = ecUtf8ToBytes;\n\n/**\n * @alias hexToUtf8\n */\nexport const hexToString = hexToUtf8;\n\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n * @param str - String to be converted to hex\n * @returns - Hex string\n *\n * @example\n * ```ts\n * console.log(web3.utils.asciiToHex('Hello World'));\n * > 0x48656c6c6f20576f726c64\n * ```\n */\nexport const asciiToHex = (str: string): HexString => {\n\tvalidator.validate(['string'], [str]);\n\tlet hexString = '';\n\tfor (let i = 0; i < str.length; i += 1) {\n\t\tconst hexCharCode = str.charCodeAt(i).toString(16);\n\t\t// might need a leading 0\n\t\thexString += hexCharCode.length % 2 !== 0 ? `0${hexCharCode}` : hexCharCode;\n\t}\n\treturn `0x${hexString}`;\n};\n\n/**\n * @alias asciiToHex\n */\nexport const fromAscii = asciiToHex;\n\n/**\n * Should be called to get ascii from it's hex representation\n * @param str - Hex string to be converted to ascii\n * @returns - Ascii string\n *\n * @example\n * ```ts\n * console.log(web3.utils.hexToAscii('0x48656c6c6f20576f726c64'));\n * > Hello World\n * ```\n */\nexport const hexToAscii = (str: HexString): string => {\n\tconst decoder = new TextDecoder('ascii');\n\treturn decoder.decode(hexToBytes(str));\n};\n\n/**\n * @alias hexToAscii\n */\nexport const toAscii = hexToAscii;\n\n/**\n * Auto converts any given value into it's hex representation.\n * @param value - Value to be converted to hex\n * @param returnType - If true, it will return the type of the value\n *\n * @example\n * ```ts\n * console.log(web3.utils.toHex(10));\n * > 0xa\n *\n * console.log(web3.utils.toHex('0x123', true));\n * > bytes\n *```\n */\nexport const toHex = (\n\tvalue: Numbers | Bytes | Address | boolean | object,\n\treturnType?: boolean,\n): HexString | ValueTypes => {\n\tif (typeof value === 'string' && isAddress(value)) {\n\t\treturn returnType ? 'address' : `0x${value.toLowerCase().replace(/^0x/i, '')}`;\n\t}\n\n\tif (typeof value === 'boolean') {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\treturn returnType ? 'bool' : value ? '0x01' : '0x00';\n\t}\n\n\tif (typeof value === 'number') {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\treturn returnType ? (value < 0 ? 'int256' : 'uint256') : numberToHex(value);\n\t}\n\n\tif (typeof value === 'bigint') {\n\t\treturn returnType ? 'bigint' : numberToHex(value);\n\t}\n\n\tif (isUint8Array(value)) {\n\t\treturn returnType ? 'bytes' : bytesToHex(value);\n\t}\n\n\tif (typeof value === 'object' && !!value) {\n\t\treturn returnType ? 'string' : utf8ToHex(JSON.stringify(value));\n\t}\n\n\tif (typeof value === 'string') {\n\t\tif (value.startsWith('-0x') || value.startsWith('-0X')) {\n\t\t\treturn returnType ? 'int256' : numberToHex(value);\n\t\t}\n\n\t\tif (isHexStrict(value)) {\n\t\t\treturn returnType ? 'bytes' : value;\n\t\t}\n\t\tif (isHex(value) && !isInt(value) && !isUInt(value)) {\n\t\t\treturn returnType ? 'bytes' : `0x${value}`;\n\t\t}\n\t\tif (isHex(value) && !isInt(value) && isUInt(value)) {\n\t\t\t// This condition seems problematic because meeting\n\t\t\t// both conditions `!isInt(value) && isUInt(value)` should be impossible.\n\t\t\t// But a value pass for those conditions: \"101611154195520776335741463917853444671577865378275924493376429267637792638729\"\n\t\t\t// Note that according to the docs: it is supposed to be treated as a string (https://docs.web3js.org/guides/web3_upgrade_guide/x/web3_utils_migration_guide#conversion-to-hex)\n\t\t\t// In short, the strange is that isInt(value) is false but isUInt(value) is true for the value above.\n\t\t\t// TODO: isUInt(value) should be investigated.\n\n\t\t\t// However, if `toHex('101611154195520776335741463917853444671577865378275924493376429267637792638729', true)` is called, it will return `true`.\n\t\t\t// But, if `toHex('101611154195520776335741463917853444671577865378275924493376429267637792638729')` is called, it will throw inside `numberToHex`.\n\t\t\treturn returnType ? 'uint' : numberToHex(value);\n\t\t}\n\n\t\tif (!Number.isFinite(value)) {\n\t\t\treturn returnType ? 'string' : utf8ToHex(value);\n\t\t}\n\t}\n\n\tthrow new HexProcessingError(value);\n};\n\n/**\n * Converts any given value into it's number representation, if possible, else into it's bigint representation.\n * @param value - The value to convert\n * @returns - Returns the value in number or bigint representation\n *\n * @example\n * ```ts\n * console.log(web3.utils.toNumber(1));\n * > 1\n * console.log(web3.utils.toNumber(Number.MAX_SAFE_INTEGER));\n * > 9007199254740991\n *\n * console.log(web3.utils.toNumber(BigInt(Number.MAX_SAFE_INTEGER)));\n * > 9007199254740991\n *\n * console.log(web3.utils.toNumber(BigInt(Number.MAX_SAFE_INTEGER) + BigInt(1)));\n * > 9007199254740992n\n *\n * ```\n */\nexport const toNumber = (value: Numbers): number | bigint => {\n\tif (typeof value === 'number') {\n\t\tif (value > 1e20) {\n\t\t\tconsole.warn(PrecisionLossWarning);\n\t\t\t// JavaScript converts numbers >= 10^21 to scientific notation when coerced to strings,\n\t\t\t// leading to potential parsing errors and incorrect representations.\n\t\t\t// For instance, String(10000000000000000000000) yields '1e+22'.\n\t\t\t// Using BigInt prevents this\n\t\t\treturn BigInt(value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tif (typeof value === 'bigint') {\n\t\treturn value >= Number.MIN_SAFE_INTEGER && value <= Number.MAX_SAFE_INTEGER\n\t\t\t? Number(value)\n\t\t\t: value;\n\t}\n\n\tif (typeof value === 'string' && isHexStrict(value)) {\n\t\treturn hexToNumber(value);\n\t}\n\n\ttry {\n\t\treturn toNumber(BigInt(value));\n\t} catch {\n\t\tthrow new InvalidNumberError(value);\n\t}\n};\n\n/**\n * Auto converts any given value into it's bigint representation\n *\n * @param value - The value to convert\n * @returns - Returns the value in bigint representation\n\n * @example\n * ```ts\n * console.log(web3.utils.toBigInt(1));\n * > 1n\n * ```\n */\nexport const toBigInt = (value: unknown): bigint => {\n\tif (typeof value === 'number') {\n\t\treturn BigInt(value);\n\t}\n\n\tif (typeof value === 'bigint') {\n\t\treturn value;\n\t}\n\n\t// isHex passes for dec, too\n\tif (typeof value === 'string' && isHex(value)) {\n\t\tif (value.startsWith('-')) {\n\t\t\treturn -BigInt(value.substring(1));\n\t\t}\n\t\treturn BigInt(value);\n\t}\n\n\tthrow new InvalidNumberError(value);\n};\n\n/**\n * Takes a number of wei and converts it to any other ether unit.\n * @param number - The value in wei\n * @param unit - The unit to convert to\n * @returns - Returns the converted value in the given unit\n *\n * @example\n * ```ts\n * console.log(web3.utils.fromWei(\"1\", \"ether\"));\n * > 0.000000000000000001\n *\n * console.log(web3.utils.fromWei(\"1\", \"shannon\"));\n * > 0.000000001\n * ```\n */\nexport const fromWei = (number: Numbers, unit: EtherUnits | number): string => {\n\tlet denomination;\n\tif (typeof unit === 'string') {\n\t\tdenomination = ethUnitMap[unit];\n\n\t\tif (!denomination) {\n\t\t\tthrow new InvalidUnitError(unit);\n\t\t}\n\t} else {\n\t\tif (unit < 0 || !Number.isInteger(unit)) {\n\t\t\tthrow new InvalidIntegerError(unit);\n\t\t}\n\t\tdenomination = bigintPower(BigInt(10), BigInt(unit));\n\t}\n\n\t// value in wei would always be integer\n\t// 13456789, 1234\n\tconst value = String(toNumber(number));\n\n\t// count number of zeros in denomination\n\t// 1000000 -> 6\n\tconst numberOfZerosInDenomination = denomination.toString().length - 1;\n\n\tif (numberOfZerosInDenomination <= 0) {\n\t\treturn value.toString();\n\t}\n\n\t// pad the value with required zeros\n\t// 13456789 -> 13456789, 1234 -> 001234\n\tconst zeroPaddedValue = value.padStart(numberOfZerosInDenomination, '0');\n\n\t// get the integer part of value by counting number of zeros from start\n\t// 13456789 -> '13'\n\t// 001234 -> ''\n\tconst integer = zeroPaddedValue.slice(0, -numberOfZerosInDenomination);\n\n\t// get the fraction part of value by counting number of zeros backward\n\t// 13456789 -> '456789'\n\t// 001234 -> '001234'\n\tconst fraction = zeroPaddedValue.slice(-numberOfZerosInDenomination).replace(/\\.?0+$/, '');\n\n\tif (integer === '') {\n\t\treturn `0.${fraction}`;\n\t}\n\n\tif (fraction === '') {\n\t\treturn integer;\n\t}\n\tconst updatedValue = `${integer}.${fraction}`;\n\n\treturn updatedValue.slice(0, integer.length + numberOfZerosInDenomination + 1);\n};\n\n/**\n * Takes a number of a unit and converts it to wei.\n *\n * @param number - The number to convert.\n * @param unit - {@link EtherUnits} The unit of the number passed.\n * @returns The number converted to wei.\n *\n * @example\n * ```ts\n * console.log(web3.utils.toWei(\"0.001\", \"ether\"));\n * > 1000000000000000 //(wei)\n * ```\n */\n// todo in 1.x unit defaults to 'ether'\nexport const toWei = (number: Numbers, unit: EtherUnits | number): string => {\n\tvalidator.validate(['number'], [number]);\n\n\tlet denomination;\n\tif (typeof unit === 'string') {\n\t\tdenomination = ethUnitMap[unit];\n\t\tif (!denomination) {\n\t\t\tthrow new InvalidUnitError(unit);\n\t\t}\n\t} else {\n\t\tif (unit < 0 || !Number.isInteger(unit)) {\n\t\t\tthrow new InvalidIntegerError(unit);\n\t\t}\n\n\t\tdenomination = bigintPower(BigInt(10), BigInt(unit));\n\t}\n\n\tlet parsedNumber = number;\n\tif (typeof parsedNumber === 'number') {\n\t\tif (parsedNumber < 1e-15) {\n\t\t\tconsole.warn(PrecisionLossWarning);\n\t\t}\n\t\tif (parsedNumber > 1e20) {\n\t\t\tconsole.warn(PrecisionLossWarning);\n\n\t\t\tparsedNumber = BigInt(parsedNumber);\n\t\t} else {\n\t\t\t// in case there is a decimal point, we need to convert it to string\n\t\t\tparsedNumber = parsedNumber.toLocaleString('fullwide', {\n\t\t\t\tuseGrouping: false,\n\t\t\t\tmaximumFractionDigits: 20,\n\t\t\t});\n\t\t}\n\t}\n\n\t// if value is decimal e.g. 24.56 extract `integer` and `fraction` part\n\t// to avoid `fraction` to be null use `concat` with empty string\n\tconst [integer, fraction] = String(\n\t\ttypeof parsedNumber === 'string' && !isHexStrict(parsedNumber)\n\t\t\t? parsedNumber\n\t\t\t: toNumber(parsedNumber),\n\t)\n\t\t.split('.')\n\t\t.concat('');\n\n\t// join the value removing `.` from\n\t// 24.56 -> 2456\n\tconst value = BigInt(`${integer}${fraction}`);\n\n\t// multiply value with denomination\n\t// 2456 * 1000000 -> 2456000000\n\tconst updatedValue = value * denomination;\n\n\t// check if whole number was passed in\n\tconst decimals = fraction.length;\n\tif (decimals === 0) {\n\t\treturn updatedValue.toString();\n\t}\n\n\t// trim the value to remove extra zeros\n\treturn updatedValue.toString().slice(0, -decimals);\n};\n\n/**\n * Will convert an upper or lowercase Ethereum address to a checksum address.\n * @param address - An address string\n * @returns\tThe checksum address\n * @example\n * ```ts\n * web3.utils.toChecksumAddress('0xc1912fee45d61c87cc5ea59dae31190fffff232d');\n * > \"0xc1912fEE45d61C87Cc5EA59DaE31190FFFFf232d\"\n * ```\n */\nexport const toChecksumAddress = (address: Address): string => {\n\tif (!isAddress(address, false)) {\n\t\tthrow new InvalidAddressError(address);\n\t}\n\n\tconst lowerCaseAddress = address.toLowerCase().replace(/^0x/i, '');\n\n\t// calling `Uint8Array.from` because `noble-hashes` checks with `instanceof Uint8Array` that fails in some edge cases:\n\t// \thttps://github.com/paulmillr/noble-hashes/issues/25#issuecomment-1750106284\n\tconst hash = utils.uint8ArrayToHexString(\n\t\tkeccak256(validatorUtils.ensureIfUint8Array(utf8ToBytes(lowerCaseAddress))),\n\t);\n\n\tif (\n\t\tisNullish(hash) ||\n\t\thash === '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'\n\t)\n\t\treturn ''; // // EIP-1052 if hash is equal to c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470, keccak was given empty data\n\n\tlet checksumAddress = '0x';\n\n\tconst addressHash = hash.replace(/^0x/i, '');\n\n\tfor (let i = 0; i < lowerCaseAddress.length; i += 1) {\n\t\t// If ith character is 8 to f then make it uppercase\n\t\tif (parseInt(addressHash[i], 16) > 7) {\n\t\t\tchecksumAddress += lowerCaseAddress[i].toUpperCase();\n\t\t} else {\n\t\t\tchecksumAddress += lowerCaseAddress[i];\n\t\t}\n\t}\n\treturn checksumAddress;\n};\n\nexport const toBool = (value: boolean | string | number | unknown): boolean => {\n\tif (typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\n\tif (typeof value === 'number' && (value === 0 || value === 1)) {\n\t\treturn Boolean(value);\n\t}\n\n\tif (typeof value === 'bigint' && (value === BigInt(0) || value === BigInt(1))) {\n\t\treturn Boolean(value);\n\t}\n\n\tif (\n\t\ttypeof value === 'string' &&\n\t\t!isHexStrict(value) &&\n\t\t(value === '1' || value === '0' || value === 'false' || value === 'true')\n\t) {\n\t\tif (value === 'true') {\n\t\t\treturn true;\n\t\t}\n\t\tif (value === 'false') {\n\t\t\treturn false;\n\t\t}\n\t\treturn Boolean(Number(value));\n\t}\n\n\tif (typeof value === 'string' && isHexStrict(value) && (value === '0x1' || value === '0x0')) {\n\t\treturn Boolean(toNumber(value));\n\t}\n\n\tthrow new InvalidBooleanError(value);\n};\n","import EventEmitter from './index.js'\n\nexport { EventEmitter }\nexport default EventEmitter\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n/* eslint-disable max-classes-per-file */\n\nimport EventEmitter3 from 'eventemitter3';\n\n/**\n * This class copy the behavior of Node.js EventEmitter class.\n * It is used to provide the same interface for the browser environment.\n */\nexport class EventEmitter extends EventEmitter3 {\n\t// must be defined for backwards compatibility\n\tprivate maxListeners = Number.MAX_SAFE_INTEGER;\n\n\tpublic setMaxListeners(maxListeners: number) {\n\t\tthis.maxListeners = maxListeners;\n\t\treturn this;\n\t}\n\n\tpublic getMaxListeners(): number {\n\t\treturn this.maxListeners;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * @module Utils\n */\n\nimport { InvalidBlockError } from 'web3-errors';\nimport {\n\tcheckAddressCheckSum as checkAddressCheckSumValidator,\n\tisAddress as isAddressValidator,\n\tisBlockTag,\n\tisBloom as isBloomValidator,\n\tisContractAddressInBloom as isContractAddressInBloomValidator,\n\tisHex as isHexValidator,\n\tisHexStrict as isHexStrictValidator,\n\tisInBloom as isInBloomValidator,\n\tisNullish as isNullishValidator,\n\tisTopic as isTopicValidator,\n\tisTopicInBloom as isTopicInBloomValidator,\n\tisUserEthereumAddressInBloom as isUserEthereumAddressInBloomValidator,\n} from 'web3-validator';\nimport { BlockNumberOrTag, BlockTags, ContractInitOptions } from 'web3-types';\n\n/**\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isHexStrict = isHexStrictValidator;\n\n/**\n * returns true if input is a hexstring, number or bigint\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isHex = isHexValidator;\n\n/**\n * Checks the checksum of a given address. Will also return false on non-checksum addresses.\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const checkAddressCheckSum = checkAddressCheckSumValidator;\n\n/**\n * Checks if a given string is a valid Ethereum address. It will also check the checksum, if the address has upper and lowercase letters.\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isAddress = isAddressValidator;\n\n/**\n * Returns true if the bloom is a valid bloom\n * https://github.com/joshstevens19/ethereum-bloom-filters/blob/fbeb47b70b46243c3963fe1c2988d7461ef17236/src/index.ts#L7\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isBloom = isBloomValidator;\n\n/**\n * Returns true if the value is part of the given bloom\n * note: false positives are possible.\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isInBloom = isInBloomValidator;\n\n/**\n * Returns true if the ethereum users address is part of the given bloom note: false positives are possible.\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isUserEthereumAddressInBloom = isUserEthereumAddressInBloomValidator;\n\n/**\n * Returns true if the contract address is part of the given bloom.\n * note: false positives are possible.\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isContractAddressInBloom = isContractAddressInBloomValidator;\n\n/**\n * Checks if its a valid topic\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isTopic = isTopicValidator;\n\n/**\n * Returns true if the topic is part of the given bloom.\n * note: false positives are possible.\n *\n * @deprecated Will be removed in next release. Please use `web3-validator` package instead.\n */\nexport const isTopicInBloom = isTopicInBloomValidator;\n\n/**\n * Compares between block A and block B\n * @param blockA - Block number or string\n * @param blockB - Block number or string\n *\n * @returns - Returns -1 if a \\< b, returns 1 if a \\> b and returns 0 if a == b\n *\n * @example\n * ```ts\n * console.log(web3.utils.compareBlockNumbers('latest', 'pending'));\n * > -1\n *\n * console.log(web3.utils.compareBlockNumbers(12, 11));\n * > 1\n * ```\n */\nexport const compareBlockNumbers = (blockA: BlockNumberOrTag, blockB: BlockNumberOrTag) => {\n\tconst isABlockTag = typeof blockA === 'string' && isBlockTag(blockA);\n\tconst isBBlockTag = typeof blockB === 'string' && isBlockTag(blockB);\n\n\tif (\n\t\tblockA === blockB ||\n\t\t((blockA === 'earliest' || blockA === 0) && (blockB === 'earliest' || blockB === 0)) // only exception compare blocktag with number\n\t) {\n\t\treturn 0;\n\t}\n\tif (blockA === 'earliest' && blockB > 0) {\n\t\treturn -1;\n\t}\n\tif (blockB === 'earliest' && blockA > 0) {\n\t\treturn 1;\n\t}\n\n\tif (isABlockTag && isBBlockTag) {\n\t\t// Increasing order: earliest, finalized , safe, latest, pending\n\t\tconst tagsOrder = {\n\t\t\t[BlockTags.EARLIEST as string]: 1,\n\t\t\t[BlockTags.FINALIZED as string]: 2,\n\t\t\t[BlockTags.SAFE as string]: 3,\n\t\t\t[BlockTags.LATEST as string]: 4,\n\t\t\t[BlockTags.PENDING as string]: 5,\n\t\t};\n\n\t\tif (tagsOrder[blockA] < tagsOrder[blockB]) {\n\t\t\treturn -1;\n\t\t}\n\n\t\treturn 1;\n\t}\n\tif ((isABlockTag && !isBBlockTag) || (!isABlockTag && isBBlockTag)) {\n\t\tthrow new InvalidBlockError('Cannot compare blocktag with provided non-blocktag input.');\n\t}\n\n\tconst bigIntA = BigInt(blockA);\n\tconst bigIntB = BigInt(blockB);\n\n\tif (bigIntA < bigIntB) {\n\t\treturn -1;\n\t}\n\tif (bigIntA === bigIntB) {\n\t\treturn 0;\n\t}\n\treturn 1;\n};\n\nexport const isContractInitOptions = (options: unknown): options is ContractInitOptions =>\n\ttypeof options === 'object' &&\n\t!isNullishValidator(options) &&\n\tObject.keys(options).length !== 0 &&\n\t[\n\t\t'input',\n\t\t'data',\n\t\t'from',\n\t\t'gas',\n\t\t'gasPrice',\n\t\t'gasLimit',\n\t\t'address',\n\t\t'jsonInterface',\n\t\t'syncWithContext',\n\t\t'dataInputFill',\n\t].some(key => key in options);\n\nexport const isNullish = isNullishValidator;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { TypedArray } from 'web3-types';\nimport { isNullish } from 'web3-validator';\n\nconst isIterable = (item: unknown): item is Record<string, unknown> =>\n\ttypeof item === 'object' &&\n\t!isNullish(item) &&\n\t!Array.isArray(item) &&\n\t!(item instanceof TypedArray);\n\n// The following code is a derivative work of the code from the \"LiskHQ/lisk-sdk\" project,\n// which is licensed under Apache version 2.\n/**\n * Deep merge two objects.\n * @param destination - The destination object.\n * @param sources - An array of source objects.\n * @returns - The merged object.\n */\nexport const mergeDeep = (\n\tdestination: Record<string, unknown>,\n\t...sources: Record<string, unknown>[]\n): Record<string, unknown> => {\n\tif (!isIterable(destination)) {\n\t\treturn destination;\n\t}\n\tconst result = { ...destination }; // clone deep here\n\tfor (const src of sources) {\n\t\t// const src = { ..._src };\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tfor (const key in src) {\n\t\t\tif (isIterable(src[key])) {\n\t\t\t\tif (!result[key]) {\n\t\t\t\t\tresult[key] = {};\n\t\t\t\t}\n\t\t\t\tresult[key] = mergeDeep(\n\t\t\t\t\tresult[key] as Record<string, unknown>,\n\t\t\t\t\tsrc[key] as Record<string, unknown>,\n\t\t\t\t);\n\t\t\t} else if (!isNullish(src[key]) && Object.hasOwnProperty.call(src, key)) {\n\t\t\t\tif (Array.isArray(src[key]) || src[key] instanceof TypedArray) {\n\t\t\t\t\tresult[key] = (src[key] as unknown[]).slice(0);\n\t\t\t\t} else {\n\t\t\t\t\tresult[key] = src[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * @module Utils\n */\n\nimport { Numbers } from 'web3-types';\nimport { NibbleWidthError } from 'web3-errors';\nimport { isHexStrict, validator, utils as validatorUtils, bigintPower } from 'web3-validator';\nimport { numberToHex, toHex, toNumber } from './converters.js';\n\n/**\n * Adds a padding on the left of a string, if value is a integer or bigInt will be converted to a hex string.\n * @param value - The value to be padded.\n * @param characterAmount - The amount of characters the string should have.\n * @param sign - The sign to be added (default is 0).\n * @returns The padded string.\n *\n * @example\n * ```ts\n *\n * console.log(web3.utils.padLeft('0x123', 10));\n * >0x0000000123\n * ```\n */\nexport const padLeft = (value: Numbers, characterAmount: number, sign = '0'): string => {\n\t// To avoid duplicate code and circular dependency we will\n\t// use `padLeft` implementation from `web3-validator`\n\n\tif (typeof value === 'string') {\n\t\tif (!isHexStrict(value)) {\n\t\t\treturn value.padStart(characterAmount, sign);\n\t\t}\n\t\treturn validatorUtils.padLeft(value, characterAmount, sign);\n\t}\n\n\tvalidator.validate(['int'], [value]);\n\n\treturn validatorUtils.padLeft(value, characterAmount, sign);\n};\n\n/**\n * Adds a padding on the right of a string, if value is a integer or bigInt will be converted to a hex string.\n * @param value - The value to be padded.\n * @param characterAmount - The amount of characters the string should have.\n * @param sign - The sign to be added (default is 0).\n * @returns The padded string.\n *\n * @example\n * ```ts\n * console.log(web3.utils.padRight('0x123', 10));\n * > 0x1230000000\n *\n * console.log(web3.utils.padRight('0x123', 10, '1'));\n * > 0x1231111111\n * ```\n */\nexport const padRight = (value: Numbers, characterAmount: number, sign = '0'): string => {\n\tif (typeof value === 'string' && !isHexStrict(value)) {\n\t\treturn value.padEnd(characterAmount, sign);\n\t}\n\n\tvalidator.validate(['int'], [value]);\n\n\tconst hexString = typeof value === 'string' && isHexStrict(value) ? value : numberToHex(value);\n\n\tconst prefixLength = hexString.startsWith('-') ? 3 : 2;\n\treturn hexString.padEnd(characterAmount + prefixLength, sign);\n};\n\n/**\n * Adds a padding on the right of a string, if value is a integer or bigInt will be converted to a hex string. @alias `padRight`\n */\nexport const rightPad = padRight;\n\n/**\n * Adds a padding on the left of a string, if value is a integer or bigInt will be converted to a hex string. @alias `padLeft`\n */\nexport const leftPad = padLeft;\n\n/**\n * Converts a negative number into the two’s complement and return a hexstring of 64 nibbles.\n * @param value - The value to be converted.\n * @param nibbleWidth - The nibble width of the hex string (default is 64).\n *\n * @returns The hex string of the two’s complement.\n *\n * @example\n * ```ts\n * console.log(web3.utils.toTwosComplement(13, 32));\n * > 0x0000000000000000000000000000000d\n *\n * console.log(web3.utils.toTwosComplement('-0x1', 32));\n * > 0xffffffffffffffffffffffffffffffff\n *\n * console.log(web3.utils.toTwosComplement(BigInt('9007199254740992'), 32));\n * > 0x00000000000000000020000000000000\n * ```\n */\nexport const toTwosComplement = (value: Numbers, nibbleWidth = 64): string => {\n\tvalidator.validate(['int'], [value]);\n\n\tconst val = toNumber(value);\n\n\tif (val >= 0) return padLeft(toHex(val), nibbleWidth);\n\n\tconst largestBit = bigintPower(BigInt(2), BigInt(nibbleWidth * 4));\n\tif (-val >= largestBit) {\n\t\tthrow new NibbleWidthError(`value: ${value}, nibbleWidth: ${nibbleWidth}`);\n\t}\n\tconst updatedVal = BigInt(val);\n\n\tconst complement = updatedVal + largestBit;\n\n\treturn padLeft(numberToHex(complement), nibbleWidth);\n};\n\n/**\n * Converts the twos complement into a decimal number or big int.\n * @param value - The value to be converted.\n * @param nibbleWidth - The nibble width of the hex string (default is 64).\n * @returns The decimal number or big int.\n *\n * @example\n * ```ts\n * console.log(web3.utils.fromTwosComplement('0x0000000000000000000000000000000d', 32'));\n * > 13\n *\n * console.log(web3.utils.fromTwosComplement('0x00000000000000000020000000000000', 32));\n * > 9007199254740992n\n * ```\n */\nexport const fromTwosComplement = (value: Numbers, nibbleWidth = 64): number | bigint => {\n\tvalidator.validate(['int'], [value]);\n\n\tconst val = toNumber(value);\n\n\tif (val < 0) return val;\n\n\tconst largestBit = Math.ceil(Math.log(Number(val)) / Math.log(2));\n\n\tif (largestBit > nibbleWidth * 4)\n\t\tthrow new NibbleWidthError(`value: \"${value}\", nibbleWidth: \"${nibbleWidth}\"`);\n\n\t// check the largest bit to see if negative\n\tif (nibbleWidth * 4 !== largestBit) return val;\n\n\tconst complement = bigintPower(BigInt(2), BigInt(nibbleWidth) * BigInt(4));\n\n\treturn toNumber(BigInt(val) - complement);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { FormatterError } from 'web3-errors';\nimport {\n\tBytes,\n\tDataFormat,\n\tFMT_BYTES,\n\tFMT_NUMBER,\n\tFormatType,\n\tDEFAULT_RETURN_FORMAT,\n} from 'web3-types';\nimport { isNullish, isObject, JsonSchema, utils, ValidationSchemaInput } from 'web3-validator';\nimport { bytesToUint8Array, bytesToHex, numberToHex, toBigInt } from './converters.js';\nimport { mergeDeep } from './objects.js';\nimport { padLeft } from './string_manipulation.js';\nimport { isUint8Array, uint8ArrayConcat } from './uint8array.js';\n\nconst { parseBaseType } = utils;\n\nexport const isDataFormat = (dataFormat: unknown): dataFormat is DataFormat =>\n\ttypeof dataFormat === 'object' &&\n\t!isNullish(dataFormat) &&\n\t'number' in dataFormat &&\n\t'bytes' in dataFormat;\n\n/**\n * Finds the schema that corresponds to a specific data path within a larger JSON schema.\n * It works by iterating over the dataPath array and traversing the JSON schema one step at a time until it reaches the end of the path.\n *\n * @param schema - represents a JSON schema, which is an object that describes the structure of JSON data\n * @param dataPath - represents an array of strings that specifies the path to the data within the JSON schema\n * @param oneOfPath - represents an optional array of two-element tuples that specifies the \"oneOf\" option to choose, if the schema has oneOf and the data path can match multiple subschemas\n * @returns the JSON schema that matches the data path\n *\n */\nconst findSchemaByDataPath = (\n\tschema: JsonSchema,\n\tdataPath: string[],\n\toneOfPath: [string, number][] = [],\n): JsonSchema | undefined => {\n\tlet result: JsonSchema = { ...schema } as JsonSchema;\n\tlet previousDataPath: string | undefined;\n\n\tfor (const dataPart of dataPath) {\n\t\tif (result.oneOf && previousDataPath) {\n\t\t\tconst currentDataPath = previousDataPath;\n\t\t\tconst path = oneOfPath.find(([key]) => key === currentDataPath);\n\t\t\tif (path && path[0] === previousDataPath) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\t\t\tresult = result.oneOf[path[1]];\n\t\t\t}\n\t\t}\n\t\tif (!result.properties && !result.items) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tif (result.properties) {\n\t\t\tresult = (result.properties as Record<string, JsonSchema>)[dataPart];\n\t\t} else if (result.items && (result.items as JsonSchema).properties) {\n\t\t\tconst node = (result.items as JsonSchema).properties as Record<string, JsonSchema>;\n\n\t\t\tresult = node[dataPart];\n\t\t} else if (result.items && isObject(result.items)) {\n\t\t\tresult = result.items;\n\t\t} else if (result.items && Array.isArray(result.items)) {\n\t\t\tresult = result.items[parseInt(dataPart, 10)];\n\t\t}\n\n\t\tif (result && dataPart) previousDataPath = dataPart;\n\t}\n\n\treturn result;\n};\n/**\n * Converts a value depending on the format\n * @param value - value to convert\n * @param ethType - The type of the value to be parsed\n * @param format - The format to be converted to\n * @returns - The value converted to the specified format\n */\nexport const convertScalarValue = (value: unknown, ethType: string, format: DataFormat) => {\n\ttry {\n\t\tconst { baseType, baseTypeSize } = parseBaseType(ethType);\n\t\tif (baseType === 'int' || baseType === 'uint') {\n\t\t\tswitch (format.number) {\n\t\t\t\tcase FMT_NUMBER.NUMBER:\n\t\t\t\t\treturn Number(toBigInt(value));\n\t\t\t\tcase FMT_NUMBER.HEX:\n\t\t\t\t\treturn numberToHex(toBigInt(value));\n\t\t\t\tcase FMT_NUMBER.STR:\n\t\t\t\t\treturn toBigInt(value).toString();\n\t\t\t\tcase FMT_NUMBER.BIGINT:\n\t\t\t\t\treturn toBigInt(value);\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new FormatterError(`Invalid format: ${String(format.number)}`);\n\t\t\t}\n\t\t}\n\t\tif (baseType === 'bytes') {\n\t\t\tlet paddedValue;\n\t\t\tif (baseTypeSize) {\n\t\t\t\tif (typeof value === 'string') paddedValue = padLeft(value, baseTypeSize * 2);\n\t\t\t\telse if (isUint8Array(value)) {\n\t\t\t\t\tpaddedValue = uint8ArrayConcat(\n\t\t\t\t\t\tnew Uint8Array(baseTypeSize - value.length),\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpaddedValue = value;\n\t\t\t}\n\t\t\tswitch (format.bytes) {\n\t\t\t\tcase FMT_BYTES.HEX:\n\t\t\t\t\treturn bytesToHex(bytesToUint8Array(paddedValue as Bytes));\n\t\t\t\tcase FMT_BYTES.UINT8ARRAY:\n\t\t\t\t\treturn bytesToUint8Array(paddedValue as Bytes);\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new FormatterError(`Invalid format: ${String(format.bytes)}`);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\t// If someone didn't use `eth` keyword we can return original value\n\t\t// as the scope of this code is formatting not validation\n\t\treturn value;\n\t}\n\n\treturn value;\n};\n\nconst convertArray = ({\n\tvalue,\n\tschemaProp,\n\tschema,\n\tobject,\n\tkey,\n\tdataPath,\n\tformat,\n\toneOfPath = [],\n}: {\n\tvalue: unknown;\n\tschemaProp: JsonSchema;\n\tschema: JsonSchema;\n\tobject: Record<string, unknown>;\n\tkey: string;\n\tdataPath: string[];\n\tformat: DataFormat;\n\toneOfPath: [string, number][];\n}) => {\n\t// If value is an array\n\tif (Array.isArray(value)) {\n\t\tlet _schemaProp = schemaProp;\n\n\t\t// TODO This is a naive approach to solving the issue of\n\t\t// a schema using oneOf. This chunk of code was intended to handle\n\t\t// BlockSchema.transactions\n\t\t// TODO BlockSchema.transactions are not being formatted\n\t\tif (schemaProp?.oneOf !== undefined) {\n\t\t\t// The following code is basically saying:\n\t\t\t// if the schema specifies oneOf, then we are to loop\n\t\t\t// over each possible schema and check if they type of the schema\n\t\t\t// matches the type of value[0], and if so we use the oneOfSchemaProp\n\t\t\t// as the schema for formatting\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n\t\t\tschemaProp.oneOf.forEach((oneOfSchemaProp: JsonSchema, index: number) => {\n\t\t\t\tif (\n\t\t\t\t\t!Array.isArray(schemaProp?.items) &&\n\t\t\t\t\t((typeof value[0] === 'object' &&\n\t\t\t\t\t\t(oneOfSchemaProp?.items as JsonSchema)?.type === 'object') ||\n\t\t\t\t\t\t(typeof value[0] === 'string' &&\n\t\t\t\t\t\t\t(oneOfSchemaProp?.items as JsonSchema)?.type !== 'object'))\n\t\t\t\t) {\n\t\t\t\t\t_schemaProp = oneOfSchemaProp;\n\t\t\t\t\toneOfPath.push([key, index]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (isNullish(_schemaProp?.items)) {\n\t\t\t// Can not find schema for array item, delete that item\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tdelete object[key];\n\t\t\tdataPath.pop();\n\n\t\t\treturn true;\n\t\t}\n\n\t\t// If schema for array items is a single type\n\t\tif (isObject(_schemaProp.items) && !isNullish(_schemaProp.items.format)) {\n\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t(object[key] as unknown[])[i] = convertScalarValue(\n\t\t\t\t\tvalue[i],\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\t\t\t_schemaProp?.items?.format,\n\t\t\t\t\tformat,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdataPath.pop();\n\t\t\treturn true;\n\t\t}\n\n\t\t// If schema for array items is an object\n\t\tif (!Array.isArray(_schemaProp?.items) && _schemaProp?.items?.type === 'object') {\n\t\t\tfor (const arrObject of value) {\n\t\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\t\tconvert(\n\t\t\t\t\tarrObject as Record<string, unknown> | unknown[],\n\t\t\t\t\tschema,\n\t\t\t\t\tdataPath,\n\t\t\t\t\tformat,\n\t\t\t\t\toneOfPath,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdataPath.pop();\n\t\t\treturn true;\n\t\t}\n\n\t\t// If schema for array is a tuple\n\t\tif (Array.isArray(_schemaProp?.items)) {\n\t\t\tfor (let i = 0; i < value.length; i += 1) {\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\t(object[key] as unknown[])[i] = convertScalarValue(\n\t\t\t\t\tvalue[i],\n\t\t\t\t\t_schemaProp.items[i].format as string,\n\t\t\t\t\tformat,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdataPath.pop();\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/**\n * Converts the data to the specified format\n * @param data - data to convert\n * @param schema - The JSON schema that describes the structure of the data\n * @param dataPath - A string array that specifies the path to the data within the JSON schema\n * @param format - The format to be converted to\n * @param oneOfPath - An optional array of two-element tuples that specifies the \"oneOf\" option to choose, if the schema has oneOf and the data path can match multiple subschemas\n * @returns - The data converted to the specified format\n */\nexport const convert = (\n\tdata: Record<string, unknown> | unknown[] | unknown,\n\tschema: JsonSchema,\n\tdataPath: string[],\n\tformat: DataFormat,\n\toneOfPath: [string, number][] = [],\n) => {\n\t// If it's a scalar value\n\tif (!isObject(data) && !Array.isArray(data)) {\n\t\treturn convertScalarValue(data, schema?.format as string, format);\n\t}\n\n\tconst object = data as Record<string, unknown>;\n\t// case when schema is array and `items` is object\n\tif (\n\t\tArray.isArray(object) &&\n\t\tschema?.type === 'array' &&\n\t\t(schema?.items as JsonSchema)?.type === 'object'\n\t) {\n\t\tconvertArray({\n\t\t\tvalue: object,\n\t\t\tschemaProp: schema,\n\t\t\tschema,\n\t\t\tobject,\n\t\t\tkey: '',\n\t\t\tdataPath,\n\t\t\tformat,\n\t\t\toneOfPath,\n\t\t});\n\t} else {\n\t\tfor (const [key, value] of Object.entries(object)) {\n\t\t\tdataPath.push(key);\n\t\t\tconst schemaProp = findSchemaByDataPath(schema, dataPath, oneOfPath);\n\n\t\t\t// If value is a scaler value\n\t\t\tif (isNullish(schemaProp)) {\n\t\t\t\tdelete object[key];\n\t\t\t\tdataPath.pop();\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If value is an object, recurse into it\n\t\t\tif (isObject(value)) {\n\t\t\t\tconvert(value, schema, dataPath, format, oneOfPath);\n\t\t\t\tdataPath.pop();\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If value is an array\n\t\t\tif (\n\t\t\t\tconvertArray({\n\t\t\t\t\tvalue,\n\t\t\t\t\tschemaProp,\n\t\t\t\t\tschema,\n\t\t\t\t\tobject,\n\t\t\t\t\tkey,\n\t\t\t\t\tdataPath,\n\t\t\t\t\tformat,\n\t\t\t\t\toneOfPath,\n\t\t\t\t})\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tobject[key] = convertScalarValue(value, schemaProp.format as string, format);\n\n\t\t\tdataPath.pop();\n\t\t}\n\t}\n\n\treturn object;\n};\n\nexport const format = <\n\tDataType extends Record<string, unknown> | unknown[] | unknown,\n\tReturnType extends DataFormat,\n>(\n\tschema: ValidationSchemaInput | JsonSchema,\n\tdata: DataType,\n\treturnFormat: ReturnType = DEFAULT_RETURN_FORMAT as ReturnType,\n): FormatType<DataType, ReturnType> => {\n\tlet dataToParse: Record<string, unknown> | unknown[] | unknown;\n\n\tif (isObject(data)) {\n\t\tdataToParse = mergeDeep({}, data);\n\t} else if (Array.isArray(data)) {\n\t\tdataToParse = [...data];\n\t} else {\n\t\tdataToParse = data;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\tconst jsonSchema: JsonSchema = isObject(schema) ? schema : utils.ethAbiToJsonSchema(schema);\n\n\tif (!jsonSchema.properties && !jsonSchema.items && !jsonSchema.format) {\n\t\tthrow new FormatterError('Invalid json schema for formatting');\n\t}\n\n\treturn convert(dataToParse, jsonSchema, [], returnFormat) as FormatType<\n\t\ttypeof data,\n\t\tReturnType\n\t>;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * This package provides utility functions for Ethereum dapps and other web3.js packages.\n *\n * For using Utils functions, first install Web3 package using `npm i web3` or `yarn add web3`.\n * After that, Web3 Utils functions will be available as mentioned below.\n * ```ts\n * import { Web3 } from 'web3';\n * const web3 = new Web3();\n *\n * const value = web3.utils.fromWei(\"1\", \"ether\")\n *\n * ```\n *\n * For using individual package install `web3-utils` package using `npm i web3-utils` or `yarn add web3-utils` and only import required functions.\n * This is more efficient approach for building lightweight applications.\n * ```ts\n * import { fromWei, soliditySha3Raw } from 'web3-utils';\n *\n * console.log(fromWei(\"1\", \"ether\"));\n * console.log(soliditySha3Raw({ type: \"string\", value: \"helloworld\" }))\n *\n * ```\n * @module Utils\n */\n\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { utf8ToBytes } from 'ethereum-cryptography/utils.js';\nimport {\n\tInvalidAddressError,\n\tInvalidBooleanError,\n\tInvalidBytesError,\n\tInvalidLargeValueError,\n\tInvalidSizeError,\n\tInvalidStringError,\n\tInvalidUnsignedIntegerError,\n} from 'web3-errors';\nimport {\n\tBytes,\n\tEncodingTypes,\n\tNumbers,\n\tSha3Input,\n\tTypedObject,\n\tTypedObjectAbbreviated,\n} from 'web3-types';\nimport { utils as validatorUtils, isAddress, isNullish, isHexStrict } from 'web3-validator';\nimport {\n\tbytesToUint8Array,\n\tbytesToHex,\n\thexToBytes,\n\ttoBigInt,\n\ttoHex,\n\ttoNumber,\n\tutf8ToHex,\n} from './converters.js';\nimport { leftPad, rightPad, toTwosComplement } from './string_manipulation.js';\n\nconst SHA3_EMPTY_BYTES = '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\n\n/**\n * A wrapper for ethereum-cryptography/keccak256 to allow hashing a `string` and a `bigint` in addition to `UInt8Array`\n * @param data - the input to hash\n * @returns - the Keccak-256 hash of the input\n *\n * @example\n * ```ts\n * console.log(web3.utils.keccak256Wrapper('web3.js'));\n * > 0x63667efb1961039c9bb0d6ea7a5abdd223a3aca7daa5044ad894226e1f83919a\n *\n * console.log(web3.utils.keccak256Wrapper(1));\n * > 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6\n *\n * console.log(web3.utils.keccak256Wrapper(0xaf12fd));\n * > 0x358640fd4719fa923525d74ab5ae80a594301aba5543e3492b052bf4598b794c\n * ```\n */\nexport const keccak256Wrapper = (\n\tdata: Bytes | Numbers | string | ReadonlyArray<number>,\n): string => {\n\tlet processedData;\n\tif (typeof data === 'bigint' || typeof data === 'number') {\n\t\tprocessedData = utf8ToBytes(data.toString());\n\t} else if (Array.isArray(data)) {\n\t\tprocessedData = new Uint8Array(data);\n\t} else if (typeof data === 'string' && !isHexStrict(data)) {\n\t\tprocessedData = utf8ToBytes(data);\n\t} else {\n\t\tprocessedData = bytesToUint8Array(data as Bytes);\n\t}\n\treturn bytesToHex(keccak256(validatorUtils.ensureIfUint8Array(processedData)));\n};\n\nexport { keccak256Wrapper as keccak256 };\n\n/**\n * computes the Keccak-256 hash of the input and returns a hexstring\n * @param data - the input to hash\n * @returns - the Keccak-256 hash of the input\n *\n * @example\n * ```ts\n * console.log(web3.utils.sha3('web3.js'));\n * > 0x63667efb1961039c9bb0d6ea7a5abdd223a3aca7daa5044ad894226e1f83919a\n *\n * console.log(web3.utils.sha3(''));\n * > undefined\n * ```\n */\nexport const sha3 = (data: Bytes): string | undefined => {\n\tlet updatedData: Uint8Array;\n\n\tif (typeof data === 'string') {\n\t\tif (data.startsWith('0x') && isHexStrict(data)) {\n\t\t\tupdatedData = hexToBytes(data);\n\t\t} else {\n\t\t\tupdatedData = utf8ToBytes(data);\n\t\t}\n\t} else {\n\t\tupdatedData = data;\n\t}\n\tconst hash = keccak256Wrapper(updatedData);\n\n\t// EIP-1052 if hash is equal to c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470, keccak was given empty data\n\treturn hash === SHA3_EMPTY_BYTES ? undefined : hash;\n};\n\n/**\n * Will calculate the sha3 of the input but does return the hash value instead of null if for example a empty string is passed.\n * @param data - the input to hash\n * @returns - the Keccak-256 hash of the input\n *\n * @example\n * ```ts\n * conosle.log(web3.utils.sha3Raw('web3.js'));\n * > 0x63667efb1961039c9bb0d6ea7a5abdd223a3aca7daa5044ad894226e1f83919a\n *\n * console.log(web3.utils.sha3Raw(''));\n * > 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\n * ```\n */\nexport const sha3Raw = (data: Bytes): string => {\n\tconst hash = sha3(data);\n\tif (isNullish(hash)) {\n\t\treturn SHA3_EMPTY_BYTES;\n\t}\n\n\treturn hash;\n};\n\n/**\n * returns type and value\n * @param arg - the input to return the type and value\n * @returns - the type and value of the input\n */\nconst getType = (arg: Sha3Input): [string, EncodingTypes] => {\n\tif (Array.isArray(arg)) {\n\t\tthrow new Error('Autodetection of array types is not supported.');\n\t}\n\tlet type;\n\tlet value;\n\t// if type is given\n\tif (\n\t\ttypeof arg === 'object' &&\n\t\t('t' in arg || 'type' in arg) &&\n\t\t('v' in arg || 'value' in arg)\n\t) {\n\t\ttype = 't' in arg ? arg.t : arg.type;\n\t\tvalue = 'v' in arg ? arg.v : arg.value;\n\n\t\ttype = type.toLowerCase() === 'bigint' ? 'int' : type;\n\t} else if (typeof arg === 'bigint') {\n\t\treturn ['int', arg];\n\t}\n\t// otherwise try to guess the type\n\telse {\n\t\ttype = toHex(arg, true);\n\t\tvalue = toHex(arg);\n\n\t\tif (!type.startsWith('int') && !type.startsWith('uint')) {\n\t\t\ttype = 'bytes';\n\t\t}\n\t}\n\n\tif (\n\t\t(type.startsWith('int') || type.startsWith('uint')) &&\n\t\ttypeof value === 'string' &&\n\t\t!/^(-)?0x/i.test(value)\n\t) {\n\t\tvalue = toBigInt(value);\n\t}\n\treturn [type, value];\n};\n\n/**\n * returns the type with size if uint or int\n * @param name - the input to return the type with size\n * @returns - the type with size of the input\n */\nconst elementaryName = (name: string): string => {\n\tif (name.startsWith('int[')) {\n\t\treturn `int256${name.slice(3)}`;\n\t}\n\tif (name === 'int') {\n\t\treturn 'int256';\n\t}\n\tif (name.startsWith('uint[')) {\n\t\treturn `uint256'${name.slice(4)}`;\n\t}\n\tif (name === 'uint') {\n\t\treturn 'uint256';\n\t}\n\treturn name;\n};\n\n/**\n * returns the size of the value of type 'byte'\n */\nconst parseTypeN = (value: string, typeLength: number): number => {\n\tconst typesize = /^(\\d+).*$/.exec(value.slice(typeLength));\n\treturn typesize ? parseInt(typesize[1], 10) : 0;\n};\n\n/**\n * returns the bit length of the value\n * @param value - the input to return the bit length\n * @returns - the bit length of the input\n */\nconst bitLength = (value: bigint | number): number => {\n\tconst updatedVal = value.toString(2);\n\treturn updatedVal.length;\n};\n\n/**\n * Pads the value based on size and type\n * returns a string of the padded value\n * @param type - the input to pad\n * @returns = the padded value\n */\nconst solidityPack = (type: string, val: EncodingTypes): string => {\n\tconst value = val.toString();\n\tif (type === 'string') {\n\t\tif (typeof val === 'string') return utf8ToHex(val);\n\t\tthrow new InvalidStringError(val);\n\t}\n\tif (type === 'bool' || type === 'boolean') {\n\t\tif (typeof val === 'boolean') return val ? '01' : '00';\n\t\tthrow new InvalidBooleanError(val);\n\t}\n\n\tif (type === 'address') {\n\t\tif (!isAddress(value)) {\n\t\t\tthrow new InvalidAddressError(value);\n\t\t}\n\t\treturn value;\n\t}\n\tconst name = elementaryName(type);\n\tif (type.startsWith('uint')) {\n\t\tconst size = parseTypeN(name, 'uint'.length);\n\n\t\tif (size % 8 || size < 8 || size > 256) {\n\t\t\tthrow new InvalidSizeError(value);\n\t\t}\n\t\tconst num = toNumber(value);\n\t\tif (bitLength(num) > size) {\n\t\t\tthrow new InvalidLargeValueError(value);\n\t\t}\n\t\tif (num < BigInt(0)) {\n\t\t\tthrow new InvalidUnsignedIntegerError(value);\n\t\t}\n\n\t\treturn size ? leftPad(num.toString(16), (size / 8) * 2) : num.toString(16);\n\t}\n\n\tif (type.startsWith('int')) {\n\t\tconst size = parseTypeN(name, 'int'.length);\n\t\tif (size % 8 || size < 8 || size > 256) {\n\t\t\tthrow new InvalidSizeError(type);\n\t\t}\n\n\t\tconst num = toNumber(value);\n\t\tif (bitLength(num) > size) {\n\t\t\tthrow new InvalidLargeValueError(value);\n\t\t}\n\t\tif (num < BigInt(0)) {\n\t\t\treturn toTwosComplement(num.toString(), (size / 8) * 2);\n\t\t}\n\t\treturn size ? leftPad(num.toString(16), size / 4) : num.toString(16);\n\t}\n\n\tif (name === 'bytes') {\n\t\tif (value.replace(/^0x/i, '').length % 2 !== 0) {\n\t\t\tthrow new InvalidBytesError(value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tif (type.startsWith('bytes')) {\n\t\tif (value.replace(/^0x/i, '').length % 2 !== 0) {\n\t\t\tthrow new InvalidBytesError(value);\n\t\t}\n\n\t\tconst size = parseTypeN(type, 'bytes'.length);\n\n\t\tif (!size || size < 1 || size > 64 || size < value.replace(/^0x/i, '').length / 2) {\n\t\t\tthrow new InvalidBytesError(value);\n\t\t}\n\n\t\treturn rightPad(value, size * 2);\n\t}\n\treturn '';\n};\n\n/**\n * returns a string of the tightly packed value given based on the type\n * @param arg - the input to return the tightly packed value\n * @returns - the tightly packed value\n */\nexport const processSolidityEncodePackedArgs = (arg: Sha3Input): string => {\n\tconst [type, val] = getType(arg);\n\n\t// array case\n\tif (Array.isArray(val)) {\n\t\t// go through each element of the array and use map function to create new hexarg list\n\t\tconst hexArg = val.map((v: Numbers | boolean) => solidityPack(type, v).replace('0x', ''));\n\t\treturn hexArg.join('');\n\t}\n\n\tconst hexArg = solidityPack(type, val);\n\treturn hexArg.replace('0x', '');\n};\n\n/**\n * Encode packed arguments to a hexstring\n */\nexport const encodePacked = (...values: Sha3Input[]): string => {\n\tconst hexArgs = values.map(processSolidityEncodePackedArgs);\n\treturn `0x${hexArgs.join('').toLowerCase()}`;\n};\n\n/**\n * Will tightly pack values given in the same way solidity would then hash.\n * returns a hash string, or null if input is empty\n * @param values - the input to return the tightly packed values\n * @returns - the keccack246 of the tightly packed values\n *\n * @example\n * ```ts\n * console.log(web3.utils.soliditySha3({ type: \"string\", value: \"31323334\" }));\n * > 0xf15f8da2ad27e486d632dc37d24912f634398918d6f9913a0a0ff84e388be62b\n * ```\n */\nexport const soliditySha3 = (...values: Sha3Input[]): string | undefined =>\n\tsha3(encodePacked(...values));\n\n/**\n * Will tightly pack values given in the same way solidity would then hash.\n * returns a hash string, if input is empty will return `0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470`\n * @param values - the input to return the tightly packed values\n * @returns - the keccack246 of the tightly packed values\n *\n * @example\n * ```ts\n * console.log(web3.utils.soliditySha3Raw({ type: \"string\", value: \"helloworld\" }))\n * > 0xfa26db7ca85ead399216e7c6316bc50ed24393c3122b582735e7f3b0f91b93f0\n * ```\n */\nexport const soliditySha3Raw = (...values: TypedObject[] | TypedObjectAbbreviated[]): string =>\n\tsha3Raw(encodePacked(...values));\n\n/**\n * Get slot number for storage long string in contract. Basically for getStorage method\n * returns slotNumber where will data placed\n * @param mainSlotNumber - the slot number where will be stored hash of long string\n * @returns - the slot number where will be stored long string\n */\nexport const getStorageSlotNumForLongString = (mainSlotNumber: number | string) =>\n\tsha3(\n\t\t`0x${(typeof mainSlotNumber === 'number'\n\t\t\t? mainSlotNumber.toString()\n\t\t\t: mainSlotNumber\n\t\t).padStart(64, '0')}`,\n\t);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * @module Utils\n */\n\nimport { getRandomBytesSync } from 'ethereum-cryptography/random.js';\nimport { bytesToHex } from './converters.js';\n\n/**\n * Returns a random byte array by the given bytes size\n * @param size - The size of the random byte array returned\n * @returns - random byte array\n *\n * @example\n * ```ts\n * console.log(web3.utils.randomBytes(32));\n * > Uint8Array(32) [\n * 93, 172, 226, 32, 33, 176, 156, 156,\n * 182, 30, 240, 2, 69, 96, 174, 197,\n * 33, 136, 194, 241, 197, 156, 110, 111,\n * 66, 87, 17, 88, 67, 48, 245, 183\n * ]\n * ```\n */\nexport const randomBytes = (size: number): Uint8Array => getRandomBytesSync(size);\n\n/**\n * Returns a random hex string by the given bytes size\n * @param byteSize - The size of the random hex string returned\n * @returns - random hex string\n *\n * ```ts\n * console.log(web3.utils.randomHex(32));\n * > 0x139f5b88b72a25eab053d3b57fe1f8a9dbc62a526b1cb1774d0d7db1c3e7ce9e\n * ```\n */\nexport const randomHex = (byteSize: number): string => bytesToHex(randomBytes(byteSize));\n","import { randomBytes } from \"@noble/hashes/utils\";\nexport function getRandomBytesSync(bytes) {\n return randomBytes(bytes);\n}\nexport async function getRandomBytes(bytes) {\n return randomBytes(bytes);\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { isNullish } from 'web3-validator';\n\nexport type Timer = ReturnType<typeof setInterval>;\nexport type Timeout = ReturnType<typeof setTimeout>;\n\n/**\n * An alternative to the node function `isPromise` that exists in `util/types` because it is not available on the browser.\n * @param object - to check if it is a `Promise`\n * @returns `true` if it is an `object` or a `function` that has a `then` function. And returns `false` otherwise.\n */\nexport function isPromise(object: unknown): boolean {\n\treturn (\n\t\t(typeof object === 'object' || typeof object === 'function') &&\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\ttypeof (object as { then: unknown }).then === 'function'\n\t);\n}\n\nexport type AsyncFunction<T, K = unknown> = (...args: K[]) => Promise<T>;\n\nexport function waitWithTimeout<T>(\n\tawaitable: Promise<T> | AsyncFunction<T>,\n\ttimeout: number,\n\terror: Error,\n): Promise<T>;\nexport function waitWithTimeout<T>(\n\tawaitable: Promise<T> | AsyncFunction<T>,\n\ttimeout: number,\n): Promise<T | undefined>;\n\n/**\n * Wait for a promise but interrupt it if it did not resolve within a given timeout.\n * If the timeout reached, before the promise code resolve, either throw an error if an error object was provided, or return `undefined`.\n * @param awaitable - The promise or function to wait for.\n * @param timeout - The timeout in milliseconds.\n * @param error - (Optional) The error to throw if the timeout reached.\n */\nexport async function waitWithTimeout<T>(\n\tawaitable: Promise<T> | AsyncFunction<T>,\n\ttimeout: number,\n\terror?: Error,\n): Promise<T | undefined> {\n\tlet timeoutId: Timeout | undefined;\n\tconst result = await Promise.race([\n\t\tawaitable instanceof Promise ? awaitable : awaitable(),\n\t\tnew Promise<undefined | Error>((resolve, reject) => {\n\t\t\ttimeoutId = setTimeout(() => (error ? reject(error) : resolve(undefined)), timeout);\n\t\t}),\n\t]);\n\tif (timeoutId) {\n\t\tclearTimeout(timeoutId);\n\t}\n\tif (result instanceof Error) {\n\t\tthrow result;\n\t}\n\treturn result;\n}\n\n/**\n * Repeatedly calls an async function with a given interval until the result of the function is defined (not undefined or null),\n * or until a timeout is reached. It returns promise and intervalId.\n * @param func - The function to call.\n * @param interval - The interval in milliseconds.\n */\nexport function pollTillDefinedAndReturnIntervalId<T>(\n\tfunc: AsyncFunction<T>,\n\tinterval: number,\n): [Promise<Exclude<T, undefined>>, Timer] {\n\tlet intervalId: Timer | undefined;\n\tconst polledRes = new Promise<Exclude<T, undefined>>((resolve, reject) => {\n\t\tintervalId = setInterval(\n\t\t\t(function intervalCallbackFunc() {\n\t\t\t\t(async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst res = await waitWithTimeout(func, interval);\n\n\t\t\t\t\t\tif (!isNullish(res)) {\n\t\t\t\t\t\t\tclearInterval(intervalId);\n\t\t\t\t\t\t\tresolve(res as unknown as Exclude<T, undefined>);\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tclearInterval(intervalId);\n\t\t\t\t\t\treject(error);\n\t\t\t\t\t}\n\t\t\t\t})() as unknown;\n\t\t\t\treturn intervalCallbackFunc;\n\t\t\t})(), // this will immediate invoke first call\n\t\t\tinterval,\n\t\t);\n\t});\n\n\treturn [polledRes as unknown as Promise<Exclude<T, undefined>>, intervalId!];\n}\n\n/**\n * Repeatedly calls an async function with a given interval until the result of the function is defined (not undefined or null),\n * or until a timeout is reached.\n * pollTillDefinedAndReturnIntervalId() function should be used instead of pollTillDefined if you need IntervalId in result.\n * This function will be deprecated in next major release so use pollTillDefinedAndReturnIntervalId().\n * @param func - The function to call.\n * @param interval - The interval in milliseconds.\n */\nexport async function pollTillDefined<T>(\n\tfunc: AsyncFunction<T>,\n\tinterval: number,\n): Promise<Exclude<T, undefined>> {\n\treturn pollTillDefinedAndReturnIntervalId(func, interval)[0];\n}\n/**\n * Enforce a timeout on a promise, so that it can be rejected if it takes too long to complete\n * @param timeout - The timeout to enforced in milliseconds.\n * @param error - The error to throw if the timeout is reached.\n * @returns A tuple of the timeout id and the promise that will be rejected if the timeout is reached.\n *\n * @example\n * ```ts\n * const [timerId, promise] = web3.utils.rejectIfTimeout(100, new Error('time out'));\n * ```\n */\nexport function rejectIfTimeout(timeout: number, error: Error): [Timer, Promise<never>] {\n\tlet timeoutId: Timer | undefined;\n\tconst rejectOnTimeout = new Promise<never>((_, reject) => {\n\t\ttimeoutId = setTimeout(() => {\n\t\t\treject(error);\n\t\t}, timeout);\n\t});\n\treturn [timeoutId!, rejectOnTimeout];\n}\n/**\n * Sets an interval that repeatedly executes the given cond function with the specified interval between each call.\n * If the condition is met, the interval is cleared and a Promise that rejects with the returned value is returned.\n * @param cond - The function/condition to call.\n * @param interval - The interval in milliseconds.\n * @returns - an array with the interval ID and the Promise.\n */\nexport function rejectIfConditionAtInterval<T>(\n\tcond: AsyncFunction<T | undefined>,\n\tinterval: number,\n): [Timer, Promise<never>] {\n\tlet intervalId: Timer | undefined;\n\tconst rejectIfCondition = new Promise<never>((_, reject) => {\n\t\tintervalId = setInterval(() => {\n\t\t\t(async () => {\n\t\t\t\tconst error = await cond();\n\t\t\t\tif (error) {\n\t\t\t\t\tclearInterval(intervalId);\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t})() as unknown;\n\t\t}, interval);\n\t});\n\treturn [intervalId!, rejectIfCondition];\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * @module Utils\n */\n\nimport { bytesToHex } from './converters.js';\nimport { randomBytes } from './random.js';\n\n/**\n * Generate a version 4 (random) uuid\n * https://github.com/uuidjs/uuid/blob/main/src/v4.js#L5\n * @returns - A version 4 uuid of the form xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx\n * @example\n * ```ts\n * console.log(web3.utils.uuidV4());\n * > \"1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed\"\n * ```\n */\nexport const uuidV4 = (): string => {\n\tconst bytes = randomBytes(16);\n\n\t// https://github.com/ethers-io/ethers.js/blob/ce8f1e4015c0f27bf178238770b1325136e3351a/packages/json-wallets/src.ts/utils.ts#L54\n\t// Section: 4.1.3:\n\t// - time_hi_and_version[12:16] = 0b0100\n\t/* eslint-disable-next-line */\n\tbytes[6] = (bytes[6] & 0x0f) | 0x40;\n\n\t// Section 4.4\n\t// - clock_seq_hi_and_reserved[6] = 0b0\n\t// - clock_seq_hi_and_reserved[7] = 0b1\n\t/* eslint-disable-next-line */\n\tbytes[8] = (bytes[8] & 0x3f) | 0x80;\n\n\tconst hexString = bytesToHex(bytes);\n\n\treturn [\n\t\thexString.substring(2, 10),\n\t\thexString.substring(10, 14),\n\t\thexString.substring(14, 18),\n\t\thexString.substring(18, 22),\n\t\thexString.substring(22, 34),\n\t].join('-');\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { isNullish } from 'web3-validator';\nimport {\n\tJsonRpcPayload,\n\tJsonRpcResponse,\n\tJsonRpcResponseWithResult,\n\tJsonRpcResponseWithError,\n\tJsonRpcOptionalRequest,\n\tJsonRpcBatchRequest,\n\tJsonRpcNotification,\n\tJsonRpcRequest,\n\tJsonRpcBatchResponse,\n\tJsonRpcSubscriptionResult,\n} from 'web3-types';\nimport { rpcErrorsMap } from 'web3-errors';\nimport { uuidV4 } from './uuid.js';\n\n// check if code is a valid rpc server error code\nexport const isResponseRpcError = (rpcError: JsonRpcResponseWithError) => {\n\tconst errorCode = rpcError.error.code;\n\treturn rpcErrorsMap.has(errorCode) || (errorCode >= -32099 && errorCode <= -32000);\n};\n\nexport const isResponseWithResult = <Result = unknown, Error = unknown>(\n\tresponse: JsonRpcResponse<Result, Error>,\n): response is JsonRpcResponseWithResult<Result> =>\n\t!Array.isArray(response) &&\n\t!!response &&\n\tresponse.jsonrpc === '2.0' &&\n\t// JSON RPC consider \"null\" as valid response\n\t'result' in response &&\n\tisNullish(response.error) &&\n\t(typeof response.id === 'number' || typeof response.id === 'string');\n\n// To avoid circular package dependency, copied to code here. If you update this please update same function in `response_errors.ts`\nexport const isResponseWithError = <Error = unknown, Result = unknown>(\n\tresponse: JsonRpcResponse<Result, Error>,\n): response is JsonRpcResponseWithError<Error> =>\n\t!Array.isArray(response) &&\n\tresponse.jsonrpc === '2.0' &&\n\t!!response &&\n\tisNullish(response.result) &&\n\t// JSON RPC consider \"null\" as valid response\n\t'error' in response &&\n\t(typeof response.id === 'number' || typeof response.id === 'string');\n\nexport const isResponseWithNotification = <Result>(\n\tresponse: JsonRpcNotification<Result> | JsonRpcSubscriptionResult,\n): response is JsonRpcNotification<Result> =>\n\t!Array.isArray(response) &&\n\t!!response &&\n\tresponse.jsonrpc === '2.0' &&\n\t!isNullish(response.params) &&\n\t!isNullish(response.method);\n\nexport const isSubscriptionResult = <Result>(\n\tresponse: JsonRpcNotification<Result> | JsonRpcSubscriptionResult,\n): response is JsonRpcSubscriptionResult =>\n\t!Array.isArray(response) &&\n\t!!response &&\n\tresponse.jsonrpc === '2.0' &&\n\t'id' in response &&\n\t// JSON RPC consider \"null\" as valid response\n\t'result' in response;\n\nexport const validateResponse = <Result = unknown, Error = unknown>(\n\tresponse: JsonRpcResponse<Result, Error>,\n): boolean => isResponseWithResult<Result>(response) || isResponseWithError<Error>(response);\n\nexport const isValidResponse = <Result = unknown, Error = unknown>(\n\tresponse: JsonRpcResponse<Result, Error>,\n): boolean =>\n\tArray.isArray(response) ? response.every(validateResponse) : validateResponse(response);\n\nexport const isBatchResponse = <Result = unknown, Error = unknown>(\n\tresponse: JsonRpcResponse<Result, Error>,\n): response is JsonRpcBatchResponse<Result, Error> =>\n\tArray.isArray(response) && response.length > 0 && isValidResponse(response);\n\n// internal optional variable to increment and use for the jsonrpc `id`\nlet requestIdSeed: number | undefined;\n\n/**\n * Optionally use to make the jsonrpc `id` start from a specific number.\n * Without calling this function, the `id` will be filled with a Uuid.\n * But after this being called with a number, the `id` will be a number starting from the provided `start` variable.\n * However, if `undefined` was passed to this function, the `id` will be a Uuid again.\n * @param start - a number to start incrementing from.\n * \tOr `undefined` to use a new Uuid (this is the default behavior)\n */\nexport const setRequestIdStart = (start: number | undefined) => {\n\trequestIdSeed = start;\n};\n\nexport const toPayload = <ParamType = unknown[]>(\n\trequest: JsonRpcOptionalRequest<ParamType>,\n): JsonRpcPayload<ParamType> => {\n\tif (typeof requestIdSeed !== 'undefined') {\n\t\trequestIdSeed += 1;\n\t}\n\treturn {\n\t\tjsonrpc: request.jsonrpc ?? '2.0',\n\t\tid: request.id ?? requestIdSeed ?? uuidV4(),\n\t\tmethod: request.method,\n\t\tparams: request.params ?? undefined,\n\t};\n};\n\nexport const toBatchPayload = (requests: JsonRpcOptionalRequest<unknown>[]): JsonRpcBatchRequest =>\n\trequests.map(request => toPayload<unknown>(request)) as JsonRpcBatchRequest;\n\nexport const isBatchRequest = (\n\trequest: JsonRpcBatchRequest | JsonRpcRequest<unknown> | JsonRpcOptionalRequest<unknown>,\n): request is JsonRpcBatchRequest => Array.isArray(request) && request.length > 0;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { OperationTimeoutError } from 'web3-errors';\nimport { Web3DeferredPromiseInterface } from 'web3-types';\nimport { Timeout } from './promise_helpers.js';\n\n/**\n * The class is a simple implementation of a deferred promise with optional timeout functionality,\n * which can be useful when dealing with asynchronous tasks.\n *\n */\nexport class Web3DeferredPromise<T> implements Promise<T>, Web3DeferredPromiseInterface<T> {\n\t// public tag to treat object as promise by different libs\n\t// eslint-disable-next-line @typescript-eslint/prefer-as-const\n\tpublic [Symbol.toStringTag]: 'Promise' = 'Promise';\n\n\tprivate readonly _promise: Promise<T>;\n\tprivate _resolve!: (value: T | PromiseLike<T>) => void;\n\tprivate _reject!: (reason?: unknown) => void;\n\tprivate _state: 'pending' | 'fulfilled' | 'rejected' = 'pending';\n\tprivate _timeoutId?: Timeout;\n\tprivate readonly _timeoutInterval?: number;\n\tprivate readonly _timeoutMessage: string;\n\n\t/**\n\t *\n\t * @param timeout - (optional) The timeout in milliseconds.\n\t * @param eagerStart - (optional) If true, the timer starts as soon as the promise is created.\n\t * @param timeoutMessage - (optional) The message to include in the timeout erro that is thrown when the promise times out.\n\t */\n\tpublic constructor(\n\t\t{\n\t\t\ttimeout,\n\t\t\teagerStart,\n\t\t\ttimeoutMessage,\n\t\t}: { timeout: number; eagerStart: boolean; timeoutMessage: string } = {\n\t\t\ttimeout: 0,\n\t\t\teagerStart: false,\n\t\t\ttimeoutMessage: 'DeferredPromise timed out',\n\t\t},\n\t) {\n\t\tthis._promise = new Promise<T>((resolve, reject) => {\n\t\t\tthis._resolve = resolve;\n\t\t\tthis._reject = reject;\n\t\t});\n\n\t\tthis._timeoutMessage = timeoutMessage;\n\t\tthis._timeoutInterval = timeout;\n\n\t\tif (eagerStart) {\n\t\t\tthis.startTimer();\n\t\t}\n\t}\n\t/**\n\t * Returns the current state of the promise.\n\t * @returns 'pending' | 'fulfilled' | 'rejected'\n\t */\n\tpublic get state(): 'pending' | 'fulfilled' | 'rejected' {\n\t\treturn this._state;\n\t}\n\t/**\n\t *\n\t * @param onfulfilled - (optional) The callback to execute when the promise is fulfilled.\n\t * @param onrejected - (optional) The callback to execute when the promise is rejected.\n\t * @returns\n\t */\n\tpublic async then<TResult1, TResult2>(\n\t\tonfulfilled?: (value: T) => TResult1 | PromiseLike<TResult1>,\n\t\tonrejected?: (reason: unknown) => TResult2 | PromiseLike<TResult2>,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn this._promise.then(onfulfilled, onrejected);\n\t}\n\t/**\n\t *\n\t * @param onrejected - (optional) The callback to execute when the promise is rejected.\n\t * @returns\n\t */\n\tpublic async catch<TResult>(\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\tonrejected?: (reason: any) => TResult | PromiseLike<TResult>,\n\t): Promise<T | TResult> {\n\t\treturn this._promise.catch(onrejected);\n\t}\n\n\t/**\n\t *\n\t * @param onfinally - (optional) The callback to execute when the promise is settled (fulfilled or rejected).\n\t * @returns\n\t */\n\tpublic async finally(onfinally?: (() => void) | undefined): Promise<T> {\n\t\treturn this._promise.finally(onfinally);\n\t}\n\n\t/**\n\t * Resolves the current promise.\n\t * @param value - The value to resolve the promise with.\n\t */\n\tpublic resolve(value: T | PromiseLike<T>): void {\n\t\tthis._resolve(value);\n\t\tthis._state = 'fulfilled';\n\t\tthis._clearTimeout();\n\t}\n\n\t/**\n\t * Rejects the current promise.\n\t * @param reason - The reason to reject the promise with.\n\t */\n\tpublic reject(reason?: unknown): void {\n\t\tthis._reject(reason);\n\t\tthis._state = 'rejected';\n\t\tthis._clearTimeout();\n\t}\n\n\t/**\n\t * Starts the timeout timer for the promise.\n\t */\n\tpublic startTimer() {\n\t\tif (this._timeoutInterval && this._timeoutInterval > 0) {\n\t\t\tthis._timeoutId = setTimeout(this._checkTimeout.bind(this), this._timeoutInterval);\n\t\t}\n\t}\n\n\tprivate _checkTimeout() {\n\t\tif (this._state === 'pending' && this._timeoutId) {\n\t\t\tthis.reject(new OperationTimeoutError(this._timeoutMessage));\n\t\t}\n\t}\n\n\tprivate _clearTimeout() {\n\t\tif (this._timeoutId) {\n\t\t\tclearTimeout(this._timeoutId);\n\t\t}\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { JsonRpcResponse } from 'web3-types';\nimport { InvalidResponseError } from 'web3-errors';\nimport { EventEmitter } from 'eventemitter3';\nimport { Timeout } from './promise_helpers.js';\n\nexport class ChunkResponseParser {\n\tprivate lastChunk: string | undefined;\n\tprivate lastChunkTimeout: Timeout | undefined;\n\tprivate _clearQueues: (() => void) | undefined;\n\tprivate readonly eventEmitter: EventEmitter;\n\tprivate readonly autoReconnect: boolean;\n\tprivate readonly chunkTimeout: number;\n\n\tpublic constructor(eventEmitter: EventEmitter, autoReconnect: boolean) {\n\t\tthis.eventEmitter = eventEmitter;\n\t\tthis.autoReconnect = autoReconnect;\n\t\tthis.chunkTimeout = 1000 * 15;\n\t}\n\tprivate clearQueues(): void {\n\t\tif (typeof this._clearQueues === 'function') {\n\t\t\tthis._clearQueues();\n\t\t}\n\t}\n\n\tpublic onError(clearQueues?: () => void) {\n\t\tthis._clearQueues = clearQueues;\n\t}\n\n\tpublic parseResponse(data: string): JsonRpcResponse[] {\n\t\tconst returnValues: JsonRpcResponse[] = [];\n\n\t\t// DE-CHUNKER\n\t\tconst dechunkedData = data\n\t\t\t.replace(/\\}[\\n\\r]?\\{/g, '}|--|{') // }{\n\t\t\t.replace(/\\}\\][\\n\\r]?\\[\\{/g, '}]|--|[{') // }][{\n\t\t\t.replace(/\\}[\\n\\r]?\\[\\{/g, '}|--|[{') // }[{\n\t\t\t.replace(/\\}\\][\\n\\r]?\\{/g, '}]|--|{') // }]{\n\t\t\t.split('|--|');\n\n\t\tdechunkedData.forEach(_chunkData => {\n\t\t\t// prepend the last chunk\n\t\t\tlet chunkData = _chunkData;\n\t\t\tif (this.lastChunk) {\n\t\t\t\tchunkData = this.lastChunk + chunkData;\n\t\t\t}\n\n\t\t\tlet result;\n\n\t\t\ttry {\n\t\t\t\tresult = JSON.parse(chunkData) as unknown as JsonRpcResponse;\n\t\t\t} catch (e) {\n\t\t\t\tthis.lastChunk = chunkData;\n\n\t\t\t\t// start timeout to cancel all requests\n\t\t\t\tif (this.lastChunkTimeout) {\n\t\t\t\t\tclearTimeout(this.lastChunkTimeout);\n\t\t\t\t}\n\n\t\t\t\tthis.lastChunkTimeout = setTimeout(() => {\n\t\t\t\t\tif (this.autoReconnect) return;\n\t\t\t\t\tthis.clearQueues();\n\t\t\t\t\tthis.eventEmitter.emit(\n\t\t\t\t\t\t'error',\n\t\t\t\t\t\tnew InvalidResponseError({\n\t\t\t\t\t\t\tid: 1,\n\t\t\t\t\t\t\tjsonrpc: '2.0',\n\t\t\t\t\t\t\terror: { code: 2, message: 'Chunk timeout' },\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}, this.chunkTimeout);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// cancel timeout and set chunk to null\n\t\t\tclearTimeout(this.lastChunkTimeout);\n\t\t\tthis.lastChunk = undefined;\n\n\t\t\tif (result) returnValues.push(result);\n\t\t});\n\n\t\treturn returnValues;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport {\n\tEthExecutionAPI,\n\tHexString,\n\tProviderConnectInfo,\n\tWeb3APIMethod,\n\tWeb3APIPayload,\n\tWeb3APISpec,\n\tWeb3BaseProvider,\n} from 'web3-types';\nimport { EventEmitter } from 'eventemitter3';\nimport { EIP1193ProviderRpcError } from 'web3-errors';\nimport { toPayload } from './json_rpc.js';\n\n/**\n * This is an abstract class, which extends {@link Web3BaseProvider} class. This class is used to implement a provider that adheres to the EIP-1193 standard for Ethereum providers.\n */\nexport abstract class Eip1193Provider<\n\tAPI extends Web3APISpec = EthExecutionAPI,\n> extends Web3BaseProvider<API> {\n\tprotected readonly _eventEmitter: EventEmitter = new EventEmitter();\n\tprivate _chainId: HexString = '';\n\tprivate _accounts: HexString[] = [];\n\n\tprivate async _getChainId(): Promise<HexString> {\n\t\tconst data = await (this as Web3BaseProvider<API>).request<\n\t\t\tWeb3APIMethod<API>,\n\t\t\tResponseType\n\t\t>(\n\t\t\ttoPayload({\n\t\t\t\tmethod: 'eth_chainId',\n\t\t\t\tparams: [],\n\t\t\t}) as Web3APIPayload<API, Web3APIMethod<API>>,\n\t\t);\n\t\treturn data?.result ?? '';\n\t}\n\n\tprivate async _getAccounts(): Promise<HexString[]> {\n\t\tconst data = await (this as Web3BaseProvider<API>).request<Web3APIMethod<API>, HexString[]>(\n\t\t\ttoPayload({\n\t\t\t\tmethod: 'eth_accounts',\n\t\t\t\tparams: [],\n\t\t\t}) as Web3APIPayload<API, Web3APIMethod<API>>,\n\t\t);\n\t\treturn data?.result ?? [];\n\t}\n\n\tprotected _onConnect() {\n\t\tPromise.all([\n\t\t\tthis._getChainId()\n\t\t\t\t.then(chainId => {\n\t\t\t\t\tif (chainId !== this._chainId) {\n\t\t\t\t\t\tthis._chainId = chainId;\n\t\t\t\t\t\tthis._eventEmitter.emit('chainChanged', this._chainId);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\t// todo: add error handler\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}),\n\n\t\t\tthis._getAccounts()\n\t\t\t\t.then(accounts => {\n\t\t\t\t\tif (\n\t\t\t\t\t\t!(\n\t\t\t\t\t\t\tthis._accounts.length === accounts.length &&\n\t\t\t\t\t\t\taccounts.every(v => accounts.includes(v))\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis._accounts = accounts;\n\t\t\t\t\t\tthis._onAccountsChanged();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\t// todo: add error handler\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(err);\n\t\t\t\t}),\n\t\t])\n\t\t\t.then(() =>\n\t\t\t\tthis._eventEmitter.emit('connect', {\n\t\t\t\t\tchainId: this._chainId,\n\t\t\t\t} as ProviderConnectInfo),\n\t\t\t)\n\t\t\t.catch(err => {\n\t\t\t\t// todo: add error handler\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(err);\n\t\t\t});\n\t}\n\n\t// todo this must be ProvideRpcError with a message too\n\tprotected _onDisconnect(code: number, data?: unknown) {\n\t\tthis._eventEmitter.emit('disconnect', new EIP1193ProviderRpcError(code, data));\n\t}\n\n\tprivate _onAccountsChanged() {\n\t\t// get chainId and safe to local\n\t\tthis._eventEmitter.emit('accountsChanged', this._accounts);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport {\n\tConnectionEvent,\n\tEip1193EventName,\n\tEthExecutionAPI,\n\tJsonRpcBatchRequest,\n\tJsonRpcBatchResponse,\n\tJsonRpcId,\n\tJsonRpcNotification,\n\tJsonRpcRequest,\n\tJsonRpcResponse,\n\tJsonRpcResponseWithResult,\n\tJsonRpcResult,\n\tProviderConnectInfo,\n\tProviderMessage,\n\tProviderRpcError,\n\tSocketRequestItem,\n\tWeb3APIMethod,\n\tWeb3APIPayload,\n\tWeb3APIReturnType,\n\tWeb3APISpec,\n\tWeb3Eip1193ProviderEventCallback,\n\tWeb3ProviderEventCallback,\n\tWeb3ProviderMessageEventCallback,\n\tWeb3ProviderStatus,\n} from 'web3-types';\nimport {\n\tConnectionError,\n\tConnectionNotOpenError,\n\tInvalidClientError,\n\tMaxAttemptsReachedOnReconnectingError,\n\tPendingRequestsOnReconnectingError,\n\tRequestAlreadySentError,\n\tWeb3WSProviderError,\n} from 'web3-errors';\nimport { Eip1193Provider } from './web3_eip1193_provider.js';\nimport { ChunkResponseParser } from './chunk_response_parser.js';\nimport { isNullish } from './validation.js';\nimport { Web3DeferredPromise } from './web3_deferred_promise.js';\nimport * as jsonRpc from './json_rpc.js';\n\nexport type ReconnectOptions = {\n\tautoReconnect: boolean;\n\tdelay: number;\n\tmaxAttempts: number;\n};\n\nconst DEFAULT_RECONNECTION_OPTIONS = {\n\tautoReconnect: true,\n\tdelay: 5000,\n\tmaxAttempts: 5,\n};\n\nconst NORMAL_CLOSE_CODE = 1000; // https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close\n\nexport abstract class SocketProvider<\n\tMessageEvent,\n\tCloseEvent,\n\tErrorEvent,\n\tAPI extends Web3APISpec = EthExecutionAPI,\n> extends Eip1193Provider<API> {\n\tprotected isReconnecting: boolean;\n\tprotected readonly _socketPath: string;\n\tprotected readonly chunkResponseParser: ChunkResponseParser;\n\t/* eslint-disable @typescript-eslint/no-explicit-any */\n\tprotected readonly _pendingRequestsQueue: Map<JsonRpcId, SocketRequestItem<any, any, any>>;\n\t/* eslint-disable @typescript-eslint/no-explicit-any */\n\tprotected readonly _sentRequestsQueue: Map<JsonRpcId, SocketRequestItem<any, any, any>>;\n\tprotected _reconnectAttempts!: number;\n\tprotected readonly _socketOptions?: unknown;\n\tprotected readonly _reconnectOptions: ReconnectOptions;\n\tprotected _socketConnection?: unknown;\n\tpublic get SocketConnection() {\n\t\treturn this._socketConnection;\n\t}\n\tprotected _connectionStatus: Web3ProviderStatus;\n\tprotected readonly _onMessageHandler: (event: MessageEvent) => void;\n\tprotected readonly _onOpenHandler: () => void;\n\tprotected readonly _onCloseHandler: (event: CloseEvent) => void;\n\tprotected readonly _onErrorHandler: (event: ErrorEvent) => void;\n\n\t/**\n\t * This is an abstract class for implementing a socket provider (e.g. WebSocket, IPC). It extends the EIP-1193 provider {@link EIP1193Provider}.\n\t * @param socketPath - The path to the socket (e.g. /ipc/path or ws://localhost:8546)\n\t * @param socketOptions - The options for the socket connection. Its type is supposed to be specified in the inherited classes.\n\t * @param reconnectOptions - The options for the socket reconnection {@link ReconnectOptions}\n\t */\n\tpublic constructor(\n\t\tsocketPath: string,\n\t\tsocketOptions?: unknown,\n\t\treconnectOptions?: Partial<ReconnectOptions>,\n\t) {\n\t\tsuper();\n\t\tthis._connectionStatus = 'connecting';\n\n\t\t// Message handlers. Due to bounding of `this` and removing the listeners we have to keep it's reference.\n\t\tthis._onMessageHandler = this._onMessage.bind(this);\n\t\tthis._onOpenHandler = this._onConnect.bind(this);\n\t\tthis._onCloseHandler = this._onCloseEvent.bind(this);\n\t\tthis._onErrorHandler = this._onError.bind(this);\n\n\t\tif (!this._validateProviderPath(socketPath)) throw new InvalidClientError(socketPath);\n\n\t\tthis._socketPath = socketPath;\n\t\tthis._socketOptions = socketOptions;\n\t\tthis._reconnectOptions = {\n\t\t\t...DEFAULT_RECONNECTION_OPTIONS,\n\t\t\t...(reconnectOptions ?? {}),\n\t\t};\n\n\t\tthis._pendingRequestsQueue = new Map<JsonRpcId, SocketRequestItem<any, any, any>>();\n\t\tthis._sentRequestsQueue = new Map<JsonRpcId, SocketRequestItem<any, any, any>>();\n\n\t\tthis._init();\n\t\tthis.connect();\n\t\tthis.chunkResponseParser = new ChunkResponseParser(\n\t\t\tthis._eventEmitter,\n\t\t\tthis._reconnectOptions.autoReconnect,\n\t\t);\n\t\tthis.chunkResponseParser.onError(() => {\n\t\t\tthis._clearQueues();\n\t\t});\n\t\tthis.isReconnecting = false;\n\t}\n\n\tprotected _init() {\n\t\tthis._reconnectAttempts = 0;\n\t}\n\n\t/**\n\t * Try to establish a connection to the socket\n\t */\n\tpublic connect(): void {\n\t\ttry {\n\t\t\tthis._openSocketConnection();\n\t\t\tthis._connectionStatus = 'connecting';\n\t\t\tthis._addSocketListeners();\n\t\t} catch (e) {\n\t\t\tif (!this.isReconnecting) {\n\t\t\t\tthis._connectionStatus = 'disconnected';\n\t\t\t\tif (e && (e as Error).message) {\n\t\t\t\t\tthrow new ConnectionError(\n\t\t\t\t\t\t`Error while connecting to ${this._socketPath}. Reason: ${\n\t\t\t\t\t\t\t(e as Error).message\n\t\t\t\t\t\t}`,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new InvalidClientError(this._socketPath);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetImmediate(() => {\n\t\t\t\t\tthis._reconnect();\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected abstract _openSocketConnection(): void;\n\tprotected abstract _addSocketListeners(): void;\n\n\tprotected abstract _removeSocketListeners(): void;\n\n\tprotected abstract _onCloseEvent(_event: unknown): void;\n\n\tprotected abstract _sendToSocket(_payload: Web3APIPayload<API, any>): void;\n\n\tprotected abstract _parseResponses(_event: MessageEvent): JsonRpcResponse[];\n\n\tprotected abstract _closeSocketConnection(_code?: number, _data?: string): void;\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprotected _validateProviderPath(path: string): boolean {\n\t\treturn !!path;\n\t}\n\n\t/**\n\t *\n\t * @returns the pendingRequestQueue size\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic getPendingRequestQueueSize() {\n\t\treturn this._pendingRequestsQueue.size;\n\t}\n\n\t/**\n\t *\n\t * @returns the sendPendingRequests size\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic getSentRequestsQueueSize() {\n\t\treturn this._sentRequestsQueue.size;\n\t}\n\n\t/**\n\t *\n\t * @returns `true` if the socket supports subscriptions\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic supportsSubscriptions(): boolean {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Registers a listener for the specified event type.\n\t * @param type - The event type to listen for\n\t * @param listener - The callback to be invoked when the event is emitted\n\t */\n\tpublic on(\n\t\ttype: 'disconnect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderRpcError>,\n\t): void;\n\tpublic on(\n\t\ttype: 'connect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>,\n\t): void;\n\tpublic on(type: 'chainChanged', listener: Web3Eip1193ProviderEventCallback<string>): void;\n\tpublic on(type: 'accountsChanged', listener: Web3Eip1193ProviderEventCallback<string[]>): void;\n\tpublic on<T = JsonRpcResult>(\n\t\ttype: 'message',\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<ProviderMessage>\n\t\t\t| Web3ProviderMessageEventCallback<T>,\n\t): void;\n\tpublic on<T = JsonRpcResult>(\n\t\ttype: string,\n\t\tlistener: Web3Eip1193ProviderEventCallback<unknown> | Web3ProviderEventCallback<T>,\n\t): void;\n\tpublic on<T = JsonRpcResult, P = unknown>(\n\t\ttype: string | Eip1193EventName,\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<P>\n\t\t\t| Web3ProviderMessageEventCallback<T>\n\t\t\t| Web3ProviderEventCallback<T>,\n\t): void {\n\t\tthis._eventEmitter.on(type, listener);\n\t}\n\n\t/**\n\t * Registers a listener for the specified event type that will be invoked at most once.\n\t * @param type - The event type to listen for\n\t * @param listener - The callback to be invoked when the event is emitted\n\t */\n\tpublic once(\n\t\ttype: 'disconnect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderRpcError>,\n\t): void;\n\tpublic once(\n\t\ttype: 'connect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>,\n\t): void;\n\tpublic once(type: 'chainChanged', listener: Web3Eip1193ProviderEventCallback<string>): void;\n\tpublic once(\n\t\ttype: 'accountsChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string[]>,\n\t): void;\n\tpublic once<T = JsonRpcResult>(\n\t\ttype: 'message',\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<ProviderMessage>\n\t\t\t| Web3ProviderMessageEventCallback<T>,\n\t): void;\n\tpublic once<T = JsonRpcResult>(\n\t\ttype: string,\n\t\tlistener: Web3Eip1193ProviderEventCallback<unknown> | Web3ProviderEventCallback<T>,\n\t): void;\n\tpublic once<T = JsonRpcResult, P = unknown>(\n\t\ttype: string | Eip1193EventName,\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<P>\n\t\t\t| Web3ProviderMessageEventCallback<T>\n\t\t\t| Web3ProviderEventCallback<T>,\n\t): void {\n\t\tthis._eventEmitter.once(type, listener);\n\t}\n\n\t/**\n\t * Removes a listener for the specified event type.\n\t * @param type - The event type to remove the listener for\n\t * @param listener - The callback to be executed\n\t */\n\tpublic removeListener(\n\t\ttype: 'disconnect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderRpcError>,\n\t): void;\n\tpublic removeListener(\n\t\ttype: 'connect',\n\t\tlistener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>,\n\t): void;\n\tpublic removeListener(\n\t\ttype: 'chainChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string>,\n\t): void;\n\tpublic removeListener(\n\t\ttype: 'accountsChanged',\n\t\tlistener: Web3Eip1193ProviderEventCallback<string[]>,\n\t): void;\n\tpublic removeListener<T = JsonRpcResult>(\n\t\ttype: 'message',\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<ProviderMessage>\n\t\t\t| Web3ProviderMessageEventCallback<T>,\n\t): void;\n\tpublic removeListener<T = JsonRpcResult>(\n\t\ttype: string,\n\t\tlistener: Web3Eip1193ProviderEventCallback<unknown> | Web3ProviderEventCallback<T>,\n\t): void;\n\tpublic removeListener<T = JsonRpcResult, P = unknown>(\n\t\ttype: string | Eip1193EventName,\n\t\tlistener:\n\t\t\t| Web3Eip1193ProviderEventCallback<P>\n\t\t\t| Web3ProviderMessageEventCallback<T>\n\t\t\t| Web3ProviderEventCallback<T>,\n\t): void {\n\t\tthis._eventEmitter.removeListener(type, listener);\n\t}\n\n\tprotected _onDisconnect(code: number, data?: string) {\n\t\tthis._connectionStatus = 'disconnected';\n\t\tsuper._onDisconnect(code, data);\n\t}\n\n\t/**\n\t * Disconnects the socket\n\t * @param code - The code to be sent to the server\n\t * @param data - The data to be sent to the server\n\t */\n\tpublic disconnect(code?: number, data?: string): void {\n\t\tconst disconnectCode = code ?? NORMAL_CLOSE_CODE;\n\t\tthis._removeSocketListeners();\n\t\tif (this.getStatus() !== 'disconnected') {\n\t\t\tthis._closeSocketConnection(disconnectCode, data);\n\t\t}\n\t\tthis._onDisconnect(disconnectCode, data);\n\t}\n\n\t/**\n\t * Safely disconnects the socket, async and waits for request size to be 0 before disconnecting\n\t * @param forceDisconnect - If true, will clear queue after 5 attempts of waiting for both pending and sent queue to be 0\n\t * @param ms - Determines the ms of setInterval\n\t * @param code - The code to be sent to the server\n\t * @param data - The data to be sent to the server\n\t */\n\tpublic async safeDisconnect(code?: number, data?: string, forceDisconnect = false, ms = 1000) {\n\t\tlet retryAttempt = 0;\n\t\tconst checkQueue = async () =>\n\t\t\tnew Promise(resolve => {\n\t\t\t\tconst interval = setInterval(() => {\n\t\t\t\t\tif (forceDisconnect && retryAttempt >= 5) {\n\t\t\t\t\t\tthis.clearQueues();\n\t\t\t\t\t}\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.getPendingRequestQueueSize() === 0 &&\n\t\t\t\t\t\tthis.getSentRequestsQueueSize() === 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tclearInterval(interval);\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}\n\t\t\t\t\tretryAttempt += 1;\n\t\t\t\t}, ms);\n\t\t\t});\n\n\t\tawait checkQueue();\n\t\tthis.disconnect(code, data);\n\t}\n\n\t/**\n\t * Removes all listeners for the specified event type.\n\t * @param type - The event type to remove the listeners for\n\t */\n\tpublic removeAllListeners(type: string): void {\n\t\tthis._eventEmitter.removeAllListeners(type);\n\t}\n\n\tprotected _onError(event: ErrorEvent): void {\n\t\t// do not emit error while trying to reconnect\n\t\tif (this.isReconnecting) {\n\t\t\tthis._reconnect();\n\t\t} else {\n\t\t\tthis._eventEmitter.emit('error', event);\n\t\t}\n\t}\n\n\t/**\n\t * Resets the socket, removing all listeners and pending requests\n\t */\n\tpublic reset(): void {\n\t\tthis._sentRequestsQueue.clear();\n\t\tthis._pendingRequestsQueue.clear();\n\n\t\tthis._init();\n\t\tthis._removeSocketListeners();\n\t\tthis._addSocketListeners();\n\t}\n\n\tprotected _reconnect(): void {\n\t\tif (this.isReconnecting) {\n\t\t\treturn;\n\t\t}\n\t\tthis.isReconnecting = true;\n\n\t\tif (this._sentRequestsQueue.size > 0) {\n\t\t\tthis._sentRequestsQueue.forEach(\n\t\t\t\t(request: SocketRequestItem<any, any, any>, key: JsonRpcId) => {\n\t\t\t\t\trequest.deferredPromise.reject(new PendingRequestsOnReconnectingError());\n\t\t\t\t\tthis._sentRequestsQueue.delete(key);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (this._reconnectAttempts < this._reconnectOptions.maxAttempts) {\n\t\t\tthis._reconnectAttempts += 1;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._removeSocketListeners();\n\t\t\t\tthis.connect(); // this can error out\n\t\t\t\tthis.isReconnecting = false;\n\t\t\t}, this._reconnectOptions.delay);\n\t\t} else {\n\t\t\tthis.isReconnecting = false;\n\t\t\tthis._clearQueues();\n\t\t\tthis._removeSocketListeners();\n\t\t\tthis._eventEmitter.emit(\n\t\t\t\t'error',\n\t\t\t\tnew MaxAttemptsReachedOnReconnectingError(this._reconnectOptions.maxAttempts),\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Creates a request object to be sent to the server\n\t */\n\tpublic async request<\n\t\tMethod extends Web3APIMethod<API>,\n\t\tResultType = Web3APIReturnType<API, Method>,\n\t>(request: Web3APIPayload<API, Method>): Promise<JsonRpcResponseWithResult<ResultType>> {\n\t\tif (isNullish(this._socketConnection)) {\n\t\t\tthrow new Error('Connection is undefined');\n\t\t}\n\t\t// if socket disconnected - open connection\n\t\tif (this.getStatus() === 'disconnected') {\n\t\t\tthis.connect();\n\t\t}\n\n\t\tconst requestId = jsonRpc.isBatchRequest(request)\n\t\t\t? (request as unknown as JsonRpcBatchRequest)[0].id\n\t\t\t: (request as unknown as JsonRpcRequest).id;\n\n\t\tif (!requestId) {\n\t\t\tthrow new Web3WSProviderError('Request Id not defined');\n\t\t}\n\n\t\tif (this._sentRequestsQueue.has(requestId)) {\n\t\t\tthrow new RequestAlreadySentError(requestId);\n\t\t}\n\t\tconst deferredPromise = new Web3DeferredPromise<JsonRpcResponseWithResult<ResultType>>();\n\t\tdeferredPromise.catch(error => {\n\t\t\tthis._eventEmitter.emit('error', error);\n\t\t});\n\t\tconst reqItem: SocketRequestItem<API, Method, JsonRpcResponseWithResult<ResultType>> = {\n\t\t\tpayload: request,\n\t\t\tdeferredPromise,\n\t\t};\n\n\t\tif (this.getStatus() === 'connecting') {\n\t\t\tthis._pendingRequestsQueue.set(requestId, reqItem);\n\n\t\t\treturn reqItem.deferredPromise;\n\t\t}\n\n\t\tthis._sentRequestsQueue.set(requestId, reqItem);\n\n\t\ttry {\n\t\t\tthis._sendToSocket(reqItem.payload);\n\t\t} catch (error) {\n\t\t\tthis._sentRequestsQueue.delete(requestId);\n\n\t\t\tthis._eventEmitter.emit('error', error);\n\t\t}\n\n\t\treturn deferredPromise;\n\t}\n\n\tprotected _onConnect() {\n\t\tthis._connectionStatus = 'connected';\n\t\tthis._reconnectAttempts = 0;\n\t\tsuper._onConnect();\n\t\tthis._sendPendingRequests();\n\t}\n\n\tprivate _sendPendingRequests() {\n\t\tfor (const [id, value] of this._pendingRequestsQueue.entries()) {\n\t\t\ttry {\n\t\t\t\tthis._sendToSocket(value.payload as Web3APIPayload<API, any>);\n\t\t\t\tthis._pendingRequestsQueue.delete(id);\n\t\t\t\tthis._sentRequestsQueue.set(id, value);\n\t\t\t} catch (error) {\n\t\t\t\t// catches if sendTosocket fails\n\t\t\t\tthis._pendingRequestsQueue.delete(id);\n\t\t\t\tthis._eventEmitter.emit('error', error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected _onMessage(event: MessageEvent): void {\n\t\tconst responses = this._parseResponses(event);\n\t\tif (isNullish(responses) || responses.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const response of responses) {\n\t\t\tif (\n\t\t\t\tjsonRpc.isResponseWithNotification(response as JsonRpcNotification) &&\n\t\t\t\t(response as JsonRpcNotification).method.endsWith('_subscription')\n\t\t\t) {\n\t\t\t\tthis._eventEmitter.emit('message', response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst requestId = jsonRpc.isBatchResponse(response)\n\t\t\t\t? (response as unknown as JsonRpcBatchResponse)[0].id\n\t\t\t\t: (response as unknown as JsonRpcResponseWithResult).id;\n\n\t\t\tconst requestItem = this._sentRequestsQueue.get(requestId);\n\n\t\t\tif (!requestItem) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tjsonRpc.isBatchResponse(response) ||\n\t\t\t\tjsonRpc.isResponseWithResult(response) ||\n\t\t\t\tjsonRpc.isResponseWithError(response)\n\t\t\t) {\n\t\t\t\tthis._eventEmitter.emit('message', response);\n\t\t\t\trequestItem.deferredPromise.resolve(response);\n\t\t\t}\n\n\t\t\tthis._sentRequestsQueue.delete(requestId);\n\t\t}\n\t}\n\n\tpublic clearQueues(event?: ConnectionEvent) {\n\t\tthis._clearQueues(event);\n\t}\n\n\tprotected _clearQueues(event?: ConnectionEvent) {\n\t\tif (this._pendingRequestsQueue.size > 0) {\n\t\t\tthis._pendingRequestsQueue.forEach(\n\t\t\t\t(request: SocketRequestItem<any, any, any>, key: JsonRpcId) => {\n\t\t\t\t\trequest.deferredPromise.reject(new ConnectionNotOpenError(event));\n\t\t\t\t\tthis._pendingRequestsQueue.delete(key);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tif (this._sentRequestsQueue.size > 0) {\n\t\t\tthis._sentRequestsQueue.forEach(\n\t\t\t\t(request: SocketRequestItem<any, any, any>, key: JsonRpcId) => {\n\t\t\t\t\trequest.deferredPromise.reject(new ConnectionNotOpenError(event));\n\t\t\t\t\tthis._sentRequestsQueue.delete(key);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\tthis._removeSocketListeners();\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { EventEmitter } from 'web3-utils';\n\nexport type Web3EventMap = Record<string, unknown>;\nexport type Web3EventKey<T extends Web3EventMap> = string & keyof T;\nexport type Web3EventCallback<T> = (params: T) => void | Promise<void>;\nexport interface Web3Emitter<T extends Web3EventMap> {\n\ton<K extends Web3EventKey<T>>(eventName: K, fn: Web3EventCallback<T[K]>): void;\n\tonce<K extends Web3EventKey<T>>(eventName: K, fn: Web3EventCallback<T[K]>): void;\n\toff<K extends Web3EventKey<T>>(eventName: K, fn: Web3EventCallback<T[K]>): void;\n\temit<K extends Web3EventKey<T>>(eventName: K, params: T[K]): void;\n}\n\nexport class Web3EventEmitter<T extends Web3EventMap> implements Web3Emitter<T> {\n\tprivate readonly _emitter = new EventEmitter();\n\n\tpublic on<K extends Web3EventKey<T>>(eventName: K, fn: Web3EventCallback<T[K]>) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-misused-promises\n\t\tthis._emitter.on(eventName, fn);\n\t}\n\n\tpublic once<K extends Web3EventKey<T>>(eventName: K, fn: Web3EventCallback<T[K]>) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-misused-promises\n\t\tthis._emitter.once(eventName, fn);\n\t}\n\n\tpublic off<K extends Web3EventKey<T>>(eventName: K, fn: Web3EventCallback<T[K]>) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-misused-promises\n\t\tthis._emitter.off(eventName, fn);\n\t}\n\n\tpublic emit<K extends Web3EventKey<T>>(eventName: K, params: T[K]) {\n\t\tthis._emitter.emit(eventName, params);\n\t}\n\n\tpublic listenerCount<K extends Web3EventKey<T>>(eventName: K) {\n\t\treturn this._emitter.listenerCount(eventName);\n\t}\n\n\tpublic listeners<K extends Web3EventKey<T>>(eventName: K) {\n\t\treturn this._emitter.listeners(eventName);\n\t}\n\n\tpublic eventNames() {\n\t\treturn this._emitter.eventNames();\n\t}\n\n\tpublic removeAllListeners() {\n\t\treturn this._emitter.removeAllListeners();\n\t}\n\tpublic setMaxListenerWarningThreshold(maxListenersWarningThreshold: number) {\n\t\tthis._emitter.setMaxListeners(maxListenersWarningThreshold);\n\t}\n\tpublic getMaxListeners() {\n\t\treturn this._emitter.getMaxListeners();\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tNumbers,\n\tHexString,\n\tBlockNumberOrTag,\n\tCommon,\n\tDEFAULT_RETURN_FORMAT,\n\tDataFormat,\n} from 'web3-types';\nimport { ConfigHardforkMismatchError, ConfigChainMismatchError } from 'web3-errors';\nimport { isNullish, toHex } from 'web3-utils';\nimport { CustomTransactionSchema, TransactionTypeParser } from './types.js';\n// eslint-disable-next-line import/no-cycle\nimport { TransactionBuilder } from './web3_context.js';\nimport { Web3EventEmitter } from './web3_event_emitter.js';\n\n// To avoid cycle dependency declare this\nexport interface Web3ConfigOptions {\n\thandleRevert: boolean;\n\tdefaultAccount?: HexString;\n\tdefaultBlock: BlockNumberOrTag;\n\ttransactionSendTimeout: number;\n\ttransactionBlockTimeout: number;\n\ttransactionConfirmationBlocks: number;\n\ttransactionPollingInterval: number;\n\ttransactionPollingTimeout: number;\n\ttransactionReceiptPollingInterval?: number;\n\ttransactionConfirmationPollingInterval?: number;\n\tblockHeaderTimeout: number;\n\tmaxListenersWarningThreshold: number;\n\tcontractDataInputFill: 'data' | 'input' | 'both';\n\tdefaultNetworkId?: Numbers;\n\tdefaultChain: string;\n\tdefaultHardfork: string;\n\n\tdefaultCommon?: Common;\n\tdefaultTransactionType: Numbers;\n\tdefaultMaxPriorityFeePerGas: Numbers;\n\tenableExperimentalFeatures: {\n\t\tuseSubscriptionWhenCheckingBlockTimeout: boolean;\n\t\tuseRpcCallSpecification: boolean; // EIP-1474 https://eips.ethereum.org/EIPS/eip-1474\n\t\t// other experimental features...\n\t};\n\ttransactionBuilder?: TransactionBuilder;\n\ttransactionTypeParser?: TransactionTypeParser;\n\tcustomTransactionSchema?: CustomTransactionSchema;\n\tdefaultReturnFormat: DataFormat;\n}\n\ntype ConfigEvent<T, P extends keyof T = keyof T> = P extends unknown\n\t? { name: P; oldValue: T[P]; newValue: T[P] }\n\t: never;\n\nexport enum Web3ConfigEvent {\n\tCONFIG_CHANGE = 'CONFIG_CHANGE',\n}\n\nexport abstract class Web3Config\n\textends Web3EventEmitter<{ [Web3ConfigEvent.CONFIG_CHANGE]: ConfigEvent<Web3ConfigOptions> }>\n\timplements Web3ConfigOptions\n{\n\tpublic config: Web3ConfigOptions = {\n\t\thandleRevert: false,\n\t\tdefaultAccount: undefined,\n\t\tdefaultBlock: 'latest',\n\t\ttransactionBlockTimeout: 50,\n\t\ttransactionConfirmationBlocks: 24,\n\t\ttransactionPollingInterval: 1000,\n\t\ttransactionPollingTimeout: 750 * 1000,\n\t\ttransactionReceiptPollingInterval: undefined,\n\t\ttransactionSendTimeout: 750 * 1000,\n\t\ttransactionConfirmationPollingInterval: undefined,\n\t\tblockHeaderTimeout: 10,\n\t\tmaxListenersWarningThreshold: 100,\n\t\tcontractDataInputFill: 'data',\n\t\tdefaultNetworkId: undefined,\n\t\tdefaultChain: 'mainnet',\n\t\tdefaultHardfork: 'london',\n\t\t// TODO - Check if there is a default Common\n\t\tdefaultCommon: undefined,\n\t\tdefaultTransactionType: '0x2',\n\t\tdefaultMaxPriorityFeePerGas: toHex(2500000000),\n\t\tenableExperimentalFeatures: {\n\t\t\tuseSubscriptionWhenCheckingBlockTimeout: false,\n\t\t\tuseRpcCallSpecification: false,\n\t\t},\n\t\ttransactionBuilder: undefined,\n\t\ttransactionTypeParser: undefined,\n\t\tcustomTransactionSchema: undefined,\n\t\tdefaultReturnFormat: DEFAULT_RETURN_FORMAT,\n\t};\n\n\tpublic constructor(options?: Partial<Web3ConfigOptions>) {\n\t\tsuper();\n\t\tthis.setConfig(options ?? {});\n\t}\n\n\tpublic setConfig(options: Partial<Web3ConfigOptions>) {\n\t\t// TODO: Improve and add key check\n\t\tconst keys = Object.keys(options) as (keyof Web3ConfigOptions)[];\n\t\tfor (const key of keys) {\n\t\t\tthis._triggerConfigChange(key, options[key]);\n\n\t\t\tif (\n\t\t\t\t!isNullish(options[key]) &&\n\t\t\t\ttypeof options[key] === 'number' &&\n\t\t\t\tkey === 'maxListenersWarningThreshold'\n\t\t\t) {\n\t\t\t\t// additionally set in event emitter\n\t\t\t\tthis.setMaxListenerWarningThreshold(Number(options[key]));\n\t\t\t}\n\t\t}\n\t\tObject.assign(this.config, options);\n\t}\n\n\t/**\n\t * The `handleRevert` options property returns the revert reason string if enabled for the following methods:\n\t * - web3.eth.sendTransaction()\n\t * - web3.eth.call()\n\t * - myContract.methods.myMethod().call()\n\t * - myContract.methods.myMethod().send()\n\t * Default is `false`.\n\t *\n\t * `Note`: At the moment `handleRevert` is only supported for `sendTransaction` and not for `sendSignedTransaction`\n\t */\n\tpublic get handleRevert() {\n\t\treturn this.config.handleRevert;\n\t}\n\n\t/**\n\t * Will set the handleRevert\n\t */\n\tpublic set handleRevert(val) {\n\t\tthis._triggerConfigChange('handleRevert', val);\n\t\tthis.config.handleRevert = val;\n\t}\n\n\t/**\n\t * The `contractDataInputFill` options property will allow you to set the hash of the method signature and encoded parameters to the property\n\t * either `data`, `input` or both within your contract.\n\t * This will affect the contracts send, call and estimateGas methods\n\t * Default is `data`.\n\t */\n\tpublic get contractDataInputFill() {\n\t\treturn this.config.contractDataInputFill;\n\t}\n\n\t/**\n\t * Will set the contractDataInputFill\n\t */\n\tpublic set contractDataInputFill(val) {\n\t\tthis._triggerConfigChange('contractDataInputFill', val);\n\t\tthis.config.contractDataInputFill = val;\n\t}\n\n\t/**\n\t * This default address is used as the default `from` property, if no `from` property is specified in for the following methods:\n\t * - web3.eth.sendTransaction()\n\t * - web3.eth.call()\n\t * - myContract.methods.myMethod().call()\n\t * - myContract.methods.myMethod().send()\n\t */\n\tpublic get defaultAccount() {\n\t\treturn this.config.defaultAccount;\n\t}\n\t/**\n\t * Will set the default account.\n\t */\n\tpublic set defaultAccount(val) {\n\t\tthis._triggerConfigChange('defaultAccount', val);\n\t\tthis.config.defaultAccount = val;\n\t}\n\n\t/**\n\t * The default block is used for certain methods. You can override it by passing in the defaultBlock as last parameter. The default value is `\"latest\"`.\n\t * - web3.eth.getBalance()\n\t * - web3.eth.getCode()\n\t * - web3.eth.getTransactionCount()\n\t * - web3.eth.getStorageAt()\n\t * - web3.eth.call()\n\t * - myContract.methods.myMethod().call()\n\t */\n\tpublic get defaultBlock() {\n\t\treturn this.config.defaultBlock;\n\t}\n\n\t/**\n\t * Will set the default block.\n\t *\n\t * - A block number\n\t * - `\"earliest\"` - String: The genesis block\n\t * - `\"latest\"` - String: The latest block (current head of the blockchain)\n\t * - `\"pending\"` - String: The currently mined block (including pending transactions)\n\t * - `\"finalized\"` - String: (For POS networks) The finalized block is one which has been accepted as canonical by greater than 2/3 of validators\n\t * - `\"safe\"` - String: (For POS networks) The safe head block is one which under normal network conditions, is expected to be included in the canonical chain. Under normal network conditions the safe head and the actual tip of the chain will be equivalent (with safe head trailing only by a few seconds). Safe heads will be less likely to be reorged than the proof of work network`s latest blocks.\n\t */\n\tpublic set defaultBlock(val) {\n\t\tthis._triggerConfigChange('defaultBlock', val);\n\t\tthis.config.defaultBlock = val;\n\t}\n\n\t/**\n\t * The time used to wait for Ethereum Node to return the sent transaction result.\n\t * Note: If the RPC call stuck at the Node and therefor timed-out, the transaction may still be pending or even mined by the Network. We recommend checking the pending transactions in such a case.\n\t * Default is `750` seconds (12.5 minutes).\n\t */\n\tpublic get transactionSendTimeout() {\n\t\treturn this.config.transactionSendTimeout;\n\t}\n\n\t/**\n\t * Will set the transactionSendTimeout.\n\t */\n\tpublic set transactionSendTimeout(val) {\n\t\tthis._triggerConfigChange('transactionSendTimeout', val);\n\t\tthis.config.transactionSendTimeout = val;\n\t}\n\n\t/**\n\t * The `transactionBlockTimeout` is used over socket-based connections. This option defines the amount of new blocks it should wait until the first confirmation happens, otherwise the PromiEvent rejects with a timeout error.\n\t * Default is `50`.\n\t */\n\tpublic get transactionBlockTimeout() {\n\t\treturn this.config.transactionBlockTimeout;\n\t}\n\n\t/**\n\t * Will set the transactionBlockTimeout.\n\t */\n\tpublic set transactionBlockTimeout(val) {\n\t\tthis._triggerConfigChange('transactionBlockTimeout', val);\n\t\tthis.config.transactionBlockTimeout = val;\n\t}\n\n\t/**\n\t * This defines the number of blocks it requires until a transaction is considered confirmed.\n\t * Default is `24`.\n\t */\n\tpublic get transactionConfirmationBlocks() {\n\t\treturn this.config.transactionConfirmationBlocks;\n\t}\n\n\t/**\n\t * Will set the transactionConfirmationBlocks.\n\t */\n\tpublic set transactionConfirmationBlocks(val) {\n\t\tthis._triggerConfigChange('transactionConfirmationBlocks', val);\n\t\tthis.config.transactionConfirmationBlocks = val;\n\t}\n\n\t/**\n\t * Used over HTTP connections. This option defines the number of seconds between Web3 calls for a receipt which confirms that a transaction was mined by the network.\n\t * Default is `1000` ms.\n\t */\n\tpublic get transactionPollingInterval() {\n\t\treturn this.config.transactionPollingInterval;\n\t}\n\n\t/**\n\t * Will set the transactionPollingInterval.\n\t */\n\tpublic set transactionPollingInterval(val) {\n\t\tthis._triggerConfigChange('transactionPollingInterval', val);\n\t\tthis.config.transactionPollingInterval = val;\n\n\t\tthis.transactionReceiptPollingInterval = val;\n\t\tthis.transactionConfirmationPollingInterval = val;\n\t}\n\t/**\n\t * Used over HTTP connections. This option defines the number of seconds Web3 will wait for a receipt which confirms that a transaction was mined by the network. Note: If this method times out, the transaction may still be pending.\n\t * Default is `750` seconds (12.5 minutes).\n\t */\n\tpublic get transactionPollingTimeout() {\n\t\treturn this.config.transactionPollingTimeout;\n\t}\n\n\t/**\n\t * Will set the transactionPollingTimeout.\n\t */\n\tpublic set transactionPollingTimeout(val) {\n\t\tthis._triggerConfigChange('transactionPollingTimeout', val);\n\n\t\tthis.config.transactionPollingTimeout = val;\n\t}\n\n\t/**\n\t * The `transactionPollingInterval` is used over HTTP connections. This option defines the number of seconds between Web3 calls for a receipt which confirms that a transaction was mined by the network.\n\t * Default is `undefined`\n\t */\n\tpublic get transactionReceiptPollingInterval() {\n\t\treturn this.config.transactionReceiptPollingInterval;\n\t}\n\n\t/**\n\t * Will set the transactionReceiptPollingInterval\n\t */\n\tpublic set transactionReceiptPollingInterval(val) {\n\t\tthis._triggerConfigChange('transactionReceiptPollingInterval', val);\n\t\tthis.config.transactionReceiptPollingInterval = val;\n\t}\n\n\tpublic get transactionConfirmationPollingInterval() {\n\t\treturn this.config.transactionConfirmationPollingInterval;\n\t}\n\n\tpublic set transactionConfirmationPollingInterval(val) {\n\t\tthis._triggerConfigChange('transactionConfirmationPollingInterval', val);\n\t\tthis.config.transactionConfirmationPollingInterval = val;\n\t}\n\n\t/**\n\t * The blockHeaderTimeout is used over socket-based connections. This option defines the amount seconds it should wait for `'newBlockHeaders'` event before falling back to polling to fetch transaction receipt.\n\t * Default is `10` seconds.\n\t */\n\tpublic get blockHeaderTimeout() {\n\t\treturn this.config.blockHeaderTimeout;\n\t}\n\n\t/**\n\t * Will set the blockHeaderTimeout\n\t */\n\tpublic set blockHeaderTimeout(val) {\n\t\tthis._triggerConfigChange('blockHeaderTimeout', val);\n\n\t\tthis.config.blockHeaderTimeout = val;\n\t}\n\n\t/**\n\t * The enableExperimentalFeatures is used to enable trying new experimental features that are still not fully implemented or not fully tested or still have some related issues.\n\t * Default is `false` for every feature.\n\t */\n\tpublic get enableExperimentalFeatures() {\n\t\treturn this.config.enableExperimentalFeatures;\n\t}\n\n\t/**\n\t * Will set the enableExperimentalFeatures\n\t */\n\tpublic set enableExperimentalFeatures(val) {\n\t\tthis._triggerConfigChange('enableExperimentalFeatures', val);\n\n\t\tthis.config.enableExperimentalFeatures = val;\n\t}\n\n\tpublic get maxListenersWarningThreshold() {\n\t\treturn this.config.maxListenersWarningThreshold;\n\t}\n\n\tpublic set maxListenersWarningThreshold(val) {\n\t\tthis._triggerConfigChange('maxListenersWarningThreshold', val);\n\t\tthis.setMaxListenerWarningThreshold(val);\n\t\tthis.config.maxListenersWarningThreshold = val;\n\t}\n\n\tpublic get defaultReturnFormat() {\n\t\treturn this.config.defaultReturnFormat;\n\t}\n\tpublic set defaultReturnFormat(val) {\n\t\tthis._triggerConfigChange('defaultReturnFormat', val);\n\n\t\tthis.config.defaultReturnFormat = val;\n\t}\n\n\tpublic get defaultNetworkId() {\n\t\treturn this.config.defaultNetworkId;\n\t}\n\n\tpublic set defaultNetworkId(val) {\n\t\tthis._triggerConfigChange('defaultNetworkId', val);\n\n\t\tthis.config.defaultNetworkId = val;\n\t}\n\n\tpublic get defaultChain() {\n\t\treturn this.config.defaultChain;\n\t}\n\n\tpublic set defaultChain(val) {\n\t\tif (\n\t\t\t!isNullish(this.config.defaultCommon) &&\n\t\t\t!isNullish(this.config.defaultCommon.baseChain) &&\n\t\t\tval !== this.config.defaultCommon.baseChain\n\t\t)\n\t\t\tthrow new ConfigChainMismatchError(this.config.defaultChain, val);\n\n\t\tthis._triggerConfigChange('defaultChain', val);\n\n\t\tthis.config.defaultChain = val;\n\t}\n\n\t/**\n\t * Will return the default hardfork. Default is `london`\n\t * The default hardfork property can be one of the following:\n\t * - `chainstart`\n\t * - `homestead`\n\t * - `dao`\n\t * - `tangerineWhistle`\n\t * - `spuriousDragon`\n\t * - `byzantium`\n\t * - `constantinople`\n\t * - `petersburg`\n\t * - `istanbul`\n\t * - `berlin`\n\t * - `london`\n\t * - 'arrowGlacier',\n\t * - 'tangerineWhistle',\n\t * - 'muirGlacier'\n\t *\n\t */\n\tpublic get defaultHardfork() {\n\t\treturn this.config.defaultHardfork;\n\t}\n\n\t/**\n\t * Will set the default hardfork.\n\t *\n\t */\n\tpublic set defaultHardfork(val) {\n\t\tif (\n\t\t\t!isNullish(this.config.defaultCommon) &&\n\t\t\t!isNullish(this.config.defaultCommon.hardfork) &&\n\t\t\tval !== this.config.defaultCommon.hardfork\n\t\t)\n\t\t\tthrow new ConfigHardforkMismatchError(this.config.defaultCommon.hardfork, val);\n\t\tthis._triggerConfigChange('defaultHardfork', val);\n\n\t\tthis.config.defaultHardfork = val;\n\t}\n\n\t/**\n\t *\n\t * Will get the default common property\n\t * The default common property does contain the following Common object:\n\t * - `customChain` - `Object`: The custom chain properties\n\t * \t- `name` - `string`: (optional) The name of the chain\n\t * \t- `networkId` - `number`: Network ID of the custom chain\n\t * \t- `chainId` - `number`: Chain ID of the custom chain\n\t * - `baseChain` - `string`: (optional) mainnet, goerli, kovan, rinkeby, or ropsten\n\t * - `hardfork` - `string`: (optional) chainstart, homestead, dao, tangerineWhistle, spuriousDragon, byzantium, constantinople, petersburg, istanbul, berlin, or london\n\t * Default is `undefined`.\n\t *\n\t */\n\tpublic get defaultCommon() {\n\t\treturn this.config.defaultCommon;\n\t}\n\n\t/**\n\t * Will set the default common property\n\t *\n\t */\n\tpublic set defaultCommon(val: Common | undefined) {\n\t\t// validation check if default hardfork is set and matches defaultCommon hardfork\n\t\tif (\n\t\t\t!isNullish(this.config.defaultHardfork) &&\n\t\t\t!isNullish(val) &&\n\t\t\t!isNullish(val.hardfork) &&\n\t\t\tthis.config.defaultHardfork !== val.hardfork\n\t\t)\n\t\t\tthrow new ConfigHardforkMismatchError(this.config.defaultHardfork, val.hardfork);\n\t\tif (\n\t\t\t!isNullish(this.config.defaultChain) &&\n\t\t\t!isNullish(val) &&\n\t\t\t!isNullish(val.baseChain) &&\n\t\t\tthis.config.defaultChain !== val.baseChain\n\t\t)\n\t\t\tthrow new ConfigChainMismatchError(this.config.defaultChain, val.baseChain);\n\t\tthis._triggerConfigChange('defaultCommon', val);\n\n\t\tthis.config.defaultCommon = val;\n\t}\n\n\tpublic get defaultTransactionType() {\n\t\treturn this.config.defaultTransactionType;\n\t}\n\n\tpublic set defaultTransactionType(val) {\n\t\tthis._triggerConfigChange('defaultTransactionType', val);\n\n\t\tthis.config.defaultTransactionType = val;\n\t}\n\n\tpublic get defaultMaxPriorityFeePerGas() {\n\t\treturn this.config.defaultMaxPriorityFeePerGas;\n\t}\n\n\tpublic set defaultMaxPriorityFeePerGas(val) {\n\t\tthis._triggerConfigChange('defaultMaxPriorityFeePerGas', val);\n\t\tthis.config.defaultMaxPriorityFeePerGas = val;\n\t}\n\n\tpublic get transactionBuilder() {\n\t\treturn this.config.transactionBuilder;\n\t}\n\n\tpublic set transactionBuilder(val) {\n\t\tthis._triggerConfigChange('transactionBuilder', val);\n\t\tthis.config.transactionBuilder = val;\n\t}\n\n\tpublic get transactionTypeParser() {\n\t\treturn this.config.transactionTypeParser;\n\t}\n\n\tpublic set transactionTypeParser(val) {\n\t\tthis._triggerConfigChange('transactionTypeParser', val);\n\t\tthis.config.transactionTypeParser = val;\n\t}\n\n\tpublic get customTransactionSchema(): CustomTransactionSchema | undefined {\n\t\treturn this.config.customTransactionSchema;\n\t}\n\n\tpublic set customTransactionSchema(schema: CustomTransactionSchema | undefined) {\n\t\tthis._triggerConfigChange('customTransactionSchema', schema);\n\t\tthis.config.customTransactionSchema = schema;\n\t}\n\n\tprivate _triggerConfigChange<K extends keyof Web3ConfigOptions>(\n\t\tconfig: K,\n\t\tnewValue: Web3ConfigOptions[K],\n\t) {\n\t\tthis.emit(Web3ConfigEvent.CONFIG_CHANGE, {\n\t\t\tname: config,\n\t\t\toldValue: this.config[config],\n\t\t\tnewValue,\n\t\t} as ConfigEvent<Web3ConfigOptions>);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport fetch from 'cross-fetch';\nimport {\n\tEthExecutionAPI,\n\tJsonRpcResponseWithResult,\n\tWeb3APIMethod,\n\tWeb3APIPayload,\n\tWeb3APIReturnType,\n\tWeb3APISpec,\n\tWeb3BaseProvider,\n\tWeb3ProviderStatus,\n} from 'web3-types';\nimport { InvalidClientError, MethodNotImplementedError, ResponseError } from 'web3-errors';\nimport { HttpProviderOptions } from './types.js';\n\nexport { HttpProviderOptions } from './types.js';\n\nexport default class HttpProvider<\n\tAPI extends Web3APISpec = EthExecutionAPI,\n> extends Web3BaseProvider<API> {\n\tprivate readonly clientUrl: string;\n\tprivate readonly httpProviderOptions: HttpProviderOptions | undefined;\n\n\tpublic constructor(clientUrl: string, httpProviderOptions?: HttpProviderOptions) {\n\t\tsuper();\n\t\tif (!HttpProvider.validateClientUrl(clientUrl)) throw new InvalidClientError(clientUrl);\n\t\tthis.clientUrl = clientUrl;\n\t\tthis.httpProviderOptions = httpProviderOptions;\n\t}\n\n\tprivate static validateClientUrl(clientUrl: string): boolean {\n\t\treturn typeof clientUrl === 'string' ? /^http(s)?:\\/\\//i.test(clientUrl) : false;\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic getStatus(): Web3ProviderStatus {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic supportsSubscriptions() {\n\t\treturn false;\n\t}\n\n\tpublic async request<\n\t\tMethod extends Web3APIMethod<API>,\n\t\tResultType = Web3APIReturnType<API, Method>,\n\t>(\n\t\tpayload: Web3APIPayload<API, Method>,\n\t\trequestOptions?: RequestInit,\n\t): Promise<JsonRpcResponseWithResult<ResultType>> {\n\t\tconst providerOptionsCombined = {\n\t\t\t...this.httpProviderOptions?.providerOptions,\n\t\t\t...requestOptions,\n\t\t};\n\t\tconst response = await fetch(this.clientUrl, {\n\t\t\t...providerOptionsCombined,\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t...providerOptionsCombined.headers,\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t\tbody: JSON.stringify(payload),\n\t\t});\n\t\tif (!response.ok) { \n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tthrow new ResponseError(await response.json(), undefined, undefined, response.status);\n\t\t};\n\n\t\treturn (await response.json()) as JsonRpcResponseWithResult<ResultType>;\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic on() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic removeListener() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic once() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic removeAllListeners() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic connect() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic disconnect() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic reset() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n\n\t/* eslint-disable class-methods-use-this */\n\tpublic reconnect() {\n\t\tthrow new MethodNotImplementedError();\n\t}\n}\n\nexport { HttpProvider };\n","// https://github.com/maxogden/websocket-stream/blob/48dc3ddf943e5ada668c31ccd94e9186f02fafbd/ws-fallback.js\n\nvar ws = null\n\nif (typeof WebSocket !== 'undefined') {\n ws = WebSocket\n} else if (typeof MozWebSocket !== 'undefined') {\n ws = MozWebSocket\n} else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket\n} else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket\n} else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket\n}\n\nexport default ws\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ClientRequestArgs } from 'http';\nimport WebSocket, { ClientOptions, CloseEvent } from 'isomorphic-ws';\nimport {\n\tEthExecutionAPI,\n\tWeb3APIMethod,\n\tWeb3APIPayload,\n\tWeb3APISpec,\n\tWeb3ProviderStatus,\n} from 'web3-types';\nimport { isNullish, ReconnectOptions, SocketProvider } from 'web3-utils';\nimport { ConnectionNotOpenError } from 'web3-errors';\n\nexport { ClientRequestArgs } from 'http';\n\nexport { ClientOptions } from 'isomorphic-ws';\n\n/**\n * Use WebSocketProvider to connect to a Node using a WebSocket connection, i.e. over the `ws` or `wss` protocol.\n *\n * @example\n * ```ts\n * const provider = new WebSocketProvider(\n * \t\t`ws://localhost:8545`,\n * \t\t{\n * \t\t\theaders: {\n * \t\t\t\t// to provide the API key if the Node requires the key to be inside the `headers` for example:\n * \t\t\t\t'x-api-key': '<Api key>',\n * \t\t\t},\n * \t\t},\n * \t\t{\n * \t\t\tdelay: 500,\n * \t\t\tautoReconnect: true,\n * \t\t\tmaxAttempts: 10,\n * \t\t},\n * \t);\n * ```\n *\n * The second and the third parameters are both optional. And you can for example, the second parameter could be an empty object or undefined.\n * * @example\n * ```ts\n * const provider = new WebSocketProvider(\n * \t\t`ws://localhost:8545`,\n * \t\t{},\n * \t\t{\n * \t\t\tdelay: 500,\n * \t\t\tautoReconnect: true,\n * \t\t\tmaxAttempts: 10,\n * \t\t},\n * \t);\n * ```\n */\nexport default class WebSocketProvider<\n\tAPI extends Web3APISpec = EthExecutionAPI,\n> extends SocketProvider<WebSocket.MessageEvent, WebSocket.CloseEvent, WebSocket.ErrorEvent, API> {\n\tprotected readonly _socketOptions?: ClientOptions | ClientRequestArgs;\n\n\tprotected _socketConnection?: WebSocket;\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprotected _validateProviderPath(providerUrl: string): boolean {\n\t\treturn typeof providerUrl === 'string' ? /^ws(s)?:\\/\\//i.test(providerUrl) : false;\n\t}\n\n\t/**\n\t * This is a class used for Web Socket connections. It extends the abstract class SocketProvider {@link SocketProvider} that extends the EIP-1193 provider {@link EIP1193Provider}.\n\t * @param socketPath - The path to the Web Socket.\n\t * @param socketOptions - The options for the Web Socket client.\n\t * @param reconnectOptions - The options for the socket reconnection {@link ReconnectOptions}\n\t */\n\t// this constructor is to specify the type for `socketOptions` for a better intellisense.\n\t// eslint-disable-next-line no-useless-constructor\n\tpublic constructor(\n\t\tsocketPath: string,\n\t\tsocketOptions?: ClientOptions | ClientRequestArgs,\n\t\treconnectOptions?: Partial<ReconnectOptions>,\n\t) {\n\t\tsuper(socketPath, socketOptions, reconnectOptions);\n\t}\n\n\tpublic getStatus(): Web3ProviderStatus {\n\t\tif (this._socketConnection && !isNullish(this._socketConnection)) {\n\t\t\tswitch (this._socketConnection.readyState) {\n\t\t\t\tcase this._socketConnection.CONNECTING: {\n\t\t\t\t\treturn 'connecting';\n\t\t\t\t}\n\t\t\t\tcase this._socketConnection.OPEN: {\n\t\t\t\t\treturn 'connected';\n\t\t\t\t}\n\t\t\t\tdefault: {\n\t\t\t\t\treturn 'disconnected';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 'disconnected';\n\t}\n\n\tprotected _openSocketConnection() {\n\t\tthis._socketConnection = new WebSocket(\n\t\t\tthis._socketPath,\n\t\t\tundefined,\n\t\t\tthis._socketOptions && Object.keys(this._socketOptions).length === 0\n\t\t\t\t? undefined\n\t\t\t\t: this._socketOptions,\n\t\t);\n\t}\n\n\tprotected _closeSocketConnection(code?: number, data?: string) {\n\t\tthis._socketConnection?.close(code, data);\n\t}\n\n\tprotected _sendToSocket<Method extends Web3APIMethod<API>>(\n\t\tpayload: Web3APIPayload<API, Method>,\n\t): void {\n\t\tif (this.getStatus() === 'disconnected') {\n\t\t\tthrow new ConnectionNotOpenError();\n\t\t}\n\t\tthis._socketConnection?.send(JSON.stringify(payload));\n\t}\n\n\tprotected _parseResponses(event: WebSocket.MessageEvent) {\n\t\treturn this.chunkResponseParser.parseResponse(event.data as string);\n\t}\n\n\tprotected _addSocketListeners(): void {\n\t\tthis._socketConnection?.addEventListener('open', this._onOpenHandler);\n\t\tthis._socketConnection?.addEventListener('message', this._onMessageHandler);\n\t\tthis._socketConnection?.addEventListener('close', e => this._onCloseHandler(e));\n\t\tthis._socketConnection?.addEventListener('error', this._onErrorHandler);\n\t}\n\n\tprotected _removeSocketListeners(): void {\n\t\tthis._socketConnection?.removeEventListener('message', this._onMessageHandler);\n\t\tthis._socketConnection?.removeEventListener('open', this._onOpenHandler);\n\t\tthis._socketConnection?.removeEventListener('close', this._onCloseHandler);\n\t\t// note: we intentionally keep the error event listener to be able to emit it in case an error happens when closing the connection\n\t}\n\n\tprotected _onCloseEvent(event: CloseEvent): void {\n\t\tif (\n\t\t\tthis._reconnectOptions.autoReconnect &&\n\t\t\t(![1000, 1001].includes(event.code) || !event.wasClean)\n\t\t) {\n\t\t\tthis._reconnect();\n\t\t\treturn;\n\t\t}\n\t\tthis._clearQueues(event);\n\t\tthis._removeSocketListeners();\n\t\tthis._onDisconnect(event.code, event.reason);\n\t\t// disconnect was successful and can safely remove error listener\n\t\tthis._socketConnection?.removeEventListener('error', this._onErrorHandler);\n\t}\n}\n\nexport { WebSocketProvider };\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tEIP1193Provider,\n\tLegacyRequestProvider,\n\tLegacySendAsyncProvider,\n\tLegacySendProvider,\n\tSupportedProviders,\n\tWeb3APISpec,\n\tWeb3BaseProvider,\n\tMetaMaskProvider,\n} from 'web3-types';\n\nexport const isWeb3Provider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is Web3BaseProvider<API> => Web3BaseProvider.isWeb3Provider(provider);\n\nexport const isMetaMaskProvider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is MetaMaskProvider<API> =>\n\ttypeof provider !== 'string' &&\n\t'request' in provider &&\n\tprovider.request.constructor.name === 'AsyncFunction' &&\n\t'isMetaMask' in provider &&\n\tprovider.isMetaMask;\n\nexport const isLegacyRequestProvider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is LegacyRequestProvider =>\n\ttypeof provider !== 'string' &&\n\t'request' in provider &&\n\tprovider.request.constructor.name === 'Function';\n\nexport const isEIP1193Provider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is EIP1193Provider<API> =>\n\ttypeof provider !== 'string' &&\n\t'request' in provider &&\n\tprovider.request.constructor.name === 'AsyncFunction';\n\nexport const isLegacySendProvider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is LegacySendProvider => typeof provider !== 'string' && 'send' in provider;\n\nexport const isLegacySendAsyncProvider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is LegacySendAsyncProvider => typeof provider !== 'string' && 'sendAsync' in provider;\n\nexport const isSupportedProvider = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): provider is SupportedProviders<API> =>\n\tprovider &&\n\t(isWeb3Provider(provider) ||\n\t\tisEIP1193Provider(provider) ||\n\t\tisLegacyRequestProvider(provider) ||\n\t\tisLegacySendAsyncProvider(provider) ||\n\t\tisLegacySendProvider(provider));\nexport const isSupportSubscriptions = <API extends Web3APISpec>(\n\tprovider: SupportedProviders<API>,\n): boolean => {\n\tif (provider && 'supportsSubscriptions' in provider) {\n\t\treturn provider.supportsSubscriptions();\n\t}\n\n\tif (provider && typeof provider !== 'string' && 'on' in provider) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tContractExecutionError,\n\tInvalidResponseError,\n\tProviderError,\n\tResponseError,\n\trpcErrorsMap,\n\tRpcError,\n} from 'web3-errors';\nimport HttpProvider from 'web3-providers-http';\nimport WSProvider from 'web3-providers-ws';\nimport {\n\tEthExecutionAPI,\n\tJsonRpcBatchRequest,\n\tJsonRpcBatchResponse,\n\tJsonRpcPayload,\n\tJsonRpcResponse,\n\tJsonRpcError,\n\tJsonRpcResponseWithResult,\n\tJsonRpcResponseWithError,\n\tSupportedProviders,\n\tWeb3APIMethod,\n\tWeb3APIPayload,\n\tWeb3APIRequest,\n\tWeb3APIReturnType,\n\tWeb3APISpec,\n\tWeb3BaseProvider,\n\tWeb3BaseProviderConstructor,\n} from 'web3-types';\nimport { isNullish, isPromise, jsonRpc, isResponseRpcError } from 'web3-utils';\nimport {\n\tisEIP1193Provider,\n\tisLegacyRequestProvider,\n\tisLegacySendAsyncProvider,\n\tisLegacySendProvider,\n\tisWeb3Provider,\n} from './utils.js';\nimport { Web3EventEmitter } from './web3_event_emitter.js';\nimport { RequestManagerMiddleware } from './types.js';\n\nexport enum Web3RequestManagerEvent {\n\tPROVIDER_CHANGED = 'PROVIDER_CHANGED',\n\tBEFORE_PROVIDER_CHANGE = 'BEFORE_PROVIDER_CHANGE',\n}\n\nconst availableProviders: {\n\tHttpProvider: Web3BaseProviderConstructor;\n\tWebsocketProvider: Web3BaseProviderConstructor;\n} = {\n\tHttpProvider: HttpProvider as Web3BaseProviderConstructor,\n\tWebsocketProvider: WSProvider as Web3BaseProviderConstructor,\n};\n\nexport class Web3RequestManager<\n\tAPI extends Web3APISpec = EthExecutionAPI,\n> extends Web3EventEmitter<{\n\t[key in Web3RequestManagerEvent]: SupportedProviders<API> | undefined;\n}> {\n\tprivate _provider?: SupportedProviders<API>;\n\tprivate readonly useRpcCallSpecification?: boolean;\n\tpublic middleware?: RequestManagerMiddleware<API>;\n\n\tpublic constructor(\n\t\tprovider?: SupportedProviders<API> | string,\n\t\tuseRpcCallSpecification?: boolean,\n\t\trequestManagerMiddleware?: RequestManagerMiddleware<API>,\n\t) {\n\t\tsuper();\n\n\t\tif (!isNullish(provider)) {\n\t\t\tthis.setProvider(provider);\n\t\t}\n\t\tthis.useRpcCallSpecification = useRpcCallSpecification;\n\n\t\tif (!isNullish(requestManagerMiddleware)) this.middleware = requestManagerMiddleware;\n\t}\n\n\t/**\n\t * Will return all available providers\n\t */\n\tpublic static get providers() {\n\t\treturn availableProviders;\n\t}\n\n\t/**\n\t * Will return the current provider.\n\t *\n\t * @returns Returns the current provider\n\t */\n\tpublic get provider() {\n\t\treturn this._provider;\n\t}\n\n\t/**\n\t * Will return all available providers\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic get providers() {\n\t\treturn availableProviders;\n\t}\n\n\t/**\n\t * Use to set provider. Provider can be a provider instance or a string.\n\t *\n\t * @param provider - The provider to set\n\t */\n\tpublic setProvider(provider?: SupportedProviders<API> | string): boolean {\n\t\tlet newProvider: SupportedProviders<API> | undefined;\n\n\t\t// autodetect provider\n\t\tif (provider && typeof provider === 'string' && this.providers) {\n\t\t\t// HTTP\n\t\t\tif (/^http(s)?:\\/\\//i.test(provider)) {\n\t\t\t\tnewProvider = new this.providers.HttpProvider<API>(provider);\n\n\t\t\t\t// WS\n\t\t\t} else if (/^ws(s)?:\\/\\//i.test(provider)) {\n\t\t\t\tnewProvider = new this.providers.WebsocketProvider<API>(provider);\n\t\t\t} else {\n\t\t\t\tthrow new ProviderError(`Can't autodetect provider for \"${provider}\"`);\n\t\t\t}\n\t\t} else if (isNullish(provider)) {\n\t\t\t// In case want to unset the provider\n\t\t\tnewProvider = undefined;\n\t\t} else {\n\t\t\tnewProvider = provider as SupportedProviders<API>;\n\t\t}\n\n\t\tthis.emit(Web3RequestManagerEvent.BEFORE_PROVIDER_CHANGE, this._provider);\n\t\tthis._provider = newProvider;\n\t\tthis.emit(Web3RequestManagerEvent.PROVIDER_CHANGED, this._provider);\n\t\treturn true;\n\t}\n\n\tpublic setMiddleware(requestManagerMiddleware: RequestManagerMiddleware<API>) {\n\t\tthis.middleware = requestManagerMiddleware;\n\t}\n\n\t/**\n\t *\n\t * Will execute a request\n\t *\n\t * @param request - {@link Web3APIRequest} The request to send\n\t *\n\t * @returns The response of the request {@link ResponseType}. If there is error\n\t * in the response, will throw an error\n\t */\n\tpublic async send<\n\t\tMethod extends Web3APIMethod<API>,\n\t\tResponseType = Web3APIReturnType<API, Method>,\n\t>(request: Web3APIRequest<API, Method>): Promise<ResponseType> {\n\t\tconst requestObj = { ...request };\n\n\t\tlet response = await this._sendRequest<Method, ResponseType>(requestObj);\n\n\t\tif (!isNullish(this.middleware)) response = await this.middleware.processResponse(response);\n\n\t\tif (jsonRpc.isResponseWithResult(response)) {\n\t\t\treturn response.result;\n\t\t}\n\n\t\tthrow new ResponseError(response);\n\t}\n\n\t/**\n\t * Same as send, but, will execute a batch of requests\n\t *\n\t * @param request {@link JsonRpcBatchRequest} The batch request to send\n\t */\n\tpublic async sendBatch(request: JsonRpcBatchRequest): Promise<JsonRpcBatchResponse<unknown>> {\n\t\tconst response = await this._sendRequest<never, never>(request);\n\n\t\treturn response as JsonRpcBatchResponse<unknown>;\n\t}\n\n\tprivate async _sendRequest<\n\t\tMethod extends Web3APIMethod<API>,\n\t\tResponseType = Web3APIReturnType<API, Method>,\n\t>(\n\t\trequest: Web3APIRequest<API, Method> | JsonRpcBatchRequest,\n\t): Promise<JsonRpcResponse<ResponseType>> {\n\t\tconst { provider } = this;\n\n\t\tif (isNullish(provider)) {\n\t\t\tthrow new ProviderError(\n\t\t\t\t'Provider not available. Use `.setProvider` or `.provider=` to initialize the provider.',\n\t\t\t);\n\t\t}\n\n\t\tlet payload = (\n\t\t\tjsonRpc.isBatchRequest(request)\n\t\t\t\t? jsonRpc.toBatchPayload(request)\n\t\t\t\t: jsonRpc.toPayload(request)\n\t\t) as JsonRpcPayload;\n\n\t\tif (!isNullish(this.middleware)) {\n\t\t\tpayload = await this.middleware.processRequest(payload);\n\t\t}\n\t\tif (isWeb3Provider(provider)) {\n\t\t\tlet response;\n\n\t\t\ttry {\n\t\t\t\tresponse = await provider.request<Method, ResponseType>(\n\t\t\t\t\tpayload as Web3APIPayload<API, Method>,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\t// Check if the provider throw an error instead of reject with error\n\t\t\t\tresponse = error as JsonRpcResponse<ResponseType>;\n\t\t\t}\n\t\t\treturn this._processJsonRpcResponse(payload, response, { legacy: false, error: false });\n\t\t}\n\n\t\tif (isEIP1193Provider(provider)) {\n\t\t\treturn (provider as Web3BaseProvider<API>)\n\t\t\t\t.request<Method, ResponseType>(payload as Web3APIPayload<API, Method>)\n\t\t\t\t.then(\n\t\t\t\t\tres =>\n\t\t\t\t\t\tthis._processJsonRpcResponse(payload, res, {\n\t\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t}) as JsonRpcResponseWithResult<ResponseType>,\n\t\t\t\t)\n\t\t\t\t.catch(error =>\n\t\t\t\t\tthis._processJsonRpcResponse(\n\t\t\t\t\t\tpayload,\n\t\t\t\t\t\terror as JsonRpcResponse<ResponseType, unknown>,\n\t\t\t\t\t\t{ legacy: true, error: true },\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t}\n\n\t\t// TODO: This could be deprecated and removed.\n\t\tif (isLegacyRequestProvider(provider)) {\n\t\t\treturn new Promise<JsonRpcResponse<ResponseType>>((resolve, reject) => {\n\t\t\t\tconst rejectWithError = (err: unknown) => {\n\t\t\t\t\treject(\n\t\t\t\t\t\tthis._processJsonRpcResponse(\n\t\t\t\t\t\t\tpayload,\n\t\t\t\t\t\t\terr as JsonRpcResponse<ResponseType>,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t};\n\n\t\t\t\tconst resolveWithResponse = (response: JsonRpcResponse<ResponseType>) =>\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tthis._processJsonRpcResponse(payload, response, {\n\t\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\tconst result = provider.request<ResponseType>(\n\t\t\t\t\tpayload,\n\t\t\t\t\t// a callback that is expected to be called after getting the response:\n\t\t\t\t\t(err, response) => {\n\t\t\t\t\t\tif (err) {\n\t\t\t\t\t\t\treturn rejectWithError(err);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn resolveWithResponse(response);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\t// Some providers, that follow a previous drafted version of EIP1193, has a `request` function\n\t\t\t\t//\tthat is not defined as `async`, but it returns a promise.\n\t\t\t\t// Such providers would not be picked with if(isEIP1193Provider(provider)) above\n\t\t\t\t//\tbecause the `request` function was not defined with `async` and so the function definition is not `AsyncFunction`.\n\t\t\t\t// Like this provider: https://github.dev/NomicFoundation/hardhat/blob/62bea2600785595ba36f2105564076cf5cdf0fd8/packages/hardhat-core/src/internal/core/providers/backwards-compatibility.ts#L19\n\t\t\t\t// So check if the returned result is a Promise, and resolve with it accordingly.\n\t\t\t\t// Note: in this case we expect the callback provided above to never be called.\n\t\t\t\tif (isPromise(result)) {\n\t\t\t\t\tconst responsePromise = result as unknown as Promise<\n\t\t\t\t\t\tJsonRpcResponse<ResponseType>\n\t\t\t\t\t>;\n\t\t\t\t\tresponsePromise.then(resolveWithResponse).catch(error => {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Attempt to process the error response\n\t\t\t\t\t\t\tconst processedError = this._processJsonRpcResponse(\n\t\t\t\t\t\t\t\tpayload,\n\t\t\t\t\t\t\t\terror as JsonRpcResponse<ResponseType, unknown>,\n\t\t\t\t\t\t\t\t{ legacy: true, error: true },\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treject(processedError);\n\t\t\t\t\t\t} catch (processingError) {\n\t\t\t\t\t\t\t// Catch any errors that occur during the error processing\n\t\t\t\t\t\t\treject(processingError);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// TODO: This could be deprecated and removed.\n\t\tif (isLegacySendProvider(provider)) {\n\t\t\treturn new Promise<JsonRpcResponse<ResponseType>>((resolve, reject): void => {\n\t\t\t\tprovider.send<ResponseType>(payload, (err, response) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\treturn reject(\n\t\t\t\t\t\t\tthis._processJsonRpcResponse(\n\t\t\t\t\t\t\t\tpayload,\n\t\t\t\t\t\t\t\terr as unknown as JsonRpcResponse<ResponseType>,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\t\t\t\terror: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isNullish(response)) {\n\t\t\t\t\t\tthrow new ResponseError(\n\t\t\t\t\t\t\t{} as never,\n\t\t\t\t\t\t\t'Got a \"nullish\" response from provider.',\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn resolve(\n\t\t\t\t\t\tthis._processJsonRpcResponse(payload, response, {\n\t\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\t\terror: false,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// TODO: This could be deprecated and removed.\n\t\tif (isLegacySendAsyncProvider(provider)) {\n\t\t\treturn provider\n\t\t\t\t.sendAsync<ResponseType>(payload)\n\t\t\t\t.then(response =>\n\t\t\t\t\tthis._processJsonRpcResponse(payload, response, { legacy: true, error: false }),\n\t\t\t\t)\n\t\t\t\t.catch(error =>\n\t\t\t\t\tthis._processJsonRpcResponse(payload, error as JsonRpcResponse<ResponseType>, {\n\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\terror: true,\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t}\n\n\t\tthrow new ProviderError('Provider does not have a request or send method to use.');\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprivate _processJsonRpcResponse<ResultType, ErrorType, RequestType>(\n\t\tpayload: JsonRpcPayload<RequestType>,\n\t\tresponse: JsonRpcResponse<ResultType, ErrorType>,\n\t\t{ legacy, error }: { legacy: boolean; error: boolean },\n\t): JsonRpcResponse<ResultType> | never {\n\t\tif (isNullish(response)) {\n\t\t\treturn this._buildResponse(\n\t\t\t\tpayload,\n\t\t\t\t// Some providers uses \"null\" as valid empty response\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\tnull as unknown as JsonRpcResponse<ResultType, ErrorType>,\n\t\t\t\terror,\n\t\t\t);\n\t\t}\n\n\t\t// This is the majority of the cases so check these first\n\t\t// A valid JSON-RPC response with error object\n\t\tif (jsonRpc.isResponseWithError<ErrorType>(response)) {\n\t\t\t// check if its an rpc error\n\t\t\tif (\n\t\t\t\tthis.useRpcCallSpecification &&\n\t\t\t\tisResponseRpcError(response as JsonRpcResponseWithError)\n\t\t\t) {\n\t\t\t\tconst rpcErrorResponse = response as JsonRpcResponseWithError;\n\t\t\t\t// check if rpc error flag is on and response error code match an EIP-1474 or a standard rpc error code\n\t\t\t\tif (rpcErrorsMap.get(rpcErrorResponse.error.code)) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\t\t\tconst Err = rpcErrorsMap.get(rpcErrorResponse.error.code)!.error;\n\t\t\t\t\tthrow new Err(rpcErrorResponse);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new RpcError(rpcErrorResponse);\n\t\t\t\t}\n\t\t\t} else if (!Web3RequestManager._isReverted(response)) {\n\t\t\t\tthrow new InvalidResponseError<ErrorType, RequestType>(response, payload);\n\t\t\t}\n\t\t}\n\n\t\t// This is the majority of the cases so check these first\n\t\t// A valid JSON-RPC response with result object\n\t\tif (jsonRpc.isResponseWithResult<ResultType>(response)) {\n\t\t\treturn response;\n\t\t}\n\n\t\tif ((response as unknown) instanceof Error) {\n\t\t\tWeb3RequestManager._isReverted(response);\n\t\t\tthrow response;\n\t\t}\n\n\t\tif (!legacy && jsonRpc.isBatchRequest(payload) && jsonRpc.isBatchResponse(response)) {\n\t\t\treturn response as JsonRpcBatchResponse<ResultType>;\n\t\t}\n\n\t\tif (legacy && !error && jsonRpc.isBatchRequest(payload)) {\n\t\t\treturn response as JsonRpcBatchResponse<ResultType>;\n\t\t}\n\n\t\tif (legacy && error && jsonRpc.isBatchRequest(payload)) {\n\t\t\t// In case of error batch response we don't want to throw Invalid response\n\t\t\tthrow response;\n\t\t}\n\n\t\tif (\n\t\t\tlegacy &&\n\t\t\t!jsonRpc.isResponseWithError(response) &&\n\t\t\t!jsonRpc.isResponseWithResult(response)\n\t\t) {\n\t\t\treturn this._buildResponse(payload, response, error);\n\t\t}\n\t\tif (jsonRpc.isBatchRequest(payload) && !Array.isArray(response)) {\n\t\t\tthrow new ResponseError(response, 'Got normal response for a batch request.');\n\t\t}\n\n\t\tif (!jsonRpc.isBatchRequest(payload) && Array.isArray(response)) {\n\t\t\tthrow new ResponseError(response, 'Got batch response for a normal request.');\n\t\t}\n\n\t\tthrow new ResponseError(response, 'Invalid response');\n\t}\n\n\tprivate static _isReverted<ResultType, ErrorType>(\n\t\tresponse: JsonRpcResponse<ResultType, ErrorType>,\n\t): boolean {\n\t\tlet error: JsonRpcError | undefined;\n\n\t\tif (jsonRpc.isResponseWithError<ErrorType>(response)) {\n\t\t\terror = (response as JsonRpcResponseWithError).error;\n\t\t} else if ((response as unknown) instanceof Error) {\n\t\t\terror = response as unknown as JsonRpcError;\n\t\t}\n\n\t\t// This message means that there was an error while executing the code of the smart contract\n\t\t// However, more processing will happen at a higher level to decode the error data,\n\t\t//\taccording to the Error ABI, if it was available as of EIP-838.\n\t\tif (error?.message.includes('revert')) throw new ContractExecutionError(error);\n\n\t\treturn false;\n\t}\n\t// Need to use same types as _processJsonRpcResponse so have to declare as instance method\n\t// eslint-disable-next-line class-methods-use-this\n\tprivate _buildResponse<ResultType, ErrorType, RequestType>(\n\t\tpayload: JsonRpcPayload<RequestType>,\n\t\tresponse: JsonRpcResponse<ResultType, ErrorType>,\n\t\terror: boolean,\n\t): JsonRpcResponse<ResultType> {\n\t\tconst res = {\n\t\t\tjsonrpc: '2.0',\n\t\t\t// eslint-disable-next-line no-nested-ternary\n\t\t\tid: jsonRpc.isBatchRequest(payload)\n\t\t\t\t? payload[0].id\n\t\t\t\t: 'id' in payload\n\t\t\t\t? payload.id\n\t\t\t\t: // Have to use the null here explicitly\n\t\t\t\t // eslint-disable-next-line no-null/no-null\n\t\t\t\t null,\n\t\t};\n\n\t\tif (error) {\n\t\t\treturn {\n\t\t\t\t...res,\n\t\t\t\terror: response as unknown,\n\t\t\t} as JsonRpcResponse<ResultType>;\n\t\t}\n\n\t\treturn {\n\t\t\t...res,\n\t\t\tresult: response as unknown,\n\t\t} as JsonRpcResponse<ResultType>;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tEIP1193Provider,\n\tJsonRpcNotification,\n\tJsonRpcSubscriptionResult,\n\tJsonRpcSubscriptionResultOld,\n\tLog,\n\tWeb3APISpec,\n\tWeb3BaseProvider,\n} from 'web3-types';\nimport { ProviderError, SubscriptionError } from 'web3-errors';\nimport { isNullish } from 'web3-utils';\nimport { isSupportSubscriptions } from './utils.js';\nimport { Web3RequestManager, Web3RequestManagerEvent } from './web3_request_manager.js';\n// eslint-disable-next-line import/no-cycle\nimport { Web3SubscriptionConstructor } from './web3_subscriptions.js';\n\ntype ShouldUnsubscribeCondition = ({\n\tid,\n\tsub,\n}: {\n\tid: string;\n\tsub: unknown;\n}) => boolean | undefined;\n\nexport class Web3SubscriptionManager<\n\tAPI extends Web3APISpec = Web3APISpec,\n\tRegisteredSubs extends { [key: string]: Web3SubscriptionConstructor<API> } = {\n\t\t[key: string]: Web3SubscriptionConstructor<API>;\n\t},\n> {\n\tprivate readonly _subscriptions: Map<\n\t\tstring,\n\t\tInstanceType<RegisteredSubs[keyof RegisteredSubs]>\n\t> = new Map();\n\n\t/**\n\t *\n\t * @param - requestManager\n\t * @param - registeredSubscriptions\n\t *\n\t * @example\n\t * ```ts\n\t * const requestManager = new Web3RequestManager(\"ws://localhost:8545\");\n\t * const subscriptionManager = new Web3SubscriptionManager(requestManager, {});\n\t * ```\n\t */\n\tpublic constructor(\n\t\trequestManager: Web3RequestManager<API>,\n\t\tregisteredSubscriptions: RegisteredSubs,\n\t);\n\t/**\n\t * @deprecated This constructor overloading should not be used\n\t */\n\tpublic constructor(\n\t\trequestManager: Web3RequestManager<API>,\n\t\tregisteredSubscriptions: RegisteredSubs,\n\t\ttolerateUnlinkedSubscription: boolean,\n\t);\n\tpublic constructor(\n\t\tpublic readonly requestManager: Web3RequestManager<API>,\n\t\tpublic readonly registeredSubscriptions: RegisteredSubs,\n\t\tprivate readonly tolerateUnlinkedSubscription: boolean = false,\n\t) {\n\t\tthis.requestManager.on(Web3RequestManagerEvent.BEFORE_PROVIDER_CHANGE, async () => {\n\t\t\tawait this.unsubscribe();\n\t\t});\n\n\t\tthis.requestManager.on(Web3RequestManagerEvent.PROVIDER_CHANGED, () => {\n\t\t\tthis.clear();\n\t\t\tthis.listenToProviderEvents();\n\t\t});\n\n\t\tthis.listenToProviderEvents();\n\t}\n\n\tprivate listenToProviderEvents() {\n\t\tconst providerAsWebProvider = this.requestManager.provider as Web3BaseProvider;\n\t\tif (\n\t\t\t!this.requestManager.provider ||\n\t\t\t(typeof providerAsWebProvider?.supportsSubscriptions === 'function' &&\n\t\t\t\t!providerAsWebProvider?.supportsSubscriptions())\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof (this.requestManager.provider as EIP1193Provider<API>).on === 'function') {\n\t\t\tif (\n\t\t\t\ttypeof (this.requestManager.provider as EIP1193Provider<API>).request === 'function'\n\t\t\t) {\n\t\t\t\t// Listen to provider messages and data\n\t\t\t\t(this.requestManager.provider as EIP1193Provider<API>).on(\n\t\t\t\t\t'message',\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n\t\t\t\t\t(message: any) => this.messageListener(message),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-argument\n\t\t\t\tproviderAsWebProvider.on<Log>('data', (data: any) => this.messageListener(data));\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected messageListener(\n\t\tdata?:\n\t\t\t| JsonRpcSubscriptionResult\n\t\t\t| JsonRpcSubscriptionResultOld<Log>\n\t\t\t| JsonRpcNotification<Log>,\n\t) {\n\t\tif (!data) {\n\t\t\tthrow new SubscriptionError('Should not call messageListener with no data. Type was');\n\t\t}\n\t\tconst subscriptionId =\n\t\t\t(data as JsonRpcNotification).params?.subscription ||\n\t\t\t(data as JsonRpcSubscriptionResultOld).data?.subscription ||\n\t\t\t(data as JsonRpcSubscriptionResult).id?.toString(16);\n\n\t\t// Process if the received data is related to a subscription\n\t\tif (subscriptionId) {\n\t\t\tconst sub = this._subscriptions.get(subscriptionId);\n\t\t\tsub?.processSubscriptionData(data);\n\t\t}\n\t}\n\t/**\n\t * Will create a new subscription\n\t *\n\t * @param name - The subscription you want to subscribe to\n\t * @param args - Optional additional parameters, depending on the subscription type\n\t * @param returnFormat- ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t *\n\t * Will subscribe to a specific topic (note: name)\n\t * @returns The subscription object\n\t */\n\tpublic async subscribe<T extends keyof RegisteredSubs>(\n\t\tname: T,\n\t\targs?: ConstructorParameters<RegisteredSubs[T]>[0],\n\t\treturnFormat: DataFormat = DEFAULT_RETURN_FORMAT,\n\t): Promise<InstanceType<RegisteredSubs[T]>> {\n\t\tconst Klass: RegisteredSubs[T] = this.registeredSubscriptions[name];\n\t\tif (!Klass) {\n\t\t\tthrow new SubscriptionError('Invalid subscription type');\n\t\t}\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tconst subscription = new Klass(args ?? undefined, {\n\t\t\tsubscriptionManager: this as Web3SubscriptionManager<API, RegisteredSubs>,\n\t\t\treturnFormat,\n\t\t} as any) as InstanceType<RegisteredSubs[T]>;\n\n\t\tawait this.addSubscription(subscription);\n\n\t\treturn subscription;\n\t}\n\n\t/**\n\t * Will returns all subscriptions.\n\t */\n\tpublic get subscriptions() {\n\t\treturn this._subscriptions;\n\t}\n\n\t/**\n\t *\n\t * Adds an instance of {@link Web3Subscription} and subscribes to it\n\t *\n\t * @param sub - A {@link Web3Subscription} object\n\t */\n\tpublic async addSubscription(sub: InstanceType<RegisteredSubs[keyof RegisteredSubs]>) {\n\t\tif (!this.requestManager.provider) {\n\t\t\tthrow new ProviderError('Provider not available');\n\t\t}\n\n\t\tif (!this.supportsSubscriptions()) {\n\t\t\tthrow new SubscriptionError('The current provider does not support subscriptions');\n\t\t}\n\n\t\tif (sub.id && this._subscriptions.has(sub.id)) {\n\t\t\tthrow new SubscriptionError(`Subscription with id \"${sub.id}\" already exists`);\n\t\t}\n\n\t\tawait sub.sendSubscriptionRequest();\n\n\t\tif (isNullish(sub.id)) {\n\t\t\tthrow new SubscriptionError('Subscription is not subscribed yet.');\n\t\t}\n\n\t\tthis._subscriptions.set(sub.id, sub);\n\n\t\treturn sub.id;\n\t}\n\n\t/**\n\t * Will clear a subscription\n\t *\n\t * @param id - The subscription of type {@link Web3Subscription} to remove\n\t */\n\tpublic async removeSubscription(sub: InstanceType<RegisteredSubs[keyof RegisteredSubs]>) {\n\t\tconst { id } = sub;\n\n\t\tif (isNullish(id)) {\n\t\t\tthrow new SubscriptionError(\n\t\t\t\t'Subscription is not subscribed yet. Or, had already been unsubscribed but not through the Subscription Manager.',\n\t\t\t);\n\t\t}\n\n\t\tif (!this._subscriptions.has(id) && !this.tolerateUnlinkedSubscription) {\n\t\t\tthrow new SubscriptionError(`Subscription with id \"${id.toString()}\" does not exists`);\n\t\t}\n\n\t\tawait sub.sendUnsubscribeRequest();\n\t\tthis._subscriptions.delete(id);\n\t\treturn id;\n\t}\n\t/**\n\t * Will unsubscribe all subscriptions that fulfill the condition\n\t *\n\t * @param condition - A function that access and `id` and a `subscription` and return `true` or `false`\n\t * @returns An array of all the un-subscribed subscriptions\n\t */\n\tpublic async unsubscribe(condition?: ShouldUnsubscribeCondition) {\n\t\tconst result = [];\n\t\tfor (const [id, sub] of this.subscriptions.entries()) {\n\t\t\tif (!condition || (typeof condition === 'function' && condition({ id, sub }))) {\n\t\t\t\tresult.push(this.removeSubscription(sub));\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.all(result);\n\t}\n\n\t/**\n\t * Clears all subscriptions\n\t */\n\tpublic clear() {\n\t\tthis._subscriptions.clear();\n\t}\n\n\t/**\n\t * Check whether the current provider supports subscriptions.\n\t *\n\t * @returns `true` or `false` depending on if the current provider supports subscriptions\n\t */\n\tpublic supportsSubscriptions(): boolean {\n\t\treturn isNullish(this.requestManager.provider)\n\t\t\t? false\n\t\t\t: isSupportSubscriptions(this.requestManager.provider);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// eslint-disable-next-line max-classes-per-file\nimport {\n\tBlockOutput,\n\tDEFAULT_RETURN_FORMAT,\n\tDataFormat,\n\tEthExecutionAPI,\n\tJsonRpcSubscriptionResult,\n\tJsonRpcSubscriptionResultOld,\n\tJsonRpcNotification,\n\tLog,\n\tHexString,\n\tWeb3APIParams,\n\tWeb3APISpec,\n} from 'web3-types';\nimport { jsonRpc } from 'web3-utils';\n\n// eslint-disable-next-line import/no-cycle\nimport { Web3SubscriptionManager } from './web3_subscription_manager.js';\nimport { Web3EventEmitter, Web3EventMap } from './web3_event_emitter.js';\nimport { Web3RequestManager } from './web3_request_manager.js';\n\ntype CommonSubscriptionEvents = {\n\tdata: unknown; // Fires on each incoming block header.\n\terror: Error; // Fires when an error in the subscription occurs.\n\tconnected: string; // Fires once after the subscription successfully connected. Returns the subscription id.\n};\n\nexport abstract class Web3Subscription<\n\tEventMap extends Web3EventMap,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tArgsType = any,\n\tAPI extends Web3APISpec = EthExecutionAPI,\n\t// The following generic type is just to define the type `CombinedEventMap` and use it inside the class\n\t// \tit combines the user passed `EventMap` with the `CommonSubscriptionEvents`\n\t//\tHowever, this type definition could be refactored depending on the closure of\n\t//\t[Permit type alias declarations inside a class](https://github.com/microsoft/TypeScript/issues/7061)\n\tCombinedEventMap extends CommonSubscriptionEvents = EventMap & CommonSubscriptionEvents,\n> extends Web3EventEmitter<CombinedEventMap> {\n\tprivate readonly _subscriptionManager: Web3SubscriptionManager<API>;\n\tprivate readonly _lastBlock?: BlockOutput;\n\tprivate readonly _returnFormat: DataFormat;\n\tprotected _id?: HexString;\n\n\tpublic constructor(\n\t\targs: ArgsType,\n\t\toptions: { subscriptionManager: Web3SubscriptionManager; returnFormat?: DataFormat },\n\t);\n\t/**\n\t * @deprecated This constructor overloading should not be used\n\t */\n\tpublic constructor(\n\t\targs: ArgsType,\n\t\toptions: { requestManager: Web3RequestManager<API>; returnFormat?: DataFormat },\n\t);\n\tpublic constructor(\n\t\tpublic readonly args: ArgsType,\n\t\toptions: (\n\t\t\t| { subscriptionManager: Web3SubscriptionManager }\n\t\t\t| { requestManager: Web3RequestManager<API> }\n\t\t) & {\n\t\t\treturnFormat?: DataFormat;\n\t\t},\n\t) {\n\t\tsuper();\n\t\tconst { requestManager } = options as { requestManager: Web3RequestManager<API> };\n\t\tconst { subscriptionManager } = options as { subscriptionManager: Web3SubscriptionManager };\n\t\tif (requestManager) {\n\t\t\t// eslint-disable-next-line deprecation/deprecation\n\t\t\tthis._subscriptionManager = new Web3SubscriptionManager(requestManager, {}, true);\n\t\t} else {\n\t\t\tthis._subscriptionManager = subscriptionManager;\n\t\t}\n\n\t\tthis._returnFormat = options?.returnFormat ?? (DEFAULT_RETURN_FORMAT as DataFormat);\n\t}\n\n\tpublic get id() {\n\t\treturn this._id;\n\t}\n\n\tpublic get lastBlock() {\n\t\treturn this._lastBlock;\n\t}\n\n\tpublic async subscribe(): Promise<string> {\n\t\treturn this._subscriptionManager.addSubscription(this);\n\t}\n\n\tpublic processSubscriptionData(\n\t\tdata:\n\t\t\t| JsonRpcSubscriptionResult\n\t\t\t| JsonRpcSubscriptionResultOld<Log>\n\t\t\t| JsonRpcNotification<Log>,\n\t) {\n\t\tif (data?.data) {\n\t\t\t// for EIP-1193 provider\n\t\t\tthis._processSubscriptionResult(data?.data?.result ?? data?.data);\n\t\t} else if (\n\t\t\tdata &&\n\t\t\tjsonRpc.isResponseWithNotification(\n\t\t\t\tdata as unknown as JsonRpcSubscriptionResult | JsonRpcNotification<Log>,\n\t\t\t)\n\t\t) {\n\t\t\tthis._processSubscriptionResult(data?.params.result);\n\t\t}\n\t}\n\n\tpublic async sendSubscriptionRequest(): Promise<string> {\n\t\tthis._id = await this._subscriptionManager.requestManager.send({\n\t\t\tmethod: 'eth_subscribe',\n\t\t\tparams: this._buildSubscriptionParams(),\n\t\t});\n\n\t\tthis.emit('connected', this._id);\n\t\treturn this._id;\n\t}\n\n\tprotected get returnFormat() {\n\t\treturn this._returnFormat;\n\t}\n\n\tprotected get subscriptionManager() {\n\t\treturn this._subscriptionManager;\n\t}\n\n\tpublic async resubscribe() {\n\t\tawait this.unsubscribe();\n\t\tawait this.subscribe();\n\t}\n\n\tpublic async unsubscribe() {\n\t\tif (!this.id) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this._subscriptionManager.removeSubscription(this);\n\t}\n\n\tpublic async sendUnsubscribeRequest() {\n\t\tawait this._subscriptionManager.requestManager.send({\n\t\t\tmethod: 'eth_unsubscribe',\n\t\t\tparams: [this.id] as Web3APIParams<API, 'eth_unsubscribe'>,\n\t\t});\n\t\tthis._id = undefined;\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprotected formatSubscriptionResult(data: CombinedEventMap['data']) {\n\t\treturn data;\n\t}\n\n\tpublic _processSubscriptionResult(data: CombinedEventMap['data'] | unknown) {\n\t\tthis.emit('data', this.formatSubscriptionResult(data));\n\t}\n\n\tpublic _processSubscriptionError(error: Error) {\n\t\tthis.emit('error', error);\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprotected _buildSubscriptionParams(): Web3APIParams<API, 'eth_subscribe'> {\n\t\t// This should be overridden in the subclass\n\t\tthrow new Error('Implement in the child class');\n\t}\n}\n\nexport type Web3SubscriptionConstructor<\n\tAPI extends Web3APISpec,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tSubscriptionType extends Web3Subscription<any, any, API> = Web3Subscription<any, any, API>,\n> =\n\t| (new (\n\t\t\t// We accept any type of arguments here and don't deal with this type internally\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\targs: any,\n\t\t\toptions:\n\t\t\t\t| { subscriptionManager: Web3SubscriptionManager<API>; returnFormat?: DataFormat }\n\t\t\t\t| { requestManager: Web3RequestManager<API>; returnFormat?: DataFormat },\n\t ) => SubscriptionType)\n\t| (new (\n\t\t\targs: any,\n\t\t\toptions: {\n\t\t\t\tsubscriptionManager: Web3SubscriptionManager<API>;\n\t\t\t\treturnFormat?: DataFormat;\n\t\t\t},\n\t ) => SubscriptionType)\n\t| (new (\n\t\t\targs: any,\n\t\t\toptions: { requestManager: Web3RequestManager<API>; returnFormat?: DataFormat },\n\t ) => SubscriptionType);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3BaseWallet, Web3BaseWalletAccount, KeyStore } from 'web3-types';\nimport { isNullish } from 'web3-validator';\nimport { WebStorage } from './types.js';\n\ntype BrowserError = { code: number; name: string };\n\n/**\n * Wallet is an in memory `wallet` that can hold multiple accounts.\n * These accounts can be used when using web3.eth.sendTransaction() or web3.eth.contract.methods.contractfunction().send();\n *\n * For using Wallet functionality, install Web3 package using `npm i web3` or `yarn add web3`.\n * After that, Wallet functionality will be available as mentioned below. \n * \n * ```ts\n * import { Web3 } from 'web3';\n * const web3 = new Web3('http://127.0.0.1:7545');\n * \n * const wallet = await web3.eth.accounts.wallet.create(2);\n * \n * const signature = wallet.at(0).sign(\"Test Data\"); // use wallet\n * \n * // fund account before sending following transaction ...\n * \n * const receipt = await web3.eth.sendTransaction({ // internally sign transaction using wallet\n * from: wallet.at(0).address,\n * to: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n * value: 1\n * //....\n * });\n * ```\n */\nexport class Wallet<\n\tT extends Web3BaseWalletAccount = Web3BaseWalletAccount,\n> extends Web3BaseWallet<T> {\n\tprivate readonly _addressMap = new Map<string, number>();\n\tprivate readonly _defaultKeyName = 'web3js_wallet';\n\n\t/**\n\t * Get the storage object of the browser\n\t *\n\t * @returns the storage\n\t */\n\tpublic static getStorage(): WebStorage | undefined {\n\t\tlet storage: WebStorage | undefined;\n\n\t\ttry {\n\t\t\tstorage = window.localStorage;\n\t\t\tconst x = '__storage_test__';\n\t\t\tstorage.setItem(x, x);\n\t\t\tstorage.removeItem(x);\n\n\t\t\treturn storage;\n\t\t} catch (e: unknown) {\n\t\t\treturn (e as BrowserError) &&\n\t\t\t\t// everything except Firefox\n\t\t\t\t((e as BrowserError).code === 22 ||\n\t\t\t\t\t// Firefox\n\t\t\t\t\t(e as BrowserError).code === 1014 ||\n\t\t\t\t\t// test name field too, because code might not be present\n\t\t\t\t\t// everything except Firefox\n\t\t\t\t\t(e as BrowserError).name === 'QuotaExceededError' ||\n\t\t\t\t\t// Firefox\n\t\t\t\t\t(e as BrowserError).name === 'NS_ERROR_DOM_QUOTA_REACHED') &&\n\t\t\t\t// acknowledge QuotaExceededError only if there's something already stored\n\t\t\t\t!isNullish(storage) &&\n\t\t\t\tstorage.length !== 0\n\t\t\t\t? storage\n\t\t\t\t: undefined;\n\t\t}\n\t}\n\t/**\n\t * Generates one or more accounts in the wallet. If wallets already exist they will not be overridden.\n\t *\n\t * @param numberOfAccounts - Number of accounts to create. Leave empty to create an empty wallet.\n\t * @returns The wallet\n\t * ```ts\n\t * web3.eth.accounts.wallet.create(2)\n\t * > Wallet(2) [\n\t * {\n\t * address: '0xde38310a42B751AE57d30cFFF4a0A3c52A442fCE',\n\t * privateKey: '0x6422c9d28efdcbee93c1d32a5fc6fd6fa081b985487885296cf8c9bbb5872600',\n\t * signTransaction: [Function: signTransaction],\n\t * sign: [Function: sign],\n\t * encrypt: [Function: encrypt]\n\t * },\n\t * {\n\t * address: '0x766BF755246d924B1d017Fdb5390f38a60166691',\n\t * privateKey: '0x756530f13c0eb636ebdda655335f5dea9921e3362e2e588b0ad59e556f7751f0',\n\t * signTransaction: [Function: signTransaction],\n\t * sign: [Function: sign],\n\t * encrypt: [Function: encrypt]\n\t * },\n\t * _accountProvider: {\n\t * create: [Function: create],\n\t * privateKeyToAccount: [Function: privateKeyToAccount],\n\t * decrypt: [Function: decrypt]\n\t * },\n\t * _addressMap: Map(2) {\n\t * '0xde38310a42b751ae57d30cfff4a0a3c52a442fce' => 0,\n\t * '0x766bf755246d924b1d017fdb5390f38a60166691' => 1\n\t * },\n\t * _defaultKeyName: 'web3js_wallet'\n\t * ]\n\t *\n\t * ```\n\t */\n\n\tpublic create(numberOfAccounts: number) {\n\t\tfor (let i = 0; i < numberOfAccounts; i += 1) {\n\t\t\tthis.add(this._accountProvider.create());\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds an account using a private key or account object to the wallet.\n\t *\n\t * @param account - A private key or account object\n\t * @returns The wallet\n\t *\n\t * ```ts\n\t * web3.eth.accounts.wallet.add('0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387');\n\t * > Wallet(1) [\n\t * {\n\t * address: '0x85D70633b90e03e0276B98880286D0D055685ed7',\n\t * privateKey: '0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387',\n\t * signTransaction: [Function: signTransaction],\n\t * sign: [Function: sign],\n\t * encrypt: [Function: encrypt]\n\t * },\n\t * _accountProvider: {\n\t * create: [Function: create],\n\t * privateKeyToAccount: [Function: privateKeyToAccount],\n\t * decrypt: [Function: decrypt]\n\t * },\n\t * _addressMap: Map(1) { '0x85d70633b90e03e0276b98880286d0d055685ed7' => 0 },\n\t * _defaultKeyName: 'web3js_wallet'\n\t * ]\n\t * ```\n\t */\n\tpublic add(account: T | string): this {\n\t\tif (typeof account === 'string') {\n\t\t\treturn this.add(this._accountProvider.privateKeyToAccount(account));\n\t\t}\n\t\tlet index = this.length;\n\t\tconst existAccount = this.get(account.address);\n\t\tif (existAccount) {\n\t\t\tconsole.warn(`Account ${account.address.toLowerCase()} already exists.`);\n\t\t\tindex = this._addressMap.get(account.address.toLowerCase()) ?? index;\n\t\t}\n\t\tthis._addressMap.set(account.address.toLowerCase(), index);\n\t\tthis[index] = account;\n\n\t\treturn this;\n\t}\n\t/**\n\t * Get the account of the wallet with either the index or public address.\n\t *\n\t * @param addressOrIndex - A string of the address or number index within the wallet.\n\t * @returns The account object or undefined if the account doesn't exist\n\t */\n\n\tpublic get(addressOrIndex: string | number): T | undefined {\n\t\tif (typeof addressOrIndex === 'string') {\n\t\t\tconst index = this._addressMap.get(addressOrIndex.toLowerCase());\n\n\t\t\tif (!isNullish(index)) {\n\t\t\t\treturn this[index];\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn this[addressOrIndex];\n\t}\n\n\t/**\n\t * Removes an account from the wallet.\n\t *\n\t * @param addressOrIndex - The account address, or index in the wallet.\n\t * @returns true if the wallet was removed. false if it couldn't be found.\n\t * ```ts\n\t * web3.eth.accounts.wallet.add('0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387');\n\t *\n\t * web3.eth.accounts.wallet.remove('0x85D70633b90e03e0276B98880286D0D055685ed7');\n\t * > true\n\t * web3.eth.accounts.wallet\n\t * > Wallet(0) [\n\t * _accountProvider: {\n\t * create: [Function: create],\n\t * privateKeyToAccount: [Function: privateKeyToAccount],\n\t * decrypt: [Function: decrypt]\n\t * },\n\t * _addressMap: Map(0) {},\n\t * _defaultKeyName: 'web3js_wallet'\n\t * ]\n\t * ```\n\t */\n\tpublic remove(addressOrIndex: string | number): boolean {\n\t\tif (typeof addressOrIndex === 'string') {\n\t\t\tconst index = this._addressMap.get(addressOrIndex.toLowerCase());\n\t\t\tif (isNullish(index)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis._addressMap.delete(addressOrIndex.toLowerCase());\n\t\t\tthis.splice(index, 1);\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this[addressOrIndex]) {\n\t\t\tthis.splice(addressOrIndex, 1);\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Securely empties the wallet and removes all its accounts.\n\t * Use this with *caution as it will remove all accounts stored in local wallet.\n\t *\n\t * @returns The wallet object\n\t * ```ts\n\t *\n\t * web3.eth.accounts.wallet.clear();\n\t * > Wallet(0) [\n\t * _accountProvider: {\n\t * create: [Function: create],\n\t * privateKeyToAccount: [Function: privateKeyToAccount],\n\t * decrypt: [Function: decrypt]\n\t * },\n\t * _addressMap: Map(0) {},\n\t * _defaultKeyName: 'web3js_wallet'\n\t * ]\n\t * ```\n\t */\n\tpublic clear() {\n\t\tthis._addressMap.clear();\n\n\t\t// Setting length clears the Array in JS.\n\t\tthis.length = 0;\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Encrypts all wallet accounts to an array of encrypted keystore v3 objects.\n\t *\n\t * @param password - The password which will be used for encryption\n\t * @param options - encryption options\n\t * @returns An array of the encrypted keystore v3.\n\t *\n\t * ```ts\n\t * web3.eth.accounts.wallet.create(1)\n\t * web3.eth.accounts.wallet.encrypt(\"abc\").then(console.log);\n\t * > [\n\t * '{\"version\":3,\"id\":\"fa46e213-a7c3-4844-b903-dd14d39cc7db\",\n\t * \"address\":\"fa3e41a401609103c241431cbdee8623ae2a321a\",\"crypto\":\n\t * {\"ciphertext\":\"8d179a911d6146ad2924e86bf493ed89b8ff3596ffec0816e761c542016ab13c\",\n\t * \"cipherparams\":{\"iv\":\"acc888c6cf4a19b86846cef0185a7164\"},\"cipher\":\"aes-128-ctr\",\n\t * \"kdf\":\"scrypt\",\"kdfparams\":{\"n\":8192,\"r\":8,\"p\":1,\"dklen\":32,\"salt\":\"6a743c9b367d15f4758e4f3f3378ff0fd443708d1c64854e07588ea5331823ae\"},\n\t * \"mac\":\"410544c8307e3691fda305eb3722d82c3431f212a87daa119a21587d96698b57\"}}'\n\t * ]\n\t * ```\n\t */\n\tpublic async encrypt(\n\t\tpassword: string,\n\t\toptions?: Record<string, unknown> | undefined,\n\t): Promise<KeyStore[]> {\n\t\treturn Promise.all(this.map(async (account: T) => account.encrypt(password, options)));\n\t}\n\n\t/**\n\t * Decrypts keystore v3 objects.\n\t *\n\t * @param encryptedWallets - An array of encrypted keystore v3 objects to decrypt\n\t * @param password - The password to encrypt with\n\t * @param options - decrypt options for the wallets\n\t * @returns The decrypted wallet object\n\t *\n\t * ```ts\n\t * web3.eth.accounts.wallet.decrypt([\n\t * { version: 3,\n\t * id: '83191a81-aaca-451f-b63d-0c5f3b849289',\n\t * address: '06f702337909c06c82b09b7a22f0a2f0855d1f68',\n\t * crypto:\n\t * { ciphertext: '7d34deae112841fba86e3e6cf08f5398dda323a8e4d29332621534e2c4069e8d',\n\t * cipherparams: { iv: '497f4d26997a84d570778eae874b2333' },\n\t * cipher: 'aes-128-ctr',\n\t * kdf: 'scrypt',\n\t * kdfparams:\n\t * { dklen: 32,\n\t * salt: '208dd732a27aa4803bb760228dff18515d5313fd085bbce60594a3919ae2d88d',\n\t * n: 262144,\n\t * r: 8,\n\t * p: 1 },\n\t * mac: '0062a853de302513c57bfe3108ab493733034bf3cb313326f42cf26ea2619cf9' } },\n\t * { version: 3,\n\t * id: '7d6b91fa-3611-407b-b16b-396efb28f97e',\n\t * address: 'b5d89661b59a9af0b34f58d19138baa2de48baaf',\n\t * crypto:\n\t * { ciphertext: 'cb9712d1982ff89f571fa5dbef447f14b7e5f142232bd2a913aac833730eeb43',\n\t * cipherparams: { iv: '8cccb91cb84e435437f7282ec2ffd2db' },\n\t * cipher: 'aes-128-ctr',\n\t * kdf: 'scrypt',\n\t * kdfparams:\n\t * { dklen: 32,\n\t * salt: '08ba6736363c5586434cd5b895e6fe41ea7db4785bd9b901dedce77a1514e8b8',\n\t * n: 262144,\n\t * r: 8,\n\t * p: 1 },\n\t * mac: 'd2eb068b37e2df55f56fa97a2bf4f55e072bef0dd703bfd917717d9dc54510f0' } }\n\t * ], 'test').then(console.log)\n\t * > Wallet {\n\t * _accountProvider: {\n\t * create: [Function: create],\n\t * privateKeyToAccount: [Function: privateKeyToAccount],\n\t * decrypt: [Function: decrypt]\n\t * },\n\t * _defaultKeyName: 'web3js_wallet',\n\t * _accounts: {\n\t * '0x85d70633b90e03e0276b98880286d0d055685ed7': {\n\t * address: '0x85D70633b90e03e0276B98880286D0D055685ed7',\n\t * privateKey: '0xbce9b59981303e76c4878b1a6d7b088ec6b9dd5c966b7d5f54d7a749ff683387',\n\t * signTransaction: [Function: signTransaction],\n\t * sign: [Function: sign],\n\t * encrypt: [Function: encrypt]\n\t * },\n\t * '0x06f702337909c06c82b09b7a22f0a2f0855d1f68': {\n\t * address: '0x06F702337909C06C82B09B7A22F0a2f0855d1F68',\n\t * privateKey: '87a51da18900da7398b3bab03996833138f269f8f66dd1237b98df6b9ce14573',\n\t * signTransaction: [Function: signTransaction],\n\t * sign: [Function: sign],\n\t * encrypt: [Function: encrypt]\n\t * },\n\t * '0xb5d89661b59a9af0b34f58d19138baa2de48baaf': {\n\t * address: '0xB5d89661B59a9aF0b34f58D19138bAa2de48BAaf',\n\t * privateKey: '7ee61c5282979aae9dd795bb6a54e8bdc2bfe009acb64eb9a67322eec3b3da6e',\n\t * signTransaction: [Function: signTransaction],\n\t * sign: [Function: sign],\n\t * encrypt: [Function: encrypt]\n\t * }\n\t * }\n\t * }\n\t * ```\n\t */\n\tpublic async decrypt(\n\t\tencryptedWallets: KeyStore[],\n\t\tpassword: string,\n\t\toptions?: Record<string, unknown> | undefined,\n\t) {\n\t\tconst results = await Promise.all(\n\t\t\tencryptedWallets.map(async (wallet: KeyStore) =>\n\t\t\t\tthis._accountProvider.decrypt(wallet, password, options),\n\t\t\t),\n\t\t);\n\t\tfor (const res of results) {\n\t\t\tthis.add(res);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Stores the wallet encrypted and as string in local storage.\n\t * **__NOTE:__** Browser only\n\t *\n\t * @param password - The password to encrypt the wallet\n\t * @param keyName - (optional) The key used for the local storage position, defaults to `\"web3js_wallet\"`.\n\t * @returns Will return boolean value true if saved properly\n\t * ```ts\n\t * web3.eth.accounts.wallet.save('test#!$');\n\t * >true\n\t * ```\n\t */\n\tpublic async save(password: string, keyName?: string) {\n\t\tconst storage = Wallet.getStorage();\n\n\t\tif (!storage) {\n\t\t\tthrow new Error('Local storage not available.');\n\t\t}\n\n\t\tstorage.setItem(\n\t\t\tkeyName ?? this._defaultKeyName,\n\t\t\tJSON.stringify(await this.encrypt(password)),\n\t\t);\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Loads a wallet from local storage and decrypts it.\n\t * **__NOTE:__** Browser only\n\t *\n\t * @param password - The password to decrypt the wallet.\n\t * @param keyName - (optional)The key used for local storage position, defaults to `web3js_wallet\"`\n\t * @returns Returns the wallet object\n\t *\n\t * ```ts\n\t * web3.eth.accounts.wallet.save('test#!$');\n\t * > true\n\t * web3.eth.accounts.wallet.load('test#!$');\n\t * { defaultKeyName: \"web3js_wallet\",\n\t * length: 0,\n\t * _accounts: Accounts {_requestManager: RequestManager, givenProvider: Proxy, providers: {…}, _provider: WebsocketProvider, …},\n\t * [[Prototype]]: Object\n\t * }\n\t * ```\n\t */\n\tpublic async load(password: string, keyName?: string) {\n\t\tconst storage = Wallet.getStorage();\n\n\t\tif (!storage) {\n\t\t\tthrow new Error('Local storage not available.');\n\t\t}\n\n\t\tconst keystore = storage.getItem(keyName ?? this._defaultKeyName);\n\n\t\tif (keystore) {\n\t\t\tawait this.decrypt((JSON.parse(keystore) as KeyStore[]) || [], password);\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import { crypto as cr } from \"@noble/hashes/crypto\";\nimport { concatBytes, equalsBytes } from \"./utils.js\";\nconst crypto = { web: cr };\nfunction validateOpt(key, iv, mode) {\n if (!mode.startsWith(\"aes-\")) {\n throw new Error(`AES submodule doesn't support mode ${mode}`);\n }\n if (iv.length !== 16) {\n throw new Error(\"AES: wrong IV length\");\n }\n if ((mode.startsWith(\"aes-128\") && key.length !== 16) ||\n (mode.startsWith(\"aes-256\") && key.length !== 32)) {\n throw new Error(\"AES: wrong key length\");\n }\n}\nasync function getBrowserKey(mode, key, iv) {\n if (!crypto.web) {\n throw new Error(\"Browser crypto not available.\");\n }\n let keyMode;\n if ([\"aes-128-cbc\", \"aes-256-cbc\"].includes(mode)) {\n keyMode = \"cbc\";\n }\n if ([\"aes-128-ctr\", \"aes-256-ctr\"].includes(mode)) {\n keyMode = \"ctr\";\n }\n if (!keyMode) {\n throw new Error(\"AES: unsupported mode\");\n }\n const wKey = await crypto.web.subtle.importKey(\"raw\", key, { name: `AES-${keyMode.toUpperCase()}`, length: key.length * 8 }, true, [\"encrypt\", \"decrypt\"]);\n // node.js uses whole 128 bit as a counter, without nonce, instead of 64 bit\n // recommended by NIST SP800-38A\n return [wKey, { name: `aes-${keyMode}`, iv, counter: iv, length: 128 }];\n}\nexport async function encrypt(msg, key, iv, mode = \"aes-128-ctr\", pkcs7PaddingEnabled = true) {\n validateOpt(key, iv, mode);\n if (crypto.web) {\n const [wKey, wOpt] = await getBrowserKey(mode, key, iv);\n const cipher = await crypto.web.subtle.encrypt(wOpt, wKey, msg);\n // Remove PKCS7 padding on cbc mode by stripping end of message\n let res = new Uint8Array(cipher);\n if (!pkcs7PaddingEnabled && wOpt.name === \"aes-cbc\" && !(msg.length % 16)) {\n res = res.slice(0, -16);\n }\n return res;\n }\n else if (crypto.node) {\n const cipher = crypto.node.createCipheriv(mode, key, iv);\n cipher.setAutoPadding(pkcs7PaddingEnabled);\n return concatBytes(cipher.update(msg), cipher.final());\n }\n else {\n throw new Error(\"The environment doesn't have AES module\");\n }\n}\nasync function getPadding(cypherText, key, iv, mode) {\n const lastBlock = cypherText.slice(-16);\n for (let i = 0; i < 16; i++) {\n // Undo xor of iv and fill with lastBlock ^ padding (16)\n lastBlock[i] ^= iv[i] ^ 16;\n }\n const res = await encrypt(lastBlock, key, iv, mode);\n return res.slice(0, 16);\n}\nexport async function decrypt(cypherText, key, iv, mode = \"aes-128-ctr\", pkcs7PaddingEnabled = true) {\n validateOpt(key, iv, mode);\n if (crypto.web) {\n const [wKey, wOpt] = await getBrowserKey(mode, key, iv);\n // Add empty padding so Chrome will correctly decrypt message\n if (!pkcs7PaddingEnabled && wOpt.name === \"aes-cbc\") {\n const padding = await getPadding(cypherText, key, iv, mode);\n cypherText = concatBytes(cypherText, padding);\n }\n const msg = await crypto.web.subtle.decrypt(wOpt, wKey, cypherText);\n const msgBytes = new Uint8Array(msg);\n // Safari always ignores padding (if no padding -> broken message)\n if (wOpt.name === \"aes-cbc\") {\n const encrypted = await encrypt(msgBytes, key, iv, mode);\n if (!equalsBytes(encrypted, cypherText)) {\n throw new Error(\"AES: wrong padding\");\n }\n }\n return msgBytes;\n }\n else if (crypto.node) {\n const decipher = crypto.node.createDecipheriv(mode, key, iv);\n decipher.setAutoPadding(pkcs7PaddingEnabled);\n return concatBytes(decipher.update(cypherText), decipher.final());\n }\n else {\n throw new Error(\"The environment doesn't have AES module\");\n }\n}\n","import { hash as assertHash, bytes as assertBytes, exists as assertExists } from './_assert.js';\nimport { Hash, CHash, Input, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nexport class HMAC<T extends Hash<T>> extends Hash<HMAC<T>> {\n oHash: T;\n iHash: T;\n blockLen: number;\n outputLen: number;\n private finished = false;\n private destroyed = false;\n\n constructor(hash: CHash, _key: Input) {\n super();\n assertHash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create() as T;\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++) 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() as T;\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++) pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf: Input) {\n assertExists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out: Uint8Array) {\n assertExists(this);\n assertBytes(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?: HMAC<T>): HMAC<T> {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to ||= Object.create(Object.getPrototypeOf(this), {});\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to as this;\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/**\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: CHash, key: Input, message: Input): Uint8Array =>\n new HMAC<any>(hash, key).update(message).digest();\nhmac.create = (hash: CHash, key: Input) => new HMAC<any>(hash, key);\n","import { hash as assertHash, number as assertNumber } from './_assert.js';\nimport { hmac } from './hmac.js';\nimport { Hash, CHash, Input, createView, toBytes, checkOpts, asyncLoop } from './utils.js';\n\n// PBKDF (RFC 2898)\nexport type Pbkdf2Opt = {\n c: number; // Iterations\n dkLen?: number; // Desired key length in bytes (Intended output length in octets of the derived key\n asyncTick?: number; // Maximum time in ms for which async function can block execution\n};\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash: CHash, _password: Input, _salt: Input, _opts: Pbkdf2Opt) {\n assertHash(hash);\n const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n assertNumber(c);\n assertNumber(dkLen);\n assertNumber(asyncTick);\n if (c < 1) throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = toBytes(_password);\n const salt = toBytes(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\n\nfunction pbkdf2Output<T extends Hash<T>>(\n PRF: Hash<T>,\n PRFSalt: Hash<T>,\n DK: Uint8Array,\n prfW: Hash<T>,\n u: Uint8Array\n) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW) prfW.destroy();\n u.fill(0);\n return DK;\n}\n\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nexport function pbkdf2(hash: CHash, password: Input, salt: Input, opts: Pbkdf2Opt) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW: any; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++) Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n\nexport async function pbkdf2Async(hash: CHash, password: Input, salt: Input, opts: Pbkdf2Opt) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW: any; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await asyncLoop(c - 1, asyncTick, () => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++) Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n","import { exists, output } from './_assert.js';\nimport { Hash, createView, Input, toBytes } from './utils.js';\n\n// Polyfill for Safari 14\nfunction setBigUint64(view: DataView, byteOffset: number, value: bigint, isLE: boolean): void {\n if (typeof view.setBigUint64 === 'function') 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\n// Choice: a ? b : c\nexport const Chi = (a: number, b: number, c: number) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nexport const Maj = (a: number, b: number, c: number) => (a & b) ^ (a & c) ^ (b & c);\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD<T extends HashMD<T>> extends Hash<T> {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(\n readonly blockLen: number,\n public outputLen: number,\n readonly padOffset: number,\n readonly isLE: boolean\n ) {\n super();\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n 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) 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: Uint8Array) {\n exists(this);\n 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\n // 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++) 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) 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) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) 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?: T): T {\n to ||= new (this.constructor as any)() as T;\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) to.buffer.set(buffer);\n return to;\n }\n}\n","import { HashMD, Chi, Maj } from './_md.js';\nimport { rotr, wrapConstructor } from './utils.js';\n\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n\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 = /* @__PURE__ */ 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\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends HashMD<SHA256> {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n A = SHA256_IV[0] | 0;\n B = SHA256_IV[1] | 0;\n C = SHA256_IV[2] | 0;\n D = SHA256_IV[3] | 0;\n E = SHA256_IV[4] | 0;\n F = SHA256_IV[5] | 0;\n G = SHA256_IV[6] | 0;\n H = SHA256_IV[7] | 0;\n\n constructor() {\n super(64, 32, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\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 protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ) {\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 protected process(view: DataView, offset: number): void {\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) 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 protected 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 A = 0xc1059ed8 | 0;\n B = 0x367cd507 | 0;\n C = 0x3070dd17 | 0;\n D = 0xf70e5939 | 0;\n E = 0xffc00b31 | 0;\n F = 0x68581511 | 0;\n G = 0x64f98fa7 | 0;\n H = 0xbefa4fa4 | 0;\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n","import { HashMD } from './_md.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends HashMD<SHA512> {\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x6a09e667 | 0;\n Al = 0xf3bcc908 | 0;\n Bh = 0xbb67ae85 | 0;\n Bl = 0x84caa73b | 0;\n Ch = 0x3c6ef372 | 0;\n Cl = 0xfe94f82b | 0;\n Dh = 0xa54ff53a | 0;\n Dl = 0x5f1d36f1 | 0;\n Eh = 0x510e527f | 0;\n El = 0xade682d1 | 0;\n Fh = 0x9b05688c | 0;\n Fl = 0x2b3e6c1f | 0;\n Gh = 0x1f83d9ab | 0;\n Gl = 0xfb41bd6b | 0;\n Hh = 0x5be0cd19 | 0;\n Hl = 0x137e2179 | 0;\n\n constructor() {\n super(128, 64, 16, false);\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n protected set(\n Ah: number, Al: number, Bh: number, Bl: number, Ch: number, Cl: number, Dh: number, Dl: number,\n Eh: number, El: number, Fh: number, Fl: number, Gh: number, Gl: number, Hh: number, Hl: number\n ) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n protected process(view: DataView, offset: number) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n protected roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\nclass SHA512_224 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x8c3d37c8 | 0;\n Al = 0x19544da2 | 0;\n Bh = 0x73e19966 | 0;\n Bl = 0x89dcd4d6 | 0;\n Ch = 0x1dfab7ae | 0;\n Cl = 0x32ff9c82 | 0;\n Dh = 0x679dd514 | 0;\n Dl = 0x582f9fcf | 0;\n Eh = 0x0f6d2b69 | 0;\n El = 0x7bd44da8 | 0;\n Fh = 0x77e36f73 | 0;\n Fl = 0x04c48942 | 0;\n Gh = 0x3f9d85a8 | 0;\n Gl = 0x6a1d36c8 | 0;\n Hh = 0x1112e6ad | 0;\n Hl = 0x91d692a1 | 0;\n\n constructor() {\n super();\n this.outputLen = 28;\n }\n}\n\nclass SHA512_256 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0x22312194 | 0;\n Al = 0xfc2bf72c | 0;\n Bh = 0x9f555fa3 | 0;\n Bl = 0xc84c64c2 | 0;\n Ch = 0x2393b86b | 0;\n Cl = 0x6f53b151 | 0;\n Dh = 0x96387719 | 0;\n Dl = 0x5940eabd | 0;\n Eh = 0x96283ee2 | 0;\n El = 0xa88effe3 | 0;\n Fh = 0xbe5e1e25 | 0;\n Fl = 0x53863992 | 0;\n Gh = 0x2b0199fc | 0;\n Gl = 0x2c85b8aa | 0;\n Hh = 0x0eb72ddc | 0;\n Hl = 0x81c52ca2 | 0;\n\n constructor() {\n super();\n this.outputLen = 32;\n }\n}\n\nclass SHA384 extends SHA512 {\n // h -- high 32 bits, l -- low 32 bits\n Ah = 0xcbbb9d5d | 0;\n Al = 0xc1059ed8 | 0;\n Bh = 0x629a292a | 0;\n Bl = 0x367cd507 | 0;\n Ch = 0x9159015a | 0;\n Cl = 0x3070dd17 | 0;\n Dh = 0x152fecd8 | 0;\n Dl = 0xf70e5939 | 0;\n Eh = 0x67332667 | 0;\n El = 0xffc00b31 | 0;\n Fh = 0x8eb44a87 | 0;\n Fl = 0x68581511 | 0;\n Gh = 0xdb0c2e0d | 0;\n Gl = 0x64f98fa7 | 0;\n Hh = 0x47b5481d | 0;\n Hl = 0xbefa4fa4 | 0;\n\n constructor() {\n super();\n this.outputLen = 48;\n }\n}\n\nexport const sha512 = /* @__PURE__ */ wrapConstructor(() => new SHA512());\nexport const sha512_224 = /* @__PURE__ */ wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = /* @__PURE__ */ wrapConstructor(() => new SHA512_256());\nexport const sha384 = /* @__PURE__ */ wrapConstructor(() => new SHA384());\n","import { pbkdf2 as _pbkdf2, pbkdf2Async as _pbkdf2Async } from \"@noble/hashes/pbkdf2\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport { sha512 } from \"@noble/hashes/sha512\";\nimport { assertBytes } from \"./utils.js\";\nexport async function pbkdf2(password, salt, iterations, keylen, digest) {\n if (![\"sha256\", \"sha512\"].includes(digest)) {\n throw new Error(\"Only sha256 and sha512 are supported\");\n }\n assertBytes(password);\n assertBytes(salt);\n return _pbkdf2Async(digest === \"sha256\" ? sha256 : sha512, password, salt, {\n c: iterations,\n dkLen: keylen\n });\n}\nexport function pbkdf2Sync(password, salt, iterations, keylen, digest) {\n if (![\"sha256\", \"sha512\"].includes(digest)) {\n throw new Error(\"Only sha256 and sha512 are supported\");\n }\n assertBytes(password);\n assertBytes(salt);\n return _pbkdf2(digest === \"sha256\" ? sha256 : sha512, password, salt, {\n c: iterations,\n dkLen: keylen\n });\n}\n","import { number as assertNumber } from './_assert.js';\nimport { sha256 } from './sha256.js';\nimport { pbkdf2 } from './pbkdf2.js';\nimport { rotl, asyncLoop, checkOpts, Input, u32, isLE, byteSwap32 } from './utils.js';\n\n// RFC 7914 Scrypt KDF\n\n// The main Scrypt loop: uses Salsa extensively.\n// Six versions of the function were tried, this is the fastest one.\n// prettier-ignore\nfunction XorAndSalsa(\n prev: Uint32Array,\n pi: number,\n input: Uint32Array,\n ii: number,\n out: Uint32Array,\n oi: number\n) {\n // Based on https://cr.yp.to/salsa20.html\n // Xor blocks\n let y00 = prev[pi++] ^ input[ii++], y01 = prev[pi++] ^ input[ii++];\n let y02 = prev[pi++] ^ input[ii++], y03 = prev[pi++] ^ input[ii++];\n let y04 = prev[pi++] ^ input[ii++], y05 = prev[pi++] ^ input[ii++];\n let y06 = prev[pi++] ^ input[ii++], y07 = prev[pi++] ^ input[ii++];\n let y08 = prev[pi++] ^ input[ii++], y09 = prev[pi++] ^ input[ii++];\n let y10 = prev[pi++] ^ input[ii++], y11 = prev[pi++] ^ input[ii++];\n let y12 = prev[pi++] ^ input[ii++], y13 = prev[pi++] ^ input[ii++];\n let y14 = prev[pi++] ^ input[ii++], y15 = prev[pi++] ^ input[ii++];\n // Save state to temporary variables (salsa)\n let x00 = y00, x01 = y01, x02 = y02, x03 = y03,\n x04 = y04, x05 = y05, x06 = y06, x07 = y07,\n x08 = y08, x09 = y09, x10 = y10, x11 = y11,\n x12 = y12, x13 = y13, x14 = y14, x15 = y15;\n // Main loop (salsa)\n for (let i = 0; i < 8; i += 2) {\n x04 ^= rotl(x00 + x12 | 0, 7); x08 ^= rotl(x04 + x00 | 0, 9);\n x12 ^= rotl(x08 + x04 | 0, 13); x00 ^= rotl(x12 + x08 | 0, 18);\n x09 ^= rotl(x05 + x01 | 0, 7); x13 ^= rotl(x09 + x05 | 0, 9);\n x01 ^= rotl(x13 + x09 | 0, 13); x05 ^= rotl(x01 + x13 | 0, 18);\n x14 ^= rotl(x10 + x06 | 0, 7); x02 ^= rotl(x14 + x10 | 0, 9);\n x06 ^= rotl(x02 + x14 | 0, 13); x10 ^= rotl(x06 + x02 | 0, 18);\n x03 ^= rotl(x15 + x11 | 0, 7); x07 ^= rotl(x03 + x15 | 0, 9);\n x11 ^= rotl(x07 + x03 | 0, 13); x15 ^= rotl(x11 + x07 | 0, 18);\n x01 ^= rotl(x00 + x03 | 0, 7); x02 ^= rotl(x01 + x00 | 0, 9);\n x03 ^= rotl(x02 + x01 | 0, 13); x00 ^= rotl(x03 + x02 | 0, 18);\n x06 ^= rotl(x05 + x04 | 0, 7); x07 ^= rotl(x06 + x05 | 0, 9);\n x04 ^= rotl(x07 + x06 | 0, 13); x05 ^= rotl(x04 + x07 | 0, 18);\n x11 ^= rotl(x10 + x09 | 0, 7); x08 ^= rotl(x11 + x10 | 0, 9);\n x09 ^= rotl(x08 + x11 | 0, 13); x10 ^= rotl(x09 + x08 | 0, 18);\n x12 ^= rotl(x15 + x14 | 0, 7); x13 ^= rotl(x12 + x15 | 0, 9);\n x14 ^= rotl(x13 + x12 | 0, 13); x15 ^= rotl(x14 + x13 | 0, 18);\n }\n // Write output (salsa)\n out[oi++] = (y00 + x00) | 0; out[oi++] = (y01 + x01) | 0;\n out[oi++] = (y02 + x02) | 0; out[oi++] = (y03 + x03) | 0;\n out[oi++] = (y04 + x04) | 0; out[oi++] = (y05 + x05) | 0;\n out[oi++] = (y06 + x06) | 0; out[oi++] = (y07 + x07) | 0;\n out[oi++] = (y08 + x08) | 0; out[oi++] = (y09 + x09) | 0;\n out[oi++] = (y10 + x10) | 0; out[oi++] = (y11 + x11) | 0;\n out[oi++] = (y12 + x12) | 0; out[oi++] = (y13 + x13) | 0;\n out[oi++] = (y14 + x14) | 0; out[oi++] = (y15 + x15) | 0;\n}\n\nfunction BlockMix(input: Uint32Array, ii: number, out: Uint32Array, oi: number, r: number) {\n // The block B is r 128-byte chunks (which is equivalent of 2r 64-byte chunks)\n let head = oi + 0;\n let tail = oi + 16 * r;\n for (let i = 0; i < 16; i++) out[tail + i] = input[ii + (2 * r - 1) * 16 + i]; // X ← B[2r−1]\n for (let i = 0; i < r; i++, head += 16, ii += 16) {\n // We write odd & even Yi at same time. Even: 0bXXXXX0 Odd: 0bXXXXX1\n XorAndSalsa(out, tail, input, ii, out, head); // head[i] = Salsa(blockIn[2*i] ^ tail[i-1])\n if (i > 0) tail += 16; // First iteration overwrites tmp value in tail\n XorAndSalsa(out, head, input, (ii += 16), out, tail); // tail[i] = Salsa(blockIn[2*i+1] ^ head[i])\n }\n}\n\nexport type ScryptOpts = {\n N: number; // cost factor\n r: number; // block size\n p: number; // parallelization\n dkLen?: number; // key length\n asyncTick?: number; // block execution max time\n maxmem?: number;\n onProgress?: (progress: number) => void;\n};\n\n// Common prologue and epilogue for sync/async functions\nfunction scryptInit(password: Input, salt: Input, _opts?: ScryptOpts) {\n // Maxmem - 1GB+1KB by default\n const opts = checkOpts(\n {\n dkLen: 32,\n asyncTick: 10,\n maxmem: 1024 ** 3 + 1024,\n },\n _opts\n );\n const { N, r, p, dkLen, asyncTick, maxmem, onProgress } = opts;\n assertNumber(N);\n assertNumber(r);\n assertNumber(p);\n assertNumber(dkLen);\n assertNumber(asyncTick);\n assertNumber(maxmem);\n if (onProgress !== undefined && typeof onProgress !== 'function')\n throw new Error('progressCb should be function');\n const blockSize = 128 * r;\n const blockSize32 = blockSize / 4;\n if (N <= 1 || (N & (N - 1)) !== 0 || N >= 2 ** (blockSize / 8) || N > 2 ** 32) {\n // NOTE: we limit N to be less than 2**32 because of 32 bit variant of Integrify function\n // There is no JS engines that allows alocate more than 4GB per single Uint8Array for now, but can change in future.\n throw new Error(\n 'Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32'\n );\n }\n if (p < 0 || p > ((2 ** 32 - 1) * 32) / blockSize) {\n throw new Error(\n 'Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)'\n );\n }\n if (dkLen < 0 || dkLen > (2 ** 32 - 1) * 32) {\n throw new Error(\n 'Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32'\n );\n }\n const memUsed = blockSize * (N + p);\n if (memUsed > maxmem) {\n throw new Error(\n `Scrypt: parameters too large, ${memUsed} (128 * r * (N + p)) > ${maxmem} (maxmem)`\n );\n }\n // [B0...Bp−1] ← PBKDF2HMAC-SHA256(Passphrase, Salt, 1, blockSize*ParallelizationFactor)\n // Since it has only one iteration there is no reason to use async variant\n const B = pbkdf2(sha256, password, salt, { c: 1, dkLen: blockSize * p });\n const B32 = u32(B);\n // Re-used between parallel iterations. Array(iterations) of B\n const V = u32(new Uint8Array(blockSize * N));\n const tmp = u32(new Uint8Array(blockSize));\n let blockMixCb = () => {};\n if (onProgress) {\n const totalBlockMix = 2 * N * p;\n // Invoke callback if progress changes from 10.01 to 10.02\n // Allows to draw smooth progress bar on up to 8K screen\n const callbackPer = Math.max(Math.floor(totalBlockMix / 10000), 1);\n let blockMixCnt = 0;\n blockMixCb = () => {\n blockMixCnt++;\n if (onProgress && (!(blockMixCnt % callbackPer) || blockMixCnt === totalBlockMix))\n onProgress(blockMixCnt / totalBlockMix);\n };\n }\n return { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb, asyncTick };\n}\n\nfunction scryptOutput(\n password: Input,\n dkLen: number,\n B: Uint8Array,\n V: Uint32Array,\n tmp: Uint32Array\n) {\n const res = pbkdf2(sha256, password, B, { c: 1, dkLen });\n B.fill(0);\n V.fill(0);\n tmp.fill(0);\n return res;\n}\n\n/**\n * Scrypt KDF from RFC 7914.\n * @param password - pass\n * @param salt - salt\n * @param opts - parameters\n * - `N` is cpu/mem work factor (power of 2 e.g. 2**18)\n * - `r` is block size (8 is common), fine-tunes sequential memory read size and performance\n * - `p` is parallelization factor (1 is common)\n * - `dkLen` is output key length in bytes e.g. 32.\n * - `asyncTick` - (default: 10) max time in ms for which async function can block execution\n * - `maxmem` - (default: `1024 ** 3 + 1024` aka 1GB+1KB). A limit that the app could use for scrypt\n * - `onProgress` - callback function that would be executed for progress report\n * @returns Derived key\n */\nexport function scrypt(password: Input, salt: Input, opts: ScryptOpts) {\n const { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb } = scryptInit(\n password,\n salt,\n opts\n );\n if (!isLE) byteSwap32(B32);\n for (let pi = 0; pi < p; pi++) {\n const Pi = blockSize32 * pi;\n for (let i = 0; i < blockSize32; i++) V[i] = B32[Pi + i]; // V[0] = B[i]\n for (let i = 0, pos = 0; i < N - 1; i++) {\n BlockMix(V, pos, V, (pos += blockSize32), r); // V[i] = BlockMix(V[i-1]);\n blockMixCb();\n }\n BlockMix(V, (N - 1) * blockSize32, B32, Pi, r); // Process last element\n blockMixCb();\n for (let i = 0; i < N; i++) {\n // First u32 of the last 64-byte block (u32 is LE)\n const j = B32[Pi + blockSize32 - 16] % N; // j = Integrify(X) % iterations\n for (let k = 0; k < blockSize32; k++) tmp[k] = B32[Pi + k] ^ V[j * blockSize32 + k]; // tmp = B ^ V[j]\n BlockMix(tmp, 0, B32, Pi, r); // B = BlockMix(B ^ V[j])\n blockMixCb();\n }\n }\n if (!isLE) byteSwap32(B32);\n return scryptOutput(password, dkLen, B, V, tmp);\n}\n\n/**\n * Scrypt KDF from RFC 7914.\n */\nexport async function scryptAsync(password: Input, salt: Input, opts: ScryptOpts) {\n const { N, r, p, dkLen, blockSize32, V, B32, B, tmp, blockMixCb, asyncTick } = scryptInit(\n password,\n salt,\n opts\n );\n if (!isLE) byteSwap32(B32);\n for (let pi = 0; pi < p; pi++) {\n const Pi = blockSize32 * pi;\n for (let i = 0; i < blockSize32; i++) V[i] = B32[Pi + i]; // V[0] = B[i]\n let pos = 0;\n await asyncLoop(N - 1, asyncTick, () => {\n BlockMix(V, pos, V, (pos += blockSize32), r); // V[i] = BlockMix(V[i-1]);\n blockMixCb();\n });\n BlockMix(V, (N - 1) * blockSize32, B32, Pi, r); // Process last element\n blockMixCb();\n await asyncLoop(N, asyncTick, () => {\n // First u32 of the last 64-byte block (u32 is LE)\n const j = B32[Pi + blockSize32 - 16] % N; // j = Integrify(X) % iterations\n for (let k = 0; k < blockSize32; k++) tmp[k] = B32[Pi + k] ^ V[j * blockSize32 + k]; // tmp = B ^ V[j]\n BlockMix(tmp, 0, B32, Pi, r); // B = BlockMix(B ^ V[j])\n blockMixCb();\n });\n }\n if (!isLE) byteSwap32(B32);\n return scryptOutput(password, dkLen, B, V, tmp);\n}\n","import { scrypt as _sync, scryptAsync as _async } from \"@noble/hashes/scrypt\";\nimport { assertBytes } from \"./utils.js\";\nexport async function scrypt(password, salt, n, p, r, dkLen, onProgress) {\n assertBytes(password);\n assertBytes(salt);\n return _async(password, salt, { N: n, r, p, dkLen, onProgress });\n}\nexport function scryptSync(password, salt, n, p, r, dkLen, onProgress) {\n assertBytes(password);\n assertBytes(salt);\n return _sync(password, salt, { N: n, r, p, dkLen, onProgress });\n}\n","/*! 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 = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nexport type Hex = Uint8Array | string; // hex strings are accepted for simplicity\nexport type PrivKey = Hex | bigint; // bigints are accepted to ease learning curve\nexport type CHash = {\n (message: Uint8Array | string): Uint8Array;\n blockLen: number;\n outputLen: number;\n create(opts?: { dkLen?: number }): any; // For shake\n};\nexport type FHash = (message: Uint8Array | string) => Uint8Array;\n\nexport function isBytes(a: unknown): a is Uint8Array {\n return (\n a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array')\n );\n}\n\nexport function abytes(item: unknown): void {\n if (!isBytes(item)) throw new Error('Uint8Array expected');\n}\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\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\nexport function numberToHexUnpadded(num: number | bigint): string {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\n\nexport function hexToNumber(hex: string): bigint {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // Big Endian\n return BigInt(hex === '' ? '0' : `0x${hex}`);\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 } as const;\nfunction asciiToBase16(char: number): number | undefined {\n if (char >= asciis._0 && char <= asciis._9) return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F) return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f) return char - (asciis._a - 10);\n return;\n}\n\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n\n// BE: Big Endian, LE: Little Endian\nexport function bytesToNumberBE(bytes: Uint8Array): bigint {\n return hexToNumber(bytesToHex(bytes));\n}\nexport function bytesToNumberLE(bytes: Uint8Array): bigint {\n abytes(bytes);\n return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\n\nexport function numberToBytesBE(n: number | bigint, len: number): Uint8Array {\n return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexport function numberToBytesLE(n: number | bigint, len: number): Uint8Array {\n return numberToBytesBE(n, len).reverse();\n}\n// Unpadded, rarely used\nexport function numberToVarBytesBE(n: number | bigint): Uint8Array {\n return hexToBytes(numberToHexUnpadded(n));\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: string, hex: Hex, expectedLength?: number): Uint8Array {\n let res: Uint8Array;\n if (typeof hex === 'string') {\n try {\n res = hexToBytes(hex);\n } catch (e) {\n throw new Error(`${title} must be valid hex string, got \"${hex}\". Cause: ${e}`);\n }\n } else if (isBytes(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 } 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/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\n// Compares 2 u8a-s in kinda constant time\nexport function equalBytes(a: Uint8Array, b: Uint8Array) {\n if (a.length !== b.length) return false;\n let diff = 0;\n for (let i = 0; i < a.length; i++) diff |= a[i] ^ b[i];\n return diff === 0;\n}\n\n// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\n\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n// Bit operations\n\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nexport function bitLen(n: bigint) {\n let len;\n for (len = 0; n > _0n; n >>= _1n, len += 1);\n return len;\n}\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: bigint, pos: number) {\n return (n >> BigInt(pos)) & _1n;\n}\n\n/**\n * Sets single bit at position.\n */\nexport function bitSet(n: bigint, pos: number, value: boolean) {\n return n | ((value ? _1n : _0n) << BigInt(pos));\n}\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: number) => (_2n << BigInt(n - 1)) - _1n;\n\n// DRBG\n\nconst u8n = (data?: any) => new Uint8Array(data); // creates Uint8Array\nconst u8fr = (arr: any) => Uint8Array.from(arr); // another shortcut\ntype Pred<T> = (v: Uint8Array) => T | undefined;\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<Key>(32, 32, hmac);\n * drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nexport function createHmacDrbg<T>(\n hashLen: number,\n qByteLen: number,\n hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array\n): (seed: Uint8Array, predicate: Pred<T>) => T {\n if (typeof hashLen !== 'number' || hashLen < 2) throw new Error('hashLen must be a number');\n if (typeof qByteLen !== 'number' || qByteLen < 2) throw new Error('qByteLen must be a number');\n if (typeof hmacFn !== 'function') 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: Uint8Array[]) => 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) 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) throw new Error('drbg: tried 1000 values');\n let len = 0;\n const out: Uint8Array[] = [];\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: Uint8Array, pred: Pred<T>): T => {\n reset();\n reseed(seed); // Steps D-G\n let res: T | undefined = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen()))) reseed();\n reset();\n return res;\n };\n return genUntil;\n}\n\n// Validating curves and fields\n\nconst validatorFns = {\n bigint: (val: any) => typeof val === 'bigint',\n function: (val: any) => typeof val === 'function',\n boolean: (val: any) => typeof val === 'boolean',\n string: (val: any) => typeof val === 'string',\n stringOrUint8Array: (val: any) => typeof val === 'string' || isBytes(val),\n isSafeInteger: (val: any) => Number.isSafeInteger(val),\n array: (val: any) => Array.isArray(val),\n field: (val: any, object: any) => (object as any).Fp.isValid(val),\n hash: (val: any) => typeof val === 'function' && Number.isSafeInteger(val.outputLen),\n} as const;\ntype Validator = keyof typeof validatorFns;\ntype ValMap<T extends Record<string, any>> = { [K in keyof T]?: Validator };\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\n\nexport function validateObject<T extends Record<string, any>>(\n object: T,\n validators: ValMap<T>,\n optValidators: ValMap<T> = {}\n) {\n const checkField = (fieldName: keyof T, type: Validator, isOptional: boolean) => {\n const checkVal = validatorFns[type];\n if (typeof checkVal !== 'function')\n throw new Error(`Invalid validator \"${type}\", expected function`);\n\n const val = object[fieldName as keyof typeof object];\n if (isOptional && val === undefined) return;\n if (!checkVal(val, object)) {\n throw new Error(\n `Invalid param ${String(fieldName)}=${val} (${typeof val}), expected ${type}`\n );\n }\n };\n for (const [fieldName, type] of Object.entries(validators)) checkField(fieldName, type!, false);\n for (const [fieldName, type] of Object.entries(optValidators)) 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","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nimport {\n bitMask,\n bytesToNumberBE,\n bytesToNumberLE,\n ensureBytes,\n numberToBytesBE,\n numberToBytesLE,\n validateObject,\n} 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\n// Calculates a modulo b\nexport function mod(a: bigint, b: bigint): bigint {\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: bigint, power: bigint, modulo: bigint): bigint {\n if (modulo <= _0n || power < _0n) throw new Error('Expected power/modulo > 0');\n if (modulo === _1n) return _0n;\n let res = _1n;\n while (power > _0n) {\n if (power & _1n) res = (res * num) % modulo;\n num = (num * num) % modulo;\n power >>= _1n;\n }\n return res;\n}\n\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nexport function pow2(x: bigint, power: bigint, modulo: bigint): bigint {\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= modulo;\n }\n return res;\n}\n\n// Inverses number over modulo\nexport function invert(number: bigint, modulo: bigint): bigint {\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) throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\n\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nexport function tonelliShanks(P: bigint) {\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\n let Q: bigint, S: number, Z: bigint;\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<T>(Fp: IField<T>, n: T) {\n const root = Fp.pow(n, p1div4);\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\n }\n\n // Slow-path\n const Q1div2 = (Q + _1n) / _2n;\n return function tonelliSlow<T>(Fp: IField<T>, n: T): T {\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)) 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\n while (!Fp.eql(b, Fp.ONE)) {\n if (Fp.eql(b, Fp.ZERO)) 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)) 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}\n\nexport function FpSqrt(P: bigint) {\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\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<T>(Fp: IField<T>, n: T) {\n const root = Fp.pow(n, p1div4);\n // Throw if root**2 != n\n if (!Fp.eql(Fp.sqr(root), n)) throw new Error('Cannot find square root');\n return root;\n };\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<T>(Fp: IField<T>, n: T) {\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)) throw new Error('Cannot find square root');\n return root;\n };\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\n // Other cases: Tonelli-Shanks algorithm\n return tonelliShanks(P);\n}\n\n// Little-endian check for first LE bit (last BE bit);\nexport const isNegativeLE = (num: bigint, modulo: bigint) => (mod(num, modulo) & _1n) === _1n;\n\n// Field is not always over prime: for example, Fp2 has ORDER(q)=p^m\nexport interface IField<T> {\n ORDER: bigint;\n BYTES: number;\n BITS: number;\n MASK: bigint;\n ZERO: T;\n ONE: T;\n // 1-arg\n create: (num: T) => T;\n isValid: (num: T) => boolean;\n is0: (num: T) => boolean;\n neg(num: T): T;\n inv(num: T): T;\n sqrt(num: T): T;\n sqr(num: T): T;\n // 2-args\n eql(lhs: T, rhs: T): boolean;\n add(lhs: T, rhs: T): T;\n sub(lhs: T, rhs: T): T;\n mul(lhs: T, rhs: T | bigint): T;\n pow(lhs: T, power: bigint): T;\n div(lhs: T, rhs: T | bigint): T;\n // N for NonNormalized (for now)\n addN(lhs: T, rhs: T): T;\n subN(lhs: T, rhs: T): T;\n mulN(lhs: T, rhs: T | bigint): T;\n sqrN(num: T): T;\n\n // Optional\n // Should be same as sgn0 function in\n // [RFC9380](https://www.rfc-editor.org/rfc/rfc9380#section-4.1).\n // NOTE: sgn0 is 'negative in LE', which is same as odd. And negative in LE is kinda strange definition anyway.\n isOdd?(num: T): boolean; // Odd instead of even since we have it for Fp2\n // legendre?(num: T): T;\n pow(lhs: T, power: bigint): T;\n invertBatch: (lst: T[]) => T[];\n toBytes(num: T): Uint8Array;\n fromBytes(bytes: Uint8Array): T;\n // If c is False, CMOV returns a, otherwise it returns b.\n cmov(a: T, b: T, c: boolean): T;\n}\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] as const;\nexport function validateField<T>(field: IField<T>) {\n const initial = {\n ORDER: 'bigint',\n MASK: 'bigint',\n BYTES: 'isSafeInteger',\n BITS: 'isSafeInteger',\n } as Record<string, string>;\n const opts = FIELD_FIELDS.reduce((map, val: string) => {\n map[val] = 'function';\n return map;\n }, initial);\n return validateObject(field, opts);\n}\n\n// Generic field functions\n\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nexport function FpPow<T>(f: IField<T>, num: T, power: bigint): T {\n // Should have same speed as pow for bigints\n // TODO: benchmark!\n if (power < _0n) throw new Error('Expected power > 0');\n if (power === _0n) return f.ONE;\n if (power === _1n) return num;\n let p = f.ONE;\n let d = num;\n while (power > _0n) {\n if (power & _1n) p = f.mul(p, d);\n d = f.sqr(d);\n power >>= _1n;\n }\n return p;\n}\n\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nexport function FpInvertBatch<T>(f: IField<T>, nums: T[]): T[] {\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)) 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)) return acc;\n tmp[i] = f.mul(acc, tmp[i]);\n return f.mul(acc, num);\n }, inverted);\n return tmp;\n}\n\nexport function FpDiv<T>(f: IField<T>, lhs: T, rhs: T | bigint): T {\n return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\n\n// This function returns True whenever the value x is a square in the field F.\nexport function FpIsSquare<T>(f: IField<T>) {\n const legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n return (x: T): boolean => {\n const p = f.pow(x, legendreConst);\n return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n };\n}\n\n// CURVE.n lengths\nexport function nLength(n: bigint, nBitLength?: number) {\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\ntype FpField = IField<bigint> & Required<Pick<IField<bigint>, 'isOdd'>>;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\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(\n ORDER: bigint,\n bitLen?: number,\n isLE = false,\n redef: Partial<IField<bigint>> = {}\n): Readonly<FpField> {\n if (ORDER <= _0n) throw new Error(`Expected Field ORDER > 0, got ${ORDER}`);\n const { nBitLength: BITS, nByteLength: BYTES } = nLength(ORDER, bitLen);\n if (BYTES > 2048) throw new Error('Field lengths over 2048 bytes are not supported');\n const sqrtP = FpSqrt(ORDER);\n const f: Readonly<FpField> = 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\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\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\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 } as FpField);\n return Object.freeze(f);\n}\n\nexport function FpSqrtOdd<T>(Fp: IField<T>, elm: T) {\n if (!Fp.isOdd) throw new Error(`Field doesn't have isOdd`);\n const root = Fp.sqrt(elm);\n return Fp.isOdd(root) ? root : Fp.neg(root);\n}\n\nexport function FpSqrtEven<T>(Fp: IField<T>, elm: T) {\n if (!Fp.isOdd) 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/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nexport function hashToPrivateScalar(\n hash: string | Uint8Array,\n groupOrder: bigint,\n isLE = false\n): bigint {\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\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nexport function getFieldBytesLength(fieldOrder: bigint): number {\n if (typeof fieldOrder !== 'bigint') throw new Error('field order must be bigint');\n const bitLength = fieldOrder.toString(2).length;\n return Math.ceil(bitLength / 8);\n}\n\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nexport function getMinHashLength(fieldOrder: bigint): number {\n const length = getFieldBytesLength(fieldOrder);\n return length + Math.ceil(length / 2);\n}\n\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) 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 48 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 * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nexport function mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE = false): Uint8Array {\n const len = key.length;\n const fieldLen = getFieldBytesLength(fieldOrder);\n const minLen = getMinHashLength(fieldOrder);\n // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n if (len < 16 || len < minLen || len > 1024)\n throw new Error(`expected ${minLen}-1024 bytes of input, got ${len}`);\n const num = isLE ? bytesToNumberBE(key) : bytesToNumberLE(key);\n // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n const reduced = mod(num, fieldOrder - _1n) + _1n;\n return isLE ? numberToBytesLE(reduced, fieldLen) : numberToBytesBE(reduced, fieldLen);\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nimport { IField, validateField, nLength } from './modular.js';\nimport { validateObject } from './utils.js';\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\n\nexport type AffinePoint<T> = {\n x: T;\n y: T;\n} & { z?: never; t?: never };\n\nexport interface Group<T extends Group<T>> {\n double(): T;\n negate(): T;\n add(other: T): T;\n subtract(other: T): T;\n equals(other: T): boolean;\n multiply(scalar: bigint): T;\n}\n\nexport type GroupConstructor<T> = {\n BASE: T;\n ZERO: T;\n};\nexport type Mapper<T> = (i: T[]) => T[];\n\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<T extends Group<T>>(c: GroupConstructor<T>, bits: number) {\n const constTimeNegate = (condition: boolean, item: T): T => {\n const neg = item.negate();\n return condition ? neg : item;\n };\n const opts = (W: number) => {\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: T, n: bigint) {\n let p = c.ZERO;\n let d: T = elm;\n while (n > _0n) {\n if (n & _1n) p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n },\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: T, W: number): Group<T>[] {\n const { windows, windowSize } = opts(W);\n const points: T[] = [];\n let p: T = 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 /**\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: number, precomputes: T[], n: bigint): { p: T; f: T } {\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\n let p = c.ZERO;\n let f = c.BASE;\n\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\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n // Extract W bits.\n let wbits = Number(n & mask);\n\n // Shift number by W bits.\n n >>= shiftBy;\n\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\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\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 } 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\n wNAFCached(P: T, precomputesMap: Map<T, T[]>, n: bigint, transform: Mapper<T>): { p: T; f: T } {\n // @ts-ignore\n const W: number = 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) as T[];\n if (W !== 1) {\n precomputesMap.set(P, transform(comp));\n }\n }\n return this.wNAF(W, comp, n);\n },\n };\n}\n\n// Generic BasicCurve interface: works even for polynomial fields (BLS): P, n, h would be ok.\n// Though generator can be different (Fp2 / Fp6 for BLS).\nexport type BasicCurve<T> = {\n Fp: IField<T>; // Field over which we'll do calculations (Fp)\n n: bigint; // Curve order, total count of valid points in the field\n nBitLength?: number; // bit length of curve order\n nByteLength?: number; // byte length of curve order\n h: bigint; // cofactor. we can assign default=1, but users will just ignore it w/o validation\n hEff?: bigint; // Number to multiply to clear cofactor\n Gx: T; // base point X coordinate\n Gy: T; // base point Y coordinate\n allowInfinityPoint?: boolean; // bls12-381 requires it. ZERO point is valid, but invalid pubkey\n};\n\nexport function validateBasic<FP, T>(curve: BasicCurve<FP> & T) {\n validateField(curve.Fp);\n validateObject(\n curve,\n {\n n: 'bigint',\n h: 'bigint',\n Gx: 'field',\n Gy: 'field',\n },\n {\n nBitLength: 'isSafeInteger',\n nByteLength: 'isSafeInteger',\n }\n );\n // Set defaults\n return Object.freeze({\n ...nLength(curve.n, curve.nBitLength),\n ...curve,\n ...{ p: curve.Fp.ORDER },\n } as const);\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nimport { AffinePoint, BasicCurve, Group, GroupConstructor, validateBasic, wNAF } from './curve.js';\nimport * as mod from './modular.js';\nimport * as ut from './utils.js';\nimport { CHash, Hex, PrivKey, ensureBytes } from './utils.js';\n\nexport type { AffinePoint };\ntype HmacFnSync = (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array;\ntype EndomorphismOpts = {\n beta: bigint;\n splitScalar: (k: bigint) => { k1neg: boolean; k1: bigint; k2neg: boolean; k2: bigint };\n};\nexport type BasicWCurve<T> = BasicCurve<T> & {\n // Params: a, b\n a: T;\n b: T;\n\n // Optional params\n allowedPrivateKeyLengths?: readonly number[]; // for P521\n wrapPrivateKey?: boolean; // bls12-381 requires mod(n) instead of rejecting keys >= n\n endo?: EndomorphismOpts; // Endomorphism options for Koblitz curves\n // When a cofactor != 1, there can be an effective methods to:\n // 1. Determine whether a point is torsion-free\n isTorsionFree?: (c: ProjConstructor<T>, point: ProjPointType<T>) => boolean;\n // 2. Clear torsion component\n clearCofactor?: (c: ProjConstructor<T>, point: ProjPointType<T>) => ProjPointType<T>;\n};\n\ntype Entropy = Hex | boolean;\nexport type SignOpts = { lowS?: boolean; extraEntropy?: Entropy; prehash?: boolean };\nexport type VerOpts = { lowS?: boolean; prehash?: boolean };\n\n/**\n * ### Design rationale for types\n *\n * * Interaction between classes from different curves should fail:\n * `k256.Point.BASE.add(p256.Point.BASE)`\n * * For this purpose we want to use `instanceof` operator, which is fast and works during runtime\n * * Different calls of `curve()` would return different classes -\n * `curve(params) !== curve(params)`: if somebody decided to monkey-patch their curve,\n * it won't affect others\n *\n * TypeScript can't infer types for classes created inside a function. Classes is one instance of nominative types in TypeScript and interfaces only check for shape, so it's hard to create unique type for every function call.\n *\n * We can use generic types via some param, like curve opts, but that would:\n * 1. Enable interaction between `curve(params)` and `curve(params)` (curves of same params)\n * which is hard to debug.\n * 2. Params can be generic and we can't enforce them to be constant value:\n * if somebody creates curve from non-constant params,\n * it would be allowed to interact with other curves with non-constant params\n *\n * TODO: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-7.html#unique-symbol\n */\n\n// Instance for 3d XYZ points\nexport interface ProjPointType<T> extends Group<ProjPointType<T>> {\n readonly px: T;\n readonly py: T;\n readonly pz: T;\n get x(): T;\n get y(): T;\n multiply(scalar: bigint): ProjPointType<T>;\n toAffine(iz?: T): AffinePoint<T>;\n isTorsionFree(): boolean;\n clearCofactor(): ProjPointType<T>;\n assertValidity(): void;\n hasEvenY(): boolean;\n toRawBytes(isCompressed?: boolean): Uint8Array;\n toHex(isCompressed?: boolean): string;\n\n multiplyUnsafe(scalar: bigint): ProjPointType<T>;\n multiplyAndAddUnsafe(Q: ProjPointType<T>, a: bigint, b: bigint): ProjPointType<T> | undefined;\n _setWindowSize(windowSize: number): void;\n}\n// Static methods for 3d XYZ points\nexport interface ProjConstructor<T> extends GroupConstructor<ProjPointType<T>> {\n new (x: T, y: T, z: T): ProjPointType<T>;\n fromAffine(p: AffinePoint<T>): ProjPointType<T>;\n fromHex(hex: Hex): ProjPointType<T>;\n fromPrivateKey(privateKey: PrivKey): ProjPointType<T>;\n normalizeZ(points: ProjPointType<T>[]): ProjPointType<T>[];\n}\n\nexport type CurvePointsType<T> = BasicWCurve<T> & {\n // Bytes\n fromBytes?: (bytes: Uint8Array) => AffinePoint<T>;\n toBytes?: (c: ProjConstructor<T>, point: ProjPointType<T>, isCompressed: boolean) => Uint8Array;\n};\n\nfunction validatePointOpts<T>(curve: CurvePointsType<T>) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n a: 'field',\n b: 'field',\n },\n {\n allowedPrivateKeyLengths: 'array',\n wrapPrivateKey: 'boolean',\n isTorsionFree: 'function',\n clearCofactor: 'function',\n allowInfinityPoint: 'boolean',\n fromBytes: 'function',\n toBytes: 'function',\n }\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 (\n typeof endo !== 'object' ||\n typeof endo.beta !== 'bigint' ||\n typeof endo.splitScalar !== 'function'\n ) {\n throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n }\n }\n return Object.freeze({ ...opts } as const);\n}\n\nexport type CurvePointsRes<T> = {\n CURVE: ReturnType<typeof validatePointOpts<T>>;\n ProjectivePoint: ProjConstructor<T>;\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n weierstrassEquation: (x: T) => T;\n isWithinCurveOrder: (num: bigint) => boolean;\n};\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: Uint8Array): { d: bigint; l: Uint8Array } {\n const { Err: E } = DER;\n if (data.length < 2 || data[0] !== 0x02) 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) 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) 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: string | Uint8Array): { r: bigint; s: bigint } {\n // parse DER signature\n const { Err: E } = DER;\n const data = typeof hex === 'string' ? h2b(hex) : hex;\n ut.abytes(data);\n let l = data.length;\n if (l < 2 || data[0] != 0x30) throw new E('Invalid signature tag');\n if (data[1] !== l - 2) 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) throw new E('Invalid signature: left bytes after parsing');\n return { r, s };\n },\n hexFromSig(sig: { r: bigint; s: bigint }): string {\n // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n const slice = (s: string): string => (Number.parseInt(s[0], 16) & 0b1000 ? '00' + s : s);\n const h = (num: number | bigint) => {\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\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);\n\nexport function weierstrassPoints<T>(opts: CurvePointsType<T>): CurvePointsRes<T> {\n const CURVE = validatePointOpts(opts);\n const { Fp } = CURVE; // All curves has same field / group length as for now, but they can differ\n\n const toBytes =\n CURVE.toBytes ||\n ((_c: ProjConstructor<T>, point: ProjPointType<T>, _isCompressed: boolean) => {\n const a = point.toAffine();\n return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n });\n const fromBytes =\n CURVE.fromBytes ||\n ((bytes: Uint8Array) => {\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 /**\n * y² = x³ + ax + b: Short weierstrass curve formula\n * @returns y²\n */\n function weierstrassEquation(x: T): T {\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\n // Valid group elements reside in range 1..n-1\n function isWithinCurveOrder(num: bigint): boolean {\n return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n }\n function assertGE(num: bigint) {\n if (!isWithinCurveOrder(num)) 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: PrivKey): bigint {\n const { allowedPrivateKeyLengths: lengths, nByteLength, wrapPrivateKey, n } = CURVE;\n if (lengths && typeof key !== 'bigint') {\n if (ut.isBytes(key)) 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)) throw new Error('Invalid key');\n key = key.padStart(nByteLength * 2, '0');\n }\n let num: bigint;\n try {\n num =\n typeof key === 'bigint'\n ? key\n : ut.bytesToNumberBE(ensureBytes('private key', key, nByteLength));\n } catch (error) {\n throw new Error(`private key must be ${nByteLength} bytes, hex or bigint, not ${typeof key}`);\n }\n if (wrapPrivateKey) 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\n const pointPrecomputes = new Map<Point, Point[]>();\n function assertPrjPoint(other: unknown) {\n if (!(other instanceof Point)) 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 implements ProjPointType<T> {\n static readonly BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n static readonly ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n\n constructor(\n readonly px: T,\n readonly py: T,\n readonly pz: T\n ) {\n if (px == null || !Fp.isValid(px)) throw new Error('x required');\n if (py == null || !Fp.isValid(py)) throw new Error('y required');\n if (pz == null || !Fp.isValid(pz)) throw new Error('z required');\n }\n\n // Does not validate if the point is on-curve.\n // Use fromHex instead, or call assertValidity() later.\n static fromAffine(p: AffinePoint<T>): Point {\n const { x, y } = p || {};\n if (!p || !Fp.isValid(x) || !Fp.isValid(y)) throw new Error('invalid affine point');\n if (p instanceof Point) throw new Error('projective point not allowed');\n const is0 = (i: T) => 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)) return Point.ZERO;\n return new Point(x, y, Fp.ONE);\n }\n\n get x(): T {\n return this.toAffine().x;\n }\n get y(): T {\n return this.toAffine().y;\n }\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: Point[]): Point[] {\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 /**\n * Converts hash string or Uint8Array to Point.\n * @param hex short/long ECDSA hex\n */\n static fromHex(hex: Hex): Point {\n const P = Point.fromAffine(fromBytes(ensureBytes('pointHex', hex)));\n P.assertValidity();\n return P;\n }\n\n // Multiplies generator point by privateKey.\n static fromPrivateKey(privateKey: PrivKey) {\n return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n }\n\n // We calculate precomputes for elliptic curve point multiplication\n // using windowed method. This specifies window size and\n // stores precomputed values. Usually only base point would be precomputed.\n _WINDOW_SIZE?: number;\n\n // \"Private method\", don't use it directly\n _setWindowSize(windowSize: number) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n\n // A point on curve is valid if it conforms to equation.\n assertValidity(): void {\n if (this.is0()) {\n // (0, 1, 0) aka ZERO is invalid in most contexts.\n // In BLS, ZERO can be serialized, so we allow it.\n // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n if (CURVE.allowInfinityPoint && !Fp.is0(this.py)) 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)) 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)) throw new Error('bad point: equation left != right');\n if (!this.isTorsionFree()) throw new Error('bad point: not in prime-order subgroup');\n }\n hasEvenY(): boolean {\n const { y } = this.toAffine();\n if (Fp.isOdd) return !Fp.isOdd(y);\n throw new Error(\"Field doesn't support isOdd\");\n }\n\n /**\n * Compare one point to another.\n */\n equals(other: Point): boolean {\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 /**\n * Flips point to one corresponding to (x, -y) in Affine coordinates.\n */\n negate(): Point {\n return new Point(this.px, Fp.neg(this.py), this.pz);\n }\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\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: Point): Point {\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\n subtract(other: Point) {\n return this.add(other.negate());\n }\n\n private is0() {\n return this.equals(Point.ZERO);\n }\n private wNAF(n: bigint): { p: Point; f: Point } {\n return wnaf.wNAFCached(this, pointPrecomputes, n, (comp: Point[]) => {\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 /**\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: bigint): Point {\n const I = Point.ZERO;\n if (n === _0n) return I;\n assertGE(n); // Will throw on 0\n if (n === _1n) return this;\n const { endo } = CURVE;\n if (!endo) return wnaf.unsafeLadder(this, n);\n\n // Apply endomorphism\n let { k1neg, k1, k2neg, k2 } = endo.splitScalar(n);\n let k1p = I;\n let k2p = I;\n let d: Point = this;\n while (k1 > _0n || k2 > _0n) {\n if (k1 & _1n) k1p = k1p.add(d);\n if (k2 & _1n) k2p = k2p.add(d);\n d = d.double();\n k1 >>= _1n;\n k2 >>= _1n;\n }\n if (k1neg) k1p = k1p.negate();\n if (k2neg) 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 /**\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: bigint): Point {\n assertGE(scalar);\n let n = scalar;\n let point: Point, fake: Point; // 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 } 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 /**\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: Point, a: bigint, b: bigint): Point | undefined {\n const G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n const mul = (\n P: Point,\n a: bigint // 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\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?: T): AffinePoint<T> {\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) 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) return { x: Fp.ZERO, y: Fp.ZERO };\n if (!Fp.eql(zz, Fp.ONE)) throw new Error('invZ was invalid');\n return { x: ax, y: ay };\n }\n isTorsionFree(): boolean {\n const { h: cofactor, isTorsionFree } = CURVE;\n if (cofactor === _1n) return true; // No subgroups, always torsion-free\n if (isTorsionFree) return isTorsionFree(Point, this);\n throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n }\n clearCofactor(): Point {\n const { h: cofactor, clearCofactor } = CURVE;\n if (cofactor === _1n) return this; // Fast-path\n if (clearCofactor) return clearCofactor(Point, this) as Point;\n return this.multiplyUnsafe(CURVE.h);\n }\n\n toRawBytes(isCompressed = true): Uint8Array {\n this.assertValidity();\n return toBytes(Point, this, isCompressed);\n }\n\n toHex(isCompressed = true): string {\n return ut.bytesToHex(this.toRawBytes(isCompressed));\n }\n }\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 as ProjConstructor<T>,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n };\n}\n\n// Instance\nexport interface SignatureType {\n readonly r: bigint;\n readonly s: bigint;\n readonly recovery?: number;\n assertValidity(): void;\n addRecoveryBit(recovery: number): RecoveredSignatureType;\n hasHighS(): boolean;\n normalizeS(): SignatureType;\n recoverPublicKey(msgHash: Hex): ProjPointType<bigint>;\n toCompactRawBytes(): Uint8Array;\n toCompactHex(): string;\n // DER-encoded\n toDERRawBytes(isCompressed?: boolean): Uint8Array;\n toDERHex(isCompressed?: boolean): string;\n}\nexport type RecoveredSignatureType = SignatureType & {\n readonly recovery: number;\n};\n// Static methods\nexport type SignatureConstructor = {\n new (r: bigint, s: bigint): SignatureType;\n fromCompact(hex: Hex): SignatureType;\n fromDER(hex: Hex): SignatureType;\n};\ntype SignatureLike = { r: bigint; s: bigint };\n\nexport type PubKey = Hex | ProjPointType<bigint>;\n\nexport type CurveType = BasicWCurve<bigint> & {\n hash: CHash; // CHash not FHash because we need outputLen for DRBG\n hmac: HmacFnSync;\n randomBytes: (bytesLength?: number) => Uint8Array;\n lowS?: boolean;\n bits2int?: (bytes: Uint8Array) => bigint;\n bits2int_modN?: (bytes: Uint8Array) => bigint;\n};\n\nfunction validateOpts(curve: CurveType) {\n const opts = validateBasic(curve);\n ut.validateObject(\n opts,\n {\n hash: 'hash',\n hmac: 'function',\n randomBytes: 'function',\n },\n {\n bits2int: 'function',\n bits2int_modN: 'function',\n lowS: 'boolean',\n }\n );\n return Object.freeze({ lowS: true, ...opts } as const);\n}\n\nexport type CurveFn = {\n CURVE: ReturnType<typeof validateOpts>;\n getPublicKey: (privateKey: PrivKey, isCompressed?: boolean) => Uint8Array;\n getSharedSecret: (privateA: PrivKey, publicB: Hex, isCompressed?: boolean) => Uint8Array;\n sign: (msgHash: Hex, privKey: PrivKey, opts?: SignOpts) => RecoveredSignatureType;\n verify: (signature: Hex | SignatureLike, msgHash: Hex, publicKey: Hex, opts?: VerOpts) => boolean;\n ProjectivePoint: ProjConstructor<bigint>;\n Signature: SignatureConstructor;\n utils: {\n normPrivateKeyToScalar: (key: PrivKey) => bigint;\n isValidPrivateKey(privateKey: PrivKey): boolean;\n randomPrivateKey: () => Uint8Array;\n precompute: (windowSize?: number, point?: ProjPointType<bigint>) => ProjPointType<bigint>;\n };\n};\n\nexport function weierstrass(curveDef: CurveType): CurveFn {\n const CURVE = validateOpts(curveDef) as ReturnType<typeof validateOpts>;\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\n function isValidFieldElement(num: bigint): boolean {\n return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n }\n function modN(a: bigint) {\n return mod.mod(a, CURVE_ORDER);\n }\n function invN(a: bigint) {\n return mod.invert(a, CURVE_ORDER);\n }\n\n const {\n ProjectivePoint: Point,\n normPrivateKeyToScalar,\n weierstrassEquation,\n isWithinCurveOrder,\n } = weierstrassPoints({\n ...CURVE,\n toBytes(_c, point, isCompressed: boolean): Uint8Array {\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 } else {\n return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n }\n },\n fromBytes(bytes: Uint8Array) {\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)) throw new Error('Point is not on curve');\n const y2 = weierstrassEquation(x); // y² = x³ + ax + b\n let y: bigint;\n try {\n y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n } catch (sqrtError) {\n const suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n throw new Error('Point is not on curve' + suffix);\n }\n const isYOdd = (y & _1n) === _1n;\n // ECDSA\n const isHeadOdd = (head & 1) === 1;\n if (isHeadOdd !== isYOdd) y = Fp.neg(y);\n return { x, y };\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 } else {\n throw new Error(\n `Point of length ${len} was invalid. Expected ${compressedLen} compressed bytes or ${uncompressedLen} uncompressed bytes`\n );\n }\n },\n });\n const numToNByteStr = (num: bigint): string =>\n ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n\n function isBiggerThanHalfOrder(number: bigint) {\n const HALF = CURVE_ORDER >> _1n;\n return number > HALF;\n }\n\n function normalizeS(s: bigint) {\n return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n }\n // slice bytes num\n const slcNum = (b: Uint8Array, from: number, to: number) => ut.bytesToNumberBE(b.slice(from, to));\n\n /**\n * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n */\n class Signature implements SignatureType {\n constructor(\n readonly r: bigint,\n readonly s: bigint,\n readonly recovery?: number\n ) {\n this.assertValidity();\n }\n\n // pair (bytes of r, bytes of s)\n static fromCompact(hex: 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\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: Hex) {\n const { r, s } = DER.toSig(ensureBytes('DER', hex));\n return new Signature(r, s);\n }\n\n assertValidity(): void {\n // can use assertGE here\n if (!isWithinCurveOrder(this.r)) throw new Error('r must be 0 < r < CURVE.n');\n if (!isWithinCurveOrder(this.s)) throw new Error('s must be 0 < s < CURVE.n');\n }\n\n addRecoveryBit(recovery: number): RecoveredSignature {\n return new Signature(this.r, this.s, recovery) as RecoveredSignature;\n }\n\n recoverPublicKey(msgHash: Hex): typeof Point.BASE {\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)) throw new Error('recovery id invalid');\n const radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n if (radj >= Fp.ORDER) 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) throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n Q.assertValidity();\n return Q;\n }\n\n // Signatures should be low-s, to prevent malleability.\n hasHighS(): boolean {\n return isBiggerThanHalfOrder(this.s);\n }\n\n normalizeS() {\n return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n }\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\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 type RecoveredSignature = Signature & { recovery: number };\n\n const utils = {\n isValidPrivateKey(privateKey: PrivKey) {\n try {\n normPrivateKeyToScalar(privateKey);\n return true;\n } catch (error) {\n return false;\n }\n },\n normPrivateKeyToScalar: normPrivateKeyToScalar,\n\n /**\n * Produces cryptographically secure private key from random of size\n * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n */\n randomPrivateKey: (): Uint8Array => {\n const length = mod.getMinHashLength(CURVE.n);\n return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n },\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): typeof 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 /**\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: PrivKey, isCompressed = true): Uint8Array {\n return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n }\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: PrivKey | PubKey): boolean {\n const arr = ut.isBytes(item);\n const str = typeof item === 'string';\n const len = (arr || str) && (item as Hex).length;\n if (arr) return len === compressedLen || len === uncompressedLen;\n if (str) return len === 2 * compressedLen || len === 2 * uncompressedLen;\n if (item instanceof Point) return true;\n return false;\n }\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: PrivKey, publicB: Hex, isCompressed = true): Uint8Array {\n if (isProbPub(privateA)) throw new Error('first arg must be private key');\n if (!isProbPub(publicB)) 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\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 =\n CURVE.bits2int ||\n function (bytes: Uint8Array): bigint {\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 =\n CURVE.bits2int_modN ||\n function (bytes: Uint8Array): bigint {\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: bigint): Uint8Array {\n if (typeof num !== 'bigint') 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\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: Hex, privateKey: PrivKey, 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) lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n msgHash = ensureBytes('msgHash', msgHash);\n if (prehash) msgHash = ensureBytes('prehashed msgHash', hash(msgHash));\n\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 && ent !== false) {\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)); // check for being 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: Uint8Array): RecoveredSignature | undefined {\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)) 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) 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) 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) as RecoveredSignature; // use normS, not s\n }\n return { seed, k2sig };\n }\n const defaultSigOpts: SignOpts = { lowS: CURVE.lowS, prehash: false };\n const defaultVerOpts: VerOpts = { lowS: CURVE.lowS, prehash: false };\n\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: Hex, privKey: PrivKey, opts = defaultSigOpts): RecoveredSignature {\n const { seed, k2sig } = prepSig(msgHash, privKey, opts); // Steps A, D of RFC6979 3.2.\n const C = CURVE;\n const drbg = ut.createHmacDrbg<RecoveredSignature>(C.hash.outputLen, C.nByteLength, C.hmac);\n return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n }\n\n // Enable precomputes. Slows down first publicKey computation by 20ms.\n Point.BASE._setWindowSize(8);\n // utils.precompute(8, ProjectivePoint.BASE)\n\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(\n signature: Hex | SignatureLike,\n msgHash: Hex,\n publicKey: Hex,\n opts = defaultVerOpts\n ): boolean {\n const sg = signature;\n msgHash = ensureBytes('msgHash', msgHash);\n publicKey = ensureBytes('publicKey', publicKey);\n if ('strict' in opts) throw new Error('options.strict was renamed to lowS');\n const { lowS, prehash } = opts;\n\n let _sig: Signature | undefined = undefined;\n let P: ProjPointType<bigint>;\n try {\n if (typeof sg === 'string' || ut.isBytes(sg)) {\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 } catch (derError) {\n if (!(derError instanceof DER.Err)) throw derError;\n _sig = Signature.fromCompact(sg);\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 } else {\n throw new Error('PARSE');\n }\n P = Point.fromHex(publicKey);\n } catch (error) {\n if ((error as 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()) return false;\n if (prehash) 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) 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/**\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<T>(Fp: mod.IField<T>, Z: T) {\n // Generic implementation\n const q = Fp.ORDER;\n let l = _0n;\n for (let o = q - _1n; o % _2n === _0n; o /= _2n) 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: T, v: T): { isValid: boolean; value: T } => {\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: T, v: T) => {\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 * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nexport function mapToCurveSimpleSWU<T>(\n Fp: mod.IField<T>,\n opts: {\n A: T;\n B: T;\n Z: T;\n }\n) {\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) 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: T): { x: T; y: T } => {\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","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { hmac } from '@noble/hashes/hmac';\nimport { concatBytes, randomBytes } from '@noble/hashes/utils';\nimport { CHash } from './abstract/utils.js';\nimport { CurveType, weierstrass } from './abstract/weierstrass.js';\n\n// connects noble-curves to noble-hashes\nexport function getHash(hash: CHash) {\n return {\n hash,\n hmac: (key: Uint8Array, ...msgs: Uint8Array[]) => hmac(hash, key, concatBytes(...msgs)),\n randomBytes,\n };\n}\n// Same API as @noble/hashes, with ability to create curve with custom hash\ntype CurveDef = Readonly<Omit<CurveType, 'hash' | 'hmac' | 'randomBytes'>>;\nexport function createCurve(curveDef: CurveDef, defHash: CHash) {\n const create = (hash: CHash) => weierstrass({ ...curveDef, ...getHash(hash) });\n return Object.freeze({ ...create(defHash), create });\n}\n","/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nimport { sha256 } from '@noble/hashes/sha256';\nimport { randomBytes } from '@noble/hashes/utils';\nimport { createCurve } from './_shortw_utils.js';\nimport { createHasher, isogenyMap } from './abstract/hash-to-curve.js';\nimport { Field, mod, pow2 } from './abstract/modular.js';\nimport type { Hex, PrivKey } from './abstract/utils.js';\nimport { bytesToNumberBE, concatBytes, ensureBytes, numberToBytesBE } from './abstract/utils.js';\nimport { ProjPointType as PointType, mapToCurveSimpleSWU } from './abstract/weierstrass.js';\n\nconst secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nconst secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst divNearest = (a: bigint, b: bigint) => (a + b / _2n) / b;\n\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: bigint): bigint {\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)) throw new Error('Cannot find square root');\n return root;\n}\n\nconst Fp = Field(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\n\nexport const secp256k1 = createCurve(\n {\n a: BigInt(0), // equation params: a, b\n b: BigInt(7), // Seem to be rigid: bitcointalk.org/index.php?topic=289795.msg3183975#msg3183975\n Fp, // Field's prime: 2n**256n - 2n**32n - 2n**9n - 2n**8n - 2n**7n - 2n**6n - 2n**4n - 1n\n n: secp256k1N, // Curve order, total count of valid points in the field\n // Base point (x, y) aka generator point\n Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n h: BigInt(1), // Cofactor\n lowS: true, // Allow only low-S signatures by default in sign() and verify()\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: bigint) => {\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\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) k1 = n - k1;\n if (k2neg) 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 },\n sha256\n);\n\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: bigint) => typeof x === 'bigint' && _0n < x && x < secp256k1P;\nconst ge = (x: bigint) => 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: { [tag: string]: Uint8Array } = {};\nfunction taggedHash(tag: string, ...messages: Uint8Array[]): Uint8Array {\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\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nconst pointToBytes = (point: PointType<bigint>) => point.toRawBytes(true).slice(1);\nconst numTo32b = (n: bigint) => numberToBytesBE(n, 32);\nconst modP = (x: bigint) => mod(x, secp256k1P);\nconst modN = (x: bigint) => mod(x, secp256k1N);\nconst Point = secp256k1.ProjectivePoint;\nconst GmulAdd = (Q: PointType<bigint>, a: bigint, b: bigint) =>\n Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv: PrivKey) {\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: bigint): PointType<bigint> {\n if (!fe(x)) 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) 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: Uint8Array[]): bigint {\n return modN(bytesToNumberBE(taggedHash('BIP0340/challenge', ...args)));\n}\n\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey: Hex): Uint8Array {\n return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\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(\n message: Hex,\n privateKey: PrivKey,\n auxRand: Hex = randomBytes(32)\n): Uint8Array {\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) 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)) throw new Error('sign: Invalid signature produced');\n return sig;\n}\n\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature: Hex, message: Hex, publicKey: Hex): boolean {\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)) return false;\n const s = bytesToNumberBE(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n if (!ge(s)) 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) return false; // -eP == (n-e)P\n return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n } catch (error) {\n return false;\n }\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}))();\n\nconst isoMap = /* @__PURE__ */ (() =>\n isogenyMap(\n Fp,\n [\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))) as [bigint[], bigint[], bigint[], bigint[]]\n ))();\nconst mapSWU = /* @__PURE__ */ (() =>\n mapToCurveSimpleSWU(Fp, {\n A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n B: BigInt('1771'),\n Z: Fp.create(BigInt('-11')),\n }))();\nconst htf = /* @__PURE__ */ (() =>\n createHasher(\n secp256k1.ProjectivePoint,\n (scalars: bigint[]) => {\n const { x, y } = mapSWU(Fp.create(scalars[0]));\n return isoMap(x, y);\n },\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 }\n ))();\nexport const hashToCurve = /* @__PURE__ */ (() => htf.hashToCurve)();\nexport const encodeToCurve = /* @__PURE__ */ (() => htf.encodeToCurve)();\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n// eslint-disable-next-line import/extensions\nimport * as ethereumCryptography from 'ethereum-cryptography/secp256k1.js';\n\nexport const secp256k1 = ethereumCryptography.secp256k1 ?? ethereumCryptography;\n/**\n * 2^64-1\n */\nexport const MAX_UINT64 = BigInt('0xffffffffffffffff');\n\n/**\n * The max integer that the evm can handle (2^256-1)\n */\nexport const MAX_INTEGER = BigInt(\n\t'0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',\n);\n\nexport const SECP256K1_ORDER = secp256k1.CURVE.n;\nexport const SECP256K1_ORDER_DIV_2 = SECP256K1_ORDER / BigInt(2);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nexport const keyStoreSchema = {\n\ttype: 'object',\n\trequired: ['crypto', 'id', 'version', 'address'],\n\tproperties: {\n\t\tcrypto: {\n\t\t\ttype: 'object',\n\t\t\trequired: ['cipher', 'ciphertext', 'cipherparams', 'kdf', 'kdfparams', 'mac'],\n\t\t\tproperties: {\n\t\t\t\tcipher: { type: 'string' },\n\t\t\t\tciphertext: { type: 'string' },\n\t\t\t\tcipherparams: { type: 'object' },\n\t\t\t\tkdf: { type: 'string' },\n\t\t\t\tkdfparams: { type: 'object' },\n\t\t\t\tsalt: { type: 'string' },\n\t\t\t\tmac: { type: 'string' },\n\t\t\t},\n\t\t},\n\t\tid: { type: 'string' },\n\t\tversion: { type: 'number' },\n\t\taddress: { type: 'string' },\n\t},\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nexport enum Chain {\n\tMainnet = 1,\n\tGoerli = 5,\n\tSepolia = 11155111,\n}\n\nexport enum Hardfork {\n\tChainstart = 'chainstart',\n\tHomestead = 'homestead',\n\tDao = 'dao',\n\tTangerineWhistle = 'tangerineWhistle',\n\tSpuriousDragon = 'spuriousDragon',\n\tByzantium = 'byzantium',\n\tConstantinople = 'constantinople',\n\tPetersburg = 'petersburg',\n\tIstanbul = 'istanbul',\n\tMuirGlacier = 'muirGlacier',\n\tBerlin = 'berlin',\n\tLondon = 'london',\n\tArrowGlacier = 'arrowGlacier',\n\tGrayGlacier = 'grayGlacier',\n\tMergeForkIdTransition = 'mergeForkIdTransition',\n\tMerge = 'merge',\n\tShanghai = 'shanghai',\n\tShardingForkDev = 'shardingFork',\n}\n\nexport enum ConsensusType {\n\tProofOfStake = 'pos',\n\tProofOfWork = 'pow',\n\tProofOfAuthority = 'poa',\n}\n\nexport enum ConsensusAlgorithm {\n\tEthash = 'ethash',\n\tClique = 'clique',\n\tCasper = 'casper',\n}\n\nexport enum CustomChain {\n\t/**\n\t * Polygon (Matic) Mainnet\n\t *\n\t * - [Documentation](https://docs.matic.network/docs/develop/network-details/network)\n\t */\n\tPolygonMainnet = 'polygon-mainnet',\n\n\t/**\n\t * Polygon (Matic) Mumbai Testnet\n\t *\n\t * - [Documentation](https://docs.matic.network/docs/develop/network-details/network)\n\t */\n\tPolygonMumbai = 'polygon-mumbai',\n\n\t/**\n\t * Arbitrum Rinkeby Testnet\n\t *\n\t * - [Documentation](https://developer.offchainlabs.com/docs/public_testnet)\n\t */\n\tArbitrumRinkebyTestnet = 'arbitrum-rinkeby-testnet',\n\n\t/**\n\t * Arbitrum One - mainnet for Arbitrum roll-up\n\t *\n\t * - [Documentation](https://developer.offchainlabs.com/public-chains)\n\t */\n\tArbitrumOne = 'arbitrum-one',\n\n\t/**\n\t * xDai EVM sidechain with a native stable token\n\t *\n\t * - [Documentation](https://www.xdaichain.com/)\n\t */\n\txDaiChain = 'x-dai-chain',\n\n\t/**\n\t * Optimistic Kovan - testnet for Optimism roll-up\n\t *\n\t * - [Documentation](https://community.optimism.io/docs/developers/tutorials.html)\n\t */\n\tOptimisticKovan = 'optimistic-kovan',\n\n\t/**\n\t * Optimistic Ethereum - mainnet for Optimism roll-up\n\t *\n\t * - [Documentation](https://community.optimism.io/docs/developers/tutorials.html)\n\t */\n\tOptimisticEthereum = 'optimistic-ethereum',\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport type { Chain, ConsensusAlgorithm, ConsensusType, Hardfork } from './enums.js';\n\nexport interface ChainName {\n\t[chainId: string]: string;\n}\n\nexport type CliqueConfig = {\n\tperiod: number;\n\tepoch: number;\n};\n\nexport type EthashConfig = Record<string, unknown>;\n\nexport type CasperConfig = Record<string, unknown>;\n\nexport interface GenesisBlockConfig {\n\ttimestamp?: string;\n\tgasLimit: number;\n\tdifficulty: number;\n\tnonce: string;\n\textraData: string;\n\tbaseFeePerGas?: string;\n}\n\nexport interface HardforkConfig {\n\tname: Hardfork | string;\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tblock: number | null; // null is used for hardforks that should not be applied -- since `undefined` isn't a valid value in JSON\n\tttd?: bigint | string;\n\ttimestamp?: number | string;\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tforkHash?: string | null;\n}\n\nexport interface BootstrapNodeConfig {\n\tip: string;\n\tport: number | string;\n\tnetwork?: string;\n\tchainId?: number;\n\tid: string;\n\tlocation: string;\n\tcomment: string;\n}\n\nexport interface ChainConfig {\n\tname: string;\n\tchainId: number | bigint;\n\tnetworkId: number | bigint;\n\tdefaultHardfork?: string;\n\tcomment?: string;\n\turl?: string;\n\tgenesis: GenesisBlockConfig;\n\thardforks: HardforkConfig[];\n\tbootstrapNodes?: BootstrapNodeConfig[];\n\tdnsNetworks?: string[];\n\tconsensus: {\n\t\ttype: ConsensusType | string;\n\t\talgorithm: ConsensusAlgorithm | string;\n\t\tclique?: CliqueConfig;\n\t\tethash?: EthashConfig;\n\t\tcasper?: CasperConfig;\n\t};\n}\nexport interface ChainsConfig {\n\t[key: string]: ChainConfig | ChainName;\n}\n\ninterface BaseOpts {\n\t/**\n\t * String identifier ('byzantium') for hardfork or {@link Hardfork} enum.\n\t *\n\t * Default: Hardfork.London\n\t */\n\thardfork?: string | Hardfork;\n\t/**\n\t * Selected EIPs which can be activated, please use an array for instantiation\n\t * (e.g. `eips: [ 2537, ]`)\n\t *\n\t * Currently supported:\n\t *\n\t * - [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537) - BLS12-381 precompiles\n\t */\n\teips?: number[];\n}\n\n/**\n * Options for instantiating a {@link Common} instance.\n */\nexport interface CommonOpts extends BaseOpts {\n\t/**\n\t * Chain name ('mainnet'), id (1), or {@link Chain} enum,\n\t * either from a chain directly supported or a custom chain\n\t * passed in via {@link CommonOpts.customChains}.\n\t */\n\tchain: string | number | Chain | bigint | object;\n\t/**\n\t * Initialize (in addition to the supported chains) with the selected\n\t * custom chains. Custom genesis state should be passed to the Blockchain class if used.\n\t *\n\t * Usage (directly with the respective chain initialization via the {@link CommonOpts.chain} option):\n\t *\n\t * ```javascript\n\t * import myCustomChain1 from '[PATH_TO_MY_CHAINS]/myCustomChain1.json'\n\t * const common = new Common({ chain: 'myCustomChain1', customChains: [ myCustomChain1 ]})\n\t * ```\n\t */\n\tcustomChains?: ChainConfig[];\n}\n\n/**\n * Options to be used with the {@link Common.custom} static constructor.\n */\nexport interface CustomCommonOpts extends BaseOpts {\n\t/**\n\t * The name (`mainnet`), id (`1`), or {@link Chain} enum of\n\t * a standard chain used to base the custom chain params on.\n\t */\n\tbaseChain?: string | number | Chain | bigint;\n}\n\nexport interface GethConfigOpts extends BaseOpts {\n\tchain?: string;\n\tgenesisHash?: Uint8Array;\n\tmergeForkIdPostMerge?: boolean;\n}\n\n/*\n * A type that represents a `0x`-prefixed hex string.\n */\nexport type PrefixedHexString = string;\n\n/*\n * A type that represents an input that can be converted to a Buffer.\n */\nexport type Uint8ArrayLike = Uint8Array | number[] | number | bigint | PrefixedHexString;\n\n/*\n * A type that represents an input that can be converted to a BigInt.\n */\nexport type BigIntLike = bigint | PrefixedHexString | number | Uint8Array;\n\n/*\n * A type that represents an object that has a `toArray()` method.\n */\nexport interface TransformableToArray {\n\ttoArray(): Uint8Array;\n}\n\nexport type NestedUint8Array = Array<Uint8Array | NestedUint8Array>;\n/**\n * Type output options\n */\nexport enum TypeOutput {\n\tNumber,\n\tBigInt,\n\tUint8Array,\n\tPrefixedHexString,\n}\n\nexport type TypeOutputReturnType = {\n\t[TypeOutput.Number]: number;\n\t[TypeOutput.BigInt]: bigint;\n\t[TypeOutput.Uint8Array]: Uint8Array;\n\t[TypeOutput.PrefixedHexString]: PrefixedHexString;\n};\nexport type ToBytesInputTypes =\n\t| PrefixedHexString\n\t| number\n\t| bigint\n\t| Uint8Array\n\t| number[]\n\t| TransformableToArray\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t| null\n\t| undefined;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { isHexPrefixed, isHexString } from 'web3-validator';\nimport { bytesToHex, hexToBytes, isUint8Array, numberToHex } from 'web3-utils';\nimport { secp256k1 } from '../tx/constants.js';\nimport { Hardfork } from './enums.js';\nimport { ToBytesInputTypes, TypeOutput, TypeOutputReturnType } from './types.js';\n\ntype ConfigHardfork =\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t| { name: string; block: null; timestamp: number }\n\t| { name: string; block: number; timestamp?: number };\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: string): string => {\n\tif (typeof str !== 'string')\n\t\tthrow new Error(`[stripHexPrefix] input must be type 'string', received ${typeof str}`);\n\n\treturn isHexPrefixed(str) ? str.slice(2) : str;\n};\n/**\n * Transforms Geth formatted nonce (i.e. hex string) to 8 byte 0x-prefixed string used internally\n * @param nonce string parsed from the Geth genesis file\n * @returns nonce as a 0x-prefixed 8 byte string\n */\nfunction formatNonce(nonce: string): string {\n\tif (!nonce || nonce === '0x0') {\n\t\treturn '0x0000000000000000';\n\t}\n\tif (isHexPrefixed(nonce)) {\n\t\treturn `0x${stripHexPrefix(nonce).padStart(16, '0')}`;\n\t}\n\treturn `0x${nonce.padStart(16, '0')}`;\n}\n\n/**\n * Converts a `Number` into a hex `String`\n * @param {Number} i\n * @return {String}\n */\nconst intToHex = function (i: number) {\n\tif (!Number.isSafeInteger(i) || i < 0) {\n\t\tthrow new Error(`Received an invalid integer type: ${i}`);\n\t}\n\treturn `0x${i.toString(16)}`;\n};\n\n/**\n * Converts Geth genesis parameters to an EthereumJS compatible `CommonOpts` object\n * @param json object representing the Geth genesis file\n * @param optional mergeForkIdPostMerge which clarifies the placement of MergeForkIdTransition\n * hardfork, which by default is post merge as with the merged eth networks but could also come\n * before merge like in kiln genesis\n * @returns genesis parameters in a `CommonOpts` compliant object\n */\nfunction parseGethParams(json: any, mergeForkIdPostMerge = true) {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\tconst {\n\t\tname,\n\t\tconfig,\n\t\tdifficulty,\n\t\tmixHash,\n\t\tgasLimit,\n\t\tcoinbase,\n\t\tbaseFeePerGas,\n\t}: {\n\t\tname: string;\n\t\tconfig: any;\n\t\tdifficulty: string;\n\t\tmixHash: string;\n\t\tgasLimit: string;\n\t\tcoinbase: string;\n\t\tbaseFeePerGas: string;\n\t} = json;\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\tlet { extraData, timestamp, nonce }: { extraData: string; timestamp: string; nonce: string } =\n\t\tjson;\n\tconst genesisTimestamp = Number(timestamp);\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\tconst { chainId }: { chainId: number } = config;\n\n\t// geth is not strictly putting empty fields with a 0x prefix\n\tif (extraData === '') {\n\t\textraData = '0x';\n\t}\n\t// geth may use number for timestamp\n\tif (!isHexPrefixed(timestamp)) {\n\t\t// eslint-disable-next-line radix\n\t\ttimestamp = intToHex(parseInt(timestamp));\n\t}\n\t// geth may not give us a nonce strictly formatted to an 8 byte hex string\n\tif (nonce.length !== 18) {\n\t\tnonce = formatNonce(nonce);\n\t}\n\n\t// EIP155 and EIP158 are both part of Spurious Dragon hardfork and must occur at the same time\n\t// but have different configuration parameters in geth genesis parameters\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tif (config.eip155Block !== config.eip158Block) {\n\t\tthrow new Error(\n\t\t\t'EIP155 block number must equal EIP 158 block number since both are part of SpuriousDragon hardfork and the client only supports activating the full hardfork',\n\t\t);\n\t}\n\n\tconst params = {\n\t\tname,\n\t\tchainId,\n\t\tnetworkId: chainId,\n\t\tgenesis: {\n\t\t\ttimestamp,\n\t\t\t// eslint-disable-next-line radix\n\t\t\tgasLimit: parseInt(gasLimit), // geth gasLimit and difficulty are hex strings while ours are `number`s\n\t\t\t// eslint-disable-next-line radix\n\t\t\tdifficulty: parseInt(difficulty),\n\t\t\tnonce,\n\t\t\textraData,\n\t\t\tmixHash,\n\t\t\tcoinbase,\n\t\t\tbaseFeePerGas,\n\t\t},\n\t\thardfork: undefined as string | undefined,\n\t\thardforks: [] as ConfigHardfork[],\n\t\tbootstrapNodes: [],\n\t\tconsensus:\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tconfig.clique !== undefined\n\t\t\t\t? {\n\t\t\t\t\t\ttype: 'poa',\n\t\t\t\t\t\talgorithm: 'clique',\n\t\t\t\t\t\tclique: {\n\t\t\t\t\t\t\t// The recent geth genesis seems to be using blockperiodseconds\n\t\t\t\t\t\t\t// and epochlength for clique specification\n\t\t\t\t\t\t\t// see: https://hackmd.io/PqZgMpnkSWCWv5joJoFymQ\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t\tperiod: config.clique.period ?? config.clique.blockperiodseconds,\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\t\t\tepoch: config.clique.epoch ?? config.clique.epochlength,\n\t\t\t\t\t\t},\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\ttype: 'pow',\n\t\t\t\t\t\talgorithm: 'ethash',\n\t\t\t\t\t\tethash: {},\n\t\t\t\t },\n\t};\n\n\tconst forkMap: { [key: string]: { name: string; postMerge?: boolean; isTimestamp?: boolean } } =\n\t\t{\n\t\t\t[Hardfork.Homestead]: { name: 'homesteadBlock' },\n\t\t\t[Hardfork.Dao]: { name: 'daoForkBlock' },\n\t\t\t[Hardfork.TangerineWhistle]: { name: 'eip150Block' },\n\t\t\t[Hardfork.SpuriousDragon]: { name: 'eip155Block' },\n\t\t\t[Hardfork.Byzantium]: { name: 'byzantiumBlock' },\n\t\t\t[Hardfork.Constantinople]: { name: 'constantinopleBlock' },\n\t\t\t[Hardfork.Petersburg]: { name: 'petersburgBlock' },\n\t\t\t[Hardfork.Istanbul]: { name: 'istanbulBlock' },\n\t\t\t[Hardfork.MuirGlacier]: { name: 'muirGlacierBlock' },\n\t\t\t[Hardfork.Berlin]: { name: 'berlinBlock' },\n\t\t\t[Hardfork.London]: { name: 'londonBlock' },\n\t\t\t[Hardfork.MergeForkIdTransition]: {\n\t\t\t\tname: 'mergeForkBlock',\n\t\t\t\tpostMerge: mergeForkIdPostMerge,\n\t\t\t},\n\t\t\t[Hardfork.Shanghai]: { name: 'shanghaiTime', postMerge: true, isTimestamp: true },\n\t\t\t[Hardfork.ShardingForkDev]: {\n\t\t\t\tname: 'shardingForkTime',\n\t\t\t\tpostMerge: true,\n\t\t\t\tisTimestamp: true,\n\t\t\t},\n\t\t};\n\n\t// forkMapRev is the map from config field name to Hardfork\n\tconst forkMapRev = Object.keys(forkMap).reduce<{ [key: string]: string }>((acc, elem) => {\n\t\tacc[forkMap[elem].name] = elem;\n\t\treturn acc;\n\t}, {});\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\tconst configHardforkNames = Object.keys(config).filter(\n\t\t// eslint-disable-next-line no-null/no-null, @typescript-eslint/no-unsafe-member-access\n\t\tkey => forkMapRev[key] !== undefined && config[key] !== undefined && config[key] !== null,\n\t);\n\n\tparams.hardforks = configHardforkNames\n\t\t.map(nameBlock => ({\n\t\t\tname: forkMapRev[nameBlock],\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tblock:\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tforkMap[forkMapRev[nameBlock]].isTimestamp === true ||\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\ttypeof config[nameBlock] !== 'number'\n\t\t\t\t\t? // eslint-disable-next-line no-null/no-null\n\t\t\t\t\t null\n\t\t\t\t\t: // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\t config[nameBlock],\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\ttimestamp:\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tforkMap[forkMapRev[nameBlock]].isTimestamp === true &&\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\ttypeof config[nameBlock] === 'number'\n\t\t\t\t\t? // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\t config[nameBlock]\n\t\t\t\t\t: undefined,\n\t\t}))\n\t\t// eslint-disable-next-line no-null/no-null\n\t\t.filter(fork => fork.block !== null || fork.timestamp !== undefined) as ConfigHardfork[];\n\n\tparams.hardforks.sort(\n\t\t(a: ConfigHardfork, b: ConfigHardfork) => (a.block ?? Infinity) - (b.block ?? Infinity),\n\t);\n\n\tparams.hardforks.sort(\n\t\t(a: ConfigHardfork, b: ConfigHardfork) =>\n\t\t\t(a.timestamp ?? genesisTimestamp) - (b.timestamp ?? genesisTimestamp),\n\t);\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tif (config.terminalTotalDifficulty !== undefined) {\n\t\t// Following points need to be considered for placement of merge hf\n\t\t// - Merge hardfork can't be placed at genesis\n\t\t// - Place merge hf before any hardforks that require CL participation for e.g. withdrawals\n\t\t// - Merge hardfork has to be placed just after genesis if any of the genesis hardforks make CL\n\t\t// necessary for e.g. withdrawals\n\t\tconst mergeConfig = {\n\t\t\tname: Hardfork.Merge,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\tttd: config.terminalTotalDifficulty,\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tblock: null,\n\t\t};\n\n\t\t// Merge hardfork has to be placed before first hardfork that is dependent on merge\n\t\tconst postMergeIndex = params.hardforks.findIndex(\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t(hf: any) => forkMap[hf.name]?.postMerge === true,\n\t\t);\n\t\tif (postMergeIndex !== -1) {\n\t\t\tparams.hardforks.splice(postMergeIndex, 0, mergeConfig as unknown as ConfigHardfork);\n\t\t} else {\n\t\t\tparams.hardforks.push(mergeConfig as unknown as ConfigHardfork);\n\t\t}\n\t}\n\n\tconst latestHardfork = params.hardforks.length > 0 ? params.hardforks.slice(-1)[0] : undefined;\n\tparams.hardfork = latestHardfork?.name;\n\tparams.hardforks.unshift({ name: Hardfork.Chainstart, block: 0 });\n\n\treturn params;\n}\n\n/**\n * Parses a genesis.json exported from Geth into parameters for Common instance\n * @param json representing the Geth genesis file\n * @param name optional chain name\n * @returns parsed params\n */\nexport function parseGethGenesis(json: any, name?: string, mergeForkIdPostMerge?: boolean) {\n\ttry {\n\t\tif (['config', 'difficulty', 'gasLimit', 'alloc'].some(field => !(field in json))) {\n\t\t\tthrow new Error('Invalid format, expected geth genesis fields missing');\n\t\t}\n\t\tif (name !== undefined) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-param-reassign\n\t\t\tjson.name = name;\n\t\t}\n\t\treturn parseGethParams(json, mergeForkIdPostMerge);\n\t} catch (e: any) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions\n\t\tthrow new Error(`Error parsing parameters file: ${e.message}`);\n\t}\n}\n\n/**\n * Pads a `String` to have an even length\n * @param value\n * @return output\n */\nexport function padToEven(value: string): string {\n\tlet a = value;\n\n\tif (typeof a !== 'string') {\n\t\tthrow new Error(`[padToEven] value must be type 'string', received ${typeof a}`);\n\t}\n\n\tif (a.length % 2) a = `0${a}`;\n\n\treturn a;\n}\n\n/**\n * Converts an `Number` to a `Uint8Array`\n * @param {Number} i\n * @return {Uint8Array}\n */\nexport const intToUint8Array = function (i: number) {\n\tconst hex = intToHex(i);\n\treturn hexToBytes(`0x${padToEven(hex.slice(2))}`);\n};\n\n/**\n * Attempts to turn a value into a `Uint8Array`.\n * Inputs supported: `Uint8Array` `String` (hex-prefixed), `Number`, null/undefined, `BigInt` and other objects\n * with a `toArray()` or `toUint8Array()` method.\n * @param v the value\n */\nexport const toUint8Array = function (v: ToBytesInputTypes): Uint8Array {\n\t// eslint-disable-next-line no-null/no-null\n\tif (v === null || v === undefined) {\n\t\treturn new Uint8Array();\n\t}\n\n\tif (v instanceof Uint8Array) {\n\t\treturn v;\n\t}\n\n\tif (v?.constructor?.name === 'Uint8Array') {\n\t\treturn Uint8Array.from(v as unknown as Uint8Array);\n\t}\n\n\tif (Array.isArray(v)) {\n\t\treturn Uint8Array.from(v);\n\t}\n\n\tif (typeof v === 'string') {\n\t\tif (!isHexString(v)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot convert string to Uint8Array. only supports 0x-prefixed hex strings and this string was given: ${v}`,\n\t\t\t);\n\t\t}\n\t\treturn hexToBytes(padToEven(stripHexPrefix(v)));\n\t}\n\n\tif (typeof v === 'number') {\n\t\treturn toUint8Array(numberToHex(v));\n\t}\n\n\tif (typeof v === 'bigint') {\n\t\tif (v < BigInt(0)) {\n\t\t\tthrow new Error(`Cannot convert negative bigint to Uint8Array. Given: ${v}`);\n\t\t}\n\t\tlet n = v.toString(16);\n\t\tif (n.length % 2) n = `0${n}`;\n\t\treturn toUint8Array(`0x${n}`);\n\t}\n\n\tif (v.toArray) {\n\t\t// converts a BN to a Uint8Array\n\t\treturn Uint8Array.from(v.toArray());\n\t}\n\n\tthrow new Error('invalid type');\n};\n\n/**\n * Converts a {@link Uint8Array} to a {@link bigint}\n */\nexport function uint8ArrayToBigInt(buf: Uint8Array) {\n\tconst hex = bytesToHex(buf);\n\tif (hex === '0x') {\n\t\treturn BigInt(0);\n\t}\n\treturn BigInt(hex);\n}\n\n/**\n * Converts a {@link bigint} to a {@link Uint8Array}\n */\nexport function bigIntToUint8Array(num: bigint) {\n\treturn toUint8Array(`0x${num.toString(16)}`);\n}\n\n/**\n * Returns a Uint8Array filled with 0s.\n * @param bytes the number of bytes the Uint8Array should be\n */\nexport const zeros = function (bytes: number): Uint8Array {\n\treturn new Uint8Array(bytes).fill(0);\n};\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 msg the value to pad (Uint8Array)\n * @param length the number of bytes the output should be\n * @param right whether to start padding form the left or right\n * @return (Uint8Array)\n */\nconst setLength = function (msg: Uint8Array, length: number, right: boolean) {\n\tconst buf = zeros(length);\n\tif (right) {\n\t\tif (msg.length < length) {\n\t\t\tbuf.set(msg);\n\t\t\treturn buf;\n\t\t}\n\t\treturn msg.subarray(0, length);\n\t}\n\tif (msg.length < length) {\n\t\tbuf.set(msg, length - msg.length);\n\t\treturn buf;\n\t}\n\treturn msg.subarray(-length);\n};\n\n/**\n * Throws if input is not a Uint8Array\n * @param {Uint8Array} input value to check\n */\nexport function assertIsUint8Array(input: unknown): asserts input is Uint8Array {\n\tif (!isUint8Array(input)) {\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tconst msg = `This method only supports Uint8Array but input was: ${input}`;\n\t\tthrow new Error(msg);\n\t}\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 msg the value to pad (Uint8Array)\n * @param length the number of bytes the output should be\n * @return (Uint8Array)\n */\nexport const setLengthLeft = function (msg: Uint8Array, length: number) {\n\tassertIsUint8Array(msg);\n\treturn setLength(msg, length, false);\n};\n\n/**\n * Trims leading zeros from a `Uint8Array`, `String` or `Number[]`.\n * @param a (Uint8Array|Array|String)\n * @return (Uint8Array|Array|String)\n */\nexport function stripZeros<T extends Uint8Array | number[] | string>(a: T): T {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\tlet first = a[0];\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n\twhile (a.length > 0 && first.toString() === '0') {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment, prefer-destructuring, @typescript-eslint/no-unsafe-call, no-param-reassign\n\t\ta = a.slice(1) as T;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, prefer-destructuring, @typescript-eslint/no-unsafe-member-access\n\t\tfirst = a[0];\n\t}\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\treturn a;\n}\n\n/**\n * Trims leading zeros from a `Uint8Array`.\n * @param a (Uint8Array)\n * @return (Uint8Array)\n */\nexport const unpadUint8Array = function (a: Uint8Array): Uint8Array {\n\tassertIsUint8Array(a);\n\treturn stripZeros(a);\n};\n\n/**\n * Converts a {@link bigint} to a `0x` prefixed hex string\n */\nexport const bigIntToHex = (num: bigint) => `0x${num.toString(16)}`;\n\n/**\n * Convert value from bigint to an unpadded Uint8Array\n * (useful for RLP transport)\n * @param value value to convert\n */\nexport function bigIntToUnpaddedUint8Array(value: bigint): Uint8Array {\n\treturn unpadUint8Array(bigIntToUint8Array(value));\n}\n\nfunction calculateSigRecovery(v: bigint, chainId?: bigint): bigint {\n\tif (v === BigInt(0) || v === BigInt(1)) return v;\n\n\tif (chainId === undefined) {\n\t\treturn v - BigInt(27);\n\t}\n\treturn v - (chainId * BigInt(2) + BigInt(35));\n}\n\nfunction isValidSigRecovery(recovery: bigint): boolean {\n\treturn recovery === BigInt(0) || recovery === BigInt(1);\n}\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 (\n\tmsgHash: Uint8Array,\n\tv: bigint,\n\tr: Uint8Array,\n\ts: Uint8Array,\n\tchainId?: bigint,\n): Uint8Array {\n\tconst recovery = calculateSigRecovery(v, chainId);\n\tif (!isValidSigRecovery(recovery)) {\n\t\tthrow new Error('Invalid signature v value');\n\t}\n\n\tconst senderPubKey = new secp256k1.Signature(uint8ArrayToBigInt(r), uint8ArrayToBigInt(s))\n\t\t.addRecoveryBit(Number(recovery))\n\t\t.recoverPublicKey(msgHash)\n\t\t.toRawBytes(false);\n\treturn senderPubKey.slice(1);\n};\n\n/**\n * Convert an input to a specified type.\n * Input of null/undefined returns null/undefined regardless of the output type.\n * @param input value to convert\n * @param outputType type to output\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function toType<T extends TypeOutput>(input: null, outputType: T): null;\nexport function toType<T extends TypeOutput>(input: undefined, outputType: T): undefined;\nexport function toType<T extends TypeOutput>(\n\tinput: ToBytesInputTypes,\n\toutputType: T,\n): TypeOutputReturnType[T];\nexport function toType<T extends TypeOutput>(\n\tinput: ToBytesInputTypes,\n\toutputType: T,\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n): TypeOutputReturnType[T] | undefined | null {\n\t// eslint-disable-next-line no-null/no-null\n\tif (input === null) {\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn null;\n\t}\n\tif (input === undefined) {\n\t\treturn undefined;\n\t}\n\n\tif (typeof input === 'string' && !isHexString(input)) {\n\t\tthrow new Error(`A string must be provided with a 0x-prefix, given: ${input}`);\n\t} else if (typeof input === 'number' && !Number.isSafeInteger(input)) {\n\t\tthrow new Error(\n\t\t\t'The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)',\n\t\t);\n\t}\n\n\tconst output = toUint8Array(input);\n\n\tswitch (outputType) {\n\t\tcase TypeOutput.Uint8Array:\n\t\t\treturn output as TypeOutputReturnType[T];\n\t\tcase TypeOutput.BigInt:\n\t\t\treturn uint8ArrayToBigInt(output) as TypeOutputReturnType[T];\n\t\tcase TypeOutput.Number: {\n\t\t\tconst bigInt = uint8ArrayToBigInt(output);\n\t\t\tif (bigInt > BigInt(Number.MAX_SAFE_INTEGER)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)',\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn Number(bigInt) as TypeOutputReturnType[T];\n\t\t}\n\t\tcase TypeOutput.PrefixedHexString:\n\t\t\treturn bytesToHex(output) as TypeOutputReturnType[T];\n\t\tdefault:\n\t\t\tthrow new Error('unknown outputType');\n\t}\n}\n","export default {\n\t\"name\": \"goerli\",\n\t\"chainId\": 5,\n\t\"networkId\": 5,\n\t\"defaultHardfork\": \"merge\",\n\t\"consensus\": {\n\t\t\"type\": \"poa\",\n\t\t\"algorithm\": \"clique\",\n\t\t\"clique\": {\n\t\t\t\"period\": 15,\n\t\t\t\"epoch\": 30000\n\t\t}\n\t},\n\t\"comment\": \"Cross-client PoA test network\",\n\t\"url\": \"https://github.com/goerli/testnet\",\n\t\"genesis\": {\n\t\t\"timestamp\": \"0x5c51a607\",\n\t\t\"gasLimit\": 10485760,\n\t\t\"difficulty\": 1,\n\t\t\"nonce\": \"0x0000000000000000\",\n\t\t\"extraData\": \"0x22466c6578692069732061207468696e6722202d204166726900000000000000e0a2bd4258d2768837baa26a28fe71dc079f84c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"\n\t},\n\t\"hardforks\": [\n\t\t{\n\t\t\t\"name\": \"chainstart\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"homestead\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"tangerineWhistle\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"spuriousDragon\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"byzantium\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"constantinople\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"petersburg\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xa3f5ab08\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"istanbul\",\n\t\t\t\"block\": 1561651,\n\t\t\t\"forkHash\": \"0xc25efa5c\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"berlin\",\n\t\t\t\"block\": 4460644,\n\t\t\t\"forkHash\": \"0x757a1c47\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"london\",\n\t\t\t\"block\": 5062605,\n\t\t\t\"forkHash\": \"0xb8c6299d\"\n\t\t},\n\t\t{\n\t\t\t\"//_comment\": \"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://goerli.etherscan.io/block/7382818\",\n\t\t\t\"name\": \"merge\",\n\t\t\t\"ttd\": \"10790000\",\n\t\t\t\"block\": 7382819,\n\t\t\t\"forkHash\": \"0xb8c6299d\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"mergeForkIdTransition\",\n\t\t\t\"block\": null,\n\t\t\t\"forkHash\": null\n\t\t},\n\t\t{\n\t\t\t\"name\": \"shanghai\",\n\t\t\t\"block\": null,\n\t\t\t\"forkHash\": null\n\t\t}\n\t],\n\t\"bootstrapNodes\": [],\n\t\"dnsNetworks\": [\n\t\t\"enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.goerli.ethdisco.net\"\n\t]\n}\n ;","export default {\n\t\"name\": \"mainnet\",\n\t\"chainId\": 1,\n\t\"networkId\": 1,\n\t\"defaultHardfork\": \"merge\",\n\t\"consensus\": {\n\t\t\"type\": \"pow\",\n\t\t\"algorithm\": \"ethash\",\n\t\t\"ethash\": {}\n\t},\n\t\"comment\": \"The Ethereum main chain\",\n\t\"url\": \"https://ethstats.net/\",\n\t\"genesis\": {\n\t\t\"gasLimit\": 5000,\n\t\t\"difficulty\": 17179869184,\n\t\t\"nonce\": \"0x0000000000000042\",\n\t\t\"extraData\": \"0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa\"\n\t},\n\t\"hardforks\": [\n\t\t{\n\t\t\t\"name\": \"chainstart\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfc64ec04\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"homestead\",\n\t\t\t\"block\": 1150000,\n\t\t\t\"forkHash\": \"0x97c2c34c\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"dao\",\n\t\t\t\"block\": 1920000,\n\t\t\t\"forkHash\": \"0x91d1f948\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"tangerineWhistle\",\n\t\t\t\"block\": 2463000,\n\t\t\t\"forkHash\": \"0x7a64da13\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"spuriousDragon\",\n\t\t\t\"block\": 2675000,\n\t\t\t\"forkHash\": \"0x3edd5b10\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"byzantium\",\n\t\t\t\"block\": 4370000,\n\t\t\t\"forkHash\": \"0xa00bc324\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"constantinople\",\n\t\t\t\"block\": 7280000,\n\t\t\t\"forkHash\": \"0x668db0af\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"petersburg\",\n\t\t\t\"block\": 7280000,\n\t\t\t\"forkHash\": \"0x668db0af\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"istanbul\",\n\t\t\t\"block\": 9069000,\n\t\t\t\"forkHash\": \"0x879d6e30\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"muirGlacier\",\n\t\t\t\"block\": 9200000,\n\t\t\t\"forkHash\": \"0xe029e991\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"berlin\",\n\t\t\t\"block\": 12244000,\n\t\t\t\"forkHash\": \"0x0eb440f6\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"london\",\n\t\t\t\"block\": 12965000,\n\t\t\t\"forkHash\": \"0xb715077d\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"arrowGlacier\",\n\t\t\t\"block\": 13773000,\n\t\t\t\"forkHash\": \"0x20c327fc\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"grayGlacier\",\n\t\t\t\"block\": 15050000,\n\t\t\t\"forkHash\": \"0xf0afd0e3\"\n\t\t},\n\t\t{\n\t\t\t\"//_comment\": \"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://etherscan.io/block/15537393\",\n\t\t\t\"name\": \"merge\",\n\t\t\t\"ttd\": \"58750000000000000000000\",\n\t\t\t\"block\": 15537394,\n\t\t\t\"forkHash\": \"0xf0afd0e3\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"mergeForkIdTransition\",\n\t\t\t\"block\": null,\n\t\t\t\"forkHash\": null\n\t\t},\n\t\t{\n\t\t\t\"name\": \"shanghai\",\n\t\t\t\"block\": null,\n\t\t\t\"forkHash\": null\n\t\t}\n\t],\n\t\"bootstrapNodes\": [],\n\t\"dnsNetworks\": [\n\t\t\"enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net\"\n\t]\n}\n ;","export default {\n\t\"name\": \"sepolia\",\n\t\"chainId\": 11155111,\n\t\"networkId\": 11155111,\n\t\"defaultHardfork\": \"merge\",\n\t\"consensus\": {\n\t\t\"type\": \"pow\",\n\t\t\"algorithm\": \"ethash\",\n\t\t\"ethash\": {}\n\t},\n\t\"comment\": \"PoW test network to replace Ropsten\",\n\t\"url\": \"https://github.com/ethereum/go-ethereum/pull/23730\",\n\t\"genesis\": {\n\t\t\"timestamp\": \"0x6159af19\",\n\t\t\"gasLimit\": 30000000,\n\t\t\"difficulty\": 131072,\n\t\t\"nonce\": \"0x0000000000000000\",\n\t\t\"extraData\": \"0x5365706f6c69612c20417468656e732c204174746963612c2047726565636521\"\n\t},\n\t\"hardforks\": [\n\t\t{\n\t\t\t\"name\": \"chainstart\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"homestead\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"tangerineWhistle\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"spuriousDragon\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"byzantium\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"constantinople\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"petersburg\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"istanbul\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"muirGlacier\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"berlin\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"london\",\n\t\t\t\"block\": 0,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"//_comment\": \"The forkHash will remain same as mergeForkIdTransition is post merge, terminal block: https://sepolia.etherscan.io/block/1450408\",\n\t\t\t\"name\": \"merge\",\n\t\t\t\"ttd\": \"17000000000000000\",\n\t\t\t\"block\": 1450409,\n\t\t\t\"forkHash\": \"0xfe3366e7\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"mergeForkIdTransition\",\n\t\t\t\"block\": 1735371,\n\t\t\t\"forkHash\": \"0xb96cbd13\"\n\t\t},\n\t\t{\n\t\t\t\"name\": \"shanghai\",\n\t\t\t\"block\": null,\n\t\t\t\"timestamp\": \"1677557088\",\n\t\t\t\"forkHash\": \"0xf7f9bc08\"\n\t\t}\n\t],\n\t\"bootstrapNodes\": [],\n\t\"dnsNetworks\": [\n\t\t\"enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.sepolia.ethdisco.net\"\n\t]\n}\n ;","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport e1153 from './1153.js';\nimport e1559 from './1559.js';\nimport e2315 from './2315.js';\nimport e2537 from './2537.js';\nimport e2565 from './2565.js';\nimport e2718 from './2718.js';\nimport e2929 from './2929.js';\nimport e2930 from './2930.js';\nimport e3198 from './3198.js';\nimport e3529 from './3529.js';\nimport e3540 from './3540.js';\nimport e3541 from './3541.js';\nimport e3554 from './3554.js';\nimport e3607 from './3607.js';\nimport e3651 from './3651.js';\nimport e3670 from './3670.js';\nimport e3675 from './3675.js';\nimport e3855 from './3855.js';\nimport e3860 from './3860.js';\nimport e4345 from './4345.js';\nimport e4399 from './4399.js';\nimport e5133 from './5133.js';\n\nexport const EIPs: { [key: number]: any } = {\n\t1153: e1153,\n\t1559: e1559,\n\t2315: e2315,\n\t2537: e2537,\n\t2565: e2565,\n\t2718: e2718,\n\t2929: e2929,\n\t2930: e2930,\n\t3198: e3198,\n\t3529: e3529,\n\t3540: e3540,\n\t3541: e3541,\n\t3554: e3554,\n\t3607: e3607,\n\t3651: e3651,\n\t3670: e3670,\n\t3675: e3675,\n\t3855: e3855,\n\t3860: e3860,\n\t4345: e4345,\n\t4399: e4399,\n\t5133: e5133,\n};\n","export default {\n\t\"name\": \"EIP-1153\",\n\t\"number\": 1153,\n\t\"comment\": \"Transient Storage\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-1153\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"chainstart\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"tstore\": {\n\t\t\t\"v\": 100,\n\t\t\t\"d\": \"Base fee of the TSTORE opcode\"\n\t\t},\n\t\t\"tload\": {\n\t\t\t\"v\": 100,\n\t\t\t\"d\": \"Base fee of the TLOAD opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-1559\",\n\t\"number\": 1559,\n\t\"comment\": \"Fee market change for ETH 1.0 chain\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-1559\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"berlin\",\n\t\"requiredEIPs\": [2930],\n\t\"gasConfig\": {\n\t\t\"baseFeeMaxChangeDenominator\": {\n\t\t\t\"v\": 8,\n\t\t\t\"d\": \"Maximum base fee change denominator\"\n\t\t},\n\t\t\"elasticityMultiplier\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Maximum block gas target elasticity\"\n\t\t},\n\t\t\"initialBaseFee\": {\n\t\t\t\"v\": 1000000000,\n\t\t\t\"d\": \"Initial base fee on first EIP1559 block\"\n\t\t}\n\t},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-2315\",\n\t\"number\": 2315,\n\t\"comment\": \"Simple subroutines for the EVM\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2315\",\n\t\"status\": \"Draft\",\n\t\"minimumHardfork\": \"istanbul\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"beginsub\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the BEGINSUB opcode\"\n\t\t},\n\t\t\"returnsub\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the RETURNSUB opcode\"\n\t\t},\n\t\t\"jumpsub\": {\n\t\t\t\"v\": 10,\n\t\t\t\"d\": \"Base fee of the JUMPSUB opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-2537\",\n\t\"number\": 2537,\n\t\"comment\": \"BLS12-381 precompiles\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2537\",\n\t\"status\": \"Draft\",\n\t\"minimumHardfork\": \"chainstart\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"Bls12381G1AddGas\": {\n\t\t\t\"v\": 600,\n\t\t\t\"d\": \"Gas cost of a single BLS12-381 G1 addition precompile-call\"\n\t\t},\n\t\t\"Bls12381G1MulGas\": {\n\t\t\t\"v\": 12000,\n\t\t\t\"d\": \"Gas cost of a single BLS12-381 G1 multiplication precompile-call\"\n\t\t},\n\t\t\"Bls12381G2AddGas\": {\n\t\t\t\"v\": 4500,\n\t\t\t\"d\": \"Gas cost of a single BLS12-381 G2 addition precompile-call\"\n\t\t},\n\t\t\"Bls12381G2MulGas\": {\n\t\t\t\"v\": 55000,\n\t\t\t\"d\": \"Gas cost of a single BLS12-381 G2 multiplication precompile-call\"\n\t\t},\n\t\t\"Bls12381PairingBaseGas\": {\n\t\t\t\"v\": 115000,\n\t\t\t\"d\": \"Base gas cost of BLS12-381 pairing check\"\n\t\t},\n\t\t\"Bls12381PairingPerPairGas\": {\n\t\t\t\"v\": 23000,\n\t\t\t\"d\": \"Per-pair gas cost of BLS12-381 pairing check\"\n\t\t},\n\t\t\"Bls12381MapG1Gas\": {\n\t\t\t\"v\": 5500,\n\t\t\t\"d\": \"Gas cost of BLS12-381 map field element to G1\"\n\t\t},\n\t\t\"Bls12381MapG2Gas\": {\n\t\t\t\"v\": 110000,\n\t\t\t\"d\": \"Gas cost of BLS12-381 map field element to G2\"\n\t\t},\n\t\t\"Bls12381MultiExpGasDiscount\": {\n\t\t\t\"v\": [\n\t\t\t\t[1, 1200],\n\t\t\t\t[2, 888],\n\t\t\t\t[3, 764],\n\t\t\t\t[4, 641],\n\t\t\t\t[5, 594],\n\t\t\t\t[6, 547],\n\t\t\t\t[7, 500],\n\t\t\t\t[8, 453],\n\t\t\t\t[9, 438],\n\t\t\t\t[10, 423],\n\t\t\t\t[11, 408],\n\t\t\t\t[12, 394],\n\t\t\t\t[13, 379],\n\t\t\t\t[14, 364],\n\t\t\t\t[15, 349],\n\t\t\t\t[16, 334],\n\t\t\t\t[17, 330],\n\t\t\t\t[18, 326],\n\t\t\t\t[19, 322],\n\t\t\t\t[20, 318],\n\t\t\t\t[21, 314],\n\t\t\t\t[22, 310],\n\t\t\t\t[23, 306],\n\t\t\t\t[24, 302],\n\t\t\t\t[25, 298],\n\t\t\t\t[26, 294],\n\t\t\t\t[27, 289],\n\t\t\t\t[28, 285],\n\t\t\t\t[29, 281],\n\t\t\t\t[30, 277],\n\t\t\t\t[31, 273],\n\t\t\t\t[32, 269],\n\t\t\t\t[33, 268],\n\t\t\t\t[34, 266],\n\t\t\t\t[35, 265],\n\t\t\t\t[36, 263],\n\t\t\t\t[37, 262],\n\t\t\t\t[38, 260],\n\t\t\t\t[39, 259],\n\t\t\t\t[40, 257],\n\t\t\t\t[41, 256],\n\t\t\t\t[42, 254],\n\t\t\t\t[43, 253],\n\t\t\t\t[44, 251],\n\t\t\t\t[45, 250],\n\t\t\t\t[46, 248],\n\t\t\t\t[47, 247],\n\t\t\t\t[48, 245],\n\t\t\t\t[49, 244],\n\t\t\t\t[50, 242],\n\t\t\t\t[51, 241],\n\t\t\t\t[52, 239],\n\t\t\t\t[53, 238],\n\t\t\t\t[54, 236],\n\t\t\t\t[55, 235],\n\t\t\t\t[56, 233],\n\t\t\t\t[57, 232],\n\t\t\t\t[58, 231],\n\t\t\t\t[59, 229],\n\t\t\t\t[60, 228],\n\t\t\t\t[61, 226],\n\t\t\t\t[62, 225],\n\t\t\t\t[63, 223],\n\t\t\t\t[64, 222],\n\t\t\t\t[65, 221],\n\t\t\t\t[66, 220],\n\t\t\t\t[67, 219],\n\t\t\t\t[68, 219],\n\t\t\t\t[69, 218],\n\t\t\t\t[70, 217],\n\t\t\t\t[71, 216],\n\t\t\t\t[72, 216],\n\t\t\t\t[73, 215],\n\t\t\t\t[74, 214],\n\t\t\t\t[75, 213],\n\t\t\t\t[76, 213],\n\t\t\t\t[77, 212],\n\t\t\t\t[78, 211],\n\t\t\t\t[79, 211],\n\t\t\t\t[80, 210],\n\t\t\t\t[81, 209],\n\t\t\t\t[82, 208],\n\t\t\t\t[83, 208],\n\t\t\t\t[84, 207],\n\t\t\t\t[85, 206],\n\t\t\t\t[86, 205],\n\t\t\t\t[87, 205],\n\t\t\t\t[88, 204],\n\t\t\t\t[89, 203],\n\t\t\t\t[90, 202],\n\t\t\t\t[91, 202],\n\t\t\t\t[92, 201],\n\t\t\t\t[93, 200],\n\t\t\t\t[94, 199],\n\t\t\t\t[95, 199],\n\t\t\t\t[96, 198],\n\t\t\t\t[97, 197],\n\t\t\t\t[98, 196],\n\t\t\t\t[99, 196],\n\t\t\t\t[100, 195],\n\t\t\t\t[101, 194],\n\t\t\t\t[102, 193],\n\t\t\t\t[103, 193],\n\t\t\t\t[104, 192],\n\t\t\t\t[105, 191],\n\t\t\t\t[106, 191],\n\t\t\t\t[107, 190],\n\t\t\t\t[108, 189],\n\t\t\t\t[109, 188],\n\t\t\t\t[110, 188],\n\t\t\t\t[111, 187],\n\t\t\t\t[112, 186],\n\t\t\t\t[113, 185],\n\t\t\t\t[114, 185],\n\t\t\t\t[115, 184],\n\t\t\t\t[116, 183],\n\t\t\t\t[117, 182],\n\t\t\t\t[118, 182],\n\t\t\t\t[119, 181],\n\t\t\t\t[120, 180],\n\t\t\t\t[121, 179],\n\t\t\t\t[122, 179],\n\t\t\t\t[123, 178],\n\t\t\t\t[124, 177],\n\t\t\t\t[125, 176],\n\t\t\t\t[126, 176],\n\t\t\t\t[127, 175],\n\t\t\t\t[128, 174]\n\t\t\t],\n\t\t\t\"d\": \"Discount gas costs of calls to the MultiExp precompiles with `k` (point, scalar) pair\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-2565\",\n\t\"number\": 2565,\n\t\"comment\": \"ModExp gas cost\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2565\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"byzantium\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"modexpGquaddivisor\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Gquaddivisor from modexp precompile for gas calculation\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-2718\",\n\t\"comment\": \"Typed Transaction Envelope\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2718\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"chainstart\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-2929\",\n\t\"comment\": \"Gas cost increases for state access opcodes\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2929\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"chainstart\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"coldsload\": {\n\t\t\t\"v\": 2100,\n\t\t\t\"d\": \"Gas cost of the first read of storage from a given location (per transaction)\"\n\t\t},\n\t\t\"coldaccountaccess\": {\n\t\t\t\"v\": 2600,\n\t\t\t\"d\": \"Gas cost of the first read of a given address (per transaction)\"\n\t\t},\n\t\t\"warmstorageread\": {\n\t\t\t\"v\": 100,\n\t\t\t\"d\": \"Gas cost of reading storage locations which have already loaded 'cold'\"\n\t\t},\n\t\t\"sstoreCleanGasEIP2200\": {\n\t\t\t\"v\": 2900,\n\t\t\t\"d\": \"Once per SSTORE operation from clean non-zero to something else\"\n\t\t},\n\t\t\"sstoreNoopGasEIP2200\": {\n\t\t\t\"v\": 100,\n\t\t\t\"d\": \"Once per SSTORE operation if the value doesn't change\"\n\t\t},\n\t\t\"sstoreDirtyGasEIP2200\": {\n\t\t\t\"v\": 100,\n\t\t\t\"d\": \"Once per SSTORE operation if a dirty value is changed\"\n\t\t},\n\t\t\"sstoreInitRefundEIP2200\": {\n\t\t\t\"v\": 19900,\n\t\t\t\"d\": \"Once per SSTORE operation for resetting to the original zero value\"\n\t\t},\n\t\t\"sstoreCleanRefundEIP2200\": {\n\t\t\t\"v\": 4900,\n\t\t\t\"d\": \"Once per SSTORE operation for resetting to the original non-zero value\"\n\t\t},\n\t\t\"call\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the CALL opcode\"\n\t\t},\n\t\t\"callcode\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the CALLCODE opcode\"\n\t\t},\n\t\t\"delegatecall\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the DELEGATECALL opcode\"\n\t\t},\n\t\t\"staticcall\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the STATICCALL opcode\"\n\t\t},\n\t\t\"balance\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the BALANCE opcode\"\n\t\t},\n\t\t\"extcodesize\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the EXTCODESIZE opcode\"\n\t\t},\n\t\t\"extcodecopy\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the EXTCODECOPY opcode\"\n\t\t},\n\t\t\"extcodehash\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the EXTCODEHASH opcode\"\n\t\t},\n\t\t\"sload\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the SLOAD opcode\"\n\t\t},\n\t\t\"sstore\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the SSTORE opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-2930\",\n\t\"comment\": \"Optional access lists\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2930\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"istanbul\",\n\t\"requiredEIPs\": [2718, 2929],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"accessListStorageKeyCost\": {\n\t\t\t\"v\": 1900,\n\t\t\t\"d\": \"Gas cost per storage key in an Access List transaction\"\n\t\t},\n\t\t\"accessListAddressCost\": {\n\t\t\t\"v\": 2400,\n\t\t\t\"d\": \"Gas cost per storage key in an Access List transaction\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3198\",\n\t\"number\": 3198,\n\t\"comment\": \"BASEFEE opcode\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3198\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"london\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"basefee\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Gas cost of the BASEFEE opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3529\",\n\t\"comment\": \"Reduction in refunds\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3529\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"berlin\",\n\t\"requiredEIPs\": [2929],\n\t\"gasConfig\": {\n\t\t\"maxRefundQuotient\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)\"\n\t\t}\n\t},\n\t\"gasPrices\": {\n\t\t\"selfdestructRefund\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Refunded following a selfdestruct operation\"\n\t\t},\n\t\t\"sstoreClearRefundEIP2200\": {\n\t\t\t\"v\": 4800,\n\t\t\t\"d\": \"Once per SSTORE operation for clearing an originally existing storage slot\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3540\",\n\t\"number\": 3540,\n\t\"comment\": \"EVM Object Format (EOF) v1\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3540\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"london\",\n\t\"requiredEIPs\": [3541],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3541\",\n\t\"comment\": \"Reject new contracts starting with the 0xEF byte\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3541\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"berlin\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3554\",\n\t\"comment\": \"Reduction in refunds\",\n\t\"url\": \"Difficulty Bomb Delay to December 1st 2021\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"muirGlacier\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 9500000,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","export default {\n\t\"name\": \"EIP-3607\",\n\t\"number\": 3607,\n\t\"comment\": \"Reject transactions from senders with deployed code\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3607\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"chainstart\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3651\",\n\t\"number\": 3198,\n\t\"comment\": \"Warm COINBASE\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3651\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"london\",\n\t\"requiredEIPs\": [2929],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3670\",\n\t\"number\": 3670,\n\t\"comment\": \"EOF - Code Validation\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3670\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"london\",\n\t\"requiredEIPs\": [3540],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3675\",\n\t\"number\": 3675,\n\t\"comment\": \"Upgrade consensus to Proof-of-Stake\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3675\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"london\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3855\",\n\t\"number\": 3855,\n\t\"comment\": \"PUSH0 instruction\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3855\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"chainstart\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"push0\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the PUSH0 opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-3860\",\n\t\"number\": 3860,\n\t\"comment\": \"Limit and meter initcode\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3860\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"spuriousDragon\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"initCodeWordCost\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Gas to pay for each word (32 bytes) of initcode when creating a contract\"\n\t\t}\n\t},\n\t\"vm\": {\n\t\t\"maxInitCodeSize\": {\n\t\t\t\"v\": 49152,\n\t\t\t\"d\": \"Maximum length of initialization code when creating a contract\"\n\t\t}\n\t},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-4345\",\n\t\"number\": 4345,\n\t\"comment\": \"Difficulty Bomb Delay to June 2022\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-4345\",\n\t\"status\": \"Final\",\n\t\"minimumHardfork\": \"london\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 10700000,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","export default {\n\t\"name\": \"EIP-4399\",\n\t\"number\": 4399,\n\t\"comment\": \"Supplant DIFFICULTY opcode with PREVRANDAO\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-4399\",\n\t\"status\": \"Review\",\n\t\"minimumHardfork\": \"london\",\n\t\"requiredEIPs\": [],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"EIP-5133\",\n\t\"number\": 5133,\n\t\"comment\": \"Delaying Difficulty Bomb to mid-September 2022\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-5133\",\n\t\"status\": \"Draft\",\n\t\"minimumHardfork\": \"grayGlacier\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 11400000,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport chainstart from './chainstart.js';\nimport dao from './dao.js';\nimport homestead from './homestead.js';\nimport tangerineWhistle from './tangerineWhistle.js';\nimport spuriousDragon from './spuriousDragon.js';\nimport byzantium from './byzantium.js';\nimport constantinople from './constantinople.js';\nimport petersburg from './petersburg.js';\nimport istanbul from './istanbul.js';\nimport muirGlacier from './muirGlacier.js';\nimport berlin from './berlin.js';\nimport london from './london.js';\nimport shanghai from './shanghai.js';\nimport arrowGlacier from './arrowGlacier.js';\nimport grayGlacier from './grayGlacier.js';\nimport mergeForkIdTransition from './mergeForkIdTransition.js';\nimport merge from './merge.js';\n\nexport const hardforks: { [key: string]: any } = {\n\tchainstart,\n\thomestead,\n\tdao,\n\ttangerineWhistle,\n\tspuriousDragon,\n\tbyzantium,\n\tconstantinople,\n\tpetersburg,\n\tistanbul,\n\tmuirGlacier,\n\tberlin,\n\tlondon,\n\tshanghai,\n\tarrowGlacier,\n\tgrayGlacier,\n\tmergeForkIdTransition,\n\tmerge,\n};\n","export default {\n\t\"name\": \"chainstart\",\n\t\"comment\": \"Start of the Ethereum main chain\",\n\t\"url\": \"\",\n\t\"status\": \"\",\n\t\"gasConfig\": {\n\t\t\"minGasLimit\": {\n\t\t\t\"v\": 5000,\n\t\t\t\"d\": \"Minimum the gas limit may ever be\"\n\t\t},\n\t\t\"gasLimitBoundDivisor\": {\n\t\t\t\"v\": 1024,\n\t\t\t\"d\": \"The bound divisor of the gas limit, used in update calculations\"\n\t\t},\n\t\t\"maxRefundQuotient\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Maximum refund quotient; max tx refund is min(tx.gasUsed/maxRefundQuotient, tx.gasRefund)\"\n\t\t}\n\t},\n\t\"gasPrices\": {\n\t\t\"base\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Gas base cost, used e.g. for ChainID opcode (Istanbul)\"\n\t\t},\n\t\t\"tierStep\": {\n\t\t\t\"v\": [0, 2, 3, 5, 8, 10, 20],\n\t\t\t\"d\": \"Once per operation, for a selection of them\"\n\t\t},\n\t\t\"exp\": {\n\t\t\t\"v\": 10,\n\t\t\t\"d\": \"Base fee of the EXP opcode\"\n\t\t},\n\t\t\"expByte\": {\n\t\t\t\"v\": 10,\n\t\t\t\"d\": \"Times ceil(log256(exponent)) for the EXP instruction\"\n\t\t},\n\t\t\"sha3\": {\n\t\t\t\"v\": 30,\n\t\t\t\"d\": \"Base fee of the SHA3 opcode\"\n\t\t},\n\t\t\"sha3Word\": {\n\t\t\t\"v\": 6,\n\t\t\t\"d\": \"Once per word of the SHA3 operation's data\"\n\t\t},\n\t\t\"sload\": {\n\t\t\t\"v\": 50,\n\t\t\t\"d\": \"Base fee of the SLOAD opcode\"\n\t\t},\n\t\t\"sstoreSet\": {\n\t\t\t\"v\": 20000,\n\t\t\t\"d\": \"Once per SSTORE operation if the zeroness changes from zero\"\n\t\t},\n\t\t\"sstoreReset\": {\n\t\t\t\"v\": 5000,\n\t\t\t\"d\": \"Once per SSTORE operation if the zeroness does not change from zero\"\n\t\t},\n\t\t\"sstoreRefund\": {\n\t\t\t\"v\": 15000,\n\t\t\t\"d\": \"Once per SSTORE operation if the zeroness changes to zero\"\n\t\t},\n\t\t\"jumpdest\": {\n\t\t\t\"v\": 1,\n\t\t\t\"d\": \"Base fee of the JUMPDEST opcode\"\n\t\t},\n\t\t\"log\": {\n\t\t\t\"v\": 375,\n\t\t\t\"d\": \"Base fee of the LOG opcode\"\n\t\t},\n\t\t\"logData\": {\n\t\t\t\"v\": 8,\n\t\t\t\"d\": \"Per byte in a LOG* operation's data\"\n\t\t},\n\t\t\"logTopic\": {\n\t\t\t\"v\": 375,\n\t\t\t\"d\": \"Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas\"\n\t\t},\n\t\t\"create\": {\n\t\t\t\"v\": 32000,\n\t\t\t\"d\": \"Base fee of the CREATE opcode\"\n\t\t},\n\t\t\"call\": {\n\t\t\t\"v\": 40,\n\t\t\t\"d\": \"Base fee of the CALL opcode\"\n\t\t},\n\t\t\"callStipend\": {\n\t\t\t\"v\": 2300,\n\t\t\t\"d\": \"Free gas given at beginning of call\"\n\t\t},\n\t\t\"callValueTransfer\": {\n\t\t\t\"v\": 9000,\n\t\t\t\"d\": \"Paid for CALL when the value transfor is non-zero\"\n\t\t},\n\t\t\"callNewAccount\": {\n\t\t\t\"v\": 25000,\n\t\t\t\"d\": \"Paid for CALL when the destination address didn't exist prior\"\n\t\t},\n\t\t\"selfdestructRefund\": {\n\t\t\t\"v\": 24000,\n\t\t\t\"d\": \"Refunded following a selfdestruct operation\"\n\t\t},\n\t\t\"memory\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL\"\n\t\t},\n\t\t\"quadCoeffDiv\": {\n\t\t\t\"v\": 512,\n\t\t\t\"d\": \"Divisor for the quadratic particle of the memory cost equation\"\n\t\t},\n\t\t\"createData\": {\n\t\t\t\"v\": 200,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"tx\": {\n\t\t\t\"v\": 21000,\n\t\t\t\"d\": \"Per transaction. NOTE: Not payable on data of calls between transactions\"\n\t\t},\n\t\t\"txCreation\": {\n\t\t\t\"v\": 32000,\n\t\t\t\"d\": \"The cost of creating a contract via tx\"\n\t\t},\n\t\t\"txDataZero\": {\n\t\t\t\"v\": 4,\n\t\t\t\"d\": \"Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions\"\n\t\t},\n\t\t\"txDataNonZero\": {\n\t\t\t\"v\": 68,\n\t\t\t\"d\": \"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions\"\n\t\t},\n\t\t\"copy\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added\"\n\t\t},\n\t\t\"ecRecover\": {\n\t\t\t\"v\": 3000,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"sha256\": {\n\t\t\t\"v\": 60,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"sha256Word\": {\n\t\t\t\"v\": 12,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"ripemd160\": {\n\t\t\t\"v\": 600,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"ripemd160Word\": {\n\t\t\t\"v\": 120,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"identity\": {\n\t\t\t\"v\": 15,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"identityWord\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"\"\n\t\t},\n\t\t\"stop\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the STOP opcode\"\n\t\t},\n\t\t\"add\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the ADD opcode\"\n\t\t},\n\t\t\"mul\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the MUL opcode\"\n\t\t},\n\t\t\"sub\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SUB opcode\"\n\t\t},\n\t\t\"div\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the DIV opcode\"\n\t\t},\n\t\t\"sdiv\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the SDIV opcode\"\n\t\t},\n\t\t\"mod\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the MOD opcode\"\n\t\t},\n\t\t\"smod\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the SMOD opcode\"\n\t\t},\n\t\t\"addmod\": {\n\t\t\t\"v\": 8,\n\t\t\t\"d\": \"Base fee of the ADDMOD opcode\"\n\t\t},\n\t\t\"mulmod\": {\n\t\t\t\"v\": 8,\n\t\t\t\"d\": \"Base fee of the MULMOD opcode\"\n\t\t},\n\t\t\"signextend\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the SIGNEXTEND opcode\"\n\t\t},\n\t\t\"lt\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the LT opcode\"\n\t\t},\n\t\t\"gt\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the GT opcode\"\n\t\t},\n\t\t\"slt\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SLT opcode\"\n\t\t},\n\t\t\"sgt\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SGT opcode\"\n\t\t},\n\t\t\"eq\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the EQ opcode\"\n\t\t},\n\t\t\"iszero\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the ISZERO opcode\"\n\t\t},\n\t\t\"and\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the AND opcode\"\n\t\t},\n\t\t\"or\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the OR opcode\"\n\t\t},\n\t\t\"xor\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the XOR opcode\"\n\t\t},\n\t\t\"not\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the NOT opcode\"\n\t\t},\n\t\t\"byte\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the BYTE opcode\"\n\t\t},\n\t\t\"address\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the ADDRESS opcode\"\n\t\t},\n\t\t\"balance\": {\n\t\t\t\"v\": 20,\n\t\t\t\"d\": \"Base fee of the BALANCE opcode\"\n\t\t},\n\t\t\"origin\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the ORIGIN opcode\"\n\t\t},\n\t\t\"caller\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the CALLER opcode\"\n\t\t},\n\t\t\"callvalue\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the CALLVALUE opcode\"\n\t\t},\n\t\t\"calldataload\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the CALLDATALOAD opcode\"\n\t\t},\n\t\t\"calldatasize\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the CALLDATASIZE opcode\"\n\t\t},\n\t\t\"calldatacopy\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the CALLDATACOPY opcode\"\n\t\t},\n\t\t\"codesize\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the CODESIZE opcode\"\n\t\t},\n\t\t\"codecopy\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the CODECOPY opcode\"\n\t\t},\n\t\t\"gasprice\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the GASPRICE opcode\"\n\t\t},\n\t\t\"extcodesize\": {\n\t\t\t\"v\": 20,\n\t\t\t\"d\": \"Base fee of the EXTCODESIZE opcode\"\n\t\t},\n\t\t\"extcodecopy\": {\n\t\t\t\"v\": 20,\n\t\t\t\"d\": \"Base fee of the EXTCODECOPY opcode\"\n\t\t},\n\t\t\"blockhash\": {\n\t\t\t\"v\": 20,\n\t\t\t\"d\": \"Base fee of the BLOCKHASH opcode\"\n\t\t},\n\t\t\"coinbase\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the COINBASE opcode\"\n\t\t},\n\t\t\"timestamp\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the TIMESTAMP opcode\"\n\t\t},\n\t\t\"number\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the NUMBER opcode\"\n\t\t},\n\t\t\"difficulty\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the DIFFICULTY opcode\"\n\t\t},\n\t\t\"gaslimit\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the GASLIMIT opcode\"\n\t\t},\n\t\t\"pop\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the POP opcode\"\n\t\t},\n\t\t\"mload\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the MLOAD opcode\"\n\t\t},\n\t\t\"mstore\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the MSTORE opcode\"\n\t\t},\n\t\t\"mstore8\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the MSTORE8 opcode\"\n\t\t},\n\t\t\"sstore\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the SSTORE opcode\"\n\t\t},\n\t\t\"jump\": {\n\t\t\t\"v\": 8,\n\t\t\t\"d\": \"Base fee of the JUMP opcode\"\n\t\t},\n\t\t\"jumpi\": {\n\t\t\t\"v\": 10,\n\t\t\t\"d\": \"Base fee of the JUMPI opcode\"\n\t\t},\n\t\t\"pc\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the PC opcode\"\n\t\t},\n\t\t\"msize\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the MSIZE opcode\"\n\t\t},\n\t\t\"gas\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the GAS opcode\"\n\t\t},\n\t\t\"push\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the PUSH opcode\"\n\t\t},\n\t\t\"dup\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the DUP opcode\"\n\t\t},\n\t\t\"swap\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SWAP opcode\"\n\t\t},\n\t\t\"callcode\": {\n\t\t\t\"v\": 40,\n\t\t\t\"d\": \"Base fee of the CALLCODE opcode\"\n\t\t},\n\t\t\"return\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the RETURN opcode\"\n\t\t},\n\t\t\"invalid\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the INVALID opcode\"\n\t\t},\n\t\t\"selfdestruct\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the SELFDESTRUCT opcode\"\n\t\t}\n\t},\n\t\"vm\": {\n\t\t\"stackLimit\": {\n\t\t\t\"v\": 1024,\n\t\t\t\"d\": \"Maximum size of VM stack allowed\"\n\t\t},\n\t\t\"callCreateDepth\": {\n\t\t\t\"v\": 1024,\n\t\t\t\"d\": \"Maximum depth of call/create stack\"\n\t\t},\n\t\t\"maxExtraDataSize\": {\n\t\t\t\"v\": 32,\n\t\t\t\"d\": \"Maximum size extra data may be after Genesis\"\n\t\t}\n\t},\n\t\"pow\": {\n\t\t\"minimumDifficulty\": {\n\t\t\t\"v\": 131072,\n\t\t\t\"d\": \"The minimum that the difficulty may ever be\"\n\t\t},\n\t\t\"difficultyBoundDivisor\": {\n\t\t\t\"v\": 2048,\n\t\t\t\"d\": \"The bound divisor of the difficulty, used in the update calculations\"\n\t\t},\n\t\t\"durationLimit\": {\n\t\t\t\"v\": 13,\n\t\t\t\"d\": \"The decision boundary on the blocktime duration used to determine whether difficulty should go up or not\"\n\t\t},\n\t\t\"epochDuration\": {\n\t\t\t\"v\": 30000,\n\t\t\t\"d\": \"Duration between proof-of-work epochs\"\n\t\t},\n\t\t\"timebombPeriod\": {\n\t\t\t\"v\": 100000,\n\t\t\t\"d\": \"Exponential difficulty timebomb period\"\n\t\t},\n\t\t\"minerReward\": {\n\t\t\t\"v\": \"5000000000000000000\",\n\t\t\t\"d\": \"the amount a miner get rewarded for mining a block\"\n\t\t},\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","export default {\n\t\"name\": \"homestead\",\n\t\"comment\": \"Homestead hardfork with protocol and network changes\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-606\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"delegatecall\": {\n\t\t\t\"v\": 40,\n\t\t\t\"d\": \"Base fee of the DELEGATECALL opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"dao\",\n\t\"comment\": \"DAO rescue hardfork\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-779\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"tangerineWhistle\",\n\t\"comment\": \"Hardfork with gas cost changes for IO-heavy operations\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-608\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"sload\": {\n\t\t\t\"v\": 200,\n\t\t\t\"d\": \"Once per SLOAD operation\"\n\t\t},\n\t\t\"call\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Once per CALL operation & message call transaction\"\n\t\t},\n\t\t\"extcodesize\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the EXTCODESIZE opcode\"\n\t\t},\n\t\t\"extcodecopy\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the EXTCODECOPY opcode\"\n\t\t},\n\t\t\"balance\": {\n\t\t\t\"v\": 400,\n\t\t\t\"d\": \"Base fee of the BALANCE opcode\"\n\t\t},\n\t\t\"delegatecall\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the DELEGATECALL opcode\"\n\t\t},\n\t\t\"callcode\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the CALLCODE opcode\"\n\t\t},\n\t\t\"selfdestruct\": {\n\t\t\t\"v\": 5000,\n\t\t\t\"d\": \"Base fee of the SELFDESTRUCT opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"spuriousDragon\",\n\t\"comment\": \"HF with EIPs for simple replay attack protection, EXP cost increase, state trie clearing, contract code size limit\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-607\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"expByte\": {\n\t\t\t\"v\": 50,\n\t\t\t\"d\": \"Times ceil(log256(exponent)) for the EXP instruction\"\n\t\t}\n\t},\n\t\"vm\": {\n\t\t\"maxCodeSize\": {\n\t\t\t\"v\": 24576,\n\t\t\t\"d\": \"Maximum length of contract code\"\n\t\t}\n\t},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"byzantium\",\n\t\"comment\": \"Hardfork with new precompiles, instructions and other protocol changes\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-609\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"modexpGquaddivisor\": {\n\t\t\t\"v\": 20,\n\t\t\t\"d\": \"Gquaddivisor from modexp precompile for gas calculation\"\n\t\t},\n\t\t\"ecAdd\": {\n\t\t\t\"v\": 500,\n\t\t\t\"d\": \"Gas costs for curve addition precompile\"\n\t\t},\n\t\t\"ecMul\": {\n\t\t\t\"v\": 40000,\n\t\t\t\"d\": \"Gas costs for curve multiplication precompile\"\n\t\t},\n\t\t\"ecPairing\": {\n\t\t\t\"v\": 100000,\n\t\t\t\"d\": \"Base gas costs for curve pairing precompile\"\n\t\t},\n\t\t\"ecPairingWord\": {\n\t\t\t\"v\": 80000,\n\t\t\t\"d\": \"Gas costs regarding curve pairing precompile input length\"\n\t\t},\n\t\t\"revert\": {\n\t\t\t\"v\": 0,\n\t\t\t\"d\": \"Base fee of the REVERT opcode\"\n\t\t},\n\t\t\"staticcall\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the STATICCALL opcode\"\n\t\t},\n\t\t\"returndatasize\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the RETURNDATASIZE opcode\"\n\t\t},\n\t\t\"returndatacopy\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the RETURNDATACOPY opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {\n\t\t\"minerReward\": {\n\t\t\t\"v\": \"3000000000000000000\",\n\t\t\t\"d\": \"the amount a miner get rewarded for mining a block\"\n\t\t},\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 3000000,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","export default {\n\t\"name\": \"constantinople\",\n\t\"comment\": \"Postponed hardfork including EIP-1283 (SSTORE gas metering changes)\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-1013\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"netSstoreNoopGas\": {\n\t\t\t\"v\": 200,\n\t\t\t\"d\": \"Once per SSTORE operation if the value doesn't change\"\n\t\t},\n\t\t\"netSstoreInitGas\": {\n\t\t\t\"v\": 20000,\n\t\t\t\"d\": \"Once per SSTORE operation from clean zero\"\n\t\t},\n\t\t\"netSstoreCleanGas\": {\n\t\t\t\"v\": 5000,\n\t\t\t\"d\": \"Once per SSTORE operation from clean non-zero\"\n\t\t},\n\t\t\"netSstoreDirtyGas\": {\n\t\t\t\"v\": 200,\n\t\t\t\"d\": \"Once per SSTORE operation from dirty\"\n\t\t},\n\t\t\"netSstoreClearRefund\": {\n\t\t\t\"v\": 15000,\n\t\t\t\"d\": \"Once per SSTORE operation for clearing an originally existing storage slot\"\n\t\t},\n\t\t\"netSstoreResetRefund\": {\n\t\t\t\"v\": 4800,\n\t\t\t\"d\": \"Once per SSTORE operation for resetting to the original non-zero value\"\n\t\t},\n\t\t\"netSstoreResetClearRefund\": {\n\t\t\t\"v\": 19800,\n\t\t\t\"d\": \"Once per SSTORE operation for resetting to the original zero value\"\n\t\t},\n\t\t\"shl\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SHL opcode\"\n\t\t},\n\t\t\"shr\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SHR opcode\"\n\t\t},\n\t\t\"sar\": {\n\t\t\t\"v\": 3,\n\t\t\t\"d\": \"Base fee of the SAR opcode\"\n\t\t},\n\t\t\"extcodehash\": {\n\t\t\t\"v\": 400,\n\t\t\t\"d\": \"Base fee of the EXTCODEHASH opcode\"\n\t\t},\n\t\t\"create2\": {\n\t\t\t\"v\": 32000,\n\t\t\t\"d\": \"Base fee of the CREATE2 opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {\n\t\t\"minerReward\": {\n\t\t\t\"v\": \"2000000000000000000\",\n\t\t\t\"d\": \"The amount a miner gets rewarded for mining a block\"\n\t\t},\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 5000000,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","export default {\n\t\"name\": \"petersburg\",\n\t\"comment\": \"Aka constantinopleFix, removes EIP-1283, activate together with or after constantinople\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-1716\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"netSstoreNoopGas\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t},\n\t\t\"netSstoreInitGas\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t},\n\t\t\"netSstoreCleanGas\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t},\n\t\t\"netSstoreDirtyGas\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t},\n\t\t\"netSstoreClearRefund\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t},\n\t\t\"netSstoreResetRefund\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t},\n\t\t\"netSstoreResetClearRefund\": {\n\t\t\t\"v\": null,\n\t\t\t\"d\": \"Removed along EIP-1283\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"istanbul\",\n\t\"comment\": \"HF targeted for December 2019 following the Constantinople/Petersburg HF\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-1679\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {\n\t\t\"blake2Round\": {\n\t\t\t\"v\": 1,\n\t\t\t\"d\": \"Gas cost per round for the Blake2 F precompile\"\n\t\t},\n\t\t\"ecAdd\": {\n\t\t\t\"v\": 150,\n\t\t\t\"d\": \"Gas costs for curve addition precompile\"\n\t\t},\n\t\t\"ecMul\": {\n\t\t\t\"v\": 6000,\n\t\t\t\"d\": \"Gas costs for curve multiplication precompile\"\n\t\t},\n\t\t\"ecPairing\": {\n\t\t\t\"v\": 45000,\n\t\t\t\"d\": \"Base gas costs for curve pairing precompile\"\n\t\t},\n\t\t\"ecPairingWord\": {\n\t\t\t\"v\": 34000,\n\t\t\t\"d\": \"Gas costs regarding curve pairing precompile input length\"\n\t\t},\n\t\t\"txDataNonZero\": {\n\t\t\t\"v\": 16,\n\t\t\t\"d\": \"Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions\"\n\t\t},\n\t\t\"sstoreSentryGasEIP2200\": {\n\t\t\t\"v\": 2300,\n\t\t\t\"d\": \"Minimum gas required to be present for an SSTORE call, not consumed\"\n\t\t},\n\t\t\"sstoreNoopGasEIP2200\": {\n\t\t\t\"v\": 800,\n\t\t\t\"d\": \"Once per SSTORE operation if the value doesn't change\"\n\t\t},\n\t\t\"sstoreDirtyGasEIP2200\": {\n\t\t\t\"v\": 800,\n\t\t\t\"d\": \"Once per SSTORE operation if a dirty value is changed\"\n\t\t},\n\t\t\"sstoreInitGasEIP2200\": {\n\t\t\t\"v\": 20000,\n\t\t\t\"d\": \"Once per SSTORE operation from clean zero to non-zero\"\n\t\t},\n\t\t\"sstoreInitRefundEIP2200\": {\n\t\t\t\"v\": 19200,\n\t\t\t\"d\": \"Once per SSTORE operation for resetting to the original zero value\"\n\t\t},\n\t\t\"sstoreCleanGasEIP2200\": {\n\t\t\t\"v\": 5000,\n\t\t\t\"d\": \"Once per SSTORE operation from clean non-zero to something else\"\n\t\t},\n\t\t\"sstoreCleanRefundEIP2200\": {\n\t\t\t\"v\": 4200,\n\t\t\t\"d\": \"Once per SSTORE operation for resetting to the original non-zero value\"\n\t\t},\n\t\t\"sstoreClearRefundEIP2200\": {\n\t\t\t\"v\": 15000,\n\t\t\t\"d\": \"Once per SSTORE operation for clearing an originally existing storage slot\"\n\t\t},\n\t\t\"balance\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the BALANCE opcode\"\n\t\t},\n\t\t\"extcodehash\": {\n\t\t\t\"v\": 700,\n\t\t\t\"d\": \"Base fee of the EXTCODEHASH opcode\"\n\t\t},\n\t\t\"chainid\": {\n\t\t\t\"v\": 2,\n\t\t\t\"d\": \"Base fee of the CHAINID opcode\"\n\t\t},\n\t\t\"selfbalance\": {\n\t\t\t\"v\": 5,\n\t\t\t\"d\": \"Base fee of the SELFBALANCE opcode\"\n\t\t},\n\t\t\"sload\": {\n\t\t\t\"v\": 800,\n\t\t\t\"d\": \"Base fee of the SLOAD opcode\"\n\t\t}\n\t},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"muirGlacier\",\n\t\"comment\": \"HF to delay the difficulty bomb\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2384\",\n\t\"status\": \"Final\",\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {\n\t\t\"difficultyBombDelay\": {\n\t\t\t\"v\": 9000000,\n\t\t\t\"d\": \"the amount of blocks to delay the difficulty bomb with\"\n\t\t}\n\t}\n}\n ;","export default {\n\t\"name\": \"berlin\",\n\t\"comment\": \"HF targeted for July 2020 following the Muir Glacier HF\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-2070\",\n\t\"status\": \"Final\",\n\t\"eips\": [2565, 2929, 2718, 2930]\n}\n ;","export default {\n\t\"name\": \"london\",\n\t\"comment\": \"HF targeted for July 2021 following the Berlin fork\",\n\t\"url\": \"https://github.com/ethereum/eth1.0-specs/blob/master/network-upgrades/mainnet-upgrades/london.md\",\n\t\"status\": \"Final\",\n\t\"eips\": [1559, 3198, 3529, 3541]\n}\n ;","export default {\n\t\"name\": \"shanghai\",\n\t\"comment\": \"Next feature hardfork after the merge hardfork having withdrawals, warm coinbase, push0, limit/meter initcode\",\n\t\"url\": \"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md\",\n\t\"status\": \"Final\",\n\t\"eips\": [3651, 3855, 3860, 4895]\n}\n ;","export default {\n\t\"name\": \"arrowGlacier\",\n\t\"comment\": \"HF to delay the difficulty bomb\",\n\t\"url\": \"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/arrow-glacier.md\",\n\t\"status\": \"Final\",\n\t\"eips\": [4345],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"grayGlacier\",\n\t\"comment\": \"Delaying the difficulty bomb to Mid September 2022\",\n\t\"url\": \"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/gray-glacier.md\",\n\t\"status\": \"Draft\",\n\t\"eips\": [5133],\n\t\"gasConfig\": {},\n\t\"gasPrices\": {},\n\t\"vm\": {},\n\t\"pow\": {}\n}\n ;","export default {\n\t\"name\": \"mergeForkIdTransition\",\n\t\"comment\": \"Pre-merge hardfork to fork off non-upgraded clients\",\n\t\"url\": \"https://eips.ethereum.org/EIPS/eip-3675\",\n\t\"status\": \"Draft\",\n\t\"eips\": []\n}\n ;","export default {\n\t\"name\": \"merge\",\n\t\"comment\": \"Hardfork to upgrade the consensus mechanism to Proof-of-Stake\",\n\t\"url\": \"https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/merge.md\",\n\t\"status\": \"Final\",\n\t\"consensus\": {\n\t\t\"type\": \"pos\",\n\t\t\"algorithm\": \"casper\",\n\t\t\"casper\": {}\n\t},\n\t\"eips\": [3675, 4399]\n}\n ;","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport pkg from 'crc-32';\nimport { EventEmitter, bytesToHex, hexToBytes, uint8ArrayConcat } from 'web3-utils';\nimport type { Numbers } from 'web3-types';\nimport { TypeOutput } from './types.js';\nimport { intToUint8Array, toType, parseGethGenesis } from './utils.js';\nimport goerli from './chains/goerli.js';\nimport mainnet from './chains/mainnet.js';\nimport sepolia from './chains/sepolia.js';\nimport { EIPs } from './eips/index.js';\nimport type { ConsensusAlgorithm, ConsensusType } from './enums.js';\nimport { Chain, CustomChain, Hardfork } from './enums.js';\nimport { hardforks as HARDFORK_SPECS } from './hardforks/index.js';\n\nimport type {\n\tBootstrapNodeConfig,\n\tCasperConfig,\n\tChainConfig,\n\tChainName,\n\tChainsConfig,\n\tCliqueConfig,\n\tCommonOpts,\n\tCustomCommonOpts,\n\tEthashConfig,\n\tGenesisBlockConfig,\n\tGethConfigOpts,\n\tHardforkConfig,\n} from './types.js';\n\nconst { buf: crc32Uint8Array } = pkg;\n\ntype HardforkSpecKeys = keyof typeof HARDFORK_SPECS;\ntype HardforkSpecValues = typeof HARDFORK_SPECS[HardforkSpecKeys];\n/**\n * Common class to access chain and hardfork parameters and to provide\n * a unified and shared view on the network and hardfork state.\n *\n * Use the {@link Common.custom} static constructor for creating simple\n * custom chain {@link Common} objects (more complete custom chain setups\n * can be created via the main constructor and the {@link CommonOpts.customChains} parameter).\n */\nexport class Common extends EventEmitter {\n\tpublic readonly DEFAULT_HARDFORK: string | Hardfork;\n\n\tprivate _chainParams: ChainConfig;\n\tprivate _hardfork: string | Hardfork;\n\tprivate _eips: number[] = [];\n\tprivate readonly _customChains: ChainConfig[];\n\n\tprivate readonly HARDFORK_CHANGES: [HardforkSpecKeys, HardforkSpecValues][];\n\n\t/**\n\t * Creates a {@link Common} object for a custom chain, based on a standard one.\n\t *\n\t * It uses all the {@link Chain} parameters from the {@link baseChain} option except the ones overridden\n\t * in a provided {@link chainParamsOrName} dictionary. Some usage example:\n\t *\n\t * ```javascript\n\t * Common.custom({chainId: 123})\n\t * ```\n\t *\n\t * There are also selected supported custom chains which can be initialized by using one of the\n\t * {@link CustomChains} for {@link chainParamsOrName}, e.g.:\n\t *\n\t * ```javascript\n\t * Common.custom(CustomChains.MaticMumbai)\n\t * ```\n\t *\n\t * Note that these supported custom chains only provide some base parameters (usually the chain and\n\t * network ID and a name) and can only be used for selected use cases (e.g. sending a tx with\n\t * the `web3-utils/tx` library to a Layer-2 chain).\n\t *\n\t * @param chainParamsOrName Custom parameter dict (`name` will default to `custom-chain`) or string with name of a supported custom chain\n\t * @param opts Custom chain options to set the {@link CustomCommonOpts.baseChain}, selected {@link CustomCommonOpts.hardfork} and others\n\t */\n\tpublic static custom(\n\t\tchainParamsOrName: Partial<ChainConfig> | CustomChain,\n\t\topts: CustomCommonOpts = {},\n\t): Common {\n\t\tconst baseChain = opts.baseChain ?? 'mainnet';\n\t\tconst standardChainParams = { ...Common._getChainParams(baseChain) };\n\t\tstandardChainParams.name = 'custom-chain';\n\n\t\tif (typeof chainParamsOrName !== 'string') {\n\t\t\treturn new Common({\n\t\t\t\tchain: {\n\t\t\t\t\t...standardChainParams,\n\t\t\t\t\t...chainParamsOrName,\n\t\t\t\t},\n\t\t\t\t...opts,\n\t\t\t});\n\t\t}\n\t\tif (chainParamsOrName === CustomChain.PolygonMainnet) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.PolygonMainnet,\n\t\t\t\t\tchainId: 137,\n\t\t\t\t\tnetworkId: 137,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t);\n\t\t}\n\t\tif (chainParamsOrName === CustomChain.PolygonMumbai) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.PolygonMumbai,\n\t\t\t\t\tchainId: 80001,\n\t\t\t\t\tnetworkId: 80001,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t);\n\t\t}\n\t\tif (chainParamsOrName === CustomChain.ArbitrumRinkebyTestnet) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.ArbitrumRinkebyTestnet,\n\t\t\t\t\tchainId: 421611,\n\t\t\t\t\tnetworkId: 421611,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t);\n\t\t}\n\t\tif (chainParamsOrName === CustomChain.ArbitrumOne) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.ArbitrumOne,\n\t\t\t\t\tchainId: 42161,\n\t\t\t\t\tnetworkId: 42161,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t);\n\t\t}\n\t\tif (chainParamsOrName === CustomChain.xDaiChain) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.xDaiChain,\n\t\t\t\t\tchainId: 100,\n\t\t\t\t\tnetworkId: 100,\n\t\t\t\t},\n\t\t\t\topts,\n\t\t\t);\n\t\t}\n\n\t\tif (chainParamsOrName === CustomChain.OptimisticKovan) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.OptimisticKovan,\n\t\t\t\t\tchainId: 69,\n\t\t\t\t\tnetworkId: 69,\n\t\t\t\t},\n\t\t\t\t// Optimism has not implemented the London hardfork yet (targeting Q1.22)\n\t\t\t\t{ hardfork: Hardfork.Berlin, ...opts },\n\t\t\t);\n\t\t}\n\n\t\tif (chainParamsOrName === CustomChain.OptimisticEthereum) {\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: CustomChain.OptimisticEthereum,\n\t\t\t\t\tchainId: 10,\n\t\t\t\t\tnetworkId: 10,\n\t\t\t\t},\n\t\t\t\t// Optimism has not implemented the London hardfork yet (targeting Q1.22)\n\t\t\t\t{ hardfork: Hardfork.Berlin, ...opts },\n\t\t\t);\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\tthrow new Error(`Custom chain ${chainParamsOrName} not supported`);\n\t}\n\n\t/**\n\t * Static method to load and set common from a geth genesis json\n\t * @param genesisJson json of geth configuration\n\t * @param { chain, eips, genesisHash, hardfork, mergeForkIdPostMerge } to further configure the common instance\n\t * @returns Common\n\t */\n\tpublic static fromGethGenesis(\n\t\tgenesisJson: any,\n\t\t{ chain, eips, genesisHash, hardfork, mergeForkIdPostMerge }: GethConfigOpts,\n\t): Common {\n\t\tconst genesisParams = parseGethGenesis(genesisJson, chain, mergeForkIdPostMerge);\n\t\tconst common = new Common({\n\t\t\tchain: genesisParams.name ?? 'custom',\n\t\t\tcustomChains: [genesisParams],\n\t\t\teips,\n\t\t\thardfork: hardfork ?? genesisParams.hardfork,\n\t\t});\n\t\tif (genesisHash !== undefined) {\n\t\t\tcommon.setForkHashes(genesisHash);\n\t\t}\n\t\treturn common;\n\t}\n\n\t/**\n\t * Static method to determine if a {@link chainId} is supported as a standard chain\n\t * @param chainId bigint id (`1`) of a standard chain\n\t * @returns boolean\n\t */\n\tpublic static isSupportedChainId(chainId: bigint): boolean {\n\t\tconst initializedChains = this._getInitializedChains();\n\t\treturn Boolean((initializedChains.names as ChainName)[chainId.toString()]);\n\t}\n\n\tprivate static _getChainParams(\n\t\t_chain: string | number | Chain | bigint,\n\t\tcustomChains?: ChainConfig[],\n\t): ChainConfig {\n\t\tlet chain = _chain;\n\t\tconst initializedChains = this._getInitializedChains(customChains);\n\t\tif (typeof chain === 'number' || typeof chain === 'bigint') {\n\t\t\tchain = chain.toString();\n\n\t\t\tif ((initializedChains.names as ChainName)[chain]) {\n\t\t\t\tconst name: string = (initializedChains.names as ChainName)[chain];\n\t\t\t\treturn initializedChains[name] as ChainConfig;\n\t\t\t}\n\n\t\t\tthrow new Error(`Chain with ID ${chain} not supported`);\n\t\t}\n\n\t\tif (initializedChains[chain] !== undefined) {\n\t\t\treturn initializedChains[chain] as ChainConfig;\n\t\t}\n\n\t\tthrow new Error(`Chain with name ${chain} not supported`);\n\t}\n\n\tpublic constructor(opts: CommonOpts) {\n\t\tsuper();\n\t\tthis._customChains = opts.customChains ?? [];\n\t\tthis._chainParams = this.setChain(opts.chain);\n\t\tthis.DEFAULT_HARDFORK = this._chainParams.defaultHardfork ?? Hardfork.Merge;\n\t\t// Assign hardfork changes in the sequence of the applied hardforks\n\t\tthis.HARDFORK_CHANGES = this.hardforks().map(hf => [\n\t\t\thf.name as HardforkSpecKeys,\n\t\t\tHARDFORK_SPECS[hf.name as HardforkSpecKeys],\n\t\t]);\n\t\tthis._hardfork = this.DEFAULT_HARDFORK;\n\t\tif (opts.hardfork !== undefined) {\n\t\t\tthis.setHardfork(opts.hardfork);\n\t\t}\n\t\tif (opts.eips) {\n\t\t\tthis.setEIPs(opts.eips);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the chain\n\t * @param chain String ('mainnet') or Number (1) chain representation.\n\t * Or, a Dictionary of chain parameters for a private network.\n\t * @returns The dictionary with parameters set as chain\n\t */\n\tpublic setChain(chain: string | number | Chain | bigint | object): ChainConfig {\n\t\tif (typeof chain === 'number' || typeof chain === 'bigint' || typeof chain === 'string') {\n\t\t\tthis._chainParams = Common._getChainParams(chain, this._customChains);\n\t\t} else if (typeof chain === 'object') {\n\t\t\tif (this._customChains.length > 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Chain must be a string, number, or bigint when initialized with customChains passed in',\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst required = ['networkId', 'genesis', 'hardforks', 'bootstrapNodes'];\n\t\t\tfor (const param of required) {\n\t\t\t\tif (!(param in chain)) {\n\t\t\t\t\tthrow new Error(`Missing required chain parameter: ${param}`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._chainParams = chain as ChainConfig;\n\t\t} else {\n\t\t\tthrow new Error('Wrong input format');\n\t\t}\n\t\tfor (const hf of this.hardforks()) {\n\t\t\tif (hf.block === undefined) {\n\t\t\t\tthrow new Error(`Hardfork cannot have undefined block number`);\n\t\t\t}\n\t\t}\n\t\treturn this._chainParams;\n\t}\n\n\t/**\n\t * Sets the hardfork to get params for\n\t * @param hardfork String identifier (e.g. 'byzantium') or {@link Hardfork} enum\n\t */\n\tpublic setHardfork(hardfork: string | Hardfork): void {\n\t\tlet existing = false;\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\tif (hfChanges[0] === hardfork) {\n\t\t\t\tif (this._hardfork !== hardfork) {\n\t\t\t\t\tthis._hardfork = hardfork;\n\t\t\t\t\tthis.emit('hardforkChanged', hardfork);\n\t\t\t\t}\n\t\t\t\texisting = true;\n\t\t\t}\n\t\t}\n\t\tif (!existing) {\n\t\t\tthrow new Error(`Hardfork with name ${hardfork} not supported`);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the hardfork based on the block number or an optional\n\t * total difficulty (Merge HF) provided.\n\t *\n\t * An optional TD takes precedence in case the corresponding HF block\n\t * is set to `null` or otherwise needs to match (if not an error\n\t * will be thrown).\n\t *\n\t * @param blockNumber\n\t * @param td : total difficulty of the parent block (for block hf) OR of the chain latest (for chain hf)\n\t * @param timestamp: timestamp in seconds at which block was/is to be minted\n\t * @returns The name of the HF\n\t */\n\tpublic getHardforkByBlockNumber(\n\t\t_blockNumber: Numbers,\n\t\t_td?: Numbers,\n\t\t_timestamp?: Numbers,\n\t): string {\n\t\tconst blockNumber = toType(_blockNumber, TypeOutput.BigInt);\n\t\tconst td = toType(_td, TypeOutput.BigInt);\n\t\tconst timestamp = toType(_timestamp, TypeOutput.Number);\n\n\t\t// Filter out hardforks with no block number, no ttd or no timestamp (i.e. unapplied hardforks)\n\t\tconst hfs = this.hardforks().filter(\n\t\t\thf =>\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\thf.block !== null ||\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\t(hf.ttd !== null && hf.ttd !== undefined) ||\n\t\t\t\thf.timestamp !== undefined,\n\t\t);\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tconst mergeIndex = hfs.findIndex(hf => hf.ttd !== null && hf.ttd !== undefined);\n\t\tconst doubleTTDHF = hfs\n\t\t\t.slice(mergeIndex + 1)\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t.findIndex(hf => hf.ttd !== null && hf.ttd !== undefined);\n\t\tif (doubleTTDHF >= 0) {\n\t\t\tthrow Error(`More than one merge hardforks found with ttd specified`);\n\t\t}\n\n\t\t// Find the first hardfork that has a block number greater than `blockNumber`\n\t\t// (skips the merge hardfork since it cannot have a block number specified).\n\t\t// If timestamp is not provided, it also skips timestamps hardforks to continue\n\t\t// discovering/checking number hardforks.\n\t\tlet hfIndex = hfs.findIndex(\n\t\t\thf =>\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\t(hf.block !== null && hf.block > blockNumber) ||\n\t\t\t\t(timestamp !== undefined && Number(hf.timestamp) > timestamp),\n\t\t);\n\n\t\tif (hfIndex === -1) {\n\t\t\t// all hardforks apply, set hfIndex to the last one as that's the candidate\n\t\t\thfIndex = hfs.length;\n\t\t} else if (hfIndex === 0) {\n\t\t\t// cannot have a case where a block number is before all applied hardforks\n\t\t\t// since the chain has to start with a hardfork\n\t\t\tthrow Error('Must have at least one hardfork at block 0');\n\t\t}\n\n\t\t// If timestamp is not provided, we need to rollback to the last hf with block or ttd\n\t\tif (timestamp === undefined) {\n\t\t\tconst stepBack = hfs\n\t\t\t\t.slice(0, hfIndex)\n\t\t\t\t.reverse()\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\t.findIndex(hf => hf.block !== null || hf.ttd !== undefined);\n\t\t\thfIndex -= stepBack;\n\t\t}\n\t\t// Move hfIndex one back to arrive at candidate hardfork\n\t\thfIndex -= 1;\n\n\t\t// If the timestamp was not provided, we could have skipped timestamp hardforks to look for number\n\t\t// hardforks. so it will now be needed to rollback\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (hfs[hfIndex].block === null && hfs[hfIndex].timestamp === undefined) {\n\t\t\t// We're on the merge hardfork. Let's check the TTD\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tif (td === undefined || td === null || BigInt(hfs[hfIndex].ttd!) > td) {\n\t\t\t\t// Merge ttd greater than current td so we're on hardfork before merge\n\t\t\t\thfIndex -= 1;\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t} else if (mergeIndex >= 0 && td !== undefined && td !== null) {\n\t\t\tif (hfIndex >= mergeIndex && BigInt(hfs[mergeIndex].ttd!) > td) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'Maximum HF determined by total difficulty is lower than the block number HF',\n\t\t\t\t);\n\t\t\t} else if (hfIndex < mergeIndex && BigInt(hfs[mergeIndex].ttd!) <= td) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t'HF determined by block number is lower than the minimum total difficulty HF',\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tconst hfStartIndex = hfIndex;\n\t\t// Move the hfIndex to the end of the hardforks that might be scheduled on the same block/timestamp\n\t\t// This won't anyway be the case with Merge hfs\n\t\tfor (; hfIndex < hfs.length - 1; hfIndex += 1) {\n\t\t\t// break out if hfIndex + 1 is not scheduled at hfIndex\n\t\t\tif (\n\t\t\t\thfs[hfIndex].block !== hfs[hfIndex + 1].block ||\n\t\t\t\thfs[hfIndex].timestamp !== hfs[hfIndex + 1].timestamp\n\t\t\t) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (timestamp) {\n\t\t\tconst minTimeStamp = hfs\n\t\t\t\t.slice(0, hfStartIndex)\n\t\t\t\t.reduce(\n\t\t\t\t\t(acc: number, hf: HardforkConfig) => Math.max(Number(hf.timestamp ?? '0'), acc),\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\tif (minTimeStamp > timestamp) {\n\t\t\t\tthrow Error(\n\t\t\t\t\t`Maximum HF determined by timestamp is lower than the block number/ttd HF`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst maxTimeStamp = hfs\n\t\t\t\t.slice(hfIndex + 1)\n\t\t\t\t.reduce(\n\t\t\t\t\t(acc: number, hf: HardforkConfig) =>\n\t\t\t\t\t\tMath.min(Number(hf.timestamp ?? timestamp), acc),\n\t\t\t\t\ttimestamp,\n\t\t\t\t);\n\t\t\tif (maxTimeStamp < timestamp) {\n\t\t\t\tthrow Error(`Maximum HF determined by block number/ttd is lower than timestamp HF`);\n\t\t\t}\n\t\t}\n\t\tconst hardfork = hfs[hfIndex];\n\t\treturn hardfork.name;\n\t}\n\n\t/**\n\t * Sets a new hardfork based on the block number or an optional\n\t * total difficulty (Merge HF) provided.\n\t *\n\t * An optional TD takes precedence in case the corresponding HF block\n\t * is set to `null` or otherwise needs to match (if not an error\n\t * will be thrown).\n\t *\n\t * @param blockNumber\n\t * @param td\n\t * @param timestamp\n\t * @returns The name of the HF set\n\t */\n\tpublic setHardforkByBlockNumber(\n\t\tblockNumber: Numbers,\n\t\ttd?: Numbers,\n\t\ttimestamp?: Numbers,\n\t): string {\n\t\tconst hardfork = this.getHardforkByBlockNumber(blockNumber, td, timestamp);\n\t\tthis.setHardfork(hardfork);\n\t\treturn hardfork;\n\t}\n\n\t/**\n\t * Internal helper function, returns the params for the given hardfork for the chain set\n\t * @param hardfork Hardfork name\n\t * @returns Dictionary with hardfork params or null if hardfork not on chain\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic _getHardfork(hardfork: string | Hardfork): HardforkConfig | null {\n\t\tconst hfs = this.hardforks();\n\t\tfor (const hf of hfs) {\n\t\t\tif (hf.name === hardfork) return hf;\n\t\t}\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn null;\n\t}\n\n\t/**\n\t * Sets the active EIPs\n\t * @param eips\n\t */\n\tpublic setEIPs(eips: number[] = []) {\n\t\tfor (const eip of eips) {\n\t\t\tif (!(eip in EIPs)) {\n\t\t\t\tthrow new Error(`${eip} not supported`);\n\t\t\t}\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument\n\t\t\tconst minHF = this.gteHardfork(EIPs[eip].minimumHardfork);\n\t\t\tif (!minHF) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t\t`${eip} cannot be activated on hardfork ${this.hardfork()}, minimumHardfork: ${minHF}`,\n\t\t\t\t);\n\t\t\t}\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (EIPs[eip].requiredEIPs !== undefined) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tfor (const elem of EIPs[eip].requiredEIPs) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\t\t\tif (!(eips.includes(elem) || this.isActivatedEIP(elem))) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n\t\t\t\t\t\t\t`${eip} requires EIP ${elem}, but is not included in the EIP list`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._eips = eips;\n\t}\n\n\t/**\n\t * Returns a parameter for the current chain setup\n\t *\n\t * If the parameter is present in an EIP, the EIP always takes precedence.\n\t * Otherwise the parameter if taken from the latest applied HF with\n\t * a change on the respective parameter.\n\t *\n\t * @param topic Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow')\n\t * @param name Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic)\n\t * @returns The value requested or `BigInt(0)` if not found\n\t */\n\tpublic param(topic: string, name: string): bigint {\n\t\t// TODO: consider the case that different active EIPs\n\t\t// can change the same parameter\n\t\tlet value;\n\t\tfor (const eip of this._eips) {\n\t\t\tvalue = this.paramByEIP(topic, name, eip);\n\t\t\tif (value !== undefined) return value;\n\t\t}\n\t\treturn this.paramByHardfork(topic, name, this._hardfork);\n\t}\n\n\t/**\n\t * Returns the parameter corresponding to a hardfork\n\t * @param topic Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow')\n\t * @param name Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic)\n\t * @param hardfork Hardfork name\n\t * @returns The value requested or `BigInt(0)` if not found\n\t */\n\tpublic paramByHardfork(topic: string, name: string, hardfork: string | Hardfork): bigint {\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tlet value = null;\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\t// EIP-referencing HF file (e.g. berlin.json)\n\t\t\tif ('eips' in hfChanges[1]) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\tconst hfEIPs = hfChanges[1].eips;\n\t\t\t\tfor (const eip of hfEIPs) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\t\t\tconst valueEIP = this.paramByEIP(topic, name, eip);\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tvalue = typeof valueEIP === 'bigint' ? valueEIP : value;\n\t\t\t\t}\n\t\t\t\t// Parameter-inlining HF file (e.g. istanbul.json)\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tif (hfChanges[1][topic] === undefined) {\n\t\t\t\t\tthrow new Error(`Topic ${topic} not defined`);\n\t\t\t\t}\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tif (hfChanges[1][topic][name] !== undefined) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tvalue = hfChanges[1][topic][name].v;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (hfChanges[0] === hardfork) break;\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\treturn BigInt(value ?? 0);\n\t}\n\n\t/**\n\t * Returns a parameter corresponding to an EIP\n\t * @param topic Parameter topic ('gasConfig', 'gasPrices', 'vm', 'pow')\n\t * @param name Parameter name (e.g. 'minGasLimit' for 'gasConfig' topic)\n\t * @param eip Number of the EIP\n\t * @returns The value requested or `undefined` if not found\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic paramByEIP(topic: string, name: string, eip: number): bigint | undefined {\n\t\tif (!(eip in EIPs)) {\n\t\t\tthrow new Error(`${eip} not supported`);\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst eipParams = EIPs[eip];\n\t\tif (!(topic in eipParams)) {\n\t\t\tthrow new Error(`Topic ${topic} not defined`);\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tif (eipParams[topic][name] === undefined) {\n\t\t\treturn undefined;\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\tconst value = eipParams[topic][name].v;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\treturn BigInt(value);\n\t}\n\n\t/**\n\t * Returns a parameter for the hardfork active on block number or\n\t * optional provided total difficulty (Merge HF)\n\t * @param topic Parameter topic\n\t * @param name Parameter name\n\t * @param blockNumber Block number\n\t * @param td Total difficulty\n\t * * @returns The value requested or `BigInt(0)` if not found\n\t */\n\tpublic paramByBlock(\n\t\ttopic: string,\n\t\tname: string,\n\t\tblockNumber: Numbers,\n\t\ttd?: Numbers,\n\t\ttimestamp?: Numbers,\n\t): bigint {\n\t\tconst hardfork = this.getHardforkByBlockNumber(blockNumber, td, timestamp);\n\t\treturn this.paramByHardfork(topic, name, hardfork);\n\t}\n\n\t/**\n\t * Checks if an EIP is activated by either being included in the EIPs\n\t * manually passed in with the {@link CommonOpts.eips} or in a\n\t * hardfork currently being active\n\t *\n\t * Note: this method only works for EIPs being supported\n\t * by the {@link CommonOpts.eips} constructor option\n\t * @param eip\n\t */\n\tpublic isActivatedEIP(eip: number): boolean {\n\t\tif (this.eips().includes(eip)) {\n\t\t\treturn true;\n\t\t}\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst hf = hfChanges[1];\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument\n\t\t\tif (this.gteHardfork(hf.name) && 'eips' in hf) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tif ((hf.eips as number[]).includes(eip)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Checks if set or provided hardfork is active on block number\n\t * @param hardfork Hardfork name or null (for HF set)\n\t * @param blockNumber\n\t * @returns True if HF is active on block number\n\t */\n\tpublic hardforkIsActiveOnBlock(\n\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t_hardfork: string | Hardfork | null,\n\t\t_blockNumber: Numbers,\n\t): boolean {\n\t\tconst blockNumber = toType(_blockNumber, TypeOutput.BigInt);\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst hfBlock = this.hardforkBlock(hardfork);\n\t\tif (typeof hfBlock === 'bigint' && hfBlock !== BigInt(0) && blockNumber >= hfBlock) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Alias to hardforkIsActiveOnBlock when hardfork is set\n\t * @param blockNumber\n\t * @returns True if HF is active on block number\n\t */\n\tpublic activeOnBlock(blockNumber: Numbers): boolean {\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn this.hardforkIsActiveOnBlock(null, blockNumber);\n\t}\n\n\t/**\n\t * Sequence based check if given or set HF1 is greater than or equal HF2\n\t * @param hardfork1 Hardfork name or null (if set)\n\t * @param hardfork2 Hardfork name\n\t * @param opts Hardfork options\n\t * @returns True if HF1 gte HF2\n\t */\n\tpublic hardforkGteHardfork(\n\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t_hardfork1: string | Hardfork | null,\n\t\thardfork2: string | Hardfork,\n\t): boolean {\n\t\tconst hardfork1 = _hardfork1 ?? this._hardfork;\n\t\tconst hardforks = this.hardforks();\n\n\t\tlet posHf1 = -1;\n\t\tlet posHf2 = -1;\n\t\tlet index = 0;\n\t\tfor (const hf of hardforks) {\n\t\t\tif (hf.name === hardfork1) posHf1 = index;\n\t\t\tif (hf.name === hardfork2) posHf2 = index;\n\t\t\tindex += 1;\n\t\t}\n\t\treturn posHf1 >= posHf2 && posHf2 !== -1;\n\t}\n\n\t/**\n\t * Alias to hardforkGteHardfork when hardfork is set\n\t * @param hardfork Hardfork name\n\t * @returns True if hardfork set is greater than hardfork provided\n\t */\n\tpublic gteHardfork(hardfork: string | Hardfork): boolean {\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn this.hardforkGteHardfork(null, hardfork);\n\t}\n\n\t/**\n\t * Returns the hardfork change block for hardfork provided or set\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @returns Block number or null if unscheduled\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic hardforkBlock(_hardfork?: string | Hardfork): bigint | null {\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst block = this._getHardfork(hardfork)?.block;\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (block === undefined || block === null) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\t\treturn BigInt(block);\n\t}\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic hardforkTimestamp(_hardfork?: string | Hardfork): bigint | null {\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst timestamp = this._getHardfork(hardfork)?.timestamp;\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (timestamp === undefined || timestamp === null) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\t\treturn BigInt(timestamp);\n\t}\n\n\t/**\n\t * Returns the hardfork change block for eip\n\t * @param eip EIP number\n\t * @returns Block number or null if unscheduled\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic eipBlock(eip: number): bigint | null {\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tconst hf = hfChanges[1];\n\t\t\tif ('eips' in hf) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n\t\t\t\tif (hf.eips.includes(eip)) {\n\t\t\t\t\treturn this.hardforkBlock(\n\t\t\t\t\t\ttypeof hfChanges[0] === 'number' ? String(hfChanges[0]) : hfChanges[0],\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns the hardfork change total difficulty (Merge HF) for hardfork provided or set\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @returns Total difficulty or null if no set\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic hardforkTTD(_hardfork?: string | Hardfork): bigint | null {\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst ttd = this._getHardfork(hardfork)?.ttd;\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (ttd === undefined || ttd === null) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\t\treturn BigInt(ttd);\n\t}\n\n\t/**\n\t * True if block number provided is the hardfork (given or set) change block\n\t * @param blockNumber Number of the block to check\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @returns True if blockNumber is HF block\n\t * @deprecated\n\t */\n\tpublic isHardforkBlock(_blockNumber: Numbers, _hardfork?: string | Hardfork): boolean {\n\t\tconst blockNumber = toType(_blockNumber, TypeOutput.BigInt);\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst block = this.hardforkBlock(hardfork);\n\t\treturn typeof block === 'bigint' && block !== BigInt(0) ? block === blockNumber : false;\n\t}\n\n\t/**\n\t * Returns the change block for the next hardfork after the hardfork provided or set\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @returns Block timestamp, number or null if not available\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic nextHardforkBlockOrTimestamp(_hardfork?: string | Hardfork): bigint | null {\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst hfs = this.hardforks();\n\t\tlet hfIndex = hfs.findIndex(hf => hf.name === hardfork);\n\t\t// If the current hardfork is merge, go one behind as merge hf is not part of these\n\t\t// calcs even if the merge hf block is set\n\t\tif (hardfork === Hardfork.Merge) {\n\t\t\thfIndex -= 1;\n\t\t}\n\t\t// Hardfork not found\n\t\tif (hfIndex < 0) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\n\t\tlet currHfTimeOrBlock = hfs[hfIndex].timestamp ?? hfs[hfIndex].block;\n\t\tcurrHfTimeOrBlock =\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tcurrHfTimeOrBlock !== null && currHfTimeOrBlock !== undefined\n\t\t\t\t? Number(currHfTimeOrBlock)\n\t\t\t\t: // eslint-disable-next-line no-null/no-null\n\t\t\t\t null;\n\n\t\tconst nextHf = hfs.slice(hfIndex + 1).find(hf => {\n\t\t\tlet hfTimeOrBlock = hf.timestamp ?? hf.block;\n\t\t\thfTimeOrBlock =\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\thfTimeOrBlock !== null && hfTimeOrBlock !== undefined\n\t\t\t\t\t? Number(hfTimeOrBlock)\n\t\t\t\t\t: // eslint-disable-next-line no-null/no-null\n\t\t\t\t\t null;\n\t\t\treturn (\n\t\t\t\thf.name !== Hardfork.Merge &&\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\thfTimeOrBlock !== null &&\n\t\t\t\thfTimeOrBlock !== undefined &&\n\t\t\t\thfTimeOrBlock !== currHfTimeOrBlock\n\t\t\t);\n\t\t});\n\t\t// If no next hf found with valid block or timestamp return null\n\t\tif (nextHf === undefined) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\n\t\tconst nextHfBlock = nextHf.timestamp ?? nextHf.block;\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (nextHfBlock === null || nextHfBlock === undefined) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\n\t\treturn BigInt(nextHfBlock);\n\t}\n\n\t/**\n\t * Returns the change block for the next hardfork after the hardfork provided or set\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @returns Block number or null if not available\n\t * @deprecated\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic nextHardforkBlock(_hardfork?: string | Hardfork): bigint | null {\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tlet hfBlock = this.hardforkBlock(hardfork);\n\t\t// If this is a merge hardfork with block not set, then we fallback to previous hardfork\n\t\t// to find the nextHardforkBlock\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (hfBlock === null && hardfork === Hardfork.Merge) {\n\t\t\tconst hfs = this.hardforks();\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tconst mergeIndex = hfs.findIndex(hf => hf.ttd !== null && hf.ttd !== undefined);\n\t\t\tif (mergeIndex < 0) {\n\t\t\t\tthrow Error(`Merge hardfork should have been found`);\n\t\t\t}\n\t\t\thfBlock = this.hardforkBlock(hfs[mergeIndex - 1].name);\n\t\t}\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (hfBlock === null) {\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn null;\n\t\t}\n\t\t// Next fork block number or null if none available\n\t\t// Logic: if accumulator is still null and on the first occurrence of\n\t\t// a block greater than the current hfBlock set the accumulator,\n\t\t// pass on the accumulator as the final result from this time on\n\t\t// eslint-disable-next-line no-null/no-null, @typescript-eslint/ban-types\n\t\tconst nextHfBlock = this.hardforks().reduce((acc: bigint | null, hf: HardforkConfig) => {\n\t\t\t// We need to ignore the merge block in our next hardfork calc\n\t\t\tconst block = BigInt(\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\thf.block === null || (hf.ttd !== undefined && hf.ttd !== null) ? 0 : hf.block,\n\t\t\t);\n\t\t\t// TypeScript can't seem to follow that the hfBlock is not null at this point\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\treturn block > hfBlock! && acc === null ? block : acc;\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t}, null);\n\t\treturn nextHfBlock;\n\t}\n\n\t/**\n\t * True if block number provided is the hardfork change block following the hardfork given or set\n\t * @param blockNumber Number of the block to check\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @returns True if blockNumber is HF block\n\t * @deprecated\n\t */\n\tpublic isNextHardforkBlock(_blockNumber: Numbers, _hardfork?: string | Hardfork): boolean {\n\t\tconst blockNumber = toType(_blockNumber, TypeOutput.BigInt);\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\t// eslint-disable-next-line deprecation/deprecation\n\t\tconst nextHardforkBlock = this.nextHardforkBlock(hardfork);\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn nextHardforkBlock === null ? false : nextHardforkBlock === blockNumber;\n\t}\n\n\t/**\n\t * Internal helper function to calculate a fork hash\n\t * @param hardfork Hardfork name\n\t * @param genesisHash Genesis block hash of the chain\n\t * @returns Fork hash as hex string\n\t */\n\tpublic _calcForkHash(hardfork: string | Hardfork, genesisHash: Uint8Array) {\n\t\tlet hfUint8Array = new Uint8Array();\n\t\tlet prevBlockOrTime = 0;\n\t\tfor (const hf of this.hardforks()) {\n\t\t\tconst { block, timestamp, name } = hf;\n\t\t\t// Timestamp to be used for timestamp based hfs even if we may bundle\n\t\t\t// block number with them retrospectively\n\t\t\tlet blockOrTime = timestamp ?? block;\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tblockOrTime = blockOrTime !== null ? Number(blockOrTime) : null;\n\n\t\t\t// Skip for chainstart (0), not applied HFs (null) and\n\t\t\t// when already applied on same blockOrTime HFs\n\t\t\t// and on the merge since forkhash doesn't change on merge hf\n\t\t\tif (\n\t\t\t\ttypeof blockOrTime === 'number' &&\n\t\t\t\tblockOrTime !== 0 &&\n\t\t\t\tblockOrTime !== prevBlockOrTime &&\n\t\t\t\tname !== Hardfork.Merge\n\t\t\t) {\n\t\t\t\tconst hfBlockUint8Array = hexToBytes(blockOrTime.toString(16).padStart(16, '0'));\n\t\t\t\thfUint8Array = uint8ArrayConcat(hfUint8Array, hfBlockUint8Array);\n\t\t\t\tprevBlockOrTime = blockOrTime;\n\t\t\t}\n\n\t\t\tif (hf.name === hardfork) break;\n\t\t}\n\t\tconst inputUint8Array = uint8ArrayConcat(genesisHash, hfUint8Array);\n\n\t\t// CRC32 delivers result as signed (negative) 32-bit integer,\n\t\t// convert to hex string\n\t\t// eslint-disable-next-line no-bitwise\n\t\tconst forkhash = bytesToHex(intToUint8Array(crc32Uint8Array(inputUint8Array) >>> 0));\n\t\treturn forkhash;\n\t}\n\n\t/**\n\t * Returns an eth/64 compliant fork hash (EIP-2124)\n\t * @param hardfork Hardfork name, optional if HF set\n\t * @param genesisHash Genesis block hash of the chain, optional if already defined and not needed to be calculated\n\t */\n\tpublic forkHash(_hardfork?: string | Hardfork, genesisHash?: Uint8Array): string {\n\t\tconst hardfork = _hardfork ?? this._hardfork;\n\t\tconst data = this._getHardfork(hardfork);\n\t\tif (\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tdata === null ||\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t(data?.block === null && data?.timestamp === undefined && data?.ttd === undefined)\n\t\t) {\n\t\t\tconst msg = 'No fork hash calculation possible for future hardfork';\n\t\t\tthrow new Error(msg);\n\t\t}\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif (data?.forkHash !== null && data?.forkHash !== undefined) {\n\t\t\treturn data.forkHash;\n\t\t}\n\t\tif (!genesisHash) throw new Error('genesisHash required for forkHash calculation');\n\t\treturn this._calcForkHash(hardfork, genesisHash);\n\t}\n\n\t/**\n\t *\n\t * @param forkHash Fork hash as a hex string\n\t * @returns Array with hardfork data (name, block, forkHash)\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic hardforkForForkHash(forkHash: string): HardforkConfig | null {\n\t\tconst resArray = this.hardforks().filter((hf: HardforkConfig) => hf.forkHash === forkHash);\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn resArray.length >= 1 ? resArray[resArray.length - 1] : null;\n\t}\n\n\t/**\n\t * Sets any missing forkHashes on the passed-in {@link Common} instance\n\t * @param common The {@link Common} to set the forkHashes for\n\t * @param genesisHash The genesis block hash\n\t */\n\tpublic setForkHashes(genesisHash: Uint8Array) {\n\t\tfor (const hf of this.hardforks()) {\n\t\t\tconst blockOrTime = hf.timestamp ?? hf.block;\n\t\t\tif (\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\t(hf.forkHash === null || hf.forkHash === undefined) &&\n\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\t((blockOrTime !== null && blockOrTime !== undefined) ||\n\t\t\t\t\ttypeof hf.ttd !== 'undefined')\n\t\t\t) {\n\t\t\t\thf.forkHash = this.forkHash(hf.name, genesisHash);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the Genesis parameters of the current chain\n\t * @returns Genesis dictionary\n\t */\n\tpublic genesis(): GenesisBlockConfig {\n\t\treturn this._chainParams.genesis;\n\t}\n\n\t/**\n\t * Returns the hardforks for current chain\n\t * @returns {Array} Array with arrays of hardforks\n\t */\n\tpublic hardforks(): HardforkConfig[] {\n\t\treturn this._chainParams.hardforks;\n\t}\n\n\t/**\n\t * Returns bootstrap nodes for the current chain\n\t * @returns {Dictionary} Dict with bootstrap nodes\n\t */\n\tpublic bootstrapNodes(): BootstrapNodeConfig[] | undefined {\n\t\treturn this._chainParams.bootstrapNodes;\n\t}\n\n\t/**\n\t * Returns DNS networks for the current chain\n\t * @returns {String[]} Array of DNS ENR urls\n\t */\n\tpublic dnsNetworks(): string[] {\n\t\treturn this._chainParams.dnsNetworks!;\n\t}\n\n\t/**\n\t * Returns the hardfork set\n\t * @returns Hardfork name\n\t */\n\tpublic hardfork(): string | Hardfork {\n\t\treturn this._hardfork;\n\t}\n\n\t/**\n\t * Returns the Id of current chain\n\t * @returns chain Id\n\t */\n\tpublic chainId(): bigint {\n\t\treturn BigInt(this._chainParams.chainId);\n\t}\n\n\t/**\n\t * Returns the name of current chain\n\t * @returns chain name (lower case)\n\t */\n\tpublic chainName(): string {\n\t\treturn this._chainParams.name;\n\t}\n\n\t/**\n\t * Returns the Id of current network\n\t * @returns network Id\n\t */\n\tpublic networkId(): bigint {\n\t\treturn BigInt(this._chainParams.networkId);\n\t}\n\n\t/**\n\t * Returns the active EIPs\n\t * @returns List of EIPs\n\t */\n\tpublic eips(): number[] {\n\t\treturn this._eips;\n\t}\n\n\t/**\n\t * Returns the consensus type of the network\n\t * Possible values: \"pow\"|\"poa\"|\"pos\"\n\t *\n\t * Note: This value can update along a Hardfork.\n\t */\n\tpublic consensusType(): string | ConsensusType {\n\t\tconst hardfork = this.hardfork();\n\n\t\tlet value;\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\tif ('consensus' in hfChanges[1]) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\tvalue = hfChanges[1].consensus.type;\n\t\t\t}\n\t\t\tif (hfChanges[0] === hardfork) break;\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn value ?? this._chainParams.consensus.type;\n\t}\n\n\t/**\n\t * Returns the concrete consensus implementation\n\t * algorithm or protocol for the network\n\t * e.g. \"ethash\" for \"pow\" consensus type,\n\t * \"clique\" for \"poa\" consensus type or\n\t * \"casper\" for \"pos\" consensus type.\n\t *\n\t * Note: This value can update along a Hardfork.\n\t */\n\tpublic consensusAlgorithm(): string | ConsensusAlgorithm {\n\t\tconst hardfork = this.hardfork();\n\n\t\tlet value;\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\tif ('consensus' in hfChanges[1]) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\tvalue = hfChanges[1].consensus.algorithm;\n\t\t\t}\n\t\t\tif (hfChanges[0] === hardfork) break;\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn value ?? (this._chainParams.consensus.algorithm as ConsensusAlgorithm);\n\t}\n\n\t/**\n\t * Returns a dictionary with consensus configuration\n\t * parameters based on the consensus algorithm\n\t *\n\t * Expected returns (parameters must be present in\n\t * the respective chain json files):\n\t *\n\t * ethash: empty object\n\t * clique: period, epoch\n\t * casper: empty object\n\t *\n\t * Note: This value can update along a Hardfork.\n\t */\n\tpublic consensusConfig(): { [key: string]: CliqueConfig | EthashConfig | CasperConfig } {\n\t\tconst hardfork = this.hardfork();\n\n\t\tlet value;\n\t\tfor (const hfChanges of this.HARDFORK_CHANGES) {\n\t\t\tif ('consensus' in hfChanges[1]) {\n\t\t\t\t// The config parameter is named after the respective consensus algorithm\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n\t\t\t\tvalue = hfChanges[1].consensus[hfChanges[1].consensus.algorithm];\n\t\t\t}\n\t\t\tif (hfChanges[0] === hardfork) break;\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn (\n\t\t\tvalue ??\n\t\t\tthis._chainParams.consensus[this.consensusAlgorithm() as ConsensusAlgorithm] ??\n\t\t\t{}\n\t\t);\n\t}\n\n\t/**\n\t * Returns a deep copy of this {@link Common} instance.\n\t */\n\tpublic copy(): Common {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-assignment\n\t\tconst copy = Object.assign(Object.create(Object.getPrototypeOf(this)), this);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n\t\tcopy.removeAllListeners();\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn copy;\n\t}\n\n\tpublic static _getInitializedChains(customChains?: ChainConfig[]): ChainsConfig {\n\t\tconst names: ChainName = {};\n\t\tfor (const [name, id] of Object.entries(Chain)) {\n\t\t\tnames[id] = name.toLowerCase();\n\t\t}\n\t\tconst chains = { mainnet, goerli, sepolia } as ChainsConfig;\n\t\tif (customChains) {\n\t\t\tfor (const chain of customChains) {\n\t\t\t\tconst { name } = chain;\n\t\t\t\tnames[chain.chainId.toString()] = name;\n\t\t\t\tchains[name] = chain;\n\t\t\t}\n\t\t}\n\t\tchains.names = names;\n\t\treturn chains;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport type { HexString, Numbers } from 'web3-types';\n\nimport type { Common } from '../common/common.js';\n// eslint-disable-next-line require-extensions/require-extensions\nimport type { Uint8ArrayLike, PrefixedHexString } from '../common/types';\nimport { Address } from './address.js';\n\n/**\n * Can be used in conjunction with {@link Transaction.supports}\n * to query on tx capabilities\n */\nexport enum Capability {\n\t/**\n\t * Tx supports EIP-155 replay protection\n\t * See: [155](https://eips.ethereum.org/EIPS/eip-155) Replay Attack Protection EIP\n\t */\n\tEIP155ReplayProtection = 155,\n\n\t/**\n\t * Tx supports EIP-1559 gas fee market mechanism\n\t * See: [1559](https://eips.ethereum.org/EIPS/eip-1559) Fee Market EIP\n\t */\n\tEIP1559FeeMarket = 1559,\n\n\t/**\n\t * Tx is a typed transaction as defined in EIP-2718\n\t * See: [2718](https://eips.ethereum.org/EIPS/eip-2718) Transaction Type EIP\n\t */\n\tEIP2718TypedTransaction = 2718,\n\n\t/**\n\t * Tx supports access list generation as defined in EIP-2930\n\t * See: [2930](https://eips.ethereum.org/EIPS/eip-2930) Access Lists EIP\n\t */\n\tEIP2930AccessLists = 2930,\n}\n\n/**\n * The options for initializing a {@link Transaction}.\n */\nexport interface TxOptions {\n\t/**\n\t * A {@link Common} object defining the chain and hardfork for the transaction.\n\t *\n\t * Object will be internally copied so that tx behavior don't incidentally\n\t * change on future HF changes.\n\t *\n\t * Default: {@link Common} object set to `mainnet` and the default hardfork as defined in the {@link Common} class.\n\t *\n\t * Current default hardfork: `istanbul`\n\t */\n\tcommon?: Common;\n\t/**\n\t * A transaction object by default gets frozen along initialization. This gives you\n\t * strong additional security guarantees on the consistency of the tx parameters.\n\t * It also enables tx hash caching when the `hash()` method is called multiple times.\n\t *\n\t * If you need to deactivate the tx freeze - e.g. because you want to subclass tx and\n\t * add additional properties - it is strongly encouraged that you do the freeze yourself\n\t * within your code instead.\n\t *\n\t * Default: true\n\t */\n\tfreeze?: boolean;\n\n\t/**\n\t * Allows unlimited contract code-size init while debugging. This (partially) disables EIP-3860.\n\t * Gas cost for initcode size analysis will still be charged. Use with caution.\n\t */\n\tallowUnlimitedInitCodeSize?: boolean;\n}\n\n/*\n * Access List types\n */\n\nexport type AccessListItem = {\n\taddress: PrefixedHexString;\n\tstorageKeys: PrefixedHexString[];\n};\n\n/*\n * An Access List as a tuple of [address: Uint8Array, storageKeys: Uint8Array[]]\n */\nexport type AccessListUint8ArrayItem = [Uint8Array, Uint8Array[]];\nexport type AccessListUint8Array = AccessListUint8ArrayItem[];\nexport type AccessList = AccessListItem[];\n\nexport function isAccessListUint8Array(\n\tinput: AccessListUint8Array | AccessList,\n): input is AccessListUint8Array {\n\tif (input.length === 0) {\n\t\treturn true;\n\t}\n\tconst firstItem = input[0];\n\tif (Array.isArray(firstItem)) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport function isAccessList(input: AccessListUint8Array | AccessList): input is AccessList {\n\treturn !isAccessListUint8Array(input); // This is exactly the same method, except the output is negated.\n}\n\nexport interface ECDSASignature {\n\tv: bigint;\n\tr: Uint8Array;\n\ts: Uint8Array;\n}\n\n/**\n * Legacy {@link Transaction} Data\n */\nexport type TxData = {\n\t/**\n\t * The transaction's nonce.\n\t */\n\tnonce?: Numbers | Uint8Array;\n\n\t/**\n\t * The transaction's gas price.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tgasPrice?: Numbers | Uint8Array | null;\n\n\t/**\n\t * The transaction's gas limit.\n\t */\n\tgasLimit?: Numbers | Uint8Array;\n\n\t/**\n\t * The transaction's the address is sent to.\n\t */\n\tto?: Address | Uint8Array | HexString;\n\n\t/**\n\t * The amount of Ether sent.\n\t */\n\tvalue?: Numbers | Uint8Array;\n\n\t/**\n\t * This will contain the data of the message or the init of a contract.\n\t */\n\tdata?: Uint8ArrayLike;\n\n\t/**\n\t * EC recovery ID.\n\t */\n\tv?: Numbers | Uint8Array;\n\n\t/**\n\t * EC signature parameter.\n\t */\n\tr?: Numbers | Uint8Array;\n\n\t/**\n\t * EC signature parameter.\n\t */\n\ts?: Numbers | Uint8Array;\n\n\t/**\n\t * The transaction type\n\t */\n\n\ttype?: Numbers;\n};\n\n/**\n * {@link AccessListEIP2930Transaction} data.\n */\nexport interface AccessListEIP2930TxData extends TxData {\n\t/**\n\t * The transaction's chain ID\n\t */\n\tchainId?: Numbers;\n\n\t/**\n\t * The access list which contains the addresses/storage slots which the transaction wishes to access\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\taccessList?: AccessListUint8Array | AccessList | null;\n}\n\n/**\n * {@link FeeMarketEIP1559Transaction} data.\n */\nexport interface FeeMarketEIP1559TxData extends AccessListEIP2930TxData {\n\t/**\n\t * The transaction's gas price, inherited from {@link Transaction}. This property is not used for EIP1559\n\t * transactions and should always be undefined for this specific transaction type.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tgasPrice?: never | null;\n\t/**\n\t * The maximum inclusion fee per gas (this fee is given to the miner)\n\t */\n\tmaxPriorityFeePerGas?: Numbers | Uint8Array;\n\t/**\n\t * The maximum total fee\n\t */\n\tmaxFeePerGas?: Numbers | Uint8Array;\n}\n\n/**\n * Uint8Array values array for a legacy {@link Transaction}\n */\nexport type TxValuesArray = Uint8Array[];\n\n/**\n * Uint8Array values array for an {@link AccessListEIP2930Transaction}\n */\nexport type AccessListEIP2930ValuesArray = [\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tAccessListUint8Array,\n\tUint8Array?,\n\tUint8Array?,\n\tUint8Array?,\n];\n\n/**\n * Uint8Array values array for a {@link FeeMarketEIP1559Transaction}\n */\nexport type FeeMarketEIP1559ValuesArray = [\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tUint8Array,\n\tAccessListUint8Array,\n\tUint8Array?,\n\tUint8Array?,\n\tUint8Array?,\n];\n\ntype JsonAccessListItem = { address: string; storageKeys: string[] };\n\n/**\n * Generic interface for all tx types with a\n * JSON representation of a transaction.\n *\n * Note that all values are marked as optional\n * and not all the values are present on all tx types\n * (an EIP1559 tx e.g. lacks a `gasPrice`).\n */\nexport interface JsonTx {\n\tnonce?: string;\n\tgasPrice?: string;\n\tgasLimit?: string;\n\tto?: string;\n\tdata?: string;\n\tv?: string;\n\tr?: string;\n\ts?: string;\n\tvalue?: string;\n\tchainId?: string;\n\taccessList?: JsonAccessListItem[];\n\ttype?: string;\n\tmaxPriorityFeePerGas?: string;\n\tmaxFeePerGas?: string;\n\tmaxFeePerDataGas?: string;\n\tversionedHashes?: string[];\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { bytesToHex, uint8ArrayEquals } from 'web3-utils';\nimport { secp256k1 } from './constants.js';\nimport { assertIsUint8Array, zeros } from '../common/utils.js';\n\nexport class Address {\n\tpublic readonly buf: Uint8Array;\n\n\tpublic constructor(buf: Uint8Array) {\n\t\tif (buf.length !== 20) {\n\t\t\tthrow new Error('Invalid address length');\n\t\t}\n\t\tthis.buf = buf;\n\t}\n\n\t/**\n\t * Returns the zero address.\n\t */\n\tpublic static zero(): Address {\n\t\treturn new Address(zeros(20));\n\t}\n\n\t/**\n\t * Is address equal to another.\n\t */\n\tpublic equals(address: Address): boolean {\n\t\treturn uint8ArrayEquals(this.buf, address.buf);\n\t}\n\n\t/**\n\t * Is address zero.\n\t */\n\tpublic isZero(): boolean {\n\t\treturn this.equals(Address.zero());\n\t}\n\n\t/**\n\t * Returns hex encoding of address.\n\t */\n\tpublic toString(): string {\n\t\treturn bytesToHex(this.buf);\n\t}\n\n\t/**\n\t * Returns Uint8Array representation of address.\n\t */\n\tpublic toArray(): Uint8Array {\n\t\treturn this.buf;\n\t}\n\n\t/**\n\t * Returns the ethereum address of a given public key.\n\t * Accepts \"Ethereum public keys\" and SEC1 encoded keys.\n\t * @param pubKey The two points of an uncompressed key, unless sanitize is enabled\n\t * @param sanitize Accept public keys in other formats\n\t */\n\tpublic static publicToAddress(_pubKey: Uint8Array, sanitize = false): Uint8Array {\n\t\tlet pubKey = _pubKey;\n\t\tassertIsUint8Array(pubKey);\n\t\tif (sanitize && pubKey.length !== 64) {\n\t\t\tpubKey = secp256k1.ProjectivePoint.fromHex(pubKey).toRawBytes(false).slice(1);\n\t\t}\n\t\tif (pubKey.length !== 64) {\n\t\t\tthrow new Error('Expected pubKey to be of length 64');\n\t\t}\n\t\t// Only take the lower 160bits of the hash\n\t\treturn keccak256(pubKey).slice(-20);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { HexString } from 'web3-types';\nimport { bytesToHex } from 'web3-utils';\nimport { setLengthLeft, toUint8Array } from '../common/utils.js';\nimport type { AccessList, AccessListUint8Array, AccessListItem } from './types.js';\nimport { isAccessList } from './types.js';\n\nimport type { Common } from '../common/common.js';\n\nexport const checkMaxInitCodeSize = (common: Common, length: number) => {\n\tconst maxInitCodeSize = common.param('vm', 'maxInitCodeSize');\n\tif (maxInitCodeSize && BigInt(length) > maxInitCodeSize) {\n\t\tthrow new Error(\n\t\t\t`the initcode size of this transaction is too large: it is ${length} while the max is ${common.param(\n\t\t\t\t'vm',\n\t\t\t\t'maxInitCodeSize',\n\t\t\t)}`,\n\t\t);\n\t}\n};\n\nexport const getAccessListData = (accessList: AccessListUint8Array | AccessList) => {\n\tlet AccessListJSON;\n\tlet uint8arrayAccessList;\n\tif (isAccessList(accessList)) {\n\t\tAccessListJSON = accessList;\n\t\tconst newAccessList: AccessListUint8Array = [];\n\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\tfor (let i = 0; i < accessList.length; i += 1) {\n\t\t\tconst item: AccessListItem = accessList[i];\n\t\t\tconst addressBytes = toUint8Array(item.address);\n\t\t\tconst storageItems: Uint8Array[] = [];\n\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\t\tfor (let index = 0; index < item.storageKeys.length; index += 1) {\n\t\t\t\tstorageItems.push(toUint8Array(item.storageKeys[index]));\n\t\t\t}\n\t\t\tnewAccessList.push([addressBytes, storageItems]);\n\t\t}\n\t\tuint8arrayAccessList = newAccessList;\n\t} else {\n\t\tuint8arrayAccessList = accessList ?? [];\n\t\t// build the JSON\n\t\tconst json: AccessList = [];\n\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\tfor (let i = 0; i < uint8arrayAccessList.length; i += 1) {\n\t\t\tconst data = uint8arrayAccessList[i];\n\t\t\tconst address = bytesToHex(data[0]);\n\t\t\tconst storageKeys: string[] = [];\n\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\t\tfor (let item = 0; item < data[1].length; item += 1) {\n\t\t\t\tstorageKeys.push(bytesToHex(data[1][item]));\n\t\t\t}\n\t\t\tconst jsonItem: AccessListItem = {\n\t\t\t\taddress,\n\t\t\t\tstorageKeys,\n\t\t\t};\n\t\t\tjson.push(jsonItem);\n\t\t}\n\t\tAccessListJSON = json;\n\t}\n\n\treturn {\n\t\tAccessListJSON,\n\t\taccessList: uint8arrayAccessList,\n\t};\n};\n\nexport const verifyAccessList = (accessList: AccessListUint8Array) => {\n\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\tfor (let key = 0; key < accessList.length; key += 1) {\n\t\tconst accessListItem = accessList[key];\n\t\tconst address = accessListItem[0];\n\t\tconst storageSlots = accessListItem[1];\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/consistent-type-assertions\n\t\tif ((<any>accessListItem)[2] !== undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t'Access list item cannot have 3 elements. It can only have an address, and an array of storage slots.',\n\t\t\t);\n\t\t}\n\t\tif (address.length !== 20) {\n\t\t\tthrow new Error('Invalid EIP-2930 transaction: address length should be 20 bytes');\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\tfor (let storageSlot = 0; storageSlot < storageSlots.length; storageSlot += 1) {\n\t\t\tif (storageSlots[storageSlot].length !== 32) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'Invalid EIP-2930 transaction: storage slot length should be 32 bytes',\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const getAccessListJSON = (\n\taccessList: AccessListUint8Array,\n): {\n\taddress: HexString;\n\tstorageKeys: HexString[];\n}[] => {\n\tconst accessListJSON: { address: HexString; storageKeys: HexString[] }[] = [];\n\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\tfor (let index = 0; index < accessList.length; index += 1) {\n\t\tconst item: any = accessList[index];\n\t\tconst JSONItem: { address: HexString; storageKeys: HexString[] } = {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/consistent-type-assertions\n\t\t\taddress: bytesToHex(setLengthLeft(<Uint8Array>item[0], 20)),\n\t\t\tstorageKeys: [],\n\t\t};\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/prefer-optional-chain\n\t\tconst storageSlots: Uint8Array[] = item && item[1];\n\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\tfor (let slot = 0; slot < storageSlots.length; slot += 1) {\n\t\t\tconst storageSlot = storageSlots[slot];\n\t\t\tJSONItem.storageKeys.push(bytesToHex(setLengthLeft(storageSlot, 32)));\n\t\t}\n\t\taccessListJSON.push(JSONItem);\n\t}\n\treturn accessListJSON;\n};\n\nexport const getDataFeeEIP2930 = (accessList: AccessListUint8Array, common: Common): number => {\n\tconst accessListStorageKeyCost = common.param('gasPrices', 'accessListStorageKeyCost');\n\tconst accessListAddressCost = common.param('gasPrices', 'accessListAddressCost');\n\n\tlet slots = 0;\n\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\tfor (let index = 0; index < accessList.length; index += 1) {\n\t\tconst item = accessList[index];\n\t\tconst storageSlots = item[1];\n\t\tslots += storageSlots.length;\n\t}\n\n\tconst addresses = accessList.length;\n\treturn addresses * Number(accessListAddressCost) + slots * Number(accessListStorageKeyCost);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Common as CommonType, Numbers } from 'web3-types';\nimport { bytesToHex } from 'web3-utils';\nimport { MAX_INTEGER, MAX_UINT64, SECP256K1_ORDER_DIV_2, secp256k1 } from './constants.js';\nimport { toUint8Array, uint8ArrayToBigInt, unpadUint8Array } from '../common/utils.js';\nimport { Common } from '../common/common.js';\nimport { Hardfork, Chain } from '../common/enums.js';\nimport type {\n\tAccessListEIP2930TxData,\n\tAccessListEIP2930ValuesArray,\n\tFeeMarketEIP1559TxData,\n\tFeeMarketEIP1559ValuesArray,\n\tJsonTx,\n\tTxData,\n\tTxOptions,\n\tTxValuesArray,\n} from './types.js';\nimport { Capability, ECDSASignature } from './types.js';\nimport { Address } from './address.js';\nimport { checkMaxInitCodeSize } from './utils.js';\n\ninterface TransactionCache {\n\thash: Uint8Array | undefined;\n\tdataFee?: {\n\t\tvalue: bigint;\n\t\thardfork: string | Hardfork;\n\t};\n}\n\n/**\n * This base class will likely be subject to further\n * refactoring along the introduction of additional tx types\n * on the Ethereum network.\n *\n * It is therefore not recommended to use directly.\n */\nexport abstract class BaseTransaction<TransactionObject> {\n\tprivate readonly _type: number;\n\n\tpublic readonly nonce: bigint;\n\tpublic readonly gasLimit: bigint;\n\tpublic readonly to?: Address;\n\tpublic readonly value: bigint;\n\tpublic readonly data: Uint8Array;\n\n\tpublic readonly v?: bigint;\n\tpublic readonly r?: bigint;\n\tpublic readonly s?: bigint;\n\n\tpublic readonly common!: Common;\n\n\tprotected cache: TransactionCache = {\n\t\thash: undefined,\n\t\tdataFee: undefined,\n\t};\n\n\tprotected readonly txOptions: TxOptions;\n\n\t/**\n\t * List of tx type defining EIPs,\n\t * e.g. 1559 (fee market) and 2930 (access lists)\n\t * for FeeMarketEIP1559Transaction objects\n\t */\n\tprotected activeCapabilities: number[] = [];\n\n\t/**\n\t * The default chain the tx falls back to if no Common\n\t * is provided and if the chain can't be derived from\n\t * a passed in chainId (only EIP-2718 typed txs) or\n\t * EIP-155 signature (legacy txs).\n\t *\n\t * @hidden\n\t */\n\tprotected DEFAULT_CHAIN = Chain.Mainnet;\n\n\t/**\n\t * The default HF if the tx type is active on that HF\n\t * or the first greater HF where the tx is active.\n\t *\n\t * @hidden\n\t */\n\tprotected DEFAULT_HARDFORK: string | Hardfork = Hardfork.Merge;\n\n\tpublic constructor(\n\t\ttxData: TxData | AccessListEIP2930TxData | FeeMarketEIP1559TxData,\n\t\topts: TxOptions,\n\t) {\n\t\tconst { nonce, gasLimit, to, value, data, v, r, s, type } = txData;\n\t\tthis._type = Number(uint8ArrayToBigInt(toUint8Array(type)));\n\n\t\tthis.txOptions = opts;\n\n\t\tconst toB = toUint8Array(to === '' ? '0x' : to);\n\t\tconst vB = toUint8Array(v === '' ? '0x' : v);\n\t\tconst rB = toUint8Array(r === '' ? '0x' : r);\n\t\tconst sB = toUint8Array(s === '' ? '0x' : s);\n\n\t\tthis.nonce = uint8ArrayToBigInt(toUint8Array(nonce === '' ? '0x' : nonce));\n\t\tthis.gasLimit = uint8ArrayToBigInt(toUint8Array(gasLimit === '' ? '0x' : gasLimit));\n\t\tthis.to = toB.length > 0 ? new Address(toB) : undefined;\n\t\tthis.value = uint8ArrayToBigInt(toUint8Array(value === '' ? '0x' : value));\n\t\tthis.data = toUint8Array(data === '' ? '0x' : data);\n\n\t\tthis.v = vB.length > 0 ? uint8ArrayToBigInt(vB) : undefined;\n\t\tthis.r = rB.length > 0 ? uint8ArrayToBigInt(rB) : undefined;\n\t\tthis.s = sB.length > 0 ? uint8ArrayToBigInt(sB) : undefined;\n\n\t\tthis._validateCannotExceedMaxInteger({ value: this.value, r: this.r, s: this.s });\n\n\t\t// geth limits gasLimit to 2^64-1\n\t\tthis._validateCannotExceedMaxInteger({ gasLimit: this.gasLimit }, 64);\n\n\t\t// EIP-2681 limits nonce to 2^64-1 (cannot equal 2^64-1)\n\t\tthis._validateCannotExceedMaxInteger({ nonce: this.nonce }, 64, true);\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tconst createContract = this.to === undefined || this.to === null;\n\t\tconst allowUnlimitedInitCodeSize = opts.allowUnlimitedInitCodeSize ?? false;\n\t\tconst common = opts.common ?? this._getCommon();\n\t\tif (createContract && common.isActivatedEIP(3860) && !allowUnlimitedInitCodeSize) {\n\t\t\tcheckMaxInitCodeSize(common, this.data.length);\n\t\t}\n\t}\n\n\t/**\n\t * Returns the transaction type.\n\t *\n\t * Note: legacy txs will return tx type `0`.\n\t */\n\tpublic get type() {\n\t\treturn this._type;\n\t}\n\n\t/**\n\t * Checks if a tx type defining capability is active\n\t * on a tx, for example the EIP-1559 fee market mechanism\n\t * or the EIP-2930 access list feature.\n\t *\n\t * Note that this is different from the tx type itself,\n\t * so EIP-2930 access lists can very well be active\n\t * on an EIP-1559 tx for example.\n\t *\n\t * This method can be useful for feature checks if the\n\t * tx type is unknown (e.g. when instantiated with\n\t * the tx factory).\n\t *\n\t * See `Capabilites` in the `types` module for a reference\n\t * on all supported capabilities.\n\t */\n\tpublic supports(capability: Capability) {\n\t\treturn this.activeCapabilities.includes(capability);\n\t}\n\n\t/**\n\t * Checks if the transaction has the minimum amount of gas required\n\t * (DataFee + TxFee + Creation Fee).\n\t */\n\tpublic validate(): boolean;\n\tpublic validate(stringError: false): boolean;\n\tpublic validate(stringError: true): string[];\n\tpublic validate(stringError = false): boolean | string[] {\n\t\tconst errors = [];\n\n\t\tif (this.getBaseFee() > this.gasLimit) {\n\t\t\terrors.push(\n\t\t\t\t`gasLimit is too low. given ${this.gasLimit}, need at least ${this.getBaseFee()}`,\n\t\t\t);\n\t\t}\n\n\t\tif (this.isSigned() && !this.verifySignature()) {\n\t\t\terrors.push('Invalid Signature');\n\t\t}\n\n\t\treturn stringError ? errors : errors.length === 0;\n\t}\n\n\tprotected _validateYParity() {\n\t\tconst { v } = this;\n\t\tif (v !== undefined && v !== BigInt(0) && v !== BigInt(1)) {\n\t\t\tconst msg = this._errorMsg('The y-parity of the transaction should either be 0 or 1');\n\t\t\tthrow new Error(msg);\n\t\t}\n\t}\n\n\t/**\n\t * EIP-2: All transaction signatures whose s-value is greater than secp256k1n/2are considered invalid.\n\t * Reasoning: https://ethereum.stackexchange.com/a/55728\n\t */\n\tprotected _validateHighS() {\n\t\tconst { s } = this;\n\t\tif (this.common.gteHardfork('homestead') && s !== undefined && s > SECP256K1_ORDER_DIV_2) {\n\t\t\tconst msg = this._errorMsg(\n\t\t\t\t'Invalid Signature: s-values greater than secp256k1n/2 are considered invalid',\n\t\t\t);\n\t\t\tthrow new Error(msg);\n\t\t}\n\t}\n\n\t/**\n\t * The minimum amount of gas the tx must have (DataFee + TxFee + Creation Fee)\n\t */\n\tpublic getBaseFee(): bigint {\n\t\tconst txFee = this.common.param('gasPrices', 'tx');\n\t\tlet fee = this.getDataFee();\n\t\tif (txFee) fee += txFee;\n\t\tif (this.common.gteHardfork('homestead') && this.toCreationAddress()) {\n\t\t\tconst txCreationFee = this.common.param('gasPrices', 'txCreation');\n\t\t\tif (txCreationFee) fee += txCreationFee;\n\t\t}\n\t\treturn fee;\n\t}\n\n\t/**\n\t * The amount of gas paid for the data in this tx\n\t */\n\tpublic getDataFee(): bigint {\n\t\tconst txDataZero = this.common.param('gasPrices', 'txDataZero');\n\t\tconst txDataNonZero = this.common.param('gasPrices', 'txDataNonZero');\n\n\t\tlet cost = BigInt(0);\n\t\t// eslint-disable-next-line @typescript-eslint/prefer-for-of\n\t\tfor (let i = 0; i < this.data.length; i += 1) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unused-expressions, no-unused-expressions\n\t\t\tthis.data[i] === 0 ? (cost += txDataZero) : (cost += txDataNonZero);\n\t\t}\n\t\t// eslint-disable-next-line no-null/no-null\n\t\tif ((this.to === undefined || this.to === null) && this.common.isActivatedEIP(3860)) {\n\t\t\tconst dataLength = BigInt(Math.ceil(this.data.length / 32));\n\t\t\tconst initCodeCost = this.common.param('gasPrices', 'initCodeWordCost') * dataLength;\n\t\t\tcost += initCodeCost;\n\t\t}\n\n\t\treturn cost;\n\t}\n\n\t/**\n\t * The up front amount that an account must have for this transaction to be valid\n\t */\n\tpublic abstract getUpfrontCost(): bigint;\n\n\t/**\n\t * If the tx's `to` is to the creation address\n\t */\n\tpublic toCreationAddress(): boolean {\n\t\treturn this.to === undefined || this.to.buf.length === 0;\n\t}\n\n\t/**\n\t * Returns a Uint8Array Array of the raw Uint8Arrays of this transaction, in order.\n\t *\n\t * Use {@link BaseTransaction.serialize} to add a transaction to a block\n\t * with {@link Block.fromValuesArray}.\n\t *\n\t * For an unsigned tx this method uses the empty Uint8Array values for the\n\t * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n\t * representation for external signing use {@link BaseTransaction.getMessageToSign}.\n\t */\n\tpublic abstract raw():\n\t\t| TxValuesArray\n\t\t| AccessListEIP2930ValuesArray\n\t\t| FeeMarketEIP1559ValuesArray;\n\n\t/**\n\t * Returns the encoding of the transaction.\n\t */\n\tpublic abstract serialize(): Uint8Array;\n\n\t// Returns the unsigned tx (hashed or raw), which is used to sign the transaction.\n\t//\n\t// Note: do not use code docs here since VS Studio is then not able to detect the\n\t// comments from the inherited methods\n\tpublic abstract getMessageToSign(hashMessage: false): Uint8Array | Uint8Array[];\n\tpublic abstract getMessageToSign(hashMessage?: true): Uint8Array;\n\n\tpublic abstract hash(): Uint8Array;\n\n\tpublic abstract getMessageToVerifySignature(): Uint8Array;\n\n\tpublic isSigned(): boolean {\n\t\tconst { v, r, s } = this;\n\t\tif (v === undefined || r === undefined || s === undefined) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Determines if the signature is valid\n\t */\n\tpublic verifySignature(): boolean {\n\t\ttry {\n\t\t\t// Main signature verification is done in `getSenderPublicKey()`\n\t\t\tconst publicKey = this.getSenderPublicKey();\n\t\t\treturn unpadUint8Array(publicKey).length !== 0;\n\t\t} catch (e: any) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/**\n\t * Returns the sender's address\n\t */\n\tpublic getSenderAddress(): Address {\n\t\treturn new Address(Address.publicToAddress(this.getSenderPublicKey()));\n\t}\n\n\t/**\n\t * Returns the public key of the sender\n\t */\n\tpublic abstract getSenderPublicKey(): Uint8Array;\n\n\t/**\n\t * Signs a transaction.\n\t *\n\t * Note that the signed tx is returned as a new object,\n\t * use as follows:\n\t * ```javascript\n\t * const signedTx = tx.sign(privateKey)\n\t * ```\n\t */\n\tpublic sign(privateKey: Uint8Array): TransactionObject {\n\t\tif (privateKey.length !== 32) {\n\t\t\tconst msg = this._errorMsg('Private key must be 32 bytes in length.');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\t// Hack for the constellation that we have got a legacy tx after spuriousDragon with a non-EIP155 conforming signature\n\t\t// and want to recreate a signature (where EIP155 should be applied)\n\t\t// Leaving this hack lets the legacy.spec.ts -> sign(), verifySignature() test fail\n\t\t// 2021-06-23\n\t\tlet hackApplied = false;\n\t\tif (\n\t\t\tthis.type === 0 &&\n\t\t\tthis.common.gteHardfork('spuriousDragon') &&\n\t\t\t!this.supports(Capability.EIP155ReplayProtection)\n\t\t) {\n\t\t\tthis.activeCapabilities.push(Capability.EIP155ReplayProtection);\n\t\t\thackApplied = true;\n\t\t}\n\n\t\tconst msgHash = this.getMessageToSign(true);\n\t\tconst { v, r, s } = this._ecsign(msgHash, privateKey);\n\t\tconst tx = this._processSignature(v, r, s);\n\n\t\t// Hack part 2\n\t\tif (hackApplied) {\n\t\t\tconst index = this.activeCapabilities.indexOf(Capability.EIP155ReplayProtection);\n\t\t\tif (index > -1) {\n\t\t\t\tthis.activeCapabilities.splice(index, 1);\n\t\t\t}\n\t\t}\n\n\t\treturn tx;\n\t}\n\n\t/**\n\t * Returns an object with the JSON representation of the transaction\n\t */\n\tpublic abstract toJSON(): JsonTx;\n\n\t// Accept the v,r,s values from the `sign` method, and convert this into a TransactionObject\n\tprotected abstract _processSignature(\n\t\tv: bigint,\n\t\tr: Uint8Array,\n\t\ts: Uint8Array,\n\t): TransactionObject;\n\n\t/**\n\t * Does chain ID checks on common and returns a common\n\t * to be used on instantiation\n\t * @hidden\n\t *\n\t * @param common - {@link Common} instance from tx options\n\t * @param chainId - Chain ID from tx options (typed txs) or signature (legacy tx)\n\t */\n\tprotected _getCommon(common?: Common, chainId?: Numbers) {\n\t\t// TODO: this function needs to be reviewed and the code to be more clean\n\t\t// check issue https://github.com/web3/web3.js/issues/6666\n\t\t// Chain ID provided\n\t\tif (chainId !== undefined) {\n\t\t\tconst chainIdBigInt = uint8ArrayToBigInt(toUint8Array(chainId));\n\t\t\tif (common) {\n\t\t\t\tif (common.chainId() !== chainIdBigInt) {\n\t\t\t\t\tconst msg = this._errorMsg(\n\t\t\t\t\t\t'The chain ID does not match the chain ID of Common',\n\t\t\t\t\t);\n\t\t\t\t\tthrow new Error(msg);\n\t\t\t\t}\n\t\t\t\t// Common provided, chain ID does match\n\t\t\t\t// -> Return provided Common\n\t\t\t\treturn common.copy();\n\t\t\t}\n\t\t\tif (Common.isSupportedChainId(chainIdBigInt)) {\n\t\t\t\t// No Common, chain ID supported by Common\n\t\t\t\t// -> Instantiate Common with chain ID\n\t\t\t\treturn new Common({ chain: chainIdBigInt, hardfork: this.DEFAULT_HARDFORK });\n\t\t\t}\n\t\t\t// No Common, chain ID not supported by Common\n\t\t\t// -> Instantiate custom Common derived from DEFAULT_CHAIN\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: 'custom-chain',\n\t\t\t\t\tnetworkId: chainIdBigInt,\n\t\t\t\t\tchainId: chainIdBigInt,\n\t\t\t\t},\n\t\t\t\t{ baseChain: this.DEFAULT_CHAIN, hardfork: this.DEFAULT_HARDFORK },\n\t\t\t);\n\t\t}\n\t\t// No chain ID provided\n\t\t// -> return Common provided or create new default Common\n\n\t\tif (common?.copy && typeof common?.copy === 'function') {\n\t\t\treturn common.copy();\n\t\t}\n\t\t// TODO: Recheck this next block when working on https://github.com/web3/web3.js/issues/6666\n\t\t// This block is to handle when `chainId` was not passed and the `common` object does not have `copy()`\n\t\t// If it was meant to be unsupported to process `common` in this case, an exception should be thrown instead of the following block\n\t\tif (common) {\n\t\t\tconst hardfork =\n\t\t\t\ttypeof common.hardfork === 'function'\n\t\t\t\t\t? common.hardfork()\n\t\t\t\t\t: // eslint-disable-next-line @typescript-eslint/unbound-method\n\t\t\t\t\t (common.hardfork as unknown as string);\n\n\t\t\treturn Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: 'custom-chain',\n\t\t\t\t\tnetworkId: common.networkId\n\t\t\t\t\t\t? common.networkId()\n\t\t\t\t\t\t: BigInt((common as unknown as CommonType).customChain?.networkId) ??\n\t\t\t\t\t\t undefined,\n\t\t\t\t\tchainId: common.chainId\n\t\t\t\t\t\t? common.chainId()\n\t\t\t\t\t\t: BigInt((common as unknown as CommonType).customChain?.chainId) ??\n\t\t\t\t\t\t undefined,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbaseChain: this.DEFAULT_CHAIN,\n\t\t\t\t\thardfork: hardfork || this.DEFAULT_HARDFORK,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\n\t\treturn new Common({ chain: this.DEFAULT_CHAIN, hardfork: this.DEFAULT_HARDFORK });\n\t}\n\n\t/**\n\t * Validates that an object with BigInt values cannot exceed the specified bit limit.\n\t * @param values Object containing string keys and BigInt values\n\t * @param bits Number of bits to check (64 or 256)\n\t * @param cannotEqual Pass true if the number also cannot equal one less the maximum value\n\t */\n\tprotected _validateCannotExceedMaxInteger(\n\t\tvalues: { [key: string]: bigint | undefined },\n\t\tbits = 256,\n\t\tcannotEqual = false,\n\t) {\n\t\tfor (const [key, value] of Object.entries(values)) {\n\t\t\tswitch (bits) {\n\t\t\t\tcase 64:\n\t\t\t\t\tif (cannotEqual) {\n\t\t\t\t\t\tif (value !== undefined && value >= MAX_UINT64) {\n\t\t\t\t\t\t\tconst msg = this._errorMsg(\n\t\t\t\t\t\t\t\t`${key} cannot equal or exceed MAX_UINT64 (2^64-1), given ${value}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthrow new Error(msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value !== undefined && value > MAX_UINT64) {\n\t\t\t\t\t\tconst msg = this._errorMsg(\n\t\t\t\t\t\t\t`${key} cannot exceed MAX_UINT64 (2^64-1), given ${value}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthrow new Error(msg);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 256:\n\t\t\t\t\tif (cannotEqual) {\n\t\t\t\t\t\tif (value !== undefined && value >= MAX_INTEGER) {\n\t\t\t\t\t\t\tconst msg = this._errorMsg(\n\t\t\t\t\t\t\t\t`${key} cannot equal or exceed MAX_INTEGER (2^256-1), given ${value}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tthrow new Error(msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (value !== undefined && value > MAX_INTEGER) {\n\t\t\t\t\t\tconst msg = this._errorMsg(\n\t\t\t\t\t\t\t`${key} cannot exceed MAX_INTEGER (2^256-1), given ${value}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthrow new Error(msg);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: {\n\t\t\t\t\tconst msg = this._errorMsg('unimplemented bits value');\n\t\t\t\t\tthrow new Error(msg);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected static _validateNotArray(values: { [key: string]: any }) {\n\t\tconst txDataKeys = [\n\t\t\t'nonce',\n\t\t\t'gasPrice',\n\t\t\t'gasLimit',\n\t\t\t'to',\n\t\t\t'value',\n\t\t\t'data',\n\t\t\t'v',\n\t\t\t'r',\n\t\t\t's',\n\t\t\t'type',\n\t\t\t'baseFee',\n\t\t\t'maxFeePerGas',\n\t\t\t'chainId',\n\t\t];\n\t\tfor (const [key, value] of Object.entries(values)) {\n\t\t\tif (txDataKeys.includes(key)) {\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\tthrow new Error(`${key} cannot be an array`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Return a compact error string representation of the object\n\t */\n\tpublic abstract errorStr(): string;\n\n\t/**\n\t * Internal helper function to create an annotated error message\n\t *\n\t * @param msg Base error message\n\t * @hidden\n\t */\n\tprotected abstract _errorMsg(msg: string): string;\n\n\t/**\n\t * Returns the shared error postfix part for _error() method\n\t * tx type implementations.\n\t */\n\tprotected _getSharedErrorPostfix() {\n\t\tlet hash = '';\n\t\ttry {\n\t\t\thash = this.isSigned() ? bytesToHex(this.hash()) : 'not available (unsigned)';\n\t\t} catch (e: any) {\n\t\t\thash = 'error';\n\t\t}\n\t\tlet isSigned = '';\n\t\ttry {\n\t\t\tisSigned = this.isSigned().toString();\n\t\t} catch (e: any) {\n\t\t\thash = 'error';\n\t\t}\n\t\tlet hf = '';\n\t\ttry {\n\t\t\thf = this.common.hardfork();\n\t\t} catch (e: any) {\n\t\t\thf = 'error';\n\t\t}\n\n\t\tlet postfix = `tx type=${this.type} hash=${hash} nonce=${this.nonce} value=${this.value} `;\n\t\tpostfix += `signed=${isSigned} hf=${hf}`;\n\n\t\treturn postfix;\n\t}\n\t// eslint-disable-next-line class-methods-use-this\n\tprotected _ecsign(\n\t\tmsgHash: Uint8Array,\n\t\tprivateKey: Uint8Array,\n\t\tchainId?: bigint,\n\t): ECDSASignature {\n\t\tconst signature = secp256k1.sign(msgHash, privateKey);\n\t\tconst signatureBytes = signature.toCompactRawBytes();\n\n\t\tconst r = signatureBytes.subarray(0, 32);\n\t\tconst s = signatureBytes.subarray(32, 64);\n\n\t\tconst v =\n\t\t\tchainId === undefined\n\t\t\t\t? BigInt(signature.recovery! + 27)\n\t\t\t\t: BigInt(signature.recovery! + 35) + BigInt(chainId) * BigInt(2);\n\n\t\treturn { r, s, v };\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic static fromSerializedTx(\n\t\t// @ts-expect-error unused variable\n\t\tserialized: Uint8Array,\n\t\t// @ts-expect-error unused variable\n\t\topts: TxOptions = {},\n\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t): any {}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic static fromTxData(\n\t\t// @ts-expect-error unused variable\n\t\ttxData: any,\n\t\t// @ts-expect-error unused variable\n\t\topts: TxOptions = {},\n\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t): any {}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { validateNoLeadingZeroes } from 'web3-validator';\nimport { RLP } from '@ethereumjs/rlp';\nimport { bytesToHex, hexToBytes, uint8ArrayConcat, uint8ArrayEquals } from 'web3-utils';\nimport { MAX_INTEGER } from './constants.js';\nimport { BaseTransaction } from './baseTransaction.js';\nimport {\n\tgetAccessListData,\n\tgetAccessListJSON,\n\tgetDataFeeEIP2930,\n\tverifyAccessList,\n} from './utils.js';\nimport {\n\tbigIntToHex,\n\ttoUint8Array,\n\tecrecover,\n\tuint8ArrayToBigInt,\n\tbigIntToUnpaddedUint8Array,\n} from '../common/utils.js';\nimport type {\n\tAccessList,\n\tAccessListUint8Array,\n\tFeeMarketEIP1559TxData,\n\tFeeMarketEIP1559ValuesArray,\n\tJsonTx,\n\tTxOptions,\n} from './types.js';\nimport type { Common } from '../common/common.js';\n\nconst TRANSACTION_TYPE = 2;\nconst TRANSACTION_TYPE_UINT8ARRAY = hexToBytes(TRANSACTION_TYPE.toString(16).padStart(2, '0'));\n\n/**\n * Typed transaction with a new gas fee market mechanism\n *\n * - TransactionType: 2\n * - EIP: [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559)\n */\n// eslint-disable-next-line no-use-before-define\nexport class FeeMarketEIP1559Transaction extends BaseTransaction<FeeMarketEIP1559Transaction> {\n\tpublic readonly chainId: bigint;\n\tpublic readonly accessList: AccessListUint8Array;\n\tpublic readonly AccessListJSON: AccessList;\n\tpublic readonly maxPriorityFeePerGas: bigint;\n\tpublic readonly maxFeePerGas: bigint;\n\n\tpublic readonly common: Common;\n\n\t/**\n\t * The default HF if the tx type is active on that HF\n\t * or the first greater HF where the tx is active.\n\t *\n\t * @hidden\n\t */\n\tprotected DEFAULT_HARDFORK = 'london';\n\n\t/**\n\t * Instantiate a transaction from a data dictionary.\n\t *\n\t * Format: { chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n\t * accessList, v, r, s }\n\t *\n\t * Notes:\n\t * - `chainId` will be set automatically if not provided\n\t * - All parameters are optional and have some basic default values\n\t */\n\tpublic static fromTxData(txData: FeeMarketEIP1559TxData, opts: TxOptions = {}) {\n\t\treturn new FeeMarketEIP1559Transaction(txData, opts);\n\t}\n\n\t/**\n\t * Instantiate a transaction from the serialized tx.\n\t *\n\t * Format: `0x02 || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n\t * accessList, signatureYParity, signatureR, signatureS])`\n\t */\n\tpublic static fromSerializedTx(serialized: Uint8Array, opts: TxOptions = {}) {\n\t\tif (!uint8ArrayEquals(serialized.subarray(0, 1), TRANSACTION_TYPE_UINT8ARRAY)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid serialized tx input: not an EIP-1559 transaction (wrong tx type, expected: ${TRANSACTION_TYPE}, received: ${bytesToHex(\n\t\t\t\t\tserialized.subarray(0, 1),\n\t\t\t\t)}`,\n\t\t\t);\n\t\t}\n\t\tconst values = RLP.decode(serialized.subarray(1));\n\n\t\tif (!Array.isArray(values)) {\n\t\t\tthrow new Error('Invalid serialized tx input: must be array');\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\treturn FeeMarketEIP1559Transaction.fromValuesArray(values as any, opts);\n\t}\n\n\t/**\n\t * Create a transaction from a values array.\n\t *\n\t * Format: `[chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n\t * accessList, signatureYParity, signatureR, signatureS]`\n\t */\n\tpublic static fromValuesArray(values: FeeMarketEIP1559ValuesArray, opts: TxOptions = {}) {\n\t\tif (values.length !== 9 && values.length !== 12) {\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid EIP-1559 transaction. Only expecting 9 values (for unsigned tx) or 12 values (for signed tx).',\n\t\t\t);\n\t\t}\n\n\t\tconst [\n\t\t\tchainId,\n\t\t\tnonce,\n\t\t\tmaxPriorityFeePerGas,\n\t\t\tmaxFeePerGas,\n\t\t\tgasLimit,\n\t\t\tto,\n\t\t\tvalue,\n\t\t\tdata,\n\t\t\taccessList,\n\t\t\tv,\n\t\t\tr,\n\t\t\ts,\n\t\t] = values;\n\n\t\tthis._validateNotArray({ chainId, v });\n\t\tvalidateNoLeadingZeroes({\n\t\t\tnonce,\n\t\t\tmaxPriorityFeePerGas,\n\t\t\tmaxFeePerGas,\n\t\t\tgasLimit,\n\t\t\tvalue,\n\t\t\tv,\n\t\t\tr,\n\t\t\ts,\n\t\t});\n\n\t\treturn new FeeMarketEIP1559Transaction(\n\t\t\t{\n\t\t\t\tchainId: uint8ArrayToBigInt(chainId),\n\t\t\t\tnonce,\n\t\t\t\tmaxPriorityFeePerGas,\n\t\t\t\tmaxFeePerGas,\n\t\t\t\tgasLimit,\n\t\t\t\tto,\n\t\t\t\tvalue,\n\t\t\t\tdata,\n\t\t\t\taccessList: accessList ?? [],\n\t\t\t\tv: v !== undefined ? uint8ArrayToBigInt(v) : undefined, // EIP2930 supports v's with value 0 (empty Uint8Array)\n\t\t\t\tr,\n\t\t\t\ts,\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * This constructor takes the values, validates them, assigns them and freezes the object.\n\t *\n\t * It is not recommended to use this constructor directly. Instead use\n\t * the static factory methods to assist in creating a Transaction object from\n\t * varying data types.\n\t */\n\tpublic constructor(txData: FeeMarketEIP1559TxData, opts: TxOptions = {}) {\n\t\tsuper({ ...txData, type: TRANSACTION_TYPE }, opts);\n\t\tconst { chainId, accessList, maxFeePerGas, maxPriorityFeePerGas } = txData;\n\n\t\tthis.common = this._getCommon(opts.common, chainId);\n\t\tthis.chainId = this.common.chainId();\n\n\t\tif (!this.common.isActivatedEIP(1559)) {\n\t\t\tthrow new Error('EIP-1559 not enabled on Common');\n\t\t}\n\t\tthis.activeCapabilities = this.activeCapabilities.concat([1559, 2718, 2930]);\n\n\t\t// Populate the access list fields\n\t\tconst accessListData = getAccessListData(accessList ?? []);\n\t\tthis.accessList = accessListData.accessList;\n\t\tthis.AccessListJSON = accessListData.AccessListJSON;\n\t\t// Verify the access list format.\n\t\tverifyAccessList(this.accessList);\n\n\t\tthis.maxFeePerGas = uint8ArrayToBigInt(\n\t\t\ttoUint8Array(maxFeePerGas === '' ? '0x' : maxFeePerGas),\n\t\t);\n\t\tthis.maxPriorityFeePerGas = uint8ArrayToBigInt(\n\t\t\ttoUint8Array(maxPriorityFeePerGas === '' ? '0x' : maxPriorityFeePerGas),\n\t\t);\n\n\t\tthis._validateCannotExceedMaxInteger({\n\t\t\tmaxFeePerGas: this.maxFeePerGas,\n\t\t\tmaxPriorityFeePerGas: this.maxPriorityFeePerGas,\n\t\t});\n\n\t\tBaseTransaction._validateNotArray(txData);\n\n\t\tif (this.gasLimit * this.maxFeePerGas > MAX_INTEGER) {\n\t\t\tconst msg = this._errorMsg(\n\t\t\t\t'gasLimit * maxFeePerGas cannot exceed MAX_INTEGER (2^256-1)',\n\t\t\t);\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tif (this.maxFeePerGas < this.maxPriorityFeePerGas) {\n\t\t\tconst msg = this._errorMsg(\n\t\t\t\t'maxFeePerGas cannot be less than maxPriorityFeePerGas (The total must be the larger of the two)',\n\t\t\t);\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tthis._validateYParity();\n\t\tthis._validateHighS();\n\n\t\tconst freeze = opts?.freeze ?? true;\n\t\tif (freeze) {\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * The amount of gas paid for the data in this tx\n\t */\n\tpublic getDataFee(): bigint {\n\t\tif (this.cache.dataFee && this.cache.dataFee.hardfork === this.common.hardfork()) {\n\t\t\treturn this.cache.dataFee.value;\n\t\t}\n\n\t\tlet cost = super.getDataFee();\n\t\tcost += BigInt(getDataFeeEIP2930(this.accessList, this.common));\n\n\t\tif (Object.isFrozen(this)) {\n\t\t\tthis.cache.dataFee = {\n\t\t\t\tvalue: cost,\n\t\t\t\thardfork: this.common.hardfork(),\n\t\t\t};\n\t\t}\n\n\t\treturn cost;\n\t}\n\n\t/**\n\t * The up front amount that an account must have for this transaction to be valid\n\t * @param baseFee The base fee of the block (will be set to 0 if not provided)\n\t */\n\tpublic getUpfrontCost(baseFee = BigInt(0)): bigint {\n\t\tconst prio = this.maxPriorityFeePerGas;\n\t\tconst maxBase = this.maxFeePerGas - baseFee;\n\t\tconst inclusionFeePerGas = prio < maxBase ? prio : maxBase;\n\t\tconst gasPrice = inclusionFeePerGas + baseFee;\n\t\treturn this.gasLimit * gasPrice + this.value;\n\t}\n\n\t/**\n\t * Returns a Uint8Array Array of the raw Uint8Arrays of the EIP-1559 transaction, in order.\n\t *\n\t * Format: `[chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n\t * accessList, signatureYParity, signatureR, signatureS]`\n\t *\n\t * Use {@link FeeMarketEIP1559Transaction.serialize} to add a transaction to a block\n\t * with {@link Block.fromValuesArray}.\n\t *\n\t * For an unsigned tx this method uses the empty Uint8Array values for the\n\t * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n\t * representation for external signing use {@link FeeMarketEIP1559Transaction.getMessageToSign}.\n\t */\n\tpublic raw(): FeeMarketEIP1559ValuesArray {\n\t\treturn [\n\t\t\tbigIntToUnpaddedUint8Array(this.chainId),\n\t\t\tbigIntToUnpaddedUint8Array(this.nonce),\n\t\t\tbigIntToUnpaddedUint8Array(this.maxPriorityFeePerGas),\n\t\t\tbigIntToUnpaddedUint8Array(this.maxFeePerGas),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasLimit),\n\t\t\tthis.to !== undefined ? this.to.buf : Uint8Array.from([]),\n\t\t\tbigIntToUnpaddedUint8Array(this.value),\n\t\t\tthis.data,\n\t\t\tthis.accessList,\n\t\t\tthis.v !== undefined ? bigIntToUnpaddedUint8Array(this.v) : Uint8Array.from([]),\n\t\t\tthis.r !== undefined ? bigIntToUnpaddedUint8Array(this.r) : Uint8Array.from([]),\n\t\t\tthis.s !== undefined ? bigIntToUnpaddedUint8Array(this.s) : Uint8Array.from([]),\n\t\t];\n\t}\n\n\t/**\n\t * Returns the serialized encoding of the EIP-1559 transaction.\n\t *\n\t * Format: `0x02 || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n\t * accessList, signatureYParity, signatureR, signatureS])`\n\t *\n\t * Note that in contrast to the legacy tx serialization format this is not\n\t * valid RLP any more due to the raw tx type preceding and concatenated to\n\t * the RLP encoding of the values.\n\t */\n\tpublic serialize(): Uint8Array {\n\t\tconst base = this.raw();\n\t\treturn uint8ArrayConcat(TRANSACTION_TYPE_UINT8ARRAY, RLP.encode(base));\n\t}\n\n\t/**\n\t * Returns the serialized unsigned tx (hashed or raw), which can be used\n\t * to sign the transaction (e.g. for sending to a hardware wallet).\n\t *\n\t * Note: in contrast to the legacy tx the raw message format is already\n\t * serialized and doesn't need to be RLP encoded any more.\n\t *\n\t * ```javascript\n\t * const serializedMessage = tx.getMessageToSign(false) // use this for the HW wallet input\n\t * ```\n\t *\n\t * @param hashMessage - Return hashed message if set to true (default: true)\n\t */\n\tpublic getMessageToSign(hashMessage = true): Uint8Array {\n\t\tconst base = this.raw().slice(0, 9);\n\t\tconst message = uint8ArrayConcat(TRANSACTION_TYPE_UINT8ARRAY, RLP.encode(base));\n\t\tif (hashMessage) {\n\t\t\treturn keccak256(message);\n\t\t}\n\t\treturn message;\n\t}\n\n\t/**\n\t * Computes a sha3-256 hash of the serialized tx.\n\t *\n\t * This method can only be used for signed txs (it throws otherwise).\n\t * Use {@link FeeMarketEIP1559Transaction.getMessageToSign} to get a tx hash for the purpose of signing.\n\t */\n\tpublic hash(): Uint8Array {\n\t\tif (!this.isSigned()) {\n\t\t\tconst msg = this._errorMsg('Cannot call hash method if transaction is not signed');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tif (Object.isFrozen(this)) {\n\t\t\tif (!this.cache.hash) {\n\t\t\t\tthis.cache.hash = keccak256(this.serialize());\n\t\t\t}\n\t\t\treturn this.cache.hash;\n\t\t}\n\n\t\treturn keccak256(this.serialize());\n\t}\n\n\t/**\n\t * Computes a sha3-256 hash which can be used to verify the signature\n\t */\n\tpublic getMessageToVerifySignature(): Uint8Array {\n\t\treturn this.getMessageToSign();\n\t}\n\n\t/**\n\t * Returns the public key of the sender\n\t */\n\tpublic getSenderPublicKey(): Uint8Array {\n\t\tif (!this.isSigned()) {\n\t\t\tconst msg = this._errorMsg('Cannot call this method if transaction is not signed');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tconst msgHash = this.getMessageToVerifySignature();\n\t\tconst { v, r, s } = this;\n\n\t\tthis._validateHighS();\n\n\t\ttry {\n\t\t\treturn ecrecover(\n\t\t\t\tmsgHash,\n\t\t\t\tv! + BigInt(27), // Recover the 27 which was stripped from ecsign\n\t\t\t\tbigIntToUnpaddedUint8Array(r!),\n\t\t\t\tbigIntToUnpaddedUint8Array(s!),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconst msg = this._errorMsg('Invalid Signature');\n\t\t\tthrow new Error(msg);\n\t\t}\n\t}\n\n\tpublic _processSignature(v: bigint, r: Uint8Array, s: Uint8Array) {\n\t\tconst opts = { ...this.txOptions, common: this.common };\n\n\t\treturn FeeMarketEIP1559Transaction.fromTxData(\n\t\t\t{\n\t\t\t\tchainId: this.chainId,\n\t\t\t\tnonce: this.nonce,\n\t\t\t\tmaxPriorityFeePerGas: this.maxPriorityFeePerGas,\n\t\t\t\tmaxFeePerGas: this.maxFeePerGas,\n\t\t\t\tgasLimit: this.gasLimit,\n\t\t\t\tto: this.to,\n\t\t\t\tvalue: this.value,\n\t\t\t\tdata: this.data,\n\t\t\t\taccessList: this.accessList,\n\t\t\t\tv: v - BigInt(27), // This looks extremely hacky: /util actually adds 27 to the value, the recovery bit is either 0 or 1.\n\t\t\t\tr: uint8ArrayToBigInt(r),\n\t\t\t\ts: uint8ArrayToBigInt(s),\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * Returns an object with the JSON representation of the transaction\n\t */\n\tpublic toJSON(): JsonTx {\n\t\tconst accessListJSON = getAccessListJSON(this.accessList);\n\n\t\treturn {\n\t\t\tchainId: bigIntToHex(this.chainId),\n\t\t\tnonce: bigIntToHex(this.nonce),\n\t\t\tmaxPriorityFeePerGas: bigIntToHex(this.maxPriorityFeePerGas),\n\t\t\tmaxFeePerGas: bigIntToHex(this.maxFeePerGas),\n\t\t\tgasLimit: bigIntToHex(this.gasLimit),\n\t\t\tto: this.to !== undefined ? this.to.toString() : undefined,\n\t\t\tvalue: bigIntToHex(this.value),\n\t\t\tdata: bytesToHex(this.data),\n\t\t\taccessList: accessListJSON,\n\t\t\tv: this.v !== undefined ? bigIntToHex(this.v) : undefined,\n\t\t\tr: this.r !== undefined ? bigIntToHex(this.r) : undefined,\n\t\t\ts: this.s !== undefined ? bigIntToHex(this.s) : undefined,\n\t\t};\n\t}\n\n\t/**\n\t * Return a compact error string representation of the object\n\t */\n\tpublic errorStr() {\n\t\tlet errorStr = this._getSharedErrorPostfix();\n\t\terrorStr += ` maxFeePerGas=${this.maxFeePerGas} maxPriorityFeePerGas=${this.maxPriorityFeePerGas}`;\n\t\treturn errorStr;\n\t}\n\n\t/**\n\t * Internal helper function to create an annotated error message\n\t *\n\t * @param msg Base error message\n\t * @hidden\n\t */\n\tprotected _errorMsg(msg: string) {\n\t\treturn `${msg} (${this.errorStr()})`;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { validateNoLeadingZeroes } from 'web3-validator';\nimport { RLP } from '@ethereumjs/rlp';\nimport { bytesToHex, hexToBytes, uint8ArrayConcat, uint8ArrayEquals } from 'web3-utils';\nimport { MAX_INTEGER } from './constants.js';\nimport {\n\tgetAccessListData,\n\tverifyAccessList,\n\tgetAccessListJSON,\n\tgetDataFeeEIP2930,\n} from './utils.js';\nimport {\n\tbigIntToHex,\n\ttoUint8Array,\n\tecrecover,\n\tuint8ArrayToBigInt,\n\tbigIntToUnpaddedUint8Array,\n} from '../common/utils.js';\nimport { BaseTransaction } from './baseTransaction.js';\nimport type {\n\tAccessList,\n\tAccessListUint8Array,\n\tAccessListEIP2930TxData,\n\tAccessListEIP2930ValuesArray,\n\tJsonTx,\n\tTxOptions,\n} from './types.js';\nimport type { Common } from '../common/common.js';\n\nconst TRANSACTION_TYPE = 1;\nconst TRANSACTION_TYPE_UINT8ARRAY = hexToBytes(TRANSACTION_TYPE.toString(16).padStart(2, '0'));\n\n/**\n * Typed transaction with optional access lists\n *\n * - TransactionType: 1\n * - EIP: [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930)\n */\n// eslint-disable-next-line no-use-before-define\nexport class AccessListEIP2930Transaction extends BaseTransaction<AccessListEIP2930Transaction> {\n\tpublic readonly chainId: bigint;\n\tpublic readonly accessList: AccessListUint8Array;\n\tpublic readonly AccessListJSON: AccessList;\n\tpublic readonly gasPrice: bigint;\n\n\tpublic readonly common: Common;\n\n\t/**\n\t * The default HF if the tx type is active on that HF\n\t * or the first greater HF where the tx is active.\n\t *\n\t * @hidden\n\t */\n\tprotected DEFAULT_HARDFORK = 'berlin';\n\n\t/**\n\t * Instantiate a transaction from a data dictionary.\n\t *\n\t * Format: { chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n\t * v, r, s }\n\t *\n\t * Notes:\n\t * - `chainId` will be set automatically if not provided\n\t * - All parameters are optional and have some basic default values\n\t */\n\tpublic static fromTxData(txData: AccessListEIP2930TxData, opts: TxOptions = {}) {\n\t\treturn new AccessListEIP2930Transaction(txData, opts);\n\t}\n\n\t/**\n\t * Instantiate a transaction from the serialized tx.\n\t *\n\t * Format: `0x01 || rlp([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n\t * signatureYParity (v), signatureR (r), signatureS (s)])`\n\t */\n\tpublic static fromSerializedTx(serialized: Uint8Array, opts: TxOptions = {}) {\n\t\tif (!uint8ArrayEquals(serialized.subarray(0, 1), TRANSACTION_TYPE_UINT8ARRAY)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid serialized tx input: not an EIP-2930 transaction (wrong tx type, expected: ${TRANSACTION_TYPE}, received: ${bytesToHex(\n\t\t\t\t\tserialized.subarray(0, 1),\n\t\t\t\t)}`,\n\t\t\t);\n\t\t}\n\t\tconst values = RLP.decode(Uint8Array.from(serialized.subarray(1)));\n\n\t\tif (!Array.isArray(values)) {\n\t\t\tthrow new Error('Invalid serialized tx input: must be array');\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\treturn AccessListEIP2930Transaction.fromValuesArray(values as any, opts);\n\t}\n\n\t/**\n\t * Create a transaction from a values array.\n\t *\n\t * Format: `[chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n\t * signatureYParity (v), signatureR (r), signatureS (s)]`\n\t */\n\tpublic static fromValuesArray(values: AccessListEIP2930ValuesArray, opts: TxOptions = {}) {\n\t\tif (values.length !== 8 && values.length !== 11) {\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid EIP-2930 transaction. Only expecting 8 values (for unsigned tx) or 11 values (for signed tx).',\n\t\t\t);\n\t\t}\n\n\t\tconst [chainId, nonce, gasPrice, gasLimit, to, value, data, accessList, v, r, s] = values;\n\n\t\tthis._validateNotArray({ chainId, v });\n\t\tvalidateNoLeadingZeroes({ nonce, gasPrice, gasLimit, value, v, r, s });\n\n\t\tconst emptyAccessList: AccessList = [];\n\n\t\treturn new AccessListEIP2930Transaction(\n\t\t\t{\n\t\t\t\tchainId: uint8ArrayToBigInt(chainId),\n\t\t\t\tnonce,\n\t\t\t\tgasPrice,\n\t\t\t\tgasLimit,\n\t\t\t\tto,\n\t\t\t\tvalue,\n\t\t\t\tdata,\n\t\t\t\taccessList: accessList ?? emptyAccessList,\n\t\t\t\tv: v !== undefined ? uint8ArrayToBigInt(v) : undefined, // EIP2930 supports v's with value 0 (empty Uint8Array)\n\t\t\t\tr,\n\t\t\t\ts,\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * This constructor takes the values, validates them, assigns them and freezes the object.\n\t *\n\t * It is not recommended to use this constructor directly. Instead use\n\t * the static factory methods to assist in creating a Transaction object from\n\t * varying data types.\n\t */\n\tpublic constructor(txData: AccessListEIP2930TxData, opts: TxOptions = {}) {\n\t\tsuper({ ...txData, type: TRANSACTION_TYPE }, opts);\n\t\tconst { chainId, accessList, gasPrice } = txData;\n\n\t\tthis.common = this._getCommon(opts.common, chainId);\n\t\tthis.chainId = this.common.chainId();\n\n\t\t// EIP-2718 check is done in Common\n\t\tif (!this.common.isActivatedEIP(2930)) {\n\t\t\tthrow new Error('EIP-2930 not enabled on Common');\n\t\t}\n\t\tthis.activeCapabilities = this.activeCapabilities.concat([2718, 2930]);\n\n\t\t// Populate the access list fields\n\t\tconst accessListData = getAccessListData(accessList ?? []);\n\t\tthis.accessList = accessListData.accessList;\n\t\tthis.AccessListJSON = accessListData.AccessListJSON;\n\t\t// Verify the access list format.\n\t\tverifyAccessList(this.accessList);\n\n\t\tthis.gasPrice = uint8ArrayToBigInt(toUint8Array(gasPrice === '' ? '0x' : gasPrice));\n\n\t\tthis._validateCannotExceedMaxInteger({\n\t\t\tgasPrice: this.gasPrice,\n\t\t});\n\n\t\tBaseTransaction._validateNotArray(txData);\n\n\t\tif (this.gasPrice * this.gasLimit > MAX_INTEGER) {\n\t\t\tconst msg = this._errorMsg('gasLimit * gasPrice cannot exceed MAX_INTEGER');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tthis._validateYParity();\n\t\tthis._validateHighS();\n\n\t\tconst freeze = opts?.freeze ?? true;\n\t\tif (freeze) {\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * The amount of gas paid for the data in this tx\n\t */\n\tpublic getDataFee(): bigint {\n\t\tif (this.cache.dataFee && this.cache.dataFee.hardfork === this.common.hardfork()) {\n\t\t\treturn this.cache.dataFee.value;\n\t\t}\n\n\t\tlet cost = super.getDataFee();\n\t\tcost += BigInt(getDataFeeEIP2930(this.accessList, this.common));\n\n\t\tif (Object.isFrozen(this)) {\n\t\t\tthis.cache.dataFee = {\n\t\t\t\tvalue: cost,\n\t\t\t\thardfork: this.common.hardfork(),\n\t\t\t};\n\t\t}\n\n\t\treturn cost;\n\t}\n\n\t/**\n\t * The up front amount that an account must have for this transaction to be valid\n\t */\n\tpublic getUpfrontCost(): bigint {\n\t\treturn this.gasLimit * this.gasPrice + this.value;\n\t}\n\n\t/**\n\t * Returns a Uint8Array Array of the raw Uint8Arrays of the EIP-2930 transaction, in order.\n\t *\n\t * Format: `[chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n\t * signatureYParity (v), signatureR (r), signatureS (s)]`\n\t *\n\t * Use {@link AccessListEIP2930Transaction.serialize} to add a transaction to a block\n\t * with {@link Block.fromValuesArray}.\n\t *\n\t * For an unsigned tx this method uses the empty UINT8ARRAY values for the\n\t * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n\t * representation for external signing use {@link AccessListEIP2930Transaction.getMessageToSign}.\n\t */\n\tpublic raw(): AccessListEIP2930ValuesArray {\n\t\treturn [\n\t\t\tbigIntToUnpaddedUint8Array(this.chainId),\n\t\t\tbigIntToUnpaddedUint8Array(this.nonce),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasPrice),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasLimit),\n\t\t\tthis.to !== undefined ? this.to.buf : Uint8Array.from([]),\n\t\t\tbigIntToUnpaddedUint8Array(this.value),\n\t\t\tthis.data,\n\t\t\tthis.accessList,\n\t\t\tthis.v !== undefined ? bigIntToUnpaddedUint8Array(this.v) : Uint8Array.from([]),\n\t\t\tthis.r !== undefined ? bigIntToUnpaddedUint8Array(this.r) : Uint8Array.from([]),\n\t\t\tthis.s !== undefined ? bigIntToUnpaddedUint8Array(this.s) : Uint8Array.from([]),\n\t\t];\n\t}\n\n\t/**\n\t * Returns the serialized encoding of the EIP-2930 transaction.\n\t *\n\t * Format: `0x01 || rlp([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n\t * signatureYParity (v), signatureR (r), signatureS (s)])`\n\t *\n\t * Note that in contrast to the legacy tx serialization format this is not\n\t * valid RLP any more due to the raw tx type preceding and concatenated to\n\t * the RLP encoding of the values.\n\t */\n\tpublic serialize(): Uint8Array {\n\t\tconst base = this.raw();\n\t\treturn uint8ArrayConcat(TRANSACTION_TYPE_UINT8ARRAY, RLP.encode(base));\n\t}\n\n\t/**\n\t * Returns the serialized unsigned tx (hashed or raw), which can be used\n\t * to sign the transaction (e.g. for sending to a hardware wallet).\n\t *\n\t * Note: in contrast to the legacy tx the raw message format is already\n\t * serialized and doesn't need to be RLP encoded any more.\n\t *\n\t * ```javascript\n\t * const serializedMessage = tx.getMessageToSign(false) // use this for the HW wallet input\n\t * ```\n\t *\n\t * @param hashMessage - Return hashed message if set to true (default: true)\n\t */\n\tpublic getMessageToSign(hashMessage = true): Uint8Array {\n\t\tconst base = this.raw().slice(0, 8);\n\t\tconst message = uint8ArrayConcat(TRANSACTION_TYPE_UINT8ARRAY, RLP.encode(base));\n\t\tif (hashMessage) {\n\t\t\treturn keccak256(message);\n\t\t}\n\t\treturn message;\n\t}\n\n\t/**\n\t * Computes a sha3-256 hash of the serialized tx.\n\t *\n\t * This method can only be used for signed txs (it throws otherwise).\n\t * Use {@link AccessListEIP2930Transaction.getMessageToSign} to get a tx hash for the purpose of signing.\n\t */\n\tpublic hash(): Uint8Array {\n\t\tif (!this.isSigned()) {\n\t\t\tconst msg = this._errorMsg('Cannot call hash method if transaction is not signed');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tif (Object.isFrozen(this)) {\n\t\t\tif (!this.cache.hash) {\n\t\t\t\tthis.cache.hash = keccak256(this.serialize());\n\t\t\t}\n\t\t\treturn this.cache.hash;\n\t\t}\n\n\t\treturn keccak256(this.serialize());\n\t}\n\n\t/**\n\t * Computes a sha3-256 hash which can be used to verify the signature\n\t */\n\tpublic getMessageToVerifySignature(): Uint8Array {\n\t\treturn this.getMessageToSign();\n\t}\n\n\t/**\n\t * Returns the public key of the sender\n\t */\n\tpublic getSenderPublicKey(): Uint8Array {\n\t\tif (!this.isSigned()) {\n\t\t\tconst msg = this._errorMsg('Cannot call this method if transaction is not signed');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tconst msgHash = this.getMessageToVerifySignature();\n\t\tconst { v, r, s } = this;\n\n\t\tthis._validateHighS();\n\n\t\ttry {\n\t\t\treturn ecrecover(\n\t\t\t\tmsgHash,\n\t\t\t\tv! + BigInt(27), // Recover the 27 which was stripped from ecsign\n\t\t\t\tbigIntToUnpaddedUint8Array(r!),\n\t\t\t\tbigIntToUnpaddedUint8Array(s!),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconst msg = this._errorMsg('Invalid Signature');\n\t\t\tthrow new Error(msg);\n\t\t}\n\t}\n\n\tpublic _processSignature(v: bigint, r: Uint8Array, s: Uint8Array) {\n\t\tconst opts = { ...this.txOptions, common: this.common };\n\n\t\treturn AccessListEIP2930Transaction.fromTxData(\n\t\t\t{\n\t\t\t\tchainId: this.chainId,\n\t\t\t\tnonce: this.nonce,\n\t\t\t\tgasPrice: this.gasPrice,\n\t\t\t\tgasLimit: this.gasLimit,\n\t\t\t\tto: this.to,\n\t\t\t\tvalue: this.value,\n\t\t\t\tdata: this.data,\n\t\t\t\taccessList: this.accessList,\n\t\t\t\tv: v - BigInt(27), // This looks extremely hacky: /util actually adds 27 to the value, the recovery bit is either 0 or 1.\n\t\t\t\tr: uint8ArrayToBigInt(r),\n\t\t\t\ts: uint8ArrayToBigInt(s),\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * Returns an object with the JSON representation of the transaction\n\t */\n\tpublic toJSON(): JsonTx {\n\t\tconst accessListJSON = getAccessListJSON(this.accessList);\n\n\t\treturn {\n\t\t\tchainId: bigIntToHex(this.chainId),\n\t\t\tnonce: bigIntToHex(this.nonce),\n\t\t\tgasPrice: bigIntToHex(this.gasPrice),\n\t\t\tgasLimit: bigIntToHex(this.gasLimit),\n\t\t\tto: this.to !== undefined ? this.to.toString() : undefined,\n\t\t\tvalue: bigIntToHex(this.value),\n\t\t\tdata: bytesToHex(this.data),\n\t\t\taccessList: accessListJSON,\n\t\t\tv: this.v !== undefined ? bigIntToHex(this.v) : undefined,\n\t\t\tr: this.r !== undefined ? bigIntToHex(this.r) : undefined,\n\t\t\ts: this.s !== undefined ? bigIntToHex(this.s) : undefined,\n\t\t};\n\t}\n\n\t/**\n\t * Return a compact error string representation of the object\n\t */\n\tpublic errorStr() {\n\t\tlet errorStr = this._getSharedErrorPostfix();\n\t\t// Keep ? for this.accessList since this otherwise causes Hardhat E2E tests to fail\n\t\terrorStr += ` gasPrice=${this.gasPrice} accessListCount=${this.accessList?.length ?? 0}`;\n\t\treturn errorStr;\n\t}\n\n\t/**\n\t * Internal helper function to create an annotated error message\n\t *\n\t * @param msg Base error message\n\t * @hidden\n\t */\n\tprotected _errorMsg(msg: string) {\n\t\treturn `${msg} (${this.errorStr()})`;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { RLP } from '@ethereumjs/rlp';\nimport { keccak256 } from 'ethereum-cryptography/keccak.js';\nimport { bytesToHex } from 'web3-utils';\nimport { validateNoLeadingZeroes } from 'web3-validator';\nimport {\n\tbigIntToHex,\n\tbigIntToUnpaddedUint8Array,\n\tecrecover,\n\ttoUint8Array,\n\tuint8ArrayToBigInt,\n\tunpadUint8Array,\n} from '../common/utils.js';\nimport { MAX_INTEGER } from './constants.js';\n\nimport { BaseTransaction } from './baseTransaction.js';\n\nimport type { Common } from '../common/common.js';\nimport type { JsonTx, TxData, TxOptions, TxValuesArray } from './types.js';\nimport { Capability } from './types.js';\n\nconst TRANSACTION_TYPE = 0;\n\nfunction meetsEIP155(_v: bigint, chainId: bigint) {\n\tconst v = Number(_v);\n\tconst chainIdDoubled = Number(chainId) * 2;\n\treturn v === chainIdDoubled + 35 || v === chainIdDoubled + 36;\n}\n\n/**\n * An Ethereum non-typed (legacy) transaction\n */\n// eslint-disable-next-line no-use-before-define\nexport class Transaction extends BaseTransaction<Transaction> {\n\tpublic readonly gasPrice: bigint;\n\n\tpublic readonly common: Common;\n\n\t/**\n\t * Instantiate a transaction from a data dictionary.\n\t *\n\t * Format: { nonce, gasPrice, gasLimit, to, value, data, v, r, s }\n\t *\n\t * Notes:\n\t * - All parameters are optional and have some basic default values\n\t */\n\tpublic static fromTxData(txData: TxData, opts: TxOptions = {}) {\n\t\treturn new Transaction(txData, opts);\n\t}\n\n\t/**\n\t * Instantiate a transaction from the serialized tx.\n\t *\n\t * Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])`\n\t */\n\tpublic static fromSerializedTx(serialized: Uint8Array, opts: TxOptions = {}) {\n\t\tconst values = RLP.decode(serialized);\n\n\t\tif (!Array.isArray(values)) {\n\t\t\tthrow new Error('Invalid serialized tx input. Must be array');\n\t\t}\n\n\t\treturn this.fromValuesArray(values as Uint8Array[], opts);\n\t}\n\n\t/**\n\t * Create a transaction from a values array.\n\t *\n\t * Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]`\n\t */\n\tpublic static fromValuesArray(values: TxValuesArray, opts: TxOptions = {}) {\n\t\t// If length is not 6, it has length 9. If v/r/s are empty Uint8Array, it is still an unsigned transaction\n\t\t// This happens if you get the RLP data from `raw()`\n\t\tif (values.length !== 6 && values.length !== 9) {\n\t\t\tthrow new Error(\n\t\t\t\t'Invalid transaction. Only expecting 6 values (for unsigned tx) or 9 values (for signed tx).',\n\t\t\t);\n\t\t}\n\n\t\tconst [nonce, gasPrice, gasLimit, to, value, data, v, r, s] = values;\n\n\t\tvalidateNoLeadingZeroes({ nonce, gasPrice, gasLimit, value, v, r, s });\n\n\t\treturn new Transaction(\n\t\t\t{\n\t\t\t\tnonce,\n\t\t\t\tgasPrice,\n\t\t\t\tgasLimit,\n\t\t\t\tto,\n\t\t\t\tvalue,\n\t\t\t\tdata,\n\t\t\t\tv,\n\t\t\t\tr,\n\t\t\t\ts,\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * This constructor takes the values, validates them, assigns them and freezes the object.\n\t *\n\t * It is not recommended to use this constructor directly. Instead use\n\t * the static factory methods to assist in creating a Transaction object from\n\t * varying data types.\n\t */\n\tpublic constructor(txData: TxData, opts: TxOptions = {}) {\n\t\tsuper({ ...txData, type: TRANSACTION_TYPE }, opts);\n\n\t\tthis.common = this._validateTxV(this.v, opts.common);\n\n\t\tthis.gasPrice = uint8ArrayToBigInt(\n\t\t\ttoUint8Array(txData.gasPrice === '' ? '0x' : txData.gasPrice),\n\t\t);\n\n\t\tif (this.gasPrice * this.gasLimit > MAX_INTEGER) {\n\t\t\tconst msg = this._errorMsg('gas limit * gasPrice cannot exceed MAX_INTEGER (2^256-1)');\n\t\t\tthrow new Error(msg);\n\t\t}\n\t\tthis._validateCannotExceedMaxInteger({ gasPrice: this.gasPrice });\n\t\tBaseTransaction._validateNotArray(txData);\n\n\t\tif (this.common.gteHardfork('spuriousDragon')) {\n\t\t\tif (!this.isSigned()) {\n\t\t\t\tthis.activeCapabilities.push(Capability.EIP155ReplayProtection);\n\t\t\t} else {\n\t\t\t\t// EIP155 spec:\n\t\t\t\t// If block.number >= 2,675,000 and v = CHAIN_ID * 2 + 35 or v = CHAIN_ID * 2 + 36\n\t\t\t\t// then when computing the hash of a transaction for purposes of signing or recovering\n\t\t\t\t// instead of hashing only the first six elements (i.e. nonce, gasprice, startgas, to, value, data)\n\t\t\t\t// hash nine elements, with v replaced by CHAIN_ID, r = 0 and s = 0.\n\t\t\t\t// v and chain ID meet EIP-155 conditions\n\t\t\t\t// eslint-disable-next-line no-lonely-if\n\t\t\t\tif (meetsEIP155(this.v!, this.common.chainId())) {\n\t\t\t\t\tthis.activeCapabilities.push(Capability.EIP155ReplayProtection);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst freeze = opts?.freeze ?? true;\n\t\tif (freeze) {\n\t\t\tObject.freeze(this);\n\t\t}\n\t}\n\n\t/**\n\t * Returns a Uint8Array Array of the raw Uint8Arrays of the legacy transaction, in order.\n\t *\n\t * Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]`\n\t *\n\t * For legacy txs this is also the correct format to add transactions\n\t * to a block with {@link Block.fromValuesArray} (use the `serialize()` method\n\t * for typed txs).\n\t *\n\t * For an unsigned tx this method returns the empty Uint8Array values\n\t * for the signature parameters `v`, `r` and `s`. For an EIP-155 compliant\n\t * representation have a look at {@link Transaction.getMessageToSign}.\n\t */\n\tpublic raw(): TxValuesArray {\n\t\treturn [\n\t\t\tbigIntToUnpaddedUint8Array(this.nonce),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasPrice),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasLimit),\n\t\t\tthis.to !== undefined ? this.to.buf : Uint8Array.from([]),\n\t\t\tbigIntToUnpaddedUint8Array(this.value),\n\t\t\tthis.data,\n\t\t\tthis.v !== undefined ? bigIntToUnpaddedUint8Array(this.v) : Uint8Array.from([]),\n\t\t\tthis.r !== undefined ? bigIntToUnpaddedUint8Array(this.r) : Uint8Array.from([]),\n\t\t\tthis.s !== undefined ? bigIntToUnpaddedUint8Array(this.s) : Uint8Array.from([]),\n\t\t];\n\t}\n\n\t/**\n\t * Returns the serialized encoding of the legacy transaction.\n\t *\n\t * Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])`\n\t *\n\t * For an unsigned tx this method uses the empty Uint8Array values for the\n\t * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n\t * representation for external signing use {@link Transaction.getMessageToSign}.\n\t */\n\tpublic serialize(): Uint8Array {\n\t\treturn RLP.encode(this.raw());\n\t}\n\n\tprivate _getMessageToSign() {\n\t\tconst values = [\n\t\t\tbigIntToUnpaddedUint8Array(this.nonce),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasPrice),\n\t\t\tbigIntToUnpaddedUint8Array(this.gasLimit),\n\t\t\tthis.to !== undefined ? this.to.buf : Uint8Array.from([]),\n\t\t\tbigIntToUnpaddedUint8Array(this.value),\n\t\t\tthis.data,\n\t\t];\n\n\t\tif (this.supports(Capability.EIP155ReplayProtection)) {\n\t\t\tvalues.push(toUint8Array(this.common.chainId()));\n\t\t\tvalues.push(unpadUint8Array(toUint8Array(0)));\n\t\t\tvalues.push(unpadUint8Array(toUint8Array(0)));\n\t\t}\n\n\t\treturn values;\n\t}\n\n\t/**\n\t * Returns the unsigned tx (hashed or raw), which can be used\n\t * to sign the transaction (e.g. for sending to a hardware wallet).\n\t *\n\t * Note: the raw message message format for the legacy tx is not RLP encoded\n\t * and you might need to do yourself with:\n\t *\n\t * ```javascript\n\t * import { bufArrToArr } from '../util'\n\t * import { RLP } from '../rlp'\n\t * const message = tx.getMessageToSign(false)\n\t * const serializedMessage = RLP.encode(message) // use this for the HW wallet input\n\t * ```\n\t *\n\t * @param hashMessage - Return hashed message if set to true (default: true)\n\t */\n\tpublic getMessageToSign(hashMessage: false): Uint8Array[];\n\tpublic getMessageToSign(hashMessage?: true): Uint8Array;\n\tpublic getMessageToSign(hashMessage = true) {\n\t\tconst message = this._getMessageToSign();\n\t\tif (hashMessage) {\n\t\t\treturn keccak256(RLP.encode(message));\n\t\t}\n\t\treturn message;\n\t}\n\n\t/**\n\t * The amount of gas paid for the data in this tx\n\t */\n\tpublic getDataFee(): bigint {\n\t\tif (this.cache.dataFee && this.cache.dataFee.hardfork === this.common.hardfork()) {\n\t\t\treturn this.cache.dataFee.value;\n\t\t}\n\n\t\tif (Object.isFrozen(this)) {\n\t\t\tthis.cache.dataFee = {\n\t\t\t\tvalue: super.getDataFee(),\n\t\t\t\thardfork: this.common.hardfork(),\n\t\t\t};\n\t\t}\n\n\t\treturn super.getDataFee();\n\t}\n\n\t/**\n\t * The up front amount that an account must have for this transaction to be valid\n\t */\n\tpublic getUpfrontCost(): bigint {\n\t\treturn this.gasLimit * this.gasPrice + this.value;\n\t}\n\n\t/**\n\t * Computes a sha3-256 hash of the serialized tx.\n\t *\n\t * This method can only be used for signed txs (it throws otherwise).\n\t * Use {@link Transaction.getMessageToSign} to get a tx hash for the purpose of signing.\n\t */\n\tpublic hash(): Uint8Array {\n\t\tif (!this.isSigned()) {\n\t\t\tconst msg = this._errorMsg('Cannot call hash method if transaction is not signed');\n\t\t\tthrow new Error(msg);\n\t\t}\n\n\t\tif (Object.isFrozen(this)) {\n\t\t\tif (!this.cache.hash) {\n\t\t\t\tthis.cache.hash = keccak256(RLP.encode(this.raw()));\n\t\t\t}\n\t\t\treturn this.cache.hash;\n\t\t}\n\n\t\treturn keccak256(RLP.encode(this.raw()));\n\t}\n\n\t/**\n\t * Computes a sha3-256 hash which can be used to verify the signature\n\t */\n\tpublic getMessageToVerifySignature() {\n\t\tif (!this.isSigned()) {\n\t\t\tconst msg = this._errorMsg('This transaction is not signed');\n\t\t\tthrow new Error(msg);\n\t\t}\n\t\tconst message = this._getMessageToSign();\n\t\treturn keccak256(RLP.encode(message));\n\t}\n\n\t/**\n\t * Returns the public key of the sender\n\t */\n\tpublic getSenderPublicKey(): Uint8Array {\n\t\tconst msgHash = this.getMessageToVerifySignature();\n\n\t\tconst { v, r, s } = this;\n\n\t\tthis._validateHighS();\n\n\t\ttry {\n\t\t\treturn ecrecover(\n\t\t\t\tmsgHash,\n\t\t\t\tv!,\n\t\t\t\tbigIntToUnpaddedUint8Array(r!),\n\t\t\t\tbigIntToUnpaddedUint8Array(s!),\n\t\t\t\tthis.supports(Capability.EIP155ReplayProtection)\n\t\t\t\t\t? this.common.chainId()\n\t\t\t\t\t: undefined,\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconst msg = this._errorMsg('Invalid Signature');\n\t\t\tthrow new Error(msg);\n\t\t}\n\t}\n\n\t/**\n\t * Process the v, r, s values from the `sign` method of the base transaction.\n\t */\n\tprotected _processSignature(_v: bigint, r: Uint8Array, s: Uint8Array) {\n\t\tlet v = _v;\n\t\tif (this.supports(Capability.EIP155ReplayProtection)) {\n\t\t\tv += this.common.chainId() * BigInt(2) + BigInt(8);\n\t\t}\n\n\t\tconst opts = { ...this.txOptions, common: this.common };\n\n\t\treturn Transaction.fromTxData(\n\t\t\t{\n\t\t\t\tnonce: this.nonce,\n\t\t\t\tgasPrice: this.gasPrice,\n\t\t\t\tgasLimit: this.gasLimit,\n\t\t\t\tto: this.to,\n\t\t\t\tvalue: this.value,\n\t\t\t\tdata: this.data,\n\t\t\t\tv,\n\t\t\t\tr: uint8ArrayToBigInt(r),\n\t\t\t\ts: uint8ArrayToBigInt(s),\n\t\t\t},\n\t\t\topts,\n\t\t);\n\t}\n\n\t/**\n\t * Returns an object with the JSON representation of the transaction.\n\t */\n\tpublic toJSON(): JsonTx {\n\t\treturn {\n\t\t\tnonce: bigIntToHex(this.nonce),\n\t\t\tgasPrice: bigIntToHex(this.gasPrice),\n\t\t\tgasLimit: bigIntToHex(this.gasLimit),\n\t\t\tto: this.to !== undefined ? this.to.toString() : undefined,\n\t\t\tvalue: bigIntToHex(this.value),\n\t\t\tdata: bytesToHex(this.data),\n\t\t\tv: this.v !== undefined ? bigIntToHex(this.v) : undefined,\n\t\t\tr: this.r !== undefined ? bigIntToHex(this.r) : undefined,\n\t\t\ts: this.s !== undefined ? bigIntToHex(this.s) : undefined,\n\t\t};\n\t}\n\n\t/**\n\t * Validates tx's `v` value\n\t */\n\tprivate _validateTxV(_v?: bigint, common?: Common): Common {\n\t\tlet chainIdBigInt;\n\t\tconst v = _v !== undefined ? Number(_v) : undefined;\n\t\t// Check for valid v values in the scope of a signed legacy tx\n\t\tif (v !== undefined) {\n\t\t\t// v is 1. not matching the EIP-155 chainId included case and...\n\t\t\t// v is 2. not matching the classic v=27 or v=28 case\n\t\t\tif (v < 37 && v !== 27 && v !== 28) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Legacy txs need either v = 27/28 or v >= 37 (EIP-155 replay protection), got v = ${v}`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// No unsigned tx and EIP-155 activated and chain ID included\n\t\tif (\n\t\t\tv !== undefined &&\n\t\t\tv !== 0 &&\n\t\t\t(!common || common.gteHardfork('spuriousDragon')) &&\n\t\t\tv !== 27 &&\n\t\t\tv !== 28\n\t\t) {\n\t\t\tif (common) {\n\t\t\t\tif (!meetsEIP155(BigInt(v), common.chainId())) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Incompatible EIP155-based V ${v} and chain id ${common.chainId()}. See the Common parameter of the Transaction constructor to set the chain id.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Derive the original chain ID\n\t\t\t\tlet numSub;\n\t\t\t\tif ((v - 35) % 2 === 0) {\n\t\t\t\t\tnumSub = 35;\n\t\t\t\t} else {\n\t\t\t\t\tnumSub = 36;\n\t\t\t\t}\n\t\t\t\t// Use derived chain ID to create a proper Common\n\t\t\t\tchainIdBigInt = BigInt(v - numSub) / BigInt(2);\n\t\t\t}\n\t\t}\n\t\treturn this._getCommon(common, chainIdBigInt);\n\t}\n\n\t/**\n\t * Return a compact error string representation of the object\n\t */\n\tpublic errorStr() {\n\t\tlet errorStr = this._getSharedErrorPostfix();\n\t\terrorStr += ` gasPrice=${this.gasPrice}`;\n\t\treturn errorStr;\n\t}\n\n\t/**\n\t * Internal helper function to create an annotated error message\n\t *\n\t * @param msg Base error message\n\t * @hidden\n\t */\n\tprotected _errorMsg(msg: string) {\n\t\treturn `${msg} (${this.errorStr()})`;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Numbers } from 'web3-types';\nimport { isUint8Array } from 'web3-utils';\nimport { toUint8Array, uint8ArrayToBigInt } from '../common/utils.js';\nimport { FeeMarketEIP1559Transaction } from './eip1559Transaction.js';\nimport { AccessListEIP2930Transaction } from './eip2930Transaction.js';\nimport { Transaction } from './legacyTransaction.js';\nimport type { TypedTransaction } from '../types.js';\n\nimport type {\n\tAccessListEIP2930TxData,\n\tFeeMarketEIP1559TxData,\n\tTxData,\n\tTxOptions,\n} from './types.js';\nimport { BaseTransaction } from './baseTransaction.js';\n\nconst extraTxTypes: Map<Numbers, typeof BaseTransaction<unknown>> = new Map();\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport class TransactionFactory {\n\t// It is not possible to instantiate a TransactionFactory object.\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function, no-useless-constructor\n\tprivate constructor() {}\n\n\tpublic static typeToInt(txType: Numbers) {\n\t\treturn Number(uint8ArrayToBigInt(toUint8Array(txType)));\n\t}\n\n\tpublic static registerTransactionType<NewTxTypeClass extends typeof BaseTransaction<unknown>>(\n\t\ttype: Numbers,\n\t\ttxClass: NewTxTypeClass,\n\t) {\n\t\tconst txType = TransactionFactory.typeToInt(type);\n\t\textraTxTypes.set(txType, txClass);\n\t}\n\n\t/**\n\t * Create a transaction from a `txData` object\n\t *\n\t * @param txData - The transaction data. The `type` field will determine which transaction type is returned (if undefined, creates a legacy transaction)\n\t * @param txOptions - Options to pass on to the constructor of the transaction\n\t */\n\tpublic static fromTxData(\n\t\ttxData: TxData | TypedTransaction,\n\t\ttxOptions: TxOptions = {},\n\t): TypedTransaction {\n\t\tif (!('type' in txData) || txData.type === undefined) {\n\t\t\t// Assume legacy transaction\n\t\t\treturn Transaction.fromTxData(txData as TxData, txOptions);\n\t\t}\n\t\tconst txType = TransactionFactory.typeToInt(txData.type);\n\t\tif (txType === 0) {\n\t\t\treturn Transaction.fromTxData(txData as TxData, txOptions);\n\t\t}\n\t\tif (txType === 1) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\treturn AccessListEIP2930Transaction.fromTxData(\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t<AccessListEIP2930TxData>txData,\n\t\t\t\ttxOptions,\n\t\t\t);\n\t\t}\n\t\tif (txType === 2) {\n\t\t\treturn FeeMarketEIP1559Transaction.fromTxData(\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t<FeeMarketEIP1559TxData>txData,\n\t\t\t\ttxOptions,\n\t\t\t);\n\t\t}\n\t\tconst ExtraTransaction = extraTxTypes.get(txType);\n\t\tif (ExtraTransaction?.fromTxData) {\n\t\t\treturn ExtraTransaction.fromTxData(txData, txOptions) as TypedTransaction;\n\t\t}\n\n\t\tthrow new Error(`Tx instantiation with type ${txType} not supported`);\n\t}\n\n\t/**\n\t * This method tries to decode serialized data.\n\t *\n\t * @param data - The data Uint8Array\n\t * @param txOptions - The transaction options\n\t */\n\tpublic static fromSerializedData(\n\t\tdata: Uint8Array,\n\t\ttxOptions: TxOptions = {},\n\t): TypedTransaction {\n\t\tif (data[0] <= 0x7f) {\n\t\t\t// Determine the type.\n\t\t\tswitch (data[0]) {\n\t\t\t\tcase 1:\n\t\t\t\t\treturn AccessListEIP2930Transaction.fromSerializedTx(data, txOptions);\n\t\t\t\tcase 2:\n\t\t\t\t\treturn FeeMarketEIP1559Transaction.fromSerializedTx(data, txOptions);\n\t\t\t\tdefault: {\n\t\t\t\t\tconst ExtraTransaction = extraTxTypes.get(Number(data[0]));\n\t\t\t\t\tif (ExtraTransaction?.fromSerializedTx) {\n\t\t\t\t\t\treturn ExtraTransaction.fromSerializedTx(\n\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\ttxOptions,\n\t\t\t\t\t\t) as TypedTransaction;\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(`TypedTransaction with ID ${data[0]} unknown`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn Transaction.fromSerializedTx(data, txOptions);\n\t\t}\n\t}\n\n\t/**\n\t * When decoding a BlockBody, in the transactions field, a field is either:\n\t * A Uint8Array (a TypedTransaction - encoded as TransactionType || rlp(TransactionPayload))\n\t * A Uint8Array[] (Legacy Transaction)\n\t * This method returns the right transaction.\n\t *\n\t * @param data - A Uint8Array or Uint8Array[]\n\t * @param txOptions - The transaction options\n\t */\n\tpublic static fromBlockBodyData(data: Uint8Array | Uint8Array[], txOptions: TxOptions = {}) {\n\t\tif (isUint8Array(data)) {\n\t\t\treturn this.fromSerializedData(data, txOptions);\n\t\t}\n\t\tif (Array.isArray(data)) {\n\t\t\t// It is a legacy transaction\n\t\t\treturn Transaction.fromValuesArray(data, txOptions);\n\t\t}\n\t\tthrow new Error('Cannot decode transaction: unknown type input');\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * The web3 accounts package contains functions to generate Ethereum accounts and sign transactions & data.\n *\n * For using accounts functions, first install Web3 package using `npm i web3` or `yarn add web3` based on your package manager usage.\n * After that, Accounts functions will be available as mentioned in following snippet.\n * ```ts\n * import {Web3} from 'web3';\n *\n * const web3 = new Web3();\n * const account = web3.eth.accounts.create();\n * const result = web3.eth.accounts.hashMessage(\"Test Message\");\n *\n * ```\n *\n * For using individual package install `web3-eth-accounts` package using `npm i web3-eth-accounts` or `yarn add web3-eth-accounts` and only import required functions.\n * This is more efficient approach for building lightweight applications.\n * ```ts\n * import {create,hashMessage} from 'web3-eth-accounts';\n *\n * const account = create();\n * const result = hashMessage(\"Test Message\");\n *\n * ```\n * @module Accounts\n *\n */\n\nimport {\n\tdecrypt as createDecipheriv,\n\tencrypt as createCipheriv,\n} from 'ethereum-cryptography/aes.js';\nimport { pbkdf2Sync } from 'ethereum-cryptography/pbkdf2.js';\nimport { scryptSync } from 'ethereum-cryptography/scrypt.js';\nimport {\n\tInvalidKdfError,\n\tInvalidPasswordError,\n\tInvalidPrivateKeyError,\n\tInvalidSignatureError,\n\tIVLengthError,\n\tKeyDerivationError,\n\tKeyStoreVersionError,\n\tPBKDF2IterationsError,\n\tPrivateKeyLengthError,\n\tTransactionSigningError,\n\tUndefinedRawTransactionError,\n} from 'web3-errors';\nimport {\n\tAddress,\n\tBytes,\n\tCipherOptions,\n\tHexString,\n\tKeyStore,\n\tPBKDF2SHA256Params,\n\tScryptParams,\n\tTransaction,\n} from 'web3-types';\nimport {\n\tbytesToUint8Array,\n\tbytesToHex,\n\tfromUtf8,\n\thexToBytes,\n\tisUint8Array,\n\tnumberToHex,\n\trandomBytes,\n\tsha3Raw,\n\ttoChecksumAddress,\n\tuint8ArrayConcat,\n\tutf8ToHex,\n\tuuidV4,\n} from 'web3-utils';\n\nimport { isHexStrict, isNullish, isString, validator } from 'web3-validator';\nimport { secp256k1 } from './tx/constants.js';\nimport { keyStoreSchema } from './schemas.js';\nimport { TransactionFactory } from './tx/transactionFactory.js';\nimport type {\n\tSignatureObject,\n\tSignTransactionResult,\n\tTypedTransaction,\n\tWeb3Account,\n\tSignResult,\n} from './types.js';\n\n/**\n * Get the private key Uint8Array after the validation.\n * Note: This function is not exported through main web3 package, so for using it directly import from accounts package.\n * @param data - Private key\n * @param ignoreLength - Optional, ignore length check during validation\n * @returns The Uint8Array private key\n *\n * ```ts\n * parseAndValidatePrivateKey(\"0x08c673022000ece7964ea4db2d9369c50442b2869cbd8fc21baaca59e18f642c\")\n *\n * > Uint8Array(32) [\n * 186, 26, 143, 168, 235, 179, 90, 75,\n * 101, 63, 84, 221, 152, 150, 30, 203,\n * 8, 113, 94, 226, 53, 213, 216, 5,\n * 194, 159, 17, 53, 219, 97, 121, 248\n * ]\n *\n * ```\n */\nexport const parseAndValidatePrivateKey = (data: Bytes, ignoreLength?: boolean): Uint8Array => {\n\tlet privateKeyUint8Array: Uint8Array;\n\n\t// To avoid the case of 1 character less in a hex string which is prefixed with '0' by using 'bytesToUint8Array'\n\tif (!ignoreLength && typeof data === 'string' && isHexStrict(data) && data.length !== 66) {\n\t\tthrow new PrivateKeyLengthError();\n\t}\n\n\ttry {\n\t\tprivateKeyUint8Array = isUint8Array(data) ? data : bytesToUint8Array(data);\n\t} catch {\n\t\tthrow new InvalidPrivateKeyError();\n\t}\n\n\tif (!ignoreLength && privateKeyUint8Array.byteLength !== 32) {\n\t\tthrow new PrivateKeyLengthError();\n\t}\n\n\treturn privateKeyUint8Array;\n};\n\n/**\n *\n * Hashes the given message. The data will be `UTF-8 HEX` decoded and enveloped as follows:\n * `\"\\x19Ethereum Signed Message:\\n\" + message.length + message` and hashed using keccak256.\n *\n * @param message - A message to hash, if its HEX it will be UTF8 decoded.\n * @returns The hashed message\n *\n * ```ts\n * web3.eth.accounts.hashMessage(\"Hello world\")\n *\n * > \"0x8144a6fa26be252b86456491fbcd43c1de7e022241845ffea1c3df066f7cfede\"\n *\n * web3.eth.accounts.hashMessage(web3.utils.utf8ToHex(\"Hello world\")) // Will be hex decoded in hashMessage\n *\n * > \"0x8144a6fa26be252b86456491fbcd43c1de7e022241845ffea1c3df066f7cfede\"\n * ```\n */\nexport const hashMessage = (message: string): string => {\n\tconst messageHex = isHexStrict(message) ? message : utf8ToHex(message);\n\n\tconst messageBytes = hexToBytes(messageHex);\n\n\tconst preamble = hexToBytes(\n\t\tfromUtf8(`\\x19Ethereum Signed Message:\\n${messageBytes.byteLength}`),\n\t);\n\n\tconst ethMessage = uint8ArrayConcat(preamble, messageBytes);\n\n\treturn sha3Raw(ethMessage); // using keccak in web3-utils.sha3Raw instead of SHA3 (NIST Standard) as both are different\n};\n\n/**\n * Takes a hash of a message and a private key, signs the message using the SECP256k1 elliptic curve algorithm, and returns the signature components.\n * @param hash - The hash of the message to be signed, represented as a hexadecimal string. \n * @param privateKey - The private key used to sign the message, represented as a byte array.\n * @returns - The signature Object containing the message, messageHash, signature r, s, v\n */\nexport const signMessageWithPrivateKey = (hash: HexString, privateKey: Bytes): SignResult => {\n\tconst privateKeyUint8Array = parseAndValidatePrivateKey(privateKey);\n\n\tconst signature = secp256k1.sign(hash.substring(2), privateKeyUint8Array);\n\tconst signatureBytes = signature.toCompactRawBytes();\n\tconst r = signature.r.toString(16).padStart(64, '0');\n\tconst s = signature.s.toString(16).padStart(64, '0');\n\tconst v = signature.recovery! + 27;\n\n\treturn {\n\t\tmessageHash: hash,\n\t\tv: numberToHex(v),\n\t\tr: `0x${r}`,\n\t\ts: `0x${s}`,\n\t\tsignature: `${bytesToHex(signatureBytes)}${v.toString(16)}`,\n\t};\n};\n/**\n * Signs arbitrary data with a given private key.\n * :::info\n * The value passed as the data parameter will be UTF-8 HEX decoded and wrapped as follows: \"\\\\x19Ethereum Signed Message:\\\\n\" + message.length + message\n * :::\n\n * @param data - The data to sign\n * @param privateKey - The 32 byte private key to sign with\n * @returns The signature Object containing the message, messageHash, signature r, s, v\n *\n * ```ts\n * web3.eth.accounts.sign('Some data', '0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318')\n * > {\n * message: 'Some data',\n * messageHash: '0x1da44b586eb0729ff70a73c326926f6ed5a25f5b056e7f47fbc6e58d86871655',\n * v: '0x1c',\n * r: '0xb91467e570a6466aa9e9876cbcd013baba02900b8979d43fe208a4a4f339f5fd',\n * s: '0x6007e74cd82e037b800186422fc2da167c747ef045e5d18a5f5d4300f8e1a029',\n * signature: '0xb91467e570a6466aa9e9876cbcd013baba02900b8979d43fe208a4a4f339f5fd6007e74cd82e037b800186422fc2da167c747ef045e5d18a5f5d4300f8e1a0291c'\n * }\n * ```\n */\nexport const sign = (data: string, privateKey: Bytes): SignResult => {\n\tconst hash = hashMessage(data);\n\n\tconst { messageHash, v, r, s, signature } = signMessageWithPrivateKey(hash, privateKey);\n\n\treturn {\n\t\tmessage: data,\n\t\tmessageHash,\n\t\tv,\n\t\tr,\n\t\ts,\n\t\tsignature,\n\t};\n};\n\n/**\n * Signs an Ethereum transaction with a given private key.\n *\n * @param transaction - The transaction, must be a legacy, EIP2930 or EIP 1559 transaction type\n * @param privateKey - The private key to import. This is 32 bytes of random data.\n * @returns A signTransactionResult object that contains message hash, r, s, v, transaction hash and raw transaction.\n *\n * This function is not stateful here. We need network access to get the account `nonce` and `chainId` to sign the transaction.\n * This function will rely on user to provide the full transaction to be signed. If you want to sign a partial transaction object\n * Use {@link Web3.eth.accounts.sign} instead.\n *\n * Signing a legacy transaction\n * ```ts\n * import {signTransaction, Transaction} from 'web3-eth-accounts';\n *\n * signTransaction(new Transaction({\n *\tto: '0x118C2E5F57FD62C2B5b46a5ae9216F4FF4011a07',\n *\tvalue: '0x186A0',\n *\tgasLimit: '0x520812',\n *\tgasPrice: '0x09184e72a000',\n *\tdata: '',\n *\tchainId: 1,\n *\tnonce: 0 }),\n * '0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318')\n *\n * > {\n * messageHash: '0x28b7b75f7ba48d588a902c1ff4d5d13cc0ca9ac0aaa39562368146923fb853bf',\n * v: '0x25',\n * r: '0x601b0017b0e20dd0eeda4b895fbc1a9e8968990953482214f880bae593e71b5',\n * s: '0x690d984493560552e3ebdcc19a65b9c301ea9ddc82d3ab8cfde60485fd5722ce',\n * rawTransaction: '0xf869808609184e72a0008352081294118c2e5f57fd62c2b5b46a5ae9216f4ff4011a07830186a08025a00601b0017b0e20dd0eeda4b895fbc1a9e8968990953482214f880bae593e71b5a0690d984493560552e3ebdcc19a65b9c301ea9ddc82d3ab8cfde60485fd5722ce',\n * transactionHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'\n * ```\n *\n * Signing an eip 1559 transaction\n * ```ts\n * import {signTransaction, Transaction} from 'web3-eth-accounts';\n *\n * signTransaction(new Transaction({\n *\tto: '0xF0109fC8DF283027b6285cc889F5aA624EaC1F55',\n *\tmaxPriorityFeePerGas: '0x3B9ACA00',\n *\tmaxFeePerGas: '0xB2D05E00',\n *\tgasLimit: '0x6A4012',\n *\tvalue: '0x186A0',\n *\tdata: '',\n *\tchainId: 1,\n *\tnonce: 0}),\n * \"0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318\")\n * > {\n * messageHash: '0x5744f24d5f0aff6c70487c8e85adf07d8564e50b08558788f00479611d7bae5f',\n * v: '0x25',\n * r: '0x78a5a6b2876c3985f90f82073d18d57ac299b608cc76a4ba697b8bb085048347',\n * s: '0x9cfcb40cc7d505ed17ff2d3337b51b066648f10c6b7e746117de69b2eb6358d',\n * rawTransaction: '0xf8638080836a401294f0109fc8df283027b6285cc889f5aa624eac1f55830186a08025a078a5a6b2876c3985f90f82073d18d57ac299b608cc76a4ba697b8bb085048347a009cfcb40cc7d505ed17ff2d3337b51b066648f10c6b7e746117de69b2eb6358d',\n * transactionHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'\n * }\n * ```\n *\n * Signing an eip 2930 transaction\n * ```ts\n * import {signTransaction, Transaction} from 'web3-eth-accounts';\n *\n * signTransaction(new Transaction ({\n *\tchainId: 1,\n *\tnonce: 0,\n *\tgasPrice: '0x09184e72a000',\n *\tgasLimit: '0x2710321',\n *\tto: '0xF0109fC8DF283027b6285cc889F5aA624EaC1F55',\n *\tvalue: '0x186A0',\n *\tdata: '',\n *\taccessList: [\n *\t\t{\n *\t\t\taddress: '0x0000000000000000000000000000000000000101',\n *\t\t\tstorageKeys: [\n *\t\t\t\t'0x0000000000000000000000000000000000000000000000000000000000000000',\n *\t\t\t\t'0x00000000000000000000000000000000000000000000000000000000000060a7',\n *\t\t\t],\n *\t\t},\n *\t],\n * }),\"0x4c0883a69102937d6231471b5dbb6204fe5129617082792ae468d01a3f362318\")\n *\n * > {\n * messageHash: '0xc55ea24bdb4c379550a7c9a6818ac39ca33e75bc78ddb862bd82c31cc1c7a073',\n * v: '0x26',\n * r: '0x27344e77871c8b2068bc998bf28e0b5f9920867a69c455b2ed0c1c150fec098e',\n * s: '0x519f0130a1d662841d4a28082e9c9bb0a15e0e59bb46cfc39a52f0e285dec6b9',\n * rawTransaction: '0xf86a808609184e72a000840271032194f0109fc8df283027b6285cc889f5aa624eac1f55830186a08026a027344e77871c8b2068bc998bf28e0b5f9920867a69c455b2ed0c1c150fec098ea0519f0130a1d662841d4a28082e9c9bb0a15e0e59bb46cfc39a52f0e285dec6b9',\n * transactionHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'\n * }\n * ```\n */\nexport const signTransaction = async (\n\ttransaction: TypedTransaction,\n\tprivateKey: HexString,\n\t// To make it compatible with rest of the API, have to keep it async\n\t// eslint-disable-next-line @typescript-eslint/require-await\n): Promise<SignTransactionResult> => {\n\tconst signedTx = transaction.sign(hexToBytes(privateKey));\n\tif (isNullish(signedTx.v) || isNullish(signedTx.r) || isNullish(signedTx.s))\n\t\tthrow new TransactionSigningError('Signer Error');\n\n\tconst validationErrors = signedTx.validate(true);\n\n\tif (validationErrors.length > 0) {\n\t\tlet errorString = 'Signer Error ';\n\t\tfor (const validationError of validationErrors) {\n\t\t\terrorString += `${errorString} ${validationError}.`;\n\t\t}\n\t\tthrow new TransactionSigningError(errorString);\n\t}\n\n\tconst rawTx = bytesToHex(signedTx.serialize());\n\tconst txHash = sha3Raw(rawTx); // using keccak in web3-utils.sha3Raw instead of SHA3 (NIST Standard) as both are different\n\n\treturn {\n\t\tmessageHash: bytesToHex(signedTx.getMessageToSign(true)),\n\t\tv: `0x${signedTx.v.toString(16)}`,\n\t\tr: `0x${signedTx.r.toString(16).padStart(64, '0')}`,\n\t\ts: `0x${signedTx.s.toString(16).padStart(64, '0')}`,\n\t\trawTransaction: rawTx,\n\t\ttransactionHash: bytesToHex(txHash),\n\t};\n};\n\n/**\n * Recovers the Ethereum address which was used to sign the given RLP encoded transaction.\n *\n * @param rawTransaction - The hex string having RLP encoded transaction\n * @returns The Ethereum address used to sign this transaction\n * ```ts\n * web3.eth.accounts.recoverTransaction('0xf869808504e3b29200831e848094f0109fc8df283027b6285cc889f5aa624eac1f55843b9aca008025a0c9cf86333bcb065d140032ecaab5d9281bde80f21b9687b3e94161de42d51895a0727a108a0b8d101465414033c3f705a9c7b826e596766046ee1183dbc8aeaa68');\n * > \"0x2c7536E3605D9C16a7a3D7b1898e529396a65c23\"\n * ```\n */\nexport const recoverTransaction = (rawTransaction: HexString): Address => {\n\tif (isNullish(rawTransaction)) throw new UndefinedRawTransactionError();\n\n\tconst tx = TransactionFactory.fromSerializedData(hexToBytes(rawTransaction));\n\n\treturn toChecksumAddress(tx.getSenderAddress().toString());\n};\n\n/**\n * Recovers the Ethereum address which was used to sign the given data\n *\n * @param data - Either a signed message, hash, or the {@link signatureObject}\n * @param signature - The raw RLP encoded signature\n * @param signatureOrV - signature or V\n * @param prefixedOrR - prefixed or R\n * @param s - S value in signature\n * @param prefixed - (default: false) If the last parameter is true, the given message will NOT automatically be prefixed with `\"\\\\x19Ethereum Signed Message:\\\\n\" + message.length + message`, and assumed to be already prefixed.\n * @returns The Ethereum address used to sign this data\n *\n * ```ts\n * const data = 'Some data';\n * const sigObj = web3.eth.accounts.sign(data, '0xbe6383dad004f233317e46ddb46ad31b16064d14447a95cc1d8c8d4bc61c3728')\n *\n * > {\n * message: 'Some data',\n * messageHash: '0x1da44b586eb0729ff70a73c326926f6ed5a25f5b056e7f47fbc6e58d86871655',\n * v: '0x1b',\n * r: '0xa8037a6116c176a25e6fc224947fde9e79a2deaa0dd8b67b366fbdfdbffc01f9',\n * s: '0x53e41351267b20d4a89ebfe9c8f03c04de9b345add4a52f15bd026b63c8fb150',\n * signature: '0xa8037a6116c176a25e6fc224947fde9e79a2deaa0dd8b67b366fbdfdbffc01f953e41351267b20d4a89ebfe9c8f03c04de9b345add4a52f15bd026b63c8fb1501b'\n * }\n *\n * // now recover\n * web3.eth.accounts.recover(data, sigObj.v, sigObj.r, sigObj.s)\n *\n * > 0xEB014f8c8B418Db6b45774c326A0E64C78914dC0\n * ```\n */\nexport const recover = (\n\tdata: string | SignatureObject,\n\tsignatureOrV?: string,\n\tprefixedOrR?: boolean | string,\n\ts?: string,\n\tprefixed?: boolean,\n): Address => {\n\tif (typeof data === 'object') {\n\t\tconst signatureStr = `${data.r}${data.s.slice(2)}${data.v.slice(2)}`;\n\t\treturn recover(data.messageHash, signatureStr, prefixedOrR);\n\t}\n\tif (typeof signatureOrV === 'string' && typeof prefixedOrR === 'string' && !isNullish(s)) {\n\t\tconst signatureStr = `${prefixedOrR}${s.slice(2)}${signatureOrV.slice(2)}`;\n\t\treturn recover(data, signatureStr, prefixed);\n\t}\n\n\tif (isNullish(signatureOrV)) throw new InvalidSignatureError('signature string undefined');\n\n\tconst V_INDEX = 130; // r = first 32 bytes, s = second 32 bytes, v = last byte of signature\n\tconst hashedMessage = prefixedOrR ? data : hashMessage(data);\n\n\tlet v = parseInt(signatureOrV.substring(V_INDEX), 16); // 0x + r + s + v\n\tif (v > 26) {\n\t\tv -= 27;\n\t}\n\n\tconst ecPublicKey = secp256k1.Signature.fromCompact(signatureOrV.slice(2, V_INDEX))\n\t\t.addRecoveryBit(v)\n\t\t.recoverPublicKey(hashedMessage.replace('0x', ''))\n\t\t.toRawBytes(false);\n\n\tconst publicHash = sha3Raw(ecPublicKey.subarray(1));\n\n\tconst address = toChecksumAddress(`0x${publicHash.slice(-40)}`);\n\n\treturn address;\n};\n\n/**\n * Get the ethereum Address from a private key\n *\n * @param privateKey - String or Uint8Array of 32 bytes\n * @param ignoreLength - if true, will not error check length\n * @returns The Ethereum address\n * @example\n * ```ts\n * web3.eth.accounts.privateKeyToAddress(\"0xbe6383dad004f233317e46ddb46ad31b16064d14447a95cc1d8c8d4bc61c3728\")\n *\n * > \"0xEB014f8c8B418Db6b45774c326A0E64C78914dC0\"\n * ```\n */\nexport const privateKeyToAddress = (privateKey: Bytes): string => {\n\tconst privateKeyUint8Array = parseAndValidatePrivateKey(privateKey);\n\n\t// Get public key from private key in compressed format\n\tconst publicKey = secp256k1.getPublicKey(privateKeyUint8Array, false);\n\n\t// Uncompressed ECDSA public key contains the prefix `0x04` which is not used in the Ethereum public key\n\tconst publicKeyHash = sha3Raw(publicKey.slice(1));\n\n\t// The hash is returned as 256 bits (32 bytes) or 64 hex characters\n\t// To get the address, take the last 20 bytes of the public hash\n\tconst address = publicKeyHash.slice(-40);\n\n\treturn toChecksumAddress(`0x${address}`);\n};\n\n/**\n * Get the public key from a private key\n *\n * @param privateKey - String or Uint8Array of 32 bytes\n * @param isCompressed - if true, will generate a 33 byte compressed public key instead of a 65 byte public key\n * @returns The public key\n * @example\n * ```ts\n * web3.eth.accounts.privateKeyToPublicKey(\"0x1e046a882bb38236b646c9f135cf90ad90a140810f439875f2a6dd8e50fa261f\", true)\n *\n * > \"0x42beb65f179720abaa3ec9a70a539629cbbc5ec65bb57e7fc78977796837e537662dd17042e6449dc843c281067a4d6d8d1a1775a13c41901670d5de7ee6503a\" // uncompressed public key\n * ```\n */\nexport const privateKeyToPublicKey = (privateKey: Bytes, isCompressed: boolean): string => {\n\tconst privateKeyUint8Array = parseAndValidatePrivateKey(privateKey);\n\n\t// Get public key from private key in compressed format\n\treturn `0x${bytesToHex(secp256k1.getPublicKey(privateKeyUint8Array, isCompressed)).slice(4)}`; // 0x and removing compression byte\n};\n\n/**\n * encrypt a private key with a password, returns a V3 JSON Keystore\n *\n * Read more: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n *\n * @param privateKey - The private key to encrypt, 32 bytes.\n * @param password - The password used for encryption.\n * @param options - Options to configure to encrypt the keystore either scrypt or pbkdf2\n * @returns Returns a V3 JSON Keystore\n *\n * Encrypt using scrypt options:\n * ```ts\n *\n * web3.eth.accounts.encrypt(\n * '0x67f476289210e3bef3c1c75e4de993ff0a00663df00def84e73aa7411eac18a6',\n * '123',\n * {\n * n: 8192,\n *\t iv: web3.utils.hexToBytes('0xbfb43120ae00e9de110f8325143a2709'),\n *\t salt: web3.utils.hexToBytes('0x210d0ec956787d865358ac45716e6dd42e68d48e346d795746509523aeb477dd'),\n *\t}).then(console.log)\n *\n * > {\n * version: 3,\n * id: 'c0cb0a94-4702-4492-b6e6-eb2ac404344a',\n * address: 'cda9a91875fc35c8ac1320e098e584495d66e47c',\n * crypto: {\n * ciphertext: 'cb3e13e3281ff3861a3f0257fad4c9a51b0eb046f9c7821825c46b210f040b8f',\n * cipherparams: { iv: 'bfb43120ae00e9de110f8325143a2709' },\n * cipher: 'aes-128-ctr',\n * kdf: 'scrypt',\n * kdfparams: {\n * n: 8192,\n * r: 8,\n * p: 1,\n * dklen: 32,\n * salt: '210d0ec956787d865358ac45716e6dd42e68d48e346d795746509523aeb477dd'\n * },\n * mac: 'efbf6d3409f37c0084a79d5fdf9a6f5d97d11447517ef1ea8374f51e581b7efd'\n * }\n *}\n *```\n *\n * Encrypting using pbkdf2 options:\n * ```ts\n * web3.eth.accounts.encrypt('0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709',\n *'123',\n *{\n *\tiv: 'bfb43120ae00e9de110f8325143a2709',\n *\tsalt: '210d0ec956787d865358ac45716e6dd42e68d48e346d795746509523aeb477dd',\n *\tc: 262144,\n *\tkdf: 'pbkdf2',\n *}).then(console.log)\n *\n * >\n * {\n * version: 3,\n * id: '77381417-0973-4e4b-b590-8eb3ace0fe2d',\n * address: 'b8ce9ab6943e0eced004cde8e3bbed6568b2fa01',\n * crypto: {\n * ciphertext: '76512156a34105fa6473ad040c666ae7b917d14c06543accc0d2dc28e6073b12',\n * cipherparams: { iv: 'bfb43120ae00e9de110f8325143a2709' },\n * cipher: 'aes-128-ctr',\n * kdf: 'pbkdf2',\n * kdfparams: {\n * dklen: 32,\n * salt: '210d0ec956787d865358ac45716e6dd42e68d48e346d795746509523aeb477dd',\n * c: 262144,\n * prf: 'hmac-sha256'\n * },\n * mac: '46eb4884e82dc43b5aa415faba53cc653b7038e9d61cc32fd643cf8c396189b7'\n * }\n * }\n *```\n */\nexport const encrypt = async (\n\tprivateKey: Bytes,\n\tpassword: string | Uint8Array,\n\toptions?: CipherOptions,\n): Promise<KeyStore> => {\n\tconst privateKeyUint8Array = parseAndValidatePrivateKey(privateKey);\n\n\t// if given salt or iv is a string, convert it to a Uint8Array\n\tlet salt;\n\tif (options?.salt) {\n\t\tsalt = typeof options.salt === 'string' ? hexToBytes(options.salt) : options.salt;\n\t} else {\n\t\tsalt = randomBytes(32);\n\t}\n\n\tif (!(isString(password) || isUint8Array(password))) {\n\t\tthrow new InvalidPasswordError();\n\t}\n\n\tconst uint8ArrayPassword =\n\t\ttypeof password === 'string' ? hexToBytes(utf8ToHex(password)) : password;\n\n\tlet initializationVector;\n\tif (options?.iv) {\n\t\tinitializationVector = typeof options.iv === 'string' ? hexToBytes(options.iv) : options.iv;\n\t\tif (initializationVector.length !== 16) {\n\t\t\tthrow new IVLengthError();\n\t\t}\n\t} else {\n\t\tinitializationVector = randomBytes(16);\n\t}\n\n\tconst kdf = options?.kdf ?? 'scrypt';\n\n\tlet derivedKey;\n\tlet kdfparams: ScryptParams | PBKDF2SHA256Params;\n\n\t// derive key from key derivation function\n\tif (kdf === 'pbkdf2') {\n\t\tkdfparams = {\n\t\t\tdklen: options?.dklen ?? 32,\n\t\t\tsalt: bytesToHex(salt).replace('0x', ''),\n\t\t\tc: options?.c ?? 262144,\n\t\t\tprf: 'hmac-sha256',\n\t\t};\n\n\t\tif (kdfparams.c < 1000) {\n\t\t\t// error when c < 1000, pbkdf2 is less secure with less iterations\n\t\t\tthrow new PBKDF2IterationsError();\n\t\t}\n\t\tderivedKey = pbkdf2Sync(uint8ArrayPassword, salt, kdfparams.c, kdfparams.dklen, 'sha256');\n\t} else if (kdf === 'scrypt') {\n\t\tkdfparams = {\n\t\t\tn: options?.n ?? 8192,\n\t\t\tr: options?.r ?? 8,\n\t\t\tp: options?.p ?? 1,\n\t\t\tdklen: options?.dklen ?? 32,\n\t\t\tsalt: bytesToHex(salt).replace('0x', ''),\n\t\t};\n\t\tderivedKey = scryptSync(\n\t\t\tuint8ArrayPassword,\n\t\t\tsalt,\n\t\t\tkdfparams.n,\n\t\t\tkdfparams.p,\n\t\t\tkdfparams.r,\n\t\t\tkdfparams.dklen,\n\t\t);\n\t} else {\n\t\tthrow new InvalidKdfError();\n\t}\n\n\tconst cipher = await createCipheriv(\n\t\tprivateKeyUint8Array,\n\t\tderivedKey.slice(0, 16),\n\t\tinitializationVector,\n\t\t'aes-128-ctr',\n\t);\n\n\tconst ciphertext = bytesToHex(cipher).slice(2);\n\n\tconst mac = sha3Raw(uint8ArrayConcat(derivedKey.slice(16, 32), cipher)).replace('0x', '');\n\treturn {\n\t\tversion: 3,\n\t\tid: uuidV4(),\n\t\taddress: privateKeyToAddress(privateKeyUint8Array).toLowerCase().replace('0x', ''),\n\t\tcrypto: {\n\t\t\tciphertext,\n\t\t\tcipherparams: {\n\t\t\t\tiv: bytesToHex(initializationVector).replace('0x', ''),\n\t\t\t},\n\t\t\tcipher: 'aes-128-ctr',\n\t\t\tkdf,\n\t\t\tkdfparams,\n\t\t\tmac,\n\t\t},\n\t};\n};\n\n/**\n * Get an Account object from the privateKey\n *\n * @param privateKey - String or Uint8Array of 32 bytes\n * @param ignoreLength - if true, will not error check length\n * @returns A Web3Account object\n *\n * :::info\n * The `Web3Account.signTransaction` is not stateful if directly imported from accounts package and used. Network access is required to get the account `nonce` and `chainId` to sign the transaction, so use {@link Web3.eth.accounts.signTransaction} for signing transactions.\n * ::::\n *\n * ```ts\n * web3.eth.accounts.privateKeyToAccount(\"0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709\");\n *\n * > {\n * \t\t\taddress: '0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01',\n * \t\t\tprivateKey: '0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709',\n * \t\t\tsign,\n * \t\t\tsignTransaction,\n * \t\t\tencrypt,\n * \t}\n * ```\n */\nexport const privateKeyToAccount = (privateKey: Bytes, ignoreLength?: boolean): Web3Account => {\n\tconst privateKeyUint8Array = parseAndValidatePrivateKey(privateKey, ignoreLength);\n\n\treturn {\n\t\taddress: privateKeyToAddress(privateKeyUint8Array),\n\t\tprivateKey: bytesToHex(privateKeyUint8Array),\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\tsignTransaction: (_tx: Transaction) => {\n\t\t\tthrow new TransactionSigningError('Do not have network access to sign the transaction');\n\t\t},\n\t\tsign: (data: Record<string, unknown> | string) =>\n\t\t\tsign(typeof data === 'string' ? data : JSON.stringify(data), privateKeyUint8Array),\n\t\tencrypt: async (password: string, options?: Record<string, unknown>) =>\n\t\t\tencrypt(privateKeyUint8Array, password, options),\n\t};\n};\n\n/**\n *\n * Generates and returns a Web3Account object that includes the private and public key\n * For creation of private key, it uses an audited package ethereum-cryptography/secp256k1\n * that is cryptographically secure random number with certain characteristics.\n * Read more: https://www.npmjs.com/package/ethereum-cryptography#secp256k1-curve\n *\n * @returns A Web3Account object\n * ```ts\n * web3.eth.accounts.create();\n * {\n * address: '0xbD504f977021b5E5DdccD8741A368b147B3B38bB',\n * privateKey: '0x964ced1c69ad27a311c432fdc0d8211e987595f7eb34ab405a5f16bdc9563ec5',\n * signTransaction: [Function: signTransaction],\n * sign: [Function: sign],\n * encrypt: [AsyncFunction: encrypt]\n * }\n * ```\n */\nexport const create = (): Web3Account => {\n\tconst privateKey = secp256k1.utils.randomPrivateKey();\n\n\treturn privateKeyToAccount(`${bytesToHex(privateKey)}`);\n};\n\n/**\n * Decrypts a v3 keystore JSON, and creates the account.\n *\n * @param keystore - the encrypted Keystore object or string to decrypt\n * @param password - The password that was used for encryption\n * @param nonStrict - if true and given a json string, the keystore will be parsed as lowercase.\n * @returns Returns the decrypted Web3Account object\n * Decrypting scrypt\n *\n * ```ts\n * web3.eth.accounts.decrypt({\n * version: 3,\n * id: 'c0cb0a94-4702-4492-b6e6-eb2ac404344a',\n * address: 'cda9a91875fc35c8ac1320e098e584495d66e47c',\n * crypto: {\n * ciphertext: 'cb3e13e3281ff3861a3f0257fad4c9a51b0eb046f9c7821825c46b210f040b8f',\n * cipherparams: { iv: 'bfb43120ae00e9de110f8325143a2709' },\n * cipher: 'aes-128-ctr',\n * kdf: 'scrypt',\n * kdfparams: {\n * n: 8192,\n * r: 8,\n * p: 1,\n * dklen: 32,\n * salt: '210d0ec956787d865358ac45716e6dd42e68d48e346d795746509523aeb477dd'\n * },\n * mac: 'efbf6d3409f37c0084a79d5fdf9a6f5d97d11447517ef1ea8374f51e581b7efd'\n * }\n * }, '123').then(console.log);\n *\n *\n * > {\n * address: '0xcdA9A91875fc35c8Ac1320E098e584495d66e47c',\n * privateKey: '67f476289210e3bef3c1c75e4de993ff0a00663df00def84e73aa7411eac18a6',\n * signTransaction: [Function: signTransaction],\n * sign: [Function: sign],\n * encrypt: [AsyncFunction: encrypt]\n * }\n * ```\n */\nexport const decrypt = async (\n\tkeystore: KeyStore | string,\n\tpassword: string | Uint8Array,\n\tnonStrict?: boolean,\n): Promise<Web3Account> => {\n\tconst json =\n\t\ttypeof keystore === 'object'\n\t\t\t? keystore\n\t\t\t: (JSON.parse(nonStrict ? keystore.toLowerCase() : keystore) as KeyStore);\n\n\tvalidator.validateJSONSchema(keyStoreSchema, json);\n\n\tif (json.version !== 3) throw new KeyStoreVersionError();\n\n\tconst uint8ArrayPassword =\n\t\ttypeof password === 'string' ? hexToBytes(utf8ToHex(password)) : password;\n\n\tvalidator.validate(['bytes'], [uint8ArrayPassword]);\n\n\tlet derivedKey;\n\tif (json.crypto.kdf === 'scrypt') {\n\t\tconst kdfparams = json.crypto.kdfparams as ScryptParams;\n\t\tconst uint8ArraySalt =\n\t\t\ttypeof kdfparams.salt === 'string' ? hexToBytes(kdfparams.salt) : kdfparams.salt;\n\t\tderivedKey = scryptSync(\n\t\t\tuint8ArrayPassword,\n\t\t\tuint8ArraySalt,\n\t\t\tkdfparams.n,\n\t\t\tkdfparams.p,\n\t\t\tkdfparams.r,\n\t\t\tkdfparams.dklen,\n\t\t);\n\t} else if (json.crypto.kdf === 'pbkdf2') {\n\t\tconst kdfparams: PBKDF2SHA256Params = json.crypto.kdfparams as PBKDF2SHA256Params;\n\n\t\tconst uint8ArraySalt =\n\t\t\ttypeof kdfparams.salt === 'string' ? hexToBytes(kdfparams.salt) : kdfparams.salt;\n\n\t\tderivedKey = pbkdf2Sync(\n\t\t\tuint8ArrayPassword,\n\t\t\tuint8ArraySalt,\n\t\t\tkdfparams.c,\n\t\t\tkdfparams.dklen,\n\t\t\t'sha256',\n\t\t);\n\t} else {\n\t\tthrow new InvalidKdfError();\n\t}\n\n\tconst ciphertext = hexToBytes(json.crypto.ciphertext);\n\tconst mac = sha3Raw(uint8ArrayConcat(derivedKey.slice(16, 32), ciphertext)).replace('0x', '');\n\n\tif (mac !== json.crypto.mac) {\n\t\tthrow new KeyDerivationError();\n\t}\n\n\tconst seed = await createDecipheriv(\n\t\thexToBytes(json.crypto.ciphertext),\n\t\tderivedKey.slice(0, 16),\n\t\thexToBytes(json.crypto.cipherparams.iv),\n\t);\n\n\treturn privateKeyToAccount(seed);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { JsonRpcBatchResponse, JsonRpcOptionalRequest, JsonRpcRequest } from 'web3-types';\nimport { jsonRpc, Web3DeferredPromise } from 'web3-utils';\nimport { OperationAbortError, OperationTimeoutError, ResponseError } from 'web3-errors';\nimport { Web3RequestManager } from './web3_request_manager.js';\n\nexport const DEFAULT_BATCH_REQUEST_TIMEOUT = 1000;\n\nexport class Web3BatchRequest {\n\tprivate readonly _requestManager: Web3RequestManager;\n\tprivate readonly _requests: Map<\n\t\tnumber,\n\t\t{ payload: JsonRpcRequest; promise: Web3DeferredPromise<unknown> }\n\t>;\n\n\tpublic constructor(requestManager: Web3RequestManager) {\n\t\tthis._requestManager = requestManager;\n\t\tthis._requests = new Map();\n\t}\n\n\tpublic get requests() {\n\t\treturn [...this._requests.values()].map(r => r.payload);\n\t}\n\n\tpublic add<ResponseType = unknown>(request: JsonRpcOptionalRequest<unknown>) {\n\t\tconst payload = jsonRpc.toPayload(request) as JsonRpcRequest;\n\t\tconst promise = new Web3DeferredPromise<ResponseType>();\n\n\t\tthis._requests.set(payload.id as number, { payload, promise });\n\n\t\treturn promise;\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic async execute(options?: {\n\t\ttimeout?: number;\n\t}): Promise<JsonRpcBatchResponse<unknown, unknown>> {\n\t\tif (this.requests.length === 0) {\n\t\t\treturn Promise.resolve([]);\n\t\t}\n\n\t\tconst request = new Web3DeferredPromise<JsonRpcBatchResponse<unknown, unknown>>({\n\t\t\ttimeout: options?.timeout ?? DEFAULT_BATCH_REQUEST_TIMEOUT,\n\t\t\teagerStart: true,\n\t\t\ttimeoutMessage: 'Batch request timeout',\n\t\t});\n\n\t\tthis._processBatchRequest(request).catch(err => request.reject(err));\n\n\t\trequest.catch((err: Error) => {\n\t\t\tif (err instanceof OperationTimeoutError) {\n\t\t\t\tthis._abortAllRequests('Batch request timeout');\n\t\t\t}\n\n\t\t\trequest.reject(err);\n\t\t});\n\n\t\treturn request;\n\t}\n\n\tprivate async _processBatchRequest(\n\t\tpromise: Web3DeferredPromise<JsonRpcBatchResponse<unknown, unknown>>,\n\t) {\n\t\tconst response = await this._requestManager.sendBatch(\n\t\t\t[...this._requests.values()].map(r => r.payload),\n\t\t);\n\n\t\tif (response.length !== this._requests.size) {\n\t\t\tthis._abortAllRequests('Invalid batch response');\n\n\t\t\tthrow new ResponseError(\n\t\t\t\tresponse,\n\t\t\t\t`Batch request size mismatch the results size. Requests: ${this._requests.size}, Responses: ${response.length}`,\n\t\t\t);\n\t\t}\n\n\t\tconst requestIds = this.requests\n\t\t\t.map(r => r.id)\n\t\t\t.map(Number)\n\t\t\t.sort((a, b) => a - b);\n\n\t\tconst responseIds = response\n\t\t\t.map(r => r.id)\n\t\t\t.map(Number)\n\t\t\t.sort((a, b) => a - b);\n\n\t\tif (JSON.stringify(requestIds) !== JSON.stringify(responseIds)) {\n\t\t\tthis._abortAllRequests('Invalid batch response');\n\n\t\t\tthrow new ResponseError(\n\t\t\t\tresponse,\n\t\t\t\t`Batch request mismatch the results. Requests: [${requestIds.join()}], Responses: [${responseIds.join()}]`,\n\t\t\t);\n\t\t}\n\n\t\tfor (const res of response) {\n\t\t\tif (jsonRpc.isResponseWithResult(res)) {\n\t\t\t\tthis._requests.get(res.id as number)?.promise.resolve(res.result);\n\t\t\t} else if (jsonRpc.isResponseWithError(res)) {\n\t\t\t\tthis._requests.get(res.id as number)?.promise.reject(res.error);\n\t\t\t}\n\t\t}\n\n\t\tpromise.resolve(response);\n\t}\n\n\tprivate _abortAllRequests(msg: string) {\n\t\tfor (const { promise } of this._requests.values()) {\n\t\t\tpromise.reject(new OperationAbortError(msg));\n\t\t}\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n// eslint-disable-next-line max-classes-per-file\nimport { ExistingPluginNamespaceError } from 'web3-errors';\nimport {\n\tEthExecutionAPI,\n\tHexString,\n\tNumbers,\n\tSupportedProviders,\n\tTransaction,\n\tWeb3AccountProvider,\n\tWeb3APISpec,\n\tWeb3BaseProvider,\n\tWeb3BaseWallet,\n\tWeb3BaseWalletAccount,\n} from 'web3-types';\nimport { isNullish } from 'web3-utils';\nimport { BaseTransaction, TransactionFactory } from 'web3-eth-accounts';\nimport { isSupportedProvider } from './utils.js';\n// eslint-disable-next-line import/no-cycle\nimport { ExtensionObject, RequestManagerMiddleware } from './types.js';\nimport { Web3BatchRequest } from './web3_batch_request.js';\n// eslint-disable-next-line import/no-cycle\nimport { Web3Config, Web3ConfigEvent, Web3ConfigOptions } from './web3_config.js';\nimport { Web3RequestManager } from './web3_request_manager.js';\nimport { Web3SubscriptionConstructor } from './web3_subscriptions.js';\nimport { Web3SubscriptionManager } from './web3_subscription_manager.js';\n\n// To avoid circular dependencies, we need to export type from here.\nexport type Web3ContextObject<\n\tAPI extends Web3APISpec = unknown,\n\tRegisteredSubs extends {\n\t\t[key: string]: Web3SubscriptionConstructor<API>;\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t} = any,\n> = {\n\tconfig: Web3ConfigOptions;\n\tprovider?: SupportedProviders<API> | string;\n\trequestManager: Web3RequestManager<API>;\n\tsubscriptionManager?: Web3SubscriptionManager<API, RegisteredSubs> | undefined;\n\tregisteredSubscriptions?: RegisteredSubs;\n\tproviders: typeof Web3RequestManager.providers;\n\taccountProvider?: Web3AccountProvider<Web3BaseWalletAccount>;\n\twallet?: Web3BaseWallet<Web3BaseWalletAccount>;\n};\n\nexport type Web3ContextInitOptions<\n\tAPI extends Web3APISpec = unknown,\n\tRegisteredSubs extends {\n\t\t[key: string]: Web3SubscriptionConstructor<API>;\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t} = any,\n> = {\n\tconfig?: Partial<Web3ConfigOptions>;\n\tprovider?: SupportedProviders<API> | string;\n\trequestManager?: Web3RequestManager<API>;\n\tsubscriptionManager?: Web3SubscriptionManager<API, RegisteredSubs> | undefined;\n\tregisteredSubscriptions?: RegisteredSubs;\n\taccountProvider?: Web3AccountProvider<Web3BaseWalletAccount>;\n\twallet?: Web3BaseWallet<Web3BaseWalletAccount>;\n\trequestManagerMiddleware?: RequestManagerMiddleware<API>;\n};\n\n// eslint-disable-next-line no-use-before-define\nexport type Web3ContextConstructor<T extends Web3Context, T2 extends unknown[]> = new (\n\t...args: [...extras: T2, context: Web3ContextObject]\n) => T;\n\n// To avoid circular dependencies, we need to export type from here.\nexport type Web3ContextFactory<\n\t// eslint-disable-next-line no-use-before-define\n\tT extends Web3Context,\n\tT2 extends unknown[],\n> = Web3ContextConstructor<T, T2> & {\n\tfromContextObject(this: Web3ContextConstructor<T, T2>, contextObject: Web3ContextObject): T;\n};\n\nexport class Web3Context<\n\tAPI extends Web3APISpec = unknown,\n\tRegisteredSubs extends {\n\t\t[key: string]: Web3SubscriptionConstructor<API>;\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t} = any,\n> extends Web3Config {\n\tpublic static readonly providers = Web3RequestManager.providers;\n\tpublic static givenProvider?: SupportedProviders<never>;\n\tpublic readonly providers = Web3RequestManager.providers;\n\tprotected _requestManager: Web3RequestManager<API>;\n\tprotected _subscriptionManager: Web3SubscriptionManager<API, RegisteredSubs>;\n\tprotected _accountProvider?: Web3AccountProvider<Web3BaseWalletAccount>;\n\tprotected _wallet?: Web3BaseWallet<Web3BaseWalletAccount>;\n\n\tpublic constructor(\n\t\tproviderOrContext?:\n\t\t\t| string\n\t\t\t| SupportedProviders<API>\n\t\t\t| Web3ContextInitOptions<API, RegisteredSubs>,\n\t) {\n\t\tsuper();\n\n\t\t// If \"providerOrContext\" is provided as \"string\" or an objects matching \"SupportedProviders\" interface\n\t\tif (\n\t\t\tisNullish(providerOrContext) ||\n\t\t\t(typeof providerOrContext === 'string' && providerOrContext.trim() !== '') ||\n\t\t\tisSupportedProvider(providerOrContext as SupportedProviders<API>)\n\t\t) {\n\t\t\tthis._requestManager = new Web3RequestManager<API>(\n\t\t\t\tproviderOrContext as undefined | string | SupportedProviders<API>,\n\t\t\t);\n\t\t\tthis._subscriptionManager = new Web3SubscriptionManager(\n\t\t\t\tthis._requestManager,\n\t\t\t\t{} as RegisteredSubs,\n\t\t\t);\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\tconfig,\n\t\t\tprovider,\n\t\t\trequestManager,\n\t\t\tsubscriptionManager,\n\t\t\tregisteredSubscriptions,\n\t\t\taccountProvider,\n\t\t\twallet,\n\t\t\trequestManagerMiddleware,\n\t\t} = providerOrContext as Web3ContextInitOptions<API, RegisteredSubs>;\n\n\t\tthis.setConfig(config ?? {});\n\n\t\tthis._requestManager =\n\t\t\trequestManager ??\n\t\t\tnew Web3RequestManager<API>(\n\t\t\t\tprovider,\n\t\t\t\tconfig?.enableExperimentalFeatures?.useSubscriptionWhenCheckingBlockTimeout,\n\t\t\t\trequestManagerMiddleware,\n\t\t\t);\n\n\t\tif (subscriptionManager) {\n\t\t\tthis._subscriptionManager = subscriptionManager;\n\t\t} else {\n\t\t\tthis._subscriptionManager = new Web3SubscriptionManager(\n\t\t\t\tthis.requestManager,\n\t\t\t\tregisteredSubscriptions ?? ({} as RegisteredSubs),\n\t\t\t);\n\t\t}\n\n\t\tif (accountProvider) {\n\t\t\tthis._accountProvider = accountProvider;\n\t\t}\n\n\t\tif (wallet) {\n\t\t\tthis._wallet = wallet;\n\t\t}\n\t}\n\n\tpublic get requestManager() {\n\t\treturn this._requestManager;\n\t}\n\n\t/**\n\t * Will return the current subscriptionManager ({@link Web3SubscriptionManager})\n\t */\n\tpublic get subscriptionManager() {\n\t\treturn this._subscriptionManager;\n\t}\n\n\tpublic get wallet() {\n\t\treturn this._wallet;\n\t}\n\n\tpublic get accountProvider() {\n\t\treturn this._accountProvider;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic static fromContextObject<T extends Web3Context, T3 extends unknown[]>(\n\t\tthis: Web3ContextConstructor<T, T3>,\n\t\t...args: [Web3ContextObject, ...T3]\n\t) {\n\t\treturn new this(...(args.reverse() as [...T3, Web3ContextObject]));\n\t}\n\n\tpublic getContextObject(): Web3ContextObject<API, RegisteredSubs> {\n\t\treturn {\n\t\t\tconfig: this.config,\n\t\t\tprovider: this.provider,\n\t\t\trequestManager: this.requestManager,\n\t\t\tsubscriptionManager: this.subscriptionManager,\n\t\t\tregisteredSubscriptions: this.subscriptionManager?.registeredSubscriptions,\n\t\t\tproviders: this.providers,\n\t\t\twallet: this.wallet,\n\t\t\taccountProvider: this.accountProvider,\n\t\t};\n\t}\n\n\t/**\n\t * Use to create new object of any type extended by `Web3Context`\n\t * and link it to current context. This can be used to initiate a global context object\n\t * and then use it to create new objects of any type extended by `Web3Context`.\n\t */\n\tpublic use<T extends Web3Context, T2 extends unknown[]>(\n\t\tContextRef: Web3ContextConstructor<T, T2>,\n\t\t...args: [...T2]\n\t) {\n\t\tconst newContextChild: T = new ContextRef(\n\t\t\t...([...args, this.getContextObject()] as unknown as [...T2, Web3ContextObject]),\n\t\t);\n\n\t\tthis.on(Web3ConfigEvent.CONFIG_CHANGE, event => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tnewContextChild.setConfig({ [event.name]: event.newValue });\n\t\t});\n\n\t\t// @ts-expect-error No index signature with a parameter of type 'string' was found on type 'Web3Context<API, RegisteredSubs>'\n\t\tthis[ContextRef.name] = newContextChild;\n\n\t\treturn newContextChild;\n\t}\n\n\t/**\n\t * Link current context to another context.\n\t */\n\tpublic link<T extends Web3Context>(parentContext: T) {\n\t\tthis.setConfig(parentContext.config);\n\t\tthis._requestManager = parentContext.requestManager;\n\t\tthis.provider = parentContext.provider;\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tthis._subscriptionManager = parentContext.subscriptionManager;\n\t\tthis._wallet = parentContext.wallet;\n\t\tthis._accountProvider = parentContext._accountProvider;\n\n\t\tparentContext.on(Web3ConfigEvent.CONFIG_CHANGE, event => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\tthis.setConfig({ [event.name]: event.newValue });\n\t\t});\n\t}\n\n\t// eslint-disable-next-line no-use-before-define\n\tpublic registerPlugin(plugin: Web3PluginBase) {\n\t\t// @ts-expect-error No index signature with a parameter of type 'string' was found on type 'Web3Context<API, RegisteredSubs>'\n\t\tif (this[plugin.pluginNamespace] !== undefined)\n\t\t\tthrow new ExistingPluginNamespaceError(plugin.pluginNamespace);\n\n\t\tconst _pluginObject = {\n\t\t\t[plugin.pluginNamespace]: plugin,\n\t\t};\n\t\t_pluginObject[plugin.pluginNamespace].link(this);\n\t\tObject.assign(this, _pluginObject);\n\t}\n\n\t/**\n\t * Will return the current provider.\n\t *\n\t * @returns Returns the current provider\n\t * @example\n\t * ```ts\n\t * const web3 = new Web3Context(\"http://localhost:8545\");\n\t * console.log(web3.provider);\n\t * > HttpProvider {\n\t * \tclientUrl: 'http://localhost:8545',\n\t * \thttpProviderOptions: undefined\n\t * }\n\t * ```\n\t */\n\n\tpublic get provider(): Web3BaseProvider<API> | undefined {\n\t\treturn this.currentProvider;\n\t}\n\n\t/**\n\t * Will set the current provider.\n\t *\n\t * @param provider - The provider to set\n\t *\n\t * Accepted providers are of type {@link SupportedProviders}\n\t * @example\n\t * ```ts\n\t * const web3Context = new web3ContextContext(\"http://localhost:8545\");\n\t * web3Context.provider = \"ws://localhost:8545\";\n\t * console.log(web3Context.provider);\n\t * > WebSocketProvider {\n\t * _eventEmitter: EventEmitter {\n\t * _events: [Object: null prototype] {},\n\t * _eventsCount: 0,\n\t * ...\n\t * }\n\t * ```\n\t */\n\n\tpublic set provider(provider: SupportedProviders<API> | string | undefined) {\n\t\tthis.requestManager.setProvider(provider);\n\t}\n\n\t/**\n\t * Will return the current provider. (The same as `provider`)\n\t *\n\t * @returns Returns the current provider\n\t * @example\n\t * ```ts\n\t * const web3Context = new Web3Context(\"http://localhost:8545\");\n\t * console.log(web3Context.provider);\n\t * > HttpProvider {\n\t * \tclientUrl: 'http://localhost:8545',\n\t * \thttpProviderOptions: undefined\n\t * }\n\t * ```\n\t */\n\tpublic get currentProvider(): Web3BaseProvider<API> | undefined {\n\t\treturn this.requestManager.provider as Web3BaseProvider<API>;\n\t}\n\n\t/**\n\t * Will set the current provider. (The same as `provider`)\n\t *\n\t * @param provider - {@link SupportedProviders} The provider to set\n\t *\n\t * @example\n\t * ```ts\n\t * const web3Context = new Web3Context(\"http://localhost:8545\");\n\t * web3Context.currentProvider = \"ws://localhost:8545\";\n\t * console.log(web3Context.provider);\n\t * > WebSocketProvider {\n\t * _eventEmitter: EventEmitter {\n\t * _events: [Object: null prototype] {},\n\t * _eventsCount: 0,\n\t * ...\n\t * }\n\t * ```\n\t */\n\tpublic set currentProvider(provider: SupportedProviders<API> | string | undefined) {\n\t\tthis.requestManager.setProvider(provider);\n\t}\n\n\t/**\n\t * Will return the givenProvider if available.\n\t *\n\t * When using web3.js in an Ethereum compatible browser, it will set with the current native provider by that browser. Will return the given provider by the (browser) environment, otherwise `undefined`.\n\t */\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic get givenProvider() {\n\t\treturn Web3Context.givenProvider;\n\t}\n\t/**\n\t * Will set the provider.\n\t *\n\t * @param provider - {@link SupportedProviders} The provider to set\n\t * @returns Returns true if the provider was set\n\t */\n\tpublic setProvider(provider?: SupportedProviders<API> | string): boolean {\n\t\tthis.provider = provider;\n\t\treturn true;\n\t}\n\n\tpublic setRequestManagerMiddleware(requestManagerMiddleware: RequestManagerMiddleware<API>) {\n\t\tthis.requestManager.setMiddleware(requestManagerMiddleware);\n\t}\n\n\t/**\n\t * Will return the {@link Web3BatchRequest} constructor.\n\t */\n\tpublic get BatchRequest(): new () => Web3BatchRequest {\n\t\treturn Web3BatchRequest.bind(\n\t\t\tundefined,\n\t\t\tthis._requestManager as unknown as Web3RequestManager,\n\t\t);\n\t}\n\n\t/**\n\t * This method allows extending the web3 modules.\n\t * Note: This method is only for backward compatibility, and It is recommended to use Web3 v4 Plugin feature for extending web3.js functionality if you are developing something new.\n\t */\n\tpublic extend(extendObj: ExtensionObject) {\n\t\t// @ts-expect-error No index signature with a parameter of type 'string' was found on type 'Web3Context<API, RegisteredSubs>'\n\t\tif (extendObj.property && !this[extendObj.property])\n\t\t\t// @ts-expect-error No index signature with a parameter of type 'string' was found on type 'Web3Context<API, RegisteredSubs>'\n\t\t\tthis[extendObj.property] = {};\n\n\t\textendObj.methods?.forEach(element => {\n\t\t\tconst method = async (...givenParams: unknown[]) =>\n\t\t\t\tthis.requestManager.send({\n\t\t\t\t\tmethod: element.call,\n\t\t\t\t\tparams: givenParams,\n\t\t\t\t});\n\n\t\t\tif (extendObj.property)\n\t\t\t\t// @ts-expect-error No index signature with a parameter of type 'string' was found on type 'Web3Context<API, RegisteredSubs>'\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tthis[extendObj.property][element.name] = method;\n\t\t\t// @ts-expect-error No index signature with a parameter of type 'string' was found on type 'Web3Context<API, RegisteredSubs>'\n\t\t\telse this[element.name] = method;\n\t\t});\n\t\treturn this;\n\t}\n}\n\n/**\n * Extend this class when creating a plugin that either doesn't require {@link EthExecutionAPI},\n * or interacts with a RPC node that doesn't fully implement {@link EthExecutionAPI}.\n *\n * To add type support for RPC methods to the {@link Web3RequestManager},\n * define a {@link Web3APISpec} and pass it as a generic to Web3PluginBase like so:\n *\n * @example\n * ```ts\n * type CustomRpcApi = {\n *\tcustom_rpc_method: () => string;\n *\tcustom_rpc_method_with_parameters: (parameter1: string, parameter2: number) => string;\n * };\n *\n * class CustomPlugin extends Web3PluginBase<CustomRpcApi> {...}\n * ```\n */\nexport abstract class Web3PluginBase<\n\tAPI extends Web3APISpec = Web3APISpec,\n> extends Web3Context<API> {\n\tpublic abstract pluginNamespace: string;\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprotected registerNewTransactionType<NewTxTypeClass extends typeof BaseTransaction<unknown>>(\n\t\ttype: Numbers,\n\t\ttxClass: NewTxTypeClass,\n\t): void {\n\t\tTransactionFactory.registerTransactionType(type, txClass);\n\t}\n}\n\n/**\n * Extend this class when creating a plugin that makes use of {@link EthExecutionAPI},\n * or depends on other Web3 packages (such as `web3-eth-contract`) that depend on {@link EthExecutionAPI}.\n *\n * To add type support for RPC methods to the {@link Web3RequestManager} (in addition to {@link EthExecutionAPI}),\n * define a {@link Web3APISpec} and pass it as a generic to Web3PluginBase like so:\n *\n * @example\n * ```ts\n * type CustomRpcApi = {\n *\tcustom_rpc_method: () => string;\n *\tcustom_rpc_method_with_parameters: (parameter1: string, parameter2: number) => string;\n * };\n *\n * class CustomPlugin extends Web3PluginBase<CustomRpcApi> {...}\n * ```\n */\nexport abstract class Web3EthPluginBase<API extends Web3APISpec = unknown> extends Web3PluginBase<\n\tAPI & EthExecutionAPI\n> {}\n\n// To avoid cycle dependency declare this type in this file\nexport type TransactionBuilder<API extends Web3APISpec = unknown> = <\n\tReturnType = Transaction,\n>(options: {\n\ttransaction: Transaction;\n\tweb3Context: Web3Context<API>;\n\tprivateKey?: HexString | Uint8Array;\n\tfillGasPrice?: boolean;\n}) => Promise<ReturnType>;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { HexString } from 'web3-types';\nimport { toChecksumAddress, leftPad, hexToNumber } from 'web3-utils';\nimport { isAddress } from 'web3-validator';\nimport { InvalidAddressError } from 'web3-errors';\nimport { IbanOptions } from './types.js';\n\n/**\n * Converts Ethereum addresses to IBAN or BBAN addresses and vice versa.\n */\nexport class Iban {\n\tprivate readonly _iban: string;\n\n\t/**\n\t * Prepare an IBAN for mod 97 computation by moving the first 4 chars to the end and transforming the letters to\n\t * numbers (A = 10, B = 11, ..., Z = 35), as specified in ISO13616.\n\t */\n\tprivate static readonly _iso13616Prepare = (iban: string): string => {\n\t\tconst A = 'A'.charCodeAt(0);\n\t\tconst Z = 'Z'.charCodeAt(0);\n\n\t\tconst upperIban = iban.toUpperCase();\n\t\tconst modifiedIban = `${upperIban.slice(4)}${upperIban.slice(0, 4)}`;\n\n\t\treturn modifiedIban\n\t\t\t.split('')\n\t\t\t.map(n => {\n\t\t\t\tconst code = n.charCodeAt(0);\n\t\t\t\tif (code >= A && code <= Z) {\n\t\t\t\t\t// A = 10, B = 11, ... Z = 35\n\t\t\t\t\treturn code - A + 10;\n\t\t\t\t}\n\t\t\t\treturn n;\n\t\t\t})\n\t\t\t.join('');\n\t};\n\n\t/**\n\t * return the bigint of the given string with the specified base\n\t */\n\tprivate static readonly _parseInt = (str: string, base: number): bigint =>\n\t\t[...str].reduce(\n\t\t\t(acc, curr) => BigInt(parseInt(curr, base)) + BigInt(base) * acc,\n\t\t\tBigInt(0),\n\t\t);\n\n\t/**\n\t * Calculates the MOD 97 10 of the passed IBAN as specified in ISO7064.\n\t */\n\tprivate static readonly _mod9710 = (iban: string): number => {\n\t\tlet remainder = iban;\n\t\tlet block;\n\n\t\twhile (remainder.length > 2) {\n\t\t\tblock = remainder.slice(0, 9);\n\t\t\tremainder = `${(parseInt(block, 10) % 97).toString()}${remainder.slice(block.length)}`;\n\t\t}\n\n\t\treturn parseInt(remainder, 10) % 97;\n\t};\n\n\t/**\n\t * A static method that checks if an IBAN is Direct.\n\t * It actually check the length of the provided variable and, only if it is 34 or 35, it returns true.\n\t * Note: this is also available as a method at an Iban instance.\n\t * @param iban - an IBAN to be checked\n\t * @returns - `true` if the provided `iban` is a Direct IBAN, and `false` otherwise.\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.isDirect(\"XE81ETHXREGGAVOFYORK\");\n\t * > false\n\t * ```\n\t */\n\tpublic static isDirect(iban: string): boolean {\n\t\treturn iban.length === 34 || iban.length === 35;\n\t}\n\n\t/**\n\t * An instance method that checks if iban number is Direct.\n\t * It actually check the length of the provided variable and, only if it is 34 or 35, it returns true.\n\t * Note: this is also available as a static method.\n\t * @param iban - an IBAN to be checked\n\t * @returns - `true` if the provided `iban` is a Direct IBAN, and `false` otherwise.\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE81ETHXREGGAVOFYORK\");\n\t * iban.isDirect();\n\t * > false\n\t * ```\n\t */\n\tpublic isDirect(): boolean {\n\t\treturn Iban.isDirect(this._iban);\n\t}\n\n\t/**\n\t * A static method that checks if an IBAN is Indirect.\n\t * It actually check the length of the provided variable and, only if it is 20, it returns true.\n\t * Note: this is also available as a method at an Iban instance.\n\t * @param iban - an IBAN to be checked\n\t * @returns - `true` if the provided `iban` is an Indirect IBAN, and `false` otherwise.\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.isIndirect(\"XE81ETHXREGGAVOFYORK\");\n\t * > true\n\t * ```\n\t */\n\tpublic static isIndirect(iban: string): boolean {\n\t\treturn iban.length === 20;\n\t}\n\n\t/**\n\t * check if iban number if indirect\n\t * It actually check the length of the provided variable and, only if it is 20, it returns true.\n\t * Note: this is also available as a static method.\n\t * @param iban - an IBAN to be checked\n\t * @returns - `true` if the provided `iban` is an Indirect IBAN, and `false` otherwise.\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE81ETHXREGGAVOFYORK\");\n\t * iban.isIndirect();\n\t * > true\n\t * ```\n\t */\n\tpublic isIndirect(): boolean {\n\t\treturn Iban.isIndirect(this._iban);\n\t}\n\n\t/**\n\t * This method could be used to check if a given string is valid IBAN object.\n\t * Note: this is also available as a method at an Iban instance.\n\t *\n\t * @param iban - a string to be checked if it is in IBAN\n\t * @returns - true if it is valid IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.isValid(\"XE81ETHXREGGAVOFYORK\");\n\t * > true\n\t *\n\t * web3.eth.Iban.isValid(\"XE82ETHXREGGAVOFYORK\");\n\t * > false // because the checksum is incorrect\n\t * ```\n\t */\n\tpublic static isValid(iban: string) {\n\t\treturn (\n\t\t\t/^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(iban) &&\n\t\t\tIban._mod9710(Iban._iso13616Prepare(iban)) === 1\n\t\t);\n\t}\n\n\t/**\n\t * Should be called to check if the early provided IBAN is correct.\n\t * Note: this is also available as a static method.\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE81ETHXREGGAVOFYORK\");\n\t * iban.isValid();\n\t * > true\n\t *\n\t * const iban = new web3.eth.Iban(\"XE82ETHXREGGAVOFYORK\");\n\t * iban.isValid();\n\t * > false // because the checksum is incorrect\n\t * ```\n\t */\n\tpublic isValid(): boolean {\n\t\treturn Iban.isValid(this._iban);\n\t}\n\n\t/**\n\t * Construct a direct or indirect IBAN that has conversion methods and validity checks.\n\t * If the provided string was not of either the length of a direct IBAN (34 or 35),\n\t * nor the length of an indirect IBAN (20), an Error will be thrown ('Invalid IBAN was provided').\n\t *\n\t * @param iban - a Direct or an Indirect IBAN\n\t * @returns - Iban instance\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\");\n\t * > Iban { _iban: 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS' }\n\t * ```\n\t */\n\tpublic constructor(iban: string) {\n\t\tif (Iban.isIndirect(iban) || Iban.isDirect(iban)) {\n\t\t\tthis._iban = iban;\n\t\t} else {\n\t\t\tthrow new Error('Invalid IBAN was provided');\n\t\t}\n\t}\n\n\t/**\n\t * Convert the passed BBAN to an IBAN for this country specification.\n\t * Please note that <i>\"generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account\"</i>.\n\t * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits\n\t *\n\t * @param bban - the BBAN to convert to IBAN\n\t * @returns an Iban class instance that holds the equivalent IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.fromBban('ETHXREGGAVOFYORK');\n\t * > Iban {_iban: \"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\"}\n\t * ```\n\t */\n\tpublic static fromBban(bban: string): Iban {\n\t\tconst countryCode = 'XE';\n\n\t\tconst remainder = this._mod9710(this._iso13616Prepare(`${countryCode}00${bban}`));\n\t\tconst checkDigit = `0${(98 - remainder).toString()}`.slice(-2);\n\n\t\treturn new Iban(`${countryCode}${checkDigit}${bban}`);\n\t}\n\n\t/**\n\t * Should be used to create IBAN object for given institution and identifier\n\t *\n\t * @param options - an object holds the `institution` and the `identifier` which will be composed to create an `Iban` object from.\n\t * @returns an Iban class instance that holds the equivalent IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.createIndirect({\n\t * institution: \"XREG\",\n\t * identifier: \"GAVOFYORK\"\n\t * });\n\t * > Iban {_iban: \"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\"}\n\t * ```\n\t */\n\tpublic static createIndirect(options: IbanOptions): Iban {\n\t\treturn Iban.fromBban(`ETH${options.institution}${options.identifier}`);\n\t}\n\n\t/**\n\t * This method should be used to create iban object from an Ethereum address.\n\t *\n\t * @param address - an Ethereum address\n\t * @returns an Iban class instance that holds the equivalent IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.fromAddress(\"0x00c5496aEe77C1bA1f0854206A26DdA82a81D6D8\");\n\t * > Iban {_iban: \"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\"}\n\t * ```\n\t */\n\tpublic static fromAddress(address: HexString): Iban {\n\t\tif (!isAddress(address)) {\n\t\t\tthrow new InvalidAddressError(address);\n\t\t}\n\n\t\tconst num = BigInt(hexToNumber(address));\n\t\tconst base36 = num.toString(36);\n\t\tconst padded = leftPad(base36, 15);\n\t\treturn Iban.fromBban(padded.toUpperCase());\n\t}\n\n\t/**\n\t * This method should be used to create an ethereum address from a Direct IBAN address.\n\t * If the provided string was not a direct IBAN (has the length of 34 or 35), an Error will be thrown:\n\t * ('Iban is indirect and cannot be converted. Must be length of 34 or 35').\n\t * Note: this is also available as a method at an Iban instance.\n\t *\n\t * @param iban - a Direct IBAN address\n\t * @return the equivalent ethereum address\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.toAddress(\"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\");\n\t * > \"0x00c5496aEe77C1bA1f0854206A26DdA82a81D6D8\"\n\t * ```\n\t */\n\tpublic static toAddress = (iban: string): HexString => {\n\t\tconst ibanObject = new Iban(iban);\n\t\treturn ibanObject.toAddress();\n\t};\n\n\t/**\n\t * This method should be used to create the equivalent ethereum address for the early provided Direct IBAN address.\n\t * If the provided string was not a direct IBAN (has the length of 34 or 35), an Error will be thrown:\n\t * ('Iban is indirect and cannot be converted. Must be length of 34 or 35').\n\t * Note: this is also available as a static method.\n\t *\n\t * @return the equivalent ethereum address\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\");\n\t * iban.toAddress();\n\t * > \"0x00c5496aEe77C1bA1f0854206A26DdA82a81D6D8\"\n\t * ```\n\t */\n\tpublic toAddress = (): HexString => {\n\t\tif (this.isDirect()) {\n\t\t\t// check if Iban can be converted to an address\n\t\t\tconst base36 = this._iban.slice(4);\n\t\t\tconst parsedBigInt = Iban._parseInt(base36, 36); // convert the base36 string to a bigint\n\t\t\tconst paddedBigInt = leftPad(parsedBigInt, 40);\n\t\t\treturn toChecksumAddress(paddedBigInt);\n\t\t}\n\t\tthrow new Error('Iban is indirect and cannot be converted. Must be length of 34 or 35');\n\t};\n\n\t/**\n\t * This method should be used to create IBAN address from an Ethereum address\n\t *\n\t * @param address - an Ethereum address\n\t * @return the equivalent IBAN address\n\t *\n\t * @example\n\t * ```ts\n\t * web3.eth.Iban.toIban(\"0x00c5496aEe77C1bA1f0854206A26DdA82a81D6D8\");\n\t * > \"XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS\"\n\t * ```\n\t */\n\tpublic static toIban(address: HexString): string {\n\t\treturn Iban.fromAddress(address).toString();\n\t}\n\n\t/**\n\t * Should be called to get client identifier within institution\n\t *\n\t * @return the client of the IBAN instance.\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE81ETHXREGGAVOFYORK\");\n\t * iban.client();\n\t * > 'GAVOFYORK'\n\t * ```\n\t */\n\tpublic client(): string {\n\t\treturn this.isIndirect() ? this._iban.slice(11) : '';\n\t}\n\n\t/**\n\t * Returns the IBAN checksum of the early provided IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE81ETHXREGGAVOFYORK\");\n\t * iban.checksum();\n\t * > \"81\"\n\t * ```\n\t *\n\t */\n\tpublic checksum(): string {\n\t\treturn this._iban.slice(2, 4);\n\t}\n\n\t/**\n\t * Returns institution identifier from the early provided IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban(\"XE81ETHXREGGAVOFYORK\");\n\t * iban.institution();\n\t * > 'XREG'\n\t * ```\n\t */\n\tpublic institution(): string {\n\t\treturn this.isIndirect() ? this._iban.slice(7, 11) : '';\n\t}\n\n\t/**\n\t * Simply returns the early provided IBAN\n\t *\n\t * @example\n\t * ```ts\n\t * const iban = new web3.eth.Iban('XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS');\n\t * iban.toString();\n\t * > 'XE7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS'\n\t * ```\n\t */\n\tpublic toString(): string {\n\t\treturn this._iban;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tWeb3EventCallback,\n\tWeb3EventEmitter,\n\tWeb3EventKey,\n\tWeb3EventMap,\n} from './web3_event_emitter.js';\n\nexport type PromiseExecutor<T> = (\n\tresolve: (data: T) => void,\n\treject: (reason: unknown) => void,\n) => void;\n\nexport class Web3PromiEvent<ResolveType, EventMap extends Web3EventMap>\n\textends Web3EventEmitter<EventMap>\n\timplements Promise<ResolveType>\n{\n\tprivate readonly _promise: Promise<ResolveType>;\n\n\tpublic constructor(executor: PromiseExecutor<ResolveType>) {\n\t\tsuper();\n\t\tthis._promise = new Promise<ResolveType>(executor);\n\t}\n\n\t// public tag to treat object as promise by different libs\n\t// eslint-disable-next-line @typescript-eslint/prefer-as-const\n\tpublic [Symbol.toStringTag]: 'Promise' = 'Promise';\n\n\tpublic async then<TResult1 = ResolveType, TResult2 = never>(\n\t\tonfulfilled?: ((value: ResolveType) => TResult1 | PromiseLike<TResult1>) | undefined,\n\t\tonrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined,\n\t): Promise<TResult1 | TResult2> {\n\t\treturn this._promise.then(onfulfilled, onrejected);\n\t}\n\n\tpublic async catch<TResult = never>(\n\t\tonrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined,\n\t): Promise<ResolveType | TResult> {\n\t\treturn this._promise.catch(onrejected);\n\t}\n\n\tpublic async finally(onfinally?: (() => void) | undefined): Promise<ResolveType> {\n\t\treturn this._promise.finally(onfinally);\n\t}\n\n\tpublic on<K extends Web3EventKey<EventMap>>(\n\t\teventName: K,\n\t\tfn: Web3EventCallback<EventMap[K]>,\n\t): this {\n\t\tsuper.on(eventName, fn);\n\n\t\treturn this;\n\t}\n\n\tpublic once<K extends Web3EventKey<EventMap>>(\n\t\teventName: K,\n\t\tfn: Web3EventCallback<EventMap[K]>,\n\t): this {\n\t\tsuper.once(eventName, fn);\n\n\t\treturn this;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3RequestManager } from 'web3-core';\nimport {\n\tAddress,\n\tBlockNumberOrTag,\n\tFilter,\n\tHexString32Bytes,\n\tHexString8Bytes,\n\tHexStringBytes,\n\tTransactionCallAPI,\n\tTransactionWithSenderAPI,\n\tUint,\n\tUint256,\n\tWeb3EthExecutionAPI,\n\tEip712TypedData,\n} from 'web3-types';\nimport { validator } from 'web3-validator';\n\nexport async function getProtocolVersion(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_protocolVersion',\n\t\tparams: [],\n\t});\n}\n\nexport async function getSyncing(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_syncing',\n\t\tparams: [],\n\t});\n}\n\nexport async function getCoinbase(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_coinbase',\n\t\tparams: [],\n\t});\n}\n\nexport async function getMining(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_mining',\n\t\tparams: [],\n\t});\n}\n\nexport async function getHashRate(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_hashrate',\n\t\tparams: [],\n\t});\n}\n\nexport async function getGasPrice(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_gasPrice',\n\t\tparams: [],\n\t});\n}\n\nexport async function getMaxPriorityFeePerGas(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_maxPriorityFeePerGas',\n\t\tparams: [],\n\t});\n}\n\nexport async function getAccounts(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_accounts',\n\t\tparams: [],\n\t});\n}\n\nexport async function getBlockNumber(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_blockNumber',\n\t\tparams: [],\n\t});\n}\n\nexport async function getBalance(\n\trequestManager: Web3RequestManager,\n\taddress: Address,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['address', 'blockNumberOrTag'], [address, blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getBalance',\n\t\tparams: [address, blockNumber],\n\t});\n}\n\nexport async function getStorageAt(\n\trequestManager: Web3RequestManager,\n\taddress: Address,\n\tstorageSlot: Uint256,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['address', 'hex', 'blockNumberOrTag'], [address, storageSlot, blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getStorageAt',\n\t\tparams: [address, storageSlot, blockNumber],\n\t});\n}\n\nexport async function getTransactionCount(\n\trequestManager: Web3RequestManager,\n\taddress: Address,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['address', 'blockNumberOrTag'], [address, blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getTransactionCount',\n\t\tparams: [address, blockNumber],\n\t});\n}\n\nexport async function getBlockTransactionCountByHash(\n\trequestManager: Web3RequestManager,\n\tblockHash: HexString32Bytes,\n) {\n\tvalidator.validate(['bytes32'], [blockHash]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getBlockTransactionCountByHash',\n\t\tparams: [blockHash],\n\t});\n}\n\nexport async function getBlockTransactionCountByNumber(\n\trequestManager: Web3RequestManager,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['blockNumberOrTag'], [blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getBlockTransactionCountByNumber',\n\t\tparams: [blockNumber],\n\t});\n}\n\nexport async function getUncleCountByBlockHash(\n\trequestManager: Web3RequestManager,\n\tblockHash: HexString32Bytes,\n) {\n\tvalidator.validate(['bytes32'], [blockHash]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getUncleCountByBlockHash',\n\t\tparams: [blockHash],\n\t});\n}\n\nexport async function getUncleCountByBlockNumber(\n\trequestManager: Web3RequestManager,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['blockNumberOrTag'], [blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getUncleCountByBlockNumber',\n\t\tparams: [blockNumber],\n\t});\n}\n\nexport async function getCode(\n\trequestManager: Web3RequestManager,\n\taddress: Address,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['address', 'blockNumberOrTag'], [address, blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getCode',\n\t\tparams: [address, blockNumber],\n\t});\n}\n\nexport async function sign(\n\trequestManager: Web3RequestManager,\n\taddress: Address,\n\tmessage: HexStringBytes,\n) {\n\tvalidator.validate(['address', 'hex'], [address, message]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_sign',\n\t\tparams: [address, message],\n\t});\n}\n\n// TODO - Validation should be:\n// isTransactionWithSender(transaction)\n// ? validateTransactionWithSender(transaction)\n// : validateTransactionWithSender(transaction, true) with true being a isPartial flag\nexport async function signTransaction(\n\trequestManager: Web3RequestManager,\n\ttransaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>,\n) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_signTransaction',\n\t\tparams: [transaction],\n\t});\n}\n\n// TODO - Validation should be:\n// isTransactionWithSender(transaction)\n// ? validateTransactionWithSender(transaction)\n// : validateTransactionWithSender(transaction, true) with true being a isPartial flag\nexport async function sendTransaction(\n\trequestManager: Web3RequestManager,\n\ttransaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>,\n) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_sendTransaction',\n\t\tparams: [transaction],\n\t});\n}\n\nexport async function sendRawTransaction(\n\trequestManager: Web3RequestManager,\n\ttransaction: HexStringBytes,\n) {\n\tvalidator.validate(['hex'], [transaction]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_sendRawTransaction',\n\t\tparams: [transaction],\n\t});\n}\n\n// TODO - validate transaction\nexport async function call(\n\trequestManager: Web3RequestManager,\n\ttransaction: TransactionCallAPI,\n\tblockNumber: BlockNumberOrTag,\n) {\n\t// validateTransactionCall(transaction);\n\tvalidator.validate(['blockNumberOrTag'], [blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_call',\n\t\tparams: [transaction, blockNumber],\n\t});\n}\n\n// TODO Not sure how to best validate Partial<TransactionWithSender>\nexport async function estimateGas<TransactionType = TransactionWithSenderAPI>(\n\trequestManager: Web3RequestManager,\n\ttransaction: Partial<TransactionType>,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['blockNumberOrTag'], [blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_estimateGas',\n\t\tparams: [transaction, blockNumber],\n\t});\n}\n\nexport async function getBlockByHash(\n\trequestManager: Web3RequestManager,\n\tblockHash: HexString32Bytes,\n\thydrated: boolean,\n) {\n\tvalidator.validate(['bytes32', 'bool'], [blockHash, hydrated]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getBlockByHash',\n\t\tparams: [blockHash, hydrated],\n\t});\n}\n\nexport async function getBlockByNumber(\n\trequestManager: Web3RequestManager,\n\tblockNumber: BlockNumberOrTag,\n\thydrated: boolean,\n) {\n\tvalidator.validate(['blockNumberOrTag', 'bool'], [blockNumber, hydrated]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getBlockByNumber',\n\t\tparams: [blockNumber, hydrated],\n\t});\n}\n\nexport async function getTransactionByHash(\n\trequestManager: Web3RequestManager,\n\ttransactionHash: HexString32Bytes,\n) {\n\tvalidator.validate(['bytes32'], [transactionHash]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getTransactionByHash',\n\t\tparams: [transactionHash],\n\t});\n}\n\nexport async function getTransactionByBlockHashAndIndex(\n\trequestManager: Web3RequestManager,\n\tblockHash: HexString32Bytes,\n\ttransactionIndex: Uint,\n) {\n\tvalidator.validate(['bytes32', 'hex'], [blockHash, transactionIndex]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getTransactionByBlockHashAndIndex',\n\t\tparams: [blockHash, transactionIndex],\n\t});\n}\n\nexport async function getTransactionByBlockNumberAndIndex(\n\trequestManager: Web3RequestManager,\n\tblockNumber: BlockNumberOrTag,\n\ttransactionIndex: Uint,\n) {\n\tvalidator.validate(['blockNumberOrTag', 'hex'], [blockNumber, transactionIndex]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getTransactionByBlockNumberAndIndex',\n\t\tparams: [blockNumber, transactionIndex],\n\t});\n}\n\nexport async function getTransactionReceipt(\n\trequestManager: Web3RequestManager,\n\ttransactionHash: HexString32Bytes,\n) {\n\tvalidator.validate(['bytes32'], [transactionHash]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getTransactionReceipt',\n\t\tparams: [transactionHash],\n\t});\n}\n\nexport async function getUncleByBlockHashAndIndex(\n\trequestManager: Web3RequestManager,\n\tblockHash: HexString32Bytes,\n\tuncleIndex: Uint,\n) {\n\tvalidator.validate(['bytes32', 'hex'], [blockHash, uncleIndex]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getUncleByBlockHashAndIndex',\n\t\tparams: [blockHash, uncleIndex],\n\t});\n}\n\nexport async function getUncleByBlockNumberAndIndex(\n\trequestManager: Web3RequestManager,\n\tblockNumber: BlockNumberOrTag,\n\tuncleIndex: Uint,\n) {\n\tvalidator.validate(['blockNumberOrTag', 'hex'], [blockNumber, uncleIndex]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getUncleByBlockNumberAndIndex',\n\t\tparams: [blockNumber, uncleIndex],\n\t});\n}\n\nexport async function getCompilers(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_getCompilers',\n\t\tparams: [],\n\t});\n}\n\nexport async function compileSolidity(requestManager: Web3RequestManager, code: string) {\n\tvalidator.validate(['string'], [code]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_compileSolidity',\n\t\tparams: [code],\n\t});\n}\n\nexport async function compileLLL(requestManager: Web3RequestManager, code: string) {\n\tvalidator.validate(['string'], [code]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_compileLLL',\n\t\tparams: [code],\n\t});\n}\n\nexport async function compileSerpent(requestManager: Web3RequestManager, code: string) {\n\tvalidator.validate(['string'], [code]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_compileSerpent',\n\t\tparams: [code],\n\t});\n}\n\nexport async function newFilter(requestManager: Web3RequestManager, filter: Filter) {\n\tvalidator.validate(['filter'], [filter]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_newFilter',\n\t\tparams: [filter],\n\t});\n}\n\nexport async function newBlockFilter(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_newBlockFilter',\n\t\tparams: [],\n\t});\n}\n\nexport async function newPendingTransactionFilter(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_newPendingTransactionFilter',\n\t\tparams: [],\n\t});\n}\n\nexport async function uninstallFilter(requestManager: Web3RequestManager, filterIdentifier: Uint) {\n\tvalidator.validate(['hex'], [filterIdentifier]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_uninstallFilter',\n\t\tparams: [filterIdentifier],\n\t});\n}\n\nexport async function getFilterChanges(requestManager: Web3RequestManager, filterIdentifier: Uint) {\n\tvalidator.validate(['hex'], [filterIdentifier]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getFilterChanges',\n\t\tparams: [filterIdentifier],\n\t});\n}\n\nexport async function getFilterLogs(requestManager: Web3RequestManager, filterIdentifier: Uint) {\n\tvalidator.validate(['hex'], [filterIdentifier]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getFilterLogs',\n\t\tparams: [filterIdentifier],\n\t});\n}\n\nexport async function getLogs(requestManager: Web3RequestManager, filter: Filter) {\n\tvalidator.validate(['filter'], [filter]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getLogs',\n\t\tparams: [filter],\n\t});\n}\n\nexport async function getWork(requestManager: Web3RequestManager) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_getWork',\n\t\tparams: [],\n\t});\n}\n\nexport async function submitWork(\n\trequestManager: Web3RequestManager,\n\tnonce: HexString8Bytes,\n\thash: HexString32Bytes,\n\tdigest: HexString32Bytes,\n) {\n\tvalidator.validate(['bytes8', 'bytes32', 'bytes32'], [nonce, hash, digest]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_submitWork',\n\t\tparams: [nonce, hash, digest],\n\t});\n}\n\nexport async function submitHashrate(\n\trequestManager: Web3RequestManager,\n\thashRate: HexString32Bytes,\n\tid: HexString32Bytes,\n) {\n\tvalidator.validate(['bytes32', 'bytes32'], [hashRate, id]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_submitHashrate',\n\t\tparams: [hashRate, id],\n\t});\n}\n\nexport async function getFeeHistory(\n\trequestManager: Web3RequestManager,\n\tblockCount: Uint,\n\tnewestBlock: BlockNumberOrTag,\n\trewardPercentiles: number[],\n) {\n\tvalidator.validate(['hex', 'blockNumberOrTag'], [blockCount, newestBlock]);\n\n\tfor (const rewardPercentile of rewardPercentiles) {\n\t\tvalidator.validate(['number'], [rewardPercentile]);\n\t}\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_feeHistory',\n\t\tparams: [blockCount, newestBlock, rewardPercentiles],\n\t});\n}\n\nexport async function getPendingTransactions(\n\trequestManager: Web3RequestManager<Web3EthExecutionAPI>,\n) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_pendingTransactions',\n\t\tparams: [],\n\t});\n}\n\nexport async function requestAccounts(requestManager: Web3RequestManager<Web3EthExecutionAPI>) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_requestAccounts',\n\t\tparams: [],\n\t});\n}\n\nexport async function getChainId(requestManager: Web3RequestManager<Web3EthExecutionAPI>) {\n\treturn requestManager.send({\n\t\tmethod: 'eth_chainId',\n\t\tparams: [],\n\t});\n}\n\nexport async function getProof(\n\trequestManager: Web3RequestManager<Web3EthExecutionAPI>,\n\taddress: Address,\n\tstorageKeys: HexString32Bytes[],\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(\n\t\t['address', 'bytes32[]', 'blockNumberOrTag'],\n\t\t[address, storageKeys, blockNumber],\n\t);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_getProof',\n\t\tparams: [address, storageKeys, blockNumber],\n\t});\n}\n\nexport async function getNodeInfo(requestManager: Web3RequestManager<Web3EthExecutionAPI>) {\n\treturn requestManager.send({\n\t\tmethod: 'web3_clientVersion',\n\t\tparams: [],\n\t});\n}\n\nexport async function createAccessList(\n\trequestManager: Web3RequestManager,\n\ttransaction: TransactionWithSenderAPI | Partial<TransactionWithSenderAPI>,\n\tblockNumber: BlockNumberOrTag,\n) {\n\tvalidator.validate(['blockNumberOrTag'], [blockNumber]);\n\n\treturn requestManager.send({\n\t\tmethod: 'eth_createAccessList',\n\t\tparams: [transaction, blockNumber],\n\t});\n}\n\nexport async function signTypedData(\n\trequestManager: Web3RequestManager,\n\taddress: Address,\n\ttypedData: Eip712TypedData,\n\tuseLegacy = false,\n): Promise<string> {\n\t// TODO Add validation for typedData\n\tvalidator.validate(['address'], [address]);\n\n\treturn requestManager.send({\n\t\tmethod: `eth_signTypedData${useLegacy ? '' : '_v4'}`,\n\t\tparams: [address, typedData],\n\t});\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3RequestManager } from 'web3-core';\nimport { Address, EthPersonalAPI, HexString, Transaction } from 'web3-types';\n\nexport const getAccounts = async (requestManager: Web3RequestManager<EthPersonalAPI>) =>\n\trequestManager.send({\n\t\tmethod: 'personal_listAccounts',\n\t\tparams: [],\n\t});\n\nexport const newAccount = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tpassword: string,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_newAccount',\n\t\tparams: [password],\n\t});\n\nexport const unlockAccount = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\taddress: Address,\n\tpassword: string,\n\tunlockDuration: number,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_unlockAccount',\n\t\tparams: [address, password, unlockDuration],\n\t});\n\nexport const lockAccount = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\taddress: Address,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_lockAccount',\n\t\tparams: [address],\n\t});\n\nexport const importRawKey = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tkeyData: HexString,\n\tpassphrase: string,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_importRawKey',\n\t\tparams: [keyData, passphrase],\n\t});\n\nexport const sendTransaction = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\ttx: Transaction,\n\tpassphrase: string,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_sendTransaction',\n\t\tparams: [tx, passphrase],\n\t});\n\nexport const signTransaction = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\ttx: Transaction,\n\tpassphrase: string,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_signTransaction',\n\t\tparams: [tx, passphrase],\n\t});\n\nexport const sign = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tdata: HexString,\n\taddress: Address,\n\tpassphrase: string,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_sign',\n\t\tparams: [data, address, passphrase],\n\t});\n\nexport const ecRecover = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tsignedData: HexString,\n\tsignature: string,\n) =>\n\trequestManager.send({\n\t\tmethod: 'personal_ecRecover',\n\t\tparams: [signedData, signature],\n\t});\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { format, toHex } from 'web3-utils';\nimport { TransactionTypeParser, Web3Context } from 'web3-core';\nimport { EthExecutionAPI, HardforksOrdered, Transaction, ETH_DATA_FORMAT } from 'web3-types';\nimport { Web3ValidatorError, isNullish, validator } from 'web3-validator';\nimport { InvalidPropertiesForTransactionTypeError } from 'web3-errors';\n\nimport { InternalTransaction } from '../types.js';\n\n// undefined is treated as null for JSON schema validator\nconst transactionType0x0Schema = {\n\ttype: 'object',\n\tproperties: {\n\t\taccessList: {\n\t\t\ttype: 'null',\n\t\t},\n\t\tmaxFeePerGas: {\n\t\t\ttype: 'null',\n\t\t},\n\t\tmaxPriorityFeePerGas: {\n\t\t\ttype: 'null',\n\t\t},\n\t},\n};\nconst transactionType0x1Schema = {\n\ttype: 'object',\n\tproperties: {\n\t\tmaxFeePerGas: {\n\t\t\ttype: 'null',\n\t\t},\n\t\tmaxPriorityFeePerGas: {\n\t\t\ttype: 'null',\n\t\t},\n\t},\n};\nconst transactionType0x2Schema = {\n\ttype: 'object',\n\tproperties: {\n\t\tgasPrice: {\n\t\t\ttype: 'null',\n\t\t},\n\t},\n};\n\nconst validateTxTypeAndHandleErrors = (\n\ttxSchema: object,\n\ttx: Transaction,\n\ttxType: '0x0' | '0x1' | '0x2',\n) => {\n\ttry {\n\t\tvalidator.validateJSONSchema(txSchema, tx);\n\t} catch (error) {\n\t\tif (error instanceof Web3ValidatorError)\n\t\t\t// Erroneously reported error\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\t\tthrow new InvalidPropertiesForTransactionTypeError(error.errors, txType);\n\n\t\tthrow error;\n\t}\n};\n\nexport const defaultTransactionTypeParser: TransactionTypeParser = transaction => {\n\tconst tx = transaction as unknown as Transaction;\n\tif (!isNullish(tx.type)) {\n\t\tlet txSchema;\n\t\tswitch (tx.type) {\n\t\t\tcase '0x0':\n\t\t\t\ttxSchema = transactionType0x0Schema;\n\t\t\t\tbreak;\n\t\t\tcase '0x1':\n\t\t\t\ttxSchema = transactionType0x1Schema;\n\t\t\t\tbreak;\n\t\t\tcase '0x2':\n\t\t\t\ttxSchema = transactionType0x2Schema;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\treturn format({ format: 'uint' }, tx.type, ETH_DATA_FORMAT);\n\t\t}\n\n\t\tvalidateTxTypeAndHandleErrors(txSchema, tx, tx.type);\n\n\t\treturn format({ format: 'uint' }, tx.type, ETH_DATA_FORMAT);\n\t}\n\n\tif (!isNullish(tx.maxFeePerGas) || !isNullish(tx.maxPriorityFeePerGas)) {\n\t\tvalidateTxTypeAndHandleErrors(transactionType0x2Schema, tx, '0x2');\n\t\treturn '0x2';\n\t}\n\n\tif (!isNullish(tx.accessList)) {\n\t\tvalidateTxTypeAndHandleErrors(transactionType0x1Schema, tx, '0x1');\n\t\treturn '0x1';\n\t}\n\n\tconst givenHardfork = tx.hardfork ?? tx.common?.hardfork;\n\n\tif (!isNullish(givenHardfork)) {\n\t\tconst hardforkIndex = Object.keys(HardforksOrdered).indexOf(givenHardfork);\n\n\t\t// givenHardfork is London or later, so EIP-2718 is supported\n\t\tif (hardforkIndex >= Object.keys(HardforksOrdered).indexOf('london'))\n\t\t\treturn !isNullish(tx.gasPrice) ? '0x0' : '0x2';\n\n\t\t// givenHardfork is Berlin, tx.accessList is undefined, assume type is 0x0\n\t\tif (hardforkIndex === Object.keys(HardforksOrdered).indexOf('berlin')) return '0x0';\n\t}\n\n\t// gasprice is defined\n\tif (!isNullish(tx.gasPrice)) {\n\t\tvalidateTxTypeAndHandleErrors(transactionType0x0Schema, tx, '0x0');\n\t\treturn '0x0';\n\t}\n\n\t// no transaction type can be inferred from properties, use default transaction type\n\treturn undefined;\n};\n\nexport const detectTransactionType = (\n\ttransaction: InternalTransaction,\n\tweb3Context?: Web3Context<EthExecutionAPI>,\n) =>\n\t(web3Context?.transactionTypeParser ?? defaultTransactionTypeParser)(\n\t\ttransaction as unknown as Record<string, unknown>,\n\t);\n\nexport const detectRawTransactionType = (transaction: Uint8Array) =>\n\ttransaction[0] > 0x7f ? '0x0' : toHex(transaction[0]);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nexport const accessListItemSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\taddress: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tstorageKeys: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const accessListSchema = {\n\ttype: 'array',\n\titems: {\n\t\t...accessListItemSchema,\n\t},\n};\n\nexport const accessListResultSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\taccessList: {\n\t\t\t...accessListSchema,\n\t\t},\n\t\tgasUsed: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n};\n\nexport const chainSchema = {\n\ttype: 'string',\n\tenum: ['goerli', 'kovan', 'mainnet', 'rinkeby', 'ropsten', 'sepolia'],\n};\n\nexport const hardforkSchema = {\n\ttype: 'string',\n\tenum: [\n\t\t'arrowGlacier',\n\t\t'berlin',\n\t\t'byzantium',\n\t\t'chainstart',\n\t\t'constantinople',\n\t\t'dao',\n\t\t'homestead',\n\t\t'istanbul',\n\t\t'london',\n\t\t'merge',\n\t\t'muirGlacier',\n\t\t'petersburg',\n\t\t'shanghai',\n\t\t'spuriousDragon',\n\t\t'tangerineWhistle',\n\t],\n};\n\nexport const customChainSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tname: {\n\t\t\tformat: 'string',\n\t\t},\n\t\tnetworkId: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tchainId: {\n\t\t\tformat: 'uint',\n\t\t},\n\t},\n};\n\nexport const transactionSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tfrom: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tto: {\n\t\t\toneOf: [{ format: 'address' }, { type: 'null' }],\n\t\t},\n\t\tvalue: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgasPrice: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\teffectiveGasPrice: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttype: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tmaxFeePerGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tmaxPriorityFeePerGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\taccessList: {\n\t\t\t...accessListSchema,\n\t\t},\n\t\tdata: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tinput: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tnonce: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tchain: { ...chainSchema },\n\t\thardfork: { ...hardforkSchema },\n\t\tchainId: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tnetworkId: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tcommon: {\n\t\t\ttype: 'object',\n\t\t\tproperties: {\n\t\t\t\tcustomChain: { ...customChainSchema },\n\t\t\t\tbaseChain: {\n\t\t\t\t\t...chainSchema,\n\t\t\t\t},\n\t\t\t\thardfork: {\n\t\t\t\t\t...hardforkSchema,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tgasLimit: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tv: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tr: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ts: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t},\n};\n\nexport const transactionInfoSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\t...transactionSchema.properties,\n\t\tblockHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tblockNumber: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\thash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ttransactionIndex: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tfrom: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tto: {\n\t\t\toneOf: [{ format: 'address' }, { type: 'null' }],\n\t\t},\n\t\tvalue: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgasPrice: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\teffectiveGasPrice: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttype: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tmaxFeePerGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tmaxPriorityFeePerGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\taccessList: {\n\t\t\t...accessListSchema,\n\t\t},\n\t\tdata: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tinput: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tnonce: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgasLimit: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tv: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tr: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ts: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t},\n};\n\nexport const withdrawalsSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tindex: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tvalidatorIndex: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\taddress: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tamount: {\n\t\t\tformat: 'uint',\n\t\t},\n\t},\n};\n\nexport const blockSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tbaseFeePerGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tblobGasUsed: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tdifficulty: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\texcessBlobGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\textraData: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tgasLimit: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgasUsed: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\thash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tlogsBloom: {\n\t\t\tformat: 'bytes256',\n\t\t},\n\t\tminer: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tmixHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tnonce: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tnumber: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tparentBeaconBlockRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tparentHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\treceiptsRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tsha3Uncles: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tsize: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tstateRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ttimestamp: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttotalDifficulty: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttransactions: {\n\t\t\toneOf: [\n\t\t\t\t{\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\titems: {\n\t\t\t\t\t\t...transactionInfoSchema,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\titems: {\n\t\t\t\t\t\tformat: 'bytes32',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\ttransactionsRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tuncles: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t\twithdrawals: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\t...withdrawalsSchema,\n\t\t\t},\n\t\t},\n\t\twithdrawalsRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t},\n};\n\nexport const blockHeaderSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tauthor: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\texcessDataGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tbaseFeePerGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tblobGasUsed: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tdifficulty: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\texcessBlobGas: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\textraData: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tgasLimit: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgasUsed: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\thash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tlogsBloom: {\n\t\t\tformat: 'bytes256',\n\t\t},\n\t\tminer: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tmixHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tnonce: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tnumber: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tparentBeaconBlockRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tparentHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\treceiptsRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tsha3Uncles: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tsize: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tstateRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ttimestamp: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttotalDifficulty: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttransactions: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t\ttransactionsRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tuncles: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t\twithdrawals: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\t...withdrawalsSchema,\n\t\t\t},\n\t\t},\n\t\twithdrawalsRoot: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t},\n};\n\nexport const logSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tremoved: {\n\t\t\tformat: 'bool',\n\t\t},\n\t\tlogIndex: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttransactionIndex: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttransactionHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tblockHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tblockNumber: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\taddress: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tdata: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\ttopics: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t},\n};\nexport const syncSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tstartingBlock: {\n\t\t\tformat: 'string',\n\t\t},\n\t\tcurrentBlock: {\n\t\t\tformat: 'string',\n\t\t},\n\t\thighestBlock: {\n\t\t\tformat: 'string',\n\t\t},\n\t\tknownStates: {\n\t\t\tformat: 'string',\n\t\t},\n\t\tpulledStates: {\n\t\t\tformat: 'string',\n\t\t},\n\t},\n};\n\nexport const transactionReceiptSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\ttransactionHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ttransactionIndex: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tblockHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tblockNumber: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tfrom: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tto: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tcumulativeGasUsed: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tgasUsed: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\teffectiveGasPrice: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tcontractAddress: {\n\t\t\tformat: 'address',\n\t\t},\n\t\tlogs: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\t...logSchema,\n\t\t\t},\n\t\t},\n\t\tlogsBloom: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\troot: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tstatus: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\ttype: {\n\t\t\tformat: 'uint',\n\t\t},\n\t},\n};\n\nexport const SignatureObjectSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tmessageHash: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tr: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\ts: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tv: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tmessage: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t\tsignature: {\n\t\t\tformat: 'bytes',\n\t\t},\n\t},\n};\nexport const feeHistorySchema = {\n\ttype: 'object',\n\tproperties: {\n\t\toldestBlock: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tbaseFeePerGas: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'uint',\n\t\t\t},\n\t\t},\n\t\treward: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: {\n\t\t\t\t\tformat: 'uint',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tgasUsedRatio: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\ttype: 'number',\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const storageProofSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tkey: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tvalue: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tproof: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const accountSchema = {\n\ttype: 'object',\n\tproperties: {\n\t\tbalance: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tcodeHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\tnonce: {\n\t\t\tformat: 'uint',\n\t\t},\n\t\tstorageHash: {\n\t\t\tformat: 'bytes32',\n\t\t},\n\t\taccountProof: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'bytes32',\n\t\t\t},\n\t\t},\n\t\tstorageProof: {\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\t...storageProofSchema,\n\t\t\t},\n\t\t},\n\t},\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Transaction, DataFormat, DEFAULT_RETURN_FORMAT, FormatType } from 'web3-types';\nimport { isNullish, ValidationSchemaInput } from 'web3-validator';\nimport { mergeDeep, format, bytesToHex, toHex } from 'web3-utils';\nimport { TransactionDataAndInputError } from 'web3-errors';\n\nimport { transactionInfoSchema } from '../schemas.js';\nimport { type CustomTransactionSchema } from '../types.js';\n\nexport function formatTransaction<\n\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\tTransactionType extends Transaction = Transaction,\n>(\n\ttransaction: TransactionType,\n\treturnFormat: ReturnFormat = DEFAULT_RETURN_FORMAT as ReturnFormat,\n\toptions: {\n\t\ttransactionSchema?: ValidationSchemaInput | CustomTransactionSchema | undefined;\n\t\tfillInputAndData?: boolean;\n\t} = {\n\t\ttransactionSchema: transactionInfoSchema,\n\t\tfillInputAndData: false,\n\t},\n): FormatType<TransactionType, ReturnFormat> {\n\tlet formattedTransaction = mergeDeep({}, transaction as Record<string, unknown>) as Transaction;\n\tif (!isNullish(transaction?.common)) {\n\t\tformattedTransaction.common = { ...transaction.common };\n\t\tif (!isNullish(transaction.common?.customChain))\n\t\t\tformattedTransaction.common.customChain = { ...transaction.common.customChain };\n\t}\n\tformattedTransaction = format(\n\t\toptions.transactionSchema ?? transactionInfoSchema,\n\t\tformattedTransaction,\n\t\treturnFormat,\n\t);\n\tif (\n\t\t!isNullish(formattedTransaction.data) &&\n\t\t!isNullish(formattedTransaction.input) &&\n\t\t// Converting toHex is accounting for data and input being Uint8Arrays\n\t\t// since comparing Uint8Array is not as straightforward as comparing strings\n\t\ttoHex(formattedTransaction.data) !== toHex(formattedTransaction.input)\n\t)\n\t\tthrow new TransactionDataAndInputError({\n\t\t\tdata: bytesToHex(formattedTransaction.data),\n\t\t\tinput: bytesToHex(formattedTransaction.input),\n\t\t});\n\n\tif (options.fillInputAndData) {\n\t\tif (!isNullish(formattedTransaction.data)) {\n\t\t\tformattedTransaction.input = formattedTransaction.data;\n\t\t} else if (!isNullish(formattedTransaction.input)) {\n\t\t\tformattedTransaction.data = formattedTransaction.input;\n\t\t}\n\t}\n\n\tif (!isNullish(formattedTransaction.gasLimit)) {\n\t\tformattedTransaction.gas = formattedTransaction.gasLimit;\n\t\tdelete formattedTransaction.gasLimit;\n\t}\n\n\treturn formattedTransaction as FormatType<TransactionType, ReturnFormat>;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { format } from 'web3-utils';\nimport { Web3Context } from 'web3-core';\nimport { DataFormat, Web3NetAPI } from 'web3-types';\nimport { netRpcMethods } from 'web3-rpc-methods';\n\nexport async function getId<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<Web3NetAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await netRpcMethods.getId(web3Context.requestManager);\n\n\treturn format({ format: 'uint' }, response as unknown as number, returnFormat);\n}\n\nexport async function getPeerCount<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<Web3NetAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await netRpcMethods.getPeerCount(web3Context.requestManager);\n\n\t// Data returned is number in hex format\n\treturn format({ format: 'uint' }, response as unknown as number, returnFormat);\n}\n\nexport const isListening = async (web3Context: Web3Context<Web3NetAPI>) =>\n\tnetRpcMethods.isListening(web3Context.requestManager);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3RequestManager } from 'web3-core';\nimport { Web3NetAPI } from 'web3-types';\n\nexport async function getId(requestManager: Web3RequestManager<Web3NetAPI>) {\n\treturn requestManager.send({\n\t\tmethod: 'net_version',\n\t\tparams: [],\n\t});\n}\n\nexport async function getPeerCount(requestManager: Web3RequestManager<Web3NetAPI>) {\n\treturn requestManager.send({\n\t\tmethod: 'net_peerCount',\n\t\tparams: [],\n\t});\n}\n\nexport async function isListening(requestManager: Web3RequestManager<Web3NetAPI>) {\n\treturn requestManager.send({\n\t\tmethod: 'net_listening',\n\t\tparams: [],\n\t});\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3Context } from 'web3-core';\nimport { DataFormat, DEFAULT_RETURN_FORMAT, Web3NetAPI } from 'web3-types';\n\nimport * as rpcMethodsWrappers from './rpc_method_wrappers.js';\n\n/**\n * Net class allows you to interact with an Ethereum node’s network properties.\n * For using Net package, first install Web3 package using: `npm i web3` or `yarn add web3` based on your package manager, after that Net features can be used.\n * ```ts\n *\n * import { Web3 } from 'web3';\n * const web3 = new Web3('https://mainnet.infura.io/v3/<YOURPROJID>');\n *\n * console.log(await web3.eth.net.getId());\n *\n * ```\n * For using individual package install `web3-net` packages using: `npm i web3-net` or `yarn add web3-net`.\n *\n * ```ts\n * import {Net} from 'web3-net';\n *\n * const net = new Net('https://mainnet.infura.io/v3/<YOURPROJID>');\n * console.log(await net.getId());\n * ```\n */\nexport class Net extends Web3Context<Web3NetAPI> {\n\t/**\n\t * Gets the current network ID\n\t *\n\t * @param returnFormat - Return format\n\t * @returns A Promise of the network ID.\n\t * @example\n\t * ```ts\n\t * const net = new Net(Net.givenProvider || 'ws://some.local-or-remote.node:8546');\n\t * await net.getId();\n\t * > 1\n\t * ```\n\t */\n\tpublic async getId<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getId(this, returnFormat);\n\t}\n\n\t/**\n\t * Get the number of peers connected to.\n\t *\n\t * @param returnFormat - Return format\n\t * @returns A promise of the number of the peers connected to.\n\t * @example\n\t * ```ts\n\t * const net = new Net(Net.givenProvider || 'ws://some.local-or-remote.node:8546');\n\t * await net.getPeerCount();\n\t * > 0\n\t * ```\n\t */\n\tpublic async getPeerCount<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getPeerCount(this, returnFormat);\n\t}\n\n\t/**\n\t * Check if the node is listening for peers\n\t *\n\t * @returns A promise of a boolean if the node is listening to peers\n\t * @example\n\t * ```ts\n\t * const net = new Net(Net.givenProvider || 'ws://some.local-or-remote.node:8546');\n\t * await net.isListening();\n\t * > true\n\t * ```\n\t */\n\tpublic async isListening() {\n\t\treturn rpcMethodsWrappers.isListening(this);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * The web3-net package allows you to interact with an Ethereum node’s network properties.\n *\n * ```ts\n * import Net from 'web3-net';\n *\n * const net = new Net(Net.givenProvider || 'ws://some.local-or-remote.node:8546');\n * // or using the web3 umbrella package\n * import Web3 from 'web3';\n * const web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');\n *\n * // -> web3.eth.net\n *\n * // get the ID of the network\n * await web3.eth.net.getId();\n * > 5777n\n *\n * // get the peer count\n * await web3.eth.net.getPeerCount();\n * > 0n\n *\n * // Check if the node is listening for peers\n * await web3.eth.net.isListening();\n * > true\n * ```\n */\n\n/**\n *\n */\nimport { Net } from './net.js';\n\nexport * from './net.js';\nexport * from './rpc_method_wrappers.js';\n\nexport default Net;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiEventFragment, FMT_BYTES, FMT_NUMBER } from 'web3-types';\n\nexport const ALL_EVENTS = 'ALLEVENTS';\nexport const ALL_EVENTS_ABI = {\n\tname: ALL_EVENTS,\n\tsignature: '',\n\ttype: 'event',\n\tinputs: [],\n} as AbiEventFragment & { signature: string };\n\nexport const NUMBER_DATA_FORMAT = { bytes: FMT_BYTES.HEX, number: FMT_NUMBER.NUMBER } as const;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Context } from 'web3-core';\nimport {\n\tEthExecutionAPI,\n\tNumbers,\n\tTransaction,\n\tDataFormat,\n\tFormatType,\n\tETH_DATA_FORMAT,\n} from 'web3-types';\nimport { isNullish } from 'web3-validator';\nimport { Eip1559NotSupportedError, UnsupportedTransactionTypeError } from 'web3-errors';\nimport { format } from 'web3-utils';\n// eslint-disable-next-line import/no-cycle\nimport { getBlock, getGasPrice } from '../rpc_method_wrappers.js';\nimport { InternalTransaction } from '../types.js';\n// eslint-disable-next-line import/no-cycle\nimport { getTransactionType } from './transaction_builder.js';\n\nasync function getEip1559GasPricing<ReturnFormat extends DataFormat>(\n\ttransaction: FormatType<Transaction, typeof ETH_DATA_FORMAT>,\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n): Promise<FormatType<{ maxPriorityFeePerGas?: Numbers; maxFeePerGas?: Numbers }, ReturnFormat>> {\n\tconst block = await getBlock(web3Context, web3Context.defaultBlock, false, ETH_DATA_FORMAT);\n\tif (isNullish(block.baseFeePerGas)) throw new Eip1559NotSupportedError();\n\n\tlet gasPrice: Numbers | undefined;\n\tif (isNullish(transaction.gasPrice) && BigInt(block.baseFeePerGas) === BigInt(0)) {\n\t\tgasPrice = await getGasPrice(web3Context, returnFormat);\n\t}\n\tif (!isNullish(transaction.gasPrice) || !isNullish(gasPrice)) {\n\t\tconst convertedTransactionGasPrice = format(\n\t\t\t{ format: 'uint' },\n\t\t\ttransaction.gasPrice ?? gasPrice,\n\t\t\treturnFormat,\n\t\t);\n\n\t\treturn {\n\t\t\tmaxPriorityFeePerGas: convertedTransactionGasPrice,\n\t\t\tmaxFeePerGas: convertedTransactionGasPrice,\n\t\t};\n\t}\n\treturn {\n\t\tmaxPriorityFeePerGas: format(\n\t\t\t{ format: 'uint' },\n\t\t\ttransaction.maxPriorityFeePerGas ?? web3Context.defaultMaxPriorityFeePerGas,\n\t\t\treturnFormat,\n\t\t),\n\t\tmaxFeePerGas: format(\n\t\t\t{ format: 'uint' },\n\t\t\t(transaction.maxFeePerGas ??\n\t\t\t\tBigInt(block.baseFeePerGas) * BigInt(2) +\n\t\t\t\t\tBigInt(\n\t\t\t\t\t\ttransaction.maxPriorityFeePerGas ?? web3Context.defaultMaxPriorityFeePerGas,\n\t\t\t\t\t)) as Numbers,\n\t\t\treturnFormat,\n\t\t),\n\t};\n}\n\nexport async function getTransactionGasPricing<ReturnFormat extends DataFormat>(\n\ttransaction: InternalTransaction,\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n): Promise<\n\t| FormatType<\n\t\t\t{ gasPrice?: Numbers; maxPriorityFeePerGas?: Numbers; maxFeePerGas?: Numbers },\n\t\t\tReturnFormat\n\t >\n\t| undefined\n> {\n\tconst transactionType = getTransactionType(transaction, web3Context);\n\tif (!isNullish(transactionType)) {\n\t\tif (transactionType.startsWith('-'))\n\t\t\tthrow new UnsupportedTransactionTypeError(transactionType);\n\n\t\t// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2718.md#transactions\n\t\tif (Number(transactionType) < 0 || Number(transactionType) > 127)\n\t\t\tthrow new UnsupportedTransactionTypeError(transactionType);\n\n\t\tif (\n\t\t\tisNullish(transaction.gasPrice) &&\n\t\t\t(transactionType === '0x0' || transactionType === '0x1')\n\t\t)\n\t\t\treturn {\n\t\t\t\tgasPrice: await getGasPrice(web3Context, returnFormat),\n\t\t\t\tmaxPriorityFeePerGas: undefined,\n\t\t\t\tmaxFeePerGas: undefined,\n\t\t\t};\n\n\t\tif (transactionType === '0x2') {\n\t\t\treturn {\n\t\t\t\tgasPrice: undefined,\n\t\t\t\t...(await getEip1559GasPricing(transaction, web3Context, returnFormat)),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn undefined;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tEthExecutionAPI,\n\tAddress,\n\tHexString,\n\tValidChains,\n\tHardfork,\n\tTransaction,\n\tTransactionWithFromLocalWalletIndex,\n\tTransactionWithToLocalWalletIndex,\n\tTransactionWithFromAndToLocalWalletIndex,\n\tCommon,\n\tWeb3NetAPI,\n\tNumbers,\n\tDataFormat,\n\tFormatType,\n\tETH_DATA_FORMAT,\n} from 'web3-types';\nimport { Web3Context } from 'web3-core';\nimport { privateKeyToAddress } from 'web3-eth-accounts';\nimport { getId } from 'web3-net';\nimport { isNullish, isNumber, isHexStrict, isAddress } from 'web3-validator';\nimport {\n\tInvalidTransactionWithSender,\n\tInvalidTransactionWithReceiver,\n\tLocalWalletNotAvailableError,\n\tTransactionDataAndInputError,\n\tUnableToPopulateNonceError,\n} from 'web3-errors';\nimport { bytesToHex, format } from 'web3-utils';\nimport { NUMBER_DATA_FORMAT } from '../constants.js';\n// eslint-disable-next-line import/no-cycle\nimport { getChainId, getTransactionCount, estimateGas } from '../rpc_method_wrappers.js';\nimport { detectTransactionType } from './detect_transaction_type.js';\nimport { transactionSchema } from '../schemas.js';\nimport { InternalTransaction } from '../types.js';\n// eslint-disable-next-line import/no-cycle\nimport { getTransactionGasPricing } from './get_transaction_gas_pricing.js';\n\nexport const getTransactionFromOrToAttr = (\n\tattr: 'from' | 'to',\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransaction?:\n\t\t| Transaction\n\t\t| TransactionWithFromLocalWalletIndex\n\t\t| TransactionWithToLocalWalletIndex\n\t\t| TransactionWithFromAndToLocalWalletIndex,\n\tprivateKey?: HexString | Uint8Array,\n): Address | undefined => {\n\tif (transaction !== undefined && attr in transaction && transaction[attr] !== undefined) {\n\t\tif (typeof transaction[attr] === 'string' && isAddress(transaction[attr] as string)) {\n\t\t\treturn transaction[attr] as Address;\n\t\t}\n\t\tif (!isHexStrict(transaction[attr] as string) && isNumber(transaction[attr] as Numbers)) {\n\t\t\tif (web3Context.wallet) {\n\t\t\t\tconst account = web3Context.wallet.get(\n\t\t\t\t\tformat({ format: 'uint' }, transaction[attr] as Numbers, NUMBER_DATA_FORMAT),\n\t\t\t\t);\n\n\t\t\t\tif (!isNullish(account)) {\n\t\t\t\t\treturn account.address;\n\t\t\t\t}\n\n\t\t\t\tthrow new LocalWalletNotAvailableError();\n\t\t\t}\n\t\t\tthrow new LocalWalletNotAvailableError();\n\t\t} else {\n\t\t\tthrow attr === 'from'\n\t\t\t\t? new InvalidTransactionWithSender(transaction.from)\n\t\t\t\t: // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\t\t\t new InvalidTransactionWithReceiver(transaction.to);\n\t\t}\n\t}\n\tif (attr === 'from') {\n\t\tif (!isNullish(privateKey)) return privateKeyToAddress(privateKey);\n\t\tif (!isNullish(web3Context.defaultAccount)) return web3Context.defaultAccount;\n\t}\n\n\treturn undefined;\n};\n\nexport const getTransactionNonce = async <ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\taddress?: Address,\n\treturnFormat: ReturnFormat = web3Context.defaultReturnFormat as ReturnFormat,\n) => {\n\tif (isNullish(address)) {\n\t\t// TODO if (web3.eth.accounts.wallet) use address from local wallet\n\t\tthrow new UnableToPopulateNonceError();\n\t}\n\n\treturn getTransactionCount(web3Context, address, web3Context.defaultBlock, returnFormat);\n};\n\nexport const getTransactionType = (\n\ttransaction: FormatType<Transaction, typeof ETH_DATA_FORMAT>,\n\tweb3Context: Web3Context<EthExecutionAPI>,\n) => {\n\tconst inferredType = detectTransactionType(transaction, web3Context);\n\tif (!isNullish(inferredType)) return inferredType;\n\tif (!isNullish(web3Context.defaultTransactionType))\n\t\treturn format({ format: 'uint' }, web3Context.defaultTransactionType, ETH_DATA_FORMAT);\n\n\treturn undefined;\n};\n\n// Keep in mind that the order the properties of populateTransaction get populated matters\n// as some of the properties are dependent on others\nexport async function defaultTransactionBuilder<ReturnType = Transaction>(options: {\n\ttransaction: Transaction;\n\tweb3Context: Web3Context<EthExecutionAPI & Web3NetAPI>;\n\tprivateKey?: HexString | Uint8Array;\n\tfillGasPrice?: boolean;\n\tfillGasLimit?: boolean;\n}): Promise<ReturnType> {\n\tlet populatedTransaction = format(\n\t\ttransactionSchema,\n\t\toptions.transaction,\n\t\toptions.web3Context.defaultReturnFormat,\n\t) as InternalTransaction;\n\n\tif (isNullish(populatedTransaction.from)) {\n\t\tpopulatedTransaction.from = getTransactionFromOrToAttr(\n\t\t\t'from',\n\t\t\toptions.web3Context,\n\t\t\tundefined,\n\t\t\toptions.privateKey,\n\t\t);\n\t}\n\n\t// TODO: Debug why need to typecase getTransactionNonce\n\tif (isNullish(populatedTransaction.nonce)) {\n\t\tpopulatedTransaction.nonce = await getTransactionNonce(\n\t\t\toptions.web3Context,\n\t\t\tpopulatedTransaction.from,\n\t\t\tETH_DATA_FORMAT,\n\t\t);\n\t}\n\n\tif (isNullish(populatedTransaction.value)) {\n\t\tpopulatedTransaction.value = '0x0';\n\t}\n\n\tif (!isNullish(populatedTransaction.data)) {\n\t\tif (\n\t\t\t!isNullish(populatedTransaction.input) &&\n\t\t\tpopulatedTransaction.data !== populatedTransaction.input\n\t\t)\n\t\t\tthrow new TransactionDataAndInputError({\n\t\t\t\tdata: bytesToHex(populatedTransaction.data),\n\t\t\t\tinput: bytesToHex(populatedTransaction.input),\n\t\t\t});\n\n\t\tif (!populatedTransaction.data.startsWith('0x'))\n\t\t\tpopulatedTransaction.data = `0x${populatedTransaction.data}`;\n\t} else if (!isNullish(populatedTransaction.input)) {\n\t\tif (!populatedTransaction.input.startsWith('0x'))\n\t\t\tpopulatedTransaction.input = `0x${populatedTransaction.input}`;\n\t} else {\n\t\tpopulatedTransaction.input = '0x';\n\t}\n\n\tif (isNullish(populatedTransaction.common)) {\n\t\tif (options.web3Context.defaultCommon) {\n\t\t\tconst common = options.web3Context.defaultCommon as unknown as Common;\n\t\t\tconst chainId = common.customChain.chainId as string;\n\t\t\tconst networkId = common.customChain.networkId as string;\n\t\t\tconst name = common.customChain.name as string;\n\t\t\tpopulatedTransaction.common = {\n\t\t\t\t...common,\n\t\t\t\tcustomChain: { chainId, networkId, name },\n\t\t\t};\n\t\t}\n\n\t\tif (isNullish(populatedTransaction.chain)) {\n\t\t\tpopulatedTransaction.chain = options.web3Context.defaultChain as ValidChains;\n\t\t}\n\t\tif (isNullish(populatedTransaction.hardfork)) {\n\t\t\tpopulatedTransaction.hardfork = options.web3Context.defaultHardfork as Hardfork;\n\t\t}\n\t}\n\n\tif (\n\t\tisNullish(populatedTransaction.chainId) &&\n\t\tisNullish(populatedTransaction.common?.customChain.chainId)\n\t) {\n\t\tpopulatedTransaction.chainId = await getChainId(options.web3Context, ETH_DATA_FORMAT);\n\t}\n\n\tif (isNullish(populatedTransaction.networkId)) {\n\t\tpopulatedTransaction.networkId =\n\t\t\t(options.web3Context.defaultNetworkId as string) ??\n\t\t\t(await getId(options.web3Context, ETH_DATA_FORMAT));\n\t}\n\n\tif (isNullish(populatedTransaction.gasLimit) && !isNullish(populatedTransaction.gas)) {\n\t\tpopulatedTransaction.gasLimit = populatedTransaction.gas;\n\t}\n\n\tpopulatedTransaction.type = getTransactionType(populatedTransaction, options.web3Context);\n\tif (\n\t\tisNullish(populatedTransaction.accessList) &&\n\t\t(populatedTransaction.type === '0x1' || populatedTransaction.type === '0x2')\n\t) {\n\t\tpopulatedTransaction.accessList = [];\n\t}\n\tif (options.fillGasPrice)\n\t\tpopulatedTransaction = {\n\t\t\t...populatedTransaction,\n\t\t\t...(await getTransactionGasPricing(\n\t\t\t\tpopulatedTransaction,\n\t\t\t\toptions.web3Context,\n\t\t\t\tETH_DATA_FORMAT,\n\t\t\t)),\n\t\t};\n\tif (\n\t\tisNullish(populatedTransaction.gas) &&\n\t\tisNullish(populatedTransaction.gasLimit) &&\n\t\toptions.fillGasLimit\n\t) {\n\t\tconst fillGasLimit = await estimateGas(\n\t\t\toptions.web3Context,\n\t\t\tpopulatedTransaction,\n\t\t\t'latest',\n\t\t\tETH_DATA_FORMAT,\n\t\t);\n\t\tpopulatedTransaction = {\n\t\t\t...populatedTransaction,\n\t\t\tgas: format({ format: 'uint' }, fillGasLimit as Numbers, ETH_DATA_FORMAT),\n\t\t};\n\t}\n\treturn populatedTransaction as ReturnType;\n}\n\nexport const transactionBuilder = async <ReturnType = Transaction>(\n\toptions: {\n\t\ttransaction: Transaction;\n\t\tweb3Context: Web3Context<EthExecutionAPI>;\n\t\tprivateKey?: HexString | Uint8Array;\n\t\tfillGasPrice?: boolean;\n\t\tfillGasLimit?: boolean;\n\t},\n\t// eslint-disable-next-line @typescript-eslint/require-await\n) =>\n\t(options.web3Context.transactionBuilder ?? defaultTransactionBuilder)({\n\t\t...options,\n\t\ttransaction: options.transaction,\n\t}) as unknown as ReturnType;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { EthExecutionAPI, Bytes, Web3BaseProvider, BlockHeaderOutput } from 'web3-types';\nimport { Web3Context } from 'web3-core';\nimport { rejectIfConditionAtInterval } from 'web3-utils';\n\nimport { TransactionBlockTimeoutError } from 'web3-errors';\nimport { NUMBER_DATA_FORMAT } from '../constants.js';\n// eslint-disable-next-line import/no-cycle\nimport { getBlockNumber } from '../rpc_method_wrappers.js';\nimport { NewHeadsSubscription } from '../web3_subscriptions.js';\n\nexport interface ResourceCleaner {\n\tclean: () => void;\n}\n\nfunction resolveByPolling(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tstarterBlockNumber: number,\n\ttransactionHash?: Bytes,\n): [Promise<never>, ResourceCleaner] {\n\tconst pollingInterval = web3Context.transactionPollingInterval;\n\tconst [intervalId, promiseToError] = rejectIfConditionAtInterval(async () => {\n\t\tlet lastBlockNumber;\n\t\ttry {\n\t\t\tlastBlockNumber = await getBlockNumber(web3Context, NUMBER_DATA_FORMAT);\n\t\t} catch (error) {\n\t\t\tconsole.warn('An error happen while trying to get the block number', error);\n\t\t\treturn undefined;\n\t\t}\n\t\tconst numberOfBlocks = lastBlockNumber - starterBlockNumber;\n\t\tif (numberOfBlocks >= web3Context.transactionBlockTimeout) {\n\t\t\treturn new TransactionBlockTimeoutError({\n\t\t\t\tstarterBlockNumber,\n\t\t\t\tnumberOfBlocks,\n\t\t\t\ttransactionHash,\n\t\t\t});\n\t\t}\n\t\treturn undefined;\n\t}, pollingInterval);\n\n\tconst clean = () => {\n\t\tclearInterval(intervalId);\n\t};\n\n\treturn [promiseToError, { clean }];\n}\n\nasync function resolveBySubscription(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tstarterBlockNumber: number,\n\ttransactionHash?: Bytes,\n): Promise<[Promise<never>, ResourceCleaner]> {\n\t// The following variable will stay true except if the data arrived,\n\t//\tor if watching started after an error had occurred.\n\tlet needToWatchLater = true;\n\n\tlet subscription: NewHeadsSubscription;\n\tlet resourceCleaner: ResourceCleaner;\n\t// internal helper function\n\tfunction revertToPolling(\n\t\treject: (value: Error | PromiseLike<Error>) => void,\n\t\tpreviousError?: Error,\n\t) {\n\t\tif (previousError) {\n\t\t\tconsole.warn('error happened at subscription. So revert to polling...', previousError);\n\t\t}\n\t\tresourceCleaner.clean();\n\n\t\tneedToWatchLater = false;\n\t\tconst [promiseToError, newResourceCleaner] = resolveByPolling(\n\t\t\tweb3Context,\n\t\t\tstarterBlockNumber,\n\t\t\ttransactionHash,\n\t\t);\n\t\tresourceCleaner.clean = newResourceCleaner.clean;\n\t\tpromiseToError.catch(error => reject(error as Error));\n\t}\n\ttry {\n\t\tsubscription = (await web3Context.subscriptionManager?.subscribe(\n\t\t\t'newHeads',\n\t\t)) as unknown as NewHeadsSubscription;\n\t\tresourceCleaner = {\n\t\t\tclean: () => {\n\t\t\t\t// Remove the subscription, if it was not removed somewhere\n\t\t\t\t// \telse by calling, for example, subscriptionManager.clear()\n\t\t\t\tif (subscription.id) {\n\t\t\t\t\tweb3Context.subscriptionManager\n\t\t\t\t\t\t?.removeSubscription(subscription)\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\t// Subscription ended successfully\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\t\t// An error happened while ending subscription. But no need to take any action.\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t} catch (error) {\n\t\treturn resolveByPolling(web3Context, starterBlockNumber, transactionHash);\n\t}\n\tconst promiseToError: Promise<never> = new Promise((_, reject) => {\n\t\ttry {\n\t\t\tsubscription.on('data', (lastBlockHeader: BlockHeaderOutput) => {\n\t\t\t\tneedToWatchLater = false;\n\t\t\t\tif (!lastBlockHeader?.number) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst numberOfBlocks = Number(\n\t\t\t\t\tBigInt(lastBlockHeader.number) - BigInt(starterBlockNumber),\n\t\t\t\t);\n\n\t\t\t\tif (numberOfBlocks >= web3Context.transactionBlockTimeout) {\n\t\t\t\t\t// Transaction Block Timeout is known to be reached by subscribing to new heads\n\t\t\t\t\treject(\n\t\t\t\t\t\tnew TransactionBlockTimeoutError({\n\t\t\t\t\t\t\tstarterBlockNumber,\n\t\t\t\t\t\t\tnumberOfBlocks,\n\t\t\t\t\t\t\ttransactionHash,\n\t\t\t\t\t\t}),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t\tsubscription.on('error', error => {\n\t\t\t\trevertToPolling(reject, error);\n\t\t\t});\n\t\t} catch (error) {\n\t\t\trevertToPolling(reject, error as Error);\n\t\t}\n\n\t\t// Fallback to polling if tx receipt didn't arrived in \"blockHeaderTimeout\" [10 seconds]\n\t\tsetTimeout(() => {\n\t\t\tif (needToWatchLater) {\n\t\t\t\trevertToPolling(reject);\n\t\t\t}\n\t\t}, web3Context.blockHeaderTimeout * 1000);\n\t});\n\n\treturn [promiseToError, resourceCleaner];\n}\n\n/* TODO: After merge, there will be constant block mining time (exactly 12 second each block, except slot missed that currently happens in <1% of slots. ) so we can optimize following function\nfor POS NWs, we can skip checking getBlockNumber(); after interval and calculate only based on time that certain num of blocked are mined after that for internal double check, can do one getBlockNumber() call and timeout. \n*/\nexport async function rejectIfBlockTimeout(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransactionHash?: Bytes,\n): Promise<[Promise<never>, ResourceCleaner]> {\n\tconst { provider } = web3Context.requestManager;\n\tlet callingRes: [Promise<never>, ResourceCleaner];\n\tconst starterBlockNumber = await getBlockNumber(web3Context, NUMBER_DATA_FORMAT);\n\t// TODO: once https://github.com/web3/web3.js/issues/5521 is implemented, remove checking for `enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout`\n\tif (\n\t\t(provider as Web3BaseProvider).supportsSubscriptions?.() &&\n\t\tweb3Context.enableExperimentalFeatures.useSubscriptionWhenCheckingBlockTimeout\n\t) {\n\t\tcallingRes = await resolveBySubscription(web3Context, starterBlockNumber, transactionHash);\n\t} else {\n\t\tcallingRes = resolveByPolling(web3Context, starterBlockNumber, transactionHash);\n\t}\n\treturn callingRes;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3Context } from 'web3-core';\nimport { EthExecutionAPI, Bytes } from 'web3-types';\nimport { AsyncFunction, rejectIfTimeout } from 'web3-utils';\nimport { TransactionSendTimeoutError } from 'web3-errors';\n\n// eslint-disable-next-line import/no-cycle\nimport { rejectIfBlockTimeout } from './reject_if_block_timeout.js';\n\n/**\n * An internal function to send a transaction or throws if sending did not finish during the timeout during the blocks-timeout.\n * @param web3Context - the context to read the configurations from\n * @param sendTransactionFunc - the function that will send the transaction (could be sendTransaction or sendRawTransaction)\n * @param transactionHash - to be used inside the exception message if there will be any exceptions.\n * @returns the Promise<string> returned by the `sendTransactionFunc`.\n */\nexport async function trySendTransaction(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tsendTransactionFunc: AsyncFunction<string>,\n\ttransactionHash?: Bytes,\n): Promise<string> {\n\tconst [timeoutId, rejectOnTimeout] = rejectIfTimeout(\n\t\tweb3Context.transactionSendTimeout,\n\t\tnew TransactionSendTimeoutError({\n\t\t\tnumberOfSeconds: web3Context.transactionSendTimeout / 1000,\n\t\t\ttransactionHash,\n\t\t}),\n\t);\n\n\tconst [rejectOnBlockTimeout, blockTimeoutResourceCleaner] = await rejectIfBlockTimeout(\n\t\tweb3Context,\n\t\ttransactionHash,\n\t);\n\n\ttry {\n\t\t// If an error happened here, do not catch it, just clear the resources before raising it to the caller function.\n\t\treturn await Promise.race([\n\t\t\tsendTransactionFunc(), // this is the function that will send the transaction\n\t\t\trejectOnTimeout, // this will throw an error on Transaction Send Timeout\n\t\t\trejectOnBlockTimeout, // this will throw an error on Transaction Block Timeout\n\t\t]);\n\t} finally {\n\t\tclearTimeout(timeoutId);\n\t\tblockTimeoutResourceCleaner.clean();\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Context } from 'web3-core';\nimport { TransactionPollingTimeoutError } from 'web3-errors';\nimport { EthExecutionAPI, Bytes, TransactionReceipt, DataFormat } from 'web3-types';\n\n// eslint-disable-next-line import/no-cycle\nimport { pollTillDefinedAndReturnIntervalId, rejectIfTimeout } from 'web3-utils';\n// eslint-disable-next-line import/no-cycle\nimport { rejectIfBlockTimeout } from './reject_if_block_timeout.js';\n// eslint-disable-next-line import/no-cycle\nimport { getTransactionReceipt } from '../rpc_method_wrappers.js';\n\nexport async function waitForTransactionReceipt<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransactionHash: Bytes,\n\treturnFormat: ReturnFormat,\n\tcustomGetTransactionReceipt?: (\n\t\tweb3Context: Web3Context<EthExecutionAPI>,\n\t\ttransactionHash: Bytes,\n\t\treturnFormat: ReturnFormat,\n\t) => Promise<TransactionReceipt>,\n): Promise<TransactionReceipt> {\n\tconst pollingInterval =\n\t\tweb3Context.transactionReceiptPollingInterval ?? web3Context.transactionPollingInterval;\n\n\tconst [awaitableTransactionReceipt, IntervalId] = pollTillDefinedAndReturnIntervalId(\n\t\tasync () => {\n\t\t\ttry {\n\t\t\t\treturn (customGetTransactionReceipt ?? getTransactionReceipt)(\n\t\t\t\t\tweb3Context,\n\t\t\t\t\ttransactionHash,\n\t\t\t\t\treturnFormat,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.warn('An error happen while trying to get the transaction receipt', error);\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t},\n\t\tpollingInterval,\n\t);\n\n\tconst [timeoutId, rejectOnTimeout] = rejectIfTimeout(\n\t\tweb3Context.transactionPollingTimeout,\n\t\tnew TransactionPollingTimeoutError({\n\t\t\tnumberOfSeconds: web3Context.transactionPollingTimeout / 1000,\n\t\t\ttransactionHash,\n\t\t}),\n\t);\n\n\tconst [rejectOnBlockTimeout, blockTimeoutResourceCleaner] = await rejectIfBlockTimeout(\n\t\tweb3Context,\n\t\ttransactionHash,\n\t);\n\n\ttry {\n\t\t// If an error happened here, do not catch it, just clear the resources before raising it to the caller function.\n\t\treturn await Promise.race([\n\t\t\tawaitableTransactionReceipt,\n\t\t\trejectOnTimeout, // this will throw an error on Transaction Polling Timeout\n\t\t\trejectOnBlockTimeout, // this will throw an error on Transaction Block Timeout\n\t\t]);\n\t} finally {\n\t\tif (timeoutId) clearTimeout(timeoutId);\n\t\tif (IntervalId) clearInterval(IntervalId);\n\t\tblockTimeoutResourceCleaner.clean();\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Bytes, EthExecutionAPI, TransactionReceipt } from 'web3-types';\nimport { Web3Context, Web3PromiEvent } from 'web3-core';\nimport { format, numberToHex } from 'web3-utils';\nimport { ethRpcMethods } from 'web3-rpc-methods';\n\nimport { DataFormat } from 'web3-types';\nimport { JsonSchema } from 'web3-validator';\nimport { SendSignedTransactionEvents, SendTransactionEvents } from '../types.js';\nimport { transactionReceiptSchema } from '../schemas.js';\n\nexport type Web3PromiEventEventTypeBase<ReturnFormat extends DataFormat> =\n\t| SendTransactionEvents<ReturnFormat>\n\t| SendSignedTransactionEvents<ReturnFormat>;\n\nexport type WaitProps<ReturnFormat extends DataFormat, ResolveType = TransactionReceipt> = {\n\tweb3Context: Web3Context<EthExecutionAPI>;\n\ttransactionReceipt: TransactionReceipt;\n\tcustomTransactionReceiptSchema?: JsonSchema;\n\ttransactionPromiEvent: Web3PromiEvent<ResolveType, Web3PromiEventEventTypeBase<ReturnFormat>>;\n\treturnFormat: ReturnFormat;\n};\n\n/**\n * This function watches a Transaction by subscribing to new heads.\n * It is used by `watchTransactionForConfirmations`, in case the provider does not support subscription.\n * And it is also used by `watchTransactionBySubscription`, as a fallback, if the subscription failed for any reason.\n */\nexport const watchTransactionByPolling = <\n\tReturnFormat extends DataFormat,\n\tResolveType = TransactionReceipt,\n>({\n\tweb3Context,\n\ttransactionReceipt,\n\ttransactionPromiEvent,\n\tcustomTransactionReceiptSchema,\n\treturnFormat,\n}: WaitProps<ReturnFormat, ResolveType>) => {\n\t// Having a transactionReceipt means that the transaction has already been included\n\t// in at least one block, so we start with 1\n\tlet confirmations = 1;\n\tconst intervalId = setInterval(() => {\n\t\t(async () => {\n\t\t\tif (confirmations >= web3Context.transactionConfirmationBlocks) {\n\t\t\t\tclearInterval(intervalId);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst nextBlock = await ethRpcMethods.getBlockByNumber(\n\t\t\t\tweb3Context.requestManager,\n\t\t\t\tnumberToHex(BigInt(transactionReceipt.blockNumber) + BigInt(confirmations)),\n\t\t\t\tfalse,\n\t\t\t);\n\n\t\t\tif (nextBlock?.hash) {\n\t\t\t\tconfirmations += 1;\n\n\t\t\t\ttransactionPromiEvent.emit('confirmation', {\n\t\t\t\t\tconfirmations: format({ format: 'uint' }, confirmations, returnFormat),\n\t\t\t\t\treceipt: format(\n\t\t\t\t\t\tcustomTransactionReceiptSchema ?? transactionReceiptSchema,\n\t\t\t\t\t\ttransactionReceipt,\n\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t),\n\t\t\t\t\tlatestBlockHash: format(\n\t\t\t\t\t\t{ format: 'bytes32' },\n\t\t\t\t\t\tnextBlock.hash as Bytes,\n\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\t\t})() as unknown;\n\t}, web3Context.transactionReceiptPollingInterval ?? web3Context.transactionPollingInterval);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Bytes, EthExecutionAPI, Web3BaseProvider, TransactionReceipt } from 'web3-types';\nimport { Web3Context, Web3PromiEvent } from 'web3-core';\nimport { format } from 'web3-utils';\nimport { isNullish, JsonSchema } from 'web3-validator';\n\nimport {\n\tTransactionMissingReceiptOrBlockHashError,\n\tTransactionReceiptMissingBlockNumberError,\n} from 'web3-errors';\nimport { DataFormat } from 'web3-types';\nimport { transactionReceiptSchema } from '../schemas.js';\nimport {\n\twatchTransactionByPolling,\n\tWeb3PromiEventEventTypeBase,\n} from './watch_transaction_by_polling.js';\nimport { watchTransactionBySubscription } from './watch_transaction_by_subscription.js';\n\nexport function watchTransactionForConfirmations<\n\tReturnFormat extends DataFormat,\n\tWeb3PromiEventEventType extends Web3PromiEventEventTypeBase<ReturnFormat>,\n\tResolveType = TransactionReceipt,\n>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransactionPromiEvent: Web3PromiEvent<ResolveType, Web3PromiEventEventType>,\n\ttransactionReceipt: TransactionReceipt,\n\ttransactionHash: Bytes,\n\treturnFormat: ReturnFormat,\n\tcustomTransactionReceiptSchema?: JsonSchema,\n) {\n\tif (isNullish(transactionReceipt) || isNullish(transactionReceipt.blockHash))\n\t\tthrow new TransactionMissingReceiptOrBlockHashError({\n\t\t\treceipt: transactionReceipt,\n\t\t\tblockHash: format({ format: 'bytes32' }, transactionReceipt?.blockHash, returnFormat),\n\t\t\ttransactionHash: format({ format: 'bytes32' }, transactionHash, returnFormat),\n\t\t});\n\n\tif (!transactionReceipt.blockNumber)\n\t\tthrow new TransactionReceiptMissingBlockNumberError({ receipt: transactionReceipt });\n\n\t// As we have the receipt, it's the first confirmation that tx is accepted.\n\ttransactionPromiEvent.emit('confirmation', {\n\t\tconfirmations: format({ format: 'uint' }, 1, returnFormat),\n\t\treceipt: format(\n\t\t\tcustomTransactionReceiptSchema ?? transactionReceiptSchema,\n\t\t\ttransactionReceipt,\n\t\t\treturnFormat,\n\t\t),\n\t\tlatestBlockHash: format({ format: 'bytes32' }, transactionReceipt.blockHash, returnFormat),\n\t});\n\n\t// so a subscription for newBlockHeaders can be made instead of polling\n\tconst provider: Web3BaseProvider = web3Context.requestManager.provider as Web3BaseProvider;\n\tif (provider && 'supportsSubscriptions' in provider && provider.supportsSubscriptions()) {\n\t\twatchTransactionBySubscription({\n\t\t\tweb3Context,\n\t\t\ttransactionReceipt,\n\t\t\ttransactionPromiEvent,\n\t\t\tcustomTransactionReceiptSchema,\n\t\t\treturnFormat,\n\t\t});\n\t} else {\n\t\twatchTransactionByPolling({\n\t\t\tweb3Context,\n\t\t\ttransactionReceipt,\n\t\t\ttransactionPromiEvent,\n\t\t\tcustomTransactionReceiptSchema,\n\t\t\treturnFormat,\n\t\t});\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Bytes, Numbers, BlockHeaderOutput, TransactionReceipt } from 'web3-types';\nimport { format } from 'web3-utils';\n\nimport { DataFormat } from 'web3-types';\nimport { NewHeadsSubscription } from '../web3_subscriptions.js';\nimport { transactionReceiptSchema } from '../schemas.js';\nimport { WaitProps, watchTransactionByPolling } from './watch_transaction_by_polling.js';\n/**\n * This function watches a Transaction by subscribing to new heads.\n * It is used by `watchTransactionForConfirmations`, in case the provider supports subscription.\n */\nexport const watchTransactionBySubscription = <\n\tReturnFormat extends DataFormat,\n\tResolveType = TransactionReceipt,\n>({\n\tweb3Context,\n\ttransactionReceipt,\n\ttransactionPromiEvent,\n\tcustomTransactionReceiptSchema,\n\treturnFormat,\n}: WaitProps<ReturnFormat, ResolveType>) => {\n\t// The following variable will stay true except if the data arrived,\n\t//\tor if watching started after an error had occurred.\n\tlet needToWatchLater = true;\n\tlet lastCaughtBlockHash: string;\n\tsetImmediate(() => {\n\t\tweb3Context.subscriptionManager\n\t\t\t?.subscribe('newHeads')\n\t\t\t.then((subscription: NewHeadsSubscription) => {\n\t\t\t\tsubscription.on('data', async (newBlockHeader: BlockHeaderOutput) => {\n\t\t\t\t\tneedToWatchLater = false;\n\t\t\t\t\tif (\n\t\t\t\t\t\t!newBlockHeader?.number ||\n\t\t\t\t\t\t// For some cases, the on-data event is fired couple times for the same block!\n\t\t\t\t\t\t// This needs investigation but seems to be because of multiple `subscription.on('data'...)` even this should not cause that.\n\t\t\t\t\t\tlastCaughtBlockHash === newBlockHeader?.parentHash\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tlastCaughtBlockHash = newBlockHeader?.parentHash as string;\n\n\t\t\t\t\tconst confirmations =\n\t\t\t\t\t\tBigInt(newBlockHeader.number) -\n\t\t\t\t\t\tBigInt(transactionReceipt.blockNumber) +\n\t\t\t\t\t\tBigInt(1);\n\n\t\t\t\t\ttransactionPromiEvent.emit('confirmation', {\n\t\t\t\t\t\tconfirmations: format(\n\t\t\t\t\t\t\t{ format: 'uint' },\n\t\t\t\t\t\t\tconfirmations as Numbers,\n\t\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t\t),\n\t\t\t\t\t\treceipt: format(\n\t\t\t\t\t\t\tcustomTransactionReceiptSchema ?? transactionReceiptSchema,\n\t\t\t\t\t\t\ttransactionReceipt,\n\t\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlatestBlockHash: format(\n\t\t\t\t\t\t\t{ format: 'bytes32' },\n\t\t\t\t\t\t\tnewBlockHeader.parentHash as Bytes,\n\t\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t\t),\n\t\t\t\t\t});\n\t\t\t\t\tif (confirmations >= web3Context.transactionConfirmationBlocks) {\n\t\t\t\t\t\tawait web3Context.subscriptionManager?.removeSubscription(subscription);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tsubscription.on('error', async () => {\n\t\t\t\t\tawait web3Context.subscriptionManager?.removeSubscription(subscription);\n\n\t\t\t\t\tneedToWatchLater = false;\n\t\t\t\t\twatchTransactionByPolling({\n\t\t\t\t\t\tweb3Context,\n\t\t\t\t\t\ttransactionReceipt,\n\t\t\t\t\t\ttransactionPromiEvent,\n\t\t\t\t\t\tcustomTransactionReceiptSchema,\n\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tneedToWatchLater = false;\n\t\t\t\twatchTransactionByPolling({\n\t\t\t\t\tweb3Context,\n\t\t\t\t\ttransactionReceipt,\n\t\t\t\t\tcustomTransactionReceiptSchema,\n\t\t\t\t\ttransactionPromiEvent,\n\t\t\t\t\treturnFormat,\n\t\t\t\t});\n\t\t\t});\n\t});\n\n\t// Fallback to polling if tx receipt didn't arrived in \"blockHeaderTimeout\" [10 seconds]\n\tsetTimeout(() => {\n\t\tif (needToWatchLater) {\n\t\t\twatchTransactionByPolling({\n\t\t\t\tweb3Context,\n\t\t\t\ttransactionReceipt,\n\t\t\t\ttransactionPromiEvent,\n\t\t\t\treturnFormat,\n\t\t\t});\n\t\t}\n\t}, web3Context.blockHeaderTimeout * 1000);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiError } from 'web3-errors';\nimport { isNullish, isUint8Array, leftPad, rightPad, toHex } from 'web3-utils';\nimport {\n\tAbiInput,\n\tAbiCoderStruct,\n\tAbiFragment,\n\tAbiParameter,\n\tAbiStruct,\n\tAbiEventFragment,\n\tAbiFunctionFragment,\n\tAbiConstructorFragment,\n} from 'web3-types';\n\nexport const isAbiFragment = (item: unknown): item is AbiFragment =>\n\t!isNullish(item) &&\n\ttypeof item === 'object' &&\n\t!isNullish((item as { type: string }).type) &&\n\t['function', 'event', 'constructor', 'error'].includes((item as { type: string }).type);\n\nexport const isAbiErrorFragment = (item: unknown): item is AbiEventFragment =>\n\t!isNullish(item) &&\n\ttypeof item === 'object' &&\n\t!isNullish((item as { type: string }).type) &&\n\t(item as { type: string }).type === 'error';\n\nexport const isAbiEventFragment = (item: unknown): item is AbiEventFragment =>\n\t!isNullish(item) &&\n\ttypeof item === 'object' &&\n\t!isNullish((item as { type: string }).type) &&\n\t(item as { type: string }).type === 'event';\n\nexport const isAbiFunctionFragment = (item: unknown): item is AbiFunctionFragment =>\n\t!isNullish(item) &&\n\ttypeof item === 'object' &&\n\t!isNullish((item as { type: string }).type) &&\n\t(item as { type: string }).type === 'function';\n\nexport const isAbiConstructorFragment = (item: unknown): item is AbiConstructorFragment =>\n\t!isNullish(item) &&\n\ttypeof item === 'object' &&\n\t!isNullish((item as { type: string }).type) &&\n\t(item as { type: string }).type === 'constructor';\n\n/**\n * Check if type is simplified struct format\n */\nexport const isSimplifiedStructFormat = (\n\ttype: string | Partial<AbiParameter> | Partial<AbiInput>,\n): type is Omit<AbiParameter, 'components' | 'name'> =>\n\ttypeof type === 'object' &&\n\ttypeof (type as { components: unknown }).components === 'undefined' &&\n\ttypeof (type as { name: unknown }).name === 'undefined';\n\n/**\n * Maps the correct tuple type and name when the simplified format in encode/decodeParameter is used\n */\nexport const mapStructNameAndType = (structName: string): AbiStruct =>\n\tstructName.includes('[]')\n\t\t? { type: 'tuple[]', name: structName.slice(0, -2) }\n\t\t: { type: 'tuple', name: structName };\n\n/**\n * Maps the simplified format in to the expected format of the ABICoder\n */\nexport const mapStructToCoderFormat = (struct: AbiStruct): Array<AbiCoderStruct> => {\n\tconst components: Array<AbiCoderStruct> = [];\n\n\tfor (const key of Object.keys(struct)) {\n\t\tconst item = struct[key];\n\n\t\tif (typeof item === 'object') {\n\t\t\tcomponents.push({\n\t\t\t\t...mapStructNameAndType(key),\n\t\t\t\tcomponents: mapStructToCoderFormat(item as unknown as AbiStruct),\n\t\t\t});\n\t\t} else {\n\t\t\tcomponents.push({\n\t\t\t\tname: key,\n\t\t\t\ttype: struct[key] as string,\n\t\t\t});\n\t\t}\n\t}\n\treturn components;\n};\n\n/**\n * Map types if simplified format is used\n */\nexport const mapTypes = (\n\ttypes: AbiInput[],\n): Array<string | AbiParameter | Record<string, unknown>> => {\n\tconst mappedTypes: Array<string | AbiParameter | Record<string, unknown>> = [];\n\n\tfor (const type of types) {\n\t\tlet modifiedType = type;\n\n\t\t// Clone object\n\t\tif (typeof type === 'object') {\n\t\t\tmodifiedType = { ...type };\n\t\t}\n\n\t\t// Remap `function` type params to bytes24 since Ethers does not\n\t\t// recognize former type. Solidity docs say `Function` is a bytes24\n\t\t// encoding the contract address followed by the function selector hash.\n\t\tif (typeof type === 'object' && type.type === 'function') {\n\t\t\tmodifiedType = { ...type, type: 'bytes24' };\n\t\t}\n\n\t\tif (isSimplifiedStructFormat(modifiedType)) {\n\t\t\tconst structName = Object.keys(modifiedType)[0] as unknown as keyof typeof modifiedType;\n\n\t\t\tmappedTypes.push({\n\t\t\t\t...mapStructNameAndType(structName),\n\t\t\t\tcomponents: mapStructToCoderFormat(\n\t\t\t\t\tmodifiedType[structName] as unknown as AbiStruct,\n\t\t\t\t) as unknown as AbiParameter[],\n\t\t\t});\n\t\t} else {\n\t\t\tmappedTypes.push(modifiedType);\n\t\t}\n\t}\n\n\treturn mappedTypes;\n};\n\n/**\n * returns true if input is a hexstring and is odd-lengthed\n */\nexport const isOddHexstring = (param: unknown): boolean =>\n\ttypeof param === 'string' && /^(-)?0x[0-9a-f]*$/i.test(param) && param.length % 2 === 1;\n\n/**\n * format odd-length bytes to even-length\n */\nexport const formatOddHexstrings = (param: string): string =>\n\tisOddHexstring(param) ? `0x0${param.substring(2)}` : param;\n\nconst paramTypeBytes = /^bytes([0-9]*)$/;\nconst paramTypeBytesArray = /^bytes([0-9]*)\\[\\]$/;\nconst paramTypeNumber = /^(u?int)([0-9]*)$/;\nconst paramTypeNumberArray = /^(u?int)([0-9]*)\\[\\]$/;\n/**\n * Handle some formatting of params for backwards compatibility with Ethers V4\n */\nexport const formatParam = (type: string, _param: unknown): unknown => {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n\t// clone if _param is an object\n\tconst param = typeof _param === 'object' && !Array.isArray(_param) ? { ..._param } : _param;\n\n\t// Format BN to string\n\tif (param instanceof BigInt || typeof param === 'bigint') {\n\t\treturn param.toString(10);\n\t}\n\n\tif (paramTypeBytesArray.exec(type) || paramTypeNumberArray.exec(type)) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\tconst paramClone = [...(param as Array<unknown>)];\n\t\treturn paramClone.map(p => formatParam(type.replace('[]', ''), p));\n\t}\n\n\t// Format correct width for u?int[0-9]*\n\tlet match = paramTypeNumber.exec(type);\n\tif (match) {\n\t\tconst size = parseInt(match[2] ? match[2] : '256', 10);\n\t\tif (size / 8 < (param as { length: number }).length) {\n\t\t\t// pad to correct bit width\n\t\t\treturn leftPad(param as string, size);\n\t\t}\n\t}\n\n\t// Format correct length for bytes[0-9]+\n\tmatch = paramTypeBytes.exec(type);\n\tif (match) {\n\t\tconst hexParam = isUint8Array(param) ? toHex(param) : param;\n\n\t\t// format to correct length\n\t\tconst size = parseInt(match[1], 10);\n\t\tif (size) {\n\t\t\tlet maxSize = size * 2;\n\n\t\t\tif ((param as string).startsWith('0x')) {\n\t\t\t\tmaxSize += 2;\n\t\t\t}\n\t\t\t// pad to correct length\n\t\t\tconst paddedParam =\n\t\t\t\t(hexParam as string).length < maxSize\n\t\t\t\t\t? rightPad(param as string, size * 2)\n\t\t\t\t\t: hexParam;\n\t\t\treturn formatOddHexstrings(paddedParam as string);\n\t\t}\n\n\t\treturn formatOddHexstrings(hexParam as string);\n\t}\n\treturn param;\n};\n\n/**\n * used to flatten json abi inputs/outputs into an array of type-representing-strings\n */\n\nexport const flattenTypes = (\n\tincludeTuple: boolean,\n\tputs: ReadonlyArray<AbiParameter>,\n): string[] => {\n\tconst types: string[] = [];\n\n\tputs.forEach(param => {\n\t\tif (typeof param.components === 'object') {\n\t\t\tif (!param.type.startsWith('tuple')) {\n\t\t\t\tthrow new AbiError(\n\t\t\t\t\t`Invalid value given \"${param.type}\". Error: components found but type is not tuple.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst arrayBracket = param.type.indexOf('[');\n\t\t\tconst suffix = arrayBracket >= 0 ? param.type.substring(arrayBracket) : '';\n\t\t\tconst result = flattenTypes(includeTuple, param.components);\n\n\t\t\tif (Array.isArray(result) && includeTuple) {\n\t\t\t\ttypes.push(`tuple(${result.join(',')})${suffix}`);\n\t\t\t} else if (!includeTuple) {\n\t\t\t\ttypes.push(`(${result.join(',')})${suffix}`);\n\t\t\t} else {\n\t\t\t\ttypes.push(`(${result.join()})`);\n\t\t\t}\n\t\t} else {\n\t\t\ttypes.push(param.type);\n\t\t}\n\t});\n\n\treturn types;\n};\n\n/**\n * Should be used to create full function/event name from json abi\n * returns a string\n */\nexport const jsonInterfaceMethodToString = (json: AbiFragment): string => {\n\tif (isAbiErrorFragment(json) || isAbiEventFragment(json) || isAbiFunctionFragment(json)) {\n\t\tif (json.name?.includes('(')) {\n\t\t\treturn json.name;\n\t\t}\n\n\t\treturn `${json.name ?? ''}(${flattenTypes(false, json.inputs ?? []).join(',')})`;\n\t}\n\n\t// Constructor fragment\n\treturn `(${flattenTypes(false, json.inputs ?? []).join(',')})`;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *\n * @module ABI\n */\n\nimport { sha3Raw } from 'web3-utils';\nimport { AbiError } from 'web3-errors';\nimport { AbiEventFragment } from 'web3-types';\nimport { jsonInterfaceMethodToString, isAbiEventFragment } from '../utils.js';\n\n/**\n * Encodes the event name to its ABI signature, which are the sha3 hash of the event name including input types.\n * @param functionName - The event name to encode, or the {@link AbiEventFragment} object of the event. If string, it has to be in the form of `eventName(param1Type,param2Type,...)`. eg: myEvent(uint256,bytes32).\n * @returns - The ABI signature of the event.\n *\n * @example\n * ```ts\n * const event = web3.eth.abi.encodeEventSignature({\n * name: \"myEvent\",\n * type: \"event\",\n * inputs: [\n * {\n * type: \"uint256\",\n * name: \"myNumber\",\n * },\n * {\n * type: \"bytes32\",\n * name: \"myBytes\",\n * },\n * ],\n * });\n * console.log(event);\n * > 0xf2eeb729e636a8cb783be044acf6b7b1e2c5863735b60d6daae84c366ee87d97\n *\n * const event = web3.eth.abi.encodeEventSignature({\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 * console.log(event);\n * > 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\n * ```\n */\nexport const encodeEventSignature = (functionName: string | AbiEventFragment): string => {\n\tif (typeof functionName !== 'string' && !isAbiEventFragment(functionName)) {\n\t\tthrow new AbiError('Invalid parameter value in encodeEventSignature');\n\t}\n\n\tlet name: string;\n\n\tif (functionName && (typeof functionName === 'function' || typeof functionName === 'object')) {\n\t\tname = jsonInterfaceMethodToString(functionName);\n\t} else {\n\t\tname = functionName;\n\t}\n\n\treturn sha3Raw(name);\n};\n","// src/regex.ts\nfunction execTyped(regex, string) {\n const match = regex.exec(string);\n return match?.groups;\n}\nvar bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\nvar 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)?$/;\nvar isTupleRegex = /^\\(.+?\\).*?$/;\n\nexport {\n execTyped,\n bytesRegex,\n integerRegex,\n isTupleRegex\n};\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\nexport {\n __publicField\n};\n","import {\n bytesRegex,\n execTyped,\n integerRegex,\n isTupleRegex\n} from \"./chunk-WP7KDV47.mjs\";\nimport {\n __publicField\n} from \"./chunk-NHABU752.mjs\";\n\n// package.json\nvar name = \"abitype\";\nvar version = \"0.7.1\";\n\n// src/errors.ts\nvar BaseError = class extends Error {\n constructor(shortMessage, args = {}) {\n const details = args.cause instanceof BaseError ? args.cause.details : args.cause?.message ? args.cause.message : args.details;\n const docsPath = args.cause instanceof BaseError ? args.cause.docsPath || args.docsPath : args.docsPath;\n const message = [\n shortMessage || \"An error occurred.\",\n \"\",\n ...args.metaMessages ? [...args.metaMessages, \"\"] : [],\n ...docsPath ? [`Docs: https://abitype.dev${docsPath}`] : [],\n ...details ? [`Details: ${details}`] : [],\n `Version: ${name}@${version}`\n ].join(\"\\n\");\n super(message);\n __publicField(this, \"details\");\n __publicField(this, \"docsPath\");\n __publicField(this, \"metaMessages\");\n __publicField(this, \"shortMessage\");\n __publicField(this, \"name\", \"AbiTypeError\");\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};\n\n// src/narrow.ts\nfunction narrow(value) {\n return value;\n}\n\n// src/human-readable/runtime/signatures.ts\nvar errorSignatureRegex = /^error (?<name>[a-zA-Z0-9_]+)\\((?<parameters>.*?)\\)$/;\nfunction isErrorSignature(signature) {\n return errorSignatureRegex.test(signature);\n}\nfunction execErrorSignature(signature) {\n return execTyped(\n errorSignatureRegex,\n signature\n );\n}\nvar eventSignatureRegex = /^event (?<name>[a-zA-Z0-9_]+)\\((?<parameters>.*?)\\)$/;\nfunction isEventSignature(signature) {\n return eventSignatureRegex.test(signature);\n}\nfunction execEventSignature(signature) {\n return execTyped(\n eventSignatureRegex,\n signature\n );\n}\nvar functionSignatureRegex = /^function (?<name>[a-zA-Z0-9_]+)\\((?<parameters>.*?)\\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns \\((?<returns>.*?)\\))?$/;\nfunction isFunctionSignature(signature) {\n return functionSignatureRegex.test(signature);\n}\nfunction execFunctionSignature(signature) {\n return execTyped(functionSignatureRegex, signature);\n}\nvar structSignatureRegex = /^struct (?<name>[a-zA-Z0-9_]+) \\{(?<properties>.*?)\\}$/;\nfunction isStructSignature(signature) {\n return structSignatureRegex.test(signature);\n}\nfunction execStructSignature(signature) {\n return execTyped(\n structSignatureRegex,\n signature\n );\n}\nvar constructorSignatureRegex = /^constructor\\((?<parameters>.*?)\\)(?:\\s(?<stateMutability>payable{1}))?$/;\nfunction isConstructorSignature(signature) {\n return constructorSignatureRegex.test(signature);\n}\nfunction execConstructorSignature(signature) {\n return execTyped(constructorSignatureRegex, signature);\n}\nvar fallbackSignatureRegex = /^fallback\\(\\)$/;\nfunction isFallbackSignature(signature) {\n return fallbackSignatureRegex.test(signature);\n}\nvar receiveSignatureRegex = /^receive\\(\\) external payable$/;\nfunction isReceiveSignature(signature) {\n return receiveSignatureRegex.test(signature);\n}\nvar modifiers = /* @__PURE__ */ new Set([\n \"memory\",\n \"indexed\",\n \"storage\",\n \"calldata\"\n]);\nvar eventModifiers = /* @__PURE__ */ new Set([\"indexed\"]);\nvar functionModifiers = /* @__PURE__ */ new Set([\n \"calldata\",\n \"memory\",\n \"storage\"\n]);\n\n// src/human-readable/runtime/cache.ts\nfunction getParameterCacheKey(param, type) {\n if (type)\n return `${type}:${param}`;\n return param;\n}\nvar parameterCache = /* @__PURE__ */ new Map([\n // Unnamed\n [\"address\", { type: \"address\" }],\n [\"bool\", { type: \"bool\" }],\n [\"bytes\", { type: \"bytes\" }],\n [\"bytes32\", { type: \"bytes32\" }],\n [\"int\", { type: \"int256\" }],\n [\"int256\", { type: \"int256\" }],\n [\"string\", { type: \"string\" }],\n [\"uint\", { type: \"uint256\" }],\n [\"uint8\", { type: \"uint8\" }],\n [\"uint16\", { type: \"uint16\" }],\n [\"uint24\", { type: \"uint24\" }],\n [\"uint32\", { type: \"uint32\" }],\n [\"uint64\", { type: \"uint64\" }],\n [\"uint96\", { type: \"uint96\" }],\n [\"uint112\", { type: \"uint112\" }],\n [\"uint160\", { type: \"uint160\" }],\n [\"uint192\", { type: \"uint192\" }],\n [\"uint256\", { type: \"uint256\" }],\n // Named\n [\"address owner\", { type: \"address\", name: \"owner\" }],\n [\"address to\", { type: \"address\", name: \"to\" }],\n [\"bool approved\", { type: \"bool\", name: \"approved\" }],\n [\"bytes _data\", { type: \"bytes\", name: \"_data\" }],\n [\"bytes data\", { type: \"bytes\", name: \"data\" }],\n [\"bytes signature\", { type: \"bytes\", name: \"signature\" }],\n [\"bytes32 hash\", { type: \"bytes32\", name: \"hash\" }],\n [\"bytes32 r\", { type: \"bytes32\", name: \"r\" }],\n [\"bytes32 root\", { type: \"bytes32\", name: \"root\" }],\n [\"bytes32 s\", { type: \"bytes32\", name: \"s\" }],\n [\"string name\", { type: \"string\", name: \"name\" }],\n [\"string symbol\", { type: \"string\", name: \"symbol\" }],\n [\"string tokenURI\", { type: \"string\", name: \"tokenURI\" }],\n [\"uint tokenId\", { type: \"uint256\", name: \"tokenId\" }],\n [\"uint8 v\", { type: \"uint8\", name: \"v\" }],\n [\"uint256 balance\", { type: \"uint256\", name: \"balance\" }],\n [\"uint256 tokenId\", { type: \"uint256\", name: \"tokenId\" }],\n [\"uint256 value\", { type: \"uint256\", name: \"value\" }],\n // Indexed\n [\n \"event:address indexed from\",\n { type: \"address\", name: \"from\", indexed: true }\n ],\n [\"event:address indexed to\", { type: \"address\", name: \"to\", indexed: true }],\n [\n \"event:uint indexed tokenId\",\n { type: \"uint256\", name: \"tokenId\", indexed: true }\n ],\n [\n \"event:uint256 indexed tokenId\",\n { type: \"uint256\", name: \"tokenId\", indexed: true }\n ]\n]);\n\n// src/human-readable/runtime/utils.ts\nfunction parseSignature(signature, structs = {}) {\n if (isFunctionSignature(signature)) {\n const match = execFunctionSignature(signature);\n if (!match)\n throw new BaseError(\"Invalid function signature.\", {\n details: signature\n });\n const inputParams = splitParameters(match.parameters);\n const inputs = [];\n const inputLength = inputParams.length;\n for (let i = 0; i < inputLength; i++) {\n inputs.push(\n parseAbiParameter(inputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: \"function\"\n })\n );\n }\n const outputs = [];\n if (match.returns) {\n const outputParams = splitParameters(match.returns);\n const outputLength = outputParams.length;\n for (let i = 0; i < outputLength; i++) {\n outputs.push(\n parseAbiParameter(outputParams[i], {\n modifiers: functionModifiers,\n structs,\n type: \"function\"\n })\n );\n }\n }\n return {\n name: match.name,\n type: \"function\",\n stateMutability: match.stateMutability ?? \"nonpayable\",\n inputs,\n outputs\n };\n }\n if (isEventSignature(signature)) {\n const match = execEventSignature(signature);\n if (!match)\n throw new BaseError(\"Invalid event signature.\", {\n details: signature\n });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(\n parseAbiParameter(params[i], {\n modifiers: eventModifiers,\n structs,\n type: \"event\"\n })\n );\n }\n return { name: match.name, type: \"event\", inputs: abiParameters };\n }\n if (isErrorSignature(signature)) {\n const match = execErrorSignature(signature);\n if (!match)\n throw new BaseError(\"Invalid error signature.\", {\n details: signature\n });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(\n parseAbiParameter(params[i], { structs, type: \"error\" })\n );\n }\n return { name: match.name, type: \"error\", inputs: abiParameters };\n }\n if (isConstructorSignature(signature)) {\n const match = execConstructorSignature(signature);\n if (!match)\n throw new BaseError(\"Invalid constructor signature.\", {\n details: signature\n });\n const params = splitParameters(match.parameters);\n const abiParameters = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(\n parseAbiParameter(params[i], { structs, type: \"constructor\" })\n );\n }\n return {\n type: \"constructor\",\n stateMutability: match.stateMutability ?? \"nonpayable\",\n inputs: abiParameters\n };\n }\n if (isFallbackSignature(signature))\n return { type: \"fallback\" };\n if (isReceiveSignature(signature))\n return {\n type: \"receive\",\n stateMutability: \"payable\"\n };\n throw new BaseError(\"Unknown signature.\", {\n details: signature\n });\n}\nvar abiParameterWithoutTupleRegex = /^(?<type>[a-zA-Z0-9_]+?)(?<array>(?:\\[\\d*?\\])+?)?(?:\\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\\s(?<name>[a-zA-Z0-9_]+))?$/;\nvar abiParameterWithTupleRegex = /^\\((?<type>.+?)\\)(?<array>(?:\\[\\d*?\\])+?)?(?:\\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\\s(?<name>[a-zA-Z0-9_]+))?$/;\nvar dynamicIntegerRegex = /^u?int$/;\nfunction parseAbiParameter(param, options) {\n const parameterCacheKey = getParameterCacheKey(param, options?.type);\n if (parameterCache.has(parameterCacheKey))\n return parameterCache.get(parameterCacheKey);\n const isTuple = isTupleRegex.test(param);\n const match = execTyped(\n isTuple ? abiParameterWithTupleRegex : abiParameterWithoutTupleRegex,\n param\n );\n if (!match)\n throw new BaseError(\"Invalid ABI parameter.\", {\n details: param\n });\n if (match.name && isSolidityKeyword(match.name))\n throw new BaseError(\"Invalid ABI parameter.\", {\n details: param,\n metaMessages: [\n `\"${match.name}\" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`\n ]\n });\n const name2 = match.name ? { name: match.name } : {};\n const indexed = match.modifier === \"indexed\" ? { indexed: true } : {};\n const structs = options?.structs ?? {};\n let type;\n let components = {};\n if (isTuple) {\n type = \"tuple\";\n const params = splitParameters(match.type);\n const components_ = [];\n const length = params.length;\n for (let i = 0; i < length; i++) {\n components_.push(parseAbiParameter(params[i], { structs }));\n }\n components = { components: components_ };\n } else if (match.type in structs) {\n type = \"tuple\";\n components = { components: structs[match.type] };\n } else if (dynamicIntegerRegex.test(match.type)) {\n type = `${match.type}256`;\n } else {\n type = match.type;\n if (!(options?.type === \"struct\") && !isSolidityType(type))\n throw new BaseError(\"Unknown type.\", {\n metaMessages: [`Type \"${type}\" is not a valid ABI type.`]\n });\n }\n if (match.modifier) {\n if (!options?.modifiers?.has?.(match.modifier))\n throw new BaseError(\"Invalid ABI parameter.\", {\n details: param,\n metaMessages: [\n `Modifier \"${match.modifier}\" not allowed${options?.type ? ` in \"${options.type}\" type` : \"\"}.`\n ]\n });\n if (functionModifiers.has(match.modifier) && !isValidDataLocation(type, !!match.array))\n throw new BaseError(\"Invalid ABI parameter.\", {\n details: param,\n metaMessages: [\n `Modifier \"${match.modifier}\" not allowed${options?.type ? ` in \"${options.type}\" type` : \"\"}.`,\n `Data location can only be specified for array, struct, or mapping types, but \"${match.modifier}\" was given.`\n ]\n });\n }\n const abiParameter = {\n type: `${type}${match.array ?? \"\"}`,\n ...name2,\n ...indexed,\n ...components\n };\n parameterCache.set(parameterCacheKey, abiParameter);\n return abiParameter;\n}\nfunction splitParameters(params, result = [], current = \"\", depth = 0) {\n if (params === \"\") {\n if (current === \"\")\n return result;\n if (depth !== 0)\n throw new BaseError(\"Unbalanced parentheses.\", {\n metaMessages: [\n `\"${current.trim()}\" has too many ${depth > 0 ? \"opening\" : \"closing\"} parentheses.`\n ],\n details: `Depth \"${depth}\"`\n });\n return [...result, current.trim()];\n }\n const length = params.length;\n for (let i = 0; i < length; i++) {\n const char = params[i];\n const tail = params.slice(i + 1);\n switch (char) {\n case \",\":\n return depth === 0 ? splitParameters(tail, [...result, current.trim()]) : splitParameters(tail, result, `${current}${char}`, depth);\n case \"(\":\n return splitParameters(tail, result, `${current}${char}`, depth + 1);\n case \")\":\n return splitParameters(tail, result, `${current}${char}`, depth - 1);\n default:\n return splitParameters(tail, result, `${current}${char}`, depth);\n }\n }\n return [];\n}\nfunction isSolidityType(type) {\n return type === \"address\" || type === \"bool\" || type === \"function\" || type === \"string\" || bytesRegex.test(type) || integerRegex.test(type);\n}\nvar protectedKeywordsRegex = /^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;\nfunction isSolidityKeyword(name2) {\n return name2 === \"address\" || name2 === \"bool\" || name2 === \"function\" || name2 === \"string\" || name2 === \"tuple\" || bytesRegex.test(name2) || integerRegex.test(name2) || protectedKeywordsRegex.test(name2);\n}\nfunction isValidDataLocation(type, isArray) {\n return isArray || type === \"bytes\" || type === \"string\" || type === \"tuple\";\n}\n\n// src/human-readable/runtime/structs.ts\nfunction parseStructs(signatures) {\n const shallowStructs = {};\n const signaturesLength = signatures.length;\n for (let i = 0; i < signaturesLength; i++) {\n const signature = signatures[i];\n if (!isStructSignature(signature))\n continue;\n const match = execStructSignature(signature);\n if (!match)\n throw new BaseError(\"Invalid struct signature.\", {\n details: signature\n });\n const properties = match.properties.split(\";\");\n const components = [];\n const propertiesLength = properties.length;\n for (let k = 0; k < propertiesLength; k++) {\n const property = properties[k];\n const trimmed = property.trim();\n if (!trimmed)\n continue;\n const abiParameter = parseAbiParameter(trimmed, {\n type: \"struct\"\n });\n components.push(abiParameter);\n }\n if (!components.length)\n throw new BaseError(\"Invalid struct signature.\", {\n details: signature,\n metaMessages: [\"No properties exist.\"]\n });\n shallowStructs[match.name] = components;\n }\n const resolvedStructs = {};\n const entries = Object.entries(shallowStructs);\n const entriesLength = entries.length;\n for (let i = 0; i < entriesLength; i++) {\n const [name2, parameters] = entries[i];\n resolvedStructs[name2] = resolveStructs(parameters, shallowStructs);\n }\n return resolvedStructs;\n}\nvar typeWithoutTupleRegex = /^(?<type>[a-zA-Z0-9_]+?)(?<array>(?:\\[\\d*?\\])+?)?$/;\nfunction resolveStructs(abiParameters, structs, ancestors = /* @__PURE__ */ new Set()) {\n const components = [];\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n const isTuple = isTupleRegex.test(abiParameter.type);\n if (isTuple)\n components.push(abiParameter);\n else {\n const match = execTyped(\n typeWithoutTupleRegex,\n abiParameter.type\n );\n if (!match?.type)\n throw new BaseError(\"Invalid ABI parameter.\", {\n details: JSON.stringify(abiParameter, null, 2),\n metaMessages: [\"ABI parameter type is invalid.\"]\n });\n const { array, type } = match;\n if (type in structs) {\n if (ancestors.has(type))\n throw new BaseError(\"Circular reference detected.\", {\n metaMessages: [`Struct \"${type}\" is a circular reference.`]\n });\n components.push({\n ...abiParameter,\n type: `tuple${array ?? \"\"}`,\n components: resolveStructs(\n structs[type] ?? [],\n structs,\n /* @__PURE__ */ new Set([...ancestors, type])\n )\n });\n } else {\n if (isSolidityType(type))\n components.push(abiParameter);\n else\n throw new BaseError(\"Unknown type.\", {\n metaMessages: [\n `Type \"${type}\" is not a valid ABI type. Perhaps you forgot to include a struct signature?`\n ]\n });\n }\n }\n }\n return components;\n}\n\n// src/human-readable/parseAbi.ts\nfunction parseAbi(signatures) {\n const structs = parseStructs(signatures);\n const abi = [];\n const length = signatures.length;\n for (let i = 0; i < length; i++) {\n const signature = signatures[i];\n if (isStructSignature(signature))\n continue;\n abi.push(parseSignature(signature, structs));\n }\n return abi;\n}\n\n// src/human-readable/parseAbiItem.ts\nfunction parseAbiItem(signature) {\n let abiItem;\n if (typeof signature === \"string\")\n abiItem = parseSignature(signature);\n else {\n const structs = parseStructs(signature);\n const length = signature.length;\n for (let i = 0; i < length; i++) {\n const signature_ = signature[i];\n if (isStructSignature(signature_))\n continue;\n abiItem = parseSignature(signature_, structs);\n break;\n }\n }\n if (!abiItem)\n throw new BaseError(\"Failed to parse ABI item.\", {\n details: `parseAbiItem(${JSON.stringify(signature, null, 2)})`,\n docsPath: \"/api/human.html#parseabiitem-1\"\n });\n return abiItem;\n}\n\n// src/human-readable/parseAbiParameter.ts\nfunction parseAbiParameter2(param) {\n let abiParameter;\n if (typeof param === \"string\")\n abiParameter = parseAbiParameter(param, {\n modifiers\n });\n else {\n const structs = parseStructs(param);\n const length = param.length;\n for (let i = 0; i < length; i++) {\n const signature = param[i];\n if (isStructSignature(signature))\n continue;\n abiParameter = parseAbiParameter(signature, { modifiers, structs });\n break;\n }\n }\n if (!abiParameter)\n throw new BaseError(\"Failed to parse ABI parameter.\", {\n details: `parseAbiParameter(${JSON.stringify(param, null, 2)})`,\n docsPath: \"/api/human.html#parseabiparameter-1\"\n });\n return abiParameter;\n}\n\n// src/human-readable/parseAbiParameters.ts\nfunction parseAbiParameters(params) {\n const abiParameters = [];\n if (typeof params === \"string\") {\n const parameters = splitParameters(params);\n const length = parameters.length;\n for (let i = 0; i < length; i++) {\n abiParameters.push(parseAbiParameter(parameters[i], { modifiers }));\n }\n } else {\n const structs = parseStructs(params);\n const length = params.length;\n for (let i = 0; i < length; i++) {\n const signature = params[i];\n if (isStructSignature(signature))\n continue;\n const parameters = splitParameters(signature);\n const length2 = parameters.length;\n for (let k = 0; k < length2; k++) {\n abiParameters.push(\n parseAbiParameter(parameters[k], { modifiers, structs })\n );\n }\n }\n }\n if (abiParameters.length === 0)\n throw new BaseError(\"Failed to parse ABI parameters.\", {\n details: `parseAbiParameters(${JSON.stringify(params, null, 2)})`,\n docsPath: \"/api/human.html#parseabiparameters-1\"\n });\n return abiParameters;\n}\nexport {\n BaseError,\n narrow,\n parseAbi,\n parseAbiItem,\n parseAbiParameter2 as parseAbiParameter,\n parseAbiParameters\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiParameter as ExternalAbiParameter, parseAbiParameter } from 'abitype';\nimport { AbiError } from 'web3-errors';\nimport { AbiInput, AbiParameter, AbiStruct } from 'web3-types';\nimport { isNullish } from 'web3-utils';\nimport {\n\tisSimplifiedStructFormat,\n\tmapStructNameAndType,\n\tmapStructToCoderFormat,\n} from '../utils.js';\n\nexport const WORD_SIZE = 32;\n\nexport function alloc(size = 0): Uint8Array {\n\tif (globalThis.Buffer?.alloc !== undefined) {\n\t\tconst buf = globalThis.Buffer.alloc(size);\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n\t}\n\n\treturn new Uint8Array(size);\n}\n\n/**\n * Where possible returns a Uint8Array of the requested size that references\n * uninitialized memory. Only use if you are certain you will immediately\n * overwrite every value in the returned `Uint8Array`.\n */\nexport function allocUnsafe(size = 0): Uint8Array {\n\tif (globalThis.Buffer?.allocUnsafe !== undefined) {\n\t\tconst buf = globalThis.Buffer.allocUnsafe(size);\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n\t}\n\n\treturn new Uint8Array(size);\n}\n\nexport function convertExternalAbiParameter(abiParam: ExternalAbiParameter): AbiParameter {\n\treturn {\n\t\t...abiParam,\n\t\tname: abiParam.name ?? '',\n\t\tcomponents: (abiParam as { components: readonly AbiParameter[] }).components?.map(c =>\n\t\t\tconvertExternalAbiParameter(c),\n\t\t),\n\t};\n}\n\nexport function isAbiParameter(param: unknown): param is AbiParameter {\n\treturn (\n\t\t!isNullish(param) &&\n\t\ttypeof param === 'object' &&\n\t\t!isNullish((param as { type: unknown }).type) &&\n\t\ttypeof (param as { type: unknown }).type === 'string'\n\t);\n}\n\nexport function toAbiParams(abi: ReadonlyArray<AbiInput>): ReadonlyArray<AbiParameter> {\n\treturn abi.map(input => {\n\t\tif (isAbiParameter(input)) {\n\t\t\treturn input;\n\t\t}\n\t\tif (typeof input === 'string') {\n\t\t\treturn convertExternalAbiParameter(parseAbiParameter(input.replace(/tuple/, '')));\n\t\t}\n\n\t\tif (isSimplifiedStructFormat(input)) {\n\t\t\tconst structName = Object.keys(input)[0];\n\t\t\tconst structInfo = mapStructNameAndType(structName);\n\t\t\tstructInfo.name = structInfo.name ?? '';\n\t\t\treturn {\n\t\t\t\t...structInfo,\n\t\t\t\tcomponents: mapStructToCoderFormat(\n\t\t\t\t\tinput[structName as keyof typeof input] as unknown as AbiStruct,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\tthrow new AbiError('Invalid abi');\n\t});\n}\n\nexport function extractArrayType(param: AbiParameter): { size: number; param: AbiParameter } {\n\tconst arrayParenthesisStart = param.type.lastIndexOf('[');\n\tconst arrayParamType = param.type.substring(0, arrayParenthesisStart);\n\tconst sizeString = param.type.substring(arrayParenthesisStart);\n\tlet size = -1;\n\tif (sizeString !== '[]') {\n\t\tsize = Number(sizeString.slice(1, -1));\n\t\t// eslint-disable-next-line no-restricted-globals\n\t\tif (isNaN(size)) {\n\t\t\tthrow new AbiError('Invalid fixed array size', { size: sizeString });\n\t\t}\n\t}\n\treturn {\n\t\tparam: { type: arrayParamType, name: '', components: param.components },\n\t\tsize,\n\t};\n}\n\n/**\n * Param is dynamic if it's dynamic base type or if some of his children (components, array items)\n * is of dynamic type\n * @param param\n */\nexport function isDynamic(param: AbiParameter): boolean {\n\tif (param.type === 'string' || param.type === 'bytes' || param.type.endsWith('[]')) return true;\n\tif (param.type === 'tuple') {\n\t\treturn param.components?.some(isDynamic) ?? false;\n\t}\n\tif (param.type.endsWith(']')) {\n\t\treturn isDynamic(extractArrayType(param).param);\n\t}\n\treturn false;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/*\n * this variable contains the precalculated limits for all the numbers for uint and int types\n */\nexport const numberLimits = new Map<string, { min: bigint; max: bigint }>();\n\nlet base = BigInt(256); // 2 ^ 8 = 256\nfor (let i = 8; i <= 256; i += 8) {\n\tnumberLimits.set(`uint${i}`, {\n\t\tmin: BigInt(0),\n\t\tmax: base - BigInt(1),\n\t});\n\tnumberLimits.set(`int${i}`, {\n\t\tmin: -base / BigInt(2),\n\t\tmax: base / BigInt(2) - BigInt(1),\n\t});\n\tbase *= BigInt(256);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\nnumberLimits.set(`int`, numberLimits.get('int256')!);\n// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\nnumberLimits.set(`uint`, numberLimits.get('uint256')!);\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiError } from 'web3-errors';\nimport type { AbiParameter } from 'web3-types';\nimport { padLeft, toBigInt } from 'web3-utils';\nimport { utils } from 'web3-validator';\nimport { DecoderResult, EncoderResult } from '../types.js';\nimport { WORD_SIZE } from '../utils.js';\nimport { numberLimits } from './numbersLimits.js';\n\n// eslint-disable-next-line no-bitwise\nconst mask = BigInt(1) << BigInt(256);\n\nfunction bigIntToUint8Array(value: bigint, byteLength = WORD_SIZE): Uint8Array {\n\tlet hexValue;\n\tif (value < 0) {\n\t\thexValue = (mask + value).toString(16);\n\t} else {\n\t\thexValue = value.toString(16);\n\t}\n\thexValue = padLeft(hexValue, byteLength * 2);\n\treturn utils.hexToUint8Array(hexValue);\n}\n\nfunction uint8ArrayToBigInt(value: Uint8Array, max: bigint): bigint {\n\tconst hexValue = utils.uint8ArrayToHexString(value);\n\tconst result = BigInt(hexValue);\n\tif (result <= max) return result;\n\treturn result - mask;\n}\n\nexport function encodeNumber(param: AbiParameter, input: unknown): EncoderResult {\n\tlet value;\n\ttry {\n\t\tvalue = toBigInt(input);\n\t} catch (e) {\n\t\tthrow new AbiError('provided input is not number value', {\n\t\t\ttype: param.type,\n\t\t\tvalue: input,\n\t\t\tname: param.name,\n\t\t});\n\t}\n\tconst limit = numberLimits.get(param.type);\n\tif (!limit) {\n\t\tthrow new AbiError('provided abi contains invalid number datatype', { type: param.type });\n\t}\n\tif (value < limit.min) {\n\t\tthrow new AbiError('provided input is less then minimum for given type', {\n\t\t\ttype: param.type,\n\t\t\tvalue: input,\n\t\t\tname: param.name,\n\t\t\tminimum: limit.min.toString(),\n\t\t});\n\t}\n\tif (value > limit.max) {\n\t\tthrow new AbiError('provided input is greater then maximum for given type', {\n\t\t\ttype: param.type,\n\t\t\tvalue: input,\n\t\t\tname: param.name,\n\t\t\tmaximum: limit.max.toString(),\n\t\t});\n\t}\n\treturn {\n\t\tdynamic: false,\n\t\tencoded: bigIntToUint8Array(value),\n\t};\n}\n\nexport function decodeNumber(param: AbiParameter, bytes: Uint8Array): DecoderResult<bigint> {\n\tif (bytes.length < WORD_SIZE) {\n\t\tthrow new AbiError('Not enough bytes left to decode', { param, bytesLeft: bytes.length });\n\t}\n\tconst boolBytes = bytes.subarray(0, WORD_SIZE);\n\tconst limit = numberLimits.get(param.type);\n\tif (!limit) {\n\t\tthrow new AbiError('provided abi contains invalid number datatype', { type: param.type });\n\t}\n\tconst numberResult = uint8ArrayToBigInt(boolBytes, limit.max);\n\n\tif (numberResult < limit.min) {\n\t\tthrow new AbiError('decoded value is less then minimum for given type', {\n\t\t\ttype: param.type,\n\t\t\tvalue: numberResult,\n\t\t\tname: param.name,\n\t\t\tminimum: limit.min.toString(),\n\t\t});\n\t}\n\tif (numberResult > limit.max) {\n\t\tthrow new AbiError('decoded value is greater then maximum for given type', {\n\t\t\ttype: param.type,\n\t\t\tvalue: numberResult,\n\t\t\tname: param.name,\n\t\t\tmaximum: limit.max.toString(),\n\t\t});\n\t}\n\treturn {\n\t\tresult: numberResult,\n\t\tencoded: bytes.subarray(WORD_SIZE),\n\t\tconsumed: WORD_SIZE,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError } from 'web3-errors';\nimport { AbiParameter, Bytes } from 'web3-types';\nimport { bytesToHex, bytesToUint8Array } from 'web3-utils';\nimport { isBytes, ValidInputTypes } from 'web3-validator';\nimport { DecoderResult, EncoderResult } from '../types.js';\nimport { alloc, WORD_SIZE } from '../utils.js';\nimport { decodeNumber, encodeNumber } from './number.js';\n\nconst MAX_STATIC_BYTES_COUNT = 32;\n\nexport function encodeBytes(param: AbiParameter, input: unknown): EncoderResult {\n\t// hack for odd length hex strings\n\tif (typeof input === 'string' && input.length % 2 !== 0) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tinput += '0';\n\t}\n\tif (!isBytes(input as ValidInputTypes)) {\n\t\tthrow new AbiError('provided input is not valid bytes value', {\n\t\t\ttype: param.type,\n\t\t\tvalue: input,\n\t\t\tname: param.name,\n\t\t});\n\t}\n\tconst bytes = bytesToUint8Array(input as Bytes);\n\tconst [, size] = param.type.split('bytes');\n\t// fixed size\n\tif (size) {\n\t\tif (Number(size) > MAX_STATIC_BYTES_COUNT || Number(size) < 1) {\n\t\t\tthrow new AbiError(\n\t\t\t\t'invalid bytes type. Static byte type can have between 1 and 32 bytes',\n\t\t\t\t{\n\t\t\t\t\ttype: param.type,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tif (Number(size) < bytes.length) {\n\t\t\tthrow new AbiError('provided input size is different than type size', {\n\t\t\t\ttype: param.type,\n\t\t\t\tvalue: input,\n\t\t\t\tname: param.name,\n\t\t\t});\n\t\t}\n\t\tconst encoded = alloc(WORD_SIZE);\n\t\tencoded.set(bytes);\n\t\treturn {\n\t\t\tdynamic: false,\n\t\t\tencoded,\n\t\t};\n\t}\n\n\tconst partsLength = Math.ceil(bytes.length / WORD_SIZE);\n\t// one word for length of data + WORD for each part of actual data\n\tconst encoded = alloc(WORD_SIZE + partsLength * WORD_SIZE);\n\n\tencoded.set(encodeNumber({ type: 'uint32', name: '' }, bytes.length).encoded);\n\tencoded.set(bytes, WORD_SIZE);\n\treturn {\n\t\tdynamic: true,\n\t\tencoded,\n\t};\n}\n\nexport function decodeBytes(param: AbiParameter, bytes: Uint8Array): DecoderResult<string> {\n\tconst [, sizeString] = param.type.split('bytes');\n\tlet size = Number(sizeString);\n\tlet remainingBytes = bytes;\n\tlet partsCount = 1;\n\tlet consumed = 0;\n\tif (!size) {\n\t\t// dynamic bytes\n\t\tconst result = decodeNumber({ type: 'uint32', name: '' }, remainingBytes);\n\t\tsize = Number(result.result);\n\t\tconsumed += result.consumed;\n\t\tremainingBytes = result.encoded;\n\t\tpartsCount = Math.ceil(size / WORD_SIZE);\n\t}\n\tif (size > bytes.length) {\n\t\tthrow new AbiError('there is not enough data to decode', {\n\t\t\ttype: param.type,\n\t\t\tencoded: bytes,\n\t\t\tsize,\n\t\t});\n\t}\n\n\treturn {\n\t\tresult: bytesToHex(remainingBytes.subarray(0, size)),\n\t\tencoded: remainingBytes.subarray(partsCount * WORD_SIZE),\n\t\tconsumed: consumed + partsCount * WORD_SIZE,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { uint8ArrayConcat } from 'web3-utils';\nimport { EncoderResult } from '../types.js';\nimport { WORD_SIZE } from '../utils.js';\nimport { encodeNumber } from './number.js';\n\nexport function encodeDynamicParams(encodedParams: ReadonlyArray<EncoderResult>): Uint8Array {\n\tlet staticSize = 0;\n\tlet dynamicSize = 0;\n\tconst staticParams: EncoderResult[] = [];\n\tconst dynamicParams: EncoderResult[] = [];\n\t// figure out static size\n\tfor (const encodedParam of encodedParams) {\n\t\tif (encodedParam.dynamic) {\n\t\t\tstaticSize += WORD_SIZE;\n\t\t} else {\n\t\t\tstaticSize += encodedParam.encoded.length;\n\t\t}\n\t}\n\n\tfor (const encodedParam of encodedParams) {\n\t\tif (encodedParam.dynamic) {\n\t\t\tstaticParams.push(\n\t\t\t\tencodeNumber({ type: 'uint256', name: '' }, staticSize + dynamicSize),\n\t\t\t);\n\t\t\tdynamicParams.push(encodedParam);\n\t\t\tdynamicSize += encodedParam.encoded.length;\n\t\t} else {\n\t\t\tstaticParams.push(encodedParam);\n\t\t}\n\t}\n\treturn uint8ArrayConcat(\n\t\t...staticParams.map(p => p.encoded),\n\t\t...dynamicParams.map(p => p.encoded),\n\t);\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiParameter } from 'web3-types';\nimport { AbiError } from 'web3-errors';\nimport { EncoderResult, DecoderResult } from '../types.js';\nimport { decodeAddress, encodeAddress } from './address.js';\nimport { decodeBool, encodeBoolean } from './bool.js';\nimport { decodeBytes, encodeBytes } from './bytes.js';\nimport { decodeNumber, encodeNumber } from './number.js';\nimport { decodeString, encodeString } from './string.js';\n// eslint-disable-next-line import/no-cycle\nimport { decodeTuple, encodeTuple } from './tuple.js';\n// eslint-disable-next-line import/no-cycle\nimport { decodeArray, encodeArray } from './array.js';\n\nexport { encodeAddress, decodeAddress } from './address.js';\nexport { encodeBoolean, decodeBool } from './bool.js';\nexport { encodeBytes, decodeBytes } from './bytes.js';\nexport { encodeNumber, decodeNumber } from './number.js';\nexport { encodeString, decodeString } from './string.js';\n// eslint-disable-next-line import/no-cycle\nexport { encodeTuple, decodeTuple } from './tuple.js';\n// eslint-disable-next-line import/no-cycle\nexport { encodeArray, decodeArray } from './array.js';\n\nexport function encodeParamFromAbiParameter(param: AbiParameter, value: unknown): EncoderResult {\n\tif (param.type === 'string') {\n\t\treturn encodeString(param, value);\n\t}\n\tif (param.type === 'bool') {\n\t\treturn encodeBoolean(param, value);\n\t}\n\tif (param.type === 'address') {\n\t\treturn encodeAddress(param, value);\n\t}\n\tif (param.type === 'tuple') {\n\t\treturn encodeTuple(param, value);\n\t}\n\tif (param.type.endsWith(']')) {\n\t\treturn encodeArray(param, value);\n\t}\n\tif (param.type.startsWith('bytes')) {\n\t\treturn encodeBytes(param, value);\n\t}\n\tif (param.type.startsWith('uint') || param.type.startsWith('int')) {\n\t\treturn encodeNumber(param, value);\n\t}\n\tthrow new AbiError('Unsupported', {\n\t\tparam,\n\t\tvalue,\n\t});\n}\n\nexport function decodeParamFromAbiParameter(param: AbiParameter, bytes: Uint8Array): DecoderResult {\n\tif (param.type === 'string') {\n\t\treturn decodeString(param, bytes);\n\t}\n\tif (param.type === 'bool') {\n\t\treturn decodeBool(param, bytes);\n\t}\n\tif (param.type === 'address') {\n\t\treturn decodeAddress(param, bytes);\n\t}\n\tif (param.type === 'tuple') {\n\t\treturn decodeTuple(param, bytes);\n\t}\n\tif (param.type.endsWith(']')) {\n\t\treturn decodeArray(param, bytes);\n\t}\n\tif (param.type.startsWith('bytes')) {\n\t\treturn decodeBytes(param, bytes);\n\t}\n\tif (param.type.startsWith('uint') || param.type.startsWith('int')) {\n\t\treturn decodeNumber(param, bytes);\n\t}\n\tthrow new AbiError('Unsupported', {\n\t\tparam,\n\t\tbytes,\n\t});\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError } from 'web3-errors';\nimport { AbiParameter } from 'web3-types';\nimport { hexToUtf8, utf8ToBytes } from 'web3-utils';\nimport { DecoderResult, EncoderResult } from '../types.js';\nimport { decodeBytes, encodeBytes } from './bytes.js';\n\nexport function encodeString(_param: AbiParameter, input: unknown): EncoderResult {\n\tif (typeof input !== 'string') {\n\t\tthrow new AbiError('invalid input, should be string', { input });\n\t}\n\tconst bytes = utf8ToBytes(input);\n\treturn encodeBytes({ type: 'bytes', name: '' }, bytes);\n}\n\nexport function decodeString(_param: AbiParameter, bytes: Uint8Array): DecoderResult<string> {\n\tconst r = decodeBytes({ type: 'bytes', name: '' }, bytes);\n\treturn {\n\t\tresult: hexToUtf8(r.result),\n\t\tencoded: r.encoded,\n\t\tconsumed: r.consumed,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError, InvalidBooleanError } from 'web3-errors';\nimport { AbiParameter } from 'web3-types';\nimport { toBool } from 'web3-utils';\nimport { DecoderResult, EncoderResult } from '../types.js';\nimport { WORD_SIZE } from '../utils.js';\nimport { decodeNumber, encodeNumber } from './number.js';\n\nexport function encodeBoolean(param: AbiParameter, input: unknown): EncoderResult {\n\tlet value;\n\ttry {\n\t\tvalue = toBool(input);\n\t} catch (e) {\n\t\tif (e instanceof InvalidBooleanError) {\n\t\t\tthrow new AbiError('provided input is not valid boolean value', {\n\t\t\t\ttype: param.type,\n\t\t\t\tvalue: input,\n\t\t\t\tname: param.name,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn encodeNumber({ type: 'uint8', name: '' }, Number(value));\n}\n\nexport function decodeBool(_param: AbiParameter, bytes: Uint8Array): DecoderResult<boolean> {\n\tconst numberResult = decodeNumber({ type: 'uint8', name: '' }, bytes);\n\tif (numberResult.result > 1 || numberResult.result < 0) {\n\t\tthrow new AbiError('Invalid boolean value encoded', {\n\t\t\tboolBytes: bytes.subarray(0, WORD_SIZE),\n\t\t\tnumberResult,\n\t\t});\n\t}\n\treturn {\n\t\tresult: numberResult.result === BigInt(1),\n\t\tencoded: numberResult.encoded,\n\t\tconsumed: WORD_SIZE,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError } from 'web3-errors';\nimport { AbiParameter } from 'web3-types';\nimport { toChecksumAddress } from 'web3-utils';\nimport { isAddress, utils } from 'web3-validator';\nimport { DecoderResult, EncoderResult } from '../types.js';\nimport { alloc, WORD_SIZE } from '../utils.js';\n\nconst ADDRESS_BYTES_COUNT = 20;\nconst ADDRESS_OFFSET = WORD_SIZE - ADDRESS_BYTES_COUNT;\n\nexport function encodeAddress(param: AbiParameter, input: unknown): EncoderResult {\n\tif (typeof input !== 'string') {\n\t\tthrow new AbiError('address type expects string as input type', {\n\t\t\tvalue: input,\n\t\t\tname: param.name,\n\t\t\ttype: param.type,\n\t\t});\n\t}\n\tlet address = input.toLowerCase();\n\tif (!address.startsWith('0x')) {\n\t\taddress = `0x${address}`;\n\t}\n\tif (!isAddress(address)) {\n\t\tthrow new AbiError('provided input is not valid address', {\n\t\t\tvalue: input,\n\t\t\tname: param.name,\n\t\t\ttype: param.type,\n\t\t});\n\t}\n\t// for better performance, we could convert hex to destination bytes directly (encoded var)\n\tconst addressBytes = utils.hexToUint8Array(address);\n\t// expand address to WORD_SIZE\n\tconst encoded = alloc(WORD_SIZE);\n\tencoded.set(addressBytes, ADDRESS_OFFSET);\n\treturn {\n\t\tdynamic: false,\n\t\tencoded,\n\t};\n}\n\nexport function decodeAddress(_param: AbiParameter, bytes: Uint8Array): DecoderResult<string> {\n\tconst addressBytes = bytes.subarray(ADDRESS_OFFSET, WORD_SIZE);\n\tif (addressBytes.length !== ADDRESS_BYTES_COUNT) {\n\t\tthrow new AbiError('Invalid decoding input, not enough bytes to decode address', { bytes });\n\t}\n\tconst result = utils.uint8ArrayToHexString(addressBytes);\n\n\t// should we check is decoded value is valid address?\n\t// if(!isAddress(result)) {\n\t// throw new AbiError(\"encoded data is not valid address\", {\n\t// address: result,\n\t// });\n\t// }\n\treturn {\n\t\tresult: toChecksumAddress(result),\n\t\tencoded: bytes.subarray(WORD_SIZE),\n\t\tconsumed: WORD_SIZE,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError } from 'web3-errors';\nimport { AbiParameter } from 'web3-types';\nimport { uint8ArrayConcat } from 'web3-utils';\n// eslint-disable-next-line import/no-cycle\nimport { decodeParamFromAbiParameter, encodeNumber, encodeParamFromAbiParameter } from './index.js';\nimport { DecoderResult, EncoderResult } from '../types.js';\nimport { extractArrayType, isDynamic, WORD_SIZE } from '../utils.js';\nimport { decodeNumber } from './number.js';\nimport { encodeDynamicParams } from './utils.js';\n\nexport function encodeArray(param: AbiParameter, values: unknown): EncoderResult {\n\tif (!Array.isArray(values)) {\n\t\tthrow new AbiError('Expected value to be array', { abi: param, values });\n\t}\n\tconst { size, param: arrayItemParam } = extractArrayType(param);\n\tconst encodedParams = values.map(v => encodeParamFromAbiParameter(arrayItemParam, v));\n\tconst dynamic = size === -1;\n\tconst dynamicItems = encodedParams.length > 0 && encodedParams[0].dynamic;\n\tif (!dynamic && values.length !== size) {\n\t\tthrow new AbiError(\"Given arguments count doesn't match array length\", {\n\t\t\tarrayLength: size,\n\t\t\targumentsLength: values.length,\n\t\t});\n\t}\n\tif (dynamic || dynamicItems) {\n\t\tconst encodingResult = encodeDynamicParams(encodedParams);\n\t\tif (dynamic) {\n\t\t\tconst encodedLength = encodeNumber(\n\t\t\t\t{ type: 'uint256', name: '' },\n\t\t\t\tencodedParams.length,\n\t\t\t).encoded;\n\t\t\treturn {\n\t\t\t\tdynamic: true,\n\t\t\t\tencoded:\n\t\t\t\t\tencodedParams.length > 0\n\t\t\t\t\t\t? uint8ArrayConcat(encodedLength, encodingResult)\n\t\t\t\t\t\t: encodedLength,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tdynamic: true,\n\t\t\tencoded: encodingResult,\n\t\t};\n\t}\n\n\treturn {\n\t\tdynamic: false,\n\t\tencoded: uint8ArrayConcat(...encodedParams.map(p => p.encoded)),\n\t};\n}\n\nexport function decodeArray(param: AbiParameter, bytes: Uint8Array): DecoderResult<unknown[]> {\n\t// eslint-disable-next-line prefer-const\n\tlet { size, param: arrayItemParam } = extractArrayType(param);\n\tconst dynamic = size === -1;\n\n\tlet consumed = 0;\n\tconst result: unknown[] = [];\n\tlet remaining = bytes;\n\t// dynamic array, we need to decode length\n\tif (dynamic) {\n\t\tconst lengthResult = decodeNumber({ type: 'uint32', name: '' }, bytes);\n\t\tsize = Number(lengthResult.result);\n\t\tconsumed = lengthResult.consumed;\n\t\tremaining = lengthResult.encoded;\n\t}\n\tconst hasDynamicChild = isDynamic(arrayItemParam);\n\tif (hasDynamicChild) {\n\t\t// known length but dynamic child, each child is actually head element with encoded offset\n\t\tfor (let i = 0; i < size; i += 1) {\n\t\t\tconst offsetResult = decodeNumber(\n\t\t\t\t{ type: 'uint32', name: '' },\n\t\t\t\tremaining.subarray(i * WORD_SIZE),\n\t\t\t);\n\t\t\tconsumed += offsetResult.consumed;\n\t\t\tconst decodedChildResult = decodeParamFromAbiParameter(\n\t\t\t\tarrayItemParam,\n\t\t\t\tremaining.subarray(Number(offsetResult.result)),\n\t\t\t);\n\t\t\tconsumed += decodedChildResult.consumed;\n\t\t\tresult.push(decodedChildResult.result);\n\t\t}\n\t\treturn {\n\t\t\tresult,\n\t\t\tencoded: remaining.subarray(consumed),\n\t\t\tconsumed,\n\t\t};\n\t}\n\n\tfor (let i = 0; i < size; i += 1) {\n\t\t// decode static params\n\t\tconst decodedChildResult = decodeParamFromAbiParameter(\n\t\t\tarrayItemParam,\n\t\t\tbytes.subarray(consumed),\n\t\t);\n\t\tconsumed += decodedChildResult.consumed;\n\t\tresult.push(decodedChildResult.result);\n\t}\n\treturn {\n\t\tresult,\n\t\tencoded: bytes.subarray(consumed),\n\t\tconsumed,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError } from 'web3-errors';\nimport { AbiParameter } from 'web3-types';\nimport { uint8ArrayConcat } from 'web3-utils';\nimport { DecoderResult, EncoderResult } from '../types.js';\n// eslint-disable-next-line import/no-cycle\nimport { decodeParamFromAbiParameter, encodeParamFromAbiParameter } from './index.js';\nimport { encodeDynamicParams } from './utils.js';\nimport { isDynamic } from '../utils.js';\nimport { decodeNumber } from './number.js';\n\nexport function encodeTuple(param: AbiParameter, input: unknown): EncoderResult {\n\tlet dynamic = false;\n\tif (!Array.isArray(input) && typeof input !== 'object') {\n\t\tthrow new AbiError('param must be either Array or Object', {\n\t\t\tparam,\n\t\t\tinput,\n\t\t});\n\t}\n\tconst narrowedInput = input as Array<unknown> | Record<string, unknown>;\n\tconst encoded: Array<EncoderResult> = [];\n\tfor (let i = 0; i < (param.components?.length ?? 0); i += 1) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\tconst paramComponent = param.components![i];\n\t\tlet result: EncoderResult;\n\t\tif (Array.isArray(narrowedInput)) {\n\t\t\tif (i >= narrowedInput.length) {\n\t\t\t\tthrow new AbiError('input param length missmatch', {\n\t\t\t\t\tparam,\n\t\t\t\t\tinput,\n\t\t\t\t});\n\t\t\t}\n\t\t\tresult = encodeParamFromAbiParameter(paramComponent, narrowedInput[i]);\n\t\t} else {\n\t\t\tconst paramInput = narrowedInput[paramComponent.name ?? ''];\n\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\tif (paramInput === undefined || paramInput === null) {\n\t\t\t\tthrow new AbiError('missing input defined in abi', {\n\t\t\t\t\tparam,\n\t\t\t\t\tinput,\n\t\t\t\t\tparamName: paramComponent.name,\n\t\t\t\t});\n\t\t\t}\n\t\t\tresult = encodeParamFromAbiParameter(paramComponent, paramInput);\n\t\t}\n\t\tif (result.dynamic) {\n\t\t\tdynamic = true;\n\t\t}\n\t\tencoded.push(result);\n\t}\n\n\tif (dynamic) {\n\t\treturn {\n\t\t\tdynamic: true,\n\t\t\tencoded: encodeDynamicParams(encoded),\n\t\t};\n\t}\n\treturn {\n\t\tdynamic: false,\n\t\tencoded: uint8ArrayConcat(...encoded.map(e => e.encoded)),\n\t};\n}\n\nexport function decodeTuple(\n\tparam: AbiParameter,\n\tbytes: Uint8Array,\n): DecoderResult<{ [key: string]: unknown; __length__: number }> {\n\tconst result: { [key: string]: unknown; __length__: number } = {\n\t\t__length__: 0,\n\t};\n\n\t// tracks how much static params consumed bytes\n\tlet consumed = 0;\n\n\tif (!param.components) {\n\t\treturn {\n\t\t\tresult,\n\t\t\tencoded: bytes,\n\t\t\tconsumed,\n\t\t};\n\t}\n\t// track how much dynamic params consumed bytes\n\tlet dynamicConsumed = 0;\n\tfor (const [index, childParam] of param.components.entries()) {\n\t\tlet decodedResult: DecoderResult;\n\t\tif (isDynamic(childParam)) {\n\t\t\t// if dynamic, we will have offset encoded\n\t\t\tconst offsetResult = decodeNumber(\n\t\t\t\t{ type: 'uint32', name: '' },\n\t\t\t\tbytes.subarray(consumed),\n\t\t\t);\n\t\t\t// offset counts from start of original byte sequence\n\t\t\tdecodedResult = decodeParamFromAbiParameter(\n\t\t\t\tchildParam,\n\t\t\t\tbytes.subarray(Number(offsetResult.result)),\n\t\t\t);\n\t\t\tconsumed += offsetResult.consumed;\n\t\t\tdynamicConsumed += decodedResult.consumed;\n\t\t} else {\n\t\t\t// static param, just decode\n\t\t\tdecodedResult = decodeParamFromAbiParameter(childParam, bytes.subarray(consumed));\n\t\t\tconsumed += decodedResult.consumed;\n\t\t}\n\t\tresult.__length__ += 1;\n\t\tresult[index] = decodedResult.result;\n\t\tif (childParam.name && childParam.name !== '') {\n\t\t\tresult[childParam.name] = decodedResult.result;\n\t\t}\n\t}\n\treturn {\n\t\tencoded: bytes.subarray(consumed + dynamicConsumed),\n\t\tresult,\n\t\tconsumed: consumed + dynamicConsumed,\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { AbiError } from 'web3-errors';\nimport { AbiInput, AbiParameter } from 'web3-types';\nimport { toHex } from 'web3-utils';\nimport { utils } from 'web3-validator';\nimport { encodeTuple } from './base/index.js';\nimport { toAbiParams } from './utils.js';\n\n/**\n * @param params - The params to infer the ABI from\n * @returns The inferred ABI\n * @example\n * ```\n * inferParamsAbi([1, -1, 'hello', '0x1234', ])\n * ```\n * > [{ type: 'int256' }, { type: 'uint256' }, { type: 'string' }, { type: 'bytes' }]\n * ```\n */\nfunction inferParamsAbi(params: unknown[]): ReadonlyArray<AbiParameter> {\n\tconst abi: AbiParameter[] = [];\n\tparams.forEach(param => {\n\t\tif (Array.isArray(param)) {\n\t\t\tconst inferredParams = inferParamsAbi(param);\n\t\t\tabi.push({\n\t\t\t\ttype: 'tuple',\n\t\t\t\tcomponents: inferredParams,\n\t\t\t\tname: '',\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\t} as AbiParameter);\n\t\t} else {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\t\tabi.push({ type: toHex(param as any, true) } as AbiParameter);\n\t\t}\n\t});\n\treturn abi;\n}\n\n/**\n * Encodes a parameter based on its type to its ABI representation.\n * @param abi - An array of {@link AbiInput}. See [Solidity's documentation](https://solidity.readthedocs.io/en/v0.5.3/abi-spec.html#json) for more details.\n * @param params - The actual parameters to encode.\n * @returns - The ABI encoded parameters\n * @example\n * ```ts\n * const res = web3.eth.abi.encodeParameters(\n * [\"uint256\", \"string\"],\n * [\"2345675643\", \"Hello!%\"]\n * );\n *\n * console.log(res);\n * > 0x000000000000000000000000000000000000000000000000000000008bd02b7b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000748656c6c6f212500000000000000000000000000000000000000000000000000\n * ```\n */\nexport function encodeParameters(abi: ReadonlyArray<AbiInput>, params: unknown[]): string {\n\tif (abi?.length !== params.length) {\n\t\tthrow new AbiError('Invalid number of values received for given ABI', {\n\t\t\texpected: abi?.length,\n\t\t\treceived: params.length,\n\t\t});\n\t}\n\n\tconst abiParams = toAbiParams(abi);\n\treturn utils.uint8ArrayToHexString(\n\t\tencodeTuple({ type: 'tuple', name: '', components: abiParams }, params).encoded,\n\t);\n}\n\n/**\n * Infer a smart contract method parameter type and then encode this parameter.\n * @param params - The parameters to encode.\n * @returns - The ABI encoded parameters\n *\n * @remarks\n * This method is useful when you don't know the type of the parameters you want to encode. It will infer the type of the parameters and then encode them.\n * However, it is not recommended to use this method when you know the type of the parameters you want to encode. In this case, use the {@link encodeParameters} method instead.\n * The type inference is not perfect and can lead to unexpected results. Especially when you want to encode an array, uint that is not uint256 or bytes....\n * @example\n * ```ts\n * const res = web3.eth.abi.encodeParameters(\n * [\"2345675643\", \"Hello!%\"]\n * );\n *\n * console.log(res);\n * > 0x000000000000000000000000000000000000000000000000000000008bd02b7b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000748656c6c6f212500000000000000000000000000000000000000000000000000\n * ```\n */\nexport function inferTypesAndEncodeParameters(params: unknown[]): string {\n\ttry {\n\t\tconst abiParams = inferParamsAbi(params);\n\t\treturn utils.uint8ArrayToHexString(\n\t\t\tencodeTuple({ type: 'tuple', name: '', components: abiParams }, params).encoded,\n\t\t);\n\t} catch (e) {\n\t\t// throws If the inferred params type caused an error\n\t\tthrow new AbiError('Could not infer types from given params', {\n\t\t\tparams,\n\t\t});\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *\n * @module ABI\n */\n\nimport { AbiError } from 'web3-errors';\nimport { AbiInput, HexString } from 'web3-types';\nimport { decodeParameters as decodeParametersInternal } from '../coders/decode.js';\nimport { encodeParameters } from '../coders/encode.js';\n\nexport { encodeParameters, inferTypesAndEncodeParameters } from '../coders/encode.js';\n\n/**\n * Encodes a parameter based on its type to its ABI representation.\n * @param abi - The type of the parameter. See the [Solidity documentation](https://docs.soliditylang.org/en/develop/types.html) for a list of types.\n * @param param - The actual parameter to encode.\n * @returns - The ABI encoded parameter\n * @example\n * ```ts\n * const res = web3.eth.abi.encodeParameter(\"uint256\", \"2345675643\");\n * console.log(res);\n * 0x000000000000000000000000000000000000000000000000000000008bd02b7b\n *\n * const res = web3.eth.abi.encodeParameter(\"uint\", \"2345675643\");\n *\n * console.log(res);\n * >0x000000000000000000000000000000000000000000000000000000008bd02b7b\n *\n * const res = web3.eth.abi.encodeParameter(\"bytes32\", \"0xdf3234\");\n *\n * console.log(res);\n * >0xdf32340000000000000000000000000000000000000000000000000000000000\n *\n * const res = web3.eth.abi.encodeParameter(\"bytes\", \"0xdf3234\");\n *\n * console.log(res);\n * > 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003df32340000000000000000000000000000000000000000000000000000000000\n *\n * const res = web3.eth.abi.encodeParameter(\"bytes32[]\", [\"0xdf3234\", \"0xfdfd\"]);\n *\n * console.log(res);\n * > 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002df32340000000000000000000000000000000000000000000000000000000000fdfd000000000000000000000000000000000000000000000000000000000000\n *\n * const res = web3.eth.abi.encodeParameter(\n * {\n * ParentStruct: {\n * propertyOne: \"uint256\",\n * propertyTwo: \"uint256\",\n * childStruct: {\n * propertyOne: \"uint256\",\n * propertyTwo: \"uint256\",\n * },\n * },\n * },\n * {\n * propertyOne: 42,\n * propertyTwo: 56,\n * childStruct: {\n * propertyOne: 45,\n * propertyTwo: 78,\n * },\n * }\n * );\n *\n * console.log(res);\n * > 0x000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000004e\n * ```\n */\nexport const encodeParameter = (abi: AbiInput, param: unknown): string =>\n\tencodeParameters([abi], [param]);\n/**\n * Should be used to decode list of params\n */\nexport const decodeParametersWith = (\n\tabis: AbiInput[],\n\tbytes: HexString,\n\tloose: boolean,\n): { [key: string]: unknown; __length__: number } => {\n\ttry {\n\t\tif (abis.length > 0 && (!bytes || bytes === '0x' || bytes === '0X')) {\n\t\t\tthrow new AbiError(\n\t\t\t\t\"Returned values aren't valid, did it run Out of Gas? \" +\n\t\t\t\t\t'You might also see this error if you are not using the ' +\n\t\t\t\t\t'correct ABI for the contract you are retrieving data from, ' +\n\t\t\t\t\t'requesting data from a block number that does not exist, ' +\n\t\t\t\t\t'or querying a node which is not fully synced.',\n\t\t\t);\n\t\t}\n\t\treturn decodeParametersInternal(abis, `0x${bytes.replace(/0x/i, '')}`, loose);\n\t} catch (err) {\n\t\tthrow new AbiError(`Parameter decoding error: ${(err as Error).message}`, {\n\t\t\tinternalErr: err,\n\t\t});\n\t}\n};\n\n/**\n * Should be used to decode list of params\n */\n/**\n * Decodes ABI encoded parameters to its JavaScript types.\n * @param abi - An array of {@link AbiInput}. See the [Solidity documentation](https://docs.soliditylang.org/en/develop/types.html) for a list of types.\n * @param bytes - The ABI byte code to decode\n * @returns - The result object containing the decoded parameters.\n * @example\n * ```ts\n * let res = web3.eth.abi.decodeParameters(\n * [\"string\", \"uint256\"],\n * \"0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000ea000000000000000000000000000000000000000000000000000000000000000848656c6c6f212521000000000000000000000000000000000000000000000000\"\n * );\n * console.log(res);\n * > { '0': 'Hello!%!', '1': 234n, __length__: 2 }\n *\n * let res = web3.eth.abi.decodeParameters(\n * [\n * {\n * type: \"string\",\n * name: \"myString\",\n * },\n * {\n * type: \"uint256\",\n * name: \"myNumber\",\n * },\n * ],\n * \"0x000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000ea000000000000000000000000000000000000000000000000000000000000000848656c6c6f212521000000000000000000000000000000000000000000000000\"\n * );\n * console.log(res);\n * > {\n * '0': 'Hello!%!',\n * '1': 234n,\n * __length__: 2,\n * myString: 'Hello!%!',\n * myNumber: 234n\n * }\n *\n * const res = web3.eth.abi.decodeParameters(\n * [\n * \"uint8[]\",\n * {\n * ParentStruct: {\n * propertyOne: \"uint256\",\n * propertyTwo: \"uint256\",\n * childStruct: {\n * propertyOne: \"uint256\",\n * propertyTwo: \"uint256\",\n * },\n * },\n * },\n * ],\n * \"0x00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000004e0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000018\"\n * );\n * console.log(res);\n * >\n * '0': [ 42n, 24n ],\n * '1': {\n * '0': 42n,\n * '1': 56n,\n * '2': {\n * '0': 45n,\n * '1': 78n,\n * __length__: 2,\n * propertyOne: 45n,\n * propertyTwo: 78n\n * },\n * __length__: 3,\n * propertyOne: 42n,\n * propertyTwo: 56n,\n * childStruct: {\n * '0': 45n,\n * '1': 78n,\n * __length__: 2,\n * propertyOne: 45n,\n * propertyTwo: 78n\n * }\n * },\n * __length__: 2,\n * ParentStruct: {\n * '0': 42n,\n * '1': 56n,\n * '2': {\n * '0': 45n,\n * '1': 78n,\n * __length__: 2,\n * propertyOne: 45n,\n * propertyTwo: 78n\n * },\n * __length__: 3,\n * propertyOne: 42n,\n * propertyTwo: 56n,\n * childStruct: {\n * '0': 45n,\n * '1': 78n,\n * __length__: 2,\n * propertyOne: 45n,\n * propertyTwo: 78n\n * }\n * }\n *}\n * ```\n */\nexport const decodeParameters = (\n\tabi: AbiInput[],\n\tbytes: HexString,\n): { [key: string]: unknown; __length__: number } => decodeParametersWith(abi, bytes, false);\n\n/**\n * Should be used to decode bytes to plain param\n */\n/**\n * Decodes an ABI encoded parameter to its JavaScript type.\n * @param abi - The type of the parameter. See the [Solidity documentation](https://docs.soliditylang.org/en/develop/types.html) for a list of types.\n * @param bytes - The ABI byte code to decode\n * @returns - The decoded parameter\n * @example\n * ```ts\n * const res = web3.eth.abi.decodeParameter(\n * \"uint256\",\n * \"0x0000000000000000000000000000000000000000000000000000000000000010\"\n * );\n * console.log(res);\n * > 16n\n *\n * const res = web3.eth.abi.decodeParameter(\n * \"string\",\n * \"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000848656c6c6f212521000000000000000000000000000000000000000000000000\"\n * );\n *\n * console.log(res);\n * > Hello!%!\n *\n * const res = web3.eth.abi.decodeParameter(\n * {\n * ParentStruct: {\n * propertyOne: \"uint256\",\n * propertyTwo: \"uint256\",\n * childStruct: {\n * propertyOne: \"uint256\",\n * propertyTwo: \"uint256\",\n * },\n * },\n * },\n * \"0x000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000004e\"\n * );\n *\n * console.log(res);\n * {\n * '0': 42n,\n * '1': 56n,\n * '2': {\n * '0': 45n,\n * '1': 78n,\n * __length__: 2,\n * propertyOne: 45n,\n * propertyTwo: 78n\n * },\n * __length__: 3,\n * propertyOne: 42n,\n * propertyTwo: 56n,\n * childStruct: {\n * '0': 45n,\n * '1': 78n,\n * __length__: 2,\n * propertyOne: 45n,\n * propertyTwo: 78n\n * }\n *}\n * ```\n */\nexport const decodeParameter = (abi: AbiInput, bytes: HexString): unknown =>\n\tdecodeParameters([abi], bytes)['0'];\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { AbiInput, HexString } from 'web3-types';\nimport { utils } from 'web3-validator';\nimport { decodeTuple } from './base/tuple.js';\nimport { toAbiParams } from './utils.js';\n\nexport function decodeParameters(\n\tabis: AbiInput[],\n\tbytes: HexString,\n\t_loose: boolean,\n): { [key: string]: unknown; __length__: number } {\n\tconst abiParams = toAbiParams(abis);\n\tconst bytesArray = utils.hexToUint8Array(bytes);\n\n\treturn decodeTuple({ type: 'tuple', name: '', components: abiParams }, bytesArray).result;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *\n * @module ABI\n */\nimport { AbiError } from 'web3-errors';\nimport { sha3Raw } from 'web3-utils';\nimport { AbiFunctionFragment } from 'web3-types';\nimport { isAbiFunctionFragment, jsonInterfaceMethodToString } from '../utils.js';\nimport { encodeParameters } from './parameters_api.js';\n\n/**\n * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types.\n * The JSON interface spec documentation https://docs.soliditylang.org/en/latest/abi-spec.html#json\n * @param functionName - The function name to encode or the `JSON interface` object of the function.\n * If the passed parameter is a string, it has to be in the form of `functionName(param1Type,param2Type,...)`. eg: myFunction(uint256,uint32[],bytes10,bytes)\n * @returns - The ABI signature of the function.\n * @example\n * ```ts\n * const signature = web3.eth.abi.encodeFunctionSignature({\n * name: \"myMethod\",\n * type: \"function\",\n * inputs: [\n * {\n * type: \"uint256\",\n * name: \"myNumber\",\n * },\n * {\n * type: \"string\",\n * name: \"myString\",\n * },\n * ],\n * });\n * console.log(signature);\n * > 0x24ee0097\n *\n * const signature = web3.eth.abi.encodeFunctionSignature('myMethod(uint256,string)')\n * console.log(signature);\n * > 0x24ee0097\n *\n * const signature = web3.eth.abi.encodeFunctionSignature('safeTransferFrom(address,address,uint256,bytes)');\n * console.log(signature);\n * > 0xb88d4fde\n * ```\n */\nexport const encodeFunctionSignature = (functionName: string | AbiFunctionFragment): string => {\n\tif (typeof functionName !== 'string' && !isAbiFunctionFragment(functionName)) {\n\t\tthrow new AbiError('Invalid parameter value in encodeFunctionSignature');\n\t}\n\n\tlet name: string;\n\n\tif (functionName && (typeof functionName === 'function' || typeof functionName === 'object')) {\n\t\tname = jsonInterfaceMethodToString(functionName);\n\t} else {\n\t\tname = functionName;\n\t}\n\n\treturn sha3Raw(name).slice(0, 10);\n};\n\n/**\n * Encodes a function call using its `JSON interface` object and given parameters.\n * The JSON interface spec documentation https://docs.soliditylang.org/en/latest/abi-spec.html#json\n * @param jsonInterface - The `JSON interface` object of the function.\n * @param params - The parameters to encode\n * @returns - The ABI encoded function call, which, means the function signature and the parameters passed.\n * @example\n * ```ts\n * const sig = web3.eth.abi.encodeFunctionCall(\n * {\n * name: \"myMethod\",\n * type: \"function\",\n * inputs: [\n * {\n * type: \"uint256\",\n * name: \"myNumber\",\n * },\n * {\n * type: \"string\",\n * name: \"myString\",\n * },\n * ],\n * },\n * [\"2345675643\", \"Hello!%\"]\n * );\n * console.log(sig);\n * > 0x24ee0097000000000000000000000000000000000000000000000000000000008bd02b7b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000748656c6c6f212500000000000000000000000000000000000000000000000000\n *\n *\n *\n * const sig = web3.eth.abi.encodeFunctionCall(\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 * [\"0x1234567890123456789012345678901234567890\"]\n * );\n *\n * console.log(sig);\n * > 0x70a082310000000000000000000000001234567890123456789012345678901234567890\n * ```\n */\nexport const encodeFunctionCall = (\n\tjsonInterface: AbiFunctionFragment,\n\tparams: unknown[],\n): string => {\n\tif (!isAbiFunctionFragment(jsonInterface)) {\n\t\tthrow new AbiError('Invalid parameter value in encodeFunctionCall');\n\t}\n\n\treturn `${encodeFunctionSignature(jsonInterface)}${encodeParameters(\n\t\tjsonInterface.inputs ?? [],\n\t\tparams ?? [],\n\t).replace('0x', '')}`;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *\n * @module ABI\n */\n\nimport { HexString, AbiParameter, DecodedParams } from 'web3-types';\nimport { decodeParameter, decodeParametersWith } from './parameters_api.js';\n\nconst STATIC_TYPES = ['bool', 'string', 'int', 'uint', 'address', 'fixed', 'ufixed'];\n\nconst _decodeParameter = (inputType: string, clonedTopic: string) =>\n\tinputType === 'string' ? clonedTopic : decodeParameter(inputType, clonedTopic);\n\n/**\n * Decodes ABI-encoded log data and indexed topic data.\n * @param inputs - A {@link AbiParameter} input array. See the [Solidity documentation](https://docs.soliditylang.org/en/develop/types.html) for a list of types.\n * @param data - The ABI byte code in the `data` field of a log.\n * @param topics - An array with the index parameter topics of the log, without the topic[0] if its a non-anonymous event, otherwise with topic[0]\n * @returns - The result object containing the decoded parameters.\n *\n * @example\n * ```ts\n * let res = web3.eth.abi.decodeLog(\n * [\n * {\n * type: \"string\",\n * name: \"myString\",\n * },\n * {\n * type: \"uint256\",\n * name: \"myNumber\",\n * indexed: true,\n * },\n * {\n * type: \"uint8\",\n * name: \"mySmallNumber\",\n * indexed: true,\n * },\n * ],\n * \"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000748656c6c6f252100000000000000000000000000000000000000000000000000\",\n * [\n * \"0x000000000000000000000000000000000000000000000000000000000000f310\",\n * \"0x0000000000000000000000000000000000000000000000000000000000000010\",\n * ]\n * );\n * > {\n * '0': 'Hello%!',\n * '1': 62224n,\n * '2': 16n,\n * __length__: 3,\n * myString: 'Hello%!',\n * myNumber: 62224n,\n * mySmallNumber: 16n\n * }\n * ```\n */\nexport const decodeLog = <ReturnType extends DecodedParams>(\n\tinputs: Array<AbiParameter>,\n\tdata: HexString,\n\ttopics: string | string[],\n) => {\n\tconst clonedTopics = Array.isArray(topics) ? topics : [topics];\n\n\tconst indexedInputs: Record<number, AbiParameter> = {};\n\tconst nonIndexedInputs: Record<number, AbiParameter> = {};\n\n\tfor (const [i, input] of inputs.entries()) {\n\t\tif (input.indexed) {\n\t\t\tindexedInputs[i] = input;\n\t\t} else {\n\t\t\tnonIndexedInputs[i] = input;\n\t\t}\n\t}\n\n\tconst decodedNonIndexedInputs: DecodedParams = data\n\t\t? decodeParametersWith(Object.values(nonIndexedInputs), data, true)\n\t\t: { __length__: 0 };\n\n\t// If topics are more than indexed inputs, that means first topic is the event signature\n\tconst offset = clonedTopics.length - Object.keys(indexedInputs).length;\n\n\tconst decodedIndexedInputs = Object.values(indexedInputs).map((input, index) =>\n\t\tSTATIC_TYPES.some(s => input.type.startsWith(s))\n\t\t\t? _decodeParameter(input.type, clonedTopics[index + offset])\n\t\t\t: clonedTopics[index + offset],\n\t);\n\n\tconst returnValues: DecodedParams = { __length__: 0 };\n\n\tlet indexedCounter = 0;\n\tlet nonIndexedCounter = 0;\n\n\tfor (const [i, res] of inputs.entries()) {\n\t\treturnValues[i] = res.type === 'string' ? '' : undefined;\n\n\t\tif (indexedInputs[i]) {\n\t\t\treturnValues[i] = decodedIndexedInputs[indexedCounter];\n\t\t\tindexedCounter += 1;\n\t\t}\n\n\t\tif (nonIndexedInputs[i]) {\n\t\t\treturnValues[i] = decodedNonIndexedInputs[String(nonIndexedCounter)];\n\t\t\tnonIndexedCounter += 1;\n\t\t}\n\n\t\tif (res.name) {\n\t\t\treturnValues[res.name] = returnValues[i];\n\t\t}\n\n\t\treturnValues.__length__ += 1;\n\t}\n\n\treturn returnValues as ReturnType;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Eip838ExecutionError } from 'web3-errors';\nimport { AbiErrorFragment } from 'web3-types';\n\nimport { encodeErrorSignature } from './api/errors_api.js';\nimport { decodeParameters } from './api/parameters_api.js';\nimport { jsonInterfaceMethodToString } from './utils.js';\n\nexport const decodeContractErrorData = (\n\terrorsAbi: AbiErrorFragment[],\n\terror: Eip838ExecutionError,\n) => {\n\tif (error?.data) {\n\t\tlet errorName: string | undefined;\n\t\tlet errorSignature: string | undefined;\n\t\tlet errorArgs: { [K in string]: unknown } | undefined;\n\t\ttry {\n\t\t\tconst errorSha = error.data.slice(0, 10);\n\t\t\tconst errorAbi = errorsAbi.find(abi => encodeErrorSignature(abi).startsWith(errorSha));\n\n\t\t\tif (errorAbi?.inputs) {\n\t\t\t\terrorName = errorAbi.name;\n\t\t\t\terrorSignature = jsonInterfaceMethodToString(errorAbi);\n\t\t\t\t// decode abi.inputs according to EIP-838\n\t\t\t\terrorArgs = decodeParameters([...errorAbi.inputs], error.data.substring(10));\n\t\t\t} else if (error.data.startsWith('0x08c379a0')) {\n\t\t\t\t// If ABI was not provided, check for the 2 famous errors: 'Error(string)' or 'Panic(uint256)'\n\n\t\t\t\terrorName = 'Error';\n\t\t\t\terrorSignature = 'Error(string)';\n\t\t\t\t// decode abi.inputs according to EIP-838\n\t\t\t\terrorArgs = decodeParameters(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'message',\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\terror.data.substring(10),\n\t\t\t\t);\n\t\t\t} else if (error.data.startsWith('0x4e487b71')) {\n\t\t\t\terrorName = 'Panic';\n\t\t\t\terrorSignature = 'Panic(uint256)';\n\t\t\t\t// decode abi.inputs according to EIP-838\n\t\t\t\terrorArgs = decodeParameters(\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'code',\n\t\t\t\t\t\t\ttype: 'uint256',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\terror.data.substring(10),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconsole.error('No matching error abi found for error data', error.data);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(err);\n\t\t}\n\t\tif (errorName) {\n\t\t\terror.setDecodedProperties(errorName, errorSignature, errorArgs);\n\t\t}\n\t}\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n *\n * @module ABI\n */\n\nimport { sha3Raw } from 'web3-utils';\nimport { AbiError } from 'web3-errors';\nimport { AbiErrorFragment } from 'web3-types';\nimport { jsonInterfaceMethodToString, isAbiErrorFragment } from '../utils.js';\n\n/**\n * Encodes the error name to its ABI signature, which are the sha3 hash of the error name including input types.\n */\nexport const encodeErrorSignature = (functionName: string | AbiErrorFragment): string => {\n\tif (typeof functionName !== 'string' && !isAbiErrorFragment(functionName)) {\n\t\tthrow new AbiError('Invalid parameter value in encodeErrorSignature');\n\t}\n\n\tlet name: string;\n\n\tif (functionName && (typeof functionName === 'function' || typeof functionName === 'object')) {\n\t\tname = jsonInterfaceMethodToString(functionName);\n\t} else {\n\t\tname = functionName;\n\t}\n\n\treturn sha3Raw(name);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Context } from 'web3-core';\nimport {\n\tContractExecutionError,\n\tEip838ExecutionError,\n\tInvalidResponseError,\n\tMultipleErrors,\n} from 'web3-errors';\nimport { decodeContractErrorData, isAbiErrorFragment } from 'web3-eth-abi';\nimport {\n\tAbiErrorFragment,\n\tContractAbi,\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tEthExecutionAPI,\n\tTransactionCall,\n} from 'web3-types';\n\n// eslint-disable-next-line import/no-cycle\nimport { call } from '../rpc_method_wrappers.js';\nimport { RevertReason, RevertReasonWithCustomError } from '../types.js';\n\nexport const parseTransactionError = (error: unknown, contractAbi?: ContractAbi) => {\n\tif (error instanceof ContractExecutionError && error.cause instanceof Eip838ExecutionError) {\n\t\tif (contractAbi !== undefined) {\n\t\t\tconst errorsAbi = contractAbi.filter(abi =>\n\t\t\t\tisAbiErrorFragment(abi),\n\t\t\t) as unknown as AbiErrorFragment[];\n\t\t\tdecodeContractErrorData(errorsAbi, error.cause);\n\n\t\t\treturn {\n\t\t\t\treason: error.cause.message,\n\t\t\t\tsignature: error.cause.data?.slice(0, 10),\n\t\t\t\tdata: error.cause.data?.substring(10),\n\t\t\t\tcustomErrorName: error.cause.errorName,\n\t\t\t\tcustomErrorDecodedSignature: error.cause.errorSignature,\n\t\t\t\tcustomErrorArguments: error.cause.errorArgs,\n\t\t\t} as RevertReasonWithCustomError;\n\t\t}\n\n\t\treturn {\n\t\t\treason: error.cause.message,\n\t\t\tsignature: error.cause.data?.slice(0, 10),\n\t\t\tdata: error.cause.data?.substring(10),\n\t\t} as RevertReason;\n\t}\n\n\tif (\n\t\terror instanceof InvalidResponseError &&\n\t\t!Array.isArray((error.cause as MultipleErrors)?.errors) &&\n\t\terror.cause !== undefined\n\t) {\n\t\treturn error.cause.message;\n\t}\n\n\tthrow error;\n};\n\n/**\n *\tReturns the revert reason generated by the EVM if the transaction were to be executed.\n *\n * @param web3Context - ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n * @param transaction - A transaction object where all properties are optional except `to`, however it's recommended to include the `from` property or it may default to `0x0000000000000000000000000000000000000000` depending on your node or provider.\n * @returns `undefined` if no revert reason was given, a revert reason object, a revert reason string, or an `unknown` error\n */\nexport async function getRevertReason<\n\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransaction: TransactionCall,\n\tcontractAbi?: ContractAbi,\n\treturnFormat: ReturnFormat = web3Context.defaultReturnFormat as ReturnFormat,\n): Promise<undefined | RevertReason | RevertReasonWithCustomError | string> {\n\ttry {\n\t\tawait call(web3Context, transaction, web3Context.defaultBlock, returnFormat);\n\t\treturn undefined;\n\t} catch (error) {\n\t\treturn parseTransactionError(error, contractAbi);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Context } from 'web3-core';\nimport {\n\tTransactionRevertedWithoutReasonError,\n\tTransactionRevertInstructionError,\n\tTransactionRevertWithCustomError,\n} from 'web3-errors';\nimport {\n\tDataFormat,\n\tFormatType,\n\tContractAbi,\n\tTransactionCall,\n\tTransactionReceipt,\n} from 'web3-types';\nimport { RevertReason, RevertReasonWithCustomError } from '../types.js';\n// eslint-disable-next-line import/no-cycle\nimport { getRevertReason, parseTransactionError } from './get_revert_reason.js';\n\nexport async function getTransactionError<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context,\n\ttransactionFormatted?: TransactionCall,\n\ttransactionReceiptFormatted?: FormatType<TransactionReceipt, ReturnFormat>,\n\treceivedError?: unknown,\n\tcontractAbi?: ContractAbi,\n\tknownReason?: string | RevertReason | RevertReasonWithCustomError,\n) {\n\tlet _reason: string | RevertReason | RevertReasonWithCustomError | undefined = knownReason;\n\n\tif (_reason === undefined) {\n\t\tif (receivedError !== undefined) {\n\t\t\t_reason = parseTransactionError(receivedError);\n\t\t} else if (web3Context.handleRevert && transactionFormatted !== undefined) {\n\t\t\t_reason = await getRevertReason(web3Context, transactionFormatted, contractAbi);\n\t\t}\n\t}\n\n\tlet error:\n\t\t| TransactionRevertedWithoutReasonError<FormatType<TransactionReceipt, ReturnFormat>>\n\t\t| TransactionRevertInstructionError<FormatType<TransactionReceipt, ReturnFormat>>\n\t\t| TransactionRevertWithCustomError<FormatType<TransactionReceipt, ReturnFormat>>;\n\tif (_reason === undefined) {\n\t\terror = new TransactionRevertedWithoutReasonError<\n\t\t\tFormatType<TransactionReceipt, ReturnFormat>\n\t\t>(transactionReceiptFormatted);\n\t} else if (typeof _reason === 'string') {\n\t\terror = new TransactionRevertInstructionError<FormatType<TransactionReceipt, ReturnFormat>>(\n\t\t\t_reason,\n\t\t\tundefined,\n\t\t\ttransactionReceiptFormatted,\n\t\t);\n\t} else if (\n\t\t(_reason as RevertReasonWithCustomError).customErrorName !== undefined &&\n\t\t(_reason as RevertReasonWithCustomError).customErrorDecodedSignature !== undefined &&\n\t\t(_reason as RevertReasonWithCustomError).customErrorArguments !== undefined\n\t) {\n\t\tconst reasonWithCustomError: RevertReasonWithCustomError =\n\t\t\t_reason as RevertReasonWithCustomError;\n\t\terror = new TransactionRevertWithCustomError<FormatType<TransactionReceipt, ReturnFormat>>(\n\t\t\treasonWithCustomError.reason,\n\t\t\treasonWithCustomError.customErrorName,\n\t\t\treasonWithCustomError.customErrorDecodedSignature,\n\t\t\treasonWithCustomError.customErrorArguments,\n\t\t\treasonWithCustomError.signature,\n\t\t\ttransactionReceiptFormatted,\n\t\t\treasonWithCustomError.data,\n\t\t);\n\t} else {\n\t\terror = new TransactionRevertInstructionError<FormatType<TransactionReceipt, ReturnFormat>>(\n\t\t\t_reason.reason,\n\t\t\t_reason.signature,\n\t\t\ttransactionReceiptFormatted,\n\t\t\t_reason.data,\n\t\t);\n\t}\n\n\treturn error;\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { format } from 'web3-utils';\n\nimport {\n\tAbiEventFragment,\n\tLogsInput,\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tEventLog,\n\tContractAbiWithSignature,\n} from 'web3-types';\n\nimport { decodeLog } from 'web3-eth-abi';\n\nimport { logSchema } from '../schemas.js';\nimport { ALL_EVENTS } from '../constants.js';\n\nexport const decodeEventABI = (\n\tevent: AbiEventFragment & { signature: string },\n\tdata: LogsInput,\n\tjsonInterface: ContractAbiWithSignature,\n\treturnFormat: DataFormat = DEFAULT_RETURN_FORMAT,\n): EventLog => {\n\tlet modifiedEvent = { ...event };\n\n\tconst result = format(logSchema, data, returnFormat);\n\n\t// if allEvents get the right event\n\tif ([ALL_EVENTS, 'allEvents'].includes(modifiedEvent.name)) {\n\t\tconst matchedEvent = jsonInterface.find(j => j.signature === data.topics[0]);\n\t\tif (matchedEvent) {\n\t\t\tmodifiedEvent = matchedEvent as AbiEventFragment & { signature: string };\n\t\t} else {\n\t\t\tmodifiedEvent = { anonymous: true } as unknown as AbiEventFragment & {\n\t\t\t\tsignature: string;\n\t\t\t};\n\t\t}\n\t}\n\n\t// create empty inputs if none are present (e.g. anonymous events on allEvents)\n\tmodifiedEvent.inputs = modifiedEvent.inputs ?? event.inputs ?? [];\n\n\t// Handle case where an event signature shadows the current ABI with non-identical\n\t// arg indexing. If # of topics doesn't match, event is anon.\n\tif (!modifiedEvent.anonymous) {\n\t\tlet indexedInputs = 0;\n\t\t(modifiedEvent.inputs ?? []).forEach(input => {\n\t\t\tif (input.indexed) {\n\t\t\t\tindexedInputs += 1;\n\t\t\t}\n\t\t});\n\n\t\tif (indexedInputs > 0 && data?.topics && data?.topics.length !== indexedInputs + 1) {\n\t\t\t// checks if event is anonymous\n\t\t\tmodifiedEvent = {\n\t\t\t\t...modifiedEvent,\n\t\t\t\tanonymous: true,\n\t\t\t\tinputs: [],\n\t\t\t};\n\t\t}\n\t}\n\n\tconst argTopics = modifiedEvent.anonymous ? data.topics : (data.topics ?? []).slice(1);\n\n\treturn {\n\t\t...result,\n\t\treturnValues: decodeLog([...(modifiedEvent.inputs ?? [])], data.data, argTopics),\n\t\tevent: modifiedEvent.name,\n\t\tsignature:\n\t\t\tmodifiedEvent.anonymous || !data.topics || data.topics.length === 0 || !data.topics[0]\n\t\t\t\t? undefined\n\t\t\t\t: data.topics[0],\n\n\t\traw: {\n\t\t\tdata: data.data,\n\t\t\ttopics: data.topics,\n\t\t},\n\t};\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport {\n\tETH_DATA_FORMAT,\n\tFormatType,\n\tDataFormat,\n\tEthExecutionAPI,\n\tTransactionWithSenderAPI,\n\tWeb3BaseWalletAccount,\n\tHexString,\n\tTransactionReceipt,\n\tTransaction,\n\tTransactionCall,\n\tTransactionWithFromLocalWalletIndex,\n\tTransactionWithToLocalWalletIndex,\n\tTransactionWithFromAndToLocalWalletIndex,\n\tLogsInput,\n\tTransactionHash,\n\tContractAbiWithSignature,\n} from 'web3-types';\nimport { Web3Context, Web3EventEmitter, Web3PromiEvent } from 'web3-core';\nimport { isNullish, JsonSchema } from 'web3-validator';\nimport {\n\tContractExecutionError,\n\tInvalidResponseError,\n\tTransactionPollingTimeoutError,\n\tTransactionRevertedWithoutReasonError,\n\tTransactionRevertInstructionError,\n\tTransactionRevertWithCustomError,\n} from 'web3-errors';\nimport { ethRpcMethods } from 'web3-rpc-methods';\n\nimport {\n\tSendSignedTransactionEvents,\n\tSendTransactionEvents,\n\tSendTransactionOptions,\n} from '../types.js';\n// eslint-disable-next-line import/no-cycle\nimport { getTransactionGasPricing } from './get_transaction_gas_pricing.js';\n// eslint-disable-next-line import/no-cycle\nimport { trySendTransaction } from './try_send_transaction.js';\n// eslint-disable-next-line import/no-cycle\nimport { watchTransactionForConfirmations } from './watch_transaction_for_confirmations.js';\nimport { ALL_EVENTS_ABI } from '../constants.js';\n// eslint-disable-next-line import/no-cycle\nimport { getTransactionError } from './get_transaction_error.js';\n// eslint-disable-next-line import/no-cycle\nimport { getRevertReason } from './get_revert_reason.js';\nimport { decodeEventABI } from './decoding.js';\n\nexport class SendTxHelper<\n\tReturnFormat extends DataFormat,\n\tResolveType = FormatType<TransactionReceipt, ReturnFormat>,\n\tTxType =\n\t\t| Transaction\n\t\t| TransactionWithFromLocalWalletIndex\n\t\t| TransactionWithToLocalWalletIndex\n\t\t| TransactionWithFromAndToLocalWalletIndex,\n> {\n\tprivate readonly web3Context: Web3Context<EthExecutionAPI>;\n\tprivate readonly promiEvent: Web3PromiEvent<\n\t\tResolveType,\n\t\tSendSignedTransactionEvents<ReturnFormat> | SendTransactionEvents<ReturnFormat>\n\t>;\n\tprivate readonly options: SendTransactionOptions<ResolveType> = {\n\t\tcheckRevertBeforeSending: true,\n\t};\n\tprivate readonly returnFormat: ReturnFormat;\n\tpublic constructor({\n\t\toptions,\n\t\tweb3Context,\n\t\tpromiEvent,\n\t\treturnFormat,\n\t}: {\n\t\tweb3Context: Web3Context<EthExecutionAPI>;\n\t\toptions: SendTransactionOptions<ResolveType>;\n\t\tpromiEvent: Web3PromiEvent<\n\t\t\tResolveType,\n\t\t\tSendSignedTransactionEvents<ReturnFormat> | SendTransactionEvents<ReturnFormat>\n\t\t>;\n\t\treturnFormat: ReturnFormat;\n\t}) {\n\t\tthis.options = options;\n\t\tthis.web3Context = web3Context;\n\t\tthis.promiEvent = promiEvent;\n\t\tthis.returnFormat = returnFormat;\n\t}\n\n\tpublic getReceiptWithEvents(data: TransactionReceipt): ResolveType {\n\t\tconst result = { ...(data ?? {}) };\n\t\tif (this.options?.contractAbi && result.logs && result.logs.length > 0) {\n\t\t\tresult.events = {};\n\t\t\tfor (const log of result.logs) {\n\t\t\t\tconst event = decodeEventABI(\n\t\t\t\t\tALL_EVENTS_ABI,\n\t\t\t\t\tlog as LogsInput,\n\t\t\t\t\tthis.options?.contractAbi as ContractAbiWithSignature,\n\t\t\t\t\tthis.returnFormat,\n\t\t\t\t);\n\t\t\t\tif (event.event) {\n\t\t\t\t\tresult.events[event.event] = event;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result as unknown as ResolveType;\n\t}\n\n\tpublic async checkRevertBeforeSending(tx: TransactionCall) {\n\t\tif (this.options.checkRevertBeforeSending !== false) {\n\t\t\tlet formatTx = tx;\n\t\t\tif (isNullish(tx.data) && isNullish(tx.input) && isNullish(tx.gas)) {\n\t\t\t\t// eth.call runs into error if data isnt filled and gas is not defined, its a simple transaction so we fill it with 21000\n\t\t\t\tformatTx = {\n\t\t\t\t\t...tx,\n\t\t\t\t\tgas: 21000,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst reason = await getRevertReason(\n\t\t\t\tthis.web3Context,\n\t\t\t\tformatTx,\n\t\t\t\tthis.options.contractAbi,\n\t\t\t);\n\t\t\tif (reason !== undefined) {\n\t\t\t\tthrow await getTransactionError<ReturnFormat>(\n\t\t\t\t\tthis.web3Context,\n\t\t\t\t\ttx,\n\t\t\t\t\tundefined,\n\t\t\t\t\tundefined,\n\t\t\t\t\tthis.options.contractAbi,\n\t\t\t\t\treason,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic emitSending(tx: TxType | HexString) {\n\t\tif (this.promiEvent.listenerCount('sending') > 0) {\n\t\t\tthis.promiEvent.emit('sending', tx);\n\t\t}\n\t}\n\n\tpublic async populateGasPrice({\n\t\ttransactionFormatted,\n\t\ttransaction,\n\t}: {\n\t\ttransactionFormatted: TxType;\n\t\ttransaction: TxType;\n\t}): Promise<TxType> {\n\t\tlet result = transactionFormatted;\n\t\tif (\n\t\t\t!this.options?.ignoreGasPricing &&\n\t\t\tisNullish((transactionFormatted as Transaction).gasPrice) &&\n\t\t\t(isNullish((transaction as Transaction).maxPriorityFeePerGas) ||\n\t\t\t\tisNullish((transaction as Transaction).maxFeePerGas))\n\t\t) {\n\t\t\tresult = {\n\t\t\t\t...transactionFormatted,\n\t\t\t\t// @TODO gasPrice, maxPriorityFeePerGas, maxFeePerGas\n\t\t\t\t// should not be included if undefined, but currently are\n\t\t\t\t...(await getTransactionGasPricing(\n\t\t\t\t\ttransactionFormatted,\n\t\t\t\t\tthis.web3Context,\n\t\t\t\t\tETH_DATA_FORMAT,\n\t\t\t\t)),\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tpublic async signAndSend({\n\t\twallet,\n\t\ttx,\n\t}: {\n\t\twallet: Web3BaseWalletAccount | undefined;\n\t\ttx: TxType;\n\t}) {\n\t\tif (wallet) {\n\t\t\tconst signedTransaction = await wallet.signTransaction(tx);\n\n\t\t\treturn trySendTransaction(\n\t\t\t\tthis.web3Context,\n\t\t\t\tasync (): Promise<string> =>\n\t\t\t\t\tethRpcMethods.sendRawTransaction(\n\t\t\t\t\t\tthis.web3Context.requestManager,\n\t\t\t\t\t\tsignedTransaction.rawTransaction,\n\t\t\t\t\t),\n\t\t\t\tsignedTransaction.transactionHash,\n\t\t\t);\n\t\t}\n\t\treturn trySendTransaction(\n\t\t\tthis.web3Context,\n\t\t\tasync (): Promise<string> =>\n\t\t\t\tethRpcMethods.sendTransaction(\n\t\t\t\t\tthis.web3Context.requestManager,\n\t\t\t\t\ttx as Partial<TransactionWithSenderAPI>,\n\t\t\t\t),\n\t\t);\n\t}\n\n\tpublic emitSent(tx: TxType | HexString) {\n\t\tif (this.promiEvent.listenerCount('sent') > 0) {\n\t\t\tthis.promiEvent.emit('sent', tx);\n\t\t}\n\t}\n\tpublic emitTransactionHash(hash: string & Uint8Array) {\n\t\tif (this.promiEvent.listenerCount('transactionHash') > 0) {\n\t\t\tthis.promiEvent.emit('transactionHash', hash);\n\t\t}\n\t}\n\n\tpublic emitReceipt(receipt: ResolveType) {\n\t\tif (this.promiEvent.listenerCount('receipt') > 0) {\n\t\t\t(\n\t\t\t\tthis.promiEvent as Web3EventEmitter<\n\t\t\t\t\tSendTransactionEvents<ReturnFormat> | SendSignedTransactionEvents<ReturnFormat>\n\t\t\t\t>\n\t\t\t).emit(\n\t\t\t\t'receipt',\n\t\t\t\t// @ts-expect-error unknown type fix\n\t\t\t\treceipt,\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic async handleError({ error, tx }: { error: unknown; tx: TransactionCall }) {\n\t\tlet _error = error;\n\n\t\tif (_error instanceof ContractExecutionError && this.web3Context.handleRevert) {\n\t\t\t_error = await getTransactionError(\n\t\t\t\tthis.web3Context,\n\t\t\t\ttx,\n\t\t\t\tundefined,\n\t\t\t\tundefined,\n\t\t\t\tthis.options?.contractAbi,\n\t\t\t);\n\t\t}\n\n\t\tif (\n\t\t\t(_error instanceof InvalidResponseError ||\n\t\t\t\t_error instanceof ContractExecutionError ||\n\t\t\t\t_error instanceof TransactionRevertWithCustomError ||\n\t\t\t\t_error instanceof TransactionRevertedWithoutReasonError ||\n\t\t\t\t_error instanceof TransactionRevertInstructionError ||\n\t\t\t\t_error instanceof TransactionPollingTimeoutError) &&\n\t\t\tthis.promiEvent.listenerCount('error') > 0\n\t\t) {\n\t\t\tthis.promiEvent.emit('error', _error);\n\t\t}\n\n\t\treturn _error;\n\t}\n\n\tpublic emitConfirmation({\n\t\treceipt,\n\t\ttransactionHash,\n\t\tcustomTransactionReceiptSchema,\n\t}: {\n\t\treceipt: ResolveType;\n\t\ttransactionHash: TransactionHash;\n\t\tcustomTransactionReceiptSchema?: JsonSchema;\n\t}) {\n\t\tif (this.promiEvent.listenerCount('confirmation') > 0) {\n\t\t\twatchTransactionForConfirmations<\n\t\t\t\tReturnFormat,\n\t\t\t\tSendSignedTransactionEvents<ReturnFormat> | SendTransactionEvents<ReturnFormat>,\n\t\t\t\tResolveType\n\t\t\t>(\n\t\t\t\tthis.web3Context,\n\t\t\t\tthis.promiEvent,\n\t\t\t\treceipt as unknown as TransactionReceipt,\n\t\t\t\ttransactionHash,\n\t\t\t\tthis.returnFormat,\n\t\t\t\tcustomTransactionReceiptSchema,\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic async handleResolve({ receipt, tx }: { receipt: ResolveType; tx: TransactionCall }) {\n\t\tif (this.options?.transactionResolver) {\n\t\t\treturn this.options?.transactionResolver(receipt as unknown as TransactionReceipt);\n\t\t}\n\t\tif ((receipt as unknown as TransactionReceipt).status === BigInt(0)) {\n\t\t\tconst error = await getTransactionError<ReturnFormat>(\n\t\t\t\tthis.web3Context,\n\t\t\t\ttx,\n\t\t\t\t// @ts-expect-error unknown type fix\n\t\t\t\treceipt,\n\t\t\t\tundefined,\n\t\t\t\tthis.options?.contractAbi,\n\t\t\t);\n\t\t\tif (this.promiEvent.listenerCount('error') > 0) {\n\t\t\t\tthis.promiEvent.emit('error', error);\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t} else {\n\t\t\treturn receipt;\n\t\t}\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// Disabling because returnTypes must be last param to match 1.x params\n/* eslint-disable default-param-last */\nimport {\n\tETH_DATA_FORMAT,\n\tFormatType,\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tEthExecutionAPI,\n\tSignedTransactionInfoAPI,\n\tWeb3BaseWalletAccount,\n\tAddress,\n\tBlockTag,\n\tBlockNumberOrTag,\n\tBytes,\n\tFilter,\n\tHexString,\n\tNumbers,\n\tHexStringBytes,\n\tAccountObject,\n\tBlock,\n\tFeeHistory,\n\tLog,\n\tTransactionReceipt,\n\tTransaction,\n\tTransactionCall,\n\tWeb3EthExecutionAPI,\n\tTransactionWithFromLocalWalletIndex,\n\tTransactionWithToLocalWalletIndex,\n\tTransactionWithFromAndToLocalWalletIndex,\n\tTransactionForAccessList,\n\tAccessListResult,\n\tEip712TypedData,\n} from 'web3-types';\nimport { Web3Context, Web3PromiEvent } from 'web3-core';\nimport { format, hexToBytes, bytesToUint8Array, numberToHex } from 'web3-utils';\nimport { TransactionFactory } from 'web3-eth-accounts';\nimport { isBlockTag, isBytes, isNullish, isString } from 'web3-validator';\nimport { SignatureError } from 'web3-errors';\nimport { ethRpcMethods } from 'web3-rpc-methods';\n\nimport { decodeSignedTransaction } from './utils/decode_signed_transaction.js';\nimport {\n\taccountSchema,\n\tblockSchema,\n\tfeeHistorySchema,\n\tlogSchema,\n\ttransactionReceiptSchema,\n\taccessListResultSchema,\n\tSignatureObjectSchema,\n} from './schemas.js';\nimport {\n\tSendSignedTransactionEvents,\n\tSendSignedTransactionOptions,\n\tSendTransactionEvents,\n\tSendTransactionOptions,\n\tTransactionMiddleware,\n} from './types.js';\n// eslint-disable-next-line import/no-cycle\nimport { getTransactionFromOrToAttr } from './utils/transaction_builder.js';\nimport { formatTransaction } from './utils/format_transaction.js';\n// eslint-disable-next-line import/no-cycle\nimport { trySendTransaction } from './utils/try_send_transaction.js';\n// eslint-disable-next-line import/no-cycle\nimport { waitForTransactionReceipt } from './utils/wait_for_transaction_receipt.js';\nimport { NUMBER_DATA_FORMAT } from './constants.js';\n// eslint-disable-next-line import/no-cycle\nimport { SendTxHelper } from './utils/send_tx_helper.js';\n\n/**\n * View additional documentations here: {@link Web3Eth.getProtocolVersion}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport const getProtocolVersion = async (web3Context: Web3Context<EthExecutionAPI>) =>\n\tethRpcMethods.getProtocolVersion(web3Context.requestManager);\n\n// TODO Add returnFormat parameter\n/**\n * View additional documentations here: {@link Web3Eth.isSyncing}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport const isSyncing = async (web3Context: Web3Context<EthExecutionAPI>) =>\n\tethRpcMethods.getSyncing(web3Context.requestManager);\n\n// TODO consider adding returnFormat parameter (to format address as bytes)\n/**\n * View additional documentations here: {@link Web3Eth.getCoinbase}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport const getCoinbase = async (web3Context: Web3Context<EthExecutionAPI>) =>\n\tethRpcMethods.getCoinbase(web3Context.requestManager);\n\n/**\n * View additional documentations here: {@link Web3Eth.isMining}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport const isMining = async (web3Context: Web3Context<EthExecutionAPI>) =>\n\tethRpcMethods.getMining(web3Context.requestManager);\n\n/**\n * View additional documentations here: {@link Web3Eth.getHashRate}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getHashRate<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.getHashRate(web3Context.requestManager);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getGasPrice}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getGasPrice<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.getGasPrice(web3Context.requestManager);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getMaxPriorityFeePerGas}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getMaxPriorityFeePerGas<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.getMaxPriorityFeePerGas(web3Context.requestManager);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n/**\n * View additional documentations here: {@link Web3Eth.getBlockNumber}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getBlockNumber<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.getBlockNumber(web3Context.requestManager);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getBalance}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getBalance<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\taddress: Address,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\tconst response = await ethRpcMethods.getBalance(\n\t\tweb3Context.requestManager,\n\t\taddress,\n\t\tblockNumberFormatted,\n\t);\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getStorageAt}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getStorageAt<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\taddress: Address,\n\tstorageSlot: Numbers,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst storageSlotFormatted = format({ format: 'uint' }, storageSlot, ETH_DATA_FORMAT);\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\tconst response = await ethRpcMethods.getStorageAt(\n\t\tweb3Context.requestManager,\n\t\taddress,\n\t\tstorageSlotFormatted,\n\t\tblockNumberFormatted,\n\t);\n\treturn format(\n\t\t{ format: 'bytes' },\n\t\tresponse as Bytes,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getCode}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getCode<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\taddress: Address,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\tconst response = await ethRpcMethods.getCode(\n\t\tweb3Context.requestManager,\n\t\taddress,\n\t\tblockNumberFormatted,\n\t);\n\treturn format(\n\t\t{ format: 'bytes' },\n\t\tresponse as Bytes,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getBlock}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getBlock<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tblock: Bytes | BlockNumberOrTag = web3Context.defaultBlock,\n\thydrated = false,\n\treturnFormat: ReturnFormat,\n) {\n\tlet response;\n\tif (isBytes(block)) {\n\t\tconst blockHashFormatted = format({ format: 'bytes32' }, block, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getBlockByHash(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockHashFormatted as HexString,\n\t\t\thydrated,\n\t\t);\n\t} else {\n\t\tconst blockNumberFormatted = isBlockTag(block as string)\n\t\t\t? (block as BlockTag)\n\t\t\t: format({ format: 'uint' }, block as Numbers, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getBlockByNumber(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockNumberFormatted,\n\t\t\thydrated,\n\t\t);\n\t}\n\tconst res = format(\n\t\tblockSchema,\n\t\tresponse as unknown as Block,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n\n\tif (!isNullish(res)) {\n\t\tconst result = {\n\t\t\t...res,\n\t\t\ttransactions: res.transactions ?? [],\n\t\t};\n\t\treturn result;\n\t}\n\n\treturn res;\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getBlockTransactionCount}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getBlockTransactionCount<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tblock: Bytes | BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tlet response;\n\tif (isBytes(block)) {\n\t\tconst blockHashFormatted = format({ format: 'bytes32' }, block, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getBlockTransactionCountByHash(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockHashFormatted as HexString,\n\t\t);\n\t} else {\n\t\tconst blockNumberFormatted = isBlockTag(block as string)\n\t\t\t? (block as BlockTag)\n\t\t\t: format({ format: 'uint' }, block as Numbers, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getBlockTransactionCountByNumber(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockNumberFormatted,\n\t\t);\n\t}\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getBlockUncleCount}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getBlockUncleCount<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tblock: Bytes | BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tlet response;\n\tif (isBytes(block)) {\n\t\tconst blockHashFormatted = format({ format: 'bytes32' }, block, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getUncleCountByBlockHash(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockHashFormatted as HexString,\n\t\t);\n\t} else {\n\t\tconst blockNumberFormatted = isBlockTag(block as string)\n\t\t\t? (block as BlockTag)\n\t\t\t: format({ format: 'uint' }, block as Numbers, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getUncleCountByBlockNumber(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockNumberFormatted,\n\t\t);\n\t}\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getUncle}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getUncle<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tblock: Bytes | BlockNumberOrTag = web3Context.defaultBlock,\n\tuncleIndex: Numbers,\n\treturnFormat: ReturnFormat,\n) {\n\tconst uncleIndexFormatted = format({ format: 'uint' }, uncleIndex, ETH_DATA_FORMAT);\n\n\tlet response;\n\tif (isBytes(block)) {\n\t\tconst blockHashFormatted = format({ format: 'bytes32' }, block, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getUncleByBlockHashAndIndex(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockHashFormatted as HexString,\n\t\t\tuncleIndexFormatted,\n\t\t);\n\t} else {\n\t\tconst blockNumberFormatted = isBlockTag(block as string)\n\t\t\t? (block as BlockTag)\n\t\t\t: format({ format: 'uint' }, block as Numbers, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getUncleByBlockNumberAndIndex(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockNumberFormatted,\n\t\t\tuncleIndexFormatted,\n\t\t);\n\t}\n\n\treturn format(\n\t\tblockSchema,\n\t\tresponse as unknown as Block,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getTransaction}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getTransaction<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransactionHash: Bytes,\n\treturnFormat: ReturnFormat = web3Context.defaultReturnFormat as ReturnFormat,\n) {\n\tconst transactionHashFormatted = format(\n\t\t{ format: 'bytes32' },\n\t\ttransactionHash,\n\t\tDEFAULT_RETURN_FORMAT,\n\t);\n\tconst response = await ethRpcMethods.getTransactionByHash(\n\t\tweb3Context.requestManager,\n\t\ttransactionHashFormatted,\n\t);\n\n\treturn isNullish(response)\n\t\t? response\n\t\t: formatTransaction(response, returnFormat, {\n\t\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t\t\tfillInputAndData: true,\n\t\t });\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getPendingTransactions}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getPendingTransactions<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.getPendingTransactions(web3Context.requestManager);\n\n\treturn response.map(transaction =>\n\t\tformatTransaction(\n\t\t\ttransaction as unknown as Transaction,\n\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t{\n\t\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t\t\tfillInputAndData: true,\n\t\t\t},\n\t\t),\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getTransactionFromBlock}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getTransactionFromBlock<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tblock: Bytes | BlockNumberOrTag = web3Context.defaultBlock,\n\ttransactionIndex: Numbers,\n\treturnFormat: ReturnFormat,\n) {\n\tconst transactionIndexFormatted = format({ format: 'uint' }, transactionIndex, ETH_DATA_FORMAT);\n\n\tlet response;\n\tif (isBytes(block)) {\n\t\tconst blockHashFormatted = format({ format: 'bytes32' }, block, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getTransactionByBlockHashAndIndex(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockHashFormatted as HexString,\n\t\t\ttransactionIndexFormatted,\n\t\t);\n\t} else {\n\t\tconst blockNumberFormatted = isBlockTag(block as string)\n\t\t\t? (block as BlockTag)\n\t\t\t: format({ format: 'uint' }, block as Numbers, ETH_DATA_FORMAT);\n\t\tresponse = await ethRpcMethods.getTransactionByBlockNumberAndIndex(\n\t\t\tweb3Context.requestManager,\n\t\t\tblockNumberFormatted,\n\t\t\ttransactionIndexFormatted,\n\t\t);\n\t}\n\n\treturn isNullish(response)\n\t\t? response\n\t\t: formatTransaction(response, returnFormat ?? web3Context.defaultReturnFormat, {\n\t\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t\t\tfillInputAndData: true,\n\t\t });\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getTransactionReceipt}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getTransactionReceipt<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransactionHash: Bytes,\n\treturnFormat: ReturnFormat,\n) {\n\tconst transactionHashFormatted = format(\n\t\t{ format: 'bytes32' },\n\t\ttransactionHash,\n\t\tDEFAULT_RETURN_FORMAT,\n\t);\n\tlet response;\n\ttry {\n\t\tresponse = await ethRpcMethods.getTransactionReceipt(\n\t\t\tweb3Context.requestManager,\n\t\t\ttransactionHashFormatted,\n\t\t);\n\t} catch (error) {\n\t\t// geth indexing error, we poll until transactions stopped indexing\n\t\tif (\n\t\t\ttypeof error === 'object' &&\n\t\t\t!isNullish(error) &&\n\t\t\t'message' in error &&\n\t\t\t(error as { message: string }).message === 'transaction indexing is in progress'\n\t\t) {\n\t\t\tconsole.warn('Transaction indexing is in progress.');\n\t\t} else {\n\t\t\tthrow error;\n\t\t}\n\t}\n\treturn isNullish(response)\n\t\t? response\n\t\t: format(\n\t\t\t\ttransactionReceiptSchema,\n\t\t\t\tresponse as unknown as TransactionReceipt,\n\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t );\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getTransactionCount}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getTransactionCount<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\taddress: Address,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\tconst response = await ethRpcMethods.getTransactionCount(\n\t\tweb3Context.requestManager,\n\t\taddress,\n\t\tblockNumberFormatted,\n\t);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.sendTransaction}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport function sendTransaction<\n\tReturnFormat extends DataFormat,\n\tResolveType = FormatType<TransactionReceipt, ReturnFormat>,\n>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransactionObj:\n\t\t| Transaction\n\t\t| TransactionWithFromLocalWalletIndex\n\t\t| TransactionWithToLocalWalletIndex\n\t\t| TransactionWithFromAndToLocalWalletIndex,\n\treturnFormat: ReturnFormat,\n\toptions: SendTransactionOptions<ResolveType> = { checkRevertBeforeSending: true },\n\ttransactionMiddleware?: TransactionMiddleware,\n): Web3PromiEvent<ResolveType, SendTransactionEvents<ReturnFormat>> {\n\tconst promiEvent = new Web3PromiEvent<ResolveType, SendTransactionEvents<ReturnFormat>>(\n\t\t(resolve, reject) => {\n\t\t\tsetImmediate(() => {\n\t\t\t\t(async () => {\n\t\t\t\t\tconst sendTxHelper = new SendTxHelper<ReturnFormat, ResolveType>({\n\t\t\t\t\t\tweb3Context,\n\t\t\t\t\t\tpromiEvent,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t});\n\n\t\t\t\t\tlet transaction = { ...transactionObj };\n\n\t\t\t\t\tif (!isNullish(transactionMiddleware)) {\n\t\t\t\t\t\ttransaction = await transactionMiddleware.processTransaction(transaction);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet transactionFormatted:\n\t\t\t\t\t\t| Transaction\n\t\t\t\t\t\t| TransactionWithFromLocalWalletIndex\n\t\t\t\t\t\t| TransactionWithToLocalWalletIndex\n\t\t\t\t\t\t| TransactionWithFromAndToLocalWalletIndex = formatTransaction(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...transaction,\n\t\t\t\t\t\t\tfrom: getTransactionFromOrToAttr('from', web3Context, transaction),\n\t\t\t\t\t\t\tto: getTransactionFromOrToAttr('to', web3Context, transaction),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tETH_DATA_FORMAT,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\ttransactionFormatted = await sendTxHelper.populateGasPrice({\n\t\t\t\t\t\t\ttransaction,\n\t\t\t\t\t\t\ttransactionFormatted,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tawait sendTxHelper.checkRevertBeforeSending(\n\t\t\t\t\t\t\ttransactionFormatted as TransactionCall,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitSending(transactionFormatted);\n\n\t\t\t\t\t\tlet wallet: Web3BaseWalletAccount | undefined;\n\n\t\t\t\t\t\tif (web3Context.wallet && !isNullish(transactionFormatted.from)) {\n\t\t\t\t\t\t\twallet = web3Context.wallet.get(\n\t\t\t\t\t\t\t\t(transactionFormatted as Transaction).from as string,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst transactionHash: HexString = await sendTxHelper.signAndSend({\n\t\t\t\t\t\t\twallet,\n\t\t\t\t\t\t\ttx: transactionFormatted,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst transactionHashFormatted = format(\n\t\t\t\t\t\t\t{ format: 'bytes32' },\n\t\t\t\t\t\t\ttransactionHash as Bytes,\n\t\t\t\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsendTxHelper.emitSent(transactionFormatted);\n\t\t\t\t\t\tsendTxHelper.emitTransactionHash(\n\t\t\t\t\t\t\ttransactionHashFormatted as string & Uint8Array,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst transactionReceipt = await waitForTransactionReceipt(\n\t\t\t\t\t\t\tweb3Context,\n\t\t\t\t\t\t\ttransactionHash,\n\t\t\t\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst transactionReceiptFormatted = sendTxHelper.getReceiptWithEvents(\n\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\ttransactionReceiptSchema,\n\t\t\t\t\t\t\t\ttransactionReceipt,\n\t\t\t\t\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitReceipt(transactionReceiptFormatted);\n\n\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\tawait sendTxHelper.handleResolve({\n\t\t\t\t\t\t\t\treceipt: transactionReceiptFormatted,\n\t\t\t\t\t\t\t\ttx: transactionFormatted as TransactionCall,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitConfirmation({\n\t\t\t\t\t\t\treceipt: transactionReceiptFormatted,\n\t\t\t\t\t\t\ttransactionHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tawait sendTxHelper.handleError({\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\ttx: transactionFormatted as TransactionCall,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t})() as unknown;\n\t\t\t});\n\t\t},\n\t);\n\n\treturn promiEvent;\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.sendSignedTransaction}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport function sendSignedTransaction<\n\tReturnFormat extends DataFormat,\n\tResolveType = FormatType<TransactionReceipt, ReturnFormat>,\n>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tsignedTransaction: Bytes,\n\treturnFormat: ReturnFormat,\n\toptions: SendSignedTransactionOptions<ResolveType> = { checkRevertBeforeSending: true },\n): Web3PromiEvent<ResolveType, SendSignedTransactionEvents<ReturnFormat>> {\n\t// TODO - Promise returned in function argument where a void return was expected\n\t// eslint-disable-next-line @typescript-eslint/no-misused-promises\n\tconst promiEvent = new Web3PromiEvent<ResolveType, SendSignedTransactionEvents<ReturnFormat>>(\n\t\t(resolve, reject) => {\n\t\t\tsetImmediate(() => {\n\t\t\t\t(async () => {\n\t\t\t\t\tconst sendTxHelper = new SendTxHelper<ReturnFormat, ResolveType>({\n\t\t\t\t\t\tweb3Context,\n\t\t\t\t\t\tpromiEvent,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t});\n\t\t\t\t\t// Formatting signedTransaction to be send to RPC endpoint\n\t\t\t\t\tconst signedTransactionFormattedHex = format(\n\t\t\t\t\t\t{ format: 'bytes' },\n\t\t\t\t\t\tsignedTransaction,\n\t\t\t\t\t\tETH_DATA_FORMAT,\n\t\t\t\t\t);\n\t\t\t\t\tconst unSerializedTransaction = TransactionFactory.fromSerializedData(\n\t\t\t\t\t\tbytesToUint8Array(hexToBytes(signedTransactionFormattedHex)),\n\t\t\t\t\t);\n\t\t\t\t\tconst unSerializedTransactionWithFrom = {\n\t\t\t\t\t\t...unSerializedTransaction.toJSON(),\n\t\t\t\t\t\t// Some providers will default `from` to address(0) causing the error\n\t\t\t\t\t\t// reported from `eth_call` to not be the reason the user's tx failed\n\t\t\t\t\t\t// e.g. `eth_call` will return an Out of Gas error for a failed\n\t\t\t\t\t\t// smart contract execution contract, because the sender, address(0),\n\t\t\t\t\t\t// has no balance to pay for the gas of the transaction execution\n\t\t\t\t\t\tfrom: unSerializedTransaction.getSenderAddress().toString(),\n\t\t\t\t\t};\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst { v, r, s, ...txWithoutSigParams } = unSerializedTransactionWithFrom;\n\n\t\t\t\t\t\tawait sendTxHelper.checkRevertBeforeSending(\n\t\t\t\t\t\t\ttxWithoutSigParams as TransactionCall,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitSending(signedTransactionFormattedHex);\n\n\t\t\t\t\t\tconst transactionHash = await trySendTransaction(\n\t\t\t\t\t\t\tweb3Context,\n\t\t\t\t\t\t\tasync (): Promise<string> =>\n\t\t\t\t\t\t\t\tethRpcMethods.sendRawTransaction(\n\t\t\t\t\t\t\t\t\tweb3Context.requestManager,\n\t\t\t\t\t\t\t\t\tsignedTransactionFormattedHex,\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitSent(signedTransactionFormattedHex);\n\n\t\t\t\t\t\tconst transactionHashFormatted = format(\n\t\t\t\t\t\t\t{ format: 'bytes32' },\n\t\t\t\t\t\t\ttransactionHash as Bytes,\n\t\t\t\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitTransactionHash(\n\t\t\t\t\t\t\ttransactionHashFormatted as string & Uint8Array,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst transactionReceipt = await waitForTransactionReceipt(\n\t\t\t\t\t\t\tweb3Context,\n\t\t\t\t\t\t\ttransactionHash,\n\t\t\t\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst transactionReceiptFormatted = sendTxHelper.getReceiptWithEvents(\n\t\t\t\t\t\t\tformat(\n\t\t\t\t\t\t\t\ttransactionReceiptSchema,\n\t\t\t\t\t\t\t\ttransactionReceipt,\n\t\t\t\t\t\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitReceipt(transactionReceiptFormatted);\n\n\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\tawait sendTxHelper.handleResolve({\n\t\t\t\t\t\t\t\treceipt: transactionReceiptFormatted,\n\t\t\t\t\t\t\t\ttx: unSerializedTransactionWithFrom as TransactionCall,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tsendTxHelper.emitConfirmation({\n\t\t\t\t\t\t\treceipt: transactionReceiptFormatted,\n\t\t\t\t\t\t\ttransactionHash,\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\treject(\n\t\t\t\t\t\t\tawait sendTxHelper.handleError({\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\ttx: unSerializedTransactionWithFrom as TransactionCall,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t})() as unknown;\n\t\t\t});\n\t\t},\n\t);\n\n\treturn promiEvent;\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.sign}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function sign<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tmessage: Bytes,\n\taddressOrIndex: Address | number,\n\treturnFormat: ReturnFormat = web3Context.defaultReturnFormat as ReturnFormat,\n) {\n\tconst messageFormatted = format({ format: 'bytes' }, message, DEFAULT_RETURN_FORMAT);\n\tif (web3Context.wallet?.get(addressOrIndex)) {\n\t\tconst wallet = web3Context.wallet.get(addressOrIndex) as Web3BaseWalletAccount;\n\t\tconst signed = wallet.sign(messageFormatted);\n\t\treturn format(SignatureObjectSchema, signed, returnFormat);\n\t}\n\n\tif (typeof addressOrIndex === 'number') {\n\t\tthrow new SignatureError(\n\t\t\tmessage,\n\t\t\t'RPC method \"eth_sign\" does not support index signatures',\n\t\t);\n\t}\n\n\tconst response = await ethRpcMethods.sign(\n\t\tweb3Context.requestManager,\n\t\taddressOrIndex,\n\t\tmessageFormatted,\n\t);\n\n\treturn format({ format: 'bytes' }, response as Bytes, returnFormat);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.signTransaction}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function signTransaction<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransaction: Transaction,\n\treturnFormat: ReturnFormat = web3Context.defaultReturnFormat as ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.signTransaction(\n\t\tweb3Context.requestManager,\n\t\tformatTransaction(transaction, ETH_DATA_FORMAT, {\n\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t}),\n\t);\n\t// Some clients only return the encoded signed transaction (e.g. Ganache)\n\t// while clients such as Geth return the desired SignedTransactionInfoAPI object\n\treturn isString(response as HexStringBytes)\n\t\t? decodeSignedTransaction(response as HexStringBytes, returnFormat, {\n\t\t\t\tfillInputAndData: true,\n\t\t })\n\t\t: {\n\t\t\t\traw: format(\n\t\t\t\t\t{ format: 'bytes' },\n\t\t\t\t\t(response as SignedTransactionInfoAPI).raw,\n\t\t\t\t\treturnFormat,\n\t\t\t\t),\n\t\t\t\ttx: formatTransaction((response as SignedTransactionInfoAPI).tx, returnFormat, {\n\t\t\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t\t\t\tfillInputAndData: true,\n\t\t\t\t}),\n\t\t };\n}\n\n// TODO Decide what to do with transaction.to\n// https://github.com/ChainSafe/web3.js/pull/4525#issuecomment-982330076\n/**\n * View additional documentations here: {@link Web3Eth.call}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function call<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransaction: TransactionCall,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat = web3Context.defaultReturnFormat as ReturnFormat,\n) {\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\n\tconst response = await ethRpcMethods.call(\n\t\tweb3Context.requestManager,\n\t\tformatTransaction(transaction, ETH_DATA_FORMAT, {\n\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t}),\n\t\tblockNumberFormatted,\n\t);\n\n\treturn format({ format: 'bytes' }, response as Bytes, returnFormat);\n}\n\n// TODO - Investigate whether response is padded as 1.x docs suggest\n/**\n * View additional documentations here: {@link Web3Eth.estimateGas}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function estimateGas<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransaction: Transaction,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst transactionFormatted = formatTransaction(transaction, ETH_DATA_FORMAT, {\n\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t});\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\n\tconst response = await ethRpcMethods.estimateGas(\n\t\tweb3Context.requestManager,\n\t\ttransactionFormatted,\n\t\tblockNumberFormatted,\n\t);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\tresponse as Numbers,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n// TODO - Add input formatting to filter\n/**\n * View additional documentations here: {@link Web3Eth.getPastLogs}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getLogs<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<Web3EthExecutionAPI>,\n\tfilter: Filter,\n\treturnFormat: ReturnFormat,\n) {\n\t// format type bigint or number toBlock and fromBlock to hexstring.\n\tlet { toBlock, fromBlock } = filter;\n\tif (!isNullish(toBlock)) {\n\t\tif (typeof toBlock === 'number' || typeof toBlock === 'bigint') {\n\t\t\ttoBlock = numberToHex(toBlock);\n\t\t}\n\t}\n\tif (!isNullish(fromBlock)) {\n\t\tif (typeof fromBlock === 'number' || typeof fromBlock === 'bigint') {\n\t\t\tfromBlock = numberToHex(fromBlock);\n\t\t}\n\t}\n\n\tconst formattedFilter = { ...filter, fromBlock, toBlock };\n\n\tconst response = await ethRpcMethods.getLogs(web3Context.requestManager, formattedFilter);\n\n\tconst result = response.map(res => {\n\t\tif (typeof res === 'string') {\n\t\t\treturn res;\n\t\t}\n\n\t\treturn format(\n\t\t\tlogSchema,\n\t\t\tres as unknown as Log,\n\t\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t\t);\n\t});\n\n\treturn result;\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getChainId}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getChainId<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.getChainId(web3Context.requestManager);\n\n\treturn format(\n\t\t{ format: 'uint' },\n\t\t// Response is number in hex formatted string\n\t\tresponse as unknown as number,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.getProof}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getProof<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<Web3EthExecutionAPI>,\n\taddress: Address,\n\tstorageKeys: Bytes[],\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst storageKeysFormatted = storageKeys.map(storageKey =>\n\t\tformat({ format: 'bytes' }, storageKey, ETH_DATA_FORMAT),\n\t);\n\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\n\tconst response = await ethRpcMethods.getProof(\n\t\tweb3Context.requestManager,\n\t\taddress,\n\t\tstorageKeysFormatted,\n\t\tblockNumberFormatted,\n\t);\n\n\treturn format(\n\t\taccountSchema,\n\t\tresponse as unknown as AccountObject,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n// TODO Throwing an error with Geth, but not Infura\n// TODO gasUsedRatio and reward not formatting\n/**\n * View additional documentations here: {@link Web3Eth.getFeeHistory}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function getFeeHistory<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tblockCount: Numbers,\n\tnewestBlock: BlockNumberOrTag = web3Context.defaultBlock,\n\trewardPercentiles: Numbers[],\n\treturnFormat: ReturnFormat,\n) {\n\tconst blockCountFormatted = format({ format: 'uint' }, blockCount, ETH_DATA_FORMAT);\n\n\tconst newestBlockFormatted = isBlockTag(newestBlock as string)\n\t\t? (newestBlock as BlockTag)\n\t\t: format({ format: 'uint' }, newestBlock as Numbers, ETH_DATA_FORMAT);\n\n\tconst rewardPercentilesFormatted = format(\n\t\t{\n\t\t\ttype: 'array',\n\t\t\titems: {\n\t\t\t\tformat: 'uint',\n\t\t\t},\n\t\t},\n\t\trewardPercentiles,\n\t\tNUMBER_DATA_FORMAT,\n\t);\n\n\tconst response = await ethRpcMethods.getFeeHistory(\n\t\tweb3Context.requestManager,\n\t\tblockCountFormatted,\n\t\tnewestBlockFormatted,\n\t\trewardPercentilesFormatted,\n\t);\n\n\treturn format(\n\t\tfeeHistorySchema,\n\t\tresponse as unknown as FeeHistory,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.createAccessList}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function createAccessList<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\ttransaction: TransactionForAccessList,\n\tblockNumber: BlockNumberOrTag = web3Context.defaultBlock,\n\treturnFormat: ReturnFormat,\n) {\n\tconst blockNumberFormatted = isBlockTag(blockNumber as string)\n\t\t? (blockNumber as BlockTag)\n\t\t: format({ format: 'uint' }, blockNumber as Numbers, ETH_DATA_FORMAT);\n\n\tconst response = (await ethRpcMethods.createAccessList(\n\t\tweb3Context.requestManager,\n\t\tformatTransaction(transaction, ETH_DATA_FORMAT, {\n\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t}),\n\t\tblockNumberFormatted,\n\t)) as unknown as AccessListResult;\n\n\treturn format(\n\t\taccessListResultSchema,\n\t\tresponse,\n\t\treturnFormat ?? web3Context.defaultReturnFormat,\n\t);\n}\n\n/**\n * View additional documentations here: {@link Web3Eth.signTypedData}\n * @param web3Context ({@link Web3Context}) Web3 configuration object that contains things such as the provider, request manager, wallet, etc.\n */\nexport async function signTypedData<ReturnFormat extends DataFormat>(\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\taddress: Address,\n\ttypedData: Eip712TypedData,\n\tuseLegacy: boolean,\n\treturnFormat: ReturnFormat,\n) {\n\tconst response = await ethRpcMethods.signTypedData(\n\t\tweb3Context.requestManager,\n\t\taddress,\n\t\ttypedData,\n\t\tuseLegacy,\n\t);\n\n\treturn format({ format: 'bytes' }, response, returnFormat ?? web3Context.defaultReturnFormat);\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport {\n\tDataFormat,\n\tHexStringBytes,\n\tSignedTransactionInfoAPI,\n\tTransactionSignedAPI,\n} from 'web3-types';\nimport { bytesToHex, format, hexToBytes, keccak256 } from 'web3-utils';\nimport { TransactionFactory } from 'web3-eth-accounts';\nimport { detectRawTransactionType } from './detect_transaction_type.js';\nimport { formatTransaction } from './format_transaction.js';\nimport { type CustomTransactionSchema } from '../types.js';\n\n/**\n * Decodes an [RLP](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/#top) encoded transaction.\n *\n * @param encodedSignedTransaction The RLP encoded transaction.\n * @param returnFormat ({@link DataFormat} Specifies how the return data should be formatted.\n * @returns {@link SignedTransactionInfoAPI}, an object containing the RLP encoded signed transaction (accessed via the `raw` property) and the signed transaction object (accessed via the `tx` property).\n */\nexport function decodeSignedTransaction<ReturnFormat extends DataFormat>(\n\tencodedSignedTransaction: HexStringBytes,\n\treturnFormat: ReturnFormat,\n\toptions: { fillInputAndData?: boolean; transactionSchema?: CustomTransactionSchema } = {\n\t\tfillInputAndData: false,\n\t},\n): SignedTransactionInfoAPI {\n\treturn {\n\t\traw: format({ format: 'bytes' }, encodedSignedTransaction, returnFormat),\n\t\ttx: formatTransaction(\n\t\t\t{\n\t\t\t\t...TransactionFactory.fromSerializedData(\n\t\t\t\t\thexToBytes(encodedSignedTransaction),\n\t\t\t\t).toJSON(),\n\t\t\t\thash: bytesToHex(keccak256(hexToBytes(encodedSignedTransaction))),\n\t\t\t\ttype: detectRawTransactionType(hexToBytes(encodedSignedTransaction)),\n\t\t\t} as TransactionSignedAPI,\n\t\t\treturnFormat,\n\t\t\t{\n\t\t\t\tfillInputAndData: options.fillInputAndData,\n\t\t\t\ttransactionSchema: options.transactionSchema,\n\t\t\t},\n\t\t),\n\t};\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n/* eslint-disable-next-line max-classes-per-file */\nimport { format } from 'web3-utils';\n\nimport {\n\tSyncOutput,\n\tAddress,\n\tBlockNumberOrTag,\n\tHexString,\n\tTopic,\n\tBlockHeaderOutput,\n\tLogsOutput,\n} from 'web3-types';\nimport { Web3Subscription } from 'web3-core';\nimport { blockHeaderSchema, logSchema, syncSchema } from './schemas.js';\n\n/**\n * ## subscribe('logs')\n * Subscribes to incoming logs, filtered by the given options. If a valid numerical fromBlock options property is set, web3.js will retrieve logs beginning from this point, backfilling the response as necessary.\n *\n * You can subscribe to logs matching a given filter object, which can take the following parameters:\n * - `fromBlock`: (optional, default: 'latest') Integer block number, or `'latest'` for the last mined block or `'pending'`, `'earliest'` for not yet mined transactions.\n * - `address`: (optional) Contract address or a list of addresses from which logs should originate.\n * - `topics`: (optional) Array of 32 Bytes DATA topics. Topics are order-dependent. Each topic can also be an array of DATA with `or` options.\n *\n */\nexport class LogsSubscription extends Web3Subscription<\n\t{\n\t\tdata: LogsOutput;\n\t},\n\t{\n\t\treadonly fromBlock?: BlockNumberOrTag;\n\t\treadonly address?: Address | Address[];\n\t\treadonly topics?: Topic[];\n\t}\n> {\n\tprotected _buildSubscriptionParams() {\n\t\treturn ['logs', this.args];\n\t}\n\n\tprotected formatSubscriptionResult(data: LogsOutput) {\n\t\treturn format(logSchema, data, super.returnFormat);\n\t}\n}\n\n/**\n * ## subscribe('pendingTransactions')\n * Subscribes to incoming pending transactions.\n *\n * You can subscribe to pending transactions by calling web3.eth.subscribe('pendingTransactions').\n * @example\n * ```ts\n * (await web3.eth.subscribe('pendingTransactions')).on('data', console.log);\n * ```\n */\nexport class NewPendingTransactionsSubscription extends Web3Subscription<{\n\tdata: HexString;\n}> {\n\t// eslint-disable-next-line\n\tprotected _buildSubscriptionParams() {\n\t\treturn ['newPendingTransactions'];\n\t}\n\n\tprotected formatSubscriptionResult(data: string) {\n\t\treturn format({ format: 'string' }, data, super.returnFormat);\n\t}\n}\n\n/**\n * ## subscribe('newHeads') ( same as subscribe('newBlockHeaders'))\n *\n * Subscribes to incoming block headers. This can be used as timer to check for changes on the blockchain.\n *\n * The structure of a returned block header is {@link BlockHeaderOutput}:\n * @example\n * ```ts\n * (await web3.eth.subscribe('newHeads')).on( // 'newBlockHeaders' would work as well\n * 'data',\n * console.log\n * );\n * >{\n * parentHash: '0x9e746a1d906b299def98c75b06f714d62dacadd567c7515d76eeaa8c8074c738',\n * sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',\n * miner: '0x0000000000000000000000000000000000000000',\n * stateRoot: '0xe0f04b04861ecfa95e82a9310d6a7ef7aef8d7417f5209c182582bfb98a8e307',\n * transactionsRoot: '0x31ab4ea571a9e10d3a19aaed07d190595b1dfa34e03960c04293fec565dea536',\n * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n * difficulty: 2n,\n * number: 21n,\n * gasLimit: 11738125n,\n * gasUsed: 830006n,\n * timestamp: 1678797237n,\n * extraData: '0xd883010b02846765746888676f312e32302e31856c696e757800000000000000e0a6e93cf40e2e71a72e493272210c3f43738ccc7e7d7b14ffd51833797d896c09117e8dc4fbcbc969bd21b42e5af3e276a911524038c001b2109b63b8e0352601',\n * nonce: 0n\n * }\n * ```\n */\nexport class NewHeadsSubscription extends Web3Subscription<{\n\tdata: BlockHeaderOutput;\n}> {\n\t// eslint-disable-next-line\n\tprotected _buildSubscriptionParams() {\n\t\treturn ['newHeads'];\n\t}\n\n\tprotected formatSubscriptionResult(data: BlockHeaderOutput): BlockHeaderOutput {\n\t\treturn format(blockHeaderSchema, data, super.returnFormat);\n\t}\n}\n\n/**\n * ## subscribe('syncing')\n *\n * Subscribe to syncing events. This will return `true` when the node is syncing and when it’s finished syncing will return `false`, for the `changed` event.\n * @example\n * ```ts\n * (await web3.eth.subscribe('syncing')).on('changed', console.log);\n * > `true` // when syncing\n *\n * (await web3.eth.subscribe('syncing')).on('data', console.log);\n * > {\n * startingBlock: 0,\n * currentBlock: 0,\n * highestBlock: 0,\n * pulledStates: 0,\n * knownStates: 0\n * }\n * ```\n */\nexport class SyncingSubscription extends Web3Subscription<{\n\tdata: SyncOutput;\n\tchanged: boolean;\n}> {\n\t// eslint-disable-next-line\n\tprotected _buildSubscriptionParams() {\n\t\treturn ['syncing'];\n\t}\n\n\tpublic _processSubscriptionResult(\n\t\tdata:\n\t\t\t| {\n\t\t\t\t\tsyncing: boolean;\n\t\t\t\t\tstatus: SyncOutput;\n\t\t\t }\n\t\t\t| boolean,\n\t) {\n\t\tif (typeof data === 'boolean') {\n\t\t\tthis.emit('changed', data);\n\t\t} else {\n\t\t\tconst mappedData: SyncOutput = Object.fromEntries(\n\t\t\t\tObject.entries(data.status).map(([key, value]) => [\n\t\t\t\t\tkey.charAt(0).toLowerCase() + key.substring(1),\n\t\t\t\t\tvalue,\n\t\t\t\t]),\n\t\t\t) as SyncOutput;\n\n\t\t\tthis.emit('changed', data.syncing);\n\t\t\tthis.emit('data', format(syncSchema, mappedData, super.returnFormat));\n\t\t}\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// Disabling because returnTypes must be last param to match 1.x params\n/* eslint-disable default-param-last */\n\nimport {\n\tSupportedProviders,\n\tAddress,\n\tBytes,\n\tFeeData,\n\tFilter,\n\tHexString32Bytes,\n\tHexString8Bytes,\n\tNumbers,\n\tBlockNumberOrTag,\n\tLogsOutput,\n\tTransaction,\n\tTransactionCall,\n\tWeb3EthExecutionAPI,\n\tTransactionWithFromLocalWalletIndex,\n\tTransactionWithToLocalWalletIndex,\n\tTransactionWithFromAndToLocalWalletIndex,\n\tTransactionForAccessList,\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tEip712TypedData,\n\tFMT_BYTES,\n\tFMT_NUMBER,\n} from 'web3-types';\nimport { isSupportedProvider, Web3Context, Web3ContextInitOptions } from 'web3-core';\nimport { TransactionNotFound } from 'web3-errors';\nimport { toChecksumAddress, isNullish, ethUnitMap } from 'web3-utils';\nimport { ethRpcMethods } from 'web3-rpc-methods';\n\nimport * as rpcMethodsWrappers from './rpc_method_wrappers.js';\nimport { SendTransactionOptions, TransactionMiddleware } from './types.js';\nimport {\n\tLogsSubscription,\n\tNewPendingTransactionsSubscription,\n\tNewHeadsSubscription,\n\tSyncingSubscription,\n} from './web3_subscriptions.js';\n\nexport type RegisteredSubscription = {\n\tlogs: typeof LogsSubscription;\n\tnewPendingTransactions: typeof NewPendingTransactionsSubscription;\n\tpendingTransactions: typeof NewPendingTransactionsSubscription;\n\tnewHeads: typeof NewHeadsSubscription;\n\tnewBlockHeaders: typeof NewHeadsSubscription;\n\tsyncing: typeof SyncingSubscription;\n};\n\nexport const registeredSubscriptions = {\n\tlogs: LogsSubscription,\n\tnewPendingTransactions: NewPendingTransactionsSubscription,\n\tnewHeads: NewHeadsSubscription,\n\tsyncing: SyncingSubscription,\n\tpendingTransactions: NewPendingTransactionsSubscription, // the same as newPendingTransactions. just for support API like in version 1.x\n\tnewBlockHeaders: NewHeadsSubscription, // the same as newHeads. just for support API like in version 1.x\n};\n\n/**\n *\n * The Web3Eth allows you to interact with an Ethereum blockchain.\n *\n * For using Web3 Eth functions, first install Web3 package using `npm i web3` or `yarn add web3` based on your package manager usage.\n * After that, Web3 Eth functions will be available as mentioned in following snippet.\n * ```ts\n * import { Web3 } from 'web3';\n * const web3 = new Web3('https://mainnet.infura.io/v3/<YOURPROJID>');\n *\n * const block = await web3.eth.getBlock(0);\n *\n * ```\n *\n * For using individual package install `web3-eth` package using `npm i web3-eth` or `yarn add web3-eth` and only import required functions.\n * This is more efficient approach for building lightweight applications.\n * ```ts\n * import { Web3Eth } from 'web3-eth';\n *\n * const eth = new Web3Eth('https://mainnet.infura.io/v3/<YOURPROJID>');\n * const block = await eth.getBlock(0);\n *\n * ```\n */\nexport class Web3Eth extends Web3Context<Web3EthExecutionAPI, RegisteredSubscription> {\n\tprivate transactionMiddleware?: TransactionMiddleware;\n\n\tpublic constructor(\n\t\tproviderOrContext?: SupportedProviders<any> | Web3ContextInitOptions | string,\n\t) {\n\t\tif (\n\t\t\ttypeof providerOrContext === 'string' ||\n\t\t\tisSupportedProvider(providerOrContext as SupportedProviders<any>)\n\t\t) {\n\t\t\t// @ts-expect-error disable the error: \"A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.\"\n\t\t\tsuper({\n\t\t\t\tprovider: providerOrContext as SupportedProviders<any>,\n\t\t\t\tregisteredSubscriptions,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ((providerOrContext as Web3ContextInitOptions).registeredSubscriptions) {\n\t\t\tsuper(providerOrContext as Web3ContextInitOptions);\n\t\t\treturn;\n\t\t}\n\n\t\tsuper({\n\t\t\t...(providerOrContext as Web3ContextInitOptions),\n\t\t\tregisteredSubscriptions,\n\t\t});\n\t}\n\n\tpublic setTransactionMiddleware(transactionMiddleware: TransactionMiddleware) {\n\t\tthis.transactionMiddleware = transactionMiddleware;\n\t}\n\n\tpublic getTransactionMiddleware() {\n\t\treturn this.transactionMiddleware;\n\t}\n\n\t/**\n\t * @returns Returns the ethereum protocol version of the node.\n\t *\n\t * ```ts\n\t * web3.eth.getProtocolVersion().then(console.log);\n\t * > \"63\"\n\t * ```\n\t */\n\tpublic async getProtocolVersion() {\n\t\treturn ethRpcMethods.getProtocolVersion(this.requestManager);\n\t}\n\n\t// TODO Add returnFormat parameter\n\t/**\n\t * Checks if the node is currently syncing.\n\t *\n\t * @returns Either a {@link SyncingStatusAPI}, or `false`.\n\t *\n\t * ```ts\n\t * web3.eth.isSyncing().then(console.log);\n\t * > {\n\t * startingBlock: 100,\n\t * currentBlock: 312,\n\t * highestBlock: 512,\n\t * knownStates: 234566,\n\t * pulledStates: 123455\n\t * }\n\t * ```\n\t */\n\tpublic async isSyncing() {\n\t\treturn ethRpcMethods.getSyncing(this.requestManager);\n\t}\n\n\t// TODO consider adding returnFormat parameter (to format address as bytes)\n\t/**\n\t * @returns Returns the coinbase address to which mining rewards will go.\n\t *\n\t * ```ts\n\t * web3.eth.getCoinbase().then(console.log);\n\t * > \"0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe\"\n\t * ```\n\t */\n\tpublic async getCoinbase() {\n\t\treturn ethRpcMethods.getCoinbase(this.requestManager);\n\t}\n\n\t/**\n\t * Checks whether the node is mining or not.\n\t *\n\t * @returns `true` if the node is mining, otherwise `false`.\n\t *\n\t * ```ts\n\t * web3.eth.isMining().then(console.log);\n\t * > true\n\t * ```\n\t */\n\tpublic async isMining() {\n\t\treturn ethRpcMethods.getMining(this.requestManager);\n\t}\n\n\t/**\n\t * @deprecated Will be removed in the future, please use {@link Web3Eth.getHashRate} method instead.\n\t *\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The number of hashes per second that the node is mining with.\n\t *\n\t * ```ts\n\t * web3.eth.getHashrate().then(console.log);\n\t * > 493736n\n\t *\n\t * web3.eth.getHashrate({ number: FMT_NUMBER.HEX , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > \"0x788a8\"\n\t * ```\n\t */\n\tpublic async getHashrate<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = (this.defaultReturnFormat ??\n\t\t\tDEFAULT_RETURN_FORMAT) as ReturnFormat,\n\t) {\n\t\treturn this.getHashRate(returnFormat);\n\t}\n\n\t/**\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The number of hashes per second that the node is mining with.\n\t *\n\t * ```ts\n\t * web3.eth.getHashRate().then(console.log);\n\t * > 493736n\n\t *\n\t * web3.eth.getHashRate({ number: FMT_NUMBER.HEX , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > \"0x788a8\"\n\t * ```\n\t */\n\tpublic async getHashRate<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getHashRate(this, returnFormat);\n\t}\n\n\t/**\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The gas price determined by the last few blocks median gas price.\n\t *\n\t * ```ts\n\t * web3.eth.getGasPrice().then(console.log);\n\t * > 20000000000n\n\t *\n\t * web3.eth.getGasPrice({ number: FMT_NUMBER.HEX , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > \"0x4a817c800\"\n\t * ```\n\t */\n\tpublic async getGasPrice<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getGasPrice(this, returnFormat);\n\t}\n\n\t/**\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns the current maxPriorityFeePerGas per gas in wei.\n\t *\n\t * ```ts\n\t * web3.eth.getMaxPriorityFeePerGas().then(console.log);\n\t * > 20000000000n\n\t *\n\t * web3.eth.getMaxPriorityFeePerGas({ number: FMT_NUMBER.HEX , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > \"0x4a817c800\"\n\t * ```\n\t */\n\tpublic async getMaxPriorityFeePerGas<\n\t\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\t>(returnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat) {\n\t\treturn rpcMethodsWrappers.getMaxPriorityFeePerGas(this, returnFormat);\n\t}\n\n\t/**\n\t * Calculates the current Fee Data.\n\t * If the node supports EIP-1559, then the `maxFeePerGas` and `maxPriorityFeePerGas` will be calculated.\n\t * If the node does not support EIP-1559, then the `gasPrice` will be returned and the rest are `null`s.\n\t *\n\t * @param baseFeePerGasFactor The factor to multiply the baseFeePerGas with, if the node supports EIP-1559.\n\t * @param alternativeMaxPriorityFeePerGas The alternative maxPriorityFeePerGas to use, if the node supports EIP-1559, but does not support the method `eth_maxPriorityFeePerGas`.\n\t * @returns The current fee data.\n\t *\n\t * ```ts\n\t * web3.eth.calculateFeeData().then(console.log);\n\t * > {\n\t * gasPrice: 20000000000n,\n\t * maxFeePerGas: 20000000000n,\n\t * maxPriorityFeePerGas: 20000000000n,\n\t * \t baseFeePerGas: 20000000000n\n\t * }\n\t *\n\t * web3.eth.calculateFeeData(ethUnitMap.Gwei, 2n).then(console.log);\n\t * > {\n\t * gasPrice: 20000000000n,\n\t * maxFeePerGas: 40000000000n,\n\t * maxPriorityFeePerGas: 20000000000n,\n\t * \t baseFeePerGas: 20000000000n\n\t * }\n\t * ```\n\t */\n\tpublic async calculateFeeData(\n\t\tbaseFeePerGasFactor = BigInt(2),\n\t\talternativeMaxPriorityFeePerGas = ethUnitMap.Gwei,\n\t): Promise<FeeData> {\n\t\tconst block = await this.getBlock<{ number: FMT_NUMBER.BIGINT; bytes: FMT_BYTES.HEX }>(\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t);\n\n\t\tconst baseFeePerGas: bigint | undefined = block?.baseFeePerGas ?? undefined; // use undefined if it was null\n\n\t\tlet gasPrice: bigint | undefined;\n\t\ttry {\n\t\t\tgasPrice = await this.getGasPrice<{\n\t\t\t\tnumber: FMT_NUMBER.BIGINT;\n\t\t\t\tbytes: FMT_BYTES.HEX;\n\t\t\t}>();\n\t\t} catch (error) {\n\t\t\t// do nothing\n\t\t}\n\n\t\tlet maxPriorityFeePerGas: bigint | undefined;\n\t\ttry {\n\t\t\tmaxPriorityFeePerGas = await this.getMaxPriorityFeePerGas<{\n\t\t\t\tnumber: FMT_NUMBER.BIGINT;\n\t\t\t\tbytes: FMT_BYTES.HEX;\n\t\t\t}>();\n\t\t} catch (error) {\n\t\t\t// do nothing\n\t\t}\n\n\t\tlet maxFeePerGas: bigint | undefined;\n\t\t// if the `block.baseFeePerGas` is available, then EIP-1559 is supported\n\t\t// and we can calculate the `maxFeePerGas` from the `block.baseFeePerGas`\n\t\tif (baseFeePerGas) {\n\t\t\t// tip the miner with alternativeMaxPriorityFeePerGas, if no value available from getMaxPriorityFeePerGas\n\t\t\tmaxPriorityFeePerGas = maxPriorityFeePerGas ?? alternativeMaxPriorityFeePerGas;\n\t\t\t// basically maxFeePerGas = (baseFeePerGas +- 12.5%) + maxPriorityFeePerGas\n\t\t\t// and we multiply the `baseFeePerGas` by `baseFeePerGasFactor`, to allow\n\t\t\t// trying to include the transaction in the next few blocks even if the\n\t\t\t// baseFeePerGas is increasing fast\n\t\t\tmaxFeePerGas = baseFeePerGas * baseFeePerGasFactor + maxPriorityFeePerGas;\n\t\t}\n\n\t\treturn { gasPrice, maxFeePerGas, maxPriorityFeePerGas, baseFeePerGas };\n\t}\n\n\t// an alias for calculateFeeData\n\t// eslint-disable-next-line\n\tpublic getFeeData = this.calculateFeeData;\n\n\t/**\n\t * @returns A list of accounts the node controls (addresses are checksummed).\n\t *\n\t * ```ts\n\t * web3.eth.getAccounts().then(console.log);\n\t * > [\"0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe\", \"0xDCc6960376d6C6dEa93647383FfB245CfCed97Cf\"]\n\t * ```\n\t */\n\tpublic async getAccounts() {\n\t\tconst hexAddresses = (await ethRpcMethods.getAccounts(this.requestManager)) ?? [];\n\t\treturn hexAddresses.map(address => toChecksumAddress(address));\n\t}\n\n\t/**\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The current block number.\n\t *\n\t * ```ts\n\t * web3.eth.getBlockNumber().then(console.log);\n\t * > 2744n\n\t *\n\t * web3.eth.getBlockNumber({ number: FMT_NUMBER.HEX , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > \"0xab8\"\n\t * ```\n\t */\n\tpublic async getBlockNumber<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getBlockNumber(this, returnFormat);\n\t}\n\n\t/**\n\t * Get the balance of an address at a given block.\n\t *\n\t * @param address The address to get the balance of.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) Specifies what block to use as the current state for the balance query.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The current balance for the given address in `wei`.\n\t *\n\t * ```ts\n\t * web3.eth.getBalance(\"0x407d73d8a49eeb85d32cf465507dd71d507100c1\").then(console.log);\n\t * > 1000000000000n\n\t *\n\t * web3.eth.getBalance(\"0x407d73d8a49eeb85d32cf465507dd71d507100c1\").then(console.log);\n\t * > \"0xe8d4a51000\"\n\t * ```\n\t */\n\tpublic async getBalance<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\taddress: Address,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getBalance(this, address, blockNumber, returnFormat);\n\t}\n\n\t/**\n\t * Get the storage at a specific position of an address.\n\t *\n\t * @param address The address to get the storage from.\n\t * @param storageSlot The index position of the storage.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) Specifies what block to use as the current state for the storage query.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The value in storage at the given position.\n\t *\n\t * ```ts\n\t * web3.eth.getStorageAt(\"0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234\", 0).then(console.log);\n\t * > \"0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234\"\n\t *\n\t * web3.eth.getStorageAt(\n\t * \"0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234\",\n\t * 0,\n\t * undefined,\n\t * { number: FMT_NUMBER.HEX , bytes: FMT_BYTES.UINT8ARRAY }\n\t * ).then(console.log);\n\t * > Uint8Array(31) [\n\t * 3, 52, 86, 115, 33, 35, 255, 255,\n\t * 35, 66, 52, 45, 209, 35, 66, 67,\n\t * 67, 36, 35, 66, 52, 253, 35, 79,\n\t * 210, 63, 212, 242, 61, 66, 52\n\t * ]\n\t * ```\n\t */\n\tpublic async getStorageAt<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\taddress: Address,\n\t\tstorageSlot: Numbers,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getStorageAt(\n\t\t\tthis,\n\t\t\taddress,\n\t\t\tstorageSlot,\n\t\t\tblockNumber,\n\t\t\treturnFormat,\n\t\t);\n\t}\n\n\t/**\n\t * Get the code at a specific address.\n\t *\n\t * @param address The address to get the code from.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) Specifies what block to use as the current state for the code query.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The [data](https://ethereum.org/en/developers/docs/transactions/#the-data-field) at the provided `address`.\n\t *\n\t * ```ts\n\t * web3.eth.getCode(\"0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234\").then(console.log);\n\t * > \"0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056\"\n\t *\n\t * web3.eth.getCode(\n\t * \"0x407d73d8a49eeb85d32cf465507dd71d507100c1\",\n\t * undefined,\n\t * { number: FMT_NUMBER.HEX , bytes: FMT_BYTES.UINT8ARRAY }\n\t * ).then(console.log);\n\t * > Uint8Array(50) [\n\t * 96, 1, 96, 0, 128, 53, 129, 26, 129, 129, 129,\n\t * 20, 96, 18, 87, 131, 1, 0, 91, 96, 27, 96,\n\t * 1, 53, 96, 37, 86, 91, 128, 96, 0, 82, 96,\n\t * 32, 96, 0, 242, 91, 96, 0, 96, 7, 130, 2,\n\t * 144, 80, 145, 144, 80, 86\n\t * ]\n\t * ```\n\t */\n\tpublic async getCode<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\taddress: Address,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getCode(this, address, blockNumber, returnFormat);\n\t}\n\n\t/**\n\t * Retrieves a {@link Block} matching the provided block number, block hash or block tag.\n\t *\n\t * @param block The {@link BlockNumberOrTag} (defaults to {@link Web3Eth.defaultBlock}) or block hash of the desired block.\n\t * @param hydrated If specified `true`, the returned block will contain all transactions as objects. If `false` it will only contain transaction hashes.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted (does not format transaction objects or hashes).\n\t * @returns A {@link Block} object matching the provided block number or block hash.\n\t *\n\t * ```ts\n\t * web3.eth.getBlock(0).then(console.log);\n\t * > {\n\t * hash: '0x7dbfdc6a7a67a670cb9b0c3f81ca60c007762f1e4e598cb027a470678ff26d0d',\n\t * parentHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',\n\t * miner: '0x0000000000000000000000000000000000000000',\n\t * stateRoot: '0x5ed9882897d363c4632a6e67fba6203df61bd994813dcf048da59be442a9c6c4',\n\t * transactionsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * receiptsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * difficulty: 1n,\n\t * number: 0n,\n\t * gasLimit: 30000000n,\n\t * gasUsed: 0n,\n\t * timestamp: 1658281638n,\n\t * extraData: '0x',\n\t * mixHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * nonce: 0n,\n\t * totalDifficulty: 1n,\n\t * baseFeePerGas: 1000000000n,\n\t * size: 514n,\n\t * transactions: [],\n\t * uncles: []\n\t * }\n\t *\n\t * web3.eth.getBlock(\n\t * \"0x7dbfdc6a7a67a670cb9b0c3f81ca60c007762f1e4e598cb027a470678ff26d0d\",\n\t * false,\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > {\n\t * hash: '0x7dbfdc6a7a67a670cb9b0c3f81ca60c007762f1e4e598cb027a470678ff26d0d',\n\t * parentHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',\n\t * miner: '0x0000000000000000000000000000000000000000',\n\t * stateRoot: '0x5ed9882897d363c4632a6e67fba6203df61bd994813dcf048da59be442a9c6c4',\n\t * transactionsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * receiptsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * difficulty: 1,\n\t * number: 0,\n\t * gasLimit: 30000000,\n\t * gasUsed: 0,\n\t * timestamp: 1658281638,\n\t * extraData: '0x',\n\t * mixHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * nonce: 0,\n\t * totalDifficulty: 1,\n\t * baseFeePerGas: 1000000000,\n\t * size: 514,\n\t * transactions: [],\n\t * uncles: []\n\t * }\n\t * ```\n\t */\n\tpublic async getBlock<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tblock: HexString32Bytes | BlockNumberOrTag = this.defaultBlock,\n\t\thydrated = false,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getBlock(this, block, hydrated, returnFormat);\n\t}\n\n\t/**\n\t * @param block The {@link BlockNumberOrTag} (defaults to {@link Web3Eth.defaultBlock}) or block hash of the desired block.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The number of transactions in the provided block.\n\t *\n\t * ```ts\n\t * web3.eth.getBlockTransactionCount(\"0x407d73d8a49eeb85d32cf465507dd71d507100c1\").then(console.log);\n\t * > 1n\n\t *\n\t * web3.eth.getBlockTransactionCount(\n\t * \"0x407d73d8a49eeb85d32cf465507dd71d507100c1\",\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > 1\n\t * ```\n\t */\n\tpublic async getBlockTransactionCount<\n\t\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\t>(\n\t\tblock: HexString32Bytes | BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getBlockTransactionCount(this, block, returnFormat);\n\t}\n\n\t/**\n\t * @param block The {@link BlockNumberOrTag} (defaults to {@link Web3Eth.defaultBlock}) or block hash of the desired block.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The number of [uncles](https://ethereum.org/en/glossary/#ommer) in the provided block.\n\t *\n\t * ```ts\n\t * web3.eth.getBlockUncleCount(\"0x407d73d8a49eeb85d32cf465507dd71d507100c1\").then(console.log);\n\t * > 1n\n\t *\n\t * web3.eth.getBlockUncleCount(\n\t * \"0x407d73d8a49eeb85d32cf465507dd71d507100c1\",\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > 1\n\t * ```\n\t */\n\tpublic async getBlockUncleCount<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tblock: HexString32Bytes | BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getBlockUncleCount(this, block, returnFormat);\n\t}\n\n\t/**\n\t *\n\t * @param block The {@link BlockNumberOrTag} (defaults to {@link Web3Eth.defaultBlock}) or block hash of the desired block.\n\t * @param uncleIndex The index position of the uncle.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns A blocks [uncle](https://ethereum.org/en/glossary/#ommer) by a given uncle index position.\n\t *\n\t * ```ts\n\t * web3.eth.getUncle(0, 1).then(console.log);\n\t * > {\n\t * hash: '0x7dbfdc6a7a67a670cb9b0c3f81ca60c007762f1e4e598cb027a470678ff26d0d',\n\t * parentHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',\n\t * miner: '0x0000000000000000000000000000000000000000',\n\t * stateRoot: '0x5ed9882897d363c4632a6e67fba6203df61bd994813dcf048da59be442a9c6c4',\n\t * transactionsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * receiptsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * difficulty: 1n,\n\t * number: 0n,\n\t * gasLimit: 30000000n,\n\t * gasUsed: 0n,\n\t * timestamp: 1658281638n,\n\t * extraData: '0x',\n\t * mixHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * nonce: 0n,\n\t * totalDifficulty: 1n,\n\t * baseFeePerGas: 1000000000n,\n\t * size: 514n,\n\t * transactions: [],\n\t * uncles: []\n\t * }\n\t *\n\t * web3.eth.getUncle(\n\t * \"0x7dbfdc6a7a67a670cb9b0c3f81ca60c007762f1e4e598cb027a470678ff26d0d\",\n\t * 1,\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > {\n\t * hash: '0x7dbfdc6a7a67a670cb9b0c3f81ca60c007762f1e4e598cb027a470678ff26d0d',\n\t * parentHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',\n\t * miner: '0x0000000000000000000000000000000000000000',\n\t * stateRoot: '0x5ed9882897d363c4632a6e67fba6203df61bd994813dcf048da59be442a9c6c4',\n\t * transactionsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * receiptsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * difficulty: 1,\n\t * number: 0,\n\t * gasLimit: 30000000,\n\t * gasUsed: 0,\n\t * timestamp: 1658281638,\n\t * extraData: '0x',\n\t * mixHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * nonce: 0,\n\t * totalDifficulty: 1,\n\t * baseFeePerGas: 1000000000,\n\t * size: 514,\n\t * transactions: [],\n\t * uncles: []\n\t * }\n\t * ```\n\t */\n\tpublic async getUncle<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tblock: HexString32Bytes | BlockNumberOrTag = this.defaultBlock,\n\t\tuncleIndex: Numbers,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getUncle(this, block, uncleIndex, returnFormat);\n\t}\n\n\t/**\n\t * @param transactionHash The hash of the desired transaction.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The desired transaction object.\n\t *\n\t * ```ts\n\t * web3.eth.getTransaction('0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc').then(console.log);\n\t * {\n\t * hash: '0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc',\n\t * type: 0n,\n\t * nonce: 0n,\n\t * blockHash: '0x43202bd16b6bd54bea1b310736bd78bdbe93a64ad940f7586739d9eb25ad8d00',\n\t * blockNumber: 1n,\n\t * transactionIndex: 0n,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1n,\n\t * gas: 90000n,\n\t * gasPrice: 2000000000n,\n\t * input: '0x',\n\t * v: 2709n,\n\t * r: '0x8b336c290f6d7b2af3ccb2c02203a8356cc7d5b150ab19cce549d55636a3a78c',\n\t * s: '0x5a83c6f816befc5cd4b0c997a347224a8aa002e5799c4b082a3ec726d0e9531d'\n\t * }\n\t *\n\t * web3.eth.getTransaction(\n\t * web3.utils.hexToBytes(\"0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400\"),\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * {\n\t * hash: '0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc',\n\t * type: 0,\n\t * nonce: 0,\n\t * blockHash: '0x43202bd16b6bd54bea1b310736bd78bdbe93a64ad940f7586739d9eb25ad8d00',\n\t * blockNumber: 1,\n\t * transactionIndex: 0,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1,\n\t * gas: 90000,\n\t * gasPrice: 2000000000,\n\t * input: '0x',\n\t * v: 2709,\n\t * r: '0x8b336c290f6d7b2af3ccb2c02203a8356cc7d5b150ab19cce549d55636a3a78c',\n\t * s: '0x5a83c6f816befc5cd4b0c997a347224a8aa002e5799c4b082a3ec726d0e9531d'\n\t * }\n\t * ```\n\t */\n\tpublic async getTransaction<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransactionHash: Bytes,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\tconst response = await rpcMethodsWrappers.getTransaction(\n\t\t\tthis,\n\t\t\ttransactionHash,\n\t\t\treturnFormat,\n\t\t);\n\n\t\tif (!response) throw new TransactionNotFound();\n\n\t\treturn response;\n\t}\n\n\t/**\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns A list of pending transactions.\n\t *\n\t * ```ts\n\t * web3.eth.getPendingTransactions().then(console.log);\n\t * > [\n\t * {\n\t * hash: '0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc',\n\t * type: 0n,\n\t * nonce: 0n,\n\t * blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * blockNumber: null,\n\t * transactionIndex: 0n,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1n,\n\t * gas: 90000n,\n\t * gasPrice: 2000000000n,\n\t * input: '0x',\n\t * v: 2709n,\n\t * r: '0x8b336c290f6d7b2af3ccb2c02203a8356cc7d5b150ab19cce549d55636a3a78c',\n\t * s: '0x5a83c6f816befc5cd4b0c997a347224a8aa002e5799c4b082a3ec726d0e9531d'\n\t * },\n\t * {\n\t * hash: '0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f',\n\t * type: 0n,\n\t * nonce: 1n,\n\t * blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * blockNumber: null,\n\t * transactionIndex: 0n,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1n,\n\t * gas: 90000n,\n\t * gasPrice: 2000000000n,\n\t * input: '0x',\n\t * v: 2710n,\n\t * r: '0x55ac19fade21db035a1b7ea0a8d49e265e05dbb926e75f273f836ad67ce5c96a',\n\t * s: '0x6550036a7c3fd426d5c3d35d96a7075cd673957620b7889846a980d2d017ec08'\n\t * }\n\t * ]\n\t *\n\t * * web3.eth.getPendingTransactions({ number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > [\n\t * {\n\t * hash: '0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc',\n\t * type: 0,\n\t * nonce: 0,\n\t * blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * blockNumber: null,\n\t * transactionIndex: 0,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1,\n\t * gas: 90000,\n\t * gasPrice: 2000000000,\n\t * input: '0x',\n\t * v: 2709,\n\t * r: '0x8b336c290f6d7b2af3ccb2c02203a8356cc7d5b150ab19cce549d55636a3a78c',\n\t * s: '0x5a83c6f816befc5cd4b0c997a347224a8aa002e5799c4b082a3ec726d0e9531d'\n\t * },\n\t * {\n\t * hash: '0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f',\n\t * type: 0,\n\t * nonce: 1,\n\t * blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000',\n\t * blockNumber: null,\n\t * transactionIndex: 0,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1,\n\t * gas: 90000,\n\t * gasPrice: 2000000000,\n\t * input: '0x',\n\t * v: 2710,\n\t * r: '0x55ac19fade21db035a1b7ea0a8d49e265e05dbb926e75f273f836ad67ce5c96a',\n\t * s: '0x6550036a7c3fd426d5c3d35d96a7075cd673957620b7889846a980d2d017ec08'\n\t * }\n\t * ]\n\t * ```\n\t */\n\tpublic async getPendingTransactions<\n\t\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\t>(returnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat) {\n\t\treturn rpcMethodsWrappers.getPendingTransactions(this, returnFormat);\n\t}\n\n\t/**\n\t * @param block The {@link BlockNumberOrTag} (defaults to {@link Web3Eth.defaultBlock}) or block hash of the desired block.\n\t * @param transactionIndex The index position of the transaction.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The desired transaction object.\n\t *\n\t * ```ts\n\t * web3.eth.getTransactionFromBlock('0x43202bd16b6bd54bea1b310736bd78bdbe93a64ad940f7586739d9eb25ad8d00', 0).then(console.log);\n\t * {\n\t * hash: '0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc',\n\t * type: 0n,\n\t * nonce: 0n,\n\t * blockHash: '0x43202bd16b6bd54bea1b310736bd78bdbe93a64ad940f7586739d9eb25ad8d00',\n\t * blockNumber: 1n,\n\t * transactionIndex: 0n,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1n,\n\t * gas: 90000n,\n\t * gasPrice: 2000000000n,\n\t * input: '0x',\n\t * v: 2709n,\n\t * r: '0x8b336c290f6d7b2af3ccb2c02203a8356cc7d5b150ab19cce549d55636a3a78c',\n\t * s: '0x5a83c6f816befc5cd4b0c997a347224a8aa002e5799c4b082a3ec726d0e9531d'\n\t * }\n\t *\n\t * web3.eth.getTransactionFromBlock(\n\t * hexToBytes(\"0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400\"),\n\t * 0,\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * {\n\t * hash: '0x73aea70e969941f23f9d24103e91aa1f55c7964eb13daf1c9360c308a72686dc',\n\t * type: 0,\n\t * nonce: 0,\n\t * blockHash: '0x43202bd16b6bd54bea1b310736bd78bdbe93a64ad940f7586739d9eb25ad8d00',\n\t * blockNumber: 1,\n\t * transactionIndex: 0,\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * value: 1,\n\t * gas: 90000,\n\t * gasPrice: 2000000000,\n\t * input: '0x',\n\t * v: 2709,\n\t * r: '0x8b336c290f6d7b2af3ccb2c02203a8356cc7d5b150ab19cce549d55636a3a78c',\n\t * s: '0x5a83c6f816befc5cd4b0c997a347224a8aa002e5799c4b082a3ec726d0e9531d'\n\t * }\n\t * ```\n\t */\n\tpublic async getTransactionFromBlock<\n\t\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\t>(\n\t\tblock: HexString32Bytes | BlockNumberOrTag = this.defaultBlock,\n\t\ttransactionIndex: Numbers,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getTransactionFromBlock(\n\t\t\tthis,\n\t\t\tblock,\n\t\t\ttransactionIndex,\n\t\t\treturnFormat,\n\t\t);\n\t}\n\n\t/**\n\t * @param transactionHash Hash of the transaction to retrieve the receipt for.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The desired {@link TransactionReceipt} object.\n\t *\n\t * ```ts\n\t * web3.eth.getTransactionReceipt(\"0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f\").then(console.log);\n\t * > {\n\t * transactionHash: '0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f',\n\t * transactionIndex: 0n,\n\t * blockNumber: 2n,\n\t * blockHash: '0xeb1565a08b23429552dafa92e32409f42eb43944f7611963c63ce40e7243941a',\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * cumulativeGasUsed: 21000n,\n\t * gasUsed: 21000n,\n\t * logs: [],\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * status: 1n,\n\t * effectiveGasPrice: 2000000000n,\n\t * type: 0n\n\t * }\n\t *\n\t * web3.eth.getTransactionReceipt(\n\t * \"0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f\",\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > {\n\t * transactionHash: '0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f',\n\t * transactionIndex: 0,\n\t * blockNumber: 2,\n\t * blockHash: '0xeb1565a08b23429552dafa92e32409f42eb43944f7611963c63ce40e7243941a',\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * cumulativeGasUsed: 21000,\n\t * gasUsed: 21000,\n\t * logs: [],\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * status: 1,\n\t * effectiveGasPrice: 2000000000,\n\t * type: 0n\n\t * }\n\t * ```\n\t */\n\tpublic async getTransactionReceipt<\n\t\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\t>(\n\t\ttransactionHash: Bytes,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\tconst response = await rpcMethodsWrappers.getTransactionReceipt(\n\t\t\tthis,\n\t\t\ttransactionHash,\n\t\t\treturnFormat,\n\t\t);\n\n\t\tif (!response) throw new TransactionNotFound();\n\n\t\treturn response;\n\t}\n\n\t/**\n\t * @param address The address to get the number of transactions for.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) Specifies what block to use as the current state for the query.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The number of transactions sent from the provided address.\n\t *\n\t * ```ts\n\t * web3.eth.getTransactionCount(\"0x407d73d8a49eeb85d32cf465507dd71d507100c1\").then(console.log);\n\t * > 1n\n\t *\n\t * web3.eth.getTransactionCount(\n\t * \"0x407d73d8a49eeb85d32cf465507dd71d507100c1\",\n\t * undefined,\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > 1\n\t * ```\n\t */\n\tpublic async getTransactionCount<\n\t\tReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT,\n\t>(\n\t\taddress: Address,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getTransactionCount(this, address, blockNumber, returnFormat);\n\t}\n\n\t/**\n\t * @param transaction The {@link Transaction}, {@link TransactionWithFromLocalWalletIndex}, {@link TransactionWithToLocalWalletIndex} or {@link TransactionWithFromAndToLocalWalletIndex} to send. __Note:__ In the `to` and `from` fields when hex strings are used, it is assumed they are addresses, for any other form (number, string number, etc.) it is assumed they are wallet indexes.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @param options A configuration object used to change the behavior of the `sendTransaction` method.\n\t * @returns If `await`ed or `.then`d (i.e. the promise resolves), the transaction hash is returned.\n\t * ```ts\n\t * const transaction = {\n\t * from: '0x6E599DA0bfF7A6598AC1224E4985430Bf16458a4',\n\t * to: '0x6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',\n\t * value: '0x1'\n\t * }\n\t *\n\t * const transactionHash = await web3.eth.sendTransaction(transaction);\n\t * console.log(transactionHash);\n\t * > 0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f\n\t *\n\t * web3.eth.sendTransaction(transaction).then(console.log);\n\t * > 0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f\n\t *\n\t * web3.eth.sendTransaction(transaction).catch(console.log);\n\t * > <Some TransactionError>\n\t *\n\t * // Example using options.ignoreGasPricing = true\n\t * web3.eth.sendTransaction(transaction, undefined, { ignoreGasPricing: true }).then(console.log);\n\t * > 0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f\n\t * ```\n\t *\n\t *\n\t * Otherwise, a {@link Web3PromiEvent} is returned which has several events than can be listened to using the `.on` syntax, such as:\n\t * - `sending`\n\t * ```ts\n\t * web3.eth.sendTransaction(transaction).on('sending', transactionToBeSent => console.log(transactionToBeSent));\n\t * > {\n\t * from: '0x6E599DA0bfF7A6598AC1224E4985430Bf16458a4',\n\t * to: '0x6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',\n\t * value: '0x1',\n\t * gasPrice: '0x77359400',\n\t * maxPriorityFeePerGas: undefined,\n\t * maxFeePerGas: undefined\n\t * }\n\t * ```\n\t * - `sent`\n\t * ```ts\n\t * web3.eth.sendTransaction(transaction).on('sent', sentTransaction => console.log(sentTransaction));\n\t * > {\n\t * from: '0x6E599DA0bfF7A6598AC1224E4985430Bf16458a4',\n\t * to: '0x6f1DF96865D09d21e8f3f9a7fbA3b17A11c7C53C',\n\t * value: '0x1',\n\t * gasPrice: '0x77359400',\n\t * maxPriorityFeePerGas: undefined,\n\t * maxFeePerGas: undefined\n\t * }\n\t * ```\n\t * - `transactionHash`\n\t * ```ts\n\t * web3.eth.sendTransaction(transaction).on('transactionHash', transactionHash => console.log(transactionHash));\n\t * > 0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f\n\t * ```\n\t * - `receipt`\n\t * ```ts\n\t * web3.eth.sendTransaction(transaction).on('receipt', receipt => console.log(receipt));\n\t * > {\n\t * transactionHash: '0xdf7756865c2056ce34c4eabe4eff42ad251a9f920a1c620c00b4ea0988731d3f',\n\t * transactionIndex: 0n,\n\t * blockNumber: 2n,\n\t * blockHash: '0xeb1565a08b23429552dafa92e32409f42eb43944f7611963c63ce40e7243941a',\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * cumulativeGasUsed: 21000n,\n\t * gasUsed: 21000n,\n\t * logs: [],\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * status: 1n,\n\t * effectiveGasPrice: 2000000000n,\n\t * type: 0n\n\t * }\n\t * ```\n\t * - `confirmation`\n\t * ```ts\n\t * web3.eth.sendTransaction(transaction).on('confirmation', confirmation => console.log(confirmation));\n\t * > {\n\t * confirmations: 1n,\n\t * receipt: {\n\t * transactionHash: '0xb4a3a35ae0f3e77ef0ff7be42010d948d011b21a4e341072ee18717b67e99ab8',\n\t * transactionIndex: 0n,\n\t * blockNumber: 5n,\n\t * blockHash: '0xb57fbe6f145cefd86a305a9a024a4351d15d4d39607d7af53d69a319bc3b5548',\n\t * from: '0x6e599da0bff7a6598ac1224e4985430bf16458a4',\n\t * to: '0x6f1df96865d09d21e8f3f9a7fba3b17a11c7c53c',\n\t * cumulativeGasUsed: 21000n,\n\t * gasUsed: 21000n,\n\t * logs: [],\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * status: 1n,\n\t * effectiveGasPrice: 2000000000n,\n\t * type: 0n\n\t * },\n\t * latestBlockHash: '0xb57fbe6f145cefd86a305a9a024a4351d15d4d39607d7af53d69a319bc3b5548'\n\t * }\n\t * ```\n\t * - `error`\n\t * ```ts\n\t * web3.eth.sendTransaction(transaction).on('error', error => console.log);\n\t * > <Some TransactionError>\n\t * ```\n\t */\n\tpublic sendTransaction<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransaction:\n\t\t\t| Transaction\n\t\t\t| TransactionWithFromLocalWalletIndex\n\t\t\t| TransactionWithToLocalWalletIndex\n\t\t\t| TransactionWithFromAndToLocalWalletIndex,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t\toptions?: SendTransactionOptions,\n\t) {\n\t\treturn rpcMethodsWrappers.sendTransaction(\n\t\t\tthis,\n\t\t\ttransaction,\n\t\t\treturnFormat,\n\t\t\toptions,\n\t\t\tthis.transactionMiddleware,\n\t\t);\n\t}\n\n\t/**\n\t * @param transaction Signed transaction in one of the valid {@link Bytes} format.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @param options A configuration object used to change the behavior of the method\n\t * @returns If `await`ed or `.then`d (i.e. the promise resolves), the transaction hash is returned.\n\t * ```ts\n\t * const signedTransaction = \"0xf86580843b9aca0182520894e899f0130fd099c0b896b2ce4e5e15a25b23139a0180820a95a03a42d53ca5b71f845e1cd4c65359b05446a85d16881372d3bfaab8980935cb04a0711497bc8dd3b541152e2fed14fe650a647f1f0edab0d386ad9506f0e642410f\"\n\t *\n\t * const transactionHash = await web3.eth.sendSignedTransaction(signedTransaction);\n\t * console.log(transactionHash);\n\t * > 0xed8c241ea44d57f4605dc22c63500de46254d6c7844fd65fa438b128c80cf700\n\t *\n\t * web3.eth.sendSignedTransaction(signedTransaction).then(console.log);\n\t * > 0xed8c241ea44d57f4605dc22c63500de46254d6c7844fd65fa438b128c80cf700\n\t *\n\t * web3.eth.sendSignedTransaction(signedTransaction).catch(console.log);\n\t * > <Some TransactionError>\n\t * ```\n\t *\n\t *\n\t * Otherwise, a {@link Web3PromiEvent} is returned which has several events than can be listened to using the `.on` syntax, such as:\n\t * - `sending`\n\t * ```ts\n\t * web3.eth.sendSignedTransaction(signedTransaction).on('sending', transactionToBeSent => console.log(transactionToBeSent));\n\t * > \"0xf86580843b9aca0182520894e899f0130fd099c0b896b2ce4e5e15a25b23139a0180820a95a03a42d53ca5b71f845e1cd4c65359b05446a85d16881372d3bfaab8980935cb04a0711497bc8dd3b541152e2fed14fe650a647f1f0edab0d386ad9506f0e642410f\"\n\t * ```\n\t * - `sent`\n\t * ```ts\n\t * web3.eth.sendSignedTransaction(signedTransaction).on('sent', sentTransaction => console.log(sentTransaction));\n\t * > \"0xf86580843b9aca0182520894e899f0130fd099c0b896b2ce4e5e15a25b23139a0180820a95a03a42d53ca5b71f845e1cd4c65359b05446a85d16881372d3bfaab8980935cb04a0711497bc8dd3b541152e2fed14fe650a647f1f0edab0d386ad9506f0e642410f\"\n\t * ```\n\t * - `transactionHash`\n\t * ```ts\n\t * web3.eth.sendSignedTransaction(signedTransaction).on('transactionHash', transactionHash => console.log(transactionHash));\n\t * > 0xed8c241ea44d57f4605dc22c63500de46254d6c7844fd65fa438b128c80cf700\n\t * ```\n\t * - `receipt`\n\t * ```ts\n\t * web3.eth.sendSignedTransaction(signedTransaction).on('receipt', receipt => console.log(receipt));\n\t * > {\n\t * blockHash: '0xff2b1687995d81066361bc6affe4455746120a7d4bb75fc938211a2692a50081',\n\t * blockNumber: 1n,\n\t * cumulativeGasUsed: 21000n,\n\t * effectiveGasPrice: 1000000001n,\n\t * from: '0xe899f0130fd099c0b896b2ce4e5e15a25b23139a',\n\t * gasUsed: 21000n,\n\t * logs: [],\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * status: 1n,\n\t * to: '0xe899f0130fd099c0b896b2ce4e5e15a25b23139a',\n\t * transactionHash: '0xed8c241ea44d57f4605dc22c63500de46254d6c7844fd65fa438b128c80cf700',\n\t * transactionIndex: 0n,\n\t * type: 0n\n\t * }\n\t * ```\n\t * - `confirmation`\n\t * ```ts\n\t * web3.eth.sendSignedTransaction(signedTransaction).on('confirmation', confirmation => console.log(confirmation));\n\t * > {\n\t * confirmations: 1n,\n\t * receipt: {\n\t * blockHash: '0xff2b1687995d81066361bc6affe4455746120a7d4bb75fc938211a2692a50081',\n\t * blockNumber: 1n,\n\t * cumulativeGasUsed: 21000n,\n\t * effectiveGasPrice: 1000000001n,\n\t * from: '0xe899f0130fd099c0b896b2ce4e5e15a25b23139a',\n\t * gasUsed: 21000n,\n\t * logs: [],\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * status: 1n,\n\t * to: '0xe899f0130fd099c0b896b2ce4e5e15a25b23139a',\n\t * transactionHash: '0xed8c241ea44d57f4605dc22c63500de46254d6c7844fd65fa438b128c80cf700',\n\t * transactionIndex: 0n,\n\t * type: 0n\n\t * },\n\t * latestBlockHash: '0xff2b1687995d81066361bc6affe4455746120a7d4bb75fc938211a2692a50081'\n\t * }\n\t * ```\n\t * - `error`\n\t * ```ts\n\t * web3.eth.sendSignedTransaction(signedTransaction).on('error', error => console.log(error));\n\t * > <Some TransactionError>\n\t * ```\n\t */\n\tpublic sendSignedTransaction<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransaction: Bytes,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t\toptions?: SendTransactionOptions,\n\t) {\n\t\treturn rpcMethodsWrappers.sendSignedTransaction(this, transaction, returnFormat, options);\n\t}\n\n\t/**\n\t * @param message Data to sign in one of the valid {@link Bytes} format.\n\t * @param address Address to sign data with, can be an address or the index of a local wallet.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns The signed `message`.\n\t *\n\t * ```ts\n\t * // Using an unlocked account managed by connected RPC client\n\t * web3.eth.sign(\"0x48656c6c6f20776f726c64\", \"0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe\").then(console.log);\n\t * > \"0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400\"\n\t *\n\t * // Using an unlocked account managed by connected RPC client\n\t * web3.eth.sign(\"0x48656c6c6f20776f726c64\", \"0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe\", { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.UINT8ARRAY }).then(console.log);\n\t * > Uint8Array(65) [\n\t * 48, 117, 94, 214, 83, 150, 250, 207, 134, 197, 62,\n\t * 98, 23, 197, 43, 77, 174, 190, 114, 170, 73, 65,\n\t * 216, 150, 53, 64, 157, 228, 201, 199, 249, 70, 109,\n\t * 78, 154, 174, 199, 151, 127, 5, 233, 35, 136, 155,\n\t * 51, 192, 208, 221, 39, 215, 34, 107, 110, 111, 86,\n\t * 206, 115, 116, 101, 197, 207, 208, 75, 228, 0\n\t * ]\n\t * ```\n\t *\n\t * // Using an indexed account managed by local Web3 wallet\n\t * web3.eth.sign(\"0x48656c6c6f20776f726c64\", 0).then(console.log);\n\t * > \"0x30755ed65396facf86c53e6217c52b4daebe72aa4941d89635409de4c9c7f9466d4e9aaec7977f05e923889b33c0d0dd27d7226b6e6f56ce737465c5cfd04be400\"\n\t */\n\tpublic async sign<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tmessage: Bytes,\n\t\taddressOrIndex: Address | number,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.sign(this, message, addressOrIndex, returnFormat);\n\t}\n\n\t/**\n\t * @param transaction The transaction object to sign.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) Specifies how the return data should be formatted.\n\t * @returns {@link SignedTransactionInfoAPI}, an object containing the [RLP](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/#top) encoded signed transaction (accessed via the `raw` property) and the signed transaction object (accessed via the `tx` property).\n\t *\n\t * ```ts\n\t * const transaction = {\n\t * from: '0xe899f0130FD099c0b896B2cE4E5E15A25b23139a',\n\t * to: '0xe899f0130FD099c0b896B2cE4E5E15A25b23139a',\n\t * value: '0x1',\n\t * gas: '21000',\n\t * gasPrice: await web3Eth.getGasPrice(),\n\t * nonce: '0x1',\n\t * type: '0x0'\n\t * }\n\t *\n\t * web3.eth.signTransaction(transaction).then(console.log);\n\t * > {\n\t * raw: '0xf86501843b9aca0182520894e899f0130fd099c0b896b2ce4e5e15a25b23139a0180820a96a0adb3468dbb4dce89fe1785ea9182e85fb56b399b378f82b93af7a8a12a4f9679a027d37d736e9bcf00121f78b2d10e4404fa5c45856d62b746574345f5cd278097',\n\t * tx: {\n\t * type: 0n,\n\t * nonce: 1n,\n\t * gasPrice: 1000000001n,\n\t * gas: 21000n,\n\t * value: 1n,\n\t * v: 2710n,\n\t * r: '0xadb3468dbb4dce89fe1785ea9182e85fb56b399b378f82b93af7a8a12a4f9679',\n\t * s: '0x27d37d736e9bcf00121f78b2d10e4404fa5c45856d62b746574345f5cd278097',\n\t * to: '0xe899f0130fd099c0b896b2ce4e5e15a25b23139a',\n\t * data: '0x'\n\t * }\n\t * }\n\t *\n\t * web3.eth.signTransaction(transaction, { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > {\n\t * raw: '0xf86501843b9aca0182520894e899f0130fd099c0b896b2ce4e5e15a25b23139a0180820a96a0adb3468dbb4dce89fe1785ea9182e85fb56b399b378f82b93af7a8a12a4f9679a027d37d736e9bcf00121f78b2d10e4404fa5c45856d62b746574345f5cd278097',\n\t * tx: {\n\t * type: 0,\n\t * nonce: 1,\n\t * gasPrice: 1000000001,\n\t * gas: 21000,\n\t * value: 1,\n\t * v: 2710,\n\t * r: '0xadb3468dbb4dce89fe1785ea9182e85fb56b399b378f82b93af7a8a12a4f9679',\n\t * s: '0x27d37d736e9bcf00121f78b2d10e4404fa5c45856d62b746574345f5cd278097',\n\t * to: '0xe899f0130fd099c0b896b2ce4e5e15a25b23139a',\n\t * data: '0x'\n\t * }\n\t * }\n\t * ```\n\t */\n\tpublic async signTransaction<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransaction: Transaction,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.signTransaction(this, transaction, returnFormat);\n\t}\n\n\t// TODO Decide what to do with transaction.to\n\t// https://github.com/ChainSafe/web3.js/pull/4525#issuecomment-982330076\n\t/**\n\t * Executes a message call within the EVM without creating a transaction.\n\t * It does not publish anything to the blockchain and does not consume any gas.\n\t *\n\t * @param transaction - A transaction object where all properties are optional except `to`, however it's recommended to include the `from` property or it may default to `0x0000000000000000000000000000000000000000` depending on your node or provider.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) - Specifies what block to use as the current state of the blockchain while processing the transaction.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t * @returns The returned data of the call, e.g. a smart contract function's return value.\n\t */\n\tpublic async call<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransaction: TransactionCall,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.call(this, transaction, blockNumber, returnFormat);\n\t}\n\n\t/**\n\t * Simulates the transaction within the EVM to estimate the amount of gas to be used by the transaction.\n\t * The transaction will not be added to the blockchain, and actual gas usage can vary when interacting\n\t * with a contract as a result of updating the contract's state.\n\t *\n\t * @param transaction The {@link Transaction} object to estimate the gas for.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) - Specifies what block to use as the current state of the blockchain while processing the gas estimation.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t * @returns The used gas for the simulated transaction execution.\n\t *\n\t * ```ts\n\t * const transaction = {\n\t * from: '0xe899f0130FD099c0b896B2cE4E5E15A25b23139a',\n\t * to: '0xe899f0130FD099c0b896B2cE4E5E15A25b23139a',\n\t * value: '0x1',\n\t * nonce: '0x1',\n\t * type: '0x0'\n\t * }\n\t *\n\t * web3.eth.estimateGas(transaction).then(console.log);\n\t * > 21000n\n\t *\n\t * web3.eth.estimateGas(transaction, { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > 21000\n\t * ```\n\t */\n\tpublic async estimateGas<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransaction: Transaction,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.estimateGas(this, transaction, blockNumber, returnFormat);\n\t}\n\n\t/**\n\t * Gets past logs, matching the provided `filter`.\n\t *\n\t * @param filter A {@link Filter} object containing the properties for the desired logs.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t * @returns {@link FilterResultsAPI}, an array of {@link Log} objects.\n\t *\n\t * ```ts\n\t * web3.eth.getPastLogs({\n\t * address: \"0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe\",\n\t * topics: [\"0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234\"]\n\t * }).then(console.log);\n\t * > [{\n\t * data: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n\t * topics: ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385']\n\t * logIndex: 0n,\n\t * transactionIndex: 0n,\n\t * transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n\t * blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',\n\t * blockNumber: 1234n,\n\t * address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'\n\t * },\n\t * {...}]\n\t *\n\t * web3.eth.getPastLogs(\n\t * {\n\t * address: \"0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe\",\n\t * topics: [\"0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234\"]\n\t * },\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > [{\n\t * data: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n\t * topics: ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385']\n\t * logIndex: 0,\n\t * transactionIndex: 0,\n\t * transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n\t * blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',\n\t * blockNumber: 1234,\n\t * address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'\n\t * },\n\t * {...}]\n\t * ```\n\t */\n\tpublic async getPastLogs<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tfilter: Filter,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getLogs(this, filter, returnFormat);\n\t}\n\n\t/**\n\t * Gets work for miners to mine on. Returns the hash of the current block, the seedHash, and the boundary condition to be met ('target').\n\t *\n\t * @returns The mining work as an array of strings with the following structure:\n\t *\n\t * String 32 Bytes - at index 0: current block header pow-hash\n\t * String 32 Bytes - at index 1: the seed hash used for the DAG.\n\t * String 32 Bytes - at index 2: the boundary condition ('target'), 2^256 / difficulty.\n\t *\n\t * ```ts\n\t * web3.eth.getWork().then(console.log);\n\t * > [\n\t * \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n\t * \"0x5EED00000000000000000000000000005EED0000000000000000000000000000\",\n\t * \"0xd1ff1c01710000000000000000000000d1ff1c01710000000000000000000000\"\n\t * ]\n\t * ```\n\t */\n\tpublic async getWork() {\n\t\treturn ethRpcMethods.getWork(this.requestManager);\n\t}\n\n\t/**\n\t * Used for submitting a proof-of-work solution.\n\t *\n\t * @param nonce The nonce found (8 bytes).\n\t * @param hash The header’s pow-hash (32 bytes).\n\t * @param digest The mix digest (32 bytes).\n\t * @returns Returns `true` if the provided solution is valid, otherwise `false`.\n\t *\n\t * ```ts\n\t * web3.eth.submitWork([\n\t * \"0x0000000000000001\",\n\t * \"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef\",\n\t * \"0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000\"\n\t * ]).then(console.log);\n\t * > true\n\t * ```\n\t */\n\tpublic async submitWork(\n\t\tnonce: HexString8Bytes,\n\t\thash: HexString32Bytes,\n\t\tdigest: HexString32Bytes,\n\t) {\n\t\treturn ethRpcMethods.submitWork(this.requestManager, nonce, hash, digest);\n\t}\n\n\t// TODO - Format addresses\n\t/**\n\t * This method will request/enable the accounts from the current environment and for supporting [EIP 1102](https://eips.ethereum.org/EIPS/eip-1102)\n\t * This method will only work if you’re using the injected provider from a application like Metamask, Status or TrustWallet.\n\t * It doesn’t work if you’re connected to a node with a default Web3.js provider (WebsocketProvider, HttpProvider and IpcProvider).\n\t * For more information about the behavior of this method please read [EIP-1102](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1102.md): Opt-in account exposure.\n\t *\n\t * @returns An array of enabled accounts.\n\t *\n\t * ```ts\n\t * web3.eth.requestAccounts().then(console.log);\n\t * > ['0aae0B295369a9FD31d5F28D9Ec85E40f4cb692BAf', '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe']\n\t * ```\n\t */\n\tpublic async requestAccounts() {\n\t\treturn ethRpcMethods.requestAccounts(this.requestManager);\n\t}\n\n\t/**\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t * @returns The chain ID of the current connected node as described in the [EIP-695](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-695.md).\n\t *\n\t * ```ts\n\t * web3.eth.getChainId().then(console.log);\n\t * > 61n\n\t *\n\t * web3.eth.getChainId({ number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > 61\n\t * ```\n\t */\n\tpublic async getChainId<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getChainId(this, returnFormat);\n\t}\n\n\t/**\n\t * @returns The current client version.\n\t *\n\t * ```ts\n\t * web3.eth.getNodeInfo().then(console.log);\n\t * > \"Mist/v0.9.3/darwin/go1.4.1\"\n\t * ```\n\t */\n\tpublic async getNodeInfo() {\n\t\treturn ethRpcMethods.getNodeInfo(this.requestManager);\n\t}\n\n\t/**\n\t * @param address The Address of the account or contract.\n\t * @param storageKeys Array of storage-keys which should be proofed and included. See {@link web3.getStorageAt}.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) - Specifies what block to use as the current state of the blockchain while processing the gas estimation.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t * @returns The account and storage-values of the specified account including the Merkle-proof as described in [EIP-1186](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1186.md).\n\t *\n\t * ```ts\n\t * web3.eth.getProof(\n\t * \"0x1234567890123456789012345678901234567890\",\n\t * [\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"0x0000000000000000000000000000000000000000000000000000000000000001\"],\n\t * \"latest\"\n\t * ).then(console.log);\n\t * > {\n\t * \"address\": \"0x1234567890123456789012345678901234567890\",\n\t * \"accountProof\": [\n\t * \"0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80\",\n\t * \"0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80\",\n\t * \"0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080\",\n\t * \"0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080\"\n\t * ],\n\t * \"balance\": 0n,\n\t * \"codeHash\": \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\",\n\t * \"nonce\": 0n,\n\t * \"storageHash\": \"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\",\n\t * \"storageProof\": [\n\t * {\n\t * \"key\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n\t * \"value\": 0n,\n\t * \"proof\": []\n\t * },\n\t * {\n\t * \"key\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n\t * \"value\": 0n,\n\t * \"proof\": []\n\t * }\n\t * ]\n\t * }\n\t *\n\t * web3.eth.getProof(\n\t * \"0x1234567890123456789012345678901234567890\",\n\t * [\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"0x0000000000000000000000000000000000000000000000000000000000000001\"],\n\t * undefined,\n\t * { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }\n\t * ).then(console.log);\n\t * > {\n\t * \"address\": \"0x1234567890123456789012345678901234567890\",\n\t * \"accountProof\": [\n\t * \"0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80\",\n\t * \"0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80\",\n\t * \"0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080\",\n\t * \"0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080\"\n\t * ],\n\t * \"balance\": 0,\n\t * \"codeHash\": \"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470\",\n\t * \"nonce\": 0,\n\t * \"storageHash\": \"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421\",\n\t * \"storageProof\": [\n\t * {\n\t * \"key\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n\t * \"value\": 0,\n\t * \"proof\": []\n\t * },\n\t * {\n\t * \"key\": \"0x0000000000000000000000000000000000000000000000000000000000000001\",\n\t * \"value\": 0,\n\t * \"proof\": []\n\t * }\n\t * ]\n\t * }\n\t * ```\n\t */\n\tpublic async getProof<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\taddress: Address,\n\t\tstorageKeys: Bytes[],\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getProof(this, address, storageKeys, blockNumber, returnFormat);\n\t}\n\n\t// TODO Throwing an error with Geth, but not Infura\n\t// TODO gasUsedRatio and reward not formatting\n\t/**\n\t * @param blockCount Number of blocks in the requested range. Between `1` and `1024` blocks can be requested in a single query. Less than requested may be returned if not all blocks are available.\n\t * @param newestBlock Highest number block of the requested range.\n\t * @param rewardPercentiles A monotonically increasing list of percentile values to sample from each block’s effective priority fees per gas in ascending order, weighted by gas used. Example: `['0', '25', '50', '75', '100']` or `['0', '0.5', '1', '1.5', '3', '80']`\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the call should be formatted.\n\t * @returns `baseFeePerGas` and transaction effective `priorityFeePerGas` history for the requested block range if available.\n\t * The range between `headBlock - 4` and `headBlock` is guaranteed to be available while retrieving data from the `pending` block and older history are optional to support.\n\t * For pre-EIP-1559 blocks the `gasPrice`s are returned as `rewards` and zeroes are returned for the `baseFeePerGas`.\n\t *\n\t * ```ts\n\t * web3.eth.getFeeHistory(4, 'pending', [0, 25, 75, 100]).then(console.log);\n\t * > {\n\t * baseFeePerGas: [\n\t * 22983878621n,\n\t * 21417903463n,\n\t * 19989260230n,\n\t * 17770954829n,\n\t * 18850641304n\n\t * ],\n\t * gasUsedRatio: [\n\t * 0.22746546666666667,\n\t * 0.2331871,\n\t * 0.05610054885262125,\n\t * 0.7430227268212117\n\t * ],\n\t * oldestBlock: 15216343n,\n\t * reward: [\n\t * [ '0x3b9aca00', '0x53724e00', '0x77359400', '0x1d92c03423' ],\n\t * [ '0x3b9aca00', '0x3b9aca00', '0x3b9aca00', '0xee6b2800' ],\n\t * [ '0x3b9aca00', '0x4f86a721', '0x77d9743a', '0x9502f900' ],\n\t * [ '0xcc8ff9e', '0x53724e00', '0x77359400', '0x1ec9771bb3' ]\n\t * ]\n\t * }\n\t *\n\t * web3.eth.getFeeHistory(4, BlockTags.LATEST, [0, 25, 75, 100], { number: FMT_NUMBER.NUMBER , bytes: FMT_BYTES.HEX }).then(console.log);\n\t * > {\n\t * baseFeePerGas: [\n\t * 22983878621,\n\t * 21417903463,\n\t * 19989260230,\n\t * 17770954829,\n\t * 18850641304\n\t * ],\n\t * gasUsedRatio: [\n\t * 0.22746546666666667,\n\t * 0.2331871,\n\t * 0.05610054885262125,\n\t * 0.7430227268212117\n\t * ],\n\t * oldestBlock: 15216343,\n\t * reward: [\n\t * [ '0x3b9aca00', '0x53724e00', '0x77359400', '0x1d92c03423' ],\n\t * [ '0x3b9aca00', '0x3b9aca00', '0x3b9aca00', '0xee6b2800' ],\n\t * [ '0x3b9aca00', '0x4f86a721', '0x77d9743a', '0x9502f900' ],\n\t * [ '0xcc8ff9e', '0x53724e00', '0x77359400', '0x1ec9771bb3' ]\n\t * ]\n\t * }\n\t * ```\n\t */\n\tpublic async getFeeHistory<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tblockCount: Numbers,\n\t\tnewestBlock: BlockNumberOrTag = this.defaultBlock,\n\t\trewardPercentiles: Numbers[],\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.getFeeHistory(\n\t\t\tthis,\n\t\t\tblockCount,\n\t\t\tnewestBlock,\n\t\t\trewardPercentiles,\n\t\t\treturnFormat,\n\t\t);\n\t}\n\n\t/**\n\t * This method generates an access list for a transaction.\n\t *\n\t * @param transaction - A transaction object where all properties are optional except `from`, however it's recommended to include the `to` property.\n\t * @param blockNumber ({@link BlockNumberOrTag} defaults to {@link Web3Eth.defaultBlock}) - Specifies what block to use as the current state of the blockchain while processing the transaction.\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the return data from the createAccessList should be formatted.\n\t * @returns The returned data of the createAccessList, e.g. The generated access list for transaction.\n\t * @example\n\t * ```ts\n\t * web3.eth.createAccessList({\n\t * from: '0xDe95305a63302C3aa4d3A9B42654659AeA72b694',\n\t * data: '0x9a67c8b100000000000000000000000000000000000000000000000000000000000004d0',\n\t * gasPrice: '0x3b9aca00',\n\t * gas: '0x3d0900',\n\t * to: '0x940b25304947ae863568B3804434EC77E2160b87'\n\t * })\n\t * .then(console.log);\n\t *\n\t * > {\n\t * \"accessList\": [\n\t * {\n\t * \"address\": \"0x15859bdf5aff2080a9968f6a410361e9598df62f\",\n\t * \"storageKeys\": [\n\t * \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n\t * ]\n\t * }\n\t * ],\n\t * \"gasUsed\": \"0x7671\"\n\t * }\n\t * ```\n\t */\n\tpublic async createAccessList<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\ttransaction: TransactionForAccessList,\n\t\tblockNumber: BlockNumberOrTag = this.defaultBlock,\n\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.createAccessList(this, transaction, blockNumber, returnFormat);\n\t}\n\n\t/**\n\t * This method sends EIP-712 typed data to the RPC provider to be signed.\n\t *\n\t * @param address The address that corresponds with the private key used to sign the typed data.\n\t * @param typedData The EIP-712 typed data object.\n\t * @param useLegacy A boolean flag determining whether the RPC call uses the legacy method `eth_signTypedData` or the newer method `eth_signTypedData_v4`\n\t * @param returnFormat ({@link DataFormat} defaults to {@link DEFAULT_RETURN_FORMAT}) - Specifies how the signed typed data should be formatted.\n\t * @returns The signed typed data.\n\t */\n\tpublic async signTypedData<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\taddress: Address,\n\t\ttypedData: Eip712TypedData,\n\t\tuseLegacy = false,\n\t\treturnFormat: ReturnFormat = (this.defaultReturnFormat ??\n\t\t\tDEFAULT_RETURN_FORMAT) as ReturnFormat,\n\t) {\n\t\treturn rpcMethodsWrappers.signTypedData(this, address, typedData, useLegacy, returnFormat);\n\t}\n\n\t/**\n\t * Lets you subscribe to specific events in the blockchain.\n\t *\n\t * @param name - The subscription you want to subscribe to.\n\t * @param args - Optional additional parameters, depending on the subscription type.\n\t * @returns A subscription object of type {@link RegisteredSubscription}. The object contains:\n\t * - subscription.id: The subscription id, used to identify and unsubscribing the subscription.\n\t * - subscription.subscribe(): Can be used to re-subscribe with the same parameters.\n\t * - subscription.unsubscribe(): Unsubscribes the subscription and returns TRUE in the callback if successful.\n\t * - subscription.args: The subscription arguments, used when re-subscribing.\n\t *\n\t *\n\t * You can use the subscription object to listen on:\n\t *\n\t * - on(\"data\") - Fires on each incoming log with the log object as argument.\n\t * - on(\"changed\") - Fires on each log which was removed from the blockchain. The log will have the additional property \"removed: true\".\n\t * - on(\"error\") - Fires when an error in the subscription occurs.\n\t * - on(\"connected\") - Fires once after the subscription successfully connected. Returns the subscription id.\n\t *\n\t * @example **Subscribe to Smart Contract events**\n\t * ```ts\n\t * // Subscribe to `logs`\n\t * const logSubscription = web3.eth.subscribe('logs', {\n\t * address: '0x1234567890123456789012345678901234567890',\n\t * topics: ['0x033456732123ffff2342342dd12342434324234234fd234fd23fd4f23d4234']\n\t * });\n\t * logSubscription.on('data', (data: any) => console.log(data));\n\t * logSubscription.on('error', (error: any) => console.log(error));\n\t *\n\t * ```\n\t *\n\t * @example **Subscribe to new block headers**\n\t * ```ts\n\t * // Subscribe to `newBlockHeaders`\n\t * const newBlocksSubscription = await web3.eth.subscribe('newBlockHeaders');\n\t *\n\t * newBlocksSubscription.on('data', async blockhead => {\n\t * \tconsole.log('New block header: ', blockhead);\n\t *\n\t * \t// You do not need the next line, if you like to keep notified for every new block\n\t * \tawait newBlocksSubscription.unsubscribe();\n\t * \tconsole.log('Unsubscribed from new block headers.');\n\t * });\n\t * newBlocksSubscription.on('error', error =>\n\t * \tconsole.log('Error when subscribing to New block header: ', error),\n\t * );\n\t * ```\n\t *\n\t * \t### subscribe('pendingTransactions')\n\t *\n\t * Subscribes to incoming pending transactions.\n\t * You can subscribe to pending transactions by calling web3.eth.subscribe('pendingTransactions').\n\t *\n\t * ```ts\n\t * (await web3.eth.subscribe('pendingTransactions')).on('data', console.log);\n\t * ```\n\t *\n\t * ### subscribe('newHeads')\n\t * ( same as subscribe('newBlockHeaders'))\n\t * Subscribes to incoming block headers. This can be used as timer to check for changes on the blockchain.\n\t *\n\t * The structure of a returned block header is {@link BlockHeaderOutput}:\n\t *\n\t * ```ts\n\t * (await web3.eth.subscribe('newHeads')).on( // 'newBlockHeaders' would work as well\n\t * 'data',\n\t * console.log\n\t * );\n\t * >{\n\t * parentHash: '0x9e746a1d906b299def98c75b06f714d62dacadd567c7515d76eeaa8c8074c738',\n\t * sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',\n\t * miner: '0x0000000000000000000000000000000000000000',\n\t * stateRoot: '0xe0f04b04861ecfa95e82a9310d6a7ef7aef8d7417f5209c182582bfb98a8e307',\n\t * transactionsRoot: '0x31ab4ea571a9e10d3a19aaed07d190595b1dfa34e03960c04293fec565dea536',\n\t * logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',\n\t * difficulty: 2n,\n\t * number: 21n,\n\t * gasLimit: 11738125n,\n\t * gasUsed: 830006n,\n\t * timestamp: 1678797237n,\n\t * extraData: '0xd883010b02846765746888676f312e32302e31856c696e757800000000000000e0a6e93cf40e2e71a72e493272210c3f43738ccc7e7d7b14ffd51833797d896c09117e8dc4fbcbc969bd21b42e5af3e276a911524038c001b2109b63b8e0352601',\n\t * nonce: 0n\n\t * }\n\t * ```\n\t *\n\t * ### subscribe('syncing')\n\t * Subscribe to syncing events. This will return `true` when the node is syncing and when it’s finished syncing will return `false`, for the `changed` event.\n\t *\n\t * ```ts\n\t * (await web3.eth.subscribe('syncing')).on('changed', console.log);\n\t * > `true` // when syncing\n\t *\n\t * (await web3.eth.subscribe('syncing')).on('data', console.log);\n\t * > {\n\t * startingBlock: 0,\n\t * currentBlock: 0,\n\t * highestBlock: 0,\n\t * pulledStates: 0,\n\t * knownStates: 0\n\t * }\n\t * ```\n\t *\n\t * ### subscribe('logs', options)\n\t * Subscribes to incoming logs, filtered by the given options. If a valid numerical fromBlock options property is set, web3.js will retrieve logs beginning from this point, backfilling the response as necessary.\n\t *\n\t * options: You can subscribe to logs matching a given filter object, which can take the following parameters:\n\t * - `fromBlock`: (optional, default: 'latest') Integer block number, or `'latest'` for the last mined block or `'pending'`, `'earliest'` for not yet mined transactions.\n\t * - `address`: (optional) Contract address or a list of addresses from which logs should originate.\n\t * - `topics`: (optional) Array of 32 Bytes DATA topics. Topics are order-dependent. Each topic can also be an array of DATA with `or` options.\n\t *\n\t * ```ts\n\t * (await web3.eth.subscribe('logs', {\n\t * address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n\t * })).on('data', console.log);\n\t *\n\t * > {\n\t * removed: false,\n\t * logIndex: 119n,\n\t * transactionIndex: 58n,\n\t * transactionHash: '0x61533efa77937360215069d5d6cb0be09a22af9721e6dc3df59d957833ed8870',\n\t * blockHash: '0xe32bb97084479d32247f66f8b46d00af2fbc3c2db2bc6e5843fe2e4d1ca9b099',\n\t * blockNumber: 18771966n,\n\t * address: '0xdac17f958d2ee523a2206206994597c13d831ec7',\n\t * data: '0x00000000000000000000000000000000000000000000000000000000d88b2e40',\n\t * topics: [\n\t * '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',\n\t * '0x0000000000000000000000002fb2457f6ec1865dc0d4e7300c696b69c2a1b989',\n\t * '0x00000000000000000000000027fd43babfbe83a81d14665b1a6fb8030a60c9b4'\n\t * ]\n\t * }\n\t *```\n\t */\n\n\tpublic async subscribe<\n\t\tT extends keyof RegisteredSubscription,\n\t\tReturnType extends DataFormat = DataFormat,\n\t>(\n\t\tname: T,\n\t\targs?: ConstructorParameters<RegisteredSubscription[T]>[0],\n\t\treturnFormat: ReturnType = (this.defaultReturnFormat ??\n\t\t\tDEFAULT_RETURN_FORMAT) as ReturnType,\n\t): Promise<InstanceType<RegisteredSubscription[T]>> {\n\t\tconst subscription = await this.subscriptionManager?.subscribe(name, args, returnFormat);\n\t\tif (\n\t\t\tsubscription instanceof LogsSubscription &&\n\t\t\tname === 'logs' &&\n\t\t\ttypeof args === 'object' &&\n\t\t\t!isNullish(args.fromBlock) &&\n\t\t\tNumber.isFinite(Number(args.fromBlock))\n\t\t) {\n\t\t\tsetImmediate(() => {\n\t\t\t\tthis.getPastLogs(args)\n\t\t\t\t\t.then(logs => {\n\t\t\t\t\t\tfor (const log of logs) {\n\t\t\t\t\t\t\tsubscription._processSubscriptionResult(log as LogsOutput);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(e => {\n\t\t\t\t\t\tsubscription._processSubscriptionError(e as Error);\n\t\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\treturn subscription;\n\t}\n\n\tprivate static shouldClearSubscription({ sub }: { sub: unknown }): boolean {\n\t\treturn !(sub instanceof SyncingSubscription);\n\t}\n\n\t/**\n\t * Resets subscriptions.\n\t *\n\t * @param notClearSyncing If `true` it keeps the `syncing` subscription.\n\t * @returns A promise to an array of subscription ids that were cleared.\n\t *\n\t * ```ts\n\t * web3.eth.clearSubscriptions().then(console.log);\n\t * > [...] An array of subscription ids that were cleared\n\t * ```\n\t */\n\tpublic clearSubscriptions(notClearSyncing = false): Promise<string[]> | undefined {\n\t\treturn this.subscriptionManager?.unsubscribe(\n\t\t\t// eslint-disable-next-line\n\t\t\tnotClearSyncing ? Web3Eth.shouldClearSubscription : undefined,\n\t\t);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tAccessList,\n\tAccessListEntry,\n\tBaseTransactionAPI,\n\tTransaction1559UnsignedAPI,\n\tTransaction2930UnsignedAPI,\n\tTransactionCall,\n\tTransactionLegacyUnsignedAPI,\n\tTransaction,\n\tTransactionWithSenderAPI,\n\tETH_DATA_FORMAT,\n} from 'web3-types';\nimport {\n\tisAddress,\n\tisHexStrict,\n\tisHexString32Bytes,\n\tisNullish,\n\tisUInt,\n} from 'web3-validator';\nimport {\n\tChainMismatchError,\n\tHardforkMismatchError,\n\tChainIdMismatchError,\n\tCommonOrChainAndHardforkError,\n\tEip1559GasPriceError,\n\tInvalidGasOrGasPrice,\n\tInvalidMaxPriorityFeePerGasOrMaxFeePerGas,\n\tInvalidNonceOrChainIdError,\n\tInvalidTransactionCall,\n\tInvalidTransactionObjectError,\n\tInvalidTransactionWithSender,\n\tMissingChainOrHardforkError,\n\tMissingCustomChainError,\n\tMissingCustomChainIdError,\n\tMissingGasError,\n\tTransactionGasMismatchError,\n\tUnsupportedFeeMarketError,\n} from 'web3-errors';\nimport { formatTransaction } from './utils/format_transaction.js';\nimport { CustomTransactionSchema, InternalTransaction } from './types.js';\n\nexport function isBaseTransaction(value: BaseTransactionAPI): boolean {\n\tif (!isNullish(value.to) && !isAddress(value.to)) return false;\n\tif (!isHexStrict(value.type) && !isNullish(value.type) && value.type.length !== 2) return false;\n\tif (!isHexStrict(value.nonce)) return false;\n\tif (!isHexStrict(value.gas)) return false;\n\tif (!isHexStrict(value.value)) return false;\n\tif (!isHexStrict(value.input)) return false;\n\tif (value.chainId && !isHexStrict(value.chainId)) return false;\n\n\treturn true;\n}\n\nexport function isAccessListEntry(value: AccessListEntry): boolean {\n\tif (!isNullish(value.address) && !isAddress(value.address)) return false;\n\tif (\n\t\t!isNullish(value.storageKeys) &&\n\t\t!value.storageKeys.every(storageKey => isHexString32Bytes(storageKey))\n\t)\n\t\treturn false;\n\n\treturn true;\n}\n\nexport function isAccessList(value: AccessList): boolean {\n\tif (\n\t\t!Array.isArray(value) ||\n\t\t!value.every(accessListEntry => isAccessListEntry(accessListEntry))\n\t)\n\t\treturn false;\n\n\treturn true;\n}\n\nexport function isTransaction1559Unsigned(value: Transaction1559UnsignedAPI): boolean {\n\tif (!isBaseTransaction(value)) return false;\n\tif (!isHexStrict(value.maxFeePerGas)) return false;\n\tif (!isHexStrict(value.maxPriorityFeePerGas)) return false;\n\tif (!isAccessList(value.accessList)) return false;\n\n\treturn true;\n}\n\nexport function isTransaction2930Unsigned(value: Transaction2930UnsignedAPI): boolean {\n\tif (!isBaseTransaction(value)) return false;\n\tif (!isHexStrict(value.gasPrice)) return false;\n\tif (!isAccessList(value.accessList)) return false;\n\n\treturn true;\n}\n\nexport function isTransactionLegacyUnsigned(value: TransactionLegacyUnsignedAPI): boolean {\n\tif (!isBaseTransaction(value)) return false;\n\tif (!isHexStrict(value.gasPrice)) return false;\n\n\treturn true;\n}\n\nexport function isTransactionWithSender(value: TransactionWithSenderAPI): boolean {\n\tif (!isAddress(value.from)) return false;\n\tif (!isBaseTransaction(value)) return false;\n\tif (\n\t\t!isTransaction1559Unsigned(value as Transaction1559UnsignedAPI) &&\n\t\t!isTransaction2930Unsigned(value as Transaction2930UnsignedAPI) &&\n\t\t!isTransactionLegacyUnsigned(value as TransactionLegacyUnsignedAPI)\n\t)\n\t\treturn false;\n\n\treturn true;\n}\n\nexport function validateTransactionWithSender(value: TransactionWithSenderAPI) {\n\tif (!isTransactionWithSender(value)) throw new InvalidTransactionWithSender(value);\n}\n\nexport function isTransactionCall(value: TransactionCall): boolean {\n\tif (!isNullish(value.from) && !isAddress(value.from)) return false;\n\tif (!isAddress(value.to)) return false;\n\tif (!isNullish(value.gas) && !isHexStrict(value.gas)) return false;\n\tif (!isNullish(value.gasPrice) && !isHexStrict(value.gasPrice)) return false;\n\tif (!isNullish(value.value) && !isHexStrict(value.value)) return false;\n\tif (!isNullish(value.data) && !isHexStrict(value.data)) return false;\n\tif (!isNullish(value.input) && !isHexStrict(value.input)) return false;\n\tif (!isNullish(value.type)) return false;\n\tif (isTransaction1559Unsigned(value as Transaction1559UnsignedAPI)) return false;\n\tif (isTransaction2930Unsigned(value as Transaction2930UnsignedAPI)) return false;\n\n\treturn true;\n}\n\nexport function validateTransactionCall(value: TransactionCall) {\n\tif (!isTransactionCall(value)) throw new InvalidTransactionCall(value);\n}\n\nexport const validateCustomChainInfo = (transaction: InternalTransaction) => {\n\tif (!isNullish(transaction.common)) {\n\t\tif (isNullish(transaction.common.customChain)) throw new MissingCustomChainError();\n\t\tif (isNullish(transaction.common.customChain.chainId))\n\t\t\tthrow new MissingCustomChainIdError();\n\t\tif (\n\t\t\t!isNullish(transaction.chainId) &&\n\t\t\ttransaction.chainId !== transaction.common.customChain.chainId\n\t\t)\n\t\t\tthrow new ChainIdMismatchError({\n\t\t\t\ttxChainId: transaction.chainId,\n\t\t\t\tcustomChainId: transaction.common.customChain.chainId,\n\t\t\t});\n\t}\n};\nexport const validateChainInfo = (transaction: InternalTransaction) => {\n\tif (\n\t\t!isNullish(transaction.common) &&\n\t\t!isNullish(transaction.chain) &&\n\t\t!isNullish(transaction.hardfork)\n\t) {\n\t\tthrow new CommonOrChainAndHardforkError();\n\t}\n\tif (\n\t\t(!isNullish(transaction.chain) && isNullish(transaction.hardfork)) ||\n\t\t(!isNullish(transaction.hardfork) && isNullish(transaction.chain))\n\t)\n\t\tthrow new MissingChainOrHardforkError({\n\t\t\tchain: transaction.chain,\n\t\t\thardfork: transaction.hardfork,\n\t\t});\n};\nexport const validateBaseChain = (transaction: InternalTransaction) => {\n\tif (!isNullish(transaction.common))\n\t\tif (!isNullish(transaction.common.baseChain))\n\t\t\tif (\n\t\t\t\t!isNullish(transaction.chain) &&\n\t\t\t\ttransaction.chain !== transaction.common.baseChain\n\t\t\t) {\n\t\t\t\tthrow new ChainMismatchError({\n\t\t\t\t\ttxChain: transaction.chain,\n\t\t\t\t\tbaseChain: transaction.common.baseChain,\n\t\t\t\t});\n\t\t\t}\n};\nexport const validateHardfork = (transaction: InternalTransaction) => {\n\tif (!isNullish(transaction.common))\n\t\tif (!isNullish(transaction.common.hardfork))\n\t\t\tif (\n\t\t\t\t!isNullish(transaction.hardfork) &&\n\t\t\t\ttransaction.hardfork !== transaction.common.hardfork\n\t\t\t) {\n\t\t\t\tthrow new HardforkMismatchError({\n\t\t\t\t\ttxHardfork: transaction.hardfork,\n\t\t\t\t\tcommonHardfork: transaction.common.hardfork,\n\t\t\t\t});\n\t\t\t}\n};\n\nexport const validateLegacyGas = (transaction: InternalTransaction) => {\n\tif (\n\t\t// This check is verifying gas and gasPrice aren't less than 0.\n\t\tisNullish(transaction.gas) ||\n\t\t!isUInt(transaction.gas) ||\n\t\tisNullish(transaction.gasPrice) ||\n\t\t!isUInt(transaction.gasPrice)\n\t)\n\t\tthrow new InvalidGasOrGasPrice({\n\t\t\tgas: transaction.gas,\n\t\t\tgasPrice: transaction.gasPrice,\n\t\t});\n\tif (!isNullish(transaction.maxFeePerGas) || !isNullish(transaction.maxPriorityFeePerGas))\n\t\tthrow new UnsupportedFeeMarketError({\n\t\t\tmaxFeePerGas: transaction.maxFeePerGas,\n\t\t\tmaxPriorityFeePerGas: transaction.maxPriorityFeePerGas,\n\t\t});\n};\n\nexport const validateFeeMarketGas = (transaction: InternalTransaction) => {\n\t// These errors come from 1.x, so they must be checked before\n\t// InvalidMaxPriorityFeePerGasOrMaxFeePerGas to throw the same error\n\t// for the same code executing in 1.x\n\tif (!isNullish(transaction.gasPrice) && transaction.type === '0x2')\n\t\tthrow new Eip1559GasPriceError(transaction.gasPrice);\n\tif (transaction.type === '0x0' || transaction.type === '0x1')\n\t\tthrow new UnsupportedFeeMarketError({\n\t\t\tmaxFeePerGas: transaction.maxFeePerGas,\n\t\t\tmaxPriorityFeePerGas: transaction.maxPriorityFeePerGas,\n\t\t});\n\n\tif (\n\t\tisNullish(transaction.maxFeePerGas) ||\n\t\t!isUInt(transaction.maxFeePerGas) ||\n\t\tisNullish(transaction.maxPriorityFeePerGas) ||\n\t\t!isUInt(transaction.maxPriorityFeePerGas)\n\t)\n\t\tthrow new InvalidMaxPriorityFeePerGasOrMaxFeePerGas({\n\t\t\tmaxPriorityFeePerGas: transaction.maxPriorityFeePerGas,\n\t\t\tmaxFeePerGas: transaction.maxFeePerGas,\n\t\t});\n};\n\n/**\n * This method checks if all required gas properties are present for either\n * legacy gas (type 0x0 and 0x1) OR fee market transactions (0x2)\n */\nexport const validateGas = (transaction: InternalTransaction) => {\n\tconst gasPresent = !isNullish(transaction.gas) || !isNullish(transaction.gasLimit);\n\tconst legacyGasPresent = gasPresent && !isNullish(transaction.gasPrice);\n\tconst feeMarketGasPresent =\n\t\tgasPresent &&\n\t\t!isNullish(transaction.maxPriorityFeePerGas) &&\n\t\t!isNullish(transaction.maxFeePerGas);\n\n\tif (!legacyGasPresent && !feeMarketGasPresent)\n\t\tthrow new MissingGasError({\n\t\t\tgas: transaction.gas,\n\t\t\tgasPrice: transaction.gasPrice,\n\t\t\tmaxPriorityFeePerGas: transaction.maxPriorityFeePerGas,\n\t\t\tmaxFeePerGas: transaction.maxFeePerGas,\n\t\t});\n\n\tif (legacyGasPresent && feeMarketGasPresent)\n\t\tthrow new TransactionGasMismatchError({\n\t\t\tgas: transaction.gas,\n\t\t\tgasPrice: transaction.gasPrice,\n\t\t\tmaxPriorityFeePerGas: transaction.maxPriorityFeePerGas,\n\t\t\tmaxFeePerGas: transaction.maxFeePerGas,\n\t\t});\n\n\t(legacyGasPresent ? validateLegacyGas : validateFeeMarketGas)(transaction);\n\t(!isNullish(transaction.type) && transaction.type > '0x1'\n\t\t? validateFeeMarketGas\n\t\t: validateLegacyGas)(transaction);\n};\n\nexport const validateTransactionForSigning = (\n\ttransaction: InternalTransaction,\n\toverrideMethod?: (transaction: InternalTransaction) => void,\n\toptions: {\n\t\ttransactionSchema?: CustomTransactionSchema;\n\t} = { transactionSchema: undefined },\n) => {\n\tif (!isNullish(overrideMethod)) {\n\t\toverrideMethod(transaction);\n\t\treturn;\n\t}\n\n\tif (typeof transaction !== 'object' || isNullish(transaction))\n\t\tthrow new InvalidTransactionObjectError(transaction);\n\n\tvalidateCustomChainInfo(transaction);\n\tvalidateChainInfo(transaction);\n\tvalidateBaseChain(transaction);\n\tvalidateHardfork(transaction);\n\n\tconst formattedTransaction = formatTransaction(transaction as Transaction, ETH_DATA_FORMAT, {\n\t\ttransactionSchema: options.transactionSchema,\n\t});\n\tvalidateGas(formattedTransaction);\n\n\tif (\n\t\tisNullish(formattedTransaction.nonce) ||\n\t\tisNullish(formattedTransaction.chainId) ||\n\t\tformattedTransaction.nonce.startsWith('-') ||\n\t\tformattedTransaction.chainId.startsWith('-')\n\t)\n\t\tthrow new InvalidNonceOrChainIdError({\n\t\t\tnonce: transaction.nonce,\n\t\t\tchainId: transaction.chainId,\n\t\t});\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tEthExecutionAPI,\n\tHexString,\n\tPopulatedUnsignedEip1559Transaction,\n\tPopulatedUnsignedEip2930Transaction,\n\tPopulatedUnsignedTransaction,\n\tTransaction,\n\tValidChains,\n\tFormatType,\n\tETH_DATA_FORMAT,\n} from 'web3-types';\nimport { Web3Context } from 'web3-core';\nimport { toNumber } from 'web3-utils';\nimport { TransactionFactory, TxOptions, Common } from 'web3-eth-accounts';\nimport { isNullish } from 'web3-validator';\nimport { validateTransactionForSigning } from '../validation.js';\nimport { formatTransaction } from './format_transaction.js';\nimport { transactionBuilder } from './transaction_builder.js';\n\nconst getEthereumjsTxDataFromTransaction = (\n\ttransaction: FormatType<PopulatedUnsignedTransaction, typeof ETH_DATA_FORMAT>,\n) => ({\n\tnonce: transaction.nonce,\n\tgasPrice: transaction.gasPrice,\n\tgasLimit: transaction.gasLimit ?? transaction.gas,\n\tto: transaction.to,\n\tvalue: transaction.value,\n\tdata: transaction.data ?? transaction.input,\n\ttype: transaction.type,\n\tchainId: transaction.chainId,\n\taccessList: (\n\t\ttransaction as FormatType<PopulatedUnsignedEip2930Transaction, typeof ETH_DATA_FORMAT>\n\t).accessList,\n\tmaxPriorityFeePerGas: (\n\t\ttransaction as FormatType<PopulatedUnsignedEip1559Transaction, typeof ETH_DATA_FORMAT>\n\t).maxPriorityFeePerGas,\n\tmaxFeePerGas: (\n\t\ttransaction as FormatType<PopulatedUnsignedEip1559Transaction, typeof ETH_DATA_FORMAT>\n\t).maxFeePerGas,\n});\n\nconst getEthereumjsTransactionOptions = (\n\ttransaction: FormatType<PopulatedUnsignedTransaction, typeof ETH_DATA_FORMAT>,\n\tweb3Context: Web3Context<EthExecutionAPI>,\n) => {\n\tconst hasTransactionSigningOptions =\n\t\t(!isNullish(transaction.chain) && !isNullish(transaction.hardfork)) ||\n\t\t!isNullish(transaction.common);\n\n\tlet common;\n\tif (!hasTransactionSigningOptions) {\n\t\t// if defaultcommon is specified, use that.\n\t\tif (web3Context.defaultCommon) {\n\t\t\tcommon = { ...web3Context.defaultCommon };\n\n\t\t\tif (isNullish(common.hardfork))\n\t\t\t\tcommon.hardfork = transaction.hardfork ?? web3Context.defaultHardfork;\n\t\t\tif (isNullish(common.baseChain))\n\t\t\t\tcommon.baseChain = web3Context.defaultChain as ValidChains;\n\t\t} else {\n\t\t\tcommon = Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname: 'custom-network',\n\t\t\t\t\tchainId: toNumber(transaction.chainId) as number,\n\t\t\t\t\tnetworkId: !isNullish(transaction.networkId)\n\t\t\t\t\t\t? (toNumber(transaction.networkId) as number)\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\tdefaultHardfork: transaction.hardfork ?? web3Context.defaultHardfork,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbaseChain: web3Context.defaultChain,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t} else {\n\t\tconst name =\n\t\t\ttransaction?.common?.customChain?.name ?? transaction.chain ?? 'custom-network';\n\t\tconst chainId = toNumber(\n\t\t\ttransaction?.common?.customChain?.chainId ?? transaction?.chainId,\n\t\t) as number;\n\t\tconst networkId = toNumber(\n\t\t\ttransaction?.common?.customChain?.networkId ?? transaction?.networkId,\n\t\t) as number;\n\t\tconst defaultHardfork =\n\t\t\ttransaction?.common?.hardfork ?? transaction?.hardfork ?? web3Context.defaultHardfork;\n\t\tconst baseChain =\n\t\t\ttransaction.common?.baseChain ?? transaction.chain ?? web3Context.defaultChain;\n\n\t\tif (chainId && networkId && name) {\n\t\t\tcommon = Common.custom(\n\t\t\t\t{\n\t\t\t\t\tname,\n\t\t\t\t\tchainId,\n\t\t\t\t\tnetworkId,\n\t\t\t\t\tdefaultHardfork,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbaseChain,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\treturn { common } as TxOptions;\n};\n\nexport const prepareTransactionForSigning = async (\n\ttransaction: Transaction,\n\tweb3Context: Web3Context<EthExecutionAPI>,\n\tprivateKey?: HexString | Uint8Array,\n\tfillGasPrice = false,\n\tfillGasLimit = true,\n) => {\n\tconst populatedTransaction = (await transactionBuilder({\n\t\ttransaction,\n\t\tweb3Context,\n\t\tprivateKey,\n\t\tfillGasPrice,\n\t\tfillGasLimit,\n\t})) as unknown as PopulatedUnsignedTransaction;\n\tconst formattedTransaction = formatTransaction(populatedTransaction, ETH_DATA_FORMAT, {\n\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t}) as unknown as FormatType<PopulatedUnsignedTransaction, typeof ETH_DATA_FORMAT>;\n\n\tvalidateTransactionForSigning(\n\t\tformattedTransaction as unknown as FormatType<Transaction, typeof ETH_DATA_FORMAT>,\n\t\tundefined,\n\t\t{\n\t\t\ttransactionSchema: web3Context.config.customTransactionSchema,\n\t\t},\n\t);\n\n\treturn TransactionFactory.fromTxData(\n\t\tgetEthereumjsTxDataFromTransaction(formattedTransaction),\n\t\tgetEthereumjsTransactionOptions(formattedTransaction, web3Context),\n\t);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { format, isNullish, keccak256 } from 'web3-utils';\n\nimport {\n\tAbiConstructorFragment,\n\tAbiEventFragment,\n\tAbiFunctionFragment,\n\tFilter,\n\tHexString,\n\tTopic,\n\tFMT_NUMBER,\n\tFMT_BYTES,\n\tContractOptions,\n} from 'web3-types';\n\nimport {\n\tdecodeParameters,\n\tencodeEventSignature,\n\tencodeFunctionSignature,\n\tencodeParameter,\n\tencodeParameters,\n\tinferTypesAndEncodeParameters,\n\tisAbiConstructorFragment,\n\tjsonInterfaceMethodToString,\n} from 'web3-eth-abi';\n\nimport { blockSchema, ALL_EVENTS } from 'web3-eth';\nimport { Web3ContractError } from 'web3-errors';\n\nexport { decodeEventABI } from 'web3-eth';\n\ntype Writeable<T> = { -readonly [P in keyof T]: T[P] };\nexport const encodeEventABI = (\n\t{ address }: ContractOptions,\n\tevent: AbiEventFragment & { signature: string },\n\toptions?: Filter,\n) => {\n\tconst topics = options?.topics;\n\tconst filter = options?.filter ?? {};\n\tconst opts: Writeable<Filter> = {};\n\n\tif (!isNullish(options?.fromBlock)) {\n\t\topts.fromBlock = format(blockSchema.properties.number, options?.fromBlock, {\n\t\t\tnumber: FMT_NUMBER.HEX,\n\t\t\tbytes: FMT_BYTES.HEX,\n\t\t});\n\t}\n\tif (!isNullish(options?.toBlock)) {\n\t\topts.toBlock = format(blockSchema.properties.number, options?.toBlock, {\n\t\t\tnumber: FMT_NUMBER.HEX,\n\t\t\tbytes: FMT_BYTES.HEX,\n\t\t});\n\t}\n\n\tif (topics && Array.isArray(topics)) {\n\t\topts.topics = [...topics] as Topic[];\n\t} else {\n\t\topts.topics = [];\n\t\t// add event signature\n\t\tif (event && !event.anonymous && ![ALL_EVENTS, 'allEvents'].includes(event.name)) {\n\t\t\topts.topics.push(\n\t\t\t\tevent.signature ?? encodeEventSignature(jsonInterfaceMethodToString(event)),\n\t\t\t);\n\t\t}\n\n\t\t// add event topics (indexed arguments)\n\t\tif (![ALL_EVENTS, 'allEvents'].includes(event.name) && event.inputs) {\n\t\t\tfor (const input of event.inputs) {\n\t\t\t\tif (!input.indexed) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst value = filter[input.name];\n\t\t\t\tif (!value) {\n\t\t\t\t\t// eslint-disable-next-line no-null/no-null\n\t\t\t\t\topts.topics.push(null);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// TODO: https://github.com/ethereum/web3.js/issues/344\n\t\t\t\t// TODO: deal properly with components\n\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\topts.topics.push(value.map(v => encodeParameter(input.type, v)));\n\t\t\t\t} else if (input.type === 'string') {\n\t\t\t\t\topts.topics.push(keccak256(value as string));\n\t\t\t\t} else {\n\t\t\t\t\topts.topics.push(encodeParameter(input.type, value));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!opts.topics.length) delete opts.topics;\n\n\tif (address) {\n\t\topts.address = address.toLowerCase();\n\t}\n\n\treturn opts;\n};\n\nexport const encodeMethodABI = (\n\tabi: AbiFunctionFragment | AbiConstructorFragment,\n\targs: unknown[],\n\tdeployData?: HexString,\n) => {\n\tconst inputLength = Array.isArray(abi.inputs) ? abi.inputs.length : 0;\n\tif (abi.inputs && inputLength !== args.length) {\n\t\tthrow new Web3ContractError(\n\t\t\t`The number of arguments is not matching the methods required number. You need to pass ${inputLength} arguments.`,\n\t\t);\n\t}\n\n\tlet params: string;\n\tif (abi.inputs) {\n\t\tparams = encodeParameters(Array.isArray(abi.inputs) ? abi.inputs : [], args).replace(\n\t\t\t'0x',\n\t\t\t'',\n\t\t);\n\t} else {\n\t\tparams = inferTypesAndEncodeParameters(args).replace('0x', '');\n\t}\n\n\n\tif (isAbiConstructorFragment(abi)) {\n\t\tif (!deployData)\n\t\t\tthrow new Web3ContractError(\n\t\t\t\t'The contract has no contract data option set. This is necessary to append the constructor parameters.',\n\t\t\t);\n\n\t\tif (!deployData.startsWith('0x')) {\n\t\t\treturn `0x${deployData}${params}`;\n\t\t}\n\n\t\treturn `${deployData}${params}`;\n\t}\n\n\treturn `${encodeFunctionSignature(abi)}${params}`;\n};\n\nexport const decodeMethodParams = (\n\tabi: AbiFunctionFragment | AbiConstructorFragment,\n\tdata: HexString,\n\tmethodSignatureProvided = true,\n) => {\n\tconst value =\n\t\tmethodSignatureProvided && data && data.length >= 10 && data.startsWith('0x')\n\t\t\t? data.slice(10)\n\t\t\t: data;\n\tif (!abi.inputs) {\n\t\tthrow new Web3ContractError('No inputs found in the ABI');\n\t}\n\tconst result = decodeParameters([...abi.inputs], value);\n\treturn result;\n};\n\nexport const decodeMethodReturn = (abi: AbiFunctionFragment, returnValues?: HexString) => {\n\t// If it was constructor then we need to return contract address\n\tif (abi.type === 'constructor') {\n\t\treturn returnValues;\n\t}\n\n\tif (!returnValues) {\n\t\t// Using \"null\" value intentionally to match legacy behavior\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn null;\n\t}\n\n\tconst value = returnValues.length >= 2 ? returnValues.slice(2) : returnValues;\n\tif (!abi.outputs) {\n\t\t// eslint-disable-next-line no-null/no-null\n\t\treturn null;\n\t}\n\tconst result = decodeParameters([...abi.outputs], value);\n\n\tif (result.__length__ === 1) {\n\t\treturn result[0];\n\t}\n\n\treturn result;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tAbiEventFragment,\n\tLogsInput,\n\tHexString,\n\tTopic,\n\tDataFormat,\n\tEventLog,\n\tContractAbiWithSignature,\n} from 'web3-types';\nimport { Web3RequestManager, Web3Subscription, Web3SubscriptionManager } from 'web3-core';\nimport { decodeEventABI } from 'web3-eth';\n\n/**\n * LogSubscription to be used to subscribe to events logs.\n *\n * Following events are supported and can be accessed with either {@link LogsSubscription.once} or ${@link LogsSubscription.on} methods.\n *\n * - **connected**: Emitted when the subscription is connected.\n * - **data**: Fires on each incoming event with the event object as argument.\n * - **changed**: Fires on each event which was removed from the blockchain. The event will have the additional property `removed: true`.\n * - **error**: Fires on each error.\n *\n * ```ts\n * const subscription = await myContract.events.MyEvent({\n * filter: {myIndexedParam: [20,23], myOtherIndexedParam: '0x123456789...'}, // Using an array means OR: e.g. 20 or 23\n * fromBlock: 0\n * });\n *\n * subscription.on(\"connected\", function(subscriptionId){\n * console.log(subscriptionId);\n * });\n *\n * subscription.on('data', function(event){\n * console.log(event); // same results as the optional callback above\n * });\n *\n * subscription.on('changed', function(event){\n * // remove event from local database\n * })\n *\n * subscription.on('error', function(error, receipt) { // If the transaction was rejected by the network with a receipt, the second parameter will be the receipt.\n * ...\n * });\n *\n * // event output example\n * > {\n * returnValues: {\n * myIndexedParam: 20,\n * myOtherIndexedParam: '0x123456789...',\n * myNonIndexParam: 'My String'\n * },\n * raw: {\n * data: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n * topics: ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385']\n * },\n * event: 'MyEvent',\n * signature: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',\n * logIndex: 0,\n * transactionIndex: 0,\n * transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n * blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',\n * blockNumber: 1234,\n * address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'\n * }\n * ```\n */\nexport class LogsSubscription extends Web3Subscription<\n\t{\n\t\tdata: EventLog;\n\t\tchanged: EventLog & { removed: true };\n\t},\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t{ address?: HexString; topics?: (Topic | Topic[] | null)[]; abi: AbiEventFragment }\n> {\n\t/**\n\t * Address of tye contract\n\t */\n\tpublic readonly address?: HexString;\n\n\t/**\n\t * The list of topics subscribed\n\t */\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\tpublic readonly topics?: (Topic | Topic[] | null)[];\n\n\t/**\n\t * The {@doclink glossary#json-interface-abi | JSON Interface} of the event.\n\t */\n\tpublic readonly abi: AbiEventFragment & { signature: HexString };\n\n\tpublic readonly jsonInterface: ContractAbiWithSignature;\n\n\tpublic constructor(\n\t\targs: {\n\t\t\taddress?: HexString;\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t\ttopics?: (Topic | Topic[] | null)[];\n\t\t\tabi: AbiEventFragment & { signature: HexString };\n\t\t\tjsonInterface: ContractAbiWithSignature;\n\t\t},\n\t\toptions: { subscriptionManager: Web3SubscriptionManager; returnFormat?: DataFormat },\n\t);\n\t/**\n\t * @deprecated This constructor overloading should not be used\n\t */\n\tpublic constructor(\n\t\targs: {\n\t\t\taddress?: HexString;\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t\ttopics?: (Topic | Topic[] | null)[];\n\t\t\tabi: AbiEventFragment & { signature: HexString };\n\t\t\tjsonInterface: ContractAbiWithSignature;\n\t\t},\n\t\toptions: { requestManager: Web3RequestManager; returnFormat?: DataFormat },\n\t);\n\tpublic constructor(\n\t\targs: {\n\t\t\taddress?: HexString;\n\t\t\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t\t\ttopics?: (Topic | Topic[] | null)[];\n\t\t\tabi: AbiEventFragment & { signature: HexString };\n\t\t\tjsonInterface: ContractAbiWithSignature;\n\t\t},\n\t\toptions: (\n\t\t\t| { subscriptionManager: Web3SubscriptionManager }\n\t\t\t| { requestManager: Web3RequestManager }\n\t\t) & {\n\t\t\treturnFormat?: DataFormat;\n\t\t},\n\t) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tsuper(args, options as any);\n\n\t\tthis.address = args.address;\n\t\tthis.topics = args.topics;\n\t\tthis.abi = args.abi;\n\t\tthis.jsonInterface = args.jsonInterface;\n\t}\n\n\tprotected _buildSubscriptionParams() {\n\t\treturn ['logs', { address: this.address, topics: this.topics }];\n\t}\n\n\tprotected formatSubscriptionResult(data: EventLog) {\n\t\treturn decodeEventABI(this.abi, data as LogsInput, this.jsonInterface, super.returnFormat);\n\t}\n}\n","export type Input = string | number | bigint | Uint8Array | Array<Input> | null | undefined\n\nexport type NestedUint8Array = Array<Uint8Array | NestedUint8Array>\n\nexport interface Decoded {\n data: Uint8Array | NestedUint8Array\n remainder: Uint8Array\n}\n\n/**\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: Input): Uint8Array {\n if (Array.isArray(input)) {\n const output: Uint8Array[] = []\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/**\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: Uint8Array, start: number, end: number) {\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/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n */\nfunction decodeLength(v: Uint8Array): number {\n if (v[0] === 0) {\n throw new Error('invalid RLP: extra zeros')\n }\n return parseHexByte(bytesToHex(v))\n}\n\nfunction encodeLength(len: number, offset: number): Uint8Array {\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}\n\n/**\n * RLP Decoding based on https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/\n * @param input Will be converted to Uint8Array\n * @param stream Is the input a stream (false by default)\n * @returns decoded Array of Uint8Arrays containing the original message\n **/\nexport function decode(input: Input, stream?: false): Uint8Array | NestedUint8Array\nexport function decode(input: Input, stream?: true): Decoded\nexport function decode(input: Input, stream = false): Uint8Array | NestedUint8Array | Decoded {\n if (typeof input === 'undefined' || input === null || (input as any).length === 0) {\n return Uint8Array.from([])\n }\n\n const inputBytes = toBytes(input)\n const decoded = _decode(inputBytes)\n\n if (stream) {\n return {\n data: decoded.data,\n remainder: decoded.remainder.slice(),\n }\n }\n if (decoded.remainder.length !== 0) {\n throw new Error('invalid RLP: remainder must be zero')\n }\n\n return decoded.data\n}\n\n/** Decode an input with RLP */\nfunction _decode(input: Uint8Array): Decoded {\n let length: number, llength: number, data: Uint8Array, innerRemainder: Uint8Array, d: Decoded\n const decoded = []\n const firstByte = input[0]\n\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.subarray(1),\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\n // set 0x80 null to 0\n if (firstByte === 0x80) {\n data = Uint8Array.from([])\n } else {\n data = safeSlice(input, 1, length)\n }\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\n return {\n data,\n remainder: input.subarray(length),\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\n return {\n data,\n remainder: input.subarray(length + llength),\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\n return {\n data: decoded,\n remainder: input.subarray(length),\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\n innerRemainder = safeSlice(input, llength, totalLength)\n\n while (innerRemainder.length) {\n d = _decode(innerRemainder)\n decoded.push(d.data)\n innerRemainder = d.remainder\n }\n\n return {\n data: decoded,\n remainder: input.subarray(totalLength),\n }\n }\n}\n\nconst cachedHexes = Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'))\nfunction bytesToHex(uint8a: Uint8Array): string {\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}\n\nfunction parseHexByte(hexByte: string): number {\n const byte = Number.parseInt(hexByte, 16)\n if (Number.isNaN(byte)) throw new Error('Invalid byte sequence')\n return byte\n}\n\n// Caching slows it down 2-3x\nfunction hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex)\n }\n if (hex.length % 2) 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\n/** Concatenates two Uint8Arrays into one. */\nfunction concatBytes(...arrays: Uint8Array[]): Uint8Array {\n if (arrays.length === 1) 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// Global symbols in both browsers and Node.js since v11\n// See https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any\ndeclare const TextDecoder: any\n\nfunction utf8ToBytes(utf: string): Uint8Array {\n return new TextEncoder().encode(utf)\n}\n\n/** Transform an integer into its hexadecimal value */\nfunction numberToHex(integer: number | bigint): string {\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\n/** Pad a string to be even */\nfunction padToEven(a: string): string {\n return a.length % 2 ? `0${a}` : a\n}\n\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str: string): boolean {\n return str.length >= 2 && str[0] === '0' && str[1] === 'x'\n}\n\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str: string): string {\n if (typeof str !== 'string') {\n return str\n }\n return isHexPrefixed(str) ? str.slice(2) : str\n}\n\n/** Transform anything into a Uint8Array */\nfunction toBytes(v: Input): Uint8Array {\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}\n\nexport const utils = {\n bytesToHex,\n concatBytes,\n hexToBytes,\n utf8ToBytes,\n}\n\nexport const RLP = { encode, decode }\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { RLP } from '@ethereumjs/rlp';\nimport { InvalidAddressError, InvalidMethodParamsError, InvalidNumberError, Web3ContractError } from 'web3-errors';\nimport {\n\tTransactionForAccessList,\n\tAbiFunctionFragment,\n\tTransactionWithSenderAPI,\n\tTransactionCall,\n\tHexString,\n\tAddress,\n\tNonPayableCallOptions,\n\tPayableCallOptions,\n\tContractOptions,\n\tNumbers,\n\tAbiConstructorFragment,\n} from 'web3-types';\nimport { isNullish, mergeDeep, isContractInitOptions, keccak256, toChecksumAddress, hexToNumber } from 'web3-utils';\nimport { isAddress, isHexString } from 'web3-validator';\nimport { encodeMethodABI } from './encoding.js';\nimport { Web3ContractContext } from './types.js';\n\nconst dataInputEncodeMethodHelper = (\n\ttxParams: TransactionCall | TransactionForAccessList,\n\tabi: AbiFunctionFragment | AbiConstructorFragment,\n\tparams: unknown[],\n\tdataInputFill?: 'data' | 'input' | 'both',\n): { data?: HexString; input?: HexString } => {\n\tconst tx: { data?: HexString; input?: HexString } = {};\n\tif (!isNullish(txParams.data) || dataInputFill === 'both') {\n\t\ttx.data = encodeMethodABI(abi, params, (txParams.data ?? txParams.input) as HexString);\n\t}\n\tif (!isNullish(txParams.input) || dataInputFill === 'both') {\n\t\ttx.input = encodeMethodABI(abi, params, (txParams.input ?? txParams.data) as HexString);\n\t}\n\t// if input and data is empty, use web3config default\n\tif (isNullish(tx.input) && isNullish(tx.data)) {\n\t\ttx[dataInputFill as 'data' | 'input'] = encodeMethodABI(abi, params);\n\t}\n\treturn { data: tx.data as HexString, input: tx.input as HexString };\n};\n\nexport const getSendTxParams = ({\n\tabi,\n\tparams,\n\toptions,\n\tcontractOptions,\n}: {\n\tabi: AbiFunctionFragment | AbiConstructorFragment;\n\tparams: unknown[];\n\toptions?: (PayableCallOptions | NonPayableCallOptions) & {\n\t\tinput?: HexString;\n\t\tdata?: HexString;\n\t\tto?: Address;\n\t\tdataInputFill?: 'input' | 'data' | 'both';\n\t};\n\tcontractOptions: ContractOptions;\n}): TransactionCall => {\n\tconst deploymentCall =\n\t\toptions?.input ?? options?.data ?? contractOptions.input ?? contractOptions.data;\n\tif (!deploymentCall && !options?.to && !contractOptions.address) {\n\t\tthrow new Web3ContractError('Contract address not specified');\n\t}\n\n\tif (!options?.from && !contractOptions.from) {\n\t\tthrow new Web3ContractError('Contract \"from\" address not specified');\n\t}\n\tlet txParams = mergeDeep(\n\t\t{\n\t\t\tto: contractOptions.address,\n\t\t\tgas: contractOptions.gas,\n\t\t\tgasPrice: contractOptions.gasPrice,\n\t\t\tfrom: contractOptions.from,\n\t\t\tinput: contractOptions.input,\n\t\t\tmaxPriorityFeePerGas: contractOptions.maxPriorityFeePerGas,\n\t\t\tmaxFeePerGas: contractOptions.maxFeePerGas,\n\t\t\tdata: contractOptions.data,\n\t\t},\n\t\toptions as unknown as Record<string, unknown>,\n\t) as unknown as TransactionCall;\n\tconst dataInput = dataInputEncodeMethodHelper(txParams, abi, params, options?.dataInputFill);\n\ttxParams = { ...txParams, data: dataInput.data, input: dataInput.input };\n\n\treturn txParams;\n};\n\nexport const getEthTxCallParams = ({\n\tabi,\n\tparams,\n\toptions,\n\tcontractOptions,\n}: {\n\tabi: AbiFunctionFragment;\n\tparams: unknown[];\n\toptions?: (PayableCallOptions | NonPayableCallOptions) & {\n\t\tto?: Address;\n\t\tdataInputFill?: 'input' | 'data' | 'both';\n\t};\n\tcontractOptions: ContractOptions;\n}): TransactionCall => {\n\tif (!options?.to && !contractOptions.address) {\n\t\tthrow new Web3ContractError('Contract address not specified');\n\t}\n\tlet txParams = mergeDeep(\n\t\t{\n\t\t\tto: contractOptions.address,\n\t\t\tgas: contractOptions.gas,\n\t\t\tgasPrice: contractOptions.gasPrice,\n\t\t\tfrom: contractOptions.from,\n\t\t\tinput: contractOptions.input,\n\t\t\tmaxPriorityFeePerGas: contractOptions.maxPriorityFeePerGas,\n\t\t\tmaxFeePerGas: contractOptions.maxFeePerGas,\n\t\t\tdata: contractOptions.data,\n\t\t},\n\t\toptions as unknown as Record<string, unknown>,\n\t) as unknown as TransactionCall;\n\n\tconst dataInput = dataInputEncodeMethodHelper(txParams, abi, params, options?.dataInputFill);\n\ttxParams = { ...txParams, data: dataInput.data, input: dataInput.input };\n\n\treturn txParams;\n};\n\nexport const getEstimateGasParams = ({\n\tabi,\n\tparams,\n\toptions,\n\tcontractOptions,\n}: {\n\tabi: AbiFunctionFragment;\n\tparams: unknown[];\n\toptions?: (PayableCallOptions | NonPayableCallOptions) & {\n\t\tdataInputFill?: 'input' | 'data' | 'both';\n\t};\n\tcontractOptions: ContractOptions;\n}): Partial<TransactionWithSenderAPI> => {\n\tlet txParams = mergeDeep(\n\t\t{\n\t\t\tto: contractOptions.address,\n\t\t\tgas: contractOptions.gas,\n\t\t\tgasPrice: contractOptions.gasPrice,\n\t\t\tfrom: contractOptions.from,\n\t\t\tinput: contractOptions.input,\n\t\t\tdata: contractOptions.data,\n\t\t},\n\t\toptions as unknown as Record<string, unknown>,\n\t) as unknown as TransactionCall;\n\n\tconst dataInput = dataInputEncodeMethodHelper(txParams, abi, params, options?.dataInputFill);\n\ttxParams = { ...txParams, data: dataInput.data, input: dataInput.input };\n\n\treturn txParams as TransactionWithSenderAPI;\n};\n\nexport const isWeb3ContractContext = (options: unknown): options is Web3ContractContext =>\n\ttypeof options === 'object' &&\n\t!isNullish(options) &&\n\tObject.keys(options).length !== 0 &&\n\t!isContractInitOptions(options);\n\nexport const getCreateAccessListParams = ({\n\tabi,\n\tparams,\n\toptions,\n\tcontractOptions,\n}: {\n\tabi: AbiFunctionFragment;\n\tparams: unknown[];\n\toptions?: (PayableCallOptions | NonPayableCallOptions) & {\n\t\tto?: Address;\n\t\tdataInputFill?: 'input' | 'data' | 'both';\n\t};\n\tcontractOptions: ContractOptions;\n}): TransactionForAccessList => {\n\tif (!options?.to && !contractOptions.address) {\n\t\tthrow new Web3ContractError('Contract address not specified');\n\t}\n\n\tif (!options?.from && !contractOptions.from) {\n\t\tthrow new Web3ContractError('Contract \"from\" address not specified');\n\t}\n\n\tlet txParams = mergeDeep(\n\t\t{\n\t\t\tto: contractOptions.address,\n\t\t\tgas: contractOptions.gas,\n\t\t\tgasPrice: contractOptions.gasPrice,\n\t\t\tfrom: contractOptions.from,\n\t\t\tinput: contractOptions.input,\n\t\t\tmaxPriorityFeePerGas: contractOptions.maxPriorityFeePerGas,\n\t\t\tmaxFeePerGas: contractOptions.maxFeePerGas,\n\t\t\tdata: contractOptions.data,\n\t\t},\n\t\toptions as unknown as Record<string, unknown>,\n\t) as unknown as TransactionForAccessList;\n\n\tconst dataInput = dataInputEncodeMethodHelper(txParams, abi, params, options?.dataInputFill);\n\ttxParams = { ...txParams, data: dataInput.data, input: dataInput.input };\n\n\treturn txParams;\n};\n\n\nexport const createContractAddress = (from: Address, nonce: Numbers): Address => {\n\tif(!isAddress(from))\n\t\tthrow new InvalidAddressError(`Invalid address given ${from}`);\n\n\tlet nonceValue = nonce;\n\tif(typeof nonce === \"string\" && isHexString(nonce))\n\t\tnonceValue = hexToNumber(nonce);\n\telse if(typeof nonce === \"string\" && !isHexString(nonce))\n\t\tthrow new InvalidNumberError(\"Invalid nonce value format\");\n\n\tconst rlpEncoded = RLP.encode(\n [from, nonceValue]\n );\n const result = keccak256(rlpEncoded);\n\n const contractAddress = '0x'.concat(result.substring(26));\n\n return toChecksumAddress(contractAddress);\n}\n\nexport const create2ContractAddress = (from: Address, salt: HexString, initCode: HexString): Address => {\n if(!isAddress(from))\n throw new InvalidAddressError(`Invalid address given ${from}`);\n\n if(!isHexString(salt))\n throw new InvalidMethodParamsError(`Invalid salt value ${salt}`);\n\n if(!isHexString(initCode))\n throw new InvalidMethodParamsError(`Invalid initCode value ${initCode}`);\n\n\tconst initCodeHash = keccak256(initCode);\n\tconst initCodeHashPadded = initCodeHash.padStart(64, '0'); // Pad to 32 bytes (64 hex characters)\n\tconst create2Params = ['0xff', from, salt, initCodeHashPadded].map(x => x.replace(/0x/, ''));\n\tconst create2Address = `0x${ create2Params.join('')}`;\n\n\treturn toChecksumAddress(`0x${ keccak256(create2Address).slice(26)}`); // Slice to get the last 20 bytes (40 hex characters) & checksum\n }","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tWeb3ContractError,\n} from 'web3-errors';\nimport {\n\tsendTransaction,\n\tSendTransactionEvents,\n\tSendTransactionOptions,\n} from 'web3-eth';\nimport {\n\tAbiConstructorFragment,\n\tAbiFunctionFragment,\n\tContractAbi,\n\tContractConstructorArgs,\n\tBytes,\n\tHexString,\n\tPayableCallOptions,\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tContractOptions,\n\tTransactionReceipt,\n\tTransactionCall,\n} from 'web3-types';\nimport {\n\tformat,\n} from 'web3-utils';\nimport {\n\tisNullish,\n} from 'web3-validator';\nimport { Web3PromiEvent } from 'web3-core';\nimport {\n\tdecodeMethodParams,\n\tencodeMethodABI,\n} from './encoding.js';\nimport {\n\tNonPayableTxOptions,\n\tPayableTxOptions,\n} from './types.js';\nimport {\n\tgetSendTxParams,\n} from './utils.js';\n// eslint-disable-next-line import/no-cycle\nimport { Contract } from './contract.js';\n\nexport type ContractDeploySend<Abi extends ContractAbi> = Web3PromiEvent<\n\t// eslint-disable-next-line no-use-before-define\n\tContract<Abi>,\n\tSendTransactionEvents<DataFormat>\n>;\n\n/*\n * This class is only supposed to be used for the return of `new Contract(...).deploy(...)` method.\n */\nexport class DeployerMethodClass<FullContractAbi extends ContractAbi> {\n\n\tprotected readonly args: never[] | ContractConstructorArgs<FullContractAbi>;\n\tprotected readonly constructorAbi: AbiConstructorFragment;\n\tprotected readonly contractOptions: ContractOptions;\n\tprotected readonly deployData?: string;\n\n\tprotected _contractMethodDeploySend(\n\t\ttx: TransactionCall,\n\t) {\n\t\t// eslint-disable-next-line no-use-before-define\n\t\tconst returnTxOptions: SendTransactionOptions<Contract<FullContractAbi>> = {\n\t\t\ttransactionResolver: (receipt: TransactionReceipt) => {\n\t\t\t\tif (receipt.status === BigInt(0)) {\n\t\t\t\t\tthrow new Web3ContractError(\"code couldn't be stored\", receipt);\n\t\t\t\t}\n\n\t\t\t\tconst newContract = this.parent.clone();\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tnewContract.options.address = receipt.contractAddress;\n\t\t\t\treturn newContract;\n\t\t\t},\n\t\t\t\n\t\t\tcontractAbi: this.parent.options.jsonInterface,\n\t\t\t// TODO Should make this configurable by the user\n\t\t\tcheckRevertBeforeSending: false,\n\t\t};\n\n\t\treturn isNullish(this.parent.getTransactionMiddleware())\n\t\t\t? sendTransaction(this.parent, tx, this.parent.defaultReturnFormat, returnTxOptions) // not calling this with undefined Middleware because it will not break if Eth package is not updated\n\t\t\t: sendTransaction(\n\t\t\t\t\tthis.parent,\n\t\t\t\t\ttx,\n\t\t\t\t\tthis.parent.defaultReturnFormat,\n\t\t\t\t\treturnTxOptions,\n\t\t\t\t\tthis.parent.getTransactionMiddleware(),\n\t\t\t );\n\t}\n\n\tpublic constructor(\n\t\t// eslint-disable-next-line no-use-before-define\n\t\tpublic parent: Contract<FullContractAbi>,\n\t\tpublic deployOptions:\n\t\t\t| {\n\t\t\t\t\t/**\n\t\t\t\t\t * The byte code of the contract.\n\t\t\t\t\t */\n\t\t\t\t\tdata?: HexString;\n\t\t\t\t\tinput?: HexString;\n\t\t\t\t\t/**\n\t\t\t\t\t * The arguments which get passed to the constructor on deployment.\n\t\t\t\t\t */\n\t\t\t\t\targuments?: ContractConstructorArgs<FullContractAbi>;\n\t\t\t }\n\t\t\t| undefined,\n\t) {\n\t\t\n\t\tconst { args, abi, contractOptions, deployData} = this.calculateDeployParams();\n\n\t\tthis.args = args;\n\t\tthis.constructorAbi = abi;\n\t\tthis.contractOptions = contractOptions;\n\t\tthis.deployData = deployData;\n\t}\n\n\tpublic send(options?: PayableTxOptions): ContractDeploySend<FullContractAbi> {\n\t\tconst modifiedOptions = { ...options };\n\n\t\tconst tx = this.populateTransaction(modifiedOptions);\n\n\t\treturn this._contractMethodDeploySend(tx);\n\t}\n\n\tpublic populateTransaction(\n\t\ttxOptions?: PayableTxOptions | NonPayableTxOptions,\n\t) {\n\t\tconst modifiedContractOptions = {\n\t\t\t...this.contractOptions,\n\t\t\tfrom: this.contractOptions.from ?? this.parent.defaultAccount ?? undefined,\n\t\t};\n\n\t\t// args, abi, contractOptions, deployData\n\n\t\tconst tx = getSendTxParams({\n\t\t\tabi: this.constructorAbi,\n\t\t\tparams: this.args as unknown[],\n\t\t\toptions: { ...txOptions, dataInputFill: this.parent.contractDataInputFill },\n\t\t\tcontractOptions: modifiedContractOptions,\n\t\t});\n\n\t\t// @ts-expect-error remove unnecessary field\n\t\tif (tx.dataInputFill) {\n\t\t\t// @ts-expect-error remove unnecessary field\n\t\t\tdelete tx.dataInputFill;\n\t\t}\n\t\treturn tx;\n\t}\n\n\tprotected calculateDeployParams() {\n\t\tlet abi = this.parent.options.jsonInterface.find(\n\t\t\tj => j.type === 'constructor',\n\t\t) as AbiConstructorFragment;\n\t\tif (!abi) {\n\t\t\tabi = {\n\t\t\t\ttype: 'constructor',\n\t\t\t\tstateMutability: '',\n\t\t\t} as AbiConstructorFragment;\n\t\t}\n\n\t\tconst _input = format(\n\t\t\t{ format: 'bytes' },\n\t\t\tthis.deployOptions?.input ?? this.parent.options.input,\n\t\t\tDEFAULT_RETURN_FORMAT,\n\t\t);\n\n\t\tconst _data = format(\n\t\t\t{ format: 'bytes' },\n\t\t\tthis.deployOptions?.data ?? this.parent.options.data,\n\t\t\tDEFAULT_RETURN_FORMAT,\n\t\t);\n\n\t\tif ((!_input || _input.trim() === '0x') && (!_data || _data.trim() === '0x')) {\n\t\t\tthrow new Web3ContractError('contract creation without any data provided.');\n\t\t}\n\n\t\tconst args = this.deployOptions?.arguments ?? [];\n\n\t\tconst contractOptions: ContractOptions = {\n\t\t\t...this.parent.options,\n\t\t\tinput: _input,\n\t\t\tdata: _data,\n\t\t};\n\t\tconst deployData = _input ?? _data;\n\n\t\treturn { args, abi, contractOptions, deployData}\n\t}\n\n\tpublic async estimateGas<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\toptions?: PayableCallOptions,\n\t\treturnFormat: ReturnFormat = this.parent.defaultReturnFormat as ReturnFormat,\n\t) {\n\t\tconst modifiedOptions = { ...options };\n\t\treturn this.parent.contractMethodEstimateGas({\n\t\t\tabi: this.constructorAbi as AbiFunctionFragment,\n\t\t\tparams: this.args as unknown[],\n\t\t\treturnFormat,\n\t\t\toptions: modifiedOptions,\n\t\t\tcontractOptions: this.contractOptions,\n\t\t});\n\t}\n\n\tpublic encodeABI() {\n\t\treturn encodeMethodABI(\n\t\t\tthis.constructorAbi,\n\t\t\tthis.args as unknown[],\n\t\t\tformat(\n\t\t\t\t{ format: 'bytes' },\n\t\t\t\tthis.deployData as Bytes,\n\t\t\t\tthis.parent.defaultReturnFormat as typeof DEFAULT_RETURN_FORMAT,\n\t\t\t),\n\t\t);\n\t}\n\n\tpublic decodeData(data: HexString) {\n\t\treturn {\n\t\t\t...decodeMethodParams(this.constructorAbi, data.replace(this.deployData as string, ''), false),\n\t\t\t__method__: this.constructorAbi.type,\n\t\t};\n\t}\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tWeb3Context,\n\tWeb3EventEmitter,\n\tWeb3PromiEvent,\n\tWeb3ConfigEvent,\n\tWeb3SubscriptionManager,\n} from 'web3-core';\nimport {\n\tContractExecutionError,\n\tContractTransactionDataAndInputError,\n\tSubscriptionError,\n\tWeb3ContractError,\n} from 'web3-errors';\nimport {\n\tcreateAccessList,\n\tcall,\n\testimateGas,\n\tgetLogs,\n\tsendTransaction,\n\tdecodeEventABI,\n\tNewHeadsSubscription,\n\tALL_EVENTS,\n\tALL_EVENTS_ABI,\n\tSendTransactionEvents,\n\tTransactionMiddleware,\n} from 'web3-eth';\nimport {\n\tencodeEventSignature,\n\tencodeFunctionSignature,\n\tdecodeContractErrorData,\n\tisAbiErrorFragment,\n\tisAbiEventFragment,\n\tisAbiFunctionFragment,\n\tjsonInterfaceMethodToString,\n} from 'web3-eth-abi';\nimport {\n\tAbiErrorFragment,\n\tAbiEventFragment,\n\tAbiFragment,\n\tAbiFunctionFragment,\n\tContractAbi,\n\tContractConstructorArgs,\n\tContractEvent,\n\tContractEvents,\n\tContractMethod,\n\tContractMethodInputParameters,\n\tContractMethodOutputParameters,\n\tAddress,\n\tBlockNumberOrTag,\n\tBlockTags,\n\tEthExecutionAPI,\n\tFilter,\n\tFilterAbis,\n\tHexString,\n\tLogsInput,\n\tMutable,\n\tContractInitOptions,\n\tNonPayableCallOptions,\n\tPayableCallOptions,\n\tDataFormat,\n\tDEFAULT_RETURN_FORMAT,\n\tNumbers,\n\tWeb3ValidationErrorObject,\n\tEventLog,\n\tContractAbiWithSignature,\n\tContractOptions,\n\tTransactionReceipt,\n\tFormatType,\n\tDecodedParams,\n} from 'web3-types';\nimport {\n\tformat,\n\tisDataFormat,\n\tkeccak256,\n\ttoChecksumAddress,\n\tisContractInitOptions,\n} from 'web3-utils';\nimport {\n\tisNullish,\n\tvalidator,\n\tutils as validatorUtils,\n\tValidationSchemaInput,\n\tWeb3ValidatorError,\n} from 'web3-validator';\nimport {\n\tdecodeMethodReturn,\n\tdecodeMethodParams,\n\tencodeEventABI,\n\tencodeMethodABI,\n} from './encoding.js';\nimport { LogsSubscription } from './log_subscription.js';\nimport {\n\tContractEventOptions,\n\tNonPayableMethodObject,\n\tNonPayableTxOptions,\n\tPayableMethodObject,\n\tPayableTxOptions,\n\tWeb3ContractContext,\n} from './types.js';\nimport {\n\tgetCreateAccessListParams,\n\tgetEstimateGasParams,\n\tgetEthTxCallParams,\n\tgetSendTxParams,\n\tisWeb3ContractContext,\n} from './utils.js';\n// eslint-disable-next-line import/no-cycle\nimport { DeployerMethodClass } from './contract-deployer-method-class.js';\n\ntype ContractBoundMethod<\n\tAbi extends AbiFunctionFragment,\n\tMethod extends ContractMethod<Abi> = ContractMethod<Abi>,\n> = (\n\t...args: Method['Inputs'] extends undefined | unknown ? any[] : Method['Inputs']\n) => Method['Abi']['stateMutability'] extends 'payable' | 'pure'\n\t? PayableMethodObject<Method['Inputs'], Method['Outputs']>\n\t: NonPayableMethodObject<Method['Inputs'], Method['Outputs']>;\n\nexport type ContractOverloadedMethodInputs<AbiArr extends ReadonlyArray<unknown>> = NonNullable<\n\tAbiArr extends readonly []\n\t\t? undefined\n\t\t: AbiArr extends readonly [infer A, ...infer R]\n\t\t? A extends AbiFunctionFragment\n\t\t\t? ContractMethodInputParameters<A['inputs']> | ContractOverloadedMethodInputs<R>\n\t\t\t: undefined\n\t\t: undefined\n>;\n\nexport type ContractOverloadedMethodOutputs<AbiArr extends ReadonlyArray<unknown>> = NonNullable<\n\tAbiArr extends readonly []\n\t\t? undefined\n\t\t: AbiArr extends readonly [infer A, ...infer R]\n\t\t? A extends AbiFunctionFragment\n\t\t\t? ContractMethodOutputParameters<A['outputs']> | ContractOverloadedMethodOutputs<R>\n\t\t\t: undefined\n\t\t: undefined\n>;\n\n// To avoid circular dependency between types and encoding, declared these types here.\nexport type ContractMethodsInterface<Abi extends ContractAbi> = {\n\t[MethodAbi in FilterAbis<\n\t\tAbi,\n\t\tAbiFunctionFragment & { type: 'function' }\n\t> as MethodAbi['name']]: ContractBoundMethod<MethodAbi>;\n\t// To allow users to use method signatures\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n} & { [key: string]: ContractBoundMethod<any> };\n\nexport type ContractMethodSend = Web3PromiEvent<\n\tFormatType<TransactionReceipt, DataFormat>,\n\tSendTransactionEvents<DataFormat>\n>;\n\n/**\n * @hidden\n * The event object can be accessed from `myContract.events.myEvent`.\n *\n * \\> Remember: To subscribe to an event, your provider must have support for subscriptions.\n *\n * ```ts\n * const subscription = await myContract.events.MyEvent([options])\n * ```\n *\n * @param options - The options used to subscribe for the event\n * @returns - A Promise resolved with {@link LogsSubscription} object\n */\nexport type ContractBoundEvent = (options?: ContractEventOptions) => LogsSubscription;\n\n// To avoid circular dependency between types and encoding, declared these types here.\nexport type ContractEventsInterface<\n\tAbi extends ContractAbi,\n\tEvents extends ContractEvents<Abi> = ContractEvents<Abi>,\n> = {\n\t[Name in keyof Events | 'allEvents']: ContractBoundEvent;\n} & {\n\t[key: string]: ContractBoundEvent;\n};\n\n// To avoid circular dependency between types and encoding, declared these types here.\nexport type ContractEventEmitterInterface<Abi extends ContractAbi> = {\n\t[EventAbi in FilterAbis<\n\t\tAbi,\n\t\tAbiFunctionFragment & { type: 'event' }\n\t> as EventAbi['name']]: ContractEvent<EventAbi>['Inputs'];\n};\n\ntype EventParameters = Parameters<typeof encodeEventABI>[2];\n\nconst contractSubscriptions = {\n\tlogs: LogsSubscription,\n\tnewHeads: NewHeadsSubscription,\n\tnewBlockHeaders: NewHeadsSubscription,\n};\n\n\n\n/**\n * The `web3.eth.Contract` makes it easy to interact with smart contracts on the ethereum blockchain.\n * For using contract package, first install Web3 package using: `npm i web3` or `yarn add web3` based on your package manager, after that contracts features can be used as mentioned in following snippet.\n * ```ts\n *\n * import { Web3 } from 'web3';\n *\n * const web3 = new Web3('https://127.0.0.1:4545');\n * const abi = [...] as const; // your contract ABI\n *\n * let contract = new web3.eth.Contract(abi,'0xdAC17F958D2ee523a2206206994597C13D831ec7');\n * await contract.methods.balanceOf('0xdAC17F958D2ee523a2206206994597C13D831ec7').call();\n * ```\n * For using individual package install `web3-eth-contract` and `web3-core` packages using: `npm i web3-eth-contract web3-core` or `yarn add web3-eth-contract web3-core`. This is more efficient approach for building lightweight applications.\n * ```ts\n *\n * import { Web3Context } from 'web3-core';\n * import { Contract } from 'web3-eth-contract';\n *\n * const abi = [...] as const; // your contract ABI\n *\n * let contract = new web3.eth.Contract(\n * \tabi,\n * \t'0xdAC17F958D2ee523a2206206994597C13D831ec7'\n * \t new Web3Context('http://127.0.0.1:8545'));\n *\n * await contract.methods.balanceOf('0xdAC17F958D2ee523a2206206994597C13D831ec7').call();\n * ```\n * ## Generated Methods\n * Following methods are generated by web3.js contract object for each of contract functions by using its ABI.\n *\n * ### send\n * This is used to send a transaction to the smart contract and execute its method. Note this can alter the smart contract state.\n *\n * #### Parameters\n * options?: PayableTxOptions | NonPayableTxOptions\n *\n * #### Returns\n * [Web3PromiEvent](/api/web3/namespace/core#Web3PromiEvent) : Web3 Promi Event\n *\n * ```ts\n * // using the promise\n * myContract.methods.myMethod(123).send({from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})\n * \t.then(function(receipt){\n * \t\t// other parts of code to use receipt\n * \t});\n *\n *\n * // using the event emitter\n * myContract.methods.myMethod(123).send({from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'})\n * \t.on('transactionHash', function(hash){\n * \t\t// ...\n * \t})\n * \t.on('confirmation', function(confirmationNumber, receipt){\n * \t\t// ...\n * \t})\n * \t.on('receipt', function(receipt){\n * \t\t// ...\n * \t})\n * \t.on('error', function(error, receipt) {\n * \t\t// ...\n * \t});\n *\n * ```\n *\n * ### call\n * This will execute smart contract method in the EVM without sending any transaction. Note calling cannot alter the smart contract state.\n *\n * #### Parameters\n * options?: PayableCallOptions | NonPayableCallOptions,\n * block?: BlockNumberOrTag,\n *\n * #### Returns\n * Promise : having results of call\n *\n * ```ts\n *\n * let myContract = new web3.eth.Contract(abi, address);\n *\n * myContract.methods.myFunction().call()\n * .then(console.log);\n *\n * ```\n * ### estimateGas\n * Returns the amount of gas consumed by executing the method in EVM without creating a new transaction on the blockchain. The returned amount can be used as a gas estimate for executing the transaction publicly. The actual gas used can be different when sending the transaction later, as the state of the smart contract can be different at that time.\n *\n * #### Parameters\n * options?: PayableCallOptions,\n * returnFormat: ReturnFormat = DEFAULT_RETURN_FORMAT as ReturnFormat,\n *\n * #### Returns\n * Promise: The gas amount estimated.\n *\n * ```ts\n * const estimatedGas = await contract.methods.approve('0xdAC17F958D2ee523a2206206994597C13D831ec7', 300)\n * .estimateGas();\n *\n * ```\n *\n * ### encodeABI\n * Encodes the ABI for this method. The resulting hex string is 32-bit function signature hash plus the passed parameters in Solidity tightly packed format. This can be used to send a transaction, call a method, or pass it into another smart contract’s method as arguments. Set the data field on web3.eth.sendTransaction options as the encodeABI() result and it is the same as calling the contract method with contract.myMethod.send().\n *\n * Some use cases for encodeABI() include: preparing a smart contract transaction for a multisignature wallet, working with offline wallets and cold storage and creating transaction payload for complex smart contract proxy calls.\n *\n * #### Parameters\n * None\n *\n * #### Returns\n * String: The encoded ABI.\n *\n * ```ts\n * const encodedABI = await contract.methods.approve('0xdAC17F958D2ee523a2206206994597C13D831ec7', 300)\n * .encodeABI();\n *\n * ```\n *\n\n * ### decodeMethodData\n * Decodes the given ABI-encoded data, revealing both the method name and the parameters used in the smart contract call.\n * This function reverses the encoding process happens at the method `encodeABI`.\n * It's particularly useful for debugging and understanding the interactions with and between smart contracts.\n *\n * #### Parameters\n *\n * - `data` **HexString**: The string of ABI-encoded data that needs to be decoded. This should include the method signature and the encoded parameters.\n *\n * #### Returns\n *\n * - **Object**: This object combines both the decoded parameters and the method name in a readable format. Specifically, the returned object contains:\n * - `__method__` **String**: The name of the contract method, reconstructed from the ABI.\n * - `__length__` **Number**: The number of parameters decoded.\n * - Additional properties representing each parameter by name, as well as their position and values.\n *\n * #### Example\n *\n * Given an ABI-encoded string from a transaction, you can decode this data to identify the method called and the parameters passed.\n * Here's a simplified example:\n *\n *\n * ```typescript\n * const GreeterAbi = [\n * \t{\n * \t\tinputs: [\n * \t\t\t{\n * \t\t\t\tinternalType: 'string',\n * \t\t\t\tname: '_greeting',\n * \t\t\t\ttype: 'string',\n * \t\t\t},\n * \t\t],\n * \t\tname: 'setGreeting',\n * \t\toutputs: [],\n * \t\ttype: 'function',\n * \t},\n * ];\n * const contract = new Contract(GreeterAbi); // Initialize with your contract's ABI\n *\n * // The ABI-encoded data string for \"setGreeting('Hello World')\"\n * const encodedData =\n * \t'0xa41368620000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b48656c6c6f20576f726c64000000000000000000000000000000000000000000';\n *\n * try {\n * \tconst decoded = contract.decodeMethodData(encodedData);\n * \tconsole.log(decoded.__method__); // Outputs: \"setGreeting(string)\"\n * \tconsole.log(decoded); // Outputs the detailed parameter data\n * \t// This tells that the method called was `setGreeting` with a single string parameter \"Hello World\":\n * \t// {\n * \t// __method__: 'setGreeting(string)',\n * \t// __length__: 1,\n * \t// '0': 'Hello World',\n * \t// _greeting: 'Hello World'\n * \t// }\n * } catch (error) {\n * \tconsole.error(error);\n * }\n * ```\n *\n\n * ### createAccessList\n * This will create an access list a method execution will access when executed in the EVM.\n * Note: You must specify a from address and gas if it’s not specified in options when instantiating parent contract object.\n *\n * #### Parameters\n * options?: PayableCallOptions | NonPayableCallOptions,\n * block?: BlockNumberOrTag,\n *\n * #### Returns\n * Promise: The generated access list for transaction.\n *\n * ```ts\n * const accessList = await contract.methods.approve('0xbEe634C21c16F05B03B704BaE071536121e6cFeA', 300)\n * .createAccessList({\n * from: \"0x9992695e1053bb737d3cfae4743dcfc4b94f203d\"\n * });\n * ```\n *\n */\nexport class Contract<Abi extends ContractAbi>\n\textends Web3Context<EthExecutionAPI, typeof contractSubscriptions>\n\timplements Web3EventEmitter<ContractEventEmitterInterface<Abi>>\n{\n\t/**\n\t * The options `object` for the contract instance. `from`, `gas` and `gasPrice` are used as fallback values when sending transactions.\n\t *\n\t * ```ts\n\t * myContract.options;\n\t * > {\n\t * address: '0x1234567890123456789012345678901234567891',\n\t * jsonInterface: [...],\n\t * from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',\n\t * gasPrice: '10000000000000',\n\t * gas: 1000000\n\t * }\n\t *\n\t * myContract.options.from = '0x1234567890123456789012345678901234567891'; // default from address\n\t * myContract.options.gasPrice = '20000000000000'; // default gas price in wei\n\t * myContract.options.gas = 5000000; // provide as fallback always 5M gas\n\t * ```\n\t */\n\n\tpublic readonly options: ContractOptions;\n\tprivate transactionMiddleware?: TransactionMiddleware;\n\t/**\n\t * Set to true if you want contracts' defaults to sync with global defaults.\n\t */\n\tpublic syncWithContext = false;\n\n\tprivate _errorsInterface!: AbiErrorFragment[];\n\tprivate _jsonInterface!: ContractAbiWithSignature;\n\tprivate _address?: Address;\n\tprivate _functions: Record<\n\t\tstring,\n\t\t{\n\t\t\tsignature: string;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tmethod: ContractBoundMethod<any>;\n\t\t}\n\t> = {};\n\tprivate readonly _overloadedMethodAbis: Map<string, AbiFunctionFragment[]>;\n\tprivate _methods!: ContractMethodsInterface<Abi>;\n\tprivate _events!: ContractEventsInterface<Abi>;\n\t/**\n\t * Set property to `data`, `input`, or `both` to change the property of the contract being sent to the\n\t * RPC provider when using contract methods.\n\t * Default is `input`\n\t */\n\n\tprivate context?: Web3Context;\n\t/**\n\t * Creates a new contract instance with all its methods and events defined in its ABI provided.\n\t *\n\t * ```ts\n\t * new web3.eth.Contract(jsonInterface[, address][, options])\n\t * ```\n\t *\n\t * @param jsonInterface - The JSON interface for the contract to instantiate.\n\t * @param address - The address of the smart contract to call.\n\t * @param options - The options of the contract. Some are used as fallbacks for calls and transactions.\n\t * @param context - The context of the contract used for customizing the behavior of the contract.\n\t * @returns - The contract instance with all its methods and events.\n\t *\n\t * ```ts title=\"Example\"\n\t * var myContract = new web3.eth.Contract([...], '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe', {\n\t * from: '0x1234567890123456789012345678901234567891', // default from address\n\t * gasPrice: '20000000000' // default gas price in wei, 20 gwei in this case\n\t * });\n\t * ```\n\t *\n\t * To use the type safe interface for these contracts you have to include the ABI definitions in your TypeScript project and then declare these as `const`.\n\t *\n\t * ```ts title=\"Example\"\n\t * const myContractAbi = [....] as const; // ABI definitions\n\t * const myContract = new web3.eth.Contract(myContractAbi, '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe');\n\t * ```\n\t */\n\tpublic constructor(\n\t\tjsonInterface: Abi,\n\t\tcontext?: Web3ContractContext | Web3Context,\n\t\treturnFormat?: DataFormat,\n\t);\n\tpublic constructor(\n\t\tjsonInterface: Abi,\n\t\taddress?: Address,\n\t\tcontextOrReturnFormat?: Web3ContractContext | Web3Context | DataFormat,\n\t\treturnFormat?: DataFormat,\n\t);\n\tpublic constructor(\n\t\tjsonInterface: Abi,\n\t\toptions?: ContractInitOptions,\n\t\tcontextOrReturnFormat?: Web3ContractContext | Web3Context | DataFormat,\n\t\treturnFormat?: DataFormat,\n\t);\n\tpublic constructor(\n\t\tjsonInterface: Abi,\n\t\taddress: Address | undefined,\n\t\toptions: ContractInitOptions,\n\t\tcontextOrReturnFormat?: Web3ContractContext | Web3Context | DataFormat,\n\t\treturnFormat?: DataFormat,\n\t);\n\tpublic constructor(\n\t\tjsonInterface: Abi,\n\t\taddressOrOptionsOrContext?: Address | ContractInitOptions | Web3ContractContext | Web3Context,\n\t\toptionsOrContextOrReturnFormat?:\n\t\t\t| ContractInitOptions\n\t\t\t| Web3ContractContext\n\t\t\t| Web3Context\n\t\t\t| DataFormat,\n\t\tcontextOrReturnFormat?: Web3ContractContext | Web3Context | DataFormat,\n\t\treturnFormat?: DataFormat,\n\t) {\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tconst options = isContractInitOptions(addressOrOptionsOrContext)\n\t\t\t? addressOrOptionsOrContext\n\t\t\t: isContractInitOptions(optionsOrContextOrReturnFormat)\n\t\t\t? optionsOrContextOrReturnFormat\n\t\t\t: undefined;\n\n\t\tlet contractContext;\n\t\tif (isWeb3ContractContext(addressOrOptionsOrContext)) {\n\t\t\tcontractContext = addressOrOptionsOrContext;\n\t\t} else if (isWeb3ContractContext(optionsOrContextOrReturnFormat)) {\n\t\t\tcontractContext = optionsOrContextOrReturnFormat;\n\t\t} else {\n\t\t\tcontractContext = contextOrReturnFormat;\n\t\t}\n\n\t\tlet provider;\n\t\tif (typeof addressOrOptionsOrContext === 'object' && 'provider' in addressOrOptionsOrContext) {\n\t\t\tprovider = addressOrOptionsOrContext.provider;\n\t\t} else if (\n\t\t\ttypeof optionsOrContextOrReturnFormat === 'object' &&\n\t\t\t'provider' in optionsOrContextOrReturnFormat\n\t\t) {\n\t\t\tprovider = optionsOrContextOrReturnFormat.provider;\n\t\t} else if (typeof contextOrReturnFormat === 'object' && 'provider' in contextOrReturnFormat) {\n\t\t\tprovider = contextOrReturnFormat.provider;\n\t\t} else {\n\t\t\tprovider = Contract.givenProvider;\n\t\t}\n\n\t\tsuper({\n\t\t\t...contractContext,\n\t\t\tprovider,\n\t\t\tregisteredSubscriptions: contractSubscriptions,\n\t\t});\n\n\t\t// Init protected properties\n\t\tif ((contractContext as Web3Context)?.wallet) {\n\t\t\tthis._wallet = (contractContext as Web3Context).wallet;\n\t\t}\n\t\tif ((contractContext as Web3Context)?.accountProvider) {\n\t\t\tthis._accountProvider = (contractContext as Web3Context).accountProvider;\n\t\t}\n\n\t\tif (\n\t\t\t!isNullish(options) &&\n\t\t\t!isNullish(options.data) &&\n\t\t\t!isNullish(options.input) &&\n\t\t\tthis.config.contractDataInputFill !== 'both'\n\t\t)\n\t\t\tthrow new ContractTransactionDataAndInputError({\n\t\t\t\tdata: options.data as HexString,\n\t\t\t\tinput: options.input as HexString,\n\t\t\t});\n\t\tthis._overloadedMethodAbis = new Map<string, AbiFunctionFragment[]>();\n\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tconst returnDataFormat = isDataFormat(contextOrReturnFormat)\n\t\t\t? contextOrReturnFormat\n\t\t\t: isDataFormat(optionsOrContextOrReturnFormat)\n\t\t\t? optionsOrContextOrReturnFormat\n\t\t\t: returnFormat ?? this.defaultReturnFormat;\n\t\tconst address =\n\t\t\ttypeof addressOrOptionsOrContext === 'string' ? addressOrOptionsOrContext : undefined;\n\t\tthis.config.contractDataInputFill =\n\t\t\t(options as ContractInitOptions)?.dataInputFill ?? this.config.contractDataInputFill;\n\t\tthis._parseAndSetJsonInterface(jsonInterface, returnDataFormat);\n\n\t\tif (this.defaultReturnFormat !== returnDataFormat) {\n\t\t\tthis.defaultReturnFormat = returnDataFormat;\n\t\t}\n\n\t\tif (!isNullish(address)) {\n\t\t\tthis._parseAndSetAddress(address, returnDataFormat);\n\t\t}\n\n\t\tthis.options = {\n\t\t\taddress,\n\t\t\tjsonInterface: this._jsonInterface,\n\t\t\tgas: options?.gas ?? options?.gasLimit,\n\t\t\tgasPrice: options?.gasPrice,\n\t\t\tfrom: options?.from,\n\t\t\tinput: options?.input,\n\t\t\tdata: options?.data,\n\t\t};\n\n\t\tthis.syncWithContext = (options as ContractInitOptions)?.syncWithContext ?? false;\n\t\tif (contractContext instanceof Web3Context) {\n\t\t\tthis.subscribeToContextEvents(contractContext);\n\t\t}\n\t\tObject.defineProperty(this.options, 'address', {\n\t\t\tset: (value: Address) => this._parseAndSetAddress(value, returnDataFormat),\n\t\t\tget: () => this._address,\n\t\t});\n\n\t\tObject.defineProperty(this.options, 'jsonInterface', {\n\t\t\tset: (value: ContractAbi) => this._parseAndSetJsonInterface(value, returnDataFormat),\n\t\t\tget: () => this._jsonInterface,\n\t\t});\n\n\t\tif (contractContext instanceof Web3Context) {\n\t\t\tcontractContext.on(Web3ConfigEvent.CONFIG_CHANGE, event => {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\tthis.setConfig({ [event.name]: event.newValue });\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic setTransactionMiddleware(transactionMiddleware: TransactionMiddleware) {\n\t\tthis.transactionMiddleware = transactionMiddleware;\n\t}\n\n\tpublic getTransactionMiddleware() {\n\t\treturn this.transactionMiddleware;\n\t}\n\n\t/**\n\t * Subscribe to an event.\n\t *\n\t * ```ts\n\t * await myContract.events.MyEvent([options])\n\t * ```\n\t *\n\t * There is a special event `allEvents` that can be used to subscribe all events.\n\t *\n\t * ```ts\n\t * await myContract.events.allEvents([options])\n\t * ```\n\t *\n\t * @returns - When individual event is accessed will returns {@link ContractBoundEvent} object\n\t */\n\tpublic get events() {\n\t\treturn this._events;\n\t}\n\n\t/**\n\t * Creates a transaction object for that method, which then can be `called`, `send`, `estimated`, `createAccessList` , or `ABI encoded`.\n\t *\n\t * The methods of this smart contract are available through:\n\t *\n\t * The name: `myContract.methods.myMethod(123)`\n\t * The name with parameters: `myContract.methods['myMethod(uint256)'](123)`\n\t * The signature `myContract.methods['0x58cf5f10'](123)`\n\t *\n\t * This allows calling functions with same name but different parameters from the JavaScript contract object.\n\t *\n\t * \\> The method signature does not provide a type safe interface, so we recommend to use method `name` instead.\n\t *\n\t * ```ts\n\t * // calling a method\n\t * const result = await myContract.methods.myMethod(123).call({from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});\n\t *\n\t * // or sending and using a promise\n\t * const receipt = await myContract.methods.myMethod(123).send({from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});\n\t *\n\t * // or sending and using the events\n\t * const sendObject = myContract.methods.myMethod(123).send({from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'});\n\t * sendObject.on('transactionHash', function(hash){\n\t * ...\n\t * });\n\t * sendObject.on('receipt', function(receipt){\n\t * ...\n\t * });\n\t * sendObject.on('confirmation', function(confirmationNumber, receipt){\n\t * ...\n\t * });\n\t * sendObject.on('error', function(error, receipt) {\n\t * ...\n\t * });\n\t * ```\n\t *\n\t * @returns - Either returns {@link PayableMethodObject} or {@link NonPayableMethodObject} based on the definitions of the ABI of that contract.\n\t */\n\tpublic get methods() {\n\t\treturn this._methods;\n\t}\n\n\t/**\n\t * Clones the current contract instance. This doesn't deploy contract on blockchain and only creates a local clone.\n\t *\n\t * @returns - The new contract instance.\n\t *\n\t * ```ts\n\t * const contract1 = new web3.eth.Contract(abi, address, {gasPrice: '12345678', from: fromAddress});\n\t *\n\t * const contract2 = contract1.clone();\n\t * contract2.options.address = '0xdAC17F958D2ee523a2206206994597C13D831ec7';\n\t *\n\t * (contract1.options.address !== contract2.options.address);\n\t * > true\n\t * ```\n\t */\n\tpublic clone() {\n\t\tlet newContract: Contract<any>;\n\t\tif (this.options.address) {\n\t\t\tnewContract = new Contract<Abi>(\n\t\t\t\t[...this._jsonInterface, ...this._errorsInterface] as unknown as Abi,\n\t\t\t\tthis.options.address,\n\t\t\t\t{\n\t\t\t\t\tgas: this.options.gas,\n\t\t\t\t\tgasPrice: this.options.gasPrice,\n\t\t\t\t\tfrom: this.options.from,\n\t\t\t\t\tinput: this.options.input,\n\t\t\t\t\tdata: this.options.data,\n\t\t\t\t\tprovider: this.currentProvider,\n\t\t\t\t\tsyncWithContext: this.syncWithContext,\n\t\t\t\t\tdataInputFill: this.config.contractDataInputFill,\n\t\t\t\t},\n\t\t\t\tthis.getContextObject(),\n\t\t\t);\n\t\t} else {\n\t\t\tnewContract = new Contract<Abi>(\n\t\t\t\t[...this._jsonInterface, ...this._errorsInterface] as unknown as Abi,\n\t\t\t\t{\n\t\t\t\t\tgas: this.options.gas,\n\t\t\t\t\tgasPrice: this.options.gasPrice,\n\t\t\t\t\tfrom: this.options.from,\n\t\t\t\t\tinput: this.options.input,\n\t\t\t\t\tdata: this.options.data,\n\t\t\t\t\tprovider: this.currentProvider,\n\t\t\t\t\tsyncWithContext: this.syncWithContext,\n\t\t\t\t\tdataInputFill: this.config.contractDataInputFill,\n\t\t\t\t},\n\t\t\t\tthis.getContextObject(),\n\t\t\t);\n\t\t}\n\t\tif (this.context) newContract.subscribeToContextEvents(this.context);\n\n\t\treturn newContract;\n\t}\n\n\t/**\n\t * Call this function to deploy the contract to the blockchain. After successful deployment the promise will resolve with a new contract instance.\n\t *\n\t * ```ts\n\t * myContract.deploy({\n\t * input: '0x12345...', // data keyword can be used, too.\n\t * arguments: [123, 'My String']\n\t * })\n\t * .send({\n\t * from: '0x1234567890123456789012345678901234567891',\n\t * gas: 1500000,\n\t * gasPrice: '30000000000000'\n\t * }, function(error, transactionHash){ ... })\n\t * .on('error', function(error){ ... })\n\t * .on('transactionHash', function(transactionHash){ ... })\n\t * .on('receipt', function(receipt){\n\t * console.log(receipt.contractAddress) // contains the new contract address\n\t * })\n\t * .on('confirmation', function(confirmationNumber, receipt){ ... })\n\t * .then(function(newContractInstance){\n\t * console.log(newContractInstance.options.address) // instance with the new contract address\n\t * });\n\t *\n\t *\n\t * // When the data is already set as an option to the contract itself\n\t * myContract.options.data = '0x12345...';\n\t *\n\t * myContract.deploy({\n\t * arguments: [123, 'My String']\n\t * })\n\t * .send({\n\t * from: '0x1234567890123456789012345678901234567891',\n\t * gas: 1500000,\n\t * gasPrice: '30000000000000'\n\t * })\n\t * .then(function(newContractInstance){\n\t * console.log(newContractInstance.options.address) // instance with the new contract address\n\t * });\n\t *\n\t *\n\t * // Simply encoding\n\t * myContract.deploy({\n\t * input: '0x12345...',\n\t * arguments: [123, 'My String']\n\t * })\n\t * .encodeABI();\n\t * > '0x12345...0000012345678765432'\n\t *\n\t *\n\t * // decoding\n\t * myContract.deploy({\n\t * input: '0x12345...',\n\t * // arguments: [123, 'My Greeting'] if you just need to decode the data, you can skip the arguments\n\t * })\n\t * .decodeData('0x12345...0000012345678765432');\n\t * > {\n\t * __method__: 'constructor',\n\t * __length__: 2,\n\t * '0': '123',\n\t * _id: '123',\n\t * '1': 'My Greeting',\n\t * _greeting: 'My Greeting',\n\t * }\n\t *\n\t *\n\t * // Gas estimation\n\t * myContract.deploy({\n\t * input: '0x12345...',\n\t * arguments: [123, 'My String']\n\t * })\n\t * .estimateGas(function(err, gas){\n\t * console.log(gas);\n\t * });\n\t * ```\n\t *\n\t * @returns - The transaction object\n\t */\n\tpublic deploy(deployOptions?: {\n\t\t/**\n\t\t * The byte code of the contract.\n\t\t */\n\t\tdata?: HexString;\n\t\tinput?: HexString;\n\t\t/**\n\t\t * The arguments which get passed to the constructor on deployment.\n\t\t */\n\t\targuments?: ContractConstructorArgs<Abi>;\n\t}): DeployerMethodClass<Abi> {\n\t\treturn new DeployerMethodClass(this, deployOptions);\n\t}\n\n\t/**\n\t * Gets past events for this contract.\n\t *\n\t * ```ts\n\t * const events = await myContract.getPastEvents('MyEvent', {\n\t * filter: {myIndexedParam: [20,23], myOtherIndexedParam: '0x123456789...'}, // Using an array means OR: e.g. 20 or 23\n\t * fromBlock: 0,\n\t * toBlock: 'latest'\n\t * });\n\t *\n\t * > [{\n\t * returnValues: {\n\t * myIndexedParam: 20,\n\t * myOtherIndexedParam: '0x123456789...',\n\t * myNonIndexParam: 'My String'\n\t * },\n\t * raw: {\n\t * data: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n\t * topics: ['0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7', '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385']\n\t * },\n\t * event: 'MyEvent',\n\t * signature: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',\n\t * logIndex: 0,\n\t * transactionIndex: 0,\n\t * transactionHash: '0x7f9fade1c0d57a7af66ab4ead79fade1c0d57a7af66ab4ead7c2c2eb7b11a91385',\n\t * blockHash: '0xfd43ade1c09fade1c0d57a7af66ab4ead7c2c2eb7b11a91ffdd57a7af66ab4ead7',\n\t * blockNumber: 1234,\n\t * address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'\n\t * },{\n\t * ...\n\t * }]\n\t * ```\n\t *\n\t * @param eventName - The name of the event in the contract, or `allEvents` to get all events.\n\t * @param filter - The filter options used to get events.\n\t * @param returnFormat - Return format\n\t * @returns - An array with the past event `Objects`, matching the given event name and filter.\n\t */\n\tpublic async getPastEvents<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\treturnFormat?: ReturnFormat,\n\t): Promise<(string | EventLog)[]>;\n\tpublic async getPastEvents<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\teventName: keyof ContractEvents<Abi> | 'allEvents' | 'ALLEVENTS',\n\t\treturnFormat?: ReturnFormat,\n\t): Promise<(string | EventLog)[]>;\n\tpublic async getPastEvents<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tfilter: Omit<Filter, 'address'>,\n\t\treturnFormat?: ReturnFormat,\n\t): Promise<(string | EventLog)[]>;\n\tpublic async getPastEvents<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\teventName: keyof ContractEvents<Abi> | 'allEvents' | 'ALLEVENTS',\n\t\tfilter: Omit<Filter, 'address'>,\n\t\treturnFormat?: ReturnFormat,\n\t): Promise<(string | EventLog)[]>;\n\tpublic async getPastEvents<ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\tparam1?:\n\t\t\t| keyof ContractEvents<Abi>\n\t\t\t| 'allEvents'\n\t\t\t| 'ALLEVENTS'\n\t\t\t| Omit<Filter, 'address'>\n\t\t\t| ReturnFormat,\n\t\tparam2?: Omit<Filter, 'address'> | ReturnFormat,\n\t\tparam3?: ReturnFormat,\n\t): Promise<(string | EventLog)[]> {\n\t\tconst eventName = typeof param1 === 'string' ? param1 : ALL_EVENTS;\n\n\t\tconst options =\n\t\t\t// eslint-disable-next-line no-nested-ternary\n\t\t\ttypeof param1 !== 'string' && !isDataFormat(param1)\n\t\t\t\t? param1\n\t\t\t\t: !isDataFormat(param2)\n\t\t\t\t? param2\n\t\t\t\t: {};\n\n\t\t// eslint-disable-next-line no-nested-ternary\n\t\tconst returnFormat = isDataFormat(param1)\n\t\t\t? param1\n\t\t\t: isDataFormat(param2)\n\t\t\t? param2\n\t\t\t: param3 ?? this.defaultReturnFormat;\n\n\t\tconst abi =\n\t\t\teventName === 'allEvents' || eventName === ALL_EVENTS\n\t\t\t\t? ALL_EVENTS_ABI\n\t\t\t\t: (this._jsonInterface.find(\n\t\t\t\t\t\tj => 'name' in j && j.name === eventName,\n\t\t\t\t ) as AbiEventFragment & { signature: string });\n\n\t\tif (!abi) {\n\t\t\tthrow new Web3ContractError(`Event ${eventName} not found.`);\n\t\t}\n\n\t\tconst { fromBlock, toBlock, topics, address } = encodeEventABI(\n\t\t\tthis.options,\n\t\t\tabi,\n\t\t\toptions ?? {},\n\t\t);\n\n\t\tconst logs = await getLogs(this, { fromBlock, toBlock, topics, address }, returnFormat);\n\t\tconst decodedLogs = logs\n\t\t\t? logs.map(log =>\n\t\t\t\t\ttypeof log === 'string'\n\t\t\t\t\t\t? log\n\t\t\t\t\t\t: decodeEventABI(abi, log as LogsInput, this._jsonInterface, returnFormat),\n\t\t\t )\n\t\t\t: [];\n\n\t\tconst filter = options?.filter ?? {};\n\t\tconst filterKeys = Object.keys(filter);\n\n\t\tif (filterKeys.length > 0) {\n\t\t\treturn decodedLogs.filter(log => {\n\t\t\t\tif (typeof log === 'string') return true;\n\n\t\t\t\treturn filterKeys.every((key: string) => {\n\t\t\t\t\tif (Array.isArray(filter[key])) {\n\t\t\t\t\t\treturn (filter[key] as Numbers[]).some(\n\t\t\t\t\t\t\t(v: Numbers) =>\n\t\t\t\t\t\t\t\tString(log.returnValues[key]).toUpperCase() === String(v).toUpperCase(),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst inputAbi = abi.inputs?.filter(input => input.name === key)[0];\n\t\t\t\t\tif (inputAbi?.indexed && inputAbi.type === 'string') {\n\t\t\t\t\t\tconst hashedIndexedString = keccak256(filter[key] as string);\n\t\t\t\t\t\tif (hashedIndexedString === String(log.returnValues[key])) return true;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn String(log.returnValues[key]).toUpperCase() === String(filter[key]).toUpperCase();\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\treturn decodedLogs;\n\t}\n\n\tprivate _parseAndSetAddress(\n\t\tvalue?: Address,\n\t\treturnFormat: DataFormat = this.defaultReturnFormat,\n\t) {\n\t\tthis._address = value\n\t\t\t? toChecksumAddress(format({ format: 'address' }, value, returnFormat))\n\t\t\t: value;\n\t}\n\n\tpublic decodeMethodData(data: HexString): DecodedParams & { __method__: string } {\n\t\tconst methodSignature = data.slice(0, 10);\n\t\tconst functionsAbis = this._jsonInterface.filter(j => j.type !== 'error');\n\n\t\tconst abi = functionsAbis.find(\n\t\t\ta => methodSignature === encodeFunctionSignature(jsonInterfaceMethodToString(a)),\n\t\t);\n\t\tif (!abi) {\n\t\t\tthrow new Web3ContractError(\n\t\t\t\t`The ABI for the provided method signature ${methodSignature} was not found.`,\n\t\t\t);\n\t\t}\n\t\treturn { ...decodeMethodParams(abi, data), __method__: jsonInterfaceMethodToString(abi) };\n\t}\n\n\tprivate _parseAndSetJsonInterface(\n\t\tabis: ContractAbi,\n\t\treturnFormat: DataFormat = this.defaultReturnFormat,\n\t) {\n\t\tthis._functions = {};\n\t\tthis._methods = {} as ContractMethodsInterface<Abi>;\n\t\tthis._events = {} as ContractEventsInterface<Abi>;\n\n\t\tlet result: ContractAbi = [];\n\n\t\tconst functionsAbi = abis.filter(abi => abi.type !== 'error');\n\t\tconst errorsAbi = abis.filter(abi => isAbiErrorFragment(abi)) as unknown as AbiErrorFragment[];\n\n\t\tfor (const a of functionsAbi) {\n\t\t\tconst abi: Mutable<AbiFragment & { signature: HexString }> = {\n\t\t\t\t...a,\n\t\t\t\tsignature: '',\n\t\t\t};\n\n\t\t\tif (isAbiFunctionFragment(abi)) {\n\t\t\t\tconst methodName = jsonInterfaceMethodToString(abi);\n\t\t\t\tconst methodSignature = encodeFunctionSignature(methodName);\n\t\t\t\tabi.methodNameWithInputs = methodName;\n\t\t\t\tabi.signature = methodSignature;\n\n\t\t\t\t// make constant and payable backwards compatible\n\t\t\t\tabi.constant =\n\t\t\t\t\tabi.stateMutability === 'view' ?? abi.stateMutability === 'pure' ?? abi.constant;\n\n\t\t\t\tabi.payable = abi.stateMutability === 'payable' ?? abi.payable;\n\t\t\t\tthis._overloadedMethodAbis.set(abi.name, [\n\t\t\t\t\t...(this._overloadedMethodAbis.get(abi.name) ?? []),\n\t\t\t\t\tabi,\n\t\t\t\t]);\n\t\t\t\tconst abiFragment = this._overloadedMethodAbis.get(abi.name) ?? [];\n\t\t\t\tconst contractMethod = this._createContractMethod<typeof abiFragment, AbiErrorFragment>(\n\t\t\t\t\tabiFragment,\n\t\t\t\t\terrorsAbi,\n\t\t\t\t);\n\n\t\t\t\tconst exactContractMethod = this._createContractMethod<\n\t\t\t\t\ttypeof abiFragment,\n\t\t\t\t\tAbiErrorFragment\n\t\t\t\t>(abiFragment, errorsAbi, true);\n\n\t\t\t\tthis._functions[methodName] = {\n\t\t\t\t\tsignature: methodSignature,\n\t\t\t\t\tmethod: exactContractMethod,\n\t\t\t\t};\n\n\t\t\t\t// We don't know a particular type of the Abi method so can't type check\n\t\t\t\tthis._methods[abi.name as keyof ContractMethodsInterface<Abi>] = contractMethod as never;\n\n\t\t\t\t// We don't know a particular type of the Abi method so can't type check\n\t\t\t\tthis._methods[methodName as keyof ContractMethodsInterface<Abi>] =\n\t\t\t\t\texactContractMethod as never;\n\n\t\t\t\t// We don't know a particular type of the Abi method so can't type check\n\t\t\t\tthis._methods[methodSignature as keyof ContractMethodsInterface<Abi>] =\n\t\t\t\t\texactContractMethod as never;\n\t\t\t} else if (isAbiEventFragment(abi)) {\n\t\t\t\tconst eventName = jsonInterfaceMethodToString(abi);\n\t\t\t\tconst eventSignature = encodeEventSignature(eventName);\n\t\t\t\tconst event = this._createContractEvent(abi, returnFormat);\n\t\t\t\tabi.signature = eventSignature;\n\n\t\t\t\tif (!(eventName in this._events) || abi.name === 'bound') {\n\t\t\t\t\t// It's a private type and we don't want to expose it and no need to check\n\t\t\t\t\tthis._events[eventName as keyof ContractEventsInterface<Abi>] = event as never;\n\t\t\t\t}\n\t\t\t\t// It's a private type and we don't want to expose it and no need to check\n\t\t\t\tthis._events[abi.name as keyof ContractEventsInterface<Abi>] = event as never;\n\t\t\t\t// It's a private type and we don't want to expose it and no need to check\n\t\t\t\tthis._events[eventSignature as keyof ContractEventsInterface<Abi>] = event as never;\n\t\t\t}\n\n\t\t\tresult = [...result, abi];\n\t\t}\n\n\t\tthis._events.allEvents = this._createContractEvent(ALL_EVENTS_ABI, returnFormat);\n\t\tthis._jsonInterface = [...result] as unknown as ContractAbiWithSignature;\n\t\tthis._errorsInterface = errorsAbi;\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprivate _getAbiParams(abi: AbiFunctionFragment, params: unknown[]): Array<unknown> {\n\t\ttry {\n\t\t\treturn validatorUtils.transformJsonDataToAbiFormat(abi.inputs ?? [], params);\n\t\t} catch (error) {\n\t\t\tthrow new Web3ContractError(\n\t\t\t\t`Invalid parameters for method ${abi.name}: ${(error as Error).message}`,\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate _createContractMethod<T extends AbiFunctionFragment[], E extends AbiErrorFragment>(\n\t\tabiArr: T,\n\t\terrorsAbis: E[],\n\t\texact = false, // when true, it will only match the exact method signature\n\t): ContractBoundMethod<T[0]> {\n\t\tconst abi = abiArr[abiArr.length - 1];\n\t\treturn (...params: unknown[]) => {\n\t\t\tlet abiParams!: Array<unknown>;\n\t\t\tconst abis =\n\t\t\t\t(exact\n\t\t\t\t\t? this._overloadedMethodAbis\n\t\t\t\t\t\t\t.get(abi.name)\n\t\t\t\t\t\t\t?.filter(_abi => _abi.signature === abi.signature)\n\t\t\t\t\t: this._overloadedMethodAbis.get(abi.name)) ?? [];\n\t\t\tlet methodAbi: AbiFunctionFragment = abis[0];\n\t\t\tconst internalErrorsAbis = errorsAbis;\n\n\t\t\tconst arrayOfAbis: AbiFunctionFragment[] = abis.filter(\n\t\t\t\t_abi => (_abi.inputs ?? []).length === params.length,\n\t\t\t);\n\n\t\t\tif (abis.length === 1 || arrayOfAbis.length === 0) {\n\t\t\t\tabiParams = this._getAbiParams(methodAbi, params);\n\t\t\t\tvalidator.validate(abi.inputs ?? [], abiParams);\n\t\t\t} else {\n\t\t\t\tconst errors: Web3ValidationErrorObject[] = [];\n\n\t\t\t\t// all the methods that have is valid for the given inputs\n\t\t\t\tconst applicableMethodAbi: AbiFunctionFragment[] = [];\n\t\t\t\tfor (const _abi of arrayOfAbis) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tabiParams = this._getAbiParams(_abi, params);\n\t\t\t\t\t\tvalidator.validate(_abi.inputs as unknown as ValidationSchemaInput, abiParams);\n\t\t\t\t\t\tapplicableMethodAbi.push(_abi);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\terrors.push(e as Web3ValidationErrorObject);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (applicableMethodAbi.length === 1) {\n\t\t\t\t\t[methodAbi] = applicableMethodAbi; // take the first item that is the only item in the array\n\t\t\t\t} else if (applicableMethodAbi.length > 1) {\n\t\t\t\t\t[methodAbi] = applicableMethodAbi; // take the first item in the array\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Multiple methods found that is compatible with the given inputs.\\n\\tFound ${\n\t\t\t\t\t\t\tapplicableMethodAbi.length\n\t\t\t\t\t\t} compatible methods: ${JSON.stringify(\n\t\t\t\t\t\t\tapplicableMethodAbi.map(\n\t\t\t\t\t\t\t\tm =>\n\t\t\t\t\t\t\t\t\t`${(m as { methodNameWithInputs: string }).methodNameWithInputs} (signature: ${\n\t\t\t\t\t\t\t\t\t\t(m as { signature: string }).signature\n\t\t\t\t\t\t\t\t\t})`,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t)} \\n\\tThe first one will be used: ${\n\t\t\t\t\t\t\t(methodAbi as { methodNameWithInputs: string }).methodNameWithInputs\n\t\t\t\t\t\t}`,\n\t\t\t\t\t);\n\t\t\t\t\t// TODO: 5.x Should throw a new error with the list of methods found.\n\t\t\t\t\t// Related issue: https://github.com/web3/web3.js/issues/6923\n\t\t\t\t\t// This is in order to provide an error message when there is more than one method found that fits the inputs.\n\t\t\t\t\t// To do that, replace the pervious line of code with something like the following line:\n\t\t\t\t\t// throw new Web3ValidatorError({ message: 'Multiple methods found', ... list of applicable methods }));\n\t\t\t\t}\n\t\t\t\tif (errors.length === arrayOfAbis.length) {\n\t\t\t\t\tthrow new Web3ValidatorError(errors);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst methods = {\n\t\t\t\targuments: abiParams,\n\n\t\t\t\tcall: async (\n\t\t\t\t\toptions?: PayableCallOptions | NonPayableCallOptions,\n\t\t\t\t\tblock?: BlockNumberOrTag,\n\t\t\t\t) => this._contractMethodCall(methodAbi, abiParams, internalErrorsAbis, options, block),\n\n\t\t\t\tsend: (options?: PayableTxOptions | NonPayableTxOptions): ContractMethodSend =>\n\t\t\t\t\tthis._contractMethodSend(methodAbi, abiParams, internalErrorsAbis, options),\n\t\t\t\tpopulateTransaction: (\n\t\t\t\t\toptions?: PayableTxOptions | NonPayableTxOptions,\n\t\t\t\t\tcontractOptions?: ContractOptions,\n\t\t\t\t) => {\n\t\t\t\t\tlet modifiedContractOptions = contractOptions ?? this.options;\n\t\t\t\t\tmodifiedContractOptions = {\n\t\t\t\t\t\t...modifiedContractOptions,\n\t\t\t\t\t\tinput: undefined,\n\t\t\t\t\t\tfrom: modifiedContractOptions?.from ?? this.defaultAccount ?? undefined,\n\t\t\t\t\t};\n\t\t\t\t\tconst tx = getSendTxParams({\n\t\t\t\t\t\tabi,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\toptions: { ...options, dataInputFill: this.config.contractDataInputFill },\n\t\t\t\t\t\tcontractOptions: modifiedContractOptions,\n\t\t\t\t\t});\n\t\t\t\t\t// @ts-expect-error remove unnecessary field\n\t\t\t\t\tif (tx.dataInputFill) {\n\t\t\t\t\t\t// @ts-expect-error remove unnecessary field\n\t\t\t\t\t\tdelete tx.dataInputFill;\n\t\t\t\t\t}\n\t\t\t\t\treturn tx;\n\t\t\t\t},\n\t\t\t\testimateGas: async <ReturnFormat extends DataFormat = typeof DEFAULT_RETURN_FORMAT>(\n\t\t\t\t\toptions?: PayableCallOptions | NonPayableCallOptions,\n\t\t\t\t\treturnFormat: ReturnFormat = this.defaultReturnFormat as unknown as ReturnFormat,\n\t\t\t\t) =>\n\t\t\t\t\tthis.contractMethodEstimateGas({\n\t\t\t\t\t\tabi: methodAbi,\n\t\t\t\t\t\tparams: abiParams,\n\t\t\t\t\t\treturnFormat,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t}),\n\n\t\t\t\tencodeABI: () => encodeMethodABI(methodAbi, abiParams),\n\t\t\t\tdecodeData: (data: HexString) => decodeMethodParams(methodAbi, data),\n\n\t\t\t\tcreateAccessList: async (\n\t\t\t\t\toptions?: PayableCallOptions | NonPayableCallOptions,\n\t\t\t\t\tblock?: BlockNumberOrTag,\n\t\t\t\t) =>\n\t\t\t\t\tthis._contractMethodCreateAccessList(\n\t\t\t\t\t\tmethodAbi,\n\t\t\t\t\t\tabiParams,\n\t\t\t\t\t\tinternalErrorsAbis,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\tblock,\n\t\t\t\t\t),\n\t\t\t};\n\n\t\t\tif (methodAbi.stateMutability === 'payable') {\n\t\t\t\treturn methods as PayableMethodObject<\n\t\t\t\t\tContractOverloadedMethodInputs<T>,\n\t\t\t\t\tContractOverloadedMethodOutputs<T>\n\t\t\t\t>;\n\t\t\t}\n\t\t\treturn methods as NonPayableMethodObject<\n\t\t\t\tContractOverloadedMethodInputs<T>,\n\t\t\t\tContractOverloadedMethodOutputs<T>\n\t\t\t>;\n\t\t};\n\t}\n\n\tprivate async _contractMethodCall<Options extends PayableCallOptions | NonPayableCallOptions>(\n\t\tabi: AbiFunctionFragment,\n\t\tparams: unknown[],\n\t\terrorsAbi: AbiErrorFragment[],\n\t\toptions?: Options,\n\t\tblock?: BlockNumberOrTag,\n\t) {\n\t\tconst tx = getEthTxCallParams({\n\t\t\tabi,\n\t\t\tparams,\n\t\t\toptions: {\n\t\t\t\t...options,\n\t\t\t\tdataInputFill: this.config.contractDataInputFill,\n\t\t\t},\n\t\t\tcontractOptions: {\n\t\t\t\t...this.options,\n\t\t\t\tfrom: this.options.from ?? this.config.defaultAccount,\n\t\t\t},\n\t\t});\n\t\ttry {\n\t\t\tconst result = await call(\n\t\t\t\tthis,\n\t\t\t\ttx,\n\t\t\t\tblock,\n\t\t\t\tthis.defaultReturnFormat as typeof DEFAULT_RETURN_FORMAT,\n\t\t\t);\n\t\t\treturn decodeMethodReturn(abi, result);\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof ContractExecutionError) {\n\t\t\t\t// this will parse the error data by trying to decode the ABI error inputs according to EIP-838\n\t\t\t\tdecodeContractErrorData(errorsAbi, error.cause);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate async _contractMethodCreateAccessList<\n\t\tOptions extends PayableCallOptions | NonPayableCallOptions,\n\t>(\n\t\tabi: AbiFunctionFragment,\n\t\tparams: unknown[],\n\t\terrorsAbi: AbiErrorFragment[],\n\t\toptions?: Options,\n\t\tblock?: BlockNumberOrTag,\n\t) {\n\t\tconst tx = getCreateAccessListParams({\n\t\t\tabi,\n\t\t\tparams,\n\t\t\toptions: { ...options, dataInputFill: this.config.contractDataInputFill },\n\t\t\tcontractOptions: {\n\t\t\t\t...this.options,\n\t\t\t\tfrom: this.options.from ?? this.config.defaultAccount,\n\t\t\t},\n\t\t});\n\n\t\ttry {\n\t\t\treturn createAccessList(this, tx, block, this.defaultReturnFormat);\n\t\t} catch (error: unknown) {\n\t\t\tif (error instanceof ContractExecutionError) {\n\t\t\t\t// this will parse the error data by trying to decode the ABI error inputs according to EIP-838\n\t\t\t\tdecodeContractErrorData(errorsAbi, error.cause);\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tprivate _contractMethodSend<Options extends PayableCallOptions | NonPayableCallOptions>(\n\t\tabi: AbiFunctionFragment,\n\t\tparams: unknown[],\n\t\terrorsAbi: AbiErrorFragment[],\n\t\toptions?: Options,\n\t\tcontractOptions?: ContractOptions,\n\t) {\n\t\tlet modifiedContractOptions = contractOptions ?? this.options;\n\t\tmodifiedContractOptions = {\n\t\t\t...modifiedContractOptions,\n\t\t\tinput: undefined,\n\t\t\tfrom: modifiedContractOptions.from ?? this.defaultAccount ?? undefined,\n\t\t};\n\t\tconst tx = getSendTxParams({\n\t\t\tabi,\n\t\t\tparams,\n\t\t\toptions: { ...options, dataInputFill: this.config.contractDataInputFill },\n\t\t\tcontractOptions: modifiedContractOptions,\n\t\t});\n\n\t\tconst transactionToSend = isNullish(this.transactionMiddleware)\n\t\t\t? sendTransaction(this, tx, this.defaultReturnFormat, {\n\t\t\t\t\t// TODO Should make this configurable by the user\n\t\t\t\t\tcheckRevertBeforeSending: false,\n\t\t\t\t\tcontractAbi: this._jsonInterface, // explicitly not passing middleware so if some one is using old eth package it will not break\n\t\t\t })\n\t\t\t: sendTransaction(\n\t\t\t\t\tthis,\n\t\t\t\t\ttx,\n\t\t\t\t\tthis.defaultReturnFormat,\n\t\t\t\t\t{\n\t\t\t\t\t\t// TODO Should make this configurable by the user\n\t\t\t\t\t\tcheckRevertBeforeSending: false,\n\t\t\t\t\t\tcontractAbi: this._jsonInterface,\n\t\t\t\t\t},\n\t\t\t\t\tthis.transactionMiddleware,\n\t\t\t );\n\n\t\t// eslint-disable-next-line no-void\n\t\tvoid transactionToSend.on('error', (error: unknown) => {\n\t\t\tif (error instanceof ContractExecutionError) {\n\t\t\t\t// this will parse the error data by trying to decode the ABI error inputs according to EIP-838\n\t\t\t\tdecodeContractErrorData(errorsAbi, error.cause);\n\t\t\t}\n\t\t});\n\t\treturn transactionToSend;\n\t}\n\n\tpublic async contractMethodEstimateGas<\n\t\tOptions extends PayableCallOptions | NonPayableCallOptions,\n\t\tReturnFormat extends DataFormat,\n\t>({\n\t\tabi,\n\t\tparams,\n\t\treturnFormat,\n\t\toptions,\n\t\tcontractOptions,\n\t}: {\n\t\tabi: AbiFunctionFragment;\n\t\tparams: unknown[];\n\t\treturnFormat: ReturnFormat;\n\t\toptions?: Options;\n\t\tcontractOptions?: ContractOptions;\n\t}) {\n\t\tconst tx = getEstimateGasParams({\n\t\t\tabi,\n\t\t\tparams,\n\t\t\toptions: { ...options, dataInputFill: this.config.contractDataInputFill },\n\t\t\tcontractOptions: contractOptions ?? this.options,\n\t\t});\n\t\treturn estimateGas(this, tx, BlockTags.LATEST, returnFormat ?? this.defaultReturnFormat);\n\t}\n\n\t// eslint-disable-next-line class-methods-use-this\n\tprivate _createContractEvent(\n\t\tabi: AbiEventFragment & { signature: HexString },\n\t\treturnFormat: DataFormat = this.defaultReturnFormat,\n\t): ContractBoundEvent {\n\t\treturn (...params: unknown[]) => {\n\t\t\tconst { topics, fromBlock } = encodeEventABI(this.options, abi, params[0] as EventParameters);\n\t\t\tconst sub = new LogsSubscription(\n\t\t\t\t{\n\t\t\t\t\taddress: this.options.address,\n\t\t\t\t\ttopics,\n\t\t\t\t\tabi,\n\t\t\t\t\tjsonInterface: this._jsonInterface,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\t\t\t\tsubscriptionManager: this.subscriptionManager as Web3SubscriptionManager<unknown, any>,\n\t\t\t\t\treturnFormat,\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (!isNullish(fromBlock)) {\n\t\t\t\t// emit past events when fromBlock is defined\n\t\t\t\tthis.getPastEvents(abi.name, { fromBlock, topics }, returnFormat)\n\t\t\t\t\t.then(logs => {\n\t\t\t\t\t\tif (logs) {\n\t\t\t\t\t\t\tlogs.forEach(log => sub.emit('data', log as EventLog));\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error: Error) => {\n\t\t\t\t\t\tsub.emit('error', new SubscriptionError('Failed to get past events.', error));\n\t\t\t\t\t});\n\t\t\t}\n\t\t\tthis.subscriptionManager?.addSubscription(sub).catch((error: Error) => {\n\t\t\t\tsub.emit('error', new SubscriptionError('Failed to subscribe.', error));\n\t\t\t});\n\n\t\t\treturn sub;\n\t\t};\n\t}\n\n\tprotected subscribeToContextEvents<T extends Web3Context>(context: T): void {\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tconst contractThis = this;\n\t\tthis.context = context;\n\n\t\tif (contractThis.syncWithContext) {\n\t\t\tcontext.on(Web3ConfigEvent.CONFIG_CHANGE, event => {\n\t\t\t\tcontractThis.setConfig({ [event.name]: event.newValue });\n\t\t\t});\n\t\t}\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * The `web3.eth.Contract` object makes it easy to interact with smart contracts on the Ethereum blockchain.\n * When you create a new contract object you give it the JSON interface of the respective smart contract and\n * web3 will auto convert all calls into low level ABI calls over RPC for you.\n * This allows you to interact with smart contracts as if they were JavaScript objects.\n *\n * To use it standalone:\n *\n * ```ts\n * const Contract = require('web3-eth-contract');\n *\n * // set provider for all later instances to use\n * Contract.setProvider('ws://localhost:8546');\n *\n * const contract = new Contract(jsonInterface, address);\n *\n * contract.methods.somFunc().send({from: ....})\n * .on('receipt', function(){\n * ...\n * });\n * ```\n */\n/**\n * This comment _supports3_ [Markdown](https://marked.js.org/)\n */\nimport { Contract } from './contract.js';\n\nexport * from './encoding.js';\n\nexport * from './contract.js';\nexport * from './contract-deployer-method-class.js';\nexport * from './log_subscription.js';\nexport * from './types.js';\nexport * from './utils.js';\n\nexport default Contract;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n//\n/**\n * An object holding the interface Ids of the ENS resolver contracts. Please see [how to write a resolver](https://docs.ens.domains/contract-developer-guide/writing-a-resolver).\n */\nexport const interfaceIds: { [T: string]: string } = {\n\taddr: '0x3b3b57de',\n\tname: '0x691f3431',\n\tabi: '0x2203ab56',\n\tpubkey: '0xc8690233',\n\ttext: '0x59d1d43c',\n\tcontenthash: '0xbc1c58d1',\n};\n\n/**\n * An object holding the functions that are supported by the ENS resolver contracts/interfaces.\n */\nexport const methodsInInterface: { [T: string]: string } = {\n\tsetAddr: 'addr',\n\taddr: 'addr',\n\tsetPubkey: 'pubkey',\n\tpubkey: 'pubkey',\n\tsetContenthash: 'contenthash',\n\tcontenthash: 'contenthash',\n\ttext: 'text',\n\tname: 'name',\n};\n\n/**\n * An object holding the addressed of the ENS registries on the different networks (mainnet, goerli).\n */\nexport const registryAddresses: { [T: string]: string } = {\n\tmain: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n\tgoerli: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',\n};\n\nexport const networkIds: { [T: string]: string } = {\n\t'0x1': 'main',\n\t'0x5': 'goerli',\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// https://github.com/ensdomains/ens-contracts/blob/master/contracts/registry/ENSRegistry.sol\nexport const ENSRegistryAbi = [\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'label',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'owner',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'NewOwner',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'resolver',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'NewResolver',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'owner',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'Transfer',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'owner',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'operator',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'isApprovedForAll',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bool',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bool',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'owner',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'recordExists',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bool',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bool',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'resolver',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'ttl',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'uint64',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'uint64',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n] as const;\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n// https://github.com/ensdomains/ens-contracts/blob/master/contracts/resolvers/PublicResolver.sol\nexport const PublicResolverAbi = [\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'a',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'AddrChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint256',\n\t\t\t\tname: 'coinType',\n\t\t\t\ttype: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'newAddress',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tname: 'AddressChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'owner',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'operator',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bool',\n\t\t\t\tname: 'approved',\n\t\t\t\ttype: 'bool',\n\t\t\t},\n\t\t],\n\t\tname: 'ApprovalForAll',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'hash',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tname: 'ContenthashChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint16',\n\t\t\t\tname: 'resource',\n\t\t\t\ttype: 'uint16',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'record',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tname: 'DNSRecordChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'uint16',\n\t\t\t\tname: 'resource',\n\t\t\t\ttype: 'uint16',\n\t\t\t},\n\t\t],\n\t\tname: 'DNSRecordDeleted',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'DNSZoneCleared',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'lastzonehash',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: 'zonehash',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tname: 'DNSZonehashChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes4',\n\t\t\t\tname: 'interfaceID',\n\t\t\t\ttype: 'bytes4',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'implementer',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'InterfaceChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'string',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t],\n\t\tname: 'NameChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'x',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'y',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'PubkeyChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: true,\n\t\t\t\tinternalType: 'string',\n\t\t\t\tname: 'indexedKey',\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tinternalType: 'string',\n\t\t\t\tname: 'key',\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t],\n\t\tname: 'TextChanged',\n\t\ttype: 'event',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'uint256',\n\t\t\t\tname: 'contentTypes',\n\t\t\t\ttype: 'uint256',\n\t\t\t},\n\t\t],\n\t\tname: 'ABI',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'uint256',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'uint256',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'addr',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'address payable',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'uint256',\n\t\t\t\tname: 'coinType',\n\t\t\t\ttype: 'uint256',\n\t\t\t},\n\t\t],\n\t\tname: 'addr',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'contenthash',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'uint16',\n\t\t\t\tname: 'resource',\n\t\t\t\ttype: 'uint16',\n\t\t\t},\n\t\t],\n\t\tname: 'dnsRecord',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'name',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'hasDNSRecords',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bool',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bool',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'bytes4',\n\t\t\t\tname: 'interfaceID',\n\t\t\t\ttype: 'bytes4',\n\t\t\t},\n\t\t],\n\t\tname: 'interfaceImplementer',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'account',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'operator',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'isApprovedForAll',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bool',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bool',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'name',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'string',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'pubkey',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'x',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'y',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes4',\n\t\t\t\tname: 'interfaceID',\n\t\t\t\ttype: 'bytes4',\n\t\t\t},\n\t\t],\n\t\tname: 'supportsInterface',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bool',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bool',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'string',\n\t\t\t\tname: 'key',\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t],\n\t\tname: 'text',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'string',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t],\n\t\tname: 'zonehash',\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes',\n\t\t\t\tname: '',\n\t\t\t\ttype: 'bytes',\n\t\t\t},\n\t\t],\n\t\tstateMutability: 'view',\n\t\ttype: 'function',\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: 'bytes32',\n\t\t\t\tname: 'node',\n\t\t\t\ttype: 'bytes32',\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: 'address',\n\t\t\t\tname: 'a',\n\t\t\t\ttype: 'address',\n\t\t\t},\n\t\t],\n\t\tname: 'setAddr',\n\t\toutputs: [],\n\t\tstateMutability: 'nonpayable',\n\t\ttype: 'function',\n\t},\n] as const;\n","// created 2024-09-13T06:42:45.675Z\n// compressed base64-encoded blob for include-ens data\n// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js\n// see: https://github.com/adraffy/ens-normalize.js#security\n// SHA-256: 0ca3917bee1eee342d64c631cb1dbaac37b167d848887d59f6d68328dc99ac09\nvar COMPRESSED$1 = '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';\nconst FENCED = new Map([[8217,\"apostrophe\"],[8260,\"fraction slash\"],[12539,\"middle dot\"]]);\nconst NSM_MAX = 4;\n\nfunction decode_arithmetic(bytes) {\r\n\tlet pos = 0;\r\n\tfunction u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\r\n\t\r\n\t// decode the frequency table\r\n\tlet symbol_count = u16();\r\n\tlet total = 1;\r\n\tlet acc = [0, 1]; // first symbol has frequency 1\r\n\tfor (let i = 1; i < symbol_count; i++) {\r\n\t\tacc.push(total += u16());\r\n\t}\r\n\r\n\t// skip the sized-payload that the last 3 symbols index into\r\n\tlet skip = u16();\r\n\tlet pos_payload = pos;\r\n\tpos += skip;\r\n\r\n\tlet read_width = 0;\r\n\tlet read_buffer = 0; \r\n\tfunction read_bit() {\r\n\t\tif (read_width == 0) {\r\n\t\t\t// this will read beyond end of buffer\r\n\t\t\t// but (undefined|0) => zero pad\r\n\t\t\tread_buffer = (read_buffer << 8) | bytes[pos++];\r\n\t\t\tread_width = 8;\r\n\t\t}\r\n\t\treturn (read_buffer >> --read_width) & 1;\r\n\t}\r\n\r\n\tconst N = 31;\r\n\tconst FULL = 2**N;\r\n\tconst HALF = FULL >>> 1;\r\n\tconst QRTR = HALF >> 1;\r\n\tconst MASK = FULL - 1;\r\n\r\n\t// fill register\r\n\tlet register = 0;\r\n\tfor (let i = 0; i < N; i++) register = (register << 1) | read_bit();\r\n\r\n\tlet symbols = [];\r\n\tlet low = 0;\r\n\tlet range = FULL; // treat like a float\r\n\twhile (true) {\r\n\t\tlet value = Math.floor((((register - low + 1) * total) - 1) / range);\r\n\t\tlet start = 0;\r\n\t\tlet end = symbol_count;\r\n\t\twhile (end - start > 1) { // binary search\r\n\t\t\tlet mid = (start + end) >>> 1;\r\n\t\t\tif (value < acc[mid]) {\r\n\t\t\t\tend = mid;\r\n\t\t\t} else {\r\n\t\t\t\tstart = mid;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (start == 0) break; // first symbol is end mark\r\n\t\tsymbols.push(start);\r\n\t\tlet a = low + Math.floor(range * acc[start] / total);\r\n\t\tlet b = low + Math.floor(range * acc[start+1] / total) - 1;\r\n\t\twhile (((a ^ b) & HALF) == 0) {\r\n\t\t\tregister = (register << 1) & MASK | read_bit();\r\n\t\t\ta = (a << 1) & MASK;\r\n\t\t\tb = (b << 1) & MASK | 1;\r\n\t\t}\r\n\t\twhile (a & ~b & QRTR) {\r\n\t\t\tregister = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\r\n\t\t\ta = (a << 1) ^ HALF;\r\n\t\t\tb = ((b ^ HALF) << 1) | HALF | 1;\r\n\t\t}\r\n\t\tlow = a;\r\n\t\trange = 1 + b - a;\r\n\t}\r\n\tlet offset = symbol_count - 4;\r\n\treturn symbols.map(x => { // index into payload\r\n\t\tswitch (x - offset) {\r\n\t\t\tcase 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\r\n\t\t\tcase 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\r\n\t\t\tcase 1: return offset + bytes[pos_payload++];\r\n\t\t\tdefault: return x - 1;\r\n\t\t}\r\n\t});\r\n}\t\r\n\r\n// returns an iterator which returns the next symbol\r\nfunction read_payload(v) {\r\n\tlet pos = 0;\r\n\treturn () => v[pos++];\r\n}\r\nfunction read_compressed_payload(s) {\r\n\treturn read_payload(decode_arithmetic(unsafe_atob(s)));\r\n}\r\n\r\n// unsafe in the sense:\r\n// expected well-formed Base64 w/o padding \r\n// 20220922: added for https://github.com/adraffy/ens-normalize.js/issues/4\r\nfunction unsafe_atob(s) {\r\n\tlet lookup = [];\r\n\t[...'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'].forEach((c, i) => lookup[c.charCodeAt(0)] = i);\r\n\tlet n = s.length;\r\n\tlet ret = new Uint8Array((6 * n) >> 3);\r\n\tfor (let i = 0, pos = 0, width = 0, carry = 0; i < n; i++) {\r\n\t\tcarry = (carry << 6) | lookup[s.charCodeAt(i)];\r\n\t\twidth += 6;\r\n\t\tif (width >= 8) {\r\n\t\t\tret[pos++] = (carry >> (width -= 8));\r\n\t\t}\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\r\nfunction signed(i) { \r\n\treturn (i & 1) ? (~i >> 1) : (i >> 1);\r\n}\r\n\r\nfunction read_deltas(n, next) {\r\n\tlet v = Array(n);\r\n\tfor (let i = 0, x = 0; i < n; i++) v[i] = x += signed(next());\r\n\treturn v;\r\n}\r\n\r\n// [123][5] => [0 3] [1 1] [0 0]\r\nfunction read_sorted(next, prev = 0) {\r\n\tlet ret = [];\r\n\twhile (true) {\r\n\t\tlet x = next();\r\n\t\tlet n = next();\r\n\t\tif (!n) break;\r\n\t\tprev += x;\r\n\t\tfor (let i = 0; i < n; i++) {\r\n\t\t\tret.push(prev + i);\r\n\t\t}\r\n\t\tprev += n + 1;\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\nfunction read_sorted_arrays(next) {\r\n\treturn read_array_while(() => { \r\n\t\tlet v = read_sorted(next);\r\n\t\tif (v.length) return v;\r\n\t});\r\n}\r\n\r\n// returns map of x => ys\r\nfunction read_mapped(next) {\r\n\tlet ret = [];\r\n\twhile (true) {\r\n\t\tlet w = next();\r\n\t\tif (w == 0) break;\r\n\t\tret.push(read_linear_table(w, next));\r\n\t}\r\n\twhile (true) {\r\n\t\tlet w = next() - 1;\r\n\t\tif (w < 0) break;\r\n\t\tret.push(read_replacement_table(w, next));\r\n\t}\r\n\treturn ret.flat();\r\n}\r\n\r\n// read until next is falsy\r\n// return array of read values\r\nfunction read_array_while(next) {\r\n\tlet v = [];\r\n\twhile (true) {\r\n\t\tlet x = next(v.length);\r\n\t\tif (!x) break;\r\n\t\tv.push(x);\r\n\t}\r\n\treturn v;\r\n}\r\n\r\n// read w columns of length n\r\n// return as n rows of length w\r\nfunction read_transposed(n, w, next) {\r\n\tlet m = Array(n).fill().map(() => []);\r\n\tfor (let i = 0; i < w; i++) {\r\n\t\tread_deltas(n, next).forEach((x, j) => m[j].push(x));\r\n\t}\r\n\treturn m;\r\n}\r\n \r\n// returns [[x, ys], [x+dx, ys+dy], [x+2*dx, ys+2*dy], ...]\r\n// where dx/dy = steps, n = run size, w = length of y\r\nfunction read_linear_table(w, next) {\r\n\tlet dx = 1 + next();\r\n\tlet dy = next();\r\n\tlet vN = read_array_while(next);\r\n\tlet m = read_transposed(vN.length, 1+w, next);\r\n\treturn m.flatMap((v, i) => {\r\n\t\tlet [x, ...ys] = v;\r\n\t\treturn Array(vN[i]).fill().map((_, j) => {\r\n\t\t\tlet j_dy = j * dy;\r\n\t\t\treturn [x + j * dx, ys.map(y => y + j_dy)];\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// return [[x, ys...], ...]\r\n// where w = length of y\r\nfunction read_replacement_table(w, next) { \r\n\tlet n = 1 + next();\r\n\tlet m = read_transposed(n, 1+w, next);\r\n\treturn m.map(v => [v[0], v.slice(1)]);\r\n}\r\n\r\n\r\nfunction read_trie(next) {\r\n\tlet ret = [];\r\n\tlet sorted = read_sorted(next); \r\n\texpand(decode([]), []);\r\n\treturn ret; // not sorted\r\n\tfunction decode(Q) { // characters that lead into this node\r\n\t\tlet S = next(); // state: valid, save, check\r\n\t\tlet B = read_array_while(() => { // buckets leading to new nodes\r\n\t\t\tlet cps = read_sorted(next).map(i => sorted[i]);\r\n\t\t\tif (cps.length) return decode(cps);\r\n\t\t});\r\n\t\treturn {S, B, Q};\r\n\t}\r\n\tfunction expand({S, B}, cps, saved) {\r\n\t\tif (S & 4 && saved === cps[cps.length-1]) return;\r\n\t\tif (S & 2) saved = cps[cps.length-1];\r\n\t\tif (S & 1) ret.push(cps); \r\n\t\tfor (let br of B) {\r\n\t\t\tfor (let cp of br.Q) {\r\n\t\t\t\texpand(br, [...cps, cp], saved);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\n\nfunction hex_cp(cp) {\r\n\treturn cp.toString(16).toUpperCase().padStart(2, '0');\r\n}\r\n\r\nfunction quote_cp(cp) {\r\n\treturn `{${hex_cp(cp)}}`; // raffy convention: like \"\\u{X}\" w/o the \"\\u\"\r\n}\r\n\r\n/*\r\nexport function explode_cp(s) {\r\n\treturn [...s].map(c => c.codePointAt(0));\r\n}\r\n*/\r\nfunction explode_cp(s) { // this is about 2x faster\r\n\tlet cps = [];\r\n\tfor (let pos = 0, len = s.length; pos < len; ) {\r\n\t\tlet cp = s.codePointAt(pos);\r\n\t\tpos += cp < 0x10000 ? 1 : 2;\r\n\t\tcps.push(cp);\r\n\t}\r\n\treturn cps;\r\n}\r\n\r\nfunction str_from_cps(cps) {\r\n\tconst chunk = 4096;\r\n\tlet len = cps.length;\r\n\tif (len < chunk) return String.fromCodePoint(...cps);\r\n\tlet buf = [];\r\n\tfor (let i = 0; i < len; ) {\r\n\t\tbuf.push(String.fromCodePoint(...cps.slice(i, i += chunk)));\r\n\t}\r\n\treturn buf.join('');\r\n}\r\n\r\nfunction compare_arrays(a, b) {\r\n\tlet n = a.length;\r\n\tlet c = n - b.length;\r\n\tfor (let i = 0; c == 0 && i < n; i++) c = a[i] - b[i];\r\n\treturn c;\r\n}\r\n\r\nfunction array_replace(v, a, b) {\r\n\tlet prev = 0;\r\n\twhile (true) {\r\n\t\tlet next = v.indexOf(a, prev);\r\n\t\tif (next < 0) break;\r\n\t\tv[next] = b; \r\n\t\tprev = next + 1;\r\n\t}\r\n}\n\n// created 2024-09-13T06:42:45.675Z\n// compressed base64-encoded blob for include-nf data\n// source: https://github.com/adraffy/ens-normalize.js/blob/main/src/make.js\n// see: https://github.com/adraffy/ens-normalize.js#security\n// SHA-256: a79d5f9b1879a7b416aa659f4a3d788f80a8cf5f0ab955a456592c02f556a28c\nvar COMPRESSED = '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';\n\n// https://unicode.org/reports/tr15/\r\n// for reference implementation\r\n// see: /derive/nf.js\r\n\r\n\r\n// algorithmic hangul\r\n// https://www.unicode.org/versions/Unicode15.0.0/ch03.pdf (page 144)\r\nconst S0 = 0xAC00;\r\nconst L0 = 0x1100;\r\nconst V0 = 0x1161;\r\nconst T0 = 0x11A7;\r\nconst L_COUNT = 19;\r\nconst V_COUNT = 21;\r\nconst T_COUNT = 28;\r\nconst N_COUNT = V_COUNT * T_COUNT;\r\nconst S_COUNT = L_COUNT * N_COUNT;\r\nconst S1 = S0 + S_COUNT;\r\nconst L1 = L0 + L_COUNT;\r\nconst V1 = V0 + V_COUNT;\r\nconst T1 = T0 + T_COUNT;\r\n\r\nfunction unpack_cc(packed) {\r\n\treturn (packed >> 24) & 0xFF;\r\n}\r\nfunction unpack_cp(packed) {\r\n\treturn packed & 0xFFFFFF;\r\n}\r\n\r\nlet SHIFTED_RANK, EXCLUSIONS, DECOMP, RECOMP;\r\n\r\n// export function nf_deinit() {\r\n// \tif (!SHIFTED_RANK) return;\r\n// \tSHIFTED_RANK = EXCLUSIONS = DECOMP = RECOMP = undefined;\r\n// }\r\n\r\nfunction init$1() {\r\n\t//console.time('nf');\r\n\tlet r = read_compressed_payload(COMPRESSED);\r\n\tSHIFTED_RANK = new Map(read_sorted_arrays(r).flatMap((v, i) => v.map(x => [x, (i+1) << 24]))); // pre-shifted\r\n\tEXCLUSIONS = new Set(read_sorted(r));\r\n\tDECOMP = new Map();\r\n\tRECOMP = new Map();\r\n\tfor (let [cp, cps] of read_mapped(r)) {\r\n\t\tif (!EXCLUSIONS.has(cp) && cps.length == 2) {\r\n\t\t\tlet [a, b] = cps;\r\n\t\t\tlet bucket = RECOMP.get(a);\r\n\t\t\tif (!bucket) {\r\n\t\t\t\tbucket = new Map();\r\n\t\t\t\tRECOMP.set(a, bucket);\r\n\t\t\t}\r\n\t\t\tbucket.set(b, cp);\r\n\t\t}\r\n\t\tDECOMP.set(cp, cps.reverse()); // stored reversed\r\n\t}\r\n\t//console.timeEnd('nf');\r\n\t// 20230905: 11ms\r\n}\r\n\r\nfunction is_hangul(cp) {\r\n\treturn cp >= S0 && cp < S1;\r\n}\r\n\r\nfunction compose_pair(a, b) {\r\n\tif (a >= L0 && a < L1 && b >= V0 && b < V1) {\r\n\t\treturn S0 + (a - L0) * N_COUNT + (b - V0) * T_COUNT;\r\n\t} else if (is_hangul(a) && b > T0 && b < T1 && (a - S0) % T_COUNT == 0) {\r\n\t\treturn a + (b - T0);\r\n\t} else {\r\n\t\tlet recomp = RECOMP.get(a);\r\n\t\tif (recomp) {\r\n\t\t\trecomp = recomp.get(b);\r\n\t\t\tif (recomp) {\r\n\t\t\t\treturn recomp;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t}\r\n}\r\n\r\nfunction decomposed(cps) {\r\n\tif (!SHIFTED_RANK) init$1();\r\n\tlet ret = [];\r\n\tlet buf = [];\r\n\tlet check_order = false;\r\n\tfunction add(cp) {\r\n\t\tlet cc = SHIFTED_RANK.get(cp);\r\n\t\tif (cc) {\r\n\t\t\tcheck_order = true;\r\n\t\t\tcp |= cc;\r\n\t\t}\r\n\t\tret.push(cp);\r\n\t}\r\n\tfor (let cp of cps) {\r\n\t\twhile (true) {\r\n\t\t\tif (cp < 0x80) {\r\n\t\t\t\tret.push(cp);\r\n\t\t\t} else if (is_hangul(cp)) {\r\n\t\t\t\tlet s_index = cp - S0;\r\n\t\t\t\tlet l_index = s_index / N_COUNT | 0;\r\n\t\t\t\tlet v_index = (s_index % N_COUNT) / T_COUNT | 0;\r\n\t\t\t\tlet t_index = s_index % T_COUNT;\r\n\t\t\t\tadd(L0 + l_index);\r\n\t\t\t\tadd(V0 + v_index);\r\n\t\t\t\tif (t_index > 0) add(T0 + t_index);\r\n\t\t\t} else {\r\n\t\t\t\tlet mapped = DECOMP.get(cp);\r\n\t\t\t\tif (mapped) {\r\n\t\t\t\t\tbuf.push(...mapped);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tadd(cp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!buf.length) break;\r\n\t\t\tcp = buf.pop();\r\n\t\t}\r\n\t}\r\n\tif (check_order && ret.length > 1) {\r\n\t\tlet prev_cc = unpack_cc(ret[0]);\r\n\t\tfor (let i = 1; i < ret.length; i++) {\r\n\t\t\tlet cc = unpack_cc(ret[i]);\r\n\t\t\tif (cc == 0 || prev_cc <= cc) {\r\n\t\t\t\tprev_cc = cc;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tlet j = i-1;\r\n\t\t\twhile (true) {\r\n\t\t\t\tlet tmp = ret[j+1];\r\n\t\t\t\tret[j+1] = ret[j];\r\n\t\t\t\tret[j] = tmp;\r\n\t\t\t\tif (!j) break;\r\n\t\t\t\tprev_cc = unpack_cc(ret[--j]);\r\n\t\t\t\tif (prev_cc <= cc) break;\r\n\t\t\t}\r\n\t\t\tprev_cc = unpack_cc(ret[i]);\r\n\t\t}\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\nfunction composed_from_decomposed(v) {\r\n\tlet ret = [];\r\n\tlet stack = [];\r\n\tlet prev_cp = -1;\r\n\tlet prev_cc = 0;\r\n\tfor (let packed of v) {\r\n\t\tlet cc = unpack_cc(packed);\r\n\t\tlet cp = unpack_cp(packed);\r\n\t\tif (prev_cp == -1) {\r\n\t\t\tif (cc == 0) {\r\n\t\t\t\tprev_cp = cp;\r\n\t\t\t} else {\r\n\t\t\t\tret.push(cp);\r\n\t\t\t}\r\n\t\t} else if (prev_cc > 0 && prev_cc >= cc) {\r\n\t\t\tif (cc == 0) {\r\n\t\t\t\tret.push(prev_cp, ...stack);\r\n\t\t\t\tstack.length = 0;\r\n\t\t\t\tprev_cp = cp;\r\n\t\t\t} else {\r\n\t\t\t\tstack.push(cp);\r\n\t\t\t}\r\n\t\t\tprev_cc = cc;\r\n\t\t} else {\r\n\t\t\tlet composed = compose_pair(prev_cp, cp);\r\n\t\t\tif (composed >= 0) {\r\n\t\t\t\tprev_cp = composed;\r\n\t\t\t} else if (prev_cc == 0 && cc == 0) {\r\n\t\t\t\tret.push(prev_cp);\r\n\t\t\t\tprev_cp = cp;\r\n\t\t\t} else {\r\n\t\t\t\tstack.push(cp);\r\n\t\t\t\tprev_cc = cc;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (prev_cp >= 0) {\r\n\t\tret.push(prev_cp, ...stack);\t\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\n// note: cps can be iterable\r\nfunction nfd(cps) {\r\n\treturn decomposed(cps).map(unpack_cp);\r\n}\r\nfunction nfc(cps) {\r\n\treturn composed_from_decomposed(decomposed(cps));\r\n}\n\nconst HYPHEN = 0x2D;\r\nconst STOP = 0x2E;\r\nconst STOP_CH = '.';\r\nconst FE0F = 0xFE0F;\r\nconst UNIQUE_PH = 1;\r\n\r\n// 20230913: replace [...v] with Array_from(v) to avoid large spreads\r\nconst Array_from = x => Array.from(x); // Array.from.bind(Array);\r\n\r\nfunction group_has_cp(g, cp) {\r\n\t// 20230913: keep primary and secondary distinct instead of creating valid union\r\n\treturn g.P.has(cp) || g.Q.has(cp);\r\n}\r\n\r\nclass Emoji extends Array {\r\n\tget is_emoji() { return true; } // free tagging system\r\n}\r\n\r\nlet MAPPED, IGNORED, CM, NSM, ESCAPE, NFC_CHECK, GROUPS, WHOLE_VALID, WHOLE_MAP, VALID, EMOJI_LIST, EMOJI_ROOT;\r\n\r\n// export function ens_deinit() {\r\n// \tnf_deinit();\r\n// \tif (!MAPPED) return;\r\n// \tMAPPED = IGNORED = CM = NSM = ESCAPE = NFC_CHECK = GROUPS = WHOLE_VALID = WHOLE_MAP = VALID = EMOJI_LIST = EMOJI_ROOT = undefined;\r\n// }\r\n\r\nfunction init() {\r\n\tif (MAPPED) return;\r\n\t\r\n\tlet r = read_compressed_payload(COMPRESSED$1);\r\n\tconst read_sorted_array = () => read_sorted(r);\r\n\tconst read_sorted_set = () => new Set(read_sorted_array());\r\n\tconst set_add_many = (set, v) => v.forEach(x => set.add(x));\r\n\r\n\tMAPPED = new Map(read_mapped(r)); \r\n\tIGNORED = read_sorted_set(); // ignored characters are not valid, so just read raw codepoints\r\n\r\n\t/*\r\n\t// direct include from payload is smaller than the decompression code\r\n\tconst FENCED = new Map(read_array_while(() => {\r\n\t\tlet cp = r();\r\n\t\tif (cp) return [cp, read_str(r())];\r\n\t}));\r\n\t*/\r\n\t// 20230217: we still need all CM for proper error formatting\r\n\t// but norm only needs NSM subset that are potentially-valid\r\n\tCM = read_sorted_array();\r\n\tNSM = new Set(read_sorted_array().map(i => CM[i]));\r\n\tCM = new Set(CM);\r\n\t\r\n\tESCAPE = read_sorted_set(); // characters that should not be printed\r\n\tNFC_CHECK = read_sorted_set(); // only needed to illustrate ens_tokenize() transformations\r\n\r\n\tlet chunks = read_sorted_arrays(r);\r\n\tlet unrestricted = r();\r\n\t//const read_chunked = () => new Set(read_sorted_array().flatMap(i => chunks[i]).concat(read_sorted_array()));\r\n\tconst read_chunked = () => {\r\n\t\t// 20230921: build set in parts, 2x faster\r\n\t\tlet set = new Set();\r\n\t\tread_sorted_array().forEach(i => set_add_many(set, chunks[i]));\r\n\t\tset_add_many(set, read_sorted_array());\r\n\t\treturn set; \r\n\t};\r\n\tGROUPS = read_array_while(i => {\r\n\t\t// minifier property mangling seems unsafe\r\n\t\t// so these are manually renamed to single chars\r\n\t\tlet N = read_array_while(r).map(x => x+0x60);\r\n\t\tif (N.length) {\r\n\t\t\tlet R = i >= unrestricted; // unrestricted then restricted\r\n\t\t\tN[0] -= 32; // capitalize\r\n\t\t\tN = str_from_cps(N);\r\n\t\t\tif (R) N=`Restricted[${N}]`;\r\n\t\t\tlet P = read_chunked(); // primary\r\n\t\t\tlet Q = read_chunked(); // secondary\r\n\t\t\tlet M = !r(); // not-whitelisted, check for NSM\r\n\t\t\t// *** this code currently isn't needed ***\r\n\t\t\t/*\r\n\t\t\tlet V = [...P, ...Q].sort((a, b) => a-b); // derive: sorted valid\r\n\t\t\tlet M = r()-1; // number of combining mark\r\n\t\t\tif (M < 0) { // whitelisted\r\n\t\t\t\tM = new Map(read_array_while(() => {\r\n\t\t\t\t\tlet i = r();\r\n\t\t\t\t\tif (i) return [V[i-1], read_array_while(() => {\r\n\t\t\t\t\t\tlet v = read_array_while(r);\r\n\t\t\t\t\t\tif (v.length) return v.map(x => x-1);\r\n\t\t\t\t\t})];\r\n\t\t\t\t}));\r\n\t\t\t}*/\r\n\t\t\treturn {N, P, Q, M, R};\r\n\t\t}\r\n\t});\r\n\r\n\t// decode compressed wholes\r\n\tWHOLE_VALID = read_sorted_set();\r\n\tWHOLE_MAP = new Map();\r\n\tlet wholes = read_sorted_array().concat(Array_from(WHOLE_VALID)).sort((a, b) => a-b); // must be sorted\r\n\twholes.forEach((cp, i) => {\r\n\t\tlet d = r(); \r\n\t\tlet w = wholes[i] = d ? wholes[i-d] : {V: [], M: new Map()};\r\n\t\tw.V.push(cp); // add to member set\r\n\t\tif (!WHOLE_VALID.has(cp)) {\r\n\t\t\tWHOLE_MAP.set(cp, w); // register with whole map\r\n\t\t}\r\n\t});\r\n\r\n\t// compute confusable-extent complements\r\n\t// usage: WHOLE_MAP.get(cp).M.get(cp) = complement set\r\n\tfor (let {V, M} of new Set(WHOLE_MAP.values())) {\r\n\t\t// connect all groups that have each whole character\r\n\t\tlet recs = [];\r\n\t\tfor (let cp of V) {\r\n\t\t\tlet gs = GROUPS.filter(g => group_has_cp(g, cp));\r\n\t\t\tlet rec = recs.find(({G}) => gs.some(g => G.has(g)));\r\n\t\t\tif (!rec) {\r\n\t\t\t\trec = {G: new Set(), V: []};\r\n\t\t\t\trecs.push(rec);\r\n\t\t\t}\r\n\t\t\trec.V.push(cp);\r\n\t\t\tset_add_many(rec.G, gs);\r\n\t\t}\r\n\t\t// per character cache groups which are not a member of the extent\r\n\t\tlet union = recs.flatMap(x => Array_from(x.G)); // all of the groups used by this whole\r\n\t\tfor (let {G, V} of recs) {\r\n\t\t\tlet complement = new Set(union.filter(g => !G.has(g))); // groups not covered by the extent\r\n\t\t\tfor (let cp of V) {\r\n\t\t\t\tM.set(cp, complement); // this is the same reference\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// compute valid set\r\n\t// 20230924: VALID was union but can be re-used\r\n\tVALID = new Set(); // exists in 1+ groups\r\n\tlet multi = new Set(); // exists in 2+ groups\r\n\tconst add_to_union = cp => VALID.has(cp) ? multi.add(cp) : VALID.add(cp);\r\n\tfor (let g of GROUPS) {\r\n\t\tfor (let cp of g.P) add_to_union(cp);\r\n\t\tfor (let cp of g.Q) add_to_union(cp);\r\n\t}\r\n\t// dual purpose WHOLE_MAP: return placeholder if unique non-confusable\r\n\tfor (let cp of VALID) {\r\n\t\tif (!WHOLE_MAP.has(cp) && !multi.has(cp)) {\r\n\t\t\tWHOLE_MAP.set(cp, UNIQUE_PH);\r\n\t\t}\r\n\t}\r\n\t// add all decomposed parts\r\n\t// see derive: \"Valid is Closed (via Brute-force)\"\r\n\tset_add_many(VALID, nfd(VALID));\r\n\t\r\n\t// decode emoji\r\n\t// 20230719: emoji are now fully-expanded to avoid quirk logic \r\n\tEMOJI_LIST = read_trie(r).map(v => Emoji.from(v)).sort(compare_arrays);\r\n\tEMOJI_ROOT = new Map(); // this has approx 7K nodes (2+ per emoji)\r\n\tfor (let cps of EMOJI_LIST) {\r\n\t\t// 20230719: change to *slightly* stricter algorithm which disallows \r\n\t\t// insertion of misplaced FE0F in emoji sequences (matching ENSIP-15)\r\n\t\t// example: beautified [A B] (eg. flag emoji) \r\n\t\t// before: allow: [A FE0F B], error: [A FE0F FE0F B] \r\n\t\t// after: error: both\r\n\t\t// note: this code now matches ENSNormalize.{cs,java} logic\r\n\t\tlet prev = [EMOJI_ROOT];\r\n\t\tfor (let cp of cps) {\r\n\t\t\tlet next = prev.map(node => {\r\n\t\t\t\tlet child = node.get(cp);\r\n\t\t\t\tif (!child) {\r\n\t\t\t\t\t// should this be object? \r\n\t\t\t\t\t// (most have 1-2 items, few have many)\r\n\t\t\t\t\t// 20230719: no, v8 default map is 4?\r\n\t\t\t\t\tchild = new Map();\r\n\t\t\t\t\tnode.set(cp, child);\r\n\t\t\t\t}\r\n\t\t\t\treturn child;\r\n\t\t\t});\r\n\t\t\tif (cp === FE0F) {\r\n\t\t\t\tprev.push(...next); // less than 20 elements\r\n\t\t\t} else {\r\n\t\t\t\tprev = next;\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (let x of prev) {\r\n\t\t\tx.V = cps;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// if escaped: {HEX}\r\n// else: \"x\" {HEX}\r\nfunction quoted_cp(cp) {\r\n\treturn (should_escape(cp) ? '' : `${bidi_qq(safe_str_from_cps([cp]))} `) + quote_cp(cp);\r\n}\r\n\r\n// 20230211: some messages can be mixed-directional and result in spillover\r\n// use 200E after a quoted string to force the remainder of a string from \r\n// acquring the direction of the quote\r\n// https://www.w3.org/International/questions/qa-bidi-unicode-controls#exceptions\r\nfunction bidi_qq(s) {\r\n\treturn `\"${s}\"\\u200E`; // strong LTR\r\n}\r\n\r\nfunction check_label_extension(cps) {\r\n\tif (cps.length >= 4 && cps[2] == HYPHEN && cps[3] == HYPHEN) {\r\n\t\tthrow new Error(`invalid label extension: \"${str_from_cps(cps.slice(0, 4))}\"`); // this can only be ascii so cant be bidi\r\n\t}\r\n}\r\nfunction check_leading_underscore(cps) {\r\n\tconst UNDERSCORE = 0x5F;\r\n\tfor (let i = cps.lastIndexOf(UNDERSCORE); i > 0; ) {\r\n\t\tif (cps[--i] !== UNDERSCORE) {\r\n\t\t\tthrow new Error('underscore allowed only at start');\r\n\t\t}\r\n\t}\r\n}\r\n// check that a fenced cp is not leading, trailing, or touching another fenced cp\r\nfunction check_fenced(cps) {\r\n\tlet cp = cps[0];\r\n\tlet prev = FENCED.get(cp);\r\n\tif (prev) throw error_placement(`leading ${prev}`);\r\n\tlet n = cps.length;\r\n\tlet last = -1; // prevents trailing from throwing\r\n\tfor (let i = 1; i < n; i++) {\r\n\t\tcp = cps[i];\r\n\t\tlet match = FENCED.get(cp);\r\n\t\tif (match) {\r\n\t\t\t// since cps[0] isn't fenced, cps[1] cannot throw\r\n\t\t\tif (last == i) throw error_placement(`${prev} + ${match}`);\r\n\t\t\tlast = i + 1;\r\n\t\t\tprev = match;\r\n\t\t}\r\n\t}\r\n\tif (last == n) throw error_placement(`trailing ${prev}`);\r\n}\r\n\r\n// create a safe to print string \r\n// invisibles are escaped\r\n// leading cm uses placeholder\r\n// if cps exceed max, middle truncate with ellipsis\r\n// quoter(cp) => string, eg. 3000 => \"{3000}\"\r\n// note: in html, you'd call this function then replace [<>&] with entities\r\nfunction safe_str_from_cps(cps, max = Infinity, quoter = quote_cp) {\r\n\t//if (Number.isInteger(cps)) cps = [cps];\r\n\t//if (!Array.isArray(cps)) throw new TypeError(`expected codepoints`);\r\n\tlet buf = [];\r\n\tif (is_combining_mark(cps[0])) buf.push('◌');\r\n\tif (cps.length > max) {\r\n\t\tmax >>= 1;\r\n\t\tcps = [...cps.slice(0, max), 0x2026, ...cps.slice(-max)];\r\n\t}\r\n\tlet prev = 0;\r\n\tlet n = cps.length;\r\n\tfor (let i = 0; i < n; i++) {\r\n\t\tlet cp = cps[i];\r\n\t\tif (should_escape(cp)) {\r\n\t\t\tbuf.push(str_from_cps(cps.slice(prev, i)));\r\n\t\t\tbuf.push(quoter(cp));\r\n\t\t\tprev = i + 1;\r\n\t\t}\r\n\t}\r\n\tbuf.push(str_from_cps(cps.slice(prev, n)));\r\n\treturn buf.join('');\r\n}\r\n\r\n// note: set(s) cannot be exposed because they can be modified\r\n// note: Object.freeze() doesn't work\r\nfunction is_combining_mark(cp, only_nsm) { // 20240127: add extra argument\r\n\tinit();\r\n\treturn only_nsm ? NSM.has(cp) : CM.has(cp);\r\n}\r\nfunction should_escape(cp) {\r\n\tinit();\r\n\treturn ESCAPE.has(cp);\r\n}\r\n\r\n// return all supported emoji as fully-qualified emoji \r\n// ordered by length then lexicographic \r\nfunction ens_emoji() {\r\n\tinit();\r\n\treturn EMOJI_LIST.map(x => x.slice()); // emoji are exposed so copy\r\n}\r\n\r\nfunction ens_normalize_fragment(frag, decompose) {\r\n\tinit();\r\n\tlet nf = decompose ? nfd : nfc;\r\n\treturn frag.split(STOP_CH).map(label => str_from_cps(tokens_from_str(explode_cp(label), nf, filter_fe0f).flat())).join(STOP_CH);\r\n}\r\n\r\nfunction ens_normalize(name) {\r\n\treturn flatten(split(name, nfc, filter_fe0f));\r\n}\r\n\r\nfunction ens_beautify(name) {\r\n\tlet labels = split(name, nfc, x => x); // emoji not exposed\r\n\tfor (let {type, output, error} of labels) {\r\n\t\tif (error) break; // flatten will throw\r\n\r\n\t\t// replace leading/trailing hyphen\r\n\t\t// 20230121: consider beautifing all or leading/trailing hyphen to unicode variant\r\n\t\t// not exactly the same in every font, but very similar: \"-\" vs \"‐\"\r\n\t\t/*\r\n\t\tconst UNICODE_HYPHEN = 0x2010;\r\n\t\t// maybe this should replace all for visual consistancy?\r\n\t\t// `node tools/reg-count.js regex ^-\\{2,\\}` => 592\r\n\t\t//for (let i = 0; i < output.length; i++) if (output[i] == 0x2D) output[i] = 0x2010;\r\n\t\tif (output[0] == HYPHEN) output[0] = UNICODE_HYPHEN;\r\n\t\tlet end = output.length-1;\r\n\t\tif (output[end] == HYPHEN) output[end] = UNICODE_HYPHEN;\r\n\t\t*/\r\n\t\t// 20230123: WHATWG URL uses \"CheckHyphens\" false\r\n\t\t// https://url.spec.whatwg.org/#idna\r\n\r\n\t\t// update ethereum symbol\r\n\t\t// ξ => Ξ if not greek\r\n\t\tif (type !== 'Greek') array_replace(output, 0x3BE, 0x39E);\r\n\r\n\t\t// 20221213: fixes bidi subdomain issue, but breaks invariant (200E is disallowed)\r\n\t\t// could be fixed with special case for: 2D (.) + 200E (LTR)\r\n\t\t// https://discuss.ens.domains/t/bidi-label-ordering-spoof/15824\r\n\t\t//output.splice(0, 0, 0x200E);\r\n\t}\r\n\treturn flatten(labels);\r\n}\r\n\r\nfunction ens_split(name, preserve_emoji) {\r\n\treturn split(name, nfc, preserve_emoji ? x => x.slice() : filter_fe0f); // emoji are exposed so copy\r\n}\r\n\r\nfunction split(name, nf, ef) {\r\n\tif (!name) return []; // 20230719: empty name allowance\r\n\tinit();\r\n\tlet offset = 0;\r\n\t// https://unicode.org/reports/tr46/#Validity_Criteria\r\n\t// 4.) \"The label must not contain a U+002E ( . ) FULL STOP.\"\r\n\treturn name.split(STOP_CH).map(label => {\r\n\t\tlet input = explode_cp(label);\r\n\t\tlet info = {\r\n\t\t\tinput,\r\n\t\t\toffset, // codepoint, not substring!\r\n\t\t};\r\n\t\toffset += input.length + 1; // + stop\r\n\t\ttry {\r\n\t\t\t// 1.) \"The label must be in Unicode Normalization Form NFC\"\r\n\t\t\tlet tokens = info.tokens = tokens_from_str(input, nf, ef);\r\n\t\t\tlet token_count = tokens.length;\r\n\t\t\tlet type;\r\n\t\t\tif (!token_count) { // the label was effectively empty (could of had ignored characters)\r\n\t\t\t\t//norm = [];\r\n\t\t\t\t//type = 'None'; // use this instead of next match, \"ASCII\"\r\n\t\t\t\t// 20230120: change to strict\r\n\t\t\t\t// https://discuss.ens.domains/t/ens-name-normalization-2nd/14564/59\r\n\t\t\t\tthrow new Error(`empty label`);\r\n\t\t\t} \r\n\t\t\tlet norm = info.output = tokens.flat();\r\n\t\t\tcheck_leading_underscore(norm);\r\n\t\t\tlet emoji = info.emoji = token_count > 1 || tokens[0].is_emoji; // same as: tokens.some(x => x.is_emoji);\r\n\t\t\tif (!emoji && norm.every(cp => cp < 0x80)) { // special case for ascii\r\n\t\t\t\t// 20230123: matches matches WHATWG, see note 3.3\r\n\t\t\t\tcheck_label_extension(norm); // only needed for ascii\r\n\t\t\t\t// cant have fenced\r\n\t\t\t\t// cant have cm\r\n\t\t\t\t// cant have wholes\r\n\t\t\t\t// see derive: \"Fastpath ASCII\"\r\n\t\t\t\ttype = 'ASCII';\r\n\t\t\t} else {\r\n\t\t\t\tlet chars = tokens.flatMap(x => x.is_emoji ? [] : x); // all of the nfc tokens concat together\r\n\t\t\t\tif (!chars.length) { // theres no text, just emoji\r\n\t\t\t\t\ttype = 'Emoji';\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// 5.) \"The label must not begin with a combining mark, that is: General_Category=Mark.\"\r\n\t\t\t\t\tif (CM.has(norm[0])) throw error_placement('leading combining mark');\r\n\t\t\t\t\tfor (let i = 1; i < token_count; i++) { // we've already checked the first token\r\n\t\t\t\t\t\tlet cps = tokens[i];\r\n\t\t\t\t\t\tif (!cps.is_emoji && CM.has(cps[0])) { // every text token has emoji neighbors, eg. EtEEEtEt...\r\n\t\t\t\t\t\t\t// bidi_qq() not needed since emoji is LTR and cps is a CM\r\n\t\t\t\t\t\t\tthrow error_placement(`emoji + combining mark: \"${str_from_cps(tokens[i-1])} + ${safe_str_from_cps([cps[0]])}\"`); \r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcheck_fenced(norm);\r\n\t\t\t\t\tlet unique = Array_from(new Set(chars));\r\n\t\t\t\t\tlet [g] = determine_group(unique); // take the first match\r\n\t\t\t\t\t// see derive: \"Matching Groups have Same CM Style\"\r\n\t\t\t\t\t// alternative: could form a hybrid type: Latin/Japanese/...\t\r\n\t\t\t\t\tcheck_group(g, chars); // need text in order\r\n\t\t\t\t\tcheck_whole(g, unique); // only need unique text (order would be required for multiple-char confusables)\r\n\t\t\t\t\ttype = g.N;\r\n\t\t\t\t\t// 20230121: consider exposing restricted flag\r\n\t\t\t\t\t// it's simpler to just check for 'Restricted'\r\n\t\t\t\t\t// or even better: type.endsWith(']')\r\n\t\t\t\t\t//if (g.R) info.restricted = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tinfo.type = type;\r\n\t\t} catch (err) {\r\n\t\t\tinfo.error = err; // use full error object\r\n\t\t}\r\n\t\treturn info;\r\n\t});\r\n}\r\n\r\nfunction check_whole(group, unique) {\r\n\tlet maker;\r\n\tlet shared = [];\r\n\tfor (let cp of unique) {\r\n\t\tlet whole = WHOLE_MAP.get(cp);\r\n\t\tif (whole === UNIQUE_PH) return; // unique, non-confusable\r\n\t\tif (whole) {\r\n\t\t\tlet set = whole.M.get(cp); // groups which have a character that look-like this character\r\n\t\t\tmaker = maker ? maker.filter(g => set.has(g)) : Array_from(set);\r\n\t\t\tif (!maker.length) return; // confusable intersection is empty\r\n\t\t} else {\r\n\t\t\tshared.push(cp); \r\n\t\t}\r\n\t}\r\n\tif (maker) {\r\n\t\t// we have 1+ confusable\r\n\t\t// check if any of the remaining groups\r\n\t\t// contain the shared characters too\r\n\t\tfor (let g of maker) {\r\n\t\t\tif (shared.every(cp => group_has_cp(g, cp))) {\r\n\t\t\t\tthrow new Error(`whole-script confusable: ${group.N}/${g.N}`);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// assumption: unique.size > 0\r\n// returns list of matching groups\r\nfunction determine_group(unique) {\r\n\tlet groups = GROUPS;\r\n\tfor (let cp of unique) {\r\n\t\t// note: we need to dodge CM that are whitelisted\r\n\t\t// but that code isn't currently necessary\r\n\t\tlet gs = groups.filter(g => group_has_cp(g, cp));\r\n\t\tif (!gs.length) {\r\n\t\t\tif (!GROUPS.some(g => group_has_cp(g, cp))) { \r\n\t\t\t\t// the character was composed of valid parts\r\n\t\t\t\t// but it's NFC form is invalid\r\n\t\t\t\t// 20230716: change to more exact statement, see: ENSNormalize.{cs,java}\r\n\t\t\t\t// note: this doesn't have to be a composition\r\n\t\t\t\t// 20230720: change to full check\r\n\t\t\t\tthrow error_disallowed(cp); // this should be rare\r\n\t\t\t} else {\r\n\t\t\t\t// there is no group that contains all these characters\r\n\t\t\t\t// throw using the highest priority group that matched\r\n\t\t\t\t// https://www.unicode.org/reports/tr39/#mixed_script_confusables\r\n\t\t\t\tthrow error_group_member(groups[0], cp);\r\n\t\t\t}\r\n\t\t}\r\n\t\tgroups = gs;\r\n\t\tif (gs.length == 1) break; // there is only one group left\r\n\t}\r\n\t// there are at least 1 group(s) with all of these characters\r\n\treturn groups;\r\n}\r\n\r\n// throw on first error\r\nfunction flatten(split) {\r\n\treturn split.map(({input, error, output}) => {\r\n\t\tif (error) {\r\n\t\t\t// don't print label again if just a single label\r\n\t\t\tlet msg = error.message;\r\n\t\t\t// bidi_qq() only necessary if msg is digits\r\n\t\t\tthrow new Error(split.length == 1 ? msg : `Invalid label ${bidi_qq(safe_str_from_cps(input, 63))}: ${msg}`); \r\n\t\t}\r\n\t\treturn str_from_cps(output);\r\n\t}).join(STOP_CH);\r\n}\r\n\r\nfunction error_disallowed(cp) {\r\n\t// TODO: add cp to error?\r\n\treturn new Error(`disallowed character: ${quoted_cp(cp)}`); \r\n}\r\nfunction error_group_member(g, cp) {\r\n\tlet quoted = quoted_cp(cp);\r\n\tlet gg = GROUPS.find(g => g.P.has(cp)); // only check primary\r\n\tif (gg) {\r\n\t\tquoted = `${gg.N} ${quoted}`;\r\n\t}\r\n\treturn new Error(`illegal mixture: ${g.N} + ${quoted}`);\r\n}\r\nfunction error_placement(where) {\r\n\treturn new Error(`illegal placement: ${where}`);\r\n}\r\n\r\n// assumption: cps.length > 0\r\n// assumption: cps[0] isn't a CM\r\n// assumption: the previous character isn't an emoji\r\nfunction check_group(g, cps) {\r\n\tfor (let cp of cps) {\r\n\t\tif (!group_has_cp(g, cp)) {\r\n\t\t\t// for whitelisted scripts, this will throw illegal mixture on invalid cm, eg. \"e{300}{300}\"\r\n\t\t\t// at the moment, it's unnecessary to introduce an extra error type\r\n\t\t\t// until there exists a whitelisted multi-character\r\n\t\t\t// eg. if (M < 0 && is_combining_mark(cp)) { ... }\r\n\t\t\t// there are 3 cases:\r\n\t\t\t// 1. illegal cm for wrong group => mixture error\r\n\t\t\t// 2. illegal cm for same group => cm error\r\n\t\t\t// requires set of whitelist cm per group: \r\n\t\t\t// eg. new Set([...g.P, ...g.Q].flatMap(nfc).filter(cp => CM.has(cp)))\r\n\t\t\t// 3. wrong group => mixture error\r\n\t\t\tthrow error_group_member(g, cp);\r\n\t\t}\r\n\t}\r\n\t//if (M >= 0) { // we have a known fixed cm count\r\n\tif (g.M) { // we need to check for NSM\r\n\t\tlet decomposed = nfd(cps);\r\n\t\tfor (let i = 1, e = decomposed.length; i < e; i++) { // see: assumption\r\n\t\t\t// 20230210: bugfix: using cps instead of decomposed h/t Carbon225\r\n\t\t\t/*\r\n\t\t\tif (CM.has(decomposed[i])) {\r\n\t\t\t\tlet j = i + 1;\r\n\t\t\t\twhile (j < e && CM.has(decomposed[j])) j++;\r\n\t\t\t\tif (j - i > M) {\r\n\t\t\t\t\tthrow new Error(`too many combining marks: ${g.N} ${bidi_qq(str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${M})`);\r\n\t\t\t\t}\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t// 20230217: switch to NSM counting\r\n\t\t\t// https://www.unicode.org/reports/tr39/#Optional_Detection\r\n\t\t\tif (NSM.has(decomposed[i])) {\r\n\t\t\t\tlet j = i + 1;\r\n\t\t\t\tfor (let cp; j < e && NSM.has(cp = decomposed[j]); j++) {\r\n\t\t\t\t\t// a. Forbid sequences of the same nonspacing mark.\r\n\t\t\t\t\tfor (let k = i; k < j; k++) { // O(n^2) but n < 100\r\n\t\t\t\t\t\tif (decomposed[k] == cp) {\r\n\t\t\t\t\t\t\tthrow new Error(`duplicate non-spacing marks: ${quoted_cp(cp)}`);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// parse to end so we have full nsm count\r\n\t\t\t\t// b. Forbid sequences of more than 4 nonspacing marks (gc=Mn or gc=Me).\r\n\t\t\t\tif (j - i > NSM_MAX) {\r\n\t\t\t\t\t// note: this slice starts with a base char or spacing-mark cm\r\n\t\t\t\t\tthrow new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(decomposed.slice(i-1, j)))} (${j-i}/${NSM_MAX})`);\r\n\t\t\t\t}\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t// *** this code currently isn't needed ***\r\n\t/*\r\n\tlet cm_whitelist = M instanceof Map;\r\n\tfor (let i = 0, e = cps.length; i < e; ) {\r\n\t\tlet cp = cps[i++];\r\n\t\tlet seqs = cm_whitelist && M.get(cp);\r\n\t\tif (seqs) { \r\n\t\t\t// list of codepoints that can follow\r\n\t\t\t// if this exists, this will always be 1+\r\n\t\t\tlet j = i;\r\n\t\t\twhile (j < e && CM.has(cps[j])) j++;\r\n\t\t\tlet cms = cps.slice(i, j);\r\n\t\t\tlet match = seqs.find(seq => !compare_arrays(seq, cms));\r\n\t\t\tif (!match) throw new Error(`disallowed combining mark sequence: \"${safe_str_from_cps([cp, ...cms])}\"`);\r\n\t\t\ti = j;\r\n\t\t} else if (!V.has(cp)) {\r\n\t\t\t// https://www.unicode.org/reports/tr39/#mixed_script_confusables\r\n\t\t\tlet quoted = quoted_cp(cp);\r\n\t\t\tfor (let cp of cps) {\r\n\t\t\t\tlet u = UNIQUE.get(cp);\r\n\t\t\t\tif (u && u !== g) {\r\n\t\t\t\t\t// if both scripts are restricted this error is confusing\r\n\t\t\t\t\t// because we don't differentiate RestrictedA from RestrictedB \r\n\t\t\t\t\tif (!u.R) quoted = `${quoted} is ${u.N}`;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthrow new Error(`disallowed ${g.N} character: ${quoted}`);\r\n\t\t\t//throw new Error(`disallowed character: ${quoted} (expected ${g.N})`);\r\n\t\t\t//throw new Error(`${g.N} does not allow: ${quoted}`);\r\n\t\t}\r\n\t}\r\n\tif (!cm_whitelist) {\r\n\t\tlet decomposed = nfd(cps);\r\n\t\tfor (let i = 1, e = decomposed.length; i < e; i++) { // we know it can't be cm leading\r\n\t\t\tif (CM.has(decomposed[i])) {\r\n\t\t\t\tlet j = i + 1;\r\n\t\t\t\twhile (j < e && CM.has(decomposed[j])) j++;\r\n\t\t\t\tif (j - i > M) {\r\n\t\t\t\t\tthrow new Error(`too many combining marks: \"${str_from_cps(decomposed.slice(i-1, j))}\" (${j-i}/${M})`);\r\n\t\t\t\t}\r\n\t\t\t\ti = j;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t*/\r\n}\r\n\r\n// given a list of codepoints\r\n// returns a list of lists, where emoji are a fully-qualified (as Array subclass)\r\n// eg. explode_cp(\"abc💩d\") => [[61, 62, 63], Emoji[1F4A9, FE0F], [64]]\r\n// 20230818: rename for 'process' name collision h/t Javarome\r\n// https://github.com/adraffy/ens-normalize.js/issues/23\r\nfunction tokens_from_str(input, nf, ef) {\r\n\tlet ret = [];\r\n\tlet chars = [];\r\n\tinput = input.slice().reverse(); // flip so we can pop\r\n\twhile (input.length) {\r\n\t\tlet emoji = consume_emoji_reversed(input);\r\n\t\tif (emoji) {\r\n\t\t\tif (chars.length) {\r\n\t\t\t\tret.push(nf(chars));\r\n\t\t\t\tchars = [];\r\n\t\t\t}\r\n\t\t\tret.push(ef(emoji));\r\n\t\t} else {\r\n\t\t\tlet cp = input.pop();\r\n\t\t\tif (VALID.has(cp)) {\r\n\t\t\t\tchars.push(cp);\r\n\t\t\t} else {\r\n\t\t\t\tlet cps = MAPPED.get(cp);\r\n\t\t\t\tif (cps) {\r\n\t\t\t\t\tchars.push(...cps); // less than 10 elements\r\n\t\t\t\t} else if (!IGNORED.has(cp)) {\r\n\t\t\t\t\t// 20230912: unicode 15.1 changed the order of processing such that\r\n\t\t\t\t\t// disallowed parts are only rejected after NFC\r\n\t\t\t\t\t// https://unicode.org/reports/tr46/#Validity_Criteria\r\n\t\t\t\t\t// this doesn't impact normalization as of today\r\n\t\t\t\t\t// technically, this error can be removed as the group logic will apply similar logic\r\n\t\t\t\t\t// however the error type might be less clear\r\n\t\t\t\t\tthrow error_disallowed(cp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (chars.length) {\r\n\t\tret.push(nf(chars));\r\n\t}\r\n\treturn ret;\r\n}\r\n\r\nfunction filter_fe0f(cps) {\r\n\treturn cps.filter(cp => cp != FE0F);\r\n}\r\n\r\n// given array of codepoints\r\n// returns the longest valid emoji sequence (or undefined if no match)\r\n// *MUTATES* the supplied array\r\n// disallows interleaved ignored characters\r\n// fills (optional) eaten array with matched codepoints\r\nfunction consume_emoji_reversed(cps, eaten) {\r\n\tlet node = EMOJI_ROOT;\r\n\tlet emoji;\r\n\tlet pos = cps.length;\r\n\twhile (pos) {\r\n\t\tnode = node.get(cps[--pos]);\r\n\t\tif (!node) break;\r\n\t\tlet {V} = node;\r\n\t\tif (V) { // this is a valid emoji (so far)\r\n\t\t\temoji = V;\r\n\t\t\tif (eaten) eaten.push(...cps.slice(pos).reverse()); // (optional) copy input, used for ens_tokenize()\r\n\t\t\tcps.length = pos; // truncate\r\n\t\t}\r\n\t}\r\n\treturn emoji;\r\n}\r\n\r\n// ************************************************************\r\n// tokenizer \r\n\r\nconst TY_VALID = 'valid';\r\nconst TY_MAPPED = 'mapped';\r\nconst TY_IGNORED = 'ignored';\r\nconst TY_DISALLOWED = 'disallowed';\r\nconst TY_EMOJI = 'emoji';\r\nconst TY_NFC = 'nfc';\r\nconst TY_STOP = 'stop';\r\n\r\nfunction ens_tokenize(name, {\r\n\tnf = true, // collapse unnormalized runs into a single token\r\n} = {}) {\r\n\tinit();\r\n\tlet input = explode_cp(name).reverse();\r\n\tlet eaten = [];\r\n\tlet tokens = [];\r\n\twhile (input.length) {\r\n\t\tlet emoji = consume_emoji_reversed(input, eaten);\r\n\t\tif (emoji) {\r\n\t\t\ttokens.push({\r\n\t\t\t\ttype: TY_EMOJI,\r\n\t\t\t\temoji: emoji.slice(), // copy emoji\r\n\t\t\t\tinput: eaten,\r\n\t\t\t\tcps: filter_fe0f(emoji)\r\n\t\t\t});\r\n\t\t\teaten = []; // reset buffer\r\n\t\t} else {\r\n\t\t\tlet cp = input.pop();\r\n\t\t\tif (cp == STOP) {\r\n\t\t\t\ttokens.push({type: TY_STOP, cp});\r\n\t\t\t} else if (VALID.has(cp)) {\r\n\t\t\t\ttokens.push({type: TY_VALID, cps: [cp]});\r\n\t\t\t} else if (IGNORED.has(cp)) {\r\n\t\t\t\ttokens.push({type: TY_IGNORED, cp});\r\n\t\t\t} else {\r\n\t\t\t\tlet cps = MAPPED.get(cp);\r\n\t\t\t\tif (cps) {\r\n\t\t\t\t\ttokens.push({type: TY_MAPPED, cp, cps: cps.slice()});\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttokens.push({type: TY_DISALLOWED, cp});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (nf) {\r\n\t\tfor (let i = 0, start = -1; i < tokens.length; i++) {\r\n\t\t\tlet token = tokens[i];\r\n\t\t\tif (is_valid_or_mapped(token.type)) {\r\n\t\t\t\tif (requires_check(token.cps)) { // normalization might be needed\r\n\t\t\t\t\tlet end = i + 1;\r\n\t\t\t\t\tfor (let pos = end; pos < tokens.length; pos++) { // find adjacent text\r\n\t\t\t\t\t\tlet {type, cps} = tokens[pos];\r\n\t\t\t\t\t\tif (is_valid_or_mapped(type)) {\r\n\t\t\t\t\t\t\tif (!requires_check(cps)) break;\r\n\t\t\t\t\t\t\tend = pos + 1;\r\n\t\t\t\t\t\t} else if (type !== TY_IGNORED) { // || type !== TY_DISALLOWED) { \r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (start < 0) start = i;\r\n\t\t\t\t\tlet slice = tokens.slice(start, end);\r\n\t\t\t\t\tlet cps0 = slice.flatMap(x => is_valid_or_mapped(x.type) ? x.cps : []); // strip junk tokens\r\n\t\t\t\t\tlet cps = nfc(cps0);\r\n\t\t\t\t\tif (compare_arrays(cps, cps0)) { // bundle into an nfc token\r\n\t\t\t\t\t\ttokens.splice(start, end - start, {\r\n\t\t\t\t\t\t\ttype: TY_NFC, \r\n\t\t\t\t\t\t\tinput: cps0, // there are 3 states: tokens0 ==(process)=> input ==(nfc)=> tokens/cps\r\n\t\t\t\t\t\t\tcps, \r\n\t\t\t\t\t\t\ttokens0: collapse_valid_tokens(slice),\r\n\t\t\t\t\t\t\ttokens: ens_tokenize(str_from_cps(cps), {nf: false})\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\ti = start;\r\n\t\t\t\t\t} else { \r\n\t\t\t\t\t\ti = end - 1; // skip to end of slice\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstart = -1; // reset\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstart = i; // remember last\r\n\t\t\t\t}\r\n\t\t\t} else if (token.type !== TY_IGNORED) { // 20221024: is this correct?\r\n\t\t\t\tstart = -1; // reset\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn collapse_valid_tokens(tokens);\r\n}\r\n\r\nfunction is_valid_or_mapped(type) {\r\n\treturn type == TY_VALID || type == TY_MAPPED;\r\n}\r\n\r\nfunction requires_check(cps) {\r\n\treturn cps.some(cp => NFC_CHECK.has(cp));\r\n}\r\n\r\nfunction collapse_valid_tokens(tokens) {\r\n\tfor (let i = 0; i < tokens.length; i++) {\r\n\t\tif (tokens[i].type == TY_VALID) {\r\n\t\t\tlet j = i + 1;\r\n\t\t\twhile (j < tokens.length && tokens[j].type == TY_VALID) j++;\r\n\t\t\ttokens.splice(i, j - i, {type: TY_VALID, cps: tokens.slice(i, j).flatMap(x => x.cps)});\r\n\t\t}\r\n\t}\r\n\treturn tokens;\r\n}\n\nexport { ens_beautify, ens_emoji, ens_normalize, ens_normalize_fragment, ens_split, ens_tokenize, is_combining_mark, nfc, nfd, safe_str_from_cps, should_escape };\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { sha3Raw } from 'web3-utils';\n// eslint-disable-next-line camelcase\nimport { ens_normalize } from '@adraffy/ens-normalize';\n\nexport const normalize = (name: string) => ens_normalize(name);\n\nexport const namehash = (inputName: string) => {\n\t// Reject empty names:\n\tlet node = '';\n\tfor (let i = 0; i < 32; i += 1) {\n\t\tnode += '00';\n\t}\n\n\tif (inputName) {\n\t\tconst name = normalize(inputName);\n\t\tconst labels = name.split('.');\n\n\t\tfor (let i = labels.length - 1; i >= 0; i -= 1) {\n\t\t\tconst labelSha = sha3Raw(labels[i]).slice(2);\n\t\t\tnode = sha3Raw(`0x${node}${labelSha}`).slice(2);\n\t\t}\n\t}\n\n\treturn `0x${node}`;\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3ContextObject } from 'web3-core';\nimport { Contract } from 'web3-eth-contract';\nimport { Address } from 'web3-types';\nimport { ENSRegistryAbi } from './abi/ens/ENSRegistry.js';\nimport { PublicResolverAbi } from './abi/ens/PublicResolver.js';\nimport { registryAddresses } from './config.js';\nimport { namehash } from './utils.js';\n\nexport class Registry {\n\tprivate readonly contract: Contract<typeof ENSRegistryAbi>;\n\tprivate readonly context: Web3ContextObject;\n\n\tpublic constructor(context: Web3ContextObject, customRegistryAddress?: Address) {\n\t\tthis.contract = new Contract(\n\t\t\tENSRegistryAbi,\n\t\t\tcustomRegistryAddress ?? registryAddresses.main,\n\t\t\tcontext,\n\t\t);\n\n\t\tthis.context = context;\n\t}\n\n\tpublic async getOwner(name: string) {\n\t\ttry {\n\t\t\tconst result = this.contract.methods.owner(namehash(name)).call();\n\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tthrow new Error(); // TODO: TransactionRevertInstructionError Needs to be added after web3-eth call method is implemented\n\t\t}\n\t}\n\n\tpublic async getTTL(name: string) {\n\t\ttry {\n\t\t\treturn this.contract.methods.ttl(namehash(name)).call();\n\t\t} catch (error) {\n\t\t\tthrow new Error(); // TODO: TransactionRevertInstructionError Needs to be added after web3-eth call method is implemented\n\t\t}\n\t}\n\n\tpublic async recordExists(name: string) {\n\t\ttry {\n\t\t\tconst promise = this.contract.methods.recordExists(namehash(name)).call();\n\n\t\t\treturn promise;\n\t\t} catch (error) {\n\t\t\tthrow new Error(); // TODO: TransactionRevertInstructionError Needs to be added after web3-eth call method is implemented\n\t\t}\n\t}\n\n\tpublic async getResolver(name: string) {\n\t\ttry {\n\t\t\treturn this.contract.methods\n\t\t\t\t.resolver(namehash(name))\n\t\t\t\t.call()\n\t\t\t\t.then(address => {\n\t\t\t\t\t// address type is unknown, not sure why\n\t\t\t\t\tif (typeof address === 'string') {\n\t\t\t\t\t\tconst contract = new Contract(PublicResolverAbi, address, this.context);\n\t\t\t\t\t\t// TODO: set contract provider needs to be added when ens current provider\n\t\t\t\t\t\treturn contract;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error();\n\t\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow new Error(); // TODO: TransactionRevertInstructionError Needs to be added after web3-eth call method is implemented\n\t\t}\n\t}\n\n\tpublic get events() {\n\t\treturn this.contract.events;\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { ResolverMethodMissingError } from 'web3-errors';\nimport { Contract } from 'web3-eth-contract';\nimport { isNullish, sha3 } from 'web3-utils';\nimport { isHexStrict } from 'web3-validator';\nimport { Address, PayableCallOptions } from 'web3-types';\nimport { PublicResolverAbi } from './abi/ens/PublicResolver.js';\nimport { interfaceIds, methodsInInterface } from './config.js';\nimport { Registry } from './registry.js';\nimport { namehash } from './utils.js';\n\n\n// Default public resolver\n// https://github.com/ensdomains/resolvers/blob/master/contracts/PublicResolver.sol\n\nexport class Resolver {\n\tprivate readonly registry: Registry;\n\n\tpublic constructor(registry: Registry) {\n\t\tthis.registry = registry;\n\t}\n\n\tprivate async getResolverContractAdapter(ENSName: string) {\n\t\t// TODO : (Future 4.1.0 TDB) cache resolver contract if frequently queried same ENS name, refresh cache based on TTL and usage, also limit cache size, optional cache with a flag\n\t\treturn this.registry.getResolver(ENSName);\n\t}\n\n\t// https://eips.ethereum.org/EIPS/eip-165\n\t// eslint-disable-next-line class-methods-use-this\n\tpublic async checkInterfaceSupport(\n\t\tresolverContract: Contract<typeof PublicResolverAbi>,\n\t\tmethodName: string,\n\t) {\n\t\tif (isNullish(interfaceIds[methodName]))\n\t\t\tthrow new ResolverMethodMissingError(\n\t\t\t\tresolverContract.options.address ?? '',\n\t\t\t\tmethodName,\n\t\t\t);\n\n\t\tconst supported = await resolverContract.methods\n\t\t\t.supportsInterface(interfaceIds[methodName])\n\t\t\t.call();\n\n\t\tif (!supported)\n\t\t\tthrow new ResolverMethodMissingError(\n\t\t\t\tresolverContract.options.address ?? '',\n\t\t\t\tmethodName,\n\t\t\t);\n\t}\n\n\tpublic async supportsInterface(ENSName: string, interfaceId: string) {\n\t\tconst resolverContract = await this.getResolverContractAdapter(ENSName);\n\n\t\tlet interfaceIdParam = interfaceId;\n\n\t\tif (!isHexStrict(interfaceIdParam)) {\n\t\t\tinterfaceIdParam = sha3(interfaceId) ?? '';\n\n\t\t\tif (interfaceId === '') throw new Error('Invalid interface Id');\n\n\t\t\tinterfaceIdParam = interfaceIdParam.slice(0, 10);\n\t\t}\n\n\t\treturn resolverContract.methods.supportsInterface(interfaceIdParam).call();\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\tpublic async getAddress(ENSName: string, coinType: number = 60) {\n\t\tconst resolverContract = await this.getResolverContractAdapter(ENSName);\n\n\t\tawait this.checkInterfaceSupport(resolverContract, methodsInInterface.addr);\n\n\t\treturn resolverContract.methods.addr(namehash(ENSName), coinType).call();\n\t}\n\n\tpublic async getPubkey(ENSName: string) {\n\t\tconst resolverContract = await this.getResolverContractAdapter(ENSName);\n\n\t\tawait this.checkInterfaceSupport(resolverContract, methodsInInterface.pubkey);\n\n\t\treturn resolverContract.methods.pubkey(namehash(ENSName)).call();\n\t}\n\n\tpublic async getContenthash(ENSName: string) {\n\t\tconst resolverContract = await this.getResolverContractAdapter(ENSName);\n\n\t\tawait this.checkInterfaceSupport(resolverContract, methodsInInterface.contenthash);\n\n\t\treturn resolverContract.methods.contenthash(namehash(ENSName)).call();\n\t}\n\n\tpublic async setAddress(\n\t\tENSName: string,\n\t\taddress: Address,\n\t\ttxConfig: PayableCallOptions,\n\t) {\n\t\tconst resolverContract = await this.getResolverContractAdapter(ENSName);\n\t\tawait this.checkInterfaceSupport(resolverContract, methodsInInterface.setAddr);\n\n\t\treturn resolverContract.methods\n\t\t\t.setAddr(namehash(ENSName), address)\n\t\t\t.send(txConfig);\n\t}\n\n\tpublic async getText(\n\t\tENSName: string,\n\t\tkey: string,\n\t) {\n\t\tconst resolverContract = await this.getResolverContractAdapter(ENSName);\n\t\tawait this.checkInterfaceSupport(resolverContract, methodsInInterface.text);\n\n\t\treturn resolverContract.methods\n\t\t\t.text(namehash(ENSName), key).call()\n\t}\n\n\tpublic async getName(\n\t\taddress: string,\n\t\tcheckInterfaceSupport = true\n\t) {\n\t\tconst reverseName = `${address.toLowerCase().substring(2)}.addr.reverse`;\n\n\t\tconst resolverContract = await this.getResolverContractAdapter(reverseName);\n\t\t\n\t\tif(checkInterfaceSupport)\n\t\t\tawait this.checkInterfaceSupport(resolverContract, methodsInInterface.name);\n\t\t\n\t\treturn resolverContract.methods\n\t\t\t.name(namehash(reverseName)).call()\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Context, Web3ContextObject } from 'web3-core';\nimport {\n\tENSNetworkNotSyncedError,\n\tENSUnsupportedNetworkError,\n\tRevertInstructionError,\n} from 'web3-errors';\nimport { isSyncing } from 'web3-eth';\nimport { Contract } from 'web3-eth-contract';\nimport { getId } from 'web3-net';\nimport {\n\tAddress,\n\tEthExecutionAPI,\n\tFMT_NUMBER,\n\tPayableCallOptions,\n\tSupportedProviders,\n\tTransactionReceipt,\n\tWeb3NetAPI,\n} from 'web3-types';\nimport { isAddress } from 'web3-validator';\nimport { PublicResolverAbi } from './abi/ens/PublicResolver.js';\nimport { networkIds, registryAddresses } from './config.js';\nimport { Registry } from './registry.js';\nimport { Resolver } from './resolver.js';\n\n/**\n * This class is designed to interact with the ENS system on the Ethereum blockchain.\n * For using ENS package, first install Web3 package using: `npm i web3` or `yarn add web3` based on your package manager, after that ENS features can be used as mentioned in following snippet.\n * ```ts\n *\n * import { Web3 } from 'web3';\n *\n * const web3 = new Web3('https://127.0.0.1:4545');\n *\n * console.log(await web3.eth.ens.getAddress('ethereum.eth'))\n * ```\n * For using individual package install `web3-eth-ens` packages using: `npm i web3-eth-ens` or `yarn add web3-eth-ens`. This is more efficient approach for building lightweight applications.\n *\n * ```ts\n *import { ENS } from 'web3-eth-ens';\n *\n * const ens = new ENS(undefined,'https://127.0.0.1:4545');\n *\n * console.log(await ens.getAddress('vitalik.eth'));\n * ```\n */\nexport class ENS extends Web3Context<EthExecutionAPI & Web3NetAPI> {\n\t/**\n\t * The registryAddress property can be used to define a custom registry address when you are connected to an unknown chain. It defaults to the main registry address.\n\t */\n\tpublic registryAddress: string;\n\tprivate readonly _registry: Registry;\n\tprivate readonly _resolver: Resolver;\n\tprivate _detectedAddress?: string;\n\tprivate _lastSyncCheck?: number;\n\n\t/**\n\t * Use to create an instance of ENS\n\t * @param registryAddr - (Optional) The address of the ENS registry (default: mainnet registry address)\n\t * @param provider - (Optional) The provider to use for the ENS instance\n\t * @example\n\t * ```ts\n\t * const ens = new ENS(\n\t * \t\"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n\t * \t\"http://localhost:8545\"\n\t * );\n\t *\n\t * console.log( ens.defaultChain);\n\t * > mainnet\n\t * ```\n\t */\n\tpublic constructor(\n\t\tregistryAddr?: string,\n\t\tprovider?:\n\t\t\t| SupportedProviders<EthExecutionAPI & Web3NetAPI>\n\t\t\t| Web3ContextObject<EthExecutionAPI & Web3NetAPI>\n\t\t\t| string,\n\t) {\n\t\tsuper(provider ?? '');\n\t\tthis.registryAddress = registryAddr ?? registryAddresses.main; // will default to main registry address\n\t\tthis._registry = new Registry(this.getContextObject(), registryAddr);\n\t\tthis._resolver = new Resolver(this._registry);\n\t}\n\n\t/**\n\t * Returns the Resolver by the given address\n\t * @param name - The name of the ENS domain\n\t * @returns - An contract instance of the resolver\n\t *\n\t * @example\n\t * ```ts\n\t * const resolver = await ens.getResolver('resolver');\n\t *\n\t * console.log(resolver.options.address);\n\t * > '0x1234567890123456789012345678901234567890'\n\t * ```\n\t */\n\tpublic async getResolver(name: string): Promise<Contract<typeof PublicResolverAbi>> {\n\t\treturn this._registry.getResolver(name);\n\t}\n\n\t/**\n\t * Returns true if the record exists\n\t * @param name - The ENS name\n\t * @returns - Returns `true` if node exists in this ENS registry. This will return `false` for records that are in the legacy ENS registry but have not yet been migrated to the new one.\n\t * @example\n\t * ```ts\n\t * const exists = await web3.eth.ens.recordExists('ethereum.eth');\n\t * ```\n\t */\n\tpublic async recordExists(name: string): Promise<unknown> {\n\t\treturn this._registry.recordExists(name);\n\t}\n\n\t/**\n\t * Returns the caching TTL (time-to-live) of an ENS name.\n\t * @param name - The ENS name\n\t * @returns - Returns the caching TTL (time-to-live) of a name.\n\t * @example\n\t * ```ts\n\t * const owner = await web3.eth.ens.getTTL('ethereum.eth');\n\t * ```\n\t */\n\tpublic async getTTL(name: string): Promise<unknown> {\n\t\treturn this._registry.getTTL(name);\n\t}\n\n\t/**\n\t * Returns the owner by the given name and current configured or detected Registry\n\t * @param name - The ENS name\n\t * @returns - Returns the address of the owner of the name.\n\t * @example\n\t * ```ts\n\t * const owner = await web3.eth.ens.getOwner('ethereum.eth');\n\t * ```\n\t */\n\tpublic async getOwner(name: string): Promise<unknown> {\n\t\treturn this._registry.getOwner(name);\n\t}\n\n\t/**\n\t * Resolves an ENS name to an Ethereum address.\n\t * @param ENSName - The ENS name to resolve\n\t * @param coinType - (Optional) The coin type, defaults to 60 (ETH)\n\t * @returns - The Ethereum address of the given name\n\t * ```ts\n\t * const address = await web3.eth.ens.getAddress('ethereum.eth');\n\t * console.log(address);\n\t * > '0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359'\n\t * ```\n\t */\n\tpublic async getAddress(ENSName: string, coinType = 60) {\n\t\treturn this._resolver.getAddress(ENSName, coinType);\n\t}\n\n\t/**\n\t * ERC-634 - Returns the text content stored in the resolver for the specified key.\n\t * @param ENSName - The ENS name to resolve\n\t * @param key - The key to resolve https://github.com/ethereum/ercs/blob/master/ERCS/erc-634.md#global-keys\n\t * @returns - The value content stored in the resolver for the specified key\n\t */\n\tpublic async getText(ENSNameOrAddr: string | Address, key: string): Promise<string> {\n\t\tif(isAddress(ENSNameOrAddr))\n\t\t\treturn this._resolver.getText(await(this._resolver.getName(ENSNameOrAddr,false)), key);\n\t\treturn this._resolver.getText(ENSNameOrAddr, key);\n\t}\n\n\t/**\n\t * Resolves the name of an ENS node.\n\t * @param ENSName - The node to resolve\n\t * @returns - The name\n\t */\n\tpublic async getName(ENSName: string, checkInterfaceSupport = true): Promise<string> {\n\t\treturn this._resolver.getName(ENSName, checkInterfaceSupport);\n\t}\n\n\t/**\n\t * Returns the X and Y coordinates of the curve point for the public key.\n\t * @param ENSName - The ENS name\n\t * @returns - The X and Y coordinates of the curve point for the public key\n\t * @example\n\t * ```ts\n\t * const key = await web3.eth.ens.getPubkey('ethereum.eth');\n\t * console.log(key);\n\t * > {\n\t * \"0\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n\t * \"1\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n\t * \"x\": \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n\t * \"y\": \"0x0000000000000000000000000000000000000000000000000000000000000000\"\n\t * }\n\t * ```\n\t */\n\tpublic async getPubkey(ENSName: string) {\n\t\treturn this._resolver.getPubkey(ENSName);\n\t}\n\n\t/**\n\t * Returns the content hash object associated with an ENS node.\n\t * @param ENSName - The ENS name\n\t * @returns - The content hash object associated with an ENS node\n\t * @example\n\t * ```ts\n\t * const hash = await web3.eth.ens.getContenthash('ethereum.eth');\n\t * console.log(hash);\n\t * > 'QmaEBknbGT4bTQiQoe2VNgBJbRfygQGktnaW5TbuKixjYL'\n\t * ```\n\t */\n\tpublic async getContenthash(ENSName: string) {\n\t\treturn this._resolver.getContenthash(ENSName);\n\t}\n\n\t/**\n\t * Checks if the current used network is synced and looks for ENS support there.\n\t * Throws an error if not.\n\t * @returns - The address of the ENS registry if the network has been detected successfully\n\t * @example\n\t * ```ts\n\t * console.log(await web3.eth.ens.checkNetwork());\n\t * > '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'\n\t * ```\n\t */\n\tpublic async checkNetwork() {\n\t\tconst now = Date.now() / 1000;\n\t\tif (!this._lastSyncCheck || now - this._lastSyncCheck > 3600) {\n\t\t\tconst syncInfo = await isSyncing(this);\n\n\t\t\tif (!(typeof syncInfo === 'boolean' && !syncInfo)) {\n\t\t\t\tthrow new ENSNetworkNotSyncedError();\n\t\t\t}\n\n\t\t\tthis._lastSyncCheck = now;\n\t\t}\n\n\t\tif (this._detectedAddress) {\n\t\t\treturn this._detectedAddress;\n\t\t}\n\t\tconst networkType = await getId(this, {\n\t\t\t...this.defaultReturnFormat,\n\t\t\tnumber: FMT_NUMBER.HEX,\n\t\t}); // get the network from provider\n\t\tconst addr = registryAddresses[networkIds[networkType]];\n\n\t\tif (typeof addr === 'undefined') {\n\t\t\tthrow new ENSUnsupportedNetworkError(networkType);\n\t\t}\n\n\t\tthis._detectedAddress = addr;\n\t\treturn this._detectedAddress;\n\t}\n\n\t/**\n\t * Returns true if the related Resolver does support the given signature or interfaceId.\n\t * @param ENSName - The ENS name\n\t * @param interfaceId - The signature of the function or the interfaceId as described in the ENS documentation\n\t * @returns - `true` if the related Resolver does support the given signature or interfaceId.\n\t * @example\n\t * ```ts\n\t * const supports = await web3.eth.ens.supportsInterface('ethereum.eth', 'addr(bytes32');\n\t * console.log(supports);\n\t * > true\n\t * ```\n\t */\n\tpublic async supportsInterface(ENSName: string, interfaceId: string) {\n\t\treturn this._resolver.supportsInterface(ENSName, interfaceId);\n\t}\n\n\t/**\n\t * @returns - Returns all events that can be emitted by the ENS registry.\n\t */\n\tpublic get events() {\n\t\treturn this._registry.events;\n\t}\n\n\t/**\n\t * Sets the address of an ENS name in his resolver.\n\t * @param name - The ENS name\n\t * @param address - The address to set\n\t * @param txConfig - (Optional) The transaction config\n\t * @returns - The transaction receipt\n\t * ```ts\n\t * const receipt = await ens.setAddress('web3js.eth','0xe2597eb05cf9a87eb1309e86750c903ec38e527e');\n\t *```\n\t */\n\tpublic async setAddress(\n\t\tname: string,\n\t\taddress: Address,\n\t\ttxConfig: PayableCallOptions,\n\t): Promise<TransactionReceipt | RevertInstructionError> {\n\t\treturn this._resolver.setAddress(name, address, txConfig);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\nimport { Web3RequestManager, Web3ConfigOptions } from 'web3-core';\nimport { toChecksumAddress, utf8ToHex } from 'web3-utils';\nimport { formatTransaction } from 'web3-eth';\nimport { Address, EthPersonalAPI, ETH_DATA_FORMAT, HexString, Transaction } from 'web3-types';\nimport { validator, isHexStrict } from 'web3-validator';\nimport { personalRpcMethods } from 'web3-rpc-methods';\n\nexport const getAccounts = async (requestManager: Web3RequestManager<EthPersonalAPI>) => {\n\tconst result = await personalRpcMethods.getAccounts(requestManager);\n\n\treturn result.map(toChecksumAddress);\n};\n\nexport const newAccount = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tpassword: string,\n) => {\n\tvalidator.validate(['string'], [password]);\n\n\tconst result = await personalRpcMethods.newAccount(requestManager, password);\n\n\treturn toChecksumAddress(result);\n};\n\nexport const unlockAccount = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\taddress: Address,\n\tpassword: string,\n\tunlockDuration: number,\n) => {\n\tvalidator.validate(['address', 'string', 'uint'], [address, password, unlockDuration]);\n\n\treturn personalRpcMethods.unlockAccount(requestManager, address, password, unlockDuration);\n};\n\nexport const lockAccount = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\taddress: Address,\n) => {\n\tvalidator.validate(['address'], [address]);\n\n\treturn personalRpcMethods.lockAccount(requestManager, address);\n};\n\nexport const importRawKey = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tkeyData: HexString,\n\tpassphrase: string,\n) => {\n\tvalidator.validate(['string', 'string'], [keyData, passphrase]);\n\n\treturn personalRpcMethods.importRawKey(requestManager, keyData, passphrase);\n};\n\nexport const sendTransaction = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\ttx: Transaction,\n\tpassphrase: string,\n\tconfig?: Web3ConfigOptions,\n) => {\n\tconst formattedTx = formatTransaction(tx, ETH_DATA_FORMAT, {\n\t\ttransactionSchema: config?.customTransactionSchema,\n\t});\n\n\treturn personalRpcMethods.sendTransaction(requestManager, formattedTx, passphrase);\n};\n\nexport const signTransaction = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\ttx: Transaction,\n\tpassphrase: string,\n\tconfig?: Web3ConfigOptions,\n) => {\n\tconst formattedTx = formatTransaction(tx, ETH_DATA_FORMAT, {\n\t\ttransactionSchema: config?.customTransactionSchema,\n\t});\n\n\treturn personalRpcMethods.signTransaction(requestManager, formattedTx, passphrase);\n};\n\nexport const sign = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tdata: HexString,\n\taddress: Address,\n\tpassphrase: string,\n) => {\n\tvalidator.validate(['string', 'address', 'string'], [data, address, passphrase]);\n\n\tconst dataToSign = isHexStrict(data) ? data : utf8ToHex(data);\n\n\treturn personalRpcMethods.sign(requestManager, dataToSign, address, passphrase);\n};\n\nexport const ecRecover = async (\n\trequestManager: Web3RequestManager<EthPersonalAPI>,\n\tsignedData: HexString,\n\tsignature: string,\n) => {\n\tvalidator.validate(['string', 'string'], [signedData, signature]);\n\n\tconst signedDataString = isHexStrict(signedData) ? signedData : utf8ToHex(signedData);\n\n\treturn personalRpcMethods.ecRecover(requestManager, signedDataString, signature);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3Context } from 'web3-core';\nimport { Address, EthPersonalAPI, HexString, Transaction } from 'web3-types';\n\nimport * as rpcWrappers from './rpc_method_wrappers.js';\n\n/**\n * Eth Personal allows you to interact with the Ethereum node’s accounts.\n * For using Eth Personal package, first install Web3 package using: `npm i web3` or `yarn add web3` based on your package manager.\n * ```ts\n *\n *import { Web3 } from 'web3';\n * const web3 = new Web3('http://127.0.0.1:7545');\n *\n * console.log(await web3.eth.personal.getAccounts());\n *\n * ```\n * For using individual package install `web3-eth-personal` packages using: `npm i web3-eth-personal` or `yarn add web3-eth-personal`.\n *\n * ```ts\n * import {Personal} from 'web3-eth-personal';\n *\n * const personal = new Personal('http://127.0.0.1:7545');\n * console.log(await personal.getAccounts());\n * ```\n */\nexport class Personal extends Web3Context<EthPersonalAPI> {\n\t/**\n\t *Returns a list of accounts the node controls by using the provider and calling the RPC method personal_listAccounts. Using `web3.eth.accounts.create()` will not add accounts into this list. For that use `web3.eth.personal.newAccount()`.\n\t * @returns - An array of addresses controlled by the node.\n\t * @example\n\t * ```ts\n\t * const accounts = await personal.getAccounts();\n\t * console.log(accounts);\n\t * >\n\t * [\n\t * \t'0x79D7BbaC53C9aF700d0B250e9AE789E503Fcd6AE',\n\t * \t'0xe2597eB05CF9a87eB1309e86750C903EC38E527e',\n\t * \t'0x7eD0e85B8E1E925600B4373e6d108F34AB38a401',\n\t * \t'0xE4bEEf667408b99053dC147Ed19592aDa0d77F59',\n\t * \t'0x7AB80aeB6bb488B7f6c41c58e83Ef248eB39c882',\n\t * \t'0x12B1D9d74d73b1C3A245B19C1C5501c653aF1af9',\n\t * \t'0x1a6075A263Ee140e00Dbf8E374Fc5A443d097894',\n\t * \t'0x4FEC0A51024B13030D26E70904B066C6d41157A5',\n\t * \t'0x03095dc4857BB26f3a4550c5651Df8b7f6b6B1Ef',\n\t * \t'0xac0B9b6e8A17991cb172B2ABAF45Fb5eb769E540'\n\t * ]\n\t * ```\n\t */\n\tpublic async getAccounts() {\n\t\treturn rpcWrappers.getAccounts(this.requestManager);\n\t}\n\n\t/**\n\t * Creates a new account and returns its address.\n\t * **_NOTE:_** This function sends a sensitive information like password. Never call this function over a unsecured Websocket or HTTP provider, as your password will be sent in plain text!\n\t * @param password - The password to encrypt the account with.\n\t * @returns - The address of the new account.\n\t * @example\n\t * ```ts\n\t * const addr = await web3.eth.personal.newAccount('password');\n\t * console.log(addr);\n\t * > '0x1234567891011121314151617181920212223456'\n\t * ```\n\t */\n\tpublic async newAccount(password: string) {\n\t\treturn rpcWrappers.newAccount(this.requestManager, password);\n\t}\n\n\t/**\n\t * Unlocks an account for a given duration.\n\t * @param address - The address of the account to unlock.\n\t * @param password - The password of the account to unlock.\n\t * @param unlockDuration - The duration in seconds to unlock the account for.\n\t * @example\n\t * ```ts\n\t * await personal.unlockAccount(\n\t * \t\"0x0d4aa485ecbc499c70860feb7e5aaeaf5fd8172e\",\n\t * \t\"123456\",\n\t * \t600\n\t * );\n\t * ```\n\t */\n\tpublic async unlockAccount(address: Address, password: string, unlockDuration: number) {\n\t\treturn rpcWrappers.unlockAccount(this.requestManager, address, password, unlockDuration);\n\t}\n\t/**\n\t * Locks the given account\n\t * @param address - The address of the account to lock.\n\t * @returns - `true` if the account was locked, otherwise `false`.\n\t * @example\n\t * ```ts\n\t * await personal.lockAccount(\n\t * \t\"0x0d4aa485ecbc499c70860feb7e5aaeaf5fd8172e\"\n\t * );\n\t * ```\n\t */\n\tpublic async lockAccount(address: Address) {\n\t\treturn rpcWrappers.lockAccount(this.requestManager, address);\n\t}\n\t/**\n\t * Imports the given private key into the key store, encrypting it with the passphrase.\n\t * @param keyData - An unencrypted private key (hex string).\n\t * @param passphrase - The password of the account\n\t * @returns - The address of the new account.\n\t * @example\n\t * ```ts\n\t * const accountAddress = await personal.importRawKey(\n\t * \t\"abe40cb08850da918ee951b237fa87946499b2d8643e4aa12b0610b050c731f6\",\n\t * \t\"123456\"\n\t * );\n\t *\n\t * console.log(unlockTx);\n\t * > 0x8727a8b34ec833154b72b62cac05d69f86eb6556\n\t * ```\n\t */\n\tpublic async importRawKey(keyData: HexString, passphrase: string) {\n\t\treturn rpcWrappers.importRawKey(this.requestManager, keyData, passphrase);\n\t}\n\n\t/**\n\t * This method sends a transaction over the management API.\n\t * **_NOTE:_** Sending your account password over an unsecured HTTP RPC connection is highly unsecure.\n\t * @param tx - The transaction options\n\t * @param passphrase - The passphrase of the current account\n\t * @returns - The transaction hash\n\t * @example\n\t * ```ts\n\t * const txHash = personal\n\t * .sendTransaction({\n\t * \tfrom: \"0x0d4aa485ecbc499c70860feb7e5aaeaf5fd8172e\",\n\t * \tgasPrice: \"20000000000\",\n\t * \tgas: \"21000\",\n\t * \tto: \"0x3535353535353535353535353535353535353535\",\n\t * \tvalue: \"1000000\",\n\t * \tdata: \"\",\n\t * \tnonce: 0,\n\t * },\n\t * \"123456\");\n\t *\n\t * console.log(txHash);\n\t * > 0x9445325c3c5638c9fe425b003b8c32f03e9f99d409555a650a6838ba712bb51b\n\t * ```\n\t */\n\tpublic async sendTransaction(tx: Transaction, passphrase: string) {\n\t\treturn rpcWrappers.sendTransaction(this.requestManager, tx, passphrase, this.config);\n\t}\n\t/**\n\t * Signs a transaction. This account needs to be unlocked.\n\t * **_NOTE:_** Sending your account password over an unsecured HTTP RPC connection is highly unsecure.\n\t * @param tx - The transaction data to sign. See sendTransaction for more information.\n\t * @param passphrase - The password of the `from` account, to sign the transaction with.\n\t * @returns - The RLP encoded transaction. The `raw` property can be used to send the transaction using sendSignedTransaction.\n\t * @example\n\t * ```ts\n\t * const tx = personal\n\t * .signTransaction({\n\t * \tfrom: \"0x0d4aa485ecbc499c70860feb7e5aaeaf5fd8172e\",\n\t * \tgasPrice: \"20000000000\",\n\t * \tgas: \"21000\",\n\t * \tto: \"0x3535353535353535353535353535353535353535\",\n\t * \tvalue: \"1000000000000000000\",\n\t * \tdata: \"\",\n\t * \tnonce: 0,\n\t * },\n\t * \"123456\");\n\t *\n\t * console.log(tx);\n\t *\n\t * > {\n\t * \traw: '0xf86e808504a817c800825208943535353535353535353535353535353535353535880de0b6b3a764000080820a95a0c951c03238fe930e6e69ab9d6af9f29248a514048e44884f0e60c4de40de3526a038b71399bf0c8925749ab79e91ce6cd2fc068c84c18ff6a197b48c4cbef01e00',\n\t * \ttx: {\n\t * \ttype: '0x0',\n\t * \tnonce: '0x0',\n\t * \tgasPrice: '0x4a817c800',\n\t * \tmaxPriorityFeePerGas: null,\n\t * \tmaxFeePerGas: null,\n\t * \tgas: '0x5208',\n\t * \tvalue: '0xde0b6b3a7640000',\n\t * \tinput: '0x',\n\t * \tv: '0xa95',\n\t * \tr: '0xc951c03238fe930e6e69ab9d6af9f29248a514048e44884f0e60c4de40de3526',\n\t * \ts: '0x38b71399bf0c8925749ab79e91ce6cd2fc068c84c18ff6a197b48c4cbef01e00',\n\t * \tto: '0x3535353535353535353535353535353535353535',\n\t * \thash: '0x65e3df790ab2a32068b13cff970b26445b8995229ae4abbed61bd996f09fce69'\n\t * \t}\n\t * }\n\t * ```\n\t */\n\tpublic async signTransaction(tx: Transaction, passphrase: string) {\n\t\treturn rpcWrappers.signTransaction(this.requestManager, tx, passphrase, this.config);\n\t}\n\t/**\n\t * Calculates an Ethereum specific signature with:\n\t * sign(keccak256(\"\\x19Ethereum Signed Message:\\n\" + dataToSign.length + dataToSign)))\n\t * Adding a prefix to the message makes the calculated signature recognisable as an Ethereum specific signature.\n\t *\n\t * If you have the original message and the signed message, you can discover the signing account address using web3.eth.personal.ecRecover\n\t * **_NOTE:_** Sending your account password over an unsecured HTTP RPC connection is highly unsecure.\n\t * @param data - The data to sign.\n\t * @param address - The address to sign with.\n\t * @param passphrase - The passphrase to decrypt the account with.\n\t * @returns - The signature.\n\t * @example\n\t * ```ts\n\t * const sig = await personal.sign(\"Hello world\", \"0x0D4Aa485ECbC499c70860fEb7e5AaeAf5fd8172E\", \"123456\")\n\t * console.log(sig)\n\t * > 0x5d21d01b3198ac34d0585a9d76c4d1c8123e5e06746c8962318a1c08ffb207596e6fce4a6f377b7c0fc98c5f646cd73438c80e8a1a95cbec55a84c2889dca0301b\n\t * ```\n\t */\n\tpublic async sign(data: HexString, address: Address, passphrase: string) {\n\t\treturn rpcWrappers.sign(this.requestManager, data, address, passphrase);\n\t}\n\n\t/**\n\t * Recovers the account that signed the data.\n\t * @param signedData - Data that was signed. If String it will be converted using {@link utf8ToHex}\n\t * @param signature - The signature\n\t * @returns - The address of the account that signed the data.\n\t * @example\n\t * ```ts\n\t * const address = await personal.ecRecover(\n\t * \t\"Hello world\",\n\t * \t\"0x5d21d01b3198ac34d0585a9d76c4d1c8123e5e06746c8962318a1c08ffb207596e6fce4a6f377b7c0fc98c5f646cd73438c80e8a1a95cbec55a84c2889dca0301b\"\n\t * );\n\t * console.log(address);\n\t * > 0x0d4aa485ecbc499c70860feb7e5aaeaf5fd8172e\n\t * ```\n\t */\n\tpublic async ecRecover(signedData: HexString, signature: string) {\n\t\treturn rpcWrappers.ecRecover(this.requestManager, signedData, signature);\n\t}\n}\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {ClientOptions, ClientRequestArgs} from \"web3-providers-ws\";\nimport { ReconnectOptions } from 'web3-utils';\n\nexport enum Transport {\n HTTPS = \"https\",\n WebSocket = \"wss\"\n};\n\nexport enum Network {\n ETH_MAINNET = \"eth_mainnet\",\n ETH_GOERLI = \"eth_goerli\",\n ETH_SEPOLIA = \"eth_sepolia\",\n ETH_HOLESKY = \"eth_holesky\",\n\n POLYGON_MAINNET= \"polygon_mainnet\",\n POLYGON_MUMBAI= \"polygon_mumbai\",\n POLYGON_AMONY= \"polygon_amony\",\n\n ARBITRUM_MAINNET = \"arbitrum_mainnet\",\n ARBITRUM_SEPOLIA = \"arbitrum_sepolia\",\n\n BASE_MAINNET = \"base_mainnet\",\n BASE_SEPOLIA = \"base_sepolia\",\n\n OPTIMISM_MAINNET = \"optimism_mainnet\",\n OPTIMISM_SEPOLIA = \"optimism_sepolia\",\n\n BNB_MAINNET = \"bnb_mainnet\",\n BNB_TESTNET = \"bnb_testnet\"\n};\n\n// Combining the ws types\nexport type SocketOptions = {\n socketOptions?: ClientOptions | ClientRequestArgs;\n reconnectOptions?: Partial<ReconnectOptions>;\n};","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/* eslint-disable max-classes-per-file */\n\nimport { BaseWeb3Error } from 'web3-errors';\n\nconst ERR_QUICK_NODE_RATE_LIMIT = 1300;\nexport class QuickNodeRateLimitError extends BaseWeb3Error {\n\tpublic code = ERR_QUICK_NODE_RATE_LIMIT;\n\n\tpublic constructor(error?: Error) {\n\t\tsuper(`You've reach the rate limit of free RPC calls from our Partner Quick Nodes. There are two options you can either create a paid Quick Nodes account and get 20% off for 2 months using WEB3JS referral code, or use Free public RPC endpoint.`, error);\n\t}\n}\n\nconst ERR_PROVIDER_CONFIG_OPTIONS = 1301;\nexport class ProviderConfigOptionsError extends BaseWeb3Error {\n\tpublic code = ERR_PROVIDER_CONFIG_OPTIONS;\n\n\tpublic constructor(msg: string) {\n\t\tsuper(`Invalid provider config options given for ${msg}`);\n\t}\n}\n/* eslint-enable max-classes-per-file */","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport HttpProvider, { HttpProviderOptions } from \"web3-providers-http\";\nimport WebSocketProvider from \"web3-providers-ws\";\nimport {\n EthExecutionAPI, JsonRpcResult, ProviderConnectInfo, ProviderMessage,\n ProviderRpcError, Web3APIMethod, Web3APIPayload, Web3APIReturnType, Web3APISpec, Web3BaseProvider,\n Web3Eip1193ProviderEventCallback,\n Web3ProviderEventCallback,\n Web3ProviderMessageEventCallback,\n Web3ProviderStatus,\n JsonRpcResponseWithResult,\n} from \"web3-types\";\nimport { Eip1193Provider } from \"web3-utils\";\nimport { Transport, Network, SocketOptions } from \"./types.js\";\nimport { ProviderConfigOptionsError } from \"./errors.js\";\n\n/* \nThis class can be used to create new providers only when there is custom logic required in each Request method like\nchecking specific HTTP status codes and performing any action, throwing new error types or setting additional HTTP headers in requests, or even modifying requests.\n\nAnother simpler approach can be a function simply returning URL strings instead of using the following class in case if\nno additional logic implementation is required in the provider.\n*/\n\nexport abstract class Web3ExternalProvider<\n API extends Web3APISpec = EthExecutionAPI,\n> extends Eip1193Provider {\n\n public provider!: Web3BaseProvider;\n public readonly transport: Transport;\n\n public abstract getRPCURL(network: Network, transport: Transport, token: string, host: string): string;\n\n public constructor(\n network: Network,\n transport: Transport,\n token: string,\n host: string,\n providerConfigOptions?: HttpProviderOptions | SocketOptions) {\n\n super();\n\n if(providerConfigOptions!== undefined && \n transport === Transport.HTTPS && \n !('providerOptions' in providerConfigOptions)){\n\n throw new ProviderConfigOptionsError(\"HTTP Provider\");\n } \n else if(providerConfigOptions!== undefined &&\n transport === Transport.WebSocket && \n !( 'socketOptions' in providerConfigOptions ||\n 'reconnectOptions' in providerConfigOptions \n )){\n throw new ProviderConfigOptionsError(\"Websocket Provider\");\n }\n\n this.transport = transport;\n if (transport === Transport.HTTPS) {\n this.provider = new HttpProvider(\n this.getRPCURL(network, transport, token, host), \n providerConfigOptions as HttpProviderOptions);\n }\n else if (transport === Transport.WebSocket) {\n this.provider = new WebSocketProvider(\n this.getRPCURL(network, transport, token, host), \n (providerConfigOptions as SocketOptions)?.socketOptions, \n (providerConfigOptions as SocketOptions)?.reconnectOptions);\n }\n }\n\n public async request<\n Method extends Web3APIMethod<API>,\n ResultType = Web3APIReturnType<API, Method>,\n >(\n payload: Web3APIPayload<EthExecutionAPI, Method>,\n requestOptions?: RequestInit,\n ): Promise<JsonRpcResponseWithResult<ResultType>> {\n\n if (this.transport === Transport.HTTPS) {\n return await ((this.provider as HttpProvider).request(payload, requestOptions)) as unknown as JsonRpcResponseWithResult<ResultType>;\n }\n\n return (this.provider as WebSocketProvider).request(payload);\n\n }\n\n public getStatus(): Web3ProviderStatus {\n return this.provider.getStatus();\n }\n public supportsSubscriptions(): boolean {\n return this.provider.supportsSubscriptions();\n }\n public once(type: \"disconnect\", listener: Web3Eip1193ProviderEventCallback<ProviderRpcError>): void;\n public once<T = JsonRpcResult>(type: string, listener: Web3Eip1193ProviderEventCallback<ProviderMessage> | Web3ProviderEventCallback<T>): void;\n public once(type: \"connect\", listener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>): void;\n public once(type: \"chainChanged\", listener: Web3Eip1193ProviderEventCallback<string>): void;\n public once(type: \"accountsChanged\", listener: Web3Eip1193ProviderEventCallback<string[]>): void;\n public once(_type: string, _listener: unknown): void {\n if (this.provider?.once)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.provider.once(_type, _listener as any);\n }\n public removeAllListeners?(_type: string): void {\n if (this.provider?.removeAllListeners)\n this.provider.removeAllListeners(_type);\n }\n public connect(): void {\n if (this.provider?.connect)\n this.provider.connect();\n }\n public disconnect(_code?: number | undefined, _data?: string | undefined): void {\n if (this.provider?.disconnect)\n this.provider.disconnect(_code, _data);\n }\n public reset(): void {\n if (this.provider?.reset)\n this.provider.reset();\n }\n\n public on(type: \"disconnect\", listener: Web3Eip1193ProviderEventCallback<ProviderRpcError>): void;\n public on<T = JsonRpcResult>(type: string, listener: Web3Eip1193ProviderEventCallback<ProviderMessage> | Web3ProviderMessageEventCallback<T>): void;\n public on<T = JsonRpcResult>(type: string, listener: Web3Eip1193ProviderEventCallback<ProviderMessage> | Web3ProviderMessageEventCallback<T>): void;\n public on(type: \"connect\", listener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>): void;\n public on(type: \"chainChanged\", listener: Web3Eip1193ProviderEventCallback<string>): void;\n public on(type: \"accountsChanged\", listener: Web3Eip1193ProviderEventCallback<string[]>): void;\n public on(_type: unknown, _listener: unknown): void {\n if (this.provider)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.provider.on(_type as any, _listener as any);\n }\n public removeListener(type: \"disconnect\", listener: Web3Eip1193ProviderEventCallback<ProviderRpcError>): void;\n public removeListener<T = JsonRpcResult>(type: string, listener: Web3Eip1193ProviderEventCallback<ProviderMessage> | Web3ProviderEventCallback<T>): void;\n public removeListener(type: \"connect\", listener: Web3Eip1193ProviderEventCallback<ProviderConnectInfo>): void;\n public removeListener(type: \"chainChanged\", listener: Web3Eip1193ProviderEventCallback<string>): void;\n public removeListener(type: \"accountsChanged\", listener: Web3Eip1193ProviderEventCallback<string[]>): void;\n public removeListener(_type: unknown, _listener: unknown): void {\n if (this.provider)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n this.provider.removeListener(_type as any, _listener as any);\n }\n}\n\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { EthExecutionAPI, JsonRpcResponseWithResult, Web3APIMethod, Web3APIPayload, Web3APIReturnType, Web3APISpec } from \"web3-types\";\nimport { ResponseError } from \"web3-errors\";\nimport { HttpProviderOptions } from \"web3-providers-http\";\nimport { Transport, Network, SocketOptions } from \"./types.js\";\nimport { Web3ExternalProvider } from \"./web3_provider.js\";\nimport { QuickNodeRateLimitError } from \"./errors.js\";\n\nconst isValid = (str: string) => str !== undefined && str.trim().length > 0;\n\nexport class QuickNodeProvider<\nAPI extends Web3APISpec = EthExecutionAPI,\n> extends Web3ExternalProvider {\n\n // eslint-disable-next-line default-param-last\n public constructor( network: Network = Network.ETH_MAINNET, transport: Transport = Transport.HTTPS, token = \"\", host = \"\", providerConfigOptions?: HttpProviderOptions | SocketOptions) {\n\n super(network, transport, token, host, providerConfigOptions);\n\n }\n\n public async request<\n Method extends Web3APIMethod<API>,\n ResultType = Web3APIReturnType<API, Method>,\n >(\n payload: Web3APIPayload<EthExecutionAPI, Method>,\n requestOptions?: RequestInit,\n ): Promise<JsonRpcResponseWithResult<ResultType>> {\n\n try {\n return await super.request(payload, requestOptions);\n } catch (error) {\n if (error instanceof ResponseError && error.statusCode === 429){\n throw new QuickNodeRateLimitError(error);\n }\n throw error;\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n public getRPCURL(network: Network,\n transport: Transport,\n _token: string, \n _host: string) {\n \n let host = \"\";\n let token = \"\";\n\n switch (network) {\n case Network.ETH_MAINNET:\n host = isValid(_host) ? _host : \"powerful-holy-bush.quiknode.pro\";\n token = isValid(_token) ? _token : \"3240624a343867035925ff7561eb60dfdba2a668\";\n break;\n case Network.ETH_SEPOLIA:\n host = isValid(_host) ? _host : \"dimensional-fabled-glitter.ethereum-sepolia.quiknode.pro\";\n token = isValid(_token) ? _token : \"382a3b5a4b938f2d6e8686c19af4b22921fde2cd\";\n break\n case Network.ETH_HOLESKY:\n host = isValid(_host) ? _host : \"yolo-morning-card.ethereum-holesky.quiknode.pro\";\n token = isValid(_token) ? _token : \"481ebe70638c4dcf176af617a16d02ab866b9af9\";\n break;\n\n case Network.ARBITRUM_MAINNET:\n host = isValid(_host) ? _host : \"autumn-divine-dinghy.arbitrum-mainnet.quiknode.pro\";\n token = isValid(_token) ? _token : \"a5d7bfbf60b5ae9ce3628e53d69ef50d529e9a8c\";\n break;\n case Network.ARBITRUM_SEPOLIA:\n host = isValid(_host) ? _host : \"few-patient-pond.arbitrum-sepolia.quiknode.pro\";\n token = isValid(_token) ? _token : \"3be985450970628c860b959c65cd2642dcafe53c\";\n break;\n\n case Network.BNB_MAINNET:\n host = isValid(_host) ? _host : \"purple-empty-reel.bsc.quiknode.pro\";\n token = isValid(_token) ? _token : \"ebf6c532961e21f092ff2facce1ec4c89c540158\";\n break;\n case Network.BNB_TESTNET:\n host = isValid(_host) ? _host : \"floral-rough-scion.bsc-testnet.quiknode.pro\";\n token = isValid(_token) ? _token : \"5b297e5acff5f81f4c37ebf6f235f7299b6f9d28\";\n break;\n \n case Network.POLYGON_MAINNET:\n host = isValid(_host) ? _host : \"small-chaotic-moon.matic.quiknode.pro\";\n token = isValid(_token) ? _token : \"847569f8a017e84d985e10d0f44365d965a951f1\";\n break;\n case Network.POLYGON_AMONY:\n host = isValid(_host) ? _host : \"prettiest-side-shape.matic-amoy.quiknode.pro\";\n token = isValid(_token) ? _token : \"79a9476eea661d4f82de614db1d8a895b14b881c\";\n break;\n default:\n throw new Error(\"Network info not avalible.\");\n }\n\n return `${transport}://${host}/${token}`;\n }\n}\n\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { QuickNodeProvider } from './web3_provider_quicknode.js';\n\nexport * from './types.js';\nexport * from './web3_provider_quicknode.js';\nexport * from './web3_provider.js';\nexport * from './errors.js';\n\n// default providers\nexport const mainnet = new QuickNodeProvider(); ","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport {\n\tdecodeLog,\n\tdecodeParameter,\n\tdecodeParameters,\n\tencodeEventSignature,\n\tencodeFunctionCall,\n\tencodeFunctionSignature,\n\tencodeParameter,\n\tencodeParameters,\n} from 'web3-eth-abi';\n\n/**\n * The object for `web3.abi`\n */\nexport default {\n\tencodeEventSignature,\n\tencodeFunctionCall,\n\tencodeFunctionSignature,\n\tencodeParameter,\n\tencodeParameters,\n\tdecodeParameter,\n\tdecodeParameters,\n\tdecodeLog,\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { EthExecutionAPI, Bytes, Transaction, KeyStore, ETH_DATA_FORMAT } from 'web3-types';\nimport { format } from 'web3-utils';\nimport { Web3Context } from 'web3-core';\nimport { prepareTransactionForSigning } from 'web3-eth';\nimport {\n\tcreate,\n\tdecrypt,\n\tencrypt,\n\thashMessage,\n\tprivateKeyToAccount,\n\trecover,\n\trecoverTransaction,\n\tsignTransaction,\n\tsign,\n\tWallet,\n\tprivateKeyToAddress,\n\tparseAndValidatePrivateKey,\n\tprivateKeyToPublicKey,\n} from 'web3-eth-accounts';\n\n/**\n * Initialize the accounts module for the given context.\n *\n * To avoid multiple package dependencies for `web3-eth-accounts` we are creating\n * this function in `web3` package. In future the actual `web3-eth-accounts` package\n * should be converted to context aware.\n */\nexport const initAccountsForContext = (context: Web3Context<EthExecutionAPI>) => {\n\tconst signTransactionWithContext = async (transaction: Transaction, privateKey: Bytes) => {\n\t\tconst tx = await prepareTransactionForSigning(transaction, context);\n\n\t\tconst privateKeyBytes = format({ format: 'bytes' }, privateKey, ETH_DATA_FORMAT);\n\n\t\treturn signTransaction(tx, privateKeyBytes);\n\t};\n\n\tconst privateKeyToAccountWithContext = (privateKey: Uint8Array | string) => {\n\t\tconst account = privateKeyToAccount(privateKey);\n\n\t\treturn {\n\t\t\t...account,\n\t\t\tsignTransaction: async (transaction: Transaction) =>\n\t\t\t\tsignTransactionWithContext(transaction, account.privateKey),\n\t\t};\n\t};\n\n\tconst decryptWithContext = async (\n\t\tkeystore: KeyStore | string,\n\t\tpassword: string,\n\t\toptions?: Record<string, unknown>,\n\t) => {\n\t\tconst account = await decrypt(keystore, password, (options?.nonStrict as boolean) ?? true);\n\n\t\treturn {\n\t\t\t...account,\n\t\t\tsignTransaction: async (transaction: Transaction) =>\n\t\t\t\tsignTransactionWithContext(transaction, account.privateKey),\n\t\t};\n\t};\n\n\tconst createWithContext = () => {\n\t\tconst account = create();\n\n\t\treturn {\n\t\t\t...account,\n\t\t\tsignTransaction: async (transaction: Transaction) =>\n\t\t\t\tsignTransactionWithContext(transaction, account.privateKey),\n\t\t};\n\t};\n\n\tconst wallet = new Wallet({\n\t\tcreate: createWithContext,\n\t\tprivateKeyToAccount: privateKeyToAccountWithContext,\n\t\tdecrypt: decryptWithContext,\n\t});\n\n\treturn {\n\t\tsignTransaction: signTransactionWithContext,\n\t\tcreate: createWithContext,\n\t\tprivateKeyToAccount: privateKeyToAccountWithContext,\n\t\tdecrypt: decryptWithContext,\n\t\trecoverTransaction,\n\t\thashMessage,\n\t\tsign,\n\t\trecover,\n\t\tencrypt,\n\t\twallet,\n\t\tprivateKeyToAddress,\n\t\tparseAndValidatePrivateKey,\n\t\tprivateKeyToPublicKey,\n\t};\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\nimport { Web3APISpec, EIP1193Provider } from 'web3-types';\n\nexport enum Eip6963EventName {\n\teip6963announceProvider = 'eip6963:announceProvider',\n\teip6963requestProvider = 'eip6963:requestProvider',\n}\n\nexport interface EIP6963ProviderInfo {\n\tuuid: string;\n\tname: string;\n\ticon: string;\n\trdns: string;\n}\n\nexport interface EIP6963ProviderDetail<API = Web3APISpec> {\n\tinfo: EIP6963ProviderInfo;\n\tprovider: EIP1193Provider<API>;\n}\n\nexport type EIP6963ProviderResponse = Map<string, EIP6963ProviderDetail>;\n\nexport interface EIP6963AnnounceProviderEvent<API = Web3APISpec> extends CustomEvent {\n\ttype: Eip6963EventName.eip6963announceProvider;\n\tdetail: EIP6963ProviderDetail<API>;\n}\n\nexport interface EIP6963RequestProviderEvent extends Event {\n\ttype: Eip6963EventName.eip6963requestProvider;\n}\n\nexport const eip6963ProvidersMap: EIP6963ProviderResponse = new Map();\n\nexport const web3ProvidersMapUpdated = 'web3:providersMapUpdated';\nexport interface EIP6963ProvidersMapUpdateEvent extends CustomEvent {\n\ttype: string;\n\tdetail: EIP6963ProviderResponse;\n}\n\nexport const requestEIP6963Providers = async (): Promise<EIP6963ProviderResponse> =>\n\tnew Promise((resolve, reject) => {\n\t\tif (typeof window === 'undefined') {\n\t\t\treject(\n\t\t\t\tnew Error(\n\t\t\t\t\t'window object not available, EIP-6963 is intended to be used within a browser',\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\twindow.addEventListener(\n\t\t\tEip6963EventName.eip6963announceProvider as any,\n\t\t\t(event: EIP6963AnnounceProviderEvent) => {\n\t\t\t\teip6963ProvidersMap.set(event.detail.info.uuid, event.detail);\n\n\t\t\t\tconst newEvent: EIP6963ProvidersMapUpdateEvent = new CustomEvent(\n\t\t\t\t\tweb3ProvidersMapUpdated,\n\t\t\t\t\t{ detail: eip6963ProvidersMap },\n\t\t\t\t);\n\n\t\t\t\twindow.dispatchEvent(newEvent);\n\t\t\t\tresolve(eip6963ProvidersMap);\n\t\t\t},\n\t\t);\n\n\t\twindow.dispatchEvent(new Event(Eip6963EventName.eip6963requestProvider));\n\t});\n\nexport const onNewProviderDiscovered = (\n\tcallback: (providerEvent: EIP6963ProvidersMapUpdateEvent) => void,\n) => {\n\tif (typeof window === 'undefined') {\n\t\tthrow new Error(\n\t\t\t'window object not available, EIP-6963 is intended to be used within a browser',\n\t\t);\n\t}\n\twindow.addEventListener(web3ProvidersMapUpdated as any, callback);\n};\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n// eslint-disable-next-line max-classes-per-file\nimport {\n\tWeb3Context,\n\tWeb3ContextInitOptions,\n\tWeb3ContextObject,\n\tWeb3SubscriptionConstructor,\n\tisSupportedProvider,\n} from 'web3-core';\nimport { Web3Eth, RegisteredSubscription, registeredSubscriptions } from 'web3-eth';\nimport Contract from 'web3-eth-contract';\nimport { ENS, registryAddresses } from 'web3-eth-ens';\nimport { Iban } from 'web3-eth-iban';\nimport { Personal } from 'web3-eth-personal';\nimport { Net } from 'web3-net';\nimport * as utils from 'web3-utils';\nimport { isNullish, isDataFormat, isContractInitOptions } from 'web3-utils';\nimport { mainnet } from 'web3-rpc-providers';\nimport {\n\tAddress,\n\tContractAbi,\n\tContractInitOptions,\n\tEthExecutionAPI,\n\tSupportedProviders,\n\tDataFormat,\n} from 'web3-types';\nimport { InvalidMethodParamsError } from 'web3-errors';\nimport abi from './abi.js';\nimport { initAccountsForContext } from './accounts.js';\nimport { Web3EthInterface } from './types.js';\nimport { Web3PkgInfo } from './version.js';\nimport { onNewProviderDiscovered, requestEIP6963Providers } from './web3_eip6963.js';\n\nexport class Web3<\n\tCustomRegisteredSubscription extends {\n\t\t[key: string]: Web3SubscriptionConstructor<EthExecutionAPI>;\n\t} = RegisteredSubscription,\n> extends Web3Context<EthExecutionAPI, CustomRegisteredSubscription & RegisteredSubscription> {\n\tpublic static version = Web3PkgInfo.version;\n\tpublic static utils = utils;\n\tpublic static requestEIP6963Providers = requestEIP6963Providers;\n\tpublic static onNewProviderDiscovered = onNewProviderDiscovered;\n\tpublic static modules = {\n\t\tWeb3Eth,\n\t\tIban,\n\t\tNet,\n\t\tENS,\n\t\tPersonal,\n\t};\n\n\tpublic utils: typeof utils;\n\n\tpublic eth: Web3EthInterface;\n\n\tpublic constructor(\n\t\tproviderOrContext:\n\t\t\t| string\n\t\t\t| SupportedProviders<EthExecutionAPI>\n\t\t\t| Web3ContextInitOptions<EthExecutionAPI, CustomRegisteredSubscription> = mainnet,\n\t) {\n\t\tif (\n\t\t\tisNullish(providerOrContext) ||\n\t\t\t(typeof providerOrContext === 'string' && providerOrContext.trim() === '') ||\n\t\t\t(typeof providerOrContext !== 'string' &&\n\t\t\t\t!isSupportedProvider(providerOrContext as SupportedProviders<EthExecutionAPI>) &&\n\t\t\t\t!(providerOrContext as Web3ContextInitOptions).provider)\n\t\t) {\n\t\t\tconsole.warn(\n\t\t\t\t'NOTE: web3.js is running without provider. You need to pass a provider in order to interact with the network!',\n\t\t\t);\n\t\t}\n\n\t\tlet contextInitOptions: Web3ContextInitOptions<EthExecutionAPI> = {};\n\t\tif (\n\t\t\ttypeof providerOrContext === 'string' ||\n\t\t\tisSupportedProvider(providerOrContext as SupportedProviders)\n\t\t) {\n\t\t\tcontextInitOptions.provider = providerOrContext as\n\t\t\t\t| undefined\n\t\t\t\t| string\n\t\t\t\t| SupportedProviders;\n\t\t} else if (providerOrContext) {\n\t\t\tcontextInitOptions = providerOrContext as Web3ContextInitOptions;\n\t\t} else {\n\t\t\tcontextInitOptions = {};\n\t\t}\n\n\t\tcontextInitOptions.registeredSubscriptions = {\n\t\t\t// all the Eth standard subscriptions\n\t\t\t...registeredSubscriptions,\n\t\t\t// overridden and combined with any custom subscriptions\n\t\t\t...(contextInitOptions.registeredSubscriptions ?? {}),\n\t\t} as CustomRegisteredSubscription;\n\n\t\tsuper(contextInitOptions);\n\t\tconst accounts = initAccountsForContext(this);\n\n\t\t// Init protected properties\n\t\tthis._wallet = accounts.wallet;\n\t\tthis._accountProvider = accounts;\n\n\t\tthis.utils = utils;\n\n\t\t// Have to use local alias to initiate contract context\n\t\t// eslint-disable-next-line @typescript-eslint/no-this-alias\n\t\tconst self = this;\n\n\t\tclass ContractBuilder<Abi extends ContractAbi> extends Contract<Abi> {\n\t\t\tpublic constructor(jsonInterface: Abi);\n\t\t\tpublic constructor(\n\t\t\t\tjsonInterface: Abi,\n\t\t\t\taddressOrOptionsOrContext?: Address | ContractInitOptions | Web3Context,\n\t\t\t);\n\t\t\tpublic constructor(\n\t\t\t\tjsonInterface: Abi,\n\t\t\t\taddressOrOptionsOrContext?: Address | ContractInitOptions | Web3Context,\n\t\t\t\toptionsOrContextOrReturnFormat?: ContractInitOptions | Web3Context | DataFormat,\n\t\t\t);\n\t\t\tpublic constructor(\n\t\t\t\tjsonInterface: Abi,\n\t\t\t\taddressOrOptionsOrContext?: Address | ContractInitOptions,\n\t\t\t\toptionsOrContextOrReturnFormat?: ContractInitOptions,\n\t\t\t\tcontextOrReturnFormat?: Web3Context | DataFormat,\n\t\t\t);\n\t\t\tpublic constructor(\n\t\t\t\tjsonInterface: Abi,\n\t\t\t\taddressOrOptionsOrContext?: Address | ContractInitOptions,\n\t\t\t\toptionsOrContextOrReturnFormat?: ContractInitOptions,\n\t\t\t\tcontextOrReturnFormat?: Web3Context | DataFormat,\n\t\t\t\treturnFormat?: DataFormat,\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\tisContractInitOptions(addressOrOptionsOrContext) &&\n\t\t\t\t\tisContractInitOptions(optionsOrContextOrReturnFormat)\n\t\t\t\t) {\n\t\t\t\t\tthrow new InvalidMethodParamsError(\n\t\t\t\t\t\t'Should not provide options at both 2nd and 3rd parameters',\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tlet address: string | undefined;\n\t\t\t\tlet options: object = {};\n\t\t\t\tlet context: Web3ContextObject;\n\t\t\t\tlet dataFormat: DataFormat | undefined;\n\n\t\t\t\t// add validation so its not a breaking change\n\t\t\t\tif (\n\t\t\t\t\t!isNullish(addressOrOptionsOrContext) &&\n\t\t\t\t\ttypeof addressOrOptionsOrContext !== 'object' &&\n\t\t\t\t\ttypeof addressOrOptionsOrContext !== 'string'\n\t\t\t\t) {\n\t\t\t\t\tthrow new InvalidMethodParamsError();\n\t\t\t\t}\n\n\t\t\t\tif (typeof addressOrOptionsOrContext === 'string') {\n\t\t\t\t\taddress = addressOrOptionsOrContext;\n\t\t\t\t}\n\t\t\t\tif (isContractInitOptions(addressOrOptionsOrContext)) {\n\t\t\t\t\toptions = addressOrOptionsOrContext as object;\n\t\t\t\t} else if (isContractInitOptions(optionsOrContextOrReturnFormat)) {\n\t\t\t\t\toptions = optionsOrContextOrReturnFormat as object;\n\t\t\t\t} else {\n\t\t\t\t\toptions = {};\n\t\t\t\t}\n\n\t\t\t\tif (addressOrOptionsOrContext instanceof Web3Context) {\n\t\t\t\t\tcontext = addressOrOptionsOrContext;\n\t\t\t\t} else if (optionsOrContextOrReturnFormat instanceof Web3Context) {\n\t\t\t\t\tcontext = optionsOrContextOrReturnFormat;\n\t\t\t\t} else if (contextOrReturnFormat instanceof Web3Context) {\n\t\t\t\t\tcontext = contextOrReturnFormat;\n\t\t\t\t} else {\n\t\t\t\t\tcontext = self.getContextObject() as Web3ContextObject;\n\t\t\t\t}\n\n\t\t\t\tif (returnFormat) {\n\t\t\t\t\tdataFormat = returnFormat;\n\t\t\t\t} else if (isDataFormat(optionsOrContextOrReturnFormat)) {\n\t\t\t\t\tdataFormat = optionsOrContextOrReturnFormat as DataFormat;\n\t\t\t\t} else if (isDataFormat(contextOrReturnFormat)) {\n\t\t\t\t\tdataFormat = contextOrReturnFormat;\n\t\t\t\t}\n\n\t\t\t\tsuper(jsonInterface, address, options, context, dataFormat);\n\t\t\t\tsuper.subscribeToContextEvents(self);\n\n\t\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\t\tif (!isNullish(eth)) {\n\t\t\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\t\t\tconst TxMiddleware = eth.getTransactionMiddleware();\n\t\t\t\t\tif (!isNullish(TxMiddleware)) {\n\t\t\t\t\t\tsuper.setTransactionMiddleware(TxMiddleware);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst eth = self.use(Web3Eth);\n\n\t\t// Eth Module\n\t\tthis.eth = Object.assign(eth, {\n\t\t\t// ENS module\n\t\t\tens: self.use(ENS, registryAddresses.main), // registry address defaults to main network\n\n\t\t\t// Iban helpers\n\t\t\tIban,\n\n\t\t\tnet: self.use(Net),\n\t\t\tpersonal: self.use(Personal),\n\n\t\t\t// Contract helper and module\n\t\t\tContract: ContractBuilder,\n\n\t\t\t// ABI Helpers\n\t\t\tabi,\n\n\t\t\t// Accounts helper\n\t\t\taccounts,\n\t\t});\n\t}\n}\nexport default Web3;\n","/* eslint-disable header/header */ export const Web3PkgInfo = { version: '4.13.0' };\n","/*\nThis file is part of web3.js.\n\nweb3.js is free software: you can redistribute it and/or modify\nit under the terms of the GNU Lesser General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nweb3.js is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU Lesser General Public License for more details.\n\nYou should have received a copy of the GNU Lesser General Public License\nalong with web3.js. If not, see <http://www.gnu.org/licenses/>.\n*/\n\n/**\n * This is the main (or 'umbrella') class of the web3.js library.\n *\n * ```ts\n * import Web3 from 'web3';\n *\n * > Web3.utils\n * > Web3.version\n * > Web3.givenProvider\n * > Web3.providers\n * > Web3.modules\n * ```\n *\n * # Web3.modules\n *\n * ```ts\n * Web3.modules\n * ```\n *\n * Will return an object with the classes of all major sub modules, to be able to instantiate them manually.\n *\n * #### Returns\n *\n * `Object` A list of module constructors:\n *\n *\n * + `Eth` - `Constructor`: The Eth module for interacting with the Ethereum network\n *\n *\n * + `Net` - `Constructor`: The Net module for interacting with network properties.\n *\n *\n * + `Personal` - `constructor`: The Personal module for interacting with the Ethereum accounts (web3.eth.personal).\n *\n * #### Example\n *\n * ```ts\n * Web3.modules\n * > {\n * \tEth: Eth(provider),\n * \tNet: Net(provider),\n * \tPersonal: Personal(provider),\n * }\n * ```\n *\n * See details: {@link Web3.modules}\n *\n * # Web3 Instance\n *\n * The Web3 class is an umbrella package to house all Ethereum related modules.\n *\n * ```ts\n * import Web3 from 'web3';\n *\n * // \"Web3.givenProvider\" will be set if in an Ethereum supported browser.\n * const web3 = new Web3(Web3.givenProvider || 'ws://some.local-or-remote.node:8546');\n *\n * > web3.eth\n * > web3.utils\n * > web3.version\n * ```\n *\n * ### version\n *\n * Contains the current package version of the web3.js library.\n *\n * #### Returns\n * //todo enable when functionality added\n * // @see Web3.version\n *\n * ### utils\n *\n * Static accessible property of the Web3 class and property of the instance as well.\n *\n * ```ts\n * Web3.utils\n * web3.utils\n * ```\n *\n * Utility functions are also exposed on the `Web3` class object diretly.\n *\n * //todo enable when implemented\n * //See details: {@link Web3.utils}\n *\n * ### setProvider\n *\n * ```ts\n * web3.setProvider(myProvider)\n * web3.eth.setProvider(myProvider)\n * ...\n * ```\n *\n * Will change the provider for its module.\n *\n * **_NOTE:_** When called on the umbrella package web3 it will also set the provider for all sub modules web3.eth etc.\n *\n * #### Parameters\n * `Object` - `myProvider`: a valid provider.\n *\n * #### Returns\n * `Boolean`\n *\n * See details: {@link Web3.setProvider}\n *\n * #### Example: Local Geth Node\n * ```ts\n * import Web3 from \"web3\";\n * let web3: Web3 = new Web3('http://localhost:8545');\n * // or\n * let web3: Web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));\n *\n * // change provider\n * web3.setProvider('ws://localhost:8546');\n * // or\n * web3.setProvider(new Web3.providers.WebsocketProvider('ws://localhost:8546'));\n *\n * //todo add IPC provider\n * ```\n *\n * #### Example: Remote Geth Node\n *\n * ```ts\n * // Using a remote node provider, like Alchemy (https://www.alchemyapi.io/supernode), is simple.\n * import Web3 from \"web3\";\n * let web3: Web3 = new Web3(\"https://eth-mainnet.alchemyapi.io/v2/your-api-key\");\n * ```\n *\n * ### providers\n *\n * ```ts\n * web3.providers\n * web3.eth.providers\n * ```\n * Contains the current available providers.\n *\n * #### Returns\n * `Object` with the following providers:\n *\n *\n * + `Object` - `HttpProvider`: HTTP provider, does not support subscriptions.\n *\n *\n * + `Object` - `WebSocketProvider`: The WebSocket provider is the standard for usage in legacy browsers.\n *\n *\n * + `Object` - `IpcProvider`: The IPC provider is used in node.js dapps when running a local node. Gives the most secure connection.\n *\n *\n * #### Example\n * ```ts\n * import { Web3 } from 'web3';\n * // use the given Provider or instantiate a new websocket provider\n * let web3 = new Web3(Web3.givenProvider || 'ws://remotenode.com:8546');\n * // or\n * let web3 = new Web3(Web3.givenProvider || new Web3.providers.WebsocketProvider('ws://remotenode.com:8546'));\n *\n * // Using the IPC provider in node.js\n * import { Web3 } from 'web3';\n * import { IpcProvider } from 'web3-providers-ipc';\n * var web3 = new Web3(new IpcProvider('/Users/myuser/Library/Ethereum/geth.ipc')); // mac os path\n * // on windows the path is: \"\\\\\\\\.\\\\pipe\\\\geth.ipc\"\n * // on linux the path is: \"/users/myuser/.ethereum/geth.ipc\"\n * ```\n * #### Configuration\n *\n * ```ts\n *\n * //===\n * //Http\n * //===\n *\n * import Web3HttpProvider, { HttpProviderOptions } from \"web3-providers-http\";\n *\n * let options: HttpProviderOptions = {\n * \tproviderOptions: {\n * \t\tkeepalive: true,\n * \t\tcredentials: \"omit\",\n * \t\theaders: {\n * \t\t\t\"Access-Control-Allow-Origin\": \"*\",\n * \t\t},\n * \t},\n * };\n *\n *\n * var provider = new Web3HttpProvider(\"http://localhost:8545\", options);\n * web3.setProvider(provider);\n *\n * //===\n * //WebSockets\n * //===\n * import Web3WsProvider, {\n * \tClientOptions,\n * \tClientRequestArgs,\n * \tReconnectOptions,\n * } from \"web3-providers-ws\";\n *\n *\n * let clientOptions: ClientOptions = {\n * \t// Useful for credentialed urls, e.g: ws://username:password@localhost:8546\n * \theaders: {\n * \t\tauthorization: \"Basic username:password\",\n * \t},\n * \tmaxPayload: 100000000,\n * };\n *\n * // Enable auto reconnection\n * let reconnectOptions: ReconnectOptions = {\n * \tautoReconnect: true,\n * \tdelay: 5000, // ms\n * \tmaxAttempts: 5,\n * };\n *\n * //clientOptions and reconnectOptions are optional\n * //clientOptions: ClientOptions | ClientRequestArgs\n * let ws = new Web3WsProvider(\n * \"ws://localhost:8546\",\n * clientOptions,\n * reconnectOptions\n * );\n * web3.setProvider(ws);\n *\n * ```\n * More information for the Http and Websocket provider modules can be found here:\n *\n *\n * - {@link HttpProvider}\n *\n *\n * - {@link WebSocketProvider}\n *\n * See details: {@link Web3.providers}\n *\n *\n * ### givenProvider\n *\n * ```ts\n * web3.givenProvider\n * web3.eth.givenProvider\n * ...\n * ```\n * When using web3.js in an Ethereum compatible browser, it will set with the current native provider by that browser.\n * Will return the given provider by the (browser) environment, otherwise `undefined`.\n *\n * #### Returns\n * `Object` - The given provider set or `undefined`.\n *\n * See details: {@link Web3.givenProvider}\n *\n * ### currentProvider\n *\n * ```ts\n * web3.currentProvider\n * web3.eth.currentProvider\n * ...\n * ```\n * Will return the current provider, otherwise `undefined`.\n *\n * #### Returns\n * `Object`: The current provider, otherwise `undefined`.\n *\n * See details: {@link Web3.currentProvider}\n *\n * ### BatchRequest\n *\n * ```ts\n * new web3.BatchRequest()\n * new web3.BatchRequest()\n * ...\n * ```\n * Class to create and execute batch requests.\n *\n * #### Parameters\n * none\n *\n * #### Returns\n * `Object`: With the following methods:\n *\n * + `add(request)`: To add a request object to the batch call.\n *\n * + `execute()` : To execute the batch request.\n *\n * #### Example\n * ```ts\n * let request1: JsonRpcOptionalRequest = {\n * \tid: 10,\n * \tmethod: 'eth_getBalance',\n * \tparams: [\"0xdc6bad79dab7ea733098f66f6c6f9dd008da3258\", 'latest'],\n * };\n * let request2: JsonRpcOptionalRequest = {\n * \tid: 11,\n * \tmethod: 'eth_getBalance',\n * \tparams: [\"0x962f9a9c2a6c092474d24def35eccb3d9363265e\", 'latest'],\n * };\n *\n * const batch = new web3.BatchRequest();\n *\n * batch.add(request1);\n * batch.add(request2);\n * // add returns a deferred promise which can be used to run specific code after completion of each respective request.\n * //const request2Promise = batch.add(request2);\n *\n * const response = await batch.execute();\n * ```\n * See details: {@link Web3.BatchRequest}\n */\n/**\n * This comment _supports3_ [Markdown](https://marked.js.org/)\n */\n\nimport Web3 from './web3.js';\n\nexport * from './types.js';\nexport default Web3;\n\n/**\n * Named exports for all objects which are the default-exported-object in their packages\n */\nexport { Web3 };\nexport { Web3Context, Web3PluginBase, Web3EthPluginBase, Web3PromiEvent } from 'web3-core';\nexport { Web3Eth } from 'web3-eth';\nexport { Contract, ContractDeploySend, ContractMethodSend } from 'web3-eth-contract';\nexport { Iban } from 'web3-eth-iban';\nexport { Personal } from 'web3-eth-personal';\nexport { Net } from 'web3-net';\nexport { HttpProvider } from 'web3-providers-http';\nexport { WebSocketProvider } from 'web3-providers-ws';\nexport { Web3Validator } from 'web3-validator';\n\n/**\n * Export all packages grouped by name spaces\n */\nexport * as core from 'web3-core';\nexport * as errors from 'web3-errors';\nexport * as eth from './eth.exports.js';\nexport * as net from 'web3-net';\nexport * as providers from './providers.exports.js';\nexport * as rpcMethods from 'web3-rpc-methods';\nexport * as types from 'web3-types';\nexport * as utils from 'web3-utils';\nexport * as validator from 'web3-validator';\n\n/**\n * Export all types from `web3-types` without a namespace (in addition to being available at `types` namespace).\n * To enable the user to write: `function something(): Web3Api` without the need for `types.Web3Api`.\n * And the same for `web3-errors`. Because this package contains error classes and constants.\n */\nexport * from 'web3-errors';\nexport * from 'web3-types';\n","import React from \"react\";\nimport CheckIcon from \"assets/images/check_icon.png\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport { Link } from \"react-router-dom\";\n\nconst TransactionSuccess = ({ open, onClose, canClose }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"px-4 py-8 flex flex-col justify-center items-center gap-4 font-body bg-[#242424] rounded-[16px]\">\n <div className=\"h-[55px] w-[55px] rounded-full\">\n <img\n className=\"h-full w-full object-cover\"\n src={CheckIcon}\n alt=\"processing\"\n />\n </div>\n <p className=\"text-[24px] leading-[36px] text-center font-bold\">\n Transaction Successful!\n </p>\n <p className=\"text-[16px] leading-[24px] text-center font-normal text-white\">\n Congratulations! Your purchase is successful. You can now enjoy your\n new items in the Oculus app.\n </p>\n\n <Link\n to={`/marketplace`}\n className=\"mt-3 font-semibold text-[16px] leading-[19.36px] text-center text-[#fbbc5e]\"\n >\n Go back to Marketplace\n </Link>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default TransactionSuccess;\n","/**\n *@module CheckoutFstr-popup\n *@developer Shiv Pandey\n */\n\nimport React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport { Link } from \"react-router-dom\";\nimport MetaMaskIcon from \"assets/images/metamask-icon.png\";\n\nconst CheckoutFstr = ({\n open = true,\n onClose,\n canClose,\n message,\n heading,\n btnText,\n btnAction,\n}) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"px-4 py-8 flex flex-col justify-center items-center gap-4 font-body bg-[#242424] rounded-[16px]\">\n <div className=\"mt-2 w-fit rounded-full border border-[#898989] p-4 mx-auto\">\n <img\n className=\"w-[56px] h-[52px] object-contain\"\n src={MetaMaskIcon}\n alt=\"metamask-icon\"\n />\n </div>\n {heading && (\n <h2 className=\"font-body font-semibold text-xl text-center\">\n {heading}\n </h2>\n )}\n\n <p className=\"text-[16px] leading-[24px] text-center font-normal text-white\">\n {message || \"\"}\n </p>\n <button\n className=\"btn-gradient font-bold text-black rounded-[6px] px-6 py-3\"\n onClick={btnAction}\n >\n {btnText}\n </button>\n <Link\n to={`/marketplace`}\n className=\"mt-2 font-semibold text-[16px] leading-[19.36px] text-center text-[#fbbc5e]/70 hover:text-[#fbbc5e]\"\n >\n Go back to Marketplace\n </Link>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default CheckoutFstr;\n","import React from \"react\";\nimport MetaMaskIcon from \"assets/images/metamask-icon.png\";\n\nconst ConnectWallet = ({ clickHandler }) => {\n return (\n <div>\n <h2 className=\"font-normal text-[20px] leading-[30px] text-center font-heading\">\n Connect MetaMask Wallet\n </h2>\n <div className=\"mt-8 w-fit rounded-full border border-[#898989] p-4 mx-auto\">\n <img\n className=\"w-[56px] h-[52px] object-contain\"\n src={MetaMaskIcon}\n alt=\"metamask-icon\"\n />\n </div>\n <p className=\"mt-12 text-center font-medium leading-[24px] text-[15px] font-body\">\n <span className=\"font-semibold\">Step:1</span> Download and install the\n Meta Mask extension for your web browser.\n </p>\n <p className=\"mt-4 text-center font-medium leading-[24px] text-[15px] font-body\">\n <span className=\"font-semibold\">Step:2</span> Follow the on-screen\n instructions to set up your Meta Mask wallet\n </p>\n\n <button\n className=\"mt-12 btn-gradient block mx-auto text-black font-bold text-[16px] leading-[19.5px] rounded-[6px] px-6 py-3 text-center\"\n onClick={clickHandler}\n >\n Get Started\n </button>\n </div>\n );\n};\n\nexport default ConnectWallet;\n","/**\n *@module MetamaskInstall-popup\n *@developer Shiv Pandey\n */\n\nimport React from \"react\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport ConnectWallet from \"pages/checkout/components/ConnectWallet\";\n\nconst MetamaskInstall = ({ open = true, onClose, canClose }) => {\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"px-4 py-8 flex flex-col justify-center items-center gap-4 font-body bg-[#242424] rounded-[16px]\">\n <ConnectWallet\n clickHandler={() =>\n window.open(\"https://metamask.io/download.html\", \"_blank\")\n }\n />\n </div>\n </PopupWrapper>\n );\n};\n\nexport default MetamaskInstall;\n","import React, { useState } from \"react\";\nimport AlertIcon from \"assets/images/processing.png\";\nimport PopupWrapper from \"../PopupWrapper\";\nimport { Link } from \"react-router-dom\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nconst TransactionCancel = ({\n open,\n onClose,\n canClose,\n goBack,\n onCancel,\n currency = \"fstr\",\n}) => {\n const [isLoading, setIsLoading] = useState(false);\n return (\n <PopupWrapper open={open} onClose={onClose} canClose={canClose}>\n <div className=\"px-4 py-8 flex flex-col justify-center items-center gap-8 font-body bg-[#242424] rounded-[16px]\">\n <div className=\"h-[75px] w-[75px] rounded-full\">\n <img\n className=\"h-full w-full object-cover\"\n src={AlertIcon}\n alt=\"cancle\"\n />\n </div>\n <p className=\"text-[24px] leading-[36px] text-center font-bold\">\n Cancel Transaction\n </p>\n <p className=\"text-[16px] leading-[24px] px-4 text-center font-normal text-[#939393]\">\n Are you sure you want to cancel this transaction? The payment process\n will need to be restarted.\n </p>\n\n <div className=\"flex justify-around gap-8 w-[80%]\">\n <button\n className=\"mt-5 w-[50%] font-extrabold text-[#fff] border-2 border-[#FFFFFF] rounded-[8px] px-3 py-3\"\n onClick={goBack}\n >\n Go Back\n </button>\n <button\n className=\"mt-5 w-[50%] font-extrabold text-[#fff] bg-[#D43F33] rounded-[8px] px-3 py-3\"\n disabled={isLoading}\n onClick={() => {\n // onCancel\n setIsLoading(true);\n onCancel();\n setTimeout(() => {\n setIsLoading(false);\n }, 10000);\n }}\n >\n {isLoading ? (\n <CircularProgress\n style={{\n width: \"20px\",\n height: \"20px\",\n color: \"#535353\",\n }}\n />\n ) : (\n \"Yes, Cancel\"\n )}\n </button>\n </div>\n </div>\n </PopupWrapper>\n );\n};\n\nexport default TransactionCancel;\n","/**\n * * This file is part of FourthStar Checkout Page\n *------------------------------------------------------\n *@module CheckoutFSTR\n *@developer Shiv Pandey\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport {\n Link,\n useLocation,\n useNavigate,\n useSearchParams,\n} from \"react-router-dom\";\n\nimport { GlobalStore } from \"store/GlobalStore\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\n\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\nimport abiJson from \"constant/abi-json\";\nimport Loader from \"components/Loader/Loader\";\nimport ShadowFrame from \"components/shadow-frame\";\n\nimport Web3 from \"web3\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport SelectWalletAccount from \"components/popup/SelectWalletAccount/SelectWalletAccount\";\nimport TransactionSuccess from \"components/popup/TransactionSuccess/TransactionSuccess\";\nimport TransactionFailed from \"components/popup/TransactionFailed/TransactionFailed\";\nimport { useGetMyOrderDetailQuery } from \"store/slicer/MyOrders\";\n\nimport { useWebSocket } from \"../../services/socket/index\"; // Import your WebSocket context\nimport { isMobile } from \"mobile-device-detect\";\nimport CheckoutFstr from \"components/popup/CheckoutFstr\";\nimport MetamaskInstall from \"components/popup/CheckoutFstr/MetamaskInstall\";\nimport WalletAddressModel from \"components/Modal/Payments/WalletAddressModel\";\nimport { useGetUserWalletListQuery } from \"store/slicer/userProfile\";\nimport TransactionCancel from \"components/popup/TransactionCancel/TransactionCancel\";\n\nconst CHAIN_ID = process.env.REACT_APP_WEB3_CHAIN_ID;\nconst CHAIN_NAME = process.env.REACT_APP_WEB3_CHAIN_NAME;\nconst CHAIN_RPC_URL = process.env.REACT_APP_WEB3_CHAIN_RPC_URL;\nconst CURRENCY_NAME = process.env.REACT_APP_WEB3_NATIVE_CURRENCY_NAME;\nconst CURRENCY_SYMBOL = process.env.REACT_APP_WEB3_NATIVE_CURRENCY_SYMBOL;\nconst FSTR_CONTRACT = process.env.REACT_APP_WEB3_FSTR_CONTRACT;\n\nconst CheckoutFSTR = () => {\n const navigate = useNavigate();\n const location = useLocation();\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n const authState = GlobalStore.getState()?.auth;\n\n // user not signed in\n if (!accessToken) {\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n });\n }\n\n const { state } = location;\n const orderId = state?.orderId;\n const isSubscription = state?.isSubscription;\n\n // user signed in but did not verify his email\n if (accessToken && !authState?.userInfo?.isVerified) {\n navigate(`/otp-verification`, {\n replace: true,\n });\n }\n\n // this checks for paid content, if we are not passing required fields in search params then go back, unless its for cart or subscription\n if (!orderId && !state?.orderId) {\n navigate(\"/marketplace\");\n }\n\n const [loading, setLoading] = useState(false);\n const [processingText, setProcessingText] = useState(\n \"Your transaction is being processed.\"\n );\n const [showProcessingTip, setShowProcessingTip] = useState(false);\n const [showErrorTip, setShowErrorTip] = useState(false);\n\n const [metamaskInstalled, setMetamaskInstalled] = useState(true);\n\n const [rejectedWalletConnect, setRejectedWalletConnect] = useState(false);\n const [rejectedChainDownload, setRejectedChainDownload] = useState(false);\n const [rejectedChainSwitch, setRejectedChainSwitch] = useState(false);\n const [reRequestConnectWallet, setReRequestConnectWallet] = useState(false);\n const [reRequestSwitchChain, setReRequestSwitchChain] = useState(false);\n const [reRequestTransaction, setReRequestTransaction] = useState(false);\n\n const [canInitiateTrans, setCanInitiateTrans] = useState(false);\n\n const [selectedAccount, setSelectedAccount] = useState(null);\n const selectedAccountRef = useRef(null);\n const web3Instance = useRef(null);\n const tokenAdded = useRef(false);\n const FSTRContract = useRef(null);\n\n const [rejectedTransaction, setRejectedTransaction] = useState(false);\n\n const [showErrorPopup, setShowErrorPopup] = useState(false);\n const [errorPopupMessage, setErrorPopupMessage] = useState(\n \"Something went wrong\"\n );\n\n const [showSuccessPopup, setShowSuccessPopup] = useState(false);\n\n const [activeTab, setActiveTab] = useState(\"autoPay\");\n const [showAlert, setShowAlert] = useState(false);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [alertSuccess, setAlertSuccess] = useState(true);\n const [autoPayScanQr, setAutoPayScanQr] = useState(\"\");\n const [manualEntryScanQr, setManualEntryScanQr] = useState(\"\");\n const [qrLoading, setQrLoading] = useState(true);\n const [transactionRes, setTransactionRes] = useState({});\n const [minutes, setMinutes] = useState(7);\n const [seconds, setSeconds] = useState(0);\n const [transactionSuccess, setTransactionSuccess] = useState(false);\n const { setToken, socket } = useWebSocket(); // Access the WebSocket context\n const [showChangeWalletPopup, setShowChangeWalletPopup] = useState(false);\n const [walletAddressList, setWalletAddressList] = useState([]);\n const [storeSessionData, setStoreSessionData] = useState({});\n const [showCommonErrorPopup, setShowCommonErrorPopup] = useState(false);\n const [showAlreadyInAsset, setShowAlreadyInAsset] = useState(false);\n const [openCancelPaymentPopup, setOpenCancelPaymentPopup] = useState(false);\n\n // const { data, isLoading, refetch } = useGetMyOrderDetailQuery({ orderId });\n\n const onWalletPopupClose = () => {\n setShowChangeWalletPopup(false);\n };\n\n // Initiate again transaction after change the wallet address\n const onActionNextBtnClick = async (web3FromAddress) => {\n // payload for checking out a single paid product\n setShowChangeWalletPopup(false);\n try {\n let payload = {\n paymentHash: transactionRes?.paymentHash,\n web3FromAddress: web3FromAddress,\n };\n let res = await fetch(\n BASE_URL + EndpointsSlug.MODIFY_CRYPTO_TRANSACTION,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n if (res?.response?.statusEnum != 1) {\n setAlertMessage(res.response?.message);\n setAlertSuccess(false);\n setShowCommonErrorPopup(true);\n // throw new Error(res.response?.message);\n } else {\n const existingData = sessionStorage.getItem(`${orderId}`);\n\n let parsedData = JSON.parse(existingData);\n delete parsedData.qrData;\n // Update fields as needed\n parsedData.gatewayTransaction = res?.response?.data.gatewayTransaction;\n sessionStorage.setItem(`${orderId}`, JSON.stringify(parsedData));\n setTransactionRes(res?.response?.data?.gatewayTransaction);\n localStorage.setItem(\n \"transactionpaymenthashfstr\",\n res?.response?.data?.gatewayTransaction?.paymentHash\n );\n selectedAccountRef.current =\n res?.response?.data?.gatewayTransaction?.web3FromAddress;\n localStorage.setItem(\n \"web3ToAddress\",\n res?.response?.data?.gatewayTransaction?.web3ToAddress\n );\n localStorage.setItem(\n \"web3FromAddress\",\n res?.response?.data?.gatewayTransaction?.web3FromAddress\n );\n }\n } catch (error) {\n setAlertMessage(\"Something went wrong please try again!\");\n setAlertSuccess(false);\n setShowCommonErrorPopup(true);\n return;\n }\n };\n\n const addressLists = useGetUserWalletListQuery();\n\n useEffect(() => {\n setWalletAddressList(addressLists?.data?.response?.data?.web3Wallets);\n }, [addressLists]);\n\n // Copy the web3ToAddress of Payment details\n const copyToClipboard = (path) => {\n navigator?.clipboard?.writeText(path);\n // setOpenSnackbar(true)\n };\n\n const handlePaymentRequestTimeOut = () => {\n if (!transactionSuccess) {\n setAlertSuccess(\"pending\");\n setAlertHeading(\"Payment Timeout\");\n setAlertMessage(\n \"Your payment session has expired. Please start the process again to complete your payment.\"\n );\n setShowAlert(true);\n setMinutes(0);\n setSeconds(0);\n }\n };\n\n // Go back when click on cancel button\n const goBack = () => {\n setQrLoading(false);\n navigate(-2); // Navigate back in history\n };\n\n const cancelTransaction = async () => {\n console.log(\"cancel transaction\");\n if (transactionRes?.paymentHash) {\n try {\n let payload = {\n paymentHash: `${transactionRes?.paymentHash}`,\n };\n\n let res = await fetch(\n BASE_URL + EndpointsSlug.CANCEL_CRYPTO_TRANSACTION,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res === null) {\n throw new Error(\"Something went wrong!\");\n }\n\n if (res.ok) {\n res = await res.json();\n }\n if (res?.response?.statusEnum === 1) {\n sessionStorage.removeItem(`${orderId}`);\n navigate(\"/marketplace\");\n } else {\n setAlertMessage(\"Something went wrong please try again!\");\n setAlertSuccess(false);\n setShowCommonErrorPopup(true);\n }\n } catch (error) {\n console.error(error);\n setAlertMessage(\"Something went wrong please try again!\");\n setAlertSuccess(false);\n setShowCommonErrorPopup(true);\n return;\n }\n }\n };\n\n //Get Selected Payment Option\n const getQrCode = async () => {\n setQrLoading(true);\n try {\n let payload = {\n amount: `${transactionRes?.amount}`,\n };\n\n let res = await fetch(\n BASE_URL + EndpointsSlug.GET_CRYPTO_TRANSACTION_QR,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n if (res?.response?.statusEnum == 1) {\n setAutoPayScanQr(res.response.data.withAmount);\n setManualEntryScanQr(res.response.data.withoutAmount);\n const existingData = sessionStorage.getItem(`${orderId}`);\n if (existingData) {\n let parsedData = JSON.parse(existingData);\n // Update fields as needed\n parsedData.qrData = res?.response?.data;\n sessionStorage.setItem(`${orderId}`, JSON.stringify(parsedData));\n }\n }\n setQrLoading(false);\n } catch (error) {\n setErrorPopupMessage(\"Something went wrong!\");\n return;\n }\n };\n\n useEffect(() => {\n if (transactionRes?.paymentHash) {\n if (!storeSessionData?.qrData) {\n getQrCode();\n } else {\n setQrLoading(false);\n setAutoPayScanQr(storeSessionData?.qrData?.withAmount);\n setManualEntryScanQr(storeSessionData?.qrData?.withoutAmount);\n }\n }\n }, [transactionRes]);\n\n useEffect(() => {\n // Ensure the socket is ready before attempting to listen for events\n if (!socket) {\n console.log(\"Socket is not ready yet.\");\n return;\n }\n\n // console.log(\"socket==============\", socket);\n // Listen for the specific event\n socket.on(\"user_payment_status_web\", (data) => {\n // console.log(\"Received payment event:\", data);\n if (\n data?.info?.status == \"success\" &&\n transactionRes?.paymentHash == data?.info?.paymentHash\n ) {\n sessionStorage.removeItem(`${orderId}`);\n setShowSuccessPopup(true);\n setTransactionSuccess(true);\n setLoading(false);\n setMinutes(0);\n setSeconds(0);\n }\n });\n\n // Unsubscribe from the event when the component is unmounted\n return () => {\n socket.off(\"user_payment_status_web\");\n };\n }, [socket, transactionRes?.paymentHash]);\n\n useEffect(() => {\n if (socket && !socket.connected) {\n console.log(\"Reconnecting socket...\");\n socket.connect();\n }\n }, [socket]);\n\n useEffect(() => {\n if (!transactionRes?.paymentHash) return;\n const timer = setInterval(() => {\n if (seconds > 0) {\n setSeconds(seconds - 1);\n } else if (minutes > 0) {\n setMinutes(minutes - 1);\n setSeconds(59);\n } else {\n if (!transactionSuccess) {\n sessionStorage.removeItem(`${orderId}`);\n handlePaymentRequestTimeOut();\n }\n }\n }, 1000);\n\n return () => clearInterval(timer);\n }, [minutes, seconds, transactionRes?.paymentHash]);\n\n const onErrorPopupClose = () => {\n setErrorPopupMessage(\"Something went wrong\");\n setShowErrorPopup(false);\n setShowErrorTip(false);\n };\n\n const checkMetamask = async () => {\n // Check if MetaMask is installed\n if (window.ethereum && window.ethereum.isMetaMask) {\n // MetaMask is installed\n setMetamaskInstalled(true);\n console.log(\"MetaMask is installed\");\n return true;\n } else {\n // MetaMask is not installed\n setMetamaskInstalled(false);\n console.error(\"MetaMask not detected!\");\n return false;\n }\n };\n\n const initContract = (web3Inst) => {\n const contract = new web3Inst.eth.Contract(abiJson, FSTR_CONTRACT);\n FSTRContract.current = contract;\n };\n\n // Initialize Web3\n const initWeb3 = async () => {\n if (!metamaskInstalled) {\n return;\n }\n setLoading(true);\n setRejectedWalletConnect(false);\n if (window.ethereum) {\n const w3Instance = new Web3(window.ethereum);\n try {\n setLoading(true);\n // Request account access if needed\n await window.ethereum.enable();\n console.log(\"w3Instance\", w3Instance);\n\n web3Instance.current = w3Instance;\n\n initContract(w3Instance);\n } catch (error) {\n console.log(\"User Denied account access\", error);\n setRejectedWalletConnect(true);\n setLoading(false);\n }\n } else if (window.web3) {\n // Use the injected web3 instance\n const web3Inst = new Web3(window.web3.currentProvider);\n\n web3Instance.current = web3Inst;\n\n initContract(web3Inst);\n } else {\n console.log(\"No web3 instance injected, please install MetaMask\");\n }\n };\n\n const addTokenToWallet = async (retriesLeft) => {\n try {\n // 1. fetch all user's accounts here, if there are more than one account then we should show a model to user to choose which account to transact with\n const accounts = await web3Instance.current.eth.getAccounts();\n const isAddedAlready =\n localStorage.getItem(selectedAccountRef.current + \"-tokencache\") ===\n \"FSTR\";\n if (!isAddedAlready) {\n const wasAdded = await window.ethereum.request({\n method: \"wallet_watchAsset\",\n params: {\n type: \"ERC20\",\n options: {\n address: FSTR_CONTRACT,\n symbol: \"FSTR\",\n decimals: 18,\n },\n },\n });\n if (!wasAdded) {\n console.log(\"user rejectect token import\");\n setLoading(false);\n setShowErrorPopup(true);\n setErrorPopupMessage(\n \"Something went wrong!. Add the tokens to your wallet for your ease access.\"\n );\n if (retriesLeft) {\n addTokenToWallet(retriesLeft - 1);\n }\n }\n localStorage.setItem(\n selectedAccountRef.current + \"-tokencache\",\n \"FSTR\"\n );\n }\n tokenAdded.current = true;\n } catch (error) {\n console.log(error.message);\n setLoading(false);\n setShowErrorPopup(true);\n setErrorPopupMessage(\n \"Something went wrong!. Add the tokens to your wallet for your ease access.\"\n );\n if (retriesLeft) {\n addTokenToWallet(retriesLeft - 1);\n }\n }\n if (!retriesLeft) {\n // User don't want to add the token in his wallet\n tokenAdded.current = true;\n }\n };\n\n const switchChain = async () => {\n if (!metamaskInstalled || !web3Instance.current) {\n return;\n }\n setLoading(true);\n\n if (window.ethereum.networkVersion == CHAIN_ID) {\n setCanInitiateTrans(true);\n } else if (window.ethereum.networkVersion != CHAIN_ID) {\n setRejectedChainDownload(false);\n setRejectedChainSwitch(false);\n setShowErrorPopup(false);\n setLoading(true);\n try {\n await window.ethereum.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: web3Instance.current.utils.toHex(+CHAIN_ID) }],\n });\n // reaching here means, we have successfully switched chains, call this hook again to set all states correctly\n setReRequestSwitchChain((prev) => !prev);\n } catch (err) {\n setLoading(false);\n // This error code indicates that the chain has not been added to MetaMask\n if (err.code === 4902) {\n try {\n setLoading(true);\n await window.ethereum.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainName: CHAIN_NAME,\n chainId: web3Instance.current.utils.toHex(+CHAIN_ID),\n nativeCurrency: {\n name: CURRENCY_NAME,\n decimals: 18,\n symbol: CURRENCY_SYMBOL,\n },\n rpcUrls: [CHAIN_RPC_URL],\n },\n ],\n });\n\n // reaching here means, our chain has just been added to metamask, we should now re request the chain switch from user\n setReRequestSwitchChain((prev) => !prev);\n } catch (error) {\n console.log(\"user rejected adding the chain\", error);\n setRejectedChainDownload(true);\n setLoading(false);\n setShowErrorPopup(true);\n setErrorPopupMessage(\"You must approve adding the chain\");\n }\n } else if (err.code == 4001) {\n console.log(\"user rejected chain switch\");\n setRejectedChainSwitch(true);\n\n setShowErrorPopup(true);\n setErrorPopupMessage(\"You must approve switching chains\");\n }\n }\n }\n };\n\n // Verify if the selected wallet exists in MetaMask\n const verifyWallet = async () => {\n const accounts = (await web3Instance.current.eth.getAccounts()) || [];\n\n if (\n !accounts.some(\n (account) =>\n account.toLowerCase() === selectedAccountRef.current.toLowerCase()\n )\n ) {\n // alert(\n // \"Wallet not found in MetaMask. Please add the wallet and try again.\"\n // );\n setLoading(false);\n setErrorPopupMessage(\n \"Wallet not found in MetaMask. Please add the wallet and try again.\"\n );\n setShowErrorPopup(true);\n setShowErrorTip(true);\n return false;\n }\n return true;\n };\n\n // Process subscription or one-time payment\n const processPayment = async () => {\n if (!web3Instance.current || !tokenAdded.current) {\n return;\n }\n if (!(await verifyWallet())) return;\n\n // const transcationTimeout = setTimeout(() => {\n // setLoading(false);\n // setErrorPopupMessage(\"Your transaction timed out. Please try again\");\n // setShowErrorPopup(true);\n // setShowErrorTip(true);\n // }, 10 * 60 * 1000);\n\n const speedUpTimeout = setTimeout(() => {\n setProcessingText(\n \"Your transaction is being processed. If your transaction is taking longer than expected, you can try speeding it up the by selecting a higher gas fee option in MetaMask\"\n );\n setShowProcessingTip(true);\n }, 10 * 1000);\n\n const web3ToAddress = localStorage.getItem(\"web3ToAddress\");\n const tx = isSubscription\n ? FSTRContract.current.methods.approve(\n web3ToAddress,\n \"0x8000000000000000000000000000000000000000000000000000000000000000\"\n )\n : FSTRContract.current.methods.transfer(\n web3ToAddress,\n web3Instance.current.utils.toWei(transactionRes?.amount, \"ether\")\n );\n\n try {\n const estimateGas = await tx.estimateGas({\n from: selectedAccountRef.current,\n });\n let receipt;\n\n if (\n process.env.REACT_APP_ENVIRONMENT == \"staging\" ||\n process.env.REACT_APP_ENVIRONMENT == \"main\"\n ) {\n // Gas fee calculation\n const baseFeeGwei =\n +process.env.REACT_APP_WEB3_BASE_Fee_GWEI || 73.878795854; // Base fee\n const priorityFeeGwei =\n +process.env.REACT_APP_WEB3_PRIORITY_Fee_GWEI || 32.93757229; // Priority fee\n const gasPriceGwei = baseFeeGwei + priorityFeeGwei; // Total gas price in GWEI\n const gasPriceWei = web3Instance.current.utils.toWei(\n gasPriceGwei.toString(),\n \"gwei\"\n ); // Convert to WEI\n\n // Sending the transaction with custom gas price\n receipt = await tx.send({\n from: selectedAccountRef.current,\n gas: Number(estimateGas),\n gasPrice: gasPriceWei, // Use the calculated gas price\n });\n } else\n receipt = await tx.send({\n from: selectedAccountRef.current,\n gas: Number(estimateGas),\n });\n\n // await tx.send({\n // from: selectedAccountRef.current,\n // gas: estimateGas,\n // });\n\n // reaching here means transaction is completed from blockchain\n console.log(\"purchase success\", receipt);\n // storing the transaction hash for later to verify purchase\n localStorage.setItem(\"transactionhashfstr\", receipt.transactionHash);\n clearTimeout(speedUpTimeout);\n // clearTimeout(transcationTimeout);\n setShowProcessingTip(false);\n setProcessingText(\"Transaction is done, let us verify it for you!\");\n } catch (error) {\n // either user rejected the transaction or user has insufficient funds\n console.log(\"error in transaction\", error);\n\n setLoading(false);\n setRejectedTransaction(true);\n setErrorPopupMessage(\n \"You must approve the transaction request and have sufficient funds\"\n );\n setShowErrorPopup(true);\n }\n };\n\n const connectMetaMask = () => {\n checkMetamask();\n\n const checkAndReload = async () => {\n const isInstalled = await checkMetamask();\n if (!isInstalled) {\n // Refresh the current page\n window.location.reload();\n }\n };\n\n document.addEventListener(\"visibilitychange\", checkAndReload);\n return () => {\n return document.removeEventListener(\"visibilitychange\", checkAndReload);\n };\n };\n\n const getOrderDetails = async (orderId) => {\n try {\n let res = await fetch(\n `${BASE_URL}${EndpointsSlug.GET_MY_ORDER_DETAIL}?orderId=${orderId}`,\n {\n method: \"GET\",\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n // console.log(\"response: \", res);\n if (res?.response?.statusEnum !== 1) {\n setLoading(false);\n setAlertSuccess(\"error\");\n setAlertHeading(\"Something went wrong!\");\n setAlertMessage(\n \"An error occurred during the payment process, and your session has ended. Please try again. Don’t worry, your cart has been saved. \"\n );\n setShowAlert(true);\n } else {\n return res;\n }\n setQrLoading(false);\n } catch (error) {\n setErrorPopupMessage(\"Something went wrong!\");\n return;\n }\n };\n\n useEffect(() => {\n (async () => {\n if (orderId) {\n const storedData = JSON.parse(\n await sessionStorage.getItem(`${orderId}`)\n );\n if (storedData) {\n const data = await getOrderDetails(orderId);\n if (data?.response?.data?.status == \"await\") {\n const existingData = sessionStorage.getItem(`${orderId}`);\n let gatewayTransaction = {\n amount: data?.response?.data?.total_amount,\n paymentHash: data?.response?.data?.paymentHash,\n web3FromAddress: data?.response?.data?.web3FromAddress,\n web3ToAddress: data?.response?.data?.web3ToAddress,\n _id: data?.response?.data?._id,\n };\n let parsedData = JSON.parse(existingData);\n // Update fields as needed\n parsedData.gatewayTransaction = gatewayTransaction;\n\n sessionStorage.setItem(`${orderId}`, JSON.stringify(parsedData));\n\n localStorage.setItem(\n \"transactionpaymenthashfstr\",\n data?.response?.data?.paymentHash\n );\n selectedAccountRef.current = data?.response?.data?.web3FromAddress;\n localStorage.setItem(\n \"web3ToAddress\",\n data?.response?.data?.web3ToAddress\n );\n const storedData = JSON.parse(sessionStorage.getItem(`${orderId}`));\n setTransactionRes(storedData.gatewayTransaction);\n setStoreSessionData(storedData);\n const expireTime = storedData.expiryTime;\n const currentTime = Date.now();\n\n // Calculate the time difference in milliseconds\n const timeDifference = expireTime - currentTime;\n\n // Convert the difference to seconds\n const totalSeconds = Math.floor(timeDifference / 1000);\n\n // Calculate minutes and seconds\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n setMinutes(minutes);\n setSeconds(seconds);\n } else if (data?.response?.data?.status == \"success\") {\n setAlertMessage(\"you have already purchased this Asset!\");\n setShowAlreadyInAsset(true);\n console.log(\"Already in asset\");\n } else if (data?.response?.data?.status == \"cancelled\") {\n setLoading(false);\n setAlertSuccess(\"error\");\n setAlertHeading(\"Something went wrong!\");\n setAlertMessage(\n \"An error occurred during the payment process, and your session has ended. Please try again. Don’t worry, your cart has been saved. \"\n );\n setShowAlert(true);\n return;\n } else if (data?.response?.data?.status == \"expired\") {\n setLoading(false);\n setAlertSuccess(\"error\");\n setAlertMessage(\n \"Your order has expired. If you have already made your payment, the order status will be updated automatically upon successful verification.\"\n );\n setShowAlert(true);\n return;\n } else if (data?.response?.data?.status == \"pending\") {\n handlePaymentRequestTimeOut();\n } else {\n verifyTransactionOnBackend();\n }\n } else {\n // handlePaymentRequestTimeOut();\n verifyTransactionOnBackend();\n }\n }\n })();\n }, [orderId]);\n\n const handleCreatePayment = async () => {\n await connectMetaMask();\n\n // setButtonBrowserExtension(true);\n if (!metamaskInstalled) {\n console.log(\"metamask not installed\");\n // alert(\n // \"Wallet not found in MetaMask. Please add the wallet and try again.\"\n // );\n return;\n }\n\n await initWeb3();\n\n await switchChain();\n\n if (!web3Instance.current) {\n return;\n }\n await addTokenToWallet(2);\n\n await processPayment();\n };\n\n const mobileButtonTransaction = () => {\n if (transactionRes?.amount) {\n const contractAddress = process.env.REACT_APP_WEB3_FSTR_CONTRACT;\n const web3ToAddress = transactionRes?.web3ToAddress;\n let amount = transactionRes?.amount;\n let totalAmount = amount * Math.pow(10, 18);\n const url = `ethereum:${contractAddress}/transfer?address=${web3ToAddress}&uint256=${totalAmount}`;\n window.location.href = url;\n }\n };\n\n // will verify the transaction using transaction hash\n const verifyTransactionOnBackend = async () => {\n try {\n let paymentHash = \"\";\n if (storeSessionData?.gatewayTransaction) {\n paymentHash = storeSessionData?.gatewayTransaction?.paymentHash;\n } else {\n paymentHash = localStorage.getItem(\"transactionpaymenthashfstr\");\n }\n\n let payload = {\n paymentHash: paymentHash,\n };\n\n let res = await fetch(\n BASE_URL + EndpointsSlug.VERIFY_CRYPTO_TRANSACTION,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n\n if (res?.response?.statusEnum != 1) {\n setLoading(false);\n setAlertSuccess(\"error\");\n setAlertHeading(\"Something went wrong!\");\n setAlertMessage(\n \"An error occurred during the payment process, and your session has ended. Please try again. Don’t worry, your cart has been saved. \"\n );\n setShowAlert(true);\n return;\n }\n const status =\n res.response.data.gatewayTransactionDetails.status ?? \"failed\";\n if (status === \"cancelled\" || status === \"failed\") {\n setAlertSuccess(\"error\");\n setAlertHeading(\"Something went wrong!\");\n setAlertMessage(\n \"An error occurred during the payment process, and your session has ended. Please try again. Don’t worry, your cart has been saved. \"\n );\n setShowAlert(true);\n } else if (status == \"success\") {\n setShowAlreadyInAsset(true);\n console.log(\"Already in asset\");\n setAlertMessage(\"you have already purchased this Asset!\");\n setMinutes(0);\n setSeconds(0);\n } else if (status == \"expired\") {\n setLoading(false);\n setAlertSuccess(\"error\");\n setAlertMessage(\n \"Your order has expired. If you have already made your payment, the order status will be updated automatically upon successful verification.\"\n );\n setShowAlert(true);\n return;\n } else if (\n status == \"pending\" ||\n (status == \"await\" && !storeSessionData?.gatewayTransaction)\n ) {\n handlePaymentRequestTimeOut();\n }\n } catch (error) {\n setAlertSuccess(\"error\");\n setAlertHeading(\"Something went wrong!\");\n setAlertMessage(\n \"An error occurred during the payment process, and your session has ended. Please try again. Don’t worry, your cart has been saved.\"\n );\n setShowAlert(true);\n return;\n }\n };\n\n useEffect(() => {\n if (storeSessionData?.gatewayTransaction?.paymentHash) {\n verifyTransactionOnBackend();\n }\n }, [storeSessionData?.gatewayTransaction?.paymentHash]);\n\n // if (loading) {\n // return (\n // <div className=\"relative w-full min-h-screen flex flex-col justify-center items-center\">\n // <Loader />\n // {canInitiateTrans && (\n // <p className=\"text-center mt-6 text-white/50 font-medium\">\n // Processing Transaction\n // </p>\n // )}\n // <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[60%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n // </div>\n // );\n // }\n\n return (\n <div className=\"relative min-h-screen w-full max-sm:px-0 px-8 \">\n {(rejectedChainDownload || rejectedChainSwitch) && (\n <CheckoutFstr\n open={showErrorPopup}\n canClose={false}\n heading={`${\n rejectedChainDownload\n ? \"To proceed you must add the required FSTR chain to MetaMask\"\n : \"To proceed you must switch to the required FSTR chain in MetaMask\"\n }`}\n btnText={`${\n rejectedChainDownload ? \"Add FSTR Chain\" : \"Switch FSTR Chain\"\n }`}\n btnAction={() => {\n setLoading(true);\n setShowErrorPopup(false);\n setReRequestSwitchChain((prev) => !prev);\n }}\n />\n )}\n {rejectedWalletConnect && (\n <CheckoutFstr\n open={showErrorPopup}\n canClose={false}\n heading={\"To proceed you must connect your wallet\"}\n btnText={\"Connect Wallet\"}\n btnAction={() => {\n setShowErrorPopup(false);\n setRejectedWalletConnect(false);\n setReRequestConnectWallet((prev) => !prev);\n }}\n />\n )}\n {rejectedTransaction && (\n <CheckoutFstr\n open={showErrorPopup}\n canClose={false}\n heading={\"Transaction Failed\"}\n btnText={\"Try Again\"}\n message={\n \"To complete the purchase you must approve the transaction request and you must have sufficient funds in your account.\"\n }\n btnAction={() => {\n setShowErrorPopup(false);\n setRejectedTransaction(false);\n setReRequestTransaction((prev) => !prev);\n }}\n />\n )}\n {showErrorPopup && (\n <CheckoutFstr\n open={showErrorPopup}\n canClose={false}\n heading={\"Transaction Failed\"}\n btnText={\"Try Again\"}\n message={errorPopupMessage}\n btnAction={() => {\n setShowErrorPopup(false);\n setRejectedTransaction(false);\n setReRequestTransaction((prev) => !prev);\n }}\n />\n )}\n\n {showSuccessPopup && (\n <TransactionSuccess open={showSuccessPopup} canClose={false} />\n )}\n\n {!metamaskInstalled && <MetamaskInstall open={true} canClose={false} />}\n\n {openCancelPaymentPopup && (\n <TransactionCancel\n open={true}\n canClose={false}\n goBack={goBack}\n onCancel={cancelTransaction}\n />\n )}\n\n <div className=\"flex items-center justify-center min-h-screen px-4\">\n <div className=\"bg-[#242424] relative rounded-lg shadow-lg p-6 sm:p-8 w-full max-w-xl\">\n <div\n className=\"absolute top-4 right-4 cursor-pointer\"\n onClick={() => {\n setOpenCancelPaymentPopup(true);\n }}\n >\n <svg\n width=\"28\"\n height=\"28\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n width=\"28\"\n height=\"28\"\n rx=\"14\"\n fill=\"white\"\n fillOpacity=\"0.1\"\n />\n <path\n d=\"M19.6875 8.3125L8.3125 19.6875M8.3125 8.3125L19.6875 19.6875\"\n stroke=\"white\"\n strokeOpacity=\"0.5\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n {/* Header and Tabs */}\n <div className=\"text-[#FFFFFF]\">\n <h2 className=\"text-lg font-bold max-sm:text-center\">\n Select Payment Option\n </h2>\n <div className=\"flex mt-4 border-b border-gray-600\">\n <button\n className={`flex-1 py-3 font-semibold text-[18px] leading-8 ${\n activeTab === \"autoPay\"\n ? \"text-[#FFFFFF] border-b-2 border-[#FBBC5E]\"\n : \"text-[#FFFFFF99]\"\n } max-sm:text-[12px]`}\n onClick={() => setActiveTab(\"autoPay\")}\n >\n Auto-Pay Scan\n </button>\n <button\n className={`flex-1 py-3 font-semibold text-[18px] leading-8 ${\n activeTab === \"manualEntry\"\n ? \"text-[#FFFFFF] border-b-2 border-[#FBBC5E]\"\n : \"text-[#FFFFFF99]\"\n } max-sm:text-[12px]`}\n onClick={() => setActiveTab(\"manualEntry\")}\n >\n Manual Entry Scan\n </button>\n </div>\n </div>\n\n {/* QR Code Section */}\n <div className=\"flex justify-center mt-4\">\n {qrLoading ? (\n <div className=\"w-32 h-32 flex justify-center items-center sm:w-2/4 sm:h-56 p-2 rounded-lg\">\n <CircularProgress\n style={{\n width: \"50px\",\n height: \"50px\",\n color: \"#535353\",\n }}\n />{\" \"}\n </div>\n ) : (\n <>\n {activeTab == \"autoPay\" ? (\n <img\n src={autoPayScanQr}\n alt=\"Auto Pay QR Code\"\n className=\"w-40 h-40 sm:w-2/4 sm:h-56 p-2 rounded-lg bg-transparent\"\n />\n ) : (\n <img\n src={manualEntryScanQr}\n alt=\"Manual Entry QR Code\"\n className=\"w-40 h-40 sm:w-2/4 sm:h-56 p-2 rounded-lg bg-transparent\"\n />\n )}\n </>\n )}\n </div>\n <p className=\"text-[#FFFFFF] font-semibold text-center text-sm mt-4\">\n You can scan the QR code using the scanner in your Web3 wallet app\n on your mobile device to complete the payment.\n </p>\n\n {/* Payment Details */}\n <div className=\"mt-6\">\n <div className=\"border border-[#5F5F5F] text-white gap-4 p-4 rounded-lg text-sm\">\n <p className=\"text-[#FFFFFF99] font-semibold text-[16px] py-2\">\n Payment details\n </p>\n\n <div className=\"flex max-sm:block justify-between items-center \">\n <p className=\" break-[break-word] break-words py-2\">\n <span className=\"text-[#FFFFFF99] font-semibold text-[16px]\">\n From:\n </span>{\" \"}\n <span className=\"font-normal\">\n {transactionRes?.web3FromAddress}\n </span>\n </p>\n <span\n onClick={() => setShowChangeWalletPopup(true)}\n className=\"text-[#FBBC5E] font-semibold text-[12px] cursor-pointer\"\n >\n Change\n </span>\n </div>\n <div className=\"flex max-sm:block justify-between items-center \">\n <p className=\"break-[break-word] break-words py-2\">\n <span className=\"text-[#FFFFFF99] font-semibold text-[16px]\">\n To:\n </span>{\" \"}\n <span className=\"font-normal\">\n {\" \"}\n {transactionRes?.web3ToAddress}\n </span>\n </p>{\" \"}\n <button\n onClick={() => copyToClipboard(transactionRes?.web3ToAddress)}\n className=\"text-[#FFFFFF] border border-[#939393] py-1 font-semibold px-3 rounded-[25px] hover:bg-white/[0.90] hover:text-dark\"\n >\n Copy\n </button>\n </div>\n <p className=\"py-2\">\n <span className=\"text-[#FFFFFF99] font-semibold text-[16px]\">\n {\" \"}\n Amount:\n </span>\n <span className=\"font-semibold text-[16px] text-[#FBBC5E]\">\n {\" \"}\n {transactionRes?.amount} FSTR\n </span>\n </p>\n </div>\n </div>\n\n <div>\n <p className=\"text-[#FFFFFF] text-[18px] font-semibold mt-4 text-center\">\n OR\n </p>\n </div>\n\n {showChangeWalletPopup && (\n <WalletAddressModel\n addressList={walletAddressList}\n onCancel={onWalletPopupClose}\n onNext={onActionNextBtnClick}\n btnText=\"Change\"\n selectedWalletId={transactionRes?.web3FromAddress}\n />\n )}\n\n {/* Time 5 minute */}\n {transactionRes?.paymentHash && (\n <div className=\"flex\">\n <span className=\"text-[#777777] font-medium text-sm mt-4 text-center\">\n Your transaction will remain valid for 7 minutes. Please\n complete the payment within this timeframe:{\" \"}\n <span className=\"text-[#FBBC5E] font-medium text-sm inline-block w-[40px]\">\n {\" \"}\n {minutes.toString().padStart(2, \"0\")}:\n {seconds.toString().padStart(2, \"0\")}\n </span>\n </span>\n </div>\n )}\n\n {/* Action Button */}\n <div className=\"text-center mt-6\">\n {isMobile ? (\n <button\n onClick={mobileButtonTransaction}\n disabled={loading || transactionSuccess}\n className=\"px-4 w-full flex justify-center py-3 text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] hover:from-[#DB9149] hover:to-[#DB9149]\"\n >\n Pay using Web3 wallet app\n </button>\n ) : loading ? (\n <Loader />\n ) : (\n <button\n onClick={handleCreatePayment}\n disabled={loading || transactionSuccess}\n className=\"px-4 w-full flex justify-center py-3 text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] hover:from-[#DB9149] hover:to-[#DB9149]\"\n >\n {` Pay using Browser Extension`}\n </button>\n )}\n </div>\n\n {/* Notes for auto pay */}\n {activeTab === \"autoPay\" && (\n <p className=\"text-[#777777] font-medium text-sm mt-4 text-center\">\n Note: Some wallets may not support the auto-pay method. Kindly\n switch to the manual pay method to complete your transaction.\n </p>\n )}\n\n {/* Notes for manual entry */}\n {activeTab === \"manualEntry\" && (\n <p className=\"text-[#6BFEF6] font-medium text-sm mt-4 text-center\">\n Enter the payment amount carefully as displayed above during the\n transaction. Double-check the amount before confirming, as\n incorrect entries will result in a failed transaction.\n </p>\n )}\n </div>\n </div>\n\n {showAlert && (\n <Alert\n open={showAlert}\n message={alertMessage}\n isSuccess={alertSuccess}\n heading={alertHeading}\n canClose={false}\n onClose={goBack}\n buttonText={\"Retry Payment\"}\n />\n )}\n\n {showCommonErrorPopup && (\n <Alert\n open={showCommonErrorPopup}\n message={alertMessage}\n isSuccess={alertSuccess}\n onClose={() => {\n setShowCommonErrorPopup(false);\n }}\n />\n )}\n\n {showAlreadyInAsset && (\n <Alert\n open={showAlreadyInAsset}\n message={alertMessage}\n isSuccess={alertSuccess}\n canClose={false}\n onClose={() => {\n setShowAlreadyInAsset(false);\n navigate(\"/marketplace\");\n }}\n />\n )}\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[60%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </div>\n );\n};\n\nexport default CheckoutFSTR;\n","/**\n * * This file is part of FourthStar Checkout Page\n *------------------------------------------------------\n *@module InitiatePayment\n *@developer Shiv Pandey\n */\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport {\n Link,\n useLocation,\n useNavigate,\n useSearchParams,\n} from \"react-router-dom\";\n\nimport { GlobalStore } from \"store/GlobalStore\";\n\nimport { BASE_URL, EndpointsSlug } from \"constant/api/Endpoints\";\nimport abiJson from \"constant/abi-json\";\nimport Loader from \"components/Loader/Loader\";\nimport ShadowFrame from \"components/shadow-frame\";\n\nimport Alert from \"components/popup/Alert/Alert\";\n\nconst InitiatePayment = () => {\n const navigate = useNavigate();\n const location = useLocation();\n const accessToken = localStorage.getItem(\"accessToken\");\n // need to use redux global state directly because two stores have been setup in the app\n const authState = GlobalStore.getState()?.auth;\n\n // user not signed in\n if (!accessToken) {\n navigate(`/signin?ref=${location.pathname}`, {\n replace: true,\n });\n }\n\n // user signed in but did not verify his email\n if (accessToken && !authState?.userInfo?.isVerified) {\n navigate(`/otp-verification`, {\n replace: true,\n });\n }\n\n const [searchParams] = useSearchParams();\n\n const productType = searchParams.get(\"productType\");\n const productName = searchParams.get(\"productName\");\n const amount = searchParams.get(\"amount\");\n const productId = searchParams.get(\"productId\");\n const themeId = searchParams.get(\"themeId\");\n const isSubscription = searchParams.get(\"isSubscription\");\n const channelId = searchParams.get(\"channelId\");\n const walletId = searchParams.get(\"walletId\");\n // this checks for paid content, if we are not passing required fields in search params then go back, unless its for cart or subscription\n if (\n !searchParams.get(\"isCart\") &&\n !searchParams.get(\"isSubscription\") &&\n (!productType || !amount || !productId || !walletId)\n ) {\n navigate(-1);\n }\n\n const selectedAccountRef = useRef(null);\n\n const [showAlert, setShowAlert] = useState(false);\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [alertSuccess, setAlertSuccess] = useState(true);\n const [showChangeWalletErrorPopup, setShowChangeWalletErrorPopup] =\n useState(false);\n\n const [isLoading, setIsLoading] = useState(true);\n // Go to checkout page\n const goToCheckoutPage = async (orderId) => {\n console.log(\"Checkout page is called\");\n navigate(`/checkoutfstr`, {\n replace: true,\n state: {\n orderId: orderId,\n isSubscription: isSubscription ? true : false,\n },\n });\n };\n\n // Initiate again transaction after change the wallet address\n const modifyCryptoTransactionWalletId = async (\n web3FromAddress,\n paymentHash,\n orderId\n ) => {\n // payload for checking out a single paid product\n try {\n let payload = {\n paymentHash: paymentHash,\n web3FromAddress: web3FromAddress,\n };\n let res = await fetch(\n BASE_URL + EndpointsSlug.MODIFY_CRYPTO_TRANSACTION,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n if (res?.response?.statusEnum != 1) {\n setAlertMessage(res.response?.message);\n setAlertSuccess(false);\n setShowChangeWalletErrorPopup(true);\n // throw new Error(res.response?.message);\n } else {\n const existingData = sessionStorage.getItem(`${orderId}`);\n\n let parsedData = JSON.parse(existingData);\n delete parsedData.qrData;\n // Update fields as needed\n parsedData.gatewayTransaction = res?.response?.data.gatewayTransaction;\n sessionStorage.setItem(`${orderId}`, JSON.stringify(parsedData));\n return true;\n }\n } catch (error) {\n setAlertMessage(\"Something went wrong please try again!\");\n setAlertSuccess(false);\n setShowChangeWalletErrorPopup(true);\n return;\n }\n };\n\n // this will handle getting user account details, and handle multiple accounts scenarios\n const initiateTransaction = async () => {\n console.log(\"initiate transaction called\");\n // 2. call our backend's initiate trans api here, and store the hash,\n if (isSubscription) {\n await inititateSubscriptonTransactionOnBackend();\n } else {\n // this will return true or false for successful initiation\n await initiateTransactionOnBackend();\n }\n };\n\n // this will initiate transaction on our backend and we will store required values in localstorage here\n const initiateTransactionOnBackend = async () => {\n try {\n let res = null;\n if (productType === \"event\") {\n res = await fetch(\n BASE_URL + EndpointsSlug.INITIATE_CRYPTO_EVENT_PURCHASE,\n {\n method: \"POST\",\n body: JSON.stringify({\n eventId: productId,\n web3FromAddress: localStorage.getItem(\"web3FromAddress\"),\n }),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n } else {\n let product = {\n amount: Number(amount),\n productId: productId,\n productType: productType,\n name: productName,\n };\n\n // for apartments and ships\n if (themeId) {\n product = {\n ...product,\n themeId,\n };\n }\n\n // payload for checking out a single paid product\n let payload = {\n products: [product],\n paymentGatewayName: \"polygon\",\n total_amount: Number(amount),\n web3FromAddress: localStorage.getItem(\"web3FromAddress\"),\n };\n\n // if we are checking out a cart, we are getting the payload stored in session storage from the cart page and usingit here\n if (searchParams.get(\"isCart\")) {\n console.log(\"cart checkout\");\n payload = {\n products: JSON.parse(\n sessionStorage.getItem(\"cartCheckoutDataCrypto\")\n ),\n paymentGatewayName: \"polygon\",\n total_amount: JSON.parse(\n sessionStorage.getItem(\"cartCheckoutDataCrypto\")\n ).reduce((acc, current) => {\n return acc + current.amount;\n }, 0),\n web3FromAddress:\n selectedAccountRef.current ||\n localStorage.getItem(\"web3FromAddress\"),\n };\n }\n\n res = await fetch(\n BASE_URL + EndpointsSlug.INITIATE_CRYPTO_TRANSACTION,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n }\n\n if (res === null) {\n throw new Error(\"Something went wrong!\");\n }\n\n if (res.ok) {\n res = await res.json();\n }\n\n if (res?.response?.statusEnum == 0 && res?.response?.errorCode == \"210\") {\n console.log(\"Already\", res.response?.message);\n setShowAlert(true);\n setAlertSuccess(true);\n setIsLoading(false);\n setAlertMessage(\"you have already purchased this Asset!\");\n return res;\n } else if (\n res?.response?.statusEnum == 0 &&\n res?.response?.errorCode == \"288\"\n ) {\n console.log(\"Purchase limit\", res.response?.message);\n setShowAlert(true);\n setAlertSuccess(false);\n setIsLoading(false);\n setAlertMessage(\n res.response?.message || \"Purchase limit exceeded for this asset\"\n );\n return res;\n } else if (\n res?.response?.statusEnum == 0 &&\n res?.response?.errorCode == \"216\"\n ) {\n const web3FromAddress =\n res?.response?.data?.gatewayTransaction?.web3FromAddress;\n const paymentHash =\n res?.response?.data?.gatewayTransaction?.paymentHash;\n const orderId = res?.response?.data?.gatewayTransaction?._id;\n if (web3FromAddress.toLowerCase() !== walletId.toLowerCase()) {\n await modifyCryptoTransactionWalletId(walletId, paymentHash, orderId);\n await goToCheckoutPage(orderId);\n } else {\n await goToCheckoutPage(orderId);\n console.log(\"Your order is pending\");\n }\n } else {\n let responseData = res?.response?.data;\n let orderId = res?.response?.data?.gatewayTransaction?._id;\n const expiryTime = new Date().getTime() + 7 * 60 * 1000; // Current time + 10 minutes\n let sessionInitiateTransactionData = {\n ...responseData,\n expiryTime,\n productType,\n productId,\n };\n\n sessionStorage.setItem(\n `${orderId}`,\n JSON.stringify(sessionInitiateTransactionData)\n );\n\n await goToCheckoutPage(orderId);\n // localStorage.setItem(\n // \"transactionpaymenthashfstr\",\n // res?.response?.data?.gatewayTransaction?.paymentHash\n // );\n // selectedAccountRef.current =\n // res?.response?.data?.gatewayTransaction?.web3FromAddress;\n // localStorage.setItem(\n // \"web3ToAddress\",\n // res?.response?.data?.gatewayTransaction?.web3ToAddress\n // );\n // returning if initiate succeeded or not\n return res?.response?.statusEnum == 1;\n\n // setPaymentUrl(res.response?.data?.session?.url);\n }\n } catch (e) {\n setAlertSuccess(false);\n setShowAlert(true);\n setIsLoading(false);\n setAlertMessage(e.message || \"Something went wrong\");\n return false;\n }\n };\n\n const inititateSubscriptonTransactionOnBackend = async () => {\n try {\n let payload = {\n channelId,\n web3FromAddress: localStorage.getItem(\"web3FromAddress\"),\n };\n\n let res = await fetch(\n BASE_URL + EndpointsSlug.INITIATE_CRYPTO_SUBSCRIPTION,\n {\n method: \"POST\",\n body: JSON.stringify(payload),\n mode: \"cors\",\n headers: {\n Authorization: `Bearer ${localStorage.getItem(\"accessToken\")}`,\n \"Content-Type\": \"application/json\",\n },\n }\n );\n\n if (res.ok) {\n res = await res.json();\n }\n\n if (res?.response?.statusEnum == 0 && res?.response?.errorCode == \"210\") {\n console.log(\"Already\", res.response?.message);\n setShowAlert(true);\n setIsLoading(false);\n setAlertMessage(\"you have already purchased this Asset!\");\n return res;\n } else if (\n res?.response?.statusEnum == 0 &&\n res?.response?.errorCode == \"216\"\n ) {\n const web3FromAddress =\n res?.response?.data?.gatewayTransaction?.web3FromAddress;\n const paymentHash =\n res?.response?.data?.gatewayTransaction?.paymentHash;\n const orderId = res?.response?.data?.gatewayTransaction?._id;\n if (web3FromAddress.toLowerCase() !== walletId.toLowerCase()) {\n await modifyCryptoTransactionWalletId(walletId, paymentHash, orderId);\n await goToCheckoutPage(orderId);\n } else {\n await goToCheckoutPage(orderId);\n console.log(\"Your order is pending\");\n }\n } else {\n let responseData = res?.response?.data;\n let orderId = res?.response?.data?.gatewayTransaction?._id;\n const expiryTime = new Date().getTime() + 7 * 60 * 1000; // Current time + 10 minutes\n let sessionInitiateTransactionData = { ...responseData, expiryTime };\n\n sessionStorage.setItem(\n `${orderId}-initiateTransaction`,\n JSON.stringify(sessionInitiateTransactionData)\n );\n\n await goToCheckoutPage(orderId);\n // localStorage.setItem(\n // \"transactionpaymenthashfstr\",\n // res?.response?.data?.gatewayTransaction?.paymentHash\n // );\n // selectedAccountRef.current =\n // res?.response?.data?.gatewayTransaction?.web3FromAddress;\n // localStorage.setItem(\n // \"web3ToAddress\",\n // res?.response?.data?.gatewayTransaction?.web3ToAddress\n // );\n // returning if initiate succeeded or not\n return res?.response?.statusEnum == 1;\n\n // setPaymentUrl(res.response?.data?.session?.url);\n }\n } catch (e) {\n setAlertSuccess(false);\n setShowAlert(true);\n setIsLoading(false);\n setAlertMessage(e.message || \"Something went wrong\");\n return false;\n }\n };\n\n useEffect(() => {\n (async () => {\n localStorage.setItem(\"web3FromAddress\", walletId);\n await initiateTransaction();\n })();\n }, [walletId]);\n\n if (isLoading) {\n return (\n <div className=\"relative w-full min-h-screen flex flex-col justify-center items-center\">\n <Loader />\n\n <p className=\"text-center mt-6 text-white/50 font-medium\">\n Processing Transaction\n </p>\n\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[60%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </div>\n );\n }\n\n return (\n <div className=\"relative min-h-screen w-full max-sm:px-0 px-8 \">\n <div className=\"flex items-center justify-center min-h-screen px-4\"></div>\n {showAlert && (\n <Alert\n open={showAlert}\n message={alertMessage}\n isSuccess={alertSuccess}\n canClose={false}\n onClose={() => {\n setShowAlert(false);\n setIsLoading(false);\n navigate(\"/marketplace\");\n }}\n />\n )}\n\n {showChangeWalletErrorPopup && (\n <Alert\n open={showChangeWalletErrorPopup}\n message={alertMessage}\n isSuccess={alertSuccess}\n canClose={false}\n onClose={() => {\n setShowAlert(false);\n setIsLoading(false);\n navigate(\"/marketplace\");\n }}\n />\n )}\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[60%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </div>\n );\n};\n\nexport default InitiatePayment;\n","import React from \"react\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst Success = () => {\n const navigate = useNavigate();\n\n return (\n <div className=\"min-h-screen\">\n <Alert\n open={true}\n canClose={false}\n heading=\"Transaction Successful\"\n message=\"Congratulations! Your purchase is successful. Please note that it may take some time to verify the transaction. Once verified, the item will be added to your assets.\"\n buttonText=\"Go To My Assets\"\n onClose={() => navigate(\"/my-assets?tab=0\")}\n />\n </div>\n );\n};\n\nexport default Success;\n","import Alert from \"components/popup/Alert/Alert\";\nimport React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst Failed = () => {\n const navigate = useNavigate();\n return (\n <div className=\"min-h-screen\">\n {\" \"}\n <Alert\n open={true}\n canClose={false}\n heading=\"Failed\"\n message=\"Transaction Failed\"\n buttonText=\"Go To Marketplace\"\n onClose={() => navigate(\"/marketplace\")}\n isSuccess={false}\n />\n </div>\n );\n};\n\nexport default Failed;\n","import wallet_ui from \"assets/images/wallet_ui.png\";\nimport PopupWrapper from \"components/popup/PopupWrapper\";\nimport { WalletIcon } from \"@web3icons/react\";\nimport { useEffect, useState } from \"react\";\nimport ModalCloseIcon from \"assets/images/myassets/charm_cross.png\";\nimport { walletIcon } from \"constant/Icon\";\nimport Alert from \"components/popup/Alert/Alert\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport Loader from \"components/Loader/Loader\";\nimport defaultWalletIcon from \"../../assets/icons/default-wallet-icon.png\";\nimport {\n useGetUserWalletListQuery,\n useAddUserWalletAddressMutation,\n useRemoveUserWalletAddressMutation,\n} from \"store/slicer/userProfile\";\nimport ErrorAlert from \"utils/errorAlert\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport AddWalletAddress from \"components/Modal/Payments/AddWalletAddress\";\nconst Index = () => {\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\n\n const [alertMessage, setAlertMessage] = useState(\"\");\n const [alertHeading, setAlertHeading] = useState(\"\");\n const [successAlert, setSuccessAlert] = useState(true);\n const [addressList, setAddressList] = useState([]);\n const [removeWalletId, setRemoveWalletId] = useState();\n const [isLoading, setIsLoading] = useState(true);\n\n const [removeWalletAddressId, { isLoading: removeLoading }] =\n useRemoveUserWalletAddressMutation();\n\n const onCloseConfirmPopup = () => {\n setShowConfirmPopup(false);\n };\n\n // called when alert popup is closed\n const onCloseAlert = () => {\n setAlertMessage(\"\");\n setSuccessAlert(\"\");\n setAlertHeading(\"\");\n };\n\n //Remove Wallet Addres list\n const removeWalletAddress = async (walletAddress) => {\n // console.log(\"Remove Wallet Address\", walletAddress);\n setRemoveWalletId(walletAddress);\n await removeWalletAddressId({\n walletId: walletAddress,\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n setAlertMessage(res?.data?.response?.message);\n setSuccessAlert(true);\n } else {\n setAlertMessage(\"Invalid Wallet Address\");\n setSuccessAlert(false);\n }\n })\n .catch((err) => {\n console.log(err);\n setAlertMessage(\"Api Error Occured.\");\n setSuccessAlert(false);\n });\n };\n\n // Get Wallet Addres list\n const {\n data: addressLists,\n error,\n // isFetching: loading,\n } = useGetUserWalletListQuery();\n useEffect(() => {\n if(addressLists?.response?.data?.web3Wallets){\n setIsLoading(false);\n }\n setAddressList(addressLists?.response?.data?.web3Wallets);\n }, [addressLists]);\n\n if (isLoading) {\n return (\n <div className=\"relative w-full min-h-screen flex flex-col justify-center items-center\">\n <Loader />\n <ShadowFrame className=\"w-[250px] md:w-[400px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[60%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n </div>\n );\n }\n\n return (\n <div className=\"min-h-screen w-full flex flex-col justify-center items-center\">\n {addressList && addressList.length > 0 ? (\n <div className=\"bg-[#242424] __modal__container w-[40%] max-[1459px]:w-[45%] max-[768px]:w-[100%] h-[70vh] overflow-auto max-[768px]:h-[90vh] max-[1199px]:w-[70%] rounded-[8px] transition-all hs-overlay-open:opacity-100 hs-overlay-open:duration-500\">\n <div className=\"relative bg-[#242424] rounded-[8px] py-4 px-8 max-[599px]:px-4\">\n <div className=\"mt-8 pb-[20px] flex items-center justify-between max-[599px]:p-[10px] \">\n <p className=\"font-body text-[16px] font-bold text-[#FFFFFF] leading-[24px] max-[599px]:text-[14px]\">\n List of added wallets\n </p>\n <button\n className=\"w-[26%] max-[599px]:w-[40%] btn-outline rounded-[8px] font-Inter font-semibold text-[12px] max-[599px]:text-[10px] leading-[19.36px] py-2 border border-[#fbbc5e] hover:text-black\"\n onClick={() => {\n setShowConfirmPopup(true);\n }}\n >\n + Add Wallet Address\n </button>\n </div>\n <div className=\"mt-[10px] mb-[20px] flex flex-col gap-y-[15px] h-[50vh] max-[768px]:h-[72vh] overflow-y-auto pr-3 max-[599px]:pr-[5px] showScrollbar\">\n {addressList.length > 0 ? (\n addressList.map((address, i) => {\n return (\n <div\n key={address?.walletId}\n className=\" bg-[#65656533] flex items-center justify-between rounded-[10px] gap-[20px] p-[15px] max-[599px]:p-[15px] pl-3\"\n >\n <div className=\"flex gap-[20px] max-[599px]:gap-[10px] items-center\">\n <span className=\"rounded-full border-2 border-[#535353] bg-black p-1 \">\n {address?.icon ? (\n <WalletIcon\n size=\"30\"\n name={`${address?.icon}`}\n variant=\"branded\"\n />\n ) : (\n <img\n src={defaultWalletIcon}\n className=\"w-[30px] h-[30px]\"\n />\n )}\n </span>\n <div className=\"flex flex-col items-start justify-start\">\n <p className=\"font-semibold text-[16px]\">\n {`${address?.label ? address?.label : \"_\"}`}\n </p>\n <p className=\"text-[12px] text-white/50 break-words break-all\">\n {`${address?.walletId ? address?.walletId : \"\"}`}\n </p>\n </div>\n </div>\n <span\n onClick={() => {\n removeWalletAddress(address?.walletId);\n }}\n className=\"text-[#FBBC5E] font-semibold text-[12px] cursor-pointer\"\n >\n {/* {isLoading ? \"\" : \"Remove\"} */}\n {removeLoading &&\n address?.walletId == removeWalletId ? (\n <CircularProgress\n style={{\n width: \"25px\",\n height: \"25px\",\n color: \"#535353\",\n marginRight: \"15px\",\n }}\n />\n ) : (\n \"Remove\"\n )}\n </span>\n </div>\n );\n })\n ) : (\n <div className=\"text-white/70 text-lg text-center h-[400px] grid place-content-center\">\n No wallet added\n </div>\n )}\n </div>\n </div>\n </div>\n ) : (\n <>\n <img\n src={wallet_ui}\n className=\"max-w-[276px] h-auto mt-[-100px]\"\n alt=\"Network problem\"\n />\n <h1 className=\"font-heading font-normal text-[20px] max-[599px]:text-[18px] leading-[10px] text-white\">\n Connect your Web3 Wallets\n </h1>\n <p className=\"text-center font-body font-normal mt-10 text-[16px] leading-[24px]\">\n You haven’t added any wallets yet. Connect your Web3 wallets to\n manage <br />\n your FSTR payments effortlessly.\n </p>\n <button\n onClick={() => {\n setShowConfirmPopup(true);\n }}\n className=\"mt-12 btn-gradient block mx-auto text-black font-bold text-[16px] leading-[19.5px] rounded-[6px] px-6 py-3 text-center\"\n >\n Get Started\n </button>\n </>\n )}\n\n {showConfirmPopup && <AddWalletAddress onClose={onCloseConfirmPopup} />}\n\n {alertMessage && (\n <Alert\n open={Boolean(alertMessage)}\n onClose={onCloseAlert}\n message={alertMessage}\n heading={alertHeading}\n isSuccess={successAlert}\n />\n )}\n </div>\n );\n};\n\nexport default Index;\n","import React from \"react\";\nimport \"./privacy.css\";\nimport { NavLink } from \"react-router-dom\";\n\nconst PrivacyPolicy = () => {\n const WEB_URL = process.env.REACT_APP_USER_WEB_URL;\n return (\n <div className=\"main-container\">\n <div className=\"privacy-container\">\n <h1 className=\"privacy-title-text\">Privacy Policy</h1>\n <p className=\"privacy-text-desc\">\n <span className=\"font-semibold\">Last updated: </span> March 19, 2025\n </p>\n <p className=\"privacy-text-desc\">\n Welcome to Fourth Star by XVerse Inc (“we,” “us,” or “our”). Fourth\n Star is committed to protecting your privacy. This Privacy Policy\n explains how we collect, use, and safeguard your information when you\n interact with our website (\n <NavLink\n to={`${WEB_URL}`}\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n www.fourthstar.com{\" \"}\n </NavLink>\n ) or use our Fourth Star application on platforms such as Meta Quest.\n By using our services, you agree to the practices outlined below.\n </p>\n {/* <p className=\"privacy-text-desc\">\n Questions or concerns? Reading this privacy notice will help you\n understand your privacy rights and choices. If you do not agree with\n our policies and practices, please do not use our Services.\n </p> */}\n </div>\n\n <div className=\"privacy-container\">\n <div className=\"desc1\">\n <h1 className=\"privacy-sub-title\">1. Information We Collect</h1>\n <h2 className=\"privacy-sub-title-text\">\n 1.1 Information You Provide to Us\n </h2>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <strong>Website Forms:</strong> When you fill out forms, we\n collect your name, email address, phone number, and other\n submitted details.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Account Information:</strong> For{\" \"}\n <strong>Fourth Star</strong>, we collect usernames, passwords, and\n contact details necessary to create and manage your account.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Payment Information:</strong> We collect billing details\n when you purchase licenses, tokens, or services.\n </li>\n </ul>\n\n <h2 className=\"privacy-sub-title-text mt-2\">\n 1.2 Information We Collect Automatically\n </h2>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <strong>Website Data:</strong> Browser type, IP address, device\n type, operating system, and referring URLs.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>App Data:</strong> Device identifiers, session activity,\n app usage statistics, and interaction patterns collected via Meta\n Quest or other VR platforms.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Meta Platform Data:</strong>\n <ul style={{ listStyleType: \"circle\" }} className=\"mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <strong>User ID : </strong> A unique identifier provided by\n Meta to link your account with our services.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Subscriptions/IAP : </strong> Includes\n subscription/IAP status, billing periods, and renewal details\n to manage user access to premium content.\n </li>\n </ul>\n </li>\n </ul>\n\n <h2 className=\"privacy-sub-title-text mt-2\">\n 1.3 Information from Third Parties\n </h2>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <strong>Website Forms:</strong> When you fill out forms, we\n collect your name, email address, phone number, and other\n submitted details.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Account Information:</strong> For{\" \"}\n <strong>Fourth Star</strong>, we collect usernames, passwords, and\n contact details necessary to create and manage your account.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Payment Information:</strong> We collect billing details\n when you purchase licenses, tokens, or services.\n </li>\n </ul>\n </div>\n\n <div className=\"desc2\">\n <h1 className=\"privacy-sub-title\">2. How We Use Your Information</h1>\n <p className=\"privacy-text-desc\">We use your information to:</p>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n Provide, maintain, and improve our website and{\" \"}\n <strong>Fourth Star</strong> app.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Process payments, manage licenses, and deliver tokens for{\" \"}\n <strong>Fourth Star</strong> usage.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Communicate with you about updates, services, or support.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Analyze usage trends to optimize performance and user experience.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Comply with Meta’s data requirements and legal obligations.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Communicate with you via email regarding updates, promotions, and\n other relevant information about <strong>Fourth Star</strong> You\n may opt out of marketing emails at any time by following the\n unsubscribe link included in our emails or by contacting us\n directly.\n </li>\n </ul>\n </div>\n\n <div className=\"desc3\">\n <h1 className=\"privacy-sub-title\">3. Sharing Your Information</h1>\n <p className=\"privacy-text-desc\">\n We do not sell your personal information. However, we may share it:\n </p>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <strong>With Service Providers:</strong> To manage hosting,\n analytics, and payment processing.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>With Meta:</strong> As required by Meta’s Data Use Policy\n and Developer Guidelines to enable app functionality.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>For Legal Reasons:</strong> To comply with applicable\n laws, regulations, or legal processes.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>With Your Consent:</strong> When you explicitly approve\n data sharing with third parties.\n </li>\n </ul>\n </div>\n\n <div className=\"desc4\">\n <h1 className=\"privacy-sub-title\">4. Data Retention</h1>\n <p className=\"privacy-text-desc\">We retain your data as follows:</p>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <strong>Website Data:</strong> For as long as necessary for the\n purposes described in this policy.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>App Data:</strong> In line with Meta’s requirements and\n our operational needs.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Payment Information:</strong> To comply with legal and\n financial regulations.\n </li>\n <li className=\"list-row privacy-text-desc\">\n <strong>Meta Platform Data:</strong>User IDs and Subscription data\n are retained only while your account is active. If you deactivate\n your account, this data will be deleted unless required for legal\n compliance.\n </li>\n </ul>\n </div>\n\n <div className=\"desc5\">\n <h1 className=\"privacy-sub-title\">5. Security</h1>\n <p className=\"privacy-text-desc\">\n We employ technical, administrative, and physical measures to\n safeguard your data. While no system is completely secure, we take\n reasonable steps to protect your information from unauthorized\n access, use, or disclosure.\n </p>\n </div>\n\n <div className=\"desc6\">\n <h1 className=\"privacy-sub-title\">6. Your Rights</h1>\n <p className=\"privacy-text-desc\">You have the right to:</p>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n Access, update, or delete your data by contacting us at{\" \"}\n <strong>info@fourthstar.com.</strong>\n </li>\n <li className=\"list-row privacy-text-desc\">\n Opt out of non-essential tracking through browser or app settings.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Withdraw consent or request data portability where applicable.\n </li>\n <li className=\"list-row privacy-text-desc\">\n You have the right to opt out of email communications at any time\n by clicking “unsubscribe” in our emails or contacting us at{\" \"}\n <strong>info@fourthstar.com.</strong>\n </li>\n </ul>\n </div>\n\n <div className=\"desc7\">\n <h1 className=\"privacy-sub-title\">\n 7. Compliance with Meta’s Policies\n </h1>\n <p className=\"privacy-text-desc\">\n <strong>Fourth Star </strong>complies with Meta’s requirements,\n including:\n </p>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n Collecting only necessary data for app functionality, such as User\n ID and User Profile.\n </li>\n <li className=\"list-row privacy-text-desc\">\n Not using sensitive data, such as health or biometric data,\n without explicit consent.\n </li>\n </ul>\n <p className=\"privacy-text-desc mt-2\">\n For more information, review:\n </p>\n <ul className=\"list-disc mt-2\">\n <li className=\"list-row privacy-text-desc\">\n <NavLink\n to=\"https://developers.meta.com/horizon/policy/privacy-policy/\"\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n Meta’s Privacy Policy\n </NavLink>{\" \"}\n </li>\n <li className=\"list-row privacy-text-desc\">\n <NavLink\n to=\"https://developers.meta.com/horizon/policy/data-use/\"\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n Meta’s Data Use Policy\n </NavLink>{\" \"}\n </li>\n </ul>\n </div>\n\n <div className=\"desc8\">\n <h1 className=\"privacy-sub-title\">\n 8. Changes to This Privacy Policy\n </h1>\n <p className=\"privacy-text-desc\">\n We may update this Privacy Policy periodically. Updates will be\n posted on this page with the new effective date. Continued use of\n our services indicates your agreement with the updated policy.\n </p>\n </div>\n\n <div className=\"desc9\">\n <h1 className=\"privacy-sub-title \">9. Contact Us</h1>\n <p className=\"privacy-text-desc mb-2\">\n If you have any questions or concerns, please contact us at:\n </p>\n <p className=\"privacy-text-desc font-semibold\">Fourth Star</p>\n <p className=\"privacy-text-desc font-semibold\">Earth Headquarters</p>\n <p className=\"privacy-text-desc font-semibold\">\n San Francisco, CA 94103\n </p>\n <p className=\"privacy-text-desc font-semibold\">United States</p>\n <p className=\"privacy-text-desc font-semibold\">Phone: 4154199590</p>\n <p className=\"privacy-text-desc font-semibold\">info@fourthstar.com</p>\n </div>\n </div>\n </div>\n );\n};\n\nexport default PrivacyPolicy;\n","import React from \"react\";\nimport \"./privacy.css\";\nimport { NavLink } from \"react-router-dom\";\n\nconst CookiesPolicy = () => (\n <div className=\"main-container\">\n <div className=\"privacy-container\">\n <h1 className=\"privacy-title-text\">COOKIE POLICY</h1>\n <p className=\"privacy-text-desc\">Last updated July 05, 2024</p>\n <p className=\"privacy-text-desc\">\n This Cookie Policy explains how Fourth Star (\"Company\" \"we\" \"us\" and\n \"our\") uses cookies and similar technologies to recognize you when you\n visit our website at{\" \"}\n <NavLink\n to=\"https://www.fourthstar.com\"\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n https://www.fourthstar.com\n </NavLink>{\" \"}\n (\"Website\"). It explains what these technologies are and why we use them\n as well as your rights to control our use of them.\n </p>\n <p className=\"privacy-text-desc\">\n In some cases we may use cookies to collect personal information or that\n becomes personal information if we combine it with other information.\n </p>\n <h2 className=\"privacy-sub-title\">What are cookies?</h2>\n <p className=\"privacy-text-desc\">\n Cookies are small data files that are placed on your computer or mobile\n device when you visit a website. Cookies are widely used by website\n owners in order to make their websites work or to work more efficiently\n as well as to provide reporting information.\n </p>\n <p className=\"privacy-text-desc\">\n Cookies set by the website owner (in this case Fourth Star) are called\n \"first-party cookies.\" Cookies set by parties other than the website\n owner are called \"third-party cookies.\" Third-party cookies enable\n third-party features or functionality to be provided on or through the\n website (e.g. advertising interactive content and analytics). The\n parties that set these third-party cookies can recognize your computer\n both when it visits the website in question and also when it visits\n certain other websites.\n </p>\n <h2 className=\"privacy-sub-title\">Why do we use cookies?</h2>\n <p className=\"privacy-text-desc\">\n We use first- and third-party cookies for several reasons. Some cookies\n are required for technical reasons in order for our Website to operate\n and we refer to these as \"essential\" or \"strictly necessary\" cookies.\n Other cookies also enable us to track and target the interests of our\n users to enhance the experience on our Online Properties. Third parties\n serve cookies through our Website for advertising analytics and other\n purposes. This is described in more detail below.\n </p>\n <h2 className=\"privacy-sub-title\">How can I control cookies?</h2>\n <p className=\"privacy-text-desc\">\n You have the right to decide whether to accept or reject cookies. You\n can exercise your cookie rights by setting your preferences in the\n Cookie Consent Manager. The Cookie Consent Manager allows you to select\n which categories of cookies you accept or reject. Essential cookies\n cannot be rejected as they are strictly necessary to provide you with\n services.\n </p>\n <p className=\"privacy-text-desc\">\n The Cookie Consent Manager can be found in the notification banner and\n on our website. If you choose to reject cookies you may still use our\n website though your access to some functionality and areas of our\n website may be restricted. You may also set or amend your web browser\n controls to accept or refuse cookies.\n </p>\n <p className=\"privacy-text-desc\">\n The specific types of first- and third-party cookies served through our\n Website and the purposes they perform are described in the table below\n (please note that the specific cookies served may vary depending on the\n specific Online Properties you visit):\n </p>\n <h2 className=\"privacy-sub-title\">\n Performance and functionality cookies:\n </h2>\n These cookies are used to enhance the performance and functionality of our\n Website but are non-essential to their use. However, without these cookies\n certain functionality (like videos) may become unavailable.\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: NRBA_SESSION</li>\n <li>Purpose: Tracks the user's session for YouTube</li>\n <li>Provider: www.fourthstar.com</li>\n <li>Service: YouTube View Service Privacy Policy</li>\n <li>Type: html_local_storage</li>\n <li>Expires in: Persistent</li>\n </ul>\n <h2 className=\"privacy-sub-title\">\n Analytics and customization cookies:\n </h2>\n These cookies collect information that is used either in aggregate form to\n help us understand how our Website is being used or how effective our\n marketing campaigns are or to help us customize our Website for you.\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: _ga</li>\n <li>\n Purpose: Records a particular ID used to come up with data about\n website usage by the user\n </li>\n <li>Provider: .fourthstar.com</li>\n <li>Service: Google Analytics View Service Privacy Policy</li>\n <li>Type: http_cookie</li>\n <li>Expires in: 1 year 1 month 4 days</li>\n </ul>\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: blobs</li>\n <li>Provider: bam.nr-data.net</li>\n <li>Type: pixel_tracker</li>\n <li>Expires in: session</li>\n </ul>\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: NRJS-8b3063b939449777cc7</li>\n <li>Provider: bam.nr-data.net</li>\n <li>Type: pixel_tracker</li>\n <li>Expires in: session</li>\n </ul>\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: _ga_#</li>\n <li>\n Purpose: Used to distinguish individual users by means of designation\n of a randomly generated number as a client identifier which allows\n calculation of visits and sessions\n </li>\n <li>Provider: .fourthstar.com</li>\n <li>Service: Google Analytics View Service Privacy Policy</li>\n <li>Type: http_cookie</li>\n <li>Expires in: 1 year 1 month 4 days</li>\n </ul>\n <h2 className=\"privacy-sub-title\">Unclassified cookies:</h2>\n These are cookies that have not yet been categorized. We are in the\n process of classifying these cookies with the help of their providers.\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: USDMARKETFSTRKEY</li>\n <li>Provider: www.fourthstar.com</li>\n <li>Type: html_session_storage</li>\n <li>Expires in: session</li>\n </ul>\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: FSTRDISCOUNT</li>\n <li>Provider: www.fourthstar.com</li>\n <li>Type: html_session_storage</li>\n <li>Expires in: session</li>\n </ul>\n <ul className=\"privacy-text-desc border py-10\">\n <li>Name: USDPLATFORMFSTRKEY</li>\n <li>Provider: www.fourthstar.com</li>\n <li>Type: html_session_storage</li>\n <li>Expires in: session</li>\n </ul>\n <h2 className=\"privacy-sub-title\">\n How can I control cookies on my browser?\n </h2>\n <p className=\"privacy-text-desc\">\n As the means by which you can refuse cookies through your web browser\n controls vary from browser to browser you should visit your browser's\n help menu for more information. The following is information about how\n to manage cookies on the most popular browsers:\n </p>\n <ul className=\"privacy-text-desc ulCustom\">\n <li>Chrome</li>\n <li>Internet Explorer</li>\n <li>Firefox</li>\n <li>Safari</li>\n <li>Edge</li>\n <li>Opera</li>\n </ul>\n <p className=\"privacy-text-desc\">\n In addition most advertising networks offer you a way to opt out of\n targeted advertising. If you would like to find out more information\n please visit:\n </p>\n <ul className=\"privacy-text-desc ulCustom\">\n <li>Digital Advertising Alliance</li>\n <li>Digital Advertising Alliance of Canada</li>\n <li>European Interactive Digital Advertising Alliance</li>\n </ul>\n <h2 className=\"privacy-sub-title\">\n What about other tracking technologies like web beacons?\n </h2>\n <p className=\"privacy-text-desc\">\n Cookies are not the only way to recognize or track visitors to a\n website. We may use other similar technologies from time to time like\n web beacons (sometimes called \"tracking pixels\" or \"clear gifs\"). These\n are tiny graphics files that contain a unique identifier that enables us\n to recognize when someone has visited our Website or opened an email\n including them. This allows us for example to monitor the traffic\n patterns of users from one page within a website to another to deliver\n or communicate with cookies to understand whether you have come to the\n website from an online advertisement displayed on a third-party website\n to improve site performance and to measure the success of email\n marketing campaigns. In many instances these technologies are reliant on\n cookies to function properly and so declining cookies will impair their\n functioning.\n </p>\n <h2 className=\"privacy-sub-title\">\n Do you use Flash cookies or Local Shared Objects?\n </h2>\n <p className=\"privacy-text-desc\">\n Websites may also use so-called \"Flash Cookies\" (also known as Local\n Shared Objects or \"LSOs\") to among other things collect and store\n information about your use of our services fraud prevention and for\n other site operations.\n </p>\n <p className=\"privacy-text-desc\">\n If you do not want Flash Cookies stored on your computer you can adjust\n the settings of your Flash player to block Flash Cookies storage using\n the tools contained in the Website Storage Settings Panel. You can also\n control Flash Cookies by going to the Global Storage Settings Panel and\n following the instructions (which may include instructions that explain\n for example how to delete existing Flash Cookies (referred to\n \"information\" on the Macromedia site) how to prevent Flash LSOs from\n being placed on your computer without your being asked and (for Flash\n Player 8 and later) how to block Flash Cookies that are not being\n delivered by the operator of the page you are on at the time).\n </p>\n <p className=\"privacy-text-desc\">\n Please note that setting the Flash Player to restrict or limit\n acceptance of Flash Cookies may reduce or impede the functionality of\n some Flash applications including potentially Flash applications used in\n connection with our services or online content.\n </p>\n <h2 className=\"privacy-sub-title\">Do you serve targeted advertising?</h2>\n <p className=\"privacy-text-desc\">\n Third parties may serve cookies on your computer or mobile device to\n serve advertising through our Website. These companies may use\n information about your visits to this and other websites in order to\n provide relevant advertisements about goods and services that you may be\n interested in. They may also employ technology that is used to measure\n the effectiveness of advertisements. They can accomplish this by using\n cookies or web beacons to collect information about your visits to this\n and other sites in order to provide relevant advertisements about goods\n and services of potential interest to you. The information collected\n through this process does not enable us or them to identify your name\n contact details or other details that directly identify you unless you\n choose to provide these.\n </p>\n <h2 className=\"privacy-sub-title\">\n How often will you update this Cookie Policy?\n </h2>\n <p className=\"privacy-text-desc\">\n We may update this Cookie Policy from time to time in order to reflect\n for example changes to the cookies we use or for other operational legal\n or regulatory reasons. Please therefore revisit this Cookie Policy\n regularly to stay informed about our use of cookies and related\n technologies.\n </p>\n <p className=\"privacy-text-desc\">\n The date at the top of this Cookie Policy indicates when it was last\n updated.\n </p>\n <h2 className=\"privacy-sub-title\">\n Where can I get further information?\n </h2>\n <p className=\"privacy-text-desc\">\n If you have any questions about our use of cookies or other technologies\n please email us at engineering@shadowcast.io or by post to:\n </p>\n <p className=\"privacy-text-desc\">\n Fourth Star\n <br />\n Earth Headquarters\n <br />\n San Francisco, CA 94103\n <br />\n United States\n <br />\n Phone: 4154199590\n <br />\n engineering@shadowcast.io\n </p>\n </div>\n </div>\n);\n\nexport default CookiesPolicy;\n","import React from \"react\";\nimport \"./term.css\";\nimport { NavLink } from \"react-router-dom\";\n\nconst TermsAndConditions = () => (\n <div className=\"main-container\">\n <div className=\"privacy-container\">\n <h1 className=\"privacy-title-text\">TERMS AND CONDITIONS</h1>\n <p className=\"privacy-text-desc\">Last updated July 05, 2024</p>\n\n <h4 className=\"privacy-sub-title\">AGREEMENT TO OUR LEGAL TERMS</h4>\n <p className=\"privacy-text-desc\">\n We are Fourth Star Inc. doing business as Fourth Star (\"Company,\" \"we,\"\n \"us,\" \"our\"), a company registered in California, United States, at\n Earth Headquarters, San Francisco, CA 94103.\n </p>\n <p className=\"privacy-text-desc\">\n We operate the website\n <NavLink\n to=\"https://www.fourthstar.com\"\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n https://www.fourthstar.com\n </NavLink>{\" \"}\n (the \"Site\"), the VR application\n <NavLink\n to=\"https://sidequestvr.com/app/31890/fourth-star-beta\"\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n Fourth Star\n </NavLink>{\" \"}(the \"App\"), as well as\n any other related products and services that refer or link to these\n legal terms (the \"Legal Terms\") (collectively, the \"Services\").\n </p>\n <p className=\"privacy-text-desc\">\n Discover and create your Virtual Reality within the Fourth Star\n Entertainment and Gaming Metaverse, the new VR platform for integrated\n Immersive content and Gaming. Watch the latest Science Fiction Movie in\n full 360 from the Entertainment Suite aboard your ship and then\n hyperdrive to a nearby planet. Embark on an interactive quest and then\n invite your friends to take a break and select from hours of fully\n immersive entertainment content from your favorite channels. Teleport\n aboard the Genesis, the Entertainment and Gaming Mothership that\n transports you to the Fourth Star universe. Explore over thirty\n environments, meet friends in the Café or spend the evening in your own\n Ship or Apartment and select your favorite immersive content from the\n fully integrated Entertainment Suite. Fly your Ship from the Genesis to\n an undiscovered planet and don't forget to dress to impress with your\n new Flight Suit. Visit fourthstar.com to start your adventure today!\n </p>\n <p className=\"privacy-text-desc\">\n You can contact us by phone at 4154199590, email at info@fourthstar.com,\n or by mail to Earth Headquarters, San Francisco, CA 94103, United\n States.\n </p>\n <p className=\"privacy-text-desc\">\n These Legal Terms constitute a legally binding agreement made between\n you, whether personally or on behalf of an entity (\"you\"), and Fourth\n Star Inc., concerning your access to and use of the Services. You agree\n that by accessing the Services, you have read, understood, and agreed to\n be bound by all of these Legal Terms. IF YOU DO NOT AGREE WITH ALL OF\n THESE LEGAL TERMS, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE\n SERVICES AND YOU MUST DISCONTINUE USE IMMEDIATELY.\n </p>\n <p className=\"privacy-text-desc\">\n We will provide you with prior notice of any scheduled changes to the\n Services you are using. Changes to Legal Terms will become effective\n seven (7) days after the notice is given, except if the changes apply to\n security updates, new functionality, bug fixes, and a court order, in\n which case the changes will be effective immediately. By continuing to\n use the Services after the effective date of any changes, you agree to\n be bound by the modified terms. If you disagree with such changes, you\n may terminate Services as per the section \"TERM AND TERMINATION.\"\n </p>\n <p className=\"privacy-text-desc\">\n The Services are intended for users who are at least 18 years old.\n Persons under the age of 18 are not permitted to use or register for the\n Services.\n </p>\n <p className=\"privacy-text-desc\">\n We recommend that you print a copy of these Legal Terms for your\n records.\n </p>\n\n <h2 className=\"privacy-sub-title\">TABLE OF CONTENTS</h2>\n <ol className=\"privacy-text-desc olCustom\">\n <li>OUR SERVICES</li>\n <li>INTELLECTUAL PROPERTY RIGHTS</li>\n <li>USER REPRESENTATIONS</li>\n <li>USER REGISTRATION</li>\n <li>PRODUCTS</li>\n <li>PURCHASES AND PAYMENT</li>\n <li>SUBSCRIPTIONS</li>\n <li>REFUNDS POLICY</li>\n <li>SOFTWARE</li>\n <li>PROHIBITED ACTIVITIES</li>\n <li>USER GENERATED CONTRIBUTIONS</li>\n <li>CONTRIBUTION LICENSE</li>\n <li>GUIDELINES FOR REVIEWS</li>\n <li>MOBILE APPLICATION LICENSE</li>\n <li>SOCIAL MEDIA</li>\n <li>THIRD-PARTY WEBSITES AND CONTENT</li>\n <li>SERVICES MANAGEMENT</li>\n <li>PRIVACY POLICY</li>\n <li>COPYRIGHT INFRINGEMENTS</li>\n <li>TERM AND TERMINATION</li>\n <li>MODIFICATIONS AND INTERRUPTIONS</li>\n <li>GOVERNING LAW</li>\n <li>DISPUTE RESOLUTION</li>\n <li>CORRECTIONS</li>\n <li>DISCLAIMER</li>\n <li>LIMITATIONS OF LIABILITY</li>\n <li>INDEMNIFICATION</li>\n <li>USER DATA</li>\n <li>ELECTRONIC COMMUNICATIONS TRANSACTIONS AND SIGNATURES</li>\n <li>CALIFORNIA USERS AND RESIDENTS</li>\n <li>MISCELLANEOUS</li>\n <li>CONTACT US</li>\n </ol>\n\n <h3 className=\"privacy-sub-title\">1. OUR SERVICES</h3>\n <p className=\"privacy-text-desc\">\n The information provided when using the Services is not intended for\n distribution to or use by any person or entity in any jurisdiction or\n country where such distribution or use would be contrary to law or\n regulation or which would subject us to any registration requirement\n within such jurisdiction or country. Accordingly, those persons who\n choose to access the Services from other locations do so on their own\n initiative and are solely responsible for compliance with local laws, if\n and to the extent local laws are applicable.\n </p>\n <p className=\"privacy-text-desc\">\n The Services are not tailored to comply with industry-specific\n regulations (Health Insurance Portability and Accountability Act\n (HIPAA), Federal Information Security Management Act (FISMA), etc.), so\n if your interactions would be subjected to such laws, you may not use\n the Services. You may not use the Services in a way that would violate\n the Gramm-Leach-Bliley Act (GLBA).\n </p>\n\n <h3 className=\"privacy-sub-title\">2. INTELLECTUAL PROPERTY RIGHTS</h3>\n <h4 className=\"privacy-sub-title\">Our intellectual property</h4>\n <p className=\"privacy-text-desc\">\n We are the owner or the licensee of all intellectual property rights in\n our Services, including all source code, databases, functionality,\n software, website designs, audio, video, text, photographs, and graphics\n in the Services (collectively, the \"Content\"), as well as the\n trademarks, service marks, and logos contained therein (the \"Marks\").\n </p>\n <p className=\"privacy-text-desc\">\n Our Content and Marks are protected by copyright and trademark laws (and\n various other intellectual property rights and unfair competition laws)\n and treaties in the United States and around the world.\n </p>\n <p className=\"privacy-text-desc\">\n The Content and Marks are provided in or through the Services \"AS IS\"\n for your personal, non-commercial use or internal business purpose only.\n </p>\n <h4 className=\"privacy-sub-title\">Your use of our Services</h4>\n <p className=\"privacy-text-desc\">\n Subject to your compliance with these Legal Terms, including the\n \"PROHIBITED ACTIVITIES\" section below, we grant you a non-exclusive,\n non-transferable, revocable license to:\n </p>\n <ul className=\"privacy-text-desc ulCustom\">\n <li>Access the Services; and</li>\n <li>\n download or print a copy of any portion of the Content to which you\n have properly gained access solely for your personal, non-commercial\n use or internal business purpose.\n </li>\n </ul>\n <p className=\"privacy-text-desc\">\n Except as set out in this section or elsewhere in our Legal Terms, no\n part of the Services and no Content or Marks may be copied, reproduced,\n aggregated, republished, uploaded, posted, publicly displayed, encoded,\n translated, transmitted, distributed, sold, licensed, or otherwise\n exploited for any commercial purpose whatsoever, without our express\n prior written permission.\n </p>\n <p className=\"privacy-text-desc\">\n If you wish to make any use of the Services, Content, or Marks other\n than as set out in this section or elsewhere in our Legal Terms, please\n address your request to: info@fourthstar.com. If we ever grant you\n permission to post, reproduce, or publicly display any part of our\n Services or Content, you must identify us as the owners or licensors of\n the Services, Content, or Marks and ensure that any copyright or\n proprietary notice appears or is visible on posting, reproducing, or\n displaying our Content.\n </p>\n <p className=\"privacy-text-desc\">\n We reserve all rights not expressly granted to you in and to the\n Services, Content, and Marks.\n </p>\n <p className=\"privacy-text-desc\">\n Any breach of these Intellectual Property Rights will constitute a\n material breach of our Legal Terms and your right to use our Services\n will terminate immediately.\n </p>\n <h4 className=\"privacy-sub-title\">Your submissions and contributions</h4>\n <p className=\"privacy-text-desc\">\n Please review this section and the \"PROHIBITED ACTIVITIES\" section\n carefully before using our Services to understand the (a) rights you\n give us and (b) obligations you have when you post or upload any content\n through the Services.\n </p>\n <h5 className=\"privacy-sub-title\">Submissions:</h5>\n <p className=\"privacy-text-desc\">\n By directly sending us any question, comment, suggestion, idea,\n feedback, or other information about the Services (\"Submissions\"), you\n agree to assign to us all intellectual property rights in such\n Submission. You agree that we shall own this Submission and be entitled\n to its unrestricted use and dissemination for any lawful purpose,\n commercial or otherwise, without acknowledgment or compensation to you.\n </p>\n <h5 className=\"privacy-sub-title\">Contributions:</h5>\n <p className=\"privacy-text-desc\">\n The Services may invite you to chat, contribute to, or participate in\n blogs, message boards, online forums, and other functionality during\n which you may create, submit, post, display, transmit, publish,\n distribute, or broadcast content and materials to us or through the\n Services, including but not limited to text, writings, video, audio,\n photographs, music, graphics, comments, reviews, rating suggestions,\n personal information, or other material (\"Contributions\"). Any\n Submission that is publicly posted shall also be treated as a\n Contribution.\n </p>\n <p className=\"privacy-text-desc\">\n You understand that Contributions may be viewable by other users of the\n Services and possibly through third-party websites.\n </p>\n <h4 className=\"privacy-sub-title\">\n When you post Contributions, you grant us a license (including use of\n your name, trademarks, and logos):\n </h4>\n <p className=\"privacy-text-desc\">\n By posting any Contributions, you grant us an unrestricted, unlimited,\n irrevocable, perpetual, non-exclusive, transferable, royalty-free,\n fully-paid, worldwide right and license to use, copy, reproduce,\n distribute, sell, resell, publish, broadcast, retitle, store, publicly\n perform, publicly display, reformat, translate, excerpt (in whole or in\n part), and exploit your Contributions (including, without limitation,\n your image, name, and voice) for any purpose, commercial, advertising,\n or otherwise, to prepare derivative works of, or incorporate into other\n works, your Contributions, and to sublicense the licenses granted in\n this section. Our use and distribution may occur in any media format and\n through any media channels.\n </p>\n <p className=\"privacy-text-desc\">\n This license includes our use of your name, company name, and franchise\n name, as applicable, and any of the trademarks, service marks, trade\n names, logos, and personal and commercial images you provide.\n </p>\n <h4 className=\"privacy-sub-title\">\n You are responsible for what you post or upload:\n </h4>\n <p className=\"privacy-text-desc\">\n By sending us Submissions and/or posting Contributions through any part\n of the Services or making Contributions accessible through the Services\n by linking your account through the Services to any of your social\n networking accounts, you:\n </p>\n <ul className=\"privacy-text-desc ulCustom\">\n <li>\n confirm that you have read and agree with our \"PROHIBITED ACTIVITIES\"\n and will not post, send, publish, upload, or transmit through the\n Services any Submission nor post any Contribution that is illegal,\n harassing, hateful, harmful, defamatory, obscene, bullying, abusive,\n discriminatory, threatening to any person or group, sexually explicit,\n false, inaccurate, deceitful, or misleading;\n </li>\n <li>\n to the extent permissible by applicable law, waive any and all moral\n rights to any such Submission and/or Contribution;\n </li>\n <li>\n warrant that any such Submission and/or Contributions are original to\n you or that you have the necessary rights and licenses to submit such\n Submissions and/or Contributions and that you have full authority to\n grant us the above-mentioned rights in relation to your Submissions\n and/or Contributions; and\n </li>\n <li>\n warrant and represent that your Submissions and/or Contributions do\n not constitute confidential information.\n </li>\n </ul>\n <p className=\"privacy-text-desc\">\n You are solely responsible for your Submissions and/or Contributions and\n you expressly agree to reimburse us for any and all losses that we may\n suffer because of your breach of (a) this section, (b) any third party's\n intellectual property rights, or (c) applicable law.\n </p>\n <h4 className=\"privacy-sub-title\">We may remove or edit your Content:</h4>\n <p className=\"privacy-text-desc\">\n Although we have no obligation to monitor any Contributions, we shall\n have the right to remove or edit any Contributions at any time without\n notice if in our reasonable opinion we consider such Contributions\n harmful or in breach of these Legal Terms. If we remove or edit any such\n Contributions, we may also suspend or disable your account and report\n you to the authorities.\n </p>\n <h4 className=\"privacy-sub-title\">Copyright infringement</h4>\n <p className=\"privacy-text-desc\">\n We respect the intellectual property rights of others. If you believe\n that any material available on or through the Services infringes upon\n any copyright you own or control, please immediately refer to the\n \"COPYRIGHT INFRINGEMENTS\" section below.\n </p>\n\n <h3 className=\"privacy-sub-title\">3. USER REPRESENTATIONS</h3>\n <p className=\"privacy-text-desc\">\n By using the Services, you represent and warrant that: (1) all\n registration information you submit will be true, accurate, current, and\n complete; (2) you will maintain the accuracy of such information and\n promptly update such registration information as necessary; (3) you have\n the legal capacity and you agree to comply with these Legal Terms; (4)\n you are not a minor in the jurisdiction in which you reside; (5) you\n will not access the Services through automated or non-human means,\n whether through a bot, script, or otherwise; (6) you will not use the\n Services for any illegal or unauthorized purpose; and (7) your use of\n the Services will not violate any applicable law or regulation.\n </p>\n <p className=\"privacy-text-desc\">\n If you provide any information that is untrue, inaccurate, not current,\n or incomplete, we have the right to suspend or terminate your account\n and refuse any current or future use of the Services (or any portion\n thereof).\n </p>\n\n <h3 className=\"privacy-sub-title\">4. USER REGISTRATION</h3>\n <p className=\"privacy-text-desc\">\n You may be required to register to use the Services. You agree to keep\n your password confidential and will be responsible for all use of your\n account and password. We reserve the right to remove, reclaim, or change\n a username you select if we determine, in our sole discretion, that such\n username is inappropriate, obscene, or otherwise objectionable.\n </p>\n\n <h3 className=\"privacy-sub-title\">5. PRODUCTS</h3>\n <p className=\"privacy-text-desc\">\n All products are subject to availability. We reserve the right to\n discontinue any products at any time for any reason. Prices for all\n products are subject to change.\n </p>\n\n <h3 className=\"privacy-sub-title\">6. PURCHASES AND PAYMENT</h3>\n <p className=\"privacy-text-desc\">\n We accept the following forms of payment:\n </p>\n <ul className=\"privacy-text-desc ulCustom\">\n <li>Discover</li>\n <li>American Express</li>\n <li>Mastercard</li>\n <li>Visa</li>\n <li>FSTR Utility Token</li>\n </ul>\n <p className=\"privacy-text-desc\">\n You agree to provide current, complete, and accurate purchase and\n account information for all purchases made via the Services. You further\n agree to promptly update account and payment information, including\n email address, payment method, and payment card expiration date, so that\n we can complete your transactions and contact you as needed. Sales tax\n will be added to the price of purchases as deemed required by us. We may\n change prices at any time. All payments shall be in US dollars.\n </p>\n <p className=\"privacy-text-desc\">\n You agree to pay all charges at the prices then in effect for your\n purchases and any applicable shipping fees, and you authorize us to\n charge your chosen payment provider for any such amounts upon placing\n your order. We reserve the right to correct any errors or mistakes in\n pricing even if we have already requested or received payment.\n </p>\n <p className=\"privacy-text-desc\">\n We reserve the right to refuse any order placed through the Services. We\n may, in our sole discretion, limit or cancel quantities purchased per\n person, per household, or per order. These restrictions may include\n orders placed by or under the same customer account, the same payment\n method, and/or orders that use the same billing or shipping address. We\n reserve the right to limit or prohibit orders that, in our sole\n judgment, appear to be placed by dealers, resellers, or distributors.\n </p>\n\n <h3 className=\"privacy-sub-title\">7. SUBSCRIPTIONS</h3>\n <h4 className=\"privacy-sub-title\">Billing and Renewal</h4>\n <p className=\"privacy-text-desc\">\n Your subscription will continue and automatically renew unless canceled.\n You consent to our charging your payment method on a recurring basis\n without requiring your prior approval for each recurring charge until\n you cancel the applicable order. The length of your billing cycle is\n monthly.\n </p>\n <h4 className=\"privacy-sub-title\">Free Trial</h4>\n <p className=\"privacy-text-desc\">\n We offer a 30-day free trial to new users who register with the\n Services. The account will be charged according to the user's chosen\n subscription at the end of the free trial.\n </p>\n <h4 className=\"privacy-sub-title\">Cancellation</h4>\n <p className=\"privacy-text-desc\">\n You can cancel your subscription at any time by logging into your\n account. Your cancellation will take effect at the end of the current\n paid term. If you have any questions or are unsatisfied with our\n Services, please email us at info@fourthstar.com.\n </p>\n <h4 className=\"privacy-sub-title\">Fee Changes</h4>\n <p className=\"privacy-text-desc\">\n We may, from time to time, make changes to the subscription fee and will\n communicate any price changes to you per applicable law.\n </p>\n\n <h3 className=\"privacy-sub-title\">8. REFUNDS POLICY</h3>\n <p className=\"privacy-text-desc\">\n Please review our Return Policy posted on the Services before making any\n purchases.\n </p>\n\n <h3 className=\"privacy-sub-title\">9. SOFTWARE</h3>\n <p className=\"privacy-text-desc\">\n We may include software for use in connection with our Services. If such\n software is accompanied by an end-user license agreement (\"EULA\"), the\n terms of the EULA will govern your use of the software. If such software\n is not accompanied by an EULA, then we grant you a non-exclusive,\n revocable, personal, and non-transferable license to use such software\n solely in connection with our services and per these Legal Terms. Any\n software and any related documentation is provided \"AS IS\" without\n warranty of any kind, either express or implied, including without\n limitation the implied warranties of merchantability, fitness for a\n particular purpose, or non-infringement. You accept any and all risks\n arising out of the use or performance of any software. You may not\n reproduce or redistribute any software except per the EULA or these\n Legal Terms.\n </p>\n\n <h3 className=\"privacy-sub-title\">10. PROHIBITED ACTIVITIES</h3>\n <p className=\"privacy-text-desc\">\n You may not access or use the Services for any purpose other than that\n for which we make the Services available. The Services may not be used\n in connection with any commercial endeavors except those that are\n specifically endorsed or approved by us.\n </p>\n <p className=\"privacy-text-desc\">\n As a user of the Services, you agree not to:\n </p>\n <ul className=\"privacy-text-desc list-decimal ulCustom\">\n <li>\n Systematically retrieve data or other content from the Services to\n create or compile, directly or indirectly, a collection, compilation,\n database, or directory without written permission from us.\n </li>\n <li>\n Trick, defraud, or mislead us and other users, especially in any\n attempt to learn sensitive account information, such as user\n passwords.\n </li>\n <li>\n Circumvent, disable, or otherwise interfere with security-related\n features of the Services, including features that prevent or restrict\n the use or copying of any Content or enforce limitations on the use of\n the Services and/or the Content contained therein.\n </li>\n <li>\n Disparage, tarnish, or otherwise harm, in our opinion, us and/or the\n Services.\n </li>\n <li>\n Use any information obtained from the Services to harass, abuse, or\n harm another person.\n </li>\n <li>\n Make improper use of our support services or submit false reports of\n abuse or misconduct.\n </li>\n <li>\n Use the Services in a manner inconsistent with any applicable laws or\n regulations.\n </li>\n <li>Engage in unauthorized framing of or linking to the Services.</li>\n <li>\n Upload or transmit (or attempt to upload or to transmit) viruses,\n Trojan horses, or other material, including excessive use of capital\n letters and spamming (continuous posting of repetitive text), that\n interferes with any party's uninterrupted use and enjoyment of the\n Services or modifies, impairs, disrupts, alters, or interferes with\n the use, features, functions, operation, or maintenance of the\n Services.\n </li>\n <li>\n Engage in any automated use of the system, such as using scripts to\n send comments or messages, or using any data mining, robots, or\n similar data gathering and extraction tools.\n </li>\n <li>\n Delete the copyright or other proprietary rights notice from any\n Content.\n </li>\n <li>\n Attempt to impersonate another user or person or use the username of\n another user.\n </li>\n <li>\n Upload or transmit (or attempt to upload or to transmit) any material\n that acts as a passive or active information collection or\n transmission mechanism, including without limitation, clear graphics\n interchange formats (\"gifs\"), 1×1 pixels, web bugs, cookies, or other\n similar devices (sometimes referred to as \"spyware\" or \"passive\n collection mechanisms\" or \"pcms\").\n </li>\n <li>\n Interfere with, disrupt, or create an undue burden on the Services or\n the networks or services connected to the Services.\n </li>\n <li>\n Harass, annoy, intimidate, or threaten any of our employees or agents\n engaged in providing any portion of the Services to you.\n </li>\n <li>\n Attempt to bypass any measures of the Services designed to prevent or\n restrict access to the Services or any portion of the Services.\n </li>\n <li>\n Copy or adapt the Services' software, including but not limited to\n Flash, PHP, HTML, JavaScript, or other code.\n </li>\n <li>\n Except as permitted by applicable law, decipher, decompile,\n disassemble, or reverse engineer any of the software comprising or in\n any way making up a part of the Services.\n </li>\n <li>\n Except as may be the result of standard search engine or Internet\n browser usage, use, launch, develop, or distribute any automated\n system, including without limitation, any spider, robot, cheat\n utility, scraper, or offline reader that accesses the Services, or use\n or launch any unauthorized script or other software.\n </li>\n <li>\n Use a buying agent or purchasing agent to make purchases on the\n Services.\n </li>\n <li>\n Make any unauthorized use of the Services, including collecting\n usernames and/or email addresses of users by electronic or other means\n for the purpose of sending unsolicited emails or creating user\n accounts by automated means or under false pretenses.\n </li>\n <li>\n Use the Services as part of any effort to compete with us or otherwise\n use the Services and/or the Content for any revenue-generating\n endeavor or commercial enterprise.\n </li>\n </ul>\n\n <h3 className=\"privacy-sub-title\">11. USER GENERATED CONTRIBUTIONS</h3>\n <p className=\"privacy-text-desc\">\n The Services may invite you to chat, contribute to, or participate in\n blogs, message boards, online forums, and other functionality and may\n provide you with the opportunity to create, submit, post, display,\n transmit, perform, publish, distribute, or broadcast content and\n materials to us or on the Services, including but not limited to text,\n writings, video, audio, photographs, graphics, comments, suggestions, or\n personal information or other material (collectively \"Contributions\").\n Contributions may be viewable by other users of the Services and through\n third-party websites. As such, any Contributions you transmit may be\n treated as non-confidential and non-proprietary. When you create or make\n available any Contributions, you thereby represent and warrant that:\n </p>\n <ul className=\"privacy-text-desc ulCustom\">\n <li>\n The creation, distribution, transmission, public display, or\n performance, and the accessing, downloading, or copying of your\n Contributions do not and will not infringe the proprietary rights,\n including but not limited to the copyright, patent, trademark, trade\n secret, or moral rights of any third party.\n </li>\n <li>\n You are the creator and owner of or have the necessary licenses,\n rights, consents, releases, and permissions to use and to authorize\n us, the Services, and other users of the Services to use your\n Contributions in any manner contemplated by the Services and these\n Legal Terms.\n </li>\n <li>\n You have the written consent, release, and/or permission of each and\n every identifiable individual person in your Contributions to use the\n name or likeness of each and every such identifiable individual person\n to enable inclusion and use of your Contributions in any manner\n contemplated by the Services and these Legal Terms.\n </li>\n <li>Your Contributions are not false, inaccurate, or misleading.</li>\n <li>\n Your Contributions are not unsolicited or unauthorized advertising,\n promotional materials, pyramid schemes, chain letters, spam, mass\n mailings, or other forms of solicitation.\n </li>\n <li>\n Your Contributions are not obscene, lewd, lascivious, filthy, violent,\n harassing, libelous, slanderous, or otherwise objectionable (as\n determined by us).\n </li>\n <li>\n Your Contributions do not ridicule, mock, disparage, intimidate, or\n abuse anyone.\n </li>\n <li>\n Your Contributions are not used to harass or threaten (in the legal\n sense of those terms) any other person or to promote violence against\n a specific person or class of people.\n </li>\n <li>\n Your Contributions do not violate any applicable law, regulation, or\n rule.\n </li>\n <li>\n Your Contributions do not violate the privacy or publicity rights of\n any third party.\n </li>\n <li>\n Your Contributions do not violate any applicable law concerning child\n pornography, or otherwise intended to protect the health or well-being\n of minors.\n </li>\n <li>\n Your Contributions do not include any offensive comments that are\n connected to race , national origin, gender, sexual preference, or\n physical handicap.\n </li>\n <li>\n Your Contributions do not otherwise violate or link to material that\n violates any provision of these Legal Terms or any applicable law or\n regulation.\n </li>\n </ul>\n <p className=\"privacy-text-desc\">\n Any use of the Services in violation of the foregoing violates these\n Legal Terms and may result in, among other things, termination or\n suspension of your rights to use the Services.\n </p>\n\n <h3 className=\"privacy-sub-title\">12. CONTRIBUTION LICENSE</h3>\n <p className=\"privacy-text-desc\">\n By posting your Contributions to any part of the Services or making\n Contributions accessible to the Services by linking your account from\n the Services to any of your social networking accounts, you\n automatically grant, and you represent and warrant that you have the\n right to grant, to us an unrestricted, unlimited, irrevocable,\n perpetual, non-exclusive, transferable, royalty-free, fully-paid,\n worldwide right and license to host, use, copy, reproduce, disclose,\n sell, resell, publish, broadcast, retitle, archive, store, cache,\n publicly perform, publicly display, reformat, translate, transmit,\n excerpt (in whole or in part), and distribute such Contributions\n (including, without limitation, your image and voice) for any purpose,\n commercial, advertising, or otherwise, and to prepare derivative works\n of, or incorporate into other works, such Contributions, and grant and\n authorize sublicenses of the foregoing. The use and distribution may\n occur in any media format and through any media channels.\n </p>\n <p className=\"privacy-text-desc\">\n This license will apply to any form, media, or technology now known or\n hereafter developed and includes our use of your name, company name, and\n franchise name, as applicable, and any of the trademarks, service marks,\n trade names, logos, and personal and commercial images you provide. You\n waive all moral rights in your Contributions, and you warrant that moral\n rights have not otherwise been asserted in your Contributions.\n </p>\n <p className=\"privacy-text-desc\">\n We do not assert any ownership over your Contributions. You retain full\n ownership of all of your Contributions and any intellectual property\n rights or other proprietary rights associated with your Contributions.\n We are not liable for any statements or representations in your\n Contributions provided by you in any area of the Services. You are\n solely responsible for your Contributions to the Services and you\n expressly agree to exonerate us from any and all responsibility and to\n refrain from any legal action against us regarding your Contributions.\n </p>\n <p className=\"privacy-text-desc\">\n We have the right, in our sole and absolute discretion, (1) to edit,\n redact, or otherwise change any Contributions; (2) to re-categorize any\n Contributions to place them in more appropriate locations on the\n Services; and (3) to pre-screen or delete any Contributions at any time\n and for any reason, without notice. We have no obligation to monitor\n your Contributions.\n </p>\n\n <h3 className=\"privacy-sub-title\">13. GUIDELINES FOR REVIEWS</h3>\n <p className=\"privacy-text-desc\">\n We may provide you with areas on the Services to leave reviews or\n ratings. When posting a review, you must comply with the following\n criteria: (1) you should have firsthand experience with the\n person/entity being reviewed; (2) your reviews should not contain\n offensive profanity or abusive, racist, offensive, or hateful language;\n (3) your reviews should not contain discriminatory references based on\n religion, race, gender, national origin, age, marital status, sexual\n orientation, or disability; (4) your reviews should not contain\n references to illegal activity; (5) you should not be affiliated with\n competitors if posting negative reviews; (6) you should not make any\n conclusions as to the legality of conduct; (7) you may not post any\n false or misleading statements; and (8) you may not organize a campaign\n encouraging others to post reviews, whether positive or negative.\n </p>\n <p className=\"privacy-text-desc\">\n We may accept, reject, or remove reviews at our sole discretion. We have\n absolutely no obligation to screen reviews or to delete reviews, even if\n anyone considers reviews objectionable or inaccurate. Reviews are not\n endorsed by us, and do not necessarily represent our opinions or the\n views of any of our affiliates or partners. We do not assume liability\n for any review or for any claims, liabilities, or losses resulting from\n any review. By posting a review, you hereby grant to us a perpetual,\n non-exclusive, worldwide, royalty-free, fully paid, assignable, and\n sublicensable right and license to reproduce, modify, translate,\n transmit by any means, display, perform, and/or distribute all content\n relating to the review.\n </p>\n\n <h3 className=\"privacy-sub-title\">14. MOBILE APPLICATION LICENSE</h3>\n <h4 className=\"privacy-sub-title\">Use License</h4>\n <p className=\"privacy-text-desc\">\n If you access the Services via the App, then we grant you a revocable,\n non-exclusive, non-transferable, limited right to install and use the\n App on wireless electronic devices owned or controlled by you, and to\n access and use the App on such devices strictly in accordance with the\n terms and conditions of this mobile application license contained in\n these Legal Terms. You shall not: (1) except as permitted by applicable\n law, decompile, reverse engineer, disassemble, attempt to derive the\n source code of, or decrypt the App; (2) make any modification,\n adaptation, improvement, enhancement, translation, or derivative work\n from the App; (3) violate any applicable laws, rules, or regulations in\n connection with your access or use of the App; (4) remove, alter, or\n obscure any proprietary notice (including any notice of copyright or\n trademark) posted by us or the licensors of the App; (5) use the App for\n any revenue-generating endeavor, commercial enterprise, or other purpose\n for which it is not designed or intended; (6) make the App available\n over a network or other environment permitting access or use by multiple\n devices or users at the same time; (7) use the App for creating a\n product, service, or software that is directly or indirectly competitive\n with or in any way a substitute for the App; (8) use the App to send\n automated queries to any website or to send any unsolicited commercial\n email; or (9) use any proprietary information or any of our interfaces\n or our other intellectual property in the design, development,\n manufacture, licensing, or distribution of any applications,\n accessories, or devices for use with the App.\n </p>\n <h4 className=\"privacy-sub-title\">Apple and Android Devices</h4>\n <p className=\"privacy-text-desc\">\n The following terms apply when you use the App obtained from either the\n Apple Store or Google Play (each an \"App Distributor\") to access the\n Services: (1) the license granted to you for our App is limited to a\n non-transferable license to use the application on a device that\n utilizes the Apple iOS or Android operating systems, as applicable, and\n in accordance with the usage rules set forth in the applicable App\n Distributor's terms of service; (2) we are responsible for providing any\n maintenance and support services with respect to the App as specified in\n the terms and conditions of this mobile application license contained in\n these Legal Terms or as otherwise required under applicable law, and you\n acknowledge that each App Distributor has no obligation whatsoever to\n furnish any maintenance and support services with respect to the App;\n (3) in the event of any failure of the App to conform to any applicable\n warranty, you may notify the applicable App Distributor, and the App\n Distributor, in accordance with its terms and policies, may refund the\n purchase price, if any, paid for the App, and to the maximum extent\n permitted by applicable law, the App Distributor will have no other\n warranty obligation whatsoever with respect to the App; (4) you\n represent and warrant that (i) you are not located in a country that is\n subject to a US government embargo, or that has been designated by the\n US government as a \"terrorist supporting\" country and (ii) you are not\n listed on any US government list of prohibited or restricted parties;\n (5) you must comply with applicable third-party terms of agreement when\n using the App, e.g., if you have a VoIP application, then you must not\n be in violation of their wireless data service agreement when using the\n App; and (6) you acknowledge and agree that the App Distributors are\n third-party beneficiaries of the terms and conditions in this mobile\n application license contained in these Legal Terms, and that each App\n Distributor will have the right (and will be deemed to have accepted the\n right) to enforce the terms and conditions in this mobile application\n license contained in these Legal Terms against you as a third-party\n beneficiary thereof.\n </p>\n\n <h3 className=\"privacy-sub-title\">15. SOCIAL MEDIA</h3>\n <p className=\"privacy-text-desc\">\n As part of the functionality of the Services, you may link your account\n with online accounts you have with third-party service providers (each\n such account, a \"Third-Party Account\") by either: (1) providing your\n Third-Party Account login information through the Services; or (2)\n allowing us to access your Third-Party Account, as is permitted under\n the applicable terms and conditions that govern your use of each\n Third-Party Account. You represent and warrant that you are entitled to\n disclose your Third-Party Account login information to us and/or grant\n us access to your Third-Party Account without breach by you of any of\n the terms and conditions that govern your use of the applicable\n Third-Party Account, and without obligating us to pay any fees or making\n us subject to any usage limitations imposed by the third-party service\n provider of the Third-Party Account. By granting us access to any\n Third-Party Accounts, you understand that (1) we may access, make\n available, and store (if applicable) any content that you have provided\n to and stored in your Third-Party Account (the \"Social Network Content\")\n so that it is available on and through the Services via your account,\n including without limitation any friend lists, and (2) we may submit to\n and receive from your Third-Party Account additional information to the\n extent you are notified when you link your account with the Third-Party\n Account. Depending on the Third-Party Accounts you choose, and subject\n to the privacy settings that you have set in such Third-Party Accounts,\n personally identifiable information that you post to your Third-Party\n Accounts may be available on and through your account on the Services.\n Please note that if a Third-Party Account or associated service becomes\n unavailable, or our access to such Third-Party Account is terminated by\n the third-party service provider, then Social Network Content may no\n longer be available on and through the Services. You will have the\n ability to disable the connection between your account on the Services\n and your Third-Party Accounts at any time. PLEASE NOTE THAT YOUR\n RELATIONSHIP WITH THE THIRD-PARTY SERVICE PROVIDERS ASSOCIATED WITH YOUR\n THIRD-PARTY ACCOUNTS IS GOVERNED SOLELY BY YOUR AGREEMENT(S) WITH SUCH\n THIRD-PARTY SERVICE PROVIDERS. We make no effort to review any Social\n Network Content for any purpose, including but not limited to, for\n accuracy, legality, or non-infringement, and we are not responsible for\n any Social Network Content. You acknowledge and agree that we may access\n your email address book associated with a Third-Party Account and your\n contacts list stored on your mobile device or tablet computer solely for\n purposes of identifying and informing you of those contacts who have\n also registered to use the Services. You can deactivate the connection\n between the Services and your Third-Party Account by contacting us using\n the contact information below or through your account settings (if\n applicable). We will attempt to delete any information stored on our\n servers that was obtained through such a Third-Party Account, except the\n username and profile picture that become associated with your account.\n </p>\n\n <h3 className=\"privacy-sub-title\">\n 16. THIRD-PARTY WEBSITES AND CONTENT\n </h3>\n <p className=\"privacy-text-desc\">\n The Services may contain (or you may be sent via the Site or App) links\n to other websites (\"Third-Party Websites\") as well as articles,\n photographs, text, graphics, pictures, designs, music, sound, video,\n information, applications, software, and other content or items\n belonging to or originating from third parties (\"Third-Party Content\").\n Such Third-Party Websites and Third-Party Content are not investigated,\n monitored, or checked for accuracy, appropriateness, or completeness by\n us, and we are not responsible for any Third-Party Websites accessed\n through the Services or any Third-Party Content posted on, available\n through, or installed from the Services, including the content,\n accuracy, offensiveness, opinions, reliability, privacy practices, or\n other policies of or contained in the Third-Party Websites or the\n Third-Party Content. Inclusion of, linking to, or permitting the use or\n installation of any Third-Party Websites or any Third-Party Content does\n not imply approval or endorsement thereof by us. If you decide to leave\n the Services and access the Third-Party Websites or to use or install\n any Third-Party Content, you do so at your own risk, and you should be\n aware these Legal Terms no longer govern. You should review the\n applicable terms and policies, including privacy and data gathering\n practices, of any website to which you navigate from the Services or\n relating to any applications you use or install from the Services. Any\n purchases you make through Third-Party Websites will be through other\n websites and from other companies, and we take no responsibility\n whatsoever in relation to such purchases which are exclusively between\n you and the applicable third party. You agree and acknowledge that we do\n not endorse the products or services offered on Third-Party Websites,\n and you shall hold us blameless from any harm caused by your purchase of\n such products or services. Additionally, you shall hold us blameless\n from any losses sustained by you or harm caused to you relating to or\n resulting in any way from any Third-Party Content or any contact with\n Third-Party Websites.\n </p>\n\n <h3 className=\"privacy-sub-title\">17. SERVICES MANAGEMENT</h3>\n <p className=\"privacy-text-desc\">\n We reserve the right, but not the obligation, to (1) monitor the\n Services for violations of these Legal Terms; (2) take appropriate legal\n action against anyone who, in our sole discretion, violates the law or\n these Legal Terms, including without limitation, reporting such user to\n law enforcement authorities; (3) in our sole discretion and without\n limitation, refuse, restrict access to, limit the availability of, or\n disable (to the extent technologically feasible) any of your\n Contributions or any portion thereof; (4) in our sole discretion and\n without limitation, notice, or liability, to remove from the Services or\n otherwise disable all files and content that are excessive in size or\n are in any way burdensome to our systems; and (5) otherwise manage the\n Services in a manner designed to protect our rights and property and to\n facilitate the proper functioning of the Services.\n </p>\n\n <h3 className=\"privacy-sub-title\">18. PRIVACY POLICY</h3>\n <p className=\"privacy-text-desc\">\n We care about data privacy and security. Please review our Privacy\n Policy:{\" \"}\n <NavLink\n to=\"https://www.fourthstar.com/privacy-policy\"\n target=\"_blank\"\n className=\"ml-2 text-[#FBBC5E]\"\n >\n https://www.fourthstar.com/privacy-policy\n </NavLink>\n . By using the Services, you agree to be bound by our Privacy Policy,\n which is incorporated into these Legal Terms. Please be advised the\n Services are hosted in the United States. If you access the Services\n from any other region of the world with laws or other requirements\n governing personal data collection, use, or disclosure that differ from\n applicable laws in the United States, then through your continued use of\n the Services, you are transferring your data to the United States, and\n you expressly consent to have your data transferred to and processed in\n the United States.\n </p>\n\n <h3 className=\"privacy-sub-title\">19. COPYRIGHT INFRINGEMENTS</h3>\n <p className=\"privacy-text-desc\">\n We respect the intellectual property rights of others. If you believe\n that any material available on or through the Services infringes upon\n any copyright you own or control, please immediately notify us using the\n contact information provided below (a \"Notification\"). A copy of your\n Notification will be sent to the person who posted or stored the\n material addressed in the Notification. Please be advised that pursuant\n to applicable law, you may be held liable for damages if you make\n material misrepresentations in a Notification. Thus, if you are not sure\n that material located on or linked to by the Services infringes your\n copyright, you should consider first contacting an attorney.\n </p>\n\n <h3 className=\"privacy-sub-title\">20. TERM AND TERMINATION</h3>\n <p className=\"privacy-text-desc\">\n These Legal Terms shall remain in full force and effect while you use\n the Services. WITHOUT LIMITING ANY OTHER PROVISION OF THESE LEGAL TERMS,\n WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR\n LIABILITY, DENY ACCESS TO AND USE OF THE SERVICES (INCLUDING BLOCKING\n CERTAIN IP ADDRESSES) TO ANY PERSON FOR ANY REASON OR FOR NO REASON,\n INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY,\n OR COVENANT CONTAINED IN THESE LEGAL TERMS OR OF ANY APPLICABLE LAW OR\n REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SERVICES\n OR DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT\n ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.\n </p>\n <p className=\"privacy-text-desc\">\n If we terminate or suspend your account for any reason, you are\n prohibited from registering and creating a new account under your name,\n a fake or borrowed name, or the name of any third party, even if you may\n be acting on behalf of the third party. In addition to terminating or\n suspending your account, we reserve the right to take appropriate legal\n action, including without limitation pursuing civil, criminal, and\n injunctive redress.\n </p>\n\n <h3 className=\"privacy-sub-title\">21. MODIFICATIONS AND INTERRUPTIONS</h3>\n <p className=\"privacy-text-desc\">\n We reserve the right to change, modify, or remove the contents of the\n Services at any time or for any reason at our sole discretion without\n notice. However, we have no obligation to update any information on our\n Services. We also reserve the right to modify or discontinue all or part\n of the Services without notice at any time. We will not be liable to you\n or any third party for any modification, price change, suspension, or\n discontinuance of the Services.\n </p>\n <p className=\"privacy-text-desc\">\n We cannot guarantee the Services will be available at all times. We may\n experience hardware, software, or other problems or need to perform\n maintenance related to the Services, resulting in interruptions, delays,\n or errors. We reserve the right to change, revise, update, suspend,\n discontinue, or otherwise modify the Services at any time or for any\n reason without notice to you. You agree that we have no liability\n whatsoever for any loss, damage, or inconvenience caused by your\n inability to access or use the Services during any downtime or\n discontinuance of the Services. Nothing in these Legal Terms will be\n construed to obligate us to maintain and support the Services or to\n supply any corrections, updates, or releases in connection therewith.\n </p>\n\n <h3 className=\"privacy-sub-title\">22. GOVERNING LAW</h3>\n <p className=\"privacy-text-desc\">\n These Legal Terms and your use of the Services are governed by and\n construed in accordance with the laws of the State of Delaware,\n applicable to agreements made and to be entirely performed within the\n State of Delaware, without regard to its conflict of law principles.\n </p>\n\n <h3 className=\"privacy-sub-title\">23. DISPUTE RESOLUTION</h3>\n <h4 className=\"privacy-sub-title\">Informal Negotiations</h4>\n <p className=\"privacy-text-desc\">\n To expedite resolution and control the cost of any dispute, controversy,\n or claim related to these Legal Terms (each a \"Dispute\" and\n collectively, the \"Disputes\") brought by either you or us (individually,\n a \"Party\" and collectively, the \"Parties\"), the Parties agree to first\n attempt to negotiate any Dispute (except those Disputes expressly\n provided below) informally for at least thirty (30) days before\n initiating arbitration. Such informal negotiations commence upon written\n notice from one Party to the other Party.\n </p>\n <h4 className=\"privacy-sub-title\">Binding Arbitration</h4>\n <p className=\"privacy-text-desc\">\n If the Parties are unable to resolve a Dispute through informal\n negotiations, the Dispute (except those Disputes expressly excluded\n below) will be finally and exclusively resolved by binding arbitration.\n YOU UNDERSTAND THAT WITHOUT THIS PROVISION, YOU WOULD HAVE THE RIGHT TO\n SUE IN COURT AND HAVE A JURY TRIAL. The arbitration shall be commenced\n and conducted under the Commercial Arbitration Rules of the American\n Arbitration Association (\"AAA\") and, where appropriate, the AAA's\n Supplementary Procedures for Consumer Related Disputes (\"AAA Consumer\n Rules\"), both of which are available at the American Arbitration\n Association (AAA) website. Your arbitration fees and your share of\n arbitrator compensation shall be governed by the AAA Consumer Rules and,\n where appropriate, limited by the AAA Consumer Rules. The arbitration\n may be conducted in person, through the submission of documents, by\n phone, or online. The arbitrator will make a decision in writing, but\n need not provide a statement of reasons unless requested by either\n Party. The arbitrator must follow applicable law, and any award may be\n challenged if the arbitrator fails to do so. Except where otherwise\n required by the applicable AAA rules or applicable law, the arbitration\n will take place in the US, Delaware. Except as otherwise provided\n herein, the Parties may litigate in court to compel arbitration, stay\n proceedings pending arbitration, or confirm, modify, vacate, or enter\n judgment on the award entered by the arbitrator.\n </p>\n <p className=\"privacy-text-desc\">\n If for any reason a Dispute proceeds in court rather than arbitration,\n the Dispute shall be commenced or prosecuted in the state and federal\n courts located in the United States, Delaware, and the Parties hereby\n consent to and waive all defenses of lack of personal jurisdiction and\n forum non conveniens with respect to venue and jurisdiction in such\n state and federal courts. Application of the United Nations Convention\n on Contracts for the International Sale of Goods and the Uniform\n Computer Information Transaction Act (UCITA) are excluded from these\n Legal Terms.\n </p>\n <p className=\"privacy-text-desc\">\n In no event shall any Dispute brought by either Party related in any way\n to the Services be commenced more than one (1) year after the cause of\n action arose. If this provision is found to be illegal or unenforceable,\n then neither Party will elect to arbitrate any Dispute falling within\n that portion of this provision found to be illegal or unenforceable, and\n such Dispute shall be decided by a court of competent jurisdiction\n within the courts listed for jurisdiction above, and the Parties agree\n to submit to the personal jurisdiction of that court.\n </p>\n <h4 className=\"privacy-sub-title\">Restrictions</h4>\n <p className=\"privacy-text-desc\">\n The Parties agree that any arbitration shall be limited to the Dispute\n between the Parties individually. To the full extent permitted by law,\n (a) no arbitration shall be joined with any other proceeding; (b) there\n is no right or authority for any Dispute to be arbitrated on a\n class-action basis or to utilize class-action procedures; and (c) there\n is no right or authority for any Dispute to be brought in a purported\n representative capacity on behalf of the general public or any other\n persons.\n </p>\n <h4 className=\"privacy-sub-title\">\n Exceptions to Informal Negotiations and Arbitration\n </h4>\n <p className=\"privacy-text-desc\">\n The Parties agree that the following Disputes are not subject to the\n above provisions concerning informal negotiations and binding\n arbitration: (a) any Disputes seeking to enforce or protect, or\n concerning the validity of, any of the intellectual property rights of a\n Party; (b) any Dispute related to, or arising from, allegations of\n theft, piracy, invasion of privacy, or unauthorized use; and (c) any\n claim for injunctive relief. If this provision is found to be illegal or\n unenforceable, then neither Party will elect to arbitrate any Dispute\n falling within that portion of this provision found to be illegal or\n unenforceable, and such Dispute shall be decided by a court of competent\n jurisdiction within the courts listed for jurisdiction above, and the\n Parties agree to submit to the personal jurisdiction of that court.\n </p>\n\n <h3 className=\"privacy-sub-title\">24. CORRECTIONS</h3>\n <p className=\"privacy-text-desc\">\n There may be information on the Services that contains typographical\n errors, inaccuracies, or omissions, including descriptions, pricing,\n availability, and various other information. We reserve the right to\n correct any errors, inaccuracies, or omissions and to change or update\n the information on the Services at any time, without prior notice.\n </p>\n\n <h3 className=\"privacy-sub-title\">25. DISCLAIMER</h3>\n <p className=\"privacy-text-desc\">\n THE SERVICES ARE PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE\n THAT YOUR USE OF THE SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST\n EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,\n IN CONNECTION WITH THE SERVICES AND YOUR USE THEREOF, INCLUDING, WITHOUT\n LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR\n REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SERVICES'\n CONTENT OR THE CONTENT OF ANY WEBSITES OR MOBILE APPLICATIONS LINKED TO\n THE SERVICES, AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY\n (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2)\n PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING\n FROM YOUR ACCESS TO AND USE OF THE SERVICES, (3) ANY UNAUTHORIZED ACCESS\n TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION\n AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR\n CESSATION OF TRANSMISSION TO OR FROM THE SERVICES, (5) ANY BUGS,\n VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR\n THROUGH THE SERVICES BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR\n OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY\n KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED,\n OR OTHERWISE MADE AVAILABLE VIA THE SERVICES. WE DO NOT WARRANT,\n ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE\n ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SERVICES, ANY\n HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN\n ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY\n WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY\n THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A\n PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD\n USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.\n </p>\n\n <h3 className=\"privacy-sub-title\">26. LIMITATIONS OF LIABILITY</h3>\n <p className=\"privacy-text-desc\">\n IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO\n YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL,\n EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST\n PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR\n USE OF THE SERVICES, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF\n SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN,\n OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM\n OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE AMOUNT PAID, IF ANY,\n BY YOU TO US DURING THE SIX (6) MONTH PERIOD PRIOR TO ANY CAUSE OF\n ACTION ARISING. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT\n ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION\n OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE\n DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE\n ADDITIONAL RIGHTS.\n </p>\n\n <h3 className=\"privacy-sub-title\">27. INDEMNIFICATION</h3>\n <p className=\"privacy-text-desc\">\n You agree to defend, indemnify, and hold us harmless, including our\n subsidiaries, affiliates, and all of our respective officers, agents,\n partners, and employees, from and against any loss, damage, liability,\n claim, or demand, including reasonable attorneys' fees and expenses,\n made by any third party due to or arising out of: (1) your\n Contributions; (2) use of the Services; (3) breach of these Legal Terms;\n (4) any breach of your representations and warranties set forth in these\n Legal Terms; (5) your violation of the rights of a third party,\n including but not limited to intellectual property rights; or (6) any\n overt harmful act toward any other user of the Services with whom you\n connected via the Services. Notwithstanding the foregoing, we reserve\n the right, at your expense, to assume the exclusive defense and control\n of any matter for which you are required to indemnify us, and you agree\n to cooperate, at your expense, with our defense of such claims. We will\n use reasonable efforts to notify you of any such claim, action, or\n proceeding which is subject to this indemnification upon becoming aware\n of it.\n </p>\n\n <h3 className=\"privacy-sub-title\">28. USER DATA</h3>\n <p className=\"privacy-text-desc\">\n We will maintain certain data that you transmit to the Services for the\n purpose of managing the performance of the Services, as well as data\n relating to your use of the Services. Although we perform regular\n routine backups of data, you are solely responsible for all data that\n you transmit or that relates to any activity you have undertaken using\n the Services. You agree that we shall have no liability to you for any\n loss or corruption of any such data, and you hereby waive any right of\n action against us arising from any such loss or corruption of such data.\n </p>\n\n <h3 className=\"privacy-sub-title\">\n 29. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES\n </h3>\n <p className=\"privacy-text-desc\">\n Visiting the Services, sending us emails, and completing online forms\n constitute electronic communications. You consent to receive electronic\n communications, and you agree that all agreements, notices, disclosures,\n and other communications we provide to you electronically, via email and\n on the Services, satisfy any legal requirement that such communication\n be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES,\n CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF\n NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY\n US OR VIA THE SERVICES. You hereby waive any rights or requirements\n under any statutes, regulations, rules, ordinances, or other laws in any\n jurisdiction which require an original signature or delivery or\n retention of non-electronic records, or to payments or the granting of\n credits by any means other than electronic means.\n </p>\n\n <h3 className=\"privacy-sub-title\">30. CALIFORNIA USERS AND RESIDENTS</h3>\n <p className=\"privacy-text-desc\">\n If any complaint with us is not satisfactorily resolved, you can contact\n the Complaint Assistance Unit of the Division of Consumer Services of\n the California Department of Consumer Affairs in writing at 1625 North\n Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone\n at (800) 952-5210 or (916) 445-1254.\n </p>\n\n <h3 className=\"privacy-sub-title\">31. MISCELLANEOUS</h3>\n <p className=\"privacy-text-desc\">\n These Legal Terms and any policies or operating rules posted by us on\n the Services or with respect to the Services constitute the entire\n agreement and understanding between you and us. Our failure to exercise\n or enforce any right or provision of these Legal Terms shall not operate\n as a waiver of such right or provision. These Legal Terms operate to the\n fullest extent permissible by law. We may assign any or all of our\n rights and obligations to others at any time. We shall not be\n responsible or liable for any loss, damage, delay, or failure to act\n caused by any cause beyond our reasonable control. If any provision or\n part of a provision of these Legal Terms is determined to be unlawful,\n void, or unenforceable, that provision or part of the provision is\n deemed severable from these Legal Terms and does not affect the validity\n and enforceability of any remaining provisions. There is no joint\n venture, partnership, employment, or agency relationship created between\n you and us as a result of these Legal Terms or use of the Services. You\n agree that these Legal Terms will not be construed against us by virtue\n of having drafted them. You hereby waive any and all defenses you may\n have based on the electronic form of these Legal Terms and the lack of\n signing by the parties hereto to execute these Legal Terms.\n </p>\n\n <h3 className=\"privacy-sub-title\">32. CONTACT US</h3>\n <p className=\"privacy-text-desc\">\n In order to resolve a complaint regarding the Services or to receive\n further information regarding the use of the Services, please contact us\n at:\n </p>\n <p className=\"privacy-text-desc\">\n Fourth Star Inc\n <br />\n Earth Headquarters\n <br />\n San Francisco, CA 94103\n <br />\n United States\n <br />\n Phone: 4154199590\n <br />\n info@fourthstar.com\n </p>\n </div>\n </div>\n);\n\nexport default TermsAndConditions;\n","import React, { useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport Loader from \"components/Loader/Loader\";\n\nconst SideQuest = () => {\n const [instruction, setInstruction] = useState(true);\n const [imageLoaded, setImageLoaded] = useState(false);\n\n const onImageLoad = () => {\n setImageLoaded(true);\n };\n\n return (\n <div class=\"my-10 lg:px-[30px] xl:px-[80px] 2xl:px-[220px] flex flex-col gap-y-[20px] justify-center\">\n <ShadowFrame className=\"absolute top-1/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n {!imageLoaded && (\n <div className=\"relative h-[calc(100vh-50px)] md:h-[450px] lg:h-[550px] xl:h-[700px] 2xl:h-[calc(100vh-50px)] grid place-content-center\">\n <ShadowFrame className=\"absolute top-1/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <ShadowFrame className=\"absolute top-2/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <Loader />\n </div>\n )}\n\n {/* <div className=\" relative\">\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/meta_card.png`}\n // src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/comingSoonMeta.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:h-full lg:w-auto\"\n />\n <div className=\"sidequest-button-box sidequest-one absolute w-[50%] md:w-[50%] lg:w-[45%] flex justify-center bottom-[20px] sm:bottom-[30px] md:bottom-[50px] lg:bottom-[70px] xl:bottom-[70px] 2xl:bottom-[90px]\">\n <NavLink\n to=\"https://www.meta.com/experiences/fourth-star/9675427669158125/\"\n target=\"_blank\"\n className=\"sidequest-button sm:w-[160px] lg:w-[240px] flex justify-center font-bold text-[12px] lg:text-[16px] py-0.5 px-3 lg:py-2.5 lg:px-7 rounded-[8px] bg-[#FBBC5E] text-[#1D1D1D]\"\n >\n Download Now\n </NavLink>\n </div>\n </div> */}\n\n <div className=\"relative\">\n <picture className=\"\" onLoad={onImageLoad}>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/sidequest.png`}\n alt=\"network error\"\n className=\"w-full h-auto object-cover\"\n />\n </picture>\n\n <div className=\" sidequest-button-box sidequest-two absolute w-[50%] md:w-[50%] lg:w-[45%] flex flex-col items-center bottom-[0px] max-sm:bottom-[25px] sm:bottom-[30px] md:bottom-[50px] lg:bottom-[60px] xl:bottom-[70px] 2xl:bottom-[90px]\">\n <NavLink\n to=\"https://sidequestvr.com/app/31890/\"\n target=\"_blank\"\n className=\"sidequest-button sm:w-[160px] lg:w-[240px] flex justify-center items-center font-bold text-[12px] lg:text-[16px] py-0.5 px-3 lg:py-2.5 lg:px-7 rounded-[8px] bg-[#FBBC5E] text-[#1D1D1D]\"\n >\n Download Now\n </NavLink>\n\n <p className=\"sidequest-para block ml-2 sm:mt-2 text-[10px] sm:text-[12px] md:text-[14px]\">\n Don’t have SideQuest account?\n <span\n href=\"https://sidequestvr.com/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"my-5 text-[#FBBC5E] mx-1 cursor-pointer\"\n onClick={() => setInstruction(!instruction)}\n >\n {instruction ? \"Hide\" : \"See\"} Instructions\n </span>\n </p>\n </div>\n </div>\n {instruction && (\n <div className=\"bg-[#1D1F25] px-[20px] lg:px-[100px] \">\n <p className=\"py-5\">\n Join the Fourth Star Open Beta on SideQuest! Be among the first to\n experience our immersive VR game before its official launch on the\n Meta Store. SideQuest is a platform that allows us to reach a wider\n audience and gather valuable feedback from users like you. Your\n feedback is crucial in making Fourth Star the best it can be. Join\n us on SideQuest today and be a part of this exciting journey!\n </p>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 1 - Log in to Meta Quest.\n </h1>\n <p className=\"my-4 text-white/60 \">\n Go to{\" \"}\n <NavLink\n to=\"https://developer.oculus.com/\"\n target=\"_blank\"\n className=\"text-[#FBBC5E] underline \"\n >\n dashboard.oculus.com\n </NavLink>{\" \"}\n and make an account there. If you already have an account\n proceed with signing in and if not, proceed with signing up.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep1.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 2 - Once logged in proceed with creating an Organization.\n </h1>\n\n <p className=\"my-5 text-white/60 \">\n You can write any organization name for now as it won’t impact\n our step. This step is important as this will let us accept the{\" \"}\n <span className=\"text-white font-semibold\">\n developer’s mode license\n </span>\n .\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep2.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n\n <ShadowFrame className=\"absolute top-3/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 3 - Check “I understand” and click on “Submit”.\n </h1>\n <p className=\"mt-4 mb-5 text-white/60 \">\n You will also be asked to{\" \"}\n <span className=\"text-white font-semibold\">\n “Developer Non-Disclosure Agreement”{\" \"}\n </span>\n after this step so please accept that too.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep3.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 4 - Then add Two-Factor Authentication to verify your\n account.\n </h1>\n <p className=\"my-4 text-white/60 \">\n This step is important for Oculus to verify your developer’s\n account.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep4.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n \n <ShadowFrame className=\"absolute top-3/3 right-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 5 - Next we need to log in to your Headset with your Oculus\n account.\n </h1>\n <p className=\"mt-4 mb-5 text-white/60 \">\n Turn on your headset and log in with your Oculus account which\n you have just created in your headset.\n </p>\n </div>\n </div>\n\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 6 - Next go to your mobile and download the meta app.\n </h1>\n <p className=\"mt-4 text-white/60 \">\n If on Android go to -{\" \"}\n <NavLink\n target=\"_blank\"\n to={\n \"https://play.google.com/store/apps/details?id=com.oculus.twilight\"\n }\n className=\"text-[#FBBC5E] underline\"\n >\n https://play.google.com/store/apps/details?id=com.oculus.twilight\n </NavLink>\n </p>\n <p className=\"mb-4 text-white/60 \">\n If on iOS go to -{\" \"}\n <NavLink\n target=\"_blank\"\n to={\"https://apps.apple.com/in/app/meta-quest/id1366478176\"}\n className=\"text-[#FBBC5E] underline\"\n >\n https://apps.apple.com/in/app/meta-quest/id1366478176\n </NavLink>\n </p>\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 7 - Once Downloaded, log in with your Oculus account on\n your mobile.\n </h1>\n </div>\n </div>\n <ShadowFrame className=\"absolute top-4/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 8 - Then proceed with connecting your headset with the app.\n </h1>\n <p className=\"mt-4 mb-0 text-white/60 \">\n Since both are logged in with your same Oculus Account, you can\n pair your app with your Headset. Follow these steps for the\n same:\n </p>\n <ol className=\"ml-[20px] list-decimal text-white/60 \">\n <li>\n Click on <span className=\"text-[#FBBC5E] \">‘Menu’</span>.\n </li>\n <li>\n The click on{\" \"}\n <span className=\"text-[#FBBC5E] \">‘Devices’</span>.\n </li>\n <li>\n Then click on{\" \"}\n <span className=\"text-[#FBBC5E] \">‘Connect new device’</span>.\n </li>\n </ol>\n <p className=\"my-5 text-white/60 \">\n Follow all the in-app instructions and instructions on your\n headset to connect both of them.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep8.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 9 - Once both are connected, we are ready to enable\n developer mode.\n </h1>\n <ol className=\"mt-4 ml-[20px] list-decimal text-white/60 \">\n <li>\n Click on <span className=\"text-[#FBBC5E] \">‘Menu’</span>.\n </li>\n <li>\n The click on{\" \"}\n <span className=\"text-[#FBBC5E] \">‘Devices’</span>.\n </li>\n <li>\n Click on the{\" \"}\n <span className=\"text-[#FBBC5E] \">Quest device</span> that you\n have just connected. \n </li>\n <li>\n Click on{\" \"}\n <span className=\"text-[#FBBC5E] \">‘Headset Setting’</span>.\n </li>\n <li>\n Then on{\" \"}\n <span className=\"text-[#FBBC5E] \">‘Developer Mode’</span>.\n </li>\n <li>\n Enable <span className=\"text-[#FBBC5E] \">‘Debug Mode’</span> .\n </li>\n </ol>\n <p className=\"mb-5 text-white/60 \">\n Congrats, the developer mode is enabled. Now we can move to Side\n Quest Setup.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep9.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <ShadowFrame className=\"absolute top-4/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 10 - SIGN IN/SIGN UP in SideQuest.\n </h1>\n <p className=\"my-4 text-white/60 \">\n Visit{\" \"}\n <NavLink\n target=\"_blank\"\n to={\"https://sidequestvr.com\"}\n className=\"text-[#FBBC5E] underline\"\n >\n https://sidequestvr.com\n </NavLink>{\" \"}\n to log in or sign up if you don’t have an account. After Signing\n in click on 'GET SIDEQUEST' to proceed.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep10.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 11 - Now download the ‘Advanced Installer’.\n </h1>\n <p className=\"my-4 text-white/60 \">\n Depending on your OS download the specific installer. After\n downloading, proceed with installing it.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep11.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 12 - Open the Side Quest application after installing it\n and log in with your Side Quest account.\n </h1>\n <p className=\"mt-4 text-white/60 \">\n Since your headset is not connected to your computer it should\n look like this currently.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep12.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 13 - Now connect your Headset with your system using a USB\n cable.\n </h1>\n <p className=\"my-4 text-white/60 \">\n Make sure you enable all the pop-ups that show up in your\n headset after connecting.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep13.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 14 - Check if your headset is detectable by the SideQuest\n Application.\n </h1>\n <p className=\"mt-4 text-white/60 \">\n If this is correct, your headset will be detected by the\n SideQuest.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep14.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 15 - Now type “Fourth Star” in the search results.\n </h1>\n <p className=\"mt-4 text-white/60 \">\n Make sure to type “Fourth star” exactly.\n </p>\n <p className=\" text-white/60 \">OR</p>\n <p className=\" text-white/60 \">\n Alternatively, you can click on “web browser” then click on “GO\n TO URL” and then paste this Url there -\n </p>\n <p className=\" text-[#FBBC5E] \">\n <a\n href=\"https://sidequestvr.com/app/31890\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"underline my-5 text-[#FBBC5E] mx-1\"\n >\n https://sidequestvr.com/app/31890\n </a>\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/sidequest-step7.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 16 - Now click on “SIDELOAD” to start the download.\n </h1>\n <p className=\"my-4 text-white/60 \">\n If you are coming from the browser, then after clicking on side\n load it will show a pop-up at the bottom right side saying\n “Sending to Side Quest” and then you will have to open the\n application for the download to start.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep16.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n <p className=\"my-4 text-white/60 \">\n Downloading/ Installing should look like this.\n </p>\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep12b.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading \">\n Step 17 - Then once it is done, check the ‘Unknown Sources’ in\n your Headset.\n </h1>\n <p className=\"my-4 text-white/60 \">\n Once it is installed, navigate to ‘Unknown Sources’ in your\n headset to find the game, and click it to launch the game.\n </p>\n\n <img\n src={`${process.env.REACT_APP_PUBLIC_S3_BUCKET_STATIC_CONTENT}/user-assets/metaQuestStep17.png`}\n alt=\"network error\"\n className=\"w-full h-auto lg:w-auto\"\n />\n </div>\n </div>\n <div className=\"flex gap-x-4 mt-10\">\n <div className=\"flex gap-2\">\n <input\n type=\"checkbox\"\n id=\"some_id\"\n className=\"relative peer shrink-0 appearance-none w-6 h-6 border border-white/50 rounded-sm bg-transparent mt-1 checked:bg-[#25B39E] checked:border-0\"\n />\n <svg\n className=\"absolute w-6 h-6 mt-1 hidden peer-checked:block pointer-events-none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"20 6 9 17 4 12\"></polyline>\n </svg>\n </div>\n <div>\n <h1 className=\"text-2xl font-heading pb-10 \">\n Step 18 - Congratulations, the game has been successfully\n installed on your headset. Enjoy!\n </h1>\n </div>\n </div>\n <ShadowFrame className=\"absolute top-4/3 left-0 md:w-[500px] h-[250px] !bg-[#FFE9C9] md:!bg-[#FFE9C9]/[0.80]\" />\n </div>\n )}\n <div className=\"sidequest-hfix min-h-[51vh] md:min-h-[43vh] lg:min-h-[20vh]\"></div>\n </div>\n );\n};\n\nexport default SideQuest;\n","import { useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\n\nconst HelpCenter = () => {\n const [isHovered, setIsHovered] = useState(false);\n const updates = [\n {\n title: \"Ship Multiplayer - Bug Fix\",\n description:\n \"We are enhancing how you and your friends experience ship flights. You'll be able to invite friends aboard your ship, explore entertainment and embark on thrilling ship flights together.\",\n svgPath:\n \"M21.4023 31.7422H25.5625V20.3398C25.0156 20.4648 24.4883 20.6289 23.9805 20.832C23.4805 21.0352 23.0234 21.2812 22.6094 21.5703L20.7812 18.957C21.4531 18.5352 22.1367 18.1797 22.832 17.8906C23.5352 17.5938 24.2422 17.3594 24.9531 17.1875C25.6719 17.0078 26.3906 16.8789 27.1094 16.8008C27.8359 16.7227 28.5586 16.6836 29.2773 16.6836L29.2656 16.707H29.2773V31.7422H33.25V35H21.4023V31.7422Z\",\n },\n {\n title: \"Ships and Apartment Rental System\",\n description:\n \"We are working on a Ship and Apartment Rental System that will let you earn rental income through the Creator and Partner Reward System, fostering collaboration and new opportunities.\",\n svgPath:\n \"M19.0586 31.8125L25.5156 27.3828C26.4844 26.7188 27.2773 26.1406 27.8945 25.6484C28.5117 25.1562 28.9961 24.7188 29.3477 24.3359C29.6992 23.9453 29.9414 23.5938 30.0742 23.2812C30.207 22.9688 30.2734 22.6562 30.2734 22.3438C30.2734 21.9844 30.1992 21.6484 30.0508 21.3359C29.9023 21.0234 29.668 20.75 29.3477 20.5156C29.0352 20.2812 28.6289 20.0977 28.1289 19.9648C27.6367 19.832 27.0469 19.7656 26.3594 19.7656C25.3594 19.7656 24.3633 19.9062 23.3711 20.1875C22.3789 20.4688 21.3672 20.918 20.3359 21.5352L18.625 18.7227C19.7734 18.0117 21.0156 17.457 22.3516 17.0586C23.6953 16.6602 25.1055 16.4609 26.582 16.4609C27.8711 16.4609 28.9883 16.6172 29.9336 16.9297C30.8867 17.2344 31.6719 17.6523 32.2891 18.1836C32.9141 18.7148 33.3789 19.332 33.6836 20.0352C33.9883 20.7383 34.1406 21.4844 34.1406 22.2734C34.1406 22.8828 34.0391 23.4648 33.8359 24.0195C33.6328 24.5742 33.2773 25.1484 32.7695 25.7422C32.2617 26.3359 31.5742 26.9766 30.707 27.6641C29.8477 28.3438 28.7617 29.1172 27.4492 29.9844L24.7773 31.7422H34.8086V35H19.0586V31.8125Z\",\n },\n {\n title: \"Meta Quest Deployment\",\n description:\n \"We will be launching our full app on the Meta Horizon Store.\",\n svgPath:\n \"M19.7266 30.6406C20.6484 31.0938 21.6328 31.4258 22.6797 31.6367C23.7344 31.8398 24.7617 31.9414 25.7617 31.9414C26.6523 31.9414 27.4219 31.8711 28.0703 31.7305C28.7188 31.582 29.2539 31.3828 29.6758 31.1328C30.0977 30.8828 30.4102 30.5859 30.6133 30.2422C30.8164 29.8984 30.918 29.5273 30.918 29.1289C30.918 28.5898 30.7344 28.1094 30.3672 27.6875C30 27.2578 29.4414 26.9375 28.6914 26.7266C27.9492 26.5078 27.0078 26.4219 25.8672 26.4688C24.7344 26.5156 23.3984 26.7383 21.8594 27.1367L21.8711 24.3945L28.7148 19.9414H19.0234V16.6836H33.6836V19.8711L27.6602 23.6914C28.7617 23.6914 29.7461 23.832 30.6133 24.1133C31.4805 24.3945 32.2109 24.7812 32.8047 25.2734C33.3984 25.7656 33.8516 26.3477 34.1641 27.0195C34.4766 27.6914 34.6328 28.4141 34.6328 29.1875C34.6328 30.1016 34.4297 30.9336 34.0234 31.6836C33.625 32.4258 33.043 33.0625 32.2773 33.5938C31.5117 34.1172 30.5742 34.5234 29.4648 34.8125C28.3633 35.1016 27.1133 35.2461 25.7148 35.2461C24.2305 35.2461 22.8594 35.0898 21.6016 34.7773C20.3438 34.457 19.1484 34.0156 18.0156 33.4531L19.7266 30.6406Z\",\n },\n {\n title: \"Content Creators Onboarding\",\n description:\n \"We are collaborating with content creators to bring you exciting new immersive content.\",\n svgPath:\n \"M17.2578 27.8281L27.9688 16.6836H31.6836V27.8281H35.6328V31.0859H31.6836V35H27.9688V31.0859H17.2344L17.2578 27.8281ZM27.9688 27.8281V21.3828L21.7109 27.8281H27.9688Z\",\n },\n {\n title: \"Central AI Character\",\n description:\n \"We're crafting a Central AI Character that seamlessly connects our virtual reality game with the real world, embodying intelligence, personality and dynamic interaction to revolutionize how players engage with immersive experiences.\",\n svgPath:\n \"M19.5859 30.6406C20.0312 30.8672 20.5117 31.0625 21.0273 31.2266C21.5508 31.3828 22.0859 31.5156 22.6328 31.625C23.1875 31.7344 23.7422 31.8164 24.2969 31.8711C24.8594 31.918 25.4062 31.9414 25.9375 31.9414C26.875 31.9414 27.6836 31.875 28.3633 31.7422C29.0508 31.6016 29.6133 31.4062 30.0508 31.1562C30.4961 30.9062 30.8242 30.6094 31.0352 30.2656C31.2539 29.9141 31.3633 29.5273 31.3633 29.1055C31.3633 28.6758 31.25 28.2812 31.0234 27.9219C30.8047 27.5625 30.4727 27.2539 30.0273 26.9961C29.5898 26.7383 29.0352 26.5391 28.3633 26.3984C27.6992 26.25 26.9219 26.1758 26.0312 26.1758C25.6328 26.1758 25.1836 26.1953 24.6836 26.2344C24.1836 26.2656 23.6523 26.3203 23.0898 26.3984C22.5273 26.4766 21.9414 26.5859 21.332 26.7266C20.7227 26.8594 20.1055 27.0234 19.4805 27.2188V16.6836H33.5312V19.9766H22.9141V23.5273C23.5 23.3945 24.1133 23.2852 24.7539 23.1992C25.3945 23.1055 26.1094 23.0586 26.8984 23.0586C28.1875 23.0586 29.3398 23.1992 30.3555 23.4805C31.3711 23.7617 32.2266 24.1641 32.9219 24.6875C33.625 25.2109 34.1602 25.8438 34.5273 26.5859C34.8945 27.3203 35.0781 28.1445 35.0781 29.0586C35.0781 30.0039 34.8789 30.8594 34.4805 31.625C34.0898 32.3828 33.5078 33.0312 32.7344 33.5703C31.9688 34.1094 31.0234 34.5234 29.8984 34.8125C28.7812 35.1016 27.4961 35.2461 26.043 35.2461C25.293 35.2461 24.5469 35.2031 23.8047 35.1172C23.0703 35.0391 22.3555 34.9258 21.6602 34.7773C20.9648 34.6211 20.2969 34.4336 19.6562 34.2148C19.0234 33.9883 18.4297 33.7344 17.875 33.4531L19.5859 30.6406Z\",\n },\n {\n title: \"Bot Knowledge Base and Interactions\",\n description:\n \"We’re improving bot responses to user positioning, interactions and knowledge bases to provide more intuitive conversations.\",\n svgPath:\n \"M17.293 26.3516C17.293 24.6875 17.5391 23.2383 18.0312 22.0039C18.5312 20.7617 19.2109 19.7305 20.0703 18.9102C20.9375 18.0898 21.957 17.4766 23.1289 17.0703C24.3008 16.6641 25.5664 16.4609 26.9258 16.4609C27.4961 16.4609 28.0742 16.4922 28.6602 16.5547C29.2539 16.6094 29.8359 16.6992 30.4062 16.8242C30.9766 16.9492 31.5273 17.1133 32.0586 17.3164C32.5977 17.5117 33.0977 17.7461 33.5586 18.0195L31.9062 20.832C31.5625 20.6367 31.1953 20.4727 30.8047 20.3398C30.4219 20.1992 30.0234 20.0898 29.6094 20.0117C29.1953 19.9258 28.7773 19.8633 28.3555 19.8242C27.9336 19.7852 27.5195 19.7656 27.1133 19.7656C26.207 19.7656 25.3867 19.8828 24.6523 20.1172C23.9258 20.3516 23.2969 20.6836 22.7656 21.1133C22.2344 21.543 21.8086 22.0586 21.4883 22.6602C21.1758 23.2539 20.9805 23.9141 20.9023 24.6406C21.3086 24.3203 21.7578 24.043 22.25 23.8086C22.7422 23.5742 23.2617 23.3828 23.8086 23.2344C24.3633 23.0781 24.9297 22.9648 25.5078 22.8945C26.0938 22.8164 26.6797 22.7773 27.2656 22.7773C28.4062 22.7773 29.4414 22.9141 30.3711 23.1875C31.3086 23.4609 32.1094 23.8555 32.7734 24.3711C33.4375 24.8867 33.9492 25.5156 34.3086 26.2578C34.6758 26.9922 34.8594 27.8281 34.8594 28.7656C34.8594 29.6875 34.6758 30.543 34.3086 31.332C33.9492 32.1211 33.4141 32.8086 32.7031 33.3945C31.9922 33.9727 31.1094 34.4297 30.0547 34.7656C29 35.0938 27.7773 35.2578 26.3867 35.2578C25.0352 35.2578 23.8008 35.0859 22.6836 34.7422C21.5664 34.3984 20.6094 33.8633 19.8125 33.1367C19.0156 32.4102 18.3945 31.4883 17.9492 30.3711C17.5117 29.2461 17.293 27.9062 17.293 26.3516ZM20.9844 28.0742C21.1719 29.3555 21.7344 30.3242 22.6719 30.9805C23.6094 31.6289 24.8398 31.9531 26.3633 31.9531C27.1289 31.9531 27.8086 31.875 28.4023 31.7188C28.9961 31.5625 29.4961 31.3477 29.9023 31.0742C30.3086 30.793 30.6172 30.4609 30.8281 30.0781C31.0391 29.6953 31.1445 29.2773 31.1445 28.8242C31.1445 28.4414 31.0625 28.082 30.8984 27.7461C30.7344 27.4102 30.4766 27.1211 30.125 26.8789C29.7812 26.6289 29.3359 26.4336 28.7891 26.293C28.2422 26.1445 27.582 26.0703 26.8086 26.0703C26.1602 26.0703 25.5469 26.1211 24.9688 26.2227C24.3906 26.3242 23.8555 26.4648 23.3633 26.6445C22.8711 26.8242 22.4219 27.0352 22.0156 27.2773C21.6172 27.5195 21.2734 27.7852 20.9844 28.0742Z\",\n },\n {\n title: \"Custom Avatars and Clothing\",\n description:\n \"We are adding non-human avatars and custom avatar clothing so that you can customise your appearance.\",\n svgPath:\n \"M29.4062 19.9648H18.7539V16.6836H35.0312L25.4805 35H21.2617L29.4062 19.9648Z\",\n },\n {\n title: \"AI Companions\",\n description:\n \"We are adding companions to accompany you on your adventures in Fourth Star.\",\n svgPath:\n \"M16.8594 29.4219C16.8594 28.875 16.9336 28.3672 17.082 27.8984C17.2305 27.4297 17.4336 27.0039 17.6914 26.6211C17.9492 26.2305 18.2461 25.8867 18.582 25.5898C18.9258 25.2852 19.293 25.0195 19.6836 24.793C19.1445 24.2617 18.7539 23.7344 18.5117 23.2109C18.2695 22.6797 18.1484 22.1719 18.1484 21.6875C18.1484 20.9141 18.3281 20.207 18.6875 19.5664C19.0547 18.9258 19.5781 18.375 20.2578 17.9141C20.9375 17.4453 21.7617 17.0859 22.7305 16.8359C23.6992 16.5781 24.7891 16.4492 26 16.4492C27.2109 16.4492 28.3008 16.5781 29.2695 16.8359C30.2383 17.0859 31.0625 17.4453 31.7422 17.9141C32.4219 18.375 32.9414 18.9258 33.3008 19.5664C33.668 20.207 33.8516 20.9141 33.8516 21.6875C33.8516 22.1719 33.7305 22.6797 33.4883 23.2109C33.2461 23.7344 32.8555 24.2617 32.3164 24.793C32.6992 25.0195 33.0625 25.2852 33.4062 25.5898C33.75 25.8867 34.0508 26.2305 34.3086 26.6211C34.5664 27.0039 34.7695 27.4297 34.918 27.8984C35.0664 28.3672 35.1406 28.875 35.1406 29.4219C35.1406 30.3359 34.9258 31.1562 34.4961 31.8828C34.0742 32.6016 33.4648 33.2109 32.668 33.7109C31.8789 34.2031 30.918 34.582 29.7852 34.8477C28.6602 35.1133 27.3984 35.2461 26 35.2461C24.6016 35.2461 23.3359 35.1133 22.2031 34.8477C21.0781 34.582 20.1172 34.2031 19.3203 33.7109C18.5312 33.2109 17.9219 32.6016 17.4922 31.8828C17.0703 31.1562 16.8594 30.3359 16.8594 29.4219ZM21.8633 21.8516C21.8633 22.1406 21.9336 22.4141 22.0742 22.6719C22.2227 22.9219 22.457 23.1445 22.7773 23.3398C23.1055 23.5273 23.5312 23.6758 24.0547 23.7852C24.5859 23.8945 25.2344 23.9492 26 23.9492C26.7656 23.9492 27.4102 23.8945 27.9336 23.7852C28.4648 23.6758 28.8906 23.5273 29.2109 23.3398C29.5391 23.1445 29.7734 22.9219 29.9141 22.6719C30.0625 22.4141 30.1367 22.1406 30.1367 21.8516C30.1367 21.5625 30.0625 21.293 29.9141 21.043C29.7734 20.7852 29.5391 20.5625 29.2109 20.375C28.8906 20.1797 28.4648 20.0273 27.9336 19.918C27.4102 19.8086 26.7656 19.7539 26 19.7539C25.2344 19.7539 24.5859 19.8086 24.0547 19.918C23.5312 20.0273 23.1055 20.1797 22.7773 20.375C22.457 20.5625 22.2227 20.7852 22.0742 21.043C21.9336 21.293 21.8633 21.5625 21.8633 21.8516ZM20.5742 29.2461C20.5742 29.6445 20.6875 30.0117 20.9141 30.3477C21.1484 30.6758 21.4922 30.957 21.9453 31.1914C22.3984 31.4258 22.9648 31.6094 23.6445 31.7422C24.3242 31.875 25.1094 31.9414 26 31.9414C26.8906 31.9414 27.6758 31.875 28.3555 31.7422C29.0352 31.6094 29.6016 31.4258 30.0547 31.1914C30.5078 30.957 30.8477 30.6758 31.0742 30.3477C31.3086 30.0117 31.4258 29.6445 31.4258 29.2461C31.4258 28.8477 31.3125 28.4844 31.0859 28.1562C30.8672 27.8203 30.5312 27.5352 30.0781 27.3008C29.6328 27.0664 29.0703 26.8828 28.3906 26.75C27.7109 26.6172 26.9141 26.5508 26 26.5508C25.0859 26.5508 24.2891 26.6172 23.6094 26.75C22.9297 26.8828 22.3633 27.0664 21.9102 27.3008C21.4648 27.5352 21.1289 27.8203 20.9023 28.1562C20.6836 28.4844 20.5742 28.8477 20.5742 29.2461Z\",\n },\n {\n title: \"Gaming\",\n description:\n \"We are working on a new range of quests and games to play within the Fourth Star metaverse!\",\n svgPath:\n \"M19.8828 30.7695C20.2188 30.9648 20.5938 31.1367 21.0078 31.2852C21.4219 31.4336 21.8477 31.5586 22.2852 31.6602C22.7305 31.7539 23.1758 31.8281 23.6211 31.8828C24.0742 31.9297 24.5039 31.9531 24.9102 31.9531C25.8164 31.9531 26.6328 31.8359 27.3594 31.6016C28.0938 31.3672 28.7266 31.0352 29.2578 30.6055C29.7891 30.1758 30.2109 29.6641 30.5234 29.0703C30.8438 28.4688 31.043 27.8047 31.1211 27.0781C30.7148 27.3984 30.2656 27.6758 29.7734 27.9102C29.2812 28.1445 28.7578 28.3398 28.2031 28.4961C27.6562 28.6445 27.0898 28.7578 26.5039 28.8359C25.9258 28.9062 25.3438 28.9414 24.7578 28.9414C23.6172 28.9414 22.5781 28.8047 21.6406 28.5312C20.7109 28.2578 19.9141 27.8633 19.25 27.3477C18.5859 26.832 18.0703 26.207 17.7031 25.4727C17.3438 24.7305 17.1641 23.8906 17.1641 22.9531C17.1641 22.0312 17.3438 21.1758 17.7031 20.3867C18.0703 19.5977 18.6094 18.9141 19.3203 18.3359C20.0312 17.75 20.9141 17.293 21.9688 16.9648C23.0234 16.6289 24.2461 16.4609 25.6367 16.4609C26.9883 16.4609 28.2227 16.6328 29.3398 16.9766C30.457 17.3203 31.4141 17.8555 32.2109 18.582C33.0078 19.3086 33.625 20.2344 34.0625 21.3594C34.5078 22.4766 34.7305 23.8125 34.7305 25.3672C34.7305 27.0312 34.4805 28.4844 33.9805 29.7266C33.4883 30.9609 32.8086 31.9883 31.9414 32.8086C31.082 33.6289 30.0664 34.2422 28.8945 34.6484C27.7227 35.0547 26.457 35.2578 25.0977 35.2578C24.5273 35.2578 23.9336 35.2227 23.3164 35.1523C22.707 35.082 22.1016 34.9766 21.5 34.8359C20.8984 34.6953 20.3164 34.5195 19.7539 34.3086C19.1992 34.0977 18.6914 33.8555 18.2305 33.582L19.8828 30.7695ZM20.8789 22.8945C20.8789 23.2773 20.9609 23.6367 21.125 23.9727C21.2891 24.3086 21.543 24.6016 21.8867 24.8516C22.2383 25.0938 22.6875 25.2891 23.2344 25.4375C23.7812 25.5781 24.4414 25.6484 25.2148 25.6484C25.8633 25.6484 26.4766 25.5977 27.0547 25.4961C27.6328 25.3945 28.168 25.2539 28.6602 25.0742C29.1523 24.8945 29.5977 24.6836 29.9961 24.4414C30.4023 24.1992 30.75 23.9336 31.0391 23.6445C30.8516 22.3633 30.2891 21.3984 29.3516 20.75C28.4141 20.0938 27.1836 19.7656 25.6602 19.7656C24.8945 19.7656 24.2148 19.8438 23.6211 20C23.0273 20.1562 22.5273 20.375 22.1211 20.6562C21.7148 20.9297 21.4062 21.2578 21.1953 21.6406C20.9844 22.0234 20.8789 22.4414 20.8789 22.8945Z\",\n },\n // {\n // title: \"Gaming\",\n // description:\n // \"We are working on a new range of quests and games to play within the Fourth Star metaverse!\",\n // svgPath:\n // \"M10.3867 31.7422H14.5469V20.3398C14 20.4648 13.4727 20.6289 12.9648 20.832C12.4648 21.0352 12.0078 21.2812 11.5938 21.5703L9.76562 18.957C10.4375 18.5352 11.1211 18.1797 11.8164 17.8906C12.5195 17.5938 13.2266 17.3594 13.9375 17.1875C14.6562 17.0078 15.375 16.8789 16.0938 16.8008C16.8203 16.7227 17.543 16.6836 18.2617 16.6836L18.25 16.707H18.2617V31.7422H22.2344V35H10.3867V31.7422ZM24.0039 25.8008C24.0039 24.3242 24.2266 23 24.6719 21.8281C25.1172 20.6562 25.75 19.6641 26.5703 18.8516C27.3906 18.0312 28.3867 17.4062 29.5586 16.9766C30.7305 16.5469 32.043 16.332 33.4961 16.332C34.9492 16.332 36.2617 16.5469 37.4336 16.9766C38.6055 17.4062 39.6016 18.0312 40.4219 18.8516C41.2422 19.6641 41.875 20.6562 42.3203 21.8281C42.7656 23 42.9883 24.3242 42.9883 25.8008C42.9883 27.2773 42.7656 28.6016 42.3203 29.7734C41.875 30.9453 41.2422 31.9375 40.4219 32.75C39.6016 33.5625 38.6055 34.1836 37.4336 34.6133C36.2617 35.043 34.9492 35.2578 33.4961 35.2578C32.043 35.2578 30.7305 35.043 29.5586 34.6133C28.3867 34.1836 27.3906 33.5625 26.5703 32.75C25.75 31.9375 25.1172 30.9453 24.6719 29.7734C24.2266 28.6016 24.0039 27.2773 24.0039 25.8008ZM27.7188 25.7891C27.7188 26.7891 27.8516 27.6719 28.1172 28.4375C28.3906 29.2031 28.7773 29.8477 29.2773 30.3711C29.7773 30.8867 30.3828 31.2812 31.0938 31.5547C31.8047 31.8203 32.6055 31.9531 33.4961 31.9531C34.3867 31.9531 35.1875 31.8203 35.8984 31.5547C36.6094 31.2812 37.2148 30.8867 37.7148 30.3711C38.2148 29.8477 38.5977 29.2031 38.8633 28.4375C39.1367 27.6719 39.2734 26.7891 39.2734 25.7891C39.2734 24.7969 39.1367 23.9219 38.8633 23.1641C38.5977 22.3984 38.2148 21.7539 37.7148 21.2305C37.2148 20.707 36.6094 20.3125 35.8984 20.0469C35.1875 19.7734 34.3867 19.6367 33.4961 19.6367C32.6055 19.6367 31.8047 19.7734 31.0938 20.0469C30.3828 20.3125 29.7773 20.707 29.2773 21.2305C28.7773 21.7539 28.3906 22.3984 28.1172 23.1641C27.8516 23.9219 27.7188 24.7969 27.7188 25.7891Z\",\n // },\n ];\n return (\n <>\n <div className=\"mt-[70px] mb-[60px] w-full text-center text-[24px] font-semibold\">\n Help Center\n </div>\n <div className=\"w-full flex flex-col items-center\">\n <div className=\"flex flex-col items-center md:flex-row md:justify-center md:items-stretch gap-x-[20px] gap-y-[20px]\">\n <NavLink\n to=\"/request-ticket\"\n className=\"w-[90%] md:w-[25%] p-[25px] bg-[#262626] hover:bg-[#292721] flex flex-col items-center rounded-[8px] border border-solid border-[#7A7A7A] hover:border-[#FBBC5E]\"\n >\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_529_16319)\">\n <path\n d=\"M32.964 15.021H22.5C20.019 15.021 18 13.002 18 10.521V0.0555313C17.7585 0.0390312 17.517 0.0195312 17.2725 0.0195312H10.5C6.3645 0.0210313 3 3.38553 3 7.52103V28.521C3 32.6565 6.3645 36.021 10.5 36.021H25.5C29.6355 36.021 33 32.6565 33 28.521V15.7485C33 15.504 32.9805 15.2625 32.964 15.021ZM16.5 17.9985C16.5 17.1705 17.172 16.4985 18 16.4985C18.828 16.4985 19.5 17.1705 19.5 17.9985V23.2485C19.5 24.0765 18.828 24.7485 18 24.7485C17.172 24.7485 16.5 24.0765 16.5 23.2485V17.9985ZM18 31.4985C16.758 31.4985 15.75 30.4905 15.75 29.2485C15.75 28.0065 16.758 26.9985 18 26.9985C19.242 26.9985 20.25 28.0065 20.25 29.2485C20.25 30.4905 19.242 31.4985 18 31.4985ZM21 10.521V0.709531C22.3695 1.22853 23.6295 2.02803 24.6975 3.09453L29.9235 8.32353C30.9915 9.39003 31.791 10.65 32.31 12.0195H22.5C21.672 12.0195 21 11.3475 21 10.521Z\"\n fill=\"white\"\n fill-opacity=\"0.2\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_529_16319\">\n <rect width=\"36\" height=\"36\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <p className=\"mt-[25px] text-[20px] font-semibold\">\n Request Account Support\n </p>\n <p className=\"mt-[15px] text-center text-[14px] text-[#7A7A7A] font-medium\">\n Raise a ticket for reporting account related issues, accessibility\n issues, delete account, payment or transaction issues and general\n inquiries.\n </p>\n </NavLink>\n <NavLink\n to=\"/report-bug\"\n className=\"w-[90%] md:w-[25%] p-[25px] bg-[#262626] hover:bg-[#292721] flex flex-col items-center rounded-[8px] border border-solid border-[#7A7A7A] hover:border-[#FBBC5E]\"\n >\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_528_16305)\">\n <path\n d=\"M1.5 35.9977C0.672 35.9977 0 35.3273 0 34.4977V5.99775C0 2.68875 2.691 -0.0022505 6 -0.0022505H32.997C35.397 -0.0847505 36.903 2.93475 35.394 4.80225L30.5385 11.2477L35.394 17.6932C36.9045 19.5607 35.3985 22.5802 32.997 22.4977H3V34.4977C3 35.3273 2.328 35.9977 1.5 35.9977Z\"\n fill=\"white\"\n fill-opacity=\"0.5\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_528_16305\">\n <rect width=\"36\" height=\"36\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <p className=\"mt-[25px] text-[20px] font-semibold\">\n Report a Technical Bug\n </p>\n <p className=\"mt-[15px] text-center text-[14px] text-[#7A7A7A] font-medium\">\n Report Technical Issues, Functional bugs, Display bugs,\n Compatibility bugs, Performance and Security bugs.\n </p>\n </NavLink>\n <NavLink\n to=\"/request-feature\"\n className=\"w-[90%] md:w-[25%] p-[25px] bg-[#262626] hover:bg-[#292721] flex flex-col items-center rounded-[8px] border border-solid border-[#7A7A7A] hover:border-[#FBBC5E]\"\n >\n <svg\n width=\"36\"\n height=\"36\"\n viewBox=\"0 0 36 36\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_529_16309)\">\n <path\n d=\"M31.5 0H4.5C3.30653 0 2.16193 0.474106 1.31802 1.31802C0.474106 2.16193 0 3.30653 0 4.5L0 30H10.35L16.062 34.827C16.6035 35.2846 17.2895 35.5357 17.9985 35.5357C18.7075 35.5357 19.3935 35.2846 19.935 34.827L25.65 30H36V4.5C36 3.30653 35.5259 2.16193 34.682 1.31802C33.8381 0.474106 32.6935 0 31.5 0ZM9 7.5H18V10.5H9V7.5ZM27 22.5H9V19.5H27V22.5ZM27 16.5H9V13.5H27V16.5Z\"\n fill=\"white\"\n fill-opacity=\"0.2\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_529_16309\">\n <rect width=\"36\" height=\"36\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <p className=\"mt-[25px] text-[20px] font-semibold\">\n Request a Feature\n </p>\n <p className=\"mt-[15px] text-center text-[14px] text-[#7A7A7A] font-medium\">\n Submit your feature requests here, and we'll consider them for\n future updates.\n </p>\n </NavLink>\n </div>\n <NavLink\n to=\"/help-center/ticket-list\"\n className=\"my-16 text-white text-xs py-2.5 px-4 font-bold rounded-[8px] border border-sec btn-outline hover:text-dark flex gap-x-2 items-center\"\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <span>See all Tickets</span>\n <svg\n width=\"15\"\n height=\"12\"\n viewBox=\"0 0 15 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.293 0.792786C8.48053 0.605315 8.73484 0.5 9 0.5C9.26516 0.5 9.51947 0.605315 9.707 0.792786L14.207 5.29279C14.3945 5.48031 14.4998 5.73462 14.4998 5.99979C14.4998 6.26495 14.3945 6.51926 14.207 6.70679L9.707 11.2068C9.5184 11.3889 9.2658 11.4897 9.0036 11.4875C8.7414 11.4852 8.49059 11.38 8.30518 11.1946C8.11977 11.0092 8.0146 10.7584 8.01233 10.4962C8.01005 10.234 8.11084 9.98139 8.293 9.79279L11 6.99979H1.5C1.23478 6.99979 0.98043 6.89443 0.792893 6.70689C0.605357 6.51936 0.5 6.265 0.5 5.99979C0.5 5.73457 0.605357 5.48022 0.792893 5.29268C0.98043 5.10514 1.23478 4.99979 1.5 4.99979H11L8.293 2.20679C8.10553 2.01926 8.00021 1.76495 8.00021 1.49979C8.00021 1.23462 8.10553 0.980314 8.293 0.792786Z\"\n fill={isHovered ? \"black\" : \"white\" }\n />\n </svg>\n </NavLink>\n <hr className=\"w-full h-px my-8 border-0 bg-[#999797]\" />\n <div className=\"mt-[100px] w-[90%] md:w-[70%] text-center\">\n <p className=\"text-[24px] font-semibold\">\n Improvements that are already underway\n </p>\n <p className=\"mt-[20px] text-[#999797] font-medium\">\n We are immensely grateful for your feedback and suggestions. We have\n listed the priority development that our team is already working on.\n If you are about to report a bug and its already in this list, then\n please rest assured that we are already working on it.\n </p>\n </div>\n <div className=\"mt-[50px] mb-[140px] w-[90%] md:w-[60%] flex flex-col gap-y-[20px]\">\n {updates.map((update, index) => (\n <div\n key={index}\n className=\"bg-[#292721] p-[15px] flex gap-x-[15px]\"\n >\n <div className=\"w-[52px] h-[52px]\">\n <svg\n width=\"52\"\n height=\"52\"\n viewBox=\"0 0 52 52\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect\n x=\"0.5\"\n y=\"0.5\"\n width=\"51\"\n height=\"51\"\n rx=\"25.5\"\n stroke=\"#F3A151\"\n />\n <path d={update.svgPath} fill=\"white\" fillOpacity=\"0.7\" />\n </svg>\n </div>\n <div>\n <p className=\"font-semibold\">{update.title}</p>\n <p className=\"mt-[10px] text-[#d1c9c9]\">{update.description}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </>\n );\n};\n\nexport default HelpCenter;\n","import { NavLink } from \"react-router-dom\";\n\nconst content = [\n {\n title: \"Ticket successfully raised\",\n description: `Your ticket has been successfully submitted! Our team will review your\n request and get back to you as soon as possible. Thank you for\n contacting us!`,\n },\n {\n title: \"Bug Reported Successfully\",\n description: `Your bug report has been submitted successfully. Thank you for taking the time to report this issue. Our team will review the report and work to resolve the issue.`,\n },\n {\n title: \"Feature Request Submitted\",\n description: `Your feature request has been successfully submitted! Our team will review your suggestion and consider it for future updates. Thank you for helping us improve!`,\n },\n];\n\nconst HelpCenterModal = ({ taskId, ticketId }) => {\n return (\n <div className=\"fixed inset-0 flex items-center justify-center z-50 bg-[#00000099] bg-opacity-50\">\n <div className=\"flex flex-col items-center gap-y-[20px] bg-[#242424] p-10 rounded-[8px] shadow-lg text-center w-[90%] md:w-[40%] 2xl:w-[35%]\">\n <svg\n width=\"52\"\n height=\"52\"\n viewBox=\"0 0 52 52\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_539_17592)\">\n <path\n d=\"M26 52C40.3594 52 52 40.3594 52 26C52 11.6406 40.3594 0 26 0C11.6406 0 0 11.6406 0 26C0 40.3594 11.6406 52 26 52Z\"\n fill=\"#51AF4A\"\n />\n <path\n d=\"M26.0006 11.9102C29.6016 11.9102 33.2026 13.286 35.9586 16.0398C37.2685 17.3468 38.3077 18.8993 39.0167 20.6084C39.7257 22.3175 40.0907 24.1497 40.0907 26C40.0907 27.8503 39.7257 29.6825 39.0167 31.3916C38.3077 33.1007 37.2685 34.6532 35.9586 35.9602C34.6517 37.27 33.0992 38.3092 31.3901 39.0182C29.681 39.7273 27.8488 40.0922 25.9985 40.0922C24.1481 40.0922 22.3159 39.7273 20.6068 39.0182C18.8977 38.3092 17.3453 37.27 16.0383 35.9602C14.7285 34.6532 13.6893 33.1007 12.9803 31.3916C12.2712 29.6825 11.9063 27.8503 11.9062 26C11.9063 24.1497 12.2712 22.3175 12.9803 20.6084C13.6893 18.8993 14.7285 17.3468 16.0383 16.0398C17.3449 14.729 18.8976 13.6894 20.6073 12.9807C22.317 12.2719 24.1499 11.9081 26.0006 11.9102ZM32.414 21.6645C32.2089 21.6841 32.0135 21.7615 31.8506 21.8877L23.9336 27.8243L20.2655 24.1583C19.4703 23.3307 17.9038 24.895 18.7336 25.6902L23.067 30.0235C23.2548 30.2011 23.4983 30.3083 23.7562 30.3269C24.0141 30.3455 24.2705 30.2742 24.4818 30.1253L33.1485 23.6253C33.8765 23.0945 33.428 21.6797 32.5266 21.6667C32.4898 21.6648 32.4529 21.6648 32.4161 21.6667L32.414 21.6645Z\"\n fill=\"white\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_539_17592\">\n <rect width=\"52\" height=\"52\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n <p className=\"text-2xl font-semibold\">{content[taskId]?.title}</p>\n <p>{content[taskId]?.description}</p>\n <p className=\"font-semibold text-[14px]\">Ticket id: {ticketId}</p>\n <NavLink\n to=\"/\"\n className=\"px-2 md:px-6 lg:px-8 xl:px-3 py-3 max-md:text-[12px] text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] w-[60%] hover:from-[#DB9149] hover:to-[#DB9149]\"\n >\n Return to Home Page\n </NavLink>\n </div>\n </div>\n );\n};\n\nexport default HelpCenterModal;\n","// utils/s3.ts\nimport AWS from \"aws-sdk\";\n\nAWS.config.update({\n apiVersion: \"latest\",\n credentials: {\n accessKeyId: process.env.REACT_APP_AWS_ACCESS_KEY_ID,\n secretAccessKey: process.env.REACT_APP_AWS_SECRET_KEY_ID,\n },\n region: process.env.REACT_APP_AWS_S3_BUCKET_REGION,\n});\nconst s3 = new AWS.S3();\n\nconst contentTypeMapping = {\n \".png\": \"image/png\",\n \".jpg\": \"image/jpg\",\n \".jpeg\": \"image/jpeg\",\n \".gif\": \"image/gif\",\n \".webp\": \"image/webp\",\n};\n\nexport async function uploadToS3(file, bucketName, key) {\n const fileExtension = key.slice(key.lastIndexOf(\".\"));\n\n // Determine the content type based on the file extension\n const contentType =\n contentTypeMapping[fileExtension.toLowerCase()] ||\n \"application/octet-stream\";\n\n const params = {\n Bucket: bucketName,\n Key: key,\n Body: file,\n ContentType: contentType, // Set the content type based on the file extension\n };\n\n try {\n const s3result = await s3.upload(params).promise();\n return s3result;\n } catch (error) {\n return {\n status: false,\n statusCode: error.statusCode,\n message: error.message,\n };\n }\n}\n\nexport async function removeFromS3(bucketName, key) {\n const params = {\n Bucket: bucketName,\n Key: key,\n };\n\n await s3.deleteObject(params, (err, data) => {\n if (err) {\n console.error(\"Error deleting object:\", err);\n } else {\n console.log(\"Object deleted successfully:\", data);\n }\n });\n return;\n}\n\n// Other S3-related functions can also be defined here.\n","import React, { useState, useRef } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport HelpCenterModal from \"components/Modal/HelpCenter/HelpCenterModal\";\nimport { uploadToS3, removeFromS3 } from \"utils/s3\";\nimport ErrorAlert from \"utils/errorAlert\";\nimport { useAddTicketMutation } from \"store/slicer/HelpCenter\";\n\nconst timestamp = Date.now();\n\nconst RequestTicket = () => {\n const screenshotInputRef = useRef(null);\n const [screenshotPristine, setScreenshotPristine] = useState(true);\n const [screenshotPreview, setScreenshotPreview] = useState(\"\");\n const [screenshotFileName, setScreenshotFileName] = useState(\"\");\n const screenshotDraggableRef = useRef(null);\n const [screenshot, setScreenshot] = useState(null);\n const [isOpen, setIsOpen] = useState(false);\n const [title, setTitle] = useState(\"\");\n const [description, setDescription] = useState(\"\");\n const [addTicketRequest] = useAddTicketMutation();\n const [ticketResponse, setTicketResponse] = useState(null);\n\n const togglePopup = async () => {\n if (!title) {\n ErrorAlert(\"Please add title.\");\n return;\n } else if (!description) {\n ErrorAlert(\"Please add description.\");\n return;\n }\n await addTicketRequest({\n ticketType: 0,\n title: title,\n content: description,\n screenshots: screenshot?.url,\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n setTicketResponse(res.data.response.data.ticketId);\n setIsOpen(!isOpen);\n } else {\n ErrorAlert(res?.data?.response?.message);\n }\n })\n .catch((error) => {\n ErrorAlert(\"Api Error Occured.\");\n });\n };\n\n const onScreenshotDragOver = (ev) => {\n ev.preventDefault();\n };\n\n const onScreenshotInputChange = (ev) => {\n setScreenshotPristine(false);\n const items = ev.target.files;\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while uploading ticket screenshot\", error);\n });\n };\n };\n }\n };\n\n const onScreenshotDrop = (ev) => {\n setScreenshotPristine(false);\n ev.preventDefault();\n const items = ev.dataTransfer.files;\n // succcessfully dropped\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while Droping ticket screenshot\", error);\n });\n };\n };\n }\n };\n\n const removeScreenshot = () => {\n removeFromS3(\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n screenshot.fileName\n );\n setScreenshot(null);\n setScreenshotPreview(null);\n };\n\n return (\n <>\n <div className=\"mt-[50px] mb-[30px] w-full text-center text-[24px] font-semibold\">\n Raise a Ticket\n </div>\n <div className=\"w-full flex flex-col items-center\">\n <div className=\"mt-[20px] mb-[140px] w-[90%] md:w-[40%] xl:w-[33%] flex flex-col gap-y-[20px] bg-[#262626] rounded-[8px] py-[25px] px-[30px]\">\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"title\"\n >\n Provide Title\n </label>\n <input\n className={`bg-transparent rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none placeholder-[#666262]`}\n type=\"text\"\n name=\"title\"\n placeholder=\"Please add title\"\n required\n onChange={(e) => setTitle(e.target.value)}\n />\n </div>\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"description\"\n >\n Provide Description\n </label>\n <textarea\n className={`bg-transparent h-[100px] rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none resize-none placeholder-[#666262]`}\n type=\"text\"\n name=\"description\"\n placeholder=\"Please describe the issue in detail.\"\n required\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"screenshot\"\n >\n Upload Screenshot (optional)\n </label>\n {/* ********************Show these when small thumbnail is not uploaded******************** */}\n {!screenshotPreview && (\n <div\n ref={screenshotDraggableRef}\n className=\"__DRAG_AND_DROP_SMALL_CONT__ relative outline-none border border-[#535353] focus:border-theme bg-transparent rounded-[8px] py-[25px]\"\n onDragOver={onScreenshotDragOver}\n onDrop={onScreenshotDrop}\n >\n <p className=\"text-[12px] text-center\">Drag & Drop file</p>\n <p className=\"text-[12px] text-center mt-4\">Or</p>\n <button\n className=\"block border border-[#FFFFFF] mt-4 mb-2 mx-auto bg-transparent rounded-2xl px-8 py-2 font-medium text-[12px] text-[#fff] cursor-pointer hover:bg-[#fff] hover:text-[#000]\"\n onClick={() => {\n setScreenshotPristine(false);\n screenshotInputRef.current.click();\n }}\n >\n Upload\n </button>\n </div>\n )}\n <input\n ref={screenshotInputRef}\n className=\"absolute opacity-0 pointer-events-none\"\n type=\"file\"\n name=\"\"\n id=\"\"\n accept=\"image/png, image/jpeg, image/jpg\"\n onChange={onScreenshotInputChange}\n // value={(e) => e.target.name}\n />\n {screenshotPreview && (\n <div className=\"__UPLOADED_SMALL_THUMB_CONT__ mt-[14px] mb-[8px] px-6 py-9 rounded-[20px] border-[1px] border-dashed border-[#707070] w-full max-w-[650px]\">\n <div className=\"w-[400px] max-w-full\">\n <div\n className=\"__UPLOADED_THUMB__ h-[160px] bg-[#3f3f3f] bg-no-repeat bg-center bg-contain\"\n style={{\n backgroundImage: `url(${screenshotPreview})`,\n }}\n ></div>\n <p className=\"__UPLOADED_SMALL_THUMB_NAME__ text-start text-[10px] text-[#7A7A7A] leading-[14.5px] overflow-hidden text-ellipsis\">\n {screenshotFileName}\n </p>\n </div>\n <div className=\"__UPLOADED_THUMB_BTN_CONT__ mt-2 flex justify-end items-center\">\n <button\n className=\"text-[12px] leading-[14.5px] font-bold cursor-pointer\"\n type=\"button\"\n onClick={() => screenshotInputRef.current.click()}\n >\n Replace\n </button>\n <button\n className=\"ml-4 text-[12px] leading-[14.5px] font-bold text-error cursor-pointer\"\n type=\"button\"\n onClick={removeScreenshot}\n >\n Delete\n </button>\n </div>\n </div>\n )}\n </div>\n <div className=\"my-[20px] flex gap-x-[4%]\">\n <NavLink\n to=\"/help-center\"\n className=\"px-2 md:px-4 lg:px-8 xl:px-12 py-3 text-center font-bold rounded-lg border border-[#FFFFFF] hover:bg-[#EC4134] hover:border-transparent w-[48%]\"\n >\n Cancel\n </NavLink>\n <button\n className=\"px-2 md:px-6 lg:px-8 xl:px-3 py-3 text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] w-[48%] hover:from-[#DB9149] hover:to-[#DB9149]\"\n onClick={togglePopup}\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n {isOpen && <HelpCenterModal taskId={0} ticketId={ticketResponse} />}\n </>\n );\n};\n\nexport default RequestTicket;\n","import React, { useState, useRef } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport HelpCenterModal from \"components/Modal/HelpCenter/HelpCenterModal\";\nimport { uploadToS3, removeFromS3 } from \"utils/s3\";\nimport ErrorAlert from \"utils/errorAlert\";\nimport { useAddTicketMutation } from \"store/slicer/HelpCenter\";\n\nconst timestamp = Date.now();\n\nconst ReportBug = () => {\n const screenshotInputRef = useRef(null);\n const [screenshotPristine, setScreenshotPristine] = useState(true);\n const [screenshotPreview, setScreenshotPreview] = useState(\"\");\n const [screenshotFileName, setScreenshotFileName] = useState(\"\");\n const screenshotDraggableRef = useRef(null);\n const [screenshot, setScreenshot] = useState(null);\n const [isOpen, setIsOpen] = useState(false);\n const [title, setTitle] = useState(\"\");\n const [description, setDescription] = useState(\"\");\n const [addTicketRequest] = useAddTicketMutation();\n const [ticketResponse, setTicketResponse] = useState(null);\n\n const togglePopup = async () => {\n if (!title) {\n ErrorAlert(\"Please add title.\");\n return;\n } else if (!description) {\n ErrorAlert(\"Please add description.\");\n return;\n }\n await addTicketRequest({\n ticketType: 1,\n title: title,\n content: description,\n screenshots: screenshot?.url,\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n setTicketResponse(res.data.response.data.ticketId);\n setIsOpen(!isOpen);\n }\n console.log(res, \"line37\");\n })\n .catch((error) => {\n ErrorAlert(\"Api Error Occured.\");\n });\n };\n\n const onScreenshotDragOver = (ev) => {\n ev.preventDefault();\n };\n\n const onScreenshotInputChange = (ev) => {\n setScreenshotPristine(false);\n const items = ev.target.files;\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while uploading bug screenshot\", error);\n });\n };\n };\n }\n };\n\n const onScreenshotDrop = (ev) => {\n setScreenshotPristine(false);\n ev.preventDefault();\n const items = ev.dataTransfer.files;\n // succcessfully dropped\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while Droping bug screenshot\", error);\n });\n };\n };\n }\n };\n\n const removeScreenshot = () => {\n removeFromS3(\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n screenshot.fileName\n );\n setScreenshot(null);\n setScreenshotPreview(null);\n };\n\n return (\n <>\n <div className=\"mt-[50px] mb-[30px] w-full text-center text-[24px] font-semibold\">\n Report a Bug\n </div>\n <div className=\"w-full flex flex-col items-center\">\n <div className=\"mt-[20px] mb-[140px] w-[90%] md:w-[40%] xl:w-[33%] flex flex-col gap-y-[20px] bg-[#262626] rounded-[8px] py-[25px] px-[30px]\">\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"title\"\n >\n Provide Title\n </label>\n <input\n className={`bg-transparent rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none placeholder-[#666262]`}\n type=\"text\"\n name=\"title\"\n placeholder=\"Please add title\"\n required\n onChange={(e) => setTitle(e.target.value)}\n />\n </div>\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"description\"\n >\n Bug Description\n </label>\n <textarea\n className={`bg-transparent h-[100px] rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none resize-none placeholder-[#666262]`}\n type=\"text\"\n name=\"description\"\n placeholder=\"Please describe the issue in detail.\"\n required\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"screenshot\"\n >\n Upload Screenshot (optional)\n </label>\n {/* ********************Show these when small thumbnail is not uploaded******************** */}\n {!screenshotPreview && (\n <div\n ref={screenshotDraggableRef}\n className=\"__DRAG_AND_DROP_SMALL_CONT__ relative outline-none border border-[#535353] focus:border-theme bg-transparent rounded-[8px] py-[25px]\"\n onDragOver={onScreenshotDragOver}\n onDrop={onScreenshotDrop}\n >\n <p className=\"text-[12px] text-center\">Drag & Drop file</p>\n <p className=\"text-[12px] text-center mt-4\">Or</p>\n <button\n className=\"block border border-[#FFFFFF] mt-4 mb-2 mx-auto bg-transparent rounded-2xl px-8 py-2 font-medium text-[12px] text-[#fff] cursor-pointer hover:bg-[#fff] hover:text-[#000]\"\n onClick={() => {\n setScreenshotPristine(false);\n screenshotInputRef.current.click();\n }}\n >\n Upload\n </button>\n </div>\n )}\n <input\n ref={screenshotInputRef}\n className=\"absolute opacity-0 pointer-events-none\"\n type=\"file\"\n name=\"\"\n id=\"\"\n accept=\"image/png, image/jpeg, image/jpg\"\n onChange={onScreenshotInputChange}\n // value={(e) => e.target.name}\n />\n {screenshotPreview && (\n <div className=\"__UPLOADED_SMALL_THUMB_CONT__ mt-[14px] mb-[8px] px-6 py-9 rounded-[20px] border-[1px] border-dashed border-[#707070] w-full max-w-[650px]\">\n <div className=\"w-[400px] max-w-full\">\n <div\n className=\"__UPLOADED_THUMB__ h-[160px] bg-[#3f3f3f] bg-no-repeat bg-center bg-contain\"\n style={{\n backgroundImage: `url(${screenshotPreview})`,\n }}\n ></div>\n <p className=\"__UPLOADED_SMALL_THUMB_NAME__ text-start text-[10px] text-[#7A7A7A] leading-[14.5px] overflow-hidden text-ellipsis\">\n {screenshotFileName}\n </p>\n </div>\n <div className=\"__UPLOADED_THUMB_BTN_CONT__ mt-2 flex justify-end items-center\">\n <button\n className=\"text-[12px] leading-[14.5px] font-bold cursor-pointer\"\n type=\"button\"\n onClick={() => screenshotInputRef.current.click()}\n >\n Replace\n </button>\n <button\n className=\"ml-4 text-[12px] leading-[14.5px] font-bold text-error cursor-pointer\"\n type=\"button\"\n onClick={removeScreenshot}\n >\n Delete\n </button>\n </div>\n </div>\n )}\n </div>\n <div className=\"my-[20px] flex gap-x-[4%]\">\n <NavLink\n to=\"/help-center\"\n className=\"px-2 md:px-4 lg:px-8 xl:px-12 py-3 text-center font-bold rounded-lg border border-[#FFFFFF] hover:bg-[#EC4134] hover:border-transparent w-[48%]\"\n >\n Cancel\n </NavLink>\n <button\n className=\"px-2 md:px-6 lg:px-8 xl:px-3 py-3 text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] w-[48%] hover:from-[#DB9149] hover:to-[#DB9149]\"\n onClick={togglePopup}\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n {isOpen && <HelpCenterModal taskId={1} ticketId={ticketResponse} />}\n </>\n );\n};\n\nexport default ReportBug;\n","import React, { useState, useRef } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport HelpCenterModal from \"components/Modal/HelpCenter/HelpCenterModal\";\nimport { uploadToS3, removeFromS3 } from \"utils/s3\";\nimport ErrorAlert from \"utils/errorAlert\";\nimport { useAddTicketMutation } from \"store/slicer/HelpCenter\";\n\nconst timestamp = Date.now();\n\nconst RequestFeature = () => {\n const screenshotInputRef = useRef(null);\n const [screenshotPristine, setScreenshotPristine] = useState(true);\n const [screenshotPreview, setScreenshotPreview] = useState(\"\");\n const [screenshotFileName, setScreenshotFileName] = useState(\"\");\n const screenshotDraggableRef = useRef(null);\n const [screenshot, setScreenshot] = useState(null);\n const [isOpen, setIsOpen] = useState(false);\n const [title, setTitle] = useState(\"\");\n const [description, setDescription] = useState(\"\");\n const [addTicketRequest] = useAddTicketMutation();\n const [ticketResponse, setTicketResponse] = useState(null);\n\n const togglePopup = async () => {\n if (!title) {\n ErrorAlert(\"Please add title.\");\n return;\n } else if (!description) {\n ErrorAlert(\"Please add description.\");\n return;\n }\n await addTicketRequest({\n ticketType: 2,\n title: title,\n content: description,\n screenshots: screenshot?.url,\n })\n .then((res) => {\n if (res?.data?.response?.statusEnum === 1) {\n setTicketResponse(res.data.response.data.ticketId);\n setIsOpen(!isOpen);\n }\n console.log(res, \"line37\");\n })\n .catch((error) => {\n ErrorAlert(\"Api Error Occured.\");\n });\n };\n\n const onScreenshotDragOver = (ev) => {\n ev.preventDefault();\n };\n\n const onScreenshotInputChange = (ev) => {\n setScreenshotPristine(false);\n const items = ev.target.files;\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while uploading bug screenshot\", error);\n });\n };\n };\n }\n };\n\n const onScreenshotDrop = (ev) => {\n setScreenshotPristine(false);\n ev.preventDefault();\n const items = ev.dataTransfer.files;\n // succcessfully dropped\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while Droping bug screenshot\", error);\n });\n };\n };\n }\n };\n\n const removeScreenshot = () => {\n removeFromS3(\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n screenshot.fileName\n );\n setScreenshot(null);\n setScreenshotPreview(null);\n };\n\n return (\n <>\n <div className=\"mt-[50px] mb-[30px] w-full text-center text-[24px] font-semibold\">\n Request a Feature\n </div>\n <div className=\"w-full flex flex-col items-center\">\n <div className=\"mt-[20px] mb-[140px] w-[90%] md:w-[40%] xl:w-[33%] flex flex-col gap-y-[20px] bg-[#262626] rounded-[8px] py-[25px] px-[30px]\">\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"title\"\n >\n Provide Title\n </label>\n <input\n className={`bg-transparent rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none placeholder-[#666262]`}\n type=\"text\"\n name=\"title\"\n placeholder=\"Please add title\"\n required\n onChange={(e) => setTitle(e.target.value)}\n />\n </div>\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"description\"\n >\n Feature Description\n </label>\n <textarea\n className={`bg-transparent h-[100px] rounded-[8px] border border-[#535353] py-[10px] px-[15px] focus:border-[#f6f6f6] outline-none resize-none placeholder-[#666262]`}\n type=\"text\"\n name=\"description\"\n placeholder=\"Please describe the issue in detail.\"\n required\n onChange={(e) => setDescription(e.target.value)}\n />\n </div>\n <div className=\"flex flex-col gap-y-[5px]\">\n <label\n className=\"font-bold text-[14px] max-[768px]:text-[12px] text-[#e2dada]\"\n htmlFor=\"screenshot\"\n >\n Upload Screenshot (optional)\n </label>\n {/* ********************Show these when small thumbnail is not uploaded******************** */}\n {!screenshotPreview && (\n <div\n ref={screenshotDraggableRef}\n className=\"__DRAG_AND_DROP_SMALL_CONT__ relative outline-none border border-[#535353] focus:border-theme bg-transparent rounded-[8px] py-[25px]\"\n onDragOver={onScreenshotDragOver}\n onDrop={onScreenshotDrop}\n >\n <p className=\"text-[12px] text-center\">Drag & Drop file</p>\n <p className=\"text-[12px] text-center mt-4\">Or</p>\n <button\n className=\"block border border-[#FFFFFF] mt-4 mb-2 mx-auto bg-transparent rounded-2xl px-8 py-2 font-medium text-[12px] text-[#fff] cursor-pointer hover:bg-[#fff] hover:text-[#000]\"\n onClick={() => {\n setScreenshotPristine(false);\n screenshotInputRef.current.click();\n }}\n >\n Upload\n </button>\n </div>\n )}\n <input\n ref={screenshotInputRef}\n className=\"absolute opacity-0 pointer-events-none\"\n type=\"file\"\n name=\"\"\n id=\"\"\n accept=\"image/png, image/jpeg, image/jpg\"\n onChange={onScreenshotInputChange}\n // value={(e) => e.target.name}\n />\n {screenshotPreview && (\n <div className=\"__UPLOADED_SMALL_THUMB_CONT__ mt-[14px] mb-[8px] px-6 py-9 rounded-[20px] border-[1px] border-dashed border-[#707070] w-full max-w-[650px]\">\n <div className=\"w-[400px] max-w-full\">\n <div\n className=\"__UPLOADED_THUMB__ h-[160px] bg-[#3f3f3f] bg-no-repeat bg-center bg-contain\"\n style={{\n backgroundImage: `url(${screenshotPreview})`,\n }}\n ></div>\n <p className=\"__UPLOADED_SMALL_THUMB_NAME__ text-start text-[10px] text-[#7A7A7A] leading-[14.5px] overflow-hidden text-ellipsis\">\n {screenshotFileName}\n </p>\n </div>\n <div className=\"__UPLOADED_THUMB_BTN_CONT__ mt-2 flex justify-end items-center\">\n <button\n className=\"text-[12px] leading-[14.5px] font-bold cursor-pointer\"\n type=\"button\"\n onClick={() => screenshotInputRef.current.click()}\n >\n Replace\n </button>\n <button\n className=\"ml-4 text-[12px] leading-[14.5px] font-bold text-error cursor-pointer\"\n type=\"button\"\n onClick={removeScreenshot}\n >\n Delete\n </button>\n </div>\n </div>\n )}\n </div>\n <div className=\"my-[20px] flex gap-x-[4%]\">\n <NavLink\n to=\"/help-center\"\n className=\"px-2 md:px-4 lg:px-8 xl:px-12 py-3 text-center font-bold rounded-lg border border-[#FFFFFF] hover:bg-[#EC4134] hover:border-transparent w-[48%]\"\n >\n Cancel\n </NavLink>\n <button\n className=\"px-2 md:px-6 lg:px-8 xl:px-3 py-3 text-center font-bold rounded-lg text-black bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] w-[48%] hover:from-[#DB9149] hover:to-[#DB9149]\"\n onClick={togglePopup}\n >\n Submit\n </button>\n </div>\n </div>\n </div>\n {isOpen && <HelpCenterModal taskId={2} ticketId={ticketResponse} />}\n </>\n );\n};\n\nexport default RequestFeature;\n","import { NavLink } from \"react-router-dom\";\n\nconst RefundCancellationPolicy = () => {\n return (\n <div className=\"m-[100px] \">\n <div className=\"my-[20px] \">\n <p className=\"text-[28px] font-semibold \">\n Refund and Cancellation Policy\n </p>\n <p className=\"py-[10px] mt-[20px] font-medium text-white/50 \">\n Our Refund and Cancellation policy is designed to ensure a fair and\n consistent experience for all users. Please read the following policy\n carefully before making a purchase:\n </p>\n </div>\n <div className=\"my-[20px] \">\n <p className=\"text-[24px] font-medium \">In App Purchases</p>\n <ol className=\"list-disc list-inside mt-[20px] flex flex-col gap-y-[10px] font-medium text-white/50 \">\n <li>\n In-app purchases (IAPs) can be cancelled within{\" \"}\n <span className=\"text-white \">24 hours</span> of purchase.\n </li>\n <li>\n Refunds for cancelled IAPs may take up to{\" \"}\n <span className=\"text-white \">48 hours </span>to process.\n </li>\n <li>\n Refunds will not be applicable if users have already used the IAP in\n the game.\n </li>\n </ol>\n </div>\n <div className=\"my-[20px] \">\n <p className=\"text-[24px] font-medium \">Entertainment Contents</p>\n <ol className=\"list-disc list-inside mt-[20px] flex flex-col gap-y-[10px] font-medium text-white/50 \">\n <li>\n In-app purchases (IAPs) can be cancelled within{\" \"}\n <span className=\"text-white \">24 hours</span> of purchase.\n </li>\n <li>\n Refunds for cancelled IAPs may take up to{\" \"}\n <span className=\"text-white \">48 hours </span> to process.\n </li>\n <li>\n Refunds are not available for digital content that has been fully or\n partially consumed.\n </li>\n </ol>\n </div>\n <div className=\"my-[20px] \">\n <p className=\"text-[24px] font-medium \">Subscriptions</p>\n <ol className=\"list-disc list-inside mt-[20px] flex flex-col gap-y-[10px] font-medium text-white/50 \">\n <li>\n Users can cancel their subscription at any time. Refunds are{\" \"}\n <span className=\"text-white \">not applicable</span> to\n subscriptions.\n </li>\n <li>\n After cancelling, users can access the subscribed content until the\n end of the{\" \"}\n <span className=\"text-white \">current billing month</span>. After\n this period, access to the content will be revoked.\n </li>\n </ol>\n </div>\n </div>\n );\n};\n\nexport default RefundCancellationPolicy;\n","import Alert from \"components/popup/Alert/Alert\";\nimport React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst AlreadyInAsset = () => {\n const navigate = useNavigate();\n return (\n <div className=\"min-h-screen\">\n {\" \"}\n <Alert\n open={true}\n canClose={false}\n heading=\"Failed\"\n message=\"Already in Assets\"\n buttonText=\"Go To My Assets\"\n onClose={() => navigate(\"/my-assets\")}\n isSuccess={false}\n />\n </div>\n );\n};\n\nexport default AlreadyInAsset;\n","import React, { useState, useEffect } from \"react\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport MyOrderItemModal from \"components/Modal/MyOrderItem/MyOrderItemModal\";\nimport OrderCart from \"../../../assets/images/order-cart.png\";\nimport Loader from \"components/Loader/Loader\";\nimport { useGetTicketListQuery } from \"store/slicer/HelpCenter\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst ListTickets = () => {\n const [isInviteModalStatus, setInviteModal] = useState(false);\n const [orderData, setOrderData] = useState([]);\n const [orderId, setOrderId] = useState(null);\n const [page, setPage] = useState(1);\n const { data, isLoading, isFetching, refetch } = useGetTicketListQuery({\n page: page,\n limit: 100000,\n });\n const navigate = useNavigate();\n const handleInviteModal = () => {\n setInviteModal(!isInviteModalStatus);\n };\n\n const onSeeDetailsHandler = (id) => {\n let filterData = orderData.filter((item) => item._id === id);\n setOrderData(filterData[0]);\n // Serialize the feedbackDetail object\n const serializedData = encodeURIComponent(JSON.stringify(filterData[0]));\n\n // Redirect with serialized object\n navigate(`/help-center/ticket-list/details?data=${serializedData}`);\n // setShowFeedbackModal(true);\n };\n\n useEffect(() => {\n if (page === 1) {\n if (data?.response?.statusEnum === 1) {\n setOrderData(data.response.data);\n }\n } else {\n if (data?.response?.data?.gateways?.length) {\n setOrderData((prevData) => [\n ...prevData,\n ...data.response.data.gateways,\n ]);\n }\n }\n }, [data]);\n\n useEffect(() => {\n refetch();\n }, [page]);\n return (\n <div className=\"__my_transaction__container__main mb-[100px] container mx-auto px-[15px] py-[50px] max-[768px]:px-[15px] max-[768px]:py-[40px] max-[1280px]:px-[15px] relative\">\n <ShadowFrame className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <ShadowFrame className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <button\n onClick={() => navigate(\"/help-center\")}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-[#000000d7] rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3 z-20\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n <div className=\"space-y-4 p-6 rounded-t-lg\">\n <div className=\"__trasaction__header__main relative\">\n <h4 className=\"font-heading text-[24px] max-[768px]:text-[18px]\">\n Help Center Tickets\n </h4>\n </div>\n <div className=\"__transaction__content__main h-[90%] relative \">\n {!isLoading && orderData && orderData.length > 0 && (\n <div className=\"__transaction__table__content_main w-[100%] mt-[30px] overflow-x-scroll\">\n <table className=\"table-auto w-full\">\n <thead>\n <tr className=\"[&>th]:text-[#FFFFFF99] [&>th]:font-normal [&>th]:text-[12px] [&>th]:text-left [&>th]:px-[10px] [&>th]:py-[10px] [&>th]:border-b [&>th]:border-b-[#8d8a8a80]\">\n <th>Ticket ID</th>\n <th>Title</th>\n <th>Date</th>\n <th>Status</th>\n <th>Action</th>\n </tr>\n </thead>\n <tbody>\n {orderData.map((_tr, index) => {\n return (\n <tr\n key={index}\n className=\"[&>td]:px-[10px] [&>td]:py-[18px] [&>td]:text-[14px] [&>td]:border-b [&>td]:border-b-[#5A5A5A80]\"\n >\n <td>{_tr?.ticketId}</td>\n <td>{_tr?.title}</td>\n <td>{new Date(_tr?.createdAt).toLocaleString()}</td>\n <td>\n {_tr?.status === 1 ? (\n <span className=\"text-[#56AA6D] font-medium\">\n Resolved\n </span>\n ) : (\n <span className=\"text-[#FF6458] font-medium\">\n Unresolved\n </span>\n )}\n </td>\n <td>\n <button\n className=\"border border-[#a5a3a3] hover:border-[#FBBC5E] bg-gradient-to-r hover:from-[#FBBC5E] hover:to-[#F3A151] hover:text-[#000] hover:font-bold w-[98px] br-[8px] text-[12px] font-bold font-body rounded-[6px]\"\n onClick={() => {\n onSeeDetailsHandler(_tr._id);\n }}\n >\n Manage\n </button>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n )}\n {!isLoading && orderData.length === 0 && (\n <div className=\"__transaction__empty__container flex flex-col mt-[200px] items-center h-[100%] max-[768px]:justify-start max-[768px]:pt-[30px] max-[1280px]:pt-[30px] max-[1280px]:justify-start gap-3\">\n <span className=\"text-[#FFFFFF99] text-[16px] font-medium font-body max-[768px]:text-[14px]\">\n No Tickets create yet!\n </span>\n </div>\n )}\n {isFetching && (\n <div className=\"__default_container mt-[20px] min-h-[300px] flex flex-col justify-center items-center\">\n <div className=\"__no_friend_container flex flex-col\">\n <h4 className=\"text-[16px] text-[#7A7A7A] font-body font-medium\">\n <Loader />\n </h4>\n </div>\n </div>\n )}\n {data?.response?.data?.gateways?.length === 10 && (\n <div className=\"flex justify-center mt-[30px]\">\n <button\n onClick={() => setPage(page + 1)}\n className=\"inline-flex border cursor-pointer text-sm md:text-base leading-none rounded-2xl border-sec btn-outline hover:text-black hover:font-semibold px-6 py-3 md:py-4 md:px-8 mt-6 font-medium\"\n >\n Load More\n </button>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default ListTickets;\n","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) => {\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n );\n },\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props,\n }),\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Paperclip\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTMuMjM0IDIwLjI1MiAyMSAxMi4zIiAvPgogIDxwYXRoIGQ9Im0xNiA2LTguNDE0IDguNTg2YTIgMiAwIDAgMCAwIDIuODI4IDIgMiAwIDAgMCAyLjgyOCAwbDguNDE0LTguNTg2YTQgNCAwIDAgMCAwLTUuNjU2IDQgNCAwIDAgMC01LjY1NiAwbC04LjQxNSA4LjU4NWE2IDYgMCAxIDAgOC40ODYgOC40ODYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/paperclip\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Paperclip = createLucideIcon('Paperclip', [\n ['path', { d: 'M13.234 20.252 21 12.3', key: '1cbrk9' }],\n [\n 'path',\n {\n d: 'm16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486',\n key: '1pkts6',\n },\n ],\n]);\n\nexport default Paperclip;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Send = createLucideIcon('Send', [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n]);\n\nexport default Send;\n","export function TicketDetails({ feedbackDetail, onReopen, onClose }) {\n return (\n <div className=\"space-y-4 p-6 rounded-t-lg\">\n <h2 className=\"font-heading text-[24px] max-[768px]:text-[18px]\">\n Ticket Details\n </h2>\n\n {/* <div className=\"grid gap-2 sm:max-w-[50vw] md:max-w-[30vw] lg:max-w-[20vw]\">\n <div className=\"flex justify-between\">\n <span className=\"text-zinc-400\">Ticket ID:</span>\n <span className=\"text-white\">{feedbackDetail?.ticketId}</span>\n </div>\n\n <div className=\"flex justify-between\">\n <span className=\"text-zinc-400\">Submitted by:</span>\n <div className=\"text-right\">\n <div className=\"text-white\">\n {feedbackDetail?.userData?.[0]?.firstName +\n \" \" +\n feedbackDetail?.userData?.[0]?.lastName || \"Samantha Neupane\"}\n </div>\n <div className=\"text-sm text-zinc-400\">\n {feedbackDetail?.userData?.[0]?.email}\n </div>\n </div>\n </div>\n\n <div className=\"flex justify-between\">\n <span className=\"text-zinc-400\">Date & Time:</span>\n <span className=\"text-white\">\n {(feedbackDetail &&\n FormatDateWithSlash(feedbackDetail?.createdAt)) ||\n \"12/10/2023\"}\n ,{\" \"}\n {(feedbackDetail && DateToPresentTime(feedbackDetail?.createdAt)) ||\n \"12:39 PM\"}\n </span>\n </div>\n\n <div className=\"flex justify-between items-center\">\n <span className=\"text-zinc-400\">Status:</span>\n <div className=\"flex gap-2\">\n <p\n className={`${\n feedbackDetail?.status === 1\n ? \"text-[#25B39E]\"\n : \"text-[#FA5F55]\"\n }`}\n >\n {feedbackDetail?.status === 1 ? \"Resolved\" : \"Unresolved\"}\n </p>\n </div>\n </div>\n </div> */}\n\n <div className=\"mt-[38px] flex justify-start items-center\">\n <p className=\"text-white/50 font-medium w-[20%]\">Ticket ID:</p>\n <div className=\"flex items-center gap-2 ml-[100px] w-[80%]\">\n <div className=\"text-start\">\n <p>{feedbackDetail?.ticketId}</p>\n </div>\n </div>\n </div>\n\n {/* <div className=\"mt-[48px] flex justify-between items-center\">\n <p className=\"text-white/50 font-medium w-[20%]\">Submitted by:</p>\n <div className=\"flex items-center gap-2 ml-[100px] w-[80%]\">\n <div className=\"text-start\">\n <p>\n {(feedbackDetail?.userData?.[0]?.firstName !== null\n ? feedbackDetail?.userData?.[0]?.firstName\n : \"\") +\n \" \" +\n (feedbackDetail?.userData?.[0]?.lastName !== null\n ? feedbackDetail?.userData?.[0]?.lastName\n : \"\")}\n </p>\n <p className=\"text-[12px] text-white/50\">\n {feedbackDetail?.userData?.[0]?.email || \"\"}\n </p>\n </div>\n </div>\n </div> */}\n\n <div className=\"mt-[38px] flex justify-start items-center\">\n <p className=\"text-white/50 font-medium w-[20%]\">Date & Time:</p>\n <div className=\"ml-[100px] w-[80%]\">\n <p>{new Date(feedbackDetail?.createdAt).toLocaleString()}</p>\n </div>\n </div>\n\n <div className=\"mt-[38px] flex justify-start items-center\">\n <p className=\"text-white/50 font-medium w-[20%]\">Status:</p>\n <div className=\"ml-[100px] w-[80%] \">\n <p\n className={`${\n feedbackDetail?.status === 1 ? \"text-[#25B39E]\" : \"text-[#FA5F55]\"\n }`}\n >\n {feedbackDetail?.status === 1 ? \"Resolved\" : \"Unresolved\"}\n </p>\n </div>\n </div>\n\n <div className=\"flex justify-end gap-2 pt-4\">\n {feedbackDetail?.status === 1 ? (\n <button\n onClick={onReopen}\n className=\"border px-[27px] py-[8px] rounded-[8px] border-[#FBBC5E] transition-all hover:bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] hover:text-[#000] font-semibold\"\n >\n Reopen Ticket\n </button>\n ) : (\n <button\n onClick={onClose}\n className=\"border px-[27px] py-[8px] rounded-[8px] border-[#FBBC5E] transition-all hover:bg-gradient-to-r from-[#FBBC5E] to-[#F3A151] hover:text-[#000] font-semibold\"\n >\n Close Ticket\n </button>\n )}\n {/* <Button variant=\"outline\" onClick={onReopen}>\n Reopen Ticket\n </Button>\n <Button onClick={onClose}>Close Ticket</Button> */}\n </div>\n </div>\n );\n}\n","import { Paperclip } from \"lucide-react\";\n\nexport function Message({ message }) {\n const isAdmin = message.sender === \"admin\";\n const extractAfterDoubleAsterisk = (url) => {\n try {\n // Decode the URL\n const decodedUrl = decodeURIComponent(url);\n\n // Extract the part after \"**\"\n if (decodedUrl.includes(\"**\")) {\n return decodedUrl.split(\"**\")[1];\n } else {\n throw new Error(\"Double asterisk '**' not found in the URL\");\n }\n } catch (error) {\n console.error(error.message);\n return url; // Return the whole URL if an error occurs\n }\n };\n return (\n <div\n className={`flex flex-col gap-2 ${!isAdmin ? \"items-end\" : \"items-start\"}`}\n >\n <div className=\"flex items-center font-bold gap-2 text-sm\">\n <span className={isAdmin ? \"text-[#FFBD62]\" : \"text-[#DB62C5]\"}>\n {isAdmin ? \"Admin Response\" : \"User query\"}\n </span>\n <span className=\"text-zinc-400\">\n {new Date(message.timestamp).toLocaleString()}\n </span>\n </div>\n\n <div\n className={`max-w-[80%] rounded-lg p-4 ${\n !isAdmin ? \"bg-[#283941]\" : \"bg-[#3A3A3A]\"\n }`}\n >\n <p className=\"text-white\">{message.content}</p>\n {message.screenshots && (\n <div className=\"flex items-center gap-2 mt-2 p-2 bg-[#253a44] rounded text-sm text-zinc-300\">\n <Paperclip className=\"w-4 h-4\" />\n <div className=\"w-[250px] max-w-full\">\n <div\n className=\"__UPLOADED_THUMB__ h-[160px] bg-[#3f3f3f] bg-no-repeat bg-center bg-contain\"\n style={{\n backgroundImage: `url(${message.screenshots})`,\n }}\n ></div>\n <p className=\"__UPLOADED_SMALL_THUMB_NAME__ text-start text-[10px] text-[#7A7A7A] leading-[14.5px] overflow-hidden text-ellipsis\">\n {extractAfterDoubleAsterisk(message.screenshots)}\n </p>\n </div>\n </div>\n )}\n {/* {message.screenshots?.map((attachment, index) => (\n <div\n key={index}\n className=\"flex items-center gap-2 mt-2 p-2 bg-[#30302F] rounded text-sm text-zinc-300\"\n >\n <Paperclip className=\"w-4 h-4\" />\n <span>{attachment}</span>\n </div>\n ))} */}\n </div>\n </div>\n );\n}\n","import Loader from \"components/Loader/Loader\";\nimport { Message } from \"./message/page\";\n\nexport function ChatHistory({ title, messages, isLoading }) {\n return (\n <div className=\"space-y-4\">\n <div className=\"bg-[#63636244] p-4 rounded-t-lg\">\n <h3 className=\"text-lg font-medium text-white\">Title: \"{title}\"</h3>\n </div>\n\n <div className=\"space-y-6 p-4 max-h-[70vh] overflow-y-auto showScrollbar custom-chat-container\">\n {!isLoading ? (\n <>\n {messages.map((message) => (\n <Message key={message.id} message={message} />\n ))}\n </>\n ) : (\n <div className=\"__channel__details__container__main px-[20px] py-[20px]\">\n <Loader />\n {/* <div className=\"__channel__details__container px-[15px] py-[28px] mt-[11px] rounded-[8px] bg-[#3A3A3A] flex md:gap-[21px]\">\n </div> */}\n </div>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { Paperclip, Send } from \"lucide-react\";\nimport { useNavigate, useSearchParams } from \"react-router-dom\";\nimport webRequestHandler from \"constant/api/apiInstance\";\nimport { EndpointsSlug } from \"constant/api/Endpoints\";\nimport { TicketDetails } from \"components/helpDesk/ticketDetails/page\";\nimport { ChatHistory } from \"components/helpDesk/chatHistory/page\";\nimport ShadowFrame from \"components/shadow-frame\";\nimport { removeFromS3 } from \"utils/s3\";\nimport ErrorAlert from \"utils/errorAlert\";\nimport { uploadToS3 } from \"utils/s3\";\nimport Loader from \"components/Loader/Loader\";\n// import { Button } from \"@/components/ui/button\";\n// import { Textarea } from \"@/components/ui/textarea\";\n\nconst timestamp = Date.now();\n\nexport default function Details() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const [feedbackDetail, setFeedbackDetail] = useState(null);\n const [messages, setMessages] = useState([]);\n const [newMessage, setNewMessage] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const instance = webRequestHandler();\n const [isTextareaPristine, setIsTextareaPristine] = useState(true);\n const screenshotInputRef = useRef(null);\n // const [screenshotPristine, setScreenshotPristine] = useState(true);\n const [screenshotLoading, setScreenshotLoading] = useState(false);\n const [screenshotPreview, setScreenshotPreview] = useState(\"\");\n const [screenshotFileName, setScreenshotFileName] = useState(\"\");\n const [screenshot, setScreenshot] = useState(null);\n\n const scrollToBottom = () => {\n // Select the chat container div\n const chatContainer = document.getElementsByClassName(\n \"custom-chat-container\"\n );\n // Scroll to the bottom\n if (chatContainer.length > 0) {\n chatContainer[0].scrollTop = chatContainer[0]?.scrollHeight;\n }\n };\n\n function scrollToAndClickTextarea() {\n // Get the textarea element by its ID, class, or any other selector\n const textarea = document.querySelector(\"#myTextarea\"); // Use an appropriate selector\n\n if (textarea) {\n // Scroll to the textarea element\n textarea.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n\n // Simulate a click on the textarea\n textarea.click();\n\n // Optionally focus the textarea (useful for user interaction)\n textarea.focus();\n } else {\n console.error(\"Textarea element not found!\");\n }\n }\n\n const fetchMessages = async (parsedData) => {\n // Simulate fetching data from an API\n setLoading(true);\n setMessages([]);\n try {\n const r = await instance.get(\n `${EndpointsSlug.GET_SINGLE_FEEDBACK(parsedData?.ticketId)}`\n );\n if (r.response.data.messages) {\n const newData = r.response.data.messages;\n setFeedbackDetail((prevDetail) => ({\n ...prevDetail,\n status: r.response.data.status,\n }));\n if (newData.length > 0) {\n setMessages(newData);\n } else {\n // Taking Care of the OLD Tickets\n const message = {\n id: String(1),\n sender: \"user\",\n content: parsedData?.description,\n timestamp: new Date(parsedData?.updatedAt).toISOString(),\n };\n setMessages([message]);\n }\n }\n } catch (error) {\n console.error(\"Error while fetching admin feedback messages\", error);\n } finally {\n setLoading(false);\n }\n };\n\n const changeTicketStatus = async (status) => {\n // Simulate fetching data from an API\n if (feedbackDetail?.status === 0) {\n // setMessages([]);\n try {\n const r = await instance.post(EndpointsSlug.CHANGE_STATUS_FEEDBACK, {\n ticketId: feedbackDetail?.ticketId,\n // userId: feedbackDetail?.userData[0]?._id,\n // status: status,\n });\n if (r.response.statusEnum === 1) {\n setFeedbackDetail({ ...feedbackDetail, status: 1 });\n setIsTextareaPristine(true)\n \n }\n } catch (error) {\n console.error(\"Error while fetching admin feedback list\", error);\n } finally {\n setLoading(false);\n }\n } else {\n setIsTextareaPristine(false);\n scrollToAndClickTextarea();\n }\n };\n\n const handleSendMessage = async () => {\n if (!newMessage.trim()) return;\n try {\n const message = {\n id: String(messages.length + 1),\n sender: \"user\",\n content: newMessage,\n timestamp: new Date().toISOString(),\n screenshots: screenshot?.url,\n };\n\n setNewMessage(\"\");\n setScreenshot(null);\n setScreenshotPreview(null);\n setScreenshotFileName(null);\n\n console.log(\"messStarted\", message);\n\n const r = await instance.post(EndpointsSlug.SEND_FEEDBACK, {\n ticketId: feedbackDetail?.ticketId,\n content: message.content,\n screenshots: screenshot?.url,\n });\n if (r.response.statusEnum === 1) {\n setMessages([...messages, message]);\n setFeedbackDetail({ ...feedbackDetail, status: 0 });\n }\n } catch (error) {\n console.error(\"Error while fetching admin feedback list\", error);\n } finally {\n // setLoading(false);\n }\n };\n\n const handleKeyDown = (e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n handleSendMessage();\n }\n };\n\n const removeScreenshot = () => {\n removeFromS3(\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n screenshot.fileName\n );\n setScreenshot(null);\n setScreenshotPreview(null);\n setScreenshotFileName(null);\n };\n\n const onScreenshotInputChange = (ev) => {\n setScreenshotLoading(true);\n // setScreenshotPristine(false);\n const items = ev.target.files;\n if (items.length > 0) {\n const file = items[0];\n const type = file.type;\n // dropped something other than an image\n if (\n type !== \"image/png\" &&\n type !== \"image/jpg\" &&\n type !== \"image/jpeg\"\n ) {\n ErrorAlert(\"Please upload image only.\");\n return;\n }\n\n // to show thumbnail preview\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (e) => {\n // Image Validation\n const img = new Image();\n img.src = e.target.result;\n img.onload = () => {\n // Delete if there is any thumbnail\n if (screenshot?.fileName) removeScreenshot();\n\n // Upload to s3\n uploadToS3(\n file,\n `${process.env.REACT_APP_AWS_S3_BUCKET_NAME}/help-center`,\n timestamp + \"**\" + file.name\n )\n .then((s3upload) => {\n setScreenshotPreview(e.target.result);\n setScreenshotFileName(file.name);\n setScreenshot({\n url: s3upload.Location,\n fileName: timestamp + \"**\" + file.name,\n });\n })\n .catch((error) => {\n console.log(\"Error while uploading bug screenshot\", error);\n })\n .finally(() => {\n setScreenshotLoading(false);\n });\n };\n };\n }\n };\n\n useEffect(() => {\n const dataParam = searchParams.get(\"data\");\n\n if (dataParam) {\n try {\n const parsedData = JSON.parse(decodeURIComponent(dataParam));\n setFeedbackDetail(parsedData); // Update feedbackDetail state\n fetchMessages(parsedData); // Call fetchMessages with the parsed data\n } catch (error) {\n console.error(\"Failed to parse dataParam:\", error);\n }\n }\n }, [searchParams]);\n\n useEffect(() => {\n scrollToBottom();\n }, [messages]);\n\n // useEffect(() => {\n // if (feedbackDetail)\n // }, [feedbackDetail]);\n\n return (\n <div className=\"__my_transaction__container__main mb-[100px] container mx-auto px-[15px] py-[50px] max-[768px]:px-[15px] max-[768px]:py-[40px] max-[1280px]:px-[15px] relative\">\n <ShadowFrame className=\"z-[0] w-[350px] md:w-[250px] h-[350px] md:h-[400px] rounded-[250px] md:rounded-[400px] left-[-10%] max-[768px]:left-[-50%] top-[50%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <ShadowFrame className=\"z-[0] w-[250px] md:w-[250px] h-[250px] md:h-[400px] rounded-[250px] md:rounded-[400px] right-[10%] max-[768px]:right-[50%] top-[60%] max-[768px]:top-[10%] translate-x-1/2 bottom-0 !bg-[#FFE9C9]\" />\n <div className=\"min-h-screen text-white \">\n <button\n onClick={() => navigate(\"/help-center/ticket-list\")}\n className=\"inline-flex gap-2 text-white font-semibold text-xs md:text-sm leading-normal bg-white/[0.10] hover:bg-white/[0.90] hover:text-[#000000d7] rounded-3xl py-1.5 px-1.5 pr-3 items-center top-3 left-3 z-20\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.5 15L7.5 10L12.5 5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span>Back</span>\n </button>\n <div className=\"m-auto\">\n <TicketDetails\n feedbackDetail={feedbackDetail}\n onReopen={() => changeTicketStatus(0)}\n onClose={() => changeTicketStatus(1)}\n />\n <div className=\" my-5 max-w-[80%] mx-auto\">\n <p className=\"text-white font-semibold mb-2 mt-[-40px]\">\n Chat History\n </p>\n <div className=\"border-[0.5px] rounded-lg border-[#636362]\">\n <ChatHistory\n title={feedbackDetail?.title}\n messages={messages}\n isLoading={loading}\n />\n\n <div className=\"p-0 bg-zinc-800/50\">\n <div className=\"flex gap-2\">\n <div className=\"flex !w-full items-center border-none p-0 rounded-b-lg\">\n <div className={`bg-[#32323149] h-full border-t ${screenshotPreview ||\n (isTextareaPristine && feedbackDetail?.status)?\"border-t-[#868789]\":\"border-t-gray-200\"} `}>\n {screenshotLoading?\n <div className=\"px-3 mt-2 ml-1 rounded-full py-3\">\n <Loader />\n </div>\n :<button\n onClick={() => {\n // setScreenshotPristine(false);\n screenshotInputRef.current.click();\n }}\n className=\"px-3 mt-2 ml-1 rounded-full py-3\"\n disabled={\n screenshotPreview ||\n (isTextareaPristine && feedbackDetail?.status)\n }\n >\n <Paperclip\n className={`h-5 w-5 ${\n screenshotPreview ||\n (isTextareaPristine && feedbackDetail?.status)\n ? \"text-[#5e5d5d]\"\n : \"text-[#FBBC5E]\"\n }`}\n />\n </button>}\n <input\n ref={screenshotInputRef}\n className=\"absolute opacity-0 pointer-events-none\"\n type=\"file\"\n name=\"\"\n id=\"\"\n accept=\"image/png, image/jpeg, image/jpg\"\n onChange={onScreenshotInputChange}\n // value={(e) => e.target.name}\n />\n </div>\n <div className=\"relative flex-grow\">\n <textarea\n placeholder=\"Type the message ...\"\n id=\"myTextarea\"\n data-test-id=\"myTextarea\"\n className=\"bg-[#32323186] placeholder-gray-200 text-white text-base font-normal px-3 py-4 rounded-b-lg border-t border-t-gray-200 focus:outline-none disabled:opacity-50 resize-none w-full h-full\"\n disabled={isTextareaPristine && feedbackDetail?.status}\n onKeyDown={handleKeyDown}\n rows={\"3\"}\n value={newMessage}\n onChange={(e) => setNewMessage(e.target.value)}\n />\n\n {/* Image Preview */}\n {screenshotPreview && (\n <div className=\"absolute bottom-2 right-2 flex items-center gap-2 bg-[#3f3f3f] p-2 rounded-md shadow-lg border border-[#707070]\">\n <div\n className=\"w-[40px] h-[40px] bg-center bg-cover bg-no-repeat rounded\"\n style={{\n backgroundImage: `url(${screenshotPreview})`,\n }}\n ></div>\n <div>\n <p className=\"text-[10px] text-[#7A7A7A] truncate\">\n {screenshotFileName}\n </p>\n <div className=\"flex gap-2\">\n <button\n className=\"text-[10px] text-blue-500 font-bold\"\n type=\"button\"\n onClick={() =>\n screenshotInputRef.current.click()\n }\n >\n Replace\n </button>\n <button\n className=\"text-[10px] text-red-500 font-bold\"\n type=\"button\"\n onClick={removeScreenshot}\n >\n Delete\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n <div className={`bg-[#32323149] h-full border-t ${screenshotPreview ||\n (isTextareaPristine && feedbackDetail?.status)?\"border-t-[#868789]\":\"border-t-gray-200\"} `}>\n <button\n onClick={handleSendMessage}\n className=\"px-3 bg-[#FBBC5E] disabled:bg-[#5e5d5d] mt-5 mr-1 rounded-full py-3\"\n disabled={isTextareaPristine && feedbackDetail?.status}\n >\n <Send className=\"h-5 w-5 text-black\" />\n </button>\n </div>\n </div>\n {/* <textarea\n value={newMessage}\n onChange={(e) => setNewMessage(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder=\"Type response here...\"\n className=\"min-h-[50px] border-[#636362] text-white\"\n /> */}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\n// /* eslint-disable no-unused-vars */\n\nimport Home from \"pages/home/Index\";\nimport Genevieve from \"pages/genevieve/Index\";\nimport FSTRPage from \"pages/fstr/Index\";\nimport Marketplace from \"pages/marketplace/Index\";\nimport ApartmentPage from \"pages/marketplace/apartments/Index\";\nimport ShipPage from \"pages/marketplace/ships/Index\";\nimport ClothingPage from \"pages/marketplace/clothing/Index\";\nimport CompanionPage from \"pages/marketplace/companions/Index\";\nimport CompanionsList from \"pages/marketplace/companions/CompanionsList\";\nimport CompanionDetail from \"pages/marketplace/companions/detail/Index.jsx\";\nimport AvatarPage from \"pages/marketplace/avatars/Index\";\nimport GamingPage from \"pages/marketplace/games/Index\";\nimport ApartmentDetail from \"pages/marketplace/apartments/detail/Index.jsx\";\nimport ClothingDetail from \"pages/marketplace/clothing/detail/Index.jsx\";\nimport AvatarDetail from \"pages/marketplace/avatars/detail/Index.jsx\";\nimport ShipsDetail from \"pages/marketplace/ships/detail/Index.jsx\";\nimport EntertainmentPage from \"pages/marketplace/entertainment/Index\";\nimport EventsPage from \"pages/marketplace/entertainment/events/Events\";\n// import EntertainmentChannel from 'pages/marketplace/entertainment/channel/Index.jsx';\nimport SignUp from \"pages/auth/signup\";\nimport Layout from \"layout/Index.jsx\";\nimport AuthLayout from \"AuthLayout/index\";\nimport BeforeLoginLayout from \"BeforeLoginLayout/index\";\nimport SignIn from \"pages/auth/signin\";\nimport ForgotPassword from \"pages/auth/forgot-password\";\nimport OtpVerification from \"pages/auth/forgot-password/otp-verification\";\nimport ConfirmPassword from \"pages/auth/forgot-password/confirm-password\";\nimport { MyAssets } from \"pages/myassets\";\nimport Subscriptions from \"pages/subscriptions/Index\";\nimport InviteHome from \"pages/friends/InviteHome\";\nimport MyProfile from \"pages/myprofile/MyProfile\";\nimport EntertainmentVideo from \"pages/marketplace/entertainment/list/Index\";\nimport ChannelContent from \"pages/marketplace/entertainment/channel/Index\";\nimport EntertainmentContent from \"pages/marketplace/entertainment/content/Index\";\n// import MarketDetailPage from \"components/detailPage/MarketDetailPage\"; // for clothing and avatar\nimport MusicContent from \"pages/marketplace/entertainment/content/Music\";\nimport GameCategory from \"pages/marketplace/games/Category/GameCategory\";\nimport AddDetails from \"pages/auth/signup/addDetails/Index\";\nimport SelectPreferences from \"pages/auth/signup/selectPreferences/Index\";\nimport AddTags from \"pages/auth/signup/addTags/Index\";\nimport OnBoardingComplete from \"pages/auth/signup/onBoardingComplete/Index\";\nimport { Provider } from \"react-redux\";\nimport { LocalStore } from \"store/LocalStore\";\nimport ProtectedRoute from \"services/auth/ProtectedRoute\";\nimport MyTransaction from \"pages/mytransaction/MyTransaction\";\nimport MyPreference from \"pages/myprofile/preference/MyPreference\";\nimport GameCategoryDetail from \"pages/marketplace/games/detail/GameCategoryDetail\";\nimport MyNotification from \"pages/notification/MyNotification\";\nimport SingleNotification from \"pages/notification/detail/SingleNotification\";\nimport Cart from \"pages/cart/Cart\";\nimport EventDetail from \"pages/marketplace/entertainment/events/detail/EventDetail\";\n// import { GlobalStore } from \"store/GlobalStore\";\nimport AvatarsList from \"pages/marketplace/avatars/AvatarsList\";\nimport Checkout from \"pages/checkout/Checkout\";\nimport CheckoutFSTR from \"pages/checkout/CheckoutFSTR\";\nimport InitiatePayment from \"pages/checkout/InitiatePayment\";\nimport CheckoutSuccess from \"pages/checkout/Success\";\nimport CheckoutFailed from \"pages/checkout/Failed\";\nimport Wallet from \"pages/wallet/Index\";\n// import { Ships } from 'components/assets/myassets';\nimport PrivacyPolicy from \"pages/privacyPolicy/Index\";\nimport CookiePolicy from \"pages/cookiePolicy/Index\";\nimport TermCondition from \"pages/termCondition/Index\";\nimport SideQuest from \"pages/sidequest/Index\";\nimport HelpCenter from \"pages/helpCenter\";\nimport RequestTicket from \"pages/helpCenter/requestTicket\";\nimport ReportBug from \"pages/helpCenter/reportBug\";\nimport RequestFeature from \"pages/helpCenter/requestFeature\";\nimport RefundCancellationPolicy from \"pages/refundCancellationPolicy'\";\nimport AlreadyInAsset from \"pages/checkout/AlreadyInAsset\";\nimport ListTickets from \"pages/helpCenter/listTickets\";\nimport Details from \"pages/helpCenter/details\";\n\n/* The code is exporting a default function that returns an array of route objects. Each route object\nrepresents a specific route in a web application. */\n// eslint-disable-next-line\n// export default function () {\nconst routes = [\n {\n name: \"Home\",\n key: \"home\",\n route: \"/\",\n component: <Home />,\n useLayout: <Layout />,\n },\n {\n name: \"Genevieve\",\n key: \"genevieve\",\n route: \"/genevieve\",\n component: <Genevieve />,\n useLayout: <Layout />,\n },\n {\n name: \"FSTR\",\n key: \"fstr\",\n route: \"/fstr\",\n component: <FSTRPage />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace\",\n key: \"marketplace\",\n route: \"/marketplace\",\n component: <Marketplace value=\"0\" element={<ApartmentPage />} />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Apartments\",\n key: \"marketplace-apartments\",\n route: \"/marketplace/apartments\",\n component: <Marketplace value=\"0\" element={<ApartmentPage />} />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Apartments-Details\",\n key: \"marketplace-apartments-details\",\n route: \"/marketplace/apartments/:apartmentId/:apartment_name\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"0\" element={<ApartmentDetail />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Ships\",\n key: \"marketplace-ships\",\n route: \"/marketplace/ships\",\n component: <Marketplace value=\"1\" element={<ShipPage />} />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Ships-Details\",\n key: \"marketplace-ships-details\",\n route: \"/marketplace/ships/:shipid/:ship_name\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"1\" element={<ShipsDetail />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Entertainment\",\n key: \"marketplace-entertainment\",\n route: `/marketplace/entertainment/`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<EntertainmentPage />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n\n {\n name: \"Marketplace-Entertainment\",\n key: \"marketplace-entertainment\",\n route: `/marketplace/entertainment/:activeTab`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<EntertainmentVideo />} />\n </Provider>\n ),\n // component: <EntertainmentVideo value=\"2\" />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Events\",\n key: \"marketplace-events\",\n route: `/marketplace/entertainment/events/:activeTab`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<EventsPage />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Event-Details\",\n key: \"marketplace-event-details\",\n route: `/marketplace/entertainment/event/:id`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<EventDetail />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Entertainment\",\n key: \"marketplace-entertainment\",\n // route: `/marketplace/entertainment/:type/:channelId`,\n route: `/marketplace/entertainment/channels/:channelId`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<ChannelContent />} />,\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Entertainment\",\n key: \"marketplace-entertainment\",\n // route: `/marketplace/entertainment/:type/:channelId`,\n route: `/marketplace/entertainment/channels/:channelId/:tabId`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<ChannelContent />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n // {\n // name: 'Marketplace-Channel',\n // key: 'marketplace-channel',\n // route: `/marketplace/entertainment/:type/:channelId`,\n // component: <EntertainmentChannel />,\n // useLayout: <Layout />,\n // },\n\n {\n name: \"Marketplace-Entertainment\",\n key: \"marketplace-entertainment\",\n // route: `/marketplace/entertainment/music/content`,\n route: `/marketplace/entertainment/content/music/:channelId/:contentId`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<MusicContent />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Channel\",\n key: \"marketplace-channel\",\n // route: `/marketplace/entertainment/:type/:channelId/:channelContentId`,\n route: `/marketplace/entertainment/content/:type/:channelId/:contentId`,\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"2\" element={<EntertainmentContent />} />\n </Provider>\n ),\n // component: <EntertainmentChannel />,\n useLayout: <Layout />,\n },\n\n {\n name: \"Marketplace-Clothing\",\n key: \"marketplace-clothing\",\n route: \"/marketplace/clothing\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"4\" element={<ClothingPage />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Clothing-Detail\",\n key: \"marketplace-clothing-detail\",\n route: \"/marketplace/clothing/:categorytype/:item\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"4\" element={<ClothingDetail />} />\n </Provider>\n ),\n // component: <MarketDetailPage id=\"Clothing\" value=\"3\" />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Games\",\n key: \"marketplace-games\",\n route: \"/marketplace/gaming\",\n component: <Marketplace value=\"6\" element={<GamingPage />} />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Games-Category\",\n key: \"marketplace-games-category\",\n route: \"/marketplace/gaming/:category\",\n component: <GameCategory value=\"6\" defaultRoute=\"all\" />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Games-Category-Detail\",\n key: \"marketplace-games-category-detail\",\n route: \"/marketplace/gaming/:category/:item\",\n component: <Marketplace value=\"6\" element={<GameCategoryDetail />} />,\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Companions\",\n key: \"marketplace-companions\",\n route: \"/marketplace/companions\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"5\" element={<CompanionPage />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Companions-Category-Wise-List\",\n key: \"marketplace-companions-category-wise-list\",\n route: \"/marketplace/companions/:categorytype/\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace id=\"Companions\" value=\"5\" element={<CompanionsList />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Companions-Detail\",\n key: \"marketplace-companions-detail\",\n route: \"/marketplace/companions/:categorytype/:item\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace id=\"Companions\" value=\"5\" element={<CompanionDetail />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Avatars\",\n key: \"marketplace-Avatars\",\n route: \"/marketplace/avatars\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"3\" element={<AvatarPage />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Avatars-Detail\",\n key: \"marketplace-avatars-detail\",\n route: \"/marketplace/avatars/:categorytype/:item\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace value=\"3\" element={<AvatarDetail />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Marketplace-Avatars-Detail\",\n key: \"marketplace-avatars-detail\",\n route: \"/marketplace/avatars/:categorytype/\",\n component: (\n <Provider store={LocalStore}>\n <Marketplace id=\"Avatars\" value=\"3\" element={<AvatarsList />} />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Create-Account\",\n key: \"Create-Account\",\n route: \"/signup\",\n component: <SignUp />,\n useLayout: <BeforeLoginLayout />,\n },\n {\n name: \"Add-Details\",\n key: \"Add-Details\",\n route: \"/add-details\",\n component: (\n <Provider store={LocalStore}>\n <AddDetails />\n </Provider>\n ),\n useLayout: <AuthLayout />,\n },\n {\n name: \"Select-Preferences\",\n key: \"Select-Preferences\",\n route: \"/select-preferences\",\n component: (\n <Provider store={LocalStore}>\n <SelectPreferences />\n </Provider>\n ),\n useLayout: <AuthLayout />,\n },\n {\n name: \"Add-Tags\",\n key: \"Add-Tags\",\n route: \"/add-tags\",\n component: (\n <Provider store={LocalStore}>\n <AddTags />\n </Provider>\n ),\n useLayout: <AuthLayout />,\n },\n {\n name: \"Onboarding-Complete\",\n key: \"Onboarding-Complete\",\n route: \"/onboarding-complete\",\n component: (\n <Provider store={LocalStore}>\n <OnBoardingComplete />\n </Provider>\n ),\n useLayout: <AuthLayout onBoardingComplete={true} />,\n },\n {\n name: \"Wallet-Connect-Page\",\n key: \"Wallet-Connect-Page\",\n route: \"/wallet\",\n component: (\n <Provider store={LocalStore}>\n <Wallet />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Checkout-Page\",\n key: \"Checkout-Page\",\n route: \"/checkout\",\n component: (\n <Provider store={LocalStore}>\n <Checkout />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Checkout-FSTR-Page\",\n key: \"Checkout-FSTR-Page\",\n route: \"/checkoutfstr\",\n component: (\n <Provider store={LocalStore}>\n <CheckoutFSTR />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Checkout-Initiate-Payment-Page\",\n key: \"Checkout-Initiate-Payment-Page\",\n route: \"/initiatepayment\",\n component: (\n <Provider store={LocalStore}>\n <InitiatePayment />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Checkout-Success-Page\",\n key: \"Checkout-Success\",\n route: \"/checkout/success\",\n component: (\n <Provider store={LocalStore}>\n <CheckoutSuccess />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Checkout-Already-In-Asset\",\n key: \"Checkout-Already-In-Asset\",\n route: \"/checkout/already-in-asset\",\n component: (\n <Provider store={LocalStore}>\n <AlreadyInAsset />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Checkout-Failed-Page\",\n key: \"Checkout-Failed-Page\",\n route: \"/checkout/cancelled\",\n component: (\n <Provider store={LocalStore}>\n <CheckoutFailed />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Login\",\n key: \"Login\",\n route: \"/signin\",\n component: <SignIn />,\n useLayout: <BeforeLoginLayout />,\n },\n {\n name: \"OTP-Verify\",\n key: \"OTP-Verify\",\n route: \"/otp-verification\",\n component: <OtpVerification />,\n useLayout: <AuthLayout />,\n },\n {\n name: \"Forgot-Password\",\n key: \"Forgot-Password\",\n route: \"/forgot-password\",\n component: <ForgotPassword />,\n useLayout: <AuthLayout />,\n },\n\n {\n name: \"Reset-Password\",\n key: \"Reset-Password\",\n route: \"/reset-password\",\n component: <ConfirmPassword />,\n useLayout: <AuthLayout />,\n },\n {\n name: \"MyAssets\",\n key: \"my-assets\",\n route: \"/my-assets\",\n component: (\n <ProtectedRoute>\n <MyAssets />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Subscriptions\",\n key: \"subscriptions\",\n route: \"/my-assets/subscriptions\",\n component: (\n <ProtectedRoute>\n <Subscriptions />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"MyFriend\",\n key: \"my-friend\",\n route: \"/friends\",\n component: (\n <ProtectedRoute>\n <InviteHome />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"MyProfile\",\n key: \"my-profile\",\n route: \"/me\",\n component: (\n <ProtectedRoute>\n <MyProfile />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"MyTransaction\",\n key: \"my-transaction\",\n route: \"/me/transaction\",\n component: (\n <ProtectedRoute>\n <MyTransaction />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"Cart\",\n key: \"cart\",\n route: \"/cart\",\n component: (\n <ProtectedRoute>\n <Cart />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"MyPreference\",\n key: \"my-preference\",\n route: \"/me/edit/preference\",\n component: (\n <ProtectedRoute>\n <MyPreference />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"MyNotification\",\n key: \"my-notification\",\n route: \"/me/all/notification\",\n component: (\n <ProtectedRoute>\n <MyNotification />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"MySingleNotification\",\n key: \"my-single-notification\",\n route: \"/me/notification/:notifyId\",\n component: (\n <ProtectedRoute>\n <SingleNotification />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"PrivacyPolicy\",\n key: \"privacypolicy\",\n route: \"/privacy-policy\",\n component: <PrivacyPolicy />,\n useLayout: <Layout />,\n },\n {\n name: \"CookiePolicy\",\n key: \"cookiePolicy\",\n route: \"/cookie-policy\",\n component: <CookiePolicy />,\n useLayout: <Layout />,\n },\n {\n name: \"TermCondition\",\n key: \"termcondition\",\n route: \"/terms-condition\",\n component: <TermCondition />,\n useLayout: <Layout />,\n },\n {\n name: \"SideQuest\",\n key: \"sidequest\",\n route: \"/sidequest\",\n component: <SideQuest />,\n useLayout: <Layout />,\n },\n {\n name: \"HelpCenter\",\n key: \"helpcenter\",\n route: \"/help-center\",\n component: <HelpCenter />,\n useLayout: <Layout />,\n },\n {\n name: \"HelpCenterTickets\",\n key: \"helpcentertickets\",\n route: \"/help-center/ticket-list\",\n component: (\n <ProtectedRoute>\n <ListTickets />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"HelpCenterTicketDetails\",\n key: \"helpcenterticketdetails\",\n route: \"/help-center/ticket-list/details\",\n component: (\n <ProtectedRoute>\n <Details />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"RequestTicket\",\n key: \"requestticket\",\n route: \"/request-ticket\",\n component: (\n <Provider store={LocalStore}>\n <RequestTicket />\n </Provider>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"ReportBug\",\n key: \"reportbug\",\n route: \"/report-bug\",\n component: (\n <ProtectedRoute>\n <ReportBug />\n </ProtectedRoute>\n ),\n useLayout: <Layout />,\n },\n {\n name: \"RequestFeature\",\n key: \"requestfeature\",\n route: \"/request-feature\",\n component: <RequestFeature />,\n useLayout: <Layout />,\n },\n {\n name: \"RefundCancellationPolicy\",\n key: \"refundcancellation\",\n route: \"/refund-cancellation-policy\",\n component: <RefundCancellationPolicy />,\n useLayout: <Layout />,\n },\n];\n\nexport { routes };\n// }\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io <craig@shadowcast.io>\n *------------------------------------------------------\n *@module user\n *@developer Sameer <sameer@shadowcast.io>\n */\n\nimport { useEffect, useState } from \"react\";\nimport { Routes, Route, Navigate, useLocation } from \"react-router-dom\";\n// import { createTheme } from '@mui/material';\n\nimport { routes } from \"./routes\";\nimport ReactGA from \"react-ga4\";\nimport axios from \"axios\";\n\nimport \"./globals.css\";\nimport { Helmet } from \"react-helmet\";\n// import Header from 'components/header/Index.jsx';\n// import SideBar from 'components/sidebar/Index.jsx';\n// import Layout from 'layout/Index.jsx';\n// import Footer from 'components/footer/Index.jsx';\n\n/**\n * The App function is a React component that renders a sidebar and routes based on the current\n * pathname.\n * @returns The App component is returning JSX code. It includes a SideBar component with children that\n * consist of a Routes component. Inside the Routes component, there are multiple Route components\n * being rendered based on the result of the getRoutes function. Additionally, there is a Route\n * component with a path of \"/*\" that renders a Navigate component.\n */\n\nfunction App() {\n const { pathname } = useLocation();\n const currentEnv = process.env.REACT_APP_ENVIRONMENT;\n const [accessGranted, setAccessGranted] = useState(\n currentEnv !== \"main\" ? null : true\n );\n const GOOGLE_ANALYTICS_MEASUREMENT_ID =\n process.env.REACT_APP_GOOGLE_ANALYTICS_MEASUREMENT_ID;\n const getRoutes = (allRoutes) =>\n allRoutes.map((route) => {\n return (\n <Route path=\"/\" element={route.useLayout} key={route.key}>\n <Route path={route.route} element={route.component} />\n </Route>\n );\n });\n\n const UID = \"userID\" + JSON.parse(localStorage.getItem(\"userInfo\"))?.id;\n // useEffect(() => {\n // console.log(\"hgdgfd\", UID);\n // }, [UID]);\n\n useEffect(() => {\n // console.log(\"GOOGLE_ANALYTICS_MEASUREMENT_ID=============>\",GOOGLE_ANALYTICS_MEASUREMENT_ID)\n ReactGA.initialize(GOOGLE_ANALYTICS_MEASUREMENT_ID, {\n gaOptions: {\n userId: UID,\n },\n });\n // Send pageview with a custom path\n ReactGA.send({\n hitType: \"pageview\",\n page: pathname,\n });\n\n document.documentElement.scrollTop = 0;\n document.scrollingElement.scrollTop = 0;\n }, [pathname]);\n useEffect(() => {\n if (currentEnv !== \"main\") {\n const fetchIPList = async () => {\n const { data: ipList } = await axios.get(\n `https://fourthstar-staticcontent.s3.us-east-1.amazonaws.com/whilistedIP.json`\n );\n const { data: ipInfo } = await axios.get(\n \"https://api.ipify.org?format=json\"\n );\n\n const allowedIPs = ipList[currentEnv];\n const clientIP = ipInfo.ip;\n\n if (allowedIPs.includes(clientIP)) {\n setAccessGranted(true);\n } else {\n setAccessGranted(false);\n }\n };\n\n fetchIPList();\n }\n }, []);\n\n if (accessGranted === null) return <p>Loading...</p>;\n if (!accessGranted) return <p>403 - Access Denied</p>;\n if (process.env.REACT_APP_CONSOLE_LOGS == \"false\") {\n console.log = () => {};\n console.warn = () => {};\n console.error = () => {};\n console.debug = () => {};\n }\n const getHelmetTitle = () => {\n switch (true) {\n // Specific routes\n case pathname === \"/\":\n return \"The New Entertainment Frontier\";\n\n case pathname === \"/signin\":\n return \"Sign In\";\n\n case pathname === \"/signup\":\n return \"Sign Up\";\n\n case pathname === \"/forgot-password\":\n return \"Forgot Password\";\n\n case pathname === \"/me\":\n return \"Profile\";\n\n case pathname === \"/settings\":\n return \"Settings\";\n\n case pathname === \"/wallet\":\n return \"Wallet\";\n\n case pathname === \"/my-assets/subscriptions\":\n return \"Manage Subscriptions\";\n\n case pathname === \"/my-assets\":\n return \"Assets\";\n\n case pathname === \"/friends\":\n return \"Friends\";\n\n case pathname.startsWith(\"/help-center\"):\n return \"Help Center\";\n\n case pathname === \"/me/all/notification\":\n return \"Notifications\";\n\n case pathname === \"/cart\":\n return \"Cart\";\n\n case pathname === \"/checkout\":\n return \"Checkout\";\n\n case pathname === \"/sidequest\":\n return \"Download\";\n // Marketplace routes (more specific routes first)\n case pathname.startsWith(\"/marketplace/entertainment/events\"):\n return \"Marketplace Events\";\n\n case pathname.startsWith(\"/marketplace/entertainment/channels\"):\n return \"Marketplace Channels\";\n\n case pathname.startsWith(\"/marketplace/entertainment\"):\n return \"Marketplace Entertainment\";\n\n case pathname.startsWith(\"/marketplace/ships\"):\n return \"Marketplace Ships\";\n\n case pathname.startsWith(\"/marketplace/apartments\"):\n return \"Marketplace Apartments\";\n\n case pathname.startsWith(\"/marketplace/avatars\"):\n return \"Marketplace Avatars\";\n\n case pathname.startsWith(\"/marketplace/clothing\"):\n return \"Marketplace Clothing\";\n\n case pathname.startsWith(\"/marketplace/companions\"):\n return \"Marketplace Companions\";\n\n case pathname.startsWith(\"/marketplace/gaming\"):\n return \"Marketplace Games\";\n\n case pathname.startsWith(\"/marketplace\"):\n return \"Marketplace\";\n\n // Default\n default:\n return \"The New Entertainment Frontier\";\n }\n };\n\n return (\n <>\n {/* Use Helmet to dynamically set the title */}\n <Helmet>\n <meta charSet=\"utf-8\" />\n <title>Fourth Star | {getHelmetTitle()}\n \n \n\n {/* \n {getRoutes(routes())}\n } />\n \n }\n > */}\n {/* \n {getRoutes(routes)}\n } />\n \n }\n /> */}\n \n {getRoutes(routes)}\n {/* } /> */}\n \n \n );\n}\n\nexport default App;\n","// src/setupEnv.js\nconst setupEnv = () => {\n window.NREUM = window.NREUM || {};\n window.NREUM.loader_config = JSON.parse(\n process.env.REACT_APP_NREUM_LOADER_CONFIG || \"{}\"\n );\n window.NREUM.info = JSON.parse(process.env.REACT_APP_NREUM_INFO || \"{}\");\n};\n\nexport default setupEnv;\n","/**\n * This file is part of FourthStar User Dashboard\n *(c) 2023 ShadowCast.Io \n *------------------------------------------------------\n *@module user\n *@developer Sameer \n */\n\nimport React from \"react\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport ReactDOM from \"react-dom/client\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { Toaster } from \"react-hot-toast\";\nimport \"assets/css/style.css\";\nimport \"assets/css/media.css\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport { GlobalStore } from \"store/GlobalStore.js\";\nimport { Provider } from \"react-redux\";\nimport { GoogleOAuthProvider } from \"@react-oauth/google\";\nimport setupEnv from \"./components/setupEnv\";\nimport { WebSocketProvider } from \"services/socket\";\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\n/* The `root.render()` method is rendering the main component of the application, ``, inside a\n`` component. The `` component is used for client-side routing in\nReact applications. The `` component is a development mode only feature that helps\nidentify potential problems in the application. It performs additional checks and warnings to ensure\nthat the code follows best practices. */\nsetupEnv();\nroot.render(\n \n \n \n \n \n \n \n \n \n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n// reportWebVitals();\n"],"names":["StyleSheet","options","_this","this","_insertTag","tag","before","tags","length","insertionPoint","nextSibling","prepend","container","firstChild","insertBefore","push","isSpeedy","undefined","speedy","ctr","nonce","key","_proto","prototype","hydrate","nodes","forEach","insert","rule","document","createElement","setAttribute","appendChild","createTextNode","createStyleElement","sheet","i","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","e","flush","_tag$parentNode","parentNode","removeChild","abs","Math","from","String","fromCharCode","assign","Object","trim","value","replace","pattern","replacement","indexof","search","indexOf","charat","index","charCodeAt","substr","begin","end","slice","strlen","sizeof","append","array","line","column","position","character","characters","node","root","parent","type","props","children","return","copy","prev","next","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","KEYFRAMES","serialize","callback","output","stringify","element","join","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","get","set","parentRules","removeLabel","prefix","hash","defaultStylisPlugins","map","combine","exec","match","createCache","ssrStyles","querySelectorAll","Array","call","getAttribute","head","_insert","stylisPlugins","inserted","nodesToHydrate","attrib","split","currentSheet","finalizingPlugins","serializer","collection","middleware","concat","selector","serialized","shouldCache","styles","cache","name","registered","memoize","fn","create","arg","EmotionCacheContext","React","HTMLElement","CacheProvider","Provider","withEmotionCache","func","forwardRef","ref","useContext","ThemeContext","Global","serializeStyles","sheetRef","useInsertionEffectWithLayoutFallback","constructor","rehydrating","querySelector","current","sheetRefCurrent","insertStyles","nextElementSibling","css","_len","arguments","args","_key","keyframes","insertable","apply","anim","toString","unitlessKeys","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","isDevelopment","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","p1","p2","cursor","unitless","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","componentSelector","__emotion_styles","serializedStyles","obj","string","isArray","asString","Error","interpolated","_i","createStringFromObject","previousCursor","result","cached","labelPattern","stringMode","strings","raw","lastIndex","identifierName","str","h","len","hashString","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","getRegisteredStyles","registeredStyles","classNames","rawClassName","className","registerStyles","isStringTag","encode","input","outputLength","encoded","concatBytes","encodeLength","inputBuf","toBytes","safeSlice","start","decodeLength","v","parseHexByte","bytesToHex","Uint8Array","hexLength","numberToHex","firstByte","hexToBytes","decode","stream","decoded","_decode","remainder","data","llength","innerRemainder","d","totalLength","cachedHexes","_v","padStart","uint8a","hex","hexByte","byte","Number","parseInt","isNaN","TypeError","arrays","reduce","a","arr","pad","utf8ToBytes","utf","TextEncoder","integer","isHexPrefixed","exports","_interopRequireDefault","require","_createSvgIcon","_jsxRuntime","default","jsx","defineProperty","enumerable","_utils","createSvgIcon","PropsContext","useDefaultProps","_ref2","params","theme","components","config","defaultProps","resolveProps","styleOverrides","variants","getThemeProps","useSystemDefaultProps","black","white","A100","A200","A400","A700","_excluded","light","text","primary","secondary","disabled","divider","background","paper","common","action","active","hover","hoverOpacity","selected","selectedOpacity","disabledBackground","disabledOpacity","focus","focusOpacity","activatedOpacity","dark","icon","addLightOrDark","intent","direction","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","hasOwnProperty","lighten","main","darken","createPalette","palette","mode","contrastThreshold","other","_objectWithoutPropertiesLoose","blue","getDefaultPrimary","purple","getDefaultSecondary","error","red","getDefaultError","info","lightBlue","getDefaultInfo","success","green","getDefaultSuccess","warning","orange","getDefaultWarning","getContrastText","getContrastRatio","augmentColor","_ref","color","mainShade","lightShade","darkShade","_extends","_formatMuiErrorMessage","JSON","contrastText","modes","deepmerge","grey","caseAllCaps","textTransform","defaultFontFamily","createTypography","typography","fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem","pxToRem2","coef","buildVariant","letterSpacing","casing","round","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","inherit","clone","createShadow","easing","easeInOut","easeOut","easeIn","sharp","duration","shortest","shorter","short","standard","complex","enteringScreen","leavingScreen","formatMs","milliseconds","getAutoHeightDuration","height","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","delay","animatedProp","mobileStepper","fab","speedDial","appBar","drawer","modal","snackbar","tooltip","createTheme","mixins","mixinsInput","paletteInput","transitions","transitionsInput","typographyInput","vars","systemTheme","systemCreateTheme","muiTheme","breakpoints","toolbar","minHeight","up","shadows","acc","argument","unstable_sxConfig","defaultSxConfig","unstable_sx","styleFunctionSx","sx","prop","slotShouldForwardProp","createStyled","themeId","THEME_ID","defaultTheme","rootShouldForwardProp","timeout","wait","debounced","clearTimeout","setTimeout","later","clear","getSvgIconUtilityClass","slot","generateUtilityClass","generateUtilityClasses","SvgIconRoot","styled","overridesResolver","ownerState","capitalize","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette2","_palette3","userSelect","width","display","fill","hasSvgAsChild","transition","small","medium","large","SvgIcon","inProps","component","htmlColor","inheritViewBox","titleAccess","viewBox","instanceFontSize","more","classes","slots","composeClasses","useUtilityClasses","_jsxs","as","clsx","focusable","role","_jsx","muiName","path","displayName","Component","validator","reason","muiNames","_muiName","_element$type","_payload","componentNameInError","propName","componentName","location","propFullName","controlled","defaultProp","state","isControlled","valueState","setValue","newValue","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","Timeout","inputTypesWhitelist","url","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","visibilityState","isFocusVisible","target","matches","tagName","readOnly","isContentEditable","focusTriggersKeyboardModality","doc","ownerDocument","addEventListener","isFocusVisibleRef","onFocus","onBlur","unstable_ClassNameGenerator","configure","generator","ClassNameGenerator","reactPropsRegex","isPropValid","test","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","Insertion","newStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","Styled","FinalTag","classInterpolations","finalShouldForwardProp","newProps","withComponent","nextTag","nextOptions","bind","StyledEngineProvider","injectFirst","GlobalStyles","globalStyles","themeInput","keys","emStyled","internal_processStyles","processor","alpha","emphasize","foreground","lumA","getLuminance","lumB","max","min","_formatMuiErrorMessage2","_clamp","clampWrapper","hexToRgb","re","RegExp","colors","n","decomposeColor","charAt","marker","substring","colorSpace","values","shift","parseFloat","colorChannel","decomposedColor","val","idx","recomposeColor","hslToRgb","s","l","f","rgb","toFixed","coefficient","systemDefaultTheme","systemSx","_styleFunctionSx","_extends2","resolveTheme","__mui_systemSx","inputOptions","_styledEngine","filter","style","componentSlot","skipVariantsResolver","inputSkipVariantsResolver","skipSx","inputSkipSx","defaultOverridesResolver","lowercaseFirstLetter","_objectWithoutPropertiesLoose2","_excluded3","shouldForwardPropOption","defaultStyledResolver","transformStyleArg","stylesArg","_deepmerge","isPlainObject","processStyleArg","muiStyledResolver","styleArg","transformedStyleArg","expressions","expressionsWithDefaultTheme","resolvedStyleOverrides","entries","_ref3","slotKey","slotStyle","_theme$components","numOfCustomFnsApplied","placeholders","withConfig","r","__esModule","t","_getRequireWildcardCache","has","__proto__","getOwnPropertyDescriptor","u","_interopRequireWildcard","_createTheme","_excluded2","callableStyle","resolvedStylesArg","flatMap","resolvedStyle","variant","isMatch","xs","sm","md","lg","xl","defaultBreakpoints","handleBreakpoints","propValue","styleFromPropValue","themeBreakpoints","item","breakpoint","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","resolveBreakpointValues","breakpointValues","base","customBase","breakpointsKeys","computeBreakpointsBase","applyStyles","getColorSchemeSelector","sortBreakpointsValues","breakpointsAsArray","sort","breakpoint1","breakpoint2","createBreakpoints","unit","step","sortedValues","down","between","endIndex","only","not","keyIndex","borderRadius","spacing","spacingInput","shape","shapeInput","mui","transform","createUnarySpacing","argsInput","createSpacing","properties","m","p","directions","b","aliases","marginX","marginY","paddingX","paddingY","getCssProperties","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","themeKey","defaultValue","_getPath","themeSpacing","getPath","getValue","transformer","transformed","resolveCssProperty","cssProperties","cssProperty","getStyleFromPropValue","merge","margin","padding","propTypes","filterProps","checkVars","getStyleValue","themeMapping","propValueFinal","userValue","handlers","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","compose","gap","columnGap","rowGap","paletteTransform","sizingTransform","maxWidth","_props$theme","_props$theme2","breakpointsValues","minWidth","maxHeight","bgcolor","backgroundColor","pt","pr","pb","pl","px","py","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd","mt","mr","mb","ml","mx","my","marginTop","marginRight","marginBottom","marginLeft","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","displayPrint","overflow","textOverflow","visibility","whiteSpace","flexBasis","flexDirection","flexWrap","justifyContent","alignItems","alignContent","alignSelf","justifyItems","justifySelf","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","top","right","bottom","left","boxShadow","boxSizing","fontStyle","textAlign","splitProps","_props$theme$unstable","systemProps","otherProps","extendSxProp","inSx","finalSx","unstable_createStyleFunctionSx","getThemeValue","_theme$unstable_sxCon","traverse","sxInput","sxObject","emptyBreakpoints","styleKey","maybeFn","objects","allKeys","object","union","Set","every","objectsHaveSameKeys","defaultGenerator","createClassNameGenerator","generate","reset","toUpperCase","MIN_SAFE_INTEGER","MAX_SAFE_INTEGER","getUtilityClass","utilityClass","createChainedFunction","funcs","_len2","_key2","getPrototypeOf","Symbol","toStringTag","iterator","deepClone","source","formatMuiErrorMessage","code","encodeURIComponent","globalStateClasses","checked","completed","expanded","focused","focusVisible","open","required","globalStatePrefix","globalStateClass","fnNameMatchRegex","getFunctionName","getFunctionComponentName","fallback","getWrappedName","outerType","innerType","wrapperName","functionName","getDisplayName","$$typeof","ForwardRef","render","Memo","ownerWindow","defaultView","window","defaultSlotProps","slotProps","slotPropName","setRef","useEnhancedEffect","useForkRef","refs","instance","globalId","maybeReactUseId","useId","idOverride","reactId","defaultId","setDefaultId","id","useGlobalId","UNINITIALIZED","EMPTY","currentId","disposeEffect","useTimeout","init","initArg","useLazyRef","AWS","Service","apiLoader","services","ACM","defineService","model","paginators","waiters","configurable","module","Amp","APIGateway","ApplicationAutoScaling","Athena","AutoScaling","CloudFormation","CloudFront","CloudHSM","CloudTrail","CloudWatch","CloudWatchEvents","CloudWatchLogs","CodeBuild","CodeCommit","CodeDeploy","CodePipeline","CognitoIdentity","CognitoIdentityServiceProvider","CognitoSync","ConfigService","CUR","DeviceFarm","DirectConnect","DynamoDB","DynamoDBStreams","EC2","ECR","ECS","EFS","ElastiCache","ElasticBeanstalk","ELB","ELBv2","EMR","ElasticTranscoder","Firehose","GameLift","IAM","Inspector","Iot","IotData","Kinesis","KMS","Lambda","LexRuntime","MachineLearning","MarketplaceCommerceAnalytics","MTurk","MobileAnalytics","OpsWorks","Polly","RDS","Redshift","Rekognition","Route53","Route53Domains","S3","ServiceCatalog","SES","SNS","SQS","SSM","StorageGateway","STS","XRay","WAF","WorkDocs","LexModelBuildingService","CloudHSMV2","Pricing","CostExplorer","MediaStoreData","Comprehend","KinesisVideoArchivedMedia","KinesisVideoMedia","KinesisVideo","Translate","ResourceGroups","Connect","SecretsManager","IoTAnalytics","ComprehendMedical","Personalize","PersonalizeEvents","PersonalizeRuntime","ForecastService","ForecastQueryService","MarketplaceCatalog","KinesisVideoSignalingChannels","Location","LexRuntimeV2","svc","version","self","Hmac","Md5","Sha1","Sha256","createHash","alg","createHmac","createSign","Buffer","ArrayBuffer","isView","viewStrings","isEmptyData","byteLength","convertToBuffer","buffer","byteOffset","BYTES_PER_ELEMENT","hashUtils","hashCtor","secret","outer","inner","BLOCK_SIZE","bufferHash","update","digest","bufferFromSecret","toHash","encoding","finished","DataView","bufferLength","bytesHashed","cmn","q","ff","c","gg","hh","ii","sourceData","setUint8","hashBuffer","_a","undecoratedLength","bitsHashed","setUint32","floor","out","buff","getUint32","Uint32Array","pow","h0","block","write","processBlock","outView","w","temp","KEY","MAX_HASHABLE_LENGTH","Int32Array","bufferView","state0","state1","state2","state3","state4","state5","state6","state7","t1_1","t2_1","t1","t2","util","crypto","lib","querystring","realClock","environment","createEventStream","isBrowser","isNode","XML","Parser","process","browser","base64Encode","base64","queryEncode","replacements","signPolicy","policy","privateKey","sign","signWithCannedPolicy","expires","keyPairId","Statement","Resource","Condition","DateLessThan","Expires","Signature","signWithCustomPolicy","Policy","determineScheme","parts","getRtmpUrl","rtmpUrl","handleError","err","handleSuccess","Signer","getSignedCookie","cb","signatureHash","cookieHash","getSignedUrl","resource","getResource","parsedUrl","query","signedUrl","format","PromisesDependency","Config","extractCredentials","each","getCredentials","finish","credentials","credError","msg","message","accessKeyId","secretAccessKey","getStaticCredentials","credentialProvider","resolve","creds","getToken","tokenError","getStaticToken","tokenProvider","allowUnknownKeys","hasService","loadFromPath","readFileSync","fileSystemCreds","FileSystemCredentials","chain","CredentialProviderChain","providers","unshift","region","logger","apiVersions","apiVersion","endpoint","httpOptions","maxRetries","maxRedirects","paramValidation","sslEnabled","s3ForcePathStyle","s3BucketEndpoint","s3DisableBodySigning","s3UsEast1RegionalEndpoint","s3UseArnRegion","computeChecksums","convertResponseTypes","correctClockSkew","customUserAgent","dynamoDbCrc32","systemClockOffset","signatureVersion","signatureCache","retryDelayOptions","useAccelerateEndpoint","clientSideMonitoring","endpointDiscoveryEnabled","endpointCacheSize","hostPrefixEnabled","stsRegionalEndpoints","useFipsEndpoint","useDualstackEndpoint","Credentials","setPromisesDependency","dep","Promise","constructors","Request","ManagedUpload","addPromises","getPromisesDependency","validateRegionalEndpointsFlagValue","configValue","errorOptions","originalConfig","resolved","clientConfig","env","profile","getProfilesFromSharedConfig","iniLoader","AWS_PROFILE","defaultProfile","sharedConfig","VERSION","Signers","Protocol","Json","Query","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Shape","Paginator","ResourceWaiter","EndpointCache","events","SequentialExecutor","memoizedProperty","hideProperties","expired","expireTime","refreshCallbacks","sessionToken","expiryWindow","needsRefresh","currentTime","getDate","getTime","adjustedTime","Date","refresh","coalesceRefresh","sync","load","arrayEach","defer","addPromisesToClass","PromiseDependency","getPromise","promisifyMethod","refreshPromise","deletePromisesFromClass","ChainableTemporaryCredentials","errorCode","tokenCodeFn","RoleArn","RoleSessionName","SerialNumber","masterCredentials","stsConfig","service","operation","getTokenCode","tokenCode","TokenCode","credentialsFrom","CognitoIdentityCredentials","localStorageKey","_identityId","_clientConfig","loadCachedId","IdentityId","identityId","createClients","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","poolId","IdentityPoolId","loginId","LoginId","storage","cognito","loadCredentials","AccessKeyId","SecretKey","SessionToken","Expiration","cacheId","getOpenIdToken","WebIdentityToken","Token","webIdentityCredentials","webErr","sts","getStorage","Logins","actualProviders","WebIdentityCredentials","cognitoConfig","setStorage","_","localStorage","defaultProviders","resolveCallbacks","resolveNext","provider","getErr","resolvePromise","SAMLCredentials","assumeRoleWithSAML","TemporaryCredentials","loadMasterCredentials","assumeRole","getSessionToken","assumeRoleWithWebIdentity","endpointDiscoveryEnabledEnvs","getCacheKey","request","api","identifiers","operations","serviceId","marshallCustomIdentifiersHelper","memberShape","members","endpointDiscoveryId","locationName","isLocationName","marshallCustomIdentifiers","optionalDiscoverEndpoint","operationModel","cacheKey","endpoints","endpointCache","Address","httpRequest","updateEndpoint","endpointRequest","makeRequest","endpointOperation","Identifiers","addApiVersionHeader","removeListener","EventListeners","Core","VALIDATE_PARAMETERS","RETRY_CHECK","put","CachePeriodInMinutes","send","Endpoints","requestQueue","requiredDiscoverEndpoint","done","inputShape","cacheKeyStr","getKeyString","response","retryable","remove","pendingRequests","requestContext","headers","invalidateCachedEndpoints","httpResponse","statusCode","isFalsy","discoverEndpoint","client","_originalConfig","svcConfig","serviceIdentifier","Boolean","hasCustomEndpoint","isPresigned","isEndpointDiscoveryRequired","endpointDiscoveryRequired","isEnabled","configFile","loadFrom","isConfig","filename","sharedConfigFileEnv","sharedFileConfig","endpoint_discovery_enabled","resolveEndpointDiscoveryConfig","hasRequiredEndpointDiscovery","appendToUserAgent","addNamedListener","invalidateCachedEndpoint","typeOf","DynamoDBSet","NumberValue","convertNumber","wrapNumbers","formatMap","M","formatted","Converter","convertInput","list","L","formatList","convertEmptyValues","nonEmptyValues","Binary","filterEmptySetValues","formatSet","S","N","B","BOOL","NULL","marshall","convertOutput","toBuffer","unmarshall","Translator","DocumentClient","bindServiceObject","attrValue","putItem","Item","__super__","makeServiceRequest","setupRequest","setupResponse","serviceClientOperationsMap","batchGet","batchWrite","delete","scan","transactGet","transactWrite","createSet","getTranslator","translator","_events","validate","req","rawParams","translateInput","outputShape","on","translateOutput","nextPage","resp","paginationConfig","hasNextPage","nextPageTokens","inputTokens","inputToken","DynamoDBNumberValue","toJSON","toNumber","memberTypeToSetType","initialize","detectType","convert","translate","translateStructure","translateMap","translateList","translateScalar","structure","struct","member","toType","isBinary","types","Stream","isBuffer","isType","typeName","eventMessageChunker","parseEvent","body","parser","eventMessages","messages","readInt32BE","Int64","bytes","negate","fromNumber","remaining","valueOf","negative","parseMessage","parsedMessage","messageType","errorMessage","parseError","eventType","eventModel","eventPayloadMemberName","payloadShape","eventHeaderNames","eventHeaderMemberNames","splitMessage","BOOLEAN_TAG","parseHeaders","nameLength","readUInt8","readInt8","readInt16BE","binaryLength","readUInt16BE","stringLength","uuidChars","PRELUDE_LENGTH","readUInt32BE","expectedPreludeChecksum","PRELUDE_MEMBER_LENGTH","crc32","expectedMessageChecksum","headersEnd","DISCOVER_ENDPOINT","getOperationAuthtype","authtype","getIdentityType","addNamedListeners","add","addAsync","isGlobalEndpoint","dnsHostRegex","idempotentMembers","iLen","uuid","v4","validation","ParamValidator","isNonStreamingPayload","httpChecksumRequired","md5","haltHandlersOnError","getSignerClass","V4","computeSha256","sha","payloadMember","getRequestPayloadShape","isStreaming","requiresLength","host","traceIdHeaderName","traceId","HttpRequest","retryCount","identityType","addAuthorization","getSkewCorrectedDate","SignerClass","signer","getSigningName","setServiceClientId","_clientId","signedAt","successfulResponse","awsQueryCompatible","queryErrorCode","includes","httpResp","operationName","statusMessage","emit","streaming","HttpClient","streamsApiVersion","hasEventOutput","read","didCallback","errCode","hostname","executeSend","http","getInstance","handleRequest","_abortCallback","buffers","numBytes","dateHeader","serverTime","isClockSkewed","applyClockOffset","chunk","total","progress","loaded","retryableError","clockSkewError","Endpoint","redirect","redirectCount","retryDelay","retryDelays","willRetry","CorePost","extractRequestId","errno","getSystemErrorName","isDNSError","port","originalError","Logger","delta","startTime","ansi","isTTY","status","censoredParams","filterSensitiveLog","lowerFirst","buildMessage","log","isSensitive","subShapeName","subShape","buildRequest","extractData","extractError","unsetContentLength","urlParse","protocol","method","_userAgent","setUserAgent","getUserAgentHeaderName","userAgent","agentPartial","getUserAgent","pathname","queryStringParse","queryParamsToString","endpointStr","newEndpoint","HttpResponse","createUnbufferedStream","singleton","EventEmitter","XHRClient","errCallback","emitter","href","xhr","XMLHttpRequest","headersEmitted","readyState","HEADERS_RECEIVED","getAllResponseHeaders","statusText","DONE","finishRequest","upload","evt","xhrAsync","setRequestHeader","xhrWithCredentials","withCredentials","responseType","rawHeaders","ab","view","responseText","JsonBuilder","isDocument","toWireFormat","build","JsonParser","shapeMembers","isAwsQueryCompatible","suppress","AWS_EXECUTION_ENV","AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE","emitWarning","Collection","metadata","endpointPrefix","signingName","globalEndpoint","jsonVersion","targetPrefix","timestampFormat","xmlNamespace","serviceAbbreviation","serviceFullName","xmlNoDefaultLists","endpointoperation","endpointdiscovery","shapes","paginator","waiter","documentation","documentationUrl","factory","nameTr","iterable","requestUri","httpChecksum","requestChecksumRequired","errors","isIdempotent","topLevelShape","payload","isEventStream","hasEventStream","input_token","limit_key","more_results","output_token","result_key","memberName","enum","xmlName","queryName","isComposite","idempotencyToken","jsonvalue","sensitive","eventstream","eventpayload","eventheader","isTimestampFormatSet","endpointdiscoveryid","hostLabel","xmlAttribute","CompositeShape","flattened","StructureShape","requiredMap","firstInit","isShape","xmlOrder","memberNames","isEventPayload","isEventHeader","resultWrapper","uri","ListShape","oldName","MapShape","StringShape","nullLessProtocols","isJsonValue","BinaryShape","buf","secureBuf","Base64Shape","BooleanShape","normalizedTypes","double","long","biginteger","bigdecimal","blob","toUTCString","parseTimestamp","refShape","filteredKeys","InlineShape","origType","context","validateMember","fail","validateStructure","paramName","validateType","paramValue","memberContext","param","validateList","validateMap","validateScalar","validateRange","mapCount","validateString","validatePayload","validateNumber","validTypes","validateEnum","validatePattern","validateUri","descriptor","acceptedTypes","foundInvalidType","acceptedType","vowel","castedValue","Blob","rest","Presigner","_operations","modifyInputMembers","modifiedInput","convertPostToGet","generateURI","httpPath","getSynthesizeSpeechUrl","removeAllListeners","presign","populateHostPrefix","isEndpointOperation","hasEndpointDiscover","hostPrefix","hostPrefixNotation","regex","expandHostPrefix","prependEndpointPrefix","labels","hostPattern","validateHostname","builder","__type","Code","pop","Message","writable","QueryParamSerializer","Version","Action","requestId","Errors","origRules","tmp","_XAMZRequestId","requestIdShape","endpointPath","operationPath","queryString","queryStringSet","plus","uriEscapePath","uriEscape","httpMethod","populateMethod","populateURI","memberValue","populateHeaders","header","METHODS_WITHOUT_BODY","applyContentTypeHeader","populateBody","rootElement","toXML","upperFirst","ucfirst","isQueryName","serializeStructure","serializeMember","memberRules","suffix","serializeList","keyName","valueName","serializeMap","requiredAuthTokenOptions","username","convertUrlToAuthToken","getAuthToken","hasCallback","optionsValidation","validateAuthTokenOptions","serviceOptions","modifyRequestForAuthToken","buildAsGet","DBUser","now","performance","isFipsRegion","startsWith","endsWith","isGlobalRegion","getRealRegion","regionConfig","applyConfig","configureEndpoint","regionPrefix","generateRegionPrefix","derivedKeys","dualstackFipsRules","fipsRules","dualstackRules","patterns","signingRegion","useBearer","getEndpointSuffix","regionRegexes","regexes","regionPattern","dnsSuffix","AcceptorStateMachine","domain","jmespath","hardErrorStates","complete","fsm","setupStates","_haltHandlersOnError","_asm","currentState","machine","Domain","domainEmitter","domainThrown","addState","Response","states","emitEvent","runTo","abort","eachPage","makeAsync","wrappedCallback","noop","eachItem","resultKey","items","continueIteration","isPageable","createReadStream","streams","PassThrough","nextTick","readable","sent","HTTP_DATA","HTTP_ERROR","expectedLen","shouldCheckContentLength","receivedLen","checkContentLengthAndEmit","httpStream","lengthAccumulator","_write","unpipe","pipe","eventName","eventParameters","Presign","toGet","toUnauthenticated","_unAuthenticated","VALIDATE_CREDENTIALS","SIGN","addListener","promise","reject","mixin","CHECK_ACCEPTORS","_waiter","acceptors","acceptorMatched","acceptor","matcher","matchers","expected","setSuccess","setError","loadWaiterConfig","strictDeepEqual","pathAll","results","numResults","ind","pathAny","listeners","$waiter","maxAttempts","addListeners","numRetries","cacheNextPageTokens","moreResults","exprs","outputToken","expr","sliceFn","completeInfo","fillQueue","partSize","minPartSize","queueSize","leavePartsOnError","validateBody","adjustTotalBytes","maxTotalParts","failed","runFill","fillBuffer","fillStream","partBuffers","cleanup","isDoneChunking","numParts","totalPartNumbers","doneParts","finishMultiPart","singlePart","Body","arraySliceFn","getSignatureVersion","totalBytes","newPartSize","ceil","partPos","totalChunkedBytes","totalUploadedBytes","activeParts","multipartReq","partBufferLength","bodyLen","nextChunk","endPos","pbuf","isDoneSending","partNumber","Tagging","getTaggingHeader","putObject","_managedUpload","finishSinglePart","ContentMD5","ETag","UploadId","uploadPart","queueChunks","createMultipartUpload","kvPairStrings","Key","Value","partParams","ContentLength","PartNumber","partInfo","_lastUploadedBytes","resume","abortMultipartUpload","part","completeParams","MultipartUpload","Parts","completeMultipartUpload","putObjectTagging","TagSet","httpReq","Bucket","listener","toHead","onAsync","_isAsync","splice","eventArgs","doneCallback","callListeners","prevError","callNextListener","callbacks","addNamedAsyncListener","clientCount","region_utils","loadServiceClass","useDualstack","ServiceClass","validateService","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","eventHandler","serviceConfig","isEmpty","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","iso8601","selectedVersion","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","serviceInterface","setupRequestListeners","apiCallEvent","monitoringEvent","Type","Region","MaxRetriesExceeded","UserAgent","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","attemptTimestamp","attemptStartRealTime","attemptLatency","callStartRealTime","callTimestamp","attemptCount","addToHead","Timestamp","AttemptLatency","AttemptCount","latency","Latency","RequestSigner","getVersion","calculateRetryDelay","timeoutError","networkingError","expiredCredentialsError","throttledError","newServerTime","throwException","defineMethods","versions","features","_serviceMap","addVersions","Publisher","publisherConfig","configProvider","enabled","superclass","setApi","isApi","attachOn","baseClass","setAcceptHeader","Accept","exportType","convertPayloadToString","hoistPayloadMember","EXTRACT_DATA","checkCrc32","crc32IsValid","crc","EXTRACT_ERROR","buildCopySnapshotPresignedUrl","PresignedUrl","_subRequest","DestinationRegion","SourceRegion","newReq","RequestID","blobPayloadOutputOps","validateResponseBody","bodyCheck","buildEndpoint","PredictEndpoint","rdsutil","crossRegionOperations","PreSignedUrl","doesParamValidation","buildCrossRegionPresignedUrl","destinationRegion","sanitizeUrl","v4Credentials","resolveRegionalEndpointsFlag","s3util","regionUtil","operationsWith200StatusCodeError","regionRedirectErrorCodes","OBJECT_LAMBDA_SERVICE","defaultApiVersion","userDefinedVersion","regionDefinedVersion","_super","_parsedArn","shouldDisableBodySigning","signerClass","setExpiresString","prependListener","validateScheme","validateBucketName","optInUsEast1RegionalEndpoint","VALIDATE_REGION","addContentType","computeContentMd5","computeSseCustomerKeyMd5","addExpect100Continue","extractErrorFrom200Response","prepareSignedUrl","COMPUTE_SHA256","disableBodySigning","isArnInParam","ARN","validateS3AccessPointArn","validateArnResourceType","validateArnRegion","validateOutpostsAccessPointArn","validateOutpostsArn","validateArnAccount","validateArnService","populateUriFromAccessPointArn","validatePopulateUriFromArn","validateBucketEndpoint","correctBucketRegionFromCache","requestBucketRegion","reqRegionForNetworkingError","scheme","SSECustomerKey","CopySourceSSECustomerKey","allowFipsEndpoint","bucket","slashIndex","isValidAccelerateOperation","insertPoint","regionalEndpoint","pathStyleBucketName","virtualHostedBucket","removeVirtualHostedBucketFromPath","encodedS3Key","accessPointArn","isOutpostArn","isObjectLambdaArn","outpostsSuffix","outpostId","serviceName","fipsSuffix","dualStackSuffix","useArnRegion","accessPoint","accountId","accesspointName","encodedArn","contentType","charsetName","willComputeChecksums","needsContentMD5","bucketName","dnsCompatibleBucketName","is200Error","bodyString","outputMembers","_requestRegionForBucket","bucketRegionCache","updateReqBucketRegion","s3Config","newConfig","Host","LocationConstraint","createBucketConfiguration","CreateBucketConfiguration","clearBucketRegionCache","extractRequestIds","cachedRegion","codes","reqOperation","reqParams","MaxKeys","regionReq","getRegionReq","listObjects","buckets","requestRegion","extendedRequestId","cfId","createPresignedPost","boundParams","finalizePost","urlFormat","fields","preparePostFields","Fields","Conditions","conditions","expiresInSeconds","signingDate","shortDate","scope","createScope","credential","field","condition","preparePostPolicy","hmac","getSigningKey","expiration","noPresignedContentLength","createBucket","copiedParams","writeGetObjectResponse","uploader","expiresstring","console","getSignedUrlPromise","inputMembers","parsedArn","accessPointPrefix","loadUseArnRegionConfig","regionFromArn","clientRegion","envName","configName","ipAddress","dots","verifySendMessageChecksum","verifySendMessageBatchChecksum","verifyReceiveMessageChecksum","MD5OfMessageBody","MessageBody","calculatedMd5","calculateChecksum","throwInvalidChecksumError","MessageId","messageIds","Successful","entry","Id","Entries","isChecksumValid","Messages","MD5OfBody","ids","checksum","QueueUrl","SecretAccessKey","optInRegionalEndpoint","Bearer","expiresHeader","signedUrlBuilder","unixTimestamp","signedUrlSigner","queryParams","auth","signature","SET_CONTENT_LENGTH","serviceClientId","getServiceClientId","V2","V3","V3Https","subResources","responseHeaders","rfc822","stringToSign","canonicalizedAmzHeaders","canonicalizedResource","amzHeaders","resources","subresource","decodeURIComponent","res","SignatureVersion","SignatureMethod","AWSAccessKeyId","SecurityToken","authorization","signedHeaders","headersToSign","canonicalHeaders","sha256","algorithm","updateForPresigned","addHeaders","credString","credentialString","qs","isSignableHeader","lowerKey","sep","signingKey","hexEncodedHash","canonicalString","hexEncodedBodyHash","canonicalHeaderValues","unsignableHeaders","cachedSecret","cacheQueue","v4Identifier","kDate","kRegion","kService","emptyCache","finalState","bindObject","inputError","accept","acceptState","failState","engine","navigator","platform","agent","escape","ch","sortedKeys","ename","vals","toStream","Readable","pos","_read","ini","currentSection","indexOfEqualsSign","expectedArgs","toISOString","formatter","crc32Table","tbl","FileReader","reader","onerror","onload","_continueReading","back","readAsArrayBuffer","toHex","iterFunction","obj1","obj2","dupe","webkitSlice","mozSlice","stack","klass","newObject","ctor","isValue","opts","cachedValue","responsePayload","fs","settings","ResponseMetadata","RequestId","deletePromises","methodName","isDualstackAvailable","dualstackAvailable","customBackoff","random","handleRequestWithRetries","sendRequest","retryAfter","setImmediate","profiles","profilesFromConfig","configOptInEnv","profilesFromCreds","sharedCredentialsFileEnv","profileNames","objectAssign","arn","matched","partition","arnObject","imdsDisabledEnv","DomXmlParser","getElementByTagName","xml","elements","getElementsByTagName","parseXml","parseStructure","xmlKey","xmlValue","child","firstElementChild","nodeName","textContent","parseMap","parseList","childNodes","parseUnknown","parseScalar","isXmlAttribute","attributes","xmlChild","DOMParser","parseFromString","syntaxError","documentElement","isError","errorElement","ActiveXObject","async","loadXML","XmlNode","XmlText","XmlBuilder","addAttribute","addChildNode","applyNamespaces","entryKey","entryValue","serializeScalar","isRoot","xmlNamespaceUri","xmlNamespacePrefix","noEmpty","escapeAttribute","escapeElement","removeAttribute","hasChildren","xmlText","attributeNames","attributeName","attribute","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","fromArrayLike","fromArrayBuffer","isEncoding","actual","fromString","fromObject","assertSize","loweredCase","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","global","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","_arr","ret","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt16LE","readInt32LE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","src","dst","byteToHex","_default","bth","_v3","_v2","_v4","safeAdd","lsw","md5cmn","num","cnt","md5ff","md5gg","md5hh","md5ii","unescape","length32","hexTab","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","getRandomValues","rnds8","msCrypto","ROTL","K","H","W","T","_nodeId","_clockseq","_rng","_bytesToUuid","_lastMSecs","_lastNSecs","clockseq","seedBytes","rng","msecs","nsecs","dt","tl","tmh","_md","hashfunc","generateUUID","namespace","off","stringToBytes","uuidToBytes","DNS","URL","rnds","_sha","LRU_1","maxSize","LRUCache","keyString","endpointRecord","populateValue","records","Expire","identifierNames","empty","LinkedListNode","nodeMap","sizeLimit","prependToList","headerNode","tailNode","removeFromTail","prevNode","detachFromList","key_1","newNode","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","setFunctionLength","$TypeError","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","applyBind","dec","eqIdx","endIdx","tryDecode","opt","enc","fieldContentRegExp","maxAge","__toString","isDate","httpOnly","secure","partitioned","priority","sameSite","__assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","hasCookie","deleteCookie","setCookie","getCookie","getCookies","cookie_1","isClientSide","isCookiesFromAppRouter","cookieStore","getAll","isContextFromAppRouter","cookies","transformAppRouterCookies","_cookies","cookie","documentCookies","cookieParts","_cookie","cookiesFn","restOptions","_cookieOptions","_req","_res","cookieStr","currentCookies","getHeader","setHeader","accum","CRC32","T0","table","signed_crc_table","TT","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","seed","C","DO_NOT_EXPORT_CRC","__global__","globalThis","__globalThis__","F","fetch","DOMException","support","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","Headers","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","bufferClone","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","arrayBuffer","isConsumed","then","readAsText","readBlobAsText","chars","readArrayBufferAsText","formData","json","oldValue","thisArg","methods","signal","upcased","normalizeMethod","referrer","reParamSearch","form","bodyInit","ok","redirectStatuses","aborted","abortXhr","responseURL","ontimeout","onabort","fixUrl","onreadystatechange","removeEventListener","polyfill","ponyfill","ctx","addLeadingZeros","targetLength","_index","enUS","getDefaultOptions","defaultOptions","setDefaultOptions","newOptions","formatters","_index2","_index3","_index4","_index5","_index6","_index7","dayPeriodEnum","G","localize","era","getFullYear","signedYear","year","ordinalNumber","lightFormatters","Y","signedWeekYear","getWeekYear","weekYear","twoDigitYear","R","isoWeekYear","getISOWeekYear","Q","quarter","getMonth","getWeek","I","isoWeek","getISOWeek","D","dayOfYear","getDayOfYear","E","dayOfWeek","getDay","day","localDayOfWeek","weekStartsOn","isoDayOfWeek","dayPeriodEnumValue","getHours","dayPeriod","hours","getMinutes","getSeconds","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","O","formatTimezoneShort","timestamp","trunc","absOffset","minutes","numberOfDigits","getMilliseconds","fractionalSeconds","longFormatters","dateLongFormatter","formatLong","timeLongFormatter","P","dateTimeLongFormatter","matchResult","datePattern","timePattern","dateTimeFormat","dateTime","getRoundingMethod","getTimezoneOffsetInMilliseconds","_date","toDate","utcDate","UTC","setUTCFullYear","isProtectedDayOfYearToken","dayOfYearTokenRE","isProtectedWeekYearToken","weekYearTokenRE","warnOrThrowProtectedError","_message","subject","warn","throwTokens","years","months","weeks","days","seconds","dateWithMonths","addMonths","dateWithDays","addDays","msToAdd","constructFrom","addBusinessDays","amount","startedOnWeekend","isWeekend","NaN","fullWeeks","setDate","restDays","isSaturday","isSunday","setHours","addHours","addMilliseconds","millisecondsInHour","addISOWeekYears","setISOWeekYear","addMinutes","millisecondsInMinute","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","setFullYear","addQuarters","addSeconds","addWeeks","addYears","areIntervalsOverlapping","intervalLeft","intervalRight","leftStartTime","leftEndTime","rightStartTime","rightEndTime","inclusive","clamp","interval","closestIndexTo","dateToCompare","dates","timeToCompare","minDistance","dirtyDate","currentDate","distance","closestTo","compareAsc","dateLeft","dateRight","_dateLeft","_dateRight","diff","compareDesc","secondsInYear","secondsInWeek","secondsInQuarter","secondsInMonth","secondsInMinute","secondsInHour","secondsInDay","quartersInYear","monthsInYear","monthsInQuarter","minutesInYear","minutesInMonth","minutesInHour","minutesInDay","minTime","millisecondsInWeek","millisecondsInSecond","millisecondsInDay","maxTime","daysInYear","daysInWeek","constructNow","daysToWeeks","differenceInBusinessDays","isValid","calendarDifference","differenceInCalendarDays","isSameDay","startOfDayLeft","startOfDay","startOfDayRight","timestampLeft","timestampRight","differenceInCalendarISOWeekYears","differenceInCalendarISOWeeks","startOfISOWeekLeft","startOfISOWeek","startOfISOWeekRight","differenceInCalendarMonths","yearDiff","monthDiff","differenceInCalendarQuarters","quarterDiff","getQuarter","differenceInCalendarWeeks","startOfWeekLeft","startOfWeek","startOfWeekRight","differenceInCalendarYears","differenceInDays","compareLocalAsc","difference","isLastDayNotFull","differenceInHours","differenceInMilliseconds","roundingMethod","differenceInISOWeekYears","subISOWeekYears","isLastISOWeekYearNotFull","differenceInMinutes","differenceInMonths","isLastMonthNotFull","isLastDayOfMonth","differenceInQuarters","differenceInSeconds","differenceInWeeks","differenceInYears","isLastYearNotFull","eachDayOfInterval","startDate","endDate","reversed","endTime","reverse","eachHourOfInterval","setMinutes","eachMinuteOfInterval","startOfMinute","eachMonthOfInterval","eachQuarterOfInterval","startOfQuarter","eachWeekOfInterval","startDateWeek","endDateWeek","eachWeekendOfInterval","dateInterval","weekends","eachWeekendOfMonth","startOfMonth","endOfMonth","eachWeekendOfYear","startOfYear","endOfYear","eachYearOfInterval","endOfDay","endOfDecade","decade","endOfHour","endOfISOWeek","endOfWeek","endOfISOWeekYear","fourthOfJanuaryOfNextYear","setMilliseconds","endOfMinute","setSeconds","endOfQuarter","currentMonth","endOfSecond","endOfToday","endOfTomorrow","locale","endOfYesterday","formatDate","formatStr","defaultLocale","firstWeekContainsDate","originalDate","longFormattingTokensRegExp","firstCharacter","longFormatter","formattingTokensRegExp","isToken","cleanEscapedString","unescapedLatinCharacterRegExp","preprocessor","formatterOptions","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","escapedStringRegExp","doubleQuoteRegExp","formatDistance","baseDate","comparison","localizeOptions","addSuffix","offsetInSeconds","_index8","includeSeconds","nearestMonth","monthsSinceStartOfYear","formatDistanceStrict","dstNormalizedMinutes","defaultUnit","roundedMinutes","formatDistanceToNow","formatDistanceToNowStrict","formatDuration","defaultFormat","zero","formatISO","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","formatISO9075","formatISODuration","formatRFC3339","fractionDigits","hour","minute","second","fractionalSecond","formatRFC7231","dayName","getUTCDay","getUTCDate","monthName","getUTCMonth","getUTCFullYear","getUTCHours","getUTCMinutes","getUTCSeconds","formatRelative","_baseDate","fromUnixTime","unixTime","getDaysInMonth","monthIndex","lastDayOfMonth","getDaysInYear","isLeapYear","getDecade","getISODay","startOfISOWeekYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getISOWeeksInYear","thisYear","getOverlappingDaysInIntervals","leftStart","leftEnd","rightStart","rightEnd","overlapLeft","overlapRight","getUnixTime","startOfWeekYear","getWeekOfMonth","currentDayOfMonth","startWeekDay","lastDayOfFirstWeek","remainingDaysAfterFirstWeek","firstWeekOfNextYear","firstWeekOfThisYear","getWeeksInMonth","getYear","hoursToMilliseconds","hoursToMinutes","hoursToSeconds","_index9","_index10","_index11","_index12","_index13","_index14","_index15","_index16","_index17","_index18","_index19","_index20","_index21","_index22","_index23","_index24","_index25","_index26","_index27","_index28","_index29","_index30","_index31","_index32","_index33","_index34","_index35","_index36","_index37","_index38","_index39","_index40","_index41","_index42","_index43","_index44","_index45","_index46","_index47","_index48","_index49","_index50","_index51","_index52","_index53","_index54","_index55","_index56","_index57","_index58","_index59","_index60","_index61","_index62","_index63","_index64","_index65","_index66","_index67","_index68","_index69","_index70","_index71","_index72","_index73","_index74","_index75","_index76","_index77","_index78","_index79","_index80","_index81","_index82","_index83","_index84","_index85","_index86","_index87","_index88","_index89","_index90","_index91","_index92","_index93","_index94","_index95","_index96","_index97","_index98","_index99","_index100","_index101","_index102","_index103","_index104","_index105","_index106","_index107","_index108","_index109","_index110","_index111","_index112","_index113","_index114","_index115","_index116","_index117","_index118","_index119","_index120","_index121","_index122","_index123","_index124","_index125","_index126","_index127","_index128","_index129","_index130","_index131","_index132","_index133","_index134","_index135","_index136","_index137","_index138","_index139","_index140","_index141","_index142","_index143","_index144","_index145","_index146","_index147","_index148","_index149","_index150","_index151","_index152","_index153","_index154","_index155","_index156","_index157","_index158","_index159","_index160","_index161","_index162","_index163","_index164","_index165","_index166","_index167","_index168","_index169","_index170","_index171","_index172","_index173","_index174","_index175","_index176","_index177","_index178","_index179","_index180","_index181","_index182","_index183","_index184","_index185","_index186","_index187","_index188","_index189","_index190","_index191","_index192","_index193","_index194","_index195","_index196","_index197","_index198","_index199","_index200","_index201","_index202","_index203","_index204","_index205","_index206","_index207","_index208","_index209","_index210","_index211","_index212","_index213","_index214","_index215","_index216","_index217","_index218","_index219","_index220","_index221","_index222","_index223","_index224","_index225","_index226","_index227","_index228","_index229","_index230","_index231","_index232","_index233","_index234","_index235","_index236","_index237","_index238","_index239","_index240","_index241","_index242","_index243","_index244","_index245","_start","_end","assertPositive","intervalToDuration","remainingMonths","remainingDays","remainingHours","remainingMinutes","remainingSeconds","intlFormat","formatOrLocale","localeOptions","formatOptions","Intl","DateTimeFormat","intlFormatDistance","diffInSeconds","RelativeTimeFormat","localeMatcher","numeric","isAfter","_dateToCompare","isBefore","isEqual","leftDate","rightDate","isExists","isFirstDayOfMonth","isFriday","isFuture","dateStr","isMonday","isPast","dateLeftStartOfDay","dateRightStartOfDay","isSameHour","dateLeftStartOfHour","startOfHour","dateRightStartOfHour","isSameISOWeek","isSameWeek","isSameISOWeekYear","dateLeftStartOfYear","dateRightStartOfYear","isSameMinute","dateLeftStartOfMinute","dateRightStartOfMinute","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isSameSecond","dateLeftStartOfSecond","startOfSecond","dateRightStartOfSecond","dateLeftStartOfWeek","dateRightStartOfWeek","isSameYear","isThisHour","isThisISOWeek","isThisMinute","isThisMonth","isThisQuarter","isThisSecond","isThisWeek","isThisYear","isThursday","isToday","isTomorrow","isTuesday","isWednesday","isWithinInterval","isYesterday","subDays","lastDayOfDecade","lastDayOfISOWeek","lastDayOfWeek","lastDayOfISOWeekYear","fourthOfJanuary","lastDayOfQuarter","lastDayOfYear","lightFormat","tokens","buildFormatLongFn","defaultWidth","formats","buildLocalizeFn","valuesArray","formattingValues","defaultFormattingWidth","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","predicate","findIndex","findKey","valueCallback","buildMatchPatternFn","parseResult","parsePattern","formatDistanceLocale","lessThanXSeconds","one","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","tokenValue","full","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_options","dirtyNumber","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","any","totalDays","totalSeconds","millisecondsToHours","millisecondsToMinutes","millisecondsToSeconds","minutesToHours","minutesToMilliseconds","minutesToSeconds","monthsToQuarters","quarters","monthsToYears","nextDay","nextFriday","nextMonday","nextSaturday","nextSunday","nextThursday","nextTuesday","nextWednesday","referenceDate","subFnOptions","setters","_Setter","DateToSystemTimezoneSetter","usedTokens","parsers","incompatibleTokens","incompatibleToken","find","usedToken","fullToken","run","setter","notWhitespaceRegExp","uniquePrioritySetters","subPriority","setterArray","flags","dateString","ValueSetter","_utcDate","_value","Setter","validateValue","super","timestampIsSet","transpose","timezonePatterns","numericPatterns","hour23h","hour24h","hour11h","hour12h","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","_EraParser","_YearParser","_LocalWeekYearParser","_ISOWeekYearParser","_ExtendedYearParser","_QuarterParser","_StandAloneQuarterParser","_MonthParser","_StandAloneMonthParser","_LocalWeekParser","_ISOWeekParser","_DateParser","_DayOfYearParser","_DayParser","_LocalDayParser","_StandAloneLocalDayParser","_ISODayParser","_AMPMParser","_AMPMMidnightParser","_DayPeriodParser","_Hour1to12Parser","_Hour0to23Parser","_Hour0To11Parser","_Hour1To24Parser","_MinuteParser","_SecondParser","_FractionOfSecondParser","_ISOTimezoneWithZParser","_ISOTimezoneParser","_TimestampSecondsParser","_TimestampMillisecondsParser","EraParser","YearParser","LocalWeekYearParser","ISOWeekYearParser","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","ISOWeekParser","DateParser","DayOfYearParser","DayParser","LocalDayParser","StandAloneLocalDayParser","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","_Parser","_flags","dayPeriodEnumToHours","_constants","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","parseNumericPattern","parseNDigits","isLeapYearIndex","subpriority","setDay","parseNDigitsSigned","mapValue","isPM","setISODay","parseTimezonePattern","setISOWeek","firstWeekOfYear","wholeWeekDays","setWeek","isTwoDigitYear","currentYear","normalizedTwoDigitYear","normalizeTwoDigitYear","parseAnyDigitsSigned","parseFnResult","mapFn","isCommonEra","absCurrentYear","rangeEnd","parseISO","additionalDigits","dateStrings","dateTimeDelimiter","timeString","timeZoneDelimiter","timezone","splitDateString","parseYearResult","captures","restDateString","century","parseYear","dateRegex","isWeekDate","parseDateUnit","_year","validateWeekDate","fourthOfJanuaryDay","setUTCDate","dayOfISOWeekYear","daysInMonths","validateDate","validateDayOfYearDate","parseDate","timeRegex","parseTimeUnit","validateTime","parseTime","getUTCMilliseconds","timezoneString","timezoneRegex","_hours","validateTimezone","parseTimezone","parseJSON","previousDay","previousFriday","previousMonday","previousSaturday","previousSunday","previousThursday","previousTuesday","previousWednesday","quartersToMonths","quartersToYears","roundToNearestHours","nearestTo","fractionalMinutes","fractionalMilliseconds","roundedHours","roundToNearestMinutes","secondsToHours","secondsToMilliseconds","secondsToMinutes","currentDay","dayIndex","setDayOfYear","dateWithDesiredMonth","setQuarter","oldQuarter","setWeekYear","firstWeek","setYear","startOfDecade","startOfToday","startOfTomorrow","cleanDate","startOfYesterday","dateWithoutMonths","subMonths","dateWithoutDays","mstoSub","subBusinessDays","subHours","subMilliseconds","subMinutes","subQuarters","subSeconds","subWeeks","subYears","argStr","fromDate","weeksToDays","yearsToDays","yearsToMonths","yearsToQuarters","o","$","weekdays","ordinal","utcOffset","ms","g","$L","utc","$u","$x","$offset","$d","$y","$M","$D","$W","$H","$m","$s","$ms","$utils","isSame","startOf","endOf","$g","unix","$locale","weekStart","$set","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","extend","$i","isDayjs","en","Ls","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","defaultArrayMerge","getKeys","symbol","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","all","deepmerge_1","$SyntaxError","gopd","nonEnumerable","nonWritable","nonConfigurable","loose","desc","setPrototypeOf","isFrozen","freeze","seal","construct","Reflect","fun","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","addToSet","transformCaseFunc","lcElement","cleanArray","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","NODE_TYPE","cdataSection","entityReference","entityNode","progressingInstruction","documentType","documentFragment","notation","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","createPolicy","ATTR_NAME","hasAttribute","policyName","createHTML","createScriptURL","scriptUrl","createDOMPurify","DOMPurify","removed","nodeType","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","content","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","importNode","hooks","createHTMLDocument","EXPRESSIONS","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","tbody","TRUSTED_TYPES_POLICY","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","_forceRemove","_removeAttribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","createDocument","innerHTML","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","elm","hasChildNodes","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","_isBasicCustomElement","childClone","__removalCount","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrName","keepAttr","allowedAttributes","attr","forceKeepAttr","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","returnNode","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","QueryHandler","MediaQuery","isUnconditional","mql","matchMedia","currentTarget","assess","constuctor","addHandler","handler","qh","removeHandler","destroy","Util","isFunction","MediaQueryDispatch","queries","browserIsIncapable","register","shouldDegrade","unregister","deferSetup","setup","initialised","unmatch","EvalError","ReferenceError","SyntaxError","URIError","Events","EE","once","_eventsCount","clearEvent","eventNames","names","ee","listenerCount","a1","a2","a3","a4","a5","prefixed","_maxListeners","isObject","isUndefined","defaultMaxListeners","setMaxListeners","er","newListener","warned","trace","fired","evlistener","isCallable","toStr","receiver","forEachArray","forEachString","forEachObject","concatty","bound","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","decodeURI","encodeURI","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Map","Proxy","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","first","last","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","hasPropertyDescriptors","hasArrayLengthDefineBug","$Object","origSymbol","hasSymbolSham","sym","symObj","syms","$hasOwn","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","GeneratorFunction","isFnRegex","generatorFunc","getGeneratorFunc","whichTypedArray","keysSeen","key2","isFalse","trimLeft","TYPE_NUMBER","TYPE_STRING","TYPE_NAME_TABLE","TOK_EOF","TOK_UNQUOTEDIDENTIFIER","TOK_QUOTEDIDENTIFIER","TOK_RBRACKET","TOK_RPAREN","TOK_COMMA","TOK_COLON","TOK_RBRACE","TOK_NUMBER","TOK_CURRENT","TOK_EXPREF","TOK_PIPE","TOK_OR","TOK_AND","TOK_EQ","TOK_GT","TOK_LT","TOK_GTE","TOK_LTE","TOK_NE","TOK_FLATTEN","TOK_STAR","TOK_FILTER","TOK_DOT","TOK_NOT","TOK_LBRACE","TOK_LBRACKET","TOK_LPAREN","TOK_LITERAL","basicTokens","operatorStartToken","skipChars","isNum","Lexer","tokenize","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","startingChar","literalString","_looksLikeJSON","ex","bindingPower","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","avg","_functionAvg","_functionCeil","contains","_functionContains","_functionEndsWith","_functionFloor","_functionLength","_functionMap","_functionMax","_functionMerge","variadic","_functionMaxBy","sum","_functionSum","_functionStartsWith","_functionMin","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","_functionSortBy","_functionJoin","_functionReverse","_functionToArray","_functionToString","_functionToNumber","_functionNotNull","expression","_loadTokens","ast","_lookahead","_lookaheadToken","rbp","leftToken","_advance","nud","currentToken","led","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","keyToken","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","objValues","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","typeIdentifier","argValue","subtype","searchStr","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","sortedArray","requiredType","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","camel2hyphen","obj2mq","mq","feature","isDimension","stdOnEnd","script","ieOnEnd","charset","attrs","setAttributes","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","isObjectLike","isSymbol","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","isInvoking","leadingEdge","cancel","safeIsNaN","areInputsEqual","newInputs","lastInputs","resultFn","lastResult","calledOnce","newArgs","modules","installedModules","__webpack_require__","moduleId","getter","DEVICE_TYPES","MOBILE","TABLET","SMART_TV","CONSOLE","WEARABLE","BROWSER","BROWSER_TYPES","CHROME","FIREFOX","OPERA","YANDEX","SAFARI","INTERNET_EXPLORER","EDGE","CHROMIUM","IE","MOBILE_SAFARI","EDGE_CHROMIUM","OS_TYPES","IOS","ANDROID","WINDOWS_PHONE","WINDOWS","MAC_OS","defaultData","isMobile","isTablet","isSmartTV","isConsole","isWearable","UAParser","_require","_require2","checkType","broPayload","mobilePayload","wearPayload","consolePayload","stvPayload","getNavigatorInstance","isIOS13Check","UA","getBrowser","device","getDevice","getEngine","os","getOS","ua","getUA","isEdgeChromiumType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isMobileOnly","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osVersion","osName","fullBrowserVersion","major","browserVersion","browserName","mobileVendor","vendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","nav","maxTouchPoints","MSStream","getIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","deviceDetect","__WEBPACK_AMD_DEFINE_RESULT__","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","MODEL","NAME","TYPE","VENDOR","ARCHITECTURE","SMARTTV","extensions","margedRegexes","str1","str2","lowerize","mapper","rgx","maps","oldsafari","amazon","sprint","HTC","Sprint","windows","ME","XP","Vista","RT","cpu","uastring","getResult","rgxmap","getCPU","architecture","setUA","MAJOR","CPU","DEVICE","EMBEDDED","ENGINE","OS","jQuery","Zepto","__webpack_amd_options__","browserMajorVersion","browserFullVersion","canUseDOM","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","_populated","_populate","uas","documentMode","trident","ver","UserAgent_DEPRECATED","ie","ieCompatibilityMode","ie64","firefox","opera","webkit","safari","chrome","osx","linux","iphone","mobile","nativeApp","android","ipad","useHasFeature","hasFeature","eventNameSuffix","capture","isEventSupported","normalizeWheel","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","getEventType","propIsEnumerable","test1","test2","test3","letter","shouldUseNative","symbols","to","toObject","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","getShim","isRequired","ReactPropTypes","bigint","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","eq","regexp","maxKeys","kstr","vstr","stringifyPrimitive","ks","ariaLabelsShape","_propTypes","dateInput","monthPicker","yearPicker","prevButton","nextButton","_react","_DayCell","_Month","_DateInput","_classnames","_reactList","_shallowEqual","_dateFns","_enUS","_styles","_accessibility","_defineProperty","toPrimitive","_toPrimitive","_toPropertyKey","Calendar","PureComponent","_props","preventUnnecessary","scroll","preventSnapRefocus","focusedDateDiff","focusedDate","isAllowedForward","calendarFocus","isAllowedBackward","setState","targetMonthIndex","minDate","dateOptions","visibleMonths","getVisibleRange","isFirstRender","scrollTo","newFocus","calcFocusDate","focusToDate","preview","onShownDateChange","maxDate","modeMapper","monthOffset","newDate","rangesIndex","rangeItemIndex","onRangeFocusChange","visibleMonth","changeShownDate","showMonthArrow","showMonthAndYearPickers","ariaLabels","upperYearLimit","lowerYearLimit","onMouseUp","stopPropagation","monthAndYearWrapper","nextPrevButton","onClick","monthAndYearPickers","onChange","monthNames","monthAndYearDivider","focusedRange","ranges","rangeColors","dateDisplayFormat","editableDateInputs","startDatePlaceholder","endDatePlaceholder","defaultColor","dateDisplayWrapper","range","showDateDisplay","dateDisplay","dateDisplayItem","dateDisplayItemActive","placeholder","ariaLabel","onDragSelectionEnd","handleRangeFocusChange","dragSelectionEnabled","drag","disablePreview","updateRange","displayMode","newRange","scrollArea","listSizeCache","monthWidth","monthStep","getMonthDisplayRange","longMonthHeight","monthHeight","generateStyles","getMonthNames","calcScrollArea","calendarWidth","calendarHeight","componentDidMount","componentDidUpdate","prevProps","targetProp","dateRange","updateShownDate","shallowEqualObjects","renderWeekdays","weekDays","weekDay","weekdayDisplayFormat","onPreviewChange","disabledDates","disabledDay","navigatorRenderer","isVertical","monthAndYearRenderer","renderMonthAndYear","calendarWrapper","onMouseLeave","renderDateDisplay","infiniteMonths","monthsVertical","monthsHorizontal","onScroll","handleScroll","treshold","itemSizeEstimator","estimateMonthSize","itemRenderer","updatePreview","onDragSelectionStart","onDragSelectionMove","showMonthName","showWeekDays","monthDisplayFormat","dayDisplayFormat","showPreview","fixedHeight","shownDate","rangeShape","initialFocusedRange","DateInput","changed","invalid","onKeyDown","_Calendar","DateRange","isSingleValue","moveRangeOnFirstSelection","retainEndDateOnFirstSelection","selectedRange","nextFocusRange","dayOffset","calculateEndDate","isStartDateSelected","inValidDatesWithinRange","disabledDate","findNextRangeIndex","wasValid","focusedRangeIndex","newSelection","calcNewSelection","dateRangeWrapper","setSelection","calendar","_DateRange","_DefinedRange","DateRangePicker","dateRangePickerWrapper","DayCell","onMouseDown","keyCode","onMouseEnter","stateChanges","isPassive","isStartOfWeek","isEndOfWeek","isStartOfMonth","isEndOfMonth","dayPassive","dayDisabled","dayToday","dayWeekend","dayStartOfWeek","dayEndOfWeek","dayStartOfMonth","dayEndOfMonth","dayHovered","dayActive","isInRange","isStartEdge","isEndEdge","dayStartPreview","dayInPreview","dayEndPreview","startEdge","endEdge","inRange","dayContentRenderer","handleMouseEvent","onPauseCapture","handleKeyEvent","onKeyUp","getClassNames","tabIndex","renderSelectionPlaceholders","renderPreviewPlaceholder","dayNumber","autoFocus","previewColor","_defaultRanges","_InputRangeField","DefinedRange","rangeOffset","focusedInput","getRangeOptionValue","option","getCurrentValue","getSelectedRange","staticRange","isSelected","headerContent","footerContent","inputRanges","staticRanges","renderStaticRangeLabel","definedRangesWrapper","labelContent","hasCustomRendering","staticRangeSelected","handleRangeChange","onMouseOver","staticRangeLabel","rangeOption","defaultInputRanges","defaultStaticRanges","InputRangeField","shouldComponentUpdate","nextProps","inputRange","inputRangeInput","inputRangeLabel","Month","monthDisplay","startDateOfMonth","endDateOfMonth","isOutsideMinMax","isDisabledSpecifically","some","isDisabledDay","dragRange","createStaticRanges","defineds","startOfLastWeek","endOfLastWeek","startOfLastMonth","endOfLastMonth","staticRangeHandler","definedRange","_DateRangePicker","daySelected","currentFocusedDate","targetInterval","targetDate","currentRangeIndex","nextIndex","sources","styleSource","startDateOfCalendar","endDateOfCalendar","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","_context","_init","Ra","Sa","Va","_valueTracker","stopTracking","Ua","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","bb","db","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","nb","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","lineClamp","qb","rb","sb","setProperty","tb","menuitem","area","br","col","embed","hr","img","keygen","link","meta","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Vb","alternate","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","jd","kd","ld","nd","od","charCode","pd","qd","rd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","getModifierState","zd","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","which","Rd","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaZ","Zd","ae","be","ce","de","fe","ge","he","le","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","Pe","Qe","Re","Se","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","Hf","Jf","queueMicrotask","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_owner","_stringRef","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","ah","_currentValue","bh","childLanes","dependencies","firstContext","lanes","dh","eh","memoizedValue","fh","gh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","lh","mh","eventTime","lane","nh","oh","ph","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","queue","Uh","Vh","Wh","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","readContext","useCallback","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","isPureReactComponent","Gi","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","ReactCurrentOwner","Xi","Yi","Zi","aj","bj","cj","dj","baseLanes","cachePool","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onclick","createElementNS","Gj","Hj","Ij","Jj","U","Kj","V","Lj","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","nl","ol","rl","ql","unmount","unstable_scheduleHydration","sl","usingClientEntryPoint","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","sortIndex","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","it","titleCase","redactingEmail","_str","title","smallWords","mightBeEmail","redacted","redactEmail","GA4","_gtag","_format","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","_typeof","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","ownKeys","enumerableOnly","_objectSpread","getOwnPropertyDescriptors","defineProperties","_slicedToArray","_arrayWithHoles","_s","_e","_x","_r","_n","_d","_iterableToArrayLimit","_nonIterableRest","minLen","arr2","_defineProperties","hint","prim","Constructor","_classCallCheck","isInitialized","_testMode","_currentMeasurementId","_hasLoadedGA","_isQueuing","_queueGtag","GA_MEASUREMENT_ID","gtagUrl","dataLayer","gtag","gaOptions","mapFields","cookieUpdate","cookieExpires","cookieDomain","cookieFlags","userId","clientId","anonymizeIp","contentGroup1","contentGroup2","contentGroup3","contentGroup4","contentGroup5","allowAdFeatures","allowAdPersonalizationSignals","nonInteraction","page","hitCallback","initConfigs","trackingId","gtagOptions","_options$testMode","testMode","_loadGA","mergedGtagOptions","_toGtagOptions","queues","fieldsObject","_gaCommand","eventCategory","eventAction","eventLabel","eventValue","event_category","event_label","non_interaction","_gaCommandSendEvent","_args$","hitType","timingCategory","timingVar","timingValue","timingLabel","_this$_toGtagOptions","page_path","page_title","page_location","_len3","_key3","_gaCommandSendPageview","_args$2","_len4","_key4","_gaCommandSendEventParameters","_gaCommandSendPageviewParameters","_gaCommandSendTiming","_len5","_key5","command","_len6","_key6","_gaCommandSend","_gaCommandSet","_len7","_key7","readyCallback","ga","optionsOrName","category","transport","fieldObject","protoProps","staticProps","_window","_ga","nodeInterop","newObj","hasPropertyDescriptor","cacheBabelInterop","cacheNodeInterop","ns","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","buildAbsoluteURL","baseURL","relativeURL","alwaysNormalize","basePartsForNormalise","parseURL","normalizePath","buildURLFromParts","relativeParts","baseParts","netLoc","pathParts","builtParts","baseURLPath","newPath","webpackBootstrapFunc","ENTRY_MODULE","moduleNameReqExp","dependencyRegExp","quoteRegExp","getModuleDependencies","queueName","retval","fnString","wrapperSignature","webpackRequireName","hasValuesInQueues","hasValues","requiredModules","modulesQueue","seenModules","moduleToCheck","newModules","newModulesKeys","getRequiredModules","entryModule","bare","workerUrl","webkitURL","mozURL","msURL","createObjectURL","worker","objectURL","AESCrypto","subtle","iv","aesIV","decrypt","fast_aes_key","FastAESKey","expandKey","importKey","aes_decryptor","AESDecryptor","rcon","subMix","invSubMix","sBox","invSBox","initTable","uint8ArrayToUint32Array_","newArray","subMix0","subMix1","subMix2","subMix3","invSubMix0","invSubMix1","invSubMix2","invSubMix3","x2","x4","x8","keyBuffer","sameKey","keySize","ksRow","invKsRow","ksRows","keySchedule","invKeySchedule","sbox","networkToHostOrderSwap","word","inputArrayBuffer","removePKCS7Padding","t0","t3","s0","s1","s2","s3","inputWords0","inputWords1","inputWords2","inputWords3","nRounds","invSBOX","initVector","initVector0","initVector1","initVector2","initVector3","inputInt32","outputInt32","swapWord","outputBytes","paddingBytes","getUint8","removePadding","get_self_scope","decrypter_Decrypter","Decrypter","observer","_temp","_ref$removePKCS7Paddi","logEnabled","browserCrypto","webkitSubtle","disableWebCrypto","isSync","enableSoftwareAES","decryptor","fastAesKey","aesKey","onWebCryptoError","trigger","ERROR","MEDIA_ERROR","details","FRAG_DECRYPT_ERROR","fatal","__webpack_exports__","isHeaderPattern","getHeaderLength","getFullFrameLength","isHeader","adts_probe","headerLength","frameLength","newOffset","initTrackConfig","audioCodec","samplerate","adtsObjectType","adtsSampleingIndex","adtsExtensionSampleingIndex","adtsChanelConfig","manifestCodec","adtsSampleingRates","channelCount","codec","FRAG_PARSING_ERROR","getAudioConfig","getFrameDuration","appendFrame","pts","frameIndex","frameDuration","stamp","parseFrameHeader","aacSample","dts","samples","sample","aacdemuxer","aacdemuxer_AACDemuxer","AACDemuxer","remuxer","resetInitSegment","initSegment","videoCodec","_audioTrack","sequenceNumber","isAAC","inputTimeScale","resetTimeStamp","probe","id3","getID3Data","timeOffset","contiguous","accurateTimeOffset","id3Data","getTimeStamp","id3Samples","frame","remux","MpegAudio","BitratesMap","SamplingRateMap","SamplesCoefficients","BytesInSlot","parseHeader","samplesPerFrame","sampleRate","headerB","headerC","headerE","headerF","headerG","columnInBitrates","bitRate","columnInSampleRates","sampleCoefficient","bytesInSlot","mpegaudio","exp_golomb","exp_golomb_ExpGolomb","ExpGolomb","bytesAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLZ","leadingZeroCount","skipUEG","skipEG","readUEG","clz","readEG","readBoolean","readUByte","readUShort","readUInt","skipScalingList","lastScale","nextScale","readSPS","profileIdc","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","chromaFormatIdc","picOrderCntType","pixelRatio","readSliceType","sample_aes","sample_aes_SampleAesDecrypter","SampleAesDecrypter","decryptdata","discardEPB","decrypter","crypt_decrypter","decryptBuffer","encryptedData","decryptAacSample","sampleIndex","curUnit","encryptedBuffer","localthis","decryptedData","decryptAacSamples","getAvcEncryptedData","decodedData","encryptedDataLen","outputPos","inputPos","getAvcDecryptedUnit","decryptAvcSample","unitIndex","decryptAvcSamples","curUnits","RemuxerTrackIdConfig","video","audio","tsdemuxer","tsdemuxer_TSDemuxer","TSDemuxer","typeSupported","sampleAes","pmtUnknownTypes","setDecryptData","syncOffset","_syncOffset","scanwindow","createTrack","pid","dropped","pmtParsed","_pmtId","_avcTrack","_id3Track","_txtTrack","aacOverFlow","aacLastPTS","avcSample","_duration","stt","pes","unknownPIDs","avcTrack","audioTrack","id3Track","avcId","audioId","id3Id","pmtId","avcData","pesData","audioData","parsePAT","_parsePAT","parsePMT","_parsePMT","parsePES","_parsePES","parseAVCPES","_parseAVCPES","parseAACPES","_parseAACPES","parseMPEGPES","_parseMPEGPES","parseID3PES","_parseID3PES","parsedPIDs","mpeg","mp3","avc","decryptAndRemux","videoTrack","textTrack","decryptAndRemuxAvc","_initPTS","_initDTS","_trackUnknownPmt","logLevel","mpegSupported","isSampleAes","tableEnd","frag","pesFlags","pesLen","pesHdrLen","pesPts","pesDts","payloadStartOffset","newData","dataLen","pushAccesUnit","nbSamples","lastSample","forceKeyFrameOnDiscontinuity","sps","debug","expGolombDecoder","_parseAVCNALu","spsfound","createAVCSample","audFound","sliceType","payloadType","payloadSize","endOfCaptions","totalCCs","_insertSampleInOrder","uuidStrArray","userDataPayloadBytes","userDataBytes","userData","codecarray","codecstring","pps","_getLastNalUnit","lastUnit","lastUnitType","naluState","lastState","lastUnitStart","_lastUnit","_tmp","newLength","EPBPositions","sourceIndex","newPTS","mp3demuxer","mp3demuxer_MP3Demuxer","MP3Demuxer","aac_helper","AAC","getSilentFrame","UINT32_MAX","MP4","avc1","avcC","btrt","dinf","dref","esds","ftyp","hdlr","mdat","mdhd","mdia","mfhd","minf","moof","moov","mp4a","mvex","mvhd","pasp","sdtp","stbl","stco","stsc","stsd","stsz","stts","tfdt","tfhd","traf","trak","trun","trex","tkhd","vmhd","smhd","videoHdlr","audioHdlr","HDLR_TYPES","STTS","STSC","STCO","STSZ","VMHD","SMHD","STSD","majorBrand","avc1Brand","minorVersion","FTYP","box","DINF","timescale","upperWordDuration","lowerWordDuration","sn","baseMediaDecodeTime","tracks","boxes","dependsOn","isDependedOn","hasRedundancy","avcc","hSpacing","vSpacing","configlen","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","cts","arraylen","isLeading","paddingValue","isNonSync","degradPrio","movie","mp4_generator","toTimescaleFromBase","destScale","srcBase","toMsFromMpegTsClock","toMpegTsClockFromTimescale","srcScale","MAX_SILENT_FRAME_DURATION_90KHZ","PTS_DTS_SHIFT_TOLERANCE_90KHZ","chromeVersion","PTSNormalize","mp4_remuxer","mp4_remuxer_MP4Remuxer","MP4Remuxer","ISGenerated","defaultTimeStamp","getVideoStartPts","videoSamples","rolloverDetected","startPTS","minPTS","generateIS","nbAudioSamples","nbVideoSamples","audioTimeOffset","videoTimeOffset","audiovideoTimestampDelta","audioTrackLength","remuxAudio","endPTS","remuxVideo","videoData","remuxEmptyAudio","remuxID3","remuxText","FRAG_PARSED","initPTS","initDTS","audioSamples","computePTSDTS","startOffset","INIT_PTS_FOUND","FRAG_PARSING_INIT_SEGMENT","mp4SampleDuration","firstDTS","lastDTS","timeScale","inputSamples","outputSamples","POSITIVE_INFINITY","maxPTS","NEGATIVE_INFINITY","ptsDtsShift","sortSamples","nextAvcDts","deltadts","deltapts","averageSampleDuration","lastDts","_i2","foundHole","firstPTS","nbNalu","naluLen","_i3","_sample","nbUnits","sampleLen","mdatSize","MUX_ERROR","REMUX_ALLOC_ERROR","_i4","compositionTimeOffset","avcSampleUnits","mp4SampleLength","_j","_nbUnits","unitData","unitDataLen","lastFrameDuration","stretchShortVideoTrack","maxBufferHole","gapTolerance","deltaToFrameEnd","nextAudioPts","data1","data2","startDTS","endDTS","hasAudio","hasVideo","FRAG_PARSING_DATA","mp4Sample","fillFrame","lastPTS","mp4timeScale","scaleFactor","inputSampleDuration","rawMPEG","maxAudioFramesDrift","nextPts","missing","newStamp","_j2","_nbSamples","audioSample","_pts","_delta","numMissingFrames","_i5","unitLen","lastSampleDuration","silentFrame","FRAG_PARSING_METADATA","FRAG_PARSING_USERDATA","passthrough_remuxer","passthrough_remuxer_PassThroughRemuxer","PassThroughRemuxer","rawData","streamType","demuxer_inline_DemuxerInline","DemuxerInline","demuxer","discontinuity","trackSwitch","defaultInitPTS","FRAG_DECRYPTED","stats","tstart","tdecrypt","pushDecrypted","mux","muxConfig","demux","mp4demuxer","_demux_demuxer_inline__WEBPACK_IMPORTED_MODULE_0__","_events__WEBPACK_IMPORTED_MODULE_1__","_utils_logger__WEBPACK_IMPORTED_MODULE_2__","eventemitter3__WEBPACK_IMPORTED_MODULE_3__","forwardMessage","ev","cmd","transferable","utf8ArrayToStr","decoder","_utils_get_self_scope__WEBPACK_IMPORTED_MODULE_0__","ID3","isFooter","front","_readSize","frames","getID3Frames","isTimeStampFrame","_readTimeStamp","_getFrameData","frameData","_decodeFrame","_decodePrivFrame","_decodeURLFrame","_decodeTextFrame","timeStampFrame","pts33Bit","owner","_utf8ArrayToStr","privateData","description","exitOnNull","getTextDecoder","char2","char3","TextDecoder","_utils_logger__WEBPACK_IMPORTED_MODULE_0__","MP4Demuxer","initData","parseInitSegment","audiovideo","findBox","bin2str","readUint16","readUint32","writeUint32","subresults","endbox","parseSegmentIndex","references","moovEndOffset","sidx","startByte","referencesCount","referenceIndex","referenceInfo","referenceSize","subsegmentDuration","earliestPresentationTime","trackId","codecBox","codecType","getStartDTS","trafs","baseTimes","baseTime","offsetStartDTS","upper","lower","_startDTS","ErrorTypes","ErrorDetails","MEDIA_ATTACHING","MEDIA_ATTACHED","MEDIA_DETACHING","MEDIA_DETACHED","BUFFER_RESET","BUFFER_CODECS","BUFFER_CREATED","BUFFER_APPENDING","BUFFER_APPENDED","BUFFER_EOS","BUFFER_FLUSHING","BUFFER_FLUSHED","MANIFEST_LOADING","MANIFEST_LOADED","MANIFEST_PARSED","LEVEL_SWITCHING","LEVEL_SWITCHED","LEVEL_LOADING","LEVEL_LOADED","LEVEL_UPDATED","LEVEL_PTS_UPDATED","LEVELS_UPDATED","AUDIO_TRACKS_UPDATED","AUDIO_TRACK_SWITCHING","AUDIO_TRACK_SWITCHED","AUDIO_TRACK_LOADING","AUDIO_TRACK_LOADED","SUBTITLE_TRACKS_UPDATED","SUBTITLE_TRACK_SWITCH","SUBTITLE_TRACK_LOADING","SUBTITLE_TRACK_LOADED","SUBTITLE_FRAG_PROCESSED","CUES_PARSED","NON_NATIVE_TEXT_TRACKS_FOUND","FRAG_LOADING","FRAG_LOAD_PROGRESS","FRAG_LOAD_EMERGENCY_ABORTED","FRAG_LOADED","FRAG_BUFFERED","FRAG_CHANGED","FPS_DROP","FPS_DROP_LEVEL_CAPPING","DESTROYING","KEY_LOADING","KEY_LOADED","STREAM_STATE_TRANSITION","LIVE_BACK_BUFFER_REACHED","PlaylistContextType","PlaylistLevelType","FORBIDDEN_EVENT_NAMES","event_handler_EventHandler","EventHandler","hls","handledEvents","useGenericHandler","onEvent","registerListeners","onHandlerDestroying","unregisterListeners","onHandlerDestroyed","isEventHandler","onEventGeneric","funcName","OTHER_ERROR","INTERNAL_EXCEPTION","event_handler","ElementaryStreamTypes","level_key_LevelKey","LevelKey","baseURI","relativeURI","_uri","baseuri","reluri","url_toolkit","fragment_Fragment","_url","_byteRange","_decryptdata","_elementaryStreams","AUDIO","VIDEO","deltaPTS","rawProgramDateTime","programDateTime","tagList","relurl","baseurl","urlId","level","levelkey","loader","setByteRange","previousFrag","byteRange","byteRangeEndOffset","addElementaryStream","hasElementaryStream","createInitializationVector","segmentNumber","uint8View","setDecryptDataFromLevelKey","level_Level","Level","baseUrl","endCC","endSN","fragments","live","needSidxRanges","startCC","startSN","startTimeOffset","targetduration","totalduration","DECIMAL_RESOLUTION_REGEX","ATTR_LIST_REGEX","attr_list","AttrList","parseAttrList","decimalInteger","intValue","hexadecimalInteger","hexadecimalIntegerAsNumber","decimalFloatingPoint","enumeratedString","decimalResolution","sampleEntryCodesISO","isCodecSupportedInMp4","MediaSource","isTypeSupported","MASTER_PLAYLIST_REGEX","MASTER_PLAYLIST_MEDIA_REGEX","LEVEL_PLAYLIST_REGEX_FAST","LEVEL_PLAYLIST_REGEX_SLOW","MP4_REGEX_SUFFIX","m3u8_parser_M3U8Parser","findGroup","groups","mediaGroupId","group","convertAVC1ToAVCOTI","avcdata","parseMasterPlaylist","levels","sessionData","hasSessionData","setCodecs","codecs","typeCodes","isCodecType","preferred","unknownCodecs","M3U8Parser","resolution","bitrate","CODECS","sessionAttrs","parseMasterPlaylistMedia","audioGroups","medias","media","groupId","instreamId","LANGUAGE","DEFAULT","autoselect","AUTOSELECT","forced","FORCED","lang","URI","groupCodec","parseLevelPlaylist","levelUrlId","currentSN","discontinuityCounter","prevFrag","firstPdtIndex","assignProgramDateTime","value1","value2","keyAttrs","decryptmethod","decrypturi","decryptiv","KEYFORMAT","mapAttrs","BYTERANGE","averagetargetduration","startIndex","fragPrev","backfillProgramDateTimes","endProgramDateTime","playlist_loader","playlist_loader_PlaylistLoader","PlaylistLoader","_EventHandler","loaders","canHaveQualityLevels","AUDIO_TRACK","SUBTITLE_TRACK","mapContextToLevelType","SUBTITLE","MAIN","getResponseUrl","createInternalLoader","PLoader","pLoader","Loader","getInternalLoader","resetInternalLoader","destroyInternalLoaders","onManifestLoading","MANIFEST","onLevelLoading","LEVEL","onAudioTrackLoading","onSubtitleTrackLoading","maxRetry","maxRetryDelay","loaderContext","manifestLoadingMaxRetry","manifestLoadingTimeOut","manifestLoadingRetryDelay","manifestLoadingMaxRetryTimeout","levelLoadingTimeOut","levelLoadingMaxRetry","levelLoadingRetryDelay","levelLoadingMaxRetryTimeout","loaderConfig","loaderCallbacks","onSuccess","loadsuccess","loaderror","onTimeout","loadtimeout","networkDetails","isSidxRequest","_handleSidxRequest","_handlePlaylistLoaded","tload","_handleTrackOrLevelPlaylist","_handleMasterPlaylist","_handleManifestParsingError","_handleNetworkError","_M3U8Parser$parseMast","audioTracks","subtitles","captions","embeddedAudioFound","levelId","levelType","levelDetails","singleLevel","tparsed","sidxUrl","rangeStart","NETWORK_ERROR","LEVEL_EMPTY_ERROR","sidxInfo","sidxReferences","segmentRef","segRefInfo","MANIFEST_PARSING_ERROR","MANIFEST_LOAD_TIMEOUT","MANIFEST_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","LEVEL_LOAD_ERROR","AUDIO_TRACK_LOAD_TIMEOUT","AUDIO_TRACK_LOAD_ERROR","errorData","fragment_loader","fragment_loader_FragmentLoader","FragmentLoader","loaderName","onFragLoading","FragmentILoader","fLoader","DefaultILoader","progressData","byteRangeStartOffset","fragLoadingTimeOut","fragLoadingMaxRetryTimeout","onProgress","loadprogress","FRAG_LOAD_ERROR","FRAG_LOAD_TIMEOUT","key_loader","key_loader_KeyLoader","KeyLoader","decryptkey","decrypturl","onKeyLoading","fragLoadingRetryDelay","KEY_LOAD_ERROR","KEY_LOAD_TIMEOUT","FragmentState","fragment_tracker_FragmentTracker","FragmentTracker","bufferPadding","timeRanges","getBufferedFrag","bufferedFrags","fragmentEntity","buffered","bufferedFragKey","detectEvictedFragments","elementaryStream","timeRange","_this2","esData","fragmentTimes","isTimeBuffered","removeFragment","detectPartialFragments","_this3","fragKey","getFragmentKey","getBufferedTimes","fragmentPartial","partial","getPartialFragment","timePadding","_this4","bestFragment","bestOverlap","isPartial","getState","onFragLoaded","bitrateTest","onBufferAppended","_this5","onFragBuffered","hasFragment","removeAllFragments","binary_search","comparisonFn","minIndex","maxIndex","currentIndex","currentElement","comparisonResult","BufferHelper","isBuffered","bufferInfo","maxHoleDuration","vbuffered","bufferedInfo","nextStart","buffered2","buf2len","buf2end","bufferStartNext","bufferLen","bufferStart","bufferEnd","getMediaSource","WebKitMediaSource","Observer","_EventEmitter","eventemitter3","demuxer_MediaSource","demux_demuxer","demuxer_Demuxer","Demuxer","mp4","enableWorker","webworkify_webpack","onwmsg","onWorkerMessage","lineno","revokeObjectURL","demuxer_inline","terminate","lastFrag","nextSN","addGroupId","audioGroupIds","textGroupIds","updatePTS","fromIdx","toIdx","fragFrom","fragTo","fragToPTS","minEndPTS","updateFragPTSDTS","maxStartPTS","drift","fragIdx","PTSKnown","mergeDetails","oldDetails","newDetails","PTSFrag","ccOffset","mapFragmentIntersection","oldFrag","newFrag","backtracked","newFragments","oldPlaylist","newPlaylist","oldFragments","adjustSliding","intersectionFn","computeReloadInterval","currentPlaylist","lastRequestTime","reloadInterval","minReloadInterval","time_ranges","adjustPts","sliding","alignStream","lastLevel","shouldAlign","shouldAlignOnDiscontinuities","referenceFrag","prevDetails","curDetails","prevFrags","curFrags","prevStartFrag","firstFrag","currentFrag","findFirstFragWithCC","findDiscontinuousReferenceFrag","alignDiscontinuities","lastDetails","hasProgramDateTime","lastPDT","alignPDT","findFragmentByPDT","PDTValue","maxFragLookUpTolerance","seg","pdtWithinToleranceTest","findFragmentByPTS","fragPrevious","fragNext","fragmentWithinToleranceTest","foundFragment","candidate","candidateLookupTolerance","pdtBufferEnd","gap_controller_GapController","GapController","fragmentTracker","nudgeRetry","stallReported","stalled","moved","seeking","poll","lastCurrentTime","seeked","beginSeek","paused","ended","playbackRate","hasEnoughBuffer","noBufferGap","startJump","_trySkipBufferHole","tnow","stalledDuration","_reportStall","bufferedWithHoles","_tryFixBufferStall","_stalledDuration","stalledDurationMs","highBufferWatchdogPeriod","_tryNudgeBuffer","BUFFER_STALLED_ERROR","lastEndTime","targetTime","BUFFER_SEEK_OVER_HOLE","nudgeMaxRetry","nudgeOffset","BUFFER_NUDGE_ON_STALL","TaskLoop","_boundTick","_tickTimer","_tickInterval","_tickCallCount","tick","_assertThisInitialized","clearNextTick","clearInterval","hasInterval","hasNextTick","setInterval","millis","doTick","State","base_stream_controller_BaseStreamController","startLoad","stopLoad","fragCurrent","_streamEnded","fragState","onMediaSeeking","mediaBuffer","tolerance","fragStartOffset","fragEndOffset","loadedmetadata","nextLoadPosition","startPosition","onMediaEnded","_TaskLoop","computeLivePosition","targetLatency","liveSyncDuration","liveSyncDurationCount","chromeOrFirefox","stream_controller","stream_controller_StreamController","StreamController","_BaseStreamController","audioCodecSwap","_state","gapController","altAudio","audioOnly","fragLoadError","startFragRequested","startLevel","testBandwidth","nextAutoLevel","nextLoadLevel","forceStartLoad","_doTickIdle","retryDate","_checkBuffer","_checkFragmentChanged","levelLastLoaded","startFragPrefetch","levelInfo","maxBufLen","levelBitrate","maxBufferSize","maxBufferLength","maxMaxBufferLength","_fetchPayloadOrEos","fragLen","initialLiveManifestSize","_ensureFragmentAtLivePoint","_findFragment","encrypted","_loadKey","_loadFragment","maxLatency","liveMaxLatencyDuration","liveMaxLatencyDurationCount","liveSyncPosition","targetSN","fragPreviousLoad","fragmentIndexRange","fragNextLoad","curSNIdx","sameLevel","prevSnFrag","nextSnFrag","autoLevel","autoLevelEnabled","_reduceMaxBufferLength","followingBufferedFrag","fragPlayingCurrent","fragPlaying","fragPlayingLevel","immediateLevelSwitch","immediateSwitch","previouslyPaused","pause","flushMainBuffer","immediateLevelSwitchEnd","play","nextLevelSwitch","fetchdelay","nextLevelId","nextLevel","fragLastKbps","bufferedFrag","nextBufferedFrag","startPts","endOffset","flushScope","onMediaAttached","onvseeking","onvseeked","onMediaSeeked","onvended","autoStartLoad","onMediaDetaching","onManifestParsed","aac","heaac","audioCodecSwitch","onLevelLoaded","newLevelId","curLevel","onKeyLoaded","fragLoaded","currentLevel","tbuffered","pendingBuffering","appended","initSegmentData","_getAudioCodec","onFragParsingInitSegment","fragNew","trackName","levelCodec","onFragParsingData","onFragParsed","_checkAppendedParsed","onAudioTrackSwitching","fromAltAudio","onAudioTrackSwitched","videoBuffer","onBufferCreated","mediaTrack","tfirst","mediaBuffered","fragLoadingMaxRetry","levelRetry","BUFFER_FULL_ERROR","minLength","_seekToStartPos","onFragLoadEmergencyAborted","onBufferFlushed","elementaryStreamType","onLevelsUpdated","swapAudioCodec","defaultAudioCodec","nextState","previousState","_liveSyncPosition","level_controller_LevelController","LevelController","canload","currentLevelIndex","manualLevelIndex","timer","clearTimer","_levels","levelRetryCount","loadError","loadLevel","onManifestLoaded","bitrateStart","levelSet","levelFromSet","videoCodecFound","audioCodecFound","fragmentError","SUBTITLES","_firstLevel","firstLevel","MANIFEST_INCOMPATIBLE_CODECS_ERROR","setLevelInternal","newLevel","levelProperties","LEVEL_SWITCH_ERROR","levelIndex","levelError","recoverLevel","errorEvent","redundantLevels","errorDetails","trequest","audioGroupId","levelObject","removeLevel","_startLevel","configStartLevel","sendAddTrackEvent","videoEl","Event","createEvent","initEvent","clearCurrentCues","cues","removeCue","id3_track_controller","id3_track_controller_ID3TrackController","ID3TrackController","getID3Track","textTracks","kind","addTextTrack","onFragParsingMetadata","Cue","WebKitDataCue","VTTCue","TextTrackCue","cue","addCue","onLiveBackBufferReached","foundCue","mid","getClosestCue","ewma","EWMA","halfLife","alpha_","estimate_","totalWeight_","exp","weight","adjAlpha","getTotalWeight","getEstimate","zeroFactor","ewma_bandwidth_estimator","ewma_bandwidth_estimator_EwmaBandWidthEstimator","EwmaBandWidthEstimator","slow","fast","defaultEstimate","defaultEstimate_","minWeight_","minDelayMs_","slow_","fast_","durationMs","durationS","bandwidthInBps","canEstimate","abr_controller_performance","abr_controller","abr_controller_AbrController","AbrController","lastLoadedFragLevel","_nextAutoLevel","_bwEstimator","onCheck","_abandonRulesCheck","abr_controller_assertThisInitialized","ewmaFast","ewmaSlow","abrEwmaFastLive","abrEwmaSlowLive","abrEwmaFastVoD","abrEwmaSlowVoD","abrEwmaDefaultEstimate","requestDelay","loadRate","bw","realBitrate","fragLoadedDelay","bufferStarvationDelay","fragLevelNextLoadedDelay","minAutoLevel","levelNextBitrate","abrMaxWithRealBitrate","loadedBytes","loadedDuration","fragLoadingProcessingMs","bwEstimate","bitrateTestDelay","_findBestLevel","currentFragDuration","currentBw","maxAutoLevel","maxFetchDuration","bwFactor","bwUpFactor","avgDuration","adjustedbw","fetchDuration","forcedAutoLevel","bwEstimator","nextABRAutoLevel","_nextABRAutoLevel","avgbw","bestLevel","abrBandWidthFactor","abrBandWidthUpFactor","maxStarvationDelay","maxLoadingDelay","buffer_controller_MediaSource","buffer_controller","buffer_controller_BufferController","BufferController","_msDuration","_levelDuration","_levelTargetDuration","_live","_objectUrl","_needsFlush","_needsEos","audioTimestampOffset","bufferCodecEventsExpected","_bufferCodecEventsTotal","mediaSource","segments","appending","appendError","flushBufferCounter","pendingTracks","sourceBuffer","flushRange","_onMediaSourceOpen","checkPendingTracks","_onMediaSourceClose","_onMediaSourceEnded","_onSBUpdateEnd","audioBuffer","timestampOffset","doFlush","checkEos","counter","segment","sbSet","doAppending","updateMediaElementDuration","flushLiveBackBuffer","_onSBUpdateError","BUFFER_APPENDING_ERROR","onLevelPtsUpdated","updating","codecEvents","onMediaAttaching","endOfStream","pendingTracksCount","createSourceBuffers","onBufferReset","removeSourceBuffer","onBufferCodecs","mimeType","addSourceBuffer","BUFFER_ADD_CODEC_ERROR","onBufferAppending","onBufferEos","onBufferFlushing","liveBackBufferLength","bufferTypes","targetBackBufferPosition","bufferType","removeBufferRange","onLevelUpdated","liveDurationInfinity","flushBuffer","appendBuffer","BUFFER_APPEND_ERROR","appendErrorMaxRetry","sbType","bufStart","bufEnd","removeStart","removeEnd","cap_level_controller","cap_level_controller_CapLevelController","CapLevelController","autoLevelCapping","restrictedLevels","clientRect","capLevelToPlayerSize","stopCapping","onFpsDropLevelCapping","isLevelAllowed","droppedLevel","HTMLVideoElement","startCapping","detectPlayerSize","levelsLength","getMaxLevel","streamController","capLevelIndex","validLevels","getMaxLevelByMediaSize","mediaWidth","mediaHeight","getDimensions","boundsRect","getBoundingClientRect","maxLevelIndex","devicePixelRatio","contentScaleFactor","fps_controller_performance","fps_controller","fps_controller_FPSController","FPSController","isVideoPlaybackQualityAvailable","capLevelOnFPSDrop","getVideoPlaybackQuality","checkFPSInterval","fpsDroppedMonitoringPeriod","checkFPS","decodedFrames","droppedFrames","lastTime","currentPeriod","currentDropped","lastDroppedFrames","currentDecoded","lastDecodedFrames","droppedFPS","totalDroppedFrames","fpsDroppedMonitoringThreshold","videoPlaybackQuality","totalVideoFrames","droppedVideoFrames","webkitDecodedFrameCount","webkitDroppedFrameCount","xhr_loader","xhr_loader_XhrLoader","XhrLoader","xhrSetup","requestTimeout","retryTimeout","retry","loadInternal","readystatechange","onprogress","lengthComputable","audio_track_controller","audio_track_controller_AudioTrackController","AudioTrackController","_trackId","_selectDefaultTrack","trackIdBlacklist","_selectAudioGroup","onAudioTrackLoaded","updatePeriodMs","_handleLoadError","_setAudioTrack","newId","_loadTrackDetailsIfNeeded","_updateTrack","_selectInitialAudioTrack","currentAudioTrack","defaultTracks","trackFound","traverseTracks","_needsTrackLoading","previousId","_this$tracks$previous","language","audio_stream_controller_performance","audio_stream_controller","audio_stream_controller_AudioStreamController","AudioStreamController","waitingFragment","videoTrackCC","waitingVideoCC","onInitPtsFound","demuxerId","trackDetails","mainBufferInfo","maxConfigBuffer","audioSwitch","CC","findFragWithCC","loadIdx","fragLoadIdx","nextBuffered","foundFrag","isSeeking","waitingFrag","waitingFragCC","clearWaitingFragment","_bufferInfo","onAudioTracksUpdated","appendObj","pendingData","appendOnBufferFlush","_frag","_config","vttcue","directionSetting","lr","alignSetting","middle","findAlignSetting","cobj","baseObj","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","displayState","getCueAsHTML","WebVTT","convertCueToDOMTree","StringDecoder","VTTParser","regionList","Settings","parseOptions","keyValueDelim","groupDelim","kv","dflt","defaultKey","alt","percent","defaults","center","align","parseCue","oInput","consumeTimeStamp","ts","computeSeconds","parseTimeStamp","skipWhitespace","vals0","vertical","lineAlign","snapToLines","consumeCueSettings","fixLineBreaks","collectNextLine","alreadyCollectedLine","hasSubstring","oncue","onflush","vttparser","newCue","captionScreen","row","indenting","indent","rows","uchar","cueStartTime","VerboseLevel","specialCea608CharsCodes","getCharForByte","_byte","NR_ROWS","NR_COLS","rowsLowCh1","rowsHighCh1","rowsLowCh2","rowsHighCh2","backgroundColors","cea_608_parser_CaptionsLogger","verboseLevel","severity","numArrayToHexArray","numArray","hexArray","PenState","underline","italics","flash","setStyles","attribs","isDefault","newPenState","StyledUnicodeChar","penState","setChar","setPenState","newChar","Row","currPenState","_proto4","setCursor","absPos","DEBUG","moveCursor","relPos","newPos","backSpace","insertChar","_byte2","_char","clearFromPos","startPos","clearToEndOfRow","getTextString","_char2","setPenStyles","CaptionScreen","currRow","nrRollUpRows","lastOutputScreen","_proto5","_char3","setPen","INFO","setPAC","pacData","newRow","topRowIndex","prevLineTime","prevPos","setBkgData","bkgData","setRollUpRows","nrRows","rollUp","TEXT","getDisplayText","topRow","asOneRow","displayText","rowNr","rowText","getTextAndFormat","Cea608Channel","channelNumber","outputFilter","chNr","verbose","displayedMemory","nonDisplayedMemory","currRollUpRow","writeScreen","getHandler","setHandler","newHandler","setMode","newMode","insertChars","outputDataUpdate","ccRCL","ccBS","ccAOF","ccAON","ccDER","ccRU","ccFON","ccRDC","ccTR","ccRTD","ccEDM","ccCR","ccENM","ccEOC","ccTO","nrCols","ccMIDROW","colorIndex","dispatchCue","cueSplitAtTime","Cea608Parser","out1","out2","channels","currentChannel","cmdHistory","channel","addData","byteList","cmdFound","charsFound","DATA","parseCmd","parseMidrow","parsePAC","parseBackgroundAttributes","parseChars","currChNr","WARNING","hasCmdRepeated","setLastCmd","interpretPAC","_byte3","pacIndex","channelNr","charCodes","charCode1","oneCode","hexCodes","cea_608_parser","OutputFilter","timelineController","cueRanges","addCues","createCaptionsTrack","inputString","searchString","webvtt_parser","vttByteArray","syncPTS","vttCCs","callBack","errorCallBack","parsingError","vttLines","cueTime","mpegTs","localTime","presentationTime","inHeader","timestampMap","currCC","cueOffset","new","prevCC","presentationOffset","calculateOffset","onparsingerror","secs","mins","webvtt_parser_cueString2millis","canReuseVttTextTrack","inUseTrack","manifestTrack","textTrack1","textTrack2","timeline_controller","timeline_controller_TimelineController","TimelineController","Cues","unparsedVttFrags","captionsTracks","nonNativeCaptionsTracks","captionsProperties","cea608Parser1","cea608Parser2","lastSn","cueHandler","captionsTextTrack1Label","languageCode","captionsTextTrack1LanguageCode","captionsTextTrack2Label","captionsTextTrack2LanguageCode","textTrack3","captionsTextTrack3Label","captionsTextTrack3LanguageCode","textTrack4","captionsTextTrack4Label","captionsTextTrack4LanguageCode","enableCEA708Captions","channel1","timeline_controller_assertThisInitialized","channel2","channel3","channel4","x1","y1","y2","cueRange","overlap","renderTextTracksNatively","getExistingTrack","createNativeTrack","createNonNativeTrack","_captionsProperties$t","existingTrack","createTextTrack","trackProperties","closedCaptions","_cleanTracks","enableWebVTT","sameTracks","inUseTracks","subtitleDisplay","tracksList","subtitleTrack","captionsTrack","instreamIdMatch","decryptData","_parseVTTs","currentTrack","getCueById","textTrackCue","onFragDecrypted","onFragParsingUserdata","ccBytes","ccdatas","extractCea608Data","actualCCBytes","tmpByte","ccbyte1","ccbyte2","ccType","filterSubtitleTracks","textTrackList","KeySystems","subtitle_track_controller","subtitle_track_controller_SubtitleTrackController","SubtitleTrackController","stopped","queuedDefaultTrack","trackChangeListener","_onTextTracksChanged","useTextTrackPolling","subtitlePollingInterval","subtitleTracks","onSubtitleTrackLoaded","_clearReloadTimer","_loadCurrentTrack","_toggleTrackModes","oldTrack","nextTrack","_setSubtitleTrackInternal","subtitleTrackId","subtitle_stream_controller_performance","subtitle_stream_controller_SubtitleStreamController","SubtitleStreamController","tracksBuffered","currentTrackId","lastAVStart","_onMediaSeeking","subtitle_stream_controller_assertThisInitialized","onSubtitleFragProcessed","fragStart","fragEnd","onSubtitleTracksUpdated","onSubtitleTrackSwitch","referenceStart","frags","mergeSubtitlePlaylists","_getBuffered","requestMediaKeySystemAccess","eme_controller","eme_controller_EMEController","EMEController","_widevineLicenseUrl","_licenseXhrSetup","_emeEnabled","_requestMediaKeySystemAccess","_drmSystemOptions","_mediaKeysList","_media","_hasSetMediaKeys","_requestLicenseFailureCount","mediaKeysPromise","_onMediaEncrypted","initDataType","KEY_SYSTEM_ERROR","KEY_SYSTEM_NO_KEYS","finallySetKeyAndStartSession","mediaKeys","_attemptSetMediaKeys","_generateRequestWithPreferredKeySession","widevineLicenseUrl","licenseXhrSetup","emeEnabled","requestMediaKeySystemAccessFunc","drmSystemOptions","getLicenseServerUrl","keySystem","WIDEVINE","_attemptKeySystemAccess","audioCodecs","videoCodecs","mediaKeySystemConfigs","baseConfig","audioCapabilities","videoCapabilities","robustness","audioRobustness","videoRobustness","createWidevineMediaKeySystemConfigurations","eme_controller_getSupportedMediaKeySystemConfigurations","keySystemAccessPromise","mediaKeySystemAccess","_onMediaKeySystemAccessObtained","mediaKeysListItem","mediaKeysSessionInitialized","mediaKeySystemDomain","createMediaKeys","_onMediaKeysCreated","mediaKeysSession","createSession","_onNewMediaKeySession","keySession","sessionId","_onKeySessionMessage","_requestLicense","keysListItem","setMediaKeys","_this6","KEY_SYSTEM_NO_ACCESS","KEY_SYSTEM_NO_SESSION","KEY_SYSTEM_NO_INIT_DATA","generateRequest","_createLicenseXhr","keyMessage","_onLicenseRequestReadyStageChange","KEY_SYSTEM_LICENSE_REQUEST_FAILED","attemptsLeft","_generateLicenseRequestChallenge","_xhr","challenge","onMediaDetached","mediaKeysList","close","hlsDefaultConfig","lowBufferWatchdogPeriod","abrController","bufferController","capLevelController","fpsController","minAutoBitrate","cues_namespaceObject","subtitleStreamController","subtitleTrackController","audioStreamController","audioTrackController","emeController","hls_Hls","Hls","userConfig","_Observer","_autoLevelCapping","levelController","networkControllers","coreComponents","defaultConfig","DefaultConfig","hls_objectSpread","hls_assertThisInitialized","playListLoader","fragmentLoader","keyLoader","id3TrackController","Controller","SourceBuffer","WebKitSourceBuffer","sourceBufferValidAPI","is_supported_isSupported","detachMedia","attachMedia","loadSource","controller","recoverMediaError","manualLevel","shouldStartCapping","newCapLevelToPlayerSize","audioTrackId","isFiniteNumber","getSelfScope","enableLogs","_get_self_scope__WEBPACK_IMPORTED_MODULE_0__","fakeLogger","exportedLogger","exportLoggerFunctions","debugConfig","functions","formatMsg","consolePrintFn","define","_class","_createClass","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","sham","CLIENT_SIZE_KEYS","CLIENT_START_KEYS","INNER_SIZE_KEYS","OFFSET_SIZE_KEYS","OFFSET_START_KEYS","OVERFLOW_KEYS","SCROLL_SIZE_KEYS","SCROLL_START_KEYS","SIZE_KEYS","NOOP","PASSIVE","hasSupport","UNSTABLE_MESSAGE","MAX_SYNC_UPDATES","isEqualSubset","defaultScrollParentGetter","getEl","overflowKey","parentElement","getComputedStyle","defaultScrollParentViewportSizeGetter","scrollParent","constrain","minSize","itemsPerRow","mod","_Component","ReactList","initialIndex","cachedScrollPosition","prevPrevState","unstable","updateCounter","newState","updateFrameAndClearCache","updateFrame","clearSizeCache","updateCounterTimeoutId","offsetKey","offsetParent","scrollKey","getScrollSize","scrollParentViewportSizeGetter","getOffset","_document","_this$props","itemSizeGetter","threshold","getScrollPosition","hasDeterminateSize","getSpaceBefore","_this$props2","useStaticSize","_this$state","itemSize","itemEls","firstEl","firstElSize","startKey","firstStart","updateScrollParent","updateSimpleFrame","updateVariableFrame","updateUniformFrame","scrollParentGetter","getStartAndEnd","elEnd","firstItemEl","lastItemEl","_this$props3","pageSize","maybeSetState","cacheSizes","_this$getStartAndEnd2","_this$props4","space","maxFrom","getSizeOfItem","_itemSize","_this$getItemSizeAndI","getItemSizeAndItemsPerRow","_this$getStartAndEnd3","_constrain","_this$state2","_itemSize2","sizeKey","_this$props5","_this$state3","itemEl","setScroll","_this$state4","_this$getStartAndEnd4","itemStart","itemEnd","_this$props6","itemsRenderer","_this$state5","_this$props7","useTranslate3d","_this$state6","renderItems","overflowX","listStyle","msTransform","WebkitTransform","__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__copyProps","except","__toESM","isNodeMode","__publicField","__defNormalProp","Player_exports","__export","Player","__toCommonJS","import_react","import_react_fast_compare","import_props","import_utils","player","isReady","playedSeconds","getCurrentTime","loadedSeconds","getSecondsLoaded","getDuration","played","prevPlayed","prevLoaded","progressTimeout","progressFrequency","progressInterval","mounted","isLoading","onReady","playing","volume","muted","setVolume","loadOnReady","handleDurationCheck","isPlaying","onStart","onPlay","startOnPlay","setPlaybackRate","seekOnPlay","seekTo","onPause","activePlayer","loop","onEnded","loopOnEnded","durationCheckTimeout","onDurationCalled","onDuration","stopOnUnmount","disablePIP","pip","disableDeferredLoading","forceLoad","isMediaStream","enablePIP","mute","unmute","setLoop","keepPlaying","Player2","onMount","handlePlayerMount","handleReady","handlePlay","handlePause","handleEnded","onLoaded","handleLoaded","ReactPlayer_exports","createReactPlayer","import_deepmerge","import_memoize_one","import_Player","Preview","lazy","IS_BROWSER","IS_GLOBAL","SUPPORTED_PROPS","UniversalSuspense","customPlayers","players","wrapper","onClickPreview","getInternalPlayer","fraction","canPlay","omit","getActivePlayer","getConfig","lazyPlayer","renderPreview","playIcon","previewTabIndex","oEmbedUrl","previewAriaLabel","handleClickPreview","fallback2","Wrapper","getAttributes","wrapperRef","renderActivePlayer","canEnablePIP","src_exports","src_default","import_players","import_ReactPlayer","patterns_exports","AUDIO_EXTENSIONS","DASH_EXTENSIONS","FLV_EXTENSIONS","HLS_EXTENSIONS","MATCH_URL_DAILYMOTION","MATCH_URL_FACEBOOK","MATCH_URL_FACEBOOK_WATCH","MATCH_URL_KALTURA","MATCH_URL_MIXCLOUD","MATCH_URL_MUX","MATCH_URL_SOUNDCLOUD","MATCH_URL_STREAMABLE","MATCH_URL_TWITCH_CHANNEL","MATCH_URL_TWITCH_VIDEO","MATCH_URL_VIDYARD","MATCH_URL_VIMEO","MATCH_URL_WISTIA","MATCH_URL_YOUTUBE","VIDEO_EXTENSIONS","canPlayFile","isBlobUrl","youtube","soundcloud","vimeo","facebook","streamable","wistia","twitch","dailymotion","mixcloud","vidyard","kaltura","file","players_exports","players_default","import_patterns","pictureInPictureEnabled","supportsWebKitPresentationMode","props_exports","import_prop_types","controls","playsinline","playerVars","embedOptions","onUnstarted","appId","playerId","playerOptions","forceVideo","forceAudio","forceHLS","forceSafariHLS","forceDisableHls","forceDASH","forceFLV","hlsOptions","hlsVersion","dashVersion","flvVersion","customControls","onBuffer","onBufferEnd","onSeek","onPlaybackRateChange","onPlaybackQualityChange","onEnablePIP","onDisablePIP","visual","buying","liking","download","sharing","show_comments","show_playcount","showinfo","rel","iv_load_policy","modestbranding","autopause","byline","portrait","hide_cover","utils_exports","callPlayer","getSDK","parseEndTime","parseStartTime","randomString","import_load_script","componentImportFn","MATCH_START_QUERY","MATCH_END_QUERY","MATCH_START_STAMP","MATCH_NUMERIC","parseTimeParam","period","parseTimeString","requests","enableStubOn","sdkGlobal","sdkReady","isLoaded","fetchScript","existingGlobal","sdk","previousOnReady","omitKeys","MediaStream","notMobile","webkitSupportsPresentationMode","webkitSetPresentationMode","make","mirror","opposite","_globals","Bounce","forever","animationFillMode","_wrap2","_wrap","big","Fade","Flip","backfaceVisibility","LightSpeed","Reveal","durationOut","delayOut","countOut","foreverOut","effect","effectOut","inEffect","outEffect","_Fade2","in","_react2","inOut","collapse","collapseEl","cascade","force","appear","enter","exit","refProp","innerRef","onReveal","unmountOnExit","mountOnEnter","ssrReveal","collapseOnly","ssrFadeout","transitionGroup","RevealBase","isOn","when","getInitialCollapseStyle","savedChild","isShown","observerMode","handleObserve","revealHandler","makeHandler","reveal","resizeHandler","resize","saveRef","childRef","observe","hasExited","collapseend","animationEndTimeout","offsetHeight","getPropertyValue","getDimensionValue","animationDuration","animationDelay","unlisten","hasAppeared","cloneElement","getChild","animationEnd","invisible","onRevealTimeout","ssr","disableSsr","intersectionRatio","disconnect","IntersectionObserver","globalHide","hideAll","spy","inViewport","animate","listen","isMounting","fadeOutEnabled","getTop","pageYOffset","innerHeight","Children","toArray","onExited","ticking","raf","hidden","isListener","offsetTop","Roll","Rotate","Slide","Zoom","effectMap","ie10","IntersectionObserverEntry","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","appVersion","timing","domLoading","_Reveal","_Fade","_Bounce","_Roll","_Slide","_Flip","_Rotate","_LightSpeed","_Zoom","_RevealBase2","React__default","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","rewind","recordedState","PrevArrow","NextArrow","_innerSliderUtils","_React$PureComponent","clickHandler","prevClasses","prevHandler","infinite","currentSlide","slideCount","slidesToShow","prevArrowProps","customProps","prevArrow","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","accessibility","adaptiveHeight","afterChange","appendDots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","draggable","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rtl","slide","slidesPerRow","slidesToScroll","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","waitForAnimate","asNavFor","Dots","spec","dotCount","mouseEvents","_rightBound","rightBound","_leftBound","leftBound","dotOptions","_slider","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","initialized","lazyLoadedList","listHeight","listWidth","scrolling","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_React$Component","elem","getHeight","slidesToLoad","getOnDemandLazySlides","prevState","onLazyLoad","listRef","trackRef","updateState","adaptHeight","autoPlay","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","autoplayTimer","checkImagesLoad","setTrackStyle","didPropsChange","changeSlide","debouncedResize","resizeWindow","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_trackStyle","currentWidth","childrenCount","trackLeft","images","imagesCount","loadedCount","image","prevClickHandler","dontAnimate","_slideHandler","slideHandler","asNavForIndex","innerSlider","firstBatch","clickable","keyHandler","ontouchmove","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","playType","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listProps","onMouseMove","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpt","bQuery","newChildren","newSlide","innerSliderRefHandler","filterSettings","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","lazyStartIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","preCloneNo","handleRef","checkSpecKeys","checkNavigable","validSettings","settingName","slidesOnRight","slidesOnLeft","siblingDirection","safePreventDefault","lazySlidesOnRight","lazySlidesOnLeft","getWidth","getTrackAnimateCSS","getTotalSlides","getSwipeDirection","getSlideCount","getRequiredLazySlides","getNavigableIndexes","lowerBound","upperBound","onDemandSlides","requiredSlides","offsetWidth","xDist","yDist","swipeAngle","atan2","PI","canGo","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","curLeft","swipeLength","sqrt","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","indexes","navigables","prevNavigable","swipedSlide","slickList","offsetLeft","keysArray","trackHeight","trackChildren","WebkitTransition","slidesToOffset","targetSlideIndex","trackElem","__self","__source","jsxs","forceUpdate","_status","_result","act","createContext","_currentValue2","_threadCount","Consumer","_defaultValue","_globalName","createFactory","createRef","isValidElement","memo","startTransition","unstable_act","MapShim","getIndex","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","_b","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","handle","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","messagePrefix","onGlobalMessage","installPostMessageImplementation","installMessageChannelImplementation","installReadyStateChangeImplementation","task","clearImmediate","objA","objB","aKeys","bKeys","shallowEqualArrays","arrA","arrB","_assertClassBrand","_checkPrivateRedeclaration","_classPrivateFieldGet2","_classPrivateFieldInitSpec","_classPrivateFieldSet2","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","restoreActiveElement","returnFocus","scrollX","scrollY","restoreFocusTimeout","swalPrefix","swalClasses","iconTypes","consolePrefix","capitalizeFirstLetter","previousWarnOnceMessages","warnOnce","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","hasToPromiseFn","toPromise","asPromise","isPromise","getContainer","elementBySelector","selectorString","elementByClass","getPopup","popup","getIcon","getIconContent","getTitle","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getCancelButton","getDenyButton","deny","getInputLabel","getLoader","getActions","getFooter","footer","getTimerProgressBar","getCloseButton","getFocusableElements","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","hasClass","shown","isToast","toast","setInnerHtml","HTMLAudioElement","classList","removeCustomClasses","showClass","applyCustomClass","customClass","addClass","getInput$1","inputClass","checkbox","radio","focusInput","toggleClass","removeClass","getDirectChildByClass","applyNumericalStyle","removeProperty","show","hide","showWhenInnerHtmlPresent","toggle","setStyle","getClientRects","allButtonsAreHidden","isScrollable","scrollHeight","hasCssAnimation","animDuration","transDuration","animateTimerProgressBar","timerProgressBar","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","select","textarea","resetOldContainer","oldContainer","resetValidationMessage$1","currentInstance","resetValidationMessage","addInputChangeListeners","rangeOutput","onchange","getTarget","setupAccessibility","setupRTL","targetElement","oldContainerExisted","parseHtmlToContainer","handleObject","jquery","handleJqueryElem","animationEndEvent","testEl","webkitAnimation","renderActions","showConfirmButton","showDenyButton","showCancelButton","renderButtons","loaderHtml","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","reverseButtons","buttonsStyling","confirmButtonColor","denyButtonColor","cancelButtonColor","buttonType","buttonName","renderCloseButton","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderContainer","handleBackdropParam","backdrop","handlePositionParam","handleGrowParam","grow","privateProps","innerParams","domCache","inputClasses","renderInput","rerender","inputContainer","inputAttributes","showInput","setCustomClass","renderInputType","getInputContainer","inputAutoFocus","removeAttributes","setInputPlaceholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","labelClass","innerText","insertAdjacentElement","inputType","checkAndSetInputValue","inputValue","rangeInput","checkboxContainer","getMargin","initialPopupWidth","textareaResizeHandler","textareaWidth","attributeFilter","renderContent","htmlContainer","renderFooter","renderIcon","setContent","iconHtml","iconType","iconClassName","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","oldContent","newContent","iconContent","question","iconColor","sel","renderImage","imageUrl","imageAlt","imageWidth","imageHeight","renderPopup","addClasses$1","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","stepEl","createStepElement","lineEl","createLineElement","progressStepsDistance","renderTitle","titleText","didRender","eventEmitter","isVisible","clickConfirm","_dom$getConfirmButton","click","clickDeny","_dom$getDenyButton","clickCancel","_dom$getCancelButton","DismissReason","esc","removeKeydownHandler","keydownTarget","keydownHandlerAdded","keydownHandler","keydownListenerCapture","addKeydownHandler","dismissWith","setFocus","increment","_dom$getPopup","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","isComposing","stopKeydownPropagation","handleEnter","handleTab","handleArrows","handleEsc","allowEnterKey","btnIndex","buttonToFocus","HTMLButtonElement","allowEscapeKey","privateMethods","swalPromiseResolve","swalPromiseReject","setAriaHidden","unsetAriaHidden","isSafariOrIOS","GestureEvent","iOSfix","iosfix","lockBodyScroll","preventTouchMove","ontouchstart","shouldPreventTouchMove","isStylus","isZoom","touchType","undoIOSfix","measureScrollbar","scrollDiv","scrollbarWidth","previousBodyPadding","replaceScrollbarWithPadding","initialBodyOverflow","undoReplaceScrollbarWithPadding","removePopupAndResetState","didClose","triggerDidCloseAndDispose","removeBodyClasses","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","hideClass","handlePopupAnimation","rejectPromise","_destroy","isConfirmed","isDenied","animationIsSupported","willClose","animatePopup","swalCloseEventFinishedCallback","showLoading","buttonToReplace","Swal","replaceButton","loading","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getInput","getCheckboxValue","getRadioValue","getFileValue","inputAutoTrim","files","processInputOptions","populateSelectOptions","formatInputOptions","populateRadioOptions","hideLoading","renderOption","optionLabel","optionValue","inputOption","optgroup","radioValue","radioLabel","radioInput","radioLabelElement","radios","valueFormatted","handleConfirmButtonClick","disableButtons","handleConfirmOrDenyWithInput","handleDenyButtonClick","returnInputValueOnDeny","handleCancelButtonClick","inputValidator","handleInputValidator","checkValidity","enableButtons","showValidationMessage","validationMessage","disableInput","enableInput","showLoaderOnDeny","preDeny","preDenyValue","rejectWith","succeedWith","showLoaderOnConfirm","preConfirm","preConfirmValue","showRelatedButton","getElementsByClassName","setButtonsDisabled","setInputDisabled","inputerror","defaultParams","heightAuto","allowOutsideClick","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","willOpen","didOpen","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","showWarningsForParams","validUpdatableParams","filterValidParams","updatedParams","disposeSwal","disposeWeakMaps","unsetWeakMaps","disableLoading","closePopup","closeModal","closeToast","instanceMethods","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","isAnyButtonShown","ignoreOutsideClick","onmousedown","onmouseup","isJqueryElement","argsToParams","fire","mixinParams","MixinSwal","_main","priorityMixinParams","getTimerLeft","stopTimer","resumeTimer","toggleTimer","running","increaseTimer","increase","isTimerRunning","isRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","_getHandlersByEventName","currentHandlers","onceFn","staticMethods","enableLoading","Timer","started","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalFunctionParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","showWarningsForAttributes","optionName","paramNames","allowedElements","SHOW_CLASS_TIMEOUT","openPopup","overflowY","addClasses","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","defaultInputValidators","setDefaultInputValidators","validateCustomTargetElement","setParameters","_promise","SweetAlert","outerParams","userParams","prepareParams","populateDomCache","swalPromise","onFulfilled","finally","onFinally","dismiss","setupTimer","initFocus","templateParams","focusAutofocus","focusButton","blurActiveElement","autofocusElements","autofocusElement","blur","initiationDate","getItem","pointerEvents","ukrainianAnthem","setItem","Sweetalert2","swal","sweetAlert","styleSheet","cssText","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","mapDomain","ucs2decode","extra","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","Url","slashes","relative","resolveObject","isString","protocolPattern","portPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","slashesDenoteHost","isNull","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","domainArray","newOut","qm","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","isAbsolute","inst","useSyncExternalStoreWithSelector","hasValue","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMap","isSet","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","descriptors","formatRegExp","deprecate","noDeprecation","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","seen","stylize","stylizeNoColor","depth","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","recurseTimes","primitive","simple","isNumber","formatPrimitive","visibleKeys","arrayToHash","formatError","isRegExp","braces","formatProperty","formatArray","cur","numLinesEst","reduceToSingleString","ar","debuglog","isNullOrUndefined","isNativeError","isPrimitive","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","availableTypedArrays","typedArrays","$slice","typedArray","superProto","trySlices","tryTypedArrays","possibleNames","appendClass","parseValue","newClass","BaseIcon","xmlns","__webpack_module_cache__","cachedModule","__webpack_modules__","leafPrototypes","def","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","needAttach","scripts","nc","onScriptComplete","doneFns","nmd","paths","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal","PopStateEventType","invariant","cond","getHistoryState","usr","createLocation","parsePath","createPath","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","handlePop","createURL","replaceState","encodeLocation","Push","historyState","pushState","Replace","go","ResultType","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","score","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","isOptional","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","compiledParams","regexpSource","compilePath","captureGroups","splatValue","nextChar","getInvalidPathError","dest","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","isRouteErrorResponse","internal","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","useIsomorphicLayoutEffect","static","useNavigate","router","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","future","routePathnamesJson","UNSAFE_getResolveToMatches","useNavigateUnstable","OutletContext","useParams","routeMatch","useResolvedPath","_temp2","useRoutesImpl","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","useRouteError","lightgrey","preStyles","defaultErrorElement","RenderErrorBoundary","revalidation","errorInfo","routeContext","RenderedRoute","staticContext","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState","_future","v7_partialHydration","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","reduceRight","shouldRenderHydrateFallback","alreadyWarned","getChildren","hookName","useRouteContext","thisRoute","Navigate","_ref4","isStatic","jsonPath","Outlet","useOutlet","Route","Router","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","useRoutes","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","createSearchParams","__reactRouterVersion","ViewTransitionContext","isTransitioning","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","v7_startTransition","ABSOLUTE_URL_REGEX","Link","_ref7","absoluteHref","reloadDocument","preventScrollReset","unstable_viewTransition","UNSAFE_NavigationContext","isExternal","currentUrl","targetUrl","joinedPathname","useHref","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","NavLink","_ref8","ariaCurrentProp","classNameProp","styleProp","routerState","UNSAFE_DataRouterStateContext","vtContext","useViewTransitionState","currentPath","currentLocation","nextPath","nextLocation","nextLocationPathname","navigation","endSlashPosition","isPending","renderProps","ariaCurrent","UNSAFE_DataRouterContext","useSearchParams","defaultInit","defaultSearchParamsRef","hasSetSearchParamsRef","searchParams","locationSearch","defaultSearchParams","getSearchParamsForLocation","setSearchParams","nextInit","navigateOptions","newSearchParams","batch","getBatch","ContextKey","gT","getContext","_gT$ContextKey","contextMap","realContext","ReactReduxContext","createReduxContextHook","useReduxContext","notInitialized","refEquality","createSelectorHook","useDefaultReduxContext","equalityFnOrOptions","equalityFn","stabilityCheck","noopCheck","store","subscription","getServerState","globalStabilityCheck","globalNoopCheck","wrappedSelector","selectedState","addNestedSub","useSelector","nullListeners","notify","createSubscription","parentSub","unsubscribe","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","subscribe","isSubscribed","createListenerCollection","tryUnsubscribe","cleanupListener","notifyNestedSubs","getListeners","serverState","contextValue","Context","createStoreHook","useStore","createDispatchHook","useDefaultStore","useDispatch","shallowEqual","keysA","keysB","newBatch","initializeUseSelector","initializeConnect","contextTheme","useThemeWithoutDefault","Box","defaultClassName","generateClassName","BoxRoot","useTheme","_extendSxProp","createBox","boxClasses","DefaultContext","IconContext","Tree2Element","tree","GenIcon","IconBase","conf","svgProps","computedSize","stroke","SiSidequest","AssetsParentTab","ChannelContentTab","EntertainmentCardClass","cardMainclass","cardMediaClass","cardtitleClass","cardButtonclass","ClothTabs","ClothingCardClass","AvatarCardClass","Preferencelist","timeAgo","inputDate","timeDifferenceInSeconds","minutesAgo","hoursAgo","daysAgo","weeksAgo","getRadianAngle","degreeValue","getCroppedImg","imageSrc","pixelCrop","rotation","flip","horizontal","Image","createImage","canvas","rotRad","bBoxWidth","bBoxHeight","cos","sin","rotateSize","rotate","drawImage","croppedCanvas","croppedCtx","croppedBlob","toBlob","File","socialLinks","FaFacebook","FaInstagram","FaMeta","FaXTwitter","isSafeInteger","clientAttrs","optionalFloat","isSCTE35Attribute","dateRangeAttr","dateRangeWithSameId","_startDate","_endDate","_badValueForSameId","previousAttr","ID","class","CLASS","plannedDuration","endOnNext","LoadStats","chunkCount","parsing","buffering","BaseSegment","elementaryStreams","urlToolkitExports","levelkeys","endList","NONE","identity","getDecryptData","keyFormats","_this$_decryptdata","setKeyFormat","keyFormat","abortRequests","_this$loader","_this$keyLoader","setElementaryStreamInfo","clearElementaryStreamInfo","Part","partAttrs","fragOffset","independent","LevelDetails","alignedSliding","fragmentHint","partList","dateRanges","ageHeader","advancedDateTime","updated","advanced","availabilityDelay","misses","m3u8","canBlockReload","canSkipUntil","canSkipDateRanges","skippedSegments","recentlyRemovedDateranges","partHoldBack","holdBack","partTarget","preloadHint","renditionReports","tuneInGoal","deltaUpdateFailed","driftStartTime","driftEndTime","driftStart","driftEnd","encryptedFragments","playlistParsingError","variableList","hasVariableRefs","reloaded","partSnDiff","lastPartSn","partIndexDiff","lastPartIndex","levelTargetDuration","runTime","edge","partEnd","fragmentEnd","_this$partList","_this$fragments","age","_this$partList2","_this$partList3","base64Decode","base64encodedStr","atob","convertDataUriToArrayBytes","colonsplit","keydata","semicolonsplit","commasplit","isbase64","keyIdbytes","strToUtf8array","paddedkeyIdbytes","getKeyIdBytes","optionalSelf","CLEARKEY","FAIRPLAY","PLAYREADY","KeySystemFormats","keySystemFormatToKeySystemDomain","KeySystemIds","keySystemIdToKeySystemDomain","systemId","keySystemDomainToKeySystemFormat","getKeySystemsForConfig","drmSystems","keySystemsToAttempt","_optionalSelf$navigat","parsePlayReadyWRM","keyBytes","keyBytesUtf16","keyByteStr","xmlKeyBytes","keyData","keyId","keyIdArray","changeEndianness","sliceUint8","isHeader$2","readSize","canParse$2","readTimeStamp","getFrameData","decodeFrame","decodePrivFrame","decodeURLFrame","decodeTextFrame","Hex","UINT32_MAX$1","readSint32","readUint64","firstOffset","traks","hdlrType","soun","vide","stsdData","parseStsd","_objectSpread2","sampleEntries","sampleEntriesEnd","fourCC","encBox","sinf","schm","frma","avcCBox","esdsBox","skipBERInteger","objectType","audioObjectType","hvcCBox","profileByte","profileSpace","generalProfileIdc","profileCompat","tierFlag","levelIDC","constraintIndicator","constraintString","dvcCBox","addLeadingZero","vpcCBox","bitDepth","av1CBox","highBitDepth","twelveBit","monochrome","chromaSubsamplingX","chromaSubsamplingY","chromaSamplePosition","colorPrimaries","transferCharacteristics","matrixCoefficients","videoFullRangeFlag","parseSinf","computeRawDurationFromSamples","sampleCount","appendUint8Array","parseSamples","seiSamples","isHEVCFlavor","moofOffset","tfhdFlags","defaultSampleDuration","defaultSampleSizePresent","defaultSampleSize","defaultSampleFlagsPresent","tfhdOffset","baseCodec","isHEVC","dataOffsetPresent","dataOffset","firstSampleFlagsPresent","sampleDurationPresent","sampleDuration","sampleSizePresent","sampleSize","sampleFlagsPresent","sampleCompositionOffsetsPresent","compositionOffset","trunOffset","sampleOffset","ix","naluTotalSize","naluSize","isSEIMessage","parseSEIMessageFromNALu","naluHeader","naluType","unescapedData","headerSize","seiPtr","leftOver","payPtr","providerCode","userStructure","userDataType","mp4pssh","keyids","kids","kidCount","dataSize","mp4Box","parsePssh","dataSizeOrKidCount","keyUriToKeyIdMap","clearKeyUriToKeyIdMap","formatversions","keyFormatVersions","isCommonEncryption","pssh","PlayReadyKeySystemUUID","padded","VARIABLE_REPLACEMENT_REGEX","hasVariableReferences","substituteVariablesInAttributes","substituteVariables","variableReference","variableName","variableValue","addVariableDefinition","parentUrl","VALUE","QUERYPARAM","importVariableDefinition","sourceVariableList","IMPORT","ManagedMediaSource","a3ds","alac","alaw","dra1","dtsc","dtse","dtsh","enca","fLaC","flac","FLAC","g719","g726","m4ae","mha1","mha2","mhm1","mhm2","mlpa","Opus","opus","samr","sawb","sawp","sevc","sqcp","ssmv","twos","ulaw","avc2","avc3","avc4","avcp","av01","drac","dva1","dvav","dvh1","dvhe","encv","hev1","hvc1","mjp2","mp4v","mvc1","mvc2","mvc3","mvc4","resv","rv60","s263","svc1","svc2","vp08","vp09","stpp","wvtt","areCodecsMediaSourceSupported","preferManagedMediaSource","isCodecMediaSourceSupported","_MediaSource$isTypeSu","mimeTypeForCodec","videoCodecPreferenceValue","codecsSetSelectionPreferenceValue","codecSet","preferenceValue","CODEC_COMPATIBLE_NAMES","AUDIO_CODEC_REGEXP","getCodecCompatibleName","lowerCaseCodec","codecsToCheck","getCodecCompatibleNameLower","pickMostCompleteCodecName","parsedCodec","IS_MEDIA_PLAYLIST","isMediaPlaylist","contentSteering","sessionKeys","levelsWithKnownCodecs","_level$unknownCodecs","dataId","sessionKey","parseKey","variableAttributes","contentSteeringAttributes","pathwayId","parseStartTimeOffset","stripUnknownCodecLevels","groupsByType","textCodec","assocLang","CHANNELS","characteristics","CHARACTERISTICS","assignCodec","multivariantVariableList","currentInitSegment","currentPart","createNextFrag","nextByteRange","setFragLevelKeys","skipAttrs","levelKey","setInitSegment","serverControlAttrs","partInfAttrs","previousFragmentPart","preloadHintAttrs","renditionReportAttrs","fragmentLength","firstFragment","lastFragment","keyTagAttributes","_keyAttrs$METHOD","_keyAttrs$KEYFORMAT","METHOD","decryptkeyformatversions","KEYFORMATVERSIONS","decryptkeyformat","IV","resolvedUri","startAttributes","codecsAttributeValue","groupItem","codecProperty","codecValue","deliveryDirectives","_context$deliveryDire","loadPolicy","manifestLoadPolicy","playlistLoadPolicy","timeoutRetry","errorRetry","targetDuration","maxLowLatencyPlaylistRefresh","maxTimeToFirstByteMs","maxLoadTimeMs","legacyRetryCompatibility","maxNumRetry","retryDelayMs","maxRetryDelayMs","handleTrackOrLevelPlaylist","handleMasterPlaylist","handleManifestParsingError","handleNetworkError","parsedResult","handlePlaylistLoaded","UNKNOWN","SUBTITLE_TRACK_LOAD_TIMEOUT","SUBTITLE_LOAD_ERROR","_error","LEVEL_PARSING_ERROR","getCacheAge","addCueToTrack","err2","removeCuesInRange","cuesFound","firstCueInRange","getFirstCueIndexAfterTime","getCuesInRange","MetadataSchema","getCueClass","createCueWithDataFields","MAX_CUE_ENDTIME","MAX_VALUE","dateRangeDateToTimelineSeconds","dateRangeCuesAppended","_registerListeners","_unregisterListeners","enableEmsgMetadataCues","enableID3MetadataCues","updateId3CueEnds","_this$id3Track","enableDateRangeMetadataCues","idsToRemove","dateTimeOffset","appendedDateRangeCues","durationKnown","nextDateRangeWithSameClass","candidateDateRange","otherDateRange","_cue","LatencyController","stallCount","_latency","timeupdateHandler","timeupdate","lowLatencyMode","maxLiveSyncOnStallIncrease","liveEdge","estimateLiveEdge","syncPosition","edgeStalled","maxLevelUpdateAge","forwardBufferLength","bufferedRanges","_this$levelDetails","computeLatency","maxLiveSyncPlaybackRate","distanceFromTarget","rate","HdcpLevels","VideoRangeValues","HlsSkip","getSkipValue","HlsUrlParameters","msn","skip","addDirectives","_attrs","frameRate","supportedPromise","supportedResult","_avgBitrate","_audioGroups","_subtitleGroups","_urlId","maxBitrate","averageBitrate","videoRange","hasAudioGroup","hasGroup","hasSubtitleGroup","subtitleGroups","textGroupId","_this$audioGroups","_this$subtitleGroups","addFallback","updateFromToPTS","fragStartPts","fragEndPts","oldInit","newFrags","oldFrags","newFragIndex","_currentInitSegment","oldDateRanges","deltaDateRanges","mergeDateRanges","oldParts","newParts","oldPart","newPart","mapPartIntersection","addSliding","getPartWith","partIndex","_level$details","findPart","reassignFragmentLevelIndexes","isTimeoutError","getRetryConfig","isTimeout","getRetryDelay","retryConfig","backoffFactor","backoff","getLoaderConfigWithoutReties","loderConfig","shouldRetry","loaderResponse","httpStatus","onLine","retryForHttpStatus","BinarySearch","nextFragLookupTolerance","bufferEdgeError","firstDuration","fragmentWithinFastStartSwitch","NetworkErrorAction","ErrorActionFlags","BasePlaylistController","logPrefix","requestScheduled","canLoad","loadPlaylist","switchParams","playlistUri","currentGoal","hlsUrlParameters","shouldLoadPlaylist","playlist","shouldReloadPlaylist","playlistLoaded","previousDetails","elapsed","endSn","lastPart","lastAdvanced","cdnAge","getDeliveryDirectives","mainForwardBufferInfo","distanceToLiveEdgeMs","liveEdgeMaxTargetDurations","lastSegmentDuration","estimatedTimeUntilUpdate","previousDeliveryDirectives","checkRetry","errorAction","_errorEvent$context","estimate","defaultTTFB","defaultTTFB_","ttfb_","sampleTTFB","ttfb","getEstimateTTFB","SUPPORTED_INFO_DEFAULT","supported","configurations","decodingInfoResults","powerEfficient","smooth","SUPPORTED_INFO_CACHE","requiresMediaCapabilitiesDecodingInfo","audioTracksByGroup","currentVideoRange","currentFrameRate","audioPreference","audioCodecPreference","channelsPreference","maxChannels","audioChannels","audioTrackGroup","getMediaDecodingInfoPromise","mediaCapabilities","baseVideoConfiguration","framerate","transferFunction","_audioTracksByGroup$g","channelsNumber","configuration","decodingInfoKey","mediaConfig","spatialRendering","getMediaDecodingInfoKey","decodingInfo","getVideoSelectionOptions","videoPreference","preferHDR","allowedVideoRanges","mediaQueryList","badQuery","isHdrSupported","logStartCodecCandidateIgnored","codeSet","findMatchingOption","matchPredicate","matchesOption","characteristicsA","characteristicsB","characteristicsMatch","audioMatchPredicate","searchDownAndUpList","tickImmediate","activePartLists","endListFragments","hasGaps","getAppendedFrag","activePart","appendedPTS","playlistType","appendedPart","appendedPartSn","isNotBuffered","isFragHint","streamInfo","removeParts","snToKeep","fragBuffered","isEndListAppended","lastFragmentEntity","hasParts","_this$activePartLists","removeFragmentsInRange","withGapOnly","unbufferedOnly","snToRemove","_fragmentEntity$range","_fragmentEntity$range2","_fragmentEntity$range3","noopBuffered","getBuffered","ChunkMetadata","transmuxing","executeStart","executeEnd","_fragments$i","adjustFragmentStart","adjustSlidingStart","switchDetails","alignMediaPlaylistByPDT","refDetails","refFragments","refFrag","targetCC","refPDT","targetPDT","MIN_CHUNK_SIZE","partLoadTimeout","LoadError","createGapLoadError","createLoaderContext","fragLoadPolicy","highWaterMark","resetLoader","resetIV","onAbort","INTERNAL_ABORTED","loadPart","updateStatsFromPart","partLoadedData","fragStats","partStats","partTotal","estTotalParts","estLoadedParts","estRemainingBytes","fragLoading","partLoading","_frag$decryptdata","byteRangeStart","byteRangeEnd","fragmentLen","FRAG_GAP","softwareDecrypter","remainderData","currentIV","currentResult","useSoftware","softwareDecrypt","decryptResult","webCryptoDecrypt","logOnce","currentChunk","getValidChunk","splitPoint","TimeRanges","BaseStreamController","transmuxer","onTickEnd","resetTransmuxer","pauseBuffering","resumeBuffering","getLevelDetails","_this$levelLastLoaded","detach","resetLoadingState","pastFragment","loadFragment","targetBufferTime","_loadFragForPlayback","_doFragLoad","fragContextChanged","_handleFragmentLoadProgress","_handleFragmentLoadComplete","resetFragmentLoading","clearTrackerIfNeeded","_this$mediaBuffer","getFwdBufferInfo","minForwardBufferLength","backtrackFragment","reduceMaxBufferLength","checkLiveUpdate","_loadInitSegment","completeInitSegmentLoad","fragBufferedComplete","_frag$startPTS","_frag$endPTS","_this$fragCurrent","_this$fragPrevious","_this$levels","seekToStartPos","fragLoadedEndData","partsLoaded","chunkMeta","progressCallback","keyLoadingPromise","loadClear","keyLoadedData","getNextPart","doFragPartsLoad","handleFragLoadError","loadedEndOfParts","dataOnProgress","progressive","fragLoadedData","fromPart","initialPartList","loadedPart","nextPart","handleFragLoadAborted","_handleTransmuxerFlush","getCurrentContext","updateLevelTiming","getFragmentWithSN","bufferFragmentData","noBacktracking","_buffer","flushBufferGap","fragDuration","segmentFraction","bufferable","getLoadPosition","getFwdBufferInfoAtPos","bufferedFragAtPos","getMaxBufferLength","reducedLength","fragOrPart","getNextFragment","getInitialLiveFragment","getFragmentAtPosition","mapToInitFragWhenRequired","isLoopLoading","trackerState","getNextFragmentLoopLoading","gapStart","nextFragment","nextbufferInfo","independentAttrOmitted","liveStart","loadingParts","nextFrag","synchronizeToLiveEdge","withinSlidingWindow","alignPlaylists","slidingStart","firstLevelLoad","aligned","alignedSlidingStart","waitForCdnTuneIn","setStartPosition","offsetInMultivariantPlaylist","onFragmentOrKeyLoadError","filterType","_this$fragCurrent2","gapTagEncountered","resetStartWhenNotLoaded","resetFragmentErrors","reduceLengthAndFlushBuffer","afterBufferFlushed","bufferedTimeRanges","resetWhenMissingContext","removeUnbufferedFrags","_this$transmuxer","parsedDuration","recoverWorkerError","ChunkCache","chunks","dataLength","concatUint8Arrays","dummyTrack","BaseAudioDemuxer","cachedData","basePTS","trackDuration","deaultTimestamp","resetContiguity","canParse","lastDataIndex","initPTSFn","partialData","demuxSampleAes","isHeaderPattern$1","isHeader$1","probe$1","adtsExtensionSamplingIndex","adtsChannelConfig","adtsSamplingRates","adtsSamplingIndex","appendFrame$2","_length","chromeVersion$1","appendFrame$1","mpegVersion","mpegLayer","bitRateIndex","sampleRateIndex","paddingBit","channelMode","emsgSchemePattern","getAudioBSID","bsid","numBits","mask","AC3Demuxer","segmentCodec","samplingRateCode","frameSizeCode","skipCount","lfeon","bsmod","BaseVideoParser","VideoSample","createVideoSample","getLastNalUnit","_VideoSample","pushAccessUnit","deltaScale","AvcVideoParser","parseAVCNALu","_VideoSample2","iskey","_track$pixelRatio","_track$pixelRatio2","unitType","decryptedBuffer","uint8DecryptedData","PACKET_LENGTH","_videoTrack","videoParser","foundPat","packetStart","tsPackets","parsePID","videoPid","audioPid","id3Pid","unknownPID","tsPacketErrors","parseAC3PES","segmentVideoCodec","segmentAudioCodec","emitParsingError","demuxResult","extractRemainingSamples","frameMissingBytes","sampleLength","frameOverflowBytes","recoverable","id3Sample","esInfoLength","logEncryptedSamplesFoundInUnencryptedStream","ac3","parsePos","descriptorLen","dac3","audioStsd","safariWebkitVersion","videoSampleDuration","isAudioContiguous","isVideoContiguous","videoTrackConfig","resetNextTimestamp","firstPts","normalizePts","enoughAudioSamples","enoughVideoSamples","_videoTrack$pixelRati","_config$pixelRatio","_videoTrack$pixelRati2","_config$pixelRatio2","firstKeyFramePTS","firstKeyFrameIndex","findKeyframeIndex","firstKeyFrame","flushTextTrackMetadataCueSamples","flushTextTrackUserdataCueSamples","initTime","inputDuration","foundOverlap","dtsStep","stretchedLastFrame","minDtsDelta","minPtsDelta","maxDtsDelta","maxPtsDelta","VideoSampleUnits","ptsDelta","Mp4Sample","nextDts","getSamplesPerFrame","alignedWithVideo","timeOffsetMpegTS","init90kHz","isKeyframe","getParsedTrackCodec","txtTrack","captionTrack","hasMoofData","segmentedData","segmentedRange","valid","moofs","segmentValidRange","extractID3Track","emsgs","emsgInfo","schemeIdUri","presentationTimeDelta","eventDuration","leftPresentationTime","rightPresentationTime","parseEmsg","emitInitSegment","initTracks","generateInitSegment","encBoxes","isAudio","tenc","tencKeyId","patchEncyptionData","_initData","_initData2","rawDuration","videoDuration","audioDuration","trackDefault","truns","sidxMinStart","sidxMaxEnd","sidxDuration","sidxs","subSegmentDuration","dur","fmp4","decodeTime","minDuration","isInvalidInitPts","canGetFrameLength","canParse$1","Transmuxer","decryptionPromise","transmuxConfig","currentTransmuxState","uintData","initSegmentChange","defaultInitPts","encryptionType","getEncryptionType","getDecrypter","emptyResult","resetMuxers","needsProbing","configureTransmuxer","resetInitialTimestamp","transmux","transmuxResults","demuxResultOrPromise","flushRemux","remuxResult","transmuxSampleAes","transmuxUnencrypted","_muxConfig$i$demux","Remuxer","TransmuxConfig","TransmuxState","TransmuxerInterface","onTransmuxComplete","onFlush","useWorker","workerContext","m2tsTypeSupported","workerPath","__HLS_WORKER_BUNDLE__","scriptURL","loadWorker","injectWorker","resetWorker","_frag$initSegment","_lastFrag$initSegment","snDiff","partDiff","transmuxResult","handleTransmuxComplete","transmuxerError","handleFlushResult","_this$workerContext","logType","subtitleOptionsIdentical","trackList1","trackList2","mediaAttributesIdentical","attrs1","attrs2","customAttributes","stableRenditionId","subtitleAttribute","subtitleTrackMatchesTextTrack","BufferableInstance","timeranges","getRange","BufferOperationQueue","sourceBufferReference","executeNext","insertAbort","appendBlocker","execute","onComplete","shiftAndExecuteNext","VIDEO_CODEC_PROFILE_REPLACE","removeSourceChildren","sourceChildren","CaptionsLogger","AllowedDirections","AllowedAlignments","isAllowedValue","allowed","lcValue","LINEBREAKS","_hash","generateCueId","parseWebVTT","timestampMapMPEGTS","timestampMapLOCAL","webVttMpegTsMapOffset","_prevCC","cueString2millis","IMSC1_CODEC","HMSF_REGEX","TIME_UNIT_REGEX","textAlignToLineAlign","parseIMSC1","ttmlList","syncTime","toTimescaleFromScale","ttml","xmlDoc","tt","defaultRateInfo","subFrameRate","frameRateMultiplier","tickRate","rateInfo","styleElements","collectionToDictionary","getElementCollection","regionElements","cueElements","cueElement","cueText","getTextContent","parseTtmlTime","timestampParsingError","ttsNs","regionStyle","styleAttributes","regionStyleName","getAttributeNS","getTtmlStyles","parseTTML","parentName","childName","elementsWithId","dict","_node$childNodes","hasAttributeNS","timeAttributeValue","parseHoursMinutesSecondsFrames","parseTimeUnits","captionsOrSubtitlesFromCharacteristics","setStreamController","unregisterListener","maxLevel","ignoreDevicePixelRatio","restrictedLevel","squareSize","atGreatestBandwidth","LOGGER_PREFIX","keyFormatPromise","keySystemAccessPromises","mediaKeySessions","keyIdToKeySessionPromise","setMediaKeysQueue","CDMCleanupPromise","onMediaEncrypted","logMessage","keySystems","getKeyFormatPromise","keySystemFormat","keySystemDomain","psshResults","parseMultiPssh","psshInfos","psshInfo","keyIdHex","keySessionContextPromise","keyContext","oldKeyIdHex","generateRequestWithPreferredKeySession","getKeySystemSelectionPromise","_ref16","_keySystemToKeySystem","throwIfDestroyed","attemptSetMediaKeys","keySessionContext","createMediaKeySessionContext","onWaitingForKey","licenseResponseCallback","keySystemConfiguration","licenseUrl","getLicenseServerUrlOrThrow","getServerCertificateUrl","serverCertificateUrl","attemptKeySystemAccess","uniqueCodec","attempt","getMediaKeysPromise","EMEKeyError","supportedConfigurations","errMessage","initDataTypes","persistentState","distinctiveIdentifier","sessionTypes","sessionType","encryptionScheme","audioEncryptionScheme","videoEncryptionScheme","createMediaKeySystemConfigurations","getSupportedMediaKeySystemConfigurations","keySystemAccess","_keySystemAccessPromises","certificateRequest","fetchServerCertificate","certificate","setMediaKeysServerCertificate","_ref17","mediaKeySessionContext","keyStatus","renewKeySession","getKeyIdString","removeSession","updateKeySession","_mediaKeySessionConte","selectKeySystemFormat","keySystemsInConfig","_ref18","loadKey","keyInfo","keyDetails","getKeySystemForKeyPromise","_ref19","KEY_SYSTEM_NO_CONFIGURED_LICENSE","setMediaKeysPromise","_this$config$drmSyste","_this$config$drmSyste2","generateRequestFilter","mappedInitData","_this$hls","licenseStatus","_onmessage","renewLicense","onkeystatuseschange","_onkeystatuseschange","onKeyStatusChange","keyUsablePromise","KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED","KEY_SYSTEM_STATUS_INTERNAL_ERROR","_context$mediaKeysSes","keyStatuses","certLoader","certLoadPolicy","contex","KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED","cert","setServerCertificate","KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED","requestLicense","KEY_SYSTEM_SESSION_UPDATE_FAILED","unpackPlayReadyKeyMessage","licenseChallenge","xmlString","keyMessageXml","_header$querySelector","_header$querySelector2","challengeElement","challengeText","setupLicenseXHR","licenseXhrSetupResult","keyLoadPolicy","licenseXhr","_ref20","keySessionCount","_ref21","CmObjectType","CmStreamingFormat","CmcdHeaderField","CmcdHeaderMap","OBJECT","REQUEST","SESSION","STATUS","SfItem","SfToken","throwError","cause","BARE_ITEM","STRING_REGEX","serializeError","serializeByteSequence","binary","btoa","serializeInteger","isInvalidInt","roundToEven","precision","decimalShift","EPSILON","flooredValue","serializeDecimal","roundedValue","serializeToken","symbolToStr","serializeBareItem","isInteger","serializeString","serializeBoolean","serializeDate","serializeKey","serializeParams","_ref22","serializeItem","serializeDict","optionalWhiteSpace","_ref23","serializeInnerList","toRounded","toHundred","CmcdFormatters","mtp","nor","toUrlSafe","toPath","fromPath","urlToRelativePath","rtp","processCmcd","isTokenField","encodeCmcd","cmcd","encodeSfDict","appendCmcdHeaders","headerMap","customHeaderMap","shards","_headerMap$find","_ref24","toCmcdHeaders","REGEX","appendCmcdQuery","toCmcdQuery","separator","cloneRenditionGroups","groupCloneMap","uriReplacement","cloneId","clonedTracks","clonedTrack","performUriReplacement","stableId","perOptionKey","HOST","PARAMS","perOptionUris","perVariantUri","AGE_HEADER_LINE_REGEX","abortInternal","_this$callbacks","openAndSendXhr","useResponseText","_response","_this$context","getResponseHeader","FetchLoader","fetchSetup","getRequest","AbortController","initParams","getRequestParameters","LENGTH","FetchError","contentRange","byteRangeLength","byteRangeHeader","getByteRangeLength","contentLength","getContentLength","loadProgressively","responseData","chunkCache","getReader","pump","WHITESPACE_CHAR","_track$cues","cueA","cueB","backBufferLength","frontBufferFlushThreshold","_hls","lastLevelLoadSec","firstSelection","nextAutoLevelKey","codecTiers","partCurrent","timeLoading","ttfbEstimate","loadedFirstByte","getBwEstimate","timeStreaming","bwe","getTimeToLoadFrag","nextLoadLevelBitrate","resetEstimator","initEstimator","onLevelSwitching","MAX_AUTO_LEVEL_UPDATED","onMaxAutoLevelUpdated","ignoreFragment","_data$part","timeToFirstByteSec","bandwidth","fragSizeBits","isSwitch","timeLoadingMs","fragBufferedData","processingMs","firstAutoLevel","maxStartDelay","abrAutoLevel","findBestLevel","clamped","useEstimate","loadedFirstFrag","getAutoLevelKey","getNextABRAutoLevel","getStarvationDelay","_bestLevel","minLevel","selectionBaseLevel","allAudioTracks","currentCodecSet","trackGroup","hasDefault","hasAutoSelect","channelsKey","hasDefaultAudio","hasAutoSelectAudio","getAudioTracksByGroup","tiers","tier","minBitrate","minFramerate","maxScore","videoRanges","SDR","lesserWidthOrHeight","audioGroup","getCodecTiers","startTier","codecSets","preferStereo","hasStereo","hasCurrentVideoRange","selectedScore","matchingVideoRanges","maxFramerate","candidateTier","getStartCodecTier","ttfbEstimateSec","levelsSkipped","_levelInfo$supportedR","upSwitch","useMediaCapabilities","operationQueue","lastMpegAudioChunk","appendSource","appendErrors","_onEndStreaming","_onStartStreaming","_onMediaEmptied","mediaSrc","_initSourceBuffer","hasSourceTypes","getSourceBufferTypes","onFragChanged","_ms$constructor","objectUrl","MMS","disableRemotePlayback","addSource","resetBuffer","_this$mediaSource","removeBufferListeners","sourceBuffers","sourceBufferCount","trackNames","changeType","_trackCodec","currentCodecFull","currentCodec","trackCodec","nextCodec","appendChangeType","eventData","chunkStats","bufferAppendingStart","fragBuffering","partBuffering","checkTimestampOffset","appendExecutor","sourceBufferName","QUOTA_EXCEEDED_ERR","appendErrorCount","flushOperation","removeExecutor","buffersAppendedTo","blockBuffers","onUnblocked","trimBuffers","ending","_ref13","maxBackBufferLength","flushBackBuffer","frontBufferLength","maxFrontBufferLength","targetFrontBufferPosition","flushFrontBuffer","BACK_BUFFER_REACHED","numBufferedRanges","levelDuration","mediaDuration","msDuration","updateSeekableRange","setLiveSeekableRange","BUFFER_INCOMPATIBLE_CODECS_ERROR","_track$levelCodec","sbName","addBufferListener","_onSBUpdateStart","removedRanges","_this$media","_this$media$querySele","_this$mediaSource2","_this$mediaSource3","blockingOperations","errorController","playlistError","penalizedRenditions","onErrorOut","getVariantLevelIndex","_data$frag","_data$level","getFragRetryOrSwitchAction","_data$context","_data$context$levelDe","getPlaylistRetryOrSwitchAction","getLevelSwitchAction","restrictedHdcpLevel","hdcpLevel","keySystemError","variantLevelIndex","fragmentErrors","_data$frag2","_data$context2","fragErrorType","findAudioCodecAlternate","findVideoCodecAlternate","playlistErrorType","playlistErrorGroupId","_level$audioGroups","_level$subtitleGroups","levelCandidate","fragCandidate","_data$errorAction","sendAlternateToPenaltyBox","switchLevel","maxHdcpLevel","abrEwmaDefaultEstimateMax","steeringManifestLoadPolicy","enableIMSC1","mainDetails","endOffsetSubtitles","_ref12","mediaPlaylist","mediaBufferTimeRanges","_track$details","mainSlidingStartFragment","lookupTolerance","mainBufferLength","groupIds","tracksInGroup","selectDefaultTrack","asyncPollTrackChange","pollTrackChange","_subtitleDisplay","onTextTracksChanged","findTrackForTextTrack","setSubtitleTrack","toggleTrackModes","trackInActiveGroup","currentGroups","subtitlePreference","groupIndex","allIndex","findTrackId","subtitleTracksUpdated","selectDefault","allSubtitleTracks","setSubtitleOption","subtitleOption","lastTrack","trackLoaded","lastCc","SUBTITLE_TRACKS_CLEARED","onSubtitleTracksCleared","initCea608Parsers","_ref14","hasIMSC1","textTrackKind","unusedTextTracks","closedCaptionsForLevel","_data$part$index","decrypted","trackPlaylistMedia","_parseIMSC1","_appendCues","maxAvCC","missingInitPTS","_fallbackToIMSC1","fragLevel","_ref15","bufferedTrack","switchingTrack","waitingData","flushing","bufferFlushed","cachedTrackLoadedData","doTickIdle","_levels$trackId","loadPosition","atGap","atBufferSyncLimit","mainFrag","_ref9","flushAudioIfNeeded","_handleTransmuxComplete","_ref10","_ref11","_id3$samples","completeAudioSwitch","mapFragment","_bufferInitSegment","emittedID3","emittedText","variantAudioCodecs","_track$details2","audioTracksUpdated","selectedTrackId","setAudioTrack","_this$groupIds","setAudioOption","audioOption","switchIndex","renditions","variantMap","currentVideoCodec","matchingVideo","findClosestLevelWithAudioGroup","withoutCodecAndChannelsMatch","cmcdController","sid","cid","useHeaders","includeKeys","starved","onWaiting","onPlaying","applyPlaylistData","ot","su","applyFragmentData","getObjectType","MUXED","getTopBandwidth","getBufferLength","createPlaylistLoader","createFragmentLoader","randomUUID","contentId","_data$tracks$audio","_data$tracks$video","createData","HLS","bandwidthEstimate","isVideo","INIT","bs","TIMED_TEXT","Ctor","contentSteeringController","pathwayPriority","timeToLoad","reloadTimer","penalizedPathways","ttl","loadSteeringManifest","levelToRemove","errorPathway","getPathwayForGroupId","pathways","updatePathwayPriority","filterParsedLevels","pathwayLevels","getLevelsForPathway","selectedIndex","selectedLevel","levelAfterChange","defaultPathway","clonePathways","pathwayClones","audioGroupCloneMap","subtitleGroupCloneMap","pathwayClone","baseId","clonedVariants","baseLevel","clonedAudioGroupId","clonedSubtitleGroupId","clonedLevel","throughput","steeringData","TTL","reloadUri","loadedSteeringData","steeringManifest","STEERING_MANIFEST_LOADED","ttlMs","deepCpy","enableStreamingMode","currentLoader","ReadableStream","fetchSupported","_maxAutoLevel","steering","onParsedComplete","resetLevels","redundantSet","generatePathwaySet","resolutionFound","levelParsed","_audioCodec","_videoCodec","FRAMERATE","HDCP","PATHWAY","RESOLUTION","VIDEO_RANGE","pathwayCount","filterAndSortMediaOptions","filteredLevels","_ref25","isVideoRange","assignTrackIdsByGroup","unsortedLevels","valueA","valueB","firstLevelInPlaylist","_this$hls$userConfig","firstLevelBitrate","startingBwEstimate","edata","lastLevelIndex","lastPathwayId","levelSwitchingData","_ref26","_data$deliveryDirecti2","_data$deliveryDirecti","_this$currentLevel","_ref27","checkMaxAutoUpdated","keyUriToKeyInfo","_loader$context","createKeyLoadError","loadingFrag","_keyInfo","_keyInfo2","_keyInfo$mediaKeySess","keyLoadPromise","loadKeyHTTP","loadKeyEME","getSourceBuffer","isMSESupported","activeFrag","maxStartGapJump","partialOrGap","bufferStarved","waiting","gapLength","startGap","startFrag","startProvisioned","moreToLoad","provisioned","_forceStartLoad","onvplaying","couldBacktrack","checkBuffer","checkFragmentChanged","getMainFwdBufferInfo","_this$backtrackFragme","backtrackFrag","_loadBitrateTestFrag","abortCurrentFrag","maxStart","onMediaPlaying","_sourceBuffer$prototy","changeTypeSupported","_curLevel$details","_ref28","isFirstFragment","isFirstInDiscontinuity","backtrack","audioMetadata","fragCurrentLevel","currentProgramDateTime","epocMs","codecsForVideoContainer","codecForAudioContainer","_emitter","_maxHdcpLevel","latencyController","triggeringException","defaultsCopy","deprecatedSettings","policyNotSet","report","deprecatedSetting","mergeConfig","ConfigAbrController","ConfigBufferController","ConfigCapLevelController","ConfigErrorController","ConfigFpsController","ConfigContentSteeringController","createController","AudioStreamControllerClass","SubtitleStreamControllerClass","ControllerClass","controllerInstance","eventObject","loadedSource","loadingSource","isHdcpLevel","playingDate","_this$audioTrackContr","_this$subtitleTrackCo","videoRef","FiYoutube","Index","_window2","_window3","_window4","bannerImageLoaded","setBannerImageLoaded","heroImageLoaded","setHeroImageLoaded","gliderRef","setSlideIndex","setIsMobile","isHovered","setIsHovered","isWhiteHovered","setIsWhiteHOvered","isDiamondHovered","setIsDiamondHovered","userInfo","userToken","showVideoModal","setShowVideoModal","sliderData","slider1","slider2","slider3","slider4","slider5","slider6","slider7","slider8","slider9","slider10","slider11","slider12","slider13","slider14","setSettings","innerWidth","handleResize","_window5","_window6","_window7","_window8","_Fragment","ShadowFrame","onLoad","srcSet","imageMobile","landingImgTab","LandingBannerImg","LandingBannerImgFallback","PlayArrowIcon","ModalCloseIcon","HLSPlayer","list1","list2","list3","backgroundImage","Metaverce_Bg","backgroundSize","backgroundPosition","backgroundRepeat","_gliderRef$current","_gliderRef$current2","leftRightImg","genevive","genevive2","FSTRCoinFlip","ProBit_logo","newRoadMapImg","team1","team2","team3","advisor1","advisor2","advisor3","setIsPlaying","imageTab","heroImage2","gen_last","gv_social_media_profiles","tokenInfographic","infographic","ProBitTrading","allCategory","coming","setValues","handleChange","NotFound","_item$largeThumbnail","_item$shortDescriptio","_item$assetName","largeThumbnail","assetName","shortDescription","IAPslug","slug","LargeCard","SmallCard","nn","rn","tn","revocable","revoke","op","deleteProperty","un","produce","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","an","cn","pn","toPropertyKey","formatProdErrorMessage","$$observable","observable","ActionTypes","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","applyMiddleware","middlewares","_dispatch","middlewareAPI","createThunkMiddleware","extraArgument","thunk","withExtraArgument","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","baseProto","hasMatchFunction","createAction","prepareAction","actionCreator","prepared","__spreadValues","MiddlewareArray","__extends","__spreadArray","EnhancerArray","freezeDraftable","isDraftable","createNextState","curryGetDefaultMiddleware","_c","middlewareArray","immutableCheck","serializableCheck","actionCreatorCheck","thunkMiddleware","getDefaultMiddleware","configureStore","rootReducer","curriedGetDefaultMiddleware","_f","devTools","_g","_h","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","compose2","defaultEnhancers","storeEnhancers","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","addCase","typeOrActionCreator","addMatcher","addDefaultCase","createSlice","_reducer","initialState","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","extraReducers","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","cr","caseReducer","isDraft2","isDraftable2","createNextState2","draft","createReducer","actionMatchers_1","reducerName","prepareCallback","maybeReducerWithPrepare","prepare","nanoid","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","fulfilled","__spreadProps","requestStatus","rejectedWithValue","AC","throwIfAborted","abortReason","idGenerator","abortController","promise2","__async","isThenable","conditionResult","abortedPromise","getPendingMeta","race","rejectWithValue","fulfillWithValue","finalAction","err_1","dispatchConditionRejection","unwrap","unwrapResult","withTypes","isAnyOf","isAllOf","hasExpectedRequestMetadata","validStatus","hasValidRequestId","hasValidRequestStatus","isAsyncThunkArray","asyncThunks","asyncThunk","combinedMatcher","isRejected","isRejectedWithValue","hasFlag","isFulfilled","isAsyncThunkAction","asyncThunks_1","alm","SHOULD_AUTOBATCH","prepareAutoBatched","createQueueWithTimer","enableES5","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","resultEqualityCheck","createCacheKeyComparator","getEntries","createSingletonCache","cacheIndex","createLruCache","memoized","matchingEntry","clearCache","createSelectorCreator","memoizeOptionsFromArgs","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","dependencyTypes","getDependencies","memoizedResultFunc","recomputations","resetRecomputations","QueryStatus","QueryStatus2","createSelector","joinUrls","isAbsoluteUrl","withoutTrailingSlash","withoutLeadingSlash","flatten","_iPO","copyWithStructuralSharing","oldObj","newKeys","oldKeys","isSameObject","mergeObj","newKeys_1","defaultFetchFn","defaultValidateStatus","defaultIsJsonContentType","stripUndefined","isPlainObject2","_k","_l","HandledError","DefinitionType","DefinitionType2","onFocusLost","onOnline","onOffline","setupListeners","customHandler","handleFocus","handleOnline","handleOffline","defaultHandler","isQueryDefinition","calculateProvidedBy","queryArg","assertTagTypes","expandTagDescription","isNotNullish","forceQueryFnSymbol","isUpsertQuery","defaultTransformResponse","baseQueryReturnValue","calculateProvidedByThunk","endpointDefinitions","assertTagType","endpointName","originalArgs","baseQueryMeta","updateQuerySubstateIfExists","queryCacheKey","substate","getMutationCacheKey","fixedCacheKey","updateMutationSubstateIfExists","buildSlice","reducerPath","queryThunk","mutationThunk","definitions","apiUid","extractRehydrationInfo","hasRehydrationInfo","resetApiState","createAction2","querySlice","removeQueryResult","queryResultPatched","patches","upserting","uninitialized","startedTimeStamp","fulfilledTimeStamp_1","fulfilledTimeStamp","arg_1","baseQueryMeta_1","requestId_1","draftSubstateData","structuralSharing","isDraft","mutationSlice","removeMutationResult","mutations","invalidationSlice","updateProvidedBy","providedTags","tagTypeSubscriptions","_m","_o","idSubscriptions","foundAt","_p","providedTags_1","_q","subscribedQueries","provided","incomingTags","cacheKeys","cacheKeys_1","isFulfilled2","isRejectedWithValue2","subscriptionSlice","updateSubscriptionOptions","unsubscribeQueryResult","internal_probeSubscription","internalSubscriptionsSlice","subscriptionsUpdated","configSlice","online","middlewareRegistered","combinedReducer","subscriptions","unsubscribeMutationResult","skipToken","initialSubState","defaultQuerySubState","defaultMutationSubState","buildSelectors","serializeQueryArgs","selectSkippedQuery","selectSkippedMutation","buildQuerySelector","endpointDefinition","queryArgs","serializedArgs","finalSelectQuerySubState","selectInternalState","withRequestFlags","buildMutationSelector","mutationId","_a2","selectInvalidatedBy","apiState","toInvalidate","invalidateSubscriptions_1","invalidate","querySubState","isUninitialized","isSuccess","getRequestStatusFlags","rootState","defaultSerializeQueryArgs","stringified","isPlainObject3","buildCreateApi","optionsWithDefaults","keepUnusedDataFor","refetchOnMountOrArgChange","refetchOnFocus","refetchOnReconnect","queryArgsApi","finalSerializeQueryArgs","endpointSQA_1","queryArgsApi2","initialResult","tagTypes","injectEndpoints","evaluatedEndpoints","mutation","overrideExisting","initializedModules_1","initializedModules","injectEndpoint","enhanceEndpoints","addTagTypes","addTagTypes_1","eT","partialDefinition","buildCacheCollectionHandler","internalState","internalActions","anySubscriptionsRemainingForKey","currentSubscriptions","isObjectEmpty","currentRemovalTimeouts","handleUnsubscribe","api2","finalKeepUnusedDataFor","currentTimeout","mwApi","internalState2","queryState","buildInvalidationByTagsHandler","refetchQuery","isThunkActionWithTags","isAnyOf2","isFulfilled3","isRejectedWithValue3","invalidateTags","valuesArray_1","subscriptionSubState","buildPollingHandler","currentPolls","startNextPoll","lowestPollingInterval","findLowestPollingInterval","currentPoll","nextPollTimestamp","currentInterval","pollingInterval","updatePollingInterval","cleanupPollForKey","existingPoll","subscribers","clearPolls","neverResolvedError","buildCacheLifecycleHandler","isQueryThunk","isMutationThunk","isFulfilledThunk","isFulfilled4","lifecycleMap","handleNewKey","onCacheEntryAdded","lifecycle","cacheEntryRemoved","cacheDataLoaded","valueResolved","__","extra2","lifecycleApi","getCacheEntry","updateCachedData","updateRecipe","updateQueryData","runningHandler","stateBefore","oldState","cacheKey2","buildQueryLifecycleHandler","isPendingThunk","isPending2","isRejectedThunk","isRejected2","isFullfilledThunk","isFulfilled5","endpointName_1","originalArgs_1","onQueryStarted","lifecycle_1","queryFulfilled","selector_1","isUnhandledError","buildDevCheckHandler","queueMicrotaskShim","buildBatchedActionsHandler","subscriptionsPrefix","previousSubscriptions","dispatchQueued","didMutate","mutableState","subscriptionOptions","actuallyMutateSubscriptions","newSubscriptions","produceWithPatches2","isSubscriptionSliceAction","isAdditionalSubscriptionAction","buildMiddleware","createAction3","handlerBuilders","initialized2","builderArgs","batchedActionsHandler","windowEventsHandler","refetchValidQueries","buildWindowEventHandler","mwApiWithNext","actionShouldContinue","hasSubscription","isThisApiSliceAction","handlers_1","override","forceRefetch","safeAssign","coreModuleName","coreModule","baseQuery","enablePatches","executeEndpoint","_0","_1","transformResponse","baseQueryApi_1","isForcedQuery","forceQueryFn","extraOptions","queryFn","arg2","catchedError","error_1","transformErrorResponse","e_4","requestState","baseFetchOnMountOrArgChange","fulfilledVal","refetchVal","queryThunkArgs","currentArg","previousArg","endpointState","matchesEndpoint","prefetch","hasTheForce","hasMaxAge","ifOlderThan","queryAction","force2","initiate","latestStateValue","lastFulfilledTs","updateProvided","inversePatches","undo","patchQueryData","upsertQueryData","providesTags","buildMatchThunkActions","matchPending","matchFulfilled","matchRejected","buildThunks","sliceActions","middlewareActions","runningQueries","runningMutations","buildInitiateQuery","thunkResult","stateAfter","middlewareWarning","skippedSynchronously","runningQuery","selectFromState","statePromise","refetch","running_1","buildInitiateMutation","returnValuePromise","getRunningQueryThunk","getRunningMutationThunk","_endpointName","fixedCacheKeyOrRequestId","getRunningQueriesThunk","getRunningMutationsThunk","getRunningOperationPromises","extract","queriesForStore","removalWarning","buildInitiate","getRunningOperationPromise","anyApi","isMutationDefinition","useStableQueryArgs","incoming","cache2","UNINITIALIZED_VALUE","useShallowStableValue","useRef2","useEffect2","useEffect3","defaultMutationStateSelector","noPendingQueryStateSelector","isFetching","reactHooksModuleName","createApi","rrBatch","rrUseDispatch","rrUseSelector","rrUseStore","unstable__sideEffectsInRender","moduleOptions","usePossiblyImmediateEffect","buildQueryHooks","useQuerySubscription","stableArg","stableSubscriptionOptions","lastRenderHadSubscription","useRef3","promiseRef","currentRenderHasSubscription","returnedValue","subscriptionRemoved","lastPromise","lastSubscriptionOptions","useMemo2","useLazyQuerySubscription","setArg","subscriptionOptionsRef","preferCacheValue","useQueryState","selectFromResult","lastValue","selectDefaultResult","queryStatePreSelector","shallowEqual2","newLastValue","useLazyQuery","queryStateResults","lastArg","useQuery","querySubscriptionResults","buildMutationHook","setPromise","triggerMutation","mutationSelector","usePrefetch","stableDefaultOptions","hasData","currentData","buildHooks","useMutation","reactHooksModule","BASE_URL","BASE_URL_CREATOR","EndpointsSlug","LOGIN","GOOGLESIGIN","SIGNUP","VERIFY_OTP","RESEND_OTP","FORGOT_PASSWORD","DELETE_USER_OTP","DELETE_USER","VERIFY_FORGOT_OTP","RESET_PASSWORD","USERNAME_VALIDATOR","VERIFY_FORGET_PASSWORD_LINK","ADD_USER_INFO","GET_USER_PROFILE","UPD_USER_INFO","UPD_USER_PROFILE_PHOTO","REM_USER_PROFILE_PHOTO","UPD_USER_USER_CHANGE_PASSWORD","GET_USER_PREFERENCE","GET_USER_TAGS","GET_USER_SUGGESTED_TAGS","UPD_USER_PREFERENCE","UPD_USER_TAGS","SEARCH_FRIEND","FRIEND_REQUEST_SEND","ACCEPT_FRIEND_REQUEST","ACCEPT_FRIEND","REJECT_FRIEND_REQUEST","GET_BLOCKED_FRIENDS","CANCEL_REQUEST_FRIEND","GET_FRIENDS","GET_PENDING_INVITES","GET_REQUESTED_FRIEND_REQUEST","REMOVE_FRIEND","BLOCK_FRIEND","UNBLOCK_FRIEND","GET_180_VIDEOS","GET_SINGLE_180_VIDEO","GET_360_VIDEOS","GET_SINGLE_360_VIDEO","GET_VOL_VIDEOS","GET_SINGLE_VOL_VIDEO","GET_2D_VIDEOS","GET_SINGLE_2D_VIDEO","GET_MUSIC_VIDEOS","GET_SINGLE_MUSIC_VIDEO","GET_ALL_CHANNELLIST","GET_SINGLE_CHANNEL","GET_CHANNEL_EMAIL","channelSlug","GET_MOST_TRENDING_VIDEOS","GET_PREMIUM_VIDEOS","GET_MOST_TRENDING_CONTENT","GET_PREMIUM_CHANNELS","GET_RECOMMENDED_CHANNELS","GET_RECOMMENDED_CONTENT","POST_TRENDING_CHANNELS","GET_ALL_CAT_DATA","POST_CHECK_USER_ASSETS_INFO","POST_CHECK_USER_ADD_FREE_ASSET","GET_SINGLE_USER_ASSETS","GET_SINGLE_USER_SUBSCRIBED_CHANNEL","GET_USER_ALL_NOTIFICATION","GET_SINGLE_NOTIFICATION","CREATE_USER_INTERACTION","READ_ALL_NOTIFICATION","FILE_NAME_GENERATE","FILE_USER_UPLOAD","REPORT_CONTENT","REPORT_CHANNEL","GET_ALL_CHANNEL_CONTENT","GET_ALL_APARTMENT","GET_SINGLE_APARTMENT","GET_ALL_SHIPS","GET_CART_ITEMS","GET_CART_ITEMS_COUNT","GET_STAR_CART_ITEMS","GET_SINGLE_SHIP","GET_SINGLE_CLOTHING","GET_SINGLE_AVATAR","GET_SINGLE_COMPANION","CREATE_CART_ITEMS","REMOVE_CART_ITEM","GET_EVENT_LIST","GET_ONE_EVENT","GET_RECC_EVENT","GET_TODAY_EVENT_LIST","GET_USER_EVENT_LIST","ADD_PARTICIPANT_TO_EVENT","IAP_ASSET_LIST","LIST_IAP_ASSETS","EQUIP_DEFAULT_CLOTHING_AVATAR","WEAR_ALL_ITEMS","MARKETPLACE_CLOTHING","MARKETPLACE_AVATAR","MARKETPLACE_COMPANION","INITIATE_TRANS","INITIATE_EVENT_TRANS","VERIFY_GATEWAY_TRANSACTION","CREATE_SUBSCRIPTION_MONTHLY","GET_FRIEND_LIST_APARTMENT_ASSET","INVITE_FRIEND_APARTMENT_ASSET","REMOVE_FRIEND_APARTMENT_ASSET","GET_FRIEND_LIST_SHIP_ASSET","INVITE_FRIEND_SHIP_ASSET","REMOVE_FRIEND_SHIP_ASSET","GET_CHANNEL_CONTENT_ASSET","POST_CURRENCY_CONVERSION","GET_MY_ORDERS_ASSET","GET_MY_ORDER_DETAIL","INITIATE_CRYPTO_TRANSACTION","INITIATE_CRYPTO_SUBSCRIPTION","INITIATE_CRYPTO_EVENT_PURCHASE","VERIFY_CRYPTO_TRANSACTION","PROCESS_CRYPTO_TRANSACTION","GET_USER_SUBSCRIPTION_LIST","GET_USER_SUBSCRIPTION_TRANS_DETAILS","CHECK_USER_SUBSCRIPTION","CANCEL_SUBSCRIPTION","GET_TICKET_LIST","GET_SINGLE_FEEDBACK","ticketId","SEND_FEEDBACK","CHANGE_STATUS_FEEDBACK","UPDATE_ACCOUNT_PRIVATE","POST_REQUEST_REFUND","CHECK_REFUND_STATUS","GET_USER_WALLET_LIST","ADD_USER_WALLET_ADDRESS","REMOVE_USER_WALLET_ADDRESS","GET_CRYPTO_TRANSACTION_QR","MODIFY_CRYPTO_TRANSACTION","CANCEL_CRYPTO_TRANSACTION","kindOf","thing","kindOfTest","typeOfTest","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","_global","isContextDefined","isHTMLForm","reduceDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","asap","isFormData","isStream","caseless","assignValue","targetKey","stripBOM","superConstructor","toFlatObject","sourceObj","destObj","propFilter","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","AxiosError","captureStackTrace","utils","fileName","lineNumber","columnNumber","axiosError","isVisitable","removeBrackets","renderKey","predicates","metaTokens","visitor","defaultVisitor","useBlob","convertValue","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","use","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","rawValue","stringifySafely","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","_header","_rewrite","lHeader","setHeaders","tokensRE","parseTokens","deleted","deleteHeader","normalize","normalized","formatHeader","targets","asStrings","accessor","accessors","defineAccessor","accessorName","arg1","arg3","buildAccessors","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","freq","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","progressBytes","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","requestURL","toGMTString","buildFullPath","requestedURL","isAbsoluteURL","combineURLs","headersToObject","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","isURLSameOrigin","xsrfValue","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","parseProtocol","composeSignals","signals","streamChunk","chunkSize","readStream","asyncIterator","trackStream","onFinish","readBytes","_onFinish","pull","enqueue","isFetchSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","_request","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","knownAdapters","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","formatMessage","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","_listeners","onfulfilled","_resolve","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","Cancel","spread","isAxiosError","formToJSON","getAdapter","_goober","toastId","toasts","visible","pausedAt","pauseDuration","blank","createdAt","ariaProps","updateHeight","startPause","reverseOrder","gutter","defaultPosition","endPause","iconTheme","getAnimationStyle","onHeightUpdate","toastOptions","containerStyle","containerClassName","getPositionStyle","_t","showErrorNotification","Authorization","statusEnum","serverError","pingResponse","customBaseQuery","prepareHeaders","fetchFn","isJsonContentType","jsonContentType","jsonReplacer","defaultTimeout","globalResponseHandler","responseHandler","globalValidateStatus","baseFetchOptions","__objRest","isJsonifiable","requestClone","timedOut","timeoutId","e_1","responseClone","handleResponse","resultData","handleResponseError_1","originalStatus","e_2","fetchBaseQuery","baseQueryWithReauth","_result$data","_result$data2","_result$error","_result$error2","_result$data4","_result$data5","_result$error4","_result$error5","showError","networkError","_result$data3","_result$error3","_result$data6","_result$error6","ApartmentSlice","GetAllApartment","GetSingleApartment","useGetAllApartmentQuery","useGetSingleApartmentQuery","APARTMENT_BANNER_IMAGE","SHIP_BANNER_IMAGE","ENTERTAINMENT_BANNER_IMAGE","CLOTHING_BANNER_IMAGE","AVATAR_BANNER_IMAGE","COMPANION_BANNER_IMAGE","GAMING_BANNER_IMAGE","aptFeaturedCard","setAptFeaturedCard","FeatureImg1","FeatureImg2","FeatureImg3","FeatureImg4","apartments","setApartments","_data$response","_data$response2","_data$response2$data","ImageConstant","MarketPlaceCard","FeaturedCard","ShipSlice","GetAllShip","GetSingleShip","useGetAllShipQuery","useGetSingleShipQuery","ships","setShips","togglePasswordVisibility","previousElementSibling","eyeOn","eyeOff","isValidEmail","isValidUsername","isContainsSpecialChars","isContainsNumber","UPPERCASE_REGEX","LOWERCASE_REGEX","NUMBER_REGEX","LENGTH_REGEX","SPECIAL_CHARS_REGEX","isStrongPassword","isUppercaseValid","isLowercaseValid","isNumberValid","isLengthValid","isSpecialCharValid","calculateTotalPages","totalDataCount","rowsPerPage","getUsdToFstrPrice","webRequestHandler","_res$response","_res$response3","_res$response3$data","_res$response3$data$p","_res$response4","_res$response4$data","_res$response4$data$m","_res$response5","_res$response5$data","_res$response5$data$d","USD","_res$response2","fstrPrice","platform_token","fstrMarketPrice","market_token","discount","sessionStorage","convertUsdToFstrPrice","usd","_String","sanitizedUsdPrice","convertActualUsdToFstrPrice","_String2","convertUsdToMarketFstrUsd","_String3","fstrPltToken","fstrMrktToken","getFstrDiscount","sanitizeStringToNumber","price","_price","sanitizedPrice","removeTrailingZeroes","numberString","UserProfile","GetUserProfileByToken","UpdateUserInfoDataByToken","ValidateUsername","UpdateUsernameWithGenderAndDob","UpdateUserProfilePhotoByToken","photoUrl","RemoveUserProfilePhotoByToken","UpdateUserPasswordByToken","GetUserPreferenceByToken","GetUserTagsByToken","UpdateUserPreferenceByToken","UpdateUserTagsByToken","GetUserSuggestedTagsByToken","GetSingleUserAssetsByToken","GetSingleUserSubscribedChannel","UpdateFileName","mimetype","UpdateUserFilePhoto","fileId","UpdateAccountPrivate","DeleteUserOtp","DeleteUser","otp","GetUserWalletList","AddUserWalletAddress","invalidatesTags","RemoveUserWalletAddress","useGetUserProfileByTokenQuery","useLazyGetUserProfileByTokenQuery","useUpdateUserInfoDataByTokenMutation","useValidateUsernameMutation","useUpdateUsernameWithGenderAndDobMutation","useRemoveUserProfilePhotoByTokenMutation","useUpdateUserProfilePhotoByTokenMutation","useUpdateUserPasswordByTokenMutation","useGetUserPreferenceByTokenQuery","useGetUserTagsByTokenQuery","useUpdateUserPreferenceByTokenMutation","useUpdateUserTagsByTokenMutation","useGetUserSuggestedTagsByTokenQuery","useGetSingleUserAssetsByTokenQuery","useLazyGetSingleUserAssetsByTokenQuery","useGetSingleUserSubscribedChannelQuery","useUpdateFileNameMutation","useUpdateUserFilePhotoMutation","useUpdateAccountPrivateMutation","useDeleteUserOtpMutation","useDeleteUserMutation","useGetUserWalletListQuery","useAddUserWalletAddressMutation","useRemoveUserWalletAddressMutation","_userAssetsData","_userAssetsData$respo","cardClass","isComing","Mkey","baseRoute","channelID","contentID","star","setShowComingSoonPopup","myAsset","itemId","clothingLink","userAssetsData","_userAssetsData2","_userAssetsData2$resp","content_id","userOwnsAsset","handleClick","btnclass","btntext","Explore","OutlineButton","isHostComponent","excludeKeys","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","joinedClasses","mergedStyle","internalRef","eventHandlers","extractEventHandlers","componentsPropsWithoutEventHandlers","omitEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","componentProps","slotState","_parameters$additiona","skipResolvingSlotProps","resolvedComponentsProps","resolveComponentProps","mergeSlotProps","appendOwnerState","candidatesSelector","defaultGetTabbable","regularTabNodes","orderedTabNodes","nodeTabIndex","tabindexAttr","getTabIndex","getRadio","roving","isNonTabbableRadio","isNodeMatchingSelectorFocusable","documentOrder","defaultIsEnabled","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","getTabbable","ignoreNextEnforceFocus","sentinelStart","sentinelEnd","nodeToRestore","reactFocusEventTarget","activated","rootRef","lastKeydown","loopFocus","contain","hasFocus","tabbable","_lastKeydown$current","_lastKeydown$current2","isShiftTab","focusNext","focusPrevious","handleFocusSentinel","childrenPropsHandler","forwardedRef","disablePortal","mountNode","setMountNode","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","nextCallback","_inheritsLoose","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","forceReflow","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","onExit","onExiting","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","childProps","TransitionGroupContext","useThemeSystem","reflow","getTransitionProps","_style$transitionDura","_style$transitionTimi","transitionDuration","transitionTimingFunction","transitionDelay","entering","entered","inProp","TransitionComponent","normalizedTransitionCallback","maybeIsAppearing","handleEntering","isAppearing","transitionProps","webkitTransition","handleEntered","handleExiting","handleExit","handleExited","getBackdropUtilityClass","BackdropRoot","WebkitTapHighlightColor","_slotProps$root","_slots$root","componentsProps","rootSlotProps","Root","getScrollbarSize","documentWidth","ariaHidden","getPaddingRight","ariaHiddenSiblings","mountElement","elementsToExclude","isNotExcludedElement","isNotForbiddenElement","isForbiddenTagName","isInputHidden","isAriaHiddenForbiddenOnElement","findIndexOf","handleContainer","restoreStyle","disableScrollLock","isOverflowing","scrollbarSize","scrollContainer","containerWindow","restore","defaultManager","containers","modals","modalIndex","modalRef","hiddenSiblings","getHiddenSiblings","mount","containerIndex","ariaHiddenState","nextTop","isTopModal","disableEscapeKeyDown","manager","closeAfterTransition","onTransitionEnter","onTransitionExited","onClose","mountNodeRef","exited","setExited","hasTransition","getHasTransition","ariaHiddenProp","getModal","handleMounted","handleOpen","useEventCallback","resolvedContainer","handlePortalRef","handleClose","createHandleKeyDown","otherHandlers","_otherHandlers$onKeyD","createHandleBackdropClick","_otherHandlers$onClic","getRootProps","propsEventHandlers","externalEventHandlers","getBackdropProps","portalRef","getModalUtilityClass","ModalRoot","ModalBackdrop","Backdrop","Modal","_slots$backdrop","_slotProps$backdrop","BackdropComponent","BackdropProps","hideBackdrop","keepMounted","onBackdropClick","propsWithDefaults","useModal","RootSlot","BackdropSlot","backdropSlotProps","rootProps","useSlotProps","backdropProps","FocusTrap","elevation","alphaValue","getPaperUtilityClass","PaperRoot","square","rounded","_theme$vars$overlays","getOverlayAlpha","overlays","getDialogUtilityClass","DialogBackdrop","overrides","DialogRoot","DialogContainer","verticalAlign","DialogPaper","Paper","fullWidth","paperFullWidth","fullScreen","paperFullScreen","dialogClasses","paperScrollBody","defaultTransitionDuration","ariaDescribedby","ariaLabelledbyProp","PaperComponent","PaperProps","TransitionProps","backdropClick","ariaLabelledby","dialogContextValue","titleId","DialogContext","useMediaQueryOld","defaultMatches","ssrMatchMedia","noSsr","setMatch","queryList","updateMatch","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","useMediaQuery","queryInput","supportMatchMedia","handleData","Dialog","belongTo","pageNum","totalPages","handlePageChange","showComingSoonPopup","_vitem","AssetCardOpen","iapType","iapCategory","paymentType","ComingSoon","MarketplaceSlice","GetListMarketplaceClothing","searchQuery","clothType","GetSingleClothing","GetListMarketplaceAvatar","GetListMarketplaceCompanion","GetSingleAvatar","GetSingleCompanion","useGetListMarketplaceClothingQuery","useGetListMarketplaceAvatarQuery","useGetListMarketplaceCompanionQuery","useGetSingleClothingQuery","useGetSingleAvatarQuery","useGetSingleCompanionQuery","marketplaceData","setMarketplaceData","setPageNum","setTotalPages","categoryQuery","prevPageNum","activeKey","setActiveKey","activeTabs","setActivetab","SpaceSuit","pagination","updatedNewData","_item$IAPslug","iapId","thumbnail","clothSubType","priceFiat","priceToken","prevEntertainmentData","ExoSuit","Formal","Casual","tabs","handleClickAsset","seeMoreUrl","_Number","CompanionLink","heading","randomImages","ComingSoon1Image","ComingSoon2Image","ComingSoon3Image","ComingSoon4Image","ComingSoon5Image","AlphaBotImage","DracoImage","ExoSuitImage","GoblinImage","RoboticDogImage","AlphaLeoImage","Gremlin","Gizmo","Vanguard","Hover","sliderSettings","_dataSidekick","_dataSidekick$respons","_dataPet","_dataPet$response","_dataSidekick2","_dataSidekick2$respon","_dataBodyguard","_dataBodyguard$respon","_dataMaster","_dataMaster$response","_dataAI","_dataAI$response","_dataPet2","_dataPet2$response","dataPet","isFetchingPet","isSuccessPet","isErrorPet","dataSidekick","isFetchingSidekick","isSuccessSidekick","isErrorSidekick","dataMaster","isFetchingMaster","isSuccessMaster","isErrorMaster","dataBodyguard","isFetchingBodyguard","isSuccessBodyguard","isErrorBodyguard","dataAI","isFetchingAI","isSuccessAI","isErrorAI","filteredDataSidekick","_item$thumbnail","filteredDataBodyguard","_dataBodyguard2","_dataBodyguard3","_item$thumbnail2","filteredDataMaster","_dataMaster2","_dataMaster3","_item$thumbnail3","filteredDataAI","_dataAI2","_dataAI3","_item$thumbnail4","filteredDataPet","_dataPet3","_dataPet4","_item$thumbnail5","SliderHeader","SliderCards","CompanionsList","_data2","_data2$response","categorytype","allData","setAllData","_data","filteredData","totalCount","prevData","strokeLinecap","strokeLinejoin","onBuyHandle","isLocked","CoinStarIcon","DummyCart","plan","justAdded","selectedThemeIndex","onThemeChange","themes","isAddedToCart","isOwned","showDropDown","setShowDropDown","hideDropDown","card","isSubscription","BuyNowNoTheme","BuyNowTheme","Free","Premium","InMyAssets","AddToCart","ChannelPremium","canClose","isOpen","setIsOpen","position_classes","buttonText","showCloseIcon","onClickCloseIcon","PopupWrapper","CheckIcon","ErrorCrossIcon","addresses","marketCapRank","ethereum","avalanche","sora","fantom","energi","boba","osmosis","archway","akash","solana","cronos","aurora","celo","terra","aptos","chiliz","neutron","stellar","kava","tron","stacks","astar","cosmos","xdai","moonbeam","ronin","polkadot","flow","elrond","thundercore","iotex","moonriver","fuse","meter","theta","elastos","velas","ordinals","bittorrent","pulsechain","sui","migaloo","injective","juno","zksync","syscoin","hydra","binancecoin","tomochain","telos","conflux","cube","nuls","algorand","canto","cardano","comdex","evmos","everscale","dogechain","tezos","exosama","findora","smartbch","neo","beam","kujira","crescent","vechain","linea","opbnb","mantle","blast","kardiachain","tombchain","starknet","zilliqa","ontology","waves","eos","rootstock","Bitcichain","vite","networks","nativeCoinId","shortName","chainId","wallets","toKebabCase","toPascalCase","NETWORK_ICON_IMPORT_MAP","NetworkBitkubChain","NetworkLinea","NetworkKakarot","NetworkFio","NetworkOkex","NetworkMatic","NetworkPolkadot","NetworkKava","NetworkZksync","NetworkAurora","NetworkVelas","NetworkTombchain","NetworkAstar","NetworkLyra","NetworkViction","NetworkSonic","NetworkApexLayer","NetworkOptimism","NetworkMilkomedaC1","NetworkIotex","NetworkLoopring","NetworkLukso","NetworkSongbird","NetworkHederaHashgraph","NetworkBoba","NetworkXLayer","NetworkWorld","NetworkMantra","NetworkBlast","NetworkEnergyWeb","NetworkCosmos","NetworkKujira","NetworkOrderly","NetworkSeiNetwork","NetworkMantaPacific","NetworkNeoX","NetworkCronos","NetworkLumia","NetworkEdgeless","NetworkFluence","NetworkWemix","NetworkDogechain","NetworkSoneium","NetworkClover","NetworkReya","NetworkKaia","NetworkFantom","NetworkAvalanche","NetworkChiliz","NetworkNearProtocol","NetworkCelo","NetworkWax","NetworkBouncebit","NetworkEnuls","NetworkInjective","NetworkOsmosis","NetworkNeonEvm","NetworkRootstock","NetworkLavaNetwork","NetworkMoonbaseAlpha","NetworkMeter","NetworkTheta","NetworkZilliqa","NetworkStarknet","NetworkMantle","NetworkMoonbeam","NetworkRollux","NetworkEtherlink","NetworkBase","NetworkShiden","NetworkZetaChain","NetworkAptos","NetworkSuperseed","NetworkXrp","NetworkLisk","NetworkDiode","NetworkVanar","NetworkKardia","NetworkOptopia","NetworkUbiq","NetworkConflux","NetworkKarura","NetworkSui","NetworkAcala","NetworkZora","NetworkRei","NetworkGnosis","NetworkHemi","NetworkAbstract","NetworkFraxtal","NetworkSys","NetworkStep","NetworkOasys","NetworkBob","NetworkCoinexSmartChain","NetworkMultiversx","NetworkScroll","NetworkBinanceSmartChain","NetworkFilecoin","NetworkShimmerEvm","NetworkThundercore","NetworkPolygonZkevm","NetworkLitecoin","NetworkFuse","NetworkTelos","NetworkElastos","NetworkLycan","NetworkStellar","NetworkXdc","NetworkUnichain","NetworkArweave","NetworkImmutable","NetworkStargaze","NetworkMetisAndromeda","NetworkRari","NetworkNahmii","NetworkXai","NetworkTenet","NetworkHarmony","NetworkEos","NetworkEthereumClassic","NetworkCronosZkevm","NetworkCosmosHub","NetworkMoonriver","NetworkGravity","NetworkKucoin","NetworkUltron","NetworkPolygonPos","NetworkEthereum","NetworkLumio","NetworkArbitrumNova","NetworkMilkomedaA1","NetworkLightlink","NetworkZyx","NetworkRonin","NetworkMode","NetworkBotanix","NetworkCardano","NetworkJuno","NetworkKroma","NetworkL3x","NetworkHubbleExchange","NetworkBitcoin","NetworkLens","NetworkAlgorand","NetworkSolana","NetworkMoonbase","NetworkTaiko","NetworkTron","NetworkCorn","NetworkArbitrumOne","NetworkBeam","NetworkFlare","TOKEN_ICON_IMPORT_MAP","TokenVXV","TokenAXL","TokenXTZ","TokenCCD","TokenXTM","TokenREEF","TokenAUCTION","TokenMBX","TokenSAMA","TokenHAIR","TokenDIA","TokenDESO","TokenECOX","TokenOXT","TokenAVG","TokenFITFI","TokenCNC","TokenACQ","TokenCOMBO","TokenABYSS","TokenBLAST","TokenMNTL","TokenCEEK","TokenPOKT","TokenR","TokenFORE","TokenAART","TokenALI","TokenCVR","TokenSATT","TokenDNXC","TokenSCLP","TokenPAID","TokenHFT","TokenPAPER","TokenAMZ","TokenHYVE","TokenWGC","TokenKINE","TokenDFYN","TokenICX","TokenRVN","TokenWIGO","TokenPLU","TokenNAOS","TokenYES","TokenIDRT","TokenFACTR","TokenPXP","TokenWHALE","TokenBEND","TokenCUMMIES","TokenPTS","TokenDOGA","TokenLDO","TokenAGIX","TokenQTUM","TokenKAR","TokenKAS","TokenCAKE","TokenMTRM","TokenIXS","Token0XGAS","TokenRVST","TokenENS","TokenDXGM","TokenBKN","TokenLITT","TokenITP","TokenKLT","TokenLAZIO","TokenBABYDOGE","TokenSAITO","TokenRCN","TokenSOLID","TokenGOB","TokenSUIP","TokenDSRUN","TokenYFI","TokenMOCHI","TokenMASQ","TokenCARAT","TokenCAST","TokenPLT","TokenAGRS","TokenNFD","TokenBICO","TokenDSLA","TokenBUSD","TokenPNK","TokenRXD","TokenDORA","TokenDOSE","TokenCOSMOSHUB","TokenTRAC","TokenILV","TokenKWENTA","TokenLRC","TokenGAI","TokenSPX","TokenGAINS","TokenLAND","TokenSTMX","TokenSTSTARS","TokenBFIC","TokenS","TokenVAB","TokenCUBE","TokenAPOLLO","TokenDEFX","TokenABT","TokenCXO","TokenSDEX","TokenADCO","TokenSTSOL","TokenGO","TokenGRND","TokenVTC","TokenOXB","TokenSHI","TokenDC","TokenGENI","TokenZBC","TokenSHIA","TokenVPAD","TokenHPO","TokenDEC","TokenHST","TokenDFX","TokenXVS","TokenLORDS","TokenBSGG","TokenID","TokenD3D","TokenRISE","TokenGRAI","TokenSOMM","TokenSPOOL","TokenJIM","TokenIQ","TokenFORTH","TokenZMN","TokenFSN","TokenEMAGIC","TokenKATA","TokenOXEN","TokenCOS","TokenCLH","TokenGYMNET","TokenXWIN","TokenMBL","TokenSIX","TokenMTA","TokenAURABAL","TokenBTCST","TokenVITE","TokenFET","TokenMTV","TokenSTBU","TokenPSTAKE","TokenLOOM","TokenJST","TokenPOPCAT","TokenMVI","TokenVNO","TokenTVK","TokenSSV","TokenH2O","TokenXCP","TokenPLASTIK","TokenNFTART","TokenRADIO","TokenIPOR","TokenQUIDD","TokenLADYS","TokenXMON","TokenAIRI","TokenTSUKA","TokenBRN","TokenPERI","TokenETH","TokenGNS","TokenEUL","TokenXAVA","TokenDASH","TokenEGLD","TokenINFRA","TokenPLA","TokenBDT","TokenSILO","TokenWHALES","TokenDAFI","TokenWEMIX","TokenRAD","TokenKLV","TokenKOM","TokenAUTO","TokenRLC","TokenLINDA","TokenKLEE","TokenARPA","TokenKUJI","TokenENG","TokenKAP","TokenMCRT","TokenRLB","TokenRARI","TokenDODO","TokenRDNT","TokenKAG","TokenLUFC","TokenRAE","TokenDIONE","TokenKMD","TokenNSFW","TokenCARD","TokenAITECH","TokenWIFI","TokenHGPT","TokenNGC","TokenETI","TokenGLM","TokenPOL","TokenION","TokenLSS","TokenAREA","TokenINJ","TokenARDR","TokenLSD","TokenKUB","TokenOSMO","TokenSTOS","TokenCTX","TokenANC","TokenANT","TokenCVP","TokenMXC","TokenAMO","TokenHEZ","TokenDSM","TokenVELO","TokenSI","TokenHXRO","TokenSTATOM","TokenATPAY","TokenXOR","TokenXNA","TokenACS","TokenDEXTF","TokenG","TokenMAV","TokenMYRIA","TokenWAGMI","TokenMOBILE","TokenDERI","TokenES","TokenSTARL","Token10SET","TokenALICE","TokenATM","TokenVERSA","TokenHT","TokenPAWTH","TokenSHIB","TokenD2T","TokenZLK","TokenXVG","TokenETHIX","TokenNPXS","TokenOOKI","TokenGBEX","TokenSPACE","TokenXWG","TokenNRCH","TokenSEI","TokenMMF","TokenAVA","TokenSALT","TokenDHT","TokenCLXY","TokenDIP","TokenXPLA","TokenVERSE","TokenCOV","TokenQR","TokenT","TokenMTS","TokenXLM","TokenMVL","TokenFORT","TokenMTD","TokenNEXO","TokenCVC","TokenZYN","TokenSETH2","TokenSPH","TokenSMBR","TokenCTK","TokenVENT","TokenTOKEN","TokenPBX","TokenPAC","TokenTRCL","TokenSPIRIT","TokenXSGD","TokenKINT","TokenNEO","TokenBSX","TokenYDF","TokenWBTC","TokenWIN","TokenNEX","TokenBPT","TokenGMM","TokenBEAM","TokenTRYB","TokenUFT","TokenPYR","TokenKAT","TokenIXT","TokenELK","TokenPTU","TokenWNXM","TokenTRVL","TokenLIBRE","TokenQANX","TokenSIDUS","TokenWIKEN","TokenKAU","TokenANGLE","TokenSILK","TokenNRG","TokenBDP","TokenKMA","TokenMETAL","TokenPLR","TokenPEPE","TokenKIBA","TokenMATIC","TokenFRIN","TokenTROY","TokenBRWL","TokenMMIT","TokenKTC","TokenMORK","TokenNIM","TokenLINK","TokenALOT","TokenREGEN","TokenFIS","TokenDPS","TokenTUT","TokenJULD","TokenSATS","TokenGYEN","TokenFARM","TokenPOLYX","TokenVITA","TokenABR","TokenEVEAI","TokenONI","TokenFEG","TokenDEFI","TokenUBXS","TokenU","TokenBABYSHIB","TokenSHDW","TokenDINGO","TokenATH","TokenCOW","Token1ART","TokenCUMINU","TokenCERE","TokenCND","TokenSHX","TokenDFI","TokenCCT","TokenWCFG","TokenSDL","TokenSFD","TokenEDGE","TokenDGX","TokenSOLX","TokenTOMB","TokenDEP","TokenSDN","TokenSOLO","TokenXYO","TokenCLY","TokenBUILD","TokenTHEO","TokenXDEFI","TokenATRI","TokenASTO","TokenFPS","TokenQSR","TokenFX","TokenOSAK","TokenDEGO","TokenSN","TokenSCAR","TokenOLT","TokenAIMBOT","TokenFER","TokenMVX","TokenOMG","TokenACT","TokenITHEUM","TokenOAS","TokenELAND","TokenQKC","TokenCWS","TokenETHEREUM","TokenPAW","TokenLIME","TokenSWEAT","TokenGCR","TokenGALA","TokenRUG","TokenMMPRO","TokenGAME","TokenARKM","TokenETN","TokenBEAN","TokenLOVELY","TokenVOLT","TokenNPM","TokenROSE","TokenAIPAD","TokenRBN","TokenIDEX","Token0X0","TokenTUSD","TokenCROWD","TokenEML","TokenEOS","TokenCYBER","TokenCTSI","TokenBIT","TokenHERO","TokenSAKAI","TokenLEO","TokenDOGE","TokenSTELLA","TokenTIME","TokenFDUSD","TokenJESUS","TokenTPAD","TokenPYTH","TokenRBX","TokenSHRAP","TokenEWT","TokenRWN","TokenHBOT","TokenORDER","TokenDVPN","TokenLUSD","TokenGOG","TokenGMX","TokenSPELL","TokenSTRONG","TokenPIKA","TokenGAL","TokenCOPE","TokenFREN","TokenPORTAL","TokenJUNO","TokenBAND","TokenHDX","TokenMBOX","TokenCTI","TokenGLEEC","TokenHGT","TokenOBI","TokenBOLT","TokenBONK","TokenHORD","TokenSOUL","TokenHOGE","TokenAVT","TokenTON","TokenMARSH","TokenCRPT","TokenFRM","Token3ULL","TokenDF","TokenX2Y2","TokenDERO","TokenSANI","TokenSIPHER","TokenAXEL","TokenCNG","TokenOZO","TokenCOC","TokenMAP","TokenCAH","TokenSEILOR","TokenBRUSH","TokenSFP","TokenEDEN","TokenSAFE","TokenDBR","TokenDAI","TokenCGO","TokenCDT","TokenWAXP","TokenSHOPX","TokenHTR","TokenORT","TokenSTRX","TokenCEUR","TokenALEPH","TokenNULS","TokenAEGIS","TokenFUN","TokenZEE","TokenVRA","TokenALPHA","TokenHZN","TokenC3","TokenFCT","TokenPAAL","TokenADA","TokenPOOH","TokenPOLS","TokenQOM","TokenATOR","TokenXDC","TokenTRC","TokenXEP","TokenGMPD","TokenBZR","TokenROME","TokenGET","TokenPKR","TokenCROID","TokenRSS3","TokenSKEB","TokenBAO","TokenBAX","TokenMONA","TokenKEY","TokenGMEE","TokenUMA","TokenFEVR","TokenAGLA","TokenAURY","TokenICHI","TokenPRQ","TokenRIN","TokenCSPR","TokenSBTC","TokenTIDAL","TokenDOBO","TokenKEX","TokenEFL","TokenWXT","TokenUSDD","TokenNCDT","TokenBAN","TokenCONE","TokenBRRR","TokenLIF3","TokenSLAM","TokenCHEEMS","TokenGIV","TokenRPL","TokenPEX","TokenNADA","TokenNLS","TokenXCFX","TokenTEER","TokenBLUR","TokenSOLVE","TokenKUNCI","TokenKP3R","TokenXPRT","TokenTRB","TokenAHT","TokenPUMLX","TokenXY","TokenBTSG","TokenFLM","TokenXDB","TokenTRU","TokenCRO","TokenCQT","TokenHON","TokenMOONED","TokenVR","TokenXHV","TokenSTEP","TokenODDZ","TokenSXP","TokenAPE","TokenSCRT","TokenMIMATIC","TokenCREDI","TokenMNGO","TokenDOT","TokenVRSW","TokenBCDT","TokenOP","TokenFOOM","TokenORB","TokenTGT","TokenZIG","TokenBLANK","TokenHOLD","TokenCHAIN","TokenMX","TokenCGL","TokenFYN","TokenJOY","TokenAVAX","TokenCWEB","TokenO3","TokenBORA","TokenDCB","TokenMM","TokenXPR","TokenMIND","TokenSOFI","TokenMUSIC","TokenSOL","TokenEUROE","TokenAQT","TokenMDX","TokenIRIS","TokenOMMI","TokenZRX","TokenOKB","TokenEQUAL","TokenSPORE","TokenBTSE","TokenMEME","TokenPLANETS","TokenAIR","TokenSUB","TokenFAKEAI","TokenBURGER","TokenWALV","TokenFLX","TokenNFAI","TokenCOTI","TokenFNSA","TokenSHIDO","TokenWNDR","TokenBTM","TokenXCHF","TokenNAV","TokenALGO","TokenNODL","TokenPKF","TokenONIT","TokenPIVX","TokenBIST","TokenBAL","TokenBCD","TokenKIN","TokenPEOPLE","TokenLPOOL","TokenPROM","TokenIDLE","TokenEXTRA","TokenHANDY","TokenBNT","TokenWWY","TokenLAT","TokenCHEQ","TokenHUSD","TokenKLAY","TokenBMX","TokenNXT","TokenUMB","TokenHONEY","TokenBNB","TokenPRIME","TokenPRE","TokenUNO","TokenKEKE","TokenRJV","TokenEDG","TokenBADGER","TokenCUDOS","TokenEFX","TokenIST","TokenTYRANT","TokenBTRFLY","TokenREN","TokenLEVER","TokenFLEX","TokenRSC","TokenBCOIN","TokenCATHEON","TokenYAM","TokenVTHO","TokenNEURONI","TokenMOVE","TokenBXX","TokenLTC","TokenMOVR","TokenIMPT","TokenUMAMI","TokenQLC","TokenSTG","TokenASIA","TokenAIS","TokenUNFI","TokenCELR","TokenOKT","TokenBZRX","TokenCETUS","TokenQUBE","TokenSSWP","TokenKINGSHIB","TokenXIDO","TokenMETF","TokenMPLX","TokenVSP","TokenLAUNCH","TokenHXD","TokenTAKI","TokenML","TokenHOOK","TokenOS","TokenSMARTCREDIT","TokenEXRD","TokenVCORE","TokenHONK","TokenDBC","TokenPUSSY","TokenMIM","TokenTHOL","TokenMKR","TokenMINA","TokenBTCMT","TokenDAO","TokenTEL","TokenWITCH","TokenBMEX","TokenRBIF","TokenPEPES","TokenSAIL","TokenCNFI","TokenZEC","TokenTKP","TokenOCTA","TokenKZEN","TokenJEWEL","TokenSLR","TokenEOSDT","TokenMST","Token2DAI","TokenADP","TokenGALEON","TokenUW3S","TokenSYS","TokenOMAX","TokenXI","TokenDVF","TokenBANANA","TokenSOURCE","TokenPALM","TokenBHAT","TokenMELD","TokenROOK","TokenCMOS","TokenYOU","TokenSUTER","TokenWINR","TokenEPIC","TokenIGU","TokenEQB","TokenOPUL","TokenWOM","TokenEQU","TokenERN","TokenMTLX","TokenPKT","TokenISP","TokenUSDT","TokenVSYS","TokenUSDC","TokenBAI","TokenNORD","TokenRDN","TokenEGO","TokenOBSR","TokenGAMEFI","TokenBOB","TokenTROVE","TokenPLEX","TokenLCX","TokenFUSE","TokenMETIS","TokenZERO","TokenBUMP","TokenBLX","TokenEDU","TokenRGT","TokenSAUCE","Token1INCH","TokenKASTA","TokenGZIL","TokenRISITA","TokenPOOLX","TokenQUARTZ","TokenGODS","TokenOPTI","TokenLZM","TokenPRTC","TokenBITCI","TokenSTIMA","TokenSLND","TokenBORING","TokenDTX","TokenPROTEO","TokenVC","TokenFOUR","TokenTOSHI","TokenDXL","TokenPOLC","TokenHERMES","TokenVEX","TokenPORTX","TokenWOOF","TokenARK","TokenTIN","TokenDOR","TokenFTM","TokenAPT","TokenMEX","TokenMGP","TokenMNDE","TokenONION","TokenMFT","TokenBSCPAD","TokenPIXEL","TokenCNHT","TokenLM","TokenHVH","TokenMIN","TokenNEER","TokenMINU","TokenBS","TokenDOG","TokenGLINK","TokenCRYSTAL","TokenMETA","TokenCHR","TokenASM","TokenETHW","TokenSOCKS","TokenDNT","TokenMPL","TokenXKI","TokenVV","TokenTRIBE","TokenMRS","TokenEVER","TokenSTFX","TokenMYST","TokenPOLA","TokenADS","TokenDENT","TokenSHIBDOGE","TokenODIN","TokenSWFTC","TokenAIT","TokenSQUIDGROW","TokenFOR","TokenREVV","TokenNABOX","TokenORBS","TokenLVL","TokenSONNE","TokenNAP","TokenSWTH","TokenPOLYPAD","TokenALPACA","TokenBLOX","TokenCONV","TokenLON","TokenBCB","TokenMETFI","TokenTHETA","TokenWLKN","TokenWAMPL","TokenGHOST","TokenBOA","TokenBLZ","TokenWELT","TokenKARATE","TokenPSP","TokenUNI","TokenAGLD","TokenNFTX","TokenVSTA","TokenMTVT","TokenDEGEN","TokenDMTR","TokenBCT","TokenAIMX","TokenPENDLE","TokenEFI","TokenMOOV","TokenUSDV","TokenDIVER","TokenDOLA","TokenRFD","TokenDOME","TokenGOFX","TokenWOO","TokenWNK","TokenYCC","TokenRSR","TokenYAK","TokenBIDZ","TokenBUY","TokenHEGIC","TokenQUINT","TokenLUA","TokenWAS","TokenWING","TokenORAI","TokenNMR","TokenKWAI","TokenNOM","TokenYFII","TokenRETH","TokenXEC","TokenXDG","TokenHOSHI","TokenXET","TokenVIX","TokenDIVI","TokenLOKA","TokenTDROP","TokenAGI","TokenCIRUS","TokenJUP","TokenAPW","TokenSMT","TokenSLP","TokenFTN","TokenSTPT","TokenSNX","TokenFWB","TokenAI","TokenSLG","TokenSTRK","TokenDUST","TokenMIX","TokenDCR","TokenRITE","TokenWLITI","TokenMIMO","TokenBOSON","TokenBBANK","TokenFOLD","TokenPMON","TokenIBAT","TokenCFX","TokenOX","TokenSAM","TokenTET","TokenXPX","TokenXRP","TokenKOMPETE","TokenBLOCK","TokenPAXG","TokenZKP","TokenBSCS","TokenAPM","TokenDMT","TokenDMC","TokenSIGNA","TokenFTC","TokenDACXI","TokenDVI","TokenFLR","TokenLAYER","TokenVIB","TokenUBSN","TokenSEED","TokenDZOO","TokenNOIA","TokenPDT","TokenZKID","TokenPPAY","TokenFEAR","TokenPGX","TokenLYX","TokenQASH","TokenIDV","TokenBTG","TokenCANTO","TokenCSIX","TokenRIBBIT","TokenGZONE","TokenNCT","TokenBCN","TokenCOLLAB","TokenROOBEE","TokenGRT","TokenBPRO","TokenLBR","TokenNYM","TokenLAI","TokenGRC","TokenRIF","TokenPRY","TokenNFTB","TokenOETH","TokenSENATE","TokenUND","TokenSFUND","TokenPRX","TokenBULL","TokenLUNA","TokenTBTC","TokenGARI","TokenADAPAD","TokenTOWER","TokenTRAXX","TokenPRO","TokenANKR","TokenNVT","TokenDOMI","TokenLOC","TokenGORILLA","TokenBEETS","TokenPHA","TokenWOJAK","TokenMATH","TokenBIFI","TokenSLCL","TokenFUTURE","TokenUTK","TokenCBETH","TokenBZZ","TokenPINU","TokenSWISE","TokenHIVE","TokenGHNY","TokenSAFEMARS","TokenARCH","TokenURUS","TokenTARA","TokenXFT","TokenATOM","TokenAIN","TokenFLS","TokenBANANO","TokenSUI","TokenCELO","TokenHNT","TokenVEGA","TokenHOP","TokenTORN","TokenPOND","TokenSTOSMO","TokenMNST","TokenHMX","TokenRING","TokenDYP","TokenTRIAS","TokenAR","TokenSTRP","TokenTIA","TokenTHE","TokenSNC","TokenAQTIS","TokenAE","TokenETHM","TokenHEART","TokenCRTS","TokenAPL","TokenSNT","TokenCGG","TokenHTM","TokenDEXT","TokenDPAY","TokenMF","TokenSCS","TokenDIMO","TokenJOE","TokenDCK","TokenCATGIRL","TokenPYUSD","TokenSAN","TokenXRD","TokenDWEB","TokenGEEQ","TokenZIL","TokenEARN","TokenFOAM","TokenCUSD","TokenETHX","TokenKOIN","TokenKITTY","TokenPOLY","TokenAFC","TokenKLEVA","TokenSDAO","TokenZZ","TokenHBB","TokenBAKE","TokenQNT","TokenSTX","TokenVIA","TokenKOGE","TokenXEM","TokenGFAL","TokenORARE","TokenTLOS","TokenASTROC","TokenPINKSALE","TokenBTS","TokenPIP","TokenRPG","TokenDJED","TokenASTRADAO","TokenNSBT","TokenSTRAX","TokenREQ","TokenUSDX","TokenXPNET","TokenZOOMER","TokenEGC","TokenCTXC","TokenREF","TokenISK","TokenNUM","TokenEUNO","TokenCARBON","TokenEJS","TokenPROS","TokenOUSD","TokenK21","TokenWELL","TokenLUNC","TokenSERO","TokenBOX","TokenANKRETH","TokenGSE","TokenCCV2","TokenGRV","TokenKDA","TokenMOBI","TokenBLT","TokenLCC","TokenHUSKY","TokenTELOS","TokenPLEB","TokenBLUSD","TokenBAD","TokenSWAP","TokenKEEP","TokenREP","TokenSYLO","TokenMOON","TokenRDT","TokenLYM","TokenRDPX","TokenEQX","TokenPHB","TokenGHX","TokenVOXEL","TokenWOW","TokenGHO","TokenMATICX","TokenALEX","TokenCHRP","TokenQUICK","TokenKRL","TokenFLAME","TokenPER","TokenAZERO","TokenHYDRA","TokenCRE","TokenCELL","TokenHAWK","TokenREVO","TokenMEAN","TokenUNIX","TokenEQUAD","TokenPOLX","TokenHMND","TokenVET","TokenVIDT","TokenMET","TokenAPX","TokenZEN","TokenJAM","TokenAST","TokenCKP","TokenNBLU","TokenSTRD","TokenDGNX","TokenPOWR","TokenGLMR","TokenOM","TokenRAVEN","TokenLA","TokenQMALL","TokenVALOR","TokenCEL","TokenSCP","TokenMV","TokenPDEX","TokenTHOR","TokenSRLTY","TokenGRAIL","TokenARC","TokenMDT","TokenWOZX","TokenCHO","TokenTKN","TokenSNS","TokenMUSD","TokenPOLK","TokenTT","TokenVGX","TokenSOPH","TokenQUAD","TokenAERGO","TokenCHAMPZ","TokenOMNI","TokenGCOIN","TokenLAKE","TokenFCON","TokenRNDR","TokenCRV","TokenVIS","TokenPSWAP","TokenLODE","TokenSUN","TokenOMNOM","TokenWBT","TokenGEL","TokenNCR","TokenPIB","TokenERG","TokenBTA","TokenLEASH","TokenTFUEL","TokenNVIR","TokenCOMP","TokenJASMY","TokenLUCA","TokenGDCC","TokenSYNC","TokenHELLO","TokenXDATA","TokenPRIMAL","TokenBBL","TokenBISO","TokenBCH","TokenGORA","TokenRET","TokenBMC","TokenBNX","TokenLBT","TokenTHALES","TokenMANA","TokenPSL","TokenINSUR","TokenIDNA","TokenTONIC","TokenBLP","TokenVLXPAD","TokenWRLD","TokenHUSH","TokenPIZA","TokenGRS","TokenAURA","TokenROUTE","TokenSCNSOL","TokenAIOZ","TokenGHUB","TokenNXRA","TokenEFC","TokenBONDLY","TokenEGG","TokenKIT","TokenKYVE","TokenEPIK","TokenALGB","TokenPUSH","TokenBLXM","TokenNAKA","TokenNMX","TokenLTX","TokenFRAX","TokenWAN","TokenKSM","TokenHUAHUA","TokenLTO","TokenSENSE","TokenNEST","TokenCPH","TokenFOREX","TokenMINTME","TokenREALM","TokenSTJUNO","TokenADX","TokenQRDO","TokenTKO","TokenTHT","TokenMUSE","TokenSMI","TokenSOV","TokenCKB","TokenTKX","TokenDMD","TokenGULF","TokenFCTR","TokenBCUBE","TokenTIG","TokenARB","TokenINTR","TokenDEXE","TokenPOLYDOGE","TokenTRONPAD","TokenMIR","TokenDAG","TokenL2","TokenSCB","TokenKISHU","TokenSBD","TokenCFG","TokenWALLET","TokenDBI","TokenCGT","TokenZKB","TokenASSA","TokenDYDX","TokenASD","TokenDUSK","TokenBASE","TokenMED","TokenGRIN","TokenAA","TokenCRWNY","TokenHOT","TokenSPHERE","TokenDXP","TokenYOSHI","TokenAUDIO","TokenTRX","TokenOGN","TokenBRISE","TokenSWASH","TokenCRU","TokenTREE","TokenTIPS","TokenTAROT","TokenGGG","TokenGFT","TokenGGP","TokenSKEY","TokenFLOOR","TokenBTU","TokenGSTS","TokenWNT","TokenPICA","TokenHILO","TokenWAVES","TokenRDD","TokenIOST","TokenNTX","TokenBAT","TokenNWC","TokenNEUROS","TokenMOBY","TokenBLD","TokenPROB","TokenLCS","TokenTIFI","TokenHIBS","TokenPPC","TokenLYXE","TokenLUNR","TokenSOULS","TokenLCD","TokenPPT","TokenMANC","TokenUOS","TokenKUMA","TokenLCR","TokenNXM","TokenGRG","TokenUBT","TokenREV","TokenTRAVA","TokenELON","TokenALPH","TokenDATA","TokenBTT","TokenRAMP","TokenBWO","TokenUWU","TokenNBT","TokenBTC","TokenGAFI","TokenARBI","TokenWAM","TokenNOS","TokenKLIMA","TokenWBETH","TokenAKT","TokenHAI","TokenOATH","TokenAAVE","TokenBREED","TokenDUA","TokenXSUSHI","TokenVEE","TokenMPS","TokenARV","TokenATLAS","TokenDLC","TokenTULIP","TokenPICKLE","TokenCHZ","TokenLQTY","TokenFXS","TokenMC","TokenSAI","TokenGRAIN","TokenFLUID","TokenXSP","TokenDAD","TokenXRT","TokenORN","TokenMNR","TokenAXE","TokenIGNIS","TokenZCX","TokenMCB","TokenSAND","TokenDEFIT","TokenGG","TokenMUTE","TokenSHA","TokenTAMA","TokenZAP","TokenCREO","TokenIPAD","TokenJUNGLE4EOS","TokenFEI","TokenONG","TokenREV3L","TokenAAG","TokenDRGN","TokenACX","TokenNETT","TokenCRVUSD","TokenNEWO","TokenXCM","TokenKALM","TokenGSWAP","TokenSRX","TokenHBAR","TokenPAL","TokenSLIM","TokenLPT","TokenIONX","TokenINV","TokenSHROOM","TokenHIPP","TokenMDAO","TokenROKO","TokenGAMI","TokenPOP","TokenKICK","TokenGLQ","TokenCMDX","TokenPNT","TokenBSW","TokenPERC","TokenOPIUM","TokenGNY","TokenKNC","TokenGXC","TokenECOIN","TokenRAY","TokenIOTA","TokenSURE","TokenEMAID","TokenXCUR","TokenASTRAFER","TokenKCS","TokenLET","TokenACRIA","TokenGUILD","TokenPHONON","TokenLIZA","TokenAERO","TokenIDIA","TokenPZP","TokenLYRA","TokenBEL","TokenICP","TokenRFOX","TokenRVF","TokenPNB","TokenEUSD","TokenETC","TokenSUSHI","TokenGNO","TokenBSV","TokenUSTC","TokenALCX","TokenEVMOS","TokenCOPI","TokenTABOO","TokenLOOKS","TokenADOGE","TokenGBYTE","TokenCTR","TokenNEXA","TokenDREP","TokenSC","TokenLQDR","TokenZTG","TokenHID","TokenBOOT","TokenGQ","TokenFRA","TokenDKA","TokenGEOD","TokenZCN","TokenSIS","TokenQRL","TokenTREEB","TokenSKL","TokenDERC","TokenCLORE","TokenDGB","TokenSQUAD","TokenMND","TokenAXS","TokenNEBO","TokenSDT","TokenCAS","TokenSOON","TokenM87","TokenSFI","TokenJKL","TokenAMPL","TokenXTP","TokenMLN","TokenPORK","TokenVINU","TokenVEUR","TokenOCEAN","TokenCLV","TokenATR","TokenPREMIA","TokenCREAM","TokenIRON","TokenSTARS","TokenEL","TokenMEED","TokenAPEFI","TokenRGEN","TokenSPARTA","TokenVAI","TokenXMR","TokenAZIT","TokenMTH","TokenBOTTO","TokenVOICE","TokenDPI","TokenRIDE","TokenAMP","TokenCTG","TokenMUDOL2","TokenCDAI","TokenLGCY","TokenMEMEAI","TokenUSN","TokenWACME","TokenBST","TokenICE","TokenCAPS","TokenBRG","TokenRAM","TokenBEN","TokenMETAV","TokenTOPIA","TokenB2M","TokenLITH","TokenBROCK","TokenSNFT","TokenUCJL","TokenIXO","TokenMEDIA","TokenHERA","TokenLEOX","TokenHIFI","TokenGTC","TokenELF","TokenKAN","TokenAGEUR","TokenMTRG","TokenTITAN","TokenGXA","TokenLIT","TokenZPAY","TokenIDEA","TokenNPC","TokenBFT","TokenRBW","TokenAURORA","TokenXAUR","TokenRTM","TokenPLI","TokenEURT","TokenYGG","TokenBETA","TokenORDI","TokenINT","TokenIMO","TokenPAY","TokenIMX","TokenLING","TokenGAT","TokenHARD","TokenSPE","TokenVLX","TokenIETH","TokenLAMB","TokenUNCX","TokenPROPC","TokenDOGEGF","TokenCGPT","TokenALU","TokenTTK","TokenFARA","TokenSRM","TokenWOMBAT","TokenOMI","TokenBOND","TokenBIGSB","TokenONE","TokenTXAU","TokenATD","TokenRBLS","TokenAVL","TokenTLM","TokenCOL","TokenKAVA","TokenMBD","TokenOTK","TokenMOC","TokenCAP","TokenDIKO","TokenSHIK","TokenVEXT","TokenGRAV","TokenKMON","TokenSTORJ","TokenMNT","TokenMMO","TokenZNN","TokenBTCP","TokenCBX","TokenMLK","TokenSAITAMA","TokenINST","TokenCWAR","TokenCAT","TokenMOG","TokenOOKS","TokenRUNE","TokenSPANK","TokenPARA","TokenCOVAL","TokenCLS","TokenTOR","TokenXETA","TokenASTR","TokenLMWR","TokenAMKT","TokenWHITE","TokenGPCX","TokenMNTC","TokenOOE","TokenAMB","TokenSPA","TokenFIL","TokenTWT","TokenCOSMOS","TokenFREE","TokenBEPRO","TokenMAPS","TokenKNDX","TokenUQC","TokenARIX","TokenAVINOC","TokenFUND","TokenUPP","TokenTRADE","TokenPRISM","TokenBDX","TokenRBD","TokenWISE","TokenWEFI","TokenCHMB","TokenDONUT","TokenOGGY","TokenPEEL","TokenMCONTENT","TokenCROWN","TokenERTHA","TokenSETH","TokenFPIS","TokenBELT","TokenFIDA","TokenSWETH","TokenNAVI","TokenWSI","TokenENJ","TokenELU","TokenARRR","TokenLIXX","TokenARI10","TokenKIBSHI","TokenSNEK","TokenARSW","TokenEMP","TokenRLY","TokenRARE","TokenHBTC","TokenREUNI","TokenRAI","TokenAPFC","TokenAPEX","TokenGSWIFT","TokenBGB","TokenPURSE","TokenSTEEM","TokenBETS","TokenDSETH","TokenGOZ","TokenETE","TokenKILT","TokenTENET","TokenBRIDGE","TokenLINU","TokenSUDO","TokenVEMP","TokenHAPI","TokenOAX","TokenBABYTRUMP","TokenCPOOL","TokenNFTBS","TokenWAIT","TokenRENBTC","TokenCTC","TokenABL","TokenUNIBOT","TokenACH","TokenMVD","TokenJONES","TokenSTAT","TokenMTL","TokenPI","TokenALLIN","TokenAVI","TokenVVS","TokenMARS4","TokenC98","TokenNEON","TokenSAMO","TokenATA","TokenZANO","TokenNEAR","TokenTAO","TokenMNB","TokenMMY","TokenSFRXETH","TokenSFM","TokenDEL","TokenDPET","TokenBCAT","TokenCBY","TokenTOMI","TokenMCADE","TokenBTC2","TokenKICKS","TokenBRICK","TokenMNW","TokenVIDYA","TokenIMGNAI","TokenMOD","TokenCAW","TokenUNDEAD","TokenHAKA","TokenIBIT","TokenSFTMX","TokenSHFT","TokenMAX","TokenXNO","TokenDPX","TokenVELA","TokenXCH","TokenMXM","TokenMZR","TokenXELS","TokenCULT","TokenSAVG","TokenOCE","TokenFIO","TokenPROPS","TokenEXD","TokenINS","TokenNKN","TokenCORE","TokenSRCX","TokenFIRO","TokenPBR","TokenPAI","TokenGAS","TokenGLC","TokenPLY","TokenMSOL","TokenPUNDIX","TokenNGM","TokenRAKE","TokenSUKU","TokenMASK","TokenPLN","TokenY2K","TokenETP","TokenNALS","TokenEURS","TokenUSH","TokenMCHC","TokenJMPT","TokenFLUX","TokenBERRY","TokenGOVI","TokenGHST","TokenUFI","TokenBLUESPARROW","TokenKAI","TokenELA","TokenSNAIL","TokenKROM","TokenTETU","TokenGAMMA","TokenMAHA","TokenCUSDC","TokenSUSD","TokenARIA20","TokenPWR","TokenCHAT","TokenWRX","TokenBFR","TokenECO","TokenBLID","TokenXFUND","TokenRAIL","TokenPNP","TokenSEND","TokenHUNT","TokenLPNT","TokenPERP","TokenOBOT","TokenXAUT","TokenRVC","TokenPNG","TokenNGL","TokenXCAD","TokenLINA","TokenFLOW","TokenQTCON","TokenRMRK","TokenLSK","TokenNHT","TokenSRK","TokenWAGMIGAMES","TokenGUSD","TokenFRONT","TokenBOBA","TokenSSX","TokenSPC","TokenAQUA","TokenASCN","TokenXRUNE","TokenRAZOR","TokenGOLDEN","TokenMWC","TokenONT","TokenVCF","TokenHOPR","TokenPART","TokenTOP","TokenOXY","TokenTNT","TokenBCMC","TokenGT","TokenMAN","TokenZAT","TokenVTX","TokenPASG","TokenMOE","TokenOVR","WALLET_ICON_IMPORT_MAP","WalletMyEtherWallet","WalletLedger","WalletMetamask","WalletVenly","WalletPillar","WalletTokenPocket","WalletSender","WalletSoul","WalletRonin","WalletCoin98","WalletSafe","WalletMultis","WalletObvious","WalletWallet3","WalletPortal","WalletBackpack","WalletSequence","WalletClave","WalletTrust","WalletRabby","WalletPhantom","WalletZengo","WalletWalletConnect","WalletOkx","WalletAlfa1","WalletTrezor","WalletEnkrypt","WalletAlphaWallet","WalletKraken","WalletRainbow","WalletLit","WalletZerion","WalletSquads","WalletUnipass","WalletCoinbase","WalletImtoken","WalletXdefi","WalletArgent","DynamicIcon","IconComponent","setIconComponent","importFunction","ImportedIcon","loadIcon","TokenIcon","forwardRef2","address","network","findToken","jsx2","forwardRef3","net","findNetwork","jsx3","WalletIcon","forwardRef4","wallet","walletObj","findWallet","jsx4","walletIcon","getCircularProgressUtilityClass","_t2","_t3","_t4","SIZE","circularRotateKeyframe","circularDashKeyframe","CircularProgressRoot","CircularProgressSVG","CircularProgressCircle","circle","disableShrink","circleDisableShrink","CircularProgress","thickness","circleStyle","rootStyle","circumference","cx","cy","walletAdd","walletAddress","setWalletAddress","labelText","setLabelText","selectedIcon","setSelectedIcon","alertMessage","setAlertMessage","alertHeading","setAlertHeading","successAlert","setSuccessAlert","addUserWalletAddress","walletId","_res$data","_res$data$response","_res$data3","_res$data3$response","_res$data2","_res$data2$response","_res$data4","_res$data4$response","Alert","onCloseAlert","addressList","onCancel","onNext","btnText","selectedWalletId","showConfirmPopup","setShowConfirmPopup","selectWalletAddress","setSelectWalletAddress","_addressList$","AddWalletAddress","onCloseConfirmPopup","_address$walletId","defaultWalletIcon","onCurrencyChange","isCart","addedToCart","actionBtnHandler","proceedToCheckoutHandler","priceUsd","selectedCurrency","setSelectedCurrency","acknowledged","setAcknowledged","walletAddressList","setWalletAddressList","showAlert","setShowAlert","alertSuccess","setAlertSuccess","openWalletAddressPopup","setOpenWalletAddressPopup","addressLists","_addressLists$data","_addressLists$data$re","_addressLists$data$re2","web3Wallets","openWalletAddress","onAlertClose","WalletAddressModel","onWalletPopupClose","rx","_addressLists$data2","_addressLists$data2$r","_addressLists$data2$r2","AdminSlice","postReportContent","postReportChannel","usePostReportContentMutation","usePostReportChannelMutation","ReportListData","reportName","_userInfo","handleModalStatus","idToReport","isReportSuccess","setReportSuccess","isReportedAlready","setReportedAlready","isReportError","setReportError","isSubmitActive","setSubmitActive","reportType","setReportType","textRef","reportContentTrigger","reportContentInfo","reportChannelTrigger","reportChannelInfo","reportContentData","isReportContentLoading","isReportContentSuccess","isReportContentError","reportChannelData","isReportChannelLoading","isReportChannelSuccess","isReportChannelError","handleRadioChange","_reportContentData$re","_reportContentData$re2","_reportChannelData$re","_reportChannelData$re2","WarningTickIcon","SuccessTickIcon","onSubmit","_textRef$current","channelId","reportById","userComment","reporterEntityType","_textRef$current2","htmlFor","reportItem","CartSlice","GetCartItemByToken","GetStarCartItemByToken","UpdateCartItembyToken","itemCategory","currencyType","itemThemeId","DeleteCartItemByToken","cartItemId","GetCartItemsCount","useGetCartItemByTokenQuery","useLazyGetCartItemByTokenQuery","useGetCartItemsCountQuery","useGetStarCartItemByTokenQuery","useUpdateCartItembyTokenMutation","useDeleteCartItemByTokenMutation","UserAssets","PostCheckUserAssets","PostAddFreeAssetForUser","CheckUserSubscriptions","usePostCheckUserAssetsMutation","usePostAddFreeAssetForUserMutation","useCheckUserSubscriptionsMutation","_data$response11","_data$response12","_data$response12$data","_companionData$largeT","_companionData$largeT2","_companionData$longDe","_data$response13","_data$response13$data","AddToCartQuery","addtoCartLoader","isreportModal","setReportModal","companionData","setCompanionData","IstooltipHover","setTooltipHover","buyPopupOpen","setBuyPopupOpen","isPopupCart","setIsPopupCart","setIsAddedToCart","popupCurrency","setPopupCurrency","isAssetOwned","setIsAssetOwned","justAddedToAssets","setJustAddedToAssets","checkUserAsset","userAssetInfo","addAssetToUser","addAssetToUserInfo","_data$response$data","isIap","checkIfOwnedAsset","addIapToCart","_data$response3","_data$response3$data","refetchCartItems","checkoutIap","_data$response4","_data$response4$data","_data$response5","_data$response5$data","_data$response6","_data$response6$data","_data$response7","_data$response7$data","_data$response8","_data$response8$data","_data$response9","_data$response9$data","GetCartItemQuery","getCartItemLoader","isFetchCartSuccess","_GetCartItemQuery$res","_GetCartItemQuery$res2","_GetCartItemQuery$res3","_data$response10","_data$response10$data","cartList","buyCardType","BuyPopupIap","onPopupClose","currency","longDescription","htmlString","wordBreak","BuyCards","uInfo","content_type","AssetsReportModal","handleCloseReportModal","_dataAlien","_dataAlien$response","_dataHumanoid","_dataHumanoid$respons","_dataAlien2","_dataAlien2$response","_dataHumanoid2","_dataHumanoid2$respon","dataHumanoid","isFetchingHumanoid","isSuccessHumanoid","isErrorHumanoid","dataAlien","isFetchingAlien","isSuccessAlien","isErrorAlien","filteredDataAlien","filteredDataHumanoid","HoloSuiteImg","EnvironmentGamingImg","_themesArr$selectedTh4","_data$response11$data","_data$response11$data2","_data$response12$data2","_data$response14","_data$response14$data","_data$response14$data2","_userAssetInfo$isLoad","_themesArr$selectedTh5","_themesArr$selectedTh6","_themesArr","_data$response17","_data$response17$data","apartmentId","apartment_name","sliderContainerRef","sneakPeakItemWidthRatio","setSneakPeakItemWidthRatio","updateSliderItemWidth","sliderImageWidth","updatedItemWidthRatio","gameImage","setGameImage","GameRoom1","GameRoom3","setThemes","PremiumApt","PremiumApt2","singleApartmentData","setSingleApartmentData","setOpen","setSelectedThemIndex","_themesArr$selectedTh","themesArr","_themesArr$selectedTh2","_themesArr$selectedTh3","foundItem","itemsThemeId","_data$response15","_data$response15$data","_data$response16","_data$response16$data","themeName","comingSoon","SlickSlider","sneakPeakImages","_clothingData$largeTh","_clothingData$largeTh2","_clothingData$longDes","clothingData","setClothingData","_avatarData$largeThum","_avatarData$largeThum2","_avatarData$longDescr","avatarData","setAvatarData","_data$response15$data2","_data$response15$data3","ship_name","shipid","ShipTheme","generateVideoPageUrl","base_url","generateMusicPageUrl","slider","isSuggestedContent","baseLink","generateLink","_slide$category","_slide$category2","_slide$category3","_slide$category4","_slide$category5","bgUrl","contentSlug","channelHandle","channelThumbnail","mediaFile","productType","channelName","EntertainmentSlice","getVolumetricVideos","getSingleVolumetricVideo","get180Videos","getSingle180Video","get360Videos","getSingle360Video","get2DVideos","getSingle2DVideo","getMusicVideos","getSingleMusicVideo","getAllChannelsList","getSingleChannel","getPremiumVideos","getPremiumChannels","getRecommendedContent","getRecommendedChannels","getMostTrendingContent","getTrendingChannels","getAllChannelContent","getChannelContentAsset","useGetVolumetricVideosQuery","useGetSingleVolumetricVideoQuery","useGet360VideosQuery","useGetSingle360VideoQuery","useGet180VideosQuery","useGetSingle180VideoQuery","useGet2DVideosQuery","useGetSingle2DVideoQuery","useGetMusicVideosQuery","useGetSingleMusicVideoQuery","useGetAllChannelsListQuery","useGetSingleChannelQuery","useGetPremiumVideosQuery","useGetPremiumChannelsQuery","useGetRecommendedChannelsQuery","useGetRecommendedContentQuery","useGetMostTrendingContentQuery","useGetTrendingChannelsMutation","useGetAllChannelContentQuery","useGetChannelContentAssetQuery","_Music","_Music$response","_PremiumContent","_PremiumContent$respo","_TrendingContent","_TrendingContent$resu","TrendingChannelsData","setTrendingChannelsData","fetchTrendingChannels","trendindChannelInfo","_res$data$result","_res$data2$result","ChannelImage","fetchTChannels","Music","isFetchingMusic","isSuccessMusic","isErrorMusic","errorMusic","TrendingContent","isFetchingtrendingContent","isSuccesstrendingContent","isErrortrendingContent","errortrendingContent","PremiumContent","isFetchingPremium","isSuccessPremium","isErrorPremium","errorPremium","_TrendingContent2","_TrendingContent2$res","_item$channel","_item$channel2","contentName","contentPreference","_item$channel3","_item$channel4","contentData","onSearchHandler","searchInputRef","_searchInputRef$curre","_searchInputRef$curre2","LargeCarousel","dateAndTime","imgUrl","countDownText","setCountDownText","eventDateTime","chipText","eventText","BgImage","clipPath","CoinImage","isCarousel","card1","selectedOption","setSelectedOption","toggleDropdown","handleItemClick","EventsSlice","getEventsList","getEvent","eventId","getRecommendedEvent","getTodayEventsList","getUserEventsList","postAddParticipantToEvent","useGetEventsListQuery","useGetEventQuery","useGetRecommendedEventQuery","useGetTodayEventsListQuery","useGetUserEventsListQuery","useLazyGetUserEventsListQuery","usePostAddParticipantToEventMutation","timezoneClip","dateFormat","gmt","maskSlice","masks","_H","_M","_L","_W","ddd","i18n","dayNames","DDD","getDayName","dddd","DDDD","mm","mmm","mmmm","yy","yyyy","HH","MM","ss","timeNames","WW","getDayOfWeek","paddedShortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","expiresHeaderFormat","_ref$short","_short","targetThursday","firstThursday","ds","weekDiff","dow","All","_filterdEventsData","_filterdEventsData2","allEventsData","setAllEventsData","setIsError","selectedFilter","setSelectedFilter","currentEventsData","currentIsError","_currentEventsData$re","_currentEventsData$re2","formattedEventsData","_item$venueType","_item$venueType2","venueType","itemStartTime","creatorDetails","promoBanner","prevEventsData","filterdEventsData","FilterDropdown","selectedValue","EventCard","ArtCulture","_item$venueType3","_item$venueType4","venueName","Education","Gaming","DanceMusic","Party","Concerts","LiveQuest","Adventure","Nature","_eventsData","_eventsData2","eventsData","IsDataAvailable","myAssetsTabs","parentId","activeTab","tab","CarouselCard","userLogin","loginFrom","packageInfo","_data$response3$data$","_data$response4$data$","_data$response5$data$","_data$response6$data$","_data$response7$data$","_data$response8$data$","_data$response9$data$","_data$response10$data2","_data$response13$data2","_data$response16$data2","_data$response17$data2","_data$response18","_data$response18$data","_data$response18$data2","_data$response19","_data$response19$data","_data$response19$data2","_data$response20","_data$response20$data","_data$response20$data2","_data$response21","_data$response21$data","_data$response21$data2","_data$response22","_data$response22$data","_data$response22$data2","accessToken","user","firstName","lastName","userName","gender","dob","statusFlag","isVerified","photo","googleSigin","access_token","_data$response23","_data$response24","_data$response24$data","_data$response25","_data$response25$data","_data$response26","_data$response26$data","_data$response26$data2","registerUser","isPromotion","_data$response27","_data$response28","_data$response28$data","verifyUser","_data$response29","_data$response30","_data$response30$data","_data$response32","_data$response32$data","_data$response31","_data$response31$data","removeItem","_data$response33","_data$response33$data","_data$response33$data2","_data$response34","_data$response34$data","_data$response34$data2","_data$response35","_data$response35$data","_data$response35$data2","_data$response36","_data$response36$data","_data$response36$data2","_data$response37","_data$response37$data","_data$response37$data2","_data$response38","_data$response38$data","_data$response38$data2","_data$response39","_data$response39$data","_data$response39$data2","_data$response40","_data$response40$data","_data$response40$data2","_data$response41","_data$response41$data","_data$response41$data2","_data$response42","_data$response42$data","_data$response42$data2","_data$response43","_data$response43$data","_data$response43$data2","_data$response44","_data$response44$data","_data$response44$data2","_data$response45","_data$response45$data","_data$response45$data2","_data$response46","_data$response46$data","_data$response46$data2","_data$response47","_data$response47$data","_data$response47$data2","_data$response48","_data$response48$data","_data$response48$data2","_data$response49","_data$response49$data","_data$response49$data2","_data$response50","_data$response50$data","_data$response50$data2","forgotPassword","_data$response51","resetPassword","passwordResetToken","_data$response52","verifyForgetPasswordLink","_data$response53","UserAuthSlice","successMsg","pwdTokenVerified","pwdResetComplete","logout","setCredentials","_payload$response","_payload$response2","clearMsgState","_payload$data","_payload$data2","_payload$data3","_payload$data4","_payload$data5","_payload$data7","_payload$data6","_payload$data8","SignUp","signUpType","setSignUpType","setFormData","formErrors","setFormErrors","successBtnText","setSuccessBtnText","checkboxes","setCheckboxes","terms","promotions","handleCheckboxChange","prevCheckboxes","handleInputChange","checkName","fieldInput","checkEmail","checkPassword","onInput","CheckList","GoogleLogin","toggleSignUpType","prevSignUpType","behavior","getGridUtilityClass","GRID_SIZES","wrap","extractZeroValueBreakpointKeys","nonZeroKey","sortedBreakpointKeysByValue","GridRoot","zeroMinWidth","spacingStyles","resolveSpacingStyles","breakpointsStyles","directionValues","gridClasses","rowSpacing","rowSpacingValues","zeroValueBreakpointKeys","_zeroValueBreakpointK","columnSpacing","columnSpacingValues","_zeroValueBreakpointK2","columnsBreakpointValues","columnValue","spacingClasses","resolveSpacingClasses","breakpointsClasses","Grid","themeProps","columnsProp","columnSpacingProp","rowSpacingProp","columnsContext","GridContext","otherFiltered","RtlContext","useRtl","getListUtilityClass","ListRoot","disablePadding","dense","subheader","ListContext","nextItem","disableListWrap","previousItem","textCriteriaMatches","nextFocus","textCriteria","repeating","moveFocus","currentFocus","disabledItemsFocusable","traversalFunction","wrappedOnce","nextFocusDisabled","autoFocusItem","textCriteriaRef","previousKeyMatched","adjustStyleForScrollbar","containerElement","noExplicitWidth","activeItemIndex","muiSkipListHighlight","newChildProps","List","criteria","currTime","keepFocusOnCurrent","getScale","isWebKit154","Grow","autoTimeout","muiSupportAuto","getPopoverUtilityClass","getOffsetTop","getOffsetLeft","getTransformOriginValue","transformOrigin","resolveAnchorEl","anchorEl","PopoverRoot","PopoverPaper","PaperBase","_slotProps$paper","_slots$paper","anchorOrigin","anchorPosition","anchorReference","containerProp","marginThreshold","PaperPropsProp","transitionDurationProp","externalPaperSlotProps","paperRef","handlePaperRef","getAnchorOffset","resolvedAnchorEl","anchorRect","getTransformOrigin","elemRect","getPositioningStyle","elemTransformOrigin","heightThreshold","widthThreshold","isPositioned","setIsPositioned","setPositioningStyles","positioning","updatePosition","debounce","PaperSlot","paperProps","_useSlotProps","rootSlotPropsProp","getMenuUtilityClass","RTL_ORIGIN","LTR_ORIGIN","MenuRoot","Popover","MenuPaper","WebkitOverflowScrolling","MenuMenuList","MenuList","disableAutoFocusItem","MenuListProps","PopoverClasses","isRtl","menuListActionsRef","paperExternalSlotProps","paperSlotProps","setTranslateValue","containerPropProp","containerRect","fakeTransform","computedStyle","offsetX","offsetY","transformValues","getTranslateValue","webkitTransform","defaultEasing","easingProp","childrenRef","getDrawerUtilityClass","docked","DrawerRoot","DrawerDockedRoot","DrawerPaper","anchor","oppositeDirection","anchorProp","ModalProps","BackdropPropsProp","SlideProps","anchorInvariant","isHorizontal","getAnchor","slidingDrawer","UserNotification","GetAllUserNotification","GetSingleNotification","notificationId","PatchReadAllNotification","useGetAllUserNotificationQuery","useGetSingleNotificationQuery","usePatchReadAllNotificationMutation","NotificationItem","_notifications$slice","_notifications$slice$","notifications","readAllNotificationsTrigger","readAllNotificationsInfo","handleNotificationClick","Drawer","backdropFilter","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","readAsDataURL","TEXT_ENCODER","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","encoded1","encoded2","encoded3","encoded4","arraybuffer","SEPARATOR","createPacketEncoderStream","TransformStream","packet","encodePacketToBinary","payloadLength","setUint16","setBigUint64","TEXT_DECODER","concatChunks","Emitter","_callbacks","emitReserved","hasListeners","setTimeoutFn","globalThisShim","pick","NATIVE_SET_TIMEOUT","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","useNativeTimers","clearTimeoutFn","TransportError","Transport","socket","forceBase64","doOpen","doClose","packets","onOpen","onData","onPacket","createUri","_hostname","_port","_query","encodedQuery","Polling","_polling","_poll","doPoll","decodePayload","encodedPayload","encodedPackets","decodedPacket","encodePayload","doWrite","timestampRequests","timestampParam","hasCORS","BaseXHR","isSSL","xhrStatus","pollXhr","createRequest","_opts","_method","_create","xdomain","extraHeaders","setDisableHeaderCheck","cookieJar","addCookies","parseCookies","_onLoad","_onError","requestsCount","_cleanup","fromError","unloadHandler","hasXHR2","newRequest","isReactNative","BaseWS","ws","createSocket","addEventListeners","onopen","autoUnref","_socket","unref","onclose","closeEvent","lastPacket","WebSocketCtor","WebSocket","MozWebSocket","transports","websocket","_packet","webtransport","_transport","WebTransport","transportOptions","closed","ready","createBidirectionalStream","decoderStream","maxPayload","expectedLength","headerArray","getUint16","createPacketDecoderStream","pipeThrough","encoderStream","pipeTo","_writer","getWriter","polling","authority","ipv6uri","pathNames","regx","queryKey","$0","$1","$2","withEventListeners","OFFLINE_EVENT_LISTENERS","SocketWithoutUpgrade","writeBuffer","_prevBufferLen","_pingInterval","_pingTimeout","_maxPayload","_pingTimeoutTime","parsedUri","_transportsByName","transportName","upgrade","rememberUpgrade","addTrailingSlash","rejectUnauthorized","perMessageDeflate","closeOnBeforeunload","qry","_beforeunloadEventListener","_offlineEventListener","_onClose","_cookieJar","createCookieJar","_open","createTransport","EIO","priorWebsocketSuccess","setTransport","_onDrain","_onPacket","onHandshake","_sendPacket","_resetPingTimeout","pingInterval","pingTimeout","_pingTimeoutTimer","upgrading","_getWritablePackets","utf8Length","_hasPingExpired","hasExpired","compress","cleanupAndClose","waitForUpgrade","tryAllTransports","SocketWithUpgrade","_upgrades","_probe","onTransportOpen","freezeTransport","onTransportClose","onupgrade","_filterUpgrades","upgrades","filteredUpgrades","Socket","DEFAULT_TRANSPORTS","withNativeFile","hasBinary","deconstructPacket","packetData","pack","_deconstructPacket","attachments","_placeholder","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","replacer","EVENT","ACK","encodeAsString","encodeAsBinary","BINARY_EVENT","BINARY_ACK","nsp","deconstruction","Decoder","reviver","reconstructor","decodeString","isBinaryEvent","BinaryReconstructor","takeBinaryData","tryParse","isPayloadValid","CONNECT","DISCONNECT","CONNECT_ERROR","finishedReconstruction","reconPack","binData","connect","connect_error","disconnecting","io","connected","recovered","receiveBuffer","sendBuffer","_queue","_queueSeq","acks","_autoConnect","disconnected","subEvents","subs","onpacket","_readyState","retries","fromQueue","volatile","_addToQueue","ack","_registerAckCallback","isTransportWritable","isConnected","notifyOutgoingListeners","ackTimeout","withError","emitWithAck","tryCount","responseArgs","_drainQueue","_sendConnectPacket","_pid","_lastOffset","_clearAcks","onconnect","onevent","onack","ondisconnect","_anyListeners","emitBuffered","subDestroy","onAny","prependAny","offAny","listenersAny","onAnyOutgoing","_anyOutgoingListeners","prependAnyOutgoing","offAnyOutgoing","listenersAnyOutgoing","Backoff","factor","jitter","attempts","rand","deviation","setMin","setMax","setJitter","Manager","nsps","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","_parser","autoConnect","_reconnection","skipReconnect","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_timeout","maybeReconnectOnOpen","_reconnecting","reconnect","Engine","openSubDestroy","errorSub","onping","ondata","ondecoded","_close","onreconnect","loc","sameNamespace","forceNew","multiplex","unsafeStringify","native","WebSocketContext","WebSocketProvider","authToken","setAuthToken","publicSocket","privateSocket","setIsConnected","SOCKET_URL","_publicSocket$current","_privateSocket$curren","newSocket","uuidv4","userType","_publicSocket$current2","_privateSocket$curren2","setToken","_publicSocket$current3","_privateSocket$curren3","useWebSocket","AfterLogin","_data$response$data$n","_cartCount$response","_cartCount$response2","_getUserProfileData$r","_getUserProfileData$r2","_getUserProfileData$r3","_getUserProfileData$r4","_userInfo$firstName","_userInfo$lastName","_getUserProfileData$r5","_getUserProfileData$r6","_cartCount$response3","_cartCount$response4","getUserProfileData","profileLoader","refetchProfileData","setUserInfo","searchTerm","setSearchTerm","searchResults","setSearchResults","showDropdown","setShowDropdown","searchRef","showSearch","setShowSearch","cartCount","cartCountRefetch","cartData","cartRefetch","starData","starRefetch","hasUnreadNotification","notif","is_read","handleToggleHamburger","sethandleToggleHamburger","handleClickOutside","sticky","setSticky","isSticky","headerRef","handleScrollEvent","elHeight","setAnchorEl","notifyDDOpen","setNotifyDDOpen","notifyDDMobile","setNotifyDDMobile","searchDrawer","setSearchDrawer","logoutUser","disconnectUserWebSocket","logo","NotificationDropdown","handleCloseNotifyDD","RollingProfilerLoader","handleHamburger","BeforeLogin","telegramColor","setTelegramColor","fillRule","clipRule","onMouseOut","CookiesConsent","showConsent","setShowConsent","acceptCookie","setActive","Header","Footer","processStyles","styledEngineStyled","defaultCreateStyledComponent","systemStyled","fixed","disableGutters","useThemePropsDefault","useThemePropsSystem","Container","createStyledComponent","useThemeProps","ContainerRoot","breakpointValueKey","createContainer","onBoardingComplete","Toaster","HeroOnboarding","LoginBackground","GoogleOAuthContext","GoogleOAuthProvider","onScriptLoadSuccess","onScriptLoadError","scriptLoadedSuccessfully","setScriptLoadedSuccessfully","onScriptLoadSuccessRef","onScriptLoadErrorRef","scriptTag","useLoadGsiScript","useGoogleOAuth","SignIn","_JSON$parse","_JSON$parse2","signInType","setSignInType","UID","ReactGA","reload","googleUserData","setGoogleUserData","GoogleLoginUser","onNonOAuthError","overrideScope","clientRef","onSuccessRef","onErrorRef","onNonOAuthErrorRef","clientMethod","google","accounts","oauth2","client_id","error_callback","nonOAuthError","loginImplicitFlow","overrideConfig","requestAccessToken","loginAuthCodeFlow","requestCode","useGoogleLogin","googletoken","toggleSignInType","prevSignInType","ForgotPassword","OtpVerification","isOTPexist","setIsOTPexist","validateForm","ConfirmPassword","confirmPassword","isPasswordValid","setIsPasswordValid","isConfirmPasswordValid","setIsConfirmPasswordValid","passwordMatchError","setPasswordMatchError","isContainsUpperCase","isContainsLowerCase","isFormValid","submitBtn","UserFriend","SearchUserFriend","AddFriendRequest","AcceptFriendRequest","senderId","RejectFriendRequest","PendingFriendrequest","GetBlockFriendRequest","GetUserFriendRequest","GetPendingInvitesRequest","GetRequestedFriendRequest","CancelRequestedFriendRequest","RemoveFriendRequest","BlockFriendRequest","AcceptPendingRequest","UnblockFriendRequest","getFriendListApartmentAsset","apartmentAssetId","inviteFriendApartmentAsset","removeFriendApartmentAsset","getFriendListShipAsset","shipAssetId","inviteFriendShipAsset","removeFriendShipAsset","useGetBlockFriendRequestQuery","useGetUserFriendRequestQuery","useGetPendingInvitesRequestQuery","useGetRequestedFriendRequestQuery","useAddFriendRequestMutation","useSearchUserFriendMutation","useCancelRequestedFriendRequestMutation","useRemoveFriendRequestMutation","useBlockFriendRequestMutation","useAcceptFriendRequestMutation","useAcceptPendingRequestMutation","useRejectFriendRequestMutation","useUnblockFriendRequestMutation","useGetFriendListApartmentAssetQuery","useInviteFriendApartmentAssetMutation","useRemoveFriendApartmentAssetMutation","useGetFriendListShipAssetQuery","useInviteFriendShipAssetMutation","useRemoveFriendShipAssetMutation","FriendErrorLimitModal","EmptyFriendListView","ListView","onInvitedClick","isInvited","_particularData$iapDe","_particularData$iapDe2","particularData","handelBack","useAssetQueryHook","useAssetInviteQueryHook","useAssetRemoveQueryHook","friendData","assetId","friendWithoutInvitation","access","friendWithInvitation","FrienderrorModal","setFriendErrorModal","addInviteFriend","removeInviteFriend","loadingStates","setLoadingStates","friendId","handleInviteSwitch","iapName","iapDetails","apartmentNumber","shipNumber","handleRemoveSwitch","ApartmentCard","onInviteClick","apartmentData","IsInviteAssets","setinviteAsset","setLoading","setIapId","setParticularData","AssetInvite","handleInvite","dataClothing","clothActiveTab","setclothActiveTab","activetabs","iapSuperType","dataCompanion","AllGaming","EnvironGaming","SuiteGaming","GamingTabs","gamingActiveTab","setgamingActiveTab","ShipCard","shipData","dataAvatar","CreatorSlice","getAllCategoryDataByChannelId","useGetAllCategoryDataByChannelIdQuery","_channelContent","channelDetails","channelContent","SlideToShow","dummyChannelsData","channelThumbnailDetails","bannerImage","bannerImageDetails","subscriptionPrice","agreeToTerms","channelCategory","channelSubCategory","updatedAt","mediaFileDetails","thumbnailDetails","contentHighlights","highlightHeading","highlightDescription","sneakPeakImagesDetails","mediaFileS3Url","mediaFileData","thumbnailUrl","low","high","contentModerated","Channels","_channelContentData","_channelContentData$r","_channelContentData3","_channelContentData3$","_channelContentData4","_channelContentData4$","_channelContentData5","_channelContentData5$","_channelContentData6","_channelContentData6$","channelContentData","_channelContentData2","_channelContentData2$","channelData","_channelData$content","ChannelsAllContent","Apartments","Ships","Clothing","Companion","Avatar","MyAssetsHome","assetData","setAssetData","setIsLoading","_item$thumbnail$url","fetchData","CustomizeAvatar","onClickHandler","AvatarImg","gradientUnits","IapSlice","getListIapAssets","postEquipDefaultAvatar","postWearAllItems","useGetListIapAssetsQuery","usePostEquipDefaultAvatarMutation","usePostWearAllItemsMutation","WardrobeContext","refetchData","setRefetchData","selectedItems","setSelectedItems","sI","isEquiped","wardrobeData","selectItem","updatedArr","avtToSelect","itemToSelect","equipped","largeImg","defaultImg","topwearImg","bottomwearImg","suitImg","bgColor","setShowPreview","RotatePopup","onPreviewClose","onClickEquip","bgImage","avt_thumb_1","isPreview","dummyAvatarList","avt_thumb_3","avt_thumb_4","_wardrobeData","_wardrobeData2","_wardrobeData3","contextValues","dummyItemsData","isEquipped","AvatarItem","onClickReplace","BgImg","onClickNext","onReplace","selectedAvatar","otherSelectedItems","showSuccessPopup","setShowSuccessPopup","postWearAllTrigger","postWearAllInfo","postEquipDefaultAvatarTrigger","postEquipDefaultAvatarInfo","isSaving","isSaveSuccess","isSaveError","isReseting","isResetSuccess","isResetError","SuccessPopup","ItemPreviewIcon","tabs_list","Wardrobe_New","selectedTab","setSelectedTab","WardrobeContextProvider","SideNavIcon","ItemList","PreviewTab","AvatarTabs","MyAvatarHome","CurrentavatarTab","setavatarTab","filterVolumetricData","vitem","_vitem$content_data","_vitem$content_data2","_vitem$content_data3","content_data","subtitleButton","filtermusicData","filter2DData","filter360Data","filter180Data","SubscribeImg","VolumetricVideo","_360Video","_180Video","_2DVideo","Subscription","MyContentsHome","userAssets","subscribeData","subscribeIsLoading","subscribeError","_subscribeData$respon","dateOnly","MyEventsHome","_userEventsData","_userEventsData2","userEventsData","userEventsFetching","userEventsError","userEventsDataAvailable","filteredEventsData","_item$eventDetails","_item$creatorDetails","eventDetails","MyEventCard","MyOrders","GetMyOrdersList","GetMyOrderDetail","orderId","RequestRefund","CheckRefundStatus","useGetMyOrdersListQuery","useGetMyOrderDetailQuery","useRequestRefundMutation","useCheckRefundStatusMutation","cancelRefund","productDetail","reportIssue","setReportIssue","disableRefund","setDisableRefund","addRequestRefund","setReason","requestSubmit","setRequestSubmit","gatewayTransactionId","productId","userReasonForReturn","SuccessAlert","ErrorAlert","orderDetail","setOrderDetail","refundIssue","setRefundIssue","issueItem","setIssueItem","_data$response$data$p","products","_item$detailedProduct","_item$detailedProduct2","_item$smallThumbnail","_item$amount","_item$refund","_item$refund2","_item$refund3","detailedProductInfo","smallThumbnail","$numberDecimal","refund","adminApprovalStatus","RefundItemModal","MyOrderHome","isInviteModalStatus","setInviteModal","orderData","setOrderData","setOrderId","setPage","buttonStates","setButtonStates","storedData","expiryTime","fetchStoredData","renderStatus","renderOrderButton","goToCheckoutPage","_data$response$data$g","_data$response2$data$","gateways","_tr","orderID","total_amount","MyOrderItemModal","handleInviteModal","MyAssets","parentActivetab","setParentActivetab","MyIAPsHome","GlobalStore","channelThumb","subscriptionStatus","paymentMethod","lastPaymentStatus","renewalDate","dueDate","expiredDate","cancelled","seeAllTransactionsHandler","cancelBtnHandler","payRenewBtnHandler","defaultChannelLogo","SuccessIcon","UserSubscriptions","getSubscriptionsList","getUserSubscriptionTransactions","patchCancelSubscription","useGetSubscriptionsListQuery","useGetUserSubscriptionTransactionsQuery","usePatchCancelSubscriptionMutation","transactions","_item$currencyType","_item$price","_item$currencyType2","transactionMethod","transactionId","paymentId","purchaseTime","purchaseStatus","_item$currency","AlertIcon","ActiveSubscriptions","_data4","cancelSubscription","cancelSubscriptionInfo","_data2$response$data","_data3","subscribedUsers","_item$subscription","_item$subscription2","_item$subscription3","_item$subscription4","_item$subscription5","subscriptionType","paymentStatus","showCancelledPopup","setShowCancelledPopup","showErrorPopup","setShowErrorPopup","showTransactionsPopup","setShowTransactionsPopup","activeChannelId","setActiveChannelId","onCloseCancelledPopup","onSeeAllTransactions","onCancelSubscription","onPaySubscription","Cancelled","CancelledError","ConfirmCancel","TransactionsTable","onCloseTransactionPopup","ChannelItem","CancelledSubscriptions","onRenewSubscription","parentTabs","_GlobalStore$getState","_authState$userInfo","authState","avtarImg","fullname","statustype","sentFriendRequest","sentRequestData","setRequestData","checkSentrequest","setCheckSentRequest","sentFriendRequestHandle","_searchResult$respons","_searchResult$respons2","_searchResult$respons3","_searchResult$respons4","_searchResult$respons5","SearchfriendQuery","IssentInvite","setsentInvite","sentInvite","SetsentInvite","sentRequest","setSentrequest","sent_email_id","requesterror","setRequestError","isLoad","setLoad","searchResult","setSearchResult","handleSearchChange","InviteSentIcon","_searchItem","FriendSearchCard","DefaultFriend","InviteFriend","InviteFriendModal","fkey","h_card","handleModal","handleUnblock","modalData","removefriendQuery","blockFriendQuery","blockLoader","isRemoved","setIsRemoved","isBlocked","setIsBlocked","removefriendHandler","blockfriendHandler","YourFriend","openProfile","setOpenProfile","userProfileData","setUserProfileData","isInviteModal","setIsInviteModal","handleOpenProfileModal","handleIsInviteModal","FriendProfileCard","friend","FriendProfileModal","statusKey","cancelRequest","acceptfriendhandler","rejectfriendhandler","requestedAt","PendingInvites","acceptfriendQuery","acceptFriendLoader","rejectfriendQuery","rejectfriendloader","handleAcceptfriend","handlerejectfriend","FriendStatusCard","Requests","CancelRequest","cancelLoader","canceRequestedDataList","setCancelrequestedDataList","CancelRequestedRequest","Blocked","unblockfriendQuery","unblockLoader","unblockfriendHandle","myFriendTabs","InviteHome","FriendBannerImg","modalStatus","isPasswordCurrentDisplay","SetPasswordCurrentDisplay","isPasswordNewDisplay","SetPasswordNewDisplay","isPasswordConfirmDisplay","SetPasswordConfirmDisplay","updatePassword","passObj","setpassObj","curr_pass","new_pass","confirm_new_pass","passResult","setPassResult","responseMsg","handleChangePassword","ModalClose","EyeOnPass","EyeOffPass","currentPassword","newPassword","handleUpdatePassword","extendStatics","SuppressedError","restrictPosition","mediaSize","cropSize","restrictPositionCoord","maxPosition","getDistanceBetweenPoints","pointA","pointB","getRotationBetweenPoints","limitArea","noOp","_max","getCenter","Cropper","imageRef","containerPosition","containerRef","styleRef","naturalWidth","naturalHeight","dragStartPosition","dragStartCrop","gestureZoomStart","gestureRotationStart","isTouching","lastPinchDistance","lastPinchRotation","rafDragTimeout","rafPinchTimeout","wheelTimer","currentDoc","currentWindow","resizeObserver","hasWheelJustStarted","mediaObjectFit","initResizeObserver","isFirstResize","computeSizes","preventZoomSafari","cleanEvents","onDragStopped","onGestureMove","onGestureEnd","clearScrollEvent","onWheel","onMediaLoad","emitCropData","setInitialCrop","onMediaLoaded","initialCroppedAreaPercentages","croppedAreaPercentages","minZoom","maxZoom","mediaBBoxSize","crop","getInitialCropFromCroppedAreaPercentages","onCropChange","onZoomChange","initialCroppedAreaPixels","croppedAreaPixels","mediaNaturalBBoxSize","mediaZoom","getMediaZoom","getZoomFromCroppedAreaPixels","cropZoom","getInitialCropFromCroppedAreaPixels","mediaRef","saveContainerPosition","containerAspect","videoWidth","videoHeight","mediaAspect","renderedMediaSize","setMediaSize","containerWidth","containerHeight","aspect","fittingWidth","fittingHeight","getCropSize","onCropSizeChange","recomputeCropPosition","setCropSize","bounds","onDragStart","getMousePoint","onDrag","onTouchRequest","onPinchStart","getTouchPoint","onPinchMove","onGestureStart","point","newZoom","setNewZoom","shouldUpdatePosition","onRotationChange","newRotation","onInteractionStart","cancelAnimationFrame","requestedPosition","newPosition","onInteractionEnd","onWheelRequest","zoomSpeed","getPointOnContainer","containerTopLeft","getPointOnMedia","zoomPoint","zoomTarget","getCropData","limitAreaFn","widthInPixels","heightInPixels","sizePixels","computeCroppedArea","getAspect","cropData","onCropComplete","onCropAreaChange","emitCropAreaChange","zoomWithScroll","disableAutomaticStylesInjection","setImageRef","setVideoRef","objectFit","getObjectFit","mediaProps","cropShape","showGrid","cropAreaStyle","mediaStyle","cropAreaClassName","mediaClassName","playsInline","onLoadedMetadata","touch","getLinearProgressUtilityClass","_t5","_t6","indeterminate1Keyframe","indeterminate2Keyframe","bufferKeyframe","getColorShade","LinearProgress","LinearProgressRoot","colorAdjust","LinearProgressDashed","dashed","LinearProgressBar1","bar","bar1Indeterminate","bar1Determinate","bar1Buffer","LinearProgressBar2","bar2Indeterminate","bar2Buffer","valueBuffer","bar1","bar2","inlineStyles","_S3_BUCKET","MyBucketContainer","handlePhotoModal","UpdateProfilePic","updateFilenameQuery","updateFilePhotoQuery","IsNextUpload","setNextUpload","ProfileViewImage","setProfileViewImage","selectedFile","setSelectedFile","setCrop","setRotation","setZoom","Inputref","setCroppedAreaPixels","setprogressData","s3ImageURL","setS3ImageURL","isProgress","setProgress","serverFileNameMeta","setServerFileNameMeta","ReadImageFile","croppedArea","handleCancelProfileViewer","_getFilenameMeta$data","_getFilenameMeta$data2","fileNameObj","getFilenameMeta","_getFilenameMeta$data3","_getFilenameMeta$data4","_getFilenameMeta$data5","_getFilenameMeta$data6","_getFilenameMeta$data7","_getFilenameMeta$data17","showCroppedImage","_getFilenameMeta$data8","_getFilenameMeta$data9","_getFilenameMeta$data10","_getFilenameMeta$data11","_getFilenameMeta$data12","_getFilenameMeta$data13","_getVerifyfileId$data","_getVerifyfileId$data2","getVerifyfileId","_getFilenameMeta$data14","_getFilenameMeta$data15","_getFilenameMeta$data16","_getVerifyfileId$data3","_getVerifyfileId$data4","_getVerifyfileId$data5","handleOpenFileSystem","ImageDataUrl","resendOtpHandler","resendOtpHandlerInfo","deleteBtnHandler","setOtp","setPassword","setAcknowleged","setIsFormValid","otpSent","setOtpSent","isOtpPristine","setIsOtpPristine","isPasswordPristine","setIsPasswordPristine","checkFormErrors","dateConversionTo","MyProfile","_data$response$data2","_data$response$data3","_data$response$data4","_data$response$data5","is_loading","is_Error","u_error","is_Success","updateUserInfo","updateUserInfoLoading","updateUserInfoErrorStatus","updateUserInfoErrorMessage","updateUserInfoSuccess","userNamePristine","setUsernamePristine","removeProfilePic","UpdateProfilepic","sendDeleteUserOtp","sendDeleteUserOtpInfo","reSendDeleteUserOtp","reSendDeleteUserOtpInfo","deleteUser","deleteUserInfo","focusRef","isformEditable","setFormEditable","isModalStatus","setModalstatus","formaData","formValidationError","setFormValidationError","errMsg","firstname","lastname","hasError","IsProfilePhotoModalOpen","setProfilePhotoModal","deletionErrorMessage","setDeletionErrorMessage","isDeleted","userGuideLines","setuserGuideLines","toggleUserGuidelines","Calender","setCalender","selectedDate","setselectedDate","updateAccountPrivate","setChecked","handleProfilePhotoModal","IsFormEditable","handleChangeUserData","userInfoClone","isPrivate","isDateValid","showCalendar","setShowCalendar","calendarContainerRef","delaySearch","_res$data2$response$d","sets","filteredSet","errObj","checkUserName","handleClickOutsideCalendar","_calendarContainerRef","closest","spinner","_userDefaultProfileImg","removeProfilePhoto","checkFirstName","checkLastName","HyperCalendar","lastPasswordChange","Deleted","DeletionError","ConfirmDeletion","PasswordModal","ProfilePhotoModal","filenameId","handleSub","handleClickSub","tagType","thumbnailIcon","premiumModalStatus","setpremiumModalStatus","UnlockPremium","all2dData","setAll2dData","searchText","setSearchText","searchInputText","setSearchInputText","searchTimeout","inputRef","entertainmentData","_entertainmentData$re","_entertainmentData$re2","_entertainmentData$re3","_entertainmentData$re4","formattedEntertainmentData","contentPref","PremiumLockIcon","VolumetricCard","all180Data","setAll180Data","all360Data","setAll360Data","_channelListData","_channelListData$resp","channelListData","_channelListData2","_channelListData2$res","_channelListData2$res2","allVolumetricData","setAllVolumetricData","EventsPage","Volumetric","Video180","Video360","Video2D","labelStatus","premiumContent","setPremiumContent","premiumPrice","setPremiumPrice","_entertainmentData2","_entertainmentData","AnalyticsSlice","postCreateUserInteraction","usePostCreateUserInteractionMutation","tabId","createUserInteractionTrigger","createUserInteractionInfo","loginStatus","autoHideDuration","disableWindowBlurListener","resumeHideDuration","timerAutoHide","setAutoHideTimer","autoHideDurationParam","handleResume","createHandleFocus","onFocusCallback","createMouseEnter","onMouseEnterCallback","createMouseLeave","onMouseLeaveCallback","externalProps","onBlurCallback","onClickAway","mapEventPropToEvent","eventProp","ClickAwayListener","disableReactTree","mouseEvent","touchEvent","movedRef","activatedRef","syntheticEventRef","handleClickAway","insideReactTree","clickedRootScrollbar","insideDOM","composedPath","createHandleSynthetic","handlerName","childrenProps","mappedTouchEvent","handleTouchMove","mappedMouseEvent","getSnackbarContentUtilityClass","SnackbarContentRoot","emphasis","SnackbarContent","SnackbarContentMessage","SnackbarContentAction","getSnackbarUtilityClass","SnackbarRoot","ClickAwayListenerProps","ContentProps","useSnackbar","_channelDetail$links","_channelDetail$contac","_channelDetail$contac2","_channelDetail$contac3","_channelDetail$contac4","_channelDetail$contac5","_channelDetail$contac6","channelDetail","openSnackbar","setOpenSnackbar","creatorEmail","setCreatorEmail","fetchingEmail","setFetchingEmail","emailError","setEmailError","channelDescription","links","contactInfo","contactEmail","_resp$response","_resp$response2","_resp$response3","_resp$response4","channelEmail","websiteName","channelSubscribers","country","countryName","_navigator$clipboard","clipboard","writeText","copyToClipboard","Snackbar","ChannelContent","_channelData$response","_channelData$response6","channelSubscribed","setChannelSubscribed","creatorInfoOpen","setCreatorInfoOpen","IsItemAdded","setIsItemAdded","cId","checkSubscription","checkSubscriptionInfo","HandletooltipHover","thumbLoaded","setThumbLoaded","_subscriptionInfo$dat","_subscriptionInfo$dat2","subscriptionInfo","textWrap","Flag","CreatorInfo","_channelData$response2","_channelData$response3","_channelData$response4","_channelData$response5","sneakyPeek","imageURL","buttonTxt","BuyContent","_userData$response","_sneakPeakImages","_recommendedContentDa","_recommendedContentDa2","_channelData$response7","buyCardTitle","setBuyCardTitle","comingSoonText","setComingSoonText","cartItem","setCartItem","cartContentIds","setCartContentIds","isItemAddCheck","setIsItemAddCheck","fetchedContentId","setFetchedContentId","dataToFetch","userInteractionPayload","keyType","isErrorChannel","isFetchingChannel","isFetchingUser","isSuccessUser","isrrorUser","errorUser","loadReccContent","setLoadReccContent","contentDescription","contentCategory","contentThumbnail","channelProductId","recommendedContentData","isFetchingRecommendedContent","isSuccessRecommendedContent","isrrorRecommendedContent","errorRecommendedContent","_recommendedContentDa3","_subscriptionInfo$dat3","_subscriptionInfo$dat4","addToCart","_res$data5","_res$data5$response","_res$data6","_res$data6$response","checkout","assetType","Popup","SneakyPeak","MusicContent","cardAdded","setcardAdded","GamingData","HoloSuite","Environment","defaultRoute","AddDetails","screenSize","setScreenSize","updateScreenSize","usernamePristine","setselectedGender","setIsValid","userNameValid","setUserNameValid","selectedGender","handleGender","setGender","Gender","setgenderError","toggleGender","userGuideLineRef","dobRef","genderDropdownRef","handleOutsideClick","currentCalendarView","setCurrentCalendarView","selectedDay","setSelctedDay","selectedMonth","setSelectedMonth","selectedYear","setSelectedYear","genderError","DOBError","setDOBError","_res$data5$response$d","userBasicData","updatedData","strokeidth","SelectUserPreferences","allPreferences","setAllPreferences","prefLoaded","setPrefLoaded","submitUserPref","submitUserPrefInfo","fetchedPreferences","_fetchedPreferences","_fetchedPreferences$r","_fetchedPreferences2","_fetchedPreferences2$","_fetchedPreferences3","_fetchedPreferences3$","_fetchedPreferences3$2","preference","prefState","onChangeInput","statekey","stateValue","preferences","foundKeyValue","styleClass","onAddHandle","onRemoveHandle","AddTags","suggestedTags","setSuggestedTags","addedTags","setAddedTags","submitUserTags","submitUserTagsInfo","fetchedTags","_fetchedTags$response","_fetchedTags$response2","_fetchedTags$response3","ft","updateSelectedTags","newAddedTags","newSuggestedTags","TagsChip","CloseTagIcon","_fetchedTags$response4","_fetchedTags$response5","removeTag","PlusTagIcon","OnboardingComplete","HelpCenter","AddTicket","GetTicketList","useAddTicketMutation","useGetTicketListQuery","LocalStore","UserTransaction","tr_name","tr_status","tr_remark","tr_status_msg","MyTransaction","isTransactionAvailable","setTransaction","changeInput","listStateFunction","checkInputRef","__list","MyPreference","_handleFilterSuggeste","suggestedData","suggestedLoading","suggestedError","updateUsertagsQuery","updateLoader","updateUserPrefereneceQuery","updatePLoader","Prefetch","setTags","addTags","setAddTags","defaultList","setDefaultList","musicNEntertainment","fashionNStyle","socialVREvents","spaceNScifi","meditationNMindfulness","astronomyNSpace","travelExplorer","artNDesign","gamingNSports","digitalFashionNAvatars","nft","digitalAssetTrading","techNGadgets","cryptocurrencyInvestments","holographicTechnology","blockchainGaming","virtualRealEstate","immersiveStorytelling","userError","setUserError","openErrorModal","setErrorModal","_suggestedData$respon","_suggestedData$respon2","OnRemoveUserTags","removeAddtags","onAddUserTags","tempArr","removeSuggestedTags","PreferenceList","checkboxKey","isChecked","handleModalEvent","mostTrending","GameCategoryDetail","GamingDetailBanner","GamingProfileImg","MyNotification","_data$response3$data$2","_data$response3$data$3","isNotificationAvailable","setNotification","_notifyItem","receivedAt","SingleNotification","notifyId","Cart","_starData$response3","_starData$response3$d","_starData$response4","_starData$response5","_starData$response5$d","_starData$response6","_starData$response6$d","_starData$response6$d2","_starData$response7","_starData$response7$d","starLoading","DeleteCartItemQuery","deleteCartLoader","setCartData","IsalertMsg","setIsAlertMsg","loadingIndexes","setLoadingIndexes","deleteCartItem","checkoutCartStar","_starData$response2","cartCheckoutData","itemName","_item$itemCategory","_item$itemCategory$sp","itemChannelHandle","creator_id","MiniLoader","CartSumOfItemPrice","accumulator","checkoutCartUSD","_item$itemCategory2","_item$itemCategory2$s","CartStarSumOfItemPrice","_starData$response","handleFstrCheckout","EventDetail","_eventData7","_eventData$venueType","isEventEnded","setIsEventEnded","recommendedData","isReccFetching","isReccError","isReccDataAvailable","videoPlaying","setVideoPlaying","GetUserEventsListQuery","refetchUserEventsData","addParticipantToEventTrigger","addParticipantToEventInfo","addEventData","addEventLoading","addEventFetching","addEventSuccess","addEventError","isEventBooked","setIsEventBooked","foundEvent","_eventData","_eventData2","_eventData3","_eventData4","_eventData5","_eventData6","buyEventTicketHandler","HeroImg","entryTime","ReactPlayer","promoVideo","AvatarsList","SCRIPT_LOADING_STATE","DISPATCH_ACTION","PAYPAL_HOSTED_FIELDS_TYPES","SCRIPT_ID","SDK_SETTINGS","LOAD_SCRIPT_ERROR","braintreeVersion","DEFAULT_PAYPAL_NAMESPACE","getPayPalWindowNamespace$1","generateErrorMessage","reactComponentName","sdkComponentKey","sdkRequestedComponents","sdkDataNamespace","requiredOptionCapitalized","requestedComponents","expectedComponents","getScriptID","paypalScriptOptions","hashStr","scriptReducer","LOADING_STATUS","loadingStatus","loadingStatusErrorMessage","RESET_OPTIONS","reactPayPalScriptID","scriptNode","destroySDKScript","PENDING","SET_BRAINTREE_INSTANCE","braintreePayPalCheckoutInstance","ScriptContext","validateReducer","scriptContext","usePayPalScriptReducer","isInitial","INITIAL","isResolved","RESOLVED","REJECTED","PayPalButtons","forceReRender","buttonProps","isDisabledStyle","buttonsContainerRef","initActions","setInitActions","isEligible","setIsEligible","setErrorState","closeButtonsComponent","updateProps","paypalWindowNamespace","dataNamespace","Buttons","fundingSource","disable","enable","objectToQueryString","createScriptElement","newScript","loadScript","PromisePonyfill","validateArguments","sdkBaseUrl","optionsWithStringIndex","indexOfMatch","camelCaseToKebabCase","processOptions","existingWindowNamespace","getPayPalWindowNamespace","nextScript","currentScriptClone","uidAuto","isExactMatch","findScript","loadCustomScript","newWindowNamespace","insertScriptElement","defaultError","PayPalMarks","markProps","markContainerRef","Marks","mark","renderPayPalMark","PayPalMessages","messageProps","messagesContainerRef","PayPalScriptProvider","deferLoading","ignore","cardFieldsForm","registerField","unregisterField","Checkout","productName","transactionDetail","setTransactionDetail","transactionDetailRef","paymentUrl","setPaymentUrl","createOrder","paymentGatewayName","_res2","_res2$response","_res$response6","_res$response7","_res$response7$data","_res$response7$data$g","gatewayTransaction","paymentGatewayId","initiateSubscriptionTrans","_res$response4$data$g","initiateTrans","onApprove","alert","vault","inputs","stateMutability","internalType","anonymous","indexed","outputs","FMT_NUMBER","FMT_BYTES","DEFAULT_RETURN_FORMAT","BIGINT","HEX","ETH_DATA_FORMAT","BlockTags","HardforksOrdered","Web3BaseProvider","isWeb3Provider","sendAsync","asEIP1193Provider","originalRequest","Web3BaseWallet","accountProvider","_accountProvider","JSONRPC_ERR_REJECTED_REQUEST","JSONRPC_ERR_UNAUTHORIZED","JSONRPC_ERR_UNSUPPORTED_METHOD","JSONRPC_ERR_DISCONNECTED","JSONRPC_ERR_CHAIN_DISCONNECTED","ERR_RPC_INVALID_JSON","ERR_RPC_INVALID_REQUEST","ERR_RPC_INVALID_METHOD","ERR_RPC_INVALID_PARAMS","ERR_RPC_INTERNAL_ERROR","ERR_RPC_INVALID_INPUT","ERR_RPC_MISSING_RESOURCE","ERR_RPC_UNAVAILABLE_RESOURCE","ERR_RPC_TRANSACTION_REJECTED","ERR_RPC_UNSUPPORTED_METHOD","ERR_RPC_LIMIT_EXCEEDED","ERR_RPC_NOT_SUPPORTED","BaseWeb3Error","MultipleErrors","innerError","convertToString","unquotValue","InvalidValueError","PrivateKeyLengthError","InvalidPrivateKeyError","InvalidSignatureError","InvalidKdfError","KeyDerivationError","KeyStoreVersionError","InvalidPasswordError","IVLengthError","PBKDF2IterationsError","ConnectionError","errorReason","ConnectionNotOpenError","MaxAttemptsReachedOnReconnectingError","numberOfAttempts","PendingRequestsOnReconnectingError","RequestAlreadySentError","Web3ContractError","receipt","ResolverMethodMissingError","Eip838ExecutionError","setDecodedProperties","errorName","errorSignature","errorArgs","ContractExecutionError","rpcError","ContractTransactionDataAndInputError","ENSUnsupportedNetworkError","networkType","ENSNetworkNotSyncedError","InvalidMethodParamsError","FormatterError","MethodNotImplementedError","OperationTimeoutError","OperationAbortError","AbiError","ExistingPluginNamespaceError","pluginNamespace","ProviderError","InvalidClientError","clientUrl","SubscriptionError","Web3WSProviderError","SignatureError","TransactionError","TransactionRevertInstructionError","TransactionRevertWithCustomError","customErrorName","customErrorDecodedSignature","customErrorArguments","TransactionRevertedWithoutReasonError","UndefinedRawTransactionError","TransactionNotFound","InvalidTransactionWithSender","InvalidTransactionWithReceiver","MissingCustomChainError","MissingCustomChainIdError","ChainIdMismatchError","ChainMismatchError","HardforkMismatchError","CommonOrChainAndHardforkError","MissingChainOrHardforkError","hardfork","MissingGasInnerError","MissingGasError","gas","gasPrice","maxPriorityFeePerGas","maxFeePerGas","TransactionGasMismatchInnerError","TransactionGasMismatchError","InvalidGasOrGasPrice","InvalidMaxPriorityFeePerGasOrMaxFeePerGas","Eip1559GasPriceError","UnsupportedFeeMarketError","InvalidTransactionObjectError","InvalidNonceOrChainIdError","UnableToPopulateNonceError","Eip1559NotSupportedError","UnsupportedTransactionTypeError","TransactionDataAndInputError","TransactionSendTimeoutError","numberOfSeconds","transactionHash","transactionTimeoutHint","TransactionPollingTimeoutError","TransactionBlockTimeoutError","starterBlockNumber","numberOfBlocks","TransactionMissingReceiptOrBlockHashError","blockHash","TransactionReceiptMissingBlockNumberError","TransactionSigningError","LocalWalletNotAvailableError","InvalidPropertiesForTransactionTypeError","validationError","txType","invalidPropertyNames","keyword","InvalidBytesError","InvalidNumberError","InvalidAddressError","InvalidStringError","InvalidUnitError","InvalidIntegerError","HexProcessingError","NibbleWidthError","InvalidBooleanError","InvalidUnsignedIntegerError","InvalidSizeError","InvalidLargeValueError","InvalidBlockError","buildErrorMessage","jsonrpc","isResponseWithError","ResponseError","errorOrErrors","InvalidResponseError","ConfigHardforkMismatchError","defaultHardfork","commonHardFork","ConfigChainMismatchError","genericRpcErrorMessageTemplate","RpcErrorMessages","RpcError","jsonRpcError","jsonRpc","EIP1193ProviderRpcError","statusCodeRange","rpcErrorsMap","SchemaFormatError","isBytes","lengths","outputLen","blockLen","exists","checkFinished","destroyed","assert","U32_MASK64","_32n","fromBig","lst","Al","rotlSH","rotlSL","rotlBH","rotlBL","u64","toBig","shrSH","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","rotr32L","Bl","add3L","Cl","add3H","add4L","Dl","add4H","add5H","add5L","El","u32","createView","rotr","rotl","byteSwap","byteSwap32","abytes","Hash","_cloneInto","checkOpts","wrapConstructor","hashCons","hashC","randomBytes","bytesLength","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","Keccak","enableXOF","rounds","posOut","state32","keccak","idx1","idx0","B0","B1","Tl","curH","curL","keccakP","take","writeInto","bufferOut","xofInto","xof","digestInto","keccak_224","keccak_256","keccak_384","keccak_512","assertBytes","bytesToUtf8","wrapHash","webCrypto","nodeRequire","keccak256","objectUtil","assertEqual","assertIs","_arg","assertNever","arrayToEnum","getValidEnumValues","validKeys","objectKeys","objectValues","checker","joinValues","jsonStringifyReplacer","mergeShapes","ZodParsedType","getParsedType","nan","null","unknown","ZodIssueCode","ZodError","issues","addIssue","addIssues","actualProto","_mapper","issue","fieldErrors","_errors","processError","unionErrors","returnTypeError","argumentsError","curr","errorMap","_ctx","invalid_type","received","invalid_literal","unrecognized_keys","invalid_union","invalid_union_discriminator","invalid_enum_value","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","minimum","too_big","maximum","invalid_intersection_types","not_multiple_of","multipleOf","not_finite","overrideErrorMap","getErrorMap","makeIssue","errorMaps","issueData","fullPath","fullIssue","addIssueToContext","overrideMap","contextualErrorMap","schemaErrorMap","ParseStatus","mergeArray","arrayValue","INVALID","mergeObjectAsync","syncPairs","mergeObjectSync","finalObject","alwaysSet","DIRTY","OK","isAborted","isDirty","isAsync","__classPrivateFieldGet","__classPrivateFieldSet","errorUtil","_ZodEnum_cache","_ZodNativeEnum_cache","errToObj","ParseInputLazyPath","_cachedPath","_path","handleResult","processCreateParams","invalid_type_error","required_error","customMap","iss","ZodType","spa","safeParseAsync","_def","safeParse","parseAsync","refine","refinement","superRefine","optional","nullable","nullish","or","and","brand","describe","readonly","isNullable","_getType","_getOrReturnCtx","parsedType","_processInputParams","_parseSync","_parse","_parseAsync","maybeAsyncResult","check","getIssueProperties","_refinement","refinementData","ZodEffects","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","ZodUnion","ZodIntersection","defaultValueFunc","ZodDefault","ZodBranded","catchValueFunc","ZodCatch","catchValue","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","nanoidRegex","durationRegex","emailRegex","emojiRegex","ipv4Regex","ipv6Regex","base64Regex","dateRegexSource","timeRegexSource","datetimeRegex","local","isValidIP","ip","ZodString","coerce","checks","tooBig","tooSmall","_regex","_addCheck","emoji","cuid","cuid2","ulid","nonempty","isDatetime","isTime","isDuration","isEmail","isURL","isEmoji","isUUID","isNANOID","isCUID","isCUID2","isULID","isIP","isBase64","floatSafeRemainder","valDecCount","stepDecCount","decCount","ZodNumber","gte","lte","setLimit","gt","lt","int","positive","nonpositive","nonnegative","finite","safe","minValue","maxValue","isInt","ZodBigInt","ZodBoolean","ZodDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","_any","ZodUnknown","_unknown","ZodNever","never","ZodVoid","void","exactLength","deepPartialify","ZodObject","newShape","fieldSchema","ZodTuple","_cached","nonstrict","passthrough","augment","_getCached","shapeKeys","extraKeys","catchall","unknownKeys","keyValidator","strict","strip","augmentation","merging","setKey","deepPartial","newField","keyof","createZodEnum","strictCreate","lazycreate","childCtx","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","sharedKeys","sharedValue","handleParsed","parsedLeft","parsedRight","itemIndex","schemas","ZodRecord","keySchema","valueSchema","valueType","third","ZodMap","finalMap","ZodSet","finalizeSet","parsedSet","ZodFunction","implement","makeArgsIssue","makeReturnsIssue","returns","parsedArgs","parsedReturns","returnType","strictImplement","expectedValues","enumValues","Values","Enum","newDef","exclude","nativeEnumValues","promisified","sourceType","checkCtx","processed","executeRefinement","createWithPreprocess","preprocess","removeDefault","newCtx","removeCatch","ZodNaN","BRAND","inResult","handleAsync","_fatal","late","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","NEVER","defaultErrorMap","setErrorMap","EMPTY_PATH","ZodTransformer","Schema","ZodSchema","discriminatedUnion","cls","intersection","nativeEnum","oboolean","onumber","ostring","pipeline","record","strictObject","tuple","quotelessJson","errorFormatter","Web3ValidatorError","_compileErrors","VALID_ETH_BASE_TYPES","isAbiParameterSchema","isHexStrict","isHexString","isHex","validateNoLeadingZeroes","extraTypes","parseBaseType","baseTypeSize","strippedType","arraySizes","baseType","convertEthType","parentSchema","eth","instancePath","schemaPath","abiSchemaToJsonSchema","abis","maxItems","minItems","abi","abiType","abiName","abiComponents","childSchema","lastSchema","$id","arraySize","nestedTuple","ethAbiToJsonSchema","fetchArrayElement","transformJsonDataToAbiFormat","transformedData","dataItem","tupleData","tupleItem","nestedItems","nestedData","nestedItem","codePointToInt","hexToNumber","hexValue","padLeft","characterAmount","uint8ArrayToHexString","uint8Array","hexString","charCodeMap","nine","charCodeToBase16","hexToUint8Array","nibbleLeft","nibbleRight","ensureIfUint8Array","valueToCheck","checkAddressCheckSum","addressHash","isAddress","checkChecksum","bigintPower","expo","isUInt","bitSize","isBlockNumber","isBlockTag","isBlockNumberOrTag","isBloom","bloom","isInBloom","bitpos","isNullish","isTopic","topic","blockNumber","blockTag","blockNumberOrTag","expectedFilterProperties","fromBlock","toBlock","topics","nestedTopic","isFilterObject","uint","bytes256","convertToZod","zItem","nextSchema","zodArraySchema","oneOfSchema","Validator","validatorInstance","convertErrors","silent","_validator","validateJSONSchema","jsonSchema","uint8ArrayConcat","uint8ArrayEquals","ethUnitMap","noether","wei","kwei","Kwei","babbage","femtoether","mwei","Mwei","lovelace","picoether","gwei","Gwei","shannon","nanoether","nano","szabo","microether","micro","finney","milliether","milli","ether","kether","grand","mether","gether","tether","PrecisionLossWarning","bytesToUint8Array","validatorUtils","toDecimal","hexstrict","updatedValue","fromDecimal","hexToNumberString","utf8ToHex","strWithoutNullCharacter","fromUtf8","stringToHex","hexToUtf8","toUtf8","ecUtf8ToBytes","hexToString","asciiToHex","hexCharCode","fromAscii","hexToAscii","toAscii","toBigInt","fromWei","denomination","numberOfZerosInDenomination","zeroPaddedValue","toWei","parsedNumber","toLocaleString","useGrouping","maximumFractionDigits","decimals","toChecksumAddress","lowerCaseAddress","checksumAddress","toBool","EventEmitter3","maxListeners","getMaxListeners","isHexStrictValidator","isHexValidator","checkAddressCheckSumValidator","isAddressValidator","isBloomValidator","isInBloomValidator","isUserEthereumAddressInBloom","ethereumAddress","isContractAddressInBloom","contractAddress","isTopicValidator","isTopicInBloom","compareBlockNumbers","blockA","blockB","isABlockTag","isBBlockTag","tagsOrder","EARLIEST","FINALIZED","SAFE","LATEST","bigIntA","bigIntB","isContractInitOptions","isNullishValidator","isIterable","mergeDeep","padRight","padEnd","prefixLength","rightPad","leftPad","toTwosComplement","nibbleWidth","largestBit","updatedVal","fromTwosComplement","complement","isDataFormat","dataFormat","findSchemaByDataPath","dataPath","previousDataPath","oneOfPath","dataPart","currentDataPath","convertScalarValue","ethType","NUMBER","STR","paddedValue","UINT8ARRAY","convertArray","schemaProp","_schemaProp","oneOfSchemaProp","arrObject","dataToParse","returnFormat","SHA3_EMPTY_BYTES","keccak256Wrapper","processedData","sha3","sha3Raw","parseTypeN","typeLength","typesize","bitLength","solidityPack","elementaryName","processSolidityEncodePackedArgs","getType","hexArg","encodePacked","soliditySha3","soliditySha3Raw","getStorageSlotNumForLongString","mainSlotNumber","getRandomBytesSync","randomHex","byteSize","waitWithTimeout","awaitable","pollTillDefinedAndReturnIntervalId","intervalId","polledRes","intervalCallbackFunc","__awaiter","pollTillDefined","rejectIfTimeout","rejectOnTimeout","rejectIfConditionAtInterval","rejectIfCondition","uuidV4","isResponseRpcError","isResponseWithResult","isResponseWithNotification","isSubscriptionResult","validateResponse","isValidResponse","isBatchResponse","requestIdSeed","setRequestIdStart","toPayload","toBatchPayload","isBatchRequest","Web3DeferredPromise","eagerStart","_reject","_timeoutMessage","_timeoutInterval","startTimer","onrejected","onfinally","_clearTimeout","_timeoutId","_checkTimeout","ChunkResponseParser","autoReconnect","chunkTimeout","clearQueues","_clearQueues","parseResponse","returnValues","_chunkData","chunkData","lastChunk","lastChunkTimeout","Eip1193Provider","_eventEmitter","_chainId","_accounts","_getChainId","_getAccounts","_onConnect","_onAccountsChanged","_onDisconnect","DEFAULT_RECONNECTION_OPTIONS","SocketProvider","socketOptions","reconnectOptions","_connectionStatus","_onMessageHandler","_onMessage","_onOpenHandler","_onCloseHandler","_onCloseEvent","_onErrorHandler","_validateProviderPath","_socketPath","_socketOptions","_reconnectOptions","_pendingRequestsQueue","_sentRequestsQueue","chunkResponseParser","isReconnecting","SocketConnection","_socketConnection","_reconnectAttempts","_openSocketConnection","_addSocketListeners","_reconnect","getPendingRequestQueueSize","getSentRequestsQueueSize","supportsSubscriptions","disconnectCode","_removeSocketListeners","getStatus","_closeSocketConnection","safeDisconnect","forceDisconnect","retryAttempt","checkQueue","deferredPromise","reqItem","_sendToSocket","_sendPendingRequests","responses","_parseResponses","requestItem","Web3EventEmitter","setMaxListenerWarningThreshold","maxListenersWarningThreshold","Web3ConfigEvent","Web3Config","handleRevert","defaultAccount","defaultBlock","transactionBlockTimeout","transactionConfirmationBlocks","transactionPollingInterval","transactionPollingTimeout","transactionReceiptPollingInterval","transactionSendTimeout","transactionConfirmationPollingInterval","blockHeaderTimeout","contractDataInputFill","defaultNetworkId","defaultChain","defaultCommon","defaultTransactionType","defaultMaxPriorityFeePerGas","enableExperimentalFeatures","useSubscriptionWhenCheckingBlockTimeout","useRpcCallSpecification","transactionBuilder","transactionTypeParser","customTransactionSchema","defaultReturnFormat","_triggerConfigChange","baseChain","CONFIG_CHANGE","HttpProvider","httpProviderOptions","validateClientUrl","requestOptions","providerOptionsCombined","providerOptions","providerUrl","CONNECTING","OPEN","wasClean","isLegacyRequestProvider","isEIP1193Provider","isLegacySendProvider","isLegacySendAsyncProvider","isSupportedProvider","Web3RequestManagerEvent","availableProviders","WebsocketProvider","WSProvider","Web3RequestManager","requestManagerMiddleware","setProvider","_provider","newProvider","BEFORE_PROVIDER_CHANGE","PROVIDER_CHANGED","setMiddleware","requestObj","_sendRequest","processResponse","sendBatch","processRequest","_processJsonRpcResponse","legacy","rejectWithError","resolveWithResponse","processedError","processingError","_buildResponse","rpcErrorResponse","Err","_isReverted","Web3SubscriptionManager","requestManager","registeredSubscriptions","tolerateUnlinkedSubscription","_subscriptions","listenToProviderEvents","providerAsWebProvider","messageListener","subscriptionId","processSubscriptionData","Klass","subscriptionManager","addSubscription","sendSubscriptionRequest","removeSubscription","sendUnsubscribeRequest","Web3Subscription","_subscriptionManager","_returnFormat","lastBlock","_lastBlock","_processSubscriptionResult","_buildSubscriptionParams","resubscribe","formatSubscriptionResult","_processSubscriptionError","Wallet","_addressMap","_defaultKeyName","numberOfAccounts","account","privateKeyToAccount","addressOrIndex","encrypt","encryptedWallets","save","keystore","web","validateOpt","getBrowserKey","keyMode","pkcs7PaddingEnabled","wKey","wOpt","cipher","createCipheriv","setAutoPadding","final","cypherText","getPadding","msgBytes","equalsBytes","decipher","createDecipheriv","HMAC","assertHash","iHash","oHash","assertExists","pbkdf2Init","_password","_salt","dkLen","asyncTick","assertNumber","salt","DK","PRF","PRFSalt","pbkdf2Output","prfW","pbkdf2","setInt32","Chi","Maj","HashMD","padOffset","dataView","roundClean","_u32_max","wl","oview","outLen","SHA256_K","SHA256_IV","SHA256_W","SHA256","W15","W2","SHA512_Kh","SHA512_Kl","SHA512_W_H","SHA512_W_L","SHA512","Fl","Gl","Hl","W15h","W15l","s0h","s0l","W2h","W2l","s1h","s1l","SUMl","SUMh","sigma1h","sigma1l","CHIh","CHIl","T1ll","T1h","T1l","sigma0h","sigma0l","MAJh","MAJl","sha512","pbkdf2Sync","iterations","keylen","_pbkdf2","XorAndSalsa","y00","y01","y02","y03","y04","y05","y06","y07","y08","y09","y10","y11","y12","y13","y14","y15","x00","x01","x02","x03","x04","x05","x06","x07","x08","x09","x10","x11","x12","x13","x14","x15","BlockMix","scryptInit","maxmem","blockSize","blockSize32","memUsed","B32","blockMixCb","totalBlockMix","callbackPer","blockMixCnt","scryptOutput","scryptSync","_sync","hexes","asciis","_9","_A","_F","asciiToBase16","n1","n2","bytesToNumberBE","bytesToNumberLE","numberToBytesBE","numberToBytesLE","ensureBytes","bitMask","u8n","u8fr","createHmacDrbg","hashLen","qByteLen","hmacFn","reseed","genUntil","pred","validatorFns","stringOrUint8Array","Fp","validateObject","optValidators","checkField","fieldName","checkVal","_3n","_4n","_5n","_8n","power","modulo","pow2","invert","FpSqrt","p1div4","eql","sqr","c1","nv","ONE","legendreC","Q1div2","neg","ZERO","tonelliShanks","FIELD_FIELDS","nLength","nBitLength","_nBitLength","nByteLength","getFieldBytesLength","fieldOrder","getMinHashLength","validateBasic","curve","ORDER","MASK","BYTES","BITS","Gx","Gy","b2n","h2b","ut","DER","_parseInt","toSig","sBytes","rBytesLeft","hexFromSig","sig","shl","rhl","weierstrassPoints","CURVE","allowedPrivateKeyLengths","wrapPrivateKey","isTorsionFree","clearCofactor","allowInfinityPoint","fromBytes","endo","beta","splitScalar","validatePointOpts","_isCompressed","toAffine","weierstrassEquation","x3","isWithinCurveOrder","assertGE","normPrivateKeyToScalar","pointPrecomputes","assertPrjPoint","Point","pz","fromAffine","is0","normalizeZ","toInv","invertBatch","fromHex","assertValidity","fromPrivateKey","BASE","multiply","_setWindowSize","windowSize","_WINDOW_SIZE","hasEvenY","isOdd","X1","Y1","Z1","X2","Y2","Z2","U1","U2","b3","X3","Y3","Z3","t4","t5","wNAF","wnaf","wNAFCached","comp","multiplyUnsafe","unsafeLadder","k1neg","k1","k2neg","k2","k1p","k2p","scalar","fake","f1p","f2p","constTimeNegate","multiplyAndAddUnsafe","iz","inv","ax","ay","zz","cofactor","toRawBytes","isCompressed","_bits","precomputeWindow","precomputes","shiftBy","wbits","offset1","offset2","cond1","cond2","precomputesMap","ProjectivePoint","weierstrass","curveDef","bits2int","bits2int_modN","lowS","validateOpts","CURVE_ORDER","compressedLen","uncompressedLen","modN","invN","cat","sqrtError","numToNByteStr","isBiggerThanHalfOrder","slcNum","recovery","fromCompact","fromDER","addRecoveryBit","recoverPublicKey","msgHash","rec","radj","ir","u1","u2","hasHighS","normalizeS","toDERRawBytes","toDERHex","toCompactRawBytes","toCompactHex","isValidPrivateKey","randomPrivateKey","fieldLen","reduced","precompute","isProbPub","ORDER_MASK","int2octets","prepSig","defaultSigOpts","prehash","extraEntropy","ent","h1int","seedArgs","k2sig","kBytes","normS","defaultVerOpts","getPublicKey","getSharedSecret","privateA","publicB","privKey","drbg","verify","publicKey","_sig","derError","getHash","msgs","secp256k1P","secp256k1N","divNearest","sqrtMod","_6n","_11n","_22n","_23n","_44n","_88n","b2","b6","b9","b11","b22","b44","b88","b176","b220","b223","bitLen","redef","sqrtP","lhs","rhs","FpPow","div","sqrN","addN","subN","mulN","nums","lastMultiplied","inverted","FpInvertBatch","cmov","Field","secp256k1","defHash","createCurve","b1","POW_2_128","c2","ethereumCryptography","MAX_UINT64","MAX_INTEGER","SECP256K1_ORDER_DIV_2","keyStoreSchema","ciphertext","cipherparams","kdf","kdfparams","mac","Chain","Hardfork","ConsensusType","ConsensusAlgorithm","CustomChain","TypeOutput","stripHexPrefix","intToHex","parseGethParams","mergeForkIdPostMerge","difficulty","mixHash","gasLimit","coinbase","baseFeePerGas","extraData","genesisTimestamp","formatNonce","eip155Block","eip158Block","networkId","genesis","hardforks","bootstrapNodes","consensus","clique","blockperiodseconds","epoch","epochlength","ethash","forkMap","Homestead","Dao","TangerineWhistle","SpuriousDragon","Byzantium","Constantinople","Petersburg","Istanbul","MuirGlacier","Berlin","London","MergeForkIdTransition","postMerge","Shanghai","isTimestamp","ShardingForkDev","forkMapRev","configHardforkNames","nameBlock","fork","terminalTotalDifficulty","Merge","ttd","postMergeIndex","latestHardfork","Chainstart","padToEven","toUint8Array","uint8ArrayToBigInt","zeros","assertIsUint8Array","setLengthLeft","setLength","unpadUint8Array","stripZeros","bigIntToHex","bigIntToUnpaddedUint8Array","ecrecover","calculateSigRecovery","isValidSigRecovery","outputType","bigInt","PrefixedHexString","EIPs","chainstart","homestead","dao","tangerineWhistle","spuriousDragon","byzantium","constantinople","petersburg","istanbul","muirGlacier","berlin","london","shanghai","arrowGlacier","grayGlacier","mergeForkIdTransition","crc32Uint8Array","pkg","Common","_eips","_customChains","customChains","_chainParams","setChain","DEFAULT_HARDFORK","HARDFORK_CHANGES","HARDFORK_SPECS","_hardfork","setHardfork","eips","setEIPs","chainParamsOrName","standardChainParams","_getChainParams","PolygonMainnet","PolygonMumbai","ArbitrumRinkebyTestnet","ArbitrumOne","xDaiChain","OptimisticKovan","OptimisticEthereum","fromGethGenesis","genesisJson","genesisHash","genesisParams","parseGethGenesis","setForkHashes","isSupportedChainId","initializedChains","_getInitializedChains","_chain","existing","hfChanges","getHardforkByBlockNumber","_blockNumber","_td","_timestamp","hfs","mergeIndex","hfIndex","hfStartIndex","minTimeStamp","maxTimeStamp","setHardforkByBlockNumber","_getHardfork","eip","minHF","gteHardfork","minimumHardfork","requiredEIPs","isActivatedEIP","paramByEIP","paramByHardfork","hfEIPs","valueEIP","eipParams","paramByBlock","hardforkIsActiveOnBlock","hfBlock","hardforkBlock","activeOnBlock","hardforkGteHardfork","_hardfork1","hardfork2","hardfork1","posHf1","posHf2","hardforkTimestamp","eipBlock","hardforkTTD","isHardforkBlock","nextHardforkBlockOrTimestamp","currHfTimeOrBlock","nextHf","hfTimeOrBlock","nextHfBlock","nextHardforkBlock","isNextHardforkBlock","_calcForkHash","hfUint8Array","prevBlockOrTime","blockOrTime","inputUint8Array","forkhash","intToUint8Array","forkHash","hardforkForForkHash","resArray","dnsNetworks","chainName","consensusType","consensusAlgorithm","consensusConfig","chains","mainnet","goerli","sepolia","Capability","isAccessList","firstItem","isAccessListUint8Array","isZero","publicToAddress","_pubKey","pubKey","getAccessListData","accessList","AccessListJSON","uint8arrayAccessList","newAccessList","addressBytes","storageItems","storageKeys","jsonItem","verifyAccessList","accessListItem","storageSlots","storageSlot","getAccessListJSON","accessListJSON","JSONItem","getDataFeeEIP2930","accessListStorageKeyCost","accessListAddressCost","BaseTransaction","txData","dataFee","activeCapabilities","DEFAULT_CHAIN","Mainnet","_type","txOptions","toB","vB","rB","sB","_validateCannotExceedMaxInteger","createContract","allowUnlimitedInitCodeSize","_getCommon","checkMaxInitCodeSize","maxInitCodeSize","supports","capability","stringError","getBaseFee","isSigned","verifySignature","_validateYParity","_errorMsg","_validateHighS","txFee","fee","getDataFee","toCreationAddress","txCreationFee","txDataZero","txDataNonZero","cost","getSenderPublicKey","getSenderAddress","hackApplied","EIP155ReplayProtection","getMessageToSign","_ecsign","tx","_processSignature","chainIdBigInt","customChain","cannotEqual","_validateNotArray","txDataKeys","_getSharedErrorPostfix","postfix","signatureBytes","fromSerializedTx","fromTxData","TRANSACTION_TYPE_UINT8ARRAY","FeeMarketEIP1559Transaction","accessListData","RLP","fromValuesArray","getUpfrontCost","baseFee","prio","maxBase","hashMessage","getMessageToVerifySignature","errorStr","AccessListEIP2930Transaction","meetsEIP155","chainIdDoubled","Transaction","_validateTxV","_getMessageToSign","numSub","extraTxTypes","TransactionFactory","typeToInt","registerTransactionType","txClass","ExtraTransaction","fromSerializedData","fromBlockBodyData","parseAndValidatePrivateKey","ignoreLength","privateKeyUint8Array","messageHex","messageBytes","ethMessage","messageHash","signMessageWithPrivateKey","recoverTransaction","rawTransaction","recover","signatureOrV","prefixedOrR","signatureStr","hashedMessage","ecPublicKey","publicHash","privateKeyToAddress","privateKeyToPublicKey","uint8ArrayPassword","initializationVector","derivedKey","dklen","prf","signTransaction","_tx","Web3BatchRequest","_requestManager","_requests","_processBatchRequest","_abortAllRequests","requestIds","responseIds","Web3Context","providerOrContext","_wallet","fromContextObject","getContextObject","ContextRef","newContextChild","parentContext","registerPlugin","plugin","_pluginObject","currentProvider","givenProvider","setRequestManagerMiddleware","BatchRequest","extendObj","givenParams","Iban","iban","toAddress","isDirect","base36","_iban","parsedBigInt","paddedBigInt","isIndirect","_mod9710","_iso13616Prepare","fromBban","bban","checkDigit","createIndirect","institution","fromAddress","toIban","upperIban","Web3PromiEvent","getSyncing","sendRawTransaction","transaction","getBlockByNumber","hydrated","transactionType0x0Schema","transactionType0x1Schema","transactionType0x2Schema","validateTxTypeAndHandleErrors","txSchema","defaultTransactionTypeParser","givenHardfork","hardforkIndex","detectTransactionType","web3Context","accessListSchema","accessListResultSchema","gasUsed","chainSchema","hardforkSchema","transactionSchema","effectiveGasPrice","transactionInfoSchema","transactionIndex","withdrawalsSchema","validatorIndex","blockSchema","blobGasUsed","excessBlobGas","logsBloom","miner","parentBeaconBlockRoot","parentHash","receiptsRoot","sha3Uncles","stateRoot","totalDifficulty","transactionsRoot","uncles","withdrawals","withdrawalsRoot","blockHeaderSchema","author","excessDataGas","logSchema","logIndex","syncSchema","startingBlock","currentBlock","highestBlock","knownStates","pulledStates","transactionReceiptSchema","cumulativeGasUsed","logs","SignatureObjectSchema","feeHistorySchema","oldestBlock","reward","gasUsedRatio","accountSchema","balance","codeHash","storageHash","accountProof","storageProof","proof","formatTransaction","fillInputAndData","formattedTransaction","netRpcMethods","getPeerCount","isListening","Net","rpcMethodsWrappers","ALL_EVENTS","ALL_EVENTS_ABI","NUMBER_DATA_FORMAT","getTransactionGasPricing","transactionType","getTransactionType","getGasPrice","getBlock","convertedTransactionGasPrice","getEip1559GasPricing","getTransactionFromOrToAttr","inferredType","defaultTransactionBuilder","populatedTransaction","getTransactionCount","getTransactionNonce","getChainId","fillGasPrice","fillGasLimit","estimateGas","resolveByPolling","promiseToError","lastBlockNumber","getBlockNumber","clean","rejectIfBlockTimeout","callingRes","resourceCleaner","needToWatchLater","revertToPolling","previousError","newResourceCleaner","lastBlockHeader","resolveBySubscription","trySendTransaction","sendTransactionFunc","rejectOnBlockTimeout","blockTimeoutResourceCleaner","waitForTransactionReceipt","customGetTransactionReceipt","awaitableTransactionReceipt","IntervalId","getTransactionReceipt","watchTransactionByPolling","transactionReceipt","transactionPromiEvent","customTransactionReceiptSchema","confirmations","nextBlock","ethRpcMethods","latestBlockHash","watchTransactionForConfirmations","lastCaughtBlockHash","newBlockHeader","watchTransactionBySubscription","isAbiErrorFragment","isAbiEventFragment","isAbiFunctionFragment","isSimplifiedStructFormat","mapStructNameAndType","structName","mapStructToCoderFormat","flattenTypes","includeTuple","puts","arrayBracket","jsonInterfaceMethodToString","encodeEventSignature","execTyped","bytesRegex","integerRegex","isTupleRegex","BaseError","shortMessage","docsPath","metaMessages","structSignatureRegex","isStructSignature","execStructSignature","modifiers","functionModifiers","parameterCache","abiParameterWithoutTupleRegex","abiParameterWithTupleRegex","dynamicIntegerRegex","parseAbiParameter","parameterCacheKey","getParameterCacheKey","isTuple","name2","protectedKeywordsRegex","isSolidityKeyword","modifier","structs","splitParameters","components_","isSolidityType","isValidDataLocation","abiParameter","parseStructs","signatures","shallowStructs","signaturesLength","propertiesLength","trimmed","resolvedStructs","entriesLength","resolveStructs","typeWithoutTupleRegex","abiParameters","ancestors","WORD_SIZE","convertExternalAbiParameter","abiParam","toAbiParams","structInfo","extractArrayType","arrayParenthesisStart","arrayParamType","sizeString","isDynamic","numberLimits","bigIntToUint8Array","encodeNumber","dynamic","decodeNumber","bytesLeft","boolBytes","numberResult","encodeBytes","partsLength","decodeBytes","remainingBytes","partsCount","encodeDynamicParams","encodedParams","staticSize","dynamicSize","staticParams","dynamicParams","encodedParam","encodeParamFromAbiParameter","_param","encodeString","encodeBoolean","encodeAddress","encodeTuple","arrayItemParam","dynamicItems","argumentsLength","encodingResult","encodedLength","encodeArray","decodeParamFromAbiParameter","decodeBool","decodeAddress","decodeTuple","lengthResult","offsetResult","decodedChildResult","decodeArray","narrowedInput","paramComponent","paramInput","__length__","dynamicConsumed","childParam","decodedResult","inferParamsAbi","inferredParams","encodeParameters","inferTypesAndEncodeParameters","encodeParameter","decodeParametersWith","decodeParametersInternal","internalErr","decodeParameters","decodeParameter","encodeFunctionSignature","STATIC_TYPES","decodeLog","clonedTopics","indexedInputs","nonIndexedInputs","decodedNonIndexedInputs","decodedIndexedInputs","clonedTopic","_decodeParameter","indexedCounter","nonIndexedCounter","decodeContractErrorData","errorsAbi","errorSha","errorAbi","encodeErrorSignature","parseTransactionError","contractAbi","getRevertReason","getTransactionError","transactionFormatted","transactionReceiptFormatted","receivedError","knownReason","_reason","reasonWithCustomError","decodeEventABI","jsonInterface","modifiedEvent","matchedEvent","argTopics","SendTxHelper","promiEvent","checkRevertBeforeSending","getReceiptWithEvents","formatTx","emitSending","populateGasPrice","ignoreGasPricing","signAndSend","signedTransaction","emitSent","emitTransactionHash","emitReceipt","emitConfirmation","handleResolve","transactionResolver","getHashRate","getMaxPriorityFeePerGas","getBalance","blockNumberFormatted","getStorageAt","storageSlotFormatted","getCode","blockHashFormatted","getBlockTransactionCount","getBlockUncleCount","getUncle","uncleIndex","uncleIndexFormatted","getTransaction","transactionHashFormatted","getPendingTransactions","getTransactionFromBlock","transactionIndexFormatted","sendTransaction","transactionObj","transactionMiddleware","sendTxHelper","processTransaction","messageFormatted","signed","encodedSignedTransaction","decodeSignedTransaction","getLogs","formattedFilter","getProof","storageKeysFormatted","storageKey","getFeeHistory","blockCount","newestBlock","rewardPercentiles","blockCountFormatted","newestBlockFormatted","rewardPercentilesFormatted","rewardPercentile","createAccessList","signTypedData","typedData","useLegacy","LogsSubscription","NewPendingTransactionsSubscription","NewHeadsSubscription","SyncingSubscription","mappedData","fromEntries","syncing","newPendingTransactions","newHeads","pendingTransactions","newBlockHeaders","Web3Eth","getFeeData","calculateFeeData","setTransactionMiddleware","getTransactionMiddleware","getProtocolVersion","isSyncing","getCoinbase","isMining","getHashrate","baseFeePerGasFactor","alternativeMaxPriorityFeePerGas","getAccounts","sendSignedTransaction","signedTransactionFormattedHex","unSerializedTransaction","unSerializedTransactionWithFrom","txWithoutSigParams","getPastLogs","getWork","submitWork","requestAccounts","getNodeInfo","shouldClearSubscription","clearSubscriptions","notClearSyncing","validateLegacyGas","validateFeeMarketGas","validateTransactionForSigning","overrideMethod","txChainId","customChainId","validateCustomChainInfo","validateChainInfo","txChain","validateBaseChain","txHardfork","commonHardfork","validateHardfork","gasPresent","legacyGasPresent","feeMarketGasPresent","validateGas","prepareTransactionForSigning","getEthereumjsTxDataFromTransaction","getEthereumjsTransactionOptions","encodeEventABI","encodeMethodABI","deployData","decodeMethodParams","dataInputEncodeMethodHelper","txParams","dataInputFill","getSendTxParams","contractOptions","dataInput","isWeb3ContractContext","DeployerMethodClass","deployOptions","calculateDeployParams","constructorAbi","_contractMethodDeploySend","returnTxOptions","newContract","modifiedOptions","populateTransaction","modifiedContractOptions","_input","contractMethodEstimateGas","encodeABI","decodeData","__method__","contractSubscriptions","Contract","addressOrOptionsOrContext","optionsOrContextOrReturnFormat","contextOrReturnFormat","contractContext","syncWithContext","_functions","_overloadedMethodAbis","returnDataFormat","_parseAndSetJsonInterface","_parseAndSetAddress","_jsonInterface","subscribeToContextEvents","_address","_methods","_errorsInterface","deploy","getPastEvents","param1","param2","param3","decodedLogs","filterKeys","inputAbi","decodeMethodData","methodSignature","functionsAbis","functionsAbi","methodNameWithInputs","payable","abiFragment","contractMethod","_createContractMethod","exactContractMethod","eventSignature","_createContractEvent","allEvents","_getAbiParams","abiArr","errorsAbis","abiParams","_abi","methodAbi","internalErrorsAbis","arrayOfAbis","applicableMethodAbi","_contractMethodCall","_contractMethodSend","_contractMethodCreateAccessList","getEthTxCallParams","decodeMethodReturn","getCreateAccessListParams","transactionToSend","getEstimateGasParams","contractThis","interfaceIds","addr","pubkey","contenthash","methodsInInterface","registryAddresses","networkIds","ENSRegistryAbi","PublicResolverAbi","FENCED","read_compressed_payload","read_payload","u16","symbol_count","pos_payload","read_width","read_buffer","read_bit","FULL","HALF","QRTR","decode_arithmetic","carry","unsafe_atob","read_deltas","read_sorted","read_sorted_arrays","read_array_while","read_mapped","read_linear_table","read_replacement_table","flat","read_transposed","dx","dy","vN","ys","j_dy","quote_cp","cp","hex_cp","explode_cp","cps","codePointAt","str_from_cps","fromCodePoint","compare_arrays","S0","L0","V0","T_COUNT","N_COUNT","V_COUNT","unpack_cc","packed","unpack_cp","SHIFTED_RANK","EXCLUSIONS","DECOMP","RECOMP","is_hangul","compose_pair","recomp","decomposed","init$1","check_order","s_index","v_index","t_index","prev_cc","nfd","nfc","prev_cp","composed","composed_from_decomposed","STOP_CH","Array_from","group_has_cp","Emoji","is_emoji","MAPPED","IGNORED","CM","NSM","ESCAPE","NFC_CHECK","GROUPS","WHOLE_VALID","WHOLE_MAP","VALID","EMOJI_LIST","EMOJI_ROOT","read_sorted_array","read_sorted_set","set_add_many","unrestricted","read_chunked","wholes","recs","gs","multi","add_to_union","sorted","expand","saved","read_trie","quoted_cp","should_escape","bidi_qq","safe_str_from_cps","quoter","only_nsm","tokens_from_str","token_count","norm","check_leading_underscore","check_label_extension","error_placement","check_fenced","unique","error_group_member","error_disallowed","determine_group","check_group","maker","whole","check_whole","quoted","where","consume_emoji_reversed","filter_fe0f","eaten","ens_normalize","namehash","inputName","labelSha","Registry","customRegistryAddress","contract","getOwner","getTTL","recordExists","getResolver","resolver","Resolver","registry","getResolverContractAdapter","ENSName","checkInterfaceSupport","resolverContract","supportsInterface","interfaceId","interfaceIdParam","getAddress","coinType","getPubkey","getContenthash","setAddress","txConfig","setAddr","getText","getName","reverseName","ENS","registryAddr","registryAddress","_registry","_resolver","ENSNameOrAddr","checkNetwork","_lastSyncCheck","syncInfo","_detectedAddress","personalRpcMethods","newAccount","unlockAccount","unlockDuration","lockAccount","importRawKey","passphrase","formattedTx","dataToSign","ecRecover","signedData","signedDataString","Personal","rpcWrappers","Network","QuickNodeRateLimitError","ProviderConfigOptionsError","Web3ExternalProvider","providerConfigOptions","HTTPS","getRPCURL","_listener","_code","ETH_MAINNET","_token","_host","ETH_SEPOLIA","ETH_HOLESKY","ARBITRUM_MAINNET","ARBITRUM_SEPOLIA","BNB_MAINNET","BNB_TESTNET","POLYGON_MAINNET","POLYGON_AMONY","encodeFunctionCall","initAccountsForContext","signTransactionWithContext","signedTx","validationErrors","errorString","rawTx","txHash","privateKeyToAccountWithContext","decryptWithContext","nonStrict","createWithContext","Eip6963EventName","eip6963ProvidersMap","web3ProvidersMapUpdated","Web3","contextInitOptions","ens","personal","TxMiddleware","requestEIP6963Providers","eip6963announceProvider","newEvent","CustomEvent","eip6963requestProvider","onNewProviderDiscovered","btnAction","MetaMaskIcon","ConnectWallet","goBack","CHAIN_ID","FSTR_CONTRACT","CheckoutFSTR","_storeSessionData$gat3","processingText","setProcessingText","showProcessingTip","setShowProcessingTip","showErrorTip","setShowErrorTip","metamaskInstalled","setMetamaskInstalled","rejectedWalletConnect","setRejectedWalletConnect","rejectedChainDownload","setRejectedChainDownload","rejectedChainSwitch","setRejectedChainSwitch","reRequestConnectWallet","setReRequestConnectWallet","reRequestSwitchChain","setReRequestSwitchChain","reRequestTransaction","setReRequestTransaction","canInitiateTrans","setCanInitiateTrans","selectedAccount","setSelectedAccount","selectedAccountRef","web3Instance","tokenAdded","FSTRContract","rejectedTransaction","setRejectedTransaction","errorPopupMessage","setErrorPopupMessage","setActiveTab","autoPayScanQr","setAutoPayScanQr","manualEntryScanQr","setManualEntryScanQr","qrLoading","setQrLoading","transactionRes","setTransactionRes","transactionSuccess","setTransactionSuccess","showChangeWalletPopup","setShowChangeWalletPopup","storeSessionData","setStoreSessionData","showCommonErrorPopup","setShowCommonErrorPopup","showAlreadyInAsset","setShowAlreadyInAsset","openCancelPaymentPopup","setOpenCancelPaymentPopup","handlePaymentRequestTimeOut","_storeSessionData$qrD","_storeSessionData$qrD2","paymentHash","qrData","withAmount","withoutAmount","_res9","_res9$response","existingData","_res10","_res10$response","parsedData","getQrCode","_data$info","_data$info2","checkMetamask","isMetaMask","initContract","web3Inst","abiJson","addTokenToWallet","retriesLeft","processPayment","verifyWallet","speedUpTimeout","web3ToAddress","approve","transfer","gasPriceGwei","gasPriceWei","_res11","_res11$response","getOrderDetails","web3FromAddress","timeDifference","verifyTransactionOnBackend","_res12","_res12$response","_res$response$data$ga","_storeSessionData$gat","gatewayTransactionDetails","_storeSessionData$gat2","CheckoutFstr","TransactionSuccess","MetamaskInstall","TransactionCancel","_res8","_res8$response","_res3","_res3$response","_res3$response$data","_res4","_res4$response","_res4$response$data","_res4$response$data$g","_res5","_res5$response","_res5$response$data","_res5$response$data$g","_res6","_res6$response","_res6$response$data","_res6$response$data$g","_res7","_res7$response","_res7$response$data","_res7$response$data$g","mobileButtonTransaction","connectMetaMask","checkAndReload","w3Instance","web3","initWeb3","networkVersion","nativeCurrency","rpcUrls","switchChain","InitiatePayment","showChangeWalletErrorPopup","setShowChangeWalletErrorPopup","modifyCryptoTransactionWalletId","initiateTransactionOnBackend","_res13","_res13$response","_res13$response$data","_res13$response$data$","_res14","_res14$response","sessionInitiateTransactionData","_res9$response$data","_res9$response$data$g","_res10$response$data","_res10$response$data$","_res11$response$data","_res11$response$data$","inititateSubscriptonTransactionOnBackend","_res15","_res15$response","_res16","_res16$response","_res17","_res17$response","_res18","_res18$response","_res22","_res22$response","_res23","_res23$response","_res23$response$data","_res23$response$data$","_res24","_res24$response","_res19","_res19$response","_res19$response$data","_res19$response$data$","_res20","_res20$response","_res20$response$data","_res20$response$data$","_res21","_res21$response","_res21$response$data","_res21$response$data$","initiateTransaction","Success","Failed","setAddressList","removeWalletId","setRemoveWalletId","removeWalletAddressId","removeLoading","_addressLists$respons","_addressLists$respons2","_addressLists$respons3","_addressLists$respons4","removeWalletAddress","wallet_ui","PrivacyPolicy","listStyleType","CookiesPolicy","TermsAndConditions","SideQuest","instruction","setInstruction","imageLoaded","setImageLoaded","onImageLoad","svgPath","_content$taskId","_content$taskId2","taskId","contentTypeMapping","uploadToS3","fileExtension","ContentType","removeFromS3","deleteObject","RequestTicket","screenshotInputRef","screenshotPristine","setScreenshotPristine","screenshotPreview","setScreenshotPreview","screenshotFileName","setScreenshotFileName","screenshotDraggableRef","screenshot","setScreenshot","setTitle","setDescription","addTicketRequest","ticketResponse","setTicketResponse","removeScreenshot","onDragOver","onDrop","s3upload","ticketType","screenshots","HelpCenterModal","ReportBug","RequestFeature","RefundCancellationPolicy","AlreadyInAsset","ListTickets","filterData","serializedData","onSeeDetailsHandler","mergeClasses","defaultAttributes","Icon","absoluteStrokeWidth","iconNode","createLucideIcon","iconName","Paperclip","Send","TicketDetails","feedbackDetail","onReopen","isAdmin","sender","decodedUrl","extractAfterDoubleAsterisk","ChatHistory","Details","setFeedbackDetail","setMessages","newMessage","setNewMessage","isTextareaPristine","setIsTextareaPristine","screenshotLoading","setScreenshotLoading","changeTicketStatus","scrollIntoView","scrollToAndClickTextarea","handleSendMessage","dataParam","prevDetail","fetchMessages","scrollToBottom","chatContainer","_chatContainer$","Home","useLayout","Layout","Genevieve","FSTRPage","Marketplace","ApartmentPage","ApartmentDetail","ShipPage","ShipsDetail","EntertainmentPage","EntertainmentVideo","EntertainmentContent","ClothingPage","ClothingDetail","GamingPage","GameCategory","CompanionPage","CompanionDetail","AvatarPage","AvatarDetail","BeforeLoginLayout","AuthLayout","SelectPreferences","OnBoardingComplete","CheckoutSuccess","CheckoutFailed","ProtectedRoute","Subscriptions","CookiePolicy","TermCondition","ATTRIBUTE_NAMES","TAG_NAMES","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","createClass","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","clock","cafPolyfill","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","noscript","HelmetExport","HelmetWrapper","classCallCheck","possibleConstructorReturn","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","titleTemplate","mappedState","Helmet","withSideEffect","renderStatic","accessGranted","setAccessGranted","scrollingElement","currentEnv","charSet","getHelmetTitle","allRoutes","setupEnv","NREUM","loader_config","getElementById","App"],"sourceRoot":""}